{"version":3,"file":"static/js/8.585960036f70988d7da0.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/dyn-wordpress-featured/dyn-wordpress-featured.tsx?ba1b","webpack://Msdyn365.Commerce.Online/./src/modules/dyn-wordpress-featured/dyn-wordpress-featured.view.tsx?e3f7","webpack://Msdyn365.Commerce.Online/./src/modules/punchout-access-cxml/punchout-access-cxml.tsx?4878","webpack://Msdyn365.Commerce.Online/./src/modules/punchout-access-cxml/punchout-access-cxml.view.tsx?5a83","webpack://Msdyn365.Commerce.Online/./src/themes/dyn-tebutheme/dyn-tebutheme.tsx?e8ba","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/components/link.tsx?d232","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/components/separator.tsx?92bb","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/breadcrumb.tsx?efcc","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/breadcrumb.view.tsx?4b3d","webpack://Msdyn365.Commerce.Online/./src/modules/place-holder-for-container-preview/place-holder-for-container-preview.tsx?605e","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/fabrikam.tsx?5b10","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/buybox.view.tsx?aec4","webpack://Msdyn365.Commerce.Online/./src/modules/back-top-footer/back-top-footer.tsx?f47e","webpack://Msdyn365.Commerce.Online/./src/modules/footer-category/footer-category.tsx?e0bd","webpack://Msdyn365.Commerce.Online/./src/modules/footer-category/footer-category.view.tsx?fdce","webpack://Msdyn365.Commerce.Online/./src/modules/starter/starter.tsx?aade","webpack://Msdyn365.Commerce.Online/./src/modules/subscribe/subscribe.tsx?9fea","webpack://Msdyn365.Commerce.Online/./src/modules/subscribe/subscribe.view.tsx?19c8"],"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 { IDynWordpressFeaturedData } from './dyn-wordpress-featured.data';\r\nimport { IDynWordpressFeaturedProps } from './dyn-wordpress-featured.props.autogenerated';\r\n//import * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\nexport interface IDynWordpressFeaturedViewProps extends IDynWordpressFeaturedProps {}\r\n\r\nexport interface wpNode {\r\n node: {\r\n guid: string;\r\n slug: string;\r\n title: string;\r\n featuredImage: {\r\n node: {\r\n altText: string;\r\n uri: string;\r\n sourceUrl: string;\r\n };\r\n };\r\n excerpt: string;\r\n };\r\n}\r\n\r\nexport interface EdgesArticleGQL {\r\n edges: wpNode[];\r\n}\r\n\r\n/**\r\n *\r\n * DynWordpressPost component\r\n * @extends {React.PureComponent>}\r\n */\r\n\r\nclass DynWordpressFeatured extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n const dynWordpressPostsProps: IDynWordpressFeaturedViewProps = {\r\n ...this.props\r\n };\r\n\r\n return this.props.renderView(dynWordpressPostsProps);\r\n }\r\n}\r\n\r\nexport default DynWordpressFeatured;\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 { IDynWordpressFeaturedViewProps } from './dyn-wordpress-featured';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\nexport default (props: IDynWordpressFeaturedViewProps) => {\r\n const { data } = props;\r\n const postType = 'promotion';\r\n\r\n return (\r\n <>\r\n {data.wpPosts?.result?.edges.map(post => {\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n

