function _toConsumableArray(n){if(Array.isArray(n)){for(var t=0,i=Array(n.length);t<n.length;t++)i[t]=n[t];return i}return Array.from(n)}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 Showtimes_FilterItem(n){return React.createElement("div",{className:"attribute-list-item "+n.cssClass},n.attributeName)}function Showtimes_FilmTrailer(n){return React.createElement("button",{type:"button","data-trailer-btn":n.trailer,"data-trailer-label":n.title+" trailer","aria-label":n.title+" trailer",className:"trailer-icon"},React.createElement("svg",null,React.createElement("use",{xlinkHref:"/css/libs/svg/icon-library.svg#trailer-icon"})))}function Showtimes_FilmsItemWithSessions(n){var e=n.trailer?React.createElement(Showtimes_FilmTrailer,{trailer:n.trailer,title:n.title}):null,i=n.prefixUrl+"/film-info/"+n.session.FriendlyName,r=parseInt(n.runTime),u=Math.floor(r/60),f=r%60,t="";return u>0&&(t+=u+"h "),f>0&&(t+=f+"m"),React.createElement("div",{className:"listing"},React.createElement("div",{className:"listing__poster"},React.createElement("div",{className:"poster"},React.createElement("a",{href:i,className:"poster__link","aria-label":n.title+" details"}),n.image&&React.createElement("img",{className:"poster__image",src:n.image,alt:n.title+" poster"}),React.createElement("div",{className:"poster__content"}),e)),React.createElement("div",{className:"listing__main"},React.createElement("div",{className:"listing__details"},React.createElement("h3",null,React.createElement("a",{href:i,"aria-label":n.title+" details"},n.title)),React.createElement("p",{className:"listing__details__info"},n.cert," • ",t)),React.createElement("div",{className:"listing__showtimes"},n.session.Cinemas!==undefined&&n.session.Cinemas.length>0?n.session.Cinemas.map(function(t,i){return React.createElement(Showtimes_SessionsList,{key:i,sessions:t.Sessions,cinemaName:t.CinemaName,selectedType:n.selectedType,display:!0,selectedCinemaId:n.selectedCinemaId,splitByAttributes:n.splitByAttributes,filmID:n.FilmId,showDate:!0,title:n.title,filterDate:n.filterDate,luxCinemaNodeIds:n.luxCinemaNodeIds,hasSeatGroups:n.hasSeatGroups,cmsAttributes:n.cmsAttributes})}):React.createElement("p",{className:"h3"},"No Showtimes Currently Available"))))}function Showtimes_FilmsItem(n){var e=n.trailer?React.createElement(Showtimes_FilmTrailer,{trailer:n.trailer,title:n.title}):null,i=n.prefixUrl+"/film-info/"+n.session.FriendlyName,r=parseInt(n.runTime),u=Math.floor(r/60),f=r%60,t="";return u>0&&(t+=u+"h "),f>0&&(t+=f+"m"),React.createElement("div",{className:"grid-listing__grid-item "+n.display},React.createElement("div",{className:"listing__poster"},React.createElement("div",{className:"poster"},React.createElement("a",{href:i,className:"poster__link","aria-label":n.title+" details"}),n.image&&React.createElement("img",{className:"poster__image",src:n.image,alt:n.title+" poster image"}),React.createElement("div",{className:"poster__content"}),e)),React.createElement("div",{className:"listing__details"},React.createElement("div",{className:"listing__title h5"},React.createElement("a",{href:i,"aria-label":n.title+" details"},n.title)),React.createElement("div",{className:"listing__detail-wrapper"},React.createElement("span",{className:"film-detail ml-05"},n.cert," • ",t))))}function Showtimes_TimesList(n){return React.createElement("div",{className:"times"},n.selectedCinemaId<0?React.createElement(ShowTimes_GroupList,{cinemas:n.data.Cinemas,display:!0,splitByAttributes:n.splitByAttributes,showDate:n.showDate,filmID:n.FilmId,title:n.title,hasSeatGroups:n.hasSeatGroups,cmsAttributes:n.cmsAttributes}):React.createElement(ShowTimes_SingleList,{cinemas:n.data.Cinemas,display:!0,splitByAttributes:n.splitByAttributes,showDate:n.showDate,filmID:n.FilmId,title:n.title,hasSeatGroups:n.hasSeatGroups,cmsAttributes:n.cmsAttributes}))}function ShowTimes_GroupList(n){var t=[];return n.cinemas.forEach(function(i,r){t.push(React.createElement("div",{key:r},React.createElement("p",{className:"icon-text icon-text--lrg h3"},React.createElement("svg",{className:"fill--primary"},React.createElement("use",{xlinkHref:"/css/libs/svg/icon-library.svg#location"})),"SHOWTIMES AT: ",React.createElement("b",{className:"ml-1"},i.CinemaName)),i.Sessions!==undefined&&i.Sessions.length>0?React.createElement(Showtimes_SessionsList,{sessions:i.Sessions,display:!0,splitByAttributes:n.splitByAttributes,showDate:n.showDate,filmID:n.filmId,title:n.title,hasSeatGroups:n.hasSeatGroups,cmsAttributes:n.cmsAttributes}):React.createElement("div",null,"There are no sessions available at this theater.")))}),React.createElement("div",null,t)}function ShowTimes_SingleList(n){return React.createElement("div",null,n.cinemas[0]!==undefined&&n.cinemas[0].Sessions.length>0?React.createElement(Showtimes_SessionsList,{sessions:n.cinemas[0].Sessions,display:!0,splitByAttributes:n.splitByAttributes,showDate:n.showDate,filmID:n.filmId,title:n.title,hasSeatGroups:n.hasSeatGroups,cmsAttributes:n.cmsAttributes}):React.createElement("div",null,"There are no sessions available at this theater."))}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}}(),Showtimes_FilterList=function(n){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,Object.getPrototypeOf(t).apply(this,arguments))}return _inherits(t,n),_createClass(t,[{key:"printViewings",value:function(n){n.preventDefault();var i=document.getElementById("print"),t=document.getElementById("ifmcontentstoprint").contentWindow;t.document.open();t.document.write(i.innerHTML);t.document.close();t.focus();t.print()}},{key:"render",value:function(){var t=this,n=[];return this.props.cmsAttributes&&this.props.cmsAttributes.length>0&&this.props.cmsAttributes.forEach(function(t,i){n.push(React.createElement(Showtimes_FilterItem,{attributeName:t.Title,attributeClass:t.CssClass,attributeImage:t.FilterImage.Src||null,key:i}))}),React.createElement("div",{className:"colorstyle-Blue stk-full-block"},React.createElement("div",{className:"gridRow"},React.createElement("div",{className:"gridCol-l-12 gridCol-m-12 gridCol-s-12"},React.createElement("span",{className:"showtimes-left-text"},"Showtimes Features:"),React.createElement("span",{className:"showtimes-right-text"},"Reserved seating available in all screens."),React.createElement("div",{className:"attributes-list "+(n.length>0?"":"dn")},n))),this.props.showPrintButton&&React.createElement("div",{className:"gridRow mt-1 ta_c ta_r--xs"},React.createElement("a",{href:"#0",className:"tt_u",onClick:function(n){return t.printViewings(n)}},React.createElement("small",null,"Print Showtimes"),React.createElement("img",{src:"/Images/printer-icon.svg",className:"icon icon--small ml-1",alt:"print icon"}))))}}]),t}(React.Component),Showtimes_FiltersPortal=function(n){function t(n){_classCallCheck(this,t);var i=_possibleConstructorReturn(this,Object.getPrototypeOf(t).call(this,n));return i.el=document.getElementById("stackedFilterSelector"),i}return _inherits(t,n),_createClass(t,[{key:"render",value:function(){return this.el?ReactDOM.createPortal(React.createElement(Showtimes_FilterList,{cmsAttributes:this.props.cmsAttributes,showPrintButton:this.props.showPrintButton,selectedAttribute:this.props.selectedAttribute,handleFilterSelect:this.props.handleFilterSelect}),this.el):null}}]),t}(React.Component),Showtimes_DatePortal=function(n){function t(n){_classCallCheck(this,t);var i=_possibleConstructorReturn(this,Object.getPrototypeOf(t).call(this,n));return i.el=document.getElementById("stackedDatePicker"),i}return _inherits(t,n),_createClass(t,[{key:"render",value:function(){return this.el?ReactDOM.createPortal(React.createElement(Shared_DateFilter,{isHome:this.props.isHome,availableDates:this.props.availableDates,filterDate:this.props.filterDate,filterDateDisplay:this.props.filterDateDisplay,handleNowShowing:this.props.handleNowShowing,handleEventMovies:this.props.handleEventMovies,handleComingSoon:this.props.handleComingSoon,selectFunction:this.props.selectFunction,handleClick:this.props.handleClick}),this.el):null}}]),t}(React.Component),Showtimes_FilmsList=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,r){var u=n.props.placeholder;i.MediaItems.Poster&&(u=pc.url.blobStorage+(i.MediaItems.Poster.replace(/^https?:/,"")+"?width=360"));n.props.isHome?t.push(React.createElement(Showtimes_FilmsItem,{session:i,display:r>=n.props.filmsToShow?"dn":"active",title:i.Title,image:u,filmID:i.FilmId,cert:i.Cert,runTime:i.RunTime,trailer:i.Trailer||i.MediaItems.YouTubeTrailer||null,key:r,prefixUrl:n.props.prefixUrl})):t.push(React.createElement(Showtimes_FilmsItemWithSessions,{session:i,display:r>=n.props.filmsToShow?"dn":"active",title:i.Title,splitByAttributes:n.props.splitByAttributes,image:u,filmID:i.FilmId,cert:i.Cert,runTime:i.RunTime,trailer:i.Trailer||i.MediaItems.YouTubeTrailer||null,selectedType:n.props.selectedType,selectedCinemaId:n.props.selectedCinemaId,key:r,filterDate:n.props.filterDate,prefixUrl:n.props.prefixUrl,luxCinemaNodeIds:n.props.luxCinemaNodeIds,hasSeatGroups:n.props.hasSeatGroups,cmsAttributes:n.props.cmsAttributes}))}),React.createElement(React.Fragment,null,t)}}]),t}(React.Component),Showtimes_SessionsList=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,u,f;n.props.hasSeatGroups?(i.GroupWithSeats&&i.GroupWithSeats.length>0&&(r=getSessionItemsByDate(i.GroupWithSeats,n.props.title,i.DisplayDate,n.props.selectedCinemaId,i.NewDate),r.length>0&&t.push(React.createElement(SessionsDates_Wrapper,{displayDate:i.DisplayDate,newDate:i.NewDate,filmID:n.props.filmID,sessionItems:r,showDate:n.props.showDate,key:t.length}))),i.GroupNoSeats&&i.GroupNoSeats.length>0&&(u=getSessionItemsByDate(i.GroupNoSeats,n.props.title,i.DisplayDate,n.props.selectedCinemaId,i.NewDate),u.length>0&&t.push(React.createElement(SessionsDates_Wrapper,{displayDate:i.DisplayDate,newDate:i.NewDate,filmID:n.props.filmID,sessionItems:u,showDate:n.props.showDate,key:t.length})))):(f=n.props.splitByAttributes?getSessionItemsByAttribute(n.props.cmsAttributes,i.ExperienceTypes,n.props.title,i.DisplayDate,n.props.selectedCinemaId,i.NewDate):getSessionItemsByDate(i.Times,n.props.title,i.DisplayDate,n.props.selectedCinemaId,i.NewDate),f.length>0&&t.push(React.createElement(SessionsDates_Wrapper,{displayDate:i.DisplayDate,newDate:i.NewDate,filmID:n.props.filmID,sessionItems:f,showDate:n.props.showDate,key:t.length})))}),React.createElement("div",{className:t.length>0?"":"dn"},this.props.selectedType===CinemaSelectorSelectedType.CinemaGroup&&this.props.cinemaName!==undefined?React.createElement("p",{className:"icon-text icon-text--lrg h3"},React.createElement("svg",{className:"fill--primary"},React.createElement("use",{xlinkHref:"/css/libs/svg/icon-library.svg#location"})),"SHOWTIMES AT: ",React.createElement("b",{className:"ml-1"},this.props.cinemaName)):"",t)}}]),t}(React.Component),Showtimes_FilmInfo=function(n){function t(n){_classCallCheck(this,t);var i=_possibleConstructorReturn(this,Object.getPrototypeOf(t).call(this,n)),r=new Date;return i.state={hasStateFromProps:!1,selectedCinemaId:-1,selectedCinemaGroupId:-1,selectedType:CinemaSelectorSelectedType.NotSelected,sessions:[],selectedAttribute:"-1",filmId:i.props.filmId,loading:!1,cmsAttributes:[],selectedDate:r.getFullYear()+"-"+("0"+(r.getMonth()+1)).slice(-2)+"-"+r.getDate(),splitByAttributes:!0,title:i.props.filmName,data:null,cinemaSelectorIsOpen:!1,hasSeatGroups:!1},i.getShowtimes=i.getShowtimes.bind(i),i.toggleLoading=i.toggleLoading.bind(i),i.handleCinemaSelectorSelect=i.handleCinemaSelectorSelect.bind(i),i.toggleCinemaSelector=i.toggleCinemaSelector.bind(i),i.handleToTopClick=i.handleToTopClick.bind(i),i}return _inherits(t,n),_createClass(t,null,[{key:"getDerivedStateFromProps",value:function(n,t){if(t.hasStateFromProps===!1){var r=getSelectedRegion(),u=getSelectedCinema(),f=CinemaSelectorSelectedType.NotSelected;n.selectedGroupId>0&&(f=CinemaSelectorSelectedType.CinemaGroup);u>0&&(f=CinemaSelectorSelectedType.Cinema);var e=parseInt(n.santaBarbaraId),o=parseInt(n.goletaId),i=[e,o].sort();return u===-1&&i.indexOf(r)>-1&&(r=parseInt("999"+i.join(""))),{hasStateFromProps:!0,selectedCinemaGroupId:r,selectedCinemaId:u,selectedType:f,mergedMarkets:[{label:n.labelSantaGoleta,markets:i,id:parseInt("999"+i.join("")),url:n.urlSantaGoleta}]}}return null}}]),_createClass(t,[{key:"componentDidMount",value:function(){this.getShowtimes()}},{key:"handleCinemaSelectorSelect",value:function(n,t,i){this.setState({cinemaSelectorIsOpen:!1,selectedCinemaId:n,selectedCinemaGroupId:t,selectedType:i})}},{key:"toggleCinemaSelector",value:function(n){this.setState({cinemaSelectorIsOpen:n})}},{key:"getShowtimes",value:function(){var n=this;(this.state.selectedCinemaGroupId>0||this.state.selectedCinemaId>0)&&function(){var i,t,r;if(n.toggleLoading(),i=[],n.state.selectedCinemaId===-1&&n.state.selectedCinemaGroupId.toString().indexOf("999")===0){for(t=0;t<n.state.mergedMarkets.length;t++)if(n.state.mergedMarkets[t].id===n.state.selectedCinemaGroupId){typeof n.state.mergedMarkets[t].markets!="undefined"&&n.state.mergedMarkets[t].markets!==null&&n.state.mergedMarkets[t].markets.length>0&&n.state.mergedMarkets[t].markets.forEach(function(t){var r={cinemaGroupId:n.state.selectedCinemaGroupId>0?"?cinemaGroupId="+t+"&":"?",cinemaNodeId:n.state.selectedCinemaId>0?"cinemaNodeId="+n.state.selectedCinemaId+"&":""};i.push(fetch("/Umbraco/Api/MovieApi/GetSingleFilmByRegion"+r.cinemaGroupId+r.cinemaNodeId+"urlFriendlyName="+n.props.urlFriendlyFilmName+"&sessionsOnCinemas=true").then(function(n){return n.json()}))});break}}else r={cinemaGroupId:n.state.selectedCinemaGroupId>0?"?cinemaGroupId="+n.state.selectedCinemaGroupId+"&":"?",cinemaNodeId:n.state.selectedCinemaId>0?"cinemaNodeId="+n.state.selectedCinemaId+"&":""},i.push(fetch("/Umbraco/Api/MovieApi/GetSingleFilmByRegion"+r.cinemaGroupId+r.cinemaNodeId+"urlFriendlyName="+n.props.urlFriendlyFilmName+"&sessionsOnCinemas=true").then(function(n){return n.json()}));Promise.all(i).then(function(t){var i=undefined,r,u,f;if(typeof t!="undefined"&&t!==null&&t.length>0)for(r=0;r<t.length;r++)typeof i=="undefined"?i=t[r]:typeof t[r].Cinemas!="undefined"&&t[r].Cinemas!==null&&(i.Cinemas=[].concat(_toConsumableArray(i.Cinemas),_toConsumableArray(t[r].Cinemas)),i.Cinemas.sort(function(n,t){return n.CinemaName>t.CinemaName?1:n.CinemaName<t.CinemaName?-1:0}));u=[];typeof i!="undefined"&&i!==null&&typeof i.Cinemas!="undefined"&&i.Cinemas!==null&&i.Cinemas.length>0&&typeof i.Cinemas[0].Sessions!="undefined"&&i.Cinemas[0].Sessions!==null&&i.Cinemas[0].Sessions.length>0&&(n.state.hasSeatGroups?(f=createSeatGroups([i]),u=f[0].Cinemas[0].Sessions):u=i.Cinemas[0].Sessions);u.length>0?n.setState({sessions:u,data:i,loading:!1}):n.setState({sessions:[],data:!1,loading:!1})})}()}},{key:"toggleLoading",value:function(){this.setState(function(n){return{loading:!n.check}})}},{key:"handleToTopClick",value:function(n){n.preventDefault();$("html, body").animate({scrollTop:0},800)}},{key:"render",value:function(){return React.createElement("div",{className:"filminfo-sessions-list "+(this.state.loading?"loading":"")},React.createElement(Showtimes_CinemaSelectorTitlePortal,{title:"Select a showtime for "+this.state.title}),React.createElement(Shared_CinemaSelectorPortal,{isOpen:this.state.cinemaSelectorIsOpen,toggleCinemaSelector:this.toggleCinemaSelector,handleCinemaSelectorSelect:this.handleCinemaSelectorSelect}),this.state.data?React.createElement(Showtimes_TimesList,{data:this.state.data,sessions:this.state.sessions,splitByAttributes:this.state.splitByAttributes,showDate:!0,title:this.state.title,selectedCinemaId:this.state.selectedCinemaId,hasSeatGroups:this.state.hasSeatGroups,cmsAttributes:this.props.cmsAttributes}):this.state.data===null?React.createElement("p",{className:"h3"},"Please select a region or cinema from the selector above to view showtimes"):React.createElement("p",{className:"h3"},"No showtimes available"),React.createElement("button",{type:"button",className:"btn btn--icon btn--black btn--inverse btn--large btn--totop",onClick:this.handleToTopClick},"To Top"))}}]),t}(React.Component),Showtimes_PrintList=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.sessions&&this.props.sessions.length>0?this.props.sessions.map(function(n,t){return React.createElement(Showtimes_PrintItem,{key:t,session:n})}):[];return React.createElement("div",{id:"print",className:"container print"},React.createElement("table",{style:{borderCollapse:"collapse",width:"100%",border:"2px solid black"}},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",{colSpan:"2",style:{border:"2px solid black",padding:"12px"}},"Metropolitan Theatres Movie Showtimes"))),React.createElement("tbody",null,n)),React.createElement("iframe",{id:"ifmcontentstoprint",style:{height:"0px",width:"0px",position:"absolute"}}))}}]),t}(React.Component),Showtimes_PrintItem=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 n=this.props.session.Sessions===undefined?this.props.session.Times.map(function(n,t){return React.createElement(React.Fragment,{key:t},React.createElement("span",{style:{textDecoration:"underline"}},n.StartTime),", ")}):this.props.session.Sessions.map(function(n,t){var i=n.Times.map(function(n,t){return React.createElement(React.Fragment,{key:t},React.createElement("span",{style:{textDecoration:"underline"}},n.StartTime),", ")});return React.createElement("tr",{key:t},React.createElement("td",{style:{border:"none",padding:"12px",minWidth:"200px",verticalAlign:"top",textAlign:"left"}},n.DisplayDate,":"),React.createElement("td",{style:{border:"none",padding:"12px",minWidth:"200px",verticalAlign:"top",textAlign:"left"}},React.createElement("p",null,i)))}),React.createElement("tr",null,React.createElement("td",{style:{border:"2px solid black",padding:"12px",minWidth:"200px",verticalAlign:"top",textAlign:"left"}},this.props.session.Sessions!==undefined?React.createElement(React.Fragment,null,React.createElement("p",null,React.createElement("b",null,this.props.session.DisplayTitle)),React.createElement("p",null,React.createElement("b",null,"Cast: ")," ",this.props.session.Cast),React.createElement("p",null,this.props.session.Cert),React.createElement("p",null,this.props.session.RunTime," Min")):React.createElement("p",null,this.props.session.DisplayDate)),React.createElement("td",{style:{border:"2px solid black",padding:"12px",minWidth:"200px",verticalAlign:"top",textAlign:"left"}},React.createElement("table",null,React.createElement("tbody",null,this.props.session.Sessions!==undefined?React.createElement(React.Fragment,null,n):React.createElement("tr",null,React.createElement("td",{style:{border:"none",padding:"12px",minWidth:"200px",verticalAlign:"top",textAlign:"left"}},n))))))}}]),t}(React.Component),Showtimes_CinemaSelectorTitlePortal=function(n){function t(n){_classCallCheck(this,t);var i=_possibleConstructorReturn(this,Object.getPrototypeOf(t).call(this,n));return i.el=document.getElementById("showtimesCinemaListTitlePortal"),i}return _inherits(t,n),_createClass(t,[{key:"render",value:function(){return this.el&&this.props.title?ReactDOM.createPortal(React.createElement(Shared_CinemaSelectorTitle,{title:this.props.title}),this.el):null}}]),t}(React.Component),Showtimes_App=function(n){function t(n){_classCallCheck(this,t);var i=_possibleConstructorReturn(this,Object.getPrototypeOf(t).call(this,n));return i.state={hasStateFromProps:!1,selectedCinemaId:-1,selectedCinemaGroupId:-1,selectedType:CinemaSelectorSelectedType.NotSelected,cinemaSelectorIsOpen:!1,loading:!1,noResults:!0,eventsAttribute:i.props.eventAttributeId,filterDate:null,filterDateDisplay:"",comingSoon:!1,nowShowing:!0,eventCinema:!1,availableDates:[],maxFilms:0,filmsToShow:12,prefixUrl:"",hasSeatGroups:!1,mergedMarkets:[],splitByAttributes:!0},i.updatePrefixUrl=i.updatePrefixUrl.bind(i),i.handleCinemaSelectorSelect=i.handleCinemaSelectorSelect.bind(i),i.toggleCinemaSelector=i.toggleCinemaSelector.bind(i),i.getNowShowing=i.getNowShowing.bind(i),i.getComingSoon=i.getComingSoon.bind(i),i.getEventCinema=i.getEventCinema.bind(i),i.showMoreMovies=i.showMoreMovies.bind(i),i.setupDatepicker=i.setupDatepicker.bind(i),i.getDatepickerDates=i.getDatepickerDates.bind(i),i.toggleLoading=i.toggleLoading.bind(i),i}return _inherits(t,n),_createClass(t,null,[{key:"getDerivedStateFromProps",value:function(n,t){var f,s;if(t.hasStateFromProps===!1){var r=getSelectedRegion(),e=getSelectedCinema(),h=parseInt(n.santaBarbaraId),c=parseInt(n.goletaId),u=[h,c].sort();e===-1&&u.indexOf(r)>-1&&(r=parseInt("999"+u.join("")));f=CinemaSelectorSelectedType.NotSelected;r>0&&(f=CinemaSelectorSelectedType.CinemaGroup);e>0&&(f=CinemaSelectorSelectedType.Cinema);var o=new Date,l=o.getFullYear()+"-"+("00"+(o.getMonth()+1)).slice(-2)+"-"+("00"+o.getDate()).slice(-2),i=new Date;return i.setDate(i.getDate()+1),s=i.getFullYear()+"-"+("00"+(i.getMonth()+1)).slice(-2)+"-"+("00"+i.getDate()).slice(-2),{todayDate:l,tomorrowDate:s,hasStateFromProps:!0,selectedCinemaId:e,selectedCinemaGroupId:r,selectedType:f,mergedMarkets:[{label:n.labelSantaGoleta,markets:u,id:parseInt("999"+u.join("")),url:n.urlSantaGoleta}]}}return null}}]),_createClass(t,[{key:"componentDidMount",value:function(){this.getNowShowing();this.getDatepickerDates()}},{key:"updatePrefixUrl",value:function(n){this.setState({prefixUrl:n})}},{key:"handleCinemaSelectorSelect",value:function(n,t,i,r,u){var f=this;this.setState({cinemaSelectorIsOpen:!1,selectedCinemaId:n,selectedCinemaGroupId:t,selectedType:i},function(){r||(f.state.comingSoon?f.getComingSoon():f.state.eventCinema?f.getEventCinema():f.getNowShowing(),linkUpdate(u));return})}},{key:"toggleCinemaSelector",value:function(n){this.setState({cinemaSelectorIsOpen:n})}},{key:"getDatepickerDates",value:function(){var n=this,t,i;if(this.state.selectedCinemaGroupId.toString().indexOf("999")===0)for(t=0;t<this.state.mergedMarkets.length;t++)if(this.state.mergedMarkets[t].id===this.state.selectedCinemaGroupId){i=this.state.mergedMarkets[t].markets.map(function(t){return fetch("/Umbraco/Api/QuickbookApi/GetScheduledDatesByRegion?cinemaGroupId="+t+(n.state.selectedCinemaId>0?"&cinemaNodeId="+n.state.selectedCinemaId:"")).then(function(n){return n.json()})});Promise.all(i).then(function(t){for(var u=[],f={},r,i=0;i<t.length;i++)if(typeof t[i].ResultCode=="undefined"||t[i].ResultCode===null||t[i].ResultCode===0)for(r=0;r<t[i].length;r++)typeof t[i][r]!="undefined"&&t[i][r]!==null&&typeof t[i][r].Date!="undefined"&&t[i][r].Date!==null&&typeof f[t[i][r].Date]=="undefined"&&(f[t[i][r].Date]=t[i][r].Date,u.push(t[i][r]));u.length>0&&u.sort(function(n,t){var i=Date.parse(n.Date),r=Date.parse(t.Date);return i>r?1:i<r?-1:0});n.setState({availableDates:u},function(){n.setupDatepicker()})});return}fetch("/Umbraco/Api/QuickbookApi/GetScheduledDatesByRegion?cinemaGroupId="+this.state.selectedCinemaGroupId+(this.state.selectedCinemaId>0?"&cinemaNodeId="+this.state.selectedCinemaId:"")).then(function(n){return n.json()}).then(function(t){n.setState({availableDates:t||[]},function(){this.setupDatepicker()})})}},{key:"setupDatepicker",value:function(){var n=this.state.availableDates,i=this.handleDateSelector,t=this.getNowShowing;$("#datepicker-btn").data("datepicker")&&$("#datepicker-btn").datepicker("destroy").off("changeDate");$("#datepicker-btn").datepicker({format:"yyyy-mm-dd",maxViewMode:2,startDate:"today",orientation:"bottom right",container:"#stackedDatePicker",beforeShowDay:function(t){var r=!1,u=n.length,f,i;if(t.setHours(0,0,0,0),f=t.valueOf(),u>0)for(i=0;i<u;i++)if(t=parseInt(dateObjFromString(n[i].Date).getTime().toFixed(0)),f===t){r=!0;break}return r}}).on("changeDate",function(n){t(n.format("yyyy-mm-dd"));$(this).datepicker("hide")}).on("show",function(){$(this).addClass("datepickerActive")}).on("hide",function(){$(this).removeClass("datepickerActive").removeClass("is-open")}).datepicker("update",this.state.filterDate)}},{key:"getNowShowing",value:function(n){var r=this,i,t;if(this.toggleLoading(),(typeof n=="undefined"||n===null)&&(n=this.state.todayDate),$("#datepicker-btn").length===1&&typeof $("#datepicker-btn").data("datepicker")!="undefined"&&$("#datepicker-btn").datepicker("update",n),i=[],this.state.selectedType===CinemaSelectorSelectedType.Cinema&&this.props.isHome)i.push(fetch("/Umbraco/Api/PaginatedMoviesApi/GetByCinema?cinemaGroupId="+this.state.selectedCinemaGroupId+"&cinemaNodeId="+this.state.selectedCinemaId+(this.props.isHome?"":"&sessionsOnCinemas=true")+(n?"&startDate="+n+"&days=1":"")).then(function(n){return n.json()}));else if(this.state.selectedType!==CinemaSelectorSelectedType.Cinema||this.props.isHome)if(this.state.selectedType===CinemaSelectorSelectedType.CinemaGroup)if(this.state.selectedCinemaGroupId.toString().indexOf("999")>-1){for(t=0;t<this.state.mergedMarkets.length;t++)if(this.state.mergedMarkets[t].id===this.state.selectedCinemaGroupId){typeof this.state.mergedMarkets[t].markets!="undefined"&&this.state.mergedMarkets[t].markets!==null&&this.state.mergedMarkets[t].markets.length>0&&this.state.mergedMarkets[t].markets.forEach(function(t){i.push(fetch("/Umbraco/Api/PaginatedMoviesApi/GetByRegion?cinemaGroupId="+t+"&sessionsOnCinemas=true&startDate="+n+"&days=1").then(function(n){return n.json()}))});break}}else i.push(fetch("/Umbraco/Api/PaginatedMoviesApi/GetByRegion?cinemaGroupId="+this.state.selectedCinemaGroupId+"&sessionsOnCinemas=true&startDate="+n+"&days=1").then(function(n){return n.json()}));else i.push(fetch("/Umbraco/Api/PaginatedMoviesApi/GetNowPlayingByCircuit?expandAttributes=true"+(n?"&startDate="+n+"&days=1":"")).then(function(n){return n.json()}));else i.push(fetch("/Umbraco/Api/PaginatedMoviesApi/GetByCinema?cinemaGroupId="+this.state.selectedCinemaGroupId+"&cinemaNodeId="+this.state.selectedCinemaId+(this.props.isHome?"":"&sessionsOnCinemas=true")+(n?"&startDate="+n+"&days=1":"")).then(function(n){return n.json()}));Promise.all(i).then(function(t){var i=mergeFilms(t),u=dateObjFromString(n.toString()),f=pc.labels.dayFull[u.getDay()]+" "+pc.labels.monthShort[u.getMonth()]+" "+u.getDate()+pc.labels.ordinal(u.getDate());$("#datepicker-btn").datepicker("update",u);r.state.hasSeatGroups&&(i=createSeatGroups(i));r.setState({comingSoon:!1,nowShowing:!0,eventCinema:!1,sessions:i,maxFilms:i.length,filmsToShow:r.props.filmsPerPage,noResults:i.length===0,loading:!1,filterDate:n,filterDateDisplay:f})})}},{key:"getComingSoon",value:function(){var i=this,t,n;if(this.toggleLoading(),t=[],this.state.selectedType===CinemaSelectorSelectedType.Cinema)t.push(fetch((this.props.isHome?"/Umbraco/Api/MovieApi/GetUpcomingFilmsByRegion":"/Umbraco/Api/MovieApi/GetComingSoonFilmsByRegion")+"?cinemaGroupId="+this.state.selectedCinemaGroupId+"&cinemaNodeId="+this.state.selectedCinemaId+(this.props.isHome?"":"&sessionsOnCinemas=true")).then(function(n){return n.json()}));else if(this.state.selectedType===CinemaSelectorSelectedType.CinemaGroup)if(this.state.selectedCinemaGroupId.toString().indexOf("999")>-1){for(n=0;n<this.state.mergedMarkets.length;n++)if(this.state.mergedMarkets[n].id===this.state.selectedCinemaGroupId){typeof this.state.mergedMarkets[n].markets!="undefined"&&this.state.mergedMarkets[n].markets!==null&&this.state.mergedMarkets[n].markets.length>0&&this.state.mergedMarkets[n].markets.forEach(function(n){t.push(fetch((i.props.isHome?"/Umbraco/Api/MovieApi/GetUpcomingFilmsByRegion":"/Umbraco/Api/MovieApi/GetComingSoonFilmsByRegion")+"?cinemaGroupId="+n+(i.props.isHome?"":"&sessionsOnCinemas=true")).then(function(n){return n.json()}))});break}}else t.push(fetch((this.props.isHome?"/Umbraco/Api/MovieApi/GetUpcomingFilmsByRegion":"/Umbraco/Api/MovieApi/GetComingSoonFilmsByRegion")+"?cinemaGroupId="+this.state.selectedCinemaGroupId+(this.props.isHome?"":"&sessionsOnCinemas=true")).then(function(n){return n.json()}));else t.push(fetch("/Umbraco/Api/PaginatedMoviesApi/GetComingSoonByCircuit?expandAttributes=true&attributesExclusion="+this.state.eventsAttribute).then(function(n){return n.json()}));Promise.all(t).then(function(n){var t=mergeFilms(n);i.state.hasSeatGroups&&(t=createSeatGroups(t));i.setState({comingSoon:!0,nowShowing:!1,eventCinema:!1,sessions:t,maxFilms:t.length,filmsToShow:i.props.filmsPerPage,noResults:t.length===0,filterDate:null,filterDateDisplay:"",loading:!1})})}},{key:"getEventCinema",value:function(){var i=this,u=this,r,t,n;if(this.toggleLoading(),r=!1,t=[],this.state.selectedType===CinemaSelectorSelectedType.Cinema)t.push(fetch("/Umbraco/Api/PaginatedMoviesApi/GetByCinema?cinemaGroupId="+this.state.selectedCinemaGroupId+"&cinemaNodeId="+this.state.selectedCinemaId+(this.props.isHome?"":"&sessionsOnCinemas=true")+"&attributes="+this.state.eventsAttribute).then(function(n){return n.json()}));else if(this.state.selectedType===CinemaSelectorSelectedType.CinemaGroup)if(this.state.selectedCinemaGroupId.toString().indexOf("999")>-1){for(n=0;n<this.state.mergedMarkets.length;n++)if(this.state.mergedMarkets[n].id===this.state.selectedCinemaGroupId){typeof this.state.mergedMarkets[n].markets!="undefined"&&this.state.mergedMarkets[n].markets!==null&&this.state.mergedMarkets[n].markets.length>0&&this.state.mergedMarkets[n].markets.forEach(function(n){t.push(fetch("/Umbraco/Api/PaginatedMoviesApi/GetByRegion?cinemaGroupId="+n+"&sessionsOnCinemas=true&attributes="+i.state.eventsAttribute).then(function(n){return n.json()}))});break}}else t.push(fetch("/Umbraco/Api/PaginatedMoviesApi/GetByRegion?cinemaGroupId="+this.state.selectedCinemaGroupId+"&sessionsOnCinemas=true&attributes="+this.state.eventsAttribute).then(function(n){return n.json()}));else t.push(fetch("/Umbraco/Api/PaginatedMoviesApi/GetNowPlayingByCircuit?expandAttributes=true&attributes="+this.state.eventsAttribute).then(function(n){return n.json()}));Promise.all(t).then(function(n){var t=mergeFilms(n);t=createSeatGroups(t);r&&t.length>0&&(t=t.filter(function(n){var i=!1,t;if(typeof n.Experiences!="undefined"&&n.Experiences!==null&&n.Experiences.length>0)for(t=0;t<n.Experiences.length;t++)if(n.Experiences[t].Id.toString()===u.state.eventsAttribute.toString()){i=!0;break}return i}));i.setState({comingSoon:!1,nowShowing:!1,eventCinema:!0,sessions:t,maxFilms:t.length,filmsToShow:i.props.filmsPerPage,noResults:t.length===0,filterDate:null,filterDateDisplay:"",loading:!1})})}},{key:"showMoreMovies",value:function(){this.setState({filmsToShow:this.state.filmsToShow+this.props.filmsPerPage})}},{key:"toggleLoading",value:function(){this.setState(function(n){return{loading:!n.check}})}},{key:"render",value:function(){var t=this,n="";return n=this.props.isHome?"No showtimes available"+(this.state.selectedCinemaId>0?" at this theater":"")+(this.state.nowShowing?" today":"")+".":"No showtimes available "+(this.state.selectedCinemaId>0?"at this theater":"")+(this.state.nowShowing&&this.state.filterDate===this.state.todayDate?" today. Please select another date":"")+(this.state.nowShowing&&this.state.filterDate===this.state.tomorrowDate?" tomorrow. Please select another date":"")+".",React.createElement("div",{className:this.state.loading?"loading":""},React.createElement(Showtimes_DatePortal,{isHome:this.props.isHome,availableDates:this.state.availableDates,filterDate:this.state.filterDate,filterDateDisplay:this.state.filterDateDisplay,handleNowShowing:this.getNowShowing,handleEventMovies:this.getEventCinema,handleComingSoon:this.getComingSoon,selectFunction:this.handleDateSelector,handleClick:this.handleClick}),React.createElement(Shared_CinemaSelectorPortal,{isOpen:this.state.cinemaSelectorIsOpen,toggleCinemaSelector:this.toggleCinemaSelector,updatePrefixUrl:this.updatePrefixUrl,handleCinemaSelectorSelect:this.handleCinemaSelectorSelect}),!this.props.isHome&&React.createElement("div",{className:"container container--narrow cc-message"},React.createElement("p",null,"All showtimes have Closed Captions available")),React.createElement("div",{id:"showtimesResults",className:this.props.isHome?"grid-listing":"container container--narrow","aria-live":"polite"},React.createElement(Showtimes_FilmsList,{isHome:this.props.isHome,sessions:this.state.sessions,filmsToShow:this.state.filmsToShow,maxFilms:this.state.maxFilms,comingSoon:this.state.comingSoon,splitByAttributes:this.state.splitByAttributes,redirectUrl:this.state.redirectUrl,placeholder:this.props.placeholder,selectedType:this.state.selectedType,selectedCinemaId:this.state.selectedCinemaId,filterDate:this.state.filterDate,prefixUrl:this.state.prefixUrl,hasSeatGroups:this.state.hasSeatGroups,cmsAttributes:this.props.cmsAttributes})),this.state.noResults&&React.createElement("div",{className:"container container--narrow"},React.createElement("p",{className:"h3"},n)),!this.state.noResults&&React.createElement("div",{className:"container container--narrow"},React.createElement("button",{className:"btn btn--inverse btn--black btn--fw mt-2 mb-2"+(this.state.filmsToShow>=this.state.maxFilms?" dn":""),onClick:function(){return t.showMoreMovies()}},"See more movies")))}}]),t}(React.Component);Showtimes_App.propTypes={cinemas:PropTypes.arrayOf(CinemaProps).isRequired,filmsPerPage:PropTypes.number.isRequired,isHome:PropTypes.bool.isRequired,isShowtimes:PropTypes.bool.isRequired,placeholder:PropTypes.string.isRequired,redirectUrl:PropTypes.string.isRequired}