Created
November 3, 2015 04:18
-
-
Save developit/03c3f9c8afbb6e76d419 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| !function(e,t){if("function"==typeof define&&define.amd)define(["exports"],t);else if("undefined"!=typeof exports)t(exports);else{var n={exports:{}};t(n.exports),e.preact=n.exports}}(this,function(e){"use strict";function t(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function n(e,t){var n=arguments.length<=2||void 0===arguments[2]?null:arguments[2],r=n&&n._component&&n._componentConstructor===e.nodeName,o=h(n,e),s=!r&&o._component;return s&&i(s,"componentWillMount"),h.parentNode!==t&&t.appendChild(o),s&&i(s,"componentDidMount"),o}function r(e,t){for(var n=arguments.length,r=Array(n>2?n-2:0),i=2;n>i;i++)r[i-2]=arguments[i];var c=void 0,l=[],u=r.length,d=void 0,p=void 0;if(u){c=[];for(var f=0;u>f;f++){var h=r[f];if(!a(h)){h.join?d=h:(d=l,d[0]=h);for(var m=0;m<d.length;m++){var v=d[m],g=!a(v)&&!s(v);g&&(v=String(v)),g&&p?c[c.length-1]+=v:a(v)||c.push(v),p=g}}}}t&&t.children&&delete t.children;var y=new F(e,t||void 0,c||void 0);return o(E,"vnode",y),y}function o(e,t){for(var n=e[t],r=arguments.length,o=Array(r>2?r-2:0),i=2;r>i;i++)o[i-2]=arguments[i];return n&&"function"==typeof n?n.apply(e,o):void 0}function i(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;t>r;r++)n[r-1]=arguments[r];do o.apply(void 0,[e].concat(n));while(e=e._component)}function s(e){return e&&e.__isVNode===!0}function a(e){return null===e||void 0===e}function c(e,t){if(3===e.nodeType)return"string"==typeof t;if(l(t))return!0;var n=t.nodeName;return"function"==typeof n?e._componentConstructor===n:e.nodeName.toLowerCase()===n}function l(e){var t=e.nodeName;return"function"==typeof t&&!t.prototype.render}function u(e){return e.nodeName(x(e))||A}function d(e,t){var n=e&&e._component;if(l(t)){var r=h(e,u(t));return r._componentConstructor=t.nodeName,r}for(var o=n&&e._componentConstructor===t.nodeName;n&&!o&&(n=n._parentComponent);)o=n.constructor===t.nodeName;return o?n.setProps(x(t),R):(n&&f(e,n),e=p(t)),e}function p(e){var t=$.create(e.nodeName),n=x(e);return t.setProps(n,U),t._render(S),t.base}function f(e,t){e._component===t&&(delete e._component,delete e._componentConstructor),o(t,"componentWillUnmount");var n=t.base;n&&n.parentNode&&n.parentNode.removeChild(n),o(t,"componentDidUnmount"),$.collect(t)}function h(e,t){var n=e,r=t.nodeName;if("function"!=typeof r||r.prototype.render||(t=u(t),r=t.nodeName),"function"==typeof r)return d(e,t);if("string"==typeof t){if(e){if(3===e.nodeType)return e.textContent=t,e;1===e.nodeType&&G.collect(e)}return document.createTextNode(t)}(null===r||void 0===r)&&(r="x-undefined-element"),e?e.nodeName.toLowerCase()!==r&&(n=G.create(r),v(n,W.call(e.childNodes)),1===e.nodeType&&G.collect(e)):n=G.create(r);var s=N(n)||T,a=t.attributes||T;if(s!==T)for(var l in s)if(O.call(s,l)){var p=a[l];(void 0===p||null===p||p===!1)&&y(n,l,null,s[l])}if(a!==T)for(var f in a)if(O.call(a,f)){var m=a[f];if(void 0!==m&&null!==m&&m!==!1){var _=g(n,f,s[f]);m!==_&&y(n,f,m,_)}}for(var b=W.call(n.childNodes),C={},x=b.length;x--;){var k=b[x].nodeType,w=void 0;if(3===k)w=k.key;else{if(1!==k)continue;w=b[x].getAttribute("key")}w&&(C[w]=b.splice(x,1)[0])}var P=[];if(t.children)for(var x=0,U=t.children.length;U>x;x++){var R=t.children[x],S=R.attributes,w=void 0,A=void 0;if(S&&(w=S.key,A=w&&C[w]),!A){var D=b.length;if(b.length)for(var z=0;D>z;z++)if(c(b[z],R)){A=b.splice(z,1)[0];break}}P.push(h(A,R))}for(var x=0,D=P.length;D>x;x++)if(n.childNodes[x]!==P[x]){var A=P[x],L=A._component,M=n.childNodes[x+1];L&&i(L,"componentWillMount"),M?n.insertBefore(A,M):n.appendChild(A),L&&i(L,"componentDidMount")}for(var x=0,D=b.length;D>x;x++){var A=b[x],L=A._component;L&&o(L,"componentWillUnmount"),A.parentNode.removeChild(A),L?(o(L,"componentDidUnmount"),$.collect(L)):1===A.nodeType&&G.collect(A)}return n}function m(e,t,n){var r=t.split("."),o=r[0];return function(t){var i,s=this,c=e.state,l=void 0,u=void 0;for("string"==typeof n?(l=L(t,n),a(l)&&(s=s._component)&&(l=L(s,n))):l=(s.nodeName+s.type).match(/^input(checkbox|radio)$/i)?s.checked:s.value,"function"==typeof l&&(l=l.call(s)),u=0;u<r.length-1;u++)c=c[r[u]]||{};c[r[u]]=l,e.setState((i={},i[o]=e.state[o],i))}}function v(e,t){var n=t.length;if(2>=n)return e.appendChild(t[0]),void(2===n&&e.appendChild(t[1]));for(var r=document.createDocumentFragment(),o=0;n>o;o++)r.appendChild(t[o]);e.appendChild(r)}function g(e,t,n){return"class"===t?e.className:"style"===t?e.style.cssText:n}function y(e,t,n,r){"class"===t?e.className=n:"style"===t?e.style.cssText=n:_(e,t,n,r)}function _(e,t,n,r){if("on"===t.substring(0,2)){var o=B(t),i=e._listeners||(e._listeners={});return i[o]||e.addEventListener(o,b),void(i[o]=n)}var s=typeof n;null===n?e.removeAttribute(t):"function"!==s&&"object"!==s&&e.setAttribute(t,n)}function b(e){var t=this._listeners,n=t[B(e.type)];return n?n.call(this,o(E,"event",e)||e):void 0}function N(e){var t=e.attributes;return t&&t.getNamedItem?t.length?C(t):void 0:t}function C(e){for(var t={},n=e.length;n--;){var r=e[n];t[r.name]=r.value}return t}function x(e){var t=P({},e.attributes);return e.children&&(t.children=e.children),e.text&&(t._content=e.text),t}function k(e){var t="",n=": ",r="; ";for(var o in e)if(O.call(e,o)){var i=e[o];t+=H(o),t+=n,t+=i,"number"!=typeof i||O.call(D,o)||(t+="px"),t+=r}return t}function w(e){var t="";for(var n in e)e[n]&&(t&&(t+=" "),t+=n);return t}function P(e,t){for(var n in t)O.call(t,n)&&(e[n]=t[n]);return e}e.render=n,e.h=r;var T={},U={render:!1},R={renderSync:!0},S={build:!0},A="",D={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},W=Array.prototype.slice,O=Object.prototype.hasOwnProperty,z=function(e){var t=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];return function(n){return O.call(t,n)?t[n]:t[n]=e(n)}},L=function(e,t){return t.split(".").reduce(function(e,t){return e&&e[t]},e)},M={syncComponentUpdates:!0},E={};E.vnode=function(e){var t=e.attributes;if(t){var n=t.style;n&&!n.substring&&(t.style=k(n));var r=t["class"];O.call(t,"className")&&(r=t["class"]=t.className,delete t.className),r&&!r.substring&&(t["class"]=w(r))}};var j=function(){function e(){t(this,e),this._dirty=this._disableRendering=!1,this._linkedStates={},this.nextProps=this.base=null,this.props=o(this,"getDefaultProps")||{},this.state=o(this,"getInitialState")||{},o(this,"initialize")}return e.prototype.shouldComponentUpdate=function(e,t){return!0},e.prototype.linkState=function(e,t){var n=this._linkedStates,r=e+"|"+(t||"");return n[r]||(n[r]=m(this,e,t))},e.prototype.setState=function(e){P(this.state,e),this.triggerRender()},e.prototype.setProps=function(e){var t=arguments.length<=1||void 0===arguments[1]?T:arguments[1],n=this._disableRendering;this._disableRendering=!0,o(this,"componentWillReceiveProps",e,this.props),this.nextProps=e,this._disableRendering=n,t.render!==!1&&(t.renderSync||M.syncComponentUpdates?this._render():this.triggerRender())},e.prototype.triggerRender=function(){this._dirty||(this._dirty=!0,I.add(this))},e.prototype.render=function(e){return r("div",null,e.children)},e.prototype._render=function(e){if(!this._disableRendering){this._dirty=!1;var t=this.nextProps,n=this.state;if(this.base){if(o(this,"shouldComponentUpdate",t,n)===!1)return void(this.props=t);o(this,"componentWillUpdate",t,n)}this.props=t;var r=o(this,"render",t,n),s=r&&r.nodeName,a=void 0;if("function"==typeof s&&s.prototype.render){var c=this._component;c&&c.constructor!==s&&(f(this.base,c),c=null);var l=x(r);c?(c.setProps(l,R),a=c.base):(c=$.create(s),c._parentComponent=this,this._component=c,this.base&&i(c,"componentWillMount"),c.setProps(l,U),c._render(e),this.base&&i(c,"componentDidMount"),a=c.base)}else this._component&&f(this.base,this._component),this._component=null,(this.base||e&&e.build)&&(a=h(this.base,r||A,this));if(this.base&&a!==this.base){var u=this.base.parentNode;u&&u.replaceChild(a,this.base)}return this.base=a,a&&(a._component=this,a._componentConstructor=this.constructor),o(this,"componentDidUpdate",t,n),r}},e}();e.Component=j;var F=function Z(e,n,r){t(this,Z),this.nodeName=e,this.attributes=n,this.children=r};e.VNode=F,F.prototype.__isVNode=!0;var I={items:[],itemsOffline:[],add:function(e){if(1===I.items.push(e)){var t=E.debounceRendering;t?t(I.process):setTimeout(I.process,0)}},process:function(){var e=I.items,t=e.length;if(t)for(I.items=I.itemsOffline,I.items.length=0,I.itemsOffline=e;t--;)e[t]._dirty&&e[t]._render()}},V=I.process,G={nodes:{},collect:function(e){G.clean(e);var t=G.normalizeName(e.nodeName),n=G.nodes[t];n?n.push(e):G.nodes[t]=[e]},create:function(e){var t=G.normalizeName(e),n=G.nodes[t];return n&&n.pop()||document.createElement(e)},clean:function(e){if(e.remove(),3!==e.nodeType){delete e._component,delete e._componentConstructor;var t=e._listeners;if(delete e._listeners,t)for(var n in t)e.removeEventListener(n,b);var r=e.attributes&&e.attributes.length;if(r)for(var n=r;n--;)e.removeAttribute(e.attributes[n].name)}},normalizeName:z(function(e){return e.toUpperCase()})},$={components:{},collect:function(e){var t=e.constructor.name,n=$.components[t];n?n.push(e):$.components[t]=[e]},create:function(e){var t=$.components[e.name];if(t&&t.length)for(var n=t.length;n--;)if(t[n].constructor===e)return t.splice(n,1)[0];return new e}},B=z(function(e){return e.replace(/^on/i,"").toLowerCase()}),H=z(function(e){return e.replace(/([A-Z])/,"-$1").toLowerCase()});e.options=M,e.hooks=E,e.rerender=V,e["default"]={options:M,hooks:E,render:n,rerender:V,h:r,Component:j}}); | |
| //# sourceMappingURL=preact.js.map |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| {"version":3,"file":"preact.js","sources":["preact.js"],"names":["render","component","parent","merge","arguments","length","undefined","existing","_component","_componentConstructor","nodeName","built","build","c","deepHook","parentNode","appendChild","h","attributes","_len","args","Array","_key","children","sharedArr","len","arr","lastSimple","i","_p2","empty","join","j","child","simple","isVNode","String","push","p","VNode","hook","hooks","obj","name","fn","_len2","_key2","apply","_len3","_key3","concat","__isVNode","x","isSameNodeType","node","vnode","nodeType","isFunctionalComponent","toLowerCase","_ref2","prototype","buildFunctionalComponent","getNodeProps","EMPTY_BASE","buildComponentFromVNode","dom","isOwner","_parentComponent","constructor","setProps","SYNC_RENDER","unmountComponent","createComponentFromVNode","componentRecycler","create","props","NO_RENDER","_render","DOM_RENDER","base","removeChild","collect","out","textContent","recycler","document","createTextNode","appendChildren","slice","call","childNodes","old","getNodeAttributes","EMPTY","attrs","_name","hop","o","setAccessor","_name2","value","prev","getAccessor","keyed","t","key","getAttribute","splice","newChildren","vlen","vchild","_attrs","next","insertBefore","createLinkedState","eventPath","path","split","p0","e","_component$setState","this","state","v","delve","type","match","checked","setState","frag","createDocumentFragment","className","style","cssText","setComplexAccessor","substring","_type","normalizeEventName","l","_listeners","addEventListener","eventProxy","removeAttribute","setAttribute","list","getNamedItem","getAttributesAsObject","item","extend","text","_content","styleObjToCss","s","str","sep","term","prop","val","jsToCss","NON_DIMENSION_PROPS","hashToClassName","renderSync","boxFlex","boxFlexGroup","columnCount","fillOpacity","flex","flexGrow","flexPositive","flexShrink","flexNegative","fontWeight","lineClamp","lineHeight","opacity","order","orphans","strokeOpacity","widows","zIndex","zoom","Object","hasOwnProperty","memoize","mem","k","reduce","r","options","syncComponentUpdates","_ref","Component","_classCallCheck","_dirty","_disableRendering","_linkedStates","nextProps","shouldComponentUpdate","linkState","cacheKey","triggerRender","opts","d","renderQueue","add","rendered","childComponent","inst","childProps","_p","replaceChild","exports","items","itemsOffline","debounceRendering","process","setTimeout","rerender","nodes","clean","normalizeName","pop","createElement","remove","removeEventListener","toUpperCase","components","ctor","replace"],"mappings":"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","sourcesContent":["const EMPTY = {};\nconst NO_RENDER = { render: false };\nconst SYNC_RENDER = { renderSync: true };\nconst DOM_RENDER = { build: true };\nconst EMPTY_BASE = '';\nconst NON_DIMENSION_PROPS = {\n\tboxFlex:1,boxFlexGroup:1,columnCount:1,fillOpacity:1,flex:1,flexGrow:1,\n\tflexPositive:1,flexShrink:1,flexNegative:1,fontWeight:1,lineClamp:1,lineHeight:1,\n\topacity:1,order:1,orphans:1,strokeOpacity:1,widows:1,zIndex:1,zoom:1\n};\n\n/** @private */\nlet slice = Array.prototype.slice;\n\nlet hop = Object.prototype.hasOwnProperty;\n\n/** @private */\nlet memoize = (fn, mem={}) => k => hop.call(mem, k) ? mem[k] : (mem[k] = fn(k));\n\nlet delve = (obj, key) => key.split('.').reduce( (r,k) => (r && r[k]), obj);\n\n/** @public @object Global options */\nlet options = {\n\t/** If `true`, `prop` changes trigger synchronous component updates. */\n\tsyncComponentUpdates: true\n};\n\n/** @public @object Global hook methods */\nlet hooks = {};\n\n\n/** @public Render JSX into a `parent` Element. */\nexport function render(component, parent, merge=null) {\n\tlet existing = merge && merge._component && merge._componentConstructor===component.nodeName,\n\t\tbuilt = build(merge, component),\n\t\tc = !existing && built._component;\n\tif (c) deepHook(c, 'componentWillMount');\n\tif (build.parentNode!==parent) {\n\t\tparent.appendChild(built);\n\t}\n\tif (c) deepHook(c, 'componentDidMount');\n\treturn built;\n}\n\n\n/** @protected Processes all created VNodes */\nhooks.vnode = ({ attributes }) => {\n\tif (!attributes) return;\n\n\tlet s = attributes.style;\n\tif (s && !s.substring) {\n\t\tattributes.style = styleObjToCss(s);\n\t}\n\n\tlet c = attributes['class'];\n\tif (hop.call(attributes, 'className')) {\n\t\tc = attributes['class'] = attributes.className;\n\t\tdelete attributes.className;\n\t}\n\tif (c && !c.substring) {\n\t\tattributes['class'] = hashToClassName(c);\n\t}\n};\n\n\n/** @public Base Component, with API similar to React. */\nexport class Component {\n\tconstructor() {\n\t\t/** @private */\n\t\tthis._dirty = this._disableRendering = false;\n\t\t/** @private */\n\t\tthis._linkedStates = {};\n\t\t/** @public */\n\t\tthis.nextProps = this.base = null;\n\t\t/** @type {object} */\n\t\tthis.props = hook(this, 'getDefaultProps') || {};\n\t\t/** @type {object} */\n\t\tthis.state = hook(this, 'getInitialState') || {};\n\t\t// @TODO remove me?\n\t\thook(this, 'initialize');\n\t}\n\n\t/** Returns a `boolean` value indicating if the component should re-render when receiving the given `props` and `state`.\n\t *\t@param {object} props\n\t *\t@param {object} state\n\t */\n\tshouldComponentUpdate(props, state) {\n\t\treturn true;\n\t}\n\n\t/** Returns a function that sets a state property when called.\n\t *\tCalling linkState() repeatedly with the same arguments returns a cached link function.\n\t *\n\t *\tProvides some built-in special cases:\n\t *\t\t- Checkboxes and radio buttons link their boolean `checked` value\n\t *\t\t- Inputs automatically link their `value` property\n\t *\t\t- Event paths fall back to any associated Component if not found on an element\n\t *\t\t- If linked value is a function, will invoke it and use the result\n\t *\n\t *\t@param {string} key\t\t\t\tThe path to set - can be a dot-notated deep key\n\t *\t@param {string} [eventPath]\t\tIf set, attempts to find the new state value at a given dot-notated path within the object passed to the linkedState setter.\n\t *\t@returns {function} linkStateSetter(e)\n\t *\n\t *\t@example Update a \"text\" state value when an input changes:\n\t *\t\t<input onChange={ this.linkState('text') } />\n\t *\n\t *\t@example Set a deep state value on click\n\t *\t\t<button onClick={ this.linkState('touch.coords', 'touches.0') }>Tap</button\n\t */\n\tlinkState(key, eventPath) {\n\t\tlet c = this._linkedStates,\n\t\t\tcacheKey = key + '|' + (eventPath || '');\n\t\treturn c[cacheKey] || (c[cacheKey] = createLinkedState(this, key, eventPath));\n\t}\n\n\t/** Update component state by copying values from `state` to `this.state`.\n\t *\t@param {object} state\n\t */\n\tsetState(state) {\n\t\textend(this.state, state);\n\t\tthis.triggerRender();\n\t}\n\n\t/** Set `props` for the component.\n\t*\t@param {object} props\n\t*\t@param {object} [opts]\n\t*\t@param {object} [opts.renderSync] - If `true` and {@link options.syncComponentUpdates} is `true`, triggers synchronous rendering.\n\t*\t@param {object} [opts.render=true] - If `false`, no render will be triggered.\n\t */\n\tsetProps(props, opts=EMPTY) {\n\t\tlet d = this._disableRendering;\n\t\tthis._disableRendering = true;\n\t\thook(this, 'componentWillReceiveProps', props, this.props);\n\t\tthis.nextProps = props;\n\t\tthis._disableRendering = d;\n\t\tif (opts.render!==false) {\n\t\t\tif (opts.renderSync || options.syncComponentUpdates) {\n\t\t\t\tthis._render();\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.triggerRender();\n\t\t\t}\n\t\t}\n\t}\n\n\t/** Mark component as dirty and queue up a render. */\n\ttriggerRender() {\n\t\tif (!this._dirty) {\n\t\t\tthis._dirty = true;\n\t\t\trenderQueue.add(this);\n\t\t}\n\t}\n\n\t/** Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n\t *\tVirtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n\t *\t@param {object} props\t\tProps (eg: JSX attributes) received from parent element/component\n\t *\t@param {object} state\t\tThe component's current state\n\t *\t@returns VNode\n\t */\n\trender(props) {\n\t\treturn h('div', null, props.children);\n\t}\n\n\t/** @private */\n\t_render(opts) {\n\t\tif (this._disableRendering) return;\n\n\t\tthis._dirty = false;\n\n\t\tlet p = this.nextProps,\n\t\t\ts = this.state;\n\n\t\tif (this.base) {\n\t\t\tif (hook(this, 'shouldComponentUpdate', p, s)===false) {\n\t\t\t\tthis.props = p;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\thook(this, 'componentWillUpdate', p, s);\n\t\t}\n\n\t\tthis.props = p;\n\n\t\tlet rendered = hook(this, 'render', p, s),\n\t\t\tchildComponent = rendered && rendered.nodeName,\n\t\t\tbase;\n\n\t\tif (typeof childComponent==='function' && childComponent.prototype.render) {\n\t\t\t// set up high order component link\n\n\t\t\tlet inst = this._component;\n\t\t\tif (inst && inst.constructor!==childComponent) {\n\t\t\t\tunmountComponent(this.base, inst);\n\t\t\t\tinst = null;\n\t\t\t}\n\n\t\t\tlet childProps = getNodeProps(rendered);\n\n\t\t\tif (inst) {\n\t\t\t\tinst.setProps(childProps, SYNC_RENDER);\n\t\t\t\tbase = inst.base;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tinst = componentRecycler.create(childComponent);\n\t\t\t\tinst._parentComponent = this;\n\t\t\t\tthis._component = inst;\n\t\t\t\tif (this.base) deepHook(inst, 'componentWillMount');\n\t\t\t\tinst.setProps(childProps, NO_RENDER);\n\t\t\t\tinst._render(opts);\n\t\t\t\tif (this.base) deepHook(inst, 'componentDidMount');\n\t\t\t\tbase = inst.base;\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t// destroy high order component link\n\t\t\tif (this._component) {\n\t\t\t\tunmountComponent(this.base, this._component);\n\t\t\t}\n\t\t\tthis._component = null;\n\n\t\t\tif (this.base || (opts && opts.build)) {\n\t\t\t\tbase = build(this.base, rendered || EMPTY_BASE, this);\n\t\t\t}\n\t\t}\n\n\t\tif (this.base && base!==this.base) {\n\t\t\tlet p = this.base.parentNode;\n\t\t\tif (p) p.replaceChild(base, this.base);\n\t\t}\n\n\t\tthis.base = base;\n\t\tif (base) {\n\t\t\tbase._component = this;\n\t\t\tbase._componentConstructor = this.constructor;\n\t\t}\n\n\t\thook(this, 'componentDidUpdate', p, s);\n\n\t\treturn rendered;\n\t}\n}\n\n\n\n/** @public JSX/hyperscript reviver\n *\t@see http://jasonformat.com/wtf-is-jsx\n * @example\n * /** @jsx h *\\/\n * import { render, h } from 'preact';\n * render(<span>foo</span>, document.body);\n */\nexport function h(nodeName, attributes, ...args) {\n\tlet children,\n\t\tsharedArr = [],\n\t\tlen = args.length,\n\t\tarr, lastSimple;\n\tif (len) {\n\t\tchildren = [];\n\t\tfor (let i=0; i<len; i++) {\n\t\t\tlet p = args[i];\n\t\t\tif (empty(p)) continue;\n\t\t\tif (p.join) {\n\t\t\t\tarr = p;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tarr = sharedArr;\n\t\t\t\tarr[0] = p;\n\t\t\t}\n\t\t\tfor (let j=0; j<arr.length; j++) {\n\t\t\t\tlet child = arr[j],\n\t\t\t\t\tsimple = !empty(child) && !isVNode(child);\n\t\t\t\tif (simple) child = String(child);\n\t\t\t\tif (simple && lastSimple) {\n\t\t\t\t\tchildren[children.length-1] += child;\n\t\t\t\t}\n\t\t\t\telse if (!empty(child)) {\n\t\t\t\t\tchildren.push(child);\n\t\t\t\t}\n\t\t\t\tlastSimple = simple;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (attributes && attributes.children) {\n\t\tdelete attributes.children;\n\t}\n\n\tlet p = new VNode(nodeName, attributes || undefined, children || undefined);\n\thook(hooks, 'vnode', p);\n\treturn p;\n}\n\n\n/** Virtual DOM Node */\nexport class VNode {\n\tconstructor(nodeName, attributes, children) {\n\t\t/** @type {string|function} */\n\t\tthis.nodeName = nodeName;\n\n\t\t/** @type {object<string>|undefined} */\n\t\tthis.attributes = attributes;\n\n\t\t/** @type {array<VNode>|undefined} */\n\t\tthis.children = children;\n\t}\n}\nVNode.prototype.__isVNode = true;\n\n\n/** @private Invoke a \"hook\" method with arguments if it exists. */\nfunction hook(obj, name, ...args) {\n\tlet fn = obj[name];\n\tif (fn && typeof fn==='function') return fn.apply(obj, args);\n}\n\n\n/** @private Invoke hook() on a component and child components (recursively) */\nfunction deepHook(obj, ...args) {\n\tdo {\n\t\thook(obj, ...args);\n\t} while (obj=obj._component);\n}\n\n\n/** @private Fast check if an object is a VNode. */\nfunction isVNode(obj) {\n\treturn obj && obj.__isVNode===true;\n}\n\n\n/** @private Check if a value is `null` or `undefined`. */\nfunction empty(x) {\n\treturn x===null || x===undefined;\n}\n\n\n/** @private Check if two nodes are equivalent. */\nfunction isSameNodeType(node, vnode) {\n\tif (node.nodeType===3) {\n\t\treturn typeof vnode==='string';\n\t}\n\tif (isFunctionalComponent(vnode)) return true;\n\tlet nodeName = vnode.nodeName;\n\tif (typeof nodeName==='function') return node._componentConstructor===nodeName;\n\treturn node.nodeName.toLowerCase()===nodeName;\n}\n\n\nfunction isFunctionalComponent({ nodeName }) {\n\treturn typeof nodeName==='function' && !nodeName.prototype.render;\n}\n\n\nfunction buildFunctionalComponent(vnode) {\n\treturn vnode.nodeName(getNodeProps(vnode)) || EMPTY_BASE;\n}\n\n\n/** @private Apply the component referenced by a VNode to the DOM. */\nfunction buildComponentFromVNode(dom, vnode) {\n\tlet c = dom && dom._component;\n\n\tif (isFunctionalComponent(vnode)) {\n\t\tlet p = build(dom, buildFunctionalComponent(vnode));\n\t\tp._componentConstructor = vnode.nodeName;\n\t\treturn p;\n\t}\n\n\tlet isOwner = c && dom._componentConstructor===vnode.nodeName;\n\twhile (c && !isOwner && (c=c._parentComponent)) {\n\t\tisOwner = c.constructor===vnode.nodeName;\n\t}\n\n\tif (isOwner) {\n\t\tc.setProps(getNodeProps(vnode), SYNC_RENDER);\n\t}\n\telse {\n\t\tif (c) {\n\t\t\tunmountComponent(dom, c);\n\t\t}\n\t\tdom = createComponentFromVNode(vnode);\n\t}\n\n\treturn dom;\n}\n\n\n/** @private Instantiate and render a Component, given a VNode whose nodeName is a constructor. */\nfunction createComponentFromVNode(vnode) {\n\tlet component = componentRecycler.create(vnode.nodeName);\n\n\tlet props = getNodeProps(vnode);\n\tcomponent.setProps(props, NO_RENDER);\n\tcomponent._render(DOM_RENDER);\n\n\t// let node = component.base;\n\t//if (!node._component) {\n\t//\tnode._component = component;\n\t//\tnode._componentConstructor = vnode.nodeName;\n\t//}\n\n\treturn component.base;\n}\n\n\n/** @private Remove a component from the DOM and recycle it. */\nfunction unmountComponent(dom, component) {\n\tconsole.warn('unmounting mismatched component', component);\n\n\tif (dom._component===component) {\n\t\tdelete dom._component;\n\t\tdelete dom._componentConstructor;\n\t}\n\thook(component, 'componentWillUnmount');\n\tlet base = component.base;\n\tif (base && base.parentNode) {\n\t\tbase.parentNode.removeChild(base);\n\t}\n\thook(component, 'componentDidUnmount');\n\tcomponentRecycler.collect(component);\n}\n\n\n/** @private Apply differences in a given vnode (and it's deep children) to a real DOM Node. */\nfunction build(dom, vnode) {\n\tlet out = dom,\n\t\tnodeName = vnode.nodeName;\n\n\tif (typeof nodeName==='function' && !nodeName.prototype.render) {\n\t\tvnode = buildFunctionalComponent(vnode);\n\t\tnodeName = vnode.nodeName;\n\t}\n\n\tif (typeof nodeName==='function') {\n\t\treturn buildComponentFromVNode(dom, vnode);\n\t}\n\n\tif (typeof vnode==='string') {\n\t\tif (dom) {\n\t\t\tif (dom.nodeType===3) {\n\t\t\t\tdom.textContent = vnode;\n\t\t\t\treturn dom;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (dom.nodeType===1) recycler.collect(dom);\n\t\t\t}\n\t\t}\n\t\treturn document.createTextNode(vnode);\n\t}\n\n\tif (nodeName===null || nodeName===undefined) {\n\t\tnodeName = 'x-undefined-element';\n\t}\n\n\tif (!dom) {\n\t\tout = recycler.create(nodeName);\n\t}\n\telse if (dom.nodeName.toLowerCase()!==nodeName) {\n\t\tout = recycler.create(nodeName);\n\t\tappendChildren(out, slice.call(dom.childNodes));\n\t\t// reclaim element nodes\n\t\tif (dom.nodeType===1) recycler.collect(dom);\n\t}\n\n\t// apply attributes\n\tlet old = getNodeAttributes(out) || EMPTY,\n\t\tattrs = vnode.attributes || EMPTY;\n\n\t// removed attributes\n\tif (old!==EMPTY) {\n\t\tfor (let name in old) {\n\t\t\tif (hop.call(old, name)) {\n\t\t\t\tlet o = attrs[name];\n\t\t\t\tif (o===undefined || o===null || o===false) {\n\t\t\t\t\tsetAccessor(out, name, null, old[name]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// new & updated attributes\n\tif (attrs!==EMPTY) {\n\t\tfor (let name in attrs) {\n\t\t\tif (hop.call(attrs, name)) {\n\t\t\t\tlet value = attrs[name];\n\t\t\t\tif (value!==undefined && value!==null && value!==false) {\n\t\t\t\t\tlet prev = getAccessor(out, name, old[name]);\n\t\t\t\t\tif (value!==prev) {\n\t\t\t\t\t\tsetAccessor(out, name, value, prev);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\n\tlet children = slice.call(out.childNodes);\n\tlet keyed = {};\n\tfor (let i=children.length; i--; ) {\n\t\tlet t = children[i].nodeType;\n\t\tlet key;\n\t\tif (t===3) {\n\t\t\tkey = t.key;\n\t\t}\n\t\telse if (t===1) {\n\t\t\tkey = children[i].getAttribute('key');\n\t\t}\n\t\telse {\n\t\t\tcontinue;\n\t\t}\n\t\tif (key) keyed[key] = children.splice(i, 1)[0];\n\t}\n\tlet newChildren = [];\n\n\tif (vnode.children) {\n\t\tfor (let i=0, vlen=vnode.children.length; i<vlen; i++) {\n\t\t\tlet vchild = vnode.children[i];\n\t\t\t// if (isFunctionalComponent(vchild)) {\n\t\t\t// \tvchild = buildFunctionalComponent(vchild);\n\t\t\t// }\n\t\t\tlet attrs = vchild.attributes,\n\t\t\t\tkey, child;\n\t\t\tif (attrs) {\n\t\t\t\tkey = attrs.key;\n\t\t\t\tchild = key && keyed[key];\n\t\t\t}\n\n\t\t\t// attempt to pluck a node of the same type from the existing children\n\t\t\tif (!child) {\n\t\t\t\tlet len = children.length;\n\t\t\t\tif (children.length) {\n\t\t\t\t\tfor (let j=0; j<len; j++) {\n\t\t\t\t\t\tif (isSameNodeType(children[j], vchild)) {\n\t\t\t\t\t\t\tchild = children.splice(j, 1)[0];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// morph the matched/found/created DOM child to match vchild (deep)\n\t\t\tnewChildren.push(build(child, vchild));\n\t\t}\n\t}\n\n\t// apply the constructed/enhanced ordered list to the parent\n\tfor (let i=0, len=newChildren.length; i<len; i++) {\n\t\t// we're intentionally re-referencing out.childNodes here as it is a live NodeList\n\t\tif (out.childNodes[i]!==newChildren[i]) {\n\t\t\tlet child = newChildren[i],\n\t\t\t\tc = child._component,\n\t\t\t\tnext = out.childNodes[i+1];\n\t\t\tif (c) deepHook(c, 'componentWillMount');\n\t\t\tif (next) {\n\t\t\t\tout.insertBefore(child, next);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tout.appendChild(child);\n\t\t\t}\n\t\t\tif (c) deepHook(c, 'componentDidMount');\n\t\t}\n\t}\n\n\t// remove orphaned children\n\tfor (let i=0, len=children.length; i<len; i++) {\n\t\tlet child = children[i],\n\t\t\tc = child._component;\n\t\tif (c) hook(c, 'componentWillUnmount');\n\t\tchild.parentNode.removeChild(child);\n\t\tif (c) {\n\t\t\thook(c, 'componentDidUnmount');\n\t\t\tcomponentRecycler.collect(c);\n\t\t}\n\t\telse if (child.nodeType===1) {\n\t\t\trecycler.collect(child);\n\t\t}\n\t}\n\n\treturn out;\n}\n\n\n/** @private */\nfunction createLinkedState(component, key, eventPath) {\n\tlet path = key.split('.'),\n\t\tp0 = path[0];\n\treturn function(e) {\n\t\tlet t = this,\n\t\t\tobj = component.state,\n\t\t\tv, i;\n\t\tif (typeof eventPath==='string') {\n\t\t\tv = delve(e, eventPath);\n\t\t\tif (empty(v) && (t=t._component)) {\n\t\t\t\tv = delve(t, eventPath);\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tv = (t.nodeName+t.type).match(/^input(checkbox|radio)$/i) ? t.checked : t.value;\n\t\t}\n\t\tif (typeof v==='function') v = v.call(t);\n\t\tfor (i=0; i<path.length-1; i++) {\n\t\t\tobj = obj[path[i]] || {};\n\t\t}\n\t\tobj[path[i]] = v;\n\t\tcomponent.setState({ [p0]: component.state[p0] });\n\t};\n}\n\n\n\n/** @private Managed re-rendering queue for dirty components. */\nlet renderQueue = {\n\titems: [],\n\titemsOffline: [],\n\tadd(component) {\n\t\tif (renderQueue.items.push(component)!==1) return;\n\n\t\tlet d = hooks.debounceRendering;\n\t\tif (d) d(renderQueue.process);\n\t\telse setTimeout(renderQueue.process, 0);\n\t},\n\tprocess() {\n\t\tlet items = renderQueue.items,\n\t\t\tlen = items.length;\n\t\tif (!len) return;\n\t\trenderQueue.items = renderQueue.itemsOffline;\n\t\trenderQueue.items.length = 0;\n\t\trenderQueue.itemsOffline = items;\n\t\twhile (len--) {\n\t\t\tif (items[len]._dirty) {\n\t\t\t\titems[len]._render();\n\t\t\t}\n\t\t}\n\t}\n};\n\n/** @private @function Trigger all pending render() calls. */\nlet rerender = renderQueue.process\n\n\n/** @private DOM node pool, keyed on nodeName. */\nlet recycler = {\n\tnodes: {},\n\tcollect(node) {\n\t\trecycler.clean(node);\n\t\tlet name = recycler.normalizeName(node.nodeName),\n\t\t\tlist = recycler.nodes[name];\n\t\tif (list) list.push(node);\n\t\telse recycler.nodes[name] = [node];\n\t},\n\tcreate(nodeName) {\n\t\tlet name = recycler.normalizeName(nodeName),\n\t\t\tlist = recycler.nodes[name];\n\t\treturn list && list.pop() || document.createElement(nodeName);\n\t},\n\tclean(node) {\n\t\tnode.remove();\n\n\t\tif (node.nodeType===3) return;\n\n\t\tdelete node._component;\n\t\tdelete node._componentConstructor;\n\n\t\t// remove event listeners & registry\n\t\tlet l = node._listeners;\n\t\tdelete node._listeners;\n\t\tif (l) for (let i in l) node.removeEventListener(i, eventProxy);\n\n\t\t// strip attributes\n\t\tlet len = node.attributes && node.attributes.length;\n\t\tif (len) for (let i=len; i--; ) {\n\t\t\tnode.removeAttribute(node.attributes[i].name);\n\t\t}\n\n\t\t// if (node.childNodes.length>0) {\n\t\t// \tconsole.warn(`Warning: Recycler collecting <${node.nodeName}> with ${node.childNodes.length} children.`);\n\t\t// \tslice.call(node.childNodes).forEach(recycler.collect);\n\t\t// }\n\t},\n\tnormalizeName: memoize(name => name.toUpperCase())\n};\n\n\n/** @private Retains a pool of Components for re-use, keyed on component name. */\nlet componentRecycler = {\n\tcomponents: {},\n\tcollect(component) {\n\t\tlet name = component.constructor.name,\n\t\t\tlist = componentRecycler.components[name];\n\t\tif (list) list.push(component);\n\t\telse componentRecycler.components[name] = [component];\n\t},\n\tcreate(ctor) {\n\t\tlet list = componentRecycler.components[ctor.name];\n\t\tif (list && list.length) {\n\t\t\tfor (let i=list.length; i--; ) {\n\t\t\t\tif (list[i].constructor===ctor) {\n\t\t\t\t\treturn list.splice(i, 1)[0];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn new ctor();\n\t}\n};\n\n\n/** @private Append children to a Node.\n *\tUses a Document Fragment to batch when appending 2 or more children\n */\nfunction appendChildren(parent, children) {\n\tlet len = children.length;\n\tif (len<=2) {\n\t\tparent.appendChild(children[0]);\n\t\tif (len===2) parent.appendChild(children[1]);\n\t\treturn;\n\t}\n\n\tlet frag = document.createDocumentFragment();\n\tfor (let i=0; i<len; i++) frag.appendChild(children[i]);\n\tparent.appendChild(frag);\n}\n\n\n/** @private Get the value of a rendered attribute */\nfunction getAccessor(node, name, value) {\n\tif (name==='class') return node.className;\n\tif (name==='style') return node.style.cssText;\n\treturn value;\n}\n\n\n/** @private Set a named attribute on the given Node, with special behavior for some names and event handlers.\n *\tIf `value` is `null`, the attribute/handler will be removed.\n */\nfunction setAccessor(node, name, value, old) {\n\tif (name==='class') {\n\t\tnode.className = value;\n\t}\n\telse if (name==='style') {\n\t\tnode.style.cssText = value;\n\t}\n\telse {\n\t\tsetComplexAccessor(node, name, value, old);\n\t}\n}\n\n\n/** @private For props without explicit behavior, apply to a Node as event handlers or attributes. */\nfunction setComplexAccessor(node, name, value, old) {\n\tif (name.substring(0,2)==='on') {\n\t\tlet type = normalizeEventName(name),\n\t\t\tl = node._listeners || (node._listeners = {});\n\t\tif (!l[type]) node.addEventListener(type, eventProxy);\n\t\tl[type] = value;\n\t\t// @TODO automatically remove proxy event listener when no handlers are left\n\t\treturn;\n\t}\n\n\tlet type = typeof value;\n\tif (value===null) {\n\t\tnode.removeAttribute(name);\n\t}\n\telse if (type!=='function' && type!=='object') {\n\t\tnode.setAttribute(name, value);\n\t}\n}\n\n\n/** @private Proxy an event to hooked event handlers */\nfunction eventProxy(e) {\n\tlet l = this._listeners,\n\t\tfn = l[normalizeEventName(e.type)];\n\tif (fn) return fn.call(this, hook(hooks, 'event', e) || e);\n}\n\nlet normalizeEventName = memoize(t => t.replace(/^on/i,'').toLowerCase());\n\n\n\n/** @private Get a node's attributes as a hashmap, regardless of type. */\nfunction getNodeAttributes(node) {\n\tlet list = node.attributes;\n\tif (!list || !list.getNamedItem) return list;\n\tif (list.length) return getAttributesAsObject(list);\n}\n\n\n/** @private Convert a DOM `.attributes` NamedNodeMap to a hashmap. */\nfunction getAttributesAsObject(list) {\n\tlet attrs = {};\n\tfor (let i=list.length; i--; ) {\n\t\tlet item = list[i];\n\t\tattrs[item.name] = item.value;\n\t}\n\treturn attrs;\n}\n\n\n/** @private Reconstruct `props` from a VNode */\nfunction getNodeProps(vnode) {\n\tlet props = extend({}, vnode.attributes);\n\tif (vnode.children) {\n\t\tprops.children = vnode.children;\n\t}\n\tif (vnode.text) {\n\t\tprops._content = vnode.text;\n\t}\n\treturn props;\n}\n\n\n/** @private Convert a hashmap of styles to CSSText */\nfunction styleObjToCss(s) {\n\tlet str = '',\n\t\tsep = ': ',\n\t\tterm = '; ';\n\tfor (let prop in s) {\n\t\tif (hop.call(s, prop)) {\n\t\t\tlet val = s[prop];\n\t\t\tstr += jsToCss(prop);\n\t\t\tstr += sep;\n\t\t\tstr += val;\n\t\t\tif (typeof val==='number' && !hop.call(NON_DIMENSION_PROPS, prop)) {\n\t\t\t\tstr += 'px';\n\t\t\t}\n\t\t\tstr += term;\n\t\t}\n\t}\n\treturn str;\n}\n\n\n/** @private Convert a hashmap of CSS classes to a space-delimited className string */\nfunction hashToClassName(c) {\n\tlet str = '';\n\tfor (let prop in c) {\n\t\tif (c[prop]) {\n\t\t\tif (str) str += ' ';\n\t\t\tstr += prop;\n\t\t}\n\t}\n\treturn str;\n}\n\n\n/** @private @function Convert a JavaScript camel-case CSS property name to a CSS property name */\nlet jsToCss = memoize( s => s.replace(/([A-Z])/,'-$1').toLowerCase() );\n\n\n/** @private Copy own-properties from `props` onto `obj`. Returns `obj`. */\nfunction extend(obj, props) {\n\tfor (let i in props) if (hop.call(props, i)) {\n\t\tobj[i] = props[i];\n\t}\n\treturn obj;\n}\n\n\nexport { options, hooks, rerender };\nexport default { options, hooks, render, rerender, h, Component };\n"]} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment