@atlaskit/emoji 67.0.4 → 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 (279) hide show
  1. package/CHANGELOG.md +6 -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 +2 -2
@@ -1,53 +1,38 @@
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.shouldUseAltRepresentation = exports.isMediaApiUrl = exports.getPixelRatio = exports.getAltRepresentation = exports.emojiRequest = exports.denormaliseSkinEmoji = exports.denormaliseServiceRepresentation = exports.denormaliseServiceAltRepresentation = exports.denormaliseEmojiServiceResponse = void 0;
9
-
10
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
9
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
-
14
10
  var _utilServiceSupport = require("@atlaskit/util-service-support");
15
-
16
11
  var _typeHelpers = require("../util/type-helpers");
17
-
18
12
  var _logger = _interopRequireDefault(require("../util/logger"));
19
-
20
13
  var _excluded = ["getRatio"],
21
- _excluded2 = ["queryParams"],
22
- _excluded3 = ["representation", "altRepresentations"],
23
- _excluded4 = ["representation", "skinVariations", "altRepresentations"];
24
-
14
+ _excluded2 = ["queryParams"],
15
+ _excluded3 = ["representation", "altRepresentations"],
16
+ _excluded4 = ["representation", "skinVariations", "altRepresentations"];
25
17
  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; }
26
-
27
18
  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; }
28
-
29
19
  var emojiRequest = function emojiRequest(provider, options) {
30
20
  var _provider$getRatio = provider.getRatio,
31
- getRatio = _provider$getRatio === void 0 ? getPixelRatio : _provider$getRatio,
32
- serviceConfig = (0, _objectWithoutProperties2.default)(provider, _excluded);
21
+ getRatio = _provider$getRatio === void 0 ? getPixelRatio : _provider$getRatio,
22
+ serviceConfig = (0, _objectWithoutProperties2.default)(provider, _excluded);
33
23
  var scaleQueryParams = calculateScale(getRatio);
34
-
35
24
  var _ref = options || {},
36
- _ref$queryParams = _ref.queryParams,
37
- queryParams = _ref$queryParams === void 0 ? {} : _ref$queryParams,
38
- otherOptions = (0, _objectWithoutProperties2.default)(_ref, _excluded2);
39
-
25
+ _ref$queryParams = _ref.queryParams,
26
+ queryParams = _ref$queryParams === void 0 ? {} : _ref$queryParams,
27
+ otherOptions = (0, _objectWithoutProperties2.default)(_ref, _excluded2);
40
28
  var requestOptions = _objectSpread(_objectSpread({}, otherOptions), {}, {
41
29
  queryParams: _objectSpread(_objectSpread(_objectSpread({}, scaleQueryParams), queryParams), {}, {
42
30
  preferredRepresentation: 'IMAGE'
43
31
  })
44
32
  });
45
-
46
33
  return _utilServiceSupport.utils.requestService(serviceConfig, requestOptions);
47
34
  };
48
-
49
35
  exports.emojiRequest = emojiRequest;
50
-
51
36
  var calculateScale = function calculateScale(getRatio) {
52
37
  // Retina display
53
38
  if (getRatio() > 1) {
@@ -55,49 +40,39 @@ var calculateScale = function calculateScale(getRatio) {
55
40
  scale: 'XHDPI',
56
41
  altScale: 'XXXHDPI'
57
42
  };
58
- } // Default set used for desktop
59
-
60
-
43
+ }
44
+ // Default set used for desktop
61
45
  return {
62
46
  altScale: 'XHDPI'
63
47
  };
64
48
  };
65
-
66
49
  var getPixelRatio = function getPixelRatio() {
67
50
  if (typeof window === 'undefined') {
68
51
  return 0;
69
52
  }
70
-
71
53
  return window.devicePixelRatio;
72
54
  };
73
-
74
55
  exports.getPixelRatio = getPixelRatio;
75
-
76
56
  var getAltRepresentation = function getAltRepresentation(reps) {
77
57
  // Invalid reps handled outside function - logic may change depending what the service returns
78
58
  return reps[calculateScale(getPixelRatio).altScale];
79
59
  };
80
-
81
60
  exports.getAltRepresentation = getAltRepresentation;
82
-
83
61
  var isMediaApiUrl = function isMediaApiUrl(url, meta) {
84
62
  return !!(meta && meta.mediaApiToken && url.indexOf(meta.mediaApiToken.url) === 0);
85
63
  };
