{"version":3,"sources":["webpack:///./cartridges/app_designholding/cartridge/client/default/js/components/pagination/pagination.js","webpack:///./cartridges/app_designholding/cartridge/client/default/js/components/pagination/index.js"],"names":["JS_HOOK_PAGINATION_BUTTON","Pagination","constructor","element","paginationButtons","querySelectorAll","bindEvents","getPageData","event","preventDefault","button","currentTarget","url","href","refinementsUpdate","updateHistory","Events","$trigger","data","state","scrollTop","forEach","addEventListener","window","document","documentElement","location","reload"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAEA,IAAMA,yBAAyB,GAAG,6BAAlC;;AAEA,MAAMC,qBAAN,CAAiB;AACfC,aAAW,CAACC,OAAD,EAAU;AACnB,SAAKA,OAAL,GAAeA,OAAf;AACA,SAAKC,iBAAL,GAAyB,CAAC,GAAG,KAAKD,OAAL,CAAaE,gBAAb,CAA8BL,yBAA9B,CAAJ,CAAzB;AAEA,SAAKM,UAAL;AACD;AAED;AACF;AACA;AACA;;;AACoB,SAAXC,WAAW,CAACC,KAAD,EAAQ;AACxBA,SAAK,CAACC,cAAN;AAEA,QAAMC,MAAM,GAAGF,KAAK,CAACG,aAArB;AAEA,QAAMC,GAAG,GAAGF,MAAM,CAACG,IAAnB;AAEA,QAAI,CAACD,GAAL,EAAU;AAEVX,yBAAU,CAACa,iBAAX,CAA6BF,GAA7B;AACAX,yBAAU,CAACc,aAAX,CAAyBH,GAAzB;AACD;AAGD;AACF;AACA;AACA;;;AACsB,SAAbG,aAAa,CAACH,GAAD,EAAM;AACxBI,qBAAM,CAACC,QAAP,CAAgB,eAAhB,EAAiC;AAC/BC,UAAI,EAAE;AAAEN,WAAF;AAAOO,aAAK,EAAE;AAAEP;AAAF;AAAd;AADyB,KAAjC;AAGD;AAGD;AACF;AACA;AACA;;;AAC0B,SAAjBE,iBAAiB,CAACF,GAAD,EAAM;AAC5BI,qBAAM,CAACC,QAAP,CAAgB,6BAAhB,EAA+C;AAC7CC,UAAI,EAAE;AACJN,WADI;AAEJO,aAAK,EAAE;AACLP,aADK;AAELQ,mBAAS,EAAE;AAFN;AAFH;AADuC,KAA/C;AASD;;AAEDd,YAAU,GAAG;AACX,QAAI,KAAKF,iBAAT,EAA4B;AAC1B,WAAKA,iBAAL,CAAuBiB,OAAvB,CAAgCX,MAAD,IAC7BA,MAAM,CAACY,gBAAP,CAAwB,OAAxB,EAAkCd,KAAD,IAAWP,qBAAU,CAACM,WAAX,CAAuBC,KAAvB,CAA5C,CADF;AAGD;;AAEDe,UAAM,CAACD,gBAAP,CAAwB,UAAxB,EAAoC,MAAM;AACxCE,cAAQ,CAACC,eAAT,CAAyBL,SAAzB,GAAqC,CAArC;AACAG,YAAM,CAACG,QAAP,CAAgBC,MAAhB;AACD,KAHD;AAID;;AAhEc;;AAmEF1B,oEAAf,E;;ACvEA;AAEeA,qGAAf,E","file":"js/Pagination.js","sourcesContent":["import Events from '@utilities/events';\n\nconst JS_HOOK_PAGINATION_BUTTON = '[js-hook-pagination-button]';\n\nclass Pagination {\n  constructor(element) {\n    this.element = element;\n    this.paginationButtons = [...this.element.querySelectorAll(JS_HOOK_PAGINATION_BUTTON)];\n\n    this.bindEvents();\n  }\n\n  /**\n   * Getting new grid html through Ajax call\n   * @param event\n   */\n  static getPageData(event) {\n    event.preventDefault();\n\n    const button = event.currentTarget;\n\n    const url = button.href;\n\n    if (!url) return;\n\n    Pagination.refinementsUpdate(url);\n    Pagination.updateHistory(url);\n  }\n\n\n  /**\n   * Replacing current history to the current visible grid\n   * @param {url} url\n   */\n  static updateHistory(url) {\n    Events.$trigger('history::push', {\n      data: { url, state: { url } },\n    });\n  }\n\n\n  /**\n   * Replacing current history to the current visible grid\n   * @param {url} url\n   */\n  static refinementsUpdate(url) {\n    Events.$trigger('history::refinements-update', {\n      data: {\n        url,\n        state: {\n          url,\n          scrollTop: true,\n        }\n      },\n    })\n  }\n\n  bindEvents() {\n    if (this.paginationButtons) {\n      this.paginationButtons.forEach((button) =>\n        button.addEventListener('click', (event) => Pagination.getPageData(event)),\n      )\n    }\n\n    window.addEventListener('popstate', () => {\n      document.documentElement.scrollTop = 0;\n      window.location.reload();\n    });\n  }\n}\n\nexport default Pagination;\n","import Pagination from './pagination';\n\nexport default Pagination;\n"],"sourceRoot":""}