@atlaskit/media-card 73.4.0 → 73.5.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.
- package/CHANGELOG.md +25 -0
- package/classnames/package.json +7 -0
- package/dist/cjs/classnames.js +19 -0
- package/dist/cjs/files/cardImageView/classnames.js +10 -0
- package/dist/cjs/files/cardImageView/index.js +4 -7
- package/dist/cjs/index.js +3 -3
- package/dist/cjs/root/card/cardAnalytics.js +15 -3
- package/dist/cjs/root/card/index.js +12 -3
- package/dist/cjs/utils/generateUniqueId.js +12 -0
- package/dist/cjs/utils/ufoExperiences.js +91 -0
- package/dist/cjs/utils/viewportDetector.js +4 -2
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/classnames.js +1 -0
- package/dist/es2019/files/cardImageView/classnames.js +2 -0
- package/dist/es2019/files/cardImageView/index.js +1 -2
- package/dist/es2019/index.js +1 -1
- package/dist/es2019/root/card/cardAnalytics.js +9 -1
- package/dist/es2019/root/card/index.js +12 -4
- package/dist/es2019/utils/generateUniqueId.js +3 -0
- package/dist/es2019/utils/ufoExperiences.js +68 -0
- package/dist/es2019/utils/viewportDetector.js +4 -2
- package/dist/es2019/version.json +1 -1
- package/dist/esm/classnames.js +1 -0
- package/dist/esm/files/cardImageView/classnames.js +2 -0
- package/dist/esm/files/cardImageView/index.js +1 -2
- package/dist/esm/index.js +1 -1
- package/dist/esm/root/card/cardAnalytics.js +11 -1
- package/dist/esm/root/card/index.js +12 -4
- package/dist/esm/utils/generateUniqueId.js +3 -0
- package/dist/esm/utils/ufoExperiences.js +74 -0
- package/dist/esm/utils/viewportDetector.js +4 -2
- package/dist/esm/version.json +1 -1
- package/dist/types/classnames.d.ts +1 -0
- package/dist/types/files/cardImageView/classnames.d.ts +2 -0
- package/dist/types/files/cardImageView/index.d.ts +0 -2
- package/dist/types/index.d.ts +1 -1
- package/dist/types/root/card/cardAnalytics.d.ts +2 -2
- package/dist/types/root/card/index.d.ts +1 -0
- package/dist/types/utils/generateUniqueId.d.ts +1 -0
- package/dist/types/utils/ufoExperiences.d.ts +6 -0
- package/example-helpers/index.tsx +2 -2
- package/package.json +8 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
# @atlaskit/media-card
|
|
2
2
|
|
|
3
|
+
## 73.5.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`02fb8e78fb9`](https://bitbucket.org/atlassian/atlassian-frontend/commits/02fb8e78fb9) - Implement media card render UFO experience
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- [`3ef794dc11f`](https://bitbucket.org/atlassian/atlassian-frontend/commits/3ef794dc11f) - Removed emoji and media packages dependencies from renderer initial load.
|
|
12
|
+
- [`7948702bf56`](https://bitbucket.org/atlassian/atlassian-frontend/commits/7948702bf56) - Fixing a bug where sometimes the media card pre-load indicator is given 100% height and renders over other components. It now has a max height of 0 and is not a click target
|
|
13
|
+
- [`065ae19cb44`](https://bitbucket.org/atlassian/atlassian-frontend/commits/065ae19cb44) - Enforced "up to date" logged feature flags via type checks
|
|
14
|
+
- Updated dependencies
|
|
15
|
+
|
|
16
|
+
## 73.4.2
|
|
17
|
+
|
|
18
|
+
### Patch Changes
|
|
19
|
+
|
|
20
|
+
- [`c102bb59f41`](https://bitbucket.org/atlassian/atlassian-frontend/commits/c102bb59f41) - Viewport detector needs to have absolute positioning so that it does not cause scroll bars in firefox when rendered in a table with a link.
|
|
21
|
+
|
|
22
|
+
## 73.4.1
|
|
23
|
+
|
|
24
|
+
### Patch Changes
|
|
25
|
+
|
|
26
|
+
- [`de7e2ff674e`](https://bitbucket.org/atlassian/atlassian-frontend/commits/de7e2ff674e) - Applies a fix to ensure that the media card viewport detector is never a click target
|
|
27
|
+
|
|
3
28
|
## 73.4.0
|
|
4
29
|
|
|
5
30
|
### Minor Changes
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "fileCardImageViewSelectedSelector", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _classnames.fileCardImageViewSelectedSelector;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "fileCardImageViewSelector", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _classnames.fileCardImageViewSelector;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
var _classnames = require("./files/cardImageView/classnames");
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.fileCardImageViewSelector = exports.fileCardImageViewSelectedSelector = void 0;
|
|
7
|
+
var fileCardImageViewSelector = 'media-file-card-view';
|
|
8
|
+
exports.fileCardImageViewSelector = fileCardImageViewSelector;
|
|
9
|
+
var fileCardImageViewSelectedSelector = 'media-file-card-view-selected';
|
|
10
|
+
exports.fileCardImageViewSelectedSelector = fileCardImageViewSelectedSelector;
|
|
@@ -7,7 +7,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
10
|
-
exports.
|
|
10
|
+
exports.FileCardImageView = void 0;
|
|
11
11
|
|
|
12
12
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
13
|
|
|
@@ -41,6 +41,8 @@ var _progressBar = require("../../utils/progressBar");
|
|
|
41
41
|
|
|
42
42
|
var _cardActions = _interopRequireDefault(require("../../utils/cardActions"));
|
|
43
43
|
|
|
44
|
+
var _classnames = require("./classnames");
|
|
45
|
+
|
|
44
46
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
45
47
|
|
|
46
48
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -49,11 +51,6 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
|
|
|
49
51
|
|
|
50
52
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
51
53
|
|
|
52
|
-
var fileCardImageViewSelector = 'media-file-card-view';
|
|
53
|
-
exports.fileCardImageViewSelector = fileCardImageViewSelector;
|
|
54
|
-
var fileCardImageViewSelectedSelector = 'media-file-card-view-selected';
|
|
55
|
-
exports.fileCardImageViewSelectedSelector = fileCardImageViewSelectedSelector;
|
|
56
|
-
|
|
57
54
|
var FileCardImageView = /*#__PURE__*/function (_Component) {
|
|
58
55
|
(0, _inherits2.default)(FileCardImageView, _Component);
|
|
59
56
|
|
|
@@ -313,7 +310,7 @@ var FileCardImageView = /*#__PURE__*/function (_Component) {
|
|
|
313
310
|
selectable: selectable,
|
|
314
311
|
selected: selected,
|
|
315
312
|
mediaType: mediaType,
|
|
316
|
-
className: "".concat(fileCardImageViewSelector, " ").concat(selected ? fileCardImageViewSelectedSelector : '')
|
|
313
|
+
className: "".concat(_classnames.fileCardImageViewSelector, " ").concat(selected ? _classnames.fileCardImageViewSelectedSelector : '')
|
|
317
314
|
}, this.renderCardContents());
|
|
318
315
|
}
|
|
319
316
|
}, {
|
package/dist/cjs/index.js
CHANGED
|
@@ -36,13 +36,13 @@ Object.defineProperty(exports, "defaultImageCardDimensions", {
|
|
|
36
36
|
Object.defineProperty(exports, "fileCardImageViewSelectedSelector", {
|
|
37
37
|
enumerable: true,
|
|
38
38
|
get: function get() {
|
|
39
|
-
return
|
|
39
|
+
return _classnames.fileCardImageViewSelectedSelector;
|
|
40
40
|
}
|
|
41
41
|
});
|
|
42
42
|
Object.defineProperty(exports, "fileCardImageViewSelector", {
|
|
43
43
|
enumerable: true,
|
|
44
44
|
get: function get() {
|
|
45
|
-
return
|
|
45
|
+
return _classnames.fileCardImageViewSelector;
|
|
46
46
|
}
|
|
47
47
|
});
|
|
48
48
|
Object.defineProperty(exports, "inlinePlayerClassName", {
|
|
@@ -66,7 +66,7 @@ var _cardError = require("./utils/lightCards/cardError");
|
|
|
66
66
|
|
|
67
67
|
var _cardDimensions = require("./utils/cardDimensions");
|
|
68
68
|
|
|
69
|
-
var
|
|
69
|
+
var _classnames = require("./files/cardImageView/classnames");
|
|
70
70
|
|
|
71
71
|
var _inlinePlayer = require("./root/inlinePlayer");
|
|
72
72
|
|
|
@@ -3,12 +3,24 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.getRelevantFeatureFlagNames = exports.fireScreenEvent = exports.fireOperationalEvent = exports.fireCopiedEvent = exports.fireCommencedEvent = void 0;
|
|
7
|
+
|
|
8
|
+
var _mediaCommon = require("@atlaskit/media-common");
|
|
7
9
|
|
|
8
10
|
var _analytics = require("../../utils/analytics");
|
|
9
11
|
|
|
10
|
-
var
|
|
11
|
-
|
|
12
|
+
var getRelevantFeatureFlagNames = function getRelevantFeatureFlagNames() {
|
|
13
|
+
return (0, _mediaCommon.filterFeatureFlagNames)({
|
|
14
|
+
newCardExperience: true,
|
|
15
|
+
captions: true,
|
|
16
|
+
timestampOnVideo: true,
|
|
17
|
+
observedWidth: true,
|
|
18
|
+
mediaInline: false,
|
|
19
|
+
folderUploads: false
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
exports.getRelevantFeatureFlagNames = getRelevantFeatureFlagNames;
|
|
12
24
|
|
|
13
25
|
var fireOperationalEvent = function fireOperationalEvent(createAnalyticsEvent, status, fileAttributes, performanceAttributes, ssrReliability, error) {
|
|
14
26
|
var fireEvent = function fireEvent(payload) {
|
|
@@ -75,6 +75,10 @@ var _dimensionComparer = require("../../utils/dimensionComparer");
|
|
|
75
75
|
|
|
76
76
|
var _getMediaCardCursor = require("../../utils/getMediaCardCursor");
|
|
77
77
|
|
|
78
|
+
var _ufoExperiences = require("../../utils/ufoExperiences");
|
|
79
|
+
|
|
80
|
+
var _generateUniqueId = require("../../utils/generateUniqueId");
|
|
81
|
+
|
|
78
82
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
79
83
|
|
|
80
84
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -92,6 +96,8 @@ var CardBase = /*#__PURE__*/function (_Component) {
|
|
|
92
96
|
|
|
93
97
|
var _super = _createSuper(CardBase);
|
|
94
98
|
|
|
99
|
+
// An internalOccurrenceKey is a randomly generated value to differentiate various instances
|
|
100
|
+
// of Cards regardless of whether it shares the same file (either internal or external)
|
|
95
101
|
// We initialise timeElapsedTillCommenced
|
|
96
102
|
// to avoid extra branching on a possibly undefined value.
|
|
97
103
|
function CardBase(props) {
|
|
@@ -99,6 +105,7 @@ var CardBase = /*#__PURE__*/function (_Component) {
|
|
|
99
105
|
|
|
100
106
|
(0, _classCallCheck2.default)(this, CardBase);
|
|
101
107
|
_this = _super.call(this, props);
|
|
108
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "internalOccurrenceKey", (0, _generateUniqueId.generateUniqueId)());
|
|
102
109
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "hasBeenMounted", false);
|
|
103
110
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "viewportPreAnchorRef", /*#__PURE__*/(0, _react.createRef)());
|
|
104
111
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "viewportPostAnchorRef", /*#__PURE__*/(0, _react.createRef)());
|
|
@@ -287,7 +294,7 @@ var CardBase = /*#__PURE__*/function (_Component) {
|
|
|
287
294
|
if ((0, _getCardPreview.isSSRClientPreview)(cardPreview)) {
|
|
288
295
|
_this.ssrReliability.client = failedSSRObject;
|
|
289
296
|
}
|
|
290
|
-
/*
|
|
297
|
+
/*
|
|
291
298
|
If the cardPreview failed and it comes from server (global scope / ssrData), it means that we have reused it in client and the error counts for both: server & client.
|
|
292
299
|
*/
|
|
293
300
|
|
|
@@ -343,7 +350,7 @@ var CardBase = /*#__PURE__*/function (_Component) {
|
|
|
343
350
|
status: 'success'
|
|
344
351
|
};
|
|
345
352
|
}
|
|
346
|
-
/*
|
|
353
|
+
/*
|
|
347
354
|
If the image loads successfully and it comes from server (global scope / ssrData), it means that we have reused it in client and the success counts for both: server & client.
|
|
348
355
|
*/
|
|
349
356
|
|
|
@@ -950,6 +957,7 @@ var CardBase = /*#__PURE__*/function (_Component) {
|
|
|
950
957
|
error = _this$state7.error;
|
|
951
958
|
var createAnalyticsEvent = this.props.createAnalyticsEvent;
|
|
952
959
|
createAnalyticsEvent && (0, _cardAnalytics.fireOperationalEvent)(createAnalyticsEvent, status, this.fileAttributes, this.getPerformanceAttributes(), this.ssrReliability, error);
|
|
960
|
+
(0, _ufoExperiences.completeUfoExperience)(this.internalOccurrenceKey, status, this.fileAttributes, this.ssrReliability, error);
|
|
953
961
|
}
|
|
954
962
|
}, {
|
|
955
963
|
key: "fireCommencedEvent",
|
|
@@ -961,6 +969,7 @@ var CardBase = /*#__PURE__*/function (_Component) {
|
|
|
961
969
|
durationSincePageStart: this.timeElapsedTillCommenced
|
|
962
970
|
}
|
|
963
971
|
});
|
|
972
|
+
(0, _ufoExperiences.startUfoExperience)(this.internalOccurrenceKey);
|
|
964
973
|
}
|
|
965
974
|
}, {
|
|
966
975
|
key: "actions",
|
|
@@ -1022,7 +1031,7 @@ var Card = (0, _mediaCommon.withMediaAnalyticsContext)({
|
|
|
1022
1031
|
componentName: 'mediaCard',
|
|
1023
1032
|
component: 'mediaCard'
|
|
1024
1033
|
}, {
|
|
1025
|
-
filterFeatureFlags: _cardAnalytics.
|
|
1034
|
+
filterFeatureFlags: (0, _cardAnalytics.getRelevantFeatureFlagNames)()
|
|
1026
1035
|
})((0, _analyticsNext.withAnalyticsEvents)()((0, _reactIntlNext.injectIntl)(CardBase, {
|
|
1027
1036
|
enforceContext: false
|
|
1028
1037
|
})));
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.generateUniqueId = void 0;
|
|
7
|
+
|
|
8
|
+
var generateUniqueId = function generateUniqueId() {
|
|
9
|
+
return (performance.now().toString(36) + Math.random().toString(36)).replace(/\./g, '');
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
exports.generateUniqueId = generateUniqueId;
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.startUfoExperience = exports.completeUfoExperience = void 0;
|
|
9
|
+
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
|
|
12
|
+
var _ufo = require("@atlaskit/ufo");
|
|
13
|
+
|
|
14
|
+
var _version = require("../version.json");
|
|
15
|
+
|
|
16
|
+
var _analytics = require("./analytics");
|
|
17
|
+
|
|
18
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
19
|
+
|
|
20
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
21
|
+
|
|
22
|
+
var concurrentExperience;
|
|
23
|
+
|
|
24
|
+
var getExperience = function getExperience(id) {
|
|
25
|
+
if (!concurrentExperience) {
|
|
26
|
+
var inlineExperience = {
|
|
27
|
+
platform: {
|
|
28
|
+
component: 'media-card'
|
|
29
|
+
},
|
|
30
|
+
type: _ufo.ExperienceTypes.Experience,
|
|
31
|
+
performanceType: _ufo.ExperiencePerformanceTypes.InlineResult
|
|
32
|
+
};
|
|
33
|
+
concurrentExperience = new _ufo.ConcurrentExperience('media-card-render', inlineExperience);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
return concurrentExperience.getInstance(id);
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
var startUfoExperience = function startUfoExperience(id) {
|
|
40
|
+
getExperience(id).start();
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
exports.startUfoExperience = startUfoExperience;
|
|
44
|
+
|
|
45
|
+
var completeUfoExperience = function completeUfoExperience(id, status, fileAttributes, ssrReliability, error) {
|
|
46
|
+
switch (status) {
|
|
47
|
+
case 'complete':
|
|
48
|
+
succeedUfoExperience(id, {
|
|
49
|
+
fileAttributes: fileAttributes,
|
|
50
|
+
ssrReliability: ssrReliability
|
|
51
|
+
});
|
|
52
|
+
break;
|
|
53
|
+
|
|
54
|
+
case 'failed-processing':
|
|
55
|
+
failUfoExperience(id, {
|
|
56
|
+
fileAttributes: fileAttributes,
|
|
57
|
+
failReason: 'failed-processing',
|
|
58
|
+
ssrReliability: ssrReliability
|
|
59
|
+
});
|
|
60
|
+
break;
|
|
61
|
+
|
|
62
|
+
case 'error':
|
|
63
|
+
error && failUfoExperience(id, _objectSpread(_objectSpread({
|
|
64
|
+
fileAttributes: fileAttributes
|
|
65
|
+
}, (0, _analytics.extractErrorInfo)(error)), {}, {
|
|
66
|
+
request: (0, _analytics.getRenderErrorRequestMetadata)(error),
|
|
67
|
+
ssrReliability: ssrReliability
|
|
68
|
+
}));
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
exports.completeUfoExperience = completeUfoExperience;
|
|
74
|
+
|
|
75
|
+
var succeedUfoExperience = function succeedUfoExperience(id, properties) {
|
|
76
|
+
getExperience(id).success({
|
|
77
|
+
metadata: _objectSpread(_objectSpread({}, properties), {}, {
|
|
78
|
+
packageName: _version.name,
|
|
79
|
+
packageVersion: _version.version
|
|
80
|
+
})
|
|
81
|
+
});
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
var failUfoExperience = function failUfoExperience(id, properties) {
|
|
85
|
+
getExperience(id).failure({
|
|
86
|
+
metadata: _objectSpread(_objectSpread({}, properties), {}, {
|
|
87
|
+
packageName: _version.name,
|
|
88
|
+
packageVersion: _version.version
|
|
89
|
+
})
|
|
90
|
+
});
|
|
91
|
+
};
|
|
@@ -35,8 +35,10 @@ var ViewportAnchor = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
35
35
|
ref: ref,
|
|
36
36
|
className: "media-card-viewport-anchor",
|
|
37
37
|
style: {
|
|
38
|
-
position: '
|
|
39
|
-
top: "".concat(props.offsetTop, "px")
|
|
38
|
+
position: 'absolute',
|
|
39
|
+
top: "".concat(props.offsetTop, "px"),
|
|
40
|
+
maxHeight: 0,
|
|
41
|
+
pointerEvents: 'none'
|
|
40
42
|
}
|
|
41
43
|
});
|
|
42
44
|
});
|
package/dist/cjs/version.json
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { fileCardImageViewSelector, fileCardImageViewSelectedSelector } from './files/cardImageView/classnames';
|
|
@@ -9,8 +9,7 @@ import { CardLoading } from '../../utils/lightCards/cardLoading';
|
|
|
9
9
|
import { shouldDisplayImageThumbnail } from '../../utils/shouldDisplayImageThumbnail';
|
|
10
10
|
import { ProgressBar } from '../../utils/progressBar';
|
|
11
11
|
import CardActions from '../../utils/cardActions';
|
|
12
|
-
|
|
13
|
-
export const fileCardImageViewSelectedSelector = 'media-file-card-view-selected';
|
|
12
|
+
import { fileCardImageViewSelectedSelector, fileCardImageViewSelector } from './classnames';
|
|
14
13
|
export class FileCardImageView extends Component {
|
|
15
14
|
constructor(...args) {
|
|
16
15
|
super(...args);
|
package/dist/es2019/index.js
CHANGED
|
@@ -2,6 +2,6 @@ export { Card, MediaInlineCard } from './root';
|
|
|
2
2
|
export { CardLoading } from './utils/lightCards/cardLoading';
|
|
3
3
|
export { CardError } from './utils/lightCards/cardError';
|
|
4
4
|
export { defaultImageCardDimensions } from './utils/cardDimensions';
|
|
5
|
-
export { fileCardImageViewSelector, fileCardImageViewSelectedSelector } from './files/cardImageView';
|
|
5
|
+
export { fileCardImageViewSelector, fileCardImageViewSelectedSelector } from './files/cardImageView/classnames';
|
|
6
6
|
export { inlinePlayerClassName } from './root/inlinePlayer';
|
|
7
7
|
export { newFileExperienceClassName } from './root/card/cardConstants';
|
|
@@ -1,5 +1,13 @@
|
|
|
1
|
+
import { filterFeatureFlagNames } from '@atlaskit/media-common';
|
|
1
2
|
import { fireMediaCardEvent, getRenderSucceededEventPayload, getRenderErrorEventPayload, getRenderFailedFileStatusPayload, getCopiedFilePayload, getRenderCommencedEventPayload, getRenderPreviewableCardPayload } from '../../utils/analytics';
|
|
2
|
-
export const
|
|
3
|
+
export const getRelevantFeatureFlagNames = () => filterFeatureFlagNames({
|
|
4
|
+
newCardExperience: true,
|
|
5
|
+
captions: true,
|
|
6
|
+
timestampOnVideo: true,
|
|
7
|
+
observedWidth: true,
|
|
8
|
+
mediaInline: false,
|
|
9
|
+
folderUploads: false
|
|
10
|
+
});
|
|
3
11
|
export const fireOperationalEvent = (createAnalyticsEvent, status, fileAttributes, performanceAttributes, ssrReliability, error) => {
|
|
4
12
|
const fireEvent = payload => fireMediaCardEvent(payload, createAnalyticsEvent);
|
|
5
13
|
|
|
@@ -16,19 +16,25 @@ import { getFileDetails } from '../../utils/metadata';
|
|
|
16
16
|
import { InlinePlayer } from '../inlinePlayer';
|
|
17
17
|
import { getFileAttributes, extractErrorInfo } from '../../utils/analytics';
|
|
18
18
|
import { isLocalPreviewError, MediaCardError, ensureMediaCardError, ImageLoadError } from '../../errors';
|
|
19
|
-
import { fireOperationalEvent, fireCommencedEvent,
|
|
19
|
+
import { fireOperationalEvent, fireCommencedEvent, getRelevantFeatureFlagNames, fireCopiedEvent, fireScreenEvent } from './cardAnalytics';
|
|
20
20
|
import getDocument from '../../utils/document';
|
|
21
21
|
import { StoreSSRDataScript, getSSRData } from '../../utils/globalScope';
|
|
22
22
|
import { getCardStateFromFileState, createStateUpdater } from './cardState';
|
|
23
23
|
import { getMediaFeatureFlag } from '@atlaskit/media-common';
|
|
24
24
|
import { isBigger } from '../../utils/dimensionComparer';
|
|
25
25
|
import { getMediaCardCursor } from '../../utils/getMediaCardCursor';
|
|
26
|
+
import { completeUfoExperience, startUfoExperience } from '../../utils/ufoExperiences';
|
|
27
|
+
import { generateUniqueId } from '../../utils/generateUniqueId';
|
|
26
28
|
export class CardBase extends Component {
|
|
29
|
+
// An internalOccurrenceKey is a randomly generated value to differentiate various instances
|
|
30
|
+
// of Cards regardless of whether it shares the same file (either internal or external)
|
|
27
31
|
// We initialise timeElapsedTillCommenced
|
|
28
32
|
// to avoid extra branching on a possibly undefined value.
|
|
29
33
|
constructor(props) {
|
|
30
34
|
super(props);
|
|
31
35
|
|
|
36
|
+
_defineProperty(this, "internalOccurrenceKey", generateUniqueId());
|
|
37
|
+
|
|
32
38
|
_defineProperty(this, "hasBeenMounted", false);
|
|
33
39
|
|
|
34
40
|
_defineProperty(this, "viewportPreAnchorRef", /*#__PURE__*/createRef());
|
|
@@ -183,7 +189,7 @@ export class CardBase extends Component {
|
|
|
183
189
|
if (isSSRClientPreview(cardPreview)) {
|
|
184
190
|
this.ssrReliability.client = failedSSRObject;
|
|
185
191
|
}
|
|
186
|
-
/*
|
|
192
|
+
/*
|
|
187
193
|
If the cardPreview failed and it comes from server (global scope / ssrData), it means that we have reused it in client and the error counts for both: server & client.
|
|
188
194
|
*/
|
|
189
195
|
|
|
@@ -240,7 +246,7 @@ export class CardBase extends Component {
|
|
|
240
246
|
status: 'success'
|
|
241
247
|
};
|
|
242
248
|
}
|
|
243
|
-
/*
|
|
249
|
+
/*
|
|
244
250
|
If the image loads successfully and it comes from server (global scope / ssrData), it means that we have reused it in client and the success counts for both: server & client.
|
|
245
251
|
*/
|
|
246
252
|
|
|
@@ -902,6 +908,7 @@ export class CardBase extends Component {
|
|
|
902
908
|
createAnalyticsEvent
|
|
903
909
|
} = this.props;
|
|
904
910
|
createAnalyticsEvent && fireOperationalEvent(createAnalyticsEvent, status, this.fileAttributes, this.getPerformanceAttributes(), this.ssrReliability, error);
|
|
911
|
+
completeUfoExperience(this.internalOccurrenceKey, status, this.fileAttributes, this.ssrReliability, error);
|
|
905
912
|
}
|
|
906
913
|
|
|
907
914
|
fireCommencedEvent() {
|
|
@@ -914,6 +921,7 @@ export class CardBase extends Component {
|
|
|
914
921
|
durationSincePageStart: this.timeElapsedTillCommenced
|
|
915
922
|
}
|
|
916
923
|
});
|
|
924
|
+
startUfoExperience(this.internalOccurrenceKey);
|
|
917
925
|
}
|
|
918
926
|
|
|
919
927
|
get actions() {
|
|
@@ -971,7 +979,7 @@ export const Card = withMediaAnalyticsContext({
|
|
|
971
979
|
componentName: 'mediaCard',
|
|
972
980
|
component: 'mediaCard'
|
|
973
981
|
}, {
|
|
974
|
-
filterFeatureFlags:
|
|
982
|
+
filterFeatureFlags: getRelevantFeatureFlagNames()
|
|
975
983
|
})(withAnalyticsEvents()(injectIntl(CardBase, {
|
|
976
984
|
enforceContext: false
|
|
977
985
|
})));
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { ConcurrentExperience, ExperiencePerformanceTypes, ExperienceTypes } from '@atlaskit/ufo';
|
|
2
|
+
import { name as packageName, version as packageVersion } from '../version.json';
|
|
3
|
+
import { extractErrorInfo, getRenderErrorRequestMetadata } from './analytics';
|
|
4
|
+
let concurrentExperience;
|
|
5
|
+
|
|
6
|
+
const getExperience = id => {
|
|
7
|
+
if (!concurrentExperience) {
|
|
8
|
+
const inlineExperience = {
|
|
9
|
+
platform: {
|
|
10
|
+
component: 'media-card'
|
|
11
|
+
},
|
|
12
|
+
type: ExperienceTypes.Experience,
|
|
13
|
+
performanceType: ExperiencePerformanceTypes.InlineResult
|
|
14
|
+
};
|
|
15
|
+
concurrentExperience = new ConcurrentExperience('media-card-render', inlineExperience);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
return concurrentExperience.getInstance(id);
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export const startUfoExperience = id => {
|
|
22
|
+
getExperience(id).start();
|
|
23
|
+
};
|
|
24
|
+
export const completeUfoExperience = (id, status, fileAttributes, ssrReliability, error) => {
|
|
25
|
+
switch (status) {
|
|
26
|
+
case 'complete':
|
|
27
|
+
succeedUfoExperience(id, {
|
|
28
|
+
fileAttributes,
|
|
29
|
+
ssrReliability
|
|
30
|
+
});
|
|
31
|
+
break;
|
|
32
|
+
|
|
33
|
+
case 'failed-processing':
|
|
34
|
+
failUfoExperience(id, {
|
|
35
|
+
fileAttributes,
|
|
36
|
+
failReason: 'failed-processing',
|
|
37
|
+
ssrReliability
|
|
38
|
+
});
|
|
39
|
+
break;
|
|
40
|
+
|
|
41
|
+
case 'error':
|
|
42
|
+
error && failUfoExperience(id, {
|
|
43
|
+
fileAttributes,
|
|
44
|
+
...extractErrorInfo(error),
|
|
45
|
+
request: getRenderErrorRequestMetadata(error),
|
|
46
|
+
ssrReliability
|
|
47
|
+
});
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
const succeedUfoExperience = (id, properties) => {
|
|
53
|
+
getExperience(id).success({
|
|
54
|
+
metadata: { ...properties,
|
|
55
|
+
packageName,
|
|
56
|
+
packageVersion
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
const failUfoExperience = (id, properties) => {
|
|
62
|
+
getExperience(id).failure({
|
|
63
|
+
metadata: { ...properties,
|
|
64
|
+
packageName,
|
|
65
|
+
packageVersion
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
};
|
|
@@ -15,8 +15,10 @@ export const ViewportAnchor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
15
15
|
ref: ref,
|
|
16
16
|
className: "media-card-viewport-anchor",
|
|
17
17
|
style: {
|
|
18
|
-
position: '
|
|
19
|
-
top: `${props.offsetTop}px
|
|
18
|
+
position: 'absolute',
|
|
19
|
+
top: `${props.offsetTop}px`,
|
|
20
|
+
maxHeight: 0,
|
|
21
|
+
pointerEvents: 'none'
|
|
20
22
|
}
|
|
21
23
|
});
|
|
22
24
|
});
|
package/dist/es2019/version.json
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { fileCardImageViewSelector, fileCardImageViewSelectedSelector } from './files/cardImageView/classnames';
|
|
@@ -20,8 +20,7 @@ import { CardLoading } from '../../utils/lightCards/cardLoading';
|
|
|
20
20
|
import { shouldDisplayImageThumbnail } from '../../utils/shouldDisplayImageThumbnail';
|
|
21
21
|
import { ProgressBar } from '../../utils/progressBar';
|
|
22
22
|
import CardActions from '../../utils/cardActions';
|
|
23
|
-
|
|
24
|
-
export var fileCardImageViewSelectedSelector = 'media-file-card-view-selected';
|
|
23
|
+
import { fileCardImageViewSelectedSelector, fileCardImageViewSelector } from './classnames';
|
|
25
24
|
export var FileCardImageView = /*#__PURE__*/function (_Component) {
|
|
26
25
|
_inherits(FileCardImageView, _Component);
|
|
27
26
|
|
package/dist/esm/index.js
CHANGED
|
@@ -2,6 +2,6 @@ export { Card, MediaInlineCard } from './root';
|
|
|
2
2
|
export { CardLoading } from './utils/lightCards/cardLoading';
|
|
3
3
|
export { CardError } from './utils/lightCards/cardError';
|
|
4
4
|
export { defaultImageCardDimensions } from './utils/cardDimensions';
|
|
5
|
-
export { fileCardImageViewSelector, fileCardImageViewSelectedSelector } from './files/cardImageView';
|
|
5
|
+
export { fileCardImageViewSelector, fileCardImageViewSelectedSelector } from './files/cardImageView/classnames';
|
|
6
6
|
export { inlinePlayerClassName } from './root/inlinePlayer';
|
|
7
7
|
export { newFileExperienceClassName } from './root/card/cardConstants';
|
|
@@ -1,5 +1,15 @@
|
|
|
1
|
+
import { filterFeatureFlagNames } from '@atlaskit/media-common';
|
|
1
2
|
import { fireMediaCardEvent, getRenderSucceededEventPayload, getRenderErrorEventPayload, getRenderFailedFileStatusPayload, getCopiedFilePayload, getRenderCommencedEventPayload, getRenderPreviewableCardPayload } from '../../utils/analytics';
|
|
2
|
-
export var
|
|
3
|
+
export var getRelevantFeatureFlagNames = function getRelevantFeatureFlagNames() {
|
|
4
|
+
return filterFeatureFlagNames({
|
|
5
|
+
newCardExperience: true,
|
|
6
|
+
captions: true,
|
|
7
|
+
timestampOnVideo: true,
|
|
8
|
+
observedWidth: true,
|
|
9
|
+
mediaInline: false,
|
|
10
|
+
folderUploads: false
|
|
11
|
+
});
|
|
12
|
+
};
|
|
3
13
|
export var fireOperationalEvent = function fireOperationalEvent(createAnalyticsEvent, status, fileAttributes, performanceAttributes, ssrReliability, error) {
|
|
4
14
|
var fireEvent = function fireEvent(payload) {
|
|
5
15
|
return fireMediaCardEvent(payload, createAnalyticsEvent);
|
|
@@ -34,18 +34,22 @@ import { getFileDetails } from '../../utils/metadata';
|
|
|
34
34
|
import { InlinePlayer } from '../inlinePlayer';
|
|
35
35
|
import { getFileAttributes, extractErrorInfo } from '../../utils/analytics';
|
|
36
36
|
import { isLocalPreviewError, MediaCardError, ensureMediaCardError, ImageLoadError } from '../../errors';
|
|
37
|
-
import { fireOperationalEvent as _fireOperationalEvent, fireCommencedEvent as _fireCommencedEvent,
|
|
37
|
+
import { fireOperationalEvent as _fireOperationalEvent, fireCommencedEvent as _fireCommencedEvent, getRelevantFeatureFlagNames, fireCopiedEvent, fireScreenEvent } from './cardAnalytics';
|
|
38
38
|
import getDocument from '../../utils/document';
|
|
39
39
|
import { StoreSSRDataScript, getSSRData } from '../../utils/globalScope';
|
|
40
40
|
import { getCardStateFromFileState, createStateUpdater } from './cardState';
|
|
41
41
|
import { getMediaFeatureFlag } from '@atlaskit/media-common';
|
|
42
42
|
import { isBigger } from '../../utils/dimensionComparer';
|
|
43
43
|
import { getMediaCardCursor } from '../../utils/getMediaCardCursor';
|
|
44
|
+
import { completeUfoExperience, startUfoExperience } from '../../utils/ufoExperiences';
|
|
45
|
+
import { generateUniqueId } from '../../utils/generateUniqueId';
|
|
44
46
|
export var CardBase = /*#__PURE__*/function (_Component) {
|
|
45
47
|
_inherits(CardBase, _Component);
|
|
46
48
|
|
|
47
49
|
var _super = _createSuper(CardBase);
|
|
48
50
|
|
|
51
|
+
// An internalOccurrenceKey is a randomly generated value to differentiate various instances
|
|
52
|
+
// of Cards regardless of whether it shares the same file (either internal or external)
|
|
49
53
|
// We initialise timeElapsedTillCommenced
|
|
50
54
|
// to avoid extra branching on a possibly undefined value.
|
|
51
55
|
function CardBase(props) {
|
|
@@ -55,6 +59,8 @@ export var CardBase = /*#__PURE__*/function (_Component) {
|
|
|
55
59
|
|
|
56
60
|
_this = _super.call(this, props);
|
|
57
61
|
|
|
62
|
+
_defineProperty(_assertThisInitialized(_this), "internalOccurrenceKey", generateUniqueId());
|
|
63
|
+
|
|
58
64
|
_defineProperty(_assertThisInitialized(_this), "hasBeenMounted", false);
|
|
59
65
|
|
|
60
66
|
_defineProperty(_assertThisInitialized(_this), "viewportPreAnchorRef", /*#__PURE__*/createRef());
|
|
@@ -255,7 +261,7 @@ export var CardBase = /*#__PURE__*/function (_Component) {
|
|
|
255
261
|
if (isSSRClientPreview(cardPreview)) {
|
|
256
262
|
_this.ssrReliability.client = failedSSRObject;
|
|
257
263
|
}
|
|
258
|
-
/*
|
|
264
|
+
/*
|
|
259
265
|
If the cardPreview failed and it comes from server (global scope / ssrData), it means that we have reused it in client and the error counts for both: server & client.
|
|
260
266
|
*/
|
|
261
267
|
|
|
@@ -313,7 +319,7 @@ export var CardBase = /*#__PURE__*/function (_Component) {
|
|
|
313
319
|
status: 'success'
|
|
314
320
|
};
|
|
315
321
|
}
|
|
316
|
-
/*
|
|
322
|
+
/*
|
|
317
323
|
If the image loads successfully and it comes from server (global scope / ssrData), it means that we have reused it in client and the success counts for both: server & client.
|
|
318
324
|
*/
|
|
319
325
|
|
|
@@ -936,6 +942,7 @@ export var CardBase = /*#__PURE__*/function (_Component) {
|
|
|
936
942
|
error = _this$state7.error;
|
|
937
943
|
var createAnalyticsEvent = this.props.createAnalyticsEvent;
|
|
938
944
|
createAnalyticsEvent && _fireOperationalEvent(createAnalyticsEvent, status, this.fileAttributes, this.getPerformanceAttributes(), this.ssrReliability, error);
|
|
945
|
+
completeUfoExperience(this.internalOccurrenceKey, status, this.fileAttributes, this.ssrReliability, error);
|
|
939
946
|
}
|
|
940
947
|
}, {
|
|
941
948
|
key: "fireCommencedEvent",
|
|
@@ -947,6 +954,7 @@ export var CardBase = /*#__PURE__*/function (_Component) {
|
|
|
947
954
|
durationSincePageStart: this.timeElapsedTillCommenced
|
|
948
955
|
}
|
|
949
956
|
});
|
|
957
|
+
startUfoExperience(this.internalOccurrenceKey);
|
|
950
958
|
}
|
|
951
959
|
}, {
|
|
952
960
|
key: "actions",
|
|
@@ -1007,7 +1015,7 @@ export var Card = withMediaAnalyticsContext({
|
|
|
1007
1015
|
componentName: 'mediaCard',
|
|
1008
1016
|
component: 'mediaCard'
|
|
1009
1017
|
}, {
|
|
1010
|
-
filterFeatureFlags:
|
|
1018
|
+
filterFeatureFlags: getRelevantFeatureFlagNames()
|
|
1011
1019
|
})(withAnalyticsEvents()(injectIntl(CardBase, {
|
|
1012
1020
|
enforceContext: false
|
|
1013
1021
|
})));
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
|
|
3
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
4
|
+
|
|
5
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
6
|
+
|
|
7
|
+
import { ConcurrentExperience, ExperiencePerformanceTypes, ExperienceTypes } from '@atlaskit/ufo';
|
|
8
|
+
import { name as packageName, version as packageVersion } from '../version.json';
|
|
9
|
+
import { extractErrorInfo, getRenderErrorRequestMetadata } from './analytics';
|
|
10
|
+
var concurrentExperience;
|
|
11
|
+
|
|
12
|
+
var getExperience = function getExperience(id) {
|
|
13
|
+
if (!concurrentExperience) {
|
|
14
|
+
var inlineExperience = {
|
|
15
|
+
platform: {
|
|
16
|
+
component: 'media-card'
|
|
17
|
+
},
|
|
18
|
+
type: ExperienceTypes.Experience,
|
|
19
|
+
performanceType: ExperiencePerformanceTypes.InlineResult
|
|
20
|
+
};
|
|
21
|
+
concurrentExperience = new ConcurrentExperience('media-card-render', inlineExperience);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return concurrentExperience.getInstance(id);
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export var startUfoExperience = function startUfoExperience(id) {
|
|
28
|
+
getExperience(id).start();
|
|
29
|
+
};
|
|
30
|
+
export var completeUfoExperience = function completeUfoExperience(id, status, fileAttributes, ssrReliability, error) {
|
|
31
|
+
switch (status) {
|
|
32
|
+
case 'complete':
|
|
33
|
+
succeedUfoExperience(id, {
|
|
34
|
+
fileAttributes: fileAttributes,
|
|
35
|
+
ssrReliability: ssrReliability
|
|
36
|
+
});
|
|
37
|
+
break;
|
|
38
|
+
|
|
39
|
+
case 'failed-processing':
|
|
40
|
+
failUfoExperience(id, {
|
|
41
|
+
fileAttributes: fileAttributes,
|
|
42
|
+
failReason: 'failed-processing',
|
|
43
|
+
ssrReliability: ssrReliability
|
|
44
|
+
});
|
|
45
|
+
break;
|
|
46
|
+
|
|
47
|
+
case 'error':
|
|
48
|
+
error && failUfoExperience(id, _objectSpread(_objectSpread({
|
|
49
|
+
fileAttributes: fileAttributes
|
|
50
|
+
}, extractErrorInfo(error)), {}, {
|
|
51
|
+
request: getRenderErrorRequestMetadata(error),
|
|
52
|
+
ssrReliability: ssrReliability
|
|
53
|
+
}));
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
var succeedUfoExperience = function succeedUfoExperience(id, properties) {
|
|
59
|
+
getExperience(id).success({
|
|
60
|
+
metadata: _objectSpread(_objectSpread({}, properties), {}, {
|
|
61
|
+
packageName: packageName,
|
|
62
|
+
packageVersion: packageVersion
|
|
63
|
+
})
|
|
64
|
+
});
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
var failUfoExperience = function failUfoExperience(id, properties) {
|
|
68
|
+
getExperience(id).failure({
|
|
69
|
+
metadata: _objectSpread(_objectSpread({}, properties), {}, {
|
|
70
|
+
packageName: packageName,
|
|
71
|
+
packageVersion: packageVersion
|
|
72
|
+
})
|
|
73
|
+
});
|
|
74
|
+
};
|
|
@@ -21,8 +21,10 @@ export var ViewportAnchor = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
21
21
|
ref: ref,
|
|
22
22
|
className: "media-card-viewport-anchor",
|
|
23
23
|
style: {
|
|
24
|
-
position: '
|
|
25
|
-
top: "".concat(props.offsetTop, "px")
|
|
24
|
+
position: 'absolute',
|
|
25
|
+
top: "".concat(props.offsetTop, "px"),
|
|
26
|
+
maxHeight: 0,
|
|
27
|
+
pointerEvents: 'none'
|
|
26
28
|
}
|
|
27
29
|
});
|
|
28
30
|
});
|
package/dist/esm/version.json
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { fileCardImageViewSelector, fileCardImageViewSelectedSelector, } from './files/cardImageView/classnames';
|
|
@@ -26,8 +26,6 @@ export interface FileCardImageViewProps {
|
|
|
26
26
|
readonly onImageLoad?: (cardPreview: CardPreview) => void;
|
|
27
27
|
readonly cardPreview: CardPreview;
|
|
28
28
|
}
|
|
29
|
-
export declare const fileCardImageViewSelector = "media-file-card-view";
|
|
30
|
-
export declare const fileCardImageViewSelectedSelector = "media-file-card-view-selected";
|
|
31
29
|
export declare class FileCardImageView extends Component<FileCardImageViewProps> {
|
|
32
30
|
private wasThumbnailDisplayed;
|
|
33
31
|
static defaultProps: Partial<FileCardImageViewProps>;
|
package/dist/types/index.d.ts
CHANGED
|
@@ -67,6 +67,6 @@ export interface CardState {
|
|
|
67
67
|
export { CardLoading } from './utils/lightCards/cardLoading';
|
|
68
68
|
export { CardError } from './utils/lightCards/cardError';
|
|
69
69
|
export { defaultImageCardDimensions } from './utils/cardDimensions';
|
|
70
|
-
export { fileCardImageViewSelector, fileCardImageViewSelectedSelector, } from './files/cardImageView';
|
|
70
|
+
export { fileCardImageViewSelector, fileCardImageViewSelectedSelector, } from './files/cardImageView/classnames';
|
|
71
71
|
export { inlinePlayerClassName } from './root/inlinePlayer';
|
|
72
72
|
export { newFileExperienceClassName } from './root/card/cardConstants';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { FileAttributes,
|
|
1
|
+
import { FileAttributes, PerformanceAttributes } from '@atlaskit/media-common';
|
|
2
2
|
import { CreateUIAnalyticsEvent } from '@atlaskit/analytics-next';
|
|
3
3
|
import { SSRStatus } from '../../utils/analytics';
|
|
4
4
|
import { CardStatus } from '../..';
|
|
5
5
|
import { MediaCardError } from './../../errors';
|
|
6
|
-
export declare const
|
|
6
|
+
export declare const getRelevantFeatureFlagNames: () => ("newCardExperience" | "captions" | "mediaInline" | "folderUploads" | "timestampOnVideo" | "observedWidth")[];
|
|
7
7
|
export declare const fireOperationalEvent: (createAnalyticsEvent: CreateUIAnalyticsEvent, status: CardStatus, fileAttributes: FileAttributes, performanceAttributes: PerformanceAttributes, ssrReliability: SSRStatus, error?: MediaCardError | undefined) => void;
|
|
8
8
|
export declare const fireCommencedEvent: (createAnalyticsEvent: CreateUIAnalyticsEvent, fileAttributes: FileAttributes, performanceAttributes: PerformanceAttributes) => void;
|
|
9
9
|
export declare const fireCopiedEvent: (createAnalyticsEvent: CreateUIAnalyticsEvent, fileId: string, cardRef: HTMLDivElement) => void;
|
|
@@ -5,6 +5,7 @@ import { WrappedComponentProps } from 'react-intl-next';
|
|
|
5
5
|
import { CardAction, CardProps, CardState } from '../..';
|
|
6
6
|
export declare type CardBaseProps = CardProps & WithAnalyticsEventsProps & Partial<WrappedComponentProps>;
|
|
7
7
|
export declare class CardBase extends Component<CardBaseProps, CardState> {
|
|
8
|
+
private internalOccurrenceKey;
|
|
8
9
|
private hasBeenMounted;
|
|
9
10
|
private viewportPreAnchorRef;
|
|
10
11
|
private viewportPostAnchorRef;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const generateUniqueId: () => string;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { CardStatus } from '../../src';
|
|
2
|
+
import { FileAttributes } from '@atlaskit/media-common';
|
|
3
|
+
import { SSRStatus } from './analytics';
|
|
4
|
+
import { MediaCardError } from '../errors';
|
|
5
|
+
export declare const startUfoExperience: (id: string) => void;
|
|
6
|
+
export declare const completeUfoExperience: (id: string, status: CardStatus, fileAttributes: FileAttributes, ssrReliability: SSRStatus, error?: MediaCardError | undefined) => void;
|
|
@@ -16,7 +16,7 @@ import FabricAnalyticsListeners, {
|
|
|
16
16
|
import AnnotateIcon from '@atlaskit/icon/glyph/media-services/annotate';
|
|
17
17
|
import { SelectableCard } from './selectableCard';
|
|
18
18
|
import { Card, CardAppearance, CardEvent, CardAction } from '../src';
|
|
19
|
-
import {
|
|
19
|
+
import { getRelevantFeatureFlagNames } from '../src/root/card/cardAnalytics';
|
|
20
20
|
import { MediaCardError } from '../src/errors';
|
|
21
21
|
import DevelopmentUseMessage from './developmentUseMessage';
|
|
22
22
|
|
|
@@ -134,7 +134,7 @@ export const MainWrapper: React.FC<MainWrapperProps> = ({
|
|
|
134
134
|
}) => (
|
|
135
135
|
<>
|
|
136
136
|
{developmentOnly && <DevelopmentUseMessage />}
|
|
137
|
-
<FeatureFlagsWrapper filterFlags={
|
|
137
|
+
<FeatureFlagsWrapper filterFlags={getRelevantFeatureFlagNames()}>
|
|
138
138
|
{children}
|
|
139
139
|
</FeatureFlagsWrapper>
|
|
140
140
|
</>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/media-card",
|
|
3
|
-
"version": "73.
|
|
3
|
+
"version": "73.5.0",
|
|
4
4
|
"description": "Includes all media card related components, CardView, CardViewSmall, Card...",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -17,7 +17,8 @@
|
|
|
17
17
|
"af:exports": {
|
|
18
18
|
"./types": "./src/types.ts",
|
|
19
19
|
".": "./src/index.ts",
|
|
20
|
-
"./in-product": "./src/in-product.ts"
|
|
20
|
+
"./in-product": "./src/in-product.ts",
|
|
21
|
+
"./classnames": "./src/classnames.ts"
|
|
21
22
|
},
|
|
22
23
|
"atlassian": {
|
|
23
24
|
"team": "Media Experience",
|
|
@@ -34,12 +35,13 @@
|
|
|
34
35
|
"@atlaskit/icon": "^21.10.0",
|
|
35
36
|
"@atlaskit/in-product-testing": "^0.1.0",
|
|
36
37
|
"@atlaskit/media-client": "^15.0.0",
|
|
37
|
-
"@atlaskit/media-common": "^2.
|
|
38
|
-
"@atlaskit/media-ui": "^21.
|
|
38
|
+
"@atlaskit/media-common": "^2.12.0",
|
|
39
|
+
"@atlaskit/media-ui": "^21.1.0",
|
|
39
40
|
"@atlaskit/media-viewer": "^46.2.0",
|
|
40
41
|
"@atlaskit/spinner": "^15.1.0",
|
|
41
42
|
"@atlaskit/theme": "^12.1.0",
|
|
42
43
|
"@atlaskit/tooltip": "^17.5.0",
|
|
44
|
+
"@atlaskit/ufo": "^0.1.0",
|
|
43
45
|
"@babel/runtime": "^7.0.0",
|
|
44
46
|
"classnames": "^2.2.5",
|
|
45
47
|
"eventemitter2": "^4.1.0",
|
|
@@ -61,7 +63,7 @@
|
|
|
61
63
|
"@atlaskit/docs": "*",
|
|
62
64
|
"@atlaskit/inline-message": "^11.2.0",
|
|
63
65
|
"@atlaskit/media-core": "^32.3.0",
|
|
64
|
-
"@atlaskit/media-test-helpers": "^29.
|
|
66
|
+
"@atlaskit/media-test-helpers": "^29.4.0",
|
|
65
67
|
"@atlaskit/radio": "^5.3.2",
|
|
66
68
|
"@atlaskit/range": "^6.0.0",
|
|
67
69
|
"@atlaskit/select": "^15.2.1",
|
|
@@ -80,7 +82,7 @@
|
|
|
80
82
|
"react": "^16.8.0",
|
|
81
83
|
"react-dom": "^16.8.0",
|
|
82
84
|
"react-intl-next": "npm:react-intl@^5.18.1",
|
|
83
|
-
"typescript": "3.9.
|
|
85
|
+
"typescript": "3.9.10",
|
|
84
86
|
"uuid": "^3.1.0",
|
|
85
87
|
"wait-for-expect": "^1.2.0"
|
|
86
88
|
},
|