@atlaskit/editor-core
Version:
A package contains Atlassian editor core functionality
42 lines • 2.5 kB
JavaScript
import * as React from 'react';
import { WithProviders } from '../../../providerFactory/withProviders';
import { createPlugin } from '../../../plugins/emojis';
import inputRulePlugin from '../../../plugins/emojis/input-rules';
import keymap from '../../../plugins/emojis/keymap';
import { inputRulePlugin as asciiInputRulePlugin } from '../../../plugins/emojis/ascii-input-rules';
import { emoji } from '../../../schema/nodes/emoji';
import { emojiQuery } from '../../../schema/marks/emoji-query';
import pluginKey from '../../../plugins/emojis/plugin-key';
import ToolbarEmojiPicker from '../../../ui/ToolbarEmojiPicker';
import EmojiTypeAhead from '../../../ui/EmojiTypeAhead';
var emojiPlugin = {
nodes: function () {
return [{ name: 'emoji', node: emoji, rank: 1600 }];
},
marks: function () {
return [{ name: 'emojiQuery', mark: emojiQuery, rank: 1600 }];
},
pmPlugins: function () {
return [
{ rank: 400, plugin: function (schema, props, dispatch, providerFactory) { return createPlugin(providerFactory); } },
{ rank: 410, plugin: function (schema) { return inputRulePlugin(schema); } },
{ rank: 420, plugin: function (schema) { return keymap(schema); } },
{ rank: 430, plugin: function (schema, props, dispatch, providerFactory) { return asciiInputRulePlugin(schema, providerFactory); } }
];
},
contentComponent: function (editorView, eventDispatcher, providerFactory) {
var renderNode = function (providers) {
return React.createElement(EmojiTypeAhead, { editorView: editorView, pluginKey: pluginKey, emojiProvider: providers.emojiProvider });
};
return (React.createElement(WithProviders, { providerFactory: providerFactory, providers: ['emojiProvider'], renderNode: renderNode }));
},
secondaryToolbarComponent: function (editorView, eventDispatcher, providerFactory) {
var renderNode = function (providers) {
// numFollowingButtons must be changed if buttons are added after ToolbarEmojiPicker to the message editor
return React.createElement(ToolbarEmojiPicker, { editorView: editorView, pluginKey: pluginKey, emojiProvider: providers.emojiProvider, numFollowingButtons: 2 });
};
return (React.createElement(WithProviders, { providerFactory: providerFactory, providers: ['emojiProvider'], renderNode: renderNode }));
},
};
export default emojiPlugin;
//# sourceMappingURL=index.js.map