{"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":""}