@atlaskit/media-card 79.11.4 → 79.13.0

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.
Files changed (47) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/cjs/card/card.js +1 -1
  3. package/dist/cjs/card/externalImageCard.js +17 -12
  4. package/dist/cjs/card/fileCard.js +34 -12
  5. package/dist/cjs/card/media-card-analytics-error-boundary.js +1 -1
  6. package/dist/cjs/card/ui/tickBox/tickBoxWrapper-compiled.compiled.css +0 -3
  7. package/dist/cjs/card/ui/tickBox/tickBoxWrapper-compiled.js +1 -3
  8. package/dist/cjs/card/ui/titleBox/failedTitleBox.js +0 -2
  9. package/dist/cjs/card/ui/titleBox/titleBoxComponents-compiled.js +1 -3
  10. package/dist/cjs/inline/loader.js +1 -1
  11. package/dist/cjs/inline/mediaInlineAnalyticsErrorBoundary.js +0 -2
  12. package/dist/cjs/utils/globalScope/globalScope.js +2 -1
  13. package/dist/cjs/utils/mediaPerformanceObserver/durationMetrics.js +1 -0
  14. package/dist/cjs/utils/ufoExperiences.js +454 -68
  15. package/dist/es2019/card/card.js +1 -1
  16. package/dist/es2019/card/externalImageCard.js +16 -13
  17. package/dist/es2019/card/fileCard.js +33 -13
  18. package/dist/es2019/card/media-card-analytics-error-boundary.js +1 -1
  19. package/dist/es2019/card/ui/tickBox/tickBoxWrapper-compiled.compiled.css +0 -3
  20. package/dist/es2019/card/ui/tickBox/tickBoxWrapper-compiled.js +1 -3
  21. package/dist/es2019/card/ui/titleBox/failedTitleBox.js +0 -2
  22. package/dist/es2019/card/ui/titleBox/titleBoxComponents-compiled.js +1 -3
  23. package/dist/es2019/inline/loader.js +1 -1
  24. package/dist/es2019/inline/mediaInlineAnalyticsErrorBoundary.js +0 -2
  25. package/dist/es2019/utils/globalScope/globalScope.js +1 -0
  26. package/dist/es2019/utils/mediaPerformanceObserver/durationMetrics.js +1 -0
  27. package/dist/es2019/utils/ufoExperiences.js +449 -72
  28. package/dist/esm/card/card.js +1 -1
  29. package/dist/esm/card/externalImageCard.js +18 -13
  30. package/dist/esm/card/fileCard.js +35 -13
  31. package/dist/esm/card/media-card-analytics-error-boundary.js +1 -1
  32. package/dist/esm/card/ui/tickBox/tickBoxWrapper-compiled.compiled.css +0 -3
  33. package/dist/esm/card/ui/tickBox/tickBoxWrapper-compiled.js +1 -3
  34. package/dist/esm/card/ui/titleBox/failedTitleBox.js +0 -2
  35. package/dist/esm/card/ui/titleBox/titleBoxComponents-compiled.js +1 -3
  36. package/dist/esm/inline/loader.js +1 -1
  37. package/dist/esm/inline/mediaInlineAnalyticsErrorBoundary.js +0 -2
  38. package/dist/esm/utils/globalScope/globalScope.js +1 -0
  39. package/dist/esm/utils/mediaPerformanceObserver/durationMetrics.js +1 -0
  40. package/dist/esm/utils/ufoExperiences.js +454 -68
  41. package/dist/types/utils/globalScope/globalScope.d.ts +2 -0
  42. package/dist/types/utils/mediaPerformanceObserver/durationMetrics.d.ts +1 -0
  43. package/dist/types/utils/ufoExperiences.d.ts +88 -5
  44. package/dist/types-ts4.5/utils/globalScope/globalScope.d.ts +2 -0
  45. package/dist/types-ts4.5/utils/mediaPerformanceObserver/durationMetrics.d.ts +1 -0
  46. package/dist/types-ts4.5/utils/ufoExperiences.d.ts +88 -5
  47. package/package.json +9 -9
