@jetshop/ui 6.3.8-alpha-6 → 6.3.8-alpha.25

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 (401) hide show
  1. package/CloudflareImage/FlightImage.test.js +277 -0
  2. package/package.json +3 -2
  3. package/Accordion/Accordion.d.ts +0 -33
  4. package/Accordion/Accordion.js +0 -59
  5. package/Accordion/Accordion.js.map +0 -1
  6. package/Auth/FormFields/CountriesInput.d.ts +0 -16
  7. package/Auth/FormFields/CountriesInput.js +0 -28
  8. package/Auth/FormFields/CountriesInput.js.map +0 -1
  9. package/Auth/LogInBehavior.d.ts +0 -22
  10. package/Auth/LogInBehavior.js +0 -24
  11. package/Auth/LogInBehavior.js.map +0 -1
  12. package/Auth/LogInFormProvider.d.ts +0 -7
  13. package/Auth/LogInFormProvider.js +0 -70
  14. package/Auth/LogInFormProvider.js.map +0 -1
  15. package/Auth/LogOut.d.ts +0 -10
  16. package/Auth/LogOut.js +0 -24
  17. package/Auth/LogOut.js.map +0 -1
  18. package/Auth/logInValidator.d.ts +0 -10
  19. package/Auth/logInValidator.js +0 -16
  20. package/Auth/logInValidator.js.map +0 -1
  21. package/Breadcrumbs/Breadcrumbs.d.ts +0 -14
  22. package/Breadcrumbs/Breadcrumbs.js +0 -84
  23. package/Breadcrumbs/Breadcrumbs.js.map +0 -1
  24. package/Breadcrumbs/getParentsOrCanonicalRoute.d.ts +0 -3
  25. package/Breadcrumbs/getParentsOrCanonicalRoute.js +0 -14
  26. package/Breadcrumbs/getParentsOrCanonicalRoute.js.map +0 -1
  27. package/Breadcrumbs/index.d.ts +0 -1
  28. package/Breadcrumbs/index.js +0 -2
  29. package/Breadcrumbs/index.js.map +0 -1
  30. package/Breakpoints.d.ts +0 -12
  31. package/Breakpoints.js +0 -36
  32. package/Breakpoints.js.map +0 -1
  33. package/Button/Button.d.ts +0 -14
  34. package/Button/Button.js +0 -60
  35. package/Button/Button.js.map +0 -1
  36. package/Button/SecondaryButton.d.ts +0 -2
  37. package/Button/SecondaryButton.js +0 -9
  38. package/Button/SecondaryButton.js.map +0 -1
  39. package/Button/TrendButton.d.ts +0 -2
  40. package/Button/TrendButton.js +0 -8
  41. package/Button/TrendButton.js.map +0 -1
  42. package/Button/index.d.ts +0 -4
  43. package/Button/index.js +0 -5
  44. package/Button/index.js.map +0 -1
  45. package/CategoryLink.d.ts +0 -11
  46. package/CategoryLink.js +0 -49
  47. package/CategoryLink.js.map +0 -1
  48. package/ChannelSelector/ChannelListItem.d.ts +0 -10
  49. package/ChannelSelector/ChannelListItem.js +0 -51
  50. package/ChannelSelector/ChannelListItem.js.map +0 -1
  51. package/ChannelSelector/ChannelSelector.d.ts +0 -63
  52. package/ChannelSelector/ChannelSelector.js +0 -80
  53. package/ChannelSelector/ChannelSelector.js.map +0 -1
  54. package/ChannelSelector/ChannelSelectorButtons.d.ts +0 -2
  55. package/ChannelSelector/ChannelSelectorButtons.js +0 -20
  56. package/ChannelSelector/ChannelSelectorButtons.js.map +0 -1
  57. package/ChannelSelector/Channels.d.ts +0 -17
  58. package/ChannelSelector/Channels.js +0 -12
  59. package/ChannelSelector/Channels.js.map +0 -1
  60. package/ChannelSelector/LargeSelector.d.ts +0 -3
  61. package/ChannelSelector/LargeSelector.js +0 -67
  62. package/ChannelSelector/LargeSelector.js.map +0 -1
  63. package/ChannelSelector/MiniSelector.d.ts +0 -4
  64. package/ChannelSelector/MiniSelector.js +0 -58
  65. package/ChannelSelector/MiniSelector.js.map +0 -1
  66. package/ChannelSelector/Region.d.ts +0 -28
  67. package/ChannelSelector/Region.js +0 -21
  68. package/ChannelSelector/Region.js.map +0 -1
  69. package/ChannelSelector/groupBy.d.ts +0 -7
  70. package/ChannelSelector/groupBy.js +0 -16
  71. package/ChannelSelector/groupBy.js.map +0 -1
  72. package/Checkbox/Checkbox.d.ts +0 -14
  73. package/Checkbox/Checkbox.js +0 -70
  74. package/Checkbox/Checkbox.js.map +0 -1
  75. package/Checkbox/CheckboxGroup.d.ts +0 -27
  76. package/Checkbox/CheckboxGroup.js +0 -22
  77. package/Checkbox/CheckboxGroup.js.map +0 -1
  78. package/Checkbox/index.d.ts +0 -2
  79. package/Checkbox/index.js +0 -3
  80. package/Checkbox/index.js.map +0 -1
  81. package/ContentPageLink.d.ts +0 -11
  82. package/ContentPageLink.js +0 -46
  83. package/ContentPageLink.js.map +0 -1
  84. package/ContentRenderer.d.ts +0 -9
  85. package/ContentRenderer.js +0 -36
  86. package/ContentRenderer.js.map +0 -1
  87. package/DropdownMenu/Button.d.ts +0 -7
  88. package/DropdownMenu/Button.js +0 -33
  89. package/DropdownMenu/Button.js.map +0 -1
  90. package/DropdownMenu/DropdownMenu.d.ts +0 -21
  91. package/DropdownMenu/DropdownMenu.js +0 -72
  92. package/DropdownMenu/DropdownMenu.js.map +0 -1
  93. package/DropdownMenu/Item.d.ts +0 -13
  94. package/DropdownMenu/Item.js +0 -48
  95. package/DropdownMenu/Item.js.map +0 -1
  96. package/DropdownMenu/Items.d.ts +0 -16
  97. package/DropdownMenu/Items.js +0 -53
  98. package/DropdownMenu/Items.js.map +0 -1
  99. package/DropdownMenu/index.d.ts +0 -4
  100. package/DropdownMenu/index.js +0 -5
  101. package/DropdownMenu/index.js.map +0 -1
  102. package/ErrorBoundary/Generic.d.ts +0 -18
  103. package/ErrorBoundary/Generic.js +0 -65
  104. package/ErrorBoundary/Generic.js.map +0 -1
  105. package/ErrorBoundary/PassThrough.d.ts +0 -3
  106. package/ErrorBoundary/PassThrough.js +0 -7
  107. package/ErrorBoundary/PassThrough.js.map +0 -1
  108. package/Gallery/Gallery.d.ts +0 -39
  109. package/Gallery/Gallery.js +0 -121
  110. package/Gallery/Gallery.js.map +0 -1
  111. package/Gallery/constructGallery.d.ts +0 -15
  112. package/Gallery/constructGallery.js +0 -40
  113. package/Gallery/constructGallery.js.map +0 -1
  114. package/Image/BaseImage.d.ts +0 -39
  115. package/Image/BaseImage.js +0 -192
  116. package/Image/BaseImage.js.map +0 -1
  117. package/Image/Fallback.d.ts +0 -5
  118. package/Image/Fallback.js +0 -4
  119. package/Image/Fallback.js.map +0 -1
  120. package/Image/FlightImage.d.ts +0 -51
  121. package/Image/FlightImage.js +0 -59
  122. package/Image/FlightImage.js.map +0 -1
  123. package/Image/Image.d.ts +0 -2
  124. package/Image/Image.js +0 -3
  125. package/Image/Image.js.map +0 -1
  126. package/Image/index.d.ts +0 -1
  127. package/Image/index.js +0 -2
  128. package/Image/index.js.map +0 -1
  129. package/Image/useConstructImage.d.ts +0 -49
  130. package/Image/useConstructImage.js +0 -122
  131. package/Image/useConstructImage.js.map +0 -1
  132. package/Image/utils/aspectRatioToFraction.d.ts +0 -2
  133. package/Image/utils/aspectRatioToFraction.js +0 -11
  134. package/Image/utils/aspectRatioToFraction.js.map +0 -1
  135. package/Image/utils/getFullUrl.d.ts +0 -6
  136. package/Image/utils/getFullUrl.js +0 -18
  137. package/Image/utils/getFullUrl.js.map +0 -1
  138. package/Image/utils/getImageWidth.d.ts +0 -1
  139. package/Image/utils/getImageWidth.js +0 -12
  140. package/Image/utils/getImageWidth.js.map +0 -1
  141. package/Image/utils/getImageWidths.d.ts +0 -2
  142. package/Image/utils/getImageWidths.js +0 -21
  143. package/Image/utils/getImageWidths.js.map +0 -1
  144. package/Image/utils/getLQIP.d.ts +0 -8
  145. package/Image/utils/getLQIP.js +0 -20
  146. package/Image/utils/getLQIP.js.map +0 -1
  147. package/Image/utils/getLargestSize.d.ts +0 -7
  148. package/Image/utils/getLargestSize.js +0 -17
  149. package/Image/utils/getLargestSize.js.map +0 -1
  150. package/Image/utils/getSizeForBreakpoint.d.ts +0 -2
  151. package/Image/utils/getSizeForBreakpoint.js +0 -16
  152. package/Image/utils/getSizeForBreakpoint.js.map +0 -1
  153. package/Image/utils/getSizesMap.d.ts +0 -2
  154. package/Image/utils/getSizesMap.js +0 -35
  155. package/Image/utils/getSizesMap.js.map +0 -1
  156. package/Image/utils/getSmallestSize.d.ts +0 -2
  157. package/Image/utils/getSmallestSize.js +0 -12
  158. package/Image/utils/getSmallestSize.js.map +0 -1
  159. package/Image/utils/getSrcSetFromWidths.d.ts +0 -10
  160. package/Image/utils/getSrcSetFromWidths.js +0 -9
  161. package/Image/utils/getSrcSetFromWidths.js.map +0 -1
  162. package/Image/utils/getSrcWithParams.d.ts +0 -3
  163. package/Image/utils/getSrcWithParams.js +0 -29
  164. package/Image/utils/getSrcWithParams.js.map +0 -1
  165. package/Image/utils/paddingForAspectRatio.d.ts +0 -1
  166. package/Image/utils/paddingForAspectRatio.js +0 -6
  167. package/Image/utils/paddingForAspectRatio.js.map +0 -1
  168. package/Image/utils/remToPx.d.ts +0 -1
  169. package/Image/utils/remToPx.js +0 -2
  170. package/Image/utils/remToPx.js.map +0 -1
  171. package/Image/utils/sizeToNumber.d.ts +0 -2
  172. package/Image/utils/sizeToNumber.js +0 -27
  173. package/Image/utils/sizeToNumber.js.map +0 -1
  174. package/Input/Input.d.ts +0 -6
  175. package/Input/Input.js +0 -45
  176. package/Input/Input.js.map +0 -1
  177. package/Input/index.d.ts +0 -3
  178. package/Input/index.js +0 -4
  179. package/Input/index.js.map +0 -1
  180. package/JetshopText.d.ts +0 -3
  181. package/JetshopText.js +0 -13
  182. package/JetshopText.js.map +0 -1
  183. package/Loading/LoadingBar.d.ts +0 -8
  184. package/Loading/LoadingBar.js +0 -58
  185. package/Loading/LoadingBar.js.map +0 -1
  186. package/Loading/LoadingLine.d.ts +0 -31
  187. package/Loading/LoadingLine.js +0 -26
  188. package/Loading/LoadingLine.js.map +0 -1
  189. package/Loading/NetworkStatusNotifier.d.ts +0 -6
  190. package/Loading/NetworkStatusNotifier.js +0 -8
  191. package/Loading/NetworkStatusNotifier.js.map +0 -1
  192. package/Menu/MenuContainer.d.ts +0 -28
  193. package/Menu/MenuContainer.js +0 -46
  194. package/Menu/MenuContainer.js.map +0 -1
  195. package/Menu/RecursiveTree.d.ts +0 -28
  196. package/Menu/RecursiveTree.js +0 -91
  197. package/Menu/RecursiveTree.js.map +0 -1
  198. package/Modal/Drawer/Drawer.d.ts +0 -12
  199. package/Modal/Drawer/Drawer.js +0 -31
  200. package/Modal/Drawer/Drawer.js.map +0 -1
  201. package/Modal/Drawer/DrawerTarget.d.ts +0 -6
  202. package/Modal/Drawer/DrawerTarget.js +0 -12
  203. package/Modal/Drawer/DrawerTarget.js.map +0 -1
  204. package/Modal/Drawer/DrawerTrigger.d.ts +0 -11
  205. package/Modal/Drawer/DrawerTrigger.js +0 -16
  206. package/Modal/Drawer/DrawerTrigger.js.map +0 -1
  207. package/Modal/Drawer/index.d.ts +0 -3
  208. package/Modal/Drawer/index.js +0 -4
  209. package/Modal/Drawer/index.js.map +0 -1
  210. package/Modal/Flyout/FlyoutTarget.d.ts +0 -10
  211. package/Modal/Flyout/FlyoutTarget.js +0 -15
  212. package/Modal/Flyout/FlyoutTarget.js.map +0 -1
  213. package/Modal/Flyout/FlyoutTrigger.d.ts +0 -15
  214. package/Modal/Flyout/FlyoutTrigger.js +0 -18
  215. package/Modal/Flyout/FlyoutTrigger.js.map +0 -1
  216. package/Modal/Flyout/index.d.ts +0 -2
  217. package/Modal/Flyout/index.js +0 -3
  218. package/Modal/Flyout/index.js.map +0 -1
  219. package/Modal/ModalContext.d.ts +0 -26
  220. package/Modal/ModalContext.js +0 -9
  221. package/Modal/ModalContext.js.map +0 -1
  222. package/Modal/ModalProvider.d.ts +0 -5
  223. package/Modal/ModalProvider.js +0 -83
  224. package/Modal/ModalProvider.js.map +0 -1
  225. package/Modal/ModalRoot.d.ts +0 -3
  226. package/Modal/ModalRoot.js +0 -44
  227. package/Modal/ModalRoot.js.map +0 -1
  228. package/Modal/ModalTrigger.d.ts +0 -9
  229. package/Modal/ModalTrigger.js +0 -9
  230. package/Modal/ModalTrigger.js.map +0 -1
  231. package/Pagination/Pagination.d.ts +0 -7
  232. package/Pagination/Pagination.js +0 -23
  233. package/Pagination/Pagination.js.map +0 -1
  234. package/Pagination/PaginationBehaviour.d.ts +0 -52
  235. package/Pagination/PaginationBehaviour.js +0 -68
  236. package/Pagination/PaginationBehaviour.js.map +0 -1
  237. package/Pagination/index.d.ts +0 -2
  238. package/Pagination/index.js +0 -3
  239. package/Pagination/index.js.map +0 -1
  240. package/Pagination/usePagination.d.ts +0 -15
  241. package/Pagination/usePagination.js +0 -46
  242. package/Pagination/usePagination.js.map +0 -1
  243. package/PreOrderDateSelector/PreOrderDateSelector.d.ts +0 -23
  244. package/PreOrderDateSelector/PreOrderDateSelector.js +0 -74
  245. package/PreOrderDateSelector/PreOrderDateSelector.js.map +0 -1
  246. package/PreOrderDateSelector/index.d.ts +0 -2
  247. package/PreOrderDateSelector/index.js +0 -3
  248. package/PreOrderDateSelector/index.js.map +0 -1
  249. package/Price/Currency.d.ts +0 -9
  250. package/Price/Currency.js +0 -11
  251. package/Price/Currency.js.map +0 -1
  252. package/Price/Price.d.ts +0 -44
  253. package/Price/Price.js +0 -74
  254. package/Price/Price.js.map +0 -1
  255. package/Price/index.d.ts +0 -1
  256. package/Price/index.js +0 -2
  257. package/Price/index.js.map +0 -1
  258. package/ProductLink.d.ts +0 -23
  259. package/ProductLink.js +0 -88
  260. package/ProductLink.js.map +0 -1
  261. package/ProductList/Badges.d.ts +0 -6
  262. package/ProductList/Badges.js +0 -56
  263. package/ProductList/Badges.js.map +0 -1
  264. package/ProductList/GridProduct.d.ts +0 -24
  265. package/ProductList/GridProduct.js +0 -58
  266. package/ProductList/GridProduct.js.map +0 -1
  267. package/ProductList/ProductGrid.d.ts +0 -16
  268. package/ProductList/ProductGrid.js +0 -30
  269. package/ProductList/ProductGrid.js.map +0 -1
  270. package/ProductList/ProductImage.d.ts +0 -12
  271. package/ProductList/ProductImage.js +0 -21
  272. package/ProductList/ProductImage.js.map +0 -1
  273. package/ProductSpecifications/ProductSpecifications.d.ts +0 -8
  274. package/ProductSpecifications/ProductSpecifications.js +0 -78
  275. package/ProductSpecifications/ProductSpecifications.js.map +0 -1
  276. package/ScrollRestorationHandler/ScrollRestorationHandler.d.ts +0 -8
  277. package/ScrollRestorationHandler/ScrollRestorationHandler.js +0 -17
  278. package/ScrollRestorationHandler/ScrollRestorationHandler.js.map +0 -1
  279. package/ScrollRestorationHandler/index.d.ts +0 -1
  280. package/ScrollRestorationHandler/index.js +0 -2
  281. package/ScrollRestorationHandler/index.js.map +0 -1
  282. package/ScrollRestorationHandler/isInIgnoredRouteTypes.d.ts +0 -8
  283. package/ScrollRestorationHandler/isInIgnoredRouteTypes.js +0 -8
  284. package/ScrollRestorationHandler/isInIgnoredRouteTypes.js.map +0 -1
  285. package/ScrollRestorationHandler/useScrollRestore.d.ts +0 -9
  286. package/ScrollRestorationHandler/useScrollRestore.js +0 -20
  287. package/ScrollRestorationHandler/useScrollRestore.js.map +0 -1
  288. package/Search/SearchAutoCompleteContainer.d.ts +0 -45
  289. package/Search/SearchAutoCompleteContainer.js +0 -172
  290. package/Search/SearchAutoCompleteContainer.js.map +0 -1
  291. package/Search/SearchField.d.ts +0 -26
  292. package/Search/SearchField.js +0 -98
  293. package/Search/SearchField.js.map +0 -1
  294. package/Search/SearchPage/PageOf.d.ts +0 -5
  295. package/Search/SearchPage/PageOf.js +0 -7
  296. package/Search/SearchPage/PageOf.js.map +0 -1
  297. package/Search/SearchPage/SearchMeta.d.ts +0 -16
  298. package/Search/SearchPage/SearchMeta.js +0 -20
  299. package/Search/SearchPage/SearchMeta.js.map +0 -1
  300. package/Search/SearchPage/SearchPageBehaviour.d.ts +0 -19
  301. package/Search/SearchPage/SearchPageBehaviour.js +0 -75
  302. package/Search/SearchPage/SearchPageBehaviour.js.map +0 -1
  303. package/Search/SuggestedTerm.d.ts +0 -16
  304. package/Search/SuggestedTerm.js +0 -35
  305. package/Search/SuggestedTerm.js.map +0 -1
  306. package/Search/index.d.ts +0 -1
  307. package/Search/index.js +0 -2
  308. package/Search/index.js.map +0 -1
  309. package/Select/Components.d.ts +0 -28
  310. package/Select/Components.js +0 -91
  311. package/Select/Components.js.map +0 -1
  312. package/Select/SelectComponents/Quantity.d.ts +0 -5
  313. package/Select/SelectComponents/Quantity.js +0 -8
  314. package/Select/SelectComponents/Quantity.js.map +0 -1
  315. package/Select/index.d.ts +0 -5
  316. package/Select/index.js +0 -2
  317. package/Select/index.js.map +0 -1
  318. package/SortOrder/SortOrder.d.ts +0 -16
  319. package/SortOrder/SortOrder.js +0 -33
  320. package/SortOrder/SortOrder.js.map +0 -1
  321. package/SortOrder/SortOrderDropdown.d.ts +0 -9
  322. package/SortOrder/SortOrderDropdown.js +0 -25
  323. package/SortOrder/SortOrderDropdown.js.map +0 -1
  324. package/SortOrder/SortOrderList.d.ts +0 -7
  325. package/SortOrder/SortOrderList.js +0 -17
  326. package/SortOrder/SortOrderList.js.map +0 -1
  327. package/StartPageRenderer/StartPageRenderer.d.ts +0 -17
  328. package/StartPageRenderer/StartPageRenderer.js +0 -52
  329. package/StartPageRenderer/StartPageRenderer.js.map +0 -1
  330. package/StartPageRenderer/index.d.ts +0 -1
  331. package/StartPageRenderer/index.js +0 -2
  332. package/StartPageRenderer/index.js.map +0 -1
  333. package/Stock/StockStatusContainer.d.ts +0 -21
  334. package/Stock/StockStatusContainer.js +0 -45
  335. package/Stock/StockStatusContainer.js.map +0 -1
  336. package/Text/Text.d.ts +0 -11
  337. package/Text/Text.js +0 -22
  338. package/Text/Text.js.map +0 -1
  339. package/Text/index.d.ts +0 -3
  340. package/Text/index.js +0 -4
  341. package/Text/index.js.map +0 -1
  342. package/Theme/createTheme.d.ts +0 -16
  343. package/Theme/createTheme.js +0 -5
  344. package/Theme/createTheme.js.map +0 -1
  345. package/Theme/cssReset.d.ts +0 -1
  346. package/Theme/cssReset.js +0 -160
  347. package/Theme/cssReset.js.map +0 -1
  348. package/Theme/normalizeCss.d.ts +0 -1
  349. package/Theme/normalizeCss.js +0 -357
  350. package/Theme/normalizeCss.js.map +0 -1
  351. package/Theme/sanitizeCss.d.ts +0 -1
  352. package/Theme/sanitizeCss.js +0 -572
  353. package/Theme/sanitizeCss.js.map +0 -1
  354. package/WindowGrid/WindowGrid.d.ts +0 -11
  355. package/WindowGrid/WindowGrid.js +0 -58
  356. package/WindowGrid/WindowGrid.js.map +0 -1
  357. package/WindowGrid/index.d.ts +0 -1
  358. package/WindowGrid/index.js +0 -2
  359. package/WindowGrid/index.js.map +0 -1
  360. package/WindowGrid/useResizeObserver.d.ts +0 -3
  361. package/WindowGrid/useResizeObserver.js +0 -14
  362. package/WindowGrid/useResizeObserver.js.map +0 -1
  363. package/WindowGrid/useScrollWithWindow.d.ts +0 -12
  364. package/WindowGrid/useScrollWithWindow.js +0 -39
  365. package/WindowGrid/useScrollWithWindow.js.map +0 -1
  366. package/fuzzySearch/fuzzySearch.d.ts +0 -8
  367. package/fuzzySearch/fuzzySearch.js +0 -43
  368. package/fuzzySearch/fuzzySearch.js.map +0 -1
  369. package/fuzzySearch/index.d.ts +0 -1
  370. package/fuzzySearch/index.js +0 -2
  371. package/fuzzySearch/index.js.map +0 -1
  372. package/hooks/index.d.ts +0 -2
  373. package/hooks/index.js +0 -3
  374. package/hooks/index.js.map +0 -1
  375. package/hooks/useOnClickOutside.d.ts +0 -6
  376. package/hooks/useOnClickOutside.js +0 -17
  377. package/hooks/useOnClickOutside.js.map +0 -1
  378. package/hooks/useOnEsc.d.ts +0 -4
  379. package/hooks/useOnEsc.js +0 -17
  380. package/hooks/useOnEsc.js.map +0 -1
  381. package/utils/breakpoints.d.ts +0 -23
  382. package/utils/breakpoints.js +0 -94
  383. package/utils/breakpoints.js.map +0 -1
  384. package/utils/callAllEventHandlers.d.ts +0 -5
  385. package/utils/callAllEventHandlers.js +0 -9
  386. package/utils/callAllEventHandlers.js.map +0 -1
  387. package/utils/text.d.ts +0 -1
  388. package/utils/text.js +0 -23
  389. package/utils/text.js.map +0 -1
  390. package/utils/theme.d.ts +0 -3
  391. package/utils/theme.js +0 -5
  392. package/utils/theme.js.map +0 -1
  393. package/utils/useHoverIntent.d.ts +0 -10
  394. package/utils/useHoverIntent.js +0 -78
  395. package/utils/useHoverIntent.js.map +0 -1
  396. package/utils/usePropsOfType.d.ts +0 -11
  397. package/utils/usePropsOfType.js +0 -18
  398. package/utils/usePropsOfType.js.map +0 -1
  399. package/withFlightUI.d.ts +0 -17
  400. package/withFlightUI.js +0 -20
  401. package/withFlightUI.js.map +0 -1
@@ -0,0 +1,277 @@
1
+ import { ChannelProvider } from '@jetshop/core/components/ChannelContext';
2
+ import t from '@jetshop/intl';
3
+ import testImage from '@jetshop/ui/test-utils/fixtures/test-image.png';
4
+ import { fireEvent, queryByText, render } from '@testing-library/react';
5
+ import React from 'react';
6
+ import { useInView } from 'react-intersection-observer';
7
+ import Image from './FlightImage';
8
+ import { ChannelHandler } from '@jetshop/core/ChannelHandler/ChannelHandler';
9
+ import { selectedChannel, channels } from '@jetshop/core/test-utils/variables';
10
+ import { ConfigProvider } from '@jetshop/core/components/ConfigProvider';
11
+ import mockShopConfig from '@jetshop/core/test-utils/mockShopConfig';
12
+
13
+ // Mock intersection observer so we can always return true/false
14
+ jest.mock('react-intersection-observer');
15
+ // Suppress warnings from translations
16
+ jest.mock('@jetshop/intl');
17
+ t.mockImplementation((t) => t);
18
+
19
+ // browser mocks
20
+ global.IntersectionObserver = jest.fn(function () {
21
+ this.observe = jest.fn();
22
+ this.unobserve = jest.fn();
23
+ this.disconnect = jest.fn();
24
+ });
25
+
26
+ const transparent =
27
+ 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=';
28
+
29
+ global.__IN_SERVER__ = false;
30
+
31
+ describe('Hooks image component', () => {
32
+ describe('on initial load', () => {
33
+ beforeAll(() => {
34
+ useInView.mockImplementation(() => [null, false]);
35
+ });
36
+ it('renders a lqip version of the image by default', () => {
37
+ const { placeholderImage } = setup();
38
+
39
+ const src = placeholderImage.getAttribute('src');
40
+
41
+ expect(src).toEqual(expect.stringContaining('sigma=2.5'));
42
+ expect(src).toEqual(expect.stringContaining('minampl=0.5'));
43
+ });
44
+
45
+ it('sets the lqip to the smallest of the calculated sizes', () => {
46
+ const { placeholderImage } = setup({ sizes: [0.5, 0.85, 1] });
47
+ // Should be 160
48
+ // The smallest breakpoint is 20rem, which is 360px.
49
+ // 0.5 x 360 = 160
50
+
51
+ const src = placeholderImage.getAttribute('src');
52
+
53
+ expect(src).toEqual(expect.stringContaining('width=160'));
54
+ });
55
+
56
+ it('does not render an lqip if critical is true', () => {
57
+ const { placeholderImage } = setup({ critical: true });
58
+
59
+ const src = placeholderImage.getAttribute('src');
60
+
61
+ // Sets the src to transaprent data image instead
62
+ expect(src).toEqual(expect.stringContaining('data:image'));
63
+ });
64
+
65
+ it('accepts sizes as pixel values', () => {
66
+ const { placeholderImage } = setup({ sizes: [123] });
67
+
68
+ const src = placeholderImage.getAttribute('src');
69
+
70
+ expect(src).toEqual(expect.stringContaining('width=123'));
71
+ });
72
+
73
+ it('sets opacity to 0.6 while image has not loaded', () => {
74
+ const { placeholderImage } = setup();
75
+
76
+ expect(placeholderImage).toHaveStyle('opacity: 0.6');
77
+ });
78
+ });
79
+
80
+ describe('sets the sizing method', () => {
81
+ it('to thumbnail if no aspect ratio is provided', () => {
82
+ const { placeholderImage } = setup();
83
+ });
84
+ it('to fit if an aspect ratio is provided', () => {
85
+ const { placeholderImage } = setup({ aspect: '1:1' });
86
+
87
+ expect(placeholderImage.getAttribute('src')).toEqual(
88
+ expect.stringContaining('&height=320')
89
+ );
90
+ expect(placeholderImage.getAttribute('src')).toEqual(
91
+ expect.stringContaining('&width=320')
92
+ );
93
+ });
94
+ it('to crop if crop prop is true', () => {
95
+ const { placeholderImage } = setup({ aspect: '1:1', crop: true });
96
+
97
+ expect(placeholderImage.getAttribute('src')).toEqual(
98
+ expect.stringContaining('&method=crop')
99
+ );
100
+ });
101
+ it('warns if gravity is provided without crop', () => {
102
+ console.warn = jest.fn();
103
+ setup({ aspect: '1:1', crop: false, gravity: 'north' });
104
+ expect(console.warn).toHaveBeenCalled();
105
+ });
106
+ });
107
+
108
+ describe('when image is in view', () => {
109
+ beforeAll(() => {
110
+ useInView.mockImplementation(() => [null, true]);
111
+ });
112
+
113
+ it('renders full image', () => {
114
+ const { image } = setup({
115
+ imageSrc: testImage
116
+ });
117
+
118
+ expect(image).toHaveAttribute('src', 'test-image.png');
119
+ });
120
+
121
+ it('applies the given alt as an aria-label', () => {
122
+ const { image } = setup({
123
+ alt: 'test alt'
124
+ });
125
+
126
+ expect(image).toHaveAttribute('alt', 'test alt');
127
+ });
128
+
129
+ it('defaults aspect to 1:1', () => {
130
+ const { imageContainer } = setup();
131
+
132
+ expect(imageContainer).toHaveStyle('padding-bottom : 100%');
133
+ });
134
+
135
+ it('sets aspect ratio using padding if aspect is passed', () => {
136
+ const { imageContainer } = setup({ aspect: '3:2' });
137
+
138
+ expect(imageContainer).toHaveStyle('padding-bottom : 66.6667%');
139
+ });
140
+
141
+ it('defaults to background-size contain', () => {
142
+ const { image } = setup();
143
+
144
+ expect(image).toHaveStyle('object-fit : contain');
145
+ });
146
+
147
+ it('sets background-size to cover if `cover` is passed', () => {
148
+ const { image } = setup({ cover: true });
149
+
150
+ expect(image).toHaveStyle('object-fit : cover');
151
+ });
152
+
153
+ it('sets up image to fill available space if `fillAvailableSpace` is passed', () => {
154
+ const { image } = setup({ fillAvailableSpace: true });
155
+
156
+ expect(image).toHaveStyle('object-fit : cover');
157
+ expect(image).toHaveStyle('padding-top : 0');
158
+ });
159
+
160
+ it('sets opacity to 1 when image loads', () => {
161
+ const { image } = setup();
162
+ fireEvent.load(image);
163
+
164
+ expect(image).toHaveStyle('opacity: 1');
165
+ });
166
+
167
+ it('fades lqip when image loads', () => {
168
+ const { image, placeholderImage } = setup();
169
+ fireEvent.load(image);
170
+
171
+ expect(placeholderImage).toHaveStyle('opacity: 0');
172
+ });
173
+
174
+ test('sets quality to quality prop', () => {
175
+ const { image } = setup({ quality: 1 });
176
+
177
+ expect(image.getAttribute('srcSet')).toEqual(
178
+ expect.stringContaining('&quality=1')
179
+ );
180
+ });
181
+ });
182
+
183
+ describe('when there is an image error', () => {
184
+ beforeAll(() => {
185
+ useInView.mockImplementation(() => [null, true]);
186
+ });
187
+
188
+ it('renders default error', () => {
189
+ const { image, getByText } = setup();
190
+ fireEvent.error(image);
191
+
192
+ expect(getByText('Image Not Found'));
193
+ });
194
+
195
+ it('renders error component', () => {
196
+ const { image, getByText, container } = setup({
197
+ error: () => <div>some error found</div>
198
+ });
199
+ fireEvent.error(image);
200
+
201
+ expect(getByText('some error found'));
202
+ expect(queryByText(container, 'Image Not Found')).not.toBeInTheDocument();
203
+ });
204
+ });
205
+
206
+ describe('when image url is falsy', () => {
207
+ it('renders a transparent background image when null', () => {
208
+ const { image } = setup({ falsySrc: true, imageSrc: null });
209
+
210
+ expect(image).toHaveAttribute(`src`, transparent);
211
+ expect(image).toHaveStyle('opacity : 1');
212
+ });
213
+ it('renders a transparent background image when undefined', () => {
214
+ const { image } = setup({ falsySrc: true, imageSrc: undefined });
215
+
216
+ expect(image).toHaveAttribute(`src`, transparent);
217
+ expect(image).toHaveStyle('opacity: 1');
218
+ });
219
+ it('renders nothing and warns if false', () => {
220
+ console.warn = jest.fn();
221
+ const { image } = setup({ falsySrc: true, imageSrc: false });
222
+
223
+ expect(image).not.toBeInTheDocument();
224
+ expect(console.warn).toHaveBeenCalled();
225
+ });
226
+ });
227
+
228
+ it('renders a webp and jpeg source', () => {
229
+ const { imageContainer } = setup();
230
+
231
+ const sources = imageContainer.querySelectorAll('source');
232
+ expect(sources.length).toBe(2);
233
+ expect(sources[0]).toHaveAttribute('type', 'image/webp');
234
+ });
235
+ });
236
+
237
+ function setup({
238
+ imageSrc,
239
+ falsySrc = false,
240
+ error,
241
+ alt,
242
+ sizes,
243
+ aspect,
244
+ cover,
245
+ ...rest
246
+ } = {}) {
247
+ const channelHandler = new ChannelHandler({
248
+ selectedChannel,
249
+ channels
250
+ });
251
+ const utils = render(
252
+ <ChannelProvider channelHandler={channelHandler}>
253
+ <ConfigProvider config={mockShopConfig}>
254
+ <Image
255
+ src={falsySrc ? imageSrc : imageSrc || 'default.png'}
256
+ error={error}
257
+ alt={alt}
258
+ sizes={sizes}
259
+ aspect={aspect}
260
+ cover={cover}
261
+ {...rest}
262
+ />
263
+ </ConfigProvider>
264
+ </ChannelProvider>
265
+ );
266
+
267
+ return {
268
+ ...utils,
269
+ image: utils.container.querySelector('[data-flight-image] img'),
270
+ placeholderImage: utils.container.querySelector(
271
+ '[data-flight-image-placeholder] img'
272
+ ),
273
+ imageContainer: utils.container.querySelector(
274
+ '[data-flight-image-container]'
275
+ )
276
+ };
277
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jetshop/ui",
3
- "version": "6.3.8-alpha-6",
3
+ "version": "6.3.8-alpha.25+54a210697",
4
4
  "license": "MIT",
5
5
  "files": [
6
6
  "**/*.js",
@@ -59,5 +59,6 @@
59
59
  "peerDependencies": {
60
60
  "react": "^18",
61
61
  "react-dom": "^18"
62
- }
62
+ },
63
+ "gitHead": "54a2106975949d242f2ced3121792b836a463c3c"
63
64
  }
