domelemjs 1.1.1 → 1.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js CHANGED
@@ -26,25 +26,28 @@ const createDOMElem = ({
26
26
  * add all the attributes they want
27
27
  */
28
28
 
29
+ const noSpecChAttrs = ["class", "id"];
30
+
29
31
  attrs &&
30
- Object.keys(attrs).forEach((attr) => {
31
- if (attr === "checked") {
32
- elem.checked = attrs[attr];
33
- } else if (attr === "dataset") {
34
- makeThatArray(attrs[attr]).map((data) =>
35
- Object.keys(data).forEach((d) => (elem.dataset[d] = data[d]))
36
- );
37
- } else if (attr === "class" || attr === "id") {
38
- elem.setAttribute(
39
- attr,
40
- makeThatArray(attrs[attr])
41
- .map((a) => noSpecChars(a))
42
- .join(" ")
43
- );
44
- } else {
45
- elem.setAttribute(attr, makeThatArray(attrs[attr]).join(" "));
46
- }
47
- });
32
+ makeThatArray(attrs).forEach((atts) =>
33
+ Object.keys(atts).forEach((attr) => {
34
+ if (attr === "checked") {
35
+ elem.checked = atts[attr];
36
+ } else if (attr === "dataset") {
37
+ makeThatArray(atts[attr]).map((data) =>
38
+ Object.keys(data).forEach((d) => (elem.dataset[d] = data[d]))
39
+ );
40
+ } else {
41
+ elem.setAttribute(
42
+ attr,
43
+ (noSpecChAttrs.includes(attr)
44
+ ? makeThatArray(atts[attr]).map((a) => noSpecChars(a))
45
+ : makeThatArray(atts[attr])
46
+ ).join(" ")
47
+ );
48
+ }
49
+ })
50
+ );
48
51
 
49
52
  /*
50
53
  * Adding stye is possible as:
@@ -75,9 +78,9 @@ const createDOMElem = ({
75
78
 
76
79
  children &&
77
80
  makeThatArray(children).map((child) => {
78
- let childElem = child;
79
- if (typeof child === "object") childElem = createDOMElem(child);
80
- elem.appendChild(childElem);
81
+ elem.appendChild(
82
+ typeof child === "object" ? createDOMElem(child) : child
83
+ );
81
84
  });
82
85
 
83
86
  /*
@@ -155,24 +158,24 @@ const noSpecChars = (text, lowercase = false) => {
155
158
  Ű: "U",
156
159
  Í: "I",
157
160
  " ": "-",
158
- "/": "-",
159
- ":": "-",
160
- ";": "-",
161
- "=": "-",
161
+ "/": "",
162
+ ":": "",
163
+ ";": "",
164
+ "=": "",
165
+ "*": "",
166
+ "?": "",
162
167
  };
163
- for (let char in specialChars) {
164
- text = replaceAll(text, char, specialChars[char]);
165
- }
168
+
169
+ Object.keys(specialChars).forEach(
170
+ (char) => (text = replaceAll(text, char, specialChars[char]))
171
+ );
172
+
166
173
  return lowercase ? text.toLowerCase() : text;
167
174
  };
168
175
 
169
- /* check is it is array do nothing, if not maki it array */
176
+ /* check is it is array do nothing, if not make it array */
170
177
  const makeThatArray = (arr) => {
171
- if (Array.isArray(arr)) {
172
- return arr;
173
- } else {
174
- return [arr];
175
- }
178
+ return Array.isArray(arr) ? arr : [arr];
176
179
  };
177
180
 
178
181
  /* removing the "-" symbol form the string adn makind the afterward word to uppercase, that is named as camelCase */
package/index.min.js CHANGED
@@ -1,2 +1,2 @@
1
- const createDOMElem=({tag:tag,content:content,text:text,attrs:attrs,style:style,children:children,parent:parent,handleEvent:handleEvent})=>{let elem=document.createElement(tag);return content&&(elem.innerHTML=content),text&&(elem.textContent=text),attrs&&Object.keys(attrs).forEach(attr=>{"checked"===attr?elem.checked=attrs[attr]:"dataset"===attr?makeThatArray(attrs[attr]).map(data=>Object.keys(data).forEach(d=>elem.dataset[d]=data[d])):"class"===attr||"id"===attr?elem.setAttribute(attr,makeThatArray(attrs[attr]).map(a=>noSpecChars(a)).join(" ")):elem.setAttribute(attr,makeThatArray(attrs[attr]).join(" "))}),style&&makeThatArray(style).map(styleElem=>"object"==typeof styleElem?Object.keys(styleElem).map(styleTxt=>`${styleTxt}: ${styleElem[styleTxt]}`).join("; "):makeThatArray(styleElem).join("; ")).join("; ").split(";").forEach(styleTxts=>{let[styleTxt,val]=styleTxts.split(":").map(c=>c.trim());elem.style[makeCamelCase(styleTxt)]=val}),children&&makeThatArray(children).map(child=>{let childElem=child;"object"==typeof child&&(childElem=createDOMElem(child)),elem.appendChild(childElem)}),handleEvent&&makeThatArray(handleEvent).forEach(newEvent=>{elem.addEventListener(newEvent.event,newEvent.cb)}),parent?"string"==typeof parent&&(parent=[".","#"].map(prep=>document.querySelector(prep+parent)).filter(pe=>null!==pe)[0]):parent=document.querySelector("body"),parent.appendChild(elem),elem},DOMElem={Create:createDOMElem},noSpecChars=(text,lowercase=!1)=>{function replaceAll(string,search,replace){return string.split(search).join(replace)}let specialChars={"é":"e","á":"a","ó":"o","ö":"o","ő":"o","ú":"u","ü":"u","ű":"u","í":"i","É":"E","Á":"A","Ó":"O","Ö":"O","Ő":"O","Ú":"U","Ü":"U","Ű":"U","Í":"I"," ":"-","/":"-",":":"-",";":"-","=":"-"};for(let char in specialChars)text=replaceAll(text,char,specialChars[char]);return lowercase?text.toLowerCase():text},makeThatArray=arr=>Array.isArray(arr)?arr:[arr];function makeCamelCase(s){return s.split("-").map((ss,i)=>i>0?ss.charAt(0).toUpperCase()+ss.slice(1):ss).join("")}
1
+ const createDOMElem=({tag:tag,content:content,text:text,attrs:attrs,style:style,children:children,parent:parent,handleEvent:handleEvent})=>{let elem=document.createElement(tag);content&&(elem.innerHTML=content),text&&(elem.textContent=text);const noSpecChAttrs=["class","id"];return attrs&&makeThatArray(attrs).forEach(atts=>Object.keys(atts).forEach(attr=>{"checked"===attr?elem.checked=atts[attr]:"dataset"===attr?makeThatArray(atts[attr]).map(data=>Object.keys(data).forEach(d=>elem.dataset[d]=data[d])):elem.setAttribute(attr,(noSpecChAttrs.includes(attr)?makeThatArray(atts[attr]).map(a=>noSpecChars(a)):makeThatArray(atts[attr])).join(" "))})),style&&makeThatArray(style).map(styleElem=>"object"==typeof styleElem?Object.keys(styleElem).map(styleTxt=>`${styleTxt}: ${styleElem[styleTxt]}`).join("; "):makeThatArray(styleElem).join("; ")).join("; ").split(";").forEach(styleTxts=>{let[styleTxt,val]=styleTxts.split(":").map(c=>c.trim());elem.style[makeCamelCase(styleTxt)]=val}),children&&makeThatArray(children).map(child=>{elem.appendChild("object"==typeof child?createDOMElem(child):child)}),handleEvent&&makeThatArray(handleEvent).forEach(newEvent=>{elem.addEventListener(newEvent.event,newEvent.cb)}),parent?"string"==typeof parent&&(parent=[".","#"].map(prep=>document.querySelector(prep+parent)).filter(pe=>null!==pe)[0]):parent=document.querySelector("body"),parent.appendChild(elem),elem},DOMElem={Create:createDOMElem},noSpecChars=(text,lowercase=!1)=>{function replaceAll(string,search,replace){return string.split(search).join(replace)}let specialChars={"é":"e","á":"a","ó":"o","ö":"o","ő":"o","ú":"u","ü":"u","ű":"u","í":"i","É":"E","Á":"A","Ó":"O","Ö":"O","Ő":"O","Ú":"U","Ü":"U","Ű":"U","Í":"I"," ":"-","/":"",":":"",";":"","=":"","*":"","?":""};return Object.keys(specialChars).forEach(char=>text=replaceAll(text,char,specialChars[char])),lowercase?text.toLowerCase():text},makeThatArray=arr=>Array.isArray(arr)?arr:[arr];function makeCamelCase(s){return s.split("-").map((ss,i)=>i>0?ss.charAt(0).toUpperCase()+ss.slice(1):ss).join("")}
2
2
  //# sourceMappingURL=index.min.js.map
package/index.min.js.map CHANGED
@@ -18,17 +18,20 @@
18
18
  "createElement",
19
19
  "innerHTML",
20
20
  "textContent",
21
+ "noSpecChAttrs",
22
+ "makeThatArray",
23
+ "forEach",
24
+ "atts",
21
25
  "Object",
22
26
  "keys",
23
- "forEach",
24
27
  "attr",
25
28
  "checked",
26
- "makeThatArray",
27
29
  "map",
28
30
  "data",
29
31
  "d",
30
32
  "dataset",
31
33
  "setAttribute",
34
+ "includes",
32
35
  "a",
33
36
  "noSpecChars",
34
37
  "join",
@@ -41,7 +44,6 @@
41
44
  "trim",
42
45
  "makeCamelCase",
43
46
  "child",
44
- "childElem",
45
47
  "appendChild",
46
48
  "newEvent",
47
49
  "addEventListener",
@@ -82,6 +84,8 @@
82
84
  ":",
83
85
  ";",
84
86
  "=",
87
+ "*",
88
+ "?",
85
89
  "char",
86
90
  "toLowerCase",
87
91
  "arr",
@@ -94,6 +98,6 @@
94
98
  "toUpperCase",
95
99
  "slice"
96
100
  ],
97
- "mappings": "AAAA,MAAMA,cAAgB,EACpBC,IAAAA,IACAC,QAAAA,QACAC,KAAAA,KACAC,MAAAA,MACAC,MAAAA,MACAC,SAAAA,SACAC,OAAAA,OACAC,YAAAA,gBAKA,IAAIC,KAAOC,SAASC,cAAcV,KA0GlC,OArGAC,UAAYO,KAAKG,UAAYV,SAI7BC,OAASM,KAAKI,YAAcV,MAM5BC,OACEU,OAAOC,KAAKX,OAAOY,QAASC,OACb,YAATA,KACFR,KAAKS,QAAUd,MAAMa,MACH,YAATA,KACTE,cAAcf,MAAMa,OAAOG,IAAKC,MAC9BP,OAAOC,KAAKM,MAAML,QAASM,GAAOb,KAAKc,QAAQD,GAAKD,KAAKC,KAEzC,UAATL,MAA6B,OAATA,KAC7BR,KAAKe,aACHP,KACAE,cAAcf,MAAMa,OACjBG,IAAKK,GAAMC,YAAYD,IACvBE,KAAK,MAGVlB,KAAKe,aAAaP,KAAME,cAAcf,MAAMa,OAAOU,KAAK,QAa9DtB,OACEc,cAAcd,OACXe,IAAKQ,WACqB,iBAAdA,UACFd,OAAOC,KAAKa,WAChBR,IAAKS,UAAa,GAAGA,aAAaD,UAAUC,aAC5CF,KAAK,MAEDR,cAAcS,WAAWD,KAAK,OAGxCA,KAAK,MACLG,MAAM,KACNd,QAASe,YACR,IAAKF,SAAUG,KAAOD,UAAUD,MAAM,KAAKV,IAAKa,GAAMA,EAAEC,QACxDzB,KAAKJ,MAAM8B,cAAcN,WAAaG,MAG5C1B,UACEa,cAAcb,UAAUc,IAAKgB,QAC3B,IAAIC,UAAYD,MACK,iBAAVA,QAAoBC,UAAYrC,cAAcoC,QACzD3B,KAAK6B,YAAYD,aASrB7B,aACEW,cAAcX,aAAaQ,QAASuB,WAClC9B,KAAK+B,iBAAiBD,SAASE,MAAOF,SAASG,MAY/CnC,OACoB,iBAAXA,SACTA,OAAS,CAAC,IAAK,KACZa,IAAKuB,MACGjC,SAASkC,cAAcD,KAAOpC,SAEtCsC,OAAQC,IACO,OAAPA,IACN,IAEFvC,OAASG,SAASkC,cAAc,QAEvCrC,OAAO+B,YAAY7B,MAKZA,MAIHsC,QAAU,CACdC,OAAQhD,eAQJ0B,YAAc,CAACvB,KAAM8C,WAAY,KACrC,SAASC,WAAWC,OAAQC,OAAQC,SAClC,OAAOF,OAAOrB,MAAMsB,QAAQzB,KAAK0B,SAGnC,IAAIC,aAAe,CACjBC,IAAG,IACHC,IAAG,IACHC,IAAG,IACHC,IAAG,IACHC,IAAG,IACHC,IAAG,IACHC,IAAG,IACHC,IAAG,IACHC,IAAG,IACHC,IAAG,IACHC,IAAG,IACHC,IAAG,IACHC,IAAG,IACHC,IAAG,IACHC,IAAG,IACHC,IAAG,IACHC,IAAG,IACHC,IAAG,IACHC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KAEP,IAAK,IAAIC,QAAQxB,aACfnD,KAAO+C,WAAW/C,KAAM2E,KAAMxB,aAAawB,OAE7C,OAAO7B,UAAY9C,KAAK4E,cAAgB5E,MAIpCgB,cAAiB6D,KACjBC,MAAMC,QAAQF,KACTA,IAEA,CAACA,KAKZ,SAAS7C,cAAcgD,GACrB,OAAOA,EACJrD,MAAM,KACNV,IAAI,CAACgE,GAAIC,IACDA,EAAI,EAAID,GAAGE,OAAO,GAAGC,cAAgBH,GAAGI,MAAM,GAAKJ,IAE3DzD,KAAK",
101
+ "mappings": "AAAA,MAAMA,cAAgB,EACpBC,IAAAA,IACAC,QAAAA,QACAC,KAAAA,KACAC,MAAAA,MACAC,MAAAA,MACAC,SAAAA,SACAC,OAAAA,OACAC,YAAAA,gBAKA,IAAIC,KAAOC,SAASC,cAAcV,KAKlCC,UAAYO,KAAKG,UAAYV,SAI7BC,OAASM,KAAKI,YAAcV,MAM5B,MAAMW,cAAgB,CAAC,QAAS,MA8FhC,OA5FAV,OACEW,cAAcX,OAAOY,QAASC,MAC5BC,OAAOC,KAAKF,MAAMD,QAASI,OACZ,YAATA,KACFX,KAAKY,QAAUJ,KAAKG,MACF,YAATA,KACTL,cAAcE,KAAKG,OAAOE,IAAKC,MAC7BL,OAAOC,KAAKI,MAAMP,QAASQ,GAAOf,KAAKgB,QAAQD,GAAKD,KAAKC,KAG3Df,KAAKiB,aACHN,MACCN,cAAca,SAASP,MACpBL,cAAcE,KAAKG,OAAOE,IAAKM,GAAMC,YAAYD,IACjDb,cAAcE,KAAKG,QACrBU,KAAK,SAejBzB,OACEU,cAAcV,OACXiB,IAAKS,WACqB,iBAAdA,UACFb,OAAOC,KAAKY,WAChBT,IAAKU,UAAa,GAAGA,aAAaD,UAAUC,aAC5CF,KAAK,MAEDf,cAAcgB,WAAWD,KAAK,OAGxCA,KAAK,MACLG,MAAM,KACNjB,QAASkB,YACR,IAAKF,SAAUG,KAAOD,UAAUD,MAAM,KAAKX,IAAKc,GAAMA,EAAEC,QACxD5B,KAAKJ,MAAMiC,cAAcN,WAAaG,MAG5C7B,UACES,cAAcT,UAAUgB,IAAKiB,QAC3B9B,KAAK+B,YACc,iBAAVD,MAAqBvC,cAAcuC,OAASA,SAUzD/B,aACEO,cAAcP,aAAaQ,QAASyB,WAClChC,KAAKiC,iBAAiBD,SAASE,MAAOF,SAASG,MAY/CrC,OACoB,iBAAXA,SACTA,OAAS,CAAC,IAAK,KACZe,IAAKuB,MACGnC,SAASoC,cAAcD,KAAOtC,SAEtCwC,OAAQC,IACO,OAAPA,IACN,IAEFzC,OAASG,SAASoC,cAAc,QAEvCvC,OAAOiC,YAAY/B,MAKZA,MAIHwC,QAAU,CACdC,OAAQlD,eAQJ6B,YAAc,CAAC1B,KAAMgD,WAAY,KACrC,SAASC,WAAWC,OAAQC,OAAQC,SAClC,OAAOF,OAAOpB,MAAMqB,QAAQxB,KAAKyB,SAGnC,IAAIC,aAAe,CACjBC,IAAG,IACHC,IAAG,IACHC,IAAG,IACHC,IAAG,IACHC,IAAG,IACHC,IAAG,IACHC,IAAG,IACHC,IAAG,IACHC,IAAG,IACHC,IAAG,IACHC,IAAG,IACHC,IAAG,IACHC,IAAG,IACHC,IAAG,IACHC,IAAG,IACHC,IAAG,IACHC,IAAG,IACHC,IAAG,IACHC,IAAK,IACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,IAOP,OAJA/D,OAAOC,KAAKqC,cAAcxC,QACvBkE,MAAU/E,KAAOiD,WAAWjD,KAAM+E,KAAM1B,aAAa0B,QAGjD/B,UAAYhD,KAAKgF,cAAgBhF,MAIpCY,cAAiBqE,KACdC,MAAMC,QAAQF,KAAOA,IAAM,CAACA,KAIrC,SAAS9C,cAAciD,GACrB,OAAOA,EACJtD,MAAM,KACNX,IAAI,CAACkE,GAAIC,IACDA,EAAI,EAAID,GAAGE,OAAO,GAAGC,cAAgBH,GAAGI,MAAM,GAAKJ,IAE3D1D,KAAK",
98
102
  "file": "index.js"
99
103
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "domelemjs",
3
- "version": "1.1.1",
3
+ "version": "1.1.4",
4
4
  "description": "With the help of this package the rendering of HTML elements form JavaScript become a easy job.",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -20,17 +20,25 @@
20
20
  text: "Hello World!",
21
21
  parent: app,
22
22
  style: "color: red; background-color: green",
23
- attrs: { id: "title1", dataset: { text: "redText" } },
23
+ attrs: {
24
+ id: "title1",
25
+ class: "áéőúóüűöí/*-",
26
+ dataset: { text: "redText" },
27
+ },
24
28
  });
25
29
  createDOMElem({
26
30
  tag: "h2",
27
31
  text: "It's amazing",
28
32
  parent: app,
29
33
  style: { color: "red", backgroundColor: "pink" },
30
- attrs: {
31
- id: "title2",
32
- dataset: [{ text: "redText" }, { bg: "greenBG" }],
33
- },
34
+ attrs: [
35
+ {
36
+ id: "title2",
37
+ },
38
+ {
39
+ dataset: [{ text: "redText" }, { bg: "greenBG" }],
40
+ },
41
+ ],
34
42
  });
35
43
  createDOMElem({
36
44
  tag: "h3",