-
Notifications
You must be signed in to change notification settings - Fork 0
/
blaze-components.min.js
1 lines (1 loc) · 7.3 KB
/
blaze-components.min.js
1
function a(){}var blaze=blaze||{};blaze.createNS=function(e){var t,o,a=e.split("."),s=blaze;for("blaze"===a[0]&&(a=a.slice(1)),o=0;o<a.length;o++)t=a[o],"undefined"==typeof s[t]&&(s[t]={}),s=s[t];return s},blaze.createNS("blaze.components"),blaze.components.classes=[],blaze.components.init=function(e){var t,o,a;this.componentsel="[data-component]",this.reference=e.dataset.blazeRef;var s=document.querySelectorAll(this.componentsel);for(t=0;t<s.length;t++)o=s[t].dataset.component,a=new blaze.components[o](s[t]),blaze.components.classes.push(a)},blaze.components.getWpApiData=function(e){return new Promise(function(t,o){var a,s,n=new XMLHttpRequest;s=e.indexOf("?")>=0?"&":"?",s+=(new Date).getTime(),n.onload=function(e){200==n.status?(a="json"===e.target.responseType?e.target.response:JSON.parse(e.target.responseText),t(a)):o(Error(n.statusText))},n.onerror=function(){o(Error("Network error"))},n.open("GET",e+s,!0),n.setRequestHeader("X-Requested-With","XMLHttpRequest"),n.responseType="json",n.send(null)})},blaze.components.loadTemplate=function(e){return new Promise(function(t,o){var a,s=new XMLHttpRequest,n="?"+(new Date).getTime();s.onload=function(e){200==s.status?(a=e.target.responseText,t(a)):o(Error(s.statusText))},s.onerror=function(){o(Error("Network error"))},s.open("GET",e+n,!0),s.setRequestHeader("X-Requested-With","XMLHttpRequest"),s.send(null)})},blaze.components.renderComplete=function(){var e=document.querySelector("body"),t=new CustomEvent("BlazeRenderComplete");e.dispatchEvent(t)};var blaze=blaze||{};blaze.components.GoogleMaps=function(e){var t,o,a,s,n;this.element=e,this.template=this.element.dataset.template,this.apiKey=this.element.dataset.apiKey,this.apiKey&&(this.centerLat=parseFloat(this.element.dataset.centerLat),this.centerLng=parseFloat(this.element.dataset.centerLng),isFinite(this.centerLat)&&isFinite(this.centerLng)&&(t=parseInt(this.element.dataset.zoom,10),this.zoom=isNaN(t)?10:t,this.mapType=this.element.dataset.mapType||"roadmap",this.lang=this.element.dataset.lang||"en",this.region=this.element.dataset.region||"US",this.geoPoints=[],o=parseFloat(this.element.dataset.geoPointLat),a=parseFloat(this.element.dataset.geoPointLng),s=this.element.dataset.geoPointTitle||"",n=this.element.dataset.geoPointDesc||"",(o||a)&&isFinite(o)&&isFinite(o)&&this.geoPoints.push({position:{lat:o,lng:a},title:s,description:n}),this.load()))},blaze.components.GoogleMaps.prototype.load=function(){google.load("maps","3",{other_params:"key="+this.apiKey+"&language="+this.lang+"®ion="+this.region,callback:blaze.components.GoogleMaps.prototype.render.bind(this)})},blaze.components.GoogleMaps.prototype.render=function(){var e,t,o,a=new google.maps.InfoWindow({content:""});switch(this.mapType){case"roadmap":t=google.maps.MapTypeId.ROADMAP;break;case"satellite":t=google.maps.MapTypeId.SATELLITE;break;case"terrain":t=google.maps.MapTypeId.TERRAIN;break;case"hybrid":t=google.maps.MapTypeId.HYBRID;break;default:t=google.maps.MapTypeId.ROADMAP}o=new google.maps.Map(this.element,{zoom:this.zoom,center:{lat:this.centerLat,lng:this.centerLng},mapTypeId:t});for(var s=0;s<this.geoPoints.length;s++)e=new google.maps.Marker({position:this.geoPoints[s].position,map:o,title:this.geoPoints[s].title,description:this.geoPoints[s].description}),this.geoPoints[s].description&&e.addListener("click",function(){a.setContent(this.description),a.open(o,this)})},window.addEventListener("load",function(){function e(e){e.classList.toggle(a)}for(var t,o="[data-blaze-fold-open]",a="open",s=document.querySelectorAll(o),n=0;n<s.length;n++)t=s[n],t.addEventListener("click",e.bind(null,t))});var blaze=blaze||{};blaze.components.WpPostList=function(e){var t;this.element=e,this.template=this.element.dataset.template,this.quantity=parseInt(this.element.dataset.quantity,10)?this.element.dataset.quantity:10,this.currentPage=1,this.categories=this.element.dataset.categoryName,this.categories&&(this.categories=this.categories.split(","),this.categories=this.categories.map(function(e){return e.trim()})),this.categoryIDs=[],this.data={posts:[]},this.lastPage=!1,this.loadMoreSelector="[data-load-more]",this.loadMoreHandler=blaze.components.WpPostList.prototype.loadMore.bind(this),this.categories?(t=this,blaze.components.getWpApiData("/wp-json/wp/v2/categories").then(function(e){var o,a;for(o=0;o<e.length;o++)for(a=0;a<t.categories.length;a++)e[o].slug===t.categories[a]&&t.categoryIDs.push(e[o].id);t.load()})):this.load()},blaze.components.WpPostList.prototype.getDataURL=function(){var e,t="/wp-json/wp/v2/posts?_embed&page="+this.currentPage+"&per_page="+this.quantity;if(this.categoryIDs.length)for(e=0;e<this.categoryIDs.length;e++)t+="&categories[]="+this.categoryIDs[e];return t},blaze.components.WpPostList.prototype.populateData=function(e){var t;for(t=0;t<e.length;t++)this.data.posts.push({title:e[t].title.rendered,content:e[t].content.rendered,excerpt:e[t].excerpt.rendered,link:e[t].link})},blaze.components.WpPostList.prototype.render=function(){this.loadMore&&this.loadMore.onclick&&(this.loadMore.onclick=null),this.element.innerHTML=this.template(this.data),this.loadMore=this.element.querySelector(this.loadMoreSelector),this.loadMore&&(this.lastPage?this.loadMore.style.display="none":this.loadMore.onclick=this.loadMoreHandler),blaze.components.renderComplete()},blaze.components.WpPostList.prototype.load=function(){var e=this,t=blaze.components.getWpApiData(this.getDataURL()),o=blaze.components.loadTemplate(this.template);Promise.all([o,t]).then(function(t){e.template=Handlebars.compile(t[0]),e.populateData(t[1]),t[1].length<e.quantity&&(e.lastPage=!0),e.render()},function(e){})},blaze.components.WpPostList.prototype.loadMore=function(){var e,t=this;this.currentPage++,e=blaze.components.getWpApiData(this.getDataURL()),e.then(function(e){t.populateData(e),t.render()},function(e){})};var blaze=blaze||{};blaze.components.WpIndexedList=function(e){this.element=e,this.template=this.element.dataset.template,this.categories=this.element.dataset.categoryName,this.categories&&(this.categories=this.categories.split(","),this.categories=this.categories.map(function(e){return e.trim()})),this.data={index:[],list:[]},this.load()},blaze.components.WpIndexedList.prototype.getDataURL=function(){var e,t="/wp-json/blaze/v1/list/";if(this.categories)for(e=0;e<this.categories.length;e++)t+="/"===t.charAt(t.length-1)?"?":"&",t+="category_name[]="+this.categories[e];return t},blaze.components.WpIndexedList.prototype.populateData=function(e){var t,o,a,s,n,i=[],r={};if(e){for(t=0;t<e.length;t++)a=e[t].title.charAt(0),i.indexOf(a)<0&&(i.push(a),r[a]={list:[]}),r[a].list.push({title:e[t].title,url:e[t].url});i.sort();for(o in r)r.hasOwnProperty(o)&&r[o].list.sort(blaze.components.WpIndexedList.sortListItems);for(t=0;t<i.length;t++)n=0==t?"active":"",s="id-c"+i[t].charCodeAt(0),this.data.index.push({value:i[t],refId:s,classes:n}),this.data.list.push({index:i[t],refId:s,classes:n,items:r[i[t]].list})}},blaze.components.WpIndexedList.sortListItems=function(e,t){return e.title<t.title?-1:e.title>t.title?1:0},blaze.components.WpIndexedList.prototype.render=function(){this.element.innerHTML=this.template(this.data)},blaze.components.WpIndexedList.prototype.load=function(){var e=this,t=blaze.components.getWpApiData(this.getDataURL()),o=blaze.components.loadTemplate(this.template);Promise.all([o,t]).then(function(t){e.template=Handlebars.compile(t[0]),e.populateData(t[1]),e.render()},function(e){})};