@gem-sdk/hash-class-names 17.0.0-dev.73 → 17.0.0-staging.20
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/cjs/css-escape.js +1 -1
- package/dist/cjs/css-parser.js +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/esm/css-escape.js +1 -1
- package/dist/esm/css-parser.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/types/index.d.ts +2 -3
- package/package.json +2 -2
package/dist/cjs/css-escape.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";const cssEscape=function(t){let e;if(0==arguments.length)throw TypeError("`CSS.escape` requires an argument.");let r=String(t),c=r.length,n=-1,s="",i=r.charCodeAt(0);if(1==c&&45==i)return"\\"+r;for(;++n<c;){if(0==(e=r.charCodeAt(n))){s+="�";continue}if(e>=1&&e<=31||127==e||0==n&&e>=48&&e<=57||1==n&&e>=48&&e<=57&&45==i){s+="\\"+e.toString(16)+" ";continue}if(e>=128||45==e||95==e||e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122){s+=r.charAt(n);continue}s+="\\"+r.charAt(n)}return s};exports.cssEscape=cssEscape;
|
package/dist/cjs/css-parser.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const
|
|
1
|
+
"use strict";const cssToJson=e=>{let t,l=e,r={children:{},attributes:""},s={},n=/(@media[^{]+\)).*?{([\s\S]+?})\s*}/g;for(;null!==(t=n.exec(e));){t.index===n.lastIndex&&n.lastIndex++;let e={media:"",style:""};t.forEach((t,r)=>{0==r&&(l=l.replaceAll(t,"")),1==r&&(e.media=t),2==r&&(e.style=t)}),s[e.media]=s[e.media]||[],s[e.media]?.push(e.style)}let o=parseCSS(l);for(let e in o)if(Object.prototype.hasOwnProperty.call(o,e)){let t=o[e];r.children[e]={children:{},attributes:t}}for(let e in s)if(Object.prototype.hasOwnProperty.call(s,e)){let t=s[e];if(t?.length){let l={children:{},attributes:""},s=parseCSS(t?.join(""));for(let e in s)if(Object.prototype.hasOwnProperty.call(s,e)){let t=s[e];l.children[e]={children:{},attributes:t}}r.children[e]=l}}return r},jsonToCss=(e,t)=>{let l="";for(let t in e.children)if(Object.prototype.hasOwnProperty.call(e.children,t)){let r=e.children[t];r&&(l+=jsonToCss(r,t))}return(l||(l=e?.attributes||""),t)?`${t}{${l}}`:l},parseCSS=e=>{let t;let l={},r=/((.|\n|\r|\t)*?){((.|\n|\r|\t)*?)}/gm;for(;null!==(t=r.exec(e));){t.index===r.lastIndex&&r.lastIndex++;let e={key:"",value:""};t.forEach((t,l)=>{1==l&&(e.key=t.trim()),3==l&&(e.value=t)}),l[e.key]=e.value}return l};exports.cssToJson=cssToJson,exports.jsonToCss=jsonToCss;
|
package/dist/cjs/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var parse5=require("parse5"),cssEscape=require("./css-escape.js"),cssParser=require("./css-parser.js");const hashClassNames=(e,l,s)=>{let t="<!-- End extra file -->",{html:a,arrayMatch:r}=replaceLiquidToBKPlaceholder(e.join(t)),i=parse5.parseFragment(a),c=i.childNodes;if(c?.length){let e={},a={},i=(e,l)=>{if(e?.length)for(let s=0;s<e.length;s++){let t=e[s];if(t){let e=t.attrs?.find(e=>"data-keep-class"==e.name)?.value;!e&&(l(t),t.childNodes?.length&&i(t.childNodes,l))}}};i(c,l=>{if(l?.attrs?.length){let t=l.attrs.find(e=>"class"==e.name);if(t?.value){let r=t.value.split(" ");if(r?.length)for(let t=0;t<r.length;t++){let i=r[t]?.trim()||"";if(i=i.replace(/bk-liquid.*?bk-liquid/g,""),i=replacePseudoClasses(i),!(s?.ignoreClasses?.includes(i)||s?.classList&&!s.classList.includes(i))&&i){let s=e[i];if(s)replaceClass(l,i,s.hash);else for(;;){let s=`a${ID()}`;if(!a[s]){a[s]=!0,e[i]={hash:s},replaceClass(l,i,s);break}}}}}}});let o="";for(let e=0;e<c.length;e++){let l=c[e];l&&(o+=parse5.serializeOuter(l))}let n=[];for(let l in e)if(Object.prototype.hasOwnProperty.call(e,l)){let s=e[l];s?.hash&&n.push({oldClass:l,newClass:s.hash})}n.sort((e,l)=>e.oldClass.includes(l.oldClass)?-1:1);let d=l;if(d){let e=cssParser.cssToJson(d),l=e=>{for(let l in e.children)if(Object.prototype.hasOwnProperty.call(e.children,l)){let t=l,a=e.children[l],r=t.split(",");for(let e=0;e<r.length;e++){let l=r[e];if(l){let t=l.split(".");for(let e=0;e<t.length;e++){let l=t[e];if(l=replacePseudoClasses(l||""),(!s?.classList||s.classList.includes(l))&&l)for(let s=0;s<n.length;s++){let a=n[s];if(a){let s=!1;if(a.oldClass==l?s=!0:cssEscape.cssEscape(a.oldClass)==l&&(s=!0),s){t[e]=replaceSelector(t[e]||"",a.oldClass,a.newClass);break}}}}r[e]=t.join(".")}}(t=r.join(","))!=l&&a&&(e.children[t]=a,delete e.children[l])}if(e.children){for(let s in e.children)if(Object.prototype.hasOwnProperty.call(e.children,s)){let t=e.children[s];t&&l(t)}}};l(e),d=cssParser.jsonToCss(e)}return o=replaceBKPlaceholderToLiquid(o,r),s?.getOrderClass?{html:o.split(t),css:d,orderClass:s?.getOrderClass?n:[]}:{html:o.split(t),css:d}}return s?.getOrderClass?{html:e,css:l,orderClass:[]}:{html:e,css:l}},ID=function(){return Math.random().toString(36).substr(2,5)},replaceClass=(e,l,s)=>{if(e.attrs?.length){let t=e.attrs.find(e=>"class"==e.name);if(t?.value){let e=t.value.split(" ");for(let t=0;t<e.length;t++){let a=e[t];if(a){let r=replacePseudoClasses(a?.replace(/bk-liquid.*?bk-liquid/g,""));if(r==l){let r=a?.replace(l,s)||a;e[t]=r}}}t.value=e.join(" ")}}},replaceSelector=(e,l,s)=>{let t=e;return(t=t.replaceAll(l,s)).replaceAll(cssEscape.cssEscape(l),cssEscape.cssEscape(s))},replacePseudoClasses=e=>(e=e?.trim(),e=e?.replace(RegExp("\\[.*?\\]","gm"),""),e=e?.replace(")",""),e=e?.replace(/:(a(ctive|ny(-link)*)|checked|d(efault|i(r\(\)|sabled))|e(mpty|nabled)|f(irst(-(child|of-type))*|ullscreen|ocus)|hover|in(determinate|valid|-range)|la(ng\(\)|(st-(child|of-type)))|l(eft|ink)|n(ot\(\)|th-((last-)*(child|of-type)\(\)))|o(nly-(child|of-type)|ptional|ut-of-range)|r(e(ad-(only|write)|quired)|ight|oot)|scope|target|v(alid|isited))/g,""),e=e?.replace(/(active|hover|focus|disabled|first|last|mobile|tablet)\\:/g,""),e=e?.replace(/(active|hover|focus|disabled|first|last|mobile|tablet):/g,"")),replaceLiquidToBKPlaceholder=e=>{let l=/\{%(.|[\n\r\t])*?%\}|\{\{(.|[\n\r\t])*?\}\}/g,s=e.match(l);if(s?.length)for(let l=0;l<s.length;l++){let t=s[l];t&&(e=e.replace(t,"bk-liquid"+l+"bk-liquid"))}return{html:e,arrayMatch:s}},replaceBKPlaceholderToLiquid=(e,l)=>{if(l?.length)for(let s=0;s<l.length;s++){let t=l[s];t&&(e=(e=(e=e.replace("bk-liquid"+s+'bk-liquid=""',t)).replace("bk-liquid"+s+"bk-liquid=''",t)).replace("bk-liquid"+s+"bk-liquid",t))}return e};exports.hashClassNames=hashClassNames;
|
package/dist/esm/css-escape.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
let
|
|
1
|
+
let cssEscape=function(e){let t;if(0==arguments.length)throw TypeError("`CSS.escape` requires an argument.");let r=String(e),n=r.length,c=-1,i="",o=r.charCodeAt(0);if(1==n&&45==o)return"\\"+r;for(;++c<n;){if(0==(t=r.charCodeAt(c))){i+="�";continue}if(t>=1&&t<=31||127==t||0==c&&t>=48&&t<=57||1==c&&t>=48&&t<=57&&45==o){i+="\\"+t.toString(16)+" ";continue}if(t>=128||45==t||95==t||t>=48&&t<=57||t>=65&&t<=90||t>=97&&t<=122){i+=r.charAt(c);continue}i+="\\"+r.charAt(c)}return i};export{cssEscape};
|
package/dist/esm/css-parser.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
let
|
|
1
|
+
let cssToJson=e=>{let t,l=e,r={children:{},attributes:""},n={},s=/(@media[^{]+\)).*?{([\s\S]+?})\s*}/g;for(;null!==(t=s.exec(e));){t.index===s.lastIndex&&s.lastIndex++;let e={media:"",style:""};t.forEach((t,r)=>{0==r&&(l=l.replaceAll(t,"")),1==r&&(e.media=t),2==r&&(e.style=t)}),n[e.media]=n[e.media]||[],n[e.media]?.push(e.style)}let i=parseCSS(l);for(let e in i)if(Object.prototype.hasOwnProperty.call(i,e)){let t=i[e];r.children[e]={children:{},attributes:t}}for(let e in n)if(Object.prototype.hasOwnProperty.call(n,e)){let t=n[e];if(t?.length){let l={children:{},attributes:""},n=parseCSS(t?.join(""));for(let e in n)if(Object.prototype.hasOwnProperty.call(n,e)){let t=n[e];l.children[e]={children:{},attributes:t}}r.children[e]=l}}return r},jsonToCss=(e,t)=>{let l="";for(let t in e.children)if(Object.prototype.hasOwnProperty.call(e.children,t)){let r=e.children[t];r&&(l+=jsonToCss(r,t))}return(l||(l=e?.attributes||""),t)?`${t}{${l}}`:l},parseCSS=e=>{let t;let l={},r=/((.|\n|\r|\t)*?){((.|\n|\r|\t)*?)}/gm;for(;null!==(t=r.exec(e));){t.index===r.lastIndex&&r.lastIndex++;let e={key:"",value:""};t.forEach((t,l)=>{1==l&&(e.key=t.trim()),3==l&&(e.value=t)}),l[e.key]=e.value}return l};export{cssToJson,jsonToCss};
|
package/dist/esm/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{parseFragment as e,serializeOuter as l}from"parse5";import{cssEscape as t}from"./css-escape.js";import{cssToJson as
|
|
1
|
+
import{parseFragment as e,serializeOuter as l}from"parse5";import{cssEscape as t}from"./css-escape.js";import{cssToJson as s,jsonToCss as i}from"./css-parser.js";let hashClassNames=(r,a,c)=>{let o="<!-- End extra file -->",{html:d,arrayMatch:n}=replaceLiquidToBKPlaceholder(r.join(o)),h=e(d),p=h.childNodes;if(p?.length){let e={},r={},d=(e,l)=>{if(e?.length)for(let t=0;t<e.length;t++){let s=e[t];if(s){let e=s.attrs?.find(e=>"data-keep-class"==e.name)?.value;!e&&(l(s),s.childNodes?.length&&d(s.childNodes,l))}}};d(p,l=>{if(l?.attrs?.length){let t=l.attrs.find(e=>"class"==e.name);if(t?.value){let s=t.value.split(" ");if(s?.length)for(let t=0;t<s.length;t++){let i=s[t]?.trim()||"";if(i=i.replace(/bk-liquid.*?bk-liquid/g,""),i=replacePseudoClasses(i),!(c?.ignoreClasses?.includes(i)||c?.classList&&!c.classList.includes(i))&&i){let t=e[i];if(t)replaceClass(l,i,t.hash);else for(;;){let t=`a${ID()}`;if(!r[t]){r[t]=!0,e[i]={hash:t},replaceClass(l,i,t);break}}}}}}});let h="";for(let e=0;e<p.length;e++){let t=p[e];t&&(h+=l(t))}let f=[];for(let l in e)if(Object.prototype.hasOwnProperty.call(e,l)){let t=e[l];t?.hash&&f.push({oldClass:l,newClass:t.hash})}f.sort((e,l)=>e.oldClass.includes(l.oldClass)?-1:1);let u=a;if(u){let e=s(u),l=e=>{for(let l in e.children)if(Object.prototype.hasOwnProperty.call(e.children,l)){let s=l,i=e.children[l],r=s.split(",");for(let e=0;e<r.length;e++){let l=r[e];if(l){let s=l.split(".");for(let e=0;e<s.length;e++){let l=s[e];if(l=replacePseudoClasses(l||""),(!c?.classList||c.classList.includes(l))&&l)for(let i=0;i<f.length;i++){let r=f[i];if(r){let i=!1;if(r.oldClass==l?i=!0:t(r.oldClass)==l&&(i=!0),i){s[e]=replaceSelector(s[e]||"",r.oldClass,r.newClass);break}}}}r[e]=s.join(".")}}(s=r.join(","))!=l&&i&&(e.children[s]=i,delete e.children[l])}if(e.children){for(let t in e.children)if(Object.prototype.hasOwnProperty.call(e.children,t)){let s=e.children[t];s&&l(s)}}};l(e),u=i(e)}return h=replaceBKPlaceholderToLiquid(h,n),c?.getOrderClass?{html:h.split(o),css:u,orderClass:c?.getOrderClass?f:[]}:{html:h.split(o),css:u}}return c?.getOrderClass?{html:r,css:a,orderClass:[]}:{html:r,css:a}},ID=function(){return Math.random().toString(36).substr(2,5)},replaceClass=(e,l,t)=>{if(e.attrs?.length){let s=e.attrs.find(e=>"class"==e.name);if(s?.value){let e=s.value.split(" ");for(let s=0;s<e.length;s++){let i=e[s];if(i){let r=replacePseudoClasses(i?.replace(/bk-liquid.*?bk-liquid/g,""));if(r==l){let r=i?.replace(l,t)||i;e[s]=r}}}s.value=e.join(" ")}}},replaceSelector=(e,l,s)=>{let i=e;return(i=i.replaceAll(l,s)).replaceAll(t(l),t(s))},replacePseudoClasses=e=>(e=e?.trim(),e=e?.replace(RegExp("\\[.*?\\]","gm"),""),e=e?.replace(")",""),e=e?.replace(/:(a(ctive|ny(-link)*)|checked|d(efault|i(r\(\)|sabled))|e(mpty|nabled)|f(irst(-(child|of-type))*|ullscreen|ocus)|hover|in(determinate|valid|-range)|la(ng\(\)|(st-(child|of-type)))|l(eft|ink)|n(ot\(\)|th-((last-)*(child|of-type)\(\)))|o(nly-(child|of-type)|ptional|ut-of-range)|r(e(ad-(only|write)|quired)|ight|oot)|scope|target|v(alid|isited))/g,""),e=e?.replace(/(active|hover|focus|disabled|first|last|mobile|tablet)\\:/g,""),e=e?.replace(/(active|hover|focus|disabled|first|last|mobile|tablet):/g,"")),replaceLiquidToBKPlaceholder=e=>{let l=/\{%(.|[\n\r\t])*?%\}|\{\{(.|[\n\r\t])*?\}\}/g,t=e.match(l);if(t?.length)for(let l=0;l<t.length;l++){let s=t[l];s&&(e=e.replace(s,"bk-liquid"+l+"bk-liquid"))}return{html:e,arrayMatch:t}},replaceBKPlaceholderToLiquid=(e,l)=>{if(l?.length)for(let t=0;t<l.length;t++){let s=l[t];s&&(e=(e=(e=e.replace("bk-liquid"+t+'bk-liquid=""',s)).replace("bk-liquid"+t+"bk-liquid=''",s)).replace("bk-liquid"+t+"bk-liquid",s))}return e};export{hashClassNames};
|
package/dist/types/index.d.ts
CHANGED
|
@@ -15,8 +15,7 @@ declare const hashClassNames: (html: string[], css: string, options?: {
|
|
|
15
15
|
orderClass?: {
|
|
16
16
|
oldClass: string;
|
|
17
17
|
newClass: string;
|
|
18
|
-
}[];
|
|
18
|
+
}[] | undefined;
|
|
19
19
|
};
|
|
20
20
|
|
|
21
|
-
export { hashClassNames };
|
|
22
|
-
export type { Node };
|
|
21
|
+
export { Node, hashClassNames };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gem-sdk/hash-class-names",
|
|
3
|
-
"version": "17.0.0-
|
|
3
|
+
"version": "17.0.0-staging.20",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"post:publish": "node ./../../helpers/convert-publish.js",
|
|
11
11
|
"watch": "rollup -c ./../../helpers/rollup.config.mjs -w",
|
|
12
12
|
"build": "rollup -c ./../../helpers/rollup.config.mjs --environment NODE_ENV:production",
|
|
13
|
-
"lint": "
|
|
13
|
+
"lint": "eslint ./src --ext .tsx,.ts",
|
|
14
14
|
"type-check": "yarn tsc --noEmit",
|
|
15
15
|
"test": "jest -c ./../../helpers/jest.config.ts"
|
|
16
16
|
},
|