{"version":3,"file":"static/js/ec9b0f186fb31e05812b.bundle.js","mappings":"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","sources":["webpack://Dobbies.Commerce/./src/modules/dobbies-new-store-locator/dobbies-new-store-locator.tsx?c179","webpack://Dobbies.Commerce/./src/modules/dobbies-new-store-locator/dobbies-new-store-locator.view.tsx?e889","webpack://Dobbies.Commerce/./src/modules/dobbies-new-store-locator/utils/store-utils.ts?153a","webpack://Dobbies.Commerce/./lib/dobbies-new-store-locator/module-registration.js?4d25","webpack://Dobbies.Commerce/external var \"React\"?0d3b","webpack://Dobbies.Commerce/external var \"ReactDOM\"?853b"],"sourcesContent":["/*!\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 { IDobbiesNewStoreLocatorData } from './dobbies-new-store-locator.data';\r\nimport { IDobbiesNewStoreLocatorProps } from './dobbies-new-store-locator.props.autogenerated';\r\nimport { IDobbiesStoresByRegions } from './dobbies-new-store-locator.view';\r\nimport { createStoresDataArray } from './utils/store-utils';\r\n\r\nexport interface IDobbiesNewStoreLocatorViewProps extends IDobbiesNewStoreLocatorProps {\r\n storesByRegions: IDobbiesStoresByRegions[];\r\n noStoreAlphabetsState: string[];\r\n}\r\n\r\nexport interface IDobbiesNewStore {\r\n name?: string;\r\n pageUrl?: string;\r\n}\r\n\r\nexport interface IDobbiesNewStoreLocatorSortedData {\r\n alphabet: string;\r\n stores: IDobbiesNewStore[];\r\n}\r\n\r\n/**\r\n *\r\n * DobbiesNewStoreLocator component\r\n * @extends {React.PureComponent>}\r\n */\r\n\r\nexport interface IDobbiesNewStoreLocatorState {\r\n storesByRegions: IDobbiesStoresByRegions[];\r\n noStoreAlphabetsState: string[];\r\n calledOnce: boolean;\r\n}\r\nclass DobbiesNewStoreLocator extends React.PureComponent<\r\n IDobbiesNewStoreLocatorProps,\r\n IDobbiesNewStoreLocatorState\r\n> {\r\n constructor(props: IDobbiesNewStoreLocatorProps) {\r\n super(props);\r\n this.state = { storesByRegions: [], noStoreAlphabetsState: [], calledOnce: false };\r\n }\r\n\r\n private alphabetsList = [\r\n 'A',\r\n 'B',\r\n 'C',\r\n 'D',\r\n 'E',\r\n 'F',\r\n 'G',\r\n 'H',\r\n 'I',\r\n 'J',\r\n 'K',\r\n 'L',\r\n 'M',\r\n 'N',\r\n 'O',\r\n 'P',\r\n 'Q',\r\n 'R',\r\n 'S',\r\n 'T',\r\n 'U',\r\n 'V',\r\n 'W',\r\n 'X',\r\n 'Y',\r\n 'Z'\r\n ];\r\n\r\n private updateRegions = (): IDobbiesStoresByRegions[] => {\r\n const allStoresByRegions: IDobbiesStoresByRegions[] = [];\r\n const configRegions = this.props.config.storesByRegionsData || [];\r\n const nostoresAlphabets: string[] = [];\r\n if (configRegions && configRegions.length) {\r\n for (const cr of configRegions) {\r\n if (cr.regionName && cr.storesInfo) {\r\n const stores = createStoresDataArray(cr.regionName, cr.storesInfo);\r\n allStoresByRegions.push({ regionName: cr.regionName, stores: stores });\r\n }\r\n }\r\n }\r\n for (const alpha of this.alphabetsList) {\r\n let hasStores = false;\r\n for (const asbr of allStoresByRegions) {\r\n if (hasStores) {\r\n break;\r\n }\r\n for (const st of asbr.stores) {\r\n if (hasStores) {\r\n break;\r\n }\r\n for (const stCol of st) {\r\n if (stCol.name?.toLowerCase().startsWith(alpha.toLowerCase())) {\r\n hasStores = true;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n if (!hasStores) {\r\n nostoresAlphabets.push(alpha);\r\n }\r\n }\r\n this.setState({ storesByRegions: allStoresByRegions, noStoreAlphabetsState: nostoresAlphabets, calledOnce: true });\r\n return allStoresByRegions;\r\n // setStoresByRegions(allStoresByRegions);\r\n // setNoStoreAlphabets(nostoresAlphabets);\r\n };\r\n\r\n public render(): JSX.Element | null {\r\n let storesByRegionsData;\r\n if (this.state.storesByRegions.length <= 0 && !this.state.calledOnce) {\r\n storesByRegionsData = this.updateRegions();\r\n }\r\n const newStoreLocatorProps: IDobbiesNewStoreLocatorViewProps = {\r\n ...this.props,\r\n storesByRegions: this.state.storesByRegions.length ? this.state.storesByRegions : storesByRegionsData || [],\r\n noStoreAlphabetsState: this.state.noStoreAlphabetsState\r\n };\r\n return this.props.renderView(newStoreLocatorProps);\r\n }\r\n}\r\n\r\nexport default DobbiesNewStoreLocator;\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 { IDobbiesNewStore, IDobbiesNewStoreLocatorViewProps } from './dobbies-new-store-locator';\r\nimport { createStoresDataArray } from './utils/store-utils';\r\nexport interface IDobbiesStoresByRegions {\r\n regionName: string;\r\n stores: IDobbiesNewStore[][];\r\n}\r\n\r\nexport default (props: IDobbiesNewStoreLocatorViewProps) => {\r\n const [selectedAlphabet, setSelectedAlphabet] = React.useState('');\r\n const [storesByRegions, setStoresByRegions] = React.useState([]);\r\n const [noStoreAlphabetsState, setNoStoreAlphabets] = React.useState([]);\r\n const alphabetsList = [\r\n 'A',\r\n 'B',\r\n 'C',\r\n 'D',\r\n 'E',\r\n 'F',\r\n 'G',\r\n 'H',\r\n 'I',\r\n 'J',\r\n 'K',\r\n 'L',\r\n 'M',\r\n 'N',\r\n 'O',\r\n 'P',\r\n 'Q',\r\n 'R',\r\n 'S',\r\n 'T',\r\n 'U',\r\n 'V',\r\n 'W',\r\n 'X',\r\n 'Y',\r\n 'Z'\r\n ];\r\n\r\n const [englandSectionCollapsed, setEnglandSectionCollapsed] = React.useState(false);\r\n const [scotlandSectionCollapsed, setScotlandSectionCollapsed] = React.useState(false);\r\n const [niSectionCollapsed, setNISectionCollapsed] = React.useState(false);\r\n const [walesSectionCollapsed, setWalesSectionCollapsed] = React.useState(false);\r\n const [ldSectionCollapsed, setLDSectionCollapsed] = React.useState(false);\r\n\r\n const collapseUnCollapseRegion = (regionName: string) => {\r\n if (regionName.toLowerCase() === 'england') {\r\n setEnglandSectionCollapsed(!englandSectionCollapsed);\r\n }\r\n if (regionName.toLowerCase() === 'scotland') {\r\n setScotlandSectionCollapsed(!scotlandSectionCollapsed);\r\n }\r\n if (regionName.toLowerCase() === 'northern ireland') {\r\n setNISectionCollapsed(!niSectionCollapsed);\r\n }\r\n if (regionName.toLowerCase() === 'wales') {\r\n setWalesSectionCollapsed(!walesSectionCollapsed);\r\n }\r\n if (regionName.toLowerCase() === 'little dobbies') {\r\n setLDSectionCollapsed(!ldSectionCollapsed);\r\n }\r\n };\r\n\r\n const shouldShowStoresForRegion = (regionName: string) => {\r\n if (regionName.toLowerCase() === 'england') {\r\n return !englandSectionCollapsed;\r\n }\r\n if (regionName.toLowerCase() === 'scotland') {\r\n return !scotlandSectionCollapsed;\r\n }\r\n if (regionName.toLowerCase() === 'northern ireland') {\r\n return !niSectionCollapsed;\r\n }\r\n if (regionName.toLowerCase() === 'wales') {\r\n return !walesSectionCollapsed;\r\n }\r\n if (regionName.toLowerCase() === 'little dobbies') {\r\n return !ldSectionCollapsed;\r\n }\r\n return false;\r\n };\r\n\r\n const showNoResults = () => {\r\n for (const sbyr of storesByRegions) {\r\n if (sbyr.stores.length && sbyr.stores[0].length) {\r\n return false;\r\n }\r\n }\r\n if (props.storesByRegions && props.storesByRegions.length) {\r\n for (const sbyr of props.storesByRegions) {\r\n if (sbyr.stores.length && sbyr.stores[0].length) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n\r\n const isANoStoreAlphabet = (alphabet: string) => {\r\n return noStoreAlphabetsState.includes(alphabet);\r\n };\r\n\r\n const updateRegions = () => {\r\n const allStoresByRegions: IDobbiesStoresByRegions[] = [];\r\n const configRegions = props.config.storesByRegionsData || [];\r\n const nostoresAlphabets: string[] = [];\r\n if (configRegions && configRegions.length) {\r\n for (const cr of configRegions) {\r\n if (cr.regionName && cr.storesInfo) {\r\n const stores = createStoresDataArray(cr.regionName, cr.storesInfo);\r\n allStoresByRegions.push({ regionName: cr.regionName, stores: stores });\r\n }\r\n }\r\n }\r\n for (const alpha of alphabetsList) {\r\n let hasStores = false;\r\n for (const asbr of allStoresByRegions) {\r\n if (hasStores) {\r\n break;\r\n }\r\n for (const st of asbr.stores) {\r\n if (hasStores) {\r\n break;\r\n }\r\n for (const stCol of st) {\r\n if (stCol.name?.toLowerCase().startsWith(alpha.toLowerCase())) {\r\n hasStores = true;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n if (!hasStores) {\r\n nostoresAlphabets.push(alpha);\r\n }\r\n }\r\n\r\n setStoresByRegions(allStoresByRegions);\r\n setNoStoreAlphabets(nostoresAlphabets);\r\n };\r\n\r\n const updateSelectedAlphabetView = () => {\r\n const allStoresByRegions: IDobbiesStoresByRegions[] = [];\r\n const configRegions = props.config.storesByRegionsData || [];\r\n if (configRegions && configRegions.length) {\r\n for (const cr of configRegions) {\r\n if (cr.regionName && cr.storesInfo) {\r\n const stores = createStoresDataArray(\r\n cr.regionName,\r\n cr.storesInfo.filter(si => si.storeName?.startsWith(selectedAlphabet))\r\n );\r\n allStoresByRegions.push({ regionName: cr.regionName, stores: stores });\r\n }\r\n }\r\n }\r\n\r\n setStoresByRegions(allStoresByRegions);\r\n };\r\n\r\n React.useEffect(() => {\r\n if (selectedAlphabet) {\r\n updateSelectedAlphabetView();\r\n } else if (selectedAlphabet === '') {\r\n updateRegions();\r\n }\r\n }, [selectedAlphabet]);\r\n\r\n React.useEffect(() => {\r\n updateRegions();\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n console.log('Stores By Regions Updated', storesByRegions);\r\n }, [storesByRegions]);\r\n\r\n const getJSXElementOfStores = (stores: IDobbiesNewStore[][]): JSX.Element => {\r\n if (stores && stores.length) {\r\n const columns = stores[0].length;\r\n const rows = stores.length;\r\n const allColumns: IDobbiesNewStore[][] = [];\r\n for (let i = 0; i < columns; i++) {\r\n allColumns.push([]);\r\n for (let j = 0; j < rows; j++) {\r\n if (stores[j][i]) {\r\n allColumns[i][j] = stores[j][i];\r\n }\r\n }\r\n }\r\n return (\r\n <>\r\n {allColumns.map((col, index) => {\r\n return (\r\n
    \r\n {col.map((elem, index) => {\r\n return (\r\n
  • \r\n {/* {elem.name} */}\r\n {\r\n window.location.href = elem.pageUrl || '';\r\n }}\r\n >\r\n {elem.name}\r\n \r\n
  • \r\n );\r\n })}\r\n
\r\n );\r\n })}\r\n \r\n );\r\n }\r\n\r\n return <>;\r\n };\r\n\r\n const cachedStores = storesByRegions.length > 1 ? storesByRegions : props.storesByRegions;\r\n console.log('Cached Stores', cachedStores, props.storesByRegions);\r\n return (\r\n
\r\n

STORE LOCATOR

\r\n
\r\n

Select the area’s first letter to find your nearest store

\r\n
    \r\n {alphabetsList.map((alphabet, index) => {\r\n return (\r\n {\r\n setSelectedAlphabet(alphabet);\r\n const selectedAlphabets = document.getElementsByClassName('store-selected') as HTMLCollection;\r\n if (selectedAlphabets && selectedAlphabets.length) {\r\n for (let iter = 0; iter < selectedAlphabets.length; iter++) {\r\n selectedAlphabets[iter].classList.remove('store-selected');\r\n }\r\n }\r\n const brandSelected = document.getElementById(`store-select-${alphabet}`);\r\n brandSelected?.classList.add('store-selected');\r\n }}\r\n >\r\n {alphabet}\r\n \r\n );\r\n })}\r\n
\r\n ) => {\r\n setSelectedAlphabet('');\r\n const allAlphabets = document.querySelectorAll(`.store-alphabit`);\r\n if (allAlphabets && allAlphabets.length) {\r\n for (let iter = 0; iter < allAlphabets.length; iter++) {\r\n allAlphabets[iter].classList.remove('store-selected');\r\n }\r\n }\r\n }}\r\n >\r\n See all stores\r\n \r\n
\r\n
\r\n {cachedStores?.length ? (\r\n cachedStores.map(storeByRegion => {\r\n return (\r\n <>\r\n {storeByRegion.stores[0].length ? (\r\n
\r\n {\r\n collapseUnCollapseRegion(storeByRegion.regionName);\r\n }}\r\n >\r\n {storeByRegion.regionName}{' '}\r\n

\r\n {shouldShowStoresForRegion(storeByRegion.regionName) ? (\r\n \r\n <>{getJSXElementOfStores(storeByRegion.stores)}\r\n
\r\n ) : (\r\n <>\r\n )}\r\n
\r\n ) : (\r\n <>\r\n )}\r\n \r\n );\r\n })\r\n ) : (\r\n <>\r\n )}\r\n {showNoResults() ?

No store found

: <>}\r\n
\r\n \r\n );\r\n};\r\n","import { IDobbiesNewStore } from '../dobbies-new-store-locator';\r\nimport { IStoresInfoData } from '../dobbies-new-store-locator.props.autogenerated';\r\nimport MsDyn365 from '@msdyn365-commerce/core';\r\n\r\nconst _getScreenSize = () => {\r\n if (MsDyn365.isBrowser && window) {\r\n if (window.innerWidth >= 1700) {\r\n return 4;\r\n } else if (window.innerWidth >= 1210 && window.innerWidth < 1700) {\r\n return 3;\r\n } else if (window.innerWidth >= 700 && window.innerWidth < 1210) {\r\n return 2;\r\n } else if (window.innerWidth < 700) {\r\n return 1;\r\n }\r\n }\r\n // return -1;\r\n return 4;\r\n};\r\nexport const createStoresDataArray = (regionName: string, storesInfo: IStoresInfoData[]): IDobbiesNewStore[][] => {\r\n const screenSize = _getScreenSize();\r\n const dobbiesStores: IDobbiesNewStore[][] = [];\r\n if (regionName.toLowerCase() === 'england') {\r\n if (screenSize === 4 || screenSize === 3) {\r\n const num_of_rows = 14;\r\n const num_of_columns = 4;\r\n let curr_row_filling = 0;\r\n let curr_col_filling = 0;\r\n const configStores = storesInfo || [];\r\n for (let i = 0; i < num_of_rows; i++) {\r\n dobbiesStores.push([]);\r\n }\r\n for (const cs of configStores) {\r\n if (curr_row_filling < num_of_rows && curr_col_filling < num_of_columns) {\r\n dobbiesStores[curr_row_filling][curr_col_filling] = { name: cs.storeName, pageUrl: cs.storePageUrl };\r\n curr_row_filling = curr_row_filling + 1;\r\n } else if (curr_row_filling >= num_of_rows && curr_col_filling < num_of_columns) {\r\n curr_row_filling = 0;\r\n curr_col_filling = curr_col_filling + 1;\r\n dobbiesStores[curr_row_filling][curr_col_filling] = { name: cs.storeName, pageUrl: cs.storePageUrl };\r\n curr_row_filling = curr_row_filling + 1;\r\n }\r\n }\r\n } else {\r\n const num_of_rows = 28;\r\n const num_of_columns = 2;\r\n let curr_row_filling = 0;\r\n let curr_col_filling = 0;\r\n const configStores = storesInfo || [];\r\n for (let i = 0; i < num_of_rows; i++) {\r\n dobbiesStores.push([]);\r\n }\r\n for (const cs of configStores) {\r\n if (curr_row_filling < num_of_rows && curr_col_filling < num_of_columns) {\r\n dobbiesStores[curr_row_filling][curr_col_filling] = { name: cs.storeName, pageUrl: cs.storePageUrl };\r\n curr_row_filling = curr_row_filling + 1;\r\n } else if (curr_row_filling >= num_of_rows && curr_col_filling < num_of_columns) {\r\n curr_row_filling = 0;\r\n curr_col_filling = curr_col_filling + 1;\r\n dobbiesStores[curr_row_filling][curr_col_filling] = { name: cs.storeName, pageUrl: cs.storePageUrl };\r\n curr_row_filling = curr_row_filling + 1;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (\r\n regionName.toLowerCase() === 'scotland' ||\r\n regionName.toLowerCase() === 'northern ireland' ||\r\n regionName.toLowerCase() === 'wales' ||\r\n regionName.toLowerCase() === 'little dobbies'\r\n ) {\r\n if (screenSize === 4 || screenSize === 3) {\r\n const num_of_rows = 3;\r\n const num_of_columns = 4;\r\n let curr_row_filling = 0;\r\n let curr_col_filling = 0;\r\n const configStores = storesInfo || [];\r\n for (let i = 0; i < num_of_rows; i++) {\r\n dobbiesStores.push([]);\r\n }\r\n for (const cs of configStores) {\r\n if (curr_row_filling < num_of_rows && curr_col_filling < num_of_columns) {\r\n dobbiesStores[curr_row_filling][curr_col_filling] = { name: cs.storeName, pageUrl: cs.storePageUrl };\r\n curr_row_filling = curr_row_filling + 1;\r\n } else if (curr_row_filling >= num_of_rows && curr_col_filling < num_of_columns) {\r\n curr_row_filling = 0;\r\n curr_col_filling = curr_col_filling + 1;\r\n dobbiesStores[curr_row_filling][curr_col_filling] = { name: cs.storeName, pageUrl: cs.storePageUrl };\r\n curr_row_filling = curr_row_filling + 1;\r\n }\r\n }\r\n } else {\r\n const num_of_rows = 6;\r\n const num_of_columns = 2;\r\n let curr_row_filling = 0;\r\n let curr_col_filling = 0;\r\n const configStores = storesInfo || [];\r\n for (let i = 0; i < num_of_rows; i++) {\r\n dobbiesStores.push([]);\r\n }\r\n for (const cs of configStores) {\r\n if (curr_row_filling < num_of_rows && curr_col_filling < num_of_columns) {\r\n dobbiesStores[curr_row_filling][curr_col_filling] = { name: cs.storeName, pageUrl: cs.storePageUrl };\r\n curr_row_filling = curr_row_filling + 1;\r\n } else if (curr_row_filling >= num_of_rows && curr_col_filling < num_of_columns) {\r\n curr_row_filling = 0;\r\n curr_col_filling = curr_col_filling + 1;\r\n dobbiesStores[curr_row_filling][curr_col_filling] = { name: cs.storeName, pageUrl: cs.storePageUrl };\r\n curr_row_filling = curr_row_filling + 1;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return dobbiesStores;\r\n};\r\n","const binding = { modules: {}, dataActions: {} };\n\n (binding.modules['dobbies-new-store-locator'] = {\n c: () => require('partner/modules/dobbies-new-store-locator/dobbies-new-store-locator.tsx'),\n $type: 'contentModule',\n da: [],\n \n iNM: false,\n ns: '__local__',\n n: 'dobbies-new-store-locator',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/dobbies-new-store-locator'\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['__local__|__local__|modules|dobbies-new-store-locator|dobbies-new-store-locator'] = {\n c: () => require('partner/modules/dobbies-new-store-locator/dobbies-new-store-locator.view.tsx'),\n cn: '__local__-__local__-dobbies-new-store-locator'\n };\nwindow.__bindings__ = window.__bindings__ || {};\nwindow.__bindings__.viewDictionary = {\n ...window.__bindings__.viewDictionary || {},\n ...viewDictionary\n };","module.exports = React;","module.exports = ReactDOM;"],"names":["DobbiesNewStoreLocator","React","constructor","props","super","alphabetsList","updateRegions","allStoresByRegions","configRegions","this","config","storesByRegionsData","nostoresAlphabets","length","cr","regionName","storesInfo","stores","createStoresDataArray","push","alpha","hasStores","asbr","st","stCol","_stCol$name","name","toLowerCase","startsWith","setState","storesByRegions","noStoreAlphabetsState","calledOnce","state","render","newStoreLocatorProps","_objectSpread","renderView","selectedAlphabet","setSelectedAlphabet","setStoresByRegions","setNoStoreAlphabets","englandSectionCollapsed","setEnglandSectionCollapsed","scotlandSectionCollapsed","setScotlandSectionCollapsed","niSectionCollapsed","setNISectionCollapsed","walesSectionCollapsed","setWalesSectionCollapsed","ldSectionCollapsed","setLDSectionCollapsed","shouldShowStoresForRegion","isANoStoreAlphabet","alphabet","includes","updateSelectedAlphabetView","filter","si","_si$storeName","storeName","console","log","cachedStores","className","map","index","id","key","onClick","selectedAlphabets","document","getElementsByClassName","iter","classList","remove","brandSelected","getElementById","add","href","e","allAlphabets","querySelectorAll","storeByRegion","columns","rows","allColumns","i","j","col","elem","window","location","pageUrl","getJSXElementOfStores","showNoResults","sbyr","screenSize","_getScreenSize","MsDyn365","isBrowser","innerWidth","dobbiesStores","num_of_rows","num_of_columns","curr_row_filling","curr_col_filling","configStores","cs","storePageUrl","binding","modules","dataActions","c","require","$type","da","iNM","ns","n","p","pdp","md","__bindings__","viewDictionary","cn","module","exports","ReactDOM"],"sourceRoot":""}