1 | "use strict";
|
2 |
|
3 | var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4 |
|
5 | exports.__esModule = true;
|
6 | exports.matchesMedia = exports.hasArtDirectionArray = exports.hasArtDirectionSupport = exports.createArtDirectionSources = exports.groupByMedia = void 0;
|
7 |
|
8 | var _sortMediaQueries = _interopRequireDefault(require("sort-media-queries"));
|
9 |
|
10 | var _SimpleUtils = require("./SimpleUtils");
|
11 |
|
12 | var groupByMedia = function groupByMedia(imageVariants) {
|
13 | var without = [];
|
14 | var sortedVariants = (0, _sortMediaQueries.default)(imageVariants, 'media');
|
15 | sortedVariants.forEach(function (variant) {
|
16 | return !variant.media && without.push(variant);
|
17 | });
|
18 |
|
19 | if (without.length > 1 && process.env.NODE_ENV !== "production") {
|
20 | console.warn("We've found " + without.length + " sources without a media property. They might be ignored by the browser, see: https://www.gatsbyjs.org/packages/gatsby-image/#art-directing-multiple-images");
|
21 | }
|
22 |
|
23 | return sortedVariants;
|
24 | };
|
25 |
|
26 | exports.groupByMedia = groupByMedia;
|
27 |
|
28 | var createArtDirectionSources = function createArtDirectionSources(_ref) {
|
29 | var fluid = _ref.fluid,
|
30 | fixed = _ref.fixed;
|
31 | var currentSource = fluid || fixed;
|
32 | return currentSource.reduce(function (sources, image) {
|
33 | if (!image.media) {
|
34 | return sources;
|
35 | }
|
36 |
|
37 | var source = document.createElement('source');
|
38 |
|
39 | if (image.srcSetWebp) {
|
40 | source.type = "image/webp";
|
41 | source.srcset = image.srcSetWebp;
|
42 | }
|
43 |
|
44 | if (image.sizes) {
|
45 | source.sizes = image.sizes;
|
46 | }
|
47 |
|
48 | source.media = image.media;
|
49 | sources.push(source);
|
50 | return sources;
|
51 | }, []);
|
52 | };
|
53 |
|
54 | exports.createArtDirectionSources = createArtDirectionSources;
|
55 |
|
56 | var hasArtDirectionSupport = function hasArtDirectionSupport(props, prop) {
|
57 | return props[prop] && Array.isArray(props[prop]) && props[prop].some(function (image) {
|
58 | return !!image && typeof image.media !== 'undefined';
|
59 | });
|
60 | };
|
61 |
|
62 | exports.hasArtDirectionSupport = hasArtDirectionSupport;
|
63 |
|
64 | var hasArtDirectionArray = function hasArtDirectionArray(props) {
|
65 | return hasArtDirectionSupport(props, 'fluid') || hasArtDirectionSupport(props, 'fixed');
|
66 | };
|
67 |
|
68 | exports.hasArtDirectionArray = hasArtDirectionArray;
|
69 |
|
70 | var matchesMedia = function matchesMedia(_ref2) {
|
71 | var media = _ref2.media;
|
72 | return media ? (0, _SimpleUtils.isBrowser)() && typeof window.matchMedia !== "undefined" && !!window.matchMedia(media).matches : false;
|
73 | };
|
74 |
|
75 | exports.matchesMedia = matchesMedia; |
\ | No newline at end of file |