{"version":3,"file":"static/js/149926320eac247f2747.bundle.js","mappings":"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","sources":["webpack://goodwill-loyalty/./src/themes/goodwill-loyalty/views/content-block.view.tsx?6f8a","webpack://goodwill-loyalty/./lib/content-block/module-registration.js?4cb2","webpack://goodwill-loyalty/./src/modules/content-block/components/additional-content.tsx?d5f9","webpack://goodwill-loyalty/./src/modules/content-block/components/links.tsx?abbf","webpack://goodwill-loyalty/./src/modules/content-block/content-block.tsx?3084","webpack://goodwill-loyalty/./src/modules/content-block/content-block.view.tsx?1773","webpack://goodwill-loyalty/external var \"React\"?0d3b","webpack://goodwill-loyalty/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, Heading } from '@msdyn365-commerce-modules/utilities'; // @CUSTOM: Added 'Heading' import for appellation\r\nimport * as React from 'react';\r\n\r\nimport { IContentBlockAdditionalContentItemViewProps, IContentBlockAdditionalContentViewProps, IContentBlockViewProps } from '@msdyn365-commerce-modules/content-block';\r\n\r\n//----------------------------------------------------------\r\n// @CUSTOM: Added imports for additional config from\r\n// extended definition\r\n//----------------------------------------------------------\r\nimport { IImageData, Image } from '@msdyn365-commerce/core';\r\nimport { IContentBlockProps, IAppellationData } from '../definition-extensions/content-block.ext.props.autogenerated';\r\n//----------------------------------------------------------\r\n\r\n/**\r\n * Render Additional Content.\r\n * @param additionalContent - Additional content view props.\r\n * @returns JSX Element.\r\n */\r\nconst renderAdditionalContent = (additionalContent: IContentBlockAdditionalContentViewProps) => {\r\n return (\r\n \r\n {additionalContent.additionalContentItems?.map((item: IContentBlockAdditionalContentItemViewProps) => {\r\n return (\r\n <>\r\n {item.heading}\r\n \r\n {item.text}\r\n \r\n {item.links}\r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\n//----------------------------------------------------------\r\n/**\r\n * @CUSTOM: Render Icon Image.\r\n * @param image - Icon image from view extension.\r\n * @returns JSX Element.\r\n */\r\n//----------------------------------------------------------\r\nconst renderIconImage = (image: IImageData, props: IContentBlockProps<{}>) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};\r\n//----------------------------------------------------------\r\n\r\n//----------------------------------------------------------\r\n/**\r\n * @CUSTOM: Render Appellation.\r\n * @param appellation - Appellation heading from view extension.\r\n * @returns JSX Element.\r\n */\r\n//----------------------------------------------------------\r\n const renderAppellation = (appellation: IAppellationData) => {\r\n return (\r\n \r\n );\r\n};\r\n//----------------------------------------------------------\r\n\r\nconst ContentBlockView: React.FC> = (props) => { // @CUSTOM: Added extended definition props\r\n const {\r\n config, // @CUSTOM: Get config from extended definition\r\n contentBlockContainer,\r\n imageContainer,\r\n detailsContainer,\r\n title,\r\n text,\r\n links,\r\n image,\r\n contentBlockAnchorTag,\r\n imageLink,\r\n imageAriaLabel,\r\n additionalContent\r\n } = props;\r\n\r\n //------------------------------------------------------\r\n // @CUSTOM: Pulling in config from extended definition\r\n //------------------------------------------------------\r\n const {\r\n appellation,\r\n iconImage\r\n } = config;\r\n //------------------------------------------------------\r\n\r\n if (imageLink) {\r\n return (\r\n \r\n \r\n \r\n {image}\r\n \r\n \r\n \r\n {/* @CUSTOM: Added icon image above content */}\r\n {iconImage && renderIconImage(iconImage, props)}\r\n {/* @CUSTOM: Added appellation text above title */}\r\n {appellation && renderAppellation(appellation)}\r\n {title}\r\n {text}\r\n {links}\r\n {additionalContent && renderAdditionalContent(additionalContent)}\r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n {image}\r\n \r\n \r\n {/* @CUSTOM: Added icon image above content */}\r\n {iconImage && renderIconImage(iconImage, props)}\r\n {/* @CUSTOM: Added appellation text above title */}\r\n {appellation && renderAppellation(appellation)}\r\n {title}\r\n {text}\r\n {links}\r\n {additionalContent && renderAdditionalContent(additionalContent)}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ContentBlockView;\r\n","const binding = { modules: {}, dataActions: {} };\n\n (binding.modules['content-block'] = {\n c: () => require('@msdyn365-commerce-modules/content-block/dist/lib/modules/content-block/content-block'),\n $type: 'contentModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'content-block',\n p: 'content-block',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/content-block/dist/lib/modules/content-block'\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|goodwill-loyalty|views|content-block'] = {\n c: () => require('partner/themes/goodwill-loyalty/views/content-block.view.tsx'),\n cn: '__local__-__local__-content-block'\n };\nviewDictionary['@msdyn365-commerce-modules|content-block|modules|content-block|content-block'] = {\n c: () => require('@msdyn365-commerce-modules/content-block/dist/lib/modules/content-block/content-block.view.js'),\n cn: '@msdyn365-commerce-modules-content-block-content-block'\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 { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAdditionalContentData, ILinksData } from '../content-block.props.autogenerated';\n\n/**\n * IContentBlockAdditionalContentProps: Interface for\n * Content Block Additional Content Component props.\n */\nexport interface IContentBlockAdditionalContentProps {\n requestContext: Msdyn365.IRequestContext;\n additionalContent: IAdditionalContentData[] | undefined;\n handleAdditionalTextChange(index: number, event: Msdyn365.ContentEditableEvent): void;\n handleAdditionalParagraphChange(index: number, event: Msdyn365.ContentEditableEvent): void;\n handleAdditionalLinkTextChange(linkIndex: number, index: number, event: Msdyn365.ContentEditableEvent): void;\n}\n\n/**\n * IContentBlockAdditionalContentProps: Interface for\n * Content Block Additional Content view props.\n */\nexport interface IContentBlockAdditionalContentViewProps {\n additionalContentNode: INodeProps;\n additionalContentItems?: IContentBlockAdditionalContentItemViewProps[];\n}\n\n/**\n * IContentBlockAdditionalContentProps: Interface for\n * Content Block Additional Content Item view props.\n */\nexport interface IContentBlockAdditionalContentItemViewProps {\n heading: React.ReactNode;\n text: React.ReactNode;\n links: React.ReactNode;\n additionalContentItemContainer: INodeProps;\n additionalContentItemLinks: INodeProps;\n}\n\n/**\n * Renders additional content heading.\n * @param additionalContentHeading - Additional content heading.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @returns Heading Node.\n */\nconst renderHeading = (additionalContentHeading: string, props: IContentBlockAdditionalContentProps, itemIndex: number) => {\n const requestContext = props.requestContext;\n return (\n {\n props.handleAdditionalTextChange(itemIndex, event);\n },\n requestContext\n }}\n />\n );\n};\n\n/**\n * Renders additional content heading.\n * @param additionalContentParagraphText - Additional content paragraph text.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @returns Paragraph Node.\n */\nconst renderParagraph = (additionalContentParagraphText: string, props: IContentBlockAdditionalContentProps, itemIndex: number) => {\n const requestContext = props.requestContext;\n return (\n {\n props.handleAdditionalTextChange(itemIndex, event);\n },\n requestContext\n }}\n />\n );\n};\n\n/**\n * Renders additional content heading.\n * @param ctaLink - Additional content link.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @param linkIndex - Additional content link index.\n * @returns Link Node.\n */\nconst renderLinks = (ctaLink: ILinksData, props: IContentBlockAdditionalContentProps, itemIndex: number, linkIndex: number) => {\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: ctaLink.ariaLabel,\n className: 'ms-content-block__details__additional-content-cta-links',\n linkText: ctaLink.linkText,\n linkUrl: ctaLink.linkUrl.destinationUrl,\n openInNewTab: ctaLink.openInNewTab,\n role: 'link'\n };\n const requestContext = props.requestContext;\n return (\n {\n props.handleAdditionalLinkTextChange(linkIndex, itemIndex, event);\n },\n requestContext\n }}\n />\n );\n};\n\n/**\n * Create node for each additonal content item.\n * @param item - Content block additonal content item props.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @returns IContentBlockAdditionalContentItemViewProps.\n */\nconst assembleNode = (\n item: IAdditionalContentData,\n props: IContentBlockAdditionalContentProps,\n itemIndex: number\n): IContentBlockAdditionalContentItemViewProps => {\n const headingNode = item.heading && renderHeading(item.heading, props, itemIndex);\n const paragraphNode = item.subtext && renderParagraph(item.subtext, props, itemIndex);\n const linksNode = item.links?.map((ctaLink: ILinksData, index: number) => {\n return renderLinks(ctaLink, props, itemIndex, index);\n });\n\n return {\n heading: headingNode,\n text: paragraphNode,\n links: linksNode,\n additionalContentItemContainer: { className: 'ms-content-block__details__additional-content__container' },\n additionalContentItemLinks: { className: 'ms-content-block__details__additional-content-cta' }\n };\n};\n\n/**\n * ContentBlockAdditionalContent component.\n * @param props - Content Block Additional content component props.\n * @returns Content Block Additional content view props.\n */\nexport const contentBlockAdditionalContent = (\n props: IContentBlockAdditionalContentProps\n): IContentBlockAdditionalContentViewProps | undefined => {\n const { additionalContent } = props;\n if (!additionalContent) {\n return undefined;\n }\n\n const reactNodes: IContentBlockAdditionalContentItemViewProps[] = [];\n additionalContent.map((item, index: number) => {\n return reactNodes.push(assembleNode(item, props, index));\n });\n\n return {\n additionalContentNode: { className: 'ms-content-block__details__additional-content' },\n additionalContentItems: reactNodes\n };\n};\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 { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../content-block.props.autogenerated';\n\nexport interface IContentCardLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n role?: string;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\n/**\n *\n * ContentCardLinks component.\n * @extends {React.PureComponent}\n */\nexport class ContentCardLinks extends React.PureComponent {\n public render(): JSX.Element {\n const editableLinks = this._mapEditableLinks(this.props.links);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n }\n\n private readonly _mapEditableLinks = (linkdata: ILinksData[]): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n linkdata.forEach((link, index) => {\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 btnClass = index === 0 ? 'msc-cta__primary' : 'msc-cta__secondary';\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: btnClass,\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: this.props.role,\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 ContentCardLinks;\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 { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { contentBlockAdditionalContent, IContentBlockAdditionalContentViewProps } from './components/additional-content';\nimport LinksComponent from './components/links';\nimport { actionableRegion as region, IContentBlockConfig, IContentBlockProps } from './content-block.props.autogenerated';\n\nexport interface IContentBlockViewProps extends IContentBlockProps<{}> {\n title?: React.ReactNode;\n text?: React.ReactNode;\n image?: React.ReactNode;\n links?: React.ReactNode;\n className?: string;\n contentBlockContainer: IModuleProps;\n imageContainer: INodeProps;\n detailsContainer: INodeProps;\n contentBlockAnchorTag?: INodeProps;\n imageLink?: string;\n imageAriaLabel?: string;\n additionalContent?: IContentBlockAdditionalContentViewProps;\n handleAdditionalText?(): void;\n handleAdditionalParagraph?(): void;\n handleAdditionalLinkTextChange?(): void;\n}\n\n/**\n * Site-builder configuration for the module.\n */\nexport interface IContentBlockFullConfig extends IContentBlockConfig {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- This field comes from SDK.\n msdyn365__moduleLayout?: string;\n}\n\n/**\n * ContentCard component.\n * @extends {React.PureComponent}\n */\nexport class ContentBlock 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 render(): JSX.Element | null {\n const { heading, paragraph, image, links, className, imageAriaLabel } = this.props.config;\n const contentBlockTitle = heading && (\n \n );\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings ?? {},\n imageSettings: image?.imageSettings\n };\n const contentBlockLinks = links && ArrayExtensions.hasElements(links) && (\n \n );\n const contentBlockText = paragraph && (\n \n );\n const contentBlockImage = (\n \n );\n\n if (!contentBlockTitle && !contentBlockText && !contentBlockLinks) {\n this.props.context.telemetry.error('Content block content is empty, module wont render.');\n return null;\n }\n const contentBlockviewProps = {\n ...this.props,\n title: contentBlockTitle,\n text: contentBlockText,\n image: contentBlockImage,\n links: contentBlockLinks,\n moduleClass: this.props.config.className,\n contentBlockContainer: {\n moduleProps: this.props,\n className: classnames('ms-content-block', className)\n },\n imageContainer: { className: 'ms-content-block__image' },\n detailsContainer: { className: 'ms-content-block__details' },\n contentBlockAnchorTag: {\n tag: 'a',\n className: 'ms-content-block__link',\n role: 'link'\n },\n imageLink: this._getImageLink(),\n imageAriaLabel,\n additionalContent: contentBlockAdditionalContent({\n requestContext: this.props.context.request,\n additionalContent: this.props.config.additionalContent,\n handleAdditionalTextChange: this.handleAdditionalTextChange,\n handleAdditionalParagraphChange: this.handleAdditionalParagraphChange,\n handleAdditionalLinkTextChange: this.handleAdditionalLinkTextChange\n }),\n handleAdditionalText: this.handleAdditionalTextChange,\n handleAdditionalParagraph: this.handleAdditionalParagraphChange,\n handleAdditionalLinkTextChange: this.handleAdditionalLinkTextChange\n };\n\n return this.props.renderView(contentBlockviewProps) as React.ReactElement;\n }\n\n /**\n * To handle text change.\n * @param event - To handle text change event.\n * @name - HandleTextChange\n * @public\n * @returns - The Text value.\n */\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n /**\n * To handle paragraph change.\n * @param event - To handle text change event.\n * @name - HandleParagraphChange\n * @public\n * @returns - The Paragraph value.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.paragraph = event.target.value);\n\n /**\n * Handle link text change.\n * @param linkIndex - The link index.\n * @returns - Void.\n */\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[Number(linkIndex)]) {\n this.props.config.links[Number(linkIndex)].linkText = event.target.value;\n }\n };\n\n public handleAdditionalTextChange(index: number, event: Msdyn365.ContentEditableEvent): void {\n if (this.props.config.additionalContent) {\n this.props.config.additionalContent[Number(index)].heading = event.target.value;\n }\n }\n\n public handleAdditionalLinkTextChange(linkIndex: number, index: number, event: Msdyn365.ContentEditableEvent): void {\n const additionalContentObject =\n (this.props.config.additionalContent &&\n ArrayExtensions.hasElements(this.props.config.additionalContent) &&\n this.props.config.additionalContent[Number(index)]) ||\n {};\n if (additionalContentObject.links) {\n additionalContentObject.links[Number(linkIndex)].linkText = event.target.value;\n }\n }\n\n public handleAdditionalParagraphChange(index: number, event: Msdyn365.ContentEditableEvent): void {\n if (this.props.config.additionalContent) {\n this.props.config.additionalContent[Number(index)].subtext = event.target.value;\n }\n }\n\n private _getImageLink(): string | null {\n const { imageLink, links, actionableRegion } = this.props.config;\n if (actionableRegion === region.imageAndLinks) {\n if (imageLink?.destinationUrl) {\n return imageLink.destinationUrl;\n } else if (links && ArrayExtensions.hasElements(links) && links[0].linkUrl) {\n return links[0].linkUrl.destinationUrl;\n }\n return null;\n }\n return null;\n }\n}\n\nexport default ContentBlock;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IContentBlockAdditionalContentItemViewProps, IContentBlockAdditionalContentViewProps } from './components/additional-content';\nimport { IContentBlockViewProps } from './content-block';\n\n/**\n * Render Additional Content.\n * @param additionalContent - Additional content view props.\n * @returns JSX Element.\n */\nconst renderAdditionalContent = (additionalContent: IContentBlockAdditionalContentViewProps) => {\n return (\n \n {additionalContent.additionalContentItems?.map((item: IContentBlockAdditionalContentItemViewProps) => {\n return (\n <>\n {item.heading}\n \n {item.text}\n {item.links}\n \n \n );\n })}\n \n );\n};\n\nconst ContentBlockView: React.FC = props => {\n const {\n contentBlockContainer,\n imageContainer,\n detailsContainer,\n title,\n text,\n links,\n image,\n contentBlockAnchorTag,\n imageLink,\n imageAriaLabel,\n additionalContent\n } = props;\n\n if (imageLink) {\n return (\n \n \n {image}\n \n \n {title}\n {text}\n {links}\n {additionalContent && renderAdditionalContent(additionalContent)}\n \n \n );\n }\n return (\n \n {image}\n \n {title}\n {text}\n {links}\n {additionalContent && renderAdditionalContent(additionalContent)}\n \n \n );\n};\n\nexport default ContentBlockView;\n","module.exports = React;","module.exports = ReactDOM;"],"names":["renderAdditionalContent","additionalContent","React","Node","additionalContentNode","additionalContentItems","map","item","heading","additionalContentItemContainer","text","additionalContentItemLinks","links","renderIconImage","image","props","className","Image","gridSettings","context","request","imageSettings","renderAppellation","appellation","Heading","headingTag","tag","config","contentBlockContainer","imageContainer","detailsContainer","title","contentBlockAnchorTag","imageLink","imageAriaLabel","iconImage","Module","href","binding","modules","dataActions","c","require","$type","da","iNM","ns","n","p","pdp","md","window","__bindings__","viewDictionary","cn","assembleNode","itemIndex","additionalContentHeading","requestContext","Msdyn365","editProps","onEdit","event","handleAdditionalTextChange","renderHeading","subtext","additionalContentParagraphText","renderParagraph","ctaLink","index","linkIndex","editableLink","ariaLabel","linkText","linkUrl","destinationUrl","openInNewTab","role","key","link","onTextChange","handleAdditionalLinkTextChange","renderLinks","contentBlockAdditionalContent","reactNodes","push","ContentCardLinks","constructor","_mapEditableLinks","linkdata","length","editableLinks","forEach","payLoad","getPayloadObject","this","telemetryContent","contentAction","etext","attributes","getTelemetryAttributes","btnClass","additionalProperties","onClick","onTelemetryClick","render","ContentBlock","getTelemetryObject","telemetryPageName","friendlyName","telemetry","handleTextChange","target","value","handleParagraphChange","paragraph","handleLinkTextChange","Number","contentBlockTitle","imageProps","contentBlockLinks","ArrayExtensions","LinksComponent","msdyn365__moduleLayout","contentBlockText","contentBlockImage","preserveImageSpace","moduleType","typeName","imagePropertyName","moduleId","id","layout","shouldSkipToMainImage","error","contentBlockviewProps","moduleClass","moduleProps","classnames","_getImageLink","handleAdditionalParagraphChange","handleAdditionalText","handleAdditionalParagraph","renderView","additionalContentObject","actionableRegion","module","exports","ReactDOM"],"sourceRoot":""}