{"version":3,"sources":["webpack:///src/modules/notifications-list/notifications-list.view.tsx?6e9c","webpack:///src/modules/tab-item/tab-item.view.tsx?76f0","webpack:///src/modules/default-page/default-page.tsx?0e08","webpack:///./src/modules/citta-orderreference/citta-orderreference.view.tsx?a8c9","webpack:///src/modules/tile-list/tile-list.tsx?f539","webpack:///./src/modules/citta-checkout-payment-instrument/citta-checkout-payment-instrument.view.tsx?97b7","webpack:///src/modules/tile-list/tile-list.view.tsx?d2bd","webpack:///src/modules/tab/tab.tsx?d713","webpack:///./src/modules/video-player-mobility/video-player-mobility.view.tsx?5f94","webpack:///./src/modules/video-player-mobility/components/additional-content.tsx?af18","webpack:///./src/modules/video-player-mobility/video-player-mobility.tsx?6325","webpack:///src/modules/tab-item/tab-item.tsx?d2c1","webpack:///src/modules/tab/tab.view.tsx?701e","webpack:///./src/modules/citta-orderreference/citta-orderreference.tsx?0cce","webpack:///src/modules/notifications-list/notifications-list.tsx?8a0a","webpack:///./src/themes/citta/views/ratings-histogram.view.tsx?db06"],"names":["NotificationsListView","props","React","Module","Object","assign","container","notificationsList","_renderTabItemContent","items","length","map","item","index","key","TabItemView","tabItemType","tabSlots","TabContentContainer","TabHeaderContainer","TabItemContent","tabHeader","TabItemType","TabContent","Node","tabItemContent","TabHeader","DefaultPageContainer","constructor","super","render","slots","telemetry","id","typeName","this","skipToMainText","config","log","LogLevel","Debug","values","context","app","platform","tabIndexSkipToMain","isEditorialMode","actionContext","requestContext","className","href","tabIndex","header","children","subheader","primary","subfooter","footer","ICittaOrderreferenceView","orderreferenceWrapper","orderreferenceForm","orderreferenceno","FormWrapper","FormContainer","orderreferenceInput","submitButtton","orderForm","TileList","_telemetryContent","getTelemetryObject","request","telemetryPageName","friendlyName","heading","text","StringExtensions","isNullOrWhitespace","Heading","headingTag","tag","_this$props$config$cl","resources","title","propsCarousel","SingleSlideCarousel","flipperPrevLabel","flipperPrevious","flipperNextLabel","flipperNext","parentId","telemetryContent","vertical","viewProps","_objectSpread","_createHeading","singleSlideCarouselComponentProps","tileItemContainer","role","tileListContainer","classnames","tileListHeading","tiles","content","renderView","CheckoutPaymentInstrumentView","_ref","paymentTabs","paymentTabContent","paymentMethod","processingModal","tileListView","createElement","tileItem","keyIndex","Tab","tabIndexQuery","handleHeadingChange","event","target","value","_refHandler","link","activeLink","_onClick","e","activeTabState","activeContentIndex","tabId","update","createTabStateInput","setState","currentTabIndex","newUrl","_setGetParameter","String","window","history","pushState","path","_onKeyDown","keyCode","slotLength","tabItems","defaultTabIndex","initialIndex","queryString","query","activeTab","queryTabIndex","indexOf","arr","split","Number","parseInt","state","_getTabHeader","bind","_getTabContent","shouldComponentUpdate","nextProps","nextState","data","headingComponent","MsDyn365","editProps","onEdit","tabViewProps","TabContainer","moduleProps","headerSection","tabsSection","tabItemContainer","tabContents","tabHeaders","componentDidUpdate","params","isEditor","dataActionTabId","result","focus","selected","undefined","contentID","getContentID","onClick","onKeyDown","ref","isSelected","itemIndex","paramName","paramValue","url","isBrowser","URL","location","requestUrl","URLSearchParams","search","set","decodeURIComponent","toString","__decorate","observer","VideoPlayerView","renderModuleAttributes","player","detailsContainer","additionalContent","additionalContentItems","additionalContentNode","additionalContentItemContainer","additionalContentItemLinks","links","detailsContainerCta","getAdditionalContentItems","_item$links","renderHeading","additionalContentHeading","Msdyn365","handleAdditionalTextChange","subtext","renderParagraph","additionalContentParagraphText","handleAdditionalParagraphChange","ctaLink","renderLinks","linkIndex","editableLink","ariaLabel","linkText","linkUrl","destinationUrl","openInNewTab","onTextChange","handleAdditionalLinkTextChange","videoPlayerAdditionalContent","VideoPlayer","handleTextChange","handleParagraphChange","paragraph","_video$thumbnail","video","videolink","_links","binaryReferences","clientHref","thumbnail","src","width","controls","poster","_getVideoDetailsHeading","_getVideoDetailsParagraph","_getVideoDetailsLinks","detailsContainerCTA","handleText","handleParagraph","handleAdditionalText","handleAdditionalParagraph","handleLink","handleLinkTextChange","handleAdditionalLink","_this$props$config$ad","payLoad","getPayloadObject","linkData","contentAction","etext","attributes","getTelemetryAttributes","linkId","additionalProperties","_heading$tag","TabItem","moduleContentClassName","moduleHeaderClassName","_renderTabHeader","activeContentIDResult","shown","tabItemTitle","tabView","error","CittaOrderreference","moduleClassName","orderrefnoValue","formInputValues","_handleChange","name","orderreferenceSubmited","orderreference","eAError","reqError","eAValError","pPCError","console","updateTextAttribute","attribute","TextValue","TextValueTranslations","createTextAttribute","Name","_addCartExtension","cart","ExtensionProperties","property","find","extension","Key","Value","StringValue","push","_OrderRefNoRef","_handlesubmit","rCCError","responseReceived","responseError","reCaptchaChecked","responseSuccess","submitted","current","_this$cart","cartState","getCartState","checkoutState","getCheckoutState","_this$cart2","_property$Value","orderreferenceResponse","_getSubscribeResponse","_renderForm","_renderorderreferenceno","style","display","_renderSubscribeThanks","_renderorderreferenceInput","_renderSubscribeButton","submitThanks","editButton","_renderEditButton","Button","color","_handleEdit","eA","_SaveExtenstionproperty","orderrefno","_this$cart3","_saveCartExtensions","type","onChange","required","responseMessage","orderReferenceString","Error","cartExtensionProperties","_this$checkoutState$c","cartAttributes","checkoutCart","AttributeValues","updateCart","orderReferenceAttributeName","orderReferenceAttribute","x","updateAttributeValues","newAttributeValues","updateAsync","callerContext","Id","then","newCart","GetCheckoutCartInput","apiSettings","catch","computed","NotificationComponentsList","Component","feed","ObjectExtensions","isNullOrUndefined","minTopOffset","maxTopOffset","_stickyConfiguration","_notificationsComponentList","notificationsComponentList","_handleTopUpdate","_getCurrentTopPosition","isPropsDifferent","maxNotificationsCount","isStateDifferent","top","every","otherValue","notification","componentDidMount","NotificationComponentsListsManager","subscribe","_instanceId","Random","Guid","generateGuid","addEventListener","componentWillUnmount","unsubscribe","forEach","component","_component$props$noti","events","getValue","NotificationEvents","RemovedFromList","removeEventListener","addNotificationComponent","notificationComponent","_notificationComponen","instanceId","handler","_notificationComponen2","newList","filter","unshift","_className","_renderNotificationsList","hasNotifications","ArrayExtensions","hasElements","containerClassName","maxHeight","ComponentClass","componentClass","configuration","pageYOffset","Math","max","min","newTop","histogramItem","buttonProps","starLabel","bar","percentage","RatingsHistogramView","histogramItems","histogramProps"],"mappings":"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","file":"static/js/11.b68ba38c438c2dd45f8c.chunk.js","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { INotificationsListViewProps } from './notifications-list';\n\nexport const NotificationsListView: React.FC = props => {\n return {props.notificationsList};\n};\n\nexport default NotificationsListView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ITabItemViewProps, TabItemType } from './tab-item';\n\nconst TabItemView: React.FC = props => {\n const { tabItemType, tabSlots, TabContentContainer, TabHeaderContainer, TabItemContent, tabHeader } = props;\n\n switch (tabItemType) {\n case TabItemType.TabContent:\n return (\n \n \n {tabSlots &&\n tabSlots.tabItemContent &&\n tabSlots.tabItemContent.length &&\n _renderTabItemContent(tabSlots.tabItemContent)}\n \n \n );\n case TabItemType.TabHeader:\n return {tabHeader};\n default:\n return null;\n }\n};\n\nconst _renderTabItemContent = (items: React.ReactNode[]): JSX.Element | null => {\n return (\n <>\n {items && items.length > 0\n ? items.map((item: React.ReactNode, index: number) => {\n return {item};\n })\n : null}\n \n );\n};\nexport default TabItemView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { LogLevel } from '@msdyn365-commerce/telemetry-internal';\nimport * as React from 'react';\nimport { isEditorialMode } from '@msdyn365-commerce/core-internal';\nimport { IDefaultPageProps } from './default-page.props.autogenerated';\n\n/**\n *\n * CoreComponent component\n * @extends {React.PureComponent}\n */\nclass DefaultPageContainer extends React.PureComponent> {\n constructor(props: IDefaultPageProps<{}>) {\n super(props);\n }\n\n public render(): JSX.Element {\n const { slots, telemetry, id, typeName } = this.props;\n\n let skipToMainText = this.props.config && this.props.config.skipToMainText;\n telemetry.log(LogLevel.Debug, \"DefaultPageContainer rendering for '{id}/{typeName}'\", { values: [id, typeName] });\n\n if (!skipToMainText) {\n skipToMainText =\n this.props.context.app && this.props.context.app.platform ? this.props.context.app.platform.skipToMainText : '';\n }\n\n const tabIndexSkipToMain = isEditorialMode(this.props.context.actionContext.requestContext) ? -1 : 0;\n\n return (\n \n \n {skipToMainText}\n \n
\n {slots &&\n slots.header &&\n slots.header.map((children: React.ReactNode) => {\n return children;\n })}\n
\n {slots && slots.subheader && (\n
\n {slots.subheader.map((children: React.ReactNode) => {\n return children;\n })}\n
\n )}\n
\n {slots &&\n slots.primary &&\n slots.primary.map((children: React.ReactNode) => {\n return children;\n })}\n
\n {slots && slots.subfooter && (\n
\n {slots.subfooter.map((children: React.ReactNode) => {\n return children;\n })}\n
\n )}\n
\n {slots &&\n slots.footer &&\n slots.footer.map((children: React.ReactNode) => {\n return children;\n })}\n
\n
\n );\n }\n}\n\nexport default DefaultPageContainer;\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\nimport { ICittaOrderreferenceViewProps } from './citta-orderreference';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n// export default (props: ICittaOrderreferenceViewProps) => {\r\n// return (\r\n//
\r\n//

