forked from sirap-group/tinymce-plugin-paginate
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathplugin.min.js
1 lines (1 loc) · 11.7 KB
/
plugin.min.js
1
!function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c?c:a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b,c){"use strict";a("./src/main")},{"./src/main":7}],2:[function(a,b,c){"use strict";function d(a){this._testDPIElement=null,this.document=a,this._setScreenDPI()}var e=function(){this._testDPIElement=$("<div/>").attr("id","dpi-test").css({position:"absolute",top:"-100%",left:"-100%",height:"1in",width:"1in",border:"red 1px solid"}),$("body").prepend(this._testDPIElement)};d.prototype._setScreenDPI=function(){if(e.call(this),this._testDPIElement[0].offsetWidth!==this._testDPIElement[0].offsetHeight)throw new Error("FATAL ERROR: Bad Screen DPI !");this.screenDPI=this._testDPIElement[0].offsetWidth},d.prototype.height=function(a){if(!a)throw new Error("Explicit unit for getting document height is required");var b=$("body",this.document).height();return"px"===a?b:"mm"===a?this.px2mm(b):void 0},d.prototype.px2mm=function(a){if(!this.screenDPI)throw new Error("Screen DPI is not defined. Is Display object instantied ?");return 25.4*a/this.screenDPI},d.prototype.mm2px=function(a){if(!this.screenDPI)throw new Error("Screen DPI is not defined. Is Display object instantied ?");return a*this.screenDPI/25.4},b.exports=d},{}],3:[function(a,b,c){"use strict";function d(a,b,c,d){this._content=null,this.rank=null,this.format(a),this.orientate(b),void 0!==c&&(this.rank=c),(void 0!==d||null!==d)&&this.content(d)}var e=a("../utils/page-formats"),f=function(){function a(a){this.name="InvalidOrientationLabelError",this.message=a+" is an invalid orientation label !",this.stack=(new Error).stack}return a.prototype=Error.prototype,a.prototype.name="InvalidOrientationLabelError",a}();d.prototype.content=function(a){return void 0===a?this._content:void(this._content=a)},d.prototype.append=function(a){return $(a).appendTo(this.content()),this},d.prototype.prepend=function(a){return $(a).prependTo(this.content()),this},d.prototype.orientate=function(a){var b="string"!=typeof a,c="portrait"!==a.toLowerCase()&&"paysage"!==a.toLowerCase();if(b||c)throw new f(a);this.orientation=a,"portrait"===a?(this.width=this.format()["short"],this.height=this.format()["long"]):(this.width=this.format()["long"],this.height=this.format()["short"])},d.prototype.format=function(a){if(void 0!==a){if(!e[a])throw new Error("Format "+a+" is not supported yet.");return this._format=e[a],this}return this._format},d.prototype.getContentHeight=function(){var a=$(this.content()).css("height"),b=a.split("px").join("");return Number(b)},b.exports=d},{"../utils/page-formats":8}],4:[function(a,b,c){"use strict";function d(a,b,c){this._currentPage=null,this._pages=[],this._editor=c,this._document=c.getDoc(),this._display=new e(this._document),this._defaultPage=new f(a,b),this._body=this._document.getElementsByTagName("body")}var e=a("./Display"),f=a("./Page"),g=(a("./paginator/parser"),a("./paginator/errors")),h=g.InvalidPageRankError,i=g.InvalidFocusedRangeError,j=g.InvalidPageHeightError,k=g.InvalidCursorPosition;d.prototype.destroy=function(){this._pages=null,this._currentPage=null,this._editor=null,this._document=null,this._display=null,this._defaultPage=null,this._body=null},d.prototype.CURSOR_POSITION={ORIGIN:"ORIGIN",END:"END"},d.prototype.init=function(){function a(){return $("div[data-paginator-page-rank]",b._body)}var b=this,c=a(),d=p.call(this,1);c.length||($(this._body).wrapInner(d),this._editor.save(),c=a()),this._pages=[],$.each(c,function(a,c){b._pages.push(new f(b._defaultPage.format().label,b._defaultPage.orientation,a+1,c))})},d.prototype.getCurrentPage=function(){return this._currentPage},d.prototype.getPage=function(a){try{a=Number(a)}catch(b){throw new h(a)}if(!this._pages.length)throw new Error("Paginator pages length in null. Can't iterate on it.");var c,d=0>a-1,e=a-1>this._pages.length;if(d||e)throw new h(a);return $.each(this._pages,function(b,d){d.rank===a&&(c=d)}),c},d.prototype.getPages=function(){return this._pages},d.prototype.getPrevious=function(){try{return this.getPage(this.getCurrentPage().rank-1)}catch(a){return null}},d.prototype.getNext=function(){try{return this.getPage(this.getCurrentPage().rank+1)}catch(a){return null}},d.prototype.gotoPage=function(a,b){function c(){function b(a,c,d){var e=a.childNodes;if(c=c?c:3,d=d?d:[],a.nodeType===c&&d.push(a),e)for(var f=0;f<e.length;f++)d=b(e[f],c,d);return d}var c,d,e,f,h;c=a.content(),d=c.length?c[0].lastChild:c.lastChild,d?(e=b(d),e.length?(f=e[e.length-1],h=f.textContent.length):(f=d,h=0)):(f=c,h=0),g._editor.selection.setCursorLocation(f,h)}function d(){var b,c;b=a.content(),c=b.firstChild,g._editor.selection.setCursorLocation(c,0)}function e(a){g._editor.selection.setCursorLocation(a,0)}var f,g=this,h=this.getPage(a.rank).content(),i=this._currentPage;if(i&&(f=this.getPage(i.rank).content()),!a)throw new Error("Cant navigate to undefined page");if(a!==i){if($.each(this.getPages(),function(b,c){c.rank===a.rank?$(h).css({display:"block"}):i&&c.rank===i.rank?$(f).css({display:"none"}):$(g.getPage(c.rank).content()).css({display:"none"})}),"object"==typeof b)console.info("focus to node",b),e(b);else if(b===this.CURSOR_POSITION.ORIGIN)console.info("focus to top"),d();else if(b===this.CURSOR_POSITION.END)console.info("focus to bottom"),c();else{if(void 0!==b)throw console.error("InvalidCursorPosition"),new k(b);console.error("no valid cursor position"),console.log(b)}this._editor.focus(),this._currentPage=a,this._editor.dom.fire(this._editor.getDoc(),"PageChange",{fromPage:i,toPage:a,timestamp:(new Date).getTime()})}},d.prototype.gotoFocusedPage=function(){var a,b;try{var c;b=l.call(this),c=$(b).attr("data-paginator-page-rank"),a=this.getPage(c)}catch(d){a=this.getPage(1),b=a.content(),this._editor.selection.select(b,!0)}finally{this.gotoPage(a,this.CURSOR_POSITION.END)}},d.prototype.gotoPrevious=function(a){var b=this.getPrevious();return a=a||this.CURSOR_POSITION.END,b?this.gotoPage(b,a):null},d.prototype.gotoNext=function(a){var b=this.getNext();return a=a||this.CURSOR_POSITION.END,b?this.gotoPage(b,a):null},d.prototype.watchPage=function(){var a,b,c,d,e=-1;do{if(c&&(d=c),e++,c=null,a=o.call(this),b=this.getCurrentPage().getContentHeight(),0===b)throw new j(b);b>a&&(c=m.call(this))}while(c);e&&this.gotoNext(d)};var l=function(){var a,b,c,d=this._editor.selection.getRng();if(b=d.startContainer,c=$(b).closest('div[data-paginator="true"]'),!c.length)throw new i;return a=c[0]},m=function(){console.info("repaging...");var a=(this._editor.selection.getRng(),$(this._currentPage.content()).children()),b=a[a.length-1],c=this.getNext()||q.call(this);switch(b.nodeName){case"DIV":case"P":$(b).prependTo($(c.content())),$(c.content()).appendTo(this._body);break;default:throw window.alert("Une erreur est survenue dans le plugin de pagination. Merci de visionner l'erreur dans la console et de déclarer cette erreur au support «[email protected]»"),new Error("Unsupported block type for repaging: "+b.nodeName)}return b},n=function(){var a=this;return{top:$(a._body).css("padding-top"),right:$(a._body).css("padding-right"),bottom:$(a._body).css("padding-bottom"),left:$(a._body).css("padding-left")}},o=function(){var a=Number(this._display.mm2px(this._defaultPage.height)),b=n.call(this),c=Number(b.top.split("px").join("")),d=Number(b.bottom.split("px").join("")),e=a-c-d;return Math.ceil(e-1)},p=function(a){var b=this;return $("<div>").attr({"data-paginator":!0,"data-paginator-page-rank":a}).css({"page-break-after":"always","min-height":o.call(b),background:"linear-gradient(#FFF0F5,#FFFACD)"})},q=function(a){var b,c=this._currentPage?this._currentPage.rank+1:1,d=p.call(this,c);return a&&$(a).appendTo(d),b=new f(this._defaultPage.format().label,this._defaultPage.orientation,c,d[0]),this._pages.push(b),b};c=b.exports=d,c.errors=g},{"./Display":2,"./Page":3,"./paginator/errors":5,"./paginator/parser":6}],5:[function(a,b,c){"use strict";function d(a){this.name="InvalidPageRankError",this.message=a+" is an invalid page rank",this.stack=(new Error).stack}function e(){this.name="InvalidFocusedRangeError",this.message="The text cursor if out of any page.",this.stack=(new Error).stack}function f(a){this.name="InvalidPageHeightError",this.message=a+"px is an invalid page height.",this.stack=(new Error).stack}function g(a){this.name="InvalidCursorPosition",this.message=a+"is an invalid cursor position.",this.stack=(new Error).stack}d.prototype=Error.prototype,d.prototype.name="InvalidPageRankError",e.prototype=Error.prototype,e.prototype.name="InvalidFocusedRangeError",f.prototype=Error.prototype,f.prototype.name="InvalidPageHeightError",g.prototype=Error.prototype,g.prototype.name="InvalidCursorPosition",b.exports={InvalidPageRankError:d,InvalidFocusedRangeError:e,InvalidPageHeightError:f,InvalidCursorPosition:g}},{}],6:[function(a,b,c){"use strict";b.exports={}},{}],7:[function(a,b,c){"use strict";function d(a){function b(b){f.updatePageRankInput(b.toPage.rank),a.nodeChanged()}function c(a){f.removeNavigationButtons(),d.destroy(),h=0,g=!1}var d,g=!1,h=0,i=!1;this.disableWatchPage=function(){i=!1},this.enableWatchPage=function(){i=!0},this.getCurrentPage=function(){return d.getCurrentPage()},a.once("init",function(){d=new e("A4","portrait",a),a.dom.bind(a.getDoc(),"PageChange",b),setTimeout(function(){d.init(),d.gotoFocusedPage(),g=!0,i=!0,f.appendNavigationButtons(d)},500)}),a.on("remove",c),a.on("change",function(a){g&&i&&d.watchPage()}),a.on("SetContent",function(){}),a.on("NodeChange",function(a){if(a.element&&$(a.element).attr("data-paginator")&&g&&i)try{d.gotoFocusedPage()}catch(b){console.info("Can't go to focused page now."),console.error(b.stack)}})}var e=a("./classes/Paginator"),f=a("./utils/ui");e.errors.InvalidPageHeightError;tinymce.PluginManager.add("paginate",d)},{"./classes/Paginator":4,"./utils/ui":9}],8:[function(a,b,c){"use strict";function d(a,b,c){this.label=a,this["long"]=b,this["short"]=c}var e={A4:{"long":"297","short":"210"}},f=[];$.each(e,function(a,b){f[a]=new d(a,b["long"],b["short"])}),b.exports=f},{}],9:[function(a,b,c){"use strict";c.appendNavigationButtons=function(b){function c(c){var d,e=c.target.valueAsNumber,f=b.getCurrentPage().rank;if(e!==f)try{d=b.getPage(e),b.gotoPage(d)}catch(g){if(!(g instanceof a("../classes/paginator/errors").InvalidPageRankError))throw g;window.alert("Il n'y a pas de page #"+e),console.log($(this)),$(this).val(f)}}var d,e={},f=$("body"),g="<a></a>",h="btn glyphicon",i={background:"whitesmoke",width:"100%",top:"0"};d=$("<div></div>").attr("id","paginator-navbar").css({width:"60px",position:"absolute",top:window.screen.height/2-35+"px",right:"40px","z-index":"999"}).appendTo(f),e.btnPrevious=$(g).attr("href","#").attr("title","Previous page").css($.extend(i,{"border-top-left-radius":"25%","border-top-right-radius":"25%","border-bottom-left-radius":"0","border-bottom-right-radius":"0"})).addClass(h+" glyphicon-chevron-up").click(function(){return b.gotoPrevious(),!1}).appendTo(d),e.inputRank=$("<input></input>").attr("type","number").attr("id","input-rank").css({width:"100%","line-height":"30px","text-align":"center"}).change(c).appendTo(d),setTimeout(function(){e.inputRank.val(b.getCurrentPage().rank)},500),e.btnNext=$(g).attr("href","#").attr("title","Next page").css($.extend(i,{width:"100%","border-top-left-radius":"0","border-top-right-radius":"0","border-bottom-left-radius":"25%","border-bottom-right-radius":"25%"})).addClass(h+" glyphicon-chevron-down").click(function(){return b.gotoNext(),!1}).appendTo(d)},c.removeNavigationButtons=function(){$("#paginator-navbar").remove()},c.updatePageRankInput=function(a){$("#input-rank").val(a)}},{"../classes/paginator/errors":5}]},{},[1]);