package/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # @atlaskit/media-card
2
2
 
3
+ ## 79.13.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`87b12e64ff750`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/87b12e64ff750) -
8
+ Removed usages of LEGACY icon props
9
+
10
+ ### Patch Changes
11
+
12
+ - Updated dependencies
13
+
14
+ ## 79.12.0
15
+
16
+ ### Minor Changes
17
+
18
+ - [`00e69e0b7c839`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/00e69e0b7c839) -
19
+ Clean up and removal of the `platform-visual-refresh-icons` feature flag.
20
+
21
+ ### Patch Changes
22
+
23
+ - Updated dependencies
24
+
3
25
  ## 79.11.4
4
26
 
5
27
  ### Patch Changes
@@ -22,7 +22,7 @@ var _label = _interopRequireDefault(require("@atlaskit/react-ufo/label"));
22
22
  var _excluded = ["identifier"];
23
23
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
24
24
  var packageName = "@atlaskit/media-card";
25
- var packageVersion = "79.11.3";
25
+ var packageVersion = "79.13.0";
26
26
  var CardBase = exports.CardBase = function CardBase(_ref) {
27
27
  var identifier = _ref.identifier,
28
28
  otherProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
@@ -72,10 +72,17 @@ var ExternalImageCard = exports.ExternalImageCard = function ExternalImageCard(_
72
72
  wasStatusUploading: false,
73
73
  wasStatusProcessing: false
74
74
  });
75
+ var shouldSendPerformanceEvent = (0, _react.useMemo)(function () {
76
+ return (0, _ufoExperiences.shouldPerformanceBeSampled)();
77
+ }, []);
78
+
79
+ // UFO experience hook - creates a unique experience instance per card
80
+ var ufoExperience = (0, _ufoExperiences.useMediaCardUfoExperience)({
81
+ instanceId: internalOccurrenceKey,
82
+ enabled: shouldSendPerformanceEvent
83
+ });
75
84
  var startUfoExperienceRef = (0, _useCurrentValueRef.useCurrentValueRef)(function () {
76
- if (shouldSendPerformanceEventRef.current) {
77
- (0, _ufoExperiences.startUfoExperience)(internalOccurrenceKey);
78
- }
85
+ ufoExperience.start();
79
86
  });
80
87
  var _useState = (0, _react.useState)('loading-preview'),
81
88
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -119,7 +126,6 @@ var ExternalImageCard = exports.ExternalImageCard = function ExternalImageCard(_
119
126
  _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
120
127
  mediaViewerSelectedItem = _useState8[0],
121
128
  setMediaViewerSelectedItem = _useState8[1];
122
- var shouldSendPerformanceEventRef = (0, _react.useRef)((0, _ufoExperiences.shouldPerformanceBeSampled)());
123
129
 
124
130
  //----------------------------------------------------------------//
125
131
  //---------------------- Analytics ------------------------------//
@@ -135,17 +141,16 @@ var ExternalImageCard = exports.ExternalImageCard = function ExternalImageCard(_
135
141
  }
136
142
  };
137
143
  createAnalyticsEvent && (0, _cardAnalytics.fireOperationalEvent)(createAnalyticsEvent, status, fileAttributes, performanceAttributes, ssrReliability, error, traceContext, undefined);
138
- shouldSendPerformanceEventRef.current && (0, _ufoExperiences.completeUfoExperience)(internalOccurrenceKey, status, fileAttributes, fileStateFlagsRef.current, ssrReliability, error);
144
+ // External images don't use SSR - no ssrPreviewInfo passed
145
+ ufoExperience.complete(status, fileAttributes, fileStateFlagsRef.current, ssrReliability, error, undefined);
139
146
  });
