{"version":3,"sources":["webpack:///src/modules/notifications-list/notifications-list.view.tsx?6e9c","webpack:///src/utils/classnames.ts?8f2b","webpack:///./src/modules/order-scheduler/order-scheduler.view.tsx?1731","webpack:///src/modules/default-container-2-slots/default-container-2-slots.tsx?b218","webpack:///src/modules/default-page/default-page.tsx?0e08","webpack:///src/utils/script-utils.ts?9534","webpack:///src/modules/spacer/spacer.tsx?3b03","webpack:///src/modules/default-inline-script/default-inline-script.tsx?3ed3","webpack:///src/modules/default-external-script/default-external-script.tsx?203d","webpack:///./src/modules/order-scheduler/order-scheduler.props.autogenerated.ts?0384","webpack:///./src/modules/order-scheduler/order-scheduler.tsx?693c","webpack:///src/modules/default-page-summary/default-page-summary.tsx?b254","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/default-inline-style/default-inline-style.tsx?bd16","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/notifications-list/notifications-list.tsx?8a0a","webpack:///src/modules/default-container/default-container.tsx?4334"],"names":["NotificationsListView","props","React","Module","Object","assign","container","notificationsList","sizePattern","getColumnSizes","config","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","datePicker","saveButtonProps","fieldLabelProps","orderScheduleWrapperProps","staticDisplay","shouldDisplayStatic","Node","key","Default2SlotContainer","PureComponent","constructor","super","handleTextChange","event","this","heading","headingText","target","value","_getColClassName","classNames","length","reduce","memo","_ref","left","right","push","render","slots","telemetry","data","log","LogLevel","Debug","values","id","typeName","content","slotsClassNames","Warning","headingProps","_objectSpread","requestContext","createElement","Container","containerType","className","backgroundImage","backgroundImageRepeat","backgroundImageSize","moduleLayout","msdyn365__moduleLayout","HeadingComponent","join","Fragment","slot","index","DefaultPageContainer","skipToMainText","app","platform","tabIndexSkipToMain","isEditorialMode","actionContext","href","tabIndex","header","children","subheader","primary","subfooter","footer","logDebug","debugMessage","logError","errorMessage","Error","isAbsoluteUrl","source","test","isRelativeUrl","Spacer","spacerClass","spacerHeight","viewProps","classnames","renderView","DefaultInlineScript","inlineScript","includes","nonceToken","isNonceEnabled","scriptHtml","SDK_FRAGMENT_NAME","dangerouslySetInnerHTML","__html","DefaultExternalScript","scriptSource","relativeBaseUrl","url","staticCdnUrl","msdyn365Commerce","getEnvironmentVariable","path","async","defer","ExcludeDaysDay","OrderScheduler","_fieldId","_checkIfDefaultDate","date","getTime","Date","_handleDateChange","newDate","setState","_renderDatePicker","currentDateISO","now","DatePicker","maxDate","_getMaxDate","excludeDates","_getExclusionDates","selected","state","onChange","runningDate","invalidDays","minDate","datesToExclude","exclude","find","d","day","sunday","monday","tuesday","wednesday","thursday","friday","saturday","i","getDay","setDate","getDate","maxMonths","setMonth","getMonth","_saveOrderSchedule","checkout","result","cart","checkoutCart","updateCart","newCartObject","RequestedDeliveryDate","then","displayStatic","_renderStaticDisplay","_this$state$date","resources","orderSchedulerLabel","toLocaleDateString","onClick","orderScheduleSetOrEditText","componentDidMount","_this$props$data$chec","dateObj","saveButtonText","tag","type","for","DefaultPageSummary","undefined","pageSummary","title","description","keywords","sharingImageUrl","faviconUrl","canonicalUrl","sharingImage","src","pageTitle","_constructPageTitle","HtmlHeadInclude","name","rel","disableOgTags","_renderOgTags","disableTwitterTags","_renderTwitterTags","property","moduleConfig","ignoreTitleSuffixPrefix","appConfig","pageTitlePrefix","pageTitleSuffix","getBackgroundRepeatProperty","repeat","getBackgroundSizeProperty","buildBackgroundImageStylesByViewport","_request$gridSettings","image","configs","gridSettings","imageSettings","styles","largestGridSettingViewportName","getLargestGridSettingViewportName","authoringViewPorts","getAuthoringViewport","moduleName","layout","isBrowser","authoringHelper","window","_msdyn365","constructViewportInformationForImage","themeSettings","imgSettings","viewports","_cloneDeep2","xs","w","h","sm","md","lg","xl","skipWidthAndHeightSettings","keys","vp","_imgSettings$viewport","viewport","minMaxWidth","getMinMaxWidth","urlSrc","getImageResizeUrl","externalProvider","apiSettings","maxWidth","max","minWidth","min","minHeight","backgroundRepeat","backgroundSize","backgroundPosition","setStyleAttribute","currentStyle","style","getDataBgSetAttribute","dataBgSetAttributes","BackgroundImage","stylesByViewport","_onChangeHandler","bind","_getCurrentStyle","mounted","_componentResize","updateAttributes","addEventListener","componentWillUnmount","removeEventListener","shouldComponentUpdate","nextProps","nextState","_this$props$request","_nextProps$request","_this$props$image","_nextProps$image","_this$props$image2","_nextProps$image2","backgroundImageClassName","isAuthoringEditEnabled","processedAtributes","_processAttributes","_isLazyload","attributes","_getAttributes","eventHandlers","onDoubleClick","_getDefaultAttributes","_unused","lazyLoad","getBackgroundImageLazyloadAttributes","role","getBackgroundImageAttributes","currentTarget","binding","eventTarget","$type","selectedStyle","_isEqual2","winInnerWidth","innerWidth","_this$stylesByViewpor","_this$stylesByViewpor2","_this$stylesByViewpor3","_this$stylesByViewpor4","Number","MAX_SAFE_INTEGER","_getDefaultStyle","_this$props$image3","disableLazyLoad","getContainerType","customClassName","containerContent","textSize","Tag","classNameWithHeading","Text","text","editProps","onEdit","SpacerView","renderModuleAttributes","DefaultInlineStyle","inlineStyle","styleHtml","ProductPageSummary","_context$request$chan","productPageSummary","productId","productBrand","price","productName","productDescription","productImageUrl","_renderProductMetadata","channel","Currency","currencyCode","productMetaData","JSON","stringify","sku","brand","offers","priceCurrency","Default3SlotContainer","center","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","MsDyn365","unsubscribe","forEach","component","_component$props$noti","events","getValue","NotificationEvents","RemovedFromList","addNotificationComponent","notificationComponent","_notificationComponen","instanceId","handler","_notificationComponen2","newList","unshift","_className","moduleProps","_renderNotificationsList","hasNotifications","ArrayExtensions","hasElements","containerClassName","maxHeight","ComponentClass","componentClass","configuration","pageYOffset","Math","newTop","DefaultContainer","_getChildColClassName","childrenWidth","_getWidthClass","s","get"],"mappings":"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","file":"static/js/11.1cc0a9a950bd1c71222e.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","/*!\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\n// eslint-disable-next-line security/detect-unsafe-regex\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","/*!\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 { IOrderSchedulerViewProps } from './order-scheduler';\r\nimport { Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nexport default (props: IOrderSchedulerViewProps) => {\r\n const { datePicker, saveButtonProps, fieldLabelProps, orderScheduleWrapperProps, staticDisplay, shouldDisplayStatic } = props;\r\n return (\r\n \r\n {shouldDisplayStatic ? (\r\n staticDisplay\r\n ) : (\r\n \r\n \r\n {datePicker}\r\n \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 { 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.\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 // eslint-disable-next-line security/detect-unsafe-regex\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. 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","/*!\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 { 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","/**\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. See License.txt in the project root for license information.\r\n * IOrderScheduler contentModule Interface Properties\r\n * THIS FILE IS AUTO-GENERATED - MANUAL MODIFICATIONS WILL BE LOST\r\n */\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\nexport interface IOrderSchedulerConfig extends Msdyn365.IModuleConfig {\r\n className?: string;\r\n minDate?: number;\r\n maxMonths?: number;\r\n invalidDays?: IExcludeDaysData[];\r\n}\r\n\r\nexport interface IOrderSchedulerResources {\r\n saveButtonText: string;\r\n orderSchedulerLabel: string;\r\n orderScheduleSetOrEditText: string;\r\n}\r\n\r\nexport interface IOrderSchedulerProps extends Msdyn365.IModule {\r\n resources: IOrderSchedulerResources;\r\n config: IOrderSchedulerConfig;\r\n}\r\n\r\nexport const enum ExcludeDaysDay {\r\n sunday = 'sunday',\r\n monday = 'monday',\r\n tuesday = 'tuesday',\r\n wednesday = 'wednesday',\r\n thursday = 'thursday',\r\n friday = 'friday',\r\n saturday = 'saturday'\r\n}\r\n\r\nexport interface IExcludeDaysData {\r\n day?: ExcludeDaysDay;\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 { IOrderSchedulerData } from './order-scheduler.data';\r\nimport { ExcludeDaysDay, IOrderSchedulerProps } from './order-scheduler.props.autogenerated';\r\nimport DatePicker from 'react-datepicker';\r\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\n\r\nexport interface IOrderSchedulerViewProps extends IOrderSchedulerProps {\r\n datePicker: React.ReactNode;\r\n saveButtonProps: INodeProps;\r\n fieldLabelProps: INodeProps;\r\n orderScheduleWrapperProps: INodeProps;\r\n staticDisplay: React.ReactNode;\r\n shouldDisplayStatic: boolean;\r\n}\r\ninterface IOrderSchedulerState {\r\n date: Date | null;\r\n displayStatic: boolean;\r\n}\r\n/**\r\n *\r\n * OrderScheduler component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass OrderScheduler extends React.PureComponent, IOrderSchedulerState> {\r\n private _fieldId = 'date-picker-id';\r\n constructor(props: IOrderSchedulerProps) {\r\n super(props);\r\n this.state = {\r\n date: null,\r\n displayStatic: false\r\n };\r\n }\r\n\r\n public componentDidMount() {\r\n const result = this.props.data.checkout?.result;\r\n if (result) {\r\n const date = result.checkoutCart.cart.RequestedDeliveryDate;\r\n if (date) {\r\n const dateObj = new Date(date);\r\n\r\n if (!this._checkIfDefaultDate(dateObj)) {\r\n this.setState({ date: dateObj, displayStatic: true });\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _checkIfDefaultDate = (date: Date) => date.getTime() === new Date(0).getTime();\r\n\r\n private _handleDateChange = (newDate: Date) => this.setState({ date: newDate });\r\n\r\n private _renderDatePicker = () => {\r\n const currentDateISO = Date.now();\r\n return (\r\n \r\n );\r\n };\r\n\r\n private _getExclusionDates = (currentDateISO: number): Date[] => {\r\n const maxDate = this._getMaxDate(currentDateISO);\r\n const runningDate = new Date(currentDateISO);\r\n const {\r\n config: { invalidDays, minDate }\r\n } = this.props;\r\n const datesToExclude: Date[] = [];\r\n if (!invalidDays) {\r\n return datesToExclude;\r\n }\r\n\r\n const exclude: number[] = [];\r\n if (invalidDays.find(d => d.day === ExcludeDaysDay.sunday)) {\r\n exclude.push(0);\r\n }\r\n if (invalidDays.find(d => d.day === ExcludeDaysDay.monday)) {\r\n exclude.push(1);\r\n }\r\n if (invalidDays.find(d => d.day === ExcludeDaysDay.tuesday)) {\r\n exclude.push(2);\r\n }\r\n if (invalidDays.find(d => d.day === ExcludeDaysDay.wednesday)) {\r\n exclude.push(3);\r\n }\r\n if (invalidDays.find(d => d.day === ExcludeDaysDay.thursday)) {\r\n exclude.push(4);\r\n }\r\n if (invalidDays.find(d => d.day === ExcludeDaysDay.friday)) {\r\n exclude.push(5);\r\n }\r\n if (invalidDays.find(d => d.day === ExcludeDaysDay.saturday)) {\r\n exclude.push(6);\r\n }\r\n let i = 0;\r\n while (runningDate < maxDate) {\r\n if (minDate && i < minDate) {\r\n datesToExclude.push(new Date(runningDate));\r\n i++;\r\n } else {\r\n const day = runningDate.getDay();\r\n if (exclude.includes(day)) {\r\n datesToExclude.push(new Date(runningDate));\r\n }\r\n }\r\n runningDate.setDate(runningDate.getDate() + 1);\r\n }\r\n return datesToExclude;\r\n };\r\n\r\n private _getMaxDate = (currentDateISO: number) => {\r\n const {\r\n config: { maxMonths }\r\n } = this.props;\r\n const date = new Date(currentDateISO);\r\n date.setMonth(date.getMonth() + (maxMonths || 12));\r\n return date;\r\n };\r\n\r\n private _saveOrderSchedule = () => {\r\n const {\r\n data: {\r\n checkout: { result }\r\n }\r\n } = this.props;\r\n\r\n if (result) {\r\n const cart = Object.assign({}, result.checkoutCart.cart);\r\n if (cart) {\r\n void result.checkoutCart\r\n .updateCart({\r\n newCartObject: { ...cart, RequestedDeliveryDate: this.state.date || new Date(0) }\r\n })\r\n .then(() => this.setState({ displayStatic: (this.state.date && !this._checkIfDefaultDate(this.state.date)) || false }));\r\n }\r\n }\r\n };\r\n\r\n private _renderStaticDisplay = (): React.ReactNode => (\r\n \r\n

\r\n {this.props.resources.orderSchedulerLabel}: {this.state.date?.toLocaleDateString() || ''}\r\n

\r\n this.setState({ displayStatic: false })} key={'order-schedule-a'}>\r\n {this.props.resources.orderScheduleSetOrEditText}\r\n \r\n
\r\n );\r\n\r\n public render(): JSX.Element | null {\r\n const {\r\n resources: { saveButtonText }\r\n } = this.props;\r\n const viewProps: IOrderSchedulerViewProps = {\r\n ...this.props,\r\n datePicker: this._renderDatePicker(),\r\n saveButtonProps: {\r\n tag: 'button',\r\n type: 'button',\r\n onClick: this._saveOrderSchedule,\r\n className: classnames('msc-btn', 'eve-order-schedule__button'),\r\n children: saveButtonText\r\n },\r\n fieldLabelProps: {\r\n tag: 'label',\r\n for: this._fieldId,\r\n children: this.props.resources.orderSchedulerLabel,\r\n className: ''\r\n },\r\n orderScheduleWrapperProps: {\r\n tag: 'div',\r\n className: classnames(this.props.config.className, 'eve-order-schedule')\r\n },\r\n staticDisplay: this._renderStaticDisplay(),\r\n shouldDisplayStatic: this.state.displayStatic\r\n };\r\n return this.props.renderView(viewProps);\r\n }\r\n}\r\n\r\nexport default OrderScheduler;\r\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 { IDefaultPageSummaryData } from './default-page-summary.data';\nimport { IDefaultPageSummaryProps } from './default-page-summary.props.autogenerated';\n\n/**\n *\n * DefaultPageSummaryMetadata component.\n * @extends {React.PureComponent}\n */\nclass DefaultPageSummary extends React.PureComponent> {\n public render(): JSX.Element {\n if (this.props.data.pageSummary.result === undefined) {\n throw new Error('PageSummaryData input to page-summary is undefined. Unable to generate page-summary');\n }\n let {\n data: {\n pageSummary: {\n result: { title, description, keywords, sharingImageUrl, faviconUrl }\n }\n }\n } = this.props;\n\n const {\n config,\n context,\n data: {\n pageSummary: {\n result: { canonicalUrl }\n }\n }\n } = this.props;\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 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 {!config.disableOgTags && this._renderOgTags(pageTitle, description, sharingImageUrl)}\n {!config.disableTwitterTags && this._renderTwitterTags(pageTitle, description, sharingImageUrl)}\n \n );\n }\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 private _renderTwitterTags(\n title: string | undefined,\n description: string | undefined,\n sharingImageUrl: string | undefined\n ): JSX.Element {\n return (\n \n {title && }\n {description && }\n {sharingImageUrl && }\n \n \n );\n }\n\n private _constructPageTitle(title: string | undefined, app: IGeneric): string | undefined {\n if (!title) {\n title = '';\n }\n\n const moduleConfig = this.props.config;\n if (moduleConfig && moduleConfig.ignoreTitleSuffixPrefix) {\n return title;\n }\n\n const appConfig = app && app.platform;\n if (appConfig) {\n if (appConfig.pageTitlePrefix) {\n title = (appConfig.pageTitlePrefix as string) + title;\n }\n if (appConfig.pageTitleSuffix) {\n title += (appConfig.pageTitleSuffix as string);\n }\n }\n\n return title;\n }\n}\n\nexport default DefaultPageSummary;\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 // eslint-disable-next-line security/detect-object-injection -- bracket object notation with user input present leads to eslint security issue.\n imgSettings.viewports[viewport],\n imgSettings,\n skipWidthAndHeightSettings,\n image?.externalProvider,\n request?.apiSettings\n );\n // eslint-disable-next-line security/detect-object-injection -- bracket object notation with user input present leads to eslint security issue.\n styles[viewport] = {\n maxWidth: minMaxWidth.max,\n minWidth: minMaxWidth.min,\n // eslint-disable-next-line security/detect-object-injection -- bracket object notation with user input present leads to eslint security issue.\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 // eslint-disable-next-line security/detect-object-injection -- bracket object notation with user input present leads to eslint security issue.\n if (styles[vp].backgroundImage) {\n // eslint-disable-next-line security/detect-object-injection -- bracket object notation with user input present leads to eslint security issue.\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\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport msdyn365Commerce, { getLargestGridSettingViewportName, IGeneric, isAuthoringEditEnabled } 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._onChangeHandler = this._onChangeHandler.bind(this);\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 backgroundImageClassName = isAuthoringEditEnabled(this.props.request)\n ? `${BACKGROUND_IMAGE_CLASS_NAME} ms-editable-field enabled`\n : BACKGROUND_IMAGE_CLASS_NAME;\n const processedAtributes = this._processAttributes(\n backgroundImageClassName,\n this.currentStyle,\n this.stylesByViewport,\n this._isLazyload()\n );\n const attributes = this._getAttributes(processedAtributes);\n const eventHandlers = isAuthoringEditEnabled(this.props.request) ? { onDoubleClick: this._onChangeHandler } : {};\n\n if (this.state.updateAttributes) {\n // Update component with the latest attributes.\n return (\n
\n {children}\n
\n );\n } else if (this._isLazyload()) {\n // On lazyload, only include the class name on the first render.\n return (\n
\n {children}\n
\n );\n } else {\n // On lazyload disabled, render the default attributes from server side.\n return (\n
\n {children}\n
\n );\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 _onChangeHandler(event: React.SyntheticEvent | { target: { value: string } }): void {\n if (event.target === (event as React.SyntheticEvent).currentTarget) {\n const binding: any = this.props.image;\n const eventTarget: any = event.target;\n binding.$type = eventTarget.value;\n }\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 // eslint-disable-next-line security/detect-object-injection -- bracket object notation with user input present leads to eslint security issue.\n (this.stylesByViewport[vp]?.minWidth || this.stylesByViewport[vp]?.maxWidth) &&\n // eslint-disable-next-line security/detect-object-injection -- bracket object notation with user input present leads to eslint security issue.\n (this.stylesByViewport[vp]?.minWidth || 0) <= winInnerWidth &&\n // eslint-disable-next-line security/detect-object-injection -- bracket object notation with user input present leads to eslint security issue.\n winInnerWidth <= (this.stylesByViewport[vp]?.maxWidth || Number.MAX_SAFE_INTEGER)\n ) {\n // eslint-disable-next-line security/detect-object-injection -- bracket object notation with user input present leads to eslint security issue.\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 // eslint-disable-next-line security/detect-object-injection -- bracket object notation with user input present leads to eslint security issue.\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.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { SDK_FRAGMENT_NAME } from '@msdyn365-commerce/core-internal';\nimport * as React from 'react';\nimport { isAbsoluteUrl, isRelativeUrl, logDebug, logError } from '../../utils/script-utils';\nimport { IDefaultInlineStyleProps } from './default-inline-style.props.autogenerated';\n\n/**\n *\n * DefaultStyle\n * @extends {React.PureComponent>}\n */\n\nconst DefaultInlineStyle = (props: IDefaultInlineStyleProps<{}>) => {\n const { config, id, typeName, telemetry } = props;\n logDebug(`Adding style tags for '${id}/${typeName}'`, telemetry);\n const source = config.inlineStyle;\n\n if (!source || source === '' || isAbsoluteUrl(source) || isRelativeUrl(source)) {\n logError('Invalid inline style - Empty inline source defined or a url is being used as a source.', telemetry);\n return null;\n }\n\n if (source.includes('')) {\n logError('Invalid inline style - inline style should not contain html tags', telemetry);\n return null;\n }\n\n const styleHtml = ``;\n return React.createElement(SDK_FRAGMENT_NAME, { key: id, dangerouslySetInnerHTML: { __html: styleHtml } });\n};\n\nexport default DefaultInlineStyle;\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