@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
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
2
1
|
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
3
2
|
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
4
3
|
import _createClass from "@babel/runtime/helpers/createClass";
|
|
@@ -13,12 +12,14 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
13
12
|
|
|
14
13
|
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; }
|
|
15
14
|
|
|
15
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
16
|
+
|
|
16
17
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
17
18
|
|
|
18
19
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
19
20
|
|
|
20
21
|
import { AbstractResource, utils as serviceUtils } from '@atlaskit/util-service-support';
|
|
21
|
-
import { selectedToneStorageKey } from '../util/constants';
|
|
22
|
+
import { SAMPLING_RATE_EMOJI_RESOURCE_FETCHED_EXP, selectedToneStorageKey } from '../util/constants';
|
|
22
23
|
import { isMediaEmoji, isMediaRepresentation, isPromise, toEmojiId } from '../util/type-helpers';
|
|
23
24
|
import storageAvailable from '../util/storage-available';
|
|
24
25
|
import { ProviderTypes } from '../types';
|
|
@@ -26,7 +27,7 @@ import debug from '../util/logger';
|
|
|
26
27
|
import EmojiLoader from './EmojiLoader';
|
|
27
28
|
import EmojiRepository from './EmojiRepository';
|
|
28
29
|
import SiteEmojiResource from './media/SiteEmojiResource';
|
|
29
|
-
import {
|
|
30
|
+
import { sampledUfoEmojiResourceFetched } from '../util/analytics/ufoExperiences';
|
|
30
31
|
|
|
31
32
|
/**
|
|
32
33
|
* Checks if the emojiProvider can support uploading at a feature level.
|
|
@@ -55,69 +56,231 @@ export var EmojiResource = /*#__PURE__*/function (_AbstractResource) {
|
|
|
55
56
|
|
|
56
57
|
_defineProperty(_assertThisInitialized(_this), "retries", new Map());
|
|
57
58
|
|
|
59
|
+
_defineProperty(_assertThisInitialized(_this), "isInitialised", false);
|
|
60
|
+
|
|
61
|
+
_defineProperty(_assertThisInitialized(_this), "getOptimisticImageURL", function (emojiId) {
|
|
62
|
+
if (_this.emojiProviderConfig.optimisticImageApi) {
|
|
63
|
+
return _this.emojiProviderConfig.optimisticImageApi.getUrl(emojiId);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
return;
|
|
67
|
+
});
|
|
68
|
+
|
|
58
69
|
_defineProperty(_assertThisInitialized(_this), "isLoaded", function () {
|
|
59
70
|
return _this.activeLoaders === 0 && _this.emojiRepository;
|
|
60
71
|
});
|
|
61
72
|
|
|
73
|
+
_this.emojiProviderConfig = config;
|
|
62
74
|
_this.recordConfig = config.recordConfig;
|
|
63
|
-
_this.currentUser = config.currentUser;
|
|
75
|
+
_this.currentUser = config.currentUser;
|
|
64
76
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
var providerType = _this.getProviderType(provider);
|
|
77
|
+
if (storageAvailable('localStorage')) {
|
|
78
|
+
_this.selectedTone = _this.loadStoredTone();
|
|
79
|
+
}
|
|
69
80
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
});
|
|
74
|
-
var loader = new EmojiLoader(provider);
|
|
75
|
-
var emojis = loader.loadEmoji();
|
|
76
|
-
emojis.then(function (emojiResponse) {
|
|
77
|
-
emojiResponses[index] = emojiResponse;
|
|
81
|
+
if (config.providers.length === 0) {
|
|
82
|
+
throw new Error('No providers specified');
|
|
83
|
+
}
|
|
78
84
|
|
|
79
|
-
|
|
85
|
+
return _this;
|
|
86
|
+
}
|
|
80
87
|
|
|
81
|
-
|
|
82
|
-
|
|
88
|
+
_createClass(EmojiResource, [{
|
|
89
|
+
key: "fetchEmojiProvider",
|
|
90
|
+
value: function fetchEmojiProvider(force) {
|
|
91
|
+
var _this2 = this;
|
|
83
92
|
|
|
84
|
-
|
|
93
|
+
// unless (re-)fetch is being forced, fetching will only
|
|
94
|
+
// happen if no emojiRepository exists
|
|
95
|
+
// in case this method is called and emojiRepository has already been populated
|
|
96
|
+
// the method will just return the existing emojiRepository
|
|
97
|
+
if (force || !this.emojiRepository && !this.isInitialised) {
|
|
98
|
+
this.isInitialised = true; // Ensure order is retained by tracking until all done.
|
|
99
|
+
|
|
100
|
+
var emojiResponses = [];
|
|
101
|
+
this.activeLoaders = this.emojiProviderConfig.providers.length;
|
|
102
|
+
this.emojiProviderConfig.providers.forEach( /*#__PURE__*/function () {
|
|
103
|
+
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(provider, index) {
|
|
104
|
+
var providerType, loader, emojis;
|
|
105
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
106
|
+
while (1) {
|
|
107
|
+
switch (_context.prev = _context.next) {
|
|
108
|
+
case 0:
|
|
109
|
+
providerType = _this2.getProviderType(provider);
|
|
110
|
+
sampledUfoEmojiResourceFetched(providerType).start({
|
|
111
|
+
samplingRate: SAMPLING_RATE_EMOJI_RESOURCE_FETCHED_EXP
|
|
112
|
+
});
|
|
113
|
+
sampledUfoEmojiResourceFetched(providerType).addMetadata({
|
|
114
|
+
type: providerType
|
|
115
|
+
});
|
|
116
|
+
loader = new EmojiLoader(provider);
|
|
117
|
+
emojis = loader.loadEmoji();
|
|
118
|
+
_context.next = 7;
|
|
119
|
+
return emojis.then(function (emojiResponse) {
|
|
120
|
+
emojiResponses[index] = emojiResponse;
|
|
121
|
+
|
|
122
|
+
_this2.initEmojiRepository(emojiResponses);
|
|
123
|
+
|
|
124
|
+
_this2.initSiteEmojiResource(emojiResponse, provider).then(function () {
|
|
125
|
+
_this2.activeLoaders--;
|
|
126
|
+
|
|
127
|
+
_this2.performRetries();
|
|
128
|
+
|
|
129
|
+
_this2.refreshLastFilter(); // if not site emoji it would still resolve
|
|
130
|
+
// TODO: improve the logic in future
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
sampledUfoEmojiResourceFetched(providerType).success();
|
|
134
|
+
});
|
|
135
|
+
}).catch(function (reason) {
|
|
136
|
+
_this2.activeLoaders--;
|
|
137
|
+
|
|
138
|
+
_this2.notifyError(reason);
|
|
139
|
+
|
|
140
|
+
sampledUfoEmojiResourceFetched(providerType).failure({
|
|
141
|
+
metadata: {
|
|
142
|
+
reason: reason,
|
|
143
|
+
source: 'EmojiProvider',
|
|
144
|
+
data: {
|
|
145
|
+
providerUrl: provider.url
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
case 7:
|
|
152
|
+
case "end":
|
|
153
|
+
return _context.stop();
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}, _callee);
|
|
157
|
+
}));
|
|
158
|
+
|
|
159
|
+
return function (_x, _x2) {
|
|
160
|
+
return _ref.apply(this, arguments);
|
|
161
|
+
};
|
|
162
|
+
}());
|
|
163
|
+
}
|
|
85
164
|
|
|
86
|
-
|
|
87
|
-
|
|
165
|
+
return Promise.resolve(this.emojiRepository);
|
|
166
|
+
}
|
|
167
|
+
}, {
|
|
168
|
+
key: "fetchByEmojiId",
|
|
169
|
+
value: function () {
|
|
170
|
+
var _fetchByEmojiId = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(emojiId, optimistic) {
|
|
171
|
+
var _emoji, provider, loader, loadEmoji, _emoji2, emoji;
|
|
88
172
|
|
|
173
|
+
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
174
|
+
while (1) {
|
|
175
|
+
switch (_context2.prev = _context2.next) {
|
|
176
|
+
case 0:
|
|
177
|
+
if (!(this.emojiRepository && this.isLoaded())) {
|
|
178
|
+
_context2.next = 6;
|
|
179
|
+
break;
|
|
180
|
+
}
|
|
89
181
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
}).catch(function (reason) {
|
|
93
|
-
_this.activeLoaders--;
|
|
182
|
+
_context2.next = 3;
|
|
183
|
+
return this.findByEmojiId(emojiId);
|
|
94
184
|
|
|
95
|
-
|
|
185
|
+
case 3:
|
|
186
|
+
_emoji = _context2.sent;
|
|
96
187
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
data: {
|
|
102
|
-
providerUrl: provider.url
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
});
|
|
107
|
-
});
|
|
188
|
+
if (!_emoji) {
|
|
189
|
+
_context2.next = 6;
|
|
190
|
+
break;
|
|
191
|
+
}
|
|
108
192
|
|
|
109
|
-
|
|
110
|
-
_this.selectedTone = _this.loadStoredTone();
|
|
111
|
-
}
|
|
193
|
+
return _context2.abrupt("return", Promise.resolve(this.getMediaEmojiDescriptionURLWithInlineToken(_emoji)));
|
|
112
194
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
195
|
+
case 6:
|
|
196
|
+
if (!(this.emojiProviderConfig.singleEmojiApi && optimistic)) {
|
|
197
|
+
_context2.next = 29;
|
|
198
|
+
break;
|
|
199
|
+
}
|
|
116
200
|
|
|
117
|
-
|
|
118
|
-
|
|
201
|
+
// if config has singleEmojiApi then fetch single emoji
|
|
202
|
+
provider = {
|
|
203
|
+
url: this.emojiProviderConfig.singleEmojiApi.getUrl(emojiId),
|
|
204
|
+
securityProvider: this.emojiProviderConfig.singleEmojiApi.securityProvider
|
|
205
|
+
};
|
|
206
|
+
loader = new EmojiLoader(provider);
|
|
207
|
+
_context2.prev = 9;
|
|
208
|
+
_context2.next = 12;
|
|
209
|
+
return loader.loadEmoji();
|
|
210
|
+
|
|
211
|
+
case 12:
|
|
212
|
+
loadEmoji = _context2.sent;
|
|
213
|
+
|
|
214
|
+
if (loadEmoji.emojis[0]) {
|
|
215
|
+
_context2.next = 15;
|
|
216
|
+
break;
|
|
217
|
+
}
|
|
119
218
|
|
|
120
|
-
|
|
219
|
+
return _context2.abrupt("return");
|
|
220
|
+
|
|
221
|
+
case 15:
|
|
222
|
+
if (this.siteEmojiResource) {
|
|
223
|
+
_context2.next = 18;
|
|
224
|
+
break;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
_context2.next = 18;
|
|
228
|
+
return this.initSiteEmojiResource(loadEmoji, provider);
|
|
229
|
+
|
|
230
|
+
case 18:
|
|
231
|
+
return _context2.abrupt("return", this.getMediaEmojiDescriptionURLWithInlineToken(loadEmoji.emojis[0]));
|
|
232
|
+
|
|
233
|
+
case 21:
|
|
234
|
+
_context2.prev = 21;
|
|
235
|
+
_context2.t0 = _context2["catch"](9);
|
|
236
|
+
_context2.next = 25;
|
|
237
|
+
return this.findByEmojiId(emojiId);
|
|
238
|
+
|
|
239
|
+
case 25:
|
|
240
|
+
_emoji2 = _context2.sent;
|
|
241
|
+
|
|
242
|
+
if (_emoji2) {
|
|
243
|
+
_context2.next = 28;
|
|
244
|
+
break;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
return _context2.abrupt("return");
|
|
248
|
+
|
|
249
|
+
case 28:
|
|
250
|
+
return _context2.abrupt("return", this.getMediaEmojiDescriptionURLWithInlineToken(_emoji2));
|
|
251
|
+
|
|
252
|
+
case 29:
|
|
253
|
+
_context2.next = 31;
|
|
254
|
+
return this.findByEmojiId(emojiId);
|
|
255
|
+
|
|
256
|
+
case 31:
|
|
257
|
+
emoji = _context2.sent;
|
|
258
|
+
|
|
259
|
+
if (emoji) {
|
|
260
|
+
_context2.next = 34;
|
|
261
|
+
break;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
return _context2.abrupt("return");
|
|
265
|
+
|
|
266
|
+
case 34:
|
|
267
|
+
return _context2.abrupt("return", this.getMediaEmojiDescriptionURLWithInlineToken(emoji));
|
|
268
|
+
|
|
269
|
+
case 35:
|
|
270
|
+
case "end":
|
|
271
|
+
return _context2.stop();
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}, _callee2, this, [[9, 21]]);
|
|
275
|
+
}));
|
|
276
|
+
|
|
277
|
+
function fetchByEmojiId(_x3, _x4) {
|
|
278
|
+
return _fetchByEmojiId.apply(this, arguments);
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
return fetchByEmojiId;
|
|
282
|
+
}()
|
|
283
|
+
}, {
|
|
121
284
|
key: "getProviderType",
|
|
122
285
|
value: function getProviderType(provider) {
|
|
123
286
|
if (provider.url.includes('/site')) {
|
|
@@ -215,11 +378,11 @@ export var EmojiResource = /*#__PURE__*/function (_AbstractResource) {
|
|
|
215
378
|
}, {
|
|
216
379
|
key: "retryIfLoading",
|
|
217
380
|
value: function retryIfLoading(retry, defaultResponse) {
|
|
218
|
-
var
|
|
381
|
+
var _this3 = this;
|
|
219
382
|
|
|
220
383
|
if (!this.isLoaded()) {
|
|
221
384
|
return new Promise(function (resolve, reject) {
|
|
222
|
-
|
|
385
|
+
_this3.retries.set(retry, {
|
|
223
386
|
resolve: resolve,
|
|
224
387
|
reject: reject
|
|
225
388
|
});
|
|
@@ -242,40 +405,40 @@ export var EmojiResource = /*#__PURE__*/function (_AbstractResource) {
|
|
|
242
405
|
}, {
|
|
243
406
|
key: "getMediaEmojiDescriptionURLWithInlineToken",
|
|
244
407
|
value: function () {
|
|
245
|
-
var _getMediaEmojiDescriptionURLWithInlineToken = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function
|
|
408
|
+
var _getMediaEmojiDescriptionURLWithInlineToken = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(emoji) {
|
|
246
409
|
var tokenisedMediaPath;
|
|
247
|
-
return _regeneratorRuntime.wrap(function
|
|
410
|
+
return _regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
248
411
|
while (1) {
|
|
249
|
-
switch (
|
|
412
|
+
switch (_context3.prev = _context3.next) {
|
|
250
413
|
case 0:
|
|
251
414
|
if (!(this.siteEmojiResource && isMediaRepresentation(emoji.representation))) {
|
|
252
|
-
|
|
415
|
+
_context3.next = 5;
|
|
253
416
|
break;
|
|
254
417
|
}
|
|
255
418
|
|
|
256
|
-
|
|
419
|
+
_context3.next = 3;
|
|
257
420
|
return this.siteEmojiResource.generateTokenisedMediaURL(emoji);
|
|
258
421
|
|
|
259
422
|
case 3:
|
|
260
|
-
tokenisedMediaPath =
|
|
261
|
-
return
|
|
423
|
+
tokenisedMediaPath = _context3.sent;
|
|
424
|
+
return _context3.abrupt("return", _objectSpread(_objectSpread({}, emoji), {}, {
|
|
262
425
|
representation: _objectSpread(_objectSpread({}, emoji.representation), {}, {
|
|
263
426
|
mediaPath: tokenisedMediaPath
|
|
264
427
|
})
|
|
265
428
|
}));
|
|
266
429
|
|
|
267
430
|
case 5:
|
|
268
|
-
return
|
|
431
|
+
return _context3.abrupt("return", emoji);
|
|
269
432
|
|
|
270
433
|
case 6:
|
|
271
434
|
case "end":
|
|
272
|
-
return
|
|
435
|
+
return _context3.stop();
|
|
273
436
|
}
|
|
274
437
|
}
|
|
275
|
-
},
|
|
438
|
+
}, _callee3, this);
|
|
276
439
|
}));
|
|
277
440
|
|
|
278
|
-
function getMediaEmojiDescriptionURLWithInlineToken(
|
|
441
|
+
function getMediaEmojiDescriptionURLWithInlineToken(_x5) {
|
|
279
442
|
return _getMediaEmojiDescriptionURLWithInlineToken.apply(this, arguments);
|
|
280
443
|
}
|
|
281
444
|
|
|
@@ -329,7 +492,7 @@ export var EmojiResource = /*#__PURE__*/function (_AbstractResource) {
|
|
|
329
492
|
}, {
|
|
330
493
|
key: "findByShortName",
|
|
331
494
|
value: function findByShortName(shortName) {
|
|
332
|
-
var
|
|
495
|
+
var _this4 = this;
|
|
333
496
|
|
|
334
497
|
if (this.isLoaded()) {
|
|
335
498
|
// Wait for all emoji to load before looking by shortName (to ensure correct priority)
|
|
@@ -337,13 +500,13 @@ export var EmojiResource = /*#__PURE__*/function (_AbstractResource) {
|
|
|
337
500
|
}
|
|
338
501
|
|
|
339
502
|
return this.retryIfLoading(function () {
|
|
340
|
-
return
|
|
503
|
+
return _this4.findByShortName(shortName);
|
|
341
504
|
}, undefined);
|
|
342
505
|
}
|
|
343
506
|
}, {
|
|
344
507
|
key: "findByEmojiId",
|
|
345
508
|
value: function findByEmojiId(emojiId) {
|
|
346
|
-
var
|
|
509
|
+
var _this5 = this;
|
|
347
510
|
|
|
348
511
|
var id = emojiId.id,
|
|
349
512
|
shortName = emojiId.shortName;
|
|
@@ -364,10 +527,10 @@ export var EmojiResource = /*#__PURE__*/function (_AbstractResource) {
|
|
|
364
527
|
if (!emoji) {
|
|
365
528
|
// if not, fallback to searching by shortName to
|
|
366
529
|
// at least render an alternative
|
|
367
|
-
return
|
|
530
|
+
return _this5.findByShortName(shortName);
|
|
368
531
|
}
|
|
369
532
|
|
|
370
|
-
|
|
533
|
+
_this5.addUnknownEmoji(emoji);
|
|
371
534
|
|
|
372
535
|
return emoji;
|
|
373
536
|
});
|
|
@@ -384,59 +547,59 @@ export var EmojiResource = /*#__PURE__*/function (_AbstractResource) {
|
|
|
384
547
|
}
|
|
385
548
|
|
|
386
549
|
return this.retryIfLoading(function () {
|
|
387
|
-
return
|
|
550
|
+
return _this5.findByEmojiId(emojiId);
|
|
388
551
|
}, undefined);
|
|
389
552
|
}
|
|
390
553
|
}, {
|
|
391
554
|
key: "findById",
|
|
392
555
|
value: function findById(id) {
|
|
393
|
-
var
|
|
556
|
+
var _this6 = this;
|
|
394
557
|
|
|
395
558
|
if (this.isLoaded()) {
|
|
396
559
|
return this.emojiRepository.findById(id);
|
|
397
560
|
}
|
|
398
561
|
|
|
399
562
|
return this.retryIfLoading(function () {
|
|
400
|
-
return
|
|
563
|
+
return _this6.findById(id);
|
|
401
564
|
}, undefined);
|
|
402
565
|
}
|
|
403
566
|
}, {
|
|
404
567
|
key: "findInCategory",
|
|
405
568
|
value: function findInCategory(categoryId) {
|
|
406
|
-
var
|
|
569
|
+
var _this7 = this;
|
|
407
570
|
|
|
408
571
|
if (this.isLoaded()) {
|
|
409
572
|
return Promise.resolve(this.emojiRepository.findInCategory(categoryId));
|
|
410
573
|
}
|
|
411
574
|
|
|
412
575
|
return this.retryIfLoading(function () {
|
|
413
|
-
return
|
|
576
|
+
return _this7.findInCategory(categoryId);
|
|
414
577
|
}, []);
|
|
415
578
|
}
|
|
416
579
|
}, {
|
|
417
580
|
key: "getAsciiMap",
|
|
418
581
|
value: function getAsciiMap() {
|
|
419
|
-
var
|
|
582
|
+
var _this8 = this;
|
|
420
583
|
|
|
421
584
|
if (this.isLoaded()) {
|
|
422
585
|
return Promise.resolve(this.emojiRepository.getAsciiMap());
|
|
423
586
|
}
|
|
424
587
|
|
|
425
588
|
return this.retryIfLoading(function () {
|
|
426
|
-
return
|
|
589
|
+
return _this8.getAsciiMap();
|
|
427
590
|
}, new Map());
|
|
428
591
|
}
|
|
429
592
|
}, {
|
|
430
593
|
key: "getFrequentlyUsed",
|
|
431
594
|
value: function getFrequentlyUsed(options) {
|
|
432
|
-
var
|
|
595
|
+
var _this9 = this;
|
|
433
596
|
|
|
434
597
|
if (this.isLoaded()) {
|
|
435
598
|
return Promise.resolve(this.emojiRepository.getFrequentlyUsed(options));
|
|
436
599
|
}
|
|
437
600
|
|
|
438
601
|
return this.retryIfLoading(function () {
|
|
439
|
-
return
|
|
602
|
+
return _this9.getFrequentlyUsed(options);
|
|
440
603
|
}, []);
|
|
441
604
|
}
|
|
442
605
|
/**
|
|
@@ -474,12 +637,12 @@ export var EmojiResource = /*#__PURE__*/function (_AbstractResource) {
|
|
|
474
637
|
}, {
|
|
475
638
|
key: "deleteSiteEmoji",
|
|
476
639
|
value: function deleteSiteEmoji(emoji) {
|
|
477
|
-
var
|
|
640
|
+
var _this10 = this;
|
|
478
641
|
|
|
479
642
|
if (this.siteEmojiResource && emoji.id) {
|
|
480
643
|
return this.siteEmojiResource.deleteEmoji(emoji).then(function (success) {
|
|
481
|
-
if (success &&
|
|
482
|
-
|
|
644
|
+
if (success && _this10.emojiRepository) {
|
|
645
|
+
_this10.emojiRepository.delete(emoji);
|
|
483
646
|
|
|
484
647
|
return true;
|
|
485
648
|
}
|
|
@@ -493,7 +656,7 @@ export var EmojiResource = /*#__PURE__*/function (_AbstractResource) {
|
|
|
493
656
|
}
|
|
494
657
|
|
|
495
658
|
return this.retryIfLoading(function () {
|
|
496
|
-
return
|
|
659
|
+
return _this10.deleteSiteEmoji(emoji);
|
|
497
660
|
}, false);
|
|
498
661
|
}
|
|
499
662
|
}, {
|
|
@@ -522,14 +685,14 @@ export var EmojiResource = /*#__PURE__*/function (_AbstractResource) {
|
|
|
522
685
|
}, {
|
|
523
686
|
key: "calculateDynamicCategories",
|
|
524
687
|
value: function calculateDynamicCategories() {
|
|
525
|
-
var
|
|
688
|
+
var _this11 = this;
|
|
526
689
|
|
|
527
690
|
if (this.isLoaded()) {
|
|
528
691
|
return Promise.resolve(this.emojiRepository.getDynamicCategoryList());
|
|
529
692
|
}
|
|
530
693
|
|
|
531
694
|
return this.retryIfLoading(function () {
|
|
532
|
-
return
|
|
695
|
+
return _this11.calculateDynamicCategories();
|
|
533
696
|
}, []);
|
|
534
697
|
}
|
|
535
698
|
}, {
|
|
@@ -555,19 +718,19 @@ var UploadingEmojiResource = /*#__PURE__*/function (_EmojiResource) {
|
|
|
555
718
|
var _super2 = _createSuper(UploadingEmojiResource);
|
|
556
719
|
|
|
557
720
|
function UploadingEmojiResource(config) {
|
|
558
|
-
var
|
|
721
|
+
var _this12;
|
|
559
722
|
|
|
560
723
|
_classCallCheck(this, UploadingEmojiResource);
|
|
561
724
|
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
return
|
|
725
|
+
_this12 = _super2.call(this, config);
|
|
726
|
+
_this12.allowUpload = !!config.allowUpload;
|
|
727
|
+
return _this12;
|
|
565
728
|
}
|
|
566
729
|
|
|
567
730
|
_createClass(UploadingEmojiResource, [{
|
|
568
731
|
key: "isUploadSupported",
|
|
569
732
|
value: function isUploadSupported() {
|
|
570
|
-
var
|
|
733
|
+
var _this13 = this;
|
|
571
734
|
|
|
572
735
|
if (!this.allowUpload) {
|
|
573
736
|
return Promise.resolve(false);
|
|
@@ -578,23 +741,24 @@ var UploadingEmojiResource = /*#__PURE__*/function (_EmojiResource) {
|
|
|
578
741
|
}
|
|
579
742
|
|
|
580
743
|
return this.retryIfLoading(function () {
|
|
581
|
-
return
|
|
744
|
+
return _this13.isUploadSupported();
|
|
582
745
|
}, false);
|
|
583
746
|
}
|
|
584
747
|
}, {
|
|
585
748
|
key: "uploadCustomEmoji",
|
|
586
749
|
value: function uploadCustomEmoji(upload) {
|
|
587
|
-
var
|
|
750
|
+
var _this14 = this;
|
|
588
751
|
|
|
752
|
+
var retry = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
589
753
|
return this.isUploadSupported().then(function (supported) {
|
|
590
|
-
if (!supported || !
|
|
754
|
+
if (!supported || !_this14.siteEmojiResource) {
|
|
591
755
|
return Promise.reject('No media api support is configured');
|
|
592
756
|
}
|
|
593
757
|
|
|
594
|
-
return
|
|
595
|
-
|
|
758
|
+
return _this14.siteEmojiResource.uploadEmoji(upload, retry).then(function (emoji) {
|
|
759
|
+
_this14.addUnknownEmoji(emoji);
|
|
596
760
|
|
|
597
|
-
|
|
761
|
+
_this14.refreshLastFilter();
|
|
598
762
|
|
|
599
763
|
return emoji;
|
|
600
764
|
});
|
|
@@ -603,14 +767,14 @@ var UploadingEmojiResource = /*#__PURE__*/function (_EmojiResource) {
|
|
|
603
767
|
}, {
|
|
604
768
|
key: "prepareForUpload",
|
|
605
769
|
value: function prepareForUpload() {
|
|
606
|
-
var
|
|
770
|
+
var _this15 = this;
|
|
607
771
|
|
|
608
772
|
if (this.siteEmojiResource) {
|
|
609
773
|
this.siteEmojiResource.prepareForUpload();
|
|
610
774
|
}
|
|
611
775
|
|
|
612
776
|
return this.retryIfLoading(function () {
|
|
613
|
-
return
|
|
777
|
+
return _this15.prepareForUpload();
|
|
614
778
|
}, undefined);
|
|
615
779
|
}
|
|
616
780
|
}]);
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
2
1
|
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
3
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
4
3
|
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
5
4
|
import _createClass from "@babel/runtime/helpers/createClass";
|
|
6
5
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
7
6
|
var _excluded = ["altRepresentations"];
|
|
7
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
8
8
|
|
|
9
9
|
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
10
|
|
|
@@ -156,11 +156,13 @@ var SiteEmojiResource = /*#__PURE__*/function () {
|
|
|
156
156
|
}
|
|
157
157
|
}, {
|
|
158
158
|
key: "uploadEmoji",
|
|
159
|
-
value: function uploadEmoji(upload
|
|
159
|
+
value: function uploadEmoji(upload) {
|
|
160
160
|
var _this2 = this;
|
|
161
161
|
|
|
162
|
+
var retry = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
163
|
+
var progressCallback = arguments.length > 2 ? arguments[2] : undefined;
|
|
162
164
|
var startTime = Date.now();
|
|
163
|
-
return this.tokenManager.getToken('upload').then(function (uploadToken) {
|
|
165
|
+
return this.tokenManager.getToken('upload', retry).then(function (uploadToken) {
|
|
164
166
|
var tokenLoadTime = Date.now() - startTime;
|
|
165
167
|
debug('upload token load time', tokenLoadTime);
|
|
166
168
|
return new Promise(function (resolve, reject) {
|
|
@@ -24,6 +24,13 @@ var TokenManager = /*#__PURE__*/function () {
|
|
|
24
24
|
|
|
25
25
|
return false;
|
|
26
26
|
}
|
|
27
|
+
}, {
|
|
28
|
+
key: "fetchNewToken",
|
|
29
|
+
value: function fetchNewToken(type) {
|
|
30
|
+
return serviceUtils.requestService(this.siteServiceConfig, {
|
|
31
|
+
path: "token/".concat(type)
|
|
32
|
+
});
|
|
33
|
+
}
|
|
27
34
|
}, {
|
|
28
35
|
key: "addToken",
|
|
29
36
|
value: function addToken(type, mediaApiToken) {
|
|
@@ -52,22 +59,16 @@ var TokenManager = /*#__PURE__*/function () {
|
|
|
52
59
|
}
|
|
53
60
|
|
|
54
61
|
if (activeTokenRefresh) {
|
|
55
|
-
// refresh already active, return that
|
|
62
|
+
// refresh token promise already active, return that
|
|
56
63
|
return activeTokenRefresh;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
tokenDetail.mediaApiToken = undefined;
|
|
61
|
-
}
|
|
64
|
+
}
|
|
65
|
+
} // request a new token and track the promise for future requests until completed
|
|
62
66
|
|
|
63
|
-
var path = "token/".concat(type); // request a new token and track the promise for future requests until completed
|
|
64
67
|
|
|
65
|
-
tokenDetail.activeTokenRefresh =
|
|
66
|
-
|
|
67
|
-
}).then(function (mediaApiToken) {
|
|
68
|
+
tokenDetail.activeTokenRefresh = this.fetchNewToken(type).then(function (token) {
|
|
69
|
+
tokenDetail.mediaApiToken = token;
|
|
68
70
|
tokenDetail.activeTokenRefresh = undefined;
|
|
69
|
-
|
|
70
|
-
return mediaApiToken;
|
|
71
|
+
return token;
|
|
71
72
|
});
|
|
72
73
|
return tokenDetail.activeTokenRefresh;
|
|
73
74
|
}
|