{"version":3,"sources":["webpack:///./assets/javascripts/modules/components/PaginationComponent.js","webpack:///./node_modules/query-string/index.js","webpack:///./node_modules/strict-uri-encode/index.js","webpack:///./node_modules/object-assign/index.js","webpack:///./node_modules/decode-uri-component/index.js","webpack:///./assets/javascripts/modules/utils/ObserverIntersection.js","webpack:///./assets/javascripts/modules/logics/InfiniteScrollLogic.js"],"names":["PaginationComponent","compEl","_classCallCheck","this","_this","_possibleConstructorReturn","__proto__","Object","getPrototypeOf","call","pagination","$component","querySelector","SELECTORS","paginationForm","paginationLink","querySelectorAll","infiniteScrollStartBtn","listingArticle","productsContainer","document","ajaxAction","filterComponent","FiltersComponent","trackingComponent","TrackingComponent","pageSalesPagination","pageSalesPaginationPage","Component","productCard","salesLinkActive","links","_this2","forEach","link","addEventListener","pageId","getAttribute","classList","contains","changePage","filterQuery","dom","arguments","length","undefined","updatedPager","updatedPaginationForm","innerHTML","paginationHandling","remove","add","updatedCards","pageSize","page","_this3","query","buildQuery","getPage","then","newPage","newURL","replace","replacePageInHistory","response","DOMParser","parseFromString","newProducts","product","appendChild","$emit","$customEvents","INFINITE_SCROLL_EVENTS","loaded","actions","loadMore","newButton","actualButton","dataset","infiniteScrollLastpage","_this4","paginationLinks","ctx","btn","e","preventDefault","stopPropagation","stopImmediatePropagation","CLASSES","renderContent","FILTERS_EVENTS","pageLoaded","updated","res","window","scrollTo","_this5","$","ready","checkPager","$on","_ref","event","payload","salesPaginationHandling","next","_ref2","infiniteAddPage","log","bindEvents","InfiniteScrollLogic","render","strictUriEncode","__webpack_require__","objectAssign","decodeComponent","encode","value","opts","strict","encodeURIComponent","extract","str","queryStart","indexOf","slice","parse","formatter","result","arrayFormat","key","accumulator","exec","concat","parserForArrayFormat","ret","create","trim","split","param","parts","shift","val","join","keys","sort","reduce","Boolean","Array","isArray","keysSorter","input","a","b","Number","map","exports","stringify","obj","index","encoderForArrayFormat","val2","push","filter","x","parseUrl","url","module","c","charCodeAt","toString","toUpperCase","getOwnPropertySymbols","hasOwnProperty","prototype","propIsEnumerable","propertyIsEnumerable","assign","test1","String","getOwnPropertyNames","test2","i","fromCharCode","n","test3","letter","err","shouldUseNative","target","source","from","symbols","to","TypeError","toObject","s","singleMatcher","RegExp","multiMatcher","decodeComponents","components","decodeURIComponent","left","right","decode","tokens","match","encodedURI","replaceMap","%FE%FF","%FF%FE","entries","customDecodeURIComponent","Observer","selector","margin","conf","cb","observablesSelector","observables","IntersectionObserver","console","debug","rootMargin","Math","floor","outerHeight","observer","root","threshold","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","Symbol","iterator","done","observable","observe","return","warn","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","InfiniteScrollLogic_classCallCheck","viewMoreBtn","main","nextPage","lastPage","searchObj","queryString","location","search","preload","parseInt","wasPreloaded","startPage","isBound","trigger","internalObserveScroll","scrollObserver","entry","intersectionRatio","parseFloat","unobserve","bindClickOnce","observeScroll","$one","_ref3","currentTarget"],"mappings":"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","file":"component-PaginationComponent.chunks.js","sourcesContent":["import Component from '../abstracts/Component';\nimport ajaxAction from '../utils/ajaxUtil';\nimport FiltersComponent from './FiltersComponent';\nimport InfiniteScrollLogic from '../logics/InfiniteScrollLogic';\nimport TrackingComponent from '../components/TrackingComponent';\nimport {replacePageInHistory} from '../utils/BrowserHistoryUtils';\n\nexport default class PaginationComponent extends Component {\n get SELECTORS() {\n return {\n paginationLink: '[data-page-link]',\n pagination: '[data-pagination]',\n paginationForm: '[data-pager-form]',\n infiniteScrollStartBtn: '[data-infinite-scroll]',\n productCard: '.w-card-product',\n productsContainer: '[data-products-container]',\n pageSalesPagination: '[data-sales-pager]',\n pageSalesPaginationPage: '[data-sales-pager] a'\n };\n }\n\n get CLASSES() {\n return {\n salesLinkActive: 'active_link'\n }\n }\n\n constructor(compEl) {\n super(compEl);\n this.compEl = compEl;\n this.pagination = this.$component.querySelector(this.SELECTORS.pagination);\n this.paginationForm = this.$component.querySelector(this.SELECTORS.paginationForm);\n this.paginationLink = this.$component.querySelectorAll(this.SELECTORS.paginationLink);\n this.infiniteScrollStartBtn = this.$component.querySelector(this.SELECTORS.infiniteScrollStartBtn);\n this.listingArticle = this.$component.querySelectorAll(this.SELECTORS.listingArticle);\n this.productsContainer = document.querySelector(this.SELECTORS.productsContainer);\n // ajax\n this.ajaxAction = new ajaxAction();\n this.filterComponent = new FiltersComponent(this.compEl);\n this.trackingComponent = new TrackingComponent();\n // sales\n this.pageSalesPagination = document.querySelector(this.SELECTORS.pageSalesPagination);\n this.pageSalesPaginationPage = document.querySelectorAll(this.SELECTORS.pageSalesPaginationPage);\n }\n\n // main function\n paginationHandling(links) {\n // links loop\n links.forEach(link => {\n // adding listener\n link.addEventListener('click', () => {\n // on click i search the desktop id\n let pageId = link.getAttribute('data-page-link');\n if(!link.classList.contains('disabled')) {\n this.changePage(pageId);\n }\n });\n });\n }\n\n // change page\n changePage(pageId) {\n // get page template\n let tpl = this.pagination.getAttribute('data-page-template');\n // if it is search page and filtered\n if(tpl === 't-search') {\n let fc = new FiltersComponent(this.compEl);\n fc.filterQuery(false, pageId);\n }\n }\n\n checkPager(dom = false) {\n // check\n if(this.pagination != null) {\n if(!dom) dom = document;\n // get the updated pager and the form\n let updatedPager = dom.querySelector(this.SELECTORS.pagination);\n let updatedPaginationForm = dom.querySelector(this.SELECTORS.paginationForm);\n // if there are pages, let's update in the dom\n if(updatedPaginationForm != null && updatedPaginationForm.querySelectorAll('li').length > 1) {\n // update the html pager\n this.pagination.innerHTML = updatedPager.innerHTML;\n // bind new pager to pagination handling function\n this.paginationHandling(document.querySelectorAll(this.SELECTORS.paginationLink));\n this.pagination.classList.remove('hidden');\n // update form\n if(typeof updatedPaginationForm != 'undefined' && updatedPaginationForm != null) {\n document.querySelector(this.SELECTORS.paginationForm).innerHTML = updatedPaginationForm.innerHTML;\n }\n } else {\n this.pagination.classList.add('hidden');\n }\n }\n // listing part\n if(dom && this.infiniteScrollStartBtn != null) {\n let updatedCards = document.querySelectorAll(this.SELECTORS.productCard);\n let pageSize = dom.querySelector('.js-filters-result').getAttribute('data-page-size');\n if(updatedCards.length < pageSize) {\n this.infiniteScrollStartBtn.classList.add('hidden');\n } else {\n this.infiniteScrollStartBtn.classList.remove('hidden');\n }\n }\n\n }\n\n // LISTING PART\n\n // adding page\n infiniteAddPage(page) {\n // build query with page\n let query = this.filterComponent.buildQuery(page);\n // call new page\n this.ajaxAction.getPage(query).then(newPage => {\n let newURL = query.replace('isRefineSearch=true', 'isRefineSearch=false');\n replacePageInHistory(newURL.replace(/\\s.*/, ''), {}, '', true);\n // parse response\n let response = new DOMParser ().parseFromString(newPage, 'text/html');\n // get prods\n let newProducts = response.querySelectorAll('[data-ajax-source=\"products\"] .w-card-product, .w-editorial-multiple-cards, .w-editorial-one-card');\n // if i find prod, i put inside the paaaage\n if(newProducts != null) {\n newProducts.forEach(product => {\n document.querySelector(this.SELECTORS.productsContainer).appendChild(product);\n });\n this.$emit(this.$customEvents.INFINITE_SCROLL_EVENTS.loaded, {newProducts: newProducts});\n this.trackingComponent.actions.loadMore(newProducts);\n }\n // button\n let newButton = response.querySelector(this.SELECTORS.infiniteScrollStartBtn);\n let actualButton = document.querySelector(this.SELECTORS.infiniteScrollStartBtn);\n if(newButton != null && actualButton != null) {\n actualButton.dataset.page = newButton.getAttribute('data-page');\n actualButton.dataset.infiniteScrollLastpage = newButton.getAttribute('data-infinite-scroll-lastpage');\n }\n });\n }\n\n // sales part\n salesPaginationHandling(refresh = false) {\n // check\n let paginationLinks = (refresh) ? document.querySelectorAll(this.SELECTORS.pageSalesPaginationPage) : this.pageSalesPaginationPage;\n if (paginationLinks == null) return false;\n // global\n let ctx = this;\n // intercept click\n paginationLinks.forEach(btn => {\n // adding listener\n btn.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n e.stopImmediatePropagation();\n // check if active, do nothing\n if (btn.classList.contains(ctx.CLASSES.salesLinkActive)) return false;\n // url to call\n let query = btn.getAttribute('href');\n // call new page\n this.ajaxAction.getPage(query).then(newPage => {\n // parse response\n let response = new DOMParser ().parseFromString(newPage, 'text/html');\n // render content\n this.ajaxAction.renderContent(newPage,'products');\n // emit events\n this.$emit(this.$customEvents.FILTERS_EVENTS.pageLoaded);\n this.$emit(this.$customEvents.FILTERS_EVENTS.updated, {\n response: response,\n res: newPage,\n query: query\n });\n // scroll to top\n window.scrollTo(0, 0);\n });\n\n });\n });\n }\n // MAIN EVENTS\n bindEvents() {\n // dom ready\n $(document).ready(() =>{\n // check pager\n this.checkPager();\n });\n\n // pager update\n this.$on(this.$customEvents.FILTERS_EVENTS.updated, ({event, payload}) => {\n // check pager\n this.checkPager(payload.response);\n // sales pagination replace html and reset\n if(this.pageSalesPagination != null) {\n let newPagination = payload.response.querySelector(this.SELECTORS.pageSalesPagination);\n if (newPagination != null) {\n this.pageSalesPagination.innerHTML = payload.response.querySelector(this.SELECTORS.pageSalesPagination).innerHTML;\n // refresh pagination\n this.salesPaginationHandling(true);\n } else {\n this.pageSalesPagination.innerHTML = '';\n }\n }\n });\n // view more button\n this.$on(this.$customEvents.INFINITE_SCROLL_EVENTS.next, ({payload}) => {\n this.infiniteAddPage(payload.page);\n });\n }\n\n // MAIN RENDER\n render() {\n this.log('Rendering...');\n // main events\n this.bindEvents();\n if(this.pagination != null) {\n this.paginationHandling(this.paginationLink);\n }\n // i must check pagination type\n if(this.pageSalesPagination != null) {\n // sales pagination\n this.salesPaginationHandling();\n } else {\n // infinite scroll on PLP\n this.InfiniteScrollLogic = new InfiniteScrollLogic(this);\n this.InfiniteScrollLogic.render();\n }\n }\n}\n","'use strict';\nvar strictUriEncode = require('strict-uri-encode');\nvar objectAssign = require('object-assign');\nvar decodeComponent = require('decode-uri-component');\n\nfunction encoderForArrayFormat(opts) {\n\tswitch (opts.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn function (key, value, index) {\n\t\t\t\treturn value === null ? [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'[',\n\t\t\t\t\tindex,\n\t\t\t\t\t']'\n\t\t\t\t].join('') : [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'[',\n\t\t\t\t\tencode(index, opts),\n\t\t\t\t\t']=',\n\t\t\t\t\tencode(value, opts)\n\t\t\t\t].join('');\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn function (key, value) {\n\t\t\t\treturn value === null ? encode(key, opts) : [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'[]=',\n\t\t\t\t\tencode(value, opts)\n\t\t\t\t].join('');\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn function (key, value) {\n\t\t\t\treturn value === null ? encode(key, opts) : [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'=',\n\t\t\t\t\tencode(value, opts)\n\t\t\t\t].join('');\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(opts) {\n\tvar result;\n\n\tswitch (opts.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn function (key, value, accumulator) {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn function (key, value, accumulator) {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t} else if (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn function (key, value, accumulator) {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction encode(value, opts) {\n\tif (opts.encode) {\n\t\treturn opts.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t} else if (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input)).sort(function (a, b) {\n\t\t\treturn Number(a) - Number(b);\n\t\t}).map(function (key) {\n\t\t\treturn input[key];\n\t\t});\n\t}\n\n\treturn input;\n}\n\nfunction extract(str) {\n\tvar queryStart = str.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\treturn str.slice(queryStart + 1);\n}\n\nfunction parse(str, opts) {\n\topts = objectAssign({arrayFormat: 'none'}, opts);\n\n\tvar formatter = parserForArrayFormat(opts);\n\n\t// Create an object with no prototype\n\t// https://github.com/sindresorhus/query-string/issues/47\n\tvar ret = Object.create(null);\n\n\tif (typeof str !== 'string') {\n\t\treturn ret;\n\t}\n\n\tstr = str.trim().replace(/^[?#&]/, '');\n\n\tif (!str) {\n\t\treturn ret;\n\t}\n\n\tstr.split('&').forEach(function (param) {\n\t\tvar parts = param.replace(/\\+/g, ' ').split('=');\n\t\t// Firefox (pre 40) decodes `%3D` to `=`\n\t\t// https://github.com/sindresorhus/query-string/pull/37\n\t\tvar key = parts.shift();\n\t\tvar val = parts.length > 0 ? parts.join('=') : undefined;\n\n\t\t// missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tval = val === undefined ? null : decodeComponent(val);\n\n\t\tformatter(decodeComponent(key), val, ret);\n\t});\n\n\treturn Object.keys(ret).sort().reduce(function (result, key) {\n\t\tvar val = ret[key];\n\t\tif (Boolean(val) && typeof val === 'object' && !Array.isArray(val)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(val);\n\t\t} else {\n\t\t\tresult[key] = val;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = function (obj, opts) {\n\tvar defaults = {\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none'\n\t};\n\n\topts = objectAssign(defaults, opts);\n\n\tif (opts.sort === false) {\n\t\topts.sort = function () {};\n\t}\n\n\tvar formatter = encoderForArrayFormat(opts);\n\n\treturn obj ? Object.keys(obj).sort(opts.sort).map(function (key) {\n\t\tvar val = obj[key];\n\n\t\tif (val === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (val === null) {\n\t\t\treturn encode(key, opts);\n\t\t}\n\n\t\tif (Array.isArray(val)) {\n\t\t\tvar result = [];\n\n\t\t\tval.slice().forEach(function (val2) {\n\t\t\t\tif (val2 === undefined) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresult.push(formatter(key, val2, result.length));\n\t\t\t});\n\n\t\t\treturn result.join('&');\n\t\t}\n\n\t\treturn encode(key, opts) + '=' + encode(val, opts);\n\t}).filter(function (x) {\n\t\treturn x.length > 0;\n\t}).join('&') : '';\n};\n\nexports.parseUrl = function (str, opts) {\n\treturn {\n\t\turl: str.split('?')[0] || '',\n\t\tquery: parse(extract(str), opts)\n\t};\n};\n","'use strict';\nmodule.exports = function (str) {\n\treturn encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n\t\treturn '%' + c.charCodeAt(0).toString(16).toUpperCase();\n\t});\n};\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp(token, 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn decodeURIComponent(components.join(''));\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher);\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher);\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n","export default class Observer {\n constructor(selector, margin, conf, cb) {\n let observablesSelector = selector || '.observe';\n const observables = document.querySelectorAll(observablesSelector);\n\n if (!window.IntersectionObserver) {\n console.warn('IntersectionObserver not supported');\n for (let el of observables) {\n cb(el);\n }\n } else {\n console.debug('IntersectionObserver supported');\n const rootMargin = margin || Math.floor(window.outerHeight / 3);\n const observer = new IntersectionObserver(cb, conf || {\n root: null,\n rootMargin: `${rootMargin}px 0px`,\n threshold: 0.0\n });\n\n for (let observable of observables) {\n observer.observe(observable);\n }\n }\n }\n}","import Component from '../abstracts/Component';\nimport queryString from 'query-string';\nimport Observer from '../utils/ObserverIntersection';\n\nexport default class InfiniteScrollLogic extends Component {\n get SELECTORS() {\n return {\n main: '[data-infinite-scroll]',\n trigger: '[data-infinite-scroll-trigger]'\n }\n }\n\n constructor() {\n super();\n this.viewMoreBtn = document.querySelector(this.SELECTORS.main);\n this.nextPage = document.querySelector(this.SELECTORS.main).dataset.page;\n this.lastPage = document.querySelector(this.SELECTORS.main).dataset.infiniteScrollLastpage;\n const searchObj = queryString.parse(location.search);\n const preload = searchObj.preload;\n const page = parseInt(searchObj.page);\n this.wasPreloaded = preload || page > 0 || false;\n this.startPage = this.wasPreloaded ? page + 1 : 1;\n this.isBound = false;\n }\n\n // observer function\n observeScroll() {\n console.log(\"observer scroll\");\n this.internalObserveScroll();\n }\n\n // setting observer\n internalObserveScroll() {\n this.scrollObserver = new Observer(this.SELECTORS.trigger, 0, null, (entries, observer) => {\n entries.forEach(entry => {\n if(entry.intersectionRatio > 0) {\n // trigger\n let nextPage = this.viewMoreBtn.dataset.page;\n let lastPage = this.viewMoreBtn.dataset.infiniteScrollLastpage;\n // if next page is minor than last\n if(parseFloat(nextPage) <= parseFloat(lastPage)) {\n this.$emit(this.$customEvents.INFINITE_SCROLL_EVENTS.next, {page: nextPage});\n }\n observer.unobserve(entry.target);\n }\n });\n });\n }\n\n bindEvents() {\n this.bindClickOnce();\n // i need to launch observer after the first click\n this.$on(this.$customEvents.INFINITE_SCROLL_EVENTS.loaded, ({event, payload}) => {\n let lastPage = this.viewMoreBtn.dataset.infiniteScrollLastpage;\n let nextPage = this.viewMoreBtn.dataset.page;\n // if next page is minor than last\n if(parseFloat(nextPage) < parseFloat(lastPage)) {\n // launch observer\n this.observeScroll();\n }\n });\n\n //resets button in case of new search query\n this.$on(this.$customEvents.FILTERS_EVENTS.updated, ({event, payload}) => {\n let newButton = payload.response.querySelector(this.SELECTORS.main);\n this.viewMoreBtn.classList.remove('d-none');\n this.viewMoreBtn.dataset.page = this.nextPage;\n this.viewMoreBtn.dataset.infiniteScrollLastpage = newButton.getAttribute('data-infinite-scroll-lastpage');\n //avoids multiple events on btn click\n if(this.isBound == false) {\n this.bindClickOnce();\n }\n });\n }\n\n bindClickOnce() {\n this.isBound = true;\n // bind one click to trigger button\n this.$one('click.is', ({\n event\n }) => {\n event.stopPropagation();\n event.preventDefault();\n event.currentTarget.classList.add('d-none');\n this.$emit(this.$customEvents.INFINITE_SCROLL_EVENTS.next, {\n page: this.startPage\n });\n this.isBound = false;\n }, this.SELECTORS.main);\n }\n\n render() {\n this.log('Load logics...');\n // if i find the main i start the events\n if (this.viewMoreBtn) this.bindEvents();\n }\n}\n"],"sourceRoot":""}