jodit-pro
Version:
PRO Version of Jodit Editor
1 lines • 5.23 kB
JavaScript
"use strict";((e,t)=>{if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var o=t();for(var n in o)("object"==typeof exports?exports:e)[n]=o[n]}})(self,(function(){return(self.webpackChunkjodit_pro=self.webpackChunkjodit_pro||[]).push([[288],{78838(e,t,o){o.r(t),o.d(t,{tuneBlock(){return b}});var n=o(70655),i=o(43464),s=o(98422),r=o(66809),l=o(33993),c=o(96582),h=o(16892),u=o(75901);let p=class e extends l.u1{constructor(){super(...arguments),this.isShown=!1,this.toolbar=(0,u.R)(this.j,this),this.popup=new l.GI(this.j,!1)}className(){return"UITuner"}render(){return"<div>\n\t\t\t<div class='&__handle' title='~Click to tune~'/>\n\t\t</div>"}show(){const e=this.j.s.current();if(!e)return this.hide();const t=c.i.isBlock(e)?e:c.i.closest(e,(e=>!(!e||!this.j.o.tuneBlock.popup[e.nodeName.toLowerCase()])),this.j.editor);if(!t||t===this.j.editor||!this.j.o.tuneBlock.popup[t.tagName.toLowerCase()])return this.hide();this.currentBlock=t,this.isShown=!0,this.closeToolbar(),this.calcPosition(),this.container.parentNode||this.j.workplace.append(this.container)}hide(){this.isShown&&(this.isShown=!1,c.i.safeRemove(this.container),this.closeToolbar())}onEditorScroll(){this.isShown&&this.calcPosition()}calcPosition(){const e=(0,h.css)(this.j.editor,"marginLeft"),t=(0,h.css)(this.j.editor,"paddingLeft"),o=(0,h.css)(this.j.editor,"marginTop");(0,h.css)(this.container,{transform:`translate3d(${this.currentBlock.offsetWidth-15+e+t}px, ${this.currentBlock.offsetTop-this.j.editor.scrollTop+o}px, 0)`}),this.popup.isOpened&&this.popup.updatePosition()}onAfterExecTune(e){e&&(this.currentBlock=e),this.calcPosition(),this.openToolbar()}onClickPrevent(e){e.preventDefault(),e.stopPropagation()}onTargetClick(){this.toggleToolbar()}openToolbar(){if(this.setMod("opened",!0),this.toolbar.build(this.j.o.tuneBlock.popup[this.currentBlock.tagName.toLowerCase()],this.currentBlock),this.popup.setContent(this.toolbar.container),!this.popup.isOpened){const e=this.getElm("handle");(0,h.assert)(null!=e,"Handle element does not exist"),this.popup.open((()=>(0,h.position)(e)))}}closeToolbar(){this.setMod("opened",!1),this.popup.close()}toggleToolbar(){this.getMod("opened")?this.closeToolbar():this.openToolbar()}};(0,n.gn)([(0,s.watch)(":hideTuner.tune")],p.prototype,"hide",null),(0,n.gn)([(0,s.watch)("j.editor:scroll"),(0,s.throttle)(10)],p.prototype,"onEditorScroll",null),(0,n.gn)([(0,s.watch)(":afterExecTune.tune"),(0,s.idle)()],p.prototype,"onAfterExecTune",null),(0,n.gn)([(0,s.watch)("container:click container:mousedown")],p.prototype,"onClickPrevent",null),(0,n.gn)([(0,s.watch)("handle:click")],p.prototype,"onTargetClick",null),(0,n.gn)([(0,s.watch)(":closeTuner.tune")],p.prototype,"closeToolbar",null),p=(0,n.gn)([s.component],p);var a=o(733);const d=["tune.up","tune.remove","tune.down"],f=["tune.h1","tune.h2","tune.h3","\n","tune.h4","tune.h5","tune.h6","\n",...d];function g(e){return{icon:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50"><text dominant-baseline="text-before-edge" style="font: 45px sans-serif" x="0" y="0">'+e.toUpperCase()+"</text></svg>",isActive(t,o,n){var i;return(null===(i=null==n?void 0:n.target)||void 0===i?void 0:i.tagName.toLowerCase())===e},exec(t,o){if(o){t.selection.save();const n=c.i.replace(o,e,t.createInside);t.selection.restore(),t.e.fire("synchro"),t.e.fire("afterExecTune.tune",n)}return!0}}}function w(e){const t=e?"previousSibling":"nextSibling";return{icon:e?"angle-up":"angle-down",isDisabled(e,o,n){var i;return!(null===(i=null==n?void 0:n.target)||void 0===i?void 0:i[t])},exec(o,n){const i=null==n?void 0:n[t];return n&&i&&(o.selection.save(),(0,h.call)(e?c.i.before:c.i.after,i,n),o.selection.restore()),o.e.fire("synchro"),o.e.fire("afterExecTune.tune"),!0}}}a.D.prototype.tuneBlock={popup:{p:d,table:d,img:d,blockquote:d,div:d,pre:["tune.editPre",...d],h1:f,h2:f,h3:f,h4:f,h5:f,h6:f}},a.D.prototype.controls.tune={h1:g("h1"),h2:g("h2"),h3:g("h3"),h4:g("h4"),h5:g("h5"),h6:g("h6"),up:w(!0),down:w(!1),editPre:{icon:"pencil",exec(e,t){e.e.fire("editPreInPasteCode",t)}},remove:{icon:"bin",exec(e,t){c.i.safeRemove(t),e.e.fire("synchro"),e.e.fire("closeTuner.tune"),e.e.fire("hideTuner.tune")}}};class b extends i.S{constructor(){super(...arguments),this.requires=["license"]}afterInit(e){this.tuner=new p(e)}hideTuner(){this.tuner.hide()}onChangeSelection(){this.j.s.isCollapsed()||this.hideTuner()}onClickInBlock(e){this.j.s.isCollapsed()&&this.tuner.show()}beforeDestruct(e){this.tuner.destruct()}}(0,n.gn)([(0,s.watch)(":outsideClick :keydown")],b.prototype,"hideTuner",null),(0,n.gn)([(0,s.watch)("j.ed:selectionchange"),(0,s.debounce)()],b.prototype,"onChangeSelection",null),(0,n.gn)([(0,s.watch)(":click")],b.prototype,"onClickInBlock",null),r.Jodit.plugins.add("tune-block",b)},70655(e,t,o){function n(e,t,o,n){var i,s=arguments.length,r=3>s?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,o,n);else for(var l=e.length-1;l>=0;l--)(i=e[l])&&(r=(3>s?i(r):s>3?i(t,o,r):i(t,o))||r);return s>3&&r&&Object.defineProperty(t,o,r),r}o.d(t,{gn(){return n}})}},e=>e(e.s=78838)])}));