UNPKG

glassix-froala-editor-2.7.3

Version:

[![Build Status](https://travis-ci.com/froala-labs/froala-editor-js-2.svg?token=6qHm2TpvBKAAVFCrJa9X&branch=master)](https://travis-ci.com/froala-labs/froala-editor-js-2) [![npm](https://img.shields.io/npm/dm/froala-editor.svg)](https://www.npmjs.com/pack

7 lines (6 loc) 5.54 kB
/*! * froala_editor v2.7.3 (https://www.froala.com/wysiwyg-editor) * License https://froala.com/wysiwyg-editor/terms/ * Copyright 2014-2017 Froala Labs */ !function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof module&&module.exports?module.exports=function(b,c){return void 0===c&&(c="undefined"!=typeof window?require("jquery"):require("jquery")(b)),a(c)}:a(window.jQuery)}(function(a){a.extend(a.FE.DEFAULTS,{lineBreakerTags:["table","hr","form","dl","span.fr-video",".fr-embedly",".fr-img-caption"],lineBreakerOffset:15,lineBreakerHorizontalOffset:10}),a.FE.PLUGINS.lineBreaker=function(b){function c(a,c){var d,e,f,g,h,i,j,k;if(null==a)g=c.parent(),h=g.offset().top,j=c.offset().top,d=j-Math.min((j-h)/2,b.opts.lineBreakerOffset),f=g.outerWidth(),e=g.offset().left;else if(null==c)g=a.parent(),i=g.offset().top+g.outerHeight(),k=a.offset().top+a.outerHeight(),d=k+Math.min((i-k)/2,b.opts.lineBreakerOffset),f=g.outerWidth(),e=g.offset().left;else{g=a.parent();var l=a.offset().top+a.height(),m=c.offset().top;if(l>m)return!1;d=(l+m)/2,f=g.outerWidth(),e=g.offset().left}b.opts.iframe&&(e+=b.$iframe.offset().left-b.helpers.scrollLeft(),d+=b.$iframe.offset().top-b.helpers.scrollTop()),b.$box.append(r),r.css("top",d-b.win.pageYOffset),r.css("left",e-b.win.pageXOffset),r.css("width",f),r.data("tag1",a),r.data("tag2",c),r.addClass("fr-visible").data("instance",b)}function d(a,d){var f,g,h=a.offset().top,i=a.offset().top+a.outerHeight();if(Math.abs(i-d)<=b.opts.lineBreakerOffset||Math.abs(d-h)<=b.opts.lineBreakerOffset)if(Math.abs(i-d)<Math.abs(d-h)){g=a.get(0);for(var j=g.nextSibling;j&&j.nodeType==Node.TEXT_NODE&&0===j.textContent.length;)j=j.nextSibling;if(!j)return c(a,null),!0;if(f=e(j))return c(a,f),!0}else{if(g=a.get(0),!g.previousSibling)return c(null,a),!0;if(f=e(g.previousSibling))return c(f,a),!0}r.removeClass("fr-visible").removeData("instance")}function e(c){if(c){var d=a(c);if(0===b.$el.find(d).length)return null;if(c.nodeType!=Node.TEXT_NODE&&d.is(b.opts.lineBreakerTags.join(",")))return d;if(d.parents(b.opts.lineBreakerTags.join(",")).length>0)return c=d.parents(b.opts.lineBreakerTags.join(",")).get(0),0!==b.$el.find(c).length&&a(c).is(b.opts.lineBreakerTags.join(","))?a(c):null}return null}function f(a){if(void 0!==a.inFroalaWrapper)return a.inFroalaWrapper;for(var c=a;a.parentNode&&a.parentNode!==b.$wp.get(0);)a=a.parentNode;return c.inFroalaWrapper=a.parentNode==b.$wp.get(0),c.inFroalaWrapper}function g(a,c){var d=b.doc.elementFromPoint(a,c);return d&&!d.closest(".fr-line-breaker")&&!b.node.isElement(d)&&d!=b.$wp.get(0)&&f(d)?d:null}function h(a,c,d){for(var e=d,f=null;e<=b.opts.lineBreakerOffset&&!f;)f=g(a,c-e),f||(f=g(a,c+e)),e+=d;return f}function i(a,c,d){for(var e=null,f=100;!e&&a>b.$box.offset().left&&a<b.$box.offset().left+b.$box.outerWidth()&&f>0;)e=g(a,c),e||(e=h(a,c,5)),"left"==d?a-=b.opts.lineBreakerHorizontalOffset:a+=b.opts.lineBreakerHorizontalOffset,f-=b.opts.lineBreakerHorizontalOffset;return e}function j(a){t=null;var c=null,f=null,g=b.doc.elementFromPoint(a.pageX-b.win.pageXOffset,a.pageY-b.win.pageYOffset);g&&("HTML"==g.tagName||"BODY"==g.tagName||b.node.isElement(g)||(g.getAttribute("class")||"").indexOf("fr-line-breaker")>=0)?(f=h(a.pageX-b.win.pageXOffset,a.pageY-b.win.pageYOffset,1),f||(f=i(a.pageX-b.win.pageXOffset-b.opts.lineBreakerHorizontalOffset,a.pageY-b.win.pageYOffset,"left")),f||(f=i(a.pageX-b.win.pageXOffset+b.opts.lineBreakerHorizontalOffset,a.pageY-b.win.pageYOffset,"right")),c=e(f)):c=e(g),c?d(c,a.pageY):b.core.sameInstance(r)&&r.removeClass("fr-visible").removeData("instance")}function k(a){return!(r.hasClass("fr-visible")&&!b.core.sameInstance(r))&&(b.popups.areVisible()||b.el.querySelector(".fr-selected-cell")?(r.removeClass("fr-visible"),!0):void(!1!==s||b.edit.isDisabled()||(t&&clearTimeout(t),t=setTimeout(j,30,a))))}function l(){t&&clearTimeout(t),r.hasClass("fr-visible")&&r.removeClass("fr-visible").removeData("instance")}function m(){s=!0,l()}function n(){s=!1}function o(c){if(!b.core.sameInstance(r))return!0;c.preventDefault(),r.removeClass("fr-visible").removeData("instance");var d=r.data("tag1"),e=r.data("tag2"),f=b.html.defaultTag();null==d?f&&"TD"!=e.parent().get(0).tagName&&0===e.parents(f).length?e.before("<"+f+">"+a.FE.MARKERS+"<br></"+f+">"):e.before(a.FE.MARKERS+"<br>"):f&&"TD"!=d.parent().get(0).tagName&&0===d.parents(f).length?d.after("<"+f+">"+a.FE.MARKERS+"<br></"+f+">"):d.after(a.FE.MARKERS+"<br>"),b.selection.restore()}function p(){b.shared.$line_breaker||(b.shared.$line_breaker=a('<div class="fr-line-breaker"><a class="fr-floating-btn" role="button" tabIndex="-1" title="'+b.language.translate("Break")+'"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><rect x="21" y="11" width="2" height="8"/><rect x="14" y="17" width="7" height="2"/><path d="M14.000,14.000 L14.000,22.013 L9.000,18.031 L14.000,14.000 Z"/></svg></a></div>')),r=b.shared.$line_breaker,b.events.on("shared.destroy",function(){r.html("").removeData().remove(),r=null},!0),b.events.on("destroy",function(){r.removeData("instance").removeClass("fr-visible").appendTo("body:first"),clearTimeout(t)},!0),b.events.$on(r,"mousemove",function(a){a.stopPropagation()},!0),b.events.bindClick(r,"a",o)}function q(){if(!b.$wp)return!1;p(),s=!1,b.events.$on(b.$win,"mousemove",k),b.events.$on(a(b.win),"scroll",l),b.events.on("popups.show.table.edit",l),b.events.on("commands.after",l),b.events.$on(a(b.win),"mousedown",m),b.events.$on(a(b.win),"mouseup",n)}var r,s,t;return{_init:q}}});