{post.node.title ?? ''}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
Shop now
\r\n \r\n
\r\n
\r\n
\r\n
\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 { IPunchoutAccessCxmlData } from './punchout-access-cxml.data';\r\nimport { IPunchoutAccessCxmlProps } from './punchout-access-cxml.props.autogenerated';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\n//import emptyActiveCart from './methods/empty-active-cart';\r\n\r\ninterface sessionCxmlObject {\r\n username: string;\r\n sharedSecret: string;\r\n buyerCookie: string;\r\n hookUrl: string;\r\n fromCredentialDomain: string;\r\n fromCredentialIdentity: string;\r\n toCredentialDomain: string;\r\n toCredentialIdentity: string;\r\n}\r\n\r\nexport interface IPunchoutAccessCxmlViewProps extends IPunchoutAccessCxmlProps {\r\n state: IPunchoutAccessCxmlState;\r\n}\r\n\r\nexport interface IPunchoutAccessCxmlState {\r\n isConnecting: boolean;\r\n hasFailed: boolean;\r\n}\r\n\r\n/**\r\n *\r\n * PunchoutAccessCxml component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass PunchoutAccessCxml extends React.PureComponent> {\r\n constructor(props: IPunchoutAccessCxmlProps, state: IPunchoutAccessCxmlState) {\r\n super(props);\r\n this.state = {\r\n isConnecting: true,\r\n hasFailed: false\r\n };\r\n }\r\n\r\n // Get the credentials from the body of the POST request\r\n private readQueryCXML(): string[] {\r\n const requestQuery = this.props.context.request.query;\r\n\r\n // const cXmlEncoded = requestQuery?.cXML || '';\r\n // const cXmlBase64Decoded = atob(cXmlEncoded);\r\n // const cXmlCleaned = cXmlBase64Decoded.replace('cXML-urlencoded=', '').replace('&url=', '');\r\n // const cXmlUriDecoded = decodeURIComponent(cXmlCleaned);\r\n // const cXmlString = cXmlUriDecoded.replace(/\\+/g, ' ');\r\n\r\n // const parser = new DOMParser();\r\n // const xmlDoc = parser.parseFromString(cXmlString, 'text/xml');\r\n\r\n // let username: string;\r\n // let password: string;\r\n // let hookUrl: string;\r\n // let buyerCookie: string;\r\n\r\n // username =\r\n // xmlDoc\r\n // .getElementsByTagName('From')[0]\r\n // .getElementsByTagName('Credential')[0]\r\n // .getElementsByTagName('Identity')[0].childNodes[0].nodeValue || '';\r\n\r\n // password =\r\n // xmlDoc\r\n // .getElementsByTagName('Sender')[0]\r\n // .getElementsByTagName('Credential')[0]\r\n // .getElementsByTagName('SharedSecret')[0].childNodes[0].nodeValue || '';\r\n // hookUrl = xmlDoc.getElementsByTagName('BrowserFormPost')[0].getElementsByTagName('URL')[0].childNodes[0].nodeValue || '';\r\n // buyerCookie = xmlDoc.getElementsByTagName('BuyerCookie')[0].childNodes[0].nodeValue || '';\r\n\r\n const sessionObjectEncoded = decodeURIComponent(requestQuery?.sessionid ?? '');\r\n const sessionObjectDecoded = atob(sessionObjectEncoded);\r\n const sessionId: sessionCxmlObject = JSON.parse(sessionObjectDecoded);\r\n\r\n let username: string = sessionId.username;\r\n const password: string = sessionId.sharedSecret;\r\n const buyerCookie: string = sessionId.buyerCookie;\r\n const hookUrl: string = sessionId.hookUrl;\r\n const fromCredentialDomain: string = sessionId.fromCredentialDomain;\r\n const fromCredentialIdentity: string = sessionId.fromCredentialIdentity;\r\n const toCredentialDomain: string = sessionId.toCredentialDomain;\r\n const toCredentialIdentity: string = sessionId.toCredentialIdentity;\r\n\r\n //check if username is an email, if not add '@tebubio.com' to username (CXML usernames usually aren't emails)\r\n if (username.search('@') === -1) {\r\n username = `${username}@tebubio.com`;\r\n }\r\n\r\n window.sessionStorage.setItem('protocol', 'cXML');\r\n window.sessionStorage.setItem('buyerCookie', buyerCookie);\r\n window.sessionStorage.setItem('hookUrl', hookUrl);\r\n window.sessionStorage.setItem('fromCredentialDomain', fromCredentialDomain);\r\n window.sessionStorage.setItem('fromCredentialIdentity', fromCredentialIdentity);\r\n window.sessionStorage.setItem('toCredentialDomain', toCredentialDomain);\r\n window.sessionStorage.setItem('toCredentialIdentity', toCredentialIdentity);\r\n\r\n return [username, password, hookUrl, buyerCookie];\r\n }\r\n\r\n public async componentDidMount(): Promise {\r\n //debugger;\r\n // Reset of the isPunchoutAccess flag used by the punchout-empty-cart module on the punchout home page\r\n window.sessionStorage.removeItem('isPunchoutAccess');\r\n\r\n const [username, password, hookUrl, buyerCookie] = this.readQueryCXML();\r\n\r\n const homeLink = Msdyn365.getUrlSync('home', this.props.context.actionContext) || '';\r\n\r\n const country = this.props.context.request.sitePath?.replace('/po-', ''); // type '/po-fr-eur'\r\n window.sessionStorage.setItem('country', country ?? '');\r\n const punchoutCurrency = this.props.context.request.sitePath?.substring(7);\r\n window.sessionStorage.setItem('punchoutCurrency', punchoutCurrency ?? '');\r\n\r\n // Get B2C Token\r\n let B2CToken = '';\r\n const webApiUrl = `${this.props.config.urlAzureFn}${this.props.config.keyAzureFn}`;\r\n //'https://punchoutcommerce.azurewebsites.net/api/punchout/v1/login?code=Cs3uVrX5WnMmrdR0vmnaLi6gDDHVS8gIPizAEWQSoydpkqCQFaLGlQ==';\r\n\r\n const webApiBody = {\r\n Localization: country, //'fr-EUR',\r\n Format: 'cXML',\r\n username: username,\r\n password: password,\r\n hookUrl: hookUrl,\r\n buyerCookie: buyerCookie\r\n };\r\n\r\n try {\r\n // Get the AAD B2C Token\r\n fetch(webApiUrl, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify(webApiBody)\r\n })\r\n .then(response => {\r\n response.json().then(json => {\r\n try {\r\n B2CToken = json.token.access_token;\r\n // Get the Commerce session cookie\r\n fetch(homeLink, {\r\n method: 'GET',\r\n mode: 'same-origin',\r\n credentials: 'same-origin',\r\n headers: {\r\n Authorization: `B2CToken ${B2CToken}`\r\n }\r\n })\r\n .then(response => {\r\n //response.text().then(resp => console.log(resp));\r\n\r\n // Set punchout access flag in sessionStorage\r\n window.sessionStorage.setItem('isPunchout', '1');\r\n // Save protocol, hookUrl and buyercookie to sessionStorage, as they are used later when validating the purchase (place-orders)\r\n window.sessionStorage.setItem('hookUrl', webApiBody.hookUrl);\r\n window.sessionStorage.setItem('protocol', webApiBody.Format);\r\n //window.sessionStorage.setItem('buyerCookie', webApiBody.buyerCookie); // No buyercookie for OCI\r\n // We set the isPunchoutAccess so that the punchout-empty-cart module can take action on the punchout home page\r\n window.sessionStorage.setItem('isPunchoutAccess', '1');\r\n\r\n // We empty the cart each time this page is accessed for a new punchout session\r\n // emptyActiveCart(this.props.context.actionContext);\r\n\r\n // Redirect to the Homepage\r\n this.setState({\r\n isConnecting: false,\r\n hasFailed: false\r\n });\r\n window.location.assign(homeLink);\r\n })\r\n .catch(error => {\r\n console.error('There was an error!', error);\r\n this.setState({\r\n isConnecting: false,\r\n hasFailed: true\r\n });\r\n });\r\n } catch (error) {\r\n console.log(error);\r\n this.setState({\r\n isConnecting: false,\r\n hasFailed: true\r\n });\r\n }\r\n });\r\n })\r\n .catch(error => {\r\n console.error('There was an error!', error);\r\n this.setState({\r\n isConnecting: false,\r\n hasFailed: true\r\n });\r\n });\r\n } catch (error) {\r\n console.log(error);\r\n this.setState({\r\n isConnecting: false,\r\n hasFailed: true\r\n });\r\n }\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const punchoutAccessCxmlViewProps = {\r\n ...this.props,\r\n state: this.state\r\n };\r\n return this.props.renderView(punchoutAccessCxmlViewProps);\r\n }\r\n}\r\n\r\nexport default PunchoutAccessCxml;\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 { IPunchoutAccessCxmlViewProps } from './punchout-access-cxml';\r\n\r\nexport default (viewProps: IPunchoutAccessCxmlViewProps) => {\r\n return (\r\n
\r\n

