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