@decisiv/ui-components 2.0.1-alpha.8 → 2.0.1-alpha.82

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 (240) hide show
  1. package/lib/atoms/BaseButton/index.d.ts.map +1 -1
  2. package/lib/atoms/BaseButton/index.js +1 -1
  3. package/lib/atoms/BooleanInput/index.d.ts.map +1 -1
  4. package/lib/atoms/BooleanInput/index.js +19 -2
  5. package/lib/atoms/BooleanInput/index.test.js +17 -6
  6. package/lib/atoms/BooleanInput/types.d.ts +2 -0
  7. package/lib/atoms/BooleanInput/types.d.ts.map +1 -1
  8. package/lib/atoms/Calendar/hooks/useCalendar/index.d.ts.map +1 -1
  9. package/lib/atoms/Calendar/hooks/useCalendar/index.js +2 -1
  10. package/lib/atoms/Calendar/hooks/useCalendar/index.test.js +5 -6
  11. package/lib/atoms/Calendar/index.d.ts.map +1 -1
  12. package/lib/atoms/Calendar/index.js +8 -1
  13. package/lib/atoms/Calendar/index.test.js +70 -40
  14. package/lib/atoms/InputField/Containers.d.ts +10 -6
  15. package/lib/atoms/InputField/Containers.d.ts.map +1 -1
  16. package/lib/atoms/InputField/Containers.js +6 -6
  17. package/lib/atoms/InputField/InputLabel.d.ts +1 -0
  18. package/lib/atoms/InputField/InputLabel.d.ts.map +1 -1
  19. package/lib/atoms/InputField/InputLabel.js +2 -1
  20. package/lib/atoms/InputField/index.d.ts +4 -0
  21. package/lib/atoms/InputField/index.d.ts.map +1 -1
  22. package/lib/atoms/InputField/index.js +18 -7
  23. package/lib/atoms/InputField/index.test.js +91 -0
  24. package/lib/atoms/InputField/schema.d.ts.map +1 -1
  25. package/lib/atoms/InputField/schema.js +1 -0
  26. package/lib/atoms/OptionsList/Category.d.ts +1 -1
  27. package/lib/atoms/OptionsList/Category.d.ts.map +1 -1
  28. package/lib/atoms/OptionsList/Category.js +4 -2
  29. package/lib/atoms/OptionsList/Footer.d.ts +8 -0
  30. package/lib/atoms/OptionsList/Footer.d.ts.map +1 -0
  31. package/lib/atoms/OptionsList/Footer.js +72 -0
  32. package/lib/atoms/OptionsList/Option.d.ts.map +1 -1
  33. package/lib/atoms/OptionsList/Option.js +8 -5
  34. package/lib/atoms/OptionsList/index.d.ts.map +1 -1
  35. package/lib/atoms/OptionsList/index.js +43 -16
  36. package/lib/atoms/OptionsList/index.test.js +107 -11
  37. package/lib/atoms/OptionsList/schema.d.ts.map +1 -1
  38. package/lib/atoms/OptionsList/schema.js +4 -0
  39. package/lib/atoms/OptionsList/types.d.ts +14 -0
  40. package/lib/atoms/OptionsList/types.d.ts.map +1 -1
  41. package/lib/atoms/RequiredIcon.d.ts +9 -0
  42. package/lib/atoms/RequiredIcon.d.ts.map +1 -0
  43. package/lib/atoms/{InputField/RequiredIcon.js → RequiredIcon.js} +7 -3
  44. package/lib/components/Button/schema.d.ts +6 -1
  45. package/lib/components/Button/schema.d.ts.map +1 -1
  46. package/lib/components/Button/schema.js +9 -4
  47. package/lib/components/Checkbox/index.d.ts.map +1 -1
  48. package/lib/components/Checkbox/index.js +3 -1
  49. package/lib/components/Checkbox/schema.d.ts.map +1 -1
  50. package/lib/components/Checkbox/schema.js +2 -0
  51. package/lib/components/Combobox/Target.d.ts.map +1 -1
  52. package/lib/components/Combobox/Target.js +45 -14
  53. package/lib/components/Combobox/index.d.ts.map +1 -1
  54. package/lib/components/Combobox/index.js +182 -64
  55. package/lib/components/Combobox/index.test.js +358 -135
  56. package/lib/components/Combobox/schema.d.ts.map +1 -1
  57. package/lib/components/Combobox/schema.js +9 -2
  58. package/lib/components/Combobox/types.d.ts +12 -3
  59. package/lib/components/Combobox/types.d.ts.map +1 -1
  60. package/lib/components/DropdownList/index.d.ts +4 -0
  61. package/lib/components/DropdownList/index.d.ts.map +1 -1
  62. package/lib/components/DropdownList/index.js +76 -11
  63. package/lib/components/DropdownList/propTypes.d.ts +4 -0
  64. package/lib/components/DropdownList/propTypes.d.ts.map +1 -0
  65. package/lib/components/DropdownList/propTypes.js +42 -0
  66. package/lib/components/DropdownList/schema.d.ts.map +1 -1
  67. package/lib/components/DropdownList/schema.js +5 -0
  68. package/lib/components/DropdownList/types.d.ts +4 -1
  69. package/lib/components/DropdownList/types.d.ts.map +1 -1
  70. package/lib/components/Filter/IconWrapper/index.d.ts +197 -0
  71. package/lib/components/Filter/IconWrapper/index.d.ts.map +1 -0
  72. package/lib/components/Filter/IconWrapper/index.js +35 -0
  73. package/lib/components/Filter/SimplePrimary/index.d.ts +31 -0
  74. package/lib/components/Filter/SimplePrimary/index.d.ts.map +1 -0
  75. package/lib/components/Filter/SimplePrimary/index.js +58 -0
  76. package/lib/components/Filter/SimplePrimary/index.test.js +34 -0
  77. package/lib/components/Filter/StyledFilter.d.ts +4 -0
  78. package/lib/components/Filter/StyledFilter.d.ts.map +1 -0
  79. package/lib/components/Filter/StyledFilter.js +39 -0
  80. package/lib/components/Filter/StyledLabel/index.d.ts +8 -0
  81. package/lib/components/Filter/StyledLabel/index.d.ts.map +1 -0
  82. package/lib/components/Filter/StyledLabel/index.js +30 -0
  83. package/lib/components/Filter/index.d.ts +27 -0
  84. package/lib/components/Filter/index.d.ts.map +1 -0
  85. package/lib/components/Filter/index.js +95 -0
  86. package/lib/components/Filter/index.test.js +41 -0
  87. package/lib/components/Filter/kind.d.ts +6 -0
  88. package/lib/components/Filter/kind.d.ts.map +1 -0
  89. package/lib/components/Filter/kind.js +45 -0
  90. package/lib/components/Filter/schema.d.ts +9 -0
  91. package/lib/components/Filter/schema.d.ts.map +1 -0
  92. package/lib/components/Filter/schema.js +32 -0
  93. package/lib/components/Filter/types.d.ts +17 -0
  94. package/lib/components/Filter/types.d.ts.map +1 -0
  95. package/lib/components/Filter/types.js +1 -0
  96. package/lib/components/LeftNav/Item/ClickArea.d.ts.map +1 -1
  97. package/lib/components/LeftNav/Item/ClickArea.js +2 -2
  98. package/lib/components/LeftNav/Item/ItemWrapper.d.ts.map +1 -1
  99. package/lib/components/LeftNav/Item/ItemWrapper.js +3 -3
  100. package/lib/components/LeftNav/Item/MenuItemWrapper.d.ts +7 -0
  101. package/lib/components/LeftNav/Item/MenuItemWrapper.d.ts.map +1 -0
  102. package/lib/components/LeftNav/Item/MenuItemWrapper.js +20 -0
  103. package/lib/components/LeftNav/Item/NavCollapsedXItem/index.d.ts.map +1 -1
  104. package/lib/components/LeftNav/Item/NavCollapsedXItem/index.js +7 -5
  105. package/lib/components/LeftNav/Item/NavExpandedItem/index.d.ts.map +1 -1
  106. package/lib/components/LeftNav/Item/NavExpandedItem/index.js +24 -13
  107. package/lib/components/LeftNav/Item/types.d.ts +1 -1
  108. package/lib/components/LeftNav/Item/types.d.ts.map +1 -1
  109. package/lib/components/LeftNav/index.test.js +13 -3
  110. package/lib/components/LeftNav/schema.d.ts.map +1 -1
  111. package/lib/components/LeftNav/schema.js +2 -0
  112. package/lib/components/LeftNav/types.d.ts +1 -0
  113. package/lib/components/LeftNav/types.d.ts.map +1 -1
  114. package/lib/components/Menu/index.d.ts.map +1 -1
  115. package/lib/components/Menu/index.js +3 -1
  116. package/lib/components/Menu/types.d.ts +2 -0
  117. package/lib/components/Menu/types.d.ts.map +1 -1
  118. package/lib/components/Modal/components.d.ts +2 -2
  119. package/lib/components/Modal/index.d.ts.map +1 -1
  120. package/lib/components/Modal/index.js +5 -5
  121. package/lib/components/Modal/index.test.js +32 -0
  122. package/lib/components/Modal/schema.d.ts.map +1 -1
  123. package/lib/components/Modal/schema.js +2 -2
  124. package/lib/components/Modal/types.d.ts +2 -2
  125. package/lib/components/Modal/types.d.ts.map +1 -1
  126. package/lib/components/Notifications/Notification/components.d.ts +3 -3
  127. package/lib/components/Notifications/Notification/components.d.ts.map +1 -1
  128. package/lib/components/Notifications/Notification/components.js +12 -6
  129. package/lib/components/Notifications/Notification/index.d.ts +3 -6
  130. package/lib/components/Notifications/Notification/index.d.ts.map +1 -1
  131. package/lib/components/Notifications/Notification/index.js +19 -12
  132. package/lib/components/Notifications/Notification/index.test.js +38 -19
  133. package/lib/components/Notifications/NotificationsPanel/index.d.ts +2 -1
  134. package/lib/components/Notifications/NotificationsPanel/index.d.ts.map +1 -1
  135. package/lib/components/Notifications/NotificationsPanel/index.js +44 -21
  136. package/lib/components/Notifications/NotificationsPanel/schema.js +1 -1
  137. package/lib/components/Notifications/Notifier.test.js +79 -10
  138. package/lib/components/Notifications/constants.d.ts +2 -0
  139. package/lib/components/Notifications/constants.d.ts.map +1 -0
  140. package/lib/components/Notifications/constants.js +16 -0
  141. package/lib/components/Notifications/schema.d.ts.map +1 -1
  142. package/lib/components/Notifications/schema.js +2 -1
  143. package/lib/components/Notifications/useNotifications.d.ts +1 -0
  144. package/lib/components/Notifications/useNotifications.d.ts.map +1 -1
  145. package/lib/components/Notifications/useNotifications.js +3 -3
  146. package/lib/components/Notifications/useNotifications.test.js +7 -4
  147. package/lib/components/Pagination/Pagination.d.ts +1 -1
  148. package/lib/components/Pagination/Pagination.d.ts.map +1 -1
  149. package/lib/components/Pagination/Pagination.js +1 -0
  150. package/lib/components/Pagination/Pagination.test.js +9 -0
  151. package/lib/components/Popover/utils.d.ts +1 -1
  152. package/lib/components/Select/Target.js +1 -1
  153. package/lib/components/Select/index.d.ts.map +1 -1
  154. package/lib/components/Select/index.js +20 -1
  155. package/lib/components/Select/index.test.js +31 -9
  156. package/lib/components/Select/schema.d.ts.map +1 -1
  157. package/lib/components/Select/schema.js +5 -0
  158. package/lib/components/Select/types.d.ts +2 -1
  159. package/lib/components/Select/types.d.ts.map +1 -1
  160. package/lib/components/SelectDate/Target.js +1 -1
  161. package/lib/components/SelectDate/index.test.js +71 -51
  162. package/lib/components/SelectDateRange/index.test.js +78 -58
  163. package/lib/components/SelectMenu/index.d.ts +5 -0
  164. package/lib/components/SelectMenu/index.d.ts.map +1 -1
  165. package/lib/components/SelectMenu/index.js +27 -3
  166. package/lib/components/SelectMenu/schema.d.ts.map +1 -1
  167. package/lib/components/SelectMenu/schema.js +4 -0
  168. package/lib/components/Table/Body.d.ts.map +1 -1
  169. package/lib/components/Table/Body.js +182 -38
  170. package/lib/components/Table/Container.d.ts.map +1 -1
  171. package/lib/components/Table/Container.js +2 -2
  172. package/lib/components/Table/DataRow.d.ts.map +1 -1
  173. package/lib/components/Table/DataRow.js +43 -16
  174. package/lib/components/Table/DraggableWrapper.d.ts +5 -0
  175. package/lib/components/Table/DraggableWrapper.d.ts.map +1 -0
  176. package/lib/components/Table/DraggableWrapper.js +38 -0
  177. package/lib/components/Table/Grip.d.ts +4 -0
  178. package/lib/components/Table/Grip.d.ts.map +1 -0
  179. package/lib/components/Table/Grip.js +30 -0
  180. package/lib/components/Table/Head.d.ts +1 -1
  181. package/lib/components/Table/Head.d.ts.map +1 -1
  182. package/lib/components/Table/Head.js +11 -5
  183. package/lib/components/Table/HeaderCell/index.d.ts.map +1 -1
  184. package/lib/components/Table/HeaderCell/index.js +22 -8
  185. package/lib/components/Table/HeaderCell/types.d.ts +6 -1
  186. package/lib/components/Table/HeaderCell/types.d.ts.map +1 -1
  187. package/lib/components/Table/Provider.d.ts +13 -4
  188. package/lib/components/Table/Provider.d.ts.map +1 -1
  189. package/lib/components/Table/Provider.js +45 -5
  190. package/lib/components/Table/index.d.ts.map +1 -1
  191. package/lib/components/Table/index.js +112 -18
  192. package/lib/components/Table/index.test.js +330 -84
  193. package/lib/components/Table/schema.columns.d.ts.map +1 -1
  194. package/lib/components/Table/schema.columns.js +6 -4
  195. package/lib/components/Table/schema.d.ts.map +1 -1
  196. package/lib/components/Table/schema.js +8 -6
  197. package/lib/components/Table/types.d.ts +34 -4
  198. package/lib/components/Table/types.d.ts.map +1 -1
  199. package/lib/components/Table/utils.d.ts +2 -8
  200. package/lib/components/Table/utils.d.ts.map +1 -1
  201. package/lib/components/Table/utils.js +21 -20
  202. package/lib/components/Tag/types.d.ts +1 -1
  203. package/lib/components/Tag/types.d.ts.map +1 -1
  204. package/lib/components/TextArea/TextArea.d.ts.map +1 -1
  205. package/lib/components/TextArea/TextArea.js +1 -1
  206. package/lib/components/TextArea/index.js +1 -0
  207. package/lib/components/TextArea/index.test.js +5 -0
  208. package/lib/components/TextField/Input.js +1 -1
  209. package/lib/components/TextField/index.test.js +5 -0
  210. package/lib/components/Toggle/index.d.ts.map +1 -1
  211. package/lib/components/Toggle/index.js +4 -0
  212. package/lib/components/Toggle/index.test.js +39 -10
  213. package/lib/components/TopNav/BrandInfo/index.d.ts +2 -1
  214. package/lib/components/TopNav/BrandInfo/index.d.ts.map +1 -1
  215. package/lib/components/TopNav/BrandInfo/index.js +9 -1
  216. package/lib/components/TopNav/BrandInfo/schema.d.ts.map +1 -1
  217. package/lib/components/TopNav/BrandInfo/schema.js +4 -1
  218. package/lib/components/TopNav/index.test.js +28 -0
  219. package/lib/components/index.d.ts +1 -0
  220. package/lib/components/index.d.ts.map +1 -1
  221. package/lib/components/index.js +9 -0
  222. package/lib/providers/ConfigProvider/index.d.ts.map +1 -1
  223. package/lib/providers/ConfigProvider/index.js +5 -1
  224. package/lib/providers/ConfigProvider/utils/context.d.ts +1 -1
  225. package/lib/providers/ConfigProvider/utils/context.d.ts.map +1 -1
  226. package/lib/providers/ConfigProvider/utils/normalizer.d.ts.map +1 -1
  227. package/lib/providers/ConfigProvider/utils/normalizer.js +1 -1
  228. package/lib/providers/ConfigProvider/utils/translations.d.ts +1 -1
  229. package/lib/providers/ConfigProvider/utils/translations.js +1 -1
  230. package/lib/providers/NotificationsProvider/index.d.ts +6 -5
  231. package/lib/providers/NotificationsProvider/index.d.ts.map +1 -1
  232. package/lib/providers/NotificationsProvider/index.js +47 -28
  233. package/lib/providers/NotificationsProvider/types.d.ts +4 -1
  234. package/lib/providers/NotificationsProvider/types.d.ts.map +1 -1
  235. package/lib/utils/joinClassnames.d.ts +3 -0
  236. package/lib/utils/joinClassnames.d.ts.map +1 -0
  237. package/lib/utils/joinClassnames.js +26 -0
  238. package/package.json +4 -2
  239. package/lib/atoms/InputField/RequiredIcon.d.ts +0 -4
  240. package/lib/atoms/InputField/RequiredIcon.d.ts.map +0 -1
