react-datocms 5.0.3 → 6.0.1
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/README.md +4 -13
- package/dist/cjs/Image/index.js +39 -138
- package/dist/cjs/Image/index.js.map +1 -1
- package/dist/cjs/Image/utils.js +52 -0
- package/dist/cjs/Image/utils.js.map +1 -0
- package/dist/cjs/SRCImage/index.js +44 -0
- package/dist/cjs/SRCImage/index.js.map +1 -0
- package/dist/cjs/SRCImage/utils.js +82 -0
- package/dist/cjs/SRCImage/utils.js.map +1 -0
- package/dist/cjs/Seo/nextUtils.js +15 -15
- package/dist/cjs/Seo/nextUtils.js.map +1 -1
- package/dist/cjs/Seo/renderMetaTags.js +1 -1
- package/dist/cjs/Seo/renderMetaTags.js.map +1 -1
- package/dist/cjs/StructuredText/index.js.map +1 -1
- package/dist/cjs/VideoPlayer/index.js +1 -1
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/useSiteSearch/index.js +9 -31
- package/dist/cjs/useSiteSearch/index.js.map +1 -1
- package/dist/cjs/useVideoPlayer/index.js.map +1 -1
- package/dist/esm/Image/index.js +31 -110
- package/dist/esm/Image/index.js.map +1 -1
- package/dist/esm/Image/utils.js +46 -0
- package/dist/esm/Image/utils.js.map +1 -0
- package/dist/esm/SRCImage/index.js +37 -0
- package/dist/esm/SRCImage/index.js.map +1 -0
- package/dist/esm/SRCImage/utils.js +52 -0
- package/dist/esm/SRCImage/utils.js.map +1 -0
- package/dist/esm/Seo/nextUtils.js +15 -15
- package/dist/esm/Seo/nextUtils.js.map +1 -1
- package/dist/esm/Seo/renderMetaTags.js +1 -1
- package/dist/esm/Seo/renderMetaTags.js.map +1 -1
- package/dist/esm/StructuredText/index.js.map +1 -1
- package/dist/esm/VideoPlayer/index.js +1 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/useSiteSearch/index.js +2 -1
- package/dist/esm/useSiteSearch/index.js.map +1 -1
- package/dist/esm/useVideoPlayer/index.js.map +1 -1
- package/dist/types/Image/index.d.ts +3 -4
- package/dist/types/Image/utils.d.ts +7 -0
- package/dist/types/SRCImage/index.d.ts +33 -0
- package/dist/types/SRCImage/utils.d.ts +6 -0
- package/dist/types/Seo/remixUtils.d.ts +1 -1
- package/dist/types/Seo/renderMetaTags.d.ts +1 -1
- package/dist/types/Seo/renderMetaTagsToString.d.ts +1 -1
- package/dist/types/StructuredText/index.d.ts +3 -3
- package/dist/types/VideoPlayer/index.d.ts +1 -1
- package/dist/types/index.d.ts +2 -1
- package/dist/types/useQuerySubscription/index.d.ts +1 -1
- package/dist/types/useVideoPlayer/index.d.ts +2 -2
- package/package.json +3 -4
- package/src/Image/__tests__/__snapshots__/index.test.tsx.snap +387 -60
- package/src/Image/__tests__/index.test.tsx +55 -8
- package/src/Image/index.tsx +65 -177
- package/src/Image/utils.ts +58 -0
- package/src/SRCImage/__tests__/__snapshots__/index.test.tsx.snap +274 -0
- package/src/SRCImage/__tests__/index.test.tsx +91 -0
- package/src/SRCImage/index.tsx +99 -0
- package/src/SRCImage/utils.tsx +95 -0
- package/src/Seo/__tests__/index.test.tsx +1 -1
- package/src/Seo/nextUtils.ts +20 -20
- package/src/Seo/remixUtils.ts +1 -1
- package/src/Seo/renderMetaTags.tsx +2 -2
- package/src/Seo/renderMetaTagsToString.tsx +1 -1
- package/src/StructuredText/__tests__/index.test.tsx +2 -2
- package/src/StructuredText/index.tsx +10 -10
- package/src/VideoPlayer/index.tsx +2 -2
- package/src/index.ts +2 -1
- package/src/useQuerySubscription/index.ts +4 -4
- package/src/useSiteSearch/index.tsx +29 -28
- package/src/useVideoPlayer/index.ts +3 -6
package/README.md
CHANGED
|
@@ -20,7 +20,7 @@ npm install react-datocms
|
|
|
20
20
|
|
|
21
21
|
This package offers different components and hooks. Please refer to one of the following pages to learn more about a specific area of interest:
|
|
22
22
|
|
|
23
|
-
* [`<Image />`
|
|
23
|
+
* [`<SRCImage />` and `<Image />` components for responsive/progressive images](./docs/image.md)
|
|
24
24
|
* [`<StructuredText />` component](./docs/structured-text.md)
|
|
25
25
|
* [`<VideoPlayer />` component](./docs/video-player.md)
|
|
26
26
|
* [`useQuerySubscription()` hook for live, real-time updates of content](./docs/live-real-time-updates.md)
|
|
@@ -35,23 +35,14 @@ Live demo: [https://react-datocms-example.netlify.com/](https://react-datocms-ex
|
|
|
35
35
|
|
|
36
36
|
# Development
|
|
37
37
|
|
|
38
|
-
This repository contains a number of demos/examples. You can use them to locally test your changes
|
|
38
|
+
This repository contains a number of demos/examples. You can use them to locally test your changes.
|
|
39
39
|
|
|
40
40
|
```
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
npm link react-datocms
|
|
41
|
+
cd examples
|
|
42
|
+
npm setup
|
|
44
43
|
npm run start
|
|
45
44
|
```
|
|
46
45
|
|
|
47
|
-
Now on another terminal you can run:
|
|
48
|
-
|
|
49
|
-
```
|
|
50
|
-
npm run watch
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
This will re-compile the package everytime you make a change, and the example project will pick those changes instantly.
|
|
54
|
-
|
|
55
46
|
<!--datocms-autoinclude-footer start-->
|
|
56
47
|
-----------------
|
|
57
48
|
# What is DatoCMS?
|
package/dist/cjs/Image/index.js
CHANGED
|
@@ -1,169 +1,70 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
'use client';
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
-
}
|
|
9
|
-
Object.defineProperty(o, k2, desc);
|
|
10
|
-
}) : (function(o, m, k, k2) {
|
|
11
|
-
if (k2 === undefined) k2 = k;
|
|
12
|
-
o[k2] = m[k];
|
|
13
|
-
}));
|
|
14
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
-
}) : function(o, v) {
|
|
17
|
-
o["default"] = v;
|
|
18
|
-
});
|
|
19
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
20
|
-
if (mod && mod.__esModule) return mod;
|
|
21
|
-
var result = {};
|
|
22
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
23
|
-
__setModuleDefault(result, mod);
|
|
24
|
-
return result;
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
25
5
|
};
|
|
26
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
7
|
exports.Image = void 0;
|
|
28
|
-
|
|
29
|
-
const
|
|
8
|
+
// biome-ignore lint/style/useImportType: wrong warning
|
|
9
|
+
const react_1 = __importDefault(require("react"));
|
|
10
|
+
const react_2 = require("react");
|
|
11
|
+
const utils_js_1 = require("../SRCImage/utils.js");
|
|
30
12
|
const useInView_js_1 = require("./useInView.js");
|
|
31
|
-
const
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
: !!window.IntersectionObserver;
|
|
35
|
-
function fetchPriorityProp(fetchPriority) {
|
|
36
|
-
const [majorStr, minorStr] = react_1.version.split('.');
|
|
37
|
-
const major = parseInt(majorStr, 10);
|
|
38
|
-
const minor = parseInt(minorStr, 10);
|
|
39
|
-
if (major > 18 || (major === 18 && minor >= 3)) {
|
|
40
|
-
// In React 18.3.0 or newer, we must use camelCase
|
|
41
|
-
// prop to avoid "Warning: Invalid DOM property".
|
|
42
|
-
// See https://github.com/facebook/react/pull/25927
|
|
43
|
-
return { fetchPriority };
|
|
44
|
-
}
|
|
45
|
-
// In React 18.2.0 or older, we must use lowercase prop
|
|
46
|
-
// to avoid "Warning: Invalid DOM property".
|
|
47
|
-
return { fetchpriority: fetchPriority };
|
|
48
|
-
}
|
|
49
|
-
const imageAddStrategy = ({ lazyLoad, inView, loaded }) => {
|
|
50
|
-
if (!lazyLoad) {
|
|
13
|
+
const utils_js_2 = require("./utils.js");
|
|
14
|
+
const imageAddStrategy = ({ priority, inView, loaded }) => {
|
|
15
|
+
if (priority) {
|
|
51
16
|
return true;
|
|
52
17
|
}
|
|
53
|
-
if (isSsr) {
|
|
18
|
+
if (utils_js_2.isSsr) {
|
|
54
19
|
return false;
|
|
55
20
|
}
|
|
56
|
-
if (isIntersectionObserverAvailable) {
|
|
21
|
+
if (utils_js_2.isIntersectionObserverAvailable) {
|
|
57
22
|
return inView || loaded;
|
|
58
23
|
}
|
|
59
24
|
return true;
|
|
60
25
|
};
|
|
61
|
-
const imageShowStrategy = ({
|
|
62
|
-
if (
|
|
26
|
+
const imageShowStrategy = ({ priority, loaded }) => {
|
|
27
|
+
if (priority) {
|
|
63
28
|
return true;
|
|
64
29
|
}
|
|
65
|
-
if (isSsr) {
|
|
30
|
+
if (utils_js_2.isSsr) {
|
|
66
31
|
return false;
|
|
67
32
|
}
|
|
68
|
-
if (isIntersectionObserverAvailable) {
|
|
33
|
+
if (utils_js_2.isIntersectionObserverAvailable) {
|
|
69
34
|
return loaded;
|
|
70
35
|
}
|
|
71
36
|
return true;
|
|
72
37
|
};
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}
|
|
78
|
-
return candidateMultipliers
|
|
79
|
-
.map((multiplier) => {
|
|
80
|
-
const url = new URL(src, bogusBaseUrl);
|
|
81
|
-
if (multiplier !== 1) {
|
|
82
|
-
url.searchParams.set('dpr', `${multiplier}`);
|
|
83
|
-
const maxH = url.searchParams.get('max-h');
|
|
84
|
-
const maxW = url.searchParams.get('max-w');
|
|
85
|
-
if (maxH) {
|
|
86
|
-
url.searchParams.set('max-h', `${Math.floor(parseInt(maxH) * multiplier)}`);
|
|
87
|
-
}
|
|
88
|
-
if (maxW) {
|
|
89
|
-
url.searchParams.set('max-w', `${Math.floor(parseInt(maxW) * multiplier)}`);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
const finalWidth = Math.floor(width * multiplier);
|
|
93
|
-
if (finalWidth < 50) {
|
|
94
|
-
return null;
|
|
95
|
-
}
|
|
96
|
-
return `${url.toString().replace(bogusBaseUrl, '/')} ${finalWidth}w`;
|
|
97
|
-
})
|
|
98
|
-
.filter(Boolean)
|
|
99
|
-
.join(',');
|
|
100
|
-
};
|
|
101
|
-
exports.Image = (0, react_1.forwardRef)(({ className, fadeInDuration = 500, intersectionTreshold, intersectionThreshold, intersectionMargin, pictureClassName, lazyLoad: rawLazyLoad = true, style, pictureStyle, layout = 'intrinsic', objectFit, objectPosition, data, onLoad, usePlaceholder = true, priority = false, sizes, srcSetCandidates = [0.25, 0.5, 0.75, 1, 1.5, 2, 3, 4], placeholderClassName, placeholderStyle, }, ref) => {
|
|
102
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
103
|
-
const lazyLoad = priority ? false : rawLazyLoad;
|
|
104
|
-
const [loaded, setLoaded] = (0, react_1.useState)(false);
|
|
105
|
-
const imageRef = (0, react_1.useRef)(null);
|
|
106
|
-
const handleLoad = () => {
|
|
107
|
-
onLoad === null || onLoad === void 0 ? void 0 : onLoad();
|
|
108
|
-
setLoaded(true);
|
|
109
|
-
};
|
|
110
|
-
// https://stackoverflow.com/q/39777833/266535
|
|
111
|
-
(0, react_1.useEffect)(() => {
|
|
112
|
-
if (!imageRef.current) {
|
|
113
|
-
return;
|
|
114
|
-
}
|
|
115
|
-
if (imageRef.current.complete && imageRef.current.naturalWidth) {
|
|
116
|
-
handleLoad();
|
|
117
|
-
}
|
|
118
|
-
}, []);
|
|
38
|
+
exports.Image = (0, react_2.forwardRef)(({ className, fadeInDuration = 500, intersectionTreshold, intersectionThreshold, intersectionMargin, pictureClassName, style, pictureStyle, layout = 'intrinsic', objectFit, objectPosition, data, onLoad, usePlaceholder = true, priority = false, sizes, srcSetCandidates = [0.25, 0.5, 0.75, 1, 1.5, 2, 3, 4], placeholderClassName, placeholderStyle, }, ref) => {
|
|
39
|
+
var _a, _b, _c, _d, _e;
|
|
40
|
+
const imageRef = (0, react_2.useRef)(null);
|
|
41
|
+
const [loaded, handleLoad] = (0, utils_js_2.useImageLoad)(imageRef, onLoad);
|
|
119
42
|
const [viewRef, inView] = (0, useInView_js_1.useInView)({
|
|
120
43
|
threshold: intersectionThreshold || intersectionTreshold || 0,
|
|
121
44
|
rootMargin: intersectionMargin || '0px 0px 0px 0px',
|
|
122
45
|
triggerOnce: true,
|
|
123
46
|
fallbackInView: true,
|
|
124
47
|
});
|
|
125
|
-
const
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
}, [viewRef]);
|
|
131
|
-
const absolutePositioning = {
|
|
132
|
-
position: 'absolute',
|
|
133
|
-
left: 0,
|
|
134
|
-
top: 0,
|
|
135
|
-
width: '100%',
|
|
136
|
-
height: '100%',
|
|
137
|
-
maxWidth: 'none',
|
|
138
|
-
maxHeight: 'none',
|
|
139
|
-
};
|
|
140
|
-
const addImage = imageAddStrategy({
|
|
141
|
-
lazyLoad,
|
|
142
|
-
inView,
|
|
143
|
-
loaded,
|
|
144
|
-
});
|
|
145
|
-
const showImage = imageShowStrategy({
|
|
146
|
-
lazyLoad,
|
|
147
|
-
inView,
|
|
148
|
-
loaded,
|
|
149
|
-
});
|
|
150
|
-
const webpSource = data.webpSrcSet && (react_1.default.createElement("source", { srcSet: data.webpSrcSet, sizes: (_a = sizes !== null && sizes !== void 0 ? sizes : data.sizes) !== null && _a !== void 0 ? _a : undefined, type: "image/webp" }));
|
|
151
|
-
const regularSource = (react_1.default.createElement("source", { srcSet: (_b = data.srcSet) !== null && _b !== void 0 ? _b : buildSrcSet(data.src, data.width, srcSetCandidates), sizes: (_c = sizes !== null && sizes !== void 0 ? sizes : data.sizes) !== null && _c !== void 0 ? _c : undefined }));
|
|
48
|
+
const rootRef = (0, utils_js_2.useMergedRef)(ref, viewRef);
|
|
49
|
+
const addImage = imageAddStrategy({ priority, inView, loaded });
|
|
50
|
+
const showImage = imageShowStrategy({ priority, inView, loaded });
|
|
51
|
+
const webpSource = (0, utils_js_1.buildWebpSource)(data, sizes);
|
|
52
|
+
const regularSource = (0, utils_js_1.buildRegularSource)(data, sizes, srcSetCandidates);
|
|
152
53
|
const transition = fadeInDuration > 0 ? `opacity ${fadeInDuration}ms` : undefined;
|
|
153
|
-
const
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
54
|
+
const basePlaceholderStyle = Object.assign({ transition, opacity: showImage ? 0 : 1,
|
|
55
|
+
// During the opacity transition of the placeholder to the definitive version,
|
|
56
|
+
// hardware acceleration is triggered. This results in the browser trying to render the
|
|
57
|
+
// placeholder with your GPU, causing blurred edges. Solution: style the placeholder
|
|
58
|
+
// so the edges overflow the container
|
|
59
|
+
position: 'absolute', left: '-5%', top: '-5%', width: '110%', height: '110%', maxWidth: 'none', maxHeight: 'none' }, placeholderStyle);
|
|
60
|
+
const placeholder = usePlaceholder && data.base64 ? (react_1.default.createElement("img", { "aria-hidden": "true", alt: "", src: data.base64, className: placeholderClassName, style: Object.assign({ objectFit,
|
|
61
|
+
objectPosition }, basePlaceholderStyle) })) : usePlaceholder && data.bgColor ? (react_1.default.createElement("div", { className: placeholderClassName, style: Object.assign({ backgroundColor: data.bgColor }, basePlaceholderStyle) })) : null;
|
|
161
62
|
const { width, aspectRatio } = data;
|
|
162
|
-
const height = (
|
|
63
|
+
const height = (_a = data.height) !== null && _a !== void 0 ? _a : (aspectRatio ? width / aspectRatio : 0);
|
|
163
64
|
const svg = `<svg xmlns="http://www.w3.org/2000/svg" width="${width}" height="${height}"></svg>`;
|
|
164
|
-
const sizer = layout !== 'fill' ? (react_1.default.createElement("img", { className: pictureClassName, style: Object.assign({ display: 'block', width: '100%' }, pictureStyle), src: `data:image/svg+xml;base64,${(0,
|
|
165
|
-
return (react_1.default.createElement("div", { ref:
|
|
166
|
-
? absolutePositioning
|
|
65
|
+
const sizer = layout !== 'fill' ? (react_1.default.createElement("img", { className: pictureClassName, style: Object.assign({ display: 'block', width: '100%' }, pictureStyle), src: `data:image/svg+xml;base64,${(0, utils_js_2.universalBtoa)(svg)}`, "aria-hidden": "true", alt: "" })) : null;
|
|
66
|
+
return (react_1.default.createElement("div", { ref: rootRef, className: className, style: Object.assign(Object.assign({ overflow: 'hidden' }, (layout === 'fill'
|
|
67
|
+
? utils_js_2.absolutePositioning
|
|
167
68
|
: layout === 'intrinsic'
|
|
168
69
|
? { position: 'relative', width: '100%', maxWidth: width }
|
|
169
70
|
: layout === 'fixed'
|
|
@@ -176,7 +77,7 @@ exports.Image = (0, react_1.forwardRef)(({ className, fadeInDuration = 500, inte
|
|
|
176
77
|
regularSource,
|
|
177
78
|
data.src && (
|
|
178
79
|
// biome-ignore lint/a11y/useAltText: We do support the `alt` attribute
|
|
179
|
-
react_1.default.createElement("img", Object.assign({ ref: imageRef, src: data.src, alt: (
|
|
80
|
+
react_1.default.createElement("img", Object.assign({ ref: imageRef, src: data.src, alt: (_b = data.alt) !== null && _b !== void 0 ? _b : '', title: (_c = data.title) !== null && _c !== void 0 ? _c : undefined, onLoad: handleLoad }, (0, utils_js_1.priorityProp)(priority ? 'high' : undefined), { className: pictureClassName, style: Object.assign(Object.assign(Object.assign({ opacity: showImage ? 1 : 0, transition }, utils_js_2.absolutePositioning), { objectFit,
|
|
180
81
|
objectPosition }), pictureStyle) }))))),
|
|
181
82
|
react_1.default.createElement("noscript", null,
|
|
182
83
|
react_1.default.createElement("picture", null,
|
|
@@ -184,7 +85,7 @@ exports.Image = (0, react_1.forwardRef)(({ className, fadeInDuration = 500, inte
|
|
|
184
85
|
regularSource,
|
|
185
86
|
data.src && (
|
|
186
87
|
// biome-ignore lint/a11y/useAltText: We do support the `alt` attribute
|
|
187
|
-
react_1.default.createElement("img", Object.assign({ src: data.src, alt: (
|
|
188
|
-
objectPosition }), pictureStyle), loading:
|
|
88
|
+
react_1.default.createElement("img", Object.assign({ src: data.src, alt: (_d = data.alt) !== null && _d !== void 0 ? _d : '', title: (_e = data.title) !== null && _e !== void 0 ? _e : undefined, className: pictureClassName, style: Object.assign(Object.assign(Object.assign({}, utils_js_2.absolutePositioning), { objectFit,
|
|
89
|
+
objectPosition }), pictureStyle), loading: priority ? undefined : 'lazy' }, (0, utils_js_1.priorityProp)(priority ? 'high' : undefined))))))));
|
|
189
90
|
});
|
|
190
91
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Image/index.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Image/index.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;AAEb,uDAAuD;AACvD,kDAA0B;AAC1B,iCAA+D;AAC/D,mDAI8B;AAC9B,iDAA2C;AAC3C,yCAOoB;AAmGpB,MAAM,gBAAgB,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAS,EAAE,EAAE;IAC/D,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,gBAAK,EAAE,CAAC;QACV,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,0CAA+B,EAAE,CAAC;QACpC,OAAO,MAAM,IAAI,MAAM,CAAC;IAC1B,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAS,EAAE,EAAE;IACxD,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,gBAAK,EAAE,CAAC;QACV,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,0CAA+B,EAAE,CAAC;QACpC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEW,QAAA,KAAK,GAAG,IAAA,kBAAU,EAC7B,CACE,EACE,SAAS,EACT,cAAc,GAAG,GAAG,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,EACL,YAAY,EACZ,MAAM,GAAG,WAAW,EACpB,SAAS,EACT,cAAc,EACd,IAAI,EACJ,MAAM,EACN,cAAc,GAAG,IAAI,EACrB,QAAQ,GAAG,KAAK,EAChB,KAAK,EACL,gBAAgB,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACrD,oBAAoB,EACpB,gBAAgB,GACjB,EACD,GAAG,EACH,EAAE;;IACF,MAAM,QAAQ,GAAG,IAAA,cAAM,EAAmB,IAAI,CAAC,CAAC;IAEhD,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,IAAA,uBAAY,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAE5D,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,IAAA,wBAAS,EAAC;QAClC,SAAS,EAAE,qBAAqB,IAAI,oBAAoB,IAAI,CAAC;QAC7D,UAAU,EAAE,kBAAkB,IAAI,iBAAiB;QACnD,WAAW,EAAE,IAAI;QACjB,cAAc,EAAE,IAAI;KACrB,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,IAAA,uBAAY,EAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAE3C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,iBAAiB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAElE,MAAM,UAAU,GAAG,IAAA,0BAAe,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAChD,MAAM,aAAa,GAAG,IAAA,6BAAkB,EAAC,IAAI,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;IAExE,MAAM,UAAU,GACd,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,cAAc,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAEjE,MAAM,oBAAoB,mBACxB,UAAU,EACV,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,8EAA8E;QAC9E,uFAAuF;QACvF,oFAAoF;QACpF,sCAAsC;QACtC,QAAQ,EAAE,UAAU,EACpB,IAAI,EAAE,KAAK,EACX,GAAG,EAAE,KAAK,EACV,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,IACd,gBAAgB,CACpB,CAAC;IAEF,MAAM,WAAW,GACf,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAC9B,sDACc,MAAM,EAClB,GAAG,EAAC,EAAE,EACN,GAAG,EAAE,IAAI,CAAC,MAAM,EAChB,SAAS,EAAE,oBAAoB,EAC/B,KAAK,kBACH,SAAS;YACT,cAAc,IACX,oBAAoB,IAEzB,CACH,CAAC,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CACnC,uCACE,SAAS,EAAE,oBAAoB,EAC/B,KAAK,kBACH,eAAe,EAAE,IAAI,CAAC,OAAO,IAC1B,oBAAoB,IAEzB,CACH,CAAC,CAAC,CAAC,IAAI,CAAC;IAEX,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IACpC,MAAM,MAAM,GAAG,MAAA,IAAI,CAAC,MAAM,mCAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtE,MAAM,GAAG,GAAG,kDAAkD,KAAK,aAAa,MAAM,UAAU,CAAC;IAEjG,MAAM,KAAK,GACT,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAClB,uCACE,SAAS,EAAE,gBAAgB,EAC3B,KAAK,kBACH,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,IACV,YAAY,GAEjB,GAAG,EAAE,6BAA6B,IAAA,wBAAa,EAAC,GAAG,CAAC,EAAE,iBAC1C,MAAM,EAClB,GAAG,EAAC,EAAE,GACN,CACH,CAAC,CAAC,CAAC,IAAI,CAAC;IAEX,OAAO,CACL,uCACE,GAAG,EAAE,OAAO,EACZ,SAAS,EAAE,SAAS,EACpB,KAAK,gCACH,QAAQ,EAAE,QAAQ,IACf,CAAC,MAAM,KAAK,MAAM;YACnB,CAAC,CAAC,8BAAmB;YACrB,CAAC,CAAC,MAAM,KAAK,WAAW;gBACtB,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;gBAC1D,CAAC,CAAC,MAAM,KAAK,OAAO;oBAClB,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE;oBACjC,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,GAC7C,KAAK;QAGT,KAAK;QACL,WAAW;QACX,QAAQ,IAAI,CACX;YACG,UAAU;YACV,aAAa;YACb,IAAI,CAAC,GAAG,IAAI;YACX,uEAAuE;YACvE,qDACE,GAAG,EAAE,QAAQ,EACb,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,GAAG,EAAE,MAAA,IAAI,CAAC,GAAG,mCAAI,EAAE,EACnB,KAAK,EAAE,MAAA,IAAI,CAAC,KAAK,mCAAI,SAAS,EAC9B,MAAM,EAAE,UAAU,IACd,IAAA,uBAAY,EAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAC/C,SAAS,EAAE,gBAAgB,EAC3B,KAAK,8CACH,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC1B,UAAU,IACP,8BAAmB,KACtB,SAAS;oBACT,cAAc,KACX,YAAY,KAEjB,CACH,CACO,CACX;QACD;YACE;gBACG,UAAU;gBACV,aAAa;gBACb,IAAI,CAAC,GAAG,IAAI;gBACX,uEAAuE;gBACvE,qDACE,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,GAAG,EAAE,MAAA,IAAI,CAAC,GAAG,mCAAI,EAAE,EACnB,KAAK,EAAE,MAAA,IAAI,CAAC,KAAK,mCAAI,SAAS,EAC9B,SAAS,EAAE,gBAAgB,EAC3B,KAAK,gDACA,8BAAmB,KACtB,SAAS;wBACT,cAAc,KACX,YAAY,GAEjB,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAClC,IAAA,uBAAY,EAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,EAC/C,CACH,CACO,CACD,CACP,CACP,CAAC;AACJ,CAAC,CACF,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.absolutePositioning = exports.useMergedRef = exports.useImageLoad = exports.universalBtoa = exports.isIntersectionObserverAvailable = exports.isSsr = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
exports.isSsr = typeof window === 'undefined';
|
|
6
|
+
exports.isIntersectionObserverAvailable = exports.isSsr
|
|
7
|
+
? false
|
|
8
|
+
: !!window.IntersectionObserver;
|
|
9
|
+
const universalBtoa = (str) => exports.isSsr
|
|
10
|
+
? Buffer.from(str.toString(), 'binary').toString('base64')
|
|
11
|
+
: window.btoa(str);
|
|
12
|
+
exports.universalBtoa = universalBtoa;
|
|
13
|
+
function useImageLoad(ref, callback) {
|
|
14
|
+
const [loaded, setLoaded] = (0, react_1.useState)(false);
|
|
15
|
+
function handleLoad() {
|
|
16
|
+
setLoaded(true);
|
|
17
|
+
callback === null || callback === void 0 ? void 0 : callback();
|
|
18
|
+
}
|
|
19
|
+
// https://stackoverflow.com/q/39777833/266535
|
|
20
|
+
(0, react_1.useEffect)(() => {
|
|
21
|
+
if (!ref.current) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
if (ref.current.complete && ref.current.naturalWidth) {
|
|
25
|
+
handleLoad();
|
|
26
|
+
}
|
|
27
|
+
}, []);
|
|
28
|
+
return [loaded, handleLoad];
|
|
29
|
+
}
|
|
30
|
+
exports.useImageLoad = useImageLoad;
|
|
31
|
+
function useMergedRef(...refs) {
|
|
32
|
+
return (0, react_1.useCallback)((element) => {
|
|
33
|
+
for (let i = 0; i < refs.length; i++) {
|
|
34
|
+
const ref = refs[i];
|
|
35
|
+
if (typeof ref === 'function')
|
|
36
|
+
ref(element);
|
|
37
|
+
else if (ref && typeof ref === 'object')
|
|
38
|
+
ref.current = element;
|
|
39
|
+
}
|
|
40
|
+
}, refs);
|
|
41
|
+
}
|
|
42
|
+
exports.useMergedRef = useMergedRef;
|
|
43
|
+
exports.absolutePositioning = {
|
|
44
|
+
position: 'absolute',
|
|
45
|
+
left: 0,
|
|
46
|
+
top: 0,
|
|
47
|
+
width: '100%',
|
|
48
|
+
height: '100%',
|
|
49
|
+
maxWidth: 'none',
|
|
50
|
+
maxHeight: 'none',
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/Image/utils.ts"],"names":[],"mappings":";;;AAAA,iCAAyD;AAE5C,QAAA,KAAK,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC;AAEtC,QAAA,+BAA+B,GAAG,aAAK;IAClD,CAAC,CAAC,KAAK;IACP,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC;AAE3B,MAAM,aAAa,GAAG,CAAC,GAAW,EAAU,EAAE,CACnD,aAAK;IACH,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAC1D,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAHV,QAAA,aAAa,iBAGH;AAEvB,SAAgB,YAAY,CAC1B,GAAsC,EACtC,QAAkC;IAElC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAE5C,SAAS,UAAU;QACjB,SAAS,CAAC,IAAI,CAAC,CAAC;QAChB,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,EAAI,CAAC;IACf,CAAC;IAED,8CAA8C;IAC9C,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YACrD,UAAU,EAAE,CAAC;QACf,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CAAC,MAAM,EAAE,UAAU,CAAU,CAAC;AACvC,CAAC;AAvBD,oCAuBC;AAED,SAAgB,YAAY,CAAI,GAAG,IAAoB;IACrD,OAAO,IAAA,mBAAW,EAAC,CAAC,OAAU,EAAE,EAAE;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,OAAO,GAAG,KAAK,UAAU;gBAAE,GAAG,CAAC,OAAO,CAAC,CAAC;iBACvC,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;gBACpC,GAAiC,CAAC,OAAO,GAAG,OAAO,CAAC;QACzD,CAAC;IACH,CAAC,EAAE,IAAI,CAAC,CAAC;AACX,CAAC;AATD,oCASC;AAEY,QAAA,mBAAmB,GAAwB;IACtD,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,CAAC;IACP,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,MAAM;IACd,QAAQ,EAAE,MAAM;IAChB,SAAS,EAAE,MAAM;CAClB,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.SRCImage = void 0;
|
|
7
|
+
// biome-ignore lint/style/useImportType: wrong warning
|
|
8
|
+
const react_1 = __importDefault(require("react"));
|
|
9
|
+
const utils_js_1 = require("./utils.js");
|
|
10
|
+
function SRCImage({ className, style, data, usePlaceholder = true, priority = false, sizes, srcSetCandidates = [0.25, 0.5, 0.75, 1, 1.5, 2, 3, 4], }) {
|
|
11
|
+
var _a, _b, _c, _d;
|
|
12
|
+
const webpSource = (0, utils_js_1.buildWebpSource)(data, sizes);
|
|
13
|
+
const regularSource = (0, utils_js_1.buildRegularSource)(data, sizes, srcSetCandidates);
|
|
14
|
+
const placeholderStyle = usePlaceholder && data.base64
|
|
15
|
+
? {
|
|
16
|
+
backgroundImage: `url("${data.base64}")`,
|
|
17
|
+
backgroundSize: 'cover',
|
|
18
|
+
backgroundRepeat: 'no-repeat',
|
|
19
|
+
backgroundPosition: '50% 50%',
|
|
20
|
+
color: 'transparent',
|
|
21
|
+
}
|
|
22
|
+
: usePlaceholder && data.bgColor
|
|
23
|
+
? { backgroundColor: (_a = data.bgColor) !== null && _a !== void 0 ? _a : undefined, color: 'transparent' }
|
|
24
|
+
: undefined;
|
|
25
|
+
const { width } = data;
|
|
26
|
+
const height = (_b = data.height) !== null && _b !== void 0 ? _b : Math.round(data.aspectRatio ? width / data.aspectRatio : 0);
|
|
27
|
+
const sizingStyle = {
|
|
28
|
+
aspectRatio: `${width} / ${height}`,
|
|
29
|
+
width: '100%',
|
|
30
|
+
maxWidth: `${width}px`,
|
|
31
|
+
height: 'auto',
|
|
32
|
+
};
|
|
33
|
+
const loadingBehaviourProps = priority
|
|
34
|
+
? (0, utils_js_1.priorityProp)(priority ? 'high' : undefined)
|
|
35
|
+
: { loading: 'lazy' };
|
|
36
|
+
return (react_1.default.createElement("picture", null,
|
|
37
|
+
webpSource,
|
|
38
|
+
regularSource,
|
|
39
|
+
data.src && (
|
|
40
|
+
// biome-ignore lint/a11y/useAltText: We do with alt the best we can
|
|
41
|
+
react_1.default.createElement("img", Object.assign({ src: data.src, alt: (_c = data.alt) !== null && _c !== void 0 ? _c : '', title: (_d = data.title) !== null && _d !== void 0 ? _d : undefined }, loadingBehaviourProps, { className: className, style: Object.assign(Object.assign(Object.assign({}, placeholderStyle), sizingStyle), style) })))));
|
|
42
|
+
}
|
|
43
|
+
exports.SRCImage = SRCImage;
|
|
44
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/SRCImage/index.tsx"],"names":[],"mappings":";;;;;;AAAA,uDAAuD;AACvD,kDAA0B;AAE1B,yCAA+E;AAiC/E,SAAgB,QAAQ,CAAC,EACvB,SAAS,EACT,KAAK,EACL,IAAI,EACJ,cAAc,GAAG,IAAI,EACrB,QAAQ,GAAG,KAAK,EAChB,KAAK,EACL,gBAAgB,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACnC;;IAClB,MAAM,UAAU,GAAG,IAAA,0BAAe,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAChD,MAAM,aAAa,GAAG,IAAA,6BAAkB,EAAC,IAAI,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;IAExE,MAAM,gBAAgB,GACpB,cAAc,IAAI,IAAI,CAAC,MAAM;QAC3B,CAAC,CAAC;YACE,eAAe,EAAE,QAAQ,IAAI,CAAC,MAAM,IAAI;YACxC,cAAc,EAAE,OAAO;YACvB,gBAAgB,EAAE,WAAW;YAC7B,kBAAkB,EAAE,SAAS;YAC7B,KAAK,EAAE,aAAa;SACrB;QACH,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC,OAAO;YAC9B,CAAC,CAAC,EAAE,eAAe,EAAE,MAAA,IAAI,CAAC,OAAO,mCAAI,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE;YACtE,CAAC,CAAC,SAAS,CAAC;IAElB,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAEvB,MAAM,MAAM,GACV,MAAA,IAAI,CAAC,MAAM,mCAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7E,MAAM,WAAW,GAAG;QAClB,WAAW,EAAE,GAAG,KAAK,MAAM,MAAM,EAAE;QACnC,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,GAAG,KAAK,IAAI;QACtB,MAAM,EAAE,MAAM;KACf,CAAC;IAEF,MAAM,qBAAqB,GAAG,QAAQ;QACpC,CAAC,CAAC,IAAA,uBAAY,EAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7C,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAExB,OAAO,CACL;QACG,UAAU;QACV,aAAa;QACb,IAAI,CAAC,GAAG,IAAI;QACX,oEAAoE;QACpE,qDACE,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,GAAG,EAAE,MAAA,IAAI,CAAC,GAAG,mCAAI,EAAE,EACnB,KAAK,EAAE,MAAA,IAAI,CAAC,KAAK,mCAAI,SAAS,IAC1B,qBAAqB,IACzB,SAAS,EAAE,SAAS,EACpB,KAAK,gDACA,gBAAgB,GAChB,WAAW,GACX,KAAK,KAEV,CACH,CACO,CACX,CAAC;AACJ,CAAC;AA9DD,4BA8DC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.buildRegularSource = exports.buildWebpSource = exports.buildSrcSetFromSrc = exports.priorityProp = void 0;
|
|
27
|
+
const react_1 = __importStar(require("react"));
|
|
28
|
+
function priorityProp(fetchPriority) {
|
|
29
|
+
const [majorStr, minorStr] = react_1.version.split('.');
|
|
30
|
+
const major = Number.parseInt(majorStr, 10);
|
|
31
|
+
const minor = Number.parseInt(minorStr, 10);
|
|
32
|
+
if (major > 18 || (major === 18 && minor >= 3)) {
|
|
33
|
+
// In React 18.3.0 or newer, we must use camelCase
|
|
34
|
+
// prop to avoid "Warning: Invalid DOM property".
|
|
35
|
+
// See https://github.com/facebook/react/pull/25927
|
|
36
|
+
return { fetchPriority };
|
|
37
|
+
}
|
|
38
|
+
// In React 18.2.0 or older, we must use lowercase prop
|
|
39
|
+
// to avoid "Warning: Invalid DOM property".
|
|
40
|
+
return { fetchpriority: fetchPriority };
|
|
41
|
+
}
|
|
42
|
+
exports.priorityProp = priorityProp;
|
|
43
|
+
const bogusBaseUrl = 'https://example.com/';
|
|
44
|
+
const buildSrcSetFromSrc = (src, width, candidateMultipliers) => {
|
|
45
|
+
if (!(src && width)) {
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
return candidateMultipliers
|
|
49
|
+
.map((multiplier) => {
|
|
50
|
+
const url = new URL(src, bogusBaseUrl);
|
|
51
|
+
if (multiplier !== 1) {
|
|
52
|
+
url.searchParams.set('dpr', `${multiplier}`);
|
|
53
|
+
const maxH = url.searchParams.get('max-h');
|
|
54
|
+
const maxW = url.searchParams.get('max-w');
|
|
55
|
+
if (maxH) {
|
|
56
|
+
url.searchParams.set('max-h', `${Math.floor(Number.parseInt(maxH) * multiplier)}`);
|
|
57
|
+
}
|
|
58
|
+
if (maxW) {
|
|
59
|
+
url.searchParams.set('max-w', `${Math.floor(Number.parseInt(maxW) * multiplier)}`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
const finalWidth = Math.floor(width * multiplier);
|
|
63
|
+
if (finalWidth < 50) {
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
return `${url.toString().replace(bogusBaseUrl, '/')} ${finalWidth}w`;
|
|
67
|
+
})
|
|
68
|
+
.filter(Boolean)
|
|
69
|
+
.join(',');
|
|
70
|
+
};
|
|
71
|
+
exports.buildSrcSetFromSrc = buildSrcSetFromSrc;
|
|
72
|
+
function buildWebpSource(data, sizes) {
|
|
73
|
+
var _a;
|
|
74
|
+
return (data.webpSrcSet && (react_1.default.createElement("source", { srcSet: data.webpSrcSet, sizes: (_a = sizes !== null && sizes !== void 0 ? sizes : data.sizes) !== null && _a !== void 0 ? _a : undefined, type: "image/webp" })));
|
|
75
|
+
}
|
|
76
|
+
exports.buildWebpSource = buildWebpSource;
|
|
77
|
+
function buildRegularSource(data, sizes, srcSetCandidates) {
|
|
78
|
+
var _a, _b;
|
|
79
|
+
return (react_1.default.createElement("source", { srcSet: (_a = data.srcSet) !== null && _a !== void 0 ? _a : (0, exports.buildSrcSetFromSrc)(data.src, data.width, srcSetCandidates), sizes: (_b = sizes !== null && sizes !== void 0 ? sizes : data.sizes) !== null && _b !== void 0 ? _b : undefined }));
|
|
80
|
+
}
|
|
81
|
+
exports.buildRegularSource = buildRegularSource;
|
|
82
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/SRCImage/utils.tsx"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ function toNextMetadata(data) {
|
|
|
8
8
|
data.forEach((datum) => {
|
|
9
9
|
const { tag, attributes, content } = datum;
|
|
10
10
|
if (tag === 'title') {
|
|
11
|
-
metadata
|
|
11
|
+
metadata.title = content;
|
|
12
12
|
}
|
|
13
13
|
if ((0, types_js_1.isSeoOrFaviconTag)(datum) && (0, types_js_1.isSeoMetaTag)(datum)) {
|
|
14
14
|
if ((0, types_js_1.isOgMetaAttributes)(datum.attributes)) {
|
|
@@ -17,21 +17,21 @@ function toNextMetadata(data) {
|
|
|
17
17
|
const [_, ...parts] = property.split(':');
|
|
18
18
|
if ((parts === null || parts === void 0 ? void 0 : parts.length) === 1) {
|
|
19
19
|
if (parts[0] === 'image') {
|
|
20
|
-
metadata
|
|
21
|
-
metadata
|
|
20
|
+
metadata.openGraph || (metadata.openGraph = {});
|
|
21
|
+
metadata.openGraph.images = Object.assign(Object.assign({}, metadata.openGraph.images), { url: content });
|
|
22
22
|
}
|
|
23
23
|
else {
|
|
24
|
-
metadata
|
|
24
|
+
metadata.openGraph = Object.assign(Object.assign({}, metadata.openGraph), { [camelize(parts[0])]: content });
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
if ((parts === null || parts === void 0 ? void 0 : parts.length) === 2) {
|
|
28
28
|
if (parts[0] === 'image' && parts[1] === 'width') {
|
|
29
|
-
metadata
|
|
30
|
-
metadata
|
|
29
|
+
metadata.openGraph || (metadata.openGraph = {});
|
|
30
|
+
metadata.openGraph.images = Object.assign(Object.assign({}, metadata.openGraph.images), { width: content });
|
|
31
31
|
}
|
|
32
32
|
else if (parts[0] === 'image' && parts[1] === 'height') {
|
|
33
|
-
metadata
|
|
34
|
-
metadata
|
|
33
|
+
metadata.openGraph || (metadata.openGraph = {});
|
|
34
|
+
metadata.openGraph.images = Object.assign(Object.assign({}, metadata.openGraph.images), { height: content });
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
}
|
|
@@ -44,7 +44,7 @@ function toNextMetadata(data) {
|
|
|
44
44
|
else if (name.match(/^twitter:/)) {
|
|
45
45
|
const [_, ...parts] = name.split(':');
|
|
46
46
|
if ((parts === null || parts === void 0 ? void 0 : parts.length) === 1) {
|
|
47
|
-
metadata
|
|
47
|
+
metadata.twitter = Object.assign(Object.assign({}, metadata.twitter), { [camelize(parts[0])]: content });
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
else {
|
|
@@ -55,17 +55,17 @@ function toNextMetadata(data) {
|
|
|
55
55
|
if ((0, types_js_1.isSeoLinkTag)(datum)) {
|
|
56
56
|
if ((0, types_js_1.isAppleTouchIconAttributes)(datum.attributes)) {
|
|
57
57
|
const { sizes, href } = datum.attributes;
|
|
58
|
-
metadata
|
|
59
|
-
metadata
|
|
60
|
-
...(metadata
|
|
58
|
+
metadata.icons || (metadata.icons = {});
|
|
59
|
+
metadata.icons.apple = [
|
|
60
|
+
...(metadata.icons.apple || []),
|
|
61
61
|
{ url: href, sizes },
|
|
62
62
|
];
|
|
63
63
|
}
|
|
64
64
|
if ((0, types_js_1.isFaviconAttributes)(datum.attributes)) {
|
|
65
65
|
const { sizes, type, rel, href } = datum.attributes;
|
|
66
|
-
metadata
|
|
67
|
-
metadata
|
|
68
|
-
...(metadata
|
|
66
|
+
metadata.icons || (metadata.icons = {});
|
|
67
|
+
metadata.icons.icon = [
|
|
68
|
+
...(metadata.icons.icon || []),
|
|
69
69
|
{ url: href, sizes, type, rel },
|
|
70
70
|
];
|
|
71
71
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nextUtils.js","sourceRoot":"","sources":["../../../src/Seo/nextUtils.ts"],"names":[],"mappings":";;;AAAA,yCAUoB;AAwDpB,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAE,EAAE,CAClC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;AAEnE,SAAgB,cAAc,CAC5B,IAA4C;IAE5C,MAAM,QAAQ,GAAwB,EAAE,CAAC;IAEzC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACrB,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QAE3C,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YACpB,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"nextUtils.js","sourceRoot":"","sources":["../../../src/Seo/nextUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ exports.renderMetaTags = void 0;
|
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
8
|
function renderMetaTags(data) {
|
|
9
9
|
return data.map(({ tag, attributes, content }) => {
|
|
10
|
-
|
|
10
|
+
const key = [tag];
|
|
11
11
|
if (attributes && 'property' in attributes) {
|
|
12
12
|
key.push(attributes.property);
|
|
13
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderMetaTags.js","sourceRoot":"","sources":["../../../src/Seo/renderMetaTags.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAG1B,SAAgB,cAAc,CAC5B,IAA4C;IAE5C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;QAC/C,
|
|
1
|
+
{"version":3,"file":"renderMetaTags.js","sourceRoot":"","sources":["../../../src/Seo/renderMetaTags.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAG1B,SAAgB,cAAc,CAC5B,IAA4C;IAE5C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;QAC/C,MAAM,GAAG,GAAa,CAAC,GAAG,CAAC,CAAC;QAE5B,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC;YAC3C,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;QAED,IAAI,UAAU,IAAI,MAAM,IAAI,UAAU,EAAE,CAAC;YACvC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAED,IAAI,UAAU,IAAI,KAAK,IAAI,UAAU,EAAE,CAAC;YACtC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,UAAU,IAAI,OAAO,IAAI,UAAU,EAAE,CAAC;YACxC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAED,MAAM,GAAG,GAAG,GAAgC,CAAC;QAE7C,OAAO,CACL,8BAAC,GAAG,kBAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAM,UAAU,GACpC,OAAO,CACJ,CACP,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AA9BD,wCA8BC"}
|