@jetshop/ui 0.0.11

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 (749) hide show
  1. package/Accordion/Accordion.d.ts +33 -0
  2. package/Accordion/Accordion.js +59 -0
  3. package/Accordion/Accordion.js.map +1 -0
  4. package/Accordion/__doc_utils__/AccordionHeader.js +12 -0
  5. package/Auth/FormFields/CountriesInput.d.ts +16 -0
  6. package/Auth/FormFields/CountriesInput.js +28 -0
  7. package/Auth/FormFields/CountriesInput.js.map +1 -0
  8. package/Auth/LogInBehavior.d.ts +22 -0
  9. package/Auth/LogInBehavior.js +24 -0
  10. package/Auth/LogInBehavior.js.map +1 -0
  11. package/Auth/LogInFormProvider.d.ts +7 -0
  12. package/Auth/LogInFormProvider.js +70 -0
  13. package/Auth/LogInFormProvider.js.map +1 -0
  14. package/Auth/LogOut.d.ts +10 -0
  15. package/Auth/LogOut.js +24 -0
  16. package/Auth/LogOut.js.map +1 -0
  17. package/Auth/logInValidator.d.ts +10 -0
  18. package/Auth/logInValidator.js +16 -0
  19. package/Auth/logInValidator.js.map +1 -0
  20. package/Breadcrumbs/Breadcrumbs.d.ts +14 -0
  21. package/Breadcrumbs/Breadcrumbs.js +84 -0
  22. package/Breadcrumbs/Breadcrumbs.js.map +1 -0
  23. package/Breadcrumbs/getParentsOrCanonicalRoute.d.ts +3 -0
  24. package/Breadcrumbs/getParentsOrCanonicalRoute.js +14 -0
  25. package/Breadcrumbs/getParentsOrCanonicalRoute.js.map +1 -0
  26. package/Breadcrumbs/index.d.ts +1 -0
  27. package/Breadcrumbs/index.js +2 -0
  28. package/Breadcrumbs/index.js.map +1 -0
  29. package/Breakpoints.d.ts +12 -0
  30. package/Breakpoints.js +36 -0
  31. package/Breakpoints.js.map +1 -0
  32. package/Button/Button.d.ts +14 -0
  33. package/Button/Button.js +60 -0
  34. package/Button/Button.js.map +1 -0
  35. package/Button/SecondaryButton.d.ts +2 -0
  36. package/Button/SecondaryButton.js +9 -0
  37. package/Button/SecondaryButton.js.map +1 -0
  38. package/Button/TrendButton.d.ts +2 -0
  39. package/Button/TrendButton.js +8 -0
  40. package/Button/TrendButton.js.map +1 -0
  41. package/Button/index.d.ts +4 -0
  42. package/Button/index.js +5 -0
  43. package/Button/index.js.map +1 -0
  44. package/CategoryLink.d.ts +11 -0
  45. package/CategoryLink.js +49 -0
  46. package/CategoryLink.js.map +1 -0
  47. package/ChannelSelector/ChannelListItem.d.ts +10 -0
  48. package/ChannelSelector/ChannelListItem.js +51 -0
  49. package/ChannelSelector/ChannelListItem.js.map +1 -0
  50. package/ChannelSelector/ChannelListItem.test.js +85 -0
  51. package/ChannelSelector/ChannelSelector.d.ts +63 -0
  52. package/ChannelSelector/ChannelSelector.js +80 -0
  53. package/ChannelSelector/ChannelSelector.js.map +1 -0
  54. package/ChannelSelector/ChannelSelector.test.js +167 -0
  55. package/ChannelSelector/ChannelSelectorButtons.d.ts +2 -0
  56. package/ChannelSelector/ChannelSelectorButtons.js +20 -0
  57. package/ChannelSelector/ChannelSelectorButtons.js.map +1 -0
  58. package/ChannelSelector/Channels.d.ts +17 -0
  59. package/ChannelSelector/Channels.js +12 -0
  60. package/ChannelSelector/Channels.js.map +1 -0
  61. package/ChannelSelector/Channels.test.js +90 -0
  62. package/ChannelSelector/LargeSelector.d.ts +3 -0
  63. package/ChannelSelector/LargeSelector.js +67 -0
  64. package/ChannelSelector/LargeSelector.js.map +1 -0
  65. package/ChannelSelector/MiniSelector.d.ts +4 -0
  66. package/ChannelSelector/MiniSelector.js +58 -0
  67. package/ChannelSelector/MiniSelector.js.map +1 -0
  68. package/ChannelSelector/Region.d.ts +28 -0
  69. package/ChannelSelector/Region.js +21 -0
  70. package/ChannelSelector/Region.js.map +1 -0
  71. package/ChannelSelector/Region.test.js +37 -0
  72. package/ChannelSelector/exampleChannels.js +577 -0
  73. package/ChannelSelector/groupBy.d.ts +7 -0
  74. package/ChannelSelector/groupBy.js +16 -0
  75. package/ChannelSelector/groupBy.js.map +1 -0
  76. package/ChannelSelector/groupBy.test.js +42 -0
  77. package/Checkbox/Checkbox.d.ts +14 -0
  78. package/Checkbox/Checkbox.js +70 -0
  79. package/Checkbox/Checkbox.js.map +1 -0
  80. package/Checkbox/CheckboxGroup.d.ts +27 -0
  81. package/Checkbox/CheckboxGroup.js +22 -0
  82. package/Checkbox/CheckboxGroup.js.map +1 -0
  83. package/Checkbox/index.d.ts +2 -0
  84. package/Checkbox/index.js +3 -0
  85. package/Checkbox/index.js.map +1 -0
  86. package/CloudflareImage/BaseImage.d.ts +40 -0
  87. package/CloudflareImage/BaseImage.js +192 -0
  88. package/CloudflareImage/BaseImage.js.map +1 -0
  89. package/CloudflareImage/Fallback.d.ts +5 -0
  90. package/CloudflareImage/Fallback.js +4 -0
  91. package/CloudflareImage/Fallback.js.map +1 -0
  92. package/CloudflareImage/FlightImage.d.ts +51 -0
  93. package/CloudflareImage/FlightImage.js +61 -0
  94. package/CloudflareImage/FlightImage.js.map +1 -0
  95. package/CloudflareImage/FlightImage.test.js +277 -0
  96. package/CloudflareImage/Image.d.ts +2 -0
  97. package/CloudflareImage/Image.js +3 -0
  98. package/CloudflareImage/Image.js.map +1 -0
  99. package/CloudflareImage/index.d.ts +1 -0
  100. package/CloudflareImage/index.js +2 -0
  101. package/CloudflareImage/index.js.map +1 -0
  102. package/CloudflareImage/useConstructImage.d.ts +49 -0
  103. package/CloudflareImage/useConstructImage.js +122 -0
  104. package/CloudflareImage/useConstructImage.js.map +1 -0
  105. package/CloudflareImage/utils/aspectRatioToFraction.d.ts +2 -0
  106. package/CloudflareImage/utils/aspectRatioToFraction.js +11 -0
  107. package/CloudflareImage/utils/aspectRatioToFraction.js.map +1 -0
  108. package/CloudflareImage/utils/getFullUrl.d.ts +6 -0
  109. package/CloudflareImage/utils/getFullUrl.js +18 -0
  110. package/CloudflareImage/utils/getFullUrl.js.map +1 -0
  111. package/CloudflareImage/utils/getImageWidth.d.ts +1 -0
  112. package/CloudflareImage/utils/getImageWidth.js +12 -0
  113. package/CloudflareImage/utils/getImageWidth.js.map +1 -0
  114. package/CloudflareImage/utils/getImageWidths.d.ts +2 -0
  115. package/CloudflareImage/utils/getImageWidths.js +21 -0
  116. package/CloudflareImage/utils/getImageWidths.js.map +1 -0
  117. package/CloudflareImage/utils/getLQIP.d.ts +8 -0
  118. package/CloudflareImage/utils/getLQIP.js +21 -0
  119. package/CloudflareImage/utils/getLQIP.js.map +1 -0
  120. package/CloudflareImage/utils/getLargestSize.d.ts +7 -0
  121. package/CloudflareImage/utils/getLargestSize.js +17 -0
  122. package/CloudflareImage/utils/getLargestSize.js.map +1 -0
  123. package/CloudflareImage/utils/getSizeForBreakpoint.d.ts +2 -0
  124. package/CloudflareImage/utils/getSizeForBreakpoint.js +16 -0
  125. package/CloudflareImage/utils/getSizeForBreakpoint.js.map +1 -0
  126. package/CloudflareImage/utils/getSizesMap.d.ts +2 -0
  127. package/CloudflareImage/utils/getSizesMap.js +35 -0
  128. package/CloudflareImage/utils/getSizesMap.js.map +1 -0
  129. package/CloudflareImage/utils/getSmallestSize.d.ts +2 -0
  130. package/CloudflareImage/utils/getSmallestSize.js +12 -0
  131. package/CloudflareImage/utils/getSmallestSize.js.map +1 -0
  132. package/CloudflareImage/utils/getSrcSetFromWidths.d.ts +10 -0
  133. package/CloudflareImage/utils/getSrcSetFromWidths.js +10 -0
  134. package/CloudflareImage/utils/getSrcSetFromWidths.js.map +1 -0
  135. package/CloudflareImage/utils/getSrcWithParams.d.ts +3 -0
  136. package/CloudflareImage/utils/getSrcWithParams.js +33 -0
  137. package/CloudflareImage/utils/getSrcWithParams.js.map +1 -0
  138. package/CloudflareImage/utils/paddingForAspectRatio.d.ts +1 -0
  139. package/CloudflareImage/utils/paddingForAspectRatio.js +6 -0
  140. package/CloudflareImage/utils/paddingForAspectRatio.js.map +1 -0
  141. package/CloudflareImage/utils/remToPx.d.ts +1 -0
  142. package/CloudflareImage/utils/remToPx.js +2 -0
  143. package/CloudflareImage/utils/remToPx.js.map +1 -0
  144. package/CloudflareImage/utils/sizeToNumber.d.ts +2 -0
  145. package/CloudflareImage/utils/sizeToNumber.js +27 -0
  146. package/CloudflareImage/utils/sizeToNumber.js.map +1 -0
  147. package/ContentPageLink.d.ts +11 -0
  148. package/ContentPageLink.js +46 -0
  149. package/ContentPageLink.js.map +1 -0
  150. package/ContentRenderer.d.ts +9 -0
  151. package/ContentRenderer.js +36 -0
  152. package/ContentRenderer.js.map +1 -0
  153. package/DropdownMenu/Button.d.ts +7 -0
  154. package/DropdownMenu/Button.js +33 -0
  155. package/DropdownMenu/Button.js.map +1 -0
  156. package/DropdownMenu/DropdownMenu.d.ts +21 -0
  157. package/DropdownMenu/DropdownMenu.js +72 -0
  158. package/DropdownMenu/DropdownMenu.js.map +1 -0
  159. package/DropdownMenu/Item.d.ts +13 -0
  160. package/DropdownMenu/Item.js +48 -0
  161. package/DropdownMenu/Item.js.map +1 -0
  162. package/DropdownMenu/Items.d.ts +16 -0
  163. package/DropdownMenu/Items.js +53 -0
  164. package/DropdownMenu/Items.js.map +1 -0
  165. package/DropdownMenu/index.d.ts +4 -0
  166. package/DropdownMenu/index.js +5 -0
  167. package/DropdownMenu/index.js.map +1 -0
  168. package/ErrorBoundary/Generic.d.ts +18 -0
  169. package/ErrorBoundary/Generic.js +65 -0
  170. package/ErrorBoundary/Generic.js.map +1 -0
  171. package/ErrorBoundary/PassThrough.d.ts +3 -0
  172. package/ErrorBoundary/PassThrough.js +7 -0
  173. package/ErrorBoundary/PassThrough.js.map +1 -0
  174. package/Gallery/Gallery.d.ts +39 -0
  175. package/Gallery/Gallery.js +121 -0
  176. package/Gallery/Gallery.js.map +1 -0
  177. package/Gallery/constructGallery.d.ts +15 -0
  178. package/Gallery/constructGallery.js +40 -0
  179. package/Gallery/constructGallery.js.map +1 -0
  180. package/Image/BaseImage.d.ts +39 -0
  181. package/Image/BaseImage.js +192 -0
  182. package/Image/BaseImage.js.map +1 -0
  183. package/Image/Fallback.d.ts +5 -0
  184. package/Image/Fallback.js +4 -0
  185. package/Image/Fallback.js.map +1 -0
  186. package/Image/FlightImage.d.ts +51 -0
  187. package/Image/FlightImage.js +59 -0
  188. package/Image/FlightImage.js.map +1 -0
  189. package/Image/FlightImage.test.js +277 -0
  190. package/Image/Image.d.ts +2 -0
  191. package/Image/Image.js +3 -0
  192. package/Image/Image.js.map +1 -0
  193. package/Image/index.d.ts +1 -0
  194. package/Image/index.js +2 -0
  195. package/Image/index.js.map +1 -0
  196. package/Image/useConstructImage.d.ts +49 -0
  197. package/Image/useConstructImage.js +122 -0
  198. package/Image/useConstructImage.js.map +1 -0
  199. package/Image/utils/aspectRatioToFraction.d.ts +2 -0
  200. package/Image/utils/aspectRatioToFraction.js +11 -0
  201. package/Image/utils/aspectRatioToFraction.js.map +1 -0
  202. package/Image/utils/getFullUrl.d.ts +6 -0
  203. package/Image/utils/getFullUrl.js +18 -0
  204. package/Image/utils/getFullUrl.js.map +1 -0
  205. package/Image/utils/getImageWidth.d.ts +1 -0
  206. package/Image/utils/getImageWidth.js +12 -0
  207. package/Image/utils/getImageWidth.js.map +1 -0
  208. package/Image/utils/getImageWidths.d.ts +2 -0
  209. package/Image/utils/getImageWidths.js +21 -0
  210. package/Image/utils/getImageWidths.js.map +1 -0
  211. package/Image/utils/getLQIP.d.ts +8 -0
  212. package/Image/utils/getLQIP.js +20 -0
  213. package/Image/utils/getLQIP.js.map +1 -0
  214. package/Image/utils/getLargestSize.d.ts +7 -0
  215. package/Image/utils/getLargestSize.js +17 -0
  216. package/Image/utils/getLargestSize.js.map +1 -0
  217. package/Image/utils/getSizeForBreakpoint.d.ts +2 -0
  218. package/Image/utils/getSizeForBreakpoint.js +16 -0
  219. package/Image/utils/getSizeForBreakpoint.js.map +1 -0
  220. package/Image/utils/getSizesMap.d.ts +2 -0
  221. package/Image/utils/getSizesMap.js +35 -0
  222. package/Image/utils/getSizesMap.js.map +1 -0
  223. package/Image/utils/getSmallestSize.d.ts +2 -0
  224. package/Image/utils/getSmallestSize.js +12 -0
  225. package/Image/utils/getSmallestSize.js.map +1 -0
  226. package/Image/utils/getSrcSetFromWidths.d.ts +10 -0
  227. package/Image/utils/getSrcSetFromWidths.js +9 -0
  228. package/Image/utils/getSrcSetFromWidths.js.map +1 -0
  229. package/Image/utils/getSrcWithParams.d.ts +3 -0
  230. package/Image/utils/getSrcWithParams.js +29 -0
  231. package/Image/utils/getSrcWithParams.js.map +1 -0
  232. package/Image/utils/paddingForAspectRatio.d.ts +1 -0
  233. package/Image/utils/paddingForAspectRatio.js +6 -0
  234. package/Image/utils/paddingForAspectRatio.js.map +1 -0
  235. package/Image/utils/remToPx.d.ts +1 -0
  236. package/Image/utils/remToPx.js +2 -0
  237. package/Image/utils/remToPx.js.map +1 -0
  238. package/Image/utils/sizeToNumber.d.ts +2 -0
  239. package/Image/utils/sizeToNumber.js +27 -0
  240. package/Image/utils/sizeToNumber.js.map +1 -0
  241. package/Input/Input.d.ts +6 -0
  242. package/Input/Input.js +45 -0
  243. package/Input/Input.js.map +1 -0
  244. package/Input/index.d.ts +3 -0
  245. package/Input/index.js +4 -0
  246. package/Input/index.js.map +1 -0
  247. package/JetshopText.d.ts +3 -0
  248. package/JetshopText.js +13 -0
  249. package/JetshopText.js.map +1 -0
  250. package/Loading/LoadingBar.d.ts +8 -0
  251. package/Loading/LoadingBar.js +58 -0
  252. package/Loading/LoadingBar.js.map +1 -0
  253. package/Loading/LoadingLine.d.ts +31 -0
  254. package/Loading/LoadingLine.js +26 -0
  255. package/Loading/LoadingLine.js.map +1 -0
  256. package/Loading/LoadingLine.test.js +18 -0
  257. package/Loading/NetworkStatusNotifier.d.ts +6 -0
  258. package/Loading/NetworkStatusNotifier.js +8 -0
  259. package/Loading/NetworkStatusNotifier.js.map +1 -0
  260. package/Menu/GetMoreSubcategoriesQuery.gql +25 -0
  261. package/Menu/MenuContainer.d.ts +28 -0
  262. package/Menu/MenuContainer.js +46 -0
  263. package/Menu/MenuContainer.js.map +1 -0
  264. package/Menu/MenuContainer.test.js +245 -0
  265. package/Menu/RecursiveTree.d.ts +28 -0
  266. package/Menu/RecursiveTree.js +91 -0
  267. package/Menu/RecursiveTree.js.map +1 -0
  268. package/Menu/RecursiveTree.test.js +417 -0
  269. package/Modal/Drawer/Drawer.d.ts +12 -0
  270. package/Modal/Drawer/Drawer.js +31 -0
  271. package/Modal/Drawer/Drawer.js.map +1 -0
  272. package/Modal/Drawer/DrawerTarget.d.ts +6 -0
  273. package/Modal/Drawer/DrawerTarget.js +12 -0
  274. package/Modal/Drawer/DrawerTarget.js.map +1 -0
  275. package/Modal/Drawer/DrawerTarget.test.js +92 -0
  276. package/Modal/Drawer/DrawerTrigger.d.ts +11 -0
  277. package/Modal/Drawer/DrawerTrigger.js +16 -0
  278. package/Modal/Drawer/DrawerTrigger.js.map +1 -0
  279. package/Modal/Drawer/DrawerTrigger.test.js +51 -0
  280. package/Modal/Drawer/index.d.ts +3 -0
  281. package/Modal/Drawer/index.js +4 -0
  282. package/Modal/Drawer/index.js.map +1 -0
  283. package/Modal/Flyout/FlyoutTarget.d.ts +10 -0
  284. package/Modal/Flyout/FlyoutTarget.js +15 -0
  285. package/Modal/Flyout/FlyoutTarget.js.map +1 -0
  286. package/Modal/Flyout/FlyoutTarget.test.js +84 -0
  287. package/Modal/Flyout/FlyoutTrigger.d.ts +15 -0
  288. package/Modal/Flyout/FlyoutTrigger.js +18 -0
  289. package/Modal/Flyout/FlyoutTrigger.js.map +1 -0
  290. package/Modal/Flyout/FlyoutTrigger.test.js +72 -0
  291. package/Modal/Flyout/index.d.ts +2 -0
  292. package/Modal/Flyout/index.js +3 -0
  293. package/Modal/Flyout/index.js.map +1 -0
  294. package/Modal/ModalContext.d.ts +26 -0
  295. package/Modal/ModalContext.js +9 -0
  296. package/Modal/ModalContext.js.map +1 -0
  297. package/Modal/ModalProvider.d.ts +5 -0
  298. package/Modal/ModalProvider.js +83 -0
  299. package/Modal/ModalProvider.js.map +1 -0
  300. package/Modal/ModalProvider.test.js +26 -0
  301. package/Modal/ModalRoot.d.ts +3 -0
  302. package/Modal/ModalRoot.js +44 -0
  303. package/Modal/ModalRoot.js.map +1 -0
  304. package/Modal/ModalRoot.test.js +80 -0
  305. package/Modal/ModalTrigger.d.ts +9 -0
  306. package/Modal/ModalTrigger.js +9 -0
  307. package/Modal/ModalTrigger.js.map +1 -0
  308. package/Modal/__test_utils__/getComponentWithModalContext.js +29 -0
  309. package/Pagination/Pagination.d.ts +7 -0
  310. package/Pagination/Pagination.js +23 -0
  311. package/Pagination/Pagination.js.map +1 -0
  312. package/Pagination/PaginationBehaviour.d.ts +52 -0
  313. package/Pagination/PaginationBehaviour.js +68 -0
  314. package/Pagination/PaginationBehaviour.js.map +1 -0
  315. package/Pagination/index.d.ts +2 -0
  316. package/Pagination/index.js +3 -0
  317. package/Pagination/index.js.map +1 -0
  318. package/Pagination/usePagination.d.ts +15 -0
  319. package/Pagination/usePagination.js +46 -0
  320. package/Pagination/usePagination.js.map +1 -0
  321. package/PreOrderDateSelector/PreOrderDateSelector.d.ts +23 -0
  322. package/PreOrderDateSelector/PreOrderDateSelector.js +74 -0
  323. package/PreOrderDateSelector/PreOrderDateSelector.js.map +1 -0
  324. package/PreOrderDateSelector/index.d.ts +2 -0
  325. package/PreOrderDateSelector/index.js +3 -0
  326. package/PreOrderDateSelector/index.js.map +1 -0
  327. package/Price/Currency.d.ts +9 -0
  328. package/Price/Currency.js +11 -0
  329. package/Price/Currency.js.map +1 -0
  330. package/Price/Price.d.ts +44 -0
  331. package/Price/Price.js +74 -0
  332. package/Price/Price.js.map +1 -0
  333. package/Price/index.d.ts +1 -0
  334. package/Price/index.js +2 -0
  335. package/Price/index.js.map +1 -0
  336. package/ProductLink.d.ts +23 -0
  337. package/ProductLink.js +88 -0
  338. package/ProductLink.js.map +1 -0
  339. package/ProductList/Badges.d.ts +6 -0
  340. package/ProductList/Badges.js +56 -0
  341. package/ProductList/Badges.js.map +1 -0
  342. package/ProductList/GridProduct.d.ts +24 -0
  343. package/ProductList/GridProduct.js +58 -0
  344. package/ProductList/GridProduct.js.map +1 -0
  345. package/ProductList/ProductGrid.d.ts +16 -0
  346. package/ProductList/ProductGrid.js +30 -0
  347. package/ProductList/ProductGrid.js.map +1 -0
  348. package/ProductList/ProductImage.d.ts +12 -0
  349. package/ProductList/ProductImage.js +21 -0
  350. package/ProductList/ProductImage.js.map +1 -0
  351. package/ProductSpecifications/ProductSpecifications.d.ts +8 -0
  352. package/ProductSpecifications/ProductSpecifications.js +78 -0
  353. package/ProductSpecifications/ProductSpecifications.js.map +1 -0
  354. package/ScrollRestorationHandler/ScrollRestorationHandler.d.ts +8 -0
  355. package/ScrollRestorationHandler/ScrollRestorationHandler.js +17 -0
  356. package/ScrollRestorationHandler/ScrollRestorationHandler.js.map +1 -0
  357. package/ScrollRestorationHandler/ScrollRestorationHandler.test.js +75 -0
  358. package/ScrollRestorationHandler/index.d.ts +1 -0
  359. package/ScrollRestorationHandler/index.js +2 -0
  360. package/ScrollRestorationHandler/index.js.map +1 -0
  361. package/ScrollRestorationHandler/isInIgnoredRouteTypes.d.ts +8 -0
  362. package/ScrollRestorationHandler/isInIgnoredRouteTypes.js +8 -0
  363. package/ScrollRestorationHandler/isInIgnoredRouteTypes.js.map +1 -0
  364. package/ScrollRestorationHandler/useScrollRestore.d.ts +9 -0
  365. package/ScrollRestorationHandler/useScrollRestore.js +20 -0
  366. package/ScrollRestorationHandler/useScrollRestore.js.map +1 -0
  367. package/Search/AutocompleteQuery.gql +10 -0
  368. package/Search/SearchAutoCompleteContainer.d.ts +45 -0
  369. package/Search/SearchAutoCompleteContainer.js +172 -0
  370. package/Search/SearchAutoCompleteContainer.js.map +1 -0
  371. package/Search/SearchAutoCompleteContainer.test.js +460 -0
  372. package/Search/SearchField.d.ts +26 -0
  373. package/Search/SearchField.js +98 -0
  374. package/Search/SearchField.js.map +1 -0
  375. package/Search/SearchPage/PageOf.d.ts +5 -0
  376. package/Search/SearchPage/PageOf.js +7 -0
  377. package/Search/SearchPage/PageOf.js.map +1 -0
  378. package/Search/SearchPage/SearchMeta.d.ts +16 -0
  379. package/Search/SearchPage/SearchMeta.js +20 -0
  380. package/Search/SearchPage/SearchMeta.js.map +1 -0
  381. package/Search/SearchPage/SearchPageBehaviour.d.ts +19 -0
  382. package/Search/SearchPage/SearchPageBehaviour.js +75 -0
  383. package/Search/SearchPage/SearchPageBehaviour.js.map +1 -0
  384. package/Search/SuggestedTerm.d.ts +16 -0
  385. package/Search/SuggestedTerm.js +35 -0
  386. package/Search/SuggestedTerm.js.map +1 -0
  387. package/Search/index.d.ts +1 -0
  388. package/Search/index.js +2 -0
  389. package/Search/index.js.map +1 -0
  390. package/Select/Components.d.ts +28 -0
  391. package/Select/Components.js +91 -0
  392. package/Select/Components.js.map +1 -0
  393. package/Select/SelectComponents/Quantity.d.ts +5 -0
  394. package/Select/SelectComponents/Quantity.js +8 -0
  395. package/Select/SelectComponents/Quantity.js.map +1 -0
  396. package/Select/index.d.ts +5 -0
  397. package/Select/index.js +2 -0
  398. package/Select/index.js.map +1 -0
  399. package/SortOrder/SortOrder.d.ts +16 -0
  400. package/SortOrder/SortOrder.js +33 -0
  401. package/SortOrder/SortOrder.js.map +1 -0
  402. package/SortOrder/SortOrderDropdown.d.ts +9 -0
  403. package/SortOrder/SortOrderDropdown.js +25 -0
  404. package/SortOrder/SortOrderDropdown.js.map +1 -0
  405. package/SortOrder/SortOrderList.d.ts +7 -0
  406. package/SortOrder/SortOrderList.js +17 -0
  407. package/SortOrder/SortOrderList.js.map +1 -0
  408. package/StartPageRenderer/StartPageRenderer.d.ts +17 -0
  409. package/StartPageRenderer/StartPageRenderer.js +52 -0
  410. package/StartPageRenderer/StartPageRenderer.js.map +1 -0
  411. package/StartPageRenderer/index.d.ts +1 -0
  412. package/StartPageRenderer/index.js +2 -0
  413. package/StartPageRenderer/index.js.map +1 -0
  414. package/Stock/StockStatusContainer.d.ts +21 -0
  415. package/Stock/StockStatusContainer.js +45 -0
  416. package/Stock/StockStatusContainer.js.map +1 -0
  417. package/Stock/__tests__/StockStatusContainer.test.js +65 -0
  418. package/Text/Text.d.ts +11 -0
  419. package/Text/Text.js +22 -0
  420. package/Text/Text.js.map +1 -0
  421. package/Text/index.d.ts +3 -0
  422. package/Text/index.js +4 -0
  423. package/Text/index.js.map +1 -0
  424. package/Theme/createTheme.d.ts +16 -0
  425. package/Theme/createTheme.js +5 -0
  426. package/Theme/createTheme.js.map +1 -0
  427. package/Theme/cssReset.d.ts +1 -0
  428. package/Theme/cssReset.js +160 -0
  429. package/Theme/cssReset.js.map +1 -0
  430. package/Theme/normalizeCss.d.ts +1 -0
  431. package/Theme/normalizeCss.js +357 -0
  432. package/Theme/normalizeCss.js.map +1 -0
  433. package/Theme/sanitizeCss.d.ts +1 -0
  434. package/Theme/sanitizeCss.js +572 -0
  435. package/Theme/sanitizeCss.js.map +1 -0
  436. package/WindowGrid/WindowGrid.d.ts +11 -0
  437. package/WindowGrid/WindowGrid.js +58 -0
  438. package/WindowGrid/WindowGrid.js.map +1 -0
  439. package/WindowGrid/index.d.ts +1 -0
  440. package/WindowGrid/index.js +2 -0
  441. package/WindowGrid/index.js.map +1 -0
  442. package/WindowGrid/useResizeObserver.d.ts +3 -0
  443. package/WindowGrid/useResizeObserver.js +14 -0
  444. package/WindowGrid/useResizeObserver.js.map +1 -0
  445. package/WindowGrid/useScrollWithWindow.d.ts +12 -0
  446. package/WindowGrid/useScrollWithWindow.js +39 -0
  447. package/WindowGrid/useScrollWithWindow.js.map +1 -0
  448. package/dependencies.d.ts +98 -0
  449. package/fuzzySearch/fuzzySearch.d.ts +8 -0
  450. package/fuzzySearch/fuzzySearch.js +43 -0
  451. package/fuzzySearch/fuzzySearch.js.map +1 -0
  452. package/fuzzySearch/index.d.ts +1 -0
  453. package/fuzzySearch/index.js +2 -0
  454. package/fuzzySearch/index.js.map +1 -0
  455. package/global.d.ts +1 -0
  456. package/hooks/index.d.ts +2 -0
  457. package/hooks/index.js +3 -0
  458. package/hooks/index.js.map +1 -0
  459. package/hooks/useOnClickOutside.d.ts +6 -0
  460. package/hooks/useOnClickOutside.js +17 -0
  461. package/hooks/useOnClickOutside.js.map +1 -0
  462. package/hooks/useOnEsc.d.ts +4 -0
  463. package/hooks/useOnEsc.js +17 -0
  464. package/hooks/useOnEsc.js.map +1 -0
  465. package/package.json +64 -0
  466. package/setupTests.js +2 -0
  467. package/svg/Carrot.svg +1 -0
  468. package/svg/Check.svg +1 -0
  469. package/svg/Cross.svg +1 -0
  470. package/svg/facebook.svg +1 -0
  471. package/svg/flags/ad.svg +150 -0
  472. package/svg/flags/ae.svg +6 -0
  473. package/svg/flags/af.svg +81 -0
  474. package/svg/flags/ag.svg +14 -0
  475. package/svg/flags/ai.svg +767 -0
  476. package/svg/flags/al.svg +5 -0
  477. package/svg/flags/am.svg +5 -0
  478. package/svg/flags/ao.svg +13 -0
  479. package/svg/flags/aq.svg +6 -0
  480. package/svg/flags/ar.svg +31 -0
  481. package/svg/flags/as.svg +33 -0
  482. package/svg/flags/at.svg +6 -0
  483. package/svg/flags/au.svg +9 -0
  484. package/svg/flags/aw.svg +186 -0
  485. package/svg/flags/ax.svg +18 -0
  486. package/svg/flags/az.svg +8 -0
  487. package/svg/flags/ba.svg +12 -0
  488. package/svg/flags/bb.svg +6 -0
  489. package/svg/flags/bd.svg +4 -0
  490. package/svg/flags/be.svg +7 -0
  491. package/svg/flags/bf.svg +7 -0
  492. package/svg/flags/bg.svg +7 -0
  493. package/svg/flags/bh.svg +11 -0
  494. package/svg/flags/bi.svg +15 -0
  495. package/svg/flags/bj.svg +14 -0
  496. package/svg/flags/bl.svg +7 -0
  497. package/svg/flags/bm.svg +98 -0
  498. package/svg/flags/bn.svg +36 -0
  499. package/svg/flags/bo.svg +676 -0
  500. package/svg/flags/bq.svg +5 -0
  501. package/svg/flags/br.svg +45 -0
  502. package/svg/flags/bs.svg +13 -0
  503. package/svg/flags/bt.svg +89 -0
  504. package/svg/flags/bv.svg +13 -0
  505. package/svg/flags/bw.svg +7 -0
  506. package/svg/flags/by.svg +20 -0
  507. package/svg/flags/bz.svg +145 -0
  508. package/svg/flags/ca.svg +4 -0
  509. package/svg/flags/cc.svg +19 -0
  510. package/svg/flags/cd.svg +5 -0
  511. package/svg/flags/cf.svg +15 -0
  512. package/svg/flags/cg.svg +12 -0
  513. package/svg/flags/ch.svg +9 -0
  514. package/svg/flags/ci.svg +7 -0
  515. package/svg/flags/ck.svg +9 -0
  516. package/svg/flags/cl.svg +13 -0
  517. package/svg/flags/cm.svg +15 -0
  518. package/svg/flags/cn.svg +11 -0
  519. package/svg/flags/co.svg +7 -0
  520. package/svg/flags/cr.svg +7 -0
  521. package/svg/flags/cu.svg +13 -0
  522. package/svg/flags/cv.svg +13 -0
  523. package/svg/flags/cw.svg +14 -0
  524. package/svg/flags/cx.svg +15 -0
  525. package/svg/flags/cy.svg +6 -0
  526. package/svg/flags/cz.svg +12 -0
  527. package/svg/flags/de.svg +5 -0
  528. package/svg/flags/dj.svg +13 -0
  529. package/svg/flags/dk.svg +5 -0
  530. package/svg/flags/dm.svg +152 -0
  531. package/svg/flags/do.svg +6745 -0
  532. package/svg/flags/dz.svg +5 -0
  533. package/svg/flags/ec.svg +138 -0
  534. package/svg/flags/ee.svg +7 -0
  535. package/svg/flags/eg.svg +38 -0
  536. package/svg/flags/eh.svg +15 -0
  537. package/svg/flags/er.svg +8 -0
  538. package/svg/flags/es-ct.svg +4 -0
  539. package/svg/flags/es.svg +544 -0
  540. package/svg/flags/et.svg +14 -0
  541. package/svg/flags/eu.svg +28 -0
  542. package/svg/flags/fi.svg +5 -0
  543. package/svg/flags/fj.svg +120 -0
  544. package/svg/flags/fk.svg +89 -0
  545. package/svg/flags/fm.svg +11 -0
  546. package/svg/flags/fo.svg +12 -0
  547. package/svg/flags/fr.svg +7 -0
  548. package/svg/flags/ga.svg +7 -0
  549. package/svg/flags/gb-eng.svg +5 -0
  550. package/svg/flags/gb-nir.svg +131 -0
  551. package/svg/flags/gb-sct.svg +4 -0
  552. package/svg/flags/gb-wls.svg +9 -0
  553. package/svg/flags/gb.svg +15 -0
  554. package/svg/flags/gd.svg +27 -0
  555. package/svg/flags/ge.svg +6 -0
  556. package/svg/flags/gf.svg +5 -0
  557. package/svg/flags/gg.svg +9 -0
  558. package/svg/flags/gh.svg +6 -0
  559. package/svg/flags/gi.svg +32 -0
  560. package/svg/flags/gl.svg +4 -0
  561. package/svg/flags/gm.svg +14 -0
  562. package/svg/flags/gn.svg +7 -0
  563. package/svg/flags/gp.svg +7 -0
  564. package/svg/flags/gq.svg +23 -0
  565. package/svg/flags/gr.svg +22 -0
  566. package/svg/flags/gs.svg +201 -0
  567. package/svg/flags/gt.svg +204 -0
  568. package/svg/flags/gu.svg +39 -0
  569. package/svg/flags/gw.svg +13 -0
  570. package/svg/flags/gy.svg +9 -0
  571. package/svg/flags/hk.svg +30 -0
  572. package/svg/flags/hm.svg +9 -0
  573. package/svg/flags/hn.svg +18 -0
  574. package/svg/flags/hr.svg +58 -0
  575. package/svg/flags/ht.svg +116 -0
  576. package/svg/flags/hu.svg +7 -0
  577. package/svg/flags/id.svg +6 -0
  578. package/svg/flags/ie.svg +7 -0
  579. package/svg/flags/il.svg +14 -0
  580. package/svg/flags/im.svg +36 -0
  581. package/svg/flags/in.svg +25 -0
  582. package/svg/flags/io.svg +138 -0
  583. package/svg/flags/iq.svg +10 -0
  584. package/svg/flags/ir.svg +219 -0
  585. package/svg/flags/is.svg +12 -0
  586. package/svg/flags/it.svg +7 -0
  587. package/svg/flags/je.svg +31 -0
  588. package/svg/flags/jm.svg +8 -0
  589. package/svg/flags/jo.svg +16 -0
  590. package/svg/flags/jp.svg +11 -0
  591. package/svg/flags/ke.svg +23 -0
  592. package/svg/flags/kg.svg +15 -0
  593. package/svg/flags/kh.svg +61 -0
  594. package/svg/flags/ki.svg +36 -0
  595. package/svg/flags/km.svg +16 -0
  596. package/svg/flags/kn.svg +14 -0
  597. package/svg/flags/kp.svg +15 -0
  598. package/svg/flags/kr.svg +24 -0
  599. package/svg/flags/kw.svg +13 -0
  600. package/svg/flags/ky.svg +63 -0
  601. package/svg/flags/kz.svg +23 -0
  602. package/svg/flags/la.svg +12 -0
  603. package/svg/flags/lb.svg +15 -0
  604. package/svg/flags/lc.svg +8 -0
  605. package/svg/flags/li.svg +43 -0
  606. package/svg/flags/lk.svg +22 -0
  607. package/svg/flags/lr.svg +14 -0
  608. package/svg/flags/ls.svg +8 -0
  609. package/svg/flags/lt.svg +7 -0
  610. package/svg/flags/lu.svg +5 -0
  611. package/svg/flags/lv.svg +6 -0
  612. package/svg/flags/ly.svg +13 -0
  613. package/svg/flags/ma.svg +4 -0
  614. package/svg/flags/mc.svg +6 -0
  615. package/svg/flags/md.svg +70 -0
  616. package/svg/flags/me.svg +116 -0
  617. package/svg/flags/mf.svg +7 -0
  618. package/svg/flags/mg.svg +7 -0
  619. package/svg/flags/mh.svg +7 -0
  620. package/svg/flags/mk.svg +5 -0
  621. package/svg/flags/ml.svg +7 -0
  622. package/svg/flags/mm.svg +16 -0
  623. package/svg/flags/mn.svg +13 -0
  624. package/svg/flags/mo.svg +9 -0
  625. package/svg/flags/mp.svg +86 -0
  626. package/svg/flags/mq.svg +7 -0
  627. package/svg/flags/mr.svg +6 -0
  628. package/svg/flags/ms.svg +39 -0
  629. package/svg/flags/mt.svg +49 -0
  630. package/svg/flags/mu.svg +8 -0
  631. package/svg/flags/mv.svg +6 -0
  632. package/svg/flags/mw.svg +10 -0
  633. package/svg/flags/mx.svg +382 -0
  634. package/svg/flags/my.svg +15 -0
  635. package/svg/flags/mz.svg +21 -0
  636. package/svg/flags/na.svg +16 -0
  637. package/svg/flags/nc.svg +7 -0
  638. package/svg/flags/ne.svg +6 -0
  639. package/svg/flags/nf.svg +9 -0
  640. package/svg/flags/ng.svg +6 -0
  641. package/svg/flags/ni.svg +129 -0
  642. package/svg/flags/nl.svg +7 -0
  643. package/svg/flags/no.svg +7 -0
  644. package/svg/flags/np.svg +14 -0
  645. package/svg/flags/nr.svg +12 -0
  646. package/svg/flags/nu.svg +26 -0
  647. package/svg/flags/nz.svg +41 -0
  648. package/svg/flags/om.svg +115 -0
  649. package/svg/flags/pa.svg +14 -0
  650. package/svg/flags/pe.svg +244 -0
  651. package/svg/flags/pf.svg +19 -0
  652. package/svg/flags/pg.svg +9 -0
  653. package/svg/flags/ph.svg +13 -0
  654. package/svg/flags/pk.svg +15 -0
  655. package/svg/flags/pl.svg +6 -0
  656. package/svg/flags/pm.svg +7 -0
  657. package/svg/flags/pn.svg +62 -0
  658. package/svg/flags/pr.svg +13 -0
  659. package/svg/flags/ps.svg +15 -0
  660. package/svg/flags/pt.svg +57 -0
  661. package/svg/flags/pw.svg +11 -0
  662. package/svg/flags/py.svg +157 -0
  663. package/svg/flags/qa.svg +4 -0
  664. package/svg/flags/re.svg +7 -0
  665. package/svg/flags/ro.svg +7 -0
  666. package/svg/flags/rs.svg +292 -0
  667. package/svg/flags/ru.svg +7 -0
  668. package/svg/flags/rw.svg +13 -0
  669. package/svg/flags/sa.svg +26 -0
  670. package/svg/flags/sb.svg +13 -0
  671. package/svg/flags/sc.svg +14 -0
  672. package/svg/flags/sd.svg +13 -0
  673. package/svg/flags/se.svg +16 -0
  674. package/svg/flags/sg.svg +13 -0
  675. package/svg/flags/sh.svg +74 -0
  676. package/svg/flags/si.svg +18 -0
  677. package/svg/flags/sj.svg +7 -0
  678. package/svg/flags/sk.svg +9 -0
  679. package/svg/flags/sl.svg +7 -0
  680. package/svg/flags/sm.svg +91 -0
  681. package/svg/flags/sn.svg +8 -0
  682. package/svg/flags/so.svg +11 -0
  683. package/svg/flags/sr.svg +6 -0
  684. package/svg/flags/ss.svg +8 -0
  685. package/svg/flags/st.svg +16 -0
  686. package/svg/flags/sv.svg +606 -0
  687. package/svg/flags/sx.svg +56 -0
  688. package/svg/flags/sy.svg +6 -0
  689. package/svg/flags/sz.svg +45 -0
  690. package/svg/flags/tc.svg +67 -0
  691. package/svg/flags/td.svg +7 -0
  692. package/svg/flags/tf.svg +15 -0
  693. package/svg/flags/tg.svg +14 -0
  694. package/svg/flags/th.svg +7 -0
  695. package/svg/flags/tj.svg +22 -0
  696. package/svg/flags/tk.svg +5 -0
  697. package/svg/flags/tl.svg +13 -0
  698. package/svg/flags/tm.svg +206 -0
  699. package/svg/flags/tn.svg +13 -0
  700. package/svg/flags/to.svg +10 -0
  701. package/svg/flags/tr.svg +8 -0
  702. package/svg/flags/tt.svg +5 -0
  703. package/svg/flags/tv.svg +27 -0
  704. package/svg/flags/tw.svg +14 -0
  705. package/svg/flags/tz.svg +13 -0
  706. package/svg/flags/ua.svg +6 -0
  707. package/svg/flags/ug.svg +30 -0
  708. package/svg/flags/um.svg +15 -0
  709. package/svg/flags/un.svg +16 -0
  710. package/svg/flags/us.svg +10 -0
  711. package/svg/flags/uy.svg +28 -0
  712. package/svg/flags/uz.svg +30 -0
  713. package/svg/flags/va.svg +479 -0
  714. package/svg/flags/vc.svg +8 -0
  715. package/svg/flags/ve.svg +26 -0
  716. package/svg/flags/vg.svg +127 -0
  717. package/svg/flags/vi.svg +28 -0
  718. package/svg/flags/vn.svg +11 -0
  719. package/svg/flags/vu.svg +18 -0
  720. package/svg/flags/wf.svg +7 -0
  721. package/svg/flags/ws.svg +7 -0
  722. package/svg/flags/ye.svg +7 -0
  723. package/svg/flags/yt.svg +7 -0
  724. package/svg/flags/za.svg +17 -0
  725. package/svg/flags/zm.svg +27 -0
  726. package/svg/flags/zw.svg +21 -0
  727. package/svg/instagram.svg +1 -0
  728. package/test-utils/mock-response/product-status.js +44 -0
  729. package/utils/breakpoints.d.ts +23 -0
  730. package/utils/breakpoints.js +94 -0
  731. package/utils/breakpoints.js.map +1 -0
  732. package/utils/callAllEventHandlers.d.ts +5 -0
  733. package/utils/callAllEventHandlers.js +9 -0
  734. package/utils/callAllEventHandlers.js.map +1 -0
  735. package/utils/text.d.ts +1 -0
  736. package/utils/text.js +23 -0
  737. package/utils/text.js.map +1 -0
  738. package/utils/theme.d.ts +3 -0
  739. package/utils/theme.js +5 -0
  740. package/utils/theme.js.map +1 -0
  741. package/utils/useHoverIntent.d.ts +10 -0
  742. package/utils/useHoverIntent.js +78 -0
  743. package/utils/useHoverIntent.js.map +1 -0
  744. package/utils/usePropsOfType.d.ts +11 -0
  745. package/utils/usePropsOfType.js +18 -0
  746. package/utils/usePropsOfType.js.map +1 -0
  747. package/withFlightUI.d.ts +17 -0
  748. package/withFlightUI.js +20 -0
  749. package/withFlightUI.js.map +1 -0
