1var oe=Object.defineProperty;var ze=Object.getOwnPropertyDescriptor;var qe=Object.getOwnPropertyNames;var $e=Object.prototype.hasOwnProperty;var Qe=(o,e)=>{for(var t in e)oe(o,t,{get:e[t],enumerable:!0})},te=(o,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of qe(e))!$e.call(o,i)&&i!==t&&oe(o,i,{get:()=>e[i],enumerable:!(r=ze(e,i))||r.enumerable});return o},h=(o,e,t)=>(te(o,e,"default"),t&&te(t,e,"default"));var Z={};Qe(Z,{CKBox:()=>G,CKBoxCommand:()=>P,CKBoxEditing:()=>A,CKBoxImageEdit:()=>X,CKBoxImageEditCommand:()=>M,CKBoxImageEditEditing:()=>j,CKBoxImageEditUI:()=>R,CKBoxUI:()=>S,CKBoxUploadAdapter:()=>L,CKBoxUtils:()=>I,_ckBoxConvertMimeTypeToExtension:()=>Re,_ckboxBlurHashToDataUrl:()=>je,_createCKBoxEditabilityChecker:()=>Ne,_getCKBoxContentTypeOfUrl:()=>Fe,_getCKBoxFileExtension:()=>De,_getCKBoxImageUrls:()=>J,_getCKBoxWorkspaceId:()=>Me,_prepareCKBoxImageAssetAttributes:()=>Y,_sendCKBoxHttpRequest:()=>T});var d={};h(d,gt);import*as gt from"../../../frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-core$dist$index.js.js";var g={};h(g,xt);import*as xt from"../../../frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-ui$dist$index.js.js";var x={};h(x,ht);import*as ht from"../../../frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-icons$dist$index.js.js";var w={};h(w,bt);import*as bt from"../../../frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-engine$dist$index.js.js";var p={};h(p,It);import*as It from"../../../frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-utils$dist$index.js.js";var Ge=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","#","$","%","*","+",",","-",".",":",";","=","?","@","[","]","^","_","{","|","}","~"],_=o=>{let e=0;for(let t=0;t<o.length;t++){let r=o[t],i=Ge.indexOf(r);e=e*83+i}return e};var N=o=>{let e=o/255;return e<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)},W=o=>{let e=Math.max(0,Math.min(1,o));return e<=.0031308?Math.trunc(e*12.92*255+.5):Math.trunc((1.055*Math.pow(e,.4166666666666667)-.055)*255+.5)},Xe=o=>o<0?-1:1,K=(o,e)=>Xe(o)*Math.pow(Math.abs(o),e),re=class extends Error{constructor(o){super(o),this.name="ValidationError",this.message=o}},Je=o=>{if(!o||o.length<6)throw new re("The blurhash string must be at least 6 characters");let e=_(o[0]),t=Math.floor(e/9)+1,r=e%9+1;if(o.length!==4+2*r*t)throw new re(`blurhash length mismatch: length is ${o.length} but it should be ${4+2*r*t}`)};var Ye=o=>{let e=o>>16,t=o>>8&255,r=o&255;return[N(e),N(t),N(r)]},Ze=(o,e)=>{let t=Math.floor(o/361),r=Math.floor(o/19)%19,i=o%19;return[K((t-9)/9,2)*e,K((r-9)/9,2)*e,K((i-9)/9,2)*e]},et=(o,e,t,r)=>{Je(o),r=r|1;let i=_(o[0]),n=Math.floor(i/9)+1,s=i%9+1,a=(_(o[1])+1)/166,c=new Array(s*n);for(let m=0;m<c.length;m++)if(m===0){let u=_(o.substring(2,6));c[m]=Ye(u)}else{let u=_(o.substring(4+m*2,6+m*2));c[m]=Ze(u,a*r)}let f=e*4,l=new Uint8ClampedArray(f*t);for(let m=0;m<t;m++)for(let u=0;u<e;u++){let b=0,y=0,ee=0;for(let B=0;B<n;B++)for(let O=0;O<s;O++){let F=Math.cos(Math.PI*u*O/e)*Math.cos(Math.PI*m*B/t),D=c[O+B*s];b+=D[0]*F,y+=D[1]*F,ee+=D[2]*F}let Ke=W(b),Ve=W(y),He=W(ee);l[4*u+0+m*f]=Ke,l[4*u+1+m*f]=Ve,l[4*u+2+m*f]=He,l[4*u+3+m*f]=255}return l},ie=et;var k={};h(k,wt);import*as wt from"../../../frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-upload$dist$index.js.js";function ne(o,e){return o===e||Number.isNaN(o)&&Number.isNaN(e)}function V(o){return Object.getOwnPropertySymbols(o).filter(e=>Object.prototype.propertyIsEnumerable.call(o,e))}function H(o){return o==null?o===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(o)}
1var se="[object RegExp]",ae="[object String]",ce="[object Number]",le="[object Boolean]",z="[object Arguments]",me="[object Symbol]",fe="[object Date]",ue="[object Map]",pe="[object Set]",de="[object Array]",ge="[object Function]",xe="[object ArrayBuffer]",U="[object Object]",he="[object Error]",be="[object DataView]",Ie="[object Uint8Array]",ye="[object Uint8ClampedArray]",ke="[object Uint16Array]",we="[object Uint32Array]",Ae="[object BigUint64Array]",_e="[object Int8Array]",ve="[object Int16Array]",Ee="[object Int32Array]",Ce="[object BigInt64Array]",Te="[object Float32Array]",Be="[object Float64Array]";function q(o){if(!o||typeof o!="object")return!1;let e=Object.getPrototypeOf(o);return e===null||e===Object.prototype||Object.getPrototypeOf(e)===null?Object.prototype.toString.call(o)==="[object Object]":!1}function Oe(o,e,t){return v(o,e,void 0,void 0,void 0,void 0,t)}function v(o,e,t,r,i,n,s){let a=s(o,e,t,r,i,n);if(a!==void 0)return a;if(typeof o==typeof e)switch(typeof o){case"bigint":case"string":case"boolean":case"symbol":case"undefined":return o===e;case"number":return o===e||Object.is(o,e);case"function":return o===e;case"object":return E(o,e,n,s)}return E(o,e,n,s)}function E(o,e,t,r){if(Object.is(o,e))return!0;let i=H(o),n=H(e);if(i===z&&(i=U),n===z&&(n=U),i!==n)return!1;switch(i){case ae:return o.toString()===e.toString();case ce:{let c=o.valueOf(),f=e.valueOf();return ne(c,f)}case le:case fe:case me:return Object.is(o.valueOf(),e.valueOf());case se:return o.source===e.source&&o.flags===e.flags;case ge:return o===e}t=t??new Map;let s=t.get(o),a=t.get(e);if(s!=null&&a!=null)return s===e;t.set(o,e),t.set(e,o);try{switch(i){case ue:{if(o.size!==e.size)return!1;for(let[c,f]of o.entries())if(!e.has(c)||!v(f,e.get(c),c,o,e,t,r))return!1;return!0}case pe:{if(o.size!==e.size)return!1;let c=Array.from(o.values()),f=Array.from(e.values());for(let l=0;l<c.length;l++){let m=c[l],u=f.findIndex(b=>v(m,b,void 0,o,e,t,r));if(u===-1)return!1;f.splice(u,1)}return!0}case de:case Ie:case ye:case ke:case we:case Ae:case _e:case ve:case Ee:case Ce:case Te:case Be:{if(typeof Buffer<"u"&&Buffer.isBuffer(o)!==Buffer.isBuffer(e)||o.length!==e.length)return!1;for(let c=0;c<o.length;c++)if(!v(o[c],e[c],c,o,e,t,r))return!1;return!0}case xe:return o.byteLength!==e.byteLength?!1:E(new Uint8Array(o),new Uint8Array(e),t,r);case be:return o.byteLength!==e.byteLength||o.byteOffset!==e.byteOffset?!1:E(new Uint8Array(o),new Uint8Array(e),t,r);case he:return o.name===e.name&&o.message===e.message;case U:{if(!(E(o.constructor,e.constructor,t,r)||q(o)&&q(e)))return!1;let f=[...Object.keys(o),...V(o)],l=[...Object.keys(e),...V(e)];if(f.length!==l.length)return!1;for(let m=0;m<f.length;m++){let u=f[m],b=o[u];if(!Object.hasOwn(e,u))return!1;let y=e[u];if(!v(b,y,u,o,e,t,r))return!1}return!0}default:return!1}}finally{t.delete(o),t.delete(e)}}function Ue(){}function $(o,e){return Oe(o,e,Ue)}var S=class extends d.Plugin{static get pluginName(){return"CKBoxUI"}static get isOfficialPlugin(){return!0}afterInit(){let e=this.editor;e.commands.get("ckbox")&&(e.ui.componentFactory.add("ckbox",()=>this._createFileToolbarButton()),e.ui.componentFactory.add("menuBar:ckbox",()=>this._createFileMenuBarButton()),e.plugins.has("ImageInsertUI")&&e.plugins.get("ImageInsertUI").registerIntegration({name:"assetManager",observable:()=>e.commands.get("ckbox"),buttonViewCreator:()=>this._createImageToolbarButton(),formViewCreator:()=>this._createImageDropdownButton(),menuBarButtonViewCreator:t=>this._createImageMenuBarButton(t?"insertOnly":"insertNested")}))}_createButton(e){let t=this.editor,r=t.locale,i=new e(r),n=t.commands.get("ckbox");return i.bind("isOn","isEnabled").to(n,"value","isEnabled"),i.on("execute",()=>{t.execute("ckbox")}),i}_createFileToolbarButton(){let e=this.editor.locale.t,t=this._createButton(g.ButtonView);return t.icon=x.IconBrowseFiles,t.label=e("Open file manager"),t.tooltip=!0,t}_createImageToolbarButton(){let e=this.editor.locale.t,t=this.editor.plugins.get("ImageInsertUI"),r=this._createButton(g.ButtonView);return r.icon=x.IconImageAssetManager,r.bind("label").to(t,"isImageSelected",i=>e(i?"Replace image with file manager":"Insert image with file manager")),r.tooltip=!0,r}_createImageDropdownButton(){let e=this.editor.locale.t,t=this.editor.plugins.get("ImageInsertUI"),r=this._createButton(g.ButtonView);return r.icon=x.IconImageAssetManager,r.withText=!0,r.bind("label").to(t,"isImageSelected",i=>e(i?"Replace with file manager":"Insert with file manager")),r.on("execute",()=>{t.dropdownView.isOpen=!1}),r}_createFileMenuBarButton(){let e=this.editor.locale.t,t=this._createButton(g.MenuBarMenuListItemButtonView);return t.icon=x.IconBrowseFiles,t.withText=!0,t.label=e("File"),t}_createImageMenuBarButton(e){let t=this.editor.locale.t,r=this.editor.locale.t,i=this._createButton(g.MenuBarMenuListItemButtonView);switch(i.icon=x.IconImageAssetManager,i.withText=!0,e){case"insertOnly":i.label=t("Image");break;case"insertNested":i.label=r("With file manager");break}return i}};function J(o){let e=[],t=0;for(let i in o){let n=parseInt(i,10);isNaN(n)||(n>t&&(t=n),e.push(`${o[i]} ${i}w`))}let r=[{srcset:e.join(","),sizes:`(max-width: ${t}
1px) 100vw, ${t}px`,type:"image/webp"}];return{imageFallbackUrl:o.default,imageSources:r}}function Me(o,e){let[,t]=o.value.split("."),r=JSON.parse(atob(t)),i=r.auth?.ckbox?.workspaces||[r.aud];return e?r.auth?.ckbox?.role=="superadmin"||i.includes(e)?e:null:i[0]}var C=32;function je(o){if(o)try{let e=`${C}px`,t=document.createElement("canvas");t.setAttribute("width",e),t.setAttribute("height",e);let r=t.getContext("2d");if(!r)return;let i=r.createImageData(C,C),n=ie(o,C,C);return i.data.set(n),r.putImageData(i,0,0),t.toDataURL()}catch{return}}function T({url:o,method:e="GET",data:t,onUploadProgress:r,signal:i,authorization:n}){let s=new XMLHttpRequest;s.open(e,o.toString()),s.setRequestHeader("Authorization",n),s.setRequestHeader("CKBox-Version","CKEditor 5"),s.responseType="json";let a=()=>{s.abort()};return new Promise((c,f)=>{i.throwIfAborted(),i.addEventListener("abort",a),s.addEventListener("loadstart",()=>{i.addEventListener("abort",a)}),s.addEventListener("loadend",()=>{i.removeEventListener("abort",a)}),s.addEventListener("error",()=>{f()}),s.addEventListener("abort",()=>{f()}),s.addEventListener("load",()=>{let l=s.response;if(!l||l.statusCode>=400)return f(l&&l.message);c(l)});r&&s.upload.addEventListener("progress",l=>{r(l)}),s.send(t)})}var tt={"image/gif":"gif","image/jpeg":"jpg","image/png":"png","image/webp":"webp","image/bmp":"bmp","image/tiff":"tiff"};function Re(o){return tt[o]}async function Fe(o,e){try{let t=await fetch(o,{method:"HEAD",cache:"force-cache",...e});return t.ok&&t.headers.get("content-type")||""}catch{return""}}function De(o){let e=o.name,t=/\.(?<ext>[^.]+)$/;return e.match(t).groups.ext.toLowerCase()}var ot=1e3,P=class extends d.Command{_chosenAssets=new Set;_wrapper=null;constructor(e){super(e),this._initListeners()}refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(){this.fire("ckbox:open")}_getValue(){return this._wrapper!==null}_checkEnabled(){let e=this.editor.commands.get("insertImage"),t=this.editor.commands.get("link");return!(!e.isEnabled&&!t.isEnabled)}_prepareOptions(){let t=this.editor.config.get("ckbox"),r=t.dialog,i=t.categories,n=t.view,s=t.upload;return{theme:t.theme,language:t.language,tokenUrl:t.tokenUrl,serviceOrigin:t.serviceOrigin,forceDemoLabel:t.forceDemoLabel,choosableFileExtensions:t.choosableFileExtensions,assets:{onChoose:a=>this.fire("ckbox:choose",a)},dialog:{onClose:()=>this.fire("ckbox:close"),width:r&&r.width,height:r&&r.height},categories:i&&{icons:i.icons},view:n&&{openLastView:n.openLastView,startupFolderId:n.startupFolderId,startupCategoryId:n.startupCategoryId,hideMaximizeButton:n.hideMaximizeButton},upload:s&&{componentsHideTimeout:s.componentsHideTimeout,dialogMinimizeTimeout:s.dialogMinimizeTimeout}}}_initListeners(){let e=this.editor,t=e.model,r=!e.config.get("ckbox.ignoreDataId"),i=e.config.get("ckbox.downloadableFiles");this.on("ckbox",()=>{this.refresh()},{priority:"low"}),this.on("ckbox:open",()=>{!this.isEnabled||this.value||(this._wrapper=(0,p.createElement)(document,"div",{class:"ck ckbox-wrapper"}),document.body.appendChild(this._wrapper),window.CKBox.mount(this._wrapper,this._prepareOptions()))}),this.on("ckbox:close",()=>{this.value&&(this._wrapper.remove(),this._wrapper=null,e.editing.view.focus())}),this.on("ckbox:choose",(n,s)=>{if(!this.isEnabled)return;let a=e.commands.get("insertImage"),c=e.commands.get("link"),f=rt({assets:s,downloadableFilesConfig:i,isImageAllowed:a.isEnabled,isLinkAllowed:c.isEnabled}),l=f.length;l!==0&&(t.change(m=>{for(let u of f){let b=u===f[l-1],y=l===1;this._insertAsset(u,b,m,y),r&&(setTimeout(()=>this._chosenAssets.delete(u),ot),this._chosenAssets.add(u))}}),e.editing.view.focus())}),this.listenTo(e,"destroy",()=>{this.fire("ckbox:close"),this._chosenAssets.clear()})}_insertAsset(e,t,r,i){let a=this.editor.model.document.selection;r.removeSelectionAttribute("linkHref"),e.type==="image"?this._insertImage(e):this._insertLink(e,r,i),t||r.setSelection(a.getLastPosition())}_insertImage(e){let t=this.editor,{imageFallbackUrl:r,imageSources:i,imageTextAlternative:n,imageWidth:s,imageHeight:a,imagePlaceholder:c}=e.attributes;t.execute("insertImage",{source:{src:r,sources:i,alt:n,width:s,height:a,...c?{placeholder:c}:null}})}_insertLink(e,t,r){let i=this.editor,n=i.model,s=n.document.selection,{linkName:a,linkHref:c}=e.attributes;if(s.isCollapsed){let f=(0,p.toMap)(s.getAttributes()),l=t.createText(a,f);if(!r){let u=s.getLastPosition(),b=u.parent;b.name==="paragraph"&&b.isEmpty||i.execute("insertParagraph",{position:u});let y=n.insertContent(l);t.setSelection(y),i.execute("link",c);return}let m=n.insertContent(l);t.setSelection(m)}i.execute("link",c)}};function rt({downloadableFilesConfig:o,assets:e,isImageAllowed:t,isLinkAllowed:r}){return e.map(i=>nt(i)?{id:i.data.id,type:"image",attributes:Y(i)}:{id:i.data.id,type:"link",attributes:it(i,o)}).filter(i=>i.type==="image"?t:r)}function Y(o){let{imageFallbackUrl:e,imageSources:t}=J(o.data.imageUrls),{description:r,width:i,height:n,blurHash:s}=o.data.metadata,a=je(s);return{imageFallbackUrl:e,imageSources:t,imageTextAlternative:r||"",imageWidth:i,imageHeight:n,...a?{imagePlaceholder:a}:null}}function it(o,e){return{linkName:o.data.name,linkHref:st(o,e)}}function nt(o){let e=o.data.metadata;return e?e.width&&e.height:!1}function st(o,e){let t=new URL(o.data.url);return at(o,e)&&t.searchParams.set("download","true"),t.toString()}function at(o,e){return typeof e=="function"?e(o):!0}var ct="lark",I=class extends d.Plugin{_token;static get pluginName(){return"CKBoxUtils"}static get isOfficialPlugin(){return!0}static get requires(){return["CloudServices"]}init(){let e=this.editor,t=!!e.config.get("ckbox"),r=!!window.CKBox;if(!t&&!r)return;e.config.define("ckbox",{serviceOrigin:"https://api.ckbox.io",defaultUploadCategories:null,ignoreDataId:!1,language:e.locale.uiLanguage,theme:ct,tokenUrl:e.config.get("cloudServices.tokenUrl")});let i=e.plugins.get("CloudServices"),n=e.config.get("cloudServices.tokenUrl"),s=e.config.get("ckbox.tokenUrl");if(!s)throw new p.CKEditorError("ckbox-plugin-missing-token-url",this);s==n?this._token=Promise.resolve(i.token):this._token=i.registerTokenUrl(s),this._token=this._token.then(async a=>(await this._authorizePrivateCategoriesAccess(a.value),a))}getToken(){return this._token}async getWorkspaceId(){let e=this.editor.t,t=e("Cannot access default workspace."),r=this.editor.config.get("ckbox.defaultUploadWorkspaceId"),i=Me(await this._token,r);if(i==null)throw(0,p.logError)("ckbox-access-default-workspace-error"),t;return i}async getCategoryIdForFile(e,t){let r=this.editor.t,i=r("Cannot determine a category for the uploaded file."),n=this.editor.config.get("ckbox.defaultUploadCategories"),s=this._getAvailableCategories(t),a=typeof e=="string"?Re(await Fe(e,t)):De(e),c=await s;if(!c)throw i;if(n){let l=Object.keys(n).find(m=>n[m].find(u=>u.toLowerCase()==a));if(l){let m=c.find(u=>u.id===l||u.name===l);if(!m)throw i;return m.id}}let f=c.find(l=>l.extensions.find(m=>m.toLowerCase()==a));if(!f)throw i;return f.id}async _getAvailableCategories(e){let r=this.editor,i=this._token,{signal:n}=e,s=r.config.get("ckbox.serviceOrigin"),a=await this.getWorkspaceId();try{let f=[],l=0,m;do{let u=await c(l);f.push(...u.items),m=u.totalCount-(l+50),l+=50}while(m>0);return f}catch{n.throwIfAborted(),(0,p.logError)("ckbox-fetch-category-http-error");return}async function c(f){let l=new URL("categories",s);return l.searchParams.set("limit",String(50)),l.searchParams.set("offset",String(f)),l.searchParams.set("workspaceId",a),T({url:l,signal:n,authorization:(await i).value})}}async _authorizePrivateCategoriesAccess(e){let t=this.editor.config.get("ckbox.serviceOrigin"),r=new FormData;r.set("token",e),await fetch(`${t}/categories/authorizePrivateAccess`,{method:"POST",credentials:"include",mode:"no-cors",body:r})}},L=class extends d.Plugin{static get requires(){return["ImageUploadEditing","ImageUploadProgress",k.FileRepository,A]}static get pluginName(){return"CKBoxUploadAdapter"}static get isOfficialPlugin(){return!0}async afterInit(){let e=this.editor,t=!!e.config.get("ckbox"),r=!!window.CKBox;if(!t&&!r)return;let i=e.plugins.get(k.FileRepository),n=e.plugins.get(I);i.createUploadAdapter=c=>
vendor: 4,739 bytes, line 1
1new Q(c,e,n);let s=!e.config.get("ckbox.ignoreDataId"),a=e.plugins.get("ImageUploadEditing");s&&a.on("uploadComplete",(c,{imageElement:f,data:l})=>{e.model.change(m=>{m.setAttribute("ckboxImageId",l.ckboxImageId,f)})})}},Q=class{loader;token;editor;controller;serviceOrigin;ckboxUtils;constructor(e,t,r){this.loader=e,this.token=r.getToken(),this.ckboxUtils=r,this.editor=t,this.controller=new AbortController,this.serviceOrigin=t.config.get("ckbox.serviceOrigin")}async upload(){let e=this.ckboxUtils,t=this.editor.t,r=await this.loader.file,i=await e.getCategoryIdForFile(r,{signal:this.controller.signal}),n=new URL("assets",this.serviceOrigin),s=new FormData;n.searchParams.set("workspaceId",await e.getWorkspaceId()),s.append("categoryId",i),s.append("file",r);let a={method:"POST",url:n,data:s,onUploadProgress:c=>{c.lengthComputable&&(this.loader.uploadTotal=c.total,this.loader.uploaded=c.loaded)},signal:this.controller.signal,authorization:(await this.token).value};return T(a).then(async c=>{let f=J(c.imageUrls);return{ckboxImageId:c.id,default:f.imageFallbackUrl,sources:f.imageSources}}).catch(()=>{let c=t("Cannot upload file:")+` ${r.name}.`;return Promise.reject(c)})}abort(){this.controller.abort()}},Se="NoPermission",A=class extends d.Plugin{static get pluginName(){return"CKBoxEditing"}static get isOfficialPlugin(){return!0}static get requires(){return["LinkEditing","PictureEditing",L,I]}init(){let e=this.editor;this._shouldBeInitialised()&&(this._checkImagePlugins(),Le()&&e.commands.add("ckbox",new P(e)),pt(e).then(t=>{t||this._blockImageCommands()}))}afterInit(){let e=this.editor;this._shouldBeInitialised()&&(e.config.get("ckbox.ignoreDataId")||(this._initSchema(),this._initConversion(),this._initFixers()))}_shouldBeInitialised(){return!!this.editor.config.get("ckbox")||Le()}_blockImageCommands(){let e=this.editor,t=e.commands.get("uploadImage"),r=e.commands.get("ckboxImageEdit");t&&(t.isAccessAllowed=!1,t.forceDisabled(Se)),r&&r.forceDisabled(Se)}_checkImagePlugins(){let e=this.editor;!e.plugins.has("ImageBlockEditing")&&!e.plugins.has("ImageInlineEditing")&&(0,p.logError)("ckbox-plugin-image-feature-missing",e)}_initSchema(){let t=this.editor.model.schema;t.extend("$text",{allowAttributes:"ckboxLinkId"}),t.isRegistered("imageBlock")&&t.extend("imageBlock",{allowAttributes:["ckboxImageId","ckboxLinkId"]}),t.isRegistered("imageInline")&&t.extend("imageInline",{allowAttributes:["ckboxImageId","ckboxLinkId"]}),t.addAttributeCheck(r=>{if(!r.last.getAttribute("linkHref"))return!1},"ckboxLinkId")}_initConversion(){let e=this.editor;e.conversion.for("downcast").add(r=>{r.on("attribute:ckboxLinkId:imageBlock",(i,n,s)=>{let{writer:a,mapper:c,consumable:f}=s;if(!f.consume(n.item,i.name))return;let m=[...c.toViewElement(n.item).getChildren()].find(u=>u.name==="a");m&&(n.item.hasAttribute("ckboxLinkId")?a.setAttribute("data-ckbox-resource-id",n.item.getAttribute("ckboxLinkId"),m):a.removeAttribute("data-ckbox-resource-id",m))},{priority:"low"}),r.on("attribute:ckboxLinkId",(i,n,s)=>{let{writer:a,mapper:c,consumable:f}=s;if(f.consume(n.item,i.name)){if(n.attributeOldValue){let l=Pe(a,n.attributeOldValue);a.unwrap(c.toViewRange(n.range),l)}if(n.attributeNewValue){let l=Pe(a,n.attributeNewValue);if(n.item.is("selection")){let m=a.document.selection;a.wrap(m.getFirstRange(),l)}else a.wrap(c.toViewRange(n.range),l)}}},{priority:"low"})}),e.conversion.for("upcast").add(r=>{r.on("element:a",(i,n,s)=>{let{writer:a,consumable:c}=s;if(!n.viewItem.getAttribute("href"))return;let f={attributes:["data-ckbox-resource-id"]};if(!c.consume(n.viewItem,f))return;let l=n.viewItem.getAttribute("data-ckbox-resource-id");if(l)if(n.modelRange)for(let m of n.modelRange.getItems())m.is("$textProxy")&&(m=m.textNode),ut(m)&&a.setAttribute("ckboxLinkId",l,m);else{let m=n.modelCursor.nodeBefore||n.modelCursor.parent;a.setAttribute("ckboxLinkId",l,m)}},{priority:"low"})}),e.conversion.for("downcast").attributeToAttribute({model:"ckboxImageId",view:"data-ckbox-resource-id"}),e.conversion.for("upcast").elementToAttribute({model:{key:"ckboxImageId",value:r=>r.getAttribute("data-ckbox-resource-id")},view:{attributes:{"data-ckbox-resource-id":/[\s\S]+/}}});let t=e.commands.get("replaceImageSource");t&&this.listenTo(t,"cleanupImage",(r,[i,n])=>{i.removeAttribute("ckboxImageId",n)})}_initFixers(){let e=this.editor,t=e.model,r=t.document.selection;t.document.registerPostFixer(lt(e)),t.document.registerPostFixer(mt(r))}};function lt(o){return e=>{let t=!1,r=o.model,i=o.commands.get("ckbox");if(!i)return t;for(let n of r.document.differ.getChanges()){if(n.type!=="insert"&&n.type!=="attribute")continue;let s=n.type==="insert"?new w.ModelRange(n.position,n.position.getShiftedBy(n.length)):n.range,a=n.t
1ype==="attribute"&&n.attributeKey==="linkHref"&&n.attributeNewValue===null;for(let c of s.getItems()){if(a&&c.hasAttribute("ckboxLinkId")){e.removeAttribute("ckboxLinkId",c),t=!0;continue}let f=ft(c,i._chosenAssets);for(let l of f){let m=l.type==="image"?"ckboxImageId":"ckboxLinkId";l.id!==c.getAttribute(m)&&(e.setAttribute(m,l.id,c),t=!0)}}}return t}}function mt(o){return e=>!o.hasAttribute("linkHref")&&o.hasAttribute("ckboxLinkId")?(e.removeSelectionAttribute("ckboxLinkId"),!0):!1}function ft(o,e){let t=o.is("element","imageInline")||o.is("element","imageBlock"),r=o.hasAttribute("linkHref");return[...e].filter(i=>{if(i.type==="image"&&t)return i.attributes.imageFallbackUrl===o.getAttribute("src");if(i.type==="link"&&r)return i.attributes.linkHref===o.getAttribute("linkHref")})}function Pe(o,e){let t=o.createAttributeElement("a",{"data-ckbox-resource-id":e},{priority:5});return o.setCustomProperty("link",!0,t),t}function ut(o){return!!(o.is("$text")||o.is("element","imageInline")||o.is("element","imageBlock"))}function Le(){return!!window.CKBox}async function pt(o){let e=o.plugins.get(I),t=o.config.get("ckbox.serviceOrigin"),r=new URL("permissions",t),{value:i}=await e.getToken(),n=await T({url:r,authorization:i,signal:new AbortController().signal});return Object.values(n).some(s=>s["asset:create"])}var G=class extends d.Plugin{static get pluginName(){return"CKBox"}static get isOfficialPlugin(){return!0}static get requires(){return[A,S]}};function Ne(o){let e=We(o);return t=>t.is("element","imageInline")||t.is("element","imageBlock")?t.hasAttribute("ckboxImageId")?!0:t.hasAttribute("src")?e(t.getAttribute("src")):!1:!1}function We(o){if(Array.isArray(o)){let e=o.map(We);return t=>e.some(r=>r(t))}if(o=="origin"){let e=p.global.window.location.origin;return t=>new URL(t,p.global.document.baseURI).origin==e}return typeof o=="function"?o:o instanceof RegExp?e=>!!(e.match(o)||e.replace(/^https?:\/\//,"").match(o)):()=>!1}var M=class extends d.Command{_wrapper=null;_processInProgress=new Set;_canEdit;_prepareOptions;_updateUiDelayed=(0,p.delay)(()=>this.editor.ui.update(),0);constructor(e){super(e),this.value=!1,this._canEdit=Ne(e.config.get("ckbox.allowExternalImagesEditing")),this._prepareOptions=(0,p.abortableDebounce)((t,r)=>this._prepareOptionsAbortable(t,r)),this._prepareListeners()}refresh(){let e=this.editor;this.value=this._getValue();let t=e.model.document.selection.getSelectedElement();this.isEnabled=!!t&&this._canEdit(t)&&!this._checkIfElementIsBeingProcessed(t)}execute(){if(this._getValue())return;let e=(0,p.createElement)(document,"div",{class:"ck ckbox-wrapper"});this._wrapper=e,this.value=!0,document.body.appendChild(this._wrapper);let r={element:this.editor.model.document.selection.getSelectedElement(),controller:new AbortController};this._prepareOptions(r).then(i=>window.CKBox.mountImageEditor(e,i),i=>{let n=this.editor,s=n.t;n.plugins.get(g.Notification).showWarning(s("Failed to determine category of edited image."),{namespace:"ckbox"}),console.error(i),this._handleImageEditorClose()})}destroy(){this._handleImageEditorClose(),this._prepareOptions.abort(),this._updateUiDelayed.cancel();for(let e of this._processInProgress.values())e.controller.abort();super.destroy()}_getValue(){return this._wrapper!==null}async _prepareOptionsAbortable(e,t){let r=this.editor,i=r.config.get("ckbox"),n=r.plugins.get(I),{element:s}=t,a,c=s.getAttribute("ckboxImageId");if(c)a={assetId:c};else{let f=new URL(s.getAttribute("src"),document.baseURI).href,l=await n.getCategoryIdForFile(f,{signal:e});a={imageUrl:f,uploadCategoryId:l}}return{...a,imageEditing:{allowOverwrite:!1},tokenUrl:i.tokenUrl,...i.serviceOrigin&&{serviceOrigin:i.serviceOrigin},onClose:()=>this._handleImageEditorClose(),onSave:f=>this._handleImageEditorSave(t,f)}}_prepareListeners(){this.listenTo(this.editor.model.document,"change:data",()=>
1{this._getProcessingStatesOfDeletedImages().forEach(t=>{t.controller.abort()})})}_getProcessingStatesOfDeletedImages(){let e=[];for(let t of this._processInProgress.values())t.element.root.rootName=="$graveyard"&&e.push(t);return e}_checkIfElementIsBeingProcessed(e){for(let{element:t}of this._processInProgress)if($(t,e))return!0;return!1}_handleImageEditorClose(){this._wrapper&&(this._wrapper.remove(),this._wrapper=null,this.editor.editing.view.focus(),this._updateUiDelayed(),this.refresh())}_handleImageEditorSave(e,t){let r=this.editor.locale.t,i=this.editor.plugins.get(g.Notification),n=this.editor.plugins.get(d.PendingActions),s=n.add(r("Processing the edited image."));this._processInProgress.add(e),this._showImageProcessingIndicator(e.element,t),this.refresh(),this._waitForAssetProcessed(t.data.id,e.controller.signal).then(a=>{this._replaceImage(e.element,a)},a=>{this.editor.editing.reconvertItem(e.element),!e.controller.signal.aborted&&(!a||a instanceof p.CKEditorError?i.showWarning(r("Server failed to process the image."),{namespace:"ckbox"}):console.error(a))}).finally(()=>{this._processInProgress.delete(e),n.remove(s),this.refresh()})}async _getAssetStatusFromServer(e,t){let r=this.editor.plugins.get(I),i=new URL("assets/"+e,this.editor.config.get("ckbox.serviceOrigin")),n=await T({url:i,signal:t,authorization:(await r.getToken()).value}),s=n.metadata.metadataProcessingStatus;if(!s||s=="queued")throw new p.CKEditorError("ckbox-image-not-processed");return{data:{...n}}}async _waitForAssetProcessed(e,t){let r=await(0,p.retry)(()=>this._getAssetStatusFromServer(e,t),{signal:t,maxAttempts:5});if(r.data.metadata.metadataProcessingStatus!="success")throw new p.CKEditorError("ckbox-image-processing-failed");return r}_showImageProcessingIndicator(e,t){let r=this.editor;r.editing.view.change(i=>{let n=r.editing.mapper.toViewElement(e),a=this.editor.plugins.get("ImageUtils").findViewImgElement(n);i.removeStyle("aspect-ratio",a),i.setAttribute("width",t.data.metadata.width,a),i.setAttribute("height",t.data.metadata.height,a),i.setStyle("width",`${t.data.metadata.width}px`,a),i.setStyle("height",`${t.data.metadata.height}px`,a),i.addClass("image-processing",n)})}_replaceImage(e,t){let r=this.editor,{imageFallbackUrl:i,imageSources:n,imageWidth:s,imageHeight:a,imagePlaceholder:c}=Y(t),f=Array.from(r.model.document.selection.getRanges());r.model.change(l=>{l.setSelection(e,"on"),r.execute("insertImage",{imageType:e.is("element","imageInline")?"imageInline":null,source:{src:i,sources:n,width:s,height:a,...c?{placeholder:c}:null,...e.hasAttribute("alt")?{alt:e.getAttribute("alt")}:null}});let m=e.getChildren();e=r.model.document.selection.getSelectedElement();for(let u of m)l.append(l.cloneElement(u),e);l.setAttribute("ckboxImageId",t.data.id,e),l.setSelection(f)})}},j=class extends d.Plugin{static get pluginName(){return"CKBoxImageEditEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[A,I,d.PendingActions,g.Notification,"ImageUtils","ImageEditing"]}init(){let{editor:e}=this;e.commands.add("ckboxImageEdit",new M(e))}},R=class extends d.Plugin{static get pluginName(){return"CKBoxImageEditUI"}static get isOfficialPlugin(){return!0}init(){let e=this.editor;e.ui.componentFactory.add("ckboxImageEdit",t=>{let r=e.commands.get("ckboxImageEdit"),i=e.commands.get("uploadImage"),n=new g.ButtonView(t),s=t.t;return n.set({icon:x.IconCkboxImageEdit,tooltip:!0}),n.bind("label").to(i,"isAccessAllowed",a=>s(a?"Edit image":"You have no image editing permissions.")),n.bind("isOn").to(r,"value",r,"isEnabled",(a,c)=>a&&c),n.bind("isEnabled").to(r),this.listenTo(n,"execute",()=>{e.execute("ckboxImageEdit"),e.editing.view.focus()}),n})}},X=class extends d.Plugin{static get pluginName(){return"CKBoxImageEdit"}static get isOfficialPlugin(){return!0}static get requires(){return[j,R]}};var{CKBox:Qt,CKBoxCommand:Gt,CKBoxEditing:Xt,CKBoxImageEdit:Jt,CKBoxImageEditCommand:Yt,CKBoxImageEditEditing:Zt,CKBoxImageEditUI:eo,CKBoxUI:to,CKBoxUploadAdapter:oo,CKBoxUtils:ro,_ckBoxConvertMimeTypeToExtension:io,_ckboxBlurHashToDataUrl:no,_createCKBoxEditabilityChecker:so,_getCKBoxContentTypeOfUrl:ao,_getCKBoxFileExtension:co,_getCKBoxImageUrls:lo,_getCKBoxWorkspaceId:mo,_prepareCKBoxImageAssetAttributes:fo,_sendCKBoxHttpRequest:uo,__esModule:po}=Z;
1export{Qt as CKBox,Gt as CKBoxCommand,Xt as CKBoxEditing,Jt as CKBoxImageEdit,Yt as CKBoxImageEditCommand,Zt as CKBoxImageEditEditing,eo as CKBoxImageEditUI,to as CKBoxUI,oo as CKBoxUploadAdapter,ro as CKBoxUtils,po as __esModule,io as _ckBoxConvertMimeTypeToExtension,no as _ckboxBlurHashToDataUrl,so as _createCKBoxEditabilityChecker,ao as _getCKBoxContentTypeOfUrl,co as _getCKBoxFileExtension,lo as _getCKBoxImageUrls,mo as _getCKBoxWorkspaceId,fo as _prepareCKBoxImageAssetAttributes,uo as _sendCKBoxHttpRequest}; 2/*! Bundled license information: 3 4@ckeditor/ckeditor5-ckbox/dist/index.js: 5 (** 6 * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved. 7 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options 8 *) 9 (* istanbul ignore next -- @preserve *) 10 (* istanbul ignore else -- @preserve *) 11*/ 12//# sourceMappingURL=@ckeditor$ckeditor5-ckbox$dist$index.js.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.