UNPKG

sinuous

Version:

🧬 Small, fast, reactive render engine

2 lines (1 loc) • 2.35 kB
var sinuous=function(n,e,t){var f={},i=[],r="__g";function o(n,e,t,f){if(t){if(e){if(!f){var i=(f=t.previousSibling||n.lastChild)[r];if(i)for(f=f.previousSibling;f&&f[r]!==i;)f=f.previousSibling}for(var o;f&&f!==t;)o=f.nextSibling,n.removeChild(f),f[r]=0,f=o}}else n.textContent=""}var u=0;function s(n,e,t,c){n=t&&t.parentNode||n;var l=typeof e;return e===c||(!e&&0!==e||!0===e?(o(n,c,t),c=null):c&&"string"!=typeof c||!("string"===l||"number"===l&&(e+=""))?"function"===l?f.subscribe(function(){c=s(n,e(),t,c)}):(o(n,c,t),e instanceof Node||(e=f.h(i,e)),11===e.nodeType&&e.firstChild!==e.lastChild&&(e.firstChild[r]=e.lastChild[r]=++u),n.insertBefore(e,t||null),c=e):(null!=c&&n.firstChild?t?(t.previousSibling||n.lastChild).data=e:n.firstChild.data=e:t?n.insertBefore(document.createTextNode(e),t):n.textContent=e,c=e)),c}function c(n,e){for(var t in n)f[t]=n[t];function r(){var n,t=i.slice.call(arguments);function f(i){var r=typeof i;if(null==i);else if("string"===r)n?n.appendChild(document.createTextNode(i)):n=e?document.createElementNS("http://www.w3.org/2000/svg",i):document.createElement(i);else if(Array.isArray(i))n||(n=document.createDocumentFragment()),i.forEach(f);else if(i instanceof Node)n?n.appendChild(i):n=i;else if("object"===r)for(var o in i)l(o,i[o],n,e);else if("function"===r)if(n){var u=n.appendChild(document.createTextNode(""));i.$t?i.$t(1,s,n,""):s(n,i,u)}else n=i.apply(null,t.splice(0));else n.appendChild(document.createTextNode(""+i))}for(;t.length;)f(t.shift());return n}return f.h=r,r}function l(n,e,t,i,r){if("o"!==n[0]||"n"!==n[1]||e.$o)if("function"==typeof e)e.$t?e.$t(2,l,t,n):f.subscribe(function(){l(n,e(),t,i,r)});else if(r)t.style.setProperty(n,e);else if(i||"data-"===n.slice(0,5)||"aria-"===n.slice(0,5))t.setAttribute(n,e);else if("style"===n)if("string"==typeof e)t.style.cssText=e;else for(n in e)l(n,e[n],t,i,!0);else if("attrs"===n)for(n in e)l(n,e[n],t,!0);else"class"===n&&(n+="Name"),t[n]=e;else!function(n,e,t){e=e.slice(2);var i=f.cleanup(function(){return n.removeEventListener(e,a)});t?n.addEventListener(e,a):i(),(n.t||(n.t={}))[e]=t}(t,n,e)}function a(n){return this.t[n.type](n)}var v=c(e),d=c(e,!0),m=e.o;return n.api=f,n.context=c,n.h=v,n.hs=d,n.html=function(){return t.apply(v,arguments)},n.o=m,n.observable=m,n.svg=function(){return t.apply(d,arguments)},n}({},observable,htm);