function _classCallCheck(n,t){if(!(n instanceof t))throw new TypeError("Cannot call a class as a function");}function _possibleConstructorReturn(n,t){if(!n)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t&&(typeof t=="object"||typeof t=="function")?t:n}function _inherits(n,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof t);n.prototype=Object.create(t&&t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}});t&&(Object.setPrototypeOf?Object.setPrototypeOf(n,t):n.__proto__=t)}function LocationItem(n){return React.createElement("option",{"data-picker-item":n.cinemaID,value:n.useRedirect?n.cinemaFriendlyName:n.cinemaID},n.cinemaName)}function ExperienceItem(n){return React.createElement("span",{className:n.name},n.name)}function SessionNotBookable(n){function r(){alert(i)}var i="This session isn't bookable",t;return typeof n.bookableFrom!="undefined"&&n.bookableFrom!==null&&(t=n.bookableFrom.split("T")[0].split("-"),t.length===3&&(i="Coming soon! Ticket sales start on "+("0"+t[1]).slice(-2)+"/"+("0"+t[2]).slice(-2)+"/"+t[0].slice(-2))),React.createElement("button",{type:"button",className:"session session-notbookable btn-outline disabled",onClick:r},React.createElement("span",null,n.startTime))}function SessionExpired(n){return React.createElement("div",{className:"session session-expired btn-outline disabled"},React.createElement("span",null,n.startTime))}function SessionSoldOut(n){return React.createElement("div",{className:"session session-soldout btn-outline disabled"},React.createElement("span",null,n.startTime))}function SessionBookableQb(n){var i="/booking/start?session="+n.scheduleid,t;return n.switchToThirdPartyTicketing[0]&&(i=n.thirdPartyBookingURL[0]+"&irn="+n.ungroupedFilmExternalId[0]+"&a="+n.thirdPartyAffiliateId[0]+"&csid="+n.thirdPartyExhibitorId[0]+"&ccode="+n.thirdPartyChainId[0]+"&date="+n.time.replace("T","+")),t="session session-link btn-outline",n.LimitedAvailability&&(t+=" session-almostfull"),React.createElement("a",{href:i,title:n.displayTime,className:t,tabIndex:"2"},n.displayTime)}function getSessionItemsByDate(n,t,i,r,u,f){var e=[],o=pc.cinemas.filter(function(n){return n.CinemaId==r}).map(function(n){return n.SwitchToThirdPartyTicketing})||!1,s=pc.cinemas.filter(function(n){return n.CinemaId==r}).map(function(n){return n.ThirdPartyAffiliateId})||null,h=pc.cinemas.filter(function(n){return n.CinemaId==r}).map(function(n){return n.ThirdPartyBookingURL})||null,c=pc.cinemas.filter(function(n){return n.CinemaId==r}).map(function(n){return n.ThirdPartyChainId})||null,l=pc.cinemas.filter(function(n){return n.CinemaId==r}).map(function(n){return n.ThirdPartyExhibitorId})||null;return n&&n.length>0&&n.forEach(function(n){n.NotBookable?e.push(React.createElement(SessionNotBookable,{title:t,displayDate:i,startTime:n.StartTime,experiences:n.Experience,key:n.Scheduleid,bookableFrom:f})):n.SessionExpired?e.push(React.createElement(SessionExpired,{title:t,displayDate:i,startTime:n.StartTime,experiences:n.Experience,key:n.Scheduleid})):n.SoldOut?e.push(React.createElement(SessionSoldOut,{title:t,displayDate:i,startTime:n.StartTime,experiences:n.Experience,key:n.Scheduleid})):e.push(React.createElement(SessionBookable,{title:t,displayDate:i,startTime:n.StartTime,fullDate:u,experiences:n.Experience,scheduleid:n.Scheduleid,ungroupedFilmExternalId:n.UngroupedFilmExternalId,switchToThirdPartyTicketing:o,thirdPartyAffiliateId:s,thirdPartyBookingURL:h,thirdPartyChainId:c,thirdPartyExhibitorId:l,key:n.Scheduleid,LimitedAvailability:n.LimitedAvailability}))}),e}function getSessionItemsByAttribute(n,t,i,r,u,f){var e=[];return n&&n.length>0&&n.forEach(function(n){var o=getSessionItemsByDate(n.Times,t,i,r,u,f),s=n.ExperienceAttributes.map(function(n){return n.Name}).join(" | ");e.push(React.createElement(SessionAttributes,{title:s,sessionItems:o,key:e.length}))}),e}function DateButton(n){var t=dateObjFromString(n.selectedDate),i=dateObjFromString(n.date),r=t.getTime()===i.getTime()?"":"dn_mobile";return React.createElement("button",{className:t.getTime()===i.getTime()?"active "+r:""+r,onClick:function(){return n.selectFunction(n.date)},tabIndex:n.tabIndex},React.createElement("span",{className:"displayBtnDate"},n.displayDate),React.createElement("span",{className:"displayBtnDay"},n.day))}function DateFilters(n){var s=new Date,a=pc.labels.monthShort[s.getMonth()]+" "+s.getDate(),h=[],e=0,c,t,l,r,o;typeof n.availableDates!="undefined"&&n.availableDates!==null&&(e=n.availableDates.length);var v=n.type+"-datepicker-btn",y="picker-"+n.type+"-date",u=e>7?7:e,f=e,i=0;if(u>0)for(c=dateObjFromString(n.selectedDate),t=0;t<n.availableDates.length;t++)l=dateObjFromString(n.availableDates[t].Date),c.getTime()===l.getTime()&&t>3&&t<f&&(u=t+4,i=t-3,u>f&&(u=f,f>7&&(i=f-7)));if(n.availableDates&&n.availableDates.length>0)for(i;i<u;i++)r=dateObjFromString(n.availableDates[i].Date),o=pc.labels.monthShort[r.getMonth()]+" "+r.getDate(),h.push(React.createElement(DateButton,{date:r.getFullYear()+"-"+("0"+(r.getMonth()+1)).slice(-2)+"-"+r.getDate(),selectedDate:n.selectedDate,selectFunction:n.selectFunction,day:o===a?"Today":pc.labels.dayShort[r.getDay()],displayDate:o,key:i,tabIndex:n.tabIndex}));return React.createElement("div",{className:"rowSpacingBottom"},typeof n.availableDates!="undefined"&&n.availableDates!==null&&n.availableDates.length>0?React.createElement("div",{className:"filterDate"},h,React.createElement("button",{id:v,"data-datepicker-btn":"Select a date","data-date":n.selectedDate,"aria-haspopup":"true","aria-label":"More Dates","aria-expanded":"false",tabIndex:n.tabIndex},React.createElement("span",{className:"displayBtnDate"},React.createElement("i",{className:"fas fa-angle-double-right"})),React.createElement("span",{className:"displayBtnDay"},"MORE DATES"))):"")}function ExpFilterItemQB(n){return React.createElement("option",{value:n.attrID,"data-picker-item":n.attrID},n.attrName)}var _createClass=function(){function n(n,t){for(var i,r=0;r<t.length;r++)i=t[r],i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(n,i.key,i)}return function(t,i,r){return i&&n(t.prototype,i),r&&n(t,r),t}}(),LogDateTime=function(n,t,i){var r=new Date,u=r.toLocaleString("en-GB")+" => Component: "+n+" || Function: "+t+" || Message: "+i;console.log(u)},dateObjFromString=function(n){var t,i;return n.indexOf("T")&&(n=n.split("T")[0]),t=n.split("-"),i=new Date,t.length!==3&&(t=[i.getFullYear(),i.getMonth()+1,i.getDate()]),new Date(parseInt(t[0]),parseInt(t[1])-1,parseInt(t[2]))},checkModifiers=function(n,t){var i=[],r=[];return n.forEach(function(n){i.push(n.Id)}),i.sort(),t.forEach(function(n){r.push(n.Id)}),i.join()===r.join()},collapseSection=function(n){var t=n.scrollHeight,i=n.style.transition;n.style.transition="";requestAnimationFrame(function(){n.style.height=t+"px";n.style.transition=i;requestAnimationFrame(function(){n.style.height="0px";n.style.overflow="hidden"})});n.setAttribute("data-collapsed","true")},expandSection=function(n){var t=n.scrollHeight;n.style.height=t+"px";n.addEventListener("transitionend",function(){n.removeEventListener("transitionend",arguments.callee);n.style.height="auto";n.style.overflow="unset"});n.setAttribute("data-collapsed","false")},CinemaSelectQB=function(n){function t(n){_classCallCheck(this,t);var i=_possibleConstructorReturn(this,Object.getPrototypeOf(t).call(this,n));return i.handleChange=i.handleChange.bind(i),i}return _inherits(t,n),_createClass(t,[{key:"handleChange",value:function(n){this.props.selectFunction({selectedCinemaID:n.target.value})}},{key:"render",value:function(){var t=this,n=[];return this.props.locations.forEach(function(i){n.push(React.createElement(LocationItem,{location:i,cinemaName:i.CinemaName,cinemaFriendlyName:i.CinemaUrlFriendlyName,cinemaID:i.CinemaId,selectedCinemaName:t.props.selectedCinemaName,key:i.CinemaId}))}),React.createElement("div",{className:"customSelect"},React.createElement("select",{id:"qbChooseTheater",className:"formField",tabIndex:"2",onChange:this.handleChange},React.createElement("option",{value:"0"},"Please Select Theater"),n))}}]),t}(React.Component),ExperiencesList=function(n){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,Object.getPrototypeOf(t).apply(this,arguments))}return _inherits(t,n),_createClass(t,[{key:"render",value:function(){var n=[];return this.props.experiences&&this.props.experiences.length>0&&this.props.experiences.forEach(function(t,i){activeAttributes.filter(function(n){return n.Name===t.Name}).length>0&&n.push(React.createElement(ExperienceItem,{name:t.Name,key:i}))}),React.createElement("div",null,n)}}]),t}(React.Component),SessionBookable=function(n){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,Object.getPrototypeOf(t).apply(this,arguments))}return _inherits(t,n),_createClass(t,[{key:"render",value:function(){var t="/booking/start?session="+this.props.scheduleid,n;return this.props.switchToThirdPartyTicketing[0]&&(t=this.props.thirdPartyBookingURL[0]+"&irn="+this.props.ungroupedFilmExternalId+"&a="+this.props.thirdPartyAffiliateId[0]+"&csid="+this.props.thirdPartyExhibitorId[0]+"&ccode="+this.props.thirdPartyChainId[0]+"&date="+this.props.fullDate+"+"+convertTo24Hour(this.props.startTime)),n="session session-link btn-outline",this.props.LimitedAvailability&&(n+=" session-almostfull"),React.createElement("a",{href:t,title:this.props.displayDate+" at "+this.props.startTime,"aria-label":this.props.startTime+", "+this.props.displayDate+" - "+this.props.title,className:n},this.props.startTime)}}]),t}(React.Component),SessionAttributes=function(n){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,Object.getPrototypeOf(t).apply(this,arguments))}return _inherits(t,n),_createClass(t,[{key:"render",value:function(){return React.createElement("div",{className:"sessionAttributesGroup"},React.createElement("div",{className:"sessionAttributesTitle"},this.props.title),React.createElement("div",null,this.props.sessionItems))}}]),t}(React.Component),SessionDates=function(n){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,Object.getPrototypeOf(t).apply(this,arguments))}return _inherits(t,n),_createClass(t,[{key:"render",value:function(){return React.createElement("div",{className:"sessions fc showtitle","data-sessions":!0,"data-sessions-date":this.props.newDate,"data-sessions-film":this.props.filmId},React.createElement("div",null,this.props.sessionItems))}}]),t}(React.Component),FilmSessionsQB=function(n){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,Object.getPrototypeOf(t).apply(this,arguments))}return _inherits(t,n),_createClass(t,[{key:"render",value:function(){var n=this,t=[],i=pc.cinemas.filter(function(t){return t.CinemaId===parseInt(n.props.selectedCinemaID)}).map(function(n){return n.SwitchToThirdPartyTicketing})||!1,r=pc.cinemas.filter(function(t){return t.CinemaId===parseInt(n.props.selectedCinemaID)}).map(function(n){return n.ThirdPartyAffiliateId})||null,u=pc.cinemas.filter(function(t){return t.CinemaId===parseInt(n.props.selectedCinemaID)}).map(function(n){return n.ThirdPartyBookingURL})||null,f=pc.cinemas.filter(function(t){return t.CinemaId===parseInt(n.props.selectedCinemaID)}).map(function(n){return n.ThirdPartyChainId})||null,e=pc.cinemas.filter(function(t){return t.CinemaId===parseInt(n.props.selectedCinemaID)}).map(function(n){return n.ThirdPartyExhibitorId})||null;return this.props.sessions&&this.props.sessions.length>0&&this.props.sessions.forEach(function(o){o.NotBookable?t.push(React.createElement(SessionNotBookable,{startTime:o.DisplayTime,key:o.Id,bookableFrom:n.props.bookableFrom})):o.SoldOut?t.push(React.createElement(SessionSoldOut,{startTime:o.DisplayTime,time:o.Time,scheduleid:o.Id,fullDate:n.props.selectedDate,key:o.Id})):o.SessionExpired||t.push(React.createElement(SessionBookableQb,{displayTime:o.DisplayTime,time:o.Time,scheduleid:o.Id,fullDate:n.props.selectedDate,ungroupedFilmExternalId:o.UngroupedFilmExternalId,switchToThirdPartyTicketing:i,thirdPartyAffiliateId:r,thirdPartyBookingURL:u,thirdPartyChainId:f,thirdPartyExhibitorId:e,key:o.Id,LimitedAvailability:o.LimitedAvailability}))}),React.createElement("div",null,this.props.display?React.createElement("div",{className:"gridRow no-padding"},React.createElement("div",{className:"gridCol-l-12 gridCol-m-12 gridCol-s-12 sessionsRow"},React.createElement("div",{className:"qbPanelFilmSessions"},t))):React.createElement("h3",{className:"dateText textCenter"},"Please select a Theater, Movie, Format and Date"))}}]),t}(React.Component),FilmSessionsQBByAttribute=function(n){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,Object.getPrototypeOf(t).apply(this,arguments))}return _inherits(t,n),_createClass(t,[{key:"render",value:function(){var n=this,t=[],i=pc.cinemas.filter(function(t){return t.CinemaId===parseInt(n.props.selectedCinemaID)}).map(function(n){return n.SwitchToThirdPartyTicketing})||!1,r=pc.cinemas.filter(function(t){return t.CinemaId===parseInt(n.props.selectedCinemaID)}).map(function(n){return n.ThirdPartyAffiliateId})||null,u=pc.cinemas.filter(function(t){return t.CinemaId===parseInt(n.props.selectedCinemaID)}).map(function(n){return n.ThirdPartyBookingURL})||null,f=pc.cinemas.filter(function(t){return t.CinemaId===parseInt(n.props.selectedCinemaID)}).map(function(n){return n.ThirdPartyChainId})||null,e=pc.cinemas.filter(function(t){return t.CinemaId===parseInt(n.props.selectedCinemaID)}).map(function(n){return n.ThirdPartyExhibitorId})||null;return this.props.sessions&&this.props.sessions.length>0&&this.props.sessions.forEach(function(o,s){var h=[];o.Schedules.forEach(function(t){t.NotBookable?h.push(React.createElement(SessionNotBookable,{startTime:t.DisplayTime,key:t.Id,bookableFrom:n.props.bookableFrom})):t.SoldOut?h.push(React.createElement(SessionSoldOut,{startTime:t.DisplayTime,time:t.Time,scheduleid:t.Id,fullDate:n.props.selectedDate,key:t.Id})):t.SessionExpired||h.push(React.createElement(SessionBookableQb,{displayTime:t.DisplayTime,time:t.Time,scheduleid:t.Id,fullDate:n.props.selectedDate,ungroupedFilmExternalId:t.UngroupedFilmExternalId,switchToThirdPartyTicketing:i,thirdPartyAffiliateId:r,thirdPartyBookingURL:u,thirdPartyChainId:f,thirdPartyExhibitorId:e,key:t.Id,LimitedAvailability:t.LimitedAvailability}))});t.push(React.createElement(SessionAttributeGroup,{sessions:h,attributes:o.Attributes,key:s}))}),React.createElement("div",null,this.props.display?React.createElement("div",{className:"gridRow no-padding"},React.createElement("div",{className:"gridCol-l-12 gridCol-m-12 gridCol-s-12 sessionsRow"},React.createElement("div",{className:"qbPanelFilmSessions"},t))):React.createElement("h3",{className:"dateText textCenter"},"Please select a Theater, Movie, Format and Date"))}}]),t}(React.Component),SessionAttributeGroup=function(n){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,Object.getPrototypeOf(t).apply(this,arguments))}return _inherits(t,n),_createClass(t,[{key:"render",value:function(){var n=this.props.attributes.map(function(n){return n.Name}).join(" | ");return React.createElement("div",{className:"qb-attribute-group"},React.createElement("h4",null,n),this.props.sessions)}}]),t}(React.Component),FilmSessionsShowtimes=function(n){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,Object.getPrototypeOf(t).apply(this,arguments))}return _inherits(t,n),_createClass(t,[{key:"render",value:function(){var n=this,t=[];return this.props.sessions&&this.props.sessions.length>0&&this.props.sessions.forEach(function(i){var r=n.props.splitByAttributes?getSessionItemsByAttribute(i.ExperienceTypes,n.props.title,i.DisplayDate,n.props.selectedCinemaID,i.NewDate,n.props.bookableFrom):getSessionItemsByDate(i.Times,n.props.title,i.DisplayDate,n.props.selectedCinemaID,i.NewDate);t.push(React.createElement(SessionDates,{displayDate:i.DisplayDate,newDate:i.NewDate,filmID:n.props.filmID,sessionItems:r,key:t.length}))}),React.createElement("div",{className:this.props.display?"":"dn"},t)}}]),t}(React.Component),ExpFiltersQB=function(n){function t(n){_classCallCheck(this,t);var i=_possibleConstructorReturn(this,Object.getPrototypeOf(t).call(this,n));return i.handleChange=i.handleChange.bind(i),i}return _inherits(t,n),_createClass(t,[{key:"handleChange",value:function(n){this.props.selectFunction({selectedFilter:parseInt(n.target.value)})}},{key:"render",value:function(){var n=[];return this.props.activeAttributes&&this.props.activeAttributes.length>0&&this.props.activeAttributes.forEach(function(t){n.push(React.createElement(ExpFilterItemQB,{attrName:t.Name,attrID:t.Id,key:t.Name}))}),React.createElement("div",{className:"customSelect "+(n.length===0?"disabled":"")},React.createElement("select",{id:"qbChooseFormat",className:"formField",tabIndex:"2",disabled:n.length===0,onChange:this.handleChange,value:this.props.selectedFilter},React.createElement("option",{value:"0"},"Please Select Format"),this.props.activeAttributes&&this.props.activeAttributes.length>0&&React.createElement("option",{value:"-1"},"All"),n))}}]),t}(React.Component)