@jetshop/ui 5.13.10-0 → 5.14.0-alpha.49df897e

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (556) hide show
  1. package/Accordion/Accordion.d.ts +33 -33
  2. package/Accordion/Accordion.js +58 -58
  3. package/Accordion/Accordion.test.js +73 -73
  4. package/Accordion/__doc_utils__/AccordionHeader.js +12 -12
  5. package/Auth/FormFields/CountriesInput.d.ts +14 -14
  6. package/Auth/FormFields/CountriesInput.js +27 -27
  7. package/Auth/LogInBehavior.d.ts +22 -22
  8. package/Auth/LogInBehavior.js +23 -23
  9. package/Auth/LogInFormProvider.d.ts +7 -7
  10. package/Auth/LogInFormProvider.js +70 -70
  11. package/Auth/LogOut.d.ts +10 -10
  12. package/Auth/LogOut.js +23 -23
  13. package/Auth/logInValidator.d.ts +8 -8
  14. package/Auth/logInValidator.js +15 -15
  15. package/Breadcrumbs/Breadcrumbs.d.ts +14 -14
  16. package/Breadcrumbs/Breadcrumbs.js +83 -83
  17. package/Breadcrumbs/getParentsOrCanonicalRoute.d.ts +3 -3
  18. package/Breadcrumbs/getParentsOrCanonicalRoute.js +13 -13
  19. package/Breadcrumbs/index.d.ts +1 -1
  20. package/Breadcrumbs/index.js +1 -1
  21. package/Breakpoints.d.ts +12 -12
  22. package/Breakpoints.js +35 -35
  23. package/Button/Button.d.ts +14 -14
  24. package/Button/Button.js +59 -59
  25. package/Button/OutlineButton.d.ts +4 -4
  26. package/Button/OutlineButton.js +9 -9
  27. package/Button/SecondaryButton.d.ts +3 -3
  28. package/Button/SecondaryButton.js +8 -8
  29. package/Button/TrendButton.d.ts +3 -3
  30. package/Button/TrendButton.js +7 -7
  31. package/Button/index.d.ts +4 -4
  32. package/Button/index.js +4 -4
  33. package/CategoryLink.d.ts +9 -9
  34. package/CategoryLink.js +42 -42
  35. package/ChannelSelector/ChannelListItem.d.ts +10 -10
  36. package/ChannelSelector/ChannelListItem.js +50 -50
  37. package/ChannelSelector/ChannelListItem.test.js +85 -85
  38. package/ChannelSelector/ChannelSelector.d.ts +63 -63
  39. package/ChannelSelector/ChannelSelector.js +79 -79
  40. package/ChannelSelector/ChannelSelector.test.js +167 -167
  41. package/ChannelSelector/ChannelSelectorButtons.d.ts +3 -3
  42. package/ChannelSelector/ChannelSelectorButtons.js +19 -19
  43. package/ChannelSelector/Channels.d.ts +17 -17
  44. package/ChannelSelector/Channels.js +11 -11
  45. package/ChannelSelector/Channels.test.js +90 -90
  46. package/ChannelSelector/LargeSelector.d.ts +3 -3
  47. package/ChannelSelector/LargeSelector.js +66 -66
  48. package/ChannelSelector/MiniSelector.d.ts +4 -4
  49. package/ChannelSelector/MiniSelector.js +57 -57
  50. package/ChannelSelector/Region.d.ts +28 -28
  51. package/ChannelSelector/Region.js +20 -20
  52. package/ChannelSelector/Region.test.js +37 -37
  53. package/ChannelSelector/exampleChannels.js +577 -577
  54. package/ChannelSelector/groupBy.d.ts +7 -7
  55. package/ChannelSelector/groupBy.js +15 -15
  56. package/ChannelSelector/groupBy.test.js +42 -42
  57. package/Checkbox/Checkbox.d.ts +10 -10
  58. package/Checkbox/Checkbox.js +68 -68
  59. package/Checkbox/CheckboxGroup.d.ts +23 -23
  60. package/Checkbox/CheckboxGroup.js +21 -21
  61. package/Checkbox/index.d.ts +2 -2
  62. package/Checkbox/index.js +2 -2
  63. package/ContentPageLink.d.ts +9 -9
  64. package/ContentPageLink.js +36 -36
  65. package/ContentRenderer.d.ts +9 -9
  66. package/ContentRenderer.js +35 -35
  67. package/DropdownMenu/Button.d.ts +7 -7
  68. package/DropdownMenu/Button.js +31 -31
  69. package/DropdownMenu/DropdownMenu.d.ts +21 -21
  70. package/DropdownMenu/DropdownMenu.js +71 -71
  71. package/DropdownMenu/Item.d.ts +13 -13
  72. package/DropdownMenu/Item.js +47 -47
  73. package/DropdownMenu/Items.d.ts +16 -16
  74. package/DropdownMenu/Items.js +52 -52
  75. package/DropdownMenu/index.d.ts +4 -4
  76. package/DropdownMenu/index.js +4 -4
  77. package/ErrorBoundary/Generic.d.ts +17 -17
  78. package/ErrorBoundary/Generic.js +68 -68
  79. package/ErrorBoundary/PassThrough.d.ts +3 -3
  80. package/ErrorBoundary/PassThrough.js +6 -6
  81. package/Gallery/Gallery.d.ts +39 -39
  82. package/Gallery/Gallery.js +121 -121
  83. package/Gallery/constructGallery.d.ts +15 -15
  84. package/Gallery/constructGallery.js +40 -40
  85. package/Image/B2BImage.d.ts +50 -50
  86. package/Image/B2BImage.js +52 -52
  87. package/Image/BaseImage.d.ts +39 -39
  88. package/Image/BaseImage.js +191 -191
  89. package/Image/Fallback.d.ts +5 -5
  90. package/Image/Fallback.js +3 -3
  91. package/Image/FlightImage.d.ts +52 -52
  92. package/Image/FlightImage.js +57 -57
  93. package/Image/FlightImage.test.js +277 -277
  94. package/Image/Image.d.ts +2 -2
  95. package/Image/Image.js +2 -2
  96. package/Image/index.d.ts +1 -1
  97. package/Image/index.js +1 -1
  98. package/Image/useConstructImage.d.ts +46 -46
  99. package/Image/useConstructImage.js +96 -96
  100. package/Image/utils/aspectRatioToFraction.d.ts +2 -2
  101. package/Image/utils/aspectRatioToFraction.js +10 -10
  102. package/Image/utils/getFullUrl.d.ts +6 -6
  103. package/Image/utils/getFullUrl.js +17 -17
  104. package/Image/utils/getImageWidth.d.ts +1 -1
  105. package/Image/utils/getImageWidth.js +11 -11
  106. package/Image/utils/getImageWidths.d.ts +2 -2
  107. package/Image/utils/getImageWidths.js +13 -13
  108. package/Image/utils/getLQIP.d.ts +8 -8
  109. package/Image/utils/getLQIP.js +19 -19
  110. package/Image/utils/getLargestSize.d.ts +7 -7
  111. package/Image/utils/getLargestSize.js +16 -16
  112. package/Image/utils/getSizeForBreakpoint.d.ts +2 -2
  113. package/Image/utils/getSizeForBreakpoint.js +15 -15
  114. package/Image/utils/getSizesMap.d.ts +2 -2
  115. package/Image/utils/getSizesMap.js +21 -21
  116. package/Image/utils/getSmallestSize.d.ts +2 -2
  117. package/Image/utils/getSmallestSize.js +11 -11
  118. package/Image/utils/getSrcSetFromWidths.d.ts +10 -10
  119. package/Image/utils/getSrcSetFromWidths.js +8 -8
  120. package/Image/utils/getSrcWithParams.d.ts +3 -3
  121. package/Image/utils/getSrcWithParams.js +28 -28
  122. package/Image/utils/paddingForAspectRatio.d.ts +1 -1
  123. package/Image/utils/paddingForAspectRatio.js +5 -5
  124. package/Image/utils/remToPx.d.ts +1 -1
  125. package/Image/utils/remToPx.js +1 -1
  126. package/Image/utils/sizeToNumber.d.ts +2 -2
  127. package/Image/utils/sizeToNumber.js +26 -26
  128. package/Input/Input.d.ts +6 -6
  129. package/Input/Input.js +44 -44
  130. package/Input/index.d.ts +3 -3
  131. package/Input/index.js +3 -3
  132. package/JetshopText.d.ts +3 -3
  133. package/JetshopText.js +11 -11
  134. package/Loading/LoadingBar.d.ts +8 -8
  135. package/Loading/LoadingBar.js +57 -57
  136. package/Loading/LoadingLine.d.ts +31 -31
  137. package/Loading/LoadingLine.js +25 -25
  138. package/Loading/LoadingLine.test.js +18 -18
  139. package/Loading/NetworkStatusNotifier.d.ts +2 -2
  140. package/Loading/NetworkStatusNotifier.js +3 -3
  141. package/Menu/GetMoreSubcategoriesQuery.gql +25 -25
  142. package/Menu/MenuContainer.d.ts +28 -28
  143. package/Menu/MenuContainer.js +45 -45
  144. package/Menu/MenuContainer.test.js +245 -245
  145. package/Menu/RecursiveTree.d.ts +28 -28
  146. package/Menu/RecursiveTree.js +90 -90
  147. package/Menu/RecursiveTree.test.js +416 -416
  148. package/Modal/Drawer/Drawer.d.ts +11 -11
  149. package/Modal/Drawer/Drawer.js +30 -30
  150. package/Modal/Drawer/DrawerTarget.d.ts +6 -6
  151. package/Modal/Drawer/DrawerTarget.js +11 -11
  152. package/Modal/Drawer/DrawerTarget.test.js +92 -92
  153. package/Modal/Drawer/DrawerTrigger.d.ts +11 -11
  154. package/Modal/Drawer/DrawerTrigger.js +15 -15
  155. package/Modal/Drawer/DrawerTrigger.test.js +51 -51
  156. package/Modal/Drawer/index.d.ts +3 -3
  157. package/Modal/Drawer/index.js +3 -3
  158. package/Modal/Flyout/FlyoutTarget.d.ts +10 -10
  159. package/Modal/Flyout/FlyoutTarget.js +14 -14
  160. package/Modal/Flyout/FlyoutTarget.test.js +84 -84
  161. package/Modal/Flyout/FlyoutTrigger.d.ts +15 -15
  162. package/Modal/Flyout/FlyoutTrigger.js +17 -17
  163. package/Modal/Flyout/FlyoutTrigger.test.js +72 -72
  164. package/Modal/Flyout/index.d.ts +2 -2
  165. package/Modal/Flyout/index.js +2 -2
  166. package/Modal/ModalContext.d.ts +26 -26
  167. package/Modal/ModalContext.js +8 -8
  168. package/Modal/ModalProvider.d.ts +5 -5
  169. package/Modal/ModalProvider.js +82 -82
  170. package/Modal/ModalProvider.test.js +26 -26
  171. package/Modal/ModalRoot.d.ts +3 -3
  172. package/Modal/ModalRoot.js +43 -43
  173. package/Modal/ModalRoot.test.js +80 -80
  174. package/Modal/ModalTrigger.d.ts +9 -9
  175. package/Modal/ModalTrigger.js +8 -8
  176. package/Modal/__test_utils__/getComponentWithModalContext.js +29 -29
  177. package/Pagination/Pagination.d.ts +7 -7
  178. package/Pagination/Pagination.js +22 -22
  179. package/Pagination/PaginationBehaviour.d.ts +52 -52
  180. package/Pagination/PaginationBehaviour.js +67 -67
  181. package/Pagination/index.d.ts +2 -2
  182. package/Pagination/index.js +2 -2
  183. package/Pagination/usePagination.d.ts +15 -15
  184. package/Pagination/usePagination.js +45 -45
  185. package/PreOrderDateSelector/PreOrderDateSelector.d.ts +20 -20
  186. package/PreOrderDateSelector/PreOrderDateSelector.js +73 -73
  187. package/PreOrderDateSelector/index.d.ts +2 -2
  188. package/PreOrderDateSelector/index.js +2 -2
  189. package/Price/Currency.d.ts +9 -9
  190. package/Price/Currency.js +10 -10
  191. package/Price/Price.d.ts +29 -28
  192. package/Price/Price.js +35 -34
  193. package/Price/Price.js.map +1 -1
  194. package/Price/index.d.ts +1 -1
  195. package/Price/index.js +1 -1
  196. package/ProductLink.d.ts +21 -21
  197. package/ProductLink.js +81 -81
  198. package/ProductList/Badges.d.ts +6 -6
  199. package/ProductList/Badges.js +55 -55
  200. package/ProductList/GridProduct.d.ts +24 -24
  201. package/ProductList/GridProduct.js +57 -57
  202. package/ProductList/ProductGrid.d.ts +16 -16
  203. package/ProductList/ProductGrid.js +29 -29
  204. package/ProductList/ProductImage.d.ts +12 -12
  205. package/ProductList/ProductImage.js +20 -20
  206. package/ProductSpecifications/ProductSpecifications.d.ts +8 -8
  207. package/ProductSpecifications/ProductSpecifications.js +77 -77
  208. package/ScrollRestorationHandler/ScrollRestorationHandler.d.ts +8 -8
  209. package/ScrollRestorationHandler/ScrollRestorationHandler.js +16 -16
  210. package/ScrollRestorationHandler/ScrollRestorationHandler.test.js +75 -75
  211. package/ScrollRestorationHandler/index.d.ts +1 -1
  212. package/ScrollRestorationHandler/index.js +1 -1
  213. package/ScrollRestorationHandler/isInIgnoredRouteTypes.d.ts +6 -6
  214. package/ScrollRestorationHandler/isInIgnoredRouteTypes.js +7 -7
  215. package/ScrollRestorationHandler/useScrollRestore.d.ts +7 -7
  216. package/ScrollRestorationHandler/useScrollRestore.js +19 -19
  217. package/Search/AutocompleteQuery.gql +10 -10
  218. package/Search/SearchAutoCompleteContainer.d.ts +45 -45
  219. package/Search/SearchAutoCompleteContainer.js +171 -171
  220. package/Search/SearchAutoCompleteContainer.test.js +460 -460
  221. package/Search/SearchField.d.ts +15 -15
  222. package/Search/SearchField.js +96 -96
  223. package/Search/SearchPage/PageOf.d.ts +5 -5
  224. package/Search/SearchPage/PageOf.js +6 -6
  225. package/Search/SearchPage/SearchMeta.d.ts +16 -16
  226. package/Search/SearchPage/SearchMeta.js +19 -19
  227. package/Search/SearchPage/SearchPageBehaviour.d.ts +19 -19
  228. package/Search/SearchPage/SearchPageBehaviour.js +66 -66
  229. package/Search/SuggestedTerm.d.ts +16 -16
  230. package/Search/SuggestedTerm.js +34 -34
  231. package/Search/index.d.ts +1 -1
  232. package/Search/index.js +1 -1
  233. package/Select/Components.d.ts +28 -28
  234. package/Select/Components.js +90 -90
  235. package/Select/SelectComponents/Quantity.d.ts +5 -5
  236. package/Select/SelectComponents/Quantity.js +7 -7
  237. package/Select/index.d.ts +5 -5
  238. package/Select/index.js +1 -1
  239. package/SortOrder/SortOrder.d.ts +16 -16
  240. package/SortOrder/SortOrder.js +31 -31
  241. package/SortOrder/SortOrderDropdown.d.ts +9 -9
  242. package/SortOrder/SortOrderDropdown.js +24 -24
  243. package/SortOrder/SortOrderList.d.ts +7 -7
  244. package/SortOrder/SortOrderList.js +16 -16
  245. package/StartPageRenderer/StartPageRenderer.d.ts +17 -17
  246. package/StartPageRenderer/StartPageRenderer.js +51 -51
  247. package/StartPageRenderer/index.d.ts +1 -1
  248. package/StartPageRenderer/index.js +1 -1
  249. package/Stock/StockStatusContainer.d.ts +16 -16
  250. package/Stock/StockStatusContainer.js +39 -39
  251. package/Stock/__tests__/StockStatusContainer.test.js +65 -65
  252. package/Text/Text.d.ts +11 -11
  253. package/Text/Text.js +21 -21
  254. package/Text/index.d.ts +3 -3
  255. package/Text/index.js +3 -3
  256. package/Theme/createTheme.d.ts +16 -16
  257. package/Theme/createTheme.js +4 -4
  258. package/Theme/cssReset.d.ts +1 -1
  259. package/Theme/cssReset.js +159 -159
  260. package/Theme/normalizeCss.d.ts +1 -1
  261. package/Theme/normalizeCss.js +356 -356
  262. package/Theme/sanitizeCss.d.ts +1 -1
  263. package/Theme/sanitizeCss.js +571 -571
  264. package/WindowGrid/WindowGrid.d.ts +11 -11
  265. package/WindowGrid/WindowGrid.js +57 -57
  266. package/WindowGrid/index.d.ts +1 -1
  267. package/WindowGrid/index.js +1 -1
  268. package/WindowGrid/useResizeObserver.d.ts +8 -8
  269. package/WindowGrid/useResizeObserver.js +13 -13
  270. package/WindowGrid/useScrollWithWindow.d.ts +12 -12
  271. package/WindowGrid/useScrollWithWindow.js +38 -38
  272. package/dependencies.d.ts +98 -98
  273. package/fuzzySearch/fuzzySearch.d.ts +8 -8
  274. package/fuzzySearch/fuzzySearch.js +42 -42
  275. package/fuzzySearch/index.d.ts +1 -1
  276. package/fuzzySearch/index.js +1 -1
  277. package/global.d.ts +1 -1
  278. package/hooks/index.d.ts +2 -2
  279. package/hooks/index.js +2 -2
  280. package/hooks/useOnClickOutside.d.ts +6 -6
  281. package/hooks/useOnClickOutside.js +16 -16
  282. package/hooks/useOnEsc.d.ts +4 -4
  283. package/hooks/useOnEsc.js +16 -16
  284. package/package.json +1 -1
  285. package/setupTests.js +2 -2
  286. package/svg/flags/ad.svg +150 -150
  287. package/svg/flags/ae.svg +6 -6
  288. package/svg/flags/af.svg +81 -81
  289. package/svg/flags/ag.svg +14 -14
  290. package/svg/flags/ai.svg +767 -767
  291. package/svg/flags/al.svg +5 -5
  292. package/svg/flags/am.svg +5 -5
  293. package/svg/flags/ao.svg +13 -13
  294. package/svg/flags/aq.svg +6 -6
  295. package/svg/flags/ar.svg +31 -31
  296. package/svg/flags/as.svg +33 -33
  297. package/svg/flags/at.svg +6 -6
  298. package/svg/flags/au.svg +9 -9
  299. package/svg/flags/aw.svg +186 -186
  300. package/svg/flags/ax.svg +18 -18
  301. package/svg/flags/az.svg +8 -8
  302. package/svg/flags/ba.svg +12 -12
  303. package/svg/flags/bb.svg +6 -6
  304. package/svg/flags/bd.svg +4 -4
  305. package/svg/flags/be.svg +7 -7
  306. package/svg/flags/bf.svg +7 -7
  307. package/svg/flags/bg.svg +7 -7
  308. package/svg/flags/bh.svg +11 -11
  309. package/svg/flags/bi.svg +15 -15
  310. package/svg/flags/bj.svg +14 -14
  311. package/svg/flags/bl.svg +7 -7
  312. package/svg/flags/bm.svg +98 -98
  313. package/svg/flags/bn.svg +36 -36
  314. package/svg/flags/bo.svg +676 -676
  315. package/svg/flags/bq.svg +5 -5
  316. package/svg/flags/br.svg +45 -45
  317. package/svg/flags/bs.svg +13 -13
  318. package/svg/flags/bt.svg +89 -89
  319. package/svg/flags/bv.svg +13 -13
  320. package/svg/flags/bw.svg +7 -7
  321. package/svg/flags/by.svg +20 -20
  322. package/svg/flags/bz.svg +145 -145
  323. package/svg/flags/ca.svg +4 -4
  324. package/svg/flags/cc.svg +19 -19
  325. package/svg/flags/cd.svg +5 -5
  326. package/svg/flags/cf.svg +15 -15
  327. package/svg/flags/cg.svg +12 -12
  328. package/svg/flags/ch.svg +9 -9
  329. package/svg/flags/ci.svg +7 -7
  330. package/svg/flags/ck.svg +9 -9
  331. package/svg/flags/cl.svg +13 -13
  332. package/svg/flags/cm.svg +15 -15
  333. package/svg/flags/cn.svg +11 -11
  334. package/svg/flags/co.svg +7 -7
  335. package/svg/flags/cr.svg +7 -7
  336. package/svg/flags/cu.svg +13 -13
  337. package/svg/flags/cv.svg +13 -13
  338. package/svg/flags/cw.svg +14 -14
  339. package/svg/flags/cx.svg +15 -15
  340. package/svg/flags/cy.svg +6 -6
  341. package/svg/flags/cz.svg +12 -12
  342. package/svg/flags/de.svg +5 -5
  343. package/svg/flags/dj.svg +13 -13
  344. package/svg/flags/dk.svg +5 -5
  345. package/svg/flags/dm.svg +152 -152
  346. package/svg/flags/do.svg +6745 -6745
  347. package/svg/flags/dz.svg +5 -5
  348. package/svg/flags/ec.svg +138 -138
  349. package/svg/flags/ee.svg +7 -7
  350. package/svg/flags/eg.svg +38 -38
  351. package/svg/flags/eh.svg +15 -15
  352. package/svg/flags/er.svg +8 -8
  353. package/svg/flags/es-ct.svg +4 -4
  354. package/svg/flags/es.svg +544 -544
  355. package/svg/flags/et.svg +14 -14
  356. package/svg/flags/eu.svg +28 -28
  357. package/svg/flags/fi.svg +5 -5
  358. package/svg/flags/fj.svg +120 -120
  359. package/svg/flags/fk.svg +89 -89
  360. package/svg/flags/fm.svg +11 -11
  361. package/svg/flags/fo.svg +12 -12
  362. package/svg/flags/fr.svg +7 -7
  363. package/svg/flags/ga.svg +7 -7
  364. package/svg/flags/gb-eng.svg +5 -5
  365. package/svg/flags/gb-nir.svg +131 -131
  366. package/svg/flags/gb-sct.svg +4 -4
  367. package/svg/flags/gb-wls.svg +9 -9
  368. package/svg/flags/gb.svg +15 -15
  369. package/svg/flags/gd.svg +27 -27
  370. package/svg/flags/ge.svg +6 -6
  371. package/svg/flags/gf.svg +5 -5
  372. package/svg/flags/gg.svg +9 -9
  373. package/svg/flags/gh.svg +6 -6
  374. package/svg/flags/gi.svg +32 -32
  375. package/svg/flags/gl.svg +4 -4
  376. package/svg/flags/gm.svg +14 -14
  377. package/svg/flags/gn.svg +7 -7
  378. package/svg/flags/gp.svg +7 -7
  379. package/svg/flags/gq.svg +23 -23
  380. package/svg/flags/gr.svg +22 -22
  381. package/svg/flags/gs.svg +201 -201
  382. package/svg/flags/gt.svg +204 -204
  383. package/svg/flags/gu.svg +39 -39
  384. package/svg/flags/gw.svg +13 -13
  385. package/svg/flags/gy.svg +9 -9
  386. package/svg/flags/hk.svg +30 -30
  387. package/svg/flags/hm.svg +9 -9
  388. package/svg/flags/hn.svg +18 -18
  389. package/svg/flags/hr.svg +58 -58
  390. package/svg/flags/ht.svg +116 -116
  391. package/svg/flags/hu.svg +7 -7
  392. package/svg/flags/id.svg +6 -6
  393. package/svg/flags/ie.svg +7 -7
  394. package/svg/flags/il.svg +14 -14
  395. package/svg/flags/im.svg +36 -36
  396. package/svg/flags/in.svg +25 -25
  397. package/svg/flags/io.svg +138 -138
  398. package/svg/flags/iq.svg +10 -10
  399. package/svg/flags/ir.svg +219 -219
  400. package/svg/flags/is.svg +12 -12
  401. package/svg/flags/it.svg +7 -7
  402. package/svg/flags/je.svg +31 -31
  403. package/svg/flags/jm.svg +8 -8
  404. package/svg/flags/jo.svg +16 -16
  405. package/svg/flags/jp.svg +11 -11
  406. package/svg/flags/ke.svg +23 -23
  407. package/svg/flags/kg.svg +15 -15
  408. package/svg/flags/kh.svg +61 -61
  409. package/svg/flags/ki.svg +36 -36
  410. package/svg/flags/km.svg +16 -16
  411. package/svg/flags/kn.svg +14 -14
  412. package/svg/flags/kp.svg +15 -15
  413. package/svg/flags/kr.svg +24 -24
  414. package/svg/flags/kw.svg +13 -13
  415. package/svg/flags/ky.svg +63 -63
  416. package/svg/flags/kz.svg +23 -23
  417. package/svg/flags/la.svg +12 -12
  418. package/svg/flags/lb.svg +15 -15
  419. package/svg/flags/lc.svg +8 -8
  420. package/svg/flags/li.svg +43 -43
  421. package/svg/flags/lk.svg +22 -22
  422. package/svg/flags/lr.svg +14 -14
  423. package/svg/flags/ls.svg +8 -8
  424. package/svg/flags/lt.svg +7 -7
  425. package/svg/flags/lu.svg +5 -5
  426. package/svg/flags/lv.svg +6 -6
  427. package/svg/flags/ly.svg +13 -13
  428. package/svg/flags/ma.svg +4 -4
  429. package/svg/flags/mc.svg +6 -6
  430. package/svg/flags/md.svg +70 -70
  431. package/svg/flags/me.svg +116 -116
  432. package/svg/flags/mf.svg +7 -7
  433. package/svg/flags/mg.svg +7 -7
  434. package/svg/flags/mh.svg +7 -7
  435. package/svg/flags/mk.svg +5 -5
  436. package/svg/flags/ml.svg +7 -7
  437. package/svg/flags/mm.svg +16 -16
  438. package/svg/flags/mn.svg +13 -13
  439. package/svg/flags/mo.svg +9 -9
  440. package/svg/flags/mp.svg +86 -86
  441. package/svg/flags/mq.svg +7 -7
  442. package/svg/flags/mr.svg +6 -6
  443. package/svg/flags/ms.svg +39 -39
  444. package/svg/flags/mt.svg +49 -49
  445. package/svg/flags/mu.svg +8 -8
  446. package/svg/flags/mv.svg +6 -6
  447. package/svg/flags/mw.svg +10 -10
  448. package/svg/flags/mx.svg +382 -382
  449. package/svg/flags/my.svg +15 -15
  450. package/svg/flags/mz.svg +21 -21
  451. package/svg/flags/na.svg +16 -16
  452. package/svg/flags/nc.svg +7 -7
  453. package/svg/flags/ne.svg +6 -6
  454. package/svg/flags/nf.svg +9 -9
  455. package/svg/flags/ng.svg +6 -6
  456. package/svg/flags/ni.svg +129 -129
  457. package/svg/flags/nl.svg +7 -7
  458. package/svg/flags/no.svg +7 -7
  459. package/svg/flags/np.svg +14 -14
  460. package/svg/flags/nr.svg +12 -12
  461. package/svg/flags/nu.svg +26 -26
  462. package/svg/flags/nz.svg +41 -41
  463. package/svg/flags/om.svg +115 -115
  464. package/svg/flags/pa.svg +14 -14
  465. package/svg/flags/pe.svg +244 -244
  466. package/svg/flags/pf.svg +19 -19
  467. package/svg/flags/pg.svg +9 -9
  468. package/svg/flags/ph.svg +13 -13
  469. package/svg/flags/pk.svg +15 -15
  470. package/svg/flags/pl.svg +6 -6
  471. package/svg/flags/pm.svg +7 -7
  472. package/svg/flags/pn.svg +62 -62
  473. package/svg/flags/pr.svg +13 -13
  474. package/svg/flags/ps.svg +15 -15
  475. package/svg/flags/pt.svg +57 -57
  476. package/svg/flags/pw.svg +11 -11
  477. package/svg/flags/py.svg +157 -157
  478. package/svg/flags/qa.svg +4 -4
  479. package/svg/flags/re.svg +7 -7
  480. package/svg/flags/ro.svg +7 -7
  481. package/svg/flags/rs.svg +292 -292
  482. package/svg/flags/ru.svg +7 -7
  483. package/svg/flags/rw.svg +13 -13
  484. package/svg/flags/sa.svg +26 -26
  485. package/svg/flags/sb.svg +13 -13
  486. package/svg/flags/sc.svg +14 -14
  487. package/svg/flags/sd.svg +13 -13
  488. package/svg/flags/se.svg +16 -16
  489. package/svg/flags/sg.svg +13 -13
  490. package/svg/flags/sh.svg +74 -74
  491. package/svg/flags/si.svg +18 -18
  492. package/svg/flags/sj.svg +7 -7
  493. package/svg/flags/sk.svg +9 -9
  494. package/svg/flags/sl.svg +7 -7
  495. package/svg/flags/sm.svg +91 -91
  496. package/svg/flags/sn.svg +8 -8
  497. package/svg/flags/so.svg +11 -11
  498. package/svg/flags/sr.svg +6 -6
  499. package/svg/flags/ss.svg +8 -8
  500. package/svg/flags/st.svg +16 -16
  501. package/svg/flags/sv.svg +606 -606
  502. package/svg/flags/sx.svg +56 -56
  503. package/svg/flags/sy.svg +6 -6
  504. package/svg/flags/sz.svg +45 -45
  505. package/svg/flags/tc.svg +67 -67
  506. package/svg/flags/td.svg +7 -7
  507. package/svg/flags/tf.svg +15 -15
  508. package/svg/flags/tg.svg +14 -14
  509. package/svg/flags/th.svg +7 -7
  510. package/svg/flags/tj.svg +22 -22
  511. package/svg/flags/tk.svg +5 -5
  512. package/svg/flags/tl.svg +13 -13
  513. package/svg/flags/tm.svg +206 -206
  514. package/svg/flags/tn.svg +13 -13
  515. package/svg/flags/to.svg +10 -10
  516. package/svg/flags/tr.svg +8 -8
  517. package/svg/flags/tt.svg +5 -5
  518. package/svg/flags/tv.svg +27 -27
  519. package/svg/flags/tw.svg +14 -14
  520. package/svg/flags/tz.svg +13 -13
  521. package/svg/flags/ua.svg +6 -6
  522. package/svg/flags/ug.svg +30 -30
  523. package/svg/flags/um.svg +15 -15
  524. package/svg/flags/un.svg +16 -16
  525. package/svg/flags/us.svg +10 -10
  526. package/svg/flags/uy.svg +28 -28
  527. package/svg/flags/uz.svg +30 -30
  528. package/svg/flags/va.svg +479 -479
  529. package/svg/flags/vc.svg +8 -8
  530. package/svg/flags/ve.svg +26 -26
  531. package/svg/flags/vg.svg +127 -127
  532. package/svg/flags/vi.svg +28 -28
  533. package/svg/flags/vn.svg +11 -11
  534. package/svg/flags/vu.svg +18 -18
  535. package/svg/flags/wf.svg +7 -7
  536. package/svg/flags/ws.svg +7 -7
  537. package/svg/flags/ye.svg +7 -7
  538. package/svg/flags/yt.svg +7 -7
  539. package/svg/flags/za.svg +17 -17
  540. package/svg/flags/zm.svg +27 -27
  541. package/svg/flags/zw.svg +21 -21
  542. package/test-utils/mock-response/product-status.js +44 -44
  543. package/utils/breakpoints.d.ts +23 -23
  544. package/utils/breakpoints.js +89 -89
  545. package/utils/callAllEventHandlers.d.ts +5 -5
  546. package/utils/callAllEventHandlers.js +8 -8
  547. package/utils/text.d.ts +1 -1
  548. package/utils/text.js +22 -22
  549. package/utils/theme.d.ts +3 -3
  550. package/utils/theme.js +4 -4
  551. package/utils/useHoverIntent.d.ts +10 -10
  552. package/utils/useHoverIntent.js +77 -77
  553. package/utils/usePropsOfType.d.ts +11 -11
  554. package/utils/usePropsOfType.js +17 -17
  555. package/withFlightUI.d.ts +17 -17
  556. package/withFlightUI.js +19 -19