@@ -1,33 +0,0 @@
1
- import * as React from 'react';
2
- export interface AccordionChildProps {
3
- openIndexes: number[];
4
- handleClick(index: number): void;
5
- AccordionContent: any;
6
- }
7
- export interface AccordionProps {
8
- children: (args: AccordionChildProps) => React.ReactNode;
9
- /** If true, only one accordion item can be open at any time */
10
- single?: boolean;
11
- /** If true, at least one accordion item will always be open */
12
- atLeastOne?: boolean;
13
- initialOpenIndexes?: number[];
14
- }
15
- export interface AccordionState {
16
- openIndexes: number[];
17
- }
18
- /**
19
- * A component that can be optionally used as the accordion's content to
20
- * automatically apply open animations.
21
- */
22
- export declare const AccordionContent: React.SFC<{
23
- isOpen: boolean;
24
- }>;
25
- export default class Accordion extends React.Component<AccordionProps, AccordionState> {
26
- readonly state: {
27
- openIndexes: number[];
28
- };
29
- close: (index: number) => void;
30
- open: (index: number) => void;
31
- handleItemClick: (index: number) => void;
32
- render(): React.ReactNode;
33
- }
@@ -1,59 +0,0 @@
1
- import * as React from 'react';
2
- import AnimateHeight from 'react-animate-height';
3
- /**
4
- * A component that can be optionally used as the accordion's content to
5
- * automatically apply open animations.
6
- */
7
- export const AccordionContent = props => {
8
- return (React.createElement(AnimateHeight, { height: props.isOpen ? 'auto' : 0 }, props.children || React.createElement(React.Fragment, null)));
9
- };
10
- export default class Accordion extends React.Component {
11
- constructor() {
12
- super(...arguments);
13
- this.state = {
14
- openIndexes: (this.props.initialOpenIndexes || [this.props.atLeastOne && 0]).filter(el => isFinite(el))
15
- };
16
- this.close = (index) => {
17
- this.setState(prevState => {
18
- const openCount = prevState.openIndexes.length;
19
- return {
20
- openIndexes: this.props.atLeastOne &&
21
- openCount === 1 &&
22
- prevState.openIndexes.includes(index)
23
- ? prevState.openIndexes
24
- : prevState.openIndexes.filter(i => i !== index)
25
- };
26
- });
27
- };
28
- this.open = (index) => {
29
- this.setState(prevState => {
30
- const openIndexes = this.props.single
31
- ? [index]
32
- : [...prevState.openIndexes, index];
33
- return {
34
- openIndexes
35
- };
36
- });
37
- };
38
- this.handleItemClick = (index) => {
39
- // Determine whether we are closing or opening this accordion item
40
- const action = this.state.openIndexes.includes(index)
41
- ? 'closing'
42
- : 'opening';
43
- if (action === 'closing') {
44
- this.close(index);
45
- }
46
- else {
47
- this.open(index);
48
- }
49
- };
50
- }
51
- render() {
52
- return this.props.children({
53
- openIndexes: this.state.openIndexes,
54
- handleClick: this.handleItemClick,
55
- AccordionContent
56
- });
57
- }
58
- }
59
- //# sourceMappingURL=Accordion.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Accordion.js","sourceRoot":"","sources":["Accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,aAAa,MAAM,sBAAsB,CAAC;AAqBjD;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAmC,KAAK,CAAC,EAAE;IACtE,OAAO,CACL,oBAAC,aAAa,IAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAC7C,KAAK,CAAC,QAAQ,IAAI,yCAAK,CACV,CACjB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,KAAK,CAAC,SAG5C;IAHD;;QAIW,UAAK,GAAG;YACf,WAAW,EAAE,CACX,IAAI,CAAC,KAAK,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC,CAC9D,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SAC7B,CAAC;QAEF,UAAK,GAAG,CAAC,KAAa,EAAE,EAAE;YACxB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;gBACxB,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC;gBAC/C,OAAO;oBACL,WAAW,EACT,IAAI,CAAC,KAAK,CAAC,UAAU;wBACrB,SAAS,KAAK,CAAC;wBACf,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC;wBACnC,CAAC,CAAC,SAAS,CAAC,WAAW;wBACvB,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC;iBACrD,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,SAAI,GAAG,CAAC,KAAa,EAAE,EAAE;YACvB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;gBACxB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM;oBACnC,CAAC,CAAC,CAAC,KAAK,CAAC;oBACT,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBACtC,OAAO;oBACL,WAAW;iBACZ,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,oBAAe,GAAG,CAAC,KAAa,EAAE,EAAE;YAClC,kEAAkE;YAClE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACnD,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,SAAS,CAAC;YAEd,IAAI,MAAM,KAAK,SAAS,EAAE;gBACxB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aACnB;iBAAM;gBACL,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAClB;QACH,CAAC,CAAC;IASJ,CAAC;IAPC,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;YACzB,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW;YACnC,WAAW,EAAE,IAAI,CAAC,eAAe;YACjC,gBAAgB;SACjB,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1,16 +0,0 @@
1
- import React from 'react';
2
- import { Country } from '@jetshop/core/types';
3
- interface CountriesProps {
4
- onChange?(e: React.FormEvent<HTMLSelectElement>): any;
5
- onFocus?(e: React.FormEvent<HTMLSelectElement>): any;
6
- countries: Country[];
7
- name: string;
8
- id?: string;
9
- disabled?: boolean;
10
- label?: string;
11
- }
12
- /**
13
- * Maps over the current channel's countries and displays them.
14
- */
15
- export declare function CountriesInput({ id, name, onChange, onFocus, countries, ...rest }: CountriesProps): React.JSX.Element;
16
- export {};
@@ -1,28 +0,0 @@
1
- var __rest = (this && this.__rest) || function (s, e) {
2
- var t = {};
3
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
- t[p] = s[p];
5
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
- t[p[i]] = s[p[i]];
9
- }
10
- return t;
11
- };
12
- import { Field } from 'formik';
13
- import React from 'react';
14
- /**
15
- * Maps over the current channel's countries and displays them.
16
- */
17
- export function CountriesInput(_a) {
18
- var { id, name, onChange, onFocus, countries } = _a, rest = __rest(_a, ["id", "name", "onChange", "onFocus", "countries"]);
19
- return (React.createElement(Field, Object.assign({ name: name, onFocus: onFocus }, rest, { render: ({ field }) => {
20
- return (React.createElement("select", Object.assign({ id: id || name }, rest, field, { onChange: (e) => {
21
- field.onChange(e);
22
- onChange && onChange(e);
23
- } }),
24
- countries.map((country) => (React.createElement("option", { key: country.code, value: country.code }, country.name))),
25
- ";"));
26
- } })));
27
- }
28
- //# sourceMappingURL=CountriesInput.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CountriesInput.js","sourceRoot":"","sources":["CountriesInput.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,MAAM,OAAO,CAAC;AAa1B;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,EAOd;QAPc,EAC7B,EAAE,EACF,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,SAAS,OAEM,EADZ,IAAI,cANsB,kDAO9B,CADQ;IAEP,OAAO,CACL,oBAAC,KAAK,kBACJ,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,IACZ,IAAI,IACR,MAAM,EAAE,CAAC,EAAE,KAAK,EAAkB,EAAE,EAAE;YACpC,OAAO,CACL,8CACE,EAAE,EAAE,EAAE,IAAI,IAAI,IACV,IAAI,EACJ,KAAK,IACT,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;oBACd,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAClB,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC1B,CAAC;gBAEA,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAC1B,gCAAQ,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,IAC3C,OAAO,CAAC,IAAI,CACN,CACV,CAAC;oBAEK,CACV,CAAC;QACJ,CAAC,IACD,CACH,CAAC;AACJ,CAAC"}
@@ -1,22 +0,0 @@
1
- import { Component, FormEvent, ReactNode } from 'react';
2
- export interface LogInState {
3
- email: string;
4
- password: string;
5
- }
6
- export interface LogInBehaviorProps {
7
- children: (value: {
8
- onSubmit: (email: string, password: string, login: any) => void;
9
- updateEmail: (event: FormEvent<HTMLInputElement>) => void;
10
- updatePassword: (event: FormEvent<HTMLInputElement>) => void;
11
- } & LogInState) => ReactNode;
12
- }
13
- export default class LogInBehavior extends Component<LogInBehaviorProps, LogInState> {
14
- state: {
15
- email: string;
16
- password: string;
17
- };
18
- onSubmit: (email: string, password: string, login: any) => void;
19
- updateEmail: (event: FormEvent<HTMLInputElement>) => void;
20
- updatePassword: (event: FormEvent<HTMLInputElement>) => void;
21
- render(): ReactNode;
22
- }
@@ -1,24 +0,0 @@
1
- import { Component } from 'react';
2
- export default class LogInBehavior extends Component {
3
- constructor() {
4
- super(...arguments);
5
- this.state = {
6
- email: '',
7
- password: ''
8
- };
9
- this.onSubmit = (email, password, login) => {
10
- login(email, password);
11
- };
12
- this.updateEmail = (event) => this.setState({
13
- email: event.currentTarget.value
14
- });
15
- this.updatePassword = (event) => this.setState({
16
- password: event.currentTarget.value
17
- });
18
- }
19
- render() {
20
- const { children } = this.props;
21
- return children(Object.assign(Object.assign({}, this.state), { onSubmit: this.onSubmit, updateEmail: this.updateEmail, updatePassword: this.updatePassword }));
22
- }
23
- }
24
- //# sourceMappingURL=LogInBehavior.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LogInBehavior.js","sourceRoot":"","sources":["LogInBehavior.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAwB,MAAM,OAAO,CAAC;AAiBxD,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,SAG1C;IAHD;;QAIE,UAAK,GAAG;YACN,KAAK,EAAE,EAAE;YACT,QAAQ,EAAE,EAAE;SACb,CAAC;QAEF,aAAQ,GAAG,CAAC,KAAa,EAAE,QAAgB,EAAE,KAAU,EAAE,EAAE;YACzD,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACzB,CAAC,CAAC;QAEF,gBAAW,GAAG,CAAC,KAAkC,EAAE,EAAE,CACnD,IAAI,CAAC,QAAQ,CAAC;YACZ,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK;SACjC,CAAC,CAAC;QACL,mBAAc,GAAG,CAAC,KAAkC,EAAE,EAAE,CACtD,IAAI,CAAC,QAAQ,CAAC;YACZ,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK;SACpC,CAAC,CAAC;IAWP,CAAC;IATC,MAAM;QACJ,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAChC,OAAO,QAAQ,iCACV,IAAI,CAAC,KAAK,KACb,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,cAAc,EAAE,IAAI,CAAC,cAAc,IACnC,CAAC;IACL,CAAC;CACF"}
@@ -1,7 +0,0 @@
1
- import React, { FC } from 'react';
2
- declare const LogInFormProvider: FC<{
3
- children: (props: any) => React.ReactNode;
4
- redirect?: string;
5
- initialEmail?: string;
6
- }>;
7
- export default LogInFormProvider;
@@ -1,70 +0,0 @@
1
- import React, { useState } from 'react';
2
- import { Formik, Form } from 'formik';
3
- import { useLoginMutation } from '@jetshop/core/hooks/useLoginMutation';
4
- import validate from './logInValidator';
5
- import t from '@jetshop/intl';
6
- import { useLoginRedirect } from '@jetshop/core/hooks/useLoginRedirect';
7
- import { Redirect } from 'react-router';
8
- import useAuth from '@jetshop/core/components/AuthContext/useAuth';
9
- import { useShopConfig } from '@jetshop/core/hooks/useShopConfig';
10
- import { trackLoginEvent } from '@jetshop/core/analytics/tracking';
11
- import { useTracker } from '@jetshop/core/analytics/Analytics';
12
- import { useCartId } from '@jetshop/core/components/Cart/CartIdContext';
13
- const LogInFormProvider = ({ children, redirect, initialEmail = '' }) => {
14
- const { getRedirectUrl } = useLoginRedirect();
15
- const { loggedIn } = useAuth();
16
- const { loginMutation } = useLoginMutation();
17
- const { routes, useIndefinitelySavedCart } = useShopConfig();
18
- const { cartId } = useCartId();
19
- const track = useTracker();
20
- const [disabledByTimeout, setDisabledByTimeout] = useState(false);
21
- function triggerLoginFailed(globalError) {
22
- if (!globalError)
23
- return;
24
- const unableToLoginCustomerError = globalError.find(({ extensions }) => extensions.code === 'UnableToLoginCustomer');
25
- const timeOutLength = unableToLoginCustomerError === null || unableToLoginCustomerError === void 0 ? void 0 : unableToLoginCustomerError.extensions.data.tryAgainIn;
26
- if (timeOutLength) {
27
- setDisabledByTimeout(true);
28
- setTimeout(() => {
29
- setDisabledByTimeout(false);
30
- }, timeOutLength);
31
- }
32
- }
33
- redirect = redirect ? redirect : routes.myPages.path;
34
- return (React.createElement(Formik, { validate: validate, initialValues: Object.assign({ email: initialEmail, password: '' }, (useIndefinitelySavedCart && { cartId })), onSubmit: (values, actions) => {
35
- loginMutation({
36
- variables: values
37
- }).then(() => {
38
- // Track user login in GTAG
39
- track(trackLoginEvent());
40
- const returnUrlPromise = getRedirectUrl();
41
- if (returnUrlPromise) {
42
- returnUrlPromise.then((returnUrl) => {
43
- if (returnUrl) {
44
- window.location.href = returnUrl;
45
- }
46
- else {
47
- actions.setSubmitting(false);
48
- }
49
- });
50
- }
51
- else {
52
- actions.setSubmitting(false);
53
- }
54
- }, (error) => {
55
- actions.setSubmitting(false);
56
- actions.setErrors(error);
57
- actions.setStatus({
58
- globalError: t('Login failed. Please try again')
59
- });
60
- triggerLoginFailed(error.graphQLErrors);
61
- });
62
- }, render: (props) => {
63
- var _a;
64
- return (React.createElement(React.Fragment, null,
65
- !props.isSubmitting && loggedIn && React.createElement(Redirect, { to: redirect }),
66
- React.createElement(Form, null, children(Object.assign(Object.assign({}, props), { isValid: !disabledByTimeout || props.isValid, globalError: (_a = props === null || props === void 0 ? void 0 : props.status) === null || _a === void 0 ? void 0 : _a.globalError })))));
67
- } }));
68
- };
69
- export default LogInFormProvider;
70
- //# sourceMappingURL=LogInFormProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LogInFormProvider.js","sourceRoot":"","sources":["LogInFormProvider.tsx"],"names":[],"mappings":"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"}
package/Auth/LogOut.d.ts DELETED
@@ -1,10 +0,0 @@
1
- import { Customer } from '@jetshop/core/types';
2
- import { ApolloClient } from '@apollo/client';
3
- import React, { ButtonHTMLAttributes } from 'react';
4
- export interface LogOutProps extends ButtonHTMLAttributes<HTMLButtonElement> {
5
- updateCustomer: (customer?: Customer) => void;
6
- client: ApolloClient<any>;
7
- updateLoggedIn(token?: string): void;
8
- }
9
- declare function LogOut(props: LogOutProps): React.JSX.Element;
10
- export default LogOut;
package/Auth/LogOut.js DELETED
@@ -1,24 +0,0 @@
1
- var __rest = (this && this.__rest) || function (s, e) {
2
- var t = {};
3
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
- t[p] = s[p];
5
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
- t[p[i]] = s[p[i]];
9
- }
10
- return t;
11
- };
12
- import React from 'react';
13
- import useAuth from '@jetshop/core/components/AuthContext/useAuth';
14
- function LogOut(props) {
15
- const { logOut } = useAuth();
16
- const logout = (event) => {
17
- logOut();
18
- this.props.onClick && this.props.onClick(event);
19
- };
20
- const { children, updateLoggedIn, client } = props, rest = __rest(props, ["children", "updateLoggedIn", "client"]);
21
- return (React.createElement("button", Object.assign({}, rest, { onClick: logout }), children));
22
- }
23
- export default LogOut;
24
- //# sourceMappingURL=LogOut.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LogOut.js","sourceRoot":"","sources":["LogOut.tsx"],"names":[],"mappings":";;;;;;;;;;;AAEA,OAAO,KAA+B,MAAM,OAAO,CAAC;AACpD,OAAO,OAAO,MAAM,8CAA8C,CAAC;AAOnE,SAAS,MAAM,CAAC,KAAkB;IAChC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;IAE7B,MAAM,MAAM,GAAG,CAAC,KAA0C,EAAE,EAAE;QAC5D,MAAM,EAAE,CAAC;QACT,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC,CAAC;IAEF,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,KAAc,KAAK,EAAd,IAAI,UAAK,KAAK,EAArD,wCAA6C,CAAQ,CAAC;IAC5D,OAAO,CACL,gDAAY,IAAI,IAAE,OAAO,EAAE,MAAM,KAC9B,QAAQ,CACF,CACV,CAAC;AACJ,CAAC;AAED,eAAe,MAAM,CAAC"}
@@ -1,10 +0,0 @@
1
- declare const validate: (values: {
2
- email: string;
3
- password: string;
4
- cartId?: string;
5
- }) => {
6
- email?: string;
7
- password?: string;
8
- cartId?: string;
9
- };
10
- export default validate;
@@ -1,16 +0,0 @@
1
- import t from 'format-message';
2
- const validate = (values) => {
3
- const errors = {};
4
- if (!values.email) {
5
- errors.email = t('Required');
6
- }
7
- else if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,24}$/i.test(values.email)) {
8
- errors.email = t('Invalid email address');
9
- }
10
- if (!values.password) {
11
- errors.password = t('Required');
12
- }
13
- return errors;
14
- };
15
- export default validate;
16
- //# sourceMappingURL=logInValidator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logInValidator.js","sourceRoot":"","sources":["logInValidator.tsx"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,gBAAgB,CAAC;AAE/B,MAAM,QAAQ,GAAG,CAAC,MAIjB,EAAE,EAAE;IACH,MAAM,MAAM,GAA2D,EAAE,CAAC;IAE1E,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;QACjB,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;KAC9B;SAAM,IAAI,CAAC,4CAA4C,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;QAC3E,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,uBAAuB,CAAC,CAAC;KAC3C;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;QACpB,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;KACjC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AACF,eAAe,QAAQ,CAAC"}