PageSourceSearch

https://www.cantref.com/app/brands/default/4448.e3136ee78368569712ca.js

js cantref.com collected 2026-09-29 02:39:36 UTC 7,922 bytes, 1 lines download raw bytes

1"use strict";(globalThis.webpackChunkloop_web=globalThis.webpackChunkloop_web||[]).push([[4448],{391(t,e,n){n.d(e,{_:()=>i});const i={SM:576,MD:768,LG:992,XL:1200,XXL:1400}},4448(t,e,n){n.r(e),n.d(e,{createFrom:()=>u});var i=n(4843),s=n(498),o=n(6032),a=n(403),h=n(391);const d=window.calendarMonthEndpoint,r=window.calendarDetailEndpoint;const l=/ID_PLACEHOLDER/gi;class p{constructor(t){this.el=t,this.id=t.getAttribute("id"),this.detailsAnimating=!1,this.attractionID=t.dataset.attractionId,this.homePageID=t.dataset.homePageId,this.locations=t.dataset.locations,this.areas=t.dataset.areas,this.contentWrapper=t.querySelector(".opening-times--layout"),this.monthsControls={dropdownToggle:t.querySelector(".opening-times--controls .dropdown .dropdown-toggle"),dropdownLinks:t.querySelectorAll(".opening-times--controls .dropdown .dropdown-menu a.dropdown-item"),prevBtn:t.querySelector(".opening-times--controls .prev-month"),nextBtn:t.querySelector(".opening-times--controls .next-month")},this.monthOptions=[],this.monthOptionIndex=0,this.monthsControls.dropdownLinks.forEach((t,e)=>{this.monthOptions.push(new Date(t.dataset.date+"T00:00:00.000")),t.classList.contains("active")&&(this.monthOptionIndex=e),t.onclick=t=>{t.preventDefault(),this.loadMonth(e)}}),this.updateControls(),this.monthsControls.prevBtn.onclick=t=>{t.preventDefault(),this.loadMonth(this.monthOptionIndex-1)},this.monthsControls.nextBtn.onclick=t=>{t.preventDefault(),this.loadMonth(this.monthOptionIndex+1)},this.monthContent=new c(this.contentWrapper,this.attractionID,this.homePageID,this.locations,this.areas)}updateControls(){if(this.monthOptionIndex>0){this.monthsControls.prevBtn.removeAttribute("disabled"),this.monthsControls.prevBtn.classList.remove("disabled");let t=(0,s.A)((0,o.A)(this.monthOptions[this.monthOptionIndex-1],1),{representation:"date"});this.monthsControls.prevBtn.setAttribute("href","?month="+t+"&attractionId="+this.attractionID),this.monthsControls.prevBtn.setAttribute("data-date",t)}else this.monthsControls.prevBtn.classList.add("disabled"),this.monthsControls.prevBtn.setAttribute("disabled","disabled"),this.monthsControls.prevBtn.setAttribute("href","");if(this.monthsControls.dropdownToggle.innerHTML=(0,i.A)(this.monthOptions[this.monthOptionIndex],"MMMM y"),this.monthsControls.dropdownLinks.forEach((t,e)=>{t.classList.toggle("active",e==this.monthOptionIndex)}),this.monthOptionIndex<this.monthOptions.length-1){this.monthsControls.nextBtn.removeAttribute("disabled"),this.monthsControls.nextBtn.classList.remove("disabled");let t=(0,s.A)((0,o.A)(this.monthOptions[this.monthOptionIndex+1],1),{representation:"date"});this.monthsControls.nextBtn.setAttribute("href","?month="+t+"&attractionId="+this.attractionID),this.monthsControls.nextBtn.setAttribute("data-date",t)}else this.monthsControls.nextBtn.classList.add("disabled"),this.monthsControls.nextBtn.setAttribute("disabled","disabled"),this.monthsControls.nextBtn.setAttribute("href","")}loadMonth(t){let e=this;if(t!=this.monthOptionIndex){let n=new XMLHttpRequest,i=`${d}?month=${(0,s.A)(this.monthOptions[t],{representation:"date"})}&attractionId=${this.attractionID}`;this.monthContent.key&&(i+=`&keyExpanded=${this.monthContent.key.expanded}`),n.open("GET",i,!0),n.onreadystatechange=function(){4==n.readyState&&200==n.status&&(e.contentWrapper.style.opacity=0,e.contentWrapper.ontransitionend=i=>{if(i.target==e.contentWrapper){e.contentWrapper.ontransitionend=null;let i=n.responseText.replaceAll(l,e.id);e.contentWrapper.innerHTML=i,e.contentWrapper.style.opacity=1,e.monthOptionIndex=t,e.updateControls(),(0,a.ZB)(e.monthContent.watcher),e.monthContent=null,e.monthContent=new c(e.contentWrapper,e.attractionID,e.homePageID,e.locations,e.areas)}})},n.send()}}}class c{constructor(t,e,n,i,s){this.el=t,this.attractionID=e,this.homePageID=n,this.locations=i,this.areas=s,this.key=null;let o=t.querySelector(".opening-times--key");if(null!=o){let e=t.querySelector(".opening-times--key-panel--content");this.key={panel:o,toggle:o.querySelector(".opening-times--key-panel--content--toggle"),content:e,expanded:e.classList.contains("expanded"),desktopSideLayout:t.classList.contains("desktop-key-left")||t.classList.contains("desktop-key-right")},this.key.expanded||this.toggleKeyContent(!1),this.key.toggle.addEventListener("click",()=>{this.key.expanded?this.toggleKeyContent(!1):this.toggleKeyContent(!0)})}this.dayDetail={el:t.querySelector(".day-detail"),expanded:!1,wrapper:t.querySelector(".day-detail--wrapper"),inner:t.querySelector(".day-detail--content"),closeButton:t.querySelector(".day-detail--wrapper button.close")},this.buttons=[],this.buttonActiveIndex=-1,t.querySelectorAll("button[data-date]").forEach((t,e)=>{let n={el:t,index:e,date:t.dataset.date,expanded:!1,order:t.parentElement.style.order};n.el.onclick=t=>{this.detailsAnimating||(n.expanded?(this.closeDetails(),this.buttonActiveIndex=-1):(this.dayDetail.expanded?(this.buttons[this.buttonActiveIndex].expanded=!1,this.buttons[this.buttonActiveIndex].el.setAttribute("aria-expanded",!1),this.closeDetails(()=>{this.openDetails(n)})):this.openDetails(n),n.expanded=!0,n.el.setAttribute("aria-expanded",!0),this.buttonActiveIndex=n.index))},this.buttons.push(n)}),this.dayDetail.closeButton.onclick=()=>{this.closeDetails(),this.buttons[this.buttonActiveIndex].el.focus()},this.watcherLastWidth=0,this.watcher=({size:t})=>{t.changed&&(this.dayDetail.expanded&&(this.fitToContent(),(this.watcherLastWidth<h._.MD&&t.x>=h._.MD||this.watcherLastWidth>=h._.MD&&t.x<h._.MD)&&this.updateOrder(this.buttons[this.buttonActiveIndex])),this.watcherLastWidth=t.x)},(0,a.ck)(this.watcher),this.dayDetail.el.style.order=1e3}toggleKeyContent(t){window.innerWidth,h._.LG;t?(this.key.content.style.display="block",this.key.expanded=!0,this.key.toggle.setAttribute("aria-expanded",!0),this.key.content.removeAttribute("aria-hidden")):(this.key.content.style.display="none",this.key.expanded=!1,this.key.toggle.setAttribute("aria-expanded",!1),this.key.content.setAttribute("aria-hidden","true"))}updateOrder(t){if(null==t)return;let e=t.order;window.innerWidth>=h._.MD&&(e=7*Math.ceil(e/7)),this.dayDetail.el.style.order=e}openDetails(t){this.updateOrder(t),async function(t,e,n,i,s){return await(await window.fetch(r+"?date="+t+"&attractionId="+e+"&homePageId="+n+"&locations="+i+"&areas="+s)).text()}(t.date,this.attractionID,this.homePageID,this.locations,this.areas).then(t=>{this.dayDetail.inner.innerHTML=t,this.detailsAnimating=!0,this.dayDetail.el.setAttribute("aria-expanded",!0),this.dayDetail.el.removeAttribute("aria-hidden"),this.dayDetail.closeButton.setAttribute("tabindex","0"),this.dayDetail.el.ontransitionend=t=>{if(t.target==this.dayDetail.el){this.dayDetail.el.style.maxHeight="none";let t=this.dayDetail.inner.querySelector("a, button");null!=t&&t.focus(),this.detailsAnimating=!1,this.dayDetail.el.ontransitionend=null}},this.fitToContent(),this.dayDetail.expanded=!0})}closeDetails(t){this.detailsAnimating=!0,this.dayDetail.expanded=!1,this.dayDetail.el.setAttribute("aria-expanded",!1),this.dayDetail.el.setAttribute("aria-hidden","true"),this.dayDetail.closeButton.setAttribute("tabindex","-1"),this.buttons[this.buttonActiveIndex].expanded=!1,this.buttons[this.buttonActiveIndex].el.setAttribute("aria-expanded",!1),window.requestAnimationFrame(()=>{this.dayDetail.el.style.maxHeight=this.dayDetail.wrapper.offsetHeight+"px",window.requestAnimationFrame(()=>{this.dayDetail.el.ontransitionend=e=>{e.target==this.dayDetail.el&&"max-height"==e.propertyName&&(this.detailsAnimating=!1,"function"==typeof t?t():this.dayDetail.el.style.order="100",this.dayDetail.el.ontransitionend=null)},this.dayDetail.el.style.maxHeight=0})})}fitToContent(){this.dayDetail.el.style.maxHeight!=this.dayDetail.wrapper.offsetHeight+"px"&&(this.dayDetail.el.style.maxHeight=this.dayDetail.wrapper.offsetHeight+"px")}}function u(t){t.forEach(t=>{1===t.nodeType&&new p(t)})}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.