@@ -0,0 +1,28 @@
1
+ import { Category } from '@jetshop/flyght-core/types';
2
+ import React from 'react';
3
+ export interface MenuContainerProps {
4
+ children: (args: MenuContainerRender) => React.ReactNode;
5
+ allowMultipleActive?: boolean;
6
+ initialActiveCategories?: Category[];
7
+ }
8
+ export interface MenuContainerState {
9
+ activeCategories: Category[];
10
+ }
11
+ export interface MenuContainerRender {
12
+ activeCategories: Category[];
13
+ setActiveCategory(cat: Category): void;
14
+ removeActiveCategory(cat: Category): void;
15
+ toggleActiveCategory(cat: Category): void;
16
+ isActiveCategory(cat: Category): boolean;
17
+ clearActiveCategories(): void;
18
+ }
19
+ declare class MenuContainer extends React.PureComponent<MenuContainerProps, MenuContainerState> {
20
+ readonly state: MenuContainerState;
21
+ setActiveCategory: (activeCategory: Category) => void;
22
+ removeActiveCategory: (category: Category) => void;
23
+ toggleActiveCategory: (category: Category) => void;
24
+ clearActiveCategories: () => void;
25
+ isActiveCategory: (category: Category) => boolean;
26
+ render(): React.ReactNode;
27
+ }
28
+ export default MenuContainer;
@@ -0,0 +1,46 @@
1
+ import React from 'react';
2
+ class MenuContainer extends React.PureComponent {
3
+ constructor() {
4
+ super(...arguments);
5
+ this.state = {
6
+ activeCategories: this.props.initialActiveCategories || []
7
+ };
8
+ this.setActiveCategory = (activeCategory) => {
9
+ var _a, _b;
10
+ const allowMultipleActive = (_b = (_a = this.props) === null || _a === void 0 ? void 0 : _a.allowMultipleActive) !== null && _b !== void 0 ? _b : false;
11
+ this.setState(({ activeCategories }) => ({
12
+ activeCategories: allowMultipleActive
13
+ ? [...activeCategories, activeCategory]
14
+ : [activeCategory]
15
+ }));
16
+ };
17
+ this.removeActiveCategory = (category) => {
18
+ this.setState(({ activeCategories }) => {
19
+ return {
20
+ activeCategories: activeCategories.filter((cat) => cat.id !== category.id)
21
+ };
22
+ });
23
+ };
24
+ this.toggleActiveCategory = (category) => {
25
+ this.state.activeCategories.find((cat) => cat.id === category.id)
26
+ ? this.removeActiveCategory(category)
27
+ : this.setActiveCategory(category);
28
+ };
29
+ this.clearActiveCategories = () => {
30
+ this.setState({ activeCategories: [] });
31
+ };
32
+ this.isActiveCategory = (category) => !!this.state.activeCategories.find((cat) => cat.id === category.id);
33
+ }
34
+ render() {
35
+ return this.props.children({
36
+ activeCategories: this.state.activeCategories,
37
+ setActiveCategory: this.setActiveCategory,
38
+ removeActiveCategory: this.removeActiveCategory,
39
+ toggleActiveCategory: this.toggleActiveCategory,
40
+ isActiveCategory: this.isActiveCategory,
41
+ clearActiveCategories: this.clearActiveCategories
42
+ });
43
+ }
44
+ }
45
+ export default MenuContainer;
46
+ //# sourceMappingURL=MenuContainer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuContainer.js","sourceRoot":"","sources":["MenuContainer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAqB1B,MAAM,aAAc,SAAQ,KAAK,CAAC,aAGjC;IAHD;;QAIkB,UAAK,GAAuB;YAC1C,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,uBAAuB,IAAI,EAAE;SAC3D,CAAC;QAEF,sBAAiB,GAAG,CAAC,cAAwB,EAAE,EAAE;;YAC/C,MAAM,mBAAmB,GAAG,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,mBAAmB,mCAAI,KAAK,CAAC;YAErE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC,CAAC;gBACvC,gBAAgB,EAAE,mBAAmB;oBACnC,CAAC,CAAC,CAAC,GAAG,gBAAgB,EAAE,cAAc,CAAC;oBACvC,CAAC,CAAC,CAAC,cAAc,CAAC;aACrB,CAAC,CAAC,CAAC;QACN,CAAC,CAAC;QAEF,yBAAoB,GAAG,CAAC,QAAkB,EAAE,EAAE;YAC5C,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE;gBACrC,OAAO;oBACL,gBAAgB,EAAE,gBAAgB,CAAC,MAAM,CACvC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAChC;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,yBAAoB,GAAG,CAAC,QAAkB,EAAE,EAAE;YAC5C,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC;gBAC/D,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC;gBACrC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC,CAAC;QAEF,0BAAqB,GAAG,GAAG,EAAE;YAC3B,IAAI,CAAC,QAAQ,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC;QAEF,qBAAgB,GAAG,CAAC,QAAkB,EAAE,EAAE,CACxC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC;IAYxE,CAAC;IAVC,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;YACzB,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB;YAC7C,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAC/C,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAC/C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;SAClD,CAAC,CAAC;IACL,CAAC;CACF;AAED,eAAe,aAAa,CAAC"}
@@ -0,0 +1,245 @@
1
+ import { render } from '@testing-library/react';
2
+ import React from 'react';
3
+ import MenuContainer from './MenuContainer';
4
+
5
+ const MOCK_CATEGORIES = [
6
+ {
7
+ id: 159,
8
+ name: 'News!',
9
+ level: 1,
10
+ parentId: null,
11
+ primaryRoute: {
12
+ path: '/news',
13
+ __typename: 'Route'
14
+ },
15
+ subcategories: [
16
+ {
17
+ id: 160,
18
+ name: 'All products',
19
+ level: 2,
20
+ parentId: 159,
21
+ primaryRoute: {
22
+ path: '/news/all-products',
23
+ __typename: 'Route'
24
+ },
25
+ subcategories: [],
26
+ __typename: 'Category'
27
+ },
28
+ {
29
+ id: 161,
30
+ name: 'Ladies',
31
+ level: 2,
32
+ parentId: 159,
33
+ primaryRoute: {
34
+ path: '/news/ladies',
35
+ __typename: 'Route'
36
+ },
37
+ subcategories: [],
38
+ __typename: 'Category'
39
+ },
40
+ {
41
+ id: 162,
42
+ name: 'Mens',
43
+ level: 2,
44
+ parentId: 159,
45
+ primaryRoute: {
46
+ path: '/news/mens',
47
+ __typename: 'Route'
48
+ },
49
+ subcategories: [],
50
+ __typename: 'Category'
51
+ },
52
+ {
53
+ id: 164,
54
+ name: 'Kids',
55
+ level: 2,
56
+ parentId: 159,
57
+ primaryRoute: {
58
+ path: '/news/kids',
59
+ __typename: 'Route'
60
+ },
61
+ subcategories: [
62
+ {
63
+ id: 302,
64
+ name: 'Tier 3',
65
+ level: 3,
66
+ parentId: 164,
67
+ primaryRoute: null,
68
+ __typename: 'Category'
69
+ }
70
+ ],
71
+ __typename: 'Category'
72
+ }
73
+ ],
74
+ __typename: 'Category'
75
+ },
76
+ {
77
+ id: 1159,
78
+ name: 'News!',
79
+ level: 1,
80
+ parentId: null,
81
+ primaryRoute: {
82
+ path: '/news',
83
+ __typename: 'Route'
84
+ },
85
+ subcategories: [
86
+ {
87
+ id: 1160,
88
+ name: 'All products',
89
+ level: 2,
90
+ parentId: 1159,
91
+ primaryRoute: {
92
+ path: '/news/all-products',
93
+ __typename: 'Route'
94
+ },
95
+ subcategories: [],
96
+ __typename: 'Category'
97
+ },
98
+ {
99
+ id: 1161,
100
+ name: 'Ladies',
101
+ level: 2,
102
+ parentId: 1159,
103
+ primaryRoute: {
104
+ path: '/news/ladies',
105
+ __typename: 'Route'
106
+ },
107
+ subcategories: [],
108
+ __typename: 'Category'
109
+ },
110
+ {
111
+ id: 1162,
112
+ name: 'Mens',
113
+ level: 2,
114
+ parentId: 1159,
115
+ primaryRoute: {
116
+ path: '/news/mens',
117
+ __typename: 'Route'
118
+ },
119
+ subcategories: [],
120
+ __typename: 'Category'
121
+ },
122
+ {
123
+ id: 1164,
124
+ name: 'Kids',
125
+ level: 2,
126
+ parentId: 1159,
127
+ primaryRoute: {
128
+ path: '/news/kids',
129
+ __typename: 'Route'
130
+ },
131
+ subcategories: [
132
+ {
133
+ id: 3102,
134
+ name: 'Tier 3',
135
+ level: 3,
136
+ parentId: 1164,
137
+ primaryRoute: null,
138
+ __typename: 'Category'
139
+ }
140
+ ],
141
+ __typename: 'Category'
142
+ }
143
+ ],
144
+ __typename: 'Category'
145
+ }
146
+ ];
147
+
148
+ describe('MenuContainer', () => {
149
+ it('renders child as fn with args', () => {
150
+ const { renderArg } = setup();
151
+ expect(renderArg).toMatchSnapshot();
152
+ });
153
+
154
+ it('renders isActiveCategory as true when given an active category', () => {
155
+ const { renderArg } = setup();
156
+ expect(renderArg.isActiveCategory(MOCK_CATEGORIES[0])).not.toBeTruthy();
157
+ renderArg.setActiveCategory(MOCK_CATEGORIES[0]);
158
+
159
+ expect(renderArg.isActiveCategory(MOCK_CATEGORIES[0])).toBeTruthy();
160
+ expect(renderArg.isActiveCategory(MOCK_CATEGORIES[1])).not.toBeTruthy();
161
+ });
162
+
163
+ it('can clear all active categories', () => {
164
+ const { renderArg, childrenSpy } = setup();
165
+
166
+ renderArg.setActiveCategory(MOCK_CATEGORIES[0]);
167
+ expect(childrenSpy).toHaveBeenCalledWith(
168
+ expect.objectContaining({
169
+ activeCategories: [MOCK_CATEGORIES[0]]
170
+ })
171
+ );
172
+ renderArg.clearActiveCategories();
173
+ expect(childrenSpy).toHaveBeenLastCalledWith(
174
+ expect.objectContaining({
175
+ activeCategories: []
176
+ })
177
+ );
178
+ });
179
+
180
+ it('persists other active navs when one is removed', () => {
181
+ const { renderArg, childrenSpy } = setup();
182
+ renderArg.setActiveCategory(MOCK_CATEGORIES[0]);
183
+ renderArg.setActiveCategory(MOCK_CATEGORIES[1]);
184
+ renderArg.removeActiveCategory(MOCK_CATEGORIES[0]);
185
+ expect(childrenSpy).toHaveBeenCalledWith(
186
+ expect.objectContaining({
187
+ activeCategories: [MOCK_CATEGORIES[1]]
188
+ })
189
+ );
190
+ });
191
+
192
+ it('allows only one active nav when allowMultipleActive prop is false', () => {
193
+ const { renderArg, childrenSpy } = setup({
194
+ allowMultipleActive: false
195
+ });
196
+ renderArg.setActiveCategory(MOCK_CATEGORIES[0]);
197
+ expect(childrenSpy).toHaveBeenCalledWith(
198
+ expect.objectContaining({ activeCategories: [MOCK_CATEGORIES[0]] })
199
+ );
200
+ renderArg.setActiveCategory(MOCK_CATEGORIES[1]);
201
+ expect(childrenSpy).toHaveBeenLastCalledWith(
202
+ expect.objectContaining({ activeCategories: [MOCK_CATEGORIES[1]] })
203
+ );
204
+ expect(childrenSpy).not.toHaveBeenLastCalledWith(
205
+ expect.objectContaining({ activeCategories: [MOCK_CATEGORIES[0]] })
206
+ );
207
+ });
208
+
209
+ it('can toggle the active category', () => {
210
+ const { renderArg, childrenSpy } = setup();
211
+
212
+ renderArg.toggleActiveCategory(MOCK_CATEGORIES[0]);
213
+
214
+ expect(childrenSpy).toHaveBeenCalledWith(
215
+ expect.objectContaining({
216
+ activeCategories: [MOCK_CATEGORIES[0]]
217
+ })
218
+ );
219
+
220
+ renderArg.toggleActiveCategory(MOCK_CATEGORIES[0]);
221
+
222
+ expect(childrenSpy).toHaveBeenCalledWith(
223
+ expect.objectContaining({
224
+ activeCategories: [MOCK_CATEGORIES[0]]
225
+ })
226
+ );
227
+ });
228
+ });
229
+
230
+ function setup(containerProps = {}, renderFn) {
231
+ let renderArg;
232
+
233
+ const childrenSpy = jest.fn(controllerArg => {
234
+ renderArg = controllerArg;
235
+
236
+ if (renderFn) return renderFn;
237
+ return <div />;
238
+ });
239
+
240
+ const utils = render(
241
+ <MenuContainer {...containerProps}>{childrenSpy}</MenuContainer>
242
+ );
243
+
244
+ return { ...utils, childrenSpy, renderArg };
245
+ }
@@ -0,0 +1,28 @@
1
+ import { Category } from '@jetshop/flyght-core/types';
2
+ import React from 'react';
3
+ import { MenuContainerRender } from './MenuContainer';
4
+ import { RouteChildrenProps } from 'react-router';
5
+ export interface RecursiveTreeProps {
6
+ /** The base category to render */
7
+ category: Category;
8
+ children(args: RecursiveTreeRender): React.ReactNode;
9
+ initialOpenMatchingCategories?: boolean;
10
+ }
11
+ export interface RecursiveTreeRender {
12
+ /** Execute to fetch the next 3 levels of subcategories */
13
+ fetchMore(): void;
14
+ /** Props passed through from MenuContainer UI component */
15
+ menuContainerProps: MenuContainerRender;
16
+ /** Whether or not the current category has subcategories */
17
+ hasSubcategories: boolean;
18
+ /** An array of subcategories at the current level */
19
+ subcategories: Category[];
20
+ /** The current category being rendered */
21
+ category: Category;
22
+ /** The current category level */
23
+ level: number;
24
+ /** Execute to recursively render subcategories in place */
25
+ renderSubnav: React.ReactNode[];
26
+ }
27
+ declare const _default: React.ComponentClass<Pick<RecursiveTreeProps & RouteChildrenProps<{}, unknown>, keyof RecursiveTreeProps>, any> & import("react-router").WithRouterStatics<({ children, category, initialOpenMatchingCategories, ...rest }: RecursiveTreeProps & RouteChildrenProps<{}, unknown>) => React.JSX.Element>;
28
+ export default _default;
@@ -0,0 +1,91 @@
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, { useCallback, useState, useEffect, useMemo } from 'react';
13
+ import MenuContainer from './MenuContainer';
14
+ import getMoreSubCategoriesQuery from './GetMoreSubcategoriesQuery.gql';
15
+ import { matchPath, withRouter } from 'react-router';
16
+ import { useApolloClient } from '@apollo/client';
17
+ const RecursiveTree = (_a) => {
18
+ var { children, category, initialOpenMatchingCategories } = _a, rest = __rest(_a, ["children", "category", "initialOpenMatchingCategories"]);
19
+ const [hasFetchedMore, setHasFetchedMore] = useState(false);
20
+ const [subcategories, setSubcategories] = useState(category.subcategories || []);
21
+ const client = useApolloClient();
22
+ const { location } = rest;
23
+ useEffect(() => {
24
+ if (category.subcategories && category.subcategories !== subcategories) {
25
+ setSubcategories(category.subcategories);
26
+ }
27
+ }, [category, subcategories]);
28
+ const fetchMoreSubcategories = useCallback(() => {
29
+ // Every second tier, fetch ahead 2 more tiers
30
+ if (category.hasSubcategories &&
31
+ category.level % 2 !== 0 &&
32
+ !hasFetchedMore) {
33
+ setHasFetchedMore(true);
34
+ return client
35
+ .query({
36
+ query: getMoreSubCategoriesQuery,
37
+ variables: { id: category.id }
38
+ })
39
+ .then((queryResult) => {
40
+ const { data: { category: { subcategories: fetchedCategories } } } = queryResult;
41
+ setSubcategories(fetchedCategories);
42
+ });
43
+ }
44
+ }, [
45
+ category.hasSubcategories,
46
+ category.id,
47
+ category.level,
48
+ client,
49
+ hasFetchedMore
50
+ ]);
51
+ const renderRecursive = useCallback((props) => {
52
+ if (!category.hasSubcategories || !props.isActiveCategory(category))
53
+ return null;
54
+ return subcategories.map((subcat) => (React.createElement(RecursiveTree, Object.assign({ key: subcat.id, category: subcat, initialOpenMatchingCategories: initialOpenMatchingCategories }, rest), children)));
55
+ }, [category, subcategories, initialOpenMatchingCategories, rest, children]);
56
+ const initialActiveCategories = useMemo(() => {
57
+ if (initialOpenMatchingCategories) {
58
+ const params = {
59
+ path: category.primaryRoute.path,
60
+ strict: false,
61
+ exact: false
62
+ };
63
+ const match = matchPath(location.pathname, params);
64
+ if (match) {
65
+ return [category];
66
+ }
67
+ }
68
+ return [];
69
+ }, [location, initialOpenMatchingCategories, category]);
70
+ useEffect(() => {
71
+ if (initialActiveCategories && !hasFetchedMore && !category.subcategories) {
72
+ fetchMoreSubcategories();
73
+ }
74
+ }, [
75
+ initialActiveCategories,
76
+ hasFetchedMore,
77
+ category,
78
+ fetchMoreSubcategories
79
+ ]);
80
+ return (React.createElement(MenuContainer, { allowMultipleActive: true, initialActiveCategories: initialActiveCategories }, (menuProps) => children({
81
+ fetchMore: fetchMoreSubcategories,
82
+ menuContainerProps: menuProps,
83
+ subcategories,
84
+ hasSubcategories: category.hasSubcategories,
85
+ category,
86
+ renderSubnav: renderRecursive(menuProps),
87
+ level: category.level
88
+ })));
89
+ };
90
+ export default withRouter(RecursiveTree);
91
+ //# sourceMappingURL=RecursiveTree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RecursiveTree.js","sourceRoot":"","sources":["RecursiveTree.tsx"],"names":[],"mappings":"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"}