UNPKG

@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) 1.83 kB
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(require("froala-editor")):"function"==typeof define&&define.amd?define(["froala-editor"],e):e(t.FroalaEditor)}(this,function(u){"use strict";u=u&&u.hasOwnProperty("default")?u.default:u,Object.assign(u.DEFAULTS,{charCounterMax:-1,charCounterCount:!0}),u.PLUGINS.charCounter=function(n){var e,r=n.$,o=function(){return(n.el.textContent||"").replace(/\u200B/g,"").length};function t(t){var e;return n.opts.charCounterMax<0||o()<n.opts.charCounterMax||(e=t.which,!(!n.keys.ctrlKey(t)&&n.keys.isCharacter(e)||e===u.KEYCODE.IME))||(t.preventDefault(),t.stopPropagation(),n.events.trigger("charCounter.exceeded"),!1)}function a(t){return n.opts.charCounterMax<0||r("<div>").html(t).text().length+o()<=n.opts.charCounterMax?t:(n.events.trigger("charCounter.exceeded"),"")}function c(){var t;n.opts.charCounterCount&&(t=o()+(0<n.opts.charCounterMax?"/"+n.opts.charCounterMax:""),e.text("".concat(n.language.translate("Characters")," : ").concat(t)),n.opts.toolbarBottom&&e.css("margin-bottom",n.$tb.outerHeight(!0)),0<=(t=n.$wp.get(0).offsetWidth-n.$wp.get(0).clientWidth))&&("rtl"==n.opts.direction?e.css("margin-left",t):e.css("margin-right",t))}return{_init:function(){return!!n.$wp&&!!n.opts.charCounterCount&&((e=r(document.createElement("span")).attr("class","fr-counter")).css("bottom",n.$wp.css("border-bottom-width")),(n.$second_tb||n.$wp).append(e),n.events.on("keydown",t,!0),n.events.on("paste.afterCleanup",a),n.events.on("keyup contentChanged input",function(){n.events.trigger("charCounter.update")}),n.events.on("charCounter.update",c),n.events.trigger("charCounter.update"),void n.events.on("destroy",function(){r(n.o_win).off("resize.char".concat(n.id)),e.removeData().remove(),e=null}))},count:o}}}); //# sourceMappingURL=char_counter.min.js.map