86
-
87
64
  exports.isMediaApiUrl = isMediaApiUrl;
88
-
89
65
  var denormaliseServiceRepresentation = function denormaliseServiceRepresentation(representation, meta) {
90
66
  if ((0, _typeHelpers.isSpriteServiceRepresentation)(representation) && meta && meta.spriteSheets) {
91
67
  var _ref2 = representation,
92
- height = _ref2.height,
93
- width = _ref2.width,
94
- x = _ref2.x,
95
- y = _ref2.y,
96
- xIndex = _ref2.xIndex,
97
- yIndex = _ref2.yIndex,
98
- spriteRef = _ref2.spriteRef;
68
+ height = _ref2.height,
69
+ width = _ref2.width,
70
+ x = _ref2.x,
71
+ y = _ref2.y,
72
+ xIndex = _ref2.xIndex,
73
+ yIndex = _ref2.yIndex,
74
+ spriteRef = _ref2.spriteRef;
99
75
  var spriteSheet = meta.spriteSheets[spriteRef];
100
-
101
76
  if (spriteSheet) {
102
77
  return {
103
78
  sprite: spriteSheet,
@@ -111,43 +86,35 @@ var denormaliseServiceRepresentation = function denormaliseServiceRepresentation
111
86
  }
112
87
  } else if ((0, _typeHelpers.isImageRepresentation)(representation)) {
113
88
  var _height = representation.height,
114
- _width = representation.width,
115
- imagePath = representation.imagePath;
116
-
89
+ _width = representation.width,
90
+ imagePath = representation.imagePath;
117
91
  if (isMediaApiUrl(imagePath, meta)) {
118
92
  return (0, _typeHelpers.convertImageToMediaRepresentation)(representation);
119
93
  }
120
-
121
94
  return {
122
95
  height: _height,
123
96
  width: _width,
124
97
  imagePath: imagePath
125
98
  };
126
99
  }
127
-
128
100
  (0, _logger.default)('failed conversion for representation', representation, meta);
129
101
  return undefined;
130
102
  };
131
-
132
103
  exports.denormaliseServiceRepresentation = denormaliseServiceRepresentation;
133
-
134
104
  var denormaliseServiceAltRepresentation = function denormaliseServiceAltRepresentation(altReps, meta) {
135
105
  return !altReps || Object.keys(altReps).length === 0 ? undefined : denormaliseServiceRepresentation(getAltRepresentation(altReps), meta);
136
106
  };
137
-
138
107
  exports.denormaliseServiceAltRepresentation = denormaliseServiceAltRepresentation;
139
-
140
108
  var denormaliseSkinEmoji = function denormaliseSkinEmoji(emoji, meta) {
141
109
  if (!emoji.skinVariations) {
142
110
  return [];
143
111
  }
144
-
145
112
  var skinEmoji = emoji.skinVariations;
146
113
  var baseId = emoji.id;
147
114
  return skinEmoji.map(function (skin) {
148
115
  var representation = skin.representation,
149
- altRepresentations = skin.altRepresentations,
150
- other = (0, _objectWithoutProperties2.default)(skin, _excluded3);
116
+ altRepresentations = skin.altRepresentations,
117
+ other = (0, _objectWithoutProperties2.default)(skin, _excluded3);
151
118
  return _objectSpread({
152
119
  baseId: baseId,
153
120
  representation: denormaliseServiceRepresentation(representation, meta),
@@ -155,30 +122,27 @@ var denormaliseSkinEmoji = function denormaliseSkinEmoji(emoji, meta) {
155
122
  }, other);
156
123
  });
157
124
  };
125
+
158
126
  /**
159
127
  * Denormalised an emoji response (emojis + sprite references) into an array of
160
128
  * emoji with local sprite definitions.
161
129
  */
162
-
163
-
164
130
  exports.denormaliseSkinEmoji = denormaliseSkinEmoji;
165
-
166
131
  var denormaliseEmojiServiceResponse = function denormaliseEmojiServiceResponse(emojiData) {
167
132
  var emojis = emojiData.emojis.map(function (emoji) {
168
133
  var newRepresentation = denormaliseServiceRepresentation(emoji.representation, emojiData.meta);
169
134
  var altRepresentation = denormaliseServiceAltRepresentation(emoji.altRepresentations, emojiData.meta);
170
- var newSkinVariations = denormaliseSkinEmoji(emoji, emojiData.meta); // create trimmedServiceDesc which is emoji with no representations or skinVariations
135
+ var newSkinVariations = denormaliseSkinEmoji(emoji, emojiData.meta);
171
136
 
137
+ // create trimmedServiceDesc which is emoji with no representations or skinVariations
172
138
  var representation = emoji.representation,
173
- skinVariations = emoji.skinVariations,
174
- altRepresentations = emoji.altRepresentations,
175
- trimmedServiceDesc = (0, _objectWithoutProperties2.default)(emoji, _excluded4);
176
-
139
+ skinVariations = emoji.skinVariations,
140
+ altRepresentations = emoji.altRepresentations,
141
+ trimmedServiceDesc = (0, _objectWithoutProperties2.default)(emoji, _excluded4);
177
142
  var response = _objectSpread(_objectSpread({}, trimmedServiceDesc), {}, {
178
143
  representation: newRepresentation,
179
144
  skinVariations: newSkinVariations
180
145
  });
181
-
182
146
  return (0, _typeHelpers.buildEmojiDescriptionWithAltRepresentation)(response, altRepresentation);
183
147
  });
184
148
  var mediaApiToken = emojiData.meta && emojiData.meta.mediaApiToken;
@@ -187,15 +151,11 @@ var denormaliseEmojiServiceResponse = function denormaliseEmojiServiceResponse(e
187
151
  mediaApiToken: mediaApiToken
188
152
  };
189
153
  };
190
-
191
154
  exports.denormaliseEmojiServiceResponse = denormaliseEmojiServiceResponse;
192
-
193
155
  var getHeight = function getHeight(fitToHeight) {
194
156
  return getPixelRatio() > 1 ? fitToHeight * 2 : fitToHeight;
195
157
  };
196
-
197
158
  var shouldUseAltRepresentation = function shouldUseAltRepresentation(emoji, fitToHeight) {
198
159
  return !!(fitToHeight && emoji.altRepresentation && getHeight(fitToHeight) > emoji.representation.height);
199
160
  };
200
-
201
161
  exports.shouldUseAltRepresentation = shouldUseAltRepresentation;
@@ -1,24 +1,17 @@
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.UsageFrequencyComparator = exports.QueryStringPositionMatchComparator = exports.OrderComparator = exports.ExactShortNameMatchComparator = exports.EmojiTypeComparator = exports.ChainedEmojiComparator = exports.AsciiMatchComparator = exports.AlphabeticalShortnameComparator = void 0;
9
8
  exports.createSearchEmojiComparator = createSearchEmojiComparator;
10
9
  exports.createUsageOnlyEmojiComparator = createUsageOnlyEmojiComparator;
11
-
12
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
11
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
-
16
12
  var _construct2 = _interopRequireDefault(require("@babel/runtime/helpers/construct"));
17
-
18
13
  var _constants = require("../../util/constants");
19
-
20
14
  var _typeHelpers = require("../../util/type-helpers");
21
-
22
15
  /**
23
16
  * Create the default sort comparator to be used for the user queries against emoji
24
17
  *
@@ -29,36 +22,33 @@ var _typeHelpers = require("../../util/type-helpers");
29
22
  function createSearchEmojiComparator(query, orderedIds) {
30
23
  var textQuery = query ? query.replace(/:/g, '').toLowerCase().trim() : undefined;
31
24
  var comparators = [];
32
-
33
25
  if (query) {
34
26
  comparators.push(new AsciiMatchComparator(query));
35
- } // Add the comparators to the 'chain'. The order of adding each comparator is important to the sort that is applied by the
36
- // ChainedEmojiComparator. (Which is why you may see the same 'if' a few times.)
27
+ }
37
28
 
29
+ // Add the comparators to the 'chain'. The order of adding each comparator is important to the sort that is applied by the
30
+ // ChainedEmojiComparator. (Which is why you may see the same 'if' a few times.)
38
31
 
39
32
  if (textQuery) {
40
33
  comparators.push(new ExactShortNameMatchComparator(textQuery));
41
34
  }
42
-
43
35
  if (orderedIds && orderedIds.length) {
44
36
  comparators.push(new UsageFrequencyComparator(orderedIds));
45
37
  }
46
-
47
38
  if (textQuery) {
48
39
  comparators.push(new QueryStringPositionMatchComparator(textQuery, 'shortName'), new QueryStringPositionMatchComparator(textQuery, 'name'));
49
40
  }
50
-
51
41
  comparators.push(OrderComparator.Instance, AlphabeticalShortnameComparator.Instance);
52
42
  var comparator = (0, _construct2.default)(ChainedEmojiComparator, comparators);
53
43
  comparator.compare = comparator.compare.bind(comparator);
54
44
  return comparator;
55
45
  }
56
-
57
46
  function createUsageOnlyEmojiComparator(orderedIds) {
58
47
  var comparator = new ChainedEmojiComparator(new UsageFrequencyComparator(orderedIds), new EmojiTypeComparator(), OrderComparator.Instance);
59
48
  comparator.compare = comparator.compare.bind(comparator);
60
49
  return comparator;
61
50
  }
51
+
62
52
  /**
63
53
  * Returns a number representing the result of comparing e1 and e2.
64
54
  * Compatible with Array.sort, which is to say -
@@ -66,8 +56,6 @@ function createUsageOnlyEmojiComparator(orderedIds) {
66
56
  * - 0 if they are equal; e1 and e2 will be unchanged in position relative to each other
67
57
  * - greater than 0 if e2 should come first.
68
58
  */
69
-
70
-
71
59
  /**
72
60
  * A combinator comparator that applies an ordered chained of sub-comparators. The first comparator that
73
61
  * returns a non-zero value stops the chain and causes that value to be returned. If a comparator returns a
@@ -78,25 +66,20 @@ function createUsageOnlyEmojiComparator(orderedIds) {
78
66
  var ChainedEmojiComparator = /*#__PURE__*/function () {
79
67
  function ChainedEmojiComparator() {
80
68
  (0, _classCallCheck2.default)(this, ChainedEmojiComparator);
81
-
82
69
  for (var _len = arguments.length, comparators = new Array(_len), _key = 0; _key < _len; _key++) {
83
70
  comparators[_key] = arguments[_key];
84
71
  }
85
-
86
72
  this.chain = comparators;
87
73
  }
88
-
89
74
  (0, _createClass2.default)(ChainedEmojiComparator, [{
90
75
  key: "compare",
91
76
  value: function compare(e1, e2) {
92
77
  for (var i = 0; i < this.chain.length; i++) {
93
78
  var result = this.chain[i].compare(e1, e2);
94
-
95
79
  if (result !== 0) {
96
80
  return result;
97
81
  }
98
82
  }
99
-
100
83
  return 0;
101
84
  }
102
85
  }]);
@@ -106,28 +89,22 @@ var ChainedEmojiComparator = /*#__PURE__*/function () {
106
89
  * Orders two emoji such that if one of them has an ascii representation that exactly matches the query then it will
107
90
  * be ordered first.
108
91
  */
109
-
110
-
111
92
  exports.ChainedEmojiComparator = ChainedEmojiComparator;
112
-
113
93
  var AsciiMatchComparator = /*#__PURE__*/function () {
114
94
  function AsciiMatchComparator(query) {
115
95
  (0, _classCallCheck2.default)(this, AsciiMatchComparator);
116
96
  this.query = query;
117
97
  }
118
-
119
98
  (0, _createClass2.default)(AsciiMatchComparator, [{
120
99
  key: "compare",
121
100
  value: function compare(e1, e2) {
122
101
  var e1HasAscii = e1.ascii && e1.ascii.indexOf(this.query) !== -1;
123
102
  var e2HasAscii = e2.ascii && e2.ascii.indexOf(this.query) !== -1;
124
-
125
103
  if (e1HasAscii && !e2HasAscii) {
126
104
  return -1;
127
105
  } else if (!e1HasAscii && e2HasAscii) {
128
106
  return 1;
129
107
  }
130
-
131
108
  return 0;
132
109
  }
133
110
  }]);
@@ -137,17 +114,13 @@ var AsciiMatchComparator = /*#__PURE__*/function () {
137
114
  * Orders two emoji such that the one who's shortname matches the query exactly comes first. If there are matching
138
115
  * shortnames then the type of emoji is taken into account with SITE emoji coming first.
139
116
  */
140
-
141
-
142
117
  exports.AsciiMatchComparator = AsciiMatchComparator;
143
-
144
118
  var ExactShortNameMatchComparator = /*#__PURE__*/function () {
145
119
  function ExactShortNameMatchComparator(query) {
146
120
  (0, _classCallCheck2.default)(this, ExactShortNameMatchComparator);
147
121
  this.colonQuery = ":".concat(query, ":");
148
122
  this.typeComparator = new EmojiTypeComparator(true);
149
123
  }
150
-
151
124
  (0, _createClass2.default)(ExactShortNameMatchComparator, [{
152
125
  key: "compare",
153
126
  value: function compare(e1, e2) {
@@ -158,7 +131,6 @@ var ExactShortNameMatchComparator = /*#__PURE__*/function () {
158
131
  } else if (e2.shortName === this.colonQuery) {
159
132
  return 1;
160
133
  }
161
-
162
134
  return 0;
163
135
  }
164
136
  }]);
@@ -170,21 +142,16 @@ var ExactShortNameMatchComparator = /*#__PURE__*/function () {
170
142
  *
171
143
  * Regardless of the reverse setting, an unknown type will always come last.
172
144
  */
173
-
174
-
175
145
  exports.ExactShortNameMatchComparator = ExactShortNameMatchComparator;
176
-
177
146
  var EmojiTypeComparator = /*#__PURE__*/function () {
178
147
  function EmojiTypeComparator(reverse) {
179
148
  (0, _classCallCheck2.default)(this, EmojiTypeComparator);
180
-
181
149
  if (reverse) {
182
150
  this.typeToNumber = new Map([['SITE', 0], ['ATLASSIAN', 1], ['STANDARD', 2]]);
183
151
  } else {
184
152
  this.typeToNumber = new Map([['STANDARD', 0], ['ATLASSIAN', 1], ['SITE', 2]]);
185
153
  }
186
154
  }
187
-
188
155
  (0, _createClass2.default)(EmojiTypeComparator, [{
189
156
  key: "compare",
190
157
  value: function compare(e1, e2) {
@@ -194,11 +161,9 @@ var EmojiTypeComparator = /*#__PURE__*/function () {
194
161
  key: "emojiTypeToOrdinal",
195
162
  value: function emojiTypeToOrdinal(emoji) {
196
163
  var ordinal = this.typeToNumber.get(emoji.type);
197
-
198
164
  if (ordinal === undefined) {
199
165
  ordinal = 10;
200
166
  }
201
-
202
167
  return ordinal;
203
168
  }
204
169
  }]);
@@ -208,23 +173,19 @@ var EmojiTypeComparator = /*#__PURE__*/function () {
208
173
  * Order two emoji such as the one which is more frequently used comes first. If neither have any usage
209
174
  * information then leave their order unchanged.
210
175
  */
211
-
212
-
213
176
  exports.EmojiTypeComparator = EmojiTypeComparator;
214
-
215
177
  var UsageFrequencyComparator = /*#__PURE__*/function () {
216
178
  // A Map of emoji base Id to their order in a least of most frequently used
179
+
217
180
  function UsageFrequencyComparator(orderedIds) {
218
181
  var _this = this;
219
-
220
182
  (0, _classCallCheck2.default)(this, UsageFrequencyComparator);
221
- this.positionLookup = new Map(); // Make ordering start from 1 to avoid having zero in the map (which is falsey)
222
-
183
+ this.positionLookup = new Map();
184
+ // Make ordering start from 1 to avoid having zero in the map (which is falsey)
223
185
  orderedIds.map(function (id, index) {
224
186
  return _this.positionLookup.set(id, index + 1);
225
187
  });
226
188
  }
227
-
228
189
  (0, _createClass2.default)(UsageFrequencyComparator, [{
229
190
  key: "compare",
230
191
  value: function compare(e1, e2) {
@@ -236,23 +197,20 @@ var UsageFrequencyComparator = /*#__PURE__*/function () {
236
197
  var i2 = this.getPositionInOrder(e2);
237
198
  return i1 - i2;
238
199
  }
200
+
239
201
  /**
240
202
  * Get the ordinal representing the position of this emoji.
241
203
  *
242
204
  * @param id the id of the emoji
243
205
  */
244
-
245
206
  }, {
246
207
  key: "getPositionInOrder",
247
208
  value: function getPositionInOrder(emoji) {
248
209
  var id = emoji.id ? emoji.id : '0';
249
-
250
210
  if ((0, _typeHelpers.isEmojiVariationDescription)(emoji)) {
251
211
  id = emoji.baseId;
252
212
  }
253
-
254
213
  var position = this.positionLookup.get(id);
255
-
256
214
  if (position) {
257
215
  return position;
258
216
  } else {
@@ -262,9 +220,7 @@ var UsageFrequencyComparator = /*#__PURE__*/function () {
262
220
  }]);
263
221
  return UsageFrequencyComparator;
264
222
  }();
265
-
266
223
  exports.UsageFrequencyComparator = UsageFrequencyComparator;
267
-
268
224
  /**
269
225
  * A comparator that will sort higher an emoji which matches the query string earliest in the indicated
270
226
  * property.
@@ -277,14 +233,11 @@ var QueryStringPositionMatchComparator = /*#__PURE__*/function () {
277
233
  function QueryStringPositionMatchComparator(query, propertyToCompare) {
278
234
  (0, _classCallCheck2.default)(this, QueryStringPositionMatchComparator);
279
235
  this.query = query;
280
-
281
236
  if (!propertyToCompare) {
282
237
  throw new Error('propertyToCompare is required');
283
238
  }
284
-
285
239
  this.propertyName = propertyToCompare;
286
240
  }
287
-
288
241
  (0, _createClass2.default)(QueryStringPositionMatchComparator, [{
289
242
  key: "getScore",
290
243
  value: function getScore(emoji) {
@@ -302,14 +255,11 @@ var QueryStringPositionMatchComparator = /*#__PURE__*/function () {
302
255
  }]);
303
256
  return QueryStringPositionMatchComparator;
304
257
  }();
305
-
306
258
  exports.QueryStringPositionMatchComparator = QueryStringPositionMatchComparator;
307
-
308
259
  var OrderComparator = /*#__PURE__*/function () {
309
260
  function OrderComparator() {
310
261
  (0, _classCallCheck2.default)(this, OrderComparator);
311
262
  }
312
-
313
263
  (0, _createClass2.default)(OrderComparator, [{
314
264
  key: "compare",
315
265
  value: function compare(e1, e2) {
@@ -325,14 +275,11 @@ var OrderComparator = /*#__PURE__*/function () {
325
275
  }]);
326
276
  return OrderComparator;
327
277
  }();
328
-
329
278
  exports.OrderComparator = OrderComparator;
330
-
331
279
  var AlphabeticalShortnameComparator = /*#__PURE__*/function () {
332
280
  function AlphabeticalShortnameComparator() {
333
281
  (0, _classCallCheck2.default)(this, AlphabeticalShortnameComparator);
334
282
  }
335
-
336
283
  (0, _createClass2.default)(AlphabeticalShortnameComparator, [{
337
284
  key: "compare",
338
285
  value: function compare(e1, e2) {
@@ -346,5 +293,4 @@ var AlphabeticalShortnameComparator = /*#__PURE__*/function () {
346
293
  }]);
347
294
  return AlphabeticalShortnameComparator;
348
295
  }();
349
-
350
296
  exports.AlphabeticalShortnameComparator = AlphabeticalShortnameComparator;
@@ -1,32 +1,20 @@
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.UsageFrequencyTracker = exports.Gateway = 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 _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
16
11
  var _typeHelpers = require("../../util/type-helpers");
17
-
18
12
  var _constants = require("../../util/constants");
19
-
20
13
  var _DuplicateLimitedQueue = _interopRequireDefault(require("../../util/DuplicateLimitedQueue"));
21
-
22
14
  var _StoredDuplicateLimitedQueue = _interopRequireDefault(require("../../util/StoredDuplicateLimitedQueue"));
23
-
24
15
  var _storageAvailable = _interopRequireDefault(require("../../util/storage-available"));
25
-
26
16
  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; }
27
-
28
17
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
29
-
30
18
  /**
31
19
  * Keeps track of the last 150 emoji usages, although limiting the maximum count for a single emoji to 25 to
32
20
  * ensure we don't end up with only a single emoji being recorded. Usage is persisted to local storage for
@@ -41,39 +29,32 @@ var UsageFrequencyTracker = /*#__PURE__*/function () {
41
29
  var useStorageIfPossible = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
42
30
  (0, _classCallCheck2.default)(this, UsageFrequencyTracker);
43
31
  var options = UsageFrequencyTracker.queueOptions;
44
-
45
32
  if (useStorageIfPossible && options.storage) {
46
33
  var queueOptions = _objectSpread(_objectSpread({}, options), {}, {
47
34
  storage: options.storage
48
35
  });
49
-
50
36
  this.queue = new _StoredDuplicateLimitedQueue.default(queueOptions);
51
37
  } else {
52
38
  this.queue = new _DuplicateLimitedQueue.default(options);
53
39
  }
54
-
55
40
  this.gateway = new Gateway(10);
56
41
  }
42
+
57
43
  /**
58
44
  * Record the fact that the supplied emoji was used. You should note that usage is updated asynchronously so you can not
59
45
  * count on getOrder() reflecting this usage immediately.
60
46
  *
61
47
  * @param emoji the emoji who's usage is to be recorded. If the emoji has no id then no usage will be recorded
62
48
  */
63
-
64
-
65
49
  (0, _createClass2.default)(UsageFrequencyTracker, [{
66
50
  key: "recordUsage",
67
51
  value: function recordUsage(emoji) {
68
52
  var _this = this;
69
-
70
53
  var emojiId = emoji.id;
71
-
72
54
  if (emojiId) {
73
55
  if ((0, _typeHelpers.isEmojiVariationDescription)(emoji)) {
74
56
  emojiId = emoji.baseId;
75
57
  }
76
-
77
58
  this.gateway.submit(function () {
78
59
  if (emojiId) {
79
60
  _this.queue.enqueue(emojiId);
@@ -81,20 +62,20 @@ var UsageFrequencyTracker = /*#__PURE__*/function () {
81
62
  });
82
63
  }
83
64
  }
65
+
84
66
  /**
85
67
  * Returns an array of emoji id (without skin tone variations) sorted by most used to least used. If there
86
68
  * are no usages then an empty array will be returned.
87
69
  */
88
-
89
70
  }, {
90
71
  key: "getOrder",
91
72
  value: function getOrder() {
92
73
  return this.queue.getItemsOrderedByDuplicateCount();
93
74
  }
75
+
94
76
  /**
95
77
  * Exposed for testing only. Clear any recorded usage.
96
78
  */
97
-
98
79
  }, {
99
80
  key: "clear",
100
81
  value: function clear() {
@@ -103,7 +84,6 @@ var UsageFrequencyTracker = /*#__PURE__*/function () {
103
84
  }]);
104
85
  return UsageFrequencyTracker;
105
86
  }();
106
-
107
87
  exports.UsageFrequencyTracker = UsageFrequencyTracker;
108
88
  (0, _defineProperty2.default)(UsageFrequencyTracker, "queueOptions", {
109
89
  storage: (0, _storageAvailable.default)('localStorage') ? window.localStorage : undefined,
@@ -111,37 +91,30 @@ exports.UsageFrequencyTracker = UsageFrequencyTracker;
111
91
  maxDuplicates: 25,
112
92
  minUniqueItems: 5
113
93
  });
114
-
115
94
  var Gateway = /*#__PURE__*/function () {
116
95
  function Gateway(maximumPermitted) {
117
96
  (0, _classCallCheck2.default)(this, Gateway);
118
-
119
97
  if (maximumPermitted < 1) {
120
98
  throw new RangeError('The maximumPermitted parameter must be 1 or more.');
121
99
  }
122
-
123
100
  this.maximumPermitted = maximumPermitted;
124
101
  this.count = 0;
125
102
  }
103
+
126
104
  /**
127
105
  * Run the supplied function if the count of already submitted work allows it. Drop the work
128
106
  * if it's not allowed to run.
129
107
  *
130
108
  * Will return true if the function has been submitted or false if it was not submitted.
131
109
  */
132
-
133
-
134
110
  (0, _createClass2.default)(Gateway, [{
135
111
  key: "submit",
136
112
  value: function submit(f) {
137
113
  var _this2 = this;
138
-
139
114
  if (this.count >= this.maximumPermitted) {
140
115
  return false;
141
116
  }
142
-
143
117
  this.count++;
144
-
145
118
  var wrappedFunc = function wrappedFunc() {
146
119
  try {
147
120
  f();
@@ -149,11 +122,9 @@ var Gateway = /*#__PURE__*/function () {
149
122
  _this2.completed();
150
123
  }
151
124
  };
152
-
153
125
  if (typeof window !== 'undefined') {
154
126
  window.setTimeout(wrappedFunc);
155
127
  }
156
-
157
128
  return true;
158
129
  }
159
130
  }, {
@@ -164,5 +135,4 @@ var Gateway = /*#__PURE__*/function () {
164
135
  }]);
165
136
  return Gateway;
166
137
  }();
167
-
168
138
  exports.Gateway = Gateway;