@atlaskit/emoji 64.7.0 → 65.1.0
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.
- package/CHANGELOG.md +36 -0
- package/dist/cjs/api/EmojiResource.js +250 -87
- package/dist/cjs/api/media/SiteEmojiResource.js +4 -2
- package/dist/cjs/api/media/TokenManager.js +13 -12
- package/dist/cjs/components/common/CachingEmoji.js +21 -3
- package/dist/cjs/components/common/Emoji.js +57 -36
- package/dist/cjs/components/common/EmojiImage.js +99 -0
- package/dist/cjs/components/common/EmojiPlaceholder.js +7 -5
- package/dist/cjs/components/common/RecordSelectionDefault.js +13 -1
- package/dist/cjs/components/common/ResourcedEmoji.js +14 -4
- package/dist/cjs/components/common/ResourcedEmojiComponent.js +173 -156
- package/dist/cjs/components/common/UfoErrorBoundary.js +30 -4
- package/dist/cjs/components/common/UploadEmoji.js +8 -3
- package/dist/cjs/components/common/styles.js +26 -9
- package/dist/cjs/components/picker/EmojiPickerComponent.js +27 -9
- package/dist/cjs/components/picker/EmojiPickerFooter.js +2 -0
- package/dist/cjs/components/picker/styles.js +16 -13
- package/dist/cjs/components/typeahead/EmojiTypeAheadComponent.js +18 -2
- package/dist/cjs/components/uploader/EmojiUploadComponent.js +7 -2
- package/dist/cjs/context/EmojiContextProvider.js +33 -0
- package/dist/cjs/hooks/index.js +16 -0
- package/dist/cjs/index.js +20 -0
- package/dist/cjs/types.js +3 -0
- package/dist/cjs/util/analytics/samplingUfo.js +13 -3
- package/dist/cjs/util/analytics/ufoExperiences.js +22 -4
- package/dist/cjs/util/analytics/useSampledUFOComponentExperience.js +2 -1
- package/dist/cjs/util/browser-support.js +1 -1
- package/dist/cjs/util/constants.js +6 -5
- package/dist/cjs/util/useInView.js +23 -0
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/api/EmojiResource.js +117 -37
- package/dist/es2019/api/media/SiteEmojiResource.js +2 -2
- package/dist/es2019/api/media/TokenManager.js +12 -12
- package/dist/es2019/components/common/CachingEmoji.js +20 -3
- package/dist/es2019/components/common/Emoji.js +53 -34
- package/dist/es2019/components/common/EmojiImage.js +74 -0
- package/dist/es2019/components/common/EmojiPlaceholder.js +7 -5
- package/dist/es2019/components/common/RecordSelectionDefault.js +13 -1
- package/dist/es2019/components/common/ResourcedEmoji.js +15 -5
- package/dist/es2019/components/common/ResourcedEmojiComponent.js +136 -105
- package/dist/es2019/components/common/UfoErrorBoundary.js +14 -2
- package/dist/es2019/components/common/UploadEmoji.js +8 -3
- package/dist/es2019/components/common/styles.js +30 -9
- package/dist/es2019/components/picker/EmojiPickerComponent.js +27 -8
- package/dist/es2019/components/picker/EmojiPickerFooter.js +2 -0
- package/dist/es2019/components/picker/styles.js +16 -14
- package/dist/es2019/components/typeahead/EmojiTypeAheadComponent.js +18 -2
- package/dist/es2019/components/uploader/EmojiUploadComponent.js +7 -2
- package/dist/es2019/context/EmojiContextProvider.js +9 -1
- package/dist/es2019/hooks/index.js +8 -0
- package/dist/es2019/index.js +5 -4
- package/dist/es2019/types.js +3 -0
- package/dist/es2019/util/analytics/samplingUfo.js +11 -1
- package/dist/es2019/util/analytics/ufoExperiences.js +12 -2
- package/dist/es2019/util/analytics/useSampledUFOComponentExperience.js +2 -1
- package/dist/es2019/util/browser-support.js +1 -1
- package/dist/es2019/util/constants.js +3 -2
- package/dist/es2019/util/useInView.js +12 -0
- package/dist/es2019/version.json +1 -1
- package/dist/esm/api/EmojiResource.js +257 -89
- package/dist/esm/api/media/SiteEmojiResource.js +5 -3
- package/dist/esm/api/media/TokenManager.js +13 -12
- package/dist/esm/components/common/CachingEmoji.js +20 -3
- package/dist/esm/components/common/Emoji.js +59 -38
- package/dist/esm/components/common/EmojiImage.js +84 -0
- package/dist/esm/components/common/EmojiPlaceholder.js +8 -5
- package/dist/esm/components/common/RecordSelectionDefault.js +13 -1
- package/dist/esm/components/common/ResourcedEmoji.js +15 -5
- package/dist/esm/components/common/ResourcedEmojiComponent.js +167 -156
- package/dist/esm/components/common/UfoErrorBoundary.js +30 -4
- package/dist/esm/components/common/UploadEmoji.js +8 -3
- package/dist/esm/components/common/styles.js +25 -10
- package/dist/esm/components/picker/EmojiPickerComponent.js +27 -8
- package/dist/esm/components/picker/EmojiPickerFooter.js +2 -0
- package/dist/esm/components/picker/styles.js +16 -14
- package/dist/esm/components/typeahead/EmojiTypeAheadComponent.js +18 -2
- package/dist/esm/components/uploader/EmojiUploadComponent.js +7 -2
- package/dist/esm/context/EmojiContextProvider.js +30 -1
- package/dist/esm/hooks/index.js +8 -0
- package/dist/esm/index.js +5 -4
- package/dist/esm/types.js +3 -0
- package/dist/esm/util/analytics/samplingUfo.js +13 -2
- package/dist/esm/util/analytics/ufoExperiences.js +14 -2
- package/dist/esm/util/analytics/useSampledUFOComponentExperience.js +2 -1
- package/dist/esm/util/browser-support.js +1 -1
- package/dist/esm/util/constants.js +3 -2
- package/dist/esm/util/useInView.js +12 -0
- package/dist/esm/version.json +1 -1
- package/dist/types/api/EmojiResource.d.ts +19 -2
- package/dist/types/api/EmojiUtils.d.ts +7 -1
- package/dist/types/api/media/SiteEmojiResource.d.ts +1 -1
- package/dist/types/api/media/TokenManager.d.ts +1 -0
- package/dist/types/components/common/Emoji.d.ts +0 -1
- package/dist/types/components/common/EmojiImage.d.ts +13 -0
- package/dist/types/components/common/EmojiPlaceholder.d.ts +1 -0
- package/dist/types/components/common/LoadingEmojiComponent.d.ts +7 -4
- package/dist/types/components/common/ResourcedEmoji.d.ts +3 -3
- package/dist/types/components/common/ResourcedEmojiComponent.d.ts +41 -20
- package/dist/types/components/common/UfoErrorBoundary.d.ts +2 -2
- package/dist/types/components/common/UploadEmoji.d.ts +1 -1
- package/dist/types/components/common/styles.d.ts +1 -0
- package/dist/types/components/picker/EmojiPicker.d.ts +9 -0
- package/dist/types/components/picker/EmojiPickerComponent.d.ts +14 -0
- package/dist/types/components/picker/EmojiPickerFooter.d.ts +1 -0
- package/dist/types/components/picker/styles.d.ts +1 -1
- package/dist/types/components/typeahead/EmojiTypeAheadComponent.d.ts +18 -0
- package/dist/types/hooks/index.d.ts +1 -0
- package/dist/types/index.d.ts +5 -4
- package/dist/types/types.d.ts +14 -2
- package/dist/types/util/analytics/index.d.ts +1 -1
- package/dist/types/util/analytics/samplingUfo.d.ts +6 -6
- package/dist/types/util/analytics/ufoExperiences.d.ts +5 -2
- package/dist/types/util/constants.d.ts +2 -1
- package/dist/types/util/useInView.d.ts +4 -0
- package/docs/0-intro.tsx +35 -27
- package/docs/1-resourced-emoji.tsx +74 -0
- package/docs/2-emoji-picker.tsx +56 -0
- package/docs/3-typeahead.tsx +20 -0
- package/docs/4-emoji-provider.tsx +98 -0
- package/local-config-example.ts +22 -1
- package/package.json +4 -4
- package/report.api.md +1287 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,41 @@
|
|
|
1
1
|
# @atlaskit/emoji
|
|
2
2
|
|
|
3
|
+
## 65.1.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`cceb3262363`](https://bitbucket.org/atlassian/atlassian-frontend/commits/cceb3262363) - [ux] Show preview below the scrollable emoji box
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- [`641bf010d2a`](https://bitbucket.org/atlassian/atlassian-frontend/commits/641bf010d2a) - Added JSDoc comments for exposing props
|
|
12
|
+
- [`c47218c565a`](https://bitbucket.org/atlassian/atlassian-frontend/commits/c47218c565a) - Convert the demo resource control to functional componment
|
|
13
|
+
|
|
14
|
+
## 65.0.0
|
|
15
|
+
|
|
16
|
+
### Major Changes
|
|
17
|
+
|
|
18
|
+
- [`06232e0f8dd`](https://bitbucket.org/atlassian/atlassian-frontend/commits/06232e0f8dd) - [ux] Opt In SSR for Resourced Emoji and Emoji Placeholder with EmojiResource interfaces
|
|
19
|
+
|
|
20
|
+
### Minor Changes
|
|
21
|
+
|
|
22
|
+
- [`34155ee7563`](https://bitbucket.org/atlassian/atlassian-frontend/commits/34155ee7563) - add sampling for 2 ufo experiences to reduce volume of analytics
|
|
23
|
+
- [`11f56527739`](https://bitbucket.org/atlassian/atlassian-frontend/commits/11f56527739) - Export emoji placeholder class name
|
|
24
|
+
|
|
25
|
+
### Patch Changes
|
|
26
|
+
|
|
27
|
+
- [`cd92dca3d5c`](https://bitbucket.org/atlassian/atlassian-frontend/commits/cd92dca3d5c) - minor improvements on upload emoji and add more tests
|
|
28
|
+
- Updated dependencies
|
|
29
|
+
|
|
30
|
+
## 64.7.1
|
|
31
|
+
|
|
32
|
+
### Patch Changes
|
|
33
|
+
|
|
34
|
+
- [`6e01776f0b7`](https://bitbucket.org/atlassian/atlassian-frontend/commits/6e01776f0b7) - remove placeholder when lazy load emoji
|
|
35
|
+
- [`6e01776f0b7`](https://bitbucket.org/atlassian/atlassian-frontend/commits/6e01776f0b7) - fix placeholder issue in lazy loaded emoji by removing it and re-write the anlytics tracking around it
|
|
36
|
+
- [`c3f9e9bce1c`](https://bitbucket.org/atlassian/atlassian-frontend/commits/c3f9e9bce1c) - Add custom information to failure and abort events for UFO experiences
|
|
37
|
+
- Updated dependencies
|
|
38
|
+
|
|
3
39
|
## 64.7.0
|
|
4
40
|
|
|
5
41
|
### Minor Changes
|
|
@@ -45,7 +45,7 @@ var _EmojiRepository = _interopRequireDefault(require("./EmojiRepository"));
|
|
|
45
45
|
|
|
46
46
|
var _SiteEmojiResource = _interopRequireDefault(require("./media/SiteEmojiResource"));
|
|
47
47
|
|
|
48
|
-
var
|
|
48
|
+
var _ufoExperiences = require("../util/analytics/ufoExperiences");
|
|
49
49
|
|
|
50
50
|
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; }
|
|
51
51
|
|
|
@@ -81,66 +81,228 @@ var EmojiResource = /*#__PURE__*/function (_AbstractResource) {
|
|
|
81
81
|
_this = _super.call(this);
|
|
82
82
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "activeLoaders", 0);
|
|
83
83
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "retries", new Map());
|
|
84
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "isInitialised", false);
|
|
85
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getOptimisticImageURL", function (emojiId) {
|
|
86
|
+
if (_this.emojiProviderConfig.optimisticImageApi) {
|
|
87
|
+
return _this.emojiProviderConfig.optimisticImageApi.getUrl(emojiId);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
return;
|
|
91
|
+
});
|
|
84
92
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "isLoaded", function () {
|
|
85
93
|
return _this.activeLoaders === 0 && _this.emojiRepository;
|
|
86
94
|
});
|
|
95
|
+
_this.emojiProviderConfig = config;
|
|
87
96
|
_this.recordConfig = config.recordConfig;
|
|
88
|
-
_this.currentUser = config.currentUser;
|
|
97
|
+
_this.currentUser = config.currentUser;
|
|
89
98
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
var providerType = _this.getProviderType(provider);
|
|
99
|
+
if ((0, _storageAvailable.default)('localStorage')) {
|
|
100
|
+
_this.selectedTone = _this.loadStoredTone();
|
|
101
|
+
}
|
|
94
102
|
|
|
95
|
-
|
|
103
|
+
if (config.providers.length === 0) {
|
|
104
|
+
throw new Error('No providers specified');
|
|
105
|
+
}
|
|
96
106
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
});
|
|
107
|
+
return _this;
|
|
108
|
+
}
|
|
100
109
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
110
|
+
(0, _createClass2.default)(EmojiResource, [{
|
|
111
|
+
key: "fetchEmojiProvider",
|
|
112
|
+
value: function fetchEmojiProvider(force) {
|
|
113
|
+
var _this2 = this;
|
|
105
114
|
|
|
106
|
-
|
|
115
|
+
// unless (re-)fetch is being forced, fetching will only
|
|
116
|
+
// happen if no emojiRepository exists
|
|
117
|
+
// in case this method is called and emojiRepository has already been populated
|
|
118
|
+
// the method will just return the existing emojiRepository
|
|
119
|
+
if (force || !this.emojiRepository && !this.isInitialised) {
|
|
120
|
+
this.isInitialised = true; // Ensure order is retained by tracking until all done.
|
|
121
|
+
|
|
122
|
+
var emojiResponses = [];
|
|
123
|
+
this.activeLoaders = this.emojiProviderConfig.providers.length;
|
|
124
|
+
this.emojiProviderConfig.providers.forEach( /*#__PURE__*/function () {
|
|
125
|
+
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(provider, index) {
|
|
126
|
+
var providerType, loader, emojis;
|
|
127
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
128
|
+
while (1) {
|
|
129
|
+
switch (_context.prev = _context.next) {
|
|
130
|
+
case 0:
|
|
131
|
+
providerType = _this2.getProviderType(provider);
|
|
132
|
+
(0, _ufoExperiences.sampledUfoEmojiResourceFetched)(providerType).start({
|
|
133
|
+
samplingRate: _constants.SAMPLING_RATE_EMOJI_RESOURCE_FETCHED_EXP
|
|
134
|
+
});
|
|
135
|
+
(0, _ufoExperiences.sampledUfoEmojiResourceFetched)(providerType).addMetadata({
|
|
136
|
+
type: providerType
|
|
137
|
+
});
|
|
138
|
+
loader = new _EmojiLoader.default(provider);
|
|
139
|
+
emojis = loader.loadEmoji();
|
|
140
|
+
_context.next = 7;
|
|
141
|
+
return emojis.then(function (emojiResponse) {
|
|
142
|
+
emojiResponses[index] = emojiResponse;
|
|
143
|
+
|
|
144
|
+
_this2.initEmojiRepository(emojiResponses);
|
|
145
|
+
|
|
146
|
+
_this2.initSiteEmojiResource(emojiResponse, provider).then(function () {
|
|
147
|
+
_this2.activeLoaders--;
|
|
148
|
+
|
|
149
|
+
_this2.performRetries();
|
|
150
|
+
|
|
151
|
+
_this2.refreshLastFilter(); // if not site emoji it would still resolve
|
|
152
|
+
// TODO: improve the logic in future
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
(0, _ufoExperiences.sampledUfoEmojiResourceFetched)(providerType).success();
|
|
156
|
+
});
|
|
157
|
+
}).catch(function (reason) {
|
|
158
|
+
_this2.activeLoaders--;
|
|
159
|
+
|
|
160
|
+
_this2.notifyError(reason);
|
|
161
|
+
|
|
162
|
+
(0, _ufoExperiences.sampledUfoEmojiResourceFetched)(providerType).failure({
|
|
163
|
+
metadata: {
|
|
164
|
+
reason: reason,
|
|
165
|
+
source: 'EmojiProvider',
|
|
166
|
+
data: {
|
|
167
|
+
providerUrl: provider.url
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
});
|
|
172
|
+
|
|
173
|
+
case 7:
|
|
174
|
+
case "end":
|
|
175
|
+
return _context.stop();
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}, _callee);
|
|
179
|
+
}));
|
|
180
|
+
|
|
181
|
+
return function (_x, _x2) {
|
|
182
|
+
return _ref.apply(this, arguments);
|
|
183
|
+
};
|
|
184
|
+
}());
|
|
185
|
+
}
|
|
107
186
|
|
|
108
|
-
|
|
109
|
-
|
|
187
|
+
return Promise.resolve(this.emojiRepository);
|
|
188
|
+
}
|
|
189
|
+
}, {
|
|
190
|
+
key: "fetchByEmojiId",
|
|
191
|
+
value: function () {
|
|
192
|
+
var _fetchByEmojiId = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(emojiId, optimistic) {
|
|
193
|
+
var _emoji, provider, loader, loadEmoji, _emoji2, emoji;
|
|
110
194
|
|
|
111
|
-
|
|
195
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
196
|
+
while (1) {
|
|
197
|
+
switch (_context2.prev = _context2.next) {
|
|
198
|
+
case 0:
|
|
199
|
+
if (!(this.emojiRepository && this.isLoaded())) {
|
|
200
|
+
_context2.next = 6;
|
|
201
|
+
break;
|
|
202
|
+
}
|
|
112
203
|
|
|
113
|
-
|
|
114
|
-
|
|
204
|
+
_context2.next = 3;
|
|
205
|
+
return this.findByEmojiId(emojiId);
|
|
115
206
|
|
|
207
|
+
case 3:
|
|
208
|
+
_emoji = _context2.sent;
|
|
116
209
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
210
|
+
if (!_emoji) {
|
|
211
|
+
_context2.next = 6;
|
|
212
|
+
break;
|
|
213
|
+
}
|
|
121
214
|
|
|
122
|
-
|
|
215
|
+
return _context2.abrupt("return", Promise.resolve(this.getMediaEmojiDescriptionURLWithInlineToken(_emoji)));
|
|
123
216
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
});
|
|
130
|
-
});
|
|
217
|
+
case 6:
|
|
218
|
+
if (!(this.emojiProviderConfig.singleEmojiApi && optimistic)) {
|
|
219
|
+
_context2.next = 29;
|
|
220
|
+
break;
|
|
221
|
+
}
|
|
131
222
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
223
|
+
// if config has singleEmojiApi then fetch single emoji
|
|
224
|
+
provider = {
|
|
225
|
+
url: this.emojiProviderConfig.singleEmojiApi.getUrl(emojiId),
|
|
226
|
+
securityProvider: this.emojiProviderConfig.singleEmojiApi.securityProvider
|
|
227
|
+
};
|
|
228
|
+
loader = new _EmojiLoader.default(provider);
|
|
229
|
+
_context2.prev = 9;
|
|
230
|
+
_context2.next = 12;
|
|
231
|
+
return loader.loadEmoji();
|
|
232
|
+
|
|
233
|
+
case 12:
|
|
234
|
+
loadEmoji = _context2.sent;
|
|
235
|
+
|
|
236
|
+
if (loadEmoji.emojis[0]) {
|
|
237
|
+
_context2.next = 15;
|
|
238
|
+
break;
|
|
239
|
+
}
|
|
135
240
|
|
|
136
|
-
|
|
137
|
-
throw new Error('No providers specified');
|
|
138
|
-
}
|
|
241
|
+
return _context2.abrupt("return");
|
|
139
242
|
|
|
140
|
-
|
|
141
|
-
|
|
243
|
+
case 15:
|
|
244
|
+
if (this.siteEmojiResource) {
|
|
245
|
+
_context2.next = 18;
|
|
246
|
+
break;
|
|
247
|
+
}
|
|
142
248
|
|
|
143
|
-
|
|
249
|
+
_context2.next = 18;
|
|
250
|
+
return this.initSiteEmojiResource(loadEmoji, provider);
|
|
251
|
+
|
|
252
|
+
case 18:
|
|
253
|
+
return _context2.abrupt("return", this.getMediaEmojiDescriptionURLWithInlineToken(loadEmoji.emojis[0]));
|
|
254
|
+
|
|
255
|
+
case 21:
|
|
256
|
+
_context2.prev = 21;
|
|
257
|
+
_context2.t0 = _context2["catch"](9);
|
|
258
|
+
_context2.next = 25;
|
|
259
|
+
return this.findByEmojiId(emojiId);
|
|
260
|
+
|
|
261
|
+
case 25:
|
|
262
|
+
_emoji2 = _context2.sent;
|
|
263
|
+
|
|
264
|
+
if (_emoji2) {
|
|
265
|
+
_context2.next = 28;
|
|
266
|
+
break;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
return _context2.abrupt("return");
|
|
270
|
+
|
|
271
|
+
case 28:
|
|
272
|
+
return _context2.abrupt("return", this.getMediaEmojiDescriptionURLWithInlineToken(_emoji2));
|
|
273
|
+
|
|
274
|
+
case 29:
|
|
275
|
+
_context2.next = 31;
|
|
276
|
+
return this.findByEmojiId(emojiId);
|
|
277
|
+
|
|
278
|
+
case 31:
|
|
279
|
+
emoji = _context2.sent;
|
|
280
|
+
|
|
281
|
+
if (emoji) {
|
|
282
|
+
_context2.next = 34;
|
|
283
|
+
break;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
return _context2.abrupt("return");
|
|
287
|
+
|
|
288
|
+
case 34:
|
|
289
|
+
return _context2.abrupt("return", this.getMediaEmojiDescriptionURLWithInlineToken(emoji));
|
|
290
|
+
|
|
291
|
+
case 35:
|
|
292
|
+
case "end":
|
|
293
|
+
return _context2.stop();
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
}, _callee2, this, [[9, 21]]);
|
|
297
|
+
}));
|
|
298
|
+
|
|
299
|
+
function fetchByEmojiId(_x3, _x4) {
|
|
300
|
+
return _fetchByEmojiId.apply(this, arguments);
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
return fetchByEmojiId;
|
|
304
|
+
}()
|
|
305
|
+
}, {
|
|
144
306
|
key: "getProviderType",
|
|
145
307
|
value: function getProviderType(provider) {
|
|
146
308
|
if (provider.url.includes('/site')) {
|
|
@@ -238,11 +400,11 @@ var EmojiResource = /*#__PURE__*/function (_AbstractResource) {
|
|
|
238
400
|
}, {
|
|
239
401
|
key: "retryIfLoading",
|
|
240
402
|
value: function retryIfLoading(retry, defaultResponse) {
|
|
241
|
-
var
|
|
403
|
+
var _this3 = this;
|
|
242
404
|
|
|
243
405
|
if (!this.isLoaded()) {
|
|
244
406
|
return new Promise(function (resolve, reject) {
|
|
245
|
-
|
|
407
|
+
_this3.retries.set(retry, {
|
|
246
408
|
resolve: resolve,
|
|
247
409
|
reject: reject
|
|
248
410
|
});
|
|
@@ -265,40 +427,40 @@ var EmojiResource = /*#__PURE__*/function (_AbstractResource) {
|
|
|
265
427
|
}, {
|
|
266
428
|
key: "getMediaEmojiDescriptionURLWithInlineToken",
|
|
267
429
|
value: function () {
|
|
268
|
-
var _getMediaEmojiDescriptionURLWithInlineToken = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
430
|
+
var _getMediaEmojiDescriptionURLWithInlineToken = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(emoji) {
|
|
269
431
|
var tokenisedMediaPath;
|
|
270
|
-
return _regenerator.default.wrap(function
|
|
432
|
+
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
271
433
|
while (1) {
|
|
272
|
-
switch (
|
|
434
|
+
switch (_context3.prev = _context3.next) {
|
|
273
435
|
case 0:
|
|
274
436
|
if (!(this.siteEmojiResource && (0, _typeHelpers.isMediaRepresentation)(emoji.representation))) {
|
|
275
|
-
|
|
437
|
+
_context3.next = 5;
|
|
276
438
|
break;
|
|
277
439
|
}
|
|
278
440
|
|
|
279
|
-
|
|
441
|
+
_context3.next = 3;
|
|
280
442
|
return this.siteEmojiResource.generateTokenisedMediaURL(emoji);
|
|
281
443
|
|
|
282
444
|
case 3:
|
|
283
|
-
tokenisedMediaPath =
|
|
284
|
-
return
|
|
445
|
+
tokenisedMediaPath = _context3.sent;
|
|
446
|
+
return _context3.abrupt("return", _objectSpread(_objectSpread({}, emoji), {}, {
|
|
285
447
|
representation: _objectSpread(_objectSpread({}, emoji.representation), {}, {
|
|
286
448
|
mediaPath: tokenisedMediaPath
|
|
287
449
|
})
|
|
288
450
|
}));
|
|
289
451
|
|
|
290
452
|
case 5:
|
|
291
|
-
return
|
|
453
|
+
return _context3.abrupt("return", emoji);
|
|
292
454
|
|
|
293
455
|
case 6:
|
|
294
456
|
case "end":
|
|
295
|
-
return
|
|
457
|
+
return _context3.stop();
|
|
296
458
|
}
|
|
297
459
|
}
|
|
298
|
-
},
|
|
460
|
+
}, _callee3, this);
|
|
299
461
|
}));
|
|
300
462
|
|
|
301
|
-
function getMediaEmojiDescriptionURLWithInlineToken(
|
|
463
|
+
function getMediaEmojiDescriptionURLWithInlineToken(_x5) {
|
|
302
464
|
return _getMediaEmojiDescriptionURLWithInlineToken.apply(this, arguments);
|
|
303
465
|
}
|
|
304
466
|
|
|
@@ -352,7 +514,7 @@ var EmojiResource = /*#__PURE__*/function (_AbstractResource) {
|
|
|
352
514
|
}, {
|
|
353
515
|
key: "findByShortName",
|
|
354
516
|
value: function findByShortName(shortName) {
|
|
355
|
-
var
|
|
517
|
+
var _this4 = this;
|
|
356
518
|
|
|
357
519
|
if (this.isLoaded()) {
|
|
358
520
|
// Wait for all emoji to load before looking by shortName (to ensure correct priority)
|
|
@@ -360,13 +522,13 @@ var EmojiResource = /*#__PURE__*/function (_AbstractResource) {
|
|
|
360
522
|
}
|
|
361
523
|
|
|
362
524
|
return this.retryIfLoading(function () {
|
|
363
|
-
return
|
|
525
|
+
return _this4.findByShortName(shortName);
|
|
364
526
|
}, undefined);
|
|
365
527
|
}
|
|
366
528
|
}, {
|
|
367
529
|
key: "findByEmojiId",
|
|
368
530
|
value: function findByEmojiId(emojiId) {
|
|
369
|
-
var
|
|
531
|
+
var _this5 = this;
|
|
370
532
|
|
|
371
533
|
var id = emojiId.id,
|
|
372
534
|
shortName = emojiId.shortName;
|
|
@@ -387,10 +549,10 @@ var EmojiResource = /*#__PURE__*/function (_AbstractResource) {
|
|
|
387
549
|
if (!emoji) {
|
|
388
550
|
// if not, fallback to searching by shortName to
|
|
389
551
|
// at least render an alternative
|
|
390
|
-
return
|
|
552
|
+
return _this5.findByShortName(shortName);
|
|
391
553
|
}
|
|
392
554
|
|
|
393
|
-
|
|
555
|
+
_this5.addUnknownEmoji(emoji);
|
|
394
556
|
|
|
395
557
|
return emoji;
|
|
396
558
|
});
|
|
@@ -407,59 +569,59 @@ var EmojiResource = /*#__PURE__*/function (_AbstractResource) {
|
|
|
407
569
|
}
|
|
408
570
|
|
|
409
571
|
return this.retryIfLoading(function () {
|
|
410
|
-
return
|
|
572
|
+
return _this5.findByEmojiId(emojiId);
|
|
411
573
|
}, undefined);
|
|
412
574
|
}
|
|
413
575
|
}, {
|
|
414
576
|
key: "findById",
|
|
415
577
|
value: function findById(id) {
|
|
416
|
-
var
|
|
578
|
+
var _this6 = this;
|
|
417
579
|
|
|
418
580
|
if (this.isLoaded()) {
|
|
419
581
|
return this.emojiRepository.findById(id);
|
|
420
582
|
}
|
|
421
583
|
|
|
422
584
|
return this.retryIfLoading(function () {
|
|
423
|
-
return
|
|
585
|
+
return _this6.findById(id);
|
|
424
586
|
}, undefined);
|
|
425
587
|
}
|
|
426
588
|
}, {
|
|
427
589
|
key: "findInCategory",
|
|
428
590
|
value: function findInCategory(categoryId) {
|
|
429
|
-
var
|
|
591
|
+
var _this7 = this;
|
|
430
592
|
|
|
431
593
|
if (this.isLoaded()) {
|
|
432
594
|
return Promise.resolve(this.emojiRepository.findInCategory(categoryId));
|
|
433
595
|
}
|
|
434
596
|
|
|
435
597
|
return this.retryIfLoading(function () {
|
|
436
|
-
return
|
|
598
|
+
return _this7.findInCategory(categoryId);
|
|
437
599
|
}, []);
|
|
438
600
|
}
|
|
439
601
|
}, {
|
|
440
602
|
key: "getAsciiMap",
|
|
441
603
|
value: function getAsciiMap() {
|
|
442
|
-
var
|
|
604
|
+
var _this8 = this;
|
|
443
605
|
|
|
444
606
|
if (this.isLoaded()) {
|
|
445
607
|
return Promise.resolve(this.emojiRepository.getAsciiMap());
|
|
446
608
|
}
|
|
447
609
|
|
|
448
610
|
return this.retryIfLoading(function () {
|
|
449
|
-
return
|
|
611
|
+
return _this8.getAsciiMap();
|
|
450
612
|
}, new Map());
|
|
451
613
|
}
|
|
452
614
|
}, {
|
|
453
615
|
key: "getFrequentlyUsed",
|
|
454
616
|
value: function getFrequentlyUsed(options) {
|
|
455
|
-
var
|
|
617
|
+
var _this9 = this;
|
|
456
618
|
|
|
457
619
|
if (this.isLoaded()) {
|
|
458
620
|
return Promise.resolve(this.emojiRepository.getFrequentlyUsed(options));
|
|
459
621
|
}
|
|
460
622
|
|
|
461
623
|
return this.retryIfLoading(function () {
|
|
462
|
-
return
|
|
624
|
+
return _this9.getFrequentlyUsed(options);
|
|
463
625
|
}, []);
|
|
464
626
|
}
|
|
465
627
|
/**
|
|
@@ -497,12 +659,12 @@ var EmojiResource = /*#__PURE__*/function (_AbstractResource) {
|
|
|
497
659
|
}, {
|
|
498
660
|
key: "deleteSiteEmoji",
|
|
499
661
|
value: function deleteSiteEmoji(emoji) {
|
|
500
|
-
var
|
|
662
|
+
var _this10 = this;
|
|
501
663
|
|
|
502
664
|
if (this.siteEmojiResource && emoji.id) {
|
|
503
665
|
return this.siteEmojiResource.deleteEmoji(emoji).then(function (success) {
|
|
504
|
-
if (success &&
|
|
505
|
-
|
|
666
|
+
if (success && _this10.emojiRepository) {
|
|
667
|
+
_this10.emojiRepository.delete(emoji);
|
|
506
668
|
|
|
507
669
|
return true;
|
|
508
670
|
}
|
|
@@ -516,7 +678,7 @@ var EmojiResource = /*#__PURE__*/function (_AbstractResource) {
|
|
|
516
678
|
}
|
|
517
679
|
|
|
518
680
|
return this.retryIfLoading(function () {
|
|
519
|
-
return
|
|
681
|
+
return _this10.deleteSiteEmoji(emoji);
|
|
520
682
|
}, false);
|
|
521
683
|
}
|
|
522
684
|
}, {
|
|
@@ -545,14 +707,14 @@ var EmojiResource = /*#__PURE__*/function (_AbstractResource) {
|
|
|
545
707
|
}, {
|
|
546
708
|
key: "calculateDynamicCategories",
|
|
547
709
|
value: function calculateDynamicCategories() {
|
|
548
|
-
var
|
|
710
|
+
var _this11 = this;
|
|
549
711
|
|
|
550
712
|
if (this.isLoaded()) {
|
|
551
713
|
return Promise.resolve(this.emojiRepository.getDynamicCategoryList());
|
|
552
714
|
}
|
|
553
715
|
|
|
554
716
|
return this.retryIfLoading(function () {
|
|
555
|
-
return
|
|
717
|
+
return _this11.calculateDynamicCategories();
|
|
556
718
|
}, []);
|
|
557
719
|
}
|
|
558
720
|
}, {
|
|
@@ -579,18 +741,18 @@ var UploadingEmojiResource = /*#__PURE__*/function (_EmojiResource) {
|
|
|
579
741
|
var _super2 = _createSuper(UploadingEmojiResource);
|
|
580
742
|
|
|
581
743
|
function UploadingEmojiResource(config) {
|
|
582
|
-
var
|
|
744
|
+
var _this12;
|
|
583
745
|
|
|
584
746
|
(0, _classCallCheck2.default)(this, UploadingEmojiResource);
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
return
|
|
747
|
+
_this12 = _super2.call(this, config);
|
|
748
|
+
_this12.allowUpload = !!config.allowUpload;
|
|
749
|
+
return _this12;
|
|
588
750
|
}
|
|
589
751
|
|
|
590
752
|
(0, _createClass2.default)(UploadingEmojiResource, [{
|
|
591
753
|
key: "isUploadSupported",
|
|
592
754
|
value: function isUploadSupported() {
|
|
593
|
-
var
|
|
755
|
+
var _this13 = this;
|
|
594
756
|
|
|
595
757
|
if (!this.allowUpload) {
|
|
596
758
|
return Promise.resolve(false);
|
|
@@ -601,23 +763,24 @@ var UploadingEmojiResource = /*#__PURE__*/function (_EmojiResource) {
|
|
|
601
763
|
}
|
|
602
764
|
|
|
603
765
|
return this.retryIfLoading(function () {
|
|
604
|
-
return
|
|
766
|
+
return _this13.isUploadSupported();
|
|
605
767
|
}, false);
|
|
606
768
|
}
|
|
607
769
|
}, {
|
|
608
770
|
key: "uploadCustomEmoji",
|
|
609
771
|
value: function uploadCustomEmoji(upload) {
|
|
610
|
-
var
|
|
772
|
+
var _this14 = this;
|
|
611
773
|
|
|
774
|
+
var retry = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
612
775
|
return this.isUploadSupported().then(function (supported) {
|
|
613
|
-
if (!supported || !
|
|
776
|
+
if (!supported || !_this14.siteEmojiResource) {
|
|
614
777
|
return Promise.reject('No media api support is configured');
|
|
615
778
|
}
|
|
616
779
|
|
|
617
|
-
return
|
|
618
|
-
|
|
780
|
+
return _this14.siteEmojiResource.uploadEmoji(upload, retry).then(function (emoji) {
|
|
781
|
+
_this14.addUnknownEmoji(emoji);
|
|
619
782
|
|
|
620
|
-
|
|
783
|
+
_this14.refreshLastFilter();
|
|
621
784
|
|
|
622
785
|
return emoji;
|
|
623
786
|
});
|
|
@@ -626,14 +789,14 @@ var UploadingEmojiResource = /*#__PURE__*/function (_EmojiResource) {
|
|
|
626
789
|
}, {
|
|
627
790
|
key: "prepareForUpload",
|
|
628
791
|
value: function prepareForUpload() {
|
|
629
|
-
var
|
|
792
|
+
var _this15 = this;
|
|
630
793
|
|
|
631
794
|
if (this.siteEmojiResource) {
|
|
632
795
|
this.siteEmojiResource.prepareForUpload();
|
|
633
796
|
}
|
|
634
797
|
|
|
635
798
|
return this.retryIfLoading(function () {
|
|
636
|
-
return
|
|
799
|
+
return _this15.prepareForUpload();
|
|
637
800
|
}, undefined);
|
|
638
801
|
}
|
|
639
802
|
}]);
|
|
@@ -177,11 +177,13 @@ var SiteEmojiResource = /*#__PURE__*/function () {
|
|
|
177
177
|
}
|
|
178
178
|
}, {
|
|
179
179
|
key: "uploadEmoji",
|
|
180
|
-
value: function uploadEmoji(upload
|
|
180
|
+
value: function uploadEmoji(upload) {
|
|
181
181
|
var _this2 = this;
|
|
182
182
|
|
|
183
|
+
var retry = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
184
|
+
var progressCallback = arguments.length > 2 ? arguments[2] : undefined;
|
|
183
185
|
var startTime = Date.now();
|
|
184
|
-
return this.tokenManager.getToken('upload').then(function (uploadToken) {
|
|
186
|
+
return this.tokenManager.getToken('upload', retry).then(function (uploadToken) {
|
|
185
187
|
var tokenLoadTime = Date.now() - startTime;
|
|
186
188
|
(0, _logger.default)('upload token load time', tokenLoadTime);
|
|
187
189
|
return new Promise(function (resolve, reject) {
|
|
@@ -36,6 +36,13 @@ var TokenManager = /*#__PURE__*/function () {
|
|
|
36
36
|
|
|
37
37
|
return false;
|
|
38
38
|
}
|
|
39
|
+
}, {
|
|
40
|
+
key: "fetchNewToken",
|
|
41
|
+
value: function fetchNewToken(type) {
|
|
42
|
+
return _utilServiceSupport.utils.requestService(this.siteServiceConfig, {
|
|
43
|
+
path: "token/".concat(type)
|
|
44
|
+
});
|
|
45
|
+
}
|
|
39
46
|
}, {
|
|
40
47
|
key: "addToken",
|
|
41
48
|
value: function addToken(type, mediaApiToken) {
|
|
@@ -64,22 +71,16 @@ var TokenManager = /*#__PURE__*/function () {
|
|
|
64
71
|
}
|
|
65
72
|
|
|
66
73
|
if (activeTokenRefresh) {
|
|
67
|
-
// refresh already active, return that
|
|
74
|
+
// refresh token promise already active, return that
|
|
68
75
|
return activeTokenRefresh;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
tokenDetail.mediaApiToken = undefined;
|
|
73
|
-
}
|
|
76
|
+
}
|
|
77
|
+
} // request a new token and track the promise for future requests until completed
|
|
74
78
|
|
|
75
|
-
var path = "token/".concat(type); // request a new token and track the promise for future requests until completed
|
|
76
79
|
|
|
77
|
-
tokenDetail.activeTokenRefresh =
|
|
78
|
-
|
|
79
|
-
}).then(function (mediaApiToken) {
|
|
80
|
+
tokenDetail.activeTokenRefresh = this.fetchNewToken(type).then(function (token) {
|
|
81
|
+
tokenDetail.mediaApiToken = token;
|
|
80
82
|
tokenDetail.activeTokenRefresh = undefined;
|
|
81
|
-
|
|
82
|
-
return mediaApiToken;
|
|
83
|
+
return token;
|
|
83
84
|
});
|
|
84
85
|
return tokenDetail.activeTokenRefresh;
|
|
85
86
|
}
|