@@ -6,12 +6,16 @@ var _react2 = require("@testing-library/react");
6
6
 
7
7
  var _constants = require("../../../constants");
8
8
 
9
- var _ConfigProvider = require("../../../providers/ConfigProvider");
9
+ var _providers = require("../../../providers");
10
10
 
11
11
  var _ = _interopRequireDefault(require("."));
12
12
 
13
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
14
 
15
+ 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; }
16
+
17
+ 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; }
18
+
15
19
  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); }
16
20
 
17
21
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { keys.push.apply(keys, Object.getOwnPropertySymbols(object)); } if (enumerableOnly) keys = keys.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); return keys; }
@@ -20,12 +24,14 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
20
24
 
21
25
  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; }
22
26
 
27
+ var wrapper = function wrapper(_ref) {
28
+ var children = _ref.children;
29
+ return _react.default.createElement(_providers.ConfigProvider, null, children);
30
+ };
31
+
23
32
  var render = function render(ui, options) {
24
33
  return (0, _react2.render)(ui, _objectSpread({}, options, {
25
- wrapper: function wrapper(_ref) {
26
- var children = _ref.children;
27
- return _react.default.createElement(_ConfigProvider.ConfigProvider, null, children);
28
- }
34
+ wrapper: wrapper
29
35
  }));
30
36
  };
