{"version":3,"file":"js/mod-curator-load-more.c683393d1e701d0c67a8.js","mappings":"YAAA,SAASA,EAAgBC,GACxBA,EAAMC,iBAEN,MAAMC,EAASF,EAAMG,OAAOC,QAAQ,0BAE9BC,EAAYH,EAAOI,aAAa,aAChCC,EAAYC,SAASN,EAAOI,aAAa,oBACzCG,EAAeD,SAASN,EAAOI,aAAa,wBAClD,IAAII,EAAcF,SAASN,EAAOI,aAAa,sBAE/C,MAEMK,EAFcT,EAAOE,QAAQ,qCACGQ,cAAc,oCACRC,iBAAiB,8CAE7DF,EAAkBG,SAASC,IAC1BA,EAAMC,UAAUC,OAAO,sBAEpBP,EAAcH,EAkBnB,SAAiBF,EAAWa,EAAOC,GAClC,MAAMC,EAAMC,QAAQC,QACdC,EAAO,IAAIC,SAQjB,OANAD,EAAKE,OAAO,SAAU,wBACtBF,EAAKE,OAAO,QAASJ,QAAQK,OAC7BH,EAAKE,OAAO,aAAcpB,GAC1BkB,EAAKE,OAAO,QAASP,GACrBK,EAAKE,OAAO,SAAUN,GAEfQ,MAAMP,EAAK,CACjBQ,OAAQ,OACRC,KAAMN,IACJO,MAAMC,IACR,GAAIA,EAASC,GACZ,OAAOD,EAASE,OAEhB,MAAM,IAAIC,MAAM,kCAlCjBC,CAAQ9B,EAAWI,EAAcC,GAC/BoB,MAAMC,IACFA,EAASK,SAAWL,EAASM,OAqCrC,SAAqBA,EAAOC,IAQ5B,SAAqBD,EAAOC,GAC3B,MAAMlB,EAAMC,QAAQC,QACdC,EAAO,IAAIC,SAEjBD,EAAKE,OAAO,SAAU,yBACtBF,EAAKE,OAAO,QAASJ,QAAQK,OAC7BH,EAAKE,OAAO,SAAUa,EAAOhC,aAAa,gBAC1CiB,EAAKE,OAAO,QAASc,KAAKC,UAAUH,IAEpC,MACMI,EADgBH,EAAOlC,QAAQ,qCACGQ,cAAc,oCAChD8B,EAAmBD,EAAkB7B,cAAc,8CACnDD,EAAoB8B,EAAkB5B,iBAAiB,8CACvD8B,EAAgBF,EAAkB7B,cAAc,iCAAiCN,aAAa,SACpGiB,EAAKE,OAAO,gBAAiBkB,GAE7BhB,MAAMP,EAAK,CACVQ,OAAQ,OACRC,KAAMN,IAELO,MAAMC,IACN,GAAIA,EAASC,GACZ,OAAOD,EAASa,OAEhB,MAAM,IAAIV,MAAM,kCAGjBJ,MAAMe,IACNH,EAAiBI,mBAAmB,cAAeD,MAEnDE,OAAOC,IACPC,QAAQD,MAAMA,MAEdE,SAAQ,KACRvC,EAAkBG,SAASC,IAC1BA,EAAMC,UAAUmC,IAAI,yBA1CvBC,CAAYf,EAAOC,GAEnB,MACMe,EADc7C,SAAS8B,EAAOhC,aAAa,sBACZ+B,EAAMiB,OAC3ChB,EAAOiB,aAAa,oBAAqBF,GAzCrCG,CAAYzB,EAASM,MAAOnC,MAG7B6C,OAAOC,IACPC,QAAQD,MAAMA,OAGhBrC,EAAkBG,SAASC,IAC1BA,EAAME,YAEPf,EAAOuD,UAAYpC,QAAQqC,aA2ELC,MAAMC,KAAKC,SAASC,uBAAuB,0BAEnDhD,SAASwB,GAAWA,EAAOyB,iBAAiB,QAAShE,K","sources":["webpack://modularity/./source/php/Module/Curator/assets/mod-curator-load-more.js"],"sourcesContent":["function loadMoreHandler(event) {\r\n\tevent.preventDefault();\r\n\r\n\tconst parent = event.target.closest('.mod-curator-load-more');\r\n\r\n\tconst embedCode = parent.getAttribute('data-code');\r\n\tconst itemCount = parseInt(parent.getAttribute('data-item-count'));\r\n\tconst itemsPerPage = parseInt(parent.getAttribute('data-items-per-page'));\r\n\tlet itemsLoaded = parseInt(parent.getAttribute('data-items-loaded'));\r\n\r\n\tconst grandParent = parent.closest('.modularity-socialmedia-container');\r\n\tconst socialMediaBlocks = grandParent.querySelector('.modularity-socialmedia__content');\r\n\tconst placeholderBlocks = socialMediaBlocks.querySelectorAll('.modularity-socialmedia__item--placeholder');\r\n\r\n\tplaceholderBlocks.forEach((block) => {\r\n\t\tblock.classList.remove('u-display--none');\r\n\t});\r\n\tif (itemsLoaded < itemCount) {\r\n\t\tgetFeed(embedCode, itemsPerPage, itemsLoaded)\r\n\t\t\t.then((response) => {\r\n\t\t\t\tif (response.success && response.posts) {\r\n\t\t\t\t\tupdateItems(response.posts, parent);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\tconsole.error(error);\r\n\t\t\t});\r\n\t} else {\r\n\t\tplaceholderBlocks.forEach((block) => {\r\n\t\t\tblock.remove();\r\n\t\t});\r\n\t\tparent.innerHTML = curator.noMoreItems;\r\n\t}\r\n}\r\n\r\nfunction getFeed(embedCode, limit, offset) {\r\n\tconst url = curator.ajaxurl;\r\n\tconst data = new FormData();\r\n\r\n\tdata.append('action', 'mod_curator_get_feed');\r\n\tdata.append('nonce', curator.nonce);\r\n\tdata.append('embed-code', embedCode);\r\n\tdata.append('limit', limit);\r\n\tdata.append('offset', offset);\r\n\r\n\treturn fetch(url, {\r\n\t\tmethod: 'POST',\r\n\t\tbody: data,\r\n\t}).then((response) => {\r\n\t\tif (response.ok) {\r\n\t\t\treturn response.json();\r\n\t\t} else {\r\n\t\t\tthrow new Error('Network response was not ok');\r\n\t\t}\r\n\t});\r\n}\r\n\r\nfunction updateItems(posts, button) {\r\n\trenderPosts(posts, button);\r\n\r\n\tconst itemsLoaded = parseInt(button.getAttribute('data-items-loaded'));\r\n\tconst newItemsLoaded = itemsLoaded + posts.length;\r\n\tbutton.setAttribute('data-items-loaded', newItemsLoaded);\r\n}\r\n\r\nfunction renderPosts(posts, button) {\r\n\tconst url = curator.ajaxurl;\r\n\tconst data = new FormData();\r\n\r\n\tdata.append('action', 'mod_curator_load_more');\r\n\tdata.append('nonce', curator.nonce);\r\n\tdata.append('layout', button.getAttribute('data-layout'));\r\n\tdata.append('posts', JSON.stringify(posts));\r\n\r\n\tconst closestParent = button.closest('.modularity-socialmedia-container');\r\n\tconst socialMediaBlocks = closestParent.querySelector('.modularity-socialmedia__content');\r\n\tconst placeholderBlock = socialMediaBlocks.querySelector('.modularity-socialmedia__item--placeholder');\r\n\tconst placeholderBlocks = socialMediaBlocks.querySelectorAll('.modularity-socialmedia__item--placeholder');\r\n\tconst columnClasses = socialMediaBlocks.querySelector('.modularity-socialmedia__item').getAttribute('class');\r\n\tdata.append('columnClasses', columnClasses);\r\n\r\n\tfetch(url, {\r\n\t\tmethod: 'POST',\r\n\t\tbody: data,\r\n\t})\r\n\t\t.then((response) => {\r\n\t\t\tif (response.ok) {\r\n\t\t\t\treturn response.text();\r\n\t\t\t} else {\r\n\t\t\t\tthrow new Error('Network response was not ok');\r\n\t\t\t}\r\n\t\t})\r\n\t\t.then((html) => {\r\n\t\t\tplaceholderBlock.insertAdjacentHTML('beforebegin', html);\r\n\t\t})\r\n\t\t.catch((error) => {\r\n\t\t\tconsole.error(error);\r\n\t\t})\r\n\t\t.finally(() => {\r\n\t\t\tplaceholderBlocks.forEach((block) => {\r\n\t\t\t\tblock.classList.add('u-display--none');\r\n\t\t\t});\r\n\t\t});\r\n}\r\n\r\n// Select all elements with class 'mod-curator-load-more' and convert the result to an array\r\nconst loadMoreButtons = Array.from(document.getElementsByClassName('mod-curator-load-more'));\r\n// Add the event listener to each button in the array\r\nloadMoreButtons.forEach((button) => button.addEventListener('click', loadMoreHandler));\r\n"],"names":["loadMoreHandler","event","preventDefault","parent","target","closest","embedCode","getAttribute","itemCount","parseInt","itemsPerPage","itemsLoaded","placeholderBlocks","querySelector","querySelectorAll","forEach","block","classList","remove","limit","offset","url","curator","ajaxurl","data","FormData","append","nonce","fetch","method","body","then","response","ok","json","Error","getFeed","success","posts","button","JSON","stringify","socialMediaBlocks","placeholderBlock","columnClasses","text","html","insertAdjacentHTML","catch","error","console","finally","add","renderPosts","newItemsLoaded","length","setAttribute","updateItems","innerHTML","noMoreItems","Array","from","document","getElementsByClassName","addEventListener"],"sourceRoot":""}