@atlaskit/media-file-preview 0.15.0 → 0.15.2
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/CHANGELOG.md +15 -0
- package/dist/cjs/globalScope/globalScope.js +16 -76
- package/dist/cjs/globalScope/originalScriptCode.js +116 -0
- package/dist/es2019/globalScope/globalScope.js +16 -69
- package/dist/es2019/globalScope/originalScriptCode.js +122 -0
- package/dist/esm/globalScope/globalScope.js +16 -73
- package/dist/esm/globalScope/originalScriptCode.js +114 -0
- package/dist/types/globalScope/globalScope.d.ts +0 -3
- package/dist/types/globalScope/originalScriptCode.d.ts +15 -0
- package/dist/types-ts4.5/globalScope/globalScope.d.ts +0 -3
- package/dist/types-ts4.5/globalScope/originalScriptCode.d.ts +15 -0
- package/package.json +1 -1
- package/dist/cjs/globalScope/printScript.js +0 -37
- package/dist/es2019/globalScope/printScript.js +0 -23
- package/dist/esm/globalScope/printScript.js +0 -30
- package/dist/types/globalScope/printScript.d.ts +0 -2
- package/dist/types-ts4.5/globalScope/printScript.d.ts +0 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# @atlaskit/media-file-preview
|
|
2
2
|
|
|
3
|
+
## 0.15.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`5e282b606cfbf`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/5e282b606cfbf) -
|
|
8
|
+
Fixing the inline script to be injected correctly without susception to minification
|
|
9
|
+
|
|
10
|
+
## 0.15.1
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- [`99bce197cbf4e`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/99bce197cbf4e) -
|
|
15
|
+
Fixing the script to correctly reference mediaCountSSR string
|
|
16
|
+
- Updated dependencies
|
|
17
|
+
|
|
3
18
|
## 0.15.0
|
|
4
19
|
|
|
5
20
|
### Minor Changes
|
|
@@ -5,11 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.getKey = exports.generateScriptProps = exports.GLOBAL_MEDIA_NAMESPACE = exports.GLOBAL_MEDIA_COUNT_SSR = exports.GLOBAL_MEDIA_CARD_SSR = void 0;
|
|
7
7
|
exports.getMediaCardSSR = getMediaCardSSR;
|
|
8
|
-
exports.getMediaCountSSR = getMediaCountSSR;
|
|
9
8
|
exports.getMediaGlobalScope = getMediaGlobalScope;
|
|
10
|
-
exports.incrementMediaCountSSR = incrementMediaCountSSR;
|
|
11
|
-
exports.storeDataURI = void 0;
|
|
12
|
-
var _printScript = require("./printScript");
|
|
13
9
|
// ----- WARNING -----
|
|
14
10
|
// This is a very sensitive fraction of code.
|
|
15
11
|
// Any changes to this file must be tested directly in product before merging.
|
|
@@ -39,24 +35,6 @@ function getMediaCardSSR() {
|
|
|
39
35
|
}
|
|
40
36
|
return globalMedia[key];
|
|
41
37
|
}
|
|
42
|
-
function getMediaCountSSR() {
|
|
43
|
-
var globalScope = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;
|
|
44
|
-
var globalMedia = getMediaGlobalScope(globalScope);
|
|
45
|
-
// Must match GLOBAL_MEDIA_COUNT_SSR. Can't reference the constant from here.
|
|
46
|
-
if (!globalMedia[GLOBAL_MEDIA_COUNT_SSR]) {
|
|
47
|
-
globalMedia[GLOBAL_MEDIA_COUNT_SSR] = 0;
|
|
48
|
-
}
|
|
49
|
-
return globalMedia[GLOBAL_MEDIA_COUNT_SSR];
|
|
50
|
-
}
|
|
51
|
-
function incrementMediaCountSSR() {
|
|
52
|
-
var globalScope = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;
|
|
53
|
-
var globalMedia = getMediaGlobalScope(globalScope);
|
|
54
|
-
// Must match GLOBAL_MEDIA_COUNT_SSR. Can't reference the constant from here.
|
|
55
|
-
if (!globalMedia[GLOBAL_MEDIA_COUNT_SSR]) {
|
|
56
|
-
globalMedia[GLOBAL_MEDIA_COUNT_SSR] = 0;
|
|
57
|
-
}
|
|
58
|
-
globalMedia[GLOBAL_MEDIA_COUNT_SSR]++;
|
|
59
|
-
}
|
|
60
38
|
var dashed = function dashed(param) {
|
|
61
39
|
return param ? "-".concat(param) : '';
|
|
62
40
|
};
|
|
@@ -66,62 +44,24 @@ var getKey = exports.getKey = function getKey(_ref, resizeMode) {
|
|
|
66
44
|
occurrenceKey = _ref.occurrenceKey;
|
|
67
45
|
return "".concat(id).concat(dashed(collectionName)).concat(dashed(occurrenceKey)).concat(dashed(resizeMode));
|
|
68
46
|
};
|
|
69
|
-
var storeDataURI = exports.storeDataURI = function storeDataURI(key, paramDataURI, paramMode, paramSrcSet, dimensions, error) {
|
|
70
|
-
var featureFlags = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : {};
|
|
71
|
-
var globalScope = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : window;
|
|
72
|
-
var mediaCardSsr = getMediaCardSSR(globalScope);
|
|
73
|
-
var mediaCountSsr = getMediaCountSSR(globalScope);
|
|
74
|
-
if (featureFlags['media-perf-uplift-mutation-fix']) {
|
|
75
|
-
var _prevData$dimensions, _script;
|
|
76
|
-
var prevData = mediaCardSsr[key];
|
|
77
|
-
var isPreviousImageLarger = (prevData === null || prevData === void 0 ? void 0 : prevData.mode) === paramMode && prevData && ((_prevData$dimensions = prevData.dimensions) === null || _prevData$dimensions === void 0 ? void 0 : _prevData$dimensions.width) && (dimensions === null || dimensions === void 0 ? void 0 : dimensions.width) && prevData.dimensions.width > dimensions.width;
|
|
78
|
-
var srcSet = isPreviousImageLarger ? prevData === null || prevData === void 0 ? void 0 : prevData.srcSet : paramSrcSet;
|
|
79
|
-
var dataURI = isPreviousImageLarger ? prevData === null || prevData === void 0 ? void 0 : prevData.dataURI : paramDataURI;
|
|
80
|
-
var currData = {
|
|
81
|
-
dataURI: dataURI,
|
|
82
|
-
dimensions: dimensions,
|
|
83
|
-
error: error,
|
|
84
|
-
srcSet: srcSet,
|
|
85
|
-
loading: 'lazy'
|
|
86
|
-
};
|
|
87
|
-
var img = (_script = script) === null || _script === void 0 || (_script = _script.parentElement) === null || _script === void 0 ? void 0 : _script.querySelector('img');
|
|
88
|
-
if (img && featureFlags['media-perf-lazy-loading-optimisation'] && mediaCountSsr < MAX_EAGER_LOAD_COUNT) {
|
|
89
|
-
incrementMediaCountSSR(globalScope);
|
|
90
|
-
if (img.getAttribute('loading') === 'lazy') {
|
|
91
|
-
img.removeAttribute('loading');
|
|
92
|
-
}
|
|
93
|
-
currData.loading = '';
|
|
94
|
-
}
|
|
95
|
-
if (img && dataURI) {
|
|
96
|
-
img.src = dataURI;
|
|
97
|
-
}
|
|
98
|
-
if (img && srcSet) {
|
|
99
|
-
img.srcset = srcSet;
|
|
100
|
-
}
|
|
101
|
-
currData.loadPromise = new Promise(function (resolve, reject) {
|
|
102
|
-
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
103
|
-
img === null || img === void 0 || img.addEventListener('load', function () {
|
|
104
|
-
resolve(void 0);
|
|
105
|
-
});
|
|
106
|
-
|
|
107
|
-
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
108
|
-
img === null || img === void 0 || img.addEventListener('error', function () {
|
|
109
|
-
reject(new Error('Failed to load image'));
|
|
110
|
-
});
|
|
111
|
-
});
|
|
112
|
-
mediaCardSsr[key] = isPreviousImageLarger ? prevData : currData;
|
|
113
|
-
} else {
|
|
114
|
-
mediaCardSsr[key] = {
|
|
115
|
-
dataURI: paramDataURI,
|
|
116
|
-
dimensions: dimensions,
|
|
117
|
-
error: error
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
};
|
|
121
47
|
var generateScript = function generateScript(identifier, dataURI, mode, srcSet, dimensions, error) {
|
|
122
48
|
var featureFlags = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : {};
|
|
123
|
-
var
|
|
124
|
-
|
|
49
|
+
var key = getKey(identifier, mode);
|
|
50
|
+
|
|
51
|
+
// Serialize the parameters for injection into the script
|
|
52
|
+
var params = {
|
|
53
|
+
key: key,
|
|
54
|
+
dataURI: dataURI,
|
|
55
|
+
mode: mode,
|
|
56
|
+
srcSet: srcSet,
|
|
57
|
+
dimensions: dimensions,
|
|
58
|
+
error: error,
|
|
59
|
+
featureFlags: featureFlags,
|
|
60
|
+
maxEagerLoadCount: MAX_EAGER_LOAD_COUNT
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
// Read originalScriptCode.ts before making changes
|
|
64
|
+
return "!function(){function e(){const e=\"__MEDIA_INTERNAL\";return window[e]||(window[e]={}),window[e]}!function(n){var t;const i=document.currentScript,o=function(){const n=e(),t=\"mediaCardSsr\";return n[t]||(n[t]={}),n[t]}(),r=function(){const n=e(),t=\"mediaCountSsr\";return n[t]||(n[t]=0),n[t]}(),{key:d}=n,a=n.dataURI,s=n.mode,c=n.srcSet,{dimensions:m}=n,{error:u}=n,{featureFlags:l}=n;if(l[\"media-perf-uplift-mutation-fix\"]){const t=o[d],f=t&&t.mode===s&&t.dimensions&&t.dimensions.width&&m&&m.width&&t.dimensions.width>m.width,w=f?t.srcSet:c,g=f?t.dataURI:a,p={dataURI:g,dimensions:m,error:u,srcSet:w,loading:\"lazy\",loadPromise:void 0,mode:s},S=i&&i.parentElement&&i.parentElement.querySelector(\"img\");S&&l[\"media-perf-lazy-loading-optimisation\"]&&r<n.maxEagerLoadCount&&(!function(){const n=e(),t=\"mediaCountSsr\";n[t]||(n[t]=0),n[t]++}(),\"lazy\"===S.getAttribute(\"loading\")&&S.removeAttribute(\"loading\"),p.loading=\"\"),S&&g&&(S.src=g),S&&w&&(S.srcset=w),p.loadPromise=new Promise((function(e,n){S&&(S.addEventListener(\"load\",(function(){e(void 0)})),S.addEventListener(\"error\",(function(){n(new Error(\"Failed to load image\"))})))})),o[d]=f?t:p}else o[d]={dataURI:a,dimensions:m,error:u};null===(t=document.currentScript)||void 0===t||t.remove()}({replace:\"\"})}();".replace('{replace:""}', JSON.stringify(params));
|
|
125
65
|
};
|
|
126
66
|
var generateScriptProps = exports.generateScriptProps = function generateScriptProps(identifier, dataURI, mode, srcSet, dimensions, error) {
|
|
127
67
|
var featureFlags = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : {};
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/* eslint-disable @atlaskit/platform/no-direct-document-usage */
|
|
4
|
+
|
|
5
|
+
/** IMPORTANT: This is the original code for the script.
|
|
6
|
+
* Do not change the code without testing it in product first.
|
|
7
|
+
* Steps:
|
|
8
|
+
* 1. Make changes in this code
|
|
9
|
+
* 2. Manually minify the code via https://repl.parceljs.org/ (using typescript preset with minify option)
|
|
10
|
+
* - eg: https://repl.parceljs.org/#JTdCJTIyZmlsZXMlMjIlM0ElNUIlNUIlMjIlMkZzcmMlMkZpbmRleC50cyUyMiUyQyU3QiUyMnZhbHVlJTIyJTNBJTIyJTJGKiUyMGVzbGludC1kaXNhYmxlJTIwJTQwYXRsYXNraXQlMkZwbGF0Zm9ybSUyRm5vLWRpcmVjdC1kb2N1bWVudC11c2FnZSUyMColMkYlNUNuJTVDbiUyRioqJTIwSU1QT1JUQU5UJTNBJTIwVGhpcyUyMGlzJTIwdGhlJTIwb3JpZ2luYWwlMjBjb2RlJTIwZm9yJTIwdGhlJTIwc2NyaXB0LiU1Q24lMjAqJTIwRG8lMjBub3QlMjBjaGFuZ2UlMjB0aGUlMjBjb2RlJTIwd2l0aG91dCUyMHRlc3RpbmclMjBpdCUyMGluJTIwcHJvZHVjdCUyMGZpcnN0LiU1Q24lMjAqJTIwU3RlcHMlM0ElNUNuJTIwKiUyMDEuJTIwTWFrZSUyMGNoYW5nZXMlMjBpbiUyMHRoaXMlMjBjb2RlJTVDbiUyMColMjAyLiUyME1hbnVhbGx5JTIwbWluaWZ5JTIwdGhlJTIwY29kZSUyMHZpYSUyMGh0dHBzJTNBJTJGJTJGcmVwbC5wYXJjZWxqcy5vcmclMkYlNUNuJTIwKiUyMDMuJTIwQ29weSUyMHRoZSUyMG1pbmlmaWVkJTIwY29kZSUyMGludG8lMjBnbG9iYWxTY29wZS50c3glMjByZXBsYWNpbmclMjB0aGUlMjBleGlzdGluZyUyMHN0cmluZyUyMHdoZXJlJTIwaXQlMjBzYXlzJTIwUEFTVEUlMjBIRVJFJTVDbiUyMColMjA0LiUyMFJ1biUyMHRoZSUyMHRlc3RzJTIwYW5kJTIwbWFrZSUyMHN1cmUlMjB0aGV5JTIwcGFzcyU1Q24lMjAqJTIwNS4lMjBURVNUJTIwSU4lMjBQUk9EVUNUUyUyMEJFRk9SRSUyME1FUkdJTkclNUNuJTIwKiU1Q24lMjAqJTJGJTVDbiU1Q25mdW5jdGlvbiUyMGdldE1lZGlhR2xvYmFsU2NvcGUoKSUyMCU3QiU1Q24lMjAlMjBjb25zdCUyMG5hbWVzcGFjZSUyMCUzRCUyMCU1QyUyMl9fTUVESUFfSU5URVJOQUwlNUMlMjIlM0IlNUNuJTIwJTIwaWYlMjAoISh3aW5kb3clMjBhcyUyMGFueSklNUJuYW1lc3BhY2UlNUQpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCh3aW5kb3clMjBhcyUyMGFueSklNUJuYW1lc3BhY2UlNUQlMjAlM0QlMjAlN0IlN0QlM0IlNUNuJTIwJTIwJTdEJTVDbiUyMCUyMHJldHVybiUyMCh3aW5kb3clMjBhcyUyMGFueSklNUJuYW1lc3BhY2UlNUQlM0IlNUNuJTdEJTVDbiU1Q25mdW5jdGlvbiUyMGdldE1lZGlhQ2FyZFNTUigpJTIwJTdCJTVDbiUyMCUyMGNvbnN0JTIwZ2xvYmFsTWVkaWElMjAlM0QlMjBnZXRNZWRpYUdsb2JhbFNjb3BlKCklM0IlNUNuJTIwJTIwY29uc3QlMjBrZXklMjAlM0QlMjAlNUMlMjJtZWRpYUNhcmRTc3IlNUMlMjIlM0IlNUNuJTIwJTIwaWYlMjAoIWdsb2JhbE1lZGlhJTVCa2V5JTVEKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjBnbG9iYWxNZWRpYSU1QmtleSU1RCUyMCUzRCUyMCU3QiU3RCUzQiU1Q24lMjAlMjAlN0QlNUNuJTIwJTIwcmV0dXJuJTIwZ2xvYmFsTWVkaWElNUJrZXklNUQlM0IlNUNuJTdEJTVDbiU1Q25mdW5jdGlvbiUyMGdldE1lZGlhQ291bnRTU1IoKSUyMCU3QiU1Q24lMjAlMjBjb25zdCUyMGdsb2JhbE1lZGlhJTIwJTNEJTIwZ2V0TWVkaWFHbG9iYWxTY29wZSgpJTNCJTVDbiUyMCUyMGNvbnN0JTIwa2V5JTIwJTNEJTIwJTVDJTIybWVkaWFDb3VudFNzciU1QyUyMiUzQiU1Q24lMjAlMjBpZiUyMCghZ2xvYmFsTWVkaWElNUJrZXklNUQpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMGdsb2JhbE1lZGlhJTVCa2V5JTVEJTIwJTNEJTIwMCUzQiU1Q24lMjAlMjAlN0QlNUNuJTIwJTIwcmV0dXJuJTIwZ2xvYmFsTWVkaWElNUJrZXklNUQlM0IlNUNuJTdEJTVDbiU1Q25mdW5jdGlvbiUyMGluY3JlbWVudE1lZGlhQ291bnRTU1IoKSUyMCU3QiU1Q24lMjAlMjBjb25zdCUyMGdsb2JhbE1lZGlhJTIwJTNEJTIwZ2V0TWVkaWFHbG9iYWxTY29wZSgpJTNCJTVDbiUyMCUyMGNvbnN0JTIwa2V5JTIwJTNEJTIwJTVDJTIybWVkaWFDb3VudFNzciU1QyUyMiUzQiU1Q24lMjAlMjBpZiUyMCghZ2xvYmFsTWVkaWElNUJrZXklNUQpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMGdsb2JhbE1lZGlhJTVCa2V5JTVEJTIwJTNEJTIwMCUzQiU1Q24lMjAlMjAlN0QlNUNuJTIwJTIwZ2xvYmFsTWVkaWElNUJrZXklNUQlMkIlMkIlM0IlNUNuJTdEJTVDbiU1Q24oZnVuY3Rpb24lMjAocGFyYW1zJTNBJTIwYW55KSUyMCU3QiU1Q24lMjAlMjBjb25zdCUyMHNjcmlwdCUyMCUzRCUyMGRvY3VtZW50LmN1cnJlbnRTY3JpcHQlM0IlNUNuJTVDbiUyMCUyMCUyRiUyRiUyMFN0b3JlJTIwdGhlJTIwZGF0YSU1Q24lMjAlMjBjb25zdCUyMG1lZGlhQ2FyZFNzciUyMCUzRCUyMGdldE1lZGlhQ2FyZFNTUigpJTNCJTVDbiUyMCUyMGNvbnN0JTIwbWVkaWFDb3VudFNzciUyMCUzRCUyMGdldE1lZGlhQ291bnRTU1IoKSUzQiU1Q24lMjAlMjBjb25zdCUyMCU3QiUyMGtleSUyMCU3RCUyMCUzRCUyMHBhcmFtcyUzQiU1Q24lMjAlMjBjb25zdCUyMHBhcmFtRGF0YVVSSSUyMCUzRCUyMHBhcmFtcy5kYXRhVVJJJTNCJTVDbiUyMCUyMGNvbnN0JTIwcGFyYW1Nb2RlJTIwJTNEJTIwcGFyYW1zLm1vZGUlM0IlNUNuJTIwJTIwY29uc3QlMjBwYXJhbVNyY1NldCUyMCUzRCUyMHBhcmFtcy5zcmNTZXQlM0IlNUNuJTIwJTIwY29uc3QlMjAlN0IlMjBkaW1lbnNpb25zJTIwJTdEJTIwJTNEJTIwcGFyYW1zJTNCJTVDbiUyMCUyMGNvbnN0JTIwJTdCJTIwZXJyb3IlMjAlN0QlMjAlM0QlMjBwYXJhbXMlM0IlNUNuJTIwJTIwY29uc3QlMjAlN0IlMjBmZWF0dXJlRmxhZ3MlMjAlN0QlMjAlM0QlMjBwYXJhbXMlM0IlNUNuJTVDbiUyMCUyMGlmJTIwKGZlYXR1cmVGbGFncyU1QiU1QyUyMm1lZGlhLXBlcmYtdXBsaWZ0LW11dGF0aW9uLWZpeCU1QyUyMiU1RCklMjAlN0IlNUNuJTIwJTIwJTIwJTIwY29uc3QlMjBwcmV2RGF0YSUyMCUzRCUyMG1lZGlhQ2FyZFNzciU1QmtleSU1RCUzQiU1Q24lMjAlMjAlMjAlMjBjb25zdCUyMGlzUHJldmlvdXNJbWFnZUxhcmdlciUyMCUzRCU1Q24lMjAlMjAlMjAlMjAlMjAlMjBwcmV2RGF0YSUyMCUyNiUyNiU1Q24lMjAlMjAlMjAlMjAlMjAlMjBwcmV2RGF0YS5tb2RlJTIwJTNEJTNEJTNEJTIwcGFyYW1Nb2RlJTIwJTI2JTI2JTVDbiUyMCUyMCUyMCUyMCUyMCUyMHByZXZEYXRhLmRpbWVuc2lvbnMlMjAlMjYlMjYlNUNuJTIwJTIwJTIwJTIwJTIwJTIwcHJldkRhdGEuZGltZW5zaW9ucy53aWR0aCUyMCUyNiUyNiU1Q24lMjAlMjAlMjAlMjAlMjAlMjBkaW1lbnNpb25zJTIwJTI2JTI2JTVDbiUyMCUyMCUyMCUyMCUyMCUyMGRpbWVuc2lvbnMud2lkdGglMjAlMjYlMjYlNUNuJTIwJTIwJTIwJTIwJTIwJTIwcHJldkRhdGEuZGltZW5zaW9ucy53aWR0aCUyMCUzRSUyMGRpbWVuc2lvbnMud2lkdGglM0IlNUNuJTVDbiUyMCUyMCUyMCUyMGNvbnN0JTIwc3JjU2V0JTIwJTNEJTIwaXNQcmV2aW91c0ltYWdlTGFyZ2VyJTIwJTNGJTIwcHJldkRhdGEuc3JjU2V0JTIwJTNBJTIwcGFyYW1TcmNTZXQlM0IlNUNuJTIwJTIwJTIwJTIwY29uc3QlMjBkYXRhVVJJJTIwJTNEJTIwaXNQcmV2aW91c0ltYWdlTGFyZ2VyJTIwJTNGJTIwcHJldkRhdGEuZGF0YVVSSSUyMCUzQSUyMHBhcmFtRGF0YVVSSSUzQiU1Q24lNUNuJTIwJTIwJTIwJTIwY29uc3QlMjBjdXJyRGF0YSUzQSUyMGFueSUyMCUzRCUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjBkYXRhVVJJJTJDJTVDbiUyMCUyMCUyMCUyMCUyMCUyMGRpbWVuc2lvbnMlMkMlNUNuJTIwJTIwJTIwJTIwJTIwJTIwZXJyb3IlMkMlNUNuJTIwJTIwJTIwJTIwJTIwJTIwc3JjU2V0JTJDJTVDbiUyMCUyMCUyMCUyMCUyMCUyMGxvYWRpbmclM0ElMjAlNUMlMjJsYXp5JTVDJTIyJTJDJTVDbiUyMCUyMCUyMCUyMCUyMCUyMGxvYWRQcm9taXNlJTNBJTIwdW5kZWZpbmVkJTJDJTVDbiU1Q3QlNUN0JTVDdG1vZGUlM0ElMjBwYXJhbU1vZGUlMkMlNUNuJTIwJTIwJTIwJTIwJTdEJTNCJTVDbiU1Q24lMjAlMjAlMjAlMjBjb25zdCUyMGltZyUyMCUzRCU1Q24lMjAlMjAlMjAlMjAlMjAlMjBzY3JpcHQlMjAlMjYlMjYlNUNuJTIwJTIwJTIwJTIwJTIwJTIwc2NyaXB0LnBhcmVudEVsZW1lbnQlMjAlMjYlMjYlNUNuJTIwJTIwJTIwJTIwJTIwJTIwc2NyaXB0LnBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3RvciglNUMlMjJpbWclNUMlMjIpJTNCJTVDbiU1Q24lMjAlMjAlMjAlMjBpZiUyMCglNUNuJTIwJTIwJTIwJTIwJTIwJTIwaW1nJTIwJTI2JTI2JTVDbiUyMCUyMCUyMCUyMCUyMCUyMGZlYXR1cmVGbGFncyU1QiU1QyUyMm1lZGlhLXBlcmYtbGF6eS1sb2FkaW5nLW9wdGltaXNhdGlvbiU1QyUyMiU1RCUyMCUyNiUyNiU1Q24lMjAlMjAlMjAlMjAlMjAlMjBtZWRpYUNvdW50U3NyJTIwJTNDJTIwcGFyYW1zLm1heEVhZ2VyTG9hZENvdW50JTVDbiUyMCUyMCUyMCUyMCklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwaW5jcmVtZW50TWVkaWFDb3VudFNTUigpJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMGlmJTIwKGltZy5nZXRBdHRyaWJ1dGUoJTVDJTIybG9hZGluZyU1QyUyMiklMjAlM0QlM0QlM0QlMjAlNUMlMjJsYXp5JTVDJTIyKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBpbWcucmVtb3ZlQXR0cmlidXRlKCU1QyUyMmxvYWRpbmclNUMlMjIpJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCU3RCU1Q24lMjAlMjAlMjAlMjAlMjAlMjBjdXJyRGF0YS5sb2FkaW5nJTIwJTNEJTIwJTVDJTIyJTVDJTIyJTNCJTVDbiUyMCUyMCUyMCUyMCU3RCU1Q24lNUNuJTIwJTIwJTIwJTIwaWYlMjAoaW1nJTIwJTI2JTI2JTIwZGF0YVVSSSklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwaW1nLnNyYyUyMCUzRCUyMGRhdGFVUkklM0IlNUNuJTIwJTIwJTIwJTIwJTdEJTVDbiUyMCUyMCUyMCUyMGlmJTIwKGltZyUyMCUyNiUyNiUyMHNyY1NldCklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwaW1nLnNyY3NldCUyMCUzRCUyMHNyY1NldCUzQiU1Q24lMjAlMjAlMjAlMjAlN0QlNUNuJTVDbiUyMCUyMCUyMCUyMGN1cnJEYXRhLmxvYWRQcm9taXNlJTIwJTNEJTIwbmV3JTIwUHJvbWlzZSUzQ3ZvaWQlM0UoZnVuY3Rpb24lMjAocmVzb2x2ZSUyQyUyMHJlamVjdCklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwaWYlMjAoaW1nKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMkYlMkYlMjBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUlMjAlNDByZXBvJTJGaW50ZXJuYWwlMkZkb20tZXZlbnRzJTJGbm8tdW5zYWZlLWV2ZW50LWxpc3RlbmVycyU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBpbWcuYWRkRXZlbnRMaXN0ZW5lciglNUMlMjJsb2FkJTVDJTIyJTJDJTIwZnVuY3Rpb24lMjAoKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXNvbHZlKHVuZGVmaW5lZCklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEKSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMkYlMkYlMjBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUlMjAlNDByZXBvJTJGaW50ZXJuYWwlMkZkb20tZXZlbnRzJTJGbm8tdW5zYWZlLWV2ZW50LWxpc3RlbmVycyU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBpbWcuYWRkRXZlbnRMaXN0ZW5lciglNUMlMjJlcnJvciU1QyUyMiUyQyUyMGZ1bmN0aW9uJTIwKCklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmVqZWN0KG5ldyUyMEVycm9yKCU1QyUyMkZhaWxlZCUyMHRvJTIwbG9hZCUyMGltYWdlJTVDJTIyKSklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEKSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlN0QlNUNuJTIwJTIwJTIwJTIwJTdEKSUzQiU1Q24lNUNuJTIwJTIwJTIwJTIwbWVkaWFDYXJkU3NyJTVCa2V5JTVEJTIwJTNEJTIwaXNQcmV2aW91c0ltYWdlTGFyZ2VyJTIwJTNGJTIwcHJldkRhdGElMjAlM0ElMjBjdXJyRGF0YSUzQiU1Q24lMjAlMjAlN0QlMjBlbHNlJTIwJTdCJTVDbiUyMCUyMCUyMCUyMG1lZGlhQ2FyZFNzciU1QmtleSU1RCUyMCUzRCUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjBkYXRhVVJJJTNBJTIwcGFyYW1EYXRhVVJJJTJDJTVDbiUyMCUyMCUyMCUyMCUyMCUyMGRpbWVuc2lvbnMlMkMlNUNuJTIwJTIwJTIwJTIwJTIwJTIwZXJyb3IlMkMlNUNuJTIwJTIwJTIwJTIwJTdEJTNCJTVDbiUyMCUyMCU3RCU1Q24lNUNuJTIwJTIwJTJGJTJGJTIwUmVtb3ZlJTIwc2NyaXB0JTIwdG8lMjBwcmV2ZW50JTIwaHlkcmF0aW9uJTIwbWlzbWF0Y2glNUNuJTIwJTIwZG9jdW1lbnQuY3VycmVudFNjcmlwdCUzRi5yZW1vdmUoKSUzQiU1Q24lNUNuJTVDdCUyRiUyRiUyMHRoaXMlMjByZXBsYWNlJTIwd2lsbCUyMGJlJTIwdXNlZCUyMGFzJTIwYSUyMHBsYWNlaG9sZGVyJTIwZm9yJTIwdGhlJTIwc3RyaW5naWZpZWQlMjBwYXJhbXMlMjB0byUyMGJlJTIwaW5qZWN0ZWQlMjBpbnRvJTIwdGhlJTIwc2NyaXB0JTVDbiU3RCkoJTdCJTIwcmVwbGFjZSUzQSUyMCU1QyUyMiU1QyUyMiUyMCU3RCklM0IlNUNuJTIyJTJDJTIyaXNFbnRyeSUyMiUzQXRydWUlN0QlNUQlNUQlMkMlMjJvcHRpb25zJTIyJTNBJTdCJTIyZW50cmllcyUyMiUzQSU1QiU1RCUyQyUyMm1pbmlmeSUyMiUzQXRydWUlMkMlMjJzY29wZUhvaXN0JTIyJTNBdHJ1ZSUyQyUyMnNvdXJjZU1hcHMlMjIlM0FmYWxzZSUyQyUyMnB1YmxpY1VybCUyMiUzQSUyMiUyRl9fcmVwbF9kaXN0JTIyJTJDJTIydGFyZ2V0VHlwZSUyMiUzQSUyMmJyb3dzZXJzJTIyJTJDJTIydGFyZ2V0RW52JTIyJTNBbnVsbCUyQyUyMm91dHB1dEZvcm1hdCUyMiUzQW51bGwlMkMlMjJobXIlMjIlM0FmYWxzZSUyQyUyMm1vZGUlMjIlM0ElMjJwcm9kdWN0aW9uJTIyJTJDJTIycmVuZGVyR3JhcGhzJTIyJTNBZmFsc2UlMkMlMjJ2aWV3U291cmNlbWFwcyUyMiUzQWZhbHNlJTJDJTIyZGVwZW5kZW5jaWVzJTIyJTNBJTVCJTVEJTJDJTIybnVtV29ya2VycyUyMiUzQTAlN0QlMkMlMjJ1c2VUYWJzJTIyJTNBdHJ1ZSUyQyUyMmJyb3dzZXJDb2xsYXBzZWQlMjIlM0ElNUIlNUQlMkMlMjJ2aWV3cyUyMiUzQSU1QiUyMiUyRnNyYyUyRmluZGV4LnRzJTIyJTVEJTJDJTIyY3VycmVudFZpZXclMjIlM0EwJTdE
|
|
11
|
+
* 3. Copy the minified code into globalScope.tsx replacing the existing string where it says PASTE HERE
|
|
12
|
+
* 4. Run the tests and make sure they pass
|
|
13
|
+
* 5. TEST IN PRODUCTS BEFORE MERGING
|
|
14
|
+
*
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
function getMediaGlobalScope() {
|
|
18
|
+
var namespace = "__MEDIA_INTERNAL";
|
|
19
|
+
if (!window[namespace]) {
|
|
20
|
+
window[namespace] = {};
|
|
21
|
+
}
|
|
22
|
+
return window[namespace];
|
|
23
|
+
}
|
|
24
|
+
function getMediaCardSSR() {
|
|
25
|
+
var globalMedia = getMediaGlobalScope();
|
|
26
|
+
var key = "mediaCardSsr";
|
|
27
|
+
if (!globalMedia[key]) {
|
|
28
|
+
globalMedia[key] = {};
|
|
29
|
+
}
|
|
30
|
+
return globalMedia[key];
|
|
31
|
+
}
|
|
32
|
+
function getMediaCountSSR() {
|
|
33
|
+
var globalMedia = getMediaGlobalScope();
|
|
34
|
+
var key = "mediaCountSsr";
|
|
35
|
+
if (!globalMedia[key]) {
|
|
36
|
+
globalMedia[key] = 0;
|
|
37
|
+
}
|
|
38
|
+
return globalMedia[key];
|
|
39
|
+
}
|
|
40
|
+
function incrementMediaCountSSR() {
|
|
41
|
+
var globalMedia = getMediaGlobalScope();
|
|
42
|
+
var key = "mediaCountSsr";
|
|
43
|
+
if (!globalMedia[key]) {
|
|
44
|
+
globalMedia[key] = 0;
|
|
45
|
+
}
|
|
46
|
+
globalMedia[key]++;
|
|
47
|
+
}
|
|
48
|
+
(function (params, _document$currentScri) {
|
|
49
|
+
var script = document.currentScript;
|
|
50
|
+
|
|
51
|
+
// Store the data
|
|
52
|
+
var mediaCardSsr = getMediaCardSSR();
|
|
53
|
+
var mediaCountSsr = getMediaCountSSR();
|
|
54
|
+
var key = params.key;
|
|
55
|
+
var paramDataURI = params.dataURI;
|
|
56
|
+
var paramMode = params.mode;
|
|
57
|
+
var paramSrcSet = params.srcSet;
|
|
58
|
+
var dimensions = params.dimensions;
|
|
59
|
+
var error = params.error;
|
|
60
|
+
var featureFlags = params.featureFlags;
|
|
61
|
+
if (featureFlags["media-perf-uplift-mutation-fix"]) {
|
|
62
|
+
var prevData = mediaCardSsr[key];
|
|
63
|
+
var isPreviousImageLarger = prevData && prevData.mode === paramMode && prevData.dimensions && prevData.dimensions.width && dimensions && dimensions.width && prevData.dimensions.width > dimensions.width;
|
|
64
|
+
var srcSet = isPreviousImageLarger ? prevData.srcSet : paramSrcSet;
|
|
65
|
+
var dataURI = isPreviousImageLarger ? prevData.dataURI : paramDataURI;
|
|
66
|
+
var currData = {
|
|
67
|
+
dataURI: dataURI,
|
|
68
|
+
dimensions: dimensions,
|
|
69
|
+
error: error,
|
|
70
|
+
srcSet: srcSet,
|
|
71
|
+
loading: "lazy",
|
|
72
|
+
loadPromise: undefined,
|
|
73
|
+
mode: paramMode
|
|
74
|
+
};
|
|
75
|
+
var img = script && script.parentElement && script.parentElement.querySelector("img");
|
|
76
|
+
if (img && featureFlags["media-perf-lazy-loading-optimisation"] && mediaCountSsr < params.maxEagerLoadCount) {
|
|
77
|
+
incrementMediaCountSSR();
|
|
78
|
+
if (img.getAttribute("loading") === "lazy") {
|
|
79
|
+
img.removeAttribute("loading");
|
|
80
|
+
}
|
|
81
|
+
currData.loading = "";
|
|
82
|
+
}
|
|
83
|
+
if (img && dataURI) {
|
|
84
|
+
img.src = dataURI;
|
|
85
|
+
}
|
|
86
|
+
if (img && srcSet) {
|
|
87
|
+
img.srcset = srcSet;
|
|
88
|
+
}
|
|
89
|
+
currData.loadPromise = new Promise(function (resolve, reject) {
|
|
90
|
+
if (img) {
|
|
91
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
92
|
+
img.addEventListener("load", function () {
|
|
93
|
+
resolve(undefined);
|
|
94
|
+
});
|
|
95
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
96
|
+
img.addEventListener("error", function () {
|
|
97
|
+
reject(new Error("Failed to load image"));
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
mediaCardSsr[key] = isPreviousImageLarger ? prevData : currData;
|
|
102
|
+
} else {
|
|
103
|
+
mediaCardSsr[key] = {
|
|
104
|
+
dataURI: paramDataURI,
|
|
105
|
+
dimensions: dimensions,
|
|
106
|
+
error: error
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// Remove script to prevent hydration mismatch
|
|
111
|
+
(_document$currentScri = document.currentScript) === null || _document$currentScri === void 0 || _document$currentScri.remove();
|
|
112
|
+
|
|
113
|
+
// this replace will be used as a placeholder for the stringified params to be injected into the script
|
|
114
|
+
})({
|
|
115
|
+
replace: ""
|
|
116
|
+
});
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { printFunctionCall, printScript } from './printScript';
|
|
2
1
|
// ----- WARNING -----
|
|
3
2
|
// This is a very sensitive fraction of code.
|
|
4
3
|
// Any changes to this file must be tested directly in product before merging.
|
|
@@ -26,81 +25,29 @@ export function getMediaCardSSR(globalScope = window) {
|
|
|
26
25
|
}
|
|
27
26
|
return globalMedia[key];
|
|
28
27
|
}
|
|
29
|
-
export function getMediaCountSSR(globalScope = window) {
|
|
30
|
-
const globalMedia = getMediaGlobalScope(globalScope);
|
|
31
|
-
// Must match GLOBAL_MEDIA_COUNT_SSR. Can't reference the constant from here.
|
|
32
|
-
if (!globalMedia[GLOBAL_MEDIA_COUNT_SSR]) {
|
|
33
|
-
globalMedia[GLOBAL_MEDIA_COUNT_SSR] = 0;
|
|
34
|
-
}
|
|
35
|
-
return globalMedia[GLOBAL_MEDIA_COUNT_SSR];
|
|
36
|
-
}
|
|
37
|
-
export function incrementMediaCountSSR(globalScope = window) {
|
|
38
|
-
const globalMedia = getMediaGlobalScope(globalScope);
|
|
39
|
-
// Must match GLOBAL_MEDIA_COUNT_SSR. Can't reference the constant from here.
|
|
40
|
-
if (!globalMedia[GLOBAL_MEDIA_COUNT_SSR]) {
|
|
41
|
-
globalMedia[GLOBAL_MEDIA_COUNT_SSR] = 0;
|
|
42
|
-
}
|
|
43
|
-
globalMedia[GLOBAL_MEDIA_COUNT_SSR]++;
|
|
44
|
-
}
|
|
45
28
|
const dashed = param => param ? `-${param}` : '';
|
|
46
29
|
export const getKey = ({
|
|
47
30
|
id,
|
|
48
31
|
collectionName,
|
|
49
32
|
occurrenceKey
|
|
50
33
|
}, resizeMode) => `${id}${dashed(collectionName)}${dashed(occurrenceKey)}${dashed(resizeMode)}`;
|
|
51
|
-
export const storeDataURI = (key, paramDataURI, paramMode, paramSrcSet, dimensions, error, featureFlags = {}, globalScope = window) => {
|
|
52
|
-
const mediaCardSsr = getMediaCardSSR(globalScope);
|
|
53
|
-
const mediaCountSsr = getMediaCountSSR(globalScope);
|
|
54
|
-
if (featureFlags['media-perf-uplift-mutation-fix']) {
|
|
55
|
-
var _prevData$dimensions, _script, _script$parentElement;
|
|
56
|
-
const prevData = mediaCardSsr[key];
|
|
57
|
-
const isPreviousImageLarger = (prevData === null || prevData === void 0 ? void 0 : prevData.mode) === paramMode && prevData && ((_prevData$dimensions = prevData.dimensions) === null || _prevData$dimensions === void 0 ? void 0 : _prevData$dimensions.width) && (dimensions === null || dimensions === void 0 ? void 0 : dimensions.width) && prevData.dimensions.width > dimensions.width;
|
|
58
|
-
const srcSet = isPreviousImageLarger ? prevData === null || prevData === void 0 ? void 0 : prevData.srcSet : paramSrcSet;
|
|
59
|
-
const dataURI = isPreviousImageLarger ? prevData === null || prevData === void 0 ? void 0 : prevData.dataURI : paramDataURI;
|
|
60
|
-
const currData = {
|
|
61
|
-
dataURI,
|
|
62
|
-
dimensions,
|
|
63
|
-
error,
|
|
64
|
-
srcSet,
|
|
65
|
-
loading: 'lazy'
|
|
66
|
-
};
|
|
67
|
-
const img = (_script = script) === null || _script === void 0 ? void 0 : (_script$parentElement = _script.parentElement) === null || _script$parentElement === void 0 ? void 0 : _script$parentElement.querySelector('img');
|
|
68
|
-
if (img && featureFlags['media-perf-lazy-loading-optimisation'] && mediaCountSsr < MAX_EAGER_LOAD_COUNT) {
|
|
69
|
-
incrementMediaCountSSR(globalScope);
|
|
70
|
-
if (img.getAttribute('loading') === 'lazy') {
|
|
71
|
-
img.removeAttribute('loading');
|
|
72
|
-
}
|
|
73
|
-
currData.loading = '';
|
|
74
|
-
}
|
|
75
|
-
if (img && dataURI) {
|
|
76
|
-
img.src = dataURI;
|
|
77
|
-
}
|
|
78
|
-
if (img && srcSet) {
|
|
79
|
-
img.srcset = srcSet;
|
|
80
|
-
}
|
|
81
|
-
currData.loadPromise = new Promise((resolve, reject) => {
|
|
82
|
-
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
83
|
-
img === null || img === void 0 ? void 0 : img.addEventListener('load', () => {
|
|
84
|
-
resolve(void 0);
|
|
85
|
-
});
|
|
86
|
-
|
|
87
|
-
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
88
|
-
img === null || img === void 0 ? void 0 : img.addEventListener('error', () => {
|
|
89
|
-
reject(new Error('Failed to load image'));
|
|
90
|
-
});
|
|
91
|
-
});
|
|
92
|
-
mediaCardSsr[key] = isPreviousImageLarger ? prevData : currData;
|
|
93
|
-
} else {
|
|
94
|
-
mediaCardSsr[key] = {
|
|
95
|
-
dataURI: paramDataURI,
|
|
96
|
-
dimensions,
|
|
97
|
-
error
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
};
|
|
101
34
|
const generateScript = (identifier, dataURI, mode, srcSet, dimensions, error, featureFlags = {}) => {
|
|
102
|
-
const
|
|
103
|
-
|
|
35
|
+
const key = getKey(identifier, mode);
|
|
36
|
+
|
|
37
|
+
// Serialize the parameters for injection into the script
|
|
38
|
+
const params = {
|
|
39
|
+
key,
|
|
40
|
+
dataURI,
|
|
41
|
+
mode,
|
|
42
|
+
srcSet,
|
|
43
|
+
dimensions,
|
|
44
|
+
error,
|
|
45
|
+
featureFlags,
|
|
46
|
+
maxEagerLoadCount: MAX_EAGER_LOAD_COUNT
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
// Read originalScriptCode.ts before making changes
|
|
50
|
+
return `!function(){function e(){const e="__MEDIA_INTERNAL";return window[e]||(window[e]={}),window[e]}!function(n){var t;const i=document.currentScript,o=function(){const n=e(),t="mediaCardSsr";return n[t]||(n[t]={}),n[t]}(),r=function(){const n=e(),t="mediaCountSsr";return n[t]||(n[t]=0),n[t]}(),{key:d}=n,a=n.dataURI,s=n.mode,c=n.srcSet,{dimensions:m}=n,{error:u}=n,{featureFlags:l}=n;if(l["media-perf-uplift-mutation-fix"]){const t=o[d],f=t&&t.mode===s&&t.dimensions&&t.dimensions.width&&m&&m.width&&t.dimensions.width>m.width,w=f?t.srcSet:c,g=f?t.dataURI:a,p={dataURI:g,dimensions:m,error:u,srcSet:w,loading:"lazy",loadPromise:void 0,mode:s},S=i&&i.parentElement&&i.parentElement.querySelector("img");S&&l["media-perf-lazy-loading-optimisation"]&&r<n.maxEagerLoadCount&&(!function(){const n=e(),t="mediaCountSsr";n[t]||(n[t]=0),n[t]++}(),"lazy"===S.getAttribute("loading")&&S.removeAttribute("loading"),p.loading=""),S&&g&&(S.src=g),S&&w&&(S.srcset=w),p.loadPromise=new Promise((function(e,n){S&&(S.addEventListener("load",(function(){e(void 0)})),S.addEventListener("error",(function(){n(new Error("Failed to load image"))})))})),o[d]=f?t:p}else o[d]={dataURI:a,dimensions:m,error:u};null===(t=document.currentScript)||void 0===t||t.remove()}({replace:""})}();`.replace('{replace:""}', JSON.stringify(params));
|
|
104
51
|
};
|
|
105
52
|
export const generateScriptProps = (identifier, dataURI, mode, srcSet, dimensions, error, featureFlags = {}) => ({
|
|
106
53
|
dangerouslySetInnerHTML: {
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/* eslint-disable @atlaskit/platform/no-direct-document-usage */
|
|
2
|
+
|
|
3
|
+
/** IMPORTANT: This is the original code for the script.
|
|
4
|
+
* Do not change the code without testing it in product first.
|
|
5
|
+
* Steps:
|
|
6
|
+
* 1. Make changes in this code
|
|
7
|
+
* 2. Manually minify the code via https://repl.parceljs.org/ (using typescript preset with minify option)
|
|
8
|
+
* - eg: https://repl.parceljs.org/#JTdCJTIyZmlsZXMlMjIlM0ElNUIlNUIlMjIlMkZzcmMlMkZpbmRleC50cyUyMiUyQyU3QiUyMnZhbHVlJTIyJTNBJTIyJTJGKiUyMGVzbGludC1kaXNhYmxlJTIwJTQwYXRsYXNraXQlMkZwbGF0Zm9ybSUyRm5vLWRpcmVjdC1kb2N1bWVudC11c2FnZSUyMColMkYlNUNuJTVDbiUyRioqJTIwSU1QT1JUQU5UJTNBJTIwVGhpcyUyMGlzJTIwdGhlJTIwb3JpZ2luYWwlMjBjb2RlJTIwZm9yJTIwdGhlJTIwc2NyaXB0LiU1Q24lMjAqJTIwRG8lMjBub3QlMjBjaGFuZ2UlMjB0aGUlMjBjb2RlJTIwd2l0aG91dCUyMHRlc3RpbmclMjBpdCUyMGluJTIwcHJvZHVjdCUyMGZpcnN0LiU1Q24lMjAqJTIwU3RlcHMlM0ElNUNuJTIwKiUyMDEuJTIwTWFrZSUyMGNoYW5nZXMlMjBpbiUyMHRoaXMlMjBjb2RlJTVDbiUyMColMjAyLiUyME1hbnVhbGx5JTIwbWluaWZ5JTIwdGhlJTIwY29kZSUyMHZpYSUyMGh0dHBzJTNBJTJGJTJGcmVwbC5wYXJjZWxqcy5vcmclMkYlNUNuJTIwKiUyMDMuJTIwQ29weSUyMHRoZSUyMG1pbmlmaWVkJTIwY29kZSUyMGludG8lMjBnbG9iYWxTY29wZS50c3glMjByZXBsYWNpbmclMjB0aGUlMjBleGlzdGluZyUyMHN0cmluZyUyMHdoZXJlJTIwaXQlMjBzYXlzJTIwUEFTVEUlMjBIRVJFJTVDbiUyMColMjA0LiUyMFJ1biUyMHRoZSUyMHRlc3RzJTIwYW5kJTIwbWFrZSUyMHN1cmUlMjB0aGV5JTIwcGFzcyU1Q24lMjAqJTIwNS4lMjBURVNUJTIwSU4lMjBQUk9EVUNUUyUyMEJFRk9SRSUyME1FUkdJTkclNUNuJTIwKiU1Q24lMjAqJTJGJTVDbiU1Q25mdW5jdGlvbiUyMGdldE1lZGlhR2xvYmFsU2NvcGUoKSUyMCU3QiU1Q24lMjAlMjBjb25zdCUyMG5hbWVzcGFjZSUyMCUzRCUyMCU1QyUyMl9fTUVESUFfSU5URVJOQUwlNUMlMjIlM0IlNUNuJTIwJTIwaWYlMjAoISh3aW5kb3clMjBhcyUyMGFueSklNUJuYW1lc3BhY2UlNUQpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCh3aW5kb3clMjBhcyUyMGFueSklNUJuYW1lc3BhY2UlNUQlMjAlM0QlMjAlN0IlN0QlM0IlNUNuJTIwJTIwJTdEJTVDbiUyMCUyMHJldHVybiUyMCh3aW5kb3clMjBhcyUyMGFueSklNUJuYW1lc3BhY2UlNUQlM0IlNUNuJTdEJTVDbiU1Q25mdW5jdGlvbiUyMGdldE1lZGlhQ2FyZFNTUigpJTIwJTdCJTVDbiUyMCUyMGNvbnN0JTIwZ2xvYmFsTWVkaWElMjAlM0QlMjBnZXRNZWRpYUdsb2JhbFNjb3BlKCklM0IlNUNuJTIwJTIwY29uc3QlMjBrZXklMjAlM0QlMjAlNUMlMjJtZWRpYUNhcmRTc3IlNUMlMjIlM0IlNUNuJTIwJTIwaWYlMjAoIWdsb2JhbE1lZGlhJTVCa2V5JTVEKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjBnbG9iYWxNZWRpYSU1QmtleSU1RCUyMCUzRCUyMCU3QiU3RCUzQiU1Q24lMjAlMjAlN0QlNUNuJTIwJTIwcmV0dXJuJTIwZ2xvYmFsTWVkaWElNUJrZXklNUQlM0IlNUNuJTdEJTVDbiU1Q25mdW5jdGlvbiUyMGdldE1lZGlhQ291bnRTU1IoKSUyMCU3QiU1Q24lMjAlMjBjb25zdCUyMGdsb2JhbE1lZGlhJTIwJTNEJTIwZ2V0TWVkaWFHbG9iYWxTY29wZSgpJTNCJTVDbiUyMCUyMGNvbnN0JTIwa2V5JTIwJTNEJTIwJTVDJTIybWVkaWFDb3VudFNzciU1QyUyMiUzQiU1Q24lMjAlMjBpZiUyMCghZ2xvYmFsTWVkaWElNUJrZXklNUQpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMGdsb2JhbE1lZGlhJTVCa2V5JTVEJTIwJTNEJTIwMCUzQiU1Q24lMjAlMjAlN0QlNUNuJTIwJTIwcmV0dXJuJTIwZ2xvYmFsTWVkaWElNUJrZXklNUQlM0IlNUNuJTdEJTVDbiU1Q25mdW5jdGlvbiUyMGluY3JlbWVudE1lZGlhQ291bnRTU1IoKSUyMCU3QiU1Q24lMjAlMjBjb25zdCUyMGdsb2JhbE1lZGlhJTIwJTNEJTIwZ2V0TWVkaWFHbG9iYWxTY29wZSgpJTNCJTVDbiUyMCUyMGNvbnN0JTIwa2V5JTIwJTNEJTIwJTVDJTIybWVkaWFDb3VudFNzciU1QyUyMiUzQiU1Q24lMjAlMjBpZiUyMCghZ2xvYmFsTWVkaWElNUJrZXklNUQpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMGdsb2JhbE1lZGlhJTVCa2V5JTVEJTIwJTNEJTIwMCUzQiU1Q24lMjAlMjAlN0QlNUNuJTIwJTIwZ2xvYmFsTWVkaWElNUJrZXklNUQlMkIlMkIlM0IlNUNuJTdEJTVDbiU1Q24oZnVuY3Rpb24lMjAocGFyYW1zJTNBJTIwYW55KSUyMCU3QiU1Q24lMjAlMjBjb25zdCUyMHNjcmlwdCUyMCUzRCUyMGRvY3VtZW50LmN1cnJlbnRTY3JpcHQlM0IlNUNuJTVDbiUyMCUyMCUyRiUyRiUyMFN0b3JlJTIwdGhlJTIwZGF0YSU1Q24lMjAlMjBjb25zdCUyMG1lZGlhQ2FyZFNzciUyMCUzRCUyMGdldE1lZGlhQ2FyZFNTUigpJTNCJTVDbiUyMCUyMGNvbnN0JTIwbWVkaWFDb3VudFNzciUyMCUzRCUyMGdldE1lZGlhQ291bnRTU1IoKSUzQiU1Q24lMjAlMjBjb25zdCUyMCU3QiUyMGtleSUyMCU3RCUyMCUzRCUyMHBhcmFtcyUzQiU1Q24lMjAlMjBjb25zdCUyMHBhcmFtRGF0YVVSSSUyMCUzRCUyMHBhcmFtcy5kYXRhVVJJJTNCJTVDbiUyMCUyMGNvbnN0JTIwcGFyYW1Nb2RlJTIwJTNEJTIwcGFyYW1zLm1vZGUlM0IlNUNuJTIwJTIwY29uc3QlMjBwYXJhbVNyY1NldCUyMCUzRCUyMHBhcmFtcy5zcmNTZXQlM0IlNUNuJTIwJTIwY29uc3QlMjAlN0IlMjBkaW1lbnNpb25zJTIwJTdEJTIwJTNEJTIwcGFyYW1zJTNCJTVDbiUyMCUyMGNvbnN0JTIwJTdCJTIwZXJyb3IlMjAlN0QlMjAlM0QlMjBwYXJhbXMlM0IlNUNuJTIwJTIwY29uc3QlMjAlN0IlMjBmZWF0dXJlRmxhZ3MlMjAlN0QlMjAlM0QlMjBwYXJhbXMlM0IlNUNuJTVDbiUyMCUyMGlmJTIwKGZlYXR1cmVGbGFncyU1QiU1QyUyMm1lZGlhLXBlcmYtdXBsaWZ0LW11dGF0aW9uLWZpeCU1QyUyMiU1RCklMjAlN0IlNUNuJTIwJTIwJTIwJTIwY29uc3QlMjBwcmV2RGF0YSUyMCUzRCUyMG1lZGlhQ2FyZFNzciU1QmtleSU1RCUzQiU1Q24lMjAlMjAlMjAlMjBjb25zdCUyMGlzUHJldmlvdXNJbWFnZUxhcmdlciUyMCUzRCU1Q24lMjAlMjAlMjAlMjAlMjAlMjBwcmV2RGF0YSUyMCUyNiUyNiU1Q24lMjAlMjAlMjAlMjAlMjAlMjBwcmV2RGF0YS5tb2RlJTIwJTNEJTNEJTNEJTIwcGFyYW1Nb2RlJTIwJTI2JTI2JTVDbiUyMCUyMCUyMCUyMCUyMCUyMHByZXZEYXRhLmRpbWVuc2lvbnMlMjAlMjYlMjYlNUNuJTIwJTIwJTIwJTIwJTIwJTIwcHJldkRhdGEuZGltZW5zaW9ucy53aWR0aCUyMCUyNiUyNiU1Q24lMjAlMjAlMjAlMjAlMjAlMjBkaW1lbnNpb25zJTIwJTI2JTI2JTVDbiUyMCUyMCUyMCUyMCUyMCUyMGRpbWVuc2lvbnMud2lkdGglMjAlMjYlMjYlNUNuJTIwJTIwJTIwJTIwJTIwJTIwcHJldkRhdGEuZGltZW5zaW9ucy53aWR0aCUyMCUzRSUyMGRpbWVuc2lvbnMud2lkdGglM0IlNUNuJTVDbiUyMCUyMCUyMCUyMGNvbnN0JTIwc3JjU2V0JTIwJTNEJTIwaXNQcmV2aW91c0ltYWdlTGFyZ2VyJTIwJTNGJTIwcHJldkRhdGEuc3JjU2V0JTIwJTNBJTIwcGFyYW1TcmNTZXQlM0IlNUNuJTIwJTIwJTIwJTIwY29uc3QlMjBkYXRhVVJJJTIwJTNEJTIwaXNQcmV2aW91c0ltYWdlTGFyZ2VyJTIwJTNGJTIwcHJldkRhdGEuZGF0YVVSSSUyMCUzQSUyMHBhcmFtRGF0YVVSSSUzQiU1Q24lNUNuJTIwJTIwJTIwJTIwY29uc3QlMjBjdXJyRGF0YSUzQSUyMGFueSUyMCUzRCUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjBkYXRhVVJJJTJDJTVDbiUyMCUyMCUyMCUyMCUyMCUyMGRpbWVuc2lvbnMlMkMlNUNuJTIwJTIwJTIwJTIwJTIwJTIwZXJyb3IlMkMlNUNuJTIwJTIwJTIwJTIwJTIwJTIwc3JjU2V0JTJDJTVDbiUyMCUyMCUyMCUyMCUyMCUyMGxvYWRpbmclM0ElMjAlNUMlMjJsYXp5JTVDJTIyJTJDJTVDbiUyMCUyMCUyMCUyMCUyMCUyMGxvYWRQcm9taXNlJTNBJTIwdW5kZWZpbmVkJTJDJTVDbiU1Q3QlNUN0JTVDdG1vZGUlM0ElMjBwYXJhbU1vZGUlMkMlNUNuJTIwJTIwJTIwJTIwJTdEJTNCJTVDbiU1Q24lMjAlMjAlMjAlMjBjb25zdCUyMGltZyUyMCUzRCU1Q24lMjAlMjAlMjAlMjAlMjAlMjBzY3JpcHQlMjAlMjYlMjYlNUNuJTIwJTIwJTIwJTIwJTIwJTIwc2NyaXB0LnBhcmVudEVsZW1lbnQlMjAlMjYlMjYlNUNuJTIwJTIwJTIwJTIwJTIwJTIwc2NyaXB0LnBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3RvciglNUMlMjJpbWclNUMlMjIpJTNCJTVDbiU1Q24lMjAlMjAlMjAlMjBpZiUyMCglNUNuJTIwJTIwJTIwJTIwJTIwJTIwaW1nJTIwJTI2JTI2JTVDbiUyMCUyMCUyMCUyMCUyMCUyMGZlYXR1cmVGbGFncyU1QiU1QyUyMm1lZGlhLXBlcmYtbGF6eS1sb2FkaW5nLW9wdGltaXNhdGlvbiU1QyUyMiU1RCUyMCUyNiUyNiU1Q24lMjAlMjAlMjAlMjAlMjAlMjBtZWRpYUNvdW50U3NyJTIwJTNDJTIwcGFyYW1zLm1heEVhZ2VyTG9hZENvdW50JTVDbiUyMCUyMCUyMCUyMCklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwaW5jcmVtZW50TWVkaWFDb3VudFNTUigpJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMGlmJTIwKGltZy5nZXRBdHRyaWJ1dGUoJTVDJTIybG9hZGluZyU1QyUyMiklMjAlM0QlM0QlM0QlMjAlNUMlMjJsYXp5JTVDJTIyKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBpbWcucmVtb3ZlQXR0cmlidXRlKCU1QyUyMmxvYWRpbmclNUMlMjIpJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCU3RCU1Q24lMjAlMjAlMjAlMjAlMjAlMjBjdXJyRGF0YS5sb2FkaW5nJTIwJTNEJTIwJTVDJTIyJTVDJTIyJTNCJTVDbiUyMCUyMCUyMCUyMCU3RCU1Q24lNUNuJTIwJTIwJTIwJTIwaWYlMjAoaW1nJTIwJTI2JTI2JTIwZGF0YVVSSSklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwaW1nLnNyYyUyMCUzRCUyMGRhdGFVUkklM0IlNUNuJTIwJTIwJTIwJTIwJTdEJTVDbiUyMCUyMCUyMCUyMGlmJTIwKGltZyUyMCUyNiUyNiUyMHNyY1NldCklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwaW1nLnNyY3NldCUyMCUzRCUyMHNyY1NldCUzQiU1Q24lMjAlMjAlMjAlMjAlN0QlNUNuJTVDbiUyMCUyMCUyMCUyMGN1cnJEYXRhLmxvYWRQcm9taXNlJTIwJTNEJTIwbmV3JTIwUHJvbWlzZSUzQ3ZvaWQlM0UoZnVuY3Rpb24lMjAocmVzb2x2ZSUyQyUyMHJlamVjdCklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwaWYlMjAoaW1nKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMkYlMkYlMjBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUlMjAlNDByZXBvJTJGaW50ZXJuYWwlMkZkb20tZXZlbnRzJTJGbm8tdW5zYWZlLWV2ZW50LWxpc3RlbmVycyU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBpbWcuYWRkRXZlbnRMaXN0ZW5lciglNUMlMjJsb2FkJTVDJTIyJTJDJTIwZnVuY3Rpb24lMjAoKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXNvbHZlKHVuZGVmaW5lZCklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEKSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMkYlMkYlMjBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUlMjAlNDByZXBvJTJGaW50ZXJuYWwlMkZkb20tZXZlbnRzJTJGbm8tdW5zYWZlLWV2ZW50LWxpc3RlbmVycyU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBpbWcuYWRkRXZlbnRMaXN0ZW5lciglNUMlMjJlcnJvciU1QyUyMiUyQyUyMGZ1bmN0aW9uJTIwKCklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmVqZWN0KG5ldyUyMEVycm9yKCU1QyUyMkZhaWxlZCUyMHRvJTIwbG9hZCUyMGltYWdlJTVDJTIyKSklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEKSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlN0QlNUNuJTIwJTIwJTIwJTIwJTdEKSUzQiU1Q24lNUNuJTIwJTIwJTIwJTIwbWVkaWFDYXJkU3NyJTVCa2V5JTVEJTIwJTNEJTIwaXNQcmV2aW91c0ltYWdlTGFyZ2VyJTIwJTNGJTIwcHJldkRhdGElMjAlM0ElMjBjdXJyRGF0YSUzQiU1Q24lMjAlMjAlN0QlMjBlbHNlJTIwJTdCJTVDbiUyMCUyMCUyMCUyMG1lZGlhQ2FyZFNzciU1QmtleSU1RCUyMCUzRCUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjBkYXRhVVJJJTNBJTIwcGFyYW1EYXRhVVJJJTJDJTVDbiUyMCUyMCUyMCUyMCUyMCUyMGRpbWVuc2lvbnMlMkMlNUNuJTIwJTIwJTIwJTIwJTIwJTIwZXJyb3IlMkMlNUNuJTIwJTIwJTIwJTIwJTdEJTNCJTVDbiUyMCUyMCU3RCU1Q24lNUNuJTIwJTIwJTJGJTJGJTIwUmVtb3ZlJTIwc2NyaXB0JTIwdG8lMjBwcmV2ZW50JTIwaHlkcmF0aW9uJTIwbWlzbWF0Y2glNUNuJTIwJTIwZG9jdW1lbnQuY3VycmVudFNjcmlwdCUzRi5yZW1vdmUoKSUzQiU1Q24lNUNuJTVDdCUyRiUyRiUyMHRoaXMlMjByZXBsYWNlJTIwd2lsbCUyMGJlJTIwdXNlZCUyMGFzJTIwYSUyMHBsYWNlaG9sZGVyJTIwZm9yJTIwdGhlJTIwc3RyaW5naWZpZWQlMjBwYXJhbXMlMjB0byUyMGJlJTIwaW5qZWN0ZWQlMjBpbnRvJTIwdGhlJTIwc2NyaXB0JTVDbiU3RCkoJTdCJTIwcmVwbGFjZSUzQSUyMCU1QyUyMiU1QyUyMiUyMCU3RCklM0IlNUNuJTIyJTJDJTIyaXNFbnRyeSUyMiUzQXRydWUlN0QlNUQlNUQlMkMlMjJvcHRpb25zJTIyJTNBJTdCJTIyZW50cmllcyUyMiUzQSU1QiU1RCUyQyUyMm1pbmlmeSUyMiUzQXRydWUlMkMlMjJzY29wZUhvaXN0JTIyJTNBdHJ1ZSUyQyUyMnNvdXJjZU1hcHMlMjIlM0FmYWxzZSUyQyUyMnB1YmxpY1VybCUyMiUzQSUyMiUyRl9fcmVwbF9kaXN0JTIyJTJDJTIydGFyZ2V0VHlwZSUyMiUzQSUyMmJyb3dzZXJzJTIyJTJDJTIydGFyZ2V0RW52JTIyJTNBbnVsbCUyQyUyMm91dHB1dEZvcm1hdCUyMiUzQW51bGwlMkMlMjJobXIlMjIlM0FmYWxzZSUyQyUyMm1vZGUlMjIlM0ElMjJwcm9kdWN0aW9uJTIyJTJDJTIycmVuZGVyR3JhcGhzJTIyJTNBZmFsc2UlMkMlMjJ2aWV3U291cmNlbWFwcyUyMiUzQWZhbHNlJTJDJTIyZGVwZW5kZW5jaWVzJTIyJTNBJTVCJTVEJTJDJTIybnVtV29ya2VycyUyMiUzQTAlN0QlMkMlMjJ1c2VUYWJzJTIyJTNBdHJ1ZSUyQyUyMmJyb3dzZXJDb2xsYXBzZWQlMjIlM0ElNUIlNUQlMkMlMjJ2aWV3cyUyMiUzQSU1QiUyMiUyRnNyYyUyRmluZGV4LnRzJTIyJTVEJTJDJTIyY3VycmVudFZpZXclMjIlM0EwJTdE
|
|
9
|
+
* 3. Copy the minified code into globalScope.tsx replacing the existing string where it says PASTE HERE
|
|
10
|
+
* 4. Run the tests and make sure they pass
|
|
11
|
+
* 5. TEST IN PRODUCTS BEFORE MERGING
|
|
12
|
+
*
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
function getMediaGlobalScope() {
|
|
16
|
+
const namespace = "__MEDIA_INTERNAL";
|
|
17
|
+
if (!window[namespace]) {
|
|
18
|
+
window[namespace] = {};
|
|
19
|
+
}
|
|
20
|
+
return window[namespace];
|
|
21
|
+
}
|
|
22
|
+
function getMediaCardSSR() {
|
|
23
|
+
const globalMedia = getMediaGlobalScope();
|
|
24
|
+
const key = "mediaCardSsr";
|
|
25
|
+
if (!globalMedia[key]) {
|
|
26
|
+
globalMedia[key] = {};
|
|
27
|
+
}
|
|
28
|
+
return globalMedia[key];
|
|
29
|
+
}
|
|
30
|
+
function getMediaCountSSR() {
|
|
31
|
+
const globalMedia = getMediaGlobalScope();
|
|
32
|
+
const key = "mediaCountSsr";
|
|
33
|
+
if (!globalMedia[key]) {
|
|
34
|
+
globalMedia[key] = 0;
|
|
35
|
+
}
|
|
36
|
+
return globalMedia[key];
|
|
37
|
+
}
|
|
38
|
+
function incrementMediaCountSSR() {
|
|
39
|
+
const globalMedia = getMediaGlobalScope();
|
|
40
|
+
const key = "mediaCountSsr";
|
|
41
|
+
if (!globalMedia[key]) {
|
|
42
|
+
globalMedia[key] = 0;
|
|
43
|
+
}
|
|
44
|
+
globalMedia[key]++;
|
|
45
|
+
}
|
|
46
|
+
(function (params, _document$currentScri) {
|
|
47
|
+
const script = document.currentScript;
|
|
48
|
+
|
|
49
|
+
// Store the data
|
|
50
|
+
const mediaCardSsr = getMediaCardSSR();
|
|
51
|
+
const mediaCountSsr = getMediaCountSSR();
|
|
52
|
+
const {
|
|
53
|
+
key
|
|
54
|
+
} = params;
|
|
55
|
+
const paramDataURI = params.dataURI;
|
|
56
|
+
const paramMode = params.mode;
|
|
57
|
+
const paramSrcSet = params.srcSet;
|
|
58
|
+
const {
|
|
59
|
+
dimensions
|
|
60
|
+
} = params;
|
|
61
|
+
const {
|
|
62
|
+
error
|
|
63
|
+
} = params;
|
|
64
|
+
const {
|
|
65
|
+
featureFlags
|
|
66
|
+
} = params;
|
|
67
|
+
if (featureFlags["media-perf-uplift-mutation-fix"]) {
|
|
68
|
+
const prevData = mediaCardSsr[key];
|
|
69
|
+
const isPreviousImageLarger = prevData && prevData.mode === paramMode && prevData.dimensions && prevData.dimensions.width && dimensions && dimensions.width && prevData.dimensions.width > dimensions.width;
|
|
70
|
+
const srcSet = isPreviousImageLarger ? prevData.srcSet : paramSrcSet;
|
|
71
|
+
const dataURI = isPreviousImageLarger ? prevData.dataURI : paramDataURI;
|
|
72
|
+
const currData = {
|
|
73
|
+
dataURI,
|
|
74
|
+
dimensions,
|
|
75
|
+
error,
|
|
76
|
+
srcSet,
|
|
77
|
+
loading: "lazy",
|
|
78
|
+
loadPromise: undefined,
|
|
79
|
+
mode: paramMode
|
|
80
|
+
};
|
|
81
|
+
const img = script && script.parentElement && script.parentElement.querySelector("img");
|
|
82
|
+
if (img && featureFlags["media-perf-lazy-loading-optimisation"] && mediaCountSsr < params.maxEagerLoadCount) {
|
|
83
|
+
incrementMediaCountSSR();
|
|
84
|
+
if (img.getAttribute("loading") === "lazy") {
|
|
85
|
+
img.removeAttribute("loading");
|
|
86
|
+
}
|
|
87
|
+
currData.loading = "";
|
|
88
|
+
}
|
|
89
|
+
if (img && dataURI) {
|
|
90
|
+
img.src = dataURI;
|
|
91
|
+
}
|
|
92
|
+
if (img && srcSet) {
|
|
93
|
+
img.srcset = srcSet;
|
|
94
|
+
}
|
|
95
|
+
currData.loadPromise = new Promise(function (resolve, reject) {
|
|
96
|
+
if (img) {
|
|
97
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
98
|
+
img.addEventListener("load", function () {
|
|
99
|
+
resolve(undefined);
|
|
100
|
+
});
|
|
101
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
102
|
+
img.addEventListener("error", function () {
|
|
103
|
+
reject(new Error("Failed to load image"));
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
mediaCardSsr[key] = isPreviousImageLarger ? prevData : currData;
|
|
108
|
+
} else {
|
|
109
|
+
mediaCardSsr[key] = {
|
|
110
|
+
dataURI: paramDataURI,
|
|
111
|
+
dimensions,
|
|
112
|
+
error
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// Remove script to prevent hydration mismatch
|
|
117
|
+
(_document$currentScri = document.currentScript) === null || _document$currentScri === void 0 ? void 0 : _document$currentScri.remove();
|
|
118
|
+
|
|
119
|
+
// this replace will be used as a placeholder for the stringified params to be injected into the script
|
|
120
|
+
})({
|
|
121
|
+
replace: ""
|
|
122
|
+
});
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { printFunctionCall, printScript } from './printScript';
|
|
2
1
|
// ----- WARNING -----
|
|
3
2
|
// This is a very sensitive fraction of code.
|
|
4
3
|
// Any changes to this file must be tested directly in product before merging.
|
|
@@ -28,24 +27,6 @@ export function getMediaCardSSR() {
|
|
|
28
27
|
}
|
|
29
28
|
return globalMedia[key];
|
|
30
29
|
}
|
|
31
|
-
export function getMediaCountSSR() {
|
|
32
|
-
var globalScope = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;
|
|
33
|
-
var globalMedia = getMediaGlobalScope(globalScope);
|
|
34
|
-
// Must match GLOBAL_MEDIA_COUNT_SSR. Can't reference the constant from here.
|
|
35
|
-
if (!globalMedia[GLOBAL_MEDIA_COUNT_SSR]) {
|
|
36
|
-
globalMedia[GLOBAL_MEDIA_COUNT_SSR] = 0;
|
|
37
|
-
}
|
|
38
|
-
return globalMedia[GLOBAL_MEDIA_COUNT_SSR];
|
|
39
|
-
}
|
|
40
|
-
export function incrementMediaCountSSR() {
|
|
41
|
-
var globalScope = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;
|
|
42
|
-
var globalMedia = getMediaGlobalScope(globalScope);
|
|
43
|
-
// Must match GLOBAL_MEDIA_COUNT_SSR. Can't reference the constant from here.
|
|
44
|
-
if (!globalMedia[GLOBAL_MEDIA_COUNT_SSR]) {
|
|
45
|
-
globalMedia[GLOBAL_MEDIA_COUNT_SSR] = 0;
|
|
46
|
-
}
|
|
47
|
-
globalMedia[GLOBAL_MEDIA_COUNT_SSR]++;
|
|
48
|
-
}
|
|
49
30
|
var dashed = function dashed(param) {
|
|
50
31
|
return param ? "-".concat(param) : '';
|
|
51
32
|
};
|
|
@@ -55,62 +36,24 @@ export var getKey = function getKey(_ref, resizeMode) {
|
|
|
55
36
|
occurrenceKey = _ref.occurrenceKey;
|
|
56
37
|
return "".concat(id).concat(dashed(collectionName)).concat(dashed(occurrenceKey)).concat(dashed(resizeMode));
|
|
57
38
|
};
|
|
58
|
-
export var storeDataURI = function storeDataURI(key, paramDataURI, paramMode, paramSrcSet, dimensions, error) {
|
|
59
|
-
var featureFlags = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : {};
|
|
60
|
-
var globalScope = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : window;
|
|
61
|
-
var mediaCardSsr = getMediaCardSSR(globalScope);
|
|
62
|
-
var mediaCountSsr = getMediaCountSSR(globalScope);
|
|
63
|
-
if (featureFlags['media-perf-uplift-mutation-fix']) {
|
|
64
|
-
var _prevData$dimensions, _script;
|
|
65
|
-
var prevData = mediaCardSsr[key];
|
|
66
|
-
var isPreviousImageLarger = (prevData === null || prevData === void 0 ? void 0 : prevData.mode) === paramMode && prevData && ((_prevData$dimensions = prevData.dimensions) === null || _prevData$dimensions === void 0 ? void 0 : _prevData$dimensions.width) && (dimensions === null || dimensions === void 0 ? void 0 : dimensions.width) && prevData.dimensions.width > dimensions.width;
|
|
67
|
-
var srcSet = isPreviousImageLarger ? prevData === null || prevData === void 0 ? void 0 : prevData.srcSet : paramSrcSet;
|
|
68
|
-
var dataURI = isPreviousImageLarger ? prevData === null || prevData === void 0 ? void 0 : prevData.dataURI : paramDataURI;
|
|
69
|
-
var currData = {
|
|
70
|
-
dataURI: dataURI,
|
|
71
|
-
dimensions: dimensions,
|
|
72
|
-
error: error,
|
|
73
|
-
srcSet: srcSet,
|
|
74
|
-
loading: 'lazy'
|
|
75
|
-
};
|
|
76
|
-
var img = (_script = script) === null || _script === void 0 || (_script = _script.parentElement) === null || _script === void 0 ? void 0 : _script.querySelector('img');
|
|
77
|
-
if (img && featureFlags['media-perf-lazy-loading-optimisation'] && mediaCountSsr < MAX_EAGER_LOAD_COUNT) {
|
|
78
|
-
incrementMediaCountSSR(globalScope);
|
|
79
|
-
if (img.getAttribute('loading') === 'lazy') {
|
|
80
|
-
img.removeAttribute('loading');
|
|
81
|
-
}
|
|
82
|
-
currData.loading = '';
|
|
83
|
-
}
|
|
84
|
-
if (img && dataURI) {
|
|
85
|
-
img.src = dataURI;
|
|
86
|
-
}
|
|
87
|
-
if (img && srcSet) {
|
|
88
|
-
img.srcset = srcSet;
|
|
89
|
-
}
|
|
90
|
-
currData.loadPromise = new Promise(function (resolve, reject) {
|
|
91
|
-
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
92
|
-
img === null || img === void 0 || img.addEventListener('load', function () {
|
|
93
|
-
resolve(void 0);
|
|
94
|
-
});
|
|
95
|
-
|
|
96
|
-
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
97
|
-
img === null || img === void 0 || img.addEventListener('error', function () {
|
|
98
|
-
reject(new Error('Failed to load image'));
|
|
99
|
-
});
|
|
100
|
-
});
|
|
101
|
-
mediaCardSsr[key] = isPreviousImageLarger ? prevData : currData;
|
|
102
|
-
} else {
|
|
103
|
-
mediaCardSsr[key] = {
|
|
104
|
-
dataURI: paramDataURI,
|
|
105
|
-
dimensions: dimensions,
|
|
106
|
-
error: error
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
};
|
|
110
39
|
var generateScript = function generateScript(identifier, dataURI, mode, srcSet, dimensions, error) {
|
|
111
40
|
var featureFlags = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : {};
|
|
112
|
-
var
|
|
113
|
-
|
|
41
|
+
var key = getKey(identifier, mode);
|
|
42
|
+
|
|
43
|
+
// Serialize the parameters for injection into the script
|
|
44
|
+
var params = {
|
|
45
|
+
key: key,
|
|
46
|
+
dataURI: dataURI,
|
|
47
|
+
mode: mode,
|
|
48
|
+
srcSet: srcSet,
|
|
49
|
+
dimensions: dimensions,
|
|
50
|
+
error: error,
|
|
51
|
+
featureFlags: featureFlags,
|
|
52
|
+
maxEagerLoadCount: MAX_EAGER_LOAD_COUNT
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
// Read originalScriptCode.ts before making changes
|
|
56
|
+
return "!function(){function e(){const e=\"__MEDIA_INTERNAL\";return window[e]||(window[e]={}),window[e]}!function(n){var t;const i=document.currentScript,o=function(){const n=e(),t=\"mediaCardSsr\";return n[t]||(n[t]={}),n[t]}(),r=function(){const n=e(),t=\"mediaCountSsr\";return n[t]||(n[t]=0),n[t]}(),{key:d}=n,a=n.dataURI,s=n.mode,c=n.srcSet,{dimensions:m}=n,{error:u}=n,{featureFlags:l}=n;if(l[\"media-perf-uplift-mutation-fix\"]){const t=o[d],f=t&&t.mode===s&&t.dimensions&&t.dimensions.width&&m&&m.width&&t.dimensions.width>m.width,w=f?t.srcSet:c,g=f?t.dataURI:a,p={dataURI:g,dimensions:m,error:u,srcSet:w,loading:\"lazy\",loadPromise:void 0,mode:s},S=i&&i.parentElement&&i.parentElement.querySelector(\"img\");S&&l[\"media-perf-lazy-loading-optimisation\"]&&r<n.maxEagerLoadCount&&(!function(){const n=e(),t=\"mediaCountSsr\";n[t]||(n[t]=0),n[t]++}(),\"lazy\"===S.getAttribute(\"loading\")&&S.removeAttribute(\"loading\"),p.loading=\"\"),S&&g&&(S.src=g),S&&w&&(S.srcset=w),p.loadPromise=new Promise((function(e,n){S&&(S.addEventListener(\"load\",(function(){e(void 0)})),S.addEventListener(\"error\",(function(){n(new Error(\"Failed to load image\"))})))})),o[d]=f?t:p}else o[d]={dataURI:a,dimensions:m,error:u};null===(t=document.currentScript)||void 0===t||t.remove()}({replace:\"\"})}();".replace('{replace:""}', JSON.stringify(params));
|
|
114
57
|
};
|
|
115
58
|
export var generateScriptProps = function generateScriptProps(identifier, dataURI, mode, srcSet, dimensions, error) {
|
|
116
59
|
var featureFlags = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : {};
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/* eslint-disable @atlaskit/platform/no-direct-document-usage */
|
|
2
|
+
|
|
3
|
+
/** IMPORTANT: This is the original code for the script.
|
|
4
|
+
* Do not change the code without testing it in product first.
|
|
5
|
+
* Steps:
|
|
6
|
+
* 1. Make changes in this code
|
|
7
|
+
* 2. Manually minify the code via https://repl.parceljs.org/ (using typescript preset with minify option)
|
|
8
|
+
* - eg: https://repl.parceljs.org/#JTdCJTIyZmlsZXMlMjIlM0ElNUIlNUIlMjIlMkZzcmMlMkZpbmRleC50cyUyMiUyQyU3QiUyMnZhbHVlJTIyJTNBJTIyJTJGKiUyMGVzbGludC1kaXNhYmxlJTIwJTQwYXRsYXNraXQlMkZwbGF0Zm9ybSUyRm5vLWRpcmVjdC1kb2N1bWVudC11c2FnZSUyMColMkYlNUNuJTVDbiUyRioqJTIwSU1QT1JUQU5UJTNBJTIwVGhpcyUyMGlzJTIwdGhlJTIwb3JpZ2luYWwlMjBjb2RlJTIwZm9yJTIwdGhlJTIwc2NyaXB0LiU1Q24lMjAqJTIwRG8lMjBub3QlMjBjaGFuZ2UlMjB0aGUlMjBjb2RlJTIwd2l0aG91dCUyMHRlc3RpbmclMjBpdCUyMGluJTIwcHJvZHVjdCUyMGZpcnN0LiU1Q24lMjAqJTIwU3RlcHMlM0ElNUNuJTIwKiUyMDEuJTIwTWFrZSUyMGNoYW5nZXMlMjBpbiUyMHRoaXMlMjBjb2RlJTVDbiUyMColMjAyLiUyME1hbnVhbGx5JTIwbWluaWZ5JTIwdGhlJTIwY29kZSUyMHZpYSUyMGh0dHBzJTNBJTJGJTJGcmVwbC5wYXJjZWxqcy5vcmclMkYlNUNuJTIwKiUyMDMuJTIwQ29weSUyMHRoZSUyMG1pbmlmaWVkJTIwY29kZSUyMGludG8lMjBnbG9iYWxTY29wZS50c3glMjByZXBsYWNpbmclMjB0aGUlMjBleGlzdGluZyUyMHN0cmluZyUyMHdoZXJlJTIwaXQlMjBzYXlzJTIwUEFTVEUlMjBIRVJFJTVDbiUyMColMjA0LiUyMFJ1biUyMHRoZSUyMHRlc3RzJTIwYW5kJTIwbWFrZSUyMHN1cmUlMjB0aGV5JTIwcGFzcyU1Q24lMjAqJTIwNS4lMjBURVNUJTIwSU4lMjBQUk9EVUNUUyUyMEJFRk9SRSUyME1FUkdJTkclNUNuJTIwKiU1Q24lMjAqJTJGJTVDbiU1Q25mdW5jdGlvbiUyMGdldE1lZGlhR2xvYmFsU2NvcGUoKSUyMCU3QiU1Q24lMjAlMjBjb25zdCUyMG5hbWVzcGFjZSUyMCUzRCUyMCU1QyUyMl9fTUVESUFfSU5URVJOQUwlNUMlMjIlM0IlNUNuJTIwJTIwaWYlMjAoISh3aW5kb3clMjBhcyUyMGFueSklNUJuYW1lc3BhY2UlNUQpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCh3aW5kb3clMjBhcyUyMGFueSklNUJuYW1lc3BhY2UlNUQlMjAlM0QlMjAlN0IlN0QlM0IlNUNuJTIwJTIwJTdEJTVDbiUyMCUyMHJldHVybiUyMCh3aW5kb3clMjBhcyUyMGFueSklNUJuYW1lc3BhY2UlNUQlM0IlNUNuJTdEJTVDbiU1Q25mdW5jdGlvbiUyMGdldE1lZGlhQ2FyZFNTUigpJTIwJTdCJTVDbiUyMCUyMGNvbnN0JTIwZ2xvYmFsTWVkaWElMjAlM0QlMjBnZXRNZWRpYUdsb2JhbFNjb3BlKCklM0IlNUNuJTIwJTIwY29uc3QlMjBrZXklMjAlM0QlMjAlNUMlMjJtZWRpYUNhcmRTc3IlNUMlMjIlM0IlNUNuJTIwJTIwaWYlMjAoIWdsb2JhbE1lZGlhJTVCa2V5JTVEKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjBnbG9iYWxNZWRpYSU1QmtleSU1RCUyMCUzRCUyMCU3QiU3RCUzQiU1Q24lMjAlMjAlN0QlNUNuJTIwJTIwcmV0dXJuJTIwZ2xvYmFsTWVkaWElNUJrZXklNUQlM0IlNUNuJTdEJTVDbiU1Q25mdW5jdGlvbiUyMGdldE1lZGlhQ291bnRTU1IoKSUyMCU3QiU1Q24lMjAlMjBjb25zdCUyMGdsb2JhbE1lZGlhJTIwJTNEJTIwZ2V0TWVkaWFHbG9iYWxTY29wZSgpJTNCJTVDbiUyMCUyMGNvbnN0JTIwa2V5JTIwJTNEJTIwJTVDJTIybWVkaWFDb3VudFNzciU1QyUyMiUzQiU1Q24lMjAlMjBpZiUyMCghZ2xvYmFsTWVkaWElNUJrZXklNUQpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMGdsb2JhbE1lZGlhJTVCa2V5JTVEJTIwJTNEJTIwMCUzQiU1Q24lMjAlMjAlN0QlNUNuJTIwJTIwcmV0dXJuJTIwZ2xvYmFsTWVkaWElNUJrZXklNUQlM0IlNUNuJTdEJTVDbiU1Q25mdW5jdGlvbiUyMGluY3JlbWVudE1lZGlhQ291bnRTU1IoKSUyMCU3QiU1Q24lMjAlMjBjb25zdCUyMGdsb2JhbE1lZGlhJTIwJTNEJTIwZ2V0TWVkaWFHbG9iYWxTY29wZSgpJTNCJTVDbiUyMCUyMGNvbnN0JTIwa2V5JTIwJTNEJTIwJTVDJTIybWVkaWFDb3VudFNzciU1QyUyMiUzQiU1Q24lMjAlMjBpZiUyMCghZ2xvYmFsTWVkaWElNUJrZXklNUQpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMGdsb2JhbE1lZGlhJTVCa2V5JTVEJTIwJTNEJTIwMCUzQiU1Q24lMjAlMjAlN0QlNUNuJTIwJTIwZ2xvYmFsTWVkaWElNUJrZXklNUQlMkIlMkIlM0IlNUNuJTdEJTVDbiU1Q24oZnVuY3Rpb24lMjAocGFyYW1zJTNBJTIwYW55KSUyMCU3QiU1Q24lMjAlMjBjb25zdCUyMHNjcmlwdCUyMCUzRCUyMGRvY3VtZW50LmN1cnJlbnRTY3JpcHQlM0IlNUNuJTVDbiUyMCUyMCUyRiUyRiUyMFN0b3JlJTIwdGhlJTIwZGF0YSU1Q24lMjAlMjBjb25zdCUyMG1lZGlhQ2FyZFNzciUyMCUzRCUyMGdldE1lZGlhQ2FyZFNTUigpJTNCJTVDbiUyMCUyMGNvbnN0JTIwbWVkaWFDb3VudFNzciUyMCUzRCUyMGdldE1lZGlhQ291bnRTU1IoKSUzQiU1Q24lMjAlMjBjb25zdCUyMCU3QiUyMGtleSUyMCU3RCUyMCUzRCUyMHBhcmFtcyUzQiU1Q24lMjAlMjBjb25zdCUyMHBhcmFtRGF0YVVSSSUyMCUzRCUyMHBhcmFtcy5kYXRhVVJJJTNCJTVDbiUyMCUyMGNvbnN0JTIwcGFyYW1Nb2RlJTIwJTNEJTIwcGFyYW1zLm1vZGUlM0IlNUNuJTIwJTIwY29uc3QlMjBwYXJhbVNyY1NldCUyMCUzRCUyMHBhcmFtcy5zcmNTZXQlM0IlNUNuJTIwJTIwY29uc3QlMjAlN0IlMjBkaW1lbnNpb25zJTIwJTdEJTIwJTNEJTIwcGFyYW1zJTNCJTVDbiUyMCUyMGNvbnN0JTIwJTdCJTIwZXJyb3IlMjAlN0QlMjAlM0QlMjBwYXJhbXMlM0IlNUNuJTIwJTIwY29uc3QlMjAlN0IlMjBmZWF0dXJlRmxhZ3MlMjAlN0QlMjAlM0QlMjBwYXJhbXMlM0IlNUNuJTVDbiUyMCUyMGlmJTIwKGZlYXR1cmVGbGFncyU1QiU1QyUyMm1lZGlhLXBlcmYtdXBsaWZ0LW11dGF0aW9uLWZpeCU1QyUyMiU1RCklMjAlN0IlNUNuJTIwJTIwJTIwJTIwY29uc3QlMjBwcmV2RGF0YSUyMCUzRCUyMG1lZGlhQ2FyZFNzciU1QmtleSU1RCUzQiU1Q24lMjAlMjAlMjAlMjBjb25zdCUyMGlzUHJldmlvdXNJbWFnZUxhcmdlciUyMCUzRCU1Q24lMjAlMjAlMjAlMjAlMjAlMjBwcmV2RGF0YSUyMCUyNiUyNiU1Q24lMjAlMjAlMjAlMjAlMjAlMjBwcmV2RGF0YS5tb2RlJTIwJTNEJTNEJTNEJTIwcGFyYW1Nb2RlJTIwJTI2JTI2JTVDbiUyMCUyMCUyMCUyMCUyMCUyMHByZXZEYXRhLmRpbWVuc2lvbnMlMjAlMjYlMjYlNUNuJTIwJTIwJTIwJTIwJTIwJTIwcHJldkRhdGEuZGltZW5zaW9ucy53aWR0aCUyMCUyNiUyNiU1Q24lMjAlMjAlMjAlMjAlMjAlMjBkaW1lbnNpb25zJTIwJTI2JTI2JTVDbiUyMCUyMCUyMCUyMCUyMCUyMGRpbWVuc2lvbnMud2lkdGglMjAlMjYlMjYlNUNuJTIwJTIwJTIwJTIwJTIwJTIwcHJldkRhdGEuZGltZW5zaW9ucy53aWR0aCUyMCUzRSUyMGRpbWVuc2lvbnMud2lkdGglM0IlNUNuJTVDbiUyMCUyMCUyMCUyMGNvbnN0JTIwc3JjU2V0JTIwJTNEJTIwaXNQcmV2aW91c0ltYWdlTGFyZ2VyJTIwJTNGJTIwcHJldkRhdGEuc3JjU2V0JTIwJTNBJTIwcGFyYW1TcmNTZXQlM0IlNUNuJTIwJTIwJTIwJTIwY29uc3QlMjBkYXRhVVJJJTIwJTNEJTIwaXNQcmV2aW91c0ltYWdlTGFyZ2VyJTIwJTNGJTIwcHJldkRhdGEuZGF0YVVSSSUyMCUzQSUyMHBhcmFtRGF0YVVSSSUzQiU1Q24lNUNuJTIwJTIwJTIwJTIwY29uc3QlMjBjdXJyRGF0YSUzQSUyMGFueSUyMCUzRCUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjBkYXRhVVJJJTJDJTVDbiUyMCUyMCUyMCUyMCUyMCUyMGRpbWVuc2lvbnMlMkMlNUNuJTIwJTIwJTIwJTIwJTIwJTIwZXJyb3IlMkMlNUNuJTIwJTIwJTIwJTIwJTIwJTIwc3JjU2V0JTJDJTVDbiUyMCUyMCUyMCUyMCUyMCUyMGxvYWRpbmclM0ElMjAlNUMlMjJsYXp5JTVDJTIyJTJDJTVDbiUyMCUyMCUyMCUyMCUyMCUyMGxvYWRQcm9taXNlJTNBJTIwdW5kZWZpbmVkJTJDJTVDbiU1Q3QlNUN0JTVDdG1vZGUlM0ElMjBwYXJhbU1vZGUlMkMlNUNuJTIwJTIwJTIwJTIwJTdEJTNCJTVDbiU1Q24lMjAlMjAlMjAlMjBjb25zdCUyMGltZyUyMCUzRCU1Q24lMjAlMjAlMjAlMjAlMjAlMjBzY3JpcHQlMjAlMjYlMjYlNUNuJTIwJTIwJTIwJTIwJTIwJTIwc2NyaXB0LnBhcmVudEVsZW1lbnQlMjAlMjYlMjYlNUNuJTIwJTIwJTIwJTIwJTIwJTIwc2NyaXB0LnBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3RvciglNUMlMjJpbWclNUMlMjIpJTNCJTVDbiU1Q24lMjAlMjAlMjAlMjBpZiUyMCglNUNuJTIwJTIwJTIwJTIwJTIwJTIwaW1nJTIwJTI2JTI2JTVDbiUyMCUyMCUyMCUyMCUyMCUyMGZlYXR1cmVGbGFncyU1QiU1QyUyMm1lZGlhLXBlcmYtbGF6eS1sb2FkaW5nLW9wdGltaXNhdGlvbiU1QyUyMiU1RCUyMCUyNiUyNiU1Q24lMjAlMjAlMjAlMjAlMjAlMjBtZWRpYUNvdW50U3NyJTIwJTNDJTIwcGFyYW1zLm1heEVhZ2VyTG9hZENvdW50JTVDbiUyMCUyMCUyMCUyMCklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwaW5jcmVtZW50TWVkaWFDb3VudFNTUigpJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMGlmJTIwKGltZy5nZXRBdHRyaWJ1dGUoJTVDJTIybG9hZGluZyU1QyUyMiklMjAlM0QlM0QlM0QlMjAlNUMlMjJsYXp5JTVDJTIyKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBpbWcucmVtb3ZlQXR0cmlidXRlKCU1QyUyMmxvYWRpbmclNUMlMjIpJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCU3RCU1Q24lMjAlMjAlMjAlMjAlMjAlMjBjdXJyRGF0YS5sb2FkaW5nJTIwJTNEJTIwJTVDJTIyJTVDJTIyJTNCJTVDbiUyMCUyMCUyMCUyMCU3RCU1Q24lNUNuJTIwJTIwJTIwJTIwaWYlMjAoaW1nJTIwJTI2JTI2JTIwZGF0YVVSSSklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwaW1nLnNyYyUyMCUzRCUyMGRhdGFVUkklM0IlNUNuJTIwJTIwJTIwJTIwJTdEJTVDbiUyMCUyMCUyMCUyMGlmJTIwKGltZyUyMCUyNiUyNiUyMHNyY1NldCklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwaW1nLnNyY3NldCUyMCUzRCUyMHNyY1NldCUzQiU1Q24lMjAlMjAlMjAlMjAlN0QlNUNuJTVDbiUyMCUyMCUyMCUyMGN1cnJEYXRhLmxvYWRQcm9taXNlJTIwJTNEJTIwbmV3JTIwUHJvbWlzZSUzQ3ZvaWQlM0UoZnVuY3Rpb24lMjAocmVzb2x2ZSUyQyUyMHJlamVjdCklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwaWYlMjAoaW1nKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMkYlMkYlMjBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUlMjAlNDByZXBvJTJGaW50ZXJuYWwlMkZkb20tZXZlbnRzJTJGbm8tdW5zYWZlLWV2ZW50LWxpc3RlbmVycyU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBpbWcuYWRkRXZlbnRMaXN0ZW5lciglNUMlMjJsb2FkJTVDJTIyJTJDJTIwZnVuY3Rpb24lMjAoKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXNvbHZlKHVuZGVmaW5lZCklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEKSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMkYlMkYlMjBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUlMjAlNDByZXBvJTJGaW50ZXJuYWwlMkZkb20tZXZlbnRzJTJGbm8tdW5zYWZlLWV2ZW50LWxpc3RlbmVycyU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBpbWcuYWRkRXZlbnRMaXN0ZW5lciglNUMlMjJlcnJvciU1QyUyMiUyQyUyMGZ1bmN0aW9uJTIwKCklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmVqZWN0KG5ldyUyMEVycm9yKCU1QyUyMkZhaWxlZCUyMHRvJTIwbG9hZCUyMGltYWdlJTVDJTIyKSklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEKSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlN0QlNUNuJTIwJTIwJTIwJTIwJTdEKSUzQiU1Q24lNUNuJTIwJTIwJTIwJTIwbWVkaWFDYXJkU3NyJTVCa2V5JTVEJTIwJTNEJTIwaXNQcmV2aW91c0ltYWdlTGFyZ2VyJTIwJTNGJTIwcHJldkRhdGElMjAlM0ElMjBjdXJyRGF0YSUzQiU1Q24lMjAlMjAlN0QlMjBlbHNlJTIwJTdCJTVDbiUyMCUyMCUyMCUyMG1lZGlhQ2FyZFNzciU1QmtleSU1RCUyMCUzRCUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjBkYXRhVVJJJTNBJTIwcGFyYW1EYXRhVVJJJTJDJTVDbiUyMCUyMCUyMCUyMCUyMCUyMGRpbWVuc2lvbnMlMkMlNUNuJTIwJTIwJTIwJTIwJTIwJTIwZXJyb3IlMkMlNUNuJTIwJTIwJTIwJTIwJTdEJTNCJTVDbiUyMCUyMCU3RCU1Q24lNUNuJTIwJTIwJTJGJTJGJTIwUmVtb3ZlJTIwc2NyaXB0JTIwdG8lMjBwcmV2ZW50JTIwaHlkcmF0aW9uJTIwbWlzbWF0Y2glNUNuJTIwJTIwZG9jdW1lbnQuY3VycmVudFNjcmlwdCUzRi5yZW1vdmUoKSUzQiU1Q24lNUNuJTVDdCUyRiUyRiUyMHRoaXMlMjByZXBsYWNlJTIwd2lsbCUyMGJlJTIwdXNlZCUyMGFzJTIwYSUyMHBsYWNlaG9sZGVyJTIwZm9yJTIwdGhlJTIwc3RyaW5naWZpZWQlMjBwYXJhbXMlMjB0byUyMGJlJTIwaW5qZWN0ZWQlMjBpbnRvJTIwdGhlJTIwc2NyaXB0JTVDbiU3RCkoJTdCJTIwcmVwbGFjZSUzQSUyMCU1QyUyMiU1QyUyMiUyMCU3RCklM0IlNUNuJTIyJTJDJTIyaXNFbnRyeSUyMiUzQXRydWUlN0QlNUQlNUQlMkMlMjJvcHRpb25zJTIyJTNBJTdCJTIyZW50cmllcyUyMiUzQSU1QiU1RCUyQyUyMm1pbmlmeSUyMiUzQXRydWUlMkMlMjJzY29wZUhvaXN0JTIyJTNBdHJ1ZSUyQyUyMnNvdXJjZU1hcHMlMjIlM0FmYWxzZSUyQyUyMnB1YmxpY1VybCUyMiUzQSUyMiUyRl9fcmVwbF9kaXN0JTIyJTJDJTIydGFyZ2V0VHlwZSUyMiUzQSUyMmJyb3dzZXJzJTIyJTJDJTIydGFyZ2V0RW52JTIyJTNBbnVsbCUyQyUyMm91dHB1dEZvcm1hdCUyMiUzQW51bGwlMkMlMjJobXIlMjIlM0FmYWxzZSUyQyUyMm1vZGUlMjIlM0ElMjJwcm9kdWN0aW9uJTIyJTJDJTIycmVuZGVyR3JhcGhzJTIyJTNBZmFsc2UlMkMlMjJ2aWV3U291cmNlbWFwcyUyMiUzQWZhbHNlJTJDJTIyZGVwZW5kZW5jaWVzJTIyJTNBJTVCJTVEJTJDJTIybnVtV29ya2VycyUyMiUzQTAlN0QlMkMlMjJ1c2VUYWJzJTIyJTNBdHJ1ZSUyQyUyMmJyb3dzZXJDb2xsYXBzZWQlMjIlM0ElNUIlNUQlMkMlMjJ2aWV3cyUyMiUzQSU1QiUyMiUyRnNyYyUyRmluZGV4LnRzJTIyJTVEJTJDJTIyY3VycmVudFZpZXclMjIlM0EwJTdE
|
|
9
|
+
* 3. Copy the minified code into globalScope.tsx replacing the existing string where it says PASTE HERE
|
|
10
|
+
* 4. Run the tests and make sure they pass
|
|
11
|
+
* 5. TEST IN PRODUCTS BEFORE MERGING
|
|
12
|
+
*
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
function getMediaGlobalScope() {
|
|
16
|
+
var namespace = "__MEDIA_INTERNAL";
|
|
17
|
+
if (!window[namespace]) {
|
|
18
|
+
window[namespace] = {};
|
|
19
|
+
}
|
|
20
|
+
return window[namespace];
|
|
21
|
+
}
|
|
22
|
+
function getMediaCardSSR() {
|
|
23
|
+
var globalMedia = getMediaGlobalScope();
|
|
24
|
+
var key = "mediaCardSsr";
|
|
25
|
+
if (!globalMedia[key]) {
|
|
26
|
+
globalMedia[key] = {};
|
|
27
|
+
}
|
|
28
|
+
return globalMedia[key];
|
|
29
|
+
}
|
|
30
|
+
function getMediaCountSSR() {
|
|
31
|
+
var globalMedia = getMediaGlobalScope();
|
|
32
|
+
var key = "mediaCountSsr";
|
|
33
|
+
if (!globalMedia[key]) {
|
|
34
|
+
globalMedia[key] = 0;
|
|
35
|
+
}
|
|
36
|
+
return globalMedia[key];
|
|
37
|
+
}
|
|
38
|
+
function incrementMediaCountSSR() {
|
|
39
|
+
var globalMedia = getMediaGlobalScope();
|
|
40
|
+
var key = "mediaCountSsr";
|
|
41
|
+
if (!globalMedia[key]) {
|
|
42
|
+
globalMedia[key] = 0;
|
|
43
|
+
}
|
|
44
|
+
globalMedia[key]++;
|
|
45
|
+
}
|
|
46
|
+
(function (params, _document$currentScri) {
|
|
47
|
+
var script = document.currentScript;
|
|
48
|
+
|
|
49
|
+
// Store the data
|
|
50
|
+
var mediaCardSsr = getMediaCardSSR();
|
|
51
|
+
var mediaCountSsr = getMediaCountSSR();
|
|
52
|
+
var key = params.key;
|
|
53
|
+
var paramDataURI = params.dataURI;
|
|
54
|
+
var paramMode = params.mode;
|
|
55
|
+
var paramSrcSet = params.srcSet;
|
|
56
|
+
var dimensions = params.dimensions;
|
|
57
|
+
var error = params.error;
|
|
58
|
+
var featureFlags = params.featureFlags;
|
|
59
|
+
if (featureFlags["media-perf-uplift-mutation-fix"]) {
|
|
60
|
+
var prevData = mediaCardSsr[key];
|
|
61
|
+
var isPreviousImageLarger = prevData && prevData.mode === paramMode && prevData.dimensions && prevData.dimensions.width && dimensions && dimensions.width && prevData.dimensions.width > dimensions.width;
|
|
62
|
+
var srcSet = isPreviousImageLarger ? prevData.srcSet : paramSrcSet;
|
|
63
|
+
var dataURI = isPreviousImageLarger ? prevData.dataURI : paramDataURI;
|
|
64
|
+
var currData = {
|
|
65
|
+
dataURI: dataURI,
|
|
66
|
+
dimensions: dimensions,
|
|
67
|
+
error: error,
|
|
68
|
+
srcSet: srcSet,
|
|
69
|
+
loading: "lazy",
|
|
70
|
+
loadPromise: undefined,
|
|
71
|
+
mode: paramMode
|
|
72
|
+
};
|
|
73
|
+
var img = script && script.parentElement && script.parentElement.querySelector("img");
|
|
74
|
+
if (img && featureFlags["media-perf-lazy-loading-optimisation"] && mediaCountSsr < params.maxEagerLoadCount) {
|
|
75
|
+
incrementMediaCountSSR();
|
|
76
|
+
if (img.getAttribute("loading") === "lazy") {
|
|
77
|
+
img.removeAttribute("loading");
|
|
78
|
+
}
|
|
79
|
+
currData.loading = "";
|
|
80
|
+
}
|
|
81
|
+
if (img && dataURI) {
|
|
82
|
+
img.src = dataURI;
|
|
83
|
+
}
|
|
84
|
+
if (img && srcSet) {
|
|
85
|
+
img.srcset = srcSet;
|
|
86
|
+
}
|
|
87
|
+
currData.loadPromise = new Promise(function (resolve, reject) {
|
|
88
|
+
if (img) {
|
|
89
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
90
|
+
img.addEventListener("load", function () {
|
|
91
|
+
resolve(undefined);
|
|
92
|
+
});
|
|
93
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
94
|
+
img.addEventListener("error", function () {
|
|
95
|
+
reject(new Error("Failed to load image"));
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
mediaCardSsr[key] = isPreviousImageLarger ? prevData : currData;
|
|
100
|
+
} else {
|
|
101
|
+
mediaCardSsr[key] = {
|
|
102
|
+
dataURI: paramDataURI,
|
|
103
|
+
dimensions: dimensions,
|
|
104
|
+
error: error
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// Remove script to prevent hydration mismatch
|
|
109
|
+
(_document$currentScri = document.currentScript) === null || _document$currentScri === void 0 || _document$currentScri.remove();
|
|
110
|
+
|
|
111
|
+
// this replace will be used as a placeholder for the stringified params to be injected into the script
|
|
112
|
+
})({
|
|
113
|
+
replace: ""
|
|
114
|
+
});
|
|
@@ -16,9 +16,6 @@ type MediaFeatureFlags = {
|
|
|
16
16
|
};
|
|
17
17
|
export declare function getMediaGlobalScope(globalScope?: any): MediaGlobalScope;
|
|
18
18
|
export declare function getMediaCardSSR(globalScope?: any): MediaCardSsr;
|
|
19
|
-
export declare function getMediaCountSSR(globalScope?: any): number;
|
|
20
|
-
export declare function incrementMediaCountSSR(globalScope?: any): void;
|
|
21
19
|
export declare const getKey: ({ id, collectionName, occurrenceKey }: FileIdentifier, resizeMode?: string) => string;
|
|
22
|
-
export declare const storeDataURI: (key: string, paramDataURI?: string, paramMode?: string, paramSrcSet?: string, dimensions?: Partial<NumericalCardDimensions>, error?: MediaFilePreviewErrorInfo, featureFlags?: MediaFeatureFlags, globalScope?: any) => void;
|
|
23
20
|
export declare const generateScriptProps: (identifier: FileIdentifier, dataURI?: string, mode?: string, srcSet?: string, dimensions?: Partial<NumericalCardDimensions>, error?: MediaFilePreviewErrorInfo, featureFlags?: MediaFeatureFlags) => React.ScriptHTMLAttributes<HTMLScriptElement>;
|
|
24
21
|
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** IMPORTANT: This is the original code for the script.
|
|
2
|
+
* Do not change the code without testing it in product first.
|
|
3
|
+
* Steps:
|
|
4
|
+
* 1. Make changes in this code
|
|
5
|
+
* 2. Manually minify the code via https://repl.parceljs.org/ (using typescript preset with minify option)
|
|
6
|
+
* - eg: https://repl.parceljs.org/#JTdCJTIyZmlsZXMlMjIlM0ElNUIlNUIlMjIlMkZzcmMlMkZpbmRleC50cyUyMiUyQyU3QiUyMnZhbHVlJTIyJTNBJTIyJTJGKiUyMGVzbGludC1kaXNhYmxlJTIwJTQwYXRsYXNraXQlMkZwbGF0Zm9ybSUyRm5vLWRpcmVjdC1kb2N1bWVudC11c2FnZSUyMColMkYlNUNuJTVDbiUyRioqJTIwSU1QT1JUQU5UJTNBJTIwVGhpcyUyMGlzJTIwdGhlJTIwb3JpZ2luYWwlMjBjb2RlJTIwZm9yJTIwdGhlJTIwc2NyaXB0LiU1Q24lMjAqJTIwRG8lMjBub3QlMjBjaGFuZ2UlMjB0aGUlMjBjb2RlJTIwd2l0aG91dCUyMHRlc3RpbmclMjBpdCUyMGluJTIwcHJvZHVjdCUyMGZpcnN0LiU1Q24lMjAqJTIwU3RlcHMlM0ElNUNuJTIwKiUyMDEuJTIwTWFrZSUyMGNoYW5nZXMlMjBpbiUyMHRoaXMlMjBjb2RlJTVDbiUyMColMjAyLiUyME1hbnVhbGx5JTIwbWluaWZ5JTIwdGhlJTIwY29kZSUyMHZpYSUyMGh0dHBzJTNBJTJGJTJGcmVwbC5wYXJjZWxqcy5vcmclMkYlNUNuJTIwKiUyMDMuJTIwQ29weSUyMHRoZSUyMG1pbmlmaWVkJTIwY29kZSUyMGludG8lMjBnbG9iYWxTY29wZS50c3glMjByZXBsYWNpbmclMjB0aGUlMjBleGlzdGluZyUyMHN0cmluZyUyMHdoZXJlJTIwaXQlMjBzYXlzJTIwUEFTVEUlMjBIRVJFJTVDbiUyMColMjA0LiUyMFJ1biUyMHRoZSUyMHRlc3RzJTIwYW5kJTIwbWFrZSUyMHN1cmUlMjB0aGV5JTIwcGFzcyU1Q24lMjAqJTIwNS4lMjBURVNUJTIwSU4lMjBQUk9EVUNUUyUyMEJFRk9SRSUyME1FUkdJTkclNUNuJTIwKiU1Q24lMjAqJTJGJTVDbiU1Q25mdW5jdGlvbiUyMGdldE1lZGlhR2xvYmFsU2NvcGUoKSUyMCU3QiU1Q24lMjAlMjBjb25zdCUyMG5hbWVzcGFjZSUyMCUzRCUyMCU1QyUyMl9fTUVESUFfSU5URVJOQUwlNUMlMjIlM0IlNUNuJTIwJTIwaWYlMjAoISh3aW5kb3clMjBhcyUyMGFueSklNUJuYW1lc3BhY2UlNUQpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCh3aW5kb3clMjBhcyUyMGFueSklNUJuYW1lc3BhY2UlNUQlMjAlM0QlMjAlN0IlN0QlM0IlNUNuJTIwJTIwJTdEJTVDbiUyMCUyMHJldHVybiUyMCh3aW5kb3clMjBhcyUyMGFueSklNUJuYW1lc3BhY2UlNUQlM0IlNUNuJTdEJTVDbiU1Q25mdW5jdGlvbiUyMGdldE1lZGlhQ2FyZFNTUigpJTIwJTdCJTVDbiUyMCUyMGNvbnN0JTIwZ2xvYmFsTWVkaWElMjAlM0QlMjBnZXRNZWRpYUdsb2JhbFNjb3BlKCklM0IlNUNuJTIwJTIwY29uc3QlMjBrZXklMjAlM0QlMjAlNUMlMjJtZWRpYUNhcmRTc3IlNUMlMjIlM0IlNUNuJTIwJTIwaWYlMjAoIWdsb2JhbE1lZGlhJTVCa2V5JTVEKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjBnbG9iYWxNZWRpYSU1QmtleSU1RCUyMCUzRCUyMCU3QiU3RCUzQiU1Q24lMjAlMjAlN0QlNUNuJTIwJTIwcmV0dXJuJTIwZ2xvYmFsTWVkaWElNUJrZXklNUQlM0IlNUNuJTdEJTVDbiU1Q25mdW5jdGlvbiUyMGdldE1lZGlhQ291bnRTU1IoKSUyMCU3QiU1Q24lMjAlMjBjb25zdCUyMGdsb2JhbE1lZGlhJTIwJTNEJTIwZ2V0TWVkaWFHbG9iYWxTY29wZSgpJTNCJTVDbiUyMCUyMGNvbnN0JTIwa2V5JTIwJTNEJTIwJTVDJTIybWVkaWFDb3VudFNzciU1QyUyMiUzQiU1Q24lMjAlMjBpZiUyMCghZ2xvYmFsTWVkaWElNUJrZXklNUQpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMGdsb2JhbE1lZGlhJTVCa2V5JTVEJTIwJTNEJTIwMCUzQiU1Q24lMjAlMjAlN0QlNUNuJTIwJTIwcmV0dXJuJTIwZ2xvYmFsTWVkaWElNUJrZXklNUQlM0IlNUNuJTdEJTVDbiU1Q25mdW5jdGlvbiUyMGluY3JlbWVudE1lZGlhQ291bnRTU1IoKSUyMCU3QiU1Q24lMjAlMjBjb25zdCUyMGdsb2JhbE1lZGlhJTIwJTNEJTIwZ2V0TWVkaWFHbG9iYWxTY29wZSgpJTNCJTVDbiUyMCUyMGNvbnN0JTIwa2V5JTIwJTNEJTIwJTVDJTIybWVkaWFDb3VudFNzciU1QyUyMiUzQiU1Q24lMjAlMjBpZiUyMCghZ2xvYmFsTWVkaWElNUJrZXklNUQpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMGdsb2JhbE1lZGlhJTVCa2V5JTVEJTIwJTNEJTIwMCUzQiU1Q24lMjAlMjAlN0QlNUNuJTIwJTIwZ2xvYmFsTWVkaWElNUJrZXklNUQlMkIlMkIlM0IlNUNuJTdEJTVDbiU1Q24oZnVuY3Rpb24lMjAocGFyYW1zJTNBJTIwYW55KSUyMCU3QiU1Q24lMjAlMjBjb25zdCUyMHNjcmlwdCUyMCUzRCUyMGRvY3VtZW50LmN1cnJlbnRTY3JpcHQlM0IlNUNuJTVDbiUyMCUyMCUyRiUyRiUyMFN0b3JlJTIwdGhlJTIwZGF0YSU1Q24lMjAlMjBjb25zdCUyMG1lZGlhQ2FyZFNzciUyMCUzRCUyMGdldE1lZGlhQ2FyZFNTUigpJTNCJTVDbiUyMCUyMGNvbnN0JTIwbWVkaWFDb3VudFNzciUyMCUzRCUyMGdldE1lZGlhQ291bnRTU1IoKSUzQiU1Q24lMjAlMjBjb25zdCUyMCU3QiUyMGtleSUyMCU3RCUyMCUzRCUyMHBhcmFtcyUzQiU1Q24lMjAlMjBjb25zdCUyMHBhcmFtRGF0YVVSSSUyMCUzRCUyMHBhcmFtcy5kYXRhVVJJJTNCJTVDbiUyMCUyMGNvbnN0JTIwcGFyYW1Nb2RlJTIwJTNEJTIwcGFyYW1zLm1vZGUlM0IlNUNuJTIwJTIwY29uc3QlMjBwYXJhbVNyY1NldCUyMCUzRCUyMHBhcmFtcy5zcmNTZXQlM0IlNUNuJTIwJTIwY29uc3QlMjAlN0IlMjBkaW1lbnNpb25zJTIwJTdEJTIwJTNEJTIwcGFyYW1zJTNCJTVDbiUyMCUyMGNvbnN0JTIwJTdCJTIwZXJyb3IlMjAlN0QlMjAlM0QlMjBwYXJhbXMlM0IlNUNuJTIwJTIwY29uc3QlMjAlN0IlMjBmZWF0dXJlRmxhZ3MlMjAlN0QlMjAlM0QlMjBwYXJhbXMlM0IlNUNuJTVDbiUyMCUyMGlmJTIwKGZlYXR1cmVGbGFncyU1QiU1QyUyMm1lZGlhLXBlcmYtdXBsaWZ0LW11dGF0aW9uLWZpeCU1QyUyMiU1RCklMjAlN0IlNUNuJTIwJTIwJTIwJTIwY29uc3QlMjBwcmV2RGF0YSUyMCUzRCUyMG1lZGlhQ2FyZFNzciU1QmtleSU1RCUzQiU1Q24lMjAlMjAlMjAlMjBjb25zdCUyMGlzUHJldmlvdXNJbWFnZUxhcmdlciUyMCUzRCU1Q24lMjAlMjAlMjAlMjAlMjAlMjBwcmV2RGF0YSUyMCUyNiUyNiU1Q24lMjAlMjAlMjAlMjAlMjAlMjBwcmV2RGF0YS5tb2RlJTIwJTNEJTNEJTNEJTIwcGFyYW1Nb2RlJTIwJTI2JTI2JTVDbiUyMCUyMCUyMCUyMCUyMCUyMHByZXZEYXRhLmRpbWVuc2lvbnMlMjAlMjYlMjYlNUNuJTIwJTIwJTIwJTIwJTIwJTIwcHJldkRhdGEuZGltZW5zaW9ucy53aWR0aCUyMCUyNiUyNiU1Q24lMjAlMjAlMjAlMjAlMjAlMjBkaW1lbnNpb25zJTIwJTI2JTI2JTVDbiUyMCUyMCUyMCUyMCUyMCUyMGRpbWVuc2lvbnMud2lkdGglMjAlMjYlMjYlNUNuJTIwJTIwJTIwJTIwJTIwJTIwcHJldkRhdGEuZGltZW5zaW9ucy53aWR0aCUyMCUzRSUyMGRpbWVuc2lvbnMud2lkdGglM0IlNUNuJTVDbiUyMCUyMCUyMCUyMGNvbnN0JTIwc3JjU2V0JTIwJTNEJTIwaXNQcmV2aW91c0ltYWdlTGFyZ2VyJTIwJTNGJTIwcHJldkRhdGEuc3JjU2V0JTIwJTNBJTIwcGFyYW1TcmNTZXQlM0IlNUNuJTIwJTIwJTIwJTIwY29uc3QlMjBkYXRhVVJJJTIwJTNEJTIwaXNQcmV2aW91c0ltYWdlTGFyZ2VyJTIwJTNGJTIwcHJldkRhdGEuZGF0YVVSSSUyMCUzQSUyMHBhcmFtRGF0YVVSSSUzQiU1Q24lNUNuJTIwJTIwJTIwJTIwY29uc3QlMjBjdXJyRGF0YSUzQSUyMGFueSUyMCUzRCUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjBkYXRhVVJJJTJDJTVDbiUyMCUyMCUyMCUyMCUyMCUyMGRpbWVuc2lvbnMlMkMlNUNuJTIwJTIwJTIwJTIwJTIwJTIwZXJyb3IlMkMlNUNuJTIwJTIwJTIwJTIwJTIwJTIwc3JjU2V0JTJDJTVDbiUyMCUyMCUyMCUyMCUyMCUyMGxvYWRpbmclM0ElMjAlNUMlMjJsYXp5JTVDJTIyJTJDJTVDbiUyMCUyMCUyMCUyMCUyMCUyMGxvYWRQcm9taXNlJTNBJTIwdW5kZWZpbmVkJTJDJTVDbiU1Q3QlNUN0JTVDdG1vZGUlM0ElMjBwYXJhbU1vZGUlMkMlNUNuJTIwJTIwJTIwJTIwJTdEJTNCJTVDbiU1Q24lMjAlMjAlMjAlMjBjb25zdCUyMGltZyUyMCUzRCU1Q24lMjAlMjAlMjAlMjAlMjAlMjBzY3JpcHQlMjAlMjYlMjYlNUNuJTIwJTIwJTIwJTIwJTIwJTIwc2NyaXB0LnBhcmVudEVsZW1lbnQlMjAlMjYlMjYlNUNuJTIwJTIwJTIwJTIwJTIwJTIwc2NyaXB0LnBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3RvciglNUMlMjJpbWclNUMlMjIpJTNCJTVDbiU1Q24lMjAlMjAlMjAlMjBpZiUyMCglNUNuJTIwJTIwJTIwJTIwJTIwJTIwaW1nJTIwJTI2JTI2JTVDbiUyMCUyMCUyMCUyMCUyMCUyMGZlYXR1cmVGbGFncyU1QiU1QyUyMm1lZGlhLXBlcmYtbGF6eS1sb2FkaW5nLW9wdGltaXNhdGlvbiU1QyUyMiU1RCUyMCUyNiUyNiU1Q24lMjAlMjAlMjAlMjAlMjAlMjBtZWRpYUNvdW50U3NyJTIwJTNDJTIwcGFyYW1zLm1heEVhZ2VyTG9hZENvdW50JTVDbiUyMCUyMCUyMCUyMCklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwaW5jcmVtZW50TWVkaWFDb3VudFNTUigpJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMGlmJTIwKGltZy5nZXRBdHRyaWJ1dGUoJTVDJTIybG9hZGluZyU1QyUyMiklMjAlM0QlM0QlM0QlMjAlNUMlMjJsYXp5JTVDJTIyKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBpbWcucmVtb3ZlQXR0cmlidXRlKCU1QyUyMmxvYWRpbmclNUMlMjIpJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCU3RCU1Q24lMjAlMjAlMjAlMjAlMjAlMjBjdXJyRGF0YS5sb2FkaW5nJTIwJTNEJTIwJTVDJTIyJTVDJTIyJTNCJTVDbiUyMCUyMCUyMCUyMCU3RCU1Q24lNUNuJTIwJTIwJTIwJTIwaWYlMjAoaW1nJTIwJTI2JTI2JTIwZGF0YVVSSSklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwaW1nLnNyYyUyMCUzRCUyMGRhdGFVUkklM0IlNUNuJTIwJTIwJTIwJTIwJTdEJTVDbiUyMCUyMCUyMCUyMGlmJTIwKGltZyUyMCUyNiUyNiUyMHNyY1NldCklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwaW1nLnNyY3NldCUyMCUzRCUyMHNyY1NldCUzQiU1Q24lMjAlMjAlMjAlMjAlN0QlNUNuJTVDbiUyMCUyMCUyMCUyMGN1cnJEYXRhLmxvYWRQcm9taXNlJTIwJTNEJTIwbmV3JTIwUHJvbWlzZSUzQ3ZvaWQlM0UoZnVuY3Rpb24lMjAocmVzb2x2ZSUyQyUyMHJlamVjdCklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwaWYlMjAoaW1nKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMkYlMkYlMjBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUlMjAlNDByZXBvJTJGaW50ZXJuYWwlMkZkb20tZXZlbnRzJTJGbm8tdW5zYWZlLWV2ZW50LWxpc3RlbmVycyU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBpbWcuYWRkRXZlbnRMaXN0ZW5lciglNUMlMjJsb2FkJTVDJTIyJTJDJTIwZnVuY3Rpb24lMjAoKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXNvbHZlKHVuZGVmaW5lZCklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEKSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMkYlMkYlMjBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUlMjAlNDByZXBvJTJGaW50ZXJuYWwlMkZkb20tZXZlbnRzJTJGbm8tdW5zYWZlLWV2ZW50LWxpc3RlbmVycyU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBpbWcuYWRkRXZlbnRMaXN0ZW5lciglNUMlMjJlcnJvciU1QyUyMiUyQyUyMGZ1bmN0aW9uJTIwKCklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmVqZWN0KG5ldyUyMEVycm9yKCU1QyUyMkZhaWxlZCUyMHRvJTIwbG9hZCUyMGltYWdlJTVDJTIyKSklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEKSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlN0QlNUNuJTIwJTIwJTIwJTIwJTdEKSUzQiU1Q24lNUNuJTIwJTIwJTIwJTIwbWVkaWFDYXJkU3NyJTVCa2V5JTVEJTIwJTNEJTIwaXNQcmV2aW91c0ltYWdlTGFyZ2VyJTIwJTNGJTIwcHJldkRhdGElMjAlM0ElMjBjdXJyRGF0YSUzQiU1Q24lMjAlMjAlN0QlMjBlbHNlJTIwJTdCJTVDbiUyMCUyMCUyMCUyMG1lZGlhQ2FyZFNzciU1QmtleSU1RCUyMCUzRCUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjBkYXRhVVJJJTNBJTIwcGFyYW1EYXRhVVJJJTJDJTVDbiUyMCUyMCUyMCUyMCUyMCUyMGRpbWVuc2lvbnMlMkMlNUNuJTIwJTIwJTIwJTIwJTIwJTIwZXJyb3IlMkMlNUNuJTIwJTIwJTIwJTIwJTdEJTNCJTVDbiUyMCUyMCU3RCU1Q24lNUNuJTIwJTIwJTJGJTJGJTIwUmVtb3ZlJTIwc2NyaXB0JTIwdG8lMjBwcmV2ZW50JTIwaHlkcmF0aW9uJTIwbWlzbWF0Y2glNUNuJTIwJTIwZG9jdW1lbnQuY3VycmVudFNjcmlwdCUzRi5yZW1vdmUoKSUzQiU1Q24lNUNuJTVDdCUyRiUyRiUyMHRoaXMlMjByZXBsYWNlJTIwd2lsbCUyMGJlJTIwdXNlZCUyMGFzJTIwYSUyMHBsYWNlaG9sZGVyJTIwZm9yJTIwdGhlJTIwc3RyaW5naWZpZWQlMjBwYXJhbXMlMjB0byUyMGJlJTIwaW5qZWN0ZWQlMjBpbnRvJTIwdGhlJTIwc2NyaXB0JTVDbiU3RCkoJTdCJTIwcmVwbGFjZSUzQSUyMCU1QyUyMiU1QyUyMiUyMCU3RCklM0IlNUNuJTIyJTJDJTIyaXNFbnRyeSUyMiUzQXRydWUlN0QlNUQlNUQlMkMlMjJvcHRpb25zJTIyJTNBJTdCJTIyZW50cmllcyUyMiUzQSU1QiU1RCUyQyUyMm1pbmlmeSUyMiUzQXRydWUlMkMlMjJzY29wZUhvaXN0JTIyJTNBdHJ1ZSUyQyUyMnNvdXJjZU1hcHMlMjIlM0FmYWxzZSUyQyUyMnB1YmxpY1VybCUyMiUzQSUyMiUyRl9fcmVwbF9kaXN0JTIyJTJDJTIydGFyZ2V0VHlwZSUyMiUzQSUyMmJyb3dzZXJzJTIyJTJDJTIydGFyZ2V0RW52JTIyJTNBbnVsbCUyQyUyMm91dHB1dEZvcm1hdCUyMiUzQW51bGwlMkMlMjJobXIlMjIlM0FmYWxzZSUyQyUyMm1vZGUlMjIlM0ElMjJwcm9kdWN0aW9uJTIyJTJDJTIycmVuZGVyR3JhcGhzJTIyJTNBZmFsc2UlMkMlMjJ2aWV3U291cmNlbWFwcyUyMiUzQWZhbHNlJTJDJTIyZGVwZW5kZW5jaWVzJTIyJTNBJTVCJTVEJTJDJTIybnVtV29ya2VycyUyMiUzQTAlN0QlMkMlMjJ1c2VUYWJzJTIyJTNBdHJ1ZSUyQyUyMmJyb3dzZXJDb2xsYXBzZWQlMjIlM0ElNUIlNUQlMkMlMjJ2aWV3cyUyMiUzQSU1QiUyMiUyRnNyYyUyRmluZGV4LnRzJTIyJTVEJTJDJTIyY3VycmVudFZpZXclMjIlM0EwJTdE
|
|
7
|
+
* 3. Copy the minified code into globalScope.tsx replacing the existing string where it says PASTE HERE
|
|
8
|
+
* 4. Run the tests and make sure they pass
|
|
9
|
+
* 5. TEST IN PRODUCTS BEFORE MERGING
|
|
10
|
+
*
|
|
11
|
+
*/
|
|
12
|
+
declare function getMediaGlobalScope(): any;
|
|
13
|
+
declare function getMediaCardSSR(): any;
|
|
14
|
+
declare function getMediaCountSSR(): any;
|
|
15
|
+
declare function incrementMediaCountSSR(): void;
|
|
@@ -16,9 +16,6 @@ type MediaFeatureFlags = {
|
|
|
16
16
|
};
|
|
17
17
|
export declare function getMediaGlobalScope(globalScope?: any): MediaGlobalScope;
|
|
18
18
|
export declare function getMediaCardSSR(globalScope?: any): MediaCardSsr;
|
|
19
|
-
export declare function getMediaCountSSR(globalScope?: any): number;
|
|
20
|
-
export declare function incrementMediaCountSSR(globalScope?: any): void;
|
|
21
19
|
export declare const getKey: ({ id, collectionName, occurrenceKey }: FileIdentifier, resizeMode?: string) => string;
|
|
22
|
-
export declare const storeDataURI: (key: string, paramDataURI?: string, paramMode?: string, paramSrcSet?: string, dimensions?: Partial<NumericalCardDimensions>, error?: MediaFilePreviewErrorInfo, featureFlags?: MediaFeatureFlags, globalScope?: any) => void;
|
|
23
20
|
export declare const generateScriptProps: (identifier: FileIdentifier, dataURI?: string, mode?: string, srcSet?: string, dimensions?: Partial<NumericalCardDimensions>, error?: MediaFilePreviewErrorInfo, featureFlags?: MediaFeatureFlags) => React.ScriptHTMLAttributes<HTMLScriptElement>;
|
|
24
21
|
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** IMPORTANT: This is the original code for the script.
|
|
2
|
+
* Do not change the code without testing it in product first.
|
|
3
|
+
* Steps:
|
|
4
|
+
* 1. Make changes in this code
|
|
5
|
+
* 2. Manually minify the code via https://repl.parceljs.org/ (using typescript preset with minify option)
|
|
6
|
+
* - eg: https://repl.parceljs.org/#JTdCJTIyZmlsZXMlMjIlM0ElNUIlNUIlMjIlMkZzcmMlMkZpbmRleC50cyUyMiUyQyU3QiUyMnZhbHVlJTIyJTNBJTIyJTJGKiUyMGVzbGludC1kaXNhYmxlJTIwJTQwYXRsYXNraXQlMkZwbGF0Zm9ybSUyRm5vLWRpcmVjdC1kb2N1bWVudC11c2FnZSUyMColMkYlNUNuJTVDbiUyRioqJTIwSU1QT1JUQU5UJTNBJTIwVGhpcyUyMGlzJTIwdGhlJTIwb3JpZ2luYWwlMjBjb2RlJTIwZm9yJTIwdGhlJTIwc2NyaXB0LiU1Q24lMjAqJTIwRG8lMjBub3QlMjBjaGFuZ2UlMjB0aGUlMjBjb2RlJTIwd2l0aG91dCUyMHRlc3RpbmclMjBpdCUyMGluJTIwcHJvZHVjdCUyMGZpcnN0LiU1Q24lMjAqJTIwU3RlcHMlM0ElNUNuJTIwKiUyMDEuJTIwTWFrZSUyMGNoYW5nZXMlMjBpbiUyMHRoaXMlMjBjb2RlJTVDbiUyMColMjAyLiUyME1hbnVhbGx5JTIwbWluaWZ5JTIwdGhlJTIwY29kZSUyMHZpYSUyMGh0dHBzJTNBJTJGJTJGcmVwbC5wYXJjZWxqcy5vcmclMkYlNUNuJTIwKiUyMDMuJTIwQ29weSUyMHRoZSUyMG1pbmlmaWVkJTIwY29kZSUyMGludG8lMjBnbG9iYWxTY29wZS50c3glMjByZXBsYWNpbmclMjB0aGUlMjBleGlzdGluZyUyMHN0cmluZyUyMHdoZXJlJTIwaXQlMjBzYXlzJTIwUEFTVEUlMjBIRVJFJTVDbiUyMColMjA0LiUyMFJ1biUyMHRoZSUyMHRlc3RzJTIwYW5kJTIwbWFrZSUyMHN1cmUlMjB0aGV5JTIwcGFzcyU1Q24lMjAqJTIwNS4lMjBURVNUJTIwSU4lMjBQUk9EVUNUUyUyMEJFRk9SRSUyME1FUkdJTkclNUNuJTIwKiU1Q24lMjAqJTJGJTVDbiU1Q25mdW5jdGlvbiUyMGdldE1lZGlhR2xvYmFsU2NvcGUoKSUyMCU3QiU1Q24lMjAlMjBjb25zdCUyMG5hbWVzcGFjZSUyMCUzRCUyMCU1QyUyMl9fTUVESUFfSU5URVJOQUwlNUMlMjIlM0IlNUNuJTIwJTIwaWYlMjAoISh3aW5kb3clMjBhcyUyMGFueSklNUJuYW1lc3BhY2UlNUQpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCh3aW5kb3clMjBhcyUyMGFueSklNUJuYW1lc3BhY2UlNUQlMjAlM0QlMjAlN0IlN0QlM0IlNUNuJTIwJTIwJTdEJTVDbiUyMCUyMHJldHVybiUyMCh3aW5kb3clMjBhcyUyMGFueSklNUJuYW1lc3BhY2UlNUQlM0IlNUNuJTdEJTVDbiU1Q25mdW5jdGlvbiUyMGdldE1lZGlhQ2FyZFNTUigpJTIwJTdCJTVDbiUyMCUyMGNvbnN0JTIwZ2xvYmFsTWVkaWElMjAlM0QlMjBnZXRNZWRpYUdsb2JhbFNjb3BlKCklM0IlNUNuJTIwJTIwY29uc3QlMjBrZXklMjAlM0QlMjAlNUMlMjJtZWRpYUNhcmRTc3IlNUMlMjIlM0IlNUNuJTIwJTIwaWYlMjAoIWdsb2JhbE1lZGlhJTVCa2V5JTVEKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjBnbG9iYWxNZWRpYSU1QmtleSU1RCUyMCUzRCUyMCU3QiU3RCUzQiU1Q24lMjAlMjAlN0QlNUNuJTIwJTIwcmV0dXJuJTIwZ2xvYmFsTWVkaWElNUJrZXklNUQlM0IlNUNuJTdEJTVDbiU1Q25mdW5jdGlvbiUyMGdldE1lZGlhQ291bnRTU1IoKSUyMCU3QiU1Q24lMjAlMjBjb25zdCUyMGdsb2JhbE1lZGlhJTIwJTNEJTIwZ2V0TWVkaWFHbG9iYWxTY29wZSgpJTNCJTVDbiUyMCUyMGNvbnN0JTIwa2V5JTIwJTNEJTIwJTVDJTIybWVkaWFDb3VudFNzciU1QyUyMiUzQiU1Q24lMjAlMjBpZiUyMCghZ2xvYmFsTWVkaWElNUJrZXklNUQpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMGdsb2JhbE1lZGlhJTVCa2V5JTVEJTIwJTNEJTIwMCUzQiU1Q24lMjAlMjAlN0QlNUNuJTIwJTIwcmV0dXJuJTIwZ2xvYmFsTWVkaWElNUJrZXklNUQlM0IlNUNuJTdEJTVDbiU1Q25mdW5jdGlvbiUyMGluY3JlbWVudE1lZGlhQ291bnRTU1IoKSUyMCU3QiU1Q24lMjAlMjBjb25zdCUyMGdsb2JhbE1lZGlhJTIwJTNEJTIwZ2V0TWVkaWFHbG9iYWxTY29wZSgpJTNCJTVDbiUyMCUyMGNvbnN0JTIwa2V5JTIwJTNEJTIwJTVDJTIybWVkaWFDb3VudFNzciU1QyUyMiUzQiU1Q24lMjAlMjBpZiUyMCghZ2xvYmFsTWVkaWElNUJrZXklNUQpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMGdsb2JhbE1lZGlhJTVCa2V5JTVEJTIwJTNEJTIwMCUzQiU1Q24lMjAlMjAlN0QlNUNuJTIwJTIwZ2xvYmFsTWVkaWElNUJrZXklNUQlMkIlMkIlM0IlNUNuJTdEJTVDbiU1Q24oZnVuY3Rpb24lMjAocGFyYW1zJTNBJTIwYW55KSUyMCU3QiU1Q24lMjAlMjBjb25zdCUyMHNjcmlwdCUyMCUzRCUyMGRvY3VtZW50LmN1cnJlbnRTY3JpcHQlM0IlNUNuJTVDbiUyMCUyMCUyRiUyRiUyMFN0b3JlJTIwdGhlJTIwZGF0YSU1Q24lMjAlMjBjb25zdCUyMG1lZGlhQ2FyZFNzciUyMCUzRCUyMGdldE1lZGlhQ2FyZFNTUigpJTNCJTVDbiUyMCUyMGNvbnN0JTIwbWVkaWFDb3VudFNzciUyMCUzRCUyMGdldE1lZGlhQ291bnRTU1IoKSUzQiU1Q24lMjAlMjBjb25zdCUyMCU3QiUyMGtleSUyMCU3RCUyMCUzRCUyMHBhcmFtcyUzQiU1Q24lMjAlMjBjb25zdCUyMHBhcmFtRGF0YVVSSSUyMCUzRCUyMHBhcmFtcy5kYXRhVVJJJTNCJTVDbiUyMCUyMGNvbnN0JTIwcGFyYW1Nb2RlJTIwJTNEJTIwcGFyYW1zLm1vZGUlM0IlNUNuJTIwJTIwY29uc3QlMjBwYXJhbVNyY1NldCUyMCUzRCUyMHBhcmFtcy5zcmNTZXQlM0IlNUNuJTIwJTIwY29uc3QlMjAlN0IlMjBkaW1lbnNpb25zJTIwJTdEJTIwJTNEJTIwcGFyYW1zJTNCJTVDbiUyMCUyMGNvbnN0JTIwJTdCJTIwZXJyb3IlMjAlN0QlMjAlM0QlMjBwYXJhbXMlM0IlNUNuJTIwJTIwY29uc3QlMjAlN0IlMjBmZWF0dXJlRmxhZ3MlMjAlN0QlMjAlM0QlMjBwYXJhbXMlM0IlNUNuJTVDbiUyMCUyMGlmJTIwKGZlYXR1cmVGbGFncyU1QiU1QyUyMm1lZGlhLXBlcmYtdXBsaWZ0LW11dGF0aW9uLWZpeCU1QyUyMiU1RCklMjAlN0IlNUNuJTIwJTIwJTIwJTIwY29uc3QlMjBwcmV2RGF0YSUyMCUzRCUyMG1lZGlhQ2FyZFNzciU1QmtleSU1RCUzQiU1Q24lMjAlMjAlMjAlMjBjb25zdCUyMGlzUHJldmlvdXNJbWFnZUxhcmdlciUyMCUzRCU1Q24lMjAlMjAlMjAlMjAlMjAlMjBwcmV2RGF0YSUyMCUyNiUyNiU1Q24lMjAlMjAlMjAlMjAlMjAlMjBwcmV2RGF0YS5tb2RlJTIwJTNEJTNEJTNEJTIwcGFyYW1Nb2RlJTIwJTI2JTI2JTVDbiUyMCUyMCUyMCUyMCUyMCUyMHByZXZEYXRhLmRpbWVuc2lvbnMlMjAlMjYlMjYlNUNuJTIwJTIwJTIwJTIwJTIwJTIwcHJldkRhdGEuZGltZW5zaW9ucy53aWR0aCUyMCUyNiUyNiU1Q24lMjAlMjAlMjAlMjAlMjAlMjBkaW1lbnNpb25zJTIwJTI2JTI2JTVDbiUyMCUyMCUyMCUyMCUyMCUyMGRpbWVuc2lvbnMud2lkdGglMjAlMjYlMjYlNUNuJTIwJTIwJTIwJTIwJTIwJTIwcHJldkRhdGEuZGltZW5zaW9ucy53aWR0aCUyMCUzRSUyMGRpbWVuc2lvbnMud2lkdGglM0IlNUNuJTVDbiUyMCUyMCUyMCUyMGNvbnN0JTIwc3JjU2V0JTIwJTNEJTIwaXNQcmV2aW91c0ltYWdlTGFyZ2VyJTIwJTNGJTIwcHJldkRhdGEuc3JjU2V0JTIwJTNBJTIwcGFyYW1TcmNTZXQlM0IlNUNuJTIwJTIwJTIwJTIwY29uc3QlMjBkYXRhVVJJJTIwJTNEJTIwaXNQcmV2aW91c0ltYWdlTGFyZ2VyJTIwJTNGJTIwcHJldkRhdGEuZGF0YVVSSSUyMCUzQSUyMHBhcmFtRGF0YVVSSSUzQiU1Q24lNUNuJTIwJTIwJTIwJTIwY29uc3QlMjBjdXJyRGF0YSUzQSUyMGFueSUyMCUzRCUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjBkYXRhVVJJJTJDJTVDbiUyMCUyMCUyMCUyMCUyMCUyMGRpbWVuc2lvbnMlMkMlNUNuJTIwJTIwJTIwJTIwJTIwJTIwZXJyb3IlMkMlNUNuJTIwJTIwJTIwJTIwJTIwJTIwc3JjU2V0JTJDJTVDbiUyMCUyMCUyMCUyMCUyMCUyMGxvYWRpbmclM0ElMjAlNUMlMjJsYXp5JTVDJTIyJTJDJTVDbiUyMCUyMCUyMCUyMCUyMCUyMGxvYWRQcm9taXNlJTNBJTIwdW5kZWZpbmVkJTJDJTVDbiU1Q3QlNUN0JTVDdG1vZGUlM0ElMjBwYXJhbU1vZGUlMkMlNUNuJTIwJTIwJTIwJTIwJTdEJTNCJTVDbiU1Q24lMjAlMjAlMjAlMjBjb25zdCUyMGltZyUyMCUzRCU1Q24lMjAlMjAlMjAlMjAlMjAlMjBzY3JpcHQlMjAlMjYlMjYlNUNuJTIwJTIwJTIwJTIwJTIwJTIwc2NyaXB0LnBhcmVudEVsZW1lbnQlMjAlMjYlMjYlNUNuJTIwJTIwJTIwJTIwJTIwJTIwc2NyaXB0LnBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3RvciglNUMlMjJpbWclNUMlMjIpJTNCJTVDbiU1Q24lMjAlMjAlMjAlMjBpZiUyMCglNUNuJTIwJTIwJTIwJTIwJTIwJTIwaW1nJTIwJTI2JTI2JTVDbiUyMCUyMCUyMCUyMCUyMCUyMGZlYXR1cmVGbGFncyU1QiU1QyUyMm1lZGlhLXBlcmYtbGF6eS1sb2FkaW5nLW9wdGltaXNhdGlvbiU1QyUyMiU1RCUyMCUyNiUyNiU1Q24lMjAlMjAlMjAlMjAlMjAlMjBtZWRpYUNvdW50U3NyJTIwJTNDJTIwcGFyYW1zLm1heEVhZ2VyTG9hZENvdW50JTVDbiUyMCUyMCUyMCUyMCklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwaW5jcmVtZW50TWVkaWFDb3VudFNTUigpJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMGlmJTIwKGltZy5nZXRBdHRyaWJ1dGUoJTVDJTIybG9hZGluZyU1QyUyMiklMjAlM0QlM0QlM0QlMjAlNUMlMjJsYXp5JTVDJTIyKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBpbWcucmVtb3ZlQXR0cmlidXRlKCU1QyUyMmxvYWRpbmclNUMlMjIpJTNCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCU3RCU1Q24lMjAlMjAlMjAlMjAlMjAlMjBjdXJyRGF0YS5sb2FkaW5nJTIwJTNEJTIwJTVDJTIyJTVDJTIyJTNCJTVDbiUyMCUyMCUyMCUyMCU3RCU1Q24lNUNuJTIwJTIwJTIwJTIwaWYlMjAoaW1nJTIwJTI2JTI2JTIwZGF0YVVSSSklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwaW1nLnNyYyUyMCUzRCUyMGRhdGFVUkklM0IlNUNuJTIwJTIwJTIwJTIwJTdEJTVDbiUyMCUyMCUyMCUyMGlmJTIwKGltZyUyMCUyNiUyNiUyMHNyY1NldCklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwaW1nLnNyY3NldCUyMCUzRCUyMHNyY1NldCUzQiU1Q24lMjAlMjAlMjAlMjAlN0QlNUNuJTVDbiUyMCUyMCUyMCUyMGN1cnJEYXRhLmxvYWRQcm9taXNlJTIwJTNEJTIwbmV3JTIwUHJvbWlzZSUzQ3ZvaWQlM0UoZnVuY3Rpb24lMjAocmVzb2x2ZSUyQyUyMHJlamVjdCklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwaWYlMjAoaW1nKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMkYlMkYlMjBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUlMjAlNDByZXBvJTJGaW50ZXJuYWwlMkZkb20tZXZlbnRzJTJGbm8tdW5zYWZlLWV2ZW50LWxpc3RlbmVycyU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBpbWcuYWRkRXZlbnRMaXN0ZW5lciglNUMlMjJsb2FkJTVDJTIyJTJDJTIwZnVuY3Rpb24lMjAoKSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXNvbHZlKHVuZGVmaW5lZCklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEKSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMkYlMkYlMjBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUlMjAlNDByZXBvJTJGaW50ZXJuYWwlMkZkb20tZXZlbnRzJTJGbm8tdW5zYWZlLWV2ZW50LWxpc3RlbmVycyU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBpbWcuYWRkRXZlbnRMaXN0ZW5lciglNUMlMjJlcnJvciU1QyUyMiUyQyUyMGZ1bmN0aW9uJTIwKCklMjAlN0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmVqZWN0KG5ldyUyMEVycm9yKCU1QyUyMkZhaWxlZCUyMHRvJTIwbG9hZCUyMGltYWdlJTVDJTIyKSklM0IlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEKSUzQiU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlN0QlNUNuJTIwJTIwJTIwJTIwJTdEKSUzQiU1Q24lNUNuJTIwJTIwJTIwJTIwbWVkaWFDYXJkU3NyJTVCa2V5JTVEJTIwJTNEJTIwaXNQcmV2aW91c0ltYWdlTGFyZ2VyJTIwJTNGJTIwcHJldkRhdGElMjAlM0ElMjBjdXJyRGF0YSUzQiU1Q24lMjAlMjAlN0QlMjBlbHNlJTIwJTdCJTVDbiUyMCUyMCUyMCUyMG1lZGlhQ2FyZFNzciU1QmtleSU1RCUyMCUzRCUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjBkYXRhVVJJJTNBJTIwcGFyYW1EYXRhVVJJJTJDJTVDbiUyMCUyMCUyMCUyMCUyMCUyMGRpbWVuc2lvbnMlMkMlNUNuJTIwJTIwJTIwJTIwJTIwJTIwZXJyb3IlMkMlNUNuJTIwJTIwJTIwJTIwJTdEJTNCJTVDbiUyMCUyMCU3RCU1Q24lNUNuJTIwJTIwJTJGJTJGJTIwUmVtb3ZlJTIwc2NyaXB0JTIwdG8lMjBwcmV2ZW50JTIwaHlkcmF0aW9uJTIwbWlzbWF0Y2glNUNuJTIwJTIwZG9jdW1lbnQuY3VycmVudFNjcmlwdCUzRi5yZW1vdmUoKSUzQiU1Q24lNUNuJTVDdCUyRiUyRiUyMHRoaXMlMjByZXBsYWNlJTIwd2lsbCUyMGJlJTIwdXNlZCUyMGFzJTIwYSUyMHBsYWNlaG9sZGVyJTIwZm9yJTIwdGhlJTIwc3RyaW5naWZpZWQlMjBwYXJhbXMlMjB0byUyMGJlJTIwaW5qZWN0ZWQlMjBpbnRvJTIwdGhlJTIwc2NyaXB0JTVDbiU3RCkoJTdCJTIwcmVwbGFjZSUzQSUyMCU1QyUyMiU1QyUyMiUyMCU3RCklM0IlNUNuJTIyJTJDJTIyaXNFbnRyeSUyMiUzQXRydWUlN0QlNUQlNUQlMkMlMjJvcHRpb25zJTIyJTNBJTdCJTIyZW50cmllcyUyMiUzQSU1QiU1RCUyQyUyMm1pbmlmeSUyMiUzQXRydWUlMkMlMjJzY29wZUhvaXN0JTIyJTNBdHJ1ZSUyQyUyMnNvdXJjZU1hcHMlMjIlM0FmYWxzZSUyQyUyMnB1YmxpY1VybCUyMiUzQSUyMiUyRl9fcmVwbF9kaXN0JTIyJTJDJTIydGFyZ2V0VHlwZSUyMiUzQSUyMmJyb3dzZXJzJTIyJTJDJTIydGFyZ2V0RW52JTIyJTNBbnVsbCUyQyUyMm91dHB1dEZvcm1hdCUyMiUzQW51bGwlMkMlMjJobXIlMjIlM0FmYWxzZSUyQyUyMm1vZGUlMjIlM0ElMjJwcm9kdWN0aW9uJTIyJTJDJTIycmVuZGVyR3JhcGhzJTIyJTNBZmFsc2UlMkMlMjJ2aWV3U291cmNlbWFwcyUyMiUzQWZhbHNlJTJDJTIyZGVwZW5kZW5jaWVzJTIyJTNBJTVCJTVEJTJDJTIybnVtV29ya2VycyUyMiUzQTAlN0QlMkMlMjJ1c2VUYWJzJTIyJTNBdHJ1ZSUyQyUyMmJyb3dzZXJDb2xsYXBzZWQlMjIlM0ElNUIlNUQlMkMlMjJ2aWV3cyUyMiUzQSU1QiUyMiUyRnNyYyUyRmluZGV4LnRzJTIyJTVEJTJDJTIyY3VycmVudFZpZXclMjIlM0EwJTdE
|
|
7
|
+
* 3. Copy the minified code into globalScope.tsx replacing the existing string where it says PASTE HERE
|
|
8
|
+
* 4. Run the tests and make sure they pass
|
|
9
|
+
* 5. TEST IN PRODUCTS BEFORE MERGING
|
|
10
|
+
*
|
|
11
|
+
*/
|
|
12
|
+
declare function getMediaGlobalScope(): any;
|
|
13
|
+
declare function getMediaCardSSR(): any;
|
|
14
|
+
declare function getMediaCountSSR(): any;
|
|
15
|
+
declare function incrementMediaCountSSR(): void;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/media-file-preview",
|
|
3
|
-
"version": "0.15.
|
|
3
|
+
"version": "0.15.2",
|
|
4
4
|
"description": "A React Hook to fetch and render file previews. It's overloaded with fancy features like SSR, lazy loading, memory cache and local preview.",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.printScript = exports.printFunctionCall = void 0;
|
|
8
|
-
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
9
|
-
var printParam = function printParam(param) {
|
|
10
|
-
if (typeof param === 'string') {
|
|
11
|
-
return "'".concat(param, "'");
|
|
12
|
-
} else if ((0, _typeof2.default)(param) === 'object') {
|
|
13
|
-
return JSON.stringify(param);
|
|
14
|
-
} else if (param === undefined) {
|
|
15
|
-
return 'undefined';
|
|
16
|
-
}
|
|
17
|
-
return param;
|
|
18
|
-
};
|
|
19
|
-
var printParams = function printParams(args) {
|
|
20
|
-
return args.map(function (arg) {
|
|
21
|
-
return printParam(arg);
|
|
22
|
-
}).join(',');
|
|
23
|
-
};
|
|
24
|
-
var printFunctionCall = exports.printFunctionCall = function printFunctionCall(fn) {
|
|
25
|
-
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
26
|
-
args[_key - 1] = arguments[_key];
|
|
27
|
-
}
|
|
28
|
-
return "(".concat(fn.toString(), ")(").concat(printParams(args), ");");
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
// Removing the script tag after execution to prevent hydration
|
|
32
|
-
// mismatch issues after SSR. We don't want to render different
|
|
33
|
-
// HTML on the client and server https://react.dev/reference/react-dom/client/hydrateRoot
|
|
34
|
-
// Note: document.currentScript gets incorrectly transpiled to globalThis.currentScript so we need to use it here to avoid transpilation
|
|
35
|
-
var printScript = exports.printScript = function printScript(statements) {
|
|
36
|
-
return "(function(){\n\t\t\t let script = document.currentScript;\n \t\t\t ".concat(statements.join(';'), "\n\t\t\t document.currentScript.remove();\n\t\t})();\n\t\t");
|
|
37
|
-
};
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
const printParam = param => {
|
|
2
|
-
if (typeof param === 'string') {
|
|
3
|
-
return `'${param}'`;
|
|
4
|
-
} else if (typeof param === 'object') {
|
|
5
|
-
return JSON.stringify(param);
|
|
6
|
-
} else if (param === undefined) {
|
|
7
|
-
return 'undefined';
|
|
8
|
-
}
|
|
9
|
-
return param;
|
|
10
|
-
};
|
|
11
|
-
const printParams = args => args.map(arg => printParam(arg)).join(',');
|
|
12
|
-
export const printFunctionCall = (fn, ...args) => `(${fn.toString()})(${printParams(args)});`;
|
|
13
|
-
|
|
14
|
-
// Removing the script tag after execution to prevent hydration
|
|
15
|
-
// mismatch issues after SSR. We don't want to render different
|
|
16
|
-
// HTML on the client and server https://react.dev/reference/react-dom/client/hydrateRoot
|
|
17
|
-
// Note: document.currentScript gets incorrectly transpiled to globalThis.currentScript so we need to use it here to avoid transpilation
|
|
18
|
-
export const printScript = statements => `(function(){
|
|
19
|
-
let script = document.currentScript;
|
|
20
|
-
${statements.join(';')}
|
|
21
|
-
document.currentScript.remove();
|
|
22
|
-
})();
|
|
23
|
-
`;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import _typeof from "@babel/runtime/helpers/typeof";
|
|
2
|
-
var printParam = function printParam(param) {
|
|
3
|
-
if (typeof param === 'string') {
|
|
4
|
-
return "'".concat(param, "'");
|
|
5
|
-
} else if (_typeof(param) === 'object') {
|
|
6
|
-
return JSON.stringify(param);
|
|
7
|
-
} else if (param === undefined) {
|
|
8
|
-
return 'undefined';
|
|
9
|
-
}
|
|
10
|
-
return param;
|
|
11
|
-
};
|
|
12
|
-
var printParams = function printParams(args) {
|
|
13
|
-
return args.map(function (arg) {
|
|
14
|
-
return printParam(arg);
|
|
15
|
-
}).join(',');
|
|
16
|
-
};
|
|
17
|
-
export var printFunctionCall = function printFunctionCall(fn) {
|
|
18
|
-
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
19
|
-
args[_key - 1] = arguments[_key];
|
|
20
|
-
}
|
|
21
|
-
return "(".concat(fn.toString(), ")(").concat(printParams(args), ");");
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
// Removing the script tag after execution to prevent hydration
|
|
25
|
-
// mismatch issues after SSR. We don't want to render different
|
|
26
|
-
// HTML on the client and server https://react.dev/reference/react-dom/client/hydrateRoot
|
|
27
|
-
// Note: document.currentScript gets incorrectly transpiled to globalThis.currentScript so we need to use it here to avoid transpilation
|
|
28
|
-
export var printScript = function printScript(statements) {
|
|
29
|
-
return "(function(){\n\t\t\t let script = document.currentScript;\n \t\t\t ".concat(statements.join(';'), "\n\t\t\t document.currentScript.remove();\n\t\t})();\n\t\t");
|
|
30
|
-
};
|