UNPKG

@imgly/plugin-background-removal-web

Version:

Background Removal plugin for the CE.SDK editor

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