@skeletonizer/utils 2.2.5 → 2.4.0

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/dist/utils.umd.js CHANGED
@@ -1,2 +1,2 @@
1
- (function(r,m){typeof exports=="object"&&typeof module<"u"?m(exports):typeof define=="function"&&define.amd?define(["exports"],m):(r=typeof globalThis<"u"?globalThis:r||self,m(r["@skeletonizer/utils"]={}))})(this,(function(r){"use strict";const m=["Lorem","ipsum","dolor","sit","amet,","consectetur","adipiscing","elit.","Mauris","posuere","tincidunt","purus,","id","laoreet","mauris","cursus","nec.","Quisque","id","ante","id","tellus","aliquam","pulvinar","eget","eu","dolor.","Donec","egestas","dapibus","massa,","vel","finibus","lectus","congue","eu.","Morbi","quis","erat","condimentum,","molestie","ex","a,","sollicitudin","metus.","Vestibulum","orci","metus,","sagittis","a","sagittis","a,","varius","id","diam.","Cras","egestas","eros","vestibulum,","tempus","ipsum","pellentesque,","dictum","justo.","Quisque","sed","justo","metus.","Suspendisse","id","felis","vitae","nunc","auctor","tristique","eu","sit","amet","mi.","Ut","luctus","posuere","viverra.","Nunc","sed","augue","a","velit","sodales","iaculis.","Sed","at","arcu","non","massa","hendrerit","scelerisque.","Nunc","commodo","vulputate","vestibulum.","Duis","ut","leo","nisi.","Mauris","dignissim","quis","sem","non","blandit.","Suspendisse","id","elit","eget","leo","efficitur","maximus.","Ut","eu","auctor","ligula.","Nulla","in","leo","luctus,","tempor","justo","vitae,","condimentum","massa.","Quisque","venenatis","elementum","posuere.","Sed","bibendum","bibendum","enim,","in","faucibus","ante.","Aliquam","pretium","sapien","ac","eleifend","suscipit.","Duis","lacinia","justo","quis","diam","elementum,","vitae","fringilla","lectus","faucibus.","Integer","dictum","commodo","diam","a","tempus.","Aenean","elementum","egestas","quam,","eget","feugiat","ligula","imperdiet","vitae.","Morbi","mattis","dui","sed","elementum","mollis.","In","interdum","viverra","urna,","at","scelerisque","sapien.","Sed","molestie","blandit","risus","nec","ornare.","Integer","pharetra","massa","purus,","ut","fringilla","augue","sollicitudin","in.","Pellentesque","eu","leo","pharetra,","hendrerit","lectus","id,","dapibus","ipsum.","Quisque","tincidunt","euismod","venenatis.","Sed","lacus","ex,","pulvinar","at","dui","vitae,","condimentum","rutrum","eros.","Nunc","viverra","cursus","ante,","ac","dapibus","ligula","volutpat","nec.","Integer","commodo","in","tortor","eget","aliquet.","Nam","bibendum","lectus","vitae","ligula","interdum","scelerisque.","Morbi","sit","amet","augue","diam.","Etiam","purus","lorem,","sodales","sed","sodales","ac,","dignissim","a","tellus.","Nunc","vehicula","nibh","in","erat","rhoncus","ullamcorper.","Orci","varius","natoque","penatibus","et","magnis","dis","parturient","montes,","nascetur","ridiculus","mus.","Aliquam","augue","nunc,","fringilla","at","dictum","quis,","luctus","sit","amet","nisl.","Nam","lectus","felis,","egestas","nec","lacinia","non,","auctor","eget","lorem.","Nunc","vel","velit","quis","magna","hendrerit","volutpat","in","nec","leo.","Aenean","tempor","lectus","tortor,","nec","bibendum","elit","aliquam","at.","In","id","libero","tincidunt,","interdum","libero","sit","amet,","gravida","est.","Morbi","ut","ipsum","enim.","Duis","vel","posuere","ante.","Praesent","sollicitudin","lacus","sit","amet","luctus","euismod.","Phasellus","lorem","elit,","auctor","sed","risus","a,","faucibus","tempor","lacus.","Integer","id","tellus","ut","eros","congue","ornare.","Cras","vitae","ornare","sem.","Cras","tincidunt","arcu","efficitur","mauris","molestie,","eu","eleifend","eros","mattis.","Integer","id","diam","mauris.","Duis","suscipit","enim","risus,","non","dignissim","nulla","imperdiet","hendrerit.","Vestibulum","sed","dignissim","erat.","Aliquam","erat","volutpat.","Nunc","mattis","auctor","justo,","non","fringilla","dolor","blandit","a.","Donec","et","velit","tristique","lacus","varius","aliquam.","Praesent","ac","molestie","quam,","vitae","scelerisque","tellus.","Praesent","eleifend","sed","diam","in","gravida.","Donec","tristique","sapien","ante,","in","egestas","diam","porta","ac.","Proin","ac","justo","eleifend,","consequat","ante","vitae,","laoreet","augue.","Mauris","scelerisque","arcu","dolor,","quis","lobortis","risus","pellentesque","eu.","Praesent","in","enim","a","elit","feugiat","dapibus.","Duis","quis","bibendum","mi.","Vestibulum","lacinia,","sem","at","efficitur","volutpat,","velit","ligula","vulputate","nisi,","sit","amet","dapibus","risus","metus","sed","est.","Sed","in","venenatis","ante.","Pellentesque","vel","ipsum","pharetra,","efficitur","quam","ut,","hendrerit","dolor."];var o=(i=>(i.Text="text",i.Input="input",i.Image="image",i.Video="video",i.WrapperElement="wrapper-element",i))(o||{}),p=(i=>(i.PrimaryColor="rgba(100, 100, 100, .6)",i.SecondaryColor="rgba(100, 100, 100, .3)",i))(p||{});class g{static daysInMs(e){return e*24*60*60*1e3}static dateBetween(e,t){return new Date(e.getTime()+Math.random()*(t.getTime()-e.getTime()))}}let v=0;class y{get value(){return this.#e}#e;words(e){this.assertType();let t="",s=0;for(;s<e;)t+=this.randomLoremWord()+" ",s++;return this.#e=t.trim(),this}paragraphs(e){this.assertType();let t="",s=0;const l=50;for(;s<e;){const u=l-Math.round(l*Math.random()*.2)*(Math.random()<.5?-1:1);t+=this.words(u).value,s!==e-1&&(t+=`
2
- `),s++}return this.#e=t,this}number(e=0,t=1e3){return this.assertType(),this.#e=Math.ceil(Math.random()*(t-e))+e,this}float(e=0,t=1e3){return this.assertType(),this.#e=this.#e?this.#e+Math.random():Math.random()*(t-e)+e,this}currency(e){return this.assertType(),this.#e=new Intl.NumberFormat(e.locale,{...e.options,style:"currency",currency:e.currency}).format(+this.#e),this}multiply(e){return this.assertType(),this.#e*=e,this}date(e={}){this.assertType();let t=e.max??new Date("2100-01-01"),s=e.min??new Date("1970-01-01");return e.isFuture?s=new Date(Date.now()+g.daysInMs(1)):e.isPast&&(t=new Date(Date.now()-g.daysInMs(1))),this.#e=g.dateBetween(s,t),this}timeOfDay(e={}){const t=this.#e??this.date().value;this.assertType();const s=(e.use12HourFormat?t.getUTCHours()%12:t.getUTCHours()).toString().padStart(2,"0"),l=t.getMinutes().toString().padStart(2,"0"),u=t.getSeconds().toString().padStart(2,"0"),c=this;return c.#e=e.showSeconds?`${s}:${l}:${u}`:`${s}:${l}`,e.showAmPm&&(c.#e+=t.getUTCHours()>=12?" PM":" AM"),c}uuid(){return v++,this.assertType(),this.#e=v,this}boolean(){return this.assertType(),this.#e=Math.random()<=.5,this}symbol(e=0){return this.assertType(),this.#e=Symbol(e),this}randomItem(e){this.assertType();const t=Math.floor(Math.random()*e.length);return this.#e=e[t],this}prefix(e){return this.assertType(),this.#e=`${e}${this.#e}`,this}suffix(e){return this.assertType(),this.#e=`${this.#e}${e}`,this}identical(e){return this.assertType(),this.#e=e,this}assertType(){}randomLoremWord(){const e=Math.floor(Math.random()*m.length);return m[e]??"lorem"}}let T=0;class d{constructor(e){this.generator=e,this.uuid=T++,this.viewModel=this.generator(),this.val=d.modelToValue(this.viewModel)}get value(){return this.val}static modelToValue(e){if(e instanceof y)return e.value;if(Array.isArray(e))return e.map(this.modelToValue);{const t={};return Object.keys(e).forEach(s=>{t[s]=d.modelToValue(e[s])}),t}}}class M{proxy(e){return e instanceof d?e.value:e}}class q{constructor(){this.config=null,this.viewModels=[]}setupModels(){if(this.config){const e=this.config.schemaGenerator;this.viewModels=Array.from({length:this.config.repeat},()=>new d(e))}}}const n=class n{static skeletonizeProjectedTemplate(e,t){if(!this.isBrowser())return;const s=t?.primaryColor??p.PrimaryColor,l=t?.secondaryColor??p.SecondaryColor;e.setAttribute("style",`--skeletonizer-primary-color: ${s}; --skeletonizer-secondary-color: ${l};`),Array.from(e.querySelectorAll("*:not(svg, [data-skeletonizer])")).forEach(u=>{const c=["br","b","strong","i","em","mark","small","del","ins","sub","sup"],f=Array.from(u.childNodes).map(a=>a.nodeName.toLowerCase()).filter(a=>!c.includes(a)),w=f.length>0&&f.some(a=>a!==f[0]);u.childNodes.forEach(a=>{switch(a.nodeName.toLowerCase()){case"#text":{if(this.assertAs(a),a.wholeText.trim())if(w){const h=document.createElement("span");h.innerText=a.cloneNode().wholeText,h.innerText.length&&a.replaceWith(n.skeletonizedSpanGenerator(h.innerText,o.Text))}else{const h=n.skeletonizedSpanGenerator(u.innerHTML,o.Text);u.innerHTML=h.outerHTML}break}case"input":{a.setAttribute(n.dataAttr,o.Input);break}case"img":{a.setAttribute(n.dataAttr,o.Image);break}case"video":{a.setAttribute(n.dataAttr,o.Video);break}}})}),e.setAttribute(n.dataAttr,o.WrapperElement)}static skeletonizedSpanGenerator(e,t){const s=document.createElement("span");return s.innerHTML=e,s.setAttribute(n.dataAttr,t),s}static isBrowser(){return typeof document<"u"}static assertAs(e){}};n.dataAttr="data-skeletonizer";let b=n;r.Schema=d,r.SchemaItem=y,r.SkeletonAbstractComponent=M,r.SkeletonAdapterComponent=q,r.SkeletonDirective=b,Object.defineProperty(r,Symbol.toStringTag,{value:"Module"})}));
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports):typeof define==`function`&&define.amd?define([`exports`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e[`@skeletonizer/utils`]={}))})(this,function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=`Lorem(ipsum(dolor(sit(amet,(consectetur(adipiscing(elit.(Mauris(posuere(tincidunt(purus,(id(laoreet(mauris(cursus(nec.(Quisque(id(ante(id(tellus(aliquam(pulvinar(eget(eu(dolor.(Donec(egestas(dapibus(massa,(vel(finibus(lectus(congue(eu.(Morbi(quis(erat(condimentum,(molestie(ex(a,(sollicitudin(metus.(Vestibulum(orci(metus,(sagittis(a(sagittis(a,(varius(id(diam.(Cras(egestas(eros(vestibulum,(tempus(ipsum(pellentesque,(dictum(justo.(Quisque(sed(justo(metus.(Suspendisse(id(felis(vitae(nunc(auctor(tristique(eu(sit(amet(mi.(Ut(luctus(posuere(viverra.(Nunc(sed(augue(a(velit(sodales(iaculis.(Sed(at(arcu(non(massa(hendrerit(scelerisque.(Nunc(commodo(vulputate(vestibulum.(Duis(ut(leo(nisi.(Mauris(dignissim(quis(sem(non(blandit.(Suspendisse(id(elit(eget(leo(efficitur(maximus.(Ut(eu(auctor(ligula.(Nulla(in(leo(luctus,(tempor(justo(vitae,(condimentum(massa.(Quisque(venenatis(elementum(posuere.(Sed(bibendum(bibendum(enim,(in(faucibus(ante.(Aliquam(pretium(sapien(ac(eleifend(suscipit.(Duis(lacinia(justo(quis(diam(elementum,(vitae(fringilla(lectus(faucibus.(Integer(dictum(commodo(diam(a(tempus.(Aenean(elementum(egestas(quam,(eget(feugiat(ligula(imperdiet(vitae.(Morbi(mattis(dui(sed(elementum(mollis.(In(interdum(viverra(urna,(at(scelerisque(sapien.(Sed(molestie(blandit(risus(nec(ornare.(Integer(pharetra(massa(purus,(ut(fringilla(augue(sollicitudin(in.(Pellentesque(eu(leo(pharetra,(hendrerit(lectus(id,(dapibus(ipsum.(Quisque(tincidunt(euismod(venenatis.(Sed(lacus(ex,(pulvinar(at(dui(vitae,(condimentum(rutrum(eros.(Nunc(viverra(cursus(ante,(ac(dapibus(ligula(volutpat(nec.(Integer(commodo(in(tortor(eget(aliquet.(Nam(bibendum(lectus(vitae(ligula(interdum(scelerisque.(Morbi(sit(amet(augue(diam.(Etiam(purus(lorem,(sodales(sed(sodales(ac,(dignissim(a(tellus.(Nunc(vehicula(nibh(in(erat(rhoncus(ullamcorper.(Orci(varius(natoque(penatibus(et(magnis(dis(parturient(montes,(nascetur(ridiculus(mus.(Aliquam(augue(nunc,(fringilla(at(dictum(quis,(luctus(sit(amet(nisl.(Nam(lectus(felis,(egestas(nec(lacinia(non,(auctor(eget(lorem.(Nunc(vel(velit(quis(magna(hendrerit(volutpat(in(nec(leo.(Aenean(tempor(lectus(tortor,(nec(bibendum(elit(aliquam(at.(In(id(libero(tincidunt,(interdum(libero(sit(amet,(gravida(est.(Morbi(ut(ipsum(enim.(Duis(vel(posuere(ante.(Praesent(sollicitudin(lacus(sit(amet(luctus(euismod.(Phasellus(lorem(elit,(auctor(sed(risus(a,(faucibus(tempor(lacus.(Integer(id(tellus(ut(eros(congue(ornare.(Cras(vitae(ornare(sem.(Cras(tincidunt(arcu(efficitur(mauris(molestie,(eu(eleifend(eros(mattis.(Integer(id(diam(mauris.(Duis(suscipit(enim(risus,(non(dignissim(nulla(imperdiet(hendrerit.(Vestibulum(sed(dignissim(erat.(Aliquam(erat(volutpat.(Nunc(mattis(auctor(justo,(non(fringilla(dolor(blandit(a.(Donec(et(velit(tristique(lacus(varius(aliquam.(Praesent(ac(molestie(quam,(vitae(scelerisque(tellus.(Praesent(eleifend(sed(diam(in(gravida.(Donec(tristique(sapien(ante,(in(egestas(diam(porta(ac.(Proin(ac(justo(eleifend,(consequat(ante(vitae,(laoreet(augue.(Mauris(scelerisque(arcu(dolor,(quis(lobortis(risus(pellentesque(eu.(Praesent(in(enim(a(elit(feugiat(dapibus.(Duis(quis(bibendum(mi.(Vestibulum(lacinia,(sem(at(efficitur(volutpat,(velit(ligula(vulputate(nisi,(sit(amet(dapibus(risus(metus(sed(est.(Sed(in(venenatis(ante.(Pellentesque(vel(ipsum(pharetra,(efficitur(quam(ut,(hendrerit(dolor.`.split(`(`),n=function(e){return e.Text=`text`,e.Input=`input`,e.Select=`select`,e.Image=`image`,e.Video=`video`,e.WrapperElement=`wrapper-element`,e}({}),r=function(e){return e.PrimaryColor=`rgba(100, 100, 100, .6)`,e.SecondaryColor=`rgba(100, 100, 100, .3)`,e}({}),i=class{static daysInMs(e){return e*24*60*60*1e3}static dateBetween(e,t){return new Date(e.getTime()+Math.random()*(t.getTime()-e.getTime()))}},a=0,o=class e{get value(){return this.#e}#e;words(e){this.assertType();let t=``,n=0;for(;n<e;)t+=this.randomLoremWord()+` `,n++;return this.#e=t.trim(),this}paragraphs(e){this.assertType();let t=``,n=0;for(;n<e;){let r=50-Math.round(50*Math.random()*.2)*(Math.random()<.5?-1:1);t+=this.words(r).value,n!==e-1&&(t+=`
2
+ `),n++}return this.#e=t,this}number(e=0,t=1e3){return this.assertType(),this.#e=Math.ceil(Math.random()*(t-e))+e,this}float(e=0,t=1e3){return this.assertType(),this.#e=this.#e?this.#e+Math.random():Math.random()*(t-e)+e,this}currency(e){return this.assertType(),this.#e=new Intl.NumberFormat(e.locale,{...e.options,style:`currency`,currency:e.currency}).format(+this.#e),this}multiply(e){return this.assertType(),this.#e*=e,this}date(e={}){this.assertType();let t=e.max??new Date(`2100-01-01`),n=e.min??new Date(`1970-01-01`);return e.isFuture?n=new Date(Date.now()+i.daysInMs(1)):e.isPast&&(t=new Date(Date.now()-i.daysInMs(1))),this.#e=i.dateBetween(n,t),this}stringify(){let e=this.#e;this.assertType();let t=this;return t.#e=e.toString(),t}format(e){let t=this.#e??this.date().value;this.assertType();let n=t.getUTCFullYear().toString(),r=(t.getUTCMonth()+1).toString().padStart(2,`0`),i=t.getUTCDate().toString().padStart(2,`0`),a=t.getUTCHours().toString().padStart(2,`0`),o=(t.getUTCHours()%12||12).toString().padStart(2,`0`),s=t.getUTCMinutes().toString().padStart(2,`0`),c=t.getUTCSeconds().toString().padStart(2,`0`),l=this;return l.#e=e.replace(/yyyy/g,n).replace(/yy/g,n.slice(-2)).replace(/MM/g,r).replace(/dd/g,i).replace(/HH/g,a).replace(/hh/g,o).replace(/mm/g,s).replace(/ss/g,c),l}currencyCode(t=!1){let n=new e().randomItem([`USD`,`EUR`,`GBP`,`JPY`,`CNY`,`AUD`,`CAD`,`CHF`,`SEK`,`NZD`]);if(t){let t=n.value.toLowerCase();return new e().identical(t)}return n}countryCode(t){let n=t?.iso===`iso3`?[`USA`,`GBR`,`DEU`,`FRA`,`JPN`,`CHN`,`AUS`,`CAN`,`CHE`,`SWE`]:[`US`,`GB`,`DE`,`FR`,`JP`,`CN`,`AU`,`CA`,`CH`,`SE`],r=new e().randomItem(n);if(t?.lowercase){let t=r.value.toLowerCase();return new e().identical(t)}return r}email(){let t=new e().words(1).value.toLowerCase().replace(/[^a-z]/g,``),n=Math.floor(Math.random()*1e3),r=new e().randomItem([`gmail.com`,`outlook.com`,`yahoo.com`,`example.com`,`mail.com`]);return this.assertType(),this.#e=`${t}${n}@${r.value}`,this}timeOfDay(e={}){let t=this.#e??this.date().value;this.assertType();let n=(e.use12HourFormat?t.getUTCHours()%12:t.getUTCHours()).toString().padStart(2,`0`),r=t.getMinutes().toString().padStart(2,`0`),i=t.getSeconds().toString().padStart(2,`0`),a=this;return a.#e=e.showSeconds?`${n}:${r}:${i}`:`${n}:${r}`,e.showAmPm&&(a.#e+=t.getUTCHours()>=12?` PM`:` AM`),a}uuid(){return a++,this.assertType(),this.#e=a,this}boolean(){return this.assertType(),this.#e=Math.random()<=.5,this}symbol(e=0){return this.assertType(),this.#e=Symbol(e),this}randomItem(e){return this.assertType(),this.#e=e[Math.floor(Math.random()*e.length)],this}prefix(e){return this.assertType(),this.#e=`${e}${this.#e}`,this}suffix(e){return this.assertType(),this.#e=`${this.#e}${e}`,this}identical(e){return this.assertType(),this.#e=e,this}assertType(){}randomLoremWord(){return t[Math.floor(Math.random()*t.length)]??`lorem`}},s=0,c=class e{get value(){return this.val}constructor(t){this.generator=t,this.uuid=s++,this.viewModel=this.generator(),this.val=e.modelToValue(this.viewModel)}static modelToValue(t){if(t instanceof o)return t.value;if(Array.isArray(t))return t.map(this.modelToValue);{let n={};return Object.keys(t).forEach(r=>{n[r]=e.modelToValue(t[r])}),n}}},l=class{proxy(e){return e instanceof c?e.value:e}},u=class{constructor(){this.config=null,this.viewModels=[]}setupModels(){if(this.config){let e=this.config.schemaGenerator;this.viewModels=Array.from({length:this.config.repeat},()=>new c(e))}}},d=class e{static{this.dataAttr=`data-skeletonizer`}static skeletonizeProjectedTemplate(t,i){if(!this.isBrowser())return;let a=i?.primaryColor??r.PrimaryColor,o=i?.secondaryColor??r.SecondaryColor;t.setAttribute(`style`,`--skeletonizer-primary-color: ${a}; --skeletonizer-secondary-color: ${o};`),Array.from(t.querySelectorAll(`*:not(svg, [data-skeletonizer])`)).forEach(t=>{let r=[`br`,`b`,`strong`,`i`,`em`,`mark`,`small`,`del`,`ins`,`sub`,`sup`],i=Array.from(t.childNodes).map(e=>e.nodeName.toLowerCase()).filter(e=>!r.includes(e)),a=i.length>0&&i.some(e=>e!==i[0]);t.childNodes.forEach(r=>{switch(r.nodeName.toLowerCase()){case`#text`:if(this.assertAs(r),r.wholeText.trim())if(a){let t=document.createElement(`span`);t.innerText=r.cloneNode().wholeText,t.innerText.length&&r.replaceWith(e.skeletonizedSpanGenerator(t.innerText,n.Text))}else t.innerHTML=e.skeletonizedSpanGenerator(t.innerHTML,n.Text).outerHTML;break;case`input`:r.setAttribute(e.dataAttr,n.Input);break;case`select`:r.setAttribute(e.dataAttr,n.Select);break;case`img`:r.setAttribute(e.dataAttr,n.Image);break;case`video`:r.setAttribute(e.dataAttr,n.Video);break}})}),t.setAttribute(e.dataAttr,n.WrapperElement)}static skeletonizedSpanGenerator(t,n){let r=document.createElement(`span`);return r.innerHTML=t,r.setAttribute(e.dataAttr,n),r}static isBrowser(){return typeof document<`u`}static assertAs(e){}};e.Schema=c,e.SchemaItem=o,e.SkeletonAbstractComponent=l,e.SkeletonAdapterComponent=u,e.SkeletonDirective=d});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skeletonizer/utils",
3
- "version": "2.2.5",
3
+ "version": "2.4.0",
4
4
  "description": "Utils for all skeletonizer packages",
5
5
  "author": "Luka Varga",
6
6
  "license": "MIT",
@@ -50,10 +50,10 @@
50
50
  "**/*.{ts,js}": "eslint --fix"
51
51
  },
52
52
  "devDependencies": {
53
- "@vitest/coverage-istanbul": "4.0.17",
54
- "sass": "^1.97.2",
53
+ "@vitest/coverage-istanbul": "4.1.4",
54
+ "sass": "^1.99.0",
55
55
  "vite-plugin-dts": "^4.5.4",
56
- "vitest": "4.0.17"
56
+ "vitest": "4.1.4"
57
57
  },
58
- "gitHead": "4a6d66efcb88cc95159e276daca336048bfe3402"
58
+ "gitHead": "c095ab46121f80747f8bf3c9cc2c8bd08ae10495"
59
59
  }