@uploadcare/blocks
Version:
Building blocks for Uploadcare products integration
26 lines • 164 kB
JavaScript
/**
* @license
* MIT License
*
* Copyright (c) 2022 Uploadcare (hello@uploadcare.com). All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
*/
var Ci=Object.defineProperty;var ks=(s,i,t)=>i in s?Ci(s,i,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[i]=t;var Is=(s,i)=>{for(var t in i)Ci(s,t,{get:i[t],enumerable:!0})};var h=(s,i,t)=>(ks(s,typeof i!="symbol"?i+"":i,t),t);var yi={};Is(yi,{ActivityBlock:()=>f,ActivityCaption:()=>ve,ActivityIcon:()=>ye,BaseComponent:()=>ut,Block:()=>g,CameraSource:()=>ie,CloudEditor:()=>lt,CloudImageEditor:()=>qe,ConfirmationDialog:()=>Qt,CropFrame:()=>le,Data:()=>w,DataOutput:()=>xt,DropArea:()=>Ne,EditorCropButtonControl:()=>Ct,EditorFilterControl:()=>ct,EditorImageCropper:()=>ue,EditorImageFader:()=>We,EditorOperationControl:()=>wt,EditorScroller:()=>pe,EditorSlider:()=>he,EditorToolbar:()=>me,ExternalSource:()=>be,FileItem:()=>Y,FilePreview:()=>Lt,FileUploaderInline:()=>Ee,FileUploaderMinimal:()=>xe,FileUploaderRegular:()=>we,Icon:()=>St,Img:()=>Pe,LineLoaderUi:()=>fe,LrBtnUi:()=>Pt,MessageBox:()=>Yt,Modal:()=>Zt,PresenceToggle:()=>ge,ProgressBar:()=>oe,ProgressBarCommon:()=>re,Select:()=>Ce,ShadowWrapper:()=>Nt,SimpleBtn:()=>qt,SliderUi:()=>_e,SourceBtn:()=>Rt,SourceList:()=>Me,StartFrom:()=>De,Tabs:()=>Dt,UploadCtxProvider:()=>Be,UploadDetails:()=>se,UploadList:()=>te,UploaderBlock:()=>y,UrlSource:()=>ee,Video:()=>X,connectBlocksFrom:()=>$s,registerBlocks:()=>Mt});var Rs=Object.defineProperty,Os=(s,i,t)=>i in s?Rs(s,i,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[i]=t,Ke=(s,i,t)=>(Os(s,typeof i!="symbol"?i+"":i,t),t);function Ls(s){let i=t=>{var e;for(let r in t)((e=t[r])==null?void 0:e.constructor)===Object&&(t[r]=i(t[r]));return{...t}};return i(s)}var w=class{constructor(s){s.constructor===Object?this.store=Ls(s):(this._storeIsProxy=!0,this.store=s),this.callbackMap=Object.create(null)}static warn(s,i){console.warn(`Symbiote Data: cannot ${s}. Prop name: `+i)}read(s){return!this._storeIsProxy&&!this.store.hasOwnProperty(s)?(w.warn("read",s),null):this.store[s]}has(s){return this._storeIsProxy?this.store[s]!==void 0:this.store.hasOwnProperty(s)}add(s,i,t=!1){!t&&Object.keys(this.store).includes(s)||(this.store[s]=i,this.notify(s))}pub(s,i){if(!this._storeIsProxy&&!this.store.hasOwnProperty(s)){w.warn("publish",s);return}this.store[s]=i,this.notify(s)}multiPub(s){for(let i in s)this.pub(i,s[i])}notify(s){this.callbackMap[s]&&this.callbackMap[s].forEach(i=>{i(this.store[s])})}sub(s,i,t=!0){return!this._storeIsProxy&&!this.store.hasOwnProperty(s)?(w.warn("subscribe",s),null):(this.callbackMap[s]||(this.callbackMap[s]=new Set),this.callbackMap[s].add(i),t&&i(this.store[s]),{remove:()=>{this.callbackMap[s].delete(i),this.callbackMap[s].size||delete this.callbackMap[s]},callback:i})}static registerCtx(s,i=Symbol()){let t=w.globalStore.get(i);return t?console.warn('State: context UID "'+i+'" already in use'):(t=new w(s),w.globalStore.set(i,t)),t}static deleteCtx(s){w.globalStore.delete(s)}static getCtx(s,i=!0){return w.globalStore.get(s)||(i&&console.warn('State: wrong context UID - "'+s+'"'),null)}};w.globalStore=new Map;var v=Object.freeze({BIND_ATTR:"set",ATTR_BIND_PRFX:"@",EXT_DATA_CTX_PRFX:"*",NAMED_DATA_CTX_SPLTR:"/",CTX_NAME_ATTR:"ctx-name",CTX_OWNER_ATTR:"ctx-owner",CSS_CTX_PROP:"--ctx-name",EL_REF_ATTR:"ref",AUTO_TAG_PRFX:"sym",REPEAT_ATTR:"repeat",REPEAT_ITEM_TAG_ATTR:"repeat-item-tag",SET_LATER_KEY:"__toSetLater__",USE_TPL:"use-template",ROOT_STYLE_ATTR_NAME:"sym-component"}),Ti="1234567890QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm",Us=Ti.length-1,Vt=class{static generate(s="XXXXXXXXX-XXX"){let i="";for(let t=0;t<s.length;t++)i+=s[t]==="-"?s[t]:Ti.charAt(Math.random()*Us);return i}};function Ai(s,i,t){let e=!0,r,o=i.split(".");return o.forEach((n,a)=>{a<o.length-1?s=s[n]:r=n}),s?s[r]=t:e=!1,e}function Ps(s){return s.split("-").map((i,t)=>i&&t?i[0].toUpperCase()+i.slice(1):i).join("").split("_").map((i,t)=>i&&t?i.toUpperCase():i).join("")}function Ds(s,i){[...s.querySelectorAll(`[${v.REPEAT_ATTR}]`)].forEach(t=>{let e=t.getAttribute(v.REPEAT_ITEM_TAG_ATTR),r;if(e&&(r=window.customElements.get(e)),!r){r=class extends i.BaseComponent{constructor(){super(),e||(this.style.display="contents")}};let n=t.innerHTML;r.template=n,r.reg(e)}for(;t.firstChild;)t.firstChild.remove();let o=t.getAttribute(v.REPEAT_ATTR);i.sub(o,n=>{if(!n){for(;t.firstChild;)t.firstChild.remove();return}let a=[...t.children],l,c=d=>{d.forEach((p,m)=>{if(a[m])if(a[m].set$)setTimeout(()=>{a[m].set$(p)});else for(let _ in p)a[m][_]=p[_];else{l||(l=new DocumentFragment);let _=new r;Object.assign(_.init$,p),l.appendChild(_)}}),l&&t.appendChild(l);let u=a.slice(d.length,a.length);for(let p of u)p.remove()};if(n.constructor===Array)c(n);else if(n.constructor===Object){let d=[];for(let u in n){let p=n[u];Object.defineProperty(p,"_KEY_",{value:u,enumerable:!0}),d.push(p)}c(d)}else console.warn("Symbiote repeat data type error:"),console.log(n)}),t.removeAttribute(v.REPEAT_ATTR),t.removeAttribute(v.REPEAT_ITEM_TAG_ATTR)})}function Ns(s,i){if(i.shadowRoot)return;let t=[...s.querySelectorAll("slot")];if(i.initChildren.length&&t.length){let e={};t.forEach(r=>{let o=r.getAttribute("name");o?e[o]={slot:r,fr:document.createDocumentFragment()}:e.__default__={slot:r,fr:document.createDocumentFragment()}}),i.initChildren.forEach(r=>{var o;let n=(o=r.getAttribute)==null?void 0:o.call(r,"slot");n?(r.removeAttribute("slot"),e[n].fr.appendChild(r)):e.__default__&&e.__default__.fr.appendChild(r)}),Object.values(e).forEach(r=>{r.slot.parentNode.insertBefore(r.fr,r.slot),r.slot.remove()})}}function Ms(s,i){[...s.querySelectorAll(`[${v.EL_REF_ATTR}]`)].forEach(t=>{let e=t.getAttribute(v.EL_REF_ATTR);i.ref[e]=t,t.removeAttribute(v.EL_REF_ATTR)})}function Bs(s,i){[...s.querySelectorAll(`[${v.BIND_ATTR}]`)].forEach(t=>{let r=t.getAttribute(v.BIND_ATTR).split(";");[...t.attributes].forEach(o=>{if(o.name.startsWith("-")&&o.value){let n=Ps(o.name.replace("-",""));r.push(n+":"+o.value),t.removeAttribute(o.name)}}),r.forEach(o=>{if(!o)return;let n=o.split(":").map(d=>d.trim()),a=n[0],l;a.indexOf(v.ATTR_BIND_PRFX)===0&&(l=!0,a=a.replace(v.ATTR_BIND_PRFX,""));let c=n[1].split(",").map(d=>d.trim());for(let d of c){let u;d.startsWith("!!")?(u="double",d=d.replace("!!","")):d.startsWith("!")&&(u="single",d=d.replace("!","")),i.sub(d,p=>{u==="double"?p=!!p:u==="single"&&(p=!p),l?(p==null?void 0:p.constructor)===Boolean?p?t.setAttribute(a,""):t.removeAttribute(a):t.setAttribute(a,p):Ai(t,a,p)||(t[v.SET_LATER_KEY]||(t[v.SET_LATER_KEY]=Object.create(null)),t[v.SET_LATER_KEY][a]=p)})}}),t.removeAttribute(v.BIND_ATTR)})}var Ae="{{",Ft="}}",Fs="skip-text";function Vs(s){let i,t=[],e=document.createTreeWalker(s,NodeFilter.SHOW_TEXT,{acceptNode:r=>{var o;return!((o=r.parentElement)!=null&&o.hasAttribute(Fs))&&r.textContent.includes(Ae)&&r.textContent.includes(Ft)&&1}});for(;i=e.nextNode();)t.push(i);return t}var zs=function(s,i){Vs(s).forEach(e=>{let r=[],o;for(;e.textContent.includes(Ft);)e.textContent.startsWith(Ae)?(o=e.textContent.indexOf(Ft)+Ft.length,e.splitText(o),r.push(e)):(o=e.textContent.indexOf(Ae),e.splitText(o)),e=e.nextSibling;r.forEach(n=>{let a=n.textContent.replace(Ae,"").replace(Ft,"");n.textContent="",i.sub(a,l=>{n.textContent=l})})})},Hs=[Ds,Ns,Ms,Bs,zs],wi="'",xi='"',js=/\\([0-9a-fA-F]{1,6} ?)/g,Xs=/^'|'$/g;function Ws(s){return s.startsWith(wi)&&s.endsWith(wi)||s.startsWith(xi)&&s.endsWith(xi)}function Gs(s){let i=s;return Ws(s)&&(i=i.replace(Xs,'"'),i=i.replace(js,(t,e)=>String.fromCodePoint(parseInt(e.trim(),16)))),i}var Ei=0,Tt=null,J=null,st=class extends HTMLElement{constructor(){super(),Ke(this,"updateCssData",()=>{var s;this.dropCssDataCache(),(s=this.__boundCssProps)==null||s.forEach(i=>{let t=this.getCssData(this.__extractCssName(i),!0);t!==null&&this.$[i]!==t&&(this.$[i]=t)})}),this.init$=Object.create(null),this.cssInit$=Object.create(null),this.tplProcessors=new Set,this.ref=Object.create(null),this.allSubs=new Set,this.pauseRender=!1,this.renderShadow=!1,this.readyToDestroy=!0,this.processInnerHtml=!1,this.allowCustomTemplate=!1,this.ctxOwner=!1}get BaseComponent(){return st}initCallback(){}__initCallback(){var s;this.__initialized||(this.__initialized=!0,(s=this.initCallback)==null||s.call(this))}render(s,i=this.renderShadow){let t;if((i||this.constructor.__shadowStylesUrl)&&!this.shadowRoot&&this.attachShadow({mode:"open"}),this.allowCustomTemplate){let r=this.getAttribute(v.USE_TPL);if(r){let o=this.getRootNode(),n=(o==null?void 0:o.querySelector(r))||document.querySelector(r);n?s=n.content.cloneNode(!0):console.warn(`Symbiote template "${r}" is not found...`)}}if(this.processInnerHtml)for(let r of this.tplProcessors)r(this,this);if(s||this.constructor.template){if(this.constructor.template&&!this.constructor.__tpl&&(this.constructor.__tpl=document.createElement("template"),this.constructor.__tpl.innerHTML=this.constructor.template),(s==null?void 0:s.constructor)===DocumentFragment)t=s;else if((s==null?void 0:s.constructor)===String){let r=document.createElement("template");r.innerHTML=s,t=r.content.cloneNode(!0)}else this.constructor.__tpl&&(t=this.constructor.__tpl.content.cloneNode(!0));for(let r of this.tplProcessors)r(t,this)}let e=()=>{t&&(i&&this.shadowRoot.appendChild(t)||this.appendChild(t)),this.__initCallback()};if(this.constructor.__shadowStylesUrl){i=!0;let r=document.createElement("link");r.rel="stylesheet",r.href=this.constructor.__shadowStylesUrl,r.onload=e,this.shadowRoot.prepend(r)}else e()}addTemplateProcessor(s){this.tplProcessors.add(s)}get autoCtxName(){return this.__autoCtxName||(this.__autoCtxName=Vt.generate(),this.style.setProperty(v.CSS_CTX_PROP,`'${this.__autoCtxName}'`)),this.__autoCtxName}get cssCtxName(){return this.getCssData(v.CSS_CTX_PROP,!0)}get ctxName(){var s;let i=((s=this.getAttribute(v.CTX_NAME_ATTR))==null?void 0:s.trim())||this.cssCtxName||this.__cachedCtxName||this.autoCtxName;return this.__cachedCtxName=i,i}get localCtx(){return this.__localCtx||(this.__localCtx=w.registerCtx({},this)),this.__localCtx}get nodeCtx(){return w.getCtx(this.ctxName,!1)||w.registerCtx({},this.ctxName)}static __parseProp(s,i){let t,e;if(s.startsWith(v.EXT_DATA_CTX_PRFX))t=i.nodeCtx,e=s.replace(v.EXT_DATA_CTX_PRFX,"");else if(s.includes(v.NAMED_DATA_CTX_SPLTR)){let r=s.split(v.NAMED_DATA_CTX_SPLTR);t=w.getCtx(r[0]),e=r[1]}else t=i.localCtx,e=s;return{ctx:t,name:e}}sub(s,i,t=!0){let e=o=>{!this.isConnected||i(o)},r=st.__parseProp(s,this);r.ctx.has(s)?this.allSubs.add(r.ctx.sub(r.name,e,t)):window.setTimeout(()=>{this.allSubs.add(r.ctx.sub(r.name,e,t))})}notify(s){let i=st.__parseProp(s,this);i.ctx.notify(i.name)}has(s){let i=st.__parseProp(s,this);return i.ctx.has(i.name)}add(s,i,t=!1){let e=st.__parseProp(s,this);e.ctx.add(e.name,i,t)}add$(s,i=!1){for(let t in s)this.add(t,s[t],i)}get $(){if(!this.__stateProxy){let s=Object.create(null);this.__stateProxy=new Proxy(s,{set:(i,t,e)=>{let r=st.__parseProp(t,this);return r.ctx.pub(r.name,e),!0},get:(i,t)=>{let e=st.__parseProp(t,this);return e.ctx.read(e.name)}})}return this.__stateProxy}set$(s,i=!1){for(let t in s){let e=s[t];i||![String,Number,Boolean].includes(e==null?void 0:e.constructor)?this.$[t]=e:this.$[t]!==e&&(this.$[t]=e)}}get __ctxOwner(){return this.ctxOwner||this.hasAttribute(v.CTX_OWNER_ATTR)&&this.getAttribute(v.CTX_OWNER_ATTR)!=="false"}__initDataCtx(){let s=this.constructor.__attrDesc;if(s)for(let i of Object.values(s))Object.keys(this.init$).includes(i)||(this.init$[i]="");for(let i in this.init$)if(i.startsWith(v.EXT_DATA_CTX_PRFX))this.nodeCtx.add(i.replace(v.EXT_DATA_CTX_PRFX,""),this.init$[i],this.__ctxOwner);else if(i.includes(v.NAMED_DATA_CTX_SPLTR)){let t=i.split(v.NAMED_DATA_CTX_SPLTR),e=t[0].trim(),r=t[1].trim();if(e&&r){let o=w.getCtx(e,!1);o||(o=w.registerCtx({},e)),o.add(r,this.init$[i])}}else this.localCtx.add(i,this.init$[i]);for(let i in this.cssInit$)this.bindCssData(i,this.cssInit$[i]);this.__dataCtxInitialized=!0}connectedCallback(){var s;if(!!this.isConnected){if(this.__disconnectTimeout&&window.clearTimeout(this.__disconnectTimeout),!this.connectedOnce){let i=(s=this.getAttribute(v.CTX_NAME_ATTR))==null?void 0:s.trim();if(i&&this.style.setProperty(v.CSS_CTX_PROP,`'${i}'`),this.__initDataCtx(),this[v.SET_LATER_KEY]){for(let t in this[v.SET_LATER_KEY])Ai(this,t,this[v.SET_LATER_KEY][t]);delete this[v.SET_LATER_KEY]}this.initChildren=[...this.childNodes];for(let t of Hs)this.addTemplateProcessor(t);if(this.pauseRender)this.__initCallback();else if(this.constructor.__rootStylesLink){let t=this.getRootNode();if(!t)return;if(t==null?void 0:t.querySelector(`link[${v.ROOT_STYLE_ATTR_NAME}="${this.constructor.is}"]`)){this.render();return}let r=this.constructor.__rootStylesLink.cloneNode(!0);r.setAttribute(v.ROOT_STYLE_ATTR_NAME,this.constructor.is),r.onload=()=>{this.render()},t.nodeType===Node.DOCUMENT_NODE?t.head.appendChild(r):t.prepend(r)}else this.render()}this.connectedOnce=!0}}destroyCallback(){}disconnectedCallback(){!this.connectedOnce||(this.dropCssDataCache(),this.readyToDestroy&&(this.__disconnectTimeout&&window.clearTimeout(this.__disconnectTimeout),this.__disconnectTimeout=window.setTimeout(()=>{this.destroyCallback();for(let s of this.allSubs)s.remove(),this.allSubs.delete(s);for(let s of this.tplProcessors)this.tplProcessors.delete(s);J==null||J.delete(this.updateCssData),J!=null&&J.size||(Tt==null||Tt.disconnect(),Tt=null,J=null)},100)))}static reg(s,i=!1){if(s||(Ei++,s=`${v.AUTO_TAG_PRFX}-${Ei}`),this.__tag=s,window.customElements.get(s)){console.warn(`${s} - is already in "customElements" registry`);return}window.customElements.define(s,i?class extends this{}:this)}static get is(){return this.__tag||this.reg(),this.__tag}static bindAttributes(s){this.observedAttributes=Object.keys(s),this.__attrDesc=s}attributeChangedCallback(s,i,t){var e;if(i===t)return;let r=(e=this.constructor.__attrDesc)==null?void 0:e[s];r?this.__dataCtxInitialized?this.$[r]=t:this.init$[r]=t:this[s]=t}getCssData(s,i=!1){if(this.__cssDataCache||(this.__cssDataCache=Object.create(null)),!Object.keys(this.__cssDataCache).includes(s)){this.__computedStyle||(this.__computedStyle=window.getComputedStyle(this));let t=this.__computedStyle.getPropertyValue(s).trim();t=Gs(t);try{this.__cssDataCache[s]=JSON.parse(t)}catch{!i&&console.warn(`CSS Data error: ${s}`),this.__cssDataCache[s]=null}}return this.__cssDataCache[s]}__extractCssName(s){return s.split("--").map((i,t)=>t===0?"":i).join("--")}__initStyleAttrObserver(){J||(J=new Set),J.add(this.updateCssData),Tt||(Tt=new MutationObserver(s=>{s[0].type==="attributes"&&J.forEach(i=>{i()})}),Tt.observe(document,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["style"]}))}bindCssData(s,i=""){this.__boundCssProps||(this.__boundCssProps=new Set),this.__boundCssProps.add(s);let t=this.getCssData(this.__extractCssName(s),!0);t===null&&(t=i),this.add(s,t),this.__initStyleAttrObserver()}dropCssDataCache(){this.__cssDataCache=null,this.__computedStyle=null}defineAccessor(s,i,t){let e="__"+s;this[e]=this[s],Object.defineProperty(this,s,{set:r=>{this[e]=r,t?window.setTimeout(()=>{i==null||i(r)}):i==null||i(r)},get:()=>this[e]}),this[s]=this[e]}static set shadowStyles(s){let i=new Blob([s],{type:"text/css"});this.__shadowStylesUrl=URL.createObjectURL(i)}static set rootStyles(s){if(!this.__rootStylesLink){let i=new Blob([s],{type:"text/css"}),t=URL.createObjectURL(i),e=document.createElement("link");e.href=t,e.rel="stylesheet",this.__rootStylesLink=e}}},ut=st;Ke(ut,"template");var Ye=class{static _print(s){console.warn(s)}static setDefaultTitle(s){this.defaultTitle=s}static setRoutingMap(s){Object.assign(this.appMap,s);for(let i in this.appMap)!this.defaultRoute&&this.appMap[i].default===!0?this.defaultRoute=i:!this.errorRoute&&this.appMap[i].error===!0&&(this.errorRoute=i)}static set routingEventName(s){this.__routingEventName=s}static get routingEventName(){return this.__routingEventName||"sym-on-route"}static readAddressBar(){let s={route:null,options:{}};return window.location.search.split(this.separator).forEach(t=>{if(t.includes("?"))s.route=t.replace("?","");else if(t.includes("=")){let e=t.split("=");s.options[e[0]]=decodeURI(e[1])}else s.options[t]=!0}),s}static notify(){let s=this.readAddressBar(),i=this.appMap[s.route];if(i&&i.title&&(document.title=i.title),s.route===null&&this.defaultRoute){this.applyRoute(this.defaultRoute);return}else if(!i&&this.errorRoute){this.applyRoute(this.errorRoute);return}else if(!i&&this.defaultRoute){this.applyRoute(this.defaultRoute);return}else if(!i){this._print(`Route "${s.route}" not found...`);return}let t=new CustomEvent(Ye.routingEventName,{detail:{route:s.route,options:Object.assign(i||{},s.options)}});window.dispatchEvent(t)}static reflect(s,i={}){let t=this.appMap[s];if(!t){this._print("Wrong route: "+s);return}let e="?"+s;for(let o in i)i[o]===!0?e+=this.separator+o:e+=this.separator+o+`=${i[o]}`;let r=t.title||this.defaultTitle||"";window.history.pushState(null,r,e),document.title=r}static applyRoute(s,i={}){this.reflect(s,i),this.notify()}static setSeparator(s){this._separator=s}static get separator(){return this._separator||"&"}static createRouterData(s,i){this.setRoutingMap(i);let t=w.registerCtx({route:null,options:null,title:null},s);return window.addEventListener(this.routingEventName,e=>{var r;t.multiPub({route:e.detail.route,options:e.detail.options,title:((r=e.detail.options)==null?void 0:r.title)||this.defaultTitle||""})}),Ye.notify(),this.initPopstateListener(),t}static initPopstateListener(){this.__onPopstate||(this.__onPopstate=()=>{this.notify()},window.addEventListener("popstate",this.__onPopstate))}static removePopstateListener(){window.removeEventListener("popstate",this.__onPopstate),this.__onPopstate=null}};Ye.appMap=Object.create(null);function qs(s,i){for(let t in i)t.includes("-")?s.style.setProperty(t,i[t]):s.style[t]=i[t]}function Ys(s,i){for(let t in i)i[t].constructor===Boolean?i[t]?s.setAttribute(t,""):s.removeAttribute(t):s.setAttribute(t,i[t])}function zt(s={tag:"div"}){let i=document.createElement(s.tag);if(s.attributes&&Ys(i,s.attributes),s.styles&&qs(i,s.styles),s.properties)for(let t in s.properties)i[t]=s.properties[t];return s.processors&&s.processors.forEach(t=>{t(i)}),s.children&&s.children.forEach(t=>{let e=zt(t);i.appendChild(e)}),i}var $i="idb-store-ready",Ks="symbiote-db",Zs="symbiote-idb-update_",Js=class{_notifyWhenReady(s=null){window.dispatchEvent(new CustomEvent($i,{detail:{dbName:this.name,storeName:this.storeName,event:s}}))}get _updEventName(){return Zs+this.name}_getUpdateEvent(s){return new CustomEvent(this._updEventName,{detail:{key:this.name,newValue:s}})}_notifySubscribers(s){window.localStorage.removeItem(this.name),window.localStorage.setItem(this.name,s),window.dispatchEvent(this._getUpdateEvent(s))}constructor(s,i){this.name=s,this.storeName=i,this.version=1,this.request=window.indexedDB.open(this.name,this.version),this.request.onupgradeneeded=t=>{this.db=t.target.result,this.objStore=this.db.createObjectStore(i,{keyPath:"_key"}),this.objStore.transaction.oncomplete=e=>{this._notifyWhenReady(e)}},this.request.onsuccess=t=>{this.db=t.target.result,this._notifyWhenReady(t)},this.request.onerror=t=>{console.error(t)},this._subscriptionsMap={},this._updateHandler=t=>{t.key===this.name&&this._subscriptionsMap[t.newValue]&&this._subscriptionsMap[t.newValue].forEach(async r=>{r(await this.read(t.newValue))})},this._localUpdateHandler=t=>{this._updateHandler(t.detail)},window.addEventListener("storage",this._updateHandler),window.addEventListener(this._updEventName,this._localUpdateHandler)}read(s){let t=this.db.transaction(this.storeName,"readwrite").objectStore(this.storeName).get(s);return new Promise((e,r)=>{t.onsuccess=o=>{var n;(n=o.target.result)!=null&&n._value?e(o.target.result._value):(e(null),console.warn(`IDB: cannot read "${s}"`))},t.onerror=o=>{r(o)}})}write(s,i,t=!1){let e={_key:s,_value:i},o=this.db.transaction(this.storeName,"readwrite").objectStore(this.storeName).put(e);return new Promise((n,a)=>{o.onsuccess=l=>{t||this._notifySubscribers(s),n(l.target.result)},o.onerror=l=>{a(l)}})}delete(s,i=!1){let e=this.db.transaction(this.storeName,"readwrite").objectStore(this.storeName).delete(s);return new Promise((r,o)=>{e.onsuccess=n=>{i||this._notifySubscribers(s),r(n)},e.onerror=n=>{o(n)}})}getAll(){let i=this.db.transaction(this.storeName,"readwrite").objectStore(this.storeName).getAll();return new Promise((t,e)=>{i.onsuccess=r=>{let o=r.target.result;t(o.map(n=>n._value))},i.onerror=r=>{e(r)}})}subscribe(s,i){this._subscriptionsMap[s]||(this._subscriptionsMap[s]=new Set);let t=this._subscriptionsMap[s];return t.add(i),{remove:()=>{t.delete(i),t.size||delete this._subscriptionsMap[s]}}}stop(){window.removeEventListener("storage",this._updateHandler),this._subscriptionsMap=null,Si.clear(this.name)}},Si=class{static get readyEventName(){return $i}static open(s=Ks,i="store"){let t=s+"/"+i;return this._reg[t]||(this._reg[t]=new Js(s,i)),this._reg[t]}static clear(s){window.indexedDB.deleteDatabase(s);for(let i in this._reg)i.split("/")[0]===s&&delete this._reg[i]}};Ke(Si,"_reg",Object.create(null));var Qs=s=>s;function Ht(s,i,t={}){var n;let{openToken:e="{{",closeToken:r="}}",transform:o=Qs}=t;for(let a in i){let l=(n=i[a])==null?void 0:n.toString();s=s.replaceAll(e+a+r,typeof l=="string"?o(l):l)}return s}function ki(s,i){[...s.querySelectorAll("[l10n]")].forEach(t=>{let e=t.getAttribute("l10n"),r="textContent";if(e.includes(":")){let n=e.split(":");r=n[0],e=n[1]}let o="l10n:"+e;i.__l10nKeys.push(o),i.add(o,e),i.sub(o,n=>{t[r]=i.l10n(n)}),t.removeAttribute("l10n")})}var Ze=()=>({"*ctxTargetsRegistry":new Map}),Je=()=>({...Ze(),"*currentActivity":"","*currentActivityParams":{},"*history":[],"*activityCaption":"","*activityIcon":""}),$e=()=>({...Je(),"*commonProgress":0,"*uploadList":[],"*outputData":null,"*focusedEntry":null,"*uploadMetadata":null});function G(s,i){let t,e=(...r)=>{clearTimeout(t),t=setTimeout(()=>s(...r),i)};return e.cancel=()=>{clearTimeout(t)},e}var tr="--uploadcare-blocks-window-height",Se="__UPLOADCARE_BLOCKS_WINDOW_HEIGHT_TRACKER_ENABLED__";function Qe(){return typeof window[Se]=="undefined"?!1:!!window[Se]}function Ii(){if(Qe())return;let s=()=>{document.documentElement.style.setProperty(tr,`${window.innerHeight}px`),window[Se]=!0},i=G(s,100);return window.addEventListener("resize",i,{passive:!0}),s(),()=>{window[Se]=!1,window.removeEventListener("resize",i)}}var Ri="lr-",g=class extends ut{constructor(){super();h(this,"allowCustomTemplate",!0);h(this,"ctxInit",Ze());h(this,"init$",this.ctxInit);this.activityType=null,this.addTemplateProcessor(ki),this.__l10nKeys=[]}l10n(t,e={}){let r=this.getCssData("--l10n-"+t,!0)||t;return Ht(r,e)}applyL10nKey(t,e){let r="l10n:"+t;this.$[r]=e,this.__l10nKeys.push(t)}checkCtxTarget(t){let e=this.$["*ctxTargetsRegistry"];return e==null?void 0:e.has(t)}setForCtxTarget(t,e,r){this.checkCtxTarget(t)&&(this.$[e]=r)}connectedCallback(){if(Qe()||(this._destroyInnerHeightTracker=Ii()),this.hasAttribute("retpl")&&(this.constructor.template=null,this.processInnerHtml=!0),this.isConnected&&this.__ctxOwner){let t=w.getCtx(this.ctxName,!1);t&&(t.store={...this.ctxInit})}super.connectedCallback()}disconnectedCallback(){var t;super.disconnectedCallback(),(t=this._destroyInnerHeightTracker)==null||t.call(this)}initCallback(){let t=this.constructor.is,e=this.$["*ctxTargetsRegistry"],r=e.has(t)?e.get(t)+1:1;e.set(t,r),this.$["*ctxTargetsRegistry"]=e}destroyCallback(){let t=this.constructor.is,e=this.$["*ctxTargetsRegistry"],r=e.has(e)?e.get(t)-1:0;r===0?e.delete(t):e.set(t,r),this.$["*ctxTargetsRegistry"]=e}fileSizeFmt(t,e=2){let r=["B","KB","MB","GB","TB"],o=c=>this.getCssData("--l10n-unit-"+c.toLowerCase(),!0)||c;if(t===0)return`0 ${o(r[0])}`;let n=1024,a=e<0?0:e,l=Math.floor(Math.log(t)/Math.log(n));return parseFloat((t/n**l).toFixed(a))+" "+o(r[l])}proxyUrl(t){let e=this.getCssData("--cfg-secure-delivery-proxy",!0);return e?Ht(e,{previewUrl:t},{transform:r=>window.encodeURIComponent(r)}):t}static reg(t){if(!t){super.reg();return}super.reg(t.startsWith(Ri)?t:Ri+t)}};var Oi="active",jt="___ACTIVITY_IS_ACTIVE___",At=class extends g{constructor(){super(...arguments);h(this,"ctxInit",Je());h(this,"_debouncedHistoryFlush",G(this._historyFlush.bind(this),10))}initCallback(){super.initCallback(),this.hasAttribute("current-activity")&&this.sub("*currentActivity",t=>{this.setAttribute("current-activity",t)}),this.activityType&&(this.hasAttribute("activity")||this.setAttribute("activity",this.activityType),this.sub("*currentActivity",t=>{var o,n;let e=this.ctxName+this.activityType,r=At._activityRegistry[e];this.activityType!==t&&this[jt]?(this[jt]=!1,this.removeAttribute(Oi),(o=r==null?void 0:r.deactivateCallback)==null||o.call(r)):this.activityType===t&&!this[jt]&&(this[jt]=!0,this.setAttribute(Oi,""),this.setForCtxTarget("lr-modal","*modalCloseCallback",r==null?void 0:r.modalCloseCallback),(n=r==null?void 0:r.activateCallback)==null||n.call(r),this._debouncedHistoryFlush()),t||(this.$["*history"]=[])}))}_historyFlush(){let t=this.$["*history"];t&&(t.length>10&&(t=t.slice(t.length-11,t.length-1)),t.push(this.activityType),this.$["*history"]=t)}get isActivityActive(){return this[jt]}registerActivity(t,e){let{onActivate:r,onDeactivate:o,onClose:n}=e;At._activityRegistry||(At._activityRegistry=Object.create(null));let a=this.ctxName+t;At._activityRegistry[a]={activateCallback:r,deactivateCallback:o,modalCloseCallback:n}}get activityParams(){return this.$["*currentActivityParams"]}get initActivity(){return this.getCssData("--cfg-init-activity")}get doneActivity(){return this.getCssData("--cfg-done-activity")}historyBack(){let t=this.$["*history"];if(t){t.pop();let e=t.pop();this.$["*currentActivity"]=e,this.$["*history"]=t}}},f=At;h(f,"_activityRegistry",Object.create(null));f.activities=Object.freeze({START_FROM:"start-from",CAMERA:"camera",DRAW:"draw",UPLOAD_LIST:"upload-list",URL:"url",CONFIRMATION:"confirmation",CLOUD_IMG_EDIT:"cloud-image-edit",EXTERNAL:"external",DETAILS:"details"});var Xt=["image/*","image/heif","image/heif-sequence","image/heic","image/heic-sequence","image/avif","image/avif-sequence",".heif",".heifs",".heic",".heics",".avif",".avifs"],ke=s=>s?s.map(i=>i==null?void 0:i.split(",")).flat().filter(i=>typeof i=="string"&&i).map(i=>i.trim()):[],ti=(s,i)=>i.some(t=>t.endsWith("*")?(t=t.replace("*",""),s.startsWith(t)):s===t),$t=s=>{let i=s==null?void 0:s.type;return i?ti(i,Xt):!1};var R=class extends Error{constructor(i,t,e,r,o){super(),this.name="UploadClientError",this.message=i,this.code=t,this.request=e,this.response=r,this.headers=o,Object.setPrototypeOf(this,R.prototype)}},ni=(s="Request canceled")=>{let i=new R(s);return i.isCancel=!0,i},Ie=(s,i)=>{s&&(s.aborted?Promise.resolve().then(i):s.addEventListener("abort",()=>i(),{once:!0}))},ot=({method:s,url:i,data:t,headers:e={},signal:r,onProgress:o})=>new Promise((n,a)=>{let l=new XMLHttpRequest,c=(s==null?void 0:s.toUpperCase())||"GET",d=!1;l.open(c,i,!0),e&&Object.entries(e).forEach(u=>{let[p,m]=u;typeof m!="undefined"&&!Array.isArray(m)&&l.setRequestHeader(p,m)}),l.responseType="text",Ie(r,()=>{d=!0,l.abort(),a(ni())}),l.onload=()=>{if(l.status!=200)a(new Error(`Error ${l.status}: ${l.statusText}`));else{let u={method:c,url:i,data:t,headers:e||void 0,signal:r,onProgress:o},p=l.getAllResponseHeaders().trim().split(/[\r\n]+/),m={};p.forEach(function(C){let T=C.split(": "),b=T.shift(),A=T.join(": ");b&&typeof b!="undefined"&&(m[b]=A)});let _=l.response,x=l.status;n({request:u,data:_,headers:m,status:x})}},l.onerror=()=>{d||a(new Error("Network error"))},o&&typeof o=="function"&&(l.upload.onprogress=u=>{u.lengthComputable?o({isComputable:!0,value:u.loaded/u.total}):o({isComputable:!1})}),t?l.send(t):l.send()});function er(s){return s}var ir=({name:s})=>s?[s]:[],sr=er,rr=()=>new FormData,Wt=s=>s!==void 0&&(typeof Blob!="undefined"&&s instanceof Blob||typeof File!="undefined"&&s instanceof File||typeof Buffer!="undefined"&&s instanceof Buffer),Pi=s=>{let i="[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}",t=new RegExp(i);return!Wt(s)&&t.test(s)},Di=s=>{let i="^(?:\\w+:)?\\/\\/([^\\s\\.]+\\.\\S{2}|localhost[\\:?\\d]*)\\S*$",t=new RegExp(i);return!Wt(s)&&t.test(s)},or=s=>typeof s=="string"||typeof s=="number"||typeof s=="undefined",nr=s=>!!s&&typeof s=="object"&&!Array.isArray(s),ar=s=>!!s&&typeof s=="object"&&"data"in s&&Wt(s.data);function lr(s,i,t){if(ar(t)){let{name:e,contentType:r}=t,o=sr(t.data),n=ir({name:e,contentType:r});s.push([i,o,...n])}else if(nr(t))for(let[e,r]of Object.entries(t))typeof r!="undefined"&&s.push([`${i}[${e}]`,String(r)]);else or(t)&&t&&s.push([i,t.toString()])}function cr(s){let i=[];for(let[t,e]of Object.entries(s))lr(i,t,e);return i}function ai(s){let i=rr(),t=cr(s);for(let e of t){let[r,o,...n]=e;i.append(r,o,...n)}return i}var hr=s=>{let i=new URLSearchParams;for(let[t,e]of Object.entries(s))e&&typeof e=="object"&&!Array.isArray(e)?Object.entries(e).filter(r=>{var o;return(o=r[1])!=null?o:!1}).forEach(r=>i.set(`${t}[${r[0]}]`,String(r[1]))):Array.isArray(e)?e.forEach(r=>{i.append(`${t}[]`,r)}):typeof e=="string"&&e?i.set(t,e):typeof e=="number"&&i.set(t,e.toString());return i.toString()},pt=(s,i,t)=>{let e=new URL(s);return e.pathname=(e.pathname+i).replace("//","/"),t&&(e.search=hr(t)),e.toString()},E={baseCDN:"https://ucarecdn.com",baseURL:"https://upload.uploadcare.com",maxContentLength:50*1024*1024,retryThrottledRequestMaxTimes:1,multipartMinFileSize:25*1024*1024,multipartChunkSize:5*1024*1024,multipartMinLastPartSize:1024*1024,maxConcurrentRequests:4,multipartMaxAttempts:3,pollingTimeoutMilliseconds:1e4,pusherKey:"79ae88bd931ea68464d9"},dr="application/octet-stream",Ni="original",ur="4.3.1";function Li(s){return Object.prototype.toString.call(s)==="[object Object]"}var pr=/\W|_/g;function mr(s){return s.split(pr).map((i,t)=>i.charAt(0)[t>0?"toUpperCase":"toLowerCase"]()+i.slice(1)).join("")}function Ui(s,{ignoreKeys:i}={ignoreKeys:[]}){return Array.isArray(s)?s.map(t=>Q(t,{ignoreKeys:i})):s}function Q(s,{ignoreKeys:i}={ignoreKeys:[]}){if(Array.isArray(s))return Ui(s,{ignoreKeys:i});if(!Li(s))return s;let t={};for(let e of Object.keys(s)){let r=s[e];if(i.includes(e)){t[e]=r;continue}Li(r)?r=Q(r,{ignoreKeys:i}):Array.isArray(r)&&(r=Ui(r,{ignoreKeys:i})),t[mr(e)]=r}return t}var fr=s=>new Promise(i=>setTimeout(i,s));function li({libraryName:s,libraryVersion:i,userAgent:t,publicKey:e="",integration:r=""}){let o="JavaScript";if(typeof t=="string")return t;if(typeof t=="function")return t({publicKey:e,libraryName:s,libraryVersion:i,languageName:o,integration:r});let n=[s,i,e].filter(Boolean).join("/"),a=[o,r].filter(Boolean).join("; ");return`${n} (${a})`}var gr={factor:2,time:100};function Mi(s,i=gr){let t=0;function e(r){let o=Math.round(i.time*i.factor**t);return r({attempt:t,retry:a=>fr(a!=null?a:o).then(()=>(t+=1,e(r)))})}return e(s)}var _r="UploadcareUploadClient",br=ur;function mt(s){return li({libraryName:_r,libraryVersion:br,...s})}var vr="RequestThrottledError",yr=15e3;function Cr(s){let{headers:i}=s||{};return i&&Number.parseInt(i["x-throttle-wait-seconds"])*1e3||yr}function ft(s,i){return Mi(({attempt:t,retry:e})=>s().catch(r=>{if("response"in r&&(r==null?void 0:r.code)===vr&&t<i)return e(Cr(r));throw r}))}function ci(s){return typeof s=="undefined"?"auto":s?"1":"0"}function wr(s,{publicKey:i,fileName:t,contentType:e,baseURL:r=E.baseURL,secureSignature:o,secureExpire:n,store:a,signal:l,onProgress:c,source:d="local",integration:u,userAgent:p,retryThrottledRequestMaxTimes:m=E.retryThrottledRequestMaxTimes,metadata:_}){return ft(()=>{var x;return ot({method:"POST",url:pt(r,"/base/",{jsonerrors:1}),headers:{"X-UC-User-Agent":mt({publicKey:i,integration:u,userAgent:p})},data:ai({file:{data:s,name:(x=t!=null?t:s.name)!=null?x:Ni,contentType:e},UPLOADCARE_PUB_KEY:i,UPLOADCARE_STORE:ci(a),signature:o,expire:n,source:d,metadata:_}),signal:l,onProgress:c}).then(({data:C,headers:T,request:b})=>{let A=Q(JSON.parse(C));if("error"in A)throw new R(A.error.content,A.error.errorCode,b,A,T);return A})},m)}var ii;(function(s){s.Token="token",s.FileInfo="file_info"})(ii||(ii={}));function xr(s,{publicKey:i,baseURL:t=E.baseURL,store:e,fileName:r,checkForUrlDuplicates:o,saveUrlForRecurrentUploads:n,secureSignature:a,secureExpire:l,source:c="url",signal:d,integration:u,userAgent:p,retryThrottledRequestMaxTimes:m=E.retryThrottledRequestMaxTimes,metadata:_}){return ft(()=>ot({method:"POST",headers:{"X-UC-User-Agent":mt({publicKey:i,integration:u,userAgent:p})},url:pt(t,"/from_url/",{jsonerrors:1,pub_key:i,source_url:s,store:ci(e),filename:r,check_URL_duplicates:o?1:void 0,save_URL_duplicates:n?1:void 0,signature:a,expire:l,source:c,metadata:_}),signal:d}).then(({data:x,headers:C,request:T})=>{let b=Q(JSON.parse(x));if("error"in b)throw new R(b.error.content,b.error.errorCode,T,b,C);return b}),m)}var D;(function(s){s.Unknown="unknown",s.Waiting="waiting",s.Progress="progress",s.Error="error",s.Success="success"})(D||(D={}));var Er=s=>"status"in s&&s.status===D.Error;function Tr(s,{publicKey:i,baseURL:t=E.baseURL,signal:e,integration:r,userAgent:o,retryThrottledRequestMaxTimes:n=E.retryThrottledRequestMaxTimes}={}){return ft(()=>ot({method:"GET",headers:i?{"X-UC-User-Agent":mt({publicKey:i,integration:r,userAgent:o})}:void 0,url:pt(t,"/from_url/status/",{jsonerrors:1,token:s}),signal:e}).then(({data:a,headers:l,request:c})=>{let d=Q(JSON.parse(a));if("error"in d&&!Er(d))throw new R(d.error.content,void 0,c,d,l);return d}),n)}function Ar(s,{publicKey:i,baseURL:t=E.baseURL,jsonpCallback:e,secureSignature:r,secureExpire:o,signal:n,source:a,integration:l,userAgent:c,retryThrottledRequestMaxTimes:d=E.retryThrottledRequestMaxTimes}){return ft(()=>ot({method:"POST",headers:{"X-UC-User-Agent":mt({publicKey:i,integration:l,userAgent:c})},url:pt(t,"/group/",{jsonerrors:1,pub_key:i,files:s,callback:e,signature:r,expire:o,source:a}),signal:n}).then(({data:u,headers:p,request:m})=>{let _=Q(JSON.parse(u));if("error"in _)throw new R(_.error.content,_.error.errorCode,m,_,p);return _}),d)}function Bi(s,{publicKey:i,baseURL:t=E.baseURL,signal:e,source:r,integration:o,userAgent:n,retryThrottledRequestMaxTimes:a=E.retryThrottledRequestMaxTimes}){return ft(()=>ot({method:"GET",headers:{"X-UC-User-Agent":mt({publicKey:i,integration:o,userAgent:n})},url:pt(t,"/info/",{jsonerrors:1,pub_key:i,file_id:s,source:r}),signal:e}).then(({data:l,headers:c,request:d})=>{let u=Q(JSON.parse(l));if("error"in u)throw new R(u.error.content,u.error.errorCode,d,u,c);return u}),a)}function $r(s,{publicKey:i,contentType:t,fileName:e,multipartChunkSize:r=E.multipartChunkSize,baseURL:o="",secureSignature:n,secureExpire:a,store:l,signal:c,source:d="local",integration:u,userAgent:p,retryThrottledRequestMaxTimes:m=E.retryThrottledRequestMaxTimes,metadata:_}){return ft(()=>ot({method:"POST",url:pt(o,"/multipart/start/",{jsonerrors:1}),headers:{"X-UC-User-Agent":mt({publicKey:i,integration:u,userAgent:p})},data:ai({filename:e!=null?e:Ni,size:s,content_type:t!=null?t:dr,part_size:r,UPLOADCARE_STORE:ci(l),UPLOADCARE_PUB_KEY:i,signature:n,expire:a,source:d,metadata:_}),signal:c}).then(({data:x,headers:C,request:T})=>{let b=Q(JSON.parse(x));if("error"in b)throw new R(b.error.content,b.error.errorCode,T,b,C);return b.parts=Object.keys(b.parts).map(A=>b.parts[A]),b}),m)}function Sr(s,i,{signal:t,onProgress:e}){return ot({method:"PUT",url:i,data:s,onProgress:e,signal:t}).then(r=>(e&&e({isComputable:!0,value:1}),r)).then(({status:r})=>({code:r}))}function kr(s,{publicKey:i,baseURL:t=E.baseURL,source:e="local",signal:r,integration:o,userAgent:n,retryThrottledRequestMaxTimes:a=E.retryThrottledRequestMaxTimes}){return ft(()=>ot({method:"POST",url:pt(t,"/multipart/complete/",{jsonerrors:1}),headers:{"X-UC-User-Agent":mt({publicKey:i,integration:o,userAgent:n})},data:ai({uuid:s,UPLOADCARE_PUB_KEY:i,source:e}),signal:r}).then(({data:l,headers:c,request:d})=>{let u=Q(JSON.parse(l));if("error"in u)throw new R(u.error.content,u.error.errorCode,d,u,c);return u}),a)}var rt=class{constructor(i,{baseCDN:t,fileName:e}){this.name=null,this.size=null,this.isStored=null,this.isImage=null,this.mimeType=null,this.cdnUrl=null,this.s3Url=null,this.originalFilename=null,this.imageInfo=null,this.videoInfo=null,this.contentInfo=null,this.metadata=null,this.s3Bucket=null;let{uuid:r,s3Bucket:o}=i,n=`${t}/${r}/`,a=o?`https://${o}.s3.amazonaws.com/${r}/${i.filename}`:null;this.uuid=r,this.name=e||i.filename,this.size=i.size,this.isStored=i.isStored,this.isImage=i.isImage,this.mimeType=i.mimeType,this.cdnUrl=n,this.originalFilename=i.originalFilename,this.imageInfo=i.imageInfo,this.videoInfo=i.videoInfo,this.contentInfo=i.contentInfo,this.metadata=i.metadata||null,this.s3Bucket=o||null,this.s3Url=a}},Ir=500,Fi=({check:s,interval:i=Ir,signal:t})=>new Promise((e,r)=>{let o;Ie(t,()=>{o&&clearTimeout(o),r(ni("Poll cancelled"))});let n=()=>{try{Promise.resolve(s(t)).then(a=>{a?e(a):o=setTimeout(n,i)}).catch(a=>r(a))}catch(a){r(a)}};o=setTimeout(n,0)});function hi({file:s,publicKey:i,baseURL:t,source:e,integration:r,userAgent:o,retryThrottledRequestMaxTimes:n,signal:a,onProgress:l}){return Fi({check:c=>Bi(s,{publicKey:i,baseURL:t,signal:c,source:e,integration:r,userAgent:o,retryThrottledRequestMaxTimes:n}).then(d=>d.isReady?d:(l&&l({isComputable:!0,value:1}),!1)),signal:a})}var Rr=(s,{publicKey:i,fileName:t,baseURL:e,secureSignature:r,secureExpire:o,store:n,contentType:a,signal:l,onProgress:c,source:d,integration:u,userAgent:p,retryThrottledRequestMaxTimes:m,baseCDN:_,metadata:x})=>wr(s,{publicKey:i,fileName:t,contentType:a,baseURL:e,secureSignature:r,secureExpire:o,store:n,signal:l,onProgress:c,source:d,integration:u,userAgent:p,retryThrottledRequestMaxTimes:m,metadata:x}).then(({file:C})=>hi({file:C,publicKey:i,baseURL:e,source:d,integration:u,userAgent:p,retryThrottledRequestMaxTimes:m,onProgress:c,signal:l})).then(C=>new rt(C,{baseCDN:_})),Or=(s,{signal:i}={})=>{let t=null,e=null,r=s.map(()=>new AbortController),o=n=>()=>{e=n,r.forEach((a,l)=>l!==n&&a.abort())};return Ie(i,()=>{r.forEach(n=>n.abort())}),Promise.all(s.map((n,a)=>{let l=o(a);return Promise.resolve().then(()=>n({stopRace:l,signal:r[a].signal})).then(c=>(l(),c)).catch(c=>(t=c,null))})).then(n=>{if(e===null)throw t;return n[e]})},Lr=window.WebSocket,si=class{constructor(){this.events=Object.create({})}emit(i,t){var e;(e=this.events[i])==null||e.forEach(r=>r(t))}on(i,t){this.events[i]=this.events[i]||[],this.events[i].push(t)}off(i,t){t?this.events[i]=this.events[i].filter(e=>e!==t):this.events[i]=[]}},Ur=(s,i)=>s==="success"?{status:D.Success,...i}:s==="progress"?{status:D.Progress,...i}:{status:D.Error,...i},ri=class{constructor(i,t=3e4){this.ws=void 0,this.queue=[],this.isConnected=!1,this.subscribers=0,this.emmitter=new si,this.disconnectTimeoutId=null,this.key=i,this.disconnectTime=t}connect(){if(this.disconnectTimeoutId&&clearTimeout(this.disconnectTimeoutId),!this.isConnected&&!this.ws){let i=`wss://ws.pusherapp.com/app/${this.key}?protocol=5&client=js&version=1.12.2`;this.ws=new Lr(i),this.ws.addEventListener("error",t=>{this.emmitter.emit("error",new Error(t.message))}),this.emmitter.on("connected",()=>{this.isConnected=!0,this.queue.forEach(t=>this.send(t.event,t.data)),this.queue=[]}),this.ws.addEventListener("message",t=>{let e=JSON.parse(t.data.toString());switch(e.event){case"pusher:connection_established":{this.emmitter.emit("connected",void 0);break}case"pusher:ping":{this.send("pusher:pong",{});break}case"progress":case"success":case"fail":this.emmitter.emit(e.channel,Ur(e.event,JSON.parse(e.data)))}})}}disconnect(){let i=()=>{var t;(t=this.ws)==null||t.close(),this.ws=void 0,this.isConnected=!1};this.disconnectTime?this.disconnectTimeoutId=setTimeout(()=>{i()},this.disconnectTime):i()}send(i,t){var r;let e=JSON.stringify({event:i,data:t});(r=this.ws)==null||r.send(e)}subscribe(i,t){this.subscribers+=1,this.connect();let e=`task-status-${i}`,r={event:"pusher:subscribe",data:{channel:e}};this.emmitter.on(e,t),this.isConnected?this.send(r.event,r.data):this.queue.push(r)}unsubscribe(i){this.subscribers-=1;let t=`task-status-${i}`,e={event:"pusher:unsubscribe",data:{channel:t}};this.emmitter.off(t),this.isConnected?this.send(e.event,e.data):this.queue=this.queue.filter(r=>r.data.channel!==t),this.subscribers===0&&this.disconnect()}onError(i){return this.emmitter.on("error",i),()=>this.emmitter.off("error",i)}},ei=null,di=s=>{if(!ei){let i=typeof window=="undefined"?0:3e4;ei=new ri(s,i)}return ei},Pr=s=>{di(s).connect()};function Dr({token:s,publicKey:i,baseURL:t,integration:e,userAgent:r,retryThrottledRequestMaxTimes:o,onProgress:n,signal:a}){return Fi({check:l=>Tr(s,{publicKey:i,baseURL:t,integration:e,userAgent:r,retryThrottledRequestMaxTimes:o,signal:l}).then(c=>{switch(c.status){case D.Error:return new R(c.error,c.errorCode);case D.Waiting:return!1;case D.Unknown:return new R(`Token "${s}" was not found.`);case D.Progress:return n&&(c.total==="unknown"?n({isComputable:!1}):n({isComputable:!0,value:c.done/c.total})),!1;case D.Success:return n&&n({isComputable:!0,value:c.done/c.total}),c;default:throw new Error("Unknown status")}}),signal:a})}var Nr=({token:s,pusherKey:i,signal:t,onProgress:e})=>new Promise((r,o)=>{let n=di(i),a=n.onError(o),l=()=>{a(),n.unsubscribe(s)};Ie(t,()=>{l(),o(ni("pusher cancelled"))}),n.subscribe(s,c=>{switch(c.status){case D.Progress:{e&&(c.total==="unknown"?e({isComputable:!1}):e({isComputable:!0,value:c.done/c.total}));break}case D.Success:{l(),e&&e({isComputable:!0,value:c.done/c.total}),r(c);break}case D.Error:l(),o(new R(c.msg,c.error_code))}})}),Mr=(s,{publicKey:i,fileName:t,baseURL:e,baseCDN:r,checkForUrlDuplicates:o,saveUrlForRecurrentUploads:n,secureSignature:a,secureExpire:l,store:c,signal:d,onProgress:u,source:p,integration:m,userAgent:_,retryThrottledRequestMaxTimes:x,pusherKey:C=E.pusherKey,metadata:T})=>Promise.resolve(Pr(C)).then(()=>xr(s,{publicKey:i,fileName:t,baseURL:e,checkForUrlDuplicates:o,saveUrlForRecurrentUploads:n,secureSignature:a,secureExpire:l,store:c,signal:d,source:p,integration:m,userAgent:_,retryThrottledRequestMaxTimes:x,metadata:T})).catch(b=>{let A=di(C);return A==null||A.disconnect(),Promise.reject(b)}).then(b=>b.type===ii.FileInfo?b:Or([({signal:A})=>Dr({token:b.token,publicKey:i,baseURL:e,integration:m,userAgent:_,retryThrottledRequestMaxTimes:x,onProgress:u,signal:A}),({signal:A})=>Nr({token:b.token,pusherKey:C,signal:A,onProgress:u})],{signal:d})).then(b=>{if(b instanceof R)throw b;return b}).then(b=>hi({file:b.uuid,publicKey:i,baseURL:e,integration:m,userAgent:_,retryThrottledRequestMaxTimes:x,onProgress:u,signal:d})).then(b=>new rt(b,{baseCDN:r})),Br=(s,{publicKey:i,fileName:t,baseURL:e,signal:r,onProgress:o,source:n,integration:a,userAgent:l,retryThrottledRequestMaxTimes:c,baseCDN:d})=>Bi(s,{publicKey:i,baseURL:e,signal:r,source:n,integration:a,userAgent:l,retryThrottledRequestMaxTimes:c}).then(u=>new rt(u,{baseCDN:d,fileName:t})).then(u=>(o&&o({isComputable:!0,value:1}),u)),Vi=s=>s.length||s.size,Fr=(s,i=E.multipartMinFileSize)=>s>=i,Vr=(s,i,t,e)=>{let r=e*i,o=Math.min(r+e,t);return s.slice(r,o)};function zr(s,i,t){return e=>Vr(s,e,i,t)}var Hr=(s,i)=>new Promise((t,e)=>{let r=[],o=!1,n=i.length,a=[...i],l=()=>{let c=i.length-a.length,d=a.shift();d&&d().then(u=>{o||(r[c]=u,n-=1,n?l():t(r))}).catch(u=>{o=!0,e(u)})};for(let c=0;c<s;c++)l()}),jr=(s,i,{publicKey:t,onProgress:e,signal:r,integration:o,multipartMaxAttempts:n})=>Mi(({attempt:a,retry:l})=>Sr(s,i,{publicKey:t,onProgress:e,signal:r,integration:o}).catch(c=>{if(a<n)return l();throw c})),Xr=(s,{publicKey:i,fileName:t,fileSize:e,baseURL:r,secureSignature:o,secureExpire:n,store:a,signal:l,onProgress:c,source:d,integration:u,userAgent:p,retryThrottledRequestMaxTimes:m,contentType:_,multipartChunkSize:x=E.multipartChunkSize,maxConcurrentRequests:C=E.maxConcurrentRequests,multipartMaxAttempts:T=E.multipartMaxAttempts,baseCDN:b,metadata:A})=>{let Et=e||Vi(s),P,W=($,Z)=>{if(!c)return;P||(P=Array($).fill(0));let Bt=it=>it.reduce((Te,Ss)=>Te+Ss,0);return it=>{!it.isComputable||(P[Z]=it.value,c({isComputable:!0,value:Bt(P)/$}))}};return $r(Et,{publicKey:i,contentType:_,fileName:t!=null?t:s.name,baseURL:r,secureSignature:o,secureExpire:n,store:a,signal:l,source:d,integration:u,userAgent:p,retryThrottledRequestMaxTimes:m,metadata:A}).then(({uuid:$,parts:Z})=>{let Bt=zr(s,Et,x);return Promise.all([$,Hr(C,Z.map((it,Te)=>()=>jr(Bt(Te),it,{publicKey:i,onProgress:W(Z.length,Te),signal:l,integration:u,multipartMaxAttempts:T})))])}).then(([$])=>kr($,{publicKey:i,baseURL:r,source:d,integration:u,userAgent:p,retryThrottledRequestMaxTimes:m})).then($=>$.isReady?$:hi({file:$.uuid,publicKey:i,baseURL:r,source:d,integration:u,userAgent:p,retryThrottledRequestMaxTimes:m,onProgress:c,signal:l})).then($=>new rt($,{baseCDN:b}))};function ui(s,{publicKey:i,fileName:t,baseURL:e=E.baseURL,secureSignature:r,secureExpire:o,store:n,signal:a,onProgress:l,source:c,integration:d,userAgent:u,retryThrottledRequestMaxTimes:p,contentType:m,multipartMinFileSize:_,multipartChunkSize:x,multipartMaxAttempts:C,maxConcurrentRequests:T,baseCDN:b=E.baseCDN,checkForUrlDuplicates:A,saveUrlForRecurrentUploads:Et,pusherKey:P,metadata:W}){if(Wt(s)){let $=Vi(s);return Fr($,_)?Xr(s,{publicKey:i,contentType:m,multipartChunkSize:x,multipartMaxAttempts:C,fileName:t,baseURL:e,secureSignature:r,secureExpire:o,store:n,signal:a,onProgress:l,source:c,integration:d,userAgent:u,maxConcurrentRequests:T,retryThrottledRequestMaxTimes:p,baseCDN:b,metadata:W}):Rr(s,{publicKey:i,fileName:t,contentType:m,baseURL:e,secureSignature:r,secureExpire:o,store:n,signal:a,onProgress:l,source:c,integration:d,userAgent:u,retryThrottledRequestMaxTimes:p,baseCDN:b,metadata:W})}if(Di(s))return Mr(s,{publicKey:i,fileName:t,baseURL:e,baseCDN:b,checkForUrlDuplicates:A,saveUrlForRecurrentUploads:Et,secureSignature:r,secureExpire:o,store:n,signal:a,onProgress:l,source:c,integration:d,userAgent:u,retryThrottledRequestMaxTimes:p,pusherKey:P,metadata:W});if(Pi(s))return Br(s,{publicKey:i,fileName:t,baseURL:e,signal:a,onProgress:l,source:c,integration:d,userAgent:u,retryThrottledRequestMaxTimes:p,baseCDN:b});throw new TypeError(`File uploading from "${s}" is not supported`)}var oi=class{constructor(i,t){this.storedAt=null,this.uuid=i.id,this.filesCount=i.filesCount,this.totalSize=Object.values(i.files).reduce((e,r)=>e+r.size,0),this.isStored=!!i.datetimeStored,this.isImage=!!Object.values(i.files).filter(e=>e.isImage).length,this.cdnUrl=i.cdnUrl,this.files=t,this.createdAt=i.datetimeCreated,this.storedAt=i.datetimeStored}},Wr=s=>{for(let i of s)if(!Wt(i))return!1;return!0},Gr=s=>{for(let i of s)if(!Pi(i))return!1;return!0},qr=s=>{for(let i of s)if(!Di(i))return!1;return!0};function zi(s,{publicKey:i,fileName:t,baseURL:e=E.baseURL,secureSignature:r,secureExpire:o,store:n,signal:a,onProgress:l,source:c,integration:d,userAgent:u,retryThrottledRequestMaxTimes:p,contentType:m,multipartChunkSize:_=E.multipartChunkSize,baseCDN:x=E.baseCDN,jsonpCallback:C}){if(!Wr(s)&&!qr(s)&&!Gr(s))throw new TypeError(`Group uploading from "${s}" is not supported`);let T,b=!0,A=s.length,Et=(P,W)=>{if(!l)return;T||(T=Array(P).fill(0));let $=Z=>Z.reduce((Bt,it)=>Bt+it)/P;return Z=>{if(!Z.isComputable||!b){b=!1,l({isComputable:!1});return}T[W]=Z.value,l({isComputable:!0,value:$(T)})}};return Promise.all(s.map((P,W)=>ui(P,{publicKey:i,fileName:t,baseURL:e,secureSignature:r,secureExpire:o,store:n,signal:a,onProgress:Et(A,W),source:c,integration:d,userAgent:u,retryThrottledRequestMaxTimes:p,contentType:m,multipartChunkSize:_,baseCDN:x}))).then(P=>{let W=P.map($=>$.uuid);return Ar(W,{publicKey:i,baseURL:e,jsonpCallback:C,secureSignature:r,secureExpire:o,signal:a,source:c,integration:d,userAgent:u,retryThrottledRequestMaxTimes:p}).then($=>new oi($,P)).then($=>(l&&l({isComputable:!0,value:1}),$))})}var Hi=Object.freeze({file:{type:File,value:null},externalUrl:{type:String,value:null},fileName:{type:String,value:null},fileSize:{type:Number,value:null},lastModified:{type:Number,value:Date.now()},uploadProgress:{type:Number,value:0},uuid:{type:String,value:null},isImage:{type:Boolean,value:!1},mimeType:{type:String,value:null},uploadError:{type:Error,value:null,nullable:!0},validationErrorMsg:{type:String,value:null,nullable:!0},ctxName:{type:String,value:null},cdnUrl:{type:String,value:null},cdnUrlModifiers:{type:String,value:null},fileInfo:{type:rt,value:null},isUploading:{type:Boolean,value:!1},abortController:{type:AbortController,value:null,nullable:!0},thumbUrl:{type:String,value:null,nullable:!0}});var ji="blocks",Xi="0.14.2";function Wi(s){return li({...s,libraryName:ji,libraryVersion:Xi})}var Gi="[Typed State] Wrong property name: ",Yr="[Typed State] Wrong property type: ",Re=class{constructor(i,t){this.__typedSchema=i,this.__ctxId=t||Vt.generate(),this.__schema=Object.keys(i).reduce((e,r)=>(e[r]=i[r].value,e),{}),thi