Config Value: {props.config.showText}

\r\n//

Resource Value: {props.resources.resourceKey}

\r\n//
\r\n// );\r\n// };\r\n\r\nexport class ICittaOrderreferenceView extends React.PureComponent {\r\n\r\n public render(): JSX.Element | null {\r\n const { orderreferenceWrapper, orderreferenceForm, orderreferenceno } = this.props;\r\n const { FormWrapper, FormContainer,orderreferenceInput, submitButtton } = orderreferenceForm;\r\n const orderForm = \r\n \r\n {orderreferenceInput}\r\n {orderreferenceno}\r\n {submitButtton}\r\n \r\n ;\r\n \r\n return (\r\n \r\n {orderForm}\r\n \r\n );\r\n }\r\n}\r\nexport default ICittaOrderreferenceView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n getTelemetryObject,\n Heading,\n IComponentNodeProps,\n INodeProps,\n ISingleSlideCarouselProps,\n ITelemetryContent,\n NodeTag,\n SingleSlideCarousel\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { ITileListProps, ITitleData } from './tile-list.props.autogenerated';\n\n/**\n * Tile-list view props.\n */\nexport interface ITileListViewProps extends ITileListProps<{}> {\n title?: React.ReactNode;\n tiles: React.ReactNode[];\n tileItemContainer: INodeProps;\n tileListContainer: INodeProps;\n tileListHeading: INodeProps;\n singleSlideCarouselComponentProps: INodeProps;\n}\n\n/**\n *\n * TileList component.\n * @extends {React.PureComponent>}\n */\nexport class TileList extends React.PureComponent> {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n private static _createHeading(heading?: ITitleData): React.ReactNode | null {\n if (!heading || !heading.text || StringExtensions.isNullOrWhitespace(heading.text)) {\n return null;\n }\n return ;\n }\n public constructor(props: ITileListProps<{}>) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { resources } = this.props;\n const { title, className } = this.props.config;\n const propsCarousel: IComponentNodeProps = {\n tag: SingleSlideCarousel,\n className: this.props.config.className ?? '',\n flipperPrevLabel: resources.flipperPrevious,\n flipperNextLabel: resources.flipperNext,\n parentId: this.props.id,\n telemetryContent: this._telemetryContent,\n vertical: false\n };\n\n const viewProps = {\n ...this.props,\n title: TileList._createHeading(title),\n singleSlideCarouselComponentProps: propsCarousel,\n tileItemContainer: {\n tag: 'li' as NodeTag,\n className: 'ms-tile__item',\n role: 'listitem'\n },\n tileListContainer: { className: classnames('ms-tile-list', className) },\n tileListHeading: { className: 'ms-tile-list__heading' },\n tiles: this.props.slots.content\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n}\n\nexport default TileList;\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\nimport { ICheckoutPaymentInstrumentViewProps } from './citta-checkout-payment-instrument';\r\n\r\nconst CheckoutPaymentInstrumentView: React.FC = ({\r\n paymentTabs,\r\n paymentTabContent,\r\n paymentMethod,\r\n processingModal\r\n}) => (\r\n
\r\n
\r\n
{paymentMethod}
\r\n
\r\n {paymentTabs}\r\n {paymentTabContent}\r\n
\r\n {processingModal}\r\n
\r\n);\r\n\r\nexport default CheckoutPaymentInstrumentView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { ITileListViewProps } from './tile-list';\n\n/**\n * View component.\n * @param props - The view properties.\n * @returns Returns props.\n */\nexport const tileListView: React.FC = props => {\n const { title, tiles, tileListContainer, tileListHeading, tileItemContainer, singleSlideCarouselComponentProps } = props;\n return (\n \n {title}\n \n {tiles.map((tileItem: ReactNode, index: number) => {\n const keyIndex = `tile-list-item__${index}`;\n return (\n \n {tileItem}\n \n );\n })}\n \n \n );\n};\n\nexport default tileListView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as MsDyn365 from '@msdyn365-commerce/core';\nimport { IModuleProps, INodeProps, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { createTabStateInput, getContentID, TabItemType } from '../..';\nimport { ITabData } from './tab.data';\nimport { ITabProps } from './tab.props.autogenerated';\n\n/**\n *\n * Tab component.\n * @extends {React.PureComponent>}\n */\n\nexport interface ICallToActionProps {\n link: INodeProps[];\n}\n\nexport interface ITabViewProps extends ITabProps<{}> {\n heading?: React.ReactNode;\n TabContainer: IModuleProps;\n headerSection: INodeProps;\n tabHeaderSection: INodeProps;\n tabsSection: INodeProps;\n tabItemContainer: INodeProps;\n tabHeaders: React.ReactNode;\n tabContents: React.ReactNode;\n}\n\nexport interface ITabViewStates {\n currentTabIndex: number;\n}\n\n/**\n *\n * Tab component.\n * @extends {React.Component>}\n */\n@observer\nclass Tab extends React.Component, ITabViewStates> {\n public readonly tabIndexQuery: string = 'activeTab';\n\n private activeLink: HTMLLIElement | null;\n\n constructor(props: ITabProps) {\n super(props);\n const { defaultTabIndex } = this.props.config;\n const { slots } = this.props;\n const slotLength = (slots && slots.tabItems && slots.tabItems.length) || 0;\n let initialIndex = defaultTabIndex && defaultTabIndex <= slotLength && defaultTabIndex > 0 ? defaultTabIndex - 1 : 0;\n const queryString: string =\n (this.props.context &&\n this.props.context.request &&\n this.props.context.request.query &&\n this.props.context.request.query.activeTab) ||\n '';\n let queryTabIndex: number = 0;\n if (queryString.indexOf(':') > 0) {\n const arr = queryString.split(':');\n const moduleId = arr[0];\n if (moduleId === this.props.id) {\n queryTabIndex = Number.parseInt(arr[1], 10);\n }\n }\n initialIndex = queryTabIndex > 0 && queryTabIndex <= slotLength ? queryTabIndex - 1 : initialIndex;\n this.state = { currentTabIndex: initialIndex };\n\n this._getTabHeader = this._getTabHeader.bind(this);\n this._getTabContent = this._getTabContent.bind(this);\n this._onClick = this._onClick.bind(this);\n this._onKeyDown = this._onKeyDown.bind(this);\n this._setGetParameter = this._setGetParameter.bind(this);\n this.activeLink = null;\n }\n\n public shouldComponentUpdate(nextProps: ITabProps, nextState: ITabViewStates): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { slots } = this.props;\n const { heading, className } = this.props.config;\n\n const headingComponent = heading && (\n \n );\n const slotLength = (slots && slots.tabItems && slots.tabItems.length) || 0;\n\n // Const queryTabIndex = this.props.context && this.props.context.request && this.props.context.request.query && +this.props.context.request.query.activeTabIndex || 0;\n // let activeIndex = defaultTabIndex && defaultTabIndex <= slotLength && defaultTabIndex > 0 ? defaultTabIndex - 1 : 0;\n // activeIndex = queryTabIndex > 0 && queryTabIndex <= slotLength ? queryTabIndex - 1 : activeIndex;\n\n const tabViewProps = {\n ...this.props,\n TabContainer: {\n moduleProps: this.props,\n className: classnames('ms-tab', className)\n },\n headerSection: { className: 'ms-tab-header-section' },\n tabsSection: { className: 'ms-tab-tabs-section', tag: 'ul' as NodeTag, role: 'tablist' },\n heading: headingComponent,\n config: this.props && this.props.config,\n tabItemContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-tab-content-section'\n },\n tabContents: slotLength > 0 && slots.tabItems.map((item: React.ReactNode, index: number) => this._getTabContent(item, index)),\n tabHeaders: slotLength > 0 && slots.tabItems.map((item: React.ReactNode, index: number) => this._getTabHeader(item, index))\n };\n return this.props.renderView(tabViewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: MsDyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public componentDidUpdate(): void {\n const { data } = this.props;\n if (!this.props.context.request.params.isEditor) {\n const dataActionTabId = data && data.activeTabState && data.activeTabState.result && data.activeTabState.result.tabId;\n if (dataActionTabId) {\n if (this.props.id === dataActionTabId) {\n this.activeLink && this.activeLink.focus();\n }\n } else {\n const queryString: string =\n (this.props.context &&\n this.props.context.request &&\n this.props.context.request.query &&\n this.props.context.request.query.activeTab) ||\n '';\n if (queryString.indexOf(':') > 0) {\n const arr = queryString.split(':');\n const moduleId = arr[0];\n if (moduleId === this.props.id) {\n this.activeLink && this.activeLink.focus();\n }\n }\n }\n }\n }\n\n /**\n *Set the activate link value on tab click.\n * @param link -Ref link value.\n */\n private readonly _refHandler = (link: HTMLLIElement | null) => {\n this.activeLink = link;\n };\n\n private _getTabHeader(item: React.ReactNode, index: number): React.ReactNode {\n const { data } = this.props;\n const activeContentIndex =\n data && data.activeTabState && data.activeTabState.result && data.activeTabState.result.activeContentIndex;\n const dataActionTabId = data && data.activeTabState && data.activeTabState.result && data.activeTabState.result.tabId;\n const selected =\n activeContentIndex !== undefined && dataActionTabId === this.props.id\n ? activeContentIndex === index\n : this.state.currentTabIndex === index;\n const contentID = getContentID(index, this.props.id);\n\n return (\n \n \n {React.cloneElement(item as React.ReactElement, {\n tabItemType: TabItemType.TabHeader,\n isSelected: index === this.state.currentTabIndex,\n itemIndex: index,\n tabId: this.props.id\n })}\n \n \n );\n }\n\n private readonly _onClick = (index: number, id: string) => (e: React.MouseEvent) => {\n const activeTabState = { activeContentIndex: index, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index + 1)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n };\n\n private readonly _onKeyDown = (index: number, id: string) => (e: React.KeyboardEvent) => {\n if (e.keyCode === 13) {\n const activeTabState = { activeContentIndex: index, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index + 1)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n }\n\n if (e.keyCode === 39 || e.keyCode === 37) {\n const { slots } = this.props;\n const slotLength = (slots && slots.tabItems && slots.tabItems.length) || 0;\n\n if (e.keyCode === 39) {\n // If we're at the end, go to the start\n if (index + 1 === slotLength) {\n index = -1;\n }\n const activeTabState = { activeContentIndex: index + 1, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index + 1 });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index + 2)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n\n // Move left\n } else if (e.keyCode === 37) {\n // If we're at the start, move to the end\n if (index === 0) {\n index = slotLength;\n }\n const activeTabState = { activeContentIndex: index - 1, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index - 1 });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n }\n }\n };\n\n private _getTabContent(item: React.ReactNode, index: number): React.ReactNode {\n return (\n \n {React.cloneElement(item as React.ReactElement, {\n tabItemType: TabItemType.TabContent,\n isSelected: index === this.state.currentTabIndex,\n itemIndex: index,\n tabId: this.props.id\n })}\n \n );\n }\n\n private _setGetParameter(requestContext: MsDyn365.IRequestContext, paramName: string, paramValue: string): string {\n let url;\n\n if (MsDyn365.msdyn365Commerce.isBrowser) {\n url = new URL(window.location.href);\n } else {\n url = new URL(requestContext.url.requestUrl.href);\n }\n\n const params = new window.URLSearchParams(url.search);\n params.set(paramName, paramValue);\n url.search = decodeURIComponent(params.toString());\n return url.toString();\n }\n}\n\nexport default Tab;\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\n/* eslint-disable no-duplicate-imports */\r\nimport { Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IVideoPlayerAdditionalContentViewProps } from './components/additional-content';\r\nimport { IVideoPlayerViewProps } from './video-player-mobility';\r\n\r\n/**\r\n * Render Additional Content.\r\n * @param additionalContent - Additional content view props.\r\n * @returns JSX Element.\r\n */\r\nconst renderAdditionalContent = (additionalContent: IVideoPlayerAdditionalContentViewProps) => {\r\n if (additionalContent.additionalContentItems) {\r\n return (\r\n \r\n <>\r\n {additionalContent.additionalContentItems.heading}\r\n \r\n {additionalContent.additionalContentItems.text}\r\n \r\n {additionalContent.additionalContentItems.links}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst VideoPlayerView: React.FC = props => {\r\n return (\r\n
\r\n {props.player}\r\n \r\n {props.title}\r\n {props.text}\r\n {props.additionalContent && renderAdditionalContent(props.additionalContent)}\r\n \r\n {props.links}\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default VideoPlayerView;\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\n/* eslint-disable no-duplicate-imports */\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAdditionalContentData, ILinksData } from '../video-player-mobility.props.autogenerated';\r\n\r\n/**\r\n * IVideoPlayerAdditionalContentProps: Interface for\r\n * Video Player Additional Content Component props.\r\n */\r\nexport interface IVideoPlayerAdditionalContentProps {\r\n requestContext: Msdyn365.IRequestContext;\r\n additionalContent: IAdditionalContentData | undefined;\r\n handleAdditionalTextChange(event: Msdyn365.ContentEditableEvent): void;\r\n handleAdditionalParagraphChange(event: Msdyn365.ContentEditableEvent): void;\r\n handleAdditionalLinkTextChange(linkIndex: number, event: Msdyn365.ContentEditableEvent): void;\r\n}\r\n\r\n/**\r\n * IVideoPlayerAdditionalContentProps: Interface for\r\n * Video Player Additional Content view props.\r\n */\r\nexport interface IVideoPlayerAdditionalContentViewProps {\r\n additionalContentNode: INodeProps;\r\n additionalContentItems?: IVideoPlayerAdditionalContentItemViewProps;\r\n}\r\n\r\n/**\r\n * IVideoPlayerAdditionalContentProps: Interface for\r\n * Video Player Additional Content Item view props.\r\n */\r\nexport interface IVideoPlayerAdditionalContentItemViewProps {\r\n heading: React.ReactNode;\r\n text: React.ReactNode;\r\n links: React.ReactNode;\r\n additionalContentItemContainer: INodeProps;\r\n additionalContentItemLinks: INodeProps;\r\n}\r\n\r\n/**\r\n * Renders additional content heading.\r\n * @param additionalContentHeading - Additional content heading.\r\n * @param props - Video Player Additional content component props.\r\n * @returns Heading Node.\r\n */\r\nconst renderHeading = (additionalContentHeading: string, props: IVideoPlayerAdditionalContentProps) => {\r\n const requestContext = props.requestContext;\r\n return (\r\n {\r\n props.handleAdditionalTextChange(event);\r\n },\r\n requestContext\r\n }}\r\n />\r\n );\r\n};\r\n\r\n/**\r\n * Renders additional content heading.\r\n * @param additionalContentParagraphText - Additional content paragraph text.\r\n * @param props - Video Player Additional content component props.\r\n * @returns Paragraph Node.\r\n */\r\nconst renderParagraph = (additionalContentParagraphText: string, props: IVideoPlayerAdditionalContentProps) => {\r\n const requestContext = props.requestContext;\r\n return (\r\n {\r\n props.handleAdditionalParagraphChange(event);\r\n },\r\n requestContext\r\n }}\r\n />\r\n );\r\n};\r\n\r\n/**\r\n * Renders additional content heading.\r\n * @param ctaLink - Additional content link.\r\n * @param props - Video Player Additional content component props.\r\n * @param linkIndex - Additional content link index.\r\n * @returns Link Node.\r\n */\r\nconst renderLinks = (ctaLink: ILinksData, props: IVideoPlayerAdditionalContentProps, linkIndex: number) => {\r\n const editableLink: Msdyn365.ILinksData = {\r\n ariaLabel: ctaLink.ariaLabel,\r\n className: 'ms-video-player__details__additional-content__cta__links',\r\n linkText: ctaLink.linkText,\r\n linkUrl: ctaLink.linkUrl.destinationUrl,\r\n openInNewTab: ctaLink.openInNewTab,\r\n role: 'link'\r\n };\r\n const requestContext = props.requestContext;\r\n return (\r\n {\r\n props.handleAdditionalLinkTextChange(linkIndex, event);\r\n },\r\n requestContext\r\n }}\r\n />\r\n );\r\n};\r\n\r\n/**\r\n * Create node for each additonal content item.\r\n * @param item - Video Player additonal content item props.\r\n * @param props - Video Player Additional content component props.\r\n * @returns IVideoPlayerAdditionalContentItemViewProps.\r\n */\r\nconst getAdditionalContentItems = (\r\n item: IAdditionalContentData,\r\n props: IVideoPlayerAdditionalContentProps\r\n): IVideoPlayerAdditionalContentItemViewProps => {\r\n const headingNode = item.heading && renderHeading(item.heading, props);\r\n const paragraphNode = item.subtext && renderParagraph(item.subtext, props);\r\n const linksNode = item.links?.map((ctaLink: ILinksData, index: number) => {\r\n return renderLinks(ctaLink, props, index);\r\n });\r\n\r\n return {\r\n heading: headingNode,\r\n text: paragraphNode,\r\n links: linksNode,\r\n additionalContentItemContainer: { className: 'ms-video-player__details__additional-content__container' },\r\n additionalContentItemLinks: { className: 'ms-video-player__details__additional-content__cta' }\r\n };\r\n};\r\n\r\n/**\r\n * VideoPlayerAdditionalContent component.\r\n * @param props - Video Player Additional content component props.\r\n * @returns Video Player Additional content view props.\r\n */\r\nexport const videoPlayerAdditionalContent = (\r\n props: IVideoPlayerAdditionalContentProps\r\n): IVideoPlayerAdditionalContentViewProps | undefined => {\r\n const { additionalContent } = props;\r\n if (!additionalContent) {\r\n return undefined;\r\n }\r\n\r\n const reactNodes: IVideoPlayerAdditionalContentItemViewProps = getAdditionalContentItems(additionalContent, props);\r\n return {\r\n additionalContentNode: { className: 'ms-video-player__details__additional-content' },\r\n additionalContentItems: reactNodes\r\n };\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\n/* eslint-disable no-duplicate-imports */\r\nimport * as MsDyn365 from '@msdyn365-commerce/core';\r\nimport {\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n getTelemetryObject,\r\n INodeProps,\r\n // isMobile,\r\n ITelemetryContent,\r\n // VariantType\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IVideoPlayerAdditionalContentViewProps, videoPlayerAdditionalContent } from './components/additional-content';\r\nimport { ILinksData, IVideoPlayerMobilityConfig, IVideoPlayerMobilityProps } from './video-player-mobility.props.autogenerated';\r\n\r\nexport interface IVideoPlayerViewProps extends IVideoPlayerMobilityProps<{}> {\r\n player: React.ReactNode;\r\n title?: React.ReactNode;\r\n text?: React.ReactNode;\r\n links?: React.ReactNode;\r\n detailsContainer?: INodeProps;\r\n detailsContainerCta?: INodeProps;\r\n additionalContent?: IVideoPlayerAdditionalContentViewProps;\r\n handleText?(): void;\r\n handleParagraph?(): void;\r\n handleAdditionalText?(): void;\r\n handleAdditionalParagraph?(): void;\r\n handleLink?(): void;\r\n handleAdditionalLink?(): void;\r\n}\r\n\r\n/**\r\n *\r\n * VideoPlayer component.\r\n * @extends {React.PureComponent>}\r\n */\r\nclass VideoPlayer extends React.PureComponent> {\r\n private readonly telemetryContent: ITelemetryContent;\r\n\r\n // private readonly isMobileDevice: boolean;\r\n\r\n public constructor(props: IVideoPlayerMobilityProps) {\r\n super(props);\r\n // this.isMobileDevice = isMobile({ variant: VariantType.Viewport, context: this.props.context.request }) === 'xs';\r\n this.telemetryContent = getTelemetryObject(\r\n this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry\r\n );\r\n }\r\n\r\n public render(): JSX.Element {\r\n const video: MsDyn365.IVideoData = this.props.config.video;\r\n let videolink = video._links && video._links.binaryReferences && video._links.binaryReferences[0].clientHref;\r\n let thumbnail = video.thumbnail?.src;\r\n \r\n const viewProps = {\r\n // Context for telemetry and raw data for C1 to do customization\r\n // Including computed data, state data and methods\r\n ...this.props,\r\n player: (\r\n \r\n \r\n ),\r\n title: this._getVideoDetailsHeading(),\r\n text: this._getVideoDetailsParagraph(),\r\n links: this._getVideoDetailsLinks(),\r\n detailsContainer: { className: 'ms-video-player__details' },\r\n detailsContainerCTA: { className: 'ms-video-player__details__cta' },\r\n additionalContent: videoPlayerAdditionalContent({\r\n requestContext: this.props.context.request,\r\n additionalContent: this.props.config.additionalContent,\r\n handleAdditionalTextChange: this.handleAdditionalTextChange,\r\n handleAdditionalParagraphChange: this.handleAdditionalParagraphChange,\r\n handleAdditionalLinkTextChange: this.handleAdditionalLinkTextChange\r\n }),\r\n handleText: this.handleTextChange,\r\n handleParagraph: this.handleParagraphChange,\r\n handleAdditionalText: this.handleAdditionalTextChange,\r\n handleAdditionalParagraph: this.handleAdditionalParagraphChange,\r\n handleLink: this.handleLinkTextChange,\r\n handleAdditionalLink: this.handleAdditionalTextChange\r\n };\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n /**\r\n * Handle link text change.\r\n * @param linkIndex - The link index.\r\n * @param event - The dialog that is allowed to remain open.\r\n */\r\n public handleLinkTextChange(linkIndex: number, event: MsDyn365.ContentEditableEvent): void {\r\n if (this.props.config.links && this.props.config.links[Number(linkIndex)]) {\r\n this.props.config.links[Number(linkIndex)].linkText = event.target.value;\r\n }\r\n }\r\n\r\n /**\r\n * Handle text change.\r\n * @param event - The dialog that is allowed to remain open.\r\n */\r\n public handleTextChange = (event: MsDyn365.ContentEditableEvent): void => {\r\n this.props.config.heading!.text = event.target.value;\r\n };\r\n\r\n /**\r\n * Handle paragraph change.\r\n * @param event - The dialog that is allowed to remain open.\r\n */\r\n public handleParagraphChange = (event: MsDyn365.ContentEditableEvent): void => {\r\n this.props.config.paragraph = event.target.value;\r\n };\r\n\r\n /**\r\n * Handle additional text change.\r\n * @param event - The dialog that is allowed to remain open.\r\n */\r\n public handleAdditionalTextChange(event: MsDyn365.ContentEditableEvent): void {\r\n if (this.props.config.additionalContent) {\r\n this.props.config.additionalContent.heading = event.target.value;\r\n }\r\n }\r\n\r\n /**\r\n * Handle additional link text change.\r\n * @param linkIndex - The link index.\r\n * @param event - The dialog that is allowed to remain open.\r\n */\r\n public handleAdditionalLinkTextChange(linkIndex: number, event: MsDyn365.ContentEditableEvent): void {\r\n const additionalContent = this.props.config.additionalContent ?? {};\r\n if (additionalContent.links) {\r\n additionalContent.links[Number(linkIndex)].linkText = event.target.value;\r\n }\r\n }\r\n\r\n /**\r\n * Handle additional paragraph change.\r\n * @param event - The dialog that is allowed to remain open.\r\n */\r\n public handleAdditionalParagraphChange(event: MsDyn365.ContentEditableEvent): void {\r\n if (this.props.config.additionalContent) {\r\n this.props.config.additionalContent.subtext = event.target.value;\r\n }\r\n }\r\n\r\n /**\r\n * Get video details links.\r\n * @returns - React node.\r\n */\r\n private _getVideoDetailsLinks(): React.ReactNode[] | undefined {\r\n const { links } = this.props.config;\r\n const payLoad = getPayloadObject('click', this.telemetryContent, '');\r\n\r\n return links?.map((linkData: ILinksData, index: number) => {\r\n payLoad.contentAction.etext = linkData.linkText;\r\n const attributes = getTelemetryAttributes(this.telemetryContent, payLoad);\r\n const linkId = index;\r\n const editableLink: MsDyn365.ILinksData = {\r\n ariaLabel: linkData.ariaLabel,\r\n className: 'ms-video-player__details__cta__link',\r\n linkText: linkData.linkText,\r\n linkUrl: linkData.linkUrl.destinationUrl,\r\n openInNewTab: linkData.openInNewTab,\r\n role: 'button',\r\n additionalProperties: attributes\r\n };\r\n\r\n return (\r\n {\r\n this.handleLinkTextChange(index, event);\r\n },\r\n requestContext: this.props.context.request\r\n }}\r\n />\r\n );\r\n });\r\n }\r\n\r\n private _getVideoDetailsHeading(): React.ReactNode | undefined {\r\n const { heading } = this.props.config;\r\n\r\n return (\r\n heading && (\r\n \r\n )\r\n );\r\n }\r\n\r\n private _getVideoDetailsParagraph(): React.ReactNode | undefined {\r\n const { paragraph } = this.props.config;\r\n\r\n return (\r\n paragraph && (\r\n \r\n )\r\n );\r\n }\r\n}\r\n\r\nexport default VideoPlayer;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IModuleProps, INodeProps, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { ITabItemData } from './tab-item.data';\nimport { ITabItemProps } from './tab-item.props.autogenerated';\n\nexport interface ITabItemViewProps {\n TabContentContainer: IModuleProps;\n TabHeaderContainer: IModuleProps;\n tabSlots: INodeProps;\n TabItemContent: INodeProps;\n tabItemType?: TabItemType;\n tabHeader: React.ReactNode;\n}\n\nexport interface ITabItemExtentedProps extends ITabItemProps {\n tabItemType?: TabItemType;\n isSelected?: boolean;\n itemIndex?: number;\n tabId?: string;\n}\n\nexport enum TabItemType {\n TabHeader,\n TabContent\n}\n\n/**\n *\n * TabItem component.\n * @extends {React.Component}\n */\n@observer\nclass TabItem extends React.PureComponent {\n private readonly moduleContentClassName: string = 'ms-tab-item-content';\n\n private readonly moduleHeaderClassName: string = 'ms-tab-item-header';\n\n constructor(props: ITabItemProps) {\n super(props);\n this._renderTabHeader = this._renderTabHeader.bind(this);\n }\n\n public render(): JSX.Element {\n const { slots, renderView, config, data, isSelected, itemIndex } = this.props;\n const index = itemIndex || 0;\n const contentID = getContentID(index, this.props.tabId || '');\n const activeContentIDResult = data && data.activeTabState && data.activeTabState.result;\n const shown =\n activeContentIDResult &&\n activeContentIDResult.tabId === this.props.tabId &&\n activeContentIDResult.activeContentIndex !== undefined\n ? activeContentIDResult.activeContentIndex === index\n : isSelected || false;\n const viewProps = {\n ...this.props,\n TabContentContainer: {\n moduleProps: this.props,\n className: classnames(this.moduleContentClassName, config.className)\n },\n TabHeaderContainer: {\n moduleProps: this.props,\n className: classnames(this.moduleHeaderClassName, config.className)\n },\n TabItemContent: {\n className: 'ms-tab-item-content__content',\n tag: 'section' as NodeTag,\n 'aria-hidden': !shown,\n role: 'tabpanel',\n tabIndex: shown ? 0 : -1,\n id: contentID\n },\n tabHeader: this._renderTabHeader(),\n tabSlots: slots\n };\n return renderView(viewProps) as React.ReactElement;\n }\n\n private _renderTabHeader(): React.ReactNode {\n return <>{this.props.config.tabItemTitle};\n }\n}\n\nexport const getContentID = (index: number, id: string) => {\n return `tab-item-content-${id}-${index}`;\n};\n\nexport default TabItem;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ITabViewProps } from './tab';\n\nconst tabView: React.FC = props => {\n const { heading, TabContainer, tabHeaders, tabContents } = props;\n if (!props.heading && !props.tabHeaders && !props.tabContents) {\n props.context.telemetry.error('Tab content is empty, module wont render');\n return null;\n }\n return (\n \n {heading}\n {tabHeaders}\n {tabContents}\n \n );\n};\n\nexport default tabView;\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\nimport classnames from 'classnames';\r\nimport { ICittaOrderreferenceData } from './citta-orderreference.data';\r\nimport { ICittaOrderreferenceProps } from './citta-orderreference.props.autogenerated';\r\nimport { Button, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport { computed } from 'mobx';\r\nimport { ICartState, getCartState, ICheckoutState, getCheckoutState } from '@msdyn365-commerce/global-state';\r\nimport { GetCheckoutCartInput } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { updateAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CartsDataActions.g';\r\nimport { Cart, AttributeTextValue } from '@msdyn365-commerce/retail-proxy';\r\n\r\ninterface ICittaOrderReferenceFormState {\r\n orderreference: string;\r\n orderreferenceSubmited: string;\r\n eAValError: boolean;\r\n eAError: boolean;\r\n pPCError: boolean;\r\n rCCError: boolean;\r\n reqError: boolean;\r\n responseReceived: boolean;\r\n responseError: boolean;\r\n responseSuccess: boolean;\r\n reCaptchaChecked: boolean;\r\n submitted: boolean;\r\n}\r\nexport interface ICittaOrderReferenceForm {\r\n FormWrapper: INodeProps;\r\n FormContainer: INodeProps;\r\n orderreferenceInput: React.ReactNode;\r\n submitButtton: React.ReactNode;\r\n submitThanks: React.ReactNode;\r\n editButton: React.ReactNode;\r\n\r\n}\r\n\r\nexport interface ICittaOrderreferenceViewProps extends ICittaOrderreferenceProps {\r\n orderreferenceWrapper: IModuleProps;\r\n orderreferenceResponse: React.ReactNode;\r\n orderreferenceForm: ICittaOrderReferenceForm;\r\n responseSuccess: boolean;\r\n orderreferenceno: React.ReactNode;\r\n}\r\n\r\n/**\r\n *\r\n * CittaOrderreference component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass CittaOrderreference extends React.PureComponent, ICittaOrderReferenceFormState> {\r\n private _OrderRefNoRef: React.RefObject;\r\n private moduleClassName: string = 'newsletterSubWrap';\r\n private responseMessage: string | undefined;\r\n private orderrefnoValue: boolean = false;\r\n private formInputValues: boolean = false;\r\n private cart: ICartState | undefined;\r\n private checkoutState: ICheckoutState | undefined; \r\n @computed public get userorderreferenceno(): Readonly {\r\n if (this._OrderRefNoRef.current) {\r\n return this._OrderRefNoRef.current!.value;\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n constructor(props: ICittaOrderreferenceProps) {\r\n super(props);\r\n this._OrderRefNoRef = React.createRef();\r\n this._handlesubmit = this._handlesubmit.bind(this);\r\n this.state = {\r\n orderreference: '',\r\n orderreferenceSubmited:'',\r\n eAValError: false,\r\n eAError: false,\r\n pPCError: false,\r\n rCCError: false,\r\n reqError: false,\r\n responseReceived: false,\r\n responseError: false,\r\n reCaptchaChecked: false,\r\n responseSuccess: false,\r\n submitted: false\r\n };\r\n }\r\n\r\n public async componentDidMount(): Promise {\r\n let cartState = await getCartState(this.props.context.actionContext);\r\n this.cart = cartState;\r\n this.checkoutState = await getCheckoutState(this.props.context.actionContext);\r\n\r\n if (this.cart?.cart?.ExtensionProperties!?.length > 0) {\r\n\r\n const property = this.cart?.cart?.ExtensionProperties!?.find((extension) => extension.Key === 'HSOCustRef');\r\n if (property) {\r\n if (this._OrderRefNoRef.current) {\r\n this._OrderRefNoRef.current!.value = property.Value?.StringValue!;\r\n //this.setState({orderreference: property.Value?.StringValue!})\r\n //this.setState({orderreferenceSubmited: property.Value?.StringValue!})\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n public render(): JSX.Element | null {\r\n // return this.props.renderView(this.props); \r\n\r\n const viewProps: ICittaOrderreferenceViewProps = {\r\n ...(this.props as ICittaOrderreferenceProps),\r\n orderreferenceWrapper: {\r\n moduleProps: this.props,\r\n className: classnames(this.moduleClassName)\r\n },\r\n orderreferenceResponse: this._getSubscribeResponse(),\r\n orderreferenceForm: this._renderForm(),\r\n responseSuccess: this.state.responseSuccess,\r\n orderreferenceno: this._renderorderreferenceno()\r\n };\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n private _renderorderreferenceno(): React.ReactNode {\r\n return (\r\n this.state.orderreferenceSubmited && Applied value: {this.state.orderreferenceSubmited}\r\n );\r\n }\r\n\r\n\r\n private _renderSubscribeThanks(): React.ReactNode {\r\n return (\r\n
\r\n
\r\n Thanks!\r\n
\r\n
\r\n );\r\n }\r\n private _renderForm(): ICittaOrderReferenceForm {\r\n return {\r\n FormWrapper: {\r\n className: 'newsletter-subscription',\r\n },\r\n FormContainer: {\r\n className: 'newsletter-subscription-div',\r\n },\r\n orderreferenceInput: this._renderorderreferenceInput(),\r\n submitButtton: this.state.orderreferenceSubmited ? null : this._renderSubscribeButton(),\r\n submitThanks: this._renderSubscribeThanks(),\r\n editButton: this._renderEditButton()\r\n };\r\n }\r\n\r\n private _renderSubscribeButton(): React.ReactNode {\r\n return (\r\n
\r\n Apply\r\n \r\n
\r\n );\r\n }\r\n\r\n private _renderEditButton(): React.ReactNode {\r\n return (\r\n
\r\n Edit\r\n \r\n
\r\n );\r\n }\r\n\r\n private async _handleEdit(e: React.MouseEvent | React.KeyboardEvent | React.FormEvent): Promise {\r\n this.orderrefnoValue = (this._OrderRefNoRef && this._OrderRefNoRef.current && this._OrderRefNoRef.current.value) ? true : false;\r\n this.setState({responseSuccess: false});\r\n }\r\n\r\n private async _handlesubmit(e: React.MouseEvent | React.KeyboardEvent | React.FormEvent): Promise {\r\n this.orderrefnoValue = (this._OrderRefNoRef && this._OrderRefNoRef.current && this._OrderRefNoRef.current.value) ? true : false;\r\n\r\n const eA = (this._OrderRefNoRef && this._OrderRefNoRef.current && this._OrderRefNoRef.current.value) ? this._OrderRefNoRef.current.value : '';\r\n if (!this.orderrefnoValue) {\r\n this.setState({\r\n eAError: true,\r\n reqError: true\r\n });\r\n } else {\r\n this.formInputValues = (this.orderrefnoValue) ? true : false;\r\n if (this.formInputValues && !this.state.eAValError) {\r\n try {\r\n await this._SaveExtenstionproperty(eA);\r\n // this._clearValues();\r\n } catch (e) {\r\n console.log(e, 'Please fill the form!');\r\n }\r\n }\r\n }\r\n }\r\n\r\n // private _clearValues(): void {\r\n // if (this._OrderRefNoRef.current) {\r\n // this._OrderRefNoRef.current!.value = '';\r\n // }\r\n // }\r\n private async _SaveExtenstionproperty(orderrefno: string): Promise {\r\n\r\n this._addCartExtension(this.cart?.cart!, \"HSOCustRef\", orderrefno);\r\n this._saveCartExtensions(this.cart!, orderrefno);\r\n this.setState({responseSuccess: true, orderreferenceSubmited: orderrefno});\r\n }\r\n\r\n\r\n private _renderorderreferenceInput(): React.ReactNode {\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n private _handleChange = (name: string) => (e: React.ChangeEvent) => {\r\n this.setState({orderreferenceSubmited: ''});\r\n const value = e.target.value;\r\n switch (name) {\r\n case 'orderrefno': {\r\n this.setState({ orderreference: value, eAError: false, reqError: false, eAValError: false, pPCError: false });\r\n break;\r\n }\r\n default: {\r\n console.log('No input box changes');\r\n this.setState({ reqError: false, eAValError: false, pPCError: false });\r\n }\r\n }\r\n }\r\n private _getSubscribeResponse(): React.ReactNode {\r\n return (\r\n this.state.responseReceived && this.responseMessage !== '' || undefined\r\n ? (\r\n
\r\n

{this.responseMessage}

\r\n
\r\n )\r\n : null\r\n );\r\n }\r\n\r\n private async _saveCartExtensions(cart: ICartState, orderReferenceString: string) {\r\n if (!cart) {\r\n this.props.telemetry.error('No cart object given');\r\n throw new Error(`saveCartExtensions error: No cart object given`);\r\n }\r\n const cartExtensionProperties = cart.cart.ExtensionProperties;\r\n if (this.checkoutState) {\r\n let cartAttributes = this.checkoutState.checkoutCart.cart.AttributeValues ?? [];\r\n let updateCart = true;\r\n\t\t\tconst orderReferenceAttributeName = \"HSOCustRef\";\r\n\r\n const orderReferenceAttribute = cartAttributes?.find(x => x.Name === orderReferenceAttributeName) as AttributeTextValue;\r\n\r\n if (orderReferenceAttribute) {\r\n if (orderReferenceAttribute.TextValue !== orderReferenceString) {\r\n this.updateTextAttribute(orderReferenceAttribute as AttributeTextValue, orderReferenceString);\r\n }\r\n else {\r\n updateCart = false;\r\n }\r\n } else {\r\n cartAttributes?.push(this.createTextAttribute(orderReferenceAttributeName, orderReferenceString));\r\n }\r\n\r\n if (updateCart) {\r\n await this.checkoutState.checkoutCart.updateAttributeValues({ newAttributeValues: cartAttributes });\r\n }\r\n }\r\n\r\n await updateAsync({ callerContext: this.props.context.actionContext }, { Id: cart.cart.Id, ExtensionProperties: cartExtensionProperties }).then(newCart => {\r\n if (newCart) {\r\n this.props.context.actionContext.update(new GetCheckoutCartInput(this.props.context.request.apiSettings), newCart);\r\n }\r\n }).catch(error => {\r\n throw new Error(`saveCartExtensions ${error}`);\r\n });\r\n }\r\n\r\n private readonly updateTextAttribute = (attribute: AttributeTextValue, value: string) => {\r\n if (attribute) {\r\n attribute.TextValue = value;\r\n attribute.TextValueTranslations = [];\r\n attribute['@odata.type'] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeTextValue\";\r\n } \r\n return attribute;\r\n };\r\n\r\n private readonly createTextAttribute = (name: string, value: string) => {\r\n return { \r\n Name : name, \r\n TextValue: value,\r\n TextValueTranslations: [],\r\n '@odata.type': \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeTextValue\"\r\n };\r\n };\r\n\r\n _addCartExtension = (cart: Cart, key: string, value: string) => {\r\n cart.ExtensionProperties = cart.ExtensionProperties || [];\r\n const property = cart.ExtensionProperties.find((extension) => extension.Key === key);\r\n if (property) {\r\n property.Value = { StringValue: value };\r\n } else {\r\n cart.ExtensionProperties.push({\r\n Key: key,\r\n Value: {\r\n StringValue: value\r\n }\r\n });\r\n }\r\n };\r\n}\r\nexport default CittaOrderreference;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365 from '@msdyn365-commerce/core';\nimport {\n INotificationComponentsList,\n INotificationComponentsListState,\n INotificationComponentType,\n NotificationComponentsListsManager,\n NotificationEvents,\n NotificationFeedType\n} from '@msdyn365-commerce-modules/notifications-core';\nimport { ArrayExtensions, ObjectExtensions, Random } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport React from 'react';\n\nimport { INotificationsListProps } from './notifications-list.props.autogenerated';\n\n/**\n * View for the notifications list which specifies the container and notifications items.\n */\nexport interface INotificationsListViewProps extends INotificationsListProps<{}> {\n container: IModuleProps;\n notificationsList: React.ReactNode;\n}\n\n/**\n * Configuration to make the list stickable to the page without overlapping any content on top.\n */\nexport interface INotificationComponentStickyConfiguration {\n /**\n * Minimum offset for top (default for the page).\n */\n minTopOffset: number;\n\n /**\n * Maximum offset for top (to limit the top offset while scrolling).\n */\n maxTopOffset: number;\n}\n\n/**\n * Stickable notification list state which defines the top position of the list at the moment.\n */\nexport interface IStickableNotificationComponentsListState extends INotificationComponentsListState {\n /**\n * The top position of the list on the page.\n */\n top?: number;\n}\n\n/**\n * A notification list which is operated by notification manager.\n * It is responsible for rendering the received notifications.\n */\nexport class NotificationComponentsList extends React.Component, IStickableNotificationComponentsListState>\n implements INotificationComponentsList {\n /**\n * The class name to use.\n */\n private static readonly _className: string = 'msc-notifications-list';\n\n /**\n * The feed which the list is responsible for displaying.\n */\n public readonly feed: NotificationFeedType;\n\n /**\n * Configuration which specifies if and how the list should be stickable.\n * If undefined, the configuration will not be used at all. And list will not be stickable.\n */\n private readonly _stickyConfiguration?: INotificationComponentStickyConfiguration;\n\n /**\n * The list of notification which should be shown in the list at the moment.\n * @remarks Should be used to retrieve the latest list of notifications\n * as the list from the state is updated only after rendering.\n */\n private _notificationsComponentList: INotificationComponentType[];\n\n /**\n * Unique identifier of the list.\n * Uses format 'NotificationComponentsList-GUID';.\n */\n private _instanceId?: string;\n\n /**\n * Initializes instance with the given props.\n * @param props - The configuration of the list.\n */\n public constructor(props: INotificationsListProps<{}>) {\n super(props);\n\n this.feed = props.config.feed;\n\n if (\n !ObjectExtensions.isNullOrUndefined(props.config.minTopOffset) &&\n !ObjectExtensions.isNullOrUndefined(props.config.maxTopOffset)\n ) {\n this._stickyConfiguration = {\n minTopOffset: props.config.minTopOffset,\n maxTopOffset: props.config.maxTopOffset\n };\n }\n\n this._notificationsComponentList = [];\n\n this.state = {\n notificationsComponentList: []\n };\n\n this._handleTopUpdate = this._handleTopUpdate.bind(this);\n this._getCurrentTopPosition = this._getCurrentTopPosition.bind(this);\n }\n\n /**\n * Specifies if the component should be re-rendered.\n * @param nextProps - The next configuration the component is receiving.\n * @param nextState - The next state the component is receiving.\n * @returns True if component should be re-rendered, false if component should not be changed.\n */\n public shouldComponentUpdate(\n nextProps: Readonly>,\n nextState: Readonly\n ): boolean {\n const isPropsDifferent =\n this.feed !== nextProps.config.feed ||\n this.props.config.maxNotificationsCount !== nextProps.config.maxNotificationsCount ||\n this.props.config.maxTopOffset !== nextProps.config.maxTopOffset ||\n this.props.config.minTopOffset !== nextProps.config.minTopOffset ||\n this.props.config.className !== nextProps.config.className ||\n this.props.id !== nextProps.id;\n const isStateDifferent =\n this.state.top !== nextState.top ||\n this.state.notificationsComponentList.length !== nextState.notificationsComponentList.length ||\n this.state.notificationsComponentList.every(value =>\n nextState.notificationsComponentList.find(otherValue => otherValue.props.notification.id === value.props.notification.id)\n );\n return isPropsDifferent || isStateDifferent;\n }\n\n /**\n * Adds the current instance to the global list of instances so that it becomes available for the notification manager.\n * In case the list is specified to be stickable, also subscribes to the scroll event to update the offsets.\n */\n public componentDidMount(): void {\n NotificationComponentsListsManager.subscribe(this);\n\n this._instanceId = `NotificationComponentsList-${Random.Guid.generateGuid()}`;\n\n if (MsDyn365.isBrowser && this._stickyConfiguration !== undefined) {\n window.addEventListener('scroll', this._handleTopUpdate);\n }\n }\n\n /**\n * Remove the instance from the global list of instances so that it becomes unavailable for the notification manager.\n * Unsubscribes itself from the notification events and scroll event.\n */\n public componentWillUnmount(): void {\n NotificationComponentsListsManager.unsubscribe(this);\n\n this._notificationsComponentList.forEach(component =>\n component.props.notification.events.getValue(NotificationEvents.RemovedFromList)?.unsubscribe(this._instanceId!)\n );\n\n if (MsDyn365.isBrowser && this._stickyConfiguration !== undefined) {\n window.removeEventListener('scroll', this._handleTopUpdate);\n }\n }\n\n /**\n * Adds a new notification to the list.\n * @param {INotificationComponentType} notificationComponent Data required to render the notification. @see INotificationComponentType.\n */\n public addNotificationComponent(notificationComponent: INotificationComponentType): void {\n if (this._instanceId === undefined) {\n return;\n }\n\n if (\n !ObjectExtensions.isNullOrUndefined(this.props.config.maxNotificationsCount) &&\n this._notificationsComponentList.length >= this.props.config.maxNotificationsCount\n ) {\n throw new Error('Notifications limit reached, cannot show more notifications.');\n }\n\n // Subscribe to the remove event to filter the removed notifications out from the list.\n notificationComponent.props.notification.events.getValue(NotificationEvents.RemovedFromList)?.subscribe({\n instanceId: this._instanceId,\n handler: () => {\n notificationComponent.props.notification.events\n .getValue(NotificationEvents.RemovedFromList)\n ?.unsubscribe(this._instanceId!);\n const newList = this._notificationsComponentList.filter(component => component !== notificationComponent);\n this._notificationsComponentList = newList;\n this.setState({ notificationsComponentList: this._notificationsComponentList });\n }\n });\n\n // Prepend the notification as newest should come to the top.\n this._notificationsComponentList.unshift(notificationComponent);\n this.setState({ notificationsComponentList: this._notificationsComponentList });\n this._handleTopUpdate();\n }\n\n public render(): React.ReactNode {\n const className = classnames(\n NotificationComponentsList._className,\n `${NotificationComponentsList._className}__${this.feed}`,\n this.props.config.className\n );\n\n const viewProps: INotificationsListViewProps = {\n ...this.props,\n container: {\n moduleProps: this.props,\n className,\n id: this._instanceId,\n style: { top: this.state.top }\n },\n notificationsList: this._renderNotificationsList()\n };\n\n return this.props.renderView(viewProps);\n }\n\n /**\n * Renders the list of notifications.\n * @returns React node with a list of notifications.\n */\n private _renderNotificationsList(): React.ReactNode {\n const hasNotifications = ArrayExtensions.hasElements(this.state.notificationsComponentList);\n const containerClassName = classnames(\n `${NotificationComponentsList._className}__scrollable`,\n hasNotifications\n ? `${NotificationComponentsList._className}__has-notifications`\n : `${NotificationComponentsList._className}__empty`\n );\n\n return (\n
\n {this.state.notificationsComponentList.map(component => {\n const ComponentClass = component.componentClass;\n return ;\n })}\n
\n );\n }\n\n /**\n * Retrieves current top offset position by looking at scroll position and rounding it to the stickable limits.\n */\n private _getCurrentTopPosition(): number | undefined {\n const configuration = this._stickyConfiguration;\n\n if (configuration === undefined) {\n return undefined;\n }\n\n let pageYOffset = 0;\n if (MsDyn365.isBrowser) {\n pageYOffset = window.pageYOffset;\n }\n\n return Math.max(Math.min(configuration.maxTopOffset, configuration.maxTopOffset - pageYOffset), configuration.minTopOffset);\n }\n\n /**\n * Updates the top offset on scroll event to make the list stickable.\n */\n private _handleTopUpdate(): void {\n const newTop = this._getCurrentTopPosition();\n this.setState({ top: newTop });\n }\n}\n\nexport default NotificationComponentsList;\n","// @ts-nockeck\r\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { IHistogramItemViewProps, IRatingsHistogramViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst RatingsHistogramView: React.FC = props => {\r\n const { heading, histogramItems, histogramProps, moduleProps } = props;\r\n return (\r\n \r\n {heading}\r\n \r\n {histogramItems.map(item => {\r\n return histogramItem(item);\r\n })}\r\n \r\n \r\n );\r\n};\r\n\r\nconst histogramItem = (props: IHistogramItemViewProps) => {\r\n return (\r\n \r\n {props.starLabel}\r\n {props.bar}\r\n {props.percentage}\r\n \r\n );\r\n};\r\n\r\nexport default RatingsHistogramView;"],"sourceRoot":""}