2 lines
50 KiB
JavaScript
2 lines
50 KiB
JavaScript
|
|
import{d as e,c as t,a as n,w as o,b as l,r as i,o as a,e as s,t as r,F as d,f as c,g as u,v as g,h as p,i as h,j as m,k as y,l as f,m as w,n as v,p as x}from"./vendor.8616a479.js";var b=e({name:"app",computed:{showNav(){return!["game","replay"].includes(String(this.$route.name))}}});const A={id:"app"},C={key:0,class:"nav"},k=s("Index"),S=s("New game");b.render=function(e,s,r,d,c,u){const g=i("router-link"),p=i("router-view");return a(),t("div",A,[e.showNav?(a(),t("ul",C,[n("li",null,[n(g,{class:"btn",to:{name:"index"}},{default:o((()=>[k])),_:1})]),n("li",null,[n(g,{class:"btn",to:{name:"new-game"}},{default:o((()=>[S])),_:1})])])):l("",!0),n(p)])};const T=864e5,z=e=>{const t=Math.floor(e/T);e%=T;const n=Math.floor(e/36e5);e%=36e5;const o=Math.floor(e/6e4);e%=6e4;return`${t}d ${n}h ${o}m ${Math.floor(e/1e3)}s`};var I=1e3,P=()=>{const e=new Date;return Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds())},_=(e,t)=>z(t-e),D=z,B=e({name:"game-teaser",props:{game:{type:Object,required:!0}},computed:{style(){return{"background-image":`url("${this.game.imageUrl.replace("uploads/","uploads/r/")+"-375x210.webp"}")`}}},methods:{time(e,t){const n=t?"🏁":"⏳",o=e,l=t||P();return`${n} ${_(o,l)}`}}});const O={class:"game-info-text"},E=n("br",null,null,-1),M=n("br",null,null,-1),N=n("br",null,null,-1);B.render=function(e,d,c,u,g,p){const h=i("router-link");return a(),t("div",{class:"game-teaser",style:e.style},[n(h,{class:"game-info",to:{name:"game",params:{id:e.game.id}}},{default:o((()=>[n("span",O,[s(" 🧩 "+r(e.game.tilesFinished)+"/"+r(e.game.tilesTotal),1),E,s(" 👥 "+r(e.game.players),1),M,s(" "+r(e.time(e.game.started,e.game.finished)),1),N])])),_:1},8,["to"]),l("",!0)],4)};var U=e({components:{GameTeaser:B},data:()=>({gamesRunning:[],gamesFinished:[]}),async created(){const e=await fetch("/api/index-data"),t=await e.json();this.gamesRunning=t.gamesRunning,this.gamesFinished=t.gamesFinished}});const G=n("h1",null,"Running games",-1),R=n("h1",null,"Finished games",-1);U.render=function(e,o,l,s,r,u){const g=i("game-teaser");return a(),t("div",null,[G,(a(!0),t(d,null,c(e.gamesRunning,((e,o)=>(a(),t("div",{class:"game-teaser-wrap",key:o},[n(g,{game:e},null,8,["game"])])))),128)),R,(a(!0),t(d,null,c(e.gamesFinished,((e,o)=>(a(),t("div",{class:"game-teaser-wrap",key:o},[n(g,{game:e},null,8,["game"])])))),128))])};var $=e({name:"image-teaser",props:{image:{type:Object,required:!0}},computed:{style(){return{backgroundImage:`url("${this.image.url.replace("uploads/","uploads/r/")+"-150x100.webp"}")`}}},methods:{onClick(){this.$emit("click")}}});$.render=function(e,n,o,l,i,s){return a(),t("div",{class:"imageteaser",style:e.style,onClick:n[1]||(n[1]=(...t)=>e.onClick&&e.onClick(...t))},null,4)};var V=e({name:"image-library",components:{ImageTeaser:$},props:{images:{type:Array,required:!0}},emits:{imageClicked:null},methods:{imageClicked(e){this.$emit("imageClicked",e)}}});V.render=function(e,n,o,l,s,r){const u=i("image-teaser");return a(),t("div",null,[(a(!0),t(d,null,c(e.images,((n,o)=>(a(),t(u,{image:n,onClick:t=>e.imageClicked(n),key:o},null,8,["image","onClick"])))),128))])};var j=e({name:"upload",props:{accept:String,label:String},methods:{async upload(e){const t=e.target;if(!t.files)return;const n=t.files[0];if(!n)return;const o=new FormData;o.append("file",n,n.name);const l=await fetch("/upload",{method:"post",body:o}),i=await l.json();this.$emit("uploaded",i)}}});const F={class:"btn"};j.render=function(e,o,l,i,s,d){return a(),t("label",null,[n("input",{type:"file",style:{display:"none"},onChange:o[1]||(o[1]=(...t)=>e.upload&&e.upload(...t)),accept:e.accept},null,40,["accept"]),n("span",F,r(e.label||"Upload File"),1)])};const W={name:"responsive-image",props:{src:String,title:{type:String,default:""},height:{type:String,default:"100%"},width:{type:String,default:"100%"}},computed:{style(){return{display:"inline-block",verticalAlign:"text-bottom",backgroundImage:`url('${this.src}')`,backgroundRepeat:"no-repeat",backgroundSize:"contain",backgroun
|