@@ -1,68 +1,68 @@
1
- import React from 'react';
2
- const getTotalPages = ({ perPage, total }) => Math.ceil(total / perPage);
3
- const checkPageValidity = (totalPages, { total, currentPage, goToPage }) => {
4
- // Go to the last available page if the selected page does not exist
5
- if (total > 0 && totalPages < currentPage)
6
- goToPage(totalPages);
7
- if (total === 0 && currentPage > 1)
8
- goToPage && goToPage(1);
9
- };
10
- const incrementPage = (page) => {
11
- return page + 1;
12
- };
13
- const decrementPage = (page) => {
14
- return page - 1;
15
- };
16
- export default class PaginationBehaviour extends React.Component {
17
- constructor(props) {
18
- super(props);
19
- this.setTotalPages = () => {
20
- const totalPages = getTotalPages(this.props);
21
- this.setState({ totalPages });
22
- return totalPages;
23
- };
24
- this.nextPage = () => {
25
- const { currentPage } = this.props;
26
- const { totalPages } = this.state;
27
- currentPage < totalPages && this.props.goToPage(incrementPage(currentPage));
28
- };
29
- this.prevPage = () => {
30
- const { currentPage } = this.props;
31
- currentPage !== 1 && this.props.goToPage(decrementPage(currentPage));
32
- };
33
- this.getStateAndProps = () => {
34
- return {
35
- totalItems: this.props.total,
36
- totalPages: this.state.totalPages,
37
- currentPage: this.props.currentPage,
38
- prevPage: this.prevPage,
39
- nextPage: this.nextPage,
40
- goToPage: this.props.goToPage,
41
- setProductsPerPage: this.props.setProductsPerPage,
42
- isFirstPage: this.props.currentPage === 1,
43
- isLastPage: this.props.currentPage === this.state.totalPages,
44
- hasPages: this.state.totalPages !== 0
45
- };
46
- };
47
- this.state = {
48
- totalPages: getTotalPages(props)
49
- };
50
- }
51
- componentDidMount() {
52
- const totalPages = this.setTotalPages();
53
- checkPageValidity(totalPages, this.props);
54
- }
55
- componentDidUpdate(prevProps) {
56
- if (prevProps.total !== this.props.total) {
57
- const totalPages = this.setTotalPages();
58
- checkPageValidity(totalPages, this.props);
59
- }
60
- if (prevProps.perPage !== this.props.perPage) {
61
- this.setTotalPages();
62
- }
63
- }
64
- render() {
65
- return this.props.children(this.getStateAndProps());
66
- }
67
- }
1
+ import React from 'react';
2
+ const getTotalPages = ({ perPage, total }) => Math.ceil(total / perPage);
3
+ const checkPageValidity = (totalPages, { total, currentPage, goToPage }) => {
4
+ // Go to the last available page if the selected page does not exist
5
+ if (total > 0 && totalPages < currentPage)
6
+ goToPage(totalPages);
7
+ if (total === 0 && currentPage > 1)
8
+ goToPage && goToPage(1);
9
+ };
10
+ const incrementPage = (page) => {
11
+ return page + 1;
12
+ };
13
+ const decrementPage = (page) => {
14
+ return page - 1;
15
+ };
16
+ export default class PaginationBehaviour extends React.Component {
17
+ constructor(props) {
18
+ super(props);
19
+ this.setTotalPages = () => {
20
+ const totalPages = getTotalPages(this.props);
21
+ this.setState({ totalPages });
22
+ return totalPages;
23
+ };
24
+ this.nextPage = () => {
25
+ const { currentPage } = this.props;
26
+ const { totalPages } = this.state;
27
+ currentPage < totalPages && this.props.goToPage(incrementPage(currentPage));
28
+ };
29
+ this.prevPage = () => {
30
+ const { currentPage } = this.props;
31
+ currentPage !== 1 && this.props.goToPage(decrementPage(currentPage));
32
+ };
33
+ this.getStateAndProps = () => {
34
+ return {
35
+ totalItems: this.props.total,
36
+ totalPages: this.state.totalPages,
37
+ currentPage: this.props.currentPage,
38
+ prevPage: this.prevPage,
39
+ nextPage: this.nextPage,
40
+ goToPage: this.props.goToPage,
41
+ setProductsPerPage: this.props.setProductsPerPage,
42
+ isFirstPage: this.props.currentPage === 1,
43
+ isLastPage: this.props.currentPage === this.state.totalPages,
44
+ hasPages: this.state.totalPages !== 0
45
+ };
46
+ };
47
+ this.state = {
48
+ totalPages: getTotalPages(props)
49
+ };
50
+ }
51
+ componentDidMount() {
52
+ const totalPages = this.setTotalPages();
53
+ checkPageValidity(totalPages, this.props);
54
+ }
55
+ componentDidUpdate(prevProps) {
56
+ if (prevProps.total !== this.props.total) {
57
+ const totalPages = this.setTotalPages();
58
+ checkPageValidity(totalPages, this.props);
59
+ }
60
+ if (prevProps.perPage !== this.props.perPage) {
61
+ this.setTotalPages();
62
+ }
63
+ }
64
+ render() {
65
+ return this.props.children(this.getStateAndProps());
66
+ }
67
+ }
68
68
  //# sourceMappingURL=PaginationBehaviour.js.map
