{"version":3,"file":"static/js/fe67a9371e8a6884ab5c.bundle.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/actions/get-categories.ts?0ce6","webpack://Msdyn365.Commerce.Online/./src/components/breakpoints.ts?f4e7","webpack://Msdyn365.Commerce.Online/./src/components/popup.tsx?ad47","webpack://Msdyn365.Commerce.Online/./src/modules/ecomm-upcoming-programmes/ecomm-upcoming-programmes.props.autogenerated.ts?2c53","webpack://Msdyn365.Commerce.Online/./src/modules/ecomm-upcoming-programmes/ecomm-upcoming-programmes.tsx?2f76","webpack://Msdyn365.Commerce.Online/./src/modules/ecomm-upcoming-programmes/components/ecomm-programme-card.tsx?1c0a","webpack://Msdyn365.Commerce.Online/./src/modules/ecomm-upcoming-programmes/ecomm-upcoming-programmes.view.tsx?6023","webpack://Msdyn365.Commerce.Online/./lib/ecomm-upcoming-programmes/module-registration.js?d80d","webpack://Msdyn365.Commerce.Online/./node_modules/moment/locale/ sync ^\\.\\/.*$?b2df","webpack://Msdyn365.Commerce.Online/external var \"React\"?0d3b","webpack://Msdyn365.Commerce.Online/external var \"ReactDOM\"?853b"],"sourcesContent":["import { createObservableDataAction, IAction, ICreateActionContext } from '@msdyn365-commerce/core';\r\nimport { Category, retailAction } from '@msdyn365-commerce/retail-proxy';\r\nimport { createGetCategoriesInput } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CategoriesDataActions.g';\r\n\r\n/**\r\n * Get Org Unit Configuration Data Action\r\n */\r\nexport default createObservableDataAction({\r\n action: >retailAction,\r\n input: (context: ICreateActionContext) => {\r\n return createGetCategoriesInput({ Paging: { Top: 0 } }, context.requestContext.apiSettings.channelId);\r\n }\r\n});\r\n","// <= 999 = Mobile\r\n// >= 1000 = Tablet and Desktop\r\n\r\nexport const enum Breakpoints {\r\n small = 540,\r\n medium = 768,\r\n large = 992\r\n}\r\n\r\nexport function isMobile (width: number): boolean {\r\n return width < Breakpoints.large;\r\n}","import * as React from 'react';\r\n\r\nimport Modal from 'react-bootstrap/Modal';\r\n\r\ninterface IEcommPopupProps\r\n{\r\n showPopup: boolean;\r\n callback: any;\r\n name: string;\r\n isMobile: boolean;\r\n isPortalPopup: boolean;\r\n locale: string;\r\n url: string;\r\n}\r\n\r\n/**\r\n *\r\n * Event component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class Popup extends React.PureComponent {\r\n public render(): JSX.Element | null {\r\n return (\r\n \r\n \r\n {this._titleText()}\r\n \r\n\r\n \r\n {this._renderMessage()}\r\n \r\n\r\n \r\n {this._stayButtonText()}\r\n {this._goButtonText()}\r\n \r\n \r\n );\r\n }\r\n\r\n private _callbackRedirect = () => {\r\n this.props.callback();\r\n }\r\n\r\n private _callbackHide = () => {\r\n event?.preventDefault();\r\n this.props.callback();\r\n }\r\n\r\n private _titleText(): string {\r\n if (!this.props.isPortalPopup) {\r\n return this.props.name;\r\n }\r\n\r\n if (this.props.locale === 'zh') {\r\n return '网站重定向门户网站';\r\n } else {\r\n return 'Commerce Transfer to Portal';\r\n }\r\n }\r\n\r\n private _stayButtonText(): string {\r\n if (this.props.locale === 'zh') {\r\n if (this.props.isPortalPopup) {\r\n return '取消';\r\n } else {\r\n return '稍后登入';\r\n }\r\n } else {\r\n if (this.props.isPortalPopup) {\r\n return 'Cancel';\r\n } else {\r\n return 'Maybe Later';\r\n }\r\n }\r\n }\r\n\r\n private _goButtonText(): string {\r\n if (this.props.locale === 'zh') {\r\n if (this.props.isPortalPopup) {\r\n return '开启门户网站标签页';\r\n } else {\r\n return '登入户口';\r\n }\r\n } else {\r\n if (this.props.isPortalPopup) {\r\n return 'Proceed to eShop';\r\n } else {\r\n return 'Go to Sign In Page';\r\n }\r\n }\r\n }\r\n\r\n private _renderMessage(): JSX.Element | null {\r\n \r\n if (this.props.locale === 'zh') {\r\n if (this.props.isPortalPopup) {\r\n return (\r\n
\r\n

亲爱的信徒和朋友们,

\r\n

 

\r\n

您将离开这个网站并进入另一个门户网站。

\r\n

 

\r\n

请在离开前完成交易和付款。

\r\n

 

\r\n

愿三宝加持和护佑您!

\r\n
\r\n );\r\n } else {\r\n return (\r\n
\r\n

登入账号来查阅交易记录

\r\n
\r\n );\r\n }\r\n } else {\r\n if (this.props.isPortalPopup) {\r\n return (\r\n
\r\n

Dear Devotees and Friends,

\r\n

 

\r\n

You will be leaving this website and entering another portal.

\r\n

 

\r\n

Please complete the transactions and payments here before you leave.

\r\n

 

\r\n

With Triple Gem Blessings!

\r\n
\r\n );\r\n } else {\r\n return (\r\n
\r\n

To see your past transactions, please sign in to your account.

\r\n
\r\n );\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default Popup;","/**\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. See License.txt in the project root for license information.\r\n * IEcommUpcomingProgrammes contentModule Interface Properties\r\n * THIS FILE IS AUTO-GENERATED - MANUAL MODIFICATIONS WILL BE LOST\r\n */\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\nexport const enum organisation {\r\n BT = 'BT',\r\n GP = 'GP'\r\n}\r\n\r\nexport const enum eventType {\r\n ALL = 'ALL',\r\n CEREMONY = 'CEREMONY',\r\n GROUPPRACTICE = 'GROUPPRACTICE'\r\n}\r\n\r\nexport interface IEcommUpcomingProgrammesConfig extends Msdyn365.IModuleConfig {\r\n title: string;\r\n bgImage?: Msdyn365.IImageData;\r\n cardButtonText?: string;\r\n organisation?: organisation;\r\n eventType?: eventType;\r\n portalUrl: Msdyn365.ILinkData;\r\n redirectPortal: boolean;\r\n eventPdpUrl: Msdyn365.ILinkData;\r\n productPdpUrl: Msdyn365.ILinkData;\r\n dateRange: number;\r\n isUat: boolean;\r\n calendarLink?: ICalendarLinkData;\r\n sliderSpeed?: number;\r\n displayMobileDropdown: boolean;\r\n mobileDropdownPageSize: number;\r\n}\r\n\r\nexport interface ICalendarLinkData {\r\n linkText: string;\r\n linkUrl: Msdyn365.ILinkData;\r\n ariaLabel?: string;\r\n}\r\n\r\nexport interface IEcommUpcomingProgrammesProps extends Msdyn365.IModule {\r\n config: IEcommUpcomingProgrammesConfig;\r\n}\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\n\r\nimport { generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { eventType } from './ecomm-upcoming-programmes.props.autogenerated';\r\n\r\nimport { getUpcomingEventsAsync, getUpcomingEventsByTypeAsync } from '../../actions/DataActionExtension.g';\r\n\r\nimport { IProgrammeCard } from './components/ecomm-programme-card';\r\n\r\nimport { IEcommUpcomingProgrammesData } from './ecomm-upcoming-programmes.data';\r\nimport { IEcommUpcomingProgrammesProps } from './ecomm-upcoming-programmes.props.autogenerated';\r\n\r\nimport { SimpleProduct } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport { getByIdsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\r\n\r\nconst moment = require('moment');\r\n\r\nexport interface IEcommUpcomingProgrammesViewProps extends IEcommUpcomingProgrammesProps {\r\n upcomingEvents: any[];\r\n existingMonths: string[];\r\n mobileEvents: { month: string, events: IProgrammeCard[] }[];\r\n}\r\n\r\n/**\r\n *\r\n * EcommUpcomingProgrammes component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass EcommUpcomingProgrammes extends React.PureComponent> {\r\n public state = { upcomingEvents: [], existingMonths: [], mobileEvents: [] };\r\n\r\n private delay(ms: number) {\r\n return new Promise( resolve => setTimeout(resolve, ms) );\r\n }\r\n \r\n public async componentDidMount() {\r\n const { data: { categories } , config } = this.props;\r\n\r\n let startDate = new Date();\r\n startDate.setHours(0, 0, 0, 0);\r\n\r\n let endDate = new Date();\r\n endDate.setHours(0, 0, 0, 0);\r\n endDate.setMonth(endDate.getMonth() + config.dateRange);\r\n\r\n const language = this.props.context.request.locale.split('-')[0];\r\n\r\n const org = config.organisation ? this.props.config.organisation! : 'BT';\r\n const eventTypeOption = config.eventType ? config.eventType! : eventType.ALL;\r\n let eventTypeNo = '';\r\n\r\n if (eventTypeOption !== eventType.ALL) {\r\n switch (eventTypeOption) {\r\n case eventType.CEREMONY:\r\n eventTypeNo = '01';\r\n break;\r\n\r\n case eventType.GROUPPRACTICE:\r\n eventTypeNo = '02';\r\n break;\r\n }\r\n }\r\n\r\n const data = eventTypeOption === eventType.ALL ? await getUpcomingEventsAsync({ callerContext: this.props.context.actionContext }, config.isUat, language, org, startDate.toISOString(), endDate.toISOString()) : await getUpcomingEventsByTypeAsync({ callerContext: this.props.context.actionContext }, config.isUat, language, org, eventTypeNo, startDate.toISOString(), endDate.toISOString());\r\n\r\n const productIds: number[] = [];\r\n let products: SimpleProduct[] = [];\r\n data.map(event => {\r\n let eventJson = JSON.parse(event);\r\n if(eventJson['Type'] == 'Event' || eventJson['Type'] == 'Events' || eventJson['Type'] == 'Courses') {\r\n if(eventJson['EcommerceId']) {\r\n productIds.push(Number(eventJson['EcommerceId']));\r\n }\r\n }\r\n });\r\n\r\n if (productIds.length > 0) {\r\n products = await getByIdsAsync({ callerContext: this.props.context.actionContext }, this.props.context.request.apiSettings.channelId, productIds);\r\n }\r\n\r\n if (!categories.result) {\r\n await this.delay(300);\r\n }\r\n\r\n const events: any = [];\r\n const months: string[] = [];\r\n const mobileList: { month: string, events: IProgrammeCard[] }[] = [];\r\n\r\n data.map(event => {\r\n let eventJson = JSON.parse(event);\r\n \r\n if (eventJson['EcommerceId']) {\r\n var categoryIndex = categories.result!.findIndex(category => category.RecordId.toString() === eventJson['EcommerceId'])\r\n \r\n if (categoryIndex >= 0) {\r\n var imgUrl = generateImageUrl(categories.result![`${categoryIndex}`].Images![0].Uri, this.props.context.request.apiSettings);\r\n eventJson['Img'] = imgUrl;\r\n }\r\n }\r\n\r\n if(eventJson['Type'] == 'Event' || eventJson['Type'] == 'Events' || eventJson['Type'] == 'Courses')\r\n {\r\n if (eventJson['EcommerceId']) {\r\n const product = products.find(p => p.RecordId === Number(eventJson['EcommerceId']));\r\n eventJson['Img'] = product ? generateImageUrl(`Products/${product.ProductNumber}_000_000.png`, this.props.context.request.apiSettings) : \"\";\r\n }\r\n eventJson['Redirect'] = config.redirectPortal ? config.portalUrl.destinationUrl : config.productPdpUrl.destinationUrl +\"/\" + eventJson['EcommerceId']+\".p\";\r\n }\r\n else{\r\n eventJson['Redirect'] = config.redirectPortal ? config.portalUrl.destinationUrl : config.eventPdpUrl.destinationUrl;\r\n }\r\n\r\n var programmeCard: IProgrammeCard = {\r\n id: eventJson['EcommerceId'],\r\n type: eventJson['Type'],\r\n name: eventJson['Name'],\r\n startDateTime: eventJson['StartDateTime'],\r\n endDateTime: eventJson['EndDateTime'],\r\n description: eventJson['Description'],\r\n img: eventJson['Img'],\r\n redirect: eventJson['Redirect'],\r\n portalRedirect: config.redirectPortal,\r\n callback: '',\r\n buttonText: config.cardButtonText,\r\n isDropdownVersion: config.displayMobileDropdown\r\n }\r\n\r\n events.push(programmeCard);\r\n\r\n const month = `${moment(new Date(programmeCard.startDateTime)).format('MMMM')}`; \r\n const index = months.findIndex(m => m === month);\r\n\r\n if (index === -1) {\r\n months.push(month);\r\n }\r\n });\r\n\r\n months.forEach(m => {\r\n const result = events.filter((item: IProgrammeCard) => `${moment(new Date(item.startDateTime)).format('MMMM')}` === m);\r\n\r\n mobileList.push({ month: m, events: result });\r\n });\r\n\r\n this.setState({ upcomingEvents: events, existingMonths: months, mobileEvents: mobileList });\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const IEcommUpcomingProgrammesViewProps = {\r\n ...this.props,\r\n upcomingEvents: this.state['upcomingEvents'],\r\n existingMonths: this.state.existingMonths,\r\n mobileEvents: this.state.mobileEvents\r\n };\r\n\r\n return this.props.renderView(IEcommUpcomingProgrammesViewProps);\r\n }\r\n}\r\n\r\nexport default EcommUpcomingProgrammes;","import * as React from 'react';\r\n\r\nconst moment = require('moment');\r\n\r\nexport interface IProgrammeCard {\r\n id: string;\r\n type: string;\r\n name: string;\r\n startDateTime: string;\r\n endDateTime: string;\r\n description: string;\r\n img: string;\r\n redirect: string;\r\n portalRedirect: boolean;\r\n callback: any;\r\n buttonText?: string;\r\n isDropdownVersion: boolean;\r\n}\r\n\r\n/**\r\n *\r\n * ProgrammeCard component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class ProgrammeCard extends React.PureComponent {\r\n public render(): JSX.Element | null {\r\n const start = this.props.startDateTime !== '' ? new Date(this.props.startDateTime) : null;\r\n const end = this.props.endDateTime !== '' ? new Date(this.props.endDateTime) : null;\r\n const time = `${moment(start).format('DD MMM YYYY')}` + `${end !== null && moment(start).format('DD MMM YYYY') !== moment(end).format('DD MMM YYYY') ? ' - ' + moment(end).format('DD MMM YYYY') : ''}`;\r\n\r\n const cardStyle = this.props.isDropdownVersion ? 'ecomm-programme-card dropdown row' : 'ecomm-programme-card row';\r\n const imgWrapperStyle = this.props.isDropdownVersion ? 'img-wrapper col-6' : 'img-wrapper col-lg-6';\r\n const contentWrapperStyle = this.props.isDropdownVersion ? 'content-wrapper col-6 row' : 'content-wrapper col-lg-6 row';\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n

{this.props.type}

\r\n

{this.props.name}

\r\n

{time}

\r\n {this.props.isDropdownVersion ? null :

{this.props.description}

}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n private _handleOnClick = () => {\r\n event?.preventDefault();\r\n\r\n if (typeof window !== 'undefined') {\r\n\r\n if(this.props.type == 'Event' || this.props.type == 'Courses')\r\n {\r\n window.location.assign(this.props.redirect);\r\n }\r\n else\r\n {\r\n window.location.assign(this.props.redirect + `${'?id=' + this.props.id}`);\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default ProgrammeCard;","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\n\r\nimport Dropdown from 'react-bootstrap/Dropdown';\r\nimport DropdownButton from 'react-bootstrap/DropdownButton';\r\n\r\nimport ReactPaginate from 'react-paginate';\r\n\r\nimport { isMobile } from './../../components/breakpoints';\r\nimport Popup from './../../components/popup';\r\n\r\nimport Carousel from 'react-multi-carousel';\r\n\r\nimport { IProgrammeCard, ProgrammeCard } from './components/ecomm-programme-card';\r\nimport { IEcommUpcomingProgrammesViewProps } from './ecomm-upcoming-programmes';\r\n\r\n/**\r\n *\r\n * EcommUpcomingProgrammes component\r\n * @extends {React.PureComponent>}\r\n */\r\n class EcommUpcomingProgrammesView extends React.PureComponent {\r\n public state: any = { width: 0, hasMounted: false, showPopup: false, selectedMonth: '', activePage: 0, pageSize: 3 };\r\n\r\n public componentDidMount(): void {\r\n if (!this.state.hasMounted) {\r\n window.addEventListener('resize', this._updateDimensions);\r\n\r\n this.setState({ width: window.innerWidth, hasMounted: true });\r\n }\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const { config, mobileEvents, upcomingEvents } = this.props;\r\n \r\n if (!this.state.hasMounted) {\r\n return null;\r\n }\r\n\r\n const mobileMode = isMobile(this.state.width);\r\n const language = this.props.context.request.locale.split('-')[0];\r\n\r\n // Dropdown version on mobile for events carousel.\r\n if (mobileMode && config.displayMobileDropdown) {\r\n const months: string[] = [];\r\n months.push(language === 'en' ? 'All' : '全部');\r\n\r\n const displayMonth = this.state.selectedMonth === '' ? months[0] : this.state.selectedMonth;\r\n\r\n this.props.existingMonths.forEach(m => {\r\n if (m !== displayMonth) {\r\n months.push(m);\r\n }\r\n });\r\n\r\n const offset = this.state.activePage * Number(config.mobileDropdownPageSize);\r\n const showAll = displayMonth === 'All' || displayMonth === '全部' ? true : false;\r\n\r\n let displayEvents = [];\r\n\r\n if (showAll) {\r\n displayEvents = upcomingEvents;\r\n } else {\r\n displayEvents = mobileEvents.find(item => item.month === displayMonth)?.events!;\r\n }\r\n\r\n let pageCount = 0;\r\n let currentPageEvents: JSX.Element[] = [];\r\n\r\n if (displayEvents) {\r\n pageCount = Math.ceil(displayEvents.length / config.mobileDropdownPageSize);\r\n\r\n currentPageEvents = displayEvents.slice(offset, offset + Number(config.mobileDropdownPageSize)).map((item: IProgrammeCard) =>\r\n \r\n );\r\n }\r\n\r\n return (\r\n
\r\n \r\n {months.map((month: string, idx: number) =>\r\n {month}\r\n )}\r\n \r\n
{currentPageEvents}
\r\n '}\r\n breakLabel={'...'}\r\n breakClassName={'break-me'}\r\n pageCount={pageCount}\r\n marginPagesDisplayed={2}\r\n pageRangeDisplayed={5}\r\n onPageChange={this._handlePageClick}\r\n containerClassName={'ecomm-pagination'}\r\n activeClassName={'active'}\r\n />\r\n
\r\n );\r\n }\r\n\r\n const responsive = {\r\n superLargeDesktop: {\r\n breakpoint: { max: 4000, min: 992 },\r\n items: 2,\r\n slidesToSlide: 2\r\n },\r\n desktop: {\r\n breakpoint: { max: 992, min: 768 },\r\n items: 2,\r\n slidesToSlide: 2\r\n },\r\n tablet: {\r\n breakpoint: { max: 768, min: 540 },\r\n items: 2,\r\n slidesToSlide: 2\r\n },\r\n mobile: {\r\n breakpoint: { max: 540, min: 0 },\r\n items: 1,\r\n slidesToSlide: 1\r\n }\r\n };\r\n\r\n const mockData = this.props.upcomingEvents;\r\n const bg = config.bgImage?.src ? { backgroundImage: `url(${config.bgImage.src})`} : { backgroundImage: '' };\r\n const spd = config.sliderSpeed ? config.sliderSpeed * 1000 : 5000; // Convert to milliseconds.\r\n const showArrows = mobileMode ? false : true;\r\n const localeCode = this.props.context.request.locale.split('-')[0];\r\n const calendarLink = config.calendarLink ? config.calendarLink.linkUrl.destinationUrl : '';\r\n\r\n return (\r\n
\r\n
\r\n

{config.title}

\r\n {!mobileMode && config.calendarLink?.linkText !== '' && }\r\n {config.redirectPortal && }\r\n
\r\n \r\n {mockData.map((item: IProgrammeCard) => {\r\n return ;\r\n })}\r\n \r\n
\r\n );\r\n }\r\n\r\n public componentWillUnmount() {\r\n window.removeEventListener('resize', this._updateDimensions);\r\n }\r\n\r\n private _handleCallback = () => {\r\n this.setState({ showPopup: false});\r\n }\r\n \r\n private _handleCallbackPopup = () => {\r\n this.setState({ showPopup: true});\r\n }\r\n\r\n private _updateDimensions = () => {\r\n this.setState({ width: window.innerWidth });\r\n };\r\n\r\n private _onDropdownSelect = (event: any) => {\r\n this.setState({ selectedMonth: event, activePage: 0 });\r\n }\r\n\r\n private _handlePageClick = (data: any) => {\r\n this.setState({ activePage: data.selected });\r\n }\r\n}\r\n\r\nexport default EcommUpcomingProgrammesView;","const binding = { modules: {}, dataActions: {} };\n\n const registerActionId = (actionPath) => {\n if (binding.dataActions[actionPath] &&\n binding.dataActions[actionPath].default &&\n binding.dataActions[actionPath].default.prototype &&\n binding.dataActions[actionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[actionPath].default.prototype.id] = binding.dataActions[actionPath];\n } else {\n Object.keys(binding.dataActions[actionPath] || {}).forEach(exportName => {\n if (binding.dataActions[actionPath][exportName] &&\n binding.dataActions[actionPath][exportName].prototype &&\n binding.dataActions[actionPath][exportName].prototype.Action) {\n binding.dataActions[binding.dataActions[actionPath][exportName].prototype.id] = binding.dataActions[actionPath][exportName];\n }\n })\n }\n };\n\n const registerSanitizedActionPath = (sanitizedActionPath, dataAction) => {\n if (process.env.NODE_ENV === 'development') {\n if (!dataAction.default) {\n throw new Error('Data action path does not have a default export');\n }\n if (!(dataAction.default.prototype.id && binding.dataActions[dataAction.default.prototype.id]) || !binding.dataActions[sanitizedActionPath]) {\n binding.dataActions[sanitizedActionPath] = dataAction;\n }\n } else {\n binding.dataActions[sanitizedActionPath] = dataAction;\n if (!binding.dataActions[sanitizedActionPath].default) {\n throw new Error('Data action path ' + sanitizedActionPath + ' does not have a default export');\n }\n binding.dataActions[sanitizedActionPath].default.prototype.RegistrationId = sanitizedActionPath;\n if (binding.dataActions[sanitizedActionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[sanitizedActionPath].default.prototype.id] = sanitizedActionPath;\n }\n }\n };\n \n\n (binding.modules['ecomm-upcoming-programmes'] = {\n c: () => require('partner/modules/ecomm-upcoming-programmes/ecomm-upcoming-programmes.tsx'),\n $type: 'contentModule',\n da: [{name:'categories', path:'actions/get-categories', runOn: 0}],\n \n iNM: false,\n ns: '__local__',\n n: 'ecomm-upcoming-programmes',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/ecomm-upcoming-programmes'\n });\n \n\n {\n const sanitizedActionPath = 'actions/get-categories';\n let dataAction = require('partner/actions/get-categories');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n \n window.__bindings__ = window.__bindings__ || {};\n window.__bindings__.modules = {\n ...window.__bindings__.modules || {},\n ...binding.modules\n };\n \n window.__bindings__.dataActions = {\n ...window.__bindings__.dataActions || {},\n ...binding.dataActions\n };\n export const viewDictionary = {};\n viewDictionary['__local__|__local__|modules|ecomm-upcoming-programmes|ecomm-upcoming-programmes'] = {\n c: () => require('partner/modules/ecomm-upcoming-programmes/ecomm-upcoming-programmes.view.tsx'),\n cn: '__local__-__local__-ecomm-upcoming-programmes'\n };\nwindow.__bindings__ = window.__bindings__ || {};\nwindow.__bindings__.viewDictionary = {\n ...window.__bindings__.viewDictionary || {},\n ...viewDictionary\n };","var map = {\n\t\"./af\": 154,\n\t\"./af.js\": 154,\n\t\"./ar\": 155,\n\t\"./ar-dz\": 156,\n\t\"./ar-dz.js\": 156,\n\t\"./ar-kw\": 157,\n\t\"./ar-kw.js\": 157,\n\t\"./ar-ly\": 158,\n\t\"./ar-ly.js\": 158,\n\t\"./ar-ma\": 159,\n\t\"./ar-ma.js\": 159,\n\t\"./ar-ps\": 160,\n\t\"./ar-ps.js\": 160,\n\t\"./ar-sa\": 161,\n\t\"./ar-sa.js\": 161,\n\t\"./ar-tn\": 162,\n\t\"./ar-tn.js\": 162,\n\t\"./ar.js\": 155,\n\t\"./az\": 163,\n\t\"./az.js\": 163,\n\t\"./be\": 164,\n\t\"./be.js\": 164,\n\t\"./bg\": 165,\n\t\"./bg.js\": 165,\n\t\"./bm\": 166,\n\t\"./bm.js\": 166,\n\t\"./bn\": 167,\n\t\"./bn-bd\": 168,\n\t\"./bn-bd.js\": 168,\n\t\"./bn.js\": 167,\n\t\"./bo\": 169,\n\t\"./bo.js\": 169,\n\t\"./br\": 170,\n\t\"./br.js\": 170,\n\t\"./bs\": 171,\n\t\"./bs.js\": 171,\n\t\"./ca\": 172,\n\t\"./ca.js\": 172,\n\t\"./cs\": 173,\n\t\"./cs.js\": 173,\n\t\"./cv\": 174,\n\t\"./cv.js\": 174,\n\t\"./cy\": 175,\n\t\"./cy.js\": 175,\n\t\"./da\": 176,\n\t\"./da.js\": 176,\n\t\"./de\": 177,\n\t\"./de-at\": 178,\n\t\"./de-at.js\": 178,\n\t\"./de-ch\": 179,\n\t\"./de-ch.js\": 179,\n\t\"./de.js\": 177,\n\t\"./dv\": 180,\n\t\"./dv.js\": 180,\n\t\"./el\": 181,\n\t\"./el.js\": 181,\n\t\"./en-au\": 182,\n\t\"./en-au.js\": 182,\n\t\"./en-ca\": 183,\n\t\"./en-ca.js\": 183,\n\t\"./en-gb\": 184,\n\t\"./en-gb.js\": 184,\n\t\"./en-ie\": 185,\n\t\"./en-ie.js\": 185,\n\t\"./en-il\": 186,\n\t\"./en-il.js\": 186,\n\t\"./en-in\": 187,\n\t\"./en-in.js\": 187,\n\t\"./en-nz\": 188,\n\t\"./en-nz.js\": 188,\n\t\"./en-sg\": 189,\n\t\"./en-sg.js\": 189,\n\t\"./eo\": 190,\n\t\"./eo.js\": 190,\n\t\"./es\": 191,\n\t\"./es-do\": 192,\n\t\"./es-do.js\": 192,\n\t\"./es-mx\": 193,\n\t\"./es-mx.js\": 193,\n\t\"./es-us\": 194,\n\t\"./es-us.js\": 194,\n\t\"./es.js\": 191,\n\t\"./et\": 195,\n\t\"./et.js\": 195,\n\t\"./eu\": 196,\n\t\"./eu.js\": 196,\n\t\"./fa\": 197,\n\t\"./fa.js\": 197,\n\t\"./fi\": 198,\n\t\"./fi.js\": 198,\n\t\"./fil\": 199,\n\t\"./fil.js\": 199,\n\t\"./fo\": 200,\n\t\"./fo.js\": 200,\n\t\"./fr\": 201,\n\t\"./fr-ca\": 202,\n\t\"./fr-ca.js\": 202,\n\t\"./fr-ch\": 203,\n\t\"./fr-ch.js\": 203,\n\t\"./fr.js\": 201,\n\t\"./fy\": 204,\n\t\"./fy.js\": 204,\n\t\"./ga\": 205,\n\t\"./ga.js\": 205,\n\t\"./gd\": 206,\n\t\"./gd.js\": 206,\n\t\"./gl\": 207,\n\t\"./gl.js\": 207,\n\t\"./gom-deva\": 208,\n\t\"./gom-deva.js\": 208,\n\t\"./gom-latn\": 209,\n\t\"./gom-latn.js\": 209,\n\t\"./gu\": 210,\n\t\"./gu.js\": 210,\n\t\"./he\": 211,\n\t\"./he.js\": 211,\n\t\"./hi\": 212,\n\t\"./hi.js\": 212,\n\t\"./hr\": 213,\n\t\"./hr.js\": 213,\n\t\"./hu\": 214,\n\t\"./hu.js\": 214,\n\t\"./hy-am\": 215,\n\t\"./hy-am.js\": 215,\n\t\"./id\": 216,\n\t\"./id.js\": 216,\n\t\"./is\": 217,\n\t\"./is.js\": 217,\n\t\"./it\": 218,\n\t\"./it-ch\": 219,\n\t\"./it-ch.js\": 219,\n\t\"./it.js\": 218,\n\t\"./ja\": 220,\n\t\"./ja.js\": 220,\n\t\"./jv\": 221,\n\t\"./jv.js\": 221,\n\t\"./ka\": 222,\n\t\"./ka.js\": 222,\n\t\"./kk\": 223,\n\t\"./kk.js\": 223,\n\t\"./km\": 224,\n\t\"./km.js\": 224,\n\t\"./kn\": 225,\n\t\"./kn.js\": 225,\n\t\"./ko\": 226,\n\t\"./ko.js\": 226,\n\t\"./ku\": 227,\n\t\"./ku-kmr\": 228,\n\t\"./ku-kmr.js\": 228,\n\t\"./ku.js\": 227,\n\t\"./ky\": 229,\n\t\"./ky.js\": 229,\n\t\"./lb\": 230,\n\t\"./lb.js\": 230,\n\t\"./lo\": 231,\n\t\"./lo.js\": 231,\n\t\"./lt\": 232,\n\t\"./lt.js\": 232,\n\t\"./lv\": 233,\n\t\"./lv.js\": 233,\n\t\"./me\": 234,\n\t\"./me.js\": 234,\n\t\"./mi\": 235,\n\t\"./mi.js\": 235,\n\t\"./mk\": 236,\n\t\"./mk.js\": 236,\n\t\"./ml\": 237,\n\t\"./ml.js\": 237,\n\t\"./mn\": 238,\n\t\"./mn.js\": 238,\n\t\"./mr\": 239,\n\t\"./mr.js\": 239,\n\t\"./ms\": 240,\n\t\"./ms-my\": 241,\n\t\"./ms-my.js\": 241,\n\t\"./ms.js\": 240,\n\t\"./mt\": 242,\n\t\"./mt.js\": 242,\n\t\"./my\": 243,\n\t\"./my.js\": 243,\n\t\"./nb\": 244,\n\t\"./nb.js\": 244,\n\t\"./ne\": 245,\n\t\"./ne.js\": 245,\n\t\"./nl\": 246,\n\t\"./nl-be\": 247,\n\t\"./nl-be.js\": 247,\n\t\"./nl.js\": 246,\n\t\"./nn\": 248,\n\t\"./nn.js\": 248,\n\t\"./oc-lnc\": 249,\n\t\"./oc-lnc.js\": 249,\n\t\"./pa-in\": 250,\n\t\"./pa-in.js\": 250,\n\t\"./pl\": 251,\n\t\"./pl.js\": 251,\n\t\"./pt\": 252,\n\t\"./pt-br\": 253,\n\t\"./pt-br.js\": 253,\n\t\"./pt.js\": 252,\n\t\"./ro\": 254,\n\t\"./ro.js\": 254,\n\t\"./ru\": 255,\n\t\"./ru.js\": 255,\n\t\"./sd\": 256,\n\t\"./sd.js\": 256,\n\t\"./se\": 257,\n\t\"./se.js\": 257,\n\t\"./si\": 258,\n\t\"./si.js\": 258,\n\t\"./sk\": 259,\n\t\"./sk.js\": 259,\n\t\"./sl\": 260,\n\t\"./sl.js\": 260,\n\t\"./sq\": 261,\n\t\"./sq.js\": 261,\n\t\"./sr\": 262,\n\t\"./sr-cyrl\": 263,\n\t\"./sr-cyrl.js\": 263,\n\t\"./sr.js\": 262,\n\t\"./ss\": 264,\n\t\"./ss.js\": 264,\n\t\"./sv\": 265,\n\t\"./sv.js\": 265,\n\t\"./sw\": 266,\n\t\"./sw.js\": 266,\n\t\"./ta\": 267,\n\t\"./ta.js\": 267,\n\t\"./te\": 268,\n\t\"./te.js\": 268,\n\t\"./tet\": 269,\n\t\"./tet.js\": 269,\n\t\"./tg\": 270,\n\t\"./tg.js\": 270,\n\t\"./th\": 271,\n\t\"./th.js\": 271,\n\t\"./tk\": 272,\n\t\"./tk.js\": 272,\n\t\"./tl-ph\": 273,\n\t\"./tl-ph.js\": 273,\n\t\"./tlh\": 274,\n\t\"./tlh.js\": 274,\n\t\"./tr\": 275,\n\t\"./tr.js\": 275,\n\t\"./tzl\": 276,\n\t\"./tzl.js\": 276,\n\t\"./tzm\": 277,\n\t\"./tzm-latn\": 278,\n\t\"./tzm-latn.js\": 278,\n\t\"./tzm.js\": 277,\n\t\"./ug-cn\": 279,\n\t\"./ug-cn.js\": 279,\n\t\"./uk\": 280,\n\t\"./uk.js\": 280,\n\t\"./ur\": 281,\n\t\"./ur.js\": 281,\n\t\"./uz\": 282,\n\t\"./uz-latn\": 283,\n\t\"./uz-latn.js\": 283,\n\t\"./uz.js\": 282,\n\t\"./vi\": 284,\n\t\"./vi.js\": 284,\n\t\"./x-pseudo\": 285,\n\t\"./x-pseudo.js\": 285,\n\t\"./yo\": 286,\n\t\"./yo.js\": 286,\n\t\"./zh-cn\": 287,\n\t\"./zh-cn.js\": 287,\n\t\"./zh-hk\": 288,\n\t\"./zh-hk.js\": 288,\n\t\"./zh-mo\": 289,\n\t\"./zh-mo.js\": 289,\n\t\"./zh-tw\": 290,\n\t\"./zh-tw.js\": 290\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 306;","module.exports = React;","module.exports = ReactDOM;"],"names":["createObservableDataAction","action","retailAction","input","context","createGetCategoriesInput","Paging","Top","requestContext","apiSettings","channelId","Breakpoints","isMobile","width","large","Popup","React","constructor","_callbackRedirect","this","props","callback","_callbackHide","_event","event","preventDefault","render","Modal","show","showPopup","onHide","centered","Header","closeButton","isPortalPopup","Title","className","_titleText","Body","_renderMessage","Footer","href","onClick","style","_stayButtonText","url","target","_goButtonText","locale","name","organisation","eventType","moment","require","EcommUpcomingProgrammes","state","upcomingEvents","existingMonths","mobileEvents","delay","ms","Promise","resolve","setTimeout","async","data","categories","config","startDate","Date","setHours","endDate","setMonth","getMonth","dateRange","language","request","split","org","eventTypeOption","ALL","eventTypeNo","CEREMONY","GROUPPRACTICE","getUpcomingEventsAsync","callerContext","actionContext","isUat","toISOString","getUpcomingEventsByTypeAsync","productIds","products","map","eventJson","JSON","parse","push","Number","length","getByIdsAsync","result","events","months","mobileList","categoryIndex","findIndex","category","RecordId","toString","imgUrl","generateImageUrl","Images","Uri","product","find","p","ProductNumber","redirectPortal","portalUrl","destinationUrl","productPdpUrl","eventPdpUrl","programmeCard","id","type","startDateTime","endDateTime","description","img","redirect","portalRedirect","buttonText","cardButtonText","isDropdownVersion","displayMobileDropdown","month","format","m","forEach","filter","item","setState","IEcommUpcomingProgrammesViewProps","_objectSpread","renderView","ProgrammeCard","_handleOnClick","window","location","assign","start","end","time","cardStyle","imgWrapperStyle","contentWrapperStyle","src","EcommUpcomingProgrammesView","hasMounted","selectedMonth","activePage","pageSize","_handleCallback","_handleCallbackPopup","_updateDimensions","innerWidth","_onDropdownSelect","_handlePageClick","selected","componentDidMount","addEventListener","_config$bgImage","_config$calendarLink","_config$calendarLink2","mobileMode","displayMonth","offset","mobileDropdownPageSize","displayEvents","_mobileEvents$find","pageCount","currentPageEvents","Math","ceil","slice","DropdownButton","title","onSelect","idx","Dropdown","Item","key","eventKey","ReactPaginate","previousLabel","nextLabel","breakLabel","breakClassName","marginPagesDisplayed","pageRangeDisplayed","onPageChange","containerClassName","activeClassName","mockData","bg","bgImage","backgroundImage","spd","sliderSpeed","showArrows","localeCode","calendarLink","linkUrl","linkText","Carousel","responsive","superLargeDesktop","breakpoint","max","min","items","slidesToSlide","desktop","tablet","mobile","infinite","arrows","autoPlay","autoPlaySpeed","componentWillUnmount","removeEventListener","binding","modules","dataActions","c","$type","da","path","runOn","iNM","ns","n","pdp","md","registerSanitizedActionPath","sanitizedActionPath","dataAction","default","Error","prototype","RegistrationId","__bindings__","viewDictionary","cn","webpackContext","req","webpackContextResolve","__webpack_require__","o","e","code","keys","Object","module","exports","ReactDOM"],"sourceRoot":""}