@atlaskit/media-ui 28.5.4 → 28.6.1

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 (79) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/cjs/customMediaPlayer/analytics/events/operational/captions.js +84 -0
  3. package/dist/cjs/customMediaPlayer/analytics/index.js +21 -12
  4. package/dist/cjs/customMediaPlayer/index.js +1 -1
  5. package/dist/cjs/customMediaPlayer/mediaPlayer/captions/artifactUploader/captions/uploader.js +1 -3
  6. package/dist/cjs/customMediaPlayer/mediaPlayer/captions/artifactUploader/captionsUploaderBrowser.js +4 -4
  7. package/dist/cjs/customMediaPlayer/mediaPlayer/captions/captionDeleteConfirmationModal.js +9 -12
  8. package/dist/cjs/customMediaPlayer/mediaPlayer/mediaPlayer.js +6 -2
  9. package/dist/cjs/customMediaPlayer/mediaPlayer/mediaPlayerBase.js +45 -25
  10. package/dist/cjs/customMediaPlayer/mediaPlayer/useTextTracks.js +37 -20
  11. package/dist/cjs/customMediaPlayer/react-video-renderer/track.js +40 -14
  12. package/dist/cjs/customMediaPlayer/react-video-renderer/video.js +7 -2
  13. package/dist/cjs/mediaImage/index.js +1 -1
  14. package/dist/es2019/customMediaPlayer/analytics/events/operational/captions.js +62 -0
  15. package/dist/es2019/customMediaPlayer/analytics/index.js +1 -4
  16. package/dist/es2019/customMediaPlayer/index.js +1 -1
  17. package/dist/es2019/customMediaPlayer/mediaPlayer/captions/artifactUploader/captions/uploader.js +1 -3
  18. package/dist/es2019/customMediaPlayer/mediaPlayer/captions/artifactUploader/captionsUploaderBrowser.js +4 -4
  19. package/dist/es2019/customMediaPlayer/mediaPlayer/captions/captionDeleteConfirmationModal.js +8 -11
  20. package/dist/es2019/customMediaPlayer/mediaPlayer/mediaPlayer.js +6 -2
  21. package/dist/es2019/customMediaPlayer/mediaPlayer/mediaPlayerBase.js +42 -26
  22. package/dist/es2019/customMediaPlayer/mediaPlayer/useTextTracks.js +28 -9
  23. package/dist/es2019/customMediaPlayer/react-video-renderer/track.js +40 -14
  24. package/dist/es2019/customMediaPlayer/react-video-renderer/video.js +7 -2
  25. package/dist/es2019/mediaImage/index.js +1 -1
  26. package/dist/esm/customMediaPlayer/analytics/events/operational/captions.js +76 -0
  27. package/dist/esm/customMediaPlayer/analytics/index.js +1 -4
  28. package/dist/esm/customMediaPlayer/index.js +1 -1
  29. package/dist/esm/customMediaPlayer/mediaPlayer/captions/artifactUploader/captions/uploader.js +1 -3
  30. package/dist/esm/customMediaPlayer/mediaPlayer/captions/artifactUploader/captionsUploaderBrowser.js +4 -4
  31. package/dist/esm/customMediaPlayer/mediaPlayer/captions/captionDeleteConfirmationModal.js +9 -12
  32. package/dist/esm/customMediaPlayer/mediaPlayer/mediaPlayer.js +6 -2
  33. package/dist/esm/customMediaPlayer/mediaPlayer/mediaPlayerBase.js +46 -26
  34. package/dist/esm/customMediaPlayer/mediaPlayer/useTextTracks.js +37 -20
  35. package/dist/esm/customMediaPlayer/react-video-renderer/track.js +41 -15
  36. package/dist/esm/customMediaPlayer/react-video-renderer/video.js +7 -2
  37. package/dist/esm/mediaImage/index.js +1 -1
  38. package/dist/types/customMediaPlayer/analytics/events/operational/captions.d.ts +36 -0
  39. package/dist/types/customMediaPlayer/analytics/index.d.ts +1 -4
  40. package/dist/types/customMediaPlayer/analytics/utils/analytics.d.ts +2 -5
  41. package/dist/types/customMediaPlayer/mediaPlayer/captions/artifactUploader/types.d.ts +4 -6
  42. package/dist/types/customMediaPlayer/mediaPlayer/captions/captionDeleteConfirmationModal.d.ts +4 -7
  43. package/dist/types/customMediaPlayer/mediaPlayer/useTextTracks.d.ts +8 -1
  44. package/dist/types/customMediaPlayer/react-video-renderer/track.d.ts +7 -3
  45. package/dist/types/customMediaPlayer/react-video-renderer/video.d.ts +2 -0
  46. package/dist/types-ts4.5/customMediaPlayer/analytics/events/operational/captions.d.ts +36 -0
  47. package/dist/types-ts4.5/customMediaPlayer/analytics/index.d.ts +1 -4
  48. package/dist/types-ts4.5/customMediaPlayer/analytics/utils/analytics.d.ts +2 -5
  49. package/dist/types-ts4.5/customMediaPlayer/mediaPlayer/captions/artifactUploader/types.d.ts +4 -6
  50. package/dist/types-ts4.5/customMediaPlayer/mediaPlayer/captions/captionDeleteConfirmationModal.d.ts +4 -7
  51. package/dist/types-ts4.5/customMediaPlayer/mediaPlayer/useTextTracks.d.ts +8 -1
  52. package/dist/types-ts4.5/customMediaPlayer/react-video-renderer/track.d.ts +7 -3
  53. package/dist/types-ts4.5/customMediaPlayer/react-video-renderer/video.d.ts +2 -0
  54. package/package.json +2 -5
  55. package/dist/cjs/customMediaPlayer/analytics/events/operational/captionDeleteFailed.js +0 -24
  56. package/dist/cjs/customMediaPlayer/analytics/events/operational/captionDeleteSucceeded.js +0 -16
  57. package/dist/cjs/customMediaPlayer/analytics/events/operational/captionUploadFailed.js +0 -24
  58. package/dist/cjs/customMediaPlayer/analytics/events/operational/captionUploadSucceeded.js +0 -16
  59. package/dist/cjs/customMediaPlayer/analytics/utils/captionAttributes.js +0 -24
  60. package/dist/es2019/customMediaPlayer/analytics/events/operational/captionDeleteFailed.js +0 -15
  61. package/dist/es2019/customMediaPlayer/analytics/events/operational/captionDeleteSucceeded.js +0 -10
  62. package/dist/es2019/customMediaPlayer/analytics/events/operational/captionUploadFailed.js +0 -15
  63. package/dist/es2019/customMediaPlayer/analytics/events/operational/captionUploadSucceeded.js +0 -10
  64. package/dist/es2019/customMediaPlayer/analytics/utils/captionAttributes.js +0 -16
  65. package/dist/esm/customMediaPlayer/analytics/events/operational/captionDeleteFailed.js +0 -17
  66. package/dist/esm/customMediaPlayer/analytics/events/operational/captionDeleteSucceeded.js +0 -10
  67. package/dist/esm/customMediaPlayer/analytics/events/operational/captionUploadFailed.js +0 -17
  68. package/dist/esm/customMediaPlayer/analytics/events/operational/captionUploadSucceeded.js +0 -10
  69. package/dist/esm/customMediaPlayer/analytics/utils/captionAttributes.js +0 -17
  70. package/dist/types/customMediaPlayer/analytics/events/operational/captionDeleteFailed.d.ts +0 -5
  71. package/dist/types/customMediaPlayer/analytics/events/operational/captionDeleteSucceeded.d.ts +0 -5
  72. package/dist/types/customMediaPlayer/analytics/events/operational/captionUploadFailed.d.ts +0 -5
  73. package/dist/types/customMediaPlayer/analytics/events/operational/captionUploadSucceeded.d.ts +0 -5
  74. package/dist/types/customMediaPlayer/analytics/utils/captionAttributes.d.ts +0 -25
  75. package/dist/types-ts4.5/customMediaPlayer/analytics/events/operational/captionDeleteFailed.d.ts +0 -5
  76. package/dist/types-ts4.5/customMediaPlayer/analytics/events/operational/captionDeleteSucceeded.d.ts +0 -5
  77. package/dist/types-ts4.5/customMediaPlayer/analytics/events/operational/captionUploadFailed.d.ts +0 -5
  78. package/dist/types-ts4.5/customMediaPlayer/analytics/events/operational/captionUploadSucceeded.d.ts +0 -5
  79. package/dist/types-ts4.5/customMediaPlayer/analytics/utils/captionAttributes.d.ts +0 -25
