@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 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 functionCall = (0, _printScript.printFunctionCall)(storeDataURI, getKey(identifier, mode), dataURI, mode, srcSet, dimensions, error, featureFlags);
124
- return (0, _printScript.printScript)([getMediaCardSSR.toString(), getMediaGlobalScope.toString(), functionCall]);
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 functionCall = printFunctionCall(storeDataURI, getKey(identifier, mode), dataURI, mode, srcSet, dimensions, error, featureFlags);
103
- return printScript([getMediaCardSSR.toString(), getMediaGlobalScope.toString(), functionCall]);
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 functionCall = printFunctionCall(storeDataURI, getKey(identifier, mode), dataURI, mode, srcSet, dimensions, error, featureFlags);
113
- return printScript([getMediaCardSSR.toString(), getMediaGlobalScope.toString(), functionCall]);
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.0",
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
- };
@@ -1,2 +0,0 @@
1
- export declare const printFunctionCall: <T extends Array<any>>(fn: (...args: T) => void, ...args: T) => string;
2
- export declare const printScript: (statements: string[]) => string;
@@ -1,2 +0,0 @@
1
- export declare const printFunctionCall: <T extends Array<any>>(fn: (...args: T) => void, ...args: T) => string;
2
- export declare const printScript: (statements: string[]) => string;