{"version":3,"sources":["webpack:///./src/modules/gtm-body/gtm-body.tsx?0040","webpack:///./src/modules/eve-iframe/eve-iframe.tsx?5e2d","webpack:///src/modules/notifications-list/notifications-list.view.tsx?6e9c","webpack:///./src/modules/loyalty-auto-enroll/loyalty-auto-enroll.view.tsx?e8e3","webpack:///./src/modules/gtm-body/gtm-body.view.tsx?8462","webpack:///src/utils/classnames.ts?8f2b","webpack:///src/modules/adventureworks/adventureworks.tsx?ed80","webpack:///./src/themes/nile-theme/nile-theme.tsx?95c2","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/loyalty-auto-enroll/loyalty-auto-enroll.tsx?2f78","webpack:///src/modules/default-metatags/default-metatags.tsx?1bb4","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/usercentrics-inline-script/usercentrics-inline-script.tsx?adac","webpack:///src/modules/spacer/spacer.view.tsx?bd25","webpack:///src/modules/fabrikam/fabrikam.tsx?a751","webpack:///./src/modules/eve-iframe/eve-iframe.view.tsx?cd3b","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/article-details/article-details.tsx?ef6b","webpack:///src/modules/default-container/default-container.tsx?4334","webpack:///./src/modules/article-details/article-details.view.tsx?67e5"],"names":["GtmBody","React","render","this","props","renderView","EveIframe","NotificationsListView","Module","Object","assign","container","notificationsList","msdyn365Commerce","isBrowser","url","config","gtmId","body","document","querySelector","exists","gtm","createElement","id","ifel","setAttribute","appendChild","prepend","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","heading","headingText","target","value","_getColClassName","classNames","length","reduce","memo","_ref","left","right","push","slots","telemetry","data","log","LogLevel","Debug","values","typeName","content","slotsClassNames","Warning","headingProps","_objectSpread","requestContext","Container","containerType","className","backgroundImage","backgroundImageRepeat","backgroundImageSize","moduleLayout","msdyn365__moduleLayout","HeadingComponent","join","Fragment","slot","index","key","DefaultPageContainer","skipToMainText","app","platform","tabIndexSkipToMain","isEditorialMode","actionContext","href","tabIndex","header","children","subheader","primary","subfooter","footer","Spacer","spacerClass","spacerHeight","viewProps","classnames","LoyaltyAutoEnroll","user","isAuthenticated","_loyaltyCard$result","loyaltyCard","apiSettings","result","CardNumber","issueLoyalty","IssueLoyaltyInput","catch","err","console","error","__decorate","computed","DefaultMetaTags","nonceToken","isNonceEnabled","metaTags","metaTagsHtml","_addNonceToInlineScript","metaTagsText","simpleText","text","SDK_FRAGMENT_NAME","dangerouslySetInnerHTML","__html","inlineScripRegex","metaTag","test","replace","DefaultPageSummary","undefined","pageSummary","Error","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","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","maxWidth","max","minWidth","min","minHeight","backgroundRepeat","backgroundSize","backgroundPosition","setStyleAttribute","currentStyle","style","getDataBgSetAttribute","dataBgSetAttributes","BackgroundImage","state","stylesByViewport","_onChangeHandler","bind","_getCurrentStyle","mounted","_componentResize","updateAttributes","componentDidMount","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","setState","winInnerWidth","innerWidth","_this$stylesByViewpor","_this$stylesByViewpor2","_this$stylesByViewpor3","_this$stylesByViewpor4","Number","MAX_SAFE_INTEGER","_getDefaultStyle","_this$props$image3","disableLazyLoad","getContainerType","customClassName","containerContent","tag","textSize","Tag","classNameWithHeading","Text","editProps","onEdit","logError","errorMessage","UsercentricsInlineScript","logDebug","debugMessage","source","inlineScript","isAbsoluteUrl","isRelativeUrl","includes","scriptHtml","dataProcessingServiceName","SpacerView","renderModuleAttributes","width","height","border","overflow","srcURL","Default3SlotContainer","center","NotificationComponentsList","Component","feed","ObjectExtensions","isNullOrUndefined","minTopOffset","maxTopOffset","_stickyConfiguration","_notificationsComponentList","notificationsComponentList","_handleTopUpdate","_getCurrentTopPosition","isPropsDifferent","maxNotificationsCount","isStateDifferent","top","every","find","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","ArticleDetails","product","productId","ItemId","ProductsDataActions","getChannelProductAttributesAsync","modelInfo","n","Name","articleDetailsProps","DefaultContainer","_getChildColClassName","childrenWidth","_getWidthClass","s","get"],"mappings":"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","file":"static/js/12.50f28423ca8028d201d5.chunk.js","sourcesContent":["/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\n\r\nimport { IGtmBodyData } from './gtm-body.data';\r\nimport { IGtmBodyProps } from './gtm-body.props.autogenerated';\r\n\r\nexport interface IGtmBodyViewProps extends IGtmBodyProps {}\r\n\r\n/**\r\n *\r\n * GtmBody component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass GtmBody extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n return this.props.renderView(this.props);\r\n }\r\n}\r\n\r\nexport default GtmBody;\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 { IEveIframeData } from './eve-iframe.data';\r\nimport { IEveIframeProps } from './eve-iframe.props.autogenerated';\r\n\r\nexport interface IEveIframeViewProps extends IEveIframeProps {}\r\n\r\n/**\r\n *\r\n * EveIframe component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass EveIframe extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n return this.props.renderView(this.props);\r\n }\r\n}\r\n\r\nexport default EveIframe;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { INotificationsListViewProps } from './notifications-list';\n\nexport const NotificationsListView: React.FC = props => {\n return {props.notificationsList};\n};\n\nexport default NotificationsListView;\n","/*!\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 { ILoyaltyAutoEnrollViewProps } from './loyalty-auto-enroll';\r\n\r\nexport default (props: ILoyaltyAutoEnrollViewProps) => {\r\n return null;\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 msdyn365Commerce from '@msdyn365-commerce/core-internal';\r\nimport { IGtmBodyViewProps } from './gtm-body';\r\n\r\nexport default (props: IGtmBodyViewProps) => {\r\n if (msdyn365Commerce.isBrowser) {\r\n const url = `https://www.googletagmanager.com/ns.html?id=${props.config.gtmId}`;\r\n const body = document.querySelector('body');\r\n const exists = !!document.querySelector('#gtm');\r\n if (body && !exists) {\r\n const gtm = document.createElement('noscript');\r\n gtm.id = 'gtm';\r\n const ifel = document.createElement('iframe');\r\n ifel.setAttribute('src', url);\r\n ifel.setAttribute('height', '0');\r\n ifel.setAttribute('width', '0');\r\n ifel.setAttribute('style', 'display: none; visibility: hidden;');\r\n gtm.appendChild(ifel);\r\n body.prepend(gtm);\r\n }\r\n }\r\n\r\n return null;\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\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","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\n// TODO: Current build require at least one tsx file\nexport default () =>
;\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport * as React from 'react';\r\n\r\n// TODO: Current build require at least one tsx file\r\nexport default () =>
;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 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","/*!\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 { ILoyaltyAutoEnrollData } from './loyalty-auto-enroll.data';\r\nimport { ILoyaltyAutoEnrollProps } from './loyalty-auto-enroll.props.autogenerated';\r\nimport { computed } from 'mobx';\r\nimport { issueLoyalty, IssueLoyaltyInput } from '@msdyn365-commerce-modules/retail-actions';\r\nexport interface ILoyaltyAutoEnrollViewProps extends ILoyaltyAutoEnrollProps {}\r\n\r\n/**\r\n *\r\n * LoyaltyAutoEnroll component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass LoyaltyAutoEnroll extends React.PureComponent> {\r\n @computed\r\n private get isAuthenticated(): boolean {\r\n const {\r\n context: {\r\n request: { user }\r\n }\r\n } = this.props;\r\n return user && user.isAuthenticated;\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const {\r\n data: { loyaltyCard },\r\n context: {\r\n request: { apiSettings },\r\n actionContext\r\n }\r\n } = this.props;\r\n if (this.isAuthenticated && !loyaltyCard?.result?.CardNumber) {\r\n issueLoyalty(new IssueLoyaltyInput(apiSettings), actionContext).catch(err => console.error(err));\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nexport default LoyaltyAutoEnroll;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nimport { isNonceEnabled, SDK_FRAGMENT_NAME } from '@msdyn365-commerce/core-internal';\nimport { IDefaultMetatagsData } from './default-metatags.data';\nimport { IDefaultMetatagsProps } from './default-metatags.props.autogenerated';\n\n/**\n *\n * DefaultPageSummaryMetadata component\n * @extends {React.PureComponent>}\n */\nclass DefaultMetaTags extends React.PureComponent> {\n public render(): JSX.Element {\n const { data, config } = this.props;\n const nonceToken = this.props.context && isNonceEnabled(this.props.context.request);\n let metaTagsHtml: string = '';\n let metaTags;\n if (config.metaTags) {\n metaTags = nonceToken ? this._addNonceToInlineScript(config.metaTags, nonceToken) : config.metaTags;\n metaTagsHtml = metaTags && metaTags.join('\\n');\n } else if (data.metaTags) {\n metaTags = data.metaTags;\n let metaTagsText = metaTags.map(simpleText => simpleText.text);\n metaTagsText = nonceToken ? this._addNonceToInlineScript(metaTagsText, nonceToken) : metaTagsText;\n metaTagsHtml = metaTagsText && metaTagsText.join('\\n');\n }\n return React.createElement(SDK_FRAGMENT_NAME, { key: this.props.id, dangerouslySetInnerHTML: { __html: metaTagsHtml } });\n }\n\n private _addNonceToInlineScript(metaTags: string[], nonceToken: string): string[] {\n const inlineScripRegex = /(.*?)<\\/script>/g;\n return metaTags\n .map(metaTag => {\n if (inlineScripRegex.test(metaTag)) {\n return metaTag.replace(/')) {\r\n logError('Invalid inline script - inline script should not contain html tags', this.props.telemetry);\r\n return null;\r\n }\r\n\r\n const nonceToken = this.props.context && isNonceEnabled(this.props.context.request);\r\n const scriptHtml = ``;\r\n return React.createElement(SDK_FRAGMENT_NAME, { key: this.props.id, dangerouslySetInnerHTML: { __html: scriptHtml } });\r\n }\r\n}\r\n\r\nexport default UsercentricsInlineScript;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\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 * as React from 'react';\n\n// TODO: Current build require at least one tsx file\nexport default () =>
;\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 { IEveIframeViewProps } from './eve-iframe';\r\n\r\nexport default (props: IEveIframeViewProps) => {\r\n return (\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 { IDefaultContainer3SlotsData } from './default-container-3-slots.data';\nimport { IDefaultContainer3SlotsProps } from './default-container-3-slots.props.autogenerated';\n\ninterface IColSizes {\n left: string[];\n center: string[];\n right: string[];\n}\n\n/**\n *\n * CoreComponent component\n * @extends {React.PureComponent>}\n */\nclass Default3SlotContainer extends React.PureComponent> {\n constructor(props: IDefaultContainer3SlotsProps) {\n super(props);\n }\n\n public render(): JSX.Element {\n const { slots, telemetry, context, config, data } = this.props;\n\n const slotsClassNames = this._getColClassName();\n const content = slots && slots.content;\n\n telemetry.log(LogLevel.Debug, \"Default 3 Slot Container rendering for '{id}/{typeName}'\", {\n values: [this.props.id, this.props.typeName]\n });\n if (content && content.length > 3) {\n telemetry.log(LogLevel.Warning, 'Default 3 Slot Container passed more than 3 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 {content && content[2] &&
{content[2]}
}\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. (3)\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 center: ['col'],\n right: ['col']\n };\n }\n\n return classNames.reduce(\n (memo: IColSizes, [left, center, right]: string[]) => {\n memo.left.push(left);\n memo.center.push(center);\n memo.right.push(right);\n return memo;\n },\n { left: [], center: [], right: [] }\n );\n };\n}\n\nexport default Default3SlotContainer;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365 from '@msdyn365-commerce/core';\nimport {\n INotificationComponentsList,\n INotificationComponentsListState,\n INotificationComponentType,\n NotificationComponentsListsManager,\n NotificationEvents,\n NotificationFeedType\n} from '@msdyn365-commerce-modules/notifications-core';\nimport { ArrayExtensions, ObjectExtensions, Random } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport React from 'react';\n\nimport { INotificationsListProps } from './notifications-list.props.autogenerated';\n\n/**\n * View for the notifications list which specifies the container and notifications items.\n */\nexport interface INotificationsListViewProps extends INotificationsListProps<{}> {\n container: IModuleProps;\n notificationsList: React.ReactNode;\n}\n\n/**\n * Configuration to make the list stickable to the page without overlapping any content on top.\n */\nexport interface INotificationComponentStickyConfiguration {\n /**\n * Minimum offset for top (default for the page).\n */\n minTopOffset: number;\n\n /**\n * Maximum offset for top (to limit the top offset while scrolling).\n */\n maxTopOffset: number;\n}\n\n/**\n * Stickable notification list state which defines the top position of the list at the moment.\n */\nexport interface IStickableNotificationComponentsListState extends INotificationComponentsListState {\n /**\n * The top position of the list on the page.\n */\n top?: number;\n}\n\n/**\n * A notification list which is operated by notification manager.\n * It is responsible for rendering the received notifications.\n */\nexport class NotificationComponentsList extends React.Component, IStickableNotificationComponentsListState>\n implements INotificationComponentsList {\n /**\n * The class name to use.\n */\n private static readonly _className: string = 'msc-notifications-list';\n\n /**\n * The feed which the list is responsible for displaying.\n */\n public readonly feed: NotificationFeedType;\n\n /**\n * Configuration which specifies if and how the list should be stickable.\n * If undefined, the configuration will not be used at all. And list will not be stickable.\n */\n private readonly _stickyConfiguration?: INotificationComponentStickyConfiguration;\n\n /**\n * The list of notification which should be shown in the list at the moment.\n * @remarks Should be used to retrieve the latest list of notifications\n * as the list from the state is updated only after rendering.\n */\n private _notificationsComponentList: INotificationComponentType[];\n\n /**\n * Unique identifier of the list.\n * Uses format 'NotificationComponentsList-GUID';.\n */\n private _instanceId?: string;\n\n /**\n * Initializes instance with the given props.\n * @param props - The configuration of the list.\n */\n public constructor(props: INotificationsListProps<{}>) {\n super(props);\n\n this.feed = props.config.feed;\n\n if (\n !ObjectExtensions.isNullOrUndefined(props.config.minTopOffset) &&\n !ObjectExtensions.isNullOrUndefined(props.config.maxTopOffset)\n ) {\n this._stickyConfiguration = {\n minTopOffset: props.config.minTopOffset,\n maxTopOffset: props.config.maxTopOffset\n };\n }\n\n this._notificationsComponentList = [];\n\n this.state = {\n notificationsComponentList: []\n };\n\n this._handleTopUpdate = this._handleTopUpdate.bind(this);\n this._getCurrentTopPosition = this._getCurrentTopPosition.bind(this);\n }\n\n /**\n * Specifies if the component should be re-rendered.\n * @param nextProps - The next configuration the component is receiving.\n * @param nextState - The next state the component is receiving.\n * @returns True if component should be re-rendered, false if component should not be changed.\n */\n public shouldComponentUpdate(\n nextProps: Readonly>,\n nextState: Readonly\n ): boolean {\n const isPropsDifferent =\n this.feed !== nextProps.config.feed ||\n this.props.config.maxNotificationsCount !== nextProps.config.maxNotificationsCount ||\n this.props.config.maxTopOffset !== nextProps.config.maxTopOffset ||\n this.props.config.minTopOffset !== nextProps.config.minTopOffset ||\n this.props.config.className !== nextProps.config.className ||\n this.props.id !== nextProps.id;\n const isStateDifferent =\n this.state.top !== nextState.top ||\n this.state.notificationsComponentList.length !== nextState.notificationsComponentList.length ||\n this.state.notificationsComponentList.every(value =>\n nextState.notificationsComponentList.find(otherValue => otherValue.props.notification.id === value.props.notification.id)\n );\n return isPropsDifferent || isStateDifferent;\n }\n\n /**\n * Adds the current instance to the global list of instances so that it becomes available for the notification manager.\n * In case the list is specified to be stickable, also subscribes to the scroll event to update the offsets.\n */\n public componentDidMount(): void {\n NotificationComponentsListsManager.subscribe(this);\n\n this._instanceId = `NotificationComponentsList-${Random.Guid.generateGuid()}`;\n\n if (MsDyn365.isBrowser && this._stickyConfiguration !== undefined) {\n window.addEventListener('scroll', this._handleTopUpdate);\n }\n }\n\n /**\n * Remove the instance from the global list of instances so that it becomes unavailable for the notification manager.\n * Unsubscribes itself from the notification events and scroll event.\n */\n public componentWillUnmount(): void {\n NotificationComponentsListsManager.unsubscribe(this);\n\n this._notificationsComponentList.forEach(component =>\n component.props.notification.events.getValue(NotificationEvents.RemovedFromList)?.unsubscribe(this._instanceId!)\n );\n\n if (MsDyn365.isBrowser && this._stickyConfiguration !== undefined) {\n window.removeEventListener('scroll', this._handleTopUpdate);\n }\n }\n\n /**\n * Adds a new notification to the list.\n * @param {INotificationComponentType} notificationComponent Data required to render the notification. @see INotificationComponentType.\n */\n public addNotificationComponent(notificationComponent: INotificationComponentType): void {\n if (this._instanceId === undefined) {\n return;\n }\n\n if (\n !ObjectExtensions.isNullOrUndefined(this.props.config.maxNotificationsCount) &&\n this._notificationsComponentList.length >= this.props.config.maxNotificationsCount\n ) {\n throw new Error('Notifications limit reached, cannot show more notifications.');\n }\n\n // Subscribe to the remove event to filter the removed notifications out from the list.\n notificationComponent.props.notification.events.getValue(NotificationEvents.RemovedFromList)?.subscribe({\n instanceId: this._instanceId,\n handler: () => {\n notificationComponent.props.notification.events\n .getValue(NotificationEvents.RemovedFromList)\n ?.unsubscribe(this._instanceId!);\n const newList = this._notificationsComponentList.filter(component => component !== notificationComponent);\n this._notificationsComponentList = newList;\n this.setState({ notificationsComponentList: this._notificationsComponentList });\n }\n });\n\n // Prepend the notification as newest should come to the top.\n this._notificationsComponentList.unshift(notificationComponent);\n this.setState({ notificationsComponentList: this._notificationsComponentList });\n this._handleTopUpdate();\n }\n\n public render(): React.ReactNode {\n const className = classnames(\n NotificationComponentsList._className,\n `${NotificationComponentsList._className}__${this.feed}`,\n this.props.config.className\n );\n\n const viewProps: INotificationsListViewProps = {\n ...this.props,\n container: {\n moduleProps: this.props,\n className,\n id: this._instanceId,\n style: { top: this.state.top }\n },\n notificationsList: this._renderNotificationsList()\n };\n\n return this.props.renderView(viewProps);\n }\n\n /**\n * Renders the list of notifications.\n * @returns React node with a list of notifications.\n */\n private _renderNotificationsList(): React.ReactNode {\n const hasNotifications = ArrayExtensions.hasElements(this.state.notificationsComponentList);\n const containerClassName = classnames(\n `${NotificationComponentsList._className}__scrollable`,\n hasNotifications\n ? `${NotificationComponentsList._className}__has-notifications`\n : `${NotificationComponentsList._className}__empty`\n );\n\n return (\n
\n {this.state.notificationsComponentList.map(component => {\n const ComponentClass = component.componentClass;\n return ;\n })}\n
\n );\n }\n\n /**\n * Retrieves current top offset position by looking at scroll position and rounding it to the stickable limits.\n */\n private _getCurrentTopPosition(): number | undefined {\n const configuration = this._stickyConfiguration;\n\n if (configuration === undefined) {\n return undefined;\n }\n\n let pageYOffset = 0;\n if (MsDyn365.isBrowser) {\n pageYOffset = window.pageYOffset;\n }\n\n return Math.max(Math.min(configuration.maxTopOffset, configuration.maxTopOffset - pageYOffset), configuration.minTopOffset);\n }\n\n /**\n * Updates the top offset on scroll event to make the list stickable.\n */\n private _handleTopUpdate(): void {\n const newTop = this._getCurrentTopPosition();\n this.setState({ top: newTop });\n }\n}\n\nexport default NotificationComponentsList;\n","/*!\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 { IArticleDetailsData } from './article-details.data';\r\nimport { IArticleDetailsProps } from './article-details.props.autogenerated';\r\nimport { ProductsDataActions, AttributeProduct } from '@msdyn365-commerce/retail-proxy/';\r\nexport interface IArticleDetailsViewProps extends IArticleDetailsProps {\r\n productId: string;\r\n modelInfo: string;\r\n attributes: AttributeProduct[] | undefined;\r\n}\r\n\r\n/**\r\n *\r\n * ArticleDetails component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass ArticleDetails extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n const {\r\n data: { product }\r\n } = this.props;\r\n\r\n const productId = product.result && product.result.ItemId ? product.result.ItemId : '';\r\n const attributes = ProductsDataActions.getChannelProductAttributesAsync(this.context);\r\n const modelInfo = attributes.result ? attributes.result.find(n => n.Name === 'ModelSize') : '';\r\n\r\n const articleDetailsProps: IArticleDetailsViewProps = {\r\n ...this.props,\r\n productId,\r\n modelInfo: modelInfo && modelInfo.Name ? modelInfo.Name : '',\r\n attributes: attributes.result\r\n };\r\n\r\n return this.props.renderView(articleDetailsProps);\r\n }\r\n}\r\n\r\nexport default ArticleDetails;\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 * as React from 'react';\nimport { Container, HeadingComponent, IHeadingComponentProps } from '../../components/base-components';\nimport { colWidths } from '../../utils/classnames';\nimport { IDefaultContainerData } from './default-container.data';\nimport { childrenWidth as childrenWidthEnum, IDefaultContainerProps, layout as layoutEnum } from './default-container.props.autogenerated';\n\n/**\n *\n * CoreComponent component\n * @extends {React.PureComponent>}\n */\nclass DefaultContainer extends React.PureComponent> {\n constructor(props: IDefaultContainerProps) {\n super(props);\n }\n\n public render(): JSX.Element {\n const { slots, telemetry, config, data } = this.props;\n telemetry.log(LogLevel.Debug, \"Default Container rendering for '{id}/{typeName}'\", {\n values: [this.props.id, this.props.typeName]\n });\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\n return (\n \n {heading && }\n {slots &&\n slots.content &&\n slots.content.map((children: React.ReactNode, index: number) => {\n return (\n
\n {children}\n
\n );\n })}\n \n );\n }\n\n public handleTextChange = (event: ContentEditableEvent) => (this.props.config.heading!.headingText = event.target.value);\n\n private _getChildColClassName(): string {\n const {\n config: { layout, childrenWidth }\n } = this.props;\n switch (layout) {\n case layoutEnum.flow:\n return childrenWidth === childrenWidthEnum.auto ? 'col-12 col-md' : this._getWidthClass(childrenWidth);\n case layoutEnum.stacked:\n default:\n return 'col-12';\n }\n }\n\n private _getWidthClass(s?: childrenWidthEnum): string {\n return colWidths.get(s || childrenWidthEnum.four) || 'col-12';\n }\n}\n\nexport default DefaultContainer;\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 { IArticleDetailsViewProps } from './article-details';\r\n\r\nexport default (props: IArticleDetailsViewProps) => {\r\n return (\r\n <>\r\n

Details

\r\n\r\n

Article: {props.productId}

\r\n

{props.modelInfo}

\r\n \r\n );\r\n};\r\n"],"sourceRoot":""}