140
147
  var fireAbortedEventRef = (0, _useCurrentValueRef.useCurrentValueRef)(function () {
141
148
  // UFO won't abort if it's already in a final state (succeeded, failed, aborted, etc)
142
- if (shouldSendPerformanceEventRef.current) {
143
- (0, _ufoExperiences.abortUfoExperience)(internalOccurrenceKey, {
144
- fileAttributes: fileAttributes,
145
- fileStateFlags: fileStateFlagsRef === null || fileStateFlagsRef === void 0 ? void 0 : fileStateFlagsRef.current,
146
- ssrReliability: ssrReliability
147
- });
148
- }
149
+ ufoExperience.abort({
150
+ fileAttributes: fileAttributes,
151
+ fileStateFlags: fileStateFlagsRef === null || fileStateFlagsRef === void 0 ? void 0 : fileStateFlagsRef.current,
152
+ ssrReliability: ssrReliability
153
+ });
149
154
  });
150
155
 
151
156
  //----------------------------------------------------------------//
@@ -220,7 +220,15 @@ var FileCard = exports.FileCard = function FileCard(_ref) {
220
220
  onImageLoadBase = _useFilePreview.onImageLoad,
221
221
  getSsrScriptProps = _useFilePreview.getSsrScriptProps,
222
222
  copyNodeRef = _useFilePreview.copyNodeRef;
223
- var shouldSendPerformanceEventRef = (0, _react.useRef)((0, _ufoExperiences.shouldPerformanceBeSampled)());
223
+ var shouldSendPerformanceEvent = (0, _react.useMemo)(function () {
224
+ return (0, _ufoExperiences.shouldPerformanceBeSampled)();
225
+ }, []);
226
+
227
+ // UFO experience hook - creates a unique experience instance per card
228
+ var ufoExperience = (0, _ufoExperiences.useMediaCardUfoExperience)({
229
+ instanceId: internalOccurrenceKey,
230
+ enabled: shouldSendPerformanceEvent
231
+ });
224
232
  var _useState13 = (0, _react.useState)(),
225
233
  _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
226
234
  error = _useState14[0],
@@ -335,6 +343,7 @@ var FileCard = exports.FileCard = function FileCard(_ref) {
335
343
  //----------------------------------------------------------------//
336
344
 
337
345
  var fireOperationalEventRef = (0, _useCurrentValueRef.useCurrentValueRef)(function () {
346
+ var _ssrReliability$serve, _ssrReliability$clien;
338
347
  var timeElapsedTillEvent = (0, _performance.performanceNow)();
339
348
  var durationSinceCommenced = timeElapsedTillEvent - timeElapsedTillCommenced;
340
349
  var performanceAttributes = {
@@ -344,7 +353,19 @@ var FileCard = exports.FileCard = function FileCard(_ref) {
344
353
  }
345
354
  };
346
355
  createAnalyticsEvent && (0, _cardAnalytics.fireOperationalEvent)(createAnalyticsEvent, finalStatus, fileAttributes, performanceAttributes, ssrReliability, finalError, traceContext, fileStateValue === null || fileStateValue === void 0 ? void 0 : fileStateValue.metadataTraceContext);
347
- shouldSendPerformanceEventRef.current && (0, _ufoExperiences.completeUfoExperience)(internalOccurrenceKey, finalStatus, fileAttributes, fileStateFlagsRef.current, ssrReliability, finalError);
356
+
357
+ // Determine SSR preview info for UFO timing strategy
358
+ // wasSSRAttempted is only true when SSR was used AND preview is non-lazy
359
+ // because lazy SSR defers loading, so it behaves like CSR for timing purposes
360
+ var isSSRNonLazy = !!ssr && (preview === null || preview === void 0 ? void 0 : preview.lazy) !== true;
361
+ var wasSSRSuccessful = isSSRNonLazy && (((_ssrReliability$serve = ssrReliability.server) === null || _ssrReliability$serve === void 0 ? void 0 : _ssrReliability$serve.status) === 'success' || ((_ssrReliability$clien = ssrReliability.client) === null || _ssrReliability$clien === void 0 ? void 0 : _ssrReliability$clien.status) === 'success');
362
+ var ssrPreviewInfo = {
363
+ dataUri: preview === null || preview === void 0 ? void 0 : preview.dataURI,
364
+ srcset: preview === null || preview === void 0 ? void 0 : preview.srcSet,
365
+ wasSSRAttempted: isSSRNonLazy,
366
+ wasSSRSuccessful: wasSSRSuccessful
367
+ };
368
+ ufoExperience.complete(finalStatus, fileAttributes, fileStateFlagsRef.current, ssrReliability, finalError, ssrPreviewInfo);
348
369
  });
349
370
  var fireNonCriticalErrorEventRef = (0, _useCurrentValueRef.useCurrentValueRef)(function (error) {
350
371
  createAnalyticsEvent && (0, _cardAnalytics.fireNonCriticalErrorEvent)(createAnalyticsEvent, finalStatus, fileAttributes, ssrReliability, error, traceContext, fileStateValue === null || fileStateValue === void 0 ? void 0 : fileStateValue.metadataTraceContext);
@@ -355,19 +376,20 @@ var FileCard = exports.FileCard = function FileCard(_ref) {
355
376
  }
356
377
  }, [nonCriticalError, fireNonCriticalErrorEventRef]);
357
378
  var startUfoExperienceRef = (0, _useCurrentValueRef.useCurrentValueRef)(function () {
358
- if (shouldSendPerformanceEventRef.current) {
359
- (0, _ufoExperiences.startUfoExperience)(internalOccurrenceKey);
360
- }
379
+ // For non-lazy SSR previews, use interaction start time as the experience start time
380
+ // because the image loading started at interaction start, not at mount time
381
+ var isSSRNonLazy = !!ssr && (preview === null || preview === void 0 ? void 0 : preview.lazy) !== true;
382
+ ufoExperience.start({
383
+ useInteractionTime: isSSRNonLazy
384
+ });
361
385
  });
362
386
  var fireAbortedEventRef = (0, _useCurrentValueRef.useCurrentValueRef)(function () {
363
387
  // UFO won't abort if it's already in a final state (succeeded, failed, aborted, etc)
364
- if (shouldSendPerformanceEventRef.current) {
365
- (0, _ufoExperiences.abortUfoExperience)(internalOccurrenceKey, {
366
- fileAttributes: fileAttributes,
367
- fileStateFlags: fileStateFlagsRef === null || fileStateFlagsRef === void 0 ? void 0 : fileStateFlagsRef.current,
368
- ssrReliability: ssrReliability
369
- });
370
- }
388
+ ufoExperience.abort({
389
+ fileAttributes: fileAttributes,
390
+ fileStateFlags: fileStateFlagsRef === null || fileStateFlagsRef === void 0 ? void 0 : fileStateFlagsRef.current,
391
+ ssrReliability: ssrReliability
392
+ });
371
393
  });
372
394
 
373
395
  //----------------------------------------------------------------//
@@ -87,7 +87,7 @@ var WrappedMediaCardAnalyticsErrorBoundary = /*#__PURE__*/function (_React$Compo
87
87
  }(_react.default.Component);
88
88
  (0, _defineProperty2.default)(WrappedMediaCardAnalyticsErrorBoundary, "displayName", 'MediaCardAnalyticsErrorBoundary');
89
89
  var packageName = "@atlaskit/media-card";
90
- var packageVersion = "79.11.3";
90
+ var packageVersion = "79.13.0";
91
91
 
92
92
  // @ts-ignore: [PIT-1685] Fails in post-office due to backwards incompatibility issue with React 18
93
93
  var MediaCardAnalyticsErrorBoundary = (0, _mediaCommon.withMediaAnalyticsContext)({
@@ -3,13 +3,10 @@
3
3
  ._v564ybtr{transition:all .3s}
4
4
  ._154i1tpr{top:var(--ds-space-075,7px)}
5
5
  ._1b941ule span{display:block}
6
- ._1bsbdlk8{width:14px}
7
6
  ._1bsbpxbi{width:var(--ds-space-200,1pc)}
8
7
  ._1e0c11p5{display:grid}
9
8
  ._1ltv1tpr{left:var(--ds-space-075,7px)}
10
- ._1mcmdlk8 span svg{height:14px}
11
9
  ._4cvr1h6o{align-items:center}
12
- ._4t3idlk8{height:14px}
13
10
  ._4t3ipxbi{height:var(--ds-space-200,1pc)}
14
11
  ._6a6z1h6o{justify-items:center}
15
12
  ._bfhkqre5{background-color:var(--_1flhvp0)}
@@ -9,18 +9,16 @@ exports.TickBoxWrapper = void 0;
9
9
  require("./tickBoxWrapper-compiled.compiled.css");
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
  var _runtime = require("@compiled/react/runtime");
12
- var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
13
12
  var _styles = require("./styles");
14
13
  var _colors = require("@atlaskit/theme/colors");
15
14
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
16
15
  var selectedStyles = null;
17
- var oldWrapperStyes = null;
18
16
  var wrapperStyles = null;
19
17
  var TickBoxWrapper = exports.TickBoxWrapper = function TickBoxWrapper(props) {
20
18
  return /*#__PURE__*/React.createElement("div", {
21
19
  id: "tickBoxWrapper",
22
20
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
23
- className: (0, _runtime.ax)(["_11c82smr _2rkov47k _4cvr1h6o _6a6z1h6o _v564ybtr _1bsbpxbi _4t3ipxbi _kqswstnw _154i1tpr _1ltv1tpr _syaz1j28 _1e0c11p5 _1b941ule", !(0, _platformFeatureFlags.fg)('platform-visual-refresh-icons') && "_1bsbdlk8 _4t3idlk8 _1mcmdlk8", props.selected && "_bfhkqre5 _syaz5w2r", _styles.tickBoxClassName]),
21
+ className: (0, _runtime.ax)(["_11c82smr _2rkov47k _4cvr1h6o _6a6z1h6o _v564ybtr _1bsbpxbi _4t3ipxbi _kqswstnw _154i1tpr _1ltv1tpr _syaz1j28 _1e0c11p5 _1b941ule", props.selected && "_bfhkqre5 _syaz5w2r", _styles.tickBoxClassName]),
24
22
  style: {
25
23
  "--_1flhvp0": (0, _runtime.ix)("var(--ds-icon-information, ".concat(_colors.B200, ")"))
26
24
  }
@@ -23,8 +23,6 @@ var FailedTitleBox = exports.FailedTitleBox = function FailedTitleBox(_ref) {
23
23
  breakpoint: breakpoint
24
24
  }, /*#__PURE__*/_react.default.createElement(_titleBoxComponents.ErrorMessageWrapper, null, /*#__PURE__*/_react.default.createElement(_statusWarning.default, {
25
25
  label: 'Warning',
26
- LEGACY_size: 'small',
27
- LEGACY_margin: "0 ".concat("var(--ds-space-negative-025, -2px)"),
28
26
  color: "var(--ds-text-danger, ".concat(_colors.R300, ")"),
29
27
  size: "small"
30
28
  }), /*#__PURE__*/_react.default.createElement("span", {
@@ -9,7 +9,6 @@ exports.TitleBoxWrapper = exports.TitleBoxIcon = exports.TitleBoxHeader = export
9
9
  require("./titleBoxComponents-compiled.compiled.css");
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
  var _runtime = require("@compiled/react/runtime");
12
- var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
13
12
  var _colors = require("@atlaskit/theme/colors");
14
13
  var _styles = require("../styles");
15
14
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
@@ -72,12 +71,11 @@ var TitleBoxFooter = exports.TitleBoxFooter = function TitleBoxFooter(props) {
72
71
  };
73
72
  TitleBoxFooter.displayName = 'TitleBoxFooter';
74
73
  var titleBoxIconStyles = null;
75
- var newTitleBoxIconStyles = null;
76
74
  var TitleBoxIcon = exports.TitleBoxIcon = function TitleBoxIcon(props) {
77
75
  return /*#__PURE__*/React.createElement("div", {
78
76
  id: "titleBoxIcon",
79
77
  "data-testid": "title-box-icon",
80
- className: (0, _runtime.ax)([(0, _platformFeatureFlags.fg)('platform-visual-refresh-icons') && "_kqswstnw _1xi21b66 _94n51b66", !(0, _platformFeatureFlags.fg)('platform-visual-refresh-icons') && "_kqswstnw _1xi21b66 _94n5idpf"])
78
+ className: (0, _runtime.ax)(["_kqswstnw _1xi21b66 _94n51b66"])
81
79
  }, props.children);
82
80
  };
83
81
  var errorMessageWrapperStyles = null;
@@ -116,7 +116,7 @@ var MediaInlineCardLoader = exports.default = /*#__PURE__*/function (_React$Pure
116
116
  ErrorBoundary = _this$state.ErrorBoundary;
117
117
  var analyticsContext = {
118
118
  packageVersion: "@atlaskit/media-card",
119
- packageName: "79.11.3",
119
+ packageName: "79.13.0",
120
120
  componentName: 'mediaInlineCard',
121
121
  component: 'mediaInlineCard'
122
122
  };
@@ -69,9 +69,7 @@ var ErrorBoundaryComponent = function ErrorBoundaryComponent(_ref) {
69
69
  _react.default.createElement("span", {
70
70
  style: style
71
71
  }, /*#__PURE__*/_react.default.createElement(_statusWarning.default, {
72
- LEGACY_margin: "0 ".concat("var(--ds-space-negative-050, -4px)", " 0 0"),
73
72
  label: "error",
74
- LEGACY_size: "small",
75
73
  color: "var(--ds-icon-danger, ".concat(_colors.R300, ")"),
76
74
  size: "small"
77
75
  }), message)
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getKey = exports.generateScriptProps = exports.GLOBAL_MEDIA_NAMESPACE = exports.GLOBAL_MEDIA_CARD_SSR = void 0;
6
+ exports.getKey = exports.generateScriptProps = exports.GLOBAL_MEDIA_PERFORMANCE_ENTRIES = exports.GLOBAL_MEDIA_NAMESPACE = exports.GLOBAL_MEDIA_CARD_SSR = void 0;
7
7
  exports.getMediaCardSSR = getMediaCardSSR;
8
8
  exports.getMediaGlobalScope = getMediaGlobalScope;
9
9
  exports.storeDataURI = void 0;
@@ -16,6 +16,7 @@ var _printScript = require("../printScript");
16
16
 
17
17
  var GLOBAL_MEDIA_CARD_SSR = exports.GLOBAL_MEDIA_CARD_SSR = 'mediaCardSsr';
18
18
  var GLOBAL_MEDIA_NAMESPACE = exports.GLOBAL_MEDIA_NAMESPACE = '__MEDIA_INTERNAL';
19
+ var GLOBAL_MEDIA_PERFORMANCE_ENTRIES = exports.GLOBAL_MEDIA_PERFORMANCE_ENTRIES = 'performanceEntries';
19
20
  function getMediaGlobalScope() {
20
21
  var globalScope = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;
21
22
  // Must match GLOBAL_MEDIA_NAMESPACE. Can't reference the constant from here.
@@ -99,6 +99,7 @@ var createMediaDurationMetrics = exports.createMediaDurationMetrics = function c
99
99
  totalDuration: entry.duration,
100
100
  initiatorType: entry.initiatorType,
101
101
  // value can be 'fetch' or 'img'
102
+ endedAt: entry.responseEnd - interactionStartTime,
102
103
  responseEnd: entry.responseEnd,
103
104
  browserCacheHit: entry.transferSize === 0,
104
105
  nextHopProtocol: entry.nextHopProtocol