@jetshop/ui 7.0.0-alpha-3 → 7.0.0-alpha-4
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/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 +65 -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 +39 -0
- package/Image/BaseImage.js +192 -0
- package/Image/BaseImage.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 +1 -0
- package/Image/index.js +2 -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 +1 -1
- 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,59 @@
|
|
|
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 { useShopConfig } from '@jetshop/core/hooks/useShopConfig';
|
|
13
|
+
import Image from './BaseImage';
|
|
14
|
+
import React from 'react';
|
|
15
|
+
import t from '@jetshop/intl';
|
|
16
|
+
import { useConstructImage } from './useConstructImage';
|
|
17
|
+
import ChannelContext from '@jetshop/core/components/ChannelContext';
|
|
18
|
+
import { Below } from '../Breakpoints';
|
|
19
|
+
export const transparentDataImg = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=';
|
|
20
|
+
function Error() {
|
|
21
|
+
return (React.createElement("div", { style: {
|
|
22
|
+
background: '#e2e2e2',
|
|
23
|
+
display: 'flex',
|
|
24
|
+
justifyContent: 'center',
|
|
25
|
+
alignItems: 'center',
|
|
26
|
+
position: `absolute`,
|
|
27
|
+
top: 0,
|
|
28
|
+
left: 0,
|
|
29
|
+
width: `100%`,
|
|
30
|
+
height: `100%`
|
|
31
|
+
} }, t('Image Not Found')));
|
|
32
|
+
}
|
|
33
|
+
function FlightImage(props) {
|
|
34
|
+
const { gravity, crop, src: originalSrc, sizes: sizesArray = [1], aspect, quality, critical, modifiedDate, error: ErrorComp = Error, focalPointX, focalPointY } = props, rest = __rest(props, ["gravity", "crop", "src", "sizes", "aspect", "quality", "critical", "modifiedDate", "error", "focalPointX", "focalPointY"]);
|
|
35
|
+
const { theme: { breakpoints }, useMobileImageSizes = false } = useShopConfig();
|
|
36
|
+
// The baseUrl will change based on the currently-selected channel.
|
|
37
|
+
// We need it to correctly construct the image url
|
|
38
|
+
const { selectedChannel } = React.useContext(ChannelContext);
|
|
39
|
+
const baseUrl = (selectedChannel === null || selectedChannel === void 0 ? void 0 : selectedChannel.imageUrl)
|
|
40
|
+
? String(selectedChannel.imageUrl)
|
|
41
|
+
: null;
|
|
42
|
+
const { src, hasFalsySrc, lqip, sizes, sizesMobile, srcset, webpSrcset, srcsetMobile, webpSrcsetMobile } = useConstructImage({
|
|
43
|
+
gravity,
|
|
44
|
+
crop,
|
|
45
|
+
src: originalSrc,
|
|
46
|
+
sizes: sizesArray,
|
|
47
|
+
aspect,
|
|
48
|
+
quality,
|
|
49
|
+
critical,
|
|
50
|
+
modifiedDate,
|
|
51
|
+
breakpoints,
|
|
52
|
+
baseUrl,
|
|
53
|
+
focalPointX,
|
|
54
|
+
focalPointY
|
|
55
|
+
});
|
|
56
|
+
return (React.createElement(Below, { breakpoint: 'sm' }, (matches) => (React.createElement(Image, Object.assign({}, rest, { critical: critical, aspect: aspect, src: hasFalsySrc && typeof originalSrc === 'boolean' ? false : src, hasFalsySrc: hasFalsySrc, lqip: lqip, sizes: matches && useMobileImageSizes ? sizesMobile : sizes, srcset: matches && useMobileImageSizes ? srcsetMobile : srcset, webpSrcset: matches && useMobileImageSizes ? webpSrcsetMobile : webpSrcset, error: ErrorComp })))));
|
|
57
|
+
}
|
|
58
|
+
export default FlightImage;
|
|
59
|
+
//# sourceMappingURL=FlightImage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FlightImage.js","sourceRoot":"","sources":["FlightImage.tsx"],"names":[],"mappings":"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"}
|
package/Image/Image.d.ts
ADDED
package/Image/Image.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Image.js","sourceRoot":"","sources":["Image.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC"}
|
package/Image/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './FlightImage';
|
package/Image/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { ImageValue, ProductImageSize } from '@jetshop/core/types';
|
|
2
|
+
type ImageSrcType = string | ProductImageSize[] | ImageValue;
|
|
3
|
+
export type Gravity = 'north' | 'south' | 'west' | 'east' | 'centre' | 'smart';
|
|
4
|
+
export type ImageBreakpointSize = number | string;
|
|
5
|
+
export type ImageBreakpointSizes = ImageBreakpointSize | ImageBreakpointSize[];
|
|
6
|
+
interface ImageParameters {
|
|
7
|
+
/** The image src
|
|
8
|
+
* Also accepts an array of objects with `url` keys (deprecated image field)
|
|
9
|
+
*/
|
|
10
|
+
src: ImageSrcType;
|
|
11
|
+
/**
|
|
12
|
+
* Whether to crop the image instead of resizing it when aspect ratio is provided
|
|
13
|
+
* @default false
|
|
14
|
+
*/
|
|
15
|
+
crop?: boolean;
|
|
16
|
+
gravity?: Gravity;
|
|
17
|
+
quality?: number;
|
|
18
|
+
/** An array of image sizes, will be mapped against breakpoints.
|
|
19
|
+
* @see https://docs.dev.jetshop.se/ui/image#the-sizes-prop
|
|
20
|
+
*/
|
|
21
|
+
sizes: ImageBreakpointSizes;
|
|
22
|
+
/**
|
|
23
|
+
* The aspect ratio of the image
|
|
24
|
+
* If unknown, use null to preserve original aspect ratio
|
|
25
|
+
*/
|
|
26
|
+
aspect?: string;
|
|
27
|
+
critical?: boolean;
|
|
28
|
+
modifiedDate?: string;
|
|
29
|
+
breakpoints: Record<string, string>;
|
|
30
|
+
baseUrl: string;
|
|
31
|
+
focalPointX?: number;
|
|
32
|
+
focalPointY?: number;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Dynamically constructs the query parameters used by ImageMagick to size the image appropriately.
|
|
36
|
+
* Also generates a LQIP using query parameters, to display while the full image loads.
|
|
37
|
+
*/
|
|
38
|
+
export declare function useConstructImage({ gravity, crop, src, sizes, aspect, critical, quality, modifiedDate, breakpoints, baseUrl, focalPointX, focalPointY }: ImageParameters): {
|
|
39
|
+
srcset: string;
|
|
40
|
+
webpSrcset: string;
|
|
41
|
+
sizes: string;
|
|
42
|
+
sizesMobile: string;
|
|
43
|
+
lqip: string;
|
|
44
|
+
src: string;
|
|
45
|
+
hasFalsySrc: boolean;
|
|
46
|
+
srcsetMobile: string;
|
|
47
|
+
webpSrcsetMobile: string;
|
|
48
|
+
};
|
|
49
|
+
export {};
|
|
@@ -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);
|
|
69
|
+
const mobileSrcSetFromWidths = ({ webp }) => getSrcSetFromWidths(imageSrc, mobileWidths, aspect, {
|
|
70
|
+
crop,
|
|
71
|
+
gravity,
|
|
72
|
+
quality,
|
|
73
|
+
webp,
|
|
74
|
+
focalPointX,
|
|
75
|
+
focalPointY
|
|
76
|
+
}, modifiedDate);
|
|
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);
|
|
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,GAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAyB,CAAC;QAC1D,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): string;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { getSrcWithParams } 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) {
|
|
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
|
+
const finalSrc = `${getSrcWithParams(smallestWidth, aspect, src, false, {
|
|
16
|
+
crop
|
|
17
|
+
})}&sigma=2.5&minampl=0.5&quality=30&type=auto${modifiedDate ? '×tamp=' + modifiedDate : ''}`;
|
|
18
|
+
return finalSrc;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=getLQIP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getLQIP.js","sourceRoot":"","sources":["getLQIP.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CACrB,GAAW,EACX,MAAgB,EAChB,MAAc,EACd,OAAgB,KAAK,EACrB,YAAoB;IAEpB,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,MAAM,QAAQ,GAAG,GAAG,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE;QACtE,IAAI;KACL,CAAC,8CACA,YAAY,CAAC,CAAC,CAAC,aAAa,GAAG,YAAY,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, timestamp?: string) => string;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { getSrcWithParams } from './getSrcWithParams';
|
|
2
|
+
export const getSrcSetFromWidths = (src, widths, aspect, options = { crop: false, webp: false }, timestamp) => {
|
|
3
|
+
const l = [];
|
|
4
|
+
for (const w of widths) {
|
|
5
|
+
l.push(getSrcWithParams(w, aspect, src, true, options, timestamp));
|
|
6
|
+
}
|
|
7
|
+
return l.join(', ');
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=getSrcSetFromWidths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getSrcSetFromWidths.js","sourceRoot":"","sources":["getSrcSetFromWidths.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAWtD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,GAAW,EACX,MAAgB,EAChB,MAAmB,EACnB,UAA6B,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EACzD,SAAkB,EAClB,EAAE;IACF,MAAM,CAAC,GAAG,EAAE,CAAC;IAEb,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE;QACtB,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;KACpE;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 getSrcWithParams(width: number, aspect: AspectRatio, src: string, includeViewportSize?: boolean, options?: ImageParamOptions, timestamp?: string): string;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { aspectRatioToFraction } from './aspectRatioToFraction';
|
|
2
|
+
export function getSrcWithParams(width, aspect, src, includeViewportSize = true, options = { crop: false, webp: false }, timestamp) {
|
|
3
|
+
const resizeMethod = options.crop ? 'crop' : 'fit';
|
|
4
|
+
const gravity = options.gravity;
|
|
5
|
+
const quality = options.quality;
|
|
6
|
+
const height = aspect
|
|
7
|
+
? Math.round(width * aspectRatioToFraction(aspect))
|
|
8
|
+
: null;
|
|
9
|
+
let qstring;
|
|
10
|
+
if (height) {
|
|
11
|
+
qstring = `?extend=copy&width=${width}&method=${resizeMethod}&height=${height}`;
|
|
12
|
+
if (gravity)
|
|
13
|
+
qstring += `&gravity=${gravity}`;
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
qstring = `?extend=copy&width=${width}&method=resize`;
|
|
17
|
+
}
|
|
18
|
+
if (quality)
|
|
19
|
+
qstring += `&quality=${quality}`;
|
|
20
|
+
if (options.webp)
|
|
21
|
+
qstring += `&type=webp`;
|
|
22
|
+
if (timestamp)
|
|
23
|
+
qstring += `×tamp=${timestamp}`;
|
|
24
|
+
if (options.focalPointX && options.focalPointY) {
|
|
25
|
+
qstring += `&im=RegionOfInterestCrop=(${width},${height}),style=crop,gravity=Center,regionOfInterest=(anchor=(x=${options.focalPointX},y=${options.focalPointY}),width=${width},height=${height})`;
|
|
26
|
+
}
|
|
27
|
+
return src + qstring + `${includeViewportSize ? ` ${width}w` : ''}`;
|
|
28
|
+
}
|
|
29
|
+
//# 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,MAAM,UAAU,gBAAgB,CAC9B,KAAa,EACb,MAAmB,EACnB,GAAW,EACX,mBAAmB,GAAG,IAAI,EAC1B,UAA6B,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EACzD,SAAkB;IAElB,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IACnD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,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,IAAI,OAAO,CAAC;IACZ,IAAI,MAAM,EAAE;QACV,OAAO,GAAG,sBAAsB,KAAK,WAAW,YAAY,WAAW,MAAM,EAAE,CAAC;QAChF,IAAI,OAAO;YAAE,OAAO,IAAI,YAAY,OAAO,EAAE,CAAC;KAC/C;SAAM;QACL,OAAO,GAAG,sBAAsB,KAAK,gBAAgB,CAAC;KACvD;IACD,IAAI,OAAO;QAAE,OAAO,IAAI,YAAY,OAAO,EAAE,CAAC;IAC9C,IAAI,OAAO,CAAC,IAAI;QAAE,OAAO,IAAI,YAAY,CAAC;IAC1C,IAAI,SAAS;QAAE,OAAO,IAAI,cAAc,SAAS,EAAE,CAAC;IACpD,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,EAAE;QAC9C,OAAO,IAAI,6BAA6B,KAAK,IAAI,MAAM,2DAA2D,OAAO,CAAC,WAAW,MAAM,OAAO,CAAC,WAAW,WAAW,KAAK,WAAW,MAAM,GAAG,CAAC;KACpM;IAED,OAAO,GAAG,GAAG,OAAO,GAAG,GAAG,mBAAmB,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACtE,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"}
|