-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdElement-min.js
8 lines (7 loc) · 15.7 KB
/
dElement-min.js
1
2
3
4
5
6
7
8
/*!
delement.js ö
K345 2006-2022
dElement() http://js.knrs.de
No recent or fancy programming styles or es6+ versions will be used for now.
*/
var K345=K345||{};K345.attrNames=K345.attrNames||{acceptcharset:"acceptCharset",accesskey:"accessKey",alink:"aLink",bgcolor:"bgColor",cellindex:"cellIndex",cellpadding:"cellPadding",cellspacing:"cellSpacing",charoff:"chOff","class":"className",codebase:"codeBase",codetype:"codeType",colspan:"colSpan",datetime:"dateTime","for":"htmlFor",frameborder:"frameBorder",framespacing:"frameSpacing",ismap:"isMap",longdesc:"longDesc",marginheight:"marginHeight",marginwidth:"marginWidth",maxlength:"maxLength",nohref:"noHref",noresize:"noResize",nowrap:"noWrap",readonly:"readOnly",rowindex:"rowIndex",rowspan:"rowSpan",tabindex:"tabIndex",usemap:"useMap",valign:"vAlign",vlink:"vLink"};K345.voidElements=K345.voidElements||["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"];(function(l,M){"use strict";var u=Array.prototype.slice,t=(/[#\.=\[\]:\s]+/),v,F,y,V,H,s,W,J,G,k,S,i,d,x,r,A,j;k=(function(){return(D(Object,"hasOwn"))?function(ab,ac){return Object.hasOwn(ab,ac);}:function(ab,ac){return Object.prototype.hasOwnProperty.call(ab,ac);};})();function P(ab){return m(ab)&&"nodeType" in ab&&this.indexOf(ab.nodeType)>-1;}d=P.bind([Node.ELEMENT_NODE]);i=P.bind([Node.ELEMENT_NODE,Node.DOCUMENT_FRAGMENT_NODE]);x=P.bind([Node.ELEMENT_NODE,Node.TEXT_NODE,Node.COMMENT_NODE,Node.DOCUMENT_FRAGMENT_NODE]);r=P.bind([Node.TEXT_NODE]);function p(ab){return ab.replace(/\-./g,function(ac){return ac.substr(1).toUpperCase();});}function L(ab){return typeof ab==="string";}function m(ab){return ab!==null&&typeof ab==="object"&&!Array.isArray(ab);}function D(ad,ab){var ac=typeof ad[ab];return("function|unknown".indexOf(ac)>-1)||(ac==="object"&&Boolean(ad[ab]));}function aa(ad){var ac={},ab,ae;for(ab in ad){if(k(ad,ab)){ae=ad[ab];if(Array.isArray(ae)){ac[ab]=u.call(ae,0);}else{if(m(ae)){ac[ab]=aa(ae);}else{ac[ab]=ae;}}}}return ac;}S=(function(){var ab;function ac(ae){var ad;if(!this||!(this instanceof Error)){throw new S(ae);}this.message="dElement Error:\n"+ae+"\n";this.name="dError";ad=new Error(this.message);ad.name=this.name;this.stack=ad.stack;console.error(this.message);if(D(console,"trace")){console.trace(arguments);}}if(D(Object,"create")){ac.prototype=Object.create(Error.prototype);}else{ab=function(){};ab.prototype=Error.prototype;ac.prototype=new ab();}return ac;})();function o(ac,ab){var ad;for(ad in ab){if(k(ac,ad)){ac[ab[ad]]=ac[ad];delete ac[ad];}}return ac;}W=["type","name","value","checked","selected"];H=["element","elrefs","clone","clonetop"];G=["text","event","attribute","setif","html","child","comment","collect"];s=["id","name"];V=0;J=["checked","compact","declare","defer","disabled","ismap","multiple","nohref","noresize","noshade","nowrap","readonly","selected"];function O(ac){var ab,ae,af=ac.val,ad=ac.el;af=o(af,{"function":"func","arguments":"args"});if(!m(af)||!k(af,"args")){throw new S("Not a valid event declaration",af);}if(!Array.isArray(af.args)){throw new S("Expected o.args to be array",af.args);}if(typeof af.func!=="function"){af.func=af.func||"addEventListener";ae=ad[String(af.func)];if(typeof ae!=="function"){throw new S("eventhandler is not a function/method of element",af);}ae.apply(ad,af.args);return;}ab=af.args.indexOf("#el#");if(ab<0){ab=af.args.indexOf("#elp#");if(ab>=0){if(!ad.parentNode){throw new S("placeholder #elp# found, but element has no parent node",ac);}ad=ad.parentNode;}else{ab=af.args.indexOf("#elpp#");if(ab>=0){if(!ad.parentNode||!ad.parentNode.parentNode){throw new S("placeholder #elpp# found, but element has no grandparent node",ac);}ad=ad.parentNode.parentNode;}}}if(ab<0){af.args.unshift(ad);}else{af.args.splice(ab,1,ad);}af.func.apply(ad,af.args);}function g(ac,ab){if(!Array.isArray(ab)){ab=[ab];}ab.forEach(function(ad){v.push({el:ac,val:ad});});}function Q(ad,ag,af){var ab=ag.toLowerCase(),ae;if(ab.indexOf("data-")===0){if(ab!==ag||ab.indexOf("data-xml")>-1||ab.indexOf(";")>-1){throw new S('data-* property/attribute name may not start with "xml" or contain any semicolon or uppercase chars');}af=String(af);if("dataset" in ad&&m(ad.dataset)){ad.dataset[p(ab.substring(5))]=af;return ad;}ae=ab;}else{if(J.indexOf(ab)>-1){if(af===true||(L(af)&&af.toLowerCase()===ab)){af=true;}else{if(af===false||af===""){return ad;}else{throw new S('switch attribute "'+ag+'" has an invalid value of "'+af+"\".\nValue may be the attribute's name or boolean true only.");}}ae=ab;}else{ae=n(ag);if((ae==="className"&&af==="")||(typeof af==="boolean"&&!af)){return ad;}}}try{ad[ae]=af;if(ad[ae]!==af&&ab!=="href"){throw new Error("value type mismatch in property "+ag);}}catch(ac){I(ad,{name:ae,value:af});}return ad;}function Z(ac,ab){if(m(ab)&&k(ab,"name")&&k(ab,"value")){if(k(ab,"condition")&&Boolean(ab.condition)){if(ab.name!=="child"){Q(ac,ab.name,ab.value);}else{if(m(ab.value)){w.call(ac,ab.value);}}}}}function z(ad){var ab=ad.indexOf("_"),ac;if(ab>0){ac=ad.substring(0,ab);if(G.indexOf(ac)>-1){ad=ac;}}return ad;}function q(ac,ab){if(Array.isArray(ab)){ab=ab.join(";");}if(ac.style.cssText!==undefined){ac.style.cssText=ab;}else{ac.setAttribute("style",ab);}return ac;}function e(ac,ab){if(Array.isArray(ab)){ab.forEach(e.bind(null,ac));}else{if(D(document,"createComment")){ac.appendChild(document.createComment(ab));}else{if(D(ac,"insertAdjacentHTML")){ac.insertAdjacentHTML("beforeEnd","<!--"+ab+"-->");}}}}function C(ab,ac){if(typeof ac==="function"){F.push({el:ab,func:ac});}}function R(ab){ab.func.call(ab.el,this);}function f(am){var ag=1,ae=0,ah=1,aj=["chk","sel"],ad=k(am,"loopdeep"),ac,ak,af,al,ai,ab;if(k(am,"loop")&&ad){throw new S('You may use only one of "loop" OR "loopdeep", not both.');}al=(ad)?"loopdeep":"loop";ai=am[al];delete am[al];if(m(ai)&&k(ai,"count")&&!isNaN(ai.count)){ah=Number(ai.count);if(k(ai,"step")&&!isNaN(ai.step)){ag=Number(ai.step);if(ag===0){ag=1;}}if(k(ai,"start")&&!isNaN(ai.start)){ae=Number(ai.start);}if(k(ai,"values")){if(!Array.isArray(ai.values)){throw new S('loop property "values" has to be an array');}if(!k(ai,"valuesrepeat")&&ai.values.length<ai.count){throw new S('"values" array has less elements ('+ai.values.length+") than loop count ("+ai.count+').\nAdd more items to the array or set "valuesrepeat" mode.');}}aj.forEach(function(an){if(k(ai,an)){if(!Array.isArray(ai[an])&&isNaN(ai[an])){throw new S('type of loop property "'+an+'" must be array or number');}}});}else{if(!isNaN(ai)){ah=Number(ai);}}ah=Math.abs(Math.round(ah));ac=document.createDocumentFragment();ab=0;for(ak=ae;ak<(ae+(ag*ah));ak+=ag){if(Math.floor(ak)!==ak){ak=parseFloat(ak.toFixed(8),10);}af=B({declaration:am,value:ak,counter:ab,recursive:ad,config:ai});if(aj.some(k.bind(null,ai))){af=c({declaration:af,config:ai,loopcount:ab,properties:aj});}w.call(ac,af);ab++;}am[al]=ai;return ac;}function B(ai){var ah=ai.value,aj=ai.counter,ab=ai.recursive,af=ai.config,ad=aa(ai.declaration),ag,ac,ae,ak;ag=/\!\!(?:([+-]?\d+(?:\.\d+)?)[•\*]?)?(n|c)([+-]\d+(?:\.\d+)?)?\!\!/gi;if(k(af,"values")){ak=af.values;ae=(k(af,"valuesrepeat"))?aj%ak.length:aj;}for(ac in ad){if(L(ad[ac])){if(Array.isArray(ak)&&ad[ac].indexOf("!!v!!")>-1){ad[ac]=ad[ac].replace(/\!\!v\!\!/gi,ak[ae]);}ad[ac]=ad[ac].replace(ag,E.bind(null,aj,ah));}else{if(ac==="child"&&m(ad.child)&&!k(ad.child,"loop")&&!k(ad.child,"loopdeep")&&!k(ad.child,"loopstop")&&(ab||V<1)){V++;ad.child=B({declaration:ad.child,value:ah,counter:aj,recursive:ab,config:af});V--;}}}return ad;}function E(ad,ah,ab,ag,ae,af){var ac=(ae.toLowerCase()==="c")?ad:ah;ag=Number(ag);if(!isNaN(ag)){ac*=ag;}af=Number(af);if(!isNaN(af)){ac+=af;}return ac;}function c(af){var ac=af.declaration,ad=af.config,ab=af.loopcount,ag=af.properties,ae=ag.length,ah=ab+1,aj,ai;while(ae--){aj=ag[ae];if(k(ad,aj)&&(ah===ad[aj]||(Array.isArray(ad[aj])&&ad[aj].indexOf(ah)>-1))){ai=(aj==="sel")?"selected":"checked";ac[ai]=true;}}return ac;}function h(ac,ab){if(Array.isArray(ac)){ac.push(ab);}else{if(m(ac)&&k(ac,"obj")&&k(ac,"name")&&m(ac.obj)){if(ac.obj[ac.name]===undefined){ac.obj[ac.name]=ab;}else{throw new S("duplicate declaration of "+ac.name+' in property "collect"');}}else{throw new S('Value of property "collect" must be an array or an object containing the properties "obj" and "name".');}}}function Y(ab,ac){var ad=ac.s[ac.p];if(ac.lp==="id"){ab.i[ad]=ac.el;}else{if(ac.lp==="name"){if(Array.isArray(ab.n[ad])){ab.n[ad].push(ac.el);}else{ab.n[ad]=[ac.el];}}}return ab;}function n(ac){var ab=ac.toLowerCase();return(ab in l)?l[ab]:p(ac);}function I(ac,ab){if(Array.isArray(ab)){ab.forEach(I.bind(null,ac));}else{if(i(ac)&&m(ab)&&k(ab,"name")&&k(ab,"value")&&L(ab.name)){if(ab.name.toLowerCase()==="style"){q(ac,ab.value);}else{ac.setAttribute(ab.name,ab.value);}}}return ac;}A=(function(){var aq="\x03",ac="\x1F",al=" \t\r\n\f\x0B\xA0",ai=aq,af="$",ag="#",ad=".",ao="~",at="@",ah="=",aj={},ar="",ak,am;aj[af]={};aj[ai]={};aj[ad]={attrName:"class",unique:false};aj[ag]={attrName:"id"};aj[ao]={attrName:"name"};aj[at]={attrName:"type"};aj[ah]={attrName:"value",stop:false};for(am in aj){if(k(aj,am)){ar+=am;}}ak=ar+ac+al+"%<>*'\"/|\\?^!§&()[]{}+:,;";function an(au){throw new S("Parser error: "+au);}function ab(aw,av,au){return av===au.indexOf(aw);}function ae(au){return !au||!k(aj,au)||!k(aj[au],"stop")||aj[au].stop!==false;}function ap(av,au){if(k(av,"className")){au=au.concat(av.className.split(/\s+/));}return(au.length>1)?au.filter(ab).join(" "):au[0];}return function(aB){var az=af,aC=aB.element,av="",ax=[],ay=0,aw={},aD=true,au,aE,aA;for(aE in aj){if(k(aj,aE)){aw[aE]=0;}}aC=aC.replace(/^\s*(.*)\s*$/g,"$1").replace(aq,"")+aq;aA=aC.length;au=aC.charAt(0);if(k(aj,au)){az=au;ay++;if(!((/\$[a-z][a-z1-6]?/i).test(aC))){an('extended syntax without element node name definition\n"'+aC+'"');}}while(az!==ai){au=aC.charAt(ay);ay++;if(al.indexOf(au)>=0&&ae(az)){continue;}if(aD===false&&(au===ac||au===aq||ay>=aA)){aD=true;while(ay<aA&&!(au in aj)){au=aC.charAt(ay);ay++;}}if(ak.indexOf(au)<0||aD===false){av+=au;continue;}if(av.length===0){an('empty value in mode "'+az+'" "'+aC.slice(0,-1)+'"');}switch(az){case af:aB.element=av;aw[af]++;break;case ad:ax.push(av);break;default:if(k(aj,az)&&k(aj[az],"attrName")){aB[aj[az].attrName]=av;}else{an('mode not supported: "'+az+'"');}break;}av="";if(k(aj,au)){aE=aj[au];aw[au]++;if(aw[au]>1&&(!k(aE,"unique")||aE.unique!==false)){if(au===af){am=" tag name";}else{if(k(aE,"attrName")){am=aE.attrName;}else{am=" (unknown property)";}}an("element may not have more than one "+au+am+'.\n\t"'+aC+'"');}az=au;aD=!k(aE,"stop")||Boolean(aE.stop);}else{an('Illegal char: "'+au+'" ('+au.charCodeAt(0)+') in "'+aC.slice(0,-1)+'" at position '+ay);}}if(ax.length>0){aB.className=ap(aB,ax);}return aB;};})();function X(ab){if(Array.isArray(ab)){return document.createTextNode(ab.join(""));}return r(ab)?ab:document.createTextNode(ab);}j=(function(){var ad=document.createElement("template"),ac="content" in ad,ab;if(ac){ab=function(){return document.createElement("template");};}else{ab=(function(ah,ag){var af="div",ae=ag.match(/\<\s*([a-z][a-z1-6]*)/i);if(ae&&ae.length>1&&k(ah,ae[1])){af=ah[ae[1]];}return document.createElement(af);}).bind(null,{tr:"tbody",tbody:"table",thead:"table",th:"tr",td:"tr",tfoot:"table",caption:"table",option:"select",li:"ul",dd:"dl",dt:"dl",optgroup:"select",figcaption:"figure",menuitem:"menu",legend:"fieldset",summary:"details"});}return function(ai){var aj=ab(ai),ae="",af,ah;try{aj.innerHTML=ai;if(ac){af=aj.content;}else{af=document.createDocumentFragment();while((ah=aj.firstChild)){af.appendChild(ah);}}}catch(ag){if(ag.code===12){ae="ERROR.\nHTML string most likely contains illegal HTML or uses named entities (restricted when using content-type application/xhtml+xml.\nuse numeric entities instead)\n\n";}throw new S(ae+"Error code: "+ag.code+"\nError message: "+ag.message+'\nContent (leading 200 chars):\n"'+ai.substring(0,200)+'…"');}return af;};})();function U(ab,ac){if(x(ac)){ab.appendChild(ac);}else{if(L(ac)){if(ac===""){return ab;}if(d(ab)){ab.insertAdjacentHTML("beforeend",ac);}else{if(D(ab,"appendChild")){ab.appendChild(j(ac));}}}else{if(Array.isArray(ac)){ac.forEach(U.bind(null,ab));}else{throw new S("illegal type of property ("+ac+")");}}}return ab;}function w(ac){var ab=K(ac);if(ab){this.appendChild(ab);}return ab;}function T(ab,ac){if(Array.isArray(ac)){ac.forEach(T.bind(null,ab));}else{if(x(ac)){ab.appendChild(ac);}else{if(m(ac)){w.call(ab,ac);}else{ab.appendChild(X(ac));}}}}function a(ae){var ab,ad,ac=k(ae,"clone");if(ac&&k(ae,"clonetop")){throw new S('only one of "clone" or "clonetop" may be used.');}ab=ae.clone||ae.clonetop;if(x(ab)&&D(ab,"cloneNode")){ad=ab.cloneNode(ac);}else{if(m(ab)){ad=K(ab);}}if(!x(ad)){throw new S("this object can't be cloned: "+ab);}return ad;}function N(ad){var ac=["text","html","child"],ae,ab;for(ae in ad){ab=z(ae.toLowerCase());if(ac.indexOf(ab)>-1){throw new S('content model of element "'+ad.element.toUpperCase()+'" is "empty". This element may not contain any child nodes');}}}function b(ad){var ac=document.createDocumentFragment(),af=0,ae,ab;for(ae in ad){ab=z(ae.toLowerCase());switch(ab){case"text":ac.appendChild(X(ad[ae]));break;case"html":U(ac,ad[ae]);af++;break;case"comment":e(ac,ad[ae]);af++;break;}}if(!ac.hasChildNodes()&&af!==1){throw new S('Every (sub)declaration object requires at least one of the following properties:\n"element", "text", "clone", "clonetop", "comment" or "html".');}return ac;}function K(ad){var ac,ab,af,ag,ae;if(Array.isArray(ad)){ac=document.createDocumentFragment();ad.forEach(w,ac);return ac;}if(x(ad)){return ad;}if(L(ad)||!isNaN(ad)){return X(ad);}if(k(ad,"clone")||k(ad,"clonetop")){return a(ad);}if(k(ad,"loop")||k(ad,"loopdeep")){return f(ad);}ad=o(ad,{cond:"condition",comm:"comment",attrib:"attribute",attr:"attribute"});if(k(ad,"condition")&&!ad.condition){return null;}if(ad.elrefs===null){y=null;}else{if(m(ad.elrefs)){y=ad.elrefs;y.i=y.i||{};y.n=y.n||{};}}delete ad.elrefs;if(!k(ad,"element")){return b(ad);}if(!L(ad.element)){throw new S('type of property "element" must be string');}if((/[^a-z1-6]/i).test(ad.element)){ad=A(ad);}if(M.indexOf(ad.element)>-1){N(ad);}af=document.createElement(ad.element);W.forEach(function(ah){if(k(ad,ah)){Q(af,ah,ad[ah]);delete ad[ah];}});for(ag in ad){ab=ag.toLowerCase();if(m(y)&&s.indexOf(ab)>-1){y=Y(y,{s:ad,el:af,p:ag,lp:ab});}if(H.indexOf(ab)>-1){continue;}ab=z(ab);ae=ad[ag];switch(ab){case"collect":h(ae,af);break;case"text":af.appendChild(X(ae));break;case"comment":e(af,ae);break;case"child":T(af,ae);break;case"event":g(af,ae);break;case"html":U(af,ae);break;case"attribute":I(af,ae);break;case"style":q(af,ae);break;case"setif":Z(af,ae);break;case"init":case"initnorun":C(af,ae);break;default:Q(af,ag,ae);break;}}return af;}K345.dElement=function(ab){var ac;if(!Array.isArray(ab)&&!m(ab)){throw new S("Parameter has been omitted or value is not an object/array");}v=[];F=[];y=null;ac=K(ab);if(ac){v.forEach(O);F.forEach(R,ac);}return ac||null;};K345.dAppend=function(ad,ab,af){var ac=null,ae;if(L(ad)){ad=(t.test(ad))?document.querySelector(ad):document.getElementById(ad);}if(i(ad)){ac=K345.dElement(ab);if(!ac){return null;}switch(af){case"beforeBegin":case K345.DAPPEND_BEFORE:ad.parentNode.insertBefore(ac,ad);break;case"afterEnd":case K345.DAPPEND_AFTER:ad.parentNode.insertBefore(ac,ad.nextSibling);break;case"replaceElement":case K345.DAPPEND_REPLACE:ad.parentNode.replaceChild(ac,ad);break;case"afterBegin":case K345.DAPPEND_FIRST:ad.insertBefore(ac,ad.firstChild);break;case"wipeContent":case K345.DAPPEND_WIPE:while((ae=ad.lastChild)){ad.removeChild(ae);}case"beforeEnd":case K345.DAPPEND_APPEND:case K345.DAPPEND_LAST:default:ad.appendChild(ac);break;}}return ac;};K345.DAPPEND_APPEND=0;K345.DAPPEND_LAST=0;K345.DAPPEND_BEFORE=1;K345.DAPPEND_AFTER=2;K345.DAPPEND_REPLACE=3;K345.DAPPEND_FIRST=4;K345.DAPPEND_WIPE=5;})(K345.attrNames,K345.voidElements);if("registerScript" in K345){K345.registerScript("delement");}