lightwrite
Version:
A lightweight HTML element builder
1 lines • 2.8 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.lw=t():e.lw=t()}(self,(()=>(()=>{"use strict";var e={156:(e,t,r)=>{const n=r(438);function o(e,...t){const r=[],n=Math.max(e.length,t.length);for(let o=0;o<n;o++)r.push(e[o]??"",t[o]??"");return r.join("")}function i(e,t){return!(!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length&&e.length!==t.length+1)}let a=Object.defineProperties((e=>{let t=document.createElement(e),r=new Proxy(((...e)=>{let a,[l,...s]=e;if(i(l,s)){if(!Array.isArray(l))return;a=[o(l,s)]}else a=Array.isArray(e[0])?e[0]:e;return a.forEach(((e,r)=>function(e,r){switch("TEXT"===(o=e)[n.TYPE_SYMBOL]?"text":"HTML"===o[n.TYPE_SYMBOL]?"html":o instanceof HTMLElement?"HTMLElement":o[n.ELEMENT_SYMBOL]instanceof HTMLElement?"LightWrite":"string"==typeof o?"string":"unknown"){case"text":t.insertAdjacentText("beforeend",e.value);break;case"string":t.insertAdjacentHTML("beforeend",e);break;case"html":t.insertAdjacentHTML("beforeend",e.value);break;case"HTMLElement":t.insertAdjacentElement("beforeend",e);break;case"LightWrite":t.insertAdjacentElement("beforeend",e[n.ELEMENT_SYMBOL]);break;default:throw new TypeError("Invalid Parameter at index: "+r)}var o}(e,r))),r}),{get:(e,a)=>{if(a===n.ELEMENT_SYMBOL)return t;if(a!==n.TYPE_SYMBOL){if("symbol"==typeof a)throw new TypeError("Symbols are not allowed "+a.toString());return(e,...n)=>{if(i(e,n)){if(!Array.isArray(e))return;e=o(e,n)}return null==e?t.removeAttribute(a):t.setAttribute(a,e.toString()),r}}}});return r}),{text:{value:e=>{if("string"==typeof e)return new n.TextType(e);throw new TypeError("Invalid value: "+e)}},html:{value:e=>{if("string"==typeof e)return new n.HTMLType(e);throw new TypeError("Invalid value: "+e)}},as:{value:Object.defineProperties((function(e,t){if("element"!==t&&"string"!==t)throw new TypeError("Invalid type: "+t);let r=e[n.ELEMENT_SYMBOL];return"element"===t?r:r.outerHTML}),{string:{value:e=>e[n.ELEMENT_SYMBOL].outerHTML},element:{value:e=>e[n.ELEMENT_SYMBOL]}})},elements:{value:new Proxy({},{get(e,t){if("symbol"==typeof t)throw new TypeError("Invalid Argument at index: 0");return a(t)}})}});e.exports=Object.defineProperty(a,"default",{value:a})},438:(e,t)=>{var r,n;Object.defineProperty(t,"__esModule",{value:!0}),t.HTMLType=t.TextType=t.TYPE_SYMBOL=t.ELEMENT_SYMBOL=void 0,t.ELEMENT_SYMBOL=Symbol.for("LW_Output_Element"),t.TYPE_SYMBOL=Symbol.for("Type"),t.TextType=class{constructor(e){this[r]="TEXT",this.value=e}},r=t.TYPE_SYMBOL,t.HTMLType=class{constructor(e){this[n]="HTML",this.value=e}},n=t.TYPE_SYMBOL}},t={};return function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}};return e[n](i,i.exports,r),i.exports}(156)})()));