@shopgate/pwa-common 7.30.0-alpha.7 → 7.30.0-alpha.9

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 (306) hide show
  1. package/App.js +48 -6
  2. package/action-creators/app/index.js +75 -12
  3. package/action-creators/app/spec.js +96 -1
  4. package/action-creators/client/index.js +27 -5
  5. package/action-creators/client/spec.js +44 -1
  6. package/action-creators/error/index.js +15 -3
  7. package/action-creators/index.js +9 -1
  8. package/action-creators/menu/index.js +23 -4
  9. package/action-creators/menu/spec.js +37 -1
  10. package/action-creators/modal/index.js +15 -3
  11. package/action-creators/modal/spec.js +26 -1
  12. package/action-creators/page/index.js +24 -4
  13. package/action-creators/page/spec.js +38 -1
  14. package/action-creators/router/index.js +48 -7
  15. package/action-creators/url/index.js +24 -4
  16. package/action-creators/url/spec.js +45 -1
  17. package/action-creators/user/index.js +90 -13
  18. package/action-creators/user/spec.js +186 -2
  19. package/actions/app/handleDeepLink.js +11 -2
  20. package/actions/app/handleLink.js +62 -6
  21. package/actions/app/handlePushNotification.js +32 -4
  22. package/actions/app/handleUniversalLink.js +11 -2
  23. package/actions/app/registerLinkEvents.js +24 -3
  24. package/actions/client/fetchClientInformation.js +26 -2
  25. package/actions/menu/fetchMenu.js +23 -2
  26. package/actions/modal/closeModal.js +18 -2
  27. package/actions/modal/promiseMap.js +3 -1
  28. package/actions/modal/showModal.js +54 -8
  29. package/actions/page/fetchPageConfig.js +69 -2
  30. package/actions/page/getPageConfig.js +6 -2
  31. package/actions/page/index.js +1 -1
  32. package/actions/router/historyPop.js +12 -2
  33. package/actions/router/historyPopToRoute.js +27 -2
  34. package/actions/router/historyPush.js +12 -2
  35. package/actions/router/historyRedirect.js +21 -2
  36. package/actions/router/historyReplace.js +20 -3
  37. package/actions/router/historyReset.js +11 -2
  38. package/actions/router/historyResetTo.js +12 -2
  39. package/actions/router/index.js +17 -1
  40. package/actions/router/routeDidPop.js +11 -2
  41. package/actions/router/routeDidPush.js +13 -2
  42. package/actions/router/routeDidReplace.js +11 -2
  43. package/actions/router/routeDidReset.js +11 -2
  44. package/actions/router/routeDidUpdate.js +10 -2
  45. package/actions/router/routeWillPop.js +11 -2
  46. package/actions/router/routeWillPush.js +13 -2
  47. package/actions/router/routeWillReplace.js +11 -2
  48. package/actions/router/routeWillReset.js +11 -2
  49. package/actions/router/windowOpenOverride.js +10 -2
  50. package/actions/user/fetchRegisterUrl.js +36 -2
  51. package/actions/user/fetchUser.js +29 -3
  52. package/actions/user/getUser.js +6 -2
  53. package/actions/user/index.js +1 -1
  54. package/actions/user/login.js +76 -9
  55. package/actions/user/logout.js +30 -2
  56. package/collections/AuthRoutes.js +73 -14
  57. package/collections/Configuration.js +54 -7
  58. package/collections/EmbeddedMedia.js +84 -11
  59. package/collections/PersistedReducers.js +41 -6
  60. package/collections/Redirects.js +103 -17
  61. package/collections/index.js +5 -1
  62. package/collections/media-providers/MediaProvider.js +151 -26
  63. package/collections/media-providers/Vimeo.js +113 -19
  64. package/collections/media-providers/YouTube.js +74 -14
  65. package/collections/media-providers/index.js +3 -1
  66. package/collections/media-providers/style.js +52 -2
  67. package/components/Backdrop/index.js +95 -6
  68. package/components/Backdrop/spec.js +23 -1
  69. package/components/Backdrop/style.js +11 -2
  70. package/components/Button/index.js +47 -5
  71. package/components/Button/spec.js +36 -1
  72. package/components/Button/style.js +6 -1
  73. package/components/Checkbox/index.js +126 -32
  74. package/components/Checkbox/spec.js +94 -3
  75. package/components/Consume/helpers/buildParams.js +13 -2
  76. package/components/Consume/index.js +14 -2
  77. package/components/CountdownTimer/index.js +115 -17
  78. package/components/CountdownTimer/spec.js +126 -12
  79. package/components/Drawer/index.js +131 -16
  80. package/components/Drawer/spec.js +76 -1
  81. package/components/Drawer/style.js +37 -1
  82. package/components/Dropdown/index.js +65 -6
  83. package/components/Dropdown/style.js +4 -1
  84. package/components/Dropdown/transitions.js +34 -1
  85. package/components/Ellipsis/index.js +16 -2
  86. package/components/Ellipsis/spec.js +13 -1
  87. package/components/EmbeddedMedia/index.js +56 -6
  88. package/components/EmbeddedMedia/spec.js +52 -3
  89. package/components/ErrorBoundary/connector.js +9 -2
  90. package/components/ErrorBoundary/index.js +43 -7
  91. package/components/Grid/components/Item/index.js +40 -4
  92. package/components/Grid/components/Item/spec.js +23 -1
  93. package/components/Grid/components/Item/style.js +17 -3
  94. package/components/Grid/index.js +36 -4
  95. package/components/Grid/spec.js +23 -1
  96. package/components/Grid/style.js +11 -2
  97. package/components/HtmlSanitizer/connector.js +24 -3
  98. package/components/HtmlSanitizer/index.js +104 -12
  99. package/components/HtmlSanitizer/spec.js +214 -7
  100. package/components/I18n/components/FormatDate/index.js +26 -2
  101. package/components/I18n/components/FormatDate/spec.js +46 -1
  102. package/components/I18n/components/FormatNumber/index.js +34 -2
  103. package/components/I18n/components/FormatNumber/spec.js +41 -2
  104. package/components/I18n/components/FormatPrice/index.js +32 -2
  105. package/components/I18n/components/FormatPrice/spec.js +46 -1
  106. package/components/I18n/components/FormatTime/index.js +26 -2
  107. package/components/I18n/components/FormatTime/spec.js +43 -2
  108. package/components/I18n/components/I18nProvider/index.js +52 -9
  109. package/components/I18n/components/I18nProvider/spec.js +39 -1
  110. package/components/I18n/components/Placeholder/index.js +8 -2
  111. package/components/I18n/components/Placeholder/spec.js +30 -1
  112. package/components/I18n/components/Translate/index.js +68 -7
  113. package/components/I18n/components/Translate/spec.js +30 -1
  114. package/components/I18n/index.js +16 -1
  115. package/components/Icon/index.js +25 -2
  116. package/components/Icon/style.js +6 -1
  117. package/components/Image/Image.js +176 -19
  118. package/components/Image/ImageInner.js +48 -2
  119. package/components/Image/index.js +1 -1
  120. package/components/Image/style.js +29 -2
  121. package/components/InfiniteContainer/index.js +381 -49
  122. package/components/InfiniteContainer/spec.js +199 -10
  123. package/components/Input/components/DateInput.js +262 -6
  124. package/components/Input/components/MultiLineInput.js +98 -12
  125. package/components/Input/components/SimpleInput.js +207 -31
  126. package/components/Input/index.js +32 -3
  127. package/components/Input/spec.js +122 -1
  128. package/components/KeyboardConsumer/index.js +48 -7
  129. package/components/Link/connector.js +7 -1
  130. package/components/Link/index.js +96 -11
  131. package/components/Link/spec.js +56 -1
  132. package/components/Link/style.js +10 -1
  133. package/components/List/components/Item/index.js +35 -3
  134. package/components/List/components/Item/style.js +16 -1
  135. package/components/List/index.js +20 -2
  136. package/components/List/spec.js +31 -1
  137. package/components/Loading/index.js +6 -2
  138. package/components/Modal/index.js +38 -3
  139. package/components/Modal/style.js +36 -1
  140. package/components/ModalContainer/connector.js +17 -3
  141. package/components/ModalContainer/index.js +36 -3
  142. package/components/ModalContainer/spec.js +105 -5
  143. package/components/Picker/components/Button/index.js +34 -2
  144. package/components/Picker/components/Button/style.js +19 -1
  145. package/components/Picker/components/List/index.js +33 -2
  146. package/components/Picker/components/List/style.js +17 -1
  147. package/components/Picker/components/Modal/index.js +60 -7
  148. package/components/Picker/components/Modal/style.js +78 -1
  149. package/components/Picker/index.js +167 -21
  150. package/components/Picker/spec.js +83 -2
  151. package/components/Portal/index.js +130 -19
  152. package/components/ProductCharacteristics/connector.js +33 -4
  153. package/components/ProductCharacteristics/context.js +2 -1
  154. package/components/ProductCharacteristics/helpers/index.js +135 -21
  155. package/components/ProductCharacteristics/index.js +266 -31
  156. package/components/RangeSlider/components/Handle/index.js +25 -2
  157. package/components/RangeSlider/components/Handle/style.js +14 -1
  158. package/components/RangeSlider/helper.js +43 -8
  159. package/components/RangeSlider/index.js +228 -38
  160. package/components/RangeSlider/style.js +14 -1
  161. package/components/Route/RouteNotFound.js +46 -3
  162. package/components/Route/index.js +78 -10
  163. package/components/Router/connector.js +9 -2
  164. package/components/Router/index.js +237 -31
  165. package/components/ScannerContainer/connector.js +9 -2
  166. package/components/ScannerContainer/index.js +42 -6
  167. package/components/Select/components/Item/index.js +20 -4
  168. package/components/Select/components/Item/style.js +4 -1
  169. package/components/Select/index.js +149 -28
  170. package/components/Select/spec.js +86 -2
  171. package/components/Select/style.js +17 -1
  172. package/components/SelectBox/components/Item/index.js +47 -5
  173. package/components/SelectBox/components/Item/style.js +7 -1
  174. package/components/SelectBox/index.js +173 -17
  175. package/components/SelectBox/spec.js +59 -3
  176. package/components/SelectBox/style.js +18 -1
  177. package/components/Slider/index.js +6 -2
  178. package/components/SurroundPortals/index.js +26 -2
  179. package/components/Swiper/components/SwiperItem/index.js +28 -4
  180. package/components/Swiper/components/SwiperItem/spec.js +21 -1
  181. package/components/Swiper/components/SwiperItem/styles.js +5 -1
  182. package/components/Swiper/index.js +210 -18
  183. package/components/Swiper/styles.js +75 -7
  184. package/components/Toaster/index.js +10 -2
  185. package/components/Transition/index.js +89 -13
  186. package/components/Widgets/components/Widget/index.js +52 -4
  187. package/components/Widgets/components/Widget/spec.js +68 -3
  188. package/components/Widgets/components/Widget/style.js +21 -3
  189. package/components/Widgets/components/WidgetGrid/index.js +52 -7
  190. package/components/Widgets/components/WidgetGrid/spec.js +46 -2
  191. package/components/Widgets/components/WidgetGrid/style.js +8 -1
  192. package/components/Widgets/helpers/shouldShowWidget.js +44 -7
  193. package/components/Widgets/index.js +127 -15
  194. package/components/Widgets/spec.js +228 -6
  195. package/components/index.js +9 -1
  196. package/constants/ActionTypes.js +97 -19
  197. package/constants/Configuration.js +12 -2
  198. package/constants/Device.js +29 -2
  199. package/constants/DisplayOptions.js +8 -1
  200. package/constants/MenuIDs.js +2 -1
  201. package/constants/ModalTypes.js +1 -1
  202. package/constants/PageIDs.js +1 -1
  203. package/constants/Pipelines.js +7 -1
  204. package/constants/Portals.js +136 -3
  205. package/constants/Registration.js +3 -1
  206. package/constants/RoutePaths.js +13 -2
  207. package/constants/Tracking.js +3 -1
  208. package/constants/client.js +6 -1
  209. package/constants/ui.js +2 -1
  210. package/constants/user.js +6 -2
  211. package/context/index.js +33 -3
  212. package/helpers/config/index.js +139 -21
  213. package/helpers/config/mock.js +200 -8
  214. package/helpers/config/theme.js +50 -4
  215. package/helpers/data/index.js +204 -29
  216. package/helpers/data/spec.js +187 -7
  217. package/helpers/date/index.js +58 -6
  218. package/helpers/date/spec.js +92 -1
  219. package/helpers/dom/index.js +48 -11
  220. package/helpers/environment/index.js +14 -2
  221. package/helpers/html/decodeHTML.js +7 -1
  222. package/helpers/html/handleDOM.js +172 -21
  223. package/helpers/html/parseHTML.js +67 -12
  224. package/helpers/i18n/getDateFormatter.js +23 -4
  225. package/helpers/i18n/getNumberFormatter.js +32 -4
  226. package/helpers/i18n/getPriceFormatter.js +38 -4
  227. package/helpers/i18n/getTimeFormatter.js +23 -4
  228. package/helpers/i18n/getTranslator.js +62 -8
  229. package/helpers/i18n/index.js +5 -1
  230. package/helpers/i18n/mergeTranslations.js +36 -9
  231. package/helpers/i18n/messageCache.js +3 -1
  232. package/helpers/legacy/index.js +47 -9
  233. package/helpers/modal/withShowModal.js +13 -2
  234. package/helpers/portals/portalCollection.js +28 -6
  235. package/helpers/portals/routePortals.js +12 -1
  236. package/helpers/redux/compareObjects.js +7 -2
  237. package/helpers/redux/generateResultHash.js +36 -3
  238. package/helpers/redux/generateSortedHash.js +7 -2
  239. package/helpers/redux/hasExpired.js +10 -2
  240. package/helpers/redux/index.js +7 -1
  241. package/helpers/redux/mutable.js +143 -24
  242. package/helpers/redux/shouldFetchData.js +46 -10
  243. package/helpers/redux/shouldFetchFilters.js +17 -4
  244. package/helpers/router/index.js +49 -5
  245. package/helpers/style/index.js +43 -4
  246. package/helpers/style/spec.js +108 -2
  247. package/helpers/tracking/index.js +52 -9
  248. package/helpers/validation/index.js +39 -12
  249. package/helpers/validation/spec.js +10 -1
  250. package/package.json +3 -4
  251. package/providers/index.js +4 -1
  252. package/providers/loading/context.js +2 -1
  253. package/providers/loading/index.js +137 -22
  254. package/providers/toast/context.js +2 -1
  255. package/providers/toast/index.js +105 -11
  256. package/reducers/client/connectivity.js +22 -2
  257. package/reducers/client/index.js +7 -1
  258. package/reducers/client/info.js +27 -2
  259. package/reducers/index.js +23 -4
  260. package/reducers/menu/index.js +5 -1
  261. package/reducers/menu/menusById.js +41 -2
  262. package/reducers/modal/index.js +14 -2
  263. package/reducers/page/index.js +68 -5
  264. package/reducers/router/index.js +48 -2
  265. package/reducers/url/index.js +42 -3
  266. package/reducers/user/data.js +27 -2
  267. package/reducers/user/index.js +7 -1
  268. package/reducers/user/login.js +65 -2
  269. package/selectors/client.js +138 -21
  270. package/selectors/history.js +49 -11
  271. package/selectors/menu.js +34 -6
  272. package/selectors/modal.js +15 -4
  273. package/selectors/page.js +25 -4
  274. package/selectors/router.js +154 -30
  275. package/selectors/url.js +25 -4
  276. package/selectors/user.js +90 -13
  277. package/store/index.js +60 -6
  278. package/store/middelwares/logger.js +7 -1
  279. package/store/middelwares/streams.js +19 -2
  280. package/streams/app.js +60 -8
  281. package/streams/client.js +8 -2
  282. package/streams/error.js +14 -3
  283. package/streams/index.js +6 -1
  284. package/streams/interval.js +6 -2
  285. package/streams/main.js +27 -2
  286. package/streams/router.js +45 -8
  287. package/streams/user.js +89 -15
  288. package/streams/view.js +97 -25
  289. package/styles/reset/form.js +57 -5
  290. package/styles/reset/index.js +6 -1
  291. package/styles/reset/media.js +22 -1
  292. package/styles/reset/root.js +33 -1
  293. package/styles/reset/table.js +10 -1
  294. package/styles/reset/typography.js +26 -1
  295. package/subscriptions/app.js +148 -17
  296. package/subscriptions/error.js +292 -13
  297. package/subscriptions/helpers/buildRegisterUrl.js +25 -6
  298. package/subscriptions/helpers/clearUpInAppBrowser.js +14 -3
  299. package/subscriptions/helpers/handleLinks.js +267 -25
  300. package/subscriptions/helpers/pipeline.js +12 -1
  301. package/subscriptions/history.js +34 -6
  302. package/subscriptions/index.js +25 -4
  303. package/subscriptions/menu.js +22 -5
  304. package/subscriptions/mock.js +39 -7
  305. package/subscriptions/router.js +336 -23
  306. package/subscriptions/user.js +93 -3
