jodit-pro
Version:
PRO Version of Jodit Editor
20 lines • 12.2 kB
JavaScript
/*!
* jodit-pro - PRO Version of Jodit Editor
* Author: Chupurnov Valerii <chupurnov@gmail.com>
* Version: v4.9.27
* Url: https://xdsoft.net/jodit/pro/
* License(s): SEE LICENSE IN LICENSE.md
*/
!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var a=e();for(var n in a)("object"==typeof exports?exports:t)[n]=a[n]}}(self,function(){return(self.webpackChunkjodit_pro=self.webpackChunkjodit_pro||[]).push([[954],{20104:function(t,e,a){"use strict";var n=a(74922),s=a.n(n),i=a(34575),o=a.n(i),r=a(6441),l=a(12153);r.Config.prototype.translate={hotkeys:{translateSelection:["ctrl+shift+o","cmd+shift+o"],translateOptions:["ctrl+shift+p","cmd+shift+p"]},provider:"google",googleProviderOptions:{url:"https://translation.googleapis.com/language/translate/v2",key:""},defaultSourceLang:"",defaultTargetLang:"de"},r.Config.prototype.controls.translate={translate:{tooltip:"Translate selected text",icon:"translate",command:"translate",exec(t){t.execCommand("translate")},list:["Options"],childExec(t,e,{control:a}){t.execCommand("translate"+a.name)},mods:{stroke:!1}}},l.Icon.set("translate",o()).set("translate-swap",s())},27834:function(t,e,a){"use strict";a.d(e,{GoogleTranslateProvider:function(){return r}});var n=a(82749),s=a(82758),i=a(38837),o=a(80942);class r{__fetch(t,e={}){let a=this.jodit.o.translate.googleProviderOptions;return(0,i.assert)(a,"Set googleProviderOptions"),this.jodit.fetch(a.url+"?key="+a.key,{method:"POST",data:{...e,ui:this.jodit.o.language},contentType:"application/json; charset=utf-8",withCredentials:!1}).then(t=>t.json()).catch(t=>{try{this.jodit.message.error(t.json().message)}catch(t){s.IS_PROD}})}translate(t,e,a){return this.__fetch("translate",{q:t,source:e,target:a,format:"html"}).then(t=>({text:t.data.translations[0].translatedText}))}supportedLanguages(){return Promise.resolve({langs:o.languages})}constructor(t){(0,n._)(this,"jodit",void 0),this.jodit=t}}},33124:function(t,e,a){"use strict";a.d(e,{UITranslateSettings:function(){return l}});var n=a(82749),s=a(31635),i=a(65478),o=a(67510),r=a(67082);class l extends o.UIElement{className(){return"UITranslateSettings"}render(){return`<div>
<div class='&__list &__source-list'></div>
<div class='&__arrow'>
<a class='&__arrow-swap'>*translate-swap*</a>
</div>
<div class='&__list &__target-list'></div>
</div>`}__onSwap(){let t=this.state.sourceLang;this.state.sourceLang=this.state.targetLang,this.state.targetLang=t,this.__sourceList.state.active=this.state.sourceLang,this.__targetList.state.active=this.state.targetLang,this.options.onChange({...this.state})}constructor(t,e,a){super(t),(0,n._)(this,"state",void 0),(0,n._)(this,"options",void 0),(0,n._)(this,"__sourceList",void 0),(0,n._)(this,"__targetList",void 0),this.state=e,this.options=a,this.__sourceList=new r.UITranslateList(t,{list:a.sourceList,active:e.sourceLang,onChange:t=>{this.state.sourceLang=t,this.options.onChange({...this.state})}}),this.getElm("source-list")?.appendChild(this.__sourceList.container),this.__targetList=new r.UITranslateList(t,{list:a.targetList,active:e.targetLang,onChange:t=>{this.state.targetLang=t,this.options.onChange({...this.state})}}),this.getElm("target-list")?.appendChild(this.__targetList.container)}}(0,s.__decorate)([(0,i.watch)("arrow-swap:click")],l.prototype,"__onSwap",null),l=(0,s.__decorate)([i.component],l)},34575:function(t){t.exports='<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"> <path d="M4.545 6.714 4.11 8H3l1.862-5h1.284L8 8H6.833l-.435-1.286H4.545zm1.634-.736L5.5 3.956h-.049l-.679 2.022H6.18z"/> <path d="M0 2a2 2 0 0 1 2-2h7a2 2 0 0 1 2 2v3h3a2 2 0 0 1 2 2v7a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-3H2a2 2 0 0 1-2-2V2zm2-1a1 1 0 0 0-1 1v7a1 1 0 0 0 1 1h7a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1H2zm7.138 9.995c.193.301.402.583.63.846-.748.575-1.673 1.001-2.768 1.292.178.217.451.635.555.867 1.125-.359 2.08-.844 2.886-1.494.777.665 1.739 1.165 2.93 1.472.133-.254.414-.673.629-.89-1.125-.253-2.057-.694-2.82-1.284.681-.747 1.222-1.651 1.621-2.757H14V8h-3v1.047h.765c-.318.844-.74 1.546-1.272 2.13a6.066 6.066 0 0 1-.415-.492 1.988 1.988 0 0 1-.94.31z"/> </svg>'},67082:function(t,e,a){"use strict";a.d(e,{UITranslateList:function(){return d}});var n=a(82749),s=a(31635),i=a(82758),o=a(65478),r=a(2748),l=a(21537),c=a(29960),h=a(48538),u=a(80256);class d extends h.UIElement{className(){return"UITranslateList"}get items(){return this.getElms("item")}render(t){let e=[];return Object.keys(t.list).sort().forEach(a=>{let n=t.list[a];e.push(`<a role='button' tabindex='0' class='&__item' data-lang='${n}'>
<span class='&__item-key'>${n}</span>
<span class='&__item-title'>${this.j.i18n(a)}</span>
</a>`)}),`<div class='&'>
<div class='&__input'></div>
<div class='&__list'>${e.join("")}</div>
</div>`}__onChangeFilter(t){this.items.forEach(e=>{let a=e.textContent?.toLowerCase()??"";(0,c.attr)(e,"data-hidden","true"!==(0,c.attr)(e,"data-active")&&!a.includes(t.toLowerCase()))})}__scrollToActive(){let t=this.container.querySelector('[data-active="true"]'),e=this.getElm("list");t&&e&&(0,l.scrollIntoViewIfNeeded)(t,e,this.j.od)}onClickItem(t){if("keydown"===t.type&&"key"in t&&t.key!==i.KEY_ENTER)return;let e=t.target;if(r.Dom.isHTMLElement(e)&&e.getAttribute("data-lang")){let t=(0,c.attr)(e,"data-lang");this.options.onChange(t),this.state.active=t}}__onActiveChange(){this.items.forEach(t=>(0,c.attr)(t,"data-active",(0,c.attr)(t,"data-lang")===this.state.active)),this.__scrollToActive()}constructor(t,e){super(t,e),(0,n._)(this,"options",void 0),(0,n._)(this,"state",void 0),this.options=e,this.state={active:""},this.state.active=e.active;const a=new u.UIInput(t,{placeholder:t.i18n("Filter"),icon:"search",onChange:this.__onChangeFilter,clearButton:!0});this.getElm("input")?.appendChild(a.container),this.__onActiveChange()}}(0,s.__decorate)([(0,o.debounce)()],d.prototype,"__onChangeFilter",null),(0,s.__decorate)([(0,o.watch)(":afterOpen")],d.prototype,"__scrollToActive",null),(0,s.__decorate)([(0,o.watch)(["container:click","container:keydown"])],d.prototype,"onClickItem",null),(0,s.__decorate)([(0,o.watch)("state.active"),(0,o.debounce)()],d.prototype,"__onActiveChange",null),d=(0,s.__decorate)([o.component],d)},73098:function(t,e,a){"use strict";a.r(e),a.d(e,{Translate:function(){return _}});var n=a(82749),s=a(31635);a(20104);var i=a(27834),o=a(33124),r=a(73534),l=a(65478),c=a(23282),h=a(70799),u=a(38837),d=a(96325),g=a(50911),p=a(10830),m=a(2692);class _ extends g.Plugin{__getProvider(){let{provider:t}=this.jodit.options.translate;if((0,h.isString)(t))if("google"===t)return new i.GoogleTranslateProvider(this.j);else throw Error("Unknown provider");return(0,u.assert)((0,c.isFunction)(t),"Provider must be a function"),t(this.jodit)}afterInit(t){let e=(0,d.defaultLanguage)(t.o.language,m.JoditPro.defaultOptions.language),a=(0,d.defaultLanguage)(t.o.language,e),n=this.__getProvider();t.registerCommand("translateOptions",{exec:async()=>{let e=this.state,a=t.dlg();a.setHeader("Translate options");let s=await n.supportedLanguages(),i=new o.UITranslateSettings(a,this.state,{sourceList:s.langs,targetList:s.langs,onChange(t){e=t}});a.setContent(i),a.setFooter([(0,p.Button)(t,"cancel","Cancel").onAction(()=>a.close()),(0,p.Button)(t,"ok","Save","primary").onAction(()=>{this.state=e,a.close()})]),i.bindDestruct(a),a.setSize(500,400).open(!0)},hotkeys:t.o.translate.hotkeys.translateOptions}).registerCommand("translate",{exec:()=>{let e=(0,r.getSelectionFragments)(t).filter(t=>t.text.trim().length>0);if(!e.length)return void t.message.error("Select text for translate");let s=this.state.sourceLang&&"auto"!==this.state.sourceLang?this.state.sourceLang:a,i=this.state.targetLang;return Promise.all(e.map(e=>{n.translate(e.text,s,i).then(t=>{e.replace(t.text)}).catch(e=>{t.message.error((0,h.isString)(e)?e:e.message)})})).then(()=>{t.synchronizeValues()})},hotkeys:t.o.translate.hotkeys.translateSelection})}beforeDestruct(t){}constructor(...t){super(...t),(0,n._)(this,"buttons",[{name:"translate.translate",group:"insert"}]),(0,n._)(this,"state",{sourceLang:this.jodit.o.translate.defaultSourceLang||"en",targetLang:this.jodit.o.translate.defaultTargetLang})}}(0,n._)(_,"requires",["license"]),(0,s.__decorate)([l.persistent],_.prototype,"state",void 0),m.JoditPro.plugins.add("translate",_)},73534:function(t,e,a){"use strict";a.d(e,{getSelectionFragments:function(){return s}});var n=a(2748);function s(t){let e=[],a=t.s.expandSelection().sel;if(!a||0===a.rangeCount||a.isCollapsed)return e;t.s.range.commonAncestorContainer.normalize();let s=t.s.range,{commonAncestorContainer:l,startContainer:c,endContainer:h,startOffset:u,endOffset:d}=s;if(c===h){if(n.Dom.isText(c))return[o(c,u,d)];if(d-u==1){let t=c.childNodes[u];return n.Dom.isText(t)?[o(t,0,t.nodeValue.length)]:[r(t)]}if(0===u&&c.childNodes.length===d)return[r(c)];for(let t=u;t<d;t++){let a=c.childNodes[t];n.Dom.isText(a)?e.push(o(a,0,a.nodeValue.length)):e.push(r(a))}return e}let g=new Set,p=t.ed.createTreeWalker(l,NodeFilter.SHOW_ALL,{acceptNode:t=>!s.intersectsNode(t)||n.Dom.closest(t,t=>t&&g.has(t),l)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}),m=p.nextNode();for(;m;){if(n.Dom.isElement(m)&&i(s,m))g.add(m),e.push(r(m));else if(n.Dom.isText(m)&&i(s,m))e.push(o(m,0,m.nodeValue.length));else if(n.Dom.isText(m)){let t=0,a=m.nodeValue.length;m===c&&(t=u),m===h&&(a=d),e.push(o(m,t,a))}m=p.nextNode()}return e}let i=(t,e)=>{let a=document.createRange();try{a.selectNodeContents(e)}catch{a.selectNode(e)}return 0>=t.compareBoundaryPoints(Range.START_TO_START,a)&&t.compareBoundaryPoints(Range.END_TO_END,a)>=0};function o(t,e,a){return{text:t.nodeValue.slice(e,a),replace(n){t.nodeValue=t.nodeValue.slice(0,e)+n+t.nodeValue.slice(a)}}}function r(t){return{text:t.innerHTML,replace(e){t.innerHTML=e}}}},74922:function(t){t.exports='<svg viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg"> <path d="M13.98 22L6 30l7.98 8v-6H28v-4H13.98v-6zM42 18l-7.98-8v6H20v4h14.02v6L42 18z"/> <path d="M0 0h48v48H0z" fill="none"/> </svg>'},80942:function(t,e,a){"use strict";a.d(e,{languages:function(){return n}});let n={Afrikaans:"af",Albanian:"sq",Amharic:"am",Arabic:"ar",Armenian:"hy","Assamese*":"as","Aymara*":"ay",Azerbaijani:"az","Bambara*":"bm",Basque:"eu",Belarusian:"be",Bengali:"bn","Bhojpuri*":"bho",Bosnian:"bs",Bulgarian:"bg",Catalan:"ca",Cebuano:"ceb","Chinese (Simplified)":"zh-CN","Chinese (Traditional)":"zh-TW",Corsican:"co",Croatian:"hr",Czech:"cs",Danish:"da","Dhivehi*":"dv","Dogri*":"doi",Dutch:"nl",English:"en",Esperanto:"eo",Estonian:"et","Ewe*":"ee","Filipino (Tagalog)":"fil",Finnish:"fi",French:"fr",Frisian:"fy",Galician:"gl",Georgian:"ka",German:"de",Greek:"el","Guarani*":"gn",Gujarati:"gu","Haitian Creole":"ht",Hausa:"ha",Hawaiian:"haw",Hebrew:"he",Hindi:"hi",Hmong:"hmn",Hungarian:"hu",Icelandic:"is",Igbo:"ig","Ilocano*":"ilo",Indonesian:"id",Irish:"ga",Italian:"it",Japanese:"ja",Kannada:"kn",Kazakh:"kk",Khmer:"km",Kinyarwanda:"rw","Konkani*":"gom",Korean:"ko","Krio*":"kri",Kurdish:"ku","Kurdish (Sorani)*":"ckb",Kyrgyz:"ky",Lao:"lo",Latin:"la",Latvian:"lv","Lingala*":"ln",Lithuanian:"lt","Luganda*":"lg",Luxembourgish:"lb",Macedonian:"mk","Maithili*":"mai",Malagasy:"mg",Malay:"ms",Malayalam:"ml",Maltese:"mt",Maori:"mi",Marathi:"mr","Meiteilon (Manipuri)*":"mni-Mtei",Mizo:"lus",Mongolian:"mn","Myanmar (Burmese)":"my",Nepali:"ne",Norwegian:"no","Nyanja (Chichewa)":"ny","Odia (Oriya)":"or","Oromo*":"om",Pashto:"ps",Persian:"fa",Polish:"pl",Portuguese:"pt",Punjabi:"pa","Quechua*":"qu",Romanian:"ro",Russian:"ru",Samoan:"sm","Sanskrit*":"sa","Scots Gaelic":"gd","Sepedi*":"nso",Serbian:"sr",Sesotho:"st",Shona:"sn",Sindhi:"sd","Sinhala (Sinhalese)":"si",Slovak:"sk",Slovenian:"sl",Somali:"so",Spanish:"es",Sundanese:"su",Swahili:"sw",Swedish:"sv","Tagalog (Filipino)":"tl",Tajik:"tg",Tamil:"ta",Tatar:"tt",Telugu:"te",Thai:"th","Tigrinya*":"ti","Tsonga*":"ts",Turkish:"tr",Turkmen:"tk","Twi (Akan)*":"ak",Ukrainian:"uk",Urdu:"ur",Uyghur:"ug",Uzbek:"uz",Vietnamese:"vi",Welsh:"cy",Xhosa:"xh",Yiddish:"yi",Yoruba:"yo",Zulu:"zu"}}},function(t){return t(t.s=73098)}])});