{"version":3,"file":"static/js/a5849e992a267e1ff916.bundle.js","mappings":"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","sources":["webpack://ahi-ecommerce/./lib/site-picker/module-registration.js?c0d1","webpack://ahi-ecommerce/./src/modules/site-picker/site-picker.tsx?b9ec","webpack://ahi-ecommerce/./src/modules/site-picker/site-picker.view.tsx?5319","webpack://ahi-ecommerce/external var \"React\"?0d3b","webpack://ahi-ecommerce/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","Escape","setTimeout","_this$_sitePickerMenu","_this$_sitePickerMenu2","_this$_sitePickerMenu3","_this$_sitePickerMenu4","nextFocus","document","activeElement","_this$_sitePickerMenu5","_this$_sitePickerMenu6","_sitePickerMenuButton","current","contains","_sitePickerMenuNode","_resetSiteOptionsState","focus","Tab","_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","isBrowser","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":""}