@atlaskit/emoji 67.0.3 → 67.0.5

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 (280) hide show
  1. package/CHANGELOG.md +13 -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/dist/types/types.d.ts +1 -1
  280. package/package.json +2 -2
@@ -1,6 +1,5 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
-
4
3
  /** @jsx jsx */
5
4
  import { Component } from 'react';
6
5
  import { jsx } from '@emotion/react';
@@ -12,18 +11,15 @@ import EmojiErrorMessage from './EmojiErrorMessage';
12
11
  import RetryableButton from './RetryableButton';
13
12
  import { cancelButton, deleteFooter, deletePreview, deleteText, emojiDeleteErrorMessage, previewButtonGroup } from './styles';
14
13
  export const emojiDeletePreviewTestId = 'emoji-delete-preview';
15
-
16
14
  class EmojiDeletePreview extends Component {
17
15
  constructor(props) {
18
16
  super(props);
19
-
20
17
  _defineProperty(this, "onSubmit", () => {
21
18
  const {
22
19
  emoji,
23
20
  onDeleteEmoji,
24
21
  onCloseDelete
25
22
  } = this.props;
26
-
27
23
  if (!this.state.loading) {
28
24
  this.setState({
29
25
  loading: true
@@ -33,7 +29,6 @@ class EmojiDeletePreview extends Component {
33
29
  onCloseDelete();
34
30
  return;
35
31
  }
36
-
37
32
  this.setState({
38
33
  loading: false,
39
34
  error: true
@@ -41,17 +36,14 @@ class EmojiDeletePreview extends Component {
41
36
  });
42
37
  }
43
38
  });
44
-
45
39
  _defineProperty(this, "onCancel", () => {
46
40
  this.props.onCloseDelete();
47
41
  });
48
-
49
42
  this.state = {
50
43
  loading: false,
51
44
  error: false
52
45
  };
53
46
  }
54
-
55
47
  UNSAFE_componentWillUpdate(nextProps) {
56
48
  if (nextProps.emoji.id !== this.props.emoji.id) {
57
49
  this.setState({
@@ -59,7 +51,6 @@ class EmojiDeletePreview extends Component {
59
51
  });
60
52
  }
61
53
  }
62
-
63
54
  render() {
64
55
  const {
65
56
  emoji,
@@ -103,7 +94,5 @@ class EmojiDeletePreview extends Component {
103
94
  css: cancelButton
104
95
  }, jsx(FormattedMessage, messages.cancelLabel)))));
105
96
  }
106
-
107
97
  }
108
-
109
98
  export default injectIntl(EmojiDeletePreview);
@@ -1,11 +1,11 @@
1
1
  /** @jsx jsx */
2
+
2
3
  import { jsx } from '@emotion/react';
3
4
  import Tooltip from '@atlaskit/tooltip';
4
5
  import ErrorIcon from '@atlaskit/icon/glyph/error';
5
6
  export const emojiErrorMessageTestId = 'emoji-error-message';
6
7
  export const emojiErrorMessageTooltipTestId = 'emoji-error-message-tooltip';
7
8
  export const emojiErrorIconTestId = 'emoji-error-icon';
8
-
9
9
  const EmojiErrorMessage = props => {
10
10
  const {
11
11
  messageStyles,
@@ -31,5 +31,4 @@ const EmojiErrorMessage = props => {
31
31
  size: "small"
32
32
  }), " ", message);
33
33
  };
34
-
35
34
  export default EmojiErrorMessage;
@@ -3,7 +3,6 @@ import { jsx } from '@emotion/react';
3
3
  import { defaultEmojiHeight } from '../../util/constants';
4
4
  import { placeholder, placeholderContainer, placeholderContainerAnimated } from './styles';
5
5
  export const emojiPlaceholderTestId = shortName => `emoji-placeholder-${shortName}`;
