MediaWiki:Gadget-EmojiVE.js: Difference between revisions
Appearance
Cdjensen94 (talk | contribs) (Created page with "// MediaWiki:Gadget-EmojiVE.js — VisualEditor tool mw.loader.using(['ext.visualEditor.desktopArticleTarget.init']).then(async () => { // Load the picker module const { EmojiButton } = await import('https://cdn.jsdelivr.net/npm/@joeattardi/emoji-button@4.6.4/dist/index.js'); // Define a simple command that opens the picker and inserts the result function openEmojiPickerWithSurface(surface, anchorEl) { const picker = new EmojiButton({ showSearch: true, show...") |
Cdjensen94 (talk | contribs) |
||
| Line 1: | Line 1: | ||
/ | /* MediaWiki:Gadget-EmojiVE.js (ES5) */ | ||
mw.loader.using(['ext.visualEditor.desktopArticleTarget.init']). | mw.loader.using(['ext.visualEditor.desktopArticleTarget.init']).done(function () { | ||
var EmojiButton = window.EmojiButton; | |||
if (!EmojiButton) { mw.log.error('EmojiButton global missing (enable EmojiLib or include the UMD build)'); return; } | |||
function openPicker(surface, anchor) { | |||
function | var picker = new EmojiButton({ showSearch: true, showRecents: true }); | ||
picker.on('emoji', function (sel) { | |||
picker.on('emoji', sel | var fragment = surface.getModel().getFragment(); | ||
fragment.insertContent(sel.emoji); | fragment.insertContent(sel.emoji); | ||
surface.getView().focus(); | surface.getView().focus(); | ||
}); | }); | ||
picker.togglePicker( | picker.togglePicker(anchor); | ||
} | } | ||
function registerTool() { | function registerTool() { | ||
function EmojiTool() { | function EmojiTool() { EmojiTool.super.apply(this, arguments); } | ||
OO.inheritClass(EmojiTool, ve.ui.Tool); | OO.inheritClass(EmojiTool, ve.ui.Tool); | ||
EmojiTool.static.name = 'emojiButton'; | EmojiTool.static.name = 'emojiButton'; | ||
EmojiTool.static.group = 'insert'; | EmojiTool.static.group = 'insert'; | ||
EmojiTool.static.icon = 'smiley'; | EmojiTool.static.icon = 'smiley'; | ||
EmojiTool.static.title = 'Insert emoji'; | EmojiTool.static.title = 'Insert emoji'; | ||
EmojiTool.prototype.onSelect = function () { | EmojiTool.prototype.onSelect = function () { | ||
var surface = this.toolbar.getSurface(); | |||
openPicker(surface, this.$element[0]); | |||
this.setActive(false); | this.setActive(false); | ||
}; | }; | ||
| Line 39: | Line 34: | ||
} | } | ||
mw.hook('ve.activationComplete').add(function () { registerTool(); }); | |||
mw.hook('ve.activationComplete').add(() | |||
}); | }); | ||