jodit-pro
Version:
PRO Version of Jodit Editor
8 lines (7 loc) • 3.1 kB
JavaScript
var u=Object.defineProperty;var p=(i,t)=>u(i,"name",{value:t,configurable:!0});var a,b=function(i,t,e,o){var s=arguments.length,r=s<3?t:o===null?o=Object.getOwnPropertyDescriptor(t,e):o,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(i,t,e,o);else for(var f=i.length-1;f>=0;f--)(n=i[f])&&(r=(s<3?n(r):s>3?n(t,e,r):n(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},l;import{autobind as c,component as m}from"jodit/esm/core/decorators/index.js";import{assert as h}from"jodit/esm/core/helpers/utils/assert.js";import{UIElement as w,UIGroup as S}from"jodit/esm/core/ui/index.js";import x from"../../assets/styles.json.js";import{UIGButton as v}from"../button/button.js";import{UIFormButtonGenerator as g}from"../form/form.js";import{UIPreviewButtonGenerator as y}from"../preview/preview.js";let d=l=(a=class extends w{className(){return"UIButtonGenerator"}render(){return`<div>
<div class='&__generator'>
<div class='&__preview'></div>
<div class='&__form'></div>
</div>
<div class='&__library'></div>
</div>`}constructor(t){super(t),this.state={text:"",className:"",href:"",bgEnd:"#5cbf2a",bgStart:"#44c767",borderColor:"#18ab29",borderRadius:28,borderSize:1,boxShadow:!1,boxShadowBlurRadius:0,boxShadowColor:"#3dc21b",boxShadowInset:!1,boxShadowOffsetX:0,boxShadowOffsetY:0,boxShadowSpreadRadius:0,fontColor:"#fff",fontFamily:"Arial",fontSize:17,fontStyle:!1,fontWeight:!1,fontItalic:!1,paddingX:31,paddingY:16,previewBgColor:"#f5f5f5",solid:!0,textShadow:!0,textShadowBlurRadius:0,textShadowColor:"#2f6627",textShadowOffsetX:0,textShadowOffsetY:1},this.preview=new y(this.j,this.state,this.updateState),this.form=new g(this.j,this.state,this.updateState),this.generateLibrary();const e=this.getElm("preview");h(e!=null,"preview element does not exists"),e.appendChild(this.preview.container);const o=this.getElm("form");h(o!=null,"form element does not exists"),o.appendChild(this.form.container)}generateLibrary(){const t=new S(this.j);x.map(l.mapKey).forEach(o=>{const s=new v(this.j,o);s.setMod("mode","library"),t.append(s),this.j.e.on(s.container,"click",()=>{const{text:r}=this.state;Object.assign(this.state,o),Object.assign(this.state,{className:"",text:r}),this.update()})});const e=this.getElm("library");h(e!=null,"library element does not exists"),e.appendChild(t.container)}static mapKey(t){return{bgEnd:t.be,bgStart:t.bs,borderColor:t.bc,borderRadius:t.br,borderSize:t.bse,boxShadow:t.bsh,boxShadowBlurRadius:t.bsbr,boxShadowColor:t.bsc,boxShadowInset:t.bsi,boxShadowOffsetX:t.bsox,boxShadowOffsetY:t.bsoy,boxShadowSpreadRadius:t.bssr,fontColor:t.fc,fontFamily:t.ff,fontSize:t.fs,fontStyle:t.fse,fontWeight:t.fw,paddingX:t.px,paddingY:t.py,previewBgColor:t.pbc,solid:t.s,text:t.t,textShadow:t.ts,textShadowBlurRadius:t.tsbr,textShadowColor:t.tsc,textShadowOffsetX:t.tsox,textShadowOffsetY:t.tsoy}}updateState(t,e){this.state[t]=e,this.update()}update(){this.isReady&&(this.form.update(),this.preview.update())}},p(a,"UIButtonGenerator"),a);b([c],d.prototype,"updateState",null),d=l=b([m],d);export{d as UIButtonGenerator};