@atlaskit/emoji 67.0.4 → 67.0.6

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 (279) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cjs/admin.js +0 -2
  3. package/dist/cjs/api/EmojiLoader.js +1 -8
  4. package/dist/cjs/api/EmojiRepository.js +16 -80
  5. package/dist/cjs/api/EmojiRepositoryRegex.js +2 -0
  6. package/dist/cjs/api/EmojiResource.js +20 -170
  7. package/dist/cjs/api/EmojiUtils.js +27 -67
  8. package/dist/cjs/api/internal/Comparators.js +8 -62
  9. package/dist/cjs/api/internal/UsageFrequencyTracker.js +4 -34
  10. package/dist/cjs/api/media/MediaEmojiCache.js +8 -58
  11. package/dist/cjs/api/media/MediaImageLoader.js +4 -28
  12. package/dist/cjs/api/media/SiteEmojiResource.js +14 -55
  13. package/dist/cjs/api/media/TokenManager.js +4 -18
  14. package/dist/cjs/components/common/CachingEmoji.js +18 -52
  15. package/dist/cjs/components/common/DeleteButton.js +0 -10
  16. package/dist/cjs/components/common/Emoji.js +44 -102
  17. package/dist/cjs/components/common/EmojiActions.js +25 -61
  18. package/dist/cjs/components/common/EmojiButton.js +5 -18
  19. package/dist/cjs/components/common/EmojiDeletePreview.js +7 -38
  20. package/dist/cjs/components/common/EmojiErrorMessage.js +3 -9
  21. package/dist/cjs/components/common/EmojiPlaceholder.js +7 -16
  22. package/dist/cjs/components/common/EmojiPreviewComponent.js +1 -6
  23. package/dist/cjs/components/common/EmojiUploadPicker.js +31 -86
  24. package/dist/cjs/components/common/EmojiUploadPreview.js +7 -36
  25. package/dist/cjs/components/common/FileChooser.js +5 -18
  26. package/dist/cjs/components/common/LoadingEmojiComponent.js +5 -24
  27. package/dist/cjs/components/common/Popup.js +16 -44
  28. package/dist/cjs/components/common/RecordSelectionDefault.js +0 -7
  29. package/dist/cjs/components/common/ResourcedEmoji.js +0 -15
  30. package/dist/cjs/components/common/ResourcedEmojiComponent.js +29 -69
  31. package/dist/cjs/components/common/RetryableButton.js +4 -19
  32. package/dist/cjs/components/common/Scrollable.js +6 -36
  33. package/dist/cjs/components/common/ToneSelector.js +3 -24
  34. package/dist/cjs/components/common/UfoErrorBoundary.js +1 -19
  35. package/dist/cjs/components/common/UploadEmoji.js +2 -13
  36. package/dist/cjs/components/common/internal-types.js +0 -1
  37. package/dist/cjs/components/common/setSkinToneAriaLabelText.js +0 -6
  38. package/dist/cjs/components/common/styles.js +9 -17
  39. package/dist/cjs/components/hooks.js +0 -2
  40. package/dist/cjs/components/i18n.js +0 -2
  41. package/dist/cjs/components/picker/CategorySelector.js +4 -50
  42. package/dist/cjs/components/picker/CategoryTracker.js +3 -14
  43. package/dist/cjs/components/picker/EmojiPicker.js +3 -42
  44. package/dist/cjs/components/picker/EmojiPickerCategoryHeading.js +2 -10
  45. package/dist/cjs/components/picker/EmojiPickerComponent.js +59 -140
  46. package/dist/cjs/components/picker/EmojiPickerEmojiRow.js +7 -14
  47. package/dist/cjs/components/picker/EmojiPickerFooter.js +1 -8
  48. package/dist/cjs/components/picker/EmojiPickerList.js +32 -83
  49. package/dist/cjs/components/picker/EmojiPickerListSearch.js +11 -48
  50. package/dist/cjs/components/picker/EmojiPickerSizes.js +1 -2
  51. package/dist/cjs/components/picker/EmojiPickerVirtualItems.js +1 -38
  52. package/dist/cjs/components/picker/VirtualList.js +11 -41
  53. package/dist/cjs/components/picker/categories.js +0 -14
  54. package/dist/cjs/components/picker/styles.js +15 -20
  55. package/dist/cjs/components/picker/utils.js +0 -4
  56. package/dist/cjs/components/typeahead/EmojiTypeAhead.js +10 -45
  57. package/dist/cjs/components/typeahead/EmojiTypeAheadComponent.js +11 -74
  58. package/dist/cjs/components/typeahead/EmojiTypeAheadItem.js +7 -37
  59. package/dist/cjs/components/typeahead/EmojiTypeAheadList.js +10 -63
  60. package/dist/cjs/components/typeahead/styles.js +2 -4
  61. package/dist/cjs/components/uploader/EmojiUploadComponent.js +6 -42
  62. package/dist/cjs/components/uploader/EmojiUploader.js +3 -31
  63. package/dist/cjs/components/uploader/styles.js +3 -4
  64. package/dist/cjs/context/EmojiCommonProvider.js +0 -6
  65. package/dist/cjs/context/EmojiContext.js +0 -2
  66. package/dist/cjs/context/EmojiContextProvider.js +1 -17
  67. package/dist/cjs/element.js +0 -4
  68. package/dist/cjs/hooks/useEmoji.js +5 -20
  69. package/dist/cjs/hooks/useEmojiContext.js +0 -4
  70. package/dist/cjs/hooks/usePrevious.js +0 -2
  71. package/dist/cjs/i18n/cs.js +0 -1
  72. package/dist/cjs/i18n/da.js +0 -1
  73. package/dist/cjs/i18n/de.js +0 -1
  74. package/dist/cjs/i18n/en.js +0 -1
  75. package/dist/cjs/i18n/en_GB.js +0 -1
  76. package/dist/cjs/i18n/en_ZZ.js +0 -1
  77. package/dist/cjs/i18n/es.js +0 -1
  78. package/dist/cjs/i18n/et.js +0 -1
  79. package/dist/cjs/i18n/fi.js +0 -1
  80. package/dist/cjs/i18n/fr.js +0 -1
  81. package/dist/cjs/i18n/hu.js +0 -1
  82. package/dist/cjs/i18n/index.js +0 -30
  83. package/dist/cjs/i18n/it.js +0 -1
  84. package/dist/cjs/i18n/ja.js +0 -1
  85. package/dist/cjs/i18n/ko.js +0 -1
  86. package/dist/cjs/i18n/nb.js +0 -1
  87. package/dist/cjs/i18n/nl.js +0 -1
  88. package/dist/cjs/i18n/pl.js +0 -1
  89. package/dist/cjs/i18n/pt_BR.js +0 -1
  90. package/dist/cjs/i18n/pt_PT.js +0 -1
  91. package/dist/cjs/i18n/ru.js +0 -1
  92. package/dist/cjs/i18n/sk.js +0 -1
  93. package/dist/cjs/i18n/sv.js +0 -1
  94. package/dist/cjs/i18n/th.js +0 -1
  95. package/dist/cjs/i18n/tr.js +0 -1
  96. package/dist/cjs/i18n/uk.js +0 -1
  97. package/dist/cjs/i18n/vi.js +0 -1
  98. package/dist/cjs/i18n/zh.js +0 -1
  99. package/dist/cjs/i18n/zh_TW.js +0 -1
  100. package/dist/cjs/index.js +0 -24
  101. package/dist/cjs/picker.js +0 -2
  102. package/dist/cjs/resource.js +0 -5
  103. package/dist/cjs/typeahead.js +0 -3
  104. package/dist/cjs/types.js +0 -17
  105. package/dist/cjs/util/DuplicateLimitedQueue.js +13 -31
  106. package/dist/cjs/util/StoredDuplicateLimitedQueue.js +4 -26
  107. package/dist/cjs/util/analytics/analytics.js +14 -97
  108. package/dist/cjs/util/analytics/index.js +0 -4
  109. package/dist/cjs/util/analytics/samplingUfo.js +3 -59
  110. package/dist/cjs/util/analytics/ufoExperiences.js +0 -12
  111. package/dist/cjs/util/analytics/useSampledUFOComponentExperience.js +3 -10
  112. package/dist/cjs/util/constants.js +5 -5
  113. package/dist/cjs/util/filters.js +0 -4
  114. package/dist/cjs/util/image.js +3 -18
  115. package/dist/cjs/util/logger.js +0 -6
  116. package/dist/cjs/util/mouse.js +3 -6
  117. package/dist/cjs/util/shared-styles.js +0 -4
  118. package/dist/cjs/util/storage-available.js +10 -8
  119. package/dist/cjs/util/type-helpers.js +2 -57
  120. package/dist/cjs/util/useInView.js +0 -6
  121. package/dist/cjs/utils.js +0 -3
  122. package/dist/cjs/version.json +1 -1
  123. package/dist/es2019/api/EmojiLoader.js +2 -4
  124. package/dist/es2019/api/EmojiRepository.js +15 -82
  125. package/dist/es2019/api/EmojiRepositoryRegex.js +2 -0
  126. package/dist/es2019/api/EmojiResource.js +21 -114
  127. package/dist/es2019/api/EmojiUtils.js +11 -18
  128. package/dist/es2019/api/internal/Comparators.js +12 -48
  129. package/dist/es2019/api/internal/UsageFrequencyTracker.js +7 -24
  130. package/dist/es2019/api/media/MediaEmojiCache.js +9 -52
  131. package/dist/es2019/api/media/MediaImageLoader.js +2 -16
  132. package/dist/es2019/api/media/SiteEmojiResource.js +11 -31
  133. package/dist/es2019/api/media/TokenManager.js +4 -14
  134. package/dist/es2019/components/common/CachingEmoji.js +5 -12
  135. package/dist/es2019/components/common/DeleteButton.js +2 -3
  136. package/dist/es2019/components/common/Emoji.js +19 -47
  137. package/dist/es2019/components/common/EmojiActions.js +3 -16
  138. package/dist/es2019/components/common/EmojiButton.js +0 -5
  139. package/dist/es2019/components/common/EmojiDeletePreview.js +0 -11
  140. package/dist/es2019/components/common/EmojiErrorMessage.js +1 -2
  141. package/dist/es2019/components/common/EmojiPlaceholder.js +0 -5
  142. package/dist/es2019/components/common/EmojiPreviewComponent.js +1 -0
  143. package/dist/es2019/components/common/EmojiUploadPicker.js +2 -25
  144. package/dist/es2019/components/common/EmojiUploadPreview.js +0 -6
  145. package/dist/es2019/components/common/FileChooser.js +0 -6
  146. package/dist/es2019/components/common/LoadingEmojiComponent.js +2 -14
  147. package/dist/es2019/components/common/Popup.js +4 -22
  148. package/dist/es2019/components/common/RecordSelectionDefault.js +1 -1
  149. package/dist/es2019/components/common/ResourcedEmoji.js +1 -6
  150. package/dist/es2019/components/common/ResourcedEmojiComponent.js +2 -13
  151. package/dist/es2019/components/common/RetryableButton.js +1 -8
  152. package/dist/es2019/components/common/Scrollable.js +2 -12
  153. package/dist/es2019/components/common/ToneSelector.js +2 -8
  154. package/dist/es2019/components/common/UfoErrorBoundary.js +0 -2
  155. package/dist/es2019/components/common/UploadEmoji.js +2 -3
  156. package/dist/es2019/components/common/internal-types.js +0 -1
  157. package/dist/es2019/components/common/styles.js +12 -8
  158. package/dist/es2019/components/picker/CategorySelector.js +0 -22
  159. package/dist/es2019/components/picker/CategoryTracker.js +3 -13
  160. package/dist/es2019/components/picker/EmojiPicker.js +3 -17
  161. package/dist/es2019/components/picker/EmojiPickerCategoryHeading.js +2 -3
  162. package/dist/es2019/components/picker/EmojiPickerComponent.js +10 -43
  163. package/dist/es2019/components/picker/EmojiPickerEmojiRow.js +0 -2
  164. package/dist/es2019/components/picker/EmojiPickerFooter.js +0 -2
  165. package/dist/es2019/components/picker/EmojiPickerList.js +10 -45
  166. package/dist/es2019/components/picker/EmojiPickerListSearch.js +2 -19
  167. package/dist/es2019/components/picker/EmojiPickerSizes.js +1 -0
  168. package/dist/es2019/components/picker/EmojiPickerVirtualItems.js +1 -8
  169. package/dist/es2019/components/picker/VirtualList.js +3 -24
  170. package/dist/es2019/components/picker/styles.js +22 -10
  171. package/dist/es2019/components/picker/utils.js +0 -1
  172. package/dist/es2019/components/typeahead/EmojiTypeAhead.js +4 -21
  173. package/dist/es2019/components/typeahead/EmojiTypeAheadComponent.js +0 -42
  174. package/dist/es2019/components/typeahead/EmojiTypeAheadItem.js +0 -7
  175. package/dist/es2019/components/typeahead/EmojiTypeAheadList.js +4 -45
  176. package/dist/es2019/components/typeahead/styles.js +2 -1
  177. package/dist/es2019/components/uploader/EmojiUploadComponent.js +2 -15
  178. package/dist/es2019/components/uploader/EmojiUploader.js +2 -10
  179. package/dist/es2019/components/uploader/styles.js +5 -2
  180. package/dist/es2019/context/EmojiCommonProvider.js +0 -2
  181. package/dist/es2019/context/EmojiContextProvider.js +0 -1
  182. package/dist/es2019/hooks/useEmoji.js +2 -6
  183. package/dist/es2019/hooks/useEmojiContext.js +1 -1
  184. package/dist/es2019/index.js +12 -6
  185. package/dist/es2019/types.js +1 -11
  186. package/dist/es2019/util/DuplicateLimitedQueue.js +13 -35
  187. package/dist/es2019/util/StoredDuplicateLimitedQueue.js +5 -12
  188. package/dist/es2019/util/analytics/analytics.js +7 -23
  189. package/dist/es2019/util/analytics/samplingUfo.js +6 -32
  190. package/dist/es2019/util/analytics/ufoExperiences.js +0 -3
  191. package/dist/es2019/util/analytics/useSampledUFOComponentExperience.js +3 -7
  192. package/dist/es2019/util/constants.js +5 -4
  193. package/dist/es2019/util/filters.js +0 -3
  194. package/dist/es2019/util/image.js +3 -8
  195. package/dist/es2019/util/mouse.js +3 -3
  196. package/dist/es2019/util/storage-available.js +10 -7
  197. package/dist/es2019/util/type-helpers.js +6 -9
  198. package/dist/es2019/util/useInView.js +0 -2
  199. package/dist/es2019/version.json +1 -1
  200. package/dist/esm/api/EmojiLoader.js +2 -6
  201. package/dist/esm/api/EmojiRepository.js +16 -71
  202. package/dist/esm/api/EmojiRepositoryRegex.js +2 -0
  203. package/dist/esm/api/EmojiResource.js +20 -158
  204. package/dist/esm/api/EmojiUtils.js +27 -47
  205. package/dist/esm/api/internal/Comparators.js +12 -53
  206. package/dist/esm/api/internal/UsageFrequencyTracker.js +5 -29
  207. package/dist/esm/api/media/MediaEmojiCache.js +9 -55
  208. package/dist/esm/api/media/MediaImageLoader.js +4 -27
  209. package/dist/esm/api/media/SiteEmojiResource.js +14 -43
  210. package/dist/esm/api/media/TokenManager.js +6 -16
  211. package/dist/esm/components/common/CachingEmoji.js +18 -30
  212. package/dist/esm/components/common/DeleteButton.js +2 -3
  213. package/dist/esm/components/common/Emoji.js +44 -78
  214. package/dist/esm/components/common/EmojiActions.js +25 -40
  215. package/dist/esm/components/common/EmojiButton.js +4 -9
  216. package/dist/esm/components/common/EmojiDeletePreview.js +7 -24
  217. package/dist/esm/components/common/EmojiErrorMessage.js +3 -4
  218. package/dist/esm/components/common/EmojiPlaceholder.js +6 -11
  219. package/dist/esm/components/common/EmojiPreviewComponent.js +1 -0
  220. package/dist/esm/components/common/EmojiUploadPicker.js +30 -64
  221. package/dist/esm/components/common/EmojiUploadPreview.js +7 -19
  222. package/dist/esm/components/common/FileChooser.js +5 -11
  223. package/dist/esm/components/common/LoadingEmojiComponent.js +4 -20
  224. package/dist/esm/components/common/Popup.js +16 -36
  225. package/dist/esm/components/common/RecordSelectionDefault.js +1 -1
  226. package/dist/esm/components/common/ResourcedEmoji.js +1 -6
  227. package/dist/esm/components/common/ResourcedEmojiComponent.js +29 -51
  228. package/dist/esm/components/common/RetryableButton.js +4 -11
  229. package/dist/esm/components/common/Scrollable.js +6 -29
  230. package/dist/esm/components/common/ToneSelector.js +3 -13
  231. package/dist/esm/components/common/UfoErrorBoundary.js +1 -13
  232. package/dist/esm/components/common/UploadEmoji.js +2 -3
  233. package/dist/esm/components/common/internal-types.js +0 -1
  234. package/dist/esm/components/common/setSkinToneAriaLabelText.js +0 -2
  235. package/dist/esm/components/common/styles.js +12 -9
  236. package/dist/esm/components/picker/CategorySelector.js +4 -32
  237. package/dist/esm/components/picker/CategoryTracker.js +3 -13
  238. package/dist/esm/components/picker/EmojiPicker.js +5 -27
  239. package/dist/esm/components/picker/EmojiPickerCategoryHeading.js +4 -5
  240. package/dist/esm/components/picker/EmojiPickerComponent.js +60 -114
  241. package/dist/esm/components/picker/EmojiPickerEmojiRow.js +6 -8
  242. package/dist/esm/components/picker/EmojiPickerFooter.js +0 -2
  243. package/dist/esm/components/picker/EmojiPickerList.js +32 -77
  244. package/dist/esm/components/picker/EmojiPickerListSearch.js +11 -35
  245. package/dist/esm/components/picker/EmojiPickerSizes.js +1 -0
  246. package/dist/esm/components/picker/EmojiPickerVirtualItems.js +2 -26
  247. package/dist/esm/components/picker/VirtualList.js +11 -28
  248. package/dist/esm/components/picker/styles.js +22 -11
  249. package/dist/esm/components/picker/utils.js +0 -1
  250. package/dist/esm/components/typeahead/EmojiTypeAhead.js +11 -39
  251. package/dist/esm/components/typeahead/EmojiTypeAheadComponent.js +11 -65
  252. package/dist/esm/components/typeahead/EmojiTypeAheadItem.js +7 -24
  253. package/dist/esm/components/typeahead/EmojiTypeAheadList.js +10 -53
  254. package/dist/esm/components/typeahead/styles.js +2 -1
  255. package/dist/esm/components/uploader/EmojiUploadComponent.js +5 -25
  256. package/dist/esm/components/uploader/EmojiUploader.js +4 -22
  257. package/dist/esm/components/uploader/styles.js +5 -2
  258. package/dist/esm/context/EmojiCommonProvider.js +0 -2
  259. package/dist/esm/context/EmojiContextProvider.js +1 -6
  260. package/dist/esm/hooks/useEmoji.js +5 -13
  261. package/dist/esm/hooks/useEmojiContext.js +1 -1
  262. package/dist/esm/index.js +12 -6
  263. package/dist/esm/types.js +1 -11
  264. package/dist/esm/util/DuplicateLimitedQueue.js +13 -29
  265. package/dist/esm/util/StoredDuplicateLimitedQueue.js +5 -22
  266. package/dist/esm/util/analytics/analytics.js +14 -50
  267. package/dist/esm/util/analytics/samplingUfo.js +3 -51
  268. package/dist/esm/util/analytics/ufoExperiences.js +0 -3
  269. package/dist/esm/util/analytics/useSampledUFOComponentExperience.js +3 -7
  270. package/dist/esm/util/constants.js +5 -4
  271. package/dist/esm/util/filters.js +0 -3
  272. package/dist/esm/util/image.js +3 -8
  273. package/dist/esm/util/logger.js +0 -2
  274. package/dist/esm/util/mouse.js +3 -3
  275. package/dist/esm/util/storage-available.js +10 -7
  276. package/dist/esm/util/type-helpers.js +2 -12
  277. package/dist/esm/util/useInView.js +0 -2
  278. package/dist/esm/version.json +1 -1
  279. package/package.json +6 -4
