{"version":3,"file":"static/js/b2f5f4554682995ea4d5.bundle.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/themes/loacker/views/interactive-feature-item.view.tsx?0bd8","webpack://Msdyn365.Commerce.Online/./lib/interactive-feature-item/module-registration.js?ba93","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-item/components/links.tsx?7423","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-item/interactive-feature-item.tsx?792c","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-item/interactive-feature-item.view.tsx?bdcc","webpack://Msdyn365.Commerce.Online/external var \"React\"?0d3b","webpack://Msdyn365.Commerce.Online/external var \"ReactDOM\"?853b"],"sourcesContent":["/*--------------------------------------------------------------\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\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { IInteractiveFeatureItemViewProps } from '@msdyn365-commerce-modules/interactive-feature-collection/src/modules/interactive-feature-item/./interactive-feature-item';\r\nimport { IInteractiveFeatureItemConfig } from '@msdyn365-commerce-modules/interactive-feature-collection/src/modules/interactive-feature-item/interactive-feature-item.props.autogenerated';\r\n\r\nimport {\r\n IInteractiveFeatureItemConfig as IInteractiveFeatureItemConfigExt\r\n} from \"../definition-extensions/interactive-feature-item.ext.props.autogenerated\";\r\n\r\nexport interface IInteractiveFeatureItemViewPropsExt extends IInteractiveFeatureItemViewProps {\r\n config: IInteractiveFeatureItemConfig & IInteractiveFeatureItemConfigExt;\r\n}\r\n/**\r\n * Enumerator used to make some calculations to set the proper classnames\r\n * using modular calculations to see if they are in a right or left column or on first or last row.\r\n */\r\nenum MagicNumber {\r\n modularDivisor = 4,\r\n caseNumberZero = 0,\r\n caseNumberOne = 1,\r\n caseNumberTwo = 2\r\n}\r\n\r\n/**\r\n * Feature Item View.\r\n * @param thisProps - Feature Item view props.\r\n * @param indexItem - Feature Item view props.\r\n * @param itemCounter - Feature Item view props.\r\n * @returns Feature item View.\r\n * @extends {} InteractiveFeatureItem\r\n */\r\nconst renderMosaic = (thisProps: IInteractiveFeatureItemViewPropsExt, indexItem?: number, itemCounter?: number): JSX.Element | null => {\r\n const { title, paragraph, image, links,\r\n interactiveFeatureCollectionMosaicContainer,\r\n interactiveFeatureCollectionMosaicImage,\r\n interactiveFeatureCollectionMosaicDetails } = thisProps;\r\n const indexAux = indexItem ? indexItem + MagicNumber.caseNumberOne : MagicNumber.caseNumberOne;\r\n const itemCounterAux = itemCounter ? itemCounter : MagicNumber.caseNumberZero;\r\n const modularAux = indexAux % MagicNumber.modularDivisor;\r\n const firstRow = (indexAux <= MagicNumber.caseNumberTwo) ? 'firstRow' : '';\r\n const lastRow = itemCounterAux && ((indexAux === itemCounterAux) || (indexAux === itemCounterAux - MagicNumber.caseNumberOne)) ? 'lastRow' : '';\r\n const onCornerRight = modularAux === MagicNumber.caseNumberZero ? 'item-corner-right' : '';\r\n const onCornerLeft = modularAux === MagicNumber.caseNumberOne ? 'item-corner-left' : '';\r\n const containerClasses = classnames('ms-interactive-feature-collection-mosaic', onCornerLeft, onCornerRight, firstRow, lastRow);\r\n\r\n return (\r\n \r\n \r\n {image}\r\n \r\n \r\n {title}\r\n {paragraph}\r\n {links}\r\n \r\n \r\n );\r\n};\r\n\r\n/**\r\n * Feature Item View.\r\n * @param thisProps - Feature Item view props.\r\n * @returns Feature item View.\r\n * @extends {} InteractiveFeatureItem\r\n */const renderCarousel = (thisProps: IInteractiveFeatureItemViewPropsExt): JSX.Element | null => {\r\n const { title, paragraph, image, links,\r\n interactiveFeatureCollectionCarouselContainer,\r\n interactiveFeatureCollectionCarouselImage,\r\n interactiveFeatureCollectionCarouselContent } = thisProps;\r\n return (\r\n \r\n \r\n {image}\r\n \r\n \r\n {title}\r\n {paragraph}\r\n {links}\r\n \r\n \r\n );\r\n};\r\n\r\n/**\r\n * Feature Item View.\r\n * @param props - Feature Item view props.\r\n * @returns Feature item View.\r\n * @extends {} InteractiveFeatureItem\r\n */\r\nexport const FeatureItemViewComponent: React.FC = props => {\r\n const { isMosaic, featureItem, indexItem, itemCounter } = props;\r\n if (isMosaic) {\r\n return (\r\n <>\r\n {renderMosaic(props, indexItem, itemCounter)}\r\n \r\n );\r\n }\r\n return (\r\n \r\n {renderCarousel(props)}\r\n \r\n );\r\n};\r\n\r\nexport default FeatureItemViewComponent;\r\n","const binding = { modules: {}, dataActions: {} };\n\n (binding.modules['interactive-feature-item'] = {\n c: () => require('@msdyn365-commerce-modules/interactive-feature-collection/dist/lib/modules/interactive-feature-item/interactive-feature-item'),\n $type: 'contentModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'interactive-feature-item',\n p: 'interactive-feature-collection',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/interactive-feature-collection/dist/lib/modules/interactive-feature-item'\n });\n \n\n \n window.__bindings__ = window.__bindings__ || {};\n window.__bindings__.modules = {\n ...window.__bindings__.modules || {},\n ...binding.modules\n };\n \n window.__bindings__.dataActions = {\n ...window.__bindings__.dataActions || {},\n ...binding.dataActions\n };\n export const viewDictionary = {};\n viewDictionary['__local__|__local__|themes|loacker|views|interactive-feature-item'] = {\n c: () => require('partner/themes/loacker/views/interactive-feature-item.view.tsx'),\n cn: '__local__-__local__-interactive-feature-item'\n };\nviewDictionary['@msdyn365-commerce-modules|interactive-feature-collection|modules|interactive-feature-item|interactive-feature-item'] = {\n c: () => require('@msdyn365-commerce-modules/interactive-feature-collection/dist/lib/modules/interactive-feature-item/interactive-feature-item.view.js'),\n cn: '@msdyn365-commerce-modules-interactive-feature-collection-interactive-feature-item'\n };\nwindow.__bindings__ = window.__bindings__ || {};\nwindow.__bindings__.viewDictionary = {\n ...window.__bindings__.viewDictionary || {},\n ...viewDictionary\n };","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../interactive-feature-item.props.autogenerated';\n\n/**\n * Interactive Feature links.\n */\nexport interface IInteractiveFeatureLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\n/**\n *\n * IInteractiveFeatureLinks component.\n * @extends {React.PureComponent}\n */\nexport class InteractiveFeatureCollectionLinks extends React.PureComponent {\n public render(): JSX.Element {\n const editableLinks = this._mapEditableLinks(this.props.links);\n return (\n
\n {editableLinks && ArrayExtensions.hasElements(editableLinks) ? (\n \n ) : null}\n
\n );\n }\n\n /**\n * IInteractiveFeatureLinks component.\n * @param linkdata - Link data.\n * @returns Editable links.\n */\n private readonly _mapEditableLinks = (linkdata?: ILinksData[]): Msdyn365.ILinksData[] | null => {\n if (!linkdata || !ArrayExtensions.hasElements(linkdata)) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n for (const link of linkdata) {\n // Construct telemetry attribute to render\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\n const linkText = link.linkText ? link.linkText : '';\n payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-interactive-feature-collection__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'button',\n additionalProperties: attributes,\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\n };\n editableLinks.push(editableLink);\n }\n\n return editableLinks;\n };\n}\nexport default InteractiveFeatureCollectionLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { InteractiveFeatureCollectionLinks } from './components';\nimport { IHeadingData, IInteractiveFeatureItemProps } from './interactive-feature-item.props.autogenerated';\n\n/**\n * Interactive Feature Item view props.\n */\nexport interface IInteractiveFeatureItemViewProps extends IInteractiveFeatureItemProps<{}> {\n title: React.ReactNode;\n paragraph: React.ReactNode;\n image: React.ReactNode;\n links: React.ReactNode;\n featureItem: IModuleProps;\n isMosaic: boolean;\n indexItem?: number;\n itemCounter?: number;\n\n interactiveFeatureCollectionCarouselContainer: INodeProps;\n interactiveFeatureCollectionCarouselImage: INodeProps;\n interactiveFeatureCollectionCarouselContent: INodeProps;\n\n interactiveFeatureCollectionMosaicContainer: INodeProps;\n interactiveFeatureCollectionMosaicImage: INodeProps;\n interactiveFeatureCollectionMosaicDetails: INodeProps;\n}\n\n/**\n * Interactive Feature Item Extented props.\n */\nexport interface IInteractiveFeatureItemExtentedProps extends IInteractiveFeatureItemProps<{}> {\n isMosaic?: boolean;\n indexItem?: number;\n itemCounter?: number;\n}\n\n/**\n *\n * InteractiveFeatureItem component.\n * @extends {React.PureComponent}\n */\nexport class InteractiveFeatureItem extends React.PureComponent {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public constructor(props: IInteractiveFeatureItemProps<{}>) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { indexItem, itemCounter, isMosaic } = this.props;\n const { heading, paragraph, image, links } = this.props.config;\n const featureItemLinks = links && ArrayExtensions.hasElements(links) && (\n \n );\n\n const viewProps = {\n ...this.props,\n indexItem,\n itemCounter,\n isMosaic: isMosaic ? isMosaic : false,\n title: this._createHeading(heading),\n paragraph: this._createParagraph(paragraph),\n image: this._renderImage(image),\n links: featureItemLinks,\n featureItem: {\n moduleProps: this.props,\n className: ''\n },\n interactiveFeatureCollectionCarouselContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__container'\n },\n interactiveFeatureCollectionCarouselImage: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__image'\n },\n interactiveFeatureCollectionCarouselContent: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__heading'\n },\n interactiveFeatureCollectionMosaicContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-mosaic',\n 'aria-label': heading?.text,\n tabindex: '0',\n role: 'group'\n },\n interactiveFeatureCollectionMosaicImage: {\n className: 'ms-interactive-feature-collection-mosaic__image'\n },\n interactiveFeatureCollectionMosaicDetails: {\n className: 'ms-interactive-feature-collection-mosaic__details'\n }\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handles heading content change event.\n * @param event - Content editable event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handles paragraph content change event.\n * @param event - Content editable event.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n\n /**\n * Handles paragraph content change event.\n * @param linkIndex - Index of link in linkarray.\n * @returns Void.\n */\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent): void => {\n if (this.props.config.links?.[Number(linkIndex)]) {\n this.props.config.links[Number(linkIndex)].linkText = event.target.value;\n }\n };\n\n private _createParagraph(text?: Msdyn365.RichText): React.ReactNode | null {\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n private _createHeading(heading?: IHeadingData): React.ReactNode | null {\n if (!heading) {\n return null;\n }\n if (StringExtensions.isNullOrWhitespace(heading.text)) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _renderImage(item?: Msdyn365.IImageData, isAriaHiddenAttribute?: boolean): React.ReactNode | null {\n // Even if image.src is null, we render the Image component to render the fallback SVG\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=328&h=459&m=6', w: 328, h: 459 },\n sm: { q: 'w=348&h=487&m=6', w: 348, h: 487 },\n md: { q: 'w=650&h=366&m=6', w: 650, h: 366 },\n lg: { q: 'w=650&h=366&m=6', w: 650, h: 366 },\n xl: { q: 'w=650&h=366&m=6', w: 650, h: 366 }\n },\n lazyload: true\n };\n const verifiedImageSettings = item?.imageSettings?.viewports ? item.imageSettings : defaultImageSettings;\n return (\n \n );\n }\n}\n\nexport default InteractiveFeatureItem;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IInteractiveFeatureItemViewProps } from './interactive-feature-item';\n\n/**\n * Enumerator used to make some calculations to set the proper classnames\n * using modular calculations to see if they are in a right or left column or on first or last row.\n */\nenum MagicNumber {\n modularDivisor = 4,\n caseNumberZero = 0,\n caseNumberOne = 1,\n caseNumberTwo = 2\n}\n\n/**\n * Feature Item View.\n * @param thisProps - Feature Item view props.\n * @param indexItem - Feature Item view props.\n * @param itemCounter - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */\nconst renderMosaic = (thisProps: IInteractiveFeatureItemViewProps, indexItem?: number, itemCounter?: number): JSX.Element | null => {\n const {\n title,\n paragraph,\n image,\n links,\n interactiveFeatureCollectionMosaicContainer,\n interactiveFeatureCollectionMosaicImage,\n interactiveFeatureCollectionMosaicDetails\n } = thisProps;\n const indexAux = indexItem ? indexItem + MagicNumber.caseNumberOne : MagicNumber.caseNumberOne;\n const itemCounterAux = itemCounter ? itemCounter : MagicNumber.caseNumberZero;\n const modularAux = indexAux % MagicNumber.modularDivisor;\n const firstRow = indexAux <= MagicNumber.caseNumberTwo ? 'firstRow' : '';\n const lastRow =\n itemCounterAux && (indexAux === itemCounterAux || indexAux === itemCounterAux - MagicNumber.caseNumberOne) ? 'lastRow' : '';\n const onCornerRight = modularAux === MagicNumber.caseNumberZero ? 'item-corner-right' : '';\n const onCornerLeft = modularAux === MagicNumber.caseNumberOne ? 'item-corner-left' : '';\n const containerClasses = classnames('ms-interactive-feature-collection-mosaic', onCornerLeft, onCornerRight, firstRow, lastRow);\n\n return (\n \n {image}\n \n {title}\n {paragraph}\n {links}\n \n \n );\n};\n\n/**\n * Feature Item View.\n * @param thisProps - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */ const renderCarousel = (thisProps: IInteractiveFeatureItemViewProps): JSX.Element | null => {\n const {\n title,\n paragraph,\n image,\n links,\n interactiveFeatureCollectionCarouselContainer,\n interactiveFeatureCollectionCarouselImage,\n interactiveFeatureCollectionCarouselContent\n } = thisProps;\n return (\n \n {image}\n \n {title}\n {paragraph}\n {links}\n \n \n );\n};\n\n/**\n * Feature Item View.\n * @param props - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */\nexport const FeatureItemViewComponent: React.FC = props => {\n const { isMosaic, featureItem, indexItem, itemCounter } = props;\n if (isMosaic) {\n return <>{renderMosaic(props, indexItem, itemCounter)};\n }\n return {renderCarousel(props)};\n};\n\nexport default FeatureItemViewComponent;\n","module.exports = React;","module.exports = ReactDOM;"],"names":["MagicNumber","FeatureItemViewComponent","props","isMosaic","featureItem","indexItem","itemCounter","React","renderMosaic","thisProps","title","paragraph","image","links","interactiveFeatureCollectionMosaicContainer","interactiveFeatureCollectionMosaicImage","interactiveFeatureCollectionMosaicDetails","indexAux","caseNumberOne","itemCounterAux","caseNumberZero","modularAux","modularDivisor","firstRow","caseNumberTwo","lastRow","onCornerRight","onCornerLeft","containerClasses","classnames","Node","Object","assign","className","config","blockType","Module","interactiveFeatureCollectionCarouselContainer","interactiveFeatureCollectionCarouselImage","interactiveFeatureCollectionCarouselContent","renderCarousel","binding","modules","dataActions","c","require","$type","da","iNM","ns","n","p","pdp","md","window","__bindings__","_objectSpread","viewDictionary","cn","InteractiveFeatureCollectionLinks","constructor","_mapEditableLinks","linkdata","ArrayExtensions","hasElements","editableLinks","link","payLoad","getPayloadObject","this","telemetryContent","linkText","contentAction","etext","attributes","getTelemetryAttributes","editableLink","ariaLabel","linkUrl","destinationUrl","openInNewTab","role","additionalProperties","onClick","onTelemetryClick","push","render","Msdyn365","editProps","onTextChange","requestContext","InteractiveFeatureItem","super","_telemetryContent","getTelemetryObject","context","request","telemetryPageName","friendlyName","telemetry","handleHeadingChange","event","heading","text","target","value","handleParagraphChange","handleLinkTextChange","linkIndex","_this$props$config$li","Number","featureItemLinks","viewProps","_createHeading","_createParagraph","_renderImage","moduleProps","tag","tabindex","renderView","onEdit","_heading$tag","StringExtensions","isNullOrWhitespace","item","isAriaHiddenAttribute","_item$imageSettings","_this$props$config$im","verifiedImageSettings","imageSettings","viewports","xs","q","w","h","sm","lg","xl","lazyload","gridSettings","loadFailureBehavior","key","moduleType","typeName","imagePropertyName","moduleId","id","module","exports","ReactDOM"],"sourceRoot":""}