1import{j as c}from"./index-a0b40a37.js";import{u as S,L as x,S as I,C as N,e as E,T as O,g as R,U as _,j as b,k as A,l as U,m as w,n as D,Q as j,o as H,b as $}from"./patterns-triangles_greenyellow-efaee763.js";import{S as v}from"./Seo-6e0bf47a.js";import{B as C}from"./Banner-3daef76c.js";import{S as M}from"./SeasonalHours-b85aa1ab.js";import{b as G}from"./breadcrumb-adc274ac.js";const B=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"];function k(e){const n=B.indexOf(e.trim().toLowerCase().slice(0,3));return n===-1?null:n}function P(e){if(!e)return null;const n=e.split("-").map(s=>s.trim());if(n.length!==2)return null;const r=s=>{const i=s.match(/^(\d{1,2})\s+([A-Za-z]+)$/);if(!i)return null;const l=parseInt(i[1],10),a=k(i[2]);return a===null||!l?null:{day:l,month:a}},t=r(n[0]),o=r(n[1]);return t&&o?{start:t,end:o}:null}function K(e,n,r){const t=Date.UTC(r.getFullYear(),r.getMonth(),r.getDate()),o=r.getFullYear(),s=[o-1,o,o+1].map(a=>{const u=Date.UTC(a,e.month,e.day),m=n.month<e.month||n.month===e.month&&n.day<e.day,d=Date.UTC(m?a+1:a,n.month,n.day);return{validFrom:u,validThrough:d}}),i=s.find(a=>t>=a.validFrom&&t<=a.validThrough);return i||s.filter(a=>a.validFrom>t).sort((a,u)=>a.validFrom-u.validFrom)[0]||s[s.length-1]}function p(e){return new Date(e).toISOString().slice(0,10)}function h(e){const n=e==null?void 0:e.match(/^(\d{1,2})h(\d{2})$/i);return n?`${n[1].padStart(2,"0")}:${n[2]}`:null}function Y(e=[],n=new Date){const r=e.flatMap(t=>t.hours||[]).map(t=>{const o=h(t.firstCarUp),s=h(t.lastCarDown);if(!o||!s)return null;const i={"@type":"OpeningHoursSpecification",opens:o,closes:s},l=P(t.dates);if(l){const{validFrom:a,validThrough:u}=K(l.start,l.end,n);i.validFrom=p(a),i.validThrough=p(u)}return i}).filter(Boolean);return r.length>0?{openingHoursSpecification:r}:{}}const f=(e="",n=54)=>e.length>n?`${e.substring(0,n)}â¦`:e;function J(){const{loading:e,error:n,data:r}=S(L);if(e)return c.jsx("p",{});if(n)return c.jsxs("p",{children:["Error : ",n.message]});const t=r.planYourVisitEntries[0],{siteInfo:o}=r,s=t.subtitle||o.siteTitle,[i]=o.siteImage,[l=i]=t.featureImage,a=l||t.metaImage||o.siteImage,u=f((t.metaDescription||t.summary||o.siteDescription).replace(/(<([^>]+)>)/gi,""),159),m=f(`${t.metaTitle||t.displayTitle||t.title}`,53),d=t.metaKeywords||o.siteKeywords||null,T=`${a.url}`,y=Y(t.seasonalHours),g="/plan-your-visit/operating-hours",F=G([{name:"Home",path:"/"},{name:"Operating Hours",path:g}]);return c.jsxs(x,{location:t.url,title:m,children:[c.jsx(v,{title:m,description:u,keywords:d,image:T,url:t.url,pathname:g,organizationExtensions:y,structuredData:F}),c.jsx("h1",{style:{fontSize:0,color:"transparent"},className:"sr-only",children:m}),l&&c.jsx(C,{block:{variation:"secondary",slides:[{title:s,subtitle:t.title,image:[l]}]}}),c.jsx(I,{id:"hours",bg:"blue-dark",text:"white",className:"relative",p:"0",children:c.jsxs(N,{className:"py-14 lg:py-20 w-full xl:w-3/4",children:[c.jsx(E,{text:"secondary",level:3,font:"heading",className:"text-secondary font-heading",children:"Operating Hours"}),c.jsx(O,{is:"p",className:"pb-6",children:"The cable car operates - weather permitting - during the following times:"}),c.jsx(M,{block:t.seasonalHours})]})})]})}const L=R` 2 query getOperatingHoursData { 3 planYourVisitEntries { 4 ... on singlePlanYourVisit_Entry { 5 id 6 uri 7 url 8 title 9 subtitle 10 summary 11 featureImage { 12 ...UploadAssetFragment 13 } 14 displayTitle 15 metaTitle 16 metaDescription 17 metaKeywords 18 metaImage { 19 ...UploadAssetFragment 20 } 21 journey { 22 ... on step_Entry { 23 id 24 heading 25 image { 26 ...UploadAssetFragment 27 } 28 icon { 29 url 30 }
31 iconBackgroundColour 32 text 33 } 34 } 35 introductionRow { 36 ...IntroductionRow 37 } 38 applicableDates 39 applicableDatesNew 40 infoRow { 41 ...InfoRowFragment 42 } 43 infoRowNew { 44 ...InfoRowNewFragment 45 } 46 additionalText 47 seasonalHours { 48 ...SeasonalHoursFragment 49 } 50 yellowContentSlider { 51 ... on slide_Entry { 52 heading 53 image { 54 ...UploadAssetFragment 55 } 56 text 57 buttonText 58 buttonUrl 59 relatedEntry { 60 uri 61 } 62 } 63 } 64 quickTips { 65 ...QuickTipsFragment 66 } 67 headingMatrix { 68 ... on matrixHeading_Entry { 69 id 70 text8 71 } 72 } 73 accordion { 74 ... on accordionRow_Entry { 75 id 76 heading 77 text 78 } 79 } 80 imageOnly { 81 ...UploadAssetFragment 82 } 83 richText 84 buttons { 85 ...ButtonsFragment 86 } 87 signUpBanner { 88 ...SignUpBannerFragment 89 } 90 } 91 } 92 siteInfo: globalSet(handle: "siteInformation") { 93 ...SiteInfoFragment 94 } 95 } 96 97 ${_} 98 ${b} 99 ${A} 100 ${U} 101 ${w} 102 ${D} 103 ${j} 104 ${H} 105 ${$} 106`;export{J as OperatingHours}; 107//# sourceMappingURL=operating-hours-5f65a3ea.js.map
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.