Skip to content

Instantly share code, notes, and snippets.

@developit
Created November 2, 2015 13:17
Show Gist options
  • Select an option

  • Save developit/288f3afdca4e17971d94 to your computer and use it in GitHub Desktop.

Select an option

Save developit/288f3afdca4e17971d94 to your computer and use it in GitHub Desktop.
!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=f(n,e),s=!r&&o._component;return s&&i(s,"componentWillMount"),f.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 j(e,t||void 0,c||void 0);return o(M,"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,t,n){var r=e&&e._component,o=C(t);if(l(t)){var i=f(e,t.nodeName(o)||S,n);return i._componentConstructor=t.nodeName,i}for(var s=r&&e._componentConstructor===t.nodeName;r&&!s&&(r=r._parentComponent);)s=r.constructor===t.nodeName;return s?r.setProps(o,U):(r&&p(e,r),e=d(t)),e}function d(e){var t=G.create(e.nodeName),n=C(e);t.setProps(n,T),t._render(R);var r=t.base;return r}function p(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"),G.collect(t)}function f(e,t,n){var r=e,s=t.nodeName;if("function"==typeof s)return u(e,t,n);if("string"==typeof t){if(e){if(3===e.nodeType)return e.textContent=t,e;1===e.nodeType&&V.collect(e)}return document.createTextNode(t)}(null===s||void 0===s)&&(s="x-undefined-element"),e?e.nodeName.toLowerCase()!==s&&(r=V.create(s),m(r,D.call(e.childNodes)),1===e.nodeType&&V.collect(e)):r=V.create(s);var a=b(r)||P,l=t.attributes||P;if(a!==P)for(var d in a)if(W.call(a,d)){var p=l[d];(void 0===p||null===p||p===!1)&&g(r,d,null,a[d])}if(l!==P)for(var h in l)if(W.call(l,h)){var y=l[h];if(void 0!==y&&null!==y&&y!==!1){var _=v(r,h,a[h]);y!==_&&g(r,h,y,_)}}for(var N=D.call(r.childNodes),C={},x=N.length;x--;){var k=N[x].nodeType,w=void 0;if(3===k)w=k.key;else{if(1!==k)continue;w=N[x].getAttribute("key")}w&&(C[w]=N.splice(x,1)[0])}var T=[];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 O=N.length;if(N.length)for(var z=0;O>z;z++)if(c(N[z],R)){A=N.splice(z,1)[0];break}}T.push(f(A,R))}for(var x=0,O=T.length;O>x;x++)if(r.childNodes[x]!==T[x]){var A=T[x],L=A._component,M=r.childNodes[x+1];L&&i(L,"componentWillMount"),M?r.insertBefore(A,M):r.appendChild(A),L&&i(L,"componentDidMount")}for(var x=0,O=N.length;O>x;x++){var A=N[x],L=A._component;L&&o(L,"componentWillUnmount"),A.parentNode.removeChild(A),L?(o(L,"componentDidUnmount"),G.collect(L)):1===A.nodeType&&V.collect(A)}return r}function h(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=z(t,n),a(l)&&(s=s._component)&&(l=z(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 m(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 v(e,t,n){return"class"===t?e.className:"style"===t?e.style.cssText:n}function g(e,t,n,r){"class"===t?e.className=n:"style"===t?e.style.cssText=n:y(e,t,n,r)}function y(e,t,n,r){if("on"===t.substring(0,2)){var o=$(t),i=e._listeners||(e._listeners={});return i[o]||e.addEventListener(o,_),void(i[o]=n)}var s=typeof n;null===n?e.removeAttribute(t):"function"!==s&&"object"!==s&&e.setAttribute(t,n)}function _(e){var t=this._listeners,n=t[$(e.type)];return n?n.call(this,o(M,"event",e)||e):void 0}function b(e){var t=e.attributes;return t&&t.getNamedItem?t.length?N(t):void 0:t}function N(e){for(var t={},n=e.length;n--;){var r=e[n];t[r.name]=r.value}return t}function C(e){var t=w({},e.attributes);return e.children&&(t.children=e.children),e.text&&(t._content=e.text),t}function x(e){var t="",n=": ",r="; ";for(var o in e)if(W.call(e,o)){var i=e[o];t+=B(o),t+=n,t+=i,"number"!=typeof i||W.call(A,o)||(t+="px"),t+=r}return t}function k(e){var t="";for(var n in e)e[n]&&(t&&(t+=" "),t+=n);return t}function w(e,t){for(var n in t)W.call(t,n)&&(e[n]=t[n]);return e}e.render=n,e.h=r;var P={},T={render:!1},U={renderSync:!0},R={build:!0},S="",A={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},D=Array.prototype.slice,W=Object.prototype.hasOwnProperty,O=function(e){var t=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];return function(n){return W.call(t,n)?t[n]:t[n]=e(n)}},z=function(e,t){return t.split(".").reduce(function(e,t){return e&&e[t]},e)},L={syncComponentUpdates:!0},M={};M.vnode=function(e){var t=e.attributes;if(t){var n=t.style;n&&!n.substring&&(t.style=x(n));var r=t["class"];W.call(t,"className")&&(r=t["class"]=t.className,delete t.className),r&&!r.substring&&(t["class"]=k(r))}};var E=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]=h(this,e,t))},e.prototype.setState=function(e){w(this.state,e),this.triggerRender()},e.prototype.setProps=function(e){var t=arguments.length<=1||void 0===arguments[1]?P: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||L.syncComponentUpdates?this._render():this.triggerRender())},e.prototype.triggerRender=function(){this._dirty||(this._dirty=!0,F.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&&(p(this.base,c),c=null);var l=C(r);c?(c.setProps(l,U),a=c.base):(c=G.create(s),c._parentComponent=this,this._component=c,this.base&&i(c,"componentWillMount"),c.setProps(l,T),c._render(e),this.base&&i(c,"componentDidMount"),a=c.base)}else this._component&&p(this.base,this._component),this._component=null,(this.base||e&&e.build)&&(a=f(this.base,r||S,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=E;var j=function H(e,n,r){t(this,H),this.nodeName=e,this.attributes=n,this.children=r};e.VNode=j,j.prototype.__isVNode=!0;var F={items:[],itemsOffline:[],add:function(e){if(1===F.items.push(e)){var t=M.debounceRendering;t?t(F.process):setTimeout(F.process,0)}},process:function(){var e=F.items,t=e.length;if(t)for(F.items=F.itemsOffline,F.items.length=0,F.itemsOffline=e;t--;)e[t]._dirty&&e[t]._render()}},I=F.process,V={nodes:{},collect:function(e){V.clean(e);var t=V.normalizeName(e.nodeName),n=V.nodes[t];n?n.push(e):V.nodes[t]=[e]},create:function(e){var t=V.normalizeName(e),n=V.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,_);var r=e.attributes&&e.attributes.length;if(r)for(var n=r;n--;)e.removeAttribute(e.attributes[n].name);e.childNodes.length>0&&D.call(e.childNodes).forEach(V.collect)}},normalizeName:O(function(e){return e.toUpperCase()})},G={components:{},collect:function(e){var t=e.constructor.name,n=G.components[t];n?n.push(e):G.components[t]=[e]},create:function(e){var t=G.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}},$=O(function(e){return e.replace(/^on/i,"").toLowerCase()}),B=O(function(e){return e.replace(/([A-Z])/,"-$1").toLowerCase()});e.options=L,e.hooks=M,e.rerender=I,e["default"]={options:L,hooks:M,render:n,rerender:I,h:r,Component:E}});
//# sourceMappingURL=preact.js.map
{"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","buildComponentFromVNode","dom","rootComponent","props","getNodeProps","EMPTY_BASE","isOwner","_parentComponent","constructor","setProps","SYNC_RENDER","unmountComponent","createComponentFromVNode","componentRecycler","create","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","forEach","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\tconsole.log('found nested component:'+ childComponent);\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\tconsole.log(' > found instance, triggering prop update');\n\t\t\t\tinst.setProps(childProps, SYNC_RENDER);\n\t\t\t\tconsole.log('prop update complete', this.constructor, inst.constructor);\n\t\t\t\tbase = inst.base;\n\t\t\t\tconsole.log(' base:' + base);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tconsole.log(' > NO instance, creating...');\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\tconsole.log(' base:' + 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\n// function 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, rootComponent) {\n\tlet c = dom && dom._component,\n\t\tprops = getNodeProps(vnode);\n\n\tif (isFunctionalComponent(vnode)) {\n\t\tlet p = build(dom, vnode.nodeName(props) || EMPTY_BASE, rootComponent);\n\t\tp._componentConstructor = vnode.nodeName;\n\t\treturn p;\n\t}\n\n\t// let p = rootComponent || c, r;\n\t// while (p && (r = p._component)) {\n\t// \tif (r===vnode.nodeName) {\n\t// \t\tconsole.log('bypassing');\n\t// \t\t// let props = getNodeProps(vnode);\n\t// \t\t// p.setProps(props, SYNC_RENDER);\n\t// \t\tif (p._componentInstance) {\n\t// \t\t\tp._componentInstance.setProps(props, SYNC_RENDER);\n\t// \t\t}\n\t// \t\telse {\n\t// \t\t\tlet inst = componentRecycler.create(vnode.nodeName);\n\t// \t\t\tinst.base = p.base;\n\t// \t\t\tinst.setProps(props, SYNC_RENDER);\n\t// \t\t\tp._componentInstance = inst;\n\t// \t\t}\n\t// \t\treturn dom;\n\t// \t}\n\t// \tp = r;\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\t// let props = getNodeProps(vnode);\n\t\tc.setProps(props, SYNC_RENDER);\n\t}\n\telse {\n\t\tif (c) {\n\t\t\tconsole.log(' >>> ' + c.constructor.name + ' === ' + rootComponent.constructor.name);\n\t\t\tunmountComponent(dom, c);\n\t\t}\n\t\tdom = createComponentFromVNode(vnode);\n\t}\n\n\t// if (dom && rootComponent) {\n\t// \tdom._component = rootComponent;\n\t// \tdom._componentConstructor = rootComponent.constructor;\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\tlet node = component.base;\n\t//if (!node._component) {\n\t//\tnode._component = component;\n\t//\tnode._componentConstructor = vnode.nodeName;\n\t//}\n\n\treturn node;\n}\n\n\n/** @private Remove a component from the DOM and recycle it. */\nfunction unmountComponent(dom, component) {\n\t// let stack = '';\n\t// try { throw new Error(); } catch(err) { stack = String(err.stack).replace(/\\s*\\(.+$/gm,'').split('\\n').slice(1,11).join('\\n'); }\n\tconsole.warn('unmounting mismatched component', component && component.constructor);\t\t// , '\\n'+stack\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, rootComponent) {\n\tlet out = dom,\n\t\tnodeName = vnode.nodeName;\n\n\t// if (typeof nodeName==='function' && !nodeName.prototype.render) {\n\t// \tvnode = nodeName(getNodeProps(vnode)) || EMPTY_BASE;\n\t// \tnodeName = vnode.nodeName;\n\t// }\n\n\tif (typeof nodeName==='function') {\n\t\treturn buildComponentFromVNode(dom, vnode, rootComponent);\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\t// else if (rootComponent && dom._component && dom._component!==rootComponent) {\n\t// \tunmountComponent(dom, dom._component);\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\tconsole.trace('REMOVE: <'+node.nodeName+[].map.call(node.attributes||[],a=>` ${a.name}=\"${a.value}\"`)+'>');\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\tif (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