UNPKG

@imgly/plugin-background-removal-web

Version:

Background Removal plugin for the CE.SDK editor

48 lines (45 loc) 28.9 kB
var It=class{constructor(e,t){this.engine=e,this.key=t}hasData(e){return this.engine.block.isValid(e)&&this.engine.block.hasMetadata(e,this.key)}get(e){if(this.hasData(e))return JSON.parse(this.engine.block.getMetadata(e,this.key))}set(e,t){this.engine.block.setMetadata(e,this.key,JSON.stringify(t))}clear(e){this.engine.block.hasMetadata(e,this.key)&&this.engine.block.removeMetadata(e,this.key)}},Pt=It,At=typeof global=="object"&&global&&global.Object===Object&&global,ze=At,jt=typeof self=="object"&&self&&self.Object===Object&&self,Et=ze||jt||Function("return this")(),A=Et,_t=A.Symbol,B=_t,Ge=Object.prototype,Ot=Ge.hasOwnProperty,Rt=Ge.toString,H=B?B.toStringTag:void 0;function kt(e){var t=Ot.call(e,H),r=e[H];try{e[H]=void 0;var a=!0}catch{}var i=Rt.call(e);return a&&(t?e[H]=r:delete e[H]),i}var Ft=kt,Bt=Object.prototype,Lt=Bt.toString;function Nt(e){return Lt.call(e)}var Mt=Nt,Dt="[object Null]",Vt="[object Undefined]",we=B?B.toStringTag:void 0;function Ut(e){return e==null?e===void 0?Vt:Dt:we&&we in Object(e)?Ft(e):Mt(e)}var W=Ut;function Ht(e){return e!=null&&typeof e=="object"}var z=Ht,Tt=Array.isArray,J=Tt;function zt(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var $e=zt,Gt="[object AsyncFunction]",$t="[object Function]",Wt="[object GeneratorFunction]",Zt="[object Proxy]";function Kt(e){if(!$e(e))return!1;var t=W(e);return t==$t||t==Wt||t==Gt||t==Zt}var We=Kt,qt=A["__core-js_shared__"],ie=qt,Ce=function(){var e=/[^.]+$/.exec(ie&&ie.keys&&ie.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Jt(e){return!!Ce&&Ce in e}var Yt=Jt,Xt=Function.prototype,Qt=Xt.toString;function er(e){if(e!=null){try{return Qt.call(e)}catch{}try{return e+""}catch{}}return""}var O=er,tr=/[\\^$.*+?()[\]{}|]/g,rr=/^\[object .+?Constructor\]$/,ar=Function.prototype,or=Object.prototype,ir=ar.toString,sr=or.hasOwnProperty,nr=RegExp("^"+ir.call(sr).replace(tr,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function lr(e){if(!$e(e)||Yt(e))return!1;var t=We(e)?nr:rr;return t.test(O(e))}var fr=lr;function ur(e,t){return e?.[t]}var dr=ur;function cr(e,t){var r=dr(e,t);return fr(r)?r:void 0}var L=cr,pr=L(A,"WeakMap"),fe=pr,mr=9007199254740991,gr=/^(?:0|[1-9]\d*)$/;function hr(e,t){var r=typeof e;return t=t??mr,!!t&&(r=="number"||r!="symbol"&&gr.test(e))&&e>-1&&e%1==0&&e<t}var br=hr;function xr(e,t){return e===t||e!==e&&t!==t}var Ze=xr,vr=9007199254740991;function yr(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=vr}var Ke=yr;function Sr(e){return e!=null&&Ke(e.length)&&!We(e)}var wr=Sr,Cr=Object.prototype;function Ir(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||Cr;return e===r}var Pr=Ir;function Ar(e,t){for(var r=-1,a=Array(e);++r<e;)a[r]=t(r);return a}var jr=Ar,Er="[object Arguments]";function _r(e){return z(e)&&W(e)==Er}var Ie=_r,qe=Object.prototype,Or=qe.hasOwnProperty,Rr=qe.propertyIsEnumerable,kr=Ie(function(){return arguments}())?Ie:function(e){return z(e)&&Or.call(e,"callee")&&!Rr.call(e,"callee")},Fr=kr;function Br(){return!1}var Lr=Br,Je=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Pe=Je&&typeof module=="object"&&module&&!module.nodeType&&module,Nr=Pe&&Pe.exports===Je,Ae=Nr?A.Buffer:void 0,Mr=Ae?Ae.isBuffer:void 0,Dr=Mr||Lr,ue=Dr,Vr="[object Arguments]",Ur="[object Array]",Hr="[object Boolean]",Tr="[object Date]",zr="[object Error]",Gr="[object Function]",$r="[object Map]",Wr="[object Number]",Zr="[object Object]",Kr="[object RegExp]",qr="[object Set]",Jr="[object String]",Yr="[object WeakMap]",Xr="[object ArrayBuffer]",Qr="[object DataView]",ea="[object Float32Array]",ta="[object Float64Array]",ra="[object Int8Array]",aa="[object Int16Array]",oa="[object Int32Array]",ia="[object Uint8Array]",sa="[object Uint8ClampedArray]",na="[object Uint16Array]",la="[object Uint32Array]",m={};m[ea]=m[ta]=m[ra]=m[aa]=m[oa]=m[ia]=m[sa]=m[na]=m[la]=!0;m[Vr]=m[Ur]=m[Xr]=m[Hr]=m[Qr]=m[Tr]=m[zr]=m[Gr]=m[$r]=m[Wr]=m[Zr]=m[Kr]=m[qr]=m[Jr]=m[Yr]=!1;function fa(e){return z(e)&&Ke(e.length)&&!!m[W(e)]}var ua=fa;function da(e){return function(t){return e(t)}}var ca=da,Ye=typeof exports=="object"&&exports&&!exports.nodeType&&exports,T=Ye&&typeof module=="object"&&module&&!module.nodeType&&module,pa=T&&T.exports===Ye,se=pa&&ze.process,ma=function(){try{var e=T&&T.require&&T.require("util").types;return e||se&&se.binding&&se.binding("util")}catch{}}(),je=ma,Ee=je&&je.isTypedArray,ga=Ee?ca(Ee):ua,Xe=ga,ha=Object.prototype,ba=ha.hasOwnProperty;function xa(e,t){var r=J(e),a=!r&&Fr(e),i=!r&&!a&&ue(e),o=!r&&!a&&!i&&Xe(e),n=r||a||i||o,s=n?jr(e.length,String):[],f=s.length;for(var l in e)(t||ba.call(e,l))&&!(n&&(l=="length"||i&&(l=="offset"||l=="parent")||o&&(l=="buffer"||l=="byteLength"||l=="byteOffset")||br(l,f)))&&s.push(l);return s}var va=xa;function ya(e,t){return function(r){return e(t(r))}}var Sa=ya,wa=Sa(Object.keys,Object),Ca=wa,Ia=Object.prototype,Pa=Ia.hasOwnProperty;function Aa(e){if(!Pr(e))return Ca(e);var t=[];for(var r in Object(e))Pa.call(e,r)&&r!="constructor"&&t.push(r);return t}var ja=Aa;function Ea(e){return wr(e)?va(e):ja(e)}var _a=Ea,Oa=L(Object,"create"),G=Oa;function Ra(){this.__data__=G?G(null):{},this.size=0}var ka=Ra;function Fa(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Ba=Fa,La="__lodash_hash_undefined__",Na=Object.prototype,Ma=Na.hasOwnProperty;function Da(e){var t=this.__data__;if(G){var r=t[e];return r===La?void 0:r}return Ma.call(t,e)?t[e]:void 0}var Va=Da,Ua=Object.prototype,Ha=Ua.hasOwnProperty;function Ta(e){var t=this.__data__;return G?t[e]!==void 0:Ha.call(t,e)}var za=Ta,Ga="__lodash_hash_undefined__";function $a(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=G&&t===void 0?Ga:t,this}var Wa=$a;function N(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var a=e[t];this.set(a[0],a[1])}}N.prototype.clear=ka;N.prototype.delete=Ba;N.prototype.get=Va;N.prototype.has=za;N.prototype.set=Wa;var _e=N;function Za(){this.__data__=[],this.size=0}var Ka=Za;function qa(e,t){for(var r=e.length;r--;)if(Ze(e[r][0],t))return r;return-1}var X=qa,Ja=Array.prototype,Ya=Ja.splice;function Xa(e){var t=this.__data__,r=X(t,e);if(r<0)return!1;var a=t.length-1;return r==a?t.pop():Ya.call(t,r,1),--this.size,!0}var Qa=Xa;function eo(e){var t=this.__data__,r=X(t,e);return r<0?void 0:t[r][1]}var to=eo;function ro(e){return X(this.__data__,e)>-1}var ao=ro;function oo(e,t){var r=this.__data__,a=X(r,e);return a<0?(++this.size,r.push([e,t])):r[a][1]=t,this}var io=oo;function M(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var a=e[t];this.set(a[0],a[1])}}M.prototype.clear=Ka;M.prototype.delete=Qa;M.prototype.get=to;M.prototype.has=ao;M.prototype.set=io;var Q=M,so=L(A,"Map"),$=so;function no(){this.size=0,this.__data__={hash:new _e,map:new($||Q),string:new _e}}var lo=no;function fo(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var uo=fo;function co(e,t){var r=e.__data__;return uo(t)?r[typeof t=="string"?"string":"hash"]:r.map}var ee=co;function po(e){var t=ee(this,e).delete(e);return this.size-=t?1:0,t}var mo=po;function go(e){return ee(this,e).get(e)}var ho=go;function bo(e){return ee(this,e).has(e)}var xo=bo;function vo(e,t){var r=ee(this,e),a=r.size;return r.set(e,t),this.size+=r.size==a?0:1,this}var yo=vo;function D(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var a=e[t];this.set(a[0],a[1])}}D.prototype.clear=lo;D.prototype.delete=mo;D.prototype.get=ho;D.prototype.has=xo;D.prototype.set=yo;var Qe=D;function So(e,t){for(var r=-1,a=t.length,i=e.length;++r<a;)e[i+r]=t[r];return e}var wo=So;function Co(){this.__data__=new Q,this.size=0}var Io=Co;function Po(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Ao=Po;function jo(e){return this.__data__.get(e)}var Eo=jo;function _o(e){return this.__data__.has(e)}var Oo=_o,Ro=200;function ko(e,t){var r=this.__data__;if(r instanceof Q){var a=r.__data__;if(!$||a.length<Ro-1)return a.push([e,t]),this.size=++r.size,this;r=this.__data__=new Qe(a)}return r.set(e,t),this.size=r.size,this}var Fo=ko;function V(e){var t=this.__data__=new Q(e);this.size=t.size}V.prototype.clear=Io;V.prototype.delete=Ao;V.prototype.get=Eo;V.prototype.has=Oo;V.prototype.set=Fo;var ne=V;function Bo(e,t){for(var r=-1,a=e==null?0:e.length,i=0,o=[];++r<a;){var n=e[r];t(n,r,e)&&(o[i++]=n)}return o}var Lo=Bo;function No(){return[]}var Mo=No,Do=Object.prototype,Vo=Do.propertyIsEnumerable,Oe=Object.getOwnPropertySymbols,Uo=Oe?function(e){return e==null?[]:(e=Object(e),Lo(Oe(e),function(t){return Vo.call(e,t)}))}:Mo,Ho=Uo;function To(e,t,r){var a=t(e);return J(e)?a:wo(a,r(e))}var zo=To;function Go(e){return zo(e,_a,Ho)}var Re=Go,$o=L(A,"DataView"),de=$o,Wo=L(A,"Promise"),ce=Wo,Zo=L(A,"Set"),pe=Zo,ke="[object Map]",Ko="[object Object]",Fe="[object Promise]",Be="[object Set]",Le="[object WeakMap]",Ne="[object DataView]",qo=O(de),Jo=O($),Yo=O(ce),Xo=O(pe),Qo=O(fe),_=W;(de&&_(new de(new ArrayBuffer(1)))!=Ne||$&&_(new $)!=ke||ce&&_(ce.resolve())!=Fe||pe&&_(new pe)!=Be||fe&&_(new fe)!=Le)&&(_=function(e){var t=W(e),r=t==Ko?e.constructor:void 0,a=r?O(r):"";if(a)switch(a){case qo:return Ne;case Jo:return ke;case Yo:return Fe;case Xo:return Be;case Qo:return Le}return t});var Me=_,ei=A.Uint8Array,De=ei,ti="__lodash_hash_undefined__";function ri(e){return this.__data__.set(e,ti),this}var ai=ri;function oi(e){return this.__data__.has(e)}var ii=oi;function Y(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Qe;++t<r;)this.add(e[t])}Y.prototype.add=Y.prototype.push=ai;Y.prototype.has=ii;var si=Y;function ni(e,t){for(var r=-1,a=e==null?0:e.length;++r<a;)if(t(e[r],r,e))return!0;return!1}var li=ni;function fi(e,t){return e.has(t)}var ui=fi,di=1,ci=2;function pi(e,t,r,a,i,o){var n=r&di,s=e.length,f=t.length;if(s!=f&&!(n&&f>s))return!1;var l=o.get(e),c=o.get(t);if(l&&c)return l==t&&c==e;var d=-1,u=!0,g=r&ci?new si:void 0;for(o.set(e,t),o.set(t,e);++d<s;){var x=e[d],y=t[d];if(a)var w=n?a(y,x,d,t,e,o):a(x,y,d,e,t,o);if(w!==void 0){if(w)continue;u=!1;break}if(g){if(!li(t,function(S,C){if(!ui(g,C)&&(x===S||i(x,S,r,a,o)))return g.push(C)})){u=!1;break}}else if(!(x===y||i(x,y,r,a,o))){u=!1;break}}return o.delete(e),o.delete(t),u}var et=pi;function mi(e){var t=-1,r=Array(e.size);return e.forEach(function(a,i){r[++t]=[i,a]}),r}var gi=mi;function hi(e){var t=-1,r=Array(e.size);return e.forEach(function(a){r[++t]=a}),r}var bi=hi,xi=1,vi=2,yi="[object Boolean]",Si="[object Date]",wi="[object Error]",Ci="[object Map]",Ii="[object Number]",Pi="[object RegExp]",Ai="[object Set]",ji="[object String]",Ei="[object Symbol]",_i="[object ArrayBuffer]",Oi="[object DataView]",Ve=B?B.prototype:void 0,le=Ve?Ve.valueOf:void 0;function Ri(e,t,r,a,i,o,n){switch(r){case Oi:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case _i:return!(e.byteLength!=t.byteLength||!o(new De(e),new De(t)));case yi:case Si:case Ii:return Ze(+e,+t);case wi:return e.name==t.name&&e.message==t.message;case Pi:case ji:return e==t+"";case Ci:var s=gi;case Ai:var f=a&xi;if(s||(s=bi),e.size!=t.size&&!f)return!1;var l=n.get(e);if(l)return l==t;a|=vi,n.set(e,t);var c=et(s(e),s(t),a,i,o,n);return n.delete(e),c;case Ei:if(le)return le.call(e)==le.call(t)}return!1}var ki=Ri,Fi=1,Bi=Object.prototype,Li=Bi.hasOwnProperty;function Ni(e,t,r,a,i,o){var n=r&Fi,s=Re(e),f=s.length,l=Re(t),c=l.length;if(f!=c&&!n)return!1;for(var d=f;d--;){var u=s[d];if(!(n?u in t:Li.call(t,u)))return!1}var g=o.get(e),x=o.get(t);if(g&&x)return g==t&&x==e;var y=!0;o.set(e,t),o.set(t,e);for(var w=n;++d<f;){u=s[d];var S=e[u],C=t[u];if(a)var j=n?a(C,S,u,t,e,o):a(S,C,u,e,t,o);if(!(j===void 0?S===C||i(S,C,r,a,o):j)){y=!1;break}w||(w=u=="constructor")}if(y&&!w){var P=e.constructor,I=t.constructor;P!=I&&"constructor"in e&&"constructor"in t&&!(typeof P=="function"&&P instanceof P&&typeof I=="function"&&I instanceof I)&&(y=!1)}return o.delete(e),o.delete(t),y}var Mi=Ni,Di=1,Ue="[object Arguments]",He="[object Array]",q="[object Object]",Vi=Object.prototype,Te=Vi.hasOwnProperty;function Ui(e,t,r,a,i,o){var n=J(e),s=J(t),f=n?He:Me(e),l=s?He:Me(t);f=f==Ue?q:f,l=l==Ue?q:l;var c=f==q,d=l==q,u=f==l;if(u&&ue(e)){if(!ue(t))return!1;n=!0,c=!1}if(u&&!c)return o||(o=new ne),n||Xe(e)?et(e,t,r,a,i,o):ki(e,t,f,r,a,i,o);if(!(r&Di)){var g=c&&Te.call(e,"__wrapped__"),x=d&&Te.call(t,"__wrapped__");if(g||x){var y=g?e.value():e,w=x?t.value():t;return o||(o=new ne),i(y,w,r,a,o)}}return u?(o||(o=new ne),Mi(e,t,r,a,i,o)):!1}var Hi=Ui;function tt(e,t,r,a,i){return e===t?!0:e==null||t==null||!z(e)&&!z(t)?e!==e&&t!==t:Hi(e,t,r,a,tt,i)}var Ti=tt;function zi(e,t){return Ti(e,t)}var Gi=zi,$i=class extends Pt{get(e){return super.get(e)??{status:"IDLE"}}isDuplicate(e){if(!this.engine.block.isValid(e))return!1;let t=this.get(e);if(t.status==="IDLE"||t.status==="PENDING"||t.status==="ERROR"||!this.engine.block.hasFill(e))return!1;let r=this.engine.block.getFill(e);return!(t.blockId===e||t.fillId===r)}fixDuplicate(e){let t=this.engine.block.getFill(e),r=this.get(e);r.status==="IDLE"||r.status==="PENDING"||r.status==="ERROR"||(this.set(e,{...r,blockId:e,fillId:t}),r.status==="PROCESSING"&&(this.recoverInitialImageData(e),this.clear(e)))}isConsistent(e){if(!this.engine.block.isValid(e))return!1;let t=this.get(e);if(t.status==="IDLE"||t.status==="PENDING")return!0;if(!this.engine.block.hasFill(e))return!1;let r=this.engine.block.getFill(e);if(r==null||e!==t.blockId||r!==t.fillId)return!1;let a=this.engine.block.getSourceSet(r,"fill/image/sourceSet"),i=this.engine.block.getString(r,"fill/image/imageFileURI");if(a.length===0&&!i&&t.status==="PROCESSING")return!0;if(a?.length>0){let o=t.initialSourceSet;if(t.status!=="PROCESSED"&&!Gi(a,o))return!1}else if(t.status!=="PROCESSED"&&i!==t.initialImageFileURI)return!1;return!0}recoverInitialImageData(e){if(!this.engine.block.hasFill(e))return;let t=this.get(e);if(t.status==="PENDING"||t.status==="IDLE")return;let r=t.initialSourceSet,a=t.initialImageFileURI,i=t.initialPreviewFileURI,o=this.getValidFill(e,t);o!=null&&(a&&this.engine.block.setString(o,"fill/image/imageFileURI",a),i&&this.engine.block.setString(o,"fill/image/previewFileURI",i),r.length>0&&this.engine.block.setSourceSet(o,"fill/image/sourceSet",r))}getValidFill(e,t){if(!this.engine.block.isValid(e)||!this.engine.block.hasFill(e)||e!==t.blockId)return;let r=this.engine.block.getFill(e);if(r===t.fillId)return r}},rt=$i;async function Wi(e,t,r,a){let i=t.engine.block;if(!i.hasFill(e))throw new Error("Block does not support fill");let o=i.getFill(e),n=i.getSourceSet(o,"fill/image/sourceSet"),s=i.getString(o,"fill/image/imageFileURI"),f=i.getString(o,"fill/image/previewFileURI");try{t.engine.block.setState(o,{type:"Pending",progress:0});let l={...r.get(e),version:"0.0.0",initialSourceSet:n,initialImageFileURI:s,initialPreviewFileURI:f,blockId:e,fillId:o,status:"PROCESSING"};r.set(e,l);let c=await a.processFill(l);if(r.get(e).status!=="PROCESSING"||!r.isConsistent(e)||r.get(e).status!=="PROCESSING"||!r.isConsistent(e)||c==null)return;let d={version:"0.0.0",initialSourceSet:n,initialImageFileURI:s,initialPreviewFileURI:f,blockId:e,fillId:o,status:"PROCESSED"},u=a.commitProcessing(c,d);(u==null||u===e)&&r.set(e,d),t.engine.editor.addUndoStep()}catch(l){if(t.engine.block.isValid(e)&&(r.set(e,{version:"0.0.0",initialSourceSet:n,initialImageFileURI:s,initialPreviewFileURI:f,blockId:e,fillId:o,status:"ERROR"}),r.recoverInitialImageData(e)),l!=null&&typeof l=="object"&&"message"in l&&typeof l.message=="string"){let c=l.message==="signal timed out"?"Processing canceled due to timeout":l.message;t.ui.showNotification({type:"error",message:c})}console.log(l)}finally{t.engine.block.isValid(o)&&t.engine.block.setState(o,{type:"Ready"})}}var me=Wi;function at(e){return`${e}.fillProcessing.feature`}function Zi(e){return[`${e}.canvasMenu`,`${e}.fillProcessing.canvasMenu`]}function Ki(e){return[`${e}.dock`,`${e}.fillProcessing.dock`]}function qi(e){return[`${e}.inspectorBar`,`${e}.fillProcessing.inspectorBar`]}function Ji(e){return[`${e}.navigationBar`,`${e}.fillProcessing.navigationBar`]}function Yi(e){return[`${e}.canvasBar`,`${e}.fillProcessing.canvasBar`]}function Xi(e){return`plugin.${e}.fillProcessing.canvasMenu.button.label`}function Qi(e){return`plugin.${e}.fillProcessing.dock.button.label`}function es(e){return`plugin.${e}.fillProcessing.inspectorBar.button.label`}function ts(e){return`plugin.${e}.fillProcessing.navigationBar.button.label`}function rs(e){return`plugin.${e}.fillProcessing.canvasBar.button.label`}function ot(e,{pluginId:t,process:r}){let a=at(t),i=new rt(e.engine,t);return as(e,i,a),e.engine.event.subscribe([],async o=>{o.forEach(n=>{let s=n.block;if(!(!e.engine.block.isValid(s)||!i.hasData(s))){if(n.type==="Created")i.isDuplicate(s)&&i.fixDuplicate(s);else if(n.type==="Updated")switch(i.get(s).status){case"PENDING":{e.feature.isEnabled(a,{engine:e.engine})&&e.engine.block.isAllowedByScope(s,"fill/change")&&e.engine.block.getState(s).type!=="Pending"&&r(s,i);break}case"PROCESSING":case"PROCESSED":{i.isConsistent(s)||i.clear(s);break}default:}}})}),{featureId:a}}function as(e,t,r){e.feature.enable(r,({engine:a})=>{let i=a.block.findAllSelected();if(i.length!==1)return!1;let[o]=i;if(!e.engine.block.isVisible(o))return!1;if(e.engine.block.hasFill(o)){if(e.engine.block.getKind(o)==="sticker")return!1;let n=e.engine.block.getFill(o);if(e.engine.block.getType(n)!=="//ly.img.ubq/fill/image")return!1;let s=a.block.getString(n,"fill/image/imageFileURI");return a.block.getSourceSet(n,"fill/image/sourceSet").length>0||s!==""?!0:t.get(o).status==="PROCESSING"}return!1})}function it(e,t){let{pluginId:r,locations:a}=t,i=new rt(e.engine,r),o=Xi(r),n=Zi(r),s=n[0],f=Qi(r),l=Ki(r),c=l[0],d=es(r),u=qi(r),g=u[0],x=ts(r),y=Ji(r),w=y[0],S=rs(r),C=Yi(r),j=C[0],P=at(r);return a?.includes("inspectorBar")&&e.ui.setInspectorBarOrder([g,...e.ui.getInspectorBarOrder()]),a?.includes("navigationBar")&&e.ui.setNavigationBarOrder([w,...e.ui.getNavigationBarOrder()]),a?.includes("canvasBarTop")&&e.ui.setCanvasBarOrder([j,...e.ui.getCanvasBarOrder("top")],"top"),a?.includes("canvasBarBottom")&&e.ui.setCanvasBarOrder([j,...e.ui.getCanvasBarOrder("bottom")],"bottom"),a?.includes("canvasMenu")&&e.ui.setCanvasMenuOrder([s,...e.ui.getCanvasMenuOrder()]),a?.includes("dock")&&e.ui.setDockOrder([...e.ui.getDockOrder(),c]),e.ui.registerComponent(l,({builder:{Button:I},engine:p})=>{let[v]=p.block.findAllSelected(),b=!1,E=!1,k;if(v==null&&(b=!0),!b&&!e.feature.isEnabled(P,{engine:p})&&(b=!0),!b&&!e.engine.block.isAllowedByScope(v,"fill/change")&&(b=!0),!b&&p.block.getState(v)?.type==="Pending"&&(b=!0),!b){let h=i.get(v);if(E=h.status==="PROCESSING",b=h.status==="PENDING"||h.status==="PROCESSING",h.status==="PROCESSING"&&h.progress){let{current:K,total:oe}=h.progress;k=K/oe*100}}let F=`${c}.button`;I(F,{label:f,icon:t.icon,isLoading:E,isDisabled:b,loadingProgress:k,onClick:()=>{let h=i.get(v);(h.status==="IDLE"||h.status==="ERROR"||h.status==="PROCESSED")&&i.set(v,{status:"PENDING"})}})}),[{componentIds:u,variant:"plain",label:d},{componentIds:y,variant:"regular",label:x},{componentIds:C,variant:"regular",label:S},{componentIds:n,variant:"plain",label:o}].forEach(({componentIds:I,label:p,variant:v})=>{let b=I[0];e.ui.registerComponent(I,({builder:{Button:E},engine:k})=>{if(!e.feature.isEnabled(P,{engine:k}))return;let[F]=k.block.findAllSelected();if(!e.engine.block.isAllowedByScope(F,"fill/change"))return;let h=i.get(F),K=h.status==="PROCESSING",oe=h.status==="PENDING"||h.status==="PROCESSING"||k.block.getState(F)?.type==="Pending",Se;if(K&&h.progress){let{current:wt,total:Ct}=h.progress;Se=wt/Ct*100}let St=`${b}.button`;E(St,{icon:t.icon,label:p,variant:v,isLoading:K,isDisabled:oe,loadingProgress:Se,onClick:()=>{(h.status==="IDLE"||h.status==="ERROR"||h.status==="PROCESSED")&&i.set(F,{status:"PENDING"})}})})}),{canvasMenuComponentId:s,dockComponentId:c,translationsKeys:{inspectorBarLabel:d,navigationBarLabel:x,canvasBarLabel:S,canvasMenuLabel:o,dockLabel:f}}}var Gs=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),$s=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Ws=new RegExp(/[A-Fa-f0-9]{2}/,"g");var os=typeof global=="object"&&global&&global.Object===Object&&global,st=os;var is=typeof self=="object"&&self&&self.Object===Object&&self,ss=st||is||Function("return this")(),te=ss;var ns=te.Symbol,U=ns;var nt=Object.prototype,ls=nt.hasOwnProperty,fs=nt.toString,Z=U?U.toStringTag:void 0;function us(e){var t=ls.call(e,Z),r=e[Z];try{e[Z]=void 0;var a=!0}catch{}var i=fs.call(e);return a&&(t?e[Z]=r:delete e[Z]),i}var lt=us;var ds=Object.prototype,cs=ds.toString;function ps(e){return cs.call(e)}var ft=ps;var ms="[object Null]",gs="[object Undefined]",ut=U?U.toStringTag:void 0;function hs(e){return e==null?e===void 0?gs:ms:ut&&ut in Object(e)?lt(e):ft(e)}var dt=hs;function bs(e){return e!=null&&typeof e=="object"}var ct=bs;var xs="[object Symbol]";function vs(e){return typeof e=="symbol"||ct(e)&&dt(e)==xs}var pt=vs;var ys=/\s/;function Ss(e){for(var t=e.length;t--&&ys.test(e.charAt(t)););return t}var mt=Ss;var ws=/^\s+/;function Cs(e){return e&&e.slice(0,mt(e)+1).replace(ws,"")}var gt=Cs;function Is(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var R=Is;var ht=NaN,Ps=/^[-+]0x[0-9a-f]+$/i,As=/^0b[01]+$/i,js=/^0o[0-7]+$/i,Es=parseInt;function _s(e){if(typeof e=="number")return e;if(pt(e))return ht;if(R(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=R(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=gt(e);var r=As.test(e);return r||js.test(e)?Es(e.slice(2),r?2:8):Ps.test(e)?ht:+e}var ge=_s;var Os=function(){return te.Date.now()},re=Os;var Rs="Expected a function",ks=Math.max,Fs=Math.min;function Bs(e,t,r){var a,i,o,n,s,f,l=0,c=!1,d=!1,u=!0;if(typeof e!="function")throw new TypeError(Rs);t=ge(t)||0,R(r)&&(c=!!r.leading,d="maxWait"in r,o=d?ks(ge(r.maxWait)||0,t):o,u="trailing"in r?!!r.trailing:u);function g(p){var v=a,b=i;return a=i=void 0,l=p,n=e.apply(b,v),n}function x(p){return l=p,s=setTimeout(S,t),c?g(p):n}function y(p){var v=p-f,b=p-l,E=t-v;return d?Fs(E,o-b):E}function w(p){var v=p-f,b=p-l;return f===void 0||v>=t||v<0||d&&b>=o}function S(){var p=re();if(w(p))return C(p);s=setTimeout(S,y(p))}function C(p){return s=void 0,u&&a?g(p):(a=i=void 0,n)}function j(){s!==void 0&&clearTimeout(s),l=0,a=f=i=s=void 0}function P(){return s===void 0?n:C(re())}function I(){var p=re(),v=w(p);if(a=arguments,i=this,f=p,v){if(s===void 0)return x(f);if(d)return clearTimeout(s),s=setTimeout(S,t),g(f)}return s===void 0&&(s=setTimeout(S,t)),n}return I.cancel=j,I.flush=P,I}var bt=Bs;var Ls="Expected a function";function Ns(e,t,r){var a=!0,i=!0;if(typeof e!="function")throw new TypeError(Ls);return R(r)&&(a="leading"in r?!!r.leading:a,i="trailing"in r?!!r.trailing:i),bt(e,t,{leading:a,maxWait:t,trailing:i})}var he=Ns;import{applySegmentationMask as Vs,removeBackground as Us,segmentForeground as Hs}from"@imgly/background-removal";function Ms(e,t=1024){if(e.length===0)return;let[r,a]=e.reduce((i,o)=>(o.width>=t&&o.height>=t?i[0].push(o):i[1].push(o),i),[[],[]]);return r.length>0?r.sort((i,o)=>i.width*i.height-o.width*o.height)[0]:a.sort((i,o)=>o.width*o.height-i.width*i.height)[0]}var xt=Ms;async function Ds(e,t,r){let i=new URL(t).pathname.split("/"),o=i[i.length-1],s=(await r.unstable_upload(new File([e],o,{type:e.type}),()=>{})).meta?.uri;if(s==null)throw new Error("Could not upload processed fill");return s}var be=Ds;async function ve(e,t,r,a,i){return me(e,t,r,{processFill:i??(async o=>{let n=o.initialSourceSet,s=xt(n);if(s==null)throw new Error("No source found");let f=await xe(s.uri,t),l=await Hs(f,a);return await Promise.all(n.map(async d=>{let u=await Vs(await xe(d.uri,t),l,a),g=await be(u,d.uri,t);return{...d,uri:g}}))}),commitProcessing:(o,n)=>{let s=n.fillId;t.engine.block.setSourceSet(s,"fill/image/sourceSet",o);let f=[...o].sort((l,c)=>l.width*l.height-c.width*c.height)[0];f!=null&&t.engine.block.setString(s,"fill/image/previewFileURI",f.uri)}})}async function ye(e,t,r,a,i){return me(e,t,r,{processFill:i??(async o=>{let n=o.initialImageFileURI,s=await Us(await xe(n,t),a);return await be(s,n,t)}),commitProcessing:(o,n)=>{let s=n.fillId;t.engine.block.setString(s,"fill/image/imageFileURI",o),t.engine.block.setString(s,"fill/image/previewFileURI","")}})}async function xe(e,t){if(e.startsWith("buffer:")){let r=await t.engine.editor.getMimeType(e),a=t.engine.editor.getBufferLength(e),i=t.engine.editor.getBufferData(e,0,a),o=new Uint8Array(i);return new Blob([o],{type:r})}else return e}async function vt(e,t,r,a){let i=e.engine.block;if(!i.hasFill(t))throw new Error("Block does not support fill");let o=i.getFill(t),n=i.getSourceSet(o,"fill/image/sourceSet"),s=i.getString(o,"fill/image/imageFileURI");if(n.length===0&&s==="")throw new Error("No source or image file URI found");switch(a.type){case"@imgly/background-removal":{let f=a.configuration??{},l={device:"gpu",...f,progress:he((c,d,u)=>{let g=r.get(t);g.status!=="PROCESSING"||!r.isConsistent(t)||(f.progress?.(c,d,u),r.set(t,{...g,progress:{key:c,current:d,total:u}}))},100)};n.length>0?ve(t,e,r,l):ye(t,e,r,l);break}case"custom":{n.length>0?ve(t,e,r,void 0,f=>a.processSourceSet(f.initialSourceSet)):ye(t,e,r,void 0,f=>a.processImageFileURI(f.initialImageFileURI));break}default:throw new Error("Unknown background removal provider")}}var ae="@imgly/plugin-background-removal-web",yt=(e={})=>({initialize({cesdk:t}){if(t==null)return;Ts(t),ot(t,{pluginId:ae,process:(a,i)=>{vt(t,a,i,e.provider??{type:"@imgly/background-removal"})}});let{translationsKeys:r}=it(t,{pluginId:ae,icon:"@imgly/icons/BGRemove",locations:e.ui?.locations});t.setTranslations({en:{[r.inspectorBarLabel]:"BG Removal",[r.navigationBarLabel]:"BG Removal",[r.canvasBarLabel]:"BG Removal",[r.canvasMenuLabel]:"BG Removal",[r.dockLabel]:"BG Removal"}})}});function Ts(e){e.ui.addIconSet("@imgly/plugin/background-removal",` <svg> <symbol fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="@imgly/icons/BGRemove" > <path d="M5.5 3H7.59095L3 7.59095V5.5C3 4.11929 4.11929 3 5.5 3Z" fill="currentColor"/> <path d="M3 10.4093V13.5913L7.86161 8.72966C8.31641 7.66789 9.16789 6.81641 10.2297 6.36161L13.5913 3H10.4093L3 10.4093Z" fill="currentColor"/> <path d="M7.67225 11.737L3 16.4093V18.5C3 18.8239 3.06161 19.1335 3.17374 19.4175L6.14525 16.446L6.12969 16.2437C6.02445 14.8755 6.56566 13.3081 7.96581 12.4956C7.84616 12.2543 7.74749 12.0006 7.67225 11.737Z" fill="currentColor"/> <path d="M15.2273 7.36398C14.6868 6.80782 14.0037 6.39091 13.2371 6.17218L16.4093 3H18.5C18.8239 3 19.1335 3.06161 19.4175 3.17374L15.2273 7.36398Z" fill="currentColor"/> <path d="M6.34648 19.0623L4.58247 20.8263C4.86654 20.9384 5.17607 21 5.5 21H6.49553L6.34648 19.0623Z" fill="currentColor"/> <path d="M16.0725 12.5182C16.0598 12.5106 16.047 12.5031 16.0342 12.4956C16.3322 11.8946 16.5 11.2171 16.5 10.5C16.5 10.0198 16.4248 9.5572 16.2855 9.12328L20.8263 4.58253C20.9384 4.86658 21 5.1761 21 5.5V7.59079L16.0725 12.5182Z" fill="currentColor"/> <path d="M17.8305 16.7607L17.8703 16.2437C17.9278 15.4966 17.7925 14.69 17.4298 13.9795L21 10.4093V13.5913L17.8305 16.7607Z" fill="currentColor"/> <path d="M17.5045 21L17.5957 19.8136L21 16.4093V18.5C21 19.8807 19.8807 21 18.5 21H17.5045Z" fill="currentColor"/> <path d="M13.4317 13.1374C14.3663 12.6292 15.0007 11.6387 15.0007 10.5C15.0007 8.84315 13.6576 7.5 12.0007 7.5C10.3439 7.5 9.00074 8.84315 9.00074 10.5C9.00074 11.6387 9.63515 12.6292 10.5698 13.1374C9.94563 13.2733 9.38367 13.4801 8.9164 13.6917C7.98874 14.112 7.54792 15.1133 7.62602 16.1287L8.00074 21.0005H16.0007L16.3755 16.1287C16.4536 15.1133 16.0128 14.112 15.0851 13.6917C14.6178 13.4801 14.0559 13.2733 13.4317 13.1374Z" fill="currentColor"/> </symbol> </svg> `)}var zs=e=>({name:ae,version:"1.70.0",...yt(e)}),Zn=zs;export{Zn as default}; /*! Bundled license information: lodash-es/lodash.js: (** * @license * Lodash (Custom Build) <https://lodash.com/> * Build: `lodash modularize exports="es" -o ./` * Copyright OpenJS Foundation and other contributors <https://openjsf.org/> * Released under MIT license <https://lodash.com/license> * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE> * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors *) */ /*! Bundled license information: lodash-es/lodash.js: (** * @license * Lodash (Custom Build) <https://lodash.com/> * Build: `lodash modularize exports="es" -o ./` * Copyright OpenJS Foundation and other contributors <https://openjsf.org/> * Released under MIT license <https://lodash.com/license> * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE> * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors *) */ //# sourceMappingURL=index.mjs.map