{"version":3,"file":"static/js/9.ad51734228c143ebddea.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/dyn-bioz-prime-badge/dyn-bioz-prime-badge.tsx?2649","webpack://Msdyn365.Commerce.Online/./src/modules/dyn-bioz-prime-badge/dyn-bioz-prime-badge.view.tsx?d20b","webpack://Msdyn365.Commerce.Online/./src/modules/dyn-catalog-search/dyn-catalog-search.tsx?976c","webpack://Msdyn365.Commerce.Online/./src/modules/dyn-catalog-search/dyn-catalog-search.view.tsx?e843","webpack://Msdyn365.Commerce.Online/./src/modules/dyn-google-tag-manager/dyn-google-tag-manager.tsx?c201","webpack://Msdyn365.Commerce.Online/./src/modules/dyn-google-tag-manager/dyn-google-tag-manager.view.tsx?0b32","webpack://Msdyn365.Commerce.Online/./src/themes/dyn-tebutheme/views/header.view.tsx?6425","webpack://Msdyn365.Commerce.Online/./src/modules/default-external-script/default-external-script.tsx?2a33","webpack://Msdyn365.Commerce.Online/./src/modules/default-inline-script/default-inline-script.tsx?5ccd","webpack://Msdyn365.Commerce.Online/./src/modules/default-page/default-page.tsx?b382","webpack://Msdyn365.Commerce.Online/./src/utils/script-utils.ts?cb52","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/order-history.view.tsx?a21d","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/reviews-list.view.tsx?cd2e","webpack://Msdyn365.Commerce.Online/./src/modules/notifications-list/notifications-list.tsx?8377","webpack://Msdyn365.Commerce.Online/./src/modules/notifications-list/notifications-list.view.tsx?d466","webpack://Msdyn365.Commerce.Online/./src/modules/social-share/social-share.tsx?899b","webpack://Msdyn365.Commerce.Online/./src/modules/social-share/social-share.view.tsx?dcdf","webpack://Msdyn365.Commerce.Online/./src/modules/tab-item/tab-item.tsx?b1b8","webpack://Msdyn365.Commerce.Online/./src/modules/tab-item/tab-item.view.tsx?ee3b","webpack://Msdyn365.Commerce.Online/./src/modules/tab/tab.tsx?9ac6","webpack://Msdyn365.Commerce.Online/./src/modules/tab/tab.view.tsx?a99d"],"sourcesContent":["/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\n\r\nimport { IDynBiozPrimeBadgeData } from './dyn-bioz-prime-badge.data';\r\nimport { IDynBiozPrimeBadgeProps } from './dyn-bioz-prime-badge.props.autogenerated';\r\nimport { reaction } from 'mobx'; //computed\r\nimport { observer } from 'mobx-react';\r\nimport { AttributesForSelectedVariantInput, getAttributesForSelectedVariant } from '@msdyn365-commerce-modules/product-specification';\r\n\r\nexport interface IDynBiozPrimeBadgeViewProps extends IDynBiozPrimeBadgeProps {\r\n catalogNumber?: string;\r\n}\r\n\r\n/**\r\n *\r\n * DynBiozPrimeBadge component\r\n * @extends {React.PureComponent>}\r\n */\r\n@observer\r\nclass DynBiozPrimeBadge extends React.PureComponent> {\r\n public constructor(props: IDynBiozPrimeBadgeProps) {\r\n super(props);\r\n }\r\n\r\n public async componentDidMount(): Promise {\r\n const { context, data, telemetry } = this.props;\r\n\r\n reaction(\r\n () => (data.product.result ? data.product.result.RecordId : null),\r\n () => {\r\n if (context && data.product.result) {\r\n const actionInput = new AttributesForSelectedVariantInput(\r\n data.product.result.RecordId,\r\n\r\n +context.actionContext.requestContext.apiSettings.channelId,\r\n data.product.result\r\n );\r\n\r\n getAttributesForSelectedVariant(actionInput, this.props.context.actionContext).catch((error: Error) => {\r\n telemetry.error(error.message);\r\n telemetry.debug('Unable to update attributes for Product');\r\n telemetry.error(error.message);\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n public shouldComponentUpdate(nextProps: IDynBiozPrimeBadgeProps): boolean {\r\n if (this.props.data === nextProps.data) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const { data } = this.props;\r\n\r\n const catalogNumber =\r\n data.productSpecificationData.result?.find(attribute => attribute.Name === 'ERP_Bioz_BadgeRepresentative')?.TextValue ?? '';\r\n //const catalogNumber = data.productSpecificationData.result?.find(attribute => attribute.Name === 'Catalog Number')?.TextValue ?? '';\r\n let viewProps = {\r\n ...this.props,\r\n catalogNumber: catalogNumber\r\n };\r\n return this.props.renderView(viewProps);\r\n }\r\n}\r\n\r\nexport default DynBiozPrimeBadge;\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 { IDynBiozPrimeBadgeViewProps } from './dyn-bioz-prime-badge';\r\n\r\nexport const useScriptDynBiozPrimeBadge = (catalogNumberFormatted: string, position: string) => {\r\n React.useEffect(() => {\r\n const placement: Element | null = document.querySelector(position);\r\n\r\n const primaryDiv = document.getElementById('wrapper-bioz-prime-badge');\r\n if (primaryDiv && primaryDiv.innerHTML === '') {\r\n primaryDiv.innerHTML = ` `;\r\n }\r\n\r\n const scriptJQuery: HTMLScriptElement = document.createElement('script');\r\n scriptJQuery.src = 'https://cdn.bioz.com/assets/jquery-2.2.4.js';\r\n\r\n const scriptBioz: HTMLScriptElement = document.createElement('script');\r\n scriptBioz.src = 'https://cdn.bioz.com/assets/bioz-w-api-6.0.min.js';\r\n\r\n placement?.appendChild(scriptJQuery);\r\n placement?.appendChild(scriptBioz);\r\n\r\n return () => {\r\n placement?.appendChild(scriptJQuery);\r\n placement?.appendChild(scriptBioz);\r\n };\r\n }, []);\r\n};\r\n\r\nexport default (props: IDynBiozPrimeBadgeViewProps) => {\r\n const { catalogNumber } = props;\r\n const catalogNumberFormatted = catalogNumber?.replace(/[ .]/g, '_');\r\n const biozBlock = catalogNumberFormatted ? (\r\n <>\r\n {/*
ERP_Bioz_BadgeRepresentative : {props.catalogNumber}
\r\n
Formatted ERP_Bioz_BadgeRepresentative : {catalogNumberFormatted}
\r\n
BIOZ Prime Badge test result below :
*/}\r\n
\r\n {useScriptDynBiozPrimeBadge(catalogNumberFormatted ?? '', 'body')}\r\n \r\n ) : (\r\n <>\r\n {' '}\r\n {/*
ERP_Bioz_BadgeRepresentative : {props.catalogNumber}
\r\n
Formatted ERP_Bioz_BadgeRepresentative : {catalogNumberFormatted}
\r\n
BIOZ Prime Badge test result below : unavailable
*/}\r\n
\r\n \r\n );\r\n return <>{biozBlock};\r\n};\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\n\r\nimport { IDynCatalogSearchData } from './dyn-catalog-search.data';\r\nimport { IDynCatalogSearchProps } from './dyn-catalog-search.props.autogenerated';\r\n\r\nexport interface IDynCatalogSearchState {\r\n filter: string;\r\n}\r\n\r\nexport interface IDynCatalogSearchViewProps extends IDynCatalogSearchProps {\r\n handleChange(event: any): void;\r\n catalogSearch(): void;\r\n}\r\n\r\n/**\r\n *\r\n * DynCatalogSearch component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass DynCatalogSearch extends React.PureComponent, IDynCatalogSearchState> {\r\n public _handleChange(event: any): void {\r\n const filter = event.target.value.toString();\r\n const transformedFilter = `${String(filter).includes('::') ? String(filter).split('::')[0] : filter}*`;\r\n this.setState({\r\n filter: transformedFilter\r\n });\r\n }\r\n\r\n public _catalogSearch(): void {\r\n window.location.assign(`${this.props.context.actionContext.requestContext.sitePath}/search?q=${this.state.filter}`);\r\n }\r\n\r\n public constructor(props: IDynCatalogSearchProps) {\r\n super(props);\r\n this.state = { filter: '' };\r\n this._handleChange = this._handleChange.bind(this);\r\n this._catalogSearch = this._catalogSearch.bind(this);\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const props: IDynCatalogSearchViewProps = {\r\n ...(this.props as IDynCatalogSearchProps),\r\n handleChange: this._handleChange,\r\n catalogSearch: this._catalogSearch\r\n };\r\n return this.props.renderView(props);\r\n }\r\n}\r\n\r\nexport default DynCatalogSearch;\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 { IDynCatalogSearchViewProps } from './dyn-catalog-search';\r\n\r\nexport default (props: IDynCatalogSearchViewProps) => {\r\n const handleKeyDown = (event: React.KeyboardEvent) => {\r\n if (event.key === 'Enter') {\r\n props.catalogSearch();\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\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\nimport * as React from 'react';\r\n\r\nimport { IDynGoogleTagManagerData } from './dyn-google-tag-manager.data';\r\nimport { IDynGoogleTagManagerProps } from './dyn-google-tag-manager.props.autogenerated';\r\n\r\nexport interface IDynGoogleTagManagerViewProps extends IDynGoogleTagManagerProps {}\r\n\r\n/**\r\n *\r\n * DynGoogleTagManager component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass DynGoogleTagManager extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n return this.props.renderView(this.props);\r\n }\r\n}\r\n\r\nexport default DynGoogleTagManager;\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 { IDynGoogleTagManagerViewProps } from './dyn-google-tag-manager';\r\n\r\nexport const useScriptGtag = (props: IDynGoogleTagManagerViewProps, position: string) => {\r\n React.useEffect(() => {\r\n const placement: Element | null = document.querySelector(position);\r\n\r\n const script: HTMLScriptElement = document.createElement('script');\r\n script.src = props.config.scriptUrl;\r\n\r\n const inlineScript: HTMLScriptElement = document.createElement('script');\r\n inlineScript.type = 'text/javascript';\r\n inlineScript.innerHTML = `window.dataLayer = window.dataLayer || [];\r\n function gtag(){dataLayer.push(arguments);}\r\n gtag('js', new Date());\r\n gtag('config', '${props.config.gTagId}');\r\n `;\r\n\r\n placement?.appendChild(script);\r\n placement?.appendChild(inlineScript);\r\n\r\n return () => {\r\n placement?.removeChild(script);\r\n placement?.removeChild(inlineScript);\r\n };\r\n });\r\n};\r\n\r\nexport default (props: IDynGoogleTagManagerViewProps) => {\r\n return <>{props.config.scriptUrl && useScriptGtag(props, 'body')};\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\n/* eslint-disable no-duplicate-imports */\r\nimport { AsyncResult } from '@msdyn365-commerce/core';\r\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\r\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header';\r\nimport { Collapse, Drawer, Module, Node, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nconst headerView: React.FC = props => {\r\n const { HeaderTag, HeaderContainer, HeaderTopBarContainer, Divider, context } = props;\r\n const TopHeaderContainer: INodeProps = {\r\n className: classnames('header__top', 'row', 'justify-content-between', 'align-items-center')\r\n };\r\n //const contactURL = `${context.request.url.requestUrl.protocol}//${context.request.url.requestUrl.host}${context.request.sitePath??''}/contact`;\r\n const contactURL = `${context.actionContext.requestContext.sitePath ?? ''}/contact`;\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n
Customer Service: +33 1 30 46 39 00
\r\n \r\n \r\n Contact us\r\n \r\n
\r\n
\r\n
\r\n {props.preferredStore}\r\n
\r\n
\r\n {_renderReactFragment(props.siteOptions)}\r\n
\r\n
\r\n {_renderAccountBlock(props, false)}\r\n
\r\n
{props.wishListIconDesktop}
\r\n
\r\n
{props.cartIcon}
\r\n
\r\n
\r\n \r\n {props.logo}\r\n {_renderReactFragment(props.search)}\r\n
\r\n {props.wishListIconDesktop}\r\n {props.cartIcon}\r\n
\r\n {props.navIcon}\r\n
\r\n {_renderCollapseMenu(props)}\r\n {_renderReactFragment(props.menuBar)}\r\n
\r\n
\r\n );\r\n};\r\n\r\nfunction _renderCollapseMenu(props: IHeaderViewProps): JSX.Element | null {\r\n const { Divider, MobileMenuLinksContainer, mobileMenuCollapsed } = props;\r\n return (\r\n \r\n \r\n {_renderReactFragment(props.search)}\r\n {_renderMobileAccountBlock(props, true)}\r\n {props.wishListIconMobile}\r\n {props.siteOptions}\r\n \r\n \r\n {_renderReactFragment(props.menuBar)}\r\n \r\n );\r\n}\r\n\r\nconst renderCustomerName = (accountInformation: AsyncResult): React.ReactChild => {\r\n const customer = accountInformation && accountInformation.result;\r\n return <>{customer ? customer.FirstName || customer.Name : ''};\r\n};\r\n\r\nfunction _renderMobileAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\r\n const { AccountInfoDropdownParentContainer, signOutLink, signInLink, data, accountLinks } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n const accountClassName = classnames(\r\n 'ms-header__drawer',\r\n AccountInfoDropdownParentContainer.className,\r\n renderForMobile ? 'account-mobile' : 'account-desktop'\r\n );\r\n\r\n if (accountLinks) {\r\n return (\r\n \r\n
\r\n {accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false}\r\n {signOutLink}\r\n
\r\n \r\n );\r\n } else if (signInLink) {\r\n return (\r\n \r\n {signInLink}\r\n \r\n );\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nfunction _renderAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n const accountClassName = classnames(\r\n AccountInfoDropdownParentContainer.className,\r\n renderForMobile ? 'account-mobile' : 'account-desktop'\r\n );\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n {accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false}\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return (\r\n \r\n {signInLink}\r\n \r\n );\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n <>\r\n {items && items.length > 0\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { SDK_FRAGMENT_NAME, msdyn365Commerce } from '@msdyn365-commerce/core-internal';\nimport * as path from 'path';\nimport * as React from 'react';\nimport { isAbsoluteUrl, isRelativeUrl, logDebug, logError } from '../../utils/script-utils';\nimport { IDefaultExternalScriptProps } from './default-external-script.props.autogenerated';\n\n/**\n *\n * DefaultExternalScript component\n * @extends {React.PureComponent>}\n */\nclass DefaultExternalScript extends React.PureComponent> {\n constructor(props: IDefaultExternalScriptProps<{}>) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { config } = this.props;\n logDebug(`Adding script tags for '${this.props.id}/${this.props.typeName}'`, this.props.telemetry);\n let source = config.scriptSource;\n\n let relativeBaseUrl: string = '';\n // Construct the relative base url, i.e. the base url from which statics will be served\n if (this.props.context) {\n relativeBaseUrl += this.props.context.request.url.staticCdnUrl;\n relativeBaseUrl += msdyn365Commerce.getEnvironmentVariable('SUBMISSIONID') || '';\n }\n\n if (isRelativeUrl(source)) {\n // If the source is a relative URL prepend the relative base url to the resolved source url for the actual source\n source = `${relativeBaseUrl}/${path.join(source)}`;\n } else if (source === '' || !isAbsoluteUrl(source)) {\n logError(\n 'Invalid external script - not a url. The external source is not an external or relative url, please use default-inline-script if you wish to load inline scripts',\n this.props.telemetry\n );\n return null;\n }\n const scriptHtml = ``;\n\n return React.createElement(SDK_FRAGMENT_NAME, { key: this.props.id, dangerouslySetInnerHTML: { __html: scriptHtml } });\n }\n}\n\nexport default DefaultExternalScript;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { isNonceEnabled, SDK_FRAGMENT_NAME } from '@msdyn365-commerce/core-internal';\nimport * as React from 'react';\nimport { isAbsoluteUrl, isRelativeUrl, logDebug, logError } from '../../utils/script-utils';\nimport { IDefaultInlineScriptProps } from './default-inline-script.props.autogenerated';\n\n/**\n *\n * DefaultScript\n * @extends {React.PureComponent>}\n */\nclass DefaultInlineScript extends React.PureComponent> {\n constructor(props: IDefaultInlineScriptProps<{}>) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { config } = this.props;\n logDebug(`Adding script tags for '${this.props.id}/${this.props.typeName}'`, this.props.telemetry);\n const source = config.inlineScript;\n\n if (!source || source === '' || isAbsoluteUrl(source) || isRelativeUrl(source)) {\n logError(\n 'Invalid inline script - Empty inline source defined or a url is being used as a source. Use default-external-script to load scripts from an external or relative url.',\n this.props.telemetry\n );\n return null;\n }\n\n if (source.includes('')) {\n logError('Invalid inline script - inline script should not contain html tags', this.props.telemetry);\n return null;\n }\n\n const nonceToken = this.props.context && isNonceEnabled(this.props.context.request);\n const scriptHtml = ``;\n return React.createElement(SDK_FRAGMENT_NAME, { key: this.props.id, dangerouslySetInnerHTML: { __html: scriptHtml } });\n }\n}\n\nexport default DefaultInlineScript;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { LogLevel } from '@msdyn365-commerce/telemetry-internal';\nimport * as React from 'react';\nimport { isEditorialMode } from '@msdyn365-commerce/core-internal';\nimport { IDefaultPageProps } from './default-page.props.autogenerated';\n\n/**\n *\n * CoreComponent component\n * @extends {React.PureComponent}\n */\nclass DefaultPageContainer extends React.PureComponent> {\n constructor(props: IDefaultPageProps<{}>) {\n super(props);\n }\n\n public render(): JSX.Element {\n const { slots, telemetry, id, typeName } = this.props;\n\n let skipToMainText = this.props.config && this.props.config.skipToMainText;\n telemetry.log(LogLevel.Debug, \"DefaultPageContainer rendering for '{id}/{typeName}'\", { values: [id, typeName] });\n\n if (!skipToMainText) {\n skipToMainText =\n this.props.context.app && this.props.context.app.platform ? this.props.context.app.platform.skipToMainText : '';\n }\n\n const tabIndexSkipToMain = isEditorialMode(this.props.context.actionContext.requestContext) ? -1 : 0;\n\n return (\n \n \n {skipToMainText}\n \n
\n {slots &&\n slots.header &&\n slots.header.map((children: React.ReactNode) => {\n return children;\n })}\n
\n {slots && slots.subheader && (\n
\n {slots.subheader.map((children: React.ReactNode) => {\n return children;\n })}\n
\n )}\n
\n {slots &&\n slots.primary &&\n slots.primary.map((children: React.ReactNode) => {\n return children;\n })}\n
\n {slots && slots.subfooter && (\n
\n {slots.subfooter.map((children: React.ReactNode) => {\n return children;\n })}\n
\n )}\n
\n {slots &&\n slots.footer &&\n slots.footer.map((children: React.ReactNode) => {\n return children;\n })}\n
\n
\n );\n }\n}\n\nexport default DefaultPageContainer;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IInternalTelemetry, LogLevel } from '@msdyn365-commerce/telemetry-internal';\n\nexport const logDebug = (debugMessage: string, telemetry: IInternalTelemetry | undefined): void => {\n telemetry && telemetry.log(LogLevel.Debug, debugMessage);\n};\n\nexport const logError = (errorMessage: string, telemetry: IInternalTelemetry | undefined): void => {\n telemetry && telemetry.log(LogLevel.Error, errorMessage);\n};\n\n/**\n * Returns true if the given string matches an URL pattern\n *\n * @param source The string to check against\n */\nexport const isAbsoluteUrl = (source: string): boolean => {\n return /^(http|https):\\/\\/(\\w+:{0,1}\\w*@)?(\\S+)(:[0-9]+)?(\\/|\\/([\\w#!:.?+=&%@!\\-\\/]))?$/.test(source);\n};\n\nexport const isRelativeUrl = (source: string): boolean => {\n return /^(?!www\\.|(?:http|ftp)s?:\\/\\/|[A-Za-z]:\\\\|\\/\\/).*(\\.js){1}$/.test(source);\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IGroup,\n IGroupDelivery,\n IGroups,\n IHeader,\n IList,\n IOrderHistoryViewProps,\n IOrderInformation,\n ISalesOrder\n} from '@msdyn365-commerce-modules/order-management';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport const OrderHistoryOrderInfomation: React.FC = ({\n orderInformationProps,\n salesId,\n receiptId,\n channelName,\n createdDate,\n count,\n amount,\n channelReferenceId\n}) => (\n \n {channelName}\n {salesId}\n {receiptId}\n {createdDate}\n {count}\n {amount}\n {channelReferenceId}\n \n);\n\nexport const OrderHistoryGroupDelivery: React.FC = ({\n deliveryProps,\n heading,\n count,\n processing,\n address,\n trackingInfo\n}) => (\n \n {heading}\n {count}\n {processing}\n {address}\n {trackingInfo}\n \n);\n\nexport const OrderHistoryGroup: React.FC = ({ groupProps, delivery, salesLinesProps, salesLines }) => (\n \n {salesLines && (\n \n {salesLines.map(salesLine => (\n {salesLine.salesLine}\n ))}\n \n )}\n \n);\n\nexport const OrderHistoryGroups: React.FC = ({ groupsProps, groups }) => (\n \n {groups.map((group, index) => (\n \n ))}\n \n);\n\nexport const OrderHistoryHeader: React.FC = ({ headerProps, heading, orderCountLabel, extraActions }) => (\n \n {heading}\n {orderCountLabel}\n {extraActions}\n \n);\n\nexport const OrderHistorySalesOder: React.FC = ({\n salesOrderProps,\n orderInfomation,\n groups,\n orderDetailsLink,\n expandProductsButton\n}) => (\n \n {orderInfomation && }\n {groups && }\n {expandProductsButton}\n {orderDetailsLink}\n \n);\n\nexport const OrderHistoryList: React.FC = ({ listProps, salesOrders }) => (\n \n {salesOrders && salesOrders.map((salesOrder, index) => )}\n \n);\n\nconst OrderHistoryView: React.FC = ({\n orderHistoryProps,\n header,\n alert,\n loading,\n emptyMessage,\n backToShoppingLink,\n list,\n table,\n moreButton\n}) => (\n \n {header && }\n {loading}\n {alert && (\n <>\n {alert}\n {backToShoppingLink}\n \n )}\n {emptyMessage && (\n \n {emptyMessage}\n {backToShoppingLink}\n \n )}\n {list && }\n {table}\n {moreButton && moreButton}\n \n);\n\nexport default OrderHistoryView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IReviewModalViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\nimport {\n IReportReviewModalViewProps,\n IReviewCardViewProps,\n IReviewsListState,\n IReviewsListViewProps\n} from '@msdyn365-commerce-modules/ratings-reviews/src/modules/reviews-list';\nimport { IModuleProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst ReviewsListview: React.FC = props => {\n const {\n averageRating,\n filterByDropdown,\n moduleProps,\n noReviewsMessage,\n noReviewsWithFilterMessage,\n pageControls,\n refineReviewsProps,\n reportReviewModal,\n reviewsListProps,\n reviewCards,\n reviewCount,\n reviewModal,\n sortByDropdown,\n state,\n userReview\n } = props;\n\n if (!userReview && reviewCards.length === 0 && !state.isFilterApplied) {\n return {noReviewsMessage};\n }\n\n return (\n \n {averageRating}\n {reviewCount}\n \n {sortByDropdown}\n {filterByDropdown}\n \n \n {userReview && buildReviewCard(userReview)}\n {reviewCards.map(review => {\n return buildReviewCard(review);\n })}\n \n {reviewCards.length === 0 && state.isFilterApplied && noReviewsWithFilterMessage}\n {pageControls}\n {createReviewModal(reviewModal, moduleProps)}\n {createReportModal(reportReviewModal, state)}\n \n );\n};\n\nconst buildReviewCard = (props: IReviewCardViewProps) => {\n return (\n \n \n {props.rating}\n {props.name}\n {props.date}\n \n \n \n {props.reviewTitle}\n {props.reviewText}\n \n \n {props.responseName}\n {props.responseDate}\n {props.responseText}\n \n \n {props.ratingHelpfulLabel}\n {props.like}\n {props.dislike}\n {props.edit}\n {props.report}\n \n \n \n );\n};\n\nconst createReviewModal = (props: IReviewModalViewProps, moduleProps: IModuleProps): JSX.Element => {\n return (\n \n {props.modalHeader}\n \n \n \n {props.rating}\n {props.ratingLabel}\n \n \n {props.titleLabel}\n {props.titleInput}\n \n \n {props.textLabel}\n {props.textInput}\n \n {props.privacyPolicyUrl}\n {props.error}\n \n \n \n {props.submitButton}\n {props.cancelButton}\n \n \n );\n};\n\nconst createReportModal = (props: IReportReviewModalViewProps, state: IReviewsListState): JSX.Element => {\n return (\n \n {state.reported ? props.headerSubmitted : props.header}\n \n {state.reported ? props.reportSubmittedMessage : [props.reportMessage, props.radioButtons, props.error]}\n \n {state.reported ? props.succesfulButton : [props.submitButton, props.cancelButton]}\n \n );\n};\n\nexport default ReviewsListview;\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 { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { ISocialShareConfig, ISocialShareProps, orientation } from './social-share.props.autogenerated';\n\nexport interface ISocialShareViewProps extends ISocialShareProps {\n isConsentGiven: boolean;\n SocialShareItemElements: React.ReactNode[];\n SocialShare: IModuleProps;\n SocialShareList: INodeProps;\n SocialShareItem: INodeProps;\n SocialShareItemCustomization: INodeProps;\n}\n\n/**\n *\n * SocialShare component.\n * @extends {React.PureComponent>}\n */\nclass SocialShare extends React.PureComponent> {\n constructor(props: ISocialShareProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { slots } = this.props;\n\n if (!slots || !ArrayExtensions.hasElements(slots.socialShareItems)) {\n this.props.context.telemetry.error('No social media is enable for sharing, module wont render');\n return null;\n }\n\n const isConsentGiven =\n this.props.context.request &&\n this.props.context.request.cookies &&\n this.props.context.request.cookies.isConsentGiven &&\n this.props.context.request.cookies.isConsentGiven();\n\n if (!isConsentGiven && !this.props.context.request.params.isEditor) {\n return null;\n }\n\n const viewprops = {\n ...this.props,\n SocialShare: {\n moduleProps: this.props,\n className: classnames('ms-social-share', this.props.config.className)\n },\n SocialShareList: {\n 'data-title': this.props.config.caption,\n className: `ms-social-share-ul ${this.props.config.caption && 'caption'} ${\n this.props.config.orientation === orientation.vertical ? 'vertical' : ''\n }`,\n tag: 'ul',\n role: 'group'\n },\n SocialShareItem: {\n className: 'ms-social-share-li',\n tag: 'li',\n tabIndex: '0',\n role: 'link'\n },\n SocialShareItemElements: slots && slots.socialShareItems.length > 0 && slots.socialShareItems\n };\n\n return this.props.renderView(viewprops) as React.ReactElement;\n }\n}\n\nexport default SocialShare;\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 React, { ReactNode } from 'react';\n\nimport { ISocialShareViewProps } from './social-share';\n\nexport const SocialShareView: React.FC = props => {\n const { SocialShareList, SocialShareItemElements, SocialShareItem, SocialShare } = props;\n if (SocialShareItemElements.length === 0) {\n props.context.telemetry.error('Social media list is empty, module wont render');\n return null;\n }\n return (\n \n \n {SocialShareItemElements.map((SocialShareElement: ReactNode, index: number) => {\n return (\n \n {SocialShareElement}\n \n );\n })}\n \n \n );\n};\n\nexport default SocialShareView;\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"],"names":["DynBiozPrimeBadge","React","constructor","props","super","context","data","telemetry","this","reaction","product","result","RecordId","actionInput","AttributesForSelectedVariantInput","actionContext","requestContext","apiSettings","channelId","getAttributesForSelectedVariant","catch","error","message","debug","shouldComponentUpdate","nextProps","render","catalogNumber","productSpecificationData","find","attribute","Name","TextValue","viewProps","renderView","observer","useScriptDynBiozPrimeBadge","catalogNumberFormatted","position","placement","document","querySelector","primaryDiv","getElementById","innerHTML","scriptJQuery","createElement","src","scriptBioz","appendChild","replace","biozBlock","id","className","DynCatalogSearch","_handleChange","event","filter","target","value","toString","transformedFilter","String","includes","split","setState","_catalogSearch","window","location","assign","sitePath","state","bind","handleChange","catalogSearch","onChange","placeholder","config","catalogSearchSlaceholderText","onKeyDown","key","onClick","DynGoogleTagManager","useScriptGtag","script","scriptUrl","inlineScript","type","gTagId","removeChild","renderCustomerName","accountInformation","customer","FirstName","_renderReactFragment","items","length","map","slot","index","HeaderTag","HeaderContainer","HeaderTopBarContainer","Divider","TopHeaderContainer","classnames","contactURL","Module","Object","Node","href","preferredStore","siteOptions","renderForMobile","AccountInfoDropdownParentContainer","AccountInfoDropdownPopoverConentContainer","accountInfoDropdownButton","signOutLink","signInLink","accountLinks","accountClassName","link","_renderAccountBlock","wishListIconDesktop","cartIcon","logo","search","navIcon","MobileMenuLinksContainer","mobileMenuCollapsed","Collapse","isOpen","Drawer","openGlyph","closeGlyph","glyphPlacement","toggleButtonText","_renderMobileAccountBlock","wishListIconMobile","menuBar","_renderCollapseMenu","DefaultExternalScript","logDebug","typeName","source","scriptSource","relativeBaseUrl","request","url","staticCdnUrl","msdyn365Commerce","isRelativeUrl","path","isAbsoluteUrl","logError","scriptHtml","async","defer","SDK_FRAGMENT_NAME","dangerouslySetInnerHTML","__html","DefaultInlineScript","nonceToken","isNonceEnabled","DefaultPageContainer","slots","skipToMainText","log","LogLevel","values","app","platform","tabIndexSkipToMain","isEditorialMode","tabIndex","header","children","subheader","primary","subfooter","footer","debugMessage","errorMessage","test","OrderHistoryOrderInfomation","orderInformationProps","salesId","receiptId","channelName","createdDate","count","amount","channelReferenceId","OrderHistoryGroupDelivery","deliveryProps","heading","processing","address","trackingInfo","OrderHistoryGroup","groupProps","delivery","salesLinesProps","salesLines","salesLine","LineId","OrderHistoryGroups","groupsProps","groups","group","OrderHistoryHeader","headerProps","orderCountLabel","extraActions","OrderHistorySalesOder","salesOrderProps","orderInfomation","orderDetailsLink","expandProductsButton","OrderHistoryList","listProps","salesOrders","salesOrder","orderHistoryProps","alert","loading","emptyMessage","backToShoppingLink","list","table","moreButton","buildReviewCard","cardProps","rating","name","date","cardBodyProps","reviewProps","reviewTitle","reviewText","responseProps","responseName","responseDate","responseText","controlsProps","ratingHelpfulLabel","like","dislike","edit","report","createReviewModal","moduleProps","modal","modalHeader","modalBody","form","inputRow","ratingLabel","titleLabel","titleInput","textLabel","textInput","privacyPolicyUrl","modalFooter","submitButton","cancelButton","createReportModal","reported","headerSubmitted","reportSubmittedMessage","reportMessage","radioButtons","succesfulButton","averageRating","filterByDropdown","noReviewsMessage","noReviewsWithFilterMessage","pageControls","refineReviewsProps","reportReviewModal","reviewsListProps","reviewCards","reviewCount","reviewModal","sortByDropdown","userReview","isFilterApplied","review","NotificationComponentsList","feed","ObjectExtensions","minTopOffset","maxTopOffset","_stickyConfiguration","_notificationsComponentList","notificationsComponentList","_handleTopUpdate","_getCurrentTopPosition","nextState","isPropsDifferent","maxNotificationsCount","isStateDifferent","top","every","otherValue","notification","componentDidMount","NotificationComponentsListsManager","_instanceId","Random","MsDyn365","undefined","addEventListener","componentWillUnmount","forEach","component","events","getValue","NotificationEvents","unsubscribe","removeEventListener","addNotificationComponent","notificationComponent","Error","subscribe","instanceId","handler","newList","unshift","_className","container","style","notificationsList","_renderNotificationsList","hasNotifications","ArrayExtensions","containerClassName","maxHeight","ComponentClass","componentClass","configuration","pageYOffset","Math","max","min","newTop","NotificationsListView","SocialShare","socialShareItems","cookies","isConsentGiven","params","isEditor","viewprops","SocialShareList","caption","orientation","tag","role","SocialShareItem","SocialShareItemElements","SocialShareView","SocialShareElement","TabItemType","TabItem","moduleContentClassName","moduleHeaderClassName","_renderTabHeader","isSelected","itemIndex","contentID","getContentID","tabId","activeContentIDResult","activeTabState","shown","activeContentIndex","TabContentContainer","TabHeaderContainer","TabItemContent","tabHeader","tabSlots","tabItemTitle","_renderTabItemContent","item","tabItemType","tabItemContent","Tab","tabIndexQuery","handleHeadingChange","text","_refHandler","activeLink","_onClick","e","update","createTabStateInput","currentTabIndex","newUrl","_setGetParameter","history","pushState","_onKeyDown","keyCode","slotLength","tabItems","defaultTabIndex","initialIndex","queryString","query","activeTab","queryTabIndex","indexOf","arr","Number","parseInt","_getTabHeader","_getTabContent","headingComponent","editProps","onEdit","tabViewProps","TabContainer","headerSection","tabsSection","tabItemContainer","tabContents","tabHeaders","componentDidUpdate","dataActionTabId","focus","selected","ref","paramName","paramValue","URL","requestUrl","URLSearchParams","set","decodeURIComponent"],"sourceRoot":""}