@atlaskit/editor-plugin-emoji 2.4.0 → 2.5.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 +12 -0
- package/dist/cjs/nodeviews/emoji.js +1 -0
- package/dist/cjs/plugin.js +93 -56
- package/dist/cjs/pm-plugins/actions.js +41 -0
- package/dist/cjs/pm-plugins/ascii-input-rules.js +19 -6
- package/dist/cjs/ui/Emoji/emoji-next.js +55 -0
- package/dist/cjs/ui/Emoji/index.js +3 -1
- package/dist/es2019/nodeviews/emoji.js +1 -0
- package/dist/es2019/plugin.js +54 -41
- package/dist/es2019/pm-plugins/actions.js +29 -0
- package/dist/es2019/pm-plugins/ascii-input-rules.js +20 -6
- package/dist/es2019/ui/Emoji/emoji-next.js +51 -0
- package/dist/es2019/ui/Emoji/index.js +3 -1
- package/dist/esm/nodeviews/emoji.js +1 -0
- package/dist/esm/plugin.js +90 -52
- package/dist/esm/pm-plugins/actions.js +35 -0
- package/dist/esm/pm-plugins/ascii-input-rules.js +19 -6
- package/dist/esm/ui/Emoji/emoji-next.js +48 -0
- package/dist/esm/ui/Emoji/index.js +3 -1
- package/dist/types/nodeviews/emoji.d.ts +3 -1
- package/dist/types/plugin.d.ts +4 -11
- package/dist/types/pm-plugins/actions.d.ts +13 -0
- package/dist/types/pm-plugins/ascii-input-rules.d.ts +4 -3
- package/dist/types/types.d.ts +3 -1
- package/dist/types/ui/Emoji/emoji-next.d.ts +16 -0
- package/dist/types/ui/Emoji/index.d.ts +1 -1
- package/dist/types-ts4.5/nodeviews/emoji.d.ts +3 -1
- package/dist/types-ts4.5/plugin.d.ts +4 -11
- package/dist/types-ts4.5/pm-plugins/actions.d.ts +13 -0
- package/dist/types-ts4.5/pm-plugins/ascii-input-rules.d.ts +4 -3
- package/dist/types-ts4.5/types.d.ts +3 -1
- package/dist/types-ts4.5/ui/Emoji/emoji-next.d.ts +16 -0
- package/dist/types-ts4.5/ui/Emoji/index.d.ts +1 -1
- package/package.json +5 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-emoji
|
|
2
2
|
|
|
3
|
+
## 2.5.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#136891](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/136891)
|
|
8
|
+
[`388780c6348e9`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/388780c6348e9) -
|
|
9
|
+
Pass emoji provider via preset
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- Updated dependencies
|
|
14
|
+
|
|
3
15
|
## 2.4.0
|
|
4
16
|
|
|
5
17
|
### Minor Changes
|
|
@@ -38,6 +38,7 @@ function EmojiNodeView(props) {
|
|
|
38
38
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(EmojiAssistiveTextComponent, {
|
|
39
39
|
emojiShortName: shortName
|
|
40
40
|
}), /*#__PURE__*/_react.default.createElement("span", null, /*#__PURE__*/_react.default.createElement(_Emoji.default, {
|
|
41
|
+
pluginInjectionApi: props.api,
|
|
41
42
|
providers: props.providerFactory,
|
|
42
43
|
id: id,
|
|
43
44
|
shortName: shortName,
|
package/dist/cjs/plugin.js
CHANGED
|
@@ -4,14 +4,15 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.ACTIONS = void 0;
|
|
8
7
|
exports.createEmojiPlugin = createEmojiPlugin;
|
|
9
8
|
exports.createRateLimitReachedFunction = createRateLimitReachedFunction;
|
|
10
9
|
exports.emojiToTypeaheadItem = exports.emojiPluginKey = exports.emojiPlugin = exports.defaultListLimit = void 0;
|
|
11
10
|
exports.getEmojiPluginState = getEmojiPluginState;
|
|
12
11
|
exports.memoize = memoize;
|
|
13
|
-
exports.setProvider = void 0;
|
|
12
|
+
exports.setProviderTr = exports.setProvider = void 0;
|
|
13
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
14
14
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
15
16
|
var _react = _interopRequireDefault(require("react"));
|
|
16
17
|
var _adfSchema = require("@atlaskit/adf-schema");
|
|
17
18
|
var _analytics = require("@atlaskit/editor-common/analytics");
|
|
@@ -26,6 +27,7 @@ var _emoji2 = require("@atlaskit/emoji");
|
|
|
26
27
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
27
28
|
var _insertEmoji = require("./commands/insert-emoji");
|
|
28
29
|
var _emoji3 = require("./nodeviews/emoji");
|
|
30
|
+
var _actions = require("./pm-plugins/actions");
|
|
29
31
|
var _asciiInputRules = require("./pm-plugins/ascii-input-rules");
|
|
30
32
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
31
33
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
@@ -83,6 +85,7 @@ var emojiPlugin = exports.emojiPlugin = function emojiPlugin(_ref2) {
|
|
|
83
85
|
var _api$analytics5;
|
|
84
86
|
var options = _ref2.config,
|
|
85
87
|
api = _ref2.api;
|
|
88
|
+
var previousEmojiProvider;
|
|
86
89
|
var typeAhead = {
|
|
87
90
|
id: _typeAhead.TypeAheadAvailableNodes.EMOJI,
|
|
88
91
|
trigger: TRIGGER,
|
|
@@ -197,7 +200,7 @@ var emojiPlugin = exports.emojiPlugin = function emojiPlugin(_ref2) {
|
|
|
197
200
|
return [{
|
|
198
201
|
name: 'emoji',
|
|
199
202
|
plugin: function plugin(pmPluginFactoryParams) {
|
|
200
|
-
return createEmojiPlugin(pmPluginFactoryParams, options);
|
|
203
|
+
return createEmojiPlugin(pmPluginFactoryParams, options, api);
|
|
201
204
|
}
|
|
202
205
|
}, {
|
|
203
206
|
name: 'emojiAsciiInputRule',
|
|
@@ -206,7 +209,7 @@ var emojiPlugin = exports.emojiPlugin = function emojiPlugin(_ref2) {
|
|
|
206
209
|
var schema = _ref7.schema,
|
|
207
210
|
providerFactory = _ref7.providerFactory,
|
|
208
211
|
featureFlags = _ref7.featureFlags;
|
|
209
|
-
return (0, _asciiInputRules.inputRulePlugin)(schema, providerFactory, featureFlags, api === null || api === void 0 || (_api$analytics4 = api.analytics) === null || _api$analytics4 === void 0 ? void 0 : _api$analytics4.actions);
|
|
212
|
+
return (0, _asciiInputRules.inputRulePlugin)(schema, providerFactory, featureFlags, api === null || api === void 0 || (_api$analytics4 = api.analytics) === null || _api$analytics4 === void 0 ? void 0 : _api$analytics4.actions, api);
|
|
210
213
|
}
|
|
211
214
|
}];
|
|
212
215
|
},
|
|
@@ -217,28 +220,57 @@ var emojiPlugin = exports.emojiPlugin = function emojiPlugin(_ref2) {
|
|
|
217
220
|
}
|
|
218
221
|
var _ref8 = (_emojiPluginKey$getSt = emojiPluginKey.getState(editorState)) !== null && _emojiPluginKey$getSt !== void 0 ? _emojiPluginKey$getSt : {},
|
|
219
222
|
emojiResourceConfig = _ref8.emojiResourceConfig,
|
|
220
|
-
asciiMap = _ref8.asciiMap
|
|
223
|
+
asciiMap = _ref8.asciiMap,
|
|
224
|
+
emojiProvider = _ref8.emojiProvider;
|
|
221
225
|
return {
|
|
222
226
|
emojiResourceConfig: emojiResourceConfig,
|
|
223
227
|
asciiMap: asciiMap,
|
|
224
|
-
typeAheadHandler: typeAhead
|
|
228
|
+
typeAheadHandler: typeAhead,
|
|
229
|
+
emojiProvider: emojiProvider
|
|
225
230
|
};
|
|
226
231
|
},
|
|
227
232
|
actions: {
|
|
228
|
-
openTypeAhead:
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
+
openTypeAhead: (0, _actions.openTypeAhead)(typeAhead, api),
|
|
234
|
+
setProvider: function () {
|
|
235
|
+
var _setProvider = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(providerPromise) {
|
|
236
|
+
var _api$core$actions$exe;
|
|
237
|
+
var provider;
|
|
238
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
239
|
+
while (1) switch (_context.prev = _context.next) {
|
|
240
|
+
case 0:
|
|
241
|
+
_context.next = 2;
|
|
242
|
+
return providerPromise;
|
|
243
|
+
case 2:
|
|
244
|
+
provider = _context.sent;
|
|
245
|
+
if (!(previousEmojiProvider === provider || (options === null || options === void 0 ? void 0 : options.emojiProvider) === providerPromise)) {
|
|
246
|
+
_context.next = 5;
|
|
247
|
+
break;
|
|
248
|
+
}
|
|
249
|
+
return _context.abrupt("return", false);
|
|
250
|
+
case 5:
|
|
251
|
+
previousEmojiProvider = provider;
|
|
252
|
+
return _context.abrupt("return", (_api$core$actions$exe = api === null || api === void 0 ? void 0 : api.core.actions.execute(function (_ref9) {
|
|
253
|
+
var tr = _ref9.tr;
|
|
254
|
+
return setProviderTr(provider)(tr);
|
|
255
|
+
})) !== null && _api$core$actions$exe !== void 0 ? _api$core$actions$exe : false);
|
|
256
|
+
case 7:
|
|
257
|
+
case "end":
|
|
258
|
+
return _context.stop();
|
|
259
|
+
}
|
|
260
|
+
}, _callee);
|
|
233
261
|
}));
|
|
234
|
-
|
|
262
|
+
function setProvider(_x) {
|
|
263
|
+
return _setProvider.apply(this, arguments);
|
|
264
|
+
}
|
|
265
|
+
return setProvider;
|
|
266
|
+
}()
|
|
235
267
|
},
|
|
236
268
|
commands: {
|
|
237
269
|
insertEmoji: (0, _insertEmoji.insertEmoji)(api === null || api === void 0 || (_api$analytics5 = api.analytics) === null || _api$analytics5 === void 0 ? void 0 : _api$analytics5.actions)
|
|
238
270
|
},
|
|
239
271
|
pluginsOptions: {
|
|
240
|
-
quickInsert: function quickInsert(
|
|
241
|
-
var formatMessage =
|
|
272
|
+
quickInsert: function quickInsert(_ref10) {
|
|
273
|
+
var formatMessage = _ref10.formatMessage;
|
|
242
274
|
return [{
|
|
243
275
|
id: 'emoji',
|
|
244
276
|
title: formatMessage(_messages.toolbarInsertBlockMessages.emoji),
|
|
@@ -249,9 +281,9 @@ var emojiPlugin = exports.emojiPlugin = function emojiPlugin(_ref2) {
|
|
|
249
281
|
return /*#__PURE__*/_react.default.createElement(_quickInsert.IconEmoji, null);
|
|
250
282
|
},
|
|
251
283
|
action: function action(insert, state) {
|
|
252
|
-
var _api$
|
|
284
|
+
var _api$typeAhead;
|
|
253
285
|
var tr = insert(undefined);
|
|
254
|
-
api === null || api === void 0 || (_api$
|
|
286
|
+
api === null || api === void 0 || (_api$typeAhead = api.typeAhead) === null || _api$typeAhead === void 0 || _api$typeAhead.actions.openAtTransaction({
|
|
255
287
|
triggerHandler: typeAhead,
|
|
256
288
|
inputMethod: _analytics.INPUT_METHOD.QUICK_INSERT
|
|
257
289
|
})(tr);
|
|
@@ -268,20 +300,11 @@ var emojiPlugin = exports.emojiPlugin = function emojiPlugin(_ref2) {
|
|
|
268
300
|
* Actions
|
|
269
301
|
*/
|
|
270
302
|
|
|
271
|
-
var ACTIONS = exports.ACTIONS = {
|
|
272
|
-
SET_PROVIDER: 'SET_PROVIDER',
|
|
273
|
-
SET_RESULTS: 'SET_RESULTS',
|
|
274
|
-
SET_ASCII_MAP: 'SET_ASCII_MAP'
|
|
275
|
-
};
|
|
276
303
|
var setAsciiMap = function setAsciiMap(asciiMap) {
|
|
277
304
|
return function (state, dispatch) {
|
|
278
305
|
if (dispatch) {
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
params: {
|
|
282
|
-
asciiMap: asciiMap
|
|
283
|
-
}
|
|
284
|
-
}));
|
|
306
|
+
var _tr = (0, _actions.setAsciiMap)(asciiMap)(state.tr);
|
|
307
|
+
dispatch(_tr);
|
|
285
308
|
}
|
|
286
309
|
return true;
|
|
287
310
|
};
|
|
@@ -323,28 +346,29 @@ var logRateWarning = function logRateWarning() {
|
|
|
323
346
|
console.error('The emoji provider injected in the Editor is being reloaded frequently, this will cause a slow Editor experience.');
|
|
324
347
|
}
|
|
325
348
|
};
|
|
326
|
-
var
|
|
327
|
-
return function (
|
|
328
|
-
|
|
329
|
-
dispatch(state.tr.setMeta(emojiPluginKey, {
|
|
330
|
-
action: ACTIONS.SET_PROVIDER,
|
|
331
|
-
params: {
|
|
332
|
-
provider: provider
|
|
333
|
-
}
|
|
334
|
-
}));
|
|
335
|
-
}
|
|
336
|
-
return true;
|
|
349
|
+
var setProviderTr = exports.setProviderTr = createRateLimitReachedFunction(function (provider) {
|
|
350
|
+
return function (tr) {
|
|
351
|
+
return (0, _actions.setProvider)(provider)(tr);
|
|
337
352
|
};
|
|
338
353
|
},
|
|
339
354
|
// If we change the emoji provider more than three times every 5 seconds we should warn.
|
|
340
355
|
// This seems like a really long time but the performance can be that laggy that we don't
|
|
341
356
|
// even get 3 events in 3 seconds and miss this indicator.
|
|
342
357
|
5000, 3, logRateWarning);
|
|
358
|
+
var setProvider = exports.setProvider = function setProvider(provider) {
|
|
359
|
+
return function (state, dispatch) {
|
|
360
|
+
if (dispatch) {
|
|
361
|
+
var _tr2 = setProviderTr(provider)(state.tr);
|
|
362
|
+
dispatch(_tr2);
|
|
363
|
+
}
|
|
364
|
+
return true;
|
|
365
|
+
};
|
|
366
|
+
};
|
|
343
367
|
var emojiPluginKey = exports.emojiPluginKey = new _state.PluginKey('emojiPlugin');
|
|
344
368
|
function getEmojiPluginState(state) {
|
|
345
369
|
return emojiPluginKey.getState(state) || {};
|
|
346
370
|
}
|
|
347
|
-
function createEmojiPlugin(pmPluginFactoryParams, options) {
|
|
371
|
+
function createEmojiPlugin(pmPluginFactoryParams, options, api) {
|
|
348
372
|
return new _safePlugin.SafePlugin({
|
|
349
373
|
key: emojiPluginKey,
|
|
350
374
|
state: {
|
|
@@ -352,25 +376,29 @@ function createEmojiPlugin(pmPluginFactoryParams, options) {
|
|
|
352
376
|
return {};
|
|
353
377
|
},
|
|
354
378
|
apply: function apply(tr, pluginState) {
|
|
355
|
-
var
|
|
379
|
+
var _ref11 = tr.getMeta(emojiPluginKey) || {
|
|
356
380
|
action: null,
|
|
357
381
|
params: null
|
|
358
382
|
},
|
|
359
|
-
action =
|
|
360
|
-
params =
|
|
383
|
+
action = _ref11.action,
|
|
384
|
+
params = _ref11.params;
|
|
361
385
|
var newPluginState = pluginState;
|
|
362
386
|
switch (action) {
|
|
363
|
-
case ACTIONS.SET_PROVIDER:
|
|
387
|
+
case _actions.ACTIONS.SET_PROVIDER:
|
|
364
388
|
newPluginState = _objectSpread(_objectSpread({}, pluginState), {}, {
|
|
365
389
|
emojiProvider: params.provider
|
|
366
390
|
});
|
|
367
|
-
|
|
391
|
+
if (!(0, _platformFeatureFlags.fg)('platform_editor_get_emoji_provider_from_config')) {
|
|
392
|
+
pmPluginFactoryParams.dispatch(emojiPluginKey, newPluginState);
|
|
393
|
+
}
|
|
368
394
|
return newPluginState;
|
|
369
|
-
case ACTIONS.SET_ASCII_MAP:
|
|
395
|
+
case _actions.ACTIONS.SET_ASCII_MAP:
|
|
370
396
|
newPluginState = _objectSpread(_objectSpread({}, pluginState), {}, {
|
|
371
397
|
asciiMap: params.asciiMap
|
|
372
398
|
});
|
|
373
|
-
|
|
399
|
+
if (!(0, _platformFeatureFlags.fg)('platform_editor_get_emoji_provider_from_config')) {
|
|
400
|
+
pmPluginFactoryParams.dispatch(emojiPluginKey, newPluginState);
|
|
401
|
+
}
|
|
374
402
|
return newPluginState;
|
|
375
403
|
}
|
|
376
404
|
return newPluginState;
|
|
@@ -383,7 +411,8 @@ function createEmojiPlugin(pmPluginFactoryParams, options) {
|
|
|
383
411
|
Component: _emoji3.EmojiNodeView,
|
|
384
412
|
extraComponentProps: {
|
|
385
413
|
providerFactory: pmPluginFactoryParams.providerFactory,
|
|
386
|
-
options: options
|
|
414
|
+
options: options,
|
|
415
|
+
api: api
|
|
387
416
|
}
|
|
388
417
|
})
|
|
389
418
|
}
|
|
@@ -393,28 +422,36 @@ function createEmojiPlugin(pmPluginFactoryParams, options) {
|
|
|
393
422
|
switch (name) {
|
|
394
423
|
case 'emojiProvider':
|
|
395
424
|
if (!providerPromise) {
|
|
396
|
-
var
|
|
397
|
-
return setProvider === null || setProvider === void 0 || (
|
|
425
|
+
var _setProvider2;
|
|
426
|
+
return setProvider === null || setProvider === void 0 || (_setProvider2 = setProvider(undefined)) === null || _setProvider2 === void 0 ? void 0 : _setProvider2(editorView.state, editorView.dispatch);
|
|
398
427
|
}
|
|
399
428
|
providerPromise.then(function (provider) {
|
|
400
|
-
var
|
|
401
|
-
setProvider === null || setProvider === void 0 || (
|
|
429
|
+
var _setProvider3;
|
|
430
|
+
setProvider === null || setProvider === void 0 || (_setProvider3 = setProvider(provider)) === null || _setProvider3 === void 0 || _setProvider3(editorView.state, editorView.dispatch);
|
|
402
431
|
provider.getAsciiMap().then(function (asciiMap) {
|
|
403
432
|
setAsciiMap(asciiMap)(editorView.state, editorView.dispatch);
|
|
404
433
|
});
|
|
405
434
|
}).catch(function () {
|
|
406
|
-
var
|
|
407
|
-
return setProvider === null || setProvider === void 0 || (
|
|
435
|
+
var _setProvider4;
|
|
436
|
+
return setProvider === null || setProvider === void 0 || (_setProvider4 = setProvider(undefined)) === null || _setProvider4 === void 0 ? void 0 : _setProvider4(editorView.state, editorView.dispatch);
|
|
408
437
|
});
|
|
409
438
|
break;
|
|
410
439
|
}
|
|
411
440
|
return;
|
|
412
441
|
};
|
|
413
|
-
|
|
442
|
+
if ((0, _platformFeatureFlags.fg)('platform_editor_get_emoji_provider_from_config')) {
|
|
443
|
+
if (options !== null && options !== void 0 && options.emojiProvider) {
|
|
444
|
+
providerHandler('emojiProvider', options.emojiProvider);
|
|
445
|
+
}
|
|
446
|
+
} else {
|
|
447
|
+
pmPluginFactoryParams.providerFactory.subscribe('emojiProvider', providerHandler);
|
|
448
|
+
}
|
|
414
449
|
return {
|
|
415
450
|
destroy: function destroy() {
|
|
416
|
-
if (
|
|
417
|
-
pmPluginFactoryParams.providerFactory
|
|
451
|
+
if (!(0, _platformFeatureFlags.fg)('platform_editor_get_emoji_provider_from_config')) {
|
|
452
|
+
if (pmPluginFactoryParams.providerFactory) {
|
|
453
|
+
pmPluginFactoryParams.providerFactory.unsubscribe('emojiProvider', providerHandler);
|
|
454
|
+
}
|
|
418
455
|
}
|
|
419
456
|
}
|
|
420
457
|
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.setProvider = exports.setAsciiMap = exports.openTypeAhead = exports.ACTIONS = void 0;
|
|
7
|
+
var _plugin = require("../plugin");
|
|
8
|
+
var ACTIONS = exports.ACTIONS = {
|
|
9
|
+
SET_PROVIDER: 'SET_PROVIDER',
|
|
10
|
+
SET_RESULTS: 'SET_RESULTS',
|
|
11
|
+
SET_ASCII_MAP: 'SET_ASCII_MAP'
|
|
12
|
+
};
|
|
13
|
+
var setAsciiMap = exports.setAsciiMap = function setAsciiMap(asciiMap) {
|
|
14
|
+
return function (tr) {
|
|
15
|
+
return tr.setMeta(_plugin.emojiPluginKey, {
|
|
16
|
+
action: ACTIONS.SET_ASCII_MAP,
|
|
17
|
+
params: {
|
|
18
|
+
asciiMap: asciiMap
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
var openTypeAhead = exports.openTypeAhead = function openTypeAhead(typeaheadHandler, api) {
|
|
24
|
+
return function (inputMethod) {
|
|
25
|
+
var _api$typeAhead;
|
|
26
|
+
return Boolean(api === null || api === void 0 || (_api$typeAhead = api.typeAhead) === null || _api$typeAhead === void 0 ? void 0 : _api$typeAhead.actions.open({
|
|
27
|
+
triggerHandler: typeaheadHandler,
|
|
28
|
+
inputMethod: inputMethod
|
|
29
|
+
}));
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
var setProvider = exports.setProvider = function setProvider(provider) {
|
|
33
|
+
return function (tr) {
|
|
34
|
+
return tr.setMeta(_plugin.emojiPluginKey, {
|
|
35
|
+
action: ACTIONS.SET_PROVIDER,
|
|
36
|
+
params: {
|
|
37
|
+
provider: provider
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
};
|
|
@@ -18,19 +18,20 @@ var _analytics = require("@atlaskit/editor-common/analytics");
|
|
|
18
18
|
var _safePlugin = require("@atlaskit/editor-common/safe-plugin");
|
|
19
19
|
var _utils = require("@atlaskit/editor-common/utils");
|
|
20
20
|
var _state = require("@atlaskit/editor-prosemirror/state");
|
|
21
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
21
22
|
var _prosemirrorInputRules = require("@atlaskit/prosemirror-input-rules");
|
|
22
23
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
23
24
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
24
25
|
var matcher;
|
|
25
|
-
function inputRulePlugin(schema, providerFactory, featureFlags, editorAnalyticsAPI) {
|
|
26
|
+
function inputRulePlugin(schema, providerFactory, featureFlags, editorAnalyticsAPI, pluginInjectionApi) {
|
|
26
27
|
if (schema.nodes.emoji && providerFactory) {
|
|
27
|
-
initMatcher(providerFactory);
|
|
28
|
+
initMatcher(providerFactory, pluginInjectionApi);
|
|
28
29
|
var asciiEmojiRule = (0, _utils.createRule)(AsciiEmojiMatcher.REGEX, inputRuleHandler(editorAnalyticsAPI));
|
|
29
30
|
return new _safePlugin.SafePlugin((0, _prosemirrorInputRules.createPlugin)('emoji', [asciiEmojiRule]));
|
|
30
31
|
}
|
|
31
32
|
return;
|
|
32
33
|
}
|
|
33
|
-
function initMatcher(providerFactory) {
|
|
34
|
+
function initMatcher(providerFactory, pluginInjectionApi) {
|
|
34
35
|
var handleProvider = function handleProvider(_name, provider) {
|
|
35
36
|
if (!provider) {
|
|
36
37
|
return;
|
|
@@ -41,7 +42,19 @@ function initMatcher(providerFactory) {
|
|
|
41
42
|
});
|
|
42
43
|
});
|
|
43
44
|
};
|
|
44
|
-
|
|
45
|
+
if ((0, _platformFeatureFlags.fg)('platform_editor_get_emoji_provider_from_config')) {
|
|
46
|
+
pluginInjectionApi === null || pluginInjectionApi === void 0 || pluginInjectionApi.emoji.sharedState.onChange(function (_ref) {
|
|
47
|
+
var nextSharedState = _ref.nextSharedState;
|
|
48
|
+
var emojiProvider = nextSharedState === null || nextSharedState === void 0 ? void 0 : nextSharedState.emojiProvider;
|
|
49
|
+
if (emojiProvider) {
|
|
50
|
+
emojiProvider.getAsciiMap().then(function (map) {
|
|
51
|
+
matcher = new RecordingAsciiEmojiMatcher(emojiProvider, map);
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
} else {
|
|
56
|
+
providerFactory.subscribe('emojiProvider', handleProvider);
|
|
57
|
+
}
|
|
45
58
|
}
|
|
46
59
|
var inputRuleHandler = function inputRuleHandler(editorAnalyticsAPI) {
|
|
47
60
|
return function (state, matchParts, start, end) {
|
|
@@ -227,8 +240,8 @@ var AsciiEmojiTransactionCreator = /*#__PURE__*/function () {
|
|
|
227
240
|
return AsciiEmojiTransactionCreator;
|
|
228
241
|
}();
|
|
229
242
|
var stateKey = exports.stateKey = new _state.PluginKey('asciiEmojiPlugin');
|
|
230
|
-
var plugins = function plugins(schema, providerFactory, featureFlags, editorAnalyticsAPI) {
|
|
231
|
-
return [inputRulePlugin(schema, providerFactory, featureFlags, editorAnalyticsAPI)].filter(function (plugin) {
|
|
243
|
+
var plugins = function plugins(schema, providerFactory, featureFlags, editorAnalyticsAPI, pluginInjectionApi) {
|
|
244
|
+
return [inputRulePlugin(schema, providerFactory, featureFlags, editorAnalyticsAPI, pluginInjectionApi)].filter(function (plugin) {
|
|
232
245
|
return !!plugin;
|
|
233
246
|
});
|
|
234
247
|
};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _hooks = require("@atlaskit/editor-common/hooks");
|
|
10
|
+
var _element = require("@atlaskit/emoji/element");
|
|
11
|
+
var useEmojiProvider = function useEmojiProvider(pluginInjectionApi) {
|
|
12
|
+
var _useSharedPluginState = (0, _hooks.useSharedPluginState)(pluginInjectionApi, ['emoji']),
|
|
13
|
+
emojiState = _useSharedPluginState.emojiState;
|
|
14
|
+
return emojiState === null || emojiState === void 0 ? void 0 : emojiState.emojiProvider;
|
|
15
|
+
};
|
|
16
|
+
var EmojiNode = function EmojiNode(props) {
|
|
17
|
+
var _resourceConfig$optim;
|
|
18
|
+
var allowTextFallback = props.allowTextFallback,
|
|
19
|
+
shortName = props.shortName,
|
|
20
|
+
id = props.id,
|
|
21
|
+
fallback = props.fallback,
|
|
22
|
+
fitToHeight = props.fitToHeight,
|
|
23
|
+
showTooltip = props.showTooltip,
|
|
24
|
+
resourceConfig = props.resourceConfig,
|
|
25
|
+
pluginInjectionApi = props.pluginInjectionApi;
|
|
26
|
+
var emojiProvider = useEmojiProvider(pluginInjectionApi);
|
|
27
|
+
if (allowTextFallback && !emojiProvider) {
|
|
28
|
+
return /*#__PURE__*/_react.default.createElement("span", {
|
|
29
|
+
"data-emoji-id": id,
|
|
30
|
+
"data-emoji-short-name": shortName,
|
|
31
|
+
"data-emoji-text": fallback || shortName
|
|
32
|
+
}, fallback || shortName);
|
|
33
|
+
}
|
|
34
|
+
if (!emojiProvider) {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
return /*#__PURE__*/_react.default.createElement(_element.ResourcedEmoji, {
|
|
38
|
+
emojiId: {
|
|
39
|
+
id: id,
|
|
40
|
+
fallback: fallback,
|
|
41
|
+
shortName: shortName
|
|
42
|
+
},
|
|
43
|
+
emojiProvider: Promise.resolve(emojiProvider),
|
|
44
|
+
showTooltip: showTooltip,
|
|
45
|
+
fitToHeight: fitToHeight,
|
|
46
|
+
optimistic: true,
|
|
47
|
+
optimisticImageURL: resourceConfig === null || resourceConfig === void 0 || (_resourceConfig$optim = resourceConfig.optimisticImageApi) === null || _resourceConfig$optim === void 0 ? void 0 : _resourceConfig$optim.getUrl({
|
|
48
|
+
id: id,
|
|
49
|
+
fallback: fallback,
|
|
50
|
+
shortName: shortName
|
|
51
|
+
}),
|
|
52
|
+
editorEmoji: true
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
var _default = exports.default = EmojiNode;
|
|
@@ -8,6 +8,8 @@ exports.default = EmojiNode;
|
|
|
8
8
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
9
9
|
var _react = require("@emotion/react");
|
|
10
10
|
var _emoji = require("@atlaskit/editor-common/emoji");
|
|
11
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
12
|
+
var _emojiNext = _interopRequireDefault(require("./emoji-next"));
|
|
11
13
|
var _templateObject;
|
|
12
14
|
/**
|
|
13
15
|
* @jsxRuntime classic
|
|
@@ -19,5 +21,5 @@ var clickSelectWrapperStyle = (0, _react.css)(_templateObject || (_templateObjec
|
|
|
19
21
|
function EmojiNode(props) {
|
|
20
22
|
return (0, _react.jsx)("span", {
|
|
21
23
|
css: clickSelectWrapperStyle
|
|
22
|
-
}, (0, _react.jsx)(_emoji.Emoji, props));
|
|
24
|
+
}, (0, _platformFeatureFlags.fg)('platform_editor_get_emoji_provider_from_config') ? (0, _react.jsx)(_emojiNext.default, props) : (0, _react.jsx)(_emoji.Emoji, props));
|
|
23
25
|
}
|
|
@@ -33,6 +33,7 @@ export function EmojiNodeView(props) {
|
|
|
33
33
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(EmojiAssistiveTextComponent, {
|
|
34
34
|
emojiShortName: shortName
|
|
35
35
|
}), /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(Emoji, {
|
|
36
|
+
pluginInjectionApi: props.api,
|
|
36
37
|
providers: props.providerFactory,
|
|
37
38
|
id: id,
|
|
38
39
|
shortName: shortName,
|