mustache_templates-8.x-1.0-beta4/js/sync.min.js
js/sync.min.js
window.mustacheSync=mustacheSync||{items:[],templates:[]},function(t,e,i){e.registry=e.registry||{items:[],pending:[],templates:{},providers:[],listeners:{},evald:{},magic:{}},e.___internals=e.___internals||{subset:function(t,e){var i,r,s=t,n=e.length;for(r=0;r<n;r++){if(i=e[r],!s.hasOwnProperty(i))return!1;s=s[i]}return s},isEmpty:function(t){var e;if("object"!=typeof t||null===t)return!t;if(Array.isArray(t))return!t.length;for(e in t)if(t.hasOwnProperty(e))return!1;return!0},trigger:function(t,e,i,r,s){var n=document.createEvent("CustomEvent");void 0===s&&(s=null),n.initCustomEvent(e,i,r,s),t.dispatchEvent(n)},item:{update:function(t,i,r){var s=this.provider,n=this.element||null,a=e.___internals,h=a.item.fetch,l=a.item.render,c=a.trigger,o={size:0};if(void 0===t&&(t=this.period),!0!==r&&(r=!1),n&&(n.classList.add("syncing"),n.classList.remove("synced"),c(n,"mustacheSyncBegin",!0,!1,this)),s){if(!0===s.faulty)return void(t>0&&this.sync(this.delay+1e3,t,!1,!0,r));if(!0===s.fetching)return void this.sync(this.delay+10,t,!1,!0,r);if(null===s.fetched||!0===i||t>0&&t-1<Date.now()-s.fetched||"number"==typeof this.max_age&&this.max_age<Date.now()-s.fetched)return void h.call(this,t,r)}l.call(this),r||(o.next=this.next(),o.next&&o.next.sync(t,t))},fetch:function(t,i){var r=this.provider,s=e.___internals.item.fetch,n=e.___internals.item.render,a=e.___internals.isEmpty,h=new XMLHttpRequest;r.fetching=!0,void 0===t&&(t=this.period),!0!==i&&(i=!1),h.open("GET",r.url,!0),h.onload=function(){var e=!1,s=!1;if(304===h.status)e=a(r.latest)?this.data||!1:r.latest,r.previousFetched=r.fetched||null,r.fetched=Date.now();else if(h.status>=200&&h.status<400)try{e=JSON.parse(h.responseText),r.previous=r.latest||null,r.previousFetched=r.fetched||null,r.latest=e,r.fetched=Date.now()}catch(t){e=!1}else if(h.status>=500)return void h.onerror();r.fetching=!1,r.faulty=!1,r===this.provider&&(null!==this.increment&&a(e)||(this.previousData=this.data||this.previousData||!1,"object"!=typeof e||Array.isArray(e)||!e?this.data=e:"object"==typeof this.previousData&&this.previousData?this.data=Object.assign({},this.previousData,e):this.data=Object.assign({},e),n.call(this)),i||(s=null!==this.increment&&this.increment.loop&&a(e)?this.next(0):this.next())&&s.sync(t,t))}.bind(this),h.onerror=function(){r.fetching=!1,r.faulty=!0,t>0&&setTimeout(s.bind(this,t,i),t+5e3)}.bind(this),h.send()},done:function(){return null!==this.increment&&this.increment.i+1>=this.increment.max&&!this.increment.loop||(0===this.limit||0===this.period&&this.limit<-1)},next:function(t){return!this.done()&&(null!==this.increment&&("number"==typeof t?(this.increment.i=t,this.increment.value=this.increment.offset+t*this.increment.step):this.increment.i+1>=this.increment.max?this.increment.loop&&(this.increment.i=0,this.increment.value=this.increment.offset):(this.increment.i++,this.increment.value+=this.increment.step),null!==this.provider?this.provider=this.provider.rebuild(this.increment.key,this.increment.value):this.data[this.increment.key]=this.increment.value),this)},prepare:function(t,e){return t},finish:function(t,e){return t},render:function(){var r=!1,s={template:e.registry.templates[this.template],data:this.data},n=this.element||null,a=this.adjacent,h=e.___internals,l=h.subset,c=h.trigger,o=h.item.prepare,d=h.item.finish,p=Object.assign({},e.registry.magic),u=this.eval,m=n&&this.behaviors;for(var f in p)p.hasOwnProperty(f)&&(p[f]=p[f].call(this,s));if(this.select&&s.data&&(s.data=l(s.data,this.select)),!1===s.data)return n&&(n.classList.remove("syncing"),n.classList.remove("synced"),n.classList.add("not-synced"),n.classList.add("error")),!1;null===s.data&&(s.data={}),"object"==typeof s.data&&(Array.isArray(s.data)&&(s.data={___l:[Object.assign([],s.data)]},s.template="{{#___l}}"+s.template+"{{/___l}}"),s.data=Object.assign({},s.data,p),this.previousData&&(s.data.previous=this.previousData,delete s.data.previous.previous));try{r=o.call(this,r,s),r=i.render(s.template,s.data,e.registry.templates),r=d.call(this,r,s)}catch(t){if(t.retry&&t.component){for(s.ri=0;s.ri<t.retry.length;s.ri++)s.retry=t.retry[s.ri],s.retry.retries=s.retry.retries?s.retry.retries+1:1,this===s.retry?setTimeout(e.___internals.item.render.bind(this),100*s.retry.retries):s.retry.sync(100*s.retry.retries,0,!1,!0,!0);return r}if(t.abort)return r;throw t}if(m&&t.detachBehaviors(n),(this.morph||u)&&(s.fragment=document.createElement("div"),s.fragment.innerHTML=r),u){for(s.scripts=s.fragment.querySelectorAll("script"),s.eval=[],s.i=0;s.i<s.scripts.length;s.i++){if(s.script=s.scripts[s.i],s.script.remove(),s.script.hasAttribute("src")){if(e.registry.evald.hasOwnProperty(s.script.getAttribute("src")))continue;e.registry.evald[s.script.getAttribute("src")]=!0}if(s.script.hasAttribute("id")){if(e.registry.evald.hasOwnProperty(s.script.getAttribute("id")))continue;e.registry.evald[s.script.getAttribute("id")]=!0}for(s.eval_script=document.createElement("script"),s.k=0;s.k<s.script.attributes.length;s.k++)s.eval_script.setAttribute(s.script.attributes[s.k].name,s.script.attributes[s.k].value);s.eval_script.innerHTML=s.script.innerHTML,s.eval.push(s.eval_script)}r=s.fragment.innerHTML}if(n){if(this.morph)morphdom(n,s.fragment,this.morph);else switch(a){case"beforebegin":case"afterbegin":case"beforeend":case"afterend":n.insertAdjacentHTML(a,r);break;default:n.innerHTML=r}n.classList.add("synced"),n.classList.remove("syncing"),n.classList.remove("not-synced"),n.classList.remove("error")}if(u)for(s.i=0;s.i<s.eval.length;s.i++)document.head.appendChild(s.eval[s.i]),s.eval[s.i].remove();return s=null,n&&c(n,"mustacheSyncFinish",!0,!1,this),m&&t.attachBehaviors(n),r},init:function(){var t=e.___internals.item,i=e.___internals.provider.get;!0!==this.initialized&&("string"==typeof this.url?(this.provider=i(this.url),this.data=this.data||{}):"string"==typeof this.data?(this.provider=i(this.data),this.data={}):(this.data=this.data||{},this.provider=null),this.increment=this.increment||null,null!==this.increment&&(this.increment.offset=this.increment.offset||0,this.increment.key=this.increment.key||"page",this.increment.value=this.increment.offset,this.increment.step=this.increment.step||1,this.increment.max=this.increment.max||-1,this.increment.i=0,this.increment.loop=this.increment.loop||!0,null!==this.provider?this.provider=this.provider.rebuild(this.increment.key,this.increment.value):this.data[this.increment.key]=this.increment.value),this.listen=this.listen||t.listen.bind(this),this.ready=this.ready||t.ready.bind(this),this.sync=this.sync||t.sync.bind(this),this.done=this.done||t.done.bind(this),this.next=this.next||t.next.bind(this),this.delay=this.delay||0,this.period=this.period||0,this.limit=this.limit||-1,this.trigger=this.trigger||null,this.adjacent=this.adjacent||null,this.eval=!0===this.eval||!1,this.behaviors=!0===this.behaviors||this.eval&&!1!==this.behaviors||!1,this.adjacent&&(this.morph=!1),!0===this.morph&&(this.morph={childrenOnly:!0}),this.started=!1,this.triggered=!1,this.initialized=!0)},ready:function(){return!this.element&&this.into&&(this.element=document.querySelector(this.into)),null!==this.element&&(!(this.morph&&!morphdom)&&e.registry.templates.hasOwnProperty(this.template))},start:function(){this.ready()&&!0!==this.started&&(this.started=!0,null===this.trigger?this.sync(this.delay,this.period):this.listen(this.trigger))},listen:function(t){var i,r,s,n,a,h,l=e.registry.listeners;for(h=0;h<t.length;h++)r=(i=t[h])[0],s=i[1],n=i[2],l.hasOwnProperty(r)||(l[r]={elements:[],events:{}}),(a=l[r]).events.hasOwnProperty(s)||(a.events[s]={subscribers:[]},a.events[s].triggered=function(){var t,e,i,r=this.subscribers.length;for(t=0;t<r;t++)i=(e=this.subscribers[t]).item,0!==e.limit&&(e.limit--,!0===i.triggered?(i.limit<0&&(i.limit=-1),(i=i.next())&&(e.item=i,i.sync(i.delay,0,!i.max_age,!1,!0))):(i.triggered=!0,i.sync(i.delay,i.period,!i.max_age)))}.bind(a.events[s])),a.events[s].subscribers.push({item:this,limit:n})},sync:function(t,i,r,s,n){if(this.ready()){if(!0!==s){if(this.done())return;this.limit--}void 0===t&&(t=this.delay),void 0===i&&(i=this.period),!0!==r&&(r=!1),!0!==n&&(n=!1),setTimeout(e.___internals.item.update.bind(this,i,r,n),t)}}},provider:{init:function(t){var i=e.___internals.provider,r={url:t,latest:{},fetched:null,fetching:!1,faulty:!1};return r.getParts=i.parts.bind(r),r.getParams=i.params.bind(r),r.rebuild=i.rebuild.bind(r),r},get:function(t){for(var i=e.registry.providers,r={size:i.length,i:0};r.i<r.size;r.i++)if(i[r.i].url===t)return i[r.i];for(;r.size>9;)i.shift(),r.size--;return r.provider=e.___internals.provider.init(t),i.push(r.provider),r.provider},rebuild:function(t,i){var r=e.___internals.provider.get,s={isDifferent:!1,params:{},flat:[]},n=t;for(s.key in"object"!=typeof t&&((n={})[t]=i),this.getParams(),this.params)this.params.hasOwnProperty(s.key)&&!n.hasOwnProperty(s.key)&&(s.val=this.params[s.key],s.flat.push(s.key+"="+s.val),s.params[s.key]=s.val);for(s.key in n)n.hasOwnProperty(s.key)&&(s.val=n[s.key],this.params.hasOwnProperty(s.key)?("string"==typeof this.params[s.key]&&"number"==typeof s.val&&(this.params[s.key]=parseInt(this.params[s.key])),this.params[s.key]!==s.val&&(s.isDifferent=!0)):s.isDifferent=!0,s.flat.push(s.key+"="+s.val),s.params[s.key]=s.val);return s.isDifferent?(s.parts=document.createElement("a"),s.parts.href=this.url,s.parts.search=s.flat.join("&"),s.provider=r(s.parts.href),s.provider.parts=s.parts,s.provider.params=s.params,s.provider):r(this.url)},parts:function(){return this.hasOwnProperty("parts")||(this.parts=document.createElement("a"),this.parts.href=this.url),this.parts},params:function(){var t;if(!this.hasOwnProperty("params")){if(this.params={},(t={search:this.getParts().search}).search=t.search.substring(1),0===t.search.length)return this.params;for(t.queries=t.search.split("&"),t.ql=t.queries.length,t.i=0;t.i<t.ql;t.i++)t.current=t.queries[t.i].split("="),0!==t.current[0].length&&(2===t.current.length?this.params[t.current[0]]=t.current[1]:this.params[t.current[0]]="")}return this.params}}},e.now=e.now||function(){var t,i,r,s=e.registry,n=e.___internals.item.init,a=e.___internals.item.start;for(r=e.templates.length;r>0;)r--,i=e.templates.shift(),s.templates[i.name]=i.content;for(r=s.pending.length;r>0;)r--,(t=s.pending.shift()).ready()?a.call(t):s.pending.push(t);for(r=e.items.length;r>0;)r--,t=e.items.shift(),n.call(t),s.items.push(t),t.ready()?a.call(t):s.pending.push(t)},e.refresh=e.refresh||function(t){var i,r,s,n,a,h,l,c,o,d,p=e.registry.listeners;if(e.now(),void 0===t)t=document;else if(null===t)return;for(i in p)if(p.hasOwnProperty(i))for(r=p[i],c=(s=t.querySelectorAll(i)).length,h=0;h<c;h++)for(n in l=s[h],r.elements.indexOf(l)<0&&r.elements.push(l),r.events)if(r.events.hasOwnProperty(n))for(a=r.events[n],d=r.elements.length,o=0;o<d;o++)r.elements[o].addEventListener(n,a.triggered,!1)}}(Drupal,mustacheSync,Mustache);