@atlaskit/emoji 64.7.1 → 65.0.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 +16 -0
- package/dist/cjs/api/EmojiResource.js +250 -91
- package/dist/cjs/api/media/SiteEmojiResource.js +4 -2
- package/dist/cjs/api/media/TokenManager.js +13 -12
- package/dist/cjs/components/common/EmojiImage.js +99 -0
- package/dist/cjs/components/common/EmojiPlaceholder.js +7 -5
- package/dist/cjs/components/common/ResourcedEmoji.js +1 -1
- package/dist/cjs/components/common/ResourcedEmojiComponent.js +159 -165
- package/dist/cjs/components/common/UploadEmoji.js +3 -14
- package/dist/cjs/components/common/styles.js +26 -9
- package/dist/cjs/components/picker/EmojiPickerComponent.js +3 -3
- package/dist/cjs/components/uploader/EmojiUploadComponent.js +1 -1
- package/dist/cjs/context/EmojiContextProvider.js +33 -0
- package/dist/cjs/index.js +20 -0
- package/dist/cjs/types.js +1 -0
- package/dist/cjs/util/analytics/samplingUfo.js +13 -3
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/api/EmojiResource.js +116 -40
- package/dist/es2019/api/media/SiteEmojiResource.js +2 -2
- package/dist/es2019/api/media/TokenManager.js +12 -12
- package/dist/es2019/components/common/EmojiImage.js +74 -0
- package/dist/es2019/components/common/EmojiPlaceholder.js +7 -5
- package/dist/es2019/components/common/ResourcedEmoji.js +1 -1
- package/dist/es2019/components/common/ResourcedEmojiComponent.js +117 -104
- package/dist/es2019/components/common/UploadEmoji.js +3 -7
- package/dist/es2019/components/common/styles.js +30 -9
- package/dist/es2019/components/picker/EmojiPickerComponent.js +2 -2
- package/dist/es2019/components/uploader/EmojiUploadComponent.js +1 -1
- package/dist/es2019/context/EmojiContextProvider.js +9 -1
- package/dist/es2019/index.js +5 -4
- package/dist/es2019/types.js +1 -0
- package/dist/es2019/util/analytics/samplingUfo.js +11 -1
- package/dist/es2019/version.json +1 -1
- package/dist/esm/api/EmojiResource.js +257 -93
- package/dist/esm/api/media/SiteEmojiResource.js +5 -3
- package/dist/esm/api/media/TokenManager.js +13 -12
- package/dist/esm/components/common/EmojiImage.js +84 -0
- package/dist/esm/components/common/EmojiPlaceholder.js +8 -5
- package/dist/esm/components/common/ResourcedEmoji.js +1 -1
- package/dist/esm/components/common/ResourcedEmojiComponent.js +155 -165
- package/dist/esm/components/common/UploadEmoji.js +3 -12
- package/dist/esm/components/common/styles.js +25 -10
- package/dist/esm/components/picker/EmojiPickerComponent.js +2 -2
- package/dist/esm/components/uploader/EmojiUploadComponent.js +1 -1
- package/dist/esm/context/EmojiContextProvider.js +30 -1
- package/dist/esm/index.js +5 -4
- package/dist/esm/types.js +1 -0
- package/dist/esm/util/analytics/samplingUfo.js +13 -2
- package/dist/esm/version.json +1 -1
- package/dist/types/api/EmojiResource.d.ts +20 -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/EmojiImage.d.ts +13 -0
- package/dist/types/components/common/EmojiPlaceholder.d.ts +1 -0
- package/dist/types/components/common/LoadingEmojiComponent.d.ts +4 -4
- package/dist/types/components/common/ResourcedEmoji.d.ts +3 -3
- package/dist/types/components/common/ResourcedEmojiComponent.d.ts +21 -12
- package/dist/types/components/common/UploadEmoji.d.ts +1 -1
- package/dist/types/components/common/styles.d.ts +1 -0
- package/dist/types/index.d.ts +5 -4
- package/dist/types/types.d.ts +12 -2
- package/dist/types/util/analytics/index.d.ts +1 -1
- package/dist/types/util/analytics/samplingUfo.d.ts +1 -8
- package/dist/types/util/analytics/ufoExperiences.d.ts +2 -2
- 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,21 @@
|
|
|
1
1
|
# @atlaskit/emoji
|
|
2
2
|
|
|
3
|
+
## 65.0.0
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- [`06232e0f8dd`](https://bitbucket.org/atlassian/atlassian-frontend/commits/06232e0f8dd) - [ux] Opt In SSR for Resourced Emoji and Emoji Placeholder with EmojiResource interfaces
|
|
8
|
+
|
|
9
|
+
### Minor Changes
|
|
10
|
+
|
|
11
|
+
- [`34155ee7563`](https://bitbucket.org/atlassian/atlassian-frontend/commits/34155ee7563) - add sampling for 2 ufo experiences to reduce volume of analytics
|
|
12
|
+
- [`11f56527739`](https://bitbucket.org/atlassian/atlassian-frontend/commits/11f56527739) - Export emoji placeholder class name
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- [`cd92dca3d5c`](https://bitbucket.org/atlassian/atlassian-frontend/commits/cd92dca3d5c) - minor improvements on upload emoji and add more tests
|
|
17
|
+
- Updated dependencies
|
|
18
|
+
|
|
3
19
|
## 64.7.1
|
|
4
20
|
|
|
5
21
|
### Patch 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,70 +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
|
-
providerUrl: provider.url
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
});
|
|
133
|
-
});
|
|
134
|
-
});
|
|
217
|
+
case 6:
|
|
218
|
+
if (!(this.emojiProviderConfig.singleEmojiApi && optimistic)) {
|
|
219
|
+
_context2.next = 29;
|
|
220
|
+
break;
|
|
221
|
+
}
|
|
135
222
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
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
|
+
}
|
|
139
240
|
|
|
140
|
-
|
|
141
|
-
throw new Error('No providers specified');
|
|
142
|
-
}
|
|
241
|
+
return _context2.abrupt("return");
|
|
143
242
|
|
|
144
|
-
|
|
145
|
-
|
|
243
|
+
case 15:
|
|
244
|
+
if (this.siteEmojiResource) {
|
|
245
|
+
_context2.next = 18;
|
|
246
|
+
break;
|
|
247
|
+
}
|
|
146
248
|
|
|
147
|
-
|
|
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
|
+
}, {
|
|
148
306
|
key: "getProviderType",
|
|
149
307
|
value: function getProviderType(provider) {
|
|
150
308
|
if (provider.url.includes('/site')) {
|
|
@@ -242,11 +400,11 @@ var EmojiResource = /*#__PURE__*/function (_AbstractResource) {
|
|
|
242
400
|
}, {
|
|
243
401
|
key: "retryIfLoading",
|
|
244
402
|
value: function retryIfLoading(retry, defaultResponse) {
|
|
245
|
-
var
|
|
403
|
+
var _this3 = this;
|
|
246
404
|
|
|
247
405
|
if (!this.isLoaded()) {
|
|
248
406
|
return new Promise(function (resolve, reject) {
|
|
249
|
-
|
|
407
|
+
_this3.retries.set(retry, {
|
|
250
408
|
resolve: resolve,
|
|
251
409
|
reject: reject
|
|
252
410
|
});
|
|
@@ -269,40 +427,40 @@ var EmojiResource = /*#__PURE__*/function (_AbstractResource) {
|
|
|
269
427
|
}, {
|
|
270
428
|
key: "getMediaEmojiDescriptionURLWithInlineToken",
|
|
271
429
|
value: function () {
|
|
272
|
-
var _getMediaEmojiDescriptionURLWithInlineToken = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
430
|
+
var _getMediaEmojiDescriptionURLWithInlineToken = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(emoji) {
|
|
273
431
|
var tokenisedMediaPath;
|
|
274
|
-
return _regenerator.default.wrap(function
|
|
432
|
+
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
275
433
|
while (1) {
|
|
276
|
-
switch (
|
|
434
|
+
switch (_context3.prev = _context3.next) {
|
|
277
435
|
case 0:
|
|
278
436
|
if (!(this.siteEmojiResource && (0, _typeHelpers.isMediaRepresentation)(emoji.representation))) {
|
|
279
|
-
|
|
437
|
+
_context3.next = 5;
|
|
280
438
|
break;
|
|
281
439
|
}
|
|
282
440
|
|
|
283
|
-
|
|
441
|
+
_context3.next = 3;
|
|
284
442
|
return this.siteEmojiResource.generateTokenisedMediaURL(emoji);
|
|
285
443
|
|
|
286
444
|
case 3:
|
|
287
|
-
tokenisedMediaPath =
|
|
288
|
-
return
|
|
445
|
+
tokenisedMediaPath = _context3.sent;
|
|
446
|
+
return _context3.abrupt("return", _objectSpread(_objectSpread({}, emoji), {}, {
|
|
289
447
|
representation: _objectSpread(_objectSpread({}, emoji.representation), {}, {
|
|
290
448
|
mediaPath: tokenisedMediaPath
|
|
291
449
|
})
|
|
292
450
|
}));
|
|
293
451
|
|
|
294
452
|
case 5:
|
|
295
|
-
return
|
|
453
|
+
return _context3.abrupt("return", emoji);
|
|
296
454
|
|
|
297
455
|
case 6:
|
|
298
456
|
case "end":
|
|
299
|
-
return
|
|
457
|
+
return _context3.stop();
|
|
300
458
|
}
|
|
301
459
|
}
|
|
302
|
-
},
|
|
460
|
+
}, _callee3, this);
|
|
303
461
|
}));
|
|
304
462
|
|
|
305
|
-
function getMediaEmojiDescriptionURLWithInlineToken(
|
|
463
|
+
function getMediaEmojiDescriptionURLWithInlineToken(_x5) {
|
|
306
464
|
return _getMediaEmojiDescriptionURLWithInlineToken.apply(this, arguments);
|
|
307
465
|
}
|
|
308
466
|
|
|
@@ -356,7 +514,7 @@ var EmojiResource = /*#__PURE__*/function (_AbstractResource) {
|
|
|
356
514
|
}, {
|
|
357
515
|
key: "findByShortName",
|
|
358
516
|
value: function findByShortName(shortName) {
|
|
359
|
-
var
|
|
517
|
+
var _this4 = this;
|
|
360
518
|
|
|
361
519
|
if (this.isLoaded()) {
|
|
362
520
|
// Wait for all emoji to load before looking by shortName (to ensure correct priority)
|
|
@@ -364,13 +522,13 @@ var EmojiResource = /*#__PURE__*/function (_AbstractResource) {
|
|
|
364
522
|
}
|
|
365
523
|
|
|
366
524
|
return this.retryIfLoading(function () {
|
|
367
|
-
return
|
|
525
|
+
return _this4.findByShortName(shortName);
|
|
368
526
|
}, undefined);
|
|
369
527
|
}
|
|
370
528
|
}, {
|
|
371
529
|
key: "findByEmojiId",
|
|
372
530
|
value: function findByEmojiId(emojiId) {
|
|
373
|
-
var
|
|
531
|
+
var _this5 = this;
|
|
374
532
|
|
|
375
533
|
var id = emojiId.id,
|
|
376
534
|
shortName = emojiId.shortName;
|
|
@@ -391,10 +549,10 @@ var EmojiResource = /*#__PURE__*/function (_AbstractResource) {
|
|
|
391
549
|
if (!emoji) {
|
|
392
550
|
// if not, fallback to searching by shortName to
|
|
393
551
|
// at least render an alternative
|
|
394
|
-
return
|
|
552
|
+
return _this5.findByShortName(shortName);
|
|
395
553
|
}
|
|
396
554
|
|
|
397
|
-
|
|
555
|
+
_this5.addUnknownEmoji(emoji);
|
|
398
556
|
|
|
399
557
|
return emoji;
|
|
400
558
|
});
|
|
@@ -411,59 +569,59 @@ var EmojiResource = /*#__PURE__*/function (_AbstractResource) {
|
|
|
411
569
|
}
|
|
412
570
|
|
|
413
571
|
return this.retryIfLoading(function () {
|
|
414
|
-
return
|
|
572
|
+
return _this5.findByEmojiId(emojiId);
|
|
415
573
|
}, undefined);
|
|
416
574
|
}
|
|
417
575
|
}, {
|
|
418
576
|
key: "findById",
|
|
419
577
|
value: function findById(id) {
|
|
420
|
-
var
|
|
578
|
+
var _this6 = this;
|
|
421
579
|
|
|
422
580
|
if (this.isLoaded()) {
|
|
423
581
|
return this.emojiRepository.findById(id);
|
|
424
582
|
}
|
|
425
583
|
|
|
426
584
|
return this.retryIfLoading(function () {
|
|
427
|
-
return
|
|
585
|
+
return _this6.findById(id);
|
|
428
586
|
}, undefined);
|
|
429
587
|
}
|
|
430
588
|
}, {
|
|
431
589
|
key: "findInCategory",
|
|
432
590
|
value: function findInCategory(categoryId) {
|
|
433
|
-
var
|
|
591
|
+
var _this7 = this;
|
|
434
592
|
|
|
435
593
|
if (this.isLoaded()) {
|
|
436
594
|
return Promise.resolve(this.emojiRepository.findInCategory(categoryId));
|
|
437
595
|
}
|
|
438
596
|
|
|
439
597
|
return this.retryIfLoading(function () {
|
|
440
|
-
return
|
|
598
|
+
return _this7.findInCategory(categoryId);
|
|
441
599
|
}, []);
|
|
442
600
|
}
|
|
443
601
|
}, {
|
|
444
602
|
key: "getAsciiMap",
|
|
445
603
|
value: function getAsciiMap() {
|
|
446
|
-
var
|
|
604
|
+
var _this8 = this;
|
|
447
605
|
|
|
448
606
|
if (this.isLoaded()) {
|
|
449
607
|
return Promise.resolve(this.emojiRepository.getAsciiMap());
|
|
450
608
|
}
|
|
451
609
|
|
|
452
610
|
return this.retryIfLoading(function () {
|
|
453
|
-
return
|
|
611
|
+
return _this8.getAsciiMap();
|
|
454
612
|
}, new Map());
|
|
455
613
|
}
|
|
456
614
|
}, {
|
|
457
615
|
key: "getFrequentlyUsed",
|
|
458
616
|
value: function getFrequentlyUsed(options) {
|
|
459
|
-
var
|
|
617
|
+
var _this9 = this;
|
|
460
618
|
|
|
461
619
|
if (this.isLoaded()) {
|
|
462
620
|
return Promise.resolve(this.emojiRepository.getFrequentlyUsed(options));
|
|
463
621
|
}
|
|
464
622
|
|
|
465
623
|
return this.retryIfLoading(function () {
|
|
466
|
-
return
|
|
624
|
+
return _this9.getFrequentlyUsed(options);
|
|
467
625
|
}, []);
|
|
468
626
|
}
|
|
469
627
|
/**
|
|
@@ -501,12 +659,12 @@ var EmojiResource = /*#__PURE__*/function (_AbstractResource) {
|
|
|
501
659
|
}, {
|
|
502
660
|
key: "deleteSiteEmoji",
|
|
503
661
|
value: function deleteSiteEmoji(emoji) {
|
|
504
|
-
var
|
|
662
|
+
var _this10 = this;
|
|
505
663
|
|
|
506
664
|
if (this.siteEmojiResource && emoji.id) {
|
|
507
665
|
return this.siteEmojiResource.deleteEmoji(emoji).then(function (success) {
|
|
508
|
-
if (success &&
|
|
509
|
-
|
|
666
|
+
if (success && _this10.emojiRepository) {
|
|
667
|
+
_this10.emojiRepository.delete(emoji);
|
|
510
668
|
|
|
511
669
|
return true;
|
|
512
670
|
}
|
|
@@ -520,7 +678,7 @@ var EmojiResource = /*#__PURE__*/function (_AbstractResource) {
|
|
|
520
678
|
}
|
|
521
679
|
|
|
522
680
|
return this.retryIfLoading(function () {
|
|
523
|
-
return
|
|
681
|
+
return _this10.deleteSiteEmoji(emoji);
|
|
524
682
|
}, false);
|
|
525
683
|
}
|
|
526
684
|
}, {
|
|
@@ -549,14 +707,14 @@ var EmojiResource = /*#__PURE__*/function (_AbstractResource) {
|
|
|
549
707
|
}, {
|
|
550
708
|
key: "calculateDynamicCategories",
|
|
551
709
|
value: function calculateDynamicCategories() {
|
|
552
|
-
var
|
|
710
|
+
var _this11 = this;
|
|
553
711
|
|
|
554
712
|
if (this.isLoaded()) {
|
|
555
713
|
return Promise.resolve(this.emojiRepository.getDynamicCategoryList());
|
|
556
714
|
}
|
|
557
715
|
|
|
558
716
|
return this.retryIfLoading(function () {
|
|
559
|
-
return
|
|
717
|
+
return _this11.calculateDynamicCategories();
|
|
560
718
|
}, []);
|
|
561
719
|
}
|
|
562
720
|
}, {
|
|
@@ -583,18 +741,18 @@ var UploadingEmojiResource = /*#__PURE__*/function (_EmojiResource) {
|
|
|
583
741
|
var _super2 = _createSuper(UploadingEmojiResource);
|
|
584
742
|
|
|
585
743
|
function UploadingEmojiResource(config) {
|
|
586
|
-
var
|
|
744
|
+
var _this12;
|
|
587
745
|
|
|
588
746
|
(0, _classCallCheck2.default)(this, UploadingEmojiResource);
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
return
|
|
747
|
+
_this12 = _super2.call(this, config);
|
|
748
|
+
_this12.allowUpload = !!config.allowUpload;
|
|
749
|
+
return _this12;
|
|
592
750
|
}
|
|
593
751
|
|
|
594
752
|
(0, _createClass2.default)(UploadingEmojiResource, [{
|
|
595
753
|
key: "isUploadSupported",
|
|
596
754
|
value: function isUploadSupported() {
|
|
597
|
-
var
|
|
755
|
+
var _this13 = this;
|
|
598
756
|
|
|
599
757
|
if (!this.allowUpload) {
|
|
600
758
|
return Promise.resolve(false);
|
|
@@ -605,23 +763,24 @@ var UploadingEmojiResource = /*#__PURE__*/function (_EmojiResource) {
|
|
|
605
763
|
}
|
|
606
764
|
|
|
607
765
|
return this.retryIfLoading(function () {
|
|
608
|
-
return
|
|
766
|
+
return _this13.isUploadSupported();
|
|
609
767
|
}, false);
|
|
610
768
|
}
|
|
611
769
|
}, {
|
|
612
770
|
key: "uploadCustomEmoji",
|
|
613
771
|
value: function uploadCustomEmoji(upload) {
|
|
614
|
-
var
|
|
772
|
+
var _this14 = this;
|
|
615
773
|
|
|
774
|
+
var retry = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
616
775
|
return this.isUploadSupported().then(function (supported) {
|
|
617
|
-
if (!supported || !
|
|
776
|
+
if (!supported || !_this14.siteEmojiResource) {
|
|
618
777
|
return Promise.reject('No media api support is configured');
|
|
619
778
|
}
|
|
620
779
|
|
|
621
|
-
return
|
|
622
|
-
|
|
780
|
+
return _this14.siteEmojiResource.uploadEmoji(upload, retry).then(function (emoji) {
|
|
781
|
+
_this14.addUnknownEmoji(emoji);
|
|
623
782
|
|
|
624
|
-
|
|
783
|
+
_this14.refreshLastFilter();
|
|
625
784
|
|
|
626
785
|
return emoji;
|
|
627
786
|
});
|
|
@@ -630,14 +789,14 @@ var UploadingEmojiResource = /*#__PURE__*/function (_EmojiResource) {
|
|
|
630
789
|
}, {
|
|
631
790
|
key: "prepareForUpload",
|
|
632
791
|
value: function prepareForUpload() {
|
|
633
|
-
var
|
|
792
|
+
var _this15 = this;
|
|
634
793
|
|
|
635
794
|
if (this.siteEmojiResource) {
|
|
636
795
|
this.siteEmojiResource.prepareForUpload();
|
|
637
796
|
}
|
|
638
797
|
|
|
639
798
|
return this.retryIfLoading(function () {
|
|
640
|
-
return
|
|
799
|
+
return _this15.prepareForUpload();
|
|
641
800
|
}, undefined);
|
|
642
801
|
}
|
|
643
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
|
}
|