{"version":3,"sources":["webpack:///./cartridges/app_designholding/cartridge/client/default/js/components/store-locator/store-locator-online-retailers.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_HOOK_STORE_ID_INPUT","JS_HOOK_RESULTS_TITLE","RESULTS_COUNT_HIDDEN","JS_ONLINE_RETAILERS_LIST","HIDDEN_CLASS","OnlineRetailers","Component","constructor","element","store","resultsTitle","document","querySelector","onlineRetailersList","setUI","ui","resultsCount","storeIdInput","appendResults","html","innerHTML","appendChild","moduleInit","async","Events","$trigger","getResults","results","resultsHtml","createElement","setAttribute","hasOnlineRetailer","length","forEach","item","isOnline","classList","remove","el","createElementFromString","add","render","resultsList","isReady","state","mapsApiReady","stateChanged","prevState","stores","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/OnlineRetailers.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_HOOK_STORE_ID_INPUT = '[js-hook-store-id-input]'\nconst JS_HOOK_RESULTS_TITLE ='[js-hook-results-title]'\nconst RESULTS_COUNT_HIDDEN = 'store-locator__result-title--hidden'\nconst JS_ONLINE_RETAILERS_LIST = '[js-hook-online-retailers-list]'\nconst HIDDEN_CLASS = 'u-hidden'\n\nclass OnlineRetailers extends Component {\n constructor(element) {\n super({\n store,\n element,\n })\n\n this.resultsTitle = document.querySelector(JS_HOOK_RESULTS_TITLE)\n this.onlineRetailersList = document.querySelector(JS_ONLINE_RETAILERS_LIST)\n\n this.setUI()\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 }\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 }\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 let hasOnlineRetailer = false;\n\n if (results.length > 0) {\n results.forEach((item) => {\n if (item.html && item.isOnline) {\n hasOnlineRetailer = true;\n this.onlineRetailersList.classList.remove(HIDDEN_CLASS)\n\n const el = createElementFromString(item.html)\n resultsHtml.appendChild(el)\n }\n })\n }\n\n if(!hasOnlineRetailer) {\n this.onlineRetailersList.classList.add(HIDDEN_CLASS)\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 right 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 (!OnlineRetailers.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\nexport default OnlineRetailers\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":""}