{"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":["addUnit","value","defaultUnit","isNumber","isString","val","Number","isNaN","consoleWarn","styleToString","styles","isArray","filter","item","length","map","join","trimEnd","endsWith","Object","entries","_","key","replace","toLowerCase"],"mappings":"wHAGA,MAYaA,EAAU,CAACC,EAAyBC,EAAc,QAC9D,OAAKD,EACDE,EAASF,IAbRG,EADkBC,EAceJ,KAV9BK,OAAOC,MAAMD,OAAOD,IAWpB,GAAGJ,IAAQC,IACRE,EAASH,GACZA,OAERO,EAAY,WAAY,4CANL,GAbG,IAACH,GA2BXI,EAAiBC,GACxBA,EACDC,EAAQD,GACJA,EACLE,OAAQC,GAASA,GAAQA,GAAMC,OAAS,GACxCC,IAAKF,GAASJ,EAAcI,IAC5BG,KAAK,KACGZ,EAASM,GACZA,EAAOO,UAAUC,SAAS,KAAOR,EAAOO,UAAY,GAAGP,EAAOO,aAE9DE,OAAOC,QAAQV,GACpBE,OAAO,EAAES,EAAGpB,KAAqB,OAAVA,GAA4B,KAAVA,GACzCc,IAAI,EAAEO,EAAKrB,KAEJ,GADSqB,EAAIC,QAAQ,WAAY,OAAOC,iBAC1BvB,MAErBe,KAAK,KAfY"}