{"version":3,"file":"static/js/cf81f8b4cc70a78e0d7a.bundle.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./lib/site-picker/module-registration.js?c0d1","webpack://Msdyn365.Commerce.Online/./src/modules/site-picker/site-picker.tsx?b9ec","webpack://Msdyn365.Commerce.Online/./src/modules/site-picker/site-picker.view.tsx?5319","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['site-picker'] = {\n c: () => require('@msdyn365-commerce-modules/site-picker/dist/lib/modules/site-picker/site-picker'),\n $type: 'contentModule',\n da: [],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'site-picker',\n p: 'site-picker',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/site-picker/dist/lib/modules/site-picker'\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|site-picker|modules|site-picker|site-picker'] = {\n c: () => require('@msdyn365-commerce-modules/site-picker/dist/lib/modules/site-picker/site-picker.view.js'),\n cn: '@msdyn365-commerce-modules-site-picker-site-picker'\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 MsDyn365, { IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { addThrottledEvent, Drawer, IModuleProps, INodeProps, KeyCodes, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport React from 'react';\n\nimport { ISitePickerConfig, ISitePickerProps } from './site-picker.props.autogenerated';\n\nexport interface ISitePickerViewProps extends ISitePickerProps {\n SitePicker: IModuleProps;\n SitePickerMenu: INodeProps;\n SitePickerMenuSpan: INodeProps;\n SitePickerMenuList: INodeProps;\n SitePickerMenuListItem: INodeProps;\n SitePickerMenuListItemArray: React.ReactNode[] | undefined;\n siteOptionsState: boolean;\n SitePickerMobileContainer: INodeProps;\n isMobileView: boolean;\n renderSiteOptions(): void;\n resetSiteOptionsState(): void;\n}\n\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\ninterface ISitePickerState {\n expandSiteOptions: boolean;\n isMobile: boolean;\n}\n\n/**\n *\n * SitePicker component.\n * @extends {React.PureComponent>}\n */\nclass SitePicker extends React.PureComponent, ISitePickerState> {\n private readonly _cookieName: string = '_msdyn365___site_';\n\n private readonly _cookieExpirationInSeconds: number = 5_184_000;\n\n private readonly _sitePickerMenuNode: React.RefObject;\n\n private readonly _sitePickerMenuButton: React.RefObject;\n\n private resizeThrottledEventHandler?: (event: Event) => void;\n\n @observable\n private viewport: GridSize;\n\n public constructor(props: ISitePickerViewProps) {\n super(props);\n this._handleChange = this._handleChange.bind(this);\n this._sitePickerMenuNode = React.createRef();\n this._sitePickerMenuButton = React.createRef();\n this._renderSiteOptions = this._renderSiteOptions.bind(this);\n this._resetSiteOptionsState = this._resetSiteOptionsState.bind(this);\n this._escFunction = this._escFunction.bind(this);\n this._handleOutsideClick = this._handleOutsideClick.bind(this);\n this._updateViewport = this._updateViewport.bind(this);\n this.viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this.state = {\n expandSiteOptions: false,\n isMobile: this.isMobile\n };\n }\n\n @computed get isMobile(): boolean {\n return this.viewport === 'xs' || this.viewport === 'sm';\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n document?.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document?.body?.addEventListener('mousedown', this._handleOutsideClick);\n this.resizeThrottledEventHandler = window && addThrottledEvent(window, 'resize', this._updateViewport as EventListener);\n this._updateViewport();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n document?.removeEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document?.body?.removeEventListener('mousedown', this._handleOutsideClick, false);\n window && window.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\n }\n }\n\n public render(): JSX.Element | null {\n const viewProps: ISitePickerViewProps = {\n ...(this.props as ISitePickerProps),\n SitePicker: {\n moduleProps: this.props,\n className: classnames('ms-site-picker', this.props.config.className, this.state.isMobile ? 'mobile-view' : 'desktop-view'),\n tag: 'div'\n },\n SitePickerMenu: {\n tag: 'button' as NodeTag,\n className: 'ms-site-picker__button',\n 'aria-label': this.props.config.heading?.text,\n 'aria-expanded': this.state.expandSiteOptions,\n onClick: this.props,\n ref: this._sitePickerMenuButton\n },\n SitePickerMenuSpan: {\n className: 'ms-site-picker__span',\n tag: 'span'\n },\n SitePickerMenuList: {\n className: 'ms-site-picker__list',\n role: 'menu',\n tag: 'ul',\n ref: this._sitePickerMenuNode\n },\n SitePickerMenuListItem: {\n className: 'ms-site-picker__list__item',\n role: 'presentation',\n tag: 'li'\n },\n SitePickerMobileContainer: {\n tag: Drawer,\n className: 'ms-site-picker__drawer',\n toggleButtonText: this.props.config.heading?.text,\n openGlyph: 'ms-site-picker__drawer-open',\n closeGlyph: 'ms-site-picker__drawer-close',\n glyphPlacement: 'end'\n },\n isMobileView: this.state.isMobile,\n SitePickerMenuListItemArray: this._renderSitePickerImage(),\n renderSiteOptions: this._renderSiteOptions,\n resetSiteOptionsState: this._resetSiteOptionsState,\n siteOptionsState: this.state.expandSiteOptions\n };\n return this.props.renderView(viewProps);\n }\n\n private _renderSiteOptions(): void {\n const expandSiteOptionsState = this.state.expandSiteOptions;\n this.setState({\n expandSiteOptions: !expandSiteOptionsState\n });\n }\n\n private _resetSiteOptionsState(): void {\n this.setState({\n expandSiteOptions: false\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _escFunction = (event: any) => {\n const key = event.keyCode;\n if (this.state.expandSiteOptions) {\n switch (key) {\n case KeyCodes.Escape: {\n setTimeout(() => {\n const nextFocus = document && document.activeElement;\n if (\n this._sitePickerMenuButton?.current?.contains(nextFocus) ||\n this._sitePickerMenuNode?.current?.contains(nextFocus)\n ) {\n this._resetSiteOptionsState();\n this._sitePickerMenuButton?.current?.focus();\n }\n }, 50);\n break;\n }\n case KeyCodes.Tab: {\n setTimeout(() => {\n const nextFocus = document && document.activeElement;\n if (\n !this._sitePickerMenuButton?.current?.contains(nextFocus) &&\n !this._sitePickerMenuNode?.current?.contains(nextFocus)\n ) {\n this._resetSiteOptionsState();\n }\n }, 50);\n break;\n }\n default:\n return;\n }\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _handleOutsideClick = (event: any) => {\n if (\n (this._sitePickerMenuButton.current?.contains(event.target) && this.state.expandSiteOptions) ||\n (this._sitePickerMenuNode.current?.contains(event.target) && this.state.expandSiteOptions)\n ) {\n return;\n }\n this._resetSiteOptionsState();\n };\n\n private _handleChange(e: React.MouseEvent): void {\n e.preventDefault();\n if (e.currentTarget.href && e.currentTarget.href.length > 0 && window) {\n if (this.props.context.request.cookies.isConsentGiven()) {\n const cookieConfig = { maxAge: this._cookieExpirationInSeconds };\n this.props.context.request.cookies.set(this._cookieName, e.currentTarget.href, cookieConfig);\n }\n window.location.assign(e.currentTarget.href);\n }\n }\n\n private _renderSitePickerImage(): React.ReactNode[] | undefined {\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=50&h=25&m=6', w: 0, h: 0 },\n sm: { q: 'w=50&h=25&m=6', w: 0, h: 0 },\n md: { q: 'w=40&h=20&m=6', w: 0, h: 0 },\n lg: { q: 'w=40&h=20&m=6', w: 0, h: 0 },\n xl: { q: 'w=40&h=20&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n const siteOptions = this.props.config.siteOptions && this.props.config.siteOptions;\n return (\n siteOptions &&\n siteOptions.map((item, index) => {\n const image = item?.siteImage;\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: image?.imageSettings?.viewports ? image.imageSettings : defaultImageSettings\n };\n return (\n \n {item?.siteName}\n \n \n );\n })\n );\n }\n\n private _updateViewport(): void {\n this.viewport = this._getViewport();\n this.setState({ isMobile: this.isMobile });\n }\n\n private _getViewport(): GridSize {\n const { context } = this.props;\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (typeof window !== undefined && window.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n }\n return 'xl';\n }\n }\n return 'xs';\n }\n}\n\nexport default SitePicker;\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 { ISitePickerViewProps } from './site-picker';\n\nexport default (props: ISitePickerViewProps) => {\n return <>{_renderSitePicker(props)};\n};\n\nconst _renderDesktopView = (props: ISitePickerViewProps) => {\n const { SitePickerMenu, SitePickerMenuSpan } = props;\n return (\n <>\n \n {props.config.heading?.text}\n \n \n {props.siteOptionsState ? _renderSiteOptionsList(props) : null}\n \n );\n};\n\nconst _renderSiteOptionsList = (props: ISitePickerViewProps): React.ReactNode => {\n const { SitePickerMenuList, SitePickerMenuListItem, SitePickerMenuListItemArray } = props;\n const options = SitePickerMenuListItemArray!.map((item, index) => {\n return (\n \n {item}\n \n );\n });\n return (\n \n {options}\n \n );\n};\n\nconst _renderMobileView = (props: ISitePickerViewProps): React.ReactNode => {\n const { SitePickerMobileContainer } = props;\n return (\n \n
\n {props.SitePickerMenuListItemArray?.map((item, index) => {\n return
{item}
;\n })}\n
\n
\n );\n};\n\nconst _renderSitePicker = (props: ISitePickerViewProps): React.ReactNode => {\n const { isMobileView, SitePicker } = props;\n return {isMobileView ? _renderMobileView(props) : _renderDesktopView(props)};\n};\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","SitePicker","React","constructor","props","super","_cookieName","_cookieExpirationInSeconds","_escFunction","event","key","keyCode","this","state","expandSiteOptions","KeyCodes","setTimeout","_this$_sitePickerMenu","_this$_sitePickerMenu2","_this$_sitePickerMenu3","_this$_sitePickerMenu4","nextFocus","document","activeElement","_this$_sitePickerMenu5","_this$_sitePickerMenu6","_sitePickerMenuButton","current","contains","_sitePickerMenuNode","_resetSiteOptionsState","focus","_this$_sitePickerMenu7","_this$_sitePickerMenu8","_this$_sitePickerMenu9","_this$_sitePickerMenu10","_handleOutsideClick","_this$_sitePickerMenu11","_this$_sitePickerMenu12","target","_handleChange","bind","_renderSiteOptions","_updateViewport","viewport","context","request","device","Type","isMobile","componentDidMount","_document","_document2","_document2$body","MsDyn365","addEventListener","body","resizeThrottledEventHandler","addThrottledEvent","componentWillUnmount","_document3","_document4","_document4$body","removeEventListener","render","_this$props$config$he","_this$props$config$he2","viewProps","moduleProps","className","classnames","config","tag","SitePickerMenu","heading","text","onClick","ref","SitePickerMenuSpan","SitePickerMenuList","role","SitePickerMenuListItem","SitePickerMobileContainer","Drawer","toggleButtonText","openGlyph","closeGlyph","glyphPlacement","isMobileView","SitePickerMenuListItemArray","_renderSitePickerImage","renderSiteOptions","resetSiteOptionsState","siteOptionsState","renderView","expandSiteOptionsState","setState","e","preventDefault","currentTarget","href","length","cookies","isConsentGiven","cookieConfig","maxAge","set","location","assign","defaultImageSettings","viewports","xs","q","w","h","sm","lg","xl","lazyload","siteOptions","map","item","index","_image$imageSettings","_item$siteRedirectUrl","image","siteImage","imageProps","gridSettings","imageSettings","tabIndex","siteRedirectUrl","destinationUrl","siteName","Image","requestContext","src","altText","loadFailureBehavior","shouldSkipToMainImage","_getViewport","undefined","innerWidth","__decorate","observable","computed","_renderSitePicker","_renderSiteOptionsList","options","Node","Object","onMouseLeave","Module","_props$SitePickerMenu","_renderMobileView","_props$config$heading","_renderDesktopView","module","exports","ReactDOM"],"sourceRoot":""}