@visitscotland/component-library 5.32.0 → 5.32.2
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 +15 -0
- package/dist/client/manifest.json +2 -2
- package/dist/client/scripts/e7ec94121db4d1a75b6d.js +1 -0
- package/dist/components/vs-component-library.js +1 -1
- package/dist/components/vs-component-library.mjs +3 -3
- package/dist/ssr/index.js +1 -1
- package/dist/ssr/manifest.json +1 -1
- package/package.json +1 -1
- package/dist/client/scripts/979ac9038a1ab14b3590.js +0 -1
- /package/dist/client/styles/{979ac9038a1ab14b3590.css → e7ec94121db4d1a75b6d.css} +0 -0
- /package/dist/ssr/styles/{cacdd354586c47955766.css → e8ce9b11d9640bae3a90.css} +0 -0
|
@@ -330,4 +330,4 @@ ${c.message}`,c}}};return loaders.loaders=s,loaders}var getPropertyByPath={},has
|
|
|
330
330
|
Install the correct version for Vue 2.x: "npm i vue-combo-blocks@vue2"`);var VueComboBlocks=vue.defineComponent({name:"vue-combo-blocks",emits:{select:null,"update:modelValue":null,"input-value-change":null,"is-open-change":null,"hovered-index-change":null,"state-change":null,change:null,"show-list":null,focus:null,hover:null},props:getProps(isVue3),watch:{modelValue:function e(n){isControlledProp(this.$props,"modelValue")&&(this.inputValue=this.itemToString(n),this.selectedItem=n)}},beforeCreate,data:function e(){return getInitialData(this.modelValue,this.itemToString)},computed:Object.assign({},computed),methods:Object.assign({},{setState:function e(n,t){var r=this.$data,a=this.stateReducer(r,{changes:n,type:t}),o=hasOwnProperty(a,"selectedItem"),s=a.selectedItem!==r.selectedItem;o&&(this.$emit("select",a.selectedItem,t),s&&this.$emit("update:modelValue",a.selectedItem,t));var i={};for(var l in a)hasOwnProperty(a,l)&&r[l]!==a[l]&&(i[l]=a[l],this[l]=i[l],l==="inputValue"?this.$emit("input-value-change",a[l],t):l==="isOpen"?this.$emit("is-open-change",a[l],t):l==="hoveredIndex"&&this.$emit("hovered-index-change",a[l],t));this.$emit("state-change",i,t)}},methods),render:function e(){return this.$slots.default(slot(this))}});VueComboBlocks.stateChangeTypes=sct;const _hoisted_1$q={"data-test":"vs-autocomplete",class:"vs-autocomplete mb-100"},_hoisted_2$l=["for"],_hoisted_3$f=["placeholder","onClick"],_hoisted_4$c=["name"],_sfc_main$B=vue.defineComponent({__name:"Autocomplete",props:{id:{},label:{},mode:{},multiselectLabel:{},name:{},options:{},placeholder:{},trackBy:{},isTourLocation:{type:Boolean},defaultVal:{}},emits:["changeValue"],setup(e,{emit:n}){const t=e,r=n,a=vue.ref([]),o=vue.ref(t.options),s=f=>f?f[u.value]:"",i=f=>{o.value=t.options.filter(v=>v[u.value].toLowerCase().includes(f.toLowerCase()))},l=f=>{typeof t.trackBy<"u"?r("changeValue",f[t.trackBy]):r("changeValue",f.label)},u=vue.computed(()=>typeof t.multiselectLabel<"u"?t.multiselectLabel:"name"),c=vue.computed(()=>{if(typeof a.value=="string"){if(t.isTourLocation){const f=t.options.find(v=>v.name===a.value);if(typeof f<"u")return f.slug.trim()}return a.value.trim()}else if(typeof a.value=="object"&&Object.keys(a.value).length>0)return s(a.value).trim()}),d=vue.computed(()=>!!(c.value&&c.value.length>0));return vue.watch(()=>a.value,()=>{a.value===null&&(a.value=[])}),vue.onMounted(()=>{typeof t.defaultVal<"u"&&(a.value=t.defaultVal)}),(f,v)=>(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$q,[vue.createElementVNode("label",{for:f.id},vue.toDisplayString(f.label),9,_hoisted_2$l),vue.createVNode(vue.unref(VueComboBlocks),{"input-id":f.id,modelValue:a.value,"onUpdate:modelValue":v[0]||(v[0]=p=>a.value=p),itemToString:s,items:o.value,onInputValueChange:i,onSelect:l},{default:vue.withCtx(({getInputProps:p,getInputEventListeners:h,hoveredIndex:m,isOpen:_,getMenuProps:g,getMenuEventListeners:b,getItemProps:S,getItemEventListeners:C,getComboboxProps:V,openMenu:E})=>[vue.createElementVNode("div",vue.mergeProps(V(),{class:"vs-autocomplete__list-wrapper"}),[vue.createElementVNode("input",vue.mergeProps({class:"vs-input form-control"},p(),vue.toHandlers(h(),!0),{placeholder:f.placeholder,onClick:$=>E()}),null,16,_hoisted_3$f),vue.createVNode(LoadingSpinner.VsIcon,{icon:"vs-icon-control-expand",variant:"cta",size:"sm"}),vue.withDirectives(vue.createElementVNode("ul",vue.mergeProps(g(),vue.toHandlers(b(),!0),{class:"vs-autocomplete__list"}),[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(o.value,($,D)=>(vue.openBlock(),vue.createElementBlock("li",vue.mergeProps({key:$.id},{ref_for:!0},S({item:$,index:D}),vue.toHandlers(C({item:$,index:D}),!0),{class:["vs-autocomplete__list-item",{"vs-autocomplete__list-item--hover":m===D}]}),vue.toDisplayString($[u.value]),17))),128))],16),[[vue.vShow,_]])],16)]),_:1},8,["input-id","modelValue","items"]),d.value?vue.withDirectives((vue.openBlock(),vue.createElementBlock("input",{key:0,type:"hidden",name:f.name,"onUpdate:modelValue":v[1]||(v[1]=p=>c.value=p)},null,8,_hoisted_4$c)),[[vue.vModelText,c.value]]):vue.createCommentVNode("",!0)]))}}),_hoisted_1$p={class:"vs-date-input","data-test":"vs-date-input"},_hoisted_2$k=["for"],_hoisted_3$e=["min","name","id"],_sfc_main$A=vue.defineComponent({__name:"DateInput",props:{label:{},id:{},name:{},value:{},minDate:{}},emits:["changeDate"],setup(e,{emit:n}){const t=e,r=n,a=vue.ref(t.value),o=vue.computed(()=>new Date().toISOString().split("T")[0]);return vue.watch(()=>t.value,s=>{a.value=s,r("changeDate",a.value)}),(s,i)=>(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$p,[vue.createElementVNode("label",{for:s.id},vue.toDisplayString(s.label),9,_hoisted_2$k),vue.withDirectives(vue.createElementVNode("input",{type:"date",min:typeof s.minDate<"u"&&s.minDate.length>0?s.minDate:o.value,name:s.name,id:s.id,"onUpdate:modelValue":i[0]||(i[0]=l=>a.value=l),onChange:i[1]||(i[1]=l=>s.$emit("changeDate",a.value)),class:"form-control vs-input"},null,40,_hoisted_3$e),[[vue.vModelText,a.value]])]))}}),_hoisted_1$o={class:"vs-date-range","data-test":"vs-date-range"},_hoisted_2$j={class:"row align-items-center"},_hoisted_3$d={class:"col-12 col-sm-5 order-1"},_hoisted_4$b={class:"col-12 col-sm-5 order-2"},_hoisted_5$a={class:"col-12 col-sm-2 order-first order-sm-3 text-sm-right"},_hoisted_6$a={key:1,type:"hidden",name:"refine-date",value:"on"},_hoisted_7$8=["value"],_sfc_main$z=vue.defineComponent({__name:"DateRange",props:{startLabel:{type:String,required:!1,default:"Start Date"},endLabel:{type:String,required:!1,default:"End Date"},defaultDates:{type:Boolean,default:!1},selectedProd:{type:String,required:!0}},emits:["dateUpdated"],setup(e,{emit:n}){const t=e,r=n,a=vue.ref(""),o=vue.ref(""),s=vue.computed(()=>!!a.value||!!o.value),i=vue.computed(()=>{const g=new Date(o.value),b=new Date(a.value),S=g.getTime()-b.getTime();return isNaN(S)?1:S/(1e3*3600*24)});function l(){a.value="",o.value=""}const u=g=>{const b=g.toLocaleString("default",{year:"numeric"}),S=g.toLocaleString("default",{month:"2-digit"}),C=g.toLocaleString("default",{day:"2-digit"});return`${b}-${S}-${C}`},c=vue.computed(()=>a.value===""?u(new Date):""),d=vue.computed(()=>{let g;if(a.value!==""){const b=new Date(a.value);b.setDate(b.getDate()+1),g=u(b)}else if(t.defaultDates){const b=new Date,S=new Date(b);S.setDate(S.getDate()+1),g=u(S)}return g}),f=vue.computed(()=>{let g;if(a.value===""){const b=new Date,S=new Date(b);S.setDate(S.getDate()+1),g=u(S)}else{const b=new Date,S=new Date(a.value);b.setDate(S.getDate()+1),g=u(b)}return g});function v(){const g=new Date(a.value);new Date(o.value)<=g&&(o.value="")}function p(){const g=!(!a.value&&!o.value);r("dateUpdated",g)}function h(){p(),v()}const m=vue.computed(()=>t.selectedProd==="acco"?"stay":"isostartdate"),_=vue.computed(()=>t.selectedProd==="acco"?"endDate":"isoenddate");return(g,b)=>(vue.openBlock(),vue.createElementBlock("fieldset",_hoisted_1$o,[vue.createElementVNode("div",_hoisted_2$j,[vue.createElementVNode("div",_hoisted_3$d,[vue.createVNode(_sfc_main$A,{label:e.startLabel,value:e.defaultDates&&a.value===""&&o.value?c.value:a.value,name:m.value,id:"startDate",onChangeDate:b[0]||(b[0]=S=>{a.value=S,h()}),class:"mb-100"},null,8,["label","value","name"])]),vue.createElementVNode("div",_hoisted_4$b,[vue.createVNode(_sfc_main$A,{label:e.endLabel,value:e.defaultDates&&o.value===""&&a.value?d.value:o.value,"min-date":f.value,name:_.value,id:"endDate",onChangeDate:b[1]||(b[1]=S=>{o.value=S,h()}),class:"mb-100"},null,8,["label","value","min-date","name"])]),vue.createElementVNode("div",_hoisted_5$a,[s.value?(vue.openBlock(),vue.createElementBlock("button",{key:0,id:"clearDateRange",type:"button",onClick:l,class:"vs-date-range__clear"},vue.toDisplayString(vue.unref(getLabelText)("reset","Clear")),1)):vue.createCommentVNode("",!0),e.selectedProd!=="acco"?(vue.openBlock(),vue.createElementBlock("input",_hoisted_6$a)):vue.createCommentVNode("",!0),vue.createElementVNode("input",{type:"hidden",name:"nights",value:i.value},null,8,_hoisted_7$8)])])]))}}),_hoisted_1$n={class:"vs-product-search-embed","data-test":"vs-product-search-embed"},_hoisted_2$i={key:0,class:"container"},_hoisted_3$c={class:"row"},_hoisted_4$a={class:"col-12"},_hoisted_5$9=["action"],_hoisted_6$9={class:"form-group product-search__type mb-100"},_hoisted_7$7={for:"prodtypes"},_hoisted_8$4={class:"product-search__in d-none d-md-block mt-100"},_hoisted_9$4={"aria-live":"polite"},_hoisted_10$4=["disabled","value"],_hoisted_11$3=["disabled","value"],_hoisted_12$2=["value"],_hoisted_13$2={key:4,type:"hidden",name:"areaproxdist",value:"10"},_hoisted_14$1={key:5},_hoisted_15$1={key:0,class:"form-group"},_hoisted_16$1={for:"search-keyword"},_hoisted_17$1={key:6},_hoisted_18={key:0},_hoisted_19=["value"],__default__$1=vue.defineComponent({mixins:[LoadingSpinner.dataLayerMixin],methods:{trackSubmit(e,n){this.createDataLayerObject("productSearchDataEvent",{searchType:e,searchLocation:n.name},this.href)}}}),_sfc_main$y=vue.defineComponent({...__default__$1,__name:"ProductSearchEmbed",props:{defaultProd:{type:String,default:"acti,attr,reta",validator(e){return["acco","cate","even","tour","acti,attr,reta"].includes(e)}},defaultLocale:{type:String,default:"",validator(e){return["en","fr","de","es","it","nl",""].includes(e)}},defaultLocation:{type:String,default:""}},setup(e){const n=e,t=vue.ref(!1),r=vue.ref(),a=vue.ref([]);vue.ref(null);let o=vue.ref();o.value={id:"",key:"",name:"",type:""};const s=vue.ref("off"),i=vue.ref(!1),l=vue.computed(()=>{const k=typeof r.value>"u"?"see-do":r.value;return`/info/${LoadingSpinner.paths[k]}`});let u=vue.ref(!1);const c={en:{localeUrl:""},fr:{localeUrl:"fr-fr"},de:{localeUrl:"de-de"},es:{localeUrl:"es-es"},it:{localeUrl:"it-it"},nl:{localeUrl:"nl-nl"}},d=vue.computed(()=>{let k=n.defaultLocale.length>0?n.defaultLocale:getLocale();return k==="en"&&(k=""),k}),f=vue.computed(()=>{if(typeof window<"u"){let k=window.location.origin;return k.includes("localhost")?"https://www.visitscotland.com":k}return"https://www.visitscotland.com"}),v=vue.computed(()=>`${f.value}${d.value?"/"+d.value:""}${l.value}/search-results`),h="https://www.visitscotland.com/data/locations"+`?locale=${d.value}`,m=vue.ref([]),_="https://www.visitscotland.com/tms-api/v1/attractions",g=vue.ref([]),b="https://www.visitscotland.com/tms-api/v1/origins?active=1",S=vue.ref([]),C=vue.ref([]),V=()=>{const k=getProductTypes(),L=[];k.forEach(I=>{L.push(I)}),C.value=L},E=vue.computed(()=>t.value?[]:C.value.map(L=>({...L,text:getProductName(L.value,L.text)}))),$=async()=>{const k=await getData(h);k&&(m.value=k.data)},D=async()=>{const k=await getData(b);k&&(S.value=k.data)},A=async()=>{const k=await getData(_);k&&(g.value=k.data)},M=(k,L)=>{L==="key"?o.value=m.value.find(I=>I.key===k):L==="id"?o.value=m.value.find(I=>I.id===k):o.value=m.value.find(I=>I.name===k.trim())},j=k=>{const L=k.value;r.value=L,L==="tour"&&(D(),A())},O=()=>c[n.defaultLocale]||"",R=()=>{t.value=!0,vue.nextTick(()=>{t.value=!1,n.defaultLocation!==""&&u&&M(n.defaultLocation,"id")})},X=vue.computed(()=>r.value!=="cate"&&r.value!=="acti,attr,reta"?"d-lg-flex":"");vue.onBeforeMount(async()=>{window.VS={};const k=document.createElement("script");k.async=!1,k.onload=R,k.setAttribute("src",`https://www.visitscotland.com/${O().localeUrl}/data/template/search.js`),document.head.appendChild(k)}),vue.onMounted(async()=>{$(),u.value=!0,r.value=n.defaultProd,r.value==="tour"&&(D(),A()),V()});const G=k=>{s.value=k?"on":"off"},W=k=>{i.value=!0;const L=k.currentTarget;setTimeout(function(){L.submit()},500)};return(k,L)=>{var I,F,J,w,B,T;return vue.openBlock(),vue.createElementBlock("div",_hoisted_1$n,[t.value?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createElementBlock("div",_hoisted_2$i,[vue.createElementVNode("div",_hoisted_3$c,[vue.createElementVNode("div",_hoisted_4$a,[vue.unref(u)?(vue.openBlock(),vue.createElementBlock("form",{key:0,action:v.value,onSubmit:vue.withModifiers(W,["prevent"]),"accept-charset":"UTF-8","data-test":"psw-form"},[vue.createElementVNode("div",_hoisted_6$9,[vue.createElementVNode("label",_hoisted_7$7,vue.toDisplayString(vue.unref(getLabelText)("search_for","I'm looking for")),1),vue.createElementVNode("div",{class:vue.normalizeClass(X.value)},[vue.createVNode(VsSelect,{options:E.value,value:e.defaultProd,onUpdated:L[0]||(L[0]=q=>j(q)),"field-name":"prodtypes"},null,8,["options","value"]),vue.createElementVNode("div",_hoisted_8$4,vue.toDisplayString(vue.unref(getLabelText)("in","in")),1)],2)]),vue.createElementVNode("div",_hoisted_9$4,[r.value!="tour"&&vue.unref(u)?(vue.openBlock(),vue.createBlock(_sfc_main$B,{key:0,id:"search-location",label:vue.unref(getLabelText)("location","Location"),"multiselect-label":"name",name:"loc",options:m.value,placeholder:vue.unref(getLabelText)("location_placeholder","Enter a location"),"track-by":"name",onChangeValue:L[1]||(L[1]=q=>M(q)),"default-val":vue.unref(o),"data-chromatic":"ignore"},null,8,["label","options","placeholder","default-val"])):vue.createCommentVNode("",!0),r.value!=="tour"?(vue.openBlock(),vue.createElementBlock("input",{key:1,type:"hidden",name:"locplace",disabled:((I=vue.unref(o))==null?void 0:I.type)==="POLYGON",value:((F=vue.unref(o))==null?void 0:F.key)||""},null,8,_hoisted_10$4)):vue.createCommentVNode("",!0),r.value!=="tour"?(vue.openBlock(),vue.createElementBlock("input",{key:2,type:"hidden",name:"locpoly",disabled:((J=vue.unref(o))==null?void 0:J.type)!=="POLYGON",value:((w=vue.unref(o))==null?void 0:w.key)||""},null,8,_hoisted_11$3)):vue.createCommentVNode("",!0),r.value!=="tour"?(vue.openBlock(),vue.createElementBlock("input",{key:3,type:"hidden",name:"locprox",value:((B=vue.unref(o))==null?void 0:B.type)==="DISTRICT"?1:0},null,8,_hoisted_12$2)):vue.createCommentVNode("",!0),r.value!=="tour"&&((T=vue.unref(o))==null?void 0:T.type)==="DISTRICT"?(vue.openBlock(),vue.createElementBlock("input",_hoisted_13$2)):vue.createCommentVNode("",!0),r.value==="even"?(vue.openBlock(),vue.createElementBlock("div",_hoisted_14$1,[vue.createVNode(_sfc_main$z,{"start-label":vue.unref(getLabelText)("startdate","Start Date","dates"),"end-label":vue.unref(getLabelText)("enddate","End Date","dates"),onDateUpdated:L[2]||(L[2]=q=>G(q)),"default-dates":i.value,"selected-prod":r.value},null,8,["start-label","end-label","default-dates","selected-prod"]),r.value==="even"?(vue.openBlock(),vue.createElementBlock("div",_hoisted_15$1,[vue.createElementVNode("label",_hoisted_16$1,vue.toDisplayString(vue.unref(getLabelText)("keywords","Keywords")),1),vue.createVNode(VsInput,{"field-name":"search-keyword",placeholder:vue.unref(getLabelText)("events_keywords_placeholder","Highland games, music festivals etc"),name:"name"},null,8,["placeholder"])])):vue.createCommentVNode("",!0)])):vue.createCommentVNode("",!0),r.value==="acco"?(vue.openBlock(),vue.createElementBlock("div",_hoisted_17$1,L[4]||(L[4]=[vue.createElementVNode("input",{hidden:"true",name:"avail",value:"off"},null,-1)]))):vue.createCommentVNode("",!0)]),r.value==="tour"?(vue.openBlock(),vue.createElementBlock("div",_hoisted_18,[vue.createVNode(_sfc_main$B,{id:"tour-origin",label:vue.unref(getLabelText)("tour_origin","Starting point"),"multiselect-label":"name",name:"origins[]",options:S.value,placeholder:vue.unref(getLabelText)("tour_origin_placeholder","Location"),"track-by":"name","is-tour-location":!0},null,8,["label","options","placeholder"]),(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(a.value,q=>(vue.openBlock(),vue.createElementBlock("input",{type:"hidden",name:"attractions[]",value:q},null,8,_hoisted_19))),256)),vue.createVNode(_sfc_main$B,{id:"tour-month",label:vue.unref(getLabelText)("tour_month","I'm traveling in"),"multiselect-label":"label",name:"when",options:vue.unref(getLabelText)("months",vue.unref(LoadingSpinner.monthsEnglish)),placeholder:vue.unref(getLabelText)("tour_month_placeholder","Select month"),"track-by":"value"},null,8,["label","options","placeholder"])])):vue.createCommentVNode("",!0),vue.createVNode(LoadingSpinner.VsButton,{class:"mt-150","data-test":"psw-submit",type:"submit",onClick:L[3]||(L[3]=q=>k.trackSubmit(r.value,typeof vue.unref(o)>"u"?"":vue.unref(o)))},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(vue.unref(getLabelText)("search","Search")),1)]),_:1})],40,_hoisted_5$9)):vue.createCommentVNode("",!0),vue.unref(u)?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createBlock(LoadingSpinner.VsLoading,{key:1,variant:"dark"}))])])]))])}}}),_sfc_main$x={name:"VsProductSearch",status:"prototype",release:"0.0.1",components:{VsContainer:LoadingSpinner.VsContainer,VsRow:LoadingSpinner.VsRow,VsCol:LoadingSpinner.VsCol,VsProductSearchEmbed:_sfc_main$y,VsHeading:LoadingSpinner.VsHeading,VsWarning:LoadingSpinner.VsWarning},props:{noJsMessage:{type:String,required:!0},defaultLocation:{type:String,default:""},defaultProd:{type:String,default:"acti,attr,reta"},defaultLocale:{type:String,default:"en"}}},_hoisted_1$m={class:"vs-product-search","data-test":"vs-product-search"},_hoisted_2$h={class:"vs-product-search__intro"};function _sfc_render$o(e,n,t,r,a,o){const s=vue.resolveComponent("VsHeading"),i=vue.resolveComponent("VsCol"),l=vue.resolveComponent("VsProductSearchEmbed"),u=vue.resolveComponent("VsWarning"),c=vue.resolveComponent("VsRow"),d=vue.resolveComponent("VsContainer");return vue.openBlock(),vue.createElementBlock("div",_hoisted_1$m,[vue.createVNode(d,null,{default:vue.withCtx(()=>[vue.createVNode(c,null,{default:vue.withCtx(()=>[vue.createVNode(i,{class:"vs-product-search__col vs-product-search__col--left",xl:"7"},{default:vue.withCtx(()=>[vue.createVNode(s,{level:"2",headingStyle:"heading-l",class:"vs-product-search__heading mt-0"},{default:vue.withCtx(()=>[vue.renderSlot(e.$slots,"vs-module-heading")]),_:3}),vue.createElementVNode("div",_hoisted_2$h,[vue.renderSlot(e.$slots,"vs-module-intro")])]),_:3}),vue.createVNode(i,{class:"vs-product-search__col vs-product-search__col--right",xl:"5"},{default:vue.withCtx(()=>[vue.createVNode(l,{class:"vs-product-search__widget","default-location":t.defaultLocation,"default-locale":t.defaultLocale,"default-prod":t.defaultProd},null,8,["default-location","default-locale","default-prod"]),vue.createVNode(u,{class:"vs-product-search__no-js"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.noJsMessage),1)]),_:1})]),_:1})]),_:3})]),_:3})])}const ProductSearch=LoadingSpinner._export_sfc(_sfc_main$x,[["render",_sfc_render$o]]),_sfc_main$w={name:"VsQuote",status:"prototype",release:"0.0.1",props:{variant:{type:String,default:"narrow",validator:e=>e.match(/(narrow|wide)/)},withBorder:{type:Boolean,default:!1}},computed:{hasAuthorName(){return!!this.$slots["quote-author-name"]},hasAuthorTitle(){return!!this.$slots["quote-author-title"]},hasAuthorImage(){return!!this.$slots["quote-image"]},variantClass(){return[{"vs-quote--narrow":this.variant==="narrow","vs-quote--wide":this.variant==="wide","vs-quote--with-border":this.withBorder}]}}},_hoisted_1$l={key:0,class:"vs-quote__speech-container"},_hoisted_2$g={key:1,class:"vs-quote__author-container"},_hoisted_3$b={class:"vs-quote__content-container"},_hoisted_4$9={class:"vs-quote__content"},_hoisted_5$8={key:0,class:"vs-quote__author-name"},_hoisted_6$8={key:2,class:"vs-quote__quote-link"};function _sfc_render$n(e,n,t,r,a,o){return vue.openBlock(),vue.createElementBlock("div",{class:vue.normalizeClass(["vs-quote",o.variantClass]),"data-test":"vs-quote"},[t.withBorder?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$l,n[0]||(n[0]=[vue.createElementVNode("span",{class:"vs-quote__speech-mark"},"“",-1)]))),o.hasAuthorImage?(vue.openBlock(),vue.createElementBlock("div",_hoisted_2$g,[vue.renderSlot(e.$slots,"quote-image")])):vue.createCommentVNode("",!0),vue.createElementVNode("div",_hoisted_3$b,[vue.createElementVNode("div",_hoisted_4$9,[vue.renderSlot(e.$slots,"quote-content")]),o.hasAuthorName?(vue.openBlock(),vue.createElementBlock("p",_hoisted_5$8,[vue.renderSlot(e.$slots,"quote-author-name")])):vue.createCommentVNode("",!0),o.hasAuthorTitle?(vue.openBlock(),vue.createElementBlock("p",{key:1,class:vue.normalizeClass(["vs-quote__author-title",t.variant==="narrow"?"vs-quote__author-title--narrow-margin":null])},[vue.renderSlot(e.$slots,"quote-author-title")],2)):vue.createCommentVNode("",!0),e.$slots["quote-link"]?(vue.openBlock(),vue.createElementBlock("div",_hoisted_6$8,[vue.renderSlot(e.$slots,"quote-link",{if:"$slots['quote-link']"})])):vue.createCommentVNode("",!0)])],2)}const Quote=LoadingSpinner._export_sfc(_sfc_main$w,[["render",_sfc_render$n]]),_sfc_main$v={name:"VsSectionHeader",status:"prototype",release:"0.0.1",components:{VsHeading:LoadingSpinner.VsHeading,VsBody:LoadingSpinner.VsBody,VsContainer:LoadingSpinner.VsContainer,VsRow:LoadingSpinner.VsRow,VsCol:LoadingSpinner.VsCol},props:{anchorId:{type:String,default:null},heading:{type:String,required:!0}}},_hoisted_1$k={class:"vs-section-header","data-test":"vs-section-header"},_hoisted_2$f={key:1,class:"mt-175","data-test":"vs-section-header__actions"};function _sfc_render$m(e,n,t,r,a,o){const s=vue.resolveComponent("VsCol"),i=vue.resolveComponent("VsRow"),l=vue.resolveComponent("VsHeading"),u=vue.resolveComponent("VsBody"),c=vue.resolveComponent("VsContainer");return vue.openBlock(),vue.createElementBlock("div",_hoisted_1$k,[vue.createVNode(c,null,{default:vue.withCtx(()=>[vue.createVNode(i,null,{default:vue.withCtx(()=>[vue.createVNode(s,null,{default:vue.withCtx(()=>n[0]||(n[0]=[vue.createElementVNode("span",{class:"vs-section-header__divider"},null,-1)])),_:1,__:[0]})]),_:1}),vue.createVNode(i,null,{default:vue.withCtx(()=>[vue.createVNode(s,{cols:"12",sm:"7",md:"6",lg:"4"},{default:vue.withCtx(()=>[vue.createVNode(l,{level:"2","heading-style":"heading-l","no-margins":"",class:"mb-175 mb-lg-0",id:t.anchorId},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.heading),1)]),_:1},8,["id"])]),_:1}),vue.createVNode(s,{cols:"12",sm:"10",md:"9",lg:"8"},{default:vue.withCtx(()=>[e.$slots["section-header-lede"]?(vue.openBlock(),vue.createBlock(u,{key:0,variant:"lead"},{default:vue.withCtx(()=>[vue.renderSlot(e.$slots,"section-header-lede")]),_:3})):vue.createCommentVNode("",!0),e.$slots["section-header-actions"]?(vue.openBlock(),vue.createElementBlock("div",_hoisted_2$f,[vue.renderSlot(e.$slots,"section-header-actions")])):vue.createCommentVNode("",!0)]),_:3})]),_:3})]),_:3})])}const SectionHeader=LoadingSpinner._export_sfc(_sfc_main$v,[["render",_sfc_render$m]]),_sfc_main$u={name:"VsTable",status:"prototype",release:"0.0.1",components:{BTableSimple:LoadingSpinner.ol},props:{tableCaption:{type:String,required:!0},tableType:{type:String,default:"responsive",validator:e=>e.match(/(responsive|stacked)/)}},computed:{responsive(){return this.tableType==="responsive"},stacked(){return this.tableType==="stacked"}}},_hoisted_1$j={class:"visually-hidden","data-test":"vs-table__caption"};function _sfc_render$l(e,n,t,r,a,o){const s=vue.resolveComponent("BTableSimple");return vue.openBlock(),vue.createBlock(s,{class:"vs-table","data-test":"vs-table",small:"","caption-top":"",responsive:o.responsive,stacked:o.stacked},{default:vue.withCtx(()=>[vue.createElementVNode("caption",_hoisted_1$j,vue.toDisplayString(t.tableCaption),1),vue.renderSlot(e.$slots,"default")]),_:3},8,["responsive","stacked"])}const VsTable=LoadingSpinner._export_sfc(_sfc_main$u,[["render",_sfc_render$l]]),_sfc_main$t={name:"VsTableHead",status:"prototype",release:"0.0.1",components:{BThead:LoadingSpinner.wn}};function _sfc_render$k(e,n,t,r,a,o){const s=vue.resolveComponent("BThead");return vue.openBlock(),vue.createBlock(s,vue.normalizeProps(vue.guardReactiveProps(e.$attrs)),{default:vue.withCtx(()=>[vue.renderSlot(e.$slots,"default")]),_:3},16)}const VsTableHead=LoadingSpinner._export_sfc(_sfc_main$t,[["render",_sfc_render$k]]),_sfc_main$s={name:"VsTableHeaderCell",status:"prototype",release:"0.0.1",components:{BTh:LoadingSpinner.Ea},props:{stackedHeading:{type:String,default:void 0}}};function _sfc_render$j(e,n,t,r,a,o){const s=vue.resolveComponent("BTh");return vue.openBlock(),vue.createBlock(s,vue.mergeProps({"data-test":"vs-table-header-cell","stacked-heading":t.stackedHeading},e.$attrs),{default:vue.withCtx(()=>[vue.renderSlot(e.$slots,"default")]),_:3},16,["stacked-heading"])}const VsTableHeaderCell=LoadingSpinner._export_sfc(_sfc_main$s,[["render",_sfc_render$j]]),_sfc_main$r={name:"VsTableBody",status:"prototype",release:"0.0.1",components:{BTbody:LoadingSpinner.Bn}};function _sfc_render$i(e,n,t,r,a,o){const s=vue.resolveComponent("BTbody");return vue.openBlock(),vue.createBlock(s,vue.normalizeProps(vue.guardReactiveProps(e.$attrs)),{default:vue.withCtx(()=>[vue.renderSlot(e.$slots,"default")]),_:3},16)}const VsTableBody=LoadingSpinner._export_sfc(_sfc_main$r,[["render",_sfc_render$i]]),_sfc_main$q={name:"VsTableRow",status:"prototype",release:"0.0.1",components:{BTr:LoadingSpinner.Je}};function _sfc_render$h(e,n,t,r,a,o){const s=vue.resolveComponent("BTr");return vue.openBlock(),vue.createBlock(s,vue.normalizeProps(vue.guardReactiveProps(e.$attrs)),{default:vue.withCtx(()=>[vue.renderSlot(e.$slots,"default")]),_:3},16)}const VsTableRow=LoadingSpinner._export_sfc(_sfc_main$q,[["render",_sfc_render$h]]),_sfc_main$p={name:"VsTableDataCell",status:"prototype",release:"0.0.1",components:{BTd:LoadingSpinner.St},props:{stackedHeading:{type:String,default:null}}};function _sfc_render$g(e,n,t,r,a,o){const s=vue.resolveComponent("BTd");return vue.openBlock(),vue.createBlock(s,vue.mergeProps({"data-test":"vs-table-data-cell","stacked-heading":t.stackedHeading},e.$attrs,{scope:null}),{default:vue.withCtx(()=>[vue.renderSlot(e.$slots,"default")]),_:3},16,["stacked-heading"])}const VsTableDataCell=LoadingSpinner._export_sfc(_sfc_main$p,[["render",_sfc_render$g]]),_sfc_main$o={name:"VsTableFooter",status:"prototype",release:"0.0.1",components:{BTfoot:LoadingSpinner.Pa}};function _sfc_render$f(e,n,t,r,a,o){const s=vue.resolveComponent("BTfoot");return vue.openBlock(),vue.createBlock(s,vue.mergeProps(e.$attrs,{role:"rowgroup"}),{default:vue.withCtx(()=>[vue.renderSlot(e.$slots,"default")]),_:3},16)}const VsTableFooter=LoadingSpinner._export_sfc(_sfc_main$o,[["render",_sfc_render$f]]),_sfc_main$n={name:"VsSkiScotlandCard",status:"prototype",release:"0.0.1",components:{VsImg:LoadingSpinner.VsImg,VsHeading:LoadingSpinner.VsHeading,VsIcon:LoadingSpinner.VsIcon,VsWarning:LoadingSpinner.VsWarning,VsLoadingSpinner:LoadingSpinner.VsLoading,VsButton:LoadingSpinner.VsButton,VsTable,VsTableHead,VsTableHeaderCell,VsTableBody,VsTableRow,VsTableDataCell,VsTableFooter},props:{centreInfoUrl:{type:String,default:""},locale:{type:String,default:"en-gb"},timeoutDuration:{type:Number,default:3e4},lastUpdatedLabel:{type:String,default:"Last Updated"},liftsLabel:{type:String,default:"Lifts"},runsLabel:{type:String,default:"Runs"},runsLiftsStatusLabel:{type:String,default:"Run/Lift Status"},statusLabel:{type:String,default:"Status"},summaryClosedLabel:{type:String,default:"Closed"},summaryOpenLabel:{type:String,default:"Open"},summaryOpeningLabel:{type:String,default:"Opening"},summaryLimitedPatrolLabel:{type:String,default:"Limited Patrol"},summaryOnHoldLabel:{type:String,default:"On Hold"},imgSrc:{required:!0,type:String},imgAlt:{type:String,default:""},pisteMapLabel:{type:String,default:"View Piste Map"},moreDetailsLabel:{type:String,default:"More Details"},pisteMapLink:{type:String,default:""},moreDetailsLink:{type:String,required:!0,default:"#"}},data(){return{statusSummary:{runs:{open:0,opening:0,closed:0,onHold:0,limitedPatrol:0},lifts:{open:0,opening:0,closed:0,onHold:0,limitedPatrol:0}},runs:[],lifts:[],lastUpdate:"",jsDisabled:!0,isLoading:!0,displayError:!1}},mounted(){this.centreInfoUrl&&this.retrieveCentreInfo(),this.jsDisabled=!1},methods:{retrieveCentreInfo(){const e=setTimeout(()=>{this.displayError=!0},this.timeoutDuration);LoadingSpinner.axios.get(this.centreInfoUrl).then(n=>{const t=this.cleanData(n.data);this.processLifts(t.lifts),t.runs&&this.processRuns(t.runs),this.processLastUpdate(t.lastUpdate),this.isLoading=!1,clearTimeout(e)}).catch(()=>{this.runStatusInfo=null,this.displayError=!0,this.isLoading=!1,clearTimeout(e)})},cleanData(e){const n={contact:e.contact,report:e.report};if(e.snowReport)n.lastUpdate=e.snowReport.lastupdate,n.lifts=e.lifts.sector.items,n.runs=e.runs.items,this.isCairngorms=!0;else if(n.lastUpdate=e.lastupdate,[n.lifts]=e.lift.sectors,n.lifts=n.lifts.lifts,e.run.areas){const t=e.run.areas.map(r=>r.runs).reduce((r,a)=>r.concat(a)).filter((r,a,o)=>a===o.findIndex(s=>s.name===r.name));n.runs=t}return n},processLastUpdate(e){const n=new Date(e.year,parseInt(e.month,10)-1,e.day),t={year:"numeric",month:"long",day:"numeric"},r=n.toLocaleDateString(this.locale,t);this.lastUpdate=`${e.hour24}:${e.minute} - ${r}`},processLifts(e){for(let n=0;n<e.length;n++)switch(e[n].status){case"4":case 4:this.statusSummary.lifts.onHold+=1;break;case"3":case 3:this.statusSummary.lifts.limitedPatrol+=1;break;case"2":case 2:this.statusSummary.lifts.opening+=1;break;case"1":case 1:this.statusSummary.lifts.open+=1;break;default:this.statusSummary.lifts.closed+=1;break}this.lifts=e},processRuns(e){for(let n=0;n<e.length;n++)switch(e[n].status){case"4":case 4:this.statusSummary.runs.onHold+=1;break;case"3":case 3:this.statusSummary.runs.limitedPatrol+=1;break;case"2":case 2:this.statusSummary.runs.opening+=1;break;case"1":case 1:this.statusSummary.runs.open+=1;break;default:this.statusSummary.runs.closed+=1;break}this.runs=e}}},_hoisted_1$i={class:"card vs-ski-scotland-card","data-test":"vs-ski-scotland-card"},_hoisted_2$e={class:"vs-ski-scotland-card__img-container"},_hoisted_3$a={class:"card-body"},_hoisted_4$8={key:0,class:"text-center pb-200 position-relative"},_hoisted_5$7={"data-test":"vs-ski__status-label"},_hoisted_6$7={"data-test":"vs-ski__runs-label"},_hoisted_7$6={"data-test":"vs-ski__lifts-label"},_hoisted_8$3={"data-test":"vs-ski__open-label"},_hoisted_9$3={"data-test":"vs-ski__limited-patrol-label"},_hoisted_10$3={"data-test":"vs-ski__opening-label"},_hoisted_11$2={"data-test":"vs-ski__closed-label"},_hoisted_12$1={"data-test":"vs-ski__on-hold-label"},_hoisted_13$1={"data-test":"vs-ski__last-updated-label"};function _sfc_render$e(e,n,t,r,a,o){const s=vue.resolveComponent("VsImg"),i=vue.resolveComponent("VsHeading"),l=vue.resolveComponent("VsLoadingSpinner"),u=vue.resolveComponent("VsWarning"),c=vue.resolveComponent("VsTableHeaderCell"),d=vue.resolveComponent("VsTableHead"),f=vue.resolveComponent("VsIcon"),v=vue.resolveComponent("VsTableDataCell"),p=vue.resolveComponent("VsTableRow"),h=vue.resolveComponent("VsTableBody"),m=vue.resolveComponent("VsTableFooter"),_=vue.resolveComponent("VsTable"),g=vue.resolveComponent("VsButton");return vue.openBlock(),vue.createElementBlock("div",_hoisted_1$i,[vue.createElementVNode("div",_hoisted_2$e,[t.imgSrc?(vue.openBlock(),vue.createBlock(s,{key:0,src:t.imgSrc,alt:t.imgAlt,class:"vs-ski-scotland-card__img","data-test":"vs-ski-scotland-card__img"},null,8,["src","alt"])):vue.createCommentVNode("",!0)]),vue.createElementVNode("div",_hoisted_3$a,[vue.createVNode(i,{level:"3","heading-style":"heading-m"},{default:vue.withCtx(()=>[vue.renderSlot(e.$slots,"centre-name")]),_:3}),a.jsDisabled||a.isLoading||a.displayError?(vue.openBlock(),vue.createElementBlock("div",_hoisted_4$8,[!a.jsDisabled&&a.isLoading?(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:0},[vue.createVNode(l,{class:"mb-100 d-block"}),vue.renderSlot(e.$slots,"data-loading")],64)):vue.createCommentVNode("",!0),!a.jsDisabled&&a.displayError?(vue.openBlock(),vue.createBlock(u,{key:1,size:"small","data-test":"vs-ski-scotland-card__error"},{default:vue.withCtx(()=>[vue.renderSlot(e.$slots,"data-unavailable")]),_:3})):vue.createCommentVNode("",!0),a.jsDisabled?(vue.openBlock(),vue.createBlock(u,{key:2,size:"small","data-test":"vs-ski-scotland-card__js-disabled"},{default:vue.withCtx(()=>[vue.renderSlot(e.$slots,"js-required")]),_:3})):vue.createCommentVNode("",!0)])):vue.createCommentVNode("",!0),!a.jsDisabled&&!a.isLoading&&!a.displayError?(vue.openBlock(),vue.createBlock(_,{key:1,"table-caption":t.runsLiftsStatusLabel},{default:vue.withCtx(()=>[vue.createVNode(d,null,{default:vue.withCtx(()=>[vue.createVNode(c,null,{default:vue.withCtx(()=>[vue.createElementVNode("span",_hoisted_5$7,vue.toDisplayString(t.statusLabel),1)]),_:1}),a.runs.length?(vue.openBlock(),vue.createBlock(c,{key:0},{default:vue.withCtx(()=>[vue.createElementVNode("span",_hoisted_6$7,vue.toDisplayString(t.runsLabel),1)]),_:1})):vue.createCommentVNode("",!0),vue.createVNode(c,null,{default:vue.withCtx(()=>[vue.createElementVNode("span",_hoisted_7$6,vue.toDisplayString(t.liftsLabel),1)]),_:1})]),_:1}),vue.createVNode(h,null,{default:vue.withCtx(()=>[vue.createVNode(p,null,{default:vue.withCtx(()=>[vue.createVNode(v,null,{default:vue.withCtx(()=>[vue.createVNode(f,{icon:"fa-regular fa-check",size:"xs",class:"me-050 fa-fw"}),vue.createElementVNode("span",_hoisted_8$3,vue.toDisplayString(t.summaryOpenLabel),1)]),_:1}),a.runs.length?(vue.openBlock(),vue.createBlock(v,{key:0},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(a.statusSummary.runs.open)+"/"+vue.toDisplayString(a.runs.length),1)]),_:1})):vue.createCommentVNode("",!0),vue.createVNode(v,null,{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(a.statusSummary.lifts.open)+"/"+vue.toDisplayString(a.lifts.length),1)]),_:1})]),_:1}),a.statusSummary.runs.limitedPatrol||a.statusSummary.lifts.limitedPatrol?(vue.openBlock(),vue.createBlock(p,{key:0},{default:vue.withCtx(()=>[vue.createVNode(v,null,{default:vue.withCtx(()=>[vue.createVNode(f,{icon:"fa-regular fa-ski-boot-ski",size:"xs",class:"me-050 fa-fw"}),vue.createElementVNode("span",_hoisted_9$3,vue.toDisplayString(t.summaryLimitedPatrolLabel),1)]),_:1}),a.runs.length?(vue.openBlock(),vue.createBlock(v,{key:0},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(a.statusSummary.runs.limitedPatrol)+"/"+vue.toDisplayString(a.runs.length),1)]),_:1})):vue.createCommentVNode("",!0),vue.createVNode(v,null,{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(a.statusSummary.lifts.limitedPatrol)+"/"+vue.toDisplayString(a.lifts.length),1)]),_:1})]),_:1})):vue.createCommentVNode("",!0),vue.createVNode(p,null,{default:vue.withCtx(()=>[vue.createVNode(v,null,{default:vue.withCtx(()=>[vue.createVNode(f,{icon:"fa-regular fa-timer",size:"xs",class:"me-050 fa-fw"}),vue.createElementVNode("span",_hoisted_10$3,vue.toDisplayString(t.summaryOpeningLabel),1)]),_:1}),a.runs.length?(vue.openBlock(),vue.createBlock(v,{key:0},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(a.statusSummary.runs.opening)+"/"+vue.toDisplayString(a.runs.length),1)]),_:1})):vue.createCommentVNode("",!0),vue.createVNode(v,null,{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(a.statusSummary.lifts.opening)+"/"+vue.toDisplayString(a.lifts.length),1)]),_:1})]),_:1}),vue.createVNode(p,null,{default:vue.withCtx(()=>[vue.createVNode(v,null,{default:vue.withCtx(()=>[vue.createVNode(f,{icon:"fa-regular fa-ban",size:"xs",class:"me-050 fa-fw"}),vue.createElementVNode("span",_hoisted_11$2,vue.toDisplayString(t.summaryClosedLabel),1)]),_:1}),a.runs.length?(vue.openBlock(),vue.createBlock(v,{key:0},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(a.statusSummary.runs.closed)+"/"+vue.toDisplayString(a.runs.length),1)]),_:1})):vue.createCommentVNode("",!0),vue.createVNode(v,null,{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(a.statusSummary.lifts.closed)+"/"+vue.toDisplayString(a.lifts.length),1)]),_:1})]),_:1}),a.statusSummary.runs.onHold||a.statusSummary.lifts.onHold?(vue.openBlock(),vue.createBlock(p,{key:1},{default:vue.withCtx(()=>[vue.createVNode(v,null,{default:vue.withCtx(()=>[vue.createVNode(f,{icon:"fa-regular fa-hourglass",size:"xs",class:"me-050 fa-fw"}),vue.createElementVNode("span",_hoisted_12$1,vue.toDisplayString(t.summaryOnHoldLabel),1)]),_:1}),a.runs.length?(vue.openBlock(),vue.createBlock(v,{key:0},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(a.statusSummary.runs.onHold)+"/"+vue.toDisplayString(a.runs.length),1)]),_:1})):vue.createCommentVNode("",!0),vue.createVNode(v,null,{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(a.statusSummary.lifts.onHold)+"/"+vue.toDisplayString(a.lifts.length),1)]),_:1})]),_:1})):vue.createCommentVNode("",!0)]),_:1}),vue.createVNode(m,null,{default:vue.withCtx(()=>[vue.createVNode(p,null,{default:vue.withCtx(()=>[vue.createVNode(v,{colspan:"3",role:"cell"},{default:vue.withCtx(()=>[vue.createElementVNode("span",_hoisted_13$1,vue.toDisplayString(t.lastUpdatedLabel)+": "+vue.toDisplayString(a.lastUpdate),1)]),_:1})]),_:1})]),_:1})]),_:1},8,["table-caption"])):vue.createCommentVNode("",!0),vue.createVNode(g,{variant:"secondary",href:t.pisteMapLink,class:"mb-050",disabled:!t.pisteMapLink},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.pisteMapLabel),1)]),_:1},8,["href","disabled"]),vue.createVNode(g,{href:t.moreDetailsLink},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.moreDetailsLabel),1)]),_:1},8,["href"])])])}const SkiScotlandCard=LoadingSpinner._export_sfc(_sfc_main$n,[["render",_sfc_render$e]]),_sfc_main$m={name:"VsSkiScotlandStatus",status:"prototype",release:"0.0.1",components:{VsTable,VsTableHead,VsTableHeaderCell,VsTableBody,VsTableRow,VsTableDataCell,VsTableFooter,VsContainer:LoadingSpinner.VsContainer,VsRow:LoadingSpinner.VsRow,VsCol:LoadingSpinner.VsCol,VsAccordion,VsAccordionItem,VsIcon:LoadingSpinner.VsIcon,VsLink,VsHeading:LoadingSpinner.VsHeading,VsLoadingSpinner:LoadingSpinner.VsLoading,VsWarning:LoadingSpinner.VsWarning},props:{skiStatusUrl:{type:String,default:""},locale:{type:String,default:"en-gb"},timeoutDuration:{type:Number,default:3e4},currentWeatherLabel:{type:String,default:"Current Weather"},detailedStatusLabel:{type:String,default:"Detailed Status"},difficultLabel:{type:String,default:"Difficult"},easyLabel:{type:String,default:"Easy"},intermediateLabel:{type:String,default:"Intermediate"},itinerariesLabel:{type:String,default:"Itineraries"},lastUpdatedLabel:{type:String,default:"Last Updated"},liftLabel:{type:String,default:"Lift"},liftsLabel:{type:String,default:"Lifts"},liftStatusLabel:{type:String,default:"Lift Status"},newsLabel:{type:String,default:"News From The Slopes"},otherLabel:{type:String,default:"Other"},roadsLabel:{type:String,default:"Road Status"},runLabel:{type:String,default:"Run"},runsLabel:{type:String,default:"Runs"},runsLiftsStatusLabel:{type:String,default:"Run/Lift Status"},runStatusLabel:{type:String,default:"Run Status"},snowConditionsLabel:{type:String,default:"Snow Conditions Full Report"},statusLabel:{type:String,default:"Status"},summaryClosedLabel:{type:String,default:"Closed"},summaryOpenLabel:{type:String,default:"Open"},summaryOpeningLabel:{type:String,default:"Opening"},summaryLimitedPatrolLabel:{type:String,default:"Limited Patrol"},summaryOnHoldLabel:{type:String,default:"On Hold"},statusClosedLabel:{type:String,default:"Closed"},statusOpenLabel:{type:String,default:"Open"},statusOpeningLabel:{type:String,default:"Opening"},statusLimitedPatrolLabel:{type:String,default:"Limited Patrol"},statusOnHoldLabel:{type:String,default:"On Hold"},veryDifficultLabel:{type:String,default:"Very Difficult"},weatherForecastLabel:{type:String,default:"Weather Forecast"},greenLabel:{type:String,default:"Green"},blueLabel:{type:String,default:"Blue"},redLabel:{type:String,default:"Red"},blackLabel:{type:String,default:"Black"},orangeLabel:{type:String,default:"Orange"},greyLabel:{type:String,default:"Grey"}},data(){return{tokens:LoadingSpinner.designTokens,componentId:0,statusSummary:{runs:{open:0,opening:0,closed:0,onHold:0,limitedPatrol:0},lifts:{open:0,opening:0,closed:0,onHold:0,limitedPatrol:0}},lifts:[],runs:[],lastUpdate:"",report:"",currentWeather:"",weatherForecast:"",roadStatus:"",news:"",runLevels:[{colour:"green",colourToken:"",id:"easy",name:this.easyLabel,runs:[]},{colour:"blue",colourToken:"",id:"intermediate",name:this.intermediateLabel,runs:[]},{colour:"red",colourToken:"",id:"difficult",name:this.difficultLabel,runs:[]},{colour:"black",colourToken:"",id:"very-difficult",name:this.veryDifficultLabel,runs:[]},{colour:"orange",colourToken:"",id:"itineraries",name:this.itinerariesLabel,runs:[]},{colour:"grey",colourToken:"",id:"other",name:this.otherLabel,runs:[]}],jsDisabled:!0,isLoading:!0,displayError:!1,isCairngorms:!1}},computed:{filteredRunLevels(){return this.setColourToken().filter(n=>n.runs.length>0)}},mounted(){this.skiStatusUrl&&this.retrieveSkiStatus(),this.id=this._uid,this.jsDisabled=!1},methods:{retrieveSkiStatus(){const e=setTimeout(()=>{this.displayError=!0},this.timeoutDuration);LoadingSpinner.axios.get(this.skiStatusUrl).then(n=>{const t=this.cleanData(n.data);this.processLifts(t.lifts),t.runs&&this.processRuns(t.runs),this.processLastUpdate(t.lastUpdate),this.processFullReport(t.report),this.isLoading=!1,clearTimeout(e)}).catch(()=>{this.runStatusInfo=null,this.displayError=!0,this.isLoading=!1,clearTimeout(e)})},cleanData(e){const n={contact:e.contact,report:e.report};if(e.snowReport)n.lastUpdate=e.snowReport.lastupdate,n.lifts=e.lifts.sector.items,n.runs=e.runs.items,this.isCairngorms=!0;else if(n.lastUpdate=e.lastupdate,[n.lifts]=e.lift.sectors,n.lifts=n.lifts.lifts,e.run.areas){const t=e.run.areas.map(r=>r.runs).reduce((r,a)=>r.concat(a)).filter((r,a,o)=>a===o.findIndex(s=>s.name===r.name));n.runs=t}if(n.runs)for(let t=0;t<n.runs.length;t++)n.runs[t].difficulty===null&&(n.runs[t].difficulty="orange");return n},processFullReport(e){this.report=e.runs,this.currentWeather=e.current_weather_conditions,this.weatherForecast=e.weather_forecast,this.roadStatus=e.access_roads,this.news=e.news_from_the_slopes},processLastUpdate(e){const n=new Date(e.year,parseInt(e.month,10)-1,e.day),t={year:"numeric",month:"long",day:"numeric"},r=n.toLocaleDateString(this.locale,t);this.lastUpdate=`${e.hour24}:${e.minute} - ${r}`},processLifts(e){for(let n=0;n<e.length;n++)switch(e[n].status){case"4":case 4:this.statusSummary.lifts.onHold+=1;break;case"3":case 3:this.statusSummary.lifts.limitedPatrol+=1;break;case"2":case 2:this.statusSummary.lifts.opening+=1;break;case"1":case 1:this.statusSummary.lifts.open+=1;break;default:this.statusSummary.lifts.closed+=1;break}this.lifts=e},processRuns(e){for(let n=0;n<e.length;n++){switch(e[n].status){case"4":case 4:this.statusSummary.runs.onHold+=1;break;case"3":case 3:this.statusSummary.runs.limitedPatrol+=1;break;case"2":case 2:this.statusSummary.runs.opening+=1;break;case"1":case 1:this.statusSummary.runs.open+=1;break;default:this.statusSummary.runs.closed+=1;break}for(let t=0;t<this.runLevels.length;t++)this.runLevels[t].colour===e[n].difficulty&&this.runLevels[t].runs.push(e[n])}this.runs=e},getColourLabel(e){return this[`${e}Label`]},setColourToken(){return this.runLevels.map(({...e})=>({...e,colourToken:this.tokens[`vs-color-icon-ski-${e.id}`]}))}}},_hoisted_1$h={class:"vs-ski-scotland-status","data-test":"vs-ski-scotland-status"},_hoisted_2$d={"data-test":"vs-ski__status-label"},_hoisted_3$9={"data-test":"vs-ski__runs-label"},_hoisted_4$7={"data-test":"vs-ski__lifts-label"},_hoisted_5$6={"data-test":"vs-ski__open-label"},_hoisted_6$6={"data-test":"vs-ski__open-label"},_hoisted_7$5={"data-test":"vs-ski__opening-label"},_hoisted_8$2={"data-test":"vs-ski__closed-label"},_hoisted_9$2={"data-test":"vs-ski__open-label"},_hoisted_10$2={"data-test":"vs-ski__last-updated-label"},_hoisted_11$1=["innerHTML"],_hoisted_12=["innerHTML"],_hoisted_13=["innerHTML"],_hoisted_14=["innerHTML"],_hoisted_15=["innerHTML"],_hoisted_16=["data-test"],_hoisted_17={class:"visually-hidden"};function _sfc_render$d(e,n,t,r,a,o){const s=vue.resolveComponent("VsLoadingSpinner"),i=vue.resolveComponent("VsCol"),l=vue.resolveComponent("VsRow"),u=vue.resolveComponent("VsContainer"),c=vue.resolveComponent("VsWarning"),d=vue.resolveComponent("VsHeading"),f=vue.resolveComponent("VsTableHeaderCell"),v=vue.resolveComponent("VsTableHead"),p=vue.resolveComponent("VsIcon"),h=vue.resolveComponent("VsTableDataCell"),m=vue.resolveComponent("VsTableRow"),_=vue.resolveComponent("VsTableBody"),g=vue.resolveComponent("VsTableFooter"),b=vue.resolveComponent("VsTable"),S=vue.resolveComponent("VsLink"),C=vue.resolveComponent("VsAccordionItem"),V=vue.resolveComponent("VsAccordion");return vue.openBlock(),vue.createElementBlock("div",_hoisted_1$h,[!a.jsDisabled&&a.isLoading?(vue.openBlock(),vue.createBlock(u,{key:0},{default:vue.withCtx(()=>[vue.createVNode(l,null,{default:vue.withCtx(()=>[vue.createVNode(i,{class:"text-center py-100"},{default:vue.withCtx(()=>[vue.createVNode(s),vue.renderSlot(e.$slots,"data-loading")]),_:3})]),_:3})]),_:3})):vue.createCommentVNode("",!0),!a.jsDisabled&&a.displayError?(vue.openBlock(),vue.createBlock(u,{key:1},{default:vue.withCtx(()=>[vue.createVNode(l,null,{default:vue.withCtx(()=>[vue.createVNode(i,{class:"text-center py-100"},{default:vue.withCtx(()=>[vue.createVNode(c,null,{default:vue.withCtx(()=>[vue.renderSlot(e.$slots,"data-unavailable")]),_:3})]),_:3})]),_:3})]),_:3})):vue.createCommentVNode("",!0),vue.createVNode(u,null,{default:vue.withCtx(()=>[vue.createVNode(l,null,{default:vue.withCtx(()=>[a.jsDisabled?(vue.openBlock(),vue.createBlock(i,{key:0,cols:"12",md:"6","data-test":"vs-ski__js-disabled"},{default:vue.withCtx(()=>[vue.createVNode(c,null,{default:vue.withCtx(()=>[vue.renderSlot(e.$slots,"js-required")]),_:3})]),_:3})):vue.createCommentVNode("",!0),!a.jsDisabled&&!a.isLoading&&!a.displayError?(vue.openBlock(),vue.createBlock(i,{key:1,cols:"12",md:"6"},{default:vue.withCtx(()=>[vue.createVNode(d,{level:"3","heading-style":"heading-xs","data-test":"vs-ski__runs-lifts-status-label",class:"d-none d-md-block"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.runsLiftsStatusLabel),1)]),_:1}),vue.createVNode(b,{"table-caption":t.runsLiftsStatusLabel},{default:vue.withCtx(()=>[vue.createVNode(v,null,{default:vue.withCtx(()=>[vue.createVNode(f,null,{default:vue.withCtx(()=>[vue.createElementVNode("span",_hoisted_2$d,vue.toDisplayString(t.statusLabel),1)]),_:1}),a.runs.length?(vue.openBlock(),vue.createBlock(f,{key:0},{default:vue.withCtx(()=>[vue.createElementVNode("span",_hoisted_3$9,vue.toDisplayString(t.runsLabel),1)]),_:1})):vue.createCommentVNode("",!0),vue.createVNode(f,null,{default:vue.withCtx(()=>[vue.createElementVNode("span",_hoisted_4$7,vue.toDisplayString(t.liftsLabel),1)]),_:1})]),_:1}),vue.createVNode(_,null,{default:vue.withCtx(()=>[vue.createVNode(m,null,{default:vue.withCtx(()=>[vue.createVNode(h,null,{default:vue.withCtx(()=>[vue.createVNode(p,{icon:"fa-regular fa-check",size:"xs",class:"me-050"}),vue.createElementVNode("span",_hoisted_5$6,vue.toDisplayString(t.summaryOpenLabel),1)]),_:1}),a.runs.length?(vue.openBlock(),vue.createBlock(h,{key:0},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(a.statusSummary.runs.open)+"/"+vue.toDisplayString(a.runs.length),1)]),_:1})):vue.createCommentVNode("",!0),vue.createVNode(h,null,{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(a.statusSummary.lifts.open)+"/"+vue.toDisplayString(a.lifts.length),1)]),_:1})]),_:1}),a.statusSummary.runs.limitedPatrol||a.statusSummary.lifts.limitedPatrol?(vue.openBlock(),vue.createBlock(m,{key:0},{default:vue.withCtx(()=>[vue.createVNode(h,null,{default:vue.withCtx(()=>[vue.createVNode(p,{icon:"fa-regular fa-ski-boot-ski",size:"xs",class:"me-050"}),vue.createElementVNode("span",_hoisted_6$6,vue.toDisplayString(t.summaryLimitedPatrolLabel),1)]),_:1}),a.runs.length?(vue.openBlock(),vue.createBlock(h,{key:0},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(a.statusSummary.runs.limitedPatrol)+"/"+vue.toDisplayString(a.runs.length),1)]),_:1})):vue.createCommentVNode("",!0),vue.createVNode(h,null,{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(a.statusSummary.lifts.limitedPatrol)+"/"+vue.toDisplayString(a.lifts.length),1)]),_:1})]),_:1})):vue.createCommentVNode("",!0),vue.createVNode(m,null,{default:vue.withCtx(()=>[vue.createVNode(h,null,{default:vue.withCtx(()=>[vue.createVNode(p,{icon:"fa-regular fa-timer",size:"xs",class:"me-050"}),vue.createElementVNode("span",_hoisted_7$5,vue.toDisplayString(t.summaryOpeningLabel),1)]),_:1}),a.runs.length?(vue.openBlock(),vue.createBlock(h,{key:0},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(a.statusSummary.runs.opening)+"/"+vue.toDisplayString(a.runs.length),1)]),_:1})):vue.createCommentVNode("",!0),vue.createVNode(h,null,{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(a.statusSummary.lifts.opening)+"/"+vue.toDisplayString(a.lifts.length),1)]),_:1})]),_:1}),vue.createVNode(m,null,{default:vue.withCtx(()=>[vue.createVNode(h,null,{default:vue.withCtx(()=>[vue.createVNode(p,{icon:"fa-regular fa-ban",size:"xs",class:"me-050"}),vue.createElementVNode("span",_hoisted_8$2,vue.toDisplayString(t.summaryClosedLabel),1)]),_:1}),a.runs.length?(vue.openBlock(),vue.createBlock(h,{key:0},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(a.statusSummary.runs.closed)+"/"+vue.toDisplayString(a.runs.length),1)]),_:1})):vue.createCommentVNode("",!0),vue.createVNode(h,null,{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(a.statusSummary.lifts.closed)+"/"+vue.toDisplayString(a.lifts.length),1)]),_:1})]),_:1}),a.statusSummary.runs.onHold||a.statusSummary.lifts.onHold?(vue.openBlock(),vue.createBlock(m,{key:1},{default:vue.withCtx(()=>[vue.createVNode(h,null,{default:vue.withCtx(()=>[vue.createVNode(p,{icon:"fa-regular fa-hourglass",size:"xs",class:"me-050"}),vue.createElementVNode("span",_hoisted_9$2,vue.toDisplayString(t.summaryOnHoldLabel),1)]),_:1}),a.runs.length?(vue.openBlock(),vue.createBlock(h,{key:0},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(a.statusSummary.runs.onHold)+"/"+vue.toDisplayString(a.runs.length),1)]),_:1})):vue.createCommentVNode("",!0),vue.createVNode(h,null,{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(a.statusSummary.lifts.onHold)+"/"+vue.toDisplayString(a.lifts.length),1)]),_:1})]),_:1})):vue.createCommentVNode("",!0)]),_:1}),vue.createVNode(g,null,{default:vue.withCtx(()=>[vue.createVNode(m,null,{default:vue.withCtx(()=>[vue.createVNode(h,{colspan:"3",role:"cell"},{default:vue.withCtx(()=>[vue.createElementVNode("span",_hoisted_10$2,vue.toDisplayString(t.lastUpdatedLabel)+": "+vue.toDisplayString(a.lastUpdate),1)]),_:1})]),_:1})]),_:1})]),_:1},8,["table-caption"]),vue.createVNode(S,{href:`#vs-ski-scotland-status__detailed-status-${e.id}`,type:"default",class:"vs-ski-scotland-status__detailed-status-link"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.detailedStatusLabel),1)]),_:1},8,["href"])]),_:1})):vue.createCommentVNode("",!0),vue.createVNode(i,{cols:"12",md:"5","offset-md":"1",class:"vs-ski-scotland-status__centre-info"},{default:vue.withCtx(()=>[vue.renderSlot(e.$slots,"centre-information")]),_:3})]),_:3}),!a.jsDisabled&&!a.isLoading&&!a.displayError?(vue.openBlock(),vue.createBlock(l,{key:0},{default:vue.withCtx(()=>[vue.createVNode(i,{cols:"12",md:"9",class:"vs-ski-scotland-status__full-report"},{default:vue.withCtx(()=>[vue.createVNode(d,{level:"3","heading-style":"heading-l","data-test":"vs-ski__snow-conditions-label"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.snowConditionsLabel),1)]),_:1}),vue.createElementVNode("div",{innerHTML:a.report},null,8,_hoisted_11$1),a.currentWeather.length?(vue.openBlock(),vue.createBlock(d,{key:0,level:"4","heading-style":"heading-xs","data-test":"vs-ski__current-weather-label"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.currentWeatherLabel),1)]),_:1})):vue.createCommentVNode("",!0),a.currentWeather.length?(vue.openBlock(),vue.createElementBlock("div",{key:1,innerHTML:a.currentWeather},null,8,_hoisted_12)):vue.createCommentVNode("",!0),a.weatherForecast.length?(vue.openBlock(),vue.createBlock(d,{key:2,level:"4","heading-style":"heading-xs","data-test":"vs-ski__weather-forecast-label"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.weatherForecastLabel),1)]),_:1})):vue.createCommentVNode("",!0),a.weatherForecast.length?(vue.openBlock(),vue.createElementBlock("div",{key:3,innerHTML:a.weatherForecast},null,8,_hoisted_13)):vue.createCommentVNode("",!0),a.roadStatus.length?(vue.openBlock(),vue.createBlock(d,{key:4,level:"4","heading-style":"heading-xs","data-test":"vs-ski__roads-label"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.roadsLabel),1)]),_:1})):vue.createCommentVNode("",!0),a.roadStatus.length?(vue.openBlock(),vue.createElementBlock("div",{key:5,innerHTML:a.roadStatus},null,8,_hoisted_14)):vue.createCommentVNode("",!0),a.news.length?(vue.openBlock(),vue.createBlock(d,{key:6,level:"4","heading-style":"heading-xs","data-test":"vs-ski__news-label"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.newsLabel),1)]),_:1})):vue.createCommentVNode("",!0),a.news.length?(vue.openBlock(),vue.createElementBlock("div",{key:7,innerHTML:a.news},null,8,_hoisted_15)):vue.createCommentVNode("",!0)]),_:1})]),_:1})):vue.createCommentVNode("",!0),!a.jsDisabled&&!a.isLoading&&!a.displayError?(vue.openBlock(),vue.createBlock(l,{key:1},{default:vue.withCtx(()=>[vue.createVNode(i,{cols:"12",md:"9"},{default:vue.withCtx(()=>[vue.createVNode(d,{level:"3","heading-style":"heading-l","data-test":"vs-ski__lift-status-label",id:`vs-ski-scotland-status__detailed-status-${e.id}`},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.liftStatusLabel),1)]),_:1},8,["id"]),vue.createVNode(b,{"table-caption":t.liftStatusLabel,class:"vs-ski-scotland-status__run-status-table"},{default:vue.withCtx(()=>[vue.createVNode(v,null,{default:vue.withCtx(()=>[vue.createVNode(f,null,{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.statusLabel),1)]),_:1}),vue.createVNode(f,null,{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.liftLabel),1)]),_:1})]),_:1}),vue.createVNode(_,null,{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(a.lifts,E=>(vue.openBlock(),vue.createBlock(m,{key:E.name},{default:vue.withCtx(()=>[E.status==="0"||E.status===0?(vue.openBlock(),vue.createBlock(h,{key:0},{default:vue.withCtx(()=>[vue.createVNode(p,{icon:"fa-regular fa-ban",size:"xs",class:"me-050"}),vue.createTextVNode(" "+vue.toDisplayString(t.statusClosedLabel),1)]),_:1})):vue.createCommentVNode("",!0),E.status==="1"||E.status===1?(vue.openBlock(),vue.createBlock(h,{key:1},{default:vue.withCtx(()=>[vue.createVNode(p,{icon:"fa-regular fa-check",size:"xs",class:"me-050"}),vue.createTextVNode(" "+vue.toDisplayString(t.statusOpenLabel),1)]),_:1})):vue.createCommentVNode("",!0),E.status==="2"||E.status===2?(vue.openBlock(),vue.createBlock(h,{key:2},{default:vue.withCtx(()=>[vue.createVNode(p,{icon:"fa-regular fa-timer",size:"xs",class:"me-050"}),vue.createTextVNode(" "+vue.toDisplayString(t.statusOpeningLabel),1)]),_:1})):vue.createCommentVNode("",!0),E.status==="3"||E.status===3?(vue.openBlock(),vue.createBlock(h,{key:3},{default:vue.withCtx(()=>[vue.createVNode(p,{icon:"fa-regular fa-ski-boot-ski",size:"xs",class:"me-050"}),vue.createTextVNode(" "+vue.toDisplayString(t.statusLimitedPatrolLabel),1)]),_:1})):vue.createCommentVNode("",!0),E.status==="4"||E.status===4?(vue.openBlock(),vue.createBlock(h,{key:4},{default:vue.withCtx(()=>[vue.createVNode(p,{icon:"fa-regular fa-hourglass",size:"xs",class:"me-050"}),vue.createTextVNode(" "+vue.toDisplayString(t.statusOnHoldLabel),1)]),_:1})):vue.createCommentVNode("",!0),vue.createVNode(h,null,{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(E.name),1)]),_:2},1024)]),_:2},1024))),128))]),_:1}),vue.createVNode(g,null,{default:vue.withCtx(()=>[vue.createVNode(m,null,{default:vue.withCtx(()=>[vue.createVNode(h,{colspan:"2",role:"cell"},{default:vue.withCtx(()=>[vue.createElementVNode("p",null,vue.toDisplayString(t.lastUpdatedLabel)+": "+vue.toDisplayString(a.lastUpdate),1)]),_:1})]),_:1})]),_:1})]),_:1},8,["table-caption"])]),_:1})]),_:1})):vue.createCommentVNode("",!0),!a.jsDisabled&&!a.isLoading&&!a.displayError&&a.runs.length?(vue.openBlock(),vue.createBlock(l,{key:2},{default:vue.withCtx(()=>[vue.createVNode(i,{cols:"12",md:"9"},{default:vue.withCtx(()=>[vue.createVNode(d,{level:"3","heading-style":"heading-l","data-test":"vs-ski__run-status-label"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.runStatusLabel),1)]),_:1}),(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(o.filteredRunLevels,E=>(vue.openBlock(),vue.createElementBlock("div",{key:E.name},[vue.createVNode(V,null,{default:vue.withCtx(()=>[vue.createVNode(C,{variant:"subtle","control-id":`accordion_item_${E.name}`,"colour-badge":E.colourToken},{title:vue.withCtx(()=>[vue.createElementVNode("div",{"data-test":`vs-ski__${E.name}-label`,class:"d-inline-block"},[vue.createElementVNode("span",_hoisted_17,vue.toDisplayString(o.getColourLabel(E.colour)),1),vue.createTextVNode(" "+vue.toDisplayString(E.name),1)],8,_hoisted_16)]),default:vue.withCtx(()=>[vue.createVNode(b,{"table-caption":`${E.colour} - ${E.name}`,class:"vs-ski-scotland-status__run-status-table"},{default:vue.withCtx(()=>[vue.createVNode(v,null,{default:vue.withCtx(()=>[vue.createVNode(f,null,{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.statusLabel),1)]),_:1}),vue.createVNode(f,null,{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.runLabel),1)]),_:1})]),_:1}),vue.createVNode(_,null,{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(E.runs,$=>(vue.openBlock(),vue.createBlock(m,{key:$.name,"data-test":`vs-ski__${E.name}-row`},{default:vue.withCtx(()=>[$.status==="0"||$.status===0?(vue.openBlock(),vue.createBlock(h,{key:0},{default:vue.withCtx(()=>[vue.createVNode(p,{icon:"fa-regular fa-ban",size:"xs",class:"me-050"}),vue.createTextVNode(" "+vue.toDisplayString(t.statusClosedLabel),1)]),_:1})):vue.createCommentVNode("",!0),$.status==="1"||$.status===1?(vue.openBlock(),vue.createBlock(h,{key:1},{default:vue.withCtx(()=>[vue.createVNode(p,{icon:"fa-regular fa-check",size:"xs",class:"me-050"}),vue.createTextVNode(" "+vue.toDisplayString(t.statusOpenLabel),1)]),_:1})):vue.createCommentVNode("",!0),$.status==="2"||$.status===2?(vue.openBlock(),vue.createBlock(h,{key:2},{default:vue.withCtx(()=>[vue.createVNode(p,{icon:"fa-regular fa-timer",size:"xs",class:"me-050"}),vue.createTextVNode(" "+vue.toDisplayString(t.statusOpeningLabel),1)]),_:1})):vue.createCommentVNode("",!0),$.status==="3"||$.status===3?(vue.openBlock(),vue.createBlock(h,{key:3},{default:vue.withCtx(()=>[vue.createVNode(p,{icon:"fa-regular fa-ski-boot-ski",size:"xs",class:"me-050"}),vue.createTextVNode(" "+vue.toDisplayString(t.statusLimitedPatrolLabel),1)]),_:1})):vue.createCommentVNode("",!0),$.status==="4"||$.status===4?(vue.openBlock(),vue.createBlock(h,{key:4},{default:vue.withCtx(()=>[vue.createVNode(p,{icon:"fa-regular fa-hourglass",size:"xs",class:"me-050"}),vue.createTextVNode(" "+vue.toDisplayString(t.statusOnHoldLabel),1)]),_:1})):vue.createCommentVNode("",!0),vue.createVNode(h,null,{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString($.name),1)]),_:2},1024)]),_:2},1032,["data-test"]))),128))]),_:2},1024),vue.createVNode(g,null,{default:vue.withCtx(()=>[vue.createVNode(m,null,{default:vue.withCtx(()=>[vue.createVNode(h,{colspan:"2",role:"cell"},{default:vue.withCtx(()=>[vue.createElementVNode("p",null,vue.toDisplayString(t.lastUpdatedLabel)+": "+vue.toDisplayString(a.lastUpdate),1)]),_:1})]),_:1})]),_:1})]),_:2},1032,["table-caption"])]),_:2},1032,["control-id","colour-badge"])]),_:2},1024)]))),128))]),_:1})]),_:1})):vue.createCommentVNode("",!0)]),_:3})])}const SkiScotlandStatus=LoadingSpinner._export_sfc(_sfc_main$m,[["render",_sfc_render$d]]),_sfc_main$l={name:"VsSkipTo",status:"prototype",release:"0.0.1",components:{VsLink},props:{skipToText:{type:String,required:!0},hasSearchLink:{type:Boolean,default:!0}},methods:{mainMenuFocus(){const e=document.getElementsByClassName("vs-mega-nav__menu__mobile")[0],n=document.getElementsByClassName("vs-mega-nav-dropdown")[0];if(!this.isUndefined(n)){let t=n.getElementsByClassName("btn")[0];e.offsetParent!==null?(e.querySelectorAll(".btn.dropdown-toggle")[0].click(),t=document.getElementsByClassName("vs-mega-nav-accordion-item--level-1")[0].querySelectorAll(".vs-button.vs-accordion-toggle")[0],setTimeout(()=>{t.focus()},200)):t.focus()}},footerFocus(){const e=document.getElementsByClassName("vs-footer")[0];if(!this.isUndefined(e)){const n=e.getElementsByClassName("vs-footer-accordion-item")[0],t=n.getElementsByClassName("vs-link")[0],r=n.getElementsByClassName("vs-accordion-toggle")[0];r.offsetParent!==null&&!this.isUndefined(r)&&r.click(),!this.isUndefined(e)&&!this.isUndefined(t)&&(e.scrollIntoView(!0),setTimeout(()=>{t.focus()},200))}},isUndefined(e){return typeof e>"u"}}},_hoisted_1$g=["aria-label"],_hoisted_2$c={class:"vs-skip-to__label",id:"skip-to-label"};function _sfc_render$c(e,n,t,r,a,o){const s=vue.resolveComponent("VsLink");return vue.openBlock(),vue.createElementBlock("nav",{class:"vs-skip-to d-flex","data-test":"vs-skip-to","aria-label":t.skipToText},[vue.createElementVNode("p",_hoisted_2$c,vue.toDisplayString(t.skipToText)+": ",1),vue.createVNode(s,{href:"#main-nav","data-test":"vs-skip-to-main-menu",onClick:n[0]||(n[0]=i=>o.mainMenuFocus()),id:"main-menu"},{default:vue.withCtx(()=>[vue.renderSlot(e.$slots,"main-menu-text")]),_:3}),t.hasSearchLink?(vue.openBlock(),vue.createBlock(s,{key:0,href:"#site-search-btn","data-test":"vs-skip-to-search",class:"vs-skip-to__search"},{default:vue.withCtx(()=>[vue.renderSlot(e.$slots,"search-text")]),_:3})):vue.createCommentVNode("",!0),vue.createVNode(s,{href:"#main-heading","data-test":"vs-skip-to-main-content"},{default:vue.withCtx(()=>[vue.renderSlot(e.$slots,"main-content-text")]),_:3}),vue.createVNode(s,{href:"#site-footer",onClick:n[1]||(n[1]=i=>o.footerFocus()),"data-test":"vs-skip-to-footer"},{default:vue.withCtx(()=>[vue.renderSlot(e.$slots,"footer-text")]),_:3})],8,_hoisted_1$g)}const SkipTo=LoadingSpinner._export_sfc(_sfc_main$l,[["render",_sfc_render$c]]),_sfc_main$k={name:"VsSocialCreditLink",status:"prototype",release:"0.0.1",components:{VsLink,VsIcon:LoadingSpinner.VsIcon},props:{credit:{type:String,required:!0},socialPostUrl:{type:String,required:!0},source:{type:String,required:!0,validator:e=>e.match(/(instagram)/)}}},_hoisted_1$f={class:"social-credit","data-test":"vs-social-credit-link"};function _sfc_render$b(e,n,t,r,a,o){const s=vue.resolveComponent("VsIcon"),i=vue.resolveComponent("VsLink");return vue.openBlock(),vue.createElementBlock("div",_hoisted_1$f,[t.source?(vue.openBlock(),vue.createBlock(s,{key:0,icon:`fa-brands fa-${t.source}`,variant:"inverse",size:"xs",class:"me-025","data-test":"vs-social-credit-link__icon"},null,8,["icon"])):vue.createCommentVNode("",!0),vue.createVNode(i,{class:"social-credit__link","data-test":"vs-social-credit-link__link",href:t.socialPostUrl,variant:"on-dark",type:"external"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.credit),1)]),_:1},8,["href"])])}const SocialCreditLink=LoadingSpinner._export_sfc(_sfc_main$k,[["render",_sfc_render$b]]),_sfc_main$j={name:"VsSocialShare",status:"prototype",release:"0.0.1",components:{VsButton:LoadingSpinner.VsButton,VsHeading:LoadingSpinner.VsHeading,VsModuleWrapper,BPopover:LoadingSpinner.Ka,VsRow:LoadingSpinner.VsRow,VsContainer:LoadingSpinner.VsContainer,VsCol:LoadingSpinner.VsCol},provide(){return{referringPageUrl:this.pageUrl,pageTitle:this.pageTitle,noJs:this.noJs}},props:{shareBtnText:{type:String,required:!0},sharePopoverTitle:{type:String,required:!0},pageUrl:{type:String,required:!0},pageTitle:{type:String,default:""},closeAltText:{type:String,required:!0},id:{type:String,required:!0},noJs:{type:Boolean,default:!1}},data(){return{copyLink:!1,renderPopover:!1}},mounted(){this.renderPopover=!0},methods:{onClose(e){this.$refs.popover.hide(e)},onShown(){this.focusFirst()},onHidden(){this.focusRef(this.$refs.shareButton)},onHide(e){this.copyLink&&(e.preventDefault(),this.focusFirst(),this.copyLink=!1)},onCopyLink(){this.copyLink=!0},focusRef(e){this.$nextTick(()=>{this.$nextTick(()=>{(e.$el||e).focus()})})},focusFirst(){this.$nextTick(()=>{this.$nextTick(()=>{this.$refs.popoverShareRow.$el.querySelector(".vs-social-share-item a ").focus()})})},tabFromClose(e){e.shiftKey||(e.preventDefault(),this.focusFirst())},tabBackFromHidden(e){e.shiftKey&&(e.preventDefault(),this.focusRef(this.$refs.closeButton))}}};function _sfc_render$a(e,n,t,r,a,o){const s=vue.resolveComponent("VsButton"),i=vue.resolveComponent("VsHeading"),l=vue.resolveComponent("VsRow"),u=vue.resolveComponent("BPopover"),c=vue.resolveComponent("VsCol"),d=vue.resolveComponent("VsContainer"),f=vue.resolveComponent("VsModuleWrapper");return vue.openBlock(),vue.createElementBlock("div",{class:vue.normalizeClass(["vs-social-share",t.noJs?"vs-module-wrapper__outer--hidden":"vs-module-wrapper__outer--light"]),"data-test":"vs-social-share",ref:"socialShareContainer"},[t.noJs?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createBlock(s,{key:0,class:"vs-social-share__share-btn",variant:"subtle",icon:"fa-regular fa-share-nodes",id:`vs-social-share-popover--${t.id}`,ref:"shareButton"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.shareBtnText),1)]),_:1},8,["id"])),!t.noJs&&a.renderPopover?(vue.openBlock(),vue.createBlock(u,{key:1,"custom-class":"vs-social-share__popover",target:`vs-social-share-popover--${t.id}`,click:!0,container:"body",placement:"left-end",offset:"-100",onShown:o.onShown,onHidden:o.onHidden,onHide:o.onHide,ref:"popover"},{default:vue.withCtx(()=>[vue.createVNode(i,{level:"3",tabindex:"0","heading-style":"heading-m",ref:"shareHeader",class:"vs-social-share__header",onKeydown:n[0]||(n[0]=vue.withKeys(v=>o.tabBackFromHidden(v),["tab"]))},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.sharePopoverTitle),1)]),_:1},512),vue.createVNode(l,{ref:"popoverShareRow"},{default:vue.withCtx(()=>[vue.renderSlot(e.$slots,"default",{onCopyLink:o.onCopyLink})]),_:3},512),vue.createVNode(s,{"icon-only":"",class:"vs-social-share__close-btn",icon:"vs-icon-control-dismiss",variant:"subtle",ref:"closeButton",onClick:o.onClose,onKeydown:n[1]||(n[1]=vue.withKeys(v=>o.tabFromClose(v),["tab"]))},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.closeAltText),1)]),_:1},8,["onClick"])]),_:3},8,["target","onShown","onHidden","onHide"])):vue.createCommentVNode("",!0),t.noJs?(vue.openBlock(),vue.createBlock(f,{key:2,class:"vs-social-share--module-list"},{default:vue.withCtx(()=>[vue.createVNode(d,null,{default:vue.withCtx(()=>[vue.createVNode(l,null,{default:vue.withCtx(()=>[vue.createVNode(c,{cols:"12"},{default:vue.withCtx(()=>[vue.createVNode(i,{level:"2","heading-style":"heading-l",class:"mb-300 mt-0"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.sharePopoverTitle),1)]),_:1})]),_:1})]),_:1}),vue.createVNode(l,{class:"justify-content-center"},{default:vue.withCtx(()=>[vue.renderSlot(e.$slots,"default")]),_:3})]),_:3})]),_:3})):vue.createCommentVNode("",!0)],2)}const SocialShare=LoadingSpinner._export_sfc(_sfc_main$j,[["render",_sfc_render$a]]),socialMediaData={facebook:{color:"#1877f2",icon:"fa-brands fa-facebook",getUrl:(e,n)=>`https://www.facebook.com/sharer/sharer.php?u=${e}&t=${n}`},"x-twitter":{color:"#0F1419",icon:"fa-brands fa-x-twitter",getUrl:(e,n)=>`https://twitter.com/intent/tweet?text=${n}%20@VisitScotland&url=${e}`},pinterest:{color:"#E60023",icon:"fa-brands fa-pinterest",getUrl:e=>`https://www.pinterest.com/pin/create/button/?url=${e}`},whatsapp:{color:"#455a64",icon:"fa-brands fa-whatsapp",getUrl:(e,n)=>`https://wa.me/?text=${n}%20-%20${e}`},email:{color:"#000000",icon:"fa-regular fa-envelope",getUrl:(e,n)=>`mailto:?body=${n}%20-%20${e}&subject=${n}`},link:{color:"#000000",icon:"fa-regular fa-link",getUrl:()=>"#"}},_sfc_main$i={name:"VsSocialShareItem",status:"prototype",release:"0.0.1",components:{VsCol:LoadingSpinner.VsCol,VsLink,VsIcon:LoadingSpinner.VsIcon},mixins:[LoadingSpinner.dataLayerMixin],inject:{referringPageUrl:{default:""},pageTitle:{default:""},noJs:{default:""}},props:{name:{type:String,required:!0,validator:e=>e.match(/(facebook|twitter|pinterest|link|email|whatsapp)/)},linkText:{type:String,required:!0},linkCopiedText:{type:String,default:""}},emits:["copyLinkClicked"],data(){return{show:!1}},computed:{iconColour(){var e;return((e=socialMediaData[this.name])==null?void 0:e.color)||"#200F2E"},iconName(){var e;return((e=socialMediaData[this.name])==null?void 0:e.icon)||"fa-solid fa-link"},shareUrl(){const e=socialMediaData[this.name];return(e==null?void 0:e.getUrl(this.referringPageUrl,this.encodedPageTitle))||"#"},encodedPageTitle(){return encodeURI(this.pageTitle)}},methods:{copyToClipboard(e){if(this.name==="link"){if(this.$emit("copyLinkClicked"),!navigator.clipboard)return;navigator.clipboard.writeText&&navigator.clipboard.writeText(this.referringPageUrl),this.show=!0,setTimeout(()=>{this.show=!1},2e3)}this.trackShareClick(e)},trackShareClick(e){this.createDataLayerObject("socialShareDataEvent",e,this.href)}}},_hoisted_1$e={class:"vs-social-share-item__text"};function _sfc_render$9(e,n,t,r,a,o){const s=vue.resolveComponent("VsIcon"),i=vue.resolveComponent("VsLink"),l=vue.resolveComponent("VsCol");return vue.openBlock(),vue.createBlock(l,{class:"vs-social-share-item","data-test":"vs-social-share-item",cols:4,md:o.noJs?2:4},{default:vue.withCtx(()=>[vue.createVNode(i,{class:"vs-social-share-item__link",href:o.shareUrl,onClick:n[0]||(n[0]=u=>o.copyToClipboard(u)),id:`vs-share-${t.name}`},{default:vue.withCtx(()=>[vue.createVNode(s,{icon:o.iconName,"custom-colour":o.iconColour,size:"xl","small-size":"lg"},null,8,["icon","custom-colour"]),vue.createElementVNode("span",_hoisted_1$e,vue.toDisplayString(a.show?t.linkCopiedText:t.linkText),1)]),_:1},8,["href","id"])]),_:1},8,["md"])}const SocialShareItem=LoadingSpinner._export_sfc(_sfc_main$i,[["render",_sfc_render$9]]),_sfc_main$h={name:"VsSpotlightSection",status:"prototype",release:"0.0.1",components:{VsHeading:LoadingSpinner.VsHeading,VsBody:LoadingSpinner.VsBody,VsButton:LoadingSpinner.VsButton},props:{heading:{type:String,required:!0},description:{type:String,default:""},ctaLink:{type:String,required:!0},ctaText:{type:String,required:!0},imageSrc:{type:String,default:""},compact:{type:Boolean,default:!1}},computed:{spotlightSectionClasses(){return{"vs-spotlight-section":!0,"vs-spotlight-section--compact":this.compact,"vs-spotlight-section--standard":!this.compact,"vs-spotlight-section--no-image":!this.imageSrc}}}},_hoisted_1$d={class:"vs-spotlight-section__overlay"},_hoisted_2$b={class:"row w-100 m-0"},_hoisted_3$8={class:"col-12 col-sm-7 col-md-8 col-lg-7 col-xl-6 align-self-end p-0"},_hoisted_4$6={key:0,class:"col-12 col-sm-5 col-md-4 col-lg-5 col-xl-6 align-self-sm-end text-sm-end p-0"};function _sfc_render$8(e,n,t,r,a,o){const s=vue.resolveComponent("VsHeading"),i=vue.resolveComponent("VsBody"),l=vue.resolveComponent("VsButton");return vue.openBlock(),vue.createElementBlock("section",{class:vue.normalizeClass(o.spotlightSectionClasses),style:vue.normalizeStyle(t.imageSrc?{backgroundImage:`url(${t.imageSrc})`}:{}),"data-test":"vs-spotlight-section"},[vue.createElementVNode("div",_hoisted_1$d,[vue.createElementVNode("div",_hoisted_2$b,[vue.createElementVNode("div",_hoisted_3$8,[vue.createVNode(s,{class:"vs-spotlight-section__heading",level:"2","no-margins":"","heading-style":"heading-xs"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.heading),1)]),_:1}),t.description?(vue.openBlock(),vue.createBlock(i,{key:0,class:"vs-spotlight-section__description","no-margins":""},{default:vue.withCtx(()=>[vue.createElementVNode("p",null,vue.toDisplayString(t.description),1)]),_:1})):vue.createCommentVNode("",!0),t.compact?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createBlock(l,{key:1,class:"vs-spotlight-section__cta-button",href:t.ctaLink,size:"sm",variant:"secondary"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.ctaText),1)]),_:1},8,["href"]))]),t.compact?(vue.openBlock(),vue.createElementBlock("div",_hoisted_4$6,[vue.createVNode(l,{class:"vs-spotlight-section__cta-button",href:t.ctaLink,size:"sm",variant:"secondary"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.ctaText),1)]),_:1},8,["href"])])):vue.createCommentVNode("",!0)])])],6)}const SpotlightSection=LoadingSpinner._export_sfc(_sfc_main$h,[["render",_sfc_render$8]]),_hoisted_1$c={class:"vs-styled-list__list"},_hoisted_2$a={class:"vs-styled-list__source"},_sfc_main$g={__name:"StyledList",props:{source:{type:String,default:null},variant:{type:String,default:"icon",validator:e=>["icon","image","image-horizontal","numbered"].includes(e)}},setup(e){const n=e;return(t,r)=>(vue.openBlock(),vue.createElementBlock("div",{class:vue.normalizeClass(["vs-styled-list",`vs-styled-list--${n.variant}`]),"data-test":"vs-styled-list"},[vue.createVNode(vue.unref(LoadingSpinner.VsContainer),null,{default:vue.withCtx(()=>[vue.createVNode(vue.unref(LoadingSpinner.VsRow),null,{default:vue.withCtx(()=>[vue.createVNode(vue.unref(LoadingSpinner.VsCol),{md:n.variant==="icon"?"8":null},{default:vue.withCtx(()=>[vue.createElementVNode("ul",_hoisted_1$c,[vue.renderSlot(t.$slots,"default")])]),_:3},8,["md"])]),_:3}),t.$slots["list-source"]&&t.$slots["list-source"]()?(vue.openBlock(),vue.createBlock(vue.unref(LoadingSpinner.VsRow),{key:0},{default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_2$a,[vue.renderSlot(t.$slots,"list-source")])]),_:3})):vue.createCommentVNode("",!0)]),_:3})],2))}},_hoisted_1$b={class:"vs-styled-list__item","data-test":"vs-styled-list__item"},_sfc_main$f={__name:"StyledListItem",props:{heading:{type:String,required:!0},headingLevel:{type:Number,default:3,validator:e=>LoadingSpinner.lodashExports.isNumber(e)?e>0&&e<7:e.match(/(1|2|3|4|5|6)/)},imageSrc:{type:String,default:null},variant:{type:String,default:"icon",validator:e=>["icon","image","image-horizontal","numbered"].includes(e)},anchorLink:{type:String,default:""}},setup(e){const n=e;return(t,r)=>(vue.openBlock(),vue.createElementBlock("li",_hoisted_1$b,[vue.createVNode(vue.unref(LoadingSpinner.VsRow),null,{default:vue.withCtx(()=>[n.variant==="image"?(vue.openBlock(),vue.createBlock(vue.unref(LoadingSpinner.VsCol),{key:0,cols:"12",md:"2"},{default:vue.withCtx(()=>[vue.createVNode(LoadingSpinner.VsImg,{src:n.imageSrc},null,8,["src"])]),_:1})):vue.createCommentVNode("",!0),vue.createVNode(vue.unref(LoadingSpinner.VsCol),{md:n.variant==="image"?"10":"12"},{default:vue.withCtx(()=>[n.variant==="image-horizontal"?(vue.openBlock(),vue.createBlock(LoadingSpinner.VsImg,{key:0,src:n.imageSrc},null,8,["src"])):vue.createCommentVNode("",!0),vue.createVNode(LoadingSpinner.VsHeading,{level:n.headingLevel,"heading-style":"heading-xxs",id:e.anchorLink?e.anchorLink:""},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(e.heading),1)]),_:1},8,["level","id"]),vue.createVNode(LoadingSpinner.VsBody,null,{default:vue.withCtx(()=>[vue.renderSlot(t.$slots,"default")]),_:3})]),_:3},8,["md"])]),_:3})]))}},_sfc_main$e={name:"VsSummaryBoxList",status:"prototype",release:"0.0.1"},_hoisted_1$a={class:"vs-summary-box","data-test":"vs-summary-box-list"},_hoisted_2$9={class:"vs-summary-box__list list-unstyled d-flex flex-wrap p-050 p-sm-075"};function _sfc_render$7(e,n,t,r,a,o){return vue.openBlock(),vue.createElementBlock("div",_hoisted_1$a,[vue.createElementVNode("ul",_hoisted_2$9,[vue.renderSlot(e.$slots,"default")])])}const SummaryBoxList=LoadingSpinner._export_sfc(_sfc_main$e,[["render",_sfc_render$7]]),_sfc_main$d={name:"VsSummaryBoxListItem",status:"prototype",release:"0.0.1",components:{VsIcon:LoadingSpinner.VsIcon},props:{text:{type:String,default:""},label:{type:String,default:""},icon:{type:String,default:""},iconLabel:{type:String,default:""}}},_hoisted_1$9={class:"vs-summary-box-item position-relative","data-test":"vs-summary-box-list-item"},_hoisted_2$8={key:0,class:"text-center vs-summary-box-item__label d-block position-absolute w-100","data-test":"vs-summary-box-list-item-label"},_hoisted_3$7={class:"vs-summary-box-item__label-inner"},_hoisted_4$5={key:1,class:"vs-summary-box-item__display position-absolute d-block text-center w-100","data-test":"vs-summary-box-list-item-display"},_hoisted_5$5={key:2,class:"vs-summary-box-item__icon d-flex align-items-center position-absolute justify-content-center w-100","data-test":"vs-summary-box-list-item-icon-with-label"},_hoisted_6$5={class:"icon-wrapper text-end"},_hoisted_7$4={class:"text-wrapper d-block w-auto pt-100"};function _sfc_render$6(e,n,t,r,a,o){const s=vue.resolveComponent("VsIcon");return vue.openBlock(),vue.createElementBlock("li",_hoisted_1$9,[t.label?(vue.openBlock(),vue.createElementBlock("div",_hoisted_2$8,[vue.createElementVNode("span",_hoisted_3$7,vue.toDisplayString(t.label),1)])):vue.createCommentVNode("",!0),t.text?(vue.openBlock(),vue.createElementBlock("div",_hoisted_4$5,[vue.createElementVNode("span",null,vue.toDisplayString(t.text),1)])):vue.createCommentVNode("",!0),t.icon?(vue.openBlock(),vue.createElementBlock("div",_hoisted_5$5,[vue.createElementVNode("div",_hoisted_6$5,[vue.createVNode(s,{icon:t.icon,size:"xl"},null,8,["icon"])]),vue.createElementVNode("div",_hoisted_7$4,[vue.createElementVNode("span",null,vue.toDisplayString(t.iconLabel),1)])])):vue.createCommentVNode("",!0)])}const SummaryBoxListItem=LoadingSpinner._export_sfc(_sfc_main$d,[["render",_sfc_render$6],["__scopeId","data-v-245aae0b"]]),_sfc_main$c={name:"VsSummaryBoxDistanceListItem",status:"prototype",release:"0.0.1",props:{miles:{type:String,default:""},kilometres:{type:String,default:""},distanceLabel:{type:String,default:"Distance"},milesLabel:{type:String,default:"miles"},kilometresLabel:{type:String,default:"km"},showMiles:{type:Boolean,default:!0}}},_hoisted_1$8={class:"vs-summary-box-distance position-relative","data-test":"vs-summary-box-distance-list-item"},_hoisted_2$7={key:0,class:"text-center vs-summary-box-distance__label d-block position-absolute w-100","data-test":"vs-summary-box-distance-list-item-label"},_hoisted_3$6={class:"vs-summary-box-distance__label-inner"},_hoisted_4$4={class:"vs-summary-box-distance__display position-absolute d-block text-center w-100","data-test":"vs-summary-box-distance-display"},_hoisted_5$4={class:"vs-summary-box-distance__display-entry"},_hoisted_6$4={class:"vs-summary-box-distance__display-value"},_hoisted_7$3={class:"vs-summary-box-distance__display-label"},_hoisted_8$1={class:"vs-summary-box-distance__display-entry"},_hoisted_9$1={class:"vs-summary-box-distance__display-value"},_hoisted_10$1={class:"vs-summary-box-distance__display-label"};function _sfc_render$5(e,n,t,r,a,o){return vue.openBlock(),vue.createElementBlock("li",_hoisted_1$8,[t.distanceLabel?(vue.openBlock(),vue.createElementBlock("div",_hoisted_2$7,[vue.createElementVNode("span",_hoisted_3$6,vue.toDisplayString(t.distanceLabel),1)])):vue.createCommentVNode("",!0),vue.createElementVNode("div",_hoisted_4$4,[vue.createElementVNode("div",_hoisted_5$4,[vue.createElementVNode("span",_hoisted_6$4,vue.toDisplayString(t.miles),1),vue.createElementVNode("span",_hoisted_7$3,vue.toDisplayString(t.milesLabel),1)]),n[0]||(n[0]=vue.createElementVNode("hr",{class:"vs-summary-box-distance__divider"},null,-1)),vue.createElementVNode("div",_hoisted_8$1,[vue.createElementVNode("span",_hoisted_9$1,vue.toDisplayString(t.kilometres),1),vue.createElementVNode("span",_hoisted_10$1,vue.toDisplayString(t.kilometresLabel),1)])])])}const SummaryBoxDistanceListItem=LoadingSpinner._export_sfc(_sfc_main$c,[["render",_sfc_render$5],["__scopeId","data-v-935b6579"]]),_sfc_main$b={name:"VsTabs",status:"prototype",release:"0.0.1",components:{BTabs:LoadingSpinner.vc},provide(){return{noContainer:vue.computed(()=>this.noContainer)}},props:{noContainer:{type:Boolean,default:!1}}};function _sfc_render$4(e,n,t,r,a,o){const s=vue.resolveComponent("BTabs");return vue.openBlock(),vue.createElementBlock("div",{class:vue.normalizeClass(t.noContainer?"vs-tabs--no-container":"vs-tabs"),"data-test":"vs-tabs"},[vue.createVNode(s,{"no-container":t.noContainer,align:t.noContainer?"center":null},{default:vue.withCtx(()=>[vue.renderSlot(e.$slots,"default")]),_:3},8,["no-container","align"])],2)}const Tabs=LoadingSpinner._export_sfc(_sfc_main$b,[["render",_sfc_render$4]]),_sfc_main$a={name:"VsTabItem",status:"prototype",release:"0.0.1",components:{VsHeading:LoadingSpinner.VsHeading,BTab:LoadingSpinner.dc},mixins:[LoadingSpinner.dataLayerMixin],inject:["noContainer"],props:{title:{type:String,required:!0}},methods:{trackClick(e){this.createDataLayerObject("tabClickEvent",e,null)}}};function _sfc_render$3(e,n,t,r,a,o){const s=vue.resolveComponent("VsHeading"),i=vue.resolveComponent("BTab");return vue.openBlock(),vue.createBlock(i,{class:"vs-tab__item","data-test":"vs-tab__item","title-link-class":o.noContainer?"vs-tab-link--no-container vs-heading":"vs-tab-link vs-heading",title:t.title,onClick:o.trackClick},{default:vue.withCtx(()=>[vue.createVNode(s,{level:"3","heading-style":"heading-xxs",class:"vs-tab__item__heading"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.title),1)]),_:1}),vue.renderSlot(e.$slots,"default")]),_:3},8,["title-link-class","title","onClick"])}const TabItem=LoadingSpinner._export_sfc(_sfc_main$a,[["render",_sfc_render$3]]),_sfc_main$9={name:"VsTag",status:"prototype",release:"0.0.1",components:{VsLink},props:{href:{type:String,required:!0}}};function _sfc_render$2(e,n,t,r,a,o){const s=vue.resolveComponent("VsLink");return vue.openBlock(),vue.createBlock(s,{class:"vs-tag me-050 mb-100","data-test":"vs-tag",href:t.href},{default:vue.withCtx(()=>[vue.renderSlot(e.$slots,"default")]),_:3},8,["href"])}const Tag=LoadingSpinner._export_sfc(_sfc_main$9,[["render",_sfc_render$2]]),_sfc_main$8={name:"VsTagManagerWrapper",status:"prototype",release:"0.0.1",mixins:[LoadingSpinner.dataLayerMixin],props:{payload:{type:Object,default:()=>{}}},mounted(){this.processPayload(this.payload),document.addEventListener("DOMContentLoaded",()=>{this.dataLayerStore.setTestRun(!0),this.dataLayerStore.setPageUrl(window.location.href)}),this.createDataLayerObject("pageViewTemplateDataEvent")},methods:{processPayload(e){e!==void 0&&Object.keys(e).forEach(n=>{const t=n.replace(/-/g,"_");this.dataLayerStore.processPayload({key:t,value:e[n]})})}}},_hoisted_1$7={"data-test":"vs-tag-manager-wrapper",class:"d-none"};function _sfc_render$1(e,n,t,r,a,o){return vue.openBlock(),vue.createElementBlock("span",_hoisted_1$7)}const TagManagerWrapper=LoadingSpinner._export_sfc(_sfc_main$8,[["render",_sfc_render$1]]);var dist={exports:{}},Sister;/**
|
|
331
331
|
* @link https://github.com/gajus/sister for the canonical source repository
|
|
332
332
|
* @license https://github.com/gajus/sister/blob/master/LICENSE BSD 3-Clause
|
|
333
|
-
*/Sister=function(){var e={},n={};return e.on=function(t,r){var a={name:t,handler:r};return n[t]=n[t]||[],n[t].unshift(a),a},e.off=function(t){var r=n[t.name].indexOf(t);r!==-1&&n[t.name].splice(r,1)},e.trigger=function(t,r){var a=n[t],o;if(a)for(o=a.length;o--;)a[o].handler(r)},e};var sister=Sister,YouTubePlayer={exports:{}},browser={exports:{}},ms,hasRequiredMs;function requireMs(){if(hasRequiredMs)return ms;hasRequiredMs=1;var e=1e3,n=e*60,t=n*60,r=t*24,a=r*7,o=r*365.25;ms=function(c,d){d=d||{};var f=typeof c;if(f==="string"&&c.length>0)return s(c);if(f==="number"&&isFinite(c))return d.long?l(c):i(c);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(c))};function s(c){if(c=String(c),!(c.length>100)){var d=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(c);if(d){var f=parseFloat(d[1]),v=(d[2]||"ms").toLowerCase();switch(v){case"years":case"year":case"yrs":case"yr":case"y":return f*o;case"weeks":case"week":case"w":return f*a;case"days":case"day":case"d":return f*r;case"hours":case"hour":case"hrs":case"hr":case"h":return f*t;case"minutes":case"minute":case"mins":case"min":case"m":return f*n;case"seconds":case"second":case"secs":case"sec":case"s":return f*e;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return f;default:return}}}}function i(c){var d=Math.abs(c);return d>=r?Math.round(c/r)+"d":d>=t?Math.round(c/t)+"h":d>=n?Math.round(c/n)+"m":d>=e?Math.round(c/e)+"s":c+"ms"}function l(c){var d=Math.abs(c);return d>=r?u(c,d,r,"day"):d>=t?u(c,d,t,"hour"):d>=n?u(c,d,n,"minute"):d>=e?u(c,d,e,"second"):c+" ms"}function u(c,d,f,v){var p=d>=f*1.5;return Math.round(c/f)+" "+v+(p?"s":"")}return ms}function setup(e){t.debug=t,t.default=t,t.coerce=l,t.disable=s,t.enable=a,t.enabled=i,t.humanize=requireMs(),t.destroy=u,Object.keys(e).forEach(c=>{t[c]=e[c]}),t.names=[],t.skips=[],t.formatters={};function n(c){let d=0;for(let f=0;f<c.length;f++)d=(d<<5)-d+c.charCodeAt(f),d|=0;return t.colors[Math.abs(d)%t.colors.length]}t.selectColor=n;function t(c){let d,f=null,v,p;function h(...m){if(!h.enabled)return;const _=h,g=Number(new Date),b=g-(d||g);_.diff=b,_.prev=d,_.curr=g,d=g,m[0]=t.coerce(m[0]),typeof m[0]!="string"&&m.unshift("%O");let S=0;m[0]=m[0].replace(/%([a-zA-Z%])/g,(V,E)=>{if(V==="%%")return"%";S++;const $=t.formatters[E];if(typeof $=="function"){const D=m[S];V=$.call(_,D),m.splice(S,1),S--}return V}),t.formatArgs.call(_,m),(_.log||t.log).apply(_,m)}return h.namespace=c,h.useColors=t.useColors(),h.color=t.selectColor(c),h.extend=r,h.destroy=t.destroy,Object.defineProperty(h,"enabled",{enumerable:!0,configurable:!1,get:()=>f!==null?f:(v!==t.namespaces&&(v=t.namespaces,p=t.enabled(c)),p),set:m=>{f=m}}),typeof t.init=="function"&&t.init(h),h}function r(c,d){const f=t(this.namespace+(typeof d>"u"?":":d)+c);return f.log=this.log,f}function a(c){t.save(c),t.namespaces=c,t.names=[],t.skips=[];const d=(typeof c=="string"?c:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(const f of d)f[0]==="-"?t.skips.push(f.slice(1)):t.names.push(f)}function o(c,d){let f=0,v=0,p=-1,h=0;for(;f<c.length;)if(v<d.length&&(d[v]===c[f]||d[v]==="*"))d[v]==="*"?(p=v,h=f,v++):(f++,v++);else if(p!==-1)v=p+1,h++,f=h;else return!1;for(;v<d.length&&d[v]==="*";)v++;return v===d.length}function s(){const c=[...t.names,...t.skips.map(d=>"-"+d)].join(",");return t.enable(""),c}function i(c){for(const d of t.skips)if(o(c,d))return!1;for(const d of t.names)if(o(c,d))return!0;return!1}function l(c){return c instanceof Error?c.stack||c.message:c}function u(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return t.enable(t.load()),t}var common=setup;(function(e,n){var t={};n.formatArgs=a,n.save=o,n.load=s,n.useColors=r,n.storage=i(),n.destroy=(()=>{let u=!1;return()=>{u||(u=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),n.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function r(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let u;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(u=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(u[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function a(u){if(u[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+u[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;const c="color: "+this.color;u.splice(1,0,c,"color: inherit");let d=0,f=0;u[0].replace(/%[a-zA-Z%]/g,v=>{v!=="%%"&&(d++,v==="%c"&&(f=d))}),u.splice(f,0,c)}n.log=console.debug||console.log||(()=>{});function o(u){try{u?n.storage.setItem("debug",u):n.storage.removeItem("debug")}catch{}}function s(){let u;try{u=n.storage.getItem("debug")||n.storage.getItem("DEBUG")}catch{}return!u&&typeof process<"u"&&"env"in process&&(u=t.DEBUG),u}function i(){try{return localStorage}catch{}}e.exports=common(n);const{formatters:l}=e.exports;l.j=function(u){try{return JSON.stringify(u)}catch(c){return"[UnexpectedJSONParseError]: "+c.message}}})(browser,browser.exports);var browserExports=browser.exports,FunctionStateMap={exports:{}},PlayerStates={exports:{}};(function(e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.default={BUFFERING:3,ENDED:0,PAUSED:2,PLAYING:1,UNSTARTED:-1,VIDEO_CUED:5},e.exports=n.default})(PlayerStates,PlayerStates.exports);var PlayerStatesExports=PlayerStates.exports;(function(e,n){Object.defineProperty(n,"__esModule",{value:!0});var t=PlayerStatesExports,r=a(t);function a(o){return o&&o.__esModule?o:{default:o}}n.default={pauseVideo:{acceptableStates:[r.default.ENDED,r.default.PAUSED],stateChangeRequired:!1},playVideo:{acceptableStates:[r.default.ENDED,r.default.PLAYING],stateChangeRequired:!1},seekTo:{acceptableStates:[r.default.ENDED,r.default.PLAYING,r.default.PAUSED],stateChangeRequired:!0,timeout:3e3}},e.exports=n.default})(FunctionStateMap,FunctionStateMap.exports);var FunctionStateMapExports=FunctionStateMap.exports,eventNames={exports:{}};(function(e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.default=["ready","stateChange","playbackQualityChange","playbackRateChange","error","apiChange","volumeChange"],e.exports=n.default})(eventNames,eventNames.exports);var eventNamesExports=eventNames.exports,functionNames={exports:{}};(function(e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.default=["cueVideoById","loadVideoById","cueVideoByUrl","loadVideoByUrl","playVideo","pauseVideo","stopVideo","getVideoLoadedFraction","cuePlaylist","loadPlaylist","nextVideo","previousVideo","playVideoAt","setShuffle","setLoop","getPlaylist","getPlaylistIndex","setOption","mute","unMute","isMuted","setVolume","getVolume","seekTo","getPlayerState","getPlaybackRate","setPlaybackRate","getAvailablePlaybackRates","getPlaybackQuality","setPlaybackQuality","getAvailableQualityLevels","getCurrentTime","getDuration","removeEventListener","getVideoUrl","getVideoEmbedCode","getOptions","getOption","addEventListener","destroy","setSize","getIframe","getSphericalProperties","setSphericalProperties"],e.exports=n.default})(functionNames,functionNames.exports);var functionNamesExports=functionNames.exports;(function(e,n){Object.defineProperty(n,"__esModule",{value:!0});var t=browserExports,r=c(t),a=FunctionStateMapExports,o=c(a),s=eventNamesExports,i=c(s),l=functionNamesExports,u=c(l);function c(v){return v&&v.__esModule?v:{default:v}}const d=(0,r.default)("youtube-player"),f={};f.proxyEvents=v=>{const p={};for(const h of i.default){const m="on"+h.slice(0,1).toUpperCase()+h.slice(1);p[m]=_=>{d('event "%s"',m,_),v.trigger(h,_)}}return p},f.promisifyPlayer=(v,p=!1)=>{const h={};for(const m of u.default)p&&o.default[m]?h[m]=(..._)=>v.then(g=>{const b=o.default[m],S=g.getPlayerState(),C=g[m].apply(g,_);return b.stateChangeRequired||Array.isArray(b.acceptableStates)&&!b.acceptableStates.includes(S)?new Promise(V=>{const E=()=>{const $=g.getPlayerState();let D;typeof b.timeout=="number"&&(D=setTimeout(()=>{g.removeEventListener("onStateChange",E),V()},b.timeout)),Array.isArray(b.acceptableStates)&&b.acceptableStates.includes($)&&(g.removeEventListener("onStateChange",E),clearTimeout(D),V())};g.addEventListener("onStateChange",E)}).then(()=>C):C}):h[m]=(..._)=>v.then(g=>g[m].apply(g,_));return h},n.default=f,e.exports=n.default})(YouTubePlayer,YouTubePlayer.exports);var YouTubePlayerExports=YouTubePlayer.exports,loadYouTubeIframeApi={exports:{}},loadScript=function e(n,t,r){var a=document.head||document.getElementsByTagName("head")[0],o=document.createElement("script");typeof t=="function"&&(r=t,t={}),t=t||{},r=r||function(){},o.type=t.type||"text/javascript",o.charset=t.charset||"utf8",o.async="async"in t?!!t.async:!0,o.src=n,t.attrs&&setAttributes(o,t.attrs),t.text&&(o.text=""+t.text);var s="onload"in o?stdOnEnd:ieOnEnd;s(o,r),o.onload||stdOnEnd(o,r),a.appendChild(o)};function setAttributes(e,n){for(var t in n)e.setAttribute(t,n[t])}function stdOnEnd(e,n){e.onload=function(){this.onerror=this.onload=null,n(null,e)},e.onerror=function(){this.onerror=this.onload=null,n(new Error("Failed to load "+this.src),e)}}function ieOnEnd(e,n){e.onreadystatechange=function(){this.readyState!="complete"&&this.readyState!="loaded"||(this.onreadystatechange=null,n(null,e))}}(function(e,n){Object.defineProperty(n,"__esModule",{value:!0});var t=loadScript,r=a(t);function a(o){return o&&o.__esModule?o:{default:o}}n.default=o=>new Promise(i=>{if(window.YT&&window.YT.Player&&window.YT.Player instanceof Function){i(window.YT);return}else{const u=window.location.protocol==="http:"?"http:":"https:";(0,r.default)(u+"//www.youtube.com/iframe_api",c=>{c&&o.trigger("error",c)})}const l=window.onYouTubeIframeAPIReady;window.onYouTubeIframeAPIReady=()=>{l&&l(),i(window.YT)}}),e.exports=n.default})(loadYouTubeIframeApi,loadYouTubeIframeApi.exports);var loadYouTubeIframeApiExports=loadYouTubeIframeApi.exports;(function(e,n){Object.defineProperty(n,"__esModule",{value:!0});var t=sister,r=l(t),a=YouTubePlayerExports,o=l(a),s=loadYouTubeIframeApiExports,i=l(s);function l(c){return c&&c.__esModule?c:{default:c}}let u;n.default=(c,d={},f=!1)=>{const v=(0,r.default)();if(u||(u=(0,i.default)(v)),d.events)throw new Error("Event handlers cannot be overwritten.");if(typeof c=="string"&&!document.getElementById(c))throw new Error('Element "'+c+'" does not exist.');d.events=o.default.proxyEvents(v);const p=new Promise(m=>{typeof c=="object"&&c.playVideo instanceof Function?m(c):u.then(_=>{const g=new _.Player(c,d);return v.on("ready",()=>{m(g)}),null})}),h=o.default.promisifyPlayer(p,f);return h.on=v.on,h.off=v.off,h},e.exports=n.default})(dist,dist.exports);var distExports=dist.exports;const player=LoadingSpinner.getDefaultExportFromCjs(distExports),UNSTARTED=-1,ENDED=0,PLAYING=1,PAUSED=2,BUFFERING=3,CUED=5,VueYoutube={name:"Youtube",props:{videoId:String,playerVars:{type:Object,default:()=>({})},height:{type:[Number,String],default:360},width:{type:[Number,String],default:640},resize:{type:Boolean,default:!1},resizeDelay:{type:Number,default:100},nocookie:{type:Boolean,default:!1},fitParent:{type:Boolean,default:!1}},data(){return{player:{},events:{[UNSTARTED]:"unstarted",[PLAYING]:"playing",[PAUSED]:"paused",[ENDED]:"ended",[BUFFERING]:"buffering",[CUED]:"cued"},resizeTimeout:null}},computed:{aspectRatio(){return this.width/this.height}},methods:{playerReady(e){this.$emit("ready",e.target)},playerStateChange(e){e.data!==null&&e.data!==UNSTARTED&&this.$emit(this.events[e.data],e.target)},playerError(e){this.$emit("error",e.target)},updatePlayer(e){if(!e){this.player.stopVideo();return}const n={videoId:e};if(typeof this.playerVars.start=="number"&&(n.startSeconds=this.playerVars.start),typeof this.playerVars.end=="number"&&(n.endSeconds=this.playerVars.end),this.playerVars.autoplay===1){this.player.loadVideoById(n);return}this.player.cueVideoById(n)},resizeProportionally(){this.player.getIframe().then(e=>{const n=this.fitParent?e.parentElement.offsetWidth:e.offsetWidth,t=n/this.aspectRatio;this.player.setSize(n,t)})},onResize(){clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(this.resizeProportionally,this.resizeDelay)}},watch:{videoId:"updatePlayer",resize(e){e?(window.addEventListener("resize",this.onResize),this.resizeProportionally()):(window.removeEventListener("resize",this.onResize),this.player.setSize(this.width,this.height))},width(e){this.player.setSize(e,this.height)},height(e){this.player.setSize(this.width,e)}},beforeUnmount(){this.player!==null&&this.player.destroy&&(this.player.destroy(),delete this.player),this.resize&&window.removeEventListener("resize",this.onResize)},mounted(){window.YTConfig={host:"https://www.youtube.com/iframe_api"};const e=this.nocookie?"https://www.youtube-nocookie.com":"https://www.youtube.com";this.player=player(this.$el,{host:e,width:this.width,height:this.height,videoId:this.videoId,playerVars:this.playerVars}),this.player.on("ready",this.playerReady),this.player.on("stateChange",this.playerStateChange),this.player.on("error",this.playerError),this.resize&&window.addEventListener("resize",this.onResize),this.fitParent&&this.resizeProportionally()},render(){return vue.h("div")}};let videoStore=null;const cookieValues=cookieValues$5.youtube,_sfc_main$7={name:"VsVideo",status:"prototype",release:"0.0.1",components:{VsWarning:LoadingSpinner.VsWarning,VueYoutube},mixins:[LoadingSpinner.dataLayerMixin,cookieCheckerMixin],props:{language:{type:String,default:"en"},videoId:{type:String,required:!0},videoTitle:{type:String,default:""},singleMinuteDescriptor:{type:String,default:"%s minute video"},pluralMinuteDescriptor:{type:String,default:"%s minute video"},noCookiesMessage:{type:String,required:!0},cookieBtnText:{type:String,required:!0},noJsMessage:{type:String,required:!0},errorMessage:{type:String,default:""}},data(){return{duration:{minutes:0,seconds:0,roundedMinutes:""},playerVars:{hl:this.language},requiredCookies:cookieValues,reRendering:!1,shouldAutoPlay:!1,jsDisabled:!0}},computed:{showError(){return!this.cookiesAllowed&&this.cookiesLoaded===!0||this.cookiesLoaded===!1},warningText(){let e="";return this.videoId&&this.jsDisabled&&(e=this.noJsMessage),!this.cookiesAllowed&&this.cookiesLoaded===!0&&(e=this.noCookiesMessage),e},player(){return this.$refs.youtube?this.$refs.youtube.player:null}},mounted(){this.jsDisabled=jsIsDisabled(),videoStore=useVideoStore(),this.setEventListeners()},methods:{async playerReady(){await this.getPlayerDetails(),this.shouldAutoPlay&&(this.shouldAutoPlay=!1,this.playVideo())},async playVideo(){this.player&&await this.player.playVideo()},async pauseVideo(){this.player&&await this.player.pauseVideo()},async stopVideo(){this.player&&await this.player.stopVideo()},youtubePlaying(){this.analyticsEvent("play")},youtubePaused(){this.analyticsEvent("pause")},youtubeEnded(){this.analyticsEvent("ended")},analyticsEvent(e){let n=0,t=0;this.player.getCurrentTime().then(r=>(n=r,this.player?this.player.getDuration():null)).then(r=>{t=r}).then(()=>{const r=n/t*100;this.createDataLayerObject("videoTrackingDataEvent",{title:this.videoTitle,status:e,percent:Math.round(r)})})},async getPlayerDetails(){this.player&&await this.player.getDuration().then(e=>{this.formatTime(e),this.storeVideoDetails()})},formatTime(e){const n=Math.floor(e/60),t=Math.round(e-n*60);this.duration.minutes=n,this.duration.seconds=t;const r=this.getRoundedMinutes(n,t);this.duration.roundedMinutes=this.formatSingularOrPlural(r)},getRoundedMinutes(e,n){return n<30&&e!==0?e:e+1},formatSingularOrPlural(e){return e===1?this.singleMinuteDescriptor.replace("%s",e):this.pluralMinuteDescriptor.replace("%s",e)},pad(e){return e>=10?e:`0${e}`},storeVideoDetails(){videoStore.addVideo({videoId:this.videoId,videoDurationMsg:this.duration.roundedMinutes,videoDuration:this.duration.minutes*60+this.duration.seconds,videoFullDuration:this.duration})},setEventListeners(){this.emitter&&this.emitter.on("video-controls",e=>{e.id===this.videoId&&(e.action==="modal-opened"&&this.playVideo(),e.action==="modal-closed"&&this.stopVideo(),e.action==="play"?this.playVideo():e.action==="pause"&&this.pauseVideo())})}}},_hoisted_1$6={key:0,class:"vs-video","data-test":"vs-video"},_hoisted_2$6={class:"vs-video__iframe-wrapper"},_hoisted_3$5={key:0};function _sfc_render(e,n,t,r,a,o){const s=vue.resolveComponent("VueYoutube"),i=vue.resolveComponent("VsWarning");return a.reRendering?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$6,[vue.createElementVNode("div",_hoisted_2$6,[e.cookiesAllowed?(vue.openBlock(),vue.createElementBlock("div",_hoisted_3$5,[vue.createVNode(s,{autoplay:0,"video-id":t.videoId,vars:a.playerVars,ref:"youtube",nocookie:!0,onPlaying:o.youtubePlaying,onPaused:o.youtubePaused,onEnded:o.youtubeEnded,onReady:o.playerReady},null,8,["video-id","vars","onPlaying","onPaused","onEnded","onReady"])])):vue.createCommentVNode("",!0),o.showError?(vue.openBlock(),vue.createBlock(i,{key:1,type:e.cookiesLoaded===!0?"cookie":"normal","data-test":"vs-video__warning",class:"vs-video__warning"},vue.createSlots({default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(o.warningText)+" ",1)]),_:2},[!e.cookiesAllowed&&e.cookiesLoaded===!0?{name:"button-text",fn:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.cookieBtnText),1)]),key:"0"}:void 0]),1032,["type"])):vue.createCommentVNode("",!0),vue.createVNode(i,{"data-test":"vs-video__warning--no-js",class:"vs-video__warning vs-video__warning--no-js"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.noJsMessage),1)]),_:1})])]))}const Video=LoadingSpinner._export_sfc(_sfc_main$7,[["render",_sfc_render]]),__default__={name:"VsDivider"},_sfc_main$6=Object.assign(__default__,{props:{variant:{type:String,required:!1,validator:e=>e.match(/(primary|secondary|inverse)/),default:"primary"}},setup(e){const n=e;return(t,r)=>(vue.openBlock(),vue.createElementBlock("hr",{class:vue.normalizeClass(["vs-divider",n.variant?`vs-divider--variant-${n.variant}`:null]),"data-test":"vs-divider"},null,2))}});function cleanData$1(e){return e.TypedDocuments.map(r=>{var a;return{id:r.Fields.Id.Value||"",title:r.Fields.Title.Value||"",description:r.Fields.Description.Value||"",imgSrc:((a=r.Fields.Image)==null?void 0:a.Value)||"",url:r.Fields.Url.Value||"",dataSrc:"cludo",categoryCard:r.Fields.categoryCard.Value||""}})}async function cludoSearch(e,n,t,r,a,o){const{apiKey:s,customerId:i,engineId:l}=n,u=`https://api-eu1.cludo.com/api/v3/${i}/${l}/search`,c=`${i}:${s}`,d=useFederatedSearchStore();if(d.eventsApiError=!1,d.cludoError=!1,!n)return d.cludoError=!0,d.isLoading=!1,{results:[],totalResults:0};if(a==="events")return{results:[],totalResults:0};try{const f=await fetch(u,{method:"POST",body:JSON.stringify({query:e||"*",operator:o,responseType:"JsonObject",perPage:6,page:t,facets:{Category:a?[a]:null}}),headers:{"Content-Type":"application/json",Authorization:`Basic ${btoa(c)}`}});if(!f.ok)throw d.cludoError=!0,d.isLoading=!1,new Error(`Cludo response message: ${f.status}`);const v=await f.json();return{results:cleanData$1(v),totalResults:v.TotalDocument}}catch{return d.cludoError=!0,d.isLoading=!1,{results:[],totalResults:0}}}function cleanData(e){return e.events.map(r=>{var a,o,s,i,l,u,c;return{id:r.id,parentId:r.parentId,title:r.name,description:((o=(a=r.descriptions)==null?void 0:a[0])==null?void 0:o.description)||"",imgSrc:((i=(s=r.images)==null?void 0:s[0])==null?void 0:i.url)||"",url:((u=(l=r.performances)==null?void 0:l[0])==null?void 0:u.url)||"",placeUrl:r.place.website,location:r.place.town,startDate:r.startFormatted,endDate:r.endFormatted,minPrice:(c=r.minPrice)==null?void 0:c.toString(),dataSrc:"data-thistle",categoryCard:r.categoryCard||""}})}async function eventSearch(e,n,t,r,a,o,s,i,l,u,c,d,f){const v=useFederatedSearchStore();v.eventsApiError=!1,v.cludoError=!1;let p=`${e}?query=${n}&lang=${l}`;p=t>1?`${p}&page=${t}`:p,p=o!==""?`${p}&startDate=${o}`:p,p=s!==""?`${p}&endDate=${s}`:p,p=i?`${p}&sort=${i}`:p,p=r==="events"?`${p}&pageSize=12`:`${p}&pageSize=6`,p=u?`${p}&postcode=${u}`:p,p=c?`${p}&location=${c}`:p,p=d?`${p}&radius=${d}`:p,p=f?`${p}&postcodeareas=${f}`:p,a.forEach(h=>{p+=`&category=${h}`}),r&&r!=="events"&&(p+=`&category=${r}`);try{const h=await fetch(p);if(!h.ok)throw v.isLoading=!1,v.eventsApiError=!0,new Error(`Events response message: ${h.status}`);const m=await h.json();return{results:cleanData(m),totalResults:m.totalResults}}catch{return v.isLoading=!1,v.eventsApiError=!0,{results:[],totalResults:0}}}async function cludoAutocomplete(e,n){const{apiKey:t,customerId:r,engineId:a}=n,s=`https://api-eu1.cludo.com/api/v3/${r}/${a}/Autocomplete`,i=`${r}:${t}`;try{const l=await fetch(s,{method:"POST",body:JSON.stringify({text:e}),headers:{"Content-Type":"application/json",Authorization:`Basic ${btoa(i)}`}});if(!l.ok)throw new Error(`Autocomplete search error ${l.status}`);return await l.json()}catch(l){throw new Error(`Autocomplete search error: ${l}`)}}const useFederatedSearchStore=pinia.defineStore("federatedSearch",()=>{const e=vue.ref(null),n=vue.ref(void 0),t=vue.ref(!1),r=vue.ref(1),a=vue.ref(void 0),o=vue.ref(!1),s=vue.ref(!1),i=vue.ref(null),l=vue.ref(""),u=vue.ref(null),c=vue.ref(null),d=vue.ref([]),f=vue.ref([]),v=vue.ref(void 0),p=vue.ref(void 0),h=vue.ref(void 0),m=vue.ref(!1),_=vue.ref(""),g=vue.ref(""),b=vue.ref(void 0),S=vue.ref(void 0),C=vue.ref(void 0),V=vue.ref(-1),E=vue.ref(""),$=vue.ref(""),D=vue.ref(""),A=vue.ref(0),M=vue.ref(""),j=vue.ref("or");async function O(G=!1){s.value=!0,G||(V.value+=1);const W=await cludoSearch(l.value,n.value,r.value,u.value,c.value,j.value),k=await eventSearch(a.value,l.value,r.value,c.value,f.value,_.value,g.value,b.value,C.value,$.value,D.value,A.value,M.value);i.value=[...W.results,...k.results],p.value=W.totalResults,h.value=k.totalResults,v.value=W.totalResults+k.totalResults,s.value=!1}async function R(){return cludoAutocomplete(l.value,n.value)}async function X(G,W){const k=new URL(window.location.href);if(W?E.value="Autosuggestion":E.value="User input",l.value?k.searchParams.set("search-term",l.value):k.searchParams.delete("search-term"),c.value?k.searchParams.set("category",encodeURIComponent(c.value)):k.searchParams.delete("category"),f.value.length>0?k.searchParams.set("sub-category",encodeURIComponent(f.value.join(","))):k.searchParams.delete("sub-category"),G?(r.value=1,k.searchParams.set("page",r.value.toString())):r.value&&r.value>1?k.searchParams.set("page",r.value.toString()):k.searchParams.delete("page"),_.value?k.searchParams.set("start-date",_.value):k.searchParams.delete("start-date"),g.value?k.searchParams.set("end-date",g.value):k.searchParams.delete("end-date"),b.value?k.searchParams.set("sort-by",b.value):k.searchParams.delete("sort-by"),!m.value)window.history.pushState({},"",k),await O();else{const L=`${S.value}/${k.search}`;window.location.href=L}}return{filters:e,currentPage:r,cludoCredentials:n,cludoError:t,eventsApi:a,eventsApiError:o,getAutoComplete:R,getSearchResults:O,isLoading:s,results:i,searchTerm:l,searchUrl:S,selectedCategory:u,selectedCategoryKey:c,selectedSubCategory:d,selectedSubCategoryKey:f,totalResults:v,totalResultsCludo:p,totalResultsEvents:h,navigateToResultsPage:X,isHomePage:m,startDate:_,endDate:g,sortBy:b,siteLanguage:C,searchInSessionCount:V,queryInput:E,postcode:$,location:D,radius:A,postcodeareas:M,cludoApiOperator:j}}),_hoisted_1$5={class:"vs-fed-filter"},_hoisted_2$5={class:"vs-fed-filter__scroll-container"},_hoisted_3$4=["id"],_sfc_main$5={__name:"FedFilter",props:{filterCategories:{type:Array,required:!0},variant:{type:String,default:"primary",validator:e=>/^(primary|secondary)$/.test(e)},wrap:{type:Boolean,default:!1},activeFilter:{type:[String,Array],default:""},scrollButtons:{type:Boolean,default:!1},scrollLeftText:{type:String,default:""},scrollRightText:{type:String,default:""}},emits:["filter-updated"],setup(e,{expose:n}){const t=e,r=vue.ref(null);function a(c){return typeof t.activeFilter=="string"?t.activeFilter===c:t.activeFilter&&typeof t.activeFilter=="object"?t.activeFilter.includes(c):!1}function o(c){var d,f;c==="left"?(d=r.value)==null||d.scrollBy(-200,0):c==="right"&&((f=r.value)==null||f.scrollBy(200,0))}function s(){var c;(c=r.value)==null||c.scrollTo(0,0)}n({resetScroll:s});function i(){return[`vs-fed-filter__scroll-rail--${t.variant}`,t.wrap?"vs-fed-filter__scroll-rail--wrap":""]}const l=vue.computed(()=>[...t.filterCategories].sort((d,f)=>{const v=(d.Label||d.Key||"").toLowerCase(),p=(f.Label||f.Key||"").toLowerCase();return v<p?-1:v>p?1:0}));function u(c){let d;switch(c){case"accommodation":d="fa-regular fa-bed";break;case"active-adventure":d="fa-kit fa-vs-landscape";break;case"city-break":d="fa-regular fa-city";break;case"culture-history":d="fa-regular fa-chess-rook";break;case"events":d="fa-regular fa-calendar-range";break;case"family-friendly":d="fa-regular fa-family";break;case"food-drink":d="fa-regular fa-utensils";break;case"nature-outdoors":d="fa-regular fa-leaf";break;case"tours":d="fa-regular fa-binoculars";break;case"travel-information":d="fa-regular fa-circle-info";break;case"wellness":d="fa-regular fa-spa";break;default:d=null;break}return d}return(c,d)=>(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$5,[c.$slots["fed-filter-header"]&&c.$slots["fed-filter-header"]()?(vue.openBlock(),vue.createBlock(LoadingSpinner.VsBody,{key:0,class:"vs-fed-filter__header mb-025 ms-025","data-test":"vs-fed-filter__header"},{default:vue.withCtx(()=>[vue.renderSlot(c.$slots,"fed-filter-header")]),_:3})):vue.createCommentVNode("",!0),vue.createElementVNode("div",_hoisted_2$5,[e.scrollButtons?(vue.openBlock(),vue.createBlock(LoadingSpinner.VsButton,{key:0,variant:"secondary",icon:"fa-regular fa-chevron-left","icon-only":"",class:"vs-fed-filter__scroll-button me-050","data-test":"vs-fed-filter__scroll-button--left",onClick:d[0]||(d[0]=f=>o("left")),"aria-label":t.scrollLeftText},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.scrollLeftText),1)]),_:1},8,["aria-label"])):vue.createCommentVNode("",!0),vue.createElementVNode("div",{class:vue.normalizeClass(["vs-fed-filter__scroll-rail",i()]),id:`vs-fed-filter__scroll-rail--${t.variant}`,ref_key:"scrollRail",ref:r},[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(l.value,(f,v)=>(vue.openBlock(),vue.createBlock(LoadingSpinner.VsButton,{key:v,class:"vs-fed-filter__category-button","data-test":`vs-fed-filter__category-button--${f.Key}`,icon:t.variant==="primary"?u(f.Key):null,variant:a(f.Key)?"primary":"secondary",size:t.variant==="secondary"?"sm":"md",onClick:p=>c.$emit("filter-updated",f)},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(f.Label||f.Key),1)]),_:2},1032,["data-test","icon","variant","size","onClick"]))),128))],10,_hoisted_3$4),e.scrollButtons?(vue.openBlock(),vue.createBlock(LoadingSpinner.VsButton,{key:1,variant:"secondary",icon:"fa-regular fa-chevron-right","icon-only":"",class:"vs-fed-filter__scroll-button ms-050","data-test":"vs-fed-filter__scroll-button--right",onClick:d[1]||(d[1]=f=>o("right")),"aria-label":t.scrollRightText},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.scrollRightText),1)]),_:1},8,["aria-label"])):vue.createCommentVNode("",!0)])]))}};function dataLayerComposable$1(){const e=LoadingSpinner.useDataLayerStore(),n=vue.ref(!1),t=vue.computed(()=>e.pageUrl);function r(l,u){const c={};return l.forEach(d=>{c[d]=u[d]||void 0,d==="language"&&c[d]===void 0&&(c[d]=u.site_language||void 0)}),c}function a(){return new Date(Date.now()).toISOString()}function o(l){const c={...e.GTMData,...l};return c.hit_timestamp=a(),c}function s(l){n.value?window.dataLayer.push(l):LoadingSpinner.checkVendorLibrary("dataLayer",()=>{n.value=!0,window.dataLayer.push(l)})}function i(l,u){let c,d,f,v;switch(l){case"siteSearchOpenEvent":c="site_search_open",d={event:c,referrer_page:u.referrer_page},f=o(d),v=r(LoadingSpinner.siteSearchOpenTemplate,f);break;case"siteSearchUsageEvent":c="site_search_event",d={event:c,search_query:u.search_query,query_input:u.query_input,results_count:u.results_count,search_usage_index:u.search_usage_index,search_type:u.search_type,search_origin:u.search_origin||"results_page",interaction_type:"search_input"},f=o(d),v=r(LoadingSpinner.siteSearchUsageTemplate,f);break;case"siteSearchClickEvent":c="site_search_click",d={event:c,interaction_type:u.interaction_type,search_query:u.search_query,query_input:u.query_input,page_number:u.page_number,page_navigation_direction:u.page_navigation_direction,click_text:u.click_text,click_url:u.click_url,click_category:u.click_category,search_usage_index:u.search_usage_index,results_count:u.results_count},f=o(d),v=r(LoadingSpinner.siteSearchClickTemplate,f);break;case"siteSearchCloseEvent":c="site_search_close",d={event:c,search_usage_index:u.search_usage_index,search_query:u.search_query,query_input:u.query_input,page_number:u.page_number,results_count:u.results_count},f=o(d),v=r(LoadingSpinner.siteSearchCloseTemplate,f);break}v&&s(v)}return{pageUrl:t,createDataLayerObject:i,templateFiller:r,compileFullTemplate:o,returnIsoDate:a,pushToDataLayer:s,dataLayerStore:e}}const _hoisted_1$4={class:"vs-fed-search-input"},_hoisted_2$4={class:"vs-fed-search__input"},_hoisted_3$3={class:"vs-fed-search__text-input"},_hoisted_4$3={for:"federated-search",class:"vs-federated-search__label"},_hoisted_5$3={key:0,class:"position-relative"},_hoisted_6$3={class:"vs-fed-search-input__autocomplete"},_hoisted_7$2=["onClick","onKeyup","innerHTML"],_sfc_main$4={__name:"FedSearchInput",props:{cludoApiKey:{type:String,default:getEnvValue("CLUDO_API_KEY")},cludoCustomerId:{type:Number,default:Number(getEnvValue("CLUDO_CUSTOMER_ID"))},cludoEngineId:{type:Number,default:Number(getEnvValue("CLUDO_ENGINE_ID"))},isHomePage:{type:Boolean,default:!1},searchUrl:{type:String,default:void 0},filters:{type:Array,default:void 0},subFilters:{type:Array,default:void 0},labels:{type:Object,required:!0}},setup(e){const n=dataLayerComposable$1(),t=e,r=useFederatedSearchStore(),{isLoading:a}=pinia.storeToRefs(r),o=vue.ref(),s=vue.ref(null),i=vue.ref(null);async function l(g){r.currentPage=1,r.searchTerm=g.value.trim();const b=window.location.search,S=new URLSearchParams(b);r.searchTerm&&S.get("search-term")!==r.searchTerm&&(o.value=await r.getAutoComplete()),r.searchTerm||(o.value=null)}async function u(){o.value=null,await r.navigateToResultsPage(),n.createDataLayerObject("siteSearchUsageEvent",{search_query:r.searchTerm,query_input:r.queryInput,results_count:r.totalResults,search_usage_index:r.searchInSessionCount,search_type:r.searchInSessionCount===1?"initial":"follow-up"})}function c(g){n.createDataLayerObject("siteSearchClickEvent",{interaction_type:"search_autosuggest",search_query:r.searchTerm,page_number:r.currentPage,search_usage_index:r.searchInSessionCount,results_count:r.totalResults,click_text:g,query_input:r.queryInput})}function d(g){r.searchTerm=g,o.value=null,r.navigateToResultsPage(!1,!0),c(g)}function f(g){return g.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function v(g){return g.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function p(g){const b=(r.searchTerm||"").trim();if(!b)return v(g);const S=new RegExp(`(${f(b)})`,"gi");return v(g).replace(S,"<strong>$1</strong>")}function h(g){n.createDataLayerObject("siteSearchClickEvent",{interaction_type:"facet_click",search_query:r.searchTerm,page_number:r.currentPage,search_usage_index:r.searchInSessionCount,results_count:r.totalResults,click_text:g.Label||g.Key})}async function m(g){const b=new URL(window.location);b.searchParams.delete("page"),r.currentPage=1,b.searchParams.delete("start-date"),b.searchParams.delete("end-date"),r.startDate="",r.endDate="",r.sortBy=void 0,r.selectedSubCategory=[],r.selectedSubCategoryKey=[],r.selectedCategory=r.selectedCategory!==g.Label?g.Label:"",r.selectedCategoryKey=r.selectedCategoryKey!==g.Key?g.Key:"",await r.navigateToResultsPage(!0),h(g)}function _(g){if(!r.selectedSubCategoryKey.includes(g.Key))r.selectedSubCategory.push(g.Label),r.selectedSubCategoryKey.push(g.Key);else{const b=r.selectedSubCategoryKey.indexOf(g.Key);b>=0&&(r.selectedSubCategory.splice(b,1),r.selectedSubCategoryKey.splice(b,1))}r.navigateToResultsPage(!0),h(g)}return vue.onMounted(()=>{r.cludoCredentials={apiKey:t.cludoApiKey,customerId:t.cludoCustomerId,engineId:t.cludoEngineId},r.isHomePage=t.isHomePage,t.searchUrl&&(r.searchUrl=t.searchUrl);const g=window.location.search,b=new URLSearchParams(g);b.has("search-term")&&(r.searchTerm=b.get("search-term")),b.has("category")&&(r.selectedCategoryKey=decodeURIComponent(b.get("category"))),b.has("sub-category")&&decodeURIComponent(b.get("sub-category")).split(",").forEach(C=>r.selectedSubCategoryKey.push(C)),b.has("category")&&b.get("category")==="events"&&b.has("sort-by")&&(r.sortBy=b.get("sort-by")),b.has("start-date")&&(r.startDate=b.get("start-date")),b.has("end-date")&&(r.endDate=b.get("end-date")),b.has("postcode")&&(r.postcode=b.get("postcode")),b.has("location")&&(r.location=b.get("location")),b.has("radius")&&(r.radius=b.get("radius")),b.has("postcodeareas")&&(r.postcodeareas=b.get("postcodeareas")),(b.has("search-term")||b.has("category"))&&r.getSearchResults()}),vue.watch(a,g=>{var b,S;g||((b=s.value)==null||b.resetScroll(),(S=i.value)==null||S.resetScroll())}),(g,b)=>(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$4,[vue.createElementVNode("div",_hoisted_2$4,[vue.createElementVNode("div",_hoisted_3$3,[vue.createElementVNode("label",_hoisted_4$3,[b[0]||(b[0]=vue.createElementVNode("span",{class:"visually-hidden"}," Search for something ",-1)),vue.createVNode(vue.unref(LoadingSpinner.VsIcon),{icon:"vs-icon-control-search",size:"xs"})]),vue.createVNode(vue.unref(VsInput),{"auto-complete":!1,class:"vs-federated-search__input w-100","field-name":"federated-search",name:"searchrequest",placeholder:t.labels.searchLabel,type:"search",value:vue.unref(r).searchTerm,onUpdated:l,onKeyup:vue.withKeys(u,["enter"])},null,8,["placeholder","value"])]),vue.createVNode(vue.unref(LoadingSpinner.VsButton),{class:"d-none d-lg-block px-200",disabled:vue.unref(a),onClick:u},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.labels.search),1)]),_:1},8,["disabled"])]),o.value&&o.value.length>0?(vue.openBlock(),vue.createElementBlock("div",_hoisted_5$3,[vue.createElementVNode("div",_hoisted_6$3,[vue.createVNode(vue.unref(VsList),{unstyled:""},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(o.value,S=>(vue.openBlock(),vue.createElementBlock("li",{key:S,class:"vs-fed-search-input__autocomplete__suggestion",onClick:C=>d(S),onKeyup:vue.withKeys(C=>d(S),["enter"]),tabindex:"0",innerHTML:p(S)},null,40,_hoisted_7$2))),128))]),_:1})])])):vue.createCommentVNode("",!0),t.filters?(vue.openBlock(),vue.createBlock(_sfc_main$5,{key:1,"active-filter":vue.unref(r).selectedCategoryKey,"filter-categories":t.filters,ref_key:"categoryFilter",ref:s,wrap:!0,onFilterUpdated:m},null,8,["active-filter","filter-categories"])):vue.createCommentVNode("",!0),vue.unref(r).selectedCategoryKey==="events"&&t.subFilters?(vue.openBlock(),vue.createBlock(_sfc_main$5,{key:2,"active-filter":vue.unref(r).selectedSubCategoryKey,class:"mt-200","filter-categories":t.subFilters,ref_key:"subCategoryFilter",ref:i,variant:"secondary",onFilterUpdated:_},{"fed-filter-header":vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.labels.refine),1)]),_:1},8,["active-filter","filter-categories"])):vue.createCommentVNode("",!0)]))}},_hoisted_1$3={key:0,for:"vs-fed-search-sort__from-date",class:"vs-fed-search-sort__label","data-test":"vs-fed-search-sort__from-date-label"},_hoisted_2$3={key:0,for:"vs-fed-search-sort__to-date",class:"vs-fed-search-sort__label","data-test":"vs-fed-search-sort__to-date-label"},_sfc_main$3={__name:"FedSearchSort",props:{dateFilterVisible:{type:Boolean,default:!1},sortOptions:{type:Array,required:!0},fromDateLabel:{type:String,required:!0},toDateLabel:{type:String,required:!0},sortLabel:{type:String,required:!0}},emits:["from-date-updated","end-date-updated","sort-order-updated"],setup(e){const n=useFederatedSearchStore(),t=e,r=vue.computed(()=>t.sortOptions.find(a=>a.key===n.sortBy));return(a,o)=>(vue.openBlock(),vue.createBlock(LoadingSpinner.VsRow,{class:"vs-fed-search-sort"},{default:vue.withCtx(()=>[t.dateFilterVisible?(vue.openBlock(),vue.createBlock(LoadingSpinner.VsCol,{key:0,cols:"6",md:"4"},{default:vue.withCtx(()=>[t.fromDateLabel?(vue.openBlock(),vue.createElementBlock("label",_hoisted_1$3,vue.toDisplayString(t.fromDateLabel),1)):vue.createCommentVNode("",!0),vue.createVNode(VsInput,{"field-name":"vs-fed-search-sort__from-date",value:vue.unref(n).startDate||new Date().toJSON().slice(0,10),type:"date","auto-complete":!1,onInput:o[0]||(o[0]=s=>a.$emit("from-date-updated",s.target.value)),"data-chromatic":"ignore"},null,8,["value"])]),_:1})):vue.createCommentVNode("",!0),t.dateFilterVisible?(vue.openBlock(),vue.createBlock(LoadingSpinner.VsCol,{key:1,cols:"6",md:"4"},{default:vue.withCtx(()=>[t.toDateLabel?(vue.openBlock(),vue.createElementBlock("label",_hoisted_2$3,vue.toDisplayString(t.toDateLabel),1)):vue.createCommentVNode("",!0),vue.createVNode(VsInput,{"field-name":"vs-fed-search-sort__to-date",type:"date","auto-complete":!1,onInput:o[1]||(o[1]=s=>a.$emit("end-date-updated",s.target.value)),value:vue.unref(n).endDate||""},null,8,["value"])]),_:1})):vue.createCommentVNode("",!0),vue.createVNode(LoadingSpinner.VsCol,{cols:"12",md:"4",class:"vs-fed-search-sort__dropdown-wrapper"},{default:vue.withCtx(()=>[vue.createVNode(VsDropdown,{variant:"secondary",id:"vs-fed-search-sort__dropdown",name:"vs-fed-search-sort__dropdown",text:vue.unref(n).sortBy?`${t.sortLabel}: ${r.value.label}`:t.sortLabel},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(e.sortOptions,(s,i)=>(vue.openBlock(),vue.createBlock(VsDropdownItem,{key:i,onClick:l=>{a.$emit("sort-order-updated",s.key)},active:vue.unref(n).sortBy===s.key,"data-test":`vs-fed-search-sort__dropdown-item--${s.key}`},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(s.label),1)]),_:2},1032,["onClick","active","data-test"]))),128))]),_:1},8,["text"])]),_:1})]),_:1}))}},_hoisted_1$2={class:"vs-federated-search","data-test":"vs-federated-search"},_hoisted_2$2={class:"vs-federated-search__container"},_hoisted_3$2={key:0,class:"vs-federated-search__results","data-chromatic":"ignore"},_hoisted_4$2={key:2,"data-chromatic":"ignore"},_hoisted_5$2={class:"position-relative"},_hoisted_6$2={class:"position-absolute bottom-0 start-0 d-flex gap-2"},_hoisted_7$1={class:"position-absolute bottom-0 end-0 d-flex"},_hoisted_8={class:"truncate-3-lines text-break"},_hoisted_9={class:"d-flex justify-content-end align-items-end mt-050"},_hoisted_10={key:0,class:"d-flex align-items-start flex-grow-1"},_hoisted_11={key:3,class:"vs-federated-search__warning mb-300"},fallbackImg="https://static.visitscotland.com/img/fallback-img.png",_sfc_main$2={__name:"FederatedSearch",props:{cludoApiKey:{type:String,default:getEnvValue("CLUDO_API_KEY")},cludoCustomerId:{type:Number,default:Number(getEnvValue("CLUDO_CUSTOMER_ID"))},cludoEngineId:{type:Number,default:Number(getEnvValue("CLUDO_ENGINE_ID"))},eventsApi:{type:String,default:getEnvValue("EVENTS_API_URL")},filters:{type:Array,default:void 0},subFilters:{type:Array,default:void 0},errorMessages:{type:Object,required:!0},fromText:{type:String,default:""},paginationLabels:{type:Object,required:!0},searchLabels:{type:Object,required:!0},sortLabels:{type:Object,required:!0},cardCategoryLabels:{type:Object,required:!0,default:()=>{}},siteLanguage:{type:String,default:"en",validator:e=>e.match(/(en|es|it|de|nl|fr)/)},cludoApiOperator:{type:String,default:"or",validator:e=>["and","or"].includes(e)}},setup(e){const n=dataLayerComposable$1(),t=useFederatedSearchStore(),r=vue.ref({message:"",error:!1}),a=e,o=vue.ref(!1),s=vue.computed(()=>{let g;return t.selectedCategoryKey==="events"?g=Math.ceil(t.totalResultsEvents/12):g=t.totalResultsCludo>=t.totalResultsEvents?Math.ceil(t.totalResultsCludo/6):Math.ceil(t.totalResultsEvents/6),g});function i(){t.endDate&&t.startDate>t.endDate?(r.value.error=!0,r.value.message=a.errorMessages.incorrectDateOrder):t.selectedCategoryKey==="events"&&t.eventsApiError&&!t.isLoading?(r.value.error=!0,r.value.message=a.errorMessages.eventError):(t.searchTerm||t.selectedCategory)&&t.selectedCategoryKey!=="events"&&t.cludoError&&!t.isLoading?(r.value.error=!0,r.value.message=a.errorMessages.cludoError):t.totalResults===0&&!t.isLoading?(r.value.error=!0,r.value.message=a.errorMessages.noResults):(r.value.error=!1,r.value.message="")}vue.onMounted(async()=>{if(n.createDataLayerObject("siteSearchOpenEvent",{referrer_page:document.referrer}),t.cludoCredentials={apiKey:a.cludoApiKey,customerId:a.cludoCustomerId,engineId:a.cludoEngineId},t.eventsApi=a.eventsApi,t.filters=a.filters,t.siteLanguage=a.siteLanguage,t.cludoApiOperator=a.cludoApiOperator,i(),typeof window<"u"&&typeof document<"u"){window.onbeforeunload=()=>{_()};const g=new URLSearchParams(document.location.search),b=g.get("search-term"),S=parseInt(g.get("page"),10);S&&(t.currentPage=S),b&&(t.searchTerm=b),await t.getSearchResults(),b&&n.createDataLayerObject("siteSearchUsageEvent",{search_query:t.searchTerm,query_input:t.queryInput,results_count:t.totalResults,search_usage_index:t.searchInSessionCount,search_type:"initial",search_origin:"home_page"})}});function l(g){t.startDate=g,t.navigateToResultsPage(!0)}function u(g){t.endDate=g,t.navigateToResultsPage(!0)}function c(g){t.sortBy=g,t.navigateToResultsPage(!0)}function d(g){let b=!1;g>t.currentPage&&(b=!0),t.currentPage=g,typeof window<"u"&&window.scrollTo({top:0,left:0,behavior:"smooth"}),t.navigateToResultsPage(),m(b)}function f(g,b){return g===b?g:`${g} - ${b}`}function v(g){return g===null?"":g.match(/\b\d+\.\d\b/)?`£${g}0`:`£${g}`}function p(g){if(g.url)return g.url;if(g.placeUrl)return g.placeUrl;const b="https://www.datathistle.com/event/",S=encodeURIComponent(g.title.replaceAll(" ","-").toLowerCase());return`${b}${g.parentId}-${S}`}function h(g){o.value=!0,n.createDataLayerObject("siteSearchClickEvent",{interaction_type:"search_link_click",search_query:t.searchTerm,page_number:t.currentPage,click_text:g.title,click_url:p(g),click_category:g.categoryCard&&a.cardCategoryLabels[g.categoryCard]?a.cardCategoryLabels[g.categoryCard]:"",search_usage_index:t.searchInSessionCount,results_count:t.totalResults,query_input:t.queryInput})}function m(g){n.createDataLayerObject("siteSearchClickEvent",{interaction_type:"search_link_click",search_query:t.searchTerm,page_number:t.currentPage,page_navigation_direction:g?"forward":"back",search_usage_index:t.searchInSessionCount,results_count:t.totalResults,query_input:t.queryInput})}function _(){o.value||n.createDataLayerObject("siteSearchCloseEvent",{search_query:t.searchTerm,search_usage_index:t.searchInSessionCount,query_input:t.queryInput,page_number:t.currentPage,results_count:t.totalResults})}return vue.onUpdated(()=>{i()}),(g,b)=>(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$2,[vue.createElementVNode("div",_hoisted_2$2,[vue.createVNode(_sfc_main$4,{"cludo-api-key":a.cludoApiKey,"cludo-customer-id":a.cludoCustomerId,"cludo-engine-id":a.cludoEngineId,filters:a.filters,"sub-filters":a.subFilters,labels:a.searchLabels},null,8,["cludo-api-key","cludo-customer-id","cludo-engine-id","filters","sub-filters","labels"]),vue.createVNode(_sfc_main$6,{class:"my-200"}),(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(t).filters,(S,C)=>vue.withDirectives((vue.openBlock(),vue.createElementBlock("div",{key:C,class:"mb-200"},[vue.renderSlot(g.$slots,`federated-search__spotlight-${S.Key}`)],512)),[[vue.vShow,vue.unref(t).selectedCategoryKey===S.Key]])),128)),vue.unref(t).results?(vue.openBlock(),vue.createElementBlock("div",_hoisted_3$2,[vue.createElementVNode("div",null,[vue.createVNode(vue.unref(LoadingSpinner.VsHeading),{"heading-style":"heading-m",level:2,class:"my-0"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(a.searchLabels.searchResults),1)]),_:1}),vue.unref(t).totalResults!==0?(vue.openBlock(),vue.createBlock(vue.unref(VsDetail),{key:0},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(a.searchLabels.resultsFirst)+" "+vue.toDisplayString(vue.unref(t).totalResults)+" "+vue.toDisplayString(a.searchLabels.resultsSecond),1)]),_:1})):vue.createCommentVNode("",!0)]),vue.unref(t).selectedCategoryKey==="events"?(vue.openBlock(),vue.createBlock(_sfc_main$3,{key:0,"date-filter-visible":!0,"sort-options":a.sortLabels.sortOptions,"from-date-label":a.sortLabels.dateFrom,"to-date-label":a.sortLabels.dateTo,"sort-label":a.sortLabels.sort,onFromDateUpdated:l,onEndDateUpdated:u,onSortOrderUpdated:c},null,8,["sort-options","from-date-label","to-date-label","sort-label"])):vue.createCommentVNode("",!0)])):vue.createCommentVNode("",!0),vue.unref(t).isLoading?(vue.openBlock(),vue.createBlock(vue.unref(LoadingSpinner.VsLoading),{key:1})):vue.createCommentVNode("",!0),!vue.unref(t).isLoading&&vue.unref(t).results&&!vue.unref(t).eventsApiError?(vue.openBlock(),vue.createElementBlock("div",_hoisted_4$2,[vue.createVNode(vue.unref(VsCardGroup),{"cards-per-row":3,class:vue.normalizeClass(vue.unref(t).results&&s.value<=1?"mb-300":null)},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(t).results,S=>(vue.openBlock(),vue.createBlock(vue.unref(VsCard),{key:S.id},{"vs-card-header":vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_5$2,[vue.createVNode(vue.unref(LoadingSpinner.VsImg),{src:S.imgSrc||fallbackImg,class:"w-100 aspect-ratio-3-2 rounded-1 object-fit-cover img-zoom-on-hover"},null,8,["src"]),vue.createElementVNode("div",_hoisted_6$2,[S.minPrice?(vue.openBlock(),vue.createBlock(vue.unref(VsBadge),{key:0,variant:"information",class:"rounded-top-end rounded-bottom-start"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(a.fromText)+" "+vue.toDisplayString(v(S.minPrice)),1)]),_:2},1024)):vue.createCommentVNode("",!0),S.startDate?(vue.openBlock(),vue.createBlock(vue.unref(VsBadge),{key:1,variant:"information",class:"rounded-top-end rounded-top-start"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(f(S.startDate,S.endDate)),1)]),_:2},1024)):vue.createCommentVNode("",!0)]),vue.createElementVNode("div",_hoisted_7$1,[S.categoryCard&&e.cardCategoryLabels[S.categoryCard]?(vue.openBlock(),vue.createBlock(vue.unref(VsBadge),{key:0,variant:"highlight",class:"rounded-top-start rounded-bottom-start mx-0"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(e.cardCategoryLabels[S.categoryCard]),1)]),_:2},1024)):vue.createCommentVNode("",!0)])])]),"vs-card-body":vue.withCtx(()=>[vue.createVNode(vue.unref(LoadingSpinner.VsHeading),{level:"3","heading-style":"heading-xs"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(VsLink),{href:p(S),onClick:C=>h(S),class:"stretched-link",variant:"secondary"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(S.title),1)]),_:2},1032,["href","onClick"])]),_:2},1024),vue.createVNode(vue.unref(LoadingSpinner.VsBody),null,{default:vue.withCtx(()=>[vue.createElementVNode("p",_hoisted_8,vue.toDisplayString(S.description),1)]),_:2},1024)]),"vs-card-footer":vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_9,[S.location?(vue.openBlock(),vue.createElementBlock("div",_hoisted_10,[vue.createVNode(vue.unref(LoadingSpinner.VsIcon),{icon:"fa-solid fa-location-dot",variant:"highlight",class:"me-050",size:"sm"}),vue.createVNode(vue.unref(VsDetail),{"no-margins":"",color:"tertiary"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(S.location),1)]),_:2},1024)])):vue.createCommentVNode("",!0),vue.createElementVNode("div",null,[S.dataSrc==="data-thistle"?(vue.openBlock(),vue.createBlock(vue.unref(LoadingSpinner.VsIcon),{key:0,icon:"vs-icon-control-external-link",variant:"highlight",size:"sm"})):vue.createCommentVNode("",!0)])])]),_:2},1024))),128))]),_:1},8,["class"]),vue.unref(t).results&&s.value>1?(vue.openBlock(),vue.createBlock(vue.unref(_sfc_main$D),{key:0,class:"vs-federated-search__pagination","number-of-pages":s.value,"next-button-label":a.paginationLabels.nextButtonLabel,"previous-button-label":a.paginationLabels.previousButtonLabel,"page-label":a.paginationLabels.pageLabel,"of-label":a.paginationLabels.ofLabel,modelValue:vue.unref(t).currentPage,"onUpdate:modelValue":b[0]||(b[0]=S=>vue.unref(t).currentPage=S),onPageClick:d},null,8,["number-of-pages","next-button-label","previous-button-label","page-label","of-label","modelValue"])):vue.createCommentVNode("",!0)])):vue.createCommentVNode("",!0),r.value.error?(vue.openBlock(),vue.createElementBlock("div",_hoisted_11,[r.value.error?(vue.openBlock(),vue.createBlock(vue.unref(LoadingSpinner.VsWarning),{key:0},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(r.value.message),1)]),_:1})):vue.createCommentVNode("",!0)])):vue.createCommentVNode("",!0)]),vue.createVNode(vue.unref(LoadingSpinner.VsWarning),{"data-test":"vs-federated-search__error--no-js",class:"vs-federated-search__error--no-js mb-300"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(a.searchLabels.noJs),1)]),_:1})]))}};var define_process_env_default={};function setScriptSrc(e,n){e.src=n}const bootstrap=e=>{var n,t,r,a="The Google Maps JavaScript API",o="google",s="importLibrary",i="__ib__",l=document,u=window,c=u[o]||(u[o]={}),d=c.maps||(c.maps={}),f=new Set,v=new URLSearchParams,p=()=>n||(n=new Promise(async(h,m)=>{var _;await(t=l.createElement("script")),v.set("libraries",[...f]+"");for(r in e)v.set(r.replace(/[A-Z]/g,g=>"_"+g[0].toLowerCase()),e[r]);v.set("callback",o+".maps."+i),setScriptSrc(t,"https://maps.googleapis.com/maps/api/js?"+v),d[i]=h,t.onerror=()=>n=m(Error(a+" could not load.")),t.nonce=((_=l.querySelector("script[nonce]"))==null?void 0:_.nonce)||"",l.head.append(t)}));d[s]?console.warn(a+" only loads once. Ignoring:",e):d[s]=(h,...m)=>f.add(h)&&p().then(()=>d[s](h,...m))},MSG_REPEATED_SET_OPTIONS=e=>`The setOptions() function should only be called once. The options passed to the additional call (${JSON.stringify(e)}) will be ignored.`,MSG_IMPORT_LIBRARY_EXISTS=e=>`The google.maps.importLibrary() function is already defined, and @googlemaps/js-api-loader will use the existing function instead of overwriting it. The options passed to setOptions (${JSON.stringify(e)}) will be ignored.`,MSG_SET_OPTIONS_NOT_CALLED="No options were set before calling importLibrary. Make sure to configure the loader using setOptions().",MSG_SCRIPT_ELEMENT_EXISTS="There already is a script loading the Google Maps JavaScript API, and no google.maps.importLibrary function is defined. @googlemaps/js-api-loader will proceed to bootstrap the API with the specified options, but the existing script might cause problems using the API. Make sure to remove the script loading the API.",logDevWarning=define_process_env_default.NODE_ENV!=="production"?e=>{console.warn(`[@googlemaps/js-api-loader] ${e}`)}:()=>{},logDevNotice=define_process_env_default.NODE_ENV!=="production"?e=>{console.info(`[@googlemaps/js-api-loader] ${e}`)}:()=>{};let setOptionsWasCalled_=!1;function setOptions(e){if(setOptionsWasCalled_){logDevWarning(MSG_REPEATED_SET_OPTIONS(e));return}installImportLibrary_(e),setOptionsWasCalled_=!0}async function importLibrary(e){var n,t;if(setOptionsWasCalled_||logDevWarning(MSG_SET_OPTIONS_NOT_CALLED),!((t=(n=window==null?void 0:window.google)==null?void 0:n.maps)!=null&&t.importLibrary))throw new Error("google.maps.importLibrary is not installed.");return await google.maps.importLibrary(e)}function installImportLibrary_(e){var t,r;const n=!!((r=(t=window.google)==null?void 0:t.maps)!=null&&r.importLibrary);n?logDevNotice(MSG_IMPORT_LIBRARY_EXISTS(e)):define_process_env_default.NODE_ENV!=="production"&&document.querySelector('script[src*="maps.googleapis.com/maps/api/js"]')&&logDevWarning(MSG_SCRIPT_ELEMENT_EXISTS),n||bootstrap(e)}const useGoogleMapStore=pinia.defineStore("googleMap",()=>{const e=vue.ref(!0),n=vue.ref(Date.now()),t=vue.ref(!1),r=vue.ref(0),a=vue.ref(0);return{sidebarOpen:e,timeMounted:n,firstInteraction:t,searchesCount:r,filterUsesCount:a}}),_hoisted_1$1={class:"vs-map-sidebar__header d-flex"},_hoisted_2$1={class:"vs-map-sidebar__content"},_hoisted_3$1={class:"vs-map-sidebar__input d-flex mt-100 mb-050"},_hoisted_4$1={key:1,class:"vs-map-sidebar__sub-filters-wrapper"},_hoisted_5$1={class:"vs-map-sidebar__search-results"},_hoisted_6$1={class:"vs-map-sidebar__google-maps-container mt-075"},_hoisted_7={key:0,class:"vs-map-sidebar__footer"},_sfc_main$1=vue.defineComponent({__name:"MapSidebar",props:{query:{type:String,default:""},selectedCategories:{type:String,default:""},headerLabel:{type:String,default:""},closeSidebarButtonLabel:{type:String,default:""},searchBarAriaLabel:{type:String,default:""},inputPlaceholderLabel:{type:String,default:""},searchButtonLabel:{type:String,default:""},clearMapLabel:{type:String,default:""},subFilterHeaderLabel:{type:String,default:""},searchResultsLabel:{type:String,default:""},openSidebarButtonLabel:{type:String,default:""}},emits:["search-input-changed","reset-map"],setup(e){const n=useGoogleMapStore(),t=e;return(r,a)=>(vue.openBlock(),vue.createElementBlock(vue.Fragment,null,[vue.createElementVNode("div",{class:vue.normalizeClass(["vs-map-sidebar px-125",vue.unref(n).sidebarOpen?"d-block":"d-none"]),"data-test":"vs-map-sidebar",ref:"vsMapSidebar"},[vue.createElementVNode("div",_hoisted_1$1,[t.headerLabel?(vue.openBlock(),vue.createBlock(LoadingSpinner.VsHeading,{key:0,level:"1","heading-style":"heading-xxs",class:"flex-grow-1",id:"vs-map-sidebar__heading","data-test":"vs-map-sidebar__heading"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.headerLabel),1)]),_:1})):vue.createCommentVNode("",!0),vue.createVNode(LoadingSpinner.VsButton,{variant:"tertiary",icon:"vs-icon-control-dismiss","icon-only":"",class:"vs-map-sidebar__sidebar-control vs-map-siderbar__sidebar-control--dismiss","data-test":"vs-map-siderbar__sidebar-control--dismiss",onClick:a[0]||(a[0]=o=>vue.unref(n).sidebarOpen=!1)},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.closeSidebarButtonLabel),1)]),_:1})]),vue.createElementVNode("div",_hoisted_2$1,[vue.createElementVNode("div",_hoisted_3$1,[vue.createVNode(VsInput,{type:"text",autocomplete:"off","field-name":"vs-map-search-input","data-test":"vs-map-search-input",ref:"vs-search-input",placeholder:t.inputPlaceholderLabel,class:"vs-map-sidebar__input flex-grow-1","aria-label":t.searchBarAriaLabel,onKeyup:a[1]||(a[1]=vue.withKeys(vue.withModifiers(o=>r.$emit("search-input-changed"),["prevent"]),["enter"]))},null,8,["placeholder","aria-label"]),vue.createVNode(LoadingSpinner.VsButton,{class:"vs-map-sidebar__search-button","data-test":"vs-map-sidebar__search-button",icon:"vs-icon-control-search","icon-only":"",rounded:!1,size:"lg",onClick:a[2]||(a[2]=vue.withModifiers(o=>r.$emit("search-input-changed"),["prevent"])),onKeyup:a[3]||(a[3]=vue.withKeys(vue.withModifiers(o=>r.$emit("search-input-changed"),["prevent"]),["enter"]))},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.searchButtonLabel),1)]),_:1})]),r.$props.query||r.$props.selectedCategories?(vue.openBlock(),vue.createElementBlock("a",{key:0,href:"#",class:"d-block","data-test":"vs-map-sidebar__reset-map",onClick:a[4]||(a[4]=vue.withModifiers(o=>r.$emit("reset-map"),["prevent"])),onKeyup:a[5]||(a[5]=vue.withKeys(vue.withModifiers(o=>r.$emit("reset-map"),["prevent"]),["enter"]))},vue.toDisplayString(t.clearMapLabel),33)):vue.createCommentVNode("",!0),r.$slots["vs-map-sidebar-sub-filters"]&&r.$slots["vs-map-sidebar-sub-filters"]()?(vue.openBlock(),vue.createElementBlock("div",_hoisted_4$1,[vue.createVNode(VsDetail,{class:"vs-map-sidebar__sub-filter-header",size:"small",color:"secondary"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.subFilterHeaderLabel),1)]),_:1}),vue.renderSlot(r.$slots,"vs-map-sidebar-sub-filters")])):vue.createCommentVNode("",!0),vue.createElementVNode("div",_hoisted_5$1,[r.$props.query||r.$props.selectedCategories?(vue.openBlock(),vue.createBlock(LoadingSpinner.VsHeading,{key:0,level:"2","heading-style":"heading-xxxs","data-test":"vs-map-sidebar__search-result-query"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.searchResultsLabel)+' "'+vue.toDisplayString(t.query||t.selectedCategories)+'" ',1)]),_:1})):vue.createCommentVNode("",!0),vue.createElementVNode("div",_hoisted_6$1,[vue.renderSlot(r.$slots,"vs-map-sidebar-search-results")])])]),r.$props.query||r.$props.selectedCategories?(vue.openBlock(),vue.createElementBlock("div",_hoisted_7,a[7]||(a[7]=[vue.createElementVNode("hr",{class:"vs-map-sidebar__swipe-tab"},null,-1)]))):vue.createCommentVNode("",!0)],2),vue.createVNode(LoadingSpinner.VsButton,{class:vue.normalizeClass(["vs-map-sidebar__sidebar-control vs-map-sidebar__sidebar-control--open",vue.unref(n).sidebarOpen?"d-none":"d-block"]),"data-test":"vs-map-sidebar__sidebar-control--open",size:"sm",icon:"fa-regular fa-sliders","icon-only":"",onClick:a[6]||(a[6]=o=>vue.unref(n).sidebarOpen=!0)},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.openSidebarButtonLabel),1)]),_:1},8,["class"])],64))}}),cookieCheckerComposable=()=>{const e=vue.ref([]),n=vue.ref(!1),t=vue.ref(!1),r=vue.computed(()=>typeof window<"u"&&window.bypassCookiesRequired?!0:n.value),a=vue.computed(()=>typeof window<"u"&&window.bypassCookiesLoaded?!0:{cookieManagerLoaded:t});function o(){t.value=!0}function s(){let i=!1;typeof CookieControl<"u"&&(i=e.value.every(l=>CookieControl.getCategoryConsent(l)===!0)),n.value=i}return vue.onMounted(()=>{window.addEventListener("cookieManagerLoaded",()=>{o()}),window.addEventListener("cookiesUpdated",()=>{s()})}),{requiredCookies:e,cookiesAllowed:r,cookiesLoaded:a}};function dataLayerComposable(){const e=LoadingSpinner.useDataLayerStore(),n=vue.ref(!1),t=vue.computed(()=>e.pageUrl);function r(l,u){const c={};return l.forEach(d=>{c[d]=u[d]||void 0,d==="language"&&c[d]===void 0&&(c[d]=u.site_language||void 0)}),c}function a(){return new Date(Date.now()).toISOString()}function o(l){const c={...e.GTMData,...l};return c.hit_timestamp=a(),c}function s(l){n.value?window.dataLayer.push(l):LoadingSpinner.checkVendorLibrary("dataLayer",()=>{n.value=!0,window.dataLayer.push(l)})}function i(l,u){let c,d,f,v;switch(l){case"googleMapSearchEvent":c="map_search",d={event:c,search_query:u.search_query,search_map_location:u.search_map_location,search_results_count:u.search_results_count,search_usage_index:u.search_usage_index},f=o(d),v=r(LoadingSpinner.googleMapSearchTemplate,f);break;case"googleMapFilterEvent":c="map_filter_interaction",d={event:c,filter_type:u.filter_type,search_map_location:u.search_map_location,filter_selection:u.filter_selection,results_count:u.results_count,filter_usage_index:u.filter_usage_index},f=o(d),v=r(LoadingSpinner.googleMapFilterInteractionTemplate,f);break;case"googleMapTimeToFirstInteractionEvent":c="map_time_to_first_interaction",d={event:c,time_to_first_interaction_ms:u.time_to_first_interaction_ms,first_interaction_type:u.first_interaction_type},f=o(d),v=r(LoadingSpinner.googleMapTimeToFirstInteractionTemplate,f);break;case"googleMapInteractionEvent":c="map_interaction_click",d={event:c,interaction_type:u.interaction_type,search_query:u.search_query,map_location:u.map_location,visible_attractions_count:u.visible_attractions_count,card_attraction_name:u.card_attraction_name,card_attraction_category:u.card_attraction_category,card_attraction_url:u.card_attraction_url,card_attraction_rating:u.card_attraction_rating,interaction_timestamp_ms:u.interaction_timestamp_ms},f=o(d),v=r(LoadingSpinner.googleMapInteractionTemplate,f);break}v&&s(v)}return{pageUrl:t,createDataLayerObject:i,templateFiller:r,compileFullTemplate:o,returnIsoDate:a,pushToDataLayer:s,dataLayerStore:e}}const _hoisted_1={class:"vs-map"},_hoisted_2={class:"vs-map__controls"},_hoisted_3={class:"vs-map-sidebar__sub-filters"},_hoisted_4={key:0,class:"vs-map__filter-controls"},_hoisted_5={class:"vs-map__wrapper"},_hoisted_6={id:"vs-map","map-id":"vs-map",ref:"vsMap"},MAX_ZOOM=17,CATEGORY_VISIBLE_ZOOM=11,NUMBER_OF_RESULTS=20,_sfc_main={__name:"MainMap",props:{apiKey:{type:String,default:getEnvValue("GOOGLE_MAPS_API_KEY")},mapId:{type:String,default:"vs-map"},mapTypeVector:{type:Boolean,default:!1},center:{type:Object,default:()=>({lat:56.490153,lng:4.10959})},zoom:{type:Number,default:6},radius:{type:Number,default:1e3},labels:{type:Object,default:()=>{}},languageCode:{type:String,default:"en",validator:e=>e.match(/(en|es|it|de|nl|fr)/)},categoriesLocation:{type:String,default:""},categoryLabels:{type:Object,default:()=>{}},jsDisabled:{type:Boolean,required:!0},noJsMessage:{type:String,required:!0},noCookiesMessage:{type:String,required:!0},cookieBtnText:{type:String,required:!0},noResultsMessage:{type:String,required:!0},resetMapNoResultsMessage:{type:String,required:!0}},setup(e){const n=dataLayerComposable(),t=e;let r,a,o,s,i,l,u,c,d,f,v={},p;const h=vue.ref(),m=vue.ref(new Set),_=vue.ref(),g=vue.ref(new Set),b=vue.ref(new Set),S=vue.ref(new Set),C=vue.ref(new Set),V=vue.ref(),E=vue.ref(),$=vue.ref(t.zoom),D=vue.ref(),A=vue.ref(new Set),M=vue.ref(),j=vue.computed(()=>{const U=new Map,N=k[h.value].subCategory;return Object.values(N).forEach(Z=>{U.set(Z.id,{includedTypes:Z.includedType,excludedTypes:Z.excludedType})}),U}),O=useGoogleMapStore(),R=vue.ref(!1);let X;const G=vue.ref(void 0),W={north:60.8,south:54.8,west:-8.5,east:-.7};let k={};const L=t.categoryLabels;let I=0;vue.onBeforeMount(()=>{const U=cookieCheckerComposable();U.requiredCookies.value=cookieValues$5.google_maps,X=vue.computed(()=>t.jsDisabled===!0?(G.value="noJS",!0):!U.cookiesAllowed.value&&U.cookiesLoaded.value===!0||!U.cookiesLoaded.value?(G.value="noCookie",!0):!1)}),vue.onMounted(async()=>{if(t.categoriesLocation&&LoadingSpinner.axios.get(t.categoriesLocation).then(N=>{k=N.data}).catch(()=>{}),X.value===!1){setOptions({key:t.apiKey,v:"quarterly",libraries:["maps","places","marker","core","geometry"],region:"GB",language:t.languageCode});try{await importLibrary("maps"),await importLibrary("places"),await importLibrary("marker"),await importLibrary("core"),await importLibrary("geometry")}catch{console.error("Google Maps Library load error")}}a=document.getElementById("vs-map"),o=document.getElementById("nearbySearch"),s=document.getElementById("textSearch"),i=document.querySelector("gmp-place-text-search-request"),l=document.querySelector("gmp-place-nearby-search-request"),u=document.querySelector("gmp-place-details"),c=document.getElementById("placeRequest"),d=document.getElementById("vs-map-search-input");async function U(){try{const N={center:{lat:t.center.lat,lng:t.center.lng},renderingType:t.mapTypeVector?google.maps.RenderingType.VECTOR:google.maps.RenderingType.RASTER,zoom:t.zoom,isFractionalZoomEnabled:!0,mapId:t.mapId,restriction:{latLngBounds:W},zoomControl:!0,fullscreenControl:!1,mapTypeControl:!1,cameraControl:!1,streetViewControl:!1,gestureHandling:"greedy"};if(a)r=new google.maps.Map(a,N),r.fitBounds(W);else throw new Error("Init error, mapContainer undefined")}catch(N){console.error("Maps init error",N.message)}f=new google.maps.InfoWindow,f.addListener("closeclick",()=>{ie("card_close",c.place)}),F(),r.addListener("zoom_changed",()=>{$.value=r.getZoom(),$.value<CATEGORY_VISIBLE_ZOOM?F():F(!0)}),r.addListener("idle",()=>{p=fe()}),o.addEventListener("gmp-select",({place:N})=>{v[N.id]&&ae(N,v[N.id])}),s.addEventListener("gmp-select",({place:N})=>{v[N.id]&&ae(N,v[N.id])})}O.firstInteraction=!1,O.searchesCount=0,O.filterUsesCount=0,X.value===!1&&await U()});function F(U){const N={strokeColor:"#A3A3CC",strokeOpacity:1,strokeWeight:1,fillColor:"#A3A3CC",fillOpacity:.5},Z=["ChIJ39UebIqp0EcRqI4tMyWV4fQ","ChIJdZmmmcoQXkgR2OO3bu8o5fc","ChIJ-ydAXOS6WUgRCPTbzjQSfM8","ChIJ7Q8cbLY0ZEgRouilirxxux4","ChIJ1YEuRDCFY0gRDeDw8bxbAuo","ChIJv-VNj0VoEkYRK9BkuJ07sKE","ChIJ-1-U7rYnS0YRzZLgw9BDh1I","ChIJ8fA1bTmyXEYRYm-tjaLruCI","ChIJ6_ktdpMVvEgRJBv3ZEgxsD8","ChIJa76xwh5ymkcRW-WRjmtd6HU","ChIJu-SH28MJxkcRnwq9_851obM","ChIJuwtkpGSZAEcR6lXMScpzdQk","ChIJl5fz7WR9wUcR8g_mObTy60c","ChIJMVd4MymgVA0R99lHx5Y__Ws","ChIJ_ZqKe2cw6UYREPzyaM3PAAA","ChIJE74zDxSU3UYRubpdpdNUCvM","ChIJ4wsuREWc40YRewI60MRYJR4","ChIJ_UuggpyUkkYRwyW0T7qf6kA","ChIJ3fYyS9_KgUYREKh1PNZGAQA","ChIJQ2Dro1Ir0kgRmkXB5TQEim8","ChIJFXfA47sNok4RGOIUAYOdzzQ","ChIJI9HkgQm_ikYR8i7GR23fEbY","ChIJUXXYvLMei0YR7zdFQUIM8bA","ChIJRyEhyrlFlUcR75LTAvZg22Q"],ee=["ChIJ39UebIqp0EcRqI4tMyWV4fQ","ChIJdZmmmcoQXkgR2OO3bu8o5fc","ChIJ-ydAXOS6WUgRCPTbzjQSfM8","ChIJ6_ktdpMVvEgRJBv3ZEgxsD8"],se=r.getFeatureLayer(google.maps.FeatureType.COUNTRY),te=r.getFeatureLayer(google.maps.FeatureType.ADMINISTRATIVE_AREA_LEVEL_1);U?(se.style=null,te.style=null,se.style=le=>{if(ee.includes(le.feature.placeId))return N},te.style=le=>{if(ee.includes(le.feature.placeId))return N}):(se.style=le=>{if(Z.includes(le.feature.placeId))return N},te.style=le=>{if(Z.includes(le.feature.placeId))return N})}function J(U,N){ne(),h.value=U,Object.values(k[U].subCategory).forEach(Z=>g.value.add(Z.includedType)),Object.values(k[U].subCategory).forEach(Z=>{Z.excludedType&&b.value.add(Z.excludedType)}),g.value=new Set(Array.from(g.value).flat()),b.value=new Set(Array.from(b.value).flat()),g.value.forEach(Z=>{b.value.has(Z)&&b.value.delete(Z)}),_.value=k[U],V.value=N,P({includedTypes:Array.from(g.value),excludedTypes:Array.from(b.value)}),D.value=L[V.value].label,d.value=D.value}function w(U,N){const Z=vue.ref([]),ee=vue.ref();return U.forEach(()=>{L.forEach(se=>{se.id===h.value&&(Z.value=se)}),Object.values(Z.value).forEach(se=>{Object.values(se).forEach(te=>{N===te.id&&(ee.value=te.label)})})}),ee}function B(){S.value.forEach(U=>{C.value.has(U)&&C.value.delete(U)})}function T(U,{includeTypes:N=!1,excludeTypes:Z=!1,removeIncludedTypes:ee=!1,removeExcludedTypes:se=!1}={}){var le;const te=j.value.get(U);N&&te.includedTypes.forEach(ce=>{N&&S.value.add(ce),ee&&S.value.delete(ce)}),(Z||se)&&((le=te.excludedTypes)==null||le.forEach(ce=>{Z&&C.value.add(ce),se&&C.value.delete(ce)}))}function q(U,N){E.value=N,U==="self-catering"?(Q(),m.value=new Set,m.value.add(U),D.value=w(m.value,U).value,ne(),d.value=D.value,z()):m.value.has(U)?(m.value.delete(U),S.value=new Set,C.value=new Set,m.value.forEach(Z=>{T(Z,{includeTypes:!0,excludeTypes:!0})}),B(),A.value.delete(w(m.value,U).value),m.value.size===0?(A.value=new Set,J(h.value,V.value)):(P({includedTypes:Array.from(S.value).flat(),excludedTypes:Array.from(C.value).flat()}),D.value=Array.from(A.value).join(", "),d.value=D.value)):(m.value.add(U),T(U,{includeTypes:!0,excludeTypes:!0}),B(),P({includedTypes:Array.from(S.value).flat(),excludedTypes:Array.from(C.value).flat()}),A.value.add(w(m.value,U).value),D.value=Array.from(A.value).join(", "),d.value=D.value)}async function P({includedTypes:U=[],excludedTypes:N=[]}={}){H(),Q(),I+=1;const Z=I;R.value=!1,O.filterUsesCount+=1,M.value="nearby";const ee=r.getBounds(),se=ee.getNorthEast(),te=ee.getSouthWest(),le=google.maps.geometry.spherical.computeDistanceBetween(se,te),ce=Math.min(le/2,25e3);l.includedTypes=U,l.excludedTypes=N??[],l.maxResultCount=NUMBER_OF_RESULTS,l.locationRestriction={center:r.getCenter(),radius:ce},o.style.display="block",o.addEventListener("gmp-load",()=>{if(Z!==I)return;Y(Z);let de="main",ve=h.value;m.value.size&&(de="sub",ve=Array.from(m.value).join(", ")),n.createDataLayerObject("googleMapFilterEvent",{filter_type:de,search_map_location:r.getCenter().toString(),filter_selection:ve,results_count:o.places.length,filter_usage_index:O.filterUsesCount}),ue("map_filter")},{once:!0})}async function z(){H(),ne(),R.value=!1,I+=1;const U=I;O.searchesCount+=1,M.value="text",D.value=d.value.trim(),D.value&&(i.textQuery=D.value,i.locationRestriction=r.getBounds(),i.maxResultCount=NUMBER_OF_RESULTS,s.style.display="block",s.addEventListener("gmp-load",()=>{U===I&&(Y(U),n.createDataLayerObject("googleMapSearchEvent",{search_query:D.value,search_map_location:r.getCenter().toString(),search_results_count:s.places.length,search_usage_index:O.searchesCount}),ue("map_search"))},{once:!0}))}async function Y(U){const{AdvancedMarkerElement:N}=await importLibrary("marker"),{LatLngBounds:Z}=await importLibrary("core");if(U!==I)return;const ee=vue.ref();M.value==="nearby"?ee.value=o:M.value==="text"?ee.value=s:console.error("Unrecognised Search type"),ee.value.places.length===0?(R.value=!0,ee.value.style.display="none"):ee.value.style.display="block";const se=new Z;ee.value.places&&ee.value.places.forEach(te=>{const le=document.createElement("div");le.classList.add("vs-map-marker");const ce=document.createElement("i");ce.classList.add("fa-solid","fa-location-dot"),le.appendChild(ce);const de=new N({map:r,position:te.location,content:le,title:"Map pin"});de.addEventListener("gmp-placeclick",()=>{ae(te)}),de.addListener("click",()=>{ae(te)}),de.metadata={id:te.id},v[te.id]=de,se.extend(te.location),ee.value.places.length===1?(r.setCenter({lat:te.location.lat(),lng:te.location.lng()}),r.setZoom(14),r.fitBounds(te.viewport)):(r.setCenter(se.getCenter()),r.fitBounds(se))})}function H(U,N){oe(),M.value="",o.style.display="none",s.style.display="none",i.textQuery=null,f&&f.close&&f.close(),R.value=!1,U&&(Q(),ne(),ie("clear_all")),N&&(r.setCenter(t.center),r.setZoom(t.zoom),r.fitBounds(W),ie("reset_map"))}function Q(){D.value=null,d.value=""}function ne(){h.value=void 0,m.value=new Set,g.value=new Set,b.value=new Set,S.value=new Set,C.value=new Set,A.value=new Set,V.value=void 0,E.value=void 0}function oe(){for(const U in v)v[U]&&(v[U].map=null);v={}}function ae(U){f.isOpen&&(f.close(),ie("card_close",c.place)),c.place=U,window.innerWidth<=768?(u.style.width="85vw",u.style.height="32em",O.sidebarOpen=!1):(u.style.width="20em",u.style.height="32em"),u.style.display="block",u.style.overflowY="auto",u.style.overflowX="hidden",u.style.boxSizing="border-box",u.style.maxHeight="32em",f.setOptions({content:u,maxWidth:"25em",position:U.location,pixelOffset:new google.maps.Size(0,-32)}),f.open({map:r}),r.fitBounds(U.viewport),google.maps.event.addListenerOnce(r,"idle",()=>{r.getZoom()>MAX_ZOOM&&r.setZoom(MAX_ZOOM),ie("card_open",U)}),r.setCenter(U.location)}async function ie(U,N){let Z="",ee="",se="",te="";N&&(await N.fetchFields({fields:["displayName","primaryType","rating","websiteURI"]}),Z=N.displayName,ee=N.rating,se=N.websiteURI,te=N.primaryType),n.createDataLayerObject("googleMapInteractionEvent",{interaction_type:U,search_query:d.value.trim(),map_location:r.getCenter().toString(),visible_attractions_count:p,card_attraction_name:Z,card_attraction_category:te,card_attraction_rating:ee,card_attraction_url:se,interaction_timestamp_ms:Date.now()}),ue(U)}function ue(U){if(!O.firstInteraction){const Z=Date.now()-O.timeMounted;n.createDataLayerObject("googleMapTimeToFirstInteractionEvent",{time_to_first_interaction_ms:Z,first_interaction_type:U}),O.firstInteraction=!0}}function fe(){const U=r.getBounds();if(!U)return 0;let N=0;for(let Z=0;Z<Object.keys(v).length;Z++){const se=v[Object.keys(v)[Z]].position;U.contains(se)&&(N+=1)}return N}return(U,N)=>(vue.openBlock(),vue.createElementBlock("div",_hoisted_1,[vue.createElementVNode("div",{class:vue.normalizeClass(["vs-map__container",vue.unref(X)?"d-none":"d-block"])},[vue.createElementVNode("div",_hoisted_2,[vue.createVNode(_sfc_main$1,{query:D.value,"selected-categories":h.value,"header-label":t.labels.heading,"close-sidebar-button-label":t.labels.closeSidebarBtn,"search-bar-aria-label":t.labels.searchBarAriaLabel,"input-placeholder-label":t.labels.inputPlaceholder,"search-button-label":t.labels.searchButton,"clear-map-label":t.labels.clearMap,"sub-filter-header-label":t.labels.subFilterHeader,"search-results-label":t.labels.searchResults,"open-sidebar-button-label":t.labels.openSidebarButton,onSearchInputChanged:z,onResetMap:N[1]||(N[1]=Z=>H(!0))},vue.createSlots({"vs-map-sidebar-search-results":vue.withCtx(()=>[(vue.openBlock(),vue.createBlock(vue.Suspense,null,{default:vue.withCtx(()=>N[2]||(N[2]=[vue.createElementVNode("div",{id:"search-container"},[vue.createElementVNode("gmp-place-search",{id:"nearbySearch",orientation:"vertical",selectable:"",style:{display:"none"}},[vue.createElementVNode("gmp-place-nearby-search-request",{id:"nearbySearchQuery"}),vue.createElementVNode("gmp-place-content-config",null,[vue.createElementVNode("gmp-place-address"),vue.createElementVNode("gmp-place-rating"),vue.createElementVNode("gmp-place-type"),vue.createElementVNode("gmp-place-price"),vue.createElementVNode("gmp-place-accessible-entrance-icon"),vue.createElementVNode("gmp-place-opening-hours"),vue.createElementVNode("gmp-place-reviews"),vue.createElementVNode("gmp-place-attribution",{"light-scheme-color":"gray","dark-scheme-color":"gray"})])]),vue.createElementVNode("gmp-place-search",{id:"textSearch",orientation:"vertical",selectable:"",style:{display:"none"}},[vue.createElementVNode("gmp-place-text-search-request",{id:"textSearchQuery"}),vue.createElementVNode("gmp-place-content-config",null,[vue.createElementVNode("gmp-place-address"),vue.createElementVNode("gmp-place-rating"),vue.createElementVNode("gmp-place-type"),vue.createElementVNode("gmp-place-price"),vue.createElementVNode("gmp-place-accessible-entrance-icon"),vue.createElementVNode("gmp-place-opening-hours"),vue.createElementVNode("gmp-place-reviews"),vue.createElementVNode("gmp-place-attribution",{"light-scheme-color":"gray","dark-scheme-color":"gray"})])])],-1)])),_:1,__:[2]})),R.value?(vue.openBlock(),vue.createBlock(vue.unref(VsAlert),{key:0,id:"vs-map__no-results-alert",class:"mt-075 mb-150",size:"small"},{default:vue.withCtx(()=>[vue.createElementVNode("span",null,[vue.createTextVNode(vue.toDisplayString(e.noResultsMessage)+" ",1),vue.createElementVNode("a",{href:"#",onClick:N[0]||(N[0]=vue.withModifiers(Z=>H(!0,!0),["prevent"]))},vue.toDisplayString(e.resetMapNoResultsMessage),1)])]),_:1})):vue.createCommentVNode("",!0)]),_:2},[h.value?{name:"vs-map-sidebar-sub-filters",fn:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_3,[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(L)[V.value].subCategory,(Z,ee)=>(vue.openBlock(),vue.createBlock(vue.unref(LoadingSpinner.VsButton),{key:ee,variant:m.value.has(Z.id)?"primary":"secondary",size:"sm",onClick:se=>q(Z.id,ee)},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(Z.label),1)]),_:2},1032,["variant","onClick"]))),128))])]),key:"0"}:void 0]),1032,["query","selected-categories","header-label","close-sidebar-button-label","search-bar-aria-label","input-placeholder-label","search-button-label","clear-map-label","sub-filter-header-label","search-results-label","open-sidebar-button-label"]),$.value>=CATEGORY_VISIBLE_ZOOM&&vue.unref(O).sidebarOpen?(vue.openBlock(),vue.createElementBlock("div",_hoisted_4,[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(L),(Z,ee)=>(vue.openBlock(),vue.createBlock(vue.unref(LoadingSpinner.VsButton),{key:ee,class:"vs-map__filter-controls-button",icon:vue.unref(k)[Z.id].icon,variant:h.value===Z.id?"primary":"secondary",onClick:vue.withModifiers(se=>J(Z.id,ee),["prevent"])},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(Z.label),1)]),_:2},1032,["icon","variant","onClick"]))),128))])):vue.createCommentVNode("",!0)]),vue.createElementVNode("div",_hoisted_5,[vue.createElementVNode("div",_hoisted_6,null,512),(vue.openBlock(),vue.createBlock(vue.Suspense,null,{default:vue.withCtx(()=>N[3]||(N[3]=[vue.createElementVNode("div",{id:"detail-container"},[vue.createElementVNode("gmp-place-details",{id:"placeDetails",style:{display:"none"}},[vue.createElementVNode("gmp-place-details-place-request",{id:"placeRequest"}),vue.createElementVNode("gmp-place-content-config",null,[vue.createElementVNode("gmp-place-address"),vue.createElementVNode("gmp-place-rating"),vue.createElementVNode("gmp-place-type"),vue.createElementVNode("gmp-place-price"),vue.createElementVNode("gmp-place-accessible-entrance-icon"),vue.createElementVNode("gmp-place-opening-hours"),vue.createElementVNode("gmp-place-website"),vue.createElementVNode("gmp-place-phone-number"),vue.createElementVNode("gmp-place-summary"),vue.createElementVNode("gmp-place-type-specific-highlights"),vue.createElementVNode("gmp-place-reviews"),vue.createElementVNode("gmp-place-feature-list"),vue.createElementVNode("gmp-place-media",{"lightbox-preferred":""}),vue.createElementVNode("gmp-place-attribution",{"light-scheme-color":"gray","dark-scheme-color":"gray"})])])],-1)])),_:1,__:[3]}))])],2),vue.unref(X)&&G.value==="noCookie"?(vue.openBlock(),vue.createBlock(vue.unref(LoadingSpinner.VsWarning),{key:0,type:"cookie",class:vue.normalizeClass(["vs-map__error vs-map__error--no-cookies",vue.unref(X)?"d-block":"d-none"]),"data-test":"vs-map__warning--no-cookies"},{"button-text":vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.cookieBtnText),1)]),default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.noCookiesMessage)+" ",1)]),_:1},8,["class"])):vue.createCommentVNode("",!0),vue.unref(X)&&G.value==="noJS"?(vue.openBlock(),vue.createBlock(vue.unref(LoadingSpinner.VsWarning),{key:1,"data-test":"vs-map__warning--no-js",class:"vs-map__warning vs-map__warning--no-js"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(e.noJsMessage),1)]),_:1})):vue.createCommentVNode("",!0)]))}};exports.VsBody=LoadingSpinner.VsBody;exports.VsButton=LoadingSpinner.VsButton;exports.VsButtonToggleGroup=LoadingSpinner.VsButtonToggleGroup;exports.VsCol=LoadingSpinner.VsCol;exports.VsContainer=LoadingSpinner.VsContainer;exports.VsHeading=LoadingSpinner.VsHeading;exports.VsIcon=LoadingSpinner.VsIcon;exports.VsImg=LoadingSpinner.VsImg;exports.VsLoadingSpinner=LoadingSpinner.VsLoading;exports.VsRow=LoadingSpinner.VsRow;exports.VsWarning=LoadingSpinner.VsWarning;exports.VsAccordion=VsAccordion;exports.VsAccordionItem=VsAccordionItem;exports.VsAccordionToggle=VsAccordionToggle;exports.VsAddress=Address;exports.VsAlert=VsAlert;exports.VsArticle=Article;exports.VsArticleDetails=ArticleDetails;exports.VsArticleSection=ArticleSection;exports.VsArticleSidebar=ArticleSidebar;exports.VsBackToTop=_sfc_main$2k;exports.VsBadge=VsBadge;exports.VsBanner=Banner;exports.VsBreadcrumb=Breadcrumb;exports.VsBreadcrumbItem=BreadcrumbItem;exports.VsCannedSearch=CannedSearch;exports.VsCaption=Caption;exports.VsCarbonCalculator=CarbonCalculator;exports.VsCard=VsCard;exports.VsCardGroup=VsCardGroup;exports.VsCarousel=VsCarousel;exports.VsCarouselSlide=CarouselSlide;exports.VsCheckbox=VsCheckbox;exports.VsDescriptionList=DescriptionList;exports.VsDescriptionListItem=DescriptionListItem;exports.VsDetail=VsDetail;exports.VsDropdown=VsDropdown;exports.VsDropdownItem=VsDropdownItem;exports.VsEmbedWrapper=EmbedWrapper;exports.VsEventCard=EventCard;exports.VsFederatedSearch=_sfc_main$2;exports.VsFederatedSearchInput=_sfc_main$4;exports.VsFilter=_sfc_main$1A;exports.VsFilterSection=_sfc_main$1z;exports.VsFooter=Footer;exports.VsFooterAccordionItem=FooterAccordionItem;exports.VsFooterCopyright=FooterCopyright;exports.VsFooterNavListItem=FooterNavListItem;exports.VsFooterSocialItem=FooterSocialItem;exports.VsFooterSocialMenu=FooterSocialMenu;exports.VsFooterUtilityList=FooterUtilityList;exports.VsForm=Form;exports.VsGlobalMenu=GlobalMenu;exports.VsGlobalMenuLanguage=GlobalMenuLanguage;exports.VsGlobalMenuLanguageItem=GlobalMenuLanguageItem;exports.VsHeroSection=HeroSection;exports.VsHtmlError=HtmlError;exports.VsIconList=IconList;exports.VsIconListItem=IconListItem;exports.VsIllustratedMap=IllustratedMap;exports.VsImageWithCaption=ImageWithCaption;exports.VsInput=VsInput;exports.VsItinerary=Itinerary;exports.VsItineraryBorderOverlapWrapper=ItineraryBorderOverlapWrapper;exports.VsItineraryDay=ItineraryDay;exports.VsItineraryStop=ItineraryStop;exports.VsItineraryStopInfo=ItineraryStopInfo;exports.VsItineraryTips=ItineraryTips;exports.VsLink=VsLink;exports.VsLinkList=VsLinkList;exports.VsLinkListItem=LinkListItem;exports.VsList=VsList;exports.VsListicleItem=ListicleItem;exports.VsMainMap=_sfc_main;exports.VsMediaCaption=VsMediaCaption;exports.VsMegaNavAccordionItem=MegaNavAccordionItem;exports.VsMegaNavDropdownContainer=MegaNavDropdownContainer;exports.VsMegaNavFeaturedEvent=MegaNavFeaturedEvent;exports.VsMegaNavFeaturedItem=MegaNavFeaturedItem;exports.VsMegaNavList=MegaNavList;exports.VsMegaNavListItem=MegaNavListItem;exports.VsMegaNavStaticLink=MegaNavStaticLink;exports.VsMegalinkLinkList=MegalinkLinkList;exports.VsMegalinkMultiImage=MegalinkMultiImage;exports.VsMegalinkSingleImage=MegalinkSingleImage;exports.VsMegalinks=Megalinks;exports.VsMeganav=MegaNav;exports.VsModal=Modal;exports.VsModuleWrapper=VsModuleWrapper;exports.VsNumberInput=VsNumberInput;exports.VsPageIntro=PageIntro;exports.VsPagination=_sfc_main$D;exports.VsPanel=Panel;exports.VsProductSearch=ProductSearch;exports.VsProgressBar=VsProgressBar;exports.VsQuote=Quote;exports.VsRadioButton=VsRadioButton;exports.VsRecaptcha=VsRecaptcha;exports.VsSectionHeader=SectionHeader;exports.VsSelect=VsSelect;exports.VsSiteSearch=VsSiteSearch;exports.VsSiteSearchForm=VsSiteSearchForm;exports.VsSkiScotlandCard=SkiScotlandCard;exports.VsSkiScotlandStatus=SkiScotlandStatus;exports.VsSkipTo=SkipTo;exports.VsSocialCreditLink=SocialCreditLink;exports.VsSocialShare=SocialShare;exports.VsSocialShareItem=SocialShareItem;exports.VsSpotlightSection=SpotlightSection;exports.VsStretchedLinkCard=VsStretchedLinkCard;exports.VsStretchedLinkPanel=VsStretchedLinkPanels;exports.VsStyledList=_sfc_main$g;exports.VsStyledListItem=_sfc_main$f;exports.VsSummaryBoxDistanceListItem=SummaryBoxDistanceListItem;exports.VsSummaryBoxList=SummaryBoxList;exports.VsSummaryBoxListItem=SummaryBoxListItem;exports.VsSvg=VsSvg;exports.VsSvgLink=VsSvgLink;exports.VsTabItem=TabItem;exports.VsTable=VsTable;exports.VsTableBody=VsTableBody;exports.VsTableDataCell=VsTableDataCell;exports.VsTableFooter=VsTableFooter;exports.VsTableHead=VsTableHead;exports.VsTableHeaderCell=VsTableHeaderCell;exports.VsTableRow=VsTableRow;exports.VsTabs=Tabs;exports.VsTag=Tag;exports.VsTagManagerWrapper=TagManagerWrapper;exports.VsTextarea=VsTextarea;exports.VsToggleButton=VsToggleButton;exports.VsTooltip=VsTooltip;exports.VsTourismInfo=TourismInfo;exports.VsVideo=Video;exports.VsVideoCaption=VsVideoCaption;
|
|
333
|
+
*/Sister=function(){var e={},n={};return e.on=function(t,r){var a={name:t,handler:r};return n[t]=n[t]||[],n[t].unshift(a),a},e.off=function(t){var r=n[t.name].indexOf(t);r!==-1&&n[t.name].splice(r,1)},e.trigger=function(t,r){var a=n[t],o;if(a)for(o=a.length;o--;)a[o].handler(r)},e};var sister=Sister,YouTubePlayer={exports:{}},browser={exports:{}},ms,hasRequiredMs;function requireMs(){if(hasRequiredMs)return ms;hasRequiredMs=1;var e=1e3,n=e*60,t=n*60,r=t*24,a=r*7,o=r*365.25;ms=function(c,d){d=d||{};var f=typeof c;if(f==="string"&&c.length>0)return s(c);if(f==="number"&&isFinite(c))return d.long?l(c):i(c);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(c))};function s(c){if(c=String(c),!(c.length>100)){var d=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(c);if(d){var f=parseFloat(d[1]),v=(d[2]||"ms").toLowerCase();switch(v){case"years":case"year":case"yrs":case"yr":case"y":return f*o;case"weeks":case"week":case"w":return f*a;case"days":case"day":case"d":return f*r;case"hours":case"hour":case"hrs":case"hr":case"h":return f*t;case"minutes":case"minute":case"mins":case"min":case"m":return f*n;case"seconds":case"second":case"secs":case"sec":case"s":return f*e;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return f;default:return}}}}function i(c){var d=Math.abs(c);return d>=r?Math.round(c/r)+"d":d>=t?Math.round(c/t)+"h":d>=n?Math.round(c/n)+"m":d>=e?Math.round(c/e)+"s":c+"ms"}function l(c){var d=Math.abs(c);return d>=r?u(c,d,r,"day"):d>=t?u(c,d,t,"hour"):d>=n?u(c,d,n,"minute"):d>=e?u(c,d,e,"second"):c+" ms"}function u(c,d,f,v){var p=d>=f*1.5;return Math.round(c/f)+" "+v+(p?"s":"")}return ms}function setup(e){t.debug=t,t.default=t,t.coerce=l,t.disable=s,t.enable=a,t.enabled=i,t.humanize=requireMs(),t.destroy=u,Object.keys(e).forEach(c=>{t[c]=e[c]}),t.names=[],t.skips=[],t.formatters={};function n(c){let d=0;for(let f=0;f<c.length;f++)d=(d<<5)-d+c.charCodeAt(f),d|=0;return t.colors[Math.abs(d)%t.colors.length]}t.selectColor=n;function t(c){let d,f=null,v,p;function h(...m){if(!h.enabled)return;const _=h,g=Number(new Date),b=g-(d||g);_.diff=b,_.prev=d,_.curr=g,d=g,m[0]=t.coerce(m[0]),typeof m[0]!="string"&&m.unshift("%O");let S=0;m[0]=m[0].replace(/%([a-zA-Z%])/g,(V,E)=>{if(V==="%%")return"%";S++;const $=t.formatters[E];if(typeof $=="function"){const D=m[S];V=$.call(_,D),m.splice(S,1),S--}return V}),t.formatArgs.call(_,m),(_.log||t.log).apply(_,m)}return h.namespace=c,h.useColors=t.useColors(),h.color=t.selectColor(c),h.extend=r,h.destroy=t.destroy,Object.defineProperty(h,"enabled",{enumerable:!0,configurable:!1,get:()=>f!==null?f:(v!==t.namespaces&&(v=t.namespaces,p=t.enabled(c)),p),set:m=>{f=m}}),typeof t.init=="function"&&t.init(h),h}function r(c,d){const f=t(this.namespace+(typeof d>"u"?":":d)+c);return f.log=this.log,f}function a(c){t.save(c),t.namespaces=c,t.names=[],t.skips=[];const d=(typeof c=="string"?c:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(const f of d)f[0]==="-"?t.skips.push(f.slice(1)):t.names.push(f)}function o(c,d){let f=0,v=0,p=-1,h=0;for(;f<c.length;)if(v<d.length&&(d[v]===c[f]||d[v]==="*"))d[v]==="*"?(p=v,h=f,v++):(f++,v++);else if(p!==-1)v=p+1,h++,f=h;else return!1;for(;v<d.length&&d[v]==="*";)v++;return v===d.length}function s(){const c=[...t.names,...t.skips.map(d=>"-"+d)].join(",");return t.enable(""),c}function i(c){for(const d of t.skips)if(o(c,d))return!1;for(const d of t.names)if(o(c,d))return!0;return!1}function l(c){return c instanceof Error?c.stack||c.message:c}function u(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return t.enable(t.load()),t}var common=setup;(function(e,n){var t={};n.formatArgs=a,n.save=o,n.load=s,n.useColors=r,n.storage=i(),n.destroy=(()=>{let u=!1;return()=>{u||(u=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),n.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function r(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let u;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(u=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(u[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function a(u){if(u[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+u[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;const c="color: "+this.color;u.splice(1,0,c,"color: inherit");let d=0,f=0;u[0].replace(/%[a-zA-Z%]/g,v=>{v!=="%%"&&(d++,v==="%c"&&(f=d))}),u.splice(f,0,c)}n.log=console.debug||console.log||(()=>{});function o(u){try{u?n.storage.setItem("debug",u):n.storage.removeItem("debug")}catch{}}function s(){let u;try{u=n.storage.getItem("debug")||n.storage.getItem("DEBUG")}catch{}return!u&&typeof process<"u"&&"env"in process&&(u=t.DEBUG),u}function i(){try{return localStorage}catch{}}e.exports=common(n);const{formatters:l}=e.exports;l.j=function(u){try{return JSON.stringify(u)}catch(c){return"[UnexpectedJSONParseError]: "+c.message}}})(browser,browser.exports);var browserExports=browser.exports,FunctionStateMap={exports:{}},PlayerStates={exports:{}};(function(e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.default={BUFFERING:3,ENDED:0,PAUSED:2,PLAYING:1,UNSTARTED:-1,VIDEO_CUED:5},e.exports=n.default})(PlayerStates,PlayerStates.exports);var PlayerStatesExports=PlayerStates.exports;(function(e,n){Object.defineProperty(n,"__esModule",{value:!0});var t=PlayerStatesExports,r=a(t);function a(o){return o&&o.__esModule?o:{default:o}}n.default={pauseVideo:{acceptableStates:[r.default.ENDED,r.default.PAUSED],stateChangeRequired:!1},playVideo:{acceptableStates:[r.default.ENDED,r.default.PLAYING],stateChangeRequired:!1},seekTo:{acceptableStates:[r.default.ENDED,r.default.PLAYING,r.default.PAUSED],stateChangeRequired:!0,timeout:3e3}},e.exports=n.default})(FunctionStateMap,FunctionStateMap.exports);var FunctionStateMapExports=FunctionStateMap.exports,eventNames={exports:{}};(function(e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.default=["ready","stateChange","playbackQualityChange","playbackRateChange","error","apiChange","volumeChange"],e.exports=n.default})(eventNames,eventNames.exports);var eventNamesExports=eventNames.exports,functionNames={exports:{}};(function(e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.default=["cueVideoById","loadVideoById","cueVideoByUrl","loadVideoByUrl","playVideo","pauseVideo","stopVideo","getVideoLoadedFraction","cuePlaylist","loadPlaylist","nextVideo","previousVideo","playVideoAt","setShuffle","setLoop","getPlaylist","getPlaylistIndex","setOption","mute","unMute","isMuted","setVolume","getVolume","seekTo","getPlayerState","getPlaybackRate","setPlaybackRate","getAvailablePlaybackRates","getPlaybackQuality","setPlaybackQuality","getAvailableQualityLevels","getCurrentTime","getDuration","removeEventListener","getVideoUrl","getVideoEmbedCode","getOptions","getOption","addEventListener","destroy","setSize","getIframe","getSphericalProperties","setSphericalProperties"],e.exports=n.default})(functionNames,functionNames.exports);var functionNamesExports=functionNames.exports;(function(e,n){Object.defineProperty(n,"__esModule",{value:!0});var t=browserExports,r=c(t),a=FunctionStateMapExports,o=c(a),s=eventNamesExports,i=c(s),l=functionNamesExports,u=c(l);function c(v){return v&&v.__esModule?v:{default:v}}const d=(0,r.default)("youtube-player"),f={};f.proxyEvents=v=>{const p={};for(const h of i.default){const m="on"+h.slice(0,1).toUpperCase()+h.slice(1);p[m]=_=>{d('event "%s"',m,_),v.trigger(h,_)}}return p},f.promisifyPlayer=(v,p=!1)=>{const h={};for(const m of u.default)p&&o.default[m]?h[m]=(..._)=>v.then(g=>{const b=o.default[m],S=g.getPlayerState(),C=g[m].apply(g,_);return b.stateChangeRequired||Array.isArray(b.acceptableStates)&&!b.acceptableStates.includes(S)?new Promise(V=>{const E=()=>{const $=g.getPlayerState();let D;typeof b.timeout=="number"&&(D=setTimeout(()=>{g.removeEventListener("onStateChange",E),V()},b.timeout)),Array.isArray(b.acceptableStates)&&b.acceptableStates.includes($)&&(g.removeEventListener("onStateChange",E),clearTimeout(D),V())};g.addEventListener("onStateChange",E)}).then(()=>C):C}):h[m]=(..._)=>v.then(g=>g[m].apply(g,_));return h},n.default=f,e.exports=n.default})(YouTubePlayer,YouTubePlayer.exports);var YouTubePlayerExports=YouTubePlayer.exports,loadYouTubeIframeApi={exports:{}},loadScript=function e(n,t,r){var a=document.head||document.getElementsByTagName("head")[0],o=document.createElement("script");typeof t=="function"&&(r=t,t={}),t=t||{},r=r||function(){},o.type=t.type||"text/javascript",o.charset=t.charset||"utf8",o.async="async"in t?!!t.async:!0,o.src=n,t.attrs&&setAttributes(o,t.attrs),t.text&&(o.text=""+t.text);var s="onload"in o?stdOnEnd:ieOnEnd;s(o,r),o.onload||stdOnEnd(o,r),a.appendChild(o)};function setAttributes(e,n){for(var t in n)e.setAttribute(t,n[t])}function stdOnEnd(e,n){e.onload=function(){this.onerror=this.onload=null,n(null,e)},e.onerror=function(){this.onerror=this.onload=null,n(new Error("Failed to load "+this.src),e)}}function ieOnEnd(e,n){e.onreadystatechange=function(){this.readyState!="complete"&&this.readyState!="loaded"||(this.onreadystatechange=null,n(null,e))}}(function(e,n){Object.defineProperty(n,"__esModule",{value:!0});var t=loadScript,r=a(t);function a(o){return o&&o.__esModule?o:{default:o}}n.default=o=>new Promise(i=>{if(window.YT&&window.YT.Player&&window.YT.Player instanceof Function){i(window.YT);return}else{const u=window.location.protocol==="http:"?"http:":"https:";(0,r.default)(u+"//www.youtube.com/iframe_api",c=>{c&&o.trigger("error",c)})}const l=window.onYouTubeIframeAPIReady;window.onYouTubeIframeAPIReady=()=>{l&&l(),i(window.YT)}}),e.exports=n.default})(loadYouTubeIframeApi,loadYouTubeIframeApi.exports);var loadYouTubeIframeApiExports=loadYouTubeIframeApi.exports;(function(e,n){Object.defineProperty(n,"__esModule",{value:!0});var t=sister,r=l(t),a=YouTubePlayerExports,o=l(a),s=loadYouTubeIframeApiExports,i=l(s);function l(c){return c&&c.__esModule?c:{default:c}}let u;n.default=(c,d={},f=!1)=>{const v=(0,r.default)();if(u||(u=(0,i.default)(v)),d.events)throw new Error("Event handlers cannot be overwritten.");if(typeof c=="string"&&!document.getElementById(c))throw new Error('Element "'+c+'" does not exist.');d.events=o.default.proxyEvents(v);const p=new Promise(m=>{typeof c=="object"&&c.playVideo instanceof Function?m(c):u.then(_=>{const g=new _.Player(c,d);return v.on("ready",()=>{m(g)}),null})}),h=o.default.promisifyPlayer(p,f);return h.on=v.on,h.off=v.off,h},e.exports=n.default})(dist,dist.exports);var distExports=dist.exports;const player=LoadingSpinner.getDefaultExportFromCjs(distExports),UNSTARTED=-1,ENDED=0,PLAYING=1,PAUSED=2,BUFFERING=3,CUED=5,VueYoutube={name:"Youtube",props:{videoId:String,playerVars:{type:Object,default:()=>({})},height:{type:[Number,String],default:360},width:{type:[Number,String],default:640},resize:{type:Boolean,default:!1},resizeDelay:{type:Number,default:100},nocookie:{type:Boolean,default:!1},fitParent:{type:Boolean,default:!1}},data(){return{player:{},events:{[UNSTARTED]:"unstarted",[PLAYING]:"playing",[PAUSED]:"paused",[ENDED]:"ended",[BUFFERING]:"buffering",[CUED]:"cued"},resizeTimeout:null}},computed:{aspectRatio(){return this.width/this.height}},methods:{playerReady(e){this.$emit("ready",e.target)},playerStateChange(e){e.data!==null&&e.data!==UNSTARTED&&this.$emit(this.events[e.data],e.target)},playerError(e){this.$emit("error",e.target)},updatePlayer(e){if(!e){this.player.stopVideo();return}const n={videoId:e};if(typeof this.playerVars.start=="number"&&(n.startSeconds=this.playerVars.start),typeof this.playerVars.end=="number"&&(n.endSeconds=this.playerVars.end),this.playerVars.autoplay===1){this.player.loadVideoById(n);return}this.player.cueVideoById(n)},resizeProportionally(){this.player.getIframe().then(e=>{const n=this.fitParent?e.parentElement.offsetWidth:e.offsetWidth,t=n/this.aspectRatio;this.player.setSize(n,t)})},onResize(){clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(this.resizeProportionally,this.resizeDelay)}},watch:{videoId:"updatePlayer",resize(e){e?(window.addEventListener("resize",this.onResize),this.resizeProportionally()):(window.removeEventListener("resize",this.onResize),this.player.setSize(this.width,this.height))},width(e){this.player.setSize(e,this.height)},height(e){this.player.setSize(this.width,e)}},beforeUnmount(){this.player!==null&&this.player.destroy&&(this.player.destroy(),delete this.player),this.resize&&window.removeEventListener("resize",this.onResize)},mounted(){window.YTConfig={host:"https://www.youtube.com/iframe_api"};const e=this.nocookie?"https://www.youtube-nocookie.com":"https://www.youtube.com";this.player=player(this.$el,{host:e,width:this.width,height:this.height,videoId:this.videoId,playerVars:this.playerVars}),this.player.on("ready",this.playerReady),this.player.on("stateChange",this.playerStateChange),this.player.on("error",this.playerError),this.resize&&window.addEventListener("resize",this.onResize),this.fitParent&&this.resizeProportionally()},render(){return vue.h("div")}};let videoStore=null;const cookieValues=cookieValues$5.youtube,_sfc_main$7={name:"VsVideo",status:"prototype",release:"0.0.1",components:{VsWarning:LoadingSpinner.VsWarning,VueYoutube},mixins:[LoadingSpinner.dataLayerMixin,cookieCheckerMixin],props:{language:{type:String,default:"en"},videoId:{type:String,required:!0},videoTitle:{type:String,default:""},singleMinuteDescriptor:{type:String,default:"%s minute video"},pluralMinuteDescriptor:{type:String,default:"%s minute video"},noCookiesMessage:{type:String,required:!0},cookieBtnText:{type:String,required:!0},noJsMessage:{type:String,required:!0},errorMessage:{type:String,default:""}},data(){return{duration:{minutes:0,seconds:0,roundedMinutes:""},playerVars:{hl:this.language},requiredCookies:cookieValues,reRendering:!1,shouldAutoPlay:!1,jsDisabled:!0}},computed:{showError(){return!this.cookiesAllowed&&this.cookiesLoaded===!0||this.cookiesLoaded===!1},warningText(){let e="";return this.videoId&&this.jsDisabled&&(e=this.noJsMessage),!this.cookiesAllowed&&this.cookiesLoaded===!0&&(e=this.noCookiesMessage),e},player(){return this.$refs.youtube?this.$refs.youtube.player:null}},mounted(){this.jsDisabled=jsIsDisabled(),videoStore=useVideoStore(),this.setEventListeners()},methods:{async playerReady(){await this.getPlayerDetails(),this.shouldAutoPlay&&(this.shouldAutoPlay=!1,this.playVideo())},async playVideo(){this.player&&await this.player.playVideo()},async pauseVideo(){this.player&&await this.player.pauseVideo()},async stopVideo(){this.player&&await this.player.stopVideo()},youtubePlaying(){this.analyticsEvent("play")},youtubePaused(){this.analyticsEvent("pause")},youtubeEnded(){this.analyticsEvent("ended")},analyticsEvent(e){let n=0,t=0;this.player.getCurrentTime().then(r=>(n=r,this.player?this.player.getDuration():null)).then(r=>{t=r}).then(()=>{const r=n/t*100;this.createDataLayerObject("videoTrackingDataEvent",{title:this.videoTitle,status:e,percent:Math.round(r)})})},async getPlayerDetails(){this.player&&await this.player.getDuration().then(e=>{this.formatTime(e),this.storeVideoDetails()})},formatTime(e){const n=Math.floor(e/60),t=Math.round(e-n*60);this.duration.minutes=n,this.duration.seconds=t;const r=this.getRoundedMinutes(n,t);this.duration.roundedMinutes=this.formatSingularOrPlural(r)},getRoundedMinutes(e,n){return n<30&&e!==0?e:e+1},formatSingularOrPlural(e){return e===1?this.singleMinuteDescriptor.replace("%s",e):this.pluralMinuteDescriptor.replace("%s",e)},pad(e){return e>=10?e:`0${e}`},storeVideoDetails(){videoStore.addVideo({videoId:this.videoId,videoDurationMsg:this.duration.roundedMinutes,videoDuration:this.duration.minutes*60+this.duration.seconds,videoFullDuration:this.duration})},setEventListeners(){this.emitter&&this.emitter.on("video-controls",e=>{e.id===this.videoId&&(e.action==="modal-opened"&&this.playVideo(),e.action==="modal-closed"&&this.stopVideo(),e.action==="play"?this.playVideo():e.action==="pause"&&this.pauseVideo())})}}},_hoisted_1$6={key:0,class:"vs-video","data-test":"vs-video"},_hoisted_2$6={class:"vs-video__iframe-wrapper"},_hoisted_3$5={key:0};function _sfc_render(e,n,t,r,a,o){const s=vue.resolveComponent("VueYoutube"),i=vue.resolveComponent("VsWarning");return a.reRendering?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$6,[vue.createElementVNode("div",_hoisted_2$6,[e.cookiesAllowed?(vue.openBlock(),vue.createElementBlock("div",_hoisted_3$5,[vue.createVNode(s,{autoplay:0,"video-id":t.videoId,vars:a.playerVars,ref:"youtube",nocookie:!0,onPlaying:o.youtubePlaying,onPaused:o.youtubePaused,onEnded:o.youtubeEnded,onReady:o.playerReady},null,8,["video-id","vars","onPlaying","onPaused","onEnded","onReady"])])):vue.createCommentVNode("",!0),o.showError?(vue.openBlock(),vue.createBlock(i,{key:1,type:e.cookiesLoaded===!0?"cookie":"normal","data-test":"vs-video__warning",class:"vs-video__warning"},vue.createSlots({default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(o.warningText)+" ",1)]),_:2},[!e.cookiesAllowed&&e.cookiesLoaded===!0?{name:"button-text",fn:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.cookieBtnText),1)]),key:"0"}:void 0]),1032,["type"])):vue.createCommentVNode("",!0),vue.createVNode(i,{"data-test":"vs-video__warning--no-js",class:"vs-video__warning vs-video__warning--no-js"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.noJsMessage),1)]),_:1})])]))}const Video=LoadingSpinner._export_sfc(_sfc_main$7,[["render",_sfc_render]]),__default__={name:"VsDivider"},_sfc_main$6=Object.assign(__default__,{props:{variant:{type:String,required:!1,validator:e=>e.match(/(primary|secondary|inverse)/),default:"primary"}},setup(e){const n=e;return(t,r)=>(vue.openBlock(),vue.createElementBlock("hr",{class:vue.normalizeClass(["vs-divider",n.variant?`vs-divider--variant-${n.variant}`:null]),"data-test":"vs-divider"},null,2))}});function cleanData$1(e){return e.TypedDocuments.map(r=>{var a;return{id:r.Fields.Id.Value||"",title:r.Fields.Title.Value||"",description:r.Fields.Description.Value||"",imgSrc:((a=r.Fields.Image)==null?void 0:a.Value)||"",url:r.Fields.Url.Value||"",dataSrc:"cludo",categoryCard:r.Fields.categoryCard.Value||""}})}async function cludoSearch(e,n,t,r,a,o){const{apiKey:s,customerId:i,engineId:l}=n,u=`https://api-eu1.cludo.com/api/v3/${i}/${l}/search`,c=`${i}:${s}`,d=useFederatedSearchStore();if(d.eventsApiError=!1,d.cludoError=!1,!n)return d.cludoError=!0,d.isLoading=!1,{results:[],totalResults:0};if(a==="events")return{results:[],totalResults:0};try{const f=await fetch(u,{method:"POST",body:JSON.stringify({query:e||"*",operator:o,responseType:"JsonObject",perPage:6,page:t,facets:{Category:a?[a]:null}}),headers:{"Content-Type":"application/json",Authorization:`Basic ${btoa(c)}`}});if(!f.ok)throw d.cludoError=!0,d.isLoading=!1,new Error(`Cludo response message: ${f.status}`);const v=await f.json();return{results:cleanData$1(v),totalResults:v.TotalDocument}}catch{return d.cludoError=!0,d.isLoading=!1,{results:[],totalResults:0}}}function cleanData(e){return e.events.map(r=>{var a,o,s,i,l,u,c;return{id:r.id,parentId:r.parentId,title:r.name,description:((o=(a=r.descriptions)==null?void 0:a[0])==null?void 0:o.description)||"",imgSrc:((i=(s=r.images)==null?void 0:s[0])==null?void 0:i.url)||"",url:((u=(l=r.performances)==null?void 0:l[0])==null?void 0:u.url)||"",placeUrl:r.place.website,location:r.place.town,startDate:r.startFormatted,endDate:r.endFormatted,minPrice:(c=r.minPrice)==null?void 0:c.toString(),dataSrc:"data-thistle",categoryCard:r.categoryCard||""}})}async function eventSearch(e,n,t,r,a,o,s,i,l,u,c,d,f){const v=useFederatedSearchStore();v.eventsApiError=!1,v.cludoError=!1;let p=`${e}?query=${n}&lang=${l}`;p=t>1?`${p}&page=${t}`:p,p=o!==""?`${p}&startDate=${o}`:p,p=s!==""?`${p}&endDate=${s}`:p,p=i?`${p}&sort=${i}`:p,p=r==="events"?`${p}&pageSize=12`:`${p}&pageSize=6`,p=u?`${p}&postcode=${u}`:p,p=c?`${p}&location=${c}`:p,p=d?`${p}&radius=${d}`:p,p=f?`${p}&postcodeareas=${f}`:p,a.forEach(h=>{p+=`&category=${h}`}),r&&r!=="events"&&(p+=`&category=${r}`);try{const h=await fetch(p);if(!h.ok)throw v.isLoading=!1,v.eventsApiError=!0,new Error(`Events response message: ${h.status}`);const m=await h.json();return{results:cleanData(m),totalResults:m.totalResults}}catch{return v.isLoading=!1,v.eventsApiError=!0,{results:[],totalResults:0}}}async function cludoAutocomplete(e,n){const{apiKey:t,customerId:r,engineId:a}=n,s=`https://api-eu1.cludo.com/api/v3/${r}/${a}/Autocomplete`,i=`${r}:${t}`;try{const l=await fetch(s,{method:"POST",body:JSON.stringify({text:e}),headers:{"Content-Type":"application/json",Authorization:`Basic ${btoa(i)}`}});if(!l.ok)throw new Error(`Autocomplete search error ${l.status}`);return await l.json()}catch(l){throw new Error(`Autocomplete search error: ${l}`)}}const useFederatedSearchStore=pinia.defineStore("federatedSearch",()=>{const e=vue.ref(null),n=vue.ref(void 0),t=vue.ref(!1),r=vue.ref(1),a=vue.ref(void 0),o=vue.ref(!1),s=vue.ref(!1),i=vue.ref(null),l=vue.ref(""),u=vue.ref(null),c=vue.ref(null),d=vue.ref([]),f=vue.ref([]),v=vue.ref(void 0),p=vue.ref(void 0),h=vue.ref(void 0),m=vue.ref(!1),_=vue.ref(""),g=vue.ref(""),b=vue.ref(void 0),S=vue.ref(void 0),C=vue.ref(void 0),V=vue.ref(-1),E=vue.ref(""),$=vue.ref(""),D=vue.ref(""),A=vue.ref(0),M=vue.ref(""),j=vue.ref("or");async function O(G=!1){s.value=!0,G||(V.value+=1);const W=await cludoSearch(l.value,n.value,r.value,u.value,c.value,j.value),k=await eventSearch(a.value,l.value,r.value,c.value,f.value,_.value,g.value,b.value,C.value,$.value,D.value,A.value,M.value);i.value=[...W.results,...k.results],p.value=W.totalResults,h.value=k.totalResults,v.value=W.totalResults+k.totalResults,s.value=!1}async function R(){return cludoAutocomplete(l.value,n.value)}async function X(G,W){const k=new URL(window.location.href);if(W?E.value="Autosuggestion":E.value="User input",l.value?k.searchParams.set("search-term",l.value):k.searchParams.delete("search-term"),c.value?k.searchParams.set("category",encodeURIComponent(c.value)):k.searchParams.delete("category"),f.value.length>0?k.searchParams.set("sub-category",encodeURIComponent(f.value.join(","))):k.searchParams.delete("sub-category"),G?(r.value=1,k.searchParams.set("page",r.value.toString())):r.value&&r.value>1?k.searchParams.set("page",r.value.toString()):k.searchParams.delete("page"),_.value?k.searchParams.set("start-date",_.value):k.searchParams.delete("start-date"),g.value?k.searchParams.set("end-date",g.value):k.searchParams.delete("end-date"),b.value?k.searchParams.set("sort-by",b.value):k.searchParams.delete("sort-by"),!m.value)window.history.pushState({},"",k),await O();else{const L=`${S.value}/${k.search}`;window.location.href=L}}return{filters:e,currentPage:r,cludoCredentials:n,cludoError:t,eventsApi:a,eventsApiError:o,getAutoComplete:R,getSearchResults:O,isLoading:s,results:i,searchTerm:l,searchUrl:S,selectedCategory:u,selectedCategoryKey:c,selectedSubCategory:d,selectedSubCategoryKey:f,totalResults:v,totalResultsCludo:p,totalResultsEvents:h,navigateToResultsPage:X,isHomePage:m,startDate:_,endDate:g,sortBy:b,siteLanguage:C,searchInSessionCount:V,queryInput:E,postcode:$,location:D,radius:A,postcodeareas:M,cludoApiOperator:j}}),_hoisted_1$5={class:"vs-fed-filter"},_hoisted_2$5={class:"vs-fed-filter__scroll-container"},_hoisted_3$4=["id"],_sfc_main$5={__name:"FedFilter",props:{filterCategories:{type:Array,required:!0},variant:{type:String,default:"primary",validator:e=>/^(primary|secondary)$/.test(e)},wrap:{type:Boolean,default:!1},activeFilter:{type:[String,Array],default:""},scrollButtons:{type:Boolean,default:!1},scrollLeftText:{type:String,default:""},scrollRightText:{type:String,default:""}},emits:["filter-updated"],setup(e,{expose:n}){const t=e,r=vue.ref(null);function a(c){return typeof t.activeFilter=="string"?t.activeFilter===c:t.activeFilter&&typeof t.activeFilter=="object"?t.activeFilter.includes(c):!1}function o(c){var d,f;c==="left"?(d=r.value)==null||d.scrollBy(-200,0):c==="right"&&((f=r.value)==null||f.scrollBy(200,0))}function s(){var c;(c=r.value)==null||c.scrollTo(0,0)}n({resetScroll:s});function i(){return[`vs-fed-filter__scroll-rail--${t.variant}`,t.wrap?"vs-fed-filter__scroll-rail--wrap":""]}const l=vue.computed(()=>[...t.filterCategories].sort((d,f)=>{const v=(d.Label||d.Key||"").toLowerCase(),p=(f.Label||f.Key||"").toLowerCase();return v<p?-1:v>p?1:0}));function u(c){let d;switch(c){case"accommodation":d="fa-regular fa-bed";break;case"active-adventure":d="fa-kit fa-vs-landscape";break;case"city-break":d="fa-regular fa-city";break;case"culture-history":d="fa-regular fa-chess-rook";break;case"events":d="fa-regular fa-calendar-range";break;case"family-friendly":d="fa-regular fa-family";break;case"food-drink":d="fa-regular fa-utensils";break;case"nature-outdoors":d="fa-regular fa-leaf";break;case"tours":d="fa-regular fa-binoculars";break;case"travel-information":d="fa-regular fa-circle-info";break;case"wellness":d="fa-regular fa-spa";break;default:d=null;break}return d}return(c,d)=>(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$5,[c.$slots["fed-filter-header"]&&c.$slots["fed-filter-header"]()?(vue.openBlock(),vue.createBlock(LoadingSpinner.VsBody,{key:0,class:"vs-fed-filter__header mb-025 ms-025","data-test":"vs-fed-filter__header"},{default:vue.withCtx(()=>[vue.renderSlot(c.$slots,"fed-filter-header")]),_:3})):vue.createCommentVNode("",!0),vue.createElementVNode("div",_hoisted_2$5,[e.scrollButtons?(vue.openBlock(),vue.createBlock(LoadingSpinner.VsButton,{key:0,variant:"secondary",icon:"fa-regular fa-chevron-left","icon-only":"",class:"vs-fed-filter__scroll-button me-050","data-test":"vs-fed-filter__scroll-button--left",onClick:d[0]||(d[0]=f=>o("left")),"aria-label":t.scrollLeftText},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.scrollLeftText),1)]),_:1},8,["aria-label"])):vue.createCommentVNode("",!0),vue.createElementVNode("div",{class:vue.normalizeClass(["vs-fed-filter__scroll-rail",i()]),id:`vs-fed-filter__scroll-rail--${t.variant}`,ref_key:"scrollRail",ref:r},[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(l.value,(f,v)=>(vue.openBlock(),vue.createBlock(LoadingSpinner.VsButton,{key:v,class:"vs-fed-filter__category-button","data-test":`vs-fed-filter__category-button--${f.Key}`,icon:t.variant==="primary"?u(f.Key):null,variant:a(f.Key)?"primary":"secondary",size:t.variant==="secondary"?"sm":"md",onClick:p=>c.$emit("filter-updated",f)},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(f.Label||f.Key),1)]),_:2},1032,["data-test","icon","variant","size","onClick"]))),128))],10,_hoisted_3$4),e.scrollButtons?(vue.openBlock(),vue.createBlock(LoadingSpinner.VsButton,{key:1,variant:"secondary",icon:"fa-regular fa-chevron-right","icon-only":"",class:"vs-fed-filter__scroll-button ms-050","data-test":"vs-fed-filter__scroll-button--right",onClick:d[1]||(d[1]=f=>o("right")),"aria-label":t.scrollRightText},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.scrollRightText),1)]),_:1},8,["aria-label"])):vue.createCommentVNode("",!0)])]))}};function dataLayerComposable$1(){const e=LoadingSpinner.useDataLayerStore(),n=vue.ref(!1),t=vue.computed(()=>e.pageUrl);function r(l,u){const c={};return l.forEach(d=>{c[d]=u[d]||void 0,d==="language"&&c[d]===void 0&&(c[d]=u.site_language||void 0)}),c}function a(){return new Date(Date.now()).toISOString()}function o(l){const c={...e.GTMData,...l};return c.hit_timestamp=a(),c}function s(l){n.value?window.dataLayer.push(l):LoadingSpinner.checkVendorLibrary("dataLayer",()=>{n.value=!0,window.dataLayer.push(l)})}function i(l,u){let c,d,f,v;switch(l){case"siteSearchOpenEvent":c="site_search_open",d={event:c,referrer_page:u.referrer_page},f=o(d),v=r(LoadingSpinner.siteSearchOpenTemplate,f);break;case"siteSearchUsageEvent":c="site_search_event",d={event:c,search_query:u.search_query,query_input:u.query_input,results_count:u.results_count,search_usage_index:u.search_usage_index,search_type:u.search_type,search_origin:u.search_origin||"results_page",interaction_type:"search_input"},f=o(d),v=r(LoadingSpinner.siteSearchUsageTemplate,f);break;case"siteSearchClickEvent":c="site_search_click",d={event:c,interaction_type:u.interaction_type,search_query:u.search_query,query_input:u.query_input,page_number:u.page_number,page_navigation_direction:u.page_navigation_direction,click_text:u.click_text,click_url:u.click_url,click_category:u.click_category,search_usage_index:u.search_usage_index,results_count:u.results_count},f=o(d),v=r(LoadingSpinner.siteSearchClickTemplate,f);break;case"siteSearchCloseEvent":c="site_search_close",d={event:c,search_usage_index:u.search_usage_index,search_query:u.search_query,query_input:u.query_input,page_number:u.page_number,results_count:u.results_count},f=o(d),v=r(LoadingSpinner.siteSearchCloseTemplate,f);break}v&&s(v)}return{pageUrl:t,createDataLayerObject:i,templateFiller:r,compileFullTemplate:o,returnIsoDate:a,pushToDataLayer:s,dataLayerStore:e}}const _hoisted_1$4={class:"vs-fed-search-input"},_hoisted_2$4={class:"vs-fed-search__input"},_hoisted_3$3={class:"vs-fed-search__text-input"},_hoisted_4$3={for:"federated-search",class:"vs-federated-search__label"},_hoisted_5$3={key:0,class:"position-relative"},_hoisted_6$3={class:"vs-fed-search-input__autocomplete"},_hoisted_7$2=["onClick","onKeyup","innerHTML"],_sfc_main$4={__name:"FedSearchInput",props:{cludoApiKey:{type:String,default:getEnvValue("CLUDO_API_KEY")},cludoCustomerId:{type:Number,default:Number(getEnvValue("CLUDO_CUSTOMER_ID"))},cludoEngineId:{type:Number,default:Number(getEnvValue("CLUDO_ENGINE_ID"))},isHomePage:{type:Boolean,default:!1},searchUrl:{type:String,default:void 0},filters:{type:Array,default:void 0},subFilters:{type:Array,default:void 0},labels:{type:Object,required:!0}},setup(e){const n=dataLayerComposable$1(),t=e,r=useFederatedSearchStore(),{isLoading:a}=pinia.storeToRefs(r),o=vue.ref(),s=vue.ref(null),i=vue.ref(null);async function l(g){r.currentPage=1,r.searchTerm=g.value.trim();const b=window.location.search,S=new URLSearchParams(b);r.searchTerm&&S.get("search-term")!==r.searchTerm&&(o.value=await r.getAutoComplete()),r.searchTerm||(o.value=null)}async function u(){o.value=null,await r.navigateToResultsPage(),n.createDataLayerObject("siteSearchUsageEvent",{search_query:r.searchTerm,query_input:r.queryInput,results_count:r.totalResults,search_usage_index:r.searchInSessionCount,search_type:r.searchInSessionCount===1?"initial":"follow-up"})}function c(g){n.createDataLayerObject("siteSearchClickEvent",{interaction_type:"search_autosuggest",search_query:r.searchTerm,page_number:r.currentPage,search_usage_index:r.searchInSessionCount,results_count:r.totalResults,click_text:g,query_input:r.queryInput})}function d(g){r.searchTerm=g,o.value=null,r.navigateToResultsPage(!1,!0),c(g)}function f(g){return g.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function v(g){return g.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function p(g){const b=(r.searchTerm||"").trim();if(!b)return v(g);const S=new RegExp(`(${f(b)})`,"gi");return v(g).replace(S,"<strong>$1</strong>")}function h(g){n.createDataLayerObject("siteSearchClickEvent",{interaction_type:"facet_click",search_query:r.searchTerm,page_number:r.currentPage,search_usage_index:r.searchInSessionCount,results_count:r.totalResults,click_text:g.Label||g.Key})}async function m(g){const b=new URL(window.location);b.searchParams.delete("page"),r.currentPage=1,b.searchParams.delete("start-date"),b.searchParams.delete("end-date"),r.startDate="",r.endDate="",r.sortBy=void 0,r.selectedSubCategory=[],r.selectedSubCategoryKey=[],r.selectedCategory=r.selectedCategory!==g.Label?g.Label:"",r.selectedCategoryKey=r.selectedCategoryKey!==g.Key?g.Key:"",await r.navigateToResultsPage(!0),h(g)}function _(g){if(!r.selectedSubCategoryKey.includes(g.Key))r.selectedSubCategory.push(g.Label),r.selectedSubCategoryKey.push(g.Key);else{const b=r.selectedSubCategoryKey.indexOf(g.Key);b>=0&&(r.selectedSubCategory.splice(b,1),r.selectedSubCategoryKey.splice(b,1))}r.navigateToResultsPage(!0),h(g)}return vue.onMounted(()=>{r.cludoCredentials={apiKey:t.cludoApiKey,customerId:t.cludoCustomerId,engineId:t.cludoEngineId},r.isHomePage=t.isHomePage,t.searchUrl&&(r.searchUrl=t.searchUrl);const g=window.location.search,b=new URLSearchParams(g);b.has("search-term")&&(r.searchTerm=b.get("search-term")),b.has("category")&&(r.selectedCategoryKey=decodeURIComponent(b.get("category"))),b.has("sub-category")&&decodeURIComponent(b.get("sub-category")).split(",").forEach(C=>r.selectedSubCategoryKey.push(C)),b.has("category")&&b.get("category")==="events"&&b.has("sort-by")&&(r.sortBy=b.get("sort-by")),b.has("start-date")&&(r.startDate=b.get("start-date")),b.has("end-date")&&(r.endDate=b.get("end-date")),b.has("postcode")&&(r.postcode=b.get("postcode")),b.has("location")&&(r.location=b.get("location")),b.has("radius")&&(r.radius=b.get("radius")),b.has("postcodeareas")&&(r.postcodeareas=b.get("postcodeareas")),(b.has("search-term")||b.has("category"))&&r.getSearchResults()}),vue.watch(a,g=>{var b,S;g||((b=s.value)==null||b.resetScroll(),(S=i.value)==null||S.resetScroll())}),(g,b)=>(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$4,[vue.createElementVNode("div",_hoisted_2$4,[vue.createElementVNode("div",_hoisted_3$3,[vue.createElementVNode("label",_hoisted_4$3,[b[0]||(b[0]=vue.createElementVNode("span",{class:"visually-hidden"}," Search for something ",-1)),vue.createVNode(vue.unref(LoadingSpinner.VsIcon),{icon:"vs-icon-control-search",size:"xs"})]),vue.createVNode(vue.unref(VsInput),{"auto-complete":!1,class:"vs-federated-search__input w-100","field-name":"federated-search",name:"searchrequest",placeholder:t.labels.searchLabel,type:"search",value:vue.unref(r).searchTerm,onUpdated:l,onKeyup:vue.withKeys(u,["enter"])},null,8,["placeholder","value"])]),vue.createVNode(vue.unref(LoadingSpinner.VsButton),{class:"d-none d-lg-block px-200",disabled:vue.unref(a),onClick:u},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.labels.search),1)]),_:1},8,["disabled"])]),o.value&&o.value.length>0?(vue.openBlock(),vue.createElementBlock("div",_hoisted_5$3,[vue.createElementVNode("div",_hoisted_6$3,[vue.createVNode(vue.unref(VsList),{unstyled:""},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(o.value,S=>(vue.openBlock(),vue.createElementBlock("li",{key:S,class:"vs-fed-search-input__autocomplete__suggestion",onClick:C=>d(S),onKeyup:vue.withKeys(C=>d(S),["enter"]),tabindex:"0",innerHTML:p(S)},null,40,_hoisted_7$2))),128))]),_:1})])])):vue.createCommentVNode("",!0),t.filters?(vue.openBlock(),vue.createBlock(_sfc_main$5,{key:1,"active-filter":vue.unref(r).selectedCategoryKey,"filter-categories":t.filters,ref_key:"categoryFilter",ref:s,wrap:!0,onFilterUpdated:m},null,8,["active-filter","filter-categories"])):vue.createCommentVNode("",!0),vue.unref(r).selectedCategoryKey==="events"&&t.subFilters?(vue.openBlock(),vue.createBlock(_sfc_main$5,{key:2,"active-filter":vue.unref(r).selectedSubCategoryKey,class:"mt-200","filter-categories":t.subFilters,ref_key:"subCategoryFilter",ref:i,variant:"secondary",onFilterUpdated:_},{"fed-filter-header":vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.labels.refine),1)]),_:1},8,["active-filter","filter-categories"])):vue.createCommentVNode("",!0)]))}},_hoisted_1$3={key:0,for:"vs-fed-search-sort__from-date",class:"vs-fed-search-sort__label","data-test":"vs-fed-search-sort__from-date-label"},_hoisted_2$3={key:0,for:"vs-fed-search-sort__to-date",class:"vs-fed-search-sort__label","data-test":"vs-fed-search-sort__to-date-label"},_sfc_main$3={__name:"FedSearchSort",props:{dateFilterVisible:{type:Boolean,default:!1},sortOptions:{type:Array,required:!0},fromDateLabel:{type:String,required:!0},toDateLabel:{type:String,required:!0},sortLabel:{type:String,required:!0}},emits:["from-date-updated","end-date-updated","sort-order-updated"],setup(e){const n=useFederatedSearchStore(),t=e,r=vue.computed(()=>t.sortOptions.find(a=>a.key===n.sortBy));return(a,o)=>(vue.openBlock(),vue.createBlock(LoadingSpinner.VsRow,{class:"vs-fed-search-sort"},{default:vue.withCtx(()=>[t.dateFilterVisible?(vue.openBlock(),vue.createBlock(LoadingSpinner.VsCol,{key:0,cols:"6",md:"4"},{default:vue.withCtx(()=>[t.fromDateLabel?(vue.openBlock(),vue.createElementBlock("label",_hoisted_1$3,vue.toDisplayString(t.fromDateLabel),1)):vue.createCommentVNode("",!0),vue.createVNode(VsInput,{"field-name":"vs-fed-search-sort__from-date",value:vue.unref(n).startDate||new Date().toJSON().slice(0,10),type:"date","auto-complete":!1,onInput:o[0]||(o[0]=s=>a.$emit("from-date-updated",s.target.value)),"data-chromatic":"ignore"},null,8,["value"])]),_:1})):vue.createCommentVNode("",!0),t.dateFilterVisible?(vue.openBlock(),vue.createBlock(LoadingSpinner.VsCol,{key:1,cols:"6",md:"4"},{default:vue.withCtx(()=>[t.toDateLabel?(vue.openBlock(),vue.createElementBlock("label",_hoisted_2$3,vue.toDisplayString(t.toDateLabel),1)):vue.createCommentVNode("",!0),vue.createVNode(VsInput,{"field-name":"vs-fed-search-sort__to-date",type:"date","auto-complete":!1,onInput:o[1]||(o[1]=s=>a.$emit("end-date-updated",s.target.value)),value:vue.unref(n).endDate||""},null,8,["value"])]),_:1})):vue.createCommentVNode("",!0),vue.createVNode(LoadingSpinner.VsCol,{cols:"12",md:"4",class:"vs-fed-search-sort__dropdown-wrapper"},{default:vue.withCtx(()=>[vue.createVNode(VsDropdown,{variant:"secondary",id:"vs-fed-search-sort__dropdown",name:"vs-fed-search-sort__dropdown",text:vue.unref(n).sortBy?`${t.sortLabel}: ${r.value.label}`:t.sortLabel},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(e.sortOptions,(s,i)=>(vue.openBlock(),vue.createBlock(VsDropdownItem,{key:i,onClick:l=>{a.$emit("sort-order-updated",s.key)},active:vue.unref(n).sortBy===s.key,"data-test":`vs-fed-search-sort__dropdown-item--${s.key}`},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(s.label),1)]),_:2},1032,["onClick","active","data-test"]))),128))]),_:1},8,["text"])]),_:1})]),_:1}))}},_hoisted_1$2={class:"vs-federated-search","data-test":"vs-federated-search"},_hoisted_2$2={class:"vs-federated-search__container"},_hoisted_3$2={key:0,class:"vs-federated-search__results","data-chromatic":"ignore"},_hoisted_4$2={key:2,"data-chromatic":"ignore"},_hoisted_5$2={class:"position-relative"},_hoisted_6$2={class:"position-absolute bottom-0 start-0 d-flex gap-2"},_hoisted_7$1={class:"position-absolute bottom-0 end-0 d-flex"},_hoisted_8={class:"truncate-3-lines text-break"},_hoisted_9={class:"d-flex justify-content-end align-items-end mt-050"},_hoisted_10={key:0,class:"d-flex align-items-start flex-grow-1"},_hoisted_11={key:3,class:"vs-federated-search__warning mb-300"},fallbackImg="https://static.visitscotland.com/img/fallback-img.png",_sfc_main$2={__name:"FederatedSearch",props:{cludoApiKey:{type:String,default:getEnvValue("CLUDO_API_KEY")},cludoCustomerId:{type:Number,default:Number(getEnvValue("CLUDO_CUSTOMER_ID"))},cludoEngineId:{type:Number,default:Number(getEnvValue("CLUDO_ENGINE_ID"))},eventsApi:{type:String,default:getEnvValue("EVENTS_API_URL")},filters:{type:Array,default:void 0},subFilters:{type:Array,default:void 0},errorMessages:{type:Object,required:!0},fromText:{type:String,default:""},paginationLabels:{type:Object,required:!0},searchLabels:{type:Object,required:!0},sortLabels:{type:Object,required:!0},cardCategoryLabels:{type:Object,required:!0,default:()=>{}},siteLanguage:{type:String,default:"en",validator:e=>e.match(/(en|es|it|de|nl|fr)/)},cludoApiOperator:{type:String,default:"or",validator:e=>["and","or"].includes(e)}},setup(e){const n=dataLayerComposable$1(),t=useFederatedSearchStore(),r=vue.ref({message:"",error:!1}),a=e,o=vue.ref(!1),s=vue.computed(()=>{let g;return t.selectedCategoryKey==="events"?g=Math.ceil(t.totalResultsEvents/12):g=t.totalResultsCludo>=t.totalResultsEvents?Math.ceil(t.totalResultsCludo/6):Math.ceil(t.totalResultsEvents/6),g});function i(){t.endDate&&t.startDate>t.endDate?(r.value.error=!0,r.value.message=a.errorMessages.incorrectDateOrder):t.selectedCategoryKey==="events"&&t.eventsApiError&&!t.isLoading?(r.value.error=!0,r.value.message=a.errorMessages.eventError):(t.searchTerm||t.selectedCategory)&&t.selectedCategoryKey!=="events"&&t.cludoError&&!t.isLoading?(r.value.error=!0,r.value.message=a.errorMessages.cludoError):t.totalResults===0&&!t.isLoading?(r.value.error=!0,r.value.message=a.errorMessages.noResults):(r.value.error=!1,r.value.message="")}vue.onMounted(async()=>{if(n.createDataLayerObject("siteSearchOpenEvent",{referrer_page:document.referrer}),t.cludoCredentials={apiKey:a.cludoApiKey,customerId:a.cludoCustomerId,engineId:a.cludoEngineId},t.eventsApi=a.eventsApi,t.filters=a.filters,t.siteLanguage=a.siteLanguage,t.cludoApiOperator=a.cludoApiOperator,i(),typeof window<"u"&&typeof document<"u"){window.onbeforeunload=()=>{_()};const g=new URLSearchParams(document.location.search),b=g.get("search-term"),S=parseInt(g.get("page"),10);S&&(t.currentPage=S),b&&(t.searchTerm=b),await t.getSearchResults(),b&&n.createDataLayerObject("siteSearchUsageEvent",{search_query:t.searchTerm,query_input:t.queryInput,results_count:t.totalResults,search_usage_index:t.searchInSessionCount,search_type:"initial",search_origin:"home_page"})}});function l(g){t.startDate=g,t.navigateToResultsPage(!0)}function u(g){t.endDate=g,t.navigateToResultsPage(!0)}function c(g){t.sortBy=g,t.navigateToResultsPage(!0)}function d(g){let b=!1;g>t.currentPage&&(b=!0),t.currentPage=g,typeof window<"u"&&window.scrollTo({top:0,left:0,behavior:"smooth"}),t.navigateToResultsPage(),m(b)}function f(g,b){return g===b?g:`${g} - ${b}`}function v(g){return g===null?"":g.match(/\b\d+\.\d\b/)?`£${g}0`:`£${g}`}function p(g){if(g.url)return g.url;if(g.placeUrl)return g.placeUrl;const b="https://www.datathistle.com/event/",S=encodeURIComponent(g.title.replaceAll(" ","-").toLowerCase());return`${b}${g.parentId}-${S}`}function h(g){o.value=!0,n.createDataLayerObject("siteSearchClickEvent",{interaction_type:"search_link_click",search_query:t.searchTerm,page_number:t.currentPage,click_text:g.title,click_url:p(g),click_category:g.categoryCard&&a.cardCategoryLabels[g.categoryCard]?a.cardCategoryLabels[g.categoryCard]:"",search_usage_index:t.searchInSessionCount,results_count:t.totalResults,query_input:t.queryInput})}function m(g){n.createDataLayerObject("siteSearchClickEvent",{interaction_type:"search_link_click",search_query:t.searchTerm,page_number:t.currentPage,page_navigation_direction:g?"forward":"back",search_usage_index:t.searchInSessionCount,results_count:t.totalResults,query_input:t.queryInput})}function _(){o.value||n.createDataLayerObject("siteSearchCloseEvent",{search_query:t.searchTerm,search_usage_index:t.searchInSessionCount,query_input:t.queryInput,page_number:t.currentPage,results_count:t.totalResults})}return vue.onUpdated(()=>{i()}),(g,b)=>(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$2,[vue.createElementVNode("div",_hoisted_2$2,[vue.createVNode(_sfc_main$4,{"cludo-api-key":a.cludoApiKey,"cludo-customer-id":a.cludoCustomerId,"cludo-engine-id":a.cludoEngineId,filters:a.filters,"sub-filters":a.subFilters,labels:a.searchLabels},null,8,["cludo-api-key","cludo-customer-id","cludo-engine-id","filters","sub-filters","labels"]),vue.createVNode(_sfc_main$6,{class:"my-200"}),(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(t).filters,(S,C)=>vue.withDirectives((vue.openBlock(),vue.createElementBlock("div",{key:C,class:"mb-200"},[vue.renderSlot(g.$slots,`federated-search__spotlight-${S.Key}`)],512)),[[vue.vShow,vue.unref(t).selectedCategoryKey===S.Key]])),128)),vue.unref(t).results?(vue.openBlock(),vue.createElementBlock("div",_hoisted_3$2,[vue.createElementVNode("div",null,[vue.createVNode(vue.unref(LoadingSpinner.VsHeading),{"heading-style":"heading-m",level:2,class:"my-0"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(a.searchLabels.searchResults),1)]),_:1}),vue.unref(t).totalResults!==0?(vue.openBlock(),vue.createBlock(vue.unref(VsDetail),{key:0},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(a.searchLabels.resultsFirst)+" "+vue.toDisplayString(vue.unref(t).totalResults)+" "+vue.toDisplayString(a.searchLabels.resultsSecond),1)]),_:1})):vue.createCommentVNode("",!0)]),vue.unref(t).selectedCategoryKey==="events"?(vue.openBlock(),vue.createBlock(_sfc_main$3,{key:0,"date-filter-visible":!0,"sort-options":a.sortLabels.sortOptions,"from-date-label":a.sortLabels.dateFrom,"to-date-label":a.sortLabels.dateTo,"sort-label":a.sortLabels.sort,onFromDateUpdated:l,onEndDateUpdated:u,onSortOrderUpdated:c},null,8,["sort-options","from-date-label","to-date-label","sort-label"])):vue.createCommentVNode("",!0)])):vue.createCommentVNode("",!0),vue.unref(t).isLoading?(vue.openBlock(),vue.createBlock(vue.unref(LoadingSpinner.VsLoading),{key:1})):vue.createCommentVNode("",!0),!vue.unref(t).isLoading&&vue.unref(t).results&&!vue.unref(t).eventsApiError?(vue.openBlock(),vue.createElementBlock("div",_hoisted_4$2,[vue.createVNode(vue.unref(VsCardGroup),{"cards-per-row":3,class:vue.normalizeClass(vue.unref(t).results&&s.value<=1?"mb-300":null)},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(t).results,S=>(vue.openBlock(),vue.createBlock(vue.unref(VsCard),{key:S.id},{"vs-card-header":vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_5$2,[vue.createVNode(vue.unref(LoadingSpinner.VsImg),{src:S.imgSrc||fallbackImg,class:"w-100 aspect-ratio-3-2 rounded-1 object-fit-cover img-zoom-on-hover"},null,8,["src"]),vue.createElementVNode("div",_hoisted_6$2,[S.minPrice?(vue.openBlock(),vue.createBlock(vue.unref(VsBadge),{key:0,variant:"information",class:"rounded-top-end rounded-bottom-start"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(a.fromText)+" "+vue.toDisplayString(v(S.minPrice)),1)]),_:2},1024)):vue.createCommentVNode("",!0),S.startDate?(vue.openBlock(),vue.createBlock(vue.unref(VsBadge),{key:1,variant:"information",class:"rounded-top-end rounded-top-start"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(f(S.startDate,S.endDate)),1)]),_:2},1024)):vue.createCommentVNode("",!0)]),vue.createElementVNode("div",_hoisted_7$1,[S.categoryCard&&e.cardCategoryLabels[S.categoryCard]?(vue.openBlock(),vue.createBlock(vue.unref(VsBadge),{key:0,variant:"highlight",class:"rounded-top-start rounded-bottom-start mx-0"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(e.cardCategoryLabels[S.categoryCard]),1)]),_:2},1024)):vue.createCommentVNode("",!0)])])]),"vs-card-body":vue.withCtx(()=>[vue.createVNode(vue.unref(LoadingSpinner.VsHeading),{level:"3","heading-style":"heading-xs"},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(VsLink),{href:p(S),onClick:C=>h(S),class:"stretched-link",variant:"secondary"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(S.title),1)]),_:2},1032,["href","onClick"])]),_:2},1024),vue.createVNode(vue.unref(LoadingSpinner.VsBody),null,{default:vue.withCtx(()=>[vue.createElementVNode("p",_hoisted_8,vue.toDisplayString(S.description),1)]),_:2},1024)]),"vs-card-footer":vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_9,[S.location?(vue.openBlock(),vue.createElementBlock("div",_hoisted_10,[vue.createVNode(vue.unref(LoadingSpinner.VsIcon),{icon:"fa-solid fa-location-dot",variant:"highlight",class:"me-050",size:"sm"}),vue.createVNode(vue.unref(VsDetail),{"no-margins":"",color:"tertiary"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(S.location),1)]),_:2},1024)])):vue.createCommentVNode("",!0),vue.createElementVNode("div",null,[S.dataSrc==="data-thistle"?(vue.openBlock(),vue.createBlock(vue.unref(LoadingSpinner.VsIcon),{key:0,icon:"vs-icon-control-external-link",variant:"highlight",size:"sm"})):vue.createCommentVNode("",!0)])])]),_:2},1024))),128))]),_:1},8,["class"]),vue.unref(t).results&&s.value>1?(vue.openBlock(),vue.createBlock(vue.unref(_sfc_main$D),{key:0,class:"vs-federated-search__pagination","number-of-pages":s.value,"next-button-label":a.paginationLabels.nextButtonLabel,"previous-button-label":a.paginationLabels.previousButtonLabel,"page-label":a.paginationLabels.pageLabel,"of-label":a.paginationLabels.ofLabel,modelValue:vue.unref(t).currentPage,"onUpdate:modelValue":b[0]||(b[0]=S=>vue.unref(t).currentPage=S),onPageClick:d},null,8,["number-of-pages","next-button-label","previous-button-label","page-label","of-label","modelValue"])):vue.createCommentVNode("",!0)])):vue.createCommentVNode("",!0),r.value.error?(vue.openBlock(),vue.createElementBlock("div",_hoisted_11,[r.value.error?(vue.openBlock(),vue.createBlock(vue.unref(LoadingSpinner.VsWarning),{key:0},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(r.value.message),1)]),_:1})):vue.createCommentVNode("",!0)])):vue.createCommentVNode("",!0)]),vue.createVNode(vue.unref(LoadingSpinner.VsWarning),{"data-test":"vs-federated-search__error--no-js",class:"vs-federated-search__error--no-js mb-300"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(a.searchLabels.noJs),1)]),_:1})]))}};var define_process_env_default={};function setScriptSrc(e,n){e.src=n}const bootstrap=e=>{var n,t,r,a="The Google Maps JavaScript API",o="google",s="importLibrary",i="__ib__",l=document,u=window,c=u[o]||(u[o]={}),d=c.maps||(c.maps={}),f=new Set,v=new URLSearchParams,p=()=>n||(n=new Promise(async(h,m)=>{var _;await(t=l.createElement("script")),v.set("libraries",[...f]+"");for(r in e)v.set(r.replace(/[A-Z]/g,g=>"_"+g[0].toLowerCase()),e[r]);v.set("callback",o+".maps."+i),setScriptSrc(t,"https://maps.googleapis.com/maps/api/js?"+v),d[i]=h,t.onerror=()=>n=m(Error(a+" could not load.")),t.nonce=((_=l.querySelector("script[nonce]"))==null?void 0:_.nonce)||"",l.head.append(t)}));d[s]?console.warn(a+" only loads once. Ignoring:",e):d[s]=(h,...m)=>f.add(h)&&p().then(()=>d[s](h,...m))},MSG_REPEATED_SET_OPTIONS=e=>`The setOptions() function should only be called once. The options passed to the additional call (${JSON.stringify(e)}) will be ignored.`,MSG_IMPORT_LIBRARY_EXISTS=e=>`The google.maps.importLibrary() function is already defined, and @googlemaps/js-api-loader will use the existing function instead of overwriting it. The options passed to setOptions (${JSON.stringify(e)}) will be ignored.`,MSG_SET_OPTIONS_NOT_CALLED="No options were set before calling importLibrary. Make sure to configure the loader using setOptions().",MSG_SCRIPT_ELEMENT_EXISTS="There already is a script loading the Google Maps JavaScript API, and no google.maps.importLibrary function is defined. @googlemaps/js-api-loader will proceed to bootstrap the API with the specified options, but the existing script might cause problems using the API. Make sure to remove the script loading the API.",logDevWarning=define_process_env_default.NODE_ENV!=="production"?e=>{console.warn(`[@googlemaps/js-api-loader] ${e}`)}:()=>{},logDevNotice=define_process_env_default.NODE_ENV!=="production"?e=>{console.info(`[@googlemaps/js-api-loader] ${e}`)}:()=>{};let setOptionsWasCalled_=!1;function setOptions(e){if(setOptionsWasCalled_){logDevWarning(MSG_REPEATED_SET_OPTIONS(e));return}installImportLibrary_(e),setOptionsWasCalled_=!0}async function importLibrary(e){var n,t;if(setOptionsWasCalled_||logDevWarning(MSG_SET_OPTIONS_NOT_CALLED),!((t=(n=window==null?void 0:window.google)==null?void 0:n.maps)!=null&&t.importLibrary))throw new Error("google.maps.importLibrary is not installed.");return await google.maps.importLibrary(e)}function installImportLibrary_(e){var t,r;const n=!!((r=(t=window.google)==null?void 0:t.maps)!=null&&r.importLibrary);n?logDevNotice(MSG_IMPORT_LIBRARY_EXISTS(e)):define_process_env_default.NODE_ENV!=="production"&&document.querySelector('script[src*="maps.googleapis.com/maps/api/js"]')&&logDevWarning(MSG_SCRIPT_ELEMENT_EXISTS),n||bootstrap(e)}const useGoogleMapStore=pinia.defineStore("googleMap",()=>{const e=vue.ref(!0),n=vue.ref(Date.now()),t=vue.ref(!1),r=vue.ref(0),a=vue.ref(0);return{sidebarOpen:e,timeMounted:n,firstInteraction:t,searchesCount:r,filterUsesCount:a}}),_hoisted_1$1={class:"vs-map-sidebar__header d-flex"},_hoisted_2$1={class:"vs-map-sidebar__content"},_hoisted_3$1={class:"vs-map-sidebar__input d-flex mt-100 mb-050"},_hoisted_4$1={key:1,class:"vs-map-sidebar__sub-filters-wrapper"},_hoisted_5$1={class:"vs-map-sidebar__search-results"},_hoisted_6$1={class:"vs-map-sidebar__google-maps-container mt-075"},_hoisted_7={key:0,class:"vs-map-sidebar__footer"},_sfc_main$1=vue.defineComponent({__name:"MapSidebar",props:{query:{type:String,default:""},selectedCategories:{type:String,default:""},headerLabel:{type:String,default:""},closeSidebarButtonLabel:{type:String,default:""},searchBarAriaLabel:{type:String,default:""},inputPlaceholderLabel:{type:String,default:""},searchButtonLabel:{type:String,default:""},clearMapLabel:{type:String,default:""},subFilterHeaderLabel:{type:String,default:""},searchResultsLabel:{type:String,default:""},openSidebarButtonLabel:{type:String,default:""}},emits:["search-input-changed","reset-map"],setup(e){const n=useGoogleMapStore(),t=e;return(r,a)=>(vue.openBlock(),vue.createElementBlock(vue.Fragment,null,[vue.createElementVNode("div",{class:vue.normalizeClass(["vs-map-sidebar px-125",vue.unref(n).sidebarOpen?"d-block":"d-none"]),"data-test":"vs-map-sidebar",ref:"vsMapSidebar"},[vue.createElementVNode("div",_hoisted_1$1,[t.headerLabel?(vue.openBlock(),vue.createBlock(LoadingSpinner.VsHeading,{key:0,level:"1","heading-style":"heading-xxs",class:"flex-grow-1",id:"vs-map-sidebar__heading","data-test":"vs-map-sidebar__heading"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.headerLabel),1)]),_:1})):vue.createCommentVNode("",!0),vue.createVNode(LoadingSpinner.VsButton,{variant:"tertiary",icon:"vs-icon-control-dismiss","icon-only":"",class:"vs-map-sidebar__sidebar-control vs-map-siderbar__sidebar-control--dismiss","data-test":"vs-map-siderbar__sidebar-control--dismiss",onClick:a[0]||(a[0]=o=>vue.unref(n).sidebarOpen=!1)},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.closeSidebarButtonLabel),1)]),_:1})]),vue.createElementVNode("div",_hoisted_2$1,[vue.createElementVNode("div",_hoisted_3$1,[vue.createVNode(VsInput,{type:"text",autocomplete:"off","field-name":"vs-map-search-input","data-test":"vs-map-search-input",ref:"vs-search-input",placeholder:t.inputPlaceholderLabel,class:"vs-map-sidebar__input flex-grow-1","aria-label":t.searchBarAriaLabel,onKeyup:a[1]||(a[1]=vue.withKeys(vue.withModifiers(o=>r.$emit("search-input-changed"),["prevent"]),["enter"]))},null,8,["placeholder","aria-label"]),vue.createVNode(LoadingSpinner.VsButton,{class:"vs-map-sidebar__search-button","data-test":"vs-map-sidebar__search-button",icon:"vs-icon-control-search","icon-only":"",rounded:!1,size:"lg",onClick:a[2]||(a[2]=vue.withModifiers(o=>r.$emit("search-input-changed"),["prevent"])),onKeyup:a[3]||(a[3]=vue.withKeys(vue.withModifiers(o=>r.$emit("search-input-changed"),["prevent"]),["enter"]))},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.searchButtonLabel),1)]),_:1})]),r.$props.query||r.$props.selectedCategories?(vue.openBlock(),vue.createElementBlock("a",{key:0,href:"#",class:"d-block","data-test":"vs-map-sidebar__reset-map",onClick:a[4]||(a[4]=vue.withModifiers(o=>r.$emit("reset-map"),["prevent"])),onKeyup:a[5]||(a[5]=vue.withKeys(vue.withModifiers(o=>r.$emit("reset-map"),["prevent"]),["enter"]))},vue.toDisplayString(t.clearMapLabel),33)):vue.createCommentVNode("",!0),r.$slots["vs-map-sidebar-sub-filters"]&&r.$slots["vs-map-sidebar-sub-filters"]()?(vue.openBlock(),vue.createElementBlock("div",_hoisted_4$1,[vue.createVNode(VsDetail,{class:"vs-map-sidebar__sub-filter-header",size:"small",color:"secondary"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.subFilterHeaderLabel),1)]),_:1}),vue.renderSlot(r.$slots,"vs-map-sidebar-sub-filters")])):vue.createCommentVNode("",!0),vue.createElementVNode("div",_hoisted_5$1,[r.$props.query||r.$props.selectedCategories?(vue.openBlock(),vue.createBlock(LoadingSpinner.VsHeading,{key:0,level:"2","heading-style":"heading-xxxs","data-test":"vs-map-sidebar__search-result-query"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.searchResultsLabel)+' "'+vue.toDisplayString(t.query||t.selectedCategories)+'" ',1)]),_:1})):vue.createCommentVNode("",!0),vue.createElementVNode("div",_hoisted_6$1,[vue.renderSlot(r.$slots,"vs-map-sidebar-search-results")])])]),r.$props.query||r.$props.selectedCategories?(vue.openBlock(),vue.createElementBlock("div",_hoisted_7,a[7]||(a[7]=[vue.createElementVNode("hr",{class:"vs-map-sidebar__swipe-tab"},null,-1)]))):vue.createCommentVNode("",!0)],2),vue.createVNode(LoadingSpinner.VsButton,{class:vue.normalizeClass(["vs-map-sidebar__sidebar-control vs-map-sidebar__sidebar-control--open",vue.unref(n).sidebarOpen?"d-none":"d-block"]),"data-test":"vs-map-sidebar__sidebar-control--open",size:"sm",icon:"fa-regular fa-sliders","icon-only":"",onClick:a[6]||(a[6]=o=>vue.unref(n).sidebarOpen=!0)},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.openSidebarButtonLabel),1)]),_:1},8,["class"])],64))}}),cookieCheckerComposable=()=>{const e=vue.ref([]),n=vue.ref(!1),t=vue.ref(!1),r=vue.computed(()=>typeof window<"u"&&window.bypassCookiesRequired?!0:n.value),a=vue.computed(()=>typeof window<"u"&&window.bypassCookiesLoaded?!0:{cookieManagerLoaded:t});function o(){t.value=!0}function s(){let i=!1;typeof CookieControl<"u"&&(i=e.value.every(l=>CookieControl.getCategoryConsent(l)===!0)),n.value=i}return vue.onMounted(()=>{window.addEventListener("cookieManagerLoaded",()=>{o()}),window.addEventListener("cookiesUpdated",()=>{s()})}),{requiredCookies:e,cookiesAllowed:r,cookiesLoaded:a}};function dataLayerComposable(){const e=LoadingSpinner.useDataLayerStore(),n=vue.ref(!1),t=vue.computed(()=>e.pageUrl);function r(l,u){const c={};return l.forEach(d=>{c[d]=u[d]||void 0,d==="language"&&c[d]===void 0&&(c[d]=u.site_language||void 0)}),c}function a(){return new Date(Date.now()).toISOString()}function o(l){const c={...e.GTMData,...l};return c.hit_timestamp=a(),c}function s(l){n.value?window.dataLayer.push(l):LoadingSpinner.checkVendorLibrary("dataLayer",()=>{n.value=!0,window.dataLayer.push(l)})}function i(l,u){let c,d,f,v;switch(l){case"googleMapSearchEvent":c="map_search",d={event:c,search_query:u.search_query,search_map_location:u.search_map_location,search_results_count:u.search_results_count,search_usage_index:u.search_usage_index},f=o(d),v=r(LoadingSpinner.googleMapSearchTemplate,f);break;case"googleMapFilterEvent":c="map_filter_interaction",d={event:c,filter_type:u.filter_type,search_map_location:u.search_map_location,filter_selection:u.filter_selection,results_count:u.results_count,filter_usage_index:u.filter_usage_index},f=o(d),v=r(LoadingSpinner.googleMapFilterInteractionTemplate,f);break;case"googleMapTimeToFirstInteractionEvent":c="map_time_to_first_interaction",d={event:c,time_to_first_interaction_ms:u.time_to_first_interaction_ms,first_interaction_type:u.first_interaction_type},f=o(d),v=r(LoadingSpinner.googleMapTimeToFirstInteractionTemplate,f);break;case"googleMapInteractionEvent":c="map_interaction_click",d={event:c,interaction_type:u.interaction_type,search_query:u.search_query,map_location:u.map_location,visible_attractions_count:u.visible_attractions_count,card_attraction_name:u.card_attraction_name,card_attraction_category:u.card_attraction_category,card_attraction_url:u.card_attraction_url,card_attraction_rating:u.card_attraction_rating,interaction_timestamp_ms:u.interaction_timestamp_ms},f=o(d),v=r(LoadingSpinner.googleMapInteractionTemplate,f);break}v&&s(v)}return{pageUrl:t,createDataLayerObject:i,templateFiller:r,compileFullTemplate:o,returnIsoDate:a,pushToDataLayer:s,dataLayerStore:e}}const _hoisted_1={class:"vs-map"},_hoisted_2={class:"vs-map__controls"},_hoisted_3={class:"vs-map-sidebar__sub-filters"},_hoisted_4={key:0,class:"vs-map__filter-controls"},_hoisted_5={class:"vs-map__wrapper"},_hoisted_6={id:"vs-map","map-id":"vs-map",ref:"vsMap"},MAX_ZOOM=17,CATEGORY_VISIBLE_ZOOM=11,NUMBER_OF_RESULTS=20,_sfc_main={__name:"MainMap",props:{apiKey:{type:String,default:getEnvValue("GOOGLE_MAPS_API_KEY")},mapId:{type:String,default:"vs-map"},mapTypeVector:{type:Boolean,default:!1},center:{type:Object,default:()=>({lat:56.490153,lng:-4.10959})},zoom:{type:Number,default:6},radius:{type:Number,default:1e3},labels:{type:Object,default:()=>{}},languageCode:{type:String,default:"en",validator:e=>e.match(/(en|es|it|de|nl|fr)/)},categoriesLocation:{type:String,default:""},categoryLabels:{type:Object,default:()=>{}},jsDisabled:{type:Boolean,required:!0},noJsMessage:{type:String,required:!0},noCookiesMessage:{type:String,required:!0},cookieBtnText:{type:String,required:!0},noResultsMessage:{type:String,required:!0},resetMapNoResultsMessage:{type:String,required:!0}},setup(e){const n=dataLayerComposable(),t=e;let r,a,o,s,i,l,u,c,d,f,v={},p;const h=vue.ref(),m=vue.ref(new Set),_=vue.ref(),g=vue.ref(new Set),b=vue.ref(new Set),S=vue.ref(new Set),C=vue.ref(new Set),V=vue.ref(),E=vue.ref(),$=vue.ref(t.zoom),D=vue.ref(),A=vue.ref(new Set),M=vue.ref(),j=vue.computed(()=>{const U=new Map,N=k[h.value].subCategory;return Object.values(N).forEach(Z=>{U.set(Z.id,{includedTypes:Z.includedType,excludedTypes:Z.excludedType})}),U}),O=useGoogleMapStore(),R=vue.ref(!1);let X;const G=vue.ref(void 0),W={north:60.8,south:54.8,west:-8.5,east:-.7};let k={};const L=t.categoryLabels;let I=0;vue.onBeforeMount(()=>{const U=cookieCheckerComposable();U.requiredCookies.value=cookieValues$5.google_maps,X=vue.computed(()=>t.jsDisabled===!0?(G.value="noJS",!0):!U.cookiesAllowed.value&&U.cookiesLoaded.value===!0||!U.cookiesLoaded.value?(G.value="noCookie",!0):!1)}),vue.onMounted(async()=>{if(t.categoriesLocation&&LoadingSpinner.axios.get(t.categoriesLocation).then(N=>{k=N.data}).catch(()=>{}),X.value===!1){setOptions({key:t.apiKey,v:"quarterly",libraries:["maps","places","marker","core","geometry"],region:"GB",language:t.languageCode});try{await importLibrary("maps"),await importLibrary("places"),await importLibrary("marker"),await importLibrary("core"),await importLibrary("geometry")}catch{console.error("Google Maps Library load error")}}a=document.getElementById("vs-map"),o=document.getElementById("nearbySearch"),s=document.getElementById("textSearch"),i=document.querySelector("gmp-place-text-search-request"),l=document.querySelector("gmp-place-nearby-search-request"),u=document.querySelector("gmp-place-details"),c=document.getElementById("placeRequest"),d=document.getElementById("vs-map-search-input");async function U(){try{const N={center:{lat:t.center.lat,lng:t.center.lng},renderingType:t.mapTypeVector?google.maps.RenderingType.VECTOR:google.maps.RenderingType.RASTER,zoom:t.zoom,isFractionalZoomEnabled:!0,mapId:t.mapId,restriction:{latLngBounds:W},zoomControl:!0,fullscreenControl:!1,mapTypeControl:!1,cameraControl:!1,streetViewControl:!1,gestureHandling:"greedy"};if(a)r=new google.maps.Map(a,N),r.fitBounds(W);else throw new Error("Init error, mapContainer undefined")}catch(N){console.error("Maps init error",N.message)}f=new google.maps.InfoWindow,f.addListener("closeclick",()=>{ie("card_close",c.place)}),F(),r.addListener("zoom_changed",()=>{$.value=r.getZoom(),$.value<CATEGORY_VISIBLE_ZOOM?F():F(!0)}),r.addListener("idle",()=>{p=fe()}),o.addEventListener("gmp-select",({place:N})=>{v[N.id]&&ae(N,v[N.id])}),s.addEventListener("gmp-select",({place:N})=>{v[N.id]&&ae(N,v[N.id])})}O.firstInteraction=!1,O.searchesCount=0,O.filterUsesCount=0,X.value===!1&&await U()});function F(U){const N={strokeColor:"#A3A3CC",strokeOpacity:1,strokeWeight:1,fillColor:"#A3A3CC",fillOpacity:.5},Z=["ChIJ39UebIqp0EcRqI4tMyWV4fQ","ChIJdZmmmcoQXkgR2OO3bu8o5fc","ChIJ-ydAXOS6WUgRCPTbzjQSfM8","ChIJ7Q8cbLY0ZEgRouilirxxux4","ChIJ1YEuRDCFY0gRDeDw8bxbAuo","ChIJv-VNj0VoEkYRK9BkuJ07sKE","ChIJ-1-U7rYnS0YRzZLgw9BDh1I","ChIJ8fA1bTmyXEYRYm-tjaLruCI","ChIJ6_ktdpMVvEgRJBv3ZEgxsD8","ChIJa76xwh5ymkcRW-WRjmtd6HU","ChIJu-SH28MJxkcRnwq9_851obM","ChIJuwtkpGSZAEcR6lXMScpzdQk","ChIJl5fz7WR9wUcR8g_mObTy60c","ChIJMVd4MymgVA0R99lHx5Y__Ws","ChIJ_ZqKe2cw6UYREPzyaM3PAAA","ChIJE74zDxSU3UYRubpdpdNUCvM","ChIJ4wsuREWc40YRewI60MRYJR4","ChIJ_UuggpyUkkYRwyW0T7qf6kA","ChIJ3fYyS9_KgUYREKh1PNZGAQA","ChIJQ2Dro1Ir0kgRmkXB5TQEim8","ChIJFXfA47sNok4RGOIUAYOdzzQ","ChIJI9HkgQm_ikYR8i7GR23fEbY","ChIJUXXYvLMei0YR7zdFQUIM8bA","ChIJRyEhyrlFlUcR75LTAvZg22Q"],ee=["ChIJ39UebIqp0EcRqI4tMyWV4fQ","ChIJdZmmmcoQXkgR2OO3bu8o5fc","ChIJ-ydAXOS6WUgRCPTbzjQSfM8","ChIJ6_ktdpMVvEgRJBv3ZEgxsD8"],se=r.getFeatureLayer(google.maps.FeatureType.COUNTRY),te=r.getFeatureLayer(google.maps.FeatureType.ADMINISTRATIVE_AREA_LEVEL_1);U?(se.style=null,te.style=null,se.style=le=>{if(ee.includes(le.feature.placeId))return N},te.style=le=>{if(ee.includes(le.feature.placeId))return N}):(se.style=le=>{if(Z.includes(le.feature.placeId))return N},te.style=le=>{if(Z.includes(le.feature.placeId))return N})}function J(U,N){ne(),h.value=U,Object.values(k[U].subCategory).forEach(Z=>g.value.add(Z.includedType)),Object.values(k[U].subCategory).forEach(Z=>{Z.excludedType&&b.value.add(Z.excludedType)}),g.value=new Set(Array.from(g.value).flat()),b.value=new Set(Array.from(b.value).flat()),g.value.forEach(Z=>{b.value.has(Z)&&b.value.delete(Z)}),_.value=k[U],V.value=N,P({includedTypes:Array.from(g.value),excludedTypes:Array.from(b.value)}),D.value=L[V.value].label,d.value=D.value}function w(U,N){const Z=vue.ref([]),ee=vue.ref();return U.forEach(()=>{L.forEach(se=>{se.id===h.value&&(Z.value=se)}),Object.values(Z.value).forEach(se=>{Object.values(se).forEach(te=>{N===te.id&&(ee.value=te.label)})})}),ee}function B(){S.value.forEach(U=>{C.value.has(U)&&C.value.delete(U)})}function T(U,{includeTypes:N=!1,excludeTypes:Z=!1,removeIncludedTypes:ee=!1,removeExcludedTypes:se=!1}={}){var le;const te=j.value.get(U);N&&te.includedTypes.forEach(ce=>{N&&S.value.add(ce),ee&&S.value.delete(ce)}),(Z||se)&&((le=te.excludedTypes)==null||le.forEach(ce=>{Z&&C.value.add(ce),se&&C.value.delete(ce)}))}function q(U,N){E.value=N,U==="self-catering"?(Q(),m.value=new Set,m.value.add(U),D.value="self-catering accommodation",ne(),d.value=D.value,z(),d.value="Self Catering"):m.value.has(U)?(m.value.delete(U),S.value=new Set,C.value=new Set,m.value.forEach(Z=>{T(Z,{includeTypes:!0,excludeTypes:!0})}),B(),A.value.delete(w(m.value,U).value),m.value.size===0?(A.value=new Set,J(h.value,V.value)):(P({includedTypes:Array.from(S.value).flat(),excludedTypes:Array.from(C.value).flat()}),D.value=Array.from(A.value).join(", "),d.value=D.value)):(m.value.add(U),T(U,{includeTypes:!0,excludeTypes:!0}),B(),P({includedTypes:Array.from(S.value).flat(),excludedTypes:Array.from(C.value).flat()}),A.value.add(w(m.value,U).value),D.value=Array.from(A.value).join(", "),d.value=D.value)}async function P({includedTypes:U=[],excludedTypes:N=[]}={}){H(),Q(),I+=1;const Z=I;R.value=!1,O.filterUsesCount+=1,M.value="nearby";const ee=r.getBounds(),se=ee.getNorthEast(),te=ee.getSouthWest(),le=google.maps.geometry.spherical.computeDistanceBetween(se,te),ce=Math.min(le/2,25e3);l.includedTypes=U,l.excludedTypes=N??[],l.maxResultCount=NUMBER_OF_RESULTS,l.locationRestriction={center:r.getCenter(),radius:ce},o.style.display="block",o.addEventListener("gmp-load",()=>{if(Z!==I)return;Y(Z);let de="main",ve=h.value;m.value.size&&(de="sub",ve=Array.from(m.value).join(", ")),n.createDataLayerObject("googleMapFilterEvent",{filter_type:de,search_map_location:r.getCenter().toString(),filter_selection:ve,results_count:o.places.length,filter_usage_index:O.filterUsesCount}),ue("map_filter")},{once:!0})}async function z(){H(),ne(),R.value=!1,I+=1;const U=I;O.searchesCount+=1,M.value="text",D.value=d.value.trim(),D.value&&(D.value==="self-catering accommodation"?i.textQuery=D.value:i.textQuery=`${D.value} Scotland`,i.locationBias=r.getCenter(),i.maxResultCount=NUMBER_OF_RESULTS,s.style.display="block",s.addEventListener("gmp-load",()=>{U===I&&(Y(U),n.createDataLayerObject("googleMapSearchEvent",{search_query:D.value,search_map_location:r.getCenter().toString(),search_results_count:s.places.length,search_usage_index:O.searchesCount}),ue("map_search"))},{once:!0}))}async function Y(U){const{AdvancedMarkerElement:N}=await importLibrary("marker"),{LatLngBounds:Z}=await importLibrary("core");if(U!==I)return;const ee=vue.ref();M.value==="nearby"?ee.value=o:M.value==="text"?ee.value=s:console.error("Unrecognised Search type"),ee.value.places.length===0?(R.value=!0,ee.value.style.display="none"):ee.value.style.display="block";const se=new Z;ee.value.places&&ee.value.places.forEach(te=>{const le=document.createElement("div");le.classList.add("vs-map-marker");const ce=document.createElement("i");ce.classList.add("fa-solid","fa-location-dot"),le.appendChild(ce);const de=new N({map:r,position:te.location,content:le,title:"Map pin"});de.addEventListener("gmp-placeclick",()=>{ae(te)}),de.addListener("click",()=>{ae(te)}),de.metadata={id:te.id},v[te.id]=de,se.extend(te.location),ee.value.places.length===1?(r.setCenter({lat:te.location.lat(),lng:te.location.lng()}),r.setZoom(14),r.fitBounds(te.viewport)):(r.setCenter(se.getCenter()),r.fitBounds(se))})}function H(U,N){oe(),M.value="",o.style.display="none",s.style.display="none",i.textQuery=null,f&&f.close&&f.close(),R.value=!1,U&&(Q(),ne(),ie("clear_all")),N&&(r.setCenter(t.center),r.setZoom(t.zoom),r.fitBounds(W),ie("reset_map"))}function Q(){D.value=null,d.value=""}function ne(){h.value=void 0,m.value=new Set,g.value=new Set,b.value=new Set,S.value=new Set,C.value=new Set,A.value=new Set,V.value=void 0,E.value=void 0}function oe(){for(const U in v)v[U]&&(v[U].map=null);v={}}function ae(U){f.isOpen&&(f.close(),ie("card_close",c.place)),c.place=U,window.innerWidth<=768?(u.style.width="85vw",u.style.height="32em",O.sidebarOpen=!1):(u.style.width="20em",u.style.height="32em"),u.style.display="block",u.style.overflowY="auto",u.style.overflowX="hidden",u.style.boxSizing="border-box",u.style.maxHeight="32em",f.setOptions({content:u,maxWidth:"25em",position:U.location,pixelOffset:new google.maps.Size(0,-32)}),f.open({map:r}),r.fitBounds(U.viewport),google.maps.event.addListenerOnce(r,"idle",()=>{r.getZoom()>MAX_ZOOM&&r.setZoom(MAX_ZOOM),ie("card_open",U)}),r.setCenter(U.location)}async function ie(U,N){let Z="",ee="",se="",te="";N&&(await N.fetchFields({fields:["displayName","primaryType","rating","websiteURI"]}),Z=N.displayName,ee=N.rating,se=N.websiteURI,te=N.primaryType),n.createDataLayerObject("googleMapInteractionEvent",{interaction_type:U,search_query:d.value.trim(),map_location:r.getCenter().toString(),visible_attractions_count:p,card_attraction_name:Z,card_attraction_category:te,card_attraction_rating:ee,card_attraction_url:se,interaction_timestamp_ms:Date.now()}),ue(U)}function ue(U){if(!O.firstInteraction){const Z=Date.now()-O.timeMounted;n.createDataLayerObject("googleMapTimeToFirstInteractionEvent",{time_to_first_interaction_ms:Z,first_interaction_type:U}),O.firstInteraction=!0}}function fe(){const U=r.getBounds();if(!U)return 0;let N=0;for(let Z=0;Z<Object.keys(v).length;Z++){const se=v[Object.keys(v)[Z]].position;U.contains(se)&&(N+=1)}return N}return(U,N)=>(vue.openBlock(),vue.createElementBlock("div",_hoisted_1,[vue.createElementVNode("div",{class:vue.normalizeClass(["vs-map__container",vue.unref(X)?"d-none":"d-block"])},[vue.createElementVNode("div",_hoisted_2,[vue.createVNode(_sfc_main$1,{query:D.value,"selected-categories":h.value,"header-label":t.labels.heading,"close-sidebar-button-label":t.labels.closeSidebarBtn,"search-bar-aria-label":t.labels.searchBarAriaLabel,"input-placeholder-label":t.labels.inputPlaceholder,"search-button-label":t.labels.searchButton,"clear-map-label":t.labels.clearMap,"sub-filter-header-label":t.labels.subFilterHeader,"search-results-label":t.labels.searchResults,"open-sidebar-button-label":t.labels.openSidebarButton,onSearchInputChanged:z,onResetMap:N[1]||(N[1]=Z=>H(!0))},vue.createSlots({"vs-map-sidebar-search-results":vue.withCtx(()=>[(vue.openBlock(),vue.createBlock(vue.Suspense,null,{default:vue.withCtx(()=>N[2]||(N[2]=[vue.createElementVNode("div",{id:"search-container"},[vue.createElementVNode("gmp-place-search",{id:"nearbySearch",orientation:"vertical",selectable:"",style:{display:"none"}},[vue.createElementVNode("gmp-place-nearby-search-request",{id:"nearbySearchQuery"}),vue.createElementVNode("gmp-place-content-config",null,[vue.createElementVNode("gmp-place-address"),vue.createElementVNode("gmp-place-rating"),vue.createElementVNode("gmp-place-type"),vue.createElementVNode("gmp-place-price"),vue.createElementVNode("gmp-place-accessible-entrance-icon"),vue.createElementVNode("gmp-place-opening-hours"),vue.createElementVNode("gmp-place-reviews"),vue.createElementVNode("gmp-place-attribution",{"light-scheme-color":"gray","dark-scheme-color":"gray"})])]),vue.createElementVNode("gmp-place-search",{id:"textSearch",orientation:"vertical",selectable:"",style:{display:"none"}},[vue.createElementVNode("gmp-place-text-search-request",{id:"textSearchQuery"}),vue.createElementVNode("gmp-place-content-config",null,[vue.createElementVNode("gmp-place-address"),vue.createElementVNode("gmp-place-rating"),vue.createElementVNode("gmp-place-type"),vue.createElementVNode("gmp-place-price"),vue.createElementVNode("gmp-place-accessible-entrance-icon"),vue.createElementVNode("gmp-place-opening-hours"),vue.createElementVNode("gmp-place-reviews"),vue.createElementVNode("gmp-place-attribution",{"light-scheme-color":"gray","dark-scheme-color":"gray"})])])],-1)])),_:1,__:[2]})),R.value?(vue.openBlock(),vue.createBlock(vue.unref(VsAlert),{key:0,id:"vs-map__no-results-alert",class:"mt-075 mb-150",size:"small"},{default:vue.withCtx(()=>[vue.createElementVNode("span",null,[vue.createTextVNode(vue.toDisplayString(e.noResultsMessage)+" ",1),vue.createElementVNode("a",{href:"#",onClick:N[0]||(N[0]=vue.withModifiers(Z=>H(!0,!0),["prevent"]))},vue.toDisplayString(e.resetMapNoResultsMessage),1)])]),_:1})):vue.createCommentVNode("",!0)]),_:2},[h.value?{name:"vs-map-sidebar-sub-filters",fn:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_3,[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(L)[V.value].subCategory,(Z,ee)=>(vue.openBlock(),vue.createBlock(vue.unref(LoadingSpinner.VsButton),{key:ee,variant:m.value.has(Z.id)?"primary":"secondary",size:"sm",onClick:se=>q(Z.id,ee)},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(Z.label),1)]),_:2},1032,["variant","onClick"]))),128))])]),key:"0"}:void 0]),1032,["query","selected-categories","header-label","close-sidebar-button-label","search-bar-aria-label","input-placeholder-label","search-button-label","clear-map-label","sub-filter-header-label","search-results-label","open-sidebar-button-label"]),$.value>=CATEGORY_VISIBLE_ZOOM&&vue.unref(O).sidebarOpen?(vue.openBlock(),vue.createElementBlock("div",_hoisted_4,[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(L),(Z,ee)=>(vue.openBlock(),vue.createBlock(vue.unref(LoadingSpinner.VsButton),{key:ee,class:"vs-map__filter-controls-button",icon:vue.unref(k)[Z.id].icon,variant:h.value===Z.id?"primary":"secondary",onClick:vue.withModifiers(se=>J(Z.id,ee),["prevent"])},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(Z.label),1)]),_:2},1032,["icon","variant","onClick"]))),128))])):vue.createCommentVNode("",!0)]),vue.createElementVNode("div",_hoisted_5,[vue.createElementVNode("div",_hoisted_6,null,512),(vue.openBlock(),vue.createBlock(vue.Suspense,null,{default:vue.withCtx(()=>N[3]||(N[3]=[vue.createElementVNode("div",{id:"detail-container"},[vue.createElementVNode("gmp-place-details",{id:"placeDetails",style:{display:"none"}},[vue.createElementVNode("gmp-place-details-place-request",{id:"placeRequest"}),vue.createElementVNode("gmp-place-content-config",null,[vue.createElementVNode("gmp-place-address"),vue.createElementVNode("gmp-place-rating"),vue.createElementVNode("gmp-place-type"),vue.createElementVNode("gmp-place-price"),vue.createElementVNode("gmp-place-accessible-entrance-icon"),vue.createElementVNode("gmp-place-opening-hours"),vue.createElementVNode("gmp-place-website"),vue.createElementVNode("gmp-place-phone-number"),vue.createElementVNode("gmp-place-summary"),vue.createElementVNode("gmp-place-type-specific-highlights"),vue.createElementVNode("gmp-place-reviews"),vue.createElementVNode("gmp-place-feature-list"),vue.createElementVNode("gmp-place-media",{"lightbox-preferred":""}),vue.createElementVNode("gmp-place-attribution",{"light-scheme-color":"gray","dark-scheme-color":"gray"})])])],-1)])),_:1,__:[3]}))])],2),vue.unref(X)&&G.value==="noCookie"?(vue.openBlock(),vue.createBlock(vue.unref(LoadingSpinner.VsWarning),{key:0,type:"cookie",class:vue.normalizeClass(["vs-map__error vs-map__error--no-cookies",vue.unref(X)?"d-block":"d-none"]),"data-test":"vs-map__warning--no-cookies"},{"button-text":vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.cookieBtnText),1)]),default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(t.noCookiesMessage)+" ",1)]),_:1},8,["class"])):vue.createCommentVNode("",!0),vue.unref(X)&&G.value==="noJS"?(vue.openBlock(),vue.createBlock(vue.unref(LoadingSpinner.VsWarning),{key:1,"data-test":"vs-map__warning--no-js",class:"vs-map__warning vs-map__warning--no-js"},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(e.noJsMessage),1)]),_:1})):vue.createCommentVNode("",!0)]))}};exports.VsBody=LoadingSpinner.VsBody;exports.VsButton=LoadingSpinner.VsButton;exports.VsButtonToggleGroup=LoadingSpinner.VsButtonToggleGroup;exports.VsCol=LoadingSpinner.VsCol;exports.VsContainer=LoadingSpinner.VsContainer;exports.VsHeading=LoadingSpinner.VsHeading;exports.VsIcon=LoadingSpinner.VsIcon;exports.VsImg=LoadingSpinner.VsImg;exports.VsLoadingSpinner=LoadingSpinner.VsLoading;exports.VsRow=LoadingSpinner.VsRow;exports.VsWarning=LoadingSpinner.VsWarning;exports.VsAccordion=VsAccordion;exports.VsAccordionItem=VsAccordionItem;exports.VsAccordionToggle=VsAccordionToggle;exports.VsAddress=Address;exports.VsAlert=VsAlert;exports.VsArticle=Article;exports.VsArticleDetails=ArticleDetails;exports.VsArticleSection=ArticleSection;exports.VsArticleSidebar=ArticleSidebar;exports.VsBackToTop=_sfc_main$2k;exports.VsBadge=VsBadge;exports.VsBanner=Banner;exports.VsBreadcrumb=Breadcrumb;exports.VsBreadcrumbItem=BreadcrumbItem;exports.VsCannedSearch=CannedSearch;exports.VsCaption=Caption;exports.VsCarbonCalculator=CarbonCalculator;exports.VsCard=VsCard;exports.VsCardGroup=VsCardGroup;exports.VsCarousel=VsCarousel;exports.VsCarouselSlide=CarouselSlide;exports.VsCheckbox=VsCheckbox;exports.VsDescriptionList=DescriptionList;exports.VsDescriptionListItem=DescriptionListItem;exports.VsDetail=VsDetail;exports.VsDropdown=VsDropdown;exports.VsDropdownItem=VsDropdownItem;exports.VsEmbedWrapper=EmbedWrapper;exports.VsEventCard=EventCard;exports.VsFederatedSearch=_sfc_main$2;exports.VsFederatedSearchInput=_sfc_main$4;exports.VsFilter=_sfc_main$1A;exports.VsFilterSection=_sfc_main$1z;exports.VsFooter=Footer;exports.VsFooterAccordionItem=FooterAccordionItem;exports.VsFooterCopyright=FooterCopyright;exports.VsFooterNavListItem=FooterNavListItem;exports.VsFooterSocialItem=FooterSocialItem;exports.VsFooterSocialMenu=FooterSocialMenu;exports.VsFooterUtilityList=FooterUtilityList;exports.VsForm=Form;exports.VsGlobalMenu=GlobalMenu;exports.VsGlobalMenuLanguage=GlobalMenuLanguage;exports.VsGlobalMenuLanguageItem=GlobalMenuLanguageItem;exports.VsHeroSection=HeroSection;exports.VsHtmlError=HtmlError;exports.VsIconList=IconList;exports.VsIconListItem=IconListItem;exports.VsIllustratedMap=IllustratedMap;exports.VsImageWithCaption=ImageWithCaption;exports.VsInput=VsInput;exports.VsItinerary=Itinerary;exports.VsItineraryBorderOverlapWrapper=ItineraryBorderOverlapWrapper;exports.VsItineraryDay=ItineraryDay;exports.VsItineraryStop=ItineraryStop;exports.VsItineraryStopInfo=ItineraryStopInfo;exports.VsItineraryTips=ItineraryTips;exports.VsLink=VsLink;exports.VsLinkList=VsLinkList;exports.VsLinkListItem=LinkListItem;exports.VsList=VsList;exports.VsListicleItem=ListicleItem;exports.VsMainMap=_sfc_main;exports.VsMediaCaption=VsMediaCaption;exports.VsMegaNavAccordionItem=MegaNavAccordionItem;exports.VsMegaNavDropdownContainer=MegaNavDropdownContainer;exports.VsMegaNavFeaturedEvent=MegaNavFeaturedEvent;exports.VsMegaNavFeaturedItem=MegaNavFeaturedItem;exports.VsMegaNavList=MegaNavList;exports.VsMegaNavListItem=MegaNavListItem;exports.VsMegaNavStaticLink=MegaNavStaticLink;exports.VsMegalinkLinkList=MegalinkLinkList;exports.VsMegalinkMultiImage=MegalinkMultiImage;exports.VsMegalinkSingleImage=MegalinkSingleImage;exports.VsMegalinks=Megalinks;exports.VsMeganav=MegaNav;exports.VsModal=Modal;exports.VsModuleWrapper=VsModuleWrapper;exports.VsNumberInput=VsNumberInput;exports.VsPageIntro=PageIntro;exports.VsPagination=_sfc_main$D;exports.VsPanel=Panel;exports.VsProductSearch=ProductSearch;exports.VsProgressBar=VsProgressBar;exports.VsQuote=Quote;exports.VsRadioButton=VsRadioButton;exports.VsRecaptcha=VsRecaptcha;exports.VsSectionHeader=SectionHeader;exports.VsSelect=VsSelect;exports.VsSiteSearch=VsSiteSearch;exports.VsSiteSearchForm=VsSiteSearchForm;exports.VsSkiScotlandCard=SkiScotlandCard;exports.VsSkiScotlandStatus=SkiScotlandStatus;exports.VsSkipTo=SkipTo;exports.VsSocialCreditLink=SocialCreditLink;exports.VsSocialShare=SocialShare;exports.VsSocialShareItem=SocialShareItem;exports.VsSpotlightSection=SpotlightSection;exports.VsStretchedLinkCard=VsStretchedLinkCard;exports.VsStretchedLinkPanel=VsStretchedLinkPanels;exports.VsStyledList=_sfc_main$g;exports.VsStyledListItem=_sfc_main$f;exports.VsSummaryBoxDistanceListItem=SummaryBoxDistanceListItem;exports.VsSummaryBoxList=SummaryBoxList;exports.VsSummaryBoxListItem=SummaryBoxListItem;exports.VsSvg=VsSvg;exports.VsSvgLink=VsSvgLink;exports.VsTabItem=TabItem;exports.VsTable=VsTable;exports.VsTableBody=VsTableBody;exports.VsTableDataCell=VsTableDataCell;exports.VsTableFooter=VsTableFooter;exports.VsTableHead=VsTableHead;exports.VsTableHeaderCell=VsTableHeaderCell;exports.VsTableRow=VsTableRow;exports.VsTabs=Tabs;exports.VsTag=Tag;exports.VsTagManagerWrapper=TagManagerWrapper;exports.VsTextarea=VsTextarea;exports.VsToggleButton=VsToggleButton;exports.VsTooltip=VsTooltip;exports.VsTourismInfo=TourismInfo;exports.VsVideo=Video;exports.VsVideoCaption=VsVideoCaption;
|