@@ -1,4 +1,88 @@
1
- import React from'react';import{shallow,mount}from'enzyme';import Select from"./index";import SelectItem from"./components/Item";describe('<Select />',function(){jest.useFakeTimers();it('opens and closes the item list',function(){var wrapper=shallow(React.createElement(Select,null));var previousOpenState=wrapper.state('isOpen');wrapper.instance().toggleOpenState();expect(wrapper.state('isOpen')).toBe(!previousOpenState);previousOpenState=wrapper.state('isOpen');wrapper.instance().toggleOpenState();expect(wrapper.state('isOpen')).toBe(!previousOpenState);});it('renders without items',function(){var wrapper=mount(React.createElement(Select,null));wrapper.instance().toggleOpenState();expect(wrapper).toMatchSnapshot();expect(wrapper.find(SelectItem).length).toBe(0);});it('renders with implicit items (closed)',function(){var items=['a','b','c','d','e','f'];var wrapper=mount(React.createElement(Select,{items:items}));expect(wrapper).toMatchSnapshot();expect(wrapper.find(SelectItem).length).toBe(0);});it('renders with implicit items (opened)',function(){var items=['a','b','c','d','e','f'];var wrapper=mount(React.createElement(Select,{items:items}));wrapper.instance().toggleOpenState();wrapper.update();expect(wrapper).toMatchSnapshot();expect(wrapper.find(SelectItem).length).toBe(items.length);});it('accepts implicit and explicit items',function(){var items=['a','b',{value:'c'},'d',{value:'e',label:'E'},'f'];var wrapper=mount(React.createElement(Select,{items:items}));wrapper.instance().toggleOpenState();wrapper.update();expect(wrapper).toMatchSnapshot();expect(wrapper.find(SelectItem).length).toBe(items.length);var i=0;wrapper.find(SelectItem).forEach(function(item){var expectedLabel=items[i];if(expectedLabel.label){expectedLabel=expectedLabel.label;}if(expectedLabel.value){expectedLabel=expectedLabel.value;}expect(item.prop('label')).toBe(expectedLabel);i+=1;});});it('triggers callback on change',function(){var items=['a','b','c','d','e','f'];var selectionIndex=Math.floor(items.length/2);/**
1
+ import React from 'react';
2
+ import { shallow, mount } from 'enzyme';
3
+ import Select from "./index";
4
+ import SelectItem from "./components/Item";
5
+ describe('<Select />', () => {
6
+ jest.useFakeTimers();
7
+ it('opens and closes the item list', () => {
8
+ const wrapper = shallow(/*#__PURE__*/React.createElement(Select, null));
9
+ let previousOpenState = wrapper.state('isOpen');
10
+ wrapper.instance().toggleOpenState();
11
+ expect(wrapper.state('isOpen')).toBe(!previousOpenState);
12
+ previousOpenState = wrapper.state('isOpen');
13
+ wrapper.instance().toggleOpenState();
14
+ expect(wrapper.state('isOpen')).toBe(!previousOpenState);
15
+ });
16
+ it('renders without items', () => {
17
+ const wrapper = mount(/*#__PURE__*/React.createElement(Select, null));
18
+ wrapper.instance().toggleOpenState();
19
+ expect(wrapper).toMatchSnapshot();
20
+ expect(wrapper.find(SelectItem).length).toBe(0);
21
+ });
22
+ it('renders with implicit items (closed)', () => {
23
+ const items = ['a', 'b', 'c', 'd', 'e', 'f'];
24
+ const wrapper = mount(/*#__PURE__*/React.createElement(Select, {
25
+ items: items
26
+ }));
27
+ expect(wrapper).toMatchSnapshot();
28
+ expect(wrapper.find(SelectItem).length).toBe(0);
29
+ });
30
+ it('renders with implicit items (opened)', () => {
31
+ const items = ['a', 'b', 'c', 'd', 'e', 'f'];
32
+ const wrapper = mount(/*#__PURE__*/React.createElement(Select, {
33
+ items: items
34
+ }));
35
+ wrapper.instance().toggleOpenState();
36
+ wrapper.update();
37
+ expect(wrapper).toMatchSnapshot();
38
+ expect(wrapper.find(SelectItem).length).toBe(items.length);
39
+ });
40
+ it('accepts implicit and explicit items', () => {
41
+ const items = ['a', 'b', {
42
+ value: 'c'
43
+ }, 'd', {
44
+ value: 'e',
45
+ label: 'E'
46
+ }, 'f'];
47
+ const wrapper = mount(/*#__PURE__*/React.createElement(Select, {
48
+ items: items
49
+ }));
50
+ wrapper.instance().toggleOpenState();
51
+ wrapper.update();
52
+ expect(wrapper).toMatchSnapshot();
53
+ expect(wrapper.find(SelectItem).length).toBe(items.length);
54
+ let i = 0;
55
+ wrapper.find(SelectItem).forEach(item => {
56
+ let expectedLabel = items[i];
57
+ if (expectedLabel.label) {
58
+ expectedLabel = expectedLabel.label;
59
+ }
60
+ if (expectedLabel.value) {
61
+ expectedLabel = expectedLabel.value;
62
+ }
63
+ expect(item.prop('label')).toBe(expectedLabel);
64
+ i += 1;
65
+ });
66
+ });
67
+ it('triggers callback on change', () => {
68
+ const items = ['a', 'b', 'c', 'd', 'e', 'f'];
69
+ const selectionIndex = Math.floor(items.length / 2);
70
+
71
+ /**
2
72
  * Mocked callback for the onSelect event
3
73
  * @param {string} value Mocked value
4
- */var callback=function callback(value){expect(value).toBe(items[selectionIndex]);};var wrapper=mount(React.createElement(Select,{items:items,onChange:callback}));wrapper.instance().toggleOpenState();wrapper.update();expect(wrapper).toMatchSnapshot();var node=wrapper.find(SelectItem).at(selectionIndex);node.prop('onSelect')(node.prop('value'),node.prop('label'));});});
74
+ */
75
+ const callback = value => {
76
+ expect(value).toBe(items[selectionIndex]);
77
+ };
78
+ const wrapper = mount(/*#__PURE__*/React.createElement(Select, {
79
+ items: items,
80
+ onChange: callback
81
+ }));
82
+ wrapper.instance().toggleOpenState();
83
+ wrapper.update();
84
+ expect(wrapper).toMatchSnapshot();
85
+ const node = wrapper.find(SelectItem).at(selectionIndex);
86
+ node.prop('onSelect')(node.prop('value'), node.prop('label'));
87
+ });
88
+ });
@@ -1 +1,17 @@
1
- import{css}from'glamor';var container=css({margin:0,padding:0}).toString();var selectHandle=css({"float":'right'}).toString();var items=css({position:'absolute',width:'100%'}).toString();export default{container:container,selectHandle:selectHandle,items:items};
1
+ import { css } from 'glamor';
2
+ const container = css({
3
+ margin: 0,
4
+ padding: 0
5
+ }).toString();
6
+ const selectHandle = css({
7
+ float: 'right'
8
+ }).toString();
9
+ const items = css({
10
+ position: 'absolute',
11
+ width: '100%'
12
+ }).toString();
13
+ export default {
14
+ container,
15
+ selectHandle,
16
+ items
17
+ };
@@ -1,10 +1,52 @@
1
- function _typeof(obj){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);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor;}function _callSuper(_this,derived,args){function isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{return!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch(e){return false;}}derived=_getPrototypeOf(derived);return _possibleConstructorReturn(_this,isNativeReflectConstruct()?Reflect.construct(derived,args||[],_getPrototypeOf(_this).constructor):derived.apply(_this,args));}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call;}return _assertThisInitialized(self);}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o);};return _getPrototypeOf(o);}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function");}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass);}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o;};return _setPrototypeOf(o,p);}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;}import React,{Component}from'react';import classNames from'classnames';import PropTypes from'prop-types';import I18n from"../../../I18n";import{item}from"./style";/**
1
+ import React, { Component } from 'react';
2
+ import classNames from 'classnames';
3
+ import PropTypes from 'prop-types';
4
+ import I18n from "../../../I18n";
5
+ import { item } from "./style";
6
+
7
+ /**
2
8
  * The SelectBoxItem component.
3
9
  * @param {Object} props The components props.
4
10
  * @returns {JSX}
5
- */var SelectBoxItem=/*#__PURE__*/function(_Component){function SelectBoxItem(){var _this2;_classCallCheck(this,SelectBoxItem);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}_this2=_callSuper(this,SelectBoxItem,[].concat(args));/**
6
- * Calls the handleSelectionUpdate prop and prevents further events.
7
- */_defineProperty(_this2,"handleSelectionUpdate",function(){_this2.props.handleSelectionUpdate(_this2.props.value);});return _this2;}_inherits(SelectBoxItem,_Component);return _createClass(SelectBoxItem,[{key:"render",value:/**
11
+ */
12
+ class SelectBoxItem extends Component {
13
+ constructor(...args) {
14
+ super(...args);
15
+ /**
16
+ * Calls the handleSelectionUpdate prop and prevents further events.
17
+ */
18
+ this.handleSelectionUpdate = () => {
19
+ this.props.handleSelectionUpdate(this.props.value);
20
+ };
21
+ }
22
+ /**
8
23
  * Renders the component
9
24
  * @returns {JSX}
10
- */function render(){var Wrapper=this.props.wrapper;var _this$props$className=this.props.classNames,selectItem=_this$props$className.selectItem,selectItemSelected=_this$props$className.selectItemSelected;return React.createElement("li",{className:classNames(selectItem,item,_defineProperty({},selectItemSelected,this.props.isSelected)),onKeyUp:function onKeyUp(){},onClick:this.handleSelectionUpdate,"data-test-id":this.props.label,role:"menuitem",ref:this.props.forwardedRef,tabIndex:this.props.isSelected?'0':'-1',"aria-current":this.props.isSelected},React.createElement(Wrapper,null,React.createElement(I18n.Text,{string:this.props.label})));}}]);}(Component);_defineProperty(SelectBoxItem,"defaultProps",{forwardedRef:null,classNames:{}});export default SelectBoxItem;
25
+ */
26
+ render() {
27
+ const Wrapper = this.props.wrapper;
28
+ const {
29
+ selectItem,
30
+ selectItemSelected
31
+ } = this.props.classNames;
32
+ return /*#__PURE__*/React.createElement("li", {
33
+ className: classNames(selectItem, item, {
34
+ [selectItemSelected]: this.props.isSelected
35
+ }),
36
+ onKeyUp: () => {},
37
+ onClick: this.handleSelectionUpdate,
38
+ "data-test-id": this.props.label,
39
+ role: "menuitem",
40
+ ref: this.props.forwardedRef,
41
+ tabIndex: this.props.isSelected ? '0' : '-1',
42
+ "aria-current": this.props.isSelected
43
+ }, /*#__PURE__*/React.createElement(Wrapper, null, /*#__PURE__*/React.createElement(I18n.Text, {
44
+ string: this.props.label
45
+ })));
46
+ }
47
+ }
48
+ SelectBoxItem.defaultProps = {
49
+ forwardedRef: null,
50
+ classNames: {}
51
+ };
52
+ export default SelectBoxItem;
@@ -1 +1,7 @@
1
- import{css}from'glamor';export var item=css({cursor:'pointer'}).toString();export var selected=css({fontWeight:500});
1
+ import { css } from 'glamor';
2
+ export const item = css({
3
+ cursor: 'pointer'
4
+ }).toString();
5
+ export const selected = css({
6
+ fontWeight: 500
7
+ });
@@ -1,24 +1,180 @@
1
- function _typeof(obj){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);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor;}function _callSuper(_this,derived,args){function isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{return!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch(e){return false;}}derived=_getPrototypeOf(derived);return _possibleConstructorReturn(_this,isNativeReflectConstruct()?Reflect.construct(derived,args||[],_getPrototypeOf(_this).constructor):derived.apply(_this,args));}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call;}return _assertThisInitialized(self);}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o);};return _getPrototypeOf(o);}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function");}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass);}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o;};return _setPrototypeOf(o,p);}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;}import React,{Component}from'react';import PropTypes from'prop-types';import classNames from'classnames';import find from'lodash/find';import Dropdown from"../Dropdown";import I18n from"../I18n";import SelectBoxItem from"./components/Item";import styles from"./style";/**
1
+ import React, { Component } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import classNames from 'classnames';
4
+ import find from 'lodash/find';
5
+ import Dropdown from "../Dropdown";
6
+ import I18n from "../I18n";
7
+ import SelectBoxItem from "./components/Item";
8
+ import styles from "./style";
9
+
10
+ /**
2
11
  * The select box component.
3
- */var SelectBox=/*#__PURE__*/function(_Component){/**
12
+ */
13
+ class SelectBox extends Component {
14
+ /**
4
15
  * Initializes the component.
5
16
  * @param {Object} props The components props.
6
- */function SelectBox(props){var _this2;_classCallCheck(this,SelectBox);_this2=_callSuper(this,SelectBox,[props]);/**
7
- * When dropdown animation is finished.
8
- */_defineProperty(_this2,"onDropdownComplete",function(){_this2.dropdownCompleted=true;});/**
9
- * Handles any interaction the user does outside of the component.
10
- * In this case the select gets closed.
11
- * @param {Object} event The event object.
12
- */_defineProperty(_this2,"handleInteractionOutside",function(event){_this2.setState({isOpen:false});event.preventDefault();event.stopPropagation();});/**
13
- * Sets the open state to true
14
- */_defineProperty(_this2,"handleOpenList",function(){if(_this2.state.isOpen){return;}_this2.dropdownCompleted=false;_this2.setState({isOpen:true});if(_this2.firstItemRef){_this2.firstItemRef.focus();}});/**
15
- * Sets the new active selection.
16
- * @param {string} value Value of the selected item.
17
- */_defineProperty(_this2,"handleSelectionUpdate",function(value){var selection=find(_this2.props.items,{value:value});_this2.setState({selected:selection,isOpen:false});// Delay the callback to make sure actions are fired after animations are done.
18
- setTimeout(function(){_this2.props.handleSelectionUpdate(selection.value);},_this2.props.duration);if(_this2.controlRef){_this2.controlRef.focus();}});/** @param {HTMLElement} ref The element */_defineProperty(_this2,"setControlRef",function(ref){_this2.controlRef=ref;});/** @param {HTMLElement} ref The element */_defineProperty(_this2,"setFirstItemRef",function(ref){_this2.firstItemRef=ref;});_this2.dropdownCompleted=false;_this2.state={isOpen:false,selected:find(props.items,{value:props.initialValue})};return _this2;}/**
17
+ */
18
+ constructor(props) {
19
+ super(props);
20
+ /**
21
+ * When dropdown animation is finished.
22
+ */
23
+ this.onDropdownComplete = () => {
24
+ this.dropdownCompleted = true;
25
+ };
26
+ /**
27
+ * Handles any interaction the user does outside of the component.
28
+ * In this case the select gets closed.
29
+ * @param {Object} event The event object.
30
+ */
31
+ this.handleInteractionOutside = event => {
32
+ this.setState({
33
+ isOpen: false
34
+ });
35
+ event.preventDefault();
36
+ event.stopPropagation();
37
+ };
38
+ /**
39
+ * Sets the open state to true
40
+ */
41
+ this.handleOpenList = () => {
42
+ if (this.state.isOpen) {
43
+ return;
44
+ }
45
+ this.dropdownCompleted = false;
46
+ this.setState({
47
+ isOpen: true
48
+ });
49
+ if (this.firstItemRef) {
50
+ this.firstItemRef.focus();
51
+ }
52
+ };
53
+ /**
54
+ * Sets the new active selection.
55
+ * @param {string} value Value of the selected item.
56
+ */
57
+ this.handleSelectionUpdate = value => {
58
+ const selection = find(this.props.items, {
59
+ value
60
+ });
61
+ this.setState({
62
+ selected: selection,
63
+ isOpen: false
64
+ });
65
+
66
+ // Delay the callback to make sure actions are fired after animations are done.
67
+ setTimeout(() => {
68
+ this.props.handleSelectionUpdate(selection.value);
69
+ }, this.props.duration);
70
+ if (this.controlRef) {
71
+ this.controlRef.focus();
72
+ }
73
+ };
74
+ /** @param {HTMLElement} ref The element */
75
+ this.setControlRef = ref => {
76
+ this.controlRef = ref;
77
+ };
78
+ /** @param {HTMLElement} ref The element */
79
+ this.setFirstItemRef = ref => {
80
+ this.firstItemRef = ref;
81
+ };
82
+ this.dropdownCompleted = false;
83
+ this.state = {
84
+ isOpen: false,
85
+ selected: find(props.items, {
86
+ value: props.initialValue
87
+ })
88
+ };
89
+ }
90
+
91
+ /**
19
92
  * Reset selected when changing the initial value.
20
93
  * @param {Object} nextProps The next props the component will receive.
21
- */_inherits(SelectBox,_Component);return _createClass(SelectBox,[{key:"UNSAFE_componentWillReceiveProps",value:function UNSAFE_componentWillReceiveProps(nextProps){if(this.props.initialValue!==nextProps.initialValue){this.setState({selected:find(nextProps.items,{value:nextProps.initialValue})});}}},{key:"render",value:/**
94
+ */
95
+ UNSAFE_componentWillReceiveProps(nextProps) {
96
+ if (this.props.initialValue !== nextProps.initialValue) {
97
+ this.setState({
98
+ selected: find(nextProps.items, {
99
+ value: nextProps.initialValue
100
+ })
101
+ });
102
+ }
103
+ }
104
+ /**
22
105
  * Renders the component
23
106
  * @returns {JSX}
24
- */function render(){var _this3=this;var Icon=this.props.icon;var _this$props$className=this.props.classNames,icon=_this$props$className.icon,_this$props$className2=_this$props$className.iconOpen,iconOpen=_this$props$className2===void 0?null:_this$props$className2,selection=_this$props$className.selection,button=_this$props$className.button,dropdown=_this$props$className.dropdown,selectItem=_this$props$className.selectItem,selectItemSelected=_this$props$className.selectItemSelected;var buttonLabel=this.state.selected?this.state.selected.label:this.props.defaultText;var iconClasses=classNames(icon,_defineProperty({},iconOpen,this.state.isOpen&&iconOpen!==null));return React.createElement("div",{className:"".concat(this.props.className," common__select-box"),"data-test-id":this.props.testId},React.createElement("button",{className:button,onClick:this.handleOpenList,"data-test-id":buttonLabel,type:"button","aria-haspopup":true,"aria-expanded":this.state.isOpen?true:null,"aria-controls":buttonLabel,ref:this.setControlRef},React.createElement("span",{className:selection},React.createElement(I18n.Text,{string:buttonLabel})),React.createElement("div",{className:iconClasses},React.createElement(Icon,null))),React.createElement(Dropdown,{className:dropdown,isOpen:this.state.isOpen,onComplete:this.onDropdownComplete,duration:this.props.duration},React.createElement("ul",{role:"menu",id:buttonLabel,tabIndex:"-1"},this.props.items.map(function(item){return React.createElement(SelectBoxItem,{classNames:{selectItem:selectItem,selectItemSelected:selectItemSelected},wrapper:_this3.props.item,key:item.value,value:item.value,label:item.label,handleSelectionUpdate:_this3.handleSelectionUpdate,isSelected:buttonLabel===item.label,forwardedRef:buttonLabel===item.label?_this3.setFirstItemRef:null});}))),this.state.isOpen&&React.createElement("button",{className:styles.overlay,onClick:this.handleInteractionOutside,onTouchMove:this.handleInteractionOutside,type:"button","aria-hidden":true}));}}]);}(Component);_defineProperty(SelectBox,"defaultProps",{className:'',classNames:{},duration:225,defaultText:'filter.sort.default',handleSelectionUpdate:function handleSelectionUpdate(){},initialValue:null,testId:null});export default SelectBox;
107
+ */
108
+ render() {
109
+ const Icon = this.props.icon;
110
+ const {
111
+ icon,
112
+ iconOpen = null,
113
+ selection,
114
+ button,
115
+ dropdown,
116
+ selectItem,
117
+ selectItemSelected
118
+ } = this.props.classNames;
119
+ const buttonLabel = this.state.selected ? this.state.selected.label : this.props.defaultText;
120
+ const iconClasses = classNames(icon, {
121
+ [iconOpen]: this.state.isOpen && iconOpen !== null
122
+ });
123
+ return /*#__PURE__*/React.createElement("div", {
124
+ className: `${this.props.className} common__select-box`,
125
+ "data-test-id": this.props.testId
126
+ }, /*#__PURE__*/React.createElement("button", {
127
+ className: button,
128
+ onClick: this.handleOpenList,
129
+ "data-test-id": buttonLabel,
130
+ type: "button",
131
+ "aria-haspopup": true,
132
+ "aria-expanded": this.state.isOpen ? true : null,
133
+ "aria-controls": buttonLabel,
134
+ ref: this.setControlRef
135
+ }, /*#__PURE__*/React.createElement("span", {
136
+ className: selection
137
+ }, /*#__PURE__*/React.createElement(I18n.Text, {
138
+ string: buttonLabel
139
+ })), /*#__PURE__*/React.createElement("div", {
140
+ className: iconClasses
141
+ }, /*#__PURE__*/React.createElement(Icon, null))), /*#__PURE__*/React.createElement(Dropdown, {
142
+ className: dropdown,
143
+ isOpen: this.state.isOpen,
144
+ onComplete: this.onDropdownComplete,
145
+ duration: this.props.duration
146
+ }, /*#__PURE__*/React.createElement("ul", {
147
+ role: "menu",
148
+ id: buttonLabel,
149
+ tabIndex: "-1"
150
+ }, this.props.items.map(item => /*#__PURE__*/React.createElement(SelectBoxItem, {
151
+ classNames: {
152
+ selectItem,
153
+ selectItemSelected
154
+ },
155
+ wrapper: this.props.item,
156
+ key: item.value,
157
+ value: item.value,
158
+ label: item.label,
159
+ handleSelectionUpdate: this.handleSelectionUpdate,
160
+ isSelected: buttonLabel === item.label,
161
+ forwardedRef: buttonLabel === item.label ? this.setFirstItemRef : null
162
+ })))), this.state.isOpen && /*#__PURE__*/React.createElement("button", {
163
+ className: styles.overlay,
164
+ onClick: this.handleInteractionOutside,
165
+ onTouchMove: this.handleInteractionOutside,
166
+ type: "button",
167
+ "aria-hidden": true
168
+ }));
169
+ }
170
+ }
171
+ SelectBox.defaultProps = {
172
+ className: '',
173
+ classNames: {},
174
+ duration: 225,
175
+ defaultText: 'filter.sort.default',
176
+ handleSelectionUpdate: () => {},
177
+ initialValue: null,
178
+ testId: null
179
+ };
180
+ export default SelectBox;
@@ -1,9 +1,65 @@
1
- import React from'react';import PropTypes from'prop-types';import{mount}from'enzyme';import SelectBox from"./index";/**
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { mount } from 'enzyme';
4
+ import SelectBox from "./index";
5
+
6
+ /**
2
7
  * Mock Icon component.
3
8
  * @returns {JSX}
4
- */var MockIconComponent=function MockIconComponent(){return React.createElement("span",{id:"icon"});};/**
9
+ */
10
+ const MockIconComponent = () => /*#__PURE__*/React.createElement("span", {
11
+ id: "icon"
12
+ });
13
+
14
+ /**
5
15
  * Mock Item component.
6
16
  * @param {Object} props The components props.
7
17
  * @param {JSX} props.children The components children.
8
18
  * @returns {JSX}
9
- */var MockItemComponent=function MockItemComponent(_ref){var children=_ref.children;return React.createElement("div",null,children);};describe('<SelectBox>',function(){var dummyItems=[{label:'My item #1',value:'item_1'},{label:'My item #2',value:'item_2'},{label:'My item #3',value:'item_3'}];it('should render the selectbox with given mock components',function(){var wrapper=mount(React.createElement(SelectBox,{icon:MockIconComponent,item:MockItemComponent,items:dummyItems}));expect(wrapper).toMatchSnapshot();expect(wrapper.find(MockIconComponent).length).toEqual(1);expect(wrapper.find(MockItemComponent).length).toEqual(3);});it('should render with a default text',function(){var wrapper=mount(React.createElement(SelectBox,{icon:MockIconComponent,item:MockItemComponent,items:dummyItems,defaultText:"Foo"}));expect(wrapper).toMatchSnapshot();expect(wrapper.find('span').at(0).text()).toEqual('Foo');});it('should render with a preselected selection',function(){var wrapper=mount(React.createElement(SelectBox,{icon:MockIconComponent,item:MockItemComponent,items:dummyItems,defaultText:"Foo",initialValue:"item_2"}));expect(wrapper).toMatchSnapshot();expect(wrapper.find('span').at(0).text()).toEqual('My item #2');});});
19
+ */
20
+ const MockItemComponent = ({
21
+ children
22
+ }) => /*#__PURE__*/React.createElement("div", null, children);
23
+ describe('<SelectBox>', () => {
24
+ const dummyItems = [{
25
+ label: 'My item #1',
26
+ value: 'item_1'
27
+ }, {
28
+ label: 'My item #2',
29
+ value: 'item_2'
30
+ }, {
31
+ label: 'My item #3',
32
+ value: 'item_3'
33
+ }];
34
+ it('should render the selectbox with given mock components', () => {
35
+ const wrapper = mount(/*#__PURE__*/React.createElement(SelectBox, {
36
+ icon: MockIconComponent,
37
+ item: MockItemComponent,
38
+ items: dummyItems
39
+ }));
40
+ expect(wrapper).toMatchSnapshot();
41
+ expect(wrapper.find(MockIconComponent).length).toEqual(1);
42
+ expect(wrapper.find(MockItemComponent).length).toEqual(3);
43
+ });
44
+ it('should render with a default text', () => {
45
+ const wrapper = mount(/*#__PURE__*/React.createElement(SelectBox, {
46
+ icon: MockIconComponent,
47
+ item: MockItemComponent,
48
+ items: dummyItems,
49
+ defaultText: "Foo"
50
+ }));
51
+ expect(wrapper).toMatchSnapshot();
52
+ expect(wrapper.find('span').at(0).text()).toEqual('Foo');
53
+ });
54
+ it('should render with a preselected selection', () => {
55
+ const wrapper = mount(/*#__PURE__*/React.createElement(SelectBox, {
56
+ icon: MockIconComponent,
57
+ item: MockItemComponent,
58
+ items: dummyItems,
59
+ defaultText: "Foo",
60
+ initialValue: "item_2"
61
+ }));
62
+ expect(wrapper).toMatchSnapshot();
63
+ expect(wrapper.find('span').at(0).text()).toEqual('My item #2');
64
+ });
65
+ });
@@ -1 +1,18 @@
1
- import{css}from'glamor';var overlay=css({position:'fixed',top:0,left:0,width:'100%',height:'100%',overflow:'auto',zIndex:1,outline:0}).toString();var rotatedIcon=css({transform:'rotate(180deg)'}).toString();export default{overlay:overlay,rotatedIcon:rotatedIcon};
1
+ import { css } from 'glamor';
2
+ const overlay = css({
3
+ position: 'fixed',
4
+ top: 0,
5
+ left: 0,
6
+ width: '100%',
7
+ height: '100%',
8
+ overflow: 'auto',
9
+ zIndex: 1,
10
+ outline: 0
11
+ }).toString();
12
+ const rotatedIcon = css({
13
+ transform: 'rotate(180deg)'
14
+ }).toString();
15
+ export default {
16
+ overlay,
17
+ rotatedIcon
18
+ };
@@ -1,5 +1,9 @@
1
- import Swiper from"../Swiper";/**
1
+ import Swiper from "../Swiper";
2
+
3
+ /**
2
4
  * The basic slider component.
3
5
  * @param {Object} props The component properties.
4
6
  * @deprecated
5
- */var Slider=Swiper;export default Slider;
7
+ */
8
+ const Slider = Swiper;
9
+ export default Slider;
@@ -1,4 +1,9 @@
1
- import React,{Fragment}from'react';import PropTypes from'prop-types';import Portal from"../Portal";import{AFTER,BEFORE}from"../../constants/Portals";/**
1
+ import React, { Fragment } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import Portal from "../Portal";
4
+ import { AFTER, BEFORE } from "../../constants/Portals";
5
+
6
+ /**
2
7
  * The SurroundPortals component renders three Portal component. The main portal is wrapped around
3
8
  * its children, the two additional portals are rendered before and after the main portal.
4
9
  * The names of the additional portals are automatically created from the name of the main portal
@@ -9,4 +14,23 @@ import React,{Fragment}from'react';import PropTypes from'prop-types';import Port
9
14
  * @param {Object} props.portalProps Props that are assigned to the portals
10
15
  * @param {React.ReactNode} props.children Component children
11
16
  * @returns {JSX.Element}
12
- */var SurroundPortals=function SurroundPortals(_ref){var portalName=_ref.portalName,portalProps=_ref.portalProps,children=_ref.children;return React.createElement(Fragment,null,React.createElement(Portal,{name:"".concat(portalName,".").concat(BEFORE),props:portalProps}),React.createElement(Portal,{name:portalName,props:portalProps},children),React.createElement(Portal,{name:"".concat(portalName,".").concat(AFTER),props:portalProps}));};SurroundPortals.defaultProps={children:null,portalProps:null};export default SurroundPortals;
17
+ */
18
+ const SurroundPortals = ({
19
+ portalName,
20
+ portalProps,
21
+ children
22
+ }) => /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(Portal, {
23
+ name: `${portalName}.${BEFORE}`,
24
+ props: portalProps
25
+ }), /*#__PURE__*/React.createElement(Portal, {
26
+ name: portalName,
27
+ props: portalProps
28
+ }, children), /*#__PURE__*/React.createElement(Portal, {
29
+ name: `${portalName}.${AFTER}`,
30
+ props: portalProps
31
+ }));
32
+ SurroundPortals.defaultProps = {
33
+ children: null,
34
+ portalProps: null
35
+ };
36
+ export default SurroundPortals;
@@ -1,8 +1,32 @@
1
- var _excluded=["children","className"];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);}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;}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;}import React from'react';import PropTypes from'prop-types';import classNames from'classnames';// eslint-disable-next-line import/no-unresolved
2
- import{SwiperSlide}from'swiper/react';import{item}from"./styles";/**
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import React from 'react';
3
+ import PropTypes from 'prop-types';
4
+ import classNames from 'classnames';
5
+ // eslint-disable-next-line import/no-unresolved
6
+ import { SwiperSlide } from 'swiper/react';
7
+ import { item } from "./styles";
8
+
9
+ /**
3
10
  * @typedef {import('swiper/react').SwiperSlideProps} SwiperSlideProps
4
- */ /**
11
+ */
12
+
13
+ /**
5
14
  * The basic swiper item component.
6
15
  * @param {SwiperSlideProps} props The component props.
7
16
  * @returns {React.Node}
8
- */function SwiperItem(_ref){var children=_ref.children,className=_ref.className,slideProps=_objectWithoutProperties(_ref,_excluded);return React.createElement(SwiperSlide,_extends({},slideProps,{className:classNames(item,className),"data-test-id":"Slider"}),children);}SwiperItem.displayName='SwiperSlide';SwiperItem.defaultProps={className:null};export default SwiperItem;
17
+ */
18
+ function SwiperItem({
19
+ children,
20
+ className,
21
+ ...slideProps
22
+ }) {
23
+ return /*#__PURE__*/React.createElement(SwiperSlide, _extends({}, slideProps, {
24
+ className: classNames(item, className),
25
+ "data-test-id": "Slider"
26
+ }), children);
27
+ }
28
+ SwiperItem.displayName = 'SwiperSlide';
29
+ SwiperItem.defaultProps = {
30
+ className: null
31
+ };
32
+ export default SwiperItem;
@@ -1 +1,21 @@
1
- import React from'react';import{shallow}from'enzyme';import SwiperItem from'.';describe('<SwiperItem />',function(){it('should not render without children',function(){var wrapper=shallow(React.createElement(SwiperItem,null,React.createElement("div",null)));expect(wrapper).toMatchSnapshot();expect(wrapper.html()).toEqual('<div class="swiper-slide css-10a4qrv" data-test-id="Slider"><div></div></div>');});it('should add custom className',function(){var wrapper=shallow(React.createElement(SwiperItem,{className:"test"},React.createElement("div",null)));expect(wrapper).toMatchSnapshot();expect(wrapper.html()).toEqual('<div class="swiper-slide css-10a4qrv test" data-test-id="Slider"><div></div></div>');});});
1
+ import React from 'react';
2
+ import { shallow } from 'enzyme';
3
+ import SwiperItem from '.';
4
+ jest.mock('react', () => ({
5
+ ...jest.requireActual('react'),
6
+ useLayoutEffect: jest.requireActual('react').useEffect
7
+ }));
8
+ describe('<SwiperItem />', () => {
9
+ it('should not render without children', () => {
10
+ const wrapper = shallow(/*#__PURE__*/React.createElement(SwiperItem, null, /*#__PURE__*/React.createElement("div", null)));
11
+ expect(wrapper).toMatchSnapshot();
12
+ expect(wrapper.html()).toEqual('<div class="swiper-slide css-10a4qrv" data-test-id="Slider"><div></div></div>');
13
+ });
14
+ it('should add custom className', () => {
15
+ const wrapper = shallow(/*#__PURE__*/React.createElement(SwiperItem, {
16
+ className: "test"
17
+ }, /*#__PURE__*/React.createElement("div", null)));
18
+ expect(wrapper).toMatchSnapshot();
19
+ expect(wrapper.html()).toEqual('<div class="swiper-slide css-10a4qrv test" data-test-id="Slider"><div></div></div>');
20
+ });
21
+ });
@@ -1 +1,5 @@
1
- import{css}from'glamor';export var item=css({position:'relative',height:'100%'}).toString();
1
+ import { css } from 'glamor';
2
+ export const item = css({
3
+ position: 'relative',
4
+ height: '100%'
5
+ }).toString();