6
-
7
6
  const EmojiPlaceholder = props => {
8
7
  const {
9
8
  shortName,
@@ -14,17 +13,14 @@ const EmojiPlaceholder = props => {
14
13
  } = props;
15
14
  let scaledWidth;
16
15
  let scaledHeight;
17
-
18
16
  if (representation && size) {
19
17
  const width = representation.width;
20
18
  const height = representation.height;
21
-
22
19
  if (width && height) {
23
20
  scaledWidth = size / height * width;
24
21
  scaledHeight = size;
25
22
  }
26
23
  }
27
-
28
24
  const width = scaledWidth || size;
29
25
  const height = scaledHeight || size;
30
26
  const style = {
@@ -43,5 +39,4 @@ const EmojiPlaceholder = props => {
43
39
  title: showTooltip ? shortName : ''
44
40
  });
45
41
  };
46
-
47
42
  export default EmojiPlaceholder;
@@ -1,4 +1,5 @@
1
1
  /** @jsx jsx */
2
+
2
3
  import { jsx } from '@emotion/react';
3
4
  import CachingEmoji from './CachingEmoji';
4
5
  import { emojiName, emojiShortName, preview, previewImg, previewText } from './styles';
@@ -15,7 +15,6 @@ import { UploadStatus } from './internal-types';
15
15
  import { closeEmojiUploadButton, emojiChooseFileErrorMessage, emojiUpload, emojiUploadBottom, emojiUploadTop, uploadChooseFileBrowse, uploadChooseFileEmojiName, uploadChooseFileMessage, uploadChooseFileRow } from './styles';
16
16
  export const uploadEmojiNameInputTestId = 'upload-emoji-name-input';
17
17
  const disallowedReplacementsMap = new Map([[':', ''], ['!', ''], ['@', ''], ['#', ''], ['%', ''], ['^', ''], ['&', ''], ['*', ''], ['(', ''], [')', ''], [' ', '_']]);
18
-
19
18
  const sanitizeName = name => {
20
19
  // prevent / replace certain characters, allow others
21
20
  disallowedReplacementsMap.forEach((replaceWith, exclude) => {
@@ -23,14 +22,11 @@ const sanitizeName = name => {
23
22
  });
24
23
  return name;
25
24
  };
26
-
27
25
  const maxNameLength = 50;
28
-
29
26
  const toEmojiName = uploadName => {
30
27
  const name = uploadName.split('_').join(' ');
31
28
  return `${name.substr(0, 1).toLocaleUpperCase()}${name.substr(1)}`;
32
29
  };
33
-
34
30
  const ChooseEmojiFile = props => {
35
31
  const {
36
32
  name = '',
@@ -46,13 +42,11 @@ const ChooseEmojiFile = props => {
46
42
  } = intl;
47
43
  const disableChooser = !name;
48
44
  const fileChooserButtonDescriptionId = 'choose.emoji.file.button.screen.reader.description.id';
49
-
50
45
  const onKeyDownHandler = event => {
51
46
  if (event.key === 'Escape') {
52
47
  onUploadCancelled();
53
48
  }
54
49
  };
55
-
56
50
  return jsx("div", {
57
51
  css: emojiUpload
58
52
  }, jsx("div", {
@@ -103,7 +97,6 @@ const ChooseEmojiFile = props => {
103
97
  message: errorMessage
104
98
  })));
105
99
  };
106
-
107
100
  const EmojiUploadPicker = props => {
108
101
  const {
109
102
  errorMessage,
@@ -133,20 +126,16 @@ const EmojiUploadPicker = props => {
133
126
  setName(sanitizeName(initialUploadName));
134
127
  }
135
128
  }, [initialUploadName]);
136
-
137
129
  const onNameChange = event => {
138
130
  let newName = sanitizeName(event.target.value);
139
-
140
131
  if (name !== newName) {
141
132
  setName(newName);
142
133
  }
143
134
  };
144
-
145
135
  const onAddEmoji = () => {
146
136
  if (uploadStatus === UploadStatus.Uploading) {
147
137
  return;
148
138
  }
149
-
150
139
  if (filename && name && previewImage) {
151
140
  const notifyUpload = size => {
152
141
  const {
@@ -163,13 +152,12 @@ const EmojiUploadPicker = props => {
163
152
  height
164
153
  }, uploadStatus === UploadStatus.Error, clearUploadPicker);
165
154
  };
166
-
167
155
  ImageUtil.getNaturalImageSize(previewImage).then(size => {
168
156
  notifyUpload(size);
169
157
  }).catch(error => {
170
- debug('getNaturalImageSize error', error); // Just set arbitrary size, worse case is it may render
158
+ debug('getNaturalImageSize error', error);
159
+ // Just set arbitrary size, worse case is it may render
171
160
  // in wrong aspect ratio in some circumstances.
172
-
173
161
  notifyUpload({
174
162
  width: 32,
175
163
  height: 32
@@ -177,13 +165,11 @@ const EmojiUploadPicker = props => {
177
165
  });
178
166
  }
179
167
  };
180
-
181
168
  const errorOnUpload = event => {
182
169
  debug('File load error: ', event);
183
170
  setChooseEmojiErrorMessage(messages.emojiUploadFailed);
184
171
  cancelChooseFile();
185
172
  };
186
-
187
173
  const onFileLoad = file => async f => {
188
174
  try {
189
175
  setFilename(file.name);
@@ -194,24 +180,19 @@ const EmojiUploadPicker = props => {
194
180
  cancelChooseFile();
195
181
  }
196
182
  };
197
-
198
183
  const cancelChooseFile = () => {
199
184
  setPreviewImage(undefined);
200
185
  };
201
-
202
186
  const onChooseFile = event => {
203
187
  const files = event.target.files;
204
-
205
188
  if (files.length) {
206
189
  const reader = new FileReader();
207
190
  const file = files[0];
208
-
209
191
  if (ImageUtil.hasFileExceededSize(file)) {
210
192
  setChooseEmojiErrorMessage(messages.emojiImageTooBig);
211
193
  cancelChooseFile();
212
194
  return;
213
195
  }
214
-
215
196
  reader.addEventListener('load', onFileLoad(file));
216
197
  reader.addEventListener('abort', errorOnUpload);
217
198
  reader.addEventListener('error', errorOnUpload);
@@ -220,18 +201,15 @@ const EmojiUploadPicker = props => {
220
201
  cancelChooseFile();
221
202
  }
222
203
  };
223
-
224
204
  const clearUploadPicker = () => {
225
205
  setName(undefined);
226
206
  setPreviewImage(undefined);
227
207
  setUploadStatus(UploadStatus.Waiting);
228
208
  };
229
-
230
209
  const cancelUpload = () => {
231
210
  clearUploadPicker();
232
211
  onUploadCancelled();
233
212
  };
234
-
235
213
  return jsx(React.Fragment, null, name && previewImage ? jsx(EmojiUploadPreview, {
236
214
  errorMessage: errorMessage,
237
215
  name: name,
@@ -249,5 +227,4 @@ const EmojiUploadPicker = props => {
249
227
  intl: intl
250
228
  }));
251
229
  };
252
-
253
230
  export default injectIntl(EmojiUploadPicker);
@@ -1,5 +1,4 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
-
3
2
  /** @jsx jsx */
4
3
  import { PureComponent } from 'react';
5
4
  import { jsx } from '@emotion/react';
@@ -14,7 +13,6 @@ import RetryableButton from './RetryableButton';
14
13
  import { bigEmojiPreview, cancelButton, emojiPreviewErrorMessage, uploadAddRow, uploadPreview, uploadPreviewFooter, uploadPreviewText } from './styles';
15
14
  export const uploadPreviewTestId = 'upload-preview';
16
15
  export const cancelUploadButtonTestId = 'cancel-upload-button';
17
-
18
16
  class EmojiUploadPreview extends PureComponent {
19
17
  render() {
20
18
  const {
@@ -30,7 +28,6 @@ class EmojiUploadPreview extends PureComponent {
30
28
  formatMessage
31
29
  } = intl;
32
30
  let emojiComponent;
33
-
34
31
  if (previewImage) {
35
32
  const emoji = {
36
33
  shortName: `:${name}:`,
@@ -47,7 +44,6 @@ class EmojiUploadPreview extends PureComponent {
47
44
  emoji: emoji
48
45
  });
49
46
  }
50
-
51
47
  const uploading = uploadStatus === UploadStatus.Uploading;
52
48
  return jsx("div", {
53
49
  css: uploadPreviewFooter
@@ -82,7 +78,5 @@ class EmojiUploadPreview extends PureComponent {
82
78
  testId: cancelUploadButtonTestId
83
79
  }, jsx(FormattedMessage, messages.cancelLabel))));
84
80
  }
85
-
86
81
  }
87
-
88
82
  export default injectIntl(EmojiUploadPreview);
@@ -2,7 +2,6 @@ import React, { useRef } from 'react';
2
2
  import AkButton from '@atlaskit/button/custom-theme-button';
3
3
  export const chooseFileButtonTestId = 'choose-file-button';
4
4
  export const fileUploadInputTestId = 'file-upload';
5
-
6
5
  const FileChooser = props => {
7
6
  const {
8
7
  accept,
@@ -13,19 +12,15 @@ const FileChooser = props => {
13
12
  onClick
14
13
  } = props;
15
14
  const filePickerRef = useRef(null);
16
-
17
15
  const handleOnChooseFile = () => {
18
16
  if (!filePickerRef.current) {
19
17
  return;
20
18
  }
21
-
22
19
  if (onClick) {
23
20
  onClick();
24
21
  }
25
-
26
22
  filePickerRef.current.click();
27
23
  };
28
-
29
24
  return /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(AkButton, {
30
25
  onClick: handleOnChooseFile,
31
26
  isDisabled: isDisabled,
@@ -43,5 +38,4 @@ const FileChooser = props => {
43
38
  "data-testid": fileUploadInputTestId
44
39
  }));
45
40
  };
46
-
47
41
  export default FileChooser;
@@ -1,6 +1,5 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import { Component } from 'react';
3
-
4
3
  /**
5
4
  * A base class for components that don't want to start rendering
6
5
  * until the EmojiProvider is resolved.
@@ -10,17 +9,14 @@ import { Component } from 'react';
10
9
  export default class LoadingEmojiComponent extends Component {
11
10
  constructor(props, _state) {
12
11
  super(props);
13
-
14
12
  _defineProperty(this, "isUnmounted", false);
15
-
16
13
  _defineProperty(this, "loaded", state => !!state.asyncLoadedComponent && !!state.loadedEmojiProvider);
14
+ this.state = _state;
17
15
 
18
- this.state = _state; // initializing here instead of componentDidMount to avoid needless
16
+ // initializing here instead of componentDidMount to avoid needless
19
17
  // rerendering if emojiProvider resolves immediately.
20
-
21
18
  this.loadEmojiProvider(this.props.emojiProvider);
22
19
  }
23
-
24
20
  componentDidMount() {
25
21
  // check for the module has not yet been loaded
26
22
  // state.asyncLoadedComponent should be initialised
@@ -29,15 +25,12 @@ export default class LoadingEmojiComponent extends Component {
29
25
  this.asyncLoadComponent();
30
26
  }
31
27
  }
32
-
33
28
  UNSAFE_componentWillReceiveProps(nextProps) {
34
29
  this.loadEmojiProvider(nextProps.emojiProvider);
35
30
  }
36
-
37
31
  componentWillUnmount() {
38
32
  this.isUnmounted = true;
39
33
  }
40
-
41
34
  loadEmojiProvider(futureEmojiProvider) {
42
35
  futureEmojiProvider.then(loadedEmojiProvider => {
43
36
  if (!this.isUnmounted) {
@@ -53,7 +46,6 @@ export default class LoadingEmojiComponent extends Component {
53
46
  }
54
47
  });
55
48
  }
56
-
57
49
  setAsyncState(asyncLoadedComponent) {
58
50
  if (!this.isUnmounted) {
59
51
  this.setState({
@@ -61,11 +53,9 @@ export default class LoadingEmojiComponent extends Component {
61
53
  });
62
54
  }
63
55
  }
64
-
65
56
  renderLoading() {
66
57
  return null;
67
58
  }
68
-
69
59
  render() {
70
60
  if (this.loaded(this.state)) {
71
61
  const {
@@ -74,8 +64,6 @@ export default class LoadingEmojiComponent extends Component {
74
64
  } = this.state;
75
65
  return this.renderLoaded(loadedEmojiProvider, asyncLoadedComponent);
76
66
  }
77
-
78
67
  return this.renderLoading();
79
68
  }
80
-
81
69
  }
@@ -1,15 +1,12 @@
1
1
  import React, { useCallback, useEffect, useRef, useState } from 'react';
2
2
  import ReactDOM from 'react-dom';
3
-
4
3
  const getTargetNode = target => {
5
4
  if (typeof target === 'string') {
6
5
  return document.querySelector(target);
7
- } // Expect to be an element
8
-
9
-
6
+ }
7
+ // Expect to be an element
10
8
  return target;
11
9
  };
12
-
13
10
  const Popup = props => {
14
11
  const {
15
12
  relativePosition = 'auto',
@@ -23,7 +20,6 @@ const Popup = props => {
23
20
  const [debounced, setDebounced] = useState(null);
24
21
  const applyBelowPosition = useCallback(() => {
25
22
  const targetNode = getTargetNode(target);
26
-
27
23
  if (targetNode && popup.current) {
28
24
  const box = targetNode.getBoundingClientRect();
29
25
  const top = box.bottom + (offsetY || 0);
@@ -37,9 +33,7 @@ const Popup = props => {
37
33
  if (typeof window === 'undefined') {
38
34
  return;
39
35
  }
40
-
41
36
  const targetNode = getTargetNode(target);
42
-
43
37
  if (targetNode && popup.current) {
44
38
  const box = targetNode.getBoundingClientRect();
45
39
  const bottom = window.innerHeight - box.top + (offsetY || 0);
@@ -53,18 +47,15 @@ const Popup = props => {
53
47
  if (typeof window === 'undefined') {
54
48
  return;
55
49
  }
56
-
57
50
  if (relativePosition === 'above') {
58
51
  applyAbovePosition();
59
52
  } else if (relativePosition === 'below') {
60
53
  applyBelowPosition();
61
54
  } else {
62
55
  const targetNode = getTargetNode(target);
63
-
64
56
  if (targetNode) {
65
57
  const box = targetNode.getBoundingClientRect();
66
58
  const viewPortHeight = window.innerHeight;
67
-
68
59
  if (box.top < viewPortHeight / 2) {
69
60
  applyBelowPosition();
70
61
  } else {
@@ -72,7 +63,6 @@ const Popup = props => {
72
63
  }
73
64
  }
74
65
  }
75
-
76
66
  if (zIndex && popup.current) {
77
67
  popup.current.style.zIndex = `${zIndex}`;
78
68
  }
@@ -82,12 +72,10 @@ const Popup = props => {
82
72
  clearTimeout(debounced);
83
73
  setDebounced(null);
84
74
  }
85
-
86
75
  if (typeof window === 'undefined') {
87
76
  return;
88
- } // Timeout set to 30ms as to not throttle IE11
89
-
90
-
77
+ }
78
+ // Timeout set to 30ms as to not throttle IE11
91
79
  const debounceId = window.setTimeout(() => {
92
80
  applyAbsolutePosition();
93
81
  setDebounced(null);
@@ -98,27 +86,22 @@ const Popup = props => {
98
86
  if (!popup.current) {
99
87
  return;
100
88
  }
101
-
102
89
  ReactDOM.render(children, popup.current);
103
90
  }, [children]);
104
91
  useEffect(() => {
105
92
  popup.current = document.createElement('div');
106
93
  document.body.appendChild(popup.current);
107
94
  popup.current.style.position = 'absolute';
108
-
109
95
  if (typeof window !== 'undefined') {
110
96
  window.addEventListener('resize', handleResize);
111
97
  }
112
-
113
98
  applyAbsolutePosition();
114
99
  renderPopup();
115
100
  return () => {
116
101
  if (typeof window === 'undefined') {
117
102
  return;
118
103
  }
119
-
120
104
  window.removeEventListener('resize', handleResize);
121
-
122
105
  if (popup.current) {
123
106
  ReactDOM.unmountComponentAtNode(popup.current);
124
107
  document.body.removeChild(popup.current);
@@ -127,5 +110,4 @@ const Popup = props => {
127
110
  }, [applyAbsolutePosition, handleResize, renderPopup]);
128
111
  return /*#__PURE__*/React.createElement("div", null);
129
112
  };
130
-
131
113
  export default Popup;
@@ -1,5 +1,6 @@
1
1
  import { recordFailed, recordSucceeded, ufoExperiences } from '../../util/analytics';
2
2
  import { extractErrorInfo } from '../../util/analytics/analytics';
3
+
3
4
  /**
4
5
  * A function that will wrap any configured Emoji 'onSelection' function to ensure recordSelection is always
5
6
  * called.
@@ -8,7 +9,6 @@ import { extractErrorInfo } from '../../util/analytics/analytics';
8
9
  * @param onSelect the onSelect function that is explicitly configured on the Emoji component.
9
10
  * @param fireAnalytics a function used to fire analytics events.
10
11
  */
11
-
12
12
  export const createRecordSelectionDefault = (provider, onSelect, fireAnalytics) => {
13
13
  return (emojiId, emoji, event) => {
14
14
  try {
@@ -4,12 +4,9 @@ import { UfoErrorBoundary } from './UfoErrorBoundary';
4
4
  import { sampledUfoRenderedEmoji, ufoExperiences } from '../../util/analytics';
5
5
  import { SAMPLING_RATE_EMOJI_RENDERED_EXP } from '../../util/constants';
6
6
  const ResourcedEmojiComponent = Loadable({
7
- loader: () => import(
8
- /* webpackChunkName: "@atlaskit-internal_resourcedEmojiComponent" */
9
- './ResourcedEmojiComponent').then(component => component.ResourcedEmojiComponent),
7
+ loader: () => import( /* webpackChunkName: "@atlaskit-internal_resourcedEmojiComponent" */'./ResourcedEmojiComponent').then(component => component.ResourcedEmojiComponent),
10
8
  loading: () => null
11
9
  });
12
-
13
10
  const ResourcedEmoji = props => {
14
11
  const {
15
12
  emojiId
@@ -18,7 +15,6 @@ const ResourcedEmoji = props => {
18
15
  if (!emojiId) {
19
16
  return;
20
17
  }
21
-
22
18
  sampledUfoRenderedEmoji(emojiId).start({
23
19
  samplingRate: SAMPLING_RATE_EMOJI_RENDERED_EXP
24
20
  });
@@ -39,5 +35,4 @@ const ResourcedEmoji = props => {
39
35
  experiences: [ufoExperiences['emoji-rendered'].getInstance(props.emojiId.id || props.emojiId.shortName)]
40
36
  }, /*#__PURE__*/React.createElement(ResourcedEmojiComponent, props));
41
37
  };
42
-
43
38
  export default ResourcedEmoji;
@@ -8,13 +8,11 @@ import { sampledUfoRenderedEmoji } from '../../util/analytics';
8
8
  import { EmojiCommonProvider } from '../../context/EmojiCommonProvider';
9
9
  import { hasUfoMarked } from '../../util/analytics/ufoExperiences';
10
10
  var ResourcedEmojiComponentRenderStatesEnum;
11
-
12
11
  (function (ResourcedEmojiComponentRenderStatesEnum) {
13
12
  ResourcedEmojiComponentRenderStatesEnum["INITIAL"] = "INITIAL";
14
13
  ResourcedEmojiComponentRenderStatesEnum["FALLBACK"] = "FALLBACK";
15
14
  ResourcedEmojiComponentRenderStatesEnum["EMOJI"] = "EMOJI";
16
15
  })(ResourcedEmojiComponentRenderStatesEnum || (ResourcedEmojiComponentRenderStatesEnum = {}));
17
-
18
16
  export const ResourcedEmojiComponent = props => {
19
17
  const {
20
18
  emojiProvider,
@@ -44,16 +42,12 @@ export const ResourcedEmojiComponent = props => {
44
42
  }
45
43
  });
46
44
  }
47
-
48
45
  const foundEmoji = _emojiProvider.fetchByEmojiId(emojiId, optimisticFetch);
49
-
50
46
  sampledUfoRenderedEmoji(emojiId).mark(UfoEmojiTimings.METADATA_START);
51
-
52
47
  if (isPromise(foundEmoji)) {
53
48
  setLoaded(false);
54
49
  foundEmoji.then(emoji => {
55
50
  setEmoji(emoji);
56
-
57
51
  if (!emoji) {
58
52
  // emoji is undefined
59
53
  sampledUfoRenderedEmoji(emojiId).failure({
@@ -97,7 +91,6 @@ export const ResourcedEmojiComponent = props => {
97
91
  if (!emojiId) {
98
92
  return;
99
93
  }
100
-
101
94
  if (!hasUfoMarked(sampledUfoRenderedEmoji(emojiId), UfoEmojiTimings.FMP_END)) {
102
95
  sampledUfoRenderedEmoji(emojiId).markFMP();
103
96
  }
@@ -106,7 +99,6 @@ export const ResourcedEmojiComponent = props => {
106
99
  if (!resolvedEmojiProvider || !emojiId) {
107
100
  return;
108
101
  }
109
-
110
102
  fetchOrGetEmoji(resolvedEmojiProvider, emojiId, optimistic);
111
103
  }, [resolvedEmojiProvider, emojiId, optimistic, fetchOrGetEmoji]);
112
104
  useEffect(() => {
@@ -120,7 +112,6 @@ export const ResourcedEmojiComponent = props => {
120
112
  } else if (!emoji && loaded || imageLoadError) {
121
113
  return ResourcedEmojiComponentRenderStatesEnum.FALLBACK;
122
114
  }
123
-
124
115
  return ResourcedEmojiComponentRenderStatesEnum.EMOJI;
125
116
  }, [emoji, loaded, optimisticImageURL, imageLoadError]);
126
117
  const optimisticEmojiDescription = useMemo(() => {
@@ -130,7 +121,8 @@ export const ResourcedEmojiComponent = props => {
130
121
  width,
131
122
  height
132
123
  } = emoji.representation;
133
- return { ...emoji,
124
+ return {
125
+ ...emoji,
134
126
  representation: {
135
127
  width,
136
128
  height,
@@ -153,10 +145,8 @@ export const ResourcedEmojiComponent = props => {
153
145
  };
154
146
  }
155
147
  }
156
-
157
148
  return emoji;
158
149
  }, [emoji, optimisticImageURL, fallback, fitToHeight, id, shortName]);
159
-
160
150
  const handleOnLoadError = emojiId => {
161
151
  setImageLoadError(true);
162
152
  sampledUfoRenderedEmoji(emojiId).failure({
@@ -167,7 +157,6 @@ export const ResourcedEmojiComponent = props => {
167
157
  }
168
158
  });
169
159
  };
170
-
171
160
  return /*#__PURE__*/React.createElement(EmojiCommonProvider, {
172
161
  emojiProvider: resolvedEmojiProvider
173
162
  }, /*#__PURE__*/React.createElement("span", {
@@ -1,4 +1,5 @@
1
1
  /** @jsx jsx */
2
+
2
3
  import { FormattedMessage } from 'react-intl-next';
3
4
  import { jsx } from '@emotion/react';
4
5
  import AkButton from '@atlaskit/button/custom-theme-button';
@@ -7,13 +8,11 @@ import { messages } from '../i18n';
7
8
  import { buttonSpinner, uploadEmojiButton, uploadRetryButton } from './styles';
8
9
  export const retryUploadButtonTestId = 'retry-upload-button';
9
10
  export const uploadEmojiButtonTestId = 'upload-emoji-button';
10
-
11
11
  const LoadingSpinner = () => {
12
12
  return jsx("span", {
13
13
  css: buttonSpinner
14
14
  }, jsx(Spinner, null));
15
15
  };
16
-
17
16
  const RetryButton = props => {
18
17
  const {
19
18
  onSubmit
@@ -25,7 +24,6 @@ const RetryButton = props => {
25
24
  testId: retryUploadButtonTestId
26
25
  }, retryLabel));
27
26
  };
28
-
29
27
  const UploadButton = props => {
30
28
  const {
31
29
  appearance,
@@ -39,22 +37,17 @@ const UploadButton = props => {
39
37
  testId: uploadEmojiButtonTestId
40
38
  }, label);
41
39
  };
42
-
43
40
  const RetryableButton = props => {
44
41
  const {
45
42
  loading,
46
43
  error
47
44
  } = props;
48
-
49
45
  if (loading) {
50
46
  return jsx(LoadingSpinner, null);
51
47
  }
52
-
53
48
  if (error) {
54
49
  return jsx(RetryButton, props);
55
50
  }
56
-
57
51
  return jsx(UploadButton, props);
58
52
  };
59
-
60
53
  export default RetryableButton;