@atlaskit/editor-core
Version:
A package contains Atlassian editor core functionality
36 lines • 1.91 kB
JavaScript
import * as React from 'react';
import { WithProviders } from '../../../providerFactory/withProviders';
import { createPlugin } from '../../../plugins/mentions';
import inputRulePlugin from '../../../plugins/mentions/input-rules';
import keymap from '../../../plugins/mentions/keymap';
import { mention } from '../../../schema/nodes/mention';
import { mentionQuery } from '../../../schema/marks/mention-query';
import pluginKey from '../../../plugins/mentions/plugin-key';
import ToolbarMention from '../../../ui/ToolbarMention';
import MentionPicker from '../../../ui/MentionPicker';
var mentionsPlugin = {
nodes: function () {
return [{ name: 'mention', node: mention, rank: 1200 }];
},
marks: function () {
return [{ name: 'mentionQuery', mark: mentionQuery, rank: 1200 }];
},
pmPlugins: function () {
return [
{ rank: 300, plugin: function (schema, props, dispatch, providerFactory) { return createPlugin(providerFactory); } },
{ rank: 310, plugin: function (schema) { return inputRulePlugin(schema); } },
{ rank: 320, plugin: function (schema) { return keymap(schema); } }
];
},
contentComponent: function (editorView, eventDispatcher, providerFactory) {
var renderNode = function (providers) {
return React.createElement(MentionPicker, { editorView: editorView, pluginKey: pluginKey, mentionProvider: providers.mentionProvider, presenceProvider: providers.presenceProvider });
};
return (React.createElement(WithProviders, { providerFactory: providerFactory, providers: ['mentionProvider', 'presenceProvider'], renderNode: renderNode }));
},
secondaryToolbarComponent: function (editorView) {
return React.createElement(ToolbarMention, { editorView: editorView, pluginKey: pluginKey });
}
};
export default mentionsPlugin;
//# sourceMappingURL=index.js.map