{viewProps.config.showText}

\r\n {viewProps.state.isConnecting ? (\r\n

\r\n \r\n Connecting\r\n

\r\n ) : (\r\n ''\r\n )}\r\n {viewProps.state.hasFailed ?
Connection failed : please review your credentials
: ''}\r\n
\r\n );\r\n};\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport * as React from 'react';\r\n\r\n// TODO: Current build require at least one tsx file\r\nexport default () =>
;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface ILink {\n className?: string;\n text?: string;\n href?: string;\n ariaLabel?: string;\n index: string;\n noclick?: boolean;\n telemetryContent: ITelemetryContent;\n}\n\nexport const Link: React.FC = ({ text, className, href, ariaLabel, index, noclick, telemetryContent }) => {\n const payLoad = getPayloadObject('click', telemetryContent, '', '');\n\n const linkText = text !== undefined ? text : '';\n payLoad.contentAction.etext = linkText;\n\n // Construct telemetry attribute to render\n const attribute = getTelemetryAttributes(telemetryContent, payLoad);\n\n return (\n \n {linkText}\n \n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface ISeparator {\n separator: string;\n}\n\nexport const Separator: React.FC = ({ separator }) => (\n \n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\nimport MsDyn365 from '@msdyn365-commerce/core';\nimport { ICategoryUrl } from '@msdyn365-commerce/core-internal/dist/types/interfaces/ICategoryPathInterfaces';\nimport { TextValueTranslation } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IBreadcrumbData } from './breadcrumb.data';\nimport { IBreadcrumbProps, ILinksData } from './breadcrumb.props.autogenerated';\nimport { Link } from './components/link';\nimport { Separator } from './components/separator';\n\nexport interface IBreadcrumbViewProps extends IBreadcrumbProps {\n root?: React.ReactNode;\n links?: React.ReactNode[];\n backButton?: React.ReactNode;\n separator?: React.ReactNode;\n BreadcrumbContainer: IModuleProps;\n BreadcrumbList: INodeProps;\n BreadcrumbListItem: INodeProps;\n}\n\n/**\n *\n * Breadcrumb component.\n * @extends {React.PureComponent>}\n */\nclass Breadcrumb extends React.PureComponent> {\n private readonly _pageType: string | undefined = this.props.context.request.urlTokens.pageType;\n\n private readonly telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public render(): JSX.Element | null {\n const { className } = this.props.config;\n let rootLink = null;\n let breadcrumbLinks = null;\n let backButtonComponent = null;\n rootLink = this._getRootLink();\n const itemPosition = rootLink ? 1 : 0;\n if (this._pageType === 'Category') {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n if (!breadcrumbLinks) {\n breadcrumbLinks = this._getCategoryHierarchy(itemPosition);\n }\n } else if (this._pageType === 'Product') {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n if (!breadcrumbLinks) {\n const breaCrumbType = this.props.context.app.config.breadcrumbType;\n if (breaCrumbType === 'category') {\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n if (breaCrumbType === 'categoryAndBack') {\n backButtonComponent = this._getPDPBackButton();\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n if (breaCrumbType === 'back') {\n backButtonComponent = this._getPDPBackButton();\n if (backButtonComponent === null) {\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n }\n }\n } else {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n }\n const linkSeparator = ;\n\n const breadcrumbViewProps = {\n ...this.props,\n BreadcrumbContainer: {\n moduleProps: this.props,\n className: classnames('ms-breadcrumb', className),\n tag: 'nav',\n role: 'navigation'\n },\n BreadcrumbList: {\n tag: 'ol' as NodeTag,\n className: 'ms-breadcrumb_list'\n },\n BreadcrumbListItem: {\n tag: 'li',\n className: 'ms-breadcrumb_item'\n },\n root: rootLink,\n links: breadcrumbLinks,\n backButton: backButtonComponent,\n separator: linkSeparator\n };\n return this.props.renderView(breadcrumbViewProps) as React.ReactElement;\n }\n\n private readonly _getRootLink = (): JSX.Element | null => {\n const { root } = this.props.config;\n if (!root || !root.linkUrl || !root.linkUrl.destinationUrl) {\n this.props.context.telemetry.error('BreadCrumb link url content is empty, link wont render');\n return null;\n }\n return (\n \n );\n };\n\n private readonly _getCustomBreadcrumbLinks = (itemPosition: number): JSX.Element[] | null => {\n const { links } = this.props.config;\n\n if (!links || links.length === 0) {\n this.props.context.telemetry.error('BreadCrumb links content is empty, links wont render');\n return null;\n }\n const defaultValueToSubtract = 1;\n return links.map((value: ILinksData, index: number) => {\n itemPosition++;\n const keyIndex = index;\n return index !== links.length - defaultValueToSubtract ? (\n \n ) : (\n
\n {value.linkText}\n
\n );\n });\n };\n\n private readonly _getCategoryHierarchy = (itemPosition: number): JSX.Element[] | null => {\n const { data } = this.props;\n const categoryHierarchy = data.categoryHierarchy.result;\n if (!categoryHierarchy) {\n this.props.context.telemetry.error('Category Hierarchy content is empty, module wont render');\n return null;\n }\n return categoryHierarchy.map((value: CategoryHierarchy, index: number) => {\n itemPosition++;\n\n const friendlyName = this._getFriendlyName(this.props.context.request.locale, value.NameTranslations);\n\n return (\n \n );\n });\n };\n\n /**\n * The function to get translation name for the locale.\n * @param locale - The locale information.\n * @param nameTranslations - The name translations names.\n * @returns - The translation name for the locale.\n */\n private readonly _getFriendlyName = (locale: string, nameTranslations?: TextValueTranslation[]): string | undefined => {\n let nameTranslation: TextValueTranslation | undefined;\n if (locale && nameTranslations && ArrayExtensions.hasElements(nameTranslations)) {\n nameTranslation = nameTranslations.find(item => item.Language!.toLowerCase() === locale.toLowerCase());\n }\n\n // If friendly name for current locale is null, should use default locale.\n if (nameTranslation === undefined && ArrayExtensions.hasElements(nameTranslations)) {\n nameTranslation = nameTranslations[0];\n }\n\n return nameTranslation?.Text;\n };\n\n private readonly _getPDPLinks = (itemPosition: number): JSX.Element[] | null => {\n const { data, config } = this.props;\n const categoryHierarchy = data.categoryPaths.result;\n const product = data.product.result;\n const url = this.props.context.request.url.requestUrl.href;\n if (!categoryHierarchy) {\n this.props.context.telemetry.error('Category path content is empty for the product');\n return null;\n }\n const links: JSX.Element[] = [];\n\n categoryHierarchy.map((value: ICategoryUrl, index: number) => {\n itemPosition++;\n links.push(\n \n );\n });\n if (product && !config.hideProductName) {\n itemPosition++;\n links.push(\n \n );\n }\n return links;\n };\n\n private readonly _goBack = (): void => {\n window.history.back();\n };\n\n private readonly _getPDPBackButton = (): JSX.Element | null => {\n const isBackAllowed =\n this.props.context && this.props.context.request && this.props.context.request.query && this.props.context.request.query.back;\n if (!isBackAllowed) {\n return null;\n }\n if (MsDyn365.isBrowser && (document.referrer === '' || window.history.length < 2)) {\n return null;\n }\n return (\n \n {this.props.resources.backToResultsText}\n \n );\n };\n}\n\nexport default Breadcrumb;\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 classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IBreadcrumbViewProps } from './breadcrumb';\n\nconst BreadCrumbView: React.FC = props => {\n const { root, links, backButton, BreadcrumbContainer, BreadcrumbList, BreadcrumbListItem, separator } = props;\n if (!root && !links && !backButton) {\n props.context.telemetry.error('BreadCrumb content is empty, module wont render');\n return null;\n }\n return (\n \n \n {root && (\n \n {root}\n {links && separator}\n \n )}\n {backButton && {backButton}}\n {links &&\n links.map((link, index) => (\n \n \n {link}\n {links[index + 1] && separator}\n \n \n ))}\n \n \n );\n};\n\nexport default BreadCrumbView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { PlaceholderForContainerPreviewComponent } from '@msdyn365-commerce/core';\n\nexport default PlaceholderForContainerPreviewComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\n// TODO: Current build require at least one tsx file\nexport default () =>
;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IBuyboxAddToCartViewProps,\n IBuyboxAddToOrderTemplateViewProps,\n IBuyboxAddToWishlistViewProps,\n IBuyboxCallbacks,\n IBuyboxData,\n IBuyboxFindInStoreViewProps,\n IBuyboxKeyInPriceViewProps,\n IBuyboxProductConfigureDropdownViewProps,\n IBuyboxProductConfigureViewProps,\n IBuyboxProductQuantityViewProps,\n IBuyboxProps,\n IBuyboxShopSimilarLookViewProps,\n IBuyboxState,\n IBuyboxViewProps\n} from '@msdyn365-commerce-modules/buybox';\nimport { IncrementalQuantity, ITelemetryContent, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IBuyboxProps as IBuyboxExtentionProps,\n IBuyboxResources as IBuyboxExtentionResources\n} from '../definition-extensions/buybox.ext.props.autogenerated';\n\nconst BuyboxView: React.FC> = props => {\n const {\n ModuleProps,\n MediaGalleryContainerProps,\n ProductInfoContainerProps,\n addToCart,\n addToOrderTemplate,\n addToWishlist,\n telemetryContent,\n configure,\n description,\n findInStore,\n quantity,\n price,\n title,\n rating,\n callbacks,\n state,\n resources,\n inventoryLabel,\n shopSimilarLook,\n keyInPrice,\n quantityLimitsMessages,\n min,\n max,\n applyDefaultOrderSettings,\n shopSimilarDescription,\n unitOfMeasure\n } = props;\n\n return (\n \n {props.mediaGallery}\n \n {title}\n {price}\n {unitOfMeasure}\n {props.bulkPurchaseLink}\n {description}\n {_renderTextBlock(props.slots.textBlocks)}\n {rating}\n {configure && _renderConfigure(configure)}\n {keyInPrice && _renderKeyInPrice(keyInPrice)}\n {quantity &&\n _renderQuantity(\n quantity,\n callbacks,\n props,\n state,\n resources,\n quantityLimitsMessages,\n min,\n max,\n applyDefaultOrderSettings,\n telemetryContent\n )}\n {inventoryLabel}\n {_renderCartAndActions(addToCart, addToOrderTemplate, addToWishlist)}\n {findInStore && _renderFindInStore(findInStore)}\n {_renderSocialShare(props.slots && props.slots.socialShare)}\n {shopSimilarLook && _renderShopSimilarItem(shopSimilarLook)}\n {shopSimilarDescription && _renderShopSimilarItem(shopSimilarDescription)}\n \n \n );\n};\n\nconst _renderTextBlock = (textBlocks: React.ReactNode[]): JSX.Element | undefined => {\n if (!textBlocks || textBlocks.length === 0) {\n return undefined;\n }\n\n return <>{textBlocks[0]};\n};\n\nconst _renderSocialShare = (socialShare: React.ReactNode[]): JSX.Element | undefined => {\n if (!socialShare || socialShare.length === 0) {\n return undefined;\n }\n\n return <>{socialShare[0]};\n};\n\nconst _renderCartAndActions = (\n addToCart?: IBuyboxAddToCartViewProps,\n addToOrderTemplate?: IBuyboxAddToOrderTemplateViewProps,\n addToWishlist?: IBuyboxAddToWishlistViewProps\n): JSX.Element | undefined => {\n if (!addToCart && !addToWishlist) {\n return undefined;\n }\n\n return (\n
\n {addToCart && addToCart.errorBlock}\n {addToOrderTemplate && addToOrderTemplate.errorBlock}\n {addToWishlist && addToWishlist.errorBlock}\n
\n {addToCart && addToCart.button}\n {addToOrderTemplate && addToOrderTemplate.button}\n {addToWishlist && addToWishlist.button}\n
\n
\n );\n};\n\nconst _renderConfigure = (configure: IBuyboxProductConfigureViewProps): JSX.Element => {\n const { ContainerProps, dropdowns } = configure;\n\n return {dropdowns.map(_renderConfigureDropdown)};\n};\n\nconst _renderConfigureDropdown = (dropdown: IBuyboxProductConfigureDropdownViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors, select } = dropdown;\n\n return (\n \n \n {heading}\n {errors}\n \n {select}\n \n );\n};\n\nconst _renderFindInStore = (findInStore: IBuyboxFindInStoreViewProps): JSX.Element => {\n const { ContainerProps, storeSelector, heading, description, errors, button, modal, productPickupOptionList } = findInStore;\n\n return (\n \n {storeSelector}\n {heading}\n {productPickupOptionList}\n {description}\n {errors}\n {button}\n {modal}\n \n );\n};\n\n/**\n * On Change function.\n * @param callbacks -Callbacks.\n * @returns Update quantity.\n */\nconst onChangeHandler = (callbacks: IBuyboxCallbacks) => (newValue: number): boolean => {\n if (callbacks.updateQuantity) {\n return callbacks.updateQuantity(newValue);\n }\n return true;\n};\n\nconst _renderQuantity = (\n quantityComponent: IBuyboxProductQuantityViewProps,\n callbacks: IBuyboxCallbacks,\n props: IBuyboxProps,\n state: IBuyboxState,\n extentionResources: IBuyboxExtentionResources,\n quantityLimitsMessages: React.ReactNode,\n min: number | undefined,\n max: number | undefined,\n applyDefaultOrderSettings?: boolean,\n telemetryContent?: ITelemetryContent\n): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors } = quantityComponent;\n\n const { resources } = props;\n\n const { quantity } = state;\n\n return (\n \n \n {heading}\n {errors}\n \n\n \n {quantityLimitsMessages}\n \n );\n};\n\nconst _renderKeyInPrice = (keyInPrice: IBuyboxKeyInPriceViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, input } = keyInPrice;\n\n return (\n \n {heading}\n {input}\n \n );\n};\n\nconst _renderShopSimilarItem = (shopSimilarItem: IBuyboxShopSimilarLookViewProps): JSX.Element => {\n const { ContainerProps, errors, input } = shopSimilarItem;\n\n return (\n \n {errors}\n {input}\n \n );\n};\n\nexport default BuyboxView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { BackToTop, getTelemetryObject, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBackTopFooterProps } from './back-top-footer.props.autogenerated';\n\n/**\n *\n * BackTopFooter component.\n * @extends {React.PureComponent>}\n */\nclass BackTopFooter extends React.PureComponent> {\n private readonly editProps: Msdyn365.ITextEditProps = {\n requestContext: this.props.context.request,\n onEdit: (event: Msdyn365.ContentEditableEvent) => (this.props.config.backtoTopText = event.target.value)\n };\n\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IBackTopFooterProps<{}>) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element | null {\n if (!this.props.config.destination) {\n this.props.telemetry.error('BackToTop.destination has not been provided, module wont render.');\n return null;\n }\n\n return (\n \n );\n }\n}\n\nexport default BackTopFooter;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IFooterCategoryConfig, IFooterCategoryProps } from './footer-category.props.autogenerated';\n\nexport interface IFooterCategoryViewProps extends IFooterCategoryProps {\n categories: React.ReactNode[];\n FooterList: IModuleProps;\n FooterListItem: INodeProps;\n}\n\n/**\n *\n * FooterCategory component.\n * @extends {React.PureComponent>}\n */\nclass FooterCategory extends React.PureComponent> {\n public render(): JSX.Element | null {\n if (!this.props.slots || !this.props.slots.content || this.props.slots.content.length === 0) {\n this.props.context.telemetry.error('footer slots content is empty, module wont render');\n return null;\n }\n const viewprops = {\n ...this.props,\n categories: this.props.slots.content,\n FooterList: {\n moduleProps: this.props,\n className: classnames('ms-footer__list', this.props.config.className),\n tag: 'ul'\n },\n FooterListItem: {\n className: classnames('ms-footer__list-item', this.props.config.className),\n tag: 'li'\n }\n };\n\n return this.props.renderView(viewprops) as React.ReactElement;\n }\n}\n\nexport default FooterCategory;\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 { IFooterCategoryViewProps } from './footer-category';\n\nexport const FooterCategoryView: React.FC = props => {\n const { categories, FooterList, FooterListItem } = props;\n if (!categories || categories.length === 0) {\n props.context.telemetry.error('Footer content is empty, module wont render');\n return null;\n }\n return (\n \n {categories.map((category: ReactNode, index: number) => {\n return (\n \n {category}\n \n );\n })}\n \n );\n};\n\nexport default FooterCategoryView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\n// TODO: Current build require at least one tsx file\nexport default () =>
;\n","/*!\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 { Button, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ISubscribeConfig, ISubscribeProps } from './subscribe.props.autogenerated';\n\n/**\n * Subscribe view props.\n */\nexport interface ISubscribeViewProps extends ISubscribeProps {\n subscribe: IModuleProps;\n subscribeContainer: INodeProps;\n heading: React.ReactNode;\n text: React.ReactNode;\n submitButton?: INodeProps;\n submitButtonLabelText?: string;\n subscribeForm?: INodeProps;\n emailInput?: INodeProps;\n handleText(): void;\n}\n\n/**\n * Subscribe component.\n * @extends {React.PureComponent>}\n */\nexport class Subscribe extends React.PureComponent> {\n private readonly _emailAddressInputRef: React.RefObject;\n\n public constructor(props: ISubscribeViewProps) {\n super(props);\n this._emailAddressInputRef = React.createRef();\n }\n\n public render(): JSX.Element | null {\n const { heading, paragraph } = this.props.config;\n\n const moduleClassName = 'ms-subscribe';\n\n const subscribeParagraph = paragraph && (\n \n );\n\n const subscribeHeading = heading && (\n \n );\n const viewProps = {\n ...this.props,\n handleText: this.handleTextChange,\n subscribe: {\n moduleProps: this.props,\n className: moduleClassName\n },\n subscribeContainer: {\n className: 'ms-subscribe__details'\n },\n heading: subscribeHeading,\n text: subscribeParagraph,\n subscribeForm: {\n className: 'ms-subscribe__details__form',\n tag: 'form',\n 'aria-label': this.props.resources.subscribeFormAriaLabel,\n name: 'subscribeForm',\n role: 'form',\n autoComplete: 'off'\n },\n emailInput: {\n className: 'ms-subscribe__details__form__email',\n tag: 'input',\n ref: this._emailAddressInputRef,\n type: 'email',\n 'aria-label': this.props.resources.subscribeFormEmailAriaLabel,\n placeholder: this.props.resources.subscribeEmailPlaceholderText\n },\n submitButton: {\n className: 'ms-subscribe__details__form__submit',\n tag: Button,\n 'aria-label': this.props.resources.subscribeFormSubmitAriaLabel,\n type: 'submit',\n title: this.props.resources.subscribeButtonLabel\n },\n submitButtonLabelText: this.props.resources.subscribeButtonLabel\n };\n\n return this.props.renderView(viewProps);\n }\n\n /**\n * Handle text change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleTextChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handle paragraph change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n}\n\nexport default Subscribe;\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 { ISubscribeViewProps } from './subscribe';\n\n/**\n * Override form action and button action below.\n * @param event - The form event.\n */\nconst onSubmit = (event: React.FormEvent): void => {\n event.preventDefault();\n};\n\n/**\n * View component.\n * @param props - The view properties.\n * @returns - Returns nothing.\n */\nexport const subscribeView: React.FC = props => {\n const { subscribe, subscribeContainer, heading, text, subscribeForm, emailInput, submitButton } = props;\n return (\n \n \n {heading}\n {text}\n \n \n \n {props.submitButtonLabelText}\n \n \n \n \n );\n};\n\nexport default subscribeView;\n"],"names":["DynWordpressFeatured","React","render","dynWordpressPostsProps","this","props","renderView","data","wpPosts","result","edges","map","post","className","key","node","guid","alt","title","src","featuredImage","sourceUrl","height","width","dangerouslySetInnerHTML","Msdyn365","excerpt","role","href","config","blogUrl","slug","target","rel","PunchoutAccessCxml","constructor","state","super","isConnecting","hasFailed","readQueryCXML","requestQuery","context","request","query","sessionObjectEncoded","decodeURIComponent","sessionid","sessionObjectDecoded","atob","sessionId","JSON","parse","username","password","sharedSecret","buyerCookie","hookUrl","fromCredentialDomain","fromCredentialIdentity","toCredentialDomain","toCredentialIdentity","search","window","sessionStorage","setItem","removeItem","homeLink","actionContext","country","sitePath","replace","punchoutCurrency","substring","B2CToken","webApiUrl","urlAzureFn","keyAzureFn","webApiBody","Localization","Format","fetch","method","headers","body","stringify","then","response","json","token","access_token","mode","credentials","Authorization","setState","location","assign","catch","error","console","log","punchoutAccessCxmlViewProps","viewProps","showText","Link","text","ariaLabel","index","noclick","telemetryContent","payLoad","getPayloadObject","linkText","undefined","contentAction","etext","attribute","getTelemetryAttributes","onClick","onTelemetryClick","itemProp","content","Separator","separator","Breadcrumb","_pageType","urlTokens","pageType","getTelemetryObject","telemetryPageName","friendlyName","telemetry","_getRootLink","root","linkUrl","destinationUrl","_getCustomBreadcrumbLinks","itemPosition","links","length","value","keyIndex","toString","_getCategoryHierarchy","categoryHierarchy","_getFriendlyName","locale","NameTranslations","Url","nameTranslations","nameTranslation","ArrayExtensions","find","item","Language","toLowerCase","Text","_getPDPLinks","categoryPaths","product","url","requestUrl","push","Name","hideProductName","_goBack","history","back","_getPDPBackButton","MsDyn365","document","referrer","resources","backToResultsText","rootLink","breadcrumbLinks","backButtonComponent","breaCrumbType","app","breadcrumbType","linkSeparator","breadcrumbViewProps","BreadcrumbContainer","moduleProps","classnames","tag","BreadcrumbList","BreadcrumbListItem","backButton","Module","Object","Node","link","_renderTextBlock","textBlocks","_renderSocialShare","socialShare","_renderCartAndActions","addToCart","addToOrderTemplate","addToWishlist","errorBlock","button","_renderConfigure","configure","ContainerProps","dropdowns","_renderConfigureDropdown","dropdown","LabelContainerProps","heading","errors","select","_renderFindInStore","findInStore","storeSelector","description","modal","productPickupOptionList","onChangeHandler","callbacks","newValue","updateQuantity","_renderQuantity","quantityComponent","extentionResources","quantityLimitsMessages","min","max","applyDefaultOrderSettings","quantity","IncrementalQuantity","id","currentCount","onChange","inputQuantityAriaLabel","decrementButtonAriaLabel","incrementButtonAriaLabel","minQuantityText","maxQuantityText","_renderKeyInPrice","keyInPrice","input","_renderShopSimilarItem","shopSimilarItem","ModuleProps","MediaGalleryContainerProps","ProductInfoContainerProps","price","rating","inventoryLabel","shopSimilarLook","shopSimilarDescription","unitOfMeasure","mediaGallery","bulkPurchaseLink","slots","BackTopFooter","editProps","requestContext","onEdit","event","backtoTopText","destination","BackToTop","FooterCategory","viewprops","categories","FooterList","FooterListItem","FooterCategoryView","category","Subscribe","handleTextChange","handleParagraphChange","paragraph","_emailAddressInputRef","subscribeParagraph","subscribeHeading","handleText","subscribe","subscribeContainer","subscribeForm","subscribeFormAriaLabel","name","autoComplete","emailInput","ref","type","subscribeFormEmailAriaLabel","placeholder","subscribeEmailPlaceholderText","submitButton","Button","subscribeFormSubmitAriaLabel","subscribeButtonLabel","submitButtonLabelText","onSubmit","preventDefault","subscribeView"],"sourceRoot":""}