Files
stacjownik/dist/assets/TrainsView-6e19131c.js
T
2022-12-20 16:56:12 +01:00

2 lines
13 KiB
JavaScript

import{a as k,H as W,A as K,c as B,v as R,y as _,_ as C,f as h,h as $,g as s,m as O,t as o,C as b,E as w,T as A,l as q,o as p,z as I,B as F,F as y,r as D,e as f,k as T,G as U,L as j,I as P,J as V,u as E,j as z,w as G,q as H,s as J,K as L,M as X,N as S}from"./index-a65056c2.js";import{r as Z}from"./returnBtnMixin-ddf8068c.js";const Q=k({components:{SelectBox:W,ActionButton:K},mixins:[B,R],props:{sorterOptionIds:{type:Array,required:!0}},data(){return{showOptions:!1}},setup(){return{searchedTrain:_("searchedTrain"),searchedDriver:_("searchedDriver"),sorterActive:_("sorterActive"),trainFilterList:_("filterList")}},computed:{translatedSorterOptions(){return this.$props.sorterOptionIds.map(t=>({id:t,value:this.$t(`options.sort-${t}`)}))}},methods:{onKeyDownFunction(){this.toggleShowOptions()},toggleShowOptions(){this.showOptions=!this.showOptions,this.$nextTick(()=>{var t;this.showOptions&&((t=this.$refs.button)==null||t.focus())})},onSorterChange(t){this.sorterActive.id=t.id,this.sorterActive.dir=-1},onFilterChange(t){t.isActive=!t.isActive},clearAllFilters(){this.trainFilterList.forEach(t=>{t.isActive=!1})},resetAllFilters(){this.trainFilterList.forEach(t=>{t.isActive=!0})},onInputClear(t){t=="driver"&&(this.searchedDriver=""),t=="train"&&(this.searchedTrain="")}}});const Y=["src"],x={key:0,class:"options_wrapper"},tt={class:"options_content"},et={class:"option-title"},st={class:"search_content"},it={class:"search-box"},nt=["placeholder"],rt={class:"search-exit"},at=["src"],ot={class:"search-box"},lt=["placeholder"],dt={class:"search-exit"},ct=["src"],ut={class:"option-title"},pt={class:"options_sorters"},ht=["data-selected","onClick"],mt={key:0,class:"option-title"},vt={class:"options_filters"},gt={class:"filter-option"},ft=["data-disabled","onClick"],_t={class:"filter-actions"};function $t(t,e,c,d,a,m){return p(),h("div",{class:"filters-options",onKeydown:e[12]||(e[12]=q(n=>t.showOptions=!1,["esc"]))},[t.showOptions?(p(),h("div",{key:0,class:"bg",onClick:e[0]||(e[0]=n=>t.showOptions=!1)})):$("",!0),s("button",{class:"btn--filled btn--image",onClick:e[1]||(e[1]=(...n)=>t.toggleShowOptions&&t.toggleShowOptions(...n)),ref:"button"},[s("img",{src:t.getIcon("filter2"),alt:"Open filters"},null,8,Y),O(" "+o(t.$t("options.filters"))+" [F] ",1)],512),b(A,{name:"options-anim"},{default:w(()=>[t.showOptions?(p(),h("div",x,[s("div",tt,[s("h1",et,o(t.$t("options.search-title")),1),s("div",st,[s("div",it,[I(s("input",{class:"search-input",ref:"initFocusedElement",onFocus:e[2]||(e[2]=n=>t.preventKeyDown=!0),onBlur:e[3]||(e[3]=n=>t.preventKeyDown=!1),placeholder:t.$t("options.search-train"),"onUpdate:modelValue":e[4]||(e[4]=n=>t.searchedTrain=n)},null,40,nt),[[F,t.searchedTrain]]),s("button",rt,[s("img",{src:t.getIcon("exit"),alt:"exit-icon",onClick:e[5]||(e[5]=n=>t.onInputClear("train"))},null,8,at)])]),s("div",ot,[I(s("input",{class:"search-input",onFocus:e[6]||(e[6]=n=>t.preventKeyDown=!0),onBlur:e[7]||(e[7]=n=>t.preventKeyDown=!1),placeholder:t.$t("options.search-driver"),"onUpdate:modelValue":e[8]||(e[8]=n=>t.searchedDriver=n)},null,40,lt),[[F,t.searchedDriver]]),s("button",dt,[s("img",{src:t.getIcon("exit"),alt:"exit-icon",onClick:e[9]||(e[9]=n=>t.onInputClear("driver"))},null,8,ct)])])]),s("h1",ut,o(t.$t("options.sort-title")),1),s("div",pt,[(p(!0),h(y,null,D(t.translatedSorterOptions,n=>(p(),h("div",null,[s("button",{class:"sort-option btn--option","data-selected":n.id==t.sorterActive.id,onClick:u=>t.onSorterChange(n)},o(n.value.toUpperCase()),9,ht)]))),256))]),t.trainFilterList.length!=0?(p(),h("h1",mt,o(t.$t("options.filter-title")),1)):$("",!0),s("div",vt,[(p(!0),h(y,null,D(t.trainFilterList,n=>(p(),h("div",gt,[s("button",{class:"btn--option","data-disabled":!n.isActive,onClick:u=>t.onFilterChange(n)},o(t.$t(`options.filter-${n.id}`)),9,ft)]))),256)),s("div",_t,[s("button",{class:"btn--action",onClick:e[10]||(e[10]=(...n)=>t.clearAllFilters&&t.clearAllFilters(...n))},o(t.$t("options.filter-clear")),1),s("button",{class:"btn--action",onClick:e[11]||(e[11]=(...n)=>t.resetAllFilters&&t.resetAllFilters(...n))},o(t.$t("options.filter-reset")),1)])])])])):$("",!0)]),_:1})],32)}const bt=C(Q,[["render",$t],["__scopeId","data-v-437ed666"]]),yt=k({components:{ActionButton:K},mixins:[B],props:{trains:{type:Array,required:!0}},data:()=>({trainStatsOpen:!1}),methods:{toggleStatsOpen(){this.trainStatsOpen=!this.trainStatsOpen},closeStats(){this.trainStatsOpen=!1}},setup(t){const e=f(()=>{if(t.trains.length==0)return{avg:"0",min:"0",max:"0"};const u=t.trains.filter(i=>i.timetableData),l=(u.reduce((i,v)=>i+v.speed,0)/u.length).toFixed(2),r=u.reduce((i,v)=>(v.timetableData&&(i[0]=!i[0]||v.speed<i[0]?v.speed:i[0],i[1]=!i[1]||v.speed>i[1]?v.speed:i[1]),i),[]);return{avg:l,min:r[0].toString(),max:r[1].toString()}}),c=f(()=>{if(t.trains.length==0)return{avg:"0",min:"0",max:"0"};const u=t.trains.filter(i=>i.timetableData).length,l=(t.trains.reduce((i,v)=>v.timetableData?i+v.timetableData.routeDistance:i,0)/u).toFixed(2),r=t.trains.reduce((i,v)=>(v.timetableData&&(i[0]=!i[0]||v.timetableData.routeDistance<i[0]?v.timetableData.routeDistance:i[0],i[1]=!i[1]||v.timetableData.routeDistance>i[1]?v.timetableData.routeDistance:i[1]),i),[]);return{avg:l,min:r[0].toString(),max:r[1].toString()}}),d=f(()=>{const u=t.trains.reduce((l,r)=>(!r.timetableData||!r.timetableData.category||l.set(r.timetableData.category,l.get(r.timetableData.category)?l.get(r.timetableData.category)+1:1),l),new Map);return new Map([...u.entries()].sort((l,r)=>r[1]-l[1]))}),a=f(()=>[...t.trains.reduce((r,i)=>(!i.timetableData||!i.locoType||r.set(i.locoType,r.get(i.locoType)?r.get(i.locoType)+1:1),r),new Map).entries()].sort((r,i)=>i[1]-r[1]).filter((r,i)=>i<3)),m=f(()=>{const u=t.trains.filter(r=>r.timetableData&&r.timetableData.TWR),l=t.trains.filter(r=>r.timetableData&&r.timetableData.SKR);return[u.length,l.length]}),n=_("chosenTrainCategories");return{speedStats:e,timetableStats:c,categoryList:d,locoList:a,specialTrainCount:m,chosenTrainCategories:n}}});const Dt={class:"train-stats"},Tt=["src","alt"],St={key:0,class:"stats-body"},wt={class:"stats-header"},kt=["src","alt"],Ct={class:"stats-speed"},Lt={class:"title stats-title"},It={class:"stats-content"},Ot={class:"stats-length"},At={class:"title stats-title"},Ft={class:"stats-content"},Nt={class:"stats-categories"},Mt={class:"title stats-title"},Kt={class:"category-list"},Bt={class:"category-type"},qt={class:"category-count"},Vt={class:"special-list"},Et={class:"special twr"},Wt={class:"special-type"},Rt={class:"special-count"},Ut={class:"special skr"},jt={class:"special-type"},Pt={class:"special-count"},zt={class:"stats-locos"},Gt={class:"title stats-title"},Ht={class:"loco-list stats-content"};function Jt(t,e,c,d,a,m){const n=T("action-button"),u=U("click-outside");return I((p(),h("div",Dt,[b(n,{class:"stats_button",onClick:t.toggleStatsOpen},{default:w(()=>[s("img",{src:t.getIcon("stats"),alt:t.$t("trains.stats")},null,8,Tt),s("p",null,o(t.$t("trains.stats")),1)]),_:1},8,["onClick"]),b(A,{name:"stats-anim",class:"stats_wrapper",tag:"div"},{default:w(()=>[t.trainStatsOpen?(p(),h("div",St,[s("h2",wt,[s("img",{src:t.getIcon("stats"),alt:t.$t("trains.stats")},null,8,kt),O(" "+o(t.$t("trains.stats")),1)]),s("div",Ct,[s("div",Lt,o(t.$t("trains.stats-speed")),1),s("div",It,o(t.speedStats.min)+" | "+o(t.speedStats.avg)+" | "+o(t.speedStats.max),1)]),s("div",Ot,[s("div",At,o(t.$t("trains.stats-length")),1),s("div",Ft,o(t.timetableStats.min)+" | "+o(t.timetableStats.avg)+" | "+o(t.timetableStats.max),1)]),s("div",Nt,[s("div",Mt,o(t.$t("trains.stats-categories")),1),s("div",Kt,[(p(!0),h(y,null,D(t.categoryList,([l,r])=>(p(),h("span",{class:"category",key:l},[s("span",Bt,o(l),1),s("span",qt,o(r),1)]))),128))]),s("div",Vt,[s("span",Et,[s("span",Wt,o(t.$t("trains.stats-special-twr")),1),s("span",Rt,o(t.specialTrainCount[0]),1)]),s("span",Ut,[s("span",jt,o(t.$t("trains.stats-special-skr")),1),s("span",Pt,o(t.specialTrainCount[1]),1)])])]),s("div",zt,[s("div",Gt,o(t.$t("trains.stats-locos")),1),s("div",Ht,[(p(!0),h(y,null,D(t.locoList,(l,r)=>(p(),h("div",{class:"loco-item",key:r},o(l[0])+" | "+o(l[1]),1))),128))])])])):$("",!0)]),_:1})])),[[u,t.closeStats]])}const Xt=C(yt,[["render",Jt],["__scopeId","data-v-e91c5bd9"]]),Zt=k({components:{Loading:j,TrainInfo:P},props:{trains:{type:Array,required:!0}},mixins:[Z,V],setup(t){const e=E(),c=_("searchedTrain"),d=_("searchedDriver"),a=f(()=>t.trains);return{searchedTrain:c,searchedDriver:d,currentTrains:a,store:e,sorterActive:_("sorterActive"),distanceLimitExceeded:f(()=>t.trains.findIndex(({timetableData:m})=>m&&m.routeDistance>200)!=-1)}},computed:{trainNumbersWithTimeouts(){return this.store.trainList.filter(t=>t.isTimeout).map(t=>t.trainNo)}},activated(){const t=this.$route.query;t.trainNo&&t.driverName&&(this.searchedDriver=t.driverName.toString(),this.searchedTrain=t.trainNo.toString(),setTimeout(()=>{this.selectModalTrain(t.driverName+t.trainNo.toString())},20))}});const Qt=t=>(H("data-v-a74058cd"),t=t(),J(),t),Yt={class:"train-table"},xt={key:1,class:"table-info no-trains"},te={key:2,class:"timeouts-warning"},ee=Qt(()=>s("b",{class:"warning-timeout"},"?",-1)),se={class:"train-list"},ie=["onClick","onKeydown"];function ne(t,e,c,d,a,m){const n=T("Loading"),u=T("TrainInfo");return p(),h("div",Yt,[b(A,{name:"anim",mode:"out-in"},{default:w(()=>[(p(),h("div",{key:t.store.dataStatuses.trains},[t.trains.length==0&&t.store.dataStatuses.trains==0?(p(),z(n,{key:0})):$("",!0),t.trains.length==0&&t.store.dataStatuses.trains!=0?(p(),h("div",xt,o(t.$t("trains.no-trains")),1)):$("",!0),t.trainNumbersWithTimeouts.length!=0?(p(),h("div",te,[ee,O(" "+o(t.$t("trains.timeout")),1)])):$("",!0),s("ul",se,[(p(!0),h(y,null,D(t.currentTrains,l=>(p(),h("li",{class:"train-row",key:l.trainId,onClick:G(r=>t.selectModalTrain(l.trainId),["stop"]),onKeydown:q(r=>t.selectModalTrain(l.trainId),["enter"])},[b(u,{train:l},null,8,["train"])],40,ie))),128))])]))]),_:1})])}const re=C(Zt,[["render",ne],["__scopeId","data-v-a74058cd"]]);var g=(t=>(t.comments="comments",t.twr="twr",t.skr="skr",t.passenger="passenger",t.freight="freight",t.other="other",t.noTimetable="noTimetable",t))(g||{});const ae=[{id:g.twr,isActive:!0},{id:g.skr,isActive:!0},{id:g.passenger,isActive:!0},{id:g.freight,isActive:!0},{id:g.other,isActive:!0},{id:g.comments,isActive:!0},{id:g.noTimetable,isActive:!0}];function N(t){return t?Number((t.filter(e=>e.confirmed).length/t.length*100).toFixed(0)):-1}function M(t){var c;return t?((c=t.find((d,a)=>a==0&&!d.confirmed||a>0&&t[a-1].confirmed&&!d.confirmed))==null?void 0:c.departureDelay)||0:-1/0}function oe(t,e,c,d){return t.filter(a=>{const m=d.every(n=>{if(n.isActive)return!0;if(!a.timetableData)return d.find(u=>u.id==g.noTimetable).isActive;switch(n.id){case g.comments:return!a.timetableData.followingStops.some(u=>u.comments);case g.twr:return!a.timetableData.TWR;case g.skr:return!a.timetableData.SKR;case g.passenger:return!/^[AMRE]\D{2}$/.test(a.timetableData.category);case g.freight:return!a.timetableData.category.startsWith("T");case g.other:return!/^[PXZL]\D{2}$/.test(a.timetableData.category);default:return!0}});return(e.length>0?a.trainNo.toString().startsWith(e):!0)&&(c.length>0?a.driverName.toLowerCase().startsWith(c.toLowerCase()):!0)&&m})}function le(t,e){return t.sort((c,d)=>{var a,m,n,u,l,r;switch(e.id){case"mass":return c.mass>d.mass?e.dir:-e.dir;case"distance":return(((a=c.timetableData)==null?void 0:a.routeDistance)||-1)>(((m=d.timetableData)==null?void 0:m.routeDistance)||-1)?e.dir:-e.dir;case"progress":return N((n=c.timetableData)==null?void 0:n.followingStops)>N((u=d.timetableData)==null?void 0:u.followingStops)?e.dir:-e.dir;case"delay":return M((l=c.timetableData)==null?void 0:l.followingStops)>M((r=d.timetableData)==null?void 0:r.followingStops)?e.dir:-e.dir;case"speed":return c.speed>d.speed?e.dir:-e.dir;case"timetable":return c.trainNo>d.trainNo?e.dir:-e.dir;case"length":return c.length>d.length?e.dir:-e.dir}return 0})}function de(t,e,c,d,a){const m=oe(t,e,c,a);return[...le(m,d)]}const ce=k({components:{TrainTable:re,TrainStats:Xt,TrainOptions:bt},mixins:[V],props:{train:{type:String,required:!1},driver:{type:String,required:!1},trainId:{type:String,required:!1}},data:()=>({trainStatsOpen:!1}),setup(){const t=E(),e=L({id:"distance",dir:-1}),c=X([...ae]),d=L(""),a=L("");return S("searchedTrain",a),S("searchedDriver",d),S("sorterActive",e),S("filterList",c),{computedTrains:f(()=>de(t.trainList,a.value,d.value,e.value,c)),searchedTrain:a,searchedDriver:d,sorterActive:e,store:t}},activated(){this.train&&(this.searchedTrain=this.train,this.searchedDriver=this.driver||""),this.$nextTick(()=>{this.trainId&&this.selectModalTrain(this.trainId)})}});const ue={class:"trains-view"},pe={class:"trains_wrapper"};function he(t,e,c,d,a,m){const n=T("TrainOptions"),u=T("TrainTable");return p(),h("section",ue,[s("div",pe,[b(n,{"sorter-option-ids":["distance","progress","delay","mass","speed","length"]}),b(u,{trains:t.computedTrains},null,8,["trains"])])])}const ge=C(ce,[["render",he],["__scopeId","data-v-4c629457"]]);export{ge as default};