@atlaskit/emoji 64.3.0 → 64.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 +22 -0
- package/dist/cjs/components/common/CachingEmoji.js +8 -6
- package/dist/cjs/components/common/RecordSelectionDefault.js +8 -2
- package/dist/cjs/components/common/ResourcedEmojiComponent.js +12 -17
- package/dist/cjs/components/common/UploadEmoji.js +8 -0
- package/dist/cjs/components/picker/EmojiPicker.js +13 -2
- package/dist/cjs/components/picker/EmojiPickerComponent.js +38 -18
- package/dist/cjs/components/picker/EmojiPickerList.js +0 -20
- package/dist/cjs/components/typeahead/EmojiTypeAheadComponent.js +28 -16
- package/dist/cjs/components/typeahead/EmojiTypeAheadItem.js +4 -2
- package/dist/cjs/components/uploader/EmojiUploadComponent.js +13 -0
- package/dist/cjs/context/EmojiContext.js +11 -0
- package/dist/cjs/context/EmojiContextProvider.js +29 -0
- package/dist/cjs/context/LegacyEmojiContextProvider.js +76 -0
- package/dist/cjs/index.js +18 -0
- package/dist/cjs/types.js +23 -2
- package/dist/cjs/util/analytics/analytics.js +11 -41
- package/dist/cjs/util/analytics/index.js +16 -14
- package/dist/cjs/util/analytics/ufoExperiences.js +48 -0
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/components/common/CachingEmoji.js +7 -5
- package/dist/es2019/components/common/RecordSelectionDefault.js +9 -2
- package/dist/es2019/components/common/ResourcedEmojiComponent.js +11 -16
- package/dist/es2019/components/common/UploadEmoji.js +4 -0
- package/dist/es2019/components/picker/EmojiPicker.js +9 -2
- package/dist/es2019/components/picker/EmojiPickerComponent.js +32 -18
- package/dist/es2019/components/picker/EmojiPickerList.js +0 -19
- package/dist/es2019/components/typeahead/EmojiTypeAheadComponent.js +23 -16
- package/dist/es2019/components/typeahead/EmojiTypeAheadItem.js +3 -2
- package/dist/es2019/components/uploader/EmojiUploadComponent.js +9 -0
- package/dist/es2019/context/EmojiContext.js +2 -0
- package/dist/es2019/context/EmojiContextProvider.js +11 -0
- package/dist/es2019/context/LegacyEmojiContextProvider.js +32 -0
- package/dist/es2019/index.js +3 -3
- package/dist/es2019/types.js +20 -1
- package/dist/es2019/util/analytics/analytics.js +16 -37
- package/dist/es2019/util/analytics/index.js +2 -1
- package/dist/es2019/util/analytics/ufoExperiences.js +35 -0
- package/dist/es2019/version.json +1 -1
- package/dist/esm/components/common/CachingEmoji.js +7 -5
- package/dist/esm/components/common/RecordSelectionDefault.js +6 -3
- package/dist/esm/components/common/ResourcedEmojiComponent.js +10 -16
- package/dist/esm/components/common/UploadEmoji.js +4 -0
- package/dist/esm/components/picker/EmojiPicker.js +8 -2
- package/dist/esm/components/picker/EmojiPickerComponent.js +33 -19
- package/dist/esm/components/picker/EmojiPickerList.js +0 -21
- package/dist/esm/components/typeahead/EmojiTypeAheadComponent.js +23 -17
- package/dist/esm/components/typeahead/EmojiTypeAheadItem.js +3 -2
- package/dist/esm/components/uploader/EmojiUploadComponent.js +10 -0
- package/dist/esm/context/EmojiContext.js +2 -0
- package/dist/esm/context/EmojiContextProvider.js +12 -0
- package/dist/esm/context/LegacyEmojiContextProvider.js +57 -0
- package/dist/esm/index.js +3 -3
- package/dist/esm/types.js +20 -1
- package/dist/esm/util/analytics/analytics.js +8 -33
- package/dist/esm/util/analytics/index.js +2 -1
- package/dist/esm/util/analytics/ufoExperiences.js +35 -0
- package/dist/esm/version.json +1 -1
- package/dist/types/components/common/CachingEmoji.d.ts +6 -8
- package/dist/types/components/common/ResourcedEmojiComponent.d.ts +0 -6
- package/dist/types/components/picker/EmojiPickerComponent.d.ts +0 -6
- package/dist/types/components/picker/EmojiPickerList.d.ts +0 -10
- package/dist/types/components/typeahead/EmojiTypeAheadComponent.d.ts +0 -6
- package/dist/types/components/uploader/EmojiUploadComponent.d.ts +1 -0
- package/dist/types/context/EmojiContext.d.ts +4 -0
- package/dist/types/context/EmojiContextProvider.d.ts +7 -0
- package/dist/types/context/LegacyEmojiContextProvider.d.ts +22 -0
- package/dist/types/index.d.ts +3 -3
- package/dist/types/types.d.ts +13 -0
- package/dist/types/util/analytics/analytics.d.ts +3 -7
- package/dist/types/util/analytics/index.d.ts +3 -2
- package/dist/types/util/analytics/ufoExperiences.d.ts +11 -0
- package/package.json +4 -3
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.default = void 0;
|
|
11
|
+
|
|
12
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
+
|
|
14
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
|
+
|
|
16
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
+
|
|
18
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
+
|
|
20
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
+
|
|
22
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
23
|
+
|
|
24
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
25
|
+
|
|
26
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
27
|
+
|
|
28
|
+
var _EmojiContextProvider = require("./EmojiContextProvider");
|
|
29
|
+
|
|
30
|
+
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); }
|
|
31
|
+
|
|
32
|
+
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; }
|
|
33
|
+
|
|
34
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
35
|
+
|
|
36
|
+
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; } }
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Legacy Context Priority Passthrough ...
|
|
40
|
+
* If component finds legacy context, then use it, otherwise use the passed through context
|
|
41
|
+
*/
|
|
42
|
+
var LegacyEmojiContextProvider = /*#__PURE__*/function (_Component) {
|
|
43
|
+
(0, _inherits2.default)(LegacyEmojiContextProvider, _Component);
|
|
44
|
+
|
|
45
|
+
var _super = _createSuper(LegacyEmojiContextProvider);
|
|
46
|
+
|
|
47
|
+
function LegacyEmojiContextProvider(props, context) {
|
|
48
|
+
var _this;
|
|
49
|
+
|
|
50
|
+
(0, _classCallCheck2.default)(this, LegacyEmojiContextProvider);
|
|
51
|
+
_this = _super.call(this, props, context);
|
|
52
|
+
_this.state = {
|
|
53
|
+
prioritisedContextValue: context.emoji ? context : _this.props.emojiContextValue
|
|
54
|
+
};
|
|
55
|
+
return _this;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
(0, _createClass2.default)(LegacyEmojiContextProvider, [{
|
|
59
|
+
key: "render",
|
|
60
|
+
value: function render() {
|
|
61
|
+
if (this.state.prioritisedContextValue) {
|
|
62
|
+
return /*#__PURE__*/_react.default.createElement(_EmojiContextProvider.EmojiContextProvider, {
|
|
63
|
+
emojiContextValue: this.state.prioritisedContextValue
|
|
64
|
+
}, this.props.children);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return this.props.children;
|
|
68
|
+
}
|
|
69
|
+
}]);
|
|
70
|
+
return LegacyEmojiContextProvider;
|
|
71
|
+
}(_react.Component);
|
|
72
|
+
|
|
73
|
+
exports.default = LegacyEmojiContextProvider;
|
|
74
|
+
(0, _defineProperty2.default)(LegacyEmojiContextProvider, "contextTypes", {
|
|
75
|
+
emoji: _propTypes.default.object
|
|
76
|
+
});
|
package/dist/cjs/index.js
CHANGED
|
@@ -77,6 +77,18 @@ Object.defineProperty(exports, "SearchSort", {
|
|
|
77
77
|
return _types.SearchSort;
|
|
78
78
|
}
|
|
79
79
|
});
|
|
80
|
+
Object.defineProperty(exports, "UfoComponentName", {
|
|
81
|
+
enumerable: true,
|
|
82
|
+
get: function get() {
|
|
83
|
+
return _types.UfoComponentName;
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
Object.defineProperty(exports, "UfoExperienceName", {
|
|
87
|
+
enumerable: true,
|
|
88
|
+
get: function get() {
|
|
89
|
+
return _types.UfoExperienceName;
|
|
90
|
+
}
|
|
91
|
+
});
|
|
80
92
|
Object.defineProperty(exports, "UsageFrequencyTracker", {
|
|
81
93
|
enumerable: true,
|
|
82
94
|
get: function get() {
|
|
@@ -168,6 +180,12 @@ Object.defineProperty(exports, "toOptionalEmojiId", {
|
|
|
168
180
|
return _typeHelpers.toOptionalEmojiId;
|
|
169
181
|
}
|
|
170
182
|
});
|
|
183
|
+
Object.defineProperty(exports, "ufoExperiences", {
|
|
184
|
+
enumerable: true,
|
|
185
|
+
get: function get() {
|
|
186
|
+
return _analytics.ufoExperiences;
|
|
187
|
+
}
|
|
188
|
+
});
|
|
171
189
|
|
|
172
190
|
var _utilServiceSupport = require("@atlaskit/util-service-support");
|
|
173
191
|
|
package/dist/cjs/types.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.SearchSort = exports.ProviderTypes = void 0;
|
|
6
|
+
exports.UfoExperienceName = exports.UfoComponentName = exports.SearchSort = exports.ProviderTypes = void 0;
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Minimum information to defined an emoji is the shortName.
|
|
@@ -51,4 +51,25 @@ exports.ProviderTypes = ProviderTypes;
|
|
|
51
51
|
ProviderTypes["STANDARD"] = "STANDARD";
|
|
52
52
|
ProviderTypes["ATLASSIAN"] = "ATLASSIAN";
|
|
53
53
|
ProviderTypes["UNKNOWN"] = "UNKNOWN";
|
|
54
|
-
})(ProviderTypes || (exports.ProviderTypes = ProviderTypes = {}));
|
|
54
|
+
})(ProviderTypes || (exports.ProviderTypes = ProviderTypes = {}));
|
|
55
|
+
|
|
56
|
+
var UfoExperienceName;
|
|
57
|
+
exports.UfoExperienceName = UfoExperienceName;
|
|
58
|
+
|
|
59
|
+
(function (UfoExperienceName) {
|
|
60
|
+
UfoExperienceName["EMOJI_RENDERED"] = "emoji-rendered";
|
|
61
|
+
UfoExperienceName["EMOJI_RESOURCE_FETCHED"] = "emoji-resource-fetched";
|
|
62
|
+
UfoExperienceName["EMOJI_PICKER_OPENED"] = "emoji-picker-opened";
|
|
63
|
+
UfoExperienceName["EMOJI_SELECTION_RECORDED"] = "emoji-selection-recorded";
|
|
64
|
+
UfoExperienceName["EMOJI_UPLOADED"] = "emoji-uploaded";
|
|
65
|
+
UfoExperienceName["EMOJI_SEARCHED"] = "emoji-searched";
|
|
66
|
+
})(UfoExperienceName || (exports.UfoExperienceName = UfoExperienceName = {}));
|
|
67
|
+
|
|
68
|
+
var UfoComponentName;
|
|
69
|
+
exports.UfoComponentName = UfoComponentName;
|
|
70
|
+
|
|
71
|
+
(function (UfoComponentName) {
|
|
72
|
+
UfoComponentName["EMOJI"] = "emoji";
|
|
73
|
+
UfoComponentName["EMOJI_PICKER"] = "emoji-picker";
|
|
74
|
+
UfoComponentName["EMOJI_PROVIDER"] = "emoji-provider";
|
|
75
|
+
})(UfoComponentName || (exports.UfoComponentName = UfoComponentName = {}));
|
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.uploadSucceededEvent = exports.uploadFailedEvent = exports.uploadConfirmButton = exports.uploadCancelButton = exports.uploadBeginButton = exports.
|
|
8
|
+
exports.uploadSucceededEvent = exports.uploadFailedEvent = exports.uploadConfirmButton = exports.uploadCancelButton = exports.uploadBeginButton = exports.typeaheadSelectedEvent = exports.typeaheadRenderedEvent = exports.typeaheadCancelledEvent = exports.toneSelectorOpenedEvent = exports.toneSelectorClosedEvent = exports.toneSelectedEvent = exports.selectedFileEvent = exports.recordSucceeded = exports.recordSelectionSucceededSli = exports.recordSelectionFailedSli = exports.recordFailed = exports.pickerSearchedEvent = exports.pickerClickedEvent = exports.openedPickerEvent = exports.deleteConfirmEvent = exports.deleteCancelEvent = exports.deleteBeginEvent = exports.createAndFireEventInElementsChannel = exports.closedPickerEvent = exports.categoryClickedEvent = void 0;
|
|
9
9
|
|
|
10
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
11
|
|
|
@@ -13,10 +13,6 @@ var _analyticsNext = require("@atlaskit/analytics-next");
|
|
|
13
13
|
|
|
14
14
|
var _version = require("../../version.json");
|
|
15
15
|
|
|
16
|
-
var _ufo = require("@atlaskit/ufo");
|
|
17
|
-
|
|
18
|
-
var _samplingUfo = require("./samplingUfo");
|
|
19
|
-
|
|
20
16
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
21
17
|
|
|
22
18
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
@@ -27,34 +23,6 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
27
23
|
|
|
28
24
|
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; }
|
|
29
25
|
|
|
30
|
-
var createRenderExperience = function createRenderExperience(componentName) {
|
|
31
|
-
return {
|
|
32
|
-
platform: {
|
|
33
|
-
component: componentName
|
|
34
|
-
},
|
|
35
|
-
type: _ufo.ExperienceTypes.Load,
|
|
36
|
-
performanceType: _ufo.ExperiencePerformanceTypes.PageSegmentLoad
|
|
37
|
-
};
|
|
38
|
-
}; // const createInlineExperience = (componentName: string) => {
|
|
39
|
-
// return {
|
|
40
|
-
// platform: { component: componentName },
|
|
41
|
-
// type: ExperienceTypes.Experience,
|
|
42
|
-
// performanceType: ExperiencePerformanceTypes.InlineResult,
|
|
43
|
-
// };
|
|
44
|
-
// };
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
var ufoExperiences = {
|
|
48
|
-
'emoji-rendered': new _ufo.ConcurrentExperience('emoji-rendered', createRenderExperience('emoji')),
|
|
49
|
-
'emoji-resource-fetched': new _ufo.ConcurrentExperience('emoji-resource-fetched', createRenderExperience('emoji-provider'))
|
|
50
|
-
};
|
|
51
|
-
exports.ufoExperiences = ufoExperiences;
|
|
52
|
-
|
|
53
|
-
var sampledUfoRenderedEmoji = function sampledUfoRenderedEmoji(emojiId) {
|
|
54
|
-
return (0, _samplingUfo.withSampling)(ufoExperiences['emoji-rendered'].getInstance(emojiId.id || emojiId.shortName));
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
exports.sampledUfoRenderedEmoji = sampledUfoRenderedEmoji;
|
|
58
26
|
var createAndFireEventInElementsChannel = (0, _analyticsNext.createAndFireEvent)('fabric-elements');
|
|
59
27
|
exports.createAndFireEventInElementsChannel = createAndFireEventInElementsChannel;
|
|
60
28
|
|
|
@@ -72,21 +40,21 @@ var createEvent = function createEvent(eventType, action, actionSubject, actionS
|
|
|
72
40
|
};
|
|
73
41
|
};
|
|
74
42
|
|
|
75
|
-
var
|
|
43
|
+
var recordSucceeded = function recordSucceeded(source) {
|
|
76
44
|
return createEvent('operational', 'succeeded', 'recordEmojiSelection', undefined, {
|
|
77
45
|
source: source
|
|
78
46
|
});
|
|
79
47
|
};
|
|
80
48
|
|
|
81
|
-
exports.
|
|
49
|
+
exports.recordSucceeded = recordSucceeded;
|
|
82
50
|
|
|
83
|
-
var
|
|
51
|
+
var recordFailed = function recordFailed(source) {
|
|
84
52
|
return createEvent('operational', 'failed', 'recordEmojiSelection', undefined, {
|
|
85
53
|
source: source
|
|
86
54
|
});
|
|
87
55
|
};
|
|
88
56
|
|
|
89
|
-
exports.
|
|
57
|
+
exports.recordFailed = recordFailed;
|
|
90
58
|
|
|
91
59
|
var emojiPickerEvent = function emojiPickerEvent(action) {
|
|
92
60
|
var attributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
@@ -296,24 +264,26 @@ var typeaheadRenderedEvent = function typeaheadRenderedEvent(duration, query, em
|
|
|
296
264
|
return createEvent('operational', 'rendered', 'emojiTypeahead', undefined, _objectSpread({
|
|
297
265
|
duration: duration
|
|
298
266
|
}, extractCommonAttributes(query, emojiList)));
|
|
299
|
-
};
|
|
267
|
+
}; // it's used in editor typeahead to fire success record analytics
|
|
268
|
+
|
|
300
269
|
|
|
301
270
|
exports.typeaheadRenderedEvent = typeaheadRenderedEvent;
|
|
302
271
|
|
|
303
272
|
var recordSelectionSucceededSli = function recordSelectionSucceededSli(options) {
|
|
304
273
|
return function () {
|
|
305
274
|
if (options && options.createAnalyticsEvent) {
|
|
306
|
-
(0, _analyticsNext.createAndFireEvent)('editor')(
|
|
275
|
+
(0, _analyticsNext.createAndFireEvent)('editor')(recordSucceeded('typeahead'))(options.createAnalyticsEvent);
|
|
307
276
|
}
|
|
308
277
|
};
|
|
309
|
-
};
|
|
278
|
+
}; // it's used in editor typeahead to fire failure record analytics
|
|
279
|
+
|
|
310
280
|
|
|
311
281
|
exports.recordSelectionSucceededSli = recordSelectionSucceededSli;
|
|
312
282
|
|
|
313
283
|
var recordSelectionFailedSli = function recordSelectionFailedSli(options) {
|
|
314
284
|
return function (err) {
|
|
315
285
|
if (options && options.createAnalyticsEvent) {
|
|
316
|
-
(0, _analyticsNext.createAndFireEvent)('editor')(
|
|
286
|
+
(0, _analyticsNext.createAndFireEvent)('editor')(recordFailed('typeahead'))(options.createAnalyticsEvent);
|
|
317
287
|
}
|
|
318
288
|
|
|
319
289
|
return Promise.reject(err);
|
|
@@ -45,18 +45,6 @@ Object.defineProperty(exports, "deleteConfirmEvent", {
|
|
|
45
45
|
return _analytics.deleteConfirmEvent;
|
|
46
46
|
}
|
|
47
47
|
});
|
|
48
|
-
Object.defineProperty(exports, "insertionFailed", {
|
|
49
|
-
enumerable: true,
|
|
50
|
-
get: function get() {
|
|
51
|
-
return _analytics.insertionFailed;
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
Object.defineProperty(exports, "insertionSucceeded", {
|
|
55
|
-
enumerable: true,
|
|
56
|
-
get: function get() {
|
|
57
|
-
return _analytics.insertionSucceeded;
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
48
|
Object.defineProperty(exports, "isExperienceSampled", {
|
|
61
49
|
enumerable: true,
|
|
62
50
|
get: function get() {
|
|
@@ -81,6 +69,12 @@ Object.defineProperty(exports, "pickerSearchedEvent", {
|
|
|
81
69
|
return _analytics.pickerSearchedEvent;
|
|
82
70
|
}
|
|
83
71
|
});
|
|
72
|
+
Object.defineProperty(exports, "recordFailed", {
|
|
73
|
+
enumerable: true,
|
|
74
|
+
get: function get() {
|
|
75
|
+
return _analytics.recordFailed;
|
|
76
|
+
}
|
|
77
|
+
});
|
|
84
78
|
Object.defineProperty(exports, "recordSelectionFailedSli", {
|
|
85
79
|
enumerable: true,
|
|
86
80
|
get: function get() {
|
|
@@ -93,10 +87,16 @@ Object.defineProperty(exports, "recordSelectionSucceededSli", {
|
|
|
93
87
|
return _analytics.recordSelectionSucceededSli;
|
|
94
88
|
}
|
|
95
89
|
});
|
|
90
|
+
Object.defineProperty(exports, "recordSucceeded", {
|
|
91
|
+
enumerable: true,
|
|
92
|
+
get: function get() {
|
|
93
|
+
return _analytics.recordSucceeded;
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
96
|
Object.defineProperty(exports, "sampledUfoRenderedEmoji", {
|
|
97
97
|
enumerable: true,
|
|
98
98
|
get: function get() {
|
|
99
|
-
return
|
|
99
|
+
return _ufoExperiences.sampledUfoRenderedEmoji;
|
|
100
100
|
}
|
|
101
101
|
});
|
|
102
102
|
Object.defineProperty(exports, "selectedFileEvent", {
|
|
@@ -144,7 +144,7 @@ Object.defineProperty(exports, "typeaheadSelectedEvent", {
|
|
|
144
144
|
Object.defineProperty(exports, "ufoExperiences", {
|
|
145
145
|
enumerable: true,
|
|
146
146
|
get: function get() {
|
|
147
|
-
return
|
|
147
|
+
return _ufoExperiences.ufoExperiences;
|
|
148
148
|
}
|
|
149
149
|
});
|
|
150
150
|
Object.defineProperty(exports, "ufoExperiencesSampled", {
|
|
@@ -200,4 +200,6 @@ var _samplingUfo = require("./samplingUfo");
|
|
|
200
200
|
|
|
201
201
|
var _analytics = require("./analytics");
|
|
202
202
|
|
|
203
|
+
var _ufoExperiences = require("./ufoExperiences");
|
|
204
|
+
|
|
203
205
|
var _useSampledUFOComponentExperience = require("./useSampledUFOComponentExperience");
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ufoExperiences = exports.sampledUfoRenderedEmoji = void 0;
|
|
7
|
+
|
|
8
|
+
var _types = require("../../types");
|
|
9
|
+
|
|
10
|
+
var _ufo = require("@atlaskit/ufo");
|
|
11
|
+
|
|
12
|
+
var _samplingUfo = require("./samplingUfo");
|
|
13
|
+
|
|
14
|
+
var createRenderExperience = function createRenderExperience(componentName) {
|
|
15
|
+
return {
|
|
16
|
+
platform: {
|
|
17
|
+
component: componentName
|
|
18
|
+
},
|
|
19
|
+
type: _ufo.ExperienceTypes.Load,
|
|
20
|
+
performanceType: _ufo.ExperiencePerformanceTypes.PageSegmentLoad
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
var createInlineExperience = function createInlineExperience(componentName) {
|
|
25
|
+
return {
|
|
26
|
+
platform: {
|
|
27
|
+
component: componentName
|
|
28
|
+
},
|
|
29
|
+
type: _ufo.ExperienceTypes.Experience,
|
|
30
|
+
performanceType: _ufo.ExperiencePerformanceTypes.InlineResult
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
var ufoExperiences = {
|
|
35
|
+
'emoji-rendered': new _ufo.ConcurrentExperience(_types.UfoExperienceName.EMOJI_RENDERED, createRenderExperience(_types.UfoComponentName.EMOJI)),
|
|
36
|
+
'emoji-resource-fetched': new _ufo.ConcurrentExperience(_types.UfoExperienceName.EMOJI_RESOURCE_FETCHED, createRenderExperience(_types.UfoComponentName.EMOJI_PROVIDER)),
|
|
37
|
+
'emoji-picker-opened': new _ufo.UFOExperience(_types.UfoExperienceName.EMOJI_PICKER_OPENED, createRenderExperience(_types.UfoComponentName.EMOJI_PICKER)),
|
|
38
|
+
'emoji-selection-recorded': new _ufo.UFOExperience(_types.UfoExperienceName.EMOJI_SELECTION_RECORDED, createInlineExperience(_types.UfoComponentName.EMOJI_PROVIDER)),
|
|
39
|
+
'emoji-uploaded': new _ufo.UFOExperience(_types.UfoExperienceName.EMOJI_UPLOADED, createInlineExperience(_types.UfoComponentName.EMOJI_PICKER)),
|
|
40
|
+
'emoji-searched': new _ufo.UFOExperience(_types.UfoExperienceName.EMOJI_SEARCHED, createInlineExperience(_types.UfoComponentName.EMOJI_PICKER))
|
|
41
|
+
};
|
|
42
|
+
exports.ufoExperiences = ufoExperiences;
|
|
43
|
+
|
|
44
|
+
var sampledUfoRenderedEmoji = function sampledUfoRenderedEmoji(emojiId) {
|
|
45
|
+
return (0, _samplingUfo.withSampling)(ufoExperiences['emoji-rendered'].getInstance(emojiId.id || emojiId.shortName));
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
exports.sampledUfoRenderedEmoji = sampledUfoRenderedEmoji;
|
package/dist/cjs/version.json
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
2
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
|
-
import PropTypes from 'prop-types';
|
|
4
3
|
import React from 'react';
|
|
5
4
|
import { PureComponent } from 'react';
|
|
6
5
|
import { shouldUseAltRepresentation } from '../../api/EmojiUtils';
|
|
@@ -11,6 +10,7 @@ import EmojiPlaceholder from './EmojiPlaceholder';
|
|
|
11
10
|
import { UfoErrorBoundary } from './UfoErrorBoundary';
|
|
12
11
|
import { sampledUfoRenderedEmoji, ufoExperiences, useSampledUFOComponentExperience } from '../../util/analytics';
|
|
13
12
|
import { SAMPLING_RATE_EMOJI_RENDERED_EXP } from '../../util/constants';
|
|
13
|
+
import { EmojiContext } from '../../context/EmojiContext';
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* Renders an emoji from a cached image, if required.
|
|
@@ -46,7 +46,7 @@ export const CachingEmoji = props => {
|
|
|
46
46
|
|
|
47
47
|
export class CachingMediaEmoji extends PureComponent {
|
|
48
48
|
constructor(props, context) {
|
|
49
|
-
super(props
|
|
49
|
+
super(props);
|
|
50
50
|
|
|
51
51
|
_defineProperty(this, "mounted", false);
|
|
52
52
|
|
|
@@ -95,6 +95,10 @@ export class CachingMediaEmoji extends PureComponent {
|
|
|
95
95
|
}
|
|
96
96
|
|
|
97
97
|
loadEmoji(emoji, context, forceLoad) {
|
|
98
|
+
if (!context) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
|
|
98
102
|
if (!context.emoji) {
|
|
99
103
|
return undefined;
|
|
100
104
|
}
|
|
@@ -192,8 +196,6 @@ export class CachingMediaEmoji extends PureComponent {
|
|
|
192
196
|
|
|
193
197
|
}
|
|
194
198
|
|
|
195
|
-
_defineProperty(CachingMediaEmoji, "
|
|
196
|
-
emoji: PropTypes.object
|
|
197
|
-
});
|
|
199
|
+
_defineProperty(CachingMediaEmoji, "contextType", EmojiContext);
|
|
198
200
|
|
|
199
201
|
export default CachingEmoji;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { recordFailed, recordSucceeded, ufoExperiences } from '../../util/analytics';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* A function that will wrap any configured Emoji 'onSelection' function to ensure recordSelection is always
|
|
@@ -12,7 +12,14 @@ export const createRecordSelectionDefault = (provider, onSelect, fireAnalytics)
|
|
|
12
12
|
return (emojiId, emoji, event) => {
|
|
13
13
|
try {
|
|
14
14
|
if (provider.recordSelection && emoji) {
|
|
15
|
-
|
|
15
|
+
ufoExperiences['emoji-selection-recorded'].start();
|
|
16
|
+
provider.recordSelection(emoji).then(() => {
|
|
17
|
+
fireAnalytics && fireAnalytics(recordSucceeded);
|
|
18
|
+
ufoExperiences['emoji-selection-recorded'].success();
|
|
19
|
+
}).catch(() => {
|
|
20
|
+
fireAnalytics && fireAnalytics(recordFailed);
|
|
21
|
+
ufoExperiences['emoji-selection-recorded'].failure();
|
|
22
|
+
});
|
|
16
23
|
}
|
|
17
24
|
} finally {
|
|
18
25
|
if (onSelect) {
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
-
import PropTypes from 'prop-types';
|
|
3
2
|
import React from 'react';
|
|
4
3
|
import { Component } from 'react';
|
|
5
4
|
import { defaultEmojiHeight } from '../../util/constants';
|
|
@@ -7,6 +6,7 @@ import { isPromise } from '../../util/type-helpers';
|
|
|
7
6
|
import CachingEmoji from './CachingEmoji';
|
|
8
7
|
import EmojiPlaceholder from './EmojiPlaceholder';
|
|
9
8
|
import { sampledUfoRenderedEmoji } from '../../util/analytics';
|
|
9
|
+
import LegacyEmojiContextProvider from '../../context/LegacyEmojiContextProvider';
|
|
10
10
|
export default class ResourcedEmojiComponent extends Component {
|
|
11
11
|
constructor(props) {
|
|
12
12
|
super(props);
|
|
@@ -19,14 +19,6 @@ export default class ResourcedEmojiComponent extends Component {
|
|
|
19
19
|
};
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
getChildContext() {
|
|
23
|
-
return {
|
|
24
|
-
emoji: {
|
|
25
|
-
emojiProvider: this.props.emojiProvider
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
|
|
30
22
|
refreshEmoji(emojiProvider, emojiId) {
|
|
31
23
|
const foundEmoji = emojiProvider.findByEmojiId(emojiId);
|
|
32
24
|
|
|
@@ -126,15 +118,18 @@ export default class ResourcedEmojiComponent extends Component {
|
|
|
126
118
|
id,
|
|
127
119
|
fallback
|
|
128
120
|
} = this.props.emojiId;
|
|
129
|
-
|
|
121
|
+
const emojiContextValue = {
|
|
122
|
+
emoji: {
|
|
123
|
+
emojiProvider: this.props.emojiProvider
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
return /*#__PURE__*/React.createElement(LegacyEmojiContextProvider, {
|
|
127
|
+
emojiContextValue: emojiContextValue
|
|
128
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
130
129
|
"data-emoji-id": id,
|
|
131
130
|
"data-emoji-short-name": shortName,
|
|
132
131
|
"data-emoji-text": fallback || shortName
|
|
133
|
-
}, element);
|
|
132
|
+
}, element));
|
|
134
133
|
}
|
|
135
134
|
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
_defineProperty(ResourcedEmojiComponent, "childContextTypes", {
|
|
139
|
-
emoji: PropTypes.object
|
|
140
|
-
});
|
|
135
|
+
}
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
import { supportsUploadFeature } from '../../api/EmojiResource';
|
|
2
2
|
import { uploadFailedEvent, uploadSucceededEvent } from '../../util/analytics';
|
|
3
3
|
import { messages } from '../i18n';
|
|
4
|
+
import { ufoExperiences } from '../../util/analytics/ufoExperiences';
|
|
4
5
|
export const uploadEmoji = (upload, emojiProvider, errorSetter, onSuccess, fireAnalytics) => {
|
|
5
6
|
const startTime = Date.now();
|
|
6
7
|
errorSetter(undefined);
|
|
7
8
|
|
|
8
9
|
if (supportsUploadFeature(emojiProvider)) {
|
|
10
|
+
ufoExperiences['emoji-uploaded'].start();
|
|
9
11
|
emojiProvider.uploadCustomEmoji(upload).then(emojiDescription => {
|
|
10
12
|
fireAnalytics(uploadSucceededEvent({
|
|
11
13
|
duration: Date.now() - startTime
|
|
12
14
|
}));
|
|
13
15
|
onSuccess(emojiDescription);
|
|
16
|
+
ufoExperiences['emoji-uploaded'].success();
|
|
14
17
|
}).catch(err => {
|
|
15
18
|
errorSetter(messages.emojiUploadFailed); // eslint-disable-next-line no-console
|
|
16
19
|
|
|
@@ -19,6 +22,7 @@ export const uploadEmoji = (upload, emojiProvider, errorSetter, onSuccess, fireA
|
|
|
19
22
|
duration: Date.now() - startTime,
|
|
20
23
|
reason: messages.emojiUploadFailed.defaultMessage
|
|
21
24
|
}));
|
|
25
|
+
ufoExperiences['emoji-uploaded'].failure();
|
|
22
26
|
});
|
|
23
27
|
}
|
|
24
28
|
};
|
|
@@ -4,9 +4,11 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
|
4
4
|
/** @jsx jsx */
|
|
5
5
|
import { jsx } from '@emotion/core';
|
|
6
6
|
import { withAnalyticsEvents } from '@atlaskit/analytics-next';
|
|
7
|
+
import { ufoExperiences } from '../../util/analytics';
|
|
7
8
|
import LoadingEmojiComponent from '../common/LoadingEmojiComponent';
|
|
8
9
|
import { LoadingItem } from './EmojiPickerVirtualItems';
|
|
9
10
|
import { emojiPicker } from './styles';
|
|
11
|
+
import { UfoErrorBoundary } from '../common/UfoErrorBoundary';
|
|
10
12
|
|
|
11
13
|
const emojiPickerModuleLoader = () => import(
|
|
12
14
|
/* webpackChunkName:"@atlaskit-internal_emojiPickerComponent" */
|
|
@@ -23,6 +25,8 @@ export class EmojiPickerInternal extends LoadingEmojiComponent {
|
|
|
23
25
|
_defineProperty(this, "state", {
|
|
24
26
|
asyncLoadedComponent: EmojiPickerInternal.AsyncLoadedComponent
|
|
25
27
|
});
|
|
28
|
+
|
|
29
|
+
ufoExperiences['emoji-picker-opened'].start();
|
|
26
30
|
}
|
|
27
31
|
|
|
28
32
|
asyncLoadComponent() {
|
|
@@ -41,6 +45,7 @@ export class EmojiPickerInternal extends LoadingEmojiComponent {
|
|
|
41
45
|
}
|
|
42
46
|
};
|
|
43
47
|
|
|
48
|
+
ufoExperiences['emoji-picker-opened'].markFMP();
|
|
44
49
|
return jsx("div", {
|
|
45
50
|
css: emojiPicker,
|
|
46
51
|
ref: handlePickerRef
|
|
@@ -52,9 +57,11 @@ export class EmojiPickerInternal extends LoadingEmojiComponent {
|
|
|
52
57
|
emojiProvider,
|
|
53
58
|
...otherProps
|
|
54
59
|
} = this.props;
|
|
55
|
-
return jsx(
|
|
60
|
+
return jsx(UfoErrorBoundary, {
|
|
61
|
+
experiences: [ufoExperiences['emoji-picker-opened']]
|
|
62
|
+
}, jsx(EmojiPickerComponent, _extends({
|
|
56
63
|
emojiProvider: loadedEmojiProvider
|
|
57
|
-
}, otherProps));
|
|
64
|
+
}, otherProps)));
|
|
58
65
|
}
|
|
59
66
|
|
|
60
67
|
}
|