1"use strict";(self.webpackChunkknowit_seed_project=self.webpackChunkknowit_seed_project||[]).push([[6027],{80078(e,t,a){function n(e,t){window._mtm.push({event:"trvTraficInfo",trafikverket:{traficInfo:{action:e,name:t}}})}function i(e,t,a){window._mtm.push({event:"trvsearch",trafikverket:{search:{searchPhrase:e,facet:t,numberOfHits:a}}})}function s(e,t,a){window._mtm.push({event:"trvEvent",trafikverket:{trainMapInfo:{action:t,value:a,category:e}}})}a.d(t,{VZ:()=>n,gN:()=>i,zA:()=>s})},83878(e,t,a){a.d(t,{i:()=>d});var n=a(2971),i=a(98141),s=a(85407),r=a(84232);class o{static eventSource;static createStream(e){o.eventSource=new EventSource(e),o.eventSource.onmessage=async function(e){const t=JSON.parse(e.data),a=(0,i.j)();let o=(0,n.o)();const l=s.u.fromObject(t,a.getCurrentStationSignature).operativeEvents;for(const e of l)for(const t of e.trafficImpacts){if(t.setup(a.getCurrentStationSignature),!t.active)return void o.removeTrainPageMessage(t.id);const e=o.trainpagemessages.findIndex(function(e){return e.trafficImpactId===t.id});if(-1===e){let e=t.operatingLevelForMessage,a=await d.getAffectedStationNamesByLocationSignatures(t.affectedLocationSignatures),n=0!==t.operatingLevelForMessage;null!==t.getHeader()&&t.getHeader().includes("Banarbete")&&(e=3);let i=new r.c(`SeverityCode-${e}`,t.id,t.getModifiedDateTime(),t.getHeader(),t.getDescription(),n,a,t.getStartDateTime(),t.getEndDateTime());o.addTrainPageMessage(i)}else{let a=await d.getAffectedStationNamesByLocationSignatures(t.affectedLocationSignatures);o.trainpagemessages[e].Update(t,a)}}},o.eventSource.onerror=function(e){console.log(`TrainMessageStream error: ${e}`)}}static closeStream(){void 0!==o.eventSource&&o.eventSource.close()}}var l=a(38163),c=a(71689);class d{static async loadMessages(e){const t=(0,n.o)();o.closeStream();const a=await(new l.C).getOperativeEventsForStationSignature(e);if(null===a||0===a.operativeEvents.length)return void(t.trainpagemessages=[]);const i=[];for(const t of a.operativeEvents)for(const a of t.trafficImpacts){if(a.setup(e),!a.active||!a.affectedLocationSignatures.includes(e))continue;const t=await d.getAffectedStationNamesByLocationSignatures(a.affectedLocationSignatures),n=0!==a.operatingLevelForMessage,s=new r.c(`SeverityCode-${a.operatingLevelForMessage}`,a.id,a.getModifiedDateTime(),a.getHeader(),a.getDescription(),n,t,a.getStartDateTime(),a.getEndDateTime());i.push(s)}t.trainpagemessages=i.sort((e,t)=>new Date(t.modifiedDateTime).getTime()-new Date(e.modifiedDateTime).getTime()),o.createStream(a.info.sseUrl)}static async getAffectedStationNamesByLocationSignatures(e){const t=[],a=(0,c.l)().getStations;for(const n of a)e.includes(n.LocationSignature)&&n.AdvertisedLocationName&&t.push(n.AdvertisedLocationName);return t.sort().join(", ")}}},84232(e,t,a){a.d(t,{c:()=>n});a(28835);class n{severityCode="";trafficImpactId="";modifiedDateTime="";header="";description="";hasSeverityLevel=!1;affectedLocation="";startDateTime="";endDateTime="";constructor(e,t,a,n,i,s,r,o,l){this.severityCode=e,this.trafficImpactId=t,this.modifiedDateTime=a,this.header=n,this.description=i,this.hasSeverityLevel=s,this.affectedLocation=r,this.startDateTime=o,this.endDateTime=l}Update(e,t){this.severityCode=`SeverityCode-${e.operatingLevelForMessage}`,this.modifiedDateTime=e.getModifiedDateTime(),this.header=e.getHeader(),this.description=e.getDescription(),this.hasSeverityLevel=0!==e.operatingLevelForMessage,this.affectedLocation=t,this.startDateTime=e.getStartDateTime(),this.endDateTime=e.getEndDateTime()}}},2357(e,t,a){a.d(t,{M:()=>n});class n{apiUrl;apiKey;constructor(e,t){this.apiUrl=e,this.apiKey=t}async getReplacementTrafficByDate(e=new Date){const t=e.toLocaleDateString("sv-SE"),a=`\n <REQUEST>\n <LOGIN authenticationkey='${this.apiKey}' />\n <QUERY objecttype="ReplacementTraffic" namespace="jbs" schemaversion="1" sseurl='true'>\n <FILTER>\n <AND>\n <EQ name="ReplacesTrains.ReplacesTrain.ScheduledDepartureDate" value="${t}"/>\n <IN name="Status" value="confirmed, finished, running"/>\n </AND>\n </FILTER>\n </QUERY>\n </REQUEST>\n `;try{const e=await fetch(this.apiUrl,{method:"POST",headers:{"Content-Type":"text/plain"},body:a});if(!e.ok)throw new Error(`Url: ${e.url} Status: ${e.status} StatusText: ${e.statusText}`);return(await e.json()).RESPONSE.RESULT[0]}catch(e){return void console.error(e)}}
1async getReplacementTrafficForStation(e,t=new Date){const a=new Date(t.getTime()-9e5).toISOString(),n=`\n <REQUEST>\n <LOGIN authenticationkey='${this.apiKey}' />\n <QUERY objecttype="ReplacementTraffic" namespace="jbs" schemaversion="1">\n <FILTER>\n <AND>\n <EQ name="Stops.Stop.PlaceSignature" value="${e}"/>\n <GT name="Stops.Stop.PlannedDepartureTime" value="${a}"/>\n <IN name="Status" value="confirmed, finished, running"/>\n </AND>\n </FILTER>\n </QUERY>\n </REQUEST>\n `;try{const e=await fetch(this.apiUrl,{method:"POST",headers:{"Content-Type":"text/plain"},body:n});if(!e.ok)throw new Error(`Url: ${e.url} Status: ${e.status} StatusText: ${e.statusText}`);return(await e.json()).RESPONSE.RESULT[0]}catch(e){return void console.error(e)}}async streamReplacementTraffic(e,t){const a=new EventSource(e);a.onopen=()=>{console.log("Streaming replacementTraffic")},a.onmessage=e=>{const a=JSON.parse(e.data).RESPONSE.RESULT[0].ReplacementTraffic;t(a)},a.onerror=e=>{console.log(`ReplacementTraffic error: ${e}`)}}async getReplacementTrafficForTrain(e,t=new Date){const a=t.toLocaleDateString("sv-SE"),n=`\n <REQUEST>\n <LOGIN authenticationkey='${this.apiKey}' />\n <QUERY objecttype="ReplacementTraffic" namespace="jbs" schemaversion="1">\n <FILTER>\n <AND>\n <EQ name="ReplacesTrains.ReplacesTrain.AdvertisedTrainIdent" value="${e}"/>\n <EQ name="ReplacesTrains.ReplacesTrain.ScheduledDepartureDate" value="${a}"/>\n <IN name="Status" value="running, planned, finished"/>\n </AND>\n </FILTER>\n </QUERY>\n </REQUEST>\n `;try{const e=await fetch(this.apiUrl,{method:"POST",headers:{"Content-Type":"text/plain"},body:n});if(!e.ok)throw new Error(`Url: ${e.url} Status: ${e.status} StatusText: ${e.statusText}`);return(await e.json()).RESPONSE.RESULT[0]}catch(e){return void console.error(e)}}}},2971(e,t,a){a.d(t,{b:()=>s});var n=a(65899),i=a(27716);function s(e){return void 0===e.Deviation&&e.Deviation.length>0?null:{Id:null!==e.Deviation[0]?.Id?e.Deviation[0]?.Id:"",Header:null!==e.Deviation[0]?.Header?e.Deviation[0]?.Header:"",Description:null!=e.Deviation[0]?.Message?e.Deviation[0]?.Message:"",IconTypeCSS:"message-alert",IsImportantMessage:!0}}const r=(0,n.nY)("trafficmessages",{state:()=>({localstorageguids:(0,i.Mj)("trafficmessages",[]),roadpagemessages:[],importantmessages:[],counties:Array(),messageSpinner:!1,trainpagemessages:Array(),messagePageMessagesByCounty:[],messagePageActiveTab:"allMessages"}),getters:{GetLocalStorageGuids(){return this.localstorageguids},GetRoadPageMessages(){return this.roadpagemessages},GetImportantMessages(){return this.importantmessages},GetImportantMessagesCount(){return this.importantmessages.length},GetRoadPageMessagesCount(){return this.roadpagemessages.length+this.importantmessages.length},GetSortedRoadPageMessages(){const e={ImportantMessages:[],RegulareMessages:[]};if(void 0!==this.importantmessages)for(let t=0;t<this.importantmessages.length;t++)e.ImportantMessages.push(this.importantmessages[t]);for(let t=0;t<this.roadpagemessages.length;t++){const a=this.roadpagemessages[t];a.IsImportantMessage?e.ImportantMessages.push(a):e.RegulareMessages.push(a)}return e},GetTitle(){const e={ImportantMessages:[],RegulareMessages:[]};for(let t=0;t<this.roadpagemessages.length;t++){const a=this.roadpagemessages[t];a.IsImportantMessage?e.ImportantMessages.push(a):e.RegulareMessages.push(a)}for(let t=0;t<this.importantmessages.length;t++){const a=this.importantmessages[t];e.ImportantMessages.push(a)}return e.ImportantMessages.length>0?1===e.ImportantMessages.length?"Viktigt meddelande":"Viktigt meddelande ("+e.ImportantMessages.length+")":1===e.RegulareMessages.length?"Meddelanden":"Meddelanden ("+e.RegulareMessages.length+")"},ShouldAnimateBell(){if(0===this.localstorageguids.length&&this.roadpagemessages.length>0)return!0;for(let e=0;e<this.roadpagemessages.length;e++){const t=this.roadpagemessages[e].Id;if(!1===this.localstorageguids.includes(t))return!0}return!1},ShowImportantModal(){for(let e=0;e<this.roadpagemessages.length;e++)if(this.roadpagemessages[e].IsImportantMessage){const t=this.roadpagemessages[e].Id;if(!1===this.localstorageguids.includes(t))return!0}for(let e=0;e<this.importantmessages.length;e++)if(this.importantmessages[e].IsImportantMessage){const t=this.importantmessages[e].Id;if(!1===this.localstorageguids.includes(t))return!0}return!1},getSelectedCounties(){return this.counties.filter(e=>e.Selected)}},actions:{setMessageSpinner(e){this.messageSpinner=e},addLocalStorageGuid(e){this.localstorageguids.includes(e)||this.localstorageguids.push(e)},removeLocalStorageGuid(e){this.localstorageguids.splice(e,1)},removeAllLocalStorageGuids(){this.localstorageguids=[]},addRoadPageMessages(e){this.roadpagemessages.push(e)},addImportantMessages(e,t){this.importantmessages.some(e=>e.Id===t)||this.importantmessages.push(e)}
1,setSelectedForAllCounties(e){this.counties.forEach(function(t){t.Selected=e})},addTrainPageMessage(e){this.trainpagemessages.push(e)},removeTrainPageMessage(e){const t=this.trainpagemessages.findIndex(function(t){return t.trafficImpactId===e});t>-1&&this.trainpagemessages.splice(t,1)},setSelectedForCounty(e,t){this.counties.find(t=>t.Id===e).Selected=t},setMessagesActiveByTrafficType(e){this.messagePageMessagesByCounty.forEach(function(t){t[1].forEach(function(t){t.active="allMessages"===e||t.type===e})})},setMessagePageActiveTab(e){this.messagePageActiveTab=e}}});a.d(t,["o",0,r])},41304(e,t,a){a.d(t,{A:()=>h});var n=a(41425);const i=["id","data-lastupdatedatetime"],s={class:"h4"},r={class:"message"},o={class:"date"},l=(0,n.Lk)("strong",null,"Uppdaterad: ",-1),c=["innerHTML"],d=(0,n.Lk)("h4",{class:"h5 mt-3"},"Stationer där tågtrafiken kan påverkas:",-1),u={class:"dl-grid mt-2 mb-0"},m=(0,n.Lk)("dt",null,"Starttid:",-1),p={class:"ms-0"},g=(0,n.Lk)("dt",null,"Sluttid:",-1),v={class:"ms-0"};const f={name:"train-message",props:{message:{type:Object,required:!0}},setup(){}};const h=(0,a(66262).A)(f,[["render",function(e,t,a,f,h,k){return(0,n.uX)(),(0,n.CE)("div",{class:(0,n.C4)("traffic-message "+a.message.severityCode),id:a.message.trafficImpactId,"data-lastupdatedatetime":a.message.modifiedDateTime},[(0,n.Lk)("h3",s,[(0,n.Lk)("span",r,(0,n.v_)(a.message.header),1),(0,n.Lk)("span",o,[l,(0,n.eW)(" "+(0,n.v_)(a.message.modifiedDateTime),1)])]),(0,n.Lk)("p",{innerHTML:a.message.description},null,8,c),d,(0,n.eW)(" "+(0,n.v_)(a.message.affectedLocation)+" ",1),(0,n.Lk)("dl",u,[m,(0,n.Lk)("dd",p,(0,n.v_)(a.message.startDateTime),1),g,(0,n.Lk)("dd",v,(0,n.v_)(a.message.endDateTime),1)])],10,i)}]])},25580(e,t,a){a.d(t,{A:()=>s});var n=a(41425);const i=["innerHTML"],s=(0,n.pM)({__name:"InformationPanel",props:{disclaimerText:{}},setup:e=>(e,t)=>((0,n.uX)(),(0,n.CE)("div",{innerHTML:e.disclaimerText},null,8,i))})},43189(e,t,a){a.d(t,{A:()=>ze});var n=a(41425),i=a(74353),s=a.n(i),r=(a(39077),a(79027),a(84232),a(2971)),o=a(41304),l=(a(8011),a(71689)),c=a(27995);const d={key:0,class:"accordion group-list traffic-accordion awaitTime-messages"},u={class:"panel-group",role:"tablist","aria-multiselectable":"true"},m={class:"panel"},p={class:"panel-heading",role:"tab"},g={class:"panel-title"},v={"aria-expanded":"true","aria-controls":"awaitTrainArea",href:"#awaitTrainArea","data-bs-target":"#awaitTrainArea","data-bs-toggle":"collapse",id:"awaitTime"},f=(0,n.Lk)("span",null,"Tåg som inväntar ny tid",-1),h={class:"badge"},k={class:"panel-collapse collapse show",id:"awaitTrainArea",role:"tabpanel","aria-expanded":"false","aria-labelledby":"awaitTime"},S={class:"table time-table station table-hover"},L=(0,n.Lk)("th",{scope:"col"},"Tid",-1),T={scope:"col",class:"ti-time"},y={scope:"col",class:"ti-track"},A={scope:"col",class:"ti-track"},b={"aria-labelledby":"",tabindex:"0"},E={class:"time"},C={"aria-label":"Inställt",class:"m-0 small text-decoration-line-through text-muted"},w=(0,n.Lk)("strong",{class:"massage-badge"},[(0,n.Lk)("span",{class:"m-0 badge text-bg-warning estimate"},[(0,n.Lk)("span",null,"Invänta tid"),(0,n.Lk)("span",null," --:--")]),(0,n.Lk)("span",{class:"format-estimated-time"})],-1),I={class:"station","data-th":"Station"},D={class:"fw-bold m-0"},_={class:"passing"},M={class:"track"},R={class:"train"},N={href:""},x=(0,n.pM)({__name:"awaittime",props:{selectedStation:{},trainAnnouncementApi:{}},setup(e){const{convertDateToHoursAndMinutes:t}=(0,c.S)(),a=(0,l.l)(),i=(0,n.Kh)({trains:[],tableHeadInformation:{},show:!1}),s=e;return(async()=>{const e=s.selectedStation;if(null==e)return;i.tableHeadInformation="Ankomst"===e.ArrivalOrDeparture?{direction:"Ankomst",from:"Från",track:"Spår",train:"Tåg",information:"Information"}:{direction:"Avgång",from:"Till",track:"Spår",train:"Tåg",information:"Information"};const n=await s.trainAnnouncementApi.getAwaitTimeTrains(e.LocationSignature,e.ArrivalOrDeparture);if(!n?.TrainAnnouncement?.length)return void(i.show=!1);const r="Ankomst"===e.ArrivalOrDeparture;i.trains=n.TrainAnnouncement.map(e=>{const n=r?e.FromLocation?.[0]?.LocationName:e.ToLocation?.[0]?.LocationName,i=n?a.get
1StationByLocationSignature(n)?.AdvertisedLocationName??n:"",s=r?e.ViaFromLocation?.[0]?.LocationName:e.ViaToLocation?.[0]?.LocationName,o=s?a.getStationByLocationSignature(s)?.AdvertisedLocationName??s:"";return{advertisedTimeAtLocation:t(e.AdvertisedTimeAtLocation?.toString()??""),advertisedLocationName:i,viaFromOrToLocationName:o,trackAtLocation:e.TrackAtLocation??"",advertisedTrainIdent:e.AdvertisedTrainIdent,productInformations:e.ProductInformation}}),i.show=!0})(),(e,t)=>i.show?((0,n.uX)(),(0,n.CE)("div",d,[(0,n.Lk)("div",u,[(0,n.Lk)("div",m,[(0,n.Lk)("div",p,[(0,n.Lk)("h3",g,[(0,n.Lk)("a",v,[f,(0,n.Lk)("span",h,[(0,n.Lk)("data",null,(0,n.v_)(i.trains.length),1)])])])]),(0,n.Lk)("div",k,[(0,n.Lk)("table",S,[(0,n.Lk)("thead",null,[(0,n.Lk)("tr",null,[L,(0,n.Lk)("th",T,(0,n.v_)(i.tableHeadInformation.from),1),(0,n.Lk)("th",y,(0,n.v_)(i.tableHeadInformation.track),1),(0,n.Lk)("th",A,(0,n.v_)(i.tableHeadInformation.train),1)])]),(0,n.Lk)("tbody",null,[((0,n.uX)(!0),(0,n.CE)(n.FK,null,(0,n.pI)(i.trains,e=>((0,n.uX)(),(0,n.CE)("tr",b,[(0,n.Lk)("td",E,[(0,n.Lk)("span",C,(0,n.v_)(e.advertisedTimeAtLocation),1),w]),(0,n.Lk)("td",I,[(0,n.Lk)("div",D,(0,n.v_)(e.advertisedLocationName),1),(0,n.Lk)("div",_,(0,n.v_)(e.viaFromOrToLocationName),1)]),(0,n.Lk)("td",M,[(0,n.Lk)("span",null,(0,n.v_)(e.trackAtLocation),1)]),(0,n.Lk)("td",R,[(0,n.Lk)("a",N,(0,n.v_)(e.advertisedTrainIdent),1)])]))),256))])])])])])])):(0,n.Q3)("v-if",!0)}}),X=x;var Q=a(80078),O=a(26055),P=a(83822),$=a(58266);var B=a(60525);const F={role:"status","aria-live":"polite","aria-atomic":"true",class:"visually-hidden"},U={key:0,class:"p-2"},W=[(0,n.Lk)("div",{class:"d-flex align-items-center gap-2"},[(0,n.Lk)("div",{class:"spinner-border spinner-border-sm text-primary",role:"status"}),(0,n.Lk)("p",{class:"m-0"},"Laddar tidtabell.....")],-1)],K={key:1,class:"d-flex flex-column"},H={class:"train-panel__header mt-3"},z={id:"stheader",class:"h4 mt-0"},V=["href"],G=(0,n.Lk)("span",{class:"fa fa-map-marker-alt me-2"},null,-1),j={class:"train-panel__meta"},Y={key:0},J={class:"train-panel__meta__actions"},q=(0,n.Lk)("legend",{class:"visually-hidden"}," Välj mellan avgÃ¥ende och ankommande tÃ¥g. Ãndrar innehÃ¥ll pÃ¥ sidan vid val. ",-1),Z={class:"d-flex gap-3 toggle-direction"},ee=["aria-checked","checked"],te=(0,n.Lk)("label",{class:"btn",for:"option1","aria-label":"AvgÃ¥ende. Ãndrar innehÃ¥ll pÃ¥ sidan vid val."}," AvgÃ¥ende ",-1),ae=["aria-checked","checked"],ne=(0,n.Lk)("label",{class:"btn",for:"option2","aria-label":"Ankommande. Ãndrar innehÃ¥ll pÃ¥ sidan vid val."}," Ankommande ",-1),ie=(0,n.Lk)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",width:"18",height:"18",fill:"currentColor","aria-hidden":"true"},[(0,n.Lk)("path",{d:"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM224 160a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-8 64l48 0c13.3 0 24 10.7 24 24l0 88 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-64-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"})],-1),se={key:0,class:"tab-content trv-tab-content ti-list-train",style:{}},re={class:"accordion group-list traffic-accordion station-messages"},oe={class:"panel-group",id:"accordion2",role:"tablist","aria-multiselectable":"true"},le={class:"panel",id:"trafficMessageHolder"},ce={class:"panel-heading",role:"tab"},de={class:"panel-title"},ue={class:"collapsed","aria-expanded":"false","aria-controls":"trainMessageAccordion",href:"#trainMessageAccordion","data-bs-toggle":"collapse",id:"messages","aria-label":"trainMessages.length === 1 ? 'Det finns 1 meddelande' : `Det finns ${trainMessages.length} meddelanden`"},me={class:"badge","aria-hidden":"true"},pe={key:0},ge={class:"panel-collapse collapse",id:"trainMessageAccordion",role:"tabpanel","aria-expanded":"false","aria-labelledby":"messages",style:{}},ve={key:2,class:"bg-secondary-subtle table-tm__bg"},fe=["aria-label"],he={class:"visually-hidden"},ke=(0,n.Lk)("th",{scope:"col"}," Tid ",-1),Se={key:0,scope:"col"},Le={key:1,scope:"col"},Te=(0,n.Lk)("th",{scope:"col"}," SpÃ¥r ",-1),ye=(0,n.Lk)("th",{scope:"col"}," TÃ¥g ",-1),Ae={key:2,scope:"col",class:"c-replacement__col"},be=["onClick"],Ee=["aria-hidden"],Ce={key:0,class:"m-0 badge text-bg-warning estimate"},we=(0,n.Lk)("span",null,"Beräknas",-1),Ie={key:1,class:"m-0"},De={class:"fw-bold m-0"},_e={class:"small m-0"},Me={class:"m-0"},Re={class:"small m-0"},Ne=["onClick"],xe=(0,n.Lk)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",width:"18",height:"18",fill:"
1currentColor","aria-hidden":"true"},[(0,n.Lk)("path",{d:"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM224 160a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-8 64l48 0c13.3 0 24 10.7 24 24l0 88 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-64-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"})],-1),Xe={key:0,class:"badge text-bg-warning m-0"},Qe={key:1,class:"m-0 fw-semibold"},Oe={key:2,class:"small m-0"},Pe={key:3,class:"small m-0"},$e={key:4,class:"small m-0"},Be={key:0,class:"c-replacement__col"},Fe=["onClick"],Ue=(0,n.Lk)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",width:"18",height:"18",fill:"currentColor","aria-hidden":"true"},[(0,n.Lk)("path",{d:"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM224 160a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-8 64l48 0c13.3 0 24 10.7 24 24l0 88 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-64-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"})],-1),We={key:1,class:"c-replacement__col"},Ke=(0,n.Lk)("p",{class:"disclaimer m-0 bg-secondary text-white p-2 text-center"},"Spåruppgifterna är preliminära och kan ändras",-1),He=(0,n.pM)({__name:"StationPanel",props:{parentName:{},selectedStation:{},messagesText:{},mapUrl:{},replacementTrafficByTodaysDate:{},trainAnnouncementApi:{}},emits:["update-station","update-train","open-replacementtraffic-modal"],setup(e,{emit:t}){const a=e,{filterReplacementTrafficForStation:i,filterReplacementTrafficForTrainAndStation:d}=(0,P.F)(),{convertDateToTime:u,convertDateToHoursAndMinutes:m,getDeviationClass:p}=(0,c.S)(),g=(0,l.l)(),v=(0,r.o)(),f=(0,n.EW)(()=>v.trainpagemessages),h=e=>{const t=[e.TimeAtLocationWithSeconds,e.PlannedEstimatedTimeAtLocation,e.EstimatedTimeAtLocation],a=s()(e.AdvertisedTimeAtLocation);for(const e of t)if(null!=e)return s()(e).diff(a,"minute")>=1?e:null;return null},k=e=>{if(!e)return"";if(e.Canceled)return"small text-decoration-line-through text-muted";const t=[e.TimeAtLocationWithSeconds,e.TimeAtLocation,e.PlannedEstimatedTimeAtLocation,e.EstimatedTimeAtLocation],a=s()(e.AdvertisedTimeAtLocation);for(const e of t)if(null!=e)return s()(e).diff(a,"minute")>=1?"small text-decoration-line-through text-muted":"";return""},S=e=>e.Deviation?.some(e=>e.Code===O.k.deviation.TRACK_CHANGED)??!1,L=e=>{const t="arrival"===a.selectedStation.ArrivalOrDeparture?e.FromLocation?.[0]?.LocationName:e.ToLocation?.[0]?.LocationName;return t?g.getStationByLocationSignature(t)?.AdvertisedLocationName??"":""},T=e=>{const t="arrival"===a.selectedStation.ArrivalOrDeparture?e.ViaFromLocation:e.ViaToLocation;return t?.length?"via "+t.map(e=>g.getStationByLocationSignature(e.LocationName)?.AdvertisedLocationName??e.LocationName).join(", "):""},y=e=>e.ProductInformation?e.ProductInformation[0]?.Description??"":"",A=e=>(e=>!(!e.ProductInformation||e.ProductInformation.length<2)&&e.ProductInformation.some(e=>e?.Code===O.k.filter.COMMUTER_TRAIN))(e)?`SL ${e.ProductInformation[1]?.Description}`:`${e.AdvertisedTrainIdent}`,{streamedAnnouncements:b,openStream:E,closeStream:C}=function(){const e=(0,n.KR)([]);let t=null;function a(){t&&(console.log("[useStationStream] Close stationStream"),t.close(),t=null),e.value=[]}return(0,n.xo)(()=>{a()}),{streamedAnnouncements:e,openStream:function(n){console.log("[useStationStream] Open stationStream"),a(),t=new EventSource(n),t.onmessage=t=>{const a=JSON.parse(t.data);e.value=a.RESPONSE.RESULT[0].TrainAnnouncement},t.onerror=e=>{console.log(`StationAnnouncementStream error: ${e}`)}},closeStream:a}}();(0,n.wB)(()=>a.selectedStation,(e,t)=>{C(),e?.SseUrl&&E(e.SseUrl)},{immediate:!0}),(0,n.wB)(b,e=>{a.selectedStation&&e.length&&a.selectedStation.applyStreamUpdates(e)});const w=t,I=(0,n.EW)(()=>
1{if(a.selectedStation?.StationLoading)return"Laddar tidtabell...";if(a.selectedStation&&a.selectedStation.Trains.length>0){const e="arrival"===a.selectedStation.ArrivalOrDeparture?"ankommande":"avgÃ¥ende";return`Vald station: ${a.selectedStation.AdvertisedLocationName}. Visar ${a.selectedStation.Trains.length} ${e} tÃ¥g.`}return""});(0,n.EW)(()=>!(!a.replacementTrafficByTodaysDate||!a.selectedStation)&&a.selectedStation.Trains.some(e=>D(e)));function D(e){const{LocationSignature:t,AdvertisedLocationName:n}=a.selectedStation;return a.replacementTrafficByTodaysDate.some(a=>{const i=a.ReplacesTrains.ReplacesTrain.some(t=>t.AdvertisedTrainIdent===e.AdvertisedTrainIdent),s=a.Stops.Stop.some(e=>e.PlaceSignature===t||e.StopDescription?.includes(n));return i&&s})}const _=(0,n.EW)(()=>i(a.replacementTrafficByTodaysDate,a.selectedStation.Trains,a.selectedStation.LocationSignature,a.selectedStation.AdvertisedLocationName,a.selectedStation.ArrivalOrDeparture));function M(e){return!!a.replacementTrafficByTodaysDate&&a.replacementTrafficByTodaysDate.some(t=>t.ReplacesTrains.ReplacesTrain.some(t=>t.AdvertisedTrainIdent===e.AdvertisedTrainIdent)&&t.Stops.Stop.some(e=>e.PlaceSignature===a.selectedStation.LocationSignature||e.StopDescription?.includes(a.selectedStation.AdvertisedLocationName)))}function R(e){const t={trainAdvertisedId:e.AdvertisedTrainIdent,locationSignature:e.LocationSignature,advertisedLocationName:g.getStationByLocationSignature(e.LocationSignature)?.AdvertisedLocationName??"",arrivalOrDeparture:a.selectedStation.ArrivalOrDeparture,replacementTraffic:d(a.replacementTrafficByTodaysDate,e.AdvertisedTrainIdent,a.selectedStation.LocationSignature,a.selectedStation.AdvertisedLocationName)};(0,Q.zA)("Tagtrafikinformation â Stationsvy","Klick pÃ¥ ersättningstrafik","Ersättningstrafik för ett tÃ¥g"),w("open-replacementtraffic-modal",t)}function N(e){w("update-station",a.selectedStation.LocationSignature,e)}const x=()=>{(0,Q.zA)("Tagtrafikinformation â Stationsvy - Tabell ","Visa pÃ¥ karta","")};return(e,t)=>{return(0,n.uX)(),(0,n.CE)(n.FK,null,[(0,n.Q3)(" Persistent screen reader announcement region - WCAG 2.1 SC 4.1.3 "),(0,n.Lk)("div",F,(0,n.v_)(I.value),1),e.selectedStation?.stationLoading?((0,n.uX)(),(0,n.CE)("div",U,W)):(0,n.Q3)("v-if",!0),e.selectedStation&&!e.selectedStation?.stationLoading?((0,n.uX)(),(0,n.CE)("div",K,[(0,n.Lk)("div",H,[(0,n.Lk)("h2",z,(0,n.v_)(e.selectedStation.AdvertisedLocationName),1),"mapComponent"!==a.parentName?((0,n.uX)(),(0,n.CE)("a",{key:0,onClick:x,href:e.mapUrl+"&Station="+e.selectedStation.AdvertisedLocationName+"&ArrDep="+e.selectedStation.ArrivalOrDeparture,class:"btn btn-outline-primary w-auto h-auto",id:"trainMapBtn"},[G,(0,n.eW)("Visa pÃ¥ karta ")],8,V)):(0,n.Q3)("v-if",!0)]),(0,n.Lk)("div",j,[e.selectedStation.Trains.length?((0,n.uX)(),(0,n.CE)("p",Y," AvgÃ¥ngsdatum: "+(0,n.v_)((i=e.selectedStation.Trains[0]?.AdvertisedTimeAtLocation,i?B.r.formatSwedishDate(i):"")),1)):(0,n.Q3)("v-if",!0),(0,n.Lk)("div",J,[(0,n.Lk)("fieldset",null,[q,(0,n.Lk)("div",Z,[(0,n.Lk)("input",{type:"radio",class:"btn-check",name:"options",id:"option1",autocomplete:"off",value:"departure","aria-checked":"departure"===e.selectedStation.ArrivalOrDeparture,checked:"departure"===e.selectedStation.ArrivalOrDeparture,onChange:t[0]||(t[0]=e=>N("departure"))},null,40,ee),te,(0,n.Lk)("input",{type:"radio",class:"btn-check",name:"options",id:"option2",autocomplete:"off",value:"arrival","aria-checked":"arrival"===e.selectedStation.ArrivalOrDeparture,checked:"arrival"===e.selectedStation.ArrivalOrDeparture,onChange:t[1]||(t[1]=e=>N("arrival"))},null,40,ae),ne])]),(0,n.Q3)("Ersättningstrafik för flera sträckor pÃ¥ stationen"),_.value.length>0?((0,n.uX)(),(0,n.CE)("button",{key:0,id:"showReplacementTrafficForStation",type:"button",onClick:t[2]||(t[2]=e=>function(){const e={trainAdvertisedId:"",locationSignature:a.selectedStation.LocationSignature,advertisedLocationName:a.selectedStation.AdvertisedLocationName,arrivalOrDeparture:a.selectedStation.ArrivalOrDeparture,replacementTraffic:_.value};(0,Q.zA)("Tagtrafikinformation â Stationsvy","Klick pÃ¥ ersättningstrafik","Ersättningstrafik pÃ¥ alla sträckor"),w("open-replacementtraffic-modal",e)}()),class:"btn btn-outline-primary d-flex align-items-center gap-1","data-bs-toggle":"modal","data-bs-target":"#replacementTrafficModal"}
1,[ie,(0,n.eW)(" Visa all ersättningstrafik för stationen ("+(0,n.v_)(_.value.length)+") ",1)])):(0,n.Q3)("v-if",!0)])]),(0,n.Q3)("Meddelanden för stationen"),f.value.length>0?((0,n.uX)(),(0,n.CE)("div",se,[(0,n.Lk)("div",re,[(0,n.Lk)("div",oe,[(0,n.Lk)("div",le,[(0,n.Lk)("div",ce,[(0,n.Lk)("h2",de,[(0,n.Lk)("a",ue,[(0,n.Lk)("span",null,(0,n.v_)(e.messagesText),1),(0,n.eW)(),(0,n.Lk)("span",me,[f.value.length>0?((0,n.uX)(),(0,n.CE)("data",pe,(0,n.v_)(f.value.length),1)):(0,n.Q3)("v-if",!0)])])])]),(0,n.Lk)("div",ge,[((0,n.uX)(!0),(0,n.CE)(n.FK,null,(0,n.pI)(f.value,(e,t)=>((0,n.uX)(),(0,n.Wv)(o.A,{key:t,message:e},null,8,["message"]))),128))])])])])])):(0,n.Q3)("v-if",!0),(0,n.bF)(X,{"selected-station":e.selectedStation,"train-announcement-api":e.trainAnnouncementApi},null,8,["selected-station","train-announcement-api"])])):(0,n.Q3)("v-if",!0),!e.selectedStation?.stationLoading&&e.selectedStation?((0,n.uX)(),(0,n.CE)("div",ve,[(0,n.Lk)("table",{"data-station-table":"",class:"table table-tm table-tm--station mb-0","aria-live":"polite","aria-label":`Trafikinformation om ${"arrival"===e.selectedStation.ArrivalOrDeparture?"ankommande":"avgående"} tåg för ${e.selectedStation.AdvertisedLocationName}`},[(0,n.Lk)("caption",he," Trafikinformation om "+(0,n.v_)("arrival"===e.selectedStation.ArrivalOrDeparture?"ankommande":"avgående")+" tåg för "+(0,n.v_)(e.selectedStation.AdvertisedLocationName),1),(0,n.Lk)("thead",null,[(0,n.Lk)("tr",null,[ke,"arrival"===e.selectedStation.ArrivalOrDeparture?((0,n.uX)(),(0,n.CE)("th",Se," Från ")):(0,n.Q3)("v-if",!0),"departure"===e.selectedStation.ArrivalOrDeparture?((0,n.uX)(),(0,n.CE)("th",Le," Till ")):(0,n.Q3)("v-if",!0),Te,ye,e.selectedStation.Trains.some(e=>D(e))?((0,n.uX)(),(0,n.CE)("th",Ae," Ersättningstrafik ")):(0,n.Q3)("v-if",!0)])]),(0,n.Lk)("tbody",null,[((0,n.uX)(!0),(0,n.CE)(n.FK,null,(0,n.pI)(e.selectedStation.Trains,(e,a)=>((0,n.uX)(),(0,n.CE)("tr",{key:a,onClick:t=>async function(e){const t=$.n.getAdvertisedIdOrUniqueId(e);w("update-train",t)}(e)},[(0,n.Q3)(" Tid "),(0,n.Lk)("td",null,[(0,n.Lk)("p",{class:(0,n.C4)(["m-0",k(e)]),"aria-hidden":""!==k(e)},(0,n.v_)((0,n.R1)(m)(e.AdvertisedTimeAtLocation)),11,Ee),null!=e.EstimatedTimeAtLocation?((0,n.uX)(),(0,n.CE)("p",Ce,[we,(0,n.Lk)("span",null,(0,n.v_)((0,n.R1)(m)(e.EstimatedTimeAtLocation)),1)])):null!=h(e)?((0,n.uX)(),(0,n.CE)("p",Ie,(0,n.v_)((0,n.R1)(m)(h(e))),1)):(0,n.Q3)("v-if",!0)]),(0,n.Q3)(" Från / Till "),(0,n.Lk)("td",null,[(0,n.Lk)("p",De,(0,n.v_)(L(e)),1),(0,n.Lk)("p",_e,(0,n.v_)(T(e)),1),e.Deviation?.length>0?((0,n.uX)(!0),(0,n.CE)(n.FK,{key:0},(0,n.pI)(e.Deviation,e=>((0,n.uX)(),(0,n.CE)("p",Me,[(0,n.Lk)("span",{class:(0,n.C4)((0,n.R1)(p)(e))},(0,n.v_)(e.Description),3)]))),256)):(0,n.Q3)("v-if",!0),(0,n.Lk)("p",Re,(0,n.v_)(y(e)),1),(0,n.Q3)(" Mobil knapp "),M(e)?((0,n.uX)(),(0,n.CE)("button",{key:1,id:"btnReplacementTraffic",type:"button",onClick:[t=>R(e),t[3]||(t[3]=(0,n.D$)(()=>{},["stop"]))],class:"btn btn-outline-primary btn-sm d-flex align-items-center gap-1 d-md-none my-2 c-replacement-btn-modal","data-bs-toggle":"modal","data-bs-target":"#replacementTrafficModal"},[xe,(0,n.eW)(" Visa ersättningstrafik ")],8,Ne)):(0,n.Q3)("v-if",!0)]),(0,n.Q3)(" Spår "),(0,n.Lk)("td",null,[S(e)?((0,n.uX)(),(0,n.CE)("p",Xe,(0,n.v_)(e.TrackAtLocation),1)):((0,n.uX)(),(0,n.CE)("p",Qe,(0,n.v_)(e.TrackAtLocation),1)),"Avgang"===e.ActivityType&&void 0!==e.TimeAtLocationWithSeconds?((0,n.uX)(),(0,n.CE)("p",Oe," Har avgått ")):"Ankomst"===e.ActivityType&&void 0!==e.TimeAtLocationWithSeconds?((0,n.uX)(),(0,n.CE)("p",Pe," Har ankommit ")):((0,n.uX)(),(0,n.CE)("p",$e))]),(0,n.Q3)(" Tåg "),(0,n.Lk)("td",null,[(0,n.Lk)("a",{href:"#",onClick:t[4]||(t[4]=(0,n.D$)(()=>{},["prevent"]))},(0,n.v_)(A(e)),1)]),(0,n.Q3)(" Ersättningstrafik "),D(e)?((0,n.uX)(),(0,n.CE)("td",Be,[D(e)?((0,n.uX)(),(0,n.CE)("button",{key:0,type:"button",onClick:[t=>R(e),t[5]||(t[5]=(0,n.D$)(()=>{},["stop"]))],class:"btn btn-outline-primary btn-sm d-flex align-items-center gap-2","data-bs-toggle":"modal","data-bs-target":"#replacementTrafficModal"},[Ue,(0,n.eW)(" Visa ersättningstrafik ")],8,Fe)):(0,n.Q3)("v-if",!0)])):((0,n.uX)(),(0,n.CE)("td",We))],8,be))),128))])],8,fe)])):(0,n.Q3)("v-if",!0),Ke],64);var i}}}),ze=He},30155(e,t,a){a.d(t,{A:()=>ge});var n=a(41425),i=a(79027),s=a(71689),r=a(33107),o=a(80078),l=a(27995),c=a(83822),d=(a(99970),a(26055)),u=a(74353),m=a.n(u),p=a(60525);var g=a(58266);const v={role:"status","aria-live":"polite","aria-atomic":"true",class:"visually-hidden"},f={key:0},h={class:"train-panel__header"},k={class:"h4 mt-0 d-flex flex-column gap-2"},S={class:"train-panel__header__numb fw-semibold"},L=["href"],T=(0,n.Lk)("span",{class:"fa fa-map-marker-alt me-2"},null,-1),y={class:"train-panel__meta"},A={class:"pb-1"},b={class:"span-columns"},E={key:0,class:"span-columns"},C={key:1,class:"span-columns"},w=["aria-label"],I=[(0,n.Lk)("circle",{cx:"8",cy:"8",r:"8"},null,-1)],D=(0,n.Lk)("span",{class:"sr-only"},"Tåget är ",-1),_={key:3,class:"span-columns time-update"},M={class:"rounded-pill px-3 bg-secondary text-white"},R={key:0,class:"pt-2 px-1 pb-2 train-panel__collapse"},N=(0,n.Lk)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",fill:"currentColor",class:"bi bi-chevron-down",viewBox:"0 0 16 16"},[(0,n.Lk)("path",{"fill-rule":"evenodd",d:"M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z"})],-1),x={key:1,class:"train-panel__info bg-white"},X=(0,n.Lk)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",fill:"currentColor",class:"bi bi-chevron-up",viewBox:"0 0 16 16"},[(0,n.Lk)("path",{"fill-rule":"evenodd",d:"M7.646 4.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1-.708.708L8 5.707l
1-5.646 5.647a.5.5 0 0 1-.708-.708z"})],-1),Q={class:"collapse",id:"otherInfo"},O={class:"p-2"},P={class:"table-tm__bg position-relative bg-secondary-subtle"},$=[(0,n.Lk)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"25",height:"25",fill:"currentColor",class:"bi bi-arrow-down-circle-fill",viewBox:"0 0 16 16"},[(0,n.Lk)("path",{d:"M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM8.5 4.5a.5.5 0 0 0-1 0v5.793L5.354 8.146a.5.5 0 1 0-.708.708l3 3a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L8.5 10.293V4.5z"})],-1)],B=["aria-label"],F={class:"visually-hidden"},U=(0,n.Lk)("th",{scope:"col"},"Ankomst",-1),W=(0,n.Lk)("th",{scope:"col"},"AvgÃ¥ng",-1),K=(0,n.Lk)("th",{scope:"col"},"Station",-1),H=(0,n.Lk)("th",{scope:"col"},"SpÃ¥r",-1),z={key:0,scope:"col",class:"c-replacement__col"},V=["onClick"],G={key:0},j={key:1},Y=["aria-hidden"],J={key:0,class:"m-0"},q={key:2},Z={key:3},ee=["aria-hidden"],te={key:0,class:"m-0"},ae={key:0,class:"fw-bold"},ne=["href"],ie={key:0,class:"small m-0"},se={class:"small m-0"},re=["id","onClick"],oe=(0,n.Lk)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",width:"18",height:"18",fill:"currentColor","aria-hidden":"true"},[(0,n.Lk)("path",{d:"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM224 160a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-8 64l48 0c13.3 0 24 10.7 24 24l0 88 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-64-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"})],-1),le={key:0,class:"badge text-bg-warning m-0"},ce={key:1},de={key:4,class:"c-replacement__col"},ue=["id","onClick"],me=(0,n.Lk)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",width:"18",height:"18",fill:"currentColor","aria-hidden":"true"},[(0,n.Lk)("path",{d:"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM224 160a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-8 64l48 0c13.3 0 24 10.7 24 24l0 88 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-64-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"})],-1),pe="Tagtrafikinformation â Karta ",ge=(0,n.pM)({__name:"TrainPanel",props:{selectedTrain:{},parentName:{},mapUrl:{},replacementTrafficByTodaysDate:{}},emits:["update-station","update-train","open-replacementtraffic-modal"],setup(e,{emit:t}){const{filterReplacementTrafficForTrainAndStation:a}=(0,c.F)(),{getDeviationClass:u}=(0,l.S)(),ge=(0,s.l)(),ve=(0,r.l)(),fe=(0,n.EW)(()=>ve.getIsMobile),he=(0,n.Kh)({text:"Visa mer"}),ke=(0,n.KR)(!1),Se=(0,n.KR)(null),Le=(0,n.KR)(null),Te=(0,n.KR)(null),ye=(0,n.KR)([]),Ae=e=>e.replace(new RegExp(i.XF.SIG_REGEX.source,"g"),(e,t)=>ge.getStationByLocationSignature(t)?.AdvertisedLocationName??t),be=e,Ee=(0,n.KR)(null),{loading:Ce,modifiedTime:we,streamedAnnouncements:Ie,openStream:De,closeStream:_e}=function(){const e=(0,n.KR)(!1),t=(0,n.KR)(""),a=(0,n.KR)([]);let i=null;function s(){i&&(console.log("[useTrainStream] Close trainStream"),i.close(),i=null),a.value=[],t.value=""}return(0,n.xo)(()=>{s()}),{loading:e,modifiedTime:t,streamedAnnouncements:a,openStream:function(e){s(),console.log("[useTrainStream] Open trainStream"),i=new EventSource(e),i.onmessage=e=>{const n=JSON.parse(e.data);a.value=n.RESPONSE.RESULT[0].TrainAnnouncement,t.value=`Uppdaterades kl. ${p.r.formatSwedishTime(m()())}`},i.onerror=e=>{console.log(`TrainAnnouncementSingleStream error: ${e}`)}},closeStream:s}}();(0,n.wB)(()=>be.selectedTrain,e=>{_e(),Ee.value=e,e?.SseUrl&&De(e.SseUrl)},{immediate:!0}),(0,n.wB)(Ie,async e=>{Ee.value&&e.length&&(Ee.value.applyStreamUpdates(e),await(0,n.dY)(),Ue())});const Me=(0,n.EW)(()=>Ee.value?.CommuterTrainName?Ee.value.CommuterTrainName.replace("SL","Linje"):`TÃ¥g ${Ee.value?.Name??""}`),Re=(0,n.EW)(()=>"mapComponent"===be.parentName&&(Ee.value?.Status===d.k.trainStatus.RUNNING||Ee.value?.Status===d.k.trainStatus.STOPPED)),Ne=(0,n.EW)(()=>Ee.value?.Status===d.k.trainStatus.AWAITING_DEPARTURE||Ee.value?.Status===d.k.trainStatus.CANCELED||Ee.value?.Status===d.k.trainStatus.ENDSTATION),xe=(0,n.EW)(()=>Ae(Ee.value?.StatusDescription??"")),Xe=(0,n.EW)(()=>Ae(Ee.value?.startStationToEndStation??"")),Qe=(0,n.EW)(()=>Ee.value?.getInformationText()??[]),Oe=(0,n.EW)(()=>Ce.value?"Laddar tÃ¥ginformation...":Ee.value&&Xe.value?`Valt ${Ee.value.friendlyName}. Sträcka: ${Xe.value}. TÃ¥get är ${Ee.value.PunctualityText}.`:""),Pe=(0,n.EW)(()=>Ee.value?.stations??[]),$e=(0,n.EW)(()=>Pe.value.find(e=>e.IsNextStation)?.locationName??""),Be=(0,n.Kh)({arrowPosition:9,routeHeight:0}),Fe=t,Ue=()=>{const e=Se.value,t=ye.value.filter(e=>null!==e),a=Le.value,n=Te.value;if(!e||0===t.length||!a||!n)return;const i=e.clientHeight;if(0===i)return;const s=e.getBoundingClientRect().top,r=e.tHead?.clientHeight??0;if("awaiting-departure"===Ee.value?.Status){const e=t[0].getBoundingClientRect().top-s;return Be.arrowPosition=100*(e+8)/i,void(Be.routeHeight=0)}let o=t[0];for(let e=t.length-1;e>=0;e--)if(t[e].classList.contains("passed")||t[e].classList.contains("arrived")){o=t[e];break}const l=o.getBoundingClientRect().top-s,c=l+o.clientHeight/2,d=o.classList.contains("passed")?c:l;Be.arrowPosition=100*(d+8)/i,Be.routeHeight=100*(d-r)/i};(0,n.wB)(Ee,async()=>{await(0,n.dY)(),Ue()});const We=(0,n.EW)(()=>be.replacementTrafficByTodaysDate&&Ee.value?be.replacementTrafficByTodaysDate.filter(e=>e.ReplacesTrains?.ReplacesTrain?.some(e=>
1g.n.getIdFromReplacesTrain(e)===Ee.value.Id||e.AdvertisedTrainIdent===Ee.value.Name)):[]),Ke=((0,n.EW)(()=>We.value.length>0),e=>{if(!We.value.length)return!1;const t=e.DepartureAnnouncement?.LocationSignature,a=e.locationName;return We.value.some(e=>e.Stops?.Stop.some(e=>e.PlaceSignature&&e.PlaceSignature===t||e.StopDescription&&a&&e.StopDescription?.includes(a)))});function He(e){if(!Ee.value)return;const t=e.DepartureAnnouncement?.LocationSignature,n=e.locationName,i=a(be.replacementTrafficByTodaysDate,Ee.value.Id,t,n),s={trainAdvertisedId:e.DepartureAnnouncement?.AdvertisedTrainIdent,locationSignature:t,advertisedLocationName:n,replacementTraffic:i};(0,o.zA)("Tagtrafikinformation â TÃ¥gvy","Klick pÃ¥ ersättningstrafik","Ersättningstrafik för ett tÃ¥g"),Fe("open-replacementtraffic-modal",s)}const ze=()=>{ke.value=!ke.value,he.text=ke.value?"Visa mindre":"Visa mer"},Ve=(0,n.EW)(()=>"TrainAndStation"===be.parentName&&Ee.value?.ShowOnMap),Ge=()=>{(0,o.zA)(pe,"Visa pÃ¥ karta","")},je=()=>{(0,o.zA)(pe,"Klick pa Information","")};return(e,t)=>((0,n.uX)(),(0,n.CE)(n.FK,null,[(0,n.Lk)("div",v,(0,n.v_)(Oe.value),1),Ee.value&&!(0,n.R1)(Ce)?((0,n.uX)(),(0,n.CE)("div",f,[(0,n.Lk)("div",h,[(0,n.Lk)("h2",k,[(0,n.Lk)("span",S,(0,n.v_)(Ee.value.friendlyName),1),(0,n.Lk)("span",null,(0,n.v_)(Xe.value),1)]),(0,n.bo)((0,n.Lk)("a",{id:"trainMapBtn",class:"btn btn-outline-primary w-auto h-auto",href:`${e.mapUrl}&Train=${Ee.value?.Id}`,onClick:Ge},[T,(0,n.eW)("Visa tÃ¥g pÃ¥ karta ")],8,L),[[n.aG,Ve.value]])]),(0,n.Lk)("div",y,[(0,n.Lk)("ul",A,[(0,n.Lk)("li",b," AvgÃ¥ngsdatum: "+(0,n.v_)(Ee.value.DepartureDate),1),Re.value?((0,n.uX)(),(0,n.CE)("li",E,[(0,n.Lk)("span",null,[(0,n.eW)(" Nästa station: "),(0,n.Lk)("a",{href:"#",onClick:[t[0]||(t[0]=e=>(e=>{(0,o.zA)("Tagtrafikinformation â Karta ","Klick pa nästa station","");const t=ge.getStationByLocationName(e);if(!t||!t.LocationSignature)return console.warn("No locationSignature");Fe("update-station",t.LocationSignature,"departure")})($e.value)),t[1]||(t[1]=(0,n.D$)(()=>{},["prevent"]))]},(0,n.v_)($e.value),1)])])):(0,n.Q3)("v-if",!0),Ne.value?((0,n.uX)(),(0,n.CE)("li",C,(0,n.v_)(xe.value),1)):((0,n.uX)(),(0,n.CE)("li",{key:2,class:"span-columns","aria-label":`TÃ¥get är ${Ee.value.PunctualityText}`},[((0,n.uX)(),(0,n.CE)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",fill:"currentColor",class:(0,n.C4)(["bi","bi-circle-fill",Ee.value.PunctualityClass]),viewBox:"0 0 16 16","aria-hidden":"true"},I,2)),D,(0,n.eW)(" "+(0,n.v_)(Ee.value.PunctualityText),1)],8,w)),""!==(0,n.R1)(we)?((0,n.uX)(),(0,n.CE)("li",_,[(0,n.Lk)("span",M,(0,n.v_)((0,n.R1)(we)),1)])):(0,n.Q3)("v-if",!0)])]),(0,n.Q3)("Mobile toggle"),fe.value&&"mapComponent"===e.parentName?((0,n.uX)(),(0,n.CE)("div",R,[(0,n.Lk)("button",{onClick:ze,class:"btn btn-primary btn-sm collapse-btn","data-bs-toggle":"collapse","data-bs-target":"#trainInformation","aria-expanded":"false",type:"button","aria-controls":"trainInformation"},[(0,n.eW)((0,n.v_)(he.text)+" ",1),N])])):(0,n.Q3)("v-if",!0),(0,n.Q3)("OtherInfo"),Qe.value.length>0?((0,n.uX)(),(0,n.CE)("div",x,[(0,n.Lk)("button",{class:"btn btn-link p-2",type:"button","data-bs-toggle":"collapse","data-bs-target":"#otherInfo","aria-expanded":"false","aria-controls":"otherInfo",onClick:je},[(0,n.eW)(" Information "),X]),(0,n.Lk)("div",Q,[(0,n.Lk)("ul",O,[((0,n.uX)(!0),(0,n.CE)(n.FK,null,(0,n.pI)(Qe.value,e=>((0,n.uX)(),(0,n.CE)("li",null,(0,n.v_)(e),1))),256))])])])):(0,n.Q3)("v-if",!0),Ee.value&&!(0,n.R1)(Ce)?((0,n.uX)(),(0,n.CE)("div",{key:2,class:(0,n.C4)({collapse:fe.value&&"mapComponent"===e.parentName}),id:"trainInformation"},[(0,n.Lk)("div",P,[(0,n.Lk)("div",{class:(0,n.C4)(["train-indicator","train-indicator--"+Ee.value.PunctualityClass])},[(0,n.Lk)("div",{class:"train-indicator__dir",ref_key:"arrowRef",ref:Le,style:(0,n.Tr)("top: "+Be.arrowPosition+"%")},$,4),(0,n.bo)((0,n.Lk)("div",{class:"train-indicator__route",ref_key:"routeRef",ref:Te,style:(0,n.Tr)("height: "+Be.routeHeight+"%")},null,4),[[n.aG,Be.routeHeight>0]])],2),(0,n.Lk)("table",{ref_key:"trainTableRef",ref:Se,id:"traintable","data-train-table":"",class:"table table-tm table-tm--train mb-0","aria-label":`Tidtabell för tÃ¥g ${Me.value} för sträckan ${Xe.value}`},[(0,n.Lk)("caption",F," Tidtabell för tÃ¥g "+(0,n.v_)(Me.value)+" för sträckan "+(0,n.v_)(Xe.value),1),(0,n.Lk)("thead",null,[(0,n.Lk)("tr",null,[U,W,K,H,Pe.value.some(e=>Ke(e))?((0,n.uX)(),(0,n.CE)("th",z," Ersättningstrafik ")):(0,n.Q3)("v-if",!0)])]),(0,n.Lk)("tbody",null,[((0,n.uX)(!0),(0,n.CE)(n.FK,null,(0,n.pI)(Pe.value,(e,a)=>
1((0,n.uX)(),(0,n.CE)("tr",{class:(0,n.C4)(e.cssClassesForStation),ref_for:!0,ref:e=>((e,t)=>{ye.value[t]=e instanceof HTMLElement?e:null})(e,a),onClick:t=>!e.isStationAbroad&&(e=>{const t=e.IsFirstStation?e.DepartureAnnouncement.LocationSignature:e.ArrivalAnnouncement.LocationSignature;"mapComponent"===be.parentName&&(0,o.zA)(pe,"Klick i tidtabell","Station"),Fe("update-station",t,"departure")})(e)},[e.IsFirstStation?((0,n.uX)(),(0,n.CE)("td",G)):((0,n.uX)(),(0,n.CE)("td",j,[(0,n.Lk)("p",{class:(0,n.C4)(["m-0",e.arrivalStrikeThroughClass]),"aria-hidden":""!==e.arrivalStrikeThroughClass},(0,n.v_)(e.advertisedArrivalTime),11,Y),""!==e.estimatedOrActualArrivalTime?((0,n.uX)(),(0,n.CE)("p",J,(0,n.v_)(e.estimatedOrActualArrivalTime),1)):(0,n.Q3)("v-if",!0)])),e.IsLastStation?((0,n.uX)(),(0,n.CE)("td",q)):((0,n.uX)(),(0,n.CE)("td",Z,[(0,n.Lk)("p",{class:(0,n.C4)(["m-0",e.departureStrikeThroughClass]),"aria-hidden":""!==e.departureStrikeThroughClass},(0,n.v_)(e.advertisedDepartureTime),11,ee),""!==e.estimatedOrActualDepartureTime?((0,n.uX)(),(0,n.CE)("p",te,(0,n.v_)(e.estimatedOrActualDepartureTime),1)):(0,n.Q3)("v-if",!0)])),(0,n.Lk)("td",null,[(0,n.Lk)("div",null,[e.isStationAbroad?((0,n.uX)(),(0,n.CE)("p",ae,(0,n.v_)(e.locationName),1)):((0,n.uX)(),(0,n.CE)("a",{key:1,href:"#"+e.locationName,class:"fw-bold",onClick:t[2]||(t[2]=(0,n.D$)(()=>{},["prevent"]))},(0,n.v_)(e.locationName),9,ne))]),""!==e.stationArrivalStatus?((0,n.uX)(),(0,n.CE)("p",ie,(0,n.v_)(e.stationArrivalStatus),1)):(0,n.Q3)("v-if",!0),((0,n.uX)(!0),(0,n.CE)(n.FK,null,(0,n.pI)(e.otherInformation,e=>((0,n.uX)(),(0,n.CE)("p",se,(0,n.v_)(e.Description),1))),256)),((0,n.uX)(!0),(0,n.CE)(n.FK,null,(0,n.pI)(e.deviations,e=>((0,n.uX)(),(0,n.CE)("p",{class:(0,n.C4)((0,n.R1)(u)(e))},(0,n.v_)(e.Description),3))),256)),Ke(e)?((0,n.uX)(),(0,n.CE)("button",{key:1,id:`btnReplacementTrafficMobile_${a}`,type:"button",onClick:[t=>He(e),t[3]||(t[3]=(0,n.D$)(()=>{},["stop"]))],class:"btn btn-outline-primary btn-sm d-flex align-items-center gap-2 my-2 c-replacement-btn-modal d-md-none","data-bs-toggle":"modal","data-bs-target":"#replacementTrafficModal"},[oe,(0,n.eW)(" Visa ersättningstrafik ")],8,re)):(0,n.Q3)("v-if",!0)]),(0,n.Lk)("td",null,[e.hasTrackChange?((0,n.uX)(),(0,n.CE)("p",le,(0,n.v_)(e.IsLastStation?e.ArrivalAnnouncement?.TrackAtLocation:e.DepartureAnnouncement?.TrackAtLocation),1)):((0,n.uX)(),(0,n.CE)("p",ce,(0,n.v_)(e.IsLastStation?e.ArrivalAnnouncement?.TrackAtLocation:e.DepartureAnnouncement?.TrackAtLocation),1))]),Pe.value.some(e=>Ke(e))?((0,n.uX)(),(0,n.CE)("td",de,[Ke(e)?((0,n.uX)(),(0,n.CE)("button",{key:0,id:`btnReplacementTraffic_${a}`,type:"button",onClick:[t=>He(e),t[4]||(t[4]=(0,n.D$)(()=>{},["stop"]))],class:"btn btn-outline-primary btn-sm d-flex align-items-center gap-2 c-replacement-btn-modal","data-bs-toggle":"modal","data-bs-target":"#replacementTrafficModal"},[me,(0,n.eW)(" Visa ersättningstrafik ")],8,ue)):(0,n.Q3)("v-if",!0)])):(0,n.Q3)("v-if",!0)],10,V))),256))])],8,B)])],2)):(0,n.Q3)("v-if",!0)])):(0,n.Q3)("v-if",!0)],64))}})}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.