-
Notifications
You must be signed in to change notification settings - Fork 51
Expand file tree
/
Copy pathasync.js
More file actions
1 lines (1 loc) · 6.39 KB
/
async.js
File metadata and controls
1 lines (1 loc) · 6.39 KB
1
self.uhtml=function(e){"use strict";const{isArray:t}=Array,n=(e,r)=>{const l=[];for(const{length:s}=e;r<s;r++)l.push(t(e[r])?n(e[r],0):e[r]);return Promise.all(l)};var r=e=>{function t(t,n){return e.apply(this,[t].concat(n))}return function(e){return n(arguments,1).then(t.bind(this,e))}},l=e=>({get:t=>e.get(t),set:(t,n)=>(e.set(t,n),n)});const s=/([^\s\\>"'=]+)\s*=\s*(['"]?)$/,o=/^(?:area|base|br|col|embed|hr|img|input|keygen|link|menuitem|meta|param|source|track|wbr)$/i,i=/<[a-z][^>]+$/i,a=/>[^<>]*$/,c=/<([a-z]+[a-z0-9:._-]*)([^>]*?)(\/>)/gi,u=/\s+$/,d=(e,t)=>0<t--&&(i.test(e[t])||!a.test(e[t])&&d(e,t)),p=(e,t,n)=>o.test(t)?e:`<${t}${n.replace(u,"")}></${t}>`;const{isArray:f}=Array,{indexOf:h,slice:m}=[],g=(e,t)=>111===e.nodeType?1/t<0?t?(({firstChild:e,lastChild:t})=>{const n=document.createRange();return n.setStartAfter(e),n.setEndAfter(t),n.deleteContents(),e})(e):e.lastChild:t?e.valueOf():e.firstChild:e;const y=e=>document.createElementNS("http://www.w3.org/1999/xhtml",e),v=(e,t,n)=>{const r=("svg"===t?b:w)(e);return n&&r.normalize(),r},w=e=>{const t=y("template");return t.innerHTML=e,t.content},b=e=>{const{content:t}=y("template"),n=y("div");n.innerHTML='<svg xmlns="http://www.w3.org/2000/svg">'+e+"</svg>";const{childNodes:r}=n.firstChild;let{length:l}=r;for(;l--;)t.appendChild(r[0]);return t},x=({childNodes:e},t)=>e[t],C=e=>{const t=[];let{parentNode:n}=e;for(;n;)t.push(h.call(n.childNodes,e)),n=(e=n).parentNode;return t},{createTreeWalker:N,importNode:$}=document,k=1!=$.length,A=k?(e,t,n)=>$.call(document,v(e,t,n),!0):v,E=k?e=>N.call(document,e,129,null,!1):e=>N.call(document,e,129),T=(e,t,n)=>((e,t,n,r,l)=>{const s=n.length;let o=t.length,i=s,a=0,c=0,u=null;for(;a<o||c<i;)if(o===a){const t=i<s?c?r(n[c-1],-0).nextSibling:r(n[i-c],0):l;for(;c<i;)e.insertBefore(r(n[c++],1),t)}else if(i===c)for(;a<o;)u&&u.has(t[a])||e.removeChild(r(t[a],-1)),a++;else if(t[a]===n[c])a++,c++;else if(t[o-1]===n[i-1])o--,i--;else if(t[a]===n[i-1]&&n[c]===t[o-1]){const l=r(t[--o],-1).nextSibling;e.insertBefore(r(n[c++],1),r(t[a++],-1).nextSibling),e.insertBefore(r(n[--i],1),l),t[o]=n[i]}else{if(!u){u=new Map;let e=c;for(;e<i;)u.set(n[e],e++)}if(u.has(t[a])){const l=u.get(t[a]);if(c<l&&l<i){let s=a,d=1;for(;++s<o&&s<i&&u.get(t[s])===l+d;)d++;if(d>l-c){const s=r(t[a],0);for(;c<l;)e.insertBefore(r(n[c++],1),s)}else e.replaceChild(r(n[c++],1),r(t[a++],-1))}else a++}else e.removeChild(r(t[a++],-1))}return n})(e.parentNode,t,n,g,e),M=(e,t)=>"ref"===t?(e=>t=>{"function"==typeof t?t(e):t.current=e})(e):"aria"===t?(e=>t=>{for(const n in t){const r="role"===n?n:`aria-${n}`,l=t[n];null==l?e.removeAttribute(r):e.setAttribute(r,l)}})(e):".dataset"===t?(({dataset:e})=>t=>{for(const n in t){const r=t[n];null==r?delete e[n]:e[n]=r}})(e):"."===t.slice(0,1)?((e,t)=>n=>{e[t]=n})(e,t.slice(1)):"on"===t.slice(0,2)?((e,t)=>{let n,r=t.slice(2);return!(t in e)&&t.toLowerCase()in e&&(r=r.toLowerCase()),t=>{const l=f(t)?t:[t,!1];n!==l[0]&&(n&&e.removeEventListener(r,n,l[1]),(n=l[0])&&e.addEventListener(r,n,l[1]))}})(e,t):((e,t)=>{let n,r=!0;const l=document.createAttributeNS(null,t);return t=>{n!==t&&(n=t,null==n?r||(e.removeAttributeNode(l),r=!0):(l.value=t,r&&(e.setAttributeNodeNS(l),r=!1)))}})(e,t);function O(e){const{type:t,path:n}=e,r=n.reduceRight(x,this);return"node"===t?(e=>{let t,n,r=[];const l=s=>{switch(typeof s){case"string":case"number":case"boolean":t!==s&&(t=s,n?n.textContent=s:n=document.createTextNode(s),r=T(e,r,[n]));break;case"object":case"undefined":if(null==s){t!=s&&(t=s,r=T(e,r,[]));break}if(f(s)){t=s,0===s.length?r=T(e,r,[]):"object"==typeof s[0]?r=T(e,r,s):l(String(s));break}"ELEMENT_NODE"in s&&t!==s&&(t=s,r=T(e,r,11===s.nodeType?m.call(s.childNodes):[s]))}};return l})(r):"attr"===t?M(r,e.name):(e=>{let t;return n=>{t!=n&&(t=n,e.textContent=null==n?"":n)}})(r)}const L="isµ",S=l(new WeakMap),j=/^(?:plaintext|script|style|textarea|title|xmp)$/i,W=(e,t)=>{const n=((e,t,n)=>{const r=[],{length:l}=e;for(let n=1;n<l;n++){const l=e[n-1];r.push(s.test(l)&&d(e,n)?l.replace(s,((e,r,l)=>`${t}${n-1}=${l||'"'}${r}${l?"":'"'}`)):`${l}\x3c!--${t}${n-1}--\x3e`)}r.push(e[l-1]);const o=r.join("").trim();return n?o:o.replace(c,p)})(t,L,"svg"===e),r=A(n,e,!0),l=E(r),o=[],i=t.length-1;let a=0,u=`isµ${a}`;for(;a<i;){const e=l.nextNode();if(!e)throw`bad template: ${n}`;if(8===e.nodeType)e.textContent===u&&(o.push({type:"node",path:C(e)}),u="isµ"+ ++a);else{for(;e.hasAttribute(u);)o.push({type:"attr",path:C(e),name:e.getAttribute(u)}),e.removeAttribute(u),u="isµ"+ ++a;j.test(e.tagName)&&e.textContent.trim()===`\x3c!--${u}--\x3e`&&(e.textContent="",o.push({type:"text",path:C(e)}),u="isµ"+ ++a)}}return{content:r,nodes:o}},z=(e,t)=>{const{content:n,nodes:r}=S.get(t)||S.set(t,W(e,t)),l=$.call(document,n,!0);return{content:l,updates:r.map(O,l)}},B=(e,{type:t,template:n,values:r})=>{const{length:l}=r;P(e,r,l);let{entry:s}=e;s&&s.template===n&&s.type===t||(e.entry=s=((e,t)=>{const{content:n,updates:r}=z(e,t);return{type:e,template:t,content:n,updates:r,wire:null}})(t,n));const{content:o,updates:i,wire:a}=s;for(let e=0;e<l;e++)i[e](r[e]);return a||(s.wire=(e=>{const{childNodes:t}=e,{length:n}=t;if(n<2)return n?t[0]:e;const r=m.call(t,0);return{ELEMENT_NODE:1,nodeType:111,firstChild:r[0],lastChild:r[n-1],valueOf(){if(t.length!==n){let t=0;for(;t<n;)e.appendChild(r[t++])}return e}}})(o))},P=({stack:e},t,n)=>{for(let r=0;r<n;r++){const n=t[r];n instanceof H?t[r]=B(e[r]||(e[r]={stack:[],entry:null,wire:null}),n):f(n)?P(e[r]||(e[r]={stack:[],entry:null,wire:null}),n,n.length):e[r]=null}n<e.length&&e.splice(n)};function H(e,t,n){this.type=e,this.template=t,this.values=n}const{create:_,defineProperties:D}=Object,R=e=>{const t=l(new WeakMap);return D(((t,...n)=>new H(e,t,n)),{for:{value(n,r){const l=t.get(n)||t.set(n,_(null));return l[r]||(l[r]=(t=>(n,...r)=>B(t,{type:e,template:n,values:r}))({stack:[],entry:null,wire:null}))}},node:{value:(t,...n)=>B({stack:[],entry:null,wire:null},{type:e,template:t,values:n}).valueOf()}})},q=l(new WeakMap),F=R("html"),G=R("svg"),{defineProperties:I}=Object,J=e=>{const t=l(new WeakMap);return I(r(e),{for:{value(n,l){const s=e.for(n,l);return t.get(s)||t.set(s,r(s))}},node:{value:r(e.node)}})},K=J(F),Q=J(G);return e.Hole=H,e.html=K,e.render=(e,t)=>{const n="function"==typeof t?t():t;return Promise.resolve(n).then((t=>((e,t)=>{const n="function"==typeof t?t():t,r=q.get(e)||q.set(e,{stack:[],entry:null,wire:null}),l=n instanceof H?B(r,n):n;return l!==r.wire&&(r.wire=l,e.textContent="",e.appendChild(l.valueOf())),e})(e,t)))},e.svg=Q,e}({});