@@ -1,2 +1,2 @@
1
- export { default as Pagination } from './Pagination';
2
- export { default as PaginationBehaviour } from './PaginationBehaviour';
1
+ export { default as Pagination } from './Pagination';
2
+ export { default as PaginationBehaviour } from './PaginationBehaviour';
@@ -1,3 +1,3 @@
1
- export { default as Pagination } from './Pagination';
2
- export { default as PaginationBehaviour } from './PaginationBehaviour';
1
+ export { default as Pagination } from './Pagination';
2
+ export { default as PaginationBehaviour } from './PaginationBehaviour';
3
3
  //# sourceMappingURL=index.js.map
@@ -1,15 +1,15 @@
1
- import { PaginationBehaviourRenderProps } from '@jetshop/ui/Pagination/PaginationBehaviour';
2
- import * as React from 'react';
3
- export declare const PaginationWrapper: import("linaria/lib/StyledMeta").StyledMeta & React.FunctionComponent<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
4
- as?: React.ElementType<any>;
5
- }>;
6
- declare function usePagination({ prevPage, nextPage, currentPage, isFirstPage, isLastPage }: Partial<PaginationBehaviourRenderProps>): {
7
- prevHref: string;
8
- nextHref: string;
9
- goToHref: (page: number) => string;
10
- prevOnClick: (e: React.MouseEvent<HTMLElement>) => void;
11
- nextOnClick: (e: React.MouseEvent<HTMLElement>) => void;
12
- isPrevDisabled: boolean;
13
- isNextDisabled: boolean;
14
- };
15
- export default usePagination;
1
+ import { PaginationBehaviourRenderProps } from '@jetshop/ui/Pagination/PaginationBehaviour';
2
+ import * as React from 'react';
3
+ export declare const PaginationWrapper: import("linaria/lib/StyledMeta").StyledMeta & React.FunctionComponent<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
4
+ as?: React.ElementType<any>;
5
+ }>;
6
+ declare function usePagination({ prevPage, nextPage, currentPage, isFirstPage, isLastPage }: Partial<PaginationBehaviourRenderProps>): {
7
+ prevHref: string;
8
+ nextHref: string;
9
+ goToHref: (page: number) => string;
10
+ prevOnClick: (e: React.MouseEvent<HTMLElement>) => void;
11
+ nextOnClick: (e: React.MouseEvent<HTMLElement>) => void;
12
+ isPrevDisabled: boolean;
13
+ isNextDisabled: boolean;
14
+ };
15
+ export default usePagination;
@@ -1,46 +1,46 @@
1
- import PaginationContext from '@jetshop/core/components/Pagination/PaginationContext';
2
- import { styled } from 'linaria/react';
3
- import qs from 'qs';
4
- import * as React from 'react';
5
- import { useLocation } from 'react-router';
6
- export const PaginationWrapper = styled('div') `
7
- display: flex;
8
- width: 100%;
9
- justify-content: space-between;
10
- align-items: center;
11
- `;
12
- function usePagination({ prevPage, nextPage, currentPage, isFirstPage, isLastPage }) {
13
- const { queryParam } = React.useContext(PaginationContext);
14
- const location = useLocation();
15
- const currentLocation = qs.parse(typeof window === 'undefined' ? location.search : window.location.search, {
16
- ignoreQueryPrefix: true
17
- });
18
- const nextHref = location.pathname +
19
- qs.stringify(Object.assign(Object.assign({}, currentLocation), { [queryParam]: isLastPage ? currentPage : currentPage + 1 }), { addQueryPrefix: true, encodeValuesOnly: true, skipNulls: true });
20
- const prevHref = location.pathname +
21
- qs.stringify(Object.assign(Object.assign({}, currentLocation), { [queryParam]: isFirstPage ? currentPage : currentPage - 1 }), { addQueryPrefix: true, encodeValuesOnly: true, skipNulls: true });
22
- const goToHref = (page) => {
23
- const href = location.pathname +
24
- qs.stringify(Object.assign(Object.assign({}, currentLocation), { [queryParam]: page }), { addQueryPrefix: true, encodeValuesOnly: true, skipNulls: true });
25
- return href;
26
- };
27
- function prevOnClick(e) {
28
- e.preventDefault();
29
- prevPage();
30
- }
31
- function nextOnClick(e) {
32
- e.preventDefault();
33
- nextPage();
34
- }
35
- return {
36
- prevHref,
37
- nextHref,
38
- goToHref,
39
- prevOnClick,
40
- nextOnClick,
41
- isPrevDisabled: isFirstPage ? true : null,
42
- isNextDisabled: isLastPage ? true : null
43
- };
44
- }
45
- export default usePagination;
1
+ import PaginationContext from '@jetshop/core/components/Pagination/PaginationContext';
2
+ import { styled } from 'linaria/react';
3
+ import qs from 'qs';
4
+ import * as React from 'react';
5
+ import { useLocation } from 'react-router';
6
+ export const PaginationWrapper = styled('div') `
7
+ display: flex;
8
+ width: 100%;
9
+ justify-content: space-between;
10
+ align-items: center;
11
+ `;
12
+ function usePagination({ prevPage, nextPage, currentPage, isFirstPage, isLastPage }) {
13
+ const { queryParam } = React.useContext(PaginationContext);
14
+ const location = useLocation();
15
+ const currentLocation = qs.parse(typeof window === 'undefined' ? location.search : window.location.search, {
16
+ ignoreQueryPrefix: true
17
+ });
18
+ const nextHref = location.pathname +
19
+ qs.stringify(Object.assign(Object.assign({}, currentLocation), { [queryParam]: isLastPage ? currentPage : currentPage + 1 }), { addQueryPrefix: true, encodeValuesOnly: true, skipNulls: true });
20
+ const prevHref = location.pathname +
21
+ qs.stringify(Object.assign(Object.assign({}, currentLocation), { [queryParam]: isFirstPage ? currentPage : currentPage - 1 }), { addQueryPrefix: true, encodeValuesOnly: true, skipNulls: true });
22
+ const goToHref = (page) => {
23
+ const href = location.pathname +
24
+ qs.stringify(Object.assign(Object.assign({}, currentLocation), { [queryParam]: page }), { addQueryPrefix: true, encodeValuesOnly: true, skipNulls: true });
25
+ return href;
26
+ };
27
+ function prevOnClick(e) {
28
+ e.preventDefault();
29
+ prevPage();
30
+ }
31
+ function nextOnClick(e) {
32
+ e.preventDefault();
33
+ nextPage();
34
+ }
35
+ return {
36
+ prevHref,
37
+ nextHref,
38
+ goToHref,
39
+ prevOnClick,
40
+ nextOnClick,
41
+ isPrevDisabled: isFirstPage ? true : null,
42
+ isNextDisabled: isLastPage ? true : null
43
+ };
44
+ }
45
+ export default usePagination;
46
46
  //# sourceMappingURL=usePagination.js.map
