UNPKG

janadom

Version:

A minimal and complete implementation of React JSX creating native DOM elements.

3 lines (2 loc) 2.79 kB
(function(root,factory){if(typeof define==="function"&&define.amd){define(factory);}else if(typeof module==="object"&&module.exports){module.exports=factory();}else{root.janadom=factory();}}(typeof self!=="undefined"?self:this,()=>{var c=Object.defineProperty;var d=(t,e)=>{for(var r in e)c(t,r,{get:e[r],enumerable:!0})};var g={};d(g,{createEl:()=>p,createRef:()=>s});var l=["altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","animation","circle","clipPath","color-profile","cursor","defs","desc","discard","ellipse","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignObject","g","glyph","glyphRef","handler","hkern","line","linearGradient","listener","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","prefetch","radialGradient","rect","set","solidColor","stop","switch","symbol","tbreak","text","textArea","textPath","tref","tspan","unknown","use","view","vkern"];function s(t=null){return{current:t}}function p(t,e,...r){let n;if(typeof t=="string")n=l.includes(t)?document.createElementNS("http://www.w3.org/2000/svg",t):document.createElement(t);else if(t===DocumentFragment)n=document.createDocumentFragment();else{if(typeof t=="function")return t(e,...r);throw new TypeError(`invalid element type ${t}`)}for(let i in e){let o=e[i];o!=null&&o!==!1&&(i==="ref"?typeof o=="object"?o.current=n:typeof o=="function"?o(n):f(n,i,o):i==="style"?typeof o!="object"?f(n,i,o):Object.assign(n.style,o):i.startsWith("on")&&typeof o=="function"?m(n,i,o):f(n,i,o))}let u=n instanceof HTMLTemplateElement?n.content:n;for(let i of r)a(u,i);return n}function f(t,e,r){if(typeof r=="string")e.startsWith("xlink:")?t.setAttributeNS("http://www.w3.org/1999/xlink",e,r):t.setAttribute(e,r);else if(typeof r=="number")t.setAttribute(e,r.toString());else if(typeof r=="boolean")t.setAttribute(e,"");else throw new TypeError(`invalid attribute type ${typeof r} for ${e}`)}function m(t,e,r){let n;e.endsWith("Capture")?(e=e.substring(2,e.length-7),n=!0):e=e.substr(2),t.addEventListener(e.toLowerCase(),r,n)}function a(t,e){if(typeof e=="string")t.appendChild(document.createTextNode(e));else if(typeof e=="number")t.appendChild(document.createTextNode(e.toString()));else if(e instanceof Element)t.appendChild(e);else if(Array.isArray(e))for(let r of e)a(t,r)}return g;})); //# sourceMappingURL=index.umd.min.js.map