@geops/rvf-mobility-web-component 0.1.29 → 0.1.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/index.js +1 -1
- package/package.json +1 -1
- package/src/RvfMobilityMap/RvfMobilityMap.tsx +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
### [0.1.30](https://github.com/geops/rvf-mobility-web-component/compare/v0.1.29...v0.1.30) (2025-02-18)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* us eprod ([eb15a7a](https://github.com/geops/rvf-mobility-web-component/commit/eb15a7a32672d4f97199d200c74af357c20a3ab2))
|
|
11
|
+
|
|
5
12
|
### [0.1.29](https://github.com/geops/rvf-mobility-web-component/compare/v0.1.28...v0.1.29) (2025-02-18)
|
|
6
13
|
|
|
7
14
|
|
package/index.js
CHANGED
|
@@ -3033,7 +3033,7 @@ html {
|
|
|
3033
3033
|
}
|
|
3034
3034
|
}
|
|
3035
3035
|
|
|
3036
|
-
`;var vU=U0(dU(),1);var Wi1=/{{(.*?)}}/g;function uU(r,t){return r.replace(Wi1,(e,a,n)=>{for(e=0,n=t,a=a.trim().split(".");n&&e<a.length;)n=n[a[e++]];return n??""})}function gU(r){var t="",e=r||{};return{set(a,n){e[a]=Object.assign(e[a]||{},n)},locale(a){return t=a||t},table(a){return e[a]},t(a,n,i){var h=(0,vU.default)(e[i||t],a,"");return typeof h=="function"?h(n):typeof h=="string"?uU(h,n):h}}}var Zi1={de:{no_stops_found:"Keine Haltestellen gefunden",platform_ferry:"St.",platform_other:"Kan.",platform_rail:"Gl.",stops_search_placeholder:"Haltestellen suchen"},en:{no_stops_found:"No stops found",platform_ferry:"Pier",platform_other:"Std.",platform_rail:"Pl.",stops_search_placeholder:"Search for stop"},fr:{no_stops_found:"Aucun arr\xEAt trouv\xE9",platform_ferry:"Quai",platform_other:"Quai",platform_rail:"Voie",stops_search_placeholder:"Chercher un arr\xEAt"},it:{no_stops_found:"Nessuna fermata trovata",platform_ferry:"Imb.",platform_other:"Cor.",platform_rail:"Bin.",stops_search_placeholder:"Ricerca delle fermate"}},pU=Zi1;var x_=gU(pU);x_.locale(navigator.languages.find(r=>x_.table(r.split("-")[0])!==void 0)?.split("-")[0]||"en");var Sp=x_;var w_=class extends Event{data;constructor(t,e,a={}){super(t,{...a,composed:!0}),this.data=e}logImportantData(){console.log(this.data)}},r8=w_;var AU=r=>r.properties.name;function Xi1({apikey:r,bbox:t,countrycode:e,event:a,field:n,limit:i,mots:h,onselect:d,params:g,prefagencies:m,reflocation:z,url:w="https://api.geops.io/stops/v1/"}){let{t:L}=Sp,[_,P]=zt(""),[R,U]=zt(),[k,q]=zt(void 0),$=t5();$2(()=>{$.current?.dispatchEvent(new r8("mwc:attribute",{apikey:r,bbox:t,countrycode:e,event:a,field:n,limit:i,mots:h,onselect:d,params:g,prefagencies:m,reflocation:z,url:w}))},[r,t,e,a,n,i,h,d,g,m,z,w]);let c1=bt(()=>new WA({apiKey:r,url:w}),[r,w]),m1=f4(z1=>{let A1=new r8(a||"mwc:stopssearchselect",z1,{bubbles:!0});$.current?.dispatchEvent(A1),d&&typeof d=="function"&&d(z1)},[a,d]),M1=bt(()=>{let z1;return(0,fU.default)(async A1=>{z1?.abort(),z1=new AbortController,c1.search({bbox:t,field:n,limit:i,mots:h,prefagencies:m,q:A1,ref_location:z,...JSON.parse(g||"{}")},{signal:z1.signal}).then(_1=>{q(_1.features.filter(N1=>!e||N1.properties?.country_code===e))}).catch(_1=>{if(_1.code!==20){console.error("Failed to fetch stations",_1);return}})},150)},[c1,t,e,n,i,h,g,m,z]);return $2(()=>{if(!(R&&_===AU(R))){if(!_){U(void 0);return}return M1(_),()=>{M1.cancel()}}},[_,R,M1]),$2(()=>{q(void 0),R&&P(AU(R)),m1(R)},[m1,R]),Z(Pe,{children:[Z("style",{children:bp}),Z("div",{className:"flex h-16 items-center gap-4 rounded-md bg-white p-4 pt-3.5 shadow",ref:$,children:[Z("div",{className:"flex items-center ",children:Z(lU,{className:"size-4"})}),Z("div",{className:"flex grow overflow-hidden border-b-2 border-solid",children:[Z("input",{autoComplete:"off",className:"h-8 flex-1 outline-0 placeholder:text-zinc-400",id:"searchfield",onChange:z1=>{P(z1.target.value)},onKeyUp:z1=>{z1.key==="Enter"&&k?.length>0&&U(k[0])},placeholder:L("stops_search_placeholder"),type:"text",value:_}),_.length>0&&Z("button",{className:"flex items-center",onClick:()=>{P(""),q(void 0)},children:Z(sU,{className:"size-4"})})]})]}),Z("div",{className:"-mt-4px flex grow overflow-auto rounded-md rounded-t-none bg-white shadow",children:[k&&k.length===0&&Z("div",{className:"flex grow gap-3 border border-solid p-3 pt-2 text-zinc-400",style:{border:1},children:[Z("div",{className:"size-6"}),Z("div",{children:L("no_stops_found")})]}),k&&k.length>0&&Z("ul",{className:"grow rounded-md rounded-t-none border border-solid bg-white p-0 ",style:{border:1},children:k?.map(z1=>Z("li",{className:"border-b border-dashed border-slate-300 p-3 last:border-0",children:Z("button",{className:"flex w-full items-center gap-3 text-left",onClick:()=>{U(z1)},children:[Z("div",{className:"size-6"}),Z("div",{className:"grow",children:z1.properties.name})]})},z1.properties.uid))})]})]})}var P9=ht(Xi1);var $i1=(r,t)=>{let e=r?.geometry?.coordinates;e&&t?.getView()?.animate({center:_o(e),duration:500,zoom:16})},mU=$i1;function Yi1(){let{apikey:r,map:t,stopsurl:e}=Gt(),a=f4(n=>mU(n,t),[t]);return Z(P9,{apikey:r,onselect:a,url:e})}var H_=ht(Yi1);var y_=new ca;function Ji1(){let{baseLayer:r,map:t,realtimeLayer:e,setStationId:a,setTrainId:n,stationId:i,stationsLayer:h,tenant:d,trainId:g}=Gt(),{selectedFeature:m,setSelectedFeature:z,setSelectedFeatures:w}=or();$2(()=>{t&&t.getTargetElement().dispatchEvent(new r8("selectedfeature",{feature:m?y_.writeFeatureObject(m):null}))},[t,m]);let L=f4(async P=>{let[R]=P.map.getFeaturesAtPixel(P.pixel,{layerFilter:$=>$===e});e?.highlight(R);let U=P.map.getFeaturesAtPixel(P.pixel,{layerFilter:$=>$===h}),[k]=U.filter($=>$.get("tralis_network")?.includes(d)),q=P.map.getFeaturesAtPixel(P.pixel,{layerFilter:$=>$.get("isQueryable")});P.map.getTargetElement().style.cursor=R||k||q?.length?"pointer":"default"},[e,h,d]),_=f4(async P=>{if(!r.mapLibreMap)return;let[R]=P.map.getFeaturesAtPixel(P.pixel,{layerFilter:M1=>M1===e}),U=P.map.getFeaturesAtPixel(P.pixel,{layerFilter:M1=>M1===h}),[k]=U.filter(M1=>M1.get("tralis_network")?.includes(d)),q=k?.get("uid"),$=R?.get("train_id");q&&i!==q?(a(q),n(null)):$&&$!==g?(n(R.get("train_id")),a(null)):(n(null),a(null));let c1=P.map.getFeaturesAtPixel(P.pixel,{layerFilter:M1=>M1.get("isQueryable")});(async M1=>{for(let z1 of M1){let A1=z1.get("cluster_id");if(A1){let l1=z1.get("vectorTileFeature").layer.source,n1=await r.mapLibreMap.getSource(l1)?.getClusterLeaves(A1,1e3,0)||[];z1.set("features",n1.map(S1=>y_.readFeature(S1)))}let _1=m?.get("station_id");if(_1){let N1=await Mp(_1);m.setProperties(N1),m.set("provider_logo",B7[m?.get("feed_id")])}}P.map.getTargetElement().dispatchEvent(new r8("singleclick",{...P,features:y_.writeFeaturesObject(M1),lonlat:Vo(P.coordinate)})),q||$||!M1.length?(z(null),w([])):(w(M1),z(M1[0]))})(c1)},[r?.mapLibreMap,i,g,e,h,d,a,n,m,z,w]);return $2(()=>{let P=t?.on("singleclick",_);return()=>{F0(P)}},[t,_]),$2(()=>{let P=t?.on("pointermove",L);return()=>{F0(P)}},[t,L]),null}var Fp=Ji1;var __=wi({index:null,departure:null}),t51=()=>{let r=e5(__);if(!r)throw new Error("useDeparture must be used within a ContextProvider");return r},zU=t51;var R9=r=>`0${r}`.slice(-2),qo=(r,t=!1)=>{let e=new Date(r);return!r||Number.isNaN(e)?"unknown":[R9(e.getHours()),R9(e.getMinutes()),t?null:R9(e.getSeconds())].filter(a=>a).join(":")};function e51(r){let t=tv(),{departure:e}=zU();if(!t)return null;let{arrivalTime:a,at_station_ds100:n,departureTime:i,fzo_estimated_time:h,has_fzo:d,last_boarding_time:g,min_arrival_time:m,ris_aimed_time:z,ris_estimated_time:w,state:L,station:_,stations_in_between:P,time:R,train_number:U}=e,k=new Date(z),q=Number.isNaN(k)?"":[k.getFullYear(),R9(k.getMonth()+1),R9(k.getDate())].join("-"),$=["https://ris-info.bahn.de/rishttp/risinfo.xml?",`action=zuglauf&evanr=${_?.get("uic")}&`,`zugnummer=${U}&`,`ankunft=${q}T${qo(k,!0)}`].join("");return Z("div",{className:"border-b p-4 text-left text-xs",...r,children:["Zugnummer:",Z("a",{href:$,rel:"noopener noreferrer",target:"_blank",children:U}),Z("div",{children:[" State: ",Z("b",{children:L}),Z("br",{}),`Has fzo: ${d};`,Z("br",{}),`Has realtime: ${e.has_realtime_journey};`,Z("br",{}),`Time: ${qo(R)};`,Z("br",{}),`Arrival time: ${qo(a)};`,Z("br",{}),`Departure time: ${qo(i)};`,Z("br",{}),`FzO-Estimated: ${qo(h)};`,Z("br",{}),`RIS-Aimed: ${qo(z)};`,Z("br",{}),`RIS-Estimated: ${qo(w)};`,Z("br",{}),`Ref-Location: ${n};`,Z("br",{}),`Normalized Distance: ${qo(m)};`,Z("br",{}),`Last Boarding: ${qo(g)};`,Z("br",{}),`Stationen until arrival: ${P};`]})]})}var V_=e51;function r51({departure:r,index:t,...e}){let{setStationId:a,setTrainId:n}=Gt(),i=bt(()=>({departure:r,index:t}),[r,t]);return Z(__.Provider,{value:i,children:[Z("button",{className:"w-full border-b",onClick:()=>{n(r.train_id),a()},type:"button",...e,children:Z("div",{className:"gap-4 py-4",style:{alignItems:"center",display:"flex",overflow:"hidden"},children:[Z("div",{className:"pl-4",children:Z(b7,{departure:r})}),Z("div",{className:"grow text-left",children:[...new Set(r.to)].join("/")}),Z("div",{className:"pr-4",children:F7(r.time)})]})}),Z(V_,{})]})}var B_=ht(r51);function a51({children:r,station:t,...e}){let{name:a}=t?.properties||{};return Z("div",{...e,children:[a,r]})}var C_=ht(a51);function i51(){let{station:r}=Gt();return Z("div",{className:"flex items-center gap-x-4 bg-slate-100 p-4",children:Z("div",{className:"flex grow flex-col",children:[Z("span",{className:"font-bold",children:Z(C_,{station:r})}),Z(S7,{accessibility:!0,airport:!0,barAndRestaurants:!0,bathroom:!0,bikeStorage:!0,className:"flex gap-2",elevator:!0,police:!0,station:r,waitingAreas:!0})]})})}var L_=ht(i51);function n51(r){let{realtimeLayer:t,station:e}=Gt(),[a,n]=zt(),i=t5(),{className:h}=r;return $2(()=>{if(!e||!t?.api)return;let d=Qf(g=>(n(g),null),!1,180);return t.api.subscribeDepartures(e?.properties?.uid,d),()=>{n(null),t?.api?.unsubscribeDepartures(e?.properties.uid)}},[e,t?.api]),e?Z(Pe,{children:[Z(L_,{}),Z("div",{className:h,ref:i,children:(a||[]).map((d,g)=>Z(B_,{departure:d,index:g},d.call_id))})]}):null}var b_=ht(n51);function o51(r){let{baseLayer:t,map:e,setStationsLayer:a}=Gt(),n=bt(()=>t?new zr({layersFilter:({metadata:i})=>i?.["general.filter"]==="stations",maplibreLayer:t,name:er.haltestellen,...r||{}}):null,[t,r]);return $2(()=>{if(!(!e||!n))return e.addLayer(n),a(n),()=>{e.removeLayer(n)}},[e,a,n]),null}var S_=ht(o51);var c51=new c3({image:new En({fill:new o3({color:"#000000"}),radius:5}),stroke:new Fn({color:"#000000",width:6}),zIndex:2}),h51=(r,t,e)=>{let a="#ffffff",n=r.get("type"),i=r.get("stroke");return i&&i[0]!=="#"&&(i=`#${i}`),a=i||e?.getBgColor(n,{name:r.get("line_name")}),a=/#ffffff/i.test(a)?"#ff0000":a,[c51,new c3({image:new En({fill:new o3({color:a}),radius:4}),stroke:new Fn({color:a,width:4}),zIndex:3})]},MU=h51;var F_="Informations",l51=r=>{let e=r.get("features")?.[0]||r,{category:a,feed_id:n,long_name:i,tickets:h}=e.getProperties();return a?fS[a]||F_:n?AS[n]||F_:i?a4.liniennetz:h?a4.verkaufsstellen:F_},xU=l51;var s51={0:[0,0,0,0,0,2,2,2,2,2,2,2,2,6,7,7,7],1:[0,0,0,0,0,2,2,2,2,2,2,2,2,6,7,7,7],2:[0,0,0,0,0,2,2,2,2,2,2,2,3,7,12,12,15],3:[0,0,0,0,0,2,2,2,2,2,2,2,2,4,6,6,6],4:[0,0,0,0,0,2,2,2,2,2,2,2,3,7,12,12,15],5:[0,0,0,0,0,2,2,2,2,2,2,2,2,4,7,7,7],6:[0,0,0,0,0,2,2,2,2,2,2,2,2,4,7,7,7],7:[0,0,0,0,0,2,2,2,2,2,2,2,2,4,7,7,7],8:[0,0,0,0,0,2,2,2,2,2,2,2,2,4,6,6,6],9:[0,0,0,0,0,2,2,2,2,2,2,2,3,7,12,12,15]},d51=s51,wU=(r=0,t=0,e=!1)=>{try{let a=B6.getTypeIndex(r);return d51[a][t]*(e?2:1)}catch{return 1}};var HU=(r,t)=>{if(!!t.get("name")&&r!=null){let n=r&&r.split(",")||[],i=t.get("name"),h=n.includes(i);t.getVisible()!==h&&(t.setVisible(h),t.getLayers&&t.getLayers().getArray().forEach(d=>{d.setVisible(h)}))}t.getLayers&&t.getLayers().getArray().forEach(n=>{HU(r,n)})},E_=HU;var u51=(r,t)=>($2(()=>{if(!r)return;e8(r.getLayers().getArray()).forEach(a=>{E_(t,a)});let e=r.getLayers().on("add",a=>{E_(t,a.element)});return()=>{F0(e)}},[r,t]),null),yU=u51;var VU=U0(Oc(),1);var v51=(r,t=new URLSearchParams)=>{let e=r.getView().getZoom(),[a,n]=r.getView().getCenter(),i=e8(r.getLayers().getArray()).filter(h=>h.get("name")&&h.getVisible()).map(h=>h.get("name"));return t.set("layers",i.join(",")),t.set("x",a.toFixed(2)),t.set("y",n.toFixed(2)),t.set("z",e.toFixed(1)),t},_U=v51;var g51=(r,t)=>($2(()=>{let e,a,n;return r&&t&&(Ep(r),e=r?.on("moveend",i=>{Ep(i.map)}),a=r.once("loadend",i=>{Ep(i.map),n=e8(i.map.getLayers().getArray()).map(h=>h.on("change:visible",()=>{Ep(i.map)}))})),()=>{F0(e),F0(a),F0(n)}},[r,t]),null),p51=r=>{if(r.get(Q6))return;let t=new URLSearchParams(window.location.search),e=_U(r,t);e.set("permalink","true"),window.history.replaceState(null,null,`?${e.toString()}`)},Ep=(0,VU.default)(p51,1e3),BU=g51;var CU='data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 42 42" width="42" height="42">%0A <path id="Pfad_1" data-name="Pfad 1" d="M40,20A20,20,0,1,1,20,0,20,20,0,0,1,40,20Z" transform="translate(0 0)" fill="%23353535"/>%0A <path id="Pfad_2" data-name="Pfad 2" d="M25.481,11.843a9.993,9.993,0,0,0-10,9.992c0,7.773,10,14.8,10,14.8s9.992-7.5,9.992-14.8a9.991,9.991,0,0,0-9.992-9.992m0,14.662a4.924,4.924,0,1,1,4.924-4.924A4.93,4.93,0,0,1,25.482,26.5" transform="translate(-5.477 -4.19)" fill="%23fff"/>%0A <path id="Pfad_3" data-name="Pfad 3" d="M12.015,8.124,38.081,34.031,35.4,36.536,9.06,10.527Z" transform="translate(-3.206 -2.874)" fill="%23ec0016"/>%0A <path id="Pfad_4" data-name="Pfad 4" d="M20,3.231A16.769,16.769,0,1,1,3.231,20,16.788,16.788,0,0,1,20,3.231M20,0A20,20,0,1,0,40,20,20,20,0,0,0,20,0" transform="translate(0 0)" fill="%23353535"/>%0A</svg>%0A';var I_={},LU=new Image(42,42);LU.src=CU;var f51=(r,t)=>{let e=16;r>e&&(e=22);let a=`${e},${t}`;if(!I_[a]){let n=V5(e*t,e*t),i=n.getContext("2d");if(!i)return null;i.drawImage(LU,0,0,e*t,e*t),I_[a]=n}return I_[a]},T_={},m51=(r,t,e)=>{let a=`${r}, ${t}, ${e}`;if(!T_[a]){let n=V5(r*2,r*2);if(n){let i=n.getContext("2d");if(!i)return null;i.beginPath(),i.arc(r,r,t,0,2*Math.PI,!1),i.fillStyle=e,i.filter="blur(1px)",i.fill(),T_[a]=n}}return T_[a]},O_={},z51=(r,t,e,a,n="#000",i=1)=>{let h=`${r}, ${e}, ${a}, ${n}, ${i}`;if(!O_[h]){let d=V5(Math.ceil(r.length*t),Math.ceil(t+8*i));if(d){let g=d.getContext("2d");if(!g)return null;g.font=e,g.textAlign="left",g.textBaseline="middle",g.font=e,g.fillStyle=a,g.strokeStyle=n,g.lineWidth=1.5*i,g.strokeText(r,0,t),g.fillText(r,0,t),O_[h]=d}}return O_[h]},P_={},M51=(r,t,e,a,n,i)=>{let h=`${r}, ${t}, ${e}, ${a}, ${n}, ${i}`;if(!P_[h]){let d=V5(r*2,r*2);if(d){let g=d.getContext("2d");if(!g)return null;g.fillStyle=e,a&&(g.lineWidth=1*i,g.strokeStyle="#000000"),g.beginPath(),g.arc(r,r,t,0,2*Math.PI,!1),g.fill(),n&&g.setLineDash([5,3]),a&&g.stroke(),P_[h]=d}}return P_[h]},R_={},x51=(r,t,e,a,n,i,h,d)=>{let g=`${r}, ${t}, ${e}, ${a},${n}, ${i}, ${h}`;if(!R_[g]){let m=V5(t*2,t*2);if(m){let z=m.getContext("2d");if(!z)return null;i&&(z.save(),z.textBaseline="middle",z.textAlign="center",z.font=d(e+2,r),z.strokeStyle=n,z.strokeText(r,t,t),z.restore()),z.textBaseline="middle",z.textAlign="center",z.fillStyle=a,z.font=d(e,r),z.strokeStyle=n,z.strokeText(r,t,t),z.fillText(r,t,t),R_[g]=m}}return R_[g]},D_={},w51=(r,t,e)=>{let{delayDisplay:a=3e5,delayOutlineColor:n="#000",getBgColor:i=()=>"#000",getDelayColor:h=()=>"#000",getDelayFont:d=B1=>`bold ${B1}px arial, sans-serif`,getDelayText:g=()=>null,getMaxRadiusForStrokeAndDelay:m=()=>7,getMaxRadiusForText:z=()=>10,getRadius:w=()=>0,getText:L=B1=>B1,getTextColor:_=()=>"#000",getTextFont:P=B1=>`bold ${B1}px arial, sans-serif`,getTextSize:R=()=>14,hoverVehicleId:U,selectedVehicleId:k,useDelayStyle:q}=e,{pixelRatio:$=1,zoom:c1}=t,{type:m1}=r.properties,{delay:M1,has_realtime_journey:z1,line:A1,operator_provides_realtime_journey:_1,state:N1,train_id:l1}=r.properties,{color:n1,name:S1,text_color:y1}=A1||{};S1=L(S1);let q1=N1==="JOURNEY_CANCELLED";m1||(m1="Rail"),S1||(S1="I"),y1=_(m1),n1=i(m1,A1),n1&&!n1.startsWith("#")&&(n1=`#${n1}`),y1.startsWith("#")||(y1=`#${y1}`);let G1=Math.min(Math.floor(c1||1),16),W1=!!(U&&U===l1),E1=!!(k&&k===l1),K1=w(m1,G1)*$,n2=K1>=m()*$;(W1||E1)&&(K1=n2?K1+5*$:14*$);let M2=K1>z()*$,o1=`${K1}${W1||E1}${z1}`;if(q?o1+=`${_1}${M1}${q1}`:(o1+=`${n1||m1}`,n2&&(o1+=`${q1}${M1}`)),M2&&(o1+=`${S1}${y1}`),!D_[o1]){if(K1===0)return null;let B1=1*$,H1=K1+2*$,k1=K1*2,Z1=H1*2+B1*2,s2=Z1/2,d2=null;n2&&M1!==null&&(d2=m51(s2,H1,h(M1,q1)));let u2=null,b2=0;if(n2&&(W1||(M1||0)>=a||q1)){b2=Math.max(q1?19:14,Math.min(q1?19:17,K1*1.2))*$;let O2=g(M1,q1);O2&&(u2=z51(O2,b2,d(b2,O2),h(M1,q1,!0),n,$))}let _2=null,K2;q?K2=h(M1,q1):K2=n1||i(m1,r);let j2=n2||W1||E1,X1=!!n2&&!!q&&M1===null&&_1==="yes",z2=!!j2&&M2&&!z1&&!q1;z2&&(_2=f51(K1,$));let I1=M51(s2,K1,K2,j2,X1,$),N2=u2?.width||z2&&_2.width/2||0,et=z2&&_2.height/2||0,I2=Z1+N2*2,R2=Z1+et*2,T2=V5(I2,R2);if(T2){let O2=T2.getContext("2d");if(!O2)return null;let it=N2,lt=et;d2&&O2.drawImage(d2,it,lt),I1&&O2.drawImage(I1,it,lt);let Ft=null;if(M2){let $1=Math.max(K1,10),B2=R(O2,k1,S1,$1,P),Q2=q?"#000000":y1||_(m1);Ft=x51(S1,s2,B2,Q2,K2,!!q&&M1===null&&_1==="yes",$,P)}Ft&&O2.drawImage(Ft,it,lt),u2&&O2.drawImage(u2,it+Math.ceil(s2+H1)+B1,lt+Math.ceil(s2-b2)),z2&&O2.drawImage(_2,it-_2.width/4,lt-_2.height/4),D_[o1]=T2}}return D_[o1]},bU=w51;var SU="";var FU={bus:25,coach:15,train:30,tram:20},EU=Wu.join(","),H51={mapLibreOptions:{maxCanvasSize:[2e4,2e4],preserveDrawingBuffer:!0}},y51={},_51={style:{width:"calc(100% - 60px)"}},V51={bboxParameters:{line_tags:"RVF"},fullTrajectoryStyle:MU,getMotsByZoom:r=>r<9?["rail"]:null,sort:({properties:{delay:r,type:t}},{properties:{delay:e,type:a}})=>t!==a?FU[t]<FU[a]?-1:1:r===e?0:r<e?-1:1,style:bU,styleOptions:{getBgColor:vl,getMaxRadiusForStrokeAndDelay:()=>4,getMaxRadiusForText:()=>8,getRadius:wU,getTextColor:Ju}};function B51({apikey:r="5cc87b12d7c5370001c1d655820abcc37dfd4d968d7bab5b2a74a935",baselayer:t="de.rvf",center:e=null,details:a="true",extent:n=EU,geolocation:i="true",layers:h=null,layertree:d="true",mapsurl:g="https://maps.style-dev.geops.io",maxextent:m=EU,maxzoom:z="20",minzoom:w=null,mots:L=null,notification:_="true",notificationat:P=null,notificationbeforelayerid:R=null,notificationurl:U=null,permalink:k="false",print:q="true",realtime:$="true",realtimeurl:c1="wss://api.geops.io/tracker-ws/v1/ws",search:m1="false",share:M1="true",stopsurl:z1="https://api.geops.io/stops/v1/",tenant:A1=null,toolbar:_1="true",zoom:N1=null}){let l1=t5(),[n1,S1]=zt(),[y1,q1]=zt(!1),[G1,W1]=zt(!1),[E1,K1]=zt(),[n2,M2]=zt(),[o1,B1]=zt(),[H1,k1]=zt(),[Z1,s2]=zt(),[d2,u2]=zt(),[b2,_2]=zt(),[K2,j2]=zt(!1),[X1,z2]=zt(!1),[I1,N2]=zt(),[et,I2]=zt(),[R2,T2]=zt(!1),[O2,it]=zt(),[lt,Ft]=zt(),[$1,B2]=zt(),[Q2,G2]=zt(),[dt,o2]=zt(),W2=bt(()=>_1==="true",[_1]),D2=bt(()=>d==="true",[d]),de=bt(()=>$==="true",[$]),Wt=bt(()=>_==="true",[_]),ot=bt(()=>i==="true",[i]),Xe=bt(()=>m1==="true",[m1]),jt=bt(()=>M1==="true",[M1]),De=bt(()=>q==="true",[q]),ce=bt(()=>a==="true",[a]);yU(Z1,h),BU(Z1,k==="true");let F1=bt(()=>({apikey:r,baselayer:t,baseLayer:n1,center:e,extent:n,geolocation:i,isFollowing:y1,isTracking:G1,layers:h,map:Z1,mapsurl:g,maxextent:m,maxzoom:z,minzoom:w,mots:L,notification:_,notificationat:P,notificationbeforelayerid:R,notificationurl:U,permalink:k,realtimeLayer:H1,realtimeurl:c1,setBaseLayer:S1,setIsFollowing:q1,setIsTracking:W1,setMap:s2,setRealtimeLayer:k1,setStation:B1,setStationId:u2,setStationsLayer:M2,setStopSequence:K1,setTrainId:_2,station:o1,stationId:d2,stationsLayer:n2,stopSequence:E1,stopsurl:z1,tenant:A1,trainId:b2,zoom:N1}),[r,t,n1,e,n,i,y1,G1,Z1,g,m,h,z,w,L,_,P,R,U,k,H1,c1,o1,d2,n2,E1,z1,A1,b2,N1]);$2(()=>{l1.current?.dispatchEvent(new r8("mwc:attribute",{baselayer:t,center:e,details:a,extent:n,geolocation:i,layers:h,layertree:d,mapsurl:g,maxextent:m,maxzoom:z,minzoom:w,mots:L,notification:_,notificationat:P,notificationbeforelayerid:R,notificationurl:U,print:q,realtime:$,realtimeurl:c1,search:m1,share:M1,tenant:A1,toolbar:_1,zoom:N1}))},[t,h,e,i,d,_1,g,z,w,L,_,P,U,R,$,c1,m1,A1,N1,n,m,q,M1,a]);let r1=bt(()=>({isExportMenuOpen:K2,isLayerTreeOpen:R2,isShareMenuOpen:X1,layertree:d,lineNetworkPlanLayer:Q2,poisLayer:$1,selectedFeature:I1,selectedFeatures:et,sellingPointsLayer:O2,setIsExportMenuOpen:j2,setIsLayerTreeOpen:T2,setIsShareMenuOpen:z2,setLineNetworkPlanLayer:G2,setPoisLayer:B2,setSelectedFeature:N2,setSelectedFeatures:I2,setSellingPointsLayer:it,setSharedMobilityLayerGroup:o2,setTarifZonenLayer:Ft,sharedMobilityLayerGroup:dt,tarifZonenLayer:lt}),[K2,d,R2,X1,Q2,$1,I1,et,O2,dt,lt]),e1=f4(()=>{T2(!R2)},[R2]),v1=f4(()=>{j2(!1)},[]),C1=bt(()=>({format:j1=>{let e2=[];return j1.forEach(P1=>{/(sbb|rvf)/i.test(P1)||e2.push(P1)}),e2.join(" | ")}}),[]),Q1=bt(()=>({layersFilter:({metadata:j1})=>j1?.["general.filter"]==="stations"}),[]);return $2(()=>{W2&&R2&&(j2(!1),T2(R2),N2(null),_2(null),u2(null),z2(!1))},[R2,W2]),$2(()=>{W2&&K2&&(T2(!1),j2(K2),N2(null),_2(null),z2(!1),u2(null))},[K2,W2]),$2(()=>{W2&&I1&&(T2(!1),j2(!1),_2(null),z2(!1),u2(null))},[I1,W2]),$2(()=>{W2&&d2&&(T2(!1),j2(!1),_2(null),z2(!1),N2(null))},[d2,W2]),$2(()=>{W2&&b2&&(T2(!1),j2(!1),u2(null),z2(!1),N2(null))},[b2,W2]),$2(()=>{W2&&X1&&(T2(!1),j2(!1),u2(null),_2(null),N2(null))},[X1,W2]),Z(ZM.Provider,{value:Sp,children:[Z("style",{children:bp}),Z("style",{children:SU}),Z(xM.Provider,{value:F1,children:Z(Ay.Provider,{value:r1,children:Z("div",{className:"relative size-full border font-sans @container/main",ref:l1,style:y51,children:Z("div",{className:"relative flex size-full flex-col text-base @lg/main:flex-row-reverse",children:[Z(LM,{className:"relative flex-1 overflow-visible ",children:[Z(wM,{...H51}),Z(Fp,{}),Z(Ny,{}),de&&Z(RM,{title:a4.echtzeit,...V51}),Z(S_,{minZoom:10,title:a4.haltestellen,...Q1}),Wt&&Z(Ku,{}),Z(o_,{title:a4.tarifzonen}),Z(Qy,{isQueryable:!0,title:a4.verkaufsstellen}),Z(Ry,{isQueryable:!1,minZoom:10,title:a4.liniennetz}),Z(Uy,{title:a4.pois}),Z(a_,{title:a4.sharedMobility}),Z("div",{className:"pointer-events-none absolute inset-x-2 bottom-2 z-10 flex items-end justify-between gap-2 text-[10px]",children:[Z(A_,{className:"bg-slate-50/70"}),Z(HM,{className:"pointer-events-auto bg-slate-50/70",options:C1})]}),Z("div",{className:"absolute right-2 top-2 z-10 flex flex-col gap-2",children:[ot&&Z(CM,{}),!W2&&De&&Z(ap,{})]}),Xe&&Z("div",{className:"absolute left-2 right-12 top-2 z-10 flex max-h-[90%] min-w-64 max-w-96 flex-col",children:Z(H_,{})}),Z("div",{className:"absolute bottom-10 right-2 z-10 flex flex-col justify-between gap-2",children:Z(v_,{})}),!W2&&D2&&Z(Ty,{isOpen:R2,onClick:e1,title:"Kartendaten",children:Z(Vp,{className:"w-full px-2"})})]}),Z(EM,{className:"z-50 bg-white",ScrollableHandlerProps:_51,children:[de&&b2&&Z(Pe,{children:[Z(t8,{onClose:()=>{_2(null)},title:a4.echtzeit}),Z(sx,{className:"relative overflow-y-auto overflow-x-hidden"})]}),A1&&d2&&Z(Pe,{children:[Z(t8,{onClose:()=>{u2(null)},title:"Station"}),Z(b_,{className:"relative flex flex-col overflow-y-auto overflow-x-hidden p-2"})]}),ce&&I1&&Z(Pe,{children:[Z(t8,{onClose:()=>{N2(null)},title:xU(I1)}),Z(Iy,{className:"relative flex h-full flex-col gap-4 overflow-y-auto overflow-x-hidden p-4"})]}),W2&&De&&K2&&Z(Pe,{children:[Z(t8,{onClose:()=>{j2(!1)},title:"Dr\xFCcken"}),Z(rp,{className:"relative flex flex-col gap-8 overflow-y-auto overflow-x-hidden px-4 py-6"})]}),W2&&D2&&R2&&Z(Pe,{children:[Z(t8,{onClose:()=>{T2(!1)},title:"Layers"}),Z(Vp,{className:" relative flex h-full flex-col overflow-y-auto overflow-x-hidden p-2"})]}),W2&&jt&&X1&&Z(Pe,{children:[Z(t8,{onClose:()=>{z2(!1)},title:"Share"}),Z(Yy,{className:"relative flex h-full flex-col gap-8 overflow-y-auto overflow-x-hidden px-4 py-6"})]})]}),W2&&Z("div",{className:"z-[100] flex justify-around overflow-x-hidden border-t bg-white p-1 @lg/main:block @lg/main:border-r @lg/main:p-0 ",children:[D2&&Z(Py,{className:"border-none",title:"Layers"}),De&&Z(ap,{className:"border-none",title:"Dr\xFCcken"}),jt&&Z(n_,{className:"border-none",title:"Share"})]}),!W2&&De&&K2&&Z(Dy,{onClose:v1,children:Z(rp,{className:"relative flex h-full flex-col overflow-y-auto overflow-x-hidden p-2"})})]})})})})]})}var Ip=ht(B51);EA(Ip,"geops-mobility",["apikey","baselayer","center","extent","maxextent","geolocation","details","layers","layertree","mapsurl","mots","notification","notificationat","notificationurl","notificationbeforelayerid","print","realtime","realtimeurl","search","share","tenant","zoom","permalink"],{shadow:!0});EA(P9,"geops-mobility-search",["apikey","bbox","countrycode","event","field","limit","mots","onselect","params","prefagencies","reflocation","url"],{shadow:!0});})();
|
|
3036
|
+
`;var vU=U0(dU(),1);var Wi1=/{{(.*?)}}/g;function uU(r,t){return r.replace(Wi1,(e,a,n)=>{for(e=0,n=t,a=a.trim().split(".");n&&e<a.length;)n=n[a[e++]];return n??""})}function gU(r){var t="",e=r||{};return{set(a,n){e[a]=Object.assign(e[a]||{},n)},locale(a){return t=a||t},table(a){return e[a]},t(a,n,i){var h=(0,vU.default)(e[i||t],a,"");return typeof h=="function"?h(n):typeof h=="string"?uU(h,n):h}}}var Zi1={de:{no_stops_found:"Keine Haltestellen gefunden",platform_ferry:"St.",platform_other:"Kan.",platform_rail:"Gl.",stops_search_placeholder:"Haltestellen suchen"},en:{no_stops_found:"No stops found",platform_ferry:"Pier",platform_other:"Std.",platform_rail:"Pl.",stops_search_placeholder:"Search for stop"},fr:{no_stops_found:"Aucun arr\xEAt trouv\xE9",platform_ferry:"Quai",platform_other:"Quai",platform_rail:"Voie",stops_search_placeholder:"Chercher un arr\xEAt"},it:{no_stops_found:"Nessuna fermata trovata",platform_ferry:"Imb.",platform_other:"Cor.",platform_rail:"Bin.",stops_search_placeholder:"Ricerca delle fermate"}},pU=Zi1;var x_=gU(pU);x_.locale(navigator.languages.find(r=>x_.table(r.split("-")[0])!==void 0)?.split("-")[0]||"en");var Sp=x_;var w_=class extends Event{data;constructor(t,e,a={}){super(t,{...a,composed:!0}),this.data=e}logImportantData(){console.log(this.data)}},r8=w_;var AU=r=>r.properties.name;function Xi1({apikey:r,bbox:t,countrycode:e,event:a,field:n,limit:i,mots:h,onselect:d,params:g,prefagencies:m,reflocation:z,url:w="https://api.geops.io/stops/v1/"}){let{t:L}=Sp,[_,P]=zt(""),[R,U]=zt(),[k,q]=zt(void 0),$=t5();$2(()=>{$.current?.dispatchEvent(new r8("mwc:attribute",{apikey:r,bbox:t,countrycode:e,event:a,field:n,limit:i,mots:h,onselect:d,params:g,prefagencies:m,reflocation:z,url:w}))},[r,t,e,a,n,i,h,d,g,m,z,w]);let c1=bt(()=>new WA({apiKey:r,url:w}),[r,w]),m1=f4(z1=>{let A1=new r8(a||"mwc:stopssearchselect",z1,{bubbles:!0});$.current?.dispatchEvent(A1),d&&typeof d=="function"&&d(z1)},[a,d]),M1=bt(()=>{let z1;return(0,fU.default)(async A1=>{z1?.abort(),z1=new AbortController,c1.search({bbox:t,field:n,limit:i,mots:h,prefagencies:m,q:A1,ref_location:z,...JSON.parse(g||"{}")},{signal:z1.signal}).then(_1=>{q(_1.features.filter(N1=>!e||N1.properties?.country_code===e))}).catch(_1=>{if(_1.code!==20){console.error("Failed to fetch stations",_1);return}})},150)},[c1,t,e,n,i,h,g,m,z]);return $2(()=>{if(!(R&&_===AU(R))){if(!_){U(void 0);return}return M1(_),()=>{M1.cancel()}}},[_,R,M1]),$2(()=>{q(void 0),R&&P(AU(R)),m1(R)},[m1,R]),Z(Pe,{children:[Z("style",{children:bp}),Z("div",{className:"flex h-16 items-center gap-4 rounded-md bg-white p-4 pt-3.5 shadow",ref:$,children:[Z("div",{className:"flex items-center ",children:Z(lU,{className:"size-4"})}),Z("div",{className:"flex grow overflow-hidden border-b-2 border-solid",children:[Z("input",{autoComplete:"off",className:"h-8 flex-1 outline-0 placeholder:text-zinc-400",id:"searchfield",onChange:z1=>{P(z1.target.value)},onKeyUp:z1=>{z1.key==="Enter"&&k?.length>0&&U(k[0])},placeholder:L("stops_search_placeholder"),type:"text",value:_}),_.length>0&&Z("button",{className:"flex items-center",onClick:()=>{P(""),q(void 0)},children:Z(sU,{className:"size-4"})})]})]}),Z("div",{className:"-mt-4px flex grow overflow-auto rounded-md rounded-t-none bg-white shadow",children:[k&&k.length===0&&Z("div",{className:"flex grow gap-3 border border-solid p-3 pt-2 text-zinc-400",style:{border:1},children:[Z("div",{className:"size-6"}),Z("div",{children:L("no_stops_found")})]}),k&&k.length>0&&Z("ul",{className:"grow rounded-md rounded-t-none border border-solid bg-white p-0 ",style:{border:1},children:k?.map(z1=>Z("li",{className:"border-b border-dashed border-slate-300 p-3 last:border-0",children:Z("button",{className:"flex w-full items-center gap-3 text-left",onClick:()=>{U(z1)},children:[Z("div",{className:"size-6"}),Z("div",{className:"grow",children:z1.properties.name})]})},z1.properties.uid))})]})]})}var P9=ht(Xi1);var $i1=(r,t)=>{let e=r?.geometry?.coordinates;e&&t?.getView()?.animate({center:_o(e),duration:500,zoom:16})},mU=$i1;function Yi1(){let{apikey:r,map:t,stopsurl:e}=Gt(),a=f4(n=>mU(n,t),[t]);return Z(P9,{apikey:r,onselect:a,url:e})}var H_=ht(Yi1);var y_=new ca;function Ji1(){let{baseLayer:r,map:t,realtimeLayer:e,setStationId:a,setTrainId:n,stationId:i,stationsLayer:h,tenant:d,trainId:g}=Gt(),{selectedFeature:m,setSelectedFeature:z,setSelectedFeatures:w}=or();$2(()=>{t&&t.getTargetElement().dispatchEvent(new r8("selectedfeature",{feature:m?y_.writeFeatureObject(m):null}))},[t,m]);let L=f4(async P=>{let[R]=P.map.getFeaturesAtPixel(P.pixel,{layerFilter:$=>$===e});e?.highlight(R);let U=P.map.getFeaturesAtPixel(P.pixel,{layerFilter:$=>$===h}),[k]=U.filter($=>$.get("tralis_network")?.includes(d)),q=P.map.getFeaturesAtPixel(P.pixel,{layerFilter:$=>$.get("isQueryable")});P.map.getTargetElement().style.cursor=R||k||q?.length?"pointer":"default"},[e,h,d]),_=f4(async P=>{if(!r.mapLibreMap)return;let[R]=P.map.getFeaturesAtPixel(P.pixel,{layerFilter:M1=>M1===e}),U=P.map.getFeaturesAtPixel(P.pixel,{layerFilter:M1=>M1===h}),[k]=U.filter(M1=>M1.get("tralis_network")?.includes(d)),q=k?.get("uid"),$=R?.get("train_id");q&&i!==q?(a(q),n(null)):$&&$!==g?(n(R.get("train_id")),a(null)):(n(null),a(null));let c1=P.map.getFeaturesAtPixel(P.pixel,{layerFilter:M1=>M1.get("isQueryable")});(async M1=>{for(let z1 of M1){let A1=z1.get("cluster_id");if(A1){let l1=z1.get("vectorTileFeature").layer.source,n1=await r.mapLibreMap.getSource(l1)?.getClusterLeaves(A1,1e3,0)||[];z1.set("features",n1.map(S1=>y_.readFeature(S1)))}let _1=m?.get("station_id");if(_1){let N1=await Mp(_1);m.setProperties(N1),m.set("provider_logo",B7[m?.get("feed_id")])}}P.map.getTargetElement().dispatchEvent(new r8("singleclick",{...P,features:y_.writeFeaturesObject(M1),lonlat:Vo(P.coordinate)})),q||$||!M1.length?(z(null),w([])):(w(M1),z(M1[0]))})(c1)},[r?.mapLibreMap,i,g,e,h,d,a,n,m,z,w]);return $2(()=>{let P=t?.on("singleclick",_);return()=>{F0(P)}},[t,_]),$2(()=>{let P=t?.on("pointermove",L);return()=>{F0(P)}},[t,L]),null}var Fp=Ji1;var __=wi({index:null,departure:null}),t51=()=>{let r=e5(__);if(!r)throw new Error("useDeparture must be used within a ContextProvider");return r},zU=t51;var R9=r=>`0${r}`.slice(-2),qo=(r,t=!1)=>{let e=new Date(r);return!r||Number.isNaN(e)?"unknown":[R9(e.getHours()),R9(e.getMinutes()),t?null:R9(e.getSeconds())].filter(a=>a).join(":")};function e51(r){let t=tv(),{departure:e}=zU();if(!t)return null;let{arrivalTime:a,at_station_ds100:n,departureTime:i,fzo_estimated_time:h,has_fzo:d,last_boarding_time:g,min_arrival_time:m,ris_aimed_time:z,ris_estimated_time:w,state:L,station:_,stations_in_between:P,time:R,train_number:U}=e,k=new Date(z),q=Number.isNaN(k)?"":[k.getFullYear(),R9(k.getMonth()+1),R9(k.getDate())].join("-"),$=["https://ris-info.bahn.de/rishttp/risinfo.xml?",`action=zuglauf&evanr=${_?.get("uic")}&`,`zugnummer=${U}&`,`ankunft=${q}T${qo(k,!0)}`].join("");return Z("div",{className:"border-b p-4 text-left text-xs",...r,children:["Zugnummer:",Z("a",{href:$,rel:"noopener noreferrer",target:"_blank",children:U}),Z("div",{children:[" State: ",Z("b",{children:L}),Z("br",{}),`Has fzo: ${d};`,Z("br",{}),`Has realtime: ${e.has_realtime_journey};`,Z("br",{}),`Time: ${qo(R)};`,Z("br",{}),`Arrival time: ${qo(a)};`,Z("br",{}),`Departure time: ${qo(i)};`,Z("br",{}),`FzO-Estimated: ${qo(h)};`,Z("br",{}),`RIS-Aimed: ${qo(z)};`,Z("br",{}),`RIS-Estimated: ${qo(w)};`,Z("br",{}),`Ref-Location: ${n};`,Z("br",{}),`Normalized Distance: ${qo(m)};`,Z("br",{}),`Last Boarding: ${qo(g)};`,Z("br",{}),`Stationen until arrival: ${P};`]})]})}var V_=e51;function r51({departure:r,index:t,...e}){let{setStationId:a,setTrainId:n}=Gt(),i=bt(()=>({departure:r,index:t}),[r,t]);return Z(__.Provider,{value:i,children:[Z("button",{className:"w-full border-b",onClick:()=>{n(r.train_id),a()},type:"button",...e,children:Z("div",{className:"gap-4 py-4",style:{alignItems:"center",display:"flex",overflow:"hidden"},children:[Z("div",{className:"pl-4",children:Z(b7,{departure:r})}),Z("div",{className:"grow text-left",children:[...new Set(r.to)].join("/")}),Z("div",{className:"pr-4",children:F7(r.time)})]})}),Z(V_,{})]})}var B_=ht(r51);function a51({children:r,station:t,...e}){let{name:a}=t?.properties||{};return Z("div",{...e,children:[a,r]})}var C_=ht(a51);function i51(){let{station:r}=Gt();return Z("div",{className:"flex items-center gap-x-4 bg-slate-100 p-4",children:Z("div",{className:"flex grow flex-col",children:[Z("span",{className:"font-bold",children:Z(C_,{station:r})}),Z(S7,{accessibility:!0,airport:!0,barAndRestaurants:!0,bathroom:!0,bikeStorage:!0,className:"flex gap-2",elevator:!0,police:!0,station:r,waitingAreas:!0})]})})}var L_=ht(i51);function n51(r){let{realtimeLayer:t,station:e}=Gt(),[a,n]=zt(),i=t5(),{className:h}=r;return $2(()=>{if(!e||!t?.api)return;let d=Qf(g=>(n(g),null),!1,180);return t.api.subscribeDepartures(e?.properties?.uid,d),()=>{n(null),t?.api?.unsubscribeDepartures(e?.properties.uid)}},[e,t?.api]),e?Z(Pe,{children:[Z(L_,{}),Z("div",{className:h,ref:i,children:(a||[]).map((d,g)=>Z(B_,{departure:d,index:g},d.call_id))})]}):null}var b_=ht(n51);function o51(r){let{baseLayer:t,map:e,setStationsLayer:a}=Gt(),n=bt(()=>t?new zr({layersFilter:({metadata:i})=>i?.["general.filter"]==="stations",maplibreLayer:t,name:er.haltestellen,...r||{}}):null,[t,r]);return $2(()=>{if(!(!e||!n))return e.addLayer(n),a(n),()=>{e.removeLayer(n)}},[e,a,n]),null}var S_=ht(o51);var c51=new c3({image:new En({fill:new o3({color:"#000000"}),radius:5}),stroke:new Fn({color:"#000000",width:6}),zIndex:2}),h51=(r,t,e)=>{let a="#ffffff",n=r.get("type"),i=r.get("stroke");return i&&i[0]!=="#"&&(i=`#${i}`),a=i||e?.getBgColor(n,{name:r.get("line_name")}),a=/#ffffff/i.test(a)?"#ff0000":a,[c51,new c3({image:new En({fill:new o3({color:a}),radius:4}),stroke:new Fn({color:a,width:4}),zIndex:3})]},MU=h51;var F_="Informations",l51=r=>{let e=r.get("features")?.[0]||r,{category:a,feed_id:n,long_name:i,tickets:h}=e.getProperties();return a?fS[a]||F_:n?AS[n]||F_:i?a4.liniennetz:h?a4.verkaufsstellen:F_},xU=l51;var s51={0:[0,0,0,0,0,2,2,2,2,2,2,2,2,6,7,7,7],1:[0,0,0,0,0,2,2,2,2,2,2,2,2,6,7,7,7],2:[0,0,0,0,0,2,2,2,2,2,2,2,3,7,12,12,15],3:[0,0,0,0,0,2,2,2,2,2,2,2,2,4,6,6,6],4:[0,0,0,0,0,2,2,2,2,2,2,2,3,7,12,12,15],5:[0,0,0,0,0,2,2,2,2,2,2,2,2,4,7,7,7],6:[0,0,0,0,0,2,2,2,2,2,2,2,2,4,7,7,7],7:[0,0,0,0,0,2,2,2,2,2,2,2,2,4,7,7,7],8:[0,0,0,0,0,2,2,2,2,2,2,2,2,4,6,6,6],9:[0,0,0,0,0,2,2,2,2,2,2,2,3,7,12,12,15]},d51=s51,wU=(r=0,t=0,e=!1)=>{try{let a=B6.getTypeIndex(r);return d51[a][t]*(e?2:1)}catch{return 1}};var HU=(r,t)=>{if(!!t.get("name")&&r!=null){let n=r&&r.split(",")||[],i=t.get("name"),h=n.includes(i);t.getVisible()!==h&&(t.setVisible(h),t.getLayers&&t.getLayers().getArray().forEach(d=>{d.setVisible(h)}))}t.getLayers&&t.getLayers().getArray().forEach(n=>{HU(r,n)})},E_=HU;var u51=(r,t)=>($2(()=>{if(!r)return;e8(r.getLayers().getArray()).forEach(a=>{E_(t,a)});let e=r.getLayers().on("add",a=>{E_(t,a.element)});return()=>{F0(e)}},[r,t]),null),yU=u51;var VU=U0(Oc(),1);var v51=(r,t=new URLSearchParams)=>{let e=r.getView().getZoom(),[a,n]=r.getView().getCenter(),i=e8(r.getLayers().getArray()).filter(h=>h.get("name")&&h.getVisible()).map(h=>h.get("name"));return t.set("layers",i.join(",")),t.set("x",a.toFixed(2)),t.set("y",n.toFixed(2)),t.set("z",e.toFixed(1)),t},_U=v51;var g51=(r,t)=>($2(()=>{let e,a,n;return r&&t&&(Ep(r),e=r?.on("moveend",i=>{Ep(i.map)}),a=r.once("loadend",i=>{Ep(i.map),n=e8(i.map.getLayers().getArray()).map(h=>h.on("change:visible",()=>{Ep(i.map)}))})),()=>{F0(e),F0(a),F0(n)}},[r,t]),null),p51=r=>{if(r.get(Q6))return;let t=new URLSearchParams(window.location.search),e=_U(r,t);e.set("permalink","true"),window.history.replaceState(null,null,`?${e.toString()}`)},Ep=(0,VU.default)(p51,1e3),BU=g51;var CU='data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 42 42" width="42" height="42">%0A <path id="Pfad_1" data-name="Pfad 1" d="M40,20A20,20,0,1,1,20,0,20,20,0,0,1,40,20Z" transform="translate(0 0)" fill="%23353535"/>%0A <path id="Pfad_2" data-name="Pfad 2" d="M25.481,11.843a9.993,9.993,0,0,0-10,9.992c0,7.773,10,14.8,10,14.8s9.992-7.5,9.992-14.8a9.991,9.991,0,0,0-9.992-9.992m0,14.662a4.924,4.924,0,1,1,4.924-4.924A4.93,4.93,0,0,1,25.482,26.5" transform="translate(-5.477 -4.19)" fill="%23fff"/>%0A <path id="Pfad_3" data-name="Pfad 3" d="M12.015,8.124,38.081,34.031,35.4,36.536,9.06,10.527Z" transform="translate(-3.206 -2.874)" fill="%23ec0016"/>%0A <path id="Pfad_4" data-name="Pfad 4" d="M20,3.231A16.769,16.769,0,1,1,3.231,20,16.788,16.788,0,0,1,20,3.231M20,0A20,20,0,1,0,40,20,20,20,0,0,0,20,0" transform="translate(0 0)" fill="%23353535"/>%0A</svg>%0A';var I_={},LU=new Image(42,42);LU.src=CU;var f51=(r,t)=>{let e=16;r>e&&(e=22);let a=`${e},${t}`;if(!I_[a]){let n=V5(e*t,e*t),i=n.getContext("2d");if(!i)return null;i.drawImage(LU,0,0,e*t,e*t),I_[a]=n}return I_[a]},T_={},m51=(r,t,e)=>{let a=`${r}, ${t}, ${e}`;if(!T_[a]){let n=V5(r*2,r*2);if(n){let i=n.getContext("2d");if(!i)return null;i.beginPath(),i.arc(r,r,t,0,2*Math.PI,!1),i.fillStyle=e,i.filter="blur(1px)",i.fill(),T_[a]=n}}return T_[a]},O_={},z51=(r,t,e,a,n="#000",i=1)=>{let h=`${r}, ${e}, ${a}, ${n}, ${i}`;if(!O_[h]){let d=V5(Math.ceil(r.length*t),Math.ceil(t+8*i));if(d){let g=d.getContext("2d");if(!g)return null;g.font=e,g.textAlign="left",g.textBaseline="middle",g.font=e,g.fillStyle=a,g.strokeStyle=n,g.lineWidth=1.5*i,g.strokeText(r,0,t),g.fillText(r,0,t),O_[h]=d}}return O_[h]},P_={},M51=(r,t,e,a,n,i)=>{let h=`${r}, ${t}, ${e}, ${a}, ${n}, ${i}`;if(!P_[h]){let d=V5(r*2,r*2);if(d){let g=d.getContext("2d");if(!g)return null;g.fillStyle=e,a&&(g.lineWidth=1*i,g.strokeStyle="#000000"),g.beginPath(),g.arc(r,r,t,0,2*Math.PI,!1),g.fill(),n&&g.setLineDash([5,3]),a&&g.stroke(),P_[h]=d}}return P_[h]},R_={},x51=(r,t,e,a,n,i,h,d)=>{let g=`${r}, ${t}, ${e}, ${a},${n}, ${i}, ${h}`;if(!R_[g]){let m=V5(t*2,t*2);if(m){let z=m.getContext("2d");if(!z)return null;i&&(z.save(),z.textBaseline="middle",z.textAlign="center",z.font=d(e+2,r),z.strokeStyle=n,z.strokeText(r,t,t),z.restore()),z.textBaseline="middle",z.textAlign="center",z.fillStyle=a,z.font=d(e,r),z.strokeStyle=n,z.strokeText(r,t,t),z.fillText(r,t,t),R_[g]=m}}return R_[g]},D_={},w51=(r,t,e)=>{let{delayDisplay:a=3e5,delayOutlineColor:n="#000",getBgColor:i=()=>"#000",getDelayColor:h=()=>"#000",getDelayFont:d=B1=>`bold ${B1}px arial, sans-serif`,getDelayText:g=()=>null,getMaxRadiusForStrokeAndDelay:m=()=>7,getMaxRadiusForText:z=()=>10,getRadius:w=()=>0,getText:L=B1=>B1,getTextColor:_=()=>"#000",getTextFont:P=B1=>`bold ${B1}px arial, sans-serif`,getTextSize:R=()=>14,hoverVehicleId:U,selectedVehicleId:k,useDelayStyle:q}=e,{pixelRatio:$=1,zoom:c1}=t,{type:m1}=r.properties,{delay:M1,has_realtime_journey:z1,line:A1,operator_provides_realtime_journey:_1,state:N1,train_id:l1}=r.properties,{color:n1,name:S1,text_color:y1}=A1||{};S1=L(S1);let q1=N1==="JOURNEY_CANCELLED";m1||(m1="Rail"),S1||(S1="I"),y1=_(m1),n1=i(m1,A1),n1&&!n1.startsWith("#")&&(n1=`#${n1}`),y1.startsWith("#")||(y1=`#${y1}`);let G1=Math.min(Math.floor(c1||1),16),W1=!!(U&&U===l1),E1=!!(k&&k===l1),K1=w(m1,G1)*$,n2=K1>=m()*$;(W1||E1)&&(K1=n2?K1+5*$:14*$);let M2=K1>z()*$,o1=`${K1}${W1||E1}${z1}`;if(q?o1+=`${_1}${M1}${q1}`:(o1+=`${n1||m1}`,n2&&(o1+=`${q1}${M1}`)),M2&&(o1+=`${S1}${y1}`),!D_[o1]){if(K1===0)return null;let B1=1*$,H1=K1+2*$,k1=K1*2,Z1=H1*2+B1*2,s2=Z1/2,d2=null;n2&&M1!==null&&(d2=m51(s2,H1,h(M1,q1)));let u2=null,b2=0;if(n2&&(W1||(M1||0)>=a||q1)){b2=Math.max(q1?19:14,Math.min(q1?19:17,K1*1.2))*$;let O2=g(M1,q1);O2&&(u2=z51(O2,b2,d(b2,O2),h(M1,q1,!0),n,$))}let _2=null,K2;q?K2=h(M1,q1):K2=n1||i(m1,r);let j2=n2||W1||E1,X1=!!n2&&!!q&&M1===null&&_1==="yes",z2=!!j2&&M2&&!z1&&!q1;z2&&(_2=f51(K1,$));let I1=M51(s2,K1,K2,j2,X1,$),N2=u2?.width||z2&&_2.width/2||0,et=z2&&_2.height/2||0,I2=Z1+N2*2,R2=Z1+et*2,T2=V5(I2,R2);if(T2){let O2=T2.getContext("2d");if(!O2)return null;let it=N2,lt=et;d2&&O2.drawImage(d2,it,lt),I1&&O2.drawImage(I1,it,lt);let Ft=null;if(M2){let $1=Math.max(K1,10),B2=R(O2,k1,S1,$1,P),Q2=q?"#000000":y1||_(m1);Ft=x51(S1,s2,B2,Q2,K2,!!q&&M1===null&&_1==="yes",$,P)}Ft&&O2.drawImage(Ft,it,lt),u2&&O2.drawImage(u2,it+Math.ceil(s2+H1)+B1,lt+Math.ceil(s2-b2)),z2&&O2.drawImage(_2,it-_2.width/4,lt-_2.height/4),D_[o1]=T2}}return D_[o1]},bU=w51;var SU="";var FU={bus:25,coach:15,train:30,tram:20},EU=Wu.join(","),H51={mapLibreOptions:{maxCanvasSize:[2e4,2e4],preserveDrawingBuffer:!0}},y51={},_51={style:{width:"calc(100% - 60px)"}},V51={bboxParameters:{line_tags:"RVF"},fullTrajectoryStyle:MU,getMotsByZoom:r=>r<9?["rail"]:null,sort:({properties:{delay:r,type:t}},{properties:{delay:e,type:a}})=>t!==a?FU[t]<FU[a]?-1:1:r===e?0:r<e?-1:1,style:bU,styleOptions:{getBgColor:vl,getMaxRadiusForStrokeAndDelay:()=>4,getMaxRadiusForText:()=>8,getRadius:wU,getTextColor:Ju}};function B51({apikey:r="5cc87b12d7c5370001c1d655820abcc37dfd4d968d7bab5b2a74a935",baselayer:t="de.rvf",center:e=null,details:a="true",extent:n=EU,geolocation:i="true",layers:h=null,layertree:d="true",mapsurl:g="https://maps.geops.io",maxextent:m=EU,maxzoom:z="20",minzoom:w=null,mots:L=null,notification:_="true",notificationat:P=null,notificationbeforelayerid:R=null,notificationurl:U=null,permalink:k="false",print:q="true",realtime:$="true",realtimeurl:c1="wss://api.geops.io/tracker-ws/v1/ws",search:m1="false",share:M1="true",stopsurl:z1="https://api.geops.io/stops/v1/",tenant:A1=null,toolbar:_1="true",zoom:N1=null}){let l1=t5(),[n1,S1]=zt(),[y1,q1]=zt(!1),[G1,W1]=zt(!1),[E1,K1]=zt(),[n2,M2]=zt(),[o1,B1]=zt(),[H1,k1]=zt(),[Z1,s2]=zt(),[d2,u2]=zt(),[b2,_2]=zt(),[K2,j2]=zt(!1),[X1,z2]=zt(!1),[I1,N2]=zt(),[et,I2]=zt(),[R2,T2]=zt(!1),[O2,it]=zt(),[lt,Ft]=zt(),[$1,B2]=zt(),[Q2,G2]=zt(),[dt,o2]=zt(),W2=bt(()=>_1==="true",[_1]),D2=bt(()=>d==="true",[d]),de=bt(()=>$==="true",[$]),Wt=bt(()=>_==="true",[_]),ot=bt(()=>i==="true",[i]),Xe=bt(()=>m1==="true",[m1]),jt=bt(()=>M1==="true",[M1]),De=bt(()=>q==="true",[q]),ce=bt(()=>a==="true",[a]);yU(Z1,h),BU(Z1,k==="true");let F1=bt(()=>({apikey:r,baselayer:t,baseLayer:n1,center:e,extent:n,geolocation:i,isFollowing:y1,isTracking:G1,layers:h,map:Z1,mapsurl:g,maxextent:m,maxzoom:z,minzoom:w,mots:L,notification:_,notificationat:P,notificationbeforelayerid:R,notificationurl:U,permalink:k,realtimeLayer:H1,realtimeurl:c1,setBaseLayer:S1,setIsFollowing:q1,setIsTracking:W1,setMap:s2,setRealtimeLayer:k1,setStation:B1,setStationId:u2,setStationsLayer:M2,setStopSequence:K1,setTrainId:_2,station:o1,stationId:d2,stationsLayer:n2,stopSequence:E1,stopsurl:z1,tenant:A1,trainId:b2,zoom:N1}),[r,t,n1,e,n,i,y1,G1,Z1,g,m,h,z,w,L,_,P,R,U,k,H1,c1,o1,d2,n2,E1,z1,A1,b2,N1]);$2(()=>{l1.current?.dispatchEvent(new r8("mwc:attribute",{baselayer:t,center:e,details:a,extent:n,geolocation:i,layers:h,layertree:d,mapsurl:g,maxextent:m,maxzoom:z,minzoom:w,mots:L,notification:_,notificationat:P,notificationbeforelayerid:R,notificationurl:U,print:q,realtime:$,realtimeurl:c1,search:m1,share:M1,tenant:A1,toolbar:_1,zoom:N1}))},[t,h,e,i,d,_1,g,z,w,L,_,P,U,R,$,c1,m1,A1,N1,n,m,q,M1,a]);let r1=bt(()=>({isExportMenuOpen:K2,isLayerTreeOpen:R2,isShareMenuOpen:X1,layertree:d,lineNetworkPlanLayer:Q2,poisLayer:$1,selectedFeature:I1,selectedFeatures:et,sellingPointsLayer:O2,setIsExportMenuOpen:j2,setIsLayerTreeOpen:T2,setIsShareMenuOpen:z2,setLineNetworkPlanLayer:G2,setPoisLayer:B2,setSelectedFeature:N2,setSelectedFeatures:I2,setSellingPointsLayer:it,setSharedMobilityLayerGroup:o2,setTarifZonenLayer:Ft,sharedMobilityLayerGroup:dt,tarifZonenLayer:lt}),[K2,d,R2,X1,Q2,$1,I1,et,O2,dt,lt]),e1=f4(()=>{T2(!R2)},[R2]),v1=f4(()=>{j2(!1)},[]),C1=bt(()=>({format:j1=>{let e2=[];return j1.forEach(P1=>{/(sbb|rvf)/i.test(P1)||e2.push(P1)}),e2.join(" | ")}}),[]),Q1=bt(()=>({layersFilter:({metadata:j1})=>j1?.["general.filter"]==="stations"}),[]);return $2(()=>{W2&&R2&&(j2(!1),T2(R2),N2(null),_2(null),u2(null),z2(!1))},[R2,W2]),$2(()=>{W2&&K2&&(T2(!1),j2(K2),N2(null),_2(null),z2(!1),u2(null))},[K2,W2]),$2(()=>{W2&&I1&&(T2(!1),j2(!1),_2(null),z2(!1),u2(null))},[I1,W2]),$2(()=>{W2&&d2&&(T2(!1),j2(!1),_2(null),z2(!1),N2(null))},[d2,W2]),$2(()=>{W2&&b2&&(T2(!1),j2(!1),u2(null),z2(!1),N2(null))},[b2,W2]),$2(()=>{W2&&X1&&(T2(!1),j2(!1),u2(null),_2(null),N2(null))},[X1,W2]),Z(ZM.Provider,{value:Sp,children:[Z("style",{children:bp}),Z("style",{children:SU}),Z(xM.Provider,{value:F1,children:Z(Ay.Provider,{value:r1,children:Z("div",{className:"relative size-full border font-sans @container/main",ref:l1,style:y51,children:Z("div",{className:"relative flex size-full flex-col text-base @lg/main:flex-row-reverse",children:[Z(LM,{className:"relative flex-1 overflow-visible ",children:[Z(wM,{...H51}),Z(Fp,{}),Z(Ny,{}),de&&Z(RM,{title:a4.echtzeit,...V51}),Z(S_,{minZoom:10,title:a4.haltestellen,...Q1}),Wt&&Z(Ku,{}),Z(o_,{title:a4.tarifzonen}),Z(Qy,{isQueryable:!0,title:a4.verkaufsstellen}),Z(Ry,{isQueryable:!1,minZoom:10,title:a4.liniennetz}),Z(Uy,{title:a4.pois}),Z(a_,{title:a4.sharedMobility}),Z("div",{className:"pointer-events-none absolute inset-x-2 bottom-2 z-10 flex items-end justify-between gap-2 text-[10px]",children:[Z(A_,{className:"bg-slate-50/70"}),Z(HM,{className:"pointer-events-auto bg-slate-50/70",options:C1})]}),Z("div",{className:"absolute right-2 top-2 z-10 flex flex-col gap-2",children:[ot&&Z(CM,{}),!W2&&De&&Z(ap,{})]}),Xe&&Z("div",{className:"absolute left-2 right-12 top-2 z-10 flex max-h-[90%] min-w-64 max-w-96 flex-col",children:Z(H_,{})}),Z("div",{className:"absolute bottom-10 right-2 z-10 flex flex-col justify-between gap-2",children:Z(v_,{})}),!W2&&D2&&Z(Ty,{isOpen:R2,onClick:e1,title:"Kartendaten",children:Z(Vp,{className:"w-full px-2"})})]}),Z(EM,{className:"z-50 bg-white",ScrollableHandlerProps:_51,children:[de&&b2&&Z(Pe,{children:[Z(t8,{onClose:()=>{_2(null)},title:a4.echtzeit}),Z(sx,{className:"relative overflow-y-auto overflow-x-hidden"})]}),A1&&d2&&Z(Pe,{children:[Z(t8,{onClose:()=>{u2(null)},title:"Station"}),Z(b_,{className:"relative flex flex-col overflow-y-auto overflow-x-hidden p-2"})]}),ce&&I1&&Z(Pe,{children:[Z(t8,{onClose:()=>{N2(null)},title:xU(I1)}),Z(Iy,{className:"relative flex h-full flex-col gap-4 overflow-y-auto overflow-x-hidden p-4"})]}),W2&&De&&K2&&Z(Pe,{children:[Z(t8,{onClose:()=>{j2(!1)},title:"Dr\xFCcken"}),Z(rp,{className:"relative flex flex-col gap-8 overflow-y-auto overflow-x-hidden px-4 py-6"})]}),W2&&D2&&R2&&Z(Pe,{children:[Z(t8,{onClose:()=>{T2(!1)},title:"Layers"}),Z(Vp,{className:" relative flex h-full flex-col overflow-y-auto overflow-x-hidden p-2"})]}),W2&&jt&&X1&&Z(Pe,{children:[Z(t8,{onClose:()=>{z2(!1)},title:"Share"}),Z(Yy,{className:"relative flex h-full flex-col gap-8 overflow-y-auto overflow-x-hidden px-4 py-6"})]})]}),W2&&Z("div",{className:"z-[100] flex justify-around overflow-x-hidden border-t bg-white p-1 @lg/main:block @lg/main:border-r @lg/main:p-0 ",children:[D2&&Z(Py,{className:"border-none",title:"Layers"}),De&&Z(ap,{className:"border-none",title:"Dr\xFCcken"}),jt&&Z(n_,{className:"border-none",title:"Share"})]}),!W2&&De&&K2&&Z(Dy,{onClose:v1,children:Z(rp,{className:"relative flex h-full flex-col overflow-y-auto overflow-x-hidden p-2"})})]})})})})]})}var Ip=ht(B51);EA(Ip,"geops-mobility",["apikey","baselayer","center","extent","maxextent","geolocation","details","layers","layertree","mapsurl","mots","notification","notificationat","notificationurl","notificationbeforelayerid","print","realtime","realtimeurl","search","share","tenant","zoom","permalink"],{shadow:!0});EA(P9,"geops-mobility-search",["apikey","bbox","countrycode","event","field","limit","mots","onselect","params","prefagencies","reflocation","url"],{shadow:!0});})();
|
|
3037
3037
|
/*! Bundled license information:
|
|
3038
3038
|
|
|
3039
3039
|
maplibre-gl/dist/maplibre-gl.js:
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@geops/rvf-mobility-web-component",
|
|
3
3
|
"license": "UNLICENSED",
|
|
4
4
|
"description": "Web components for rvf in the domains of mobility and logistics.",
|
|
5
|
-
"version": "0.1.
|
|
5
|
+
"version": "0.1.30",
|
|
6
6
|
"homepage": "https://rvf-mobility-web-component-geops.vercel.app/",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"main": "index.js",
|
|
@@ -160,8 +160,8 @@ function RvfMobilityMap({
|
|
|
160
160
|
layers = null,
|
|
161
161
|
layertree = "true",
|
|
162
162
|
// mapsurl = "https://style-review.geops.io",
|
|
163
|
-
mapsurl = "https://maps.style-dev.geops.io",
|
|
164
|
-
|
|
163
|
+
// mapsurl = "https://maps.style-dev.geops.io",
|
|
164
|
+
mapsurl = "https://maps.geops.io",
|
|
165
165
|
maxextent = bbox,
|
|
166
166
|
maxzoom = "20",
|
|
167
167
|
minzoom = null,
|