{"version":3,"sources":["webpack:///src/modules/place-holder-for-container-preview/place-holder-for-container-preview.tsx?b150","webpack:///src/modules/back-top-footer/back-top-footer.tsx?0e13","webpack:///./src/modules/citta-footer-item/citta-footer-item.tsx?e8a0","webpack:///src/modules/starter/starter.tsx?2704","webpack:///./src/themes/citta/citta.tsx?9029","webpack:///./src/modules/citta-anchor/citta-anchor.view.tsx?6865","webpack:///./src/modules/citta-enquireonly-buybox/citta-enquireonly-buybox.view.tsx?d201","webpack:///./src/modules/citta-custom-navigation-menu/components/link.tsx?6385","webpack:///./src/modules/citta-custom-navigation-menu/citta-custom-navigation-menu.tsx?6aa7","webpack:///./src/modules/citta-footer-item/citta-footer-item.view.tsx?b96c","webpack:///./src/modules/citta-custom-navigation-menu/citta-custom-navigation-menu.view.tsx?09ef","webpack:///./src/modules/checkout-section-container/checkout-section-container.view.tsx?fa59","webpack:///./src/modules/citta-anchor/citta-anchor.tsx?8f98","webpack:///./src/modules/citta-enquireonly-buybox/citta-enquireonly-buybox.tsx?e1d3","webpack:///./src/modules/checkout-section-container/components/loading.tsx?6221","webpack:///./src/modules/checkout-section-container/checkout-section-container.tsx?f9a4"],"names":["PlaceholderForContainerPreviewComponent","BackTopFooter","React","constructor","props","super","editProps","requestContext","this","context","request","onEdit","event","config","backtoTopText","target","value","telemetryContent","getTelemetryObject","telemetryPageName","friendlyName","telemetry","render","destination","BackToTop","href","title","ariaLabel","className","text","error","FooterItem","handleHeadingChange","heading","handleTextChange","handleLinkTextChange","link","linkText","payLoad","getPayloadObject","image","footerItemClassName","classnames","contentAction","etext","attributes","getTelemetryAttributes","viewProps","_objectSpread","_createHeading","_createImageMarkup","_createText","_createLinkText","EditableLink","_createLink","moduleProps","HeadingContainer","ItemContainer","Link","linkUrl","destinationUrl","tag","openInNewTab","undefined","onClick","onTelemetryClick","rel","renderView","editableLink","role","additionalProperties","Msdyn365","onTextChange","length","item","ariaHiddenAttr","src","defaultImageSettings","viewports","xs","q","w","h","lg","lazyload","Object","assign","gridSettings","imageSettings","loadFailureBehavior","key","Anchor","Node","BuyboxView","ModuleProps","MediaGalleryContainerProps","ProductInfoContainerProps","addToCart","description","productSpecs","Module","mediaGallery","MsDyn365","_ref","index","noclick","isActive","subLinks","attribute","itemProp","content","NavigationMenu","viewport","device","Type","state","isMobile","_updateViewport","bind","_getViewport","locale","nameTranslations","nameTranslation","find","Language","toLowerCase","Text","componentDidMount","isBrowser","resizeThrottledEventHandler","addThrottledEvent","window","container","document","querySelector","middle","children","Math","floor","scrollTo","top","left","offsetLeft","offsetWidth","behavior","componentWillUnmount","removeEventListener","cmsNavItems","Navigation","isMobileView","links","_renderLinks","url","canonicalUrl","currentNavItems","lastPartOfURL","substring","lastIndexOf","forEach","navMenu","split","u","_createLinks","_navMenu$subMenus","subMenus","map","menuItem","pageName","moduleName","innerWidth","sm","md","setState","__decorate","observable","computed","FooterItemView","_renderElement","NavigationMenuView","ItemComponent","loading","itemProps","CheckoutSectionContainerView","_ref2","checkoutPlainContainerProps","items","id","CittaAnchor","anchorId","anchorName","replace","Buybox","product","productAttributes","errorState","configureErrors","quantity","min","max","selectedProduct","productPrice","productDeliveryOptions","modalOpen","isUpdatingDimension","isUpdatingDeliveryOptions","slots","imageContainer","enquireNow","AccordianContainerProps","productTitle","productDetails","Loading","CheckoutPlainContainer","getItems","primary","getActiveChildModuleStates","childIds","getModule","moduleState","filter","isDisabled","hasModuleState","clearError","hasError","setHasError","onSubmit","isReady","onCancel","isSkipped","onContainerReady","get","init","reaction","shouldSubmitContainer","componentDidUpdate","hasExternalSubmitGroup","some","childId","enableControl","width","moduleClassName","classname","hasInitialized","hidden","LoadingComponent","typeName","initialized","disabled","skipped","ready","updating","isUpdating","pending","isPending","observer","withModuleState"],"mappings":"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","file":"static/js/9.60f8923af44eba297022.chunk.js","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { PlaceholderForContainerPreviewComponent } from '@msdyn365-commerce/core';\n\nexport default PlaceholderForContainerPreviewComponent;\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 { BackToTop, getTelemetryObject, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBackTopFooterProps } from './back-top-footer.props.autogenerated';\n\n/**\n *\n * BackTopFooter component.\n * @extends {React.PureComponent>}\n */\nclass BackTopFooter extends React.PureComponent> {\n private readonly editProps: Msdyn365.ITextEditProps = {\n requestContext: this.props.context.request,\n onEdit: (event: Msdyn365.ContentEditableEvent) => (this.props.config.backtoTopText = event.target.value)\n };\n\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IBackTopFooterProps<{}>) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element | null {\n if (!this.props.config.destination) {\n this.props.telemetry.error('BackToTop.destination has not been provided, module wont render.');\n return null;\n }\n\n return (\n \n );\n }\n}\n\nexport default BackTopFooter;\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\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { getPayloadObject, getTelemetryAttributes, getTelemetryObject, IModuleProps, INodeProps, IPayLoad, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport { ICittaFooterItemConfig, ICittaFooterItemProps, IHeadingData, ILinkData } from './citta-footer-item.props.autogenerated';\r\n\r\nexport interface IFooterViewProps extends ICittaFooterItemProps {\r\n heading: React.ReactNode;\r\n image: React.ReactNode;\r\n text: React.ReactNode;\r\n linkText: React.ReactNode;\r\n className?:string;\r\n FooterItem: IModuleProps;\r\n HeadingContainer: INodeProps;\r\n ItemContainer: INodeProps;\r\n Link: INodeProps;\r\n EditableLink: React.ReactNode;\r\n}\r\n\r\n/**\r\n *\r\n * FooterItem component\r\n * @extends {React.PureComponent>}\r\n */\r\nexport class FooterItem extends React.PureComponent> {\r\n private telemetryContent: ITelemetryContent;\r\n private payLoad: IPayLoad;\r\n private attributes: Msdyn365.IDictionary | undefined;\r\n constructor(props: ICittaFooterItemProps) {\r\n super(props);\r\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry);\r\n // Construct telemetry attribute to render\r\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\r\n }\r\n\r\n public render(): JSX.Element {\r\n const {heading, image, link, text} = this.props.config;\r\n const footerItemClassName = classnames('ms-footer__item', this.props.config.className);\r\n const linkText = link && link.linkText ? link.linkText : '';\r\n this.payLoad.contentAction.etext = linkText;\r\n this.attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\r\n const viewProps: IFooterViewProps = {\r\n ... this.props,\r\n heading: this._createHeading(heading!),\r\n image: this._createImageMarkup(image!),\r\n text:this._createText(text!),\r\n linkText: this._createLinkText(link!),\r\n EditableLink: this._createLink(link!),\r\n // @ts-ignore\r\n FooterItem: {\r\n moduleProps: this.props,\r\n className: footerItemClassName\r\n },\r\n // @ts-ignore\r\n HeadingContainer: {\r\n className: 'ms-footer__heading'\r\n },\r\n // @ts-ignore\r\n ItemContainer: {\r\n className: 'ms-footer__link__container'\r\n },\r\n // @ts-ignore\r\n Link: link && link.linkUrl && link.linkUrl.destinationUrl && {\r\n tag: 'a',\r\n className: 'ms-footer__link',\r\n href: link.linkUrl.destinationUrl,\r\n title:linkText,\r\n target: link.openInNewTab ? '_blank' : undefined,\r\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText),\r\n ...this.attributes,\r\n rel: \"noopener\"\r\n },\r\n className:footerItemClassName\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => this.props.config.heading!.text = event.target.value;\r\n\r\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => this.props.config.text = event.target.value;\r\n\r\n public handleLinkTextChange = (event: Msdyn365.ContentEditableEvent) => this.props.config.link!.linkText = event.target.value;\r\n\r\n private _createLink(link: ILinkData): React.ReactNode | null {\r\n if(link) {\r\n const linkText = link.linkText ? link.linkText : '';\r\n // TODO: Update the inner tag in the anchor link to span\r\n const editableLink: Msdyn365.ILinksData = {\r\n ariaLabel: link.ariaLabel,\r\n className: 'ms-footer__link',\r\n linkText: linkText,\r\n linkUrl: link.linkUrl.destinationUrl,\r\n openInNewTab: link.openInNewTab,\r\n role: 'button',\r\n additionalProperties: this.attributes!,\r\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText)\r\n };\r\n return(\r\n \r\n );\r\n\r\n }\r\n return null;\r\n }\r\n\r\n private _createLinkText(link: ILinkData): React.ReactNode | null {\r\n if(!link || !link.linkText) {\r\n return null;\r\n }\r\n\r\n return ({link.linkText});\r\n }\r\n\r\n private _createHeading(heading: IHeadingData): React.ReactNode | null {\r\n if(!heading || !heading.text || !heading.text.length) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _createText(text: string): React.ReactNode | null {\r\n if (!text) {\r\n return null;\r\n }\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _createImageMarkup(item: Msdyn365.IImageData, ariaHiddenAttr?: boolean): React.ReactNode | null {\r\n if(!item || !item.src || !item.src.length) {\r\n return null;\r\n }\r\n\r\n const defaultImageSettings: Msdyn365.IImageSettings = {\r\n viewports: {\r\n xs: { q: `w=24&h=24&m=6`, w: 0, h: 0 },\r\n lg: { q: `w=24&h=24&m=6`, w: 0, h: 0 }\r\n },\r\n lazyload: true\r\n };\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default FooterItem;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\n// TODO: Current build require at least one tsx file\nexport default () =>
;\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\n\r\nimport * as React from 'react';\r\n\r\n// TODO: Current build require at least one tsx file\r\nexport default () =>
;\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\nimport { Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { ICittaAnchorViewProps } from './citta-anchor';\r\n\r\nexport default (props: ICittaAnchorViewProps) => {\r\n const { Anchor } = props;\r\n return (\r\n \r\n );\r\n};\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as MsDyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\nimport { IBuyboxViewProps } from './citta-enquireonly-buybox';\r\n\r\nconst BuyboxView: React.FC = props => {\r\n const { \r\n ModuleProps,\r\n MediaGalleryContainerProps,\r\n ProductInfoContainerProps,\r\n addToCart,\r\n description,\r\n title,\r\n productSpecs,\r\n } = props;\r\n\r\n return (\r\n \r\n \r\n {props.mediaGallery}\r\n \r\n \r\n

{title}

\r\n {description && \r\n }\r\n {addToCart}\r\n {productSpecs}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default BuyboxView;\r\n","import { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n// import { SubLink } from './subLink'\r\n\r\ninterface ILink {\r\n className?: string;\r\n text?: string;\r\n href?: string;\r\n ariaLabel?: string;\r\n index: string;\r\n noclick?: boolean;\r\n isActive: boolean;\r\n telemetryContent: ITelemetryContent;\r\n subLinks?: any;\r\n}\r\n\r\nexport const Link: React.FC = ({ text, className, href, ariaLabel, index, noclick, telemetryContent, isActive, subLinks }) => {\r\n const payLoad = getPayloadObject('click', telemetryContent, '', '');\r\n const linkText = text !== undefined ? text : '';\r\n payLoad.contentAction.etext = linkText;\r\n // Construct telemetry attribute to render\r\n const attribute = getTelemetryAttributes(telemetryContent, payLoad);\r\n return (\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 MsDyn365, { IGridSettings, IImageSettings } from '@msdyn365-commerce/core';\r\nimport { TextValueTranslation } from '@msdyn365-commerce/retail-proxy';\r\nimport { addThrottledEvent, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport { computed, observable } from 'mobx';\r\nimport * as React from 'react';\r\n\r\nimport { IMenuItemData, ICittaCustomNavigationMenuData } from './citta-custom-navigation-menu.data';\r\nimport { ICittaCustomNavigationMenuProps } from './citta-custom-navigation-menu.props.autogenerated';\r\nimport { ICmsNavItemsData } from './citta-custom-navigation-menu.props.autogenerated';\r\nimport { Link } from './components/link';\r\n\r\n\r\nexport interface INavigationMenuViewProps extends ICittaCustomNavigationMenuProps {\r\n className: string;\r\n menuItemData: IMenuItemData[];\r\n Navigation: IModuleProps;\r\n MenuList: INodeProps;\r\n ListItem: INodeProps;\r\n Link: INodeProps;\r\n Button: INodeProps;\r\n Span: INodeProps;\r\n ImageContainer: INodeProps;\r\n MobileDescriptionContainer: INodeProps;\r\n MobileBackButton: INodeProps;\r\n MobileDescriptionLabel: INodeProps;\r\n imageSettings: IImageSettings;\r\n gridSettings: IGridSettings;\r\n isMobileView: boolean;\r\n DivContainer?: INodeProps;\r\n ImageDivContainer?: INodeProps;\r\n showCategoryImage?: boolean;\r\n showPromotionalContent?: boolean;\r\n links?: React.ReactNode;\r\n\r\n}\r\n\r\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\r\n\r\nexport interface INavigationMenuState {\r\n isMobile: boolean;\r\n}\r\n\r\n/**\r\n *\r\n * NavigationMenu component.\r\n * @extends {React.PureComponent>}\r\n */\r\nclass NavigationMenu extends React.PureComponent, INavigationMenuState> {\r\n\r\n private resizeThrottledEventHandler?: (event: Event) => void;\r\n\r\n @observable\r\n private viewport: GridSize;\r\n\r\n public static getFriendlyName(locale: string, nameTranslations?: TextValueTranslation[]): string | undefined {\r\n let nameTranslation: TextValueTranslation | undefined;\r\n if (locale && nameTranslations && nameTranslations.length > 0) {\r\n nameTranslation = nameTranslations.find(item => item.Language!.toLowerCase() === locale.toLowerCase());\r\n }\r\n\r\n return nameTranslation && nameTranslation.Text;\r\n }\r\n\r\n constructor(props: ICittaCustomNavigationMenuProps) {\r\n super(props);\r\n this.viewport = props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\r\n this.state = { \r\n isMobile: this.isMobile \r\n };\r\n this._updateViewport = this._updateViewport.bind(this);\r\n this._getViewport = this._getViewport.bind(this);\r\n }\r\n\r\n @computed get isMobile(): boolean {\r\n return this.viewport === 'xs' || this.viewport === 'sm';\r\n }\r\n\r\n public componentDidMount(): void {\r\n if (MsDyn365.isBrowser) {\r\n this.resizeThrottledEventHandler = addThrottledEvent(window, 'resize', this._updateViewport as EventListener);\r\n }\r\n this._updateViewport();\r\n\r\n let container = document.querySelector(\".ms-nav-custom\");\r\n if (container) {\r\n const middle = container.querySelector(\"a.active\") || container.children[Math.floor((container.children.length - 1) / 2)];\r\n \r\n container.scrollTo({\r\n top: 0,\r\n // @ts-ignore\r\n left: middle.offsetLeft + middle.offsetWidth / 2 - container.offsetWidth / 2,\r\n behavior: 'smooth'\r\n })\r\n }\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n if (MsDyn365.isBrowser) {\r\n window.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\r\n }\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const { cmsNavItems } = this.props.config;\r\n\r\n if (!cmsNavItems || !cmsNavItems.length) {\r\n return null;\r\n }\r\n const viewProps = {\r\n ...this.props,\r\n ...this.state,\r\n Navigation: {\r\n moduleProps: this.props,\r\n className: classnames('ms-nav-custom', this.props.config.className, this.state.isMobile ? 'mobile-vp' : 'desktop-vp'),\r\n tag: 'nav'\r\n },\r\n isMobileView: this.state.isMobile,\r\n className: classnames('ms-nav', this.props.config.className),\r\n links: this._renderLinks()\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n private _renderLinks(): React.ReactNode | null {\r\n const url = this.props.context.request.canonicalUrl!;\r\n const { cmsNavItems } = this.props.config;\r\n let currentNavItems;\r\n\r\n if (url) {\r\n const lastPartOfURL = url && url.substring(url.lastIndexOf('/') + 1)\r\n cmsNavItems!.forEach(navMenu => {\r\n let urls = navMenu.linkText!.split('|');\r\n if (urls.find(u => u === lastPartOfURL)) {\r\n currentNavItems = this._createLinks(navMenu, lastPartOfURL);\r\n }\r\n });\r\n }\r\n\r\n return currentNavItems;\r\n }\r\n\r\n private _createLinks(navMenu: ICmsNavItemsData, lastPartOfURL: string): React.ReactNode {\r\n let links = navMenu.subMenus?.map(menuItem => {\r\n return \r\n })\r\n\r\n return links;\r\n }\r\n\r\n public _getViewport(): GridSize {\r\n const { context } = this.props;\r\n\r\n // Always render in mobile viewport on a mobile device\r\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\r\n return 'xs';\r\n }\r\n\r\n if (MsDyn365.isBrowser && window.innerWidth) {\r\n const gridSettings = context.request.gridSettings;\r\n if (gridSettings) {\r\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\r\n return 'xs';\r\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\r\n return 'sm';\r\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\r\n return 'md';\r\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\r\n return 'lg';\r\n }\r\n return 'xl';\r\n }\r\n }\r\n\r\n return 'xs';\r\n }\r\n\r\n private _updateViewport(): void {\r\n this.viewport = this._getViewport();\r\n this.setState({ isMobile: this.isMobile });\r\n }\r\n\r\n}\r\n\r\nexport default NavigationMenu;\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\n/* eslint-disable no-duplicate-imports */\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IFooterViewProps } from './citta-footer-item';\r\n\r\n/**\r\n *\r\n * FooterItemView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class FooterItemView extends React.PureComponent {\r\n public render(): JSX.Element | null {\r\n const { FooterItem } = this.props;\r\n return(\r\n \r\n {this._renderElement(this.props)}\r\n \r\n );\r\n }\r\n\r\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\r\n const {heading, HeadingContainer,Link, linkText, image, text, EditableLink} = props;\r\n if(heading) {\r\n return ( {heading} );\r\n } else if(Link && image) {\r\n return (\r\n \r\n {linkText}\r\n {image}\r\n );\r\n } else if(Link) {\r\n return (EditableLink);\r\n }\r\n return(\r\n <>\r\n {text}\r\n {image}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default FooterItemView;","/*!\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 {\r\n Module\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport { INavigationMenuViewProps } from './citta-custom-navigation-menu';\r\n\r\nconst NavigationMenuView: React.FC = props => {\r\n const { Navigation, links } = props;\r\n if (!links) {\r\n return null;\r\n }\r\n return (\r\n \r\n {links}\r\n \r\n );\r\n };\r\n \r\n export default NavigationMenuView;\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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { ICheckoutSectionContainerItem, ICheckoutSectionContainerViewProps } from './checkout-section-container';\r\n\r\nconst ItemComponent: React.FC = ({ loading, itemProps, item }) => (\r\n <>\r\n {loading}\r\n {item}\r\n \r\n);\r\n\r\nconst CheckoutSectionContainerView: React.FC = ({ checkoutPlainContainerProps, items }) => (\r\n \r\n {items.map(item => (\r\n \r\n ))}\r\n \r\n);\r\n\r\nexport default CheckoutSectionContainerView;\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 { INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ICittaAnchorConfig, ICittaAnchorProps } from './citta-anchor.props.autogenerated';\r\n\r\nexport interface ICittaAnchorViewProps extends ICittaAnchorProps {\r\n Anchor: INodeProps;\r\n}\r\n\r\n/**\r\n *\r\n * CittaAnchor component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass CittaAnchor extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n const { config } = this.props;\r\n\r\n const anchorId = config && config.anchorName && config.anchorName.replace(/\\s/g, '');\r\n\r\n const viewProps: ICittaAnchorViewProps = {\r\n ...(this.props as ICittaAnchorProps),\r\n\r\n Anchor: {\r\n id: anchorId,\r\n className: ''\r\n }\r\n };\r\n return this.props.renderView(viewProps);\r\n }\r\n}\r\n\r\nexport default CittaAnchor;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { AttributeValue, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\r\n\r\nimport { IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as MsDyn365 from '@msdyn365-commerce/core';\r\n\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n IBuyboxAddToOrderTemplateViewProps, IBuyboxAddToWishlistViewProps,\r\n IBuyboxKeyInPriceViewProps,\r\n IBuyboxProductConfigureViewProps, IBuyboxProductQuantityViewProps, IBuyboxShopSimilarLookViewProps,\r\n IBuyboxState } from '@msdyn365-commerce-modules/buybox';\r\nimport { ICittaEnquireonlyBuyboxData } from './citta-enquireonly-buybox.data';\r\nimport { ICittaEnquireonlyBuyboxProps } from './citta-enquireonly-buybox.props.autogenerated';\r\nimport { IBuyboxFindInStoreViewProps } from './components/citta-enquireonly-buybox-find-in-store';\r\n\r\nexport interface IBuyboxViewProps extends ICittaEnquireonlyBuyboxProps {\r\n state: IBuyboxState;\r\n ModuleProps: IModuleProps;\r\n ProductInfoContainerProps: INodeProps;\r\n MediaGalleryContainerProps: INodeProps;\r\n mediaGallery?: React.ReactNode;\r\n imageContainer?: React.ReactNode;\r\n productSpecs?: React.ReactNode;\r\n AccordianContainerProps: INodeProps;\r\n accordian?: React.ReactNode;\r\n title?: React.ReactNode;\r\n description?: MsDyn365.RichText | undefined;\r\n rating?: React.ReactNode;\r\n price?: React.ReactNode;\r\n addToOrderTemplate?: IBuyboxAddToOrderTemplateViewProps;\r\n addToWishlist?: IBuyboxAddToWishlistViewProps;\r\n addToCart: React.ReactNode;\r\n findInStore?: IBuyboxFindInStoreViewProps;\r\n quantity?: IBuyboxProductQuantityViewProps;\r\n configure?: IBuyboxProductConfigureViewProps;\r\n inventoryLabel?: React.ReactNode;\r\n shopSimilarLook?: IBuyboxShopSimilarLookViewProps;\r\n shopSimilarDescription?: IBuyboxShopSimilarLookViewProps;\r\n telemetryContent?: ITelemetryContent;\r\n keyInPrice?: IBuyboxKeyInPriceViewProps;\r\n unitOfMeasure?: React.ReactNode;\r\n}\r\n\r\ninterface ICittaBuyboxState extends IBuyboxState {\r\n product?: SimpleProduct;\r\n productAttributes?:AttributeValue[];\r\n}\r\n\r\n/**\r\n * Buybox Module.\r\n */\r\nclass Buybox extends React.PureComponent, ICittaBuyboxState> {\r\n constructor(props: ICittaEnquireonlyBuyboxProps, state: ICittaBuyboxState) {\r\n super(props);\r\n this.state = {\r\n product: undefined,\r\n productAttributes: undefined,\r\n errorState: {\r\n configureErrors: {}\r\n },\r\n quantity: 1,\r\n min: undefined,\r\n max: undefined,\r\n selectedProduct: undefined,\r\n productPrice: undefined,\r\n productDeliveryOptions: undefined,\r\n\r\n modalOpen: false,\r\n isUpdatingDimension: false,\r\n isUpdatingDeliveryOptions: false\r\n };\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const {\r\n slots: {\r\n imageContainer,\r\n enquireNow,\r\n productSpecs\r\n },\r\n config: { className = 'citta-enquireonly-buybox' }\r\n } = this.props;\r\n\r\n\r\n const viewProps: IBuyboxViewProps = {\r\n ...(this.props as ICittaEnquireonlyBuyboxProps),\r\n state: this.state,\r\n mediaGallery: imageContainer, //mediaGallery && mediaGallery.length > 0 ? mediaGallery[0] : undefined,\r\n\r\n ModuleProps: {\r\n moduleProps: this.props,\r\n className: classnames('ms-buybox', className)\r\n },\r\n ProductInfoContainerProps: {\r\n className: 'ms-buybox__content'\r\n },\r\n MediaGalleryContainerProps: {\r\n className: 'ms-buybox__media-gallery'\r\n },\r\n AccordianContainerProps: {\r\n className: 'ms-buybox__accordian'\r\n },\r\n title: this.props.config.productTitle,\r\n description: this.props.config.productDetails,\r\n addToCart: enquireNow,\r\n productSpecs: productSpecs\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n}\r\n\r\nexport default Buybox;\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 * as React from 'react';\r\n\r\nconst Loading: React.FC = () =>
;\r\n\r\nexport default Loading;\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\n\r\nimport { IModuleStateManager, IModuleStateProps, withModuleState } from '@msdyn365-commerce-modules/checkout-utilities';\r\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport classname from 'classnames';\r\nimport get from 'lodash/get';\r\nimport { reaction } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { ICheckoutSectionContainerProps } from './checkout-section-container.props.autogenerated';\r\nimport LoadingComponent from './components/loading';\r\n\r\nexport interface ICheckoutSectionContainerModuleProps extends ICheckoutSectionContainerProps<{}>, IModuleStateProps {\r\n enableControl: boolean;\r\n}\r\n\r\nexport interface ICheckoutSectionContainerItem {\r\n id: string;\r\n loading?: React.ReactNode;\r\n itemProps: INodeProps;\r\n item: React.ReactNode;\r\n}\r\n\r\nexport interface ICheckoutSectionContainerViewProps extends ICheckoutSectionContainerProps<{}> {\r\n className: string;\r\n checkoutPlainContainerProps: IModuleProps;\r\n items: ICheckoutSectionContainerItem[];\r\n}\r\n\r\n/**\r\n *\r\n * CheckoutPlainContainer component\r\n * @extends {React.Component}\r\n */\r\n@observer\r\nexport class CheckoutPlainContainer extends React.Component {\r\n public componentDidMount(): void {\r\n const items = this.getItems();\r\n const childIds = items.map((item: React.ReactNode) => get(item, 'props.id'));\r\n this.props.moduleState.init({\r\n onEdit: this.onEdit,\r\n onCancel: this.onCancel,\r\n onSubmit: this.onSubmit,\r\n childIds\r\n });\r\n\r\n reaction(\r\n () => this.props.moduleState.isReady,\r\n () => {\r\n this.onContainerReady();\r\n }\r\n );\r\n\r\n reaction(\r\n () => this.props.moduleState.shouldSubmitContainer,\r\n () => {\r\n this.onSubmit();\r\n }\r\n );\r\n }\r\n\r\n public componentDidUpdate(): void {\r\n if (!this.props.moduleState.hasExternalSubmitGroup) {\r\n return;\r\n }\r\n /**\r\n * Review all modules to updating status if one of the modules has error\r\n */\r\n const { childIds, hasError, getModule } = this.props.moduleState;\r\n const hasReadyItems = childIds.some((childId: string) => {\r\n const state = getModule(childId);\r\n return !!state && state.isReady;\r\n });\r\n if (hasReadyItems && hasError) {\r\n this.onEdit();\r\n }\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const {\r\n enableControl,\r\n moduleState,\r\n config: { width }\r\n } = this.props;\r\n\r\n const items = this.getItems();\r\n if (!items.length) {\r\n this.props.context.telemetry.error('Checkout section content is empty, module wont render');\r\n return null;\r\n }\r\n\r\n const moduleClassName = classname(\r\n 'ms-checkout-section-container',\r\n {\r\n 'has-initialized': moduleState.hasInitialized,\r\n 'is-ready': moduleState.isReady,\r\n 'is-updating': !moduleState.isReady,\r\n container: width === 'container',\r\n 'col-12 fullwidth': width === 'fluid'\r\n },\r\n this.props.config.className\r\n );\r\n\r\n const viewProps: ICheckoutSectionContainerViewProps = {\r\n ...this.props,\r\n\r\n className: moduleClassName,\r\n checkoutPlainContainerProps: {\r\n moduleProps: this.props,\r\n className: moduleClassName\r\n },\r\n items: items.map((item: React.ReactNode) => {\r\n const childId = get(item, 'props.id');\r\n const state = moduleState.getModule(childId);\r\n // Modules has not completed initializing or it's disable\r\n\r\n const hidden = state.hasModuleState && (!state.hasInitialized || state.isDisabled || state.isSkipped);\r\n return {\r\n id: childId,\r\n loading: state.hasModuleState && !state.hasInitialized && ,\r\n itemProps: {\r\n 'data-type-name': state.typeName,\r\n className: classname('ms-checkout-section-container__item', {\r\n hidden: hidden,\r\n initialized: state.hasInitialized,\r\n disabled: state.isDisabled,\r\n skipped: state.isSkipped,\r\n ready: state.isReady,\r\n updating: state.isUpdating,\r\n pending: state.isPending\r\n })\r\n },\r\n item: React.cloneElement(item as React.ReactElement, { enableControl })\r\n };\r\n })\r\n };\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n private getItems = (): React.ReactNode[] => {\r\n const { slots } = this.props;\r\n return (slots && slots.primary && slots.primary.length && slots.primary) || [];\r\n };\r\n\r\n private getActiveChildModuleStates = (): IModuleStateManager[] => {\r\n const { childIds, getModule } = this.props.moduleState;\r\n return childIds\r\n .map(getModule)\r\n .filter((state): state is IModuleStateManager => !!state && !state.isDisabled && state.hasModuleState);\r\n };\r\n\r\n private clearError = (): void => {\r\n // Clear error before action, otherwise it will rise conflict;\r\n this.getActiveChildModuleStates().forEach(state => {\r\n state.hasError && state.setHasError(false);\r\n });\r\n };\r\n\r\n private onSubmit = (): void => {\r\n this.clearError();\r\n this.getActiveChildModuleStates().forEach(state => {\r\n !state.isReady && state.onSubmit && state.onSubmit();\r\n });\r\n };\r\n\r\n private onCancel = (): void => {\r\n this.clearError();\r\n this.getActiveChildModuleStates().forEach(state => {\r\n !state.isReady && state.onCancel && state.onCancel();\r\n });\r\n };\r\n\r\n private onEdit = (): void => {\r\n this.getActiveChildModuleStates().forEach(state => {\r\n (state.isReady || state.isSkipped) && state.onEdit && state.onEdit();\r\n });\r\n };\r\n\r\n private onContainerReady = (): void => {\r\n this.getActiveChildModuleStates().forEach(state => {\r\n state.isReady && state.onContainerReady && state.onContainerReady();\r\n });\r\n };\r\n}\r\n\r\nexport default withModuleState(CheckoutPlainContainer);\r\n"],"sourceRoot":""}