xatto
Version:
xatto is View Layer Library based on Function and Context using VirtualDOM. This is developed by forking from jorgebucaran/superfine.
2 lines • 8.78 kB
JavaScript
!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(n.xatto={})}(this,function(o){"use strict";var b="xa.context",w="xa.extra",x="xa.fill",N="xa.path",S="xa.slice",y="xa.text",E="middlewares",k="children",c="key",g="name",j="props",O="node",P="lifecycle",C="prev."+j;function A(n,t){for(var e in t)t.hasOwnProperty(e)&&(n[e]=t[e]);return n}var M="create",q="destroy",T="remove",W="update",F="function",L="object",t="string";function R(n,t,e,r){for(void 0===r&&(r=".");;){if(L!==typeof n)return!1;var u=t.indexOf(r);if(u<0)return n[t]=e,!0;var i=t.slice(0,u),o=t.slice(u+1);if(null==n[i]){var a=o.split(r,1)[0];n[i]=a===""+parseInt(a,10)?[]:{}}n=n[i],t=o}}function B(n,t,e){var r=A({},n);return r.i=0,r[P]=M,r[k]=n[k].map(function(n){return e(M,n)}),R(r,C,{}),r}var n,I="xa-txt";function V(n,t,e,r){void 0===e&&(e={}),void 0===r&&(r=[]);var u={};return u[g]=t,u[j]=e,u[k]=r,u[c]=e.key,n&&F!==typeof t&&(u[g]=I,R(u[j],y,t)),u}function z(){}function D(n,t,e){for(void 0===e&&(e=".");;){if(null==n)return n;var r=t.indexOf(e);if(r<0)return n[t];n=n[t.slice(0,r)],t=t.slice(r+1)}}function G(e,r,u){return function(n,t){return void 0===t&&(t=""),function e(r,u,i,n,t){if(n){if(n instanceof Promise)return n.then(function(n){return e(r,u,i,n,t)});if(F===typeof n)return n(function(n,t){return void 0===t&&(t=""),e(r,u,i,n,t)},r,t);if(L===typeof n){var o=r(t);if(n===o)return;var a=A(A({},o),n);u(a,t),i()}}}(e,r,u,n,t)}}function H(e,r,u,i){return function(n,t){return void 0===t&&(t=null),null==n?[t,null,o.NowaitState.fulfilled]:n instanceof Promise?function(t,e,r,n){return void 0===n&&(n=null),e.has(r)||(e.set(r,[n,null,o.NowaitState.pending]),r.then(function(n){e.set(r,[n,null,o.NowaitState.fulfilled]),t()}).catch(function(n){e.set(r,[null,n,o.NowaitState.rejected]),t()})),e.get(r)}(e,r,n,t):function(n){return n.subscribe&&F==typeof n.subscribe}(n)?function(t,e,n,r,u,i){return void 0===i&&(i=null),e.has(u)||e.set(u,[i,null,o.NowaitState.pending]),n.has(u)||n.set(u,u.subscribe(function(n){r.add(u),e.set(u,[n,null,o.NowaitState.acquired]),t()},function(n){r.add(u),e.set(u,[null,n,o.NowaitState.rejected]),t()},function(){var n=e.has(u)?e.get(u)[0]:null;r.add(u),e.set(u,[n,null,o.NowaitState.fulfilled]),t()})),r.has(u)&&r.delete(u),e.get(u)}(e,r,u,i,n,t):n instanceof Error?[null,n,o.NowaitState.rejected]:[n,null,o.NowaitState.fulfilled]}}function J(n,t,e,r){return R(n,b,t||D(n,b)||{}),R(n,w,e||D(n,w)||{}),R(n,N,r||""),n}(n=o.NowaitState||(o.NowaitState={}))[n.pending=0]="pending",n[n.fulfilled=1]="fulfilled",n[n.rejected=2]="rejected",n[n.acquired=3]="acquired";var l=function(){return(l=Object.assign||function(n){for(var t,e=1,r=arguments.length;e<r;e++)for(var u in t=arguments[e])Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u]);return n}).apply(this,arguments)};var s={};function a(n,t,u,e,r,i){if(!i)return B(r,0,u);if(!r){R(i,C,i[j]);var o=function(n,t,e,r){var u=s[n],i=s[t],o=i&&(!u||u<i)&&t||n;if(T!=o)return o;var a=e[O];return r.get(a)||T==n&&!D(e,j+".on"+T)?q:T}(T!=e&&q!=e?T:W,e,i,n);return i[P]=o,i[k]=i[k].map(function(n){return u(o,null,n)}),i}R(i,C,i[j]),i[j]=r[j],i[c]=r[c],i[g]=r[g],i[P]=W;var a=i[k].map(function(n,t){return n.i=t,n}),f=r[k].map(function(n){var t,e,r;for(r=0;r<a.length;r++)if(e=a[r],n[g]==e[g]&&n[c]==e[c]&&(W===e[P]||M===e[P])){t=e;break}return t?(a.splice(r,1),u(W,n,t)):u(W,n)});return a.map(function(n){if(0===(n=u(W,null,n)).i)f.unshift(n);else{var t=n.i-1,e=void 0;for(e=0;e<f.length;e++)if(t===f[e].i)return void f.splice(e+1,0,n);f.push(n)}}),i[k]=f,i}function K(n,t,e,r,u,i){if("o"===t[0]&&"n"===t[1]){var o=t.slice(2);e instanceof Function?r instanceof Function||n.addEventListener(o,i):n.removeEventListener(o,i)}else!u&&"list"!==t&&t in n?n[t]=null==e?"":e:null==e||!1===e?n.removeAttribute(t):n.setAttribute(t,e)}function Q(t,n,e){void 0===e&&(e={});var r=[new CustomEvent("lifecycle",{detail:A({type:n},e)}),new CustomEvent(n,{detail:e})];return function(){return r.map(function(n){return t.dispatchEvent(n)})}}function f(n,t,e,r,u,i,o,a,f){var c,l=A({},a),s=a[O];f||"svg"!==a[g]||(f=!0);var v,d=l[P],p=null;switch(d){case M:v=!0,s=function(n,t,e,r){var u=n[j]||{};if(n[g]===I)return document.createTextNode(D(u,y));var i=(t=t||"svg"===n[g])?document.createElementNS("http://www.w3.org/2000/svg",n[g]):document.createElement(n[g]);for(var o in u)L!=typeof u[o]&&K(i,o,u[o],null,t,e);return r.set(i,u),i}(a,f,e,r);break;case W:c=function(n,t,e,r){var u=n[O],i=n[j],o=D(n,C)||{},a=!1;if(n[g]===I)return(a=D(i,y)!=D(o,y))&&(u.nodeValue=D(i,y)),[u,a];for(var f in A(A({},i),o))L!=typeof i[f]&&i[f]!==("value"===f||"checked"===f?u[f]:o[f])&&(K(u,f,i[f],o[f],t,e),a=!0);return r.set(u,i),[u,a]}(a,f,e,r),s=c[0],v=c[1];break;case q:Q(s,d,p)();var h=s.parentElement||s.parentNode;h&&h.removeChild(s);break;case T:u.has(s)||(u.set(s,!1),v=!0,p={done:function(){u.set(s,!0),Promise.resolve({}).then(n)}})}v&&t.push(Q(s,d,p));var m=a[k].reduce(function(n,t){var e=o(t,f);return e?n.concat(e):n},[]);return d===q?null:(m.map(function(n){return n[O]}).reduceRight(function(n,t){return t.parentNode===s&&t.nextSibling===n||s.insertBefore(t,n),t},null),l[k]=m,l[O]=s,l)}s[T]=1,s[q]=2;var e=[t,F];function U(n){return null!=n&&L===typeof n&&j in n&&k in n&&c in n&&g in n&&L===typeof n[j]&&L===typeof n[k]&&"length"in n[k]&&(null==n[c]||t===typeof n[c])&&0<=e.indexOf(typeof n[g])}function X(n,t){for(var e=[],r=2;r<arguments.length;r++)e[r-2]=arguments[r];for(var u=[];e.length;){var i=e.pop();i&&Array.isArray(i)?e=e.concat(i):null!=i&&!0!==i&&!1!==i&&u.unshift(U(i)&&i||V(!0,i))}return V(!1,n,t||{},u)}function Y(n,e,t,r){return t.reduce(function(n,t){return n.push.apply(n,e(t,r)),n},[])}function v(r,u){return function(n,e){return function(n,t){return function(n,t,e,r,u,i){if(!u)return[];if(X===u.name)return Y(0,r,u[k],i);var o=u[j],a=i&&i[j]||{},f=D(o,N);if(!f){var c=D(a,N)||"",l=D(o,S);null!=l&&(l=""+l),f=c&&l?c+"."+l:l||c}var s=n(f,!1);s||t(s={},f);var v=D(o,x);if(v)for(var d in v)!v.hasOwnProperty(d)||d in s||(s[d]=v[d]);var p,h=s,m=A(A({},D(o,w)||{}),i&&D(i,j+"."+w)||{}),y=J(o,h,m,f);if(typeof u.name===F){var g=u.name(y,u[k],h,m);p=U(g)?r(g,u):[]}else p=[u];return p.reduce(function(n,t){return U(t)&&(t[k]=Y(0,r,t[k],t),n.push(t)),n},[])}(r,u,0,e,n,t)}}}function Z(t,e,r){var u=new WeakMap,i=new WeakMap,o=function(a,f,c){return function(n){var e=n.currentTarget,t=c.get(e)||{},r=D(t,N)||"",u=n.detail||{},i=D(t,w)||{},o=t["on"+n.type](f(r),l({},i,u,{dispatch:function(n,t){void 0===t&&(t={}),e&&e.dispatchEvent(new CustomEvent(n,{bubbles:!0,cancelable:!0,detail:t}))}}),t,n);a(o,r)}}(t,e,u);return function(){var n=[];return[v(e,r),function(u){return function(n,r){return function(n,t,e){return a(u,0,r,n,t,e)}}}(i),function(r,u,i,o,a){return function(n,e){return function(n,t){return f(r,u,i,o,a,0,e,n,t)}}}(t,n,o,u,i),function(){return function(){n.reduceRight(function(n,t){return t()},0)}}]}}function $(n,t){var e=n[0],r=n[1];return[t?t(e,r):e,r]}function r(n){return X(X,{},n.children)}function u(n){return X(X,{},n.children)}o.atto=function(t,n,e){void 0===e&&(e={});var r=!1,u=!1,i=!1,o=n instanceof Element?function(n){var t=B(V(!1,n.nodeName),0,z);return t[O]=n,t}(n):n,a=D(J(o[j]),b),f=E in e&&e[E]||[],c=G(h,m,x),l=function(n){var t=new WeakMap,e=new Map,r=new Set;return[H(n,t,e,r),function(e,n){return function(){n.forEach(function(n){if(e.has(n)){var t=e.get(n);e.delete(n),t.unsubscribe()}}),n.clear()}}(e,r)]}(x),s=l[0],v=l[1],d={mutate:c,nowait:s},p=[Z].concat(f).map(function(n){return n(c,h,m,t,o)});function h(n,t){return void 0===t&&(t={}),(n?D(a,n):a)||t}function m(n,t){t?R(a,t,n):a=n}function y(){u=!0,o=function(n,t,e,r){var u=r.map(function(n){return n[0]}).reduce($,[function(){return[]},function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return u.apply(null,n)}])[0],i=r.map(function(n){return n[1]}).reduce($,[z,function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return i.apply(null,n)}])[0],o=r.map(function(n){return n[2]}).reduce($,[z,function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return o.apply(null,n)}])[0],a=r.map(function(n){return n[3]}).reduce($,[z,z])[0],f=u(X(t,{xa:{extra:e}},[])),c=A({},n);c[k]=f;var l=i(W,c,n);return n=o(l,"svg"===l.name),a(),n}(o,t,d,p.map(function(n){return n()}))}function g(){u=r=!1,i?(i=!1,x()):v()}function w(n){throw g(),n}function x(){r?u&&(i=!0):(r=!0,Promise.resolve().then(y).then(g,w))}return c},o.Context=function(n,t){return X(r,{xa:{slice:n.slice,fill:n.fill},children:t})},o.currentOnly=function(u){return function(n,t,e,r){if(r.currentTarget===r.target)return u(n,t,e,r)}},o.Extra=function(n,t){return X(u,{xa:{extra:n},children:t})},o.x=X});
//# sourceMappingURL=xatto.min.js.map