Files
diabloweb/static/js/main.ec5130e6.chunk.js
2019-08-01 23:20:36 +03:00

2 lines
22 KiB
JavaScript

(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{23:function(e,t,n){e.exports=function(){return new Worker(n.p+"54277a9e96a084857713.worker.js")}},28:function(e,t,n){e.exports=n(58)},34:function(e,t,n){},35:function(e,t,n){},58:function(e,t,n){"use strict";n.r(t);var a=n(0),o=n.n(a),r=n(19),s=n.n(r),i=(n(34),Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)));function c(e,t){navigator.serviceWorker.register(e).then(function(e){e.onupdatefound=function(){var n=e.installing;null!=n&&(n.onstatechange=function(){"installed"===n.state&&(navigator.serviceWorker.controller?(console.log("New content is available and will be used when all tabs for this page are closed. See https://bit.ly/CRA-PWA."),t&&t.onUpdate&&t.onUpdate(e)):(console.log("Content is cached for offline use."),t&&t.onSuccess&&t.onSuccess(e)))})}}).catch(function(e){console.error("Error during service worker registration:",e)})}var u=n(5),l=n(20),d=n(21),h=n(25),f=n(22),p=n(4),v=n(26),m=n(27),g=(n(35),n(7)),b=n.n(g),y=n(8),w=n(1),k=n.n(w),x=n(6),M=n(3),E=n(23),T=n.n(E);var D=n(24),B=n.n(D),C=50274091;function L(e,t){return P.apply(this,arguments)}function P(){return(P=Object(M.a)(k.a.mark(function e(t,n){var a,o,r;return k.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!(a=n.files.get("spawn.mpq"))||a.byteLength===C){e.next=6;break}return n.files.delete("spawn.mpq"),e.next=5,n.delete("spawn.mpq");case 5:a=null;case 6:if(a){e.next=15;break}return e.next=9,B.a.request({url:"/diabloweb/spawn.mpq",responseType:"arraybuffer",onDownloadProgress:function(e){t.onProgress&&t.onProgress({text:"Downloading...",loaded:e.loaded,total:e.total||C})},headers:{"Cache-Control":"max-age=31536000"}});case 9:if((o=e.sent).data.byteLength===C){e.next=12;break}throw Error("Invalid spawn.mpq size. Try clearing cache and refreshing the page.");case 12:r=new Uint8Array(o.data),n.files.set("spawn.mpq",r),n.update("spawn.mpq",r.slice());case 15:return e.abrupt("return",n);case 16:case"end":return e.stop()}},e)}))).apply(this,arguments)}function _(e,t,n){var a=n.bitmap,o=n.images,r=n.text,s=n.clip,i=n.belt;if(a)t.transferFromImageBitmap(a);else{var c=!0,u=!1,l=void 0;try{for(var d,h=o[Symbol.iterator]();!(c=(d=h.next()).done);c=!0){var f=d.value,p=f.x,v=f.y,m=f.w,g=f.h,b=f.data,y=t.createImageData(m,g);y.data.set(b),t.putImageData(y,p,v)}}catch(N){u=!0,l=N}finally{try{c||null==h.return||h.return()}finally{if(u)throw l}}if(r.length){if(t.save(),t.font="bold 13px Times New Roman",s){var w=s.x0,k=s.y0,x=s.x1,M=s.y1;t.beginPath(),t.rect(w,k,x-w,M-k),t.clip()}var E=!0,T=!1,D=void 0;try{for(var B,C=r[Symbol.iterator]();!(E=(B=C.next()).done);E=!0){var L=B.value,P=L.x,_=L.y,j=L.text,O=L.color,A=O>>16&255,S=O>>8&255,K=255&O;t.fillStyle="rgb(".concat(A,", ").concat(S,", ").concat(K,")"),t.fillText(j,P,_+22)}}catch(N){T=!0,D=N}finally{try{E||null==C.return||C.return()}finally{if(T)throw D}}t.restore()}}e.updateBelt(i)}function j(){return(j=Object(M.a)(k.a.mark(function e(t,n,a){var o,r,s,i;return k.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.fs;case 2:if(o=e.sent,r=!0,!a){e.next=8;break}a.name.match(/^spawn\.mpq$/i)||(r=!1,o.files.delete("spawn.mpq")),e.next=10;break;case 8:return e.next=10,L(t,o);case 10:return s=null,i=!1,s=t.canvas.getContext("2d",{alpha:!1}),e.next=14,new Promise(function(e,c){try{var l=new T.a;l.addEventListener("message",function(a){var r=a.data;switch(r.action){case"loaded":e(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),a=1;a<t;a++)n[a-1]=arguments[a];return l.postMessage({action:"event",func:e,params:n})});break;case"render":_(t,s,r.batch);break;case"audio":n[r.func].apply(n,Object(u.a)(r.params));break;case"audioBatch":var i=!0,d=!1,h=void 0;try{for(var f,p=r.batch[Symbol.iterator]();!(i=(f=p.next()).done);i=!0){var v=f.value,m=v.func,g=v.params;n[m].apply(n,Object(u.a)(g))}}catch(b){d=!0,h=b}finally{try{i||null==p.return||p.return()}finally{if(d)throw h}}break;case"fs":o[r.func].apply(o,Object(u.a)(r.params));break;case"cursor":t.setCursorPos(r.x,r.y);break;case"keyboard":t.openKeyboard(r.open);break;case"error":t.onError(r.error);break;case"failed":c(Error(r.error));break;case"progress":t.onProgress({text:r.text,loaded:r.loaded,total:r.total})}});var d=[],h=!0,f=!1,p=void 0;try{for(var v,m=o.files[Symbol.iterator]();!(h=(v=m.next()).done);h=!0){var g=v.value,b=Object(x.a)(g,2)[1];d.push(b.buffer)}}catch(y){f=!0,p=y}finally{try{h||null==m.return||m.return()}finally{if(f)throw p}}l.postMessage({action:"init",files:o.files,mpq:a,spawn:r,offscreen:i},d),delete o.files}catch(w){c(w)}});case 14:return e.abrupt("return",e.sent);case 15:case"end":return e.stop()}},e)}))).apply(this,arguments)}function O(e,t){return function(e,t,n){return j.apply(this,arguments)}(e,function(){var e=window.AudioContext||window.webkitAudioContext;if(!e)return{create_sound:function(){return 0},duplicate_sound:function(){return 0},play_sound:function(){},set_volume:function(){},stop_sound:function(){},delete_sound:function(){}};var t=new e,n=new Map;return{create_sound:function(e,a,o,r,s){for(var i=t.createBuffer(r,o,s),c=0;c<r;++c)i.copyToChannel(a.subarray(c*o,c*o+o),c);n.set(e,{buffer:i,gain:t.createGain(),panner:new StereoPannerNode(t,{pan:0})})},duplicate_sound:function(e,a){var o=n.get(a);o&&n.set(e,{buffer:o.buffer,gain:t.createGain(),panner:new StereoPannerNode(t,{pan:0})})},play_sound:function(e,a,o,r){var s=n.get(e);if(s){s.source&&s.source.stop(),s.gain.gain.value=Math.pow(2,a/1e3);var i=Math.pow(2,o/1e3);s.panner.pan.value=1-2/(1+i),s.source=t.createBufferSource(),s.source.buffer=s.buffer,s.source.loop=!!r,s.source.connect(s.gain).connect(s.panner).connect(t.destination),s.source.start()}},set_volume:function(e,t){var a=n.get(e);a&&(a.gain.gain.value=Math.pow(2,t/1e3))},stop_sound:function(e){var t=n.get(e);t&&t.source&&(t.source.stop(),delete t.source)},delete_sound:function(e){var t=n.get(e);t&&t.source&&t.source.stop(),n.delete(e)}}}(),t)}var A=0,S=1,K=function(e){var t=e.children,n=Object(m.a)(e,["children"]);return o.a.createElement("a",Object.assign({target:"_blank",rel:"noopener noreferrer"},n),t)},N=function(e){function t(e){var n;return Object(l.a)(this,t),(n=Object(h.a)(this,Object(f.a)(t).call(this,e))).files=new Map,n.state={started:!1,loading:!1,touch:!1,dropping:0,has_spawn:!1},n.cursorPos={x:0,y:0},n.touchButtons=[null,null,null,null,null,null],n.touchCtx=[null,null,null,null,null,null],n.touchMods=[!1,!1,!1,!1,!1,!1],n.touchBelt=[-1,-1,-1,-1,-1,-1],n.fs=Object(y.a)(!0),n.onDrop=function(e){var t=function(e){if(e.dataTransfer.items)for(var t=0;t<e.dataTransfer.items.length;++t)if("file"===e.dataTransfer.items[t].kind)return e.dataTransfer.items[t].getAsFile();if(e.dataTransfer.files.length)return e.dataTransfer.files[0]}(e);t&&(e.preventDefault(),n.start(t)),n.setState({dropping:0})},n.onDragEnter=function(e){e.preventDefault(),n.setDropping(1)},n.onDragOver=function(e){(function(e){if(e.dataTransfer.items)for(var t=0;t<e.dataTransfer.items.length;++t)if("file"===e.dataTransfer.items[t].kind)return!0;return!!e.dataTransfer.files.length})(e)&&e.preventDefault()},n.onDragLeave=function(e){n.setDropping(-1)},n.onResize=function(){document.exitPointerLock()},n.onPointerLockChange=function(){window.screen&&window.innerHeight===window.screen.height&&!n.pointerLocked()&&(n.game("DApi_Key",0,0,27),n.game("DApi_Key",1,0,27))},n.onMouseMove=function(e){if(n.canvas){var t=n.mousePos(e),a=t.x,o=t.y;n.game("DApi_Mouse",0,0,n.eventMods(e),a,o),e.preventDefault()}},n.onMouseDown=function(e){if(n.canvas){var t=n.mousePos(e),a=t.x,o=t.y;window.screen&&window.innerHeight===window.screen.height&&(n.pointerLocked()||n.canvas.requestPointerLock()),n.game("DApi_Mouse",1,n.mouseButton(e),n.eventMods(e),a,o),e.preventDefault()}},n.onMouseUp=function(e){if(n.canvas){var t=n.mousePos(e),a=t.x,o=t.y;n.game("DApi_Mouse",2,n.mouseButton(e),n.eventMods(e),a,o),e.preventDefault()}},n.onKeyDown=function(e){n.canvas&&(n.game("DApi_Key",0,n.eventMods(e),e.keyCode),n.clearKeySel(),e.preventDefault())},n.onMenu=function(e){e.preventDefault()},n.onKeyUp=function(e){n.canvas&&(n.game("DApi_Key",1,n.eventMods(e),e.keyCode),n.clearKeySel())},n.onKeyboard=function(){if(n.showKeyboard){var e,t=n.keyboard.value,a=(t.match(/[\x20-\x7E]/g)||[]).join("").substring(0,15);t!==a&&(n.keyboard.value=a),n.clearKeySel();var o=Object(u.a)(Array(15)).map(function(e,t){return t<a.length?a.charCodeAt(t):0});(e=n).game.apply(e,["DApi_SyncText"].concat(Object(u.a)(o)))}},n.parseFile=function(e){var t=e.target.files;t.length>0&&n.start(t[0])},n.touchButton=null,n.touchCanvas=null,n.onFullscreenChange=function(){n.setState({touch:document.fullscreenElement===n.element})},n.onTouchStart=function(e){if(n.canvas&&(e.preventDefault(),n.updateTouchButton(e.touches,!1))){var t=n.mousePos(n.touchCanvas),a=t.x,o=t.y;n.game("DApi_Mouse",0,0,n.eventMods(e),a,o),n.touchMods[A]||n.game("DApi_Mouse",1,n.touchMods[S]?2:1,n.eventMods(e),a,o)}},n.onTouchMove=function(e){if(n.canvas&&(e.preventDefault(),n.updateTouchButton(e.touches,!1))){var t=n.mousePos(n.touchCanvas),a=t.x,o=t.y;n.game("DApi_Mouse",0,0,n.eventMods(e),a,o)}},n.onTouchEnd=function(e){if(n.canvas){e.preventDefault();var t=n.touchCanvas;if(n.updateTouchButton(e.touches,!0),t&&!n.touchCanvas){var a=n.mousePos(t),o=a.x,r=a.y;n.game("DApi_Mouse",2,1,n.eventMods(e),o,r),n.game("DApi_Mouse",2,2,n.eventMods(e),o,r),!n.touchMods[S]||n.touchButton&&n.touchButton.index===S||n.setTouchButton(S,!1)}document.fullscreenElement||n.element.requestFullscreen()}},n.setCanvas=function(e){return n.canvas=e},n.setElement=function(e){return n.element=e},n.setKeyboard=function(e){return n.keyboard=e},n.setTouch0=n.setTouch_.bind(Object(p.a)(n),0),n.setTouch1=n.setTouch_.bind(Object(p.a)(n),1),n.setTouch2=n.setTouch_.bind(Object(p.a)(n),2),n.setTouch3=n.setTouchBelt_.bind(Object(p.a)(n),3),n.setTouch4=n.setTouchBelt_.bind(Object(p.a)(n),4),n.setTouch5=n.setTouchBelt_.bind(Object(p.a)(n),5),n}return Object(v.a)(t,e),Object(d.a)(t,[{key:"componentDidMount",value:function(){var e=this;document.addEventListener("drop",this.onDrop,!0),document.addEventListener("dragover",this.onDragOver,!0),document.addEventListener("dragenter",this.onDragEnter,!0),document.addEventListener("dragleave",this.onDragLeave,!0),this.fs.then(function(t){var n=t.files.get("spawn.mpq");n&&n.byteLength===C&&e.setState({has_spawn:!0})})}},{key:"setDropping",value:function(e){this.setState(function(t){var n=t.dropping;return{dropping:Math.max(n+e,0)}})}},{key:"onError",value:function(e){this.setState({error:e})}},{key:"openKeyboard",value:function(e){e?(this.showKeyboard=!0,this.element.classList.add("keyboard"),this.keyboard.focus()):(this.showKeyboard=!1,this.element.classList.remove("keyboard"),this.keyboard.blur())}},{key:"setCursorPos",value:function(e,t){var n=this,a=this.canvas.getBoundingClientRect();this.cursorPos={x:a.left+(a.right-a.left)*e/640,y:a.top+(a.bottom-a.top)*t/480},setTimeout(function(){n.game("DApi_Mouse",0,0,0,e,t)})}},{key:"onProgress",value:function(e){this.setState({progress:e})}},{key:"drawBelt",value:function(e,t){this.touchButtons[e]&&(this.touchBelt[e]=t,t>=0?(this.touchButtons[e].style.display="block",this.touchCtx[e].drawImage(this.canvas,205+29*t,357,28,28,0,0,28,28)):this.touchButtons[e].style.display="none")}},{key:"updateBelt",value:function(e){if(e){for(var t=new Set,n=3,a=0;a<e.length&&n<6;++a)e[a]>=0&&!t.has(e[a])&&(this.drawBelt(n++,a),t.add(e[a]));for(;n<6;++n)this.drawBelt(n,-1)}else this.drawBelt(3,-1),this.drawBelt(4,-1),this.drawBelt(5,-1)}},{key:"start",value:function(e){var t=this;document.removeEventListener("drop",this.onDrop,!0),document.removeEventListener("dragover",this.onDragOver,!0),document.removeEventListener("dragenter",this.onDragEnter,!0),document.removeEventListener("dragleave",this.onDragLeave,!0),this.setState({dropping:0}),this.setState({loading:!0}),O(this,e).then(function(e){t.game=e,document.addEventListener("mousemove",t.onMouseMove,!0),document.addEventListener("mousedown",t.onMouseDown,!0),document.addEventListener("mouseup",t.onMouseUp,!0),document.addEventListener("keydown",t.onKeyDown,!0),document.addEventListener("keyup",t.onKeyUp,!0),document.addEventListener("contextmenu",t.onMenu,!0),document.addEventListener("touchstart",t.onTouchStart,{passive:!1,capture:!0}),document.addEventListener("touchmove",t.onTouchMove,{passive:!1,capture:!0}),document.addEventListener("touchend",t.onTouchEnd,{passive:!1,capture:!0}),document.addEventListener("pointerlockchange",t.onPointerLockChange),document.addEventListener("fullscreenchange",t.onFullscreenChange),window.addEventListener("resize",t.onResize),t.setState({started:!0})},function(e){return t.onError(e.message)})}},{key:"pointerLocked",value:function(){return document.pointerLockElement===this.canvas||document.mozPointerLockElement===this.canvas}},{key:"mousePos",value:function(e){var t=this.canvas.getBoundingClientRect();return this.pointerLocked()?(this.cursorPos.x=Math.max(t.left,Math.min(t.right,this.cursorPos.x+e.movementX)),this.cursorPos.y=Math.max(t.top,Math.min(t.bottom,this.cursorPos.y+e.movementY))):this.cursorPos={x:e.clientX,y:e.clientY},{x:Math.max(0,Math.min(Math.round((this.cursorPos.x-t.left)/(t.right-t.left)*640),639)),y:Math.max(0,Math.min(Math.round((this.cursorPos.y-t.top)/(t.bottom-t.top)*480),479))}}},{key:"mouseButton",value:function(e){switch(e.button){case 0:return 1;case 1:return 4;case 2:return 2;case 3:return 5;case 4:return 6;default:return 1}}},{key:"eventMods",value:function(e){return(e.shiftKey||this.touchMods[2]?1:0)+(e.ctrlKey?2:0)+(e.altKey?4:0)+(e.touches?8:0)}},{key:"clearKeySel",value:function(){if(this.showKeyboard){var e=this.keyboard.value.length;this.keyboard.setSelectionRange(e,e)}}},{key:"setTouchMod",value:function(e,t,n){if(e<3)this.touchMods[e]=t,this.touchButtons[e]&&this.touchButtons[e].classList.toggle("active",t);else if(n&&this.touchBelt[e]>=0){var a=performance.now();(!this.beltTime||a-this.beltTime>750)&&(this.game("DApi_Char",49+this.touchBelt[e]),this.beltTime=a)}}},{key:"updateTouchButton",value:function(e,t){var n=this,a=null,o=this.touchButton,r=!0,s=!1,i=void 0;try{for(var c,l=function(){var t=c.value,r=t.target,s=t.identifier,i=t.clientX,l=t.clientY;if(o&&o.id===s&&n.touchButtons[o.index]===r)return e.length>1&&(o.stick=!1),o.clientX=i,o.clientY=l,n.touchCanvas=Object(u.a)(e).find(function(e){return e.identifier!==s}),n.touchCanvas&&(n.touchCanvas={clientX:n.touchCanvas.clientX,clientY:n.touchCanvas.clientY}),delete n.panPos,{v:null!=n.touchCanvas};var d=n.touchButtons.indexOf(r);d>=0&&!a&&(a={id:s,index:d,stick:!0,original:n.touchMods[d],clientX:i,clientY:l})},d=e[Symbol.iterator]();!(r=(c=d.next()).done);r=!0){var h=l();if("object"===typeof h)return h.v}}catch(x){s=!0,i=x}finally{try{r||null==d.return||d.return()}finally{if(s)throw i}}if(o&&!a&&t&&o.stick){var f=this.touchButtons[o.index].getBoundingClientRect(),p=o.clientX,v=o.clientY;p>=f.left&&p<f.right&&v>=f.top&&v<f.bottom?this.setTouchMod(o.index,!o.original,!0):this.setTouchMod(o.index,o.original)}else o&&this.setTouchMod(o.index,!1);if(this.touchButton=a,a)this.setTouchMod(a.index,!0),a.index===A?this.setTouchMod(S,!1):a.index===S&&this.setTouchMod(A,!1),delete this.panPos;else{if(2===e.length){var m=(e[1].clientX+e[0].clientX)/2,g=(e[1].clientY+e[0].clientY)/2;if(this.panPos){var b,y=m-this.panPos.x,w=g-this.panPos.y,k=this.canvas.offsetHeight/12;if(Math.max(Math.abs(y),Math.abs(w))>k)b=Math.abs(y)>Math.abs(w)?y>0?37:39:w>0?38:40,this.game("DApi_Key",0,0,b),this.panPos={x:m,y:g}}else this.game("DApi_Mouse",0,0,24,320,180),this.game("DApi_Mouse",2,1,24,320,180),this.panPos={x:m,y:g};return this.touchCanvas=null,!1}delete this.panPos}return this.touchCanvas=Object(u.a)(e).find(function(e){return!a||e.identifier!==a.id}),this.touchCanvas&&(this.touchCanvas={clientX:this.touchCanvas.clientX,clientY:this.touchCanvas.clientY}),null!=this.touchCanvas}},{key:"setTouch_",value:function(e,t){this.touchButtons[e]=t}},{key:"setTouchBelt_",value:function(e,t){if(this.touchButtons[e]=t,t){var n=document.createElement("canvas");n.width=28,n.height=28,t.appendChild(n),this.touchCtx[e]=n.getContext("2d")}else this.touchCtx[e]=null}},{key:"render",value:function(){var e=this,t=this.state,n=t.started,a=t.loading,r=t.error,s=t.progress,i=t.dropping,c=t.touch,u=t.has_spawn;return o.a.createElement("div",{className:b()("App",{touch:c,started:n,dropping:i,keyboard:this.showKeyboard}),ref:this.setElement},o.a.createElement("div",{className:"touch-ui touch-mods"},o.a.createElement("div",{className:b()("touch-button","touch-button-0",{active:this.touchMods[0]}),ref:this.setTouch0}),o.a.createElement("div",{className:b()("touch-button","touch-button-1",{active:this.touchMods[1]}),ref:this.setTouch1}),o.a.createElement("div",{className:b()("touch-button","touch-button-2",{active:this.touchMods[2]}),ref:this.setTouch2})),o.a.createElement("div",{className:"touch-ui touch-belt"},o.a.createElement("div",{className:b()("touch-button","touch-button-0"),ref:this.setTouch3}),o.a.createElement("div",{className:b()("touch-button","touch-button-1"),ref:this.setTouch4}),o.a.createElement("div",{className:b()("touch-button","touch-button-2"),ref:this.setTouch5})),o.a.createElement("div",{className:"Body"},!r&&o.a.createElement("canvas",{ref:this.setCanvas,width:640,height:480}),o.a.createElement("input",{type:"text",className:"keyboard",onChange:this.onKeyboard,ref:this.setKeyboard,spellCheck:!1})),o.a.createElement("div",{className:"BodyV"},!!r&&o.a.createElement(K,{className:"error",href:"https://github.com/d07RiV/diabloweb/issues"},o.a.createElement("p",{className:"header"},"The following error has occurred:"),o.a.createElement("p",{className:"body"},r),o.a.createElement("p",{className:"footer"},"Click to go to GitHub issues")),!!a&&!n&&!r&&o.a.createElement("div",{className:"loading"},s&&s.text||"Loading...",null!=s&&!!s.total&&o.a.createElement("span",{className:"progressBar"},o.a.createElement("span",null,o.a.createElement("span",{style:{width:"".concat(Math.round(100*s.loaded/s.total),"%")}})))),!n&&!a&&!r&&o.a.createElement("div",{className:"start"},o.a.createElement("p",null,"This is a web port of the original Diablo game, based on source code reconstructed by GalaXyHaXz and devilution team: ",o.a.createElement(K,{href:"https://github.com/diasurgical/devilution"},"https://github.com/diasurgical/devilution")),o.a.createElement("p",null,"If you own the original game, you can drop the original DIABDAT.MPQ onto this page or click the button below to start playing. The game can be purchased from ",o.a.createElement(K,{href:"https://www.gog.com/game/diablo"},"GoG"),"."),!u&&o.a.createElement("p",null,"Or you can play the shareware version for free (50MB download)."),o.a.createElement("form",null,o.a.createElement("label",{htmlFor:"loadFile",className:"startButton"},"Select MPQ"),o.a.createElement("input",{accept:".mpq",type:"file",id:"loadFile",style:{display:"none"},onChange:this.parseFile})),o.a.createElement("span",{className:"startButton",onClick:function(){return e.start()}},"Play Shareware"))))}}]),t}(o.a.Component);s.a.render(o.a.createElement(N,null),document.getElementById("root")),function(e){if("serviceWorker"in navigator){if(new URL("/diabloweb",window.location.href).origin!==window.location.origin)return;window.addEventListener("load",function(){var t="".concat("/diabloweb","/service-worker.js");i?(function(e,t){fetch(e).then(function(n){var a=n.headers.get("content-type");404===n.status||null!=a&&-1===a.indexOf("javascript")?navigator.serviceWorker.ready.then(function(e){e.unregister().then(function(){window.location.reload()})}):c(e,t)}).catch(function(){console.log("No internet connection found. App is running in offline mode.")})}(t,e),navigator.serviceWorker.ready.then(function(){console.log("This web app is being served cache-first by a service worker. To learn more, visit https://bit.ly/CRA-PWA")})):c(t,e)})}}()},8:function(e,t,n){"use strict";n.d(t,"a",function(){return h});var a=n(6),o=n(1),r=n.n(o),s=n(3),i=n(9),c=n.n(i),u=function(){return new Promise(function(e,t){var n=!1,a=document.createElement("iframe");window.addEventListener("message",function(t){var o=t.data;"storage"!==o.method||n||(n=!0,e(o.files),a.contentWindow.postMessage({method:"clear"},"*"))}),a.addEventListener("load",function(){a.contentWindow.postMessage({method:"transfer"},"*")}),a.addEventListener("error",function(){n||(n=!0,e(null))}),a.src="https://diablo.rivsoft.net/storage.html",a.style.display="none",document.body.appendChild(a),setTimeout(function(){n||(n=!0,e(null))},1e4)})};function l(e,t){return d.apply(this,arguments)}function d(){return(d=Object(s.a)(r.a.mark(function e(t,n){var a,o,s,i;return r.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.get(n.toLowerCase());case 2:(a=e.sent)?(o=new Blob([a],{type:"binary/octet-stream"}),s=URL.createObjectURL(o),(i=document.createElement("a")).setAttribute("href",s),i.setAttribute("download",n),document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(s)):console.error("File ".concat(n," does not exist"));case 4:case"end":return e.stop()}},e)}))).apply(this,arguments)}function h(e){return f.apply(this,arguments)}function f(){return(f=Object(s.a)(r.a.mark(function e(t){var n,o,s,i,d,h,f,p,v,m,g,b,y,w,k,x,M,E;return r.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,n=new c.a("diablo_fs"),o=new Map,s=0,e.t0=Object,e.next=7,n.json();case 7:e.t1=e.sent,i=e.t0.entries.call(e.t0,e.t1);case 9:if(!(s<i.length)){e.next=18;break}d=i[s],h=Object(a.a)(d,2),f=h[0],p=h[1],o.set(f,p);case 15:s++,e.next=9;break;case 18:if(!t){e.next=42;break}return e.next=21,u();case 21:if(!(v=e.sent)){e.next=42;break}for(m=!0,g=!1,b=void 0,e.prev=26,y=v[Symbol.iterator]();!(m=(w=y.next()).done);m=!0)k=w.value,x=Object(a.a)(k,2),M=x[0],E=x[1],v.set(M,E),n.set(M,E);e.next=34;break;case 30:e.prev=30,e.t2=e.catch(26),g=!0,b=e.t2;case 34:e.prev=34,e.prev=35,m||null==y.return||y.return();case 37:if(e.prev=37,!g){e.next=40;break}throw b;case 40:return e.finish(37);case 41:return e.finish(34);case 42:return window.DownloadFile=function(e){return l(n,e)},e.abrupt("return",{files:o,update:function(e,t){return n.set(e,t)},delete:function(e){return n.remove(e)},clear:function(){return n.clear()}});case 46:return e.prev=46,e.t3=e.catch(0),window.DownloadFile=function(){return console.error("IndexedDB is not supported")},e.abrupt("return",{files:new Map,update:function(){return Promise.resolve()},delete:function(){return Promise.resolve()},clear:function(){return Promise.resolve()}});case 50:case"end":return e.stop()}},e,null,[[0,46],[26,30,34,42],[35,,37,41]])}))).apply(this,arguments)}}},[[28,2,0,5]]]);
//# sourceMappingURL=main.ec5130e6.chunk.js.map