{"version":3,"file":"static/js/17ae6790b3fd2a741b14.bundle.js","mappings":"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","sources":["webpack://bestseller.commerce.online/./lib/site-picker/module-registration.js?c0d1","webpack://bestseller.commerce.online/./src/modules/site-picker/site-picker.tsx?b9ec","webpack://bestseller.commerce.online/./src/modules/site-picker/site-picker.view.tsx?5319","webpack://bestseller.commerce.online/external var \"React\"?0d3b","webpack://bestseller.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","Escape","setTimeout","_this$_sitePickerMenu","_this$_sitePickerMenu2","nextFocus","document","activeElement","_this$_sitePickerMenu3","_sitePickerMenuButton","current","contains","_sitePickerMenuNode","_resetSiteOptionsState","focus","Tab","_this$_sitePickerMenu4","_this$_sitePickerMenu5","_handleOutsideClick","_this$_sitePickerMenu6","_this$_sitePickerMenu7","target","_handleChange","bind","_renderSiteOptions","_updateViewport","viewport","context","request","device","Type","isMobile","componentDidMount","_document","_document2","MsDyn365","isBrowser","addEventListener","body","resizeThrottledEventHandler","addThrottledEvent","componentWillUnmount","_document3","_document4","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":""}