@jetshop/ui 6.3.9-alpha.1 → 6.5.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 +70 -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 +10 -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 +2 -0
- package/Button/SecondaryButton.js +9 -0
- package/Button/SecondaryButton.js.map +1 -0
- package/Button/TrendButton.d.ts +2 -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 +11 -0
- package/CategoryLink.js +49 -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 +2 -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 +14 -0
- package/Checkbox/Checkbox.js +70 -0
- package/Checkbox/Checkbox.js.map +1 -0
- package/Checkbox/CheckboxGroup.d.ts +27 -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 +61 -0
- package/CloudflareImage/FlightImage.js.map +1 -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 +49 -0
- package/CloudflareImage/useConstructImage.js +122 -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 +11 -0
- package/ContentPageLink.js +46 -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 +33 -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 +18 -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 +121 -0
- package/Gallery/Gallery.js.map +1 -0
- package/Gallery/constructGallery.d.ts +15 -0
- package/Gallery/constructGallery.js +40 -0
- package/Gallery/constructGallery.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 +11 -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 +51 -0
- package/Image/FlightImage.js +59 -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 +49 -0
- package/Image/useConstructImage.js +122 -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 +21 -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 +35 -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 +6 -0
- package/Loading/NetworkStatusNotifier.js +8 -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 +12 -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 +23 -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 +44 -0
- package/Price/Price.js +74 -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 +23 -0
- package/ProductLink.js +88 -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 +8 -0
- package/ScrollRestorationHandler/isInIgnoredRouteTypes.js +8 -0
- package/ScrollRestorationHandler/isInIgnoredRouteTypes.js.map +1 -0
- package/ScrollRestorationHandler/useScrollRestore.d.ts +9 -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 +26 -0
- package/Search/SearchField.js +98 -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 +75 -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 +33 -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 +21 -0
- package/Stock/StockStatusContainer.js +45 -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 +3 -2
- 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,122 @@
|
|
|
1
|
+
import useWarningInDev from '@jetshop/core/hooks/useWarningInDev';
|
|
2
|
+
import { getFullUrl } from './utils/getFullUrl';
|
|
3
|
+
import { getImageWidths } from './utils/getImageWidths';
|
|
4
|
+
import { getLargestSize } from './utils/getLargestSize';
|
|
5
|
+
import { getLQIP } from './utils/getLQIP';
|
|
6
|
+
import { getSizesMap } from './utils/getSizesMap';
|
|
7
|
+
import { getSrcSetFromWidths } from './utils/getSrcSetFromWidths';
|
|
8
|
+
import React from 'react';
|
|
9
|
+
/**
|
|
10
|
+
* Dynamically constructs the query parameters used by ImageMagick to size the image appropriately.
|
|
11
|
+
* Also generates a LQIP using query parameters, to display while the full image loads.
|
|
12
|
+
*/
|
|
13
|
+
export function useConstructImage({ gravity, crop, src, sizes, aspect, critical, quality, modifiedDate, breakpoints, baseUrl, focalPointX, focalPointY }) {
|
|
14
|
+
// Warn if gravity was provided but crop was not
|
|
15
|
+
useWarningInDev(gravity && !crop, 'You have provided a gravity without setting crop to true. Your image will not be cropped, and the `gravity` prop will do nothing. Please remove the `gravity` prop.');
|
|
16
|
+
// Warn if the src is a falsy value
|
|
17
|
+
useWarningInDev(!!!src, 'You have provided a falsy value to the Image component. If you intentionally want to display a blank Image component, you may import `transparentDataImg` and use it for the src. Otherwise, this is probably a bug.');
|
|
18
|
+
/*
|
|
19
|
+
For backwards-compatibility (and dev convenience) reasons, we accept a
|
|
20
|
+
falsy `src` prop on Image. undefined | null will act just like the normal
|
|
21
|
+
Image component does, except that it will show a transparent image where
|
|
22
|
+
the image would normally load. This may be useful in cases where the end
|
|
23
|
+
user is lazy and wants to do this:
|
|
24
|
+
|
|
25
|
+
const { imageSrc } = someDataRequest();
|
|
26
|
+
<Image src={imageSrc} />
|
|
27
|
+
|
|
28
|
+
Where imageSrc may be undefined | null while the request is occurring. The
|
|
29
|
+
preferred method is to be more explicit:
|
|
30
|
+
|
|
31
|
+
const {imageSrc, loading} = someDataRequest();
|
|
32
|
+
<Image src={loading ? transparentDataImg : imageSrc } />
|
|
33
|
+
|
|
34
|
+
Therefore, whilst we will handle a null | undefined src, we will warn
|
|
35
|
+
against its usage in dev.
|
|
36
|
+
*/
|
|
37
|
+
let hasFalsySrc = true;
|
|
38
|
+
let imageSrc = '';
|
|
39
|
+
if (Array.isArray(src)) {
|
|
40
|
+
// maintain support for deprecated image sizes array
|
|
41
|
+
hasFalsySrc = false;
|
|
42
|
+
imageSrc = getFullUrl(getLargestSize(src), baseUrl);
|
|
43
|
+
}
|
|
44
|
+
// When we have a string for the src
|
|
45
|
+
if (!!src && typeof src === 'string') {
|
|
46
|
+
hasFalsySrc = false;
|
|
47
|
+
imageSrc = getFullUrl(src, baseUrl);
|
|
48
|
+
}
|
|
49
|
+
if (!!src && typeof src === 'object' && src.value) {
|
|
50
|
+
hasFalsySrc = false;
|
|
51
|
+
imageSrc = getFullUrl(src.value, baseUrl);
|
|
52
|
+
}
|
|
53
|
+
// useMemo so this runs only if the image props change. It calculates the
|
|
54
|
+
// strings used for `sizes`, `srcset`, and the `lqip`
|
|
55
|
+
const { sizesMap, sizesMapMobile, srcset, lqip, webpSrcset, srcsetMobile, webpSrcsetMobile } = React.useMemo(() => {
|
|
56
|
+
if (hasFalsySrc) {
|
|
57
|
+
return {};
|
|
58
|
+
}
|
|
59
|
+
const widths = getImageWidths(breakpoints, sizes);
|
|
60
|
+
const mobileWidths = getImageWidths(breakpoints, sizes, true);
|
|
61
|
+
const srcSetFromWidths = ({ webp }) => getSrcSetFromWidths(imageSrc, widths, aspect, {
|
|
62
|
+
crop,
|
|
63
|
+
gravity,
|
|
64
|
+
quality,
|
|
65
|
+
webp,
|
|
66
|
+
focalPointX,
|
|
67
|
+
focalPointY
|
|
68
|
+
}, modifiedDate, baseUrl);
|
|
69
|
+
const mobileSrcSetFromWidths = ({ webp }) => getSrcSetFromWidths(imageSrc, mobileWidths, aspect, {
|
|
70
|
+
crop,
|
|
71
|
+
gravity,
|
|
72
|
+
quality,
|
|
73
|
+
webp,
|
|
74
|
+
focalPointX,
|
|
75
|
+
focalPointY
|
|
76
|
+
}, modifiedDate, baseUrl);
|
|
77
|
+
const srcset = srcSetFromWidths({ webp: false });
|
|
78
|
+
const webpSrcset = srcSetFromWidths({ webp: true });
|
|
79
|
+
const srcsetMobile = mobileSrcSetFromWidths({ webp: false });
|
|
80
|
+
const webpSrcsetMobile = mobileSrcSetFromWidths({ webp: true });
|
|
81
|
+
// If this is a critical image, don't calculate LQIP
|
|
82
|
+
const lqip = critical
|
|
83
|
+
? null
|
|
84
|
+
: getLQIP(imageSrc, widths, aspect, crop, modifiedDate, baseUrl);
|
|
85
|
+
const sizesMap = getSizesMap(breakpoints, sizes);
|
|
86
|
+
const sizesMapMobile = getSizesMap(breakpoints, sizes, true);
|
|
87
|
+
return {
|
|
88
|
+
sizesMap,
|
|
89
|
+
sizesMapMobile,
|
|
90
|
+
srcset,
|
|
91
|
+
lqip,
|
|
92
|
+
webpSrcset,
|
|
93
|
+
srcsetMobile,
|
|
94
|
+
webpSrcsetMobile
|
|
95
|
+
};
|
|
96
|
+
}, [
|
|
97
|
+
aspect,
|
|
98
|
+
breakpoints,
|
|
99
|
+
crop,
|
|
100
|
+
gravity,
|
|
101
|
+
hasFalsySrc,
|
|
102
|
+
imageSrc,
|
|
103
|
+
quality,
|
|
104
|
+
sizes,
|
|
105
|
+
critical,
|
|
106
|
+
modifiedDate,
|
|
107
|
+
focalPointX,
|
|
108
|
+
focalPointY
|
|
109
|
+
]);
|
|
110
|
+
return {
|
|
111
|
+
srcset,
|
|
112
|
+
webpSrcset,
|
|
113
|
+
sizes: sizesMap,
|
|
114
|
+
sizesMobile: sizesMapMobile,
|
|
115
|
+
lqip,
|
|
116
|
+
src: imageSrc,
|
|
117
|
+
hasFalsySrc,
|
|
118
|
+
srcsetMobile,
|
|
119
|
+
webpSrcsetMobile
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=useConstructImage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useConstructImage.js","sourceRoot":"","sources":["useConstructImage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export const aspectRatioToFraction = (aspect) => {
|
|
2
|
+
if (typeof aspect === 'string' && aspect.indexOf(':') > 0) {
|
|
3
|
+
const [a, b] = aspect.split(':');
|
|
4
|
+
return b / a;
|
|
5
|
+
}
|
|
6
|
+
else if (typeof aspect === 'number') {
|
|
7
|
+
return aspect;
|
|
8
|
+
}
|
|
9
|
+
throw new TypeError('Aspect ratio is not a Number or String with the format n:m');
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=aspectRatioToFraction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aspectRatioToFraction.js","sourceRoot":"","sources":["aspectRatioToFraction.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,MAAmB,EAAE,EAAE;IAC3D,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACzD,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAwB,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,CAAC;KACd;SAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QACrC,OAAO,MAAM,CAAC;KACf;IACD,MAAM,IAAI,SAAS,CACjB,4DAA4D,CAC7D,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Constructs the image url by combining the passed-in url with the selected channel
|
|
3
|
+
* @param url The image url
|
|
4
|
+
* @param baseUrl The baseUrl from the currently-selected channel
|
|
5
|
+
*/
|
|
6
|
+
export const getFullUrl = (url, baseUrl) => {
|
|
7
|
+
if (!baseUrl || !url) {
|
|
8
|
+
return url;
|
|
9
|
+
}
|
|
10
|
+
url = url.trim();
|
|
11
|
+
if (url.indexOf('/') === 0 &&
|
|
12
|
+
url.indexOf('//:') === -1 &&
|
|
13
|
+
url.indexOf('static/media') === -1) {
|
|
14
|
+
return baseUrl + url;
|
|
15
|
+
}
|
|
16
|
+
return url;
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=getFullUrl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getFullUrl.js","sourceRoot":"","sources":["getFullUrl.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,OAAe,EAAE,EAAE;IACzD,IAAI,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE;QACpB,OAAO,GAAG,CAAC;KACZ;IACD,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACjB,IACE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;QACtB,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACzB,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAClC;QACA,OAAO,OAAO,GAAG,GAAG,CAAC;KACtB;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getImageWidth: (size: number | string, vw: number, pixelRatio: number) => number;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { sizeToNumber } from './sizeToNumber';
|
|
2
|
+
export const getImageWidth = (size = 1, vw, pixelRatio) => {
|
|
3
|
+
// Convert input size to fraction or px value
|
|
4
|
+
size = sizeToNumber(size);
|
|
5
|
+
// Size is in px
|
|
6
|
+
if (size > 2) {
|
|
7
|
+
return Math.round(size * pixelRatio);
|
|
8
|
+
}
|
|
9
|
+
// Size is a fraction
|
|
10
|
+
return Math.round(vw * size * pixelRatio);
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=getImageWidth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getImageWidth.js","sourceRoot":"","sources":["getImageWidth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,OAAwB,CAAC,EACzB,EAAU,EACV,UAAkB,EAClB,EAAE;IACF,6CAA6C;IAC7C,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAC1B,gBAAgB;IAChB,IAAI,IAAI,GAAG,CAAC,EAAE;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC,CAAC;KACtC;IACD,qBAAqB;IACrB,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,GAAG,UAAU,CAAC,CAAC;AAC5C,CAAC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { getImageWidth } from './getImageWidth';
|
|
2
|
+
import { remToPx } from './remToPx';
|
|
3
|
+
import { getSizeForBreakpoint } from './getSizeForBreakpoint';
|
|
4
|
+
export const getImageWidths = (breakpoints, sizes, mobile = false) => {
|
|
5
|
+
const all = new Set();
|
|
6
|
+
const breakpointArray = Object.entries(breakpoints).map(([key, value]) => ({
|
|
7
|
+
key,
|
|
8
|
+
value
|
|
9
|
+
}));
|
|
10
|
+
for (let i = 0; i < breakpointArray.length; i++) {
|
|
11
|
+
const bpSize = getSizeForBreakpoint(sizes, i);
|
|
12
|
+
const px = remToPx(breakpointArray[i].value);
|
|
13
|
+
all.add(getImageWidth(bpSize, px, 1));
|
|
14
|
+
all.add(getImageWidth(bpSize, px, 2));
|
|
15
|
+
if (mobile && breakpointArray[i].key === 'sm') {
|
|
16
|
+
break;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return Array.from(all).sort();
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=getImageWidths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getImageWidths.js","sourceRoot":"","sources":["getImageWidths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAG9D,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,WAAmC,EACnC,KAA2B,EAC3B,MAAM,GAAG,KAAK,EACd,EAAE;IACF,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAE9B,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACzE,GAAG;QACH,KAAK;KACN,CAAC,CAAC,CAAC;IAEJ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAE/C,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC9C,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAE7C,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACtC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAEtC,IAAI,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,EAAE;YAC7C,MAAM;SACP;KACF;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAChC,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generates a LQIP (Low Quality Image Placeholder) using the Flight image
|
|
3
|
+
* handling API (via query params)
|
|
4
|
+
* @param src The image src
|
|
5
|
+
* @param widths An array of image widths
|
|
6
|
+
* @param aspect The desired aspect ratio of the placeholder
|
|
7
|
+
*/
|
|
8
|
+
export declare function getLQIP(src: string, widths: number[], aspect: string, crop: boolean, modifiedDate: string, baseUrl: string): string;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { createSrcWithProperties } from './getSrcWithParams';
|
|
2
|
+
/**
|
|
3
|
+
* Generates a LQIP (Low Quality Image Placeholder) using the Flight image
|
|
4
|
+
* handling API (via query params)
|
|
5
|
+
* @param src The image src
|
|
6
|
+
* @param widths An array of image widths
|
|
7
|
+
* @param aspect The desired aspect ratio of the placeholder
|
|
8
|
+
*/
|
|
9
|
+
export function getLQIP(src, widths, aspect, crop = false, modifiedDate, baseUrl) {
|
|
10
|
+
const transparent = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=';
|
|
11
|
+
if (!src)
|
|
12
|
+
return transparent;
|
|
13
|
+
// Use the smallest width for the placeholder, to ensure it is the smallest filesize possible
|
|
14
|
+
const smallestWidth = widths.sort((a, b) => a - b)[0];
|
|
15
|
+
// Akamai LQIP recipe applied via query string:
|
|
16
|
+
// sigma=2.5&minampl=0.5 → blur=50 (Cloudflare's blur is 0–250; ~50 lands in
|
|
17
|
+
// the same perceptual range and lets the
|
|
18
|
+
// blurred result compress dramatically)
|
|
19
|
+
// quality=30 → quality=30 (passed through createSrcWithProperties)
|
|
20
|
+
// type=auto → format=auto (serve AVIF/WebP placeholders where supported)
|
|
21
|
+
const prop = createSrcWithProperties(smallestWidth, aspect, src, false, {
|
|
22
|
+
crop,
|
|
23
|
+
quality: 30
|
|
24
|
+
});
|
|
25
|
+
const finalSrc = `${baseUrl}/cdn-cgi/image/${prop},blur=50,format=auto/${src}${modifiedDate ? `?timestamp=${modifiedDate}` : ''}`;
|
|
26
|
+
return finalSrc;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=getLQIP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getLQIP.js","sourceRoot":"","sources":["getLQIP.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE7D;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CACrB,GAAW,EACX,MAAgB,EAChB,MAAc,EACd,IAAI,GAAG,KAAK,EACZ,YAAoB,EACpB,OAAe;IAEf,MAAM,WAAW,GACf,oHAAoH,CAAC;IACvH,IAAI,CAAC,GAAG;QAAE,OAAO,WAAW,CAAC;IAE7B,6FAA6F;IAC7F,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtD,+CAA+C;IAC/C,yFAAyF;IACzF,wFAAwF;IACxF,uFAAuF;IACvF,wFAAwF;IACxF,8FAA8F;IAC9F,MAAM,IAAI,GAAG,uBAAuB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE;QACtE,IAAI;QACJ,OAAO,EAAE,EAAE;KACZ,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,GAAG,OAAO,kBAAkB,IAAI,wBAAwB,GAAG,GAC1E,YAAY,CAAC,CAAC,CAAC,cAAc,YAAY,EAAE,CAAC,CAAC,CAAC,EAChD,EAAE,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ProductImageSize } from '@jetshop/core/types';
|
|
2
|
+
/**
|
|
3
|
+
* This exists to handle the deprecated `ProductImageSize` field from the API
|
|
4
|
+
* Takes an array of sizes, and returns the url of the largest one
|
|
5
|
+
* @param sizes Sizes field returned from API
|
|
6
|
+
*/
|
|
7
|
+
export declare const getLargestSize: (sizes: string | ProductImageSize[]) => any;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This exists to handle the deprecated `ProductImageSize` field from the API
|
|
3
|
+
* Takes an array of sizes, and returns the url of the largest one
|
|
4
|
+
* @param sizes Sizes field returned from API
|
|
5
|
+
*/
|
|
6
|
+
export const getLargestSize = (sizes) => {
|
|
7
|
+
if (Array.isArray(sizes)) {
|
|
8
|
+
if (sizes.length === 0) {
|
|
9
|
+
throw new Error('Sizes must not be an empty array');
|
|
10
|
+
}
|
|
11
|
+
return sizes[sizes.length - 1].url;
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
return sizes.toString();
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=getLargestSize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getLargestSize.js","sourceRoot":"","sources":["getLargestSize.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAkC,EAAE,EAAE;IACnE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;SACrD;QACD,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;KACpC;SAAM;QACL,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;KACzB;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { sizeToNumber } from './sizeToNumber';
|
|
2
|
+
export const getSizeForBreakpoint = (sizes, offset) => {
|
|
3
|
+
if (Array.isArray(sizes)) {
|
|
4
|
+
do {
|
|
5
|
+
if (sizes[offset]) {
|
|
6
|
+
return sizeToNumber(sizes[offset]);
|
|
7
|
+
}
|
|
8
|
+
offset--;
|
|
9
|
+
} while (offset >= 0);
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
return sizeToNumber(sizes);
|
|
13
|
+
}
|
|
14
|
+
return 1;
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=getSizeForBreakpoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getSizeForBreakpoint.js","sourceRoot":"","sources":["getSizeForBreakpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,KAA2B,EAC3B,MAAc,EACd,EAAE;IACF,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,GAAG;YACD,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE;gBACjB,OAAO,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;aACpC;YACD,MAAM,EAAE,CAAC;SACV,QAAQ,MAAM,IAAI,CAAC,EAAE;KACvB;SAAM;QACL,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;KAC5B;IACD,OAAO,CAAC,CAAC;AACX,CAAC,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { getSizeForBreakpoint } from './getSizeForBreakpoint';
|
|
2
|
+
export const getSizesMap = (breakpoints, sizes, mobile = false) => {
|
|
3
|
+
const breakpointArray = Object.entries(breakpoints).map(([key, value]) => ({
|
|
4
|
+
key,
|
|
5
|
+
value
|
|
6
|
+
}));
|
|
7
|
+
const breakpointWidths = [];
|
|
8
|
+
for (let i = 0; i < breakpointArray.length; i++) {
|
|
9
|
+
breakpointWidths.push(breakpointArray[i].value);
|
|
10
|
+
if (mobile && breakpointArray[i].key === 'sm') {
|
|
11
|
+
break;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return breakpointWidths
|
|
15
|
+
.map((breakpoint, i) => {
|
|
16
|
+
const size = getSizeForBreakpoint(sizes, i);
|
|
17
|
+
let width;
|
|
18
|
+
if (size > 2) {
|
|
19
|
+
// Size is absolute value in px
|
|
20
|
+
width = size + 'px';
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
// Size is already a fraction (or unset). Convert it to vw (percentage
|
|
24
|
+
// of viewport width)
|
|
25
|
+
width = Math.round(100 * (size || 1)) + 'vw';
|
|
26
|
+
}
|
|
27
|
+
// Include a media query for all but the last size
|
|
28
|
+
if (i + 1 < breakpointWidths.length) {
|
|
29
|
+
return `(max-width: ${breakpoint}) ${width}`;
|
|
30
|
+
}
|
|
31
|
+
return width;
|
|
32
|
+
})
|
|
33
|
+
.join(', ');
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=getSizesMap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getSizesMap.js","sourceRoot":"","sources":["getSizesMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAG9D,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,WAAmC,EACnC,KAA2B,EAC3B,MAAM,GAAG,KAAK,EACd,EAAE;IACF,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACzE,GAAG;QACH,KAAK;KACN,CAAC,CAAC,CAAC;IAEJ,MAAM,gBAAgB,GAAa,EAAE,CAAC;IAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC/C,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAEhD,IAAI,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,EAAE;YAC7C,MAAM;SACP;KACF;IAED,OAAO,gBAAgB;SACpB,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE;QACrB,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5C,IAAI,KAAK,CAAC;QACV,IAAI,IAAI,GAAG,CAAC,EAAE;YACZ,+BAA+B;YAC/B,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;SACrB;aAAM;YACL,sEAAsE;YACtE,qBAAqB;YACrB,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;SAC9C;QACD,kDAAkD;QAClD,IAAI,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE;YACnC,OAAO,eAAe,UAAU,KAAK,KAAK,EAAE,CAAC;SAC9C;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export const getSmallestSize = (sizes) => {
|
|
2
|
+
if (Array.isArray(sizes)) {
|
|
3
|
+
if (sizes.length === 0) {
|
|
4
|
+
throw new Error('Sizes must not be an empty array');
|
|
5
|
+
}
|
|
6
|
+
return sizes[0].url;
|
|
7
|
+
}
|
|
8
|
+
else {
|
|
9
|
+
return sizes.toString();
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=getSmallestSize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getSmallestSize.js","sourceRoot":"","sources":["getSmallestSize.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAmB,EAAE,EAAE;IACrD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;SACrD;QACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;KACrB;SAAM;QACL,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;KACzB;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AspectRatio, Gravity } from '../Image';
|
|
2
|
+
export interface ImageParamOptions {
|
|
3
|
+
crop: boolean;
|
|
4
|
+
gravity?: Gravity;
|
|
5
|
+
quality?: number;
|
|
6
|
+
webp?: boolean;
|
|
7
|
+
focalPointX?: number;
|
|
8
|
+
focalPointY?: number;
|
|
9
|
+
}
|
|
10
|
+
export declare const getSrcSetFromWidths: (src: string, widths: number[], aspect: AspectRatio, options?: ImageParamOptions, modifiedDate?: string, baseUrl?: string) => string;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { createSrcWithProperties } from './getSrcWithParams';
|
|
2
|
+
export const getSrcSetFromWidths = (src, widths, aspect, options = { crop: false, webp: false }, modifiedDate, baseUrl) => {
|
|
3
|
+
const p = [];
|
|
4
|
+
for (const w of widths) {
|
|
5
|
+
const prop = createSrcWithProperties(w, aspect, src, true, options, modifiedDate);
|
|
6
|
+
p.push(`${baseUrl}/cdn-cgi/image/${prop}/${src}${modifiedDate ? `?timestamp=${modifiedDate}` : ''} w${w}`);
|
|
7
|
+
}
|
|
8
|
+
return p.join(', ');
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=getSrcSetFromWidths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getSrcSetFromWidths.js","sourceRoot":"","sources":["getSrcSetFromWidths.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAW7D,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,GAAW,EACX,MAAgB,EAChB,MAAmB,EACnB,UAA6B,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EACzD,YAAqB,EACrB,OAAgB,EAChB,EAAE;IACF,MAAM,CAAC,GAAG,EAAE,CAAC;IAEb,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE;QACtB,MAAM,IAAI,GAAG,uBAAuB,CAClC,CAAC,EACD,MAAM,EACN,GAAG,EACH,IAAI,EACJ,OAAO,EACP,YAAY,CACb,CAAC;QACF,CAAC,CAAC,IAAI,CACJ,GAAG,OAAO,kBAAkB,IAAI,IAAI,GAAG,GACrC,YAAY,CAAC,CAAC,CAAC,cAAc,YAAY,EAAE,CAAC,CAAC,CAAC,EAChD,KAAK,CAAC,EAAE,CACT,CAAC;KACH;IAED,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { AspectRatio } from '../Image';
|
|
2
|
+
import { ImageParamOptions } from './getSrcSetFromWidths';
|
|
3
|
+
export declare function createSrcWithProperties(width: number, aspect: AspectRatio, src: string, includeViewportSize?: boolean, options?: ImageParamOptions, timestamp?: string): string;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { aspectRatioToFraction } from './aspectRatioToFraction';
|
|
2
|
+
// <img src="/cdn-cgi/image/width=80,quality=75/uploads/avatar1.jpg" />
|
|
3
|
+
// Akamai gravity keywords → Cloudflare gravity values.
|
|
4
|
+
// Cloudflare keywords are limited to top/bottom/left/right/auto/face; `centre` has no
|
|
5
|
+
// keyword and is expressed as the coordinate `0.5x0.5`.
|
|
6
|
+
const GRAVITY_MAP = {
|
|
7
|
+
north: 'top',
|
|
8
|
+
south: 'bottom',
|
|
9
|
+
east: 'right',
|
|
10
|
+
west: 'left',
|
|
11
|
+
centre: '0.5x0.5',
|
|
12
|
+
smart: 'auto'
|
|
13
|
+
};
|
|
14
|
+
export function createSrcWithProperties(width, aspect,
|
|
15
|
+
// @ts-ignore
|
|
16
|
+
src,
|
|
17
|
+
// @ts-ignore
|
|
18
|
+
includeViewportSize = true, options = { crop: false, webp: false },
|
|
19
|
+
// @ts-ignore
|
|
20
|
+
timestamp) {
|
|
21
|
+
// Akamai mapping:
|
|
22
|
+
// method=crop → fit=crop (like cover, but never upscales — small sources
|
|
23
|
+
// stay at their native size instead of being enlarged)
|
|
24
|
+
// method=fit → fit=scale-down (preserves aspect; unlike fit=contain, never upscales,
|
|
25
|
+
// which avoids inflating payloads when the source is smaller
|
|
26
|
+
// than the requested size)
|
|
27
|
+
const resizeMethod = options.crop ? 'crop' : 'scale-down';
|
|
28
|
+
const quality = options.quality;
|
|
29
|
+
const height = aspect
|
|
30
|
+
? Math.round(width * aspectRatioToFraction(aspect))
|
|
31
|
+
: null;
|
|
32
|
+
const properties = [];
|
|
33
|
+
if (height) {
|
|
34
|
+
properties.push(`width=${width},height=${height},fit=${resizeMethod}`);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
properties.push(`width=${width},fit=${resizeMethod}`);
|
|
38
|
+
}
|
|
39
|
+
// Akamai's gravity only takes effect when aspect-driven height is set; mirror that here.
|
|
40
|
+
// A focal point (when both X and Y are provided) takes precedence by overwriting the
|
|
41
|
+
// gravity slot — Cloudflare can only carry one value, and Akamai's `RegionOfInterestCrop`
|
|
42
|
+
// similarly trumps the keyword.
|
|
43
|
+
if (height) {
|
|
44
|
+
if (options.focalPointX && options.focalPointY) {
|
|
45
|
+
properties.push(`gravity=${options.focalPointX}x${options.focalPointY}`);
|
|
46
|
+
}
|
|
47
|
+
else if (options.gravity) {
|
|
48
|
+
properties.push(`gravity=${GRAVITY_MAP[options.gravity]}`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
// Akamai applied no default quality; we likewise let Cloudflare's own default (85)
|
|
52
|
+
// apply when the caller omits it, instead of forcing quality=100 (larger payloads).
|
|
53
|
+
if (quality) {
|
|
54
|
+
properties.push(`quality=${quality}`);
|
|
55
|
+
}
|
|
56
|
+
if (options.webp) {
|
|
57
|
+
properties.push('format=webp');
|
|
58
|
+
}
|
|
59
|
+
return properties.toString();
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=getSrcWithParams.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getSrcWithParams.js","sourceRoot":"","sources":["getSrcWithParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAIhE,uEAAuE;AAEvE,uDAAuD;AACvD,sFAAsF;AACtF,wDAAwD;AACxD,MAAM,WAAW,GAA4B;IAC3C,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,MAAM;CACd,CAAC;AAEF,MAAM,UAAU,uBAAuB,CACrC,KAAa,EACb,MAAmB;AACnB,aAAa;AACb,GAAW;AACX,aAAa;AACb,mBAAmB,GAAG,IAAI,EAC1B,UAA6B,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE;AACzD,aAAa;AACb,SAAkB;IAElB,kBAAkB;IAClB,kFAAkF;IAClF,wFAAwF;IACxF,yFAAyF;IACzF,8FAA8F;IAC9F,4DAA4D;IAC5D,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC;IAC1D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,MAAM,MAAM,GAAG,MAAM;QACnB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACnD,CAAC,CAAC,IAAI,CAAC;IAET,MAAM,UAAU,GAAG,EAAE,CAAC;IAEtB,IAAI,MAAM,EAAE;QACV,UAAU,CAAC,IAAI,CAAC,SAAS,KAAK,WAAW,MAAM,QAAQ,YAAY,EAAE,CAAC,CAAC;KACxE;SAAM;QACL,UAAU,CAAC,IAAI,CAAC,SAAS,KAAK,QAAQ,YAAY,EAAE,CAAC,CAAC;KACvD;IAED,yFAAyF;IACzF,qFAAqF;IACrF,0FAA0F;IAC1F,gCAAgC;IAChC,IAAI,MAAM,EAAE;QACV,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,EAAE;YAC9C,UAAU,CAAC,IAAI,CACb,WAAW,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,EAAE,CACxD,CAAC;SACH;aAAM,IAAI,OAAO,CAAC,OAAO,EAAE;YAC1B,UAAU,CAAC,IAAI,CAAC,WAAW,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;SAC5D;KACF;IAED,mFAAmF;IACnF,oFAAoF;IACpF,IAAI,OAAO,EAAE;QACX,UAAU,CAAC,IAAI,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC;KACvC;IACD,IAAI,OAAO,CAAC,IAAI,EAAE;QAChB,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAChC;IAED,OAAO,UAAU,CAAC,QAAQ,EAAE,CAAC;AAC/B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const paddingForAspectRatio: (aspect?: string) => string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paddingForAspectRatio.js","sourceRoot":"","sources":["paddingForAspectRatio.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,MAAM,GAAG,KAAK,EAAE,EAAE;IACtD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACtC,OAAO,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AACxC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const remToPx: (rems: string, base?: number) => number;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remToPx.js","sourceRoot":"","sources":["remToPx.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { remToPx } from './remToPx';
|
|
2
|
+
const sizeRegexp = new RegExp(/(\d+)\s?(\w+)?/g);
|
|
3
|
+
export const sizeToNumber = (size) => {
|
|
4
|
+
if (typeof size === 'string') {
|
|
5
|
+
try {
|
|
6
|
+
sizeRegexp.lastIndex = 0;
|
|
7
|
+
const matches = sizeRegexp.exec(size.toLowerCase().trim());
|
|
8
|
+
const num = matches && matches[1];
|
|
9
|
+
const unit = matches && matches[2];
|
|
10
|
+
if ((!unit || unit === 'px') && num) {
|
|
11
|
+
return +num;
|
|
12
|
+
}
|
|
13
|
+
else if (unit === 'rem') {
|
|
14
|
+
return remToPx(num);
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
throw Error('Unknown unit ' + unit);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
catch (e) {
|
|
21
|
+
console.error('Responsive Image: Unit conversion failed for', size, e);
|
|
22
|
+
return 1;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return size;
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=sizeToNumber.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sizeToNumber.js","sourceRoot":"","sources":["sizeToNumber.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,iBAAiB,CAAC,CAAC;AACjD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAyB,EAAE,EAAE;IACxD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,IAAI;YACF,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC;YACzB,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3D,MAAM,GAAG,GAAG,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,IAAI,GAAG,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE;gBACnC,OAAO,CAAC,GAAG,CAAC;aACb;iBAAM,IAAI,IAAI,KAAK,KAAK,EAAE;gBACzB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;aACrB;iBAAM;gBACL,MAAM,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;aACrC;SACF;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,8CAA8C,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACvE,OAAO,CAAC,CAAC;SACV;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { LinkProps } from 'react-router-dom';
|
|
3
|
+
import { Page } from '@jetshop/core/types';
|
|
4
|
+
export interface ContentPageLinkProps extends Partial<LinkProps> {
|
|
5
|
+
page: Page;
|
|
6
|
+
className?: string;
|
|
7
|
+
preloadRoute?: boolean;
|
|
8
|
+
onMouseEnter?: (event: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => any;
|
|
9
|
+
}
|
|
10
|
+
declare const ContentPageLink: React.FC<ContentPageLinkProps>;
|
|
11
|
+
export default ContentPageLink;
|
|
@@ -0,0 +1,46 @@
|
|
|
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 * as React from 'react';
|
|
13
|
+
import { Link } from 'react-router-dom';
|
|
14
|
+
import { useRoutePreload } from '@jetshop/core/hooks/useRoutePreload';
|
|
15
|
+
import { useHoverIntent } from './utils/useHoverIntent';
|
|
16
|
+
const ContentPageLink = function ContentPageLink(props) {
|
|
17
|
+
const { page, onMouseEnter, preloadRoute = true } = props, rest = __rest(props, ["page", "onMouseEnter", "preloadRoute"]);
|
|
18
|
+
const { primaryRoute } = page;
|
|
19
|
+
const { preload } = useRoutePreload();
|
|
20
|
+
const contentPreload = () => {
|
|
21
|
+
if (!(primaryRoute === null || primaryRoute === void 0 ? void 0 : primaryRoute.path)) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
preload({
|
|
25
|
+
pathname: primaryRoute.path,
|
|
26
|
+
routeType: 'Page',
|
|
27
|
+
preloadRoute
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
const [, intentRef] = useHoverIntent({
|
|
31
|
+
onHover: () => {
|
|
32
|
+
contentPreload();
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
return (React.createElement(Link, Object.assign({ to: {
|
|
36
|
+
pathname: primaryRoute === null || primaryRoute === void 0 ? void 0 : primaryRoute.path,
|
|
37
|
+
state: { type: 'Page' }
|
|
38
|
+
}, innerRef: intentRef, onTouchStart: contentPreload, onMouseEnter: (event) => {
|
|
39
|
+
contentPreload();
|
|
40
|
+
if (typeof onMouseEnter === 'function') {
|
|
41
|
+
onMouseEnter(event);
|
|
42
|
+
}
|
|
43
|
+
} }, rest)));
|
|
44
|
+
};
|
|
45
|
+
export default ContentPageLink;
|
|
46
|
+
//# sourceMappingURL=ContentPageLink.js.map
|