preact
Version:
Tiny & fast Component-based virtual DOM framework.
2 lines • 9.45 kB
JavaScript
!function(e,n){if("function"==typeof define&&define.amd)define(["exports"],n);else if("undefined"!=typeof exports)n(exports);else{var t={exports:{}};n(t.exports),e.preact=t.exports}}(this,function(e){"use strict";function n(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}function t(e,n){var t=arguments.length<=2||void 0===arguments[2]?null:arguments[2],o=t&&t._component&&t._componentConstructor===e.nodeName,r=y(t,e),a=!o&&r._component;return a&&i(a,"componentWillMount"),y.parentNode!==n&&n.appendChild(r),a&&i(a,"componentDidMount"),r}function o(e,n){for(var t=arguments.length,o=Array(t>2?t-2:0),i=2;t>i;i++)o[i-2]=arguments[i];var c=void 0,l=[],u=o.length,p=void 0,d=void 0;if(u){c=[];for(var f=0;u>f;f++){var m=o[f];if(!s(m)){m.join?p=m:(p=l,p[0]=m);for(var v=0;v<p.length;v++){var h=p[v],y=!s(h)&&!a(h);y&&(h=String(h)),y&&d?c[c.length-1]+=h:s(h)||c.push(h),d=y}}}}n&&n.children&&delete n.children;var g=new G(e,n||void 0,c||void 0);return r(I,"vnode",g),g}function r(e,n){for(var t=e[n],o=arguments.length,r=Array(o>2?o-2:0),i=2;o>i;i++)r[i-2]=arguments[i];return t&&"function"==typeof t?t.apply(e,r):void 0}function i(e){for(var n=arguments.length,t=Array(n>1?n-1:0),o=1;n>o;o++)t[o-1]=arguments[o];do r.apply(void 0,[e].concat(t));while(e=e._component)}function a(e){return e&&e.__isVNode===!0}function s(e){return null===e||void 0===e}function c(e,n){if(3===e.nodeType)return"string"==typeof n;if(l(n))return!0;var t=n.nodeName;return"function"==typeof t?e._componentConstructor===t:e.nodeName.toLowerCase()===t}function l(e){var n=e.nodeName;return"function"==typeof n&&!n.prototype.render}function u(e){return e.nodeName(T(e))||R}function p(e){e._dirty||(e._dirty=!0,$.add(e))}function d(e,n){var t=arguments.length<=2||void 0===arguments[2]?D:arguments[2],o=e._disableRendering;e._disableRendering=!0,r(e,"componentWillReceiveProps",n,e.props),e.nextProps=n,e._disableRendering=o,t.render!==!1&&(t.renderSync||F.syncComponentUpdates?f(e):p(e))}function f(e,n){if(!e._disableRendering){e._dirty=!1;var t=e.nextProps,o=e.state;if(e.base){if(r(e,"shouldComponentUpdate",t,o)===!1)return void(e.props=t);r(e,"componentWillUpdate",t,o)}e.props=t;var a=r(e,"render",t,o),s=a&&a.nodeName,c=void 0;if("function"==typeof s&&s.prototype.render){var l=e._component;l&&l.constructor!==s&&(h(l.base,l,!1),l=null);var u=T(a);l?d(l,u,W):(l=Z.create(s),l._parentComponent=e,e._component=l,e.base&&i(l,"componentWillMount"),d(l,u,P),f(l,O),e.base&&i(l,"componentDidMount")),c=l.base}else e._component&&h(e.base,e._component),e._component=null,(e.base||n&&n.build)&&(c=y(e.base,a||R,e));if(e.base&&c!==e.base){var p=e.base.parentNode;p&&p.replaceChild(c,e.base)}return e.base=c,c&&(c._component=e,c._componentConstructor=e.constructor),r(e,"componentDidUpdate",t,o),a}}function m(e,n){var t=e&&e._component;if(l(n)){var o=y(e,u(n));return o._componentConstructor=n.nodeName,o}for(var r=t&&e._componentConstructor===n.nodeName;t&&!r&&(t=t._parentComponent);)r=t.constructor===n.nodeName;return r?d(t,T(n),W):(t&&h(e,t),e=v(n)),e}function v(e){var n=Z.create(e.nodeName),t=T(e);return d(n,t,P),f(n,O),n.base}function h(e,n,t){if(r(n,"componentWillUnmount"),t!==!1){e._component===n&&(delete e._component,delete e._componentConstructor);var o=n.base;o&&o.parentNode&&o.parentNode.removeChild(o)}n._parentComponent=null,r(n,"componentDidUnmount"),Z.collect(n)}function y(e,n){var t=e,o=n.nodeName;if("function"!=typeof o||o.prototype.render||(n=u(n),o=n.nodeName),"function"==typeof o)return m(e,n);if("string"==typeof n){if(e){if(3===e.nodeType)return e.textContent=n,e;1===e.nodeType&&H.collect(e)}return document.createTextNode(n)}(null===o||void 0===o)&&(o="x-undefined-element"),e?e.nodeName.toLowerCase()!==o&&(t=H.create(o),b(t,L.call(e.childNodes)),1===e.nodeType&&H.collect(e)):t=H.create(o);var a=k(t)||D,s=n.attributes||D;if(a!==D)for(var l in a)if(M.call(a,l)){var p=s[l];(void 0===p||null===p||p===!1)&&N(t,l,null,a[l])}if(s!==D)for(var d in s)if(M.call(s,d)){var f=s[d];if(void 0!==f&&null!==f&&f!==!1){var v=_(t,d,a[d]);f!==v&&N(t,d,f,v)}}for(var h=L.call(t.childNodes),g={},C=h.length;C--;){var x=h[C].nodeType,w=void 0;if(3===x)w=x.key;else{if(1!==x)continue;w=h[C].getAttribute("key")}w&&(g[w]=h.splice(C,1)[0])}var T=[];if(n.children)for(var C=0,U=n.children.length;U>C;C++){var S=n.children[C],A=S.attributes,w=void 0,P=void 0;if(A&&(w=A.key,P=w&&g[w]),!P){var W=h.length;if(h.length)for(var O=0;W>O;O++)if(c(h[O],S)){P=h.splice(O,1)[0];break}}T.push(y(P,S))}for(var C=0,W=T.length;W>C;C++)if(t.childNodes[C]!==T[C]){var P=T[C],R=P._component,z=t.childNodes[C+1];R&&i(R,"componentWillMount"),z?t.insertBefore(P,z):t.appendChild(P),R&&i(R,"componentDidMount")}for(var C=0,W=h.length;W>C;C++){var P=h[C],R=P._component;R&&r(R,"componentWillUnmount"),P.parentNode.removeChild(P),R?(r(R,"componentDidUnmount"),Z.collect(R)):1===P.nodeType&&H.collect(P)}return t}function g(e,n,t){var o=n.split("."),r=o[0];return function(n){var i,a=this,c=e.state,l=void 0,u=void 0;for("string"==typeof t?(l=j(n,t),s(l)&&(a=a._component)&&(l=j(a,t))):l=(a.nodeName+a.type).match(/^input(checkbox|radio)$/i)?a.checked:a.value,"function"==typeof l&&(l=l.call(a)),u=0;u<o.length-1;u++)c=c[o[u]]||{};c[o[u]]=l,e.setState((i={},i[r]=e.state[r],i))}}function b(e,n){var t=n.length;if(2>=t)return e.appendChild(n[0]),void(2===t&&e.appendChild(n[1]));for(var o=document.createDocumentFragment(),r=0;t>r;r++)o.appendChild(n[r]);e.appendChild(o)}function _(e,n,t){return"class"===n?e.className:"style"===n?e.style.cssText:"type"!==n&&n in e?e[n]:t}function N(e,n,t,o){"class"===n?e.className=t:"style"===n?e.style.cssText=t:n in e?e[n]=t:C(e,n,t,o)}function C(e,n,t,o){if("on"===n.substring(0,2)){var r=q(n),i=e._listeners||(e._listeners={});return i[r]||e.addEventListener(r,x),void(i[r]=t)}var a=typeof t;null===t?e.removeAttribute(n):"function"!==a&&"object"!==a&&e.setAttribute(n,t)}function x(e){var n=this._listeners[q(e.type)];return n?n.call(this,r(I,"event",e)||e):void 0}function k(e){var n=e.attributes;return n&&n.getNamedItem?n.length?w(n):void 0:n}function w(e){for(var n={},t=e.length;t--;){var o=e[t];n[o.name]=o.value}return n}function T(e){var n=A({},e.attributes);return e.children&&(n.children=e.children),n}function U(e){var n="",t=": ",o="; ";for(var r in e)if(M.call(e,r)){var i=e[r];n+=J(r),n+=t,n+=i,"number"!=typeof i||M.call(z,r)||(n+="px"),n+=o}return n}function S(e){var n="";for(var t in e)e[t]&&(n&&(n+=" "),n+=t);return n}function A(e,n){for(var t in n)M.call(n,t)&&(e[t]=n[t]);return e}e.render=t,e.h=o;var D={},P={render:!1},W={renderSync:!0},O={build:!0},R="",z={boxFlex:1,boxFlexGroup:1,columnCount:1,fillOpacity:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,fontWeight:1,lineClamp:1,lineHeight:1,opacity:1,order:1,orphans:1,strokeOpacity:1,widows:1,zIndex:1,zoom:1},L=Array.prototype.slice,M=Object.prototype.hasOwnProperty,E=function(e){var n=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];return function(t){return M.call(n,t)?n[t]:n[t]=e(t)}},j=function(e,n){return n.split(".").map(function(n){return e=e&&e[n]}),e},F={syncComponentUpdates:!0},I={vnode:function(e){var n=e.attributes;if(n){var t=n.style;t&&!t.substring&&(n.style=U(t));var o=n["class"];M.call(n,"className")&&(o=n["class"]=n.className,delete n.className),o&&!o.substring&&(n["class"]=S(o))}}},V=function(){function e(){n(this,e),this._dirty=this._disableRendering=!1,this._linkedStates={},this.nextProps=this.base=null,this.props=r(this,"getDefaultProps")||{},this.state=r(this,"getInitialState")||{},r(this,"initialize")}return e.prototype.shouldComponentUpdate=function(e,n){return!0},e.prototype.linkState=function(e,n){var t=this._linkedStates,o=e+"|"+(n||"");return t[o]||(t[o]=g(this,e,n))},e.prototype.setState=function(e){A(this.state,e),p(this)},e.prototype.setProps=function(e,n){return d(this,e,n)},e.prototype.render=function(e){return o("div",null,e.children)},e}();e.Component=V;var G=function K(e,t,o){n(this,K),this.nodeName=e,this.attributes=t,this.children=o};e.VNode=G,G.prototype.__isVNode=!0;var $={items:[],itemsOffline:[],add:function(e){if(1===$.items.push(e)){var n=I.debounceRendering;n?n($.process):setTimeout($.process,0)}},process:function(){var e=$.items,n=e.length;if(n)for($.items=$.itemsOffline,$.items.length=0,$.itemsOffline=e;n--;)e[n]._dirty&&f(e[n])}},B=$.process,H={nodes:{},normalizeName:E(function(e){return e.toUpperCase()}),collect:function(e){H.clean(e);var n=H.normalizeName(e.nodeName),t=H.nodes[n];t?t.push(e):H.nodes[n]=[e]},create:function(e){var n=H.normalizeName(e),t=H.nodes[n];return t&&t.pop()||document.createElement(e)},clean:function(e){if(e.remove(),3!==e.nodeType){delete e._component,delete e._componentConstructor;var n=e._listeners;if(delete e._listeners,n)for(var t in n)e.removeEventListener(t,x);var o=e.attributes&&e.attributes.length;if(o)for(var t=o;t--;)e.removeAttribute(e.attributes[t].name)}}},Z={components:{},collect:function(e){var n=e.constructor.name,t=Z.components[n];t?t.push(e):Z.components[n]=[e]},create:function(e){var n=Z.components[e.name];if(n&&n.length)for(var t=n.length;t--;)if(n[t].constructor===e)return n.splice(t,1)[0];return new e}},q=E(function(e){return e.replace(/^on/i,"").toLowerCase()}),J=E(function(e){return e.replace(/([A-Z])/,"-$1").toLowerCase()});e.options=F,e.hooks=I,e.rerender=B,e["default"]={options:F,hooks:I,render:t,rerender:B,h:o,Component:V}});
//# sourceMappingURL=preact.js.map