import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{$t as t,Dt as n,Et as r,Ft as i,I as a,L as o,M as s,O as c,P as l,Pt as u,Tt as d,U as f,Wt as p,X as m,Xt as h,Z as g,Zt as _,_ as v,b as y,c as b,ct as x,d as S,dt as C,f as w,ft as T,gt as E,ht as D,j as O,k,kt as A,lt as j,mt as M,pt as N,ut as ee,xt as te}from"./vendor-quasar-BdHTqpDy.js";/* empty css */import{o as P}from"./vendor-vue-core-CuXzcq2w.js";import{a as ne,c as re,d as F,h as I,l as ie,n as ae,p as L,r as oe}from"./vendor-leaflet-core-Dyrj7Rn0.js";import{a as se,i as R,n as ce,r as z,t as B}from"./_plugin-vue_export-helper-CUf5lN2T.js";import{i as le,n as ue,t as de}from"./simulation-DRMY3tZ9.js";import{t as V}from"./LocationDrawer-CJTM92eT.js";import{a as H,c as U,i as W,l as fe,n as pe,o as me,r as he,s as G,t as K}from"./MarkerMenu-DZ12e7gH.js";var q=l(),J=z(),Y=de(),X=le();function Z(e){switch(e){case`fmLoc`:X.findMyUpdate&&X.findMyUpdate.latitude&&X.findMyUpdate.longitude?J.setCenter(X.findMyUpdate.latitude,X.findMyUpdate.longitude):q.notify({type:`negative`,message:`Find My Location not available`});break;case`simLoc`:Y.currentLocation&&Y.currentLocation.latitude&&Y.currentLocation.longitude?J.setCenter(Y.currentLocation.latitude,Y.currentLocation.longitude):q.notify({type:`negative`,message:`Simulation Location not available`});break;default:q.notify({type:`negative`,message:`Invalid location`});break}}var ge=B(E({__name:`TheFooter`,setup(e){let t=l(),r=z(),{leafletDrawerOpen:a,layerControl:o,routeSet:d,routeDirections:p,routeCoordinates:_}=P(r),v=j(()=>d.value.start.lat&&d.value.start.lng&&d.value.end.lat&&d.value.end.lng),b=e=>new Promise(t=>setTimeout(t,e));async function x(){if(d.value.start&&d.value.end&&p&&p.value&&p.value.length>0)for(let e of p.value)e.coordinates&&await R({lat:Number(e.coordinates.lat),lng:Number(e.coordinates.lng)},!1,e.time,void 0,`instruction`,e.text),await b(1e3)}async function E(){let e={notificationType:`negative`,responseMessage:`No route points to add`};if(d.value.start&&d.value.end&&_&&_.value&&_.value.length>0)for(let t of _.value){if(t){let n=t.instruction?`instruction`:`coord`;e=await R({lat:Number(t.lat),lng:Number(t.lng)},!1,t.timeFromPrev,void 0,n,t.instruction)}await b(1e3)}t.notify({type:e.notificationType,message:e.responseMessage})}function A(){r.layerControl.routing=!1,r.clearRouteSegments(),d.value.start={lat:null,lng:null},d.value.end={lat:null,lng:null},t.notify({type:`positive`,message:`Route cleared`})}return(e,t)=>(n(),C(S,null,{default:u(()=>[D(m,{class:`q-mr-sm`,dense:``,flat:``,icon:`mdi-menu`,round:``,size:`sm`,onClick:t[0]||=e=>a.value=!h(a)}),D(w,{flat:``,label:`Zoom To`,size:`sm`,stretch:``},{default:u(()=>[D(c,null,{default:u(()=>[i((n(),C(k,{clickable:``,onClick:t[1]||=e=>h(Z)(`fmLoc`)},{default:u(()=>[D(s,null,{default:u(()=>[D(O,null,{default:u(()=>[...t[8]||=[M(`Find My Location`,-1)]]),_:1})]),_:1})]),_:1})),[[y],[g]]),i((n(),C(k,{clickable:``,onClick:t[2]||=e=>h(Z)(`simLoc`)},{default:u(()=>[D(s,null,{default:u(()=>[D(O,null,{default:u(()=>[...t[9]||=[M(`Sim Location`,-1)]]),_:1})]),_:1})]),_:1})),[[y],[g]])]),_:1})]),_:1}),v.value?(n(),C(w,{key:0,label:`Routing`,size:`sm`,stretch:``},{default:u(()=>[D(c,null,{default:u(()=>[i((n(),C(k,{clickable:``,onClick:x},{default:u(()=>[D(s,null,{default:u(()=>[D(O,null,{default:u(()=>[...t[10]||=[M(`Route Waypoints to SimQ`,-1)]]),_:1})]),_:1})]),_:1})),[[y],[g]]),i((n(),C(k,{clickable:``,onClick:E},{default:u(()=>[D(s,null,{default:u(()=>[D(O,null,{default:u(()=>[...t[11]||=[M(`Route to SimQ`,-1)]]),_:1})]),_:1})]),_:1})),[[y],[g]]),i((n(),C(k,{clickable:``,onClick:A},{default:u(()=>[D(s,null,{default:u(()=>[D(O,null,{default:u(()=>[...t[12]||=[M(`Clear`,-1)]]),_:1})]),_:1})]),_:1})),[[y],[g]])]),_:1})]),_:1})):T(``,!0),D(w,{label:`Map Layers`,size:`sm`,stretch:``},{default:u(()=>[D(c,{dense:``,class:`bg-primary`},{default:u(()=>[i((n(),C(k,{dense:``,tag:`label`},{default:u(()=>[D(s,null,{default:u(()=>[D(O,null,{default:u(()=>[...t[13]||=[M(`Marker`,-1)]]),_:1})]),_:1}),D(s,{avatar:``},{default:u(()=>[D(f,{dense:``,color:`accent`,modelValue:h(o).marker,"onUpdate:modelValue":[t[3]||=e=>h(o).marker=e,h(r).onLayerToggle]},null,8,[`modelValue`,`onUpdate:modelValue`])]),_:1})]),_:1})),[[g]]),i((n(),C(k,{tag:`label`},{default:u(()=>[D(s,null,{default:u(()=>[D(O,null,{default:u(()=>[...t[14]||=[M(`Sim Queue`,-1)]]),_:1})]),_:1}),D(s,{avatar:``},{default:u(()=>[D(f,{dense:``,color:`accent`,modelValue:h(o).simQueue,"onUpdate:modelValue":[t[4]||=e=>h(o).simQueue=e,h(r).onLayerToggle]},null,8,[`modelValue`,`onUpdate:modelValue`])]),_:1})]),_:1})),[[g]]),i((n(),C(k,{tag:`label`},{default:u(()=>[D(s,null,{default:u(()=>[D(O,null,{default:u(()=>[...t[15]||=[M(`Favorites`,-1)]]),_:1})]),_:1}),D(s,{avatar:``},{default:u(()=>[D(f,{dense:``,color:`accent`,modelValue:h(o).favorites,"onUpdate:modelValue":[t[5]||=e=>h(o).favorites=e,h(r).onLayerToggle]},null,8,[`modelValue`,`onUpdate:modelValue`])]),_:1})]),_:1})),[[g]]),i((n(),C(k,{tag:`label`},{default:u(()=>[D(s,null,{default:u(()=>[D(O,null,{default:u(()=>[...t[16]||=[M(`Routing`,-1)]]),_:1})]),_:1}),D(s,{avatar:``},{default:u(()=>[D(f,{dense:``,color:`accent`,modelValue:h(o).routing,"onUpdate:modelValue":[t[6]||=e=>h(o).routing=e,h(r).onLayerToggle]},null,8,[`modelValue`,`onUpdate:modelValue`])]),_:1})]),_:1})),[[g]]),i((n(),C(k,{tag:`label`},{default:u(()=>[D(s,null,{default:u(()=>[D(O,null,{default:u(()=>[...t[17]||=[M(`FindMy`,-1)]]),_:1})]),_:1}),D(s,{avatar:``},{default:u(()=>[D(f,{dense:``,color:`accent`,modelValue:h(o).findMy,"onUpdate:modelValue":[t[7]||=e=>h(o).findMy=e,h(r).onLayerToggle]},null,8,[`modelValue`,`onUpdate:modelValue`])]),_:1})]),_:1})),[[g]])]),_:1})]),_:1})]),_:1}))}}),[[`__scopeId`,`data-v-042684bf`]]),_e=e(I(),1),ve={style:{height:`550px`,width:`100vw`,"max-width":`800px`,color:`#000000`}},Q=E({__name:`LeafletMap`,setup(e){let i=ue(),a=ce(),o=se(),{favorites:s}=P(a),c=z(),{clickedLatLng:l,center:f,markerLatLng:m,layerControl:g}=P(c),{currentLocation:_,locationQueueData:v,locationQueueOrder:y}=P(de()),{findMyUpdate:S}=P(le()),w=p(Date.now()),E=j(()=>s.value.find(e=>e.name===`Home`)),O=j(()=>{let e=f.value?.[0],t=f.value?.[1];return typeof e==`number`&&typeof t==`number`?[e,t]:[E.value?.latitude,E.value?.longitude]});function k(e){m.value=[e.latlng.lat,e.latlng.lng],f.value=[e.latlng.lat,e.latlng.lng]}let I=()=>new L({color:`grey`,accentColor:`rgba(0,0,0,0.25)`,contentHtml:``,contentColor:`white`,scale:1,svg:ne}),R=()=>new L({color:`indianred`,accentColor:`firebrick`,content:`FM`,contentColor:`white`,scale:.75,svg:F}),B=e=>new L({color:`#f5bb39`,accentColor:`rbga(0,0,0,0.25)`,contentHtml:``,contentColor:`black`,scale:1,svg:ie}),V=j(()=>{let e=m.value?.[0],t=m.value?.[1];return typeof e==`number`&&typeof t==`number`?[e,t]:null}),q=e=>{c.setFavLayerGroup(e)},J=e=>{c.setMap(e);let t=oe({provider:new ae,showMarker:!1,autoClose:!0,updateMap:!0,showPopup:!0,style:`button`,acceptAutoLoad:!0,autoComplete:!0,autoCompleteDelay:250,retainZoomLevel:!1,animateZoom:!0,keepResult:!0,position:`topleft`});e.addControl(t)},{handleRoutesFound:Y}=pe(),X=e=>{console.log(`${e.type} event: `,e)},Z=j(()=>{if(S.value){let e=Math.abs(w.value-S.value.timeStamp),t=Math.floor(e/1e3%60),n=Math.floor(e/(1e3*60)%60),r=Math.floor(e/(1e3*60*60)%24),i=Math.floor(e/(1e3*60*60*24));return i>1?i+` days, `+r+` hours, `+n+`minutes, `+t+`seconds ago`:r>1?r+` hours, `+n+`minutes, `+t+`seconds ago`:n>1?n+` minutes, `+t+` seconds ago`:t+` seconds ago`}else return`Find My Location not available`}),ge=e=>{let t=_.value.loc_id?y.value.indexOf(_.value.loc_id):0,n=y.value.indexOf(e)-t;return _.value&&_.value.loc_id===e?new L({color:`pink`,accentColor:`black`,content:`*`,contentColor:`black`,scale:1,svg:re}):n>0?new L({color:`blue`,accentColor:`firebrick`,content:n.toString(),contentColor:`white`,scale:1,svg:F}):new L({color:`black`,accentColor:`grey`,content:n.toString(),contentColor:`white`,scale:1,svg:F})},Q=p(!1),$=async e=>{console.log(`marker clicked`,e),l.value=e.latlng;let t=await o.getCachedLocation(_e.latLng(e.latlng.lat,e.latlng.lng));console.log(`cachedLocation: `,t),Q.value=!!t?.favorite,console.log(`isFavorite: `,Q.value),_e.DomEvent.stopPropagation(e.originalEvent)},ye=j(()=>S.value?Math.floor(Math.abs(w.value-S.value.timeStamp)/1e3)<120:!1),be=p();return d(()=>{S.value&&S.value.latitude&&S.value.longitude?c.setCenter(S.value.latitude,S.value.longitude):E.value&&E.value?.latitude&&E.value?.longitude&&(console.log(`favorites: home: `,E.value?.latitude,E.value?.longitude),c.setCenter(E.value?.latitude,E.value?.longitude)),i.requestUpdate(),be.value=setInterval(()=>{w.value=Date.now()},1e3)}),r(()=>{clearInterval(be.value)}),(e,r)=>(n(),C(b,null,{default:u(()=>[ee(`div`,ve,[D(h(me),{id:`map`,ref:`map`,center:[O.value[0]??0,O.value[1]??0],zoom:h(c).zoom,style:{height:`550px`,width:`100vw`,"max-width":`800px`},onClick:k,onReady:J},{default:u(()=>[D(h(fe),{"layer-type":`base`,name:`OpenStreetMap`,url:`https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png`}),h(g).marker?(n(),C(h(G),{key:0,name:`Marker`},{default:u(()=>[V.value?(n(),C(h(U),{key:0,icon:I(),"lat-lng":[V.value[0]??0,V.value[1]??0],onClick:$},{default:u(()=>[D(K,{"lat-lng":[V.value[0]??0,V.value[1]??0],"is-favorite":Q.value},null,8,[`lat-lng`,`is-favorite`])]),_:1},8,[`icon`,`lat-lng`])):T(``,!0)]),_:1})):T(``,!0),h(g).findMy&&h(S)&&ye.value?(n(),C(h(G),{key:1,name:`Find My`},{default:u(()=>[h(S)?(n(),C(h(U),{key:0,icon:R(),"lat-lng":[h(S).latitude??0,h(S).longitude??0]},{default:u(()=>[D(K,{"lat-lng":[h(S).latitude??0,h(S).longitude??0],"is-favorite":Q.value},null,8,[`lat-lng`,`is-favorite`]),D(h(H),null,{default:u(()=>[M(t(Z.value),1)]),_:1})]),_:1},8,[`icon`,`lat-lng`])):T(``,!0),D(h(W),{fillOpacity:.5,"lat-lng":[h(S).latitude??0,h(S).longitude??0],radius:h(S).horizontalAccuracy,color:`#f5bb39`,fillColor:`indianred`},null,8,[`lat-lng`,`radius`])]),_:1})):T(``,!0),h(g).favorites?(n(),C(h(G),{key:2,name:`Favorites`,onReady:q},{default:u(()=>[(n(!0),N(x,null,A(h(s),e=>(n(),N(`div`,{key:e.id},[D(h(U),{icon:B(e.icon??`mdi-star`),"lat-lng":[e?.latitude??0,e?.longitude??0],onClick:$},{default:u(()=>[D(K,{"lat-lng":[e?.latitude??0,e?.longitude??0],"is-favorite":!0},null,8,[`lat-lng`])]),_:2},1032,[`icon`,`lat-lng`]),D(h(W),{"lat-lng":[e?.latitude??0,e?.longitude??0],radius:e.radius,color:`black`,fillColor:`#f5bb39`,fillOpacity:.25},null,8,[`lat-lng`,`radius`]),D(h(H),null,{default:u(()=>[M(t(e.name),1)]),_:2},1024)]))),128))]),_:1})):T(``,!0),h(g).simQueue&&h(y)?(n(),C(h(G),{key:3,name:`Sim Queue`},{default:u(()=>[(n(!0),N(x,null,A(h(y),e=>(n(),C(h(U),{key:e,icon:ge(e),"lat-lng":[h(v)[e]?.latitude??0,h(v)[e]?.longitude??0]},null,8,[`icon`,`lat-lng`]))),128))]),_:1})):T(``,!0),h(g).routing?(n(),C(h(G),{key:4,name:`Route`},{default:u(()=>[D(he,te(h(c).routingOptions,{onRoutingstart:X,onRoutesfound:h(Y),onRoutingerror:X}),null,16,[`onRoutesfound`])]),_:1})):T(``,!0)]),_:1},8,[`center`,`zoom`])])]),_:1}))}}),$=B(E({__name:`LeafletPage`,setup(e){return(e,t)=>(n(),C(b,{class:`row items-center justify-evenly`},{default:u(()=>[D(a,{container:``,view:`hHh Lpr fFf`,class:`leafletLayout rounded-borders`},{default:u(()=>[D(v,{class:_([e.$q.dark.isActive?`bg-primary`:`bg-black`,`leafletFooter`])},{default:u(()=>[D(ge)]),_:1},8,[`class`]),D(V,{persistent:``,breakpoint:576,side:`left`}),D(o,null,{default:u(()=>[D(Q)]),_:1})]),_:1})]),_:1}))}}),[[`__scopeId`,`data-v-13854f60`]]);export{$ as default};