@jetshop/ui 5.13.2 → 5.13.12-0

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 (556) hide show
  1. package/Accordion/Accordion.d.ts +33 -33
  2. package/Accordion/Accordion.js +58 -58
  3. package/Accordion/Accordion.test.js +73 -73
  4. package/Accordion/__doc_utils__/AccordionHeader.js +12 -12
  5. package/Auth/FormFields/CountriesInput.d.ts +14 -14
  6. package/Auth/FormFields/CountriesInput.js +27 -27
  7. package/Auth/LogInBehavior.d.ts +22 -22
  8. package/Auth/LogInBehavior.js +23 -23
  9. package/Auth/LogInFormProvider.d.ts +7 -7
  10. package/Auth/LogInFormProvider.js +70 -70
  11. package/Auth/LogOut.d.ts +10 -10
  12. package/Auth/LogOut.js +23 -23
  13. package/Auth/logInValidator.d.ts +8 -8
  14. package/Auth/logInValidator.js +15 -15
  15. package/Breadcrumbs/Breadcrumbs.d.ts +14 -14
  16. package/Breadcrumbs/Breadcrumbs.js +83 -83
  17. package/Breadcrumbs/getParentsOrCanonicalRoute.d.ts +3 -3
  18. package/Breadcrumbs/getParentsOrCanonicalRoute.js +13 -13
  19. package/Breadcrumbs/index.d.ts +1 -1
  20. package/Breadcrumbs/index.js +1 -1
  21. package/Breakpoints.d.ts +12 -12
  22. package/Breakpoints.js +35 -35
  23. package/Button/Button.d.ts +14 -14
  24. package/Button/Button.js +59 -59
  25. package/Button/OutlineButton.d.ts +4 -4
  26. package/Button/OutlineButton.js +9 -9
  27. package/Button/SecondaryButton.d.ts +3 -3
  28. package/Button/SecondaryButton.js +8 -8
  29. package/Button/TrendButton.d.ts +3 -3
  30. package/Button/TrendButton.js +7 -7
  31. package/Button/index.d.ts +4 -4
  32. package/Button/index.js +4 -4
  33. package/CategoryLink.d.ts +9 -9
  34. package/CategoryLink.js +42 -42
  35. package/ChannelSelector/ChannelListItem.d.ts +10 -10
  36. package/ChannelSelector/ChannelListItem.js +50 -50
  37. package/ChannelSelector/ChannelListItem.test.js +85 -85
  38. package/ChannelSelector/ChannelSelector.d.ts +63 -63
  39. package/ChannelSelector/ChannelSelector.js +79 -79
  40. package/ChannelSelector/ChannelSelector.test.js +167 -167
  41. package/ChannelSelector/ChannelSelectorButtons.d.ts +3 -3
  42. package/ChannelSelector/ChannelSelectorButtons.js +19 -19
  43. package/ChannelSelector/Channels.d.ts +17 -17
  44. package/ChannelSelector/Channels.js +11 -11
  45. package/ChannelSelector/Channels.test.js +90 -90
  46. package/ChannelSelector/LargeSelector.d.ts +3 -3
  47. package/ChannelSelector/LargeSelector.js +66 -66
  48. package/ChannelSelector/MiniSelector.d.ts +4 -4
  49. package/ChannelSelector/MiniSelector.js +57 -57
  50. package/ChannelSelector/Region.d.ts +28 -28
  51. package/ChannelSelector/Region.js +20 -20
  52. package/ChannelSelector/Region.test.js +37 -37
  53. package/ChannelSelector/exampleChannels.js +577 -577
  54. package/ChannelSelector/groupBy.d.ts +7 -7
  55. package/ChannelSelector/groupBy.js +15 -15
  56. package/ChannelSelector/groupBy.test.js +42 -42
  57. package/Checkbox/Checkbox.d.ts +10 -10
  58. package/Checkbox/Checkbox.js +68 -68
  59. package/Checkbox/Checkbox.js.map +1 -1
  60. package/Checkbox/CheckboxGroup.d.ts +23 -23
  61. package/Checkbox/CheckboxGroup.js +21 -21
  62. package/Checkbox/index.d.ts +2 -2
  63. package/Checkbox/index.js +2 -2
  64. package/ContentPageLink.d.ts +9 -9
  65. package/ContentPageLink.js +36 -36
  66. package/ContentRenderer.d.ts +9 -9
  67. package/ContentRenderer.js +35 -35
  68. package/DropdownMenu/Button.d.ts +7 -7
  69. package/DropdownMenu/Button.js +31 -31
  70. package/DropdownMenu/DropdownMenu.d.ts +21 -21
  71. package/DropdownMenu/DropdownMenu.js +71 -71
  72. package/DropdownMenu/Item.d.ts +13 -13
  73. package/DropdownMenu/Item.js +47 -47
  74. package/DropdownMenu/Items.d.ts +16 -16
  75. package/DropdownMenu/Items.js +52 -52
  76. package/DropdownMenu/index.d.ts +4 -4
  77. package/DropdownMenu/index.js +4 -4
  78. package/ErrorBoundary/Generic.d.ts +17 -17
  79. package/ErrorBoundary/Generic.js +68 -68
  80. package/ErrorBoundary/PassThrough.d.ts +3 -3
  81. package/ErrorBoundary/PassThrough.js +6 -6
  82. package/Gallery/Gallery.d.ts +39 -39
  83. package/Gallery/Gallery.js +121 -121
  84. package/Gallery/constructGallery.d.ts +15 -15
  85. package/Gallery/constructGallery.js +40 -40
  86. package/Image/B2BImage.d.ts +50 -50
  87. package/Image/B2BImage.js +52 -52
  88. package/Image/BaseImage.d.ts +39 -39
  89. package/Image/BaseImage.js +191 -191
  90. package/Image/Fallback.d.ts +5 -5
  91. package/Image/Fallback.js +3 -3
  92. package/Image/FlightImage.d.ts +52 -52
  93. package/Image/FlightImage.js +57 -57
  94. package/Image/FlightImage.test.js +277 -277
  95. package/Image/Image.d.ts +2 -2
  96. package/Image/Image.js +2 -2
  97. package/Image/index.d.ts +1 -1
  98. package/Image/index.js +1 -1
  99. package/Image/useConstructImage.d.ts +46 -46
  100. package/Image/useConstructImage.js +96 -96
  101. package/Image/utils/aspectRatioToFraction.d.ts +2 -2
  102. package/Image/utils/aspectRatioToFraction.js +10 -10
  103. package/Image/utils/getFullUrl.d.ts +6 -6
  104. package/Image/utils/getFullUrl.js +17 -17
  105. package/Image/utils/getImageWidth.d.ts +1 -1
  106. package/Image/utils/getImageWidth.js +11 -11
  107. package/Image/utils/getImageWidths.d.ts +2 -2
  108. package/Image/utils/getImageWidths.js +13 -13
  109. package/Image/utils/getLQIP.d.ts +8 -8
  110. package/Image/utils/getLQIP.js +19 -19
  111. package/Image/utils/getLargestSize.d.ts +7 -7
  112. package/Image/utils/getLargestSize.js +16 -16
  113. package/Image/utils/getSizeForBreakpoint.d.ts +2 -2
  114. package/Image/utils/getSizeForBreakpoint.js +15 -15
  115. package/Image/utils/getSizesMap.d.ts +2 -2
  116. package/Image/utils/getSizesMap.js +21 -21
  117. package/Image/utils/getSmallestSize.d.ts +2 -2
  118. package/Image/utils/getSmallestSize.js +11 -11
  119. package/Image/utils/getSrcSetFromWidths.d.ts +10 -10
  120. package/Image/utils/getSrcSetFromWidths.js +8 -8
  121. package/Image/utils/getSrcWithParams.d.ts +3 -3
  122. package/Image/utils/getSrcWithParams.js +28 -28
  123. package/Image/utils/paddingForAspectRatio.d.ts +1 -1
  124. package/Image/utils/paddingForAspectRatio.js +5 -5
  125. package/Image/utils/remToPx.d.ts +1 -1
  126. package/Image/utils/remToPx.js +1 -1
  127. package/Image/utils/sizeToNumber.d.ts +2 -2
  128. package/Image/utils/sizeToNumber.js +26 -26
  129. package/Input/Input.d.ts +6 -6
  130. package/Input/Input.js +44 -44
  131. package/Input/index.d.ts +3 -3
  132. package/Input/index.js +3 -3
  133. package/JetshopText.d.ts +3 -3
  134. package/JetshopText.js +11 -11
  135. package/Loading/LoadingBar.d.ts +8 -8
  136. package/Loading/LoadingBar.js +57 -57
  137. package/Loading/LoadingLine.d.ts +31 -31
  138. package/Loading/LoadingLine.js +25 -25
  139. package/Loading/LoadingLine.test.js +18 -18
  140. package/Loading/NetworkStatusNotifier.d.ts +2 -2
  141. package/Loading/NetworkStatusNotifier.js +3 -3
  142. package/Menu/GetMoreSubcategoriesQuery.gql +25 -25
  143. package/Menu/MenuContainer.d.ts +28 -28
  144. package/Menu/MenuContainer.js +45 -45
  145. package/Menu/MenuContainer.test.js +245 -245
  146. package/Menu/RecursiveTree.d.ts +28 -28
  147. package/Menu/RecursiveTree.js +90 -90
  148. package/Menu/RecursiveTree.test.js +416 -416
  149. package/Modal/Drawer/Drawer.d.ts +11 -11
  150. package/Modal/Drawer/Drawer.js +30 -30
  151. package/Modal/Drawer/DrawerTarget.d.ts +6 -6
  152. package/Modal/Drawer/DrawerTarget.js +11 -11
  153. package/Modal/Drawer/DrawerTarget.test.js +92 -92
  154. package/Modal/Drawer/DrawerTrigger.d.ts +11 -11
  155. package/Modal/Drawer/DrawerTrigger.js +15 -15
  156. package/Modal/Drawer/DrawerTrigger.test.js +51 -51
  157. package/Modal/Drawer/index.d.ts +3 -3
  158. package/Modal/Drawer/index.js +3 -3
  159. package/Modal/Flyout/FlyoutTarget.d.ts +10 -10
  160. package/Modal/Flyout/FlyoutTarget.js +14 -14
  161. package/Modal/Flyout/FlyoutTarget.test.js +84 -84
  162. package/Modal/Flyout/FlyoutTrigger.d.ts +15 -15
  163. package/Modal/Flyout/FlyoutTrigger.js +17 -17
  164. package/Modal/Flyout/FlyoutTrigger.test.js +72 -72
  165. package/Modal/Flyout/index.d.ts +2 -2
  166. package/Modal/Flyout/index.js +2 -2
  167. package/Modal/ModalContext.d.ts +26 -26
  168. package/Modal/ModalContext.js +8 -8
  169. package/Modal/ModalProvider.d.ts +5 -5
  170. package/Modal/ModalProvider.js +82 -82
  171. package/Modal/ModalProvider.test.js +26 -26
  172. package/Modal/ModalRoot.d.ts +3 -3
  173. package/Modal/ModalRoot.js +43 -43
  174. package/Modal/ModalRoot.test.js +80 -80
  175. package/Modal/ModalTrigger.d.ts +9 -9
  176. package/Modal/ModalTrigger.js +8 -8
  177. package/Modal/__test_utils__/getComponentWithModalContext.js +29 -29
  178. package/Pagination/Pagination.d.ts +7 -7
  179. package/Pagination/Pagination.js +22 -22
  180. package/Pagination/PaginationBehaviour.d.ts +52 -52
  181. package/Pagination/PaginationBehaviour.js +67 -67
  182. package/Pagination/index.d.ts +2 -2
  183. package/Pagination/index.js +2 -2
  184. package/Pagination/usePagination.d.ts +15 -15
  185. package/Pagination/usePagination.js +45 -45
  186. package/PreOrderDateSelector/PreOrderDateSelector.d.ts +20 -20
  187. package/PreOrderDateSelector/PreOrderDateSelector.js +73 -73
  188. package/PreOrderDateSelector/index.d.ts +2 -2
  189. package/PreOrderDateSelector/index.js +2 -2
  190. package/Price/Currency.d.ts +9 -9
  191. package/Price/Currency.js +10 -10
  192. package/Price/Price.d.ts +28 -28
  193. package/Price/Price.js +34 -34
  194. package/Price/index.d.ts +1 -1
  195. package/Price/index.js +1 -1
  196. package/ProductLink.d.ts +21 -21
  197. package/ProductLink.js +81 -81
  198. package/ProductList/Badges.d.ts +6 -6
  199. package/ProductList/Badges.js +55 -55
  200. package/ProductList/GridProduct.d.ts +24 -24
  201. package/ProductList/GridProduct.js +57 -57
  202. package/ProductList/ProductGrid.d.ts +16 -16
  203. package/ProductList/ProductGrid.js +29 -29
  204. package/ProductList/ProductImage.d.ts +12 -12
  205. package/ProductList/ProductImage.js +20 -20
  206. package/ProductSpecifications/ProductSpecifications.d.ts +8 -8
  207. package/ProductSpecifications/ProductSpecifications.js +77 -77
  208. package/ScrollRestorationHandler/ScrollRestorationHandler.d.ts +8 -8
  209. package/ScrollRestorationHandler/ScrollRestorationHandler.js +16 -16
  210. package/ScrollRestorationHandler/ScrollRestorationHandler.test.js +75 -75
  211. package/ScrollRestorationHandler/index.d.ts +1 -1
  212. package/ScrollRestorationHandler/index.js +1 -1
  213. package/ScrollRestorationHandler/isInIgnoredRouteTypes.d.ts +6 -6
  214. package/ScrollRestorationHandler/isInIgnoredRouteTypes.js +7 -7
  215. package/ScrollRestorationHandler/useScrollRestore.d.ts +7 -7
  216. package/ScrollRestorationHandler/useScrollRestore.js +19 -19
  217. package/Search/AutocompleteQuery.gql +10 -10
  218. package/Search/SearchAutoCompleteContainer.d.ts +45 -45
  219. package/Search/SearchAutoCompleteContainer.js +171 -171
  220. package/Search/SearchAutoCompleteContainer.test.js +460 -460
  221. package/Search/SearchField.d.ts +15 -15
  222. package/Search/SearchField.js +96 -96
  223. package/Search/SearchPage/PageOf.d.ts +5 -5
  224. package/Search/SearchPage/PageOf.js +6 -6
  225. package/Search/SearchPage/SearchMeta.d.ts +16 -16
  226. package/Search/SearchPage/SearchMeta.js +19 -19
  227. package/Search/SearchPage/SearchPageBehaviour.d.ts +19 -19
  228. package/Search/SearchPage/SearchPageBehaviour.js +66 -66
  229. package/Search/SuggestedTerm.d.ts +16 -16
  230. package/Search/SuggestedTerm.js +34 -34
  231. package/Search/index.d.ts +1 -1
  232. package/Search/index.js +1 -1
  233. package/Select/Components.d.ts +28 -28
  234. package/Select/Components.js +90 -90
  235. package/Select/SelectComponents/Quantity.d.ts +5 -5
  236. package/Select/SelectComponents/Quantity.js +7 -7
  237. package/Select/index.d.ts +5 -5
  238. package/Select/index.js +1 -1
  239. package/SortOrder/SortOrder.d.ts +16 -16
  240. package/SortOrder/SortOrder.js +31 -31
  241. package/SortOrder/SortOrderDropdown.d.ts +9 -9
  242. package/SortOrder/SortOrderDropdown.js +24 -24
  243. package/SortOrder/SortOrderList.d.ts +7 -7
  244. package/SortOrder/SortOrderList.js +16 -16
  245. package/StartPageRenderer/StartPageRenderer.d.ts +17 -17
  246. package/StartPageRenderer/StartPageRenderer.js +51 -51
  247. package/StartPageRenderer/index.d.ts +1 -1
  248. package/StartPageRenderer/index.js +1 -1
  249. package/Stock/StockStatusContainer.d.ts +16 -16
  250. package/Stock/StockStatusContainer.js +39 -39
  251. package/Stock/__tests__/StockStatusContainer.test.js +65 -65
  252. package/Text/Text.d.ts +11 -11
  253. package/Text/Text.js +21 -21
  254. package/Text/index.d.ts +3 -3
  255. package/Text/index.js +3 -3
  256. package/Theme/createTheme.d.ts +16 -16
  257. package/Theme/createTheme.js +4 -4
  258. package/Theme/cssReset.d.ts +1 -1
  259. package/Theme/cssReset.js +159 -159
  260. package/Theme/normalizeCss.d.ts +1 -1
  261. package/Theme/normalizeCss.js +356 -356
  262. package/Theme/sanitizeCss.d.ts +1 -1
  263. package/Theme/sanitizeCss.js +571 -571
  264. package/WindowGrid/WindowGrid.d.ts +11 -11
  265. package/WindowGrid/WindowGrid.js +57 -57
  266. package/WindowGrid/index.d.ts +1 -1
  267. package/WindowGrid/index.js +1 -1
  268. package/WindowGrid/useResizeObserver.d.ts +8 -8
  269. package/WindowGrid/useResizeObserver.js +13 -13
  270. package/WindowGrid/useScrollWithWindow.d.ts +12 -12
  271. package/WindowGrid/useScrollWithWindow.js +38 -38
  272. package/dependencies.d.ts +98 -98
  273. package/fuzzySearch/fuzzySearch.d.ts +8 -8
  274. package/fuzzySearch/fuzzySearch.js +42 -42
  275. package/fuzzySearch/index.d.ts +1 -1
  276. package/fuzzySearch/index.js +1 -1
  277. package/global.d.ts +1 -1
  278. package/hooks/index.d.ts +2 -2
  279. package/hooks/index.js +2 -2
  280. package/hooks/useOnClickOutside.d.ts +6 -6
  281. package/hooks/useOnClickOutside.js +16 -16
  282. package/hooks/useOnEsc.d.ts +4 -4
  283. package/hooks/useOnEsc.js +16 -16
  284. package/package.json +1 -1
  285. package/setupTests.js +2 -2
  286. package/svg/flags/ad.svg +150 -150
  287. package/svg/flags/ae.svg +6 -6
  288. package/svg/flags/af.svg +81 -81
  289. package/svg/flags/ag.svg +14 -14
  290. package/svg/flags/ai.svg +767 -767
  291. package/svg/flags/al.svg +5 -5
  292. package/svg/flags/am.svg +5 -5
  293. package/svg/flags/ao.svg +13 -13
  294. package/svg/flags/aq.svg +6 -6
  295. package/svg/flags/ar.svg +31 -31
  296. package/svg/flags/as.svg +33 -33
  297. package/svg/flags/at.svg +6 -6
  298. package/svg/flags/au.svg +9 -9
  299. package/svg/flags/aw.svg +186 -186
  300. package/svg/flags/ax.svg +18 -18
  301. package/svg/flags/az.svg +8 -8
  302. package/svg/flags/ba.svg +12 -12
  303. package/svg/flags/bb.svg +6 -6
  304. package/svg/flags/bd.svg +4 -4
  305. package/svg/flags/be.svg +7 -7
  306. package/svg/flags/bf.svg +7 -7
  307. package/svg/flags/bg.svg +7 -7
  308. package/svg/flags/bh.svg +11 -11
  309. package/svg/flags/bi.svg +15 -15
  310. package/svg/flags/bj.svg +14 -14
  311. package/svg/flags/bl.svg +7 -7
  312. package/svg/flags/bm.svg +98 -98
  313. package/svg/flags/bn.svg +36 -36
  314. package/svg/flags/bo.svg +676 -676
  315. package/svg/flags/bq.svg +5 -5
  316. package/svg/flags/br.svg +45 -45
  317. package/svg/flags/bs.svg +13 -13
  318. package/svg/flags/bt.svg +89 -89
  319. package/svg/flags/bv.svg +13 -13
  320. package/svg/flags/bw.svg +7 -7
  321. package/svg/flags/by.svg +20 -20
  322. package/svg/flags/bz.svg +145 -145
  323. package/svg/flags/ca.svg +4 -4
  324. package/svg/flags/cc.svg +19 -19
  325. package/svg/flags/cd.svg +5 -5
  326. package/svg/flags/cf.svg +15 -15
  327. package/svg/flags/cg.svg +12 -12
  328. package/svg/flags/ch.svg +9 -9
  329. package/svg/flags/ci.svg +7 -7
  330. package/svg/flags/ck.svg +9 -9
  331. package/svg/flags/cl.svg +13 -13
  332. package/svg/flags/cm.svg +15 -15
  333. package/svg/flags/cn.svg +11 -11
  334. package/svg/flags/co.svg +7 -7
  335. package/svg/flags/cr.svg +7 -7
  336. package/svg/flags/cu.svg +13 -13
  337. package/svg/flags/cv.svg +13 -13
  338. package/svg/flags/cw.svg +14 -14
  339. package/svg/flags/cx.svg +15 -15
  340. package/svg/flags/cy.svg +6 -6
  341. package/svg/flags/cz.svg +12 -12
  342. package/svg/flags/de.svg +5 -5
  343. package/svg/flags/dj.svg +13 -13
  344. package/svg/flags/dk.svg +5 -5
  345. package/svg/flags/dm.svg +152 -152
  346. package/svg/flags/do.svg +6745 -6745
  347. package/svg/flags/dz.svg +5 -5
  348. package/svg/flags/ec.svg +138 -138
  349. package/svg/flags/ee.svg +7 -7
  350. package/svg/flags/eg.svg +38 -38
  351. package/svg/flags/eh.svg +15 -15
  352. package/svg/flags/er.svg +8 -8
  353. package/svg/flags/es-ct.svg +4 -4
  354. package/svg/flags/es.svg +544 -544
  355. package/svg/flags/et.svg +14 -14
  356. package/svg/flags/eu.svg +28 -28
  357. package/svg/flags/fi.svg +5 -5
  358. package/svg/flags/fj.svg +120 -120
  359. package/svg/flags/fk.svg +89 -89
  360. package/svg/flags/fm.svg +11 -11
  361. package/svg/flags/fo.svg +12 -12
  362. package/svg/flags/fr.svg +7 -7
  363. package/svg/flags/ga.svg +7 -7
  364. package/svg/flags/gb-eng.svg +5 -5
  365. package/svg/flags/gb-nir.svg +131 -131
  366. package/svg/flags/gb-sct.svg +4 -4
  367. package/svg/flags/gb-wls.svg +9 -9
  368. package/svg/flags/gb.svg +15 -15
  369. package/svg/flags/gd.svg +27 -27
  370. package/svg/flags/ge.svg +6 -6
  371. package/svg/flags/gf.svg +5 -5
  372. package/svg/flags/gg.svg +9 -9
  373. package/svg/flags/gh.svg +6 -6
  374. package/svg/flags/gi.svg +32 -32
  375. package/svg/flags/gl.svg +4 -4
  376. package/svg/flags/gm.svg +14 -14
  377. package/svg/flags/gn.svg +7 -7
  378. package/svg/flags/gp.svg +7 -7
  379. package/svg/flags/gq.svg +23 -23
  380. package/svg/flags/gr.svg +22 -22
  381. package/svg/flags/gs.svg +201 -201
  382. package/svg/flags/gt.svg +204 -204
  383. package/svg/flags/gu.svg +39 -39
  384. package/svg/flags/gw.svg +13 -13
  385. package/svg/flags/gy.svg +9 -9
  386. package/svg/flags/hk.svg +30 -30
  387. package/svg/flags/hm.svg +9 -9
  388. package/svg/flags/hn.svg +18 -18
  389. package/svg/flags/hr.svg +58 -58
  390. package/svg/flags/ht.svg +116 -116
  391. package/svg/flags/hu.svg +7 -7
  392. package/svg/flags/id.svg +6 -6
  393. package/svg/flags/ie.svg +7 -7
  394. package/svg/flags/il.svg +14 -14
  395. package/svg/flags/im.svg +36 -36
  396. package/svg/flags/in.svg +25 -25
  397. package/svg/flags/io.svg +138 -138
  398. package/svg/flags/iq.svg +10 -10
  399. package/svg/flags/ir.svg +219 -219
  400. package/svg/flags/is.svg +12 -12
  401. package/svg/flags/it.svg +7 -7
  402. package/svg/flags/je.svg +31 -31
  403. package/svg/flags/jm.svg +8 -8
  404. package/svg/flags/jo.svg +16 -16
  405. package/svg/flags/jp.svg +11 -11
  406. package/svg/flags/ke.svg +23 -23
  407. package/svg/flags/kg.svg +15 -15
  408. package/svg/flags/kh.svg +61 -61
  409. package/svg/flags/ki.svg +36 -36
  410. package/svg/flags/km.svg +16 -16
  411. package/svg/flags/kn.svg +14 -14
  412. package/svg/flags/kp.svg +15 -15
  413. package/svg/flags/kr.svg +24 -24
  414. package/svg/flags/kw.svg +13 -13
  415. package/svg/flags/ky.svg +63 -63
  416. package/svg/flags/kz.svg +23 -23
  417. package/svg/flags/la.svg +12 -12
  418. package/svg/flags/lb.svg +15 -15
  419. package/svg/flags/lc.svg +8 -8
  420. package/svg/flags/li.svg +43 -43
  421. package/svg/flags/lk.svg +22 -22
  422. package/svg/flags/lr.svg +14 -14
  423. package/svg/flags/ls.svg +8 -8
  424. package/svg/flags/lt.svg +7 -7
  425. package/svg/flags/lu.svg +5 -5
  426. package/svg/flags/lv.svg +6 -6
  427. package/svg/flags/ly.svg +13 -13
  428. package/svg/flags/ma.svg +4 -4
  429. package/svg/flags/mc.svg +6 -6
  430. package/svg/flags/md.svg +70 -70
  431. package/svg/flags/me.svg +116 -116
  432. package/svg/flags/mf.svg +7 -7
  433. package/svg/flags/mg.svg +7 -7
  434. package/svg/flags/mh.svg +7 -7
  435. package/svg/flags/mk.svg +5 -5
  436. package/svg/flags/ml.svg +7 -7
  437. package/svg/flags/mm.svg +16 -16
  438. package/svg/flags/mn.svg +13 -13
  439. package/svg/flags/mo.svg +9 -9
  440. package/svg/flags/mp.svg +86 -86
  441. package/svg/flags/mq.svg +7 -7
  442. package/svg/flags/mr.svg +6 -6
  443. package/svg/flags/ms.svg +39 -39
  444. package/svg/flags/mt.svg +49 -49
  445. package/svg/flags/mu.svg +8 -8
  446. package/svg/flags/mv.svg +6 -6
  447. package/svg/flags/mw.svg +10 -10
  448. package/svg/flags/mx.svg +382 -382
  449. package/svg/flags/my.svg +15 -15
  450. package/svg/flags/mz.svg +21 -21
  451. package/svg/flags/na.svg +16 -16
  452. package/svg/flags/nc.svg +7 -7
  453. package/svg/flags/ne.svg +6 -6
  454. package/svg/flags/nf.svg +9 -9
  455. package/svg/flags/ng.svg +6 -6
  456. package/svg/flags/ni.svg +129 -129
  457. package/svg/flags/nl.svg +7 -7
  458. package/svg/flags/no.svg +7 -7
  459. package/svg/flags/np.svg +14 -14
  460. package/svg/flags/nr.svg +12 -12
  461. package/svg/flags/nu.svg +26 -26
  462. package/svg/flags/nz.svg +41 -41
  463. package/svg/flags/om.svg +115 -115
  464. package/svg/flags/pa.svg +14 -14
  465. package/svg/flags/pe.svg +244 -244
  466. package/svg/flags/pf.svg +19 -19
  467. package/svg/flags/pg.svg +9 -9
  468. package/svg/flags/ph.svg +13 -13
  469. package/svg/flags/pk.svg +15 -15
  470. package/svg/flags/pl.svg +6 -6
  471. package/svg/flags/pm.svg +7 -7
  472. package/svg/flags/pn.svg +62 -62
  473. package/svg/flags/pr.svg +13 -13
  474. package/svg/flags/ps.svg +15 -15
  475. package/svg/flags/pt.svg +57 -57
  476. package/svg/flags/pw.svg +11 -11
  477. package/svg/flags/py.svg +157 -157
  478. package/svg/flags/qa.svg +4 -4
  479. package/svg/flags/re.svg +7 -7
  480. package/svg/flags/ro.svg +7 -7
  481. package/svg/flags/rs.svg +292 -292
  482. package/svg/flags/ru.svg +7 -7
  483. package/svg/flags/rw.svg +13 -13
  484. package/svg/flags/sa.svg +26 -26
  485. package/svg/flags/sb.svg +13 -13
  486. package/svg/flags/sc.svg +14 -14
  487. package/svg/flags/sd.svg +13 -13
  488. package/svg/flags/se.svg +16 -16
  489. package/svg/flags/sg.svg +13 -13
  490. package/svg/flags/sh.svg +74 -74
  491. package/svg/flags/si.svg +18 -18
  492. package/svg/flags/sj.svg +7 -7
  493. package/svg/flags/sk.svg +9 -9
  494. package/svg/flags/sl.svg +7 -7
  495. package/svg/flags/sm.svg +91 -91
  496. package/svg/flags/sn.svg +8 -8
  497. package/svg/flags/so.svg +11 -11
  498. package/svg/flags/sr.svg +6 -6
  499. package/svg/flags/ss.svg +8 -8
  500. package/svg/flags/st.svg +16 -16
  501. package/svg/flags/sv.svg +606 -606
  502. package/svg/flags/sx.svg +56 -56
  503. package/svg/flags/sy.svg +6 -6
  504. package/svg/flags/sz.svg +45 -45
  505. package/svg/flags/tc.svg +67 -67
  506. package/svg/flags/td.svg +7 -7
  507. package/svg/flags/tf.svg +15 -15
  508. package/svg/flags/tg.svg +14 -14
  509. package/svg/flags/th.svg +7 -7
  510. package/svg/flags/tj.svg +22 -22
  511. package/svg/flags/tk.svg +5 -5
  512. package/svg/flags/tl.svg +13 -13
  513. package/svg/flags/tm.svg +206 -206
  514. package/svg/flags/tn.svg +13 -13
  515. package/svg/flags/to.svg +10 -10
  516. package/svg/flags/tr.svg +8 -8
  517. package/svg/flags/tt.svg +5 -5
  518. package/svg/flags/tv.svg +27 -27
  519. package/svg/flags/tw.svg +14 -14
  520. package/svg/flags/tz.svg +13 -13
  521. package/svg/flags/ua.svg +6 -6
  522. package/svg/flags/ug.svg +30 -30
  523. package/svg/flags/um.svg +15 -15
  524. package/svg/flags/un.svg +16 -16
  525. package/svg/flags/us.svg +10 -10
  526. package/svg/flags/uy.svg +28 -28
  527. package/svg/flags/uz.svg +30 -30
  528. package/svg/flags/va.svg +479 -479
  529. package/svg/flags/vc.svg +8 -8
  530. package/svg/flags/ve.svg +26 -26
  531. package/svg/flags/vg.svg +127 -127
  532. package/svg/flags/vi.svg +28 -28
  533. package/svg/flags/vn.svg +11 -11
  534. package/svg/flags/vu.svg +18 -18
  535. package/svg/flags/wf.svg +7 -7
  536. package/svg/flags/ws.svg +7 -7
  537. package/svg/flags/ye.svg +7 -7
  538. package/svg/flags/yt.svg +7 -7
  539. package/svg/flags/za.svg +17 -17
  540. package/svg/flags/zm.svg +27 -27
  541. package/svg/flags/zw.svg +21 -21
  542. package/test-utils/mock-response/product-status.js +44 -44
  543. package/utils/breakpoints.d.ts +23 -23
  544. package/utils/breakpoints.js +89 -89
  545. package/utils/callAllEventHandlers.d.ts +5 -5
  546. package/utils/callAllEventHandlers.js +8 -8
  547. package/utils/text.d.ts +1 -1
  548. package/utils/text.js +22 -22
  549. package/utils/theme.d.ts +3 -3
  550. package/utils/theme.js +4 -4
  551. package/utils/useHoverIntent.d.ts +10 -10
  552. package/utils/useHoverIntent.js +77 -77
  553. package/utils/usePropsOfType.d.ts +11 -11
  554. package/utils/usePropsOfType.js +17 -17
  555. package/withFlightUI.d.ts +17 -17
  556. package/withFlightUI.js +19 -19
