{"version":3,"file":"js/mod-posts-load-more-button.8dff60ad5f4f9d56c727.js","mappings":"YAAA,IAAIA,EAAaA,GAAc,GAC/BA,EAAWC,MAAQD,EAAWC,OAAS,GAEvCD,EAAWC,MAAMC,eAAkB,SAAUC,GACzC,SAASD,IACLE,KAAKC,OAqHT,OAlHAH,EAAeI,UAAUD,KAAO,WAC5BF,EAAEI,UAAUC,GAAG,QAAS,0BAA2B,SAASC,GACxD,IAAIC,EAASP,EAAEM,EAAEE,QAAQC,QAAQ,2BAE7BC,EAAaC,KAAKC,MAAMC,OAAOC,KAAKP,EAAOQ,KAAK,8BAGpD,GAAKd,KAAKe,iBADS,CAAC,eAAgB,SAAU,SAAU,UAAW,QAAS,iBACnCC,OAAOC,KAAKR,IAArD,CAKA,IAAIF,EAASR,EAAEU,EAAWF,QAAQ,GAClC,QAAuB,IAAZA,EACP,KAAM,iCAAmCE,EAAWF,OAAS,IAIjEP,KAAKkB,aAAaZ,GAClBN,KAAKmB,cAAcb,EAAQC,EAAQE,KAErCW,KAAKpB,QAGXF,EAAeI,UAAUgB,aAAe,SAASZ,GAE7C,GAAIA,EAAOe,SAAS,UAKhB,OAJAf,EAAOgB,YAAY,eAEnBtB,KAAKuB,aAAajB,GAKtBA,EAAOkB,SAAS,UAGhBlB,EAAOmB,MAAM,4EAUjB3B,EAAeI,UAAUiB,cAAgB,SAASb,EAAQC,EAAQE,GAG9D,IAAIiB,EAAOjB,EACXiB,EAAKC,OAAS,sBAEd5B,EAAE6B,KAAK,CACHC,KAAO,OACPC,IAAMJ,EAAKK,QACXL,KAAOA,EACPM,SAAU,OACVC,QAAU,SAASC,EAAOC,GAEtB,MAAe,YAAXA,GAGApC,EAAEQ,GAAQ6B,OAAO1B,KAAKC,MAAMuB,IAGxBzB,EAAW4B,aAAeH,EAAMI,QAChCtC,KAAKuB,aAAajB,QAClBA,EAAOiC,WAIXvC,KAAKkB,aAAaZ,GAGlBG,EAAW+B,OAASC,SAAShC,EAAW+B,QAAUC,SAAShC,EAAW4B,mBACtE/B,EAAOQ,KAAK,2BAA4BF,OAAO8B,KAAKhC,KAAKiC,UAAUlC,OAIvD,cAAZ0B,GACAnC,KAAKuB,aAAajB,GAClBA,EAAOmB,MAAM,sCACbnB,EAAOiC,eAHX,GAOFnB,KAAKpB,MACP4C,MAAQ,SAASC,EAAOV,EAAQS,GAC5BE,QAAQC,IAAIH,OAKxB9C,EAAeI,UAAUqB,aAAe,SAASjB,GACzCP,EAAEO,EAAO0C,QAAQ3B,SAAS,YAC1Bf,EAAO0C,OAAOT,UAItBzC,EAAeI,UAAUa,iBAAmB,SAASkC,EAAcC,GAC/D,IAAIC,GAAS,EAUb,OARAF,EAAaG,SAAQ,SAASC,GAC1B,IAAKH,EAAcI,SAASD,GAGxB,MAFAF,GAAS,EAEH,yDAA2DE,EAAM,OAIxEF,GAGJ,IAAIrD,EAvHoB,CAyHhCyD,Q","sources":["webpack://modularity/./source/php/Module/Posts/assets/mod-posts-load-more-button.js"],"sourcesContent":["var Modularity = Modularity || {};\r\nModularity.Posts = Modularity.Posts || {};\r\n\r\nModularity.Posts.LoadMoreButton = (function ($) {\r\n function LoadMoreButton() {\r\n this.init();\r\n }\r\n\r\n LoadMoreButton.prototype.init = function() {\r\n $(document).on('click', '.js-mod-posts-load-more', function(e) {\r\n var button = $(e.target).closest('.js-mod-posts-load-more');\r\n \r\n var attributes = JSON.parse(window.atob(button.attr('data-mod-posts-load-more')));\r\n //Make sure required attributes exists\r\n var requiredKeys = ['postsPerPage', 'offset', 'target', 'ajaxUrl', 'nonce', 'bladeTemplate'];\r\n if (!this.attributesExists(requiredKeys, Object.keys(attributes))) {\r\n return;\r\n }\r\n\r\n //Make sure target exists\r\n var target = $(attributes.target)[0];\r\n if (typeof(target) === 'undefined') {\r\n throw 'Error: Could not find target \"' + attributes.target + '\"';\r\n return;\r\n }\r\n\r\n this.toggleLoader(button);\r\n this.loadMorePosts(button, target, attributes);\r\n\r\n }.bind(this));\r\n };\r\n\r\n LoadMoreButton.prototype.toggleLoader = function(button)\r\n {\r\n if (button.hasClass('hidden')) {\r\n button.removeClass('hidden');\r\n\r\n this.removeLoader(button);\r\n\r\n return;\r\n }\r\n\r\n button.addClass('hidden');\r\n\r\n //Create loader\r\n button.after('
No more posts to show…
');\r\n button.remove();\r\n return;\r\n }\r\n\r\n }.bind(this),\r\n error : function(jqXHR, status, error) {\r\n console.log(error);\r\n }\r\n });\r\n }\r\n\r\n LoadMoreButton.prototype.removeLoader = function(button) {\r\n if ($(button.next()).hasClass('loading')) {\r\n button.next().remove();\r\n }\r\n };\r\n\r\n LoadMoreButton.prototype.attributesExists = function(requiredKeys, attributeKeys) {\r\n var exists = true;\r\n\r\n requiredKeys.forEach(function(key) {\r\n if (!attributeKeys.includes(key)) {\r\n exists = false;\r\n\r\n throw 'ValidationError: Missing required data-attribute key \"' + key + '\"';\r\n }\r\n });\r\n\r\n return exists;\r\n };\r\n\r\n return new LoadMoreButton();\r\n\r\n})(jQuery);\r\n"],"names":["Modularity","Posts","LoadMoreButton","$","this","init","prototype","document","on","e","button","target","closest","attributes","JSON","parse","window","atob","attr","attributesExists","Object","keys","toggleLoader","loadMorePosts","bind","hasClass","removeClass","removeLoader","addClass","after","data","action","ajax","type","url","ajaxUrl","dataType","success","posts","status","append","postsPerPage","length","remove","offset","parseInt","btoa","stringify","error","jqXHR","console","log","next","requiredKeys","attributeKeys","exists","forEach","key","includes","jQuery"],"sourceRoot":""}