package/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # @atlaskit/media-ui
2
2
 
3
+ ## 28.6.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#178862](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/178862)
8
+ [`c85957c962811`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/c85957c962811) -
9
+ clean up fg
10
+
11
+ ## 28.6.0
12
+
13
+ ### Minor Changes
14
+
15
+ - [#179944](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/179944)
16
+ [`8e28048c6a3d3`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/8e28048c6a3d3) -
17
+ Added captions display succeeded and failed analytics events
18
+
19
+ ### Patch Changes
20
+
21
+ - Updated dependencies
22
+
3
23
  ## 28.5.4
4
24
 
5
25
  ### Patch Changes
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.createCaptionUploadSucceededEventPayload = exports.createCaptionUploadFailedEventPayload = exports.createCaptionDisplaySucceededEventPayload = exports.createCaptionDisplayFailedEventPayload = exports.createCaptionDeleteSucceededEventPayload = exports.createCaptionDeleteFailedEventPayload = void 0;
8
+ exports.generateBaseAttributes = generateBaseAttributes;
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _mediaClient = require("@atlaskit/media-client");
11
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
12
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13
+ function generateBaseAttributes(type, captionAttributes, fileId, traceContext) {
14
+ return _objectSpread(_objectSpread({
15
+ type: type,
16
+ captionAttributes: captionAttributes
17
+ }, fileId && {
18
+ fileAttributes: {
19
+ fileId: fileId
20
+ }
21
+ }), {}, {
22
+ traceContext: traceContext
23
+ });
24
+ }
25
+ var getErrorReason = function getErrorReason(error) {
26
+ if ((0, _mediaClient.isCommonMediaClientError)(error)) {
27
+ return error.reason;
28
+ }
29
+ return 'nativeError';
30
+ };
31
+ var getErrorDetail = function getErrorDetail(error) {
32
+ var _error$innerError;
33
+ if ((0, _mediaClient.isCommonMediaClientError)(error) && (_error$innerError = error.innerError) !== null && _error$innerError !== void 0 && _error$innerError.message) {
34
+ var _error$innerError2;
35
+ return (_error$innerError2 = error.innerError) === null || _error$innerError2 === void 0 ? void 0 : _error$innerError2.message;
36
+ }
37
+ return error.message || 'unknown';
38
+ };
39
+ var getErrorRequestMetaData = function getErrorRequestMetaData(error) {
40
+ if ((0, _mediaClient.isCommonMediaClientError)(error)) {
41
+ return error.metadata;
42
+ }
43
+ };
44
+ function createCaptionFailedEventPayload(type, action, failReason, captionAttributes, fileId, error, traceContext) {
45
+ return {
46
+ eventType: 'operational',
47
+ action: action,
48
+ actionSubject: 'mediaPlayerCaption',
49
+ actionSubjectId: fileId,
50
+ attributes: _objectSpread(_objectSpread({}, generateBaseAttributes(type, captionAttributes, fileId, traceContext)), {}, {
51
+ failReason: failReason,
52
+ error: getErrorReason(error),
53
+ errorDetail: getErrorDetail(error),
54
+ request: getErrorRequestMetaData(error)
55
+ })
56
+ };
57
+ }
58
+ var createCaptionUploadFailedEventPayload = exports.createCaptionUploadFailedEventPayload = function createCaptionUploadFailedEventPayload(type, captionAttributes, fileId, error, traceContext) {
59
+ return createCaptionFailedEventPayload(type, 'uploadFailed', 'upload-fail', captionAttributes, fileId, error, traceContext);
60
+ };
61
+ var createCaptionDeleteFailedEventPayload = exports.createCaptionDeleteFailedEventPayload = function createCaptionDeleteFailedEventPayload(type, captionAttributes, fileId, error, traceContext) {
62
+ return createCaptionFailedEventPayload(type, 'deleteFailed', 'delete-fail', captionAttributes, fileId, error, traceContext);
63
+ };
64
+ var createCaptionDisplayFailedEventPayload = exports.createCaptionDisplayFailedEventPayload = function createCaptionDisplayFailedEventPayload(type, failReason, captionAttributes, fileId, error, traceContext) {
65
+ return createCaptionFailedEventPayload(type, 'displayFailed', failReason, captionAttributes, fileId, error, traceContext);
66
+ };
67
+ function createCaptionSucceededEventPayload(type, action, captionAttributes, fileId, traceContext) {
68
+ return {
69
+ eventType: 'operational',
70
+ action: action,
71
+ actionSubject: 'mediaPlayerCaption',
72
+ actionSubjectId: captionAttributes.artifactName,
73
+ attributes: generateBaseAttributes(type, captionAttributes, fileId, traceContext)
74
+ };
75
+ }
76
+ var createCaptionUploadSucceededEventPayload = exports.createCaptionUploadSucceededEventPayload = function createCaptionUploadSucceededEventPayload(type, captionAttributes, fileId, traceContext) {
77
+ return createCaptionSucceededEventPayload(type, 'uploadSucceeded', captionAttributes, fileId, traceContext);
78
+ };
79
+ var createCaptionDeleteSucceededEventPayload = exports.createCaptionDeleteSucceededEventPayload = function createCaptionDeleteSucceededEventPayload(type, captionAttributes, fileId, traceContext) {
80
+ return createCaptionSucceededEventPayload(type, 'deleteSucceeded', captionAttributes, fileId, traceContext);
81
+ };
82
+ var createCaptionDisplaySucceededEventPayload = exports.createCaptionDisplaySucceededEventPayload = function createCaptionDisplaySucceededEventPayload(type, captionAttributes, fileId, traceContext) {
83
+ return createCaptionSucceededEventPayload(type, 'displaySucceeded', captionAttributes, fileId, traceContext);
84
+ };
@@ -9,28 +9,40 @@ Object.defineProperty(exports, "createAndFireMediaCustomMediaPlayerEvent", {
9
9
  return _analytics.createAndFireMediaCustomMediaPlayerEvent;
10
10
  }
11
11
  });
