{"version":3,"sources":["webpack:///src/modules/notifications-list/notifications-list.view.tsx?6e9c","webpack:///./src/modules/hei-store-contact/hei-store-contact.view.tsx?f065","webpack:///src/utils/classnames.ts?8f2b","webpack:///src/modules/default-container-2-slots/default-container-2-slots.tsx?b218","webpack:///src/modules/default-page/default-page.tsx?0e08","webpack:///src/modules/spacer/spacer.tsx?3b03","webpack:///./src/modules/hei-preferred-store-button/hei-preferred-store-button.tsx?1c2f","webpack:///./src/modules/hei-store-contact/hei-store-contact.tsx?3bc0","webpack:///src/components/container-background-image/container-background-image-helper.ts?d691","webpack:///src/components/container-background-image/container-backgroud-image.tsx?89dd","webpack:///src/components/base-components.tsx?5f88","webpack:///src/modules/spacer/spacer.view.tsx?bd25","webpack:///src/modules/text-block/text-block.view.tsx?8d9b","webpack:///./src/modules/hei-store-address/hei-store-address.tsx?f2f8","webpack:///src/modules/text-block/text-block.tsx?1fe8","webpack:///src/modules/product-page-summary/product-page-summary.tsx?a2ef","webpack:///src/modules/default-container-3-slots/default-container-3-slots.tsx?06cd","webpack:///./src/modules/hei-preferred-store-button/hei-preferred-store-button.view.tsx?4555","webpack:///src/modules/notifications-list/notifications-list.tsx?8a0a","webpack:///src/modules/default-container/default-container.tsx?4334","webpack:///./src/modules/hei-store-address/hei-store-address.view.tsx?7400","webpack:///src/modules/script-injector/script-injector.tsx?fad8"],"names":["NotificationsListView","props","React","Module","Object","container","notificationsList","phoneNumber","emailAddress","resources","emailLabel","phoneLabel","config","className","classnames","href","sizePattern","getColumnSizes","size","exec","cols","split","slice","translatedSize","prefix","toLowerCase","translatePrefix","sizePrefix","map","colWidth","showErrors","context","isDebug","isEditor","request","params","getColClassArray","options","xsmall","small","medium","large","filter","Boolean","colWidths","Map","Default2SlotContainer","PureComponent","constructor","super","handleTextChange","event","this","heading","headingText","target","value","_getColClassName","classNames","length","reduce","memo","left","right","push","render","slots","telemetry","data","log","LogLevel","Debug","values","id","typeName","content","slotsClassNames","Warning","headingProps","requestContext","Container","containerType","backgroundImage","backgroundImageRepeat","backgroundImageSize","moduleLayout","msdyn365__moduleLayout","HeadingComponent","join","slot","index","key","DefaultPageContainer","skipToMainText","app","platform","tabIndexSkipToMain","isEditorialMode","actionContext","tabIndex","header","children","subheader","primary","subfooter","footer","Spacer","spacerClass","spacerHeight","viewProps","renderView","HeiPreferredStoreButton","allStores","orgUnitNumber","store","result","find","s","OrgUnitNumber","extractContacts","contacts","allPhoneContacts","contact","ContactTypeValue","IsPrivate","allEmailPhoneContacts","phoneContact","primaryPhoneContact","IsPrimary","Locator","emailContact","primaryEmailContact","HeiStoreContact","Contacts","getBackgroundRepeatProperty","repeat","getBackgroundSizeProperty","buildBackgroundImageStylesByViewport","image","configs","gridSettings","imageSettings","styles","largestGridSettingViewportName","getLargestGridSettingViewportName","authoringViewPorts","moduleName","layout","msdyn365Commerce","isBrowser","authoringHelper","window","_msdyn365","constructViewportInformationForImage","themeSettings","getAuthoringViewport","imgSettings","viewports","xs","w","h","sm","md","lg","xl","skipWidthAndHeightSettings","keys","vp","viewport","minMaxWidth","getMinMaxWidth","urlSrc","getImageResizeUrl","src","externalProvider","apiSettings","maxWidth","max","minWidth","min","minHeight","backgroundRepeat","backgroundSize","backgroundPosition","setStyleAttribute","currentStyle","style","undefined","getDataBgSetAttribute","dataBgSetAttributes","BackgroundImage","state","stylesByViewport","_getCurrentStyle","mounted","_componentResize","bind","updateAttributes","componentDidMount","addEventListener","componentWillUnmount","removeEventListener","shouldComponentUpdate","nextProps","nextState","processedAtributes","_processAttributes","_isLazyload","attributes","_getAttributes","_getDefaultAttributes","lazyLoad","role","getBackgroundImageLazyloadAttributes","getBackgroundImageAttributes","selectedStyle","setState","winInnerWidth","innerWidth","Number","MAX_SAFE_INTEGER","_getDefaultStyle","disableLazyLoad","getContainerType","customClassName","containerContent","tag","textSize","Tag","classNameWithHeading","Text","text","editProps","onEdit","SpacerView","renderModuleAttributes","TextBlockView","paragraph","HeiStoreAddress","TextBlock","MsDyn365","textBlockViewProps","ProductPageSummary","productPageSummary","Error","title","description","keywords","sharingImageUrl","faviconUrl","canonicalUrl","productId","productBrand","price","productName","productDescription","productImageUrl","sharingImage","pageTitle","_constructPageTitle","HtmlHeadInclude","name","rel","_renderProductMetadata","channel","Currency","disableOgTags","_renderOgTags","disableTwitterTags","_renderTwitterTags","property","currencyCode","productMetaData","JSON","stringify","sku","brand","offers","url","priceCurrency","type","dangerouslySetInnerHTML","__html","moduleConfig","ignoreTitleSuffixPrefix","appConfig","pageTitlePrefix","pageTitleSuffix","Default3SlotContainer","center","cookies","storeSelectorStateManager","preferredStoreId","setPreferredStoreId","preferredStore","StoreId","mgr","isPreferredStore","preferredStoreAriaLabel","onClick","async","clearPreferredStore","isConsentGiven","preferredStoreText","setAsPreferredStoreTextAriaLabel","setPreferredStoreLocation","OrgUnitName","Latitude","Longitude","setAsPreferredStoreText","NotificationComponentsList","Component","feed","ObjectExtensions","isNullOrUndefined","minTopOffset","maxTopOffset","_stickyConfiguration","_notificationsComponentList","notificationsComponentList","_handleTopUpdate","_getCurrentTopPosition","isPropsDifferent","maxNotificationsCount","isStateDifferent","top","every","otherValue","notification","NotificationComponentsListsManager","subscribe","_instanceId","Random","Guid","generateGuid","unsubscribe","forEach","component","events","getValue","NotificationEvents","RemovedFromList","addNotificationComponent","notificationComponent","instanceId","handler","newList","unshift","_className","moduleProps","_renderNotificationsList","hasNotifications","ArrayExtensions","hasElements","containerClassName","maxHeight","ComponentClass","componentClass","configuration","pageYOffset","Math","newTop","DefaultContainer","_getChildColClassName","childrenWidth","_getWidthClass","get","Address","ScriptInjector","_debug","placeHolderPropsRegEx","RegExp","placeHolders","originalSource","scriptSource","resolvedSource","hasMorePlaceHolders","_resolvePlaceHolder","_isUrl","defer","loadPoint","debugMessage","source","test","placeHolderToken","placeHolderTokens","propertyContext","propertyName","replace","user","query"],"mappings":"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","file":"static/js/12.351414aaa6481bb4cf6b.chunk.js","sourcesContent":["/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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 (\n \n {props.notificationsList}\n \n );\n};\n\nexport default NotificationsListView;\n","import * as React from 'react';\r\nimport { IHeiStoreContactViewProps } from './hei-store-contact';\r\nimport classnames from 'classnames';\r\n\r\nexport default (props: IHeiStoreContactViewProps) => {\r\n const {\r\n phoneNumber,\r\n emailAddress,\r\n resources: { emailLabel, phoneLabel },\r\n config: { className }\r\n } = props;\r\n\r\n return (\r\n
\r\n {phoneNumber && (\r\n

\r\n \r\n {` `}\r\n {phoneNumber}\r\n

\r\n )}\r\n {emailAddress && (\r\n

\r\n \r\n {` `}\r\n {emailAddress}\r\n

\r\n )}\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 { ICoreContext } from '@msdyn365-commerce/core';\nimport * as twoSlots from '../modules/default-container-2-slots/default-container-2-slots.props.autogenerated';\nimport * as threeSlots from '../modules/default-container-3-slots/default-container-3-slots.props.autogenerated';\n\nconst sizePattern = /col(_(\\d|auto){1,2}){2,}/;\n\nexport interface IShowErrorOptions {\n isDebug?: boolean;\n isEditor?: boolean;\n}\n\nexport interface IViewPortOptions {\n xsmall?: threeSlots.xsmall | twoSlots.xsmall;\n small?: threeSlots.small | twoSlots.small;\n medium?: threeSlots.medium | twoSlots.medium;\n large?: threeSlots.large | twoSlots.large;\n}\n\nconst translatePrefix = (prefix: `large` | `medium` | `small` | `xsmall` | undefined) => {\n switch (prefix && prefix.toLowerCase()) {\n case 'large':\n return 'lg';\n case 'medium':\n return 'md';\n case 'small':\n return 'sm';\n case 'xsmall':\n default:\n return '';\n }\n};\n\n/**\n * converts config option and size to bootstrap col class name\n * If size is auto or config option is invalid col-auto will be returned\n * If size is xsmall or size is invalid col-{config} will be returned\n * @param config configuration option e.g. col_12_12\n * @param size bootstrap gridsize\n */\nexport const getColumnSizes = (config: string, size?: `large` | `medium` | `small` | `xsmall`): string[] | boolean => {\n if (!sizePattern.exec(config)) {\n return false;\n }\n const cols = config.split('_').slice(1);\n const translatedSize = translatePrefix(size);\n const sizePrefix = (translatedSize && `-${translatedSize}`) || '';\n return cols.map((colWidth: string) => `col${sizePrefix}-${colWidth}`);\n};\n\nexport const showErrors = (context?: ICoreContext): Boolean => {\n const { isDebug, isEditor }: IShowErrorOptions = (context && context.request && context.request.params) || {};\n return !!isDebug || !!isEditor;\n};\n\n/**\n * Converts viewport configuration into a two dimensional array of class names\n */\nexport const getColClassArray = (options: IViewPortOptions): string[][] =>\n (\n [\n options.xsmall && getColumnSizes(options.xsmall),\n options.small && getColumnSizes(options.small, 'small'),\n options.medium && getColumnSizes(options.medium, 'medium'),\n options.large && getColumnSizes(options.large, 'large')\n ].filter(Boolean)\n );\n\nexport const colWidths = new Map([\n ['one', 'col-md-1'],\n ['two', 'col-md-2'],\n ['three', 'col-md-3'],\n ['four', 'col-md-4'],\n ['six', 'col-md-6'],\n ['twelve', 'col-md-12']\n]);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ContentEditableEvent } from '@msdyn365-commerce/core';\nimport { LogLevel } from '@msdyn365-commerce/telemetry-internal';\nimport React, { ReactNode } from 'react';\nimport { Container, HeadingComponent, IHeadingComponentProps } from '../../components/base-components';\nimport { getColClassArray, showErrors } from '../../utils/classnames';\nimport { IDefaultContainer2SlotsData } from './default-container-2-slots.data';\nimport { IDefaultContainer2SlotsProps } from './default-container-2-slots.props.autogenerated';\n\ninterface IColSizes {\n left: string[];\n right: string[];\n}\n\n/**\n * Default container that displays 2 modules\n * CoreComponent component\n * @extends {React.PureComponent>}\n */\nclass Default2SlotContainer extends React.PureComponent> {\n constructor(props: IDefaultContainer2SlotsProps) {\n super(props);\n }\n\n public render(): JSX.Element {\n const { slots, telemetry, context, config, data } = this.props;\n telemetry.log(LogLevel.Debug, \"Default 2 Slot Container rendering for '{id}/{typeName}'\", {\n values: [this.props.id, this.props.typeName]\n });\n\n const content = slots && slots.content;\n const slotsClassNames = this._getColClassName();\n if (content && content.length > 2) {\n telemetry.log(LogLevel.Warning, 'Default 2 Slot Container passed more than 2 slots');\n }\n const heading = config.heading || data.heading;\n const headingProps: IHeadingComponentProps = {\n ...heading,\n handleTextChange: this.handleTextChange,\n requestContext: this.props.context.request\n };\n return (\n \n {heading && }\n {content && content[0] &&
{content[0]}
}\n {content && content[1] &&
{content[1]}
}\n <>\n {showErrors(context) &&\n content &&\n content.slice(2, content.length - 1).map((slot: ReactNode, index: number) => {\n return (\n
\n
\n
\n Slot exceeded maximum number of slots supported by container. (2)\n
\n
\n
\n );\n })}\n \n \n );\n }\n\n public handleTextChange = (event: ContentEditableEvent) => (this.props.config.heading!.headingText = event.target.value);\n /**\n * Captures left and right column classnames from this.props.config. Returns col if no options specified.\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _getColClassName = (): IColSizes => {\n const { config } = this.props;\n\n const classNames = getColClassArray(config);\n\n if (!classNames.length) {\n return {\n left: ['col'],\n right: ['col']\n };\n }\n\n return classNames.reduce(\n (memo: IColSizes, [left, right]: string[]) => {\n memo.left.push(left);\n memo.right.push(right);\n return memo;\n },\n { left: [], right: [] }\n );\n };\n}\n\nexport default Default2SlotContainer;\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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { ISpacerProps } from './spacer.props.autogenerated';\n\nexport interface ISpacerViewProps extends ISpacerProps<{}> {\n className?: string;\n}\n\n/**\n *\n * SpacerModule component.\n * @extends {React.PureComponent}\n */\nclass Spacer extends React.PureComponent> {\n public render(): JSX.Element | null {\n const { className } = this.props.config;\n const spacerClass = this.props.config.spacerHeight ? `ms-${this.props.config.spacerHeight}` : 'ms-spacer';\n const viewProps = {\n // Context for telemetry and raw data for C1 to do customization\n // Including computed data, state data and methods\n ...this.props,\n className: className && classnames(spacerClass, className) || spacerClass\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n}\n\nexport default Spacer;\n","import { OrgUnitLocation } from '@msdyn365-commerce/retail-proxy';\r\nimport { IHeiPreferredStoreButtonData } from './hei-preferred-store-button.data';\r\nimport { IHeiPreferredStoreButtonProps } from './hei-preferred-store-button.props.autogenerated';\r\n\r\nexport interface IHeiPreferredStoreButtonViewProps extends IHeiPreferredStoreButtonProps {\r\n store: OrgUnitLocation;\r\n}\r\n\r\nconst HeiPreferredStoreButton = (props: IHeiPreferredStoreButtonProps) => {\r\n const {\r\n data: { allStores },\r\n config: { orgUnitNumber }\r\n } = props;\r\n\r\n const store = allStores?.result?.find(s => s.OrgUnitNumber === orgUnitNumber);\r\n if (!store) {\r\n return null;\r\n }\r\n\r\n return props.renderView({\r\n ...props,\r\n store\r\n });\r\n};\r\n\r\nexport default HeiPreferredStoreButton;\r\n","import { OrgUnitContact } from '@msdyn365-commerce/retail-proxy';\r\nimport { IHeiStoreContactData } from './hei-store-contact.data';\r\nimport { IHeiStoreContactProps } from './hei-store-contact.props.autogenerated';\r\n\r\nexport type IHeiStoreContactViewProps = IHeiStoreContactProps & {\r\n phoneNumber: string;\r\n emailAddress: string;\r\n};\r\n\r\nconst HeiStoreContact = (props: IHeiStoreContactProps) => {\r\n const {\r\n data: { allStores },\r\n config: { orgUnitNumber }\r\n } = props;\r\n\r\n const store = allStores?.result?.find(s => s.OrgUnitNumber === orgUnitNumber);\r\n if (!store) {\r\n return null;\r\n }\r\n\r\n const [phoneNumber, emailAddress] = extractContacts(store.Contacts);\r\n\r\n return props.renderView({\r\n ...props,\r\n phoneNumber,\r\n emailAddress\r\n });\r\n};\r\n\r\nconst extractContacts = (contacts: OrgUnitContact[] | undefined) => {\r\n if (!contacts) {\r\n return ['', ''];\r\n }\r\n\r\n const allPhoneContacts = contacts.filter(contact => contact.ContactTypeValue === 1 && !contact.IsPrivate);\r\n const allEmailPhoneContacts = contacts.filter(contact => contact.ContactTypeValue === 2 && !contact.IsPrivate);\r\n\r\n let phoneContact = '';\r\n if (allPhoneContacts && allPhoneContacts.length > 0) {\r\n const primaryPhoneContact = allPhoneContacts.find(contact => contact.IsPrimary);\r\n\r\n if (primaryPhoneContact) {\r\n phoneContact = primaryPhoneContact.Locator || '';\r\n }\r\n\r\n if (!phoneContact) {\r\n phoneContact = allPhoneContacts[0].Locator || '';\r\n }\r\n }\r\n\r\n let emailContact = '';\r\n if (allEmailPhoneContacts && allEmailPhoneContacts.length > 0) {\r\n const primaryEmailContact = allEmailPhoneContacts.find(contact => contact.IsPrimary);\r\n\r\n if (primaryEmailContact) {\r\n emailContact = primaryEmailContact.Locator || '';\r\n }\r\n\r\n if (!emailContact) {\r\n emailContact = allEmailPhoneContacts[0].Locator || '';\r\n }\r\n }\r\n\r\n return [phoneContact, emailContact];\r\n};\r\n\r\nexport default HeiStoreContact;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport msdyn365Commerce, {\n constructViewportInformationForImage,\n getImageResizeUrl,\n getLargestGridSettingViewportName,\n getMinMaxWidth,\n IAny,\n IGeneric,\n IViewPort,\n Viewport\n} from '@msdyn365-commerce/core-internal';\nimport { cloneDeep as _cloneDeep } from 'lodash';\nimport {\n BackgroundImageRepeat,\n BackgroundImageSize,\n IBackgroundImageAttributes,\n IBackgroundImageLazyloadAttributes,\n IBackgroundImageProps,\n IBackgroundImageStyle\n} from './container-background-image-interfaces';\n\nconst getBackgroundRepeatProperty = (size: string | undefined, repeat: string | undefined): BackgroundImageRepeat => {\n if (!size || size === 'cover') {\n return 'no-repeat';\n }\n switch (repeat) {\n case 'noRepeat':\n return 'no-repeat';\n case 'repeat':\n return 'repeat';\n default:\n return 'no-repeat';\n }\n};\n\nconst getBackgroundSizeProperty = (size: string | undefined): BackgroundImageSize => {\n switch (size) {\n case 'cover':\n return 'cover';\n case 'contain':\n return 'contain';\n case 'default':\n default:\n return undefined;\n }\n};\n\nconst getDefaultViewports = (): IViewPort => {\n return {\n xs: {\n w: 800,\n h: 600\n },\n sm: {\n w: 1200,\n h: 900\n },\n md: {\n w: 1600,\n h: 900\n },\n lg: {\n w: 1600,\n h: 700\n },\n xl: {\n w: 1600,\n h: 700\n }\n };\n};\n\nconst getAuthoringViewport = (moduleName: string | undefined, layout: string | undefined): IViewPort | undefined => {\n if (!msdyn365Commerce.isBrowser) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const authoringHelper = (window as any)._msdyn365.authoringHelper;\n if (!authoringHelper) {\n return;\n }\n\n // if authoring helper is setup, component is rendering from site builder. Build viewport based on layout selected.\n return constructViewportInformationForImage(moduleName, layout, 'backgroundImage', authoringHelper?.themeSettings) as IViewPort;\n};\n\nexport const buildBackgroundImageStylesByViewport = (props: IBackgroundImageProps): IGeneric => {\n const { containerType, image, request, configs } = props;\n\n const gridSettings = request.gridSettings ?? {};\n const imageSettings = image.imageSettings;\n\n const styles: IGeneric = {};\n\n const largestGridSettingViewportName = getLargestGridSettingViewportName(gridSettings);\n if (largestGridSettingViewportName && imageSettings) {\n // in site builder the layout may change, so use authoring viewports.\n const authoringViewPorts = getAuthoringViewport(containerType, configs?.layout);\n const imgSettings = {\n ...imageSettings,\n viewports: { ..._cloneDeep(authoringViewPorts || imageSettings.viewports || getDefaultViewports()) }\n };\n\n // Skip resizing width and height for background images.\n const skipWidthAndHeightSettings = true;\n Object.keys(imgSettings.viewports).map(vp => {\n const viewport = vp as Viewport;\n const minMaxWidth = getMinMaxWidth(gridSettings, imgSettings, viewport, largestGridSettingViewportName);\n const urlSrc = getImageResizeUrl(\n image.src,\n imgSettings.viewports[viewport],\n imgSettings,\n skipWidthAndHeightSettings,\n image?.externalProvider,\n request?.apiSettings\n );\n styles[viewport] = {\n maxWidth: minMaxWidth.max,\n minWidth: minMaxWidth.min,\n minHeight: imgSettings.viewports[viewport]?.h,\n backgroundImage: urlSrc,\n backgroundRepeat: getBackgroundRepeatProperty(configs?.size, configs?.repeat),\n backgroundSize: getBackgroundSizeProperty(configs?.size),\n backgroundPosition: 'center center'\n };\n });\n }\n\n return styles;\n};\n\nexport const setStyleAttribute = (currentStyle: IBackgroundImageStyle): IGeneric => {\n let style: IGeneric = {};\n if (currentStyle) {\n style = { ...currentStyle };\n style['minWidth'] = undefined;\n style['width'] = '100%';\n if (currentStyle.backgroundImage) {\n style['backgroundImage'] = `url('${currentStyle.backgroundImage}')`;\n }\n }\n return style;\n};\n\nexport const getBackgroundImageLazyloadAttributes = (\n className: string,\n currentStyle: IBackgroundImageStyle | undefined,\n styles: IGeneric\n): IBackgroundImageLazyloadAttributes => {\n const attributes = {\n role: 'img',\n className: `${className} lazyload`,\n 'data-bgset': getDataBgSetAttribute(styles)\n };\n\n if (currentStyle) {\n attributes['style'] = setStyleAttribute(currentStyle);\n // On lazyload, lazysizes plugin should pick which background image to use based on data-bgset attribute.\n attributes['style']['backgroundImage'] = undefined;\n }\n return attributes;\n};\n\nexport const getBackgroundImageAttributes = (\n className: string,\n currentStyle: IBackgroundImageStyle | undefined\n): IBackgroundImageAttributes => {\n const attributes = {\n role: 'img',\n className\n };\n\n if (currentStyle) {\n attributes['style'] = setStyleAttribute(currentStyle);\n }\n return attributes;\n};\n\nexport const getBgSetMinMaxWidthAttribute = (style: IBackgroundImageStyle): string => {\n if (style.maxWidth) {\n return `[(max-width: ${style.maxWidth}px)]`;\n }\n return '';\n};\n\nexport const getDataBgSetAttribute = (styles: IGeneric): string => {\n const dataBgSetAttributes: string[] = [];\n Object.keys(styles).map(vp => {\n if (styles[vp].backgroundImage) {\n dataBgSetAttributes.push(`${styles[vp].backgroundImage} ${getBgSetMinMaxWidthAttribute(styles[vp])}`);\n }\n });\n\n return dataBgSetAttributes.join(' | ');\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport msdyn365Commerce, { getLargestGridSettingViewportName, IGeneric } from '@msdyn365-commerce/core-internal';\nimport * as React from 'react';\nimport { isEqual as _isEqual } from 'lodash';\nimport {\n buildBackgroundImageStylesByViewport,\n getBackgroundImageAttributes,\n getBackgroundImageLazyloadAttributes\n} from './container-background-image-helper';\nimport {\n IBackgroundImageAttributes,\n IBackgroundImageProps,\n IBackgroundImageState,\n IBackgroundImageStyle\n} from './container-background-image-interfaces';\n\nconst BACKGROUND_IMAGE_CLASS_NAME = 'ms-container-background-image';\n\n/**\n * BackgroundImage component\n * @extends {React.PureComponent}\n */\nexport class BackgroundImage extends React.PureComponent {\n private stylesByViewport: IGeneric;\n private currentStyle: IBackgroundImageStyle | undefined;\n private mounted: boolean;\n\n constructor(props: IBackgroundImageProps, state: IBackgroundImageState) {\n super(props);\n this.stylesByViewport = buildBackgroundImageStylesByViewport(this.props);\n this.currentStyle = this._getCurrentStyle();\n this.mounted = false;\n this._componentResize = this._componentResize.bind(this);\n this._getCurrentStyle = this._getCurrentStyle.bind(this);\n this.state = { updateAttributes: false };\n }\n\n public componentDidMount(): void {\n if (msdyn365Commerce.isBrowser) {\n window.addEventListener('resize', this._componentResize);\n this.mounted = true;\n this._componentResize();\n }\n }\n\n public componentWillUnmount(): void {\n if (msdyn365Commerce.isBrowser) {\n window.removeEventListener('resize', this._componentResize);\n this.mounted = false;\n }\n }\n\n public shouldComponentUpdate(nextProps: IBackgroundImageProps, nextState: { updateAttributes: boolean }): boolean {\n if (\n this.state !== nextState ||\n this.props.request?.gridSettings !== nextProps.request?.gridSettings ||\n this.props.configs.repeat !== nextProps.configs.repeat ||\n this.props.configs.size !== nextProps.configs.size ||\n this.props.configs.layout !== nextProps.configs.layout ||\n this.props.image?.imageSettings !== nextProps.image?.imageSettings ||\n this.props.image?.src !== nextProps.image?.src\n ) {\n return true;\n }\n return false;\n }\n\n public render(): JSX.Element | null {\n const { children } = this.props;\n\n try {\n this.stylesByViewport = buildBackgroundImageStylesByViewport(this.props);\n this.currentStyle = this._getCurrentStyle();\n\n if (this.currentStyle) {\n const processedAtributes = this._processAttributes(\n BACKGROUND_IMAGE_CLASS_NAME,\n this.currentStyle,\n this.stylesByViewport,\n this._isLazyload()\n );\n const attributes = this._getAttributes(processedAtributes);\n if (this.state.updateAttributes) {\n // Update component with the latest attributes.\n return
{children}
;\n } else if (this._isLazyload()) {\n // On lazyload, only include the class name on the first render.\n return
{children}
;\n } else {\n // On lazyload disabled, render the default attributes from server side.\n return
{children}
;\n }\n } else {\n // in no style is found, return the container content.\n return <>{children};\n }\n } catch {\n // in case of any failure, return the container content.\n return <>{children};\n }\n }\n\n private _processAttributes(\n className: string,\n currentStyle: IBackgroundImageStyle,\n stylesByViewport: IGeneric,\n lazyLoad: boolean\n ) {\n if (lazyLoad) {\n return getBackgroundImageLazyloadAttributes(className, currentStyle, stylesByViewport);\n } else {\n return getBackgroundImageAttributes(className, currentStyle);\n }\n }\n\n private _getAttributes(processedAtributes: IBackgroundImageAttributes) {\n return { ...processedAtributes, style: { ...processedAtributes?.style } };\n }\n\n private _componentResize(): void {\n if (msdyn365Commerce.isBrowser) {\n const selectedStyle = this._getCurrentStyle();\n\n if (this.mounted || (selectedStyle && !_isEqual(this.currentStyle, selectedStyle))) {\n this.setState({ updateAttributes: true });\n }\n }\n }\n\n private _getCurrentStyle(): IBackgroundImageStyle | undefined {\n if (msdyn365Commerce.isBrowser) {\n const winInnerWidth: number = window.innerWidth;\n let selectedStyle: IBackgroundImageStyle | undefined;\n Object.keys(this.stylesByViewport).map(vp => {\n if (\n (this.stylesByViewport[vp]?.minWidth || this.stylesByViewport[vp]?.maxWidth) &&\n (this.stylesByViewport[vp]?.minWidth || 0) <= winInnerWidth &&\n winInnerWidth <= (this.stylesByViewport[vp]?.maxWidth || Number.MAX_SAFE_INTEGER)\n ) {\n selectedStyle = this.stylesByViewport[vp];\n }\n });\n return selectedStyle;\n } else {\n return this._getDefaultStyle();\n }\n }\n\n private _isLazyload(): boolean {\n // Lazyload by default if nothing is specified\n return !this.props.image?.imageSettings?.disableLazyLoad;\n }\n\n private _getDefaultStyle(): IBackgroundImageStyle | undefined {\n const { request } = this.props;\n const largestGridSettingViewportName = getLargestGridSettingViewportName(request.gridSettings ?? {});\n return this.stylesByViewport[largestGridSettingViewportName];\n }\n\n private _getDefaultAttributes(): IBackgroundImageAttributes {\n const style = this._getDefaultStyle();\n const processedAtributes = style\n ? this._processAttributes(BACKGROUND_IMAGE_CLASS_NAME, style, this.stylesByViewport, this._isLazyload())\n : {};\n return this._getAttributes(processedAtributes);\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ContentEditableEvent, IImageData, IRequestContext, Text } from '@msdyn365-commerce/core';\nimport * as React from 'react';\nimport { BackgroundImage } from './container-background-image/container-backgroud-image';\n\n/**\n * Heading options\n */\nexport interface IHeadingComponentProps {\n /**\n * Heading text\n */\n headingText?: string;\n /**\n * Heading tag (h1, h2, h3, h4, h5, h6)\n */\n tag?: HeadingTag;\n /**\n * Heading text size (sm, md, lg, xl)\n */\n textSize?: TextSize;\n\n requestContext: IRequestContext;\n\n handleTextChange(event: ContentEditableEvent): string;\n}\n\nexport type HeadingTag = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\nexport type TextSize = 'sm' | 'md' | 'lg' | 'xl';\n\n/**\n * Container class options\n */\nexport interface IContainerProps {\n /**\n * CSS class name\n */\n className?: string;\n /**\n * Bootstrap supported container types\n */\n containerType?: string;\n /**\n * type name\n */\n typeName?: string;\n /**\n * id of container\n */\n id?: string;\n /**\n * React children\n */\n children: React.ReactNode;\n /**\n * Request context\n */\n request?: IRequestContext;\n /**\n * background image\n */\n backgroundImage?: IImageData;\n /**\n * background image repeat property\n */\n backgroundImageRepeat?: string;\n /**\n * background image size property\n */\n backgroundImageSize?: string;\n /**\n * module layout property\n */\n moduleLayout?: string;\n}\n\nconst getContainerType = (containerType: string | undefined) => {\n switch (containerType) {\n case 'container':\n return 'container';\n case 'fluid':\n default:\n return 'fluid';\n }\n};\n\n/**\n * HOC to create bootstrap container div. If no container type is specified children are rendered.\n * @param options IContainerClasses\n */\nexport const Container: React.SFC = (props: IContainerProps): JSX.Element => {\n const {\n containerType,\n className,\n typeName,\n id,\n children,\n backgroundImage,\n request,\n backgroundImageRepeat,\n backgroundImageSize,\n moduleLayout\n } = props;\n const customClassName = className ? ` ${className}` : '';\n\n let containerContent = children;\n if (containerType) {\n containerContent =
{containerContent}
;\n }\n\n if (backgroundImage && backgroundImage.src && backgroundImage.imageSettings && request) {\n containerContent = (\n \n {containerContent}\n \n );\n }\n\n return containerType ? (\n
{containerContent}
\n ) : (\n
{containerContent}
\n );\n};\n\nexport const HeadingComponent = (props: IHeadingComponentProps & { className: string }): JSX.Element | null => {\n const { tag, headingText, textSize, className } = props;\n const Tag = tag || 'h2';\n const classNameWithHeading = textSize ? `heading ${textSize} ${className}` : `heading ${className}`;\n return (\n (headingText && (\n \n )) ||\n null\n );\n};\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as React from 'react';\n\nimport { ISpacerViewProps } from './spacer';\n\nconst SpacerView: React.FC = props => (\n
\n);\n\nexport default SpacerView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as React from 'react';\n\nimport { ITextBlockViewProps } from './text-block';\n\nconst TextBlockView: React.FC = props => (\n
\n {props.paragraph}\n
\n);\n\nexport default TextBlockView;\n","import { OrgUnitLocation } from '@msdyn365-commerce/retail-proxy';\r\nimport { IHeiStoreAddressData } from './hei-store-address.data';\r\nimport { IHeiStoreAddressProps } from './hei-store-address.props.autogenerated';\r\n\r\nexport type IHeiStoreAddressViewProps = IHeiStoreAddressProps & {\r\n store: OrgUnitLocation;\r\n};\r\n\r\nconst HeiStoreAddress = (props: IHeiStoreAddressProps) => {\r\n const {\r\n data: { allStores },\r\n config: { orgUnitNumber }\r\n } = props;\r\n\r\n const store = allStores?.result?.find(s => s.OrgUnitNumber === orgUnitNumber);\r\n if (!store) {\r\n return null;\r\n }\r\n\r\n return props.renderView({\r\n ...props,\r\n store\r\n });\r\n};\r\n\r\nexport default HeiStoreAddress;\r\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as MsDyn365 from '@msdyn365-commerce/core';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { ITextBlockProps } from './text-block.props.autogenerated';\n\nexport interface ITextBlockViewProps extends ITextBlockProps<{}> {\n paragraph?: React.ReactNode;\n className?: string;\n}\n\n/**\n *\n * TextBlock component.\n */\nclass TextBlock extends React.PureComponent> {\n public render(): JSX.Element | null {\n const { paragraph, className } = this.props.config;\n const text = paragraph && ;\n const textBlockViewProps = {\n ...this.props,\n paragraph: text,\n className: classnames('ms-text-block', className)\n\n };\n return this.props.renderView(textBlockViewProps) as React.ReactElement;\n }\n\n public handleTextChange = (event: MsDyn365.ContentEditableEvent) => this.props.config.paragraph = event.target.value;\n}\nexport default TextBlock;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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 && \n {pageTitle}\n }\n {description && }\n {keywords && }\n {canonicalUrl && }\n {faviconUrl && }\n \n {this._renderProductMetadata(productName, productDescription, productImageUrl, canonicalUrl, productId, price, context.request.channel?.Currency, productBrand)}\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(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): 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\n