@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
@@ -5,21 +5,15 @@ import { convertMediaToImageEmoji, isMediaRepresentation, isPromise } from '../.
5
5
  import MediaImageLoader from './MediaImageLoader';
6
6
  import debug from '../../util/logger';
7
7
  import { LRUMap } from 'lru_map';
8
-
9
8
  var getRequiredRepresentation = function getRequiredRepresentation(emoji, useAlt) {
10
9
  return useAlt ? emoji.altRepresentation : emoji.representation;
11
10
  };
12
-
13
11
  var isUnsupportedBrowser = function isUnsupportedBrowser() {
14
- var isIE =
15
- /*@cc_on!@*/
16
- false || !!document.documentMode; // Internet Explorer 6-11
17
-
12
+ var isIE = /*@cc_on!@*/false || !!document.documentMode; // Internet Explorer 6-11
18
13
  var isEdge = !isIE && !!window.StyleMedia; // Edge 20+
19
14
 
20
15
  return isIE || isEdge;
21
16
  };
22
-
23
17
  /**
24
18
  * For browsers that support caching for resources
25
19
  * regardless of originally supplied headers (basically everything but Firefox).
@@ -27,35 +21,26 @@ var isUnsupportedBrowser = function isUnsupportedBrowser() {
27
21
  export var BrowserCacheStrategy = /*#__PURE__*/function () {
28
22
  function BrowserCacheStrategy(mediaImageLoader) {
29
23
  _classCallCheck(this, BrowserCacheStrategy);
30
-
31
24
  _defineProperty(this, "cachedImageUrls", new Set());
32
-
33
25
  debug('BrowserCacheStrategy');
34
26
  this.mediaImageLoader = mediaImageLoader;
35
27
  }
36
-
37
28
  _createClass(BrowserCacheStrategy, [{
38
29
  key: "loadEmoji",
39
30
  value: function loadEmoji(emoji, useAlt) {
40
31
  var _this = this;
41
-
42
32
  var representation = getRequiredRepresentation(emoji, useAlt);
43
-
44
33
  if (!isMediaRepresentation(representation)) {
45
34
  return emoji;
46
35
  }
47
-
48
36
  var mediaPath = representation.mediaPath;
49
-
50
37
  if (this.cachedImageUrls.has(mediaPath)) {
51
38
  // Already cached
52
39
  return emoji;
53
40
  }
54
-
55
41
  return this.mediaImageLoader.loadMediaImage(mediaPath).then(function () {
56
42
  // Media is loaded, can use original URL now, so just return original emoji
57
43
  _this.cachedImageUrls.add(mediaPath);
58
-
59
44
  return emoji;
60
45
  }).catch(function () {
61
46
  return undefined;
@@ -75,9 +60,9 @@ export var BrowserCacheStrategy = /*#__PURE__*/function () {
75
60
  if (isUnsupportedBrowser()) {
76
61
  return Promise.resolve(false);
77
62
  }
78
-
79
63
  return mediaImageLoader.loadMediaImage(mediaPath).then(function () {
80
- return (// Image should be cached in browser, if supported it should be accessible from the cache by an <img/>
64
+ return (
65
+ // Image should be cached in browser, if supported it should be accessible from the cache by an <img/>
81
66
  // Try to load without via image to confirm this support (this fails in Firefox)
82
67
  new Promise(function (resolve) {
83
68
  var img = new Image();
@@ -95,12 +80,12 @@ export var BrowserCacheStrategy = /*#__PURE__*/function () {
95
80
  });
96
81
  }
97
82
  }]);
98
-
99
83
  return BrowserCacheStrategy;
100
84
  }();
101
- var maxImageCached = 1000; // Don't cache images large than this - dataUrl size in characters
102
-
85
+ var maxImageCached = 1000;
86
+ // Don't cache images large than this - dataUrl size in characters
103
87
  var maxImageSize = 10000;
88
+
104
89
  /**
105
90
  * For browsers that do no cache images without equivalent headers (e.g. Firefox).
106
91
  *
@@ -110,46 +95,37 @@ var maxImageSize = 10000;
110
95
  * Images are still cached by the browser, but loading in asynchronous with
111
96
  * small delay noticable to the end user.
112
97
  */
113
-
114
98
  export var MemoryCacheStrategy = /*#__PURE__*/function () {
115
99
  function MemoryCacheStrategy(mediaImageLoader) {
116
100
  _classCallCheck(this, MemoryCacheStrategy);
117
-
118
101
  debug('MemoryCacheStrategy');
119
102
  this.mediaImageLoader = mediaImageLoader;
120
103
  this.dataURLCache = new LRUMap(maxImageCached);
121
104
  }
122
-
123
105
  _createClass(MemoryCacheStrategy, [{
124
106
  key: "loadEmoji",
125
107
  value: function loadEmoji(emoji, useAlt) {
126
108
  var _this2 = this;
127
-
128
109
  var representation = getRequiredRepresentation(emoji, useAlt);
129
-
130
110
  if (!isMediaRepresentation(representation)) {
131
111
  return emoji;
132
112
  }
133
-
134
113
  var mediaPath = representation.mediaPath;
135
114
  var dataURL = this.dataURLCache.get(mediaPath);
136
-
137
115
  if (dataURL) {
138
116
  // Already cached
139
117
  return convertMediaToImageEmoji(emoji, dataURL, useAlt);
140
- } // Not cached, load
141
-
118
+ }
142
119
 
120
+ // Not cached, load
143
121
  return this.mediaImageLoader.loadMediaImage(mediaPath).then(function (dataURL) {
144
122
  var loadedEmoji = convertMediaToImageEmoji(emoji, dataURL, useAlt);
145
-
146
123
  if (dataURL.length <= maxImageSize) {
147
124
  // Only cache if not large than max size
148
125
  _this2.dataURLCache.set(mediaPath, dataURL);
149
126
  } else {
150
127
  debug('No caching as image is too large', dataURL.length, dataURL.slice(0, 15), emoji.shortName);
151
128
  }
152
-
153
129
  return loadedEmoji;
154
130
  }).catch(function () {
155
131
  return undefined;
@@ -161,9 +137,9 @@ export var MemoryCacheStrategy = /*#__PURE__*/function () {
161
137
  return false;
162
138
  }
163
139
  }]);
164
-
165
140
  return MemoryCacheStrategy;
166
141
  }();
142
+
167
143
  /**
168
144
  * Provides a cache for Media Emoji.
169
145
  *
@@ -171,29 +147,22 @@ export var MemoryCacheStrategy = /*#__PURE__*/function () {
171
147
  *
172
148
  * Otherwise, they are loaded and returned via a promise.
173
149
  */
174
-
175
150
  var MediaEmojiCache = /*#__PURE__*/function () {
176
151
  function MediaEmojiCache(tokenManager) {
177
152
  _classCallCheck(this, MediaEmojiCache);
178
-
179
153
  _defineProperty(this, "waitingInitUrls", []);
180
-
181
154
  debug('MediaEmojiCache');
182
155
  this.mediaImageLoader = new MediaImageLoader(tokenManager);
183
156
  }
184
-
185
157
  _createClass(MediaEmojiCache, [{
186
158
  key: "loadEmoji",
187
159
  value: function loadEmoji(emoji, useAlt) {
188
160
  var representation = getRequiredRepresentation(emoji, useAlt);
189
-
190
161
  if (!isMediaRepresentation(representation)) {
191
162
  return emoji;
192
163
  }
193
-
194
164
  var mediaPath = representation.mediaPath;
195
165
  var emojiCache = this.getCache(mediaPath);
196
-
197
166
  if (isPromise(emojiCache)) {
198
167
  // Promise based
199
168
  return emojiCache.then(function (cache) {
@@ -202,14 +171,12 @@ var MediaEmojiCache = /*#__PURE__*/function () {
202
171
  return undefined;
203
172
  });
204
173
  }
205
-
206
174
  return emojiCache.loadEmoji(emoji, useAlt);
207
175
  }
208
176
  }, {
209
177
  key: "optimisticRendering",
210
178
  value: function optimisticRendering(url) {
211
179
  var emojiCache = this.getCache(url);
212
-
213
180
  if (isPromise(emojiCache)) {
214
181
  // Promise based
215
182
  return emojiCache.then(function (cache) {
@@ -218,20 +185,16 @@ var MediaEmojiCache = /*#__PURE__*/function () {
218
185
  return false;
219
186
  });
220
187
  }
221
-
222
188
  return emojiCache.optimisticRendering();
223
189
  }
224
190
  }, {
225
191
  key: "getCache",
226
192
  value: function getCache(url) {
227
193
  var _this3 = this;
228
-
229
194
  if (this.cache) {
230
195
  return this.cache;
231
196
  }
232
-
233
197
  this.waitingInitUrls.push(url);
234
-
235
198
  if (!this.cacheLoading) {
236
199
  this.cacheLoading = this.initCache().then(function (cache) {
237
200
  _this3.cache = cache;
@@ -242,37 +205,28 @@ var MediaEmojiCache = /*#__PURE__*/function () {
242
205
  throw err;
243
206
  });
244
207
  }
245
-
246
208
  return this.cacheLoading;
247
209
  }
248
210
  }, {
249
211
  key: "initCache",
250
212
  value: function initCache() {
251
213
  var _this4 = this;
252
-
253
214
  var url = this.waitingInitUrls.pop();
254
-
255
215
  if (!url) {
256
216
  return Promise.reject('Unable to initialise cache based on provided url(s)');
257
217
  }
258
-
259
218
  return BrowserCacheStrategy.supported(url, this.mediaImageLoader).then(function (supported) {
260
219
  _this4.waitingInitUrls = []; // clear
261
-
262
220
  _this4.cacheLoading = undefined;
263
-
264
221
  if (supported) {
265
222
  return new BrowserCacheStrategy(_this4.mediaImageLoader);
266
223
  }
267
-
268
224
  return new MemoryCacheStrategy(_this4.mediaImageLoader);
269
225
  }).catch(function () {
270
226
  return _this4.initCache();
271
227
  });
272
228
  }
273
229
  }]);
274
-
275
230
  return MediaEmojiCache;
276
231
  }();
277
-
278
232
  export { MediaEmojiCache as default };
@@ -5,47 +5,35 @@ import { imageAcceptHeader } from '../../util/image';
5
5
  var defaultConcurrentDownloadLimit = 16;
6
6
  var backoffMaxDelayInMillis = 600;
7
7
  var defaultMaxRetriesOnNotFound = 2;
8
-
9
8
  var MediaImageLoader = /*#__PURE__*/function () {
10
9
  function MediaImageLoader(tokenManager, options) {
11
10
  _classCallCheck(this, MediaImageLoader);
12
-
13
11
  _defineProperty(this, "mediaImageQueue", []);
14
-
15
12
  _defineProperty(this, "activeProcessing", 0);
16
-
17
13
  _defineProperty(this, "pendingRequests", new Map());
18
-
19
14
  this.concurrentDownloadLimit = options && options.concurrentDownloadLimit || defaultConcurrentDownloadLimit;
20
15
  this.tokenManager = tokenManager;
21
16
  }
22
-
23
17
  _createClass(MediaImageLoader, [{
24
18
  key: "loadMediaImage",
25
19
  value: function loadMediaImage(url) {
26
20
  var _this = this;
27
-
28
21
  var maybePending = this.pendingRequests.get(url);
29
-
30
22
  if (maybePending !== undefined) {
31
23
  return maybePending;
32
24
  }
33
-
34
25
  var pending = new Promise(function (resolve, reject) {
35
26
  _this.mediaImageQueue.push({
36
27
  url: url,
37
28
  resolve: resolve,
38
29
  reject: reject
39
30
  });
40
-
41
31
  _this.processFromQueue();
42
32
  }).then(function (result) {
43
33
  _this.pendingRequests.delete(url);
44
-
45
34
  return result;
46
35
  }).catch(function (error) {
47
36
  _this.pendingRequests.delete(url);
48
-
49
37
  throw error;
50
38
  });
51
39
  this.pendingRequests.set(url, pending);
@@ -65,34 +53,26 @@ var MediaImageLoader = /*#__PURE__*/function () {
65
53
  key: "processFromQueue",
66
54
  value: function processFromQueue() {
67
55
  var _this2 = this;
68
-
69
56
  var _loop = function _loop() {
70
57
  _this2.activeProcessing++;
71
-
72
58
  var item = _this2.mediaImageQueue.shift();
73
-
74
59
  var url = item.url,
75
- resolve = item.resolve,
76
- reject = item.reject;
77
-
60
+ resolve = item.resolve,
61
+ reject = item.reject;
78
62
  _this2.tokenManager.getToken('read', false).then(function (token) {
79
63
  _this2.requestMediaEmoji(url, token, true).then(function (dataURL) {
80
64
  resolve(dataURL);
81
-
82
65
  _this2.completedItem();
83
66
  }).catch(function (error) {
84
67
  reject(error);
85
-
86
68
  _this2.completedItem();
87
69
  });
88
70
  }).catch(function (error) {
89
71
  // Failed to load, just resolve to original emoji
90
72
  reject(error);
91
-
92
73
  _this2.completedItem();
93
74
  });
94
75
  };
95
-
96
76
  while (this.activeProcessing < this.concurrentDownloadLimit && this.mediaImageQueue.length > 0) {
97
77
  _loop();
98
78
  }
@@ -114,7 +94,6 @@ var MediaImageLoader = /*#__PURE__*/function () {
114
94
  key: "requestMediaEmoji",
115
95
  value: function requestMediaEmoji(url, token, retryOnAuthError) {
116
96
  var _this3 = this;
117
-
118
97
  var retriesOnNotFound = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : defaultMaxRetriesOnNotFound;
119
98
  return imageAcceptHeader().then(function (acceptHeader) {
120
99
  // Media REST API: https://media-api-internal.atlassian.io/api.html#file__fileId__image_get
@@ -142,7 +121,6 @@ var MediaImageLoader = /*#__PURE__*/function () {
142
121
  return _this3.readBlob(blob);
143
122
  });
144
123
  }
145
-
146
124
  throw new Error("Unable to load media image. Status=".concat(response.status, " ").concat(response.statusText));
147
125
  });
148
126
  });
@@ -151,8 +129,9 @@ var MediaImageLoader = /*#__PURE__*/function () {
151
129
  key: "readBlob",
152
130
  value: function readBlob(blob) {
153
131
  return new Promise(function (resolve, reject) {
154
- var reader = new FileReader(); // TODO: [ts30] Add proper handling for null and ArrayBuffer
132
+ var reader = new FileReader();
155
133
 
134
+ // TODO: [ts30] Add proper handling for null and ArrayBuffer
156
135
  reader.addEventListener('load', function () {
157
136
  return resolve(reader.result);
158
137
  });
@@ -163,8 +142,6 @@ var MediaImageLoader = /*#__PURE__*/function () {
163
142
  });
164
143
  }
165
144
  }]);
166
-
167
145
  return MediaImageLoader;
168
146
  }();
169
-
170
147
  export { MediaImageLoader as default };
@@ -5,11 +5,8 @@ import _createClass from "@babel/runtime/helpers/createClass";
5
5
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
6
6
  var _excluded = ["altRepresentations"];
7
7
  import _regeneratorRuntime from "@babel/runtime/regenerator";
8
-
9
8
  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; }
10
-
11
9
  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) { _defineProperty(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; }
12
-
13
10
  import { utils as serviceUtils } from '@atlaskit/util-service-support';
14
11
  import { getMediaClient } from '@atlaskit/media-client';
15
12
  import { buildEmojiDescriptionWithAltRepresentation, isMediaRepresentation, isMediaEmoji, convertImageToMediaRepresentation, isLoadedMediaEmoji } from '../../util/type-helpers';
@@ -19,19 +16,17 @@ import TokenManager from './TokenManager';
19
16
  import debug from '../../util/logger';
20
17
  // Assume media is 95% of total upload time.
21
18
  export var mediaProportionOfProgress = 95 / 100;
22
-
23
19
  var SiteEmojiResource = /*#__PURE__*/function () {
24
20
  // @ts-ignore: I am not being read from, should I be deleted???
21
+
25
22
  function SiteEmojiResource(siteServiceConfig, mediaApiToken) {
26
23
  var _this = this;
27
-
28
24
  _classCallCheck(this, SiteEmojiResource);
29
-
30
25
  _defineProperty(this, "postToEmojiService", function (upload, fileId) {
31
26
  var shortName = upload.shortName,
32
- name = upload.name;
27
+ name = upload.name;
33
28
  var width = upload.width,
34
- height = upload.height;
29
+ height = upload.height;
35
30
  var requestInit = {
36
31
  method: 'POST',
37
32
  headers: {
@@ -49,36 +44,30 @@ var SiteEmojiResource = /*#__PURE__*/function () {
49
44
  requestInit: requestInit
50
45
  }).then(function (response) {
51
46
  var emojis = response.emojis;
52
-
53
47
  if (emojis.length) {
54
48
  var _emojis$ = emojis[0],
55
- altRepresentations = _emojis$.altRepresentations,
56
- emoji = _objectWithoutProperties(_emojis$, _excluded);
57
-
49
+ altRepresentations = _emojis$.altRepresentations,
50
+ emoji = _objectWithoutProperties(_emojis$, _excluded);
58
51
  var _response = _objectSpread(_objectSpread({}, emoji), {}, {
59
52
  representation: convertImageToMediaRepresentation(emoji.representation)
60
53
  });
61
-
62
54
  var altRepresentation = getAltRepresentation(altRepresentations || {});
63
55
  var imgAltRepresentation = altRepresentation ? convertImageToMediaRepresentation(altRepresentation) : undefined;
64
56
  return buildEmojiDescriptionWithAltRepresentation(_response, imgAltRepresentation);
65
57
  }
66
-
67
58
  throw new Error('No emoji returns from upload. Upload failed.');
68
59
  });
69
60
  });
70
-
71
61
  this.siteServiceConfig = siteServiceConfig;
72
62
  this.mediaApiToken = mediaApiToken;
73
63
  this.tokenManager = new TokenManager(siteServiceConfig);
74
64
  this.tokenManager.addToken('read', mediaApiToken);
75
65
  this.mediaEmojiCache = new MediaEmojiCache(this.tokenManager);
76
66
  }
67
+
77
68
  /**
78
69
  * Will generate an emoji media path that is inclusive of client and token within the query parameter
79
70
  */
80
-
81
-
82
71
  _createClass(SiteEmojiResource, [{
83
72
  key: "generateTokenisedMediaURL",
84
73
  value: function () {
@@ -92,28 +81,21 @@ var SiteEmojiResource = /*#__PURE__*/function () {
92
81
  _context.next = 9;
93
82
  break;
94
83
  }
95
-
96
84
  currentMediaPathURL = new URL(emoji.representation.mediaPath);
97
85
  currentMediaPathPARAMS = currentMediaPathURL.searchParams;
98
86
  _context.next = 5;
99
87
  return this.tokenManager.getToken('read');
100
-
101
88
  case 5:
102
89
  readToken = _context.sent;
103
-
104
90
  if (currentMediaPathPARAMS.get('token') !== readToken.jwt) {
105
91
  currentMediaPathPARAMS.set('token', readToken.jwt);
106
92
  }
107
-
108
93
  if (currentMediaPathPARAMS.get('client') !== readToken.clientId) {
109
94
  currentMediaPathPARAMS.set('client', readToken.clientId);
110
95
  }
111
-
112
96
  return _context.abrupt("return", currentMediaPathURL.toString());
113
-
114
97
  case 9:
115
98
  throw Error('Emoji resource is not of type Media Representation');
116
-
117
99
  case 10:
118
100
  case "end":
119
101
  return _context.stop();
@@ -121,36 +103,30 @@ var SiteEmojiResource = /*#__PURE__*/function () {
121
103
  }
122
104
  }, _callee, this);
123
105
  }));
124
-
125
106
  function generateTokenisedMediaURL(_x) {
126
107
  return _generateTokenisedMediaURL.apply(this, arguments);
127
108
  }
128
-
129
109
  return generateTokenisedMediaURL;
130
110
  }()
131
111
  /**
132
112
  * Will load media emoji, returning a new EmojiDescription if, for example,
133
113
  * the URL has changed.
134
114
  */
135
-
136
115
  }, {
137
116
  key: "loadMediaEmoji",
138
117
  value: function loadMediaEmoji(emoji, useAlt) {
139
118
  if (!isMediaEmoji(emoji)) {
140
119
  throw new Error('Only supported for media emoji');
141
120
  }
142
-
143
121
  return this.mediaEmojiCache.loadEmoji(emoji, useAlt);
144
122
  }
145
123
  }, {
146
124
  key: "optimisticRendering",
147
125
  value: function optimisticRendering(emoji, useAlt) {
148
126
  var representation = useAlt ? emoji.altRepresentation : emoji.representation;
149
-
150
127
  if (!isMediaRepresentation(representation)) {
151
128
  throw new Error('Only supported for media emoji');
152
129
  }
153
-
154
130
  var mediaPath = representation.mediaPath;
155
131
  return this.mediaEmojiCache.optimisticRendering(mediaPath);
156
132
  }
@@ -158,7 +134,6 @@ var SiteEmojiResource = /*#__PURE__*/function () {
158
134
  key: "uploadEmoji",
159
135
  value: function uploadEmoji(upload) {
160
136
  var _this2 = this;
161
-
162
137
  var retry = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
163
138
  var progressCallback = arguments.length > 2 ? arguments[2] : undefined;
164
139
  var startTime = Date.now();
@@ -167,8 +142,8 @@ var SiteEmojiResource = /*#__PURE__*/function () {
167
142
  debug('upload token load time', tokenLoadTime);
168
143
  return new Promise(function (resolve, reject) {
169
144
  var url = uploadToken.url,
170
- clientId = uploadToken.clientId,
171
- collectionName = uploadToken.collectionName;
145
+ clientId = uploadToken.clientId,
146
+ collectionName = uploadToken.collectionName;
172
147
  var mediaClient = getMediaClient({
173
148
  authProvider: function authProvider() {
174
149
  return Promise.resolve({
@@ -193,7 +168,6 @@ var SiteEmojiResource = /*#__PURE__*/function () {
193
168
  var totalUploadTime = Date.now() - startTime;
194
169
  var mediaUploadTime = totalUploadTime - tokenLoadTime;
195
170
  debug('total upload / media upload times', totalUploadTime, mediaUploadTime);
196
-
197
171
  _this2.postToEmojiService(upload, state.id).then(function (emoji) {
198
172
  resolve(emoji);
199
173
  }).catch(function (httpError) {
@@ -208,12 +182,12 @@ var SiteEmojiResource = /*#__PURE__*/function () {
208
182
  });
209
183
  });
210
184
  }
185
+
211
186
  /**
212
187
  * Check if the MediaEmojiResource has been able to initialise an uploadToken. Retrieving an upload token
213
188
  * is asynchronous so the Promise will need to resolve before the state is known. If the token retrieval
214
189
  * completes with failure then the Promise will resolve to false.
215
190
  */
216
-
217
191
  }, {
218
192
  key: "hasUploadToken",
219
193
  value: function hasUploadToken() {
@@ -238,7 +212,6 @@ var SiteEmojiResource = /*#__PURE__*/function () {
238
212
  if (!emojiId.id) {
239
213
  return Promise.reject(false);
240
214
  }
241
-
242
215
  var path = "../".concat(encodeURIComponent(emojiId.id));
243
216
  return emojiRequest(this.siteServiceConfig, {
244
217
  path: path
@@ -250,23 +223,21 @@ var SiteEmojiResource = /*#__PURE__*/function () {
250
223
  return undefined;
251
224
  });
252
225
  }
226
+
253
227
  /**
254
228
  * Calls to site-scoped EmojiResource to delete emoji
255
229
  * @param emoji media emoji to delete
256
230
  * @returns Promise.resolve() if success and Promise.reject() for failure
257
231
  */
258
-
259
232
  }, {
260
233
  key: "deleteEmoji",
261
234
  value: function deleteEmoji(emoji) {
262
235
  if (!isMediaEmoji(emoji) && !isLoadedMediaEmoji(emoji)) {
263
236
  return Promise.reject(false);
264
237
  }
265
-
266
238
  if (!emoji.id) {
267
239
  return Promise.reject(false);
268
240
  }
269
-
270
241
  var path = "".concat(encodeURIComponent(emoji.id));
271
242
  var requestInit = {
272
243
  method: 'DELETE'
@@ -274,17 +245,17 @@ var SiteEmojiResource = /*#__PURE__*/function () {
274
245
  return serviceUtils.requestService(this.siteServiceConfig, {
275
246
  path: path,
276
247
  requestInit: requestInit
277
- }) // Successful delete on Promise.resolve
248
+ })
249
+ // Successful delete on Promise.resolve
278
250
  .then(function () {
279
251
  return true;
280
- }) // Unsuccessful delete on Promise.reject
252
+ })
253
+ // Unsuccessful delete on Promise.reject
281
254
  .catch(function () {
282
255
  return false;
283
256
  });
284
257
  }
285
258
  }]);
286
-
287
259
  return SiteEmojiResource;
288
260
  }();
289
-
290
261
  export { SiteEmojiResource as default };
@@ -1,27 +1,23 @@
1
1
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
2
  import _createClass from "@babel/runtime/helpers/createClass";
3
- import { utils as serviceUtils } from '@atlaskit/util-service-support'; // expire 30 seconds early to factor in latency, slow services, etc
3
+ import { utils as serviceUtils } from '@atlaskit/util-service-support';
4
4
 
5
+ // expire 30 seconds early to factor in latency, slow services, etc
5
6
  export var EXPIRES_AT_LATENCY_IN_SECONDS = 30;
6
-
7
7
  var TokenManager = /*#__PURE__*/function () {
8
8
  function TokenManager(siteServiceConfig) {
9
9
  _classCallCheck(this, TokenManager);
10
-
11
10
  this.siteServiceConfig = siteServiceConfig;
12
11
  this.tokens = new Map();
13
12
  }
14
-
15
13
  _createClass(TokenManager, [{
16
14
  key: "isValidToken",
17
15
  value: function isValidToken(mediaApiToken) {
18
16
  var nowInSeconds = Date.now() / 1000;
19
17
  var expiresAt = mediaApiToken.expiresAt - EXPIRES_AT_LATENCY_IN_SECONDS;
20
-
21
18
  if (nowInSeconds < expiresAt) {
22
19
  return true;
23
20
  }
24
-
25
21
  return false;
26
22
  }
27
23
  }, {
@@ -42,29 +38,25 @@ var TokenManager = /*#__PURE__*/function () {
42
38
  key: "getToken",
43
39
  value: function getToken(type, forceRefresh) {
44
40
  var tokenDetail = this.tokens.get(type);
45
-
46
41
  if (!tokenDetail) {
47
42
  tokenDetail = {};
48
43
  this.tokens.set(type, tokenDetail);
49
44
  }
50
-
51
45
  var _tokenDetail = tokenDetail,
52
- mediaApiToken = _tokenDetail.mediaApiToken,
53
- activeTokenRefresh = _tokenDetail.activeTokenRefresh;
54
-
46
+ mediaApiToken = _tokenDetail.mediaApiToken,
47
+ activeTokenRefresh = _tokenDetail.activeTokenRefresh;
55
48
  if (mediaApiToken) {
56
49
  if (this.isValidToken(mediaApiToken) && !forceRefresh) {
57
50
  // still valid
58
51
  return Promise.resolve(mediaApiToken);
59
52
  }
60
-
61
53
  if (activeTokenRefresh) {
62
54
  // refresh token promise already active, return that
63
55
  return activeTokenRefresh;
64
56
  }
65
- } // request a new token and track the promise for future requests until completed
66
-
57
+ }
67
58
 
59
+ // request a new token and track the promise for future requests until completed
68
60
  tokenDetail.activeTokenRefresh = this.fetchNewToken(type).then(function (token) {
69
61
  tokenDetail.mediaApiToken = token;
70
62
  tokenDetail.activeTokenRefresh = undefined;
@@ -73,8 +65,6 @@ var TokenManager = /*#__PURE__*/function () {
73
65
  return tokenDetail.activeTokenRefresh;
74
66
  }
75
67
  }]);
76
-
77
68
  return TokenManager;
78
69
  }();
79
-
80
70
  export { TokenManager as default };