{"version":3,"file":"static/js/941fbe5bc653d7be0e6e.bundle.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/only-c-content-block/components/additional-content.tsx?1cf2","webpack://Msdyn365.Commerce.Online/./src/modules/only-c-content-block/components/links.tsx?0164","webpack://Msdyn365.Commerce.Online/./src/modules/only-c-content-block/only-c-content-block.props.autogenerated.ts?85b5","webpack://Msdyn365.Commerce.Online/./src/modules/only-c-content-block/only-c-content-block.tsx?38d0","webpack://Msdyn365.Commerce.Online/./src/modules/only-c-content-block/only-c-content-block.view.tsx?2955","webpack://Msdyn365.Commerce.Online/./lib/only-c-content-block/module-registration.js?62e0","webpack://Msdyn365.Commerce.Online/external var \"React\"?0d3b","webpack://Msdyn365.Commerce.Online/external var \"ReactDOM\"?853b"],"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 Msdyn365 from '@msdyn365-commerce/core';\r\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAdditionalContentData, ILinksData } from '../only-c-content-block.props.autogenerated';\r\n\r\n/**\r\n * IContentBlockAdditionalContentProps: Interface for\r\n * Content Block Additional Content Component props.\r\n */\r\nexport interface IContentBlockAdditionalContentProps {\r\n requestContext: Msdyn365.IRequestContext;\r\n additionalContent: IAdditionalContentData[] | undefined;\r\n handleAdditionalTextChange(index: number, event: Msdyn365.ContentEditableEvent): void;\r\n handleAdditionalParagraphChange(index: number, event: Msdyn365.ContentEditableEvent): void;\r\n handleAdditionalLinkTextChange(linkIndex: number, index: number, event: Msdyn365.ContentEditableEvent): void;\r\n}\r\n\r\n/**\r\n * IContentBlockAdditionalContentProps: Interface for\r\n * Content Block Additional Content view props.\r\n */\r\nexport interface IContentBlockAdditionalContentViewProps {\r\n additionalContentNode: INodeProps;\r\n additionalContentItems?: IContentBlockAdditionalContentItemViewProps[];\r\n}\r\n\r\n/**\r\n * IContentBlockAdditionalContentProps: Interface for\r\n * Content Block Additional Content Item view props.\r\n */\r\nexport interface IContentBlockAdditionalContentItemViewProps {\r\n heading: React.ReactNode;\r\n text: React.ReactNode;\r\n links: React.ReactNode;\r\n additionalContentItemContainer: INodeProps;\r\n additionalContentItemLinks: INodeProps;\r\n}\r\n\r\n/**\r\n * Renders additional content heading.\r\n * @param additionalContentHeading - Additional content heading.\r\n * @param props - Content Block Additional content component props.\r\n * @param itemIndex - Item index.\r\n * @returns Heading Node.\r\n */\r\nconst renderHeading = (additionalContentHeading: string, props: IContentBlockAdditionalContentProps, itemIndex: number) => {\r\n const requestContext = props.requestContext;\r\n return (\r\n {\r\n props.handleAdditionalTextChange(itemIndex, event);\r\n },\r\n requestContext\r\n }}\r\n />\r\n );\r\n};\r\n\r\n/**\r\n * Renders additional content heading.\r\n * @param additionalContentParagraphText - Additional content paragraph text.\r\n * @param props - Content Block Additional content component props.\r\n * @param itemIndex - Item index.\r\n * @returns Paragraph Node.\r\n */\r\nconst renderParagraph = (additionalContentParagraphText: string, props: IContentBlockAdditionalContentProps, itemIndex: number) => {\r\n const requestContext = props.requestContext;\r\n return (\r\n {\r\n props.handleAdditionalTextChange(itemIndex, event);\r\n },\r\n requestContext\r\n }}\r\n />\r\n );\r\n};\r\n\r\n/**\r\n * Renders additional content heading.\r\n * @param ctaLink - Additional content link.\r\n * @param props - Content Block Additional content component props.\r\n * @param itemIndex - Item index.\r\n * @param linkIndex - Additional content link index.\r\n * @returns Link Node.\r\n */\r\nconst renderLinks = (ctaLink: ILinksData, props: IContentBlockAdditionalContentProps, itemIndex: number, linkIndex: number) => {\r\n const editableLink: Msdyn365.ILinksData = {\r\n ariaLabel: ctaLink.ariaLabel,\r\n className: 'ms-content-block__details__additional-content-cta-links',\r\n linkText: ctaLink.linkText,\r\n linkUrl: ctaLink.linkUrl.destinationUrl,\r\n openInNewTab: ctaLink.openInNewTab,\r\n role: 'link'\r\n };\r\n const requestContext = props.requestContext;\r\n return (\r\n {\r\n props.handleAdditionalLinkTextChange(linkIndex, itemIndex, event);\r\n },\r\n requestContext\r\n }}\r\n />\r\n );\r\n};\r\n\r\n/**\r\n * Create node for each additonal content item.\r\n * @param item - Content block additonal content item props.\r\n * @param props - Content Block Additional content component props.\r\n * @param itemIndex - Item index.\r\n * @returns IContentBlockAdditionalContentItemViewProps.\r\n */\r\nconst assembleNode = (\r\n item: IAdditionalContentData,\r\n props: IContentBlockAdditionalContentProps,\r\n itemIndex: number\r\n): IContentBlockAdditionalContentItemViewProps => {\r\n const headingNode = item.heading && renderHeading(item.heading, props, itemIndex);\r\n const paragraphNode = item.subtext && renderParagraph(item.subtext, props, itemIndex);\r\n const linksNode = item.links?.map((ctaLink: ILinksData, index: number) => {\r\n return renderLinks(ctaLink, props, itemIndex, index);\r\n });\r\n\r\n return {\r\n heading: headingNode,\r\n text: paragraphNode,\r\n links: linksNode,\r\n additionalContentItemContainer: { className: 'ms-content-block__details__additional-content__container' },\r\n additionalContentItemLinks: { className: 'ms-content-block__details__additional-content-cta' }\r\n };\r\n};\r\n\r\n/**\r\n * ContentBlockAdditionalContent component.\r\n * @param props - Content Block Additional content component props.\r\n * @returns Content Block Additional content view props.\r\n */\r\nexport const contentBlockAdditionalContent = (\r\n props: IContentBlockAdditionalContentProps\r\n): IContentBlockAdditionalContentViewProps | undefined => {\r\n const { additionalContent } = props;\r\n if (!additionalContent) {\r\n return undefined;\r\n }\r\n\r\n const reactNodes: IContentBlockAdditionalContentItemViewProps[] = [];\r\n additionalContent.map((item, index: number) => {\r\n return reactNodes.push(assembleNode(item, props, index));\r\n });\r\n\r\n return {\r\n additionalContentNode: { className: 'ms-content-block__details__additional-content' },\r\n additionalContentItems: reactNodes\r\n };\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 Msdyn365 from '@msdyn365-commerce/core';\r\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ILinksData } from '../only-c-content-block.props.autogenerated';\r\n\r\nexport interface IContentCardLinks {\r\n links: ILinksData[];\r\n requestContext: Msdyn365.IRequestContext;\r\n telemetryContent: ITelemetryContent;\r\n role?: string;\r\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\r\n}\r\n\r\n/**\r\n *\r\n * ContentCardLinks component.\r\n * @extends {React.PureComponent}\r\n */\r\nexport class ContentCardLinks extends React.PureComponent {\r\n public render(): JSX.Element {\r\n const editableLinks = this._mapEditableLinks(this.props.links);\r\n return (\r\n
\r\n {editableLinks && editableLinks.length > 0 ? (\r\n \r\n ) : null}\r\n
\r\n );\r\n }\r\n\r\n private readonly _mapEditableLinks = (linkdata: ILinksData[]): Msdyn365.ILinksData[] | null => {\r\n if (!linkdata || linkdata.length === 0) {\r\n return null;\r\n }\r\n const editableLinks: Msdyn365.ILinksData[] = [];\r\n linkdata.forEach((link, index) => {\r\n // Construct telemetry attribute to render\r\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\r\n const linkText = link.linkText ? link.linkText : '';\r\n payLoad.contentAction.etext = linkText;\r\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\r\n const btnClass = index === 0 ? 'msc-cta__primary' : 'msc-cta__secondary';\r\n const editableLink: Msdyn365.ILinksData = {\r\n ariaLabel: link.ariaLabel,\r\n className: btnClass,\r\n linkText: link.linkText,\r\n linkUrl: link.linkUrl.destinationUrl,\r\n openInNewTab: link.openInNewTab,\r\n role: this.props.role,\r\n additionalProperties: attributes,\r\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\r\n };\r\n editableLinks.push(editableLink);\r\n });\r\n\r\n return editableLinks;\r\n };\r\n}\r\nexport default ContentCardLinks;\r\n","/**\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. See License.txt in the project root for license information.\r\n * IOnlyCContentBlock 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 const enum actionableRegion {\r\n imageAndLinks = 'imageAndLinks',\r\n linksOnly = 'linksOnly'\r\n}\r\n\r\nexport interface IOnlyCContentBlockConfig extends Msdyn365.IModuleConfig {\r\n bannerBackgroundColor?: string;\r\n bannerTextColor?: string;\r\n heading?: IHeadingData;\r\n subHeading?: ISubHeadingData;\r\n paragraph?: Msdyn365.RichText;\r\n image?: Msdyn365.IImageData;\r\n links?: ILinksData[];\r\n additionalContent?: IAdditionalContentData[];\r\n actionableRegion?: actionableRegion;\r\n imageLink?: Msdyn365.ILinkData;\r\n imageAriaLabel?: string;\r\n className?: string;\r\n clientRender?: boolean;\r\n}\r\n\r\nexport const enum HeadingTag {\r\n h1 = 'h1',\r\n h2 = 'h2',\r\n h3 = 'h3',\r\n h4 = 'h4',\r\n h5 = 'h5',\r\n h6 = 'h6'\r\n}\r\n\r\nexport interface IHeadingData {\r\n text: string;\r\n tag?: HeadingTag;\r\n}\r\n\r\nexport const enum SubHeadingTag {\r\n h1 = 'h1',\r\n h2 = 'h2',\r\n h3 = 'h3',\r\n h4 = 'h4',\r\n h5 = 'h5',\r\n h6 = 'h6'\r\n}\r\n\r\nexport interface ISubHeadingData {\r\n text: string;\r\n tag?: SubHeadingTag;\r\n}\r\n\r\nexport interface ILinksData {\r\n linkText?: string;\r\n linkUrl: Msdyn365.ILinkData;\r\n ariaLabel?: string;\r\n openInNewTab?: boolean;\r\n}\r\n\r\nexport interface IAdditionalContentData {\r\n heading?: string;\r\n subtext?: string;\r\n links?: ILinksData[];\r\n}\r\n\r\nexport interface ILinksData {\r\n linkText?: string;\r\n linkUrl: Msdyn365.ILinkData;\r\n ariaLabel?: string;\r\n openInNewTab?: boolean;\r\n}\r\n\r\nexport interface IOnlyCContentBlockProps extends Msdyn365.IModule {\r\n config: IOnlyCContentBlockConfig;\r\n}\r\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\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { contentBlockAdditionalContent, IContentBlockAdditionalContentViewProps } from './components/additional-content';\r\nimport LinksComponent from './components/links';\r\nimport { actionableRegion as region, IOnlyCContentBlockConfig, IOnlyCContentBlockProps } from './only-c-content-block.props.autogenerated';\r\n\r\nexport interface IContentBlockViewProps extends IOnlyCContentBlockProps<{}> {\r\n title?: React.ReactNode;\r\n subTitle?: React.ReactNode;\r\n text?: React.ReactNode;\r\n image?: React.ReactNode;\r\n links?: React.ReactNode;\r\n className?: string;\r\n contentBlockContainer: IModuleProps;\r\n imageContainer: INodeProps;\r\n detailsContainer: INodeProps;\r\n contentBlockAnchorTag?: INodeProps;\r\n imageLink?: string;\r\n imageAriaLabel?: string;\r\n additionalContent?: IContentBlockAdditionalContentViewProps;\r\n handleAdditionalText?(): void;\r\n handleAdditionalParagraph?(): void;\r\n handleAdditionalLinkTextChange?(): void;\r\n}\r\n\r\n/**\r\n * Site-builder configuration for the module.\r\n */\r\nexport interface IContentBlockFullConfig extends IOnlyCContentBlockConfig {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- This field comes from SDK.\r\n msdyn365__moduleLayout?: string;\r\n}\r\n\r\n/**\r\n * ContentCard component.\r\n * @extends {React.PureComponent}\r\n */\r\nexport class ContentBlock extends React.PureComponent> {\r\n private readonly telemetryContent: ITelemetryContent = getTelemetryObject(\r\n this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry\r\n );\r\n\r\n public render(): JSX.Element | null {\r\n const { heading, paragraph, image, links, className, imageAriaLabel, subHeading } = this.props.config;\r\n const contentBlockTitle = heading && (\r\n \r\n );\r\n\r\n const contentBlockSubTitle = subHeading && (\r\n \r\n );\r\n const imageProps = {\r\n gridSettings: this.props.context.request.gridSettings ?? {},\r\n imageSettings: image?.imageSettings\r\n };\r\n const contentBlockLinks = links && ArrayExtensions.hasElements(links) && (\r\n \r\n );\r\n const contentBlockText = paragraph && (\r\n \r\n );\r\n const contentBlockImage = (\r\n \r\n );\r\n\r\n if (!contentBlockTitle && !contentBlockText && !contentBlockLinks) {\r\n this.props.context.telemetry.error('Content block content is empty, module wont render.');\r\n return null;\r\n }\r\n const contentBlockviewProps = {\r\n ...this.props,\r\n title: contentBlockTitle,\r\n subTitle: contentBlockSubTitle,\r\n text: contentBlockText,\r\n image: contentBlockImage,\r\n links: contentBlockLinks,\r\n moduleClass: this.props.config.className,\r\n contentBlockContainer: {\r\n moduleProps: this.props,\r\n className: classnames('ms-content-block', className)\r\n },\r\n imageContainer: { className: 'ms-content-block__image' },\r\n detailsContainer: { className: 'ms-content-block__details' },\r\n contentBlockAnchorTag: {\r\n tag: 'a',\r\n className: 'ms-content-block__link',\r\n role: 'link'\r\n },\r\n imageLink: this._getImageLink(),\r\n imageAriaLabel,\r\n additionalContent: contentBlockAdditionalContent({\r\n requestContext: this.props.context.request,\r\n additionalContent: this.props.config.additionalContent,\r\n handleAdditionalTextChange: this.handleAdditionalTextChange,\r\n handleAdditionalParagraphChange: this.handleAdditionalParagraphChange,\r\n handleAdditionalLinkTextChange: this.handleAdditionalLinkTextChange\r\n }),\r\n handleAdditionalText: this.handleAdditionalTextChange,\r\n handleAdditionalParagraph: this.handleAdditionalParagraphChange,\r\n handleAdditionalLinkTextChange: this.handleAdditionalLinkTextChange\r\n };\r\n\r\n return this.props.renderView(contentBlockviewProps) as React.ReactElement;\r\n }\r\n\r\n /**\r\n * To handle text change.\r\n * @param event - To handle text change event.\r\n * @name - HandleTextChange\r\n * @public\r\n * @returns - The Text value.\r\n */\r\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\r\n public handleTextChangeSubtitle = (event: Msdyn365.ContentEditableEvent) => (this.props.config.subHeading!.text = event.target.value);\r\n\r\n /**\r\n * To handle paragraph change.\r\n * @param event - To handle text change event.\r\n * @name - HandleParagraphChange\r\n * @public\r\n * @returns - The Paragraph value.\r\n */\r\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.paragraph = event.target.value);\r\n\r\n /**\r\n * Handle link text change.\r\n * @param linkIndex - The link index.\r\n * @returns - Void.\r\n */\r\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\r\n if (this.props.config.links && this.props.config.links[Number(linkIndex)]) {\r\n this.props.config.links[Number(linkIndex)].linkText = event.target.value;\r\n }\r\n };\r\n\r\n public handleAdditionalTextChange(index: number, event: Msdyn365.ContentEditableEvent): void {\r\n if (this.props.config.additionalContent) {\r\n this.props.config.additionalContent[Number(index)].heading = event.target.value;\r\n }\r\n }\r\n\r\n public handleAdditionalLinkTextChange(linkIndex: number, index: number, event: Msdyn365.ContentEditableEvent): void {\r\n const additionalContentObject =\r\n (this.props.config.additionalContent &&\r\n ArrayExtensions.hasElements(this.props.config.additionalContent) &&\r\n this.props.config.additionalContent[Number(index)]) ||\r\n {};\r\n if (additionalContentObject.links) {\r\n additionalContentObject.links[Number(linkIndex)].linkText = event.target.value;\r\n }\r\n }\r\n\r\n public handleAdditionalParagraphChange(index: number, event: Msdyn365.ContentEditableEvent): void {\r\n if (this.props.config.additionalContent) {\r\n this.props.config.additionalContent[Number(index)].subtext = event.target.value;\r\n }\r\n }\r\n\r\n private _getImageLink(): string | null {\r\n const { imageLink, links, actionableRegion } = this.props.config;\r\n if (actionableRegion === region.imageAndLinks) {\r\n if (imageLink?.destinationUrl) {\r\n return imageLink.destinationUrl;\r\n } else if (links && ArrayExtensions.hasElements(links) && links[0].linkUrl) {\r\n return links[0].linkUrl.destinationUrl;\r\n }\r\n return null;\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nexport default ContentBlock;\r\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\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IContentBlockAdditionalContentItemViewProps, IContentBlockAdditionalContentViewProps } from './components/additional-content';\r\nimport { IContentBlockViewProps } from './only-c-content-block';\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 {item.links}\r\n \r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst ContentBlockView: React.FC = props => {\r\n const {\r\n contentBlockContainer,\r\n imageContainer,\r\n detailsContainer,\r\n title,\r\n subTitle,\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 if (imageLink) {\r\n return (\r\n
\r\n \r\n \r\n {image}\r\n \r\n \r\n {title}\r\n {subTitle}\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 {title}\r\n {subTitle}\r\n {text}\r\n {links}\r\n {additionalContent && renderAdditionalContent(additionalContent)}\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default ContentBlockView;\r\n","const binding = { modules: {}, dataActions: {} };\n\n (binding.modules['only-c-content-block'] = {\n c: () => require('partner/modules/only-c-content-block/only-c-content-block.tsx'),\n $type: 'contentModule',\n da: [],\n \n iNM: false,\n ns: '__local__',\n n: 'only-c-content-block',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/only-c-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__|modules|only-c-content-block|only-c-content-block'] = {\n c: () => require('partner/modules/only-c-content-block/only-c-content-block.view.tsx'),\n cn: '__local__-__local__-only-c-content-block'\n };\nwindow.__bindings__ = window.__bindings__ || {};\nwindow.__bindings__.viewDictionary = {\n ...window.__bindings__.viewDictionary || {},\n ...viewDictionary\n };","module.exports = React;","module.exports = ReactDOM;"],"names":["assembleNode","item","props","itemIndex","_item$links","heading","renderHeading","additionalContentHeading","requestContext","React","Msdyn365","text","tag","className","editProps","onEdit","event","handleAdditionalTextChange","subtext","renderParagraph","additionalContentParagraphText","links","map","ctaLink","index","renderLinks","linkIndex","editableLink","ariaLabel","linkText","linkUrl","destinationUrl","openInNewTab","role","key","link","onTextChange","handleAdditionalLinkTextChange","additionalContentItemContainer","additionalContentItemLinks","contentBlockAdditionalContent","additionalContent","reactNodes","push","additionalContentNode","additionalContentItems","ContentCardLinks","constructor","_mapEditableLinks","linkdata","length","editableLinks","forEach","payLoad","getPayloadObject","this","telemetryContent","contentAction","etext","attributes","getTelemetryAttributes","btnClass","additionalProperties","onClick","onTelemetryClick","render","actionableRegion","HeadingTag","SubHeadingTag","ContentBlock","getTelemetryObject","context","request","telemetryPageName","friendlyName","telemetry","handleTextChange","config","target","value","handleTextChangeSubtitle","subHeading","handleParagraphChange","paragraph","handleLinkTextChange","Number","_heading$tag","_subHeading$tag","_this$props$context$r","_this$props$config$im","image","imageAriaLabel","contentBlockTitle","contentBlockSubTitle","imageProps","gridSettings","imageSettings","contentBlockLinks","ArrayExtensions","hasElements","LinksComponent","Object","assign","msdyn365__moduleLayout","contentBlockText","contentBlockImage","moduleType","typeName","imagePropertyName","moduleId","id","layout","shouldSkipToMainImage","error","contentBlockviewProps","_objectSpread","title","subTitle","moduleClass","contentBlockContainer","moduleProps","classnames","imageContainer","detailsContainer","contentBlockAnchorTag","imageLink","_getImageLink","handleAdditionalParagraphChange","handleAdditionalText","handleAdditionalParagraph","renderView","additionalContentObject","region","imageAndLinks","renderAdditionalContent","_additionalContent$ad","Node","style","backgroundColor","bannerBackgroundColor","color","bannerTextColor","Module","href","binding","modules","dataActions","c","require","$type","da","iNM","ns","n","p","pdp","md","window","__bindings__","viewDictionary","cn","module","exports","ReactDOM"],"sourceRoot":""}