@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
@@ -9,17 +9,14 @@ import * as styles from './styles';
9
9
  export default class Scrollable extends PureComponent {
10
10
  constructor(...args) {
11
11
  super(...args);
12
-
13
12
  _defineProperty(this, "scrollableDiv", null);
14
-
15
13
  _defineProperty(this, "reveal", (child, forceToTop) => {
16
14
  if (child && this.scrollableDiv) {
17
- const childNode = findDOMNode(child); // Not using Element.scrollIntoView as it scrolls even to top/bottom of view even if
15
+ const childNode = findDOMNode(child);
16
+ // Not using Element.scrollIntoView as it scrolls even to top/bottom of view even if
18
17
  // already visible
19
-
20
18
  const scrollableRect = this.scrollableDiv.getBoundingClientRect();
21
19
  const elementRect = childNode.getBoundingClientRect();
22
-
23
20
  if (forceToTop || elementRect.top < scrollableRect.top) {
24
21
  this.scrollableDiv.scrollTop += elementRect.top - scrollableRect.top;
25
22
  } else if (elementRect.bottom > scrollableRect.bottom) {
@@ -27,32 +24,26 @@ export default class Scrollable extends PureComponent {
27
24
  }
28
25
  }
29
26
  });
30
-
31
27
  _defineProperty(this, "scrollToBottom", () => {
32
28
  if (this.scrollableDiv) {
33
29
  this.scrollableDiv.scrollTop = this.scrollableDiv.scrollHeight;
34
30
  }
35
31
  });
36
-
37
32
  _defineProperty(this, "handleScroll", event => {
38
33
  const sampleOffset = 10;
39
34
  let firstElement;
40
-
41
35
  if (this.scrollableDiv) {
42
36
  const scrollableRect = this.scrollableDiv.getBoundingClientRect();
43
37
  firstElement = document.elementFromPoint(scrollableRect.left + sampleOffset, scrollableRect.top + sampleOffset);
44
38
  }
45
-
46
39
  if (this.props.onScroll && firstElement) {
47
40
  this.props.onScroll(firstElement, event);
48
41
  }
49
42
  });
50
-
51
43
  _defineProperty(this, "handleRef", ref => {
52
44
  this.scrollableDiv = ref;
53
45
  });
54
46
  }
55
-
56
47
  render() {
57
48
  const {
58
49
  children,
@@ -72,5 +63,4 @@ export default class Scrollable extends PureComponent {
72
63
  style: style
73
64
  }, children);
74
65
  }
75
-
76
66
  }
@@ -3,15 +3,12 @@ import EmojiButton from './EmojiButton';
3
3
  import { withAnalyticsEvents } from '@atlaskit/analytics-next';
4
4
  import { createAndFireEventInElementsChannel, toneSelectedEvent, toneSelectorOpenedEvent } from '../../util/analytics';
5
5
  import { setSkinToneAriaLabelText } from './setSkinToneAriaLabelText';
6
-
7
6
  const extractAllTones = emoji => {
8
7
  if (emoji.skinVariations) {
9
8
  return [emoji, ...emoji.skinVariations];
10
9
  }
11
-
12
10
  return [emoji];
13
11
  };
14
-
15
12
  export const ToneSelectorInternal = props => {
16
13
  const {
17
14
  createAnalyticsEvent,
@@ -22,7 +19,8 @@ export const ToneSelectorInternal = props => {
22
19
  const isMounted = useRef(false);
23
20
  const firstToneButtonRef = useRef(null);
24
21
  const emojiToneCollection = useMemo(() => {
25
- return extractAllTones(emoji).map((tone, index) => ({ ...tone,
22
+ return extractAllTones(emoji).map((tone, index) => ({
23
+ ...tone,
26
24
  focused: tone.id !== previewEmojiId,
27
25
  label: setSkinToneAriaLabelText(tone.name),
28
26
  toneId: index
@@ -33,13 +31,11 @@ export const ToneSelectorInternal = props => {
33
31
  firstToneButtonRef.current.focus();
34
32
  }
35
33
  }, [firstToneButtonRef]);
36
-
37
34
  const fireAnalyticsEvent = event => {
38
35
  if (createAnalyticsEvent) {
39
36
  createAndFireEventInElementsChannel(event)(createAnalyticsEvent);
40
37
  }
41
38
  };
42
-
43
39
  const onToneSelectedHandler = toneValue => () => {
44
40
  onToneSelected(toneValue);
45
41
  const toneList = ['default', 'light', 'mediumLight', 'medium', 'mediumDark', 'dark'];
@@ -47,11 +43,9 @@ export const ToneSelectorInternal = props => {
47
43
  skinToneModifier: toneList[toneValue]
48
44
  }));
49
45
  };
50
-
51
46
  if (!isMounted.current) {
52
47
  fireAnalyticsEvent(toneSelectorOpenedEvent({}));
53
48
  }
54
-
55
49
  isMounted.current = true;
56
50
  return /*#__PURE__*/React.createElement("div", null, emojiToneCollection.map(tone => {
57
51
  return /*#__PURE__*/React.createElement(EmojiButton, {
@@ -15,9 +15,7 @@ export class UfoErrorBoundary extends React.Component {
15
15
  });
16
16
  }
17
17
  }
18
-
19
18
  render() {
20
19
  return this.props.children;
21
20
  }
22
-
23
21
  }
@@ -6,7 +6,6 @@ import { extractErrorInfo } from '../../util/analytics/analytics';
6
6
  export const uploadEmoji = (upload, emojiProvider, errorSetter, onSuccess, fireAnalytics, retry) => {
7
7
  const startTime = Date.now();
8
8
  errorSetter(undefined);
9
-
10
9
  if (supportsUploadFeature(emojiProvider)) {
11
10
  ufoExperiences['emoji-uploaded'].start();
12
11
  emojiProvider.uploadCustomEmoji(upload, retry).then(emojiDescription => {
@@ -16,8 +15,8 @@ export const uploadEmoji = (upload, emojiProvider, errorSetter, onSuccess, fireA
16
15
  onSuccess(emojiDescription);
17
16
  ufoExperiences['emoji-uploaded'].success();
18
17
  }).catch(err => {
19
- errorSetter(messages.emojiUploadFailed); // eslint-disable-next-line no-console
20
-
18
+ errorSetter(messages.emojiUploadFailed);
19
+ // eslint-disable-next-line no-console
21
20
  console.error('Unable to upload emoji', err);
22
21
  fireAnalytics(uploadFailedEvent({
23
22
  duration: Date.now() - startTime,
@@ -1,5 +1,4 @@
1
1
  export let UploadStatus;
2
-
3
2
  (function (UploadStatus) {
4
3
  UploadStatus[UploadStatus["Waiting"] = 0] = "Waiting";
5
4
  UploadStatus[UploadStatus["Uploading"] = 1] = "Uploading";
@@ -100,7 +100,6 @@ export const emojiButton = css({
100
100
  border: '0',
101
101
  cursor: 'pointer',
102
102
  padding: 0,
103
-
104
103
  /* Firefox */
105
104
  ['&::-moz-focus-inner']: {
106
105
  border: '0 none',
@@ -124,8 +123,9 @@ export const emojiButton = css({
124
123
  export const hiddenToneButton = css({
125
124
  // Hide currently selected tone that rendered in the ToneSelector to avoid duplication
126
125
  display: 'none'
127
- }); // Emoji Preview
126
+ });
128
127
 
128
+ // Emoji Preview
129
129
  export const emojiPickerAddEmoji = 'emoji-picker-add-emoji';
130
130
  export const previewText = css({
131
131
  display: 'flex',
@@ -134,9 +134,7 @@ export const previewText = css({
134
134
  marginTop: '-2px',
135
135
  marginLeft: '10px',
136
136
  maxWidth: '285px',
137
- width: '285px'
138
- /* IE */
139
- ,
137
+ width: '285px' /* IE */,
140
138
  flexGrow: 1,
141
139
  flexShrink: 1
142
140
  });
@@ -193,7 +191,9 @@ export const previewImg = css({
193
191
  padding: 0,
194
192
  display: 'block'
195
193
  }
196
- }); // Scrollable
194
+ });
195
+
196
+ // Scrollable
197
197
 
198
198
  export const emojiScrollable = css({
199
199
  border: `1px solid ${"var(--ds-border, #fff)"}`,
@@ -203,7 +203,9 @@ export const emojiScrollable = css({
203
203
  overflowX: 'hidden',
204
204
  overflowY: 'auto',
205
205
  padding: '0'
206
- }); // EmojiUpload
206
+ });
207
+
208
+ // EmojiUpload
207
209
 
208
210
  export const emojiUpload = css({
209
211
  height: '78px',
@@ -293,7 +295,9 @@ export const addCustomEmoji = css({
293
295
  alignSelf: 'center',
294
296
  marginLeft: '10px',
295
297
  marginBottom: '10px'
296
- }); // Emoji Delete preview
298
+ });
299
+
300
+ // Emoji Delete preview
297
301
 
298
302
  export const submitDelete = 'emoji-submit-delete';
299
303
  export const deletePreview = css({
@@ -1,5 +1,4 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
-
3
2
  /** @jsx jsx */
4
3
  import React from 'react';
5
4
  import { jsx } from '@emotion/react';
@@ -10,54 +9,42 @@ import { messages } from '../i18n';
10
9
  import { CategoryDescriptionMap } from './categories';
11
10
  import { active, categorySelector, disable, categoryStyles } from './styles';
12
11
  export const sortCategories = (c1, c2) => CategoryDescriptionMap[c1].order - CategoryDescriptionMap[c2].order;
13
-
14
12
  const addNewCategories = (oldCategories, newCategories) => {
15
13
  if (!newCategories) {
16
14
  return oldCategories;
17
15
  }
18
-
19
16
  return oldCategories.concat(newCategories.filter(category => !!CategoryDescriptionMap[category])).sort(sortCategories);
20
17
  };
21
-
22
18
  export const categorySelectorComponentTestId = 'category-selector-component';
23
19
  export const categorySelectorCategoryTestId = categoryId => `category-selector-${categoryId}`;
24
-
25
20
  class CategorySelector extends PureComponent {
26
21
  constructor(props) {
27
22
  super(props);
28
-
29
23
  _defineProperty(this, "onClick", event => {
30
24
  const {
31
25
  onCategorySelected,
32
26
  disableCategories
33
27
  } = this.props;
34
-
35
28
  if (disableCategories) {
36
29
  event.preventDefault();
37
30
  return;
38
31
  }
39
-
40
32
  const categoryId = event.currentTarget.getAttribute('data-category-id');
41
-
42
33
  if (onCategorySelected) {
43
34
  onCategorySelected(categoryId);
44
35
  }
45
36
  });
46
-
47
37
  const {
48
38
  dynamicCategories
49
39
  } = props;
50
40
  let categories = defaultCategories;
51
-
52
41
  if (dynamicCategories) {
53
42
  categories = addNewCategories(categories, dynamicCategories);
54
43
  }
55
-
56
44
  this.state = {
57
45
  categories
58
46
  };
59
47
  }
60
-
61
48
  UNSAFE_componentWillUpdate(nextProps) {
62
49
  if (this.props.dynamicCategories !== nextProps.dynamicCategories) {
63
50
  this.setState({
@@ -65,7 +52,6 @@ class CategorySelector extends PureComponent {
65
52
  });
66
53
  }
67
54
  }
68
-
69
55
  render() {
70
56
  const {
71
57
  disableCategories,
@@ -75,7 +61,6 @@ class CategorySelector extends PureComponent {
75
61
  categories
76
62
  } = this.state;
77
63
  let categoriesSection;
78
-
79
64
  if (categories) {
80
65
  const {
81
66
  formatMessage
@@ -85,15 +70,12 @@ class CategorySelector extends PureComponent {
85
70
  }, categories.map(categoryId => {
86
71
  const category = CategoryDescriptionMap[categoryId];
87
72
  const categoryClasses = [categoryStyles];
88
-
89
73
  if (categoryId === this.props.activeCategoryId) {
90
74
  categoryClasses.push(active);
91
75
  }
92
-
93
76
  if (disableCategories) {
94
77
  categoryClasses.push(disable);
95
78
  }
96
-
97
79
  const Icon = category.icon;
98
80
  const categoryName = formatMessage(messages[category.name]);
99
81
  return jsx("li", {
@@ -112,17 +94,13 @@ class CategorySelector extends PureComponent {
112
94
  })));
113
95
  }));
114
96
  }
115
-
116
97
  return jsx("div", {
117
98
  css: categorySelector
118
99
  }, categoriesSection);
119
100
  }
120
-
121
101
  }
122
-
123
102
  _defineProperty(CategorySelector, "defaultProps", {
124
103
  onCategorySelected: () => {},
125
104
  dynamicCategories: []
126
105
  });
127
-
128
106
  export default injectIntl(CategorySelector);
@@ -8,51 +8,41 @@ export default class CategoryTracker {
8
8
  constructor() {
9
9
  this.reset();
10
10
  }
11
-
12
11
  reset() {
13
12
  this.categoryToRow = new Map();
14
13
  this.rowToCategory = new Map();
15
14
  }
16
-
17
15
  add(category, row) {
18
16
  if (!this.categoryToRow.has(category)) {
19
17
  this.categoryToRow.set(category, row);
20
18
  this.rowToCategory.set(row, category);
21
19
  }
22
20
  }
23
-
24
21
  getRow(category) {
25
22
  return this.categoryToRow.get(category);
26
23
  }
27
-
28
24
  findNearestCategoryAbove(startIndex, list) {
29
25
  const rows = Array.from(this.rowToCategory.keys()).sort((a, b) => a - b);
30
-
31
26
  if (rows.length === 0) {
32
27
  return;
33
- } // Return first category if list not yet rendered
34
- // or the top row is above the first category
35
-
28
+ }
36
29
 
30
+ // Return first category if list not yet rendered
31
+ // or the top row is above the first category
37
32
  if (!list || rows[0] > startIndex) {
38
33
  return this.rowToCategory.get(rows[0]);
39
34
  }
40
-
41
35
  let bounds = [0, rows.length - 1];
42
36
  let index = Math.floor(rows.length / 2);
43
-
44
37
  while (rows[index] !== startIndex && bounds[0] < bounds[1]) {
45
38
  if (rows[index] > startIndex) {
46
39
  bounds[1] = Math.max(index - 1, 0);
47
40
  } else {
48
41
  bounds[0] = index + 1;
49
42
  }
50
-
51
43
  index = Math.floor((bounds[0] + bounds[1]) / 2);
52
44
  }
53
-
54
45
  const headerRow = rows[rows[index] > startIndex ? Math.max(index - 1, 0) : index];
55
46
  return this.rowToCategory.get(headerRow);
56
47
  }
57
-
58
48
  }
@@ -1,6 +1,6 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
-
3
2
  /** @jsx jsx */
3
+
4
4
  import { jsx } from '@emotion/react';
5
5
  import { withAnalyticsEvents } from '@atlaskit/analytics-next';
6
6
  import { ufoExperiences } from '../../util/analytics';
@@ -10,49 +10,38 @@ import { emojiPicker } from './styles';
10
10
  import { UfoErrorBoundary } from '../common/UfoErrorBoundary';
11
11
  import { defaultEmojiPickerSize } from '../../util/constants';
12
12
  import { EmojiCommonProvider } from '../../context/EmojiCommonProvider';
13
-
14
- const emojiPickerModuleLoader = () => import(
15
- /* webpackChunkName:"@atlaskit-internal_emojiPickerComponent" */
16
- './EmojiPickerComponent');
17
-
13
+ const emojiPickerModuleLoader = () => import( /* webpackChunkName:"@atlaskit-internal_emojiPickerComponent" */'./EmojiPickerComponent');
18
14
  const emojiPickerLoader = () => emojiPickerModuleLoader().then(module => module.default);
19
-
20
15
  export class EmojiPickerInternal extends LoadingEmojiComponent {
21
16
  // state initialised with static component to prevent
22
17
  // rerender when the module has already been loaded
18
+
23
19
  constructor(props) {
24
20
  super(props, {});
25
-
26
21
  _defineProperty(this, "state", {
27
22
  asyncLoadedComponent: EmojiPickerInternal.AsyncLoadedComponent
28
23
  });
29
-
30
24
  ufoExperiences['emoji-picker-opened'].start();
31
25
  }
32
-
33
26
  asyncLoadComponent() {
34
27
  emojiPickerLoader().then(component => {
35
28
  EmojiPickerInternal.AsyncLoadedComponent = component;
36
29
  this.setAsyncState(component);
37
30
  });
38
31
  }
39
-
40
32
  renderLoading() {
41
33
  const item = new LoadingItem();
42
-
43
34
  const handlePickerRef = ref => {
44
35
  if (this.props.onPickerRef) {
45
36
  this.props.onPickerRef(ref);
46
37
  }
47
38
  };
48
-
49
39
  ufoExperiences['emoji-picker-opened'].markFMP();
50
40
  return jsx("div", {
51
41
  css: emojiPicker(),
52
42
  ref: handlePickerRef
53
43
  }, item.renderItem());
54
44
  }
55
-
56
45
  renderLoaded(loadedEmojiProvider, EmojiPickerComponent) {
57
46
  const {
58
47
  emojiProvider,
@@ -64,12 +53,9 @@ export class EmojiPickerInternal extends LoadingEmojiComponent {
64
53
  emojiProvider: loadedEmojiProvider
65
54
  }, jsx(EmojiPickerComponent, otherProps)));
66
55
  }
67
-
68
56
  }
69
-
70
57
  _defineProperty(EmojiPickerInternal, "defaultProps", {
71
58
  size: defaultEmojiPickerSize
72
59
  });
73
-
74
60
  const EmojiPicker = withAnalyticsEvents()(EmojiPickerInternal);
75
61
  export default EmojiPicker;
@@ -1,15 +1,15 @@
1
1
  /** @jsx jsx */
2
+
2
3
  import { jsx } from '@emotion/react';
3
4
  import { FormattedMessage } from 'react-intl-next';
4
5
  import { isMessagesKey } from '../../util/type-helpers';
5
6
  import { messages } from '../i18n';
6
7
  import { emojiCategoryTitle } from './styles';
8
+
7
9
  /**
8
10
  * Test id for wrapper Emoji Picker List div
9
11
  */
10
-
11
12
  export const RENDER_EMOJI_PICKER_CATEGORY_HEADING_TESTID = 'render-emoji-picker-categorty-heading';
12
-
13
13
  const EmojiPickerCategoryHeading = ({
14
14
  id,
15
15
  title,
@@ -22,5 +22,4 @@ const EmojiPickerCategoryHeading = ({
22
22
  }, jsx("div", {
23
23
  css: emojiCategoryTitle
24
24
  }, isMessagesKey(title) ? jsx(FormattedMessage, messages[title]) : title));
25
-
26
25
  export default EmojiPickerCategoryHeading;