{"version":3,"file":"1825.28a10132b9e3fb5b169e.bundle.js","mappings":"iNAWO,MAAMA,EAA8BC,IACvC,MAAM,MAAEC,EAAK,eAAEC,GAAmBF,EAC5BG,EAAa,IAAI,IAAWF,EAAMG,UAMxC,MAAMC,EAJN,SAAuBJ,GACnB,OAAO,mBAAyBA,EAAMK,SAASC,SACnD,CAEeC,CAAcP,GACvBQ,EA6CV,SAAiCP,GAC7B,IAAIQ,EACJ,GAAIR,EAAiB,EAWjB,OATIQ,EADmB,IAAnBR,EAC6B,CAAES,MAAO,IAAKC,OAAQ,KACzB,IAAnBV,EACsB,CAAEW,KAAM,IAAKD,OAAQ,KAC3CV,EAAiB,EACK,CAAES,MAAO,IAAKC,OAAQ,KAEtB,CAAED,MAAO,GAAIC,OAAQ,IAG/C,CACHF,6BACAI,QAAS,CACL,CAAEC,cAAe,IAAKC,WAAY,CAAEL,MAAO,IAAKC,OAAQ,MACxD,CAAEG,cAAe,IAAKC,WAAY,CAAEL,MAAO,IAAKC,OAAQ,QAG7D,GAAuB,IAAnBV,EAEP,OADAQ,EAA6B,CAAEC,MAAO,IAAKC,OAAQ,KAC5C,CACHF,6BACAI,QAAS,CACL,CAAEC,cAAe,IAAKC,WAAY,CAAEJ,OAAQ,MAC5C,CAAEG,cAAe,IAAKC,WAAY,CAAEJ,OAAQ,OAI5D,CA3EiCK,CAAwBf,GAErD,OAAKD,EAAMiB,OAAUjB,EAAMK,QAGvB,kBAAC,KAAsB,KACnB,uBAAGa,UAAU,cAAcC,KAAMjB,EAAWkB,mBAAmBpB,EAAMiB,MAAOjB,EAAMK,UAC7ED,EACG,6BAASc,UAAU,sBACdV,EAAqBK,QAAQQ,KAAIC,GAC9B,4BACIC,MAAO,cAAcD,EAAOR,mBAC5BU,OAAQC,EAAwBrB,EAAQkB,EAAOP,gBAGvD,yBACIW,IAAKD,EAAwBrB,EAAQI,EAAqBC,4BAC1DkB,IAAK3B,EAAMiB,SAInB,yBAAKC,UAAU,qBAAqBS,IAAI,oBAG5C,yBAAKT,UAAU,wBACX,4BAAKlB,EAAMiB,UAvBgB,IA2B1C,EAgDL,SAASQ,EAAwBrB,EAAQwB,GAQrC,MAAO,GAAGxB,KAPKyB,OAAOC,KAAKF,GACtBP,KAAIU,IACD,MAAMC,EAAQJ,EAAqBG,GACnC,OAAOC,EAAQ,GAAGD,KAAOC,IAAU,IAAI,IAE1CC,QAAOC,GAAQA,IACfC,KAAK,MAEd,C,qKC7FO,MAAMC,EAA0D,EAAGlB,YAAY,MAAOnB,MACzF,MAAM,WAAEsC,EAAU,MAAEpB,GAAUlB,EAAMuC,YAC9BC,EAAQF,EAAWhB,KAAIa,IAAQ,IAAMA,EAAMM,GAAIN,EAAK7B,YACpDoC,GAAU,QAAgBJ,EAAWK,QACrCC,EAAaJ,EAAMG,QAAU,EAE7BE,EAAsB,IAAI,CAAE,+BAAsD,IAAtBP,EAAWK,SAE7E,OACI,oCACI,yBAAKxB,UAAW,GAAG0B,KAAuB1B,KACtC,kBAAC,IAAM,CAACD,MAAOA,IACf,kBAAC,KAAiB,CAACwB,QAASA,EAASE,WAAYA,EAAYzB,UAAU,kBAClEqB,EAAMlB,KAAIwB,GACP,kBAAC,IAAK,CAAC7C,MAAO6C,EAAWd,IAAKc,EAAUL,GAAIvC,eAAgBsC,EAAMG,aAKrF,EAGL,G,4KCzBO,MAAMI,EAAiE/C,IAC1E,MAAM,YAAEuC,EAAW,SAAEnC,GAAaJ,EAC3BwC,EAAQD,EAAYS,UAAU1B,KAAKa,IAAQ,IAAKA,EAAMH,IAAKiB,EAAKd,GAAO/B,SAAUA,MAClFsC,GAAU,QAAgBH,EAAYS,UAAUL,QAChDC,EAAaJ,EAAMG,QAAU,EAE7BO,EAAuC,CACzChC,MAAOqB,EAAYrB,OAGjB2B,EAAsB,IAAI,CAC5B,8BAAgD,IAAjBL,EAAMG,SAGzC,OACI,yBAAKxB,UAAU,8BACX,yBAAKA,UAAW,uBAAuB0B,KACnC,kBAAC,IAAM,IAAKK,IACZ,kBAAC,KAAiB,CAACR,QAASA,EAASE,WAAYA,EAAYzB,UAAU,uCAClEqB,EAAMlB,KAAI6B,GAAY,kBAAC,IAAK,IAAKA,EAAUnB,IAAKmB,EAASnB,UAKzE,EAGL,SAASiB,EAAKd,GACV,OAAO,QACHA,EAAKiB,OACLjB,EAAKjB,MAEb,CAEA,S,kFC7BO,SAASmC,EAAwBrD,GACpC,MAAMsD,EAAUtD,GAAOI,UAAUmD,WAAWC,OAAS,CAACxD,EAAMI,SAASmD,UAAUC,aAAUC,EAEnFC,EAAU1D,GAAOI,UAAUmD,WAAWH,OAAS,CAACpD,EAAMI,SAASmD,UAAUH,aAAUK,EAEnFE,EAA+D3D,GAAOI,UAAUmD,WAAWK,cAC3F,IAAuC5D,EAAMI,SAASmD,UAAUK,oBAChEH,EAEAI,EAAS,IACR,YACHC,wBAAyB,mBACzBC,oBAAqB,aACrBC,yBAA0B,kBAGxBC,EAwBV,SACIjE,EACA2D,GAEA,MAAMO,EAAM,IAAI,KAAWlE,EAAMI,UAEjC,IAAI6D,EAAmC,IAChCjE,EAAMiE,OACTE,YAAa,CACTC,KAAOpE,EAAMiE,OAAeI,gBAC5BC,UAAW,WAEfC,kBAAmB,CACfH,MAAM,EACNI,cAAc,EACdC,UAAU,EACVC,OAAO,EACPC,MAAM,GAEVC,WAAY,IACL5E,EAAMiE,OAAOW,YAEpBC,mBAAqBC,GAAuBZ,EAAIa,wBAAwBD,EAASrC,IACjFuC,eAAiBC,GAAef,EAAIgB,kBAAkBD,WAInDhB,EAAOI,gBAEVV,IACAM,EAAOW,WAAWjB,qBAAuBA,GAG7C,OAAOM,CACX,CA1DmBkB,CAAyBnF,EAAO2D,GAO/C,OALKL,UAEMW,EAAOmB,eAGX,CACH9B,UACAI,UACAnB,YAAavC,EAAMuC,YACnBsB,SACAI,SACAoB,OAAQC,EAAqBtF,GAC7BuF,WAAY,CACRC,iBAAkB,CAAE5E,OAAQ,IAC5B6E,mBAAoB,CAAE9E,MAAO,KAC7B+E,cAAe,CAAE9E,OAAQ,IACzB+E,kBAAmB,CAAE/E,OAAQ,IAC7BgF,sBAAuB,CAAEhF,OAAQ,KAG7C,CAsCA,SAAS0E,EAAqBtF,GAC1B,MAAM6F,EAAe,IAAI,KACnB3B,EAAM,IAAI,KAAWlE,EAAMI,UAYjC,MAAO,CAAE0F,wBAXuB9F,EAAMiE,OAAO8B,gBAAgB3B,KACtDa,GAAee,OAAOC,SAASC,OAAOhC,EAAIgB,kBAAkBD,SAC7DxB,EAS4B0C,kBAPPrB,IACvB,MAAMsB,EAAgBtB,EAASuB,sBAAuB,UAAe,EAAI,EACzE,OAAOL,OAAOC,SAASC,OAAOhC,EAAIa,wBAAwBD,EAASrC,GAAI2D,GAAO,EAK7BE,2BAFjBrB,GAAeY,EAAaU,aAAatB,EAAKxC,IAGtF,C,oZCtCA,MAAM+D,GAA4B,E,SAAA,KAAUxG,IACxC,MAAMyG,EAAc,KAChB,MAAMC,EAA6B,KAAK,OAAwB1G,EAAM2G,qBACtE,MAAO,IACAD,EACHhD,QAAS,CAAC1D,EAAMoD,QAChBE,SAAS,SACJpB,QAAO0E,GAAgB5G,EAAM6G,aAAaC,SAASF,EAAanE,MAChEnB,KAAIsF,GAAgBA,EAAanE,KACtCwB,OAAQ,IACDyC,EAA2BzC,OAC9B/B,OAAQ,CACJ6E,SAAU/G,EAAM+G,WAG3B,GAEEC,EAAUC,IAAe,IAAAC,UAAsCT,KAOtE,OALA,IAAAU,YAAU,KACNF,EAAYR,IAAc,GAE3B,CAAC,gCAAiDzG,EAAM6G,aAAalE,SAEjE,kBAAC,KAA2B,IAAKqE,GAAY,IAG3CI,EAAkDpH,IAC3D,MAAO6G,EAAcQ,IAAmB,IAAAH,UAAmB,KACrD,YACFI,EAAW,gCACXC,EAA+B,aAC/BC,EAAY,qBACZC,EAAoB,yBACpBC,EAAwB,eACxBC,EAAc,gCACdC,GACA5H,GACG6H,EAAQC,IAAa,IAAAZ,WAAkB,GACxCa,GAAoB,IAAAC,QAAO,OAC1BC,EAAcC,IAAmB,IAAAhB,aACjCiB,EAAgBC,IAAqB,IAAAlB,WAAS,IAC9CmB,EAAsBC,IAA2B,IAAApB,WAAS,IAC1DqB,EAAkBC,IAAuB,IAAAtB,WAAS,GAEnDrB,EAAe,IAAI,KAEnBzC,EAASkE,GAAalH,UAAUmD,WAAWH,OAE3CqF,EAAcd,GAAgBpF,aAAakG,YAC3CvH,GAAQyG,GAAgBpF,aAAarB,MACrCwH,GAAQf,GAAgBpF,aAAamG,OAAOC,QAC5CC,GAAQjB,GAAgBpF,aAAaqG,MAAM,GAE3CC,GAAqB3H,IAASuH,GAAeC,IAASE,GACtDE,GAAyBlB,GAAiC3D,QAAQ6E,uBAClE/B,GAAW,kBAAoB3D,EAErCyC,EAAakD,YAAY3F,EAAQ,KAEjC,MAAMe,IAAc,OAAYf,IAEhC,IAAA+D,YAAU,KAEN,MAAM6B,EAAaC,SAASC,eAAe,0BAUrCC,EAAW,IAAIC,kBARJ,KACb,IAAI,SAAoB,OACxB,MAAMC,EAA+CL,EAAWM,cAAc,0BAC9E,GAAID,GAAmE,+BAAvCA,EAAyBE,UAA4C,CACjG,MAAMC,EAA0CR,EAAWM,cAAc,mBACrED,IAA0BG,EAAoBC,MAAMC,QAAU,O,KAK1E,OADAP,EAASQ,QAAQX,EAVF,CAAEY,YAAY,EAAMC,WAAW,EAAMC,SAAS,IAWtD,KACHX,EAASY,YAAY,CACxB,GACF,KAEH,IAAA5C,YAAU,KACL,YACG,QAAkB,2BAA4B6C,KACzC,gBACK,SAIV,MAAM/B,GAAe,SACrBC,EAAgBD,GAEhBgC,GAAsBhC,GAEtB,IACI,MAAMvE,EAAU,CAACN,GACX8G,QAA0B,QAAsB,CAAExG,UAASuE,iBAEjEZ,EAAgB6C,E,CAClB,MAAOC,GACLC,QAAQC,MAAMF,E,CAErB,EApBA,EAoBG,GACL,KAGH,IAAAhD,YAAU,KACN,MAAM3D,GAAS,QAAwB,UACnCA,IAAW,kCAAkDA,KAC7D,QAAY,MACJ,SACA,4BAA8CA,EAC3C,8BAA8CA,EAAO,G,GAGrE,KAGH,IAAA2D,YAAU,KACL,WACG,MAAMmD,GAAuB,UAAe3H,QACtC,SAAcrB,KAAIiJ,GAAQA,EAAK9H,WACzB,SAAe+H,MAAK,KAAM,SAAclJ,KAAIiJ,GAAQA,EAAK9H,OAC/DgI,GAAiB,OAAkB,CAACrH,GAASkH,KAC5B,OAA0BG,IAC3C,OAA0BA,SACpB,OAA0BA,GAAgBD,MAAK,KAAM,OAA0BC,MACxE9H,OAAQyH,QAAQM,IAAI,gCAClCN,QAAQM,IAAI,yCACpB,EAVA,EAUG,GACL,IAECvG,IAAajD,QAAUqH,IACvBC,GAAoB,IACpB,QAAe,CACXvI,MAAO,YACP0K,UAAW,CACPnI,MAAO,CACH,CACIoI,UAAWzG,GAAYjD,MAAM2J,KAC7BC,cAAe,aAOnC,MAAMb,GAAyBhC,IAC3B,MAAM8C,EAAe,KAIjB,MAAM7I,GAAS,OAAqB6E,GAAU,eAC9C,QAAY,KACR,MAAMiE,EAAY,IAAK9I,GAEvB8I,EAAUC,SAASC,UAAUxI,QAAU,IAChCR,EAAO+I,SAASC,UAAUxI,QACxBR,QAAOiJ,IAAWlD,EAAanB,SAASqE,EAAOlJ,SAC/CX,KAAI8J,IACM,CAAEC,UAAU,EAAOpJ,MAAOmJ,EAAEnJ,aAExCgG,EAAa3G,KAAIgK,IACT,CAAED,UAAU,EAAMpJ,MAAOqJ,OAIxC,yBAAuCvE,IAAYiE,CAAS,GAC9D,EAGN,IAAI,OAAqBjE,GAAU,cAC/BgE,QACC,CACD,MAAMQ,GAAW,SAAQ,MAEjB,OAAqBxE,GAAU,gBAC/BgE,IACAQ,I,MAMVC,GAAcC,aAAY,WACxBxC,SAASK,cAAc,+BACvB,UACAoC,cAAcF,IAEtB,GAAG,KAEGxB,GAAuB,MACzB,UAAaQ,MAAKmB,IACTA,GACD,W,GAEN,EAwBAC,GAA4C,CAC9CxH,KAAMyD,EACN1G,UAAW,WACXkE,OARiD,CACjDwG,QAfmB,KACnB/D,GAAU,GAENK,GAAgBG,GAAwB,EAAK,EAajDwD,eAV0B,KACrB3D,GAAgBC,GAAkB,GAClCC,GAAsB4B,GAAsBhC,IAC7C,SAAmBtF,OAAS,GAC5BsG,SAASK,cAAc,aAAayC,UAAUC,OAAO,c,GAazDzJ,YAAa,IACN,MAEP0J,yBAA0B,CACtB1J,YAAa,IACNgF,EAAgC0E,yBAAyB1J,aAEhEsB,OAAQ,CACJqI,qBAAsB,WACtBlI,yBAA0B,WAC1BmI,2BAA4B,aAGpC7I,QAASuD,GAGPuF,GAAqC,CACvCnI,OAAQ,CACJoI,UAAW,CACPjI,KAAMkD,EAAYrD,OAAOoI,UAAUjI,KACnCE,UAAWgD,EAAYrD,OAAOoI,UAAU/H,UACxCgI,qBAAqB,GAEzBC,kBAAmB,CACfnI,KAAMkD,EAAYrD,OAAOsI,kBAAkBnI,MAE/CoI,eAAgBlF,EAAYrD,OAAOuI,eACnCjI,kBAAmB,IACZ,6BACHH,KAAMkD,EAAYrD,OAAOwI,YAAYrI,MAEzCsI,aAAc,CAAEtI,KAAMkD,EAAYrD,OAAOyI,aAAatI,MACtDuI,OAAQ,CAAErI,UAAWgD,EAAYrD,OAAO0I,OAAOrI,YAEnDe,OAAQ,CACJuH,sBAAuB,KACnB7E,EAAkB8E,QAAQC,gBAAgB,EAE9CxG,2BAA4BrB,IACxBY,EAAaU,aAAatB,EAAKxC,GAAG,EAEtCsK,uBAAwB9H,IACpBY,EAAamH,eAAe/H,EAAKxC,IAAI,EAAM,EAE/CwK,2BAA4BhI,IACxBY,EAAamH,eAAe/H,EAAKxC,IAAI,EAAK,GAGlDF,YAAa,IACN+E,EAAY/E,aAEnBsB,OAAQ,CACJqJ,0BAA2B,cAC3BC,4BAA6B,6BAEjC5H,WAAY,CACRE,mBAAoB,CAAE9E,MAAO,KAC7ByM,gBAAiB,CAAEzM,MAAO,MAC1B6E,iBAAkB,CAAE5E,OAAQ,aAK7BwL,GAAiB7J,YAAY8K,2BAE7BjB,GAAiB7J,YAAY+K,yBAEpC,MAAMC,GAA8B,CAChCtJ,OAAQ,CACJ/B,OAAQ,CACJ6E,SAAUA,MAKhByG,GAAgD,KAC/C,QAAqBD,IACxBhL,YAAa,KACN,QAAqBgL,IAA6BhL,YACrDkL,mBAAoB,qCAExB1G,YACA9C,OAAQ,CACJyJ,WAAY,aACZC,aAAa,QAAqBJ,IAA6BtJ,OAAO0J,YACtEC,QAAS,CACL,CAAC,gBAA8B,CAC3BC,SAAS,EACTzH,MAAO,EACP0H,eAAe,GAEnB,CAAC,YAA0B,CACvBD,SAAS,EACTzH,MAAO,EACP0H,eAAe,GAEnB,CAAC,YAA0B,CACvBD,SAAS,EACTzH,MAAO,EACP0H,eAAe,MAMzBC,GAAiC,CACnChH,YACA3D,SACAuD,mBAAoB3G,EAAM2G,mBAC1BE,gBAQJ,OACI,oCACI,yBAAK1F,UAAU,8BACX,kBAAC,IAAoB,CAACiC,OAAQA,GAC1B,kBAAC,IAAoB,IAAKgJ,KACzB3E,EAAqBlF,aAClB,uBAAGpB,UAAU,0BAA0BC,KAAMqG,EAAqBlF,YAAYyL,gBAC1E,8BAAOvG,EAAqBlF,YAAY0L,2BAMvDpF,IAAsB,kBAAC,KAAuB,IAAKlB,KAClDmB,IACE,yBAAK3H,UAAU,kDAAkD+M,IAAKnG,GAClE,kBAAC,IAAwB,IAAKyF,KAC9B,yBAAKrM,UAAU,wBACX,kBAACqF,EAAyB,IAAKuH,KAC/B,kBAAC,KAAwB,IAAKnC,KAC9B,yBAAKzK,UAAU,uCACX,yBAAKA,UAAU,qCAAqCgN,QAnKtD,IAAMrG,GAAU,IAmK4D,oBAOzFN,GAAcjF,aAAaS,WAAWL,OAAS,GAAK,kBAAC,UAA6B,IAAK6E,IACvFE,GAA0BnF,aAAaD,YAAYK,OAAS,GACzD,kBAAC,UAAsB,CAACxB,UAAU,gCAAiCuG,IAG9E,EAGL,G","sources":["webpack://vista.digital.curzon/./src/js/components/carousel/carouselComponents/events/Slide.tsx","webpack://vista.digital.curzon/./src/js/components/carousel/carouselComponents/events/eventCarouselComponent.tsx","webpack://vista.digital.curzon/./src/js/components/carousel/carouselComponents/relatedFilms/RelatedFilmsCarouselComponent.tsx","webpack://vista.digital.curzon/./src/js/components/dateShowtimePicker/props.ts","webpack://vista.digital.curzon/./src/js/pages/FilmDetails.tsx"],"sourcesContent":["import { EventType } from '../../../../types'\r\nimport { SwiperReactFacadeSlide } from '../..'\r\nimport { UrlFactory } from '../../../../utils/urlFactory'\r\nimport { cdnClient } from '@vista/omnichannel-components-domain'\r\nimport React from 'react'\r\n\r\nexport type SlideProps = {\r\n event: EventType\r\n numberOfSlides: number\r\n}\r\n\r\nexport const Slide: React.FC = props => {\r\n const { event, numberOfSlides } = props\r\n const urlFactory = new UrlFactory(event.workflow)\r\n\r\n function getEventStill(event: EventType): string {\r\n return cdnClient.instance.event(event.eventId).gallery()\r\n }\r\n\r\n const imgSrc = getEventStill(event)\r\n const eventPictureSettings = getEventPictureSettings(numberOfSlides)\r\n\r\n if (!event.title || !event.eventId) return null\r\n\r\n return (\r\n \r\n \r\n {imgSrc ? (\r\n \r\n {eventPictureSettings.sources.map(source => (\r\n \r\n ))}\r\n \r\n \r\n ) : (\r\n \"image\r\n )}\r\n\r\n
\r\n

{event.title}

\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\ntype DimensionsType = {\r\n width?: number | string\r\n height?: number | string\r\n}\r\n\r\ntype eventPictureSettingsType = {\r\n defaultImgSrcsetDimensions: DimensionsType\r\n sources: {\r\n dimensions: DimensionsType\r\n mediaMaxWidth: number\r\n }[]\r\n}\r\n\r\nfunction getEventPictureSettings(numberOfSlides: number): eventPictureSettingsType {\r\n let defaultImgSrcsetDimensions\r\n if (numberOfSlides > 1) {\r\n if (numberOfSlides === 2) {\r\n defaultImgSrcsetDimensions = { width: 588, height: 162 }\r\n } else if (numberOfSlides === 3) {\r\n defaultImgSrcsetDimensions = { with: 385, height: 162 }\r\n } else if (numberOfSlides > 3) {\r\n defaultImgSrcsetDimensions = { width: 289, height: 162 }\r\n } else {\r\n defaultImgSrcsetDimensions = { width: '', height: '' }\r\n }\r\n\r\n return {\r\n defaultImgSrcsetDimensions,\r\n sources: [\r\n { mediaMaxWidth: 425, dimensions: { width: 325, height: 162 } },\r\n { mediaMaxWidth: 768, dimensions: { width: 610, height: 162 } },\r\n ],\r\n }\r\n } else if (numberOfSlides === 1) {\r\n defaultImgSrcsetDimensions = { width: 608, height: 324 }\r\n return {\r\n defaultImgSrcsetDimensions,\r\n sources: [\r\n { mediaMaxWidth: 425, dimensions: { height: 200 } },\r\n { mediaMaxWidth: 767, dimensions: { height: 200 } },\r\n ],\r\n }\r\n }\r\n}\r\n\r\nfunction getImgSrcWithSizeParams(imgSrc, dimensionQueryParams: DimensionsType) {\r\n const params = Object.keys(dimensionQueryParams)\r\n .map(key => {\r\n const value = dimensionQueryParams[key]\r\n return value ? `${key}=${value}` : null\r\n })\r\n .filter(item => item)\r\n .join('&')\r\n return `${imgSrc}?${params}`\r\n}\r\n","import { EventCarouselProps } from '../../../../types'\r\n\r\nimport { Header } from '../Header'\r\nimport { Slide } from './Slide'\r\nimport { SwiperReactFacade } from '../../'\r\nimport cls from 'classnames'\r\nimport { fourColSettings } from '../../settings'\r\nimport React, { FC } from 'react'\r\n\r\nexport type EventCarouselComponentProps = EventCarouselProps & {\r\n className?: string\r\n}\r\n\r\nexport const EventCarouselComponent: FC = ({ className = '', ...props }) => {\r\n const { eventItems, title } = props.displayText\r\n const items = eventItems.map(item => ({ ...item, id: item.eventId }))\r\n const options = fourColSettings(eventItems.length)\r\n const hideArrows = items.length <= 4\r\n\r\n const numberOfSlidesClass = cls({ 'event-carousel__single-slide': eventItems.length === 1 })\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n \r\n {items.map(eventItem => (\r\n \r\n ))}\r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nexport default EventCarouselComponent\r\n","import { CarouselHeaderPropsType, RelatedFilmItem, RelatedFilmsPropsType } from '../../../../types'\r\n\r\nimport { Header } from '../Header'\r\nimport { Slide } from './Slide'\r\nimport { SwiperReactFacade } from '../../'\r\nimport cls from 'classnames';\r\nimport { fourColSettings } from '../..'\r\nimport { md5 } from '../../../../utils'\r\nimport React from 'react';\r\n\r\nexport const RelatedFilmsCarouselComponent: React.FC = props => {\r\n const { displayText, workflow } = props\r\n const items = displayText.filmItems.map( item => ({...item, key: uuid(item), workflow: workflow}))\r\n const options = fourColSettings(displayText.filmItems.length)\r\n const hideArrows = items.length <= 4\r\n\r\n const headerProps: CarouselHeaderPropsType = {\r\n title: displayText.title\r\n }\r\n\r\n const numberOfSlidesClass = cls({\r\n 'film-carousel__single-slide': items.length === 1\r\n })\r\n \r\n return (\r\n
\r\n
\r\n
\r\n \r\n {items.map(filmItem => )}\r\n \r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nfunction uuid(item: RelatedFilmItem) {\r\n return md5(\r\n item.filmId +\r\n item.title\r\n )\r\n}\r\n\r\nexport default RelatedFilmsCarouselComponent","import {\r\n DateShowtimePickerConfig,\r\n FilmThumbnailMediaType,\r\n ShowtimePickerEvents,\r\n} from '@vista/omnichannel-components-ui'\r\nimport { DateShowtimePickerPropsType, DateShowtimePickerPropsWithFilmIdsPropsType } from '../../types'\r\nimport {\r\n DateShowtimePickerPropsWithFilmIds,\r\n defaultDateShowtimePickerPropsWithFilmIds,\r\n} from '@vista/omnichannel-components-ui/lib/src/lib/components/date-showtime-picker/types/props'\r\nimport { Film, Showtime } from '@vista-digital/ocapi-types/v1'\r\nimport { isSignedIn, MovioTracker, UrlFactory } from '../../utils'\r\n\r\nimport { DateShowtimePickerSelectedBusinessDate } from '@vista/omnichannel-components-ui'\r\n\r\nexport function dateShowtimePickerProps(props: DateShowtimePickerPropsType): DateShowtimePickerPropsWithFilmIds {\r\n const siteIds = props?.workflow?.entityIds?.siteId ? [props.workflow.entityIds.siteId] : undefined\r\n\r\n const filmIds = props?.workflow?.entityIds?.filmId ? [props.workflow.entityIds.filmId] : undefined\r\n\r\n const selectedBusinessDate: DateShowtimePickerSelectedBusinessDate = props?.workflow?.entityIds?.screeningDate\r\n ? DateShowtimePickerSelectedBusinessDate[props.workflow.entityIds.screeningDate]\r\n : undefined\r\n\r\n const assets = {\r\n ...defaultDateShowtimePickerPropsWithFilmIds.assets,\r\n noSitesSelectedIconName: 'no-site-selected',\r\n noShowtimesIconName: 'film-strip',\r\n failedToLoadDataIconName: 'curzon-warning',\r\n }\r\n\r\n const config = dateShowtimePickerConfig(props, selectedBusinessDate)\r\n\r\n if (!siteIds) {\r\n /*@ts-ignore*/\r\n delete config.allFilmsToggle\r\n }\r\n\r\n return {\r\n siteIds,\r\n filmIds,\r\n displayText: props.displayText,\r\n assets,\r\n config,\r\n events: showtimePickerEvents(props),\r\n cdnOptions: {\r\n censorRatingIcon: { height: 60 },\r\n filmThumbnailImage: { width: 500 },\r\n attributeIcon: { height: 40 },\r\n heroAttributeIcon: { height: 64 },\r\n promotedAttributeIcon: { height: 32 },\r\n },\r\n }\r\n}\r\n\r\nfunction dateShowtimePickerConfig(\r\n props: DateShowtimePickerPropsType,\r\n selectedBusinessDate: DateShowtimePickerSelectedBusinessDate\r\n): DateShowtimePickerConfig {\r\n const url = new UrlFactory(props.workflow)\r\n\r\n let config: DateShowtimePickerConfig = {\r\n ...props.config,\r\n filmDetails: {\r\n show: (props.config as any).showFilmDetails,\r\n mediaType: FilmThumbnailMediaType.Still,\r\n },\r\n playTrailerButton: {\r\n show: true,\r\n showControls: true,\r\n autoPlay: true,\r\n muted: true,\r\n loop: true,\r\n },\r\n datePicker: {\r\n ...props.config.datePicker,\r\n },\r\n showtimeUrlFactory: (showtime: Showtime) => url.getSeatPickerDetailsUrl(showtime.id),\r\n filmUrlFactory: (film: Film) => url.getFilmDetailsUrl(film),\r\n }\r\n\r\n /*@ts-ignore*/\r\n delete config.showFilmDetails\r\n\r\n if (selectedBusinessDate) {\r\n config.datePicker.selectedBusinessDate = selectedBusinessDate\r\n }\r\n\r\n return config\r\n}\r\n\r\nfunction showtimePickerEvents(props: DateShowtimePickerPropsType): ShowtimePickerEvents {\r\n const movioTracker = new MovioTracker()\r\n const url = new UrlFactory(props.workflow)\r\n const onFilmActionLinkClicked = props.config.filmActionLink?.show\r\n ? (film: Film) => window.location.assign(url.getFilmDetailsUrl(film))\r\n : undefined\r\n\r\n const onShowtimeClicked = (showtime: Showtime) => {\r\n const index: number = showtime.isAllocatedSeating || !isSignedIn() ? 0 : 1\r\n return window.location.assign(url.getSeatPickerDetailsUrl(showtime.id, index))\r\n }\r\n\r\n const onPlayTrailerButtonClicked = (film: Film) => movioTracker.movieTrailer(film.id)\r\n\r\n return { onFilmActionLinkClicked, onShowtimeClicked, onPlayTrailerButtonClicked }\r\n}\r\n","import {\r\n AddToDataLayer,\r\n MovioTracker,\r\n getAttributesFromQuery,\r\n getAllQueryParameters,\r\n getQueryParameterByName,\r\n} from '../utils'\r\nimport {\r\n CompositeFilterComponent,\r\n CompositeFilterProps,\r\n DateShowtimePickerComponent,\r\n FilmContextComponent,\r\n FilmDetailsComponent,\r\n FilmDetailsProps,\r\n} from '@vista/omnichannel-components-ui'\r\nimport {\r\n // EventCarouselComponent,\r\n EventPromotionComponent,\r\n ModalSitePickerComponent,\r\n // RelatedFilmsCarouselComponent,\r\n filmDetailsButtons,\r\n} from '../components'\r\nimport {\r\n FilmDetailsPageProps,\r\n ModalSitePickerEvents,\r\n ModalSitePickerPropsType,\r\n defaultModalSitePickerDisplayText,\r\n DateShowtimePickerPropsType,\r\n} from '../types'\r\nimport {\r\n FilterType,\r\n ShowtimeFilterKey,\r\n getAllFilms,\r\n getFilmById,\r\n loadAllFilms,\r\n getFilterByIdAndType,\r\n filterDomainStore,\r\n loadShowtimesForBusinessDate,\r\n getSelectedSites,\r\n getAllSites,\r\n getShowtimesQuery,\r\n getScreeningDatesForQuery,\r\n loadAllSites,\r\n loadScreeningDatesByQuery,\r\n browsingDomainStore,\r\n hasMaximumSelectedSites,\r\n isMemberSignedIn,\r\n} from '@vista/omnichannel-components-domain'\r\nimport { OpenLoginModal, addOnClickHandler, getSitesFilmIsPlaying, loadMember } from '../utils'\r\nimport { useEffect, useMemo, useRef, useState } from 'react'\r\n\r\nimport React from 'react'\r\nimport { compositeFilterProps } from '../components/filmList/props'\r\nimport { dateShowtimePickerProps } from '../components/dateShowtimePicker/props'\r\nimport { defaultFilmDetailsProps } from '@vista/omnichannel-components-ui/lib/src/lib/components/film/details/types/props'\r\nimport { runInAction } from 'mobx'\r\nimport { autorun } from 'mobx'\r\nimport RelatedFilmsCarouselComponent from '../components/carousel/carouselComponents/relatedFilms/RelatedFilmsCarouselComponent'\r\nimport EventCarouselComponent from '../components/carousel/carouselComponents/events/eventCarouselComponent'\r\nimport { observer } from 'mobx-react'\r\n\r\ntype DateShowtimePickerWrapperPropsType = {\r\n DateShowtimePicker: DateShowtimePickerPropsType\r\n filmId: string\r\n playingSites: string[]\r\n filterId: string\r\n}\r\n\r\nconst DateShowtimePickerWrapper = observer((props: DateShowtimePickerWrapperPropsType) => {\r\n const getOccProps = () => {\r\n const initialShowtimePickerProps = { ...dateShowtimePickerProps(props.DateShowtimePicker) }\r\n return {\r\n ...initialShowtimePickerProps,\r\n filmIds: [props.filmId],\r\n siteIds: getSelectedSites()\r\n .filter(selectedSite => props.playingSites.includes(selectedSite.id))\r\n .map(selectedSite => selectedSite.id),\r\n config: {\r\n ...initialShowtimePickerProps.config,\r\n filter: {\r\n filterId: props.filterId,\r\n },\r\n },\r\n }\r\n }\r\n const [occProps, setOccProps] = useState(getOccProps())\r\n\r\n useEffect(() => {\r\n setOccProps(getOccProps())\r\n // props.playingSites.length in dependency so updates after playing sites have been loaded\r\n }, [browsingDomainStore.data.selectedSiteIds.length, props.playingSites.length])\r\n\r\n return \r\n})\r\n\r\nexport const FilmDetailsPage: React.FC = props => {\r\n const [playingSites, setPlayingSites] = useState([])\r\n const {\r\n FilmDetails,\r\n SitePickerForDateShowtimePicker,\r\n FilmCarousel,\r\n WatchAtHomeComponent,\r\n FilmDetailsEventCarousel,\r\n EventPromotion,\r\n SuppressShowtimePickerComponent,\r\n } = props\r\n const [isOpen, setIsOpen] = useState(false)\r\n const showtimePickerRef = useRef(null)\r\n const [attributeIds, setAttributeIds] = useState()\r\n const [isSitesChanged, setIsSitesChanged] = useState(false)\r\n const [isSitesChangedLocked, setIsSitesChangedLocked] = useState(false)\r\n const [hasViewItemFired, setHasViewItemFired] = useState(false)\r\n\r\n const movioTracker = new MovioTracker()\r\n\r\n const filmId = FilmDetails?.workflow?.entityIds?.filmId\r\n\r\n const description = EventPromotion?.displayText?.description\r\n const title = EventPromotion?.displayText?.title\r\n const image = EventPromotion?.displayText?.image?.desktop\r\n const links = EventPromotion?.displayText?.links[0]\r\n\r\n const eventPromoNotEmpty = title || description || image || links\r\n const suppressShowtimePicker = SuppressShowtimePickerComponent?.config?.suppressShowtimePicker\r\n const filterId = 'filter-details-' + filmId\r\n\r\n movioTracker.movieDetail(filmId, 30000)\r\n\r\n const filmDetails = getFilmById(filmId)\r\n\r\n useEffect(() => {\r\n // Hide Failed to add to watchlist notification if not logged in\r\n const targetNode = document.getElementById('main-notification-list')\r\n const config = { attributes: true, childList: true, subtree: true }\r\n const callback = () => {\r\n if (isMemberSignedIn()) return\r\n const notificationTitleElement: HTMLElement | null = targetNode.querySelector('.v-notification__title')\r\n if (notificationTitleElement && notificationTitleElement.innerHTML === 'Failed to add to watchlist') {\r\n const notificationElement: HTMLElement | null = targetNode.querySelector('.v-notification')\r\n if (notificationTitleElement) notificationElement.style.display = 'none'\r\n }\r\n }\r\n const observer = new MutationObserver(callback)\r\n observer.observe(targetNode, config)\r\n return () => {\r\n observer.disconnect()\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n ;(async () => {\r\n addOnClickHandler('.v-film-watchlist-button', watchlistButtonClick)\r\n if (!getAllFilms()) {\r\n await loadAllFilms()\r\n }\r\n\r\n // Update filter according to attribute ids in the query string\r\n const attributeIds = getAttributesFromQuery()\r\n setAttributeIds(attributeIds)\r\n\r\n setAttributesOnFilter(attributeIds)\r\n\r\n try {\r\n const filmIds = [filmId]\r\n const playingSiteIdsRes = await getSitesFilmIsPlaying({ filmIds, attributeIds })\r\n\r\n setPlayingSites(playingSiteIdsRes)\r\n } catch (e) {\r\n console.error(e)\r\n }\r\n })()\r\n }, [])\r\n\r\n //If there is a siteId in the url, add it to the selected sites if it isn't already\r\n useEffect(() => {\r\n const siteId = getQueryParameterByName('siteId')\r\n if (siteId && !browsingDomainStore.data.selectedSiteIds.includes(siteId)) {\r\n runInAction(() => {\r\n if (hasMaximumSelectedSites()) {\r\n browsingDomainStore.data.selectedSiteIds[0] = siteId\r\n } else browsingDomainStore.data.selectedSiteIds.push(siteId)\r\n })\r\n }\r\n }, [])\r\n\r\n // Determine if there are any showtimes on any dates for any sites for this film\r\n useEffect(() => {\r\n ;(async () => {\r\n const allSiteIds: string[] = getAllSites()?.length\r\n ? getAllSites().map(site => site.id)\r\n : await loadAllSites().then(() => getAllSites().map(site => site.id))\r\n const showtimesQuery = getShowtimesQuery([filmId], allSiteIds)\r\n const screeningDates = getScreeningDatesForQuery(showtimesQuery)\r\n ? getScreeningDatesForQuery(showtimesQuery)\r\n : await loadScreeningDatesByQuery(showtimesQuery).then(() => getScreeningDatesForQuery(showtimesQuery))\r\n if (screeningDates.length) console.log('This film has screeningDates')\r\n else console.log('This film does not have screeningDates')\r\n })()\r\n }, [])\r\n\r\n if (filmDetails?.title && !hasViewItemFired) {\r\n setHasViewItemFired(true)\r\n AddToDataLayer({\r\n event: 'view_item',\r\n ecommerce: {\r\n items: [\r\n {\r\n item_name: filmDetails.title.text,\r\n item_category: 'Film',\r\n },\r\n ],\r\n },\r\n })\r\n }\r\n\r\n const setAttributesOnFilter = (attributeIds: string[]) => {\r\n const updateFilter = () => {\r\n // We have to add the filter options to the filter, otherwise we cannot enable them.\r\n // We want to enable filter options that don't exist on the current day so that we can get the message\r\n // that redirects the user to a day which does have that filter option.\r\n const filter = getFilterByIdAndType(filterId, FilterType.Showtime)\r\n runInAction(() => {\r\n const newFilter = { ...filter }\r\n\r\n newFilter.sections.attribute.options = [\r\n ...filter.sections.attribute.options\r\n .filter(option => !attributeIds.includes(option.value)) // Don't include an option twice\r\n .map(o => {\r\n return { selected: false, value: o.value }\r\n }), // Only attributes from the url should be selected by default\r\n ...attributeIds.map(attr => {\r\n return { selected: true, value: attr }\r\n }),\r\n ]\r\n\r\n filterDomainStore.data.showtimeFilters[filterId] = newFilter\r\n })\r\n }\r\n\r\n if (getFilterByIdAndType(filterId, FilterType.Showtime))\r\n updateFilter() // If filter already exists, fine - modify it\r\n else {\r\n const disposer = autorun(() => {\r\n // If filter doesn't exist, set up an autorun to detect when it does, modify it, then remove the autorun\r\n if (getFilterByIdAndType(filterId, FilterType.Showtime)) {\r\n updateFilter()\r\n disposer()\r\n }\r\n })\r\n }\r\n }\r\n\r\n const buttonMover = setInterval(function () {\r\n if (document.querySelector('.v-film-watchlist-button')) {\r\n filmDetailsButtons()\r\n clearInterval(buttonMover)\r\n }\r\n }, 100)\r\n\r\n const watchlistButtonClick = () => {\r\n loadMember().then(member => {\r\n if (!member) {\r\n OpenLoginModal.open()\r\n }\r\n })\r\n }\r\n\r\n const onOpenHandler = () => setIsOpen(true)\r\n\r\n const onCloseHandler = () => {\r\n setIsOpen(false)\r\n // Prevent onSitesChanged event from firing on subsequent interactions\r\n if (isSitesChanged) setIsSitesChangedLocked(true)\r\n }\r\n\r\n const onSitesChangedHandler = () => {\r\n if (!isSitesChanged) setIsSitesChanged(true)\r\n if (!isSitesChangedLocked) setAttributesOnFilter(attributeIds)\r\n if (getSelectedSites().length > 0) {\r\n document.querySelector('.main-nav').classList.remove('has-tooltip')\r\n }\r\n }\r\n\r\n const modalSitePickerEvents: ModalSitePickerEvents = {\r\n onClose: onCloseHandler,\r\n onSitesChanged: onSitesChangedHandler,\r\n }\r\n\r\n const sitePickerProps: ModalSitePickerPropsType = {\r\n show: isOpen,\r\n className: 'filtered',\r\n events: modalSitePickerEvents,\r\n displayText: {\r\n ...defaultModalSitePickerDisplayText,\r\n },\r\n sitePickerComponentProps: {\r\n displayText: {\r\n ...SitePickerForDateShowtimePicker.sitePickerComponentProps.displayText,\r\n },\r\n assets: {\r\n noSitesFoundIconName: 'calendar',\r\n failedToLoadDataIconName: 'calendar',\r\n removeSelectedSiteIconName: 'calendar',\r\n },\r\n },\r\n siteIds: playingSites,\r\n }\r\n\r\n const filmDetailsProps: FilmDetailsProps = {\r\n config: {\r\n thumbnail: {\r\n show: FilmDetails.config.thumbnail.show,\r\n mediaType: FilmDetails.config.thumbnail.mediaType,\r\n showWatchlistButton: false,\r\n },\r\n customFilmActions: {\r\n show: FilmDetails.config.customFilmActions.show,\r\n },\r\n synopsisLength: FilmDetails.config.synopsisLength,\r\n playTrailerButton: {\r\n ...defaultFilmDetailsProps.config.playTrailerButton,\r\n show: FilmDetails.config.playTrailer.show,\r\n },\r\n actionButton: { show: FilmDetails.config.actionButton.show },\r\n banner: { mediaType: FilmDetails.config.banner.mediaType },\r\n },\r\n events: {\r\n onActionButtonClicked: () => {\r\n showtimePickerRef.current.scrollIntoView()\r\n },\r\n onPlayTrailerButtonClicked: film => {\r\n movioTracker.movieTrailer(film.id)\r\n },\r\n onFilmAddedToWatchlist: film => {\r\n movioTracker.movieWatchList(film.id, false)\r\n },\r\n onFilmRemovedFromWatchlist: film => {\r\n movioTracker.movieWatchList(film.id, true)\r\n },\r\n },\r\n displayText: {\r\n ...FilmDetails.displayText,\r\n },\r\n assets: {\r\n playTrailerButtonIconName: 'play-circle',\r\n failedToLoadTrailerIconName: 'clapboard-with-cross-eyes',\r\n },\r\n cdnOptions: {\r\n filmThumbnailImage: { width: 200 },\r\n heroBannerImage: { width: 1920 },\r\n censorRatingIcon: { height: 60 },\r\n },\r\n }\r\n\r\n /*@ts-ignore*/\r\n delete filmDetailsProps.displayText.addToWatchlistLabel\r\n /*@ts-ignore*/\r\n delete filmDetailsProps.displayText.removeFromWatchlistLabel\r\n\r\n const initialCompositeFilterProps = {\r\n config: {\r\n filter: {\r\n filterId: filterId,\r\n },\r\n },\r\n }\r\n\r\n const compositeFilterPropsObj: CompositeFilterProps = {\r\n ...compositeFilterProps(initialCompositeFilterProps),\r\n displayText: {\r\n ...compositeFilterProps(initialCompositeFilterProps).displayText,\r\n resultCountMessage: '${count} showtime result(s) found',\r\n },\r\n filterId,\r\n config: {\r\n filterType: FilterType.Showtime,\r\n displayMode: compositeFilterProps(initialCompositeFilterProps).config.displayMode,\r\n filters: {\r\n [ShowtimeFilterKey.Attribute]: {\r\n enabled: true,\r\n index: 0,\r\n isMultiselect: true,\r\n },\r\n [ShowtimeFilterKey.Event]: {\r\n enabled: false,\r\n index: 1,\r\n isMultiselect: true,\r\n },\r\n [ShowtimeFilterKey.Genre]: {\r\n enabled: false,\r\n index: 2,\r\n isMultiselect: true,\r\n },\r\n },\r\n },\r\n }\r\n\r\n const dateShowtimepickerWrapperProps = {\r\n filterId,\r\n filmId,\r\n DateShowtimePicker: props.DateShowtimePicker,\r\n playingSites,\r\n }\r\n\r\n /**\r\n * Dev Note for SitePicker and DateShowtimePicker.\r\n * For the SitePicker, we only want to show the Sites that of films playing\r\n * For the DateShowtimePicker, we only want to pass in SELECTED sites which have films playing\r\n * */\r\n return (\r\n <>\r\n
\r\n \r\n \r\n {WatchAtHomeComponent.displayText && (\r\n \r\n {WatchAtHomeComponent.displayText.watchAtHomeButtonLabel}\r\n \r\n )}\r\n \r\n
\r\n\r\n {eventPromoNotEmpty && }\r\n {!suppressShowtimePicker && (\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n Choose Cinema\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n {FilmCarousel?.displayText?.filmItems?.length > 0 && }\r\n {FilmDetailsEventCarousel?.displayText?.eventItems?.length > 0 && (\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default FilmDetailsPage\r\n"],"names":["Slide","props","event","numberOfSlides","urlFactory","workflow","imgSrc","eventId","gallery","getEventStill","eventPictureSettings","defaultImgSrcsetDimensions","width","height","with","sources","mediaMaxWidth","dimensions","getEventPictureSettings","title","className","href","getEventDetailsUrl","map","source","media","srcSet","getImgSrcWithSizeParams","src","alt","dimensionQueryParams","Object","keys","key","value","filter","item","join","EventCarouselComponent","eventItems","displayText","items","id","options","length","hideArrows","numberOfSlidesClass","eventItem","RelatedFilmsCarouselComponent","filmItems","uuid","headerProps","filmItem","filmId","dateShowtimePickerProps","siteIds","entityIds","siteId","undefined","filmIds","selectedBusinessDate","screeningDate","assets","noSitesSelectedIconName","noShowtimesIconName","failedToLoadDataIconName","config","url","filmDetails","show","showFilmDetails","mediaType","playTrailerButton","showControls","autoPlay","muted","loop","datePicker","showtimeUrlFactory","showtime","getSeatPickerDetailsUrl","filmUrlFactory","film","getFilmDetailsUrl","dateShowtimePickerConfig","allFilmsToggle","events","showtimePickerEvents","cdnOptions","censorRatingIcon","filmThumbnailImage","attributeIcon","heroAttributeIcon","promotedAttributeIcon","movioTracker","onFilmActionLinkClicked","filmActionLink","window","location","assign","onShowtimeClicked","index","isAllocatedSeating","onPlayTrailerButtonClicked","movieTrailer","DateShowtimePickerWrapper","getOccProps","initialShowtimePickerProps","DateShowtimePicker","selectedSite","playingSites","includes","filterId","occProps","setOccProps","useState","useEffect","FilmDetailsPage","setPlayingSites","FilmDetails","SitePickerForDateShowtimePicker","FilmCarousel","WatchAtHomeComponent","FilmDetailsEventCarousel","EventPromotion","SuppressShowtimePickerComponent","isOpen","setIsOpen","showtimePickerRef","useRef","attributeIds","setAttributeIds","isSitesChanged","setIsSitesChanged","isSitesChangedLocked","setIsSitesChangedLocked","hasViewItemFired","setHasViewItemFired","description","image","desktop","links","eventPromoNotEmpty","suppressShowtimePicker","movieDetail","targetNode","document","getElementById","observer","MutationObserver","notificationTitleElement","querySelector","innerHTML","notificationElement","style","display","observe","attributes","childList","subtree","disconnect","watchlistButtonClick","setAttributesOnFilter","playingSiteIdsRes","e","console","error","allSiteIds","site","then","showtimesQuery","log","ecommerce","item_name","text","item_category","updateFilter","newFilter","sections","attribute","option","o","selected","attr","disposer","buttonMover","setInterval","clearInterval","member","sitePickerProps","onClose","onSitesChanged","classList","remove","sitePickerComponentProps","noSitesFoundIconName","removeSelectedSiteIconName","filmDetailsProps","thumbnail","showWatchlistButton","customFilmActions","synopsisLength","playTrailer","actionButton","banner","onActionButtonClicked","current","scrollIntoView","onFilmAddedToWatchlist","movieWatchList","onFilmRemovedFromWatchlist","playTrailerButtonIconName","failedToLoadTrailerIconName","heroBannerImage","addToWatchlistLabel","removeFromWatchlistLabel","initialCompositeFilterProps","compositeFilterPropsObj","resultCountMessage","filterType","displayMode","filters","enabled","isMultiselect","dateShowtimepickerWrapperProps","watchAtHomeUrl","watchAtHomeButtonLabel","ref","onClick"],"sourceRoot":""}