@@ -1,39 +1,30 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = exports.EXPIRES_AT_LATENCY_IN_SECONDS = void 0;
9
-
10
8
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
9
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
10
  var _utilServiceSupport = require("@atlaskit/util-service-support");
15
-
16
11
  // expire 30 seconds early to factor in latency, slow services, etc
17
12
  var EXPIRES_AT_LATENCY_IN_SECONDS = 30;
18
13
  exports.EXPIRES_AT_LATENCY_IN_SECONDS = EXPIRES_AT_LATENCY_IN_SECONDS;
19
-
20
14
  var TokenManager = /*#__PURE__*/function () {
21
15
  function TokenManager(siteServiceConfig) {
22
16
  (0, _classCallCheck2.default)(this, TokenManager);
23
17
  this.siteServiceConfig = siteServiceConfig;
24
18
  this.tokens = new Map();
25
19
  }
26
-
27
20
  (0, _createClass2.default)(TokenManager, [{
28
21
  key: "isValidToken",
29
22
  value: function isValidToken(mediaApiToken) {
30
23
  var nowInSeconds = Date.now() / 1000;
31
24
  var expiresAt = mediaApiToken.expiresAt - EXPIRES_AT_LATENCY_IN_SECONDS;
32
-
33
25
  if (nowInSeconds < expiresAt) {
34
26
  return true;
35
27
  }
36
-
37
28
  return false;
38
29
  }
39
30
  }, {
@@ -54,29 +45,25 @@ var TokenManager = /*#__PURE__*/function () {
54
45
  key: "getToken",
55
46
  value: function getToken(type, forceRefresh) {
56
47
  var tokenDetail = this.tokens.get(type);
57
-
58
48
  if (!tokenDetail) {
59
49
  tokenDetail = {};
60
50
  this.tokens.set(type, tokenDetail);
61
51
  }
62
-
63
52
  var _tokenDetail = tokenDetail,
64
- mediaApiToken = _tokenDetail.mediaApiToken,
65
- activeTokenRefresh = _tokenDetail.activeTokenRefresh;
66
-
53
+ mediaApiToken = _tokenDetail.mediaApiToken,
54
+ activeTokenRefresh = _tokenDetail.activeTokenRefresh;
67
55
  if (mediaApiToken) {
68
56
  if (this.isValidToken(mediaApiToken) && !forceRefresh) {
69
57
  // still valid
70
58
  return Promise.resolve(mediaApiToken);
71
59
  }
72
-
73
60
  if (activeTokenRefresh) {
74
61
  // refresh token promise already active, return that
75
62
  return activeTokenRefresh;
76
63
  }
77
- } // request a new token and track the promise for future requests until completed
78
-
64
+ }
79
65
 
66
+ // request a new token and track the promise for future requests until completed
80
67
  tokenDetail.activeTokenRefresh = this.fetchNewToken(type).then(function (token) {
81
68
  tokenDetail.mediaApiToken = token;
82
69
  tokenDetail.activeTokenRefresh = undefined;
@@ -87,5 +74,4 @@ var TokenManager = /*#__PURE__*/function () {
87
74
  }]);
88
75
  return TokenManager;
89
76
  }();
90
-
91
77
  exports.default = TokenManager;
@@ -1,58 +1,37 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports.default = exports.CachingMediaEmoji = exports.CachingEmoji = void 0;
11
-
12
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
-
14
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
-
16
11
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
17
-
18
12
  var _react = _interopRequireWildcard(require("react"));
19
-
20
13
  var _typeHelpers = require("../../util/type-helpers");
21
-
22
14
  var _types = require("../../types");
23
-
24
15
  var _logger = _interopRequireDefault(require("../../util/logger"));
25
-
26
16
  var _Emoji = _interopRequireDefault(require("./Emoji"));
27
-
28
17
  var _EmojiPlaceholder = _interopRequireDefault(require("./EmojiPlaceholder"));
29
-
30
18
  var _UfoErrorBoundary = require("./UfoErrorBoundary");
31
-
32
19
  var _analytics = require("../../util/analytics");
33
-
34
20
  var _constants = require("../../util/constants");
35
-
36
21
  var _ufoExperiences = require("../../util/analytics/ufoExperiences");
37
-
38
22
  var _useEmoji2 = require("../../hooks/useEmoji");
39
-
40
23
  var _analytics2 = require("../../util/analytics/analytics");
41
-
42
24
  var _excluded = ["emoji", "placeholderSize", "showTooltip", "fitToHeight", "children"];
43
-
44
25
  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
-
46
26
  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; }
47
-
48
27
  /**
49
28
  * Renders an emoji from a cached image, if required.
50
29
  */
51
30
  var CachingEmoji = function CachingEmoji(props) {
52
31
  // Optimisation to only render CachingMediaEmoji if necessary
53
32
  // slight performance hit, which accumulates for a large number of emoji.
54
- var emoji = props.emoji; // start emoji rendered experience, it may have already started earlier in ResourcedEmoji
55
-
33
+ var emoji = props.emoji;
34
+ // start emoji rendered experience, it may have already started earlier in ResourcedEmoji
56
35
  (0, _analytics.useSampledUFOComponentExperience)(_analytics.ufoExperiences['emoji-rendered'].getInstance(emoji.id || emoji.shortName), _constants.SAMPLING_RATE_EMOJI_RENDERED_EXP, {
57
36
  source: 'CachingEmoji',
58
37
  emojiId: emoji.id
@@ -60,53 +39,44 @@ var CachingEmoji = function CachingEmoji(props) {
60
39
  (0, _react.useEffect)(function () {
61
40
  if (!(0, _ufoExperiences.hasUfoMarked)((0, _analytics.sampledUfoRenderedEmoji)(emoji), 'fmp')) {
62
41
  (0, _analytics.sampledUfoRenderedEmoji)(emoji).markFMP();
63
- } // eslint-disable-next-line react-hooks/exhaustive-deps
64
-
42
+ }
43
+ // eslint-disable-next-line react-hooks/exhaustive-deps
65
44
  }, []);
66
-
67
45
  var emojiNode = function emojiNode() {
68
46
  if ((0, _typeHelpers.isMediaEmoji)(emoji)) {
69
47
  return /*#__PURE__*/_react.default.createElement(CachingMediaEmoji, props);
70
48
  }
71
-
72
49
  return /*#__PURE__*/_react.default.createElement(_Emoji.default, props);
73
50
  };
74
-
75
51
  return /*#__PURE__*/_react.default.createElement(_UfoErrorBoundary.UfoErrorBoundary, {
76
52
  experiences: [_analytics.ufoExperiences['emoji-rendered'].getInstance(props.emoji.id || props.emoji.shortName)]
77
53
  }, emojiNode());
78
54
  };
55
+
79
56
  /**
80
57
  * Rendering a media emoji image from a cache for media emoji, with different
81
58
  * rendering paths depending on caching strategy.
82
59
  */
83
-
84
-
85
60
  exports.CachingEmoji = CachingEmoji;
86
-
87
61
  var CachingMediaEmoji = function CachingMediaEmoji(props) {
88
62
  var emoji = props.emoji,
89
- placeholderSize = props.placeholderSize,
90
- showTooltip = props.showTooltip,
91
- fitToHeight = props.fitToHeight,
92
- children = props.children,
93
- restProps = (0, _objectWithoutProperties2.default)(props, _excluded);
63
+ placeholderSize = props.placeholderSize,
64
+ showTooltip = props.showTooltip,
65
+ fitToHeight = props.fitToHeight,
66
+ children = props.children,
67
+ restProps = (0, _objectWithoutProperties2.default)(props, _excluded);
94
68
  var shortName = emoji.shortName,
95
- representation = emoji.representation;
96
-
69
+ representation = emoji.representation;
97
70
  var _useState = (0, _react.useState)(),
98
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
99
- cachedEmoji = _useState2[0],
100
- setCachedEmoji = _useState2[1];
101
-
71
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
72
+ cachedEmoji = _useState2[0],
73
+ setCachedEmoji = _useState2[1];
102
74
  var _useState3 = (0, _react.useState)(false),
103
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
104
- inValidImage = _useState4[0],
105
- setInvalidImage = _useState4[1];
106
-
75
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
76
+ inValidImage = _useState4[0],
77
+ setInvalidImage = _useState4[1];
107
78
  var _useEmoji = (0, _useEmoji2.useEmoji)(),
108
- emojiProvider = _useEmoji.emojiProvider;
109
-
79
+ emojiProvider = _useEmoji.emojiProvider;
110
80
  var loadEmoji = (0, _react.useCallback)(function (emojiProvider) {
111
81
  (0, _logger.default)('Loading image via media cache', emoji.shortName);
112
82
  (0, _analytics.sampledUfoRenderedEmoji)(emoji).mark(_types.UfoEmojiTimings.MEDIA_START);
@@ -132,7 +102,6 @@ var CachingMediaEmoji = function CachingMediaEmoji(props) {
132
102
  loadEmoji(emojiProvider);
133
103
  }
134
104
  }, [emojiProvider, loadEmoji]);
135
-
136
105
  var handleLoadError = function handleLoadError(_emojiId) {
137
106
  (0, _analytics.sampledUfoRenderedEmoji)(_emojiId).failure({
138
107
  metadata: {
@@ -143,7 +112,6 @@ var CachingMediaEmoji = function CachingMediaEmoji(props) {
143
112
  });
144
113
  setInvalidImage(true);
145
114
  };
146
-
147
115
  if (cachedEmoji && !inValidImage) {
148
116
  return /*#__PURE__*/_react.default.createElement(_Emoji.default, (0, _extends2.default)({}, restProps, {
149
117
  showTooltip: showTooltip,
@@ -152,7 +120,6 @@ var CachingMediaEmoji = function CachingMediaEmoji(props) {
152
120
  onLoadError: handleLoadError
153
121
  }));
154
122
  }
155
-
156
123
  return /*#__PURE__*/_react.default.createElement(_EmojiPlaceholder.default, {
157
124
  size: fitToHeight || placeholderSize,
158
125
  shortName: shortName,
@@ -160,7 +127,6 @@ var CachingMediaEmoji = function CachingMediaEmoji(props) {
160
127
  representation: representation
161
128
  });
162
129
  };
163
-
164
130
  exports.CachingMediaEmoji = CachingMediaEmoji;
165
131
  var _default = CachingEmoji;
166
132
  exports.default = _default;
@@ -1,24 +1,16 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = exports.RENDER_EMOJI_DELETE_BUTTON_TESTID = void 0;
9
-
10
8
  var _react = require("@emotion/react");
11
-
12
9
  var _customThemeButton = _interopRequireDefault(require("@atlaskit/button/custom-theme-button"));
13
-
14
10
  var _crossCircle = _interopRequireDefault(require("@atlaskit/icon/glyph/cross-circle"));
15
-
16
11
  var _colors = require("@atlaskit/theme/colors");
17
-
18
12
  var _constants = require("../../util/constants");
19
-
20
13
  var _styles = require("./styles");
21
-
22
14
  /** @jsx jsx */
23
15
 
24
16
  /**
@@ -26,7 +18,6 @@ var _styles = require("./styles");
26
18
  */
27
19
  var RENDER_EMOJI_DELETE_BUTTON_TESTID = 'render-emoji-delete-button';
28
20
  exports.RENDER_EMOJI_DELETE_BUTTON_TESTID = RENDER_EMOJI_DELETE_BUTTON_TESTID;
29
-
30
21
  var DeleteButton = function DeleteButton(props) {
31
22
  return (0, _react.jsx)("span", {
32
23
  css: _styles.deleteButton,
@@ -44,6 +35,5 @@ var DeleteButton = function DeleteButton(props) {
44
35
  testId: "emoji-delete-button"
45
36
  }));
46
37
  };
47
-
48
38
  var _default = DeleteButton;
49
39
  exports.default = _default;
@@ -1,132 +1,98 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports.default = exports.SpriteEmoji = exports.ImageEmoji = exports.Emoji = void 0;
11
-
12
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
-
14
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
-
16
11
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
-
18
12
  var _react = _interopRequireWildcard(require("react"));
19
-
20
13
  var _react2 = require("@emotion/react");
21
-
22
14
  var _EmojiUtils = require("../../api/EmojiUtils");
23
-
24
15
  var _constants = require("../../util/constants");
25
-
26
16
  var _typeHelpers = require("../../util/type-helpers");
27
-
28
17
  var _types = require("../../types");
29
-
30
18
  var _mouse = require("../../util/mouse");
31
-
32
19
  var _DeleteButton = _interopRequireDefault(require("./DeleteButton"));
33
-
34
20
  var _styles = require("./styles");
35
-
36
21
  var _analytics = require("../../util/analytics");
37
-
38
22
  var _browserSupport = require("../../util/browser-support");
39
-
40
23
  var _useInView3 = require("../../util/useInView");
41
-
42
24
  var _ufoExperiences = require("../../util/analytics/ufoExperiences");
43
-
44
25
  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
-
46
26
  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; }
47
-
48
27
  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; }
49
-
50
28
  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; }
51
-
52
29
  var handleMouseDown = function handleMouseDown(props, event) {
53
30
  // Clicked emoji delete button
54
31
  if (event.target instanceof Element && event.target.getAttribute('aria-label') === _constants.deleteEmojiLabel) {
55
32
  return;
56
33
  }
57
-
58
34
  var emoji = props.emoji,
59
- onSelected = props.onSelected;
35
+ onSelected = props.onSelected;
60
36
  event.preventDefault();
61
-
62
37
  if (onSelected && (0, _mouse.leftClick)(event)) {
63
38
  onSelected((0, _typeHelpers.toEmojiId)(emoji), emoji, event);
64
39
  }
65
40
  };
66
-
67
41
  var handleKeyPress = function handleKeyPress(props, event) {
68
42
  // Clicked emoji delete button
69
43
  if (event.target instanceof Element && event.target.getAttribute('aria-label') === _constants.deleteEmojiLabel) {
70
44
  return;
71
45
  }
72
-
73
46
  var emoji = props.emoji,
74
- onSelected = props.onSelected;
47
+ onSelected = props.onSelected;
75
48
  event.preventDefault();
76
-
77
49
  if (onSelected && (event.key === 'Enter' || event.key === ' ')) {
78
50
  onSelected((0, _typeHelpers.toEmojiId)(emoji), emoji, event);
79
51
  }
80
52
  };
81
-
82
53
  var handleMouseMove = function handleMouseMove(props, event) {
83
54
  var emoji = props.emoji,
84
- onMouseMove = props.onMouseMove;
85
-
55
+ onMouseMove = props.onMouseMove;
86
56
  if (onMouseMove) {
87
57
  onMouseMove((0, _typeHelpers.toEmojiId)(emoji), emoji, event);
88
58
  }
89
59
  };
90
-
91
60
  var handleDelete = function handleDelete(props, event) {
92
61
  var emoji = props.emoji,
93
- onDelete = props.onDelete;
94
-
62
+ onDelete = props.onDelete;
95
63
  if (onDelete) {
96
64
  onDelete((0, _typeHelpers.toEmojiId)(emoji), emoji, event);
97
65
  }
98
66
  };
99
-
100
67
  var handleImageError = function handleImageError(props, event) {
101
68
  var emoji = props.emoji,
102
- onLoadError = props.onLoadError; // Hide error state (but keep space for it)
69
+ onLoadError = props.onLoadError;
103
70
 
71
+ // Hide error state (but keep space for it)
104
72
  if (event.target) {
105
73
  var target = event.target;
106
74
  target.style.visibility = 'hidden';
107
75
  }
108
-
109
76
  if (onLoadError) {
110
77
  onLoadError((0, _typeHelpers.toEmojiId)(emoji), emoji, event);
111
78
  }
112
- }; // Pure functional components are used in favour of class based components, due to the performance!
79
+ };
80
+
81
+ // Pure functional components are used in favour of class based components, due to the performance!
113
82
  // When rendering 1500+ emoji using class based components had a significant impact.
114
83
  // TODO: add UFO tracking for sprite emoji
115
-
116
-
117
84
  var SpriteEmoji = function SpriteEmoji(props) {
118
85
  var emoji = props.emoji,
119
- fitToHeight = props.fitToHeight,
120
- selected = props.selected,
121
- selectOnHover = props.selectOnHover,
122
- className = props.className,
123
- showTooltip = props.showTooltip,
124
- shouldBeInteractive = props.shouldBeInteractive;
86
+ fitToHeight = props.fitToHeight,
87
+ selected = props.selected,
88
+ selectOnHover = props.selectOnHover,
89
+ className = props.className,
90
+ showTooltip = props.showTooltip,
91
+ shouldBeInteractive = props.shouldBeInteractive;
125
92
  var representation = emoji.representation;
126
93
  var sprite = representation.sprite;
127
94
  var classes = "".concat(_styles.emojiNodeStyles, " ").concat(selected ? _styles.commonSelectedStyles : '', " ").concat(selectOnHover ? _styles.selectOnHoverStyles : '', " ").concat(className ? className : '');
128
95
  var sizing = {};
129
-
130
96
  if (fitToHeight) {
131
97
  sizing = {
132
98
  width: "".concat(fitToHeight, "px"),
@@ -135,16 +101,13 @@ var SpriteEmoji = function SpriteEmoji(props) {
135
101
  minWidth: "".concat(fitToHeight, "px")
136
102
  };
137
103
  }
138
-
139
104
  var xPositionInPercent = 100 / (sprite.column - 1) * (representation.xIndex - 0);
140
105
  var yPositionInPercent = 100 / (sprite.row - 1) * (representation.yIndex - 0);
141
-
142
106
  var style = _objectSpread({
143
107
  backgroundImage: "url(".concat(sprite.url, ")"),
144
108
  backgroundPosition: "".concat(xPositionInPercent, "% ").concat(yPositionInPercent, "%"),
145
109
  backgroundSize: "".concat(sprite.column * 100, "% ").concat(sprite.row * 100, "%")
146
110
  }, sizing);
147
-
148
111
  return (0, _react2.jsx)("span", {
149
112
  "data-testid": "sprite-emoji-".concat(emoji.shortName),
150
113
  "data-emoji-type": "sprite",
@@ -167,38 +130,34 @@ var SpriteEmoji = function SpriteEmoji(props) {
167
130
  className: _styles.emojiSprite,
168
131
  style: style
169
132
  }, "\xA0"));
170
- }; // Keep as pure functional component, see renderAsSprite.
171
-
133
+ };
172
134
 
135
+ // Keep as pure functional component, see renderAsSprite.
173
136
  exports.SpriteEmoji = SpriteEmoji;
174
-
175
137
  var ImageEmoji = function ImageEmoji(props) {
176
138
  var emoji = props.emoji,
177
- fitToHeight = props.fitToHeight,
178
- selected = props.selected,
179
- selectOnHover = props.selectOnHover,
180
- className = props.className,
181
- showTooltip = props.showTooltip,
182
- showDelete = props.showDelete,
183
- shouldBeInteractive = props.shouldBeInteractive,
184
- onLoadSuccess = props.onLoadSuccess,
185
- disableLazyLoad = props.disableLazyLoad,
186
- autoWidth = props.autoWidth;
187
-
139
+ fitToHeight = props.fitToHeight,
140
+ selected = props.selected,
141
+ selectOnHover = props.selectOnHover,
142
+ className = props.className,
143
+ showTooltip = props.showTooltip,
144
+ showDelete = props.showDelete,
145
+ shouldBeInteractive = props.shouldBeInteractive,
146
+ onLoadSuccess = props.onLoadSuccess,
147
+ disableLazyLoad = props.disableLazyLoad,
148
+ autoWidth = props.autoWidth;
188
149
  var _useInView = (0, _useInView3.useInView)({
189
- triggerOnce: true
190
- }),
191
- _useInView2 = (0, _slicedToArray2.default)(_useInView, 2),
192
- ref = _useInView2[0],
193
- inView = _useInView2[1];
194
-
150
+ triggerOnce: true
151
+ }),
152
+ _useInView2 = (0, _slicedToArray2.default)(_useInView, 2),
153
+ ref = _useInView2[0],
154
+ inView = _useInView2[1];
195
155
  var ufoExp = (0, _analytics.sampledUfoRenderedEmoji)(emoji);
196
156
  var classes = "".concat(_styles.emojiMainStyle, " ").concat(_styles.emojiNodeStyles, " ").concat(selected ? _styles.commonSelectedStyles : '', " ").concat(selectOnHover ? _styles.selectOnHoverStyles : '', " ").concat(_styles.emojiImage, " ").concat(className ? className : '');
197
157
  var width;
198
158
  var height;
199
159
  var src;
200
160
  var representation = (0, _EmojiUtils.shouldUseAltRepresentation)(emoji, fitToHeight) ? emoji.altRepresentation : emoji.representation;
201
-
202
161
  if ((0, _typeHelpers.isImageRepresentation)(representation)) {
203
162
  src = representation.imagePath;
204
163
  width = representation.width;
@@ -208,9 +167,7 @@ var ImageEmoji = function ImageEmoji(props) {
208
167
  width = representation.width;
209
168
  height = representation.height;
210
169
  }
211
-
212
170
  var deleteButton;
213
-
214
171
  if (showDelete) {
215
172
  deleteButton = (0, _react2.jsx)(_DeleteButton.default, {
216
173
  onClick: function onClick(event) {
@@ -218,9 +175,7 @@ var ImageEmoji = function ImageEmoji(props) {
218
175
  }
219
176
  });
220
177
  }
221
-
222
178
  var sizing = {};
223
-
224
179
  if (fitToHeight && width && height) {
225
180
  // Presize image, to prevent reflow due to size changes after loading
226
181
  sizing = {
@@ -228,52 +183,45 @@ var ImageEmoji = function ImageEmoji(props) {
228
183
  height: fitToHeight
229
184
  };
230
185
  }
231
-
232
186
  var onError = function onError(event) {
233
187
  handleImageError(props, event);
234
188
  };
235
-
236
189
  var onLoad = function onLoad() {
237
190
  var mountedMark = ufoExp.metrics.marks.find(function (mark) {
238
191
  return mark.name === _types.UfoEmojiTimings.MOUNTED_END;
239
- }); // onload could trigger before onBeforeLoad when emojis in viewport at start, so we need to mark onload start manually.
240
-
192
+ });
193
+ // onload could trigger before onBeforeLoad when emojis in viewport at start, so we need to mark onload start manually.
241
194
  if (!(0, _ufoExperiences.hasUfoMarked)(ufoExp, _types.UfoEmojiTimings.ONLOAD_START)) {
242
195
  ufoExp.mark(_types.UfoEmojiTimings.ONLOAD_START, mountedMark === null || mountedMark === void 0 ? void 0 : mountedMark.time);
243
196
  }
244
-
245
197
  var loadedStartMark = ufoExp.metrics.marks.find(function (mark) {
246
198
  return mark.name === _types.UfoEmojiTimings.ONLOAD_START;
247
199
  });
248
-
249
200
  if (mountedMark && loadedStartMark) {
250
201
  ufoExp.addMetadata({
251
202
  lazyLoad: loadedStartMark.time > mountedMark.time
252
203
  });
253
- } // onload_start
254
-
255
-
204
+ }
205
+ // onload_start
256
206
  if (!(0, _ufoExperiences.hasUfoMarked)(ufoExp, _types.UfoEmojiTimings.ONLOAD_END)) {
257
207
  ufoExp.mark(_types.UfoEmojiTimings.ONLOAD_END);
258
208
  }
259
-
260
209
  ufoExp.success({
261
210
  metadata: {
262
211
  IBSupported: _browserSupport.isIntersectionObserverSupported
263
212
  }
264
213
  });
265
-
266
214
  if (onLoadSuccess) {
267
215
  onLoadSuccess(emoji);
268
216
  }
269
217
  };
270
-
271
218
  var onBeforeLoad = (0, _react.useCallback)(function () {
272
219
  if (!(0, _ufoExperiences.hasUfoMarked)(ufoExp, _types.UfoEmojiTimings.ONLOAD_START)) {
273
220
  ufoExp.mark(_types.UfoEmojiTimings.ONLOAD_START);
274
221
  }
275
- }, [ufoExp]); // because of the lack of browser support of on before load natively, used IntersectionObserver helper hook to mimic the before load time mark for UFO.
222
+ }, [ufoExp]);
276
223
 
224
+ // because of the lack of browser support of on before load natively, used IntersectionObserver helper hook to mimic the before load time mark for UFO.
277
225
  (0, _react.useEffect)(function () {
278
226
  if (inView) {
279
227
  onBeforeLoad();
@@ -316,36 +264,30 @@ var ImageEmoji = function ImageEmoji(props) {
316
264
  ref: ref
317
265
  }, deleteButton, emojiNode);
318
266
  };
319
-
320
267
  exports.ImageEmoji = ImageEmoji;
321
-
322
268
  var Emoji = function Emoji(props) {
323
- var emoji = props.emoji; // start emoji rendered experience, it may have already started earlier in ResourcedEmoji or CachingEmoji
324
-
269
+ var emoji = props.emoji;
270
+ // start emoji rendered experience, it may have already started earlier in ResourcedEmoji or CachingEmoji
325
271
  (0, _analytics.useSampledUFOComponentExperience)(_analytics.ufoExperiences['emoji-rendered'].getInstance(emoji.id || emoji.shortName), _constants.SAMPLING_RATE_EMOJI_RENDERED_EXP, {
326
272
  source: 'Emoji',
327
273
  emojiId: emoji.id
328
274
  });
329
275
  (0, _react.useEffect)(function () {
330
276
  var ufoExp = (0, _analytics.sampledUfoRenderedEmoji)(emoji);
331
-
332
277
  if (!(0, _ufoExperiences.hasUfoMarked)(ufoExp, 'fmp')) {
333
278
  ufoExp.markFMP();
334
279
  }
335
-
336
280
  if (!(0, _ufoExperiences.hasUfoMarked)(ufoExp, _types.UfoEmojiTimings.MOUNTED_END)) {
337
281
  ufoExp.mark(_types.UfoEmojiTimings.MOUNTED_END);
338
- } // eslint-disable-next-line react-hooks/exhaustive-deps
339
-
340
- }, []); // TODO: We always prefer render as image as having accessibility issues with sprite representation
341
-
282
+ }
283
+ // eslint-disable-next-line react-hooks/exhaustive-deps
284
+ }, []);
285
+ // TODO: We always prefer render as image as having accessibility issues with sprite representation
342
286
  if ((0, _typeHelpers.isSpriteRepresentation)(emoji.representation)) {
343
287
  return (0, _react2.jsx)(SpriteEmoji, props);
344
288
  }
345
-
346
289
  return (0, _react2.jsx)(ImageEmoji, props);
347
290
  };
348
-
349
291
  exports.Emoji = Emoji;
350
292
  var _default = Emoji;
351
293
  exports.default = _default;