@fast-china/utils 1.0.21 → 1.0.23

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/es/dom/style.d.ts CHANGED
@@ -9,4 +9,4 @@ export declare const addUnit: (value?: string | number, defaultUnit?: string) =>
9
9
  * @param style 样式对象(CSSStyleDeclaration)
10
10
  * @returns 返回符合 HTML 内联格式的样式字符串,例如 "font-size: 14px; color: red;"
11
11
  */
12
- export declare const styleToString: (style: Partial<CSSStyleDeclaration>) => string;
12
+ export declare const styleToString: (styles: Partial<CSSStyleDeclaration> | Partial<CSSStyleDeclaration>[] | string) => string;
package/es/dom/style.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { isString, isNumber } from "lodash-unified";
1
+ import { isString, isNumber, isArray } from "lodash-unified";
2
2
  import { consoleWarn } from "../console/index.mjs";
3
3
  const isStringNumber = (val) => {
4
4
  if (!isString(val)) {
@@ -15,12 +15,18 @@ const addUnit = (value, defaultUnit = "px") => {
15
15
  }
16
16
  consoleWarn("document", "binding value must be a string or number");
17
17
  };
18
- const styleToString = (style) => {
19
- if (!style) return "";
20
- return Object.entries(style).map(([key, value]) => {
21
- const keyName = key.replace(/([A-Z])/g, "-$1").toLowerCase();
22
- return `${keyName}: ${value};`;
23
- }).join(" ");
18
+ const styleToString = (styles) => {
19
+ if (!styles) return "";
20
+ if (isArray(styles)) {
21
+ return styles.filter((item) => item && (item == null ? void 0 : item.length) > 0).map((item) => styleToString(item)).join(" ");
22
+ } else if (isString(styles)) {
23
+ return styles.trimEnd().endsWith(";") ? styles.trimEnd() : `${styles.trimEnd()};`;
24
+ } else {
25
+ return Object.entries(styles).filter(([_, value]) => value !== null && value !== "").map(([key, value]) => {
26
+ const keyName = key.replace(/([A-Z])/g, "-$1").toLowerCase();
27
+ return `${keyName}:${value};`;
28
+ }).join(" ");
29
+ }
24
30
  };
25
31
  export {
26
32
  addUnit,
@@ -1 +1 @@
1
- {"version":3,"file":"style.mjs","sources":["../../../../src/dom/style.ts"],"sourcesContent":["import { isNumber, isString } from \"lodash-unified\";\nimport { consoleWarn } from \"../console\";\n\nconst isStringNumber = (val: string): boolean => {\n\tif (!isString(val)) {\n\t\treturn false;\n\t}\n\treturn !Number.isNaN(Number(val));\n};\n\n/**\n * 添加单位\n * @param value 字符串或数字类型\n * @param defaultUnit 单位\n */\nexport const addUnit = (value?: string | number, defaultUnit = \"px\"): string => {\n\tif (!value) return \"\";\n\tif (isNumber(value) || isStringNumber(value)) {\n\t\treturn `${value}${defaultUnit}`;\n\t} else if (isString(value)) {\n\t\treturn value;\n\t}\n\tconsoleWarn(\"document\", \"binding value must be a string or number\");\n};\n\n/**\n * 将样式对象转换为内联 style 字符串(kebab-case 格式)\n * @param style 样式对象(CSSStyleDeclaration)\n * @returns 返回符合 HTML 内联格式的样式字符串,例如 \"font-size: 14px; color: red;\"\n */\nexport const styleToString = (style: Partial<CSSStyleDeclaration>): string => {\n\tif (!style) return \"\";\n\treturn Object.entries(style)\n\t\t.map(([key, value]) => {\n\t\t\tconst keyName = key.replace(/([A-Z])/g, \"-$1\").toLowerCase();\n\t\t\treturn `${keyName}: ${value};`;\n\t\t})\n\t\t.join(\" \");\n};\n"],"names":[],"mappings":";;AAGA,MAAM,iBAAiB,CAAC,QAAyB;AAC5C,MAAA,CAAC,SAAS,GAAG,GAAG;AACZ,WAAA;AAAA,EAAA;AAER,SAAO,CAAC,OAAO,MAAM,OAAO,GAAG,CAAC;AACjC;AAOO,MAAM,UAAU,CAAC,OAAyB,cAAc,SAAiB;AAC3E,MAAA,CAAC,MAAc,QAAA;AACnB,MAAI,SAAS,KAAK,KAAK,eAAe,KAAK,GAAG;AACtC,WAAA,GAAG,KAAK,GAAG,WAAW;AAAA,EAAA,WACnB,SAAS,KAAK,GAAG;AACpB,WAAA;AAAA,EAAA;AAER,cAAY,YAAY,0CAA0C;AACnE;AAOa,MAAA,gBAAgB,CAAC,UAAgD;AACzE,MAAA,CAAC,MAAc,QAAA;AACZ,SAAA,OAAO,QAAQ,KAAK,EACzB,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AACtB,UAAM,UAAU,IAAI,QAAQ,YAAY,KAAK,EAAE,YAAY;AACpD,WAAA,GAAG,OAAO,KAAK,KAAK;AAAA,EAAA,CAC3B,EACA,KAAK,GAAG;AACX;"}
1
+ {"version":3,"file":"style.mjs","sources":["../../../../src/dom/style.ts"],"sourcesContent":["import { isArray, isNumber, isString } from \"lodash-unified\";\nimport { consoleWarn } from \"../console\";\n\nconst isStringNumber = (val: string): boolean => {\n\tif (!isString(val)) {\n\t\treturn false;\n\t}\n\treturn !Number.isNaN(Number(val));\n};\n\n/**\n * 添加单位\n * @param value 字符串或数字类型\n * @param defaultUnit 单位\n */\nexport const addUnit = (value?: string | number, defaultUnit = \"px\"): string => {\n\tif (!value) return \"\";\n\tif (isNumber(value) || isStringNumber(value)) {\n\t\treturn `${value}${defaultUnit}`;\n\t} else if (isString(value)) {\n\t\treturn value;\n\t}\n\tconsoleWarn(\"document\", \"binding value must be a string or number\");\n};\n\n/**\n * 将样式对象转换为内联 style 字符串(kebab-case 格式)\n * @param style 样式对象(CSSStyleDeclaration)\n * @returns 返回符合 HTML 内联格式的样式字符串,例如 \"font-size: 14px; color: red;\"\n */\nexport const styleToString = (styles: Partial<CSSStyleDeclaration> | Partial<CSSStyleDeclaration>[] | string): string => {\n\tif (!styles) return \"\";\n\tif (isArray(styles)) {\n\t\treturn styles\n\t\t\t.filter((item) => item && item?.length > 0)\n\t\t\t.map((item) => styleToString(item))\n\t\t\t.join(\" \");\n\t} else if (isString(styles)) {\n\t\treturn styles.trimEnd().endsWith(\";\") ? styles.trimEnd() : `${styles.trimEnd()};`;\n\t} else {\n\t\treturn Object.entries(styles)\n\t\t\t.filter(([_, value]) => value !== null && value !== \"\")\n\t\t\t.map(([key, value]) => {\n\t\t\t\tconst keyName = key.replace(/([A-Z])/g, \"-$1\").toLowerCase();\n\t\t\t\treturn `${keyName}:${value};`;\n\t\t\t})\n\t\t\t.join(\" \");\n\t}\n};\n"],"names":[],"mappings":";;AAGA,MAAM,iBAAiB,CAAC,QAAyB;AAC5C,MAAA,CAAC,SAAS,GAAG,GAAG;AACZ,WAAA;AAAA,EAAA;AAER,SAAO,CAAC,OAAO,MAAM,OAAO,GAAG,CAAC;AACjC;AAOO,MAAM,UAAU,CAAC,OAAyB,cAAc,SAAiB;AAC3E,MAAA,CAAC,MAAc,QAAA;AACnB,MAAI,SAAS,KAAK,KAAK,eAAe,KAAK,GAAG;AACtC,WAAA,GAAG,KAAK,GAAG,WAAW;AAAA,EAAA,WACnB,SAAS,KAAK,GAAG;AACpB,WAAA;AAAA,EAAA;AAER,cAAY,YAAY,0CAA0C;AACnE;AAOa,MAAA,gBAAgB,CAAC,WAA2F;AACpH,MAAA,CAAC,OAAe,QAAA;AAChB,MAAA,QAAQ,MAAM,GAAG;AACpB,WAAO,OACL,OAAO,CAAC,SAAS,SAAQ,6BAAM,UAAS,CAAC,EACzC,IAAI,CAAC,SAAS,cAAc,IAAI,CAAC,EACjC,KAAK,GAAG;AAAA,EAAA,WACA,SAAS,MAAM,GAAG;AAC5B,WAAO,OAAO,QAAA,EAAU,SAAS,GAAG,IAAI,OAAO,QAAA,IAAY,GAAG,OAAO,QAAA,CAAS;AAAA,EAAA,OACxE;AACC,WAAA,OAAO,QAAQ,MAAM,EAC1B,OAAO,CAAC,CAAC,GAAG,KAAK,MAAM,UAAU,QAAQ,UAAU,EAAE,EACrD,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AACtB,YAAM,UAAU,IAAI,QAAQ,YAAY,KAAK,EAAE,YAAY;AACpD,aAAA,GAAG,OAAO,IAAI,KAAK;AAAA,IAAA,CAC1B,EACA,KAAK,GAAG;AAAA,EAAA;AAEZ;"}
@@ -9,4 +9,4 @@ export declare const addUnit: (value?: string | number, defaultUnit?: string) =>
9
9
  * @param style 样式对象(CSSStyleDeclaration)
10
10
  * @returns 返回符合 HTML 内联格式的样式字符串,例如 "font-size: 14px; color: red;"
11
11
  */
12
- export declare const styleToString: (style: Partial<CSSStyleDeclaration>) => string;
12
+ export declare const styleToString: (styles: Partial<CSSStyleDeclaration> | Partial<CSSStyleDeclaration>[] | string) => string;
package/lib/dom/style.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("lodash-unified"),r=require("../console/index.js");exports.addUnit=(i,t="px")=>{return i?e.isNumber(i)||(n=i,e.isString(n)&&!Number.isNaN(Number(n)))?`${i}${t}`:e.isString(i)?i:void r.consoleWarn("document","binding value must be a string or number"):"";var n},exports.styleToString=e=>e?Object.entries(e).map((([e,r])=>`${e.replace(/([A-Z])/g,"-$1").toLowerCase()}: ${r};`)).join(" "):"";
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("lodash-unified"),r=require("../console/index.js"),i=r=>r?e.isArray(r)?r.filter((e=>e&&(null==e?void 0:e.length)>0)).map((e=>i(e))).join(" "):e.isString(r)?r.trimEnd().endsWith(";")?r.trimEnd():`${r.trimEnd()};`:Object.entries(r).filter((([e,r])=>null!==r&&""!==r)).map((([e,r])=>`${e.replace(/([A-Z])/g,"-$1").toLowerCase()}:${r};`)).join(" "):"";exports.addUnit=(i,t="px")=>{return i?e.isNumber(i)||(n=i,e.isString(n)&&!Number.isNaN(Number(n)))?`${i}${t}`:e.isString(i)?i:void r.consoleWarn("document","binding value must be a string or number"):"";var n},exports.styleToString=i;
2
2
  //# sourceMappingURL=style.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"style.js","sources":["../../../../src/dom/style.ts"],"sourcesContent":["import { isNumber, isString } from \"lodash-unified\";\nimport { consoleWarn } from \"../console\";\n\nconst isStringNumber = (val: string): boolean => {\n\tif (!isString(val)) {\n\t\treturn false;\n\t}\n\treturn !Number.isNaN(Number(val));\n};\n\n/**\n * 添加单位\n * @param value 字符串或数字类型\n * @param defaultUnit 单位\n */\nexport const addUnit = (value?: string | number, defaultUnit = \"px\"): string => {\n\tif (!value) return \"\";\n\tif (isNumber(value) || isStringNumber(value)) {\n\t\treturn `${value}${defaultUnit}`;\n\t} else if (isString(value)) {\n\t\treturn value;\n\t}\n\tconsoleWarn(\"document\", \"binding value must be a string or number\");\n};\n\n/**\n * 将样式对象转换为内联 style 字符串(kebab-case 格式)\n * @param style 样式对象(CSSStyleDeclaration)\n * @returns 返回符合 HTML 内联格式的样式字符串,例如 \"font-size: 14px; color: red;\"\n */\nexport const styleToString = (style: Partial<CSSStyleDeclaration>): string => {\n\tif (!style) return \"\";\n\treturn Object.entries(style)\n\t\t.map(([key, value]) => {\n\t\t\tconst keyName = key.replace(/([A-Z])/g, \"-$1\").toLowerCase();\n\t\t\treturn `${keyName}: ${value};`;\n\t\t})\n\t\t.join(\" \");\n};\n"],"names":["value","defaultUnit","isNumber","val","isString","Number","isNaN","index","consoleWarn","style","Object","entries","map","key","replace","toLowerCase","join"],"mappings":"mKAeuB,CAACA,EAAyBC,EAAc,QAC1D,OAACD,EACDE,EAASA,SAAAF,KAdUG,EAceH,EAbjCI,EAAAA,SAASD,KAGNE,OAAOC,MAAMD,OAAOF,KAWpB,GAAGH,IAAQC,IACRG,EAAAA,SAASJ,GACZA,OAERO,EAAAC,YAAY,WAAY,4CANL,GAbG,IAACL,CAmB2C,wBAQrCM,GACxBA,EACEC,OAAOC,QAAQF,GACpBG,KAAI,EAAEC,EAAKb,KAEJ,GADSa,EAAIC,QAAQ,WAAY,OAAOC,kBACzBf,OAEtBgB,KAAK,KANY"}
1
+ {"version":3,"file":"style.js","sources":["../../../../src/dom/style.ts"],"sourcesContent":["import { isArray, isNumber, isString } from \"lodash-unified\";\nimport { consoleWarn } from \"../console\";\n\nconst isStringNumber = (val: string): boolean => {\n\tif (!isString(val)) {\n\t\treturn false;\n\t}\n\treturn !Number.isNaN(Number(val));\n};\n\n/**\n * 添加单位\n * @param value 字符串或数字类型\n * @param defaultUnit 单位\n */\nexport const addUnit = (value?: string | number, defaultUnit = \"px\"): string => {\n\tif (!value) return \"\";\n\tif (isNumber(value) || isStringNumber(value)) {\n\t\treturn `${value}${defaultUnit}`;\n\t} else if (isString(value)) {\n\t\treturn value;\n\t}\n\tconsoleWarn(\"document\", \"binding value must be a string or number\");\n};\n\n/**\n * 将样式对象转换为内联 style 字符串(kebab-case 格式)\n * @param style 样式对象(CSSStyleDeclaration)\n * @returns 返回符合 HTML 内联格式的样式字符串,例如 \"font-size: 14px; color: red;\"\n */\nexport const styleToString = (styles: Partial<CSSStyleDeclaration> | Partial<CSSStyleDeclaration>[] | string): string => {\n\tif (!styles) return \"\";\n\tif (isArray(styles)) {\n\t\treturn styles\n\t\t\t.filter((item) => item && item?.length > 0)\n\t\t\t.map((item) => styleToString(item))\n\t\t\t.join(\" \");\n\t} else if (isString(styles)) {\n\t\treturn styles.trimEnd().endsWith(\";\") ? styles.trimEnd() : `${styles.trimEnd()};`;\n\t} else {\n\t\treturn Object.entries(styles)\n\t\t\t.filter(([_, value]) => value !== null && value !== \"\")\n\t\t\t.map(([key, value]) => {\n\t\t\t\tconst keyName = key.replace(/([A-Z])/g, \"-$1\").toLowerCase();\n\t\t\t\treturn `${keyName}:${value};`;\n\t\t\t})\n\t\t\t.join(\" \");\n\t}\n};\n"],"names":["styleToString","styles","isArray","filter","item","length","map","join","isString","trimEnd","endsWith","Object","entries","_","value","key","replace","toLowerCase","defaultUnit","isNumber","val","Number","isNaN","index","consoleWarn"],"mappings":"mJA8BaA,EAAiBC,GACxBA,EACDC,EAAAA,QAAQD,GACJA,EACLE,QAAQC,GAASA,UAAQA,WAAMC,QAAS,IACxCC,KAAKF,GAASJ,EAAcI,KAC5BG,KAAK,KACGC,EAAAA,SAASP,GACZA,EAAOQ,UAAUC,SAAS,KAAOT,EAAOQ,UAAY,GAAGR,EAAOQ,aAE9DE,OAAOC,QAAQX,GACpBE,QAAO,EAAEU,EAAGC,KAAqB,OAAVA,GAA4B,KAAVA,IACzCR,KAAI,EAAES,EAAKD,KAEJ,GADSC,EAAIC,QAAQ,WAAY,OAAOC,iBAC1BH,OAErBP,KAAK,KAfY,mBAhBE,CAACO,EAAyBI,EAAc,QAC1D,OAACJ,EACDK,EAASA,SAAAL,KAdUM,EAceN,EAbjCN,EAAAA,SAASY,KAGNC,OAAOC,MAAMD,OAAOD,KAWpB,GAAGN,IAAQI,IACRV,EAAAA,SAASM,GACZA,OAERS,EAAAC,YAAY,WAAY,4CANL,GAbG,IAACJ,CAmB2C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fast-china/utils",
3
- "version": "1.0.21",
3
+ "version": "1.0.23",
4
4
  "description": "Fast 工具库.",
5
5
  "type": "module",
6
6
  "keywords": [