@lotte-innovate/ui-component-test 0.2.3 → 0.2.5
Sign up to get free protection for your applications and to get access to all the features.
- package/_virtual/index.mjs +1 -1
- package/_virtual/index13.mjs +1 -1
- package/_virtual/index15.mjs +1 -1
- package/_virtual/index17.mjs +1 -1
- package/_virtual/index19.mjs +1 -1
- package/_virtual/index2.mjs +1 -1
- package/_virtual/index21.mjs +2 -0
- package/_virtual/index21.mjs.map +1 -0
- package/_virtual/index22.mjs +2 -0
- package/_virtual/index22.mjs.map +1 -0
- package/_virtual/index3.mjs +1 -1
- package/_virtual/index5.mjs +1 -1
- package/_virtual/index7.mjs +1 -1
- package/_virtual/index9.mjs +1 -1
- package/_virtual/jsx-runtime.mjs +2 -0
- package/_virtual/jsx-runtime.mjs.map +1 -0
- package/_virtual/jsx-runtime2.mjs +2 -0
- package/_virtual/jsx-runtime2.mjs.map +1 -0
- package/_virtual/react-jsx-runtime.development.mjs +2 -0
- package/_virtual/react-jsx-runtime.development.mjs.map +1 -0
- package/_virtual/react-jsx-runtime.production.min.mjs +2 -0
- package/_virtual/react-jsx-runtime.production.min.mjs.map +1 -0
- package/_virtual/react.development.mjs +2 -0
- package/_virtual/react.development.mjs.map +1 -0
- package/_virtual/react.production.min.mjs +2 -0
- package/_virtual/react.production.min.mjs.map +1 -0
- package/dist/lib/components/Editor/index.mjs +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -2
- package/public/tinymce/icons/default/index.mjs +1 -1
- package/public/tinymce/models/dom/index.mjs +1 -1
- package/public/tinymce/plugins/advlist/index.mjs +1 -1
- package/public/tinymce/plugins/advlist/index.mjs.map +1 -1
- package/public/tinymce/plugins/advlist/plugin.mjs +1 -1
- package/public/tinymce/plugins/advlist/plugin.mjs.map +1 -1
- package/public/tinymce/plugins/code/index.mjs +1 -1
- package/public/tinymce/plugins/code/plugin.mjs +1 -1
- package/public/tinymce/plugins/codesample/index.mjs +1 -1
- package/public/tinymce/plugins/codesample/index.mjs.map +1 -1
- package/public/tinymce/plugins/codesample/plugin.mjs +1 -1
- package/public/tinymce/plugins/image/index.mjs +1 -1
- package/public/tinymce/plugins/image/index.mjs.map +1 -1
- package/public/tinymce/plugins/image/plugin.mjs +1 -1
- package/public/tinymce/plugins/image/plugin.mjs.map +1 -1
- package/public/tinymce/plugins/link/index.mjs +1 -1
- package/public/tinymce/plugins/link/index.mjs.map +1 -1
- package/public/tinymce/plugins/link/plugin.mjs +1 -1
- package/public/tinymce/plugins/lists/index.mjs +1 -1
- package/public/tinymce/plugins/lists/plugin.mjs +1 -1
- package/public/tinymce/plugins/table/index.mjs +1 -1
- package/public/tinymce/plugins/table/plugin.mjs +1 -1
- package/public/tinymce/themes/silver/index.mjs +1 -1
@@ -1,2 +1,2 @@
|
|
1
|
-
import{__exports as e}from"../../../../_virtual/plugin.mjs";var t;function a(){return t||(t=1,function(){var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=Object.getPrototypeOf,a=(e,t,a)=>{var i;return!!a(e,t.prototype)||(null===(i=e.constructor)||void 0===i?void 0:i.name)===t.name},i=e=>t=>(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&a(e,String,((e,t)=>t.isPrototypeOf(e)))?"string":t})(t)===e,o=e=>t=>typeof t===e,r=i("string"),s=i("object"),n=e=>((e,i)=>s(e)&&a(e,i,((e,a)=>t(e)===a)))(e,Object),l=i("array"),c=(m=null,e=>m===e);var m;const d=o("boolean"),g=e=>!(e=>null==e)(e),u=o("function"),p=o("number"),h=()=>{};class b{constructor(e,t){this.tag=e,this.value=t}static some(e){return new b(!0,e)}static none(){return b.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?b.some(e(this.value)):b.none()}bind(e){return this.tag?e(this.value):b.none()}exists(e){return this.tag&&e(this.value)}forall(e){return!this.tag||e(this.value)}filter(e){return!this.tag||e(this.value)?this:b.none()}getOr(e){return this.tag?this.value:e}or(e){return this.tag?this:e}getOrThunk(e){return this.tag?this.value:e()}orThunk(e){return this.tag?this:e()}getOrDie(e){if(this.tag)return this.value;throw new Error(null!=e?e:"Called getOrDie on None")}static from(e){return g(e)?b.some(e):b.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(e){this.tag&&e(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}b.singletonNone=new b(!1);const v=Object.keys,y=Object.hasOwnProperty,f=(e,t,a,i)=>{((e,t)=>{const a=v(e);for(let i=0,o=a.length;i<o;i++){const o=a[i];t(e[o],o)}})(e,((e,o)=>{(t(e,o)?a:i)(e,o)}))},w=(e,t)=>y.call(e,t),A=Array.prototype.push,D=e=>{const t=[];for(let a=0,i=e.length;a<i;++a){if(!l(e[a]))throw new Error("Arr.flatten item "+a+" was not an array, input: "+e);A.apply(t,e[a])}return t},_=e=>((e,t)=>t>=0&&t<e.length?b.some(e[t]):b.none())(e,0);"undefined"!=typeof window?window:Function("return this;")();const C=(e,t,a)=>{((e,t,a)=>{if(!(r(a)||d(a)||p(a)))throw console.error("Invalid call to Attribute.set. Key ",t,":: Value ",a,":: Element ",e),new Error("Attribute value was not simple");e.setAttribute(t,a+"")})(e.dom,t,a)},x=e=>{if(null==e)throw new Error("Node cannot be null or undefined");return{dom:e}},I={fromHtml:(e,t)=>{const a=(t||document).createElement("div");if(a.innerHTML=e,!a.hasChildNodes()||a.childNodes.length>1){const t="HTML does not have a single root node";throw console.error(t,e),new Error(t)}return x(a.childNodes[0])},fromTag:(e,t)=>{const a=(t||document).createElement(e);return x(a)},fromText:(e,t)=>{const a=(t||document).createTextNode(e);return x(a)},fromDom:x,fromPoint:(e,t,a)=>b.from(e.dom.elementFromPoint(t,a)).map(x)};var U=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),S=tinymce.util.Tools.resolve("tinymce.util.URI");const N=e=>e.length>0,T=e=>t=>t.options.get(e),E=e=>{const t=e.options.register;t("image_dimensions",{processor:"boolean",default:!0}),t("image_advtab",{processor:"boolean",default:!1}),t("image_uploadtab",{processor:"boolean",default:!0}),t("image_prepend_url",{processor:"string",default:""}),t("image_class_list",{processor:"object[]"}),t("image_description",{processor:"boolean",default:!0}),t("image_title",{processor:"boolean",default:!1}),t("image_caption",{processor:"boolean",default:!1}),t("image_list",{processor:e=>{const t=!1===e||r(e)||((e,t)=>{if(l(e)){for(let a=0,i=e.length;a<i;++a)if(!t(e[a]))return!1;return!0}return!1})(e,s)||u(e);return t?{value:e,valid:t}:{valid:!1,message:"Must be false, a string, an array or a function."}},default:!1})},L=T("image_dimensions"),O=T("image_advtab"),M=T("image_uploadtab"),j=T("image_prepend_url"),P=T("image_class_list"),R=T("image_description"),k=T("image_title"),z=T("image_caption"),B=T("image_list"),H=T("a11y_advanced_options"),F=T("automatic_uploads"),G=(e,t)=>Math.max(parseInt(e,10),parseInt(t,10)),W=e=>(e&&(e=e.replace(/px$/,"")),e),$=e=>(e.length>0&&/^[0-9]+$/.test(e)&&(e+="px"),e),V=e=>"IMG"===e.nodeName&&(e.hasAttribute("data-mce-object")||e.hasAttribute("data-mce-placeholder")),q=(e,t)=>{const a=e.options.get;return S.isDomSafe(t,"img",{allow_html_data_urls:a("allow_html_data_urls"),allow_script_urls:a("allow_script_urls"),allow_svg_data_urls:a("allow_svg_data_urls")})},K=U.DOM,Z=e=>e.style.marginLeft&&e.style.marginRight&&e.style.marginLeft===e.style.marginRight?W(e.style.marginLeft):"",J=e=>e.style.marginTop&&e.style.marginBottom&&e.style.marginTop===e.style.marginBottom?W(e.style.marginTop):"",Q=e=>e.style.borderWidth?W(e.style.borderWidth):"",X=(e,t)=>{var a;return e.hasAttribute(t)&&null!==(a=e.getAttribute(t))&&void 0!==a?a:""},Y=e=>null!==e.parentNode&&"FIGURE"===e.parentNode.nodeName,ee=(e,t,a)=>{""===a||null===a?e.removeAttribute(t):e.setAttribute(t,a)},te=e=>{Y(e)?(e=>{const t=e.parentNode;g(t)&&(K.insertAfter(e,t),K.remove(t))})(e):(e=>{const t=K.create("figure",{class:"image"});K.insertAfter(t,e),t.appendChild(e),t.appendChild(K.create("figcaption",{contentEditable:"true"},"Caption")),t.contentEditable="false"})(e)},ae=(e,t)=>{const a=e.getAttribute("style"),i=t(null!==a?a:"");i.length>0?(e.setAttribute("style",i),e.setAttribute("data-mce-style",i)):e.removeAttribute("style")},ie=(e,t)=>(e,a,i)=>{const o=e.style;o[a]?(o[a]=$(i),ae(e,t)):ee(e,a,i)},oe=(e,t)=>e.style[t]?W(e.style[t]):X(e,t),re=(e,t)=>{const a=$(t);e.style.marginLeft=a,e.style.marginRight=a},se=(e,t)=>{const a=$(t);e.style.marginTop=a,e.style.marginBottom=a},ne=(e,t)=>{const a=$(t);e.style.borderWidth=a},le=(e,t)=>{e.style.borderStyle=t},ce=e=>{var t;return null!==(t=e.style.borderStyle)&&void 0!==t?t:""},me=e=>g(e)&&"FIGURE"===e.nodeName,de=e=>0===K.getAttrib(e,"alt").length&&"presentation"===K.getAttrib(e,"role"),ge=e=>de(e)?"":X(e,"alt"),ue=(e,t)=>{var a;const i=document.createElement("img");return ee(i,"style",t.style),(Z(i)||""!==t.hspace)&&re(i,t.hspace),(J(i)||""!==t.vspace)&&se(i,t.vspace),(Q(i)||""!==t.border)&&ne(i,t.border),(ce(i)||""!==t.borderStyle)&&le(i,t.borderStyle),e(null!==(a=i.getAttribute("style"))&&void 0!==a?a:"")},pe=(e,t)=>({src:X(t,"src"),alt:ge(t),title:X(t,"title"),width:oe(t,"width"),height:oe(t,"height"),class:X(t,"class"),style:e(X(t,"style")),caption:Y(t),hspace:Z(t),vspace:J(t),border:Q(t),borderStyle:ce(t),isDecorative:de(t)}),he=(e,t,a,i,o)=>{a[i]!==t[i]&&o(e,i,String(a[i]))},be=(e,t,a)=>{if(a){K.setAttrib(e,"role","presentation");const t=I.fromDom(e);C(t,"alt","")}else{if(c(t)){const t=I.fromDom(e);i="alt",t.dom.removeAttribute(i)}else{const a=I.fromDom(e);C(a,"alt",t)}"presentation"===K.getAttrib(e,"role")&&K.setAttrib(e,"role","")}var i},ve=(e,t)=>(a,i,o)=>{e(a,o),ae(a,t)},ye=(e,t,a)=>{const i=pe(e,a);he(a,i,t,"caption",((e,t,a)=>te(e))),he(a,i,t,"src",ee),he(a,i,t,"title",ee),he(a,i,t,"width",ie(0,e)),he(a,i,t,"height",ie(0,e)),he(a,i,t,"class",ee),he(a,i,t,"style",ve(((e,t)=>ee(e,"style",t)),e)),he(a,i,t,"hspace",ve(re,e)),he(a,i,t,"vspace",ve(se,e)),he(a,i,t,"border",ve(ne,e)),he(a,i,t,"borderStyle",ve(le,e)),((e,t,a)=>{a.alt===t.alt&&a.isDecorative===t.isDecorative||be(e,a.alt,a.isDecorative)})(a,i,t)},fe=(e,t)=>{const a=(e=>{if(e.margin){const t=String(e.margin).split(" ");switch(t.length){case 1:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[0],e["margin-bottom"]=e["margin-bottom"]||t[0],e["margin-left"]=e["margin-left"]||t[0];break;case 2:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[1],e["margin-bottom"]=e["margin-bottom"]||t[0],e["margin-left"]=e["margin-left"]||t[1];break;case 3:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[1],e["margin-bottom"]=e["margin-bottom"]||t[2],e["margin-left"]=e["margin-left"]||t[1];break;case 4:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[1],e["margin-bottom"]=e["margin-bottom"]||t[2],e["margin-left"]=e["margin-left"]||t[3]}delete e.margin}return e})(e.dom.styles.parse(t)),i=e.dom.styles.parse(e.dom.styles.serialize(a));return e.dom.styles.serialize(i)},we=e=>{const t=e.selection.getNode(),a=e.dom.getParent(t,"figure.image");return a?e.dom.select("img",a)[0]:t&&("IMG"!==t.nodeName||V(t))?null:t},Ae=(e,t)=>{var a;const i=e.dom,o=((e,t)=>{const a={};var i;return f(e,t,(i=a,(e,t)=>{i[t]=e}),h),a})(e.schema.getTextBlockElements(),((t,a)=>!e.schema.isValidChild(a,"figure"))),r=i.getParent(t.parentNode,(e=>{return t=o,a=e.nodeName,w(t,a)&&void 0!==t[a]&&null!==t[a];var t,a}),e.getBody());return r&&null!==(a=i.split(r,t))&&void 0!==a?a:t},De=(e,t)=>{const a=((e,t)=>{const a=document.createElement("img");if(ye(e,{...t,caption:!1},a),be(a,t.alt,t.isDecorative),t.caption){const e=K.create("figure",{class:"image"});return e.appendChild(a),e.appendChild(K.create("figcaption",{contentEditable:"true"},"Caption")),e.contentEditable="false",e}return a})((t=>fe(e,t)),t);e.dom.setAttrib(a,"data-mce-id","__mcenew"),e.focus(),e.selection.setContent(a.outerHTML);const i=e.dom.select('*[data-mce-id="__mcenew"]')[0];if(e.dom.setAttrib(i,"data-mce-id",null),me(i)){const t=Ae(e,i);e.selection.select(t)}else e.selection.select(i)},_e=(e,t)=>{const a=we(e);if(a)if(ye((t=>fe(e,t)),t,a),((e,t)=>{e.dom.setAttrib(t,"src",t.getAttribute("src"))})(e,a),me(a.parentNode)){const t=a.parentNode;Ae(e,t),e.selection.select(a.parentNode)}else e.selection.select(a),((e,t,a)=>{const i=()=>{a.onload=a.onerror=null,e.selection&&(e.selection.select(a),e.nodeChanged())};a.onload=()=>{t.width||t.height||!L(e)||e.dom.setAttribs(a,{width:String(a.clientWidth),height:String(a.clientHeight)}),i()},a.onerror=i})(e,t,a)},Ce=(e,t)=>{const a=we(e);if(a){const i={...pe((t=>fe(e,t)),a),...t},o=((e,t)=>{const a=t.src;return{...t,src:q(e,a)?a:""}})(e,i);i.src?_e(e,o):((e,t)=>{if(t){const a=e.dom.is(t.parentNode,"figure.image")?t.parentNode:t;e.dom.remove(a),e.focus(),e.nodeChanged(),e.dom.isEmpty(e.getBody())&&(e.setContent(""),e.selection.setCursorLocation())}})(e,a)}else t.src&&De(e,{src:"",alt:"",title:"",width:"",height:"",class:"",style:"",caption:!1,hspace:"",vspace:"",border:"",borderStyle:"",isDecorative:!1,...t})},xe=(Ie=(e,t)=>n(e)&&n(t)?xe(e,t):t,(...e)=>{if(0===e.length)throw new Error("Can't merge zero objects");const t={};for(let a=0;a<e.length;a++){const i=e[a];for(const e in i)w(i,e)&&(t[e]=Ie(t[e],i[e]))}return t});var Ie,Ue=tinymce.util.Tools.resolve("tinymce.util.ImageUploader"),Se=tinymce.util.Tools.resolve("tinymce.util.Tools");const Ne=e=>r(e.value)?e.value:"",Te=(e,t)=>{const a=[];return Se.each(e,(e=>{const i=(e=>r(e.text)?e.text:r(e.title)?e.title:"")(e);if(void 0!==e.menu){const o=Te(e.menu,t);a.push({text:i,items:o})}else{const o=t(e);a.push({text:i,value:o})}})),a},Ee=(e=Ne)=>t=>t?b.from(t).map((t=>Te(t,e))):b.none(),Le=(e,t)=>((e,t)=>{for(let a=0;a<e.length;a++){const i=t(e[a],a);if(i.isSome())return i}return b.none()})(e,(e=>(e=>w(e,"items"))(e)?Le(e.items,t):e.value===t?b.some(e):b.none())),Oe=Ee,Me=e=>Ee(Ne)(e),je=(e,t)=>e.bind((e=>Le(e,t))),Pe=e=>({title:"Advanced",name:"advanced",items:[{type:"grid",columns:2,items:[{type:"input",label:"Vertical space",name:"vspace",inputMode:"numeric"},{type:"input",label:"Horizontal space",name:"hspace",inputMode:"numeric"},{type:"input",label:"Border width",name:"border",inputMode:"numeric"},{type:"listbox",name:"borderstyle",label:"Border style",items:[{text:"Select...",value:""},{text:"Solid",value:"solid"},{text:"Dotted",value:"dotted"},{text:"Dashed",value:"dashed"},{text:"Double",value:"double"},{text:"Groove",value:"groove"},{text:"Ridge",value:"ridge"},{text:"Inset",value:"inset"},{text:"Outset",value:"outset"},{text:"None",value:"none"},{text:"Hidden",value:"hidden"}]}]}]}),Re=e=>{const t=Oe((t=>e.convertURL(t.value||t.url||"","src"))),a=new Promise((a=>{((e,t)=>{const a=B(e);r(a)?fetch(a).then((e=>{e.ok&&e.json().then(t)})):u(a)?a(t):t(a)})(e,(e=>{a(t(e).map((e=>D([[{text:"None",value:""}],e]))))}))})),i=Me(P(e)),o=O(e),s=M(e),n=(e=>N(e.options.get("images_upload_url")))(e),l=(e=>g(e.options.get("images_upload_handler")))(e),c=(e=>{const t=we(e);return t?pe((t=>fe(e,t)),t):{src:"",alt:"",title:"",width:"",height:"",class:"",style:"",caption:!1,hspace:"",vspace:"",border:"",borderStyle:"",isDecorative:!1}})(e),m=R(e),d=k(e),p=L(e),h=z(e),v=H(e),y=F(e),f=b.some(j(e)).filter((e=>r(e)&&e.length>0));return a.then((e=>({image:c,imageList:e,classList:i,hasAdvTab:o,hasUploadTab:s,hasUploadUrl:n,hasUploadHandler:l,hasDescription:m,hasImageTitle:d,hasDimensions:p,hasImageCaption:h,prependURL:f,hasAccessibilityOptions:v,automaticUploads:y})))},ke=e=>{const t=e.imageList.map((e=>({name:"images",type:"listbox",label:"Image list",items:e}))),a={name:"alt",type:"input",label:"Alternative description",enabled:!(e.hasAccessibilityOptions&&e.image.isDecorative)},i=e.classList.map((e=>({name:"classes",type:"listbox",label:"Class",items:e})));return D([[{name:"src",type:"urlinput",filetype:"image",label:"Source",picker_text:"Browse files"}],t.toArray(),e.hasAccessibilityOptions&&e.hasDescription?[{type:"label",label:"Accessibility",items:[{name:"isDecorative",type:"checkbox",label:"Image is decorative"}]}]:[],e.hasDescription?[a]:[],e.hasImageTitle?[{name:"title",type:"input",label:"Image title"}]:[],e.hasDimensions?[{name:"dimensions",type:"sizeinput"}]:[],[{...(o=e.classList.isSome()&&e.hasImageCaption,o?{type:"grid",columns:2}:{type:"panel"}),items:D([i.toArray(),e.hasImageCaption?[{type:"label",label:"Caption",items:[{type:"checkbox",name:"caption",label:"Show caption"}]}]:[]])}]]);var o},ze=e=>({title:"General",name:"general",items:ke(e)}),Be=ke,He=e=>({title:"Upload",name:"upload",items:[{type:"dropzone",name:"fileinput"}]}),Fe=e=>({src:{value:e.src,meta:{}},images:e.src,alt:e.alt,title:e.title,dimensions:{width:e.width,height:e.height},classes:e.class,caption:e.caption,style:e.style,vspace:e.vspace,border:e.border,hspace:e.hspace,borderstyle:e.borderStyle,fileinput:[],isDecorative:e.isDecorative}),Ge=(e,t)=>({src:e.src.value,alt:null!==e.alt&&0!==e.alt.length||!t?e.alt:null,title:e.title,width:e.dimensions.width,height:e.dimensions.height,class:e.classes,style:e.style,caption:e.caption,hspace:e.hspace,vspace:e.vspace,border:e.border,borderStyle:e.borderstyle,isDecorative:e.isDecorative}),We=(e,t)=>{const a=t.getData();((e,t)=>/^(?:[a-zA-Z]+:)?\/\//.test(t)?b.none():e.prependURL.bind((e=>t.substring(0,e.length)!==e?b.some(e+t):b.none())))(e,a.src.value).each((e=>{t.setData({src:{value:e,meta:a.src.meta}})}))},$e=(e,t)=>{const a=t.getData(),i=a.src.meta;if(void 0!==i){const o=xe({},a);((e,t,a)=>{e.hasDescription&&r(a.alt)&&(t.alt=a.alt),e.hasAccessibilityOptions&&(t.isDecorative=a.isDecorative||t.isDecorative||!1),e.hasImageTitle&&r(a.title)&&(t.title=a.title),e.hasDimensions&&(r(a.width)&&(t.dimensions.width=a.width),r(a.height)&&(t.dimensions.height=a.height)),r(a.class)&&je(e.classList,a.class).each((e=>{t.classes=e.value})),e.hasImageCaption&&d(a.caption)&&(t.caption=a.caption),e.hasAdvTab&&(r(a.style)&&(t.style=a.style),r(a.vspace)&&(t.vspace=a.vspace),r(a.border)&&(t.border=a.border),r(a.hspace)&&(t.hspace=a.hspace),r(a.borderstyle)&&(t.borderstyle=a.borderstyle))})(e,o,i),t.setData(o)}},Ve=(e,t,a,i)=>{We(t,i),$e(t,i),((e,t,a,i)=>{const o=i.getData(),r=o.src.value,s=o.src.meta||{};s.width||s.height||!t.hasDimensions||(N(r)?e.imageSize(r).then((e=>{a.open&&i.setData({dimensions:e})})).catch((e=>console.error(e))):i.setData({dimensions:{width:"",height:""}}))})(e,t,a,i),((e,t,a)=>{const i=a.getData(),o=je(e.imageList,i.src.value);t.prevImage=o,a.setData({images:o.map((e=>e.value)).getOr("")})})(t,a,i)},qe=(e,t,a,i)=>{const o=i.getData();i.block("Uploading image"),_(o.fileinput).fold((()=>{i.unblock()}),(o=>{const r=URL.createObjectURL(o),s=()=>{i.unblock(),URL.revokeObjectURL(r)},n=o=>{i.setData({src:{value:o,meta:{}}}),i.showTab("general"),Ve(e,t,a,i)};var l;(l=o,new Promise(((e,t)=>{const a=new FileReader;a.onload=()=>{e(a.result)},a.onerror=()=>{var e;t(null===(e=a.error)||void 0===e?void 0:e.message)},a.readAsDataURL(l)}))).then((a=>{const l=e.createBlobCache(o,r,a);t.automaticUploads?e.uploadImage(l).then((e=>{n(e.url),s()})).catch((t=>{s(),e.alertErr(t)})):(e.addToBlobCache(l),n(l.blobUri()),i.unblock())}))}))},Ke=(e,t,a)=>(i,o)=>{"src"===o.name?Ve(e,t,a,i):"images"===o.name?((e,t,a,i)=>{const o=i.getData(),r=je(t.imageList,o.images);r.each((e=>{const t=""===o.alt||a.prevImage.map((e=>e.text===o.alt)).getOr(!1);t?""===e.value?i.setData({src:e,alt:a.prevAlt}):i.setData({src:e,alt:e.text}):i.setData({src:e})})),a.prevImage=r,Ve(e,t,a,i)})(e,t,a,i):"alt"===o.name?a.prevAlt=i.getData().alt:"fileinput"===o.name?qe(e,t,a,i):"isDecorative"===o.name&&i.setEnabled("alt",!i.getData().isDecorative)},Ze=e=>()=>{e.open=!1},Je=e=>{if(e.hasAdvTab||e.hasUploadUrl||e.hasUploadHandler){return{type:"tabpanel",tabs:D([[ze(e)],e.hasAdvTab?[Pe(e)]:[],e.hasUploadTab&&(e.hasUploadUrl||e.hasUploadHandler)?[He(e)]:[]])}}return{type:"panel",items:Be(e)}},Qe=(e,t,a)=>i=>{const o=xe(Fe(t.image),i.getData()),r={...o,style:ue(a.normalizeCss,Ge(o,!1))};e.execCommand("mceUpdateImage",!1,Ge(r,t.hasAccessibilityOptions)),e.editorUpload.uploadImagesAuto(),i.close()},Xe=e=>t=>q(e,t)?(e=>new Promise((t=>{const a=document.createElement("img"),i=e=>{a.onload=a.onerror=null,a.parentNode&&a.parentNode.removeChild(a),t(e)};a.onload=()=>{const e={width:G(a.width,a.clientWidth),height:G(a.height,a.clientHeight)};i(Promise.resolve(e))},a.onerror=()=>{i(Promise.reject(`Failed to get image dimensions for: ${e}`))};const o=a.style;o.visibility="hidden",o.position="fixed",o.bottom=o.left="0px",o.width=o.height="auto",document.body.appendChild(a),a.src=e})))(e.documentBaseURI.toAbsolute(t)).then((e=>({width:String(e.width),height:String(e.height)}))):Promise.resolve({width:"",height:""}),Ye=e=>(t,a,i)=>{var o;return e.editorUpload.blobCache.create({blob:t,blobUri:a,name:null===(o=t.name)||void 0===o?void 0:o.replace(/\.[^\.]+$/,""),filename:t.name,base64:i.split(",")[1]})},et=e=>t=>{e.editorUpload.blobCache.add(t)},tt=e=>t=>{e.windowManager.alert(t)},at=e=>t=>fe(e,t),it=e=>t=>e.dom.parseStyle(t),ot=e=>(t,a)=>e.dom.serializeStyle(t,a),rt=e=>t=>Ue(e).upload([t],!1).then((e=>{var t;return 0===e.length?Promise.reject("Failed to upload image"):!1===e[0].status?Promise.reject(null===(t=e[0].error)||void 0===t?void 0:t.message):e[0]})),st=e=>{const t={imageSize:Xe(e),addToBlobCache:et(e),createBlobCache:Ye(e),alertErr:tt(e),normalizeCss:at(e),parseStyle:it(e),serializeStyle:ot(e),uploadImage:rt(e)};return{open:()=>{Re(e).then((a=>{const i=(e=>({prevImage:je(e.imageList,e.image.src),prevAlt:e.image.alt,open:!0}))(a);return{title:"Insert/Edit Image",size:"normal",body:Je(a),buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:Fe(a.image),onSubmit:Qe(e,a,t),onChange:Ke(t,a,i),onClose:Ze(i)}})).then(e.windowManager.open)}}},nt=e=>{const t=e.attr("class");return g(t)&&/\bimage\b/.test(t)},lt=e=>t=>{let a=t.length;const i=t=>{t.attr("contenteditable",e?"true":null)};for(;a--;){const o=t[a];nt(o)&&(o.attr("contenteditable",e?"false":null),Se.each(o.getAll("figcaption"),i))}},ct=e=>t=>{const a=()=>{t.setEnabled(e.selection.isEditable())};return e.on("NodeChange",a),a(),()=>{e.off("NodeChange",a)}};e.add("image",(e=>{E(e),(e=>{e.on("PreInit",(()=>{e.parser.addNodeFilter("figure",lt(!0)),e.serializer.addNodeFilter("figure",lt(!1))}))})(e),(e=>{e.ui.registry.addToggleButton("image",{icon:"image",tooltip:"Insert/edit image",onAction:st(e).open,onSetup:t=>{t.setActive(g(we(e)));const a=e.selection.selectorChangedWithUnbind("img:not([data-mce-object]):not([data-mce-placeholder]),figure.image",t.setActive).unbind,i=ct(e)(t);return()=>{a(),i()}}}),e.ui.registry.addMenuItem("image",{icon:"image",text:"Image...",onAction:st(e).open,onSetup:ct(e)}),e.ui.registry.addContextMenu("image",{update:t=>e.selection.isEditable()&&(me(t)||"IMG"===t.nodeName&&!V(t))?["image"]:[]})})(e),(e=>{e.addCommand("mceImage",st(e).open),e.addCommand("mceUpdateImage",((t,a)=>{e.undoManager.transact((()=>Ce(e,a)))}))})(e)}))}()),e}export{a as __require};
|
1
|
+
import{__exports as e}from"../../../../_virtual/plugin3.mjs";var t;function a(){return t||(t=1,function(){var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=Object.getPrototypeOf,a=(e,t,a)=>{var i;return!!a(e,t.prototype)||(null===(i=e.constructor)||void 0===i?void 0:i.name)===t.name},i=e=>t=>(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&a(e,String,((e,t)=>t.isPrototypeOf(e)))?"string":t})(t)===e,o=e=>t=>typeof t===e,r=i("string"),s=i("object"),n=e=>((e,i)=>s(e)&&a(e,i,((e,a)=>t(e)===a)))(e,Object),l=i("array"),c=(m=null,e=>m===e);var m;const d=o("boolean"),g=e=>!(e=>null==e)(e),u=o("function"),p=o("number"),h=()=>{};class b{constructor(e,t){this.tag=e,this.value=t}static some(e){return new b(!0,e)}static none(){return b.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?b.some(e(this.value)):b.none()}bind(e){return this.tag?e(this.value):b.none()}exists(e){return this.tag&&e(this.value)}forall(e){return!this.tag||e(this.value)}filter(e){return!this.tag||e(this.value)?this:b.none()}getOr(e){return this.tag?this.value:e}or(e){return this.tag?this:e}getOrThunk(e){return this.tag?this.value:e()}orThunk(e){return this.tag?this:e()}getOrDie(e){if(this.tag)return this.value;throw new Error(null!=e?e:"Called getOrDie on None")}static from(e){return g(e)?b.some(e):b.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(e){this.tag&&e(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}b.singletonNone=new b(!1);const v=Object.keys,y=Object.hasOwnProperty,f=(e,t,a,i)=>{((e,t)=>{const a=v(e);for(let i=0,o=a.length;i<o;i++){const o=a[i];t(e[o],o)}})(e,((e,o)=>{(t(e,o)?a:i)(e,o)}))},w=(e,t)=>y.call(e,t),A=Array.prototype.push,D=e=>{const t=[];for(let a=0,i=e.length;a<i;++a){if(!l(e[a]))throw new Error("Arr.flatten item "+a+" was not an array, input: "+e);A.apply(t,e[a])}return t},_=e=>((e,t)=>t>=0&&t<e.length?b.some(e[t]):b.none())(e,0);"undefined"!=typeof window?window:Function("return this;")();const C=(e,t,a)=>{((e,t,a)=>{if(!(r(a)||d(a)||p(a)))throw console.error("Invalid call to Attribute.set. Key ",t,":: Value ",a,":: Element ",e),new Error("Attribute value was not simple");e.setAttribute(t,a+"")})(e.dom,t,a)},x=e=>{if(null==e)throw new Error("Node cannot be null or undefined");return{dom:e}},I={fromHtml:(e,t)=>{const a=(t||document).createElement("div");if(a.innerHTML=e,!a.hasChildNodes()||a.childNodes.length>1){const t="HTML does not have a single root node";throw console.error(t,e),new Error(t)}return x(a.childNodes[0])},fromTag:(e,t)=>{const a=(t||document).createElement(e);return x(a)},fromText:(e,t)=>{const a=(t||document).createTextNode(e);return x(a)},fromDom:x,fromPoint:(e,t,a)=>b.from(e.dom.elementFromPoint(t,a)).map(x)};var U=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),S=tinymce.util.Tools.resolve("tinymce.util.URI");const N=e=>e.length>0,T=e=>t=>t.options.get(e),E=e=>{const t=e.options.register;t("image_dimensions",{processor:"boolean",default:!0}),t("image_advtab",{processor:"boolean",default:!1}),t("image_uploadtab",{processor:"boolean",default:!0}),t("image_prepend_url",{processor:"string",default:""}),t("image_class_list",{processor:"object[]"}),t("image_description",{processor:"boolean",default:!0}),t("image_title",{processor:"boolean",default:!1}),t("image_caption",{processor:"boolean",default:!1}),t("image_list",{processor:e=>{const t=!1===e||r(e)||((e,t)=>{if(l(e)){for(let a=0,i=e.length;a<i;++a)if(!t(e[a]))return!1;return!0}return!1})(e,s)||u(e);return t?{value:e,valid:t}:{valid:!1,message:"Must be false, a string, an array or a function."}},default:!1})},L=T("image_dimensions"),O=T("image_advtab"),M=T("image_uploadtab"),j=T("image_prepend_url"),P=T("image_class_list"),R=T("image_description"),k=T("image_title"),z=T("image_caption"),B=T("image_list"),H=T("a11y_advanced_options"),F=T("automatic_uploads"),G=(e,t)=>Math.max(parseInt(e,10),parseInt(t,10)),W=e=>(e&&(e=e.replace(/px$/,"")),e),$=e=>(e.length>0&&/^[0-9]+$/.test(e)&&(e+="px"),e),V=e=>"IMG"===e.nodeName&&(e.hasAttribute("data-mce-object")||e.hasAttribute("data-mce-placeholder")),q=(e,t)=>{const a=e.options.get;return S.isDomSafe(t,"img",{allow_html_data_urls:a("allow_html_data_urls"),allow_script_urls:a("allow_script_urls"),allow_svg_data_urls:a("allow_svg_data_urls")})},K=U.DOM,Z=e=>e.style.marginLeft&&e.style.marginRight&&e.style.marginLeft===e.style.marginRight?W(e.style.marginLeft):"",J=e=>e.style.marginTop&&e.style.marginBottom&&e.style.marginTop===e.style.marginBottom?W(e.style.marginTop):"",Q=e=>e.style.borderWidth?W(e.style.borderWidth):"",X=(e,t)=>{var a;return e.hasAttribute(t)&&null!==(a=e.getAttribute(t))&&void 0!==a?a:""},Y=e=>null!==e.parentNode&&"FIGURE"===e.parentNode.nodeName,ee=(e,t,a)=>{""===a||null===a?e.removeAttribute(t):e.setAttribute(t,a)},te=e=>{Y(e)?(e=>{const t=e.parentNode;g(t)&&(K.insertAfter(e,t),K.remove(t))})(e):(e=>{const t=K.create("figure",{class:"image"});K.insertAfter(t,e),t.appendChild(e),t.appendChild(K.create("figcaption",{contentEditable:"true"},"Caption")),t.contentEditable="false"})(e)},ae=(e,t)=>{const a=e.getAttribute("style"),i=t(null!==a?a:"");i.length>0?(e.setAttribute("style",i),e.setAttribute("data-mce-style",i)):e.removeAttribute("style")},ie=(e,t)=>(e,a,i)=>{const o=e.style;o[a]?(o[a]=$(i),ae(e,t)):ee(e,a,i)},oe=(e,t)=>e.style[t]?W(e.style[t]):X(e,t),re=(e,t)=>{const a=$(t);e.style.marginLeft=a,e.style.marginRight=a},se=(e,t)=>{const a=$(t);e.style.marginTop=a,e.style.marginBottom=a},ne=(e,t)=>{const a=$(t);e.style.borderWidth=a},le=(e,t)=>{e.style.borderStyle=t},ce=e=>{var t;return null!==(t=e.style.borderStyle)&&void 0!==t?t:""},me=e=>g(e)&&"FIGURE"===e.nodeName,de=e=>0===K.getAttrib(e,"alt").length&&"presentation"===K.getAttrib(e,"role"),ge=e=>de(e)?"":X(e,"alt"),ue=(e,t)=>{var a;const i=document.createElement("img");return ee(i,"style",t.style),(Z(i)||""!==t.hspace)&&re(i,t.hspace),(J(i)||""!==t.vspace)&&se(i,t.vspace),(Q(i)||""!==t.border)&&ne(i,t.border),(ce(i)||""!==t.borderStyle)&&le(i,t.borderStyle),e(null!==(a=i.getAttribute("style"))&&void 0!==a?a:"")},pe=(e,t)=>({src:X(t,"src"),alt:ge(t),title:X(t,"title"),width:oe(t,"width"),height:oe(t,"height"),class:X(t,"class"),style:e(X(t,"style")),caption:Y(t),hspace:Z(t),vspace:J(t),border:Q(t),borderStyle:ce(t),isDecorative:de(t)}),he=(e,t,a,i,o)=>{a[i]!==t[i]&&o(e,i,String(a[i]))},be=(e,t,a)=>{if(a){K.setAttrib(e,"role","presentation");const t=I.fromDom(e);C(t,"alt","")}else{if(c(t)){const t=I.fromDom(e);i="alt",t.dom.removeAttribute(i)}else{const a=I.fromDom(e);C(a,"alt",t)}"presentation"===K.getAttrib(e,"role")&&K.setAttrib(e,"role","")}var i},ve=(e,t)=>(a,i,o)=>{e(a,o),ae(a,t)},ye=(e,t,a)=>{const i=pe(e,a);he(a,i,t,"caption",((e,t,a)=>te(e))),he(a,i,t,"src",ee),he(a,i,t,"title",ee),he(a,i,t,"width",ie(0,e)),he(a,i,t,"height",ie(0,e)),he(a,i,t,"class",ee),he(a,i,t,"style",ve(((e,t)=>ee(e,"style",t)),e)),he(a,i,t,"hspace",ve(re,e)),he(a,i,t,"vspace",ve(se,e)),he(a,i,t,"border",ve(ne,e)),he(a,i,t,"borderStyle",ve(le,e)),((e,t,a)=>{a.alt===t.alt&&a.isDecorative===t.isDecorative||be(e,a.alt,a.isDecorative)})(a,i,t)},fe=(e,t)=>{const a=(e=>{if(e.margin){const t=String(e.margin).split(" ");switch(t.length){case 1:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[0],e["margin-bottom"]=e["margin-bottom"]||t[0],e["margin-left"]=e["margin-left"]||t[0];break;case 2:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[1],e["margin-bottom"]=e["margin-bottom"]||t[0],e["margin-left"]=e["margin-left"]||t[1];break;case 3:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[1],e["margin-bottom"]=e["margin-bottom"]||t[2],e["margin-left"]=e["margin-left"]||t[1];break;case 4:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[1],e["margin-bottom"]=e["margin-bottom"]||t[2],e["margin-left"]=e["margin-left"]||t[3]}delete e.margin}return e})(e.dom.styles.parse(t)),i=e.dom.styles.parse(e.dom.styles.serialize(a));return e.dom.styles.serialize(i)},we=e=>{const t=e.selection.getNode(),a=e.dom.getParent(t,"figure.image");return a?e.dom.select("img",a)[0]:t&&("IMG"!==t.nodeName||V(t))?null:t},Ae=(e,t)=>{var a;const i=e.dom,o=((e,t)=>{const a={};var i;return f(e,t,(i=a,(e,t)=>{i[t]=e}),h),a})(e.schema.getTextBlockElements(),((t,a)=>!e.schema.isValidChild(a,"figure"))),r=i.getParent(t.parentNode,(e=>{return t=o,a=e.nodeName,w(t,a)&&void 0!==t[a]&&null!==t[a];var t,a}),e.getBody());return r&&null!==(a=i.split(r,t))&&void 0!==a?a:t},De=(e,t)=>{const a=((e,t)=>{const a=document.createElement("img");if(ye(e,{...t,caption:!1},a),be(a,t.alt,t.isDecorative),t.caption){const e=K.create("figure",{class:"image"});return e.appendChild(a),e.appendChild(K.create("figcaption",{contentEditable:"true"},"Caption")),e.contentEditable="false",e}return a})((t=>fe(e,t)),t);e.dom.setAttrib(a,"data-mce-id","__mcenew"),e.focus(),e.selection.setContent(a.outerHTML);const i=e.dom.select('*[data-mce-id="__mcenew"]')[0];if(e.dom.setAttrib(i,"data-mce-id",null),me(i)){const t=Ae(e,i);e.selection.select(t)}else e.selection.select(i)},_e=(e,t)=>{const a=we(e);if(a)if(ye((t=>fe(e,t)),t,a),((e,t)=>{e.dom.setAttrib(t,"src",t.getAttribute("src"))})(e,a),me(a.parentNode)){const t=a.parentNode;Ae(e,t),e.selection.select(a.parentNode)}else e.selection.select(a),((e,t,a)=>{const i=()=>{a.onload=a.onerror=null,e.selection&&(e.selection.select(a),e.nodeChanged())};a.onload=()=>{t.width||t.height||!L(e)||e.dom.setAttribs(a,{width:String(a.clientWidth),height:String(a.clientHeight)}),i()},a.onerror=i})(e,t,a)},Ce=(e,t)=>{const a=we(e);if(a){const i={...pe((t=>fe(e,t)),a),...t},o=((e,t)=>{const a=t.src;return{...t,src:q(e,a)?a:""}})(e,i);i.src?_e(e,o):((e,t)=>{if(t){const a=e.dom.is(t.parentNode,"figure.image")?t.parentNode:t;e.dom.remove(a),e.focus(),e.nodeChanged(),e.dom.isEmpty(e.getBody())&&(e.setContent(""),e.selection.setCursorLocation())}})(e,a)}else t.src&&De(e,{src:"",alt:"",title:"",width:"",height:"",class:"",style:"",caption:!1,hspace:"",vspace:"",border:"",borderStyle:"",isDecorative:!1,...t})},xe=(Ie=(e,t)=>n(e)&&n(t)?xe(e,t):t,(...e)=>{if(0===e.length)throw new Error("Can't merge zero objects");const t={};for(let a=0;a<e.length;a++){const i=e[a];for(const e in i)w(i,e)&&(t[e]=Ie(t[e],i[e]))}return t});var Ie,Ue=tinymce.util.Tools.resolve("tinymce.util.ImageUploader"),Se=tinymce.util.Tools.resolve("tinymce.util.Tools");const Ne=e=>r(e.value)?e.value:"",Te=(e,t)=>{const a=[];return Se.each(e,(e=>{const i=(e=>r(e.text)?e.text:r(e.title)?e.title:"")(e);if(void 0!==e.menu){const o=Te(e.menu,t);a.push({text:i,items:o})}else{const o=t(e);a.push({text:i,value:o})}})),a},Ee=(e=Ne)=>t=>t?b.from(t).map((t=>Te(t,e))):b.none(),Le=(e,t)=>((e,t)=>{for(let a=0;a<e.length;a++){const i=t(e[a],a);if(i.isSome())return i}return b.none()})(e,(e=>(e=>w(e,"items"))(e)?Le(e.items,t):e.value===t?b.some(e):b.none())),Oe=Ee,Me=e=>Ee(Ne)(e),je=(e,t)=>e.bind((e=>Le(e,t))),Pe=e=>({title:"Advanced",name:"advanced",items:[{type:"grid",columns:2,items:[{type:"input",label:"Vertical space",name:"vspace",inputMode:"numeric"},{type:"input",label:"Horizontal space",name:"hspace",inputMode:"numeric"},{type:"input",label:"Border width",name:"border",inputMode:"numeric"},{type:"listbox",name:"borderstyle",label:"Border style",items:[{text:"Select...",value:""},{text:"Solid",value:"solid"},{text:"Dotted",value:"dotted"},{text:"Dashed",value:"dashed"},{text:"Double",value:"double"},{text:"Groove",value:"groove"},{text:"Ridge",value:"ridge"},{text:"Inset",value:"inset"},{text:"Outset",value:"outset"},{text:"None",value:"none"},{text:"Hidden",value:"hidden"}]}]}]}),Re=e=>{const t=Oe((t=>e.convertURL(t.value||t.url||"","src"))),a=new Promise((a=>{((e,t)=>{const a=B(e);r(a)?fetch(a).then((e=>{e.ok&&e.json().then(t)})):u(a)?a(t):t(a)})(e,(e=>{a(t(e).map((e=>D([[{text:"None",value:""}],e]))))}))})),i=Me(P(e)),o=O(e),s=M(e),n=(e=>N(e.options.get("images_upload_url")))(e),l=(e=>g(e.options.get("images_upload_handler")))(e),c=(e=>{const t=we(e);return t?pe((t=>fe(e,t)),t):{src:"",alt:"",title:"",width:"",height:"",class:"",style:"",caption:!1,hspace:"",vspace:"",border:"",borderStyle:"",isDecorative:!1}})(e),m=R(e),d=k(e),p=L(e),h=z(e),v=H(e),y=F(e),f=b.some(j(e)).filter((e=>r(e)&&e.length>0));return a.then((e=>({image:c,imageList:e,classList:i,hasAdvTab:o,hasUploadTab:s,hasUploadUrl:n,hasUploadHandler:l,hasDescription:m,hasImageTitle:d,hasDimensions:p,hasImageCaption:h,prependURL:f,hasAccessibilityOptions:v,automaticUploads:y})))},ke=e=>{const t=e.imageList.map((e=>({name:"images",type:"listbox",label:"Image list",items:e}))),a={name:"alt",type:"input",label:"Alternative description",enabled:!(e.hasAccessibilityOptions&&e.image.isDecorative)},i=e.classList.map((e=>({name:"classes",type:"listbox",label:"Class",items:e})));return D([[{name:"src",type:"urlinput",filetype:"image",label:"Source",picker_text:"Browse files"}],t.toArray(),e.hasAccessibilityOptions&&e.hasDescription?[{type:"label",label:"Accessibility",items:[{name:"isDecorative",type:"checkbox",label:"Image is decorative"}]}]:[],e.hasDescription?[a]:[],e.hasImageTitle?[{name:"title",type:"input",label:"Image title"}]:[],e.hasDimensions?[{name:"dimensions",type:"sizeinput"}]:[],[{...(o=e.classList.isSome()&&e.hasImageCaption,o?{type:"grid",columns:2}:{type:"panel"}),items:D([i.toArray(),e.hasImageCaption?[{type:"label",label:"Caption",items:[{type:"checkbox",name:"caption",label:"Show caption"}]}]:[]])}]]);var o},ze=e=>({title:"General",name:"general",items:ke(e)}),Be=ke,He=e=>({title:"Upload",name:"upload",items:[{type:"dropzone",name:"fileinput"}]}),Fe=e=>({src:{value:e.src,meta:{}},images:e.src,alt:e.alt,title:e.title,dimensions:{width:e.width,height:e.height},classes:e.class,caption:e.caption,style:e.style,vspace:e.vspace,border:e.border,hspace:e.hspace,borderstyle:e.borderStyle,fileinput:[],isDecorative:e.isDecorative}),Ge=(e,t)=>({src:e.src.value,alt:null!==e.alt&&0!==e.alt.length||!t?e.alt:null,title:e.title,width:e.dimensions.width,height:e.dimensions.height,class:e.classes,style:e.style,caption:e.caption,hspace:e.hspace,vspace:e.vspace,border:e.border,borderStyle:e.borderstyle,isDecorative:e.isDecorative}),We=(e,t)=>{const a=t.getData();((e,t)=>/^(?:[a-zA-Z]+:)?\/\//.test(t)?b.none():e.prependURL.bind((e=>t.substring(0,e.length)!==e?b.some(e+t):b.none())))(e,a.src.value).each((e=>{t.setData({src:{value:e,meta:a.src.meta}})}))},$e=(e,t)=>{const a=t.getData(),i=a.src.meta;if(void 0!==i){const o=xe({},a);((e,t,a)=>{e.hasDescription&&r(a.alt)&&(t.alt=a.alt),e.hasAccessibilityOptions&&(t.isDecorative=a.isDecorative||t.isDecorative||!1),e.hasImageTitle&&r(a.title)&&(t.title=a.title),e.hasDimensions&&(r(a.width)&&(t.dimensions.width=a.width),r(a.height)&&(t.dimensions.height=a.height)),r(a.class)&&je(e.classList,a.class).each((e=>{t.classes=e.value})),e.hasImageCaption&&d(a.caption)&&(t.caption=a.caption),e.hasAdvTab&&(r(a.style)&&(t.style=a.style),r(a.vspace)&&(t.vspace=a.vspace),r(a.border)&&(t.border=a.border),r(a.hspace)&&(t.hspace=a.hspace),r(a.borderstyle)&&(t.borderstyle=a.borderstyle))})(e,o,i),t.setData(o)}},Ve=(e,t,a,i)=>{We(t,i),$e(t,i),((e,t,a,i)=>{const o=i.getData(),r=o.src.value,s=o.src.meta||{};s.width||s.height||!t.hasDimensions||(N(r)?e.imageSize(r).then((e=>{a.open&&i.setData({dimensions:e})})).catch((e=>console.error(e))):i.setData({dimensions:{width:"",height:""}}))})(e,t,a,i),((e,t,a)=>{const i=a.getData(),o=je(e.imageList,i.src.value);t.prevImage=o,a.setData({images:o.map((e=>e.value)).getOr("")})})(t,a,i)},qe=(e,t,a,i)=>{const o=i.getData();i.block("Uploading image"),_(o.fileinput).fold((()=>{i.unblock()}),(o=>{const r=URL.createObjectURL(o),s=()=>{i.unblock(),URL.revokeObjectURL(r)},n=o=>{i.setData({src:{value:o,meta:{}}}),i.showTab("general"),Ve(e,t,a,i)};var l;(l=o,new Promise(((e,t)=>{const a=new FileReader;a.onload=()=>{e(a.result)},a.onerror=()=>{var e;t(null===(e=a.error)||void 0===e?void 0:e.message)},a.readAsDataURL(l)}))).then((a=>{const l=e.createBlobCache(o,r,a);t.automaticUploads?e.uploadImage(l).then((e=>{n(e.url),s()})).catch((t=>{s(),e.alertErr(t)})):(e.addToBlobCache(l),n(l.blobUri()),i.unblock())}))}))},Ke=(e,t,a)=>(i,o)=>{"src"===o.name?Ve(e,t,a,i):"images"===o.name?((e,t,a,i)=>{const o=i.getData(),r=je(t.imageList,o.images);r.each((e=>{const t=""===o.alt||a.prevImage.map((e=>e.text===o.alt)).getOr(!1);t?""===e.value?i.setData({src:e,alt:a.prevAlt}):i.setData({src:e,alt:e.text}):i.setData({src:e})})),a.prevImage=r,Ve(e,t,a,i)})(e,t,a,i):"alt"===o.name?a.prevAlt=i.getData().alt:"fileinput"===o.name?qe(e,t,a,i):"isDecorative"===o.name&&i.setEnabled("alt",!i.getData().isDecorative)},Ze=e=>()=>{e.open=!1},Je=e=>{if(e.hasAdvTab||e.hasUploadUrl||e.hasUploadHandler){return{type:"tabpanel",tabs:D([[ze(e)],e.hasAdvTab?[Pe(e)]:[],e.hasUploadTab&&(e.hasUploadUrl||e.hasUploadHandler)?[He(e)]:[]])}}return{type:"panel",items:Be(e)}},Qe=(e,t,a)=>i=>{const o=xe(Fe(t.image),i.getData()),r={...o,style:ue(a.normalizeCss,Ge(o,!1))};e.execCommand("mceUpdateImage",!1,Ge(r,t.hasAccessibilityOptions)),e.editorUpload.uploadImagesAuto(),i.close()},Xe=e=>t=>q(e,t)?(e=>new Promise((t=>{const a=document.createElement("img"),i=e=>{a.onload=a.onerror=null,a.parentNode&&a.parentNode.removeChild(a),t(e)};a.onload=()=>{const e={width:G(a.width,a.clientWidth),height:G(a.height,a.clientHeight)};i(Promise.resolve(e))},a.onerror=()=>{i(Promise.reject(`Failed to get image dimensions for: ${e}`))};const o=a.style;o.visibility="hidden",o.position="fixed",o.bottom=o.left="0px",o.width=o.height="auto",document.body.appendChild(a),a.src=e})))(e.documentBaseURI.toAbsolute(t)).then((e=>({width:String(e.width),height:String(e.height)}))):Promise.resolve({width:"",height:""}),Ye=e=>(t,a,i)=>{var o;return e.editorUpload.blobCache.create({blob:t,blobUri:a,name:null===(o=t.name)||void 0===o?void 0:o.replace(/\.[^\.]+$/,""),filename:t.name,base64:i.split(",")[1]})},et=e=>t=>{e.editorUpload.blobCache.add(t)},tt=e=>t=>{e.windowManager.alert(t)},at=e=>t=>fe(e,t),it=e=>t=>e.dom.parseStyle(t),ot=e=>(t,a)=>e.dom.serializeStyle(t,a),rt=e=>t=>Ue(e).upload([t],!1).then((e=>{var t;return 0===e.length?Promise.reject("Failed to upload image"):!1===e[0].status?Promise.reject(null===(t=e[0].error)||void 0===t?void 0:t.message):e[0]})),st=e=>{const t={imageSize:Xe(e),addToBlobCache:et(e),createBlobCache:Ye(e),alertErr:tt(e),normalizeCss:at(e),parseStyle:it(e),serializeStyle:ot(e),uploadImage:rt(e)};return{open:()=>{Re(e).then((a=>{const i=(e=>({prevImage:je(e.imageList,e.image.src),prevAlt:e.image.alt,open:!0}))(a);return{title:"Insert/Edit Image",size:"normal",body:Je(a),buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:Fe(a.image),onSubmit:Qe(e,a,t),onChange:Ke(t,a,i),onClose:Ze(i)}})).then(e.windowManager.open)}}},nt=e=>{const t=e.attr("class");return g(t)&&/\bimage\b/.test(t)},lt=e=>t=>{let a=t.length;const i=t=>{t.attr("contenteditable",e?"true":null)};for(;a--;){const o=t[a];nt(o)&&(o.attr("contenteditable",e?"false":null),Se.each(o.getAll("figcaption"),i))}},ct=e=>t=>{const a=()=>{t.setEnabled(e.selection.isEditable())};return e.on("NodeChange",a),a(),()=>{e.off("NodeChange",a)}};e.add("image",(e=>{E(e),(e=>{e.on("PreInit",(()=>{e.parser.addNodeFilter("figure",lt(!0)),e.serializer.addNodeFilter("figure",lt(!1))}))})(e),(e=>{e.ui.registry.addToggleButton("image",{icon:"image",tooltip:"Insert/edit image",onAction:st(e).open,onSetup:t=>{t.setActive(g(we(e)));const a=e.selection.selectorChangedWithUnbind("img:not([data-mce-object]):not([data-mce-placeholder]),figure.image",t.setActive).unbind,i=ct(e)(t);return()=>{a(),i()}}}),e.ui.registry.addMenuItem("image",{icon:"image",text:"Image...",onAction:st(e).open,onSetup:ct(e)}),e.ui.registry.addContextMenu("image",{update:t=>e.selection.isEditable()&&(me(t)||"IMG"===t.nodeName&&!V(t))?["image"]:[]})})(e),(e=>{e.addCommand("mceImage",st(e).open),e.addCommand("mceUpdateImage",((t,a)=>{e.undoManager.transact((()=>Ce(e,a)))}))})(e)}))}()),e}export{a as __require};
|
2
2
|
//# sourceMappingURL=plugin.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"plugin.mjs","sources":["../../../../../../public/tinymce/plugins/image/plugin.js"],"sourcesContent":["/**\n * TinyMCE version 6.8.5 (TBD)\n */\n\n(function () {\n 'use strict';\n\n var global$4 = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n const getPrototypeOf = Object.getPrototypeOf;\n const hasProto = (v, constructor, predicate) => {\n var _a;\n if (predicate(v, constructor.prototype)) {\n return true;\n } else {\n return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name;\n }\n };\n const typeOf = x => {\n const t = typeof x;\n if (x === null) {\n return 'null';\n } else if (t === 'object' && Array.isArray(x)) {\n return 'array';\n } else if (t === 'object' && hasProto(x, String, (o, proto) => proto.isPrototypeOf(o))) {\n return 'string';\n } else {\n return t;\n }\n };\n const isType = type => value => typeOf(value) === type;\n const isSimpleType = type => value => typeof value === type;\n const eq = t => a => t === a;\n const is = (value, constructor) => isObject(value) && hasProto(value, constructor, (o, proto) => getPrototypeOf(o) === proto);\n const isString = isType('string');\n const isObject = isType('object');\n const isPlainObject = value => is(value, Object);\n const isArray = isType('array');\n const isNull = eq(null);\n const isBoolean = isSimpleType('boolean');\n const isNullable = a => a === null || a === undefined;\n const isNonNullable = a => !isNullable(a);\n const isFunction = isSimpleType('function');\n const isNumber = isSimpleType('number');\n const isArrayOf = (value, pred) => {\n if (isArray(value)) {\n for (let i = 0, len = value.length; i < len; ++i) {\n if (!pred(value[i])) {\n return false;\n }\n }\n return true;\n }\n return false;\n };\n\n const noop = () => {\n };\n\n class Optional {\n constructor(tag, value) {\n this.tag = tag;\n this.value = value;\n }\n static some(value) {\n return new Optional(true, value);\n }\n static none() {\n return Optional.singletonNone;\n }\n fold(onNone, onSome) {\n if (this.tag) {\n return onSome(this.value);\n } else {\n return onNone();\n }\n }\n isSome() {\n return this.tag;\n }\n isNone() {\n return !this.tag;\n }\n map(mapper) {\n if (this.tag) {\n return Optional.some(mapper(this.value));\n } else {\n return Optional.none();\n }\n }\n bind(binder) {\n if (this.tag) {\n return binder(this.value);\n } else {\n return Optional.none();\n }\n }\n exists(predicate) {\n return this.tag && predicate(this.value);\n }\n forall(predicate) {\n return !this.tag || predicate(this.value);\n }\n filter(predicate) {\n if (!this.tag || predicate(this.value)) {\n return this;\n } else {\n return Optional.none();\n }\n }\n getOr(replacement) {\n return this.tag ? this.value : replacement;\n }\n or(replacement) {\n return this.tag ? this : replacement;\n }\n getOrThunk(thunk) {\n return this.tag ? this.value : thunk();\n }\n orThunk(thunk) {\n return this.tag ? this : thunk();\n }\n getOrDie(message) {\n if (!this.tag) {\n throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None');\n } else {\n return this.value;\n }\n }\n static from(value) {\n return isNonNullable(value) ? Optional.some(value) : Optional.none();\n }\n getOrNull() {\n return this.tag ? this.value : null;\n }\n getOrUndefined() {\n return this.value;\n }\n each(worker) {\n if (this.tag) {\n worker(this.value);\n }\n }\n toArray() {\n return this.tag ? [this.value] : [];\n }\n toString() {\n return this.tag ? `some(${ this.value })` : 'none()';\n }\n }\n Optional.singletonNone = new Optional(false);\n\n const keys = Object.keys;\n const hasOwnProperty = Object.hasOwnProperty;\n const each = (obj, f) => {\n const props = keys(obj);\n for (let k = 0, len = props.length; k < len; k++) {\n const i = props[k];\n const x = obj[i];\n f(x, i);\n }\n };\n const objAcc = r => (x, i) => {\n r[i] = x;\n };\n const internalFilter = (obj, pred, onTrue, onFalse) => {\n each(obj, (x, i) => {\n (pred(x, i) ? onTrue : onFalse)(x, i);\n });\n };\n const filter = (obj, pred) => {\n const t = {};\n internalFilter(obj, pred, objAcc(t), noop);\n return t;\n };\n const has = (obj, key) => hasOwnProperty.call(obj, key);\n const hasNonNullableKey = (obj, key) => has(obj, key) && obj[key] !== undefined && obj[key] !== null;\n\n const nativePush = Array.prototype.push;\n const flatten = xs => {\n const r = [];\n for (let i = 0, len = xs.length; i < len; ++i) {\n if (!isArray(xs[i])) {\n throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);\n }\n nativePush.apply(r, xs[i]);\n }\n return r;\n };\n const get = (xs, i) => i >= 0 && i < xs.length ? Optional.some(xs[i]) : Optional.none();\n const head = xs => get(xs, 0);\n const findMap = (arr, f) => {\n for (let i = 0; i < arr.length; i++) {\n const r = f(arr[i], i);\n if (r.isSome()) {\n return r;\n }\n }\n return Optional.none();\n };\n\n typeof window !== 'undefined' ? window : Function('return this;')();\n\n const rawSet = (dom, key, value) => {\n if (isString(value) || isBoolean(value) || isNumber(value)) {\n dom.setAttribute(key, value + '');\n } else {\n console.error('Invalid call to Attribute.set. Key ', key, ':: Value ', value, ':: Element ', dom);\n throw new Error('Attribute value was not simple');\n }\n };\n const set = (element, key, value) => {\n rawSet(element.dom, key, value);\n };\n const remove = (element, key) => {\n element.dom.removeAttribute(key);\n };\n\n const fromHtml = (html, scope) => {\n const doc = scope || document;\n const div = doc.createElement('div');\n div.innerHTML = html;\n if (!div.hasChildNodes() || div.childNodes.length > 1) {\n const message = 'HTML does not have a single root node';\n console.error(message, html);\n throw new Error(message);\n }\n return fromDom(div.childNodes[0]);\n };\n const fromTag = (tag, scope) => {\n const doc = scope || document;\n const node = doc.createElement(tag);\n return fromDom(node);\n };\n const fromText = (text, scope) => {\n const doc = scope || document;\n const node = doc.createTextNode(text);\n return fromDom(node);\n };\n const fromDom = node => {\n if (node === null || node === undefined) {\n throw new Error('Node cannot be null or undefined');\n }\n return { dom: node };\n };\n const fromPoint = (docElm, x, y) => Optional.from(docElm.dom.elementFromPoint(x, y)).map(fromDom);\n const SugarElement = {\n fromHtml,\n fromTag,\n fromText,\n fromDom,\n fromPoint\n };\n\n var global$3 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');\n\n var global$2 = tinymce.util.Tools.resolve('tinymce.util.URI');\n\n const isNotEmpty = s => s.length > 0;\n\n const option = name => editor => editor.options.get(name);\n const register$2 = editor => {\n const registerOption = editor.options.register;\n registerOption('image_dimensions', {\n processor: 'boolean',\n default: true\n });\n registerOption('image_advtab', {\n processor: 'boolean',\n default: false\n });\n registerOption('image_uploadtab', {\n processor: 'boolean',\n default: true\n });\n registerOption('image_prepend_url', {\n processor: 'string',\n default: ''\n });\n registerOption('image_class_list', { processor: 'object[]' });\n registerOption('image_description', {\n processor: 'boolean',\n default: true\n });\n registerOption('image_title', {\n processor: 'boolean',\n default: false\n });\n registerOption('image_caption', {\n processor: 'boolean',\n default: false\n });\n registerOption('image_list', {\n processor: value => {\n const valid = value === false || isString(value) || isArrayOf(value, isObject) || isFunction(value);\n return valid ? {\n value,\n valid\n } : {\n valid: false,\n message: 'Must be false, a string, an array or a function.'\n };\n },\n default: false\n });\n };\n const hasDimensions = option('image_dimensions');\n const hasAdvTab = option('image_advtab');\n const hasUploadTab = option('image_uploadtab');\n const getPrependUrl = option('image_prepend_url');\n const getClassList = option('image_class_list');\n const hasDescription = option('image_description');\n const hasImageTitle = option('image_title');\n const hasImageCaption = option('image_caption');\n const getImageList = option('image_list');\n const showAccessibilityOptions = option('a11y_advanced_options');\n const isAutomaticUploadsEnabled = option('automatic_uploads');\n const hasUploadUrl = editor => isNotEmpty(editor.options.get('images_upload_url'));\n const hasUploadHandler = editor => isNonNullable(editor.options.get('images_upload_handler'));\n\n const parseIntAndGetMax = (val1, val2) => Math.max(parseInt(val1, 10), parseInt(val2, 10));\n const getImageSize = url => new Promise(callback => {\n const img = document.createElement('img');\n const done = dimensions => {\n img.onload = img.onerror = null;\n if (img.parentNode) {\n img.parentNode.removeChild(img);\n }\n callback(dimensions);\n };\n img.onload = () => {\n const width = parseIntAndGetMax(img.width, img.clientWidth);\n const height = parseIntAndGetMax(img.height, img.clientHeight);\n const dimensions = {\n width,\n height\n };\n done(Promise.resolve(dimensions));\n };\n img.onerror = () => {\n done(Promise.reject(`Failed to get image dimensions for: ${ url }`));\n };\n const style = img.style;\n style.visibility = 'hidden';\n style.position = 'fixed';\n style.bottom = style.left = '0px';\n style.width = style.height = 'auto';\n document.body.appendChild(img);\n img.src = url;\n });\n const removePixelSuffix = value => {\n if (value) {\n value = value.replace(/px$/, '');\n }\n return value;\n };\n const addPixelSuffix = value => {\n if (value.length > 0 && /^[0-9]+$/.test(value)) {\n value += 'px';\n }\n return value;\n };\n const mergeMargins = css => {\n if (css.margin) {\n const splitMargin = String(css.margin).split(' ');\n switch (splitMargin.length) {\n case 1:\n css['margin-top'] = css['margin-top'] || splitMargin[0];\n css['margin-right'] = css['margin-right'] || splitMargin[0];\n css['margin-bottom'] = css['margin-bottom'] || splitMargin[0];\n css['margin-left'] = css['margin-left'] || splitMargin[0];\n break;\n case 2:\n css['margin-top'] = css['margin-top'] || splitMargin[0];\n css['margin-right'] = css['margin-right'] || splitMargin[1];\n css['margin-bottom'] = css['margin-bottom'] || splitMargin[0];\n css['margin-left'] = css['margin-left'] || splitMargin[1];\n break;\n case 3:\n css['margin-top'] = css['margin-top'] || splitMargin[0];\n css['margin-right'] = css['margin-right'] || splitMargin[1];\n css['margin-bottom'] = css['margin-bottom'] || splitMargin[2];\n css['margin-left'] = css['margin-left'] || splitMargin[1];\n break;\n case 4:\n css['margin-top'] = css['margin-top'] || splitMargin[0];\n css['margin-right'] = css['margin-right'] || splitMargin[1];\n css['margin-bottom'] = css['margin-bottom'] || splitMargin[2];\n css['margin-left'] = css['margin-left'] || splitMargin[3];\n }\n delete css.margin;\n }\n return css;\n };\n const createImageList = (editor, callback) => {\n const imageList = getImageList(editor);\n if (isString(imageList)) {\n fetch(imageList).then(res => {\n if (res.ok) {\n res.json().then(callback);\n }\n });\n } else if (isFunction(imageList)) {\n imageList(callback);\n } else {\n callback(imageList);\n }\n };\n const waitLoadImage = (editor, data, imgElm) => {\n const selectImage = () => {\n imgElm.onload = imgElm.onerror = null;\n if (editor.selection) {\n editor.selection.select(imgElm);\n editor.nodeChanged();\n }\n };\n imgElm.onload = () => {\n if (!data.width && !data.height && hasDimensions(editor)) {\n editor.dom.setAttribs(imgElm, {\n width: String(imgElm.clientWidth),\n height: String(imgElm.clientHeight)\n });\n }\n selectImage();\n };\n imgElm.onerror = selectImage;\n };\n const blobToDataUri = blob => new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => {\n resolve(reader.result);\n };\n reader.onerror = () => {\n var _a;\n reject((_a = reader.error) === null || _a === void 0 ? void 0 : _a.message);\n };\n reader.readAsDataURL(blob);\n });\n const isPlaceholderImage = imgElm => imgElm.nodeName === 'IMG' && (imgElm.hasAttribute('data-mce-object') || imgElm.hasAttribute('data-mce-placeholder'));\n const isSafeImageUrl = (editor, src) => {\n const getOption = editor.options.get;\n return global$2.isDomSafe(src, 'img', {\n allow_html_data_urls: getOption('allow_html_data_urls'),\n allow_script_urls: getOption('allow_script_urls'),\n allow_svg_data_urls: getOption('allow_svg_data_urls')\n });\n };\n\n const DOM = global$3.DOM;\n const getHspace = image => {\n if (image.style.marginLeft && image.style.marginRight && image.style.marginLeft === image.style.marginRight) {\n return removePixelSuffix(image.style.marginLeft);\n } else {\n return '';\n }\n };\n const getVspace = image => {\n if (image.style.marginTop && image.style.marginBottom && image.style.marginTop === image.style.marginBottom) {\n return removePixelSuffix(image.style.marginTop);\n } else {\n return '';\n }\n };\n const getBorder = image => {\n if (image.style.borderWidth) {\n return removePixelSuffix(image.style.borderWidth);\n } else {\n return '';\n }\n };\n const getAttrib = (image, name) => {\n var _a;\n if (image.hasAttribute(name)) {\n return (_a = image.getAttribute(name)) !== null && _a !== void 0 ? _a : '';\n } else {\n return '';\n }\n };\n const hasCaption = image => image.parentNode !== null && image.parentNode.nodeName === 'FIGURE';\n const updateAttrib = (image, name, value) => {\n if (value === '' || value === null) {\n image.removeAttribute(name);\n } else {\n image.setAttribute(name, value);\n }\n };\n const wrapInFigure = image => {\n const figureElm = DOM.create('figure', { class: 'image' });\n DOM.insertAfter(figureElm, image);\n figureElm.appendChild(image);\n figureElm.appendChild(DOM.create('figcaption', { contentEditable: 'true' }, 'Caption'));\n figureElm.contentEditable = 'false';\n };\n const removeFigure = image => {\n const figureElm = image.parentNode;\n if (isNonNullable(figureElm)) {\n DOM.insertAfter(image, figureElm);\n DOM.remove(figureElm);\n }\n };\n const toggleCaption = image => {\n if (hasCaption(image)) {\n removeFigure(image);\n } else {\n wrapInFigure(image);\n }\n };\n const normalizeStyle = (image, normalizeCss) => {\n const attrValue = image.getAttribute('style');\n const value = normalizeCss(attrValue !== null ? attrValue : '');\n if (value.length > 0) {\n image.setAttribute('style', value);\n image.setAttribute('data-mce-style', value);\n } else {\n image.removeAttribute('style');\n }\n };\n const setSize = (name, normalizeCss) => (image, name, value) => {\n const styles = image.style;\n if (styles[name]) {\n styles[name] = addPixelSuffix(value);\n normalizeStyle(image, normalizeCss);\n } else {\n updateAttrib(image, name, value);\n }\n };\n const getSize = (image, name) => {\n if (image.style[name]) {\n return removePixelSuffix(image.style[name]);\n } else {\n return getAttrib(image, name);\n }\n };\n const setHspace = (image, value) => {\n const pxValue = addPixelSuffix(value);\n image.style.marginLeft = pxValue;\n image.style.marginRight = pxValue;\n };\n const setVspace = (image, value) => {\n const pxValue = addPixelSuffix(value);\n image.style.marginTop = pxValue;\n image.style.marginBottom = pxValue;\n };\n const setBorder = (image, value) => {\n const pxValue = addPixelSuffix(value);\n image.style.borderWidth = pxValue;\n };\n const setBorderStyle = (image, value) => {\n image.style.borderStyle = value;\n };\n const getBorderStyle = image => {\n var _a;\n return (_a = image.style.borderStyle) !== null && _a !== void 0 ? _a : '';\n };\n const isFigure = elm => isNonNullable(elm) && elm.nodeName === 'FIGURE';\n const isImage = elm => elm.nodeName === 'IMG';\n const getIsDecorative = image => DOM.getAttrib(image, 'alt').length === 0 && DOM.getAttrib(image, 'role') === 'presentation';\n const getAlt = image => {\n if (getIsDecorative(image)) {\n return '';\n } else {\n return getAttrib(image, 'alt');\n }\n };\n const defaultData = () => ({\n src: '',\n alt: '',\n title: '',\n width: '',\n height: '',\n class: '',\n style: '',\n caption: false,\n hspace: '',\n vspace: '',\n border: '',\n borderStyle: '',\n isDecorative: false\n });\n const getStyleValue = (normalizeCss, data) => {\n var _a;\n const image = document.createElement('img');\n updateAttrib(image, 'style', data.style);\n if (getHspace(image) || data.hspace !== '') {\n setHspace(image, data.hspace);\n }\n if (getVspace(image) || data.vspace !== '') {\n setVspace(image, data.vspace);\n }\n if (getBorder(image) || data.border !== '') {\n setBorder(image, data.border);\n }\n if (getBorderStyle(image) || data.borderStyle !== '') {\n setBorderStyle(image, data.borderStyle);\n }\n return normalizeCss((_a = image.getAttribute('style')) !== null && _a !== void 0 ? _a : '');\n };\n const create = (normalizeCss, data) => {\n const image = document.createElement('img');\n write(normalizeCss, {\n ...data,\n caption: false\n }, image);\n setAlt(image, data.alt, data.isDecorative);\n if (data.caption) {\n const figure = DOM.create('figure', { class: 'image' });\n figure.appendChild(image);\n figure.appendChild(DOM.create('figcaption', { contentEditable: 'true' }, 'Caption'));\n figure.contentEditable = 'false';\n return figure;\n } else {\n return image;\n }\n };\n const read = (normalizeCss, image) => ({\n src: getAttrib(image, 'src'),\n alt: getAlt(image),\n title: getAttrib(image, 'title'),\n width: getSize(image, 'width'),\n height: getSize(image, 'height'),\n class: getAttrib(image, 'class'),\n style: normalizeCss(getAttrib(image, 'style')),\n caption: hasCaption(image),\n hspace: getHspace(image),\n vspace: getVspace(image),\n border: getBorder(image),\n borderStyle: getBorderStyle(image),\n isDecorative: getIsDecorative(image)\n });\n const updateProp = (image, oldData, newData, name, set) => {\n if (newData[name] !== oldData[name]) {\n set(image, name, String(newData[name]));\n }\n };\n const setAlt = (image, alt, isDecorative) => {\n if (isDecorative) {\n DOM.setAttrib(image, 'role', 'presentation');\n const sugarImage = SugarElement.fromDom(image);\n set(sugarImage, 'alt', '');\n } else {\n if (isNull(alt)) {\n const sugarImage = SugarElement.fromDom(image);\n remove(sugarImage, 'alt');\n } else {\n const sugarImage = SugarElement.fromDom(image);\n set(sugarImage, 'alt', alt);\n }\n if (DOM.getAttrib(image, 'role') === 'presentation') {\n DOM.setAttrib(image, 'role', '');\n }\n }\n };\n const updateAlt = (image, oldData, newData) => {\n if (newData.alt !== oldData.alt || newData.isDecorative !== oldData.isDecorative) {\n setAlt(image, newData.alt, newData.isDecorative);\n }\n };\n const normalized = (set, normalizeCss) => (image, name, value) => {\n set(image, value);\n normalizeStyle(image, normalizeCss);\n };\n const write = (normalizeCss, newData, image) => {\n const oldData = read(normalizeCss, image);\n updateProp(image, oldData, newData, 'caption', (image, _name, _value) => toggleCaption(image));\n updateProp(image, oldData, newData, 'src', updateAttrib);\n updateProp(image, oldData, newData, 'title', updateAttrib);\n updateProp(image, oldData, newData, 'width', setSize('width', normalizeCss));\n updateProp(image, oldData, newData, 'height', setSize('height', normalizeCss));\n updateProp(image, oldData, newData, 'class', updateAttrib);\n updateProp(image, oldData, newData, 'style', normalized((image, value) => updateAttrib(image, 'style', value), normalizeCss));\n updateProp(image, oldData, newData, 'hspace', normalized(setHspace, normalizeCss));\n updateProp(image, oldData, newData, 'vspace', normalized(setVspace, normalizeCss));\n updateProp(image, oldData, newData, 'border', normalized(setBorder, normalizeCss));\n updateProp(image, oldData, newData, 'borderStyle', normalized(setBorderStyle, normalizeCss));\n updateAlt(image, oldData, newData);\n };\n\n const normalizeCss$1 = (editor, cssText) => {\n const css = editor.dom.styles.parse(cssText);\n const mergedCss = mergeMargins(css);\n const compressed = editor.dom.styles.parse(editor.dom.styles.serialize(mergedCss));\n return editor.dom.styles.serialize(compressed);\n };\n const getSelectedImage = editor => {\n const imgElm = editor.selection.getNode();\n const figureElm = editor.dom.getParent(imgElm, 'figure.image');\n if (figureElm) {\n return editor.dom.select('img', figureElm)[0];\n }\n if (imgElm && (imgElm.nodeName !== 'IMG' || isPlaceholderImage(imgElm))) {\n return null;\n }\n return imgElm;\n };\n const splitTextBlock = (editor, figure) => {\n var _a;\n const dom = editor.dom;\n const textBlockElements = filter(editor.schema.getTextBlockElements(), (_, parentElm) => !editor.schema.isValidChild(parentElm, 'figure'));\n const textBlock = dom.getParent(figure.parentNode, node => hasNonNullableKey(textBlockElements, node.nodeName), editor.getBody());\n if (textBlock) {\n return (_a = dom.split(textBlock, figure)) !== null && _a !== void 0 ? _a : figure;\n } else {\n return figure;\n }\n };\n const readImageDataFromSelection = editor => {\n const image = getSelectedImage(editor);\n return image ? read(css => normalizeCss$1(editor, css), image) : defaultData();\n };\n const insertImageAtCaret = (editor, data) => {\n const elm = create(css => normalizeCss$1(editor, css), data);\n editor.dom.setAttrib(elm, 'data-mce-id', '__mcenew');\n editor.focus();\n editor.selection.setContent(elm.outerHTML);\n const insertedElm = editor.dom.select('*[data-mce-id=\"__mcenew\"]')[0];\n editor.dom.setAttrib(insertedElm, 'data-mce-id', null);\n if (isFigure(insertedElm)) {\n const figure = splitTextBlock(editor, insertedElm);\n editor.selection.select(figure);\n } else {\n editor.selection.select(insertedElm);\n }\n };\n const syncSrcAttr = (editor, image) => {\n editor.dom.setAttrib(image, 'src', image.getAttribute('src'));\n };\n const deleteImage = (editor, image) => {\n if (image) {\n const elm = editor.dom.is(image.parentNode, 'figure.image') ? image.parentNode : image;\n editor.dom.remove(elm);\n editor.focus();\n editor.nodeChanged();\n if (editor.dom.isEmpty(editor.getBody())) {\n editor.setContent('');\n editor.selection.setCursorLocation();\n }\n }\n };\n const writeImageDataToSelection = (editor, data) => {\n const image = getSelectedImage(editor);\n if (image) {\n write(css => normalizeCss$1(editor, css), data, image);\n syncSrcAttr(editor, image);\n if (isFigure(image.parentNode)) {\n const figure = image.parentNode;\n splitTextBlock(editor, figure);\n editor.selection.select(image.parentNode);\n } else {\n editor.selection.select(image);\n waitLoadImage(editor, data, image);\n }\n }\n };\n const sanitizeImageData = (editor, data) => {\n const src = data.src;\n return {\n ...data,\n src: isSafeImageUrl(editor, src) ? src : ''\n };\n };\n const insertOrUpdateImage = (editor, partialData) => {\n const image = getSelectedImage(editor);\n if (image) {\n const selectedImageData = read(css => normalizeCss$1(editor, css), image);\n const data = {\n ...selectedImageData,\n ...partialData\n };\n const sanitizedData = sanitizeImageData(editor, data);\n if (data.src) {\n writeImageDataToSelection(editor, sanitizedData);\n } else {\n deleteImage(editor, image);\n }\n } else if (partialData.src) {\n insertImageAtCaret(editor, {\n ...defaultData(),\n ...partialData\n });\n }\n };\n\n const deep = (old, nu) => {\n const bothObjects = isPlainObject(old) && isPlainObject(nu);\n return bothObjects ? deepMerge(old, nu) : nu;\n };\n const baseMerge = merger => {\n return (...objects) => {\n if (objects.length === 0) {\n throw new Error(`Can't merge zero objects`);\n }\n const ret = {};\n for (let j = 0; j < objects.length; j++) {\n const curObject = objects[j];\n for (const key in curObject) {\n if (has(curObject, key)) {\n ret[key] = merger(ret[key], curObject[key]);\n }\n }\n }\n return ret;\n };\n };\n const deepMerge = baseMerge(deep);\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.util.ImageUploader');\n\n var global = tinymce.util.Tools.resolve('tinymce.util.Tools');\n\n const getValue = item => isString(item.value) ? item.value : '';\n const getText = item => {\n if (isString(item.text)) {\n return item.text;\n } else if (isString(item.title)) {\n return item.title;\n } else {\n return '';\n }\n };\n const sanitizeList = (list, extractValue) => {\n const out = [];\n global.each(list, item => {\n const text = getText(item);\n if (item.menu !== undefined) {\n const items = sanitizeList(item.menu, extractValue);\n out.push({\n text,\n items\n });\n } else {\n const value = extractValue(item);\n out.push({\n text,\n value\n });\n }\n });\n return out;\n };\n const sanitizer = (extractor = getValue) => list => {\n if (list) {\n return Optional.from(list).map(list => sanitizeList(list, extractor));\n } else {\n return Optional.none();\n }\n };\n const sanitize = list => sanitizer(getValue)(list);\n const isGroup = item => has(item, 'items');\n const findEntryDelegate = (list, value) => findMap(list, item => {\n if (isGroup(item)) {\n return findEntryDelegate(item.items, value);\n } else if (item.value === value) {\n return Optional.some(item);\n } else {\n return Optional.none();\n }\n });\n const findEntry = (optList, value) => optList.bind(list => findEntryDelegate(list, value));\n const ListUtils = {\n sanitizer,\n sanitize,\n findEntry\n };\n\n const makeTab$2 = _info => ({\n title: 'Advanced',\n name: 'advanced',\n items: [{\n type: 'grid',\n columns: 2,\n items: [\n {\n type: 'input',\n label: 'Vertical space',\n name: 'vspace',\n inputMode: 'numeric'\n },\n {\n type: 'input',\n label: 'Horizontal space',\n name: 'hspace',\n inputMode: 'numeric'\n },\n {\n type: 'input',\n label: 'Border width',\n name: 'border',\n inputMode: 'numeric'\n },\n {\n type: 'listbox',\n name: 'borderstyle',\n label: 'Border style',\n items: [\n {\n text: 'Select...',\n value: ''\n },\n {\n text: 'Solid',\n value: 'solid'\n },\n {\n text: 'Dotted',\n value: 'dotted'\n },\n {\n text: 'Dashed',\n value: 'dashed'\n },\n {\n text: 'Double',\n value: 'double'\n },\n {\n text: 'Groove',\n value: 'groove'\n },\n {\n text: 'Ridge',\n value: 'ridge'\n },\n {\n text: 'Inset',\n value: 'inset'\n },\n {\n text: 'Outset',\n value: 'outset'\n },\n {\n text: 'None',\n value: 'none'\n },\n {\n text: 'Hidden',\n value: 'hidden'\n }\n ]\n }\n ]\n }]\n });\n const AdvTab = { makeTab: makeTab$2 };\n\n const collect = editor => {\n const urlListSanitizer = ListUtils.sanitizer(item => editor.convertURL(item.value || item.url || '', 'src'));\n const futureImageList = new Promise(completer => {\n createImageList(editor, imageList => {\n completer(urlListSanitizer(imageList).map(items => flatten([\n [{\n text: 'None',\n value: ''\n }],\n items\n ])));\n });\n });\n const classList = ListUtils.sanitize(getClassList(editor));\n const hasAdvTab$1 = hasAdvTab(editor);\n const hasUploadTab$1 = hasUploadTab(editor);\n const hasUploadUrl$1 = hasUploadUrl(editor);\n const hasUploadHandler$1 = hasUploadHandler(editor);\n const image = readImageDataFromSelection(editor);\n const hasDescription$1 = hasDescription(editor);\n const hasImageTitle$1 = hasImageTitle(editor);\n const hasDimensions$1 = hasDimensions(editor);\n const hasImageCaption$1 = hasImageCaption(editor);\n const hasAccessibilityOptions = showAccessibilityOptions(editor);\n const automaticUploads = isAutomaticUploadsEnabled(editor);\n const prependURL = Optional.some(getPrependUrl(editor)).filter(preUrl => isString(preUrl) && preUrl.length > 0);\n return futureImageList.then(imageList => ({\n image,\n imageList,\n classList,\n hasAdvTab: hasAdvTab$1,\n hasUploadTab: hasUploadTab$1,\n hasUploadUrl: hasUploadUrl$1,\n hasUploadHandler: hasUploadHandler$1,\n hasDescription: hasDescription$1,\n hasImageTitle: hasImageTitle$1,\n hasDimensions: hasDimensions$1,\n hasImageCaption: hasImageCaption$1,\n prependURL,\n hasAccessibilityOptions,\n automaticUploads\n }));\n };\n\n const makeItems = info => {\n const imageUrl = {\n name: 'src',\n type: 'urlinput',\n filetype: 'image',\n label: 'Source',\n picker_text: 'Browse files'\n };\n const imageList = info.imageList.map(items => ({\n name: 'images',\n type: 'listbox',\n label: 'Image list',\n items\n }));\n const imageDescription = {\n name: 'alt',\n type: 'input',\n label: 'Alternative description',\n enabled: !(info.hasAccessibilityOptions && info.image.isDecorative)\n };\n const imageTitle = {\n name: 'title',\n type: 'input',\n label: 'Image title'\n };\n const imageDimensions = {\n name: 'dimensions',\n type: 'sizeinput'\n };\n const isDecorative = {\n type: 'label',\n label: 'Accessibility',\n items: [{\n name: 'isDecorative',\n type: 'checkbox',\n label: 'Image is decorative'\n }]\n };\n const classList = info.classList.map(items => ({\n name: 'classes',\n type: 'listbox',\n label: 'Class',\n items\n }));\n const caption = {\n type: 'label',\n label: 'Caption',\n items: [{\n type: 'checkbox',\n name: 'caption',\n label: 'Show caption'\n }]\n };\n const getDialogContainerType = useColumns => useColumns ? {\n type: 'grid',\n columns: 2\n } : { type: 'panel' };\n return flatten([\n [imageUrl],\n imageList.toArray(),\n info.hasAccessibilityOptions && info.hasDescription ? [isDecorative] : [],\n info.hasDescription ? [imageDescription] : [],\n info.hasImageTitle ? [imageTitle] : [],\n info.hasDimensions ? [imageDimensions] : [],\n [{\n ...getDialogContainerType(info.classList.isSome() && info.hasImageCaption),\n items: flatten([\n classList.toArray(),\n info.hasImageCaption ? [caption] : []\n ])\n }]\n ]);\n };\n const makeTab$1 = info => ({\n title: 'General',\n name: 'general',\n items: makeItems(info)\n });\n const MainTab = {\n makeTab: makeTab$1,\n makeItems\n };\n\n const makeTab = _info => {\n const items = [{\n type: 'dropzone',\n name: 'fileinput'\n }];\n return {\n title: 'Upload',\n name: 'upload',\n items\n };\n };\n const UploadTab = { makeTab };\n\n const createState = info => ({\n prevImage: ListUtils.findEntry(info.imageList, info.image.src),\n prevAlt: info.image.alt,\n open: true\n });\n const fromImageData = image => ({\n src: {\n value: image.src,\n meta: {}\n },\n images: image.src,\n alt: image.alt,\n title: image.title,\n dimensions: {\n width: image.width,\n height: image.height\n },\n classes: image.class,\n caption: image.caption,\n style: image.style,\n vspace: image.vspace,\n border: image.border,\n hspace: image.hspace,\n borderstyle: image.borderStyle,\n fileinput: [],\n isDecorative: image.isDecorative\n });\n const toImageData = (data, removeEmptyAlt) => ({\n src: data.src.value,\n alt: (data.alt === null || data.alt.length === 0) && removeEmptyAlt ? null : data.alt,\n title: data.title,\n width: data.dimensions.width,\n height: data.dimensions.height,\n class: data.classes,\n style: data.style,\n caption: data.caption,\n hspace: data.hspace,\n vspace: data.vspace,\n border: data.border,\n borderStyle: data.borderstyle,\n isDecorative: data.isDecorative\n });\n const addPrependUrl2 = (info, srcURL) => {\n if (!/^(?:[a-zA-Z]+:)?\\/\\//.test(srcURL)) {\n return info.prependURL.bind(prependUrl => {\n if (srcURL.substring(0, prependUrl.length) !== prependUrl) {\n return Optional.some(prependUrl + srcURL);\n }\n return Optional.none();\n });\n }\n return Optional.none();\n };\n const addPrependUrl = (info, api) => {\n const data = api.getData();\n addPrependUrl2(info, data.src.value).each(srcURL => {\n api.setData({\n src: {\n value: srcURL,\n meta: data.src.meta\n }\n });\n });\n };\n const formFillFromMeta2 = (info, data, meta) => {\n if (info.hasDescription && isString(meta.alt)) {\n data.alt = meta.alt;\n }\n if (info.hasAccessibilityOptions) {\n data.isDecorative = meta.isDecorative || data.isDecorative || false;\n }\n if (info.hasImageTitle && isString(meta.title)) {\n data.title = meta.title;\n }\n if (info.hasDimensions) {\n if (isString(meta.width)) {\n data.dimensions.width = meta.width;\n }\n if (isString(meta.height)) {\n data.dimensions.height = meta.height;\n }\n }\n if (isString(meta.class)) {\n ListUtils.findEntry(info.classList, meta.class).each(entry => {\n data.classes = entry.value;\n });\n }\n if (info.hasImageCaption) {\n if (isBoolean(meta.caption)) {\n data.caption = meta.caption;\n }\n }\n if (info.hasAdvTab) {\n if (isString(meta.style)) {\n data.style = meta.style;\n }\n if (isString(meta.vspace)) {\n data.vspace = meta.vspace;\n }\n if (isString(meta.border)) {\n data.border = meta.border;\n }\n if (isString(meta.hspace)) {\n data.hspace = meta.hspace;\n }\n if (isString(meta.borderstyle)) {\n data.borderstyle = meta.borderstyle;\n }\n }\n };\n const formFillFromMeta = (info, api) => {\n const data = api.getData();\n const meta = data.src.meta;\n if (meta !== undefined) {\n const newData = deepMerge({}, data);\n formFillFromMeta2(info, newData, meta);\n api.setData(newData);\n }\n };\n const calculateImageSize = (helpers, info, state, api) => {\n const data = api.getData();\n const url = data.src.value;\n const meta = data.src.meta || {};\n if (!meta.width && !meta.height && info.hasDimensions) {\n if (isNotEmpty(url)) {\n helpers.imageSize(url).then(size => {\n if (state.open) {\n api.setData({ dimensions: size });\n }\n }).catch(e => console.error(e));\n } else {\n api.setData({\n dimensions: {\n width: '',\n height: ''\n }\n });\n }\n }\n };\n const updateImagesDropdown = (info, state, api) => {\n const data = api.getData();\n const image = ListUtils.findEntry(info.imageList, data.src.value);\n state.prevImage = image;\n api.setData({ images: image.map(entry => entry.value).getOr('') });\n };\n const changeSrc = (helpers, info, state, api) => {\n addPrependUrl(info, api);\n formFillFromMeta(info, api);\n calculateImageSize(helpers, info, state, api);\n updateImagesDropdown(info, state, api);\n };\n const changeImages = (helpers, info, state, api) => {\n const data = api.getData();\n const image = ListUtils.findEntry(info.imageList, data.images);\n image.each(img => {\n const updateAlt = data.alt === '' || state.prevImage.map(image => image.text === data.alt).getOr(false);\n if (updateAlt) {\n if (img.value === '') {\n api.setData({\n src: img,\n alt: state.prevAlt\n });\n } else {\n api.setData({\n src: img,\n alt: img.text\n });\n }\n } else {\n api.setData({ src: img });\n }\n });\n state.prevImage = image;\n changeSrc(helpers, info, state, api);\n };\n const changeFileInput = (helpers, info, state, api) => {\n const data = api.getData();\n api.block('Uploading image');\n head(data.fileinput).fold(() => {\n api.unblock();\n }, file => {\n const blobUri = URL.createObjectURL(file);\n const finalize = () => {\n api.unblock();\n URL.revokeObjectURL(blobUri);\n };\n const updateSrcAndSwitchTab = url => {\n api.setData({\n src: {\n value: url,\n meta: {}\n }\n });\n api.showTab('general');\n changeSrc(helpers, info, state, api);\n };\n blobToDataUri(file).then(dataUrl => {\n const blobInfo = helpers.createBlobCache(file, blobUri, dataUrl);\n if (info.automaticUploads) {\n helpers.uploadImage(blobInfo).then(result => {\n updateSrcAndSwitchTab(result.url);\n finalize();\n }).catch(err => {\n finalize();\n helpers.alertErr(err);\n });\n } else {\n helpers.addToBlobCache(blobInfo);\n updateSrcAndSwitchTab(blobInfo.blobUri());\n api.unblock();\n }\n });\n });\n };\n const changeHandler = (helpers, info, state) => (api, evt) => {\n if (evt.name === 'src') {\n changeSrc(helpers, info, state, api);\n } else if (evt.name === 'images') {\n changeImages(helpers, info, state, api);\n } else if (evt.name === 'alt') {\n state.prevAlt = api.getData().alt;\n } else if (evt.name === 'fileinput') {\n changeFileInput(helpers, info, state, api);\n } else if (evt.name === 'isDecorative') {\n api.setEnabled('alt', !api.getData().isDecorative);\n }\n };\n const closeHandler = state => () => {\n state.open = false;\n };\n const makeDialogBody = info => {\n if (info.hasAdvTab || info.hasUploadUrl || info.hasUploadHandler) {\n const tabPanel = {\n type: 'tabpanel',\n tabs: flatten([\n [MainTab.makeTab(info)],\n info.hasAdvTab ? [AdvTab.makeTab(info)] : [],\n info.hasUploadTab && (info.hasUploadUrl || info.hasUploadHandler) ? [UploadTab.makeTab(info)] : []\n ])\n };\n return tabPanel;\n } else {\n const panel = {\n type: 'panel',\n items: MainTab.makeItems(info)\n };\n return panel;\n }\n };\n const submitHandler = (editor, info, helpers) => api => {\n const data = deepMerge(fromImageData(info.image), api.getData());\n const finalData = {\n ...data,\n style: getStyleValue(helpers.normalizeCss, toImageData(data, false))\n };\n editor.execCommand('mceUpdateImage', false, toImageData(finalData, info.hasAccessibilityOptions));\n editor.editorUpload.uploadImagesAuto();\n api.close();\n };\n const imageSize = editor => url => {\n if (!isSafeImageUrl(editor, url)) {\n return Promise.resolve({\n width: '',\n height: ''\n });\n } else {\n return getImageSize(editor.documentBaseURI.toAbsolute(url)).then(dimensions => ({\n width: String(dimensions.width),\n height: String(dimensions.height)\n }));\n }\n };\n const createBlobCache = editor => (file, blobUri, dataUrl) => {\n var _a;\n return editor.editorUpload.blobCache.create({\n blob: file,\n blobUri,\n name: (_a = file.name) === null || _a === void 0 ? void 0 : _a.replace(/\\.[^\\.]+$/, ''),\n filename: file.name,\n base64: dataUrl.split(',')[1]\n });\n };\n const addToBlobCache = editor => blobInfo => {\n editor.editorUpload.blobCache.add(blobInfo);\n };\n const alertErr = editor => message => {\n editor.windowManager.alert(message);\n };\n const normalizeCss = editor => cssText => normalizeCss$1(editor, cssText);\n const parseStyle = editor => cssText => editor.dom.parseStyle(cssText);\n const serializeStyle = editor => (stylesArg, name) => editor.dom.serializeStyle(stylesArg, name);\n const uploadImage = editor => blobInfo => global$1(editor).upload([blobInfo], false).then(results => {\n var _a;\n if (results.length === 0) {\n return Promise.reject('Failed to upload image');\n } else if (results[0].status === false) {\n return Promise.reject((_a = results[0].error) === null || _a === void 0 ? void 0 : _a.message);\n } else {\n return results[0];\n }\n });\n const Dialog = editor => {\n const helpers = {\n imageSize: imageSize(editor),\n addToBlobCache: addToBlobCache(editor),\n createBlobCache: createBlobCache(editor),\n alertErr: alertErr(editor),\n normalizeCss: normalizeCss(editor),\n parseStyle: parseStyle(editor),\n serializeStyle: serializeStyle(editor),\n uploadImage: uploadImage(editor)\n };\n const open = () => {\n collect(editor).then(info => {\n const state = createState(info);\n return {\n title: 'Insert/Edit Image',\n size: 'normal',\n body: makeDialogBody(info),\n buttons: [\n {\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n },\n {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }\n ],\n initialData: fromImageData(info.image),\n onSubmit: submitHandler(editor, info, helpers),\n onChange: changeHandler(helpers, info, state),\n onClose: closeHandler(state)\n };\n }).then(editor.windowManager.open);\n };\n return { open };\n };\n\n const register$1 = editor => {\n editor.addCommand('mceImage', Dialog(editor).open);\n editor.addCommand('mceUpdateImage', (_ui, data) => {\n editor.undoManager.transact(() => insertOrUpdateImage(editor, data));\n });\n };\n\n const hasImageClass = node => {\n const className = node.attr('class');\n return isNonNullable(className) && /\\bimage\\b/.test(className);\n };\n const toggleContentEditableState = state => nodes => {\n let i = nodes.length;\n const toggleContentEditable = node => {\n node.attr('contenteditable', state ? 'true' : null);\n };\n while (i--) {\n const node = nodes[i];\n if (hasImageClass(node)) {\n node.attr('contenteditable', state ? 'false' : null);\n global.each(node.getAll('figcaption'), toggleContentEditable);\n }\n }\n };\n const setup = editor => {\n editor.on('PreInit', () => {\n editor.parser.addNodeFilter('figure', toggleContentEditableState(true));\n editor.serializer.addNodeFilter('figure', toggleContentEditableState(false));\n });\n };\n\n const onSetupEditable = editor => api => {\n const nodeChanged = () => {\n api.setEnabled(editor.selection.isEditable());\n };\n editor.on('NodeChange', nodeChanged);\n nodeChanged();\n return () => {\n editor.off('NodeChange', nodeChanged);\n };\n };\n const register = editor => {\n editor.ui.registry.addToggleButton('image', {\n icon: 'image',\n tooltip: 'Insert/edit image',\n onAction: Dialog(editor).open,\n onSetup: buttonApi => {\n buttonApi.setActive(isNonNullable(getSelectedImage(editor)));\n const unbindSelectorChanged = editor.selection.selectorChangedWithUnbind('img:not([data-mce-object]):not([data-mce-placeholder]),figure.image', buttonApi.setActive).unbind;\n const unbindEditable = onSetupEditable(editor)(buttonApi);\n return () => {\n unbindSelectorChanged();\n unbindEditable();\n };\n }\n });\n editor.ui.registry.addMenuItem('image', {\n icon: 'image',\n text: 'Image...',\n onAction: Dialog(editor).open,\n onSetup: onSetupEditable(editor)\n });\n editor.ui.registry.addContextMenu('image', { update: element => editor.selection.isEditable() && (isFigure(element) || isImage(element) && !isPlaceholderImage(element)) ? ['image'] : [] });\n };\n\n var Plugin = () => {\n global$4.add('image', editor => {\n register$2(editor);\n setup(editor);\n register(editor);\n register$1(editor);\n });\n };\n\n Plugin();\n\n})();\n"],"names":["global$4","tinymce","util","Tools","resolve","getPrototypeOf","Object","hasProto","v","constructor","predicate","_a","prototype","name","isType","type","value","x","t","Array","isArray","String","o","proto","isPrototypeOf","typeOf","isSimpleType","isString","isObject","isPlainObject","is","isNull","a","isBoolean","isNonNullable","isNullable","isFunction","isNumber","noop","Optional","tag","this","some","none","singletonNone","fold","onNone","onSome","isSome","isNone","map","mapper","bind","binder","exists","forall","filter","getOr","replacement","or","getOrThunk","thunk","orThunk","getOrDie","message","Error","from","getOrNull","getOrUndefined","each","worker","toArray","toString","keys","hasOwnProperty","internalFilter","obj","pred","onTrue","onFalse","f","props","k","len","length","i","has","key","call","nativePush","push","flatten","xs","r","apply","head","get","window","Function","set","element","dom","console","error","setAttribute","rawSet","fromDom","node","SugarElement","fromHtml","html","scope","div","document","createElement","innerHTML","hasChildNodes","childNodes","fromTag","fromText","text","createTextNode","fromPoint","docElm","y","elementFromPoint","global$3","global$2","isNotEmpty","s","option","editor","options","register$2","registerOption","register","processor","default","valid","isArrayOf","hasDimensions","hasAdvTab","hasUploadTab","getPrependUrl","getClassList","hasDescription","hasImageTitle","hasImageCaption","getImageList","showAccessibilityOptions","isAutomaticUploadsEnabled","parseIntAndGetMax","val1","val2","Math","max","parseInt","removePixelSuffix","replace","addPixelSuffix","test","isPlaceholderImage","imgElm","nodeName","hasAttribute","isSafeImageUrl","src","getOption","isDomSafe","allow_html_data_urls","allow_script_urls","allow_svg_data_urls","DOM","getHspace","image","style","marginLeft","marginRight","getVspace","marginTop","marginBottom","getBorder","borderWidth","getAttrib","getAttribute","hasCaption","parentNode","updateAttrib","removeAttribute","toggleCaption","figureElm","insertAfter","remove","removeFigure","create","class","appendChild","contentEditable","wrapInFigure","normalizeStyle","normalizeCss","attrValue","setSize","styles","getSize","setHspace","pxValue","setVspace","setBorder","setBorderStyle","borderStyle","getBorderStyle","isFigure","elm","getIsDecorative","getAlt","getStyleValue","data","hspace","vspace","border","read","alt","title","width","height","caption","isDecorative","updateProp","oldData","newData","setAlt","setAttrib","sugarImage","normalized","write","_name","_value","updateAlt","normalizeCss$1","cssText","mergedCss","css","margin","splitMargin","split","mergeMargins","parse","compressed","serialize","getSelectedImage","selection","getNode","getParent","select","splitTextBlock","figure","textBlockElements","schema","getTextBlockElements","_","parentElm","isValidChild","textBlock","hasNonNullableKey","undefined","getBody","insertImageAtCaret","focus","setContent","outerHTML","insertedElm","writeImageDataToSelection","syncSrcAttr","selectImage","onload","onerror","nodeChanged","setAttribs","clientWidth","clientHeight","waitLoadImage","insertOrUpdateImage","partialData","sanitizedData","sanitizeImageData","isEmpty","setCursorLocation","deleteImage","deepMerge","merger","old","nu","objects","ret","j","curObject","global$1","global","getValue","item","sanitizeList","list","extractValue","out","getText","menu","items","sanitizer","extractor","findEntryDelegate","arr","findMap","isGroup","ListUtils","optList","AdvTab","_info","columns","label","inputMode","collect","urlListSanitizer","convertURL","url","futureImageList","Promise","completer","callback","imageList","fetch","then","res","ok","json","createImageList","classList","hasAdvTab$1","hasUploadTab$1","hasUploadUrl$1","hasUploadUrl","hasUploadHandler$1","hasUploadHandler","readImageDataFromSelection","hasDescription$1","hasImageTitle$1","hasDimensions$1","hasImageCaption$1","hasAccessibilityOptions","automaticUploads","prependURL","preUrl","makeItems","info","imageDescription","enabled","filetype","picker_text","useColumns","MainTab","UploadTab","fromImageData","meta","images","dimensions","classes","borderstyle","fileinput","toImageData","removeEmptyAlt","addPrependUrl","api","getData","srcURL","prependUrl","substring","addPrependUrl2","setData","formFillFromMeta","entry","formFillFromMeta2","changeSrc","helpers","state","imageSize","size","open","catch","e","calculateImageSize","prevImage","updateImagesDropdown","changeFileInput","block","unblock","file","blobUri","URL","createObjectURL","finalize","revokeObjectURL","updateSrcAndSwitchTab","showTab","blob","reject","reader","FileReader","result","readAsDataURL","dataUrl","blobInfo","createBlobCache","uploadImage","err","alertErr","addToBlobCache","changeHandler","evt","img","prevAlt","changeImages","setEnabled","closeHandler","makeDialogBody","tabs","submitHandler","finalData","execCommand","editorUpload","uploadImagesAuto","close","done","removeChild","visibility","position","bottom","left","body","getImageSize","documentBaseURI","toAbsolute","blobCache","filename","base64","add","windowManager","alert","parseStyle","serializeStyle","stylesArg","upload","results","status","Dialog","createState","buttons","primary","initialData","onSubmit","onChange","onClose","hasImageClass","className","attr","toggleContentEditableState","nodes","toggleContentEditable","getAll","onSetupEditable","isEditable","on","off","parser","addNodeFilter","serializer","setup","ui","registry","addToggleButton","icon","tooltip","onAction","onSetup","buttonApi","setActive","unbindSelectorChanged","selectorChangedWithUnbind","unbind","unbindEditable","addMenuItem","addContextMenu","update","addCommand","_ui","undoManager","transact","register$1"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"plugin.mjs","sources":["../../../../../../public/tinymce/plugins/image/plugin.js"],"sourcesContent":["/**\n * TinyMCE version 6.8.5 (TBD)\n */\n\n(function () {\n 'use strict';\n\n var global$4 = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n const getPrototypeOf = Object.getPrototypeOf;\n const hasProto = (v, constructor, predicate) => {\n var _a;\n if (predicate(v, constructor.prototype)) {\n return true;\n } else {\n return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name;\n }\n };\n const typeOf = x => {\n const t = typeof x;\n if (x === null) {\n return 'null';\n } else if (t === 'object' && Array.isArray(x)) {\n return 'array';\n } else if (t === 'object' && hasProto(x, String, (o, proto) => proto.isPrototypeOf(o))) {\n return 'string';\n } else {\n return t;\n }\n };\n const isType = type => value => typeOf(value) === type;\n const isSimpleType = type => value => typeof value === type;\n const eq = t => a => t === a;\n const is = (value, constructor) => isObject(value) && hasProto(value, constructor, (o, proto) => getPrototypeOf(o) === proto);\n const isString = isType('string');\n const isObject = isType('object');\n const isPlainObject = value => is(value, Object);\n const isArray = isType('array');\n const isNull = eq(null);\n const isBoolean = isSimpleType('boolean');\n const isNullable = a => a === null || a === undefined;\n const isNonNullable = a => !isNullable(a);\n const isFunction = isSimpleType('function');\n const isNumber = isSimpleType('number');\n const isArrayOf = (value, pred) => {\n if (isArray(value)) {\n for (let i = 0, len = value.length; i < len; ++i) {\n if (!pred(value[i])) {\n return false;\n }\n }\n return true;\n }\n return false;\n };\n\n const noop = () => {\n };\n\n class Optional {\n constructor(tag, value) {\n this.tag = tag;\n this.value = value;\n }\n static some(value) {\n return new Optional(true, value);\n }\n static none() {\n return Optional.singletonNone;\n }\n fold(onNone, onSome) {\n if (this.tag) {\n return onSome(this.value);\n } else {\n return onNone();\n }\n }\n isSome() {\n return this.tag;\n }\n isNone() {\n return !this.tag;\n }\n map(mapper) {\n if (this.tag) {\n return Optional.some(mapper(this.value));\n } else {\n return Optional.none();\n }\n }\n bind(binder) {\n if (this.tag) {\n return binder(this.value);\n } else {\n return Optional.none();\n }\n }\n exists(predicate) {\n return this.tag && predicate(this.value);\n }\n forall(predicate) {\n return !this.tag || predicate(this.value);\n }\n filter(predicate) {\n if (!this.tag || predicate(this.value)) {\n return this;\n } else {\n return Optional.none();\n }\n }\n getOr(replacement) {\n return this.tag ? this.value : replacement;\n }\n or(replacement) {\n return this.tag ? this : replacement;\n }\n getOrThunk(thunk) {\n return this.tag ? this.value : thunk();\n }\n orThunk(thunk) {\n return this.tag ? this : thunk();\n }\n getOrDie(message) {\n if (!this.tag) {\n throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None');\n } else {\n return this.value;\n }\n }\n static from(value) {\n return isNonNullable(value) ? Optional.some(value) : Optional.none();\n }\n getOrNull() {\n return this.tag ? this.value : null;\n }\n getOrUndefined() {\n return this.value;\n }\n each(worker) {\n if (this.tag) {\n worker(this.value);\n }\n }\n toArray() {\n return this.tag ? [this.value] : [];\n }\n toString() {\n return this.tag ? `some(${ this.value })` : 'none()';\n }\n }\n Optional.singletonNone = new Optional(false);\n\n const keys = Object.keys;\n const hasOwnProperty = Object.hasOwnProperty;\n const each = (obj, f) => {\n const props = keys(obj);\n for (let k = 0, len = props.length; k < len; k++) {\n const i = props[k];\n const x = obj[i];\n f(x, i);\n }\n };\n const objAcc = r => (x, i) => {\n r[i] = x;\n };\n const internalFilter = (obj, pred, onTrue, onFalse) => {\n each(obj, (x, i) => {\n (pred(x, i) ? onTrue : onFalse)(x, i);\n });\n };\n const filter = (obj, pred) => {\n const t = {};\n internalFilter(obj, pred, objAcc(t), noop);\n return t;\n };\n const has = (obj, key) => hasOwnProperty.call(obj, key);\n const hasNonNullableKey = (obj, key) => has(obj, key) && obj[key] !== undefined && obj[key] !== null;\n\n const nativePush = Array.prototype.push;\n const flatten = xs => {\n const r = [];\n for (let i = 0, len = xs.length; i < len; ++i) {\n if (!isArray(xs[i])) {\n throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);\n }\n nativePush.apply(r, xs[i]);\n }\n return r;\n };\n const get = (xs, i) => i >= 0 && i < xs.length ? Optional.some(xs[i]) : Optional.none();\n const head = xs => get(xs, 0);\n const findMap = (arr, f) => {\n for (let i = 0; i < arr.length; i++) {\n const r = f(arr[i], i);\n if (r.isSome()) {\n return r;\n }\n }\n return Optional.none();\n };\n\n typeof window !== 'undefined' ? window : Function('return this;')();\n\n const rawSet = (dom, key, value) => {\n if (isString(value) || isBoolean(value) || isNumber(value)) {\n dom.setAttribute(key, value + '');\n } else {\n console.error('Invalid call to Attribute.set. Key ', key, ':: Value ', value, ':: Element ', dom);\n throw new Error('Attribute value was not simple');\n }\n };\n const set = (element, key, value) => {\n rawSet(element.dom, key, value);\n };\n const remove = (element, key) => {\n element.dom.removeAttribute(key);\n };\n\n const fromHtml = (html, scope) => {\n const doc = scope || document;\n const div = doc.createElement('div');\n div.innerHTML = html;\n if (!div.hasChildNodes() || div.childNodes.length > 1) {\n const message = 'HTML does not have a single root node';\n console.error(message, html);\n throw new Error(message);\n }\n return fromDom(div.childNodes[0]);\n };\n const fromTag = (tag, scope) => {\n const doc = scope || document;\n const node = doc.createElement(tag);\n return fromDom(node);\n };\n const fromText = (text, scope) => {\n const doc = scope || document;\n const node = doc.createTextNode(text);\n return fromDom(node);\n };\n const fromDom = node => {\n if (node === null || node === undefined) {\n throw new Error('Node cannot be null or undefined');\n }\n return { dom: node };\n };\n const fromPoint = (docElm, x, y) => Optional.from(docElm.dom.elementFromPoint(x, y)).map(fromDom);\n const SugarElement = {\n fromHtml,\n fromTag,\n fromText,\n fromDom,\n fromPoint\n };\n\n var global$3 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');\n\n var global$2 = tinymce.util.Tools.resolve('tinymce.util.URI');\n\n const isNotEmpty = s => s.length > 0;\n\n const option = name => editor => editor.options.get(name);\n const register$2 = editor => {\n const registerOption = editor.options.register;\n registerOption('image_dimensions', {\n processor: 'boolean',\n default: true\n });\n registerOption('image_advtab', {\n processor: 'boolean',\n default: false\n });\n registerOption('image_uploadtab', {\n processor: 'boolean',\n default: true\n });\n registerOption('image_prepend_url', {\n processor: 'string',\n default: ''\n });\n registerOption('image_class_list', { processor: 'object[]' });\n registerOption('image_description', {\n processor: 'boolean',\n default: true\n });\n registerOption('image_title', {\n processor: 'boolean',\n default: false\n });\n registerOption('image_caption', {\n processor: 'boolean',\n default: false\n });\n registerOption('image_list', {\n processor: value => {\n const valid = value === false || isString(value) || isArrayOf(value, isObject) || isFunction(value);\n return valid ? {\n value,\n valid\n } : {\n valid: false,\n message: 'Must be false, a string, an array or a function.'\n };\n },\n default: false\n });\n };\n const hasDimensions = option('image_dimensions');\n const hasAdvTab = option('image_advtab');\n const hasUploadTab = option('image_uploadtab');\n const getPrependUrl = option('image_prepend_url');\n const getClassList = option('image_class_list');\n const hasDescription = option('image_description');\n const hasImageTitle = option('image_title');\n const hasImageCaption = option('image_caption');\n const getImageList = option('image_list');\n const showAccessibilityOptions = option('a11y_advanced_options');\n const isAutomaticUploadsEnabled = option('automatic_uploads');\n const hasUploadUrl = editor => isNotEmpty(editor.options.get('images_upload_url'));\n const hasUploadHandler = editor => isNonNullable(editor.options.get('images_upload_handler'));\n\n const parseIntAndGetMax = (val1, val2) => Math.max(parseInt(val1, 10), parseInt(val2, 10));\n const getImageSize = url => new Promise(callback => {\n const img = document.createElement('img');\n const done = dimensions => {\n img.onload = img.onerror = null;\n if (img.parentNode) {\n img.parentNode.removeChild(img);\n }\n callback(dimensions);\n };\n img.onload = () => {\n const width = parseIntAndGetMax(img.width, img.clientWidth);\n const height = parseIntAndGetMax(img.height, img.clientHeight);\n const dimensions = {\n width,\n height\n };\n done(Promise.resolve(dimensions));\n };\n img.onerror = () => {\n done(Promise.reject(`Failed to get image dimensions for: ${ url }`));\n };\n const style = img.style;\n style.visibility = 'hidden';\n style.position = 'fixed';\n style.bottom = style.left = '0px';\n style.width = style.height = 'auto';\n document.body.appendChild(img);\n img.src = url;\n });\n const removePixelSuffix = value => {\n if (value) {\n value = value.replace(/px$/, '');\n }\n return value;\n };\n const addPixelSuffix = value => {\n if (value.length > 0 && /^[0-9]+$/.test(value)) {\n value += 'px';\n }\n return value;\n };\n const mergeMargins = css => {\n if (css.margin) {\n const splitMargin = String(css.margin).split(' ');\n switch (splitMargin.length) {\n case 1:\n css['margin-top'] = css['margin-top'] || splitMargin[0];\n css['margin-right'] = css['margin-right'] || splitMargin[0];\n css['margin-bottom'] = css['margin-bottom'] || splitMargin[0];\n css['margin-left'] = css['margin-left'] || splitMargin[0];\n break;\n case 2:\n css['margin-top'] = css['margin-top'] || splitMargin[0];\n css['margin-right'] = css['margin-right'] || splitMargin[1];\n css['margin-bottom'] = css['margin-bottom'] || splitMargin[0];\n css['margin-left'] = css['margin-left'] || splitMargin[1];\n break;\n case 3:\n css['margin-top'] = css['margin-top'] || splitMargin[0];\n css['margin-right'] = css['margin-right'] || splitMargin[1];\n css['margin-bottom'] = css['margin-bottom'] || splitMargin[2];\n css['margin-left'] = css['margin-left'] || splitMargin[1];\n break;\n case 4:\n css['margin-top'] = css['margin-top'] || splitMargin[0];\n css['margin-right'] = css['margin-right'] || splitMargin[1];\n css['margin-bottom'] = css['margin-bottom'] || splitMargin[2];\n css['margin-left'] = css['margin-left'] || splitMargin[3];\n }\n delete css.margin;\n }\n return css;\n };\n const createImageList = (editor, callback) => {\n const imageList = getImageList(editor);\n if (isString(imageList)) {\n fetch(imageList).then(res => {\n if (res.ok) {\n res.json().then(callback);\n }\n });\n } else if (isFunction(imageList)) {\n imageList(callback);\n } else {\n callback(imageList);\n }\n };\n const waitLoadImage = (editor, data, imgElm) => {\n const selectImage = () => {\n imgElm.onload = imgElm.onerror = null;\n if (editor.selection) {\n editor.selection.select(imgElm);\n editor.nodeChanged();\n }\n };\n imgElm.onload = () => {\n if (!data.width && !data.height && hasDimensions(editor)) {\n editor.dom.setAttribs(imgElm, {\n width: String(imgElm.clientWidth),\n height: String(imgElm.clientHeight)\n });\n }\n selectImage();\n };\n imgElm.onerror = selectImage;\n };\n const blobToDataUri = blob => new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => {\n resolve(reader.result);\n };\n reader.onerror = () => {\n var _a;\n reject((_a = reader.error) === null || _a === void 0 ? void 0 : _a.message);\n };\n reader.readAsDataURL(blob);\n });\n const isPlaceholderImage = imgElm => imgElm.nodeName === 'IMG' && (imgElm.hasAttribute('data-mce-object') || imgElm.hasAttribute('data-mce-placeholder'));\n const isSafeImageUrl = (editor, src) => {\n const getOption = editor.options.get;\n return global$2.isDomSafe(src, 'img', {\n allow_html_data_urls: getOption('allow_html_data_urls'),\n allow_script_urls: getOption('allow_script_urls'),\n allow_svg_data_urls: getOption('allow_svg_data_urls')\n });\n };\n\n const DOM = global$3.DOM;\n const getHspace = image => {\n if (image.style.marginLeft && image.style.marginRight && image.style.marginLeft === image.style.marginRight) {\n return removePixelSuffix(image.style.marginLeft);\n } else {\n return '';\n }\n };\n const getVspace = image => {\n if (image.style.marginTop && image.style.marginBottom && image.style.marginTop === image.style.marginBottom) {\n return removePixelSuffix(image.style.marginTop);\n } else {\n return '';\n }\n };\n const getBorder = image => {\n if (image.style.borderWidth) {\n return removePixelSuffix(image.style.borderWidth);\n } else {\n return '';\n }\n };\n const getAttrib = (image, name) => {\n var _a;\n if (image.hasAttribute(name)) {\n return (_a = image.getAttribute(name)) !== null && _a !== void 0 ? _a : '';\n } else {\n return '';\n }\n };\n const hasCaption = image => image.parentNode !== null && image.parentNode.nodeName === 'FIGURE';\n const updateAttrib = (image, name, value) => {\n if (value === '' || value === null) {\n image.removeAttribute(name);\n } else {\n image.setAttribute(name, value);\n }\n };\n const wrapInFigure = image => {\n const figureElm = DOM.create('figure', { class: 'image' });\n DOM.insertAfter(figureElm, image);\n figureElm.appendChild(image);\n figureElm.appendChild(DOM.create('figcaption', { contentEditable: 'true' }, 'Caption'));\n figureElm.contentEditable = 'false';\n };\n const removeFigure = image => {\n const figureElm = image.parentNode;\n if (isNonNullable(figureElm)) {\n DOM.insertAfter(image, figureElm);\n DOM.remove(figureElm);\n }\n };\n const toggleCaption = image => {\n if (hasCaption(image)) {\n removeFigure(image);\n } else {\n wrapInFigure(image);\n }\n };\n const normalizeStyle = (image, normalizeCss) => {\n const attrValue = image.getAttribute('style');\n const value = normalizeCss(attrValue !== null ? attrValue : '');\n if (value.length > 0) {\n image.setAttribute('style', value);\n image.setAttribute('data-mce-style', value);\n } else {\n image.removeAttribute('style');\n }\n };\n const setSize = (name, normalizeCss) => (image, name, value) => {\n const styles = image.style;\n if (styles[name]) {\n styles[name] = addPixelSuffix(value);\n normalizeStyle(image, normalizeCss);\n } else {\n updateAttrib(image, name, value);\n }\n };\n const getSize = (image, name) => {\n if (image.style[name]) {\n return removePixelSuffix(image.style[name]);\n } else {\n return getAttrib(image, name);\n }\n };\n const setHspace = (image, value) => {\n const pxValue = addPixelSuffix(value);\n image.style.marginLeft = pxValue;\n image.style.marginRight = pxValue;\n };\n const setVspace = (image, value) => {\n const pxValue = addPixelSuffix(value);\n image.style.marginTop = pxValue;\n image.style.marginBottom = pxValue;\n };\n const setBorder = (image, value) => {\n const pxValue = addPixelSuffix(value);\n image.style.borderWidth = pxValue;\n };\n const setBorderStyle = (image, value) => {\n image.style.borderStyle = value;\n };\n const getBorderStyle = image => {\n var _a;\n return (_a = image.style.borderStyle) !== null && _a !== void 0 ? _a : '';\n };\n const isFigure = elm => isNonNullable(elm) && elm.nodeName === 'FIGURE';\n const isImage = elm => elm.nodeName === 'IMG';\n const getIsDecorative = image => DOM.getAttrib(image, 'alt').length === 0 && DOM.getAttrib(image, 'role') === 'presentation';\n const getAlt = image => {\n if (getIsDecorative(image)) {\n return '';\n } else {\n return getAttrib(image, 'alt');\n }\n };\n const defaultData = () => ({\n src: '',\n alt: '',\n title: '',\n width: '',\n height: '',\n class: '',\n style: '',\n caption: false,\n hspace: '',\n vspace: '',\n border: '',\n borderStyle: '',\n isDecorative: false\n });\n const getStyleValue = (normalizeCss, data) => {\n var _a;\n const image = document.createElement('img');\n updateAttrib(image, 'style', data.style);\n if (getHspace(image) || data.hspace !== '') {\n setHspace(image, data.hspace);\n }\n if (getVspace(image) || data.vspace !== '') {\n setVspace(image, data.vspace);\n }\n if (getBorder(image) || data.border !== '') {\n setBorder(image, data.border);\n }\n if (getBorderStyle(image) || data.borderStyle !== '') {\n setBorderStyle(image, data.borderStyle);\n }\n return normalizeCss((_a = image.getAttribute('style')) !== null && _a !== void 0 ? _a : '');\n };\n const create = (normalizeCss, data) => {\n const image = document.createElement('img');\n write(normalizeCss, {\n ...data,\n caption: false\n }, image);\n setAlt(image, data.alt, data.isDecorative);\n if (data.caption) {\n const figure = DOM.create('figure', { class: 'image' });\n figure.appendChild(image);\n figure.appendChild(DOM.create('figcaption', { contentEditable: 'true' }, 'Caption'));\n figure.contentEditable = 'false';\n return figure;\n } else {\n return image;\n }\n };\n const read = (normalizeCss, image) => ({\n src: getAttrib(image, 'src'),\n alt: getAlt(image),\n title: getAttrib(image, 'title'),\n width: getSize(image, 'width'),\n height: getSize(image, 'height'),\n class: getAttrib(image, 'class'),\n style: normalizeCss(getAttrib(image, 'style')),\n caption: hasCaption(image),\n hspace: getHspace(image),\n vspace: getVspace(image),\n border: getBorder(image),\n borderStyle: getBorderStyle(image),\n isDecorative: getIsDecorative(image)\n });\n const updateProp = (image, oldData, newData, name, set) => {\n if (newData[name] !== oldData[name]) {\n set(image, name, String(newData[name]));\n }\n };\n const setAlt = (image, alt, isDecorative) => {\n if (isDecorative) {\n DOM.setAttrib(image, 'role', 'presentation');\n const sugarImage = SugarElement.fromDom(image);\n set(sugarImage, 'alt', '');\n } else {\n if (isNull(alt)) {\n const sugarImage = SugarElement.fromDom(image);\n remove(sugarImage, 'alt');\n } else {\n const sugarImage = SugarElement.fromDom(image);\n set(sugarImage, 'alt', alt);\n }\n if (DOM.getAttrib(image, 'role') === 'presentation') {\n DOM.setAttrib(image, 'role', '');\n }\n }\n };\n const updateAlt = (image, oldData, newData) => {\n if (newData.alt !== oldData.alt || newData.isDecorative !== oldData.isDecorative) {\n setAlt(image, newData.alt, newData.isDecorative);\n }\n };\n const normalized = (set, normalizeCss) => (image, name, value) => {\n set(image, value);\n normalizeStyle(image, normalizeCss);\n };\n const write = (normalizeCss, newData, image) => {\n const oldData = read(normalizeCss, image);\n updateProp(image, oldData, newData, 'caption', (image, _name, _value) => toggleCaption(image));\n updateProp(image, oldData, newData, 'src', updateAttrib);\n updateProp(image, oldData, newData, 'title', updateAttrib);\n updateProp(image, oldData, newData, 'width', setSize('width', normalizeCss));\n updateProp(image, oldData, newData, 'height', setSize('height', normalizeCss));\n updateProp(image, oldData, newData, 'class', updateAttrib);\n updateProp(image, oldData, newData, 'style', normalized((image, value) => updateAttrib(image, 'style', value), normalizeCss));\n updateProp(image, oldData, newData, 'hspace', normalized(setHspace, normalizeCss));\n updateProp(image, oldData, newData, 'vspace', normalized(setVspace, normalizeCss));\n updateProp(image, oldData, newData, 'border', normalized(setBorder, normalizeCss));\n updateProp(image, oldData, newData, 'borderStyle', normalized(setBorderStyle, normalizeCss));\n updateAlt(image, oldData, newData);\n };\n\n const normalizeCss$1 = (editor, cssText) => {\n const css = editor.dom.styles.parse(cssText);\n const mergedCss = mergeMargins(css);\n const compressed = editor.dom.styles.parse(editor.dom.styles.serialize(mergedCss));\n return editor.dom.styles.serialize(compressed);\n };\n const getSelectedImage = editor => {\n const imgElm = editor.selection.getNode();\n const figureElm = editor.dom.getParent(imgElm, 'figure.image');\n if (figureElm) {\n return editor.dom.select('img', figureElm)[0];\n }\n if (imgElm && (imgElm.nodeName !== 'IMG' || isPlaceholderImage(imgElm))) {\n return null;\n }\n return imgElm;\n };\n const splitTextBlock = (editor, figure) => {\n var _a;\n const dom = editor.dom;\n const textBlockElements = filter(editor.schema.getTextBlockElements(), (_, parentElm) => !editor.schema.isValidChild(parentElm, 'figure'));\n const textBlock = dom.getParent(figure.parentNode, node => hasNonNullableKey(textBlockElements, node.nodeName), editor.getBody());\n if (textBlock) {\n return (_a = dom.split(textBlock, figure)) !== null && _a !== void 0 ? _a : figure;\n } else {\n return figure;\n }\n };\n const readImageDataFromSelection = editor => {\n const image = getSelectedImage(editor);\n return image ? read(css => normalizeCss$1(editor, css), image) : defaultData();\n };\n const insertImageAtCaret = (editor, data) => {\n const elm = create(css => normalizeCss$1(editor, css), data);\n editor.dom.setAttrib(elm, 'data-mce-id', '__mcenew');\n editor.focus();\n editor.selection.setContent(elm.outerHTML);\n const insertedElm = editor.dom.select('*[data-mce-id=\"__mcenew\"]')[0];\n editor.dom.setAttrib(insertedElm, 'data-mce-id', null);\n if (isFigure(insertedElm)) {\n const figure = splitTextBlock(editor, insertedElm);\n editor.selection.select(figure);\n } else {\n editor.selection.select(insertedElm);\n }\n };\n const syncSrcAttr = (editor, image) => {\n editor.dom.setAttrib(image, 'src', image.getAttribute('src'));\n };\n const deleteImage = (editor, image) => {\n if (image) {\n const elm = editor.dom.is(image.parentNode, 'figure.image') ? image.parentNode : image;\n editor.dom.remove(elm);\n editor.focus();\n editor.nodeChanged();\n if (editor.dom.isEmpty(editor.getBody())) {\n editor.setContent('');\n editor.selection.setCursorLocation();\n }\n }\n };\n const writeImageDataToSelection = (editor, data) => {\n const image = getSelectedImage(editor);\n if (image) {\n write(css => normalizeCss$1(editor, css), data, image);\n syncSrcAttr(editor, image);\n if (isFigure(image.parentNode)) {\n const figure = image.parentNode;\n splitTextBlock(editor, figure);\n editor.selection.select(image.parentNode);\n } else {\n editor.selection.select(image);\n waitLoadImage(editor, data, image);\n }\n }\n };\n const sanitizeImageData = (editor, data) => {\n const src = data.src;\n return {\n ...data,\n src: isSafeImageUrl(editor, src) ? src : ''\n };\n };\n const insertOrUpdateImage = (editor, partialData) => {\n const image = getSelectedImage(editor);\n if (image) {\n const selectedImageData = read(css => normalizeCss$1(editor, css), image);\n const data = {\n ...selectedImageData,\n ...partialData\n };\n const sanitizedData = sanitizeImageData(editor, data);\n if (data.src) {\n writeImageDataToSelection(editor, sanitizedData);\n } else {\n deleteImage(editor, image);\n }\n } else if (partialData.src) {\n insertImageAtCaret(editor, {\n ...defaultData(),\n ...partialData\n });\n }\n };\n\n const deep = (old, nu) => {\n const bothObjects = isPlainObject(old) && isPlainObject(nu);\n return bothObjects ? deepMerge(old, nu) : nu;\n };\n const baseMerge = merger => {\n return (...objects) => {\n if (objects.length === 0) {\n throw new Error(`Can't merge zero objects`);\n }\n const ret = {};\n for (let j = 0; j < objects.length; j++) {\n const curObject = objects[j];\n for (const key in curObject) {\n if (has(curObject, key)) {\n ret[key] = merger(ret[key], curObject[key]);\n }\n }\n }\n return ret;\n };\n };\n const deepMerge = baseMerge(deep);\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.util.ImageUploader');\n\n var global = tinymce.util.Tools.resolve('tinymce.util.Tools');\n\n const getValue = item => isString(item.value) ? item.value : '';\n const getText = item => {\n if (isString(item.text)) {\n return item.text;\n } else if (isString(item.title)) {\n return item.title;\n } else {\n return '';\n }\n };\n const sanitizeList = (list, extractValue) => {\n const out = [];\n global.each(list, item => {\n const text = getText(item);\n if (item.menu !== undefined) {\n const items = sanitizeList(item.menu, extractValue);\n out.push({\n text,\n items\n });\n } else {\n const value = extractValue(item);\n out.push({\n text,\n value\n });\n }\n });\n return out;\n };\n const sanitizer = (extractor = getValue) => list => {\n if (list) {\n return Optional.from(list).map(list => sanitizeList(list, extractor));\n } else {\n return Optional.none();\n }\n };\n const sanitize = list => sanitizer(getValue)(list);\n const isGroup = item => has(item, 'items');\n const findEntryDelegate = (list, value) => findMap(list, item => {\n if (isGroup(item)) {\n return findEntryDelegate(item.items, value);\n } else if (item.value === value) {\n return Optional.some(item);\n } else {\n return Optional.none();\n }\n });\n const findEntry = (optList, value) => optList.bind(list => findEntryDelegate(list, value));\n const ListUtils = {\n sanitizer,\n sanitize,\n findEntry\n };\n\n const makeTab$2 = _info => ({\n title: 'Advanced',\n name: 'advanced',\n items: [{\n type: 'grid',\n columns: 2,\n items: [\n {\n type: 'input',\n label: 'Vertical space',\n name: 'vspace',\n inputMode: 'numeric'\n },\n {\n type: 'input',\n label: 'Horizontal space',\n name: 'hspace',\n inputMode: 'numeric'\n },\n {\n type: 'input',\n label: 'Border width',\n name: 'border',\n inputMode: 'numeric'\n },\n {\n type: 'listbox',\n name: 'borderstyle',\n label: 'Border style',\n items: [\n {\n text: 'Select...',\n value: ''\n },\n {\n text: 'Solid',\n value: 'solid'\n },\n {\n text: 'Dotted',\n value: 'dotted'\n },\n {\n text: 'Dashed',\n value: 'dashed'\n },\n {\n text: 'Double',\n value: 'double'\n },\n {\n text: 'Groove',\n value: 'groove'\n },\n {\n text: 'Ridge',\n value: 'ridge'\n },\n {\n text: 'Inset',\n value: 'inset'\n },\n {\n text: 'Outset',\n value: 'outset'\n },\n {\n text: 'None',\n value: 'none'\n },\n {\n text: 'Hidden',\n value: 'hidden'\n }\n ]\n }\n ]\n }]\n });\n const AdvTab = { makeTab: makeTab$2 };\n\n const collect = editor => {\n const urlListSanitizer = ListUtils.sanitizer(item => editor.convertURL(item.value || item.url || '', 'src'));\n const futureImageList = new Promise(completer => {\n createImageList(editor, imageList => {\n completer(urlListSanitizer(imageList).map(items => flatten([\n [{\n text: 'None',\n value: ''\n }],\n items\n ])));\n });\n });\n const classList = ListUtils.sanitize(getClassList(editor));\n const hasAdvTab$1 = hasAdvTab(editor);\n const hasUploadTab$1 = hasUploadTab(editor);\n const hasUploadUrl$1 = hasUploadUrl(editor);\n const hasUploadHandler$1 = hasUploadHandler(editor);\n const image = readImageDataFromSelection(editor);\n const hasDescription$1 = hasDescription(editor);\n const hasImageTitle$1 = hasImageTitle(editor);\n const hasDimensions$1 = hasDimensions(editor);\n const hasImageCaption$1 = hasImageCaption(editor);\n const hasAccessibilityOptions = showAccessibilityOptions(editor);\n const automaticUploads = isAutomaticUploadsEnabled(editor);\n const prependURL = Optional.some(getPrependUrl(editor)).filter(preUrl => isString(preUrl) && preUrl.length > 0);\n return futureImageList.then(imageList => ({\n image,\n imageList,\n classList,\n hasAdvTab: hasAdvTab$1,\n hasUploadTab: hasUploadTab$1,\n hasUploadUrl: hasUploadUrl$1,\n hasUploadHandler: hasUploadHandler$1,\n hasDescription: hasDescription$1,\n hasImageTitle: hasImageTitle$1,\n hasDimensions: hasDimensions$1,\n hasImageCaption: hasImageCaption$1,\n prependURL,\n hasAccessibilityOptions,\n automaticUploads\n }));\n };\n\n const makeItems = info => {\n const imageUrl = {\n name: 'src',\n type: 'urlinput',\n filetype: 'image',\n label: 'Source',\n picker_text: 'Browse files'\n };\n const imageList = info.imageList.map(items => ({\n name: 'images',\n type: 'listbox',\n label: 'Image list',\n items\n }));\n const imageDescription = {\n name: 'alt',\n type: 'input',\n label: 'Alternative description',\n enabled: !(info.hasAccessibilityOptions && info.image.isDecorative)\n };\n const imageTitle = {\n name: 'title',\n type: 'input',\n label: 'Image title'\n };\n const imageDimensions = {\n name: 'dimensions',\n type: 'sizeinput'\n };\n const isDecorative = {\n type: 'label',\n label: 'Accessibility',\n items: [{\n name: 'isDecorative',\n type: 'checkbox',\n label: 'Image is decorative'\n }]\n };\n const classList = info.classList.map(items => ({\n name: 'classes',\n type: 'listbox',\n label: 'Class',\n items\n }));\n const caption = {\n type: 'label',\n label: 'Caption',\n items: [{\n type: 'checkbox',\n name: 'caption',\n label: 'Show caption'\n }]\n };\n const getDialogContainerType = useColumns => useColumns ? {\n type: 'grid',\n columns: 2\n } : { type: 'panel' };\n return flatten([\n [imageUrl],\n imageList.toArray(),\n info.hasAccessibilityOptions && info.hasDescription ? [isDecorative] : [],\n info.hasDescription ? [imageDescription] : [],\n info.hasImageTitle ? [imageTitle] : [],\n info.hasDimensions ? [imageDimensions] : [],\n [{\n ...getDialogContainerType(info.classList.isSome() && info.hasImageCaption),\n items: flatten([\n classList.toArray(),\n info.hasImageCaption ? [caption] : []\n ])\n }]\n ]);\n };\n const makeTab$1 = info => ({\n title: 'General',\n name: 'general',\n items: makeItems(info)\n });\n const MainTab = {\n makeTab: makeTab$1,\n makeItems\n };\n\n const makeTab = _info => {\n const items = [{\n type: 'dropzone',\n name: 'fileinput'\n }];\n return {\n title: 'Upload',\n name: 'upload',\n items\n };\n };\n const UploadTab = { makeTab };\n\n const createState = info => ({\n prevImage: ListUtils.findEntry(info.imageList, info.image.src),\n prevAlt: info.image.alt,\n open: true\n });\n const fromImageData = image => ({\n src: {\n value: image.src,\n meta: {}\n },\n images: image.src,\n alt: image.alt,\n title: image.title,\n dimensions: {\n width: image.width,\n height: image.height\n },\n classes: image.class,\n caption: image.caption,\n style: image.style,\n vspace: image.vspace,\n border: image.border,\n hspace: image.hspace,\n borderstyle: image.borderStyle,\n fileinput: [],\n isDecorative: image.isDecorative\n });\n const toImageData = (data, removeEmptyAlt) => ({\n src: data.src.value,\n alt: (data.alt === null || data.alt.length === 0) && removeEmptyAlt ? null : data.alt,\n title: data.title,\n width: data.dimensions.width,\n height: data.dimensions.height,\n class: data.classes,\n style: data.style,\n caption: data.caption,\n hspace: data.hspace,\n vspace: data.vspace,\n border: data.border,\n borderStyle: data.borderstyle,\n isDecorative: data.isDecorative\n });\n const addPrependUrl2 = (info, srcURL) => {\n if (!/^(?:[a-zA-Z]+:)?\\/\\//.test(srcURL)) {\n return info.prependURL.bind(prependUrl => {\n if (srcURL.substring(0, prependUrl.length) !== prependUrl) {\n return Optional.some(prependUrl + srcURL);\n }\n return Optional.none();\n });\n }\n return Optional.none();\n };\n const addPrependUrl = (info, api) => {\n const data = api.getData();\n addPrependUrl2(info, data.src.value).each(srcURL => {\n api.setData({\n src: {\n value: srcURL,\n meta: data.src.meta\n }\n });\n });\n };\n const formFillFromMeta2 = (info, data, meta) => {\n if (info.hasDescription && isString(meta.alt)) {\n data.alt = meta.alt;\n }\n if (info.hasAccessibilityOptions) {\n data.isDecorative = meta.isDecorative || data.isDecorative || false;\n }\n if (info.hasImageTitle && isString(meta.title)) {\n data.title = meta.title;\n }\n if (info.hasDimensions) {\n if (isString(meta.width)) {\n data.dimensions.width = meta.width;\n }\n if (isString(meta.height)) {\n data.dimensions.height = meta.height;\n }\n }\n if (isString(meta.class)) {\n ListUtils.findEntry(info.classList, meta.class).each(entry => {\n data.classes = entry.value;\n });\n }\n if (info.hasImageCaption) {\n if (isBoolean(meta.caption)) {\n data.caption = meta.caption;\n }\n }\n if (info.hasAdvTab) {\n if (isString(meta.style)) {\n data.style = meta.style;\n }\n if (isString(meta.vspace)) {\n data.vspace = meta.vspace;\n }\n if (isString(meta.border)) {\n data.border = meta.border;\n }\n if (isString(meta.hspace)) {\n data.hspace = meta.hspace;\n }\n if (isString(meta.borderstyle)) {\n data.borderstyle = meta.borderstyle;\n }\n }\n };\n const formFillFromMeta = (info, api) => {\n const data = api.getData();\n const meta = data.src.meta;\n if (meta !== undefined) {\n const newData = deepMerge({}, data);\n formFillFromMeta2(info, newData, meta);\n api.setData(newData);\n }\n };\n const calculateImageSize = (helpers, info, state, api) => {\n const data = api.getData();\n const url = data.src.value;\n const meta = data.src.meta || {};\n if (!meta.width && !meta.height && info.hasDimensions) {\n if (isNotEmpty(url)) {\n helpers.imageSize(url).then(size => {\n if (state.open) {\n api.setData({ dimensions: size });\n }\n }).catch(e => console.error(e));\n } else {\n api.setData({\n dimensions: {\n width: '',\n height: ''\n }\n });\n }\n }\n };\n const updateImagesDropdown = (info, state, api) => {\n const data = api.getData();\n const image = ListUtils.findEntry(info.imageList, data.src.value);\n state.prevImage = image;\n api.setData({ images: image.map(entry => entry.value).getOr('') });\n };\n const changeSrc = (helpers, info, state, api) => {\n addPrependUrl(info, api);\n formFillFromMeta(info, api);\n calculateImageSize(helpers, info, state, api);\n updateImagesDropdown(info, state, api);\n };\n const changeImages = (helpers, info, state, api) => {\n const data = api.getData();\n const image = ListUtils.findEntry(info.imageList, data.images);\n image.each(img => {\n const updateAlt = data.alt === '' || state.prevImage.map(image => image.text === data.alt).getOr(false);\n if (updateAlt) {\n if (img.value === '') {\n api.setData({\n src: img,\n alt: state.prevAlt\n });\n } else {\n api.setData({\n src: img,\n alt: img.text\n });\n }\n } else {\n api.setData({ src: img });\n }\n });\n state.prevImage = image;\n changeSrc(helpers, info, state, api);\n };\n const changeFileInput = (helpers, info, state, api) => {\n const data = api.getData();\n api.block('Uploading image');\n head(data.fileinput).fold(() => {\n api.unblock();\n }, file => {\n const blobUri = URL.createObjectURL(file);\n const finalize = () => {\n api.unblock();\n URL.revokeObjectURL(blobUri);\n };\n const updateSrcAndSwitchTab = url => {\n api.setData({\n src: {\n value: url,\n meta: {}\n }\n });\n api.showTab('general');\n changeSrc(helpers, info, state, api);\n };\n blobToDataUri(file).then(dataUrl => {\n const blobInfo = helpers.createBlobCache(file, blobUri, dataUrl);\n if (info.automaticUploads) {\n helpers.uploadImage(blobInfo).then(result => {\n updateSrcAndSwitchTab(result.url);\n finalize();\n }).catch(err => {\n finalize();\n helpers.alertErr(err);\n });\n } else {\n helpers.addToBlobCache(blobInfo);\n updateSrcAndSwitchTab(blobInfo.blobUri());\n api.unblock();\n }\n });\n });\n };\n const changeHandler = (helpers, info, state) => (api, evt) => {\n if (evt.name === 'src') {\n changeSrc(helpers, info, state, api);\n } else if (evt.name === 'images') {\n changeImages(helpers, info, state, api);\n } else if (evt.name === 'alt') {\n state.prevAlt = api.getData().alt;\n } else if (evt.name === 'fileinput') {\n changeFileInput(helpers, info, state, api);\n } else if (evt.name === 'isDecorative') {\n api.setEnabled('alt', !api.getData().isDecorative);\n }\n };\n const closeHandler = state => () => {\n state.open = false;\n };\n const makeDialogBody = info => {\n if (info.hasAdvTab || info.hasUploadUrl || info.hasUploadHandler) {\n const tabPanel = {\n type: 'tabpanel',\n tabs: flatten([\n [MainTab.makeTab(info)],\n info.hasAdvTab ? [AdvTab.makeTab(info)] : [],\n info.hasUploadTab && (info.hasUploadUrl || info.hasUploadHandler) ? [UploadTab.makeTab(info)] : []\n ])\n };\n return tabPanel;\n } else {\n const panel = {\n type: 'panel',\n items: MainTab.makeItems(info)\n };\n return panel;\n }\n };\n const submitHandler = (editor, info, helpers) => api => {\n const data = deepMerge(fromImageData(info.image), api.getData());\n const finalData = {\n ...data,\n style: getStyleValue(helpers.normalizeCss, toImageData(data, false))\n };\n editor.execCommand('mceUpdateImage', false, toImageData(finalData, info.hasAccessibilityOptions));\n editor.editorUpload.uploadImagesAuto();\n api.close();\n };\n const imageSize = editor => url => {\n if (!isSafeImageUrl(editor, url)) {\n return Promise.resolve({\n width: '',\n height: ''\n });\n } else {\n return getImageSize(editor.documentBaseURI.toAbsolute(url)).then(dimensions => ({\n width: String(dimensions.width),\n height: String(dimensions.height)\n }));\n }\n };\n const createBlobCache = editor => (file, blobUri, dataUrl) => {\n var _a;\n return editor.editorUpload.blobCache.create({\n blob: file,\n blobUri,\n name: (_a = file.name) === null || _a === void 0 ? void 0 : _a.replace(/\\.[^\\.]+$/, ''),\n filename: file.name,\n base64: dataUrl.split(',')[1]\n });\n };\n const addToBlobCache = editor => blobInfo => {\n editor.editorUpload.blobCache.add(blobInfo);\n };\n const alertErr = editor => message => {\n editor.windowManager.alert(message);\n };\n const normalizeCss = editor => cssText => normalizeCss$1(editor, cssText);\n const parseStyle = editor => cssText => editor.dom.parseStyle(cssText);\n const serializeStyle = editor => (stylesArg, name) => editor.dom.serializeStyle(stylesArg, name);\n const uploadImage = editor => blobInfo => global$1(editor).upload([blobInfo], false).then(results => {\n var _a;\n if (results.length === 0) {\n return Promise.reject('Failed to upload image');\n } else if (results[0].status === false) {\n return Promise.reject((_a = results[0].error) === null || _a === void 0 ? void 0 : _a.message);\n } else {\n return results[0];\n }\n });\n const Dialog = editor => {\n const helpers = {\n imageSize: imageSize(editor),\n addToBlobCache: addToBlobCache(editor),\n createBlobCache: createBlobCache(editor),\n alertErr: alertErr(editor),\n normalizeCss: normalizeCss(editor),\n parseStyle: parseStyle(editor),\n serializeStyle: serializeStyle(editor),\n uploadImage: uploadImage(editor)\n };\n const open = () => {\n collect(editor).then(info => {\n const state = createState(info);\n return {\n title: 'Insert/Edit Image',\n size: 'normal',\n body: makeDialogBody(info),\n buttons: [\n {\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n },\n {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }\n ],\n initialData: fromImageData(info.image),\n onSubmit: submitHandler(editor, info, helpers),\n onChange: changeHandler(helpers, info, state),\n onClose: closeHandler(state)\n };\n }).then(editor.windowManager.open);\n };\n return { open };\n };\n\n const register$1 = editor => {\n editor.addCommand('mceImage', Dialog(editor).open);\n editor.addCommand('mceUpdateImage', (_ui, data) => {\n editor.undoManager.transact(() => insertOrUpdateImage(editor, data));\n });\n };\n\n const hasImageClass = node => {\n const className = node.attr('class');\n return isNonNullable(className) && /\\bimage\\b/.test(className);\n };\n const toggleContentEditableState = state => nodes => {\n let i = nodes.length;\n const toggleContentEditable = node => {\n node.attr('contenteditable', state ? 'true' : null);\n };\n while (i--) {\n const node = nodes[i];\n if (hasImageClass(node)) {\n node.attr('contenteditable', state ? 'false' : null);\n global.each(node.getAll('figcaption'), toggleContentEditable);\n }\n }\n };\n const setup = editor => {\n editor.on('PreInit', () => {\n editor.parser.addNodeFilter('figure', toggleContentEditableState(true));\n editor.serializer.addNodeFilter('figure', toggleContentEditableState(false));\n });\n };\n\n const onSetupEditable = editor => api => {\n const nodeChanged = () => {\n api.setEnabled(editor.selection.isEditable());\n };\n editor.on('NodeChange', nodeChanged);\n nodeChanged();\n return () => {\n editor.off('NodeChange', nodeChanged);\n };\n };\n const register = editor => {\n editor.ui.registry.addToggleButton('image', {\n icon: 'image',\n tooltip: 'Insert/edit image',\n onAction: Dialog(editor).open,\n onSetup: buttonApi => {\n buttonApi.setActive(isNonNullable(getSelectedImage(editor)));\n const unbindSelectorChanged = editor.selection.selectorChangedWithUnbind('img:not([data-mce-object]):not([data-mce-placeholder]),figure.image', buttonApi.setActive).unbind;\n const unbindEditable = onSetupEditable(editor)(buttonApi);\n return () => {\n unbindSelectorChanged();\n unbindEditable();\n };\n }\n });\n editor.ui.registry.addMenuItem('image', {\n icon: 'image',\n text: 'Image...',\n onAction: Dialog(editor).open,\n onSetup: onSetupEditable(editor)\n });\n editor.ui.registry.addContextMenu('image', { update: element => editor.selection.isEditable() && (isFigure(element) || isImage(element) && !isPlaceholderImage(element)) ? ['image'] : [] });\n };\n\n var Plugin = () => {\n global$4.add('image', editor => {\n register$2(editor);\n setup(editor);\n register(editor);\n register$1(editor);\n });\n };\n\n Plugin();\n\n})();\n"],"names":["global$4","tinymce","util","Tools","resolve","getPrototypeOf","Object","hasProto","v","constructor","predicate","_a","prototype","name","isType","type","value","x","t","Array","isArray","String","o","proto","isPrototypeOf","typeOf","isSimpleType","isString","isObject","isPlainObject","is","isNull","a","isBoolean","isNonNullable","isNullable","isFunction","isNumber","noop","Optional","tag","this","some","none","singletonNone","fold","onNone","onSome","isSome","isNone","map","mapper","bind","binder","exists","forall","filter","getOr","replacement","or","getOrThunk","thunk","orThunk","getOrDie","message","Error","from","getOrNull","getOrUndefined","each","worker","toArray","toString","keys","hasOwnProperty","internalFilter","obj","pred","onTrue","onFalse","f","props","k","len","length","i","has","key","call","nativePush","push","flatten","xs","r","apply","head","get","window","Function","set","element","dom","console","error","setAttribute","rawSet","fromDom","node","SugarElement","fromHtml","html","scope","div","document","createElement","innerHTML","hasChildNodes","childNodes","fromTag","fromText","text","createTextNode","fromPoint","docElm","y","elementFromPoint","global$3","global$2","isNotEmpty","s","option","editor","options","register$2","registerOption","register","processor","default","valid","isArrayOf","hasDimensions","hasAdvTab","hasUploadTab","getPrependUrl","getClassList","hasDescription","hasImageTitle","hasImageCaption","getImageList","showAccessibilityOptions","isAutomaticUploadsEnabled","parseIntAndGetMax","val1","val2","Math","max","parseInt","removePixelSuffix","replace","addPixelSuffix","test","isPlaceholderImage","imgElm","nodeName","hasAttribute","isSafeImageUrl","src","getOption","isDomSafe","allow_html_data_urls","allow_script_urls","allow_svg_data_urls","DOM","getHspace","image","style","marginLeft","marginRight","getVspace","marginTop","marginBottom","getBorder","borderWidth","getAttrib","getAttribute","hasCaption","parentNode","updateAttrib","removeAttribute","toggleCaption","figureElm","insertAfter","remove","removeFigure","create","class","appendChild","contentEditable","wrapInFigure","normalizeStyle","normalizeCss","attrValue","setSize","styles","getSize","setHspace","pxValue","setVspace","setBorder","setBorderStyle","borderStyle","getBorderStyle","isFigure","elm","getIsDecorative","getAlt","getStyleValue","data","hspace","vspace","border","read","alt","title","width","height","caption","isDecorative","updateProp","oldData","newData","setAlt","setAttrib","sugarImage","normalized","write","_name","_value","updateAlt","normalizeCss$1","cssText","mergedCss","css","margin","splitMargin","split","mergeMargins","parse","compressed","serialize","getSelectedImage","selection","getNode","getParent","select","splitTextBlock","figure","textBlockElements","schema","getTextBlockElements","_","parentElm","isValidChild","textBlock","hasNonNullableKey","undefined","getBody","insertImageAtCaret","focus","setContent","outerHTML","insertedElm","writeImageDataToSelection","syncSrcAttr","selectImage","onload","onerror","nodeChanged","setAttribs","clientWidth","clientHeight","waitLoadImage","insertOrUpdateImage","partialData","sanitizedData","sanitizeImageData","isEmpty","setCursorLocation","deleteImage","deepMerge","merger","old","nu","objects","ret","j","curObject","global$1","global","getValue","item","sanitizeList","list","extractValue","out","getText","menu","items","sanitizer","extractor","findEntryDelegate","arr","findMap","isGroup","ListUtils","optList","AdvTab","_info","columns","label","inputMode","collect","urlListSanitizer","convertURL","url","futureImageList","Promise","completer","callback","imageList","fetch","then","res","ok","json","createImageList","classList","hasAdvTab$1","hasUploadTab$1","hasUploadUrl$1","hasUploadUrl","hasUploadHandler$1","hasUploadHandler","readImageDataFromSelection","hasDescription$1","hasImageTitle$1","hasDimensions$1","hasImageCaption$1","hasAccessibilityOptions","automaticUploads","prependURL","preUrl","makeItems","info","imageDescription","enabled","filetype","picker_text","useColumns","MainTab","UploadTab","fromImageData","meta","images","dimensions","classes","borderstyle","fileinput","toImageData","removeEmptyAlt","addPrependUrl","api","getData","srcURL","prependUrl","substring","addPrependUrl2","setData","formFillFromMeta","entry","formFillFromMeta2","changeSrc","helpers","state","imageSize","size","open","catch","e","calculateImageSize","prevImage","updateImagesDropdown","changeFileInput","block","unblock","file","blobUri","URL","createObjectURL","finalize","revokeObjectURL","updateSrcAndSwitchTab","showTab","blob","reject","reader","FileReader","result","readAsDataURL","dataUrl","blobInfo","createBlobCache","uploadImage","err","alertErr","addToBlobCache","changeHandler","evt","img","prevAlt","changeImages","setEnabled","closeHandler","makeDialogBody","tabs","submitHandler","finalData","execCommand","editorUpload","uploadImagesAuto","close","done","removeChild","visibility","position","bottom","left","body","getImageSize","documentBaseURI","toAbsolute","blobCache","filename","base64","add","windowManager","alert","parseStyle","serializeStyle","stylesArg","upload","results","status","Dialog","createState","buttons","primary","initialData","onSubmit","onChange","onClose","hasImageClass","className","attr","toggleContentEditableState","nodes","toggleContentEditable","getAll","onSetupEditable","isEditable","on","off","parser","addNodeFilter","serializer","setup","ui","registry","addToggleButton","icon","tooltip","onAction","onSetup","buttonApi","setActive","unbindSelectorChanged","selectorChangedWithUnbind","unbind","unbindEditable","addMenuItem","addContextMenu","update","addCommand","_ui","undoManager","transact","register$1"],"mappings":"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"}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
import{__exports as r}from"../../../../_virtual/
|
1
|
+
import{__exports as r}from"../../../../_virtual/index8.mjs";import{__require as e}from"./plugin.mjs";var i;function o(){return i||(i=1,e()),r}export{o as __require};
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../../public/tinymce/plugins/link/index.js"],"sourcesContent":["// Exports the \"link\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/link')\n// ES2015:\n// import 'tinymce/plugins/link'\nrequire('./plugin.js');"],"names":["require$$0"],"mappings":"
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../../public/tinymce/plugins/link/index.js"],"sourcesContent":["// Exports the \"link\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/link')\n// ES2015:\n// import 'tinymce/plugins/link'\nrequire('./plugin.js');"],"names":["require$$0"],"mappings":"uIAMsBA"}
|