{"version":3,"sources":["webpack:///src/modules/cookie-compliance/components/accept-button.tsx?1709","webpack:///src/modules/cookie-compliance/components/links.tsx?807e","webpack:///src/modules/cookie-compliance/cookie-compliance.tsx?5f7e","webpack:///external \"React\"?c481","webpack:///external \"ReactDOM\"?4b2d","webpack:///src/modules/cookie-compliance/cookie-compliance.view.tsx?b30b","webpack:///./lib/cookie-compliance/module-registration.js?a5ea"],"names":["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","_objectSpread","onDismiss","CookieComplianceBanner","moduleProps","classnames","ref","AlertProps","color","fade","Content","text","onEdit","ArrayExtensions","hasElements","acceptButton","renderView","setConsentCookie","location","reload","module","exports","ReactDOM","CookieComplianceView","Module","Alert","Node","binding","modules","dataActions","c","require","$type","da","iNM","ns","n","p","pdp","md","window","__bindings__","viewDictionary","cn"],"mappings":"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","file":"static/js/76.99725a7b8d4846a11321.chunk.js","sourcesContent":["/*!\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","module.exports = React;","module.exports = ReactDOM;","/*!\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","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 };"],"sourceRoot":""}