@atlaskit/editor-plugin-emoji 0.3.6 → 0.4.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 +10 -0
- package/dist/cjs/commands/insert-emoji.js +3 -4
- package/dist/cjs/messages.js +2 -3
- package/dist/cjs/plugin.js +31 -36
- package/dist/cjs/pm-plugins/ascii-input-rules.js +3 -5
- package/dist/es2019/plugin.js +15 -14
- package/dist/esm/commands/insert-emoji.js +1 -1
- package/dist/esm/plugin.js +24 -24
- package/dist/esm/pm-plugins/ascii-input-rules.js +1 -1
- package/dist/types/types.d.ts +9 -3
- package/dist/types-ts4.5/types.d.ts +9 -3
- package/package.json +3 -3
- package/report.api.md +11 -1
- package/tmp/api-report-tmp.d.ts +11 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-emoji
|
|
2
2
|
|
|
3
|
+
## 0.4.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#41143](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/41143) [`7d6dfe2befa`](https://bitbucket.org/atlassian/atlassian-frontend/commits/7d6dfe2befa) - [ED-20003] Replace TyepAhead API for Editor Plugin Injection API
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies
|
|
12
|
+
|
|
3
13
|
## 0.3.6
|
|
4
14
|
|
|
5
15
|
### Patch Changes
|
|
@@ -12,7 +12,7 @@ var _state = require("@atlaskit/editor-prosemirror/state");
|
|
|
12
12
|
var _utils = require("@atlaskit/editor-prosemirror/utils");
|
|
13
13
|
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; }
|
|
14
14
|
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; }
|
|
15
|
-
var insertEmoji = function insertEmoji(editorAnalyticsAPI) {
|
|
15
|
+
var insertEmoji = exports.insertEmoji = function insertEmoji(editorAnalyticsAPI) {
|
|
16
16
|
return function (emojiId, inputMethod) {
|
|
17
17
|
return function (_ref) {
|
|
18
18
|
var tr = _ref.tr;
|
|
@@ -27,7 +27,7 @@ var insertEmoji = function insertEmoji(editorAnalyticsAPI) {
|
|
|
27
27
|
var fragment = _model.Fragment.fromArray([node, textNode]);
|
|
28
28
|
var newTr = (0, _utils.safeInsert)(fragment)(tr);
|
|
29
29
|
if (inputMethod) {
|
|
30
|
-
editorAnalyticsAPI === null || editorAnalyticsAPI === void 0
|
|
30
|
+
editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 || editorAnalyticsAPI.attachAnalyticsEvent({
|
|
31
31
|
action: _analytics.ACTION.INSERTED,
|
|
32
32
|
actionSubject: _analytics.ACTION_SUBJECT.DOCUMENT,
|
|
33
33
|
actionSubjectId: _analytics.ACTION_SUBJECT_ID.EMOJI,
|
|
@@ -43,5 +43,4 @@ var insertEmoji = function insertEmoji(editorAnalyticsAPI) {
|
|
|
43
43
|
return null;
|
|
44
44
|
};
|
|
45
45
|
};
|
|
46
|
-
};
|
|
47
|
-
exports.insertEmoji = insertEmoji;
|
|
46
|
+
};
|
package/dist/cjs/messages.js
CHANGED
|
@@ -5,11 +5,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.messages = void 0;
|
|
7
7
|
var _reactIntlNext = require("react-intl-next");
|
|
8
|
-
var messages = (0, _reactIntlNext.defineMessages)({
|
|
8
|
+
var messages = exports.messages = (0, _reactIntlNext.defineMessages)({
|
|
9
9
|
emojiNodeLabel: {
|
|
10
10
|
id: 'fabric.emoji.label',
|
|
11
11
|
defaultMessage: 'Emoji',
|
|
12
12
|
description: 'Label to indicate emoji node to Screen reader users'
|
|
13
13
|
}
|
|
14
|
-
});
|
|
15
|
-
exports.messages = messages;
|
|
14
|
+
});
|
package/dist/cjs/plugin.js
CHANGED
|
@@ -28,7 +28,7 @@ var _emoji3 = require("./nodeviews/emoji");
|
|
|
28
28
|
var _asciiInputRules = require("./pm-plugins/ascii-input-rules");
|
|
29
29
|
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; }
|
|
30
30
|
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; }
|
|
31
|
-
var emojiToTypeaheadItem = function emojiToTypeaheadItem(emoji, emojiProvider) {
|
|
31
|
+
var emojiToTypeaheadItem = exports.emojiToTypeaheadItem = function emojiToTypeaheadItem(emoji, emojiProvider) {
|
|
32
32
|
return {
|
|
33
33
|
title: emoji.shortName || '',
|
|
34
34
|
key: emoji.id || emoji.shortName,
|
|
@@ -47,7 +47,6 @@ var emojiToTypeaheadItem = function emojiToTypeaheadItem(emoji, emojiProvider) {
|
|
|
47
47
|
emoji: emoji
|
|
48
48
|
};
|
|
49
49
|
};
|
|
50
|
-
exports.emojiToTypeaheadItem = emojiToTypeaheadItem;
|
|
51
50
|
function memoize(fn) {
|
|
52
51
|
// Cache results here
|
|
53
52
|
var seen = new Map();
|
|
@@ -69,8 +68,7 @@ function memoize(fn) {
|
|
|
69
68
|
};
|
|
70
69
|
}
|
|
71
70
|
var memoizedToItem = memoize(emojiToTypeaheadItem);
|
|
72
|
-
var defaultListLimit = 50;
|
|
73
|
-
exports.defaultListLimit = defaultListLimit;
|
|
71
|
+
var defaultListLimit = exports.defaultListLimit = 50;
|
|
74
72
|
var isFullShortName = function isFullShortName(query) {
|
|
75
73
|
return query && query.length > 1 && query.charAt(0) === ':' && query.charAt(query.length - 1) === ':';
|
|
76
74
|
};
|
|
@@ -80,7 +78,7 @@ var TRIGGER = ':';
|
|
|
80
78
|
* Emoji plugin to be added to an `EditorPresetBuilder` and used with `ComposableEditor`
|
|
81
79
|
* from `@atlaskit/editor-core`.
|
|
82
80
|
*/
|
|
83
|
-
var emojiPlugin = function emojiPlugin(_ref2) {
|
|
81
|
+
var emojiPlugin = exports.emojiPlugin = function emojiPlugin(_ref2) {
|
|
84
82
|
var _api$analytics5;
|
|
85
83
|
var options = _ref2.config,
|
|
86
84
|
api = _ref2.api;
|
|
@@ -154,11 +152,11 @@ var emojiPlugin = function emojiPlugin(_ref2) {
|
|
|
154
152
|
var text = fallback || shortName;
|
|
155
153
|
var emojiPluginState = emojiPluginKey.getState(state);
|
|
156
154
|
if (emojiPluginState.emojiProvider && emojiPluginState.emojiProvider.recordSelection && item.emoji) {
|
|
157
|
-
var _api$analytics$shared, _api$analytics, _api$analytics$shared2, _api$
|
|
155
|
+
var _api$analytics$shared, _api$analytics, _api$analytics$shared2, _api$analytics2;
|
|
158
156
|
emojiPluginState.emojiProvider.recordSelection(item.emoji).then((0, _emoji2.recordSelectionSucceededSli)({
|
|
159
|
-
createAnalyticsEvent: (_api$analytics$shared = api === null || api === void 0
|
|
157
|
+
createAnalyticsEvent: (_api$analytics$shared = api === null || api === void 0 || (_api$analytics = api.analytics) === null || _api$analytics === void 0 || (_api$analytics = _api$analytics.sharedState.currentState()) === null || _api$analytics === void 0 ? void 0 : _api$analytics.createAnalyticsEvent) !== null && _api$analytics$shared !== void 0 ? _api$analytics$shared : undefined
|
|
160
158
|
})).catch((0, _emoji2.recordSelectionFailedSli)({
|
|
161
|
-
createAnalyticsEvent: (_api$analytics$
|
|
159
|
+
createAnalyticsEvent: (_api$analytics$shared2 = api === null || api === void 0 || (_api$analytics2 = api.analytics) === null || _api$analytics2 === void 0 || (_api$analytics2 = _api$analytics2.sharedState.currentState()) === null || _api$analytics2 === void 0 ? void 0 : _api$analytics2.createAnalyticsEvent) !== null && _api$analytics$shared2 !== void 0 ? _api$analytics$shared2 : undefined
|
|
162
160
|
}));
|
|
163
161
|
}
|
|
164
162
|
var emojiNode = state.schema.nodes.emoji.createChecked({
|
|
@@ -168,7 +166,7 @@ var emojiPlugin = function emojiPlugin(_ref2) {
|
|
|
168
166
|
});
|
|
169
167
|
var space = state.schema.text(' ');
|
|
170
168
|
var tr = insert(_model.Fragment.from([emojiNode, space]));
|
|
171
|
-
api === null || api === void 0
|
|
169
|
+
api === null || api === void 0 || (_api$analytics3 = api.analytics) === null || _api$analytics3 === void 0 || _api$analytics3.actions.attachAnalyticsEvent({
|
|
172
170
|
action: _analytics.ACTION.INSERTED,
|
|
173
171
|
actionSubject: _analytics.ACTION_SUBJECT.DOCUMENT,
|
|
174
172
|
actionSubjectId: _analytics.ACTION_SUBJECT_ID.EMOJI,
|
|
@@ -201,7 +199,7 @@ var emojiPlugin = function emojiPlugin(_ref2) {
|
|
|
201
199
|
var schema = _ref7.schema,
|
|
202
200
|
providerFactory = _ref7.providerFactory,
|
|
203
201
|
featureFlags = _ref7.featureFlags;
|
|
204
|
-
return (0, _asciiInputRules.inputRulePlugin)(schema, providerFactory, featureFlags, api === null || api === void 0
|
|
202
|
+
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);
|
|
205
203
|
}
|
|
206
204
|
}];
|
|
207
205
|
},
|
|
@@ -209,10 +207,22 @@ var emojiPlugin = function emojiPlugin(_ref2) {
|
|
|
209
207
|
if (!editorState) {
|
|
210
208
|
return undefined;
|
|
211
209
|
}
|
|
212
|
-
|
|
210
|
+
var emojiPluginState = emojiPluginKey.getState(editorState);
|
|
211
|
+
return _objectSpread(_objectSpread({}, emojiPluginState), {}, {
|
|
212
|
+
typeAheadHandler: typeAhead
|
|
213
|
+
});
|
|
214
|
+
},
|
|
215
|
+
actions: {
|
|
216
|
+
openTypeAhead: function openTypeAhead(inputMethod) {
|
|
217
|
+
var _api$typeAhead;
|
|
218
|
+
return Boolean(api === null || api === void 0 || (_api$typeAhead = api.typeAhead) === null || _api$typeAhead === void 0 ? void 0 : _api$typeAhead.actions.open({
|
|
219
|
+
triggerHandler: typeAhead,
|
|
220
|
+
inputMethod: inputMethod
|
|
221
|
+
}));
|
|
222
|
+
}
|
|
213
223
|
},
|
|
214
224
|
commands: {
|
|
215
|
-
insertEmoji: (0, _insertEmoji.insertEmoji)(api === null || api === void 0
|
|
225
|
+
insertEmoji: (0, _insertEmoji.insertEmoji)(api === null || api === void 0 || (_api$analytics5 = api.analytics) === null || _api$analytics5 === void 0 ? void 0 : _api$analytics5.actions)
|
|
216
226
|
},
|
|
217
227
|
pluginsOptions: {
|
|
218
228
|
quickInsert: function quickInsert(_ref8) {
|
|
@@ -227,22 +237,10 @@ var emojiPlugin = function emojiPlugin(_ref2) {
|
|
|
227
237
|
return /*#__PURE__*/_react.default.createElement(_quickInsert.IconEmoji, null);
|
|
228
238
|
},
|
|
229
239
|
action: function action(insert, state) {
|
|
230
|
-
var _api$analytics6;
|
|
231
240
|
var tr = insert(undefined);
|
|
232
|
-
api === null || api === void 0
|
|
241
|
+
api === null || api === void 0 || api.typeAhead.actions.openAtTransaction({
|
|
233
242
|
triggerHandler: typeAhead,
|
|
234
243
|
inputMethod: _analytics.INPUT_METHOD.QUICK_INSERT
|
|
235
|
-
})({
|
|
236
|
-
tr: tr
|
|
237
|
-
});
|
|
238
|
-
api === null || api === void 0 ? void 0 : (_api$analytics6 = api.analytics) === null || _api$analytics6 === void 0 ? void 0 : _api$analytics6.actions.attachAnalyticsEvent({
|
|
239
|
-
action: _analytics.ACTION.INVOKED,
|
|
240
|
-
actionSubject: _analytics.ACTION_SUBJECT.TYPEAHEAD,
|
|
241
|
-
actionSubjectId: _analytics.ACTION_SUBJECT_ID.TYPEAHEAD_EMOJI,
|
|
242
|
-
attributes: {
|
|
243
|
-
inputMethod: _analytics.INPUT_METHOD.QUICK_INSERT
|
|
244
|
-
},
|
|
245
|
-
eventType: _analytics.EVENT_TYPE.UI
|
|
246
244
|
})(tr);
|
|
247
245
|
return tr;
|
|
248
246
|
}
|
|
@@ -256,13 +254,12 @@ var emojiPlugin = function emojiPlugin(_ref2) {
|
|
|
256
254
|
/**
|
|
257
255
|
* Actions
|
|
258
256
|
*/
|
|
259
|
-
|
|
260
|
-
var ACTIONS = {
|
|
257
|
+
|
|
258
|
+
var ACTIONS = exports.ACTIONS = {
|
|
261
259
|
SET_PROVIDER: 'SET_PROVIDER',
|
|
262
260
|
SET_RESULTS: 'SET_RESULTS',
|
|
263
261
|
SET_ASCII_MAP: 'SET_ASCII_MAP'
|
|
264
262
|
};
|
|
265
|
-
exports.ACTIONS = ACTIONS;
|
|
266
263
|
var setAsciiMap = function setAsciiMap(asciiMap) {
|
|
267
264
|
return function (state, dispatch) {
|
|
268
265
|
if (dispatch) {
|
|
@@ -296,7 +293,7 @@ function createRateLimitReachedFunction(fn, limitTime, limitCount, onLimitReache
|
|
|
296
293
|
var now = Date.now();
|
|
297
294
|
if (now - lastCallTime < limitTime) {
|
|
298
295
|
if (++callCount > limitCount) {
|
|
299
|
-
onLimitReached === null || onLimitReached === void 0
|
|
296
|
+
onLimitReached === null || onLimitReached === void 0 || onLimitReached();
|
|
300
297
|
}
|
|
301
298
|
} else {
|
|
302
299
|
lastCallTime = now;
|
|
@@ -313,7 +310,7 @@ var logRateWarning = function logRateWarning() {
|
|
|
313
310
|
console.error('The emoji provider injected in the Editor is being reloaded frequently, this will cause a slow Editor experience.');
|
|
314
311
|
}
|
|
315
312
|
};
|
|
316
|
-
var setProvider = createRateLimitReachedFunction(function (provider) {
|
|
313
|
+
var setProvider = exports.setProvider = createRateLimitReachedFunction(function (provider) {
|
|
317
314
|
return function (state, dispatch) {
|
|
318
315
|
if (dispatch) {
|
|
319
316
|
dispatch(state.tr.setMeta(emojiPluginKey, {
|
|
@@ -330,9 +327,7 @@ var setProvider = createRateLimitReachedFunction(function (provider) {
|
|
|
330
327
|
// This seems like a really long time but the performance can be that laggy that we don't
|
|
331
328
|
// even get 3 events in 3 seconds and miss this indicator.
|
|
332
329
|
5000, 3, logRateWarning);
|
|
333
|
-
exports.
|
|
334
|
-
var emojiPluginKey = new _state.PluginKey('emojiPlugin');
|
|
335
|
-
exports.emojiPluginKey = emojiPluginKey;
|
|
330
|
+
var emojiPluginKey = exports.emojiPluginKey = new _state.PluginKey('emojiPlugin');
|
|
336
331
|
function getEmojiPluginState(state) {
|
|
337
332
|
return emojiPluginKey.getState(state) || {};
|
|
338
333
|
}
|
|
@@ -385,17 +380,17 @@ function createEmojiPlugin(pmPluginFactoryParams) {
|
|
|
385
380
|
case 'emojiProvider':
|
|
386
381
|
if (!providerPromise) {
|
|
387
382
|
var _setProvider;
|
|
388
|
-
return setProvider === null || setProvider === void 0
|
|
383
|
+
return setProvider === null || setProvider === void 0 || (_setProvider = setProvider(undefined)) === null || _setProvider === void 0 ? void 0 : _setProvider(editorView.state, editorView.dispatch);
|
|
389
384
|
}
|
|
390
385
|
providerPromise.then(function (provider) {
|
|
391
386
|
var _setProvider2;
|
|
392
|
-
setProvider === null || setProvider === void 0
|
|
387
|
+
setProvider === null || setProvider === void 0 || (_setProvider2 = setProvider(provider)) === null || _setProvider2 === void 0 || _setProvider2(editorView.state, editorView.dispatch);
|
|
393
388
|
provider.getAsciiMap().then(function (asciiMap) {
|
|
394
389
|
setAsciiMap(asciiMap)(editorView.state, editorView.dispatch);
|
|
395
390
|
});
|
|
396
391
|
}).catch(function () {
|
|
397
392
|
var _setProvider3;
|
|
398
|
-
return setProvider === null || setProvider === void 0
|
|
393
|
+
return setProvider === null || setProvider === void 0 || (_setProvider3 = setProvider(undefined)) === null || _setProvider3 === void 0 ? void 0 : _setProvider3(editorView.state, editorView.dispatch);
|
|
399
394
|
});
|
|
400
395
|
break;
|
|
401
396
|
}
|
|
@@ -165,7 +165,7 @@ var AsciiEmojiTransactionCreator = /*#__PURE__*/function () {
|
|
|
165
165
|
value: function create() {
|
|
166
166
|
var _this$editorAnalytics;
|
|
167
167
|
var tr = this.state.tr.replaceWith(this.from, this.to, this.createNodes());
|
|
168
|
-
(_this$editorAnalytics = this.editorAnalyticsAPI) === null || _this$editorAnalytics === void 0
|
|
168
|
+
(_this$editorAnalytics = this.editorAnalyticsAPI) === null || _this$editorAnalytics === void 0 || _this$editorAnalytics.attachAnalyticsEvent({
|
|
169
169
|
action: _analytics.ACTION.INSERTED,
|
|
170
170
|
actionSubject: _analytics.ACTION_SUBJECT.DOCUMENT,
|
|
171
171
|
actionSubjectId: _analytics.ACTION_SUBJECT_ID.EMOJI,
|
|
@@ -224,12 +224,10 @@ var AsciiEmojiTransactionCreator = /*#__PURE__*/function () {
|
|
|
224
224
|
}]);
|
|
225
225
|
return AsciiEmojiTransactionCreator;
|
|
226
226
|
}();
|
|
227
|
-
var stateKey = new _state.PluginKey('asciiEmojiPlugin');
|
|
228
|
-
exports.stateKey = stateKey;
|
|
227
|
+
var stateKey = exports.stateKey = new _state.PluginKey('asciiEmojiPlugin');
|
|
229
228
|
var plugins = function plugins(schema, providerFactory, featureFlags, editorAnalyticsAPI) {
|
|
230
229
|
return [inputRulePlugin(schema, providerFactory, featureFlags, editorAnalyticsAPI)].filter(function (plugin) {
|
|
231
230
|
return !!plugin;
|
|
232
231
|
});
|
|
233
232
|
};
|
|
234
|
-
var _default = plugins;
|
|
235
|
-
exports.default = _default;
|
|
233
|
+
var _default = exports.default = plugins;
|
package/dist/es2019/plugin.js
CHANGED
|
@@ -188,7 +188,20 @@ export const emojiPlugin = ({
|
|
|
188
188
|
if (!editorState) {
|
|
189
189
|
return undefined;
|
|
190
190
|
}
|
|
191
|
-
|
|
191
|
+
const emojiPluginState = emojiPluginKey.getState(editorState);
|
|
192
|
+
return {
|
|
193
|
+
...emojiPluginState,
|
|
194
|
+
typeAheadHandler: typeAhead
|
|
195
|
+
};
|
|
196
|
+
},
|
|
197
|
+
actions: {
|
|
198
|
+
openTypeAhead(inputMethod) {
|
|
199
|
+
var _api$typeAhead;
|
|
200
|
+
return Boolean(api === null || api === void 0 ? void 0 : (_api$typeAhead = api.typeAhead) === null || _api$typeAhead === void 0 ? void 0 : _api$typeAhead.actions.open({
|
|
201
|
+
triggerHandler: typeAhead,
|
|
202
|
+
inputMethod
|
|
203
|
+
}));
|
|
204
|
+
}
|
|
192
205
|
},
|
|
193
206
|
commands: {
|
|
194
207
|
insertEmoji: insertEmoji(api === null || api === void 0 ? void 0 : (_api$analytics5 = api.analytics) === null || _api$analytics5 === void 0 ? void 0 : _api$analytics5.actions)
|
|
@@ -204,22 +217,10 @@ export const emojiPlugin = ({
|
|
|
204
217
|
keyshortcut: ':',
|
|
205
218
|
icon: () => /*#__PURE__*/React.createElement(IconEmoji, null),
|
|
206
219
|
action(insert, state) {
|
|
207
|
-
var _api$analytics6;
|
|
208
220
|
const tr = insert(undefined);
|
|
209
|
-
api === null || api === void 0 ? void 0 : api.typeAhead.
|
|
221
|
+
api === null || api === void 0 ? void 0 : api.typeAhead.actions.openAtTransaction({
|
|
210
222
|
triggerHandler: typeAhead,
|
|
211
223
|
inputMethod: INPUT_METHOD.QUICK_INSERT
|
|
212
|
-
})({
|
|
213
|
-
tr
|
|
214
|
-
});
|
|
215
|
-
api === null || api === void 0 ? void 0 : (_api$analytics6 = api.analytics) === null || _api$analytics6 === void 0 ? void 0 : _api$analytics6.actions.attachAnalyticsEvent({
|
|
216
|
-
action: ACTION.INVOKED,
|
|
217
|
-
actionSubject: ACTION_SUBJECT.TYPEAHEAD,
|
|
218
|
-
actionSubjectId: ACTION_SUBJECT_ID.TYPEAHEAD_EMOJI,
|
|
219
|
-
attributes: {
|
|
220
|
-
inputMethod: INPUT_METHOD.QUICK_INSERT
|
|
221
|
-
},
|
|
222
|
-
eventType: EVENT_TYPE.UI
|
|
223
224
|
})(tr);
|
|
224
225
|
return tr;
|
|
225
226
|
}
|
|
@@ -20,7 +20,7 @@ export var insertEmoji = function insertEmoji(editorAnalyticsAPI) {
|
|
|
20
20
|
var fragment = Fragment.fromArray([node, textNode]);
|
|
21
21
|
var newTr = safeInsert(fragment)(tr);
|
|
22
22
|
if (inputMethod) {
|
|
23
|
-
editorAnalyticsAPI === null || editorAnalyticsAPI === void 0
|
|
23
|
+
editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 || editorAnalyticsAPI.attachAnalyticsEvent({
|
|
24
24
|
action: ACTION.INSERTED,
|
|
25
25
|
actionSubject: ACTION_SUBJECT.DOCUMENT,
|
|
26
26
|
actionSubjectId: ACTION_SUBJECT_ID.EMOJI,
|
package/dist/esm/plugin.js
CHANGED
|
@@ -139,11 +139,11 @@ export var emojiPlugin = function emojiPlugin(_ref2) {
|
|
|
139
139
|
var text = fallback || shortName;
|
|
140
140
|
var emojiPluginState = emojiPluginKey.getState(state);
|
|
141
141
|
if (emojiPluginState.emojiProvider && emojiPluginState.emojiProvider.recordSelection && item.emoji) {
|
|
142
|
-
var _api$analytics$shared, _api$analytics, _api$analytics$shared2, _api$
|
|
142
|
+
var _api$analytics$shared, _api$analytics, _api$analytics$shared2, _api$analytics2;
|
|
143
143
|
emojiPluginState.emojiProvider.recordSelection(item.emoji).then(recordSelectionSucceededSli({
|
|
144
|
-
createAnalyticsEvent: (_api$analytics$shared = api === null || api === void 0
|
|
144
|
+
createAnalyticsEvent: (_api$analytics$shared = api === null || api === void 0 || (_api$analytics = api.analytics) === null || _api$analytics === void 0 || (_api$analytics = _api$analytics.sharedState.currentState()) === null || _api$analytics === void 0 ? void 0 : _api$analytics.createAnalyticsEvent) !== null && _api$analytics$shared !== void 0 ? _api$analytics$shared : undefined
|
|
145
145
|
})).catch(recordSelectionFailedSli({
|
|
146
|
-
createAnalyticsEvent: (_api$analytics$
|
|
146
|
+
createAnalyticsEvent: (_api$analytics$shared2 = api === null || api === void 0 || (_api$analytics2 = api.analytics) === null || _api$analytics2 === void 0 || (_api$analytics2 = _api$analytics2.sharedState.currentState()) === null || _api$analytics2 === void 0 ? void 0 : _api$analytics2.createAnalyticsEvent) !== null && _api$analytics$shared2 !== void 0 ? _api$analytics$shared2 : undefined
|
|
147
147
|
}));
|
|
148
148
|
}
|
|
149
149
|
var emojiNode = state.schema.nodes.emoji.createChecked({
|
|
@@ -153,7 +153,7 @@ export var emojiPlugin = function emojiPlugin(_ref2) {
|
|
|
153
153
|
});
|
|
154
154
|
var space = state.schema.text(' ');
|
|
155
155
|
var tr = insert(Fragment.from([emojiNode, space]));
|
|
156
|
-
api === null || api === void 0
|
|
156
|
+
api === null || api === void 0 || (_api$analytics3 = api.analytics) === null || _api$analytics3 === void 0 || _api$analytics3.actions.attachAnalyticsEvent({
|
|
157
157
|
action: ACTION.INSERTED,
|
|
158
158
|
actionSubject: ACTION_SUBJECT.DOCUMENT,
|
|
159
159
|
actionSubjectId: ACTION_SUBJECT_ID.EMOJI,
|
|
@@ -186,7 +186,7 @@ export var emojiPlugin = function emojiPlugin(_ref2) {
|
|
|
186
186
|
var schema = _ref7.schema,
|
|
187
187
|
providerFactory = _ref7.providerFactory,
|
|
188
188
|
featureFlags = _ref7.featureFlags;
|
|
189
|
-
return asciiInputRulePlugin(schema, providerFactory, featureFlags, api === null || api === void 0
|
|
189
|
+
return asciiInputRulePlugin(schema, providerFactory, featureFlags, api === null || api === void 0 || (_api$analytics4 = api.analytics) === null || _api$analytics4 === void 0 ? void 0 : _api$analytics4.actions);
|
|
190
190
|
}
|
|
191
191
|
}];
|
|
192
192
|
},
|
|
@@ -194,10 +194,22 @@ export var emojiPlugin = function emojiPlugin(_ref2) {
|
|
|
194
194
|
if (!editorState) {
|
|
195
195
|
return undefined;
|
|
196
196
|
}
|
|
197
|
-
|
|
197
|
+
var emojiPluginState = emojiPluginKey.getState(editorState);
|
|
198
|
+
return _objectSpread(_objectSpread({}, emojiPluginState), {}, {
|
|
199
|
+
typeAheadHandler: typeAhead
|
|
200
|
+
});
|
|
201
|
+
},
|
|
202
|
+
actions: {
|
|
203
|
+
openTypeAhead: function openTypeAhead(inputMethod) {
|
|
204
|
+
var _api$typeAhead;
|
|
205
|
+
return Boolean(api === null || api === void 0 || (_api$typeAhead = api.typeAhead) === null || _api$typeAhead === void 0 ? void 0 : _api$typeAhead.actions.open({
|
|
206
|
+
triggerHandler: typeAhead,
|
|
207
|
+
inputMethod: inputMethod
|
|
208
|
+
}));
|
|
209
|
+
}
|
|
198
210
|
},
|
|
199
211
|
commands: {
|
|
200
|
-
insertEmoji: insertEmoji(api === null || api === void 0
|
|
212
|
+
insertEmoji: insertEmoji(api === null || api === void 0 || (_api$analytics5 = api.analytics) === null || _api$analytics5 === void 0 ? void 0 : _api$analytics5.actions)
|
|
201
213
|
},
|
|
202
214
|
pluginsOptions: {
|
|
203
215
|
quickInsert: function quickInsert(_ref8) {
|
|
@@ -212,22 +224,10 @@ export var emojiPlugin = function emojiPlugin(_ref2) {
|
|
|
212
224
|
return /*#__PURE__*/React.createElement(IconEmoji, null);
|
|
213
225
|
},
|
|
214
226
|
action: function action(insert, state) {
|
|
215
|
-
var _api$analytics6;
|
|
216
227
|
var tr = insert(undefined);
|
|
217
|
-
api === null || api === void 0
|
|
228
|
+
api === null || api === void 0 || api.typeAhead.actions.openAtTransaction({
|
|
218
229
|
triggerHandler: typeAhead,
|
|
219
230
|
inputMethod: INPUT_METHOD.QUICK_INSERT
|
|
220
|
-
})({
|
|
221
|
-
tr: tr
|
|
222
|
-
});
|
|
223
|
-
api === null || api === void 0 ? void 0 : (_api$analytics6 = api.analytics) === null || _api$analytics6 === void 0 ? void 0 : _api$analytics6.actions.attachAnalyticsEvent({
|
|
224
|
-
action: ACTION.INVOKED,
|
|
225
|
-
actionSubject: ACTION_SUBJECT.TYPEAHEAD,
|
|
226
|
-
actionSubjectId: ACTION_SUBJECT_ID.TYPEAHEAD_EMOJI,
|
|
227
|
-
attributes: {
|
|
228
|
-
inputMethod: INPUT_METHOD.QUICK_INSERT
|
|
229
|
-
},
|
|
230
|
-
eventType: EVENT_TYPE.UI
|
|
231
231
|
})(tr);
|
|
232
232
|
return tr;
|
|
233
233
|
}
|
|
@@ -280,7 +280,7 @@ export function createRateLimitReachedFunction(fn, limitTime, limitCount, onLimi
|
|
|
280
280
|
var now = Date.now();
|
|
281
281
|
if (now - lastCallTime < limitTime) {
|
|
282
282
|
if (++callCount > limitCount) {
|
|
283
|
-
onLimitReached === null || onLimitReached === void 0
|
|
283
|
+
onLimitReached === null || onLimitReached === void 0 || onLimitReached();
|
|
284
284
|
}
|
|
285
285
|
} else {
|
|
286
286
|
lastCallTime = now;
|
|
@@ -367,17 +367,17 @@ export function createEmojiPlugin(pmPluginFactoryParams) {
|
|
|
367
367
|
case 'emojiProvider':
|
|
368
368
|
if (!providerPromise) {
|
|
369
369
|
var _setProvider;
|
|
370
|
-
return setProvider === null || setProvider === void 0
|
|
370
|
+
return setProvider === null || setProvider === void 0 || (_setProvider = setProvider(undefined)) === null || _setProvider === void 0 ? void 0 : _setProvider(editorView.state, editorView.dispatch);
|
|
371
371
|
}
|
|
372
372
|
providerPromise.then(function (provider) {
|
|
373
373
|
var _setProvider2;
|
|
374
|
-
setProvider === null || setProvider === void 0
|
|
374
|
+
setProvider === null || setProvider === void 0 || (_setProvider2 = setProvider(provider)) === null || _setProvider2 === void 0 || _setProvider2(editorView.state, editorView.dispatch);
|
|
375
375
|
provider.getAsciiMap().then(function (asciiMap) {
|
|
376
376
|
setAsciiMap(asciiMap)(editorView.state, editorView.dispatch);
|
|
377
377
|
});
|
|
378
378
|
}).catch(function () {
|
|
379
379
|
var _setProvider3;
|
|
380
|
-
return setProvider === null || setProvider === void 0
|
|
380
|
+
return setProvider === null || setProvider === void 0 || (_setProvider3 = setProvider(undefined)) === null || _setProvider3 === void 0 ? void 0 : _setProvider3(editorView.state, editorView.dispatch);
|
|
381
381
|
});
|
|
382
382
|
break;
|
|
383
383
|
}
|
|
@@ -156,7 +156,7 @@ var AsciiEmojiTransactionCreator = /*#__PURE__*/function () {
|
|
|
156
156
|
value: function create() {
|
|
157
157
|
var _this$editorAnalytics;
|
|
158
158
|
var tr = this.state.tr.replaceWith(this.from, this.to, this.createNodes());
|
|
159
|
-
(_this$editorAnalytics = this.editorAnalyticsAPI) === null || _this$editorAnalytics === void 0
|
|
159
|
+
(_this$editorAnalytics = this.editorAnalyticsAPI) === null || _this$editorAnalytics === void 0 || _this$editorAnalytics.attachAnalyticsEvent({
|
|
160
160
|
action: ACTION.INSERTED,
|
|
161
161
|
actionSubject: ACTION_SUBJECT.DOCUMENT,
|
|
162
162
|
actionSubjectId: ACTION_SUBJECT_ID.EMOJI,
|
package/dist/types/types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { INPUT_METHOD } from '@atlaskit/editor-common/analytics';
|
|
2
|
-
import type { EditorCommand, NextEditorPlugin, OptionalPlugin } from '@atlaskit/editor-common/types';
|
|
2
|
+
import type { EditorCommand, NextEditorPlugin, OptionalPlugin, TypeAheadHandler } from '@atlaskit/editor-common/types';
|
|
3
3
|
import type { AnalyticsPlugin } from '@atlaskit/editor-plugin-analytics';
|
|
4
|
-
import type { TypeAheadPlugin } from '@atlaskit/editor-plugin-type-ahead';
|
|
4
|
+
import type { TypeAheadInputMethod, TypeAheadPlugin } from '@atlaskit/editor-plugin-type-ahead';
|
|
5
5
|
import type { EmojiDescription, EmojiId, EmojiProvider, EmojiResourceConfig } from '@atlaskit/emoji';
|
|
6
6
|
export interface EmojiPluginOptions {
|
|
7
7
|
headless?: boolean;
|
|
@@ -11,11 +11,17 @@ export type EmojiPluginState = {
|
|
|
11
11
|
emojiResourceConfig?: EmojiResourceConfig;
|
|
12
12
|
asciiMap?: Map<string, EmojiDescription>;
|
|
13
13
|
};
|
|
14
|
+
export type EmojiPluginSharedState = EmojiPluginState & {
|
|
15
|
+
typeAheadHandler: TypeAheadHandler;
|
|
16
|
+
};
|
|
14
17
|
export type EmojiPlugin = NextEditorPlugin<'emoji', {
|
|
15
18
|
pluginConfiguration: EmojiPluginOptions | undefined;
|
|
16
19
|
dependencies: [OptionalPlugin<AnalyticsPlugin>, TypeAheadPlugin];
|
|
17
|
-
sharedState:
|
|
20
|
+
sharedState: EmojiPluginSharedState | undefined;
|
|
18
21
|
commands: {
|
|
19
22
|
insertEmoji: (emojiId: EmojiId, inputMethod?: INPUT_METHOD.PICKER | INPUT_METHOD.ASCII | INPUT_METHOD.TYPEAHEAD) => EditorCommand;
|
|
20
23
|
};
|
|
24
|
+
actions: {
|
|
25
|
+
openTypeAhead: (inputMethod: TypeAheadInputMethod) => boolean;
|
|
26
|
+
};
|
|
21
27
|
}>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { INPUT_METHOD } from '@atlaskit/editor-common/analytics';
|
|
2
|
-
import type { EditorCommand, NextEditorPlugin, OptionalPlugin } from '@atlaskit/editor-common/types';
|
|
2
|
+
import type { EditorCommand, NextEditorPlugin, OptionalPlugin, TypeAheadHandler } from '@atlaskit/editor-common/types';
|
|
3
3
|
import type { AnalyticsPlugin } from '@atlaskit/editor-plugin-analytics';
|
|
4
|
-
import type { TypeAheadPlugin } from '@atlaskit/editor-plugin-type-ahead';
|
|
4
|
+
import type { TypeAheadInputMethod, TypeAheadPlugin } from '@atlaskit/editor-plugin-type-ahead';
|
|
5
5
|
import type { EmojiDescription, EmojiId, EmojiProvider, EmojiResourceConfig } from '@atlaskit/emoji';
|
|
6
6
|
export interface EmojiPluginOptions {
|
|
7
7
|
headless?: boolean;
|
|
@@ -11,14 +11,20 @@ export type EmojiPluginState = {
|
|
|
11
11
|
emojiResourceConfig?: EmojiResourceConfig;
|
|
12
12
|
asciiMap?: Map<string, EmojiDescription>;
|
|
13
13
|
};
|
|
14
|
+
export type EmojiPluginSharedState = EmojiPluginState & {
|
|
15
|
+
typeAheadHandler: TypeAheadHandler;
|
|
16
|
+
};
|
|
14
17
|
export type EmojiPlugin = NextEditorPlugin<'emoji', {
|
|
15
18
|
pluginConfiguration: EmojiPluginOptions | undefined;
|
|
16
19
|
dependencies: [
|
|
17
20
|
OptionalPlugin<AnalyticsPlugin>,
|
|
18
21
|
TypeAheadPlugin
|
|
19
22
|
];
|
|
20
|
-
sharedState:
|
|
23
|
+
sharedState: EmojiPluginSharedState | undefined;
|
|
21
24
|
commands: {
|
|
22
25
|
insertEmoji: (emojiId: EmojiId, inputMethod?: INPUT_METHOD.PICKER | INPUT_METHOD.ASCII | INPUT_METHOD.TYPEAHEAD) => EditorCommand;
|
|
23
26
|
};
|
|
27
|
+
actions: {
|
|
28
|
+
openTypeAhead: (inputMethod: TypeAheadInputMethod) => boolean;
|
|
29
|
+
};
|
|
24
30
|
}>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-plugin-emoji",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Emoji plugin for @atlaskit/editor-core",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -21,9 +21,9 @@
|
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"@atlaskit/adf-schema": "^32.0.0",
|
|
24
|
-
"@atlaskit/editor-common": "^76.
|
|
24
|
+
"@atlaskit/editor-common": "^76.6.0",
|
|
25
25
|
"@atlaskit/editor-plugin-analytics": "^0.2.0",
|
|
26
|
-
"@atlaskit/editor-plugin-type-ahead": "^0.
|
|
26
|
+
"@atlaskit/editor-plugin-type-ahead": "^0.5.0",
|
|
27
27
|
"@atlaskit/editor-prosemirror": "1.1.0",
|
|
28
28
|
"@atlaskit/emoji": "^67.5.0",
|
|
29
29
|
"@atlaskit/prosemirror-input-rules": "^2.4.0",
|
package/report.api.md
CHANGED
|
@@ -24,6 +24,8 @@ import type { EmojiResourceConfig } from '@atlaskit/emoji';
|
|
|
24
24
|
import type { INPUT_METHOD } from '@atlaskit/editor-common/analytics';
|
|
25
25
|
import type { NextEditorPlugin } from '@atlaskit/editor-common/types';
|
|
26
26
|
import type { OptionalPlugin } from '@atlaskit/editor-common/types';
|
|
27
|
+
import type { TypeAheadHandler } from '@atlaskit/editor-common/types';
|
|
28
|
+
import type { TypeAheadInputMethod } from '@atlaskit/editor-plugin-type-ahead';
|
|
27
29
|
import type { TypeAheadPlugin } from '@atlaskit/editor-plugin-type-ahead';
|
|
28
30
|
|
|
29
31
|
// @public (undocumented)
|
|
@@ -32,7 +34,7 @@ export type EmojiPlugin = NextEditorPlugin<
|
|
|
32
34
|
{
|
|
33
35
|
pluginConfiguration: EmojiPluginOptions | undefined;
|
|
34
36
|
dependencies: [OptionalPlugin<AnalyticsPlugin>, TypeAheadPlugin];
|
|
35
|
-
sharedState:
|
|
37
|
+
sharedState: EmojiPluginSharedState | undefined;
|
|
36
38
|
commands: {
|
|
37
39
|
insertEmoji: (
|
|
38
40
|
emojiId: EmojiId,
|
|
@@ -42,6 +44,9 @@ export type EmojiPlugin = NextEditorPlugin<
|
|
|
42
44
|
| INPUT_METHOD.TYPEAHEAD,
|
|
43
45
|
) => EditorCommand;
|
|
44
46
|
};
|
|
47
|
+
actions: {
|
|
48
|
+
openTypeAhead: (inputMethod: TypeAheadInputMethod) => boolean;
|
|
49
|
+
};
|
|
45
50
|
}
|
|
46
51
|
>;
|
|
47
52
|
|
|
@@ -54,6 +59,11 @@ export interface EmojiPluginOptions {
|
|
|
54
59
|
headless?: boolean;
|
|
55
60
|
}
|
|
56
61
|
|
|
62
|
+
// @public (undocumented)
|
|
63
|
+
type EmojiPluginSharedState = EmojiPluginState & {
|
|
64
|
+
typeAheadHandler: TypeAheadHandler;
|
|
65
|
+
};
|
|
66
|
+
|
|
57
67
|
// @public (undocumented)
|
|
58
68
|
export type EmojiPluginState = {
|
|
59
69
|
emojiProvider?: EmojiProvider;
|
package/tmp/api-report-tmp.d.ts
CHANGED
|
@@ -13,16 +13,21 @@ import type { EmojiResourceConfig } from '@atlaskit/emoji';
|
|
|
13
13
|
import type { INPUT_METHOD } from '@atlaskit/editor-common/analytics';
|
|
14
14
|
import type { NextEditorPlugin } from '@atlaskit/editor-common/types';
|
|
15
15
|
import type { OptionalPlugin } from '@atlaskit/editor-common/types';
|
|
16
|
+
import type { TypeAheadHandler } from '@atlaskit/editor-common/types';
|
|
17
|
+
import type { TypeAheadInputMethod } from '@atlaskit/editor-plugin-type-ahead';
|
|
16
18
|
import type { TypeAheadPlugin } from '@atlaskit/editor-plugin-type-ahead';
|
|
17
19
|
|
|
18
20
|
// @public (undocumented)
|
|
19
21
|
export type EmojiPlugin = NextEditorPlugin<'emoji', {
|
|
20
22
|
pluginConfiguration: EmojiPluginOptions | undefined;
|
|
21
23
|
dependencies: [OptionalPlugin<AnalyticsPlugin>, TypeAheadPlugin];
|
|
22
|
-
sharedState:
|
|
24
|
+
sharedState: EmojiPluginSharedState | undefined;
|
|
23
25
|
commands: {
|
|
24
26
|
insertEmoji: (emojiId: EmojiId, inputMethod?: INPUT_METHOD.ASCII | INPUT_METHOD.PICKER | INPUT_METHOD.TYPEAHEAD) => EditorCommand;
|
|
25
27
|
};
|
|
28
|
+
actions: {
|
|
29
|
+
openTypeAhead: (inputMethod: TypeAheadInputMethod) => boolean;
|
|
30
|
+
};
|
|
26
31
|
}>;
|
|
27
32
|
|
|
28
33
|
// @public
|
|
@@ -34,6 +39,11 @@ export interface EmojiPluginOptions {
|
|
|
34
39
|
headless?: boolean;
|
|
35
40
|
}
|
|
36
41
|
|
|
42
|
+
// @public (undocumented)
|
|
43
|
+
type EmojiPluginSharedState = EmojiPluginState & {
|
|
44
|
+
typeAheadHandler: TypeAheadHandler;
|
|
45
|
+
};
|
|
46
|
+
|
|
37
47
|
// @public (undocumented)
|
|
38
48
|
export type EmojiPluginState = {
|
|
39
49
|
emojiProvider?: EmojiProvider;
|