UNPKG

6.08 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5exports.__esModule = true;
6exports.createNoScriptStyles = exports.createStyleImage = exports.createPseudoStyles = exports.createPseudoElementMediaQuery = exports.createPseudoElementWithContent = exports.createPseudoElement = void 0;
7
8var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
10var _StyleUtils = require("./StyleUtils");
11
12var _ImageUtils = require("./ImageUtils");
13
14var _MediaUtils = require("./MediaUtils");
15
16var _SimpleUtils = require("./SimpleUtils");
17
18var createPseudoElement = function createPseudoElement(className, appendix) {
19 if (appendix === void 0) {
20 appendix = ":before";
21 }
22
23 var escapedClassName = (0, _StyleUtils.escapeClassNames)(className);
24 var classes = (0, _SimpleUtils.stringToArray)(escapedClassName);
25 var pseudoClasses = "";
26
27 if (Array.isArray(classes)) {
28 classes = classes.filter(function (c) {
29 return c !== '';
30 });
31
32 if (classes.length > 0) {
33 pseudoClasses = "." + classes.join('.') + appendix;
34 }
35 }
36
37 return pseudoClasses;
38};
39
40exports.createPseudoElement = createPseudoElement;
41
42var createPseudoElementWithContent = function createPseudoElementWithContent(pseudoElementString, imageSource) {
43 return "\n " + pseudoElementString + " {\n opacity: 1;\n background-image: " + imageSource + ";\n }";
44};
45
46exports.createPseudoElementWithContent = createPseudoElementWithContent;
47
48var createPseudoElementMediaQuery = function createPseudoElementMediaQuery(pseudoElementString, media, imageSource, imageSourceWebP) {
49 return "\n @media " + media + " {\n " + createPseudoElementWithContent(pseudoElementString, imageSource) + "\n }\n " + (imageSourceWebP && "@media " + media + " {\n " + createPseudoElementWithContent(pseudoElementString, imageSourceWebP) + "\n }") + "\n ";
50};
51
52exports.createPseudoElementMediaQuery = createPseudoElementMediaQuery;
53
54var createPseudoStyles = function createPseudoStyles(_ref) {
55 var className = _ref.className,
56 transitionDelay = _ref.transitionDelay,
57 lastImage = _ref.lastImage,
58 nextImage = _ref.nextImage,
59 afterOpacity = _ref.afterOpacity,
60 bgColor = _ref.bgColor,
61 fadeIn = _ref.fadeIn,
62 backgroundStyles = _ref.backgroundStyles,
63 style = _ref.style,
64 finalImage = _ref.finalImage,
65 originalData = _ref.originalData;
66 var pseudoBefore = createPseudoElement(className);
67 var pseudoAfter = createPseudoElement(className, ":after");
68 return "\n " + pseudoBefore + ",\n " + pseudoAfter + " {\n content: '';\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n " + (bgColor && "background-color: " + bgColor + ";") + "\n " + (0, _StyleUtils.setTransitionStyles)(transitionDelay, fadeIn) + "\n " + (0, _StyleUtils.kebabifyBackgroundStyles)((0, _extends2.default)({}, backgroundStyles, {}, style)) + "\n }\n " + pseudoBefore + " {\n z-index: -100;\n " + (afterOpacity && createStyleImage(nextImage, originalData) || "") + "\n " + (!afterOpacity && createStyleImage(lastImage, originalData) || "") + "\n opacity: " + afterOpacity + "; \n }\n " + pseudoAfter + " {\n z-index: -101;\n " + (!afterOpacity && createStyleImage(nextImage, originalData) || "") + "\n " + (afterOpacity && createStyleImage(lastImage, originalData) || "") + "\n " + (finalImage ? "opacity: " + Number(!afterOpacity) + ";" : "") + "\n }\n ";
69};
70
71exports.createPseudoStyles = createPseudoStyles;
72
73var createStyleImage = function createStyleImage(image, originalData) {
74 var hasStackedImages = (0, _ImageUtils.hasImageArray)({
75 fluid: originalData
76 }) && !(0, _MediaUtils.hasArtDirectionArray)({
77 fluid: originalData
78 });
79
80 if ((0, _SimpleUtils.isBrowser)() || hasStackedImages) {
81 return image ? "background-image: " + image + ";" : "";
82 }
83
84 return "";
85};
86
87exports.createStyleImage = createStyleImage;
88
89var createNoScriptStyles = function createNoScriptStyles(_ref2) {
90 var className = _ref2.className,
91 image = _ref2.image;
92
93 if (image) {
94 var returnArray = Array.isArray(image) && !(0, _MediaUtils.hasArtDirectionArray)({
95 fluid: image
96 });
97 var addUrl = false;
98 var allSources = (0, _ImageUtils.getCurrentFromData)({
99 data: image,
100 propName: "src",
101 checkLoaded: false,
102 addUrl: addUrl,
103 returnArray: returnArray
104 });
105 var sourcesAsUrl = (0, _ImageUtils.getUrlString)({
106 imageString: allSources,
107 hasImageUrls: true,
108 returnArray: returnArray
109 });
110 var sourcesAsUrlWithCSS = "";
111
112 if (returnArray) {
113 var cssStrings = (0, _ImageUtils.getCurrentFromData)({
114 data: image,
115 propName: "CSS_STRING",
116 addUrl: false,
117 returnArray: returnArray
118 });
119 sourcesAsUrlWithCSS = (0, _SimpleUtils.filteredJoin)((0, _SimpleUtils.combineArray)(sourcesAsUrl, cssStrings));
120 }
121
122 var pseudoBefore = createPseudoElement(className);
123
124 if ((0, _MediaUtils.hasArtDirectionArray)({
125 fluid: image
126 })) {
127 return image.map(function (currentMedia) {
128 var sourceString = (0, _ImageUtils.getUrlString)({
129 imageString: currentMedia.src
130 });
131 var webPString = (0, _ImageUtils.getUrlString)({
132 imageString: currentMedia.srcWebp || ""
133 });
134
135 if (currentMedia.media) {
136 return createPseudoElementMediaQuery(pseudoBefore, currentMedia.media, sourceString, webPString);
137 }
138
139 return createPseudoElementMediaQuery(pseudoBefore, 'screen', sourceString, webPString);
140 }).join('');
141 }
142
143 return createPseudoElementWithContent(pseudoBefore, sourcesAsUrlWithCSS || sourcesAsUrl);
144 }
145
146 return "";
147};
148
149exports.createNoScriptStyles = createNoScriptStyles;
\No newline at end of file