{"version":3,"file":"static/js/7.c197908ab3127addefaf.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-css-injector/dyn-css-injector.tsx?3d03","webpack://Msdyn365.Commerce.Online/./src/modules/dyn-css-injector/dyn-css-injector.view.tsx?464c","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/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/modules/script-injector/script-injector.tsx?5a34","webpack://Msdyn365.Commerce.Online/./src/utils/script-utils.ts?cb52","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","webpack://Msdyn365.Commerce.Online/./src/modules/tile-list/tile-list.tsx?78cb","webpack://Msdyn365.Commerce.Online/./src/modules/tile-list/tile-list.view.tsx?1b00"],"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 { IDynCssInjectorData } from './dyn-css-injector.data';\r\nimport { IDynCssInjectorProps } from './dyn-css-injector.props.autogenerated';\r\n\r\nexport interface IDynCssInjectorViewProps extends IDynCssInjectorProps {}\r\n\r\n/**\r\n *\r\n * DynCssInjector component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass DynCssInjector 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 DynCssInjector;\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 { HtmlHeadInclude } from '@msdyn365-commerce/core-internal';\r\nimport * as React from 'react';\r\nimport { IDynCssInjectorViewProps } from './dyn-css-injector';\r\n\r\nexport default (props: IDynCssInjectorViewProps) => {\r\n return (\r\n \r\n {props.config.cssSource1 && }\r\n {props.config.cssSource2 && }\r\n {props.config.cssSource3 && }\r\n {props.config.cssSource4 && }\r\n {props.config.cssSource5 && }\r\n {props.config.cssSource6 && }\r\n {props.config.cssSource7 && }\r\n {props.config.cssSource8 && }\r\n {props.config.cssSource9 && }\r\n {props.config.cssSource10 && }\r\n {props.config.cssSource11 && }\r\n {props.config.cssSource12 && }\r\n {props.config.cssSource13 && }\r\n {props.config.cssSource14 && }\r\n {props.config.cssSource15 && }\r\n {props.config.cssSource16 && }\r\n {props.config.cssSource17 && }\r\n {props.config.cssSource18 && }\r\n {props.config.cssSource19 && }\r\n {props.config.cssSource20 && }\r\n {props.config.cssSource21 && }\r\n {props.config.cssSource22 && }\r\n {props.config.cssSource23 && }\r\n {props.config.cssSource24 && }\r\n {props.config.cssSource25 && }\r\n {props.config.cssSource26 && }\r\n {props.config.cssSource27 && }\r\n {props.config.cssSource28 && }\r\n {props.config.cssSource29 && }\r\n {props.config.cssSource30 && }\r\n {props.config.cssSource31 && }\r\n {props.config.cssSource32 && }\r\n {props.config.cssSource33 && }\r\n {props.config.cssSource34 && }\r\n {props.config.cssSource35 && }\r\n {props.config.cssSource36 && }\r\n {props.config.cssSource37 && }\r\n {props.config.cssSource38 && }\r\n {props.config.cssSource39 && }\r\n {props.config.cssSource40 && }\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","/*!\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 * as MsDyn365 from '@msdyn365-commerce/core-internal';\nimport { LogLevel } from '@msdyn365-commerce/telemetry-internal';\nimport * as React from 'react';\nimport { IScriptInjectorProps } from './script-injector.props.autogenerated';\n\n/**\n *\n * CoreComponent component\n * @extends {React.PureComponent}\n */\nclass ScriptInjector extends React.PureComponent> {\n constructor(props: IScriptInjectorProps<{}>) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { config } = this.props;\n this._debug(`Adding html head tags for '${this.props.id}/${this.props.typeName}'`);\n\n const placeHolderPropsRegEx = RegExp('%[a-zA-Z0-9-.]*%', 'g');\n let placeHolders: RegExpExecArray | null;\n const originalSource = config && config.scriptSource;\n let resolvedSource;\n\n if (originalSource) {\n let hasMorePlaceHolders = true;\n resolvedSource = originalSource;\n\n while (hasMorePlaceHolders) {\n placeHolders = placeHolderPropsRegEx.exec(originalSource);\n\n if (placeHolders && placeHolders.length > 0) {\n this._debug(`extracted placeholder ${placeHolders[0]}`);\n resolvedSource = this._resolvePlaceHolder(resolvedSource, placeHolders[0]);\n } else {\n hasMorePlaceHolders = false;\n }\n }\n }\n\n if (!resolvedSource) {\n return null;\n }\n\n return (\n \n {this._isUrl(resolvedSource) ? (\n \n ) : (\n \n )}\n \n );\n }\n\n private _debug(debugMessage: string): void {\n if (this.props.telemetry) {\n this.props.telemetry.log(LogLevel.Debug, debugMessage);\n }\n }\n\n private _isUrl(source: string): boolean {\n return /(ftp|http|https):\\/\\/(\\w+:{0,1}\\w*@)?(\\S+)(:[0-9]+)?(\\/|\\/([\\w#!:.?+=&%@!\\-\\/]))?/.test(source);\n }\n\n private _resolvePlaceHolder(resolvedSource: string, placeHolderToken: string): string {\n // expect placeholder to of the format eg: %config.id%\n const placeHolderTokens = placeHolderToken.split(/[%.]/);\n\n if (placeHolderTokens.length !== 4 || !resolvedSource) {\n return resolvedSource;\n }\n\n const propertyContext = placeHolderTokens[1];\n const propertyName = placeHolderTokens[2];\n\n if (propertyContext === 'props') {\n if (this.props[propertyName]) {\n resolvedSource = resolvedSource.replace(placeHolderToken, this.props[propertyName]);\n this._debug(`Replaced placeholder ${placeHolderToken} with props property ${this.props[propertyName]}`);\n }\n } else if (this.props.context && this.props.context.request) {\n switch (propertyContext) {\n case 'request':\n if (this.props.context.request[propertyName]) {\n resolvedSource = resolvedSource.replace(placeHolderToken, this.props.context.request[propertyName]);\n this._debug(\n `Replaced placeholder ${placeHolderToken} with request property ${this.props.context.request[propertyName]}`\n );\n }\n\n break;\n case 'user':\n if (this.props.context.request.user && this.props.context.request.user[propertyName]) {\n resolvedSource = resolvedSource.replace(placeHolderToken, this.props.context.request.user[propertyName]);\n this._debug(\n `Replaced placeholder ${placeHolderToken} with user property ${this.props.context.request.user[propertyName]}`\n );\n }\n\n break;\n case 'query':\n if (this.props.context.request.query && this.props.context.request.query[propertyName]) {\n resolvedSource = resolvedSource.replace(placeHolderToken, this.props.context.request.query[propertyName]);\n this._debug(\n `Replaced placeholder ${placeHolderToken} with query parameter ${this.props.context.request.query[propertyName]}`\n );\n }\n\n break;\n default:\n }\n }\n\n return resolvedSource;\n }\n}\n\nexport default ScriptInjector;\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 { 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","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n getTelemetryObject,\n Heading,\n IComponentNodeProps,\n INodeProps,\n ISingleSlideCarouselProps,\n ITelemetryContent,\n NodeTag,\n SingleSlideCarousel\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { ITileListProps, ITitleData } from './tile-list.props.autogenerated';\n\n/**\n * Tile-list view props.\n */\nexport interface ITileListViewProps extends ITileListProps<{}> {\n title?: React.ReactNode;\n tiles: React.ReactNode[];\n tileItemContainer: INodeProps;\n tileListContainer: INodeProps;\n tileListHeading: INodeProps;\n singleSlideCarouselComponentProps: INodeProps;\n}\n\n/**\n *\n * TileList component.\n * @extends {React.PureComponent>}\n */\nexport class TileList extends React.PureComponent> {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n private static _createHeading(heading?: ITitleData): React.ReactNode | null {\n if (!heading || !heading.text || StringExtensions.isNullOrWhitespace(heading.text)) {\n return null;\n }\n return ;\n }\n public constructor(props: ITileListProps<{}>) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { resources } = this.props;\n const { title, className } = this.props.config;\n const propsCarousel: IComponentNodeProps = {\n tag: SingleSlideCarousel,\n className: this.props.config.className ?? '',\n flipperPrevLabel: resources.flipperPrevious,\n flipperNextLabel: resources.flipperNext,\n parentId: this.props.id,\n telemetryContent: this._telemetryContent,\n vertical: false\n };\n\n const viewProps = {\n ...this.props,\n title: TileList._createHeading(title),\n singleSlideCarouselComponentProps: propsCarousel,\n tileItemContainer: {\n tag: 'li' as NodeTag,\n className: 'ms-tile__item',\n role: 'listitem'\n },\n tileListContainer: { className: classnames('ms-tile-list', className) },\n tileListHeading: { className: 'ms-tile-list__heading' },\n tiles: this.props.slots.content\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n}\n\nexport default TileList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { ITileListViewProps } from './tile-list';\n\n/**\n * View component.\n * @param props - The view properties.\n * @returns Returns props.\n */\nexport const tileListView: React.FC = props => {\n const { title, tiles, tileListContainer, tileListHeading, tileItemContainer, singleSlideCarouselComponentProps } = props;\n return (\n \n {title}\n \n {tiles.map((tileItem: ReactNode, index: number) => {\n const keyIndex = `tile-list-item__${index}`;\n return (\n \n {tileItem}\n \n );\n })}\n \n \n );\n};\n\nexport default tileListView;\n"],"names":["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","DynCssInjector","HtmlHeadInclude","config","cssSource1","rel","media","href","cssSource2","cssSource3","cssSource4","cssSource5","cssSource6","cssSource7","cssSource8","cssSource9","cssSource10","cssSource11","cssSource12","cssSource13","cssSource14","cssSource15","cssSource16","cssSource17","cssSource18","cssSource19","cssSource20","cssSource21","cssSource22","cssSource23","cssSource24","cssSource25","cssSource26","cssSource27","cssSource28","cssSource29","cssSource30","cssSource31","cssSource32","cssSource33","cssSource34","cssSource35","cssSource36","cssSource37","cssSource38","cssSource39","cssSource40","DynGoogleTagManager","useScriptGtag","script","scriptUrl","inlineScript","type","gTagId","removeChild","DefaultExternalScript","logDebug","typeName","source","scriptSource","relativeBaseUrl","request","url","staticCdnUrl","msdyn365Commerce","isRelativeUrl","path","isAbsoluteUrl","logError","scriptHtml","async","defer","SDK_FRAGMENT_NAME","key","dangerouslySetInnerHTML","__html","DefaultInlineScript","includes","nonceToken","isNonceEnabled","DefaultPageContainer","slots","skipToMainText","log","LogLevel","values","app","platform","tabIndexSkipToMain","isEditorialMode","tabIndex","header","map","children","subheader","primary","subfooter","footer","ScriptInjector","_debug","placeHolderPropsRegEx","RegExp","placeHolders","originalSource","resolvedSource","hasMorePlaceHolders","exec","length","_resolvePlaceHolder","MsDyn365","_isUrl","loadPoint","debugMessage","test","placeHolderToken","placeHolderTokens","split","propertyContext","propertyName","user","query","errorMessage","buildReviewCard","Node","Object","cardProps","headerProps","rating","name","date","cardBodyProps","reviewProps","reviewTitle","reviewText","responseProps","responseName","responseDate","responseText","controlsProps","ratingHelpfulLabel","like","dislike","edit","report","createReviewModal","moduleProps","Module","modal","modalHeader","modalBody","form","inputRow","ratingLabel","titleLabel","titleInput","textLabel","textInput","privacyPolicyUrl","modalFooter","submitButton","cancelButton","createReportModal","state","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","bind","_getCurrentTopPosition","nextState","isPropsDifferent","maxNotificationsCount","isStateDifferent","top","every","value","otherValue","notification","componentDidMount","NotificationComponentsListsManager","_instanceId","Random","undefined","window","addEventListener","componentWillUnmount","forEach","component","events","getValue","NotificationEvents","unsubscribe","removeEventListener","addNotificationComponent","notificationComponent","Error","subscribe","instanceId","handler","newList","filter","setState","unshift","classnames","_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","index","TabItemType","TabItem","moduleContentClassName","moduleHeaderClassName","_renderTabHeader","isSelected","itemIndex","contentID","getContentID","tabId","activeContentIDResult","activeTabState","shown","activeContentIndex","TabContentContainer","TabHeaderContainer","TabItemContent","tabHeader","tabSlots","tabItemTitle","_renderTabItemContent","items","item","tabItemType","tabItemContent","Tab","tabIndexQuery","handleHeadingChange","event","heading","text","target","_refHandler","link","activeLink","_onClick","e","update","createTabStateInput","currentTabIndex","newUrl","_setGetParameter","String","history","pushState","_onKeyDown","keyCode","slotLength","tabItems","defaultTabIndex","initialIndex","queryString","activeTab","queryTabIndex","indexOf","arr","Number","parseInt","_getTabHeader","_getTabContent","headingComponent","editProps","onEdit","tabViewProps","TabContainer","headerSection","tabsSection","tabItemContainer","tabContents","tabHeaders","componentDidUpdate","dataActionTabId","focus","selected","onClick","onKeyDown","ref","paramName","paramValue","URL","location","requestUrl","URLSearchParams","search","set","decodeURIComponent","toString","TileList","_telemetryContent","getTelemetryObject","telemetryPageName","friendlyName","StringExtensions","Heading","headingTag","resources","title","propsCarousel","SingleSlideCarousel","flipperPrevLabel","flipperPrevious","flipperNextLabel","flipperNext","parentId","telemetryContent","vertical","_createHeading","singleSlideCarouselComponentProps","tileItemContainer","tileListContainer","tileListHeading","tiles","content","tileListView","tileItem","keyIndex"],"sourceRoot":""}