@@ -1,63 +1,63 @@
1
- import { SelectedChannel } from '@jetshop/core/components/ChannelContext/ChannelContext';
2
- import { Channel } from '@jetshop/core/types';
3
- import { Item } from '@jetshop/ui/Checkbox/CheckboxGroup';
4
- import React from 'react';
5
- export interface RenderCallback {
6
- (props: {
7
- channels: Channel[];
8
- currencyItems: Item[];
9
- languageItems: Item[];
10
- selectedChannel: SelectedChannel;
11
- hasChanged: boolean;
12
- onSelect: SelectChannel;
13
- onCurrencySelect: (currency: string) => void;
14
- onLanguageSelect: (language: string) => void;
15
- }): React.ReactElement<any>;
16
- }
17
- export interface ChannelSelectorProps {
18
- /** Any array of channels to display */
19
- channels: Channel[];
20
- /** The default-selected channel */
21
- initialChannel: SelectedChannel;
22
- /**
23
- * Render callback to pass state to composed child components
24
- * @param {arr} channels
25
- * @param {arr} currencyItems
26
- * @param {arr} languageItems
27
- * @param {obj} selectedChannel selected channel
28
- * @param {boolean} hasChanged Whether the selection has changed from the default
29
- * @param {func} onSelect Call with the channel to set the selected channel
30
- * @param {func} onCurrencySelect Call with the currency to set the selected currnecy
31
- * @param {func} onLanguageSelect Call with the language to set the selected lanauge
32
- */
33
- render: RenderCallback;
34
- }
35
- export interface ChannelSelectorState {
36
- selectedChannel: SelectedChannel;
37
- hasChanged: boolean;
38
- }
39
- export declare type SelectChannel = (channel: number | string, culture?: string, currency?: string, country?: string) => void;
40
- export declare type SelectCurrency = (currency: string) => void;
41
- export declare type SelectLanguage = (language: string) => void;
42
- /** Wraps either MiniSelector or LargeSelector and provides controlled state */
43
- export default class ChannelSelector extends React.Component<ChannelSelectorProps, ChannelSelectorState> {
44
- state: {
45
- selectedChannel: SelectedChannel;
46
- hasChanged: boolean;
47
- };
48
- setDirtyState: () => void;
49
- componentDidUpdate(_prevProps: any, prevState: any): void;
50
- selectChannel: SelectChannel;
51
- selectCurrency: SelectCurrency;
52
- selectLanguage: SelectLanguage;
53
- render(): React.ReactElement<any, string | React.JSXElementConstructor<any>>;
54
- }
55
- export declare const LangCurrWrapper: import("linaria/lib/StyledMeta").StyledMeta & React.FunctionComponent<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
56
- as?: React.ElementType<any>;
57
- }>;
58
- export declare const SelectorBody: import("linaria/lib/StyledMeta").StyledMeta & React.FunctionComponent<React.ClassAttributes<HTMLElement> & React.HTMLAttributes<HTMLElement> & {
59
- as?: React.ElementType<any>;
60
- }>;
61
- export declare const Title: import("linaria/lib/StyledMeta").StyledMeta & React.FunctionComponent<React.ClassAttributes<HTMLHeadingElement> & React.HTMLAttributes<HTMLHeadingElement> & {
62
- as?: React.ElementType<any>;
63
- }>;
1
+ import { SelectedChannel } from '@jetshop/core/components/ChannelContext/ChannelContext';
2
+ import { Channel } from '@jetshop/core/types';
3
+ import { Item } from '@jetshop/ui/Checkbox/CheckboxGroup';
4
+ import React from 'react';
5
+ export interface RenderCallback {
6
+ (props: {
7
+ channels: Channel[];
8
+ currencyItems: Item[];
9
+ languageItems: Item[];
10
+ selectedChannel: SelectedChannel;
11
+ hasChanged: boolean;
12
+ onSelect: SelectChannel;
13
+ onCurrencySelect: (currency: string) => void;
14
+ onLanguageSelect: (language: string) => void;
15
+ }): React.ReactElement<any>;
16
+ }
17
+ export interface ChannelSelectorProps {
18
+ /** Any array of channels to display */
19
+ channels: Channel[];
20
+ /** The default-selected channel */
21
+ initialChannel: SelectedChannel;
22
+ /**
23
+ * Render callback to pass state to composed child components
24
+ * @param {arr} channels
25
+ * @param {arr} currencyItems
26
+ * @param {arr} languageItems
27
+ * @param {obj} selectedChannel selected channel
28
+ * @param {boolean} hasChanged Whether the selection has changed from the default
29
+ * @param {func} onSelect Call with the channel to set the selected channel
30
+ * @param {func} onCurrencySelect Call with the currency to set the selected currnecy
31
+ * @param {func} onLanguageSelect Call with the language to set the selected lanauge
32
+ */
33
+ render: RenderCallback;
34
+ }
35
+ export interface ChannelSelectorState {
36
+ selectedChannel: SelectedChannel;
37
+ hasChanged: boolean;
38
+ }
39
+ export declare type SelectChannel = (channel: number | string, culture?: string, currency?: string, country?: string) => void;
40
+ export declare type SelectCurrency = (currency: string) => void;
41
+ export declare type SelectLanguage = (language: string) => void;
42
+ /** Wraps either MiniSelector or LargeSelector and provides controlled state */
43
+ export default class ChannelSelector extends React.Component<ChannelSelectorProps, ChannelSelectorState> {
44
+ state: {
45
+ selectedChannel: SelectedChannel;
46
+ hasChanged: boolean;
47
+ };
48
+ setDirtyState: () => void;
49
+ componentDidUpdate(_prevProps: any, prevState: any): void;
50
+ selectChannel: SelectChannel;
51
+ selectCurrency: SelectCurrency;
52
+ selectLanguage: SelectLanguage;
53
+ render(): React.ReactElement<any, string | React.JSXElementConstructor<any>>;
54
+ }
55
+ export declare const LangCurrWrapper: import("linaria/lib/StyledMeta").StyledMeta & React.FunctionComponent<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
56
+ as?: React.ElementType<any>;
57
+ }>;
58
+ export declare const SelectorBody: import("linaria/lib/StyledMeta").StyledMeta & React.FunctionComponent<React.ClassAttributes<HTMLElement> & React.HTMLAttributes<HTMLElement> & {
59
+ as?: React.ElementType<any>;
60
+ }>;
61
+ export declare const Title: import("linaria/lib/StyledMeta").StyledMeta & React.FunctionComponent<React.ClassAttributes<HTMLHeadingElement> & React.HTMLAttributes<HTMLHeadingElement> & {
62
+ as?: React.ElementType<any>;
63
+ }>;
@@ -1,80 +1,80 @@
1
- import { createSelectedChannel, findChannel, findChannelById } from '@jetshop/core/ChannelHandler/channelUtils';
2
- import { styled } from 'linaria/react';
3
- import React from 'react';
4
- /** Wraps either MiniSelector or LargeSelector and provides controlled state */
5
- export default class ChannelSelector extends React.Component {
6
- constructor() {
7
- super(...arguments);
8
- this.state = {
9
- selectedChannel: this.props.initialChannel,
10
- hasChanged: false
11
- };
12
- this.setDirtyState = () => {
13
- const hasChanged = this.state.selectedChannel.name !== this.props.initialChannel.name ||
14
- this.state.selectedChannel.language.name !==
15
- this.props.initialChannel.language.name ||
16
- this.state.selectedChannel.currency.name !==
17
- this.props.initialChannel.currency.name ||
18
- this.state.selectedChannel.country.name !==
19
- this.props.initialChannel.country.name;
20
- this.setState({ hasChanged });
21
- };
22
- this.selectChannel = (channel, culture, currency, country) => {
23
- const selectedChannel = createSelectedChannel(typeof channel === 'number'
24
- ? findChannelById(channel, this.props.channels)
25
- : findChannel(channel, this.props.channels), culture, currency, country);
26
- this.setState({
27
- selectedChannel
28
- });
29
- return selectedChannel;
30
- };
31
- this.selectCurrency = (selectedCurrency) => {
32
- const currency = this.state.selectedChannel.currencies.find((currency) => currency.name === selectedCurrency);
33
- this.setState({
34
- selectedChannel: Object.assign(Object.assign({}, this.state.selectedChannel), { currency })
35
- });
36
- };
37
- this.selectLanguage = (selectedLanguage) => {
38
- const language = this.state.selectedChannel.languages.find((language) => language.name === selectedLanguage);
39
- this.setState({
40
- selectedChannel: Object.assign(Object.assign({}, this.state.selectedChannel), { language })
41
- });
42
- };
43
- }
44
- componentDidUpdate(_prevProps, prevState) {
45
- (prevState.selectedChannel.name !== this.state.selectedChannel.name ||
46
- prevState.selectedChannel.language.name !==
47
- this.state.selectedChannel.language.name ||
48
- prevState.selectedChannel.currency.name !==
49
- this.state.selectedChannel.currency.name ||
50
- prevState.selectedChannel.country.name !==
51
- this.state.selectedChannel.country.name) &&
52
- this.setDirtyState();
53
- }
54
- render() {
55
- const { render, channels } = this.props;
56
- const currencyItems = this.state.selectedChannel.currencies.map(currency => {
57
- return {
58
- label: currency.name,
59
- val: currency.name
60
- };
61
- });
62
- const languageItems = this.state.selectedChannel.languages.map(language => {
63
- return {
64
- label: language.name,
65
- val: language.name
66
- };
67
- });
68
- return render(Object.assign(Object.assign({}, this.state), { channels,
69
- currencyItems,
70
- languageItems, onSelect: this.selectChannel, onCurrencySelect: this.selectCurrency, onLanguageSelect: this.selectLanguage }));
71
- }
72
- }
73
- // For some reason Styleguidist breaks unless this comes after
74
- // the default export
75
- export const LangCurrWrapper = styled('div') `
76
- background: #f5f5f5;
77
- `;
78
- export const SelectorBody = styled('section') ``;
79
- export const Title = styled('h1') ``;
1
+ import { createSelectedChannel, findChannel, findChannelById } from '@jetshop/core/ChannelHandler/channelUtils';
2
+ import { styled } from 'linaria/react';
3
+ import React from 'react';
4
+ /** Wraps either MiniSelector or LargeSelector and provides controlled state */
5
+ export default class ChannelSelector extends React.Component {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.state = {
9
+ selectedChannel: this.props.initialChannel,
10
+ hasChanged: false
11
+ };
12
+ this.setDirtyState = () => {
13
+ const hasChanged = this.state.selectedChannel.name !== this.props.initialChannel.name ||
14
+ this.state.selectedChannel.language.name !==
15
+ this.props.initialChannel.language.name ||
16
+ this.state.selectedChannel.currency.name !==
17
+ this.props.initialChannel.currency.name ||
18
+ this.state.selectedChannel.country.name !==
19
+ this.props.initialChannel.country.name;
20
+ this.setState({ hasChanged });
21
+ };
22
+ this.selectChannel = (channel, culture, currency, country) => {
23
+ const selectedChannel = createSelectedChannel(typeof channel === 'number'
24
+ ? findChannelById(channel, this.props.channels)
25
+ : findChannel(channel, this.props.channels), culture, currency, country);
26
+ this.setState({
27
+ selectedChannel
28
+ });
29
+ return selectedChannel;
30
+ };
31
+ this.selectCurrency = (selectedCurrency) => {
32
+ const currency = this.state.selectedChannel.currencies.find((currency) => currency.name === selectedCurrency);
33
+ this.setState({
34
+ selectedChannel: Object.assign(Object.assign({}, this.state.selectedChannel), { currency })
35
+ });
36
+ };
37
+ this.selectLanguage = (selectedLanguage) => {
38
+ const language = this.state.selectedChannel.languages.find((language) => language.name === selectedLanguage);
39
+ this.setState({
40
+ selectedChannel: Object.assign(Object.assign({}, this.state.selectedChannel), { language })
41
+ });
42
+ };
43
+ }
44
+ componentDidUpdate(_prevProps, prevState) {
45
+ (prevState.selectedChannel.name !== this.state.selectedChannel.name ||
46
+ prevState.selectedChannel.language.name !==
47
+ this.state.selectedChannel.language.name ||
48
+ prevState.selectedChannel.currency.name !==
49
+ this.state.selectedChannel.currency.name ||
50
+ prevState.selectedChannel.country.name !==
51
+ this.state.selectedChannel.country.name) &&
52
+ this.setDirtyState();
53
+ }
54
+ render() {
55
+ const { render, channels } = this.props;
56
+ const currencyItems = this.state.selectedChannel.currencies.map(currency => {
57
+ return {
58
+ label: currency.name,
59
+ val: currency.name
60
+ };
61
+ });
62
+ const languageItems = this.state.selectedChannel.languages.map(language => {
63
+ return {
64
+ label: language.name,
65
+ val: language.name
66
+ };
67
+ });
68
+ return render(Object.assign(Object.assign({}, this.state), { channels,
69
+ currencyItems,
70
+ languageItems, onSelect: this.selectChannel, onCurrencySelect: this.selectCurrency, onLanguageSelect: this.selectLanguage }));
71
+ }
72
+ }
73
+ // For some reason Styleguidist breaks unless this comes after
74
+ // the default export
75
+ export const LangCurrWrapper = styled('div') `
76
+ background: #f5f5f5;
77
+ `;
78
+ export const SelectorBody = styled('section') ``;
79
+ export const Title = styled('h1') ``;
80
80
  //# sourceMappingURL=ChannelSelector.js.map
