{"version":3,"file":"static/js/e7579c666b287ceee741.bundle.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./lib/cookie-compliance/module-registration.js?a5ea","webpack://Msdyn365.Commerce.Online/./src/modules/cookie-compliance/components/accept-button.tsx?8e73","webpack://Msdyn365.Commerce.Online/./src/modules/cookie-compliance/components/links.tsx?97b8","webpack://Msdyn365.Commerce.Online/./src/modules/cookie-compliance/cookie-compliance.tsx?02ac","webpack://Msdyn365.Commerce.Online/./src/modules/cookie-compliance/cookie-compliance.view.tsx?a33f","webpack://Msdyn365.Commerce.Online/external var \"React\"?0d3b","webpack://Msdyn365.Commerce.Online/external var \"ReactDOM\"?853b"],"sourcesContent":["const binding = { modules: {}, dataActions: {} };\n\n (binding.modules['cookie-compliance'] = {\n c: () => require('@msdyn365-commerce-modules/cookie-compliance/dist/lib/modules/cookie-compliance/cookie-compliance'),\n $type: 'contentModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'cookie-compliance',\n p: 'cookie-compliance',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/cookie-compliance/dist/lib/modules/cookie-compliance'\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['@msdyn365-commerce-modules|cookie-compliance|modules|cookie-compliance|cookie-compliance'] = {\n c: () => require('@msdyn365-commerce-modules/cookie-compliance/dist/lib/modules/cookie-compliance/cookie-compliance.view.js'),\n cn: '@msdyn365-commerce-modules-cookie-compliance-cookie-compliance'\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 { getPayloadObject, getTelemetryAttributes, IPayLoad, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ICookieComplianceAcceptButton {\n acceptCookiesButtonText?: string;\n acceptCookiesButtonAriaLabel?: string;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onClose(): void;\n}\n\nexport const CookieComplianceAcceptButton: React.FC = ({\n acceptCookiesButtonText,\n acceptCookiesButtonAriaLabel,\n telemetryContent,\n onClose\n}) => {\n const payLoad: IPayLoad = getPayloadObject('click', telemetryContent!, 'accept cookies');\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n \n {acceptCookiesButtonText}\n \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 { IActionLinksData } from '../cookie-compliance.props.autogenerated';\n\nexport interface ICookieComplianceLinks {\n links: IActionLinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\n/**\n *\n * ContentCardLinks component.\n * @extends {React.PureComponent}\n */\nexport class CookieComplianceLinks 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: IActionLinksData[]): 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 editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes,\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n };\n}\n\nexport default CookieComplianceLinks;\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, IAlertProps, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { CookieComplianceAcceptButton, CookieComplianceLinks } from './components';\nimport { ICookieComplianceConfig, ICookieComplianceProps } from './cookie-compliance.props.autogenerated';\n\n/**\n * Alert state interface.\n */\nexport interface IAlertState {\n visible: boolean;\n}\n\n/**\n * Cookie compliance view props interface.\n */\nexport interface ICookieComplianceViewProps extends ICookieComplianceProps<{}> {\n CookieComplianceBanner: IModuleProps;\n AlertProps: IAlertProps;\n Content: INodeProps;\n text?: React.ReactNode;\n links?: React.ReactNode;\n acceptButton?: React.ReactNode;\n className: string;\n onDismiss(): void;\n}\n\n/**\n *\n * CookieCompliance component.\n * @extends {React.PureComponent>}\n */\nclass CookieCompliance extends React.PureComponent, IAlertState> {\n private readonly cookieRef: React.RefObject;\n\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: ICookieComplianceProps) {\n super(props);\n this.state = { visible: false };\n this.cookieRef = React.createRef();\n this._onDismiss = this._onDismiss.bind(this);\n }\n\n public componentDidMount(): void {\n const { context } = this.props;\n\n if (context && context.request && context.request.cookies && !context.request.cookies.isConsentGiven()) {\n this.setState({ visible: true });\n }\n }\n\n public render(): JSX.Element | null {\n const { config, context, resources, telemetry } = this.props;\n const { acceptCookiesButtonText, acceptCookiesAriaLabel } = resources;\n const { visible } = this.state;\n\n const isConsentGiven = context && context.request && context.request.cookies && context.request.cookies.isConsentGiven();\n let moduleConfig: ICookieComplianceConfig;\n\n try {\n moduleConfig = config;\n } catch (error) {\n telemetry.error(`Something went wrong while rendering the alert module ------${error}`);\n return
{error}
;\n }\n\n if (isConsentGiven && !visible) {\n this.props.context.telemetry.error('Cookie Compliance content is empty, module wont render.');\n return null;\n }\n\n if (!MsDyn365.msdyn365Commerce.isBrowser) {\n return <>;\n }\n\n const viewProps = {\n ...this.props,\n onDismiss: this._onDismiss,\n CookieComplianceBanner: {\n moduleProps: this.props,\n className: classnames('ms-cookie-compliance', moduleConfig.className),\n ref: this.cookieRef\n },\n AlertProps: {\n className: 'ms-cookie-compliance__container',\n color: 'white',\n fade: false\n },\n Content: {\n className: 'ms-cookie-compliance__content'\n },\n text: moduleConfig.content && (\n \n ),\n links: ArrayExtensions.hasElements(moduleConfig.actionLinks) && (\n \n ),\n acceptButton: (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handles Link 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.actionLinks?.[linkIndex]) {\n this.props.config.actionLinks[linkIndex].linkText = event.target.value;\n }\n };\n\n /**\n * Handles content change event.\n * @param event - Event.\n */\n public handleContentChange = (event: MsDyn365.ContentEditableEvent): void => {\n this.props.config.content = event.target.value;\n };\n\n private _onDismiss(): void {\n const { context } = this.props;\n\n if (context && context.request && context.request.cookies) {\n context.request.cookies.setConsentCookie();\n location.reload();\n }\n this.setState({ visible: false });\n }\n}\n\nexport default CookieCompliance;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Alert, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICookieComplianceViewProps } from './cookie-compliance';\n\nconst CookieComplianceView: React.FC = props => {\n const { CookieComplianceBanner, AlertProps, Content, acceptButton, text, links } = props;\n\n return (\n \n \n \n {text}\n {links}\n \n {acceptButton}\n \n \n );\n};\nexport default CookieComplianceView;\n","module.exports = React;","module.exports = ReactDOM;"],"names":["binding","modules","dataActions","c","require","$type","da","iNM","ns","n","p","pdp","md","window","__bindings__","_objectSpread","viewDictionary","cn","CookieComplianceAcceptButton","_ref","acceptCookiesButtonText","acceptCookiesButtonAriaLabel","telemetryContent","onClose","payLoad","getPayloadObject","attributes","getTelemetryAttributes","React","Object","assign","type","className","onClick","CookieComplianceLinks","constructor","_mapEditableLinks","linkdata","length","editableLinks","forEach","link","index","this","props","linkText","contentAction","etext","editableLink","ariaLabel","linkUrl","destinationUrl","openInNewTab","role","additionalProperties","onTelemetryClick","push","render","links","Msdyn365","editProps","onTextChange","requestContext","CookieCompliance","super","getTelemetryObject","context","request","telemetryPageName","friendlyName","telemetry","handleLinkTextChange","linkIndex","event","_this$props$config$ac","config","actionLinks","target","value","handleContentChange","content","state","visible","cookieRef","_onDismiss","bind","componentDidMount","cookies","isConsentGiven","setState","resources","acceptCookiesAriaLabel","moduleConfig","error","MsDyn365","isBrowser","viewProps","onDismiss","CookieComplianceBanner","moduleProps","classnames","ref","AlertProps","color","fade","Content","text","onEdit","ArrayExtensions","hasElements","acceptButton","renderView","setConsentCookie","location","reload","Module","Alert","Node","module","exports","ReactDOM"],"sourceRoot":""}