Skip to content

Instantly share code, notes, and snippets.

@developit
Created November 2, 2015 02:12
Show Gist options
  • Select an option

  • Save developit/08da766cb62f8bb8721a to your computer and use it in GitHub Desktop.

Select an option

Save developit/08da766cb62f8bb8721a 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=h(n,e),o=r._component;return o&&i(o,"componentWillMount"),t.appendChild(r),o&&i(o,"componentDidMount"),r}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(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){return e.nodeName(x(e))||A}function d(e,t,n){var r=e&&e._component;if(l(t)){var o=h(e,u(t),n);return o._componentConstructor=t.nodeName,o}var i=r&&e._componentConstructor===t.nodeName;if(r&&!i)for(;r=r._parentComponent;)if(r.constructor===t.nodeName){i=!0;break}if(i){var s=x(t);r.setProps(s,U)}else r&&f(e,r),e=p(t);return e}function p(e){var t=G.create(e.nodeName),n=x(e);t.setProps(n,S),t._render(R);var r=t.base;return r}function f(e,t){var n="";try{throw new Error}catch(r){n=String(r.stack).replace(/\s*\(.+$/gm,"").split("\n").slice(1,11).join("\n")}e._component===t&&(delete e._component,delete e._componentConstructor),o(t,"componentWillUnmount");var i=t.base;i&&i.parentNode&&i.parentNode.removeChild(i),o(t,"componentDidUnmount"),G.collect(t)}function h(e,t,n){var r=e,s=t.nodeName;if("function"==typeof s)return d(e,t,n);if("string"==typeof t){if(e){if(3===e.nodeType)return e.textContent=t,e;1===e.nodeType&&$.collect(e)}return document.createTextNode(t)}(null===s||void 0===s)&&(s="x-undefined-element"),e?e.nodeName.toLowerCase()!==s&&(r=$.create(s),v(r,W.call(e.childNodes)),1===e.nodeType&&$.collect(e)):r=$.create(s);var a=N(r)||T,l=t.attributes||T;if(a!==T)for(var u in a)if(O.call(a,u)){var p=l[u];(void 0===p||null===p||p===!1)&&y(r,u,null,a[u])}if(l!==T)for(var f in l)if(O.call(l,f)){var m=l[f];if(void 0!==m&&null!==m&&m!==!1){var _=g(r,f,a[f]);m!==_&&y(r,f,m,_)}}for(var b=W.call(r.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,S=t.children.length;S>x;x++){var U=t.children[x],R=U.attributes,w=void 0,A=void 0;if(R&&(w=R.key,A=w&&C[w]),!A){var D=b.length;if(b.length)for(var z=0;D>z;z++)if(c(b[z],U)){A=b.splice(z,1)[0];break}}P.push(h(A,U))}for(var x=0,D=P.length;D>x;x++)if(r.childNodes[x]!==P[x]){var A=P[x],E=A._component,L=r.childNodes[x+1];E&&i(E,"componentWillMount"),L?r.insertBefore(A,L):r.appendChild(A),E&&i(E,"componentDidMount")}for(var x=0,D=b.length;D>x;x++){var A=b[x],E=A._component;E&&o(E,"componentWillUnmount"),A.parentNode.removeChild(A),E?(o(E,"componentDidUnmount"),G.collect(E)):1===A.nodeType&&$.collect(A)}return r}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=E(t,n),a(l)&&(s=s._component)&&(l=E(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(M,"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={},S={render:!1},U={renderSync:!0},R={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)}},E=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=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||L.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,U),a=c.base):(c=G.create(s),c._parentComponent=this,this._component=c,this.base&&i(c,"componentWillMount"),c.setProps(l,S),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=M.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,$={nodes:{},collect:function(e){$.clean(e);var t=$.normalizeName(e.nodeName),n=$.nodes[t];n?n.push(e):$.nodes[t]=[e]},create:function(e){var t=$.normalizeName(e),n=$.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);e.childNodes.length>0&&W.call(e.childNodes).forEach($.collect)}},normalizeName:z(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}},B=z(function(e){return e.replace(/^on/i,"").toLowerCase()}),H=z(function(e){return e.replace(/([A-Z])/,"-$1").toLowerCase()});e.options=L,e.hooks=M,e.rerender=V,e["default"]={options:L,hooks:M,render:n,rerender:V,h:r,Component:j}});
//# sourceMappingURL=preact.js.map
{"version":3,"file":"preact.js","sources":["preact.js"],"names":["render","component","parent","merge","arguments","length","undefined","built","build","c","_component","deepHook","appendChild","h","nodeName","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","_componentConstructor","toLowerCase","_ref2","prototype","buildFunctionalComponent","getNodeProps","EMPTY_BASE","buildComponentFromVNode","dom","rootComponent","isOwner","_parentComponent","constructor","props","setProps","SYNC_RENDER","unmountComponent","createComponentFromVNode","componentRecycler","create","NO_RENDER","_render","DOM_RENDER","base","stack","Error","err","replace","split","slice","parentNode","removeChild","collect","out","textContent","recycler","document","createTextNode","appendChildren","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","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"],"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 built = build(merge, component),\n\t\tc = built._component;\n\tif (c) deepHook(c, 'componentWillMount');\n\tparent.appendChild(built);\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 getComponentForNode(node) {\n\tlet c = node._componentConstructor;\n\twhile ( c.parent ) c = c.parent;\n\treturn c;\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, rootComponent) {\n\tlet c = dom && dom._component;\n\n\t// let props = getNodeProps(vnode);\n\n\tif (isFunctionalComponent(vnode)) {\n\t\tlet p = build(dom, buildFunctionalComponent(vnode), 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\tif (c && !isOwner) {\n\t\twhile (c=c._parentComponent) {\n\t\t\tif (c.constructor===vnode.nodeName) {\n\t\t\t\tisOwner = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (isOwner) {\n\t\tlet 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\tif (!node) {\n\t\tconsole.log('no base returned from '+vnode.nodeName.name);\n\t}\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\tlet stack = '';\n\ttry { 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, '\\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