31 lines
97 KiB
JavaScript
31 lines
97 KiB
JavaScript
|
(()=>{var pp=Object.create;var Rt=Object.defineProperty,lp=Object.defineProperties,up=Object.getOwnPropertyDescriptor,fp=Object.getOwnPropertyDescriptors,cp=Object.getOwnPropertyNames,ln=Object.getOwnPropertySymbols,dp=Object.getPrototypeOf,un=Object.prototype.hasOwnProperty,mp=Object.prototype.propertyIsEnumerable;var uo=(e,t,r)=>t in e?Rt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,_=(e,t)=>{for(var r in t||(t={}))un.call(t,r)&&uo(e,r,t[r]);if(ln)for(var r of ln(t))mp.call(t,r)&&uo(e,r,t[r]);return e},V=(e,t)=>lp(e,fp(t)),fn=e=>Rt(e,"__esModule",{value:!0});var Jt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),fo=(e,t)=>{fn(e);for(var r in t)Rt(e,r,{get:t[r],enumerable:!0})},hp=(e,t,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of cp(t))!un.call(e,o)&&o!=="default"&&Rt(e,o,{get:()=>t[o],enumerable:!(r=up(t,o))||r.enumerable});return e},Yt=e=>hp(fn(Rt(e!=null?pp(dp(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var d=(e,t,r)=>(uo(e,typeof t!="symbol"?t+"":t,r),r);var fi=Jt((Mj,ui)=>{var wu;ui.exports=wu=function(){function e(t,r,o,n){this.set(t,r,o,n)}return e.prototype.set=function(t,r,o,n){this._cx=3*t,this._bx=3*(o-t)-this._cx,this._ax=1-this._cx-this._bx,this._cy=3*r,this._by=3*(n-r)-this._cy,this._ay=1-this._cy-this._by},e.epsilon=1e-6,e.prototype._sampleCurveX=function(t){return((this._ax*t+this._bx)*t+this._cx)*t},e.prototype._sampleCurveY=function(t){return((this._ay*t+this._by)*t+this._cy)*t},e.prototype._sampleCurveDerivativeX=function(t){return(3*this._ax*t+2*this._bx)*t+this._cx},e.prototype._solveCurveX=function(t,r){var o,n,i,a,s,l;for(i=void 0,a=void 0,s=void 0,l=void 0,o=void 0,n=void 0,s=t,n=0;n<8;){if(l=this._sampleCurveX(s)-t,Math.abs(l)<r)return s;if(o=this._sampleCurveDerivativeX(s),Math.abs(o)<r)break;s=s-l/o,n++}if(i=0,a=1,s=t,s<i)return i;if(s>a)return a;for(;i<a;){if(l=this._sampleCurveX(s),Math.abs(l-t)<r)return s;t>l?i=s:a=s,s=(a-i)*.5+i}return s},e.prototype.solve=function(t,r){return this._sampleCurveY(this._solveCurveX(t,r))},e.prototype.solveSimple=function(t){return this._sampleCurveY(this._solveCurveX(t,1e-6))},e}()});var Ds=Jt((sO,ks)=>{var Br,No;Br=[];No=[];function Zh(e,t,r){var o,n,i,a,s,l,p,u;if(e===t)return 0;if(o=e.length,n=t.length,o===0)return n;if(n===0)return o;for(r&&(e=e.toLowerCase(),t=t.toLowerCase()),p=0;p<o;)No[p]=e.charCodeAt(p),Br[p]=++p;for(u=0;u<n;)for(i=t.charCodeAt(u),a=s=u++,p=-1;++p<o;)l=i===No[p]?s:s+1,s=Br[p],Br[p]=a=s>a?l>a?a+1:l:l>s?s+1:l;return a}ks.exports=Zh});var Vs=Jt((pO,Rs)=>{var Es=Ds();function Qh(){var e,t,r,o,n,i=0,a=arguments[0],s=arguments[1],l=s.length,p=arguments[2];p&&(o=p.threshold,n=p.ignoreCase),o===void 0&&(o=0);for(var u=0;u<l;++u)n?t=Es(a,s[u],!0):t=Es(a,s[u]),t>a.length?e=1-t/s[u].length:e=1-t/a.length,e>i&&(i=e,r=s[u]);return i>=o?r:null}Rs.exports=Qh});var zo=Jt((Aw,Ws)=>{"use strict";Ws.exports=function e(t,r){if(t===r)return!0;if(t&&r&&typeof t=="object"&&typeof r=="object"){if(t.constructor!==r.constructor)return!1;var o,n,i;if(Array.isArray(t)){if(o=t.length,o!=r.length)return!1;for(n=o;n--!=0;)if(!e(t[n],r[n]))return!1;return!0}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();if(i=Object.keys(t),o=i.length,o!==Object.keys(r).length)return!1;for(n=o;n--!=0;)if(!Object.prototype.hasOwnProperty.call(r,i[n]))return!1;for(n=o;n--!=0;){var a=i[n];if(!e(t[a],r[a]))return!1}return!0}return t!==t&&r!==r}});var pn={};fo(pn,{createRafDriver:()=>zt,getProject:()=>ap,notify:()=>pe,onChange:()=>Lr,types:()=>Xr,val:()=>sp});var sn={};fo(sn,{createRafDriver:()=>zt,getProject:()=>ap,notify:()=>pe,onChange:()=>Lr,types:()=>Xr,val:()=>sp});var gp=Array.isArray,$=gp;var yp=typeof window=="object"&&window&&window.Object===Object&&window,Xt=yp;var bp=typeof self=="object"&&self&&self.Object===Object&&self,Pp=Xt||bp||Function("return this")(),N=Pp;var jp=N.Symbol,K=jp;var cn
|
||
|
`));break}case"info":{Ot.debug(t.slice(0,2).join(`
|
||
|
`));break}case"warning":{Ot.warn(t.slice(0,2).join(`
|
||
|
`));break}case"error":}return typeof window!="undefined"?(r=window[Ms])==null?void 0:r.notify[e](...t):void 0},pe={warning:zr("warning"),success:zr("success"),info:zr("info"),error:zr("error")};typeof window!="undefined"&&(window.addEventListener("error",e=>{pe.error("An error occurred",`<pre>${e.message}</pre>
|
||
|
|
||
|
See **console** for details.`)}),window.addEventListener("unhandledrejection",e=>{pe.error("An error occurred",`<pre>${e.reason}</pre>
|
||
|
|
||
|
See **console** for details.`)}));var qr=class{constructor(t,r,o){this._decodedBuffer=t;this._audioContext=r;this._nodeDestination=o;d(this,"_mainGain");d(this,"_state",new I({position:0,playing:!1}));d(this,"statePointer");d(this,"_stopPlayCallback",wt);this.statePointer=this._state.pointer,this._mainGain=this._audioContext.createGain(),this._mainGain.connect(this._nodeDestination)}playDynamicRange(t,r){let o=ne();this._playing&&this.pause(),this._playing=!0;let n,i=()=>{n==null||n(),n=this._loopInRange(t.getValue(),r).stop},a=t.onStale(i);return i(),this._stopPlayCallback=()=>{n==null||n(),a(),o.resolve(!1)},o.promise}_loopInRange(t,r){let o=1,n=this.getCurrentPosition(),i=t[1]-t[0];n<t[0]||n>t[1]?this._updatePositionInState(t[0]):n===t[1]&&this._updatePositionInState(t[0]),n=this.getCurrentPosition();let a=this._audioContext.createBufferSource();a.buffer=this._decodedBuffer,a.connect(this._mainGain),a.playbackRate.value=o,a.loop=!0,a.loopStart=t[0],a.loopEnd=t[1];let s=r.time,l=n-t[0];a.start(0,n);let p=m=>{let P=(Math.max(m-s,0)/1e3*o+l)/i%1*i;this._updatePositionInState(P+t[0]),u()},u=()=>r.onNextTick(p);return r.onThisOrNextTick(p),{stop:()=>{a.stop(),a.disconnect(),r.offThisOrNextTick(p),r.offNextTick(p)}}}get _playing(){return this._state.get().playing}set _playing(t){this._state.setByPointer(r=>r.playing,t)}destroy(){}pause(){this._stopPlayCallback(),this._playing=!1,this._stopPlayCallback=wt}gotoPosition(t){this._updatePositionInState(t)}_updatePositionInState(t){this._state.reduce(r=>V(_({},r),{position:t}))}getCurrentPosition(){return this._state.get().position}play(t,r,o,n,i){this._playing&&this.pause(),this._playing=!0;let a=this.getCurrentPosition(),s=r[1]-r[0];if(n!=="normal")throw new J(`Audio-controlled sequences can only be played in the "normal" direction. '${n}' given.`);a<r[0]||a>r[1]?this._updatePositionInState(r[0]):a===r[1]&&this._updatePositionInState(r[0]),a=this.getCurrentPosition();let l=ne(),p=this._audioContext.createBufferSource();p.buffer=this._decodedBuffer,p.connect(this._mainGain),p.playbackRate.value=o,t>1e3&&(pe.warning("Can't play sequences with audio more than 1000 times",`The sequence will still play, but only 1000 times. The \`iterationCount: ${t}\` provided to \`sequence.play()\`
|
||
|
is too high for a sequence with audio.
|
||
|
|
||
|
To fix this, either set \`iterationCount\` to a lower value, or remove the audio from the sequence.`,[{url:"https://www.theatrejs.com/docs/latest/manual/audio",title:"Using Audio"},{url:"https://www.theatrejs.com/docs/latest/api/core#sequence.attachaudio",title:"Audio API"}]),t=1e3),t>1&&(p.loop=!0,p.loopStart=r[0],p.loopEnd=r[1]);let u=i.time,c=a-r[0],m=s*t;p.start(0,a,m-c);let f=P=>{let x=Math.max(P-u,0)/1e3,O=Math.min(x*o+c,m);if(O!==m){let U=O/s%1*s;this._updatePositionInState(U+r[0]),T()}else this._updatePositionInState(r[1]),this._playing=!1,y(),l.resolve(!0)},y=()=>{p.stop(),p.disconnect()};this._stopPlayCallback=()=>{y(),i.offThisOrNextTick(f),i.offNextTick(f),this._playing&&l.resolve(!1)};let T=()=>i.onNextTick(f);return i.onThisOrNextTick(f),l.promise}};var $s=0;function zt(e){var i;let t=a=>{r.tick(a)},r=new ct({onActive(){var a;(a=e==null?void 0:e.start)==null||a.call(e)},onDormant(){var a;(a=e==null?void 0:e.stop)==null||a.call(e)}}),o={tick:t,id:$s++,name:(i=e==null?void 0:e.name)!=null?i:`CustomRafDriver-${$s}`,type:"Theatre_RafDriver_PublicAPI"},n={type:"Theatre_RafDriver_PrivateAPI",publicApi:o,ticker:r,start:e==null?void 0:e.start,stop:e==null?void 0:e.stop};return ue(o,n),o}function rg(){let e=null,o=zt({name:"DefaultCoreRafDriver",start:()=>{if(typeof window!="undefined"){let n=i=>{o.tick(i),e=window.requestAnimationFrame(n)};e=window.requestAnimationFrame(n)}else o.tick(0),setTimeout(()=>o.tick(1),0)},stop:()=>{typeof window!="undefined"&&e!==null&&window.cancelAnimationFrame(e)}});return o}var Kr;function Lo(){return Kr||og(rg()),Kr}function Wr(){return Lo().ticker}function og(e){if(Kr)throw new Error("`setCoreRafDriver()` is already called.");Kr=v(e)}var Gr=class{get type(){return"Theatre_Sequence_PublicAPI"}constructor(t){ue(this,t)}play(t){let r=v(this);if(r._project.isReady()){let o=(t==null?void 0:t.rafDriver)?v(t.rafDriver).ticker:Wr();return r.play(t!=null?t:{},o)}else{let o=ne();return o.resolve(!0),o.promise}}pause(){v(this).pause()}get position(){return v(this).position}set position(t){v(this).position=t}__experimental_getKeyframes(t){return v(this).getKeyframesOfSimpleProp(t)}async attachAudio(t){let{audioContext:r,destinationNode:o,decodedBuffer:n,gainNode:i}=await ng(t),a=new qr(n,r,i);return v(this).replacePlaybackController(a),{audioContext:r,destinationNode:o,decodedBuffer:n,gainNode:i}}get pointer(){return v(this).pointer}};async function ng(e){function t(){if(e.audioContext)return Promise.resolve(e.audioContext);let p=new AudioContext;return p.state==="running"||typeof window=="undefined"?Promise.resolve(p):new Promise(u=>{let c=()=>{p.resume().catch(y=>{console.error(y)})},m=["mousedown","keydown","touchstart"],f={capture:!0,passive:!1};m.forEach(y=>{window.addEventListener(y,c,f)}),p.addEventListener("statechange",()=>{p.state==="running"&&(m.forEach(y=>{window.removeEventListener(y,c,f)}),u(p))})})}async function r(){if(e.source instanceof AudioBuffer)return e.source;let p=ne();if(typeof e.source!="string")throw new Error("Error validating arguments to sequence.attachAudio(). args.source must either be a string or an instance of AudioBuffer.");let u;try{u=await fetch(e.source)}catch(y){throw console.error(y),new Error(`Could not fetch '${e.source}'. Network error logged above.`)}let c;try{c=await u.arrayBuffer()}catch(y){throw console.error(y),new Error(`Could not read '${e.source}' as an arrayBuffer.`)}(await o).decodeAudioData(c,p.resolve,p.reject);let f;try{f=await p.promise}catch(y){throw console.error(y),new Error(`Could not decode ${e.source} as an audio file.`)}return f}let o=t(),n=r(),[i,a]=await Promise.all([o,n]),s=e.destinationNode||i.destination,l=i.createGain();return l.connect(s),{audioContext:i,decodedBuffer:a,gainNode:l,destinationNode:s}}var BO=Ve("Theatre_Project"),FO=Ve("Theatre_Sheet"),UO=Ve("Theatre_SheetTemplate"),Bs=Ve("Theatre_SheetObject"),zO=Ve("Theatre_SheetObjectTemplate"),qO=Ve("Theatre_Project_PublicAPI"),KO=Ve("Theatre_Sheet_PublicAPI"),WO=Ve("Theatre_SheetObject_PublicAPI");function Ve(e){return t=>typeof t=="object"&&!!t&&t.type===e}var Hr=class
|
||
|
|
||
|
To fix this, make sure you are calling \`sheet.deleteObject("${o}")\` with the correct key.`),console.warn(`Object key "${o}" does not exist.`);return}r.deleteObject(o)}};var Qr=class{constructor(t,r){this.template=t;this.instanceId=r;d(this,"_objects",new I({}));d(this,"_sequence");d(this,"address");d(this,"publicApi");d(this,"project");d(this,"objectsP",this._objects.pointer);d(this,"type","Theatre_Sheet");d(this,"_logger");this._logger=t.project._logger.named("Sheet",r),this._logger._trace("creating sheet"),this.project=t.project,this.address=V(_({},t.address),{sheetInstanceId:this.instanceId}),this.publicApi=new Zr(this)}createObject(t,r,o,n={}){let a=this.template.getObjectTemplate(t,r,o,n).createInstance(this,r,o);return this._objects.setByPointer(s=>s[t],a),a}getObject(t){return this._objects.get()[t]}deleteObject(t){this._objects.reduce(r=>{let o=_({},r);return delete o[t],o})}getSequence(){if(!this._sequence){let t=g(()=>{let o=b(this.project.pointers.historic.sheetsById[this.address.sheetId].sequence.length);return Ig(o)}),r=g(()=>{let o=b(this.project.pointers.historic.sheetsById[this.address.sheetId].sequence.subUnitsPerUnit);return Ag(o)});this._sequence=new Hr(this.template.project,this,t,r)}return this._sequence}},Ig=e=>typeof e=="number"&&isFinite(e)&&e>0?e:10,Ag=e=>typeof e=="number"&&Co(e)&&e>=1&&e<=1e3?e:30;var eo=class{constructor(t,r){this.project=t;d(this,"type","Theatre_SheetTemplate");d(this,"address");d(this,"_instances",new I({}));d(this,"instancesP",this._instances.pointer);d(this,"_objectTemplates",new I({}));d(this,"objectTemplatesP",this._objectTemplates.pointer);this.address=V(_({},t.address),{sheetId:r})}getInstance(t){let r=this._instances.get()[t];return r||(r=new Qr(this,t),this._instances.setByPointer(o=>o[t],r)),r}getObjectTemplate(t,r,o,n){let i=this._objectTemplates.get()[t];return i||(i=new $r(this,t,r,o,n),this._objectTemplates.setByPointer(a=>a[t],i)),i}};var Og=e=>new Promise(t=>setTimeout(t,e)),Gs=Og;function ie(e){for(var t=arguments.length,r=Array(t>1?t-1:0),o=1;o<t;o++)r[o-1]=arguments[o];if(!1)var n,i;throw Error("[Immer] minified error nr: "+e+(r.length?" "+r.map(function(a){return"'"+a+"'"}).join(","):"")+". Find the full error at: https://bit.ly/3cXEKWf")}function Xe(e){return!!e&&!!e[Y]}function Ze(e){return!!e&&(function(t){if(!t||typeof t!="object")return!1;var r=Object.getPrototypeOf(t);if(r===null)return!0;var o=Object.hasOwnProperty.call(r,"constructor")&&r.constructor;return o===Object||typeof o=="function"&&Function.toString.call(o)===Ng}(e)||Array.isArray(e)||!!e[np]||!!e.constructor[np]||Ko(e)||Wo(e))}function Hs(e){return Xe(e)||ie(23,e),e[Y].t}function Gt(e,t,r){r===void 0&&(r=!1),Dt(e)===0?(r?Object.keys:nn)(e).forEach(function(o){r&&typeof o=="symbol"||t(o,e[o],e)}):e.forEach(function(o,n){return t(n,o,e)})}function Dt(e){var t=e[Y];return t?t.i>3?t.i-4:t.i:Array.isArray(e)?1:Ko(e)?2:Wo(e)?3:0}function qo(e,t){return Dt(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function wg(e,t){return Dt(e)===2?e.get(t):e[t]}function Js(e,t,r){var o=Dt(e);o===2?e.set(t,r):o===3?(e.delete(t),e.add(r)):e[t]=r}function Cg(e,t){return e===t?e!==0||1/e==1/t:e!=e&&t!=t}function Ko(e){return Rg&&e instanceof Map}function Wo(e){return Vg&&e instanceof Set}function Qe(e){return e.o||e.t}function Go(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=Lg(e);delete t[Y];for(var r=nn(t),o=0;o<r.length;o++){var n=r[o],i=t[n];i.writable===!1&&(i.writable=!0,i.configurable=!0),(i.get||i.set)&&(t[n]={configurable:!0,writable:!0,enumerable:i.enumerable,value:e[n]})}return Object.create(Object.getPrototypeOf(e),t)}function Ho(e,t){return t===void 0&&(t=!1),Jo(e)||Xe(e)||!Ze(e)||(Dt(e)>1&&(e.set=e.add=e.clear=e.delete=kg),Object.freeze(e),t&&Gt(e,function(r,o){return Ho(o,!0)},!0)),e}function kg(){ie(2)}function Jo(e){return e==null||typeof e!="object"||Object.isFrozen(e)}function Te(e){var t=Mg[e];return t||ie(18,e),t}function Ys(){return Ht}function Yo(e,t){t&&(Te("Patches"),e.u=[],e.s=[],e.v=t)}function to(e){Xo(e),e.p.forEach(Dg),e.p=null}function Xo(e){e===H
|
||
|
|
||
|
To fix this, you need to add @theatre/studio into the bundle and export the project's state. Learn how to do that at https://www.theatrejs.com/docs/latest/manual/projects#state
|
||
|
`)},1e3)}attachToStudio(t){if(this._studio){if(this._studio!==t)throw new Error(`Project ${this.address.projectId} is already attached to studio ${this._studio.address.studioId}`);console.warn(`Project ${this.address.projectId} is already attached to studio ${this._studio.address.studioId}`);return}this._studio=t,t.initialized.then(async()=>{var r;await an(t,this,this.config.state),this._pointerProxies.historic.setPointer(t.atomP.historic.coreByProject[this.address.projectId]),this._pointerProxies.ahistoric.setPointer(t.atomP.ahistoric.coreByProject[this.address.projectId]),this._pointerProxies.ephemeral.setPointer(t.atomP.ephemeral.coreByProject[this.address.projectId]),await t.createAssetStorage(this,(r=this.config.assets)==null?void 0:r.baseUrl).then(o=>{this.assetStorage=o,this._assetStorageReadyDeferred.resolve(void 0)}),this._studioReadyDeferred.resolve(void 0)}).catch(r=>{throw console.error(r),r})}get isAttachedToStudio(){return!!this._studio}get ready(){return this._readyPromise}isReady(){return this._studioReadyDeferred.status==="resolved"&&this._assetStorageReadyDeferred.status==="resolved"}getOrCreateSheet(t,r="default"){let o=this._sheetTemplates.get()[t];return o||(o=new eo(this,t),this._sheetTemplates.reduce(n=>V(_({},n),{[t]:o}))),o.getInstance(r)}};var po=class{get type(){return"Theatre_Project_PublicAPI"}constructor(t,r={}){ue(this,new so(t,r,this))}get ready(){return v(this).ready}get isReady(){return v(this).isReady()}get address(){return _({},v(this).address)}getAssetUrl(t){if(!this.isReady){console.error("Calling `project.getAssetUrl()` before `project.ready` is resolved, will always return `undefined`. Either use `project.ready.then(() => project.getAssetUrl())` or `await project.ready` before calling `project.getAssetUrl()`.");return}return t.id?v(this).assetStorage.getAssetUrl(t.id):void 0}sheet(t,r="default"){let o=Wt(t,"project.sheet");return v(this).getOrCreateSheet(o,r).publicApi}};var NC=Yt(zo());function ap(e,t={}){let r=dt.get(e);if(r)return r.publicApi;let n=ao().named("Project",e);return t.state?(Ug(e,t.state),n._debug("deep validated config.state on disk")):n._debug("no config.state"),new po(e,t)}var Fg=(e,t)=>{if(Array.isArray(t)||t==null||t.definitionVersion!==Et.currentProjectStateDefinitionVersion)throw new J(`Error validating conf.state in Theatre.getProject(${JSON.stringify(e)}, conf). The state seems to be formatted in a way that is unreadable to Theatre.js. Read more at https://www.theatrejs.com/docs/latest/manual/projects#state`)},Ug=(e,t)=>{Fg(e,t)};function Lr(e,t,r){let o=r?v(r).ticker:Wr();if(ae(e))return ke(e).onChange(o,t,!0);if(we(e))return e.onChange(o,t,!0);throw new Error("Called onChange(p) where p is neither a pointer nor a prism.")}function sp(e){if(ae(e))return ke(e).getValue();throw new Error("Called val(p) where p is not a pointer.")}var lo=class{constructor(){d(this,"_studio")}get type(){return"Theatre_CoreBundle"}get version(){return"0.7.0"}getBitsForStudio(t,r){if(this._studio)throw new Error("@theatre/core is already attached to @theatre/studio");this._studio=t;let o={projectsP:dt.atom.pointer.projects,privateAPI:v,coreExports:sn,getCoreRafDriver:Lo};r(o)}};zg();function zg(){if(typeof window=="undefined")return;let e=window[Ur];if(typeof e!="undefined")throw typeof e=="object"&&e&&typeof e.version=="string"?new Error(`It seems that the module '@theatre/core' is loaded more than once. This could have two possible causes:
|
||
|
1. You might have two separate versions of Theatre.js in node_modules.
|
||
|
2. Or this might be a bundling misconfiguration, in case you're using a bundler like Webpack/ESBuild/Rollup.
|
||
|
|
||
|
Note that it **is okay** to import '@theatre/core' multiple times. But those imports should point to the same module.`):new Error(`The variable window.${Ur} seems to be already set by a module other than @theatre/core.`);let t=new lo;window[Ur]=t;let r=window[Ls];r&&r!==null&&r.type==="Theatre_StudioBundle"&&r.registerCoreBundle(t)}window.Theatre={core:pn,get studio(){alert("Theatre.studio is only available in the core-and-studio.js bundle. You're using the core-only.min.js bundle.")}};})();
|
||
|
/**
|
||
|
* @license
|
||
|
* Lodash (Custom Build) <https://lodash.com/>
|
||
|
* Build: `lodash modularize exports="es" -o ./`
|
||
|
* Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
|
||
|
* Released under MIT license <https://lodash.com/license>
|
||
|
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
|
||
|
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
||
|
*/
|
||
|
//# sourceMappingURL=core-only.min.js.map
|