UNPKG

@mux/mux-uploader-react

Version:

An uploader element for React that handles Mux Direct Uploads and a visual progress bar for you

252 lines (219 loc) • 61.2 kB
"use strict";"use client";var er=Object.create;var fe=Object.defineProperty;var tr=Object.getOwnPropertyDescriptor;var rr=Object.getOwnPropertyNames;var nr=Object.getPrototypeOf,sr=Object.prototype.hasOwnProperty;var ir=(e,t)=>{for(var r in t)fe(e,r,{get:t[r],enumerable:!0})},$e=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of rr(t))!sr.call(e,s)&&s!==r&&fe(e,s,{get:()=>t[s],enumerable:!(n=tr(t,s))||n.enumerable});return e};var H=(e,t,r)=>(r=e!=null?er(nr(e)):{},$e(t||!e||!e.__esModule?fe(r,"default",{value:e,enumerable:!0}):r,e)),ar=e=>$e(fe({},"__esModule",{value:!0}),e);var $n={};ir($n,{MuxUploaderDrop:()=>Ft,MuxUploaderFileSelect:()=>Nt,MuxUploaderPause:()=>Xt,MuxUploaderProgress:()=>jt,MuxUploaderRetry:()=>$t,MuxUploaderStatus:()=>Vt,ProgressTypes:()=>Bn,default:()=>Wn});module.exports=ar($n);var W=H(require("react"));var or=Object.create,tt=Object.defineProperty,lr=Object.getOwnPropertyDescriptor,rt=Object.getOwnPropertyNames,ur=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty,Y=(e,t)=>function(){return t||(0,e[rt(e)[0]])((t={exports:{}}).exports,t),t.exports},pr=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of rt(t))!dr.call(e,s)&&s!==r&&tt(e,s,{get:()=>t[s],enumerable:!(n=lr(t,s))||n.enumerable});return e},cr=(e,t,r)=>(r=e!=null?or(ur(e)):{},pr(t||!e||!e.__esModule?tt(r,"default",{value:e,enumerable:!0}):r,e)),hr=Y({"node_modules/global/window.js"(e,t){var r;typeof window!="undefined"?r=window:typeof global!="undefined"?r=global:typeof self!="undefined"?r=self:r={},t.exports=r}}),fr=Y({"node_modules/is-function/index.js"(e,t){t.exports=n;var r=Object.prototype.toString;function n(s){if(!s)return!1;var a=r.call(s);return a==="[object Function]"||typeof s=="function"&&a!=="[object RegExp]"||typeof window!="undefined"&&(s===window.setTimeout||s===window.alert||s===window.confirm||s===window.prompt)}}}),gr=Y({"node_modules/parse-headers/parse-headers.js"(e,t){var r=function(s){return s.replace(/^\s+|\s+$/g,"")},n=function(s){return Object.prototype.toString.call(s)==="[object Array]"};t.exports=function(s){if(!s)return{};for(var a={},l=r(s).split(` `),u=0;u<l.length;u++){var c=l[u],h=c.indexOf(":"),v=r(c.slice(0,h)).toLowerCase(),C=r(c.slice(h+1));typeof a[v]=="undefined"?a[v]=C:n(a[v])?a[v].push(C):a[v]=[a[v],C]}return a}}}),mr=Y({"node_modules/xtend/immutable.js"(e,t){t.exports=n;var r=Object.prototype.hasOwnProperty;function n(){for(var s={},a=0;a<arguments.length;a++){var l=arguments[a];for(var u in l)r.call(l,u)&&(s[u]=l[u])}return s}}}),vr=Y({"node_modules/xhr/index.js"(e,t){"use strict";var r=hr(),n=fr(),s=gr(),a=mr();t.exports=h,t.exports.default=h,h.XMLHttpRequest=r.XMLHttpRequest||Ce,h.XDomainRequest="withCredentials"in new h.XMLHttpRequest?h.XMLHttpRequest:r.XDomainRequest,l(["get","put","post","patch","head","delete"],function(o){h[o==="delete"?"del":o]=function(b,y,F){return y=c(b,y,F),y.method=o.toUpperCase(),v(y)}});function l(o,b){for(var y=0;y<o.length;y++)b(o[y])}function u(o){for(var b in o)if(o.hasOwnProperty(b))return!1;return!0}function c(o,b,y){var F=o;return n(b)?(y=b,typeof o=="string"&&(F={uri:o})):F=a(b,{uri:o}),F.callback=y,F}function h(o,b,y){return b=c(o,b,y),v(b)}function v(o){if(typeof o.callback=="undefined")throw new Error("callback argument missing");var b=!1,y=function(N,he,Qt){b||(b=!0,o.callback(N,he,Qt))};function F(){d.readyState===4&&setTimeout(He,0)}function Jt(){var g=void 0;if(d.response?g=d.response:g=d.responseText||C(d),je)try{g=JSON.parse(g)}catch{}return g}function Re(g){return clearTimeout(Ae),g instanceof Error||(g=new Error(""+(g||"Unknown XMLHttpRequest Error"))),g.statusCode=0,y(g,We)}function He(){if(!ce){var g;clearTimeout(Ae),o.useXDR&&d.status===void 0?g=200:g=d.status===1223?204:d.status;var N=We,he=null;return g!==0?(N={body:Jt(),statusCode:g,method:G,headers:{},url:Se,rawRequest:d},d.getAllResponseHeaders&&(N.headers=s(d.getAllResponseHeaders()))):he=new Error("Internal XMLHttpRequest Error"),y(he,N,N.body)}}var d=o.xhr||null;d||(o.cors||o.useXDR?d=new h.XDomainRequest:d=new h.XMLHttpRequest);var pe,ce,Se=d.url=o.uri||o.url,G=d.method=o.method||"GET",we=o.body||o.data,_=d.headers=o.headers||{},Me=!!o.sync,je=!1,Ae,We={body:void 0,headers:{},statusCode:0,method:G,url:Se,rawRequest:d};if("json"in o&&o.json!==!1&&(je=!0,_.accept||_.Accept||(_.Accept="application/json"),G!=="GET"&&G!=="HEAD"&&(_["content-type"]||_["Content-Type"]||(_["Content-Type"]="application/json"),we=JSON.stringify(o.json===!0?we:o.json))),d.onreadystatechange=F,d.onload=He,d.onerror=Re,d.onprogress=function(){},d.onabort=function(){ce=!0},d.ontimeout=Re,d.open(G,Se,!Me,o.username,o.password),Me||(d.withCredentials=!!o.withCredentials),!Me&&o.timeout>0&&(Ae=setTimeout(function(){if(!ce){ce=!0,d.abort("timeout");var g=new Error("XMLHttpRequest timeout");g.code="ETIMEDOUT",Re(g)}},o.timeout)),d.setRequestHeader)for(pe in _)_.hasOwnProperty(pe)&&d.setRequestHeader(pe,_[pe]);else if(o.headers&&!u(o.headers))throw new Error("Headers cannot be set on an XDomainRequest object");return"responseType"in o&&(d.responseType=o.responseType),"beforeSend"in o&&typeof o.beforeSend=="function"&&o.beforeSend(d),d.send(we||null),d}function C(o){try{if(o.responseType==="document")return o.responseXML;var b=o.responseXML&&o.responseXML.documentElement.nodeName==="parsererror";if(o.responseType===""&&!b)return o.responseXML}catch{}return null}function Ce(){}}});function ze(e,t,...r){if(!e)throw new TypeError(nt(t,r))}function nt(e,t){let r=0;return e.replace(/%[os]/gu,()=>st(t[r++]))}function st(e){return typeof e!="object"||e===null?String(e):Object.prototype.toString.call(e)}var qe;function br(e){try{let t=e instanceof Error?e:new Error(st(e));if(qe){qe(t);return}if(typeof dispatchEvent=="function"&&typeof ErrorEvent=="function")dispatchEvent(new ErrorEvent("error",{error:t,message:t.message}));else if(typeof process!="undefined"&&typeof process.emit=="function"){process.emit("uncaughtException",t);return}console.error(t)}catch{}}var A=typeof window!="undefined"?window:typeof self!="undefined"?self:typeof global!="undefined"?global:typeof globalThis!="undefined"?globalThis:void 0,Xe,z=class{constructor(e,t){this.code=e,this.message=t}warn(...e){var t;try{if(Xe){Xe({...this,args:e});return}let r=((t=new Error().stack)!==null&&t!==void 0?t:"").replace(/^(?:.+?\n){2}/gu,` `);console.warn(this.message,...e,r)}catch{}}},yr=new z("W01","Unable to initialize event under dispatching."),Er=new z("W02","Assigning any falsy value to 'cancelBubble' property has no effect."),xr=new z("W03","Assigning any truthy value to 'returnValue' property has no effect."),kr=new z("W04","Unable to preventDefault on non-cancelable events."),Cr=new z("W05","Unable to preventDefault inside passive event listener invocation."),Rr=new z("W06","An event listener wasn't added because it has been added already: %o, %o"),Te=new z("W07","The %o option value was abandoned because the event listener wasn't added as duplicated."),Ge=new z("W08","The 'callback' argument must be a function or an object that has 'handleEvent' method: %o"),Xn=new z("W09","Event attribute handler must be a function: %o"),O=class{static get NONE(){return Ve}static get CAPTURING_PHASE(){return Ke}static get AT_TARGET(){return Ye}static get BUBBLING_PHASE(){return Ze}constructor(e,t){Object.defineProperty(this,"isTrusted",{value:!1,enumerable:!0});let r=t!=null?t:{};_e.set(this,{type:String(e),bubbles:!!r.bubbles,cancelable:!!r.cancelable,composed:!!r.composed,target:null,currentTarget:null,stopPropagationFlag:!1,stopImmediatePropagationFlag:!1,canceledFlag:!1,inPassiveListenerFlag:!1,dispatchFlag:!1,timeStamp:Date.now()})}get type(){return m(this).type}get target(){return m(this).target}get srcElement(){return m(this).target}get currentTarget(){return m(this).currentTarget}composedPath(){let e=m(this).currentTarget;return e?[e]:[]}get NONE(){return Ve}get CAPTURING_PHASE(){return Ke}get AT_TARGET(){return Ye}get BUBBLING_PHASE(){return Ze}get eventPhase(){return m(this).dispatchFlag?2:0}stopPropagation(){m(this).stopPropagationFlag=!0}get cancelBubble(){return m(this).stopPropagationFlag}set cancelBubble(e){e?m(this).stopPropagationFlag=!0:Er.warn()}stopImmediatePropagation(){let e=m(this);e.stopPropagationFlag=e.stopImmediatePropagationFlag=!0}get bubbles(){return m(this).bubbles}get cancelable(){return m(this).cancelable}get returnValue(){return!m(this).canceledFlag}set returnValue(e){e?xr.warn():Je(m(this))}preventDefault(){Je(m(this))}get defaultPrevented(){return m(this).canceledFlag}get composed(){return m(this).composed}get isTrusted(){return!1}get timeStamp(){return m(this).timeStamp}initEvent(e,t=!1,r=!1){let n=m(this);if(n.dispatchFlag){yr.warn();return}_e.set(this,{...n,type:String(e),bubbles:!!t,cancelable:!!r,target:null,currentTarget:null,stopPropagationFlag:!1,stopImmediatePropagationFlag:!1,canceledFlag:!1})}},Ve=0,Ke=1,Ye=2,Ze=3,_e=new WeakMap;function m(e,t="this"){let r=_e.get(e);return ze(r!=null,"'%s' must be an object that Event constructor created, but got another one: %o",t,e),r}function Je(e){if(e.inPassiveListenerFlag){Cr.warn();return}if(!e.cancelable){kr.warn();return}e.canceledFlag=!0}Object.defineProperty(O,"NONE",{enumerable:!0});Object.defineProperty(O,"CAPTURING_PHASE",{enumerable:!0});Object.defineProperty(O,"AT_TARGET",{enumerable:!0});Object.defineProperty(O,"BUBBLING_PHASE",{enumerable:!0});var Pe=Object.getOwnPropertyNames(O.prototype);for(let e=0;e<Pe.length;++e)Pe[e]!=="constructor"&&Object.defineProperty(O.prototype,Pe[e],{enumerable:!0});typeof A!="undefined"&&typeof A.Event!="undefined"&&Object.setPrototypeOf(O.prototype,A.Event.prototype);function Sr(e){return A.DOMException?new A.DOMException(e,"InvalidStateError"):($==null&&($=class it extends Error{constructor(r){super(r),Error.captureStackTrace&&Error.captureStackTrace(this,it)}get code(){return 11}get name(){return"InvalidStateError"}},Object.defineProperties($.prototype,{code:{enumerable:!0},name:{enumerable:!0}}),et($),et($.prototype)),new $(e))}var $,Qe={INDEX_SIZE_ERR:1,DOMSTRING_SIZE_ERR:2,HIERARCHY_REQUEST_ERR:3,WRONG_DOCUMENT_ERR:4,INVALID_CHARACTER_ERR:5,NO_DATA_ALLOWED_ERR:6,NO_MODIFICATION_ALLOWED_ERR:7,NOT_FOUND_ERR:8,NOT_SUPPORTED_ERR:9,INUSE_ATTRIBUTE_ERR:10,INVALID_STATE_ERR:11,SYNTAX_ERR:12,INVALID_MODIFICATION_ERR:13,NAMESPACE_ERR:14,INVALID_ACCESS_ERR:15,VALIDATION_ERR:16,TYPE_MISMATCH_ERR:17,SECURITY_ERR:18,NETWORK_ERR:19,ABORT_ERR:20,URL_MISMATCH_ERR:21,QUOTA_EXCEEDED_ERR:22,TIMEOUT_ERR:23,INVALID_NODE_TYPE_ERR:24,DATA_CLONE_ERR:25};function et(e){let t=Object.keys(Qe);for(let r=0;r<t.length;++r){let n=t[r],s=Qe[n];Object.defineProperty(e,n,{get(){return s},configurable:!0,enumerable:!0})}}var me=class extends O{static wrap(e){return new(ot(e))(e)}constructor(e){super(e.type,{bubbles:e.bubbles,cancelable:e.cancelable,composed:e.composed}),e.cancelBubble&&super.stopPropagation(),e.defaultPrevented&&super.preventDefault(),at.set(this,{original:e});let t=Object.keys(e);for(let r=0;r<t.length;++r){let n=t[r];n in this||Object.defineProperty(this,n,lt(e,n))}}stopPropagation(){super.stopPropagation();let{original:e}=B(this);"stopPropagation"in e&&e.stopPropagation()}get cancelBubble(){return super.cancelBubble}set cancelBubble(e){super.cancelBubble=e;let{original:t}=B(this);"cancelBubble"in t&&(t.cancelBubble=e)}stopImmediatePropagation(){super.stopImmediatePropagation();let{original:e}=B(this);"stopImmediatePropagation"in e&&e.stopImmediatePropagation()}get returnValue(){return super.returnValue}set returnValue(e){super.returnValue=e;let{original:t}=B(this);"returnValue"in t&&(t.returnValue=e)}preventDefault(){super.preventDefault();let{original:e}=B(this);"preventDefault"in e&&e.preventDefault()}get timeStamp(){let{original:e}=B(this);return"timeStamp"in e?e.timeStamp:super.timeStamp}},at=new WeakMap;function B(e){let t=at.get(e);return ze(t!=null,"'this' is expected an Event object, but got",e),t}var ge=new WeakMap;ge.set(Object.prototype,me);typeof A!="undefined"&&typeof A.Event!="undefined"&&ge.set(A.Event.prototype,me);function ot(e){let t=Object.getPrototypeOf(e);if(t==null)return me;let r=ge.get(t);return r==null&&(r=wr(ot(t),t),ge.set(t,r)),r}function wr(e,t){class r extends e{}let n=Object.keys(t);for(let s=0;s<n.length;++s)Object.defineProperty(r.prototype,n[s],lt(t,n[s]));return r}function lt(e,t){let r=Object.getOwnPropertyDescriptor(e,t);return{get(){let n=B(this).original,s=n[t];return typeof s=="function"?s.bind(n):s},set(n){let s=B(this).original;s[t]=n},configurable:r.configurable,enumerable:r.enumerable}}function Mr(e,t,r,n,s,a){return{callback:e,flags:(t?1:0)|(r?2:0)|(n?4:0),signal:s,signalListener:a}}function Ar(e){e.flags|=8}function ut(e){return(e.flags&1)===1}function dt(e){return(e.flags&2)===2}function pt(e){return(e.flags&4)===4}function Tr(e){return(e.flags&8)===8}function Pr({callback:e},t,r){try{typeof e=="function"?e.call(t,r):typeof e.handleEvent=="function"&&e.handleEvent(r)}catch(n){br(n)}}function ct({listeners:e},t,r){for(let n=0;n<e.length;++n)if(e[n].callback===t&&ut(e[n])===r)return n;return-1}function Ur(e,t,r,n,s,a){let l;a&&(l=ht.bind(null,e,t,r),a.addEventListener("abort",l));let u=Mr(t,r,n,s,a,l);return e.cow?(e.cow=!1,e.listeners=[...e.listeners,u]):e.listeners.push(u),u}function ht(e,t,r){let n=ct(e,t,r);return n!==-1?ft(e,n):!1}function ft(e,t,r=!1){let n=e.listeners[t];return Ar(n),n.signal&&n.signal.removeEventListener("abort",n.signalListener),e.cow&&!r?(e.cow=!1,e.listeners=e.listeners.filter((s,a)=>a!==t),!1):(e.listeners.splice(t,1),!0)}function Lr(){return Object.create(null)}function _r(e,t){var r;return(r=e[t])!==null&&r!==void 0?r:e[t]={attrCallback:void 0,attrListener:void 0,cow:!1,listeners:[]}}var ve=class{constructor(){gt.set(this,Lr())}addEventListener(e,t,r){let n=Ue(this),{callback:s,capture:a,once:l,passive:u,signal:c,type:h}=zr(e,t,r);if(s==null||c!=null&&c.aborted)return;let v=_r(n,h),C=ct(v,s,a);if(C!==-1){Dr(v.listeners[C],u,l,c);return}Ur(v,s,a,u,l,c)}removeEventListener(e,t,r){let n=Ue(this),{callback:s,capture:a,type:l}=Or(e,t,r),u=n[l];s!=null&&u&&ht(u,s,a)}dispatchEvent(e){let t=Ue(this)[String(e.type)];if(t==null)return!0;let r=e instanceof O?e:me.wrap(e),n=m(r,"event");if(n.dispatchFlag)throw Sr("This event has been in dispatching.");if(n.dispatchFlag=!0,n.target=n.currentTarget=this,!n.stopPropagationFlag){let{cow:s,listeners:a}=t;t.cow=!0;for(let l=0;l<a.length;++l){let u=a[l];if(!Tr(u)&&(pt(u)&&ft(t,l,!s)&&(l-=1),n.inPassiveListenerFlag=dt(u),Pr(u,this,r),n.inPassiveListenerFlag=!1,n.stopImmediatePropagationFlag))break}s||(t.cow=!1)}return n.target=null,n.currentTarget=null,n.stopImmediatePropagationFlag=!1,n.stopPropagationFlag=!1,n.dispatchFlag=!1,!n.canceledFlag}},gt=new WeakMap;function Ue(e,t="this"){let r=gt.get(e);return ze(r!=null,"'%s' must be an object that EventTarget constructor created, but got another one: %o",t,e),r}function zr(e,t,r){var n;return mt(t),typeof r=="object"&&r!==null?{type:String(e),callback:t!=null?t:void 0,capture:!!r.capture,passive:!!r.passive,once:!!r.once,signal:(n=r.signal)!==null&&n!==void 0?n:void 0}:{type:String(e),callback:t!=null?t:void 0,capture:!!r,passive:!1,once:!1,signal:void 0}}function Or(e,t,r){return mt(t),typeof r=="object"&&r!==null?{type:String(e),callback:t!=null?t:void 0,capture:!!r.capture}:{type:String(e),callback:t!=null?t:void 0,capture:!!r}}function mt(e){if(!(typeof e=="function"||typeof e=="object"&&e!==null&&typeof e.handleEvent=="function")){if(e==null||typeof e=="object"){Ge.warn(e);return}throw new TypeError(nt(Ge.message,[e]))}}function Dr(e,t,r,n){Rr.warn(ut(e)?"capture":"bubble",e.callback),dt(e)!==t&&Te.warn("passive"),pt(e)!==r&&Te.warn("once"),e.signal!==n&&Te.warn("signal")}var Le=Object.getOwnPropertyNames(ve.prototype);for(let e=0;e<Le.length;++e)Le[e]!=="constructor"&&Object.defineProperty(ve.prototype,Le[e],{enumerable:!0});typeof A!="undefined"&&typeof A.EventTarget!="undefined"&&Object.setPrototypeOf(ve.prototype,A.EventTarget.prototype);var Ir=cr(vr()),Oe=30720,Z=512e3,J=256,V=(e,{minChunkSize:t=J,maxChunkSize:r=Z}={})=>e==null||typeof e=="number"&&e>=256&&e%256===0&&e>=t&&e<=r,K=(e,{minChunkSize:t=J,maxChunkSize:r=Z}={})=>new TypeError(`chunkSize ${e} must be a positive number in multiples of 256, between ${t} and ${r}`),Fr=class{constructor(e,t={}){this.readableStream=e;var r,n,s;if(!V(t.defaultChunkSize,t))throw K(t.defaultChunkSize,t);this.defaultChunkSize=(r=t.defaultChunkSize)!=null?r:Oe,this.minChunkSize=(n=t.minChunkSize)!=null?n:J,this.maxChunkSize=(s=t.maxChunkSize)!=null?s:Z}get chunkSize(){var e;return(e=this._chunkSize)!=null?e:this.defaultChunkSize}set chunkSize(e){if(!V(e,this))throw K(e,this);this._chunkSize=e}get chunkByteSize(){return this.chunkSize*1024}get error(){return this._error}async*[Symbol.asyncIterator](){let e,t=this.readableStream.getReader();try{for(;;){let{done:r,value:n}=await t.read();if(r){if(e){let a=e;e=void 0,yield a}break}let s=n instanceof Uint8Array?new Blob([n],{type:"application/octet-stream"}):n;for(e=e?new Blob([e,s]):s;e;)if(e.size===this.chunkByteSize){let a=e;e=void 0,yield a;break}else{if(e.size<this.chunkByteSize)break;{let a=e.slice(0,this.chunkByteSize);e=e.slice(this.chunkByteSize),yield a}}}}catch(r){this._error=r}finally{if(e){let r=e;e=void 0,yield r}t.releaseLock();return}}},Br=class{constructor(e,t={}){this.file=e;var r,n,s;if(!V(t.defaultChunkSize,t))throw K(t.defaultChunkSize,t);this.defaultChunkSize=(r=t.defaultChunkSize)!=null?r:Oe,this.minChunkSize=(n=t.minChunkSize)!=null?n:J,this.maxChunkSize=(s=t.maxChunkSize)!=null?s:Z}get chunkSize(){var e;return(e=this._chunkSize)!=null?e:this.defaultChunkSize}set chunkSize(e){if(!V(e,this))throw K(e,this);this._chunkSize=e}get chunkByteSize(){return this.chunkSize*1024}get error(){return this._error}async*[Symbol.asyncIterator](){let e=new FileReader,t=0,r=()=>new Promise(n=>{if(t>=this.file.size){n(void 0);return}let s=Math.min(this.chunkByteSize,this.file.size-t);e.onload=()=>{e.result!==null?n(new Blob([e.result],{type:"application/octet-stream"})):n(void 0)},e.readAsArrayBuffer(this.file.slice(t,t+s))});try{for(;;){let n=await r();if(n)t+=n.size,yield n;else break}}catch(n){this._error=n}}},Nr=[200,201,202,204,308],vt=[408,502,503,504],Hr=[308],bt=(e,t)=>!!e&&Nr.includes(e.statusCode),jr=(e,{retryCodes:t=vt})=>!e||t.includes(e.statusCode),Wr=(e,t)=>t.attemptCount>=t.attempts||!(bt(e)||jr(e,t)),$r=(e,t)=>{var r;if(!e||!Hr.includes(e.statusCode)||!((r=e.headers)!=null&&r.range))return!1;let n=e.headers.range.match(/bytes=(\d+)-(\d+)/);return n?parseInt(n[2],10)<t.currentChunkEndByte:!1},De=class{static createUpload(e){return new De(e)}constructor(e){if(this.eventTarget=new ve,this.endpoint=e.endpoint,this.file=e.file,this.headers=e.headers||{},this.method=e.method||"PUT",this.attempts=e.attempts||5,this.delayBeforeAttempt=e.delayBeforeAttempt||1,this.retryCodes=e.retryCodes||vt,this.dynamicChunkSize=e.dynamicChunkSize||!1,this.maxFileBytes=(e.maxFileSize||0)*1024,this.chunkCount=0,this.attemptCount=0,this._offline=typeof window!="undefined"&&!window.navigator.onLine,this._paused=!1,this.success=!1,this.nextChunkRangeStart=0,e.useLargeFileWorkaround){let t=r=>{this.chunkedIterable.error&&(console.warn(`Unable to read file of size ${this.file.size} bytes via a ReadableStream. Falling back to in-memory FileReader!`),r.stopImmediatePropagation(),this.chunkedIterable=new Br(this.file,{...e,defaultChunkSize:e.chunkSize}),this.chunkedIterator=this.chunkedIterable[Symbol.asyncIterator](),this.getEndpoint().then(()=>{this.sendChunks()}).catch(n=>{let s=n!=null&&n.message?`: ${n.message}`:"";this.dispatch("error",{message:`Failed to get endpoint${s}`})}),this.off("error",t))};this.on("error",t)}this.chunkedIterable=new Fr(this.file.stream(),{...e,defaultChunkSize:e.chunkSize}),this.chunkedIterator=this.chunkedIterable[Symbol.asyncIterator](),this.totalChunks=Math.ceil(this.file.size/this.chunkByteSize),this.validateOptions(),this.getEndpoint().then(()=>this.sendChunks()).catch(t=>{let r=t!=null&&t.message?`: ${t.message}`:"";this.dispatch("error",{message:`Failed to get endpoint${r}`})}),typeof window!="undefined"&&(window.addEventListener("online",()=>{this.offline&&(this._offline=!1,this.dispatch("online"),this.sendChunks())}),window.addEventListener("offline",()=>{this.offline||(this._offline=!0,this.dispatch("offline"))}))}get maxChunkSize(){var e,t;return(t=(e=this.chunkedIterable)==null?void 0:e.maxChunkSize)!=null?t:Z}get minChunkSize(){var e,t;return(t=(e=this.chunkedIterable)==null?void 0:e.minChunkSize)!=null?t:J}get chunkSize(){var e,t;return(t=(e=this.chunkedIterable)==null?void 0:e.chunkSize)!=null?t:Oe}set chunkSize(e){this.chunkedIterable.chunkSize=e}get chunkByteSize(){return this.chunkedIterable.chunkByteSize}get totalChunkSize(){return Math.ceil(this.file.size/this.chunkByteSize)}on(e,t){this.eventTarget.addEventListener(e,t)}once(e,t){this.eventTarget.addEventListener(e,t,{once:!0})}off(e,t){this.eventTarget.removeEventListener(e,t)}get offline(){return this._offline}get paused(){return this._paused}abort(){var e;this.pause(),(e=this.currentXhr)==null||e.abort()}pause(){this._paused=!0}resume(){this._paused&&(this._paused=!1,this.sendChunks())}get successfulPercentage(){return this.nextChunkRangeStart/this.file.size}dispatch(e,t){let r=new CustomEvent(e,{detail:t});this.eventTarget.dispatchEvent(r)}validateOptions(){if(!this.endpoint||typeof this.endpoint!="function"&&typeof this.endpoint!="string")throw new TypeError("endpoint must be defined as a string or a function that returns a promise");if(!(this.file instanceof File))throw new TypeError("file must be a File object");if(this.headers&&typeof this.headers!="function"&&typeof this.headers!="object")throw new TypeError("headers must be null, an object, or a function that returns an object or a promise");if(!V(this.chunkSize,{maxChunkSize:this.maxChunkSize,minChunkSize:this.minChunkSize}))throw K(this.chunkSize,{maxChunkSize:this.maxChunkSize,minChunkSize:this.minChunkSize});if(this.maxChunkSize&&(typeof this.maxChunkSize!="number"||this.maxChunkSize<256||this.maxChunkSize%256!==0||this.maxChunkSize<this.chunkSize||this.maxChunkSize<this.minChunkSize))throw new TypeError(`maxChunkSize must be a positive number in multiples of 256, and larger than or equal to both ${this.minChunkSize} and ${this.chunkSize}`);if(this.minChunkSize&&(typeof this.minChunkSize!="number"||this.minChunkSize<256||this.minChunkSize%256!==0||this.minChunkSize>this.chunkSize||this.minChunkSize>this.maxChunkSize))throw new TypeError(`minChunkSize must be a positive number in multiples of 256, and smaller than ${this.chunkSize} and ${this.maxChunkSize}`);if(this.maxFileBytes>0&&this.maxFileBytes<this.file.size)throw new Error(`file size exceeds maximum (${this.file.size} > ${this.maxFileBytes})`);if(this.attempts&&(typeof this.attempts!="number"||this.attempts<=0))throw new TypeError("retries must be a positive number");if(this.delayBeforeAttempt&&(typeof this.delayBeforeAttempt!="number"||this.delayBeforeAttempt<0))throw new TypeError("delayBeforeAttempt must be a positive number")}getEndpoint(){return typeof this.endpoint=="string"?(this.endpointValue=this.endpoint,Promise.resolve(this.endpoint)):this.endpoint(this.file).then(e=>{if(this.endpointValue=e,typeof e!="string")throw new TypeError("endpoint must return a string");return this.endpointValue})}xhrPromise(e){let t=r=>{r.upload.onprogress=n=>{var s;let a=this.totalChunks-this.chunkCount,l=(this.file.size-this.nextChunkRangeStart)/this.file.size/a,c=n.loaded/((s=n.total)!=null?s:this.chunkByteSize)*l;this.dispatch("progress",Math.min((this.successfulPercentage+c)*100,100))}};return new Promise((r,n)=>{this.currentXhr=(0,Ir.default)({...e,beforeSend:t},(s,a)=>(this.currentXhr=void 0,s?n(s):r(a)))})}async sendChunk(e){let t=this.nextChunkRangeStart,r=t+e.size-1,s={...await(typeof this.headers=="function"?this.headers():this.headers),"Content-Type":this.file.type,"Content-Range":`bytes ${t}-${r}/${this.file.size}`};return this.dispatch("attempt",{chunkNumber:this.chunkCount,totalChunks:this.totalChunks,chunkSize:this.chunkSize}),this.xhrPromise({headers:s,url:this.endpointValue,method:this.method,body:e})}async sendChunkWithRetries(e){let t=async(l,u)=>{var c;let v=(new Date().getTime()-this.lastChunkStart.getTime())/1e3;if(this.dispatch("chunkSuccess",{chunk:this.chunkCount,chunkSize:this.chunkSize,attempts:this.attemptCount,timeInterval:v,response:l}),this.attemptCount=0,this.chunkCount=((c=this.chunkCount)!=null?c:0)+1,this.nextChunkRangeStart=this.nextChunkRangeStart+this.chunkByteSize,this.dynamicChunkSize){let C=this.chunkSize;v<10?C=Math.min(this.chunkSize*2,this.maxChunkSize):v>30&&(C=Math.max(this.chunkSize/2,this.minChunkSize)),this.chunkSize=Math.ceil(C/256)*256;let Ce=(this.file.size-this.nextChunkRangeStart)/this.chunkByteSize;this.totalChunks=Math.ceil(this.chunkCount+Ce)}return!0},r=async(l,u)=>(this.dispatch("progress",Math.min(this.successfulPercentage*100,100)),this.dispatch("error",{message:`Server responded with ${l.statusCode}. Stopping upload.`,chunk:this.chunkCount,attempts:this.attemptCount,response:l}),!1),n=async(l,u)=>(this.dispatch("attemptFailure",{message:`An error occured uploading chunk ${this.chunkCount}. ${this.attempts-this.attemptCount} retries left.`,chunkNumber:this.chunkCount,attemptsLeft:this.attempts-this.attemptCount,response:l}),new Promise(c=>{setTimeout(async()=>{if(this._paused||this.offline){this.pendingChunk=e,c(!1);return}let h=await this.sendChunkWithRetries(e);c(h)},this.delayBeforeAttempt*1e3)})),s;try{this.attemptCount=this.attemptCount+1,this.lastChunkStart=new Date,s=await this.sendChunk(e)}catch(l){typeof(l==null?void 0:l.statusCode)=="number"&&(s=l)}let a={retryCodes:this.retryCodes,attemptCount:this.attemptCount,attempts:this.attempts,currentChunkEndByte:this.nextChunkRangeStart+e.size-1};return $r(s,a)?n(s,e):bt(s,a)?t(s,e):Wr(s,a)?r(s,e):n(s,e)}async sendChunks(){if(this.pendingChunk&&!(this._paused||this.offline)){let e=this.pendingChunk;this.pendingChunk=void 0;let t=await this.sendChunkWithRetries(e);this.success&&t&&this.dispatch("success")}for(;!(this.success||this._paused||this.offline);){let{value:e,done:t}=await this.chunkedIterator.next(),r=!e&&t;if(e&&(r=await this.sendChunkWithRetries(e)),this.chunkedIterable.error){r=!1,this.dispatch("error",{message:`Unable to read file of size ${this.file.size} bytes. Try loading from another browser.`});return}if(this.success=!!t,this.success&&r&&this.dispatch("success"),!r)return}}};var qr=Object.defineProperty,kt=e=>{throw TypeError(e)},Xr=(e,t)=>{for(var r in t)qr(e,r,{get:t[r],enumerable:!0})},Ct=(e,t,r)=>t.has(e)||kt("Cannot "+r),i=(e,t,r)=>(Ct(e,t,"read from private field"),r?r.call(e):t.get(e)),x=(e,t,r)=>t.has(e)?kt("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),k=(e,t,r,n)=>(Ct(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r),Be={};Xr(Be,{ProgressTypes:()=>q});var q={BAR:"bar",RADIAL:"radial",PERCENTAGE:"percentage"},Fe={"Drop a video file here to upload":"Drop a video file here to upload",or:"or","Upload complete!":"Upload complete!",Retry:"Retry","Pausing...":"Pausing...",Resume:"Resume",Pause:"Pause","Upload a video":"Upload a video","No url or endpoint specified - cannot handle upload":"No url or endpoint specified - cannot handle upload"},Gr={"Drop a video file here to upload":"Arrastra un archivo de video aqu\xED para subir",or:"o","Upload complete!":"\xA1Subida completada!",Retry:"Reintentar","Pausing...":"Pausando...",Resume:"Reanudar",Pause:"Pausar","Upload a video":"Subir un video","No url or endpoint specified - cannot handle upload":"No se especific\xF3 URL o endpoint - no se puede manejar la subida"},Vr={"Drop a video file here to upload":"D\xE9posez un fichier vid\xE9o ici pour le t\xE9l\xE9charger",or:"ou","Upload complete!":"T\xE9l\xE9chargement termin\xE9!",Retry:"R\xE9essayer","Pausing...":"En pause...",Resume:"Reprendre",Pause:"Pause","Upload a video":"T\xE9l\xE9charger une vid\xE9o","No url or endpoint specified - cannot handle upload":"Aucune URL ou point de terminaison sp\xE9cifi\xE9 - impossible de g\xE9rer le t\xE9l\xE9chargement"},Kr={"Drop a video file here to upload":"Legen Sie hier eine Videodatei zum Hochladen ab",or:"oder","Upload complete!":"Upload abgeschlossen!",Retry:"Wiederholen","Pausing...":"Pausiere...",Resume:"Fortsetzen",Pause:"Pausieren","Upload a video":"Video hochladen","No url or endpoint specified - cannot handle upload":"Keine URL oder Endpunkt angegeben - Upload kann nicht verarbeitet werden"},Yr={"Drop a video file here to upload":"Arraste um arquivo de v\xEDdeo aqui para fazer o upload",or:"ou","Upload complete!":"Upload completo!",Retry:"Tentar novamente","Pausing...":"Pausando...",Resume:"Retomar",Pause:"Pausar","Upload a video":"Fazer upload de um v\xEDdeo","No url or endpoint specified - cannot handle upload":"Nenhum URL ou endpoint especificado - n\xE3o \xE9 poss\xEDvel processar o upload"},Zr={"Drop a video file here to upload":"Trascina qui un file video per caricarlo",or:"o","Upload complete!":"Caricamento completato!",Retry:"Riprova","Pausing...":"In pausa...",Resume:"Riprendi",Pause:"Pausa","Upload a video":"Carica un video","No url or endpoint specified - cannot handle upload":"Nessun URL o endpoint specificato - impossibile gestire il caricamento"},Jr={"Drop a video file here to upload":"\u5C06\u89C6\u9891\u6587\u4EF6\u62D6\u653E\u5230\u6B64\u5904\u4EE5\u4E0A\u4F20",or:"\u6216","Upload complete!":"\u4E0A\u4F20\u5B8C\u6210\uFF01",Retry:"\u91CD\u8BD5","Pausing...":"\u6682\u505C...",Resume:"\u7EE7\u7EED",Pause:"\u6682\u505C","Upload a video":"\u4E0A\u4F20\u89C6\u9891","No url or endpoint specified - cannot handle upload":"\u672A\u6307\u5B9A URL \u6216 endpoint - \u65E0\u6CD5\u5904\u7406\u4E0A\u4F20"},Qr={en:Fe,es:Gr,fr:Vr,de:Kr,pt:Yr,it:Zr,zh:Jr},en=()=>typeof globalThis.navigator=="undefined"||!globalThis.navigator.language?"en":globalThis.navigator.language.split("-")[0],yt=["en","es","fr","de","pt","it","zh"],tn=e=>{if(e&&yt.includes(e))return e;let t=en();return yt.includes(t)?t:"en"},T=(e,t)=>{let r=tn(t);return(Qr[r]||Fe)[e]||Fe[e]},xe=class{addEventListener(){}removeEventListener(){}dispatchEvent(e){return!0}};if(typeof DocumentFragment=="undefined"){class e extends xe{}globalThis.DocumentFragment=e}var Ne=class extends xe{},rn=class extends xe{},nn={get(e){},define(e,t,r){},getName(e){return null},upgrade(e){},whenDefined(e){return Promise.resolve(Ne)}},ye,sn=class{constructor(e,t={}){x(this,ye),k(this,ye,t==null?void 0:t.detail)}get detail(){return i(this,ye)}initCustomEvent(){}};ye=new WeakMap;function an(e,t){return new Ne}var Rt={document:{createElement:an},DocumentFragment,customElements:nn,CustomEvent:sn,EventTarget:xe,HTMLElement:Ne,HTMLVideoElement:rn},St=typeof window=="undefined"||typeof globalThis.customElements=="undefined",p=St?Rt:globalThis,L=St?Rt.document:globalThis.document,wt=(e,t)=>e?e.closest(t)||wt(e.getRootNode().host,t):null,j=e=>{let t=e.getAttribute("mux-uploader");return t?document.getElementById(t):wt(e,"mux-uploader")},Mt=L.createElement("template");Mt.innerHTML=` <style> :host { position: relative; box-sizing: border-box; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 2px dashed #ccc; padding: 2.5rem 2rem; border-radius: .25rem; } slot[name='heading'] > * { margin-bottom: 0.75rem; font-size: 1.75rem; text-align: center; } slot[name='separator'] > * { margin-bottom: 0.75rem; } #overlay { display: none; position: absolute; top: 0; bottom: 0; right: 0; left: 0; height: 100%; width: 100%; } :host([active][overlay]) > #overlay { background: var(--overlay-background-color, rgba(226, 253, 255, 0.95)); display: flex; flex-direction: column; justify-content: center; align-items: center; } :host([file-ready])::part(heading), :host([file-ready])::part(separator) { display: none; } </style> <slot name="heading" part="heading"> <span id="drop-text">Drop a video file here to upload</span> </slot> <slot name="separator" part="separator"> <span id="separator-text">or</span> </slot> <slot></slot> <div id="overlay"> <h1 id="overlay-label"></h1> </div> `;var Ie={MUX_UPLOADER:"mux-uploader",OVERLAY_TEXT:"overlay-text"},Ee,R,Q,Et=class extends p.HTMLElement{constructor(){super(),x(this,Ee),x(this,R),x(this,Q);let e=this.attachShadow({mode:"open"});e.appendChild(Mt.content.cloneNode(!0)),k(this,Ee,e.getElementById("overlay-label"))}connectedCallback(){if(k(this,R,j(this)),k(this,Q,new AbortController),i(this,R)){let e={signal:i(this,Q).signal};i(this,R).addEventListener("file-ready",()=>this.toggleAttribute("file-ready",!0),e),i(this,R).addEventListener("uploadstart",()=>this.toggleAttribute("upload-in-progress",!0),e),i(this,R).addEventListener("success",()=>{this.toggleAttribute("upload-in-progress",!1),this.toggleAttribute("upload-complete",!0)},e),i(this,R).addEventListener("reset",()=>{this.toggleAttribute("file-ready",!1),this.toggleAttribute("upload-in-progress",!1),this.toggleAttribute("upload-complete",!1)},e),this.setupDragEvents(e),this.toggleAttribute("upload-in-progress",i(this,R).hasAttribute("upload-in-progress")),this.toggleAttribute("upload-complete",i(this,R).hasAttribute("upload-complete")),this.toggleAttribute("file-ready",i(this,R).hasAttribute("file-ready")),i(this,R).addEventListener("localechange",()=>this.updateText(),e),this.updateText()}}disconnectedCallback(){var e;(e=i(this,Q))==null||e.abort()}attributeChangedCallback(e,t,r){e===Ie.OVERLAY_TEXT&&t!==r?i(this,Ee).innerHTML=r!=null?r:"":e==="active"&&this.hasAttribute("overlay")&&r!=null&&(this._currentDragTarget=this)}static get observedAttributes(){return[Ie.OVERLAY_TEXT,Ie.MUX_UPLOADER,"active"]}setupDragEvents(e){this.addEventListener("dragenter",t=>{this._currentDragTarget=t.target,t.preventDefault(),t.stopPropagation(),this.toggleAttribute("active",!0)},e),this.addEventListener("dragleave",t=>{this._currentDragTarget===t.target&&(this._currentDragTarget=void 0,this.toggleAttribute("active",!1))},e),this.addEventListener("dragover",t=>{t.preventDefault(),t.stopPropagation()},e),this.addEventListener("drop",t=>{var r;t.preventDefault(),t.stopPropagation();let{dataTransfer:n}=t,{files:s}=n,a=s[0];((r=i(this,R))!=null?r:this).dispatchEvent(new CustomEvent("file-ready",{composed:!0,bubbles:!0,detail:a})),this.removeAttribute("active")},e)}updateText(){var e,t,r;let n=(e=i(this,R))==null?void 0:e.locale,s=(t=this.shadowRoot)==null?void 0:t.getElementById("drop-text"),a=(r=this.shadowRoot)==null?void 0:r.getElementById("separator-text");s&&(s.textContent=T("Drop a video file here to upload",n)),a&&(a.textContent=T("or",n))}};Ee=new WeakMap,R=new WeakMap,Q=new WeakMap;p.customElements.get("mux-uploader-drop")||(p.customElements.define("mux-uploader-drop",Et),p.MuxUploaderDropElement=Et);function on(e){return`${Math.floor(e)}%`}var At=L.createElement("template"),ln="Media upload progress bar";At.innerHTML=` <style> :host { width: 100%; display: flex; align-items: center; justify-content: center; flex-direction: column; } .bar-type { background: var(--progress-bar-background-color, #e6e6e6); border-radius: var(--progress-bar-border-radius, 100px); height: var(--progress-bar-height, 4px); width: 100%; } .radial-type, .bar-type, #percentage-type, :host([type="bar"][upload-error]) #percentage-type { display: none; } :host([type="radial"][upload-in-progress]) .radial-type, :host([type="bar"][upload-in-progress]) .bar-type { display: block; } :host([type="percentage"][upload-in-progress]) #percentage-type { display: var(--progress-percentage-display, block); } :host([type="bar"][upload-error]) .progress-bar { background: #e22c3e; } .progress-bar { box-shadow: var(--progress-bar-box-shadow, 0 10px 40px -10px #fff); border-radius: var(--progress-bar-border-radius, 100px); background: var(--progress-bar-fill-color, #000000); height: var(--progress-bar-height, 4px); width: 0%; transition: width 0.25s; } circle { stroke: var(--progress-radial-fill-color, black); stroke-width: 6; /* Thickness of the circle */ fill: transparent; /* Make inside of the circle see-through */ /* Animation */ transition: 0.35s; transform: rotate(-90deg); transform-origin: 50% 50%; -webkit-transform-origin: 50% 50%; -moz-transform-origin: 50% 50%; } #percentage-type { font-size: inherit; margin: 0 0 1em; } </style> <slot></slot> <p id="percentage-type"></p> <div class="bar-type"> <div role="progressbar" aria-valuemin="0" aria-valuemax="100" class="progress-bar" id="progress-bar" tabindex="0"></div> </div> <div class="radial-type"> <svg width="120" height="120"> <!-- To prevent overflow of the SVG wrapper, radius must be (svgWidth / 2) - (circleStrokeWidth * 2) or use overflow: visible on the svg.--> <circle r="52" cx="60" cy="60" /> <svg> </div> `;var P,ee,un=class extends p.HTMLElement{constructor(){var e,t,r,n;super(),x(this,P),x(this,ee),this.onUploadStart=()=>{var s;(s=this.progressBar)==null||s.focus(),this.toggleAttribute("upload-in-progress",!0)},this.onProgress=s=>{var a;let l=s.detail;switch((a=this.progressBar)==null||a.setAttribute("aria-valuenow",`${Math.floor(l)}`),this.getAttribute("type")){case q.BAR:{this.progressBar&&(this.progressBar.style.width=`${l}%`);break}case q.RADIAL:{if(this.svgCircle){let u=this.getCircumference()-l/100*this.getCircumference();this.svgCircle.style.strokeDashoffset=u.toString()}break}case q.PERCENTAGE:{this.uploadPercentage&&(this.uploadPercentage.innerHTML=on(l));break}}},this.onSuccess=()=>{this.toggleAttribute("upload-in-progress",!1),this.toggleAttribute("upload-complete",!0)},this.onReset=()=>{this.toggleAttribute("upload-in-progress",!1),this.uploadPercentage&&(this.uploadPercentage.innerHTML=""),this.svgCircle&&(this.svgCircle.style.strokeDashoffset=`${this.getCircumference()}`)},this.attachShadow({mode:"open"}).appendChild(At.content.cloneNode(!0)),this.svgCircle=(e=this.shadowRoot)==null?void 0:e.querySelector("circle"),this.progressBar=(t=this.shadowRoot)==null?void 0:t.getElementById("progress-bar"),this.uploadPercentage=(r=this.shadowRoot)==null?void 0:r.getElementById("percentage-type"),(n=this.progressBar)==null||n.setAttribute("aria-description",ln)}connectedCallback(){if(this.setDefaultType(),k(this,P,j(this)),k(this,ee,new AbortController),i(this,P)){let e={signal:i(this,ee).signal};i(this,P).addEventListener("uploadstart",this.onUploadStart,e),i(this,P).addEventListener("reset",this.onReset),i(this,P).addEventListener("progress",this.onProgress),i(this,P).addEventListener("success",this.onSuccess),this.toggleAttribute("upload-in-progress",i(this,P).hasAttribute("upload-in-progress")),this.toggleAttribute("upload-complete",i(this,P).hasAttribute("upload-complete"))}}disconnectedCallback(){var e;(e=i(this,ee))==null||e.abort()}getRadius(){var e;return Number((e=this.svgCircle)==null?void 0:e.getAttribute("r"))}getCircumference(){return this.getRadius()*2*Math.PI}setDefaultType(){let e=this.getAttribute("type");e||this.setAttribute("type",q.BAR),e===q.RADIAL&&this.svgCircle&&(this.svgCircle.style.strokeDasharray=`${this.getCircumference()} ${this.getCircumference()}`,this.svgCircle.style.strokeDashoffset=`${this.getCircumference()}`)}};P=new WeakMap,ee=new WeakMap;p.customElements.get("mux-uploader-progress")||p.customElements.define("mux-uploader-progress",un);var Tt=L.createElement("template");Tt.innerHTML=` <style> :host([upload-error]) { color: #e22c3e; } </style> <span id="status-message" role="status" aria-live="polite"></span> `;var E,te,dn=class extends p.HTMLElement{constructor(){var e;super(),x(this,E),x(this,te),this.clearStatusMessage=()=>{this.toggleAttribute("upload-error",!1),this.statusMessage&&(this.statusMessage.innerHTML="")},this.onUploadError=t=>{this.toggleAttribute("upload-error",!0),this.statusMessage&&(this.statusMessage.innerHTML=t.detail.message)},this.onSuccess=()=>{var t;this.toggleAttribute("upload-error",!1);let r=(t=i(this,E))==null?void 0:t.locale,n=T("Upload complete!",r);this.statusMessage&&(this.statusMessage.innerHTML=n),console.info(n)},this.onOffline=()=>{this.toggleAttribute("upload-error",!1);let t="Currently offline. Upload will resume automatically when online.";this.statusMessage&&(this.statusMessage.innerHTML=t)},this.attachShadow({mode:"open"}).appendChild(Tt.content.cloneNode(!0)),this.statusMessage=(e=this.shadowRoot)==null?void 0:e.getElementById("status-message")}connectedCallback(){if(k(this,E,j(this)),k(this,te,new AbortController),i(this,E)){let e={signal:i(this,te).signal};i(this,E).addEventListener("reset",this.clearStatusMessage,e),i(this,E).addEventListener("uploaderror",this.onUploadError,e),i(this,E).addEventListener("success",this.onSuccess,e),i(this,E).addEventListener("uploadstart",this.clearStatusMessage,e),i(this,E).addEventListener("offline",this.onOffline,e),i(this,E).addEventListener("online",this.clearStatusMessage,e),this.toggleAttribute("upload-in-progress",i(this,E).hasAttribute("upload-in-progress")),this.toggleAttribute("upload-complete",i(this,E).hasAttribute("upload-complete")),this.toggleAttribute("upload-error",i(this,E).hasAttribute("upload-error")),i(this,E).addEventListener("localechange",()=>{var t,r,n;if((t=this.statusMessage)!=null&&t.textContent&&(r=i(this,E))!=null&&r.hasAttribute("upload-complete")){let s=(n=i(this,E))==null?void 0:n.locale;this.statusMessage.innerHTML=T("Upload complete!",s)}},e)}}disconnectedCallback(){var e;(e=i(this,te))==null||e.abort()}};E=new WeakMap,te=new WeakMap;p.customElements.get("mux-uploader-status")||p.customElements.define("mux-uploader-status",dn);var Pt=L.createElement("template");Pt.innerHTML=` <style> #retry-button { color: #e22c3e; text-decoration-line: underline; cursor: pointer; position: relative; display: none; } :host([upload-error]) #retry-button { display: inline-block; } </style> <span id="retry-button" role="button" tabindex="0">Try again</span> `;var U,re,pn=class extends p.HTMLElement{constructor(){var e;super(),x(this,U),x(this,re),this.handleKeyup=t=>{let r=["Enter"," "],{key:n}=t;r.includes(n)&&this.triggerReset()},this.triggerReset=()=>{var t;(t=i(this,U))==null||t.dispatchEvent(new CustomEvent("reset"))},this.attachShadow({mode:"open"}).appendChild(Pt.content.cloneNode(!0)),this.retryButton=(e=this.shadowRoot)==null?void 0:e.getElementById("retry-button")}connectedCallback(){var e,t;if(k(this,U,j(this)),k(this,re,new AbortController),i(this,U)){let r={signal:i(this,re).signal};i(this,U).addEventListener("uploaderror",()=>this.toggleAttribute("upload-error",!0)),i(this,U).addEventListener("reset",()=>this.toggleAttribute("upload-error",!1)),(e=this.retryButton)==null||e.addEventListener("click",this.triggerReset,r),(t=this.retryButton)==null||t.addEventListener("keyup",this.handleKeyup,r),this.toggleAttribute("upload-error",i(this,U).hasAttribute("upload-error")),i(this,U).addEventListener("localechange",()=>this.updateText(),r),this.updateText()}}disconnectedCallback(){var e;(e=i(this,re))==null||e.abort()}updateText(){var e;let t=(e=i(this,U))==null?void 0:e.locale;this.retryButton&&(this.retryButton.textContent=T("Retry",t))}};U=new WeakMap,re=new WeakMap;p.customElements.get("mux-uploader-retry")||p.customElements.define("mux-uploader-retry",pn);var Ut=L.createElement("template");Ut.innerHTML=` <style> #pause-button { cursor: pointer; line-height: 16px; background: #fff; border: 1px solid #000; color: #000000; padding: 16px 24px; border-radius: 4px; -webkit-transition: all 0.2s ease; transition: all 0.2s ease; font-family: inherit; font-size: inherit; position: relative; display: none; } #pause-button:hover:not(:disabled) { color: #fff; background: #404040; } #pause-button:active { color: #fff; background: #000; } #pause-button:disabled { cursor: not-allowed; } :host([upload-in-progress]:not([upload-error], [upload-complete])) #pause-button { display: initial; } </style> <button id="pause-button">Pause</span> `;var f,ne,cn=class extends p.HTMLElement{constructor(){super(),x(this,f),x(this,ne),this.triggerPause=()=>{if(!i(this,f)){console.warn("pausing before a mux-uploader element is associated is unsupported!");return}this.pauseButton.disabled||(i(this,f).paused=!i(this,f).paused)},this.attachShadow({mode:"open"}).appendChild(Ut.content.cloneNode(!0))}connectedCallback(){if(k(this,f,j(this)),k(this,ne,new AbortController),i(this,f)){let e={signal:i(this,ne).signal};i(this,f).addEventListener("uploadstart",()=>this.toggleAttribute("upload-in-progress",!0),e),i(this,f).addEventListener("uploaderror",()=>{this.toggleAttribute("upload-error",!0),this.toggleAttribute("upload-complete",!1),this.toggleAttribute("upload-in-progress",!1)}),i(this,f).addEventListener("success",()=>{this.toggleAttribute("upload-complete",!0),this.toggleAttribute("upload-error",!1),this.toggleAttribute("upload-in-progress",!1)}),i(this,f).addEventListener("reset",()=>{this.toggleAttribute("upload-error",!1),this.toggleAttribute("upload-in-progress",!1),this.toggleAttribute("upload-complete",!1)}),i(this,f).addEventListener("pausedchange",()=>{var t;if(this.pauseButton.disabled=!1,!i(this,f))return;let r=(t=i(this,f).paused)!=null?t:!1;this.updateText(),r&&(this.pauseButton.disabled=!0,i(this,f).addEventListener("chunksuccess",()=>{this.updateText(),this.pauseButton.disabled=!1},{once:!0}))}),this.pauseButton.addEventListener("click",this.triggerPause,e),this.toggleAttribute("upload-in-progress",i(this,f).hasAttribute("upload-in-progress")),this.toggleAttribute("upload-complete",i(this,f).hasAttribute("upload-complete")),this.toggleAttribute("upload-error",i(this,f).hasAttribute("upload-error")),i(this,f).addEventListener("localechange",()=>this.updateText(),e),this.updateText()}}disconnectedCallback(){var e;(e=i(this,ne))==null||e.abort()}get pauseButton(){var e;return(e=this.shadowRoot)==null?void 0:e.getElementById("pause-button")}updateText(){var e,t,r,n;let s=(e=i(this,f))==null?void 0:e.locale,a=(r=(t=i(this,f))==null?void 0:t.paused)!=null?r:!1;(n=this.pauseButton)!=null&&n.disabled&&a?this.pauseButton.innerHTML=T("Pausing...",s):this.pauseButton.innerHTML=T(a?"Resume":"Pause",s)}};f=new WeakMap,ne=new WeakMap;p.customElements.get("mux-uploader-pause")||p.customElements.define("mux-uploader-pause",cn);var Lt=` <style> #file-select { cursor: pointer; line-height: 16px; background: #fff; border: 1px solid #000; color: #000000; padding: 16px 24px; border-radius: 4px; -webkit-transition: all 0.2s ease; transition: all 0.2s ease; font-family: inherit; font-size: inherit; position: relative; } #file-select:hover { color: #fff; background: #404040; } #file-select:active { color: #fff; background: #000; } </style> <button id="file-select" type="button" part="file-select-button">Upload a video</button> `,_t=L.createElement("template");_t.innerHTML=` <style> :host { display: inline-block; } :host([file-ready]) > slot { display: none; } </style> <slot> ${Lt} </slot> `;var D,M,se,hn=class extends p.HTMLElement{constructor(){var e,t,r;super(),x(this,D),x(this,M),x(this,se),this.attachShadow({mode:"open"}).appendChild(_t.content.cloneNode(!0)),this.handleFilePickerElClick=this.handleFilePickerElClick.bind(this),this.filePickerEl=(e=this.shadowRoot)==null?void 0:e.querySelector("button"),(r=(t=this.shadowRoot)==null?void 0:t.querySelector("slot"))==null||r.addEventListener("slotchange",n=>{let s=n.currentTarget;this.filePickerEl=s.assignedElements({flatten:!0}).filter(a=>!["STYLE"].includes(a.nodeName))[0],this.updateText()})}connectedCallback(){if(k(this,M,j(this)),k(this,se,new AbortController),i(this,M)){let e={signal:i(this,se).signal};i(this,M).addEventListener("file-ready",()=>{this.toggleAttribute("file-ready",!0)},e),i(this,M).addEventListener("uploadstart",()=>this.toggleAttribute("upload-in-progress",!0),e),i(this,M).addEventListener("success",()=>{this.toggleAttribute("upload-in-progress",!1),this.toggleAttribute("upload-complete",!0)},e),i(this,M).addEventListener("reset",()=>{this.toggleAttribute("file-ready",!1)},e),this.toggleAttribute("upload-in-progress",i(this,M).hasAttribute("upload-in-progress")),this.toggleAttribute("upload-complete",i(this,M).hasAttribute("upload-complete")),this.toggleAttribute("file-ready",i(this,M).hasAttribute("file-ready")),i(this,M).addEventListener("localechange",()=>this.updateText(),e),this.updateText()}}disconnectedCallback(){var e;(e=i(this,se))==null||e.abort()}get filePickerEl(){return i(this,D)}set filePickerEl(e){e!==i(this,D)&&(i(this,D)&&i(this,D).removeEventListener("click",this.handleFilePickerElClick),k(this,D,e),i(this,D)&&i(this,D).addEventListener("click",this.handleFilePickerElClick))}handleFilePickerElClick(){var e,t;let r=this.getAttribute("mux-uploader"),n=r?L.getElementById(r):this.getRootNode().host;(t=(e=n==null?void 0:n.shadowRoot)==null?void 0:e.querySelector("#hidden-file-input"))==null||t.click()}updateText(){var e,t;let r=(e=i(this,M))==null?void 0:e.locale,n=T("Upload a video",r),s=(t=this.shadowRoot)==null?void 0:t.querySelector("#file-select");s&&(s.textContent=n)}};D=new WeakMap,M=new WeakMap,se=new WeakMap;p.customElements.get("mux-uploader-file-select")||p.customElements.define("mux-uploader-file-select",hn);function be(e,t){return e?"":t}var fn=(e,t)=>{if(t==null||t===!1)return"";let r=t===!0?"":`${t}`;return`${e}="${r}"`};function gn(e){let{noDrop:t,noProgress:r,noStatus:n,noRetry:s,pausable:a,type:l}=e,u=t?"div":'mux-uploader-drop ov