{"version":3,"file":"static/js/22.49fd2058811bdd651ef9.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/punchout-empty-cart/methods/empty-active-cart.ts?ff67","webpack://Msdyn365.Commerce.Online/./src/modules/punchout-empty-cart/punchout-empty-cart.tsx?92a0","webpack://Msdyn365.Commerce.Online/./src/modules/punchout-empty-cart/punchout-empty-cart.view.tsx?cc83","webpack://Msdyn365.Commerce.Online/./src/themes/dyn-tebutheme/views/components/carticon.component.tsx?b7ae","webpack://Msdyn365.Commerce.Online/./src/themes/dyn-tebutheme/views/navigation-menu.view.tsx?a9f7","webpack://Msdyn365.Commerce.Online/./src/modules/accordion-item/accordion-item.tsx?36f7","webpack://Msdyn365.Commerce.Online/./src/modules/accordion-item/accordion-item.view.tsx?a302","webpack://Msdyn365.Commerce.Online/./src/modules/accordion/accordion.tsx?78b1","webpack://Msdyn365.Commerce.Online/./src/modules/accordion/accordion.view.tsx?8c7b","webpack://Msdyn365.Commerce.Online/./src/modules/footer-item/footer-item.tsx?074a","webpack://Msdyn365.Commerce.Online/./src/modules/footer-item/footer-item.view.tsx?c5af"],"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\n/* eslint-disable no-duplicate-imports */\r\nimport { IActionContext } from '@msdyn365-commerce/core';\r\nimport { getCartState, getCheckoutState } from '@msdyn365-commerce/global-state';\r\n\r\nasync function emptyActiveCart(ctx: IActionContext): Promise {\r\n let cartState;\r\n let checkoutState;\r\n const lineItemIdsToRemove = [];\r\n\r\n try {\r\n cartState = await getCartState(ctx);\r\n checkoutState = await getCheckoutState(ctx);\r\n } catch (error) {\r\n throw error;\r\n }\r\n\r\n if (!cartState || !cartState.cart) {\r\n throw new Error('Fail to fetch active cart');\r\n }\r\n\r\n if (!checkoutState || !checkoutState.checkoutCart) {\r\n throw new Error('Fail to fetch checkoutCart cart');\r\n }\r\n\r\n const activeCart = cartState.cart;\r\n const checkoutCart = checkoutState.checkoutCart.cart;\r\n\r\n for (const activeCartLine of activeCart.CartLines || []) {\r\n for (const checkoutCartLine of checkoutCart.CartLines || []) {\r\n if (activeCartLine.LineId && activeCartLine.LineId === checkoutCartLine.LineId) {\r\n lineItemIdsToRemove.push(activeCartLine.LineId);\r\n }\r\n }\r\n }\r\n\r\n try {\r\n await cartState.removeCartLines({ cartLineIds: lineItemIdsToRemove });\r\n await cartState.removeAllPromoCodes({});\r\n await checkoutState.removeCheckoutCartId({});\r\n } catch (error) {\r\n throw error;\r\n }\r\n}\r\n\r\nexport default emptyActiveCart;\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 React from 'react';\r\n\r\nimport { IPunchoutEmptyCartData } from './punchout-empty-cart.data';\r\nimport { IPunchoutEmptyCartProps } from './punchout-empty-cart.props.autogenerated';\r\nimport emptyActiveCart from './methods/empty-active-cart';\r\n\r\nexport interface IPunchoutEmptyCartViewProps extends IPunchoutEmptyCartProps {}\r\n\r\n/**\r\n *\r\n * PunchoutEmptyCart component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass PunchoutEmptyCart extends React.PureComponent> {\r\n public async componentDidMount(): Promise {\r\n const isPunchoutAccess: string | null = window.sessionStorage.getItem('isPunchoutAccess') ?? null;\r\n\r\n if (isPunchoutAccess === '1') {\r\n await emptyActiveCart(this.props.context.actionContext);\r\n window.sessionStorage.removeItem('isPunchoutAccess');\r\n }\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n return this.props.renderView(this.props);\r\n }\r\n}\r\n\r\nexport default PunchoutEmptyCart;\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 React from 'react';\r\nimport { IPunchoutEmptyCartViewProps } from './punchout-empty-cart';\r\n\r\nexport default (props: IPunchoutEmptyCartViewProps) => {\r\n return <>;\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 { getUrlSync, IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\nimport { format, getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nexport interface ICartIconData {\r\n cart?: ICartState;\r\n}\r\n\r\nexport interface ICartIconComponentProps extends IComponentProps {\r\n className?: string;\r\n cartLabel: string;\r\n cartQtyLabel: string;\r\n telemetryContent?: ITelemetryContent;\r\n}\r\n\r\nexport interface ICartIconComponent extends IComponent {\r\n}\r\n\r\nconst CartIconComponentActions = {};\r\n\r\n/**\r\n *\r\n * CartIcon component.\r\n * @extends {React.FC}\r\n */\r\nconst CartIcon: React.FC = observer((props: ICartIconComponentProps) => {\r\n const { cartLabel, data: { cart } } = props;\r\n const cartLink = getUrlSync('cart', props.context.actionContext);\r\n\r\n // If there are invoice lines, don't update mini cart item quantity\r\n const cartItem = cart ? cart.totalItemsInCart : 0;\r\n //const qtyLabel = format(cartQtyLabel, cartItem);\r\n const label = format(cartLabel, cartItem);\r\n\r\n // Construct telemetry attribute to render\r\n const payLoad = getPayloadObject('click', props.telemetryContent!, 'cart-icon', '');\r\n const attributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\r\n const style: React.CSSProperties = {\r\n visibility: cart ? 'visible' : 'hidden'\r\n };\r\n return (\r\n \r\n
\r\n {/*qtyLabel*/} ({cartItem} items)\r\n
\r\n \r\n );\r\n});\r\n\r\n// @ts-expect-error\r\nexport const CartIconComponent: React.FunctionComponent = msdyn365Commerce.createComponentOverride(\r\n 'CartIcon',\r\n { component: CartIcon, ...CartIconComponentActions }\r\n);\r\n\r\n\r\nexport default CartIconComponent;","/*--------------------------------------------------------------\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\n/* eslint-disable no-duplicate-imports */\r\nimport MsDyn365, { IDictionary, IImageData } from '@msdyn365-commerce/core'; //Image, IImageSettings\r\nimport { IMenuItemData, INavigationMenuViewProps } from '@msdyn365-commerce-modules/navigation-menu';\r\nimport { ArrayExtensions, generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\r\nimport {\r\n Drawer,\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n getTelemetryObject,\r\n ICollapseProps,\r\n IDrawerState,\r\n IPayLoad,\r\n ITelemetryContent,\r\n Module,\r\n Node,\r\n onTelemetryClick\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\ninterface INavigationState {\r\n parentMenu?: number;\r\n activeMenu?: number;\r\n categoryImage?: IImageData[] | null;\r\n categoryImageAltText: string;\r\n drawerKeyValue: IDictionary;\r\n}\r\n\r\n/**\r\n *\r\n * NavigationMenuView component.\r\n * @extends {React.PureComponent}\r\n */\r\nexport class NavigationMenuView extends React.PureComponent {\r\n private currentLevel: number = 0;\r\n\r\n private readonly escapeKey: number = 27;\r\n\r\n private readonly menuNode: React.RefObject;\r\n\r\n private readonly telemetryContent: ITelemetryContent;\r\n\r\n private readonly payLoad: IPayLoad;\r\n\r\n constructor(props: INavigationMenuViewProps) {\r\n super(props);\r\n this.menuNode = React.createRef();\r\n this.state = { activeMenu: undefined, parentMenu: undefined, categoryImageAltText: '', drawerKeyValue: {} };\r\n this._closeSubmenu = this._closeSubmenu.bind(this);\r\n this._escFunction = this._escFunction.bind(this);\r\n this.telemetryContent = getTelemetryObject(\r\n this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry\r\n );\r\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\r\n }\r\n\r\n public componentDidMount(): void {\r\n if (MsDyn365.isBrowser) {\r\n document.body.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\r\n document.body.addEventListener('mousedown', this._handleClickOutside);\r\n document.body.addEventListener('focusout', this._handleFocusOutside);\r\n }\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n if (MsDyn365.isBrowser) {\r\n document.removeEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\r\n document.body.removeEventListener('mousedown', this._handleClickOutside, false);\r\n document.body.removeEventListener('focusout', this._handleFocusOutside, false);\r\n }\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const { isMobileView } = this.props;\r\n\r\n this.currentLevel = 1;\r\n return <>{isMobileView ? this._renderMobileMenu() : this._renderDesktopMenu()};\r\n }\r\n\r\n /**\r\n * Method to render mobile menu.\r\n * @returns Jsx element.\r\n */\r\n private _renderMobileMenu(): JSX.Element {\r\n const { isMobileView, menuItemData, Navigation } = this.props;\r\n return (\r\n \r\n {menuItemData.map((menuItem: IMenuItemData) => {\r\n return this._renderDrawerMenu(menuItem);\r\n })}\r\n \r\n );\r\n }\r\n\r\n /**\r\n * Method to render desktop menu.\r\n * @returns Jsx element.\r\n */\r\n private _renderDesktopMenu(): JSX.Element {\r\n const { MenuList, Navigation } = this.props;\r\n return (\r\n \r\n \r\n {this._renderDisplay()}\r\n \r\n \r\n );\r\n }\r\n\r\n /**\r\n * Method to render drawer menu.\r\n * @param menuItem -Menuitem data.\r\n * @returns Jsx element.\r\n */\r\n private _renderDrawerMenu(menuItem: IMenuItemData): JSX.Element | null {\r\n if (menuItem && menuItem.subMenu && ArrayExtensions.hasElements(menuItem.subMenu)) {\r\n return this._renderDrawer(menuItem);\r\n }\r\n return this._renderLinkMenuItem(menuItem);\r\n }\r\n\r\n /**\r\n * Method to render drawer component.\r\n * @param menuItem -Menuitem data.\r\n * @returns Jsx element.\r\n */\r\n private _renderDrawer(menuItem: IMenuItemData): JSX.Element | null {\r\n const toggleButtonText = menuItem.linkText;\r\n const keyValue = this.state.drawerKeyValue;\r\n const buttonText = toggleButtonText !== undefined ? toggleButtonText : '';\r\n const keys = keyValue !== undefined ? keyValue : {};\r\n\r\n let isDrawerOpen = false;\r\n if (keys[buttonText]) {\r\n isDrawerOpen = true;\r\n }\r\n const colProps: ICollapseProps = { isOpen: isDrawerOpen };\r\n return (\r\n \r\n
\r\n {menuItem.subMenu!.map((menuSubItem: IMenuItemData) => {\r\n return this._renderDrawerLink(menuSubItem);\r\n })}\r\n
\r\n \r\n );\r\n }\r\n\r\n /**\r\n * Method to render link.\r\n * @param linkText -Text on Menu link.\r\n * @returns Jsx element.\r\n */\r\n private _renderLinkText(linkText: string | undefined): JSX.Element {\r\n return <>{linkText};\r\n }\r\n\r\n /**\r\n * Method to render drawer link.\r\n * @param item -Single Menuitem.\r\n * @returns Jsx element.\r\n */\r\n private _renderDrawerLink(item: IMenuItemData): JSX.Element | null {\r\n if (item && item.linkText && item.linkURL && item.linkURL.length > 0) {\r\n return this._renderLinkMenuItem(item);\r\n } else if (item && item.linkText && !item.linkURL) {\r\n return this._renderSpanMenuItem(item);\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Method to generate menu.\r\n * @returns Jsx element.\r\n */\r\n private _renderDisplay(): JSX.Element[] {\r\n const { ListItem, menuItemData, isMobileView } = this.props;\r\n const { activeMenu } = this.state;\r\n const menuItemList: JSX.Element[] = [];\r\n\r\n if (isMobileView && activeMenu !== undefined && menuItemData.length > 0) {\r\n let menuItem: IMenuItemData = {};\r\n for (const menuItemDatum of menuItemData) {\r\n if (menuItemDatum && menuItemDatum.id === activeMenu) {\r\n menuItem = menuItemDatum;\r\n this.setState({ parentMenu: undefined });\r\n break;\r\n }\r\n menuItem = this._getFromSubMenu(menuItemDatum) as IMenuItemData;\r\n if (menuItem && menuItem.id === activeMenu) {\r\n break;\r\n }\r\n }\r\n\r\n menuItem &&\r\n menuItemList.push(\r\n \r\n {' '}\r\n {this._createMenuItemList(menuItem)}{' '}\r\n \r\n );\r\n } else {\r\n menuItemData.forEach((item: IMenuItemData, index: number) => {\r\n menuItemList.push(\r\n \r\n {this._createMenuItemList(item)}\r\n \r\n );\r\n });\r\n }\r\n\r\n return menuItemList;\r\n }\r\n\r\n /**\r\n * Method to get data for submenu.\r\n * @param item -Single Menuitem.\r\n * @returns IMenuItemData.\r\n */\r\n private _getFromSubMenu(item?: IMenuItemData): IMenuItemData | null {\r\n const subMenus = item && item.subMenu;\r\n if (subMenus && subMenus.length > 0) {\r\n for (let i = 0; i <= subMenus.length - 1; i++) {\r\n if (subMenus[i].id === this.state.activeMenu) {\r\n this.setState({ parentMenu: item?.id });\r\n return subMenus[i];\r\n }\r\n const found = this._getFromSubMenu(subMenus[i]);\r\n if (found) {\r\n return found;\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Method to create item list.\r\n * @param menuItemData -Single Menuitem.\r\n * @returns Jsx element.\r\n */\r\n private _createMenuItemList(menuItemData: IMenuItemData): JSX.Element | null {\r\n if (menuItemData && menuItemData.subMenu && menuItemData.subMenu.length > 0) {\r\n if (this.props.isMobileView && this.state.activeMenu !== undefined) {\r\n return this._renderSubMenu(menuItemData.subMenu, menuItemData.id);\r\n }\r\n return (\r\n <>\r\n {this._renderButtonMenuItem(menuItemData)}\r\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id, false, menuItemData)}\r\n \r\n );\r\n } else if (menuItemData && menuItemData.linkText && menuItemData.linkURL && menuItemData.linkURL.length > 0) {\r\n return this._renderLinkMenuItem(menuItemData, menuItemData.id, false, true);\r\n } else if (menuItemData && menuItemData.linkText && !menuItemData.linkURL) {\r\n return this._renderSpanMenuItem(menuItemData, menuItemData.id, true);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderSubMenu(\r\n subMenus?: IMenuItemData[],\r\n activeMenu?: number,\r\n IsSubMenu?: boolean,\r\n parentMenu?: IMenuItemData\r\n ): JSX.Element | null {\r\n const { isMobileView, ListItem } = this.props;\r\n const enableMultiSupportMenu = this.props.config.enableMultilevelMenu || false;\r\n const subMenuLevel = 3;\r\n const multiLevelSupportedMenu = this.props.config.menuLevelSupport || subMenuLevel;\r\n\r\n // Const isParentMenu:boolean= false;\r\n if (activeMenu && this.state.activeMenu !== activeMenu) {\r\n this.props.context.telemetry.error('Navigation Active menu content is empty, module wont render.');\r\n return null;\r\n }\r\n\r\n if (!subMenus || subMenus.length === 0) {\r\n this.props.context.telemetry.error('Navigation Submenu content is empty, module wont render.');\r\n return null;\r\n }\r\n\r\n let levelClassName: string = '';\r\n const menuOptions =\r\n subMenus &&\r\n subMenus.map((option: IMenuItemData, idx: number) => {\r\n const hasOptions = option.subMenu && option.subMenu.length > 0;\r\n let menuItem: JSX.Element | null;\r\n if (hasOptions && isMobileView) {\r\n menuItem = this._renderButtonMenuItem(option, activeMenu, idx);\r\n } else {\r\n menuItem = option.linkURL ? this._renderLinkMenuItem(option, idx) : this._renderSpanMenuItem(option);\r\n }\r\n let subMenu;\r\n const haveSubmenu = hasOptions && enableMultiSupportMenu && this.currentLevel <= Math.round(multiLevelSupportedMenu) - 1;\r\n if (haveSubmenu) {\r\n this.currentLevel++;\r\n levelClassName = enableMultiSupportMenu ? `level-${this.currentLevel.toString()}` : '';\r\n subMenu = this._renderSubMenu(option.subMenu, isMobileView ? option.id : undefined, true);\r\n }\r\n return (\r\n \r\n {menuItem}\r\n {subMenu}\r\n \r\n );\r\n });\r\n return this._renderMenu(levelClassName, menuOptions, activeMenu, IsSubMenu, parentMenu);\r\n }\r\n\r\n /**\r\n * Method to render button menu item.\r\n * @param option -Single Menuitem.\r\n * @param activeMenu -Active menu number.\r\n * @param index -Active menu index.\r\n * @returns Jsx element.\r\n */\r\n private _renderButtonMenuItem(option: IMenuItemData, activeMenu?: number, index?: number): JSX.Element | null {\r\n const { Button } = this.props;\r\n return (\r\n \r\n {option.linkText}\r\n \r\n );\r\n }\r\n\r\n /**\r\n * Method to render link menu item.\r\n * @param option -Single Menuitem.\r\n * @param index -Active menu index.\r\n * @param hoverEffect -Active menu effect.\r\n * @param isParent -Is parent menu.\r\n * @returns Jsx element.\r\n */\r\n private _renderLinkMenuItem(\r\n option: IMenuItemData,\r\n index?: number,\r\n hoverEffect: boolean = true,\r\n isParent: boolean = false\r\n ): JSX.Element | null {\r\n const { Link } = this.props;\r\n const linkText = option.linkText ? option.linkText : '';\r\n const imagesource = option.imageSource ? option.imageSource : '';\r\n this.payLoad.contentAction.etext = linkText;\r\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\r\n return (\r\n \r\n {option.linkText}\r\n \r\n );\r\n }\r\n\r\n /**\r\n * Method to render promotional link.\r\n * @param linkText -Link text.\r\n * @param linkUrl -Link url.\r\n * @returns Jsx element.\r\n */\r\n private _renderPromotionalLink(linkText?: string, linkUrl?: string): JSX.Element | null {\r\n const { Link } = this.props;\r\n this.payLoad.contentAction.etext = linkText;\r\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\r\n if (linkText && linkUrl) {\r\n return (\r\n \r\n {linkText}\r\n \r\n );\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Method to render span menu item.\r\n * @param option -Single Menu Item.\r\n * @param index -Index.\r\n * @param isParent -Is parent menu.\r\n * @returns Jsx element.\r\n */\r\n private _renderSpanMenuItem(option: IMenuItemData, index?: number, isParent: boolean = false): JSX.Element | null {\r\n const { Span } = this.props;\r\n return (\r\n \r\n {option.linkText}\r\n \r\n );\r\n }\r\n\r\n /**\r\n * Method to render menu.\r\n * @param level -Menu level.\r\n * @param menuOptions -Menu lists.\r\n * @param currentItem -Menu current.\r\n * @param submenu -Mneu has submenu or not.\r\n * @returns Jsx element.\r\n */\r\n private _renderMenu(\r\n level: string,\r\n menuOptions: JSX.Element[],\r\n currentItem?: number,\r\n submenu?: boolean,\r\n parentMenu?: IMenuItemData\r\n ): JSX.Element | null {\r\n const { DivContainer, MenuList, ImageDivContainer, showCategoryImage, isMobileView, showPromotionalContent } = this.props;\r\n const categoryImageDisplay =\r\n !isMobileView && showCategoryImage && this.state.categoryImage !== null && this.state.categoryImage !== undefined && !submenu;\r\n const promotionalContentDisplay =\r\n !isMobileView && showPromotionalContent && ArrayExtensions.hasElements(this.state.categoryImage) && !submenu;\r\n const DivContainerClass = this.currentLevel > 2 || categoryImageDisplay ? DivContainer!.className : 'ms-nav__deafult';\r\n this.currentLevel = 1;\r\n //const labelledParentMenu = Object.assign({}, parentMenu, {linkText: 'View all ' + parentMenu?.linkText});\r\n\r\n return (\r\n \r\n
\r\n
{parentMenu?.linkText}
\r\n 2 &&\r\n 'navmenu-multi-level'\r\n )}\r\n >\r\n {menuOptions}\r\n \r\n
\r\n
\r\n
\r\n {categoryImageDisplay &&\r\n this.state.categoryImage &&\r\n this.state.categoryImage.map(item => (\r\n \r\n {this.state.categoryImage && this._getCategoryImage(item)}\r\n {promotionalContentDisplay &&\r\n this._renderPromotionalLink(item.altText, item.additionalProperties?.linkUrl)}\r\n \r\n ))}\r\n
\r\n \r\n View all {parentMenu?.linkText} \r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n private readonly _updateCategoryImage = (categoryImageSrc: string, option: IMenuItemData) => () => {\r\n const linkText = option && option.linkText ? option.linkText : '';\r\n const promotionalImage: IImageData[] = [{ src: categoryImageSrc, altText: linkText }];\r\n\r\n // Read category and promotional image in one array\r\n if (ArrayExtensions.hasElements(option.promotionalContent)) {\r\n option.promotionalContent.map(item => {\r\n if (item && item.image) {\r\n const imageSrc = item.image.src;\r\n const promotionalItemImageSettings = item.image.imageSettings;\r\n promotionalImage.push({\r\n src: imageSrc,\r\n altText: item.text,\r\n imageSettings: promotionalItemImageSettings,\r\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl }\r\n });\r\n }\r\n });\r\n }\r\n this.setState({\r\n categoryImage: promotionalImage.length > 0 ? promotionalImage : [{ src: 'empty' }],\r\n categoryImageAltText: linkText\r\n });\r\n };\r\n\r\n /**\r\n * Method to handle dropdwon change.\r\n * @param data -Menuitem data.\r\n * @param parentId -Menu parent.\r\n * @returns Jsx element.\r\n */\r\n private readonly _handleDropdownToggle = (data: IMenuItemData, parentId?: number) => () => {\r\n if (!this.props.isMobileView) {\r\n this.setState({\r\n activeMenu: this.state.activeMenu && this.state.activeMenu === data.id! ? undefined : data.id!,\r\n parentMenu: parentId\r\n });\r\n if (this.props.showCategoryImage) {\r\n this._updateCategoryImage(data.imageSource!, data)();\r\n }\r\n } else {\r\n this.setState({\r\n activeMenu: data.id,\r\n parentMenu: parentId\r\n });\r\n }\r\n\r\n this._resetFocus();\r\n };\r\n\r\n /**\r\n * Method to call when focus lost from menu.\r\n */\r\n private readonly _resetFocus = () => {\r\n if (this.props.isMobileView) {\r\n setTimeout(() => {\r\n this.menuNode && this.menuNode.current && this.menuNode.current.focus();\r\n }, 0);\r\n }\r\n };\r\n\r\n /**\r\n * Method to handle click outside of menu.\r\n * @param event -HTML event.\r\n */\r\n private readonly _handleClickOutside = (event: MouseEvent) => {\r\n if (this.menuNode.current && !this.menuNode.current.contains(event.target as Node)) {\r\n this.setState({\r\n activeMenu: undefined,\r\n categoryImage: null\r\n });\r\n }\r\n };\r\n\r\n /**\r\n * Method to handle click outside of menu.\r\n * @param event -HTML event.\r\n */\r\n private readonly _handleFocusOutside = (event: FocusEvent) => {\r\n if (this.menuNode.current && !this.menuNode.current.contains(event.relatedTarget as Node)) {\r\n //this._closeSubmenu();\r\n }\r\n };\r\n\r\n /**\r\n * Method to handle close submenu event.\r\n */\r\n private _closeSubmenu(): void {\r\n if (!this.props.isMobileView) {\r\n this.setState({ activeMenu: undefined });\r\n }\r\n }\r\n\r\n /**\r\n * Method to handle escape key event.\r\n * @param event -HTML event.\r\n */\r\n private readonly _escFunction = (event: React.KeyboardEvent) => {\r\n if (event.keyCode === this.escapeKey) {\r\n if (!this.props.isMobileView) {\r\n const navDrawerList = Array.from(this.menuNode.current!.childNodes);\r\n for (const item of navDrawerList) {\r\n const navDrawerButton = item.firstChild as HTMLButtonElement;\r\n if (navDrawerButton.getAttribute('aria-expanded') === 'true') {\r\n navDrawerButton.focus();\r\n }\r\n }\r\n }\r\n this._closeSubmenu();\r\n }\r\n };\r\n\r\n private readonly _getCategoryImage = (categoryImage?: IImageData): React.ReactNode | null => {\r\n if (!categoryImage || !categoryImage.src) {\r\n return null;\r\n }\r\n\r\n const categoryImageUrl = generateImageUrl(categoryImage.src, this.props.context.actionContext.requestContext.apiSettings);\r\n // const defaultImageSettings: IImageSettings = {\r\n // viewports: {\r\n // xs: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\r\n // sm: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\r\n // md: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\r\n // lg: { q: 'w=300&h=250&m=8', w: 0, h: 0 }\r\n // },\r\n // lazyload: true\r\n // };\r\n\r\n if (categoryImageUrl !== undefined) {\r\n //const ImageData: IImageData = { src: categoryImageUrl };\r\n return (\r\n \r\n // \r\n );\r\n }\r\n return null;\r\n };\r\n\r\n /**\r\n * Method to handle escape key event.\r\n * @param drawerState -HTML event.\r\n */\r\n private readonly _onDrawerChange = (drawerState: IDrawerState) => {\r\n const { drawerKeyValue } = this.state;\r\n const drawerText: string = drawerState.buttonText !== undefined ? drawerState.buttonText : '';\r\n const newPair = { [drawerText]: drawerState.isOpen };\r\n this.setState({ drawerKeyValue: { ...drawerKeyValue, ...newPair } });\r\n };\r\n}\r\n\r\nexport default NavigationMenuView;\r\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 { ControlledDrawer, getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport { IDrawerState } from '@msdyn365-commerce-modules/utilities/dist/types/drawer/Drawer';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { createAccordionStateInput, interactionStyle } from '../..';\nimport { IAccordionItemData } from './accordion-item.data';\nimport { IAccordionItemProps } from './accordion-item.props.autogenerated';\n\nexport interface IAccordionItemViewProps {\n AccordionItemContainer: IModuleProps;\n drawer: INodeProps;\n accordionSlots: INodeProps;\n AccordionItemContent: INodeProps;\n className: string;\n}\n\nexport interface IAccordionItemExtentedProps extends IAccordionItemProps {\n interactionStyle?: interactionStyle;\n}\n\n/**\n *\n * AccordionItem component.\n * @extends {React.Component}\n */\n@observer\nclass AccordionItem extends React.Component {\n private readonly moduleClassName: string = 'ms-accordion-item';\n\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IAccordionItemProps) {\n super(props);\n this._onToggle = this._onToggle.bind(this);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public shouldComponentUpdate(nextProps: IAccordionItemProps): boolean {\n if (this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { slots, renderView, config, data } = this.props;\n const accordionExpandedStateResult = data && data.accordionExpandedState && data.accordionExpandedState.result;\n const expanded =\n accordionExpandedStateResult && accordionExpandedStateResult.isAllExpanded === undefined\n ? data && config.isExpandedOnInitialLoad\n : accordionExpandedStateResult && accordionExpandedStateResult.isAllExpanded;\n const viewProps = {\n ...this.props,\n AccordionItemContainer: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n AccordionItemContent: {\n className: 'ms-accordion-item-content'\n },\n drawer: {\n tag: ControlledDrawer,\n className: `${this.moduleClassName}__drawer`,\n toggleButtonText: (config.accordionItemTitle && config.accordionItemTitle) || '',\n collapseProps: { isOpen: expanded },\n onToggle: this._onToggle,\n onTextChange: this.handleHeadingChange,\n requestContext: this.props.context.request,\n telemetryContent: this.telemetryContent\n },\n accordionSlots: slots\n };\n return renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.accordionItemTitle = event.target.value);\n\n private _onToggle(state: IDrawerState): void {\n if (!state.isOpen && this.props.interactionStyle === interactionStyle.ExpandOneItemOnly) {\n const accordionState = { isAllExpanded: false };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n }\n }\n}\nexport default AccordionItem;\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 { IAccordionItemViewProps } from './accordion-item';\n\nconst AccordionItemView: React.FC = props => {\n const { drawer, accordionSlots, AccordionItemContainer, AccordionItemContent } = props;\n return (\n \n \n \n {accordionSlots &&\n accordionSlots.accordionItemContent &&\n accordionSlots.accordionItemContent.length &&\n _renderAccordionItemContent(accordionSlots.accordionItemContent)}\n \n \n \n );\n};\n\nconst _renderAccordionItemContent = (items: React.ReactNode[]): JSX.Element | null => {\n return (\n <>\n {items && items.length > 0\n ? items.map((item: React.ReactNode, index: number) => {\n return {item};\n })\n : null}\n \n );\n};\nexport default AccordionItemView;\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 {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent,\n NodeTag,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { createAccordionStateInput } from '../..';\nimport { IAccordionData } from './accordion.data';\nimport { IAccordionProps } from './accordion.props.autogenerated';\n\n/**\n *\n * Accordion component.\n * @extends {React.PureComponent>}\n */\n\nexport interface ICallToActionProps {\n link: INodeProps[];\n}\n\n/**\n * Added interface for state management.\n */\nexport interface IAccordianState {\n isDisabled: boolean;\n}\n\nexport interface IAccordionViewProps extends IAccordionProps<{}> {\n heading?: React.ReactNode;\n AccordionContainer: IModuleProps;\n HeaderSection: INodeProps;\n HeadingWrapper: INodeProps;\n accordianButtonsContainer: INodeProps;\n accordionButtons: React.ReactNode;\n accordionItemContainer: INodeProps;\n accordionItems: React.ReactNode;\n}\n\n/**\n *\n * Accordion component.\n * @extends {React.Component>}\n */\n@observer\nclass Accordion extends React.PureComponent, IAccordianState> {\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private readonly expandAllButtonRef: React.RefObject = React.createRef();\n\n private readonly collapseAllButtonRef: React.RefObject = React.createRef();\n\n constructor(props: IAccordionProps) {\n super(props);\n this._onExpandAll = this._onExpandAll.bind(this);\n this._onCollapseAll = this._onCollapseAll.bind(this);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n this.state = { isDisabled: false };\n }\n\n public render(): JSX.Element {\n const { slots } = this.props;\n const { heading, className } = this.props.config;\n const headingComponent = heading && heading.text && (\n \n );\n\n const accordionViewProps = {\n ...this.props,\n AccordionContainer: {\n moduleProps: this.props,\n className: classnames('ms-accordion', className)\n },\n HeaderSection: { className: 'ms-accordion-header-section' },\n HeadingWrapper: { className: 'ms-accordion-header-section-container' },\n heading: headingComponent,\n config: this.props && this.props.config,\n accordianButtonsContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-accordion-header-section-toggle-button-container'\n },\n accordionButtons: this._renderAccordionButton(),\n accordionItemContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-accordion-item-section'\n },\n accordionItems:\n slots &&\n slots.accordionItems &&\n slots.accordionItems.length > 0 &&\n slots.accordionItems.map((item: React.ReactNode, index: number) => this._getAccordionItem(item, index))\n };\n return this.props.renderView(accordionViewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n private _renderAccordionButton(): React.ReactNode | null {\n const { config, resources } = this.props;\n const { heading } = config;\n this.payLoad.contentAction.etext = TelemetryConstant.ExpandAll;\n const attributeExpandAll = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = TelemetryConstant.CollapseAll;\n const attributeCollapseAll = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n if (!config.showToggleAll) {\n this.props.context.telemetry.error('Accordion button content is empty, module wont render');\n return null;\n }\n return (\n <>\n \n {resources.expandAllText}\n \n  \n {resources.toggleAllSeparator}\n  \n \n {resources.collapseAllText}\n \n \n );\n }\n\n private _onExpandAll(): void {\n const accordionState = { isAllExpanded: true };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n if (accordionState.isAllExpanded) {\n this.setState({\n isDisabled: true\n });\n setTimeout(() => {\n this.collapseAllButtonRef.current?.focus();\n }, 50);\n }\n }\n\n private _onCollapseAll(): void {\n const accordionState = { isAllExpanded: false };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n if (!accordionState.isAllExpanded) {\n this.setState({\n isDisabled: false\n });\n setTimeout(() => {\n this.expandAllButtonRef.current?.focus();\n }, 50);\n }\n }\n\n private _getAccordionItem(item: React.ReactNode, index: number): React.ReactNode {\n return (\n \n {React.cloneElement(item as React.ReactElement, { interactionStyle: this.props.config.interactionStyle })}\n \n );\n }\n}\n\nexport default Accordion;\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 { IAccordionViewProps } from './accordion';\n\nconst accordionView: React.FC = props => {\n const { heading, AccordionContainer, accordionItems } = props;\n if (!props.heading && !props.accordionButtons && !props.accordionItems) {\n props.context.telemetry.error('Accordion content is empty, module wont render');\n return null;\n }\n return (\n \n \n {heading}\n {props.accordionButtons && {props.accordionButtons}}\n \n {accordionItems}\n \n );\n};\n\nexport default accordionView;\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 {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IFooterItemConfig, IFooterItemProps, IHeadingData, ILinkData } from './footer-item.props.autogenerated';\n\nexport interface IFooterViewProps extends IFooterItemProps {\n heading: React.ReactNode;\n image: React.ReactNode;\n text: React.ReactNode;\n linkText: React.ReactNode;\n className?: string;\n FooterItem: IModuleProps;\n HeadingContainer: INodeProps;\n ItemContainer: INodeProps;\n Link: INodeProps;\n EditableLink: React.ReactNode;\n}\n\n/**\n *\n * FooterItem component.\n * @extends {React.PureComponent>}\n */\nexport class FooterItem extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private attributes: Msdyn365.IDictionary | undefined;\n\n constructor(props: IFooterItemProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n // Construct telemetry attribute to render\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n }\n\n public render(): JSX.Element {\n const { heading, image, link, text } = this.props.config;\n const footerItemClassName = classnames('ms-footer__item', this.props.config.className);\n const linkText = link && link.linkText ? link.linkText : '';\n this.payLoad.contentAction.etext = linkText;\n this.attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n const viewProps: IFooterViewProps = {\n ...this.props,\n heading: this._createHeading(heading!),\n image: this._createImageMarkup(image!),\n text: this._createText(text!),\n linkText: this._createLinkText(link!),\n EditableLink: this._createLink(link!),\n\n FooterItem: {\n moduleProps: this.props,\n className: footerItemClassName\n },\n\n HeadingContainer: {\n className: 'ms-footer__heading'\n },\n\n ItemContainer: {\n className: 'ms-footer__link__container'\n },\n\n // @ts-expect-error\n Link: link &&\n link.linkUrl &&\n link.linkUrl.destinationUrl && {\n tag: 'a',\n role: 'link',\n className: 'ms-footer__link',\n href: link.linkUrl.destinationUrl,\n title: linkText,\n 'aria-label': link.ariaLabel,\n target: link.openInNewTab ? '_blank' : undefined,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText),\n ...this.attributes\n },\n className: footerItemClassName\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.text = event.target.value);\n\n public handleLinkTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.link!.linkText = event.target.value);\n\n private _createLink(link: ILinkData): React.ReactNode | null {\n if (link) {\n const linkText = link.linkText ? link.linkText : '';\n\n // TODO: Update the inner tag in the anchor link to span\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-footer__link',\n linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: this.attributes!,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText)\n };\n return (\n \n );\n }\n return null;\n }\n\n private _createLinkText(link: ILinkData): React.ReactNode | null {\n if (!link || !link.linkText) {\n return null;\n }\n\n return {link.linkText};\n }\n\n private _createHeading(heading: IHeadingData): React.ReactNode | null {\n if (!heading || !heading.text || heading.text.length === 0) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _createText(text: string): React.ReactNode | null {\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n private _createImageMarkup(item: Msdyn365.IImageData, ariaHiddenAttr?: boolean): React.ReactNode | null {\n if (!item || !item.src || item.src.length === 0) {\n return null;\n }\n\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=24&h=24&m=6', w: 0, h: 0 },\n lg: { q: 'w=24&h=24&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n return (\n \n );\n }\n}\n\nexport default FooterItem;\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 { IFooterViewProps } from './footer-item';\n\n/**\n *\n * FooterItemView component.\n * @extends {React.PureComponent}\n */\nexport class FooterItemView extends React.PureComponent {\n public render(): JSX.Element | null {\n const { FooterItem } = this.props;\n return {this._renderElement(this.props)};\n }\n\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\n const { heading, HeadingContainer, Link, linkText, image, text, EditableLink } = props;\n if (heading) {\n return {heading} ;\n } else if (Link && image) {\n return (\n \n {linkText}\n {image}\n \n );\n } else if (Link) {\n return EditableLink;\n }\n return (\n <>\n {text}\n {image}\n \n );\n }\n}\n\nexport default FooterItemView;\n"],"names":["async","ctx","cartState","checkoutState","lineItemIdsToRemove","getCartState","getCheckoutState","error","cart","Error","checkoutCart","activeCart","activeCartLine","CartLines","checkoutCartLine","LineId","push","removeCartLines","cartLineIds","removeAllPromoCodes","removeCheckoutCartId","PunchoutEmptyCart","React","_window$sessionStorag","window","sessionStorage","getItem","emptyActiveCart","this","props","context","actionContext","removeItem","render","renderView","CartIcon","observer","cartLabel","data","cartLink","getUrlSync","cartItem","totalItemsInCart","label","format","payLoad","getPayloadObject","telemetryContent","attributes","getTelemetryAttributes","style","visibility","Object","assign","title","className","href","onClick","onTelemetryClick","CartIconComponent","msdyn365Commerce","createComponentOverride","_objectSpread","component","NavigationMenuView","constructor","super","currentLevel","escapeKey","_updateCategoryImage","categoryImageSrc","option","linkText","promotionalImage","src","altText","ArrayExtensions","hasElements","promotionalContent","map","item","image","imageSrc","promotionalItemImageSettings","imageSettings","text","additionalProperties","linkUrl","destinationUrl","setState","categoryImage","length","categoryImageAltText","_handleDropdownToggle","parentId","isMobileView","activeMenu","id","parentMenu","state","undefined","showCategoryImage","imageSource","_resetFocus","setTimeout","menuNode","current","focus","_handleClickOutside","event","contains","target","_handleFocusOutside","relatedTarget","_escFunction","keyCode","navDrawerList","Array","from","childNodes","navDrawerButton","firstChild","getAttribute","_closeSubmenu","_getCategoryImage","generateImageUrl","requestContext","apiSettings","_onDrawerChange","drawerState","drawerKeyValue","newPair","buttonText","isOpen","bind","getTelemetryObject","request","telemetryPageName","friendlyName","telemetry","componentDidMount","MsDyn365","isBrowser","document","body","addEventListener","componentWillUnmount","removeEventListener","_renderMobileMenu","_renderDesktopMenu","menuItemData","Navigation","Module","classnames","menuItem","_renderDrawerMenu","MenuList","Node","ref","tabIndex","_renderDisplay","subMenu","_renderDrawer","_renderLinkMenuItem","toggleButtonText","keyValue","isDrawerOpen","colProps","Drawer","key","openGlyph","onToggle","collapseProps","closeGlyph","glyphPlacement","_renderLinkText","menuSubItem","_renderDrawerLink","linkURL","_renderSpanMenuItem","ListItem","menuItemList","menuItemDatum","_getFromSubMenu","_createMenuItemList","forEach","index","subMenus","i","found","_renderSubMenu","_renderButtonMenuItem","IsSubMenu","enableMultiSupportMenu","config","enableMultilevelMenu","multiLevelSupportedMenu","menuLevelSupport","levelClassName","menuOptions","idx","hasOptions","haveSubmenu","Math","round","toString","_renderMenu","Button","onFocus","hoverEffect","arguments","isParent","Link","imagesource","contentAction","etext","onMouseOver","_renderPromotionalLink","Span","level","currentItem","submenu","DivContainer","ImageDivContainer","showPromotionalContent","categoryImageDisplay","promotionalContentDisplay","DivContainerClass","_item$additionalPrope","AccordionItem","moduleClassName","handleHeadingChange","accordionItemTitle","value","_onToggle","shouldComponentUpdate","nextProps","slots","accordionExpandedStateResult","accordionExpandedState","result","expanded","isAllExpanded","isExpandedOnInitialLoad","AccordionItemContainer","moduleProps","AccordionItemContent","drawer","tag","ControlledDrawer","onTextChange","accordionSlots","interactionStyle","accordionState","update","createAccordionStateInput","__decorate","_renderAccordionItemContent","items","accordionItemContent","Accordion","expandAllButtonRef","collapseAllButtonRef","heading","_onExpandAll","_onCollapseAll","isDisabled","headingComponent","Msdyn365","editProps","onEdit","accordionViewProps","AccordionContainer","HeaderSection","HeadingWrapper","accordianButtonsContainer","accordionButtons","_renderAccordionButton","accordionItemContainer","accordionItems","_getAccordionItem","resources","TelemetryConstant","ExpandAll","attributeExpandAll","CollapseAll","attributeCollapseAll","showToggleAll","disabled","expandAllText","toggleAllSeparator","collapseAllText","_this$collapseAllButt","_this$expandAllButton","FooterItem","handleTextChange","handleLinkTextChange","link","footerItemClassName","viewProps","_createHeading","_createImageMarkup","_createText","_createLinkText","EditableLink","_createLink","HeadingContainer","ItemContainer","role","ariaLabel","openInNewTab","editableLink","ariaHiddenAttr","gridSettings","viewports","xs","q","w","h","lg","lazyload","loadFailureBehavior","shouldSkipToMainImage","FooterItemView","_renderElement"],"sourceRoot":""}