{"version":3,"file":"static/js/15.6d250fe00138ceadfbda.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/dyn-bioz-micro-badge-v1/dyn-bioz-micro-badge-v1.tsx?502a","webpack://Msdyn365.Commerce.Online/./src/modules/dyn-bioz-micro-badge-v1/dyn-bioz-micro-badge-v1.view.tsx?e7d6","webpack://Msdyn365.Commerce.Online/./src/modules/dyn-d365-marketing/dyn-d365-marketing.tsx?2efc","webpack://Msdyn365.Commerce.Online/./src/modules/dyn-d365-marketing/dyn-d365-marketing.view.tsx?0dff","webpack://Msdyn365.Commerce.Online/./src/modules/dyn-wordpress-page/dyn-wordpress-page.tsx?c283","webpack://Msdyn365.Commerce.Online/./src/modules/dyn-wordpress-page/dyn-wordpress-page.view.tsx?6a0f","webpack://Msdyn365.Commerce.Online/./src/modules/business-partner-promotion/components/terms-paragraph.tsx?1a9a","webpack://Msdyn365.Commerce.Online/./src/modules/business-partner-promotion/business-partner-promotion.tsx?df24","webpack://Msdyn365.Commerce.Online/./src/modules/business-partner-promotion/business-partner-promotion.view.tsx?1ff2","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/search-result-container.view.tsx?89df","webpack://Msdyn365.Commerce.Online/./src/modules/html-block/html-block.tsx?c080","webpack://Msdyn365.Commerce.Online/./src/modules/html-block/html-block.view.tsx?b072","webpack://Msdyn365.Commerce.Online/./src/modules/product-page-summary/product-page-summary.tsx?2924"],"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 { IDynBiozMicroBadgeV1Data } from './dyn-bioz-micro-badge-v1.data';\r\nimport { IDynBiozMicroBadgeV1Props } from './dyn-bioz-micro-badge-v1.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 IDynBiozMicroBadgeV1ViewProps extends IDynBiozMicroBadgeV1Props {\r\n catalogNumber?: string;\r\n}\r\n\r\n/**\r\n *\r\n * DynBiozMicroBadgeV1 component\r\n * @extends {React.PureComponent>}\r\n */\r\n@observer\r\nclass DynBiozMicroBadgeV1 extends React.PureComponent> {\r\n public constructor(props: IDynBiozMicroBadgeV1Props) {\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: IDynBiozMicroBadgeV1Props): 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 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 DynBiozMicroBadgeV1;\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 { IDynBiozMicroBadgeV1ViewProps } from './dyn-bioz-micro-badge-v1';\r\n\r\nexport const useScriptDynBiozMicroBadgeV1 = (catalogNumberFormatted: string, position: string) => {\r\n React.useEffect(() => {\r\n // Adding the CSS link\r\n const cssLink1: HTMLLinkElement = document.createElement('link');\r\n cssLink1.rel = 'stylesheet';\r\n cssLink1.href = 'https://cdn.bioz.com/assets/font-awesome-reg.css';\r\n document.head.appendChild(cssLink1);\r\n\r\n const cssLink2: HTMLLinkElement = document.createElement('link');\r\n cssLink2.rel = 'stylesheet';\r\n cssLink2.href = 'https://cdn.bioz.com/assets/tooltipster.css';\r\n document.head.appendChild(cssLink2);\r\n\r\n const cssLink3: HTMLLinkElement = document.createElement('link');\r\n cssLink3.rel = 'stylesheet';\r\n cssLink3.href = 'https://cdn.bioz.com/assets/tooltipster-theme2.css';\r\n document.head.appendChild(cssLink3);\r\n\r\n const cssLink4: HTMLLinkElement = document.createElement('link');\r\n cssLink4.rel = 'stylesheet';\r\n cssLink4.href = 'https://cdn.bioz.com/assets/v_widget-2.5.css';\r\n document.head.appendChild(cssLink4);\r\n\r\n // Scripts\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 script1: HTMLScriptElement = document.createElement('script');\r\n script1.src = 'https://cdn.bioz.com/assets/bioz-w-api-2.5.min.js';\r\n\r\n const script2: HTMLScriptElement = document.createElement('script');\r\n script2.src = 'https://cdn.bioz.com/assets/v_widget-2.5.tebubio.js';\r\n\r\n const script3: HTMLScriptElement = document.createElement('script');\r\n script3.src = 'https://cdn.bioz.com/assets/tooltipster.js';\r\n\r\n const inlineScript: HTMLScriptElement = document.createElement('script');\r\n inlineScript.innerHTML = `\r\n var _type = \"commercial\";\r\n var _company = \"19338\";\r\n var _vendor = \"tebu-bio sa\";\r\n var _vendor_partner_color = \"#0F37AF\";\r\n var _form_url = \"https://back-badge-8.bioz.com\";\r\n var _key = \"\";\r\n var _form_mobile = false;\r\n `;\r\n\r\n // Promises to ensure scripts are loaded\r\n const promiseJQuery = new Promise(resolve => {\r\n scriptJQuery.addEventListener('load', resolve);\r\n });\r\n\r\n // Last script to be loaded\r\n const addInlineScript2 = () => {\r\n const inlineScript2: HTMLScriptElement = document.createElement('script');\r\n inlineScript2.innerHTML = `\r\n var widget_micro_obj = new v_widget_obj(\"s\", 1);\r\n widget_micro_obj.request_catalog_number_widget_data_internal(\"${catalogNumberFormatted}\", \"${catalogNumberFormatted}\");\r\n `;\r\n document.body.appendChild(inlineScript2);\r\n };\r\n\r\n document.head.appendChild(scriptJQuery);\r\n\r\n // Once scriptJQuery is loaded\r\n promiseJQuery\r\n .then(() => {\r\n document.head.appendChild(script1);\r\n document.head.appendChild(script3);\r\n document.body.appendChild(inlineScript);\r\n\r\n // Load script2 after jQuery and wait for script 2 is fully loded\r\n return new Promise(resolve => {\r\n script2.addEventListener('load', resolve);\r\n document.body.appendChild(script2);\r\n });\r\n })\r\n .then(addInlineScript2); // Once script2 is loaded, add the inlineScript2;\r\n\r\n return () => {\r\n document.head.removeChild(scriptJQuery);\r\n document.head.removeChild(cssLink1);\r\n document.head.removeChild(cssLink2);\r\n document.head.removeChild(cssLink3);\r\n document.head.removeChild(script1);\r\n document.head.removeChild(cssLink4);\r\n document.head.removeChild(script2);\r\n document.head.removeChild(script3);\r\n document.body.removeChild(inlineScript);\r\n };\r\n }, []);\r\n};\r\n\r\nexport default (props: IDynBiozMicroBadgeV1ViewProps) => {\r\n const { catalogNumber } = props;\r\n const catalogNumberFormatted = catalogNumber?.replace(/[ .]/g, '_');\r\n const biozBlock = catalogNumberFormatted ? (\r\n <>\r\n
\r\n
Specification
\r\n
\r\n
\r\n
\r\n \r\n Powered by Bioz\r\n \r\n
\r\n
\r\n
\r\n {useScriptDynBiozMicroBadgeV1(catalogNumberFormatted ?? '', 'wrapper-bioz-title')}\r\n \r\n ) : (\r\n
Specification
\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 { IDynD365MarketingData } from './dyn-d365-marketing.data';\r\nimport { IDynD365MarketingProps } from './dyn-d365-marketing.props.autogenerated';\r\n\r\nexport interface IDynD365MarketingViewProps extends IDynD365MarketingProps {}\r\n\r\n/**\r\n *\r\n * DynD365Marketing component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass DynD365Marketing 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 DynD365Marketing;\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 { IDynD365MarketingViewProps } from './dyn-d365-marketing';\r\n\r\nexport const useScriptD365 = (props: IDynD365MarketingViewProps, position: string) => {\r\n React.useEffect(() => {\r\n const placement: Element | null = document.querySelector(position);\r\n\r\n const primaryDiv: HTMLDivElement = document.createElement('div');\r\n primaryDiv.id = props.config.primaryDivId;\r\n\r\n const script: HTMLScriptElement = document.createElement('script');\r\n script.src = props.config.scriptUrl;\r\n\r\n const secondaryDiv: HTMLDivElement = document.createElement('div');\r\n secondaryDiv.className = props.config.class;\r\n secondaryDiv.setAttribute('data-website-id', props.config.dataWebsiteId);\r\n secondaryDiv.setAttribute('data-hostname', props.config.dataHostname);\r\n\r\n placement?.appendChild(primaryDiv);\r\n placement?.appendChild(script);\r\n placement?.appendChild(secondaryDiv);\r\n\r\n return () => {\r\n placement?.removeChild(primaryDiv);\r\n placement?.removeChild(script);\r\n placement?.removeChild(secondaryDiv);\r\n };\r\n });\r\n};\r\n\r\nexport default (props: IDynD365MarketingViewProps) => {\r\n return <>{props.config.scriptUrl && useScriptD365(props, 'body')};\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 { IDynWordpressPageData } from './dyn-wordpress-page.data';\r\nimport { IDynWordpressPageProps } from './dyn-wordpress-page.props.autogenerated';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\nexport interface IDynWordpressPageViewProps extends IDynWordpressPageProps {\r\n postNodes: React.ReactNode;\r\n}\r\n\r\nexport interface PageGQL {\r\n content: string;\r\n date: Date;\r\n slug: string;\r\n title: string;\r\n status: string;\r\n databaseId: number;\r\n}\r\n\r\nexport interface SeoPressData {\r\n title: string;\r\n description: string;\r\n canonical: string;\r\n og: {\r\n title: string;\r\n description: string;\r\n image: string;\r\n };\r\n twitter: {\r\n title: string;\r\n description: string;\r\n image: string;\r\n };\r\n robots: {\r\n noindex: boolean;\r\n nofollow: boolean;\r\n noodp: boolean;\r\n noarchive: boolean;\r\n nosnippet: boolean;\r\n noimageindex: boolean;\r\n };\r\n redirections: {\r\n enabled: boolean;\r\n status: string;\r\n type: number;\r\n value: string;\r\n };\r\n}\r\n\r\nexport interface PageGQLWithSeo {\r\n post: PageGQL | null;\r\n seo: SeoPressData | null;\r\n}\r\n\r\n/**\r\n *\r\n * DynWordpressPost component\r\n * @extends {React.PureComponent>}\r\n */\r\n\r\nclass DynWordpressPage extends React.PureComponent> {\r\n public _getpostNodes(): React.ReactNode | undefined {\r\n return (\r\n
\r\n {/*\r\n // WP REST API\r\n this.props.data.wpPost.result?.title.rendered\r\n // WP GRAPHQL\r\n this.props.data.wpPost.result?.title\r\n */}\r\n
\r\n \r\n );\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const dynWordpressPostProps: IDynWordpressPageViewProps = {\r\n ...this.props,\r\n postNodes: this._getpostNodes()\r\n };\r\n\r\n return this.props.renderView(dynWordpressPostProps);\r\n }\r\n}\r\n\r\nexport default DynWordpressPage;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n// import { HtmlHeadInclude } from '@msdyn365-commerce/core-internal';\r\nimport * as React from 'react';\r\nimport { IDynWordpressPageViewProps } from './dyn-wordpress-page';\r\n\r\n// First string is your URL\r\n// Second string can be head or body\r\n// Third parameter is true or false.\r\nexport const useScript = (url: string, position: string, async: boolean) => {\r\n React.useEffect(() => {\r\n const placement: Element | null = document.querySelector(position);\r\n const script: HTMLScriptElement = document.createElement('script');\r\n\r\n script.src = url;\r\n script.async = typeof async === 'undefined' ? false : async;\r\n\r\n placement?.appendChild(script);\r\n\r\n return () => {\r\n placement?.removeChild(script);\r\n };\r\n });\r\n};\r\n\r\nexport const useMetaLink = (rel: string, media: string, href: string) => {\r\n React.useEffect(() => {\r\n const placement: Element | null = document.querySelector('head');\r\n const link = document.createElement('link');\r\n\r\n link.setAttribute('rel', rel);\r\n link.setAttribute('media', media);\r\n link.setAttribute('href', href);\r\n\r\n placement?.appendChild(link);\r\n\r\n return () => {\r\n placement?.removeChild(link);\r\n };\r\n });\r\n};\r\n\r\nexport default (props: IDynWordpressPageViewProps) => {\r\n const { postNodes, data } = props;\r\n\r\n return (\r\n <>\r\n {data.wpPost.result?.post?.databaseId &&\r\n useMetaLink(\r\n 'stylesheet',\r\n 'all',\r\n `${props.config.blogUrl}/wp-content/uploads/elementor/css/post-${data.wpPost.result?.post?.databaseId}.css`\r\n )}\r\n {/* \r\n {data.wpPost.result?.post?.databaseId && (\r\n \r\n )}\r\n */}\r\n {postNodes}\r\n \r\n );\r\n};\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IBusinessPartnerPromotionTermsParagraphProp {\n description: string;\n className: string;\n title?: string;\n titleClassName?: string;\n}\n\nexport const BusinessPartnerPromotionTermsParagraph: React.FC = ({\n title,\n description,\n className,\n titleClassName\n}) => {\n return (\n
  • \n {title &&

    {title}

    }\n

    {description}

    \n
  • \n );\n};\n\nexport default BusinessPartnerPromotionTermsParagraph;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport * as MsDyn365 from '@msdyn365-commerce/core';\nimport { Button, Alert, IModuleProps, Modal, ModalBody, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport { promoteToSellerAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/BusinessPartnersDataActions.g';\nimport { BusinessPartnerUser } from '@msdyn365-commerce/retail-proxy';\nimport { ObjectExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Text } from '@msdyn365-commerce/core';\nimport { IBusinessPartnerPromotionData } from './business-partner-promotion.data';\nimport { IBusinessPartnerPromotionProps } from './business-partner-promotion.props.autogenerated';\nimport { BusinessPartnerPromotionTermsParagraph } from './components';\n\nexport interface IBusinessPartnerPromotionViewProps extends IBusinessPartnerPromotionProps {\n businessPartnerPromotionProps: IModuleProps;\n heading: React.ReactNode;\n notificationMessage?: React.ReactNode;\n sellerDescriptions: React.ReactNode[];\n termsOfServiceCheckbox: React.ReactNode;\n termsOfServiceModal: React.ReactNode;\n submitButton: React.ReactNode;\n}\n\nexport interface IBusinessPartnerPromotionState {\n showTermsOfService: boolean;\n showSubmitButton: boolean;\n termsOfServiceChecked: boolean;\n termsOfServiceModalOpened: boolean;\n errorMessage?: string;\n notificationMessage?: string;\n}\n\n/**\n * The class name root for the module.\n */\nexport const moduleClassName: string = 'ms-business-partner-promotion';\n\n/**\n *\n * BusinessPartnerPromotion component\n * @extends {React.PureComponent>}\n */\nclass BusinessPartnerPromotion extends React.Component<\n IBusinessPartnerPromotionProps,\n IBusinessPartnerPromotionState\n> {\n constructor(props: IBusinessPartnerPromotionProps) {\n super(props);\n this.state = {\n showTermsOfService: true,\n showSubmitButton: true,\n termsOfServiceChecked: false,\n termsOfServiceModalOpened: false,\n errorMessage: undefined,\n notificationMessage: undefined\n };\n }\n\n public render(): JSX.Element | null {\n const {\n showSubmitButton,\n showTermsOfService,\n termsOfServiceChecked,\n termsOfServiceModalOpened,\n errorMessage,\n notificationMessage\n } = this.state;\n const { resources, data, config } = this.props;\n const { heading, termsOfService } = config;\n const { authorizationErrorMessage } = resources;\n const { b2bUserInformation } = data;\n const canSubmit = this.isAdminUser(b2bUserInformation.result);\n let error: string | undefined = errorMessage;\n\n // do not show error message when the API is still in loading.\n if (!canSubmit && b2bUserInformation.status !== 'LOADING') {\n error = authorizationErrorMessage;\n }\n const btnEnabled = canSubmit && termsOfServiceChecked;\n\n const viewProps: IBusinessPartnerPromotionViewProps = {\n ...this.props,\n businessPartnerPromotionProps: {\n moduleProps: this.props,\n className: classnames(moduleClassName, moduleClassName)\n },\n heading: ,\n notificationMessage: this.renderNotificationBar(error, notificationMessage),\n sellerDescriptions: this.renderSellerDescriptions(),\n termsOfServiceCheckbox: showTermsOfService && (\n
    \n \n {resources.termsOfServiceAgreementText}\n \n {resources.termsOfServiceLinkText}\n \n
    \n ),\n termsOfServiceModal: (\n \n {resources.termsOfServiceModalHeading}\n \n \n \n \n ),\n submitButton: showSubmitButton && (\n
    \n \n {resources.submitRequestLabel}\n \n
    \n )\n };\n\n return this.props.renderView(viewProps);\n }\n\n private renderNotificationBar(errorMessage: string | undefined, notificationMessage: string | undefined): React.ReactNode {\n let notificationBar: React.ReactNode = null;\n if (errorMessage) {\n notificationBar = {errorMessage};\n } else if (notificationMessage) {\n notificationBar = {notificationMessage};\n }\n return notificationBar;\n }\n\n private renderSellerDescriptions(): React.ReactNode[] {\n const { config } = this.props;\n const results: React.ReactNode[] = [];\n const sellerDescriptions = config.sellerDescriptions;\n\n if (!sellerDescriptions) {\n return results;\n }\n\n return sellerDescriptions.map((description, idx1) => {\n return (\n
    \n \n
      \n {description.bulletPoints?.map((bulletPoint, idx2) => {\n return (\n \n );\n })}\n
    \n
    \n );\n });\n }\n\n private isAdminUser(user: BusinessPartnerUser | undefined): boolean {\n return (\n !ObjectExtensions.isNullOrUndefined(user) && !StringExtensions.isNullOrEmpty(user.BusinessPartnerId) && user.IsAdmin === true\n );\n }\n\n private readonly onCheckBoxChange = (event: React.ChangeEvent) => {\n this.setState({\n termsOfServiceChecked: event.target.checked\n });\n };\n\n private readonly onToggleTermOfServiceModal = () => {\n this.setState({\n termsOfServiceModalOpened: !this.state.termsOfServiceModalOpened\n });\n };\n\n private readonly onSubmit = async (event: React.MouseEvent) => {\n const { context, data, resources } = this.props;\n const { errorMessageText, promoteToSellerSubmitSuccessMessage } = resources;\n const businessPartnerId = data.b2bUserInformation.result?.BusinessPartnerId ?? '';\n\n try {\n await promoteToSellerAsync({ callerContext: context.actionContext }, businessPartnerId);\n this.setState({\n showSubmitButton: false,\n showTermsOfService: false,\n errorMessage: undefined,\n notificationMessage: promoteToSellerSubmitSuccessMessage\n });\n } catch {\n this.setState({\n showTermsOfService: true,\n showSubmitButton: true,\n errorMessage: errorMessageText,\n notificationMessage: undefined\n });\n }\n };\n}\n\nexport default BusinessPartnerPromotion;\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 { IBusinessPartnerPromotionViewProps } from './business-partner-promotion';\n\n/**\n * View layout of business partner promotion module.\n * @param props - React props of the component.\n * @returns Functional component.\n */\nconst businessPartnersView: React.FC = props => {\n const {\n businessPartnerPromotionProps,\n heading,\n notificationMessage,\n sellerDescriptions,\n termsOfServiceCheckbox,\n termsOfServiceModal,\n submitButton\n } = props;\n return (\n \n {heading}\n {notificationMessage}\n {sellerDescriptions}\n {termsOfServiceCheckbox}\n {termsOfServiceModal}\n {submitButton}\n \n );\n};\n\nexport default businessPartnersView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n ICategoryHierarchyViewProps,\n IRefineMenuViewProps,\n ISearchResultContainerViewProps,\n ISearchResultModalViewProps,\n ISortByViewProps,\n ITitleViewProps\n} from '@msdyn365-commerce-modules/search-result-container';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst SearchResultContainerView: React.FC = props => {\n const {\n SearchResultContainer,\n products,\n pagination,\n ProductsContainer,\n ProductSectionContainer,\n choiceSummary,\n isMobile,\n modalToggle,\n searchResultModal,\n TitleViewProps,\n refineMenu,\n categoryHierarchy,\n sortByOptions,\n CategoryNavContainer,\n RefineAndProductSectionContainer,\n errorMessage,\n FeatureSearchContainer,\n similarLookProduct\n } = props;\n const isRecoSearchPage = props.context.actionContext.requestContext.query?.recommendation;\n if (isMobile) {\n return (\n \n {categoryHierarchy && renderCategoryHierarchy(categoryHierarchy)}\n {renderTitle(TitleViewProps)}\n {choiceSummary}\n {modalToggle}\n {createSearchResultModal(searchResultModal, refineMenu, sortByOptions, isRecoSearchPage)}\n {similarLookProduct}\n \n {errorMessage}\n {products}\n \n {pagination}\n \n );\n }\n return (\n \n {categoryHierarchy && {renderCategoryHierarchy(categoryHierarchy)}}\n \n {refineMenu && renderRefiner(refineMenu)}\n \n {similarLookProduct}\n
    \n {TitleViewProps && renderTitle(TitleViewProps)}\n {choiceSummary}\n
    \n
    \n {sortByOptions && !isRecoSearchPage && renderSort(sortByOptions)}\n
    \n \n {errorMessage}\n {products}\n \n {pagination}\n
    \n
    \n
    \n );\n};\n\nconst createSearchResultModal = (\n modalProps: ISearchResultModalViewProps,\n refineMenu: IRefineMenuViewProps,\n sortByDropDown: ISortByViewProps,\n isRecoSearchPage?: string\n): JSX.Element => {\n return React.cloneElement(\n modalProps.modal,\n {},\n modalProps.modalHeader,\n createModalBody(modalProps, refineMenu, sortByDropDown, isRecoSearchPage),\n modalProps.modalFooter\n );\n};\n\nconst createModalBody = (\n props: ISearchResultModalViewProps,\n refineMenu: IRefineMenuViewProps,\n sortByDropDown: ISortByViewProps,\n isRecoSearchPage?: string\n): JSX.Element | null => {\n if (sortByDropDown) {\n return React.cloneElement(props.modalBody, {}, renderSort(sortByDropDown, isRecoSearchPage), renderRefiner(refineMenu));\n }\n return null;\n};\n\nconst renderRefiner = (props: IRefineMenuViewProps): JSX.Element | null => {\n const { refiners, RefineMenuContainer, RefinerSectionContainer } = props;\n if (refiners) {\n return (\n \n \n {refiners.map((submenu, index) => (\n {submenu}\n ))}\n \n \n );\n }\n return null;\n};\n\nconst renderSort = (props: ISortByViewProps, isRecoSearchPage?: string): JSX.Element | null => {\n const { SortingContainer, sortByDropDown } = props;\n if (sortByDropDown && !isRecoSearchPage) {\n return {sortByDropDown};\n }\n return null;\n};\n\nconst renderCategoryHierarchy = (props: ICategoryHierarchyViewProps): JSX.Element | null => {\n const { CategoryHierarchyContainer, categoryHierarchyList, categoryHierarchySeparator } = props;\n if (categoryHierarchyList) {\n return (\n \n {categoryHierarchyList.map((category, index) => (\n \n {category}\n {categoryHierarchyList && categoryHierarchyList[index + 1] && categoryHierarchySeparator}\n \n ))}\n \n );\n }\n\n return null;\n};\n\nconst renderTitle = (props: ITitleViewProps): JSX.Element | null => {\n const { title, TitleContainer } = props;\n if (title) {\n return (\n \n

    \n {title.titlePrefix}\n {title.titleText}({title.titleCount})\n

    \n
    \n );\n }\n return null;\n};\n\nexport default SearchResultContainerView;\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';\nimport * as MsDyn365 from '@msdyn365-commerce/core';\nimport classnames from 'classnames';\n\nimport { IHtmlBlockProps } from './html-block.props.autogenerated';\n\nexport interface IHtmlBlockViewProps extends IHtmlBlockProps<{}> {\n content?: React.ReactNode;\n className?: string;\n}\n\n/**\n *\n * HtmlBlock component\n * @extends {React.PureComponent>}\n */\nclass HtmlBlock extends React.PureComponent> {\n public render(): JSX.Element | null {\n const { content, className } = this.props.config;\n const text = content && (\n \n );\n const htmlBlockViewProps = {\n ...this.props,\n content: text,\n className: classnames('ms-html-block', className)\n };\n return this.props.renderView(htmlBlockViewProps) as React.ReactElement;\n }\n\n public handleTextChange = (event: MsDyn365.ContentEditableEvent) => (this.props.config.content = event.target.value);\n}\n\nexport default HtmlBlock;\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';\nimport { IHtmlBlockViewProps } from './html-block';\n\nconst HtmlBlockView: React.FC = props => (\n
    \n {props.content}\n
    \n);\n\nexport default HtmlBlockView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { HtmlHeadInclude, IAny, IGeneric } from '@msdyn365-commerce/core';\nimport * as React from 'react';\n\nimport { IProductPageSummaryData } from './product-page-summary.data';\nimport { IProductPageSummaryProps } from './product-page-summary.props.autogenerated';\n\n/**\n *\n * ProductPageSummary component.\n * @extends {React.PureComponent}\n */\nclass ProductPageSummary extends React.PureComponent> {\n public render(): JSX.Element {\n if (this.props.data.productPageSummary.result === undefined) {\n throw new Error('PageSummaryData input to page-summary is undefined. Unable to generate page-summary');\n }\n let {\n data: {\n productPageSummary: {\n result: { title, description, keywords, sharingImageUrl, faviconUrl }\n }\n }\n } = this.props;\n\n const {\n config,\n context,\n data: {\n productPageSummary: {\n result: { canonicalUrl, productId, productBrand, price }\n }\n }\n } = this.props;\n\n // Product SEO metadata specific information - non-overridable\n const productName = title;\n const productDescription = description;\n const productImageUrl = sharingImageUrl;\n\n // Override values coming from data action if config values are provided\n title = config.title || title;\n description = config.description || description;\n keywords = config.keywords || keywords;\n sharingImageUrl = (config.sharingImage && config.sharingImage.src) || sharingImageUrl;\n faviconUrl = config.faviconUrl || faviconUrl;\n\n // Construct page title with suffix and prefix if provided from app settings\n const pageTitle = this._constructPageTitle(title, context && context.request && context.request.app);\n return (\n <>\n \n {pageTitle && {pageTitle}}\n {description && }\n {keywords && }\n {canonicalUrl && }\n {faviconUrl && }\n \n {this._renderProductMetadata(\n productName,\n productDescription,\n productImageUrl,\n canonicalUrl,\n productId,\n price,\n context.request.channel?.Currency,\n productBrand\n )}\n {!config.disableOgTags && this._renderOgTags(pageTitle, description, sharingImageUrl)}\n {!config.disableTwitterTags && this._renderTwitterTags(pageTitle, description, sharingImageUrl)}\n \n );\n }\n\n /**\n * Renders the facebook and other social media specific metadata tags.\n *\n * @param title Page title.\n * @param description Product description.\n * @param sharingImageUrl Primary product image url.\n */\n private _renderOgTags(title: string | undefined, description: string | undefined, sharingImageUrl: string | undefined): JSX.Element {\n return (\n \n {title && }\n {description && }\n {sharingImageUrl && }\n \n \n );\n }\n\n /**\n * Constructs and renders the JSON-LD tag used to output product specific metadata used by search engine crawlers.\n *\n * @param productName Product name.\n * @param description Product description.\n * @param sharingImageUrl Primary product image url.\n * @param canonicalUrl Product canonical url.\n * @param productId Master product id.\n * @param price Proudct price.\n * @param currencyCode Current channel currency code.\n * @param productBrand Product brand.\n */\n private _renderProductMetadata(\n productName: string | undefined,\n description: string | undefined,\n sharingImageUrl: string | undefined,\n canonicalUrl: string | undefined,\n productId: number | undefined,\n price: number | undefined,\n currencyCode: string | undefined,\n productBrand: string | undefined\n ): JSX.Element {\n // Construct the JSON-LD data that contains the product metadata information used by search enginge crawlers\n const productMetaData = JSON.stringify({\n '@context': 'http://schema.org',\n '@type': 'Product',\n name: productName,\n description,\n image: sharingImageUrl,\n sku: productId,\n brand: {\n '@type': 'Brand',\n name: productBrand\n },\n offers: {\n '@type': 'Offer',\n url: canonicalUrl,\n priceCurrency: currencyCode,\n price\n }\n });\n return (\n \n {/* eslint-disable-next-line react/no-danger -- Implementation is a copy.*/}\n