{"version":3,"file":"static/js/fd4118f97d56df18914e.bundle.js","mappings":"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","sources":["webpack://@msdyn365-commerce-partners/fabrikam/./lib/cookie-compliance/module-registration.js?a5ea","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/cookie-compliance/components/accept-button.tsx?8e73","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/cookie-compliance/components/links.tsx?97b8","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/cookie-compliance/cookie-compliance.tsx?02ac","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/cookie-compliance/cookie-compliance.view.tsx?a33f","webpack://@msdyn365-commerce-partners/fabrikam/external var \"React\"?0d3b","webpack://@msdyn365-commerce-partners/fabrikam/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__","viewDictionary","cn","CookieComplianceAcceptButton","acceptCookiesButtonText","acceptCookiesButtonAriaLabel","telemetryContent","onClose","payLoad","getPayloadObject","attributes","getTelemetryAttributes","React","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","config","actionLinks","target","value","handleContentChange","content","state","visible","cookieRef","_onDismiss","bind","componentDidMount","cookies","isConsentGiven","setState","resources","acceptCookiesAriaLabel","moduleConfig","error","MsDyn365","viewProps","onDismiss","CookieComplianceBanner","moduleProps","classnames","ref","AlertProps","color","fade","Content","text","onEdit","ArrayExtensions","acceptButton","renderView","setConsentCookie","location","reload","Module","Alert","Node","module","exports","ReactDOM"],"sourceRoot":""}