{"version":3,"file":"static/js/13.80fbadd401591704dea2.chunk.js","mappings":"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","sources":["webpack://Citta2.0/./src/components/citta-accordion-drawer/Drawer.tsx?b849","webpack://Citta2.0/./src/modules/citta-accordion-item-custom/citta-accordion-item-custom.tsx?88ab","webpack://Citta2.0/./src/modules/citta-accordion-item-custom/citta-accordion-item-custom.view.tsx?411f","webpack://Citta2.0/./src/modules/citta-checkout-payment-instrument/citta-checkout-payment-instrument.view.tsx?91b1","webpack://Citta2.0/./src/modules/citta-orderreference/citta-orderreference.tsx?a2af","webpack://Citta2.0/./src/modules/citta-orderreference/citta-orderreference.view.tsx?837d","webpack://Citta2.0/./src/themes/citta/views/ratings-histogram.view.tsx?9899","webpack://Citta2.0/./src/modules/default-page/default-page.tsx?b382","webpack://Citta2.0/./src/modules/notifications-list/notifications-list.tsx?8377","webpack://Citta2.0/./src/modules/notifications-list/notifications-list.view.tsx?d466","webpack://Citta2.0/./src/modules/tab-item/tab-item.tsx?b1b8","webpack://Citta2.0/./src/modules/tab-item/tab-item.view.tsx?ee3b","webpack://Citta2.0/./src/modules/tab/tab.tsx?9ac6","webpack://Citta2.0/./src/modules/tab/tab.view.tsx?a99d","webpack://Citta2.0/./src/modules/tile-list/tile-list.tsx?78cb","webpack://Citta2.0/./src/modules/tile-list/tile-list.view.tsx?1b00"],"sourcesContent":["import { Button, Collapse } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport { IDrawerProps } from './Drawer.props';\r\n\r\nexport interface IDrawerState {\r\n isOpen: boolean;\r\n}\r\nexport interface ICollapseProps {\r\n\r\n /** Flag to toggle collapse open */\r\n isOpen?: boolean;\r\n\r\n /** Class that needs to be applied to the button */\r\n className?: string;\r\n\r\n /** Property to set if you want the HTML tag to be something else */\r\n // @ts-ignore\r\n tag?: React.ReactType;\r\n\r\n /** Children for the React element */\r\n // tslint:disable-next-line:no-any\r\n children?: any;\r\n\r\n /** Show the component, triggers the collapse animation */\r\n in?: boolean;\r\n\r\n /** Set the timeout */\r\n timeout?: number;\r\n\r\n /** Flag to set if this is navbar */\r\n navbar?: boolean;\r\n\r\n /** CssModule Property to set any CSS classModule on the nav */\r\n cssModule?: object;\r\n\r\n /**\r\n * Property to set for announcing the state -(expand or collapse) on Button.\r\n */\r\n 'aria-expanded'?: boolean;\r\n}\r\nexport type GlyphPlacement = 'start' | 'end';\r\n\r\n/**\r\n * Drawer - This is a full width uncontrolled collapse where the button glyph changes\r\n * when the drawer is open and closed\r\n */\r\n\r\nexport default class Drawer extends React.Component {\r\n public state: IDrawerState;\r\n private drawerOpenGlyph: string;\r\n private drawerCloseGlyph: string;\r\n private drawerGlyphClass: string;\r\n private isManuallyToggled: boolean;\r\n\r\n constructor(props: IDrawerProps) {\r\n super(props);\r\n this._toggle = this._toggle.bind(this);\r\n this.isManuallyToggled = false;\r\n this.state = { isOpen: (props.collapseProps && props.collapseProps.isOpen) || false };\r\n this.drawerGlyphClass = classnames('drawer__glyph',\r\n // tslint:disable-next-line:align\r\n this.props.toggleGlyphClassName ?\r\n this.props.toggleGlyphClassName : '');\r\n\r\n if (this.props.animateGlyph) {\r\n this.drawerOpenGlyph = classnames(this.drawerGlyphClass,\r\n // tslint:disable-next-line:align\r\n this.props.openGlyph ?\r\n this.props.openGlyph :\r\n this.props.closeGlyph ?\r\n this.props.closeGlyph : '');\r\n this.drawerCloseGlyph = this.drawerOpenGlyph;\r\n } else {\r\n this.drawerOpenGlyph = classnames(this.drawerGlyphClass,\r\n // tslint:disable-next-line:align\r\n this.props.openGlyph ?\r\n this.props.openGlyph : '');\r\n this.drawerCloseGlyph = classnames(this.drawerGlyphClass,\r\n // tslint:disable-next-line:align\r\n this.props.closeGlyph ?\r\n this.props.closeGlyph : '');\r\n }\r\n }\r\n\r\n public render(): JSX.Element {\r\n const collapseProps = { ...this.props.collapseProps } as ICollapseProps;\r\n\r\n // If the drawer is manually toggled by pressing the button, then we use the internal state\r\n if (collapseProps.isOpen === undefined || this.isManuallyToggled) {\r\n collapseProps.isOpen = this.state.isOpen;\r\n } else {\r\n this.state.isOpen = collapseProps.isOpen;\r\n }\r\n collapseProps.children = this.props.children;\r\n const drawerClass = classnames('drawer',\r\n // tslint:disable-next-line:align\r\n this.props.className ?\r\n this.props.className : '');\r\n this.isManuallyToggled = false;\r\n return (\r\n
\r\n \r\n {this.props.radioButtonOption ?
\r\n \r\n {/* tslint:disable-next-line: jsx-self-close */}\r\n \r\n
: null}\r\n {this._generateDrawerButtonInnerMarkup(collapseProps.isOpen)}\r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n private _generateDrawerButtonInnerMarkup(collapseState: boolean): JSX.Element {\r\n const drawerButtonTextClass = classnames('drawer__buttontext',\r\n // tslint:disable-next-line:align\r\n this.props.toggleButtonClassName ?\r\n this.props.toggleButtonClassName : '');\r\n if (this.props.glyphPlacement === 'end') {\r\n return (\r\n <>\r\n {this.props.toggleButtonText}\r\n {this._generateGlyphMarkup('drawer__glyph__end', collapseState)}\r\n \r\n );\r\n }\r\n\r\n if (this.props.glyphPlacement === 'start') {\r\n return (\r\n <>\r\n {this._generateGlyphMarkup('drawer__glyph__start', collapseState)}\r\n {this.props.toggleButtonText}\r\n \r\n );\r\n } else {\r\n return {this.props.toggleButtonText};\r\n }\r\n }\r\n\r\n private _generateGlyphMarkup(location: string, collapseState: boolean): JSX.Element {\r\n let glyphClass = collapseState ? this.drawerOpenGlyph : this.drawerCloseGlyph;\r\n glyphClass = `${glyphClass} ${location}`;\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _toggle(e: React.MouseEvent | React.KeyboardEvent): void {\r\n e.preventDefault();\r\n this.setState({ isOpen: !this.state.isOpen });\r\n this.isManuallyToggled = true;\r\n if (this.props.onToggle) {\r\n this.props.onToggle();\r\n }\r\n }\r\n}\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 { Button } from '@msdyn365-commerce-modules/utilities';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport ControlledDrawer from '../../components/citta-accordion-drawer/Drawer';\r\nimport { IDrawerProps } from '../../components/citta-accordion-drawer/Drawer.props';\r\nimport { createAccordionStateInput } from '../../data-actions/accordion/accordion-state-data-action';\r\nimport { ICittaAccordionItemCustomData } from './citta-accordion-item-custom.data';\r\nimport { ICittaAccordionItemCustomProps } from './citta-accordion-item-custom.props.autogenerated';\r\nexport interface IAccordionItemState extends React.ComponentState {\r\n /**\r\n * Indicates whether a submenu is expanded or collapsed\r\n */\r\n expanded: boolean;\r\n accordionItemTitle: string;\r\n}\r\n\r\n/**\r\n *\r\n * AccordionItem component\r\n * @extends {React.Component>}\r\n */\r\n@observer\r\nclass AccordionItemCustom extends React.Component, IAccordionItemState> {\r\n private expandSingleItemOnly?: boolean = false;\r\n\r\n constructor(props: ICittaAccordionItemCustomProps) {\r\n super(props);\r\n this._onToggleAccordionItem = this._onToggleAccordionItem.bind(this);\r\n this._getDrawerProps = this._getDrawerProps.bind(this);\r\n this._renderAccordionItemContent = this._renderAccordionItemContent.bind(this);\r\n this._renderAccordionItemSlotsContent = this._renderAccordionItemSlotsContent.bind(this);\r\n this.state = {\r\n expanded: false, // isExpanded\r\n accordionItemTitle: this.props.config.accordionItemTitle\r\n };\r\n this.expandSingleItemOnly = this.props.data.accordionExpandedState.result && this.props.data.accordionExpandedState.result.expandSingleItemOnly;\r\n }\r\n\r\n public componentDidMount(): void {\r\n const initialExpansion = this.props && this.props.config && this.props.config.isExpandedOnInitialLoad || false;\r\n if (initialExpansion) {\r\n this.setState(prevState => ({\r\n expanded: !prevState.expanded\r\n }));\r\n\r\n if (this.expandSingleItemOnly) {\r\n const oldRadioButtonText = this.props.data && this.props.data.accordionExpandedState && this.props.data.accordionExpandedState.result!.radioButtonText;\r\n const closing = this.state.accordionItemTitle === oldRadioButtonText;\r\n const accordionState = { radioButtonText: closing ? '' : this.props.config.accordionItemTitle, isAllExpanded: false };\r\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\r\n }\r\n }\r\n }\r\n\r\n public render(): JSX.Element {\r\n const { slots } = this.props;\r\n const config = this.props && this.props.config;\r\n const drawerProps = this._getDrawerProps(config && config.showGlyph);\r\n\r\n const hasAccordionItemSlotsContent = slots && slots.accordionItemContent && slots.accordionItemContent.length;\r\n\r\n return (\r\n
\r\n {hasAccordionItemSlotsContent && (\r\n
\r\n \r\n
\r\n {(config) && (\r\n \r\n
\r\n {hasAccordionItemSlotsContent && (this._renderAccordionItemSlotsContent(slots.accordionItemContent))}\r\n
\r\n
\r\n )\r\n }\r\n
\r\n
)\r\n }\r\n
\r\n );\r\n }\r\n\r\n private _getDrawerProps(showGlyph: boolean | undefined): IDrawerProps {\r\n const data = this.props && this.props.data;\r\n const config = this.props && this.props.config;\r\n const accordionExpandedStateResult = data && data.accordionExpandedState && data.accordionExpandedState.result;\r\n // const expanded = accordionExpandedStateResult ? accordionExpandedStateResult!.isAllExpanded === undefined ?\r\n // data && config.isExpandedOnInitialLoad : accordionExpandedStateResult!.isAllExpanded : false;\r\n const expanded = this.state.expanded;\r\n const radioButtonText = accordionExpandedStateResult!.radioButtonText;\r\n\r\n if (showGlyph) {\r\n return {\r\n toggleButtonText: (config.accordionItemTitle && config.accordionItemTitle) || '',\r\n collapseProps: { isOpen: expanded },\r\n openGlyph: 'expand-glyph',\r\n closeGlyph: 'collapse-glyph',\r\n glyphPlacement: config && config.glyphPlacement,\r\n onToggle: this._onToggleAccordionItem(config.accordionItemTitle),\r\n radioButtonOption: config && config.radioButtonOption,\r\n radioButtonChecked: radioButtonText === config.accordionItemTitle ? true : false\r\n };\r\n }\r\n\r\n return {\r\n toggleButtonText: config.accordionItemTitle || '',\r\n collapseProps: { isOpen: this.expandSingleItemOnly ? radioButtonText === this.state.accordionItemTitle ? true : false : expanded },\r\n onToggle: this._onToggleAccordionItem(config.accordionItemTitle),\r\n radioButtonOption: config && config.radioButtonOption,\r\n radioButtonChecked: radioButtonText === config.accordionItemTitle ? true : false\r\n };\r\n }\r\n\r\n private _onToggleAccordionItem = (AccordionItemText: string, openOnly?: boolean) => (): void => {\r\n const data = this.props && this.props.data;\r\n const accordionExpandedStateResult = data && data.accordionExpandedState && data.accordionExpandedState.result;\r\n const radioButtonText = accordionExpandedStateResult!.radioButtonText;\r\n if (openOnly && (this.expandSingleItemOnly ? radioButtonText === this.state.accordionItemTitle ? true : false : this.state.expanded)) {\r\n return;\r\n }\r\n\r\n this.setState(prevState => ({\r\n expanded: !prevState.expanded\r\n }));\r\n\r\n if (this.expandSingleItemOnly) {\r\n const oldRadioButtonText = this.props.data && this.props.data.accordionExpandedState && this.props.data.accordionExpandedState.result!.radioButtonText;\r\n const closing = this.state.accordionItemTitle === oldRadioButtonText;\r\n const accordionState = { radioButtonText: closing ? '' : AccordionItemText, isAllExpanded: false };\r\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\r\n }\r\n }\r\n\r\n // private _closeAllAccordionItems = (AccordionItemText: string) => (): void => {\r\n // if (this.expandSingleItemOnly) {\r\n // const accordionState = { radioButtonText: AccordionItemText, isAllExpanded: false };\r\n // this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\r\n // }\r\n // if (AccordionItemText !== this.state.accordionItemTitle) {\r\n // this.setState({ accordionItemTitle: AccordionItemText });\r\n // } else {\r\n // this.setState({ accordionItemTitle: '' });\r\n // }\r\n // }\r\n\r\n private _renderAccordionItemContent(content: string): JSX.Element | null {\r\n return (\r\n
\r\n

{content}

\r\n
\r\n );\r\n }\r\n\r\n private _renderAccordionItemSlotsContent(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length ? (\r\n items.map((slot: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {slot}\r\n \r\n );\r\n })\r\n ) : null}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default AccordionItemCustom;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\n\r\nexport default () => {\r\n return (\r\n
\r\n

Hello world

\r\n
\r\n );\r\n};\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\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","/*!\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 Save & 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","/*!\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","// @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;","/*!\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","/*!\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","/*!\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 { 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 { 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 * 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","/*!\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","/*!\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","/*!\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"],"names":["Drawer","React","constructor","props","super","this","_toggle","bind","isManuallyToggled","state","isOpen","collapseProps","drawerGlyphClass","classnames","toggleGlyphClassName","animateGlyph","drawerOpenGlyph","openGlyph","closeGlyph","drawerCloseGlyph","render","_objectSpread","undefined","children","drawerClass","className","Button","Object","assign","toggleButtonProps","onClick","block","disabled","color","radioButtonOption","type","role","id","toggleButtonText","checked","radioButtonChecked","htmlFor","_generateDrawerButtonInnerMarkup","Collapse","collapseState","drawerButtonTextClass","toggleButtonClassName","glyphPlacement","_generateGlyphMarkup","location","glyphClass","e","preventDefault","setState","onToggle","AccordionItemCustom","expandSingleItemOnly","_onToggleAccordionItem","AccordionItemText","openOnly","data","radioButtonText","accordionExpandedState","result","accordionItemTitle","expanded","prevState","oldRadioButtonText","accordionState","isAllExpanded","context","actionContext","update","createAccordionStateInput","_getDrawerProps","_renderAccordionItemContent","_renderAccordionItemSlotsContent","config","componentDidMount","isExpandedOnInitialLoad","slots","drawerProps","showGlyph","hasAccordionItemSlotsContent","accordionItemContent","length","ControlledDrawer","accordionExpandedStateResult","content","items","map","slot","index","key","__decorate","observer","_ref","paymentTabs","paymentTabContent","paymentMethod","processingModal","CittaOrderreference","moduleClassName","orderrefnoValue","formInputValues","_handleChange","name","orderreferenceSubmited","value","target","orderreference","eAError","reqError","eAValError","pPCError","console","log","updateTextAttribute","attribute","TextValue","TextValueTranslations","createTextAttribute","Name","_addCartExtension","cart","ExtensionProperties","property","find","extension","Key","Value","StringValue","push","_OrderRefNoRef","_handlesubmit","rCCError","responseReceived","responseError","reCaptchaChecked","responseSuccess","submitted","userorderreferenceno","current","async","_this$cart","cartState","getCartState","checkoutState","getCheckoutState","_this$cart2","_property$Value","viewProps","orderreferenceWrapper","moduleProps","orderreferenceResponse","_getSubscribeResponse","orderreferenceForm","_renderForm","orderreferenceno","_renderorderreferenceno","renderView","style","display","_renderSubscribeThanks","FormWrapper","FormContainer","orderreferenceInput","_renderorderreferenceInput","submitButtton","_renderSubscribeButton","submitThanks","editButton","_renderEditButton","title","_handleEdit","eA","_SaveExtenstionproperty","orderrefno","_this$cart3","_saveCartExtensions","ref","onChange","required","responseMessage","orderReferenceString","telemetry","error","Error","cartExtensionProperties","_this$checkoutState$c","cartAttributes","checkoutCart","AttributeValues","updateCart","orderReferenceAttributeName","orderReferenceAttribute","x","updateAttributeValues","newAttributeValues","updateAsync","callerContext","Id","then","newCart","GetCheckoutCartInput","request","apiSettings","catch","computed","ICittaOrderreferenceView","orderForm","Node","Module","histogramItem","buttonProps","starLabel","bar","percentage","heading","histogramItems","histogramProps","item","DefaultPageContainer","typeName","skipToMainText","LogLevel","Debug","values","app","platform","tabIndexSkipToMain","isEditorialMode","requestContext","href","tabIndex","header","subheader","primary","subfooter","footer","NotificationComponentsList","feed","ObjectExtensions","isNullOrUndefined","minTopOffset","maxTopOffset","_stickyConfiguration","_notificationsComponentList","notificationsComponentList","_handleTopUpdate","_getCurrentTopPosition","shouldComponentUpdate","nextProps","nextState","isPropsDifferent","maxNotificationsCount","isStateDifferent","top","every","otherValue","notification","NotificationComponentsListsManager","subscribe","_instanceId","Random","Guid","generateGuid","MsDyn365","isBrowser","window","addEventListener","componentWillUnmount","unsubscribe","forEach","component","_component$props$noti","events","getValue","NotificationEvents","RemovedFromList","removeEventListener","addNotificationComponent","notificationComponent","_notificationComponen","instanceId","handler","_notificationComponen2","newList","filter","unshift","_className","container","notificationsList","_renderNotificationsList","hasNotifications","ArrayExtensions","hasElements","containerClassName","maxHeight","ComponentClass","componentClass","configuration","pageYOffset","Math","max","min","newTop","NotificationsListView","TabItemType","TabItem","moduleContentClassName","moduleHeaderClassName","_renderTabHeader","isSelected","itemIndex","contentID","getContentID","tabId","activeContentIDResult","activeTabState","shown","activeContentIndex","TabContentContainer","TabHeaderContainer","TabItemContent","tag","tabHeader","tabSlots","tabItemTitle","_renderTabItemContent","tabItemType","TabContent","tabItemContent","TabHeader","Tab","tabIndexQuery","handleHeadingChange","event","text","_refHandler","link","activeLink","_onClick","createTabStateInput","currentTabIndex","newUrl","_setGetParameter","String","history","pushState","path","_onKeyDown","keyCode","slotLength","tabItems","defaultTabIndex","initialIndex","queryString","query","activeTab","queryTabIndex","indexOf","arr","split","Number","parseInt","_getTabHeader","_getTabContent","headingComponent","editProps","onEdit","tabViewProps","TabContainer","headerSection","tabsSection","tabItemContainer","tabContents","tabHeaders","componentDidUpdate","params","isEditor","dataActionTabId","focus","selected","onKeyDown","paramName","paramValue","url","URL","requestUrl","URLSearchParams","search","set","decodeURIComponent","toString","TileList","_telemetryContent","getTelemetryObject","telemetryPageName","friendlyName","static","StringExtensions","isNullOrWhitespace","Heading","headingTag","_this$props$config$cl","resources","propsCarousel","SingleSlideCarousel","flipperPrevLabel","flipperPrevious","flipperNextLabel","flipperNext","parentId","telemetryContent","vertical","_createHeading","singleSlideCarouselComponentProps","tileItemContainer","tileListContainer","tileListHeading","tiles","tileListView","tileItem","keyIndex"],"sourceRoot":""}