Commit 16fcde72 authored by Master Q's avatar Master Q

init

parents
{
"presets": [
"react"
]
}
\ No newline at end of file
node_modules
{
"compile-hero.disable-compile-files-on-did-save-code": false
}
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>GameStage</title>
<script src="libs/fyge.min.js"></script>
<script src="libs/svgaParser.min.js"></script>
<!-- <script src="//yun.duiba.com.cn/db_games/libs0924/fyge158.min.js" crossorigin="anonymous"></script> -->
<style>
html,
body {
padding: 0;
margin: 0;
border: 0;
width: 100%;
height: 100%;
overflow: hidden;
position: absolute;
background-color: #ffffff;
/* background: linear-gradient(#93dbb7,#ff0,#b5d89a); */
/* background: linear-gradient(#93dbb7,#b5d89a); */
/* 背景图片,解决加载太慢,白屏问题,加了这个下面的__loading__可以删掉了 */
/* background-size: 100%;
background-position: center;
background-image: url("https://yun.duiba.com.cn/db_games/activity/game/1550472986/resource/assets/playscene/playscenebg.jpg"); */
}
</style>
</head>
<body>
<div id="app"></div>
<!-- <div id="__loading__" style="position:absolute;left:50%;top:50%;margin-left:-45px;color:#ffffff">拼命加载中...</div> -->
<div id="cusEngine" style="line-height:0;font-size:0;position: absolute;">
<canvas id="canvas" style="width: 100%;height: 100%"></canvas>
</div>
<script>
window.addEventListener("load", function () {
console.log('Main:')
//获取canvas
var canvas = document.getElementById("canvas");
canvas.width = document.body.clientWidth * (window.devicePixelRatio || 1)
canvas.height = document.body.clientHeight * (window.devicePixelRatio || 1)
var main = new Main(canvas);
var mouseEvent = main.stage.onMouseEvent.bind(main.stage);
canvas.addEventListener("touchstart", mouseEvent, false);
canvas.addEventListener('touchmove', mouseEvent, false);
canvas.addEventListener('touchend', mouseEvent, false);
window.stage = main.stage
})
</script>
<script src="bundle.js"></script>
</body>
</html>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
declare module SvgaParser {
/**
* 加载方法
* @param url 资源路径
* @param success
* @param failure
*/
export function loadSvga(url: string, success: (videoItem: VideoEntity) => void, failure?: (err: string) => void): void;
/**
* 导出只是当作类型接口用
*/
export interface VideoEntity {
/**
* SVGA 文件版本
*/
version: string;
/**
* 影片尺寸
*/
videoSize: {
width: number;
height: number;
};
/**
* 帧率,60,30等每秒
*/
FPS: number;
/**
* 总帧数
*/
frames: number;
/**
* base64图片数据记录
*/
images: {
[key: string]: string
};
/**
* 图片是否已被缓存,缓存全局,注意名字覆盖
*/
hasBeenCached: boolean;
/**
* sprite对象数据
*/
sprites: SpriteEntity[];
}
interface SpriteEntity {
/**
* 标识
*/
matteKey: string;
/**
* 图片key值
*/
imageKey: string;
/**
* 帧数据数组
*/
frames: FrameEntity[];
}
/**
* 还有很多其他数据,暂不需要,比如矢量路径和遮罩路径暂时都无
*/
interface FrameEntity {
/**
* 透明度
*/
alpha: number;
/**
* 2维矩阵数据
*/
transform: {
a: number,
b: number,
c: number,
d: number,
tx: number,
ty: number,
};
}
}
declare module "svga-parser" { export = SvgaParser; }
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
// Type definitions for howler.js v2.1.1
// Project: https://github.com/goldfire/howler.js
// Definitions by: Pedro Casaubon <https://github.com/xperiments>
// Alexander Leon <https://github.com/alien35>
// Nicholas Higgins <https://github.com/nicholashza>
// Carlos Urango <https://github.com/cjurango>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
interface HowlerGlobal {
usingWebAudio: boolean;
html5PoolSize: number;
noAudio: boolean;
autoUnlock: boolean;
autoSuspend: boolean;
ctx: AudioContext;
masterGain: GainNode;
mute(muted: boolean): this;
volume(): number;
volume(volume: number): this;
codecs(ext: string): boolean;
unload(): this;
stereo(pan: number): this;
pos(x: number, y: number, z: number): this | void;
orientation(x: number, y: number, z: number, xUp: number, yUp: number, zUp: number): this | void;
}
declare let Howler: HowlerGlobal;
interface IHowlSoundSpriteDefinition {
[name: string]: [number, number] | [number, number, boolean]
}
interface IHowlProperties {
src: string | string[];
volume?: number;
html5?: boolean;
loop?: boolean;
preload?: boolean;
autoplay?: boolean;
mute?: boolean;
sprite?: IHowlSoundSpriteDefinition;
rate?: number;
pool?: number;
format?: string[] | string;
xhrWithCredentials?: boolean;
onload?: () => void;
onloaderror?: (soundId: number, error: any) => void;
onplay?: (soundId: number) => void;
onplayerror?: (soundId: number, error: any) => void;
onend?: (soundId: number) => void;
onpause?: (soundId: number) => void;
onstop?: (soundId: number) => void;
onmute?: (soundId: number) => void;
onvolume?: (soundId: number) => void;
onrate?: (soundId: number) => void;
onseek?: (soundId: number) => void;
onfade?: (soundId: number) => void;
onunlock?: (soundId: number) => void;
}
interface Howl {
play(spriteOrId?: string | number): number; // .play() is not chainable; the other methods are
pause(id?: number): this;
stop(id?: number): this;
mute(): boolean;
mute(muted: boolean, id?: number): this;
volume(): number;
volume(idOrSetVolume: number): this | number;
volume(volume: number, id: number): this;
fade(from: number, to: number, duration: number, id?: number): this;
rate(): number;
rate(idOrSetRate: number): this | number;
rate(rate: number, id: number): this;
seek(seek?: number, id?: number): this | number;
loop(id?: number): boolean;
loop(loop: boolean, id?: number): this;
playing(id?: number): boolean;
duration(id?: number): number;
state(): 'unloaded' | 'loading' | 'loaded';
load(): this;
unload(): void;
on(event: 'load', callback: () => void, id?: number): this;
on(event: 'loaderror', callback: (soundId: number, error: any) => void, id?: number): this;
on(event: 'play', callback: (soundId: number) => void, id?: number): this;
on(event: 'playerror', callback: (soundId: number, error: any) => void, id?: number): this;
on(event: 'end', callback: (soundId: number) => void, id?: number): this;
on(event: 'pause', callback: (soundId: number) => void, id?: number): this;
on(event: 'stop', callback: (soundId: number) => void, id?: number): this;
on(event: 'mute', callback: (soundId: number) => void, id?: number): this;
on(event: 'volume', callback: (soundId: number) => void, id?: number): this;
on(event: 'rate', callback: (soundId: number) => void, id?: number): this;
on(event: 'seek', callback: (soundId: number) => void, id?: number): this;
on(event: 'fade', callback: (soundId: number) => void, id?: number): this;
on(event: string, callback: Function, id?: number): this;
on(event: 'unlock', callback: (soundId: number) => void, id?: number): this;
once(event: 'load', callback: () => void, id?: number): this;
once(event: 'loaderror', callback: (soundId: number, error: any) => void, id?: number): this;
once(event: 'play', callback: (soundId: number) => void, id?: number): this;
once(event: 'playerror', callback: (soundId: number, error: any) => void, id?: number): this;
once(event: 'end', callback: (soundId: number) => void, id?: number): this;
once(event: 'pause', callback: (soundId: number) => void, id?: number): this;
once(event: 'stop', callback: (soundId: number) => void, id?: number): this;
once(event: 'mute', callback: (soundId: number) => void, id?: number): this;
once(event: 'volume', callback: (soundId: number) => void, id?: number): this;
once(event: 'rate', callback: (soundId: number) => void, id?: number): this;
once(event: 'seek', callback: (soundId: number) => void, id?: number): this;
once(event: 'fade', callback: (soundId: number) => void, id?: number): this;
once(event: string, callback: Function, id?: number): this;
once(event: 'unlock', callback: (soundId: number) => void, id?: number): this;
off(event: string, callback?: Function, id?: number): this;
off(): this;
stereo(pan: number, id?: number): this | void;
pos(x: number, y: number, z: number, id?: number): this | void;
orientation(x: number, y: number, z: number, xUp: number, yUp: number, zUp: number): this | void;
pannerAttr(o: {
coneInnerAngle?: number,
coneOuterAngle?: number, coneOuterGain?: number,
distanceModel: 'inverse' | 'linear', maxDistance: number,
panningModel: 'HRTF' | 'equalpower', refDistance: number, rolloffFactor: number
}, id?: number): this;
}
interface HowlStatic {
new(properties: IHowlProperties): Howl;
}
declare let Howl: HowlStatic;
declare module "howler" {
export let Howler: HowlerGlobal;
export let Howl: HowlStatic;
}
/*! howler.js v2.2.0 | (c) 2013-2020, James Simpson of GoldFire Studios | MIT License | howlerjs.com */
!function(){"use strict";var e=function(){this.init()};e.prototype={init:function(){var e=this||n;return e._counter=1e3,e._html5AudioPool=[],e.html5PoolSize=10,e._codecs={},e._howls=[],e._muted=!1,e._volume=1,e._canPlayEvent="canplaythrough",e._navigator="undefined"!=typeof window&&window.navigator?window.navigator:null,e.masterGain=null,e.noAudio=!1,e.usingWebAudio=!0,e.autoSuspend=!0,e.ctx=null,e.autoUnlock=!0,e._setup(),e},volume:function(e){var o=this||n;if(e=parseFloat(e),o.ctx||_(),void 0!==e&&e>=0&&e<=1){if(o._volume=e,o._muted)return o;o.usingWebAudio&&o.masterGain.gain.setValueAtTime(e,n.ctx.currentTime);for(var t=0;t<o._howls.length;t++)if(!o._howls[t]._webAudio)for(var r=o._howls[t]._getSoundIds(),a=0;a<r.length;a++){var u=o._howls[t]._soundById(r[a]);u&&u._node&&(u._node.volume=u._volume*e)}return o}return o._volume},mute:function(e){var o=this||n;o.ctx||_(),o._muted=e,o.usingWebAudio&&o.masterGain.gain.setValueAtTime(e?0:o._volume,n.ctx.currentTime);for(var t=0;t<o._howls.length;t++)if(!o._howls[t]._webAudio)for(var r=o._howls[t]._getSoundIds(),a=0;a<r.length;a++){var u=o._howls[t]._soundById(r[a]);u&&u._node&&(u._node.muted=!!e||u._muted)}return o},stop:function(){for(var e=this||n,o=0;o<e._howls.length;o++)e._howls[o].stop();return e},unload:function(){for(var e=this||n,o=e._howls.length-1;o>=0;o--)e._howls[o].unload();return e.usingWebAudio&&e.ctx&&void 0!==e.ctx.close&&(e.ctx.close(),e.ctx=null,_()),e},codecs:function(e){return(this||n)._codecs[e.replace(/^x-/,"")]},_setup:function(){var e=this||n;if(e.state=e.ctx?e.ctx.state||"suspended":"suspended",e._autoSuspend(),!e.usingWebAudio)if("undefined"!=typeof Audio)try{var o=new Audio;void 0===o.oncanplaythrough&&(e._canPlayEvent="canplay")}catch(n){e.noAudio=!0}else e.noAudio=!0;try{var o=new Audio;o.muted&&(e.noAudio=!0)}catch(e){}return e.noAudio||e._setupCodecs(),e},_setupCodecs:function(){var e=this||n,o=null;try{o="undefined"!=typeof Audio?new Audio:null}catch(n){return e}if(!o||"function"!=typeof o.canPlayType)return e;var t=o.canPlayType("audio/mpeg;").replace(/^no$/,""),r=e._navigator&&e._navigator.userAgent.match(/OPR\/([0-6].)/g),a=r&&parseInt(r[0].split("/")[1],10)<33;return e._codecs={mp3:!(a||!t&&!o.canPlayType("audio/mp3;").replace(/^no$/,"")),mpeg:!!t,opus:!!o.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!o.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!o.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!o.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),aac:!!o.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!o.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(o.canPlayType("audio/x-m4a;")||o.canPlayType("audio/m4a;")||o.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(o.canPlayType("audio/x-m4b;")||o.canPlayType("audio/m4b;")||o.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(o.canPlayType("audio/x-mp4;")||o.canPlayType("audio/mp4;")||o.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!o.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,""),webm:!!o.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,""),dolby:!!o.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(o.canPlayType("audio/x-flac;")||o.canPlayType("audio/flac;")).replace(/^no$/,"")},e},_unlockAudio:function(){var e=this||n;if(!e._audioUnlocked&&e.ctx){e._audioUnlocked=!1,e.autoUnlock=!1,e._mobileUnloaded||44100===e.ctx.sampleRate||(e._mobileUnloaded=!0,e.unload()),e._scratchBuffer=e.ctx.createBuffer(1,1,22050);var o=function(n){for(;e._html5AudioPool.length<e.html5PoolSize;)try{var t=new Audio;t._unlocked=!0,e._releaseHtml5Audio(t)}catch(n){e.noAudio=!0;break}for(var r=0;r<e._howls.length;r++)if(!e._howls[r]._webAudio)for(var a=e._howls[r]._getSoundIds(),u=0;u<a.length;u++){var i=e._howls[r]._soundById(a[u]);i&&i._node&&!i._node._unlocked&&(i._node._unlocked=!0,i._node.load())}e._autoResume();var d=e.ctx.createBufferSource();d.buffer=e._scratchBuffer,d.connect(e.ctx.destination),void 0===d.start?d.noteOn(0):d.start(0),"function"==typeof e.ctx.resume&&e.ctx.resume(),d.onended=function(){d.disconnect(0),e._audioUnlocked=!0,document.removeEventListener("touchstart",o,!0),document.removeEventListener("touchend",o,!0),document.removeEventListener("click",o,!0);for(var n=0;n<e._howls.length;n++)e._howls[n]._emit("unlock")}};return document.addEventListener("touchstart",o,!0),document.addEventListener("touchend",o,!0),document.addEventListener("click",o,!0),e}},_obtainHtml5Audio:function(){var e=this||n;if(e._html5AudioPool.length)return e._html5AudioPool.pop();var o=(new Audio).play();return o&&"undefined"!=typeof Promise&&(o instanceof Promise||"function"==typeof o.then)&&o.catch(function(){console.warn("HTML5 Audio pool exhausted, returning potentially locked audio object.")}),new Audio},_releaseHtml5Audio:function(e){var o=this||n;return e._unlocked&&o._html5AudioPool.push(e),o},_autoSuspend:function(){var e=this;if(e.autoSuspend&&e.ctx&&void 0!==e.ctx.suspend&&n.usingWebAudio){for(var o=0;o<e._howls.length;o++)if(e._howls[o]._webAudio)for(var t=0;t<e._howls[o]._sounds.length;t++)if(!e._howls[o]._sounds[t]._paused)return e;return e._suspendTimer&&clearTimeout(e._suspendTimer),e._suspendTimer=setTimeout(function(){if(e.autoSuspend){e._suspendTimer=null,e.state="suspending";var n=function(){e.state="suspended",e._resumeAfterSuspend&&(delete e._resumeAfterSuspend,e._autoResume())};e.ctx.suspend().then(n,n)}},3e4),e}},_autoResume:function(){var e=this;if(e.ctx&&void 0!==e.ctx.resume&&n.usingWebAudio)return"running"===e.state&&"interrupted"!==e.ctx.state&&e._suspendTimer?(clearTimeout(e._suspendTimer),e._suspendTimer=null):"suspended"===e.state||"running"===e.state&&"interrupted"===e.ctx.state?(e.ctx.resume().then(function(){e.state="running";for(var n=0;n<e._howls.length;n++)e._howls[n]._emit("resume")}),e._suspendTimer&&(clearTimeout(e._suspendTimer),e._suspendTimer=null)):"suspending"===e.state&&(e._resumeAfterSuspend=!0),e}};var n=new e,o=function(e){var n=this;if(!e.src||0===e.src.length)return void console.error("An array of source files must be passed with any new Howl.");n.init(e)};o.prototype={init:function(e){var o=this;return n.ctx||_(),o._autoplay=e.autoplay||!1,o._format="string"!=typeof e.format?e.format:[e.format],o._html5=e.html5||!1,o._muted=e.mute||!1,o._loop=e.loop||!1,o._pool=e.pool||5,o._preload="boolean"!=typeof e.preload&&"metadata"!==e.preload||e.preload,o._rate=e.rate||1,o._sprite=e.sprite||{},o._src="string"!=typeof e.src?e.src:[e.src],o._volume=void 0!==e.volume?e.volume:1,o._xhr={method:e.xhr&&e.xhr.method?e.xhr.method:"GET",headers:e.xhr&&e.xhr.headers?e.xhr.headers:null,withCredentials:!(!e.xhr||!e.xhr.withCredentials)&&e.xhr.withCredentials},o._duration=0,o._state="unloaded",o._sounds=[],o._endTimers={},o._queue=[],o._playLock=!1,o._onend=e.onend?[{fn:e.onend}]:[],o._onfade=e.onfade?[{fn:e.onfade}]:[],o._onload=e.onload?[{fn:e.onload}]:[],o._onloaderror=e.onloaderror?[{fn:e.onloaderror}]:[],o._onplayerror=e.onplayerror?[{fn:e.onplayerror}]:[],o._onpause=e.onpause?[{fn:e.onpause}]:[],o._onplay=e.onplay?[{fn:e.onplay}]:[],o._onstop=e.onstop?[{fn:e.onstop}]:[],o._onmute=e.onmute?[{fn:e.onmute}]:[],o._onvolume=e.onvolume?[{fn:e.onvolume}]:[],o._onrate=e.onrate?[{fn:e.onrate}]:[],o._onseek=e.onseek?[{fn:e.onseek}]:[],o._onunlock=e.onunlock?[{fn:e.onunlock}]:[],o._onresume=[],o._webAudio=n.usingWebAudio&&!o._html5,void 0!==n.ctx&&n.ctx&&n.autoUnlock&&n._unlockAudio(),n._howls.push(o),o._autoplay&&o._queue.push({event:"play",action:function(){o.play()}}),o._preload&&"none"!==o._preload&&o.load(),o},load:function(){var e=this,o=null;if(n.noAudio)return void e._emit("loaderror",null,"No audio support.");"string"==typeof e._src&&(e._src=[e._src]);for(var r=0;r<e._src.length;r++){var u,i;if(e._format&&e._format[r])u=e._format[r];else{if("string"!=typeof(i=e._src[r])){e._emit("loaderror",null,"Non-string found in selected audio sources - ignoring.");continue}u=/^data:audio\/([^;,]+);/i.exec(i),u||(u=/\.([^.]+)$/.exec(i.split("?",1)[0])),u&&(u=u[1].toLowerCase())}if(u||console.warn('No file extension was found. Consider using the "format" property or specify an extension.'),u&&n.codecs(u)){o=e._src[r];break}}return o?(e._src=o,e._state="loading","https:"===window.location.protocol&&"http:"===o.slice(0,5)&&(e._html5=!0,e._webAudio=!1),new t(e),e._webAudio&&a(e),e):void e._emit("loaderror",null,"No codec support for selected audio sources.")},play:function(e,o){var t=this,r=null;if("number"==typeof e)r=e,e=null;else{if("string"==typeof e&&"loaded"===t._state&&!t._sprite[e])return null;if(void 0===e&&(e="__default",!t._playLock)){for(var a=0,u=0;u<t._sounds.length;u++)t._sounds[u]._paused&&!t._sounds[u]._ended&&(a++,r=t._sounds[u]._id);1===a?e=null:r=null}}var i=r?t._soundById(r):t._inactiveSound();if(!i)return null;if(r&&!e&&(e=i._sprite||"__default"),"loaded"!==t._state){i._sprite=e,i._ended=!1;var d=i._id;return t._queue.push({event:"play",action:function(){t.play(d)}}),d}if(r&&!i._paused)return o||t._loadQueue("play"),i._id;t._webAudio&&n._autoResume();var _=Math.max(0,i._seek>0?i._seek:t._sprite[e][0]/1e3),s=Math.max(0,(t._sprite[e][0]+t._sprite[e][1])/1e3-_),l=1e3*s/Math.abs(i._rate),c=t._sprite[e][0]/1e3,f=(t._sprite[e][0]+t._sprite[e][1])/1e3;i._sprite=e,i._ended=!1;var p=function(){i._paused=!1,i._seek=_,i._start=c,i._stop=f,i._loop=!(!i._loop&&!t._sprite[e][2])};if(_>=f)return void t._ended(i);var m=i._node;if(t._webAudio){var v=function(){t._playLock=!1,p(),t._refreshBuffer(i);var e=i._muted||t._muted?0:i._volume;m.gain.setValueAtTime(e,n.ctx.currentTime),i._playStart=n.ctx.currentTime,void 0===m.bufferSource.start?i._loop?m.bufferSource.noteGrainOn(0,_,86400):m.bufferSource.noteGrainOn(0,_,s):i._loop?m.bufferSource.start(0,_,86400):m.bufferSource.start(0,_,s),l!==1/0&&(t._endTimers[i._id]=setTimeout(t._ended.bind(t,i),l)),o||setTimeout(function(){t._emit("play",i._id),t._loadQueue()},0)};"running"===n.state&&"interrupted"!==n.ctx.state?v():(t._playLock=!0,t.once("resume",v),t._clearTimer(i._id))}else{var h=function(){m.currentTime=_,m.muted=i._muted||t._muted||n._muted||m.muted,m.volume=i._volume*n.volume(),m.playbackRate=i._rate;try{var r=m.play();if(r&&"undefined"!=typeof Promise&&(r instanceof Promise||"function"==typeof r.then)?(t._playLock=!0,p(),r.then(function(){t._playLock=!1,m._unlocked=!0,o||(t._emit("play",i._id),t._loadQueue())}).catch(function(){t._playLock=!1,t._emit("playerror",i._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),i._ended=!0,i._paused=!0})):o||(t._playLock=!1,p(),t._emit("play",i._id),t._loadQueue()),m.playbackRate=i._rate,m.paused)return void t._emit("playerror",i._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");"__default"!==e||i._loop?t._endTimers[i._id]=setTimeout(t._ended.bind(t,i),l):(t._endTimers[i._id]=function(){t._ended(i),m.removeEventListener("ended",t._endTimers[i._id],!1)},m.addEventListener("ended",t._endTimers[i._id],!1))}catch(e){t._emit("playerror",i._id,e)}};"data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"===m.src&&(m.src=t._src,m.load());var y=window&&window.ejecta||!m.readyState&&n._navigator.isCocoonJS;if(m.readyState>=3||y)h();else{t._playLock=!0;var g=function(){h(),m.removeEventListener(n._canPlayEvent,g,!1)};m.addEventListener(n._canPlayEvent,g,!1),t._clearTimer(i._id)}}return i._id},pause:function(e){var n=this;if("loaded"!==n._state||n._playLock)return n._queue.push({event:"pause",action:function(){n.pause(e)}}),n;for(var o=n._getSoundIds(e),t=0;t<o.length;t++){n._clearTimer(o[t]);var r=n._soundById(o[t]);if(r&&!r._paused&&(r._seek=n.seek(o[t]),r._rateSeek=0,r._paused=!0,n._stopFade(o[t]),r._node))if(n._webAudio){if(!r._node.bufferSource)continue;void 0===r._node.bufferSource.stop?r._node.bufferSource.noteOff(0):r._node.bufferSource.stop(0),n._cleanBuffer(r._node)}else isNaN(r._node.duration)&&r._node.duration!==1/0||r._node.pause();arguments[1]||n._emit("pause",r?r._id:null)}return n},stop:function(e,n){var o=this;if("loaded"!==o._state||o._playLock)return o._queue.push({event:"stop",action:function(){o.stop(e)}}),o;for(var t=o._getSoundIds(e),r=0;r<t.length;r++){o._clearTimer(t[r]);var a=o._soundById(t[r]);a&&(a._seek=a._start||0,a._rateSeek=0,a._paused=!0,a._ended=!0,o._stopFade(t[r]),a._node&&(o._webAudio?a._node.bufferSource&&(void 0===a._node.bufferSource.stop?a._node.bufferSource.noteOff(0):a._node.bufferSource.stop(0),o._cleanBuffer(a._node)):isNaN(a._node.duration)&&a._node.duration!==1/0||(a._node.currentTime=a._start||0,a._node.pause(),a._node.duration===1/0&&o._clearSound(a._node))),n||o._emit("stop",a._id))}return o},mute:function(e,o){var t=this;if("loaded"!==t._state||t._playLock)return t._queue.push({event:"mute",action:function(){t.mute(e,o)}}),t;if(void 0===o){if("boolean"!=typeof e)return t._muted;t._muted=e}for(var r=t._getSoundIds(o),a=0;a<r.length;a++){var u=t._soundById(r[a]);u&&(u._muted=e,u._interval&&t._stopFade(u._id),t._webAudio&&u._node?u._node.gain.setValueAtTime(e?0:u._volume,n.ctx.currentTime):u._node&&(u._node.muted=!!n._muted||e),t._emit("mute",u._id))}return t},volume:function(){var e,o,t=this,r=arguments;if(0===r.length)return t._volume;if(1===r.length||2===r.length&&void 0===r[1]){t._getSoundIds().indexOf(r[0])>=0?o=parseInt(r[0],10):e=parseFloat(r[0])}else r.length>=2&&(e=parseFloat(r[0]),o=parseInt(r[1],10));var a;if(!(void 0!==e&&e>=0&&e<=1))return a=o?t._soundById(o):t._sounds[0],a?a._volume:0;if("loaded"!==t._state||t._playLock)return t._queue.push({event:"volume",action:function(){t.volume.apply(t,r)}}),t;void 0===o&&(t._volume=e),o=t._getSoundIds(o);for(var u=0;u<o.length;u++)(a=t._soundById(o[u]))&&(a._volume=e,r[2]||t._stopFade(o[u]),t._webAudio&&a._node&&!a._muted?a._node.gain.setValueAtTime(e,n.ctx.currentTime):a._node&&!a._muted&&(a._node.volume=e*n.volume()),t._emit("volume",a._id));return t},fade:function(e,o,t,r){var a=this;if("loaded"!==a._state||a._playLock)return a._queue.push({event:"fade",action:function(){a.fade(e,o,t,r)}}),a;e=Math.min(Math.max(0,parseFloat(e)),1),o=Math.min(Math.max(0,parseFloat(o)),1),t=parseFloat(t),a.volume(e,r);for(var u=a._getSoundIds(r),i=0;i<u.length;i++){var d=a._soundById(u[i]);if(d){if(r||a._stopFade(u[i]),a._webAudio&&!d._muted){var _=n.ctx.currentTime,s=_+t/1e3;d._volume=e,d._node.gain.setValueAtTime(e,_),d._node.gain.linearRampToValueAtTime(o,s)}a._startFadeInterval(d,e,o,t,u[i],void 0===r)}}return a},_startFadeInterval:function(e,n,o,t,r,a){var u=this,i=n,d=o-n,_=Math.abs(d/.01),s=Math.max(4,_>0?t/_:t),l=Date.now();e._fadeTo=o,e._interval=setInterval(function(){var r=(Date.now()-l)/t;l=Date.now(),i+=d*r,i=d<0?Math.max(o,i):Math.min(o,i),i=Math.round(100*i)/100,u._webAudio?e._volume=i:u.volume(i,e._id,!0),a&&(u._volume=i),(o<n&&i<=o||o>n&&i>=o)&&(clearInterval(e._interval),e._interval=null,e._fadeTo=null,u.volume(o,e._id),u._emit("fade",e._id))},s)},_stopFade:function(e){var o=this,t=o._soundById(e);return t&&t._interval&&(o._webAudio&&t._node.gain.cancelScheduledValues(n.ctx.currentTime),clearInterval(t._interval),t._interval=null,o.volume(t._fadeTo,e),t._fadeTo=null,o._emit("fade",e)),o},loop:function(){var e,n,o,t=this,r=arguments;if(0===r.length)return t._loop;if(1===r.length){if("boolean"!=typeof r[0])return!!(o=t._soundById(parseInt(r[0],10)))&&o._loop;e=r[0],t._loop=e}else 2===r.length&&(e=r[0],n=parseInt(r[1],10));for(var a=t._getSoundIds(n),u=0;u<a.length;u++)(o=t._soundById(a[u]))&&(o._loop=e,t._webAudio&&o._node&&o._node.bufferSource&&(o._node.bufferSource.loop=e,e&&(o._node.bufferSource.loopStart=o._start||0,o._node.bufferSource.loopEnd=o._stop)));return t},rate:function(){var e,o,t=this,r=arguments;if(0===r.length)o=t._sounds[0]._id;else if(1===r.length){var a=t._getSoundIds(),u=a.indexOf(r[0]);u>=0?o=parseInt(r[0],10):e=parseFloat(r[0])}else 2===r.length&&(e=parseFloat(r[0]),o=parseInt(r[1],10));var i;if("number"!=typeof e)return i=t._soundById(o),i?i._rate:t._rate;if("loaded"!==t._state||t._playLock)return t._queue.push({event:"rate",action:function(){t.rate.apply(t,r)}}),t;void 0===o&&(t._rate=e),o=t._getSoundIds(o);for(var d=0;d<o.length;d++)if(i=t._soundById(o[d])){t.playing(o[d])&&(i._rateSeek=t.seek(o[d]),i._playStart=t._webAudio?n.ctx.currentTime:i._playStart),i._rate=e,t._webAudio&&i._node&&i._node.bufferSource?i._node.bufferSource.playbackRate.setValueAtTime(e,n.ctx.currentTime):i._node&&(i._node.playbackRate=e);var _=t.seek(o[d]),s=(t._sprite[i._sprite][0]+t._sprite[i._sprite][1])/1e3-_,l=1e3*s/Math.abs(i._rate);!t._endTimers[o[d]]&&i._paused||(t._clearTimer(o[d]),t._endTimers[o[d]]=setTimeout(t._ended.bind(t,i),l)),t._emit("rate",i._id)}return t},seek:function(){var e,o,t=this,r=arguments;if(0===r.length)o=t._sounds[0]._id;else if(1===r.length){var a=t._getSoundIds(),u=a.indexOf(r[0]);u>=0?o=parseInt(r[0],10):t._sounds.length&&(o=t._sounds[0]._id,e=parseFloat(r[0]))}else 2===r.length&&(e=parseFloat(r[0]),o=parseInt(r[1],10));if(void 0===o)return t;if("loaded"!==t._state||t._playLock)return t._queue.push({event:"seek",action:function(){t.seek.apply(t,r)}}),t;var i=t._soundById(o);if(i){if(!("number"==typeof e&&e>=0)){if(t._webAudio){var d=t.playing(o)?n.ctx.currentTime-i._playStart:0,_=i._rateSeek?i._rateSeek-i._seek:0;return i._seek+(_+d*Math.abs(i._rate))}return i._node.currentTime}var s=t.playing(o);s&&t.pause(o,!0),i._seek=e,i._ended=!1,t._clearTimer(o),t._webAudio||!i._node||isNaN(i._node.duration)||(i._node.currentTime=e);var l=function(){t._emit("seek",o),s&&t.play(o,!0)};if(s&&!t._webAudio){var c=function(){t._playLock?setTimeout(c,0):l()};setTimeout(c,0)}else l()}return t},playing:function(e){var n=this;if("number"==typeof e){var o=n._soundById(e);return!!o&&!o._paused}for(var t=0;t<n._sounds.length;t++)if(!n._sounds[t]._paused)return!0;return!1},duration:function(e){var n=this,o=n._duration,t=n._soundById(e);return t&&(o=n._sprite[t._sprite][1]/1e3),o},state:function(){return this._state},unload:function(){for(var e=this,o=e._sounds,t=0;t<o.length;t++)o[t]._paused||e.stop(o[t]._id),e._webAudio||(e._clearSound(o[t]._node),o[t]._node.removeEventListener("error",o[t]._errorFn,!1),o[t]._node.removeEventListener(n._canPlayEvent,o[t]._loadFn,!1),n._releaseHtml5Audio(o[t]._node)),delete o[t]._node,e._clearTimer(o[t]._id);var a=n._howls.indexOf(e);a>=0&&n._howls.splice(a,1);var u=!0;for(t=0;t<n._howls.length;t++)if(n._howls[t]._src===e._src||e._src.indexOf(n._howls[t]._src)>=0){u=!1;break}return r&&u&&delete r[e._src],n.noAudio=!1,e._state="unloaded",e._sounds=[],e=null,null},on:function(e,n,o,t){var r=this,a=r["_on"+e];return"function"==typeof n&&a.push(t?{id:o,fn:n,once:t}:{id:o,fn:n}),r},off:function(e,n,o){var t=this,r=t["_on"+e],a=0;if("number"==typeof n&&(o=n,n=null),n||o)for(a=0;a<r.length;a++){var u=o===r[a].id;if(n===r[a].fn&&u||!n&&u){r.splice(a,1);break}}else if(e)t["_on"+e]=[];else{var i=Object.keys(t);for(a=0;a<i.length;a++)0===i[a].indexOf("_on")&&Array.isArray(t[i[a]])&&(t[i[a]]=[])}return t},once:function(e,n,o){var t=this;return t.on(e,n,o,1),t},_emit:function(e,n,o){for(var t=this,r=t["_on"+e],a=r.length-1;a>=0;a--)r[a].id&&r[a].id!==n&&"load"!==e||(setTimeout(function(e){e.call(this,n,o)}.bind(t,r[a].fn),0),r[a].once&&t.off(e,r[a].fn,r[a].id));return t._loadQueue(e),t},_loadQueue:function(e){var n=this;if(n._queue.length>0){var o=n._queue[0];o.event===e&&(n._queue.shift(),n._loadQueue()),e||o.action()}return n},_ended:function(e){var o=this,t=e._sprite;if(!o._webAudio&&e._node&&!e._node.paused&&!e._node.ended&&e._node.currentTime<e._stop)return setTimeout(o._ended.bind(o,e),100),o;var r=!(!e._loop&&!o._sprite[t][2]);if(o._emit("end",e._id),!o._webAudio&&r&&o.stop(e._id,!0).play(e._id),o._webAudio&&r){o._emit("play",e._id),e._seek=e._start||0,e._rateSeek=0,e._playStart=n.ctx.currentTime;var a=1e3*(e._stop-e._start)/Math.abs(e._rate);o._endTimers[e._id]=setTimeout(o._ended.bind(o,e),a)}return o._webAudio&&!r&&(e._paused=!0,e._ended=!0,e._seek=e._start||0,e._rateSeek=0,o._clearTimer(e._id),o._cleanBuffer(e._node),n._autoSuspend()),o._webAudio||r||o.stop(e._id,!0),o},_clearTimer:function(e){var n=this;if(n._endTimers[e]){if("function"!=typeof n._endTimers[e])clearTimeout(n._endTimers[e]);else{var o=n._soundById(e);o&&o._node&&o._node.removeEventListener("ended",n._endTimers[e],!1)}delete n._endTimers[e]}return n},_soundById:function(e){for(var n=this,o=0;o<n._sounds.length;o++)if(e===n._sounds[o]._id)return n._sounds[o];return null},_inactiveSound:function(){var e=this;e._drain();for(var n=0;n<e._sounds.length;n++)if(e._sounds[n]._ended)return e._sounds[n].reset();return new t(e)},_drain:function(){var e=this,n=e._pool,o=0,t=0;if(!(e._sounds.length<n)){for(t=0;t<e._sounds.length;t++)e._sounds[t]._ended&&o++;for(t=e._sounds.length-1;t>=0;t--){if(o<=n)return;e._sounds[t]._ended&&(e._webAudio&&e._sounds[t]._node&&e._sounds[t]._node.disconnect(0),e._sounds.splice(t,1),o--)}}},_getSoundIds:function(e){var n=this;if(void 0===e){for(var o=[],t=0;t<n._sounds.length;t++)o.push(n._sounds[t]._id);return o}return[e]},_refreshBuffer:function(e){var o=this;return e._node.bufferSource=n.ctx.createBufferSource(),e._node.bufferSource.buffer=r[o._src],e._panner?e._node.bufferSource.connect(e._panner):e._node.bufferSource.connect(e._node),e._node.bufferSource.loop=e._loop,e._loop&&(e._node.bufferSource.loopStart=e._start||0,e._node.bufferSource.loopEnd=e._stop||0),e._node.bufferSource.playbackRate.setValueAtTime(e._rate,n.ctx.currentTime),o},_cleanBuffer:function(e){var o=this,t=n._navigator&&n._navigator.vendor.indexOf("Apple")>=0;if(n._scratchBuffer&&e.bufferSource&&(e.bufferSource.onended=null,e.bufferSource.disconnect(0),t))try{e.bufferSource.buffer=n._scratchBuffer}catch(e){}return e.bufferSource=null,o},_clearSound:function(e){/MSIE |Trident\//.test(n._navigator&&n._navigator.userAgent)||(e.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var t=function(e){this._parent=e,this.init()};t.prototype={init:function(){var e=this,o=e._parent;return e._muted=o._muted,e._loop=o._loop,e._volume=o._volume,e._rate=o._rate,e._seek=0,e._paused=!0,e._ended=!0,e._sprite="__default",e._id=++n._counter,o._sounds.push(e),e.create(),e},create:function(){var e=this,o=e._parent,t=n._muted||e._muted||e._parent._muted?0:e._volume;return o._webAudio?(e._node=void 0===n.ctx.createGain?n.ctx.createGainNode():n.ctx.createGain(),e._node.gain.setValueAtTime(t,n.ctx.currentTime),e._node.paused=!0,e._node.connect(n.masterGain)):n.noAudio||(e._node=n._obtainHtml5Audio(),e._errorFn=e._errorListener.bind(e),e._node.addEventListener("error",e._errorFn,!1),e._loadFn=e._loadListener.bind(e),e._node.addEventListener(n._canPlayEvent,e._loadFn,!1),e._node.src=o._src,e._node.preload=!0===o._preload?"auto":o._preload,e._node.volume=t*n.volume(),e._node.load()),e},reset:function(){var e=this,o=e._parent;return e._muted=o._muted,e._loop=o._loop,e._volume=o._volume,e._rate=o._rate,e._seek=0,e._rateSeek=0,e._paused=!0,e._ended=!0,e._sprite="__default",e._id=++n._counter,e},_errorListener:function(){var e=this;e._parent._emit("loaderror",e._id,e._node.error?e._node.error.code:0),e._node.removeEventListener("error",e._errorFn,!1)},_loadListener:function(){var e=this,o=e._parent;o._duration=Math.ceil(10*e._node.duration)/10,0===Object.keys(o._sprite).length&&(o._sprite={__default:[0,1e3*o._duration]}),"loaded"!==o._state&&(o._state="loaded",o._emit("load"),o._loadQueue()),e._node.removeEventListener(n._canPlayEvent,e._loadFn,!1)}};var r={},a=function(e){var n=e._src;if(r[n])return e._duration=r[n].duration,void d(e);if(/^data:[^;]+;base64,/.test(n)){for(var o=atob(n.split(",")[1]),t=new Uint8Array(o.length),a=0;a<o.length;++a)t[a]=o.charCodeAt(a);i(t.buffer,e)}else{var _=new XMLHttpRequest;_.open(e._xhr.method,n,!0),_.withCredentials=e._xhr.withCredentials,_.responseType="arraybuffer",e._xhr.headers&&Object.keys(e._xhr.headers).forEach(function(n){_.setRequestHeader(n,e._xhr.headers[n])}),_.onload=function(){var n=(_.status+"")[0];if("0"!==n&&"2"!==n&&"3"!==n)return void e._emit("loaderror",null,"Failed loading audio file with status: "+_.status+".");i(_.response,e)},_.onerror=function(){e._webAudio&&(e._html5=!0,e._webAudio=!1,e._sounds=[],delete r[n],e.load())},u(_)}},u=function(e){try{e.send()}catch(n){e.onerror()}},i=function(e,o){var t=function(){o._emit("loaderror",null,"Decoding audio data failed.")},a=function(e){e&&o._sounds.length>0?(r[o._src]=e,d(o,e)):t()};"undefined"!=typeof Promise&&1===n.ctx.decodeAudioData.length?n.ctx.decodeAudioData(e).then(a).catch(t):n.ctx.decodeAudioData(e,a,t)},d=function(e,n){n&&!e._duration&&(e._duration=n.duration),0===Object.keys(e._sprite).length&&(e._sprite={__default:[0,1e3*e._duration]}),"loaded"!==e._state&&(e._state="loaded",e._emit("load"),e._loadQueue())},_=function(){if(n.usingWebAudio){try{"undefined"!=typeof AudioContext?n.ctx=new AudioContext:"undefined"!=typeof webkitAudioContext?n.ctx=new webkitAudioContext:n.usingWebAudio=!1}catch(e){n.usingWebAudio=!1}n.ctx||(n.usingWebAudio=!1);var e=/iP(hone|od|ad)/.test(n._navigator&&n._navigator.platform),o=n._navigator&&n._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),t=o?parseInt(o[1],10):null;if(e&&t&&t<9){var r=/safari/.test(n._navigator&&n._navigator.userAgent.toLowerCase());n._navigator&&!r&&(n.usingWebAudio=!1)}n.usingWebAudio&&(n.masterGain=void 0===n.ctx.createGain?n.ctx.createGainNode():n.ctx.createGain(),n.masterGain.gain.setValueAtTime(n._muted?0:n._volume,n.ctx.currentTime),n.masterGain.connect(n.ctx.destination)),n._setup()}};"function"==typeof define&&define.amd&&define([],function(){return{Howler:n,Howl:o}}),"undefined"!=typeof exports&&(exports.Howler=n,exports.Howl=o),"undefined"!=typeof global?(global.HowlerGlobal=e,global.Howler=n,global.Howl=o,global.Sound=t):"undefined"!=typeof window&&(window.HowlerGlobal=e,window.Howler=n,window.Howl=o,window.Sound=t)}();
/*! Spatial Plugin */
!function(){"use strict";HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(e){var n=this;if(!n.ctx||!n.ctx.listener)return n;for(var t=n._howls.length-1;t>=0;t--)n._howls[t].stereo(e);return n},HowlerGlobal.prototype.pos=function(e,n,t){var r=this;return r.ctx&&r.ctx.listener?(n="number"!=typeof n?r._pos[1]:n,t="number"!=typeof t?r._pos[2]:t,"number"!=typeof e?r._pos:(r._pos=[e,n,t],void 0!==r.ctx.listener.positionX?(r.ctx.listener.positionX.setTargetAtTime(r._pos[0],Howler.ctx.currentTime,.1),r.ctx.listener.positionY.setTargetAtTime(r._pos[1],Howler.ctx.currentTime,.1),r.ctx.listener.positionZ.setTargetAtTime(r._pos[2],Howler.ctx.currentTime,.1)):r.ctx.listener.setPosition(r._pos[0],r._pos[1],r._pos[2]),r)):r},HowlerGlobal.prototype.orientation=function(e,n,t,r,o,i){var a=this;if(!a.ctx||!a.ctx.listener)return a;var s=a._orientation;return n="number"!=typeof n?s[1]:n,t="number"!=typeof t?s[2]:t,r="number"!=typeof r?s[3]:r,o="number"!=typeof o?s[4]:o,i="number"!=typeof i?s[5]:i,"number"!=typeof e?s:(a._orientation=[e,n,t,r,o,i],void 0!==a.ctx.listener.forwardX?(a.ctx.listener.forwardX.setTargetAtTime(e,Howler.ctx.currentTime,.1),a.ctx.listener.forwardY.setTargetAtTime(n,Howler.ctx.currentTime,.1),a.ctx.listener.forwardZ.setTargetAtTime(t,Howler.ctx.currentTime,.1),a.ctx.listener.upX.setTargetAtTime(r,Howler.ctx.currentTime,.1),a.ctx.listener.upY.setTargetAtTime(o,Howler.ctx.currentTime,.1),a.ctx.listener.upZ.setTargetAtTime(i,Howler.ctx.currentTime,.1)):a.ctx.listener.setOrientation(e,n,t,r,o,i),a)},Howl.prototype.init=function(e){return function(n){var t=this;return t._orientation=n.orientation||[1,0,0],t._stereo=n.stereo||null,t._pos=n.pos||null,t._pannerAttr={coneInnerAngle:void 0!==n.coneInnerAngle?n.coneInnerAngle:360,coneOuterAngle:void 0!==n.coneOuterAngle?n.coneOuterAngle:360,coneOuterGain:void 0!==n.coneOuterGain?n.coneOuterGain:0,distanceModel:void 0!==n.distanceModel?n.distanceModel:"inverse",maxDistance:void 0!==n.maxDistance?n.maxDistance:1e4,panningModel:void 0!==n.panningModel?n.panningModel:"HRTF",refDistance:void 0!==n.refDistance?n.refDistance:1,rolloffFactor:void 0!==n.rolloffFactor?n.rolloffFactor:1},t._onstereo=n.onstereo?[{fn:n.onstereo}]:[],t._onpos=n.onpos?[{fn:n.onpos}]:[],t._onorientation=n.onorientation?[{fn:n.onorientation}]:[],e.call(this,n)}}(Howl.prototype.init),Howl.prototype.stereo=function(n,t){var r=this;if(!r._webAudio)return r;if("loaded"!==r._state)return r._queue.push({event:"stereo",action:function(){r.stereo(n,t)}}),r;var o=void 0===Howler.ctx.createStereoPanner?"spatial":"stereo";if(void 0===t){if("number"!=typeof n)return r._stereo;r._stereo=n,r._pos=[n,0,0]}for(var i=r._getSoundIds(t),a=0;a<i.length;a++){var s=r._soundById(i[a]);if(s){if("number"!=typeof n)return s._stereo;s._stereo=n,s._pos=[n,0,0],s._node&&(s._pannerAttr.panningModel="equalpower",s._panner&&s._panner.pan||e(s,o),"spatial"===o?void 0!==s._panner.positionX?(s._panner.positionX.setValueAtTime(n,Howler.ctx.currentTime),s._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),s._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):s._panner.setPosition(n,0,0):s._panner.pan.setValueAtTime(n,Howler.ctx.currentTime)),r._emit("stereo",s._id)}}return r},Howl.prototype.pos=function(n,t,r,o){var i=this;if(!i._webAudio)return i;if("loaded"!==i._state)return i._queue.push({event:"pos",action:function(){i.pos(n,t,r,o)}}),i;if(t="number"!=typeof t?0:t,r="number"!=typeof r?-.5:r,void 0===o){if("number"!=typeof n)return i._pos;i._pos=[n,t,r]}for(var a=i._getSoundIds(o),s=0;s<a.length;s++){var p=i._soundById(a[s]);if(p){if("number"!=typeof n)return p._pos;p._pos=[n,t,r],p._node&&(p._panner&&!p._panner.pan||e(p,"spatial"),void 0!==p._panner.positionX?(p._panner.positionX.setValueAtTime(n,Howler.ctx.currentTime),p._panner.positionY.setValueAtTime(t,Howler.ctx.currentTime),p._panner.positionZ.setValueAtTime(r,Howler.ctx.currentTime)):p._panner.setPosition(n,t,r)),i._emit("pos",p._id)}}return i},Howl.prototype.orientation=function(n,t,r,o){var i=this;if(!i._webAudio)return i;if("loaded"!==i._state)return i._queue.push({event:"orientation",action:function(){i.orientation(n,t,r,o)}}),i;if(t="number"!=typeof t?i._orientation[1]:t,r="number"!=typeof r?i._orientation[2]:r,void 0===o){if("number"!=typeof n)return i._orientation;i._orientation=[n,t,r]}for(var a=i._getSoundIds(o),s=0;s<a.length;s++){var p=i._soundById(a[s]);if(p){if("number"!=typeof n)return p._orientation;p._orientation=[n,t,r],p._node&&(p._panner||(p._pos||(p._pos=i._pos||[0,0,-.5]),e(p,"spatial")),void 0!==p._panner.orientationX?(p._panner.orientationX.setValueAtTime(n,Howler.ctx.currentTime),p._panner.orientationY.setValueAtTime(t,Howler.ctx.currentTime),p._panner.orientationZ.setValueAtTime(r,Howler.ctx.currentTime)):p._panner.setOrientation(n,t,r)),i._emit("orientation",p._id)}}return i},Howl.prototype.pannerAttr=function(){var n,t,r,o=this,i=arguments;if(!o._webAudio)return o;if(0===i.length)return o._pannerAttr;if(1===i.length){if("object"!=typeof i[0])return r=o._soundById(parseInt(i[0],10)),r?r._pannerAttr:o._pannerAttr;n=i[0],void 0===t&&(n.pannerAttr||(n.pannerAttr={coneInnerAngle:n.coneInnerAngle,coneOuterAngle:n.coneOuterAngle,coneOuterGain:n.coneOuterGain,distanceModel:n.distanceModel,maxDistance:n.maxDistance,refDistance:n.refDistance,rolloffFactor:n.rolloffFactor,panningModel:n.panningModel}),o._pannerAttr={coneInnerAngle:void 0!==n.pannerAttr.coneInnerAngle?n.pannerAttr.coneInnerAngle:o._coneInnerAngle,coneOuterAngle:void 0!==n.pannerAttr.coneOuterAngle?n.pannerAttr.coneOuterAngle:o._coneOuterAngle,coneOuterGain:void 0!==n.pannerAttr.coneOuterGain?n.pannerAttr.coneOuterGain:o._coneOuterGain,distanceModel:void 0!==n.pannerAttr.distanceModel?n.pannerAttr.distanceModel:o._distanceModel,maxDistance:void 0!==n.pannerAttr.maxDistance?n.pannerAttr.maxDistance:o._maxDistance,refDistance:void 0!==n.pannerAttr.refDistance?n.pannerAttr.refDistance:o._refDistance,rolloffFactor:void 0!==n.pannerAttr.rolloffFactor?n.pannerAttr.rolloffFactor:o._rolloffFactor,panningModel:void 0!==n.pannerAttr.panningModel?n.pannerAttr.panningModel:o._panningModel})}else 2===i.length&&(n=i[0],t=parseInt(i[1],10));for(var a=o._getSoundIds(t),s=0;s<a.length;s++)if(r=o._soundById(a[s])){var p=r._pannerAttr;p={coneInnerAngle:void 0!==n.coneInnerAngle?n.coneInnerAngle:p.coneInnerAngle,coneOuterAngle:void 0!==n.coneOuterAngle?n.coneOuterAngle:p.coneOuterAngle,coneOuterGain:void 0!==n.coneOuterGain?n.coneOuterGain:p.coneOuterGain,distanceModel:void 0!==n.distanceModel?n.distanceModel:p.distanceModel,maxDistance:void 0!==n.maxDistance?n.maxDistance:p.maxDistance,refDistance:void 0!==n.refDistance?n.refDistance:p.refDistance,rolloffFactor:void 0!==n.rolloffFactor?n.rolloffFactor:p.rolloffFactor,panningModel:void 0!==n.panningModel?n.panningModel:p.panningModel};var c=r._panner;c?(c.coneInnerAngle=p.coneInnerAngle,c.coneOuterAngle=p.coneOuterAngle,c.coneOuterGain=p.coneOuterGain,c.distanceModel=p.distanceModel,c.maxDistance=p.maxDistance,c.refDistance=p.refDistance,c.rolloffFactor=p.rolloffFactor,c.panningModel=p.panningModel):(r._pos||(r._pos=o._pos||[0,0,-.5]),e(r,"spatial"))}return o},Sound.prototype.init=function(e){return function(){var n=this,t=n._parent;n._orientation=t._orientation,n._stereo=t._stereo,n._pos=t._pos,n._pannerAttr=t._pannerAttr,e.call(this),n._stereo?t.stereo(n._stereo):n._pos&&t.pos(n._pos[0],n._pos[1],n._pos[2],n._id)}}(Sound.prototype.init),Sound.prototype.reset=function(e){return function(){var n=this,t=n._parent;return n._orientation=t._orientation,n._stereo=t._stereo,n._pos=t._pos,n._pannerAttr=t._pannerAttr,n._stereo?t.stereo(n._stereo):n._pos?t.pos(n._pos[0],n._pos[1],n._pos[2],n._id):n._panner&&(n._panner.disconnect(0),n._panner=void 0,t._refreshBuffer(n)),e.call(this)}}(Sound.prototype.reset);var e=function(e,n){n=n||"spatial","spatial"===n?(e._panner=Howler.ctx.createPanner(),e._panner.coneInnerAngle=e._pannerAttr.coneInnerAngle,e._panner.coneOuterAngle=e._pannerAttr.coneOuterAngle,e._panner.coneOuterGain=e._pannerAttr.coneOuterGain,e._panner.distanceModel=e._pannerAttr.distanceModel,e._panner.maxDistance=e._pannerAttr.maxDistance,e._panner.refDistance=e._pannerAttr.refDistance,e._panner.rolloffFactor=e._pannerAttr.rolloffFactor,e._panner.panningModel=e._pannerAttr.panningModel,void 0!==e._panner.positionX?(e._panner.positionX.setValueAtTime(e._pos[0],Howler.ctx.currentTime),e._panner.positionY.setValueAtTime(e._pos[1],Howler.ctx.currentTime),e._panner.positionZ.setValueAtTime(e._pos[2],Howler.ctx.currentTime)):e._panner.setPosition(e._pos[0],e._pos[1],e._pos[2]),void 0!==e._panner.orientationX?(e._panner.orientationX.setValueAtTime(e._orientation[0],Howler.ctx.currentTime),e._panner.orientationY.setValueAtTime(e._orientation[1],Howler.ctx.currentTime),e._panner.orientationZ.setValueAtTime(e._orientation[2],Howler.ctx.currentTime)):e._panner.setOrientation(e._orientation[0],e._orientation[1],e._orientation[2])):(e._panner=Howler.ctx.createStereoPanner(),e._panner.pan.setValueAtTime(e._stereo,Howler.ctx.currentTime)),e._panner.connect(e._node),e._paused||e._parent.pause(e._id,!0).play(e._id,!0)}}();
\ No newline at end of file
var Stats = function () {
var startTime = Date.now(), prevTime = startTime;
var ms = 0, msMin = Infinity, msMax = 0;
var fps = 0, fpsMin = Infinity, fpsMax = 0;
var frames = 0, mode = 0;
var container = document.createElement('div');
container.id = 'stats';
container.addEventListener('mousedown', function (event) {
event.preventDefault();
setMode(++mode % 2)
}, false);
container.style.cssText = 'width:80px;opacity:0.9;cursor:pointer';
var fpsDiv = document.createElement('div');
fpsDiv.id = 'fps';
fpsDiv.style.cssText = 'padding:0 0 3px 3px;text-align:left;background-color:#002';
container.appendChild(fpsDiv);
var fpsText = document.createElement('div');
fpsText.id = 'fpsText';
fpsText.style.cssText = 'color:#0ff;font-family:Helvetica,Arial,sans-serif;font-size:9px;font-weight:bold;line-height:15px';
fpsText.innerHTML = 'FPS';
fpsDiv.appendChild(fpsText);
var fpsGraph = document.createElement('div');
fpsGraph.id = 'fpsGraph';
fpsGraph.style.cssText = 'position:relative;width:74px;height:30px;background-color:#0ff';
fpsDiv.appendChild(fpsGraph);
while (fpsGraph.children.length < 74) {
var bar = document.createElement('span');
bar.style.cssText = 'width:1px;height:30px;float:left;background-color:#113';
fpsGraph.appendChild(bar);
}
var msDiv = document.createElement('div');
msDiv.id = 'ms';
msDiv.style.cssText = 'padding:0 0 3px 3px;text-align:left;background-color:#020;display:none';
container.appendChild(msDiv);
var msText = document.createElement('div');
msText.id = 'msText';
msText.style.cssText = 'color:#0f0;font-family:Helvetica,Arial,sans-serif;font-size:9px;font-weight:bold;line-height:15px';
msText.innerHTML = 'MS';
msDiv.appendChild(msText);
var msGraph = document.createElement('div');
msGraph.id = 'msGraph';
msGraph.style.cssText = 'position:relative;width:74px;height:30px;background-color:#0f0';
msDiv.appendChild(msGraph);
while (msGraph.children.length < 74) {
var bar = document.createElement('span');
bar.style.cssText = 'width:1px;height:30px;float:left;background-color:#131';
msGraph.appendChild(bar);
}
var setMode = function (value) {
mode = value;
switch (mode) {
case 0:
fpsDiv.style.display = 'block';
msDiv.style.display = 'none';
break;
case 1:
fpsDiv.style.display = 'none';
msDiv.style.display = 'block';
break;
}
}
var updateGraph = function (dom, value) {
var child = dom.appendChild(dom.firstChild);
child.style.height = value + 'px';
}
return {
REVISION: 11,
domElement: container,
setMode: setMode,
begin: function () {
startTime = Date.now();
},
end: function () {
var time = Date.now();
ms = time - startTime;
msMin = Math.min(msMin, ms);
msMax = Math.max(msMax, ms);
msText.textContent = ms + ' MS (' + msMin + '-' + msMax + ')';
updateGraph(msGraph, Math.min(30, 30 - (ms / 200) * 30));
frames++;
if (time > prevTime + 1000) {
fps = Math.round((frames * 1000) / (time - prevTime));
fpsMin = Math.min(fpsMin, fps);
fpsMax = Math.max(fpsMax, fps);
fpsText.textContent = fps + ' FPS (' + fpsMin + '-' + fpsMax + ')';
updateGraph(fpsGraph, Math.min(30, 30 - (fps / 100) * 30));
prevTime = time;
frames = 0;
}
return time;
},
update: function () {
startTime = this.end();
}
}
};
//执行
var stats = new Stats();
stats.domElement.style.position = 'absolute';
stats.domElement.style.top = '0px';
document.body.appendChild(stats.domElement);
aa();
function aa() {
stats.update();
requestAnimationFrame(aa)
}
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.SvgaParser=t():e.SvgaParser=t()}(window,(function(){return d=[function(e,t,r){"use strict";var i,n,o=e.exports=r(1),s=r(16);o.codegen=r(45),o.fetch=r(46),o.path=r(47),o.fs=o.inquire("fs"),o.toArray=function(e){if(e){for(var t=Object.keys(e),r=new Array(t.length),i=0;i<t.length;)r[i]=e[t[i++]];return r}return[]},o.toObject=function(e){for(var t={},r=0;r<e.length;){var i=e[r++],n=e[r++];void 0!==n&&(t[i]=n)}return t};var a=/\\/g,f=/"/g;o.isReserved=function(e){return/^(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)$/.test(e)},o.safeProp=function(e){return!/^[$\w_]+$/.test(e)||o.isReserved(e)?'["'+e.replace(a,"\\\\").replace(f,'\\"')+'"]':"."+e},o.ucFirst=function(e){return e.charAt(0).toUpperCase()+e.substring(1)};var l=/_([a-z])/g;o.camelCase=function(e){return e.substring(0,1)+e.substring(1).replace(l,(function(e,t){return t.toUpperCase()}))},o.compareFieldsById=function(e,t){return e.id-t.id},o.decorateType=function(e,t){if(e.$type)return t&&e.$type.name!==t&&(o.decorateRoot.remove(e.$type),e.$type.name=t,o.decorateRoot.add(e.$type)),e.$type;var n=new(i=i||r(18))(t||e.name);return o.decorateRoot.add(n),n.ctor=e,Object.defineProperty(e,"$type",{value:n,enumerable:!1}),Object.defineProperty(e.prototype,"$type",{value:n,enumerable:!1}),n};var u=0;o.decorateEnum=function(e){if(e.$type)return e.$type;var t=new(n=n||r(2))("Enum"+u++,e);return o.decorateRoot.add(t),Object.defineProperty(e,"$type",{value:t,enumerable:!1}),t},Object.defineProperty(o,"decorateRoot",{get:function(){return s.decorated||(s.decorated=new(r(26)))}})},function(e,t,r){"use strict";(function(e){var i=t;function n(e,t,r){for(var i=Object.keys(t),n=0;n<i.length;++n)void 0!==e[i[n]]&&r||(e[i[n]]=t[i[n]]);return e}function o(e){function t(e,r){if(!(this instanceof t))return new t(e,r);Object.defineProperty(this,"message",{get:function(){return e}}),Error.captureStackTrace?Error.captureStackTrace(this,t):Object.defineProperty(this,"stack",{value:(new Error).stack||""}),r&&n(this,r)}return(t.prototype=Object.create(Error.prototype)).constructor=t,Object.defineProperty(t.prototype,"name",{get:function(){return e}}),t.prototype.toString=function(){return this.name+": "+this.message},t}i.asPromise=r(13),i.base64=r(36),i.EventEmitter=r(37),i.float=r(38),i.inquire=r(14),i.utf8=r(39),i.pool=r(40),i.LongBits=r(41),i.global="undefined"!=typeof window&&window||void 0!==e&&e||"undefined"!=typeof self&&self||this,i.emptyArray=Object.freeze?Object.freeze([]):[],i.emptyObject=Object.freeze?Object.freeze({}):{},i.isNode=Boolean(i.global.process&&i.global.process.versions&&i.global.process.versions.node),i.isInteger=Number.isInteger||function(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e},i.isString=function(e){return"string"==typeof e||e instanceof String},i.isObject=function(e){return e&&"object"==typeof e},i.isset=i.isSet=function(e,t){var r=e[t];return!(null==r||!e.hasOwnProperty(t))&&("object"!=typeof r||0<(Array.isArray(r)?r.length:Object.keys(r).length))},i.Buffer=function(){try{var e=i.inquire("buffer").Buffer;return e.prototype.utf8Write?e:null}catch(e){return null}}(),i._Buffer_from=null,i._Buffer_allocUnsafe=null,i.newBuffer=function(e){return"number"==typeof e?i.Buffer?i._Buffer_allocUnsafe(e):new i.Array(e):i.Buffer?i._Buffer_from(e):"undefined"==typeof Uint8Array?e:new Uint8Array(e)},i.Array="undefined"!=typeof Uint8Array?Uint8Array:Array,i.Long=i.global.dcodeIO&&i.global.dcodeIO.Long||i.global.Long||i.inquire("long"),i.key2Re=/^true|false|0|1$/,i.key32Re=/^-?(?:0|[1-9][0-9]*)$/,i.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,i.longToHash=function(e){return e?i.LongBits.from(e).toHash():i.LongBits.zeroHash},i.longFromHash=function(e,t){var r=i.LongBits.fromHash(e);return i.Long?i.Long.fromBits(r.lo,r.hi,t):r.toNumber(Boolean(t))},i.merge=n,i.lcFirst=function(e){return e.charAt(0).toLowerCase()+e.substring(1)},i.newError=o,i.ProtocolError=o("ProtocolError"),i.oneOfGetter=function(e){for(var t={},r=0;r<e.length;++r)t[e[r]]=1;return function(){for(var e=Object.keys(this),r=e.length-1;-1<r;--r)if(1===t[e[r]]&&void 0!==this[e[r]]&&null!==this[e[r]])return e[r]}},i.oneOfSetter=function(e){return function(t){for(var r=0;r<e.length;++r)e[r]!==t&&delete this[e[r]]}},i.toJSONOptions={longs:String,enums:String,bytes:String,json:!0},i._configure=function(){var e=i.Buffer;e?(i._Buffer_from=e.from!==Uint8Array.from&&e.from||function(t,r){return new e(t,r)},i._Buffer_allocUnsafe=e.allocUnsafe||function(t){return new e(t)}):i._Buffer_from=i._Buffer_allocUnsafe=null}}).call(this,r(35))},function(e,t,r){"use strict";e.exports=s;var i=r(3);((s.prototype=Object.create(i.prototype)).constructor=s).className="Enum";var n=r(5),o=r(0);function s(e,t,r,n,o){if(i.call(this,e,r),t&&"object"!=typeof t)throw TypeError("values must be an object");if(this.valuesById={},this.values=Object.create(this.valuesById),this.comment=n,this.comments=o||{},this.reserved=void 0,t)for(var s=Object.keys(t),a=0;a<s.length;++a)"number"==typeof t[s[a]]&&(this.valuesById[this.values[s[a]]=t[s[a]]]=s[a])}s.fromJSON=function(e,t){var r=new s(e,t.values,t.options,t.comment,t.comments);return r.reserved=t.reserved,r},s.prototype.toJSON=function(e){var t=!!e&&Boolean(e.keepComments);return o.toObject(["options",this.options,"values",this.values,"reserved",this.reserved&&this.reserved.length?this.reserved:void 0,"comment",t?this.comment:void 0,"comments",t?this.comments:void 0])},s.prototype.add=function(e,t,r){if(!o.isString(e))throw TypeError("name must be a string");if(!o.isInteger(t))throw TypeError("id must be an integer");if(void 0!==this.values[e])throw Error("duplicate name '"+e+"' in "+this);if(this.isReservedId(t))throw Error("id "+t+" is reserved in "+this);if(this.isReservedName(e))throw Error("name '"+e+"' is reserved in "+this);if(void 0!==this.valuesById[t]){if(!this.options||!this.options.allow_alias)throw Error("duplicate id "+t+" in "+this);this.values[e]=t}else this.valuesById[this.values[e]=t]=e;return this.comments[e]=r||null,this},s.prototype.remove=function(e){if(!o.isString(e))throw TypeError("name must be a string");var t=this.values[e];if(null==t)throw Error("name '"+e+"' does not exist in "+this);return delete this.valuesById[t],delete this.values[e],delete this.comments[e],this},s.prototype.isReservedId=function(e){return n.isReservedId(this.reserved,e)},s.prototype.isReservedName=function(e){return n.isReservedName(this.reserved,e)}},function(e,t,r){"use strict";(e.exports=o).className="ReflectionObject";var i,n=r(0);function o(e,t){if(!n.isString(e))throw TypeError("name must be a string");if(t&&!n.isObject(t))throw TypeError("options must be an object");this.options=t,this.name=e,this.parent=null,this.resolved=!1,this.comment=null,this.filename=null}Object.defineProperties(o.prototype,{root:{get:function(){for(var e=this;null!==e.parent;)e=e.parent;return e}},fullName:{get:function(){for(var e=[this.name],t=this.parent;t;)e.unshift(t.name),t=t.parent;return e.join(".")}}}),o.prototype.toJSON=function(){throw Error()},o.prototype.onAdd=function(e){this.parent&&this.parent!==e&&this.parent.remove(this),this.parent=e,this.resolved=!1;var t=e.root;t instanceof i&&t._handleAdd(this)},o.prototype.onRemove=function(e){var t=e.root;t instanceof i&&t._handleRemove(this),this.parent=null,this.resolved=!1},o.prototype.resolve=function(){return this.resolved||this.root instanceof i&&(this.resolved=!0),this},o.prototype.getOption=function(e){if(this.options)return this.options[e]},o.prototype.setOption=function(e,t,r){return r&&this.options&&void 0!==this.options[e]||((this.options||(this.options={}))[e]=t),this},o.prototype.setOptions=function(e,t){if(e)for(var r=Object.keys(e),i=0;i<r.length;++i)this.setOption(r[i],e[r[i]],t);return this},o.prototype.toString=function(){var e=this.constructor.className,t=this.fullName;return t.length?e+" "+t:e},o._configure=function(e){i=e}},function(e,t,r){"use strict";e.exports=l;var i=r(3);((l.prototype=Object.create(i.prototype)).constructor=l).className="Field";var n,o=r(2),s=r(6),a=r(0),f=/^required|optional|repeated$/;function l(e,t,r,n,o,l,u){if(a.isObject(n)?(u=o,l=n,n=o=void 0):a.isObject(o)&&(u=l,l=o,o=void 0),i.call(this,e,l),!a.isInteger(t)||t<0)throw TypeError("id must be a non-negative integer");if(!a.isString(r))throw TypeError("type must be a string");if(void 0!==n&&!f.test(n=n.toString().toLowerCase()))throw TypeError("rule must be a string rule");if(void 0!==o&&!a.isString(o))throw TypeError("extend must be a string");this.rule=n&&"optional"!==n?n:void 0,this.type=r,this.id=t,this.extend=o||void 0,this.required="required"===n,this.optional=!this.required,this.repeated="repeated"===n,this.map=!1,this.message=null,this.partOf=null,this.typeDefault=null,this.defaultValue=null,this.long=!!a.Long&&void 0!==s.long[r],this.bytes="bytes"===r,this.resolvedType=null,this.extensionField=null,this.declaringField=null,this._packed=null,this.comment=u}l.fromJSON=function(e,t){return new l(e,t.id,t.type,t.rule,t.extend,t.options,t.comment)},Object.defineProperty(l.prototype,"packed",{get:function(){return null===this._packed&&(this._packed=!1!==this.getOption("packed")),this._packed}}),l.prototype.setOption=function(e,t,r){return"packed"===e&&(this._packed=null),i.prototype.setOption.call(this,e,t,r)},l.prototype.toJSON=function(e){var t=!!e&&Boolean(e.keepComments);return a.toObject(["rule","optional"!==this.rule&&this.rule||void 0,"type",this.type,"id",this.id,"extend",this.extend,"options",this.options,"comment",t?this.comment:void 0])},l.prototype.resolve=function(){return this.resolved?this:(void 0===(this.typeDefault=s.defaults[this.type])&&(this.resolvedType=(this.declaringField?this.declaringField.parent:this.parent).lookupTypeOrEnum(this.type),this.resolvedType instanceof n?this.typeDefault=null:this.typeDefault=this.resolvedType.values[Object.keys(this.resolvedType.values)[0]]),this.options&&null!=this.options.default&&(this.typeDefault=this.options.default,this.resolvedType instanceof o&&"string"==typeof this.typeDefault&&(this.typeDefault=this.resolvedType.values[this.typeDefault])),this.options&&(!0!==this.options.packed&&(void 0===this.options.packed||!this.resolvedType||this.resolvedType instanceof o)||delete this.options.packed,Object.keys(this.options).length||(this.options=void 0)),this.long?(this.typeDefault=a.Long.fromNumber(this.typeDefault,"u"===this.type.charAt(0)),Object.freeze&&Object.freeze(this.typeDefault)):this.bytes&&"string"==typeof this.typeDefault&&(a.base64.test(this.typeDefault)?a.base64.decode(this.typeDefault,e=a.newBuffer(a.base64.length(this.typeDefault)),0):a.utf8.write(this.typeDefault,e=a.newBuffer(a.utf8.length(this.typeDefault)),0),this.typeDefault=e),this.map?this.defaultValue=a.emptyObject:this.repeated?this.defaultValue=a.emptyArray:this.defaultValue=this.typeDefault,this.parent instanceof n&&(this.parent.ctor.prototype[this.name]=this.defaultValue),i.prototype.resolve.call(this));var e},l.d=function(e,t,r,i){return"function"==typeof t?t=a.decorateType(t).name:t&&"object"==typeof t&&(t=a.decorateEnum(t).name),function(n,o){a.decorateType(n.constructor).add(new l(o,e,t,r,{default:i}))}},l._configure=function(e){n=e}},function(e,t,r){"use strict";e.exports=u;var i=r(3);((u.prototype=Object.create(i.prototype)).constructor=u).className="Namespace";var n,o,s,a=r(4),f=r(0);function l(e,t){if(e&&e.length){for(var r={},i=0;i<e.length;++i)r[e[i].name]=e[i].toJSON(t);return r}}function u(e,t){i.call(this,e,t),this.nested=void 0,this._nestedArray=null}function h(e){return e._nestedArray=null,e}u.fromJSON=function(e,t){return new u(e,t.options).addJSON(t.nested)},u.arrayToJSON=l,u.isReservedId=function(e,t){if(e)for(var r=0;r<e.length;++r)if("string"!=typeof e[r]&&e[r][0]<=t&&e[r][1]>t)return!0;return!1},u.isReservedName=function(e,t){if(e)for(var r=0;r<e.length;++r)if(e[r]===t)return!0;return!1},Object.defineProperty(u.prototype,"nestedArray",{get:function(){return this._nestedArray||(this._nestedArray=f.toArray(this.nested))}}),u.prototype.toJSON=function(e){return f.toObject(["options",this.options,"nested",l(this.nestedArray,e)])},u.prototype.addJSON=function(e){if(e)for(var t,r=Object.keys(e),i=0;i<r.length;++i)t=e[r[i]],this.add((void 0!==t.fields?n.fromJSON:void 0!==t.values?s.fromJSON:void 0!==t.methods?o.fromJSON:void 0!==t.id?a.fromJSON:u.fromJSON)(r[i],t));return this},u.prototype.get=function(e){return this.nested&&this.nested[e]||null},u.prototype.getEnum=function(e){if(this.nested&&this.nested[e]instanceof s)return this.nested[e].values;throw Error("no such enum: "+e)},u.prototype.add=function(e){if(!(e instanceof a&&void 0!==e.extend||e instanceof n||e instanceof s||e instanceof o||e instanceof u))throw TypeError("object must be a valid nested object");if(this.nested){var t=this.get(e.name);if(t){if(!(t instanceof u&&e instanceof u)||t instanceof n||t instanceof o)throw Error("duplicate name '"+e.name+"' in "+this);for(var r=t.nestedArray,i=0;i<r.length;++i)e.add(r[i]);this.remove(t),this.nested||(this.nested={}),e.setOptions(t.options,!0)}}else this.nested={};return(this.nested[e.name]=e).onAdd(this),h(this)},u.prototype.remove=function(e){if(!(e instanceof i))throw TypeError("object must be a ReflectionObject");if(e.parent!==this)throw Error(e+" is not a member of "+this);return delete this.nested[e.name],Object.keys(this.nested).length||(this.nested=void 0),e.onRemove(this),h(this)},u.prototype.define=function(e,t){if(f.isString(e))e=e.split(".");else if(!Array.isArray(e))throw TypeError("illegal path");if(e&&e.length&&""===e[0])throw Error("path must be relative");for(var r=this;0<e.length;){var i=e.shift();if(r.nested&&r.nested[i]){if(!((r=r.nested[i])instanceof u))throw Error("path conflicts with non-namespace objects")}else r.add(r=new u(i))}return t&&r.addJSON(t),r},u.prototype.resolveAll=function(){for(var e=this.nestedArray,t=0;t<e.length;)e[t]instanceof u?e[t++].resolveAll():e[t++].resolve();return this.resolve()},u.prototype.lookup=function(e,t,r){if("boolean"==typeof t?(r=t,t=void 0):t&&!Array.isArray(t)&&(t=[t]),f.isString(e)&&e.length){if("."===e)return this.root;e=e.split(".")}else if(!e.length)return this;if(""===e[0])return this.root.lookup(e.slice(1),t);var i=this.get(e[0]);if(i){if(1===e.length){if(!t||-1<t.indexOf(i.constructor))return i}else if(i instanceof u&&(i=i.lookup(e.slice(1),t,!0)))return i}else for(var n=0;n<this.nestedArray.length;++n)if(this._nestedArray[n]instanceof u&&(i=this._nestedArray[n].lookup(e,t,!0)))return i;return null===this.parent||r?null:this.parent.lookup(e,t)},u.prototype.lookupType=function(e){var t=this.lookup(e,[n]);if(!t)throw Error("no such type: "+e);return t},u.prototype.lookupEnum=function(e){var t=this.lookup(e,[s]);if(!t)throw Error("no such Enum '"+e+"' in "+this);return t},u.prototype.lookupTypeOrEnum=function(e){var t=this.lookup(e,[n,s]);if(!t)throw Error("no such Type or Enum '"+e+"' in "+this);return t},u.prototype.lookupService=function(e){var t=this.lookup(e,[o]);if(!t)throw Error("no such Service '"+e+"' in "+this);return t},u._configure=function(e,t,r){n=e,o=t,s=r}},function(e,t,r){"use strict";var i=t,n=r(0),o=["double","float","int32","uint32","sint32","fixed32","sfixed32","int64","uint64","sint64","fixed64","sfixed64","bool","string","bytes"];function s(e,t){var r=0,i={};for(t|=0;r<e.length;)i[o[r+t]]=e[r++];return i}i.basic=s([1,5,0,0,0,5,5,0,0,0,1,1,0,2,2]),i.defaults=s([0,0,0,0,0,0,0,0,0,0,0,0,!1,"",n.emptyArray,null]),i.long=s([0,0,0,1,1],7),i.mapKey=s([0,0,0,5,5,0,0,0,1,1,0,2],2),i.packed=s([1,5,0,0,0,5,5,0,0,0,1,1,0])},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i,n,o,s,a="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array?(i=Uint8Array,n=Uint16Array,o=Int32Array,s=function(e,t,r,i,n){if(t.subarray&&e.subarray)e.set(t.subarray(r,r+i),n);else for(var o=0;o<i;o++)e[n+o]=t[r+o]},function(e){for(var t,r,i,n=0,o=0,s=e.length;o<s;o++)n+=e[o].length;for(i=new Uint8Array(n),o=t=0,s=e.length;o<s;o++)r=e[o],i.set(r,t),t+=r.length;return i}):(i=Array,n=Array,o=Array,s=function(e,t,r,i,n){for(var o=0;o<i;o++)e[n+o]=t[r+o]},function(e){return[].concat.apply([],e)});t.utils={assign:function(e,t){for(var r in t)i=t,n=r,Object.prototype.hasOwnProperty.call(i,n)&&(e[r]=t[r]);var i,n;return e},shrinkBuf:function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)},Buf8:i,Buf16:n,Buf32:o,arraySet:s,flattenChunks:a}},function(e,t,r){"use strict";e.exports=h;var i,n=r(1),o=n.LongBits,s=n.base64,a=n.utf8;function f(e,t,r){this.fn=e,this.len=t,this.next=void 0,this.val=r}function l(){}function u(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}function h(){this.len=0,this.head=new f(l,0,0),this.tail=this.head,this.states=null}function c(){return n.Buffer?function(){return(h.create=function(){return new i})()}:function(){return new h}}function d(e,t,r){t[r]=255&e}function p(e,t){this.len=e,this.next=void 0,this.val=t}function y(e,t,r){for(;e.hi;)t[r++]=127&e.lo|128,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;127<e.lo;)t[r++]=127&e.lo|128,e.lo=e.lo>>>7;t[r++]=e.lo}function m(e,t,r){t[r]=255&e,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}h.create=c(),h.alloc=function(e){return new n.Array(e)},n.Array!==Array&&(h.alloc=n.pool(h.alloc,n.Array.prototype.subarray)),h.prototype._push=function(e,t,r){return this.tail=this.tail.next=new f(e,t,r),this.len+=t,this},(p.prototype=Object.create(f.prototype)).fn=function(e,t,r){for(;127<e;)t[r++]=127&e|128,e>>>=7;t[r]=e},h.prototype.uint32=function(e){return this.len+=(this.tail=this.tail.next=new p((e>>>=0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this},h.prototype.int32=function(e){return e<0?this._push(y,10,o.fromNumber(e)):this.uint32(e)},h.prototype.sint32=function(e){return this.uint32((e<<1^e>>31)>>>0)},h.prototype.int64=h.prototype.uint64=function(e){var t=o.from(e);return this._push(y,t.length(),t)},h.prototype.sint64=function(e){var t=o.from(e).zzEncode();return this._push(y,t.length(),t)},h.prototype.bool=function(e){return this._push(d,1,e?1:0)},h.prototype.sfixed32=h.prototype.fixed32=function(e){return this._push(m,4,e>>>0)},h.prototype.sfixed64=h.prototype.fixed64=function(e){var t=o.from(e);return this._push(m,4,t.lo)._push(m,4,t.hi)},h.prototype.float=function(e){return this._push(n.float.writeFloatLE,4,e)},h.prototype.double=function(e){return this._push(n.float.writeDoubleLE,8,e)};var v=n.Array.prototype.set?function(e,t,r){t.set(e,r)}:function(e,t,r){for(var i=0;i<e.length;++i)t[r+i]=e[i]};h.prototype.bytes=function(e){var t,r=e.length>>>0;return r?(n.isString(e)&&(t=h.alloc(r=s.length(e)),s.decode(e,t,0),e=t),this.uint32(r)._push(v,r,e)):this._push(d,1,0)},h.prototype.string=function(e){var t=a.length(e);return t?this.uint32(t)._push(a.write,t,e):this._push(d,1,0)},h.prototype.fork=function(){return this.states=new u(this),this.head=this.tail=new f(l,0,0),this.len=0,this},h.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new f(l,0,0),this.len=0),this},h.prototype.ldelim=function(){var e=this.head,t=this.tail,r=this.len;return this.reset().uint32(r),r&&(this.tail.next=e.next,this.tail=t,this.len+=r),this},h.prototype.finish=function(){for(var e=this.head.next,t=this.constructor.alloc(this.len),r=0;e;)e.fn(e.val,t,r),r+=e.len,e=e.next;return t},h._configure=function(e){i=e,h.create=c(),i._configure()}},function(e,t,r){"use strict";e.exports=f;var i,n=r(1),o=n.LongBits,s=n.utf8;function a(e,t){return RangeError("index out of range: "+e.pos+" + "+(t||1)+" > "+e.len)}function f(e){this.buf=e,this.pos=0,this.len=e.length}function l(){return n.Buffer?function(e){return(f.create=function(e){return n.Buffer.isBuffer(e)?new i(e):h(e)})(e)}:h}var u,h="undefined"!=typeof Uint8Array?function(e){if(e instanceof Uint8Array||Array.isArray(e))return new f(e);throw Error("illegal buffer")}:function(e){if(Array.isArray(e))return new f(e);throw Error("illegal buffer")};function c(){var e=new o(0,0),t=0;if(!(4<this.len-this.pos)){for(;t<3;++t){if(this.pos>=this.len)throw a(this);if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(127&this.buf[this.pos++])<<7*t)>>>0,e}for(;t<4;++t)if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(127&this.buf[this.pos])<<28)>>>0,e.hi=(e.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return e;if(t=0,4<this.len-this.pos){for(;t<5;++t)if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw a(this);if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}function d(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}function p(){if(this.pos+8>this.len)throw a(this,8);return new o(d(this.buf,this.pos+=4),d(this.buf,this.pos+=4))}f.create=l(),f.prototype._slice=n.Array.prototype.subarray||n.Array.prototype.slice,f.prototype.uint32=(u=4294967295,function(){if(u=(127&this.buf[this.pos])>>>0,this.buf[this.pos++]<128)return u;if(u=(u|(127&this.buf[this.pos])<<7)>>>0,this.buf[this.pos++]<128)return u;if(u=(u|(127&this.buf[this.pos])<<14)>>>0,this.buf[this.pos++]<128)return u;if(u=(u|(127&this.buf[this.pos])<<21)>>>0,this.buf[this.pos++]<128)return u;if(u=(u|(15&this.buf[this.pos])<<28)>>>0,this.buf[this.pos++]<128)return u;if((this.pos+=5)>this.len)throw this.pos=this.len,a(this,10);return u}),f.prototype.int32=function(){return 0|this.uint32()},f.prototype.sint32=function(){var e=this.uint32();return e>>>1^-(1&e)|0},f.prototype.bool=function(){return 0!==this.uint32()},f.prototype.fixed32=function(){if(this.pos+4>this.len)throw a(this,4);return d(this.buf,this.pos+=4)},f.prototype.sfixed32=function(){if(this.pos+4>this.len)throw a(this,4);return 0|d(this.buf,this.pos+=4)},f.prototype.float=function(){if(this.pos+4>this.len)throw a(this,4);var e=n.float.readFloatLE(this.buf,this.pos);return this.pos+=4,e},f.prototype.double=function(){if(this.pos+8>this.len)throw a(this,4);var e=n.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,e},f.prototype.bytes=function(){var e=this.uint32(),t=this.pos,r=this.pos+e;if(r>this.len)throw a(this,e);return this.pos+=e,Array.isArray(this.buf)?this.buf.slice(t,r):t===r?new this.buf.constructor(0):this._slice.call(this.buf,t,r)},f.prototype.string=function(){var e=this.bytes();return s.read(e,0,e.length)},f.prototype.skip=function(e){if("number"==typeof e){if(this.pos+e>this.len)throw a(this,e);this.pos+=e}else do{if(this.pos>=this.len)throw a(this)}while(128&this.buf[this.pos++]);return this},f.prototype.skipType=function(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;4!=(e=7&this.uint32());)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+e+" at offset "+this.pos)}return this},f._configure=function(e){i=e,f.create=l(),i._configure();var t=n.Long?"toLong":"toNumber";n.merge(f.prototype,{int64:function(){return c.call(this)[t](!1)},uint64:function(){return c.call(this)[t](!0)},sint64:function(){return c.call(this).zzDecode()[t](!1)},fixed64:function(){return p.call(this)[t](!0)},sfixed64:function(){return p.call(this)[t](!1)}})}},function(e,t,r){"use strict";e.exports=s;var i=r(3);((s.prototype=Object.create(i.prototype)).constructor=s).className="OneOf";var n=r(4),o=r(0);function s(e,t,r,n){if(Array.isArray(t)||(r=t,t=void 0),i.call(this,e,r),void 0!==t&&!Array.isArray(t))throw TypeError("fieldNames must be an Array");this.oneof=t||[],this.fieldsArray=[],this.comment=n}function a(e){if(e.parent)for(var t=0;t<e.fieldsArray.length;++t)e.fieldsArray[t].parent||e.parent.add(e.fieldsArray[t])}s.fromJSON=function(e,t){return new s(e,t.oneof,t.options,t.comment)},s.prototype.toJSON=function(e){var t=!!e&&Boolean(e.keepComments);return o.toObject(["options",this.options,"oneof",this.oneof,"comment",t?this.comment:void 0])},s.prototype.add=function(e){if(!(e instanceof n))throw TypeError("field must be a Field");return e.parent&&e.parent!==this.parent&&e.parent.remove(e),this.oneof.push(e.name),this.fieldsArray.push(e),a(e.partOf=this),this},s.prototype.remove=function(e){if(!(e instanceof n))throw TypeError("field must be a Field");var t=this.fieldsArray.indexOf(e);if(t<0)throw Error(e+" is not a member of "+this);return this.fieldsArray.splice(t,1),-1<(t=this.oneof.indexOf(e.name))&&this.oneof.splice(t,1),e.partOf=null,this},s.prototype.onAdd=function(e){i.prototype.onAdd.call(this,e);for(var t=0;t<this.oneof.length;++t){var r=e.get(this.oneof[t]);r&&!r.partOf&&(r.partOf=this).fieldsArray.push(r)}a(this)},s.prototype.onRemove=function(e){for(var t,r=0;r<this.fieldsArray.length;++r)(t=this.fieldsArray[r]).parent&&t.parent.remove(t);i.prototype.onRemove.call(this,e)},s.d=function(){for(var e=new Array(arguments.length),t=0;t<arguments.length;)e[t]=arguments[t++];return function(t,r){o.decorateType(t.constructor).add(new s(r,e)),Object.defineProperty(t,r,{get:o.oneOfGetter(e),set:o.oneOfSetter(e)})}}},function(e,t,r){"use strict";e.exports=n;var i=r(1);function n(e){if(e)for(var t=Object.keys(e),r=0;r<t.length;++r)this[t[r]]=e[t[r]]}n.create=function(e){return this.$type.create(e)},n.encode=function(e,t){return this.$type.encode(e,t)},n.encodeDelimited=function(e,t){return this.$type.encodeDelimited(e,t)},n.decode=function(e){return this.$type.decode(e)},n.decodeDelimited=function(e){return this.$type.decodeDelimited(e)},n.verify=function(e){return this.$type.verify(e)},n.fromObject=function(e){return this.$type.fromObject(e)},n.toObject=function(e,t){return this.$type.toObject(e,t)},n.prototype.toJSON=function(){return this.$type.toObject(this,i.toJSONOptions)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(32),n=JSON.parse('{"nested":{"com":{"nested":{"opensource":{"nested":{"svga":{"options":{"objc_class_prefix":"SVGAProto","java_package":"com.opensource.svgaplayer.proto"},"nested":{"MovieParams":{"fields":{"viewBoxWidth":{"type":"float","id":1},"viewBoxHeight":{"type":"float","id":2},"fps":{"type":"int32","id":3},"frames":{"type":"int32","id":4}}},"SpriteEntity":{"fields":{"imageKey":{"type":"string","id":1},"frames":{"rule":"repeated","type":"FrameEntity","id":2},"matteKey":{"type":"string","id":3}}},"AudioEntity":{"fields":{"audioKey":{"type":"string","id":1},"startFrame":{"type":"int32","id":2},"endFrame":{"type":"int32","id":3},"startTime":{"type":"int32","id":4},"totalTime":{"type":"int32","id":5}}},"Layout":{"fields":{"x":{"type":"float","id":1},"y":{"type":"float","id":2},"width":{"type":"float","id":3},"height":{"type":"float","id":4}}},"Transform":{"fields":{"a":{"type":"float","id":1},"b":{"type":"float","id":2},"c":{"type":"float","id":3},"d":{"type":"float","id":4},"tx":{"type":"float","id":5},"ty":{"type":"float","id":6}}},"ShapeEntity":{"oneofs":{"args":{"oneof":["shape","rect","ellipse"]}},"fields":{"type":{"type":"ShapeType","id":1},"shape":{"type":"ShapeArgs","id":2},"rect":{"type":"RectArgs","id":3},"ellipse":{"type":"EllipseArgs","id":4},"styles":{"type":"ShapeStyle","id":10},"transform":{"type":"Transform","id":11}},"nested":{"ShapeType":{"values":{"SHAPE":0,"RECT":1,"ELLIPSE":2,"KEEP":3}},"ShapeArgs":{"fields":{"d":{"type":"string","id":1}}},"RectArgs":{"fields":{"x":{"type":"float","id":1},"y":{"type":"float","id":2},"width":{"type":"float","id":3},"height":{"type":"float","id":4},"cornerRadius":{"type":"float","id":5}}},"EllipseArgs":{"fields":{"x":{"type":"float","id":1},"y":{"type":"float","id":2},"radiusX":{"type":"float","id":3},"radiusY":{"type":"float","id":4}}},"ShapeStyle":{"fields":{"fill":{"type":"RGBAColor","id":1},"stroke":{"type":"RGBAColor","id":2},"strokeWidth":{"type":"float","id":3},"lineCap":{"type":"LineCap","id":4},"lineJoin":{"type":"LineJoin","id":5},"miterLimit":{"type":"float","id":6},"lineDashI":{"type":"float","id":7},"lineDashII":{"type":"float","id":8},"lineDashIII":{"type":"float","id":9}},"nested":{"RGBAColor":{"fields":{"r":{"type":"float","id":1},"g":{"type":"float","id":2},"b":{"type":"float","id":3},"a":{"type":"float","id":4}}},"LineCap":{"values":{"LineCap_BUTT":0,"LineCap_ROUND":1,"LineCap_SQUARE":2}},"LineJoin":{"values":{"LineJoin_MITER":0,"LineJoin_ROUND":1,"LineJoin_BEVEL":2}}}}}},"FrameEntity":{"fields":{"alpha":{"type":"float","id":1},"layout":{"type":"Layout","id":2},"transform":{"type":"Transform","id":3},"clipPath":{"type":"string","id":4},"shapes":{"rule":"repeated","type":"ShapeEntity","id":5}}},"MovieEntity":{"fields":{"version":{"type":"string","id":1},"params":{"type":"MovieParams","id":2},"images":{"keyType":"string","type":"bytes","id":3},"sprites":{"rule":"repeated","type":"SpriteEntity","id":4},"audios":{"rule":"repeated","type":"AudioEntity","id":5}}}}}}}}}}}');t.proto=i.Root.fromJSON(n),t.ProtoMovieEntity=t.proto.lookupType("com.opensource.svga.MovieEntity")},function(e,t,r){"use strict";e.exports=function(e,t){for(var r=new Array(arguments.length-1),i=0,n=2,o=!0;n<arguments.length;)r[i++]=arguments[n++];return new Promise((function(n,s){r[i]=function(e){if(o)if(o=!1,e)s(e);else{for(var t=new Array(arguments.length-1),r=0;r<t.length;)t[r++]=arguments[r];n.apply(null,t)}};try{e.apply(t||null,r)}catch(e){o&&(o=!1,s(e))}}))}},function(module,exports,__webpack_require__){"use strict";function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(e){}return null}module.exports=inquire},function(e,t,r){"use strict";t.Service=r(44)},function(e,t,r){"use strict";e.exports={}},function(e,t,r){"use strict";e.exports=function(e){for(var t,r=o.codegen(["m","w"],e.name+"$encode")("if(!w)")("w=Writer.create()"),a=e.fieldsArray.slice().sort(o.compareFieldsById),f=0;f<a.length;++f){var l=a[f].resolve(),u=e._fieldsArray.indexOf(l),h=l.resolvedType instanceof i?"int32":l.type,c=n.basic[h];t="m"+o.safeProp(l.name),l.map?(r("if(%s!=null&&Object.hasOwnProperty.call(m,%j)){",t,l.name)("for(var ks=Object.keys(%s),i=0;i<ks.length;++i){",t)("w.uint32(%i).fork().uint32(%i).%s(ks[i])",(l.id<<3|2)>>>0,8|n.mapKey[l.keyType],l.keyType),void 0===c?r("types[%i].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()",u,t):r(".uint32(%i).%s(%s[ks[i]]).ldelim()",16|c,h,t),r("}")("}")):l.repeated?(r("if(%s!=null&&%s.length){",t,t),l.packed&&void 0!==n.packed[h]?r("w.uint32(%i).fork()",(l.id<<3|2)>>>0)("for(var i=0;i<%s.length;++i)",t)("w.%s(%s[i])",h,t)("w.ldelim()"):(r("for(var i=0;i<%s.length;++i)",t),void 0===c?s(r,l,u,t+"[i]"):r("w.uint32(%i).%s(%s[i])",(l.id<<3|c)>>>0,h,t)),r("}")):(l.optional&&r("if(%s!=null&&Object.hasOwnProperty.call(m,%j))",t,l.name),void 0===c?s(r,l,u,t):r("w.uint32(%i).%s(%s)",(l.id<<3|c)>>>0,h,t))}return r("return w")};var i=r(2),n=r(6),o=r(0);function s(e,t,r,i){return t.resolvedType.group?e("types[%i].encode(%s,w.uint32(%i)).uint32(%i)",r,i,(t.id<<3|3)>>>0,(t.id<<3|4)>>>0):e("types[%i].encode(%s,w.uint32(%i).fork()).ldelim()",r,i,(t.id<<3|2)>>>0)}},function(e,t,r){"use strict";e.exports=g;var i=r(5);((g.prototype=Object.create(i.prototype)).constructor=g).className="Type";var n=r(2),o=r(10),s=r(4),a=r(19),f=r(20),l=r(11),u=r(9),h=r(8),c=r(0),d=r(17),p=r(22),y=r(23),m=r(24),v=r(25);function g(e,t){i.call(this,e,t),this.fields={},this.oneofs=void 0,this.extensions=void 0,this.reserved=void 0,this.group=void 0,this._fieldsById=null,this._fieldsArray=null,this._oneofsArray=null,this._ctor=null}function b(e){return e._fieldsById=e._fieldsArray=e._oneofsArray=null,delete e.encode,delete e.decode,delete e.verify,e}Object.defineProperties(g.prototype,{fieldsById:{get:function(){if(this._fieldsById)return this._fieldsById;this._fieldsById={};for(var e=Object.keys(this.fields),t=0;t<e.length;++t){var r=this.fields[e[t]],i=r.id;if(this._fieldsById[i])throw Error("duplicate id "+i+" in "+this);this._fieldsById[i]=r}return this._fieldsById}},fieldsArray:{get:function(){return this._fieldsArray||(this._fieldsArray=c.toArray(this.fields))}},oneofsArray:{get:function(){return this._oneofsArray||(this._oneofsArray=c.toArray(this.oneofs))}},ctor:{get:function(){return this._ctor||(this.ctor=g.generateConstructor(this)())},set:function(e){var t=e.prototype;t instanceof l||((e.prototype=new l).constructor=e,c.merge(e.prototype,t)),e.$type=e.prototype.$type=this,c.merge(e,l,!0),this._ctor=e;for(var r=0;r<this.fieldsArray.length;++r)this._fieldsArray[r].resolve();var i={};for(r=0;r<this.oneofsArray.length;++r)i[this._oneofsArray[r].resolve().name]={get:c.oneOfGetter(this._oneofsArray[r].oneof),set:c.oneOfSetter(this._oneofsArray[r].oneof)};r&&Object.defineProperties(e.prototype,i)}}}),g.generateConstructor=function(e){for(var t,r=c.codegen(["p"],e.name),i=0;i<e.fieldsArray.length;++i)(t=e._fieldsArray[i]).map?r("this%s={}",c.safeProp(t.name)):t.repeated&&r("this%s=[]",c.safeProp(t.name));return r("if(p)for(var ks=Object.keys(p),i=0;i<ks.length;++i)if(p[ks[i]]!=null)")("this[ks[i]]=p[ks[i]]")},g.fromJSON=function(e,t){var r=new g(e,t.options);r.extensions=t.extensions,r.reserved=t.reserved;for(var l=Object.keys(t.fields),u=0;u<l.length;++u)r.add((void 0!==t.fields[l[u]].keyType?a.fromJSON:s.fromJSON)(l[u],t.fields[l[u]]));if(t.oneofs)for(l=Object.keys(t.oneofs),u=0;u<l.length;++u)r.add(o.fromJSON(l[u],t.oneofs[l[u]]));if(t.nested)for(l=Object.keys(t.nested),u=0;u<l.length;++u){var h=t.nested[l[u]];r.add((void 0!==h.id?s.fromJSON:void 0!==h.fields?g.fromJSON:void 0!==h.values?n.fromJSON:void 0!==h.methods?f.fromJSON:i.fromJSON)(l[u],h))}return t.extensions&&t.extensions.length&&(r.extensions=t.extensions),t.reserved&&t.reserved.length&&(r.reserved=t.reserved),t.group&&(r.group=!0),t.comment&&(r.comment=t.comment),r},g.prototype.toJSON=function(e){var t=i.prototype.toJSON.call(this,e),r=!!e&&Boolean(e.keepComments);return c.toObject(["options",t&&t.options||void 0,"oneofs",i.arrayToJSON(this.oneofsArray,e),"fields",i.arrayToJSON(this.fieldsArray.filter((function(e){return!e.declaringField})),e)||{},"extensions",this.extensions&&this.extensions.length?this.extensions:void 0,"reserved",this.reserved&&this.reserved.length?this.reserved:void 0,"group",this.group||void 0,"nested",t&&t.nested||void 0,"comment",r?this.comment:void 0])},g.prototype.resolveAll=function(){for(var e=this.fieldsArray,t=0;t<e.length;)e[t++].resolve();var r=this.oneofsArray;for(t=0;t<r.length;)r[t++].resolve();return i.prototype.resolveAll.call(this)},g.prototype.get=function(e){return this.fields[e]||this.oneofs&&this.oneofs[e]||this.nested&&this.nested[e]||null},g.prototype.add=function(e){if(this.get(e.name))throw Error("duplicate name '"+e.name+"' in "+this);if(e instanceof s&&void 0===e.extend){if(this._fieldsById?this._fieldsById[e.id]:this.fieldsById[e.id])throw Error("duplicate id "+e.id+" in "+this);if(this.isReservedId(e.id))throw Error("id "+e.id+" is reserved in "+this);if(this.isReservedName(e.name))throw Error("name '"+e.name+"' is reserved in "+this);return e.parent&&e.parent.remove(e),(this.fields[e.name]=e).message=this,e.onAdd(this),b(this)}return e instanceof o?(this.oneofs||(this.oneofs={}),(this.oneofs[e.name]=e).onAdd(this),b(this)):i.prototype.add.call(this,e)},g.prototype.remove=function(e){if(e instanceof s&&void 0===e.extend){if(!this.fields||this.fields[e.name]!==e)throw Error(e+" is not a member of "+this);return delete this.fields[e.name],e.parent=null,e.onRemove(this),b(this)}if(e instanceof o){if(!this.oneofs||this.oneofs[e.name]!==e)throw Error(e+" is not a member of "+this);return delete this.oneofs[e.name],e.parent=null,e.onRemove(this),b(this)}return i.prototype.remove.call(this,e)},g.prototype.isReservedId=function(e){return i.isReservedId(this.reserved,e)},g.prototype.isReservedName=function(e){return i.isReservedName(this.reserved,e)},g.prototype.create=function(e){return new this.ctor(e)},g.prototype.setup=function(){for(var e=this.fullName,t=[],r=0;r<this.fieldsArray.length;++r)t.push(this._fieldsArray[r].resolve().resolvedType);this.encode=d(this)({Writer:h,types:t,util:c}),this.decode=p(this)({Reader:u,types:t,util:c}),this.verify=y(this)({types:t,util:c}),this.fromObject=m.fromObject(this)({types:t,util:c}),this.toObject=m.toObject(this)({types:t,util:c});var i,n=v[e];return n&&((i=Object.create(this)).fromObject=this.fromObject,this.fromObject=n.fromObject.bind(i),i.toObject=this.toObject,this.toObject=n.toObject.bind(i)),this},g.prototype.encode=function(e,t){return this.setup().encode(e,t)},g.prototype.encodeDelimited=function(e,t){return this.encode(e,t&&t.len?t.fork():t).ldelim()},g.prototype.decode=function(e,t){return this.setup().decode(e,t)},g.prototype.decodeDelimited=function(e){return e instanceof u||(e=u.create(e)),this.decode(e,e.uint32())},g.prototype.verify=function(e){return this.setup().verify(e)},g.prototype.fromObject=function(e){return this.setup().fromObject(e)},g.prototype.toObject=function(e,t){return this.setup().toObject(e,t)},g.d=function(e){return function(t){c.decorateType(t,e)}}},function(e,t,r){"use strict";e.exports=s;var i=r(4);((s.prototype=Object.create(i.prototype)).constructor=s).className="MapField";var n=r(6),o=r(0);function s(e,t,r,n,s,a){if(i.call(this,e,t,n,void 0,void 0,s,a),!o.isString(r))throw TypeError("keyType must be a string");this.keyType=r,this.resolvedKeyType=null,this.map=!0}s.fromJSON=function(e,t){return new s(e,t.id,t.keyType,t.type,t.options,t.comment)},s.prototype.toJSON=function(e){var t=!!e&&Boolean(e.keepComments);return o.toObject(["keyType",this.keyType,"type",this.type,"id",this.id,"extend",this.extend,"options",this.options,"comment",t?this.comment:void 0])},s.prototype.resolve=function(){if(this.resolved)return this;if(void 0===n.mapKey[this.keyType])throw Error("invalid key type: "+this.keyType);return i.prototype.resolve.call(this)},s.d=function(e,t,r){return"function"==typeof r?r=o.decorateType(r).name:r&&"object"==typeof r&&(r=o.decorateEnum(r).name),function(i,n){o.decorateType(i.constructor).add(new s(n,e,t,r))}}},function(e,t,r){"use strict";e.exports=a;var i=r(5);((a.prototype=Object.create(i.prototype)).constructor=a).className="Service";var n=r(21),o=r(0),s=r(15);function a(e,t){i.call(this,e,t),this.methods={},this._methodsArray=null}function f(e){return e._methodsArray=null,e}a.fromJSON=function(e,t){var r=new a(e,t.options);if(t.methods)for(var i=Object.keys(t.methods),o=0;o<i.length;++o)r.add(n.fromJSON(i[o],t.methods[i[o]]));return t.nested&&r.addJSON(t.nested),r.comment=t.comment,r},a.prototype.toJSON=function(e){var t=i.prototype.toJSON.call(this,e),r=!!e&&Boolean(e.keepComments);return o.toObject(["options",t&&t.options||void 0,"methods",i.arrayToJSON(this.methodsArray,e)||{},"nested",t&&t.nested||void 0,"comment",r?this.comment:void 0])},Object.defineProperty(a.prototype,"methodsArray",{get:function(){return this._methodsArray||(this._methodsArray=o.toArray(this.methods))}}),a.prototype.get=function(e){return this.methods[e]||i.prototype.get.call(this,e)},a.prototype.resolveAll=function(){for(var e=this.methodsArray,t=0;t<e.length;++t)e[t].resolve();return i.prototype.resolve.call(this)},a.prototype.add=function(e){if(this.get(e.name))throw Error("duplicate name '"+e.name+"' in "+this);return e instanceof n?f((this.methods[e.name]=e).parent=this):i.prototype.add.call(this,e)},a.prototype.remove=function(e){if(e instanceof n){if(this.methods[e.name]!==e)throw Error(e+" is not a member of "+this);return delete this.methods[e.name],e.parent=null,f(this)}return i.prototype.remove.call(this,e)},a.prototype.create=function(e,t,r){for(var i,n=new s.Service(e,t,r),a=0;a<this.methodsArray.length;++a){var f=o.lcFirst((i=this._methodsArray[a]).resolve().name).replace(/[^$\w_]/g,"");n[f]=o.codegen(["r","c"],o.isReserved(f)?f+"_":f)("return this.rpcCall(m,q,s,r,c)")({m:i,q:i.resolvedRequestType.ctor,s:i.resolvedResponseType.ctor})}return n}},function(e,t,r){"use strict";e.exports=o;var i=r(3);((o.prototype=Object.create(i.prototype)).constructor=o).className="Method";var n=r(0);function o(e,t,r,o,s,a,f,l){if(n.isObject(s)?(f=s,s=a=void 0):n.isObject(a)&&(f=a,a=void 0),void 0!==t&&!n.isString(t))throw TypeError("type must be a string");if(!n.isString(r))throw TypeError("requestType must be a string");if(!n.isString(o))throw TypeError("responseType must be a string");i.call(this,e,f),this.type=t||"rpc",this.requestType=r,this.requestStream=!!s||void 0,this.responseType=o,this.responseStream=!!a||void 0,this.resolvedRequestType=null,this.resolvedResponseType=null,this.comment=l}o.fromJSON=function(e,t){return new o(e,t.type,t.requestType,t.responseType,t.requestStream,t.responseStream,t.options,t.comment)},o.prototype.toJSON=function(e){var t=!!e&&Boolean(e.keepComments);return n.toObject(["type","rpc"!==this.type&&this.type||void 0,"requestType",this.requestType,"requestStream",this.requestStream,"responseType",this.responseType,"responseStream",this.responseStream,"options",this.options,"comment",t?this.comment:void 0])},o.prototype.resolve=function(){return this.resolved?this:(this.resolvedRequestType=this.parent.lookupType(this.requestType),this.resolvedResponseType=this.parent.lookupType(this.responseType),i.prototype.resolve.call(this))}},function(e,t,r){"use strict";e.exports=function(e){var t=o.codegen(["r","l"],e.name+"$decode")("if(!(r instanceof Reader))")("r=Reader.create(r)")("var c=l===undefined?r.len:r.pos+l,m=new this.ctor"+(e.fieldsArray.filter((function(e){return e.map})).length?",k":""))("while(r.pos<c){")("var t=r.uint32()");e.group&&t("if((t&7)===4)")("break"),t("switch(t>>>3){");for(var r=0;r<e.fieldsArray.length;++r){var s=e._fieldsArray[r].resolve(),a=s.resolvedType instanceof i?"int32":s.type,f="m"+o.safeProp(s.name);t("case %i:",s.id),s.map?(t("r.skip().pos++")("if(%s===util.emptyObject)",f)("%s={}",f)("k=r.%s()",s.keyType)("r.pos++"),void 0!==n.long[s.keyType]?void 0===n.basic[a]?t('%s[typeof k==="object"?util.longToHash(k):k]=types[%i].decode(r,r.uint32())',f,r):t('%s[typeof k==="object"?util.longToHash(k):k]=r.%s()',f,a):void 0===n.basic[a]?t("%s[k]=types[%i].decode(r,r.uint32())",f,r):t("%s[k]=r.%s()",f,a)):s.repeated?(t("if(!(%s&&%s.length))",f,f)("%s=[]",f),void 0!==n.packed[a]&&t("if((t&7)===2){")("var c2=r.uint32()+r.pos")("while(r.pos<c2)")("%s.push(r.%s())",f,a)("}else"),void 0===n.basic[a]?t(s.resolvedType.group?"%s.push(types[%i].decode(r))":"%s.push(types[%i].decode(r,r.uint32()))",f,r):t("%s.push(r.%s())",f,a)):void 0===n.basic[a]?t(s.resolvedType.group?"%s=types[%i].decode(r)":"%s=types[%i].decode(r,r.uint32())",f,r):t("%s=r.%s()",f,a),t("break")}for(t("default:")("r.skipType(t&7)")("break")("}")("}"),r=0;r<e._fieldsArray.length;++r){var l=e._fieldsArray[r];l.required&&t("if(!m.hasOwnProperty(%j))",l.name)("throw util.ProtocolError(%j,{instance:m})","missing required '"+l.name+"'")}return t("return m")};var i=r(2),n=r(6),o=r(0)},function(e,t,r){"use strict";e.exports=function(e){var t=n.codegen(["m"],e.name+"$verify")('if(typeof m!=="object"||m===null)')("return%j","object expected"),r={};e.oneofsArray.length&&t("var p={}");for(var i=0;i<e.fieldsArray.length;++i){var f,l=e._fieldsArray[i].resolve(),u="m"+n.safeProp(l.name);l.optional&&t("if(%s!=null&&m.hasOwnProperty(%j)){",u,l.name),l.map?(t("if(!util.isObject(%s))",u)("return%j",o(l,"object"))("var k=Object.keys(%s)",u)("for(var i=0;i<k.length;++i){"),a(t,l,"k[i]"),s(t,l,i,u+"[k[i]]")("}")):l.repeated?(t("if(!Array.isArray(%s))",u)("return%j",o(l,"array"))("for(var i=0;i<%s.length;++i){",u),s(t,l,i,u+"[i]")("}")):(l.partOf&&(f=n.safeProp(l.partOf.name),1===r[l.partOf.name]&&t("if(p%s===1)",f)("return%j",l.partOf.name+": multiple values"),r[l.partOf.name]=1,t("p%s=1",f)),s(t,l,i,u)),l.optional&&t("}")}return t("return null")};var i=r(2),n=r(0);function o(e,t){return e.name+": "+t+(e.repeated&&"array"!==t?"[]":e.map&&"object"!==t?"{k:"+e.keyType+"}":"")+" expected"}function s(e,t,r,n){if(t.resolvedType)if(t.resolvedType instanceof i){e("switch(%s){",n)("default:")("return%j",o(t,"enum value"));for(var s=Object.keys(t.resolvedType.values),a=0;a<s.length;++a)e("case %i:",t.resolvedType.values[s[a]]);e("break")("}")}else e("{")("var e=types[%i].verify(%s);",r,n)("if(e)")("return%j+e",t.name+".")("}");else switch(t.type){case"int32":case"uint32":case"sint32":case"fixed32":case"sfixed32":e("if(!util.isInteger(%s))",n)("return%j",o(t,"integer"));break;case"int64":case"uint64":case"sint64":case"fixed64":case"sfixed64":e("if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))",n,n,n,n)("return%j",o(t,"integer|Long"));break;case"float":case"double":e('if(typeof %s!=="number")',n)("return%j",o(t,"number"));break;case"bool":e('if(typeof %s!=="boolean")',n)("return%j",o(t,"boolean"));break;case"string":e("if(!util.isString(%s))",n)("return%j",o(t,"string"));break;case"bytes":e('if(!(%s&&typeof %s.length==="number"||util.isString(%s)))',n,n,n)("return%j",o(t,"buffer"))}return e}function a(e,t,r){switch(t.keyType){case"int32":case"uint32":case"sint32":case"fixed32":case"sfixed32":e("if(!util.key32Re.test(%s))",r)("return%j",o(t,"integer key"));break;case"int64":case"uint64":case"sint64":case"fixed64":case"sfixed64":e("if(!util.key64Re.test(%s))",r)("return%j",o(t,"integer|Long key"));break;case"bool":e("if(!util.key2Re.test(%s))",r)("return%j",o(t,"boolean key"))}return e}},function(e,t,r){"use strict";var i=t,n=r(2),o=r(0);function s(e,t,r,i){if(t.resolvedType)if(t.resolvedType instanceof n){e("switch(d%s){",i);for(var o=t.resolvedType.values,s=Object.keys(o),a=0;a<s.length;++a)t.repeated&&o[s[a]]===t.typeDefault&&e("default:"),e("case%j:",s[a])("case %i:",o[s[a]])("m%s=%j",i,o[s[a]])("break");e("}")}else e('if(typeof d%s!=="object")',i)("throw TypeError(%j)",t.fullName+": object expected")("m%s=types[%i].fromObject(d%s)",i,r,i);else{var f=!1;switch(t.type){case"double":case"float":e("m%s=Number(d%s)",i,i);break;case"uint32":case"fixed32":e("m%s=d%s>>>0",i,i);break;case"int32":case"sint32":case"sfixed32":e("m%s=d%s|0",i,i);break;case"uint64":f=!0;case"int64":case"sint64":case"fixed64":case"sfixed64":e("if(util.Long)")("(m%s=util.Long.fromValue(d%s)).unsigned=%j",i,i,f)('else if(typeof d%s==="string")',i)("m%s=parseInt(d%s,10)",i,i)('else if(typeof d%s==="number")',i)("m%s=d%s",i,i)('else if(typeof d%s==="object")',i)("m%s=new util.LongBits(d%s.low>>>0,d%s.high>>>0).toNumber(%s)",i,i,i,f?"true":"");break;case"bytes":e('if(typeof d%s==="string")',i)("util.base64.decode(d%s,m%s=util.newBuffer(util.base64.length(d%s)),0)",i,i,i)("else if(d%s.length)",i)("m%s=d%s",i,i);break;case"string":e("m%s=String(d%s)",i,i);break;case"bool":e("m%s=Boolean(d%s)",i,i)}}return e}function a(e,t,r,i){if(t.resolvedType)t.resolvedType instanceof n?e("d%s=o.enums===String?types[%i].values[m%s]:m%s",i,r,i,i):e("d%s=types[%i].toObject(m%s,o)",i,r,i);else{var o=!1;switch(t.type){case"double":case"float":e("d%s=o.json&&!isFinite(m%s)?String(m%s):m%s",i,i,i,i);break;case"uint64":o=!0;case"int64":case"sint64":case"fixed64":case"sfixed64":e('if(typeof m%s==="number")',i)("d%s=o.longs===String?String(m%s):m%s",i,i,i)("else")("d%s=o.longs===String?util.Long.prototype.toString.call(m%s):o.longs===Number?new util.LongBits(m%s.low>>>0,m%s.high>>>0).toNumber(%s):m%s",i,i,i,i,o?"true":"",i);break;case"bytes":e("d%s=o.bytes===String?util.base64.encode(m%s,0,m%s.length):o.bytes===Array?Array.prototype.slice.call(m%s):m%s",i,i,i,i,i);break;default:e("d%s=m%s",i,i)}}return e}i.fromObject=function(e){var t=e.fieldsArray,r=o.codegen(["d"],e.name+"$fromObject")("if(d instanceof this.ctor)")("return d");if(!t.length)return r("return new this.ctor");r("var m=new this.ctor");for(var i=0;i<t.length;++i){var a=t[i].resolve(),f=o.safeProp(a.name);a.map?(r("if(d%s){",f)('if(typeof d%s!=="object")',f)("throw TypeError(%j)",a.fullName+": object expected")("m%s={}",f)("for(var ks=Object.keys(d%s),i=0;i<ks.length;++i){",f),s(r,a,i,f+"[ks[i]]")("}")("}")):a.repeated?(r("if(d%s){",f)("if(!Array.isArray(d%s))",f)("throw TypeError(%j)",a.fullName+": array expected")("m%s=[]",f)("for(var i=0;i<d%s.length;++i){",f),s(r,a,i,f+"[i]")("}")("}")):(a.resolvedType instanceof n||r("if(d%s!=null){",f),s(r,a,i,f),a.resolvedType instanceof n||r("}"))}return r("return m")},i.toObject=function(e){var t=e.fieldsArray.slice().sort(o.compareFieldsById);if(!t.length)return o.codegen()("return {}");for(var r=o.codegen(["m","o"],e.name+"$toObject")("if(!o)")("o={}")("var d={}"),i=[],s=[],f=[],l=0;l<t.length;++l)t[l].partOf||(t[l].resolve().repeated?i:t[l].map?s:f).push(t[l]);if(i.length){for(r("if(o.arrays||o.defaults){"),l=0;l<i.length;++l)r("d%s=[]",o.safeProp(i[l].name));r("}")}if(s.length){for(r("if(o.objects||o.defaults){"),l=0;l<s.length;++l)r("d%s={}",o.safeProp(s[l].name));r("}")}if(f.length){for(r("if(o.defaults){"),l=0;l<f.length;++l){var u,h=f[l],c=o.safeProp(h.name);h.resolvedType instanceof n?r("d%s=o.enums===String?%j:%j",c,h.resolvedType.valuesById[h.typeDefault],h.typeDefault):h.long?r("if(util.Long){")("var n=new util.Long(%i,%i,%j)",h.typeDefault.low,h.typeDefault.high,h.typeDefault.unsigned)("d%s=o.longs===String?n.toString():o.longs===Number?n.toNumber():n",c)("}else")("d%s=o.longs===String?%j:%i",c,h.typeDefault.toString(),h.typeDefault.toNumber()):h.bytes?(u="["+Array.prototype.slice.call(h.typeDefault).join(",")+"]",r("if(o.bytes===String)d%s=%j",c,String.fromCharCode.apply(String,h.typeDefault))("else{")("d%s=%s",c,u)("if(o.bytes!==Array)d%s=util.newBuffer(d%s)",c,c)("}")):r("d%s=%j",c,h.typeDefault)}r("}")}var d=!1;for(l=0;l<t.length;++l){h=t[l];var p=e._fieldsArray.indexOf(h);c=o.safeProp(h.name);h.map?(d||(d=!0,r("var ks2")),r("if(m%s&&(ks2=Object.keys(m%s)).length){",c,c)("d%s={}",c)("for(var j=0;j<ks2.length;++j){"),a(r,h,p,c+"[ks2[j]]")("}")):h.repeated?(r("if(m%s&&m%s.length){",c,c)("d%s=[]",c)("for(var j=0;j<m%s.length;++j){",c),a(r,h,p,c+"[j]")("}")):(r("if(m%s!=null&&m.hasOwnProperty(%j)){",c,h.name),a(r,h,p,c),h.partOf&&r("if(o.oneofs)")("d%s=%j",o.safeProp(h.partOf.name),h.name)),r("}")}return r("return d")}},function(e,t,r){"use strict";var i=t,n=r(11);i[".google.protobuf.Any"]={fromObject:function(e){if(e&&e["@type"]){var t=this.lookup(e["@type"]);if(t){var r="."===e["@type"].charAt(0)?e["@type"].substr(1):e["@type"];return this.create({type_url:"/"+r,value:t.encode(t.fromObject(e)).finish()})}}return this.fromObject(e)},toObject:function(e,t){var r,i;if(t&&t.json&&e.type_url&&e.value&&(r=e.type_url.substring(e.type_url.lastIndexOf("/")+1),(i=this.lookup(r))&&(e=i.decode(e.value))),e instanceof this.ctor||!(e instanceof n))return this.toObject(e,t);var o=e.$type.toObject(e,t);return o["@type"]=e.$type.fullName,o}}},function(e,t,r){"use strict";e.exports=h;var i=r(5);((h.prototype=Object.create(i.prototype)).constructor=h).className="Root";var n,o,s,a=r(4),f=r(2),l=r(10),u=r(0);function h(e){i.call(this,"",e),this.deferred=[],this.files=[]}function c(){}h.fromJSON=function(e,t){return t=t||new h,e.options&&t.setOptions(e.options),t.addJSON(e.nested)},h.prototype.resolvePath=u.path.resolve,h.prototype.load=function e(t,r,i){"function"==typeof r&&(i=r,r=void 0);var n=this;if(!i)return u.asPromise(e,n,t,r);var a=i===c;function f(e,t){if(i){var r=i;if(i=null,a)throw e;r(e,t)}}function l(e){var t=e.lastIndexOf("google/protobuf/");if(-1<t){var r=e.substring(t);if(r in s)return r}return null}function h(e,t){try{if(u.isString(t)&&"{"===t.charAt(0)&&(t=JSON.parse(t)),u.isString(t)){o.filename=e;var i,s=o(t,n,r),h=0;if(s.imports)for(;h<s.imports.length;++h)(i=l(s.imports[h])||n.resolvePath(e,s.imports[h]))&&d(i);if(s.weakImports)for(h=0;h<s.weakImports.length;++h)(i=l(s.weakImports[h])||n.resolvePath(e,s.weakImports[h]))&&d(i,!0)}else n.setOptions(t.options).addJSON(t.nested)}catch(e){f(e)}a||p||f(null,n)}function d(e,t){if(!(-1<n.files.indexOf(e)))if(n.files.push(e),e in s)a?h(e,s[e]):(++p,setTimeout((function(){--p,h(e,s[e])})));else if(a){var r;try{r=u.fs.readFileSync(e).toString("utf8")}catch(r){return void(t||f(r))}h(e,r)}else++p,u.fetch(e,(function(r,o){--p,i&&(r?t?p||f(null,n):f(r):h(e,o))}))}var p=0;u.isString(t)&&(t=[t]);for(var y,m=0;m<t.length;++m)(y=n.resolvePath("",t[m]))&&d(y);if(a)return n;p||f(null,n)},h.prototype.loadSync=function(e,t){if(!u.isNode)throw Error("not supported");return this.load(e,t,c)},h.prototype.resolveAll=function(){if(this.deferred.length)throw Error("unresolvable extensions: "+this.deferred.map((function(e){return"'extend "+e.extend+"' in "+e.parent.fullName})).join(", "));return i.prototype.resolveAll.call(this)};var d=/^[A-Z]/;function p(e,t){var r=t.parent.lookup(t.extend);if(r){var i=new a(t.fullName,t.id,t.type,t.rule,void 0,t.options);return(i.declaringField=t).extensionField=i,r.add(i),1}}h.prototype._handleAdd=function(e){if(e instanceof a)void 0===e.extend||e.extensionField||p(0,e)||this.deferred.push(e);else if(e instanceof f)d.test(e.name)&&(e.parent[e.name]=e.values);else if(!(e instanceof l)){if(e instanceof n)for(var t=0;t<this.deferred.length;)p(0,this.deferred[t])?this.deferred.splice(t,1):++t;for(var r=0;r<e.nestedArray.length;++r)this._handleAdd(e._nestedArray[r]);d.test(e.name)&&(e.parent[e.name]=e)}},h.prototype._handleRemove=function(e){var t;if(e instanceof a)void 0!==e.extend&&(e.extensionField?(e.extensionField.parent.remove(e.extensionField),e.extensionField=null):-1<(t=this.deferred.indexOf(e))&&this.deferred.splice(t,1));else if(e instanceof f)d.test(e.name)&&delete e.parent[e.name];else if(e instanceof i){for(var r=0;r<e.nestedArray.length;++r)this._handleRemove(e._nestedArray[r]);d.test(e.name)&&delete e.parent[e.name]}},h._configure=function(e,t,r){n=e,o=t,s=r}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(28),n=r(48);t.loadSvga=function(e,t,r){n.default(e,(function(e){var r=e.movie;r.version=e.ver;var n=e.images,o=new i.VideoEntity(r,n);t(o)}),r)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(29),n=r(12),o=(s.prototype.resetSprites=function(e){e.sprites instanceof Array&&(this.sprites=e.sprites.map((function(e){return new i.SpriteEntity(e)})))},s.prototype.destroy=function(){},s);function s(e,t){this.version="",this.videoSize={width:0,height:0},this.FPS=20,this.frames=0,this.images={},this.hasBeenCached=!1,this.sprites=[],this.audios=[],"object"==typeof e&&e.$type==n.ProtoMovieEntity?("object"==typeof e.params&&(this.version=e.ver,this.videoSize.width=e.params.viewBoxWidth||0,this.videoSize.height=e.params.viewBoxHeight||0,this.FPS=e.params.fps||20,this.frames=e.params.frames||0),this.resetSprites(e),this.audios=e.audios):e&&(e.movie&&(e.movie.viewBox&&(this.videoSize.width=parseFloat(e.movie.viewBox.width)||0,this.videoSize.height=parseFloat(e.movie.viewBox.height)||0),this.version=e.ver,this.FPS=parseInt(e.movie.fps)||20,this.frames=parseInt(e.movie.frames)||0),this.resetSprites(e)),t&&(this.images=t)}t.VideoEntity=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(30);t.SpriteEntity=function(e){this.matteKey=null,this.imageKey=null,this.frames=[],this.matteKey=e.matteKey,this.imageKey=e.imageKey,e.frames&&(this.frames=e.frames.map((function(e){return new i.FrameEntity(e)})))}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(31);t.FrameEntity=function e(t){this.alpha=0,this.transform={a:1,b:0,c:0,d:1,tx:0,ty:0},this.layout={x:0,y:0,width:0,height:0},this.nx=0,this.ny=0,this.maskPath=null,this.shapes=[],this.alpha=parseFloat(t.alpha)||0,t.layout&&(this.layout.x=parseFloat(t.layout.x)||0,this.layout.y=parseFloat(t.layout.y)||0,this.layout.width=parseFloat(t.layout.width)||0,this.layout.height=parseFloat(t.layout.height)||0),t.transform&&(this.transform.a=parseFloat(t.transform.a)||1,this.transform.b=parseFloat(t.transform.b)||0,this.transform.c=parseFloat(t.transform.c)||0,this.transform.d=parseFloat(t.transform.d)||1,this.transform.tx=parseFloat(t.transform.tx)||0,this.transform.ty=parseFloat(t.transform.ty)||0),t.clipPath&&0<t.clipPath.length&&(this.maskPath=new i.BezierPath(t.clipPath,void 0,{fill:"#000000"})),t.shapes&&(t.shapes instanceof Array&&t.shapes.forEach((function(e){switch(e.pathArgs=e.args,e.type){case 0:e.type="shape",e.pathArgs=e.shape;break;case 1:e.type="rect",e.pathArgs=e.rect;break;case 2:e.type="ellipse",e.pathArgs=e.ellipse;break;case 3:e.type="keep"}if(e.styles){e.styles.fill&&("number"==typeof e.styles.fill.r&&(e.styles.fill[0]=e.styles.fill.r),"number"==typeof e.styles.fill.g&&(e.styles.fill[1]=e.styles.fill.g),"number"==typeof e.styles.fill.b&&(e.styles.fill[2]=e.styles.fill.b),"number"==typeof e.styles.fill.a&&(e.styles.fill[3]=e.styles.fill.a)),e.styles.stroke&&("number"==typeof e.styles.stroke.r&&(e.styles.stroke[0]=e.styles.stroke.r),"number"==typeof e.styles.stroke.g&&(e.styles.stroke[1]=e.styles.stroke.g),"number"==typeof e.styles.stroke.b&&(e.styles.stroke[2]=e.styles.stroke.b),"number"==typeof e.styles.stroke.a&&(e.styles.stroke[3]=e.styles.stroke.a));var t=e.styles.lineDash||[];switch(0<e.styles.lineDashI&&t.push(e.styles.lineDashI),0<e.styles.lineDashII&&(t.length<1&&t.push(0),t.push(e.styles.lineDashII),t.push(0)),0<e.styles.lineDashIII&&(t.length<2&&(t.push(0),t.push(0)),t[2]=e.styles.lineDashIII),e.styles.lineDash=t,e.styles.lineJoin){case 0:e.styles.lineJoin="miter";break;case 1:e.styles.lineJoin="round";break;case 2:e.styles.lineJoin="bevel"}switch(e.styles.lineCap){case 0:e.styles.lineCap="butt";break;case 1:e.styles.lineCap="round";break;case 2:e.styles.lineCap="square"}}})),t.shapes[0]&&"keep"===t.shapes[0].type?this.shapes=e.lastShapes:(this.shapes=t.shapes,e.lastShapes=t.shapes));var r=this.transform.a*this.layout.x+this.transform.c*this.layout.y+this.transform.tx,n=this.transform.a*(this.layout.x+this.layout.width)+this.transform.c*this.layout.y+this.transform.tx,o=this.transform.a*this.layout.x+this.transform.c*(this.layout.y+this.layout.height)+this.transform.tx,s=this.transform.a*(this.layout.x+this.layout.width)+this.transform.c*(this.layout.y+this.layout.height)+this.transform.tx,a=this.transform.b*this.layout.x+this.transform.d*this.layout.y+this.transform.ty,f=this.transform.b*(this.layout.x+this.layout.width)+this.transform.d*this.layout.y+this.transform.ty,l=this.transform.b*this.layout.x+this.transform.d*(this.layout.y+this.layout.height)+this.transform.ty,u=this.transform.b*(this.layout.x+this.layout.width)+this.transform.d*(this.layout.y+this.layout.height)+this.transform.ty;this.nx=Math.min(Math.min(o,s),Math.min(r,n)),this.ny=Math.min(Math.min(l,u),Math.min(a,f))}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BezierPath=function(e,t,r){this._d=e,this._transform=t,this._styles=r}},function(e,t,r){"use strict";e.exports=r(33)},function(e,t,r){"use strict";var i=e.exports=r(34);i.build="light",i.load=function(e,t,r){return(t="function"==typeof t?(r=t,new i.Root):t||new i.Root).load(e,r)},i.loadSync=function(e,t){return(t=t||new i.Root).loadSync(e)},i.encoder=r(17),i.decoder=r(22),i.verifier=r(23),i.converter=r(24),i.ReflectionObject=r(3),i.Namespace=r(5),i.Root=r(26),i.Enum=r(2),i.Type=r(18),i.Field=r(4),i.OneOf=r(10),i.MapField=r(19),i.Service=r(20),i.Method=r(21),i.Message=r(11),i.wrappers=r(25),i.types=r(6),i.util=r(0),i.ReflectionObject._configure(i.Root),i.Namespace._configure(i.Type,i.Service,i.Enum),i.Root._configure(i.Type),i.Field._configure(i.Type)},function(e,t,r){"use strict";var i=t;i.build="minimal",i.Writer=r(8),i.BufferWriter=r(42),i.Reader=r(9),i.BufferReader=r(43),i.util=r(1),i.rpc=r(15),i.roots=r(16),(i.configure=function(){i.util._configure(),i.Writer._configure(i.BufferWriter),i.Reader._configure(i.BufferReader)})()},function(e,t){var r=function(){return this}();try{r=r||new Function("return this")()}catch(e){"object"==typeof window&&(r=window)}e.exports=r},function(e,t,r){"use strict";var i=t;i.length=function(e){var t=e.length;if(!t)return 0;for(var r=0;1<--t%4&&"="===e.charAt(t);)++r;return Math.ceil(3*e.length)/4-r};for(var n=new Array(64),o=new Array(123),s=0;s<64;)o[n[s]=s<26?s+65:s<52?s+71:s<62?s-4:s-59|43]=s++;i.encode=function(e,t,r){for(var i,o=null,s=[],a=0,f=0;t<r;){var l=e[t++];switch(f){case 0:s[a++]=n[l>>2],i=(3&l)<<4,f=1;break;case 1:s[a++]=n[i|l>>4],i=(15&l)<<2,f=2;break;case 2:s[a++]=n[i|l>>6],s[a++]=n[63&l],f=0}8191<a&&((o=o||[]).push(String.fromCharCode.apply(String,s)),a=0)}return f&&(s[a++]=n[i],s[a++]=61,1===f&&(s[a++]=61)),o?(a&&o.push(String.fromCharCode.apply(String,s.slice(0,a))),o.join("")):String.fromCharCode.apply(String,s.slice(0,a))};var a="invalid encoding";i.decode=function(e,t,r){for(var i,n=r,s=0,f=0;f<e.length;){var l=e.charCodeAt(f++);if(61===l&&1<s)break;if(void 0===(l=o[l]))throw Error(a);switch(s){case 0:i=l,s=1;break;case 1:t[r++]=i<<2|(48&l)>>4,i=l,s=2;break;case 2:t[r++]=(15&i)<<4|(60&l)>>2,i=l,s=3;break;case 3:t[r++]=(3&i)<<6|l,s=0}}if(1===s)throw Error(a);return r-n},i.test=function(e){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(e)}},function(e,t,r){"use strict";function i(){this._listeners={}}(e.exports=i).prototype.on=function(e,t,r){return(this._listeners[e]||(this._listeners[e]=[])).push({fn:t,ctx:r||this}),this},i.prototype.off=function(e,t){if(void 0===e)this._listeners={};else if(void 0===t)this._listeners[e]=[];else for(var r=this._listeners[e],i=0;i<r.length;)r[i].fn===t?r.splice(i,1):++i;return this},i.prototype.emit=function(e){var t=this._listeners[e];if(t){for(var r=[],i=1;i<arguments.length;)r.push(arguments[i++]);for(i=0;i<t.length;)t[i].fn.apply(t[i++].ctx,r)}return this}},function(e,t,r){"use strict";function i(e){function t(e,t,r,i){var n,o=t<0?1:0;o&&(t=-t),0===t?e(0<1/t?0:2147483648,r,i):isNaN(t)?e(2143289344,r,i):e(34028234663852886e22<t?(o<<31|2139095040)>>>0:t<11754943508222875e-54?(o<<31|Math.round(t/1401298464324817e-60))>>>0:(o<<31|(n=Math.floor(Math.log(t)/Math.LN2))+127<<23|8388607&Math.round(t*Math.pow(2,-n)*8388608))>>>0,r,i)}function r(e,t,r){var i=e(t,r),n=2*(i>>31)+1,o=i>>>23&255,s=8388607&i;return 255==o?s?NaN:1/0*n:0==o?1401298464324817e-60*n*s:n*Math.pow(2,o-150)*(8388608+s)}function i(e,t,r){h[0]=e,t[r]=c[0],t[r+1]=c[1],t[r+2]=c[2],t[r+3]=c[3]}function f(e,t,r){h[0]=e,t[r]=c[3],t[r+1]=c[2],t[r+2]=c[1],t[r+3]=c[0]}function l(e,t){return c[0]=e[t],c[1]=e[t+1],c[2]=e[t+2],c[3]=e[t+3],h[0]}function u(e,t){return c[3]=e[t],c[2]=e[t+1],c[1]=e[t+2],c[0]=e[t+3],h[0]}var h,c,d,p,y,m;function v(e,t,r,i,n,o){var s,a,f=i<0?1:0;f&&(i=-i),0===i?(e(0,n,o+t),e(0<1/i?0:2147483648,n,o+r)):isNaN(i)?(e(0,n,o+t),e(2146959360,n,o+r)):17976931348623157e292<i?(e(0,n,o+t),e((f<<31|2146435072)>>>0,n,o+r)):i<22250738585072014e-324?(e((s=i/5e-324)>>>0,n,o+t),e((f<<31|s/4294967296)>>>0,n,o+r)):(1024===(a=Math.floor(Math.log(i)/Math.LN2))&&(a=1023),e(4503599627370496*(s=i*Math.pow(2,-a))>>>0,n,o+t),e((f<<31|a+1023<<20|1048576*s&1048575)>>>0,n,o+r))}function g(e,t,r,i,n){var o=e(i,n+t),s=e(i,n+r),a=2*(s>>31)+1,f=s>>>20&2047,l=4294967296*(1048575&s)+o;return 2047==f?l?NaN:1/0*a:0==f?5e-324*a*l:a*Math.pow(2,f-1075)*(l+4503599627370496)}function b(e,t,r){p[0]=e,t[r]=y[0],t[r+1]=y[1],t[r+2]=y[2],t[r+3]=y[3],t[r+4]=y[4],t[r+5]=y[5],t[r+6]=y[6],t[r+7]=y[7]}function w(e,t,r){p[0]=e,t[r]=y[7],t[r+1]=y[6],t[r+2]=y[5],t[r+3]=y[4],t[r+4]=y[3],t[r+5]=y[2],t[r+6]=y[1],t[r+7]=y[0]}function k(e,t){return y[0]=e[t],y[1]=e[t+1],y[2]=e[t+2],y[3]=e[t+3],y[4]=e[t+4],y[5]=e[t+5],y[6]=e[t+6],y[7]=e[t+7],p[0]}function _(e,t){return y[7]=e[t],y[6]=e[t+1],y[5]=e[t+2],y[4]=e[t+3],y[3]=e[t+4],y[2]=e[t+5],y[1]=e[t+6],y[0]=e[t+7],p[0]}return"undefined"!=typeof Float32Array?(h=new Float32Array([-0]),d=128===(c=new Uint8Array(h.buffer))[3],e.writeFloatLE=d?i:f,e.writeFloatBE=d?f:i,e.readFloatLE=d?l:u,e.readFloatBE=d?u:l):(e.writeFloatLE=t.bind(null,n),e.writeFloatBE=t.bind(null,o),e.readFloatLE=r.bind(null,s),e.readFloatBE=r.bind(null,a)),"undefined"!=typeof Float64Array?(p=new Float64Array([-0]),m=128===(y=new Uint8Array(p.buffer))[7],e.writeDoubleLE=m?b:w,e.writeDoubleBE=m?w:b,e.readDoubleLE=m?k:_,e.readDoubleBE=m?_:k):(e.writeDoubleLE=v.bind(null,n,0,4),e.writeDoubleBE=v.bind(null,o,4,0),e.readDoubleLE=g.bind(null,s,0,4),e.readDoubleBE=g.bind(null,a,4,0)),e}function n(e,t,r){t[r]=255&e,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}function o(e,t,r){t[r]=e>>>24,t[r+1]=e>>>16&255,t[r+2]=e>>>8&255,t[r+3]=255&e}function s(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0}function a(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}e.exports=i(i)},function(e,t,r){"use strict";var i=t;i.length=function(e){for(var t=0,r=0,i=0;i<e.length;++i)(r=e.charCodeAt(i))<128?t+=1:r<2048?t+=2:55296==(64512&r)&&56320==(64512&e.charCodeAt(i+1))?(++i,t+=4):t+=3;return t},i.read=function(e,t,r){if(r-t<1)return"";for(var i,n=null,o=[],s=0;t<r;)(i=e[t++])<128?o[s++]=i:191<i&&i<224?o[s++]=(31&i)<<6|63&e[t++]:239<i&&i<365?(i=((7&i)<<18|(63&e[t++])<<12|(63&e[t++])<<6|63&e[t++])-65536,o[s++]=55296+(i>>10),o[s++]=56320+(1023&i)):o[s++]=(15&i)<<12|(63&e[t++])<<6|63&e[t++],8191<s&&((n=n||[]).push(String.fromCharCode.apply(String,o)),s=0);return n?(s&&n.push(String.fromCharCode.apply(String,o.slice(0,s))),n.join("")):String.fromCharCode.apply(String,o.slice(0,s))},i.write=function(e,t,r){for(var i,n,o=r,s=0;s<e.length;++s)(i=e.charCodeAt(s))<128?t[r++]=i:(i<2048?t[r++]=i>>6|192:(55296==(64512&i)&&56320==(64512&(n=e.charCodeAt(s+1)))?(i=65536+((1023&i)<<10)+(1023&n),++s,t[r++]=i>>18|240,t[r++]=i>>12&63|128):t[r++]=i>>12|224,t[r++]=i>>6&63|128),t[r++]=63&i|128);return r-o}},function(e,t,r){"use strict";e.exports=function(e,t,r){var i=r||8192,n=i>>>1,o=null,s=i;return function(r){if(r<1||n<r)return e(r);i<s+r&&(o=e(i),s=0);var a=t.call(o,s,s+=r);return 7&s&&(s=1+(7|s)),a}}},function(e,t,r){"use strict";e.exports=n;var i=r(1);function n(e,t){this.lo=e>>>0,this.hi=t>>>0}var o=n.zero=new n(0,0);o.toNumber=function(){return 0},o.zzEncode=o.zzDecode=function(){return this},o.length=function(){return 1};var s=n.zeroHash="\0\0\0\0\0\0\0\0";n.fromNumber=function(e){if(0===e)return o;var t=e<0;t&&(e=-e);var r=e>>>0,i=(e-r)/4294967296>>>0;return t&&(i=~i>>>0,r=~r>>>0,4294967295<++r&&(r=0,4294967295<++i&&(i=0))),new n(r,i)},n.from=function(e){if("number"==typeof e)return n.fromNumber(e);if(i.isString(e)){if(!i.Long)return n.fromNumber(parseInt(e,10));e=i.Long.fromString(e)}return e.low||e.high?new n(e.low>>>0,e.high>>>0):o},n.prototype.toNumber=function(e){if(!e&&this.hi>>>31){var t=1+~this.lo>>>0,r=~this.hi>>>0;return t||(r=r+1>>>0),-(t+4294967296*r)}return this.lo+4294967296*this.hi},n.prototype.toLong=function(e){return i.Long?new i.Long(0|this.lo,0|this.hi,Boolean(e)):{low:0|this.lo,high:0|this.hi,unsigned:Boolean(e)}};var a=String.prototype.charCodeAt;n.fromHash=function(e){return e===s?o:new n((a.call(e,0)|a.call(e,1)<<8|a.call(e,2)<<16|a.call(e,3)<<24)>>>0,(a.call(e,4)|a.call(e,5)<<8|a.call(e,6)<<16|a.call(e,7)<<24)>>>0)},n.prototype.toHash=function(){return String.fromCharCode(255&this.lo,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,255&this.hi,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},n.prototype.zzEncode=function(){var e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this},n.prototype.zzDecode=function(){var e=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this},n.prototype.length=function(){var e=this.lo,t=(this.lo>>>28|this.hi<<4)>>>0,r=this.hi>>>24;return 0==r?0==t?e<16384?e<128?1:2:e<2097152?3:4:t<16384?t<128?5:6:t<2097152?7:8:r<128?9:10}},function(e,t,r){"use strict";e.exports=o;var i=r(8);(o.prototype=Object.create(i.prototype)).constructor=o;var n=r(1);function o(){i.call(this)}function s(e,t,r){e.length<40?n.utf8.write(e,t,r):t.utf8Write?t.utf8Write(e,r):t.write(e,r)}o._configure=function(){o.alloc=n._Buffer_allocUnsafe,o.writeBytesBuffer=n.Buffer&&n.Buffer.prototype instanceof Uint8Array&&"set"===n.Buffer.prototype.set.name?function(e,t,r){t.set(e,r)}:function(e,t,r){if(e.copy)e.copy(t,r,0,e.length);else for(var i=0;i<e.length;)t[r++]=e[i++]}},o.prototype.bytes=function(e){n.isString(e)&&(e=n._Buffer_from(e,"base64"));var t=e.length>>>0;return this.uint32(t),t&&this._push(o.writeBytesBuffer,t,e),this},o.prototype.string=function(e){var t=n.Buffer.byteLength(e);return this.uint32(t),t&&this._push(s,t,e),this},o._configure()},function(e,t,r){"use strict";e.exports=o;var i=r(9);(o.prototype=Object.create(i.prototype)).constructor=o;var n=r(1);function o(e){i.call(this,e)}o._configure=function(){n.Buffer&&(o.prototype._slice=n.Buffer.prototype.slice)},o.prototype.string=function(){var e=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+e,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+e,this.len))},o._configure()},function(e,t,r){"use strict";e.exports=n;var i=r(1);function n(e,t,r){if("function"!=typeof e)throw TypeError("rpcImpl must be a function");i.EventEmitter.call(this),this.rpcImpl=e,this.requestDelimited=Boolean(t),this.responseDelimited=Boolean(r)}((n.prototype=Object.create(i.EventEmitter.prototype)).constructor=n).prototype.rpcCall=function e(t,r,n,o,s){if(!o)throw TypeError("request must be specified");var a=this;if(!s)return i.asPromise(e,a,t,r,n,o);if(a.rpcImpl)try{return a.rpcImpl(t,r[a.requestDelimited?"encodeDelimited":"encode"](o).finish(),(function(e,r){if(e)return a.emit("error",e,t),s(e);if(null!==r){if(!(r instanceof n))try{r=n[a.responseDelimited?"decodeDelimited":"decode"](r)}catch(e){return a.emit("error",e,t),s(e)}return a.emit("data",r,t),s(null,r)}a.end(!0)}))}catch(e){return a.emit("error",e,t),void setTimeout((function(){s(e)}),0)}else setTimeout((function(){s(Error("already ended"))}),0)},n.prototype.end=function(e){return this.rpcImpl&&(e||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}},function(e,t,r){"use strict";(e.exports=function e(t,r){"string"==typeof t&&(r=t,t=void 0);var i=[];function n(t){if("string"!=typeof t){var r=o();if(e.verbose&&console.log("codegen: "+r),r="return "+r,t){for(var s=Object.keys(t),a=new Array(s.length+1),f=new Array(s.length),l=0;l<s.length;)a[l]=s[l],f[l]=t[s[l++]];return a[l]=r,Function.apply(null,a).apply(null,f)}return Function(r)()}for(var u=new Array(arguments.length-1),h=0;h<u.length;)u[h]=arguments[++h];if(h=0,t=t.replace(/%([%dfijs])/g,(function(e,t){var r=u[h++];switch(t){case"d":case"f":return String(Number(r));case"i":return String(Math.floor(r));case"j":return JSON.stringify(r);case"s":return String(r)}return"%"})),h!==u.length)throw Error("parameter count mismatch");return i.push(t),n}function o(e){return"function "+(e||r||"")+"("+(t&&t.join(",")||"")+"){\n "+i.join("\n ")+"\n}"}return n.toString=o,n}).verbose=!1},function(e,t,r){"use strict";e.exports=o;var i=r(13),n=r(14)("fs");function o(e,t,r){return t="function"==typeof t?(r=t,{}):t||{},r?!t.xhr&&n&&n.readFile?n.readFile(e,(function(i,n){return i&&"undefined"!=typeof XMLHttpRequest?o.xhr(e,t,r):i?r(i):r(null,t.binary?n:n.toString("utf8"))})):o.xhr(e,t,r):i(o,this,e,t)}o.xhr=function(e,t,r){var i=new XMLHttpRequest;i.onreadystatechange=function(){if(4===i.readyState){if(0!==i.status&&200!==i.status)return r(Error("status "+i.status));if(t.binary){var e=i.response;if(!e){e=[];for(var n=0;n<i.responseText.length;++n)e.push(255&i.responseText.charCodeAt(n))}return r(null,"undefined"!=typeof Uint8Array?new Uint8Array(e):e)}return r(null,i.responseText)}},t.binary&&("overrideMimeType"in i&&i.overrideMimeType("text/plain; charset=x-user-defined"),i.responseType="arraybuffer"),i.open("GET",e),i.send()}},function(e,t,r){"use strict";var i=t,n=i.isAbsolute=function(e){return/^(?:\/|\w+:)/.test(e)},o=i.normalize=function(e){var t=(e=e.replace(/\\/g,"/").replace(/\/{2,}/g,"/")).split("/"),r=n(e),i="";r&&(i=t.shift()+"/");for(var o=0;o<t.length;)".."===t[o]?0<o&&".."!==t[o-1]?t.splice(--o,2):r?t.splice(o,1):++o:"."===t[o]?t.splice(o,1):++o;return i+t.join("/")};i.resolve=function(e,t,r){return r||(t=o(t)),n(t)?t:(r||(e=o(e)),(e=e.replace(/(?:\/|^)[^/]+$/,"")).length?o(e+"/"+t):t)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(12),n=r(7),o=r(49),s={};function a(e){for(var t=[],r=0;r<e.length;r+=32768)t.push(String.fromCharCode.apply(null,e.subarray(r,r+32768)));return t.join("")}n.utils.assign(s,o.default);var f={loadAssets:function(e,t,r){var i,n;try{i=my}catch(e){}i?i.request({url:e,method:"GET",dataType:"arraybuffer",success:function(e){f.load_viaProto(e.data,t,r)},fail:function(e){r(e)}}):((n=new XMLHttpRequest).open("GET",e,!0),n.responseType="arraybuffer",n.onloadend=function(){f.load_viaProto(n.response,t,r)},n.send())},load_viaProto:function(e,t,r){try{var n=s.inflate(e),o=i.ProtoMovieEntity.decode(n),a={};f._loadImages(a,void 0,o,(function(){o.ver="2.0",t({movie:o,images:a})}))}catch(e){throw r&&r(e),console.error(e),e}},_loadImages:function(e,t,r,n){if("object"==typeof r&&r.$type==i.ProtoMovieEntity){var o,s=!0;if(t){var l=function(i){if(r.images.hasOwnProperty(i)){var o=a(r.images[i]);return e.hasOwnProperty(i)?"continue":(s=!1,t.file(o+".png").async("base64").then(function(o){e[i]=o,f._loadImages(e,t,r,n)}.bind(u)),"break")}},u=this;for(var h in r.images)if("break"===l(h))break}else for(var c in r.images)r.images.hasOwnProperty(c)&&(o=a(r.images[c]),e[c]=btoa(o));s&&n.call(this)}else{for(var d in s=!0,r.images)if(r.images.hasOwnProperty(d)){var p=r.images[d];if(e.hasOwnProperty(d))continue;s=!1,t.file(p+".png").async("base64").then(function(i){e[d]=i,f._loadImages(e,t,r,n)}.bind(this));break}s&&n.call(this)}}};t.default=function(e,t,r){f.loadAssets(e,t,r)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(50),n=r(7),o=r(51),s=r(56),a=r(57),f=r(58),l=r(59),u=Object.prototype.toString;function h(e){this.options=n.utils.assign({chunkSize:16384,windowBits:0,to:""},e||{});var t=this.options;t.raw&&0<=t.windowBits&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(0<=t.windowBits&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),15<t.windowBits&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new f.default,this.strm.avail_out=0;var r=o.default.inflateInit2(this.strm,t.windowBits);if(r!==s.default.Z_OK)throw new Error(a.default[r]);if(this.header=new l.default,o.default.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=i.strings.string2buf(t.dictionary):"[object ArrayBuffer]"===u.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(r=o.default.inflateSetDictionary(this.strm,t.dictionary))!==s.default.Z_OK))throw new Error(a.default[r])}h.prototype.push=function(e,t){var r,a,f,l,h,c=this.strm,d=this.options.chunkSize,p=this.options.dictionary,y=!1;if(this.ended)return!1;a=t===~~t?t:!0===t?s.default.Z_FINISH:s.default.Z_NO_FLUSH,"string"==typeof e?c.input=i.strings.binstring2buf(e):"[object ArrayBuffer]"===u.call(e)?c.input=new Uint8Array(e):c.input=e,c.next_in=0,c.avail_in=c.input.length;do{if(0===c.avail_out&&(c.output=new n.utils.Buf8(d),c.next_out=0,c.avail_out=d),(r=o.default.inflate(c,s.default.Z_NO_FLUSH))===s.default.Z_NEED_DICT&&p&&(r=o.default.inflateSetDictionary(this.strm,p)),r===s.default.Z_BUF_ERROR&&!0===y&&(r=s.default.Z_OK,y=!1),r!==s.default.Z_STREAM_END&&r!==s.default.Z_OK)return this.onEnd(r),!(this.ended=!0);c.next_out&&(0!==c.avail_out&&r!==s.default.Z_STREAM_END&&(0!==c.avail_in||a!==s.default.Z_FINISH&&a!==s.default.Z_SYNC_FLUSH)||("string"===this.options.to?(f=i.strings.utf8border(c.output,c.next_out),l=c.next_out-f,h=i.strings.buf2string(c.output,f),c.next_out=l,c.avail_out=d-l,l&&n.utils.arraySet(c.output,c.output,f,l,0),this.onData(h)):this.onData(n.utils.shrinkBuf(c.output,c.next_out)))),0===c.avail_in&&0===c.avail_out&&(y=!0)}while((0<c.avail_in||0===c.avail_out)&&r!==s.default.Z_STREAM_END);return r===s.default.Z_STREAM_END&&(a=s.default.Z_FINISH),a===s.default.Z_FINISH?(r=o.default.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===s.default.Z_OK):a!==s.default.Z_SYNC_FLUSH||(this.onEnd(s.default.Z_OK),!(c.avail_out=0))},h.prototype.onData=function(e){this.chunks.push(e)},h.prototype.onEnd=function(e){e===s.default.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=n.utils.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},t.default={inflate:function(e,t){var r=new h(t);if(r.push(e,!0),r.err)throw r.msg||a.default[r.err];return r.result}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(7),n=!0,o=!0;try{String.fromCharCode.apply(null,[0])}catch(e){n=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){o=!1}for(var s=new i.utils.Buf8(256),a=0;a<256;a++)s[a]=252<=a?6:248<=a?5:240<=a?4:224<=a?3:192<=a?2:1;function f(e,t){if((t=t||e.length)<65534&&(e.subarray&&o||!e.subarray&&n))return String.fromCharCode.apply(null,i.utils.shrinkBuf(e,t));for(var r="",s=0;s<t;s++)r+=String.fromCharCode(e[s]);return r}s[254]=s[254]=1,t.strings={utf8border:function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return!(r<0)&&0!==r&&r+s[e[r]]>t?r:t},buf2string:function(e,t){for(var r,i,n=t||e.length,o=new Array(2*n),a=0,l=0;l<n;)if((r=e[l++])<128)o[a++]=r;else if(4<(i=s[r]))o[a++]=65533,l+=i-1;else{for(r&=2===i?31:3===i?15:7;1<i&&l<n;)r=r<<6|63&e[l++],i--;1<i?o[a++]=65533:r<65536?o[a++]=r:(r-=65536,o[a++]=55296|r>>10&1023,o[a++]=56320|1023&r)}return f(o,a)},binstring2buf:function(e){for(var t=new i.utils.Buf8(e.length),r=0,n=t.length;r<n;r++)t[r]=e.charCodeAt(r);return t},buf2binstring:f,string2buf:function(e){for(var t,r,n,o,s=e.length,a=0,f=0;f<s;f++)55296==(64512&(r=e.charCodeAt(f)))&&f+1<s&&56320==(64512&(n=e.charCodeAt(f+1)))&&(r=65536+(r-55296<<10)+(n-56320),f++),a+=r<128?1:r<2048?2:r<65536?3:4;for(t=new i.utils.Buf8(a),f=o=0;o<a;f++)55296==(64512&(r=e.charCodeAt(f)))&&f+1<s&&56320==(64512&(n=e.charCodeAt(f+1)))&&(r=65536+(r-55296<<10)+(n-56320),f++),r<128?t[o++]=r:(r<2048?t[o++]=192|r>>>6:(r<65536?t[o++]=224|r>>>12:(t[o++]=240|r>>>18,t[o++]=128|r>>>12&63),t[o++]=128|r>>>6&63),t[o++]=128|63&r);return t}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(7),n=r(52),o=r(53),s=r(54),a=r(55),f=-2;function l(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function u(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new i.utils.Buf16(320),this.work=new i.utils.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function h(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=1,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new i.utils.Buf32(852),t.distcode=t.distdyn=new i.utils.Buf32(592),t.sane=1,t.back=-1,0):f}function c(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,h(e)):f}function d(e,t){var r,i;return e&&e.state?(i=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15<t)?f:(null!==i.window&&i.wbits!==t&&(i.window=null),i.wrap=r,i.wbits=t,c(e))):f}function p(e,t){var r,i;return e?(i=new u,(e.state=i).window=null,0!==(r=d(e,t))&&(e.state=null),r):f}var y,m,v=!0;function g(e){if(v){var t;for(y=new i.utils.Buf32(512),m=new i.utils.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(a.default(1,e.lens,0,288,y,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;a.default(2,e.lens,0,32,m,0,e.work,{bits:5}),v=!1}e.lencode=y,e.lenbits=9,e.distcode=m,e.distbits=5}function b(e,t,r,n){var o,s=e.state;return null===s.window&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new i.utils.Buf8(s.wsize)),n>=s.wsize?(i.utils.arraySet(s.window,t,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(n<(o=s.wsize-s.wnext)&&(o=n),i.utils.arraySet(s.window,t,r-n,o,s.wnext),(n-=o)?(i.utils.arraySet(s.window,t,r-n,n,0),s.wnext=n,s.whave=s.wsize):(s.wnext+=o,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=o))),0}t.default={inflateReset:c,inflateReset2:d,inflateResetKeep:h,inflateInit:function(e){return p(e,15)},inflateInit2:p,inflate:function(e,t){var r,u,h,c,d,p,y,m,v,w,k,_,O,x,j,S,A,E,T,B,N,R,I,P,F=0,D=new i.utils.Buf8(4),C=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return f;12===(r=e.state).mode&&(r.mode=13),d=e.next_out,h=e.output,y=e.avail_out,c=e.next_in,u=e.input,p=e.avail_in,m=r.hold,v=r.bits,w=p,k=y,R=0;e:for(;;)switch(r.mode){case 1:if(0===r.wrap){r.mode=13;break}for(;v<16;){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}if(2&r.wrap&&35615===m){D[r.check=0]=255&m,D[1]=m>>>8&255,r.check=o.default(r.check,D,2,0),v=m=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&m)<<8)+(m>>8))%31){e.msg="incorrect header check",r.mode=30;break}if(8!=(15&m)){e.msg="unknown compression method",r.mode=30;break}if(v-=4,N=8+(15&(m>>>=4)),0===r.wbits)r.wbits=N;else if(N>r.wbits){e.msg="invalid window size",r.mode=30;break}r.dmax=1<<N,e.adler=r.check=1,r.mode=512&m?10:12,v=m=0;break;case 2:for(;v<16;){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}if(r.flags=m,8!=(255&r.flags)){e.msg="unknown compression method",r.mode=30;break}if(57344&r.flags){e.msg="unknown header flags set",r.mode=30;break}r.head&&(r.head.text=m>>8&1),512&r.flags&&(D[0]=255&m,D[1]=m>>>8&255,r.check=o.default(r.check,D,2,0)),v=m=0,r.mode=3;case 3:for(;v<32;){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}r.head&&(r.head.time=m),512&r.flags&&(D[0]=255&m,D[1]=m>>>8&255,D[2]=m>>>16&255,D[3]=m>>>24&255,r.check=o.default(r.check,D,4,0)),v=m=0,r.mode=4;case 4:for(;v<16;){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}r.head&&(r.head.xflags=255&m,r.head.os=m>>8),512&r.flags&&(D[0]=255&m,D[1]=m>>>8&255,r.check=o.default(r.check,D,2,0)),v=m=0,r.mode=5;case 5:if(1024&r.flags){for(;v<16;){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}r.length=m,r.head&&(r.head.extra_len=m),512&r.flags&&(D[0]=255&m,D[1]=m>>>8&255,r.check=o.default(r.check,D,2,0)),v=m=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(p<(_=r.length)&&(_=p),_&&(r.head&&(N=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),i.utils.arraySet(r.head.extra,u,c,_,N)),512&r.flags&&(r.check=o.default(r.check,u,_,c)),p-=_,c+=_,r.length-=_),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===p)break e;for(_=0;N=u[c+_++],r.head&&N&&r.length<65536&&(r.head.name+=String.fromCharCode(N)),N&&_<p;);if(512&r.flags&&(r.check=o.default(r.check,u,_,c)),p-=_,c+=_,N)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=8;case 8:if(4096&r.flags){if(0===p)break e;for(_=0;N=u[c+_++],r.head&&N&&r.length<65536&&(r.head.comment+=String.fromCharCode(N)),N&&_<p;);if(512&r.flags&&(r.check=o.default(r.check,u,_,c)),p-=_,c+=_,N)break e}else r.head&&(r.head.comment=null);r.mode=9;case 9:if(512&r.flags){for(;v<16;){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}if(m!==(65535&r.check)){e.msg="header crc mismatch",r.mode=30;break}v=m=0}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;v<32;){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}e.adler=r.check=l(m),v=m=0,r.mode=11;case 11:if(0===r.havedict)return e.next_out=d,e.avail_out=y,e.next_in=c,e.avail_in=p,r.hold=m,r.bits=v,2;e.adler=r.check=1,r.mode=12;case 12:if(5===t||6===t)break e;case 13:if(r.last){m>>>=7&v,v-=7&v,r.mode=27;break}for(;v<3;){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}switch(r.last=1&m,--v,3&(m>>>=1)){case 0:r.mode=14;break;case 1:if(g(r),r.mode=20,6!==t)break;m>>>=2,v-=2;break e;case 2:r.mode=17;break;case 3:e.msg="invalid block type",r.mode=30}m>>>=2,v-=2;break;case 14:for(m>>>=7&v,v-=7&v;v<32;){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}if((65535&m)!=(m>>>16^65535)){e.msg="invalid stored block lengths",r.mode=30;break}if(r.length=65535&m,v=m=0,r.mode=15,6===t)break e;case 15:r.mode=16;case 16:if(_=r.length){if(p<_&&(_=p),y<_&&(_=y),0===_)break e;i.utils.arraySet(h,u,c,_,d),p-=_,c+=_,y-=_,d+=_,r.length-=_;break}r.mode=12;break;case 17:for(;v<14;){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}if(r.nlen=257+(31&m),m>>>=5,v-=5,r.ndist=1+(31&m),m>>>=5,v-=5,r.ncode=4+(15&m),m>>>=4,v-=4,286<r.nlen||30<r.ndist){e.msg="too many length or distance symbols",r.mode=30;break}r.have=0,r.mode=18;case 18:for(;r.have<r.ncode;){for(;v<3;){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}r.lens[C[r.have++]]=7&m,m>>>=3,v-=3}for(;r.have<19;)r.lens[C[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,I={bits:r.lenbits},R=a.default(0,r.lens,0,19,r.lencode,0,r.work,I),r.lenbits=I.bits,R){e.msg="invalid code lengths set",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have<r.nlen+r.ndist;){for(;S=(F=r.lencode[m&(1<<r.lenbits)-1])>>>16&255,A=65535&F,!((j=F>>>24)<=v);){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}if(A<16)m>>>=j,v-=j,r.lens[r.have++]=A;else{if(16===A){for(P=j+2;v<P;){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}if(m>>>=j,v-=j,0===r.have){e.msg="invalid bit length repeat",r.mode=30;break}N=r.lens[r.have-1],_=3+(3&m),m>>>=2,v-=2}else if(17===A){for(P=j+3;v<P;){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}v-=j,N=0,_=3+(7&(m>>>=j)),m>>>=3,v-=3}else{for(P=j+7;v<P;){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}v-=j,N=0,_=11+(127&(m>>>=j)),m>>>=7,v-=7}if(r.have+_>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=30;break}for(;_--;)r.lens[r.have++]=N}}if(30===r.mode)break;if(0===r.lens[256]){e.msg="invalid code -- missing end-of-block",r.mode=30;break}if(r.lenbits=9,I={bits:r.lenbits},R=a.default(1,r.lens,0,r.nlen,r.lencode,0,r.work,I),r.lenbits=I.bits,R){e.msg="invalid literal/lengths set",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,I={bits:r.distbits},R=a.default(2,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,I),r.distbits=I.bits,R){e.msg="invalid distances set",r.mode=30;break}if(r.mode=20,6===t)break e;case 20:r.mode=21;case 21:if(6<=p&&258<=y){e.next_out=d,e.avail_out=y,e.next_in=c,e.avail_in=p,r.hold=m,r.bits=v,s.default(e,k),d=e.next_out,h=e.output,y=e.avail_out,c=e.next_in,u=e.input,p=e.avail_in,m=r.hold,v=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;S=(F=r.lencode[m&(1<<r.lenbits)-1])>>>16&255,A=65535&F,!((j=F>>>24)<=v);){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}if(S&&0==(240&S)){for(E=j,T=S,B=A;S=(F=r.lencode[B+((m&(1<<E+T)-1)>>E)])>>>16&255,A=65535&F,!(E+(j=F>>>24)<=v);){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}m>>>=E,v-=E,r.back+=E}if(m>>>=j,v-=j,r.back+=j,r.length=A,0===S){r.mode=26;break}if(32&S){r.back=-1,r.mode=12;break}if(64&S){e.msg="invalid literal/length code",r.mode=30;break}r.extra=15&S,r.mode=22;case 22:if(r.extra){for(P=r.extra;v<P;){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}r.length+=m&(1<<r.extra)-1,m>>>=r.extra,v-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;S=(F=r.distcode[m&(1<<r.distbits)-1])>>>16&255,A=65535&F,!((j=F>>>24)<=v);){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}if(0==(240&S)){for(E=j,T=S,B=A;S=(F=r.distcode[B+((m&(1<<E+T)-1)>>E)])>>>16&255,A=65535&F,!(E+(j=F>>>24)<=v);){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}m>>>=E,v-=E,r.back+=E}if(m>>>=j,v-=j,r.back+=j,64&S){e.msg="invalid distance code",r.mode=30;break}r.offset=A,r.extra=15&S,r.mode=24;case 24:if(r.extra){for(P=r.extra;v<P;){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}r.offset+=m&(1<<r.extra)-1,m>>>=r.extra,v-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=30;break}r.mode=25;case 25:if(0===y)break e;if(_=k-y,r.offset>_){if((_=r.offset-_)>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=30;break}O=_>r.wnext?(_-=r.wnext,r.wsize-_):r.wnext-_,_>r.length&&(_=r.length),x=r.window}else x=h,O=d-r.offset,_=r.length;for(y<_&&(_=y),y-=_,r.length-=_;h[d++]=x[O++],--_;);0===r.length&&(r.mode=21);break;case 26:if(0===y)break e;h[d++]=r.length,y--,r.mode=21;break;case 27:if(r.wrap){for(;v<32;){if(0===p)break e;p--,m|=u[c++]<<v,v+=8}if(k-=y,e.total_out+=k,r.total+=k,k&&(e.adler=r.check=r.flags?o.default(r.check,h,k,d-k):n.default(r.check,h,k,d-k)),k=y,(r.flags?m:l(m))!==r.check){e.msg="incorrect data check",r.mode=30;break}v=m=0}r.mode=28;case 28:if(r.wrap&&r.flags){for(;v<32;){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}if(m!==(4294967295&r.total)){e.msg="incorrect length check",r.mode=30;break}v=m=0}r.mode=29;case 29:R=1;break e;case 30:R=-3;break e;case 31:return-4;case 32:default:return f}return e.next_out=d,e.avail_out=y,e.next_in=c,e.avail_in=p,r.hold=m,r.bits=v,(r.wsize||k!==e.avail_out&&r.mode<30&&(r.mode<27||4!==t))&&b(e,e.output,e.next_out,k-e.avail_out)?(r.mode=31,-4):(w-=e.avail_in,k-=e.avail_out,e.total_in+=w,e.total_out+=k,r.total+=k,r.wrap&&k&&(e.adler=r.check=r.flags?o.default(r.check,h,k,e.next_out-k):n.default(r.check,h,k,e.next_out-k)),e.data_type=r.bits+(r.last?64:0)+(12===r.mode?128:0)+(20===r.mode||15===r.mode?256:0),(0==w&&0===k||4===t)&&0===R&&(R=-5),R)},inflateEnd:function(e){if(!e||!e.state)return f;var t=e.state;return t.window&&(t.window=null),e.state=null,0},inflateGetHeader:function(e,t){var r;return e&&e.state&&0!=(2&(r=e.state).wrap)?((r.head=t).done=!1,0):f},inflateSetDictionary:function(e,t){var r,i,o=t.length;return!e||!e.state||0!==(r=e.state).wrap&&11!==r.mode?f:11===r.mode&&(i=1,(i=n.default(i,t,o,0))!==r.check)?-3:b(e,t,o,o)?(r.mode=31,-4):(r.havedict=1,0)},inflateInfo:"pako inflate (from Nodeca project)"}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r,i){for(var n=65535&e|0,o=e>>>16&65535|0,s=0;0!==r;){for(r-=s=2e3<r?2e3:r;o=o+(n=n+t[i++]|0)|0,--s;);n%=65521,o%=65521}return n|o<<16|0}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var i=0;i<8;i++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.default=function(e,t,r,n){var o=i,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^o[255&(e^t[a])];return-1^e}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var r,i,n,o,s,a,f=e.state,l=e.next_in,u=e.input,h=l+(e.avail_in-5),c=e.next_out,d=e.output,p=c-(t-e.avail_out),y=c+(e.avail_out-257),m=f.dmax,v=f.wsize,g=f.whave,b=f.wnext,w=f.window,k=f.hold,_=f.bits,O=f.lencode,x=f.distcode,j=(1<<f.lenbits)-1,S=(1<<f.distbits)-1;e:do{_<15&&(k+=u[l++]<<_,_+=8,k+=u[l++]<<_,_+=8),r=O[k&j];t:for(;;){if(k>>>=i=r>>>24,_-=i,0==(i=r>>>16&255))d[c++]=65535&r;else{if(!(16&i)){if(0==(64&i)){r=O[(65535&r)+(k&(1<<i)-1)];continue t}if(32&i){f.mode=12;break e}e.msg="invalid literal/length code",f.mode=30;break e}n=65535&r,(i&=15)&&(_<i&&(k+=u[l++]<<_,_+=8),n+=k&(1<<i)-1,k>>>=i,_-=i),_<15&&(k+=u[l++]<<_,_+=8,k+=u[l++]<<_,_+=8),r=x[k&S];r:for(;;){if(k>>>=i=r>>>24,_-=i,!(16&(i=r>>>16&255))){if(0==(64&i)){r=x[(65535&r)+(k&(1<<i)-1)];continue r}e.msg="invalid distance code",f.mode=30;break e}if(o=65535&r,_<(i&=15)&&(k+=u[l++]<<_,(_+=8)<i&&(k+=u[l++]<<_,_+=8)),m<(o+=k&(1<<i)-1)){e.msg="invalid distance too far back",f.mode=30;break e}if(k>>>=i,_-=i,(i=c-p)<o){if(g<(i=o-i)&&f.sane){e.msg="invalid distance too far back",f.mode=30;break e}if(a=w,(s=0)===b){if(s+=v-i,i<n){for(n-=i;d[c++]=w[s++],--i;);s=c-o,a=d}}else if(b<i){if(s+=v+b-i,(i-=b)<n){for(n-=i;d[c++]=w[s++],--i;);if(s=0,b<n){for(n-=i=b;d[c++]=w[s++],--i;);s=c-o,a=d}}}else if(s+=b-i,i<n){for(n-=i;d[c++]=w[s++],--i;);s=c-o,a=d}for(;2<n;)d[c++]=a[s++],d[c++]=a[s++],d[c++]=a[s++],n-=3;n&&(d[c++]=a[s++],1<n&&(d[c++]=a[s++]))}else{for(s=c-o;d[c++]=d[s++],d[c++]=d[s++],d[c++]=d[s++],2<(n-=3););n&&(d[c++]=d[s++],1<n&&(d[c++]=d[s++]))}break}}break}}while(l<h&&c<y);l-=n=_>>3,k&=(1<<(_-=n<<3))-1,e.next_in=l,e.next_out=c,e.avail_in=l<h?h-l+5:5-(l-h),e.avail_out=c<y?y-c+257:257-(c-y),f.hold=k,f.bits=_}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(7),n=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],o=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],s=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],a=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];t.default=function(e,t,r,f,l,u,h,c){var d,p,y,m,v,g,b,w,k,_=c.bits,O=0,x=0,j=0,S=0,A=0,E=0,T=0,B=0,N=0,R=0,I=null,P=0,F=new i.utils.Buf16(16),D=new i.utils.Buf16(16),C=null,L=0;for(O=0;O<=15;O++)F[O]=0;for(x=0;x<f;x++)F[t[r+x]]++;for(A=_,S=15;1<=S&&0===F[S];S--);if(S<A&&(A=S),0===S)return l[u++]=20971520,l[u++]=20971520,c.bits=1,0;for(j=1;j<S&&0===F[j];j++);for(A<j&&(A=j),O=B=1;O<=15;O++)if(B<<=1,(B-=F[O])<0)return-1;if(0<B&&(0===e||1!==S))return-1;for(D[1]=0,O=1;O<15;O++)D[O+1]=D[O]+F[O];for(x=0;x<f;x++)0!==t[r+x]&&(h[D[t[r+x]]++]=x);if(g=0===e?(I=C=h,19):1===e?(I=n,P-=257,C=o,L-=257,256):(I=s,C=a,-1),O=j,v=u,T=x=R=0,y=-1,m=(N=1<<(E=A))-1,1===e&&852<N||2===e&&592<N)return 1;for(;;){for(b=O-T,k=h[x]<g?(w=0,h[x]):h[x]>g?(w=C[L+h[x]],I[P+h[x]]):(w=96,0),d=1<<O-T,j=p=1<<E;l[v+(R>>T)+(p-=d)]=b<<24|w<<16|k|0,0!==p;);for(d=1<<O-1;R&d;)d>>=1;if(0!==d?(R&=d-1,R+=d):R=0,x++,0==--F[O]){if(O===S)break;O=t[r+h[x]]}if(A<O&&(R&m)!==y){for(0===T&&(T=A),v+=j,B=1<<(E=O-T);E+T<S&&!((B-=F[E+T])<=0);)E++,B<<=1;if(N+=1<<E,1===e&&852<N||2===e&&592<N)return 1;l[y=R&m]=A<<24|E<<16|v-u|0}}return 0!==R&&(l[v+R]=O-T<<24|64<<16|0),c.bits=A,0}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}}],e={},f.m=d,f.c=e,f.d=function(e,t,r){f.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(e,t){if(1&t&&(e=f(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(f.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)f.d(r,i,function(t){return e[t]}.bind(null,i));return r},f.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(t,"a",t),t},f.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},f.p="",f(f.s=27);function f(t){if(e[t])return e[t].exports;var r=e[t]={i:t,l:!1,exports:{}};return d[t].call(r.exports,r,r.exports,f),r.l=!0,r.exports}var d,e}));
//// # sourceMappingURL=svgaParser.min.js.map
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
declare const app;
declare const PAGE;
declare function getApp();
declare namespace my {
export function postMessage(e);
export function onMessage(e);
export const tb;
}
This source diff could not be displayed because it is too large. You can view the blob instead.
{
"name": "gamestage",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"dev": "webpack-dev-server --hot"
},
"author": "",
"license": "ISC",
"devDependencies": {
"awesome-typescript-loader": "^5.2.1",
"babel-core": "^6.26.3",
"babel-loader": "^7.1.5",
"babel-preset-env": "^1.7.0",
"css-loader": "^5.2.6",
"style-loader": "^2.0.0",
"typescript": "^4.3.4",
"webpack": "^5.40.0",
"webpack-cli": "^3.3.12",
"webpack-dev-server": "^3.11.2"
},
"dependencies": {
"@types/matter-js": "^0.17.1",
"babel-preset-react": "^6.24.1",
"matter-js": "^0.17.1",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"ts-loader": "^9.2.3"
}
}
export default class Clock {
startTime = 0;
oldTime = 0;
elapsedTime = 0;
running = false;
constructor(
public autoStart = true
) {
}
start() {
this.startTime = (typeof performance === 'undefined' ? Date : performance).now();
this.oldTime = this.startTime;
this.elapsedTime = 0;
this.running = true;
}
stop() {
this.running = false;
this.autoStart = false;
return this.getElapsedTime();
}
st() {
this.running = false
}
getElapsedTime() {
this.getDelta();
return this.elapsedTime;
}
getDelta() {
let diff = 0;
if (this.autoStart && !this.running) {
this.start();
return 0;
}
if (this.running) {
const newTime = (typeof performance === 'undefined' ? Date : performance).now();
diff = (newTime - this.oldTime) / 1000;
this.oldTime = newTime;
this.elapsedTime += diff;
}
return diff;
}
}
class Layer extends FYGE.Container {
stage: FYGE.Stage
scenseCnt: FYGE.Container
currScense: FYGE.Container
constructor() {
super();
}
init(stage: FYGE.Stage) {
this.stage = stage
stage.addChild(this)
const senseContainer = this.scenseCnt = new FYGE.Container()
// senseContainer.x = this.stageOffsetLeft
// senseContainer.y = this.stageOffsetTop
this.addChild(senseContainer)
}
changeScense(sense: FYGE.Container) {
if (this.currScense) {
this.currScense.destroy()
}
this.scenseCnt.addChild(sense)
}
get stageWidth():number {
return this.stage ? this.stage.viewRect.width : 0
}
get stageHeight():number {
return this.stage ? this.stage.viewRect.height : 0
}
get stageOffsetLeft():number {
return this.stage ? this.stage.viewRect.x : 0
}
get stageOffsetTop():number {
return this.stage ? this.stage.viewRect.y : 0
}
}
export const layer = new Layer()
\ No newline at end of file
import { layer } from "./Layer"
const Texture = FYGE.Texture
const Button = FYGE.Button
const Sprite = FYGE.Sprite
type ButtonTexture = FYGE.Texture | {
tUp: FYGE.Texture,
tDown?: FYGE.Texture,
tDisable?: FYGE.Texture
}
export default class UI {
// public static getPositionAtScense(
// cnt: FYGE.Container,
// )
/**
* UI button
* @param parent 添加 parent
* @param texture 纹理 支持 {tUp: , tDown: , tDisable}
* @param x
* @param y
* @param width
* @param height
* @param clickEvent
* @param that clickEvent click 的this指向
* @returns
*/
public static btn(
parent: FYGE.Container,
texture: ButtonTexture,
width?: number,
height?: number,
x?: number | 'center' | 'left' | 'right',
y?: number | 'center' | 'top' | 'bottom',
clickEvent?: Function,
that?: any
): FYGE.Button {
let btn: FYGE.Button
if ('tUp' in texture) {
btn = new Button(texture.tUp, texture.tDown, texture.tDisable)
} else {
btn = new Button(texture)
}
let fw: number
let fh: number
width && (btn.width = width)
height && (btn.height = height)
fw = btn.width
fh = btn.height
let fx:number = 0
let fy:number = 0
let pw: number = parent.width == 1 ? layer.stageWidth : parent.width
let ph: number = parent.height == 1 ? layer.stageHeight : parent.height
// 初始化 x坐标
if (x) {
if (typeof x == 'string') {
switch(x) {
case 'center':
fx = (pw - fw) / 2
break
case 'right':
fx = pw - fw
break
}
} else {
fx = x
}
}
// 初始化 y坐标
if (y) {
if (typeof y == 'string') {
switch(y) {
case 'center':
fy = (ph - fh) / 2
break
case 'bottom':
fy = ph - fh
break
}
} else {
fy = y
}
}
btn.x = fx
btn.y = fy
clickEvent && btn.addEventListener(FYGE.MouseEvent.CLICK, clickEvent, that)
return parent.addChild(btn)
}
public static Sp(
parent: FYGE.Container,
texture: FYGE.Texture,
width?: number,
height?: number,
x: number=0,
y: number=0,
clickEvent?: Function,
that?: any
): FYGE.Sprite {
let sp: FYGE.Sprite
sp = new Sprite(texture)
width && (sp.width = width)
height && (sp.height = height)
sp.x = x
sp.y = y
clickEvent && sp.addEventListener(FYGE.MouseEvent.CLICK, clickEvent, that)
return parent.addChild(sp)
}
public static addChild(
parent: FYGE.Container,
child: any,
x: number=0,
y: number=0
) {
child.x = x
child.y = y
return parent.addChild(child)
}
}
\ No newline at end of file
import Matter = require("matter-js");
import { SS } from "../../config";
type circleData = {
x: number,
y: number,
radius: number,
color: string
}
function throttle(fn, delay=2000) {
var timer
var flag = true
return function(...args) {
const context = this
if (!flag) return
flag = false
clearTimeout(timer)
fn.apply(context, args)
timer = setTimeout(() => {
flag = true
}, delay)
}
}
export class CircleCnt extends FYGE.Container {
shape: FYGE.Shape
phyBody: Matter.Body
circleData: circleData
constructor(data:circleData) {
super();
this.circleData = data
this.x = data.x
this.y = data.y
this.shape = this.addChild(new FYGE.Shape())
this.shape.beginFill(data.color)
this.shape.drawCircle(data.radius,data.radius, data.radius)
this.shape.endFill()
// this.shape.mouseChildren = false
// this.shape.mouseEnable = false
this.phyBody = Matter.Bodies.circle(this.x * SS, this.y * SS, (this.width / 2) * SS, {
restitution: .3,// 弹性
mass: .5, // 质量
isStatic: false,
isSensor: false, // 传感器 true,可以检测到碰撞,但是不参与碰撞
render: { fillStyle: "#060a19" },
collisionFilter: { group: 1 }, // 参考reademe里面的碰撞规则
})
this.setPhyPos()
var that = this
this.addEventListener(FYGE.Event.ADDED_TO_STAGE, () => {
this.addEventListener(FYGE.Event.ENTER_FRAME, this.syncPos, this)
}, this)
that = new Proxy(this, {
get: function (target, key:string, receiver) {
return Reflect.get(target, key, receiver);
},
set: function (target, key:string, value, receiver) {
var r = Reflect.set(target, key, value, receiver)
if (key == 'x' || key == 'y') {
that.setPhyPos()
}
// console.log(`setting ${key}!`);
return r;
}
})
return that
}
syncPos() {
this.x = this.phyBody.position.x / SS - this.width / 2 + 10;
this.y = this.phyBody.position.y / SS - this.width / 2 + 10;
}
setPhyPos() {
Matter.Body.setPosition(this.phyBody, {
x: (this.x + this.circleData.radius) * SS,
y: (this.y + this.circleData.radius) * SS,
});
}
}
\ No newline at end of file
/** 比例系数--matterjs适配 */
export const SS = 1
#app {
text-align: center;
}
*{
padding: 0;
margin: 0
}
\ No newline at end of file
import React, {Component} from 'react';
import ReactDom from 'react-dom'
class TestCom extends React.Component {
constructor(props) {
super(props);
}
render() {
return (
<div>123
{this.props.children}
</div>
)
}
}
console.log(new TestCom())
const r1 = React.createElement(TestCom, {
test:1
}, [
'123123123'
])
console.log(r1)
ReactDom.render(r1, document.getElementById('app'))
window.React = React
\ No newline at end of file
import { layer } from "./Layer";
import MainScense from "./scense/mainScense";
// require('./main.js')
// import { walkSync, walk } from './utils/utils.js'
export class Main {
// 主舞台
stage: FYGE.Stage;
private requestId:number;
private _pause: boolean;
private canvas: HTMLCanvasElement
constructor(canvas: HTMLCanvasElement) {
// 创建舞台
this.stage = new FYGE.Stage(
canvas,
750,
1624,
document.body.clientWidth,
document.body.clientHeight,
FYGE.RENDERER_TYPE.CANVAS,
true // 视图居中裁剪
)
this.canvas = canvas
// stage 初始化
this.stage.addEventListener(FYGE.Event.INIT_STAGE, this.initUI, this)
let self = this
loop()
function loop() {
if (!self._pause) {
FYGE.Tween.flush();
self.stage.flush()
}
self.requestId = window.requestAnimationFrame(loop)
}
}
initUI() {
console.log('初始化')
layer.init(this.stage)
console.log('stage:', this.stage)
const mainScense = new MainScense()
layer.changeScense(mainScense)
// walkSync('./assets/game', (path, file) => {
// console.log(path, file)
// })
}
destroy() {
//Tween都移除,注意吧,可能原先的也被移除,,对于多page时注意,会把其他页面的也去掉
FYGE.Tween.removeAllTweens();
//停掉计时器
//@ts-ignore 为了兼容多page的canvas
window.cancelAnimationFrame(this.requestID);
//舞台销毁
this.stage.destroy();
}
}
//@ts-ignore
window.Main = Main
\ No newline at end of file
import { layer } from './../Layer';
import Clock from '../Clock'
import UI from '../UI'
import Matter = require('matter-js');
import { CircleCnt } from '../components/circleCnt/circleCnt';
import { SS } from '../config';
const MouseEvent = FYGE.MouseEvent
const { Engine, Render, Runner, Composite, Bodies, World, Composites } = Matter
//@ts-ignore
window.clock = new Clock()
const Sprite = FYGE.Sprite
type GameItem = {
_name?: string,
name: string,
score: number,
desc: string | number,
url: string,
sUrl?: string,
fUrl?: string
}
interface GameCFG {
ts: number,
itemList: Array<GameItem>
}
// 默认游戏配置
const initOpt: GameCFG = {
ts: 2000,
itemList: [
{
_name: 'handsome',
name: '帅气',
score: 1,
desc: '帅气的样子',
url: 'http://qnpic.top/icon1.png',
sUrl: 'http://qnpic.top/icon2.png',
fUrl: 'http://qnpic.top/icon3.png'
},
{
_name: 'shy',
name: '羞涩',
score: 1,
desc: '羞涩的样子',
url: 'http://qnpic.top/icon4.png',
sUrl: 'http://qnpic.top/icon2.png',
fUrl: 'http://qnpic.top/icon3.png'
},
{
_name: 'sunshine',
name: '阳光',
score: 1,
desc: '阳光的样子',
url: 'http://qnpic.top/icon5.png',
sUrl: 'http://qnpic.top/icon2.png',
fUrl: 'http://qnpic.top/icon3.png'
},
{
name: '专业少年',
score: 1,
desc: '专业少年的样子',
url: 'http://qnpic.top/icon6.png',
sUrl: 'http://qnpic.top/icon2.png',
fUrl: 'http://qnpic.top/icon3.png'
},
{
name: '博学多才',
score: 1,
desc: '博学多才的样子',
url: 'http://qnpic.top/icon1.png',
sUrl: 'http://qnpic.top/icon2.png',
fUrl: 'http://qnpic.top/icon3.png'
}
]
}
function fn(o) {
for(let k in o) {
let kv = o[k]
let type = Object.prototype.toString.call(kv).slice(8, -1).toLowerCase()
let iterList = ['object', 'array']
if (iterList.includes(type)) {
fn(kv)
} else if (type == 'string') {
let fileType = kv.substring(kv.lastIndexOf(".") + 1)
let imgTypeList = ['png', 'jpg', 'jpeg']
if (imgTypeList.includes(fileType)) {
console.log('kv:', kv)
}
}
}
}
function arrayRemoveItem(arr:Array<any>, item) {
arr.splice(arr.indexOf(item), 1)
}
export default class MainScense extends FYGE.Container {
private gameCfg: GameCFG
private scrollCnt: GameScene
constructor(opt?: Partial<GameCFG>) {
super();
this.gameCfg = Object.assign({}, initOpt, opt)
this.initUI()
}
circle1
circle2
initUI() {
// this.addChild(FYGE.Sprite.fromUrl('/src/assets/game/background-image.jpg'))
// this.scrollCnt = UI.addChild(this, new GameScene())
this.initPhyWord()
console.log(layer)
var sh = 1624
var sw = 750
var k1 = Matter.Bodies.rectangle(375, layer.stageOffsetTop, 750, 10, {
isStatic: true,
restitution: .5
})
var k2 = Matter.Bodies.rectangle(sw, 812, 10, sh, {
isStatic: true,
restitution: .5
})
var k3 = Matter.Bodies.rectangle(375, sh - layer.stageOffsetTop, sw, 10, {
isStatic: true,
restitution: .5
})
var k4 = Matter.Bodies.rectangle(0, 812, 10, sh, {
isStatic: true,
restitution: .5
})
var circle1 = this.circle1 = this.addChild(new CircleCnt({x: 400, y: 1200, radius: 100, color: '#cccccc'}))
//@ts-ignore
var circle2 = this.circle2 = this.addChild(new CircleCnt({x: 200, y: 300, radius: 100, color: '#cccccc'}))
Matter.Body.setStatic(circle2.phyBody, true)
// circle2.addEventListener(FYGE.MouseEvent.MOUSE_MOVE, function() {
// //@ts-ignore todo 这里 的 window.event 淘宝端会保存,问一下
// const { clientX: x, clientY: y } = window.event.touches[0]
// // @ts-ignore
// this.x = 2* x - this.width / 2
// this.y = y*2 - this.height / 2
// // this.position.set(2* x - this.width / 2, y*2 - this.height / 2)
// })
this.addEventListener(FYGE.MouseEvent.MOUSE_DOWN, this.onMouseDown, this);
this.addEventListener(FYGE.MouseEvent.MOUSE_DOWN, function() {
Matter.Body.setVelocity(this.circle1.phyBody, {x: 10, y: -30})
}, this)
// var shape = this.addChild(new FYGE.Shape())
// shape.beginFill('#ccc')
// shape.drawCircle(100 , 100, 100)
// shape.endFill()
// setTimeout(() => {
// circle1.x = 300
// }, 1000)
// @ts-ignore
this.composites.add(this.world, [circle1.phyBody, circle2.phyBody, k1,k2,k3,k4])
}
onMouseDown(e) {
if (e.currentTarget.parent._instanceId != this.circle2._instanceId) return
this.stage.addEventListener(MouseEvent.MOUSE_MOVE, this.onMouseMove, this);
this.stage.once(MouseEvent.MOUSE_UP, () => {
this.stage.removeEventListener(MouseEvent.MOUSE_MOVE, this.onMouseMove, this);
});
}
onMouseMove(e) {
this.circle2.x = e.localX - this.circle2.width / 2
this.circle2.y = e.localY -this.circle2.height / 2
}
shoot() {
}
engine: Matter.Engine
world: Matter.World
runner: Matter.Runner
composites: Matter.Composites
initPhyWord() {
this.engine = Engine.create()
this.engine.positionIterations = 20
this.world = this.engine.world
this.engine.gravity.y = 1
/** 真正运行 */
this.runner = Runner.create();
// var runner1 = Runner.run(this.runner, this.engine);
// @ts-ignore
this.composites = Composite;
// 临时渲染引擎,调试用
// var render = Render.create({
// element: document.body,
// engine: this.engine,
// options: {
// width: 750,
// height: 1600,
// background: "#ff0000",
// wireframeBackground:"transparent",
// },
// });
// Render.run(render);
this.setPhyDebug()
}
private setPhyDebug() {
const canvas = document.createElement("canvas");
canvas.style.width = "100%";
canvas.style.height = "100%";
const div = document.createElement("div");
div.style.position = "absolute"
div.style.top = "50%";
div.style.pointerEvents = "none";
div.style.transform = "translateY(-50%)";
div.style.lineHeight = "0";
div.style.fontStyle = "0";
document.body.append(div);
const render = Render.create({
canvas: canvas,
element: div,
engine: this.engine,
options: {
wireframes: true,
width: 750,
height: 1624,
background: 'transparent',
wireframeBackground: 'transparent',
showSleeping: true,
},
});
Render.run(render);
}
update(){
Runner.tick(this.runner, this.engine, 0);
super.update();
}
}
export class GameScene extends FYGE.Container {
itemMap: Array<ScrollItem> = []
private lt: number = 0
private t: number = 4000 // 时间间隔
private gc: LTDItem // 游戏钩子
get runItemMap() {
return this.itemMap.filter(i => i.visible)
}
get stopItemMap() {
return this.itemMap.filter(i => !i.visible)
}
constructor() {
super();
this.initUI()
this.initEvents()
}
initUI() {
// 钩子
let ltd1 = this.gc = this.addChild(new LTDItem({
url: '/src/assets/game/gc.png',
w: 248,
h: 231
}))
ltd1.x = (layer.stageWidth - ltd1.width) / 2;
this.setChildIndex(ltd1, 200)
var addbtn = UI.btn(this, {
tUp: FYGE.Texture.fromUrl('http://qnpic.top/yoona11.jpg'),
tDown: FYGE.Texture.fromUrl('http://qnpic.top/yoona13.jpg')
},400, 200, (layer.stageWidth-400)/2, layer.stageHeight - 300, () => {
this.gc.onStart()
// this.collsionAll()
})
}
/**
* 添加滚动元素
* @returns
*/
conItem() {
let o = this.addChild(new ScrollItem({
url: '/src/assets/game/g1.png'
}))
this.setChildIndex(o, 1)
return o
}
/**
* 生成滚动元素,可能从之前的中获取
* @returns
*/
initItem() {
if (this.stopItemMap.length != 0) {
console.log('从内存中读取')
this.stopItemMap[0].visible = true
return
}
console.log('初始化一个');
(this.itemMap || (this.itemMap = [])).push(this.conItem())
}
initEvents() {
this.addEventListener(FYGE.Event.ENTER_FRAME, this.onUpdate, this)
}
// 帧动画, 不断出游戏元素
onUpdate() {
if (Date.now() - this.lt > this.t) {
this.initItem()
this.lt = Date.now()
}
this.runItemMap.forEach(i => i.move())
this.collsionAll()
}
// 碰撞检测
collsionAll() {
for (var i = 0; i < this.runItemMap.length; i ++) {
var ci = this.runItemMap[i]
this.collsion(ci)
}
}
collsion(o) {
var pos1 = {
x: this.gc.x + this.gc.width / 2,
y: this.gc.y + this.gc.height / 2,
w: this.gc.width,
h: this.gc.height - 100
}
var pos2 = {
x: o.x + o.width / 2,
y: o.y + o.height / 2,
w: o.width - 100,
h: o.height
}
if (Math.abs(pos1.x - pos2.x) < (pos1.w + pos2.w) / 2 && Math.abs(pos1.y - pos2.y) < (pos1.h + pos2.h) / 2) {
this.gc.onCatchItem(this.removeChild(o))
arrayRemoveItem(this.itemMap, o)
}
}
}
type scrollItemType = {
url: string
}
// 游戏元素
class ScrollItem extends FYGE.Container {
data: scrollItemType
clock: Clock
protected speed = 300
private gwd:number = 200
constructor(data:scrollItemType) {
super();
this.data = data
this.init()
}
init() {
this.mouseEnable = false
this.mouseChildren = false
this.clock = new Clock()
UI.Sp(this, FYGE.Texture.fromUrl(this.data.url), this.gwd, this.gwd)
this.x = - this.gwd
this.y = layer.stageHeight - 600
// this.width = 100
}
reset() {
this.visible = false
this.x = -this.gwd
this.clock.st()
}
move() {
const t = this.clock.getDelta()
this.x += this.speed * t
if (this.x > layer.stageWidth) {
this.reset()
}
}
}
type LtdType = {
url: string,
w: number,
h: number
}
class LTDItem extends FYGE.Container {
data: LtdType
clock: Clock
private speed: number = 1300
private reverse: boolean = false
private isStart: boolean = false
private catchItems: FYGE.Container
constructor(data: LtdType) {
super();
this.data = data
this.clock = new Clock()
this.init()
this.addEventListener(FYGE.Event.ENTER_FRAME, this.onUpdate, this)
this.addEventListener(FYGE.MouseEvent.MOUSE_MOVE, (e) => {
//@ts-ignore todo
const { clientX: x, clientY: y } = window.event.touches[0]
this.position.set(2* x - this.width / 2, y*2 - this.height / 2)
})
}
init() {
var texture = FYGE.Texture.fromUrl(this.data.url)
var sp = UI.Sp(this, texture, this.data.w, this.data.h)
this.catchItems = this.addChild(new FYGE.Container())
}
// set(pos) {
// this.x = pos.x
// this.y = pos.y
// }
// 启动钩子
onStart() {
if (this.isStart) return
this.reverse = false
this.isStart = true
}
onReset() {
this.catchItems.removeAllChildren()
this.clock.st()
this.isStart = false
this.y = 0
}
onCatchItem(o) {
o.x = (this.width - o.width) / 2
o.y = (this.height - 100)
this.catchItems.addChild(o)
}
onUpdate() {
if (!this.isStart) return
var sp = this.reverse ? -this.speed : this.speed
const t = this.clock.getDelta()
this.y += sp * t
if (this.y > layer.stageHeight - 650) {
this.reverse = true
// this.destroy()
} else if (this.reverse && this.y <= 3) {
this.onReset()
}
}
}
.flip {
position: relative;
width: 60px;
font-size: 50px;
height: 100px;
line-height: 100px;
text-align: center;
}
.flip .digital {
/* display: inline-block;
width: 100%;
position: absolute;
left: 0;
top: 0;
text-align: center; */
backface-visibility: hidden
}
.flip .digital::before, .flip .digital::after{
content: attr(data-num);
position: absolute;
left: 0;
right: 0;
background-color: #fafafa;
overflow: hidden;
background-clip: content-box;
backface-visibility: hidden
}
.flip .digital::before {
top: 0;
bottom: 50%;
/* padding-bottom: 1px; */
border-bottom: 1px solid #ccc;
}
.flip .digital::after {
top: 50%;
bottom: 0;
line-height: 0;
/* padding-top: 1px; */
/* border-top: 1px solid transparent; */
}
.flip .back::after {
transform-origin: center top;
transform: rotateX(.5turn);
}
.flip .back::before,
.flip .curr::after {
z-index: 1;
}
.flip .back::after {
z-index: 2;
}
.flip .curr::before {
z-index: 3;
}
.flip .curr::before {
transform-origin: bottom center;
}
.running .back::after {
z-index: 3;
}
/* .flip .back {
opacity: 0;
}
.running .back {
opacity: 1;
} */
.running .back::after{
transition: all .6s linear;
transform: perspective(1000px) rotateX(0turn);
}
.running .curr::before{
transition: all .6s linear;
transform: perspective(1000px) rotateX(.5turn);
}
\ No newline at end of file
import {addClass, removeClass} from './utils'
import './flip.css'
var Fliper = (function() {
function Fliper(el, curr, back) {
this.el = el
this.currNum = curr
this.backNum = back
this.init()
}
Fliper.prototype = {
init: function() {
this.curr = null
this.back = null
this.flip = null
this.render()
},
render: function() {
this.el.innerHTML = ''
var flip = this.flip = this.el
addClass(flip, 'flip')
var curr = this.curr = document.createElement('div')
addClass(curr, 'curr digital')
var back = this.back = document.createElement('div')
addClass(back, 'back digital')
this.initData()
flip.appendChild(curr)
flip.appendChild(back)
},
initData: function() {
this.curr.dataset.num = this.currNum || 0
this.back.dataset.num = this.backNum || 0
},
flipDown: function (backNum) {
if (backNum) {
this.backNum = backNum
this.back.dataset.num = this.backNum
}
addClass(this.flip, 'running')
setTimeout(() => {
this.currNum = this.backNum
this.initData()
removeClass(this.flip, 'running')
}, 600)
}
}
return Fliper
})()
export default Fliper
\ No newline at end of file
/**
* 自己的埋点
*/
const projectxString = "projectx/";
let projectId;
function getProjectId() {
if (projectId) return projectId;
const windowUrl = window.location.href;
const splitArr = windowUrl.split(projectxString);
if (splitArr.length != 2) {
return projectId = "projectId"
}
const start = windowUrl.indexOf(projectxString) + projectxString.length;
const end = splitArr[1].indexOf("/");
return projectId = windowUrl.substr(start, end);
}
/**
* 对象参数的处理
* @param data
* @returns {string}
*/
function getParams(data) {
const arr = [];
for (let param in data) {
arr.push(encodeURIComponent(param) + '=' + encodeURIComponent(data[param]));
}
//不缓存
arr.push('_=' + Date.now());
return arr.join('&');
}
export function jsonp(url, params) {
const src = url + '?' + getParams(params);
const scriptEl = document.createElement('script');
scriptEl.src = src;
scriptEl.onload = function () {
document.body.removeChild(scriptEl);
};
scriptEl.onerror = function () {
document.body.removeChild(scriptEl);
};
document.body.appendChild(scriptEl);
}
/**
* 埋点
* @param type exposure | click
* @param data
*/
export function sendLog(type, data) {
const projectID = getProjectId();
const appID = CFG.appID; // TODO appID
let { dpm, dcm, dom } = data;
dpm = `${appID}.110.${dpm}`;
dcm = dcm || `202.${projectID}.0.0`;
let params = {
dpm,
dcm,
appId: appID
};
if (dom) params.dom = dom;
let isExposure = (type === 'exposure');
if (isExposure) {
jsonp('//embedlog.duiba.com.cn/exposure/standard', params);
} else {
jsonp('/log/click', params);
}
}
export function md_exposure(dpmId) {
sendLog('exposure', { dpm: `${dpmId}.1` });
}
export function md_click(dpmId) {
sendLog('click', { dpm: `${dpmId}.1` });
}
\ No newline at end of file
import ReactDom from 'react-dom';
import React from 'react'
// import NormalModal from '../components/qgModal/normalModal/index.jsx'
import {HocModal} from '../components/qgModal/HocModal/HocModal.jsx'
const showModalConfig = {
destroyed: true,
appendDom: document.body,
cot: true
}
const ModalMap = new Map()
const ModalDataMap = new Map()
export const ModalCtrl = {
showModal(M, opt = {}, cb) {
// 弹窗react
let TargetModal
// 弹窗实例
let modalRef
//todo 这里后面可以优化下, 二次 修改弹窗配置
opt = Object.assign(
{},
showModalConfig,
opt,
{
appendBody: !opt.appendDom
}
)
// 该组件并为 显示的时候
if (!ModalMap.has(M)) {
var m = document.createElement('div')
opt.appendDom.appendChild(m)
const isDestroyed = opt.destroyed
// 卸载 react 组件,否则组件的实例一直存在
const closeModal = () => {
typeof cb === 'function' && cb()
console.log('组件是否被销毁:', isDestroyed)
if (isDestroyed) {
ModalMap.delete(M)
ReactDom.unmountComponentAtNode(m)
m.remove()
}
}
// TargetModal = <NormalModal transitionName="slide-top" cot={false} visible={true} close={closeModal} {...opt}>
// <M></M>
// </NormalModal>
var T = HocModal(M)
// 存储当前弹窗的props
ModalDataMap.set(M, opt)
TargetModal = <T ref={r =>{
modalRef = r
} } cot={false} appendBody={opt.appendBody} visible={true} close={closeModal} {...opt}></T>
// todo 这里需要注意一下,为什么第一时间不能 获取到 ref 因该是 只有 render 上去才会有
setTimeout(() => {
ModalMap.set(M, modalRef)
}, 0)
ReactDom.render(TargetModal, m)
} else {
modalRef = ModalMap.get(M)
modalRef.showModal()
}
// 返回该弹窗实例
return modalRef
},
renderModal(M, opt) {
var data = ModalDataMap.get(M)
var d1 = Object.assign(data, opt)
ModalDataMap.set(M, d1)
console.log(d1)
var modalRef = ModalMap.get(M)
modalRef && modalRef.forceUpdate()
},
clearModals() {
ModalMap.forEach(m => {
m.hiddenModal({ns: false})
})
}
}
\ No newline at end of file
var whitespaceRE = /\s+/
function addClass(el, cls) {
if (!cls || !(cls = cls.trim())) {
return
}
/* istanbul ignore else */
if (el.classList) {
if (cls.indexOf(' ') > -1) {
cls.split(whitespaceRE).forEach(function (c) {
return el.classList.add(c);
});
} else {
el.classList.add(cls);
}
} else {
var cur = " " + (el.getAttribute('class') || '') + " ";
if (cur.indexOf(' ' + cls + ' ') < 0) {
el.setAttribute('class', (cur + cls).trim());
}
}
}
// 移除class
function removeClass(el, cls) {
/* istanbul ignore if */
if (!cls || !(cls = cls.trim())) {
return
}
/* istanbul ignore else */
if (el.classList) {
if (cls.indexOf(' ') > -1) {
cls.split(whitespaceRE).forEach(function (c) {
return el.classList.remove(c);
});
} else {
el.classList.remove(cls);
}
if (!el.classList.length) {
el.removeAttribute('class');
}
} else {
var cur = " " + (el.getAttribute('class') || '') + " ";
var tar = ' ' + cls + ' ';
while (cur.indexOf(tar) >= 0) {
cur = cur.replace(tar, ' ');
}
cur = cur.trim();
if (cur) {
el.setAttribute('class', cur);
} else {
el.removeAttribute('class');
}
}
}
// 设置 style
function setStyles (el, styles) {
if (!styles) return
var stylesKeys = Object.keys(styles)
if (stylesKeys.length) {
stylesKeys.forEach(function (item) {
el.style[item] = styles[item]
})
}
}
// transtion 动画
var transitionAction = (function () {
var transitionProp = 'transition' // transiton 动画
var animationProp = 'animation' // animation 动画
var transitionEndEvent = 'transitionend'; // transitionend 事件 用于动画结束的时候去除动画 class
var animationEndEvent = 'animationend'; // animationend 事件 用于动画结束的时候去除动画 class
// 以下是兼容浏览器方法。
if (window.ontransitionend === undefined &&
window.onwebkittransitionend !== undefined
) {
transitionEndEvent = 'webkitTransitionEnd';
}
if (window.onanimationend === undefined &&
window.onwebkitanimationend !== undefined
) {
animationEndEvent = 'webkitAnimationEnd';
}
// getTimeout 获取当前动画的最大跨度时间,
function getTimeout(delays, durations) {
/* istanbul ignore next */
while (delays.length < durations.length) {
delays = delays.concat(delays);
}
return Math.max.apply(null, durations.map(function (d, i) {
return toMs(d) + toMs(delays[i])
}))
}
// 转化时间
function toMs(s) {
return Number(s.slice(0, -1).replace(',', '.')) * 1000
}
// 获取当前动画的信息,如delay duration
function getTransitionInfo(el, expectedType) {
var styles = window.getComputedStyle(el)
// JSDOM may return undefined for transition properties
var transitionDelays = (styles[transitionProp + 'Delay'] || '').split(', ')
var transitionDurations = (styles[transitionProp + 'Duration'] || '').split(', ')
var transitionTimeout = getTimeout(transitionDelays, transitionDurations)
var animationDelays = (styles[animationProp + 'Delay'] || '').split(', ')
var animationDurations = (styles[animationProp + 'Duration'] || '').split(', ')
var animationTimeout = getTimeout(animationDelays, animationDurations)
var type = transitionProp // 默认值
var timeout = 0
var propCount = 0
if (expectedType === transitionProp) {
if (transitionTimeout > 0) {
type = transitionProp
timeout = transitionTimeout
propCount = transitionDurations.length
}
} else {expectedType === animationProp} {
if (animationTimeout > 0) {
type = animationProp
timeout = animationTimeout
propCount = animationDurations.length
}
}
return {
type: type, // 当前动画类型,是transiton 动画 还是 animation动画
timeout: timeout,
propCount: propCount
}
}
// 以下是重要代码,是在动画结束的时候,执行回调function
function whenTransitionEnd (el, expectedType, cb) {
var ref = getTransitionInfo(el, expectedType)
var timeout = ref.timeout;
var propCount = ref.propCount;
var event = expectedType === transitionProp ? transitionEndEvent : animationEndEvent;
var runOnce = true
var end = function () {
el.removeEventListener(event, end)
if (runOnce) {
cb();
runOnce = false
}
};
el.addEventListener(event, end);
setTimeout(function () {
end()
}, timeout + 1);
}
// 以下就是我简单封装的动画方法
return function (ops) {
var el = ops.el
this.transitionName = ops.transitionName || 'transition' // 动画的name 用于动画展示
var transitionName = this.transitionName
var type = ops.type || 'transition' // transtion 或者 animation
var showStartClsName = transitionName + '-enter'
var showActiveClsName = transitionName + '-enter-active'
var hiddenStartClsName = transitionName + '-leave-to'
var hiddenActiveClsName = transitionName + '-leave-active'
this.changeTransition = function(name) {
this.transitionName = name
}
this.show = function(cb) {
addClass(el, showStartClsName)
el.style.display = 'block' // 从display none 到 block 要有初始化状态
setTimeout(function () { // 加入 微队列,这样才能动画展示 这里是重点
addClass(el, showActiveClsName)
setTimeout(() => {
removeClass(el, showStartClsName)
whenTransitionEnd(el, type, function() {
removeClass(el, showActiveClsName + ' ' + showStartClsName)
typeof cb === 'function' && cb()
})
}, 0)
},0)
}
this.hidden = function(cb) {
addClass(el, hiddenActiveClsName) // hidden 的动画,就相对简单,只需要加上动画就行了,因为没有 display none 的干扰
addClass(el, hiddenStartClsName)
whenTransitionEnd(el, type, function() {
removeClass(el, hiddenStartClsName + ' ' + hiddenActiveClsName)
el.style.display = 'none'
typeof cb === 'function' && cb()
})
}
}
})()
export default transitionAction
\ No newline at end of file
import transitionAction from "./transition";
/**
* 函数防抖,如下拉菜单
* @param {Function} fn
* @param {Number} delay
* @returns
*/
export function debounce(fn, delay=2000) {
let timer = null;
return function(...args) {
let context = this;
if(timer) clearTimeout(timer)
timer = setTimeout(()=>{
fn.apply(context, args)
}, delay)
}
}
/**
* 函数节流, 用作防连点
* @param {Function} fn
* @param {Number} delay
* @returns
*/
export function throttle(fn, delay=2000) {
let flag = true,
timer = null;
return function (...args) {
let context = this;
if(!flag) return;
flag = false;
clearTimeout(timer);
fn.apply(context, args);
timer = setTimeout(() => {
flag = true
}, delay)
}
}
/**
* dataUrl(base64) 转为 BlobUrl
* @param {String} dataurl
* @returns
*/
export function dataURLtoBlobUrl(dataurl) {
var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
return URL.createObjectURL(new Blob([u8arr], { type: mime }));
}
/**
* 移动端的键盘回收上移处理
*/
export function inputIosAdapte() {
var ua = window.navigator.userAgent.toLowerCase();
if (/iphone|ipod|ipad/i.test(navigator.appVersion) && /MicroMessenger/i.test(ua)) {
document.body.addEventListener('focusout', () => {
console.log('focusout')
window.scrollTo({ top: 0, left: 0, behavior: 'smooth' })
});
}
}
/**
* 添加样式表 addCSSRule(document.styleSheets[0], ".header", "float: left");
* @param {*} sheet
* @param {*} selector
* @param {*} rules
* @param {*} index
*/
export function addCSSRule(sheet, selector, rules, index) {
if("insertRule" in sheet) {
sheet.insertRule(selector + "{" + rules + "}", index);
}
else if("addRule" in sheet) {
sheet.addRule(selector, rules, index);
}
}
/**
* 获取链接参数值
* @param {String} name
* @returns
*/
export function getUrlParam(name, href=location.href) {
const search = href.slice(href.indexOf('?'))
const matched = search
.slice(1)
.match(new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i'));
return search.length ? matched && matched[2] : null;
}
/**
* 设置url 参数
* @param {*} k
* @param {*} v
* @returns
*/
export function setUrlParam (k, v, href=location.href) {
let o = getUrlParam(k, href)
let e = new RegExp(`${k}=([^#&])`,'i')
let url
if (o) {
url = href.replace(o, v)
} else {
let s = href.indexOf('?') != -1 ? '&' : '?'
url = `${href}${s}${k}=${v}`
}
return url
}
var whitespaceRE = /\s+/
/**
* 添加 Dom class
* @param {Element} el
* @param {String} cls
* @returns
*/
export function addClass(el, cls) {
if (!cls || !(cls = cls.trim())) {
return
}
/* istanbul ignore else */
if (el.classList) {
if (cls.indexOf(' ') > -1) {
cls.split(whitespaceRE).forEach(function (c) {
return el.classList.add(c);
});
} else {
el.classList.add(cls);
}
} else {
var cur = " " + (el.getAttribute('class') || '') + " ";
if (cur.indexOf(' ' + cls + ' ') < 0) {
el.setAttribute('class', (cur + cls).trim());
}
}
}
/**
* 移除Dom class
* @param {Element} el
* @param {String} cls
* @returns
*/
export function removeClass(el, cls) {
/* istanbul ignore if */
if (!cls || !(cls = cls.trim())) {
return
}
/* istanbul ignore else */
if (el.classList) {
if (cls.indexOf(' ') > -1) {
cls.split(whitespaceRE).forEach(function (c) {
return el.classList.remove(c);
});
} else {
el.classList.remove(cls);
}
if (!el.classList.length) {
el.removeAttribute('class');
}
} else {
var cur = " " + (el.getAttribute('class') || '') + " ";
var tar = ' ' + cls + ' ';
while (cur.indexOf(tar) >= 0) {
cur = cur.replace(tar, ' ');
}
cur = cur.trim();
if (cur) {
el.setAttribute('class', cur);
} else {
el.removeAttribute('class');
}
}
}
/**
* 设置 Dom 内联样式
* @param {Element} el
* @param {Object} styles
* @returns
*/
export function setStyles (el, styles) {
if (!styles) return
var stylesKeys = Object.keys(styles)
if (stylesKeys.length) {
stylesKeys.forEach(function (item) {
el.style[item] = styles[item]
})
}
}
/**
* 返回时间格式
* @param {*} fmt
* @param {*} r
* @returns
*/
export function dateLeftFormat(fmt, r) {
if (r < 0) return -1
let ret
let opt = {
"h+": Math.floor(r / 3600).toString(), //小时
"m+": Math.floor(r % 3600 / 60).toString(), //分
"s+": Math.floor(r % 60).toString(), //秒
}
for (let k in opt) {
ret = new RegExp("(" + k + ")").exec(fmt);
if (ret) {
fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
};
};
return fmt;
}
/**
* 简单的使用 requestAnimationFrame 方法做定时器
* @param {*} fn
* @param {*} delay 100
*/
export function setIntervalFunc(fn, delay=1000) {
let lt = 0 // lastTime
let requestId
let _events = [] // 每秒需要执行的 方法arr
typeof fn == 'function' && _events.push(fn)
// 每秒都会执行
return {
start: function() {
const now = Date.now()
requestId = requestAnimationFrame(this.start.bind(this))
if (now - lt >= delay) {
lt = now
_events.map(f => f())
}
},
/**
*
* @param {*} fn
*/
notify(fn) {
typeof fn == 'function' && _events.push(fn)
},
off(fn) {
let i = _events.length;
while (i--) {
cb = _events[i];
if (cb === fn || cb.fn === fn) {
_events.splice(i, 1);
break;
}
}
},
getRequestId() {
return requestId
},
stop() {
cancelAnimationFrame(requestId)
}
}
}
/**
* 时间格式化
* @param {*} fmt
* @param {*} date
* @returns
*/
export function dateFormat(fmt, date) {
let ret;
date = new Date(date)
const opt = {
"Y+": date.getFullYear().toString(), // 年
"M+": (date.getMonth() + 1).toString(), // 月
"d+": date.getDate().toString(), // 日
"h+": date.getHours().toString(), // 时
"m+": date.getMinutes().toString(), // 分
"s+": date.getSeconds().toString() // 秒
// 有其他格式化字符需求可以继续添加,必须转化成字符串
};
for (let k in opt) {
ret = new RegExp("(" + k + ")").exec(fmt);
if (ret) {
fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
};
};
return fmt;
}
/**
* 添加事件
* @param {Element} element
* @param {String} type
* @param {Function} callback
*/
export function addHandler(element, type, callback) {
if (element.addEventListener) {
if (type.slice(0,2) === 'on') type = type.slice(2)
element.addEventListener(type, callback, false)
} else {
if (type.slice(0,2) !== 'on') type = 'on' + type
element.attachEvent(type, callback)
}
}
/**
* remove 事件
* @param {Element} element
* @param {String} type
* @param {Function} callback
*/
export function removeHandler(element, type, callback) {
if (element.addEventListener) {
if (type.slice(0,2) === 'on') type = type.slice(2)
element.removeEventListener(type, callback, false)
} else {
if (type.slice(0,2) !== 'on') type = 'on' + type
element.datachEvent(type, callback)
}
}
/**
* 获取 n-m之间的 随机数
* @param {Number} m
* @param {Number} n
* @returns
*/
export function randomNum(m, n) {
let max = m
let min = n
return () => {
return Math.floor(Math.random()*(max-min+1))+min
}
}
/**
* 显示 popover
* @param {string} content
* @param {Element} dom
* @param {Number} duration
* @param {String} placement
* @param {Number} offset
* @param {String} transition
*/
let popoverCont = null
let timer // 关闭事件
export function popover(content, dom, duration=2000, placement, offset = 10, transition="fade-in-linear") {
if (!dom) {
console.error('dom 不能为空')
return
}
let popover
if (!popoverCont) {
popover = popoverCont = document.createElement('div')
addClass(popover, 'qg-popover')
document.body.appendChild(popover)
} else {
popover = popoverCont
popover.style.display="block"
timer && clearTimeout(timer)
}
popover.innerHTML = content
const clientRect = dom.getBoundingClientRect()
let styles = {
position: 'fixed',
left: `${clientRect.x + (clientRect.width - popover.offsetWidth) / 2}Px`,
top: `${clientRect.y - popover.offsetHeight - offset}Px`
}
setStyles(popover, styles)
var transitionCtrl = new transitionAction({
el: popover,
transitionName: transition
})
transitionCtrl.show(() => {
timer = setTimeout(() => {
transitionCtrl.hidden()
}, duration)
})
return transitionCtrl
}
window.popover = popover
// /**
// * 同步遍历文件夹
// * @param {*} currentDirPath
// * @param {*} callback
// */
// export function walkSync(currentDirPath, callback) {
// var fs = require('fs'),
// path = require('path');
// fs.readdirSync(currentDirPath).forEach(function (name) {
// var filePath = path.join(currentDirPath, name);
// var stat = fs.statSync(filePath);
// if (stat.isFile()) {
// callback(filePath, stat);
// } else if (stat.isDirectory()) {
// walkSync(filePath, callback);
// }
// });
// }
// walkSync('path/to/root/dir', function(filePath, stat) {
// // do something with "filePath"...
// });
// /**
// * 异步遍历文件夹
// * @param {*} currentDirPath
// * @param {*} callback
// */
// export function walk(currentDirPath, callback) {
// var fs = require('fs'),
// path = require('path');
// fs.readdir(currentDirPath, function (err, files) {
// if (err) {
// throw new Error(err);
// }
// files.forEach(function (name) {
// var filePath = path.join(currentDirPath, name);
// var stat = fs.statSync(filePath);
// if (stat.isFile()) {
// callback(filePath, stat);
// } else if (stat.isDirectory()) {
// walk(filePath, callback);
// }
// });
// });
// }
/**
* Vue 的on off emit 事件 做消息中心
*/
class Vue {
static ins;
constructor() {
// 事件通道调度中心
this._events = Object.create(null);
}
$on(event, fn) {
if (Array.isArray(event)) {
event.map(item => {
this.$on(item, fn);
});
} else {
(this._events[event] || (this._events[event] = [])).push(fn);
}
return this;
}
$once(event, fn) {
function on() {
this.$off(event, on);
fn.apply(this, arguments);
}
on.fn = fn;
this.$on(event, on);
return this;
}
$off(event, fn) {
if (!arguments.length) {
this._events = Object.create(null);
return this;
}
if (Array.isArray(event)) {
event.map(item => {
this.$off(item, fn);
});
return this;
}
const cbs = this._events[event];
if (!cbs) {
return this;
}
if (!fn) {
this._events[event] = null;
return this;
}
let cb;
let i = cbs.length;
while (i--) {
cb = cbs[i];
if (cb === fn || cb.fn === fn) {
cbs.splice(i, 1);
break;
}
}
return this;
}
$emit(event) {
let cbs = this._events[event];
if (cbs) {
const args = [].slice.call(arguments, 1);
cbs.map(item => {
args ? item.apply(this, args) : item.call(this);
});
}
return this;
}
}
const vueControl = new Vue()
export default vueControl
\ No newline at end of file
{
"compilerOptions": {
"module": "commonjs", // 编译出的代码采用的模块规范
"noImplicitAny": false,
"noEmitOnError": true,
"target": "es5", // 编译出的代码采用 ES 的哪个版本
"sourceMap": true, // 输出 Source Map 方便调试
"lib": [
"dom",
"es5",
"es2015"
]
},
"exclude": [ // 不编译这些目录里的文件
"node_modules"
]
}
\ No newline at end of file
const path = require('path')
module.exports = {
mode: 'development',
entry: {
index: './src/main.ts'
},
devtool: 'source-map',
module: {
rules: [
{
test: /\.css$/,
use: ['style-loader', 'css-loader']
},
{
test: /\.jsx?$/,
use: ['babel-loader']
},
{
test: /\.tsx?$/,
use: ["ts-loader"],
exclude:/node_modules/
}
]
},
resolve: {
alias: {
'@': './src'
},
extensions: ['.ts', '.js', '.css']
},
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, './dist')
},
devServer: {
host: '0.0.0.0',
port: 9002,
hot: true,
open: true
}
}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment