{"version":3,"file":"1878.9e1bc6ba800dc9614747.bundle.js","mappings":"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","sources":["webpack://vista.digital.curzon/./node_modules/@vista/omnichannel-components-ui/lib/src/lib/subcomponents/showtime-picker/types/context.js","webpack://vista.digital.curzon/./node_modules/@vista/omnichannel-components-ui/lib/src/lib/subcomponents/showtime-picker/subcomponents/film-action-link.js","webpack://vista.digital.curzon/./node_modules/@vista/omnichannel-components-ui/lib/src/lib/subcomponents/showtime-picker/subcomponents/film-details.js","webpack://vista.digital.curzon/./node_modules/@vista/omnichannel-components-ui/lib/src/lib/subcomponents/showtime-picker/subcomponents/film-thumbnail.js","webpack://vista.digital.curzon/./node_modules/@vista/omnichannel-components-ui/lib/src/lib/subcomponents/showtime-picker/subcomponents/site-details.js","webpack://vista.digital.curzon/./node_modules/@vista/omnichannel-components-ui/lib/src/lib/subcomponents/showtime-picker/subcomponents/site.js","webpack://vista.digital.curzon/./node_modules/@vista/omnichannel-components-ui/node_modules/date-fns/esm/isFuture/index.js","webpack://vista.digital.curzon/./node_modules/@vista/omnichannel-components-ui/lib/src/lib/subcomponents/showtime-picker/subcomponents/site-list.js","webpack://vista.digital.curzon/./node_modules/@vista/omnichannel-components-ui/lib/src/lib/subcomponents/showtime-picker/subcomponents/film.js","webpack://vista.digital.curzon/./node_modules/@vista/omnichannel-components-ui/lib/src/lib/subcomponents/showtime-picker/subcomponents/film-list.js","webpack://vista.digital.curzon/./node_modules/@vista/omnichannel-components-ui/lib/src/lib/subcomponents/showtime-picker/showtime-picker.js","webpack://vista.digital.curzon/./node_modules/@vista/omnichannel-components-ui/lib/src/lib/subcomponents/showtime-picker/subcomponents/film-list-skeleton.js","webpack://vista.digital.curzon/./node_modules/@vista/omnichannel-components-ui/lib/src/lib/subcomponents/showtime-picker/subcomponents/message.js","webpack://vista.digital.curzon/./node_modules/@vista/omnichannel-components-ui/lib/src/lib/subcomponents/showtime-picker/types/assets.js","webpack://vista.digital.curzon/./node_modules/@vista/omnichannel-components-ui/lib/src/lib/subcomponents/showtime-picker/types/cdn-options.js","webpack://vista.digital.curzon/./node_modules/@vista/omnichannel-components-ui/lib/src/lib/subcomponents/showtime-picker/types/config.js","webpack://vista.digital.curzon/./node_modules/@vista/omnichannel-components-ui/lib/src/lib/subcomponents/showtime-picker/types/display-text.js","webpack://vista.digital.curzon/./node_modules/@vista/omnichannel-components-ui/lib/src/lib/subcomponents/showtime-picker/types/events.js","webpack://vista.digital.curzon/./node_modules/@vista/omnichannel-components-ui/lib/src/lib/subcomponents/showtime-picker/utils/get-film-list-item-element-id.js","webpack://vista.digital.curzon/./node_modules/@vista/omnichannel-components-ui/lib/src/lib/subcomponents/showtime-picker/utils/showtime-picker-utils.js","webpack://vista.digital.curzon/./node_modules/@vista/omnichannel-components-ui/lib/src/lib/types/film-synopsis-length.js","webpack://vista.digital.curzon/./node_modules/@vista/omnichannel-components-ui/lib/src/lib/utils/get-film-synopsis-by-length.js"],"sourcesContent":["import { createEmptyContext } from '../../../utils/create-empty-context';\r\n/**\r\n * Showtime Picker context will wrap all children components and be available as merged props\r\n */\r\nexport const ShowtimePickerContextInstance = createEmptyContext();\r\n","import { jsx as _jsx } from \"react/jsx-runtime\";\r\nimport { bemClassBuilder } from '@vista-digital/bem-class-builder';\r\nimport { observer } from 'mobx-react';\r\nimport { useCallback, useContext, useMemo } from 'react';\r\nimport { useFilmContext } from '../../../context/film/hooks/use-film-context';\r\nimport { Link } from '../../link';\r\nimport { ShowtimePickerContextInstance } from '../types/context';\r\nconst b = bemClassBuilder('v-showtime-picker-film-action-link');\r\nexport const ShowtimePickerFilmActionLink = observer(() => {\r\n const { film } = useFilmContext();\r\n const { displayText, events, config } = useContext(ShowtimePickerContextInstance);\r\n const { onFilmActionLinkClicked } = events;\r\n const { urlFactory } = config.filmActionLink;\r\n if (!film)\r\n throw new Error('Cannot render the ShowtimePickerFilmActionLink without a film.');\r\n const filmUrl = useMemo(() => urlFactory === null || urlFactory === void 0 ? void 0 : urlFactory(film), [urlFactory, film]);\r\n const handleActionLinkClicked = useCallback(() => {\r\n onFilmActionLinkClicked === null || onFilmActionLinkClicked === void 0 ? void 0 : onFilmActionLinkClicked(film);\r\n }, [onFilmActionLinkClicked, film]);\r\n return (_jsx(\"div\", Object.assign({ className: b.block() }, { children: _jsx(Link, Object.assign({ className: b.element('link'), href: filmUrl, onClick: onFilmActionLinkClicked && handleActionLinkClicked }, { children: displayText.filmActionLinkText })) })));\r\n});\r\nShowtimePickerFilmActionLink.displayName = 'ShowtimePickerFilmActionLink';\r\n","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\r\nimport { bemClassBuilder } from '@vista-digital/bem-class-builder';\r\nimport { observer } from 'mobx-react';\r\nimport { useCallback, useContext, useMemo } from 'react';\r\nimport { FilmSynopsis } from '../../../components/film/synopsis/film-synopsis';\r\nimport { FilmTitle } from '../../../components/film/title/film-title';\r\nimport { useFilmContext } from '../../../context/film/hooks/use-film-context';\r\nimport { HeadingLevel } from '../../heading/heading';\r\nimport { Link } from '../../link';\r\nimport { ShowtimePickerContextInstance } from '../types/context';\r\nconst b = bemClassBuilder('v-showtime-picker-film-details');\r\nexport const ShowtimePickerFilmDetails = observer(() => {\r\n const { film } = useFilmContext();\r\n const { config, events, cdnOptions } = useContext(ShowtimePickerContextInstance);\r\n const { onFilmClicked } = events;\r\n const { filmUrlFactory, filmSynopsisLength } = config;\r\n if (!film)\r\n throw new Error('Cannot render the ShowtimePickerFilmDetails without a film.');\r\n const filmUrl = useMemo(() => filmUrlFactory === null || filmUrlFactory === void 0 ? void 0 : filmUrlFactory(film), [filmUrlFactory, film]);\r\n const handleFilmClicked = useCallback(() => {\r\n onFilmClicked === null || onFilmClicked === void 0 ? void 0 : onFilmClicked(film);\r\n }, [onFilmClicked, film]);\r\n return (_jsxs(\"div\", Object.assign({ className: b.block() }, { children: [_jsx(Link, Object.assign({ className: b.element('film-link'), href: filmUrl, onClick: onFilmClicked && handleFilmClicked }, { children: _jsx(FilmTitle, { config: { headingLevel: HeadingLevel.H3 }, cdnOptions: { censorRatingIcon: cdnOptions.censorRatingIcon } }) })), _jsx(FilmSynopsis, { displayText: { label: undefined }, config: { length: filmSynopsisLength } })] })));\r\n});\r\nShowtimePickerFilmDetails.displayName = 'ShowtimePickerFilmDetails';\r\n","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\r\nimport { bemClassBuilder } from '@vista-digital/bem-class-builder';\r\nimport { observer } from 'mobx-react';\r\nimport { useCallback, useContext, useMemo } from 'react';\r\nimport { FilmPromotedTag } from '../../../components/film/promoted-tag/film-promoted-tag';\r\nimport { FilmThumbnail } from '../../../components/film/thumbnail/film-thumbnail';\r\nimport { useFilmContext } from '../../../context/film/hooks/use-film-context';\r\nimport { Link } from '../../link';\r\nimport { PromotedTagAlignment } from '../../promoted-tag';\r\nimport { ShowtimePickerContextInstance } from '../types/context';\r\nconst b = bemClassBuilder('v-showtime-picker-film-thumbnail');\r\nexport const ShowtimePickerFilmThumbnail = observer(() => {\r\n const { film } = useFilmContext();\r\n const { config, events, cdnOptions } = useContext(ShowtimePickerContextInstance);\r\n const { filmUrlFactory, filmDetails, componentId } = config;\r\n const { mediaType } = filmDetails;\r\n const { onFilmClicked } = events;\r\n if (!film)\r\n throw new Error('Cannot render the ShowtimePickerFilmThumbnail without a film.');\r\n const filmUrl = useMemo(() => filmUrlFactory === null || filmUrlFactory === void 0 ? void 0 : filmUrlFactory(film), [filmUrlFactory, film]);\r\n const handleThumbnailClicked = useCallback(() => {\r\n onFilmClicked === null || onFilmClicked === void 0 ? void 0 : onFilmClicked(film);\r\n }, [onFilmClicked, film]);\r\n return (_jsxs(\"div\", Object.assign({ className: b.block({ mediaType }) }, { children: [_jsx(FilmPromotedTag, { config: { alignment: PromotedTagAlignment.Center }, componentId: componentId }), _jsx(Link, Object.assign({ className: b.element('link'), href: filmUrl, onClick: onFilmClicked && handleThumbnailClicked }, { children: _jsx(FilmThumbnail, { config: { mediaType, showWatchlistButton: true }, cdnOptions: { filmThumbnailImage: cdnOptions.filmThumbnailImage }, events: events }) }))] })));\r\n});\r\nShowtimePickerFilmThumbnail.displayName = 'ShowtimePickerFilmThumbnail';\r\n","import { jsx as _jsx } from \"react/jsx-runtime\";\r\nimport { bemClassBuilder } from '@vista-digital/bem-class-builder';\r\nimport { observer } from 'mobx-react';\r\nimport { useI18n } from '../../../context/occ/hooks/use-i18n';\r\nimport { Heading } from '../../heading/heading';\r\nconst b = bemClassBuilder('v-showtime-picker-site-details');\r\nexport const ShowtimePickerSiteDetails = observer(props => {\r\n const i18n = useI18n();\r\n const { site, headingLevel } = props;\r\n return (_jsx(\"div\", Object.assign({ className: b.block() }, { children: _jsx(Heading, Object.assign({ level: headingLevel, className: b.element('heading', { [headingLevel]: true }) }, { children: i18n.translatable(site.name) })) })));\r\n});\r\nShowtimePickerSiteDetails.displayName = 'ShowtimePickerSiteDetails';\r\n","import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from 'react/jsx-runtime'\r\nimport {\r\n addErrorNotification,\r\n getAdvanceBookingPeriodForShowtime,\r\n getAttributesByIds,\r\n getFetchedShowtimeById,\r\n getSiteById,\r\n groupArrayBy,\r\n isFetchedDataValid,\r\n isNonEmptyArray,\r\n NotificationType,\r\n} from '@vista/omnichannel-components-domain'\r\nimport { bemClassBuilder } from '@vista-digital/bem-class-builder'\r\nimport { isFuture, isToday } from 'date-fns'\r\nimport { observer } from 'mobx-react'\r\nimport { useContext } from 'react'\r\nimport { FilmAdvanceBookingPeriodNotificationUI } from '../../../components/film/advance-booking-period-notification/subcomponents/ui'\r\nimport { useOccContext } from '../../../context/occ/hooks/use-occ-context'\r\nimport { getIdForComponentNotification } from '../../../utils/get-id-for-component-notification'\r\nimport { AttributeList } from '../../attribute-list/attribute-list'\r\nimport { getCommonAttributes } from '../../attribute-list/utils'\r\nimport { DisplayText } from '../../display-text/display-text'\r\nimport { HeadingLevel } from '../../heading/heading'\r\nimport { ShowtimeList } from '../../showtime-list/showtime-list'\r\nimport { ShowtimePickerContextInstance } from '../types/context'\r\nimport { ShowtimePickerSiteDetails } from './site-details'\r\nconst b = bemClassBuilder('v-showtime-picker-site')\r\nexport const ShowtimePickerSite = observer(props => {\r\n var _a\r\n const { i18n, assets: occAssets } = useOccContext()\r\n const { siteId, showtimes, filmId } = props\r\n const site = getSiteById(siteId)\r\n if (!site) return null\r\n const { displayText, cdnOptions, config, getNoShowtimesForSiteDisplayTextProps, groupShowtimesByDate, events } =\r\n useContext(ShowtimePickerContextInstance)\r\n const { filmDetails, showSiteDetails } = config\r\n const allAttributes = showtimes.map(showtime => getAttributesByIds(showtime.attributeIds))\r\n const commonAttributes = getCommonAttributes(allAttributes)\r\n const siteHeadingLevel = filmDetails.show ? HeadingLevel.H4 : HeadingLevel.H3\r\n const showtimeListHeadingLevel = filmDetails.show ? HeadingLevel.H5 : HeadingLevel.H4\r\n const hasShowtimes = isNonEmptyArray(showtimes)\r\n // The booking period will be the same for all showtime for the same film and site.\r\n // The booking period will be the same for all showtimes for the same film and site.\r\n const isValidShowtime = hasShowtimes && isFetchedDataValid(getFetchedShowtimeById(showtimes[0].id))\r\n const bookingPeriod =\r\n hasShowtimes && isValidShowtime ? getAdvanceBookingPeriodForShowtime(showtimes[0].id) : undefined\r\n // Notifications will be the same for all showtimes for the same film and site. Use the same ID to prevent duplicates.\r\n const bookingPeriodNotificationId = getIdForComponentNotification(\r\n 'showtime-picker',\r\n NotificationType.Error,\r\n `booking-period-${filmId}-${siteId}`\r\n )\r\n const noShowtimesDisplayTextProps =\r\n (_a =\r\n getNoShowtimesForSiteDisplayTextProps === null || getNoShowtimesForSiteDisplayTextProps === void 0\r\n ? void 0\r\n : getNoShowtimesForSiteDisplayTextProps(site.id, filmId)) !== null && _a !== void 0\r\n ? _a\r\n : {\r\n label: displayText.noShowtimesForAnyDateTitle,\r\n }\r\n const siteName = i18n.translatable(site.name)\r\n const handleShowtimeClicked = showtime => {\r\n var _a\r\n if (bookingPeriod && isFuture(new Date(bookingPeriod.startsAt))) {\r\n addShowtimeUnavailableErrorNotification(\r\n displayText,\r\n occAssets,\r\n siteName,\r\n bookingPeriodNotificationId,\r\n bookingPeriod,\r\n i18n\r\n )\r\n return\r\n }\r\n ;(_a = events.onShowtimeClicked) === null || _a === void 0 ? void 0 : _a.call(events, showtime)\r\n }\r\n const getShowtimePickerShowtimeList = (validShowtimes, heading, key) =>\r\n _jsx(\r\n ShowtimeList,\r\n {\r\n showtimes: validShowtimes,\r\n hiddenAttributeIds: commonAttributes.map(attr => attr.id),\r\n ianaTimeZoneName: site.ianaTimeZoneName,\r\n displayText: Object.assign(Object.assign({}, displayText), { heading }),\r\n config: Object.assign(Object.assign({}, config), { headingLevel: showtimeListHeadingLevel }),\r\n cdnOptions: cdnOptions,\r\n onShowtimeClicked: handleShowtimeClicked,\r\n },\r\n key\r\n )\r\n const getGroupedShowtimesList = () => {\r\n if (!groupShowtimesByDate) return getShowtimePickerShowtimeList(showtimes)\r\n const showtimesByBusinessDate = groupArrayBy(showtimes, showtime => showtime.schedule.businessDate)\r\n const groupedShowtimeList = Object.keys(showtimesByBusinessDate).map(businessDate => {\r\n const formattedBusinessDate = i18n.template(\r\n displayText.businessDateFormat,\r\n { businessDate },\r\n { date: { ianaTimeZoneName: site.ianaTimeZoneName } }\r\n )\r\n return getShowtimePickerShowtimeList(\r\n showtimesByBusinessDate[businessDate],\r\n formattedBusinessDate,\r\n businessDate\r\n )\r\n })\r\n return groupedShowtimeList\r\n }\r\n\r\n /*\r\n * HACK: siteIds prop iterate out to site.js per showtime film. Added check to see whether site has a screen date.\r\n * if not emptySiteClass is 'empty-site' otherwise ''.\r\n * */\r\n const emptySiteClass =\r\n !hasShowtimes && noShowtimesDisplayTextProps.label === displayText.noShowtimesForSiteAndFilmMessage\r\n ? ' empty-site'\r\n : ''\r\n\r\n return _jsxs(\r\n 'div',\r\n Object.assign(\r\n // HACK: Append emptySiteClass\r\n { className: b.block() + emptySiteClass },\r\n {\r\n children: [\r\n showSiteDetails && _jsx(ShowtimePickerSiteDetails, { site: site, headingLevel: siteHeadingLevel }),\r\n commonAttributes.length > 0 &&\r\n _jsx(\r\n 'div',\r\n Object.assign(\r\n { className: b.element('common-attributes') },\r\n {\r\n children: _jsx(AttributeList, {\r\n attributes: commonAttributes,\r\n heading: displayText.commonAttributesListLabel,\r\n showDetails: false,\r\n iconCdnOptions: cdnOptions.attributeIcon,\r\n }),\r\n }\r\n )\r\n ),\r\n hasShowtimes\r\n ? _jsxs(_Fragment, {\r\n children: [\r\n _jsx(FilmAdvanceBookingPeriodNotificationUI, {\r\n id: bookingPeriodNotificationId,\r\n bookingPeriod: bookingPeriod,\r\n displayText: {\r\n messageFormat: displayText.advanceBookingPeriodForSiteNotificationFormat,\r\n todayMessageFormat:\r\n displayText.advanceBookingPeriodForSiteTodayNotificationFormat,\r\n },\r\n templateParameters: { siteName },\r\n }),\r\n getGroupedShowtimesList(),\r\n ],\r\n })\r\n : _jsx(\r\n DisplayText,\r\n Object.assign({}, noShowtimesDisplayTextProps, {\r\n className: b.element('empty-list-label'),\r\n })\r\n ),\r\n ],\r\n }\r\n )\r\n )\r\n})\r\nShowtimePickerSite.displayName = 'ShowtimePickerSite'\r\nconst addShowtimeUnavailableErrorNotification = (\r\n displayText,\r\n occAssets,\r\n siteName,\r\n notificationId,\r\n bookingPeriod,\r\n i18n\r\n) => {\r\n const { startsAt } = bookingPeriod\r\n const template = isToday(new Date(startsAt))\r\n ? displayText.showtimeUnavailableAdvanceBookingPeriodTodayNotificationFormat\r\n : displayText.showtimeUnavailableAdvanceBookingPeriodNotificationFormat\r\n addErrorNotification({\r\n id: notificationId,\r\n iconName: occAssets.advanceBookingPeriodNotificationIconName,\r\n messages: [i18n.template(template, { siteName, startsAt })],\r\n })\r\n}\r\n","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isFuture\n * @category Common Helpers\n * @summary Is the given date in the future?\n * @pure false\n *\n * @description\n * Is the given date in the future?\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is in the future\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // If today is 6 October 2014, is 31 December 2014 in the future?\n * var result = isFuture(new Date(2014, 11, 31))\n * //=> true\n */\n\nexport default function isFuture(dirtyDate) {\n requiredArgs(1, arguments);\n return toDate(dirtyDate).getTime() > Date.now();\n}","import { jsx as _jsx } from \"react/jsx-runtime\";\r\nimport { bemClassBuilder } from '@vista-digital/bem-class-builder';\r\nimport { observer } from 'mobx-react';\r\nimport { useContext } from 'react';\r\nimport { useFilmContext } from '../../../context/film/hooks/use-film-context';\r\nimport { ShowtimePickerContextInstance } from '../types/context';\r\nimport { ShowtimePickerSite } from './site';\r\nconst b = bemClassBuilder('v-showtime-picker-site-list');\r\nexport const ShowtimePickerSiteList = observer(props => {\r\n const { showtimes } = props;\r\n const { siteIds } = useContext(ShowtimePickerContextInstance);\r\n const { filmId } = useFilmContext();\r\n return (_jsx(\"ul\", Object.assign({ className: b.block() }, { children: siteIds.map(siteId => (_jsx(\"li\", Object.assign({ className: b.element('item') }, { children: _jsx(ShowtimePickerSite, { siteId: siteId, showtimes: showtimes.filter(showtime => showtime.siteId === siteId), filmId: filmId }) }), siteId))) })));\r\n});\r\nShowtimePickerSiteList.displayName = 'ShowtimePickerSiteList';\r\n","import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\r\nimport { getFilmAvailability } from '@vista/omnichannel-components-domain';\r\nimport { bemClassBuilder } from '@vista-digital/bem-class-builder';\r\nimport { observer } from 'mobx-react';\r\nimport { useContext } from 'react';\r\nimport { FilmCustomActionList } from '../../../components/film/custom-action-list/film-custom-action-list';\r\nimport { FilmRuntime } from '../../../components/film/runtime/film-runtime';\r\nimport { FilmTrailerButton } from '../../../components/film/trailer-button/film-trailer-button';\r\nimport { FilmContextInstance } from '../../../context/film/types/context';\r\nimport { AttributeLegend } from '../../attribute-legend/attribute-legend';\r\nimport { getShowtimeAttributes } from '../../attribute-list/utils';\r\nimport { HeadingLevel } from '../../heading';\r\nimport { ShowtimePickerContextInstance } from '../types/context';\r\nimport { ShowtimePickerFilmActionLink } from './film-action-link';\r\nimport { ShowtimePickerFilmDetails } from './film-details';\r\nimport { ShowtimePickerFilmThumbnail } from './film-thumbnail';\r\nimport { ShowtimePickerSiteList } from './site-list';\r\nconst b = bemClassBuilder('v-showtime-picker-film');\r\nexport const ShowtimePickerFilm = observer(props => {\r\n const { film, showtimes } = props;\r\n const { config, displayText, assets, events, cdnOptions } = useContext(ShowtimePickerContextInstance);\r\n const { filmDetails, attributeLegend, playTrailerButton, customFilmActions, filmActionLink } = config;\r\n const showtimeAttributes = getShowtimeAttributes(showtimes);\r\n const filteredAttributes = attributeLegend.attributeFilterFn\r\n ? attributeLegend.attributeFilterFn(showtimeAttributes)\r\n : showtimeAttributes;\r\n // We use this to display the Film Promoted Tag.\r\n const filmAvailability = getFilmAvailability(film.id);\r\n return (_jsx(FilmContextInstance.Provider, Object.assign({ value: { film, filmId: film.id, filmAvailability } }, { children: _jsxs(\"div\", Object.assign({ className: b.block({ noFilmDetails: !filmDetails.show, mediaType: filmDetails.mediaType }) }, { children: [filmDetails.show && (_jsxs(_Fragment, { children: [_jsx(ShowtimePickerFilmThumbnail, {}), _jsx(ShowtimePickerFilmDetails, {}), customFilmActions.show && _jsx(FilmCustomActionList, {}), _jsx(FilmRuntime, { config: { labelHeadingLevel: HeadingLevel.H5 }, displayText: { label: displayText.runtimeLabel } }), playTrailerButton.show && (_jsx(FilmTrailerButton, { assets: assets, displayText: displayText, events: events, config: config.playTrailerButton }))] })), attributeLegend.show && !!filteredAttributes.length && (_jsx(AttributeLegend, { heading: displayText.attributeLegendLabel, showLabel: true, attributes: filteredAttributes, viewLegendButtonLabel: displayText.attributeLegendViewButtonLabel, modalHelpText: displayText.attributeLegendModalHelpText, iconCdnOptions: cdnOptions.attributeIcon })), _jsx(ShowtimePickerSiteList, { showtimes: showtimes }), filmActionLink.show && _jsx(ShowtimePickerFilmActionLink, {})] })) })));\r\n});\r\nShowtimePickerFilm.displayName = 'ShowtimePickerFilm';\r\n","import { jsx as _jsx } from 'react/jsx-runtime'\r\nimport { getCxmFilmsForComponent, getFilmsByIds, LoadingState } from '@vista/omnichannel-components-domain'\r\nimport { bemClassBuilder } from '@vista-digital/bem-class-builder'\r\nimport { observer } from 'mobx-react'\r\nimport { useContext } from 'react'\r\nimport { useI18n } from '../../../context/occ/hooks/use-i18n'\r\nimport { useOccConfig } from '../../../context/occ/hooks/use-occ-config'\r\nimport { sortAndSliceFilms } from '../../../utils/film-sort-utils'\r\nimport { ShowtimePickerContextInstance } from '../types/context'\r\nimport { getFilmListItemElementId } from '../utils/get-film-list-item-element-id'\r\nimport { ShowtimePickerFilm } from './film'\r\nimport { ShowtimePickerFilmListSkeleton } from './film-list-skeleton'\r\n\r\nconst b = bemClassBuilder('v-showtime-picker-film-list')\r\nexport const ShowtimePickerFilmList = observer(() => {\r\n const i18n = useI18n()\r\n const { enableSkeletonLoadingIndicators } = useOccConfig()\r\n const {\r\n config,\r\n filmIds,\r\n siteIds,\r\n showtimes,\r\n filmsLoadingState,\r\n getNoShowtimesForSiteDisplayTextProps,\r\n displayText,\r\n } = useContext(ShowtimePickerContextInstance)\r\n const { filmDetails, showSiteDetails, componentId } = config\r\n const films = getFilmsByIds(filmIds)\r\n const cxmFilms = componentId ? getCxmFilmsForComponent(componentId) : undefined\r\n const sortedFilms = sortAndSliceFilms(films, i18n, cxmFilms)\r\n\r\n // HACK: Created function filmWithNoShowtimesClass, to return 'film-with-no-showtime' if film has no showtimes.\r\n const filmWithNoShowtimesClass = filmId => {\r\n const filmShowTimes = showtimes.filter(showtime => showtime.filmId === filmId)\r\n return !filmShowTimes.length &&\r\n getNoShowtimesForSiteDisplayTextProps &&\r\n siteIds.every(siteId => {\r\n const value = getNoShowtimesForSiteDisplayTextProps(siteId, filmId)\r\n return value && value.label === displayText.noShowtimesForSiteAndFilmMessage\r\n })\r\n ? ' film-with-no-showtimes'\r\n : ''\r\n }\r\n\r\n switch (filmsLoadingState) {\r\n case LoadingState.Success:\r\n return _jsx(\r\n 'ul',\r\n Object.assign(\r\n { className: b.block() },\r\n {\r\n children: sortedFilms.map(film =>\r\n _jsx(\r\n 'li',\r\n Object.assign(\r\n {\r\n // HACK: run filmWithNoShowtimesClass to return 'film-with-no-showtimes' or ''\r\n className: b.element('item' + filmWithNoShowtimesClass(film.id)),\r\n id: getFilmListItemElementId(film.id),\r\n },\r\n {\r\n children: _jsx(ShowtimePickerFilm, {\r\n film: film,\r\n showtimes: showtimes.filter(showtime => showtime.filmId === film.id),\r\n }),\r\n }\r\n ),\r\n film.id\r\n )\r\n ),\r\n }\r\n )\r\n )\r\n case LoadingState.NotLoaded:\r\n case LoadingState.Loading: {\r\n return enableSkeletonLoadingIndicators\r\n ? _jsx(ShowtimePickerFilmListSkeleton, {\r\n numberOfFilms: filmIds.length > 0 ? filmIds.length : 2,\r\n numberOfSites: siteIds.length > 0 ? siteIds.length : 2,\r\n showFilmDetails: filmDetails.show,\r\n showSiteDetails: showSiteDetails,\r\n filmMediaType: filmDetails.mediaType,\r\n })\r\n : null\r\n }\r\n default:\r\n return null\r\n }\r\n})\r\nShowtimePickerFilmList.displayName = 'ShowtimePickerFilmList'\r\n","import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\r\nimport { bemClassBuilder } from '@vista-digital/bem-class-builder';\r\nimport { observer } from 'mobx-react';\r\nimport { useCallback } from 'react';\r\nimport { useMemberRewards } from '../../hooks/use-member-rewards';\r\nimport { Button } from '../button/button';\r\nimport { ButtonColor } from '../button/types/color';\r\nimport { ButtonSize } from '../button/types/size';\r\nimport { ShowtimePickerFilmList } from './subcomponents/film-list';\r\nimport { ShowtimePickerMessage } from './subcomponents/message';\r\nimport { ShowtimePickerContextInstance } from './types/context';\r\nconst b = bemClassBuilder('v-showtime-picker');\r\n/**\r\n * The **Showtime Picker** component renders a list of showtimes for a given set of films and sites.\r\n */\r\nexport const ShowtimePicker = observer(props => {\r\n const { config, invalidStateMessage, displayText, events } = props;\r\n // Load member rewards to show reward-restricted booking periods.\r\n useMemberRewards();\r\n const handleActionButtonClicked = useCallback(() => {\r\n var _a;\r\n (_a = events.onActionButtonClicked) === null || _a === void 0 ? void 0 : _a.call(events);\r\n }, [events]);\r\n const actionButton = (_jsx(Button, { className: b.element('action-button'), label: displayText.actionButtonLabel, color: ButtonColor.Primary, size: ButtonSize.Large, onClick: handleActionButtonClicked }));\r\n return (_jsx(ShowtimePickerContextInstance.Provider, Object.assign({ value: props }, { children: _jsx(\"div\", Object.assign({ className: b.block() }, { children: invalidStateMessage ? (_jsx(ShowtimePickerMessage, Object.assign({}, props, { actionButton: config.actionButton.showOnMessage ? actionButton : undefined }, invalidStateMessage))) : (_jsxs(_Fragment, { children: [_jsx(ShowtimePickerFilmList, {}), config.actionButton.show && actionButton] })) })) })));\r\n});\r\nShowtimePicker.displayName = 'ShowtimePicker';\r\n","import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\r\nimport { createFilledArray } from '@vista/omnichannel-components-domain';\r\nimport { bemClassBuilder } from '@vista-digital/bem-class-builder';\r\nimport { observer } from 'mobx-react';\r\nimport { FilmRuntimeSkeleton } from '../../../components/film/runtime/film-runtime';\r\nimport { FilmThumbnailSkeleton } from '../../../components/film/thumbnail/subcomponents/ui';\r\nimport { FilmTitleSkeleton } from '../../../components/film/title/subcomponents/ui';\r\nimport { ShowtimeListSkeleton } from '../../showtime-list/subcomponents/skeleton';\r\nconst bSiteList = bemClassBuilder('v-showtime-picker-site-list');\r\nconst bFilm = bemClassBuilder('v-showtime-picker-film');\r\nconst bShowtimePickerThumbnail = bemClassBuilder('v-showtime-picker-film-thumbnail');\r\nexport const ShowtimePickerFilmListSkeleton = observer(props => {\r\n const { numberOfFilms, numberOfSites, showFilmDetails, showSiteDetails, filmMediaType } = props;\r\n const emptyArray = createFilledArray(undefined, numberOfFilms);\r\n return (_jsx(\"ul\", Object.assign({ className: \"v-showtime-picker-film-list\" }, { children: emptyArray.map((_, i) => (_jsx(\"li\", Object.assign({ className: \"v-showtime-picker-film-list__item\" }, { children: _jsxs(\"div\", Object.assign({ className: bFilm.block({ noFilmDetails: !showFilmDetails, mediaType: filmMediaType }) }, { children: [showFilmDetails && (_jsxs(_Fragment, { children: [_jsx(\"div\", Object.assign({ className: bShowtimePickerThumbnail.block({\r\n mediaType: filmMediaType,\r\n skeleton: true\r\n }) }, { children: _jsx(FilmThumbnailSkeleton, { mediaType: filmMediaType }) })), _jsx(\"div\", Object.assign({ className: \"v-showtime-picker-film-details\" }, { children: _jsx(FilmTitleSkeleton, {}) })), _jsx(FilmRuntimeSkeleton, {})] })), _jsx(\"ul\", Object.assign({ className: bSiteList.block({ noFilmDetails: !showFilmDetails }) }, { children: renderSkeletonSiteGroups(numberOfSites, showSiteDetails) }))] })) }), i))) })));\r\n});\r\nShowtimePickerFilmListSkeleton.displayName = 'ShowtimePickerFilmListSkeleton';\r\nfunction renderSkeletonSiteGroups(numberOfSites, showSiteDetails) {\r\n const emptyArray = createFilledArray(undefined, numberOfSites);\r\n return emptyArray.map((_, i) => (_jsx(\"li\", Object.assign({ className: bSiteList.element('item') }, { children: _jsxs(\"div\", Object.assign({ className: \"v-showtime-picker-site\" }, { children: [showSiteDetails && (_jsx(\"div\", Object.assign({ className: \"v-showtime-picker-site-details-heading\" }, { children: _jsx(\"div\", { className: \"v-showtime-picker-site-details__title--skeleton\" }) }))), _jsx(ShowtimeListSkeleton, { numberOfShowtimes: 7 })] })) }), i)));\r\n}\r\n","import { jsx as _jsx } from \"react/jsx-runtime\";\r\nimport { clearFilter, FilterType, ShowtimeFilterKey } from '@vista/omnichannel-components-domain';\r\nimport { bemClassBuilder } from '@vista-digital/bem-class-builder';\r\nimport { observer } from 'mobx-react';\r\nimport { useI18n } from '../../../context/occ/hooks/use-i18n';\r\nimport { Message } from '../../message/message';\r\nexport var ShowtimePickerMessageType;\r\n(function (ShowtimePickerMessageType) {\r\n ShowtimePickerMessageType[\"NoCinemasSelected\"] = \"NoCinemasSelected\";\r\n ShowtimePickerMessageType[\"NoShowtimesForFilter\"] = \"NoShowtimesForFilter\";\r\n ShowtimePickerMessageType[\"NoShowtimesAllDates\"] = \"NoShowtimesAllDates\";\r\n ShowtimePickerMessageType[\"NoShowtimesForFilmOnDate\"] = \"NoShowtimesForFilmOnDate\";\r\n ShowtimePickerMessageType[\"NoShowtimesForSitesOnDate\"] = \"NoShowtimesForSitesOnDate\";\r\n ShowtimePickerMessageType[\"FailedToLoadData\"] = \"FailedToLoadData\";\r\n})(ShowtimePickerMessageType || (ShowtimePickerMessageType = {}));\r\nconst b = bemClassBuilder('v-showtime-picker-message');\r\nexport const ShowtimePickerMessage = observer(props => {\r\n const i18n = useI18n();\r\n const { displayText, config, assets, messageType, actionButton, messageFilmTitle } = props;\r\n return (_jsx(Message, Object.assign({}, getShowtimePickerMessageProps(messageType, assets, displayText, i18n, messageFilmTitle), { className: b.block() }, { children: getActionButton(messageType, displayText, config, actionButton) })));\r\n});\r\nShowtimePickerMessage.displayName = 'ShowtimePickerMessage';\r\nconst getShowtimePickerMessageProps = (messageType, assets, displayText, i18n, selectedFilmTitle) => {\r\n switch (messageType) {\r\n case ShowtimePickerMessageType.NoCinemasSelected:\r\n return {\r\n iconName: assets.noSitesSelectedIconName,\r\n title: displayText.noSitesSelectedTitle,\r\n description: displayText.noSitesSelectedMessage\r\n };\r\n case ShowtimePickerMessageType.NoShowtimesAllDates:\r\n return {\r\n iconName: assets.noShowtimesIconName,\r\n title: displayText.noShowtimesForAnyDateTitle,\r\n description: displayText.noShowtimesForAnyDateMessage\r\n };\r\n case ShowtimePickerMessageType.NoShowtimesForFilter:\r\n return { iconName: assets.noShowtimesIconName, description: displayText.noShowtimesForFilterMessage };\r\n case ShowtimePickerMessageType.NoShowtimesForFilmOnDate:\r\n return {\r\n iconName: assets.noShowtimesIconName,\r\n description: selectedFilmTitle\r\n ? getFormattedMessage(displayText.noShowtimesForFilmMessage, selectedFilmTitle, i18n)\r\n : displayText.noShowtimesGenericMessage\r\n };\r\n case ShowtimePickerMessageType.NoShowtimesForSitesOnDate:\r\n return { iconName: assets.noShowtimesIconName, description: displayText.noShowtimesGenericMessage };\r\n case ShowtimePickerMessageType.FailedToLoadData:\r\n return {\r\n iconName: assets.failedToLoadDataIconName,\r\n title: displayText.failedToLoadDataTitle,\r\n description: displayText.failedToLoadDataMessage\r\n };\r\n default:\r\n return undefined;\r\n }\r\n};\r\nconst getActionButton = (messageType, displayText, config, actionButton) => {\r\n var _a;\r\n const filterId = (_a = config.filter) === null || _a === void 0 ? void 0 : _a.filterId;\r\n if (messageType === ShowtimePickerMessageType.NoShowtimesForFilter && filterId) {\r\n return (_jsx(\"p\", Object.assign({ className: b.element('clear-button'), onClick: () => handleClearButtonClicked(filterId) }, { children: displayText.noShowtimesForFilterClearButtonLabel })));\r\n }\r\n return config.actionButton.show && actionButton;\r\n};\r\nconst handleClearButtonClicked = (filterId) => {\r\n clearFilter({ id: filterId, type: FilterType.Showtime, keys: Object.values(ShowtimeFilterKey) });\r\n};\r\nconst getFormattedMessage = (template, selectedFilmTitle, i18n) => {\r\n return i18n.template(template, {\r\n selectedFilmTitle: i18n.translatable(selectedFilmTitle)\r\n });\r\n};\r\n","import { nonEmptyStringValidator } from '@vista/omnichannel-components-domain';\r\nimport { Validator } from '@vista-digital/validator';\r\nimport { defaultFilmTrailerButtonAssets, filmTrailerButtonAssetsValidatorSchema } from '../../../components/film/trailer-button/types/assets';\r\n/**\r\n * Default assets for the Showtime Picker component.\r\n */\r\nexport const defaultShowtimePickerAssets = Object.assign(Object.assign({}, defaultFilmTrailerButtonAssets), { noSitesSelectedIconName: 'location-info-message', noShowtimesIconName: 'ticket-info-message', failedToLoadDataIconName: 'generic-error-message' });\r\nexport const showtimePickerAssetsValidator = Validator.object(Object.assign(Object.assign({}, filmTrailerButtonAssetsValidatorSchema), { noSitesSelectedIconName: nonEmptyStringValidator, noShowtimesIconName: nonEmptyStringValidator, failedToLoadDataIconName: nonEmptyStringValidator }));\r\n","import { Validator } from '@vista-digital/validator';\r\nimport { cdnStandardAssetOptionsValidator } from '../../../validators/cdn-asset-options';\r\nexport const defaultShowtimePickerCdnOptions = {\r\n censorRatingIcon: { height: 60 },\r\n filmThumbnailImage: { width: 200 },\r\n attributeIcon: { height: 40 },\r\n heroAttributeIcon: { height: 64 },\r\n promotedAttributeIcon: { height: 32 }\r\n};\r\nexport const showtimePickerCdnOptionsValidator = Validator.object({\r\n censorRatingIcon: cdnStandardAssetOptionsValidator,\r\n filmThumbnailImage: cdnStandardAssetOptionsValidator,\r\n attributeIcon: cdnStandardAssetOptionsValidator,\r\n heroAttributeIcon: cdnStandardAssetOptionsValidator,\r\n promotedAttributeIcon: cdnStandardAssetOptionsValidator\r\n});\r\n","import { nonEmptyStringValidator, ShowtimeFilterKey } from '@vista/omnichannel-components-domain';\r\nimport { Validator } from '@vista-digital/validator';\r\nimport { FilmThumbnailMediaType } from '../../../components/film/thumbnail/types/media-type';\r\nimport { defaultFilmTrailerConfig, filmTrailerConfigValidatorSchema } from '../../../components/film/trailer/types/config';\r\nimport { FilmSynopsisLength } from '../../../types/film-synopsis-length';\r\nimport { getComponentFilterConfigValidator } from '../../../validators/component-filter-config';\r\nexport const defaultShowtimePickerConfig = {\r\n filmDetails: {\r\n show: true,\r\n mediaType: FilmThumbnailMediaType.Poster\r\n },\r\n filmSynopsisLength: FilmSynopsisLength.Shortest,\r\n showSiteDetails: true,\r\n showScreenName: false,\r\n attributeLegend: {\r\n show: true\r\n },\r\n customFilmActions: {\r\n show: true\r\n },\r\n actionButton: {\r\n show: true,\r\n showOnMessage: false\r\n },\r\n playTrailerButton: Object.assign(Object.assign({}, defaultFilmTrailerConfig), { show: true }),\r\n filmActionLink: {\r\n show: true\r\n }\r\n};\r\nexport const showtimePickerFilmDetailsValidator = Validator.object({\r\n show: Validator.boolean(),\r\n mediaType: Validator.oneOf(Object.values(FilmThumbnailMediaType))\r\n});\r\nexport const showtimePickerAttributeLegendValidator = Validator.object({\r\n show: Validator.boolean(),\r\n attributeFilterFn: Validator.optional(Validator.fn())\r\n});\r\nexport const showtimePickerFilmActionLinkValidator = Validator.object({\r\n show: Validator.boolean(),\r\n urlFactory: Validator.optional(Validator.fn())\r\n});\r\nexport const showtimePickerAllFilmsToggleValidator = Validator.object({\r\n show: Validator.boolean(),\r\n initialValue: Validator.boolean()\r\n});\r\nexport const showtimePickerActionButtonValidator = Validator.object({\r\n show: Validator.boolean(),\r\n showOnMessage: Validator.boolean()\r\n});\r\nexport const defaultShowtimePickerConfigValidatorSchema = {\r\n filmDetails: showtimePickerFilmDetailsValidator,\r\n filmSynopsisLength: Validator.oneOf(Object.values(FilmSynopsisLength)),\r\n showSiteDetails: Validator.boolean(),\r\n showtimeUrlFactory: Validator.optional(Validator.fn()),\r\n showScreenName: Validator.boolean(),\r\n filmUrlFactory: Validator.optional(Validator.fn()),\r\n attributeLegend: showtimePickerAttributeLegendValidator,\r\n customFilmActions: Validator.object({ show: Validator.boolean() }),\r\n actionButton: showtimePickerActionButtonValidator,\r\n playTrailerButton: Validator.object(Object.assign(Object.assign({}, filmTrailerConfigValidatorSchema), { show: Validator.boolean() })),\r\n filter: getComponentFilterConfigValidator(Object.values(ShowtimeFilterKey)),\r\n componentId: Validator.optional(nonEmptyStringValidator),\r\n filmActionLink: showtimePickerFilmActionLinkValidator\r\n};\r\nexport const showtimePickerConfigValidator = Validator.object(defaultShowtimePickerConfigValidatorSchema);\r\n","import { displayTextLabelValidator, nonEmptyStringValidator } from '@vista/omnichannel-components-domain';\r\nimport { Validator } from '@vista-digital/validator';\r\nimport { defaultFilmTrailerButtonDisplayText, filmTrailerButtonDisplayTextValidatorSchema } from '../../../components/film/trailer-button/types/display-text';\r\nexport const defaultShowtimePickerDisplayText = Object.assign(Object.assign({}, defaultFilmTrailerButtonDisplayText), { showtimeTimeFormat: 'h:mm', showtimeAmPmFormat: 'A', showtimeUnavailableAdvanceBookingPeriodNotificationFormat: 'Coming soon. Tickets on sale at ${siteName} from ${startsAt|d|Do of MMMM, h:mm A}. Please come back later.', showtimeUnavailableAdvanceBookingPeriodTodayNotificationFormat: 'Coming soon. Tickets on sale at ${siteName} today from ${startsAt|d|h:mm A}. Please come back later.', commonAttributesListLabel: 'All showtimes:', attributeLegendLabel: 'Showtime attributes', attributeLegendViewButtonLabel: 'What do these mean?', attributeLegendModalHelpText: undefined, actionButtonLabel: undefined, runtimeLabel: 'Runtime', businessDateFormat: '${businessDate|d|dddd D MMMM}', noSitesSelectedTitle: 'No cinemas selected.', noSitesSelectedMessage: 'Where would you like to see the movie?', noShowtimesForFilterMessage: 'There are no showtimes that match the selected filters.', noShowtimesForFilterClearButtonLabel: 'Clear filters', noShowtimesForFilmMessage: 'There are no showtimes on this date for \"${selectedFilmTitle}\" at your selected cinemas.\\nPlease select another cinema.', noShowtimesGenericMessage: 'There are no showtimes on this date at your selected cinemas.\\nPlease select another cinema.', noShowtimesForSiteAndFilmMessage: 'This movie is not currently available at this location.', noShowtimesForAnyDateTitle: 'No showtimes available.', noShowtimesForAnyDateMessage: 'Please try another selection.', advanceBookingPeriodForSiteNotificationFormat: 'Tickets on sale at ${siteName} from ${startsAt|d|Do of MMMM, h:mm A}.', advanceBookingPeriodForSiteTodayNotificationFormat: 'Tickets on sale at ${siteName} today from ${startsAt|d|h:mm A}.', failedToLoadDataTitle: 'Sorry, something went wrong.', failedToLoadDataMessage: 'Refresh your browser to try loading your selections again.', filmActionLinkText: 'Show full details' });\r\nexport const defaultShowtimePickerDisplayTextValidatorSchema = Object.assign(Object.assign({}, filmTrailerButtonDisplayTextValidatorSchema), { showtimeTimeFormat: nonEmptyStringValidator, showtimeAmPmFormat: nonEmptyStringValidator, showtimeUnavailableAdvanceBookingPeriodNotificationFormat: nonEmptyStringValidator, showtimeUnavailableAdvanceBookingPeriodTodayNotificationFormat: nonEmptyStringValidator, commonAttributesListLabel: nonEmptyStringValidator, attributeLegendLabel: nonEmptyStringValidator, attributeLegendViewButtonLabel: nonEmptyStringValidator, attributeLegendModalHelpText: Validator.optional(displayTextLabelValidator), runtimeLabel: nonEmptyStringValidator, businessDateFormat: nonEmptyStringValidator, noSitesSelectedTitle: nonEmptyStringValidator, noSitesSelectedMessage: nonEmptyStringValidator, noShowtimesForFilterMessage: nonEmptyStringValidator, noShowtimesForFilterClearButtonLabel: nonEmptyStringValidator, noShowtimesForFilmMessage: nonEmptyStringValidator, noShowtimesGenericMessage: nonEmptyStringValidator, noShowtimesForSiteAndFilmMessage: nonEmptyStringValidator, advanceBookingPeriodForSiteNotificationFormat: nonEmptyStringValidator, advanceBookingPeriodForSiteTodayNotificationFormat: nonEmptyStringValidator, actionButtonLabel: Validator.optional(nonEmptyStringValidator), noShowtimesForAnyDateTitle: nonEmptyStringValidator, noShowtimesForAnyDateMessage: nonEmptyStringValidator, failedToLoadDataTitle: nonEmptyStringValidator, failedToLoadDataMessage: nonEmptyStringValidator, filmActionLinkText: nonEmptyStringValidator });\r\nexport const showtimePickerDisplayTextValidator = Validator.object(defaultShowtimePickerDisplayTextValidatorSchema);\r\n","import { Validator } from '@vista-digital/validator';\r\nimport { filmTrailerButtonEventsValidatorSchema } from '../../../components/film/trailer-button/types/events';\r\nimport { filmWatchlistButtonEventsValidatorSchema } from '../../../components/film/watchlist-button/types/events';\r\nexport const showtimePickerEventsValidator = Validator.object(Object.assign(Object.assign(Object.assign({}, filmWatchlistButtonEventsValidatorSchema), filmTrailerButtonEventsValidatorSchema), { onShowtimeClicked: Validator.optional(Validator.fn()), onFilmClicked: Validator.optional(Validator.fn()), onActionButtonClicked: Validator.optional(Validator.fn()), onFilmActionLinkClicked: Validator.optional(Validator.fn()) }));\r\n","export const getFilmListItemElementId = (filmId) => {\r\n return `v-showtime-picker-film-list__item--film-id-${filmId}`.toLowerCase();\r\n};\r\n","import { FilterType, getDistinctItems, getNumberOfFiltersApplied, logger, ShowtimeFilterKey } from '@vista/omnichannel-components-domain';\r\nimport { ShowtimePickerMessageType as MessageType } from '../subcomponents/message';\r\n/**\r\n * Returns the unique list of film IDs for a given list of showtimes.\r\n */\r\nexport const getFilmIdsForShowtimes = (showtimes) => {\r\n return getDistinctItems(showtimes.map(s => s.filmId));\r\n};\r\nexport const handleApiError = (err) => {\r\n logger.error('Showtime picker API error: ', err);\r\n // Show error toast\r\n return MessageType.FailedToLoadData;\r\n};\r\nexport const nonFixedFiltersApplied = (filterConfig) => {\r\n if (!filterConfig)\r\n return false;\r\n return (getNumberOfFiltersApplied({\r\n id: filterConfig.filterId,\r\n type: FilterType.Showtime,\r\n keys: Object.values(ShowtimeFilterKey)\r\n }) > 0);\r\n};\r\n","/**\r\n * Determines the length of the synopsis to be displayed for a [[Film]].\r\n */\r\nexport var FilmSynopsisLength;\r\n(function (FilmSynopsisLength) {\r\n /**\r\n * The shortest available synopsis will be displayed.\r\n */\r\n FilmSynopsisLength[\"Shortest\"] = \"Shortest\";\r\n /**\r\n * The longest available synopsis will be displayed.\r\n */\r\n FilmSynopsisLength[\"Longest\"] = \"Longest\";\r\n /**\r\n * Only the short synopsis will be display, if available.\r\n */\r\n FilmSynopsisLength[\"ShortOnly\"] = \"ShortOnly\";\r\n /**\r\n * Only the full synopsis will be display, if available.\r\n */\r\n FilmSynopsisLength[\"FullOnly\"] = \"FullOnly\";\r\n})(FilmSynopsisLength || (FilmSynopsisLength = {}));\r\n","import { FilmSynopsisLength } from '../types/film-synopsis-length';\r\nexport const getFilmSynopsisByLength = (film, length) => {\r\n switch (length) {\r\n case FilmSynopsisLength.FullOnly:\r\n return film.synopsis;\r\n case FilmSynopsisLength.Longest:\r\n return film.synopsis || film.shortSynopsis;\r\n case FilmSynopsisLength.ShortOnly:\r\n return film.shortSynopsis;\r\n case FilmSynopsisLength.Shortest:\r\n default:\r\n return film.shortSynopsis || film.synopsis;\r\n }\r\n};\r\n"],"names":["ShowtimePickerContextInstance","b","ShowtimePickerFilmActionLink","film","displayText","events","config","useContext","onFilmActionLinkClicked","urlFactory","filmActionLink","Error","filmUrl","useMemo","handleActionLinkClicked","useCallback","Object","assign","className","block","children","element","href","onClick","filmActionLinkText","displayName","ShowtimePickerFilmDetails","cdnOptions","onFilmClicked","filmUrlFactory","filmSynopsisLength","handleFilmClicked","headingLevel","censorRatingIcon","label","undefined","length","ShowtimePickerFilmThumbnail","filmDetails","componentId","mediaType","handleThumbnailClicked","alignment","showWatchlistButton","filmThumbnailImage","ShowtimePickerSiteDetails","props","i18n","site","level","translatable","name","ShowtimePickerSite","_a","assets","occAssets","siteId","showtimes","filmId","getNoShowtimesForSiteDisplayTextProps","groupShowtimesByDate","showSiteDetails","allAttributes","map","showtime","attributeIds","commonAttributes","siteHeadingLevel","show","showtimeListHeadingLevel","hasShowtimes","isValidShowtime","id","bookingPeriod","bookingPeriodNotificationId","noShowtimesDisplayTextProps","noShowtimesForAnyDateTitle","siteName","handleShowtimeClicked","dirtyDate","requiredArgs","arguments","toDate","getTime","Date","now","isFuture","startsAt","addShowtimeUnavailableErrorNotification","onShowtimeClicked","call","getShowtimePickerShowtimeList","validShowtimes","heading","key","hiddenAttributeIds","attr","ianaTimeZoneName","emptySiteClass","noShowtimesForSiteAndFilmMessage","attributes","commonAttributesListLabel","showDetails","iconCdnOptions","attributeIcon","messageFormat","advanceBookingPeriodForSiteNotificationFormat","todayMessageFormat","advanceBookingPeriodForSiteTodayNotificationFormat","templateParameters","showtimesByBusinessDate","schedule","businessDate","keys","formattedBusinessDate","template","businessDateFormat","date","groupedShowtimeList","getGroupedShowtimesList","notificationId","isToday","showtimeUnavailableAdvanceBookingPeriodTodayNotificationFormat","showtimeUnavailableAdvanceBookingPeriodNotificationFormat","iconName","advanceBookingPeriodNotificationIconName","messages","ShowtimePickerSiteList","siteIds","filter","ShowtimePickerFilm","attributeLegend","playTrailerButton","customFilmActions","showtimeAttributes","filteredAttributes","attributeFilterFn","filmAvailability","value","noFilmDetails","labelHeadingLevel","runtimeLabel","attributeLegendLabel","showLabel","viewLegendButtonLabel","attributeLegendViewButtonLabel","modalHelpText","attributeLegendModalHelpText","ShowtimePickerFilmList","enableSkeletonLoadingIndicators","filmIds","filmsLoadingState","films","cxmFilms","sortedFilms","every","Loading","numberOfFilms","numberOfSites","showFilmDetails","filmMediaType","ShowtimePicker","invalidStateMessage","handleActionButtonClicked","onActionButtonClicked","actionButton","actionButtonLabel","color","size","Provider","showOnMessage","bSiteList","bFilm","bShowtimePickerThumbnail","ShowtimePickerFilmListSkeleton","emptyArray","_","i","skeleton","renderSkeletonSiteGroups","numberOfShowtimes","ShowtimePickerMessageType","ShowtimePickerMessage","messageType","messageFilmTitle","getShowtimePickerMessageProps","getActionButton","selectedFilmTitle","NoCinemasSelected","noSitesSelectedIconName","title","noSitesSelectedTitle","description","noSitesSelectedMessage","NoShowtimesAllDates","noShowtimesIconName","noShowtimesForAnyDateMessage","NoShowtimesForFilter","noShowtimesForFilterMessage","NoShowtimesForFilmOnDate","getFormattedMessage","noShowtimesForFilmMessage","noShowtimesGenericMessage","NoShowtimesForSitesOnDate","FailedToLoadData","failedToLoadDataIconName","failedToLoadDataTitle","failedToLoadDataMessage","filterId","handleClearButtonClicked","noShowtimesForFilterClearButtonLabel","type","values","defaultShowtimePickerAssets","showtimePickerAssetsValidator","defaultShowtimePickerCdnOptions","height","width","heroAttributeIcon","promotedAttributeIcon","showtimePickerCdnOptionsValidator","defaultShowtimePickerConfig","showScreenName","showtimePickerFilmDetailsValidator","showtimePickerAttributeLegendValidator","showtimePickerFilmActionLinkValidator","showtimePickerActionButtonValidator","initialValue","defaultShowtimePickerConfigValidatorSchema","showtimeUrlFactory","showtimePickerConfigValidator","defaultShowtimePickerDisplayText","showtimeTimeFormat","showtimeAmPmFormat","defaultShowtimePickerDisplayTextValidatorSchema","showtimePickerDisplayTextValidator","showtimePickerEventsValidator","getFilmListItemElementId","toLowerCase","getFilmIdsForShowtimes","s","handleApiError","err","nonFixedFiltersApplied","filterConfig","FilmSynopsisLength","getFilmSynopsisByLength","synopsis","shortSynopsis"],"sourceRoot":""}