@@ -1,20 +1,20 @@
1
- import React from 'react';
2
- declare type PreOrderDropdownType = {
3
- values: PreOrderDatesType[];
4
- selectedDate: string;
5
- selectDate: React.Dispatch<React.SetStateAction<string>>;
6
- };
7
- declare type PreOrderInputType = {
8
- value: PreOrderDatesType;
9
- selectDate: React.Dispatch<React.SetStateAction<string>>;
10
- callback?: Function;
11
- className?: string;
12
- };
13
- declare type PreOrderDatesType = {
14
- value: string;
15
- name: string;
16
- };
17
- export declare const PreOrderDropdown: ({ values, selectedDate, selectDate }: PreOrderDropdownType) => JSX.Element;
18
- export declare const PreOrderInput: ({ value, selectDate, callback, className }: PreOrderInputType) => JSX.Element;
19
- declare const _default: React.ComponentType<unknown>;
20
- export default _default;
1
+ import React from 'react';
2
+ declare type PreOrderDropdownType = {
3
+ values: PreOrderDatesType[];
4
+ selectedDate: string;
5
+ selectDate: React.Dispatch<React.SetStateAction<string>>;
6
+ };
7
+ declare type PreOrderInputType = {
8
+ value: PreOrderDatesType;
9
+ selectDate: React.Dispatch<React.SetStateAction<string>>;
10
+ callback?: Function;
11
+ className?: string;
12
+ };
13
+ declare type PreOrderDatesType = {
14
+ value: string;
15
+ name: string;
16
+ };
17
+ export declare const PreOrderDropdown: ({ values, selectedDate, selectDate }: PreOrderDropdownType) => JSX.Element;
18
+ export declare const PreOrderInput: ({ value, selectDate, callback, className }: PreOrderInputType) => JSX.Element;
19
+ declare const _default: React.ComponentType<unknown>;
20
+ export default _default;
@@ -1,74 +1,74 @@
1
- import React, { useState } from 'react';
2
- import { DropdownMenu, DropdownMenuButton, DropdownMenuItem, DropdownMenuItems, useDropdownMenu } from '@jetshop/ui/DropdownMenu';
3
- import t from '@jetshop/intl';
4
- import { styled } from 'linaria/react';
5
- import { Field, connect } from 'formik';
6
- const Label = styled('label') `
7
- position: relative;
8
- cursor: pointer;
9
-
10
- > input {
11
- position: absolute;
12
- width: 100%;
13
- height: 100%;
14
- top: 0;
15
- left: 0;
16
- width: 0;
17
- height: 0;
18
- }
19
- `;
20
- export const PreOrderDropdown = ({ values, selectedDate, selectDate }) => (React.createElement(DropdownMenu, null,
21
- React.createElement(DropdownMenuButton, { id: "pre-order-option" }, selectedDate ? selectedDate : t.rich('Select pre-order date')),
22
- React.createElement(DropdownItems, { values: values, selectDate: selectDate })));
23
- const DropdownItems = ({ values, selectDate }) => {
24
- const { setIsOpen } = useDropdownMenu();
25
- return (React.createElement(DropdownMenuItems, { style: { zIndex: 9999 } }, values.map(value => {
26
- return (React.createElement(DropdownMenuItem, { key: value.value },
27
- React.createElement(PreOrderInput, { value: value, selectDate: selectDate, callback: () => setIsOpen(false) })));
28
- })));
29
- };
30
- export const PreOrderInput = ({ value, selectDate = () => { }, callback = () => { }, className = '' }) => (React.createElement(Field, { name: "preOrder", type: "radio", value: value.value, render: ({ field, form: { values, validateForm } }) => (React.createElement(Label, { className: className },
31
- React.createElement("input", Object.assign({}, field, { type: "radio", required: true, onChange: e => {
32
- field.onChange(e);
33
- selectDate(value.value);
34
- const newValues = Object.assign(Object.assign({}, values), { preOrder: value.value });
35
- validateForm(newValues);
36
- callback(value);
37
- } })),
38
- React.createElement("span", null, value.name))) }));
39
- const PreOrderDateSelector = ({ product, children, formik, dates, SelectorComponent = PreOrderDropdown, intlDateTimeFormat = new Intl.DateTimeFormat('sv-SE'), className }) => {
40
- var _a, _b, _c;
41
- const defaultValue = ((_a = formik === null || formik === void 0 ? void 0 : formik.values) === null || _a === void 0 ? void 0 : _a.preOrder) || '';
42
- const [selectedDate, selectDate] = useState(defaultValue);
43
- const { preOrder } = product;
44
- if (!preOrder) {
45
- console.error('The attribute `preOrder` has not been defined on the product page GraphQL fragment.');
46
- return null;
47
- }
48
- const { fromDate, toDate } = preOrder;
49
- // It is not a pre-order product
50
- if (!fromDate || !toDate)
51
- return null;
52
- if (dates)
53
- return dates;
54
- const dateList = [];
55
- const startDate = new Date(fromDate);
56
- const endDate = new Date(toDate);
57
- // Creating a list of all the days between fromDate and toDate
58
- for (let x = startDate; startDate <= endDate; x.setDate(x.getDate() + 1)) {
59
- const newDate = intlDateTimeFormat.format(new Date(x)).toString();
60
- dateList.push({ value: newDate, name: newDate });
61
- }
62
- const values = dateList;
63
- return children ? (children({
64
- values: values,
65
- selectedDate: selectedDate,
66
- selectDate: selectDate,
67
- error: (_b = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _b === void 0 ? void 0 : _b.preOrder
68
- })) : (React.createElement("div", { className: className },
69
- React.createElement("label", null, t('Pre-order date')),
70
- React.createElement(SelectorComponent, { values: values, selectedDate: selectedDate, selectDate: selectDate }),
71
- ((_c = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _c === void 0 ? void 0 : _c.preOrder) && React.createElement("span", null, formik.errors.preOrder)));
72
- };
73
- export default connect(PreOrderDateSelector);
1
+ import React, { useState } from 'react';
2
+ import { DropdownMenu, DropdownMenuButton, DropdownMenuItem, DropdownMenuItems, useDropdownMenu } from '@jetshop/ui/DropdownMenu';
3
+ import t from '@jetshop/intl';
4
+ import { styled } from 'linaria/react';
5
+ import { Field, connect } from 'formik';
6
+ const Label = styled('label') `
7
+ position: relative;
8
+ cursor: pointer;
9
+
10
+ > input {
11
+ position: absolute;
12
+ width: 100%;
13
+ height: 100%;
14
+ top: 0;
15
+ left: 0;
16
+ width: 0;
17
+ height: 0;
18
+ }
19
+ `;
20
+ export const PreOrderDropdown = ({ values, selectedDate, selectDate }) => (React.createElement(DropdownMenu, null,
21
+ React.createElement(DropdownMenuButton, { id: "pre-order-option" }, selectedDate ? selectedDate : t.rich('Select pre-order date')),
22
+ React.createElement(DropdownItems, { values: values, selectDate: selectDate })));
23
+ const DropdownItems = ({ values, selectDate }) => {
24
+ const { setIsOpen } = useDropdownMenu();
25
+ return (React.createElement(DropdownMenuItems, { style: { zIndex: 9999 } }, values.map(value => {
26
+ return (React.createElement(DropdownMenuItem, { key: value.value },
27
+ React.createElement(PreOrderInput, { value: value, selectDate: selectDate, callback: () => setIsOpen(false) })));
28
+ })));
29
+ };
30
+ export const PreOrderInput = ({ value, selectDate = () => { }, callback = () => { }, className = '' }) => (React.createElement(Field, { name: "preOrder", type: "radio", value: value.value, render: ({ field, form: { values, validateForm } }) => (React.createElement(Label, { className: className },
31
+ React.createElement("input", Object.assign({}, field, { type: "radio", required: true, onChange: e => {
32
+ field.onChange(e);
33
+ selectDate(value.value);
34
+ const newValues = Object.assign(Object.assign({}, values), { preOrder: value.value });
35
+ validateForm(newValues);
36
+ callback(value);
37
+ } })),
38
+ React.createElement("span", null, value.name))) }));
39
+ const PreOrderDateSelector = ({ product, children, formik, dates, SelectorComponent = PreOrderDropdown, intlDateTimeFormat = new Intl.DateTimeFormat('sv-SE'), className }) => {
40
+ var _a, _b, _c;
41
+ const defaultValue = ((_a = formik === null || formik === void 0 ? void 0 : formik.values) === null || _a === void 0 ? void 0 : _a.preOrder) || '';
42
+ const [selectedDate, selectDate] = useState(defaultValue);
43
+ const { preOrder } = product;
44
+ if (!preOrder) {
45
+ console.error('The attribute `preOrder` has not been defined on the product page GraphQL fragment.');
46
+ return null;
47
+ }
48
+ const { fromDate, toDate } = preOrder;
49
+ // It is not a pre-order product
50
+ if (!fromDate || !toDate)
51
+ return null;
52
+ if (dates)
53
+ return dates;
54
+ const dateList = [];
55
+ const startDate = new Date(fromDate);
56
+ const endDate = new Date(toDate);
57
+ // Creating a list of all the days between fromDate and toDate
58
+ for (let x = startDate; startDate <= endDate; x.setDate(x.getDate() + 1)) {
59
+ const newDate = intlDateTimeFormat.format(new Date(x)).toString();
60
+ dateList.push({ value: newDate, name: newDate });
61
+ }
62
+ const values = dateList;
63
+ return children ? (children({
64
+ values: values,
65
+ selectedDate: selectedDate,
66
+ selectDate: selectDate,
67
+ error: (_b = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _b === void 0 ? void 0 : _b.preOrder
68
+ })) : (React.createElement("div", { className: className },
69
+ React.createElement("label", null, t('Pre-order date')),
70
+ React.createElement(SelectorComponent, { values: values, selectedDate: selectedDate, selectDate: selectDate }),
71
+ ((_c = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _c === void 0 ? void 0 : _c.preOrder) && React.createElement("span", null, formik.errors.preOrder)));
72
+ };
73
+ export default connect(PreOrderDateSelector);
74
74
  //# sourceMappingURL=PreOrderDateSelector.js.map
@@ -1,2 +1,2 @@
1
- export { default as PreOrderDateSelector } from './PreOrderDateSelector';
2
- export { PreOrderInput } from './PreOrderDateSelector';
1
+ export { default as PreOrderDateSelector } from './PreOrderDateSelector';
2
+ export { PreOrderInput } from './PreOrderDateSelector';
@@ -1,3 +1,3 @@
1
- export { default as PreOrderDateSelector } from './PreOrderDateSelector';
2
- export { PreOrderInput } from './PreOrderDateSelector';
1
+ export { default as PreOrderDateSelector } from './PreOrderDateSelector';
2
+ export { PreOrderInput } from './PreOrderDateSelector';
3
3
  //# sourceMappingURL=index.js.map
@@ -1,9 +1,9 @@
1
- /// <reference types="react" />
2
- export declare const Currency: React.FC<{
3
- value: number;
4
- /** Currency to use instead of selected channel */
5
- currency?: {
6
- code: string;
7
- culture: string;
8
- };
9
- }>;
1
+ /// <reference types="react" />
2
+ export declare const Currency: React.FC<{
3
+ value: number;
4
+ /** Currency to use instead of selected channel */
5
+ currency?: {
6
+ code: string;
7
+ culture: string;
8
+ };
9
+ }>;
package/Price/Currency.js CHANGED
@@ -1,11 +1,11 @@
1
- import ChannelContext from '@jetshop/core/components/ChannelContext';
2
- import t from '@jetshop/intl';
3
- import { useContext } from 'react';
4
- // Formats the given number in the currency of the selected channel
5
- export const Currency = function Currency({ value, currency }) {
6
- const { selectedChannel } = useContext(ChannelContext);
7
- return currency
8
- ? t.number(value, currency.code, currency.culture)
9
- : t.number(value, selectedChannel.currency.name, selectedChannel.language.culture);
10
- };
1
+ import ChannelContext from '@jetshop/core/components/ChannelContext';
2
+ import t from '@jetshop/intl';
3
+ import { useContext } from 'react';
4
+ // Formats the given number in the currency of the selected channel
5
+ export const Currency = function Currency({ value, currency }) {
6
+ const { selectedChannel } = useContext(ChannelContext);
7
+ return currency
8
+ ? t.number(value, currency.code, currency.culture)
9
+ : t.number(value, selectedChannel.currency.name, selectedChannel.language.culture);
10
+ };
11
11
  //# sourceMappingURL=Currency.js.map
package/Price/Price.d.ts CHANGED
@@ -1,28 +1,29 @@
1
- import { Price as IPrice } from '@jetshop/core/types';
2
- import React from 'react';
3
- export interface PriceProps {
4
- style?: {};
5
- className?: string;
6
- /**Base price */
7
- price: IPrice;
8
- /**Previous Price */
9
- previousPrice?: IPrice;
10
- /**Optional formatter to format currency */
11
- formatter?(price: number, currencyCode?: string, culture?: string): string;
12
- /** Override the channel settings for includeVat */
13
- includeVat?: boolean;
14
- /** Currency to use instead of selected channel */
15
- currency?: {
16
- code: string;
17
- culture: string;
18
- };
19
- negative?: boolean;
20
- }
21
- export interface PriceCompound {
22
- Wrapper?: React.ReactNode;
23
- Old?: React.ReactNode;
24
- New?: React.ReactNode;
25
- Normal?: React.ReactNode;
26
- }
27
- declare const PriceComponent: React.FC<PriceProps> & PriceCompound;
28
- export default PriceComponent;
1
+ import { Price as IPrice } from '@jetshop/core/types';
2
+ import React from 'react';
3
+ export interface PriceProps {
4
+ style?: {};
5
+ className?: string;
6
+ /**Base price */
7
+ price: IPrice;
8
+ /**Previous Price */
9
+ previousPrice?: IPrice;
10
+ /**Optional formatter to format currency */
11
+ formatter?(price: number, currencyCode?: string, culture?: string): string;
12
+ /** Override the channel settings for includeVat */
13
+ includeVat?: boolean;
14
+ /** Currency to use instead of selected channel */
15
+ currency?: {
16
+ code: string;
17
+ culture: string;
18
+ };
19
+ negative?: boolean;
20
+ as?: React.ElementType<any>;
21
+ }
22
+ export interface PriceCompound {
23
+ Wrapper?: React.ReactNode;
24
+ Old?: React.ReactNode;
25
+ New?: React.ReactNode;
26
+ Normal?: React.ReactNode;
27
+ }
28
+ declare const PriceComponent: React.FC<PriceProps> & PriceCompound;
29
+ export default PriceComponent;