UNPKG

@imgly/plugin-background-removal-web

Version:

Background Removal plugin for the CE.SDK editor

50 lines (46 loc) 29 kB
var Pt=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)}},jt=Pt,Ot=typeof global=="object"&&global&&global.Object===Object&&global,ze=Ot,wt=typeof self=="object"&&self&&self.Object===Object&&self,Rt=ze||wt||Function("return this")(),O=Rt,kt=O.Symbol,L=kt,$e=Object.prototype,Ct=$e.hasOwnProperty,Et=$e.toString,G=L?L.toStringTag:void 0;function Ft(e){var t=Ct.call(e,G),r=e[G];try{e[G]=void 0;var a=!0}catch{}var n=Et.call(e);return a&&(t?e[G]=r:delete e[G]),n}var Bt=Ft,Lt=Object.prototype,Dt=Lt.toString;function At(e){return Dt.call(e)}var Nt=At,Mt="[object Null]",Tt="[object Undefined]",Ie=L?L.toStringTag:void 0;function Ut(e){return e==null?e===void 0?Tt:Mt:Ie&&Ie in Object(e)?Bt(e):Nt(e)}var H=Ut;function Gt(e){return e!=null&&typeof e=="object"}var z=Gt,Wt=Array.isArray,J=Wt;function zt(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Ve=zt,$t="[object AsyncFunction]",Vt="[object Function]",Ht="[object GeneratorFunction]",Kt="[object Proxy]";function qt(e){if(!Ve(e))return!1;var t=H(e);return t==Vt||t==Ht||t==$t||t==Kt}var He=qt,Zt=O["__core-js_shared__"],ne=Zt,_e=function(){var e=/[^.]+$/.exec(ne&&ne.keys&&ne.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Jt(e){return!!_e&&_e in e}var Yt=Jt,Qt=Function.prototype,Xt=Qt.toString;function er(e){if(e!=null){try{return Xt.call(e)}catch{}try{return e+""}catch{}}return""}var C=er,tr=/[\\^$.*+?()[\]{}|]/g,rr=/^\[object .+?Constructor\]$/,ar=Function.prototype,or=Object.prototype,nr=ar.toString,ir=or.hasOwnProperty,sr=RegExp("^"+nr.call(ir).replace(tr,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function lr(e){if(!Ve(e)||Yt(e))return!1;var t=He(e)?sr:rr;return t.test(C(e))}var fr=lr;function ur(e,t){return e?.[t]}var pr=ur;function dr(e,t){var r=pr(e,t);return fr(r)?r:void 0}var D=dr,cr=D(O,"WeakMap"),fe=cr,mr=9007199254740991,gr=/^(?:0|[1-9]\d*)$/;function xr(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 vr=xr;function hr(e,t){return e===t||e!==e&&t!==t}var Ke=hr,br=9007199254740991;function yr(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=br}var qe=yr;function Sr(e){return e!=null&&qe(e.length)&&!He(e)}var Ir=Sr,_r=Object.prototype;function Pr(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||_r;return e===r}var jr=Pr;function Or(e,t){for(var r=-1,a=Array(e);++r<e;)a[r]=t(r);return a}var wr=Or,Rr="[object Arguments]";function kr(e){return z(e)&&H(e)==Rr}var Pe=kr,Ze=Object.prototype,Cr=Ze.hasOwnProperty,Er=Ze.propertyIsEnumerable,Fr=Pe(function(){return arguments}())?Pe:function(e){return z(e)&&Cr.call(e,"callee")&&!Er.call(e,"callee")},Br=Fr;function Lr(){return!1}var Dr=Lr,Je=typeof exports=="object"&&exports&&!exports.nodeType&&exports,je=Je&&typeof module=="object"&&module&&!module.nodeType&&module,Ar=je&&je.exports===Je,Oe=Ar?O.Buffer:void 0,Nr=Oe?Oe.isBuffer:void 0,Mr=Nr||Dr,ue=Mr,Tr="[object Arguments]",Ur="[object Array]",Gr="[object Boolean]",Wr="[object Date]",zr="[object Error]",$r="[object Function]",Vr="[object Map]",Hr="[object Number]",Kr="[object Object]",qr="[object RegExp]",Zr="[object Set]",Jr="[object String]",Yr="[object WeakMap]",Qr="[object ArrayBuffer]",Xr="[object DataView]",ea="[object Float32Array]",ta="[object Float64Array]",ra="[object Int8Array]",aa="[object Int16Array]",oa="[object Int32Array]",na="[object Uint8Array]",ia="[object Uint8ClampedArray]",sa="[object Uint16Array]",la="[object Uint32Array]",m={};m[ea]=m[ta]=m[ra]=m[aa]=m[oa]=m[na]=m[ia]=m[sa]=m[la]=!0;m[Tr]=m[Ur]=m[Qr]=m[Gr]=m[Xr]=m[Wr]=m[zr]=m[$r]=m[Vr]=m[Hr]=m[Kr]=m[qr]=m[Zr]=m[Jr]=m[Yr]=!1;function fa(e){return z(e)&&qe(e.length)&&!!m[H(e)]}var ua=fa;function pa(e){return function(t){return e(t)}}var da=pa,Ye=typeof exports=="object"&&exports&&!exports.nodeType&&exports,W=Ye&&typeof module=="object"&&module&&!module.nodeType&&module,ca=W&&W.exports===Ye,ie=ca&&ze.process,ma=function(){try{var e=W&&W.require&&W.require("util").types;return e||ie&&ie.binding&&ie.binding("util")}catch{}}(),we=ma,Re=we&&we.isTypedArray,ga=Re?da(Re):ua,Qe=ga,xa=Object.prototype,va=xa.hasOwnProperty;function ha(e,t){var r=J(e),a=!r&&Br(e),n=!r&&!a&&ue(e),o=!r&&!a&&!n&&Qe(e),s=r||a||n||o,i=s?wr(e.length,String):[],f=i.length;for(var l in e)(t||va.call(e,l))&&!(s&&(l=="length"||n&&(l=="offset"||l=="parent")||o&&(l=="buffer"||l=="byteLength"||l=="byteOffset")||vr(l,f)))&&i.push(l);return i}var ba=ha;function ya(e,t){return function(r){return e(t(r))}}var Sa=ya,Ia=Sa(Object.keys,Object),_a=Ia,Pa=Object.prototype,ja=Pa.hasOwnProperty;function Oa(e){if(!jr(e))return _a(e);var t=[];for(var r in Object(e))ja.call(e,r)&&r!="constructor"&&t.push(r);return t}var wa=Oa;function Ra(e){return Ir(e)?ba(e):wa(e)}var ka=Ra,Ca=D(Object,"create"),$=Ca;function Ea(){this.__data__=$?$(null):{},this.size=0}var Fa=Ea;function Ba(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var La=Ba,Da="__lodash_hash_undefined__",Aa=Object.prototype,Na=Aa.hasOwnProperty;function Ma(e){var t=this.__data__;if($){var r=t[e];return r===Da?void 0:r}return Na.call(t,e)?t[e]:void 0}var Ta=Ma,Ua=Object.prototype,Ga=Ua.hasOwnProperty;function Wa(e){var t=this.__data__;return $?t[e]!==void 0:Ga.call(t,e)}var za=Wa,$a="__lodash_hash_undefined__";function Va(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=$&&t===void 0?$a:t,this}var Ha=Va;function A(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])}}A.prototype.clear=Fa;A.prototype.delete=La;A.prototype.get=Ta;A.prototype.has=za;A.prototype.set=Ha;var ke=A;function Ka(){this.__data__=[],this.size=0}var qa=Ka;function Za(e,t){for(var r=e.length;r--;)if(Ke(e[r][0],t))return r;return-1}var Q=Za,Ja=Array.prototype,Ya=Ja.splice;function Qa(e){var t=this.__data__,r=Q(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 Xa=Qa;function eo(e){var t=this.__data__,r=Q(t,e);return r<0?void 0:t[r][1]}var to=eo;function ro(e){return Q(this.__data__,e)>-1}var ao=ro;function oo(e,t){var r=this.__data__,a=Q(r,e);return a<0?(++this.size,r.push([e,t])):r[a][1]=t,this}var no=oo;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=qa;N.prototype.delete=Xa;N.prototype.get=to;N.prototype.has=ao;N.prototype.set=no;var X=N,io=D(O,"Map"),V=io;function so(){this.size=0,this.__data__={hash:new ke,map:new(V||X),string:new ke}}var lo=so;function fo(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var uo=fo;function po(e,t){var r=e.__data__;return uo(t)?r[typeof t=="string"?"string":"hash"]:r.map}var ee=po;function co(e){var t=ee(this,e).delete(e);return this.size-=t?1:0,t}var mo=co;function go(e){return ee(this,e).get(e)}var xo=go;function vo(e){return ee(this,e).has(e)}var ho=vo;function bo(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=bo;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=lo;M.prototype.delete=mo;M.prototype.get=xo;M.prototype.has=ho;M.prototype.set=yo;var Xe=M;function So(e,t){for(var r=-1,a=t.length,n=e.length;++r<a;)e[n+r]=t[r];return e}var Io=So;function _o(){this.__data__=new X,this.size=0}var Po=_o;function jo(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Oo=jo;function wo(e){return this.__data__.get(e)}var Ro=wo;function ko(e){return this.__data__.has(e)}var Co=ko,Eo=200;function Fo(e,t){var r=this.__data__;if(r instanceof X){var a=r.__data__;if(!V||a.length<Eo-1)return a.push([e,t]),this.size=++r.size,this;r=this.__data__=new Xe(a)}return r.set(e,t),this.size=r.size,this}var Bo=Fo;function T(e){var t=this.__data__=new X(e);this.size=t.size}T.prototype.clear=Po;T.prototype.delete=Oo;T.prototype.get=Ro;T.prototype.has=Co;T.prototype.set=Bo;var se=T;function Lo(e,t){for(var r=-1,a=e==null?0:e.length,n=0,o=[];++r<a;){var s=e[r];t(s,r,e)&&(o[n++]=s)}return o}var Do=Lo;function Ao(){return[]}var No=Ao,Mo=Object.prototype,To=Mo.propertyIsEnumerable,Ce=Object.getOwnPropertySymbols,Uo=Ce?function(e){return e==null?[]:(e=Object(e),Do(Ce(e),function(t){return To.call(e,t)}))}:No,Go=Uo;function Wo(e,t,r){var a=t(e);return J(e)?a:Io(a,r(e))}var zo=Wo;function $o(e){return zo(e,ka,Go)}var Ee=$o,Vo=D(O,"DataView"),pe=Vo,Ho=D(O,"Promise"),de=Ho,Ko=D(O,"Set"),ce=Ko,Fe="[object Map]",qo="[object Object]",Be="[object Promise]",Le="[object Set]",De="[object WeakMap]",Ae="[object DataView]",Zo=C(pe),Jo=C(V),Yo=C(de),Qo=C(ce),Xo=C(fe),k=H;(pe&&k(new pe(new ArrayBuffer(1)))!=Ae||V&&k(new V)!=Fe||de&&k(de.resolve())!=Be||ce&&k(new ce)!=Le||fe&&k(new fe)!=De)&&(k=function(e){var t=H(e),r=t==qo?e.constructor:void 0,a=r?C(r):"";if(a)switch(a){case Zo:return Ae;case Jo:return Fe;case Yo:return Be;case Qo:return Le;case Xo:return De}return t});var Ne=k,en=O.Uint8Array,Me=en,tn="__lodash_hash_undefined__";function rn(e){return this.__data__.set(e,tn),this}var an=rn;function on(e){return this.__data__.has(e)}var nn=on;function Y(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Xe;++t<r;)this.add(e[t])}Y.prototype.add=Y.prototype.push=an;Y.prototype.has=nn;var sn=Y;function ln(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 fn=ln;function un(e,t){return e.has(t)}var pn=un,dn=1,cn=2;function mn(e,t,r,a,n,o){var s=r&dn,i=e.length,f=t.length;if(i!=f&&!(s&&f>i))return!1;var l=o.get(e),d=o.get(t);if(l&&d)return l==t&&d==e;var p=-1,u=!0,g=r&cn?new sn:void 0;for(o.set(e,t),o.set(t,e);++p<i;){var h=e[p],y=t[p];if(a)var I=s?a(y,h,p,t,e,o):a(h,y,p,e,t,o);if(I!==void 0){if(I)continue;u=!1;break}if(g){if(!fn(t,function(S,_){if(!pn(g,_)&&(h===S||n(h,S,r,a,o)))return g.push(_)})){u=!1;break}}else if(!(h===y||n(h,y,r,a,o))){u=!1;break}}return o.delete(e),o.delete(t),u}var et=mn;function gn(e){var t=-1,r=Array(e.size);return e.forEach(function(a,n){r[++t]=[n,a]}),r}var xn=gn;function vn(e){var t=-1,r=Array(e.size);return e.forEach(function(a){r[++t]=a}),r}var hn=vn,bn=1,yn=2,Sn="[object Boolean]",In="[object Date]",_n="[object Error]",Pn="[object Map]",jn="[object Number]",On="[object RegExp]",wn="[object Set]",Rn="[object String]",kn="[object Symbol]",Cn="[object ArrayBuffer]",En="[object DataView]",Te=L?L.prototype:void 0,le=Te?Te.valueOf:void 0;function Fn(e,t,r,a,n,o,s){switch(r){case En:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case Cn:return!(e.byteLength!=t.byteLength||!o(new Me(e),new Me(t)));case Sn:case In:case jn:return Ke(+e,+t);case _n:return e.name==t.name&&e.message==t.message;case On:case Rn:return e==t+"";case Pn:var i=xn;case wn:var f=a&bn;if(i||(i=hn),e.size!=t.size&&!f)return!1;var l=s.get(e);if(l)return l==t;a|=yn,s.set(e,t);var d=et(i(e),i(t),a,n,o,s);return s.delete(e),d;case kn:if(le)return le.call(e)==le.call(t)}return!1}var Bn=Fn,Ln=1,Dn=Object.prototype,An=Dn.hasOwnProperty;function Nn(e,t,r,a,n,o){var s=r&Ln,i=Ee(e),f=i.length,l=Ee(t),d=l.length;if(f!=d&&!s)return!1;for(var p=f;p--;){var u=i[p];if(!(s?u in t:An.call(t,u)))return!1}var g=o.get(e),h=o.get(t);if(g&&h)return g==t&&h==e;var y=!0;o.set(e,t),o.set(t,e);for(var I=s;++p<f;){u=i[p];var S=e[u],_=t[u];if(a)var w=s?a(_,S,u,t,e,o):a(S,_,u,e,t,o);if(!(w===void 0?S===_||n(S,_,r,a,o):w)){y=!1;break}I||(I=u=="constructor")}if(y&&!I){var j=e.constructor,P=t.constructor;j!=P&&"constructor"in e&&"constructor"in t&&!(typeof j=="function"&&j instanceof j&&typeof P=="function"&&P instanceof P)&&(y=!1)}return o.delete(e),o.delete(t),y}var Mn=Nn,Tn=1,Ue="[object Arguments]",Ge="[object Array]",Z="[object Object]",Un=Object.prototype,We=Un.hasOwnProperty;function Gn(e,t,r,a,n,o){var s=J(e),i=J(t),f=s?Ge:Ne(e),l=i?Ge:Ne(t);f=f==Ue?Z:f,l=l==Ue?Z:l;var d=f==Z,p=l==Z,u=f==l;if(u&&ue(e)){if(!ue(t))return!1;s=!0,d=!1}if(u&&!d)return o||(o=new se),s||Qe(e)?et(e,t,r,a,n,o):Bn(e,t,f,r,a,n,o);if(!(r&Tn)){var g=d&&We.call(e,"__wrapped__"),h=p&&We.call(t,"__wrapped__");if(g||h){var y=g?e.value():e,I=h?t.value():t;return o||(o=new se),n(y,I,r,a,o)}}return u?(o||(o=new se),Mn(e,t,r,a,n,o)):!1}var Wn=Gn;function tt(e,t,r,a,n){return e===t?!0:e==null||t==null||!z(e)&&!z(t)?e!==e&&t!==t:Wn(e,t,r,a,tt,n)}var zn=tt;function $n(e,t){return zn(e,t)}var Vn=$n,Hn=class extends jt{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"),n=this.engine.block.getString(r,"fill/image/imageFileURI");if(a.length===0&&!n&&t.status==="PROCESSING")return!0;if(a?.length>0){let o=t.initialSourceSet;if(t.status!=="PROCESSED"&&!Vn(a,o))return!1}else if(t.status!=="PROCESSED"&&n!==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,n=t.initialPreviewFileURI,o=this.getValidFill(e,t);o!=null&&(a&&this.engine.block.setString(o,"fill/image/imageFileURI",a),n&&this.engine.block.setString(o,"fill/image/previewFileURI",n),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=Hn;async function Kn(e,t,r,a){let n=t.engine.block;if(!n.hasFill(e))throw new Error("Block does not support fill");let o=n.getFill(e),s=n.getSourceSet(o,"fill/image/sourceSet"),i=n.getString(o,"fill/image/imageFileURI"),f=n.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:s,initialImageFileURI:i,initialPreviewFileURI:f,blockId:e,fillId:o,status:"PROCESSING"};r.set(e,l);let d=await a.processFill(l);if(r.get(e).status!=="PROCESSING"||!r.isConsistent(e)||r.get(e).status!=="PROCESSING"||!r.isConsistent(e)||d==null)return;let p={version:"0.0.0",initialSourceSet:s,initialImageFileURI:i,initialPreviewFileURI:f,blockId:e,fillId:o,status:"PROCESSED"},u=a.commitProcessing(d,p);(u==null||u===e)&&r.set(e,p),t.engine.editor.addUndoStep()}catch(l){if(t.engine.block.isValid(e)&&(r.set(e,{version:"0.0.0",initialSourceSet:s,initialImageFileURI:i,initialPreviewFileURI:f,blockId:e,fillId:o,status:"ERROR"}),r.recoverInitialImageData(e)),l!=null&&typeof l=="object"&&"message"in l&&typeof l.message=="string"){let d=l.message==="signal timed out"?"Processing canceled due to timeout":l.message;t.ui.showNotification({type:"error",message:d})}console.log(l)}finally{t.engine.block.isValid(o)&&t.engine.block.setState(o,{type:"Ready"})}}var me=Kn;function at(e){return`${e}.fillProcessing.feature`}function qn(e){return[`${e}.canvasMenu`,`${e}.fillProcessing.canvasMenu`]}function Zn(e){return[`${e}.dock`,`${e}.fillProcessing.dock`]}function Jn(e){return[`${e}.inspectorBar`,`${e}.fillProcessing.inspectorBar`]}function Yn(e){return[`${e}.navigationBar`,`${e}.fillProcessing.navigationBar`]}function Qn(e){return[`${e}.canvasBar`,`${e}.fillProcessing.canvasBar`]}function Xn(e){return`plugin.${e}.fillProcessing.canvasMenu.button.label`}function ei(e){return`plugin.${e}.fillProcessing.dock.button.label`}function ti(e){return`plugin.${e}.fillProcessing.inspectorBar.button.label`}function ri(e){return`plugin.${e}.fillProcessing.navigationBar.button.label`}function ai(e){return`plugin.${e}.fillProcessing.canvasBar.button.label`}function ot(e,{pluginId:t,process:r}){let a=at(t),n=new rt(e.engine,t);return oi(e,n,a),e.engine.event.subscribe([],async o=>{o.forEach(s=>{let i=s.block;if(!(!e.engine.block.isValid(i)||!n.hasData(i))){if(s.type==="Created")n.isDuplicate(i)&&n.fixDuplicate(i);else if(s.type==="Updated")switch(n.get(i).status){case"PENDING":{e.feature.isEnabled(a,{engine:e.engine})&&e.engine.block.isAllowedByScope(i,"fill/change")&&e.engine.block.getState(i).type!=="Pending"&&r(i,n);break}case"PROCESSING":case"PROCESSED":{n.isConsistent(i)||n.clear(i);break}default:}}})}),{featureId:a}}function oi(e,t,r){e.feature.enable(r,({engine:a})=>{let n=a.block.findAllSelected();if(n.length!==1)return!1;let[o]=n;if(!e.engine.block.isVisible(o))return!1;if(e.engine.block.hasFill(o)){if(e.engine.block.getKind(o)==="sticker")return!1;let s=e.engine.block.getFill(o);if(e.engine.block.getType(s)!=="//ly.img.ubq/fill/image")return!1;let i=a.block.getString(s,"fill/image/imageFileURI");return a.block.getSourceSet(s,"fill/image/sourceSet").length>0||i!==""?!0:t.get(o).status==="PROCESSING"}return!1})}function nt(e,t){let{pluginId:r,locations:a}=t,n=new rt(e.engine,r),o=Xn(r),s=qn(r),i=s[0],f=ei(r),l=Zn(r),d=l[0],p=ti(r),u=Jn(r),g=u[0],h=ri(r),y=Yn(r),I=y[0],S=ai(r),_=Qn(r),w=_[0],j=at(r);return a?.includes("inspectorBar")&&e.ui.setInspectorBarOrder([g,...e.ui.getInspectorBarOrder()]),a?.includes("navigationBar")&&e.ui.setNavigationBarOrder([I,...e.ui.getNavigationBarOrder()]),a?.includes("canvasBarTop")&&e.ui.setCanvasBarOrder([w,...e.ui.getCanvasBarOrder("top")],"top"),a?.includes("canvasBarBottom")&&e.ui.setCanvasBarOrder([w,...e.ui.getCanvasBarOrder("bottom")],"bottom"),a?.includes("canvasMenu")&&e.ui.setCanvasMenuOrder([i,...e.ui.getCanvasMenuOrder()]),a?.includes("dock")&&e.ui.setDockOrder([...e.ui.getDockOrder(),d]),e.ui.registerComponent(l,({builder:{Button:P},engine:c})=>{let[b]=c.block.findAllSelected(),v=!1,R=!1,F;if(b==null&&(v=!0),!v&&!e.feature.isEnabled(j,{engine:c})&&(v=!0),!v&&!e.engine.block.isAllowedByScope(b,"fill/change")&&(v=!0),!v&&c.block.getState(b)?.type==="Pending"&&(v=!0),!v){let x=n.get(b);if(R=x.status==="PROCESSING",v=x.status==="PENDING"||x.status==="PROCESSING",x.status==="PROCESSING"&&x.progress){let{current:q,total:oe}=x.progress;F=q/oe*100}}let B=`${d}.button`;P(B,{label:f,icon:t.icon,isLoading:R,isDisabled:v,loadingProgress:F,onClick:()=>{let x=n.get(b);(x.status==="IDLE"||x.status==="ERROR"||x.status==="PROCESSED")&&n.set(b,{status:"PENDING"})}})}),[{componentIds:u,variant:"plain",label:p},{componentIds:y,variant:"regular",label:h},{componentIds:_,variant:"regular",label:S},{componentIds:s,variant:"plain",label:o}].forEach(({componentIds:P,label:c,variant:b})=>{let v=P[0];e.ui.registerComponent(P,({builder:{Button:R},engine:F})=>{if(!e.feature.isEnabled(j,{engine:F}))return;let[B]=F.block.findAllSelected();if(!e.engine.block.isAllowedByScope(B,"fill/change"))return;let x=n.get(B),q=x.status==="PROCESSING",oe=x.status==="PENDING"||x.status==="PROCESSING"||F.block.getState(B)?.type==="Pending",Se;if(q&&x.progress){let{current:It,total:_t}=x.progress;Se=It/_t*100}let St=`${v}.button`;R(St,{icon:t.icon,label:c,variant:b,isLoading:q,isDisabled:oe,loadingProgress:Se,onClick:()=>{(x.status==="IDLE"||x.status==="ERROR"||x.status==="PROCESSED")&&n.set(B,{status:"PENDING"})}})})}),{canvasMenuComponentId:i,dockComponentId:d,translationsKeys:{inspectorBarLabel:p,navigationBarLabel:h,canvasBarLabel:S,canvasMenuLabel:o,dockLabel:f}}}var Vi=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Hi=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Ki=new RegExp(/[A-Fa-f0-9]{2}/,"g");var ni=typeof global=="object"&&global&&global.Object===Object&&global,it=ni;var ii=typeof self=="object"&&self&&self.Object===Object&&self,si=it||ii||Function("return this")(),te=si;var li=te.Symbol,U=li;var st=Object.prototype,fi=st.hasOwnProperty,ui=st.toString,K=U?U.toStringTag:void 0;function pi(e){var t=fi.call(e,K),r=e[K];try{e[K]=void 0;var a=!0}catch{}var n=ui.call(e);return a&&(t?e[K]=r:delete e[K]),n}var lt=pi;var di=Object.prototype,ci=di.toString;function mi(e){return ci.call(e)}var ft=mi;var gi="[object Null]",xi="[object Undefined]",ut=U?U.toStringTag:void 0;function vi(e){return e==null?e===void 0?xi:gi:ut&&ut in Object(e)?lt(e):ft(e)}var pt=vi;function hi(e){return e!=null&&typeof e=="object"}var dt=hi;var bi="[object Symbol]";function yi(e){return typeof e=="symbol"||dt(e)&&pt(e)==bi}var ct=yi;var Si=/\s/;function Ii(e){for(var t=e.length;t--&&Si.test(e.charAt(t)););return t}var mt=Ii;var _i=/^\s+/;function Pi(e){return e&&e.slice(0,mt(e)+1).replace(_i,"")}var gt=Pi;function ji(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var E=ji;var xt=NaN,Oi=/^[-+]0x[0-9a-f]+$/i,wi=/^0b[01]+$/i,Ri=/^0o[0-7]+$/i,ki=parseInt;function Ci(e){if(typeof e=="number")return e;if(ct(e))return xt;if(E(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=E(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=gt(e);var r=wi.test(e);return r||Ri.test(e)?ki(e.slice(2),r?2:8):Oi.test(e)?xt:+e}var ge=Ci;var Ei=function(){return te.Date.now()},re=Ei;var Fi="Expected a function",Bi=Math.max,Li=Math.min;function Di(e,t,r){var a,n,o,s,i,f,l=0,d=!1,p=!1,u=!0;if(typeof e!="function")throw new TypeError(Fi);t=ge(t)||0,E(r)&&(d=!!r.leading,p="maxWait"in r,o=p?Bi(ge(r.maxWait)||0,t):o,u="trailing"in r?!!r.trailing:u);function g(c){var b=a,v=n;return a=n=void 0,l=c,s=e.apply(v,b),s}function h(c){return l=c,i=setTimeout(S,t),d?g(c):s}function y(c){var b=c-f,v=c-l,R=t-b;return p?Li(R,o-v):R}function I(c){var b=c-f,v=c-l;return f===void 0||b>=t||b<0||p&&v>=o}function S(){var c=re();if(I(c))return _(c);i=setTimeout(S,y(c))}function _(c){return i=void 0,u&&a?g(c):(a=n=void 0,s)}function w(){i!==void 0&&clearTimeout(i),l=0,a=f=n=i=void 0}function j(){return i===void 0?s:_(re())}function P(){var c=re(),b=I(c);if(a=arguments,n=this,f=c,b){if(i===void 0)return h(f);if(p)return clearTimeout(i),i=setTimeout(S,t),g(f)}return i===void 0&&(i=setTimeout(S,t)),s}return P.cancel=w,P.flush=j,P}var vt=Di;var Ai="Expected a function";function Ni(e,t,r){var a=!0,n=!0;if(typeof e!="function")throw new TypeError(Ai);return E(r)&&(a="leading"in r?!!r.leading:a,n="trailing"in r?!!r.trailing:n),vt(e,t,{leading:a,maxWait:t,trailing:n})}var xe=Ni;import{applySegmentationMask as Ui,removeBackground as Gi,segmentForeground as Wi}from"@imgly/background-removal";function Mi(e,t=1024){if(e.length===0)return;let[r,a]=e.reduce((n,o)=>(o.width>=t&&o.height>=t?n[0].push(o):n[1].push(o),n),[[],[]]);return r.length>0?r.sort((n,o)=>n.width*n.height-o.width*o.height)[0]:a.sort((n,o)=>o.width*o.height-n.width*n.height)[0]}var ht=Mi;async function Ti(e,t,r){let n=new URL(t).pathname.split("/"),o=n[n.length-1],i=(await r.unstable_upload(new File([e],o,{type:e.type}),()=>{})).meta?.uri;if(i==null)throw new Error("Could not upload processed fill");return i}var ve=Ti;async function be(e,t,r,a,n){return me(e,t,r,{processFill:n??(async o=>{let s=o.initialSourceSet,i=ht(s);if(i==null)throw new Error("No source found");let f=await he(i.uri,t),l=await Wi(f,a);return await Promise.all(s.map(async p=>{let u=await Ui(await he(p.uri,t),l,a),g=await ve(u,p.uri,t);return{...p,uri:g}}))}),commitProcessing:(o,s)=>{let i=s.fillId;t.engine.block.setSourceSet(i,"fill/image/sourceSet",o);let f=[...o].sort((l,d)=>l.width*l.height-d.width*d.height)[0];f!=null&&t.engine.block.setString(i,"fill/image/previewFileURI",f.uri)}})}async function ye(e,t,r,a,n){return me(e,t,r,{processFill:n??(async o=>{let s=o.initialImageFileURI,i=await Gi(await he(s,t),a);return await ve(i,s,t)}),commitProcessing:(o,s)=>{let i=s.fillId;t.engine.block.setString(i,"fill/image/imageFileURI",o),t.engine.block.setString(i,"fill/image/previewFileURI","")}})}async function he(e,t){if(e.startsWith("buffer:")){let r=await t.engine.editor.getMimeType(e),a=t.engine.editor.getBufferLength(e),n=t.engine.editor.getBufferData(e,0,a);return new Blob([n],{type:r})}else return e}async function bt(e,t,r,a){let n=e.engine.block;if(!n.hasFill(t))throw new Error("Block does not support fill");let o=n.getFill(t),s=n.getSourceSet(o,"fill/image/sourceSet"),i=n.getString(o,"fill/image/imageFileURI");if(s.length===0&&i==="")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:xe((d,p,u)=>{let g=r.get(t);g.status!=="PROCESSING"||!r.isConsistent(t)||(f.progress?.(d,p,u),r.set(t,{...g,progress:{key:d,current:p,total:u}}))},100)};s.length>0?be(t,e,r,l):ye(t,e,r,l);break}case"custom":{s.length>0?be(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;zi(t),ot(t,{pluginId:ae,process:(a,n)=>{bt(t,a,n,e.provider??{type:"@imgly/background-removal"})}});let{translationsKeys:r}=nt(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 zi(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 $i=e=>({name:ae,version:"1.1.0",...yt(e)}),Ks=$i;export{Ks as default}; /*! Bundled license information: @imgly/plugin-utils/dist/index.mjs: (*! 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 *) *) 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