@atlaskit/editor-core
Version:
A package contains Atlassian editor core functionality
44 lines • 2.71 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var React = require("react");
var withProviders_1 = require("../../../providerFactory/withProviders");
var emojis_1 = require("../../../plugins/emojis");
var input_rules_1 = require("../../../plugins/emojis/input-rules");
var keymap_1 = require("../../../plugins/emojis/keymap");
var ascii_input_rules_1 = require("../../../plugins/emojis/ascii-input-rules");
var emoji_1 = require("../../../schema/nodes/emoji");
var emoji_query_1 = require("../../../schema/marks/emoji-query");
var plugin_key_1 = require("../../../plugins/emojis/plugin-key");
var ToolbarEmojiPicker_1 = require("../../../ui/ToolbarEmojiPicker");
var EmojiTypeAhead_1 = require("../../../ui/EmojiTypeAhead");
var emojiPlugin = {
nodes: function () {
return [{ name: 'emoji', node: emoji_1.emoji, rank: 1600 }];
},
marks: function () {
return [{ name: 'emojiQuery', mark: emoji_query_1.emojiQuery, rank: 1600 }];
},
pmPlugins: function () {
return [
{ rank: 400, plugin: function (schema, props, dispatch, providerFactory) { return emojis_1.createPlugin(providerFactory); } },
{ rank: 410, plugin: function (schema) { return input_rules_1.default(schema); } },
{ rank: 420, plugin: function (schema) { return keymap_1.default(schema); } },
{ rank: 430, plugin: function (schema, props, dispatch, providerFactory) { return ascii_input_rules_1.inputRulePlugin(schema, providerFactory); } }
];
},
contentComponent: function (editorView, eventDispatcher, providerFactory) {
var renderNode = function (providers) {
return React.createElement(EmojiTypeAhead_1.default, { editorView: editorView, pluginKey: plugin_key_1.default, emojiProvider: providers.emojiProvider });
};
return (React.createElement(withProviders_1.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_1.default, { editorView: editorView, pluginKey: plugin_key_1.default, emojiProvider: providers.emojiProvider, numFollowingButtons: 2 });
};
return (React.createElement(withProviders_1.WithProviders, { providerFactory: providerFactory, providers: ['emojiProvider'], renderNode: renderNode }));
},
};
exports.default = emojiPlugin;
//# sourceMappingURL=index.js.map