31
37
 
@@ -60,26 +66,39 @@ describe('Notification', function () {
60
66
 
61
67
  expect(queryByText(defaultProps.title)).toBeTruthy();
62
68
  });
63
- it('renders a close button in the header of the notification', function () {
64
- var onClose = jest.fn();
69
+ describe('when onClose is NOT provided', function () {
70
+ it('does NOT render a close button in the header of the notification', function () {
71
+ var onClose = defaultProps.onClose,
72
+ testProps = _objectWithoutProperties(defaultProps, ["onClose"]);
65
73
 
66
- var _render3 = render(_react.default.createElement(_.default, _extends({}, defaultProps, {
67
- onClose: onClose
68
- }))),
69
- queryByLabelText = _render3.queryByLabelText;
74
+ var _render3 = render(_react.default.createElement(_.default, testProps)),
75
+ queryByLabelText = _render3.queryByLabelText;
76
+
77
+ expect(queryByLabelText(/close/i)).not.toBeTruthy();
78
+ });
79
+ });
80
+ describe('when onClose is provided', function () {
81
+ it('renders a close button in the header of the notification', function () {
82
+ var onClose = jest.fn();
83
+
84
+ var _render4 = render(_react.default.createElement(_.default, _extends({}, defaultProps, {
85
+ onClose: onClose
86
+ }))),
87
+ queryByLabelText = _render4.queryByLabelText;
70
88
 
71
- var closeButton = queryByLabelText(/close/i);
72
- expect(closeButton).toBeTruthy();
89
+ var closeButton = queryByLabelText(/close/i);
90
+ expect(closeButton).toBeTruthy();
73
91
 
74
- _react2.fireEvent.click(closeButton);
92
+ _react2.fireEvent.click(closeButton);
75
93
 
76
- expect(onClose).toHaveBeenCalled();
94
+ expect(onClose).toHaveBeenCalled();
95
+ });
77
96
  });
78
97
  it('renders the children as the content of the notification', function () {
79
98
  var content = 'Test modal content.';
80
99
 
81
- var _render4 = render(_react.default.createElement(_.default, defaultProps, content)),
82
- queryByText = _render4.queryByText;
100
+ var _render5 = render(_react.default.createElement(_.default, defaultProps, content)),
101
+ queryByText = _render5.queryByText;
83
102
 
84
103
  expect(queryByText(content)).toBeTruthy();
85
104
  });
@@ -94,10 +113,10 @@ describe('Notification', function () {
94
113
  text: 'secondary'
95
114
  }];
96
115
 
97
- var _render5 = render(_react.default.createElement(_.default, _extends({}, defaultProps, {
116
+ var _render6 = render(_react.default.createElement(_.default, _extends({}, defaultProps, {
98
117
  actions: actions
99
118
  }))),
100
- queryByText = _render5.queryByText;
119
+ queryByText = _render6.queryByText;
101
120
 
102
121
  var primaryActionButton = queryByText(actions[0].text);
103
122
  expect(primaryActionButton).toBeTruthy();
@@ -1,10 +1,11 @@
1
1
  /// <reference types="react" />
2
2
  import { TNotifications } from '../../../providers/NotificationsProvider/types';
3
3
  interface TNotificationsContainerProps {
4
+ scroll?: boolean;
4
5
  notifications?: TNotifications;
5
6
  marginTop?: number;
6
7
  zIndex?: number;
7
8
  }
8
- declare function NotificationsPanel({ marginTop, zIndex, }: TNotificationsContainerProps): JSX.Element;
9
+ declare function NotificationsPanel({ marginTop, zIndex, }: TNotificationsContainerProps): JSX.Element | null;
9
10
  export default NotificationsPanel;
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Notifications/NotificationsPanel/index.tsx"],"names":[],"mappings":";AAUA,OAAO,EAEL,cAAc,EACf,MAAM,gDAAgD,CAAC;AAYxD,UAAU,4BAA4B;IACpC,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAwDD,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,MAAM,GACP,EAAE,4BAA4B,GAAG,GAAG,CAAC,OAAO,CAwC5C;AAED,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Notifications/NotificationsPanel/index.tsx"],"names":[],"mappings":";AAUA,OAAO,EAEL,cAAc,EACf,MAAM,gDAAgD,CAAC;AAcxD,UAAU,4BAA4B;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA4ED,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,MAAM,GACP,EAAE,4BAA4B,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CA2CnD;AAED,eAAe,kBAAkB,CAAC"}
@@ -37,6 +37,8 @@ var _Notification = _interopRequireDefault(require("../Notification"));
37
37
 
38
38
  var _useNotifications2 = _interopRequireDefault(require("../useNotifications"));
39
39
 
40
+ var _constants = require("../constants");
41
+
40
42
  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; } }
41
43
 
42
44
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -54,14 +56,30 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
54
56
  var NotificationsContainer = _styledComponents.default.div.withConfig({
55
57
  displayName: "NotificationsPanel__NotificationsContainer",
56
58
  componentId: "sc-1u8dp2k-0"
57
- })(["bottom:", ";margin-top:", ";overflow-y:auto;padding-bottom:", ";position:fixed;right:", ";top:0;z-index:", ";overflow-x:hidden;"], (0, _rem.default)(_spacing.default.base * 0.5), function (_ref) {
59
+ })(["max-height:", ";margin-bottom:", ";margin-top:", ";overflow-y:hidden;padding-bottom:", ";position:fixed;right:", ";top:0;min-width:calc(1.25rem + ", ");z-index:", ";overflow-x:hidden;scrollbar-width:thin;", ";", ";"], function (_ref) {
58
60
  var _ref$marginTop = _ref.marginTop,
59
61
  marginTop = _ref$marginTop === void 0 ? 0 : _ref$marginTop;
62
+ return "calc(100vh - ".concat((0, _rem.default)(_spacing.default.base * marginTop), ");");
63
+ }, function (_ref2) {
64
+ var _ref2$marginTop = _ref2.marginTop,
65
+ marginTop = _ref2$marginTop === void 0 ? 0 : _ref2$marginTop;
66
+ return (0, _rem.default)(_spacing.default.base * marginTop);
67
+ }, function (_ref3) {
68
+ var _ref3$marginTop = _ref3.marginTop,
69
+ marginTop = _ref3$marginTop === void 0 ? 0 : _ref3$marginTop;
60
70
  return (0, _rem.default)(_spacing.default.base * marginTop);
61
- }, (0, _rem.default)(_spacing.default.base * 0.5), (0, _rem.default)(_spacing.default.base), function (_ref2) {
62
- var _ref2$zIndex = _ref2.zIndex,
63
- zIndex = _ref2$zIndex === void 0 ? 100 : _ref2$zIndex;
71
+ }, (0, _rem.default)(_spacing.default.base * 0.8), (0, _rem.default)(_spacing.default.base), _constants.NOTIFICATION_CARD_WIDTH, function (_ref4) {
72
+ var _ref4$zIndex = _ref4.zIndex,
73
+ zIndex = _ref4$zIndex === void 0 ? 100 : _ref4$zIndex;
64
74
  return zIndex;
75
+ }, function (_ref5) {
76
+ var scroll = _ref5.scroll,
77
+ _ref5$notifications = _ref5.notifications,
78
+ notifications = _ref5$notifications === void 0 ? [] : _ref5$notifications;
79
+ return scroll && notifications.length > 2 ? "overflow-y: auto;" : "overflow-y: hidden;";
80
+ }, function (_ref6) {
81
+ var notifications = _ref6.notifications;
82
+ return (0, _isEmpty.default)(notifications) && "width : 0";
65
83
  });
66
84
 
67
85
  var FloatingButton = (0, _styledComponents.default)(_Button.default).attrs({
@@ -71,41 +89,46 @@ var FloatingButton = (0, _styledComponents.default)(_Button.default).attrs({
71
89
  componentId: "sc-1u8dp2k-1"
72
90
  })(["box-shadow:", ";&:focus,&:focus:not(:active){border-color:", ";", ";}&:hover,&:hover:not(:active){background-color:", ";color:", ";}"], (0, _skyPlane.default)(2), (0, _toColorString.default)(_color.default.interaction.pacificOcean), (0, _focusRingWithColor.default)((0, _toColorString.default)(_color.default.interaction.pacificOcean40)), (0, _toColorString.default)(_color.default.interaction.pacificOcean), (0, _toColorString.default)(_color.default.interaction.pacificOcean.fg));
73
91
 
92
+ var FloatingButtonColumn = _styledComponents.default.div.withConfig({
93
+ displayName: "NotificationsPanel__FloatingButtonColumn",
94
+ componentId: "sc-1u8dp2k-2"
95
+ })(["display:flex;flex:1;height:24px;justify-content:flex-end;padding-left:", ";padding-right:", ";"], (0, _rem.default)(_spacing.default.base), (0, _rem.default)(_spacing.default.base));
96
+
74
97
  var NotificationContainer = _styledComponents.default.div.withConfig({
75
98
  displayName: "NotificationsPanel__NotificationContainer",
76
- componentId: "sc-1u8dp2k-2"
99
+ componentId: "sc-1u8dp2k-3"
77
100
  })(["height:auto;max-height:0;opacity:0;transition:opacity 1s cubic-bezier(0.33,1,0.68,1),max-height 1s cubic-bezier(0.33,1,0.68,1);", ";"], (0, _styledComponentsModifiers.applyStyleModifiers)(_defineProperty({}, _types.NotificationState.DISPLAYING, function () {
78
101
  return (0, _styledComponents.css)(["max-height:100vh;opacity:1;"]);
79
102
  }), 'renderState'));
80
103
 
81
- function NotificationsPanel(_ref3) {
82
- var marginTop = _ref3.marginTop,
83
- zIndex = _ref3.zIndex;
104
+ function NotificationsPanel(_ref7) {
105
+ var marginTop = _ref7.marginTop,
106
+ zIndex = _ref7.zIndex;
84
107
 
85
108
  var _useNotifications = (0, _useNotifications2.default)(),
86
109
  dismissAll = _useNotifications.dismissAll,
110
+ isDismissingAll = _useNotifications.isDismissingAll,
87
111
  notifications = _useNotifications.notifications;
88
112
 
89
113
  var translate = (0, _useTranslations.default)();
90
- return _react.default.createElement(NotificationsContainer, {
114
+ return (0, _isEmpty.default)(notifications) ? null : _react.default.createElement(NotificationsContainer, {
115
+ scroll: !isDismissingAll,
91
116
  marginTop: marginTop,
92
- zIndex: zIndex
117
+ zIndex: zIndex,
118
+ notifications: notifications
93
119
  }, _react.default.createElement(_Grid.default.Container, null, _react.default.createElement(_Grid.default.Row, {
94
120
  alignment: "end"
95
- }, _react.default.createElement(_Grid.default.Column, {
96
- height: "24px",
97
- span: "0"
98
- }, notifications.length >= 2 && _react.default.createElement(FloatingButton, {
121
+ }, _react.default.createElement(FloatingButtonColumn, null, !isDismissingAll && notifications.length >= 2 && _react.default.createElement(FloatingButton, {
99
122
  onClick: dismissAll,
100
123
  size: "small",
101
124
  text: translate(undefined, 'notifications.dismissAll')
102
- })))), !(0, _isEmpty.default)(notifications) && _react.default.createElement(_Grid.default.Container, null, (notifications || []).map(function (_ref4) {
103
- var _ref5 = _slicedToArray(_ref4, 3),
104
- notificationProps = _ref5[0],
105
- body = _ref5[1],
106
- _ref5$ = _ref5[2],
107
- notificationID = _ref5$.notificationID,
108
- state = _ref5$.state;
125
+ })))), _react.default.createElement(_Grid.default.Container, null, (notifications || []).map(function (_ref8) {
126
+ var _ref9 = _slicedToArray(_ref8, 3),
127
+ notificationProps = _ref9[0],
128
+ body = _ref9[1],
129
+ _ref9$ = _ref9[2],
130
+ notificationID = _ref9$.notificationID,
131
+ state = _ref9$.state;
109
132
 
110
133
  return _react.default.createElement(_Grid.default.Row, {
111
134
  key: notificationID,
@@ -7,7 +7,7 @@ exports.default = void 0;
7
7
 
8
8
  var _reactDesc = require("react-desc");
9
9
 
10
- // @ts-ignore no module typings
10
+ // @ts-ignore no module typings for react-desc
11
11
  var schema = (0, _reactDesc.describe)({
12
12
  displayName: 'NotificationsPanel'
13
13
  });
@@ -4,7 +4,7 @@ var _react = _interopRequireDefault(require("react"));
4
4
 
5
5
  var _react2 = require("@testing-library/react");
6
6
 
7
- var _ConfigProvider = require("../../providers/ConfigProvider");
7
+ var _providers = require("../../providers");
8
8
 
9
9
  var _NotificationsPanel = _interopRequireDefault(require("./NotificationsPanel"));
10
10
 
@@ -12,6 +12,10 @@ var _Notifier = _interopRequireDefault(require("./Notifier"));
12
12
 
13
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
14
 
15
+ 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; }
16
+
17
+ 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; }
18
+
15
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); } }
16
20
 
17
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,12 +26,14 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
22
26
 
23
27
  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; }
24
28
 
29
+ var wrapper = function wrapper(_ref) {
30
+ var children = _ref.children;
31
+ return _react.default.createElement(_providers.ConfigProvider, null, _react.default.createElement(_react.default.Fragment, null, _react.default.createElement(_NotificationsPanel.default, null), children));
32
+ };
33
+
25
34
  var render = function render(ui, options) {
26
35
  return (0, _react2.render)(ui, _objectSpread({}, options, {
27
- wrapper: function wrapper(_ref) {
28
- var children = _ref.children;
29
- return _react.default.createElement(_ConfigProvider.ConfigProvider, null, _react.default.createElement(_react.default.Fragment, null, _react.default.createElement(_NotificationsPanel.default, null), children));
30
- }
36
+ wrapper: wrapper
31
37
  }));
32
38
  };
33
39
 
@@ -70,7 +76,7 @@ describe('Notifier', function () {
70
76
 
71
77
  expect((0, _react2.queryAllByText)(baseElement, defaultProps.title)).toHaveLength(1);
72
78
 
73
- _react2.fireEvent.click((0, _react2.queryByLabelText)(baseElement, /close/gi));
79
+ _react2.fireEvent.click((0, _react2.getByLabelText)(baseElement, /close/gi));
74
80
 
75
81
  _context.next = 7;
76
82
  return (0, _react2.wait)(function () {
@@ -96,18 +102,19 @@ describe('Notifier', function () {
96
102
  });
97
103
  describe('dispatching more than one notification', function () {
98
104
  it('renders a dismiss all button in the notifications panel', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
99
- var buttonText, _render2, baseElement, getByText;
105
+ var buttonText, onClose, testProps, _render2, baseElement, getByText;
100
106
 
101
107
  return regeneratorRuntime.wrap(function _callee2$(_context2) {
102
108
  while (1) {
103
109
  switch (_context2.prev = _context2.next) {
104
110
  case 0:
105
111
  buttonText = 'notify';
112
+ onClose = defaultProps.onClose, testProps = _objectWithoutProperties(defaultProps, ["onClose"]);
106
113
  _render2 = render(_react.default.createElement(_Notifier.default, null, function (_ref5) {
107
114
  var notify = _ref5.notify;
108
115
  return _react.default.createElement("button", {
109
116
  onClick: function onClick() {
110
- notify(defaultProps);
117
+ notify(testProps);
111
118
  },
112
119
  type: "button"
113
120
  }, buttonText);
@@ -125,7 +132,7 @@ describe('Notifier', function () {
125
132
 
126
133
  _react2.fireEvent.click((0, _react2.getByText)(baseElement, /dismiss all/gi));
127
134
 
128
- _context2.next = 11;
135
+ _context2.next = 12;
129
136
  return (0, _react2.wait)(function () {
130
137
  return expect((0, _react2.queryAllByText)(baseElement, defaultProps.title)).toHaveLength(0);
131
138
  },
@@ -139,12 +146,74 @@ describe('Notifier', function () {
139
146
  timeout: 2750
140
147
  });
141
148
 
142
- case 11:
149
+ case 12:
143
150
  case "end":
144
151
  return _context2.stop();
145
152
  }
146
153
  }
147
154
  }, _callee2);
148
155
  })));
156
+ it('fires onClose for each notification when clicking dismiss all', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() {
157
+ var buttonText, onClose, _render3, baseElement, getByText, notifications;
158
+
159
+ return regeneratorRuntime.wrap(function _callee3$(_context3) {
160
+ while (1) {
161
+ switch (_context3.prev = _context3.next) {
162
+ case 0:
163
+ buttonText = 'notify';
164
+ onClose = jest.fn();
165
+ jest.useFakeTimers();
166
+ _render3 = render(_react.default.createElement(_Notifier.default, null, function (_ref7) {
167
+ var notify = _ref7.notify;
168
+ return _react.default.createElement("button", {
169
+ onClick: function onClick() {
170
+ notify(_objectSpread({}, defaultProps, {
171
+ onClose: onClose
172
+ }));
173
+ },
174
+ type: "button"
175
+ }, buttonText);
176
+ })), baseElement = _render3.baseElement, getByText = _render3.getByText;
177
+ (0, _react2.act)(function () {
178
+ _react2.fireEvent.click(getByText(buttonText));
179
+
180
+ _react2.fireEvent.click(getByText(buttonText));
181
+
182
+ _react2.fireEvent.click(getByText(buttonText));
183
+
184
+ jest.runAllTimers();
185
+ });
186
+ notifications = (0, _react2.queryAllByText)(baseElement, defaultProps.title);
187
+ expect(notifications).toHaveLength(3);
188
+ (0, _react2.act)(function () {
189
+ _react2.fireEvent.click((0, _react2.getByText)(baseElement, /dismiss all/gi));
190
+ });
191
+ _context3.next = 10;
192
+ return (0, _react2.wait)(function () {
193
+ (0, _react2.act)(function () {
194
+ return jest.runAllTimers();
195
+ });
196
+ expect((0, _react2.queryAllByText)(baseElement, defaultProps.title)).toHaveLength(0);
197
+ },
198
+ /**
199
+ * this timeout is important in checking that the notifications were dismissed via
200
+ * `dismissAll` instead of just timing out. If just timing out, the notifications would
201
+ * dismiss after 5.2 seconds. Selecting a timeout shorter than that verifies `dismissAll`
202
+ * was fired.
203
+ */
204
+ {
205
+ timeout: 2750
206
+ });
207
+
208
+ case 10:
209
+ expect(onClose).toHaveBeenCalledTimes(3);
210
+
211
+ case 11:
212
+ case "end":
213
+ return _context3.stop();
214
+ }
215
+ }
216
+ }, _callee3);
217
+ })));
149
218
  });
150
219
  });
@@ -0,0 +1,2 @@
1
+ export declare const NOTIFICATION_CARD_WIDTH: string;
2
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/components/Notifications/constants.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,uBAAuB,QAAyB,CAAC"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.NOTIFICATION_CARD_WIDTH = void 0;
7
+
8
+ var _rem = _interopRequireDefault(require("polished/lib/helpers/rem"));
9
+
10
+ var _spacing = _interopRequireDefault(require("@decisiv/design-tokens/lib/spacing"));
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ // eslint-disable-next-line import/prefer-default-export
15
+ var NOTIFICATION_CARD_WIDTH = (0, _rem.default)(_spacing.default.base * 34);
16
+ exports.NOTIFICATION_CARD_WIDTH = NOTIFICATION_CARD_WIDTH;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/components/Notifications/schema.ts"],"names":[],"mappings":"AAKA,QAAA,MAAM,MAAM,KAA4C,CAAC;AAsDzD,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/components/Notifications/schema.ts"],"names":[],"mappings":"AAKA,QAAA,MAAM,MAAM,KAA4C,CAAC;AA0DzD,eAAe,MAAM,CAAC"}
@@ -18,13 +18,14 @@ schema.propTypes = {
18
18
  onClick: _reactDesc.PropTypes.func.isRequired,
19
19
  text: _reactDesc.PropTypes.string.isRequired
20
20
  })).description('An array of objects containing a subset of props valid for the Button. Specifically excluded are `kind`, `size`, and `variant`.').isRequired,
21
+ duration: _reactDesc.PropTypes.number.description('An integer representing the amount of milliseconds to wait until dismissing the notification if no user interaction is captured. If omitted, notification will remain until manually closed.'),
21
22
  children: _reactDesc.PropTypes.func.description('The body of the notification containing additional UI elements').format('React Component'),
22
23
  closeHint: _reactDesc.PropTypes.string.description('The text to present in the tooltip when hovering over the close button.'),
23
24
  color: _reactDesc.PropTypes.oneOf(_commonUIColors.commonUIColorKeys).description('The icon/ border color. Will override the default color associated with any specified `intent`.').format('string'),
24
25
  icon: _reactDesc.PropTypes.element.description('The `iconix` icon to display. Will override the default icon associated with any specified `intent`.').format('Iconix Icon'),
25
26
  id: _reactDesc.PropTypes.string.description('A unique identifier for the notification.'),
26
27
  intent: _reactDesc.PropTypes.oneOf(['information', 'success', 'warning', 'danger']).description('Shortcuts to the most common combinations of icon and color.'),
27
- onClose: _reactDesc.PropTypes.func.description('The event handler called to close the notification. WILL NOT be called if notification times out or is closed because an action button is clicked.'),
28
+ onClose: _reactDesc.PropTypes.func.description('The event handler called when the notification is manually closed. Will also be called with a blank event if "DISMISS ALL" is clicked. WILL NOT be called if notification times out or is closed because an action button is clicked. In IE, will be called with an empty object.'),
28
29
  title: _reactDesc.PropTypes.string.description('The text for rendering in the H2 at the top of the notification').isRequired
29
30
  };
30
31
  var _default = schema;
@@ -1,6 +1,7 @@
1
1
  import { TNotificationsContext } from '../../providers/NotificationsProvider';
2
2
  export interface TUseNotifications {
3
3
  dismissAll: TNotificationsContext['dismissAll'];
4
+ isDismissingAll: TNotificationsContext['isDismissingAll'];
4
5
  notifications: TNotificationsContext['notifications'];
5
6
  notify: TNotificationsContext['notify'];
6
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useNotifications.d.ts","sourceRoot":"","sources":["../../../src/components/Notifications/useNotifications.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,qBAAqB,EACtB,MAAM,uCAAuC,CAAC;AAE/C,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,qBAAqB,CAAC,YAAY,CAAC,CAAC;IAChD,aAAa,EAAE,qBAAqB,CAAC,eAAe,CAAC,CAAC;IACtD,MAAM,EAAE,qBAAqB,CAAC,QAAQ,CAAC,CAAC;CACzC;AAED,iBAAS,gBAAgB,IAAI,iBAAiB,CAI7C;AAED,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"useNotifications.d.ts","sourceRoot":"","sources":["../../../src/components/Notifications/useNotifications.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,qBAAqB,EACtB,MAAM,uCAAuC,CAAC;AAE/C,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,qBAAqB,CAAC,YAAY,CAAC,CAAC;IAChD,eAAe,EAAE,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;IAC1D,aAAa,EAAE,qBAAqB,CAAC,eAAe,CAAC,CAAC;IACtD,MAAM,EAAE,qBAAqB,CAAC,QAAQ,CAAC,CAAC;CACzC;AAED,iBAAS,gBAAgB,IAAI,iBAAiB,CAI7C;AAED,eAAe,gBAAgB,CAAC"}
@@ -10,10 +10,10 @@ var _react = require("react");
10
10
  var _NotificationsProvider = require("../../providers/NotificationsProvider");
11
11
 
12
12
  function useNotifications() {
13
- var ctx = (0, _react.useContext)(_NotificationsProvider.NotificationsContext);
13
+ var context = (0, _react.useContext)(_NotificationsProvider.NotificationsContext);
14
14
  return (0, _react.useMemo)(function () {
15
- return ctx;
16
- }, [ctx]);
15
+ return context;
16
+ }, [context]);
17
17
  }
18
18
 
19
19
  var _default = useNotifications;
@@ -19,11 +19,14 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
19
19
  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; }
20
20
 
21
21
  jest.useFakeTimers();
22
+
23
+ var wrapper = function wrapper(_ref) {
24
+ var children = _ref.children;
25
+ return _react.default.createElement(_NotificationsProvider.default, null, _react.default.createElement(_react.default.Fragment, null, children));
26
+ };
27
+
22
28
  var defaultRenderHookOptions = {
23
- wrapper: function wrapper(_ref) {
24
- var children = _ref.children;
25
- return _react.default.createElement(_NotificationsProvider.default, null, _react.default.createElement(_react.default.Fragment, null, children));
26
- }
29
+ wrapper: wrapper
27
30
  };
28
31
  var defaultNotificationOptions = {
29
32
  id: 'test-0',
@@ -12,7 +12,7 @@ interface DefaultPaginationProps {
12
12
  export interface PaginationProps extends DefaultPaginationProps {
13
13
  totalPages: number;
14
14
  }
15
- declare function Pagination(props: PaginationProps): JSX.Element;
15
+ declare function Pagination(props: PaginationProps): JSX.Element | null;
16
16
  declare namespace Pagination {
17
17
  var propTypes: {
18
18
  variant: PropTypes.Requireable<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["../../../src/components/Pagination/Pagination.tsx"],"names":[],"mappings":";AACA,OAAO,SAAS,MAAM,YAAY,CAAC;AAUnC,OAAO,EAAuB,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAGjE,UAAU,sBAAsB;IAC9B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAgB,SAAQ,sBAAsB;IAC7D,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,iBAAwB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,GAAG,CAAC,OAAO,CA6EtE;kBA7EuB,UAAU;;;;;;;;;;;;eAAV,UAAU"}
1
+ {"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["../../../src/components/Pagination/Pagination.tsx"],"names":[],"mappings":";AACA,OAAO,SAAS,MAAM,YAAY,CAAC;AAUnC,OAAO,EAAuB,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAGjE,UAAU,sBAAsB;IAC9B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAgB,SAAQ,sBAAsB;IAC7D,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,iBAAwB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CA+E7E;kBA/EuB,UAAU;;;;;;;;;;;;eAAV,UAAU"}
@@ -49,6 +49,7 @@ function Pagination(props) {
49
49
  currentPage = _useState2[0],
50
50
  setCurrentPage = _useState2[1];
51
51
 
52
+ if (totalPages <= 1) return null;
52
53
  var activePageIsControlled = typeof activePage !== 'undefined';
53
54
 
54
55
  if (activePageIsControlled && activePage !== currentPage) {
@@ -245,4 +245,13 @@ describe('Pagination', function () {
245
245
  expect(onPageChange).toHaveBeenCalledWith(props.activePage + 1, props.activePage);
246
246
  });
247
247
  });
248
+ it("doesn't display when there is only 1 page", function () {
249
+ var _renderPagination17 = renderPagination(_objectSpread({}, defaultProps, {
250
+ totalPages: 1,
251
+ defaultActivePage: 1
252
+ })),
253
+ container = _renderPagination17.container;
254
+
255
+ expect(container).toBeEmpty();
256
+ });
248
257
  });
@@ -1,6 +1,6 @@
1
1
  import { RefObject } from 'react';
2
2
  import { PopoverProps, Side, TargetType, VisibilityActions } from './types';
3
- export declare const getPlacementParts: (placement?: "left" | "right" | "auto" | "bottom" | "top" | "top-start" | "top-end" | "right-start" | "right-end" | "bottom-start" | "bottom-end" | "left-start" | "left-end" | "auto-start" | "auto-end") => [Side, ("end" | "start" | undefined)?];
3
+ export declare const getPlacementParts: (placement?: "auto" | "bottom" | "left" | "right" | "top" | "top-start" | "top-end" | "right-start" | "right-end" | "bottom-start" | "bottom-end" | "left-start" | "left-end" | "auto-start" | "auto-end") => [Side, ("end" | "start" | undefined)?];
4
4
  interface UseTargetProps extends PopoverProps {
5
5
  actions: VisibilityActions;
6
6
  internalNodeRef: RefObject<HTMLElement>;
@@ -48,7 +48,7 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
48
48
  var TargetContainer = _styledComponents.default.div.withConfig({
49
49
  displayName: "Target__TargetContainer",
50
50
  componentId: "sc-1t0verh-0"
51
- })(["align-items:center;display:flex;justify-content:space-between;position:relative;top:-4px;width:100%;"]);
51
+ })(["align-items:center;display:flex;justify-content:space-between;position:relative;top:-2px;width:100%;"]);
52
52
 
53
53
  var TargetButton = (0, _styledComponents.default)(_BaseButton.default).withConfig({
54
54
  displayName: "Target__TargetButton",
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Select/index.tsx"],"names":[],"mappings":"AAGA,OAAc,EAEZ,sBAAsB,EAMvB,MAAM,OAAO,CAAC;AAkBf,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAuOjD,QAAA,MAAM,aAAa,EAAE,sBAAsB,CACzC,SAAS,EACT,WAAW,CACS,CAAC;AAUvB,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Select/index.tsx"],"names":[],"mappings":"AAGA,OAAc,EAEZ,sBAAsB,EAMvB,MAAM,OAAO,CAAC;AAmBf,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AA2OjD,QAAA,MAAM,aAAa,EAAE,sBAAsB,CACzC,SAAS,EACT,WAAW,CACS,CAAC;AAgCvB,eAAe,aAAa,CAAC"}
@@ -29,6 +29,8 @@ var _useUniqueId = _interopRequireDefault(require("../../utils/useUniqueId"));
29
29
 
30
30
  var _DropdownList = _interopRequireDefault(require("../DropdownList"));
31
31
 
32
+ var _Button = require("../Button");
33
+
32
34
  var _Target = _interopRequireDefault(require("./Target"));
33
35
 
34
36
  var _propTypes2 = require("./propTypes");
@@ -66,7 +68,8 @@ function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d =
66
68
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
67
69
 
68
70
  function Select(props, ref) {
69
- var clearButtonLabel = props.clearButtonLabel,
71
+ var actions = props.actions,
72
+ clearButtonLabel = props.clearButtonLabel,
70
73
  defaultValue = props.defaultValue,
71
74
  id = props.id,
72
75
  inputContainerRef = props.inputContainerRef,
@@ -76,6 +79,7 @@ function Select(props, ref) {
76
79
  onClick = props.onClick,
77
80
  onKeyDown = props.onKeyDown,
78
81
  options = props.options,
82
+ renderOptionLabel = props.renderOptionLabel,
79
83
  propValue = props.value,
80
84
  zIndex = props.zIndex;
81
85
  var fallbackSelectRef = (0, _react.useRef)(null);
@@ -235,6 +239,7 @@ function Select(props, ref) {
235
239
  ref: targetRef,
236
240
  type: "button"
237
241
  }, value), _react.default.createElement(_DropdownList.default, {
242
+ actions: actions,
238
243
  "aria-labelledby": ariaLabelledBy,
239
244
  borderRadius: "0",
240
245
  id: dropdownListId,
@@ -246,6 +251,7 @@ function Select(props, ref) {
246
251
  onChange: handleChangeValue,
247
252
  onHide: toggleIsPopoverVisible,
248
253
  onShow: toggleIsPopoverVisible,
254
+ renderOptionLabel: renderOptionLabel,
249
255
  selectedIds: selectedValue,
250
256
  showArrow: false,
251
257
  target: popoverTargetRef,
@@ -258,9 +264,22 @@ function Select(props, ref) {
258
264
  var SelectWithRef = (0, _react.forwardRef)(Select);
259
265
  SelectWithRef.displayName = 'Select';
260
266
  SelectWithRef.propTypes = _objectSpread({}, _schema.default.propTypes, {
267
+ actions: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.shape((0, _Button.makeButtonSchemaPropTypes)({
268
+ id: _propTypes.default.string.isRequired
269
+ }))), _propTypes.default.shape({
270
+ left: _propTypes.default.arrayOf(_propTypes.default.shape((0, _Button.makeButtonSchemaPropTypes)({
271
+ id: _propTypes.default.string.isRequired
272
+ }))),
273
+ right: _propTypes.default.arrayOf(_propTypes.default.shape((0, _Button.makeButtonSchemaPropTypes)({
274
+ id: _propTypes.default.string.isRequired
275
+ })))
276
+ })]),
261
277
  defaultValue: _propTypes2.valueValidator,
262
278
  icon: _propTypes.default.elementType,
263
279
  value: _propTypes2.valueValidator
264
280
  });
281
+ SelectWithRef.defaultProps = {
282
+ actions: undefined
283
+ };
265
284
  var _default = SelectWithRef;
266
285
  exports.default = _default;