import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{$ as t,$t as n,A as r,B as i,Dt as a,Et as o,Ft as s,H as c,J as l,M as u,Mt as d,O as f,P as p,Pt as m,Q as h,Qt as g,S as _,Tt as v,W as y,Wt as b,X as x,Xt as S,Y as C,Zt as w,at as T,c as E,ct as D,dt as O,ft as k,g as A,gt as j,ht as M,i as ee,j as N,k as P,kt as F,l as I,lt as L,mt as R,n as z,p as B,pt as V,r as H,s as te,st as U,ut as W,xt as ne}from"./vendor-quasar-BdHTqpDy.js";/* empty css */import{o as G}from"./vendor-vue-core-CuXzcq2w.js";import{a as re,c as ie,d as ae,h as oe,i as se,l as ce,n as le,o as ue,p as K,t as de}from"./vendor-leaflet-core-Dyrj7Rn0.js";import{a as fe,n as pe,r as q}from"./_plugin-vue_export-helper-CUf5lN2T.js";import{a as me,i as he,n as ge,r as _e,t as ve}from"./simulation-DRMY3tZ9.js";import{n as J,r as ye,t as be}from"./controls-Cyxr6tPH.js";import{a as xe,c as Y,i as Se,n as Ce,o as we,r as Te,s as X,t as Z}from"./MarkerMenu-DZ12e7gH.js";var Ee=e(oe(),1),De={class:`map-wrapper absolute-top-left absolute-bottom-right`,style:{transform:`translateZ(0)`}},Oe=j({__name:`MapContainer`,setup(e){let t=ge(),r=pe(),i=fe(),{favorites:s}=G(r),c=q(),{clickedLatLng:l,center:u,markerLatLng:f,layerControl:p,getOverlayLayer:h,getBaseLayer:g}=G(c),{currentLocation:_,locationQueueData:y,locationQueueOrder:x,locationQueueDeletedItems:C}=G(ve()),{findMyUpdate:w}=G(he()),T=b(Date.now()),E=b(!1),A=L(()=>s.value.find(e=>e.name===`Home`)),j=[0,0],ee=L(()=>{let e=u.value?.[0],t=u.value?.[1];if(typeof e==`number`&&typeof t==`number`)return[e,t];let n=A.value?.latitude,r=A.value?.longitude;return typeof n==`number`&&typeof r==`number`?[n,r]:j});function N(e){f.value=[e.latlng.lat,e.latlng.lng],u.value=[e.latlng.lat,e.latlng.lng]}let P=()=>new K({color:`grey`,accentColor:`rgba(0,0,0,0.25)`,contentHtml:``,contentColor:`white`,scale:1,svg:re}),I=()=>new K({color:`indianred`,accentColor:`firebrick`,content:`FM`,contentColor:`white`,scale:.75,svg:ae}),z=e=>new K({color:`#f5bb39`,accentColor:`rbga(0,0,0,0.25)`,contentHtml:``,contentColor:`black`,scale:1,svg:ce}),B=L(()=>{let e=f.value?.[0],t=f.value?.[1];return typeof e==`number`&&typeof t==`number`?[e,t]:null}),H=e=>{c.setFavLayerGroup(e)},te=e=>{console.log(`LCLayerGroup ready`),c.setLCLayerGroup(e)},U=e=>{E.value=!0,c.setMap(e),c.setBaseLayer()},{handleRoutesFound:oe}=Ce(),le=e=>{console.log(`${e.type} event: `,e)},de=L(()=>{if(w.value){let e=Math.abs(T.value-w.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`}),me=e=>new K({color:`black`,accentColor:`black`,content:(C.value.indexOf(e)+1).toString(),contentColor:`white`,scale:1,svg:se}),_e=e=>{let t=_.value.loc_id?x.value.indexOf(_.value.loc_id):null,n=x.value.indexOf(e),r=()=>t===null?n+1:n-t,i=y.value[e]?.type;if(r()>0)return i===`coord`?new K({color:`blue`,accentColor:`firebrick`,content:r().toString(),contentColor:`white`,scale:.25,svg:ue}):new K({color:`blue`,accentColor:`firebrick`,content:r().toString(),contentColor:`white`,scale:1,svg:ae});if(r()<0)return i===`coord`?new K({color:`black`,accentColor:`grey`,content:r().toString(),contentColor:`white`,scale:.25,svg:ue}):new K({color:`black`,accentColor:`grey`,content:r().toString(),contentColor:`white`,scale:1,svg:ae});if(_.value&&_.value.loc_id===e)return new K({color:`pink`,accentColor:`black`,content:`*`,contentColor:`black`,scale:1,svg:ie})},J=b(!1),ye=async e=>{console.log(`marker clicked`,e),l.value=e.latlng;let t=await i.getCachedLocation(Ee.latLng(e.latlng.lat,e.latlng.lng));console.log(`cachedLocation: `,t),J.value=!!t?.favorite,console.log(`isFavorite: `,J.value),Ee.DomEvent.stopPropagation(e.originalEvent)},be=L(()=>w.value?Math.floor(Math.abs(T.value-w.value.timeStamp)/1e3)<120:!1);d(g,(e,t)=>{console.log(`Base layer changed from`,t,`to`,e),c.mapObject&&c.setBaseLayer(e,t)}),d(h,()=>{console.log(`OverlayLayer toggled`),c.toggleWmsLayer()});let Oe=b();return v(()=>{w.value&&w.value.latitude&&w.value.longitude?c.setCenter(w.value.latitude,w.value.longitude):A.value&&A.value?.latitude&&A.value?.longitude&&(console.log(`favorites: home: `,A.value?.latitude,A.value?.longitude),c.setCenter(A.value?.latitude,A.value?.longitude)),t.requestUpdate(),Oe.value=setInterval(()=>{T.value=Date.now()},1e3)}),o(()=>{clearInterval(Oe.value)}),(e,t)=>(a(),V(`div`,De,[M(S(we),{id:`map`,ref:`map`,center:ee.value,zoom:S(c).zoom,style:{height:`100%`,width:`100%`},onClick:N,onReady:U,options:{zoomControl:!1}},{default:m(()=>[M(S(X),{visible:S(p).marker,name:`Marker`},{default:m(()=>[B.value?(a(),O(S(Y),{key:0,icon:P(),"lat-lng":[B.value[0]??0,B.value[1]??0],onClick:ye},{default:m(()=>[M(Z,{"lat-lng":[B.value[0]??0,B.value[1]??0],"is-favorite":J.value},null,8,[`lat-lng`,`is-favorite`])]),_:1},8,[`icon`,`lat-lng`])):k(``,!0)]),_:1},8,[`visible`]),M(S(X),{name:`Locate Control`,visible:S(p).locateControl,onReady:te},null,8,[`visible`]),M(S(X),{name:`Find My`,visible:S(p).findMy&&S(w)&&be.value},{default:m(()=>[S(w)?(a(),O(S(Y),{key:0,icon:I(),"lat-lng":[S(w).latitude??0,S(w).longitude??0]},{default:m(()=>[M(Z,{"lat-lng":[S(w).latitude??0,S(w).longitude??0],"is-favorite":J.value},null,8,[`lat-lng`,`is-favorite`]),M(S(xe),null,{default:m(()=>[R(n(de.value),1)]),_:1})]),_:1},8,[`icon`,`lat-lng`])):k(``,!0),S(w)?(a(),O(S(Se),{key:1,fillOpacity:.5,"lat-lng":[S(w).latitude??0,S(w).longitude??0],radius:S(w).horizontalAccuracy,color:`#f5bb39`,fillColor:`indianred`},null,8,[`lat-lng`,`radius`])):k(``,!0)]),_:1},8,[`visible`]),M(S(X),{visible:S(p).favorites,name:`Favorites`,onReady:H},{default:m(()=>[(a(!0),V(D,null,F(S(s),e=>(a(),V(D,{key:e.id},[W(`div`,null,[M(S(Y),{icon:z(e.icon??`mdi-star`),"lat-lng":[e?.latitude??0,e?.longitude??0],onClick:ye},{default:m(()=>[M(Z,{"lat-lng":[e?.latitude??0,e?.longitude??0],"is-favorite":J.value},null,8,[`lat-lng`,`is-favorite`])]),_:2},1032,[`icon`,`lat-lng`]),M(S(Se),{"lat-lng":[e?.latitude??0,e?.longitude??0],radius:e.radius,color:`black`,fillColor:`#f5bb39`,fillOpacity:.25},null,8,[`lat-lng`,`radius`])]),M(S(xe),null,{default:m(()=>[R(n(e.name),1)]),_:2},1024)],64))),128))]),_:1},8,[`visible`]),M(S(X),{visible:S(p).simQueue&&S(x).length>0,name:`Sim Queue`},{default:m(()=>[(a(!0),V(D,null,F(S(x),e=>(a(),O(S(Y),{key:e,icon:_e(e),"lat-lng":[S(y)[e]?.latitude??0,S(y)[e]?.longitude??0]},{default:m(()=>[M(Z,{"lat-lng":[S(y)[e]?.latitude??0,S(y)[e]?.longitude??0],"is-favorite":J.value},null,8,[`lat-lng`,`is-favorite`])]),_:2},1032,[`icon`,`lat-lng`]))),128)),(a(!0),V(D,null,F(S(C),e=>(a(),O(S(Y),{key:e,icon:me(e),"lat-lng":[S(y)[e]?.latitude??0,S(y)[e]?.longitude??0]},{default:m(()=>[M(Z,{"lat-lng":[S(y)[e]?.latitude??0,S(y)[e]?.longitude??0],"is-favorite":J.value},null,8,[`lat-lng`,`is-favorite`])]),_:2},1032,[`icon`,`lat-lng`]))),128))]),_:1},8,[`visible`]),M(S(X),{name:`Route`,visible:S(p).routing},{default:m(()=>[M(Te,ne(S(c).routingOptions,{onRoutingstart:le,onRoutesfound:S(oe),onRoutingerror:le}),null,16,[`onRoutesfound`])]),_:1},8,[`visible`])]),_:1},8,[`center`,`zoom`])]))}}),ke=j({__name:`StatusBarFab`,setup(e){let t=ge(),i=ve(),s=he(),c=me(),l=_e(),u=q(),f=p(),{sockConnected:g}=G(t),{deviceConnected:_}=G(c),{tunnelConnected:y}=G(l),{simulationState:x}=G(i),{icloudMonitor:C}=G(s),w=b(),T;function E(e){if(e==null)return`grey`;if(typeof e==`boolean`)return e?`green`:`red`;switch(e.toLowerCase()){case`paused`:return`yellow`;case`running`:return`green`;case`stopped`:return`red`;default:return`grey`}}function D(e){if(e==null)return`grey-6`;if(typeof e==`boolean`)return e?`grey-10`:`grey-6`;if(i.testMode)return`yellow`;switch(e.toLowerCase()){case`paused`:return`grey-6`;case`running`:return`grey-10`;case`stopped`:return`grey-6`;default:return`grey-6`}}let k=L(()=>`${Math.floor(w.value/86400)}d ${Math.floor(w.value%86400/3600)}h ${Math.floor(w.value%3600/60)}m ${Math.floor(w.value%60)}s`),A=L(()=>f.dark.isActive?`grey-10`:`grey-9`),j=L(()=>f.dark.isActive?`white`:`black`);return d(()=>c.lastKnownUptime,e=>{w.value=e}),v(()=>{T=setInterval(()=>{w.value++},1e3)}),o(()=>{clearInterval(T)}),(e,i)=>(a(),O(z,{round:``,flat:``,padding:`xs xs`,class:`q-ma-none q-pa-none bg-ios-blur-brdr-h`,"text-color":A.value,direction:`left`,modelValue:S(u).fabs.statusBar.opened,"onUpdate:modelValue":i[6]||=e=>S(u).fabs.statusBar.opened=e,type:`button`,id:`status-bar`,onShow:i[7]||=e=>S(u).closeOtherFabs(`statusBar`),onClick:i[8]||=e=>S(t).requestUpdate()},{icon:m(()=>[M(h,{name:`mdi-list-status`,color:A.value,size:`sm`},null,8,[`color`])]),"active-icon":m(()=>[M(h,{name:`mdi-list-status`,color:j.value,size:`sm`},null,8,[`color`])]),tooltip:m(()=>[M(r,{anchor:`center end`,self:`center start`},{default:m(()=>[...i[9]||=[R(`Status`,-1)]]),_:1})]),default:m(()=>[M(H,{round:``,flat:``,padding:`xs`,class:`bg-ios-blur-brdr-h q-ma-none q-pa-none`,"text-color":A.value,type:`button`,onClick:i[0]||=e=>S(t).requestUpdate()},{icon:m(()=>[M(h,{name:`mdi-server`,color:D(S(g)),size:`sm`},null,8,[`color`])]),default:m(()=>[M(I,{color:`positive`,rounded:``,floating:``}),M(r,null,{default:m(()=>[R(n(k.value),1)]),_:1})]),_:1},8,[`text-color`]),M(H,{round:``,flat:``,padding:`xs`,class:`bg-ios-blur-brdr-h q-ma-none q-pa-none`,"text-color":A.value,direction:`left`,type:`button`,onClick:i[1]||=e=>S(t).toggleSock()},{icon:m(()=>[M(h,{name:`mdi-cog`,color:D(S(g)),size:`sm`},null,8,[`color`])]),default:m(()=>[M(I,{color:E(S(g)),rounded:``,floating:``},null,8,[`color`])]),_:1},8,[`text-color`]),M(H,{round:``,flat:``,padding:`xs`,class:`bg-ios-blur-brdr-h q-ma-none q-pa-none`,"text-color":A.value,direction:`left`,type:`button`,onClick:i[2]||=e=>S(t).requestUpdate()},{icon:m(()=>[M(h,{name:`mdi-cellphone`,color:D(S(_)),size:`sm`},null,8,[`color`])]),default:m(()=>[M(I,{color:E(S(_)),rounded:``,floating:``},null,8,[`color`])]),_:1},8,[`text-color`]),M(H,{round:``,flat:``,padding:`xs`,class:`bg-ios-blur-brdr-h q-ma-none q-pa-none`,"text-color":A.value,direction:`left`,type:`button`,icon:`mdi-subway`,onClick:i[3]||=e=>S(t).requestUpdate()},{icon:m(()=>[M(h,{name:`mdi-subway`,color:D(S(y)),size:`sm`},null,8,[`color`])]),default:m(()=>[M(I,{color:E(S(y)),rounded:``,floating:``},null,8,[`color`])]),_:1},8,[`text-color`]),M(H,{round:``,flat:``,padding:`xs`,class:`bg-ios-blur-brdr-h q-ma-none q-pa-none`,"text-color":A.value,direction:`left`,type:`button`,onClick:i[4]||=e=>S(t).requestUpdate()},{icon:m(()=>[M(h,{name:`mdi-map-marker`,color:D(S(x)),size:`sm`},null,8,[`color`])]),default:m(()=>[M(I,{color:E(S(x)),rounded:``,floating:``},null,8,[`color`])]),_:1},8,[`text-color`]),M(H,{round:``,flat:``,padding:`xs`,class:`bg-ios-blur-brdr-h q-ma-none q-pa-none`,"text-color":A.value,direction:`left`,type:`button`,onClick:i[5]||=e=>S(s).icloudMonitorControl(`refresh`)},{icon:m(()=>[M(h,{name:`mdi-cloud`,color:D(S(C)),size:`sm`},null,8,[`color`])]),default:m(()=>[M(I,{color:E(S(C)),rounded:``,floating:``},null,8,[`color`])]),_:1},8,[`text-color`])]),_:1},8,[`text-color`,`modelValue`]))}}),Q=`bg-ios-blur-brdr-h`,Ae=j({__name:`FavoriteFab`,setup(e){let t=p(),i=q(),o=pe(),s=L(()=>t.dark.isActive?`grey-10`:`grey-9`),c=L(()=>t.dark.isActive?`white`:`black`);function l(){o.catsWithFavs.forEach(e=>{e.openedFab=!1}),o.favorites.forEach(e=>{e.openedFab=!1}),i.fabs.favorites.opened=!1}function u(e,t,n){console.log(`Closing other fabs, items: %s, currentIndex: %d, parentCategory: %o`,e,t,n),n?(n.favorites.forEach((e,n)=>{n!==t&&(e.openedFab=!1)}),o.catsWithFavs.forEach(e=>{e.id!==n.id&&(e.openedFab=!1)})):e.forEach((e,n)=>{n!==t&&(e.openedFab=!1)})}function d(e,t,n){t.openedFab=e,e&&u(o.catsWithFavs,n,null)}function f(e,t,n,r,i){t.openedFab=e,e&&u(n,r,i)}function g(e,t){i.flyTo(e,t,16),l()}return(e,t)=>(a(),O(z,{round:``,flat:``,padding:`xs xs`,class:w([Q,`q-ma-none q-pa-none`]),"text-color":s.value,direction:`left`,modelValue:S(i).fabs.favorites.opened,"onUpdate:modelValue":t[0]||=e=>S(i).fabs.favorites.opened=e,id:`favorite-ctrl`,type:`button`,onShow:t[1]||=e=>S(i).closeOtherFabs(`favorites`),onHide:l},{tooltip:m(()=>[M(r,{anchor:`center end`,self:`center start`},{default:m(()=>[...t[2]||=[R(`Favorites`,-1)]]),_:1})]),icon:m(()=>[M(h,{name:`mdi-star`,color:s.value,size:`sm`},null,8,[`color`])]),"active-icon":m(()=>[M(h,{name:`mdi-star`,color:c.value,size:`sm`},null,8,[`color`])]),default:m(()=>[(a(!0),V(D,null,F(S(o).catsWithFavs,(e,t)=>(a(),O(z,{key:e.id,round:``,flat:``,padding:`0px 0px`,type:`button`,class:w([Q,`q-ma-none q-pa-none q-mx-xs`]),"text-color":s.value,direction:`up`,icon:e.icon,"model-value":e.openedFab??!1,"onUpdate:modelValue":n=>d(n,e,t)},{tooltip:m(()=>[M(r,{anchor:`bottom middle`,self:`bottom middle`,offset:[10,40]},{default:m(()=>[R(n(e.name),1)]),_:2},1024)]),icon:m(()=>[M(h,{name:e.icon,color:s.value,size:`sm`},null,8,[`name`,`color`])]),"active-icon":m(()=>[M(h,{name:e.icon,color:c.value,size:`sm`},null,8,[`name`,`color`])]),default:m(()=>[(a(!0),V(D,null,F(e.favorites,(t,i)=>(a(),O(z,{small:``,round:``,flat:``,padding:`0px 0px`,type:`button`,class:w([Q,`q-ma-none q-pa-none q-my-xs`]),"text-color":s.value,direction:`left`,key:t.id,"vertical-actions-align":`left`,"external-label":``,label:t.name,"model-value":t.openedFab??!1,"onUpdate:modelValue":n=>f(n,t,e.favorites,i,e)},{tooltip:m(()=>[M(r,{anchor:`center end`,self:`center start`},{default:m(()=>[R(n(t.name),1)]),_:2},1024)]),icon:m(()=>[M(h,{name:t.icon,color:s.value,size:`sm`},null,8,[`name`,`color`])]),"active-icon":m(()=>[M(h,{name:t.icon,color:c.value,size:`sm`},null,8,[`name`,`color`])]),default:m(()=>[M(H,{small:``,round:``,flat:``,padding:`xs xs`,class:w([Q,`q-ma-none q-pa-none`]),"text-color":s.value,type:`button`,onClick:e=>g(t.latitude,t.longitude),icon:`mdi-loupe`},{default:m(()=>[M(r,{anchor:`top middle`,self:`center middle`,offset:[10,25]},{default:m(()=>[R(`Zoom To `+n(t.name),1)]),_:2},1024)]),_:2},1032,[`text-color`,`onClick`]),M(H,{small:``,round:``,flat:``,padding:`xs xs`,class:w([Q,`q-ma-none q-pa-none`]),"text-color":s.value,type:`button`,onClick:e=>g(t.latitude,t.longitude),icon:`mdi-map-marker`},{default:m(()=>[M(r,{anchor:`top middle`,self:`center middle`,offset:[10,25]},{default:m(()=>[R(`Set Route Start To `+n(t.name),1)]),_:2},1024)]),_:2},1032,[`text-color`,`onClick`])]),_:2},1032,[`text-color`,`label`,`model-value`,`onUpdate:modelValue`]))),128))]),_:2},1032,[`text-color`,`icon`,`model-value`,`onUpdate:modelValue`]))),128))]),_:1},8,[`text-color`,`modelValue`]))}}),je=`bg-ios-blur-brdr-h`,Me=j({__name:`ControlFab`,setup(e){let t=p(),i=q(),o=ve(),c=_e(),l=me(),u=he(),{categories:d}=be();function f(e){i.fabs.appControl.openedFab=e}function g(e,t){e&&f(t)}function _(e,t){return t instanceof Error?(console.error(`${e} ERROR: `,t.message),{type:`negative`,message:`${e} Error: ${t.message}`}):(console.error(`${e} Error: `,t),{type:`negative`,message:`${e} Error: Unknown error`})}function v(e,t){return{type:e.status.toLowerCase()===`error`?`negative`:`positive`,message:e.message||t}}async function y(e){try{return v(await o.simulationControlAsync({command:e.cmd,latitude:null,longitude:null,loc_id:null,delay:e.delay,address:null}),`${e.name} requested`)}catch(e){return _(`Simulation Command`,e)}}async function b(e){try{return v(await l.deviceControlAsync(e.cmd,e.delay),`${e.name} requested`)}catch(e){return _(`Device Command`,e)}}async function x(e){try{return v(await c.tunneldControlAsync(e.cmd),`${e.name} requested`)}catch(e){return _(`Tunneld Command`,e)}}async function C(e){try{return v(await u.icloudMonitorControlAsync(e.cmd),`${e.name} requested`)}catch(e){return _(`iCloud Monitor Command`,e)}}async function E(e){try{if(e.cmd===`waypoints_to_simq`){let t=await i.routeToQueue();return{type:t.type,message:t.message||`${e.name} requested`}}if(e.cmd===`points_to_simq`){let t=await i.routeAllPointsToQueue();return{type:t.type,message:t.message||`${e.name} requested`}}if(e.cmd===`clear`){let t=i.clearRoute();return{type:t.type,message:t.message||`${e.name} requested`}}return{type:`negative`,message:`Unsupported routing command: ${e.cmd}`}}catch(e){return _(`Routing Command`,e)}}async function k(e){switch(e.cmdClass){case`sim_cntrl_class`:return await y(e);case`dev_cntrl_class`:return await b(e);case`tunneld_cntrl_class`:return await x(e);case`icloud-monitor_cntrl_class`:return await C(e);case`routing_cntrl_class`:return await E(e);default:return{type:`negative`,message:`Unsupported command class: ${e.cmdClass}`}}}async function A(e){let n=await k(e);t.notify(n)}function j(e){e.cnfrm?t.dialog({component:J,componentProps:{name:e.name,icon:e.icon}}).onOk(()=>{A(e)}).onCancel(()=>{console.log(`Dialog cancelled`)}).onDismiss(()=>{console.log(`Dialog dismissed`)}):A(e)}function ee(){i.fabs.appControl.openedFab=null}let N=L(()=>t.dark.isActive?`grey-10`:`grey-9`),P=L(()=>t.dark.isActive?`white`:`black`);return(e,t)=>(a(),O(z,{flat:``,round:``,class:w([je,`q-ma-none q-pa-none`]),"text-color":N.value,padding:`xs xs`,direction:`left`,modelValue:S(i).fabs.appControl.opened,"onUpdate:modelValue":t[0]||=e=>S(i).fabs.appControl.opened=e,id:`app-ctrl`,type:`button`,onShow:t[1]||=e=>S(i).closeOtherFabs(`appControl`),onHide:ee},{tooltip:m(()=>[M(r,{anchor:`center end`,self:`center start`},{default:m(()=>[...t[2]||=[R(`App Controls`,-1)]]),_:1})]),icon:m(()=>[M(h,{name:`mdi-dots-vertical`,color:N.value,size:`sm`},null,8,[`color`])]),"active-icon":m(()=>[M(h,{name:`mdi-dots-vertical`,color:P.value,size:`sm`},null,8,[`color`])]),default:m(()=>[(a(!0),V(D,null,F(S(d),e=>s((a(),O(z,{key:e.key,flat:``,round:``,type:`button`,icon:e.icon,class:w([je,`q-ma-none q-pa-none q-mx-xs`]),"text-color":N.value,padding:`0px 0px`,direction:`up`,modelValue:e.openedFab.value,"onUpdate:modelValue":[t=>e.openedFab.value=t,t=>g(t,e.key)]},{tooltip:m(()=>[M(r,null,{default:m(()=>[R(n(e.name),1)]),_:2},1024)]),icon:m(()=>[M(h,{name:e.icon,color:N.value,size:`sm`},null,8,[`name`,`color`])]),"active-icon":m(()=>[M(h,{name:e.icon,color:P.value,size:`sm`},null,8,[`name`,`color`])]),default:m(()=>[(a(!0),V(D,null,F(e.commands,e=>s((a(),O(H,{flat:``,round:``,class:w([je,`q-ma-none q-pa-none`]),"text-color":N.value,padding:`xs xs`,type:`button`,key:e.renderKey,disabled:e.disabled,onClick:t=>j(e)},{icon:m(()=>[M(h,{name:e.icon,color:e.iconColor,size:`sm`},null,8,[`name`,`color`])]),default:m(()=>[M(r,{anchor:`center left`,self:`center end`},{default:m(()=>[R(n(e.name),1)]),_:2},1024)]),_:2},1032,[`text-color`,`disabled`,`onClick`])),[[T,e.isVisible]])),128))]),_:2},1032,[`icon`,`text-color`,`modelValue`,`onUpdate:modelValue`])),[[T,e.isVisible]])),128))]),_:1},8,[`text-color`,`modelValue`]))}}),$=`bg-ios-blur-brdr-h`,Ne=j({__name:`LayerFab`,setup(e){let t=q(),n=p();function i(e){t.layerControl[e]=!t.layerControl[e]}let o=L(()=>n.dark.isActive?`grey-10`:`grey-9`),s=L(()=>n.dark.isActive?`white`:`black`);return(e,n)=>(a(),O(z,{flat:``,round:``,class:w([$,`q-ma-none q-pa-none`]),"text-color":o.value,padding:`xs`,icon:`mdi-layers-outline`,direction:`left`,modelValue:S(t).fabs.layerControl.opened,"onUpdate:modelValue":n[5]||=e=>S(t).fabs.layerControl.opened=e,id:`layer-ctrl`,onShow:n[6]||=e=>S(t).closeOtherFabs(`layerControl`)},{icon:m(()=>[M(h,{name:`mdi-layers-outline`,color:o.value},null,8,[`color`])]),"active-icon":m(()=>[M(h,{name:`mdi-layers-outline`,color:s.value},null,8,[`color`])]),tooltip:m(()=>[M(r,{anchor:`center end`,self:`center start`},{default:m(()=>[...n[7]||=[R(`Layers`,-1)]]),_:1})]),default:m(()=>[M(H,{round:``,flat:``,class:w([$,`q-ma-none q-pa-none`]),"text-color":o.value,padding:`xs`,color:`primary`,type:`button`,onClick:n[0]||=U(e=>i(`marker`),[`stop`,`prevent`])},{icon:m(()=>[M(h,{name:`mdi-map-marker`,color:S(t).layerControl.marker?s.value:o.value,size:`sm`},null,8,[`color`])]),default:m(()=>[M(r,{anchor:`top middle`,self:`bottom middle`,offset:[10,10]},{default:m(()=>[...n[8]||=[R(`Marker`,-1)]]),_:1})]),_:1},8,[`text-color`]),M(H,{round:``,flat:``,class:w([$,`q-ma-none q-pa-none`]),"text-color":o.value,padding:`xs`,type:`button`,direction:`left`,onClick:n[1]||=U(e=>i(`favorites`),[`stop`,`prevent`])},{icon:m(()=>[M(h,{name:`mdi-star`,color:S(t).layerControl.favorites?s.value:o.value},null,8,[`color`])]),default:m(()=>[M(r,{anchor:`top middle`,self:`bottom middle`,offset:[10,10]},{default:m(()=>[...n[9]||=[R(`Favorites`,-1)]]),_:1})]),_:1},8,[`text-color`]),M(H,{round:``,flat:``,class:w([$,`q-ma-none q-pa-none`]),"text-color":o.value,padding:`xs`,type:`button`,direction:`left`,onClick:n[2]||=U(e=>i(`routing`),[`stop`,`prevent`])},{icon:m(()=>[M(h,{name:`mdi-routes`,color:S(t).layerControl.routing?s.value:o.value},null,8,[`color`])]),default:m(()=>[M(r,{anchor:`top middle`,self:`bottom middle`,offset:[10,10]},{default:m(()=>[...n[10]||=[R(`Routing`,-1)]]),_:1})]),_:1},8,[`text-color`]),M(H,{round:``,flat:``,class:w([$,`q-ma-none q-pa-none`]),"text-color":o.value,padding:`xs`,type:`button`,direction:`left`,onClick:n[3]||=U(e=>i(`findMy`),[`stop`,`prevent`])},{icon:m(()=>[M(h,{name:`mdi-cellphone-marker`,color:S(t).layerControl.findMy?s.value:o.value},null,8,[`color`])]),default:m(()=>[M(r,{anchor:`top middle`,self:`bottom middle`,offset:[10,10]},{default:m(()=>[...n[11]||=[R(`FindMy`,-1)]]),_:1})]),_:1},8,[`text-color`]),M(H,{round:``,flat:``,class:w([$,`q-ma-none q-pa-none`]),"text-color":o.value,padding:`xs`,type:`button`,onClick:n[4]||=U(e=>i(`simQueue`),[`stop`,`prevent`])},{icon:m(()=>[M(h,{name:`mdi-map-marker-multiple`,color:S(t).layerControl.simQueue?s.value:o.value},null,8,[`color`])]),default:m(()=>[M(r,{anchor:`top middle`,self:`bottom middle`,offset:[10,10]},{default:m(()=>[...n[12]||=[R(`Simulation Queue`,-1)]]),_:1})]),_:1},8,[`text-color`])]),_:1},8,[`text-color`,`modelValue`]))}}),Pe={class:`q-pa-md`,style:{"max-width":`350px`}},Fe=j({__name:`GeoSearch`,emits:[`update:visible`],setup(e,{emit:t}){let n=q(),r=b(null),i=b(),o=new le({}),s=t,c=e=>{n.moveToLocation(e),r.value=null,s(`update:visible`,!1)},l=async(e,t,n)=>{if(e.length<2){n();return}try{let n=await o.search({query:e});t(()=>{i.value=n.map(e=>({label:e.label,x:e.x,y:e.y,bounds:e.bounds}))})}catch(e){console.error(`Geosearch error:`,e),n()}};return(e,t)=>(a(),V(`div`,Pe,[M(ee,{modelValue:r.value,"onUpdate:modelValue":[t[0]||=e=>r.value=e,c],"use-input":``,"input-debounce":`400`,label:`Search Location`,options:i.value,"option-label":`label`,onFilter:l,clearable:``,outlined:``,dense:``,"popup-content-class":`bg-ios-blur`,"popup-content-style":`width: 300px;`,style:{width:`100%`},class:`bg-ios-blur`,behavior:`menu`},{"no-option":m(()=>[M(P,null,{default:m(()=>[M(u,{class:`text-grey`},{default:m(()=>[...t[1]||=[R(` No results found `,-1)]]),_:1})]),_:1})]),append:m(()=>[M(h,{name:`mdi-magnify`})]),_:1},8,[`modelValue`,`options`])]))}});function Ie(e){let t=t=>{t.key===`Escape`&&e()};v(()=>{window.addEventListener(`keydown`,t)}),o(()=>{window.removeEventListener(`keydown`,t)})}var Le=j({__name:`LocateControl`,setup(e){let t=q(),n=new de({position:`topleft`,flyTo:!0,keepCurrentZoomLevel:!0,returnToPrevBounds:!0,layer:t.layerGroups.locateControl??void 0}),r=b(!1),i=b(!1),o=b(!1),s=b(!1),c=L(()=>i.value?s.value?o.value?`#FC8428FF`:`#2074B6FF`:`#FFFFFF`:`#212121`),l=L(()=>i.value&&!s.value&&!o.value?`locate-control-icon-spinner`:``),u=()=>{d(),i.value?(console.log(`Stopping locate control`),n.stop()):(console.log(`Starting locate control`),n.start())};function d(){r.value||t.mapObject&&(r.value=!0,t.mapObject.addControl(n),t.mapObject?.on(`locateactivate`,function(){console.log(`Locate control activated`),i.value=!0}),t.mapObject?.on(`locatedeactivate`,function(){console.log(`Locate control deactivated`),i.value=!1,t.layerGroups.locateControl?.clearLayers()}),t.mapObject?.on(`locationfound`,function(e){console.log(`Location Found: `,e),console.log(`Location found:`,e.latlng),console.log(`Accuracy:`,e.accuracy,`meters`),o.value=!0,s.value=!0}),t.mapObject?.on(`moveend`,function(){o.value&&=!1}),t.mapObject?.on(`locationtimeout`,function(e){console.log(`Location timeout count:`,e.count),s.value=!1,t.layerGroups.locateControl?.clearLayers()}))}return v(()=>{t.mapObject&&(console.log(`MapObject found on initial mount, adding locate control`),d())}),(e,t)=>(a(),O(x,{small:``,flat:``,round:``,size:`0.8em`,class:`bg-ios-blur-brdr-h`,onClick:u},{default:m(()=>[M(h,{name:`mdi-navigation`,style:g(`color: `+c.value+`;`),class:w([`locate-control-icon`,l.value]),"aria-label":`Locate me`},null,8,[`style`,`class`])]),_:1}))}}),Re={class:`geosearch-container`},ze={class:`floated zoom-controls q-py-md q-gutter-y-md column items-start`},Be=j({__name:`FullMapPage`,setup(e){let r=ve(),o=q(),{locationDrawerSettings:s}=G(o),d=b([]),p=b();function g(){p.value=0}let v=b(!1),T=b(!1);return Ie(()=>{v.value=!1}),(e,b)=>(a(),O(E,null,{default:m(()=>[S(o).locationDrawerSettings.opened?k(``,!0):(a(),O(x,{key:0,small:``,round:``,flat:``,size:`md`,class:`floated drawermenuleft bg-ios-blur-brdr-h text-grey-10`,icon:`mdi-menu`,disable:S(r).simulationQueueLength===0,onClick:b[0]||=U(e=>S(o).locationsOpenedHandler(!S(s).opened),[`stop`])},null,8,[`disable`])),M(i,{class:w([`floated logo`,[S(o).locationDrawerSettings.opened&&!S(o).locationDrawerSettings.pinned?`shift-logo`:``,S(r).testMode?`bg-yellow`:`bg-ios-blur`]])},{default:m(()=>[M(A,{class:`logo`,src:ye})]),_:1},8,[`class`]),d.value.length?(a(),O(x,{key:1,small:``,flat:``,round:``,color:`bg-grey-9`,size:`md`,icon:`mdi-bell`,class:`floated notifications bg-ios-blur-h text-grey-9`,onClick:g},{default:m(()=>[p.value?(a(),O(te,{key:0,color:`red`,class:`absolute-top-right q-pa-xs text-white`,style:{"font-size":`0.6rem`}},{default:m(()=>[R(n(p.value),1)]),_:1})):k(``,!0),M(_,{fit:``},{default:m(()=>[M(f,{"no-border":``,link:``,separator:``,style:{"max-height":`200px`},class:`scroll`},{default:m(()=>[(a(!0),V(D,null,F(d.value,(e,t)=>(a(),O(P,{key:t,style:{cursor:`default`}},{default:m(()=>[M(u,null,{default:m(()=>[M(N,null,{default:m(()=>[R(n(e),1)]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})]),_:1})):k(``,!0),M(Le,{class:`floated locate-control`}),M(x,{small:``,flat:``,round:``,size:`0.8em`,class:`floated geosearch bg-ios-blur-brdr-h`,onClick:b[1]||=e=>v.value=!v.value},{default:m(()=>[M(h,{name:`mdi-map-search`,color:v.value?`white`:`grey-10`,class:w([{"rotate-180":v.value},`transition-rotate`])},null,8,[`color`,`class`])]),_:1}),W(`div`,Re,[v.value?(a(),O(Fe,{key:0,class:`geosearchform`,"onUpdate:visible":b[2]||=e=>v.value=e})):k(``,!0)]),W(`div`,ze,[M(B,{flat:``,round:``,class:`zoom-rocker`},{default:m(()=>[M(x,{small:``,flat:``,round:``,size:`0.8em`,class:`zoom-in`,icon:`mdi-plus-thick`,color:`grey-10`,onClick:S(o).zoomIn},null,8,[`onClick`]),M(x,{small:``,flat:``,round:``,size:`0.8em`,class:`zoom-out`,icon:`mdi-minus-thick`,color:`grey-10`,onClick:S(o).zoomOut},null,8,[`onClick`])]),_:1})]),M(x,{small:``,flat:``,round:``,size:`0.8em`,class:`floated base-layers bg-ios-blur-brdr-h`,onClick:b[3]||=e=>T.value=!0},{default:m(()=>[M(h,{name:`mdi-layers-triple-outline`,color:T.value?`white`:`grey-10`,class:w([{"rotate-180":T.value},`transition-rotate`])},null,8,[`color`,`class`])]),_:1}),M(t,{modelValue:T.value,"onUpdate:modelValue":b[6]||=e=>T.value=e,class:`bg-ios-blur`},{default:m(()=>[M(C,{style:{width:`300px`},class:`q-px-sm q-pb-md bg-ios-blur-brdr`},{default:m(()=>[M(l,null,{default:m(()=>[...b[7]||=[W(`div`,{class:`text-h6`},`Base Layers`,-1)]]),_:1}),M(l,null,{default:m(()=>[M(c,{modelValue:S(o).baseLayer.selected,"onUpdate:modelValue":b[4]||=e=>S(o).baseLayer.selected=e,options:S(o).baseLayer.options,type:`radio`,color:`accent`},null,8,[`modelValue`,`options`]),M(y,{color:`accent`,modelValue:S(o).baseLayerWMS.selected,"onUpdate:modelValue":b[5]||=e=>S(o).baseLayerWMS.selected=e,label:`OSM Transparent Overlay`},null,8,[`modelValue`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),M(Ne,{class:`floated layers`}),M(Ae,{class:`floated favorites`}),M(Me,{class:`floated appctrls`}),M(ke,{class:`floated status-fab`}),M(Oe)]),_:1}))}});export{Be as default};