@@ -1,167 +1,167 @@
1
- import React from 'react';
2
- import ChannelSelector from './ChannelSelector';
3
-
4
- xdescribe('ChannelSelector', () => {
5
- let props;
6
- let state;
7
- let mountedChannelSelector;
8
- const SWE = {
9
- name: 'Sweden',
10
- code: 'SE',
11
- region: 'Europe',
12
- defaultLanguage: 'SWE',
13
- defaultCurrency: 'SEK',
14
- language: [
15
- { val: 'SWE', label: 'SWE' },
16
- { val: 'ENG', label: 'ENG' }
17
- ],
18
- currency: [
19
- { val: 'SEK', label: 'SEK' },
20
- { val: 'USD', label: 'USD' }
21
- ]
22
- };
23
- const AUS = {
24
- name: 'Australia',
25
- code: 'AU',
26
- region: 'Oceania',
27
- defaultLanguage: 'ENG',
28
- defaultCurrency: 'AUD',
29
- language: [
30
- { val: 'GER', label: 'GER' },
31
- { val: 'ENG', label: 'ENG' }
32
- ],
33
- currency: [
34
- { val: 'AUD', label: 'AUD' },
35
- { val: 'USD', label: 'USD' }
36
- ]
37
- };
38
- let countries = [
39
- AUS,
40
- {
41
- name: 'New Zealand',
42
- code: 'NZ',
43
- region: 'Oceania',
44
- defaultLanguage: 'ENG',
45
- defaultCurrency: 'NZD',
46
- language: [
47
- { val: 'GER', label: 'GER' },
48
- { val: 'ENG', label: 'ENG' }
49
- ],
50
- currency: [
51
- { val: 'EUR', label: 'EUR' },
52
- { val: 'NZD', label: 'NDZ' }
53
- ]
54
- },
55
- SWE
56
- ];
57
-
58
- /** @returns {ReactWrapper} */
59
- const channelSelector = () =>
60
- (mountedChannelSelector = !mountedChannelSelector
61
- ? (mountedChannelSelector = mount(<ChannelSelector {...props} />))
62
- : mountedChannelSelector);
63
-
64
- beforeEach(() => {
65
- props = {
66
- countries: countries,
67
- initialCountry: SWE,
68
- initialCurrency: 'USD',
69
- initialLanguage: 'GER',
70
- render: jest.fn().mockReturnValue(null)
71
- };
72
- state = {
73
- selectedCountry: props.initialCountry,
74
- selectedCurrency: props.initialCurrency,
75
- selectedLanguage: props.initialLanguage,
76
- hasChanged: false
77
- };
78
- mountedChannelSelector = undefined;
79
- });
80
-
81
- describe('renders', () => {
82
- it('only what the `render` prop returns', () => {
83
- props.render = jest.fn().mockReturnValue('hello');
84
- expect(channelSelector().text()).toBe('hello');
85
- });
86
- });
87
- describe('calls `render`', () => {
88
- it('when mounted', () => {
89
- channelSelector();
90
- expect(props.render).toHaveBeenCalledTimes(1);
91
- });
92
- it('with initial state, countries, and state modifier instance methods', () => {
93
- channelSelector();
94
- const instance = channelSelector().instance();
95
- expect(props.render).toHaveBeenCalledWith({
96
- ...state,
97
- countries,
98
- onSelect: instance.selectCountry,
99
- onCurrencySelect: instance.selectCurrency,
100
- onLanguageSelect: instance.selectLanguage
101
- });
102
- });
103
- describe('with `hasChanged` set to true', () => {
104
- // Is there a better way to mock this?
105
- afterEach(() => {
106
- channelSelector()
107
- .children()
108
- .props()
109
- .onClick();
110
-
111
- expect(props.render).toHaveBeenLastCalledWith(
112
- expect.objectContaining({ hasChanged: true })
113
- );
114
- });
115
- it('if the selectedCountry changes', () => {
116
- props.render = jest.fn(({ onSelect }) => (
117
- <div onClick={() => onSelect(AUS)} />
118
- ));
119
- });
120
- it('if the selectedCurrency changes', () => {
121
- props.render = jest.fn(({ onCurrencySelect }) => (
122
- <div onClick={() => onCurrencySelect('AUD')} />
123
- ));
124
- });
125
- it('if the selectedLanguage changes', () => {
126
- props.render = jest.fn(({ onLanguageSelect }) => (
127
- <div onClick={() => onLanguageSelect('ENG')} />
128
- ));
129
- });
130
- });
131
- });
132
-
133
- describe('when selectedCountry changes', () => {
134
- it("sets the `selectedCurrency` and `selectedLanguage` to that country's default", () => {
135
- props.render = jest.fn(({ onSelect }) => (
136
- <div onClick={() => onSelect(AUS)} />
137
- ));
138
- channelSelector()
139
- .children()
140
- .props()
141
- .onClick();
142
-
143
- expect(props.render).toHaveBeenLastCalledWith(
144
- expect.objectContaining({
145
- selectedLanguage: 'ENG',
146
- selectedCurrency: 'AUD'
147
- })
148
- );
149
- });
150
- });
151
-
152
- describe('accepts props to define initial state', () => {
153
- // Are these necessary, or just testing implementation details?
154
- it('for the selected country', () => {
155
- props.initialCountry = SWE;
156
- expect(channelSelector().state().selectedCountry).toBe(SWE);
157
- });
158
- it('for the selected currency', () => {
159
- props.initialCurrency = 'AUD';
160
- expect(channelSelector().state().selectedCurrency).toBe('AUD');
161
- });
162
- it('for the selected language', () => {
163
- props.initialLanguage = 'ENG';
164
- expect(channelSelector().state().selectedLanguage).toBe('ENG');
165
- });
166
- });
167
- });
1
+ import React from 'react';
2
+ import ChannelSelector from './ChannelSelector';
3
+
4
+ xdescribe('ChannelSelector', () => {
5
+ let props;
6
+ let state;
7
+ let mountedChannelSelector;
8
+ const SWE = {
9
+ name: 'Sweden',
10
+ code: 'SE',
11
+ region: 'Europe',
12
+ defaultLanguage: 'SWE',
13
+ defaultCurrency: 'SEK',
14
+ language: [
15
+ { val: 'SWE', label: 'SWE' },
16
+ { val: 'ENG', label: 'ENG' }
17
+ ],
18
+ currency: [
19
+ { val: 'SEK', label: 'SEK' },
20
+ { val: 'USD', label: 'USD' }
21
+ ]
22
+ };
23
+ const AUS = {
24
+ name: 'Australia',
25
+ code: 'AU',
26
+ region: 'Oceania',
27
+ defaultLanguage: 'ENG',
28
+ defaultCurrency: 'AUD',
29
+ language: [
30
+ { val: 'GER', label: 'GER' },
31
+ { val: 'ENG', label: 'ENG' }
32
+ ],
33
+ currency: [
34
+ { val: 'AUD', label: 'AUD' },
35
+ { val: 'USD', label: 'USD' }
36
+ ]
37
+ };
38
+ let countries = [
39
+ AUS,
40
+ {
41
+ name: 'New Zealand',
42
+ code: 'NZ',
43
+ region: 'Oceania',
44
+ defaultLanguage: 'ENG',
45
+ defaultCurrency: 'NZD',
46
+ language: [
47
+ { val: 'GER', label: 'GER' },
48
+ { val: 'ENG', label: 'ENG' }
49
+ ],
50
+ currency: [
51
+ { val: 'EUR', label: 'EUR' },
52
+ { val: 'NZD', label: 'NDZ' }
53
+ ]
54
+ },
55
+ SWE
56
+ ];
57
+
58
+ /** @returns {ReactWrapper} */
59
+ const channelSelector = () =>
60
+ (mountedChannelSelector = !mountedChannelSelector
61
+ ? (mountedChannelSelector = mount(<ChannelSelector {...props} />))
62
+ : mountedChannelSelector);
63
+
64
+ beforeEach(() => {
65
+ props = {
66
+ countries: countries,
67
+ initialCountry: SWE,
68
+ initialCurrency: 'USD',
69
+ initialLanguage: 'GER',
70
+ render: jest.fn().mockReturnValue(null)
71
+ };
72
+ state = {
73
+ selectedCountry: props.initialCountry,
74
+ selectedCurrency: props.initialCurrency,
75
+ selectedLanguage: props.initialLanguage,
76
+ hasChanged: false
77
+ };
78
+ mountedChannelSelector = undefined;
79
+ });
80
+
81
+ describe('renders', () => {
82
+ it('only what the `render` prop returns', () => {
83
+ props.render = jest.fn().mockReturnValue('hello');
84
+ expect(channelSelector().text()).toBe('hello');
85
+ });
86
+ });
87
+ describe('calls `render`', () => {
88
+ it('when mounted', () => {
89
+ channelSelector();
90
+ expect(props.render).toHaveBeenCalledTimes(1);
91
+ });
92
+ it('with initial state, countries, and state modifier instance methods', () => {
93
+ channelSelector();
94
+ const instance = channelSelector().instance();
95
+ expect(props.render).toHaveBeenCalledWith({
96
+ ...state,
97
+ countries,
98
+ onSelect: instance.selectCountry,
99
+ onCurrencySelect: instance.selectCurrency,
100
+ onLanguageSelect: instance.selectLanguage
101
+ });
102
+ });
103
+ describe('with `hasChanged` set to true', () => {
104
+ // Is there a better way to mock this?
105
+ afterEach(() => {
106
+ channelSelector()
107
+ .children()
108
+ .props()
109
+ .onClick();
110
+
111
+ expect(props.render).toHaveBeenLastCalledWith(
112
+ expect.objectContaining({ hasChanged: true })
113
+ );
114
+ });
115
+ it('if the selectedCountry changes', () => {
116
+ props.render = jest.fn(({ onSelect }) => (
117
+ <div onClick={() => onSelect(AUS)} />
118
+ ));
119
+ });
120
+ it('if the selectedCurrency changes', () => {
121
+ props.render = jest.fn(({ onCurrencySelect }) => (
122
+ <div onClick={() => onCurrencySelect('AUD')} />
123
+ ));
124
+ });
125
+ it('if the selectedLanguage changes', () => {
126
+ props.render = jest.fn(({ onLanguageSelect }) => (
127
+ <div onClick={() => onLanguageSelect('ENG')} />
128
+ ));
129
+ });
130
+ });
131
+ });
132
+
133
+ describe('when selectedCountry changes', () => {
134
+ it("sets the `selectedCurrency` and `selectedLanguage` to that country's default", () => {
135
+ props.render = jest.fn(({ onSelect }) => (
136
+ <div onClick={() => onSelect(AUS)} />
137
+ ));
138
+ channelSelector()
139
+ .children()
140
+ .props()
141
+ .onClick();
142
+
143
+ expect(props.render).toHaveBeenLastCalledWith(
144
+ expect.objectContaining({
145
+ selectedLanguage: 'ENG',
146
+ selectedCurrency: 'AUD'
147
+ })
148
+ );
149
+ });
150
+ });
151
+
152
+ describe('accepts props to define initial state', () => {
153
+ // Are these necessary, or just testing implementation details?
154
+ it('for the selected country', () => {
155
+ props.initialCountry = SWE;
156
+ expect(channelSelector().state().selectedCountry).toBe(SWE);
157
+ });
158
+ it('for the selected currency', () => {
159
+ props.initialCurrency = 'AUD';
160
+ expect(channelSelector().state().selectedCurrency).toBe('AUD');
161
+ });
162
+ it('for the selected language', () => {
163
+ props.initialLanguage = 'ENG';
164
+ expect(channelSelector().state().selectedLanguage).toBe('ENG');
165
+ });
166
+ });
167
+ });
@@ -1,3 +1,3 @@
1
- /// <reference types="react" />
2
- export declare const CommitButton: import("linaria/lib/StyledMeta").StyledMeta & import("react").SFC<import("../Button/Button").ButtonProps>;
3
- export declare const CancelButton: import("linaria/lib/StyledMeta").StyledMeta & import("react").SFC<import("../Button/Button").ButtonProps>;
1
+ /// <reference types="react" />
2
+ export declare const CommitButton: import("linaria/lib/StyledMeta").StyledMeta & import("react").SFC<import("../Button/Button").ButtonProps>;
3
+ export declare const CancelButton: import("linaria/lib/StyledMeta").StyledMeta & import("react").SFC<import("../Button/Button").ButtonProps>;