{"version":3,"sources":["webpack:///./cartridges/app_designholding/cartridge/client/default/js/components/store-locator/store-locator-results.js","webpack:///./cartridges/app_designholding/cartridge/client/default/js/utilities/dom-utils/create-element-from-string/create-element-from-string.js","webpack:///./cartridges/app_designholding/cartridge/client/default/js/utilities/dom-utils/create-element-from-string/index.js","webpack:///./cartridges/app_designholding/cartridge/client/default/js/utilities/store/store/actions.js","webpack:///./cartridges/app_designholding/cartridge/client/default/js/utilities/store/store/mutations.js","webpack:///./cartridges/app_designholding/cartridge/client/default/js/utilities/store/store/state.js","webpack:///./cartridges/app_designholding/cartridge/client/default/js/utilities/store/index.js","webpack:///./cartridges/app_designholding/cartridge/client/default/js/utilities/store/lib/component.js","webpack:///./cartridges/app_designholding/cartridge/client/default/js/utilities/store/store/store.js"],"names":["JS_HOOK_ACCORDION","JS_HOOK_RESULTS_COUNT","JS_HOOK_SELECT_STORE","JS_HOOK_HOOK_STORE_ID_INPUT","JS_HOOK_RESULTS_TITLE","JS_HOOK_PAGE_FILTERS","NO_RESULTS_CLASS","RESULTS_COUNT_HIDDEN","HIDDEN_CLASS","StoreLocatorResults","Component","constructor","element","store","noResultsMessage","dataset","resultsTitle","document","querySelector","pageFilters","setUI","bindEvents","ui","resultsCount","storeIdInput","storeSelectButtons","querySelectorAll","appendResults","html","innerHTML","appendChild","moduleInit","async","Events","$trigger","getResults","results","resultsHtml","createElement","setAttribute","length","forEach","item","el","createElementFromString","selectStoreButton","addEventListener","handleStoreSelectButtonClick","classList","remove","add","render","resultsList","isReady","state","mapsApiReady","stateChanged","prevState","stores","openAccordion","id","scrollTimeout","clearTimeout","targetElement","getElementById","setTimeout","data","target","scrollElement","offset","getBoundingClientRect","top","height","selectedStore","$on","_","str","div","res","children","setSearchParam","context","payload","commit","setStores","setApi","setLocation","setSyncedInputValues","searchParam","location","syncedInputValues","Store","actions","mutations","initialState","props","watch","watchCollection","subscribe","prop","callback","newState","previousPropState","newPropState","Array","isArray","undefined","params","status","callbacks","self","Proxy","set","key","value","processCallbacks","console","warn","String","dispatch","actionKey","error","dispatchWithPromise","Promise","resolve","reject","Error","_state","_prevState","filter","cb","then","catch","mutationKey","Object","assign","push"],"mappings":"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","file":"js/StoreLocatorResults.js","sourcesContent":["import Events from '@utilities/events'\nimport createElementFromString from '@utilities/dom-utils/create-element-from-string'\nimport Component from '@utilities/store/lib/component'\nimport store from '@utilities/store'\nimport moduleInit from '@utilities/module-init'\nimport '@utilities/scroll-to'\n\nconst JS_HOOK_ACCORDION = 'js-hook-accordion'\nconst JS_HOOK_RESULTS_COUNT = '[js-hook-store-locator-results-count]'\nconst JS_HOOK_SELECT_STORE = '[js-hook-select-store]'\nconst JS_HOOK_HOOK_STORE_ID_INPUT = '[js-hook-store-id-input]'\nconst JS_HOOK_RESULTS_TITLE ='[js-hook-results-title]'\nconst JS_HOOK_PAGE_FILTERS = '[js-hook-store-locator-page-filters]'\nconst NO_RESULTS_CLASS = 'store-locator__no-results'\nconst RESULTS_COUNT_HIDDEN = 'store-locator__result-title--hidden'\nconst HIDDEN_CLASS = 'u-hidden'\n\nclass StoreLocatorResults extends Component {\n constructor(element) {\n super({\n store,\n element,\n })\n\n this.noResultsMessage = this.element.dataset?.noResultsMessage || ''\n this.resultsTitle = document.querySelector(JS_HOOK_RESULTS_TITLE)\n this.pageFilters = document.querySelector(JS_HOOK_PAGE_FILTERS)\n\n this.setUI()\n\n // Events\n this.bindEvents()\n }\n\n setUI() {\n this.ui = {\n resultsCount: document.querySelector(JS_HOOK_RESULTS_COUNT),\n storeIdInput: document.querySelector(JS_HOOK_HOOK_STORE_ID_INPUT),\n storeSelectButtons: [...this.element.querySelectorAll(JS_HOOK_SELECT_STORE)],\n }\n }\n\n /**\n * Append the results html in the DOM\n * @param {String} html - html of the results\n */\n appendResults(html) {\n this.element.innerHTML = ''\n this.element.appendChild(html)\n\n moduleInit.async('[js-hook-accordion]', () =>\n import(/* webpackChunkName: \"js/Accordion\" */ '@components/accordion'),\n )\n Events.$trigger('events::dom-reinit')\n\n this.setUI()\n this.bindEvents()\n }\n\n /**\n * Get the results DOM element\n * @param {Array} results - the array of stores results\n * @returns {String} html of the results\n */\n getResults(results) {\n const resultsHtml = document.createElement('div')\n resultsHtml.setAttribute(JS_HOOK_ACCORDION, null)\n\n if (results.length > 0) {\n results.forEach((item) => {\n if (item.html) {\n const el = createElementFromString(item.html)\n resultsHtml.appendChild(el)\n\n const selectStoreButton = el.querySelector(JS_HOOK_SELECT_STORE)\n\n if (selectStoreButton) {\n selectStoreButton.addEventListener('click', () =>\n StoreLocatorResults.handleStoreSelectButtonClick(item),\n )\n }\n }\n })\n if(this.pageFilters) {\n this.pageFilters.classList.remove(HIDDEN_CLASS)\n }\n } else {\n resultsHtml.appendChild(\n createElementFromString(`<p class=\"${NO_RESULTS_CLASS}\">${this.noResultsMessage}</p>`),\n )\n if(this.pageFilters) {\n this.pageFilters.classList.add(HIDDEN_CLASS)\n }\n }\n\n if (this.resultsTitle) {\n this.resultsTitle.classList.remove(RESULTS_COUNT_HIDDEN)\n this.resultsTitle.innerHTML = results.length\n }\n\n return resultsHtml\n }\n\n /**\n * render results on left side\n * @param {Array} results - the array of stores results\n */\n render(results) {\n const resultsList = this.getResults(results)\n\n this.appendResults(resultsList)\n }\n\n static isReady(state) {\n return state && state.mapsApiReady\n }\n\n stateChanged() {\n const { state, prevState } = store\n if (!StoreLocatorResults.isReady(state)) return\n // Render changes to results list\n const { stores } = state\n if (prevState.stores) {\n this.render(stores)\n }\n }\n\n openAccordion(id) {\n if (this.scrollTimeout) clearTimeout(this.scrollTimeout)\n Events.$trigger(`accordion::close`)\n Events.$trigger(`accordion[${id}]::open`)\n\n const targetElement = document.getElementById(id)\n\n this.scrollTimeout = setTimeout(() => {\n Events.$trigger('scroll-to::scroll', {\n data: {\n target: targetElement,\n scrollElement: this.element, // Optional, only needed when scrolling inside an element\n offset:\n this.element.getBoundingClientRect().top +\n targetElement.getBoundingClientRect().height / 2,\n },\n })\n }, 400)\n }\n\n static handleStoreSelectButtonClick(selectedStore) {\n Events.$trigger('shipping-form::setStore', { data: { store: selectedStore } })\n Events.$trigger('modal::close')\n }\n\n /**\n * Bind all general events\n */\n bindEvents() {\n Events.$on('store-locator::setActive', (_, { id }) => this.openAccordion(id))\n Events.$on('store-locator::setStore', (_, { selectedStore }) =>\n StoreLocatorResults.handleStoreSelectButtonClick(selectedStore),\n )\n }\n}\n\nexport default StoreLocatorResults\n","\n/**\n * Creates an element from the given string.\n *\n * @param str the markup text\n *\n * @returns the created element\n */\nconst createElementFromString = (str) => {\n const div = document.createElement('div');\n let res;\n div.innerHTML = str;\n if (div.children.length) {\n res = div.children[0]; // eslint-disable-line prefer-destructuring\n }\n return res;\n};\n\nexport default createElementFromString;\n","\nimport createElementFromString from './create-element-from-string';\n\nexport default createElementFromString;\n","export default {\n setSearchParam(context, payload) {\n context.commit('setSearchParam', payload);\n },\n setStores(context, payload) {\n context.commit('setStores', payload);\n },\n setApi(context, payload) {\n context.commit('setApi', payload);\n },\n setLocation(context, payload) {\n context.commit('setLocation', payload);\n },\n setSyncedInputValues(context, payload) {\n context.commit('setSyncedInputValues', payload);\n }\n};\n\n","export default {\n setSearchParam(state, payload) {\n state.searchParam = payload.searchParam;\n return state;\n },\n setStores(state, payload) {\n state.stores = payload.stores;\n return state;\n },\n setApi(state, payload) {\n state.mapsApiReady = payload.mapsApiReady;\n return state;\n },\n setLocation(state, payload) {\n state.location = payload.location;\n return state;\n },\n setSyncedInputValues(state, payload) {\n state.syncedInputValues = payload.syncedInputValues;\n return state;\n }\n};\n","/**\n * A state object\n * @typedef {Object<string, any>} State\n * @property {array} stores Array of items\n */\n/**\n * @type {State} state\n * @returns {State} state\n */\nexport default {\n searchParam: '',\n mapsApiReady: false,\n stores: [],\n location: {},\n syncedInputValues: []\n};\n","import actions from './store/actions'\nimport mutations from './store/mutations'\nimport initialState from './store/state'\nimport Store from './store/store'\n\nexport default new Store({\n actions,\n mutations,\n initialState,\n})\n","// @ts-ignore\nimport idx from 'idx'\n\nimport Store from '../store/store'\n\nclass Component {\n constructor(props = {}) {\n this.watch = Component.watch || function() {}\n this.watchCollection = Component.watchCollection || function() {}\n this.stateChanged = this.stateChanged || function() {}\n if (props.store instanceof Store) {\n // This fires every time the state updates\n props.store.subscribe((state, prevState) => {\n this.stateChanged(state, prevState)\n })\n }\n\n if (props.element) {\n this.element = props.element\n }\n }\n\n static watchCollection(store, prop, callback) {\n const { state: newState, prevState } = store\n const previousPropState = idx(prevState, _ => _[prop])\n const newPropState = idx(newState, _ => _[prop])\n if (Array.isArray(previousPropState)) {\n if (\n previousPropState &&\n previousPropState.length &&\n newPropState.length !== previousPropState.length\n ) {\n // Make sure the callback is a function\n if (typeof callback === 'function') {\n return callback()\n }\n }\n }\n return undefined\n }\n\n static watch(store, prop, callback) {\n const { state: newState, prevState } = store\n const previousPropState = idx(prevState, _ => _[prop])\n const newPropState = idx(newState, _ => _[prop])\n if (\n typeof newPropState === 'boolean' ||\n typeof newPropState === 'string' ||\n typeof newPropState === 'number'\n ) {\n if (previousPropState && newPropState !== previousPropState) {\n // Make sure the callback is a function\n if (typeof callback === 'function') {\n return callback()\n }\n }\n }\n return undefined\n }\n}\nexport default Component\n","class Store {\n constructor(params) {\n // Add some default objects to hold our actions, mutations and state\n // Look in the passed params object for actions and mutations\n // that might have been passed in\n this.actions = params.actions || {}\n this.mutations = params.mutations || {}\n this.state = {}\n this.prevState = {}\n\n // A status enum to set during actions and mutations\n this.status = 'resting'\n\n // We store callbacks for when the state changes in here\n this.callbacks = []\n\n // Set our state to be a Proxy. We are setting the default state by\n // checking the params and defaulting to an empty object if no default\n // state is passed in\n const self = this\n self.state = new Proxy(params.initialState || {}, {\n set(state, key, value) {\n // Set the value as we would normally\n state[key] = value\n\n // eslint-disable-next-line\n // console.log(`stateChange: ${String(key)}: ${value}`)\n\n // Fire off our callback processor because if there's listeners,\n // they're going to want to know that something has changed\n self.processCallbacks(self.state, self.prevState)\n\n if (self.status !== 'mutation') {\n // eslint-disable-next-line\n console.warn(`You should use a mutation to set ${String(key)}`)\n }\n // Reset the status ready for the next operation\n self.status = 'resting'\n\n return true\n },\n })\n }\n\n /**\n * A dispatcher for actions that looks in the actions\n * collection and runs the action if it can find it\n *\n * @param {string} actionKey\n * @param {object} payload\n * @returns {boolean}\n * @memberof Store\n */\n dispatch(actionKey, payload) {\n // Run a quick check to see if the action actually exists\n // before we try to run it\n if (typeof this.actions[actionKey] !== 'function') {\n console.error(`Action \"${actionKey}\" doesn't exist.`)\n return false\n }\n\n // Let anything that's watching the status know that we're dispatching an action\n this.status = 'action'\n\n // Actually call the action and pass it the Store context and whatever payload was passed\n return this.actions[actionKey](this, payload)\n }\n\n /**\n * A dispatcher for actions that looks in the actions\n * collection and runs the action if it can find it\n * and returns a Promise that resolves when the action is completed\n *\n * @param {string} actionKey\n * @param {object} payload\n * @returns {Promise}\n * @memberof Store\n */\n dispatchWithPromise(actionKey, payload) {\n return new Promise((resolve, reject) => {\n // Run a quick check to see if the action actually exists\n // before we try to run it\n if (typeof this.actions[actionKey] !== 'function') {\n console.error(`Action \"${actionKey}\" doesn't exist.`);\n reject(new Error(`Action \"${actionKey}\" doesn't exist.`));\n } else {\n // Add a callback to the store\n // eslint-disable-next-line no-unused-vars\n const callback = (_state, _prevState) => {\n if (this.status === 'mutation') {\n // Action has completed, remove the callback and resolve the Promise\n this.callbacks = this.callbacks.filter(cb => cb !== callback);\n resolve();\n }\n };\n \n this.subscribe(callback);\n this.dispatch(actionKey, payload)\n .then(() => {})\n .catch((error) => {\n this.callbacks = this.callbacks.filter(cb => cb !== callback);\n reject(error);\n });\n }\n });\n }\n\n \n\n /**\n * Look for a mutation and modify the state object\n * if that mutation exists by calling it\n *\n * @param {string} mutationKey\n * @param {object} payload\n * @returns {boolean}\n * @memberof Store\n */\n commit(mutationKey, payload) {\n // Run a quick check to see if this mutation actually exists\n // before trying to run it\n if (typeof this.mutations[mutationKey] !== 'function') {\n console.error(`Mutation \"${mutationKey}\" doesn't exist`)\n return false\n }\n\n // Let anything that's watching the status know that we're mutating state\n this.status = 'mutation'\n\n this.prevState = Object.assign({}, this.state)\n\n // Get a new version of the state by running the mutation and storing the result of it\n const newState = this.mutations[mutationKey](this.state, payload)\n\n // Update the old state with the new state returned from our mutation\n this.state = newState\n\n return true\n }\n\n /**\n * Fire off each callback that's run whenever the state changes\n * We pass in some data as the one and only parameter.\n * Returns a boolean depending if callbacks were found or not\n *\n * @param {object} state\n * @param {object} prevState\n * @returns {boolean}\n */\n processCallbacks(state, prevState) {\n if (!this.callbacks.length) {\n return false\n }\n\n // We've got callbacks, so loop each one and fire it off\n this.callbacks.forEach(callback => callback(state, prevState))\n\n return true\n }\n\n /**\n * Allow an outside entity to subscribe to state changes with a valid callback.\n * Returns boolean based on wether or not the callback was added to the collection\n *\n * @param {function} callback\n * @returns {boolean}\n */\n subscribe(callback) {\n if (typeof callback !== 'function') {\n console.error('You can only subscribe to Store changes with a valid function')\n return false\n }\n\n // A valid function, so it belongs in our collection\n this.callbacks.push(callback)\n\n return true\n }\n}\n\nexport default Store\n"],"sourceRoot":""}