12
- Object.defineProperty(exports, "createCaptionDeleteFailedOperationalEvent", {
12
+ Object.defineProperty(exports, "createCaptionDeleteFailedEventPayload", {
13
13
  enumerable: true,
14
14
  get: function get() {
15
- return _captionDeleteFailed.createCaptionDeleteFailedOperationalEvent;
15
+ return _captions.createCaptionDeleteFailedEventPayload;
16
16
  }
17
17
  });
18
- Object.defineProperty(exports, "createCaptionDeleteSucceededOperationalEvent", {
18
+ Object.defineProperty(exports, "createCaptionDeleteSucceededEventPayload", {
19
19
  enumerable: true,
20
20
  get: function get() {
21
- return _captionDeleteSucceeded.createCaptionDeleteSucceededOperationalEvent;
21
+ return _captions.createCaptionDeleteSucceededEventPayload;
22
22
  }
23
23
  });
24
- Object.defineProperty(exports, "createCaptionUploadFailedOperationalEvent", {
24
+ Object.defineProperty(exports, "createCaptionDisplayFailedEventPayload", {
25
25
  enumerable: true,
26
26
  get: function get() {
27
- return _captionUploadFailed.createCaptionUploadFailedOperationalEvent;
27
+ return _captions.createCaptionDisplayFailedEventPayload;
28
28
  }
29
29
  });
30
- Object.defineProperty(exports, "createCaptionUploadSucceededOperationalEvent", {
30
+ Object.defineProperty(exports, "createCaptionDisplaySucceededEventPayload", {
31
31
  enumerable: true,
32
32
  get: function get() {
33
- return _captionUploadSucceeded.createCaptionUploadSucceededOperationalEvent;
33
+ return _captions.createCaptionDisplaySucceededEventPayload;
34
+ }
35
+ });
36
+ Object.defineProperty(exports, "createCaptionUploadFailedEventPayload", {
37
+ enumerable: true,
38
+ get: function get() {
39
+ return _captions.createCaptionUploadFailedEventPayload;
40
+ }
41
+ });
42
+ Object.defineProperty(exports, "createCaptionUploadSucceededEventPayload", {
43
+ enumerable: true,
44
+ get: function get() {
45
+ return _captions.createCaptionUploadSucceededEventPayload;
34
46
  }
35
47
  });
36
48
  Object.defineProperty(exports, "createCustomMediaPlayerScreenEvent", {
@@ -93,10 +105,7 @@ var _playbackSpeedChanged = require("./events/ui/playbackSpeedChanged");
93
105
  var _playPauseBlanketClicked = require("./events/ui/playPauseBlanketClicked");
94
106
  var _shortcutPressed = require("./events/ui/shortcutPressed");
95
107
  var _timeRangeNavigated = require("./events/ui/timeRangeNavigated");
96
- var _captionUploadSucceeded = require("./events/operational/captionUploadSucceeded");
97
- var _captionDeleteSucceeded = require("./events/operational/captionDeleteSucceeded");
98
- var _captionUploadFailed = require("./events/operational/captionUploadFailed");
99
- var _captionDeleteFailed = require("./events/operational/captionDeleteFailed");
108
+ var _captions = require("./events/operational/captions");
100
109
  var _playCount = require("./events/track/playCount");
101
110
  var _played = require("./events/track/played");
102
111
  var _analytics = require("./utils/analytics");
@@ -16,7 +16,7 @@ var CustomMediaPlayerBase = exports.CustomMediaPlayerBase = function CustomMedia
16
16
  return (0, _platformFeatureFlags.fg)('platform_media_compiled') ? /*#__PURE__*/_react.default.createElement(_indexCompiled.CustomMediaPlayerBase, props) : /*#__PURE__*/_react.default.createElement(_indexEmotion.CustomMediaPlayerBase, props);
17
17
  };
18
18
  var packageName = "@atlaskit/media-ui";
19
- var packageVersion = "28.5.3";
19
+ var packageVersion = "28.6.0";
20
20
 
21
21
  // @ts-ignore: [PIT-1685] Fails in post-office due to backwards incompatibility issue with React 18
22
22
  var CustomMediaPlayer = exports.CustomMediaPlayer = (0, _mediaCommon.withMediaAnalyticsContext)({
@@ -29,9 +29,7 @@ var createUploadCaptionsFn = exports.createUploadCaptionsFn = function createUpl
29
29
  return mediaClient.file.uploadArtifact(identifier.id, file, {
30
30
  type: 'caption',
31
31
  language: locale
32
- }, identifier.collectionName, {
33
- traceId: context.traceId
34
- });
32
+ }, identifier.collectionName, context);
35
33
  case 6:
36
34
  result = _context.sent;
37
35
  onEnd === null || onEnd === void 0 || onEnd(result, context);
@@ -36,13 +36,13 @@ var CaptionsUploaderBrowser = function CaptionsUploaderBrowser(_ref) {
36
36
  _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
37
37
  notificationType = _useState6[0],
38
38
  setNotificationType = _useState6[1];
39
- var _onError = function _onError(error, context) {
39
+ var _onError = function _onError(error, traceContext) {
40
40
  setNotificationType('error');
41
- onError === null || onError === void 0 || onError(error, context);
41
+ onError === null || onError === void 0 || onError(error, traceContext);
42
42
  };
43
- var _onEnd = function _onEnd(metadata, context) {
43
+ var _onEnd = function _onEnd(metadata, traceContext) {
44
44
  setNotificationType('success');
45
- onEnd === null || onEnd === void 0 || onEnd(metadata, context);
45
+ onEnd === null || onEnd === void 0 || onEnd(metadata, traceContext);
46
46
  };
47
47
  var close = function close() {
48
48
  setIsFormOpen(false);
@@ -32,9 +32,9 @@ var CaptionDeleteConfirmationModal = function CaptionDeleteConfirmationModal(_re
32
32
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
33
33
  notificationType = _useState2[0],
34
34
  setNotificationType = _useState2[1];
35
- var _onError = function _onError(error, context) {
35
+ var _onError = function _onError(error, artifactName, context) {
36
36
  setNotificationType('error');
37
- onError === null || onError === void 0 || onError(error, context);
37
+ onError === null || onError === void 0 || onError(error, artifactName, context);
38
38
  };
39
39
  var _onEnd = function _onEnd(context) {
40
40
  setNotificationType('success');
@@ -67,28 +67,25 @@ var CaptionDeleteConfirmationModal = function CaptionDeleteConfirmationModal(_re
67
67
  var _default = exports.default = (0, _reactIntlNext.injectIntl)(CaptionDeleteConfirmationModal);
68
68
  var deleteCaption = /*#__PURE__*/function () {
69
69
  var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(mediaClient, identifier, artifactName, onStart, onEnd, onError) {
70
- var context;
70
+ var traceContext;
71
71
  return _regenerator.default.wrap(function _callee$(_context) {
72
72
  while (1) switch (_context.prev = _context.next) {
73
73
  case 0:
74
- context = {
75
- traceId: (0, _mediaCommon.getRandomTelemetryId)(),
76
- artifactName: artifactName
74
+ traceContext = {
75
+ traceId: (0, _mediaCommon.getRandomTelemetryId)()
77
76
  };
78
- onStart === null || onStart === void 0 || onStart(context);
77
+ onStart === null || onStart === void 0 || onStart(traceContext);
79
78
  _context.prev = 2;
80
79
  _context.next = 5;
81
- return mediaClient.file.deleteArtifact(identifier.id, artifactName, identifier.collectionName, {
82
- traceId: context.traceId
83
- });
80
+ return mediaClient.file.deleteArtifact(identifier.id, artifactName, identifier.collectionName, traceContext);
84
81
  case 5:
85
- onEnd === null || onEnd === void 0 || onEnd(context);
82
+ onEnd === null || onEnd === void 0 || onEnd(traceContext);
86
83
  _context.next = 11;
87
84
  break;
88
85
  case 8:
89
86
  _context.prev = 8;
90
87
  _context.t0 = _context["catch"](2);
91
- onError === null || onError === void 0 || onError((0, _util.parseError)(_context.t0), context);
88
+ onError === null || onError === void 0 || onError((0, _util.parseError)(_context.t0), artifactName, traceContext);
92
89
  case 11:
93
90
  case "end":
94
91
  return _context.stop();
@@ -15,7 +15,7 @@ var _useTextTracks2 = require("./useTextTracks");
15
15
  var _analyticsNext = require("@atlaskit/analytics-next");
16
16
  var _excluded = ["onPlay"];
17
17
  var packageName = "@atlaskit/media-ui";
18
- var packageVersion = "28.5.3";
18
+ var packageVersion = "28.6.0";
19
19
  var MediaPlayerWihtoutContext = exports.MediaPlayerWihtoutContext = function MediaPlayerWihtoutContext(_ref) {
20
20
  var _onPlay = _ref.onPlay,
21
21
  props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
@@ -29,7 +29,11 @@ var MediaPlayerWihtoutContext = exports.MediaPlayerWihtoutContext = function Med
29
29
  collectionName: collectionName
30
30
  }),
31
31
  fileState = _useFileState.fileState;
32
- var _useTextTracks = (0, _useTextTracks2.useTextTracks)(fileState, collectionName),
32
+ var _useTextTracks = (0, _useTextTracks2.useTextTracks)({
33
+ fileState: fileState,
34
+ collectionName: collectionName,
35
+ type: props.type
36
+ }),
33
37
  textTracks = _useTextTracks.textTracks,
34
38
  verifyUserCaptionsEnabled = _useTextTracks.verifyUserCaptionsEnabled,
35
39
  setSelectedTracksIndex = _useTextTracks.setSelectedTracksIndex,
@@ -635,11 +635,11 @@ var _MediaPlayerBase = /*#__PURE__*/function (_Component) {
635
635
  isArtifactUploaderOpen: false
636
636
  });
637
637
  },
638
- onEnd: function onEnd(metadata, context) {
639
- _this.fireCaptionUploadSucceededEvent(context.traceId);
638
+ onEnd: function onEnd(_metadata, traceContext) {
639
+ _this.fireCaptionUploadSucceededEvent(traceContext);
640
640
  },
641
- onError: function onError(err, context) {
642
- _this.fireCaptionUploadFailedEvent(context.traceId, err);
641
+ onError: function onError(err, traceContext) {
642
+ _this.fireCaptionUploadFailedEvent(traceContext, err);
643
643
  }
644
644
  }), /*#__PURE__*/_react.default.createElement(_captionDeleteConfirmationModal.default, {
645
645
  identifier: identifier,
@@ -649,20 +649,26 @@ var _MediaPlayerBase = /*#__PURE__*/function (_Component) {
649
649
  artifactToDelete: ''
650
650
  });
651
651
  },
652
- onEnd: function onEnd(context) {
653
- _this.fireCaptionDeleteSucceededEvent(context.traceId, context.artifactName);
652
+ onEnd: function onEnd(traceContext) {
653
+ _this.fireCaptionDeleteSucceededEvent(traceContext);
654
654
  _this.setState({
655
655
  artifactToDelete: ''
656
656
  });
657
657
  },
658
- onError: function onError(err, context) {
659
- _this.fireCaptionDeleteFailedEvent(context.traceId, context.artifactName, err);
658
+ onError: function onError(err, artifactName, traceContext) {
659
+ _this.fireCaptionDeleteFailedEvent(artifactName, traceContext, err);
660
660
  _this.setState({
661
661
  artifactToDelete: ''
662
662
  });
663
663
  }
664
664
  }));
665
665
  });
666
+ (0, _defineProperty2.default)(_this, "onTextTrackLoaded", function () {
667
+ _this.fireCaptionDisplaySucceededEvent();
668
+ });
669
+ (0, _defineProperty2.default)(_this, "onTextTrackError", function (artifactName, lang, label) {
670
+ _this.fireCaptionDisplayFailedEvent(artifactName, new Error("label: ".concat(label, " - lang: ").concat(lang)));
671
+ });
666
672
  return _this;
667
673
  }
668
674
  (0, _inherits2.default)(_MediaPlayerBase, _Component);
@@ -786,46 +792,58 @@ var _MediaPlayerBase = /*#__PURE__*/function (_Component) {
786
792
  }, {
787
793
  key: "baseAnalyticCaptionAttributes",
788
794
  value: function baseAnalyticCaptionAttributes() {
789
- var _textTracks$captions2, _textTracks$captions3;
795
+ var _textTracks$captions2;
790
796
  var textTracks = this.props.textTracks;
791
797
  var _ref3 = (textTracks === null || textTracks === void 0 ? void 0 : textTracks.captions) || {},
792
798
  _ref3$selectedTrackIn = _ref3.selectedTrackIndex,
793
799
  selectedTrackIndex = _ref3$selectedTrackIn === void 0 ? -1 : _ref3$selectedTrackIn;
800
+ var captionTracks = textTracks === null || textTracks === void 0 || (_textTracks$captions2 = textTracks.captions) === null || _textTracks$captions2 === void 0 ? void 0 : _textTracks$captions2.tracks;
801
+ var selectedTrack = captionTracks === null || captionTracks === void 0 ? void 0 : captionTracks[selectedTrackIndex];
794
802
  var captionAttributes = {
795
803
  selectedTrackIndex: selectedTrackIndex,
796
- availableCaptionTracks: (textTracks === null || textTracks === void 0 || (_textTracks$captions2 = textTracks.captions) === null || _textTracks$captions2 === void 0 || (_textTracks$captions2 = _textTracks$captions2.tracks) === null || _textTracks$captions2 === void 0 ? void 0 : _textTracks$captions2.length) || 0,
797
- selectedTrackLanguage: (textTracks === null || textTracks === void 0 || (_textTracks$captions3 = textTracks.captions) === null || _textTracks$captions3 === void 0 || (_textTracks$captions3 = _textTracks$captions3.tracks) === null || _textTracks$captions3 === void 0 || (_textTracks$captions3 = _textTracks$captions3[selectedTrackIndex]) === null || _textTracks$captions3 === void 0 ? void 0 : _textTracks$captions3.lang) || null
804
+ availableCaptionTracks: (captionTracks === null || captionTracks === void 0 ? void 0 : captionTracks.length) || 0,
805
+ selectedTrackLanguage: (selectedTrack === null || selectedTrack === void 0 ? void 0 : selectedTrack.lang) || null
798
806
  };
799
807
  return captionAttributes;
800
808
  }
801
809
  }, {
802
810
  key: "fireCaptionEvent",
803
- value: function fireCaptionEvent(event) {
804
- (0, _analytics.fireAnalyticsEvent)(event, this.props.createAnalyticsEvent);
811
+ value: function fireCaptionEvent(payload) {
812
+ (0, _analytics.fireAnalyticsEvent)(payload, this.props.createAnalyticsEvent);
813
+ }
814
+ }, {
815
+ key: "fireCaptionDisplaySucceededEvent",
816
+ value: function fireCaptionDisplaySucceededEvent() {
817
+ this.fireCaptionEvent((0, _analytics.createCaptionDisplaySucceededEventPayload)(this.props.type, this.baseAnalyticCaptionAttributes(), this.props.identifier.id));
818
+ }
819
+ }, {
820
+ key: "fireCaptionDisplayFailedEvent",
821
+ value: function fireCaptionDisplayFailedEvent(artifactName, error) {
822
+ this.fireCaptionEvent((0, _analytics.createCaptionDisplayFailedEventPayload)(this.props.type, 'render-fail', _objectSpread(_objectSpread({}, this.baseAnalyticCaptionAttributes()), {}, {
823
+ artifactName: artifactName
824
+ }), this.props.identifier.id, error));
805
825
  }
806
826
  }, {
807
827
  key: "fireCaptionUploadSucceededEvent",
808
- value: function fireCaptionUploadSucceededEvent(traceId) {
809
- this.fireCaptionEvent((0, _analytics.createCaptionUploadSucceededOperationalEvent)(this.props.type, this.baseAnalyticCaptionAttributes(), this.props.identifier.id, traceId));
828
+ value: function fireCaptionUploadSucceededEvent(traceContext) {
829
+ this.fireCaptionEvent((0, _analytics.createCaptionUploadSucceededEventPayload)(this.props.type, this.baseAnalyticCaptionAttributes(), this.props.identifier.id, traceContext));
810
830
  }
811
831
  }, {
812
832
  key: "fireCaptionUploadFailedEvent",
813
- value: function fireCaptionUploadFailedEvent(traceId, error) {
814
- this.fireCaptionEvent((0, _analytics.createCaptionUploadFailedOperationalEvent)(this.props.type, this.baseAnalyticCaptionAttributes(), this.props.identifier.id, traceId, error));
833
+ value: function fireCaptionUploadFailedEvent(traceContext, error) {
834
+ this.fireCaptionEvent((0, _analytics.createCaptionUploadFailedEventPayload)(this.props.type, this.baseAnalyticCaptionAttributes(), this.props.identifier.id, error, traceContext));
815
835
  }
816
836
  }, {
817
837
  key: "fireCaptionDeleteSucceededEvent",
818
- value: function fireCaptionDeleteSucceededEvent(traceId, artifactName) {
819
- this.fireCaptionEvent((0, _analytics.createCaptionDeleteSucceededOperationalEvent)(this.props.type, _objectSpread(_objectSpread({}, this.baseAnalyticCaptionAttributes()), {}, {
820
- artifactName: artifactName
821
- }), this.props.identifier.id, traceId));
838
+ value: function fireCaptionDeleteSucceededEvent(traceContext) {
839
+ this.fireCaptionEvent((0, _analytics.createCaptionDeleteSucceededEventPayload)(this.props.type, this.baseAnalyticCaptionAttributes(), this.props.identifier.id, traceContext));
822
840
  }
823
841
  }, {
824
842
  key: "fireCaptionDeleteFailedEvent",
825
- value: function fireCaptionDeleteFailedEvent(traceId, artifactName, error) {
826
- this.fireCaptionEvent((0, _analytics.createCaptionDeleteFailedOperationalEvent)(this.props.type, _objectSpread(_objectSpread({}, this.baseAnalyticCaptionAttributes()), {}, {
843
+ value: function fireCaptionDeleteFailedEvent(artifactName, traceContext, error) {
844
+ this.fireCaptionEvent((0, _analytics.createCaptionDeleteFailedEventPayload)(this.props.type, _objectSpread(_objectSpread({}, this.baseAnalyticCaptionAttributes()), {}, {
827
845
  artifactName: artifactName
828
- }), this.props.identifier.id, traceId, error));
846
+ }), this.props.identifier.id, error, traceContext));
829
847
  }
830
848
  }, {
831
849
  key: "isPlaying",
@@ -860,7 +878,9 @@ var _MediaPlayerBase = /*#__PURE__*/function (_Component) {
860
878
  onError: onError,
861
879
  poster: poster,
862
880
  textTracks: textTracks,
863
- textTracksPosition: areControlsVisible ? -3.7 : undefined
881
+ textTracksPosition: areControlsVisible ? -3.7 : undefined,
882
+ onTextTrackLoaded: this.onTextTrackLoaded,
883
+ onTextTrackError: this.onTextTrackError
864
884
  }, function (video, videoState, actions) {
865
885
  _this4.onViewed(videoState);
866
886
  _this4.setActions(actions);
@@ -13,6 +13,9 @@ var _react = require("react");
13
13
  var _mediaClientReact = require("@atlaskit/media-client-react");
14
14
  var _captions = require("./captions");
15
15
  var _reactIntlNext = require("react-intl-next");
16
+ var _mediaCommon = require("@atlaskit/media-common");
17
+ var _analytics = require("../analytics");
18
+ var _analyticsNext = require("@atlaskit/analytics-next");
16
19
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
17
20
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
18
21
  var decodeMimetype = function decodeMimetype(mimeType) {
@@ -29,13 +32,18 @@ var decodeMimetype = function decodeMimetype(mimeType) {
29
32
  };
30
33
  };
31
34
  var NO_SELECTED_TRACKS_INDEX = -1;
32
- var useTextTracks = exports.useTextTracks = function useTextTracks(fileState, collectionName) {
35
+ var useTextTracks = exports.useTextTracks = function useTextTracks(_ref) {
36
+ var fileState = _ref.fileState,
37
+ collectionName = _ref.collectionName,
38
+ type = _ref.type;
39
+ var _useAnalyticsEvents = (0, _analyticsNext.useAnalyticsEvents)(),
40
+ createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
33
41
  var mediaClient = (0, _mediaClientReact.useMediaClient)();
34
- var isLoadingCaptionsObjectURLs = (0, _react.useRef)(new Map());
42
+ var captionsObjectURLsStatus = (0, _react.useRef)(new Map());
35
43
  var captionsObjectURLs = (0, _react.useRef)(new Map());
36
44
  var intl = (0, _reactIntlNext.useIntl)();
37
- var _ref = (0, _mediaClientReact.useMediaSettings)() || {},
38
- mediaUserPreferences = _ref.mediaUserPreferences;
45
+ var _ref2 = (0, _mediaClientReact.useMediaSettings)() || {},
46
+ mediaUserPreferences = _ref2.mediaUserPreferences;
39
47
  var _useState = (0, _react.useState)([]),
40
48
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
41
49
  captionTracks = _useState2[0],
@@ -72,10 +80,10 @@ var useTextTracks = exports.useTextTracks = function useTextTracks(fileState, co
72
80
  value = _caption[1];
73
81
  return key.includes('ugc_caption') && !!value;
74
82
  });
75
- setCaptionTracks(captionsArtifacts.map(function (_ref2) {
76
- var _ref3 = (0, _slicedToArray2.default)(_ref2, 2),
77
- artifactName = _ref3[0],
78
- mimeType = _ref3[1].mimeType;
83
+ setCaptionTracks(captionsArtifacts.map(function (_ref3) {
84
+ var _ref4 = (0, _slicedToArray2.default)(_ref3, 2),
85
+ artifactName = _ref4[0],
86
+ mimeType = _ref4[1].mimeType;
79
87
  var _decodeMimetype = decodeMimetype(mimeType),
80
88
  lang = _decodeMimetype.lang,
81
89
  label = _decodeMimetype.label;
@@ -102,8 +110,8 @@ var useTextTracks = exports.useTextTracks = function useTextTracks(fileState, co
102
110
 
103
111
  // Update the user locale preferences
104
112
  (0, _react.useEffect)(function () {
105
- var _ref4 = captionTracks[resolvedSelectedTracksIndex] || {},
106
- lang = _ref4.lang;
113
+ var _ref5 = captionTracks[resolvedSelectedTracksIndex] || {},
114
+ lang = _ref5.lang;
107
115
  if (mediaUserPreferences && lang) {
108
116
  (0, _captions.setUserCaptionsLocale)(mediaUserPreferences, lang);
109
117
  }
@@ -116,11 +124,14 @@ var useTextTracks = exports.useTextTracks = function useTextTracks(fileState, co
116
124
  }, [mediaUserPreferences, intl.locale, captionTracks]);
117
125
  (0, _react.useEffect)(function () {
118
126
  if (fileState && (0, _mediaClient.hasArtifacts)(fileState)) {
119
- var _ref5 = captionTracks[resolvedSelectedTracksIndex] || {},
120
- artifactName = _ref5.artifactName,
121
- src = _ref5.src;
122
- if (artifactName && !src && !isLoadingCaptionsObjectURLs.current.get(artifactName)) {
123
- isLoadingCaptionsObjectURLs.current.set(artifactName, true);
127
+ var _ref6 = captionTracks[resolvedSelectedTracksIndex] || {},
128
+ artifactName = _ref6.artifactName,
129
+ src = _ref6.src;
130
+ if (artifactName && !src && !captionsObjectURLsStatus.current.get(artifactName)) {
131
+ var traceContext = {
132
+ traceId: (0, _mediaCommon.getRandomTelemetryId)()
133
+ };
134
+ captionsObjectURLsStatus.current.set(artifactName, 'loading');
124
135
  mediaClient.mediaStore.getArtifactBinary(fileState.artifacts, artifactName, {
125
136
  collectionName: collectionName
126
137
  }).then(function (blob) {
@@ -133,15 +144,21 @@ var useTextTracks = exports.useTextTracks = function useTextTracks(fileState, co
133
144
  });
134
145
  return newCaptionTracks;
135
146
  });
147
+ captionsObjectURLsStatus.current.set(artifactName, 'loaded');
136
148
  }).catch(function (error) {
137
- // TODO: Handle this error
138
- // https://product-fabric.atlassian.net/browse/BMPT-6929
139
- }).finally(function () {
140
- isLoadingCaptionsObjectURLs.current.set(artifactName, false);
149
+ var _captionTracks$resolv;
150
+ var captionAttributes = {
151
+ selectedTrackIndex: resolvedSelectedTracksIndex,
152
+ availableCaptionTracks: (captionTracks === null || captionTracks === void 0 ? void 0 : captionTracks.length) || 0,
153
+ selectedTrackLanguage: (captionTracks === null || captionTracks === void 0 || (_captionTracks$resolv = captionTracks[resolvedSelectedTracksIndex]) === null || _captionTracks$resolv === void 0 ? void 0 : _captionTracks$resolv.lang) || null,
154
+ artifactName: artifactName
155
+ };
156
+ (0, _analytics.fireAnalyticsEvent)((0, _analytics.createCaptionDisplayFailedEventPayload)(type, 'fetch-fail', captionAttributes, fileState.id, error, traceContext), createAnalyticsEvent);
157
+ captionsObjectURLsStatus.current.set(artifactName, 'error');
141
158
  });
142
159
  }
143
160
  }
144
- }, [resolvedSelectedTracksIndex, captionTracks, mediaClient, fileState, collectionName]);
161
+ }, [resolvedSelectedTracksIndex, captionTracks, mediaClient, fileState, collectionName, createAnalyticsEvent, type]);
145
162
 
146
163
  // Revokes the object urls when the component unmounts.
147
164
  (0, _react.useEffect)(function () {
@@ -12,28 +12,46 @@ var _react = _interopRequireWildcard(require("react"));
12
12
  var _text = require("./text");
13
13
  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); }
14
14
  var Track = function Track(_ref) {
15
- var track = _ref.track,
15
+ var textTrack = _ref.textTrack,
16
16
  kind = _ref.kind,
17
17
  isShowing = _ref.isShowing,
18
- textTracksPosition = _ref.textTracksPosition;
18
+ textTracksPosition = _ref.textTracksPosition,
19
+ onLoad = _ref.onLoad,
20
+ onError = _ref.onError;
19
21
  var trackElemref = /*#__PURE__*/(0, _react.createRef)();
20
- var lang = track.lang,
21
- label = track.label,
22
- src = track.src;
22
+ var lang = textTrack.lang,
23
+ label = textTrack.label,
24
+ src = textTrack.src,
25
+ artifactName = textTrack.artifactName;
23
26
  (0, _react.useEffect)(function () {
24
27
  var _ref2 = trackElemref.current || {},
25
- theTrack = _ref2.track;
26
- if (theTrack) {
27
- theTrack.mode = isShowing ? 'showing' : 'hidden';
28
+ track = _ref2.track;
29
+ if (track) {
30
+ track.mode = isShowing ? 'showing' : 'hidden';
28
31
  }
29
32
  }, [isShowing, trackElemref]);
33
+ var onErrorInternal = (0, _react.useCallback)(function () {
34
+ // Only report the error when the src has been set
35
+ if (src) {
36
+ onError === null || onError === void 0 || onError(artifactName, lang, label);
37
+ }
38
+ }, [artifactName, lang, label, onError, src]);
39
+ (0, _react.useEffect)(function () {
40
+ var trackElement = trackElemref.current;
41
+ if (trackElement) {
42
+ trackElement.onload = function () {
43
+ onLoad === null || onLoad === void 0 || onLoad();
44
+ };
45
+ trackElement.onerror = onErrorInternal;
46
+ }
47
+ }, [trackElemref, onLoad, onErrorInternal]);
30
48
  (0, _react.useEffect)(function () {
31
49
  var _ref3 = trackElemref.current || {},
32
50
  theTrack = _ref3.track;
33
51
  var _ref4 = theTrack || {},
34
52
  cues = _ref4.cues;
35
53
  if (cues && cues.length > 0) {
36
- (0, _toConsumableArray2.default)(cues).map(function (cue) {
54
+ (0, _toConsumableArray2.default)(cues).forEach(function (cue) {
37
55
  // Positioning Text Tracks
38
56
  cue.line = textTracksPosition || 'auto';
39
57
  cue.size = 95;
@@ -53,20 +71,26 @@ var Tracks = function Tracks(_ref5) {
53
71
  var tracks = _ref5.tracks,
54
72
  selectedTrackIndex = _ref5.selectedTrackIndex,
55
73
  kind = _ref5.kind,
56
- textTracksPosition = _ref5.textTracksPosition;
74
+ textTracksPosition = _ref5.textTracksPosition,
75
+ onLoad = _ref5.onLoad,
76
+ onError = _ref5.onError;
57
77
  return tracks === null || tracks === void 0 ? void 0 : tracks.map(function (track, index) {
58
78
  return /*#__PURE__*/_react.default.createElement(Track, {
59
79
  key: "track-".concat(index),
60
80
  kind: kind,
61
- track: track,
81
+ textTrack: track,
62
82
  isShowing: index === selectedTrackIndex,
63
- textTracksPosition: textTracksPosition
83
+ textTracksPosition: textTracksPosition,
84
+ onLoad: onLoad,
85
+ onError: onError
64
86
  });
65
87
  });
66
88
  };
67
89
  var TextTracks = exports.TextTracks = /*#__PURE__*/(0, _react.memo)(function (_ref6) {
68
90
  var videoTextTracks = _ref6.videoTextTracks,
69
- textTracksPosition = _ref6.textTracksPosition;
91
+ textTracksPosition = _ref6.textTracksPosition,
92
+ onLoad = _ref6.onLoad,
93
+ onError = _ref6.onError;
70
94
  return Object.entries(videoTextTracks).map(function (_ref7, index) {
71
95
  var _ref8 = (0, _slicedToArray2.default)(_ref7, 2),
72
96
  kind = _ref8[0],
@@ -78,7 +102,9 @@ var TextTracks = exports.TextTracks = /*#__PURE__*/(0, _react.memo)(function (_r
78
102
  kind: kind,
79
103
  tracks: tracks,
80
104
  selectedTrackIndex: selectedTrackIndex,
81
- textTracksPosition: textTracksPosition
105
+ textTracksPosition: textTracksPosition,
106
+ onLoad: onLoad,
107
+ onError: onError
82
108
  });
83
109
  });
84
110
  });