xhtmlx 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/xhtmlx.min.js ADDED
@@ -0,0 +1,2 @@
1
+ !function(){"use strict";var e={debug:!1,defaultSwapMode:"innerHTML",indicatorClass:"xh-indicator",requestClass:"xh-request",errorClass:"xh-error",batchThreshold:100,defaultErrorTemplate:null,defaultErrorTarget:null,templatePrefix:"",apiPrefix:"",uiVersion:null},t=new WeakMap,r=new Map,n=new WeakMap,a=new Map;function o(e,t,r){this.data=null!=e?e:{},this.parent=t||null,this.index=null!=r?r:null}function i(e,t){for(var r=e,n=0;n<t.length;n++){if(null==r||"object"!=typeof r)return;if(!(t[n]in r))return;r=r[t[n]]}return r}function l(e,t,r){o.call(this,e,t,r),this._subscribers={}}o.prototype.resolve=function(e){if(null!=e&&""!==e){if(-1!==e.indexOf(" | ")){for(var t=e.split(" | "),r=this.resolve(t[0].trim()),n=1;n<t.length;n++){var a=t[n].trim();V[a]&&(r=V[a](r))}return r}var o=e.split(".");if("$index"===o[0])return 1===o.length?this.index:void 0;if("$parent"===o[0]){if(!this.parent)return;return 1===o.length?this.parent.data:this.parent.resolve(o.slice(1).join("."))}if("$root"===o[0]){for(var l=this;l.parent;)l=l.parent;return 1===o.length?l.data:l.resolve(o.slice(1).join("."))}var s=i(this.data,o);return void 0!==s?s:this.parent?this.parent.resolve(e):void 0}},l.prototype=Object.create(o.prototype),l.prototype.constructor=l,l.prototype.set=function(e,t){for(var r=e.split("."),n=this.data,a=0;a<r.length-1;a++)null==n[r[a]]&&(n[r[a]]={}),n=n[r[a]];n[r[r.length-1]]=t,this._notify(e)},l.prototype.subscribe=function(e,t){this._subscribers[e]||(this._subscribers[e]=[]),this._subscribers[e].push(t)},l.prototype._notify=function(e){var t=this._subscribers[e];if(t)for(var r=0;r<t.length;r++)t[r]()};var s=/\{\{([^}]+)\}\}/g;function u(t,r,n){return t.replace(s,function(t,a){var o=r.resolve(a.trim());if(void 0===o)return e.debug&&console.warn("[xhtmlx] unresolved interpolation: {{"+a+"}}"),"";var i=String(o);return n?encodeURIComponent(i):i})}function c(t){var n=e.templatePrefix?e.templatePrefix+t:t;if(r.has(n))return r.get(n);var a=fetch(n).then(function(e){if(!e.ok)throw new Error("Template fetch failed: "+n+" ("+e.status+")");return e.text()});return r.set(n,a),a}function h(e,t){var r=e.getAttribute("xh-template");if(r){if(-1!==t.indexOf(r))return console.error("[xhtmlx] circular template reference detected: "+r),Promise.reject(new Error("Circular template: "+r));var n=t.concat(r);return c(r).then(function(e){return{html:e,isExternal:!0,templateStack:n}})}var a=e.querySelector(":scope > template");return a?Promise.resolve({html:a.innerHTML,isExternal:!1,templateStack:t}):Promise.resolve({html:null,isExternal:!1,templateStack:t})}var f=["xh-get","xh-post","xh-put","xh-delete","xh-patch"];function d(e){for(var t=0;t<f.length;t++){var r=e.getAttribute(f[t]);if(null!=r)return{verb:f[t].replace("xh-","").toUpperCase(),url:r}}return null}function v(e,t){var r,n,a,o=e.getAttribute("xh-show");if(null!=o){var i=t.resolve(o);e.style.display=i?"":"none",t instanceof l&&(r=o,n=e,(a=t).subscribe(r,function(){var e=a.resolve(r);n.style.display=e?"":"none"}))}var s=e.getAttribute("xh-hide");if(null!=s){var u=t.resolve(s);e.style.display=u?"none":"",t instanceof l&&function(e,t,r){r.subscribe(e,function(){var n=r.resolve(e);t.style.display=n?"none":""})}(s,e,t)}var c=e.getAttribute("xh-if");if(null!=c&&!t.resolve(c))return e.remove(),!1;var h=e.getAttribute("xh-unless");if(null!=h&&t.resolve(h))return e.remove(),!1;var f=e.getAttribute("xh-text");if(null!=f){var d=t.resolve(f);e.textContent=null!=d?String(d):"",t instanceof l&&function(e,t,r){r.subscribe(e,function(){var n=r.resolve(e);t.textContent=null!=n?String(n):""})}(f,e,t)}var v=e.getAttribute("xh-html");if(null!=v){var p=t.resolve(v);e.innerHTML=null!=p?String(p):"",t instanceof l&&function(e,t,r){r.subscribe(e,function(){var n=r.resolve(e);t.innerHTML=null!=n?String(n):""})}(v,e,t)}for(var x=e.attributes,m=x.length-1;m>=0;m--){var g=x[m].name;if(0===g.indexOf("xh-attr-")){var b=g.slice(8),y=t.resolve(x[m].value);null!=y&&e.setAttribute(b,String(y)),t instanceof l&&function(e,t,r,n){n.subscribe(e,function(){var a=n.resolve(e);null!=a&&r.setAttribute(t,String(a))})}(x[m].value,b,e,t)}}var A=e.getAttribute("xh-model");if(null!=A){var w=t.resolve(A),S=e.tagName.toLowerCase(),C=(e.getAttribute("type")||"").toLowerCase();if("select"===S)for(var L=e.options,q=0;q<L.length;q++)L[q].selected=L[q].value===w;else"checkbox"===C?e.checked=!!w:"radio"===C?e.checked=e.value===w:e.value=null!=w?String(w):"";t instanceof l&&function(e,t,r){var n="checkbox"===C||"radio"===C||"select"===S?"change":"input";t.addEventListener(n,function(){var n;n="checkbox"===C?t.checked:t.value,r.set(e,n)})}(A,e,t)}for(var T=x.length-1;T>=0;T--){var E=x[T].name;if(0===E.indexOf("xh-class-")){var N=E.slice(9);t.resolve(x[T].value)?e.classList.add(N):e.classList.remove(N),t instanceof l&&function(e,t,r,n){n.subscribe(e,function(){n.resolve(e)?r.classList.add(t):r.classList.remove(t)})}(x[T].value,N,e,t)}}for(var _=0;_<U.length;_++){var k=U[_],O=e.getAttribute(k.name);null!=O&&k.handler(e,O,t)}return!0}function p(t,r){var n=t.getAttribute("xh-each");if(null==n)return!1;var a=r.resolve(n);if(!Array.isArray(a))return e.debug&&console.warn("[xhtmlx] xh-each: '"+n+"' did not resolve to an array"),t.remove(),!0;var i=t.parentNode;if(!i)return!0;t.removeAttribute("xh-each");var s=document.createDocumentFragment(),u=function(e,n){var a=t.cloneNode(!0);a.setAttribute("data-xh-each-item","");var i=new(r instanceof l?l:o)(e,r,n);v(a,i),x(a,i),z(a,i),s.appendChild(a)};if(a.length>e.batchThreshold)for(var c=0;c<a.length;c++)u(a[c],c);else for(var h=0;h<a.length;h++)u(a[h],h);return i.insertBefore(s,t),i.removeChild(t),!0}function x(e,t){for(var r=Array.prototype.slice.call(e.querySelectorAll("*")),n=0;n<r.length;n++){var a=r[n];a.parentNode&&(a.hasAttribute("xh-each")?p(a,t):v(a,t))}}function m(e){var t=e.tagName.toLowerCase();return"form"===t?"submit":"input"===t||"select"===t||"textarea"===t?"change":"click"}function g(e){if(!e||!e.trim())return[];for(var t=e.split(","),r=[],n=0;n<t.length;n++){var a=t[n].trim().split(/\s+/);if(0!==a.length&&""!==a[0]){var o={event:a[0],delay:0,throttle:0,once:!1,changed:!1,from:null,interval:0};if("every"===o.event&&a.length>=2){var i=a[1].match(/^(\d+)(s|ms)$/);i&&(o.interval="s"===i[2]?1e3*parseInt(i[1]):parseInt(i[1]),o.event="every",a=a.slice(2))}else a=a.slice(1);for(var l=0;l<a.length;l++){var s=a[l];"once"===s?o.once=!0:"changed"===s?o.changed=!0:0===s.indexOf("delay:")?o.delay=b(s.slice(6)):0===s.indexOf("throttle:")?o.throttle=b(s.slice(9)):0===s.indexOf("from:")&&(o.from=s.slice(5))}r.push(o)}}return r}function b(e){var t=e.match(/^(\d+)(ms|s)$/);return t?"s"===t[2]?1e3*parseInt(t[1]):parseInt(t[1]):0}function y(e,t){var r={},n="form"===e.tagName.toLowerCase()?e:e.closest("form");n&&new FormData(n).forEach(function(e,t){r[t]=e});var a=e.getAttribute("xh-vals");if(a)try{var o=u(a,t,!1),i=JSON.parse(o);for(var l in i)i.hasOwnProperty(l)&&(r[l]=i[l])}catch(e){console.error("[xhtmlx] invalid JSON in xh-vals:",a,e)}for(var s=(n||e.closest("[xh-get],[xh-post],[xh-put],[xh-patch],[xh-delete]")||e).querySelectorAll("[xh-model]"),c=0;c<s.length;c++){var h=s[c],f=h.getAttribute("xh-model"),d=(h.tagName.toLowerCase(),(h.getAttribute("type")||"").toLowerCase());"checkbox"===d?r[f]=h.checked:"radio"===d?h.checked&&(r[f]=h.value):r[f]=h.value}return JSON.stringify(r)}function A(t){var r=t.getAttribute("xh-indicator");if(r){var n=document.querySelector(r);n&&n.classList.add(e.requestClass)}}function w(t){var r=t.getAttribute("xh-indicator");if(r){var n=document.querySelector(r);n&&n.classList.remove(e.requestClass)}}function S(e,t,r,n){var a=new CustomEvent(t,{bubbles:!0,cancelable:!!n,detail:r||{}});return e.dispatchEvent(a)}function C(t,r){var n=t.getAttribute("xh-error-template-"+r);if(n)return n;var a=Math.floor(r/100)+"xx",o=t.getAttribute("xh-error-template-"+a);if(o)return o;var i=t.getAttribute("xh-error-template");if(i)return i;var l=L(t,r);return l?l.template:e.defaultErrorTemplate?e.defaultErrorTemplate:null}function L(e,t){for(var r=e.parentElement;r;){if(r.hasAttribute("xh-error-boundary")){var n=Math.floor(t/100)+"xx",a=r.getAttribute("xh-error-template-"+t)||r.getAttribute("xh-error-template-"+n)||r.getAttribute("xh-error-template");if(a)return{template:a,boundaryEl:r}}r=r.parentElement}return null}function q(t,r,n){var a;if(r){if(a=t.getAttribute("xh-error-target")){var o=document.querySelector(a);if(o)return o}if(n){var i=L(t,n);if(i){var l=i.boundaryEl.getAttribute("xh-error-target");if(l){var s=document.querySelector(l);if(s)return s}return i.boundaryEl}}if(e.defaultErrorTarget){var u=document.querySelector(e.defaultErrorTarget);if(u)return u}if(a=t.getAttribute("xh-target")){var c=document.querySelector(a);if(c)return c}}else if(a=t.getAttribute("xh-target")){var h=document.querySelector(a);if(h)return h;e.debug&&console.warn("[xhtmlx] target not found:",a)}return t}function T(e,t){for(var r=e.querySelectorAll("*"),n=0;n<r.length;n++)E(r[n]);t&&E(e)}function E(e){var r=t.get(e);if(r){if(r.intervalIds)for(var n=0;n<r.intervalIds.length;n++)clearInterval(r.intervalIds[n]);if(r.observers)for(var a=0;a<r.observers.length;a++)r.observers[a].disconnect();r.ws&&(r.ws.close(1e3),r.ws=null)}}function N(e,t,r){switch(r){case"innerHTML":return T(e,!1),e.innerHTML="",e.appendChild(t),e;case"outerHTML":T(e,!0);var n=document.createComment("xhtmlx-swap");e.parentNode.insertBefore(n,e),e.parentNode.removeChild(e);var a=document.createElement("div");a.appendChild(t);for(var o=Array.prototype.slice.call(a.childNodes),i=0;i<o.length;i++)n.parentNode.insertBefore(o[i],n);return n.parentNode.removeChild(n),1===o.length&&1===o[0].nodeType?o[0]:null;case"beforeend":return e.appendChild(t),e;case"afterbegin":return e.insertBefore(t,e.firstChild),e;case"beforebegin":return e.parentNode.insertBefore(t,e),e.parentNode;case"afterend":return e.parentNode.insertBefore(t,e.nextSibling),e.parentNode;case"delete":return T(e,!0),e.remove(),null;case"none":return null;default:return console.warn("[xhtmlx] unknown swap mode:",r),T(e,!1),e.innerHTML="",e.appendChild(t),e}}function _(e,t){var r=document.createElement("template");r.innerHTML=e;var n=document.importNode(r.content,!0),a=document.createElement("div");a.appendChild(n),function(e,t){for(var r=document.createTreeWalker(e,4),n=[];r.nextNode();)n.push(r.currentNode);for(var a=0;a<n.length;a++){var o=n[a];s.test(o.nodeValue)&&(o.nodeValue=u(o.nodeValue,t,!1))}for(var i=e.querySelectorAll("*"),l=0;l<i.length;l++)for(var c=i[l].attributes,h=0;h<c.length;h++)0!==c[h].name.indexOf("xh-")&&s.test(c[h].value)&&(c[h].value=u(c[h].value,t,!1))}(a,t);for(var o=Array.prototype.slice.call(a.querySelectorAll("[xh-each]")),i=0;i<o.length;i++)if(o[i].parentNode){for(var l=!1,c=o[i].parentNode;c&&c!==a;){if(c.hasAttribute&&c.hasAttribute("xh-each")){l=!0;break}c=c.parentNode}l||p(o[i],t)}for(var h=Array.prototype.slice.call(a.querySelectorAll("*")),f=0;f<h.length;f++)h[f].parentNode&&(h[f].hasAttribute("xh-each")||d(h[f])||h[f].hasAttribute("data-xh-each-item")||h[f].closest("[data-xh-each-item]")||v(h[f],t));for(var x=document.createDocumentFragment();a.firstChild;)x.appendChild(a.firstChild);return x}function k(e){if(e){var t=e.querySelectorAll?Array.prototype.slice.call(e.querySelectorAll("*")):[];e.classList&&t.unshift(e);for(var r=0;r<t.length;r++)t[r].classList&&t[r].classList.add("xh-added");requestAnimationFrame(function(){requestAnimationFrame(function(){for(var e=0;e<t.length;e++)t[e].classList&&(t[e].classList.remove("xh-added"),t[e].classList.add("xh-settled"))})})}}function O(e,t,r,n,a,o){return fetch(e,t).then(function(i){return!i.ok&&i.status>=500&&a<r?(S(o,"xh:retry",{attempt:a+1,maxRetries:r,status:i.status},!1),new Promise(function(i){setTimeout(function(){i(O(e,t,r,n,a+1,o))},n*Math.pow(2,a))})):i}).catch(function(i){if(a<r)return S(o,"xh:retry",{attempt:a+1,maxRetries:r,error:i.message},!1),new Promise(function(i){setTimeout(function(){i(O(e,t,r,n,a+1,o))},n*Math.pow(2,a))});throw i})}function M(e){for(var t=("form"===e.tagName.toLowerCase()?e:e.closest("form")||e).querySelectorAll("[xh-validate]"),r=[],n=0;n<t.length;n++){for(var a=t[n],o=a.getAttribute("xh-validate").split(" "),i=a.value||"",l=a.getAttribute("name")||a.getAttribute("xh-model")||"field",s=a.getAttribute("xh-validate-message"),u=a.getAttribute("xh-validate-class")||"xh-invalid",c=a.getAttribute("xh-validate-target"),h=null,f=0;f<o.length;f++){"required"!==o[f]||i.trim()||(h=s||l+" is required")}var d=a.getAttribute("xh-validate-pattern");d&&i&&!new RegExp(d).test(i)&&(h=s||l+" format is invalid");var v=a.getAttribute("xh-validate-min"),p=a.getAttribute("xh-validate-max");null!=v&&Number(i)<Number(v)&&(h=s||l+" must be at least "+v),null!=p&&Number(i)>Number(p)&&(h=s||l+" must be at most "+p);var x=a.getAttribute("xh-validate-minlength"),m=a.getAttribute("xh-validate-maxlength");if(null!=x&&i.length<Number(x)&&(h=s||l+" must be at least "+x+" characters"),null!=m&&i.length>Number(m)&&(h=s||l+" must be at most "+m+" characters"),h){if(a.classList.add(u),c){var g=document.querySelector(c);g&&(g.textContent=h)}r.push({field:l,message:h,element:a})}else if(a.classList.remove(u),c){var b=document.querySelector(c);b&&(b.textContent="")}}return!(r.length>0)||(S(e,"xh:validationError",{errors:r},!1),!1)}function I(r,o,i){var s=d(r);if(s){var c=(n.get(r)||0)+1;n.set(r,c);var f=t.get(r);if(f&&f.requestInFlight)e.debug&&console.warn("[xhtmlx] request already in-flight, skipping");else{f&&(f.requestInFlight=!0);var p=u(s.url,o,!0);e.apiPrefix&&-1===p.indexOf("://")&&(p=e.apiPrefix+p);var m={method:s.verb,headers:{}},g=function(e,t){var r={},n=e.getAttribute("xh-headers");if(n)try{var a=u(n,t,!1);r=JSON.parse(a)}catch(e){console.error("[xhtmlx] invalid JSON in xh-headers:",n,e)}return r}(r,o);for(var b in g)g.hasOwnProperty(b)&&(m.headers[b]=g[b]);if("POST"!==s.verb&&"PUT"!==s.verb&&"PATCH"!==s.verb||(m.headers["Content-Type"]=m.headers["Content-Type"]||"application/json",m.body=y(r,o)),K("beforeRequest",{url:p,method:s.verb,headers:m.headers,element:r}))if(S(r,"xh:beforeRequest",{url:p,method:s.verb,headers:m.headers},!0))if(M(r)){A(r);var C=q(r,!1);C&&C.setAttribute("aria-busy","true");var L=r.getAttribute("xh-disabled-class");L&&(r.classList.add(L),r.setAttribute("aria-disabled","true"));var T=r.getAttribute("xh-cache"),E=s.verb+":"+p;if(T&&"GET"===s.verb){var I=a.get(E);if(I){if(Date.now()-I.timestamp<("forever"===T?1/0:1e3*parseInt(T,10)))return void R({ok:!0,status:200,statusText:"OK (cached)",text:function(){return Promise.resolve(I.data)}});a.delete(E)}}var H=r.getAttribute("xh-retry"),F=H?parseInt(H,10):0,J=r.getAttribute("xh-retry-delay"),D=J?parseInt(J,10):1e3;(F>0?O(p,m,F,D,0,r):fetch(p,m)).then(R).catch(function(e){console.error("[xhtmlx] request failed:",p,e),P(r,o,0,"Network Error",e.message,i)}).finally(function(){w(r),C&&C.removeAttribute("aria-busy"),L&&(r.classList.remove(L),r.removeAttribute("aria-disabled")),f&&(f.requestInFlight=!1)})}else f&&(f.requestInFlight=!1);else f&&(f.requestInFlight=!1);else f&&(f.requestInFlight=!1)}}function R(t){if(S(r,"xh:afterRequest",{url:p,status:t.status},!1),n.get(r)===c)return t.ok?t.text().then(function(n){var c;if(""===n.trim())c={};else try{c=JSON.parse(n)}catch(e){return console.error("[xhtmlx] invalid JSON response from",p,e),void P(r,o,t.status,"Invalid JSON",n,i)}T&&"GET"===s.verb&&n&&a.set(E,{data:n,timestamp:Date.now()});var d=new l(c,o);return h(r,i).then(function(t){var n=r.getAttribute("xh-swap")||e.defaultSwapMode,a=q(r,!1);if(null!==t.html){var o=_(t.html,d);if(!S(r,"xh:beforeSwap",{target:a,fragment:o,swapMode:n},!0))return;var i=N(a,o,n);k(i),i&&z(i,d,t.templateStack),S(r,"xh:afterSwap",{target:a},!1);var l=r.getAttribute("xh-focus");if(l&&"auto"!==l){var c=document.querySelector(l);c&&c.focus()}else if("auto"===l&&i){var h=i.querySelector("a, button, input, select, textarea, [tabindex]");h&&h.focus()}}else v(r,d),x(r,d),S(r,"xh:afterSwap",{target:r},!1);var m=r.getAttribute("xh-push-url");if(m){var g="true"===m?p:u(m,d,!1),b={xhtmlx:!0,url:s.url,verb:s.verb,targetSel:r.getAttribute("xh-target"),templateUrl:r.getAttribute("xh-template")};history.pushState(b,"",g)}var y=r.getAttribute("xh-replace-url");if(y){var A="true"===y?p:u(y,d,!1);history.replaceState({xhtmlx:!0},"",A)}f&&(f.dataContext=d,f.templateUrl=r.getAttribute("xh-template"),f.apiUrl=s.url,f.apiVerb=s.verb)})}):t.text().then(function(e){var n;try{n=JSON.parse(e)}catch(t){n=e}P(r,o,t.status,t.statusText,n,i)});e.debug&&console.warn("[xhtmlx] discarding stale response for",p)}}function P(t,r,n,a,i,l){var s={status:n,statusText:a,body:i},u=new o(s,r);S(t,"xh:responseError",s,!1);var h=C(t,n);h?c(h).then(function(r){var a=_(r,u),o=q(t,!0,n),i=t.getAttribute("xh-swap")||e.defaultSwapMode;if(S(t,"xh:beforeSwap",{target:o,fragment:a,swapMode:i,isError:!0},!0)){var s=N(o,a,i);k(s),s&&z(s,u,l),o.setAttribute("role","alert"),t.classList.add(e.errorClass),S(t,"xh:afterSwap",{target:o,isError:!0},!1)}}).catch(function(r){console.error("[xhtmlx] error template fetch failed:",r),t.classList.add(e.errorClass)}):t.classList.add(e.errorClass)}function H(t,r,n,a,o){if("load"!==a.event)if("every"===a.event&&a.interval>0){var i=setInterval(function(){I(t,r,n)},a.interval);o.intervalIds.push(i)}else{if("revealed"===a.event){var l=new IntersectionObserver(function(e){for(var o=0;o<e.length;o++)e[o].isIntersecting&&(I(t,r,n),a.once&&l.disconnect())},{threshold:.1});return l.observe(t),void o.observers.push(l)}var s=t;if(a.from){var u=document.querySelector(a.from);u?s=u:e.debug&&console.warn("[xhtmlx] from: selector not found:",a.from)}var c=function(e,t,r,n){var a=void 0,o=null,i=null,l=!1;return function(s){if("submit"===n.event&&s.preventDefault(),n.changed){var u,c=s.target||e;if((u="value"in c?c.value:c.textContent)===a)return;a=u}var h=function(){I(e,t,r)};return n.delay>0?(o&&clearTimeout(o),void(o=setTimeout(h,n.delay))):n.throttle>0?i?void(l=!0):(h(),void(i=setTimeout(function(){i=null,l&&(l=!1,h())},n.throttle))):void h()}}(t,r,n,a),h=!!a.once&&{once:!0};s.addEventListener(a.event,c,h)}else I(t,r,n)}function F(r,n,a){var i=r.getAttribute("xh-ws");if(i){var l;try{l=new WebSocket(i)}catch(e){return void console.error("[xhtmlx] WebSocket connection failed:",i,e)}var s=t.get(r)||{};s.ws=l,t.set(r,s),l.addEventListener("message",function(t){var i;try{i=JSON.parse(t.data)}catch(r){return void(e.debug&&console.warn("[xhtmlx] WebSocket message is not JSON:",t.data))}var l=new o(i,n);h(r,a).then(function(t){if(null!==t.html){var n=r.getAttribute("xh-swap")||e.defaultSwapMode,a=q(r,!1),o=_(t.html,l);if(!S(r,"xh:beforeSwap",{target:a,fragment:o,swapMode:n},!0))return;var i=N(a,o,n);i&&z(i,l,t.templateStack),S(r,"xh:afterSwap",{target:a},!1)}else v(r,l),x(r,l)})}),l.addEventListener("open",function(){S(r,"xh:wsOpen",{url:i},!1)}),l.addEventListener("close",function(e){S(r,"xh:wsClose",{code:e.code,reason:e.reason},!1),1e3!==e.code&&setTimeout(function(){r.parentNode&&F(r,n,a)},3e3)}),l.addEventListener("error",function(){S(r,"xh:wsError",{url:i},!1)})}}function J(e){var r=e.getAttribute("xh-ws-send");r&&e.addEventListener("form"===e.tagName.toLowerCase()?"submit":"click",function(n){n.preventDefault();var a=document.querySelector(r);if(a){var o=t.get(a);if(o&&o.ws&&1===o.ws.readyState){var i={},l="form"===e.tagName.toLowerCase()?e:e.closest("form");l&&new FormData(l).forEach(function(e,t){i[t]=e});var s=e.getAttribute("xh-vals");if(s)try{var u=JSON.parse(s);for(var c in u)u.hasOwnProperty(c)&&(i[c]=u[c])}catch(e){}o.ws.send(JSON.stringify(i))}}})}function D(e,t){for(var r=e.querySelectorAll("a[href]"),n=0;n<r.length;n++)r[n].hasAttribute("xh-get")||r[n].hasAttribute("data-xh-boosted")||R(r[n],t);for(var a=e.querySelectorAll("form[action]"),o=0;o<a.length;o++)d(a[o])||a[o].hasAttribute("data-xh-boosted")||B(a[o],t)}function R(e,t){var r=e.getAttribute("href");r&&0!==r.indexOf("#")&&0!==r.indexOf("javascript:")&&0!==r.indexOf("mailto:")&&"_blank"!==e.getAttribute("target")&&(e.setAttribute("data-xh-boosted",""),e.addEventListener("click",function(n){n.preventDefault();var a=e.closest("[xh-boost]"),i=a.getAttribute("xh-boost-target")||"#xh-boost-content",l=document.querySelector(i);l||(l=document.body),A(a),fetch(r).then(function(e){return e.text()}).then(function(e){var r;try{r=JSON.parse(e)}catch(r){return l.innerHTML=e,void z(l,t,[])}var n=new o(r,t),i=a.getAttribute("xh-boost-template");i?c(i).then(function(e){var t=_(e,n);l.innerHTML="",l.appendChild(t),z(l,n,[])}):(v(l,n),x(l,n))}).finally(function(){w(a)}),"undefined"!=typeof history&&history.pushState&&history.pushState({xhtmlx:!0,url:r},"",r)}))}function B(e,t){var r=e.getAttribute("action"),n=(e.getAttribute("method")||"GET").toUpperCase();r&&(e.setAttribute("data-xh-boosted",""),e.addEventListener("submit",function(a){a.preventDefault();var i={};new FormData(e).forEach(function(e,t){i[t]=e});var l={method:n,headers:{}};"GET"!==n&&(l.headers["Content-Type"]="application/json",l.body=JSON.stringify(i));var s=e.closest("[xh-boost]"),u=s.getAttribute("xh-boost-target")||"#xh-boost-content",h=document.querySelector(u);h||(h=e),fetch(r,l).then(function(e){return e.text()}).then(function(e){var r;try{r=JSON.parse(e)}catch(e){return}var n=new o(r,t),a=s.getAttribute("xh-boost-template");a&&c(a).then(function(e){var t=_(e,n);h.innerHTML="",h.appendChild(t),z(h,n,[])})})}))}var U=[],j={},V={};function W(e,t){U.push({name:e,handler:t})}function $(e,t){j[e]||(j[e]=[]),j[e].push(t)}function G(e,t){V[e]=t}function K(e,t){var r=j[e];if(!r)return!0;for(var n=0;n<r.length;n++){if(!1===r[n](t))return!1}return!0}function z(e,r,n){if(n=n||[],e&&1===e.nodeType){Y(e,r,n);for(var a=Q(e),o=0;o<a.length;o++){var i=a[o],l=t.get(i);l&&l.processed||i.parentNode&&Y(i,r,n)}}}function Q(e){var t,r=[];try{t=e.querySelectorAll(["[xh-get]","[xh-post]","[xh-put]","[xh-delete]","[xh-patch]","[xh-text]","[xh-html]","[xh-each]","[xh-if]","[xh-unless]","[xh-trigger]","[xh-template]","[xh-target]","[xh-swap]","[xh-indicator]","[xh-vals]","[xh-headers]","[xh-error-template]","[xh-error-target]","[xh-model]","[xh-show]","[xh-hide]","[xh-disabled-class]","[xh-push-url]","[xh-replace-url]","[xh-cache]","[xh-retry]","[xh-ws]","[xh-ws-send]","[xh-boost]","[xh-validate]","[xh-i18n]","[xh-router]","[xh-route]","[xh-focus]","[xh-aria-live]"].join(","))}catch(r){t=e.querySelectorAll("*")}for(var n=new Set,a=0;a<t.length;a++)n.has(t[a])||(n.add(t[a]),r.push(t[a]));for(var o=e.querySelectorAll("*"),i=0;i<o.length;i++)if(!n.has(o[i]))for(var l=o[i].attributes,s=0;s<l.length;s++)if(0===l[s].name.indexOf("xh-attr-")||0===l[s].name.indexOf("xh-error-template-")||0===l[s].name.indexOf("xh-class-")||0===l[s].name.indexOf("xh-on-")||0===l[s].name.indexOf("xh-i18n-")){r.push(o[i]),n.add(o[i]);break}return r}function X(t,r,n){t.addEventListener(r,function(r){var a=n.split(":"),o=a[0],i=a.slice(1).join(":");switch(o){case"toggleClass":t.classList.toggle(i);break;case"addClass":t.classList.add(i);break;case"removeClass":t.classList.remove(i);break;case"remove":t.remove();break;case"toggle":var l=document.querySelector(i);l&&(l.style.display="none"===l.style.display?"":"none");break;case"dispatch":t.dispatchEvent(new CustomEvent(i,{bubbles:!0,detail:{}}));break;default:e.debug&&console.warn("[xhtmlx] unknown xh-on action:",o)}})}function Y(e,r,n){var a=t.get(e);if(!a||!a.processed){for(var o=[],i=0;i<e.attributes.length;i++)0===e.attributes[i].name.indexOf("xh-on-")&&o.push({event:e.attributes[i].name.slice(6),action:e.attributes[i].value});for(var l=0;l<o.length;l++)X(e,o[l].event,o[l].action);if((e.hasAttribute("xh-i18n")||function(e){if(!e.attributes)return!1;for(var t=0;t<e.attributes.length;t++){var r=e.attributes[t].name;if(0===r.indexOf("xh-i18n-")&&"xh-i18n-vars"!==r)return!0}return!1}(e))&&ne(e),e.hasAttribute("xh-ws")){F(e,r,n);var s=t.get(e)||{};s.processed=!0,t.set(e,s)}if(e.hasAttribute("xh-ws-send")&&J(e),e.hasAttribute("xh-boost")){D(e,r);var u=t.get(e)||{};u.processed=!0,t.set(e,u)}var c=e.getAttribute("xh-target");if(c){var h=document.querySelector(c);if(h&&!h.hasAttribute("aria-live")){var f=e.getAttribute("xh-aria-live")||"polite";h.setAttribute("aria-live",f)}}if(d(e)){var x=a||{};x.dataContext=r,x.requestInFlight=!1,x.intervalIds=x.intervalIds||[],x.observers=x.observers||[],t.set(e,x),function(e,r,n){var a,o=e.getAttribute("xh-trigger");a=o?g(o):[{event:m(e),delay:0,throttle:0,once:!1,changed:!1,from:null,interval:0}];var i=t.get(e)||{};i.triggerSpecs=a,i.intervalIds=i.intervalIds||[],i.observers=i.observers||[],i.processed=!0,t.set(e,i);for(var l=0;l<a.length;l++)H(e,r,n,a[l],i)}(e,r,n)}else{if(e.hasAttribute("xh-each"))p(e,r);else if(v(e,r)){var b=t.get(e)||{};b.processed=!0,t.set(e,b)}}}}var Z=null;function ee(e){if(te(e))return!0;for(var t=e.querySelectorAll?e.querySelectorAll("*"):[],r=0;r<t.length;r++)if(te(t[r]))return!0;return!1}function te(e){if(!e.attributes)return!1;for(var t=0;t<e.attributes.length;t++)if(0===e.attributes[t].name.indexOf("xh-"))return!0;return!1}var re={_locales:{},_locale:null,_fallback:"en",load:function(e,t){for(var r in re._locales[e]=re._locales[e]||{},t)t.hasOwnProperty(r)&&(re._locales[e][r]=t[r])},get locale(){return re._locale||re._fallback},set locale(e){re._locale=e,"undefined"!=typeof document&&(ne(document.body),S(document.body,"xh:localeChanged",{locale:e},!1))},t:function(e,t){for(var r=[re._locale,re._fallback],n=0;n<r.length;n++)if(r[n]){var a=re._locales[r[n]];if(a&&null!=a[e]){var o=String(a[e]);if(t)for(var i in t)t.hasOwnProperty(i)&&(o=o.replace(new RegExp("\\{"+i+"\\}","g"),t[i]));return o}}return e}};function ne(e){for(var t=e.querySelectorAll("[xh-i18n]"),r=0;r<t.length;r++){var n=t[r].getAttribute("xh-i18n"),a=t[r].getAttribute("xh-i18n-vars"),o=null;if(a)try{o=JSON.parse(a)}catch(e){}t[r].textContent=re.t(n,o)}for(var i=e.querySelectorAll("*"),l=0;l<i.length;l++)for(var s=i[l].attributes,u=0;u<s.length;u++){var c=s[u].name;if(0===c.indexOf("xh-i18n-")&&"xh-i18n-vars"!==c){var h=c.slice(8),f=s[u].value;i[l].setAttribute(h,re.t(f))}}}var ae={_routes:[],_outlet:null,_activeLink:null,_activeClass:"xh-route-active",_notFoundTemplate:null,_init:function(){if("undefined"!=typeof document){for(var e=document.querySelectorAll("[xh-router]"),t=0;t<e.length;t++){var r=e[t].getAttribute("xh-router-outlet")||"#router-outlet";ae._outlet=document.querySelector(r);for(var n=e[t].querySelectorAll("[xh-route]"),a=0;a<n.length;a++){var o=n[a],i={path:o.getAttribute("xh-route"),template:o.getAttribute("xh-template"),api:o.getAttribute("xh-get"),element:o,regex:null,paramNames:[]},l=[],s=i.path.replace(/:([^/]+)/g,function(e,t){return l.push(t),"([^/]+)"});i.regex=new RegExp("^"+s+"$"),i.paramNames=l,ae._routes.push(i),function(e){e.element.addEventListener("click",function(t){t.preventDefault(),ae.navigate(e.path)})}(i)}var u=e[t].getAttribute("xh-router-404");u&&(ae._notFoundTemplate=u)}window.addEventListener("popstate",function(){ae._resolve(window.location.pathname)}),ae._routes.length>0&&ae._resolve(window.location.pathname)}},navigate:function(e){history.pushState({xhtmlx:!0,route:e},"",e),ae._resolve(e)},_resolve:function(e){if(ae._outlet){for(var t=0;t<ae._routes.length;t++){var r=ae._routes[t],n=e.match(r.regex);if(n){for(var a={},i=0;i<r.paramNames.length;i++)a[r.paramNames[i]]=n[i+1];ae._activeLink&&ae._activeLink.classList.remove(ae._activeClass),r.element.classList.add(ae._activeClass),ae._activeLink=r.element;var l=new o(a);if(r.api){var s=u(r.api,l,!0);fetch(s).then(function(e){return e.text()}).then(function(e){var t;try{t=JSON.parse(e)}catch(e){t={}}var n=new o(t,l);r.template&&c(r.template).then(function(e){var t=_(e,n);ae._outlet.innerHTML="",ae._outlet.appendChild(t),z(ae._outlet,n,[])})})}else r.template&&c(r.template).then(function(e){var t=_(e,l);ae._outlet.innerHTML="",ae._outlet.appendChild(t),z(ae._outlet,l,[])});return void S(ae._outlet,"xh:routeChanged",{path:e,params:a},!1)}}if(ae._notFoundTemplate){var h=new o({path:e});c(ae._notFoundTemplate).then(function(e){var t=_(e,h);ae._outlet.innerHTML="",ae._outlet.appendChild(t)})}S(document.body,"xh:routeNotFound",{path:e},!1)}}},oe={config:e,process:function(e,t){z(e||document.body,t||new o({}),[])},createContext:function(e,t,r){return new o(e,t,r)},clearTemplateCache:function(){r.clear()},clearResponseCache:function(){a.clear()},interpolate:function(e,t,r){return u(e,t,!!r)},directive:W,hook:$,transform:G,switchVersion:function(t,n){n=n||{},e.uiVersion=t,e.templatePrefix=null!=n.templatePrefix?n.templatePrefix:"/ui/"+t,e.apiPrefix=null!=n.apiPrefix?n.apiPrefix:e.apiPrefix,r.clear(),a.clear(),"undefined"!=typeof document&&S(document.body,"xh:versionChanged",{version:t,templatePrefix:e.templatePrefix,apiPrefix:e.apiPrefix},!1),!1!==n.reload&&this.reload()},reload:function(e){if("undefined"!=typeof document)for(var r=Q(document.body),n=0;n<r.length;n++){var a=r[n],i=t.get(a);if(i&&i.apiUrl)if(!e||i.templateUrl===e)if(i.processed=!1,t.set(a,i),d(a))I(a,i.dataContext||new o({}),[])}},i18n:re,router:ae,version:"0.2.0",_internals:{DataContext:o,MutableDataContext:l,interpolate:u,parseTrigger:g,parseTimeValue:b,renderTemplate:_,applyBindings:v,processEach:p,processBindingsInTree:x,processElement:Y,attachOnHandler:X,executeRequest:I,resolveErrorTemplate:C,findErrorBoundary:L,getRestVerb:d,performSwap:N,buildRequestBody:y,fetchTemplate:c,resolveTemplate:h,getSwapTarget:q,defaultTrigger:m,resolveDot:i,templateCache:r,responseCache:a,elementStates:t,generationMap:n,fetchWithRetry:O,applySettleClasses:k,setupWebSocket:F,setupWsSend:J,boostElement:D,boostLink:R,boostForm:B,customDirectives:U,globalHooks:j,transforms:V,runHooks:K,registerDirective:W,registerHook:$,registerTransform:G,config:e,validateElement:M,applyI18n:ne,i18n:re,router:ae}};"undefined"!=typeof window&&(window.xhtmlx=oe),"undefined"!=typeof module&&module.exports&&(module.exports=oe),"undefined"!=typeof document&&document.addEventListener&&document.addEventListener("DOMContentLoaded",function(){!function(){var e="xhtmlx-default-css";if(!document.getElementById(e)){var t=document.createElement("style");t.id=e,t.textContent=".xh-indicator { opacity: 0; transition: opacity 200ms ease-in; }\n.xh-request .xh-indicator, .xh-request.xh-indicator { opacity: 1; }\n.xh-added { }\n.xh-settled { }\n.xh-invalid { border-color: #ef4444; }\n",document.head.appendChild(t)}}();var e,t=new o({});z(document.body,t,[]),e=t,Z||(Z=new MutationObserver(function(t){for(var r=0;r<t.length;r++)for(var n=t[r].addedNodes,a=0;a<n.length;a++){var o=n[a];1===o.nodeType&&ee(o)&&z(o,e,[])}})).observe(document.body,{childList:!0,subtree:!0}),ae._init()}),"undefined"!=typeof window&&window.addEventListener("popstate",function(e){if(e.state&&e.state.xhtmlx&&e.state.url){var t=e.state.targetSel?document.querySelector(e.state.targetSel):document.body;t&&fetch(e.state.url).then(function(e){return e.text()}).then(function(r){var n;try{n=JSON.parse(r)}catch(e){return}var a=new o(n);e.state.templateUrl&&c(e.state.templateUrl).then(function(e){var r=_(e,a);t.innerHTML="",t.appendChild(r),z(t,a,[])})}).catch(function(){})}})}();
2
+ //# sourceMappingURL=xhtmlx.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xhtmlx.min.js.map","names":["config","debug","defaultSwapMode","indicatorClass","requestClass","errorClass","batchThreshold","defaultErrorTemplate","defaultErrorTarget","templatePrefix","apiPrefix","uiVersion","elementStates","WeakMap","templateCache","Map","generationMap","responseCache","DataContext","data","parent","index","this","resolveDot","obj","parts","cur","i","length","MutableDataContext","call","_subscribers","prototype","resolve","path","indexOf","pipeParts","split","rawValue","trim","p","transformName","transforms","slice","join","root","value","undefined","Object","create","constructor","set","_notify","subscribe","callback","push","subs","INTERP_RE","interpolate","str","ctx","uriEnc","replace","_match","val","console","warn","s","String","encodeURIComponent","fetchTemplate","url","fetchUrl","has","get","promise","fetch","then","res","ok","Error","status","text","resolveTemplate","el","templateStack","getAttribute","error","Promise","reject","newStack","concat","html","isExternal","tpl","querySelector","innerHTML","REST_VERBS","getRestVerb","verb","toUpperCase","applyBindings","field","element","context","showAttr","sval","style","display","newVal","hideAttr","hdval","ifAttr","remove","unlessAttr","textAttr","tv","textContent","htmlAttr","hv","attrs","attributes","aName","name","targetAttr","aval","setAttribute","tAttr","modelAttr","mv","tag","tagName","toLowerCase","type","options","selected","checked","eventName","addEventListener","newValue","c","cName","className","classList","add","clsName","cd","customDirectives","directive","cdVal","handler","processEach","eachAttr","arr","Array","isArray","parentNode","removeAttribute","fragment","document","createDocumentFragment","renderItem","item","idx","clone","cloneNode","itemCtx","processBindingsInTree","processNode","appendChild","j","insertBefore","removeChild","elements","querySelectorAll","hasAttribute","defaultTrigger","parseTrigger","raw","specs","tokens","spec","event","delay","throttle","once","changed","from","interval","match","parseInt","t","tok","parseTimeValue","m","buildRequestBody","body","form","closest","FormData","forEach","key","valsAttr","valsInterpolated","vals","JSON","parse","k","hasOwnProperty","e","modelInputs","mEl","mType","stringify","showIndicator","sel","ind","hideIndicator","emitEvent","detail","cancelable","evt","CustomEvent","bubbles","dispatchEvent","resolveErrorTemplate","exact","cls","Math","floor","classAttr","generic","boundary","findErrorBoundary","template","node","parentElement","tmpl","boundaryEl","getSwapTarget","isError","bTarget","bt","gt","xt","target","cleanupBeforeSwap","container","includeContainer","all","cleanupElement","state","intervalIds","clearInterval","observers","disconnect","ws","close","performSwap","mode","placeholder","createComment","wrapper","createElement","children","childNodes","nodeType","firstChild","nextSibling","renderTemplate","importNode","content","walker","createTreeWalker","textNodes","nextNode","currentNode","test","nodeValue","a","interpolateDOM","eachEls","isNested","check","allEls","resultFragment","applySettleClasses","processTarget","newEls","unshift","se","requestAnimationFrame","sf","fetchWithRetry","opts","retries","attempt","response","maxRetries","setTimeout","pow","catch","err","message","validateElement","fields","errors","rules","fieldName","customMsg","errorTarget","r","pattern","RegExp","min","max","Number","minlen","maxlen","tgt","tgt2","executeRequest","restInfo","gen","requestInFlight","fetchOpts","method","headers","customHeaders","hdrs","interpolated","parseHeaders","h","runHooks","ariaTarget","disabledClass","cacheAttr","cacheKey","cached","Date","now","timestamp","Infinity","processFetchResponse","statusText","delete","retryAttr","retryCount","retryDelayAttr","retryDelay","handleError","finally","bodyText","jsonData","childCtx","swapMode","focusEl","toFocus","focus","focusable","pushUrl","historyUrl","historyState","xhtmlx","targetSel","templateUrl","history","pushState","replaceUrl","rUrl","replaceState","dataContext","apiUrl","apiVerb","errorBody","_","errorData","errorCtx","errorTemplateUrl","attachSingleTrigger","intervalId","setInterval","observer","IntersectionObserver","entries","isIntersecting","threshold","observe","listenTarget","fromEl","lastValue","delayTimer","throttleTimer","throttlePending","preventDefault","currentValue","source","fire","clearTimeout","buildHandler","eventOptions","setupWebSocket","wsUrl","WebSocket","code","reason","setupWsSend","sendTarget","wsEl","wsState","readyState","v","parsed","send","boostElement","links","boostLink","forms","boostForm","link","href","boostContainer","boostTarget","action","globalHooks","registerDirective","registerHook","registerTransform","fn","hooks","processElement","candidates","gatherXhElements","existingState","processed","results","seen","Set","attachOnHandler","actionStr","_evt","arg","toggle","existing","onAttrs","oa","ob","checkElementForI18nAttr","applyI18n","wState","boostState","ariaLiveTarget","ariaLive","triggerAttr","triggerSpecs","attachTriggers","bState","mutationObserver","hasXhAttributes","checkElementForXh","i18n","_locales","_locale","_fallback","load","locale","translations","vars","locales","l","dict","els","parsedVars","attrKey","router","_routes","_outlet","_activeLink","_activeClass","_notFoundTemplate","_init","containers","outlet","route","api","regex","paramNames","regexStr","navigate","notFound","window","_resolve","location","pathname","params","ctx404","process","createContext","clearTemplateCache","clear","clearResponseCache","uriEncode","hook","transform","switchVersion","version","reload","st","_internals","module","exports","id","getElementById","head","injectDefaultCSS","rootCtx","MutationObserver","mutations","added","addedNodes","n","childList","subtree"],"sources":["xhtmlx.js"],"mappings":"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","ignoreList":[]}