@jetshop/ui 5.17.0-alpha.f7018eb5 → 5.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Accordion/Accordion.d.ts +33 -0
- package/Accordion/Accordion.js +59 -0
- package/Accordion/Accordion.js.map +1 -0
- package/Auth/FormFields/CountriesInput.d.ts +16 -0
- package/Auth/FormFields/CountriesInput.js +28 -0
- package/Auth/FormFields/CountriesInput.js.map +1 -0
- package/Auth/LogInBehavior.d.ts +22 -0
- package/Auth/LogInBehavior.js +24 -0
- package/Auth/LogInBehavior.js.map +1 -0
- package/Auth/LogInFormProvider.d.ts +7 -0
- package/Auth/LogInFormProvider.js +71 -0
- package/Auth/LogInFormProvider.js.map +1 -0
- package/Auth/LogOut.d.ts +10 -0
- package/Auth/LogOut.js +24 -0
- package/Auth/LogOut.js.map +1 -0
- package/Auth/logInValidator.d.ts +8 -0
- package/Auth/logInValidator.js +16 -0
- package/Auth/logInValidator.js.map +1 -0
- package/Breadcrumbs/Breadcrumbs.d.ts +14 -0
- package/Breadcrumbs/Breadcrumbs.js +84 -0
- package/Breadcrumbs/Breadcrumbs.js.map +1 -0
- package/Breadcrumbs/getParentsOrCanonicalRoute.d.ts +3 -0
- package/Breadcrumbs/getParentsOrCanonicalRoute.js +14 -0
- package/Breadcrumbs/getParentsOrCanonicalRoute.js.map +1 -0
- package/Breadcrumbs/index.d.ts +1 -0
- package/Breadcrumbs/index.js +2 -0
- package/Breadcrumbs/index.js.map +1 -0
- package/Breakpoints.d.ts +12 -0
- package/Breakpoints.js +36 -0
- package/Breakpoints.js.map +1 -0
- package/Button/Button.d.ts +14 -0
- package/Button/Button.js +60 -0
- package/Button/Button.js.map +1 -0
- package/Button/SecondaryButton.d.ts +3 -0
- package/Button/SecondaryButton.js +9 -0
- package/Button/SecondaryButton.js.map +1 -0
- package/Button/TrendButton.d.ts +3 -0
- package/Button/TrendButton.js +8 -0
- package/Button/TrendButton.js.map +1 -0
- package/Button/index.d.ts +4 -0
- package/Button/index.js +5 -0
- package/Button/index.js.map +1 -0
- package/CategoryLink.d.ts +9 -0
- package/CategoryLink.js +43 -0
- package/CategoryLink.js.map +1 -0
- package/ChannelSelector/ChannelListItem.d.ts +10 -0
- package/ChannelSelector/ChannelListItem.js +51 -0
- package/ChannelSelector/ChannelListItem.js.map +1 -0
- package/ChannelSelector/ChannelSelector.d.ts +63 -0
- package/ChannelSelector/ChannelSelector.js +80 -0
- package/ChannelSelector/ChannelSelector.js.map +1 -0
- package/ChannelSelector/ChannelSelectorButtons.d.ts +3 -0
- package/ChannelSelector/ChannelSelectorButtons.js +20 -0
- package/ChannelSelector/ChannelSelectorButtons.js.map +1 -0
- package/ChannelSelector/Channels.d.ts +17 -0
- package/ChannelSelector/Channels.js +12 -0
- package/ChannelSelector/Channels.js.map +1 -0
- package/ChannelSelector/LargeSelector.d.ts +3 -0
- package/ChannelSelector/LargeSelector.js +67 -0
- package/ChannelSelector/LargeSelector.js.map +1 -0
- package/ChannelSelector/MiniSelector.d.ts +4 -0
- package/ChannelSelector/MiniSelector.js +58 -0
- package/ChannelSelector/MiniSelector.js.map +1 -0
- package/ChannelSelector/Region.d.ts +28 -0
- package/ChannelSelector/Region.js +21 -0
- package/ChannelSelector/Region.js.map +1 -0
- package/ChannelSelector/groupBy.d.ts +7 -0
- package/ChannelSelector/groupBy.js +16 -0
- package/ChannelSelector/groupBy.js.map +1 -0
- package/Checkbox/Checkbox.d.ts +10 -0
- package/Checkbox/Checkbox.js +69 -0
- package/Checkbox/Checkbox.js.map +1 -0
- package/Checkbox/CheckboxGroup.d.ts +23 -0
- package/Checkbox/CheckboxGroup.js +22 -0
- package/Checkbox/CheckboxGroup.js.map +1 -0
- package/Checkbox/index.d.ts +2 -0
- package/Checkbox/index.js +3 -0
- package/Checkbox/index.js.map +1 -0
- package/CloudflareImage/BaseImage.d.ts +41 -0
- package/CloudflareImage/BaseImage.js +192 -0
- package/CloudflareImage/BaseImage.js.map +1 -0
- package/CloudflareImage/Fallback.d.ts +5 -0
- package/CloudflareImage/Fallback.js +4 -0
- package/CloudflareImage/Fallback.js.map +1 -0
- package/CloudflareImage/FlightImage.d.ts +73 -0
- package/CloudflareImage/FlightImage.js +59 -0
- package/CloudflareImage/FlightImage.js.map +1 -0
- package/CloudflareImage/FlightImage.test.js +277 -0
- package/CloudflareImage/Image.d.ts +2 -0
- package/CloudflareImage/Image.js +3 -0
- package/CloudflareImage/Image.js.map +1 -0
- package/CloudflareImage/index.d.ts +1 -0
- package/CloudflareImage/index.js +2 -0
- package/CloudflareImage/index.js.map +1 -0
- package/CloudflareImage/useConstructImage.d.ts +46 -0
- package/CloudflareImage/useConstructImage.js +99 -0
- package/CloudflareImage/useConstructImage.js.map +1 -0
- package/CloudflareImage/utils/aspectRatioToFraction.d.ts +2 -0
- package/CloudflareImage/utils/aspectRatioToFraction.js +11 -0
- package/CloudflareImage/utils/aspectRatioToFraction.js.map +1 -0
- package/CloudflareImage/utils/getFullUrl.d.ts +6 -0
- package/CloudflareImage/utils/getFullUrl.js +18 -0
- package/CloudflareImage/utils/getFullUrl.js.map +1 -0
- package/CloudflareImage/utils/getImageWidth.d.ts +1 -0
- package/CloudflareImage/utils/getImageWidth.js +12 -0
- package/CloudflareImage/utils/getImageWidth.js.map +1 -0
- package/CloudflareImage/utils/getImageWidths.d.ts +2 -0
- package/CloudflareImage/utils/getImageWidths.js +21 -0
- package/CloudflareImage/utils/getImageWidths.js.map +1 -0
- package/CloudflareImage/utils/getLQIP.d.ts +8 -0
- package/CloudflareImage/utils/getLQIP.js +28 -0
- package/CloudflareImage/utils/getLQIP.js.map +1 -0
- package/CloudflareImage/utils/getLargestSize.d.ts +7 -0
- package/CloudflareImage/utils/getLargestSize.js +17 -0
- package/CloudflareImage/utils/getLargestSize.js.map +1 -0
- package/CloudflareImage/utils/getSizeForBreakpoint.d.ts +2 -0
- package/CloudflareImage/utils/getSizeForBreakpoint.js +16 -0
- package/CloudflareImage/utils/getSizeForBreakpoint.js.map +1 -0
- package/CloudflareImage/utils/getSizesMap.d.ts +2 -0
- package/CloudflareImage/utils/getSizesMap.js +35 -0
- package/CloudflareImage/utils/getSizesMap.js.map +1 -0
- package/CloudflareImage/utils/getSmallestSize.d.ts +2 -0
- package/CloudflareImage/utils/getSmallestSize.js +12 -0
- package/CloudflareImage/utils/getSmallestSize.js.map +1 -0
- package/CloudflareImage/utils/getSrcSetFromWidths.d.ts +10 -0
- package/CloudflareImage/utils/getSrcSetFromWidths.js +10 -0
- package/CloudflareImage/utils/getSrcSetFromWidths.js.map +1 -0
- package/CloudflareImage/utils/getSrcWithParams.d.ts +3 -0
- package/CloudflareImage/utils/getSrcWithParams.js +61 -0
- package/CloudflareImage/utils/getSrcWithParams.js.map +1 -0
- package/CloudflareImage/utils/paddingForAspectRatio.d.ts +1 -0
- package/CloudflareImage/utils/paddingForAspectRatio.js +6 -0
- package/CloudflareImage/utils/paddingForAspectRatio.js.map +1 -0
- package/CloudflareImage/utils/remToPx.d.ts +1 -0
- package/CloudflareImage/utils/remToPx.js +2 -0
- package/CloudflareImage/utils/remToPx.js.map +1 -0
- package/CloudflareImage/utils/sizeToNumber.d.ts +2 -0
- package/CloudflareImage/utils/sizeToNumber.js +27 -0
- package/CloudflareImage/utils/sizeToNumber.js.map +1 -0
- package/ContentPageLink.d.ts +9 -0
- package/ContentPageLink.js +37 -0
- package/ContentPageLink.js.map +1 -0
- package/ContentRenderer.d.ts +9 -0
- package/ContentRenderer.js +36 -0
- package/ContentRenderer.js.map +1 -0
- package/DropdownMenu/Button.d.ts +7 -0
- package/DropdownMenu/Button.js +32 -0
- package/DropdownMenu/Button.js.map +1 -0
- package/DropdownMenu/DropdownMenu.d.ts +21 -0
- package/DropdownMenu/DropdownMenu.js +72 -0
- package/DropdownMenu/DropdownMenu.js.map +1 -0
- package/DropdownMenu/Item.d.ts +13 -0
- package/DropdownMenu/Item.js +48 -0
- package/DropdownMenu/Item.js.map +1 -0
- package/DropdownMenu/Items.d.ts +16 -0
- package/DropdownMenu/Items.js +53 -0
- package/DropdownMenu/Items.js.map +1 -0
- package/DropdownMenu/index.d.ts +4 -0
- package/DropdownMenu/index.js +5 -0
- package/DropdownMenu/index.js.map +1 -0
- package/ErrorBoundary/Generic.d.ts +17 -0
- package/ErrorBoundary/Generic.js +69 -0
- package/ErrorBoundary/Generic.js.map +1 -0
- package/ErrorBoundary/PassThrough.d.ts +3 -0
- package/ErrorBoundary/PassThrough.js +7 -0
- package/ErrorBoundary/PassThrough.js.map +1 -0
- package/Gallery/Gallery.d.ts +39 -0
- package/Gallery/Gallery.js +122 -0
- package/Gallery/Gallery.js.map +1 -0
- package/Gallery/constructGallery.d.ts +15 -0
- package/Gallery/constructGallery.js +41 -0
- package/Gallery/constructGallery.js.map +1 -0
- package/Image/B2BImage.d.ts +50 -0
- package/Image/B2BImage.js +53 -0
- package/Image/B2BImage.js.map +1 -0
- package/Image/BaseImage.d.ts +40 -0
- package/Image/BaseImage.js +192 -0
- package/Image/BaseImage.js.map +1 -0
- package/Image/DispatchFlightImage.d.ts +7 -0
- package/Image/DispatchFlightImage.js +16 -0
- package/Image/DispatchFlightImage.js.map +1 -0
- package/Image/Fallback.d.ts +5 -0
- package/Image/Fallback.js +4 -0
- package/Image/Fallback.js.map +1 -0
- package/Image/FlightImage.d.ts +52 -0
- package/Image/FlightImage.js +58 -0
- package/Image/FlightImage.js.map +1 -0
- package/Image/Image.d.ts +2 -0
- package/Image/Image.js +3 -0
- package/Image/Image.js.map +1 -0
- package/Image/index.d.ts +2 -0
- package/Image/index.js +3 -0
- package/Image/index.js.map +1 -0
- package/Image/useConstructImage.d.ts +46 -0
- package/Image/useConstructImage.js +99 -0
- package/Image/useConstructImage.js.map +1 -0
- package/Image/utils/aspectRatioToFraction.d.ts +2 -0
- package/Image/utils/aspectRatioToFraction.js +11 -0
- package/Image/utils/aspectRatioToFraction.js.map +1 -0
- package/Image/utils/getFullUrl.d.ts +6 -0
- package/Image/utils/getFullUrl.js +18 -0
- package/Image/utils/getFullUrl.js.map +1 -0
- package/Image/utils/getImageWidth.d.ts +1 -0
- package/Image/utils/getImageWidth.js +12 -0
- package/Image/utils/getImageWidth.js.map +1 -0
- package/Image/utils/getImageWidths.d.ts +2 -0
- package/Image/utils/getImageWidths.js +14 -0
- package/Image/utils/getImageWidths.js.map +1 -0
- package/Image/utils/getLQIP.d.ts +8 -0
- package/Image/utils/getLQIP.js +20 -0
- package/Image/utils/getLQIP.js.map +1 -0
- package/Image/utils/getLargestSize.d.ts +7 -0
- package/Image/utils/getLargestSize.js +17 -0
- package/Image/utils/getLargestSize.js.map +1 -0
- package/Image/utils/getSizeForBreakpoint.d.ts +2 -0
- package/Image/utils/getSizeForBreakpoint.js +16 -0
- package/Image/utils/getSizeForBreakpoint.js.map +1 -0
- package/Image/utils/getSizesMap.d.ts +2 -0
- package/Image/utils/getSizesMap.js +22 -0
- package/Image/utils/getSizesMap.js.map +1 -0
- package/Image/utils/getSmallestSize.d.ts +2 -0
- package/Image/utils/getSmallestSize.js +12 -0
- package/Image/utils/getSmallestSize.js.map +1 -0
- package/Image/utils/getSrcSetFromWidths.d.ts +10 -0
- package/Image/utils/getSrcSetFromWidths.js +9 -0
- package/Image/utils/getSrcSetFromWidths.js.map +1 -0
- package/Image/utils/getSrcWithParams.d.ts +3 -0
- package/Image/utils/getSrcWithParams.js +29 -0
- package/Image/utils/getSrcWithParams.js.map +1 -0
- package/Image/utils/paddingForAspectRatio.d.ts +1 -0
- package/Image/utils/paddingForAspectRatio.js +6 -0
- package/Image/utils/paddingForAspectRatio.js.map +1 -0
- package/Image/utils/remToPx.d.ts +1 -0
- package/Image/utils/remToPx.js +2 -0
- package/Image/utils/remToPx.js.map +1 -0
- package/Image/utils/sizeToNumber.d.ts +2 -0
- package/Image/utils/sizeToNumber.js +27 -0
- package/Image/utils/sizeToNumber.js.map +1 -0
- package/Input/Input.d.ts +6 -0
- package/Input/Input.js +45 -0
- package/Input/Input.js.map +1 -0
- package/Input/index.d.ts +3 -0
- package/Input/index.js +4 -0
- package/Input/index.js.map +1 -0
- package/JetshopText.d.ts +3 -0
- package/JetshopText.js +13 -0
- package/JetshopText.js.map +1 -0
- package/Loading/LoadingBar.d.ts +8 -0
- package/Loading/LoadingBar.js +58 -0
- package/Loading/LoadingBar.js.map +1 -0
- package/Loading/LoadingLine.d.ts +31 -0
- package/Loading/LoadingLine.js +26 -0
- package/Loading/LoadingLine.js.map +1 -0
- package/Loading/NetworkStatusNotifier.d.ts +2 -0
- package/Loading/NetworkStatusNotifier.js +4 -0
- package/Loading/NetworkStatusNotifier.js.map +1 -0
- package/Menu/MenuContainer.d.ts +28 -0
- package/Menu/MenuContainer.js +46 -0
- package/Menu/MenuContainer.js.map +1 -0
- package/Menu/RecursiveTree.d.ts +28 -0
- package/Menu/RecursiveTree.js +91 -0
- package/Menu/RecursiveTree.js.map +1 -0
- package/Modal/Drawer/Drawer.d.ts +11 -0
- package/Modal/Drawer/Drawer.js +31 -0
- package/Modal/Drawer/Drawer.js.map +1 -0
- package/Modal/Drawer/DrawerTarget.d.ts +6 -0
- package/Modal/Drawer/DrawerTarget.js +12 -0
- package/Modal/Drawer/DrawerTarget.js.map +1 -0
- package/Modal/Drawer/DrawerTrigger.d.ts +11 -0
- package/Modal/Drawer/DrawerTrigger.js +16 -0
- package/Modal/Drawer/DrawerTrigger.js.map +1 -0
- package/Modal/Drawer/index.d.ts +3 -0
- package/Modal/Drawer/index.js +4 -0
- package/Modal/Drawer/index.js.map +1 -0
- package/Modal/Flyout/FlyoutTarget.d.ts +10 -0
- package/Modal/Flyout/FlyoutTarget.js +15 -0
- package/Modal/Flyout/FlyoutTarget.js.map +1 -0
- package/Modal/Flyout/FlyoutTrigger.d.ts +15 -0
- package/Modal/Flyout/FlyoutTrigger.js +18 -0
- package/Modal/Flyout/FlyoutTrigger.js.map +1 -0
- package/Modal/Flyout/index.d.ts +2 -0
- package/Modal/Flyout/index.js +3 -0
- package/Modal/Flyout/index.js.map +1 -0
- package/Modal/ModalContext.d.ts +26 -0
- package/Modal/ModalContext.js +9 -0
- package/Modal/ModalContext.js.map +1 -0
- package/Modal/ModalProvider.d.ts +5 -0
- package/Modal/ModalProvider.js +83 -0
- package/Modal/ModalProvider.js.map +1 -0
- package/Modal/ModalRoot.d.ts +3 -0
- package/Modal/ModalRoot.js +44 -0
- package/Modal/ModalRoot.js.map +1 -0
- package/Modal/ModalTrigger.d.ts +9 -0
- package/Modal/ModalTrigger.js +9 -0
- package/Modal/ModalTrigger.js.map +1 -0
- package/Pagination/Pagination.d.ts +7 -0
- package/Pagination/Pagination.js +23 -0
- package/Pagination/Pagination.js.map +1 -0
- package/Pagination/PaginationBehaviour.d.ts +52 -0
- package/Pagination/PaginationBehaviour.js +68 -0
- package/Pagination/PaginationBehaviour.js.map +1 -0
- package/Pagination/index.d.ts +2 -0
- package/Pagination/index.js +3 -0
- package/Pagination/index.js.map +1 -0
- package/Pagination/usePagination.d.ts +15 -0
- package/Pagination/usePagination.js +46 -0
- package/Pagination/usePagination.js.map +1 -0
- package/PreOrderDateSelector/PreOrderDateSelector.d.ts +20 -0
- package/PreOrderDateSelector/PreOrderDateSelector.js +74 -0
- package/PreOrderDateSelector/PreOrderDateSelector.js.map +1 -0
- package/PreOrderDateSelector/index.d.ts +2 -0
- package/PreOrderDateSelector/index.js +3 -0
- package/PreOrderDateSelector/index.js.map +1 -0
- package/Price/Currency.d.ts +9 -0
- package/Price/Currency.js +11 -0
- package/Price/Currency.js.map +1 -0
- package/Price/Price.d.ts +31 -0
- package/Price/Price.js +44 -0
- package/Price/Price.js.map +1 -0
- package/Price/index.d.ts +1 -0
- package/Price/index.js +2 -0
- package/Price/index.js.map +1 -0
- package/ProductLink.d.ts +21 -0
- package/ProductLink.js +82 -0
- package/ProductLink.js.map +1 -0
- package/ProductList/Badges.d.ts +6 -0
- package/ProductList/Badges.js +56 -0
- package/ProductList/Badges.js.map +1 -0
- package/ProductList/GridProduct.d.ts +24 -0
- package/ProductList/GridProduct.js +58 -0
- package/ProductList/GridProduct.js.map +1 -0
- package/ProductList/ProductGrid.d.ts +16 -0
- package/ProductList/ProductGrid.js +30 -0
- package/ProductList/ProductGrid.js.map +1 -0
- package/ProductList/ProductImage.d.ts +12 -0
- package/ProductList/ProductImage.js +21 -0
- package/ProductList/ProductImage.js.map +1 -0
- package/ProductSpecifications/ProductSpecifications.d.ts +8 -0
- package/ProductSpecifications/ProductSpecifications.js +78 -0
- package/ProductSpecifications/ProductSpecifications.js.map +1 -0
- package/ScrollRestorationHandler/ScrollRestorationHandler.d.ts +8 -0
- package/ScrollRestorationHandler/ScrollRestorationHandler.js +17 -0
- package/ScrollRestorationHandler/ScrollRestorationHandler.js.map +1 -0
- package/ScrollRestorationHandler/index.d.ts +1 -0
- package/ScrollRestorationHandler/index.js +2 -0
- package/ScrollRestorationHandler/index.js.map +1 -0
- package/ScrollRestorationHandler/isInIgnoredRouteTypes.d.ts +6 -0
- package/ScrollRestorationHandler/isInIgnoredRouteTypes.js +8 -0
- package/ScrollRestorationHandler/isInIgnoredRouteTypes.js.map +1 -0
- package/ScrollRestorationHandler/useScrollRestore.d.ts +7 -0
- package/ScrollRestorationHandler/useScrollRestore.js +20 -0
- package/ScrollRestorationHandler/useScrollRestore.js.map +1 -0
- package/Search/SearchAutoCompleteContainer.d.ts +45 -0
- package/Search/SearchAutoCompleteContainer.js +172 -0
- package/Search/SearchAutoCompleteContainer.js.map +1 -0
- package/Search/SearchField.d.ts +15 -0
- package/Search/SearchField.js +97 -0
- package/Search/SearchField.js.map +1 -0
- package/Search/SearchPage/PageOf.d.ts +5 -0
- package/Search/SearchPage/PageOf.js +7 -0
- package/Search/SearchPage/PageOf.js.map +1 -0
- package/Search/SearchPage/SearchMeta.d.ts +16 -0
- package/Search/SearchPage/SearchMeta.js +20 -0
- package/Search/SearchPage/SearchMeta.js.map +1 -0
- package/Search/SearchPage/SearchPageBehaviour.d.ts +19 -0
- package/Search/SearchPage/SearchPageBehaviour.js +67 -0
- package/Search/SearchPage/SearchPageBehaviour.js.map +1 -0
- package/Search/SuggestedTerm.d.ts +16 -0
- package/Search/SuggestedTerm.js +35 -0
- package/Search/SuggestedTerm.js.map +1 -0
- package/Search/index.d.ts +1 -0
- package/Search/index.js +2 -0
- package/Search/index.js.map +1 -0
- package/Select/Components.d.ts +28 -0
- package/Select/Components.js +91 -0
- package/Select/Components.js.map +1 -0
- package/Select/SelectComponents/Quantity.d.ts +5 -0
- package/Select/SelectComponents/Quantity.js +8 -0
- package/Select/SelectComponents/Quantity.js.map +1 -0
- package/Select/index.d.ts +5 -0
- package/Select/index.js +2 -0
- package/Select/index.js.map +1 -0
- package/SortOrder/SortOrder.d.ts +16 -0
- package/SortOrder/SortOrder.js +32 -0
- package/SortOrder/SortOrder.js.map +1 -0
- package/SortOrder/SortOrderDropdown.d.ts +9 -0
- package/SortOrder/SortOrderDropdown.js +25 -0
- package/SortOrder/SortOrderDropdown.js.map +1 -0
- package/SortOrder/SortOrderList.d.ts +7 -0
- package/SortOrder/SortOrderList.js +17 -0
- package/SortOrder/SortOrderList.js.map +1 -0
- package/StartPageRenderer/StartPageRenderer.d.ts +17 -0
- package/StartPageRenderer/StartPageRenderer.js +52 -0
- package/StartPageRenderer/StartPageRenderer.js.map +1 -0
- package/StartPageRenderer/index.d.ts +1 -0
- package/StartPageRenderer/index.js +2 -0
- package/StartPageRenderer/index.js.map +1 -0
- package/Stock/StockStatusContainer.d.ts +16 -0
- package/Stock/StockStatusContainer.js +40 -0
- package/Stock/StockStatusContainer.js.map +1 -0
- package/Text/Text.d.ts +11 -0
- package/Text/Text.js +22 -0
- package/Text/Text.js.map +1 -0
- package/Text/index.d.ts +3 -0
- package/Text/index.js +4 -0
- package/Text/index.js.map +1 -0
- package/Theme/createTheme.d.ts +16 -0
- package/Theme/createTheme.js +5 -0
- package/Theme/createTheme.js.map +1 -0
- package/Theme/cssReset.d.ts +1 -0
- package/Theme/cssReset.js +160 -0
- package/Theme/cssReset.js.map +1 -0
- package/Theme/normalizeCss.d.ts +1 -0
- package/Theme/normalizeCss.js +357 -0
- package/Theme/normalizeCss.js.map +1 -0
- package/Theme/sanitizeCss.d.ts +1 -0
- package/Theme/sanitizeCss.js +572 -0
- package/Theme/sanitizeCss.js.map +1 -0
- package/WindowGrid/WindowGrid.d.ts +11 -0
- package/WindowGrid/WindowGrid.js +58 -0
- package/WindowGrid/WindowGrid.js.map +1 -0
- package/WindowGrid/index.d.ts +1 -0
- package/WindowGrid/index.js +2 -0
- package/WindowGrid/index.js.map +1 -0
- package/WindowGrid/useResizeObserver.d.ts +3 -0
- package/WindowGrid/useResizeObserver.js +14 -0
- package/WindowGrid/useResizeObserver.js.map +1 -0
- package/WindowGrid/useScrollWithWindow.d.ts +12 -0
- package/WindowGrid/useScrollWithWindow.js +39 -0
- package/WindowGrid/useScrollWithWindow.js.map +1 -0
- package/fuzzySearch/fuzzySearch.d.ts +8 -0
- package/fuzzySearch/fuzzySearch.js +43 -0
- package/fuzzySearch/fuzzySearch.js.map +1 -0
- package/fuzzySearch/index.d.ts +1 -0
- package/fuzzySearch/index.js +2 -0
- package/fuzzySearch/index.js.map +1 -0
- package/hooks/index.d.ts +2 -0
- package/hooks/index.js +3 -0
- package/hooks/index.js.map +1 -0
- package/hooks/useOnClickOutside.d.ts +6 -0
- package/hooks/useOnClickOutside.js +17 -0
- package/hooks/useOnClickOutside.js.map +1 -0
- package/hooks/useOnEsc.d.ts +4 -0
- package/hooks/useOnEsc.js +17 -0
- package/hooks/useOnEsc.js.map +1 -0
- package/package.json +5 -3
- package/utils/breakpoints.d.ts +23 -0
- package/utils/breakpoints.js +94 -0
- package/utils/breakpoints.js.map +1 -0
- package/utils/callAllEventHandlers.d.ts +5 -0
- package/utils/callAllEventHandlers.js +9 -0
- package/utils/callAllEventHandlers.js.map +1 -0
- package/utils/text.d.ts +1 -0
- package/utils/text.js +23 -0
- package/utils/text.js.map +1 -0
- package/utils/theme.d.ts +3 -0
- package/utils/theme.js +5 -0
- package/utils/theme.js.map +1 -0
- package/utils/useHoverIntent.d.ts +10 -0
- package/utils/useHoverIntent.js +78 -0
- package/utils/useHoverIntent.js.map +1 -0
- package/utils/usePropsOfType.d.ts +11 -0
- package/utils/usePropsOfType.js +18 -0
- package/utils/usePropsOfType.js.map +1 -0
- package/withFlightUI.d.ts +17 -0
- package/withFlightUI.js +20 -0
- package/withFlightUI.js.map +1 -0
|
@@ -0,0 +1,97 @@
|
|
|
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 throwErrorInDev from '@jetshop/core/helpers/throwErrorInDev';
|
|
13
|
+
import t from '@jetshop/intl';
|
|
14
|
+
import { FlyoutTarget, FlyoutTrigger } from '@jetshop/ui/Modal/Flyout';
|
|
15
|
+
import SuggestedTerm from '@jetshop/ui/Search/SuggestedTerm';
|
|
16
|
+
import * as React from 'react';
|
|
17
|
+
import { styled } from 'linaria/react';
|
|
18
|
+
import { css } from 'linaria';
|
|
19
|
+
import SearchAutoCompleteContainer from './SearchAutoCompleteContainer';
|
|
20
|
+
const Wrapper = styled('div') `
|
|
21
|
+
display: flex;
|
|
22
|
+
margin: 0 auto;
|
|
23
|
+
justify-content: center;
|
|
24
|
+
align-items: center;
|
|
25
|
+
`;
|
|
26
|
+
const SearchFieldWrapper = styled('div') `
|
|
27
|
+
width: 12rem;
|
|
28
|
+
position: relative;
|
|
29
|
+
font-size: 16px;
|
|
30
|
+
font-weight: normal;
|
|
31
|
+
`;
|
|
32
|
+
const Flyout = styled('div') `
|
|
33
|
+
position: absolute;
|
|
34
|
+
background: white;
|
|
35
|
+
z-index: 999;
|
|
36
|
+
border: 1px solid #e8e8e8;
|
|
37
|
+
width: 100%;
|
|
38
|
+
top: 2rem;
|
|
39
|
+
left: 0;
|
|
40
|
+
`;
|
|
41
|
+
const CancelButton = styled('button') `
|
|
42
|
+
font-size: 0.875rem;
|
|
43
|
+
border: 0;
|
|
44
|
+
background: transparent;
|
|
45
|
+
color: #878787;
|
|
46
|
+
margin-left: 1rem;
|
|
47
|
+
`;
|
|
48
|
+
const resultStyles = css `
|
|
49
|
+
ul + h2 {
|
|
50
|
+
margin-top: 1em;
|
|
51
|
+
}
|
|
52
|
+
`;
|
|
53
|
+
const SearchResults = ({ term, result, loading, onClick }) => {
|
|
54
|
+
const products = result === null || result === void 0 ? void 0 : result.products;
|
|
55
|
+
const categories = result === null || result === void 0 ? void 0 : result.categories;
|
|
56
|
+
if (!loading &&
|
|
57
|
+
(products === null || products === void 0 ? void 0 : products.result.length) === 0 &&
|
|
58
|
+
(categories === null || categories === void 0 ? void 0 : categories.result.length) === 0) {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
return (React.createElement("div", { className: resultStyles },
|
|
62
|
+
(products === null || products === void 0 ? void 0 : products.result.length) > 0 && (React.createElement(React.Fragment, null,
|
|
63
|
+
React.createElement("h2", null, t('Products')),
|
|
64
|
+
React.createElement("ul", { style: loading ? { opacity: 0.5 } : null }, products.result.map(item => (React.createElement(SuggestedTerm, { term: term, onClick: onClick, key: item.id, item: item })))))),
|
|
65
|
+
(categories === null || categories === void 0 ? void 0 : categories.result.length) > 0 && (React.createElement(React.Fragment, null,
|
|
66
|
+
React.createElement("h2", null, t('Categories')),
|
|
67
|
+
React.createElement("ul", { style: loading ? { opacity: 0.5 } : null }, categories.result.map(item => (React.createElement(SuggestedTerm, { term: term, onClick: onClick, key: item.id, item: item }))))))));
|
|
68
|
+
};
|
|
69
|
+
const SearchField = (_a) => {
|
|
70
|
+
var { initialValue, className, placeholder = '', autocompleteQuery } = _a, rest = __rest(_a, ["initialValue", "className", "placeholder", "autocompleteQuery"]);
|
|
71
|
+
throwErrorInDev(!autocompleteQuery, `You forgot to pass 'autocompleteQuery' to SearchField`);
|
|
72
|
+
return (React.createElement(SearchAutoCompleteContainer, Object.assign({ autocompleteQuery: autocompleteQuery, initialValue: initialValue, focusOnLoad: true }, rest), searchField => (React.createElement(Wrapper, { className: className, "data-flight-searchfield": "" },
|
|
73
|
+
React.createElement(SearchFieldWrapper, null,
|
|
74
|
+
React.createElement(FlyoutTrigger, { showCover: false, id: "searchFlyout" }, ({ showTarget, hideTarget }) => (React.createElement(React.Fragment, null,
|
|
75
|
+
React.createElement("input", Object.assign({ placeholder: placeholder }, searchField.getInputProps({
|
|
76
|
+
onFocus: showTarget
|
|
77
|
+
}), { "data-flight-search-autocomplete-field": "" })),
|
|
78
|
+
React.createElement(CancelButton, Object.assign({}, searchField.getCancelProps({ onClick: hideTarget }), { "data-flight-searchfield-cancel": true }), t('Cancel'))))),
|
|
79
|
+
React.createElement(FlyoutTarget, { id: "searchFlyout" }, flyout => {
|
|
80
|
+
var _a, _b, _c, _d;
|
|
81
|
+
const hasResults = ((_b = (_a = searchField.result) === null || _a === void 0 ? void 0 : _a.products) === null || _b === void 0 ? void 0 : _b.result.length) > 0 ||
|
|
82
|
+
((_d = (_c = searchField.result) === null || _c === void 0 ? void 0 : _c.categories) === null || _d === void 0 ? void 0 : _d.result.length) > 0;
|
|
83
|
+
const { loading, isDirty, isOpen } = searchField;
|
|
84
|
+
const showFlyout = isDirty && !loading && hasResults && isOpen && flyout.isOpen;
|
|
85
|
+
if (showFlyout) {
|
|
86
|
+
return (React.createElement(Flyout, { "data-flight-searchfield-flyout": true },
|
|
87
|
+
React.createElement("div", Object.assign({}, searchField.getFlyoutProps()), searchField.isDirty && (React.createElement(React.Fragment, null,
|
|
88
|
+
React.createElement(SearchResults, { term: searchField.term, result: searchField.result, onClick: flyout.hideTarget, loading: searchField.loading }))))));
|
|
89
|
+
}
|
|
90
|
+
return null;
|
|
91
|
+
}))))));
|
|
92
|
+
};
|
|
93
|
+
SearchField.Flyout = Flyout;
|
|
94
|
+
SearchField.Wrapper = SearchFieldWrapper;
|
|
95
|
+
SearchField.Cancel = CancelButton;
|
|
96
|
+
export default SearchField;
|
|
97
|
+
//# sourceMappingURL=SearchField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchField.js","sourceRoot":"","sources":["SearchField.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PageOf.js","sourceRoot":"","sources":["PageOf.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAmC,EAAE,EAAE,CAAC,CAC1E;;IACQ,IAAI;;IAAM,KAAK,CACjB,CACP,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface ISearchMetaProps {
|
|
3
|
+
total: number;
|
|
4
|
+
page: number;
|
|
5
|
+
pages: number;
|
|
6
|
+
className?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare const SearchMetaWrapper: import("linaria/lib/StyledMeta").StyledMeta & React.FunctionComponent<React.ClassAttributes<HTMLElement> & React.HTMLAttributes<HTMLElement> & {
|
|
9
|
+
as?: React.ElementType<any>;
|
|
10
|
+
}>;
|
|
11
|
+
declare class SearchMeta extends React.PureComponent<ISearchMetaProps & {
|
|
12
|
+
className?: string;
|
|
13
|
+
}, any> {
|
|
14
|
+
render(): JSX.Element;
|
|
15
|
+
}
|
|
16
|
+
export default SearchMeta;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { styled } from 'linaria/react';
|
|
3
|
+
import { PageOf } from './PageOf';
|
|
4
|
+
export const SearchMetaWrapper = styled('aside') `
|
|
5
|
+
display: flex;
|
|
6
|
+
justify-content: space-between;
|
|
7
|
+
padding: 1rem 0;
|
|
8
|
+
`;
|
|
9
|
+
class SearchMeta extends React.PureComponent {
|
|
10
|
+
render() {
|
|
11
|
+
const { total, page, pages, className = '' } = this.props;
|
|
12
|
+
return (React.createElement(SearchMetaWrapper, { className: className },
|
|
13
|
+
React.createElement("header", null,
|
|
14
|
+
total,
|
|
15
|
+
" items"),
|
|
16
|
+
React.createElement(PageOf, { page: page, pages: pages })));
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export default SearchMeta;
|
|
20
|
+
//# sourceMappingURL=SearchMeta.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchMeta.js","sourceRoot":"","sources":["SearchMeta.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AASlC,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;;;;CAI/C,CAAC;AAEF,MAAM,UAAW,SAAQ,KAAK,CAAC,aAG9B;IACQ,MAAM;QACX,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAE1D,OAAO,CACL,oBAAC,iBAAiB,IAAC,SAAS,EAAE,SAAS;YACrC;gBAAS,KAAK;yBAAgB;YAC9B,oBAAC,MAAM,IAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,GAAI,CAClB,CACrB,CAAC;IACJ,CAAC;CACF;AAED,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ApolloError } from 'apollo-client';
|
|
2
|
+
import { DocumentNode } from 'graphql';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
export interface SearchPageRenderProps {
|
|
5
|
+
result: {};
|
|
6
|
+
filters: {};
|
|
7
|
+
total: number;
|
|
8
|
+
term: string;
|
|
9
|
+
loading: boolean;
|
|
10
|
+
error: ApolloError;
|
|
11
|
+
}
|
|
12
|
+
export interface SearchPageProps {
|
|
13
|
+
children(props: SearchPageRenderProps): React.ReactElement;
|
|
14
|
+
/** Query to perform the search */
|
|
15
|
+
searchQuery: DocumentNode;
|
|
16
|
+
location: Location;
|
|
17
|
+
}
|
|
18
|
+
declare const SearchPageBehaviour: React.FC<SearchPageProps>;
|
|
19
|
+
export default SearchPageBehaviour;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import ActiveFiltersQuery from '@jetshop/core/components/DynamicRoute/ActiveFiltersQuery.gql';
|
|
2
|
+
import PaginationContext from '@jetshop/core/components/Pagination/PaginationContext';
|
|
3
|
+
import PaginationProvider, { usePagination } from '@jetshop/core/components/Pagination/PaginationProvider';
|
|
4
|
+
import throwErrorInDev from '@jetshop/core/helpers/throwErrorInDev';
|
|
5
|
+
import { useFilters } from '@jetshop/core/hooks/Filters/useFilters';
|
|
6
|
+
import qs from 'qs';
|
|
7
|
+
import * as React from 'react';
|
|
8
|
+
import { Query, useQuery } from 'react-apollo';
|
|
9
|
+
const SearchPageBehaviour = props => {
|
|
10
|
+
var _a;
|
|
11
|
+
const pagination = usePagination();
|
|
12
|
+
const { location, searchQuery, children } = props;
|
|
13
|
+
const { offset, perPage } = React.useContext(PaginationContext);
|
|
14
|
+
const activeSearchTerm = React.useRef();
|
|
15
|
+
// Track the previous offset. If it has changed, we're paginating. If it
|
|
16
|
+
// hasn't, we're just applying filters.
|
|
17
|
+
const activeOffset = React.useRef(0);
|
|
18
|
+
const { clearAllFilters } = useFilters();
|
|
19
|
+
throwErrorInDev(!searchQuery, `You did not pass 'searchQuery' to SearchPageBehaviour`);
|
|
20
|
+
const activeFilterQuery = useQuery(ActiveFiltersQuery);
|
|
21
|
+
const searchTerm = React.useMemo(() => qs.parse(location.search, { ignoreQueryPrefix: true }).term, [location]);
|
|
22
|
+
React.useEffect(() => {
|
|
23
|
+
if (activeSearchTerm.current && activeSearchTerm.current !== searchTerm) {
|
|
24
|
+
clearAllFilters();
|
|
25
|
+
}
|
|
26
|
+
activeSearchTerm.current = searchTerm;
|
|
27
|
+
}, [clearAllFilters, searchTerm]);
|
|
28
|
+
React.useEffect(() => {
|
|
29
|
+
activeOffset.current = offset;
|
|
30
|
+
}, [offset]);
|
|
31
|
+
if (pagination === undefined) {
|
|
32
|
+
return (React.createElement(PaginationProvider, null,
|
|
33
|
+
React.createElement(SearchPageBehaviour, Object.assign({}, props))));
|
|
34
|
+
}
|
|
35
|
+
// Ideally this component would use the data from usePagination, but due to
|
|
36
|
+
// how the shouldComponentUpdate method in FilterContainer works it prevents
|
|
37
|
+
// rendering if we don't do it this way.
|
|
38
|
+
return searchTerm ? (React.createElement(Query, { variables: {
|
|
39
|
+
term: searchTerm,
|
|
40
|
+
first: perPage,
|
|
41
|
+
limit: perPage,
|
|
42
|
+
filters: ((_a = activeFilterQuery.data) === null || _a === void 0 ? void 0 : _a.activeFilters) || null,
|
|
43
|
+
offset: activeOffset.current === offset ? 0 : offset,
|
|
44
|
+
client: !__IN_SERVER__
|
|
45
|
+
}, query: searchQuery, fetchPolicy: "cache-and-network" }, (result) => {
|
|
46
|
+
var _a, _b, _c, _d, _e, _f;
|
|
47
|
+
const totalResults = (_c = (_b = (_a = result === null || result === void 0 ? void 0 : result.data) === null || _a === void 0 ? void 0 : _a.search) === null || _b === void 0 ? void 0 : _b.products) === null || _c === void 0 ? void 0 : _c.totalResults;
|
|
48
|
+
const filters = (_f = (_e = (_d = result === null || result === void 0 ? void 0 : result.data) === null || _d === void 0 ? void 0 : _d.search) === null || _e === void 0 ? void 0 : _e.products) === null || _f === void 0 ? void 0 : _f.filters;
|
|
49
|
+
return (React.createElement(React.Fragment, null, children({
|
|
50
|
+
result,
|
|
51
|
+
total: totalResults,
|
|
52
|
+
filters,
|
|
53
|
+
term: searchTerm,
|
|
54
|
+
loading: result.loading,
|
|
55
|
+
error: result.error
|
|
56
|
+
})));
|
|
57
|
+
})) : (children({
|
|
58
|
+
term: searchTerm,
|
|
59
|
+
loading: false,
|
|
60
|
+
error: null,
|
|
61
|
+
total: 0,
|
|
62
|
+
result: {},
|
|
63
|
+
filters: {}
|
|
64
|
+
}));
|
|
65
|
+
};
|
|
66
|
+
export default SearchPageBehaviour;
|
|
67
|
+
//# sourceMappingURL=SearchPageBehaviour.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchPageBehaviour.js","sourceRoot":"","sources":["SearchPageBehaviour.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { Product, Category } from '@jetshop/core/types';
|
|
3
|
+
export interface SuggestedTermProps {
|
|
4
|
+
className?: string;
|
|
5
|
+
term: string;
|
|
6
|
+
/** Function to call when a search term is clicked */
|
|
7
|
+
onClick?: () => void;
|
|
8
|
+
}
|
|
9
|
+
interface SuggestedProduct extends SuggestedTermProps {
|
|
10
|
+
item: Product;
|
|
11
|
+
}
|
|
12
|
+
interface SuggestedCategory extends SuggestedTermProps {
|
|
13
|
+
item: Category;
|
|
14
|
+
}
|
|
15
|
+
declare const SuggestedTerm: (props: SuggestedProduct | SuggestedCategory) => JSX.Element;
|
|
16
|
+
export default SuggestedTerm;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import ProductLink from '@jetshop/ui/ProductLink';
|
|
3
|
+
import CategoryLink from '@jetshop/ui/CategoryLink';
|
|
4
|
+
const SuggestedTerm = (props) => {
|
|
5
|
+
const { term = '', className = '', onClick = () => null } = props;
|
|
6
|
+
if (isProduct(props)) {
|
|
7
|
+
const { item } = props;
|
|
8
|
+
return (React.createElement("li", { className: className, onClick: onClick, "data-flight-search-autocomplete-result": "product" }, item.primaryRoute ? (React.createElement(ProductLink, { product: item }, getHighlightedText(item.name, term))) : (item.name)));
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
const { item } = props;
|
|
12
|
+
const displayText = item.primaryRoute.breadcrumbs.join(' > ');
|
|
13
|
+
return (React.createElement("li", { className: className, onClick: onClick, "data-flight-search-autocomplete-result": "category" }, item.primaryRoute ? (React.createElement(CategoryLink, { category: item }, getHighlightedText(displayText, term))) : (item.name)));
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
function isProduct(props) {
|
|
17
|
+
return props.item.__typename === 'Product';
|
|
18
|
+
}
|
|
19
|
+
function getHighlightedText(text, highlight) {
|
|
20
|
+
// Split on higlight term and include term into parts, ignore case
|
|
21
|
+
const parts = text.split(new RegExp(`(${escapeRegExp(highlight).split(' ').join('|')})`, 'gi'));
|
|
22
|
+
const highlightArray = highlight.split(' ');
|
|
23
|
+
const toHighlightLower = highlightArray.map((word) => word.toLowerCase());
|
|
24
|
+
return parts.reduce((prev, curr, index) => {
|
|
25
|
+
return [
|
|
26
|
+
...prev,
|
|
27
|
+
toHighlightLower.includes(curr.toLowerCase()) ? (React.createElement("strong", { style: { fontWeight: 600 }, key: index }, curr)) : (curr)
|
|
28
|
+
];
|
|
29
|
+
}, []);
|
|
30
|
+
}
|
|
31
|
+
function escapeRegExp(string) {
|
|
32
|
+
return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
33
|
+
}
|
|
34
|
+
export default SuggestedTerm;
|
|
35
|
+
//# sourceMappingURL=SuggestedTerm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SuggestedTerm.js","sourceRoot":"","sources":["SuggestedTerm.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,WAAW,MAAM,yBAAyB,CAAC;AAElD,OAAO,YAAY,MAAM,0BAA0B,CAAC;AAiBpD,MAAM,aAAa,GAAG,CAAC,KAA2C,EAAE,EAAE;IACpE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE,EAAE,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC;IAElE,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE;QACpB,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QACvB,OAAO,CACL,4BACE,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,4CACuB,SAAS,IAE/C,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CACnB,oBAAC,WAAW,IAAC,OAAO,EAAE,IAAI,IACvB,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CACxB,CACf,CAAC,CAAC,CAAC,CACF,IAAI,CAAC,IAAI,CACV,CACE,CACN,CAAC;KACH;SAAM;QACL,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QAEvB,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE9D,OAAO,CACL,4BACE,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,4CACuB,UAAU,IAEhD,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CACnB,oBAAC,YAAY,IAAC,QAAQ,EAAE,IAAI,IACzB,kBAAkB,CAAC,WAAW,EAAE,IAAI,CAAC,CACzB,CAChB,CAAC,CAAC,CAAC,CACF,IAAI,CAAC,IAAI,CACV,CACE,CACN,CAAC;KACH;AACH,CAAC,CAAC;AAEF,SAAS,SAAS,CAChB,KAA2C;IAE3C,OAAQ,KAA0B,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC;AACnE,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY,EAAE,SAAiB;IACzD,kEAAkE;IAClE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CACtB,IAAI,MAAM,CAAC,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CACtE,CAAC;IACF,MAAM,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAM,gBAAgB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAE1E,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QACxC,OAAO;YACL,GAAG,IAAI;YACP,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAC9C,gCAAQ,KAAK,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,IAC3C,IAAI,CACE,CACV,CAAC,CAAC,CAAC,CACF,IAAI,CACL;SACF,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AAED,SAAS,YAAY,CAAC,MAAc;IAClC,OAAO,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACvD,CAAC;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as SearchField } from './SearchField';
|
package/Search/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare const SelectContainer: import("linaria/lib/StyledMeta").StyledMeta & React.FunctionComponent<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
|
|
3
|
+
as?: React.ElementType<any>;
|
|
4
|
+
}>;
|
|
5
|
+
export declare const ListItem: import("linaria/lib/StyledMeta").StyledMeta & React.FunctionComponent<React.ClassAttributes<HTMLButtonElement> & React.ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
6
|
+
as?: React.ElementType<any>;
|
|
7
|
+
}>;
|
|
8
|
+
export declare const SelectableListItem: import("linaria/lib/StyledMeta").StyledMeta & React.FunctionComponent<React.ClassAttributes<HTMLButtonElement> & React.ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
9
|
+
as?: React.ElementType<any>;
|
|
10
|
+
}>;
|
|
11
|
+
export declare const ListTitle: import("linaria/lib/StyledMeta").StyledMeta & React.FunctionComponent<React.ClassAttributes<HTMLHeadingElement> & React.HTMLAttributes<HTMLHeadingElement> & {
|
|
12
|
+
as?: React.ElementType<any>;
|
|
13
|
+
}>;
|
|
14
|
+
export declare const SelectItem: import("linaria/lib/StyledMeta").StyledMeta & React.FunctionComponent<React.ClassAttributes<HTMLSpanElement> & React.HTMLAttributes<HTMLSpanElement> & {
|
|
15
|
+
as?: React.ElementType<any>;
|
|
16
|
+
}>;
|
|
17
|
+
export declare const SelectItemWrapper: import("linaria/lib/StyledMeta").StyledMeta & React.FunctionComponent<React.ClassAttributes<HTMLSpanElement> & React.HTMLAttributes<HTMLSpanElement> & {
|
|
18
|
+
as?: React.ElementType<any>;
|
|
19
|
+
}>;
|
|
20
|
+
export interface DropdownWrapperProps {
|
|
21
|
+
isOpen: boolean;
|
|
22
|
+
}
|
|
23
|
+
export declare const Wrapper: import("linaria/lib/StyledMeta").StyledMeta & React.FunctionComponent<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
|
|
24
|
+
as?: React.ElementType<any>;
|
|
25
|
+
}>;
|
|
26
|
+
export declare const DropdownWrapper: React.SFC<DropdownWrapperProps>;
|
|
27
|
+
export declare const StyledCarrot: import("linaria/lib/StyledMeta").StyledMeta & React.SFC<React.SVGProps<SVGSVGElement>>;
|
|
28
|
+
export declare const StyledCheck: import("linaria/lib/StyledMeta").StyledMeta & React.SFC<React.SVGProps<SVGSVGElement>>;
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { styled } from 'linaria/react';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { ReactComponent as Carrot } from '../svg/Carrot.svg';
|
|
4
|
+
import { ReactComponent as Check } from '../svg/Check.svg';
|
|
5
|
+
export const SelectContainer = styled('div') `
|
|
6
|
+
width: 100%;
|
|
7
|
+
position: relative;
|
|
8
|
+
background-color: #ffffff;
|
|
9
|
+
margin-bottom: 16px;
|
|
10
|
+
`;
|
|
11
|
+
export const ListItem = styled('button') `
|
|
12
|
+
display: flex;
|
|
13
|
+
justify-content: space-between;
|
|
14
|
+
width: 100%;
|
|
15
|
+
height: 54px;
|
|
16
|
+
display: flex;
|
|
17
|
+
align-items: center;
|
|
18
|
+
background-color: #ffffff;
|
|
19
|
+
border: 1px solid #dedede;
|
|
20
|
+
position: relative;
|
|
21
|
+
cursor: pointer;
|
|
22
|
+
&.disabled {
|
|
23
|
+
color: #c2c2c2;
|
|
24
|
+
cursor: not-allowed;
|
|
25
|
+
:hover {
|
|
26
|
+
background-color: #ffffff;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
`;
|
|
30
|
+
export const SelectableListItem = styled(ListItem) `
|
|
31
|
+
cursor: pointer;
|
|
32
|
+
border-width: 1px 0 0 0;
|
|
33
|
+
:last-of-type {
|
|
34
|
+
border-bottom: none;
|
|
35
|
+
}
|
|
36
|
+
:hover {
|
|
37
|
+
background-color: #f2f2f2;
|
|
38
|
+
}
|
|
39
|
+
&.selected,
|
|
40
|
+
&.highlighted {
|
|
41
|
+
background-color: #f2f2f2;
|
|
42
|
+
}
|
|
43
|
+
&.disabled {
|
|
44
|
+
color: #c2c2c2;
|
|
45
|
+
cursor: not-allowed;
|
|
46
|
+
:hover {
|
|
47
|
+
background-color: #ffffff;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
`;
|
|
51
|
+
export const ListTitle = styled('h4') ``;
|
|
52
|
+
export const SelectItem = styled('span') `
|
|
53
|
+
display: block;
|
|
54
|
+
`;
|
|
55
|
+
export const SelectItemWrapper = styled('span') `
|
|
56
|
+
display: flex;
|
|
57
|
+
flex-direction: row;
|
|
58
|
+
`;
|
|
59
|
+
// TODO: animate height to auto
|
|
60
|
+
export const Wrapper = styled('div') `
|
|
61
|
+
position: absolute;
|
|
62
|
+
height: 0px;
|
|
63
|
+
z-index: 40;
|
|
64
|
+
width: 100%;
|
|
65
|
+
overflow: hidden;
|
|
66
|
+
&.open {
|
|
67
|
+
height: auto;
|
|
68
|
+
}
|
|
69
|
+
`;
|
|
70
|
+
const InnerWrapper = styled('div') `
|
|
71
|
+
border: 1px solid #dedede;
|
|
72
|
+
border-top: 0;
|
|
73
|
+
overflow-y: auto;
|
|
74
|
+
max-height: 470px;
|
|
75
|
+
@media (--below.sm) {
|
|
76
|
+
max-height: 100vh;
|
|
77
|
+
}
|
|
78
|
+
> button:first-child {
|
|
79
|
+
border-top: 0;
|
|
80
|
+
}
|
|
81
|
+
`;
|
|
82
|
+
export const DropdownWrapper = ({ isOpen, children }) => (React.createElement(Wrapper, { className: isOpen ? 'open' : 'closed' },
|
|
83
|
+
React.createElement(InnerWrapper, null, children)));
|
|
84
|
+
export const StyledCarrot = styled(Carrot) `
|
|
85
|
+
transition: transform 200ms;
|
|
86
|
+
&.open {
|
|
87
|
+
transform: rotate(-180deg);
|
|
88
|
+
}
|
|
89
|
+
`;
|
|
90
|
+
export const StyledCheck = styled(Check) ``;
|
|
91
|
+
//# sourceMappingURL=Components.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Components.js","sourceRoot":"","sources":["Components.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,IAAI,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,cAAc,IAAI,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE3D,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;;;;;CAK3C,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;;;;;;;;;;;;;;;;;;CAkBvC,CAAC;AACF,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;;;;;;;;;;;;;;;;;;;;CAoBjD,CAAC;AACF,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA,EAAE,CAAC;AACxC,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;;CAEvC,CAAC;AACF,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;;;CAG9C,CAAC;AAMF,+BAA+B;AAC/B,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;;;;;;;;;CASnC,CAAC;AACF,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;;;;;;;;;;;CAWjC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAoC,CAAC,EAC/D,MAAM,EACN,QAAQ,EACT,EAAE,EAAE,CAAC,CACJ,oBAAC,OAAO,IAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;IAC5C,oBAAC,YAAY,QAAE,QAAQ,CAAgB,CAC/B,CACX,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;;;;;CAKzC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA,EAAE,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
declare const Quantity: import("linaria/lib/StyledMeta").StyledMeta & import("react").FunctionComponent<import("react").ClassAttributes<HTMLParagraphElement> & import("react").HTMLAttributes<HTMLParagraphElement> & {
|
|
3
|
+
as?: import("react").ElementType<any>;
|
|
4
|
+
}>;
|
|
5
|
+
export default Quantity;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Quantity.js","sourceRoot":"","sources":["Quantity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;;;;CAI3B,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
package/Select/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ISortOrderContext } from '@jetshop/core/components/SortOrder/SortOrderContext';
|
|
2
|
+
import { ProductSortOrder } from '@jetshop/core/types';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
export interface MappedSortOrder {
|
|
5
|
+
direction: 'ASCENDING' | 'DESCENDING';
|
|
6
|
+
value: string;
|
|
7
|
+
text: string;
|
|
8
|
+
}
|
|
9
|
+
export interface SortOrderProps {
|
|
10
|
+
sortOrders: ProductSortOrder[];
|
|
11
|
+
children(sortOrderContext: ISortOrderContext & {
|
|
12
|
+
mappedSortOrder: MappedSortOrder[];
|
|
13
|
+
}): React.ReactNode;
|
|
14
|
+
}
|
|
15
|
+
declare const _default: React.ComponentClass<SortOrderProps, any>;
|
|
16
|
+
export default _default;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { sortTypes, sortValues } from '@jetshop/core/components/SortOrder/SortOrderContainer';
|
|
2
|
+
import SortOrderContext from '@jetshop/core/components/SortOrder/SortOrderContext';
|
|
3
|
+
import ErrorBoundary from '@jetshop/ui/ErrorBoundary/Generic';
|
|
4
|
+
import PassThrough from '@jetshop/ui/ErrorBoundary/PassThrough';
|
|
5
|
+
import * as React from 'react';
|
|
6
|
+
import { withRouter } from 'react-router-dom';
|
|
7
|
+
class SortOrder extends React.PureComponent {
|
|
8
|
+
render() {
|
|
9
|
+
// Mutate sort order obj to include asc/desc & appropriate text
|
|
10
|
+
// eg { text: 'Price low to high', direction: 'ASCENDING' }
|
|
11
|
+
const mappedSortOrder = this.props.sortOrders.reduce((sorts, curr) => {
|
|
12
|
+
const mutatedSorts = sortValues[sortTypes[curr.value]].map(type => {
|
|
13
|
+
return Object.assign(Object.assign({}, curr), { text: (React.createElement("div", null,
|
|
14
|
+
curr['text'],
|
|
15
|
+
" ",
|
|
16
|
+
type.text)), direction: type.direction });
|
|
17
|
+
});
|
|
18
|
+
return [...sorts, ...mutatedSorts];
|
|
19
|
+
}, []);
|
|
20
|
+
return (React.createElement(ErrorBoundary, { component: PassThrough },
|
|
21
|
+
React.createElement(SortOrderContext.Consumer, null, ({ changeSortOrder, direction, sortOrder }) => {
|
|
22
|
+
return this.props.children({
|
|
23
|
+
changeSortOrder,
|
|
24
|
+
direction,
|
|
25
|
+
sortOrder,
|
|
26
|
+
mappedSortOrder
|
|
27
|
+
});
|
|
28
|
+
})));
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export default withRouter(SortOrder);
|
|
32
|
+
//# sourceMappingURL=SortOrder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SortOrder.js","sourceRoot":"","sources":["SortOrder.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,UAAU,EACX,MAAM,uDAAuD,CAAC;AAC/D,OAAO,gBAEN,MAAM,qDAAqD,CAAC;AAE7D,OAAO,aAAa,MAAM,mCAAmC,CAAC;AAC9D,OAAO,WAAW,MAAM,uCAAuC,CAAC;AAChE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAuB,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAiBnE,MAAM,SAAU,SAAQ,KAAK,CAAC,aAG7B;IACQ,MAAM;QACX,+DAA+D;QAC/D,2DAA2D;QAC3D,MAAM,eAAe,GAAsB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CACrE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACd,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAChE,uCACK,IAAI,KACP,IAAI,EAAE,CACJ;wBACG,IAAI,CAAC,MAAM,CAAC;;wBAAG,IAAI,CAAC,IAAI,CACrB,CACP,EACD,SAAS,EAAE,IAAI,CAAC,SAAS,IACzB;YACJ,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,KAAK,EAAE,GAAG,YAAY,CAAC,CAAC;QACrC,CAAC,EACD,EAAE,CACH,CAAC;QAEF,OAAO,CACL,oBAAC,aAAa,IAAC,SAAS,EAAE,WAAW;YACnC,oBAAC,gBAAgB,CAAC,QAAQ,QACvB,CAAC,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE;gBAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;oBACzB,eAAe;oBACf,SAAS;oBACT,SAAS;oBACT,eAAe;iBAChB,CAAC,CAAC;YACL,CAAC,CACyB,CACd,CACjB,CAAC;IACJ,CAAC;CACF;AAED,eAAe,UAAU,CAAC,SAAS,CAAmC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { ProductSortOrder } from '@jetshop/core/types';
|
|
3
|
+
export interface SortOrderDropdownProps {
|
|
4
|
+
sortOrders: ProductSortOrder[];
|
|
5
|
+
}
|
|
6
|
+
declare function SortOrderDropdown({ sortOrders }: {
|
|
7
|
+
sortOrders: ProductSortOrder[];
|
|
8
|
+
}): JSX.Element;
|
|
9
|
+
export default SortOrderDropdown;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import t from '@jetshop/intl';
|
|
2
|
+
import { DropdownMenu, DropdownMenuButton, DropdownMenuItem, DropdownMenuItems } from '@jetshop/ui/DropdownMenu';
|
|
3
|
+
import { StyledCheck } from '@jetshop/ui/Select/Components';
|
|
4
|
+
import SortOrder from '@jetshop/ui/SortOrder/SortOrder';
|
|
5
|
+
import * as React from 'react';
|
|
6
|
+
import logWarningInDev from '../../core/helpers/logWarningInDev';
|
|
7
|
+
// TODO: replace this with a useSortOrder hook (as per useListFilter etc)
|
|
8
|
+
function SortOrderDropdown({ sortOrders }) {
|
|
9
|
+
logWarningInDev(true, 'This implementation will be removed in flight 6.0. See the example in trend on how to migrate.');
|
|
10
|
+
return (React.createElement(SortOrder, { sortOrders: sortOrders }, props => (React.createElement(SortMenu, { changeSortOrder: props.changeSortOrder, direction: props.direction, sortOrder: props.sortOrder, mappedSortOrder: props.mappedSortOrder }))));
|
|
11
|
+
}
|
|
12
|
+
// TODO: Move this to the shop
|
|
13
|
+
function SortMenu(props) {
|
|
14
|
+
const { mappedSortOrder, changeSortOrder, sortOrder, direction } = props;
|
|
15
|
+
const activeItem = mappedSortOrder.find(item => item.direction === direction && item.value === sortOrder);
|
|
16
|
+
return (React.createElement(DropdownMenu, null,
|
|
17
|
+
React.createElement(DropdownMenuButton, null, activeItem ? activeItem.text : t('Sort By')),
|
|
18
|
+
React.createElement(DropdownMenuItems, null, mappedSortOrder.map(sortItem => {
|
|
19
|
+
return (React.createElement(DropdownMenuItem, { onSelect: () => changeSortOrder(sortItem.value, sortItem.direction), key: sortItem.value },
|
|
20
|
+
sortItem.text,
|
|
21
|
+
activeItem === sortItem && React.createElement(StyledCheck, null)));
|
|
22
|
+
}))));
|
|
23
|
+
}
|
|
24
|
+
export default SortOrderDropdown;
|
|
25
|
+
//# sourceMappingURL=SortOrderDropdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SortOrderDropdown.js","sourceRoot":"","sources":["SortOrderDropdown.tsx"],"names":[],"mappings":"AAEA,OAAO,CAAC,MAAM,eAAe,CAAC;AAC9B,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,SAA8B,MAAM,iCAAiC,CAAC;AAC7E,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,eAAe,MAAM,oCAAoC,CAAC;AAMjE,yEAAyE;AACzE,SAAS,iBAAiB,CAAC,EAAE,UAAU,EAAsC;IAC3E,eAAe,CACb,IAAI,EACJ,gGAAgG,CACjG,CAAC;IAEF,OAAO,CACL,oBAAC,SAAS,IAAC,UAAU,EAAE,UAAU,IAC9B,KAAK,CAAC,EAAE,CAAC,CACR,oBAAC,QAAQ,IACP,eAAe,EAAE,KAAK,CAAC,eAAe,EACtC,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,eAAe,EAAE,KAAK,CAAC,eAAe,GACtC,CACH,CACS,CACb,CAAC;AACJ,CAAC;AAED,8BAA8B;AAC9B,SAAS,QAAQ,CACf,KAAiE;IAEjE,MAAM,EAAE,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAEzE,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CACrC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,CACjE,CAAC;IAEF,OAAO,CACL,oBAAC,YAAY;QACX,oBAAC,kBAAkB,QAChB,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CACzB;QACrB,oBAAC,iBAAiB,QACf,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAC9B,OAAO,CACL,oBAAC,gBAAgB,IACf,QAAQ,EAAE,GAAG,EAAE,CACb,eAAe,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,EAErD,GAAG,EAAE,QAAQ,CAAC,KAAK;gBAElB,QAAQ,CAAC,IAAI;gBACb,UAAU,KAAK,QAAQ,IAAI,oBAAC,WAAW,OAAG,CAC1B,CACpB,CAAC;QACJ,CAAC,CAAC,CACgB,CACP,CAChB,CAAC;AACJ,CAAC;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { styled } from 'linaria/react';
|
|
3
|
+
import SortOrder from './SortOrder';
|
|
4
|
+
import { ListItem } from '@jetshop/ui/Select/Components';
|
|
5
|
+
import { ReactComponent as Check } from '@jetshop/ui/svg/Check.svg';
|
|
6
|
+
const StyledListItem = styled(ListItem) `
|
|
7
|
+
padding: 0 1rem;
|
|
8
|
+
`;
|
|
9
|
+
const SortOrderList = ({ sortOrders }) => {
|
|
10
|
+
return (React.createElement(SortOrder, { sortOrders: sortOrders }, ({ changeSortOrder, direction, sortOrder, mappedSortOrder }) => mappedSortOrder.map(order => (React.createElement(StyledListItem, { type: "button", key: `${order.value}-${order.direction}`, onClick: () => {
|
|
11
|
+
changeSortOrder(order.value, order.direction);
|
|
12
|
+
} },
|
|
13
|
+
order.text,
|
|
14
|
+
direction === order.direction && sortOrder === order.value && (React.createElement(Check, null)))))));
|
|
15
|
+
};
|
|
16
|
+
export default SortOrderList;
|
|
17
|
+
//# sourceMappingURL=SortOrderList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SortOrderList.js","sourceRoot":"","sources":["SortOrderList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,cAAc,IAAI,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAMpE,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;;CAEtC,CAAC;AAEF,MAAM,aAAa,GAAkC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;IACtE,OAAO,CACL,oBAAC,SAAS,IAAC,UAAU,EAAE,UAAU,IAC9B,CAAC,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,EAAE,CAC9D,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAC3B,oBAAC,cAAc,IACb,IAAI,EAAC,QAAQ,EACb,GAAG,EAAE,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,EAAE,EACxC,OAAO,EAAE,GAAG,EAAE;YACZ,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAChD,CAAC;QAEA,KAAK,CAAC,IAAI;QACV,SAAS,KAAK,KAAK,CAAC,SAAS,IAAI,SAAS,KAAK,KAAK,CAAC,KAAK,IAAI,CAC7D,oBAAC,KAAK,OAAG,CACV,CACc,CAClB,CAAC,CAEM,CACb,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC"}
|