@jetshop/ui 5.13.12-0 → 5.14.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 (557) 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 +16 -14
  6. package/Auth/FormFields/CountriesInput.js +27 -27
  7. package/Auth/FormFields/CountriesInput.js.map +1 -1
  8. package/Auth/LogInBehavior.d.ts +22 -22
  9. package/Auth/LogInBehavior.js +23 -23
  10. package/Auth/LogInFormProvider.d.ts +7 -7
  11. package/Auth/LogInFormProvider.js +70 -70
  12. package/Auth/LogOut.d.ts +10 -10
  13. package/Auth/LogOut.js +23 -23
  14. package/Auth/logInValidator.d.ts +8 -8
  15. package/Auth/logInValidator.js +15 -15
  16. package/Breadcrumbs/Breadcrumbs.d.ts +14 -14
  17. package/Breadcrumbs/Breadcrumbs.js +83 -83
  18. package/Breadcrumbs/getParentsOrCanonicalRoute.d.ts +3 -3
  19. package/Breadcrumbs/getParentsOrCanonicalRoute.js +13 -13
  20. package/Breadcrumbs/index.d.ts +1 -1
  21. package/Breadcrumbs/index.js +1 -1
  22. package/Breakpoints.d.ts +12 -12
  23. package/Breakpoints.js +35 -35
  24. package/Button/Button.d.ts +14 -14
  25. package/Button/Button.js +59 -59
  26. package/Button/OutlineButton.d.ts +4 -4
  27. package/Button/OutlineButton.js +9 -9
  28. package/Button/SecondaryButton.d.ts +3 -3
  29. package/Button/SecondaryButton.js +8 -8
  30. package/Button/TrendButton.d.ts +3 -3
  31. package/Button/TrendButton.js +7 -7
  32. package/Button/index.d.ts +4 -4
  33. package/Button/index.js +4 -4
  34. package/CategoryLink.d.ts +9 -9
  35. package/CategoryLink.js +42 -42
  36. package/ChannelSelector/ChannelListItem.d.ts +10 -10
  37. package/ChannelSelector/ChannelListItem.js +50 -50
  38. package/ChannelSelector/ChannelListItem.test.js +85 -85
  39. package/ChannelSelector/ChannelSelector.d.ts +63 -63
  40. package/ChannelSelector/ChannelSelector.js +79 -79
  41. package/ChannelSelector/ChannelSelector.test.js +167 -167
  42. package/ChannelSelector/ChannelSelectorButtons.d.ts +3 -3
  43. package/ChannelSelector/ChannelSelectorButtons.js +19 -19
  44. package/ChannelSelector/Channels.d.ts +17 -17
  45. package/ChannelSelector/Channels.js +11 -11
  46. package/ChannelSelector/Channels.test.js +90 -90
  47. package/ChannelSelector/LargeSelector.d.ts +3 -3
  48. package/ChannelSelector/LargeSelector.js +66 -66
  49. package/ChannelSelector/MiniSelector.d.ts +4 -4
  50. package/ChannelSelector/MiniSelector.js +57 -57
  51. package/ChannelSelector/Region.d.ts +28 -28
  52. package/ChannelSelector/Region.js +20 -20
  53. package/ChannelSelector/Region.test.js +37 -37
  54. package/ChannelSelector/exampleChannels.js +577 -577
  55. package/ChannelSelector/groupBy.d.ts +7 -7
  56. package/ChannelSelector/groupBy.js +15 -15
  57. package/ChannelSelector/groupBy.test.js +42 -42
  58. package/Checkbox/Checkbox.d.ts +10 -10
  59. package/Checkbox/Checkbox.js +68 -68
  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 +29 -28
  193. package/Price/Price.js +35 -34
  194. package/Price/Price.js.map +1 -1
  195. package/Price/index.d.ts +1 -1
  196. package/Price/index.js +1 -1
  197. package/ProductLink.d.ts +21 -21
  198. package/ProductLink.js +81 -81
  199. package/ProductList/Badges.d.ts +6 -6
  200. package/ProductList/Badges.js +55 -55
  201. package/ProductList/GridProduct.d.ts +24 -24
  202. package/ProductList/GridProduct.js +57 -57
  203. package/ProductList/ProductGrid.d.ts +16 -16
  204. package/ProductList/ProductGrid.js +29 -29
  205. package/ProductList/ProductImage.d.ts +12 -12
  206. package/ProductList/ProductImage.js +20 -20
  207. package/ProductSpecifications/ProductSpecifications.d.ts +8 -8
  208. package/ProductSpecifications/ProductSpecifications.js +77 -77
  209. package/ScrollRestorationHandler/ScrollRestorationHandler.d.ts +8 -8
  210. package/ScrollRestorationHandler/ScrollRestorationHandler.js +16 -16
  211. package/ScrollRestorationHandler/ScrollRestorationHandler.test.js +75 -75
  212. package/ScrollRestorationHandler/index.d.ts +1 -1
  213. package/ScrollRestorationHandler/index.js +1 -1
  214. package/ScrollRestorationHandler/isInIgnoredRouteTypes.d.ts +6 -6
  215. package/ScrollRestorationHandler/isInIgnoredRouteTypes.js +7 -7
  216. package/ScrollRestorationHandler/useScrollRestore.d.ts +7 -7
  217. package/ScrollRestorationHandler/useScrollRestore.js +19 -19
  218. package/Search/AutocompleteQuery.gql +10 -10
  219. package/Search/SearchAutoCompleteContainer.d.ts +45 -45
  220. package/Search/SearchAutoCompleteContainer.js +171 -171
  221. package/Search/SearchAutoCompleteContainer.test.js +460 -460
  222. package/Search/SearchField.d.ts +15 -15
  223. package/Search/SearchField.js +96 -96
  224. package/Search/SearchPage/PageOf.d.ts +5 -5
  225. package/Search/SearchPage/PageOf.js +6 -6
  226. package/Search/SearchPage/SearchMeta.d.ts +16 -16
  227. package/Search/SearchPage/SearchMeta.js +19 -19
  228. package/Search/SearchPage/SearchPageBehaviour.d.ts +19 -19
  229. package/Search/SearchPage/SearchPageBehaviour.js +66 -66
  230. package/Search/SuggestedTerm.d.ts +16 -16
  231. package/Search/SuggestedTerm.js +34 -34
  232. package/Search/index.d.ts +1 -1
  233. package/Search/index.js +1 -1
  234. package/Select/Components.d.ts +28 -28
  235. package/Select/Components.js +90 -90
  236. package/Select/SelectComponents/Quantity.d.ts +5 -5
  237. package/Select/SelectComponents/Quantity.js +7 -7
  238. package/Select/index.d.ts +5 -5
  239. package/Select/index.js +1 -1
  240. package/SortOrder/SortOrder.d.ts +16 -16
  241. package/SortOrder/SortOrder.js +31 -31
  242. package/SortOrder/SortOrderDropdown.d.ts +9 -9
  243. package/SortOrder/SortOrderDropdown.js +24 -24
  244. package/SortOrder/SortOrderList.d.ts +7 -7
  245. package/SortOrder/SortOrderList.js +16 -16
  246. package/StartPageRenderer/StartPageRenderer.d.ts +17 -17
  247. package/StartPageRenderer/StartPageRenderer.js +51 -51
  248. package/StartPageRenderer/index.d.ts +1 -1
  249. package/StartPageRenderer/index.js +1 -1
  250. package/Stock/StockStatusContainer.d.ts +16 -16
  251. package/Stock/StockStatusContainer.js +39 -39
  252. package/Stock/__tests__/StockStatusContainer.test.js +65 -65
  253. package/Text/Text.d.ts +11 -11
  254. package/Text/Text.js +21 -21
  255. package/Text/index.d.ts +3 -3
  256. package/Text/index.js +3 -3
  257. package/Theme/createTheme.d.ts +16 -16
  258. package/Theme/createTheme.js +4 -4
  259. package/Theme/cssReset.d.ts +1 -1
  260. package/Theme/cssReset.js +159 -159
  261. package/Theme/normalizeCss.d.ts +1 -1
  262. package/Theme/normalizeCss.js +356 -356
  263. package/Theme/sanitizeCss.d.ts +1 -1
  264. package/Theme/sanitizeCss.js +571 -571
  265. package/WindowGrid/WindowGrid.d.ts +11 -11
  266. package/WindowGrid/WindowGrid.js +57 -57
  267. package/WindowGrid/index.d.ts +1 -1
  268. package/WindowGrid/index.js +1 -1
  269. package/WindowGrid/useResizeObserver.d.ts +8 -8
  270. package/WindowGrid/useResizeObserver.js +13 -13
  271. package/WindowGrid/useScrollWithWindow.d.ts +12 -12
  272. package/WindowGrid/useScrollWithWindow.js +38 -38
  273. package/dependencies.d.ts +98 -98
  274. package/fuzzySearch/fuzzySearch.d.ts +8 -8
  275. package/fuzzySearch/fuzzySearch.js +42 -42
  276. package/fuzzySearch/index.d.ts +1 -1
  277. package/fuzzySearch/index.js +1 -1
  278. package/global.d.ts +1 -1
  279. package/hooks/index.d.ts +2 -2
  280. package/hooks/index.js +2 -2
  281. package/hooks/useOnClickOutside.d.ts +6 -6
  282. package/hooks/useOnClickOutside.js +16 -16
  283. package/hooks/useOnEsc.d.ts +4 -4
  284. package/hooks/useOnEsc.js +16 -16
  285. package/package.json +1 -1
  286. package/setupTests.js +2 -2
  287. package/svg/flags/ad.svg +150 -150
  288. package/svg/flags/ae.svg +6 -6
  289. package/svg/flags/af.svg +81 -81
  290. package/svg/flags/ag.svg +14 -14
  291. package/svg/flags/ai.svg +767 -767
  292. package/svg/flags/al.svg +5 -5
  293. package/svg/flags/am.svg +5 -5
  294. package/svg/flags/ao.svg +13 -13
  295. package/svg/flags/aq.svg +6 -6
  296. package/svg/flags/ar.svg +31 -31
  297. package/svg/flags/as.svg +33 -33
  298. package/svg/flags/at.svg +6 -6
  299. package/svg/flags/au.svg +9 -9
  300. package/svg/flags/aw.svg +186 -186
  301. package/svg/flags/ax.svg +18 -18
  302. package/svg/flags/az.svg +8 -8
  303. package/svg/flags/ba.svg +12 -12
  304. package/svg/flags/bb.svg +6 -6
  305. package/svg/flags/bd.svg +4 -4
  306. package/svg/flags/be.svg +7 -7
  307. package/svg/flags/bf.svg +7 -7
  308. package/svg/flags/bg.svg +7 -7
  309. package/svg/flags/bh.svg +11 -11
  310. package/svg/flags/bi.svg +15 -15
  311. package/svg/flags/bj.svg +14 -14
  312. package/svg/flags/bl.svg +7 -7
  313. package/svg/flags/bm.svg +98 -98
  314. package/svg/flags/bn.svg +36 -36
  315. package/svg/flags/bo.svg +676 -676
  316. package/svg/flags/bq.svg +5 -5
  317. package/svg/flags/br.svg +45 -45
  318. package/svg/flags/bs.svg +13 -13
  319. package/svg/flags/bt.svg +89 -89
  320. package/svg/flags/bv.svg +13 -13
  321. package/svg/flags/bw.svg +7 -7
  322. package/svg/flags/by.svg +20 -20
  323. package/svg/flags/bz.svg +145 -145
  324. package/svg/flags/ca.svg +4 -4
  325. package/svg/flags/cc.svg +19 -19
  326. package/svg/flags/cd.svg +5 -5
  327. package/svg/flags/cf.svg +15 -15
  328. package/svg/flags/cg.svg +12 -12
  329. package/svg/flags/ch.svg +9 -9
  330. package/svg/flags/ci.svg +7 -7
  331. package/svg/flags/ck.svg +9 -9
  332. package/svg/flags/cl.svg +13 -13
  333. package/svg/flags/cm.svg +15 -15
  334. package/svg/flags/cn.svg +11 -11
  335. package/svg/flags/co.svg +7 -7
  336. package/svg/flags/cr.svg +7 -7
  337. package/svg/flags/cu.svg +13 -13
  338. package/svg/flags/cv.svg +13 -13
  339. package/svg/flags/cw.svg +14 -14
  340. package/svg/flags/cx.svg +15 -15
  341. package/svg/flags/cy.svg +6 -6
  342. package/svg/flags/cz.svg +12 -12
  343. package/svg/flags/de.svg +5 -5
  344. package/svg/flags/dj.svg +13 -13
  345. package/svg/flags/dk.svg +5 -5
  346. package/svg/flags/dm.svg +152 -152
  347. package/svg/flags/do.svg +6745 -6745
  348. package/svg/flags/dz.svg +5 -5
  349. package/svg/flags/ec.svg +138 -138
  350. package/svg/flags/ee.svg +7 -7
  351. package/svg/flags/eg.svg +38 -38
  352. package/svg/flags/eh.svg +15 -15
  353. package/svg/flags/er.svg +8 -8
  354. package/svg/flags/es-ct.svg +4 -4
  355. package/svg/flags/es.svg +544 -544
  356. package/svg/flags/et.svg +14 -14
  357. package/svg/flags/eu.svg +28 -28
  358. package/svg/flags/fi.svg +5 -5
  359. package/svg/flags/fj.svg +120 -120
  360. package/svg/flags/fk.svg +89 -89
  361. package/svg/flags/fm.svg +11 -11
  362. package/svg/flags/fo.svg +12 -12
  363. package/svg/flags/fr.svg +7 -7
  364. package/svg/flags/ga.svg +7 -7
  365. package/svg/flags/gb-eng.svg +5 -5
  366. package/svg/flags/gb-nir.svg +131 -131
  367. package/svg/flags/gb-sct.svg +4 -4
  368. package/svg/flags/gb-wls.svg +9 -9
  369. package/svg/flags/gb.svg +15 -15
  370. package/svg/flags/gd.svg +27 -27
  371. package/svg/flags/ge.svg +6 -6
  372. package/svg/flags/gf.svg +5 -5
  373. package/svg/flags/gg.svg +9 -9
  374. package/svg/flags/gh.svg +6 -6
  375. package/svg/flags/gi.svg +32 -32
  376. package/svg/flags/gl.svg +4 -4
  377. package/svg/flags/gm.svg +14 -14
  378. package/svg/flags/gn.svg +7 -7
  379. package/svg/flags/gp.svg +7 -7
  380. package/svg/flags/gq.svg +23 -23
  381. package/svg/flags/gr.svg +22 -22
  382. package/svg/flags/gs.svg +201 -201
  383. package/svg/flags/gt.svg +204 -204
  384. package/svg/flags/gu.svg +39 -39
  385. package/svg/flags/gw.svg +13 -13
  386. package/svg/flags/gy.svg +9 -9
  387. package/svg/flags/hk.svg +30 -30
  388. package/svg/flags/hm.svg +9 -9
  389. package/svg/flags/hn.svg +18 -18
  390. package/svg/flags/hr.svg +58 -58
  391. package/svg/flags/ht.svg +116 -116
  392. package/svg/flags/hu.svg +7 -7
  393. package/svg/flags/id.svg +6 -6
  394. package/svg/flags/ie.svg +7 -7
  395. package/svg/flags/il.svg +14 -14
  396. package/svg/flags/im.svg +36 -36
  397. package/svg/flags/in.svg +25 -25
  398. package/svg/flags/io.svg +138 -138
  399. package/svg/flags/iq.svg +10 -10
  400. package/svg/flags/ir.svg +219 -219
  401. package/svg/flags/is.svg +12 -12
  402. package/svg/flags/it.svg +7 -7
  403. package/svg/flags/je.svg +31 -31
  404. package/svg/flags/jm.svg +8 -8
  405. package/svg/flags/jo.svg +16 -16
  406. package/svg/flags/jp.svg +11 -11
  407. package/svg/flags/ke.svg +23 -23
  408. package/svg/flags/kg.svg +15 -15
  409. package/svg/flags/kh.svg +61 -61
  410. package/svg/flags/ki.svg +36 -36
  411. package/svg/flags/km.svg +16 -16
  412. package/svg/flags/kn.svg +14 -14
  413. package/svg/flags/kp.svg +15 -15
  414. package/svg/flags/kr.svg +24 -24
  415. package/svg/flags/kw.svg +13 -13
  416. package/svg/flags/ky.svg +63 -63
  417. package/svg/flags/kz.svg +23 -23
  418. package/svg/flags/la.svg +12 -12
  419. package/svg/flags/lb.svg +15 -15
  420. package/svg/flags/lc.svg +8 -8
  421. package/svg/flags/li.svg +43 -43
  422. package/svg/flags/lk.svg +22 -22
  423. package/svg/flags/lr.svg +14 -14
  424. package/svg/flags/ls.svg +8 -8
  425. package/svg/flags/lt.svg +7 -7
  426. package/svg/flags/lu.svg +5 -5
  427. package/svg/flags/lv.svg +6 -6
  428. package/svg/flags/ly.svg +13 -13
  429. package/svg/flags/ma.svg +4 -4
  430. package/svg/flags/mc.svg +6 -6
  431. package/svg/flags/md.svg +70 -70
  432. package/svg/flags/me.svg +116 -116
  433. package/svg/flags/mf.svg +7 -7
  434. package/svg/flags/mg.svg +7 -7
  435. package/svg/flags/mh.svg +7 -7
  436. package/svg/flags/mk.svg +5 -5
  437. package/svg/flags/ml.svg +7 -7
  438. package/svg/flags/mm.svg +16 -16
  439. package/svg/flags/mn.svg +13 -13
  440. package/svg/flags/mo.svg +9 -9
  441. package/svg/flags/mp.svg +86 -86
  442. package/svg/flags/mq.svg +7 -7
  443. package/svg/flags/mr.svg +6 -6
  444. package/svg/flags/ms.svg +39 -39
  445. package/svg/flags/mt.svg +49 -49
  446. package/svg/flags/mu.svg +8 -8
  447. package/svg/flags/mv.svg +6 -6
  448. package/svg/flags/mw.svg +10 -10
  449. package/svg/flags/mx.svg +382 -382
  450. package/svg/flags/my.svg +15 -15
  451. package/svg/flags/mz.svg +21 -21
  452. package/svg/flags/na.svg +16 -16
  453. package/svg/flags/nc.svg +7 -7
  454. package/svg/flags/ne.svg +6 -6
  455. package/svg/flags/nf.svg +9 -9
  456. package/svg/flags/ng.svg +6 -6
  457. package/svg/flags/ni.svg +129 -129
  458. package/svg/flags/nl.svg +7 -7
  459. package/svg/flags/no.svg +7 -7
  460. package/svg/flags/np.svg +14 -14
  461. package/svg/flags/nr.svg +12 -12
  462. package/svg/flags/nu.svg +26 -26
  463. package/svg/flags/nz.svg +41 -41
  464. package/svg/flags/om.svg +115 -115
  465. package/svg/flags/pa.svg +14 -14
  466. package/svg/flags/pe.svg +244 -244
  467. package/svg/flags/pf.svg +19 -19
  468. package/svg/flags/pg.svg +9 -9
  469. package/svg/flags/ph.svg +13 -13
  470. package/svg/flags/pk.svg +15 -15
  471. package/svg/flags/pl.svg +6 -6
  472. package/svg/flags/pm.svg +7 -7
  473. package/svg/flags/pn.svg +62 -62
  474. package/svg/flags/pr.svg +13 -13
  475. package/svg/flags/ps.svg +15 -15
  476. package/svg/flags/pt.svg +57 -57
  477. package/svg/flags/pw.svg +11 -11
  478. package/svg/flags/py.svg +157 -157
  479. package/svg/flags/qa.svg +4 -4
  480. package/svg/flags/re.svg +7 -7
  481. package/svg/flags/ro.svg +7 -7
  482. package/svg/flags/rs.svg +292 -292
  483. package/svg/flags/ru.svg +7 -7
  484. package/svg/flags/rw.svg +13 -13
  485. package/svg/flags/sa.svg +26 -26
  486. package/svg/flags/sb.svg +13 -13
  487. package/svg/flags/sc.svg +14 -14
  488. package/svg/flags/sd.svg +13 -13
  489. package/svg/flags/se.svg +16 -16
  490. package/svg/flags/sg.svg +13 -13
  491. package/svg/flags/sh.svg +74 -74
  492. package/svg/flags/si.svg +18 -18
  493. package/svg/flags/sj.svg +7 -7
  494. package/svg/flags/sk.svg +9 -9
  495. package/svg/flags/sl.svg +7 -7
  496. package/svg/flags/sm.svg +91 -91
  497. package/svg/flags/sn.svg +8 -8
  498. package/svg/flags/so.svg +11 -11
  499. package/svg/flags/sr.svg +6 -6
  500. package/svg/flags/ss.svg +8 -8
  501. package/svg/flags/st.svg +16 -16
  502. package/svg/flags/sv.svg +606 -606
  503. package/svg/flags/sx.svg +56 -56
  504. package/svg/flags/sy.svg +6 -6
  505. package/svg/flags/sz.svg +45 -45
  506. package/svg/flags/tc.svg +67 -67
  507. package/svg/flags/td.svg +7 -7
  508. package/svg/flags/tf.svg +15 -15
  509. package/svg/flags/tg.svg +14 -14
  510. package/svg/flags/th.svg +7 -7
  511. package/svg/flags/tj.svg +22 -22
  512. package/svg/flags/tk.svg +5 -5
  513. package/svg/flags/tl.svg +13 -13
  514. package/svg/flags/tm.svg +206 -206
  515. package/svg/flags/tn.svg +13 -13
  516. package/svg/flags/to.svg +10 -10
  517. package/svg/flags/tr.svg +8 -8
  518. package/svg/flags/tt.svg +5 -5
  519. package/svg/flags/tv.svg +27 -27
  520. package/svg/flags/tw.svg +14 -14
  521. package/svg/flags/tz.svg +13 -13
  522. package/svg/flags/ua.svg +6 -6
  523. package/svg/flags/ug.svg +30 -30
  524. package/svg/flags/um.svg +15 -15
  525. package/svg/flags/un.svg +16 -16
  526. package/svg/flags/us.svg +10 -10
  527. package/svg/flags/uy.svg +28 -28
  528. package/svg/flags/uz.svg +30 -30
  529. package/svg/flags/va.svg +479 -479
  530. package/svg/flags/vc.svg +8 -8
  531. package/svg/flags/ve.svg +26 -26
  532. package/svg/flags/vg.svg +127 -127
  533. package/svg/flags/vi.svg +28 -28
  534. package/svg/flags/vn.svg +11 -11
  535. package/svg/flags/vu.svg +18 -18
  536. package/svg/flags/wf.svg +7 -7
  537. package/svg/flags/ws.svg +7 -7
  538. package/svg/flags/ye.svg +7 -7
  539. package/svg/flags/yt.svg +7 -7
  540. package/svg/flags/za.svg +17 -17
  541. package/svg/flags/zm.svg +27 -27
  542. package/svg/flags/zw.svg +21 -21
  543. package/test-utils/mock-response/product-status.js +44 -44
  544. package/utils/breakpoints.d.ts +23 -23
  545. package/utils/breakpoints.js +89 -89
  546. package/utils/callAllEventHandlers.d.ts +5 -5
  547. package/utils/callAllEventHandlers.js +8 -8
  548. package/utils/text.d.ts +1 -1
  549. package/utils/text.js +22 -22
  550. package/utils/theme.d.ts +3 -3
  551. package/utils/theme.js +4 -4
  552. package/utils/useHoverIntent.d.ts +10 -10
  553. package/utils/useHoverIntent.js +77 -77
  554. package/utils/usePropsOfType.d.ts +11 -11
  555. package/utils/usePropsOfType.js +17 -17
  556. package/withFlightUI.d.ts +17 -17
  557. 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>;