| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 | (function(factory) {  if (typeof define === 'function' && define.amd) {    // AMD. Register as an anonymous module.    define(['jquery'], factory);  } else if (typeof module === 'object' && module.exports) {    // Node/CommonJS    module.exports = factory(require('jquery'));  } else {    // Browser globals    factory(window.jQuery);  }}(function($) {  // Extends plugins for adding hello.  //  - plugin is external module for customizing.  $.extend($.summernote.plugins, {    /**     * @param {Object} context - context object has status of editor.     */    'hello': function(context) {      var self = this;      // ui has renders to build ui elements.      //  - you can create a button with `ui.button`      var ui = $.summernote.ui;      // add hello button      context.memo('button.hello', function() {        // create button        var button = ui.button({          contents: '<i class="fa fa-child"/> Hello',          tooltip: 'hello',          click: function() {            self.$panel.show();            self.$panel.hide(500);            // invoke insertText method with 'hello' on editor module.            context.invoke('editor.insertText', 'hello');          },        });        // create jQuery object from button instance.        var $hello = button.render();        return $hello;      });      // This events will be attached when editor is initialized.      this.events = {        // This will be called after modules are initialized.        'summernote.init': function(we, e) {          // eslint-disable-next-line          console.log('summernote initialized', we, e);        },        // This will be called when user releases a key on editable.        'summernote.keyup': function(we, e) {          // eslint-disable-next-line          console.log('summernote keyup', we, e);        },      };      // This method will be called when editor is initialized by $('..').summernote();      // You can create elements for plugin      this.initialize = function() {        this.$panel = $('<div class="hello-panel"/>').css({          position: 'absolute',          width: 100,          height: 100,          left: '50%',          top: '50%',          background: 'red',        }).hide();        this.$panel.appendTo('body');      };      // This methods will be called when editor is destroyed by $('..').summernote('destroy');      // You should remove elements on `initialize`.      this.destroy = function() {        this.$panel.remove();        this.$panel = null;      };    },  });}));
 |