@firestitch/froala
Version:
The next generation Javascript WYSIWYG HTML rich text editor made by devs for devs. High performance and modern design make it easy to use for developers and loved by users.
3 lines (2 loc) • 2.05 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("froala-editor")):"function"==typeof define&&define.amd?define(["froala-editor"],t):t(e.FroalaEditor)}(this,function(e){"use strict";(e=e&&e.hasOwnProperty("default")?e.default:e).PLUGINS.quote=function(a){var r=a.$;function c(){for(var e=a.selection.blocks(),t=0;t<e.length;t++)e[t]=function(e){for(;e.parentNode&&e.parentNode!=a.el;)e=e.parentNode;return e}(e[t]);a.selection.save();var n=r(document.createElement("blockquote"));for(n.insertBefore(e[0]),t=0;t<e.length;t++)n.append(e[t]);a.opts.trackChangesEnabled&&a.track_changes.addQuote(n),a.html.unwrap(),a.selection.restore()}return{apply:function(e){if(a.selection.save(),a.html.wrap(!0,!0,!0,!0),a.selection.restore(),"increase"==e)c();else if("decrease"==e){for(var t=a.opts.trackChangesEnabled,n=a.selection.blocks(),o=0;o<n.length;o++)"BLOCKQUOTE"!=n[o].tagName&&(n[o]=t&&r(n[o]).parentsUntil(a.$el,"[data-track-id^=pending]").get(0)||r(n[o]).parentsUntil(a.$el,"BLOCKQUOTE").get(0));for(a.selection.save(),o=0;o<n.length;o++)n[o]&&(t?a.track_changes.removeQuote(r(n[o]),o):r(n[o]).replaceWith(n[o].innerHTML));a.html.unwrap(),a.selection.restore()}}}},e.RegisterShortcut(e.KEYCODE.SINGLE_QUOTE,"quote","increase","'"),e.RegisterShortcut(e.KEYCODE.SINGLE_QUOTE,"quote","decrease","'",!0),e.RegisterCommand("quote",{title:"Quote",type:"dropdown",html:function(){var e,t,n='<ul class="fr-dropdown-list" role="presentation">',o={increase:"Increase",decrease:"Decrease"};for(e in o)o.hasOwnProperty(e)&&(t=this.shortcuts.get("quote.".concat(e)),n+='<li role="presentation"><a class="fr-command fr-active '.concat(e,'" tabIndex="-1" role="option" data-cmd="quote" data-param1="').concat(e,'" title="').concat(o[e],'">').concat(this.language.translate(o[e])).concat(t?'<span class="fr-shortcut">'.concat(t,"</span>"):"","</a></li>"));return n+="</ul>"},callback:function(e,t){this.quote.apply(t)},plugin:"quote"}),e.DefineIcon("quote",{NAME:"quote-left",SVG_KEY:"blockquote"})});
//# sourceMappingURL=quote.min.js.map