@semi-kit/utils 1.2.2 → 1.2.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/lib/color.d.mts +9 -5
- package/lib/color.mjs +1 -1
- package/lib/rules.mjs +1 -1
- package/package.json +1 -1
package/lib/color.d.mts
CHANGED
|
@@ -1,25 +1,29 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* 将 Hex 颜色值转换为 RGB 格式
|
|
3
|
-
* @param hex -
|
|
4
|
-
* @returns RGB 对象,包含 r、g、b
|
|
2
|
+
* 将 Hex 颜色值转换为 RGB/RGBA 格式
|
|
3
|
+
* @param hex - 十六进制颜色值,支持 6 位或 8 位格式,例如 '#ffffff'、'ffffff'、'#ffffffFF'
|
|
4
|
+
* @returns RGB/RGBA 对象,包含 r、g、b 和可选的 a 属性
|
|
5
5
|
* @example
|
|
6
6
|
* hexToRgb('#ff0000') -> { r: 255, g: 0, b: 0 }
|
|
7
|
+
* hexToRgb('#14443080') -> { r: 20, g: 68, b: 48, a: 0.5 }
|
|
7
8
|
*/
|
|
8
9
|
declare const hexToRgb: (hex: string) => {
|
|
9
10
|
r: number;
|
|
10
11
|
g: number;
|
|
11
12
|
b: number;
|
|
13
|
+
a?: number;
|
|
12
14
|
};
|
|
13
15
|
/**
|
|
14
|
-
* 将 RGB 颜色值转换为 Hex 格式
|
|
16
|
+
* 将 RGB/RGBA 颜色值转换为 Hex 格式
|
|
15
17
|
* @param r - 红色值 (0-255)
|
|
16
18
|
* @param g - 绿色值 (0-255)
|
|
17
19
|
* @param b - 蓝色值 (0-255)
|
|
20
|
+
* @param a - 可选的透明度值 (0-1)
|
|
18
21
|
* @returns 十六进制颜色值字符串
|
|
19
22
|
* @example
|
|
20
23
|
* rgbToHex(255, 0, 0) -> '#ff0000'
|
|
24
|
+
* rgbToHex(20, 68, 48, 0.5) -> '#14443080'
|
|
21
25
|
*/
|
|
22
|
-
declare const rgbToHex: (r: number, g: number, b: number) => string;
|
|
26
|
+
declare const rgbToHex: (r: number, g: number, b: number, a?: number) => string;
|
|
23
27
|
/**
|
|
24
28
|
* 随机生成一个 Hex 颜色值
|
|
25
29
|
* @returns 随机的十六进制颜色值字符串
|
package/lib/color.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const hexToRgb=e=>{let t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})
|
|
1
|
+
const hexToRgb=e=>{let t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i.exec(e),n={r:parseInt(t?.[1]??`0`,16),g:parseInt(t?.[2]??`0`,16),b:parseInt(t?.[3]??`0`,16)};return t?.[4]?{...n,a:parseInt(t[4],16)/255}:n},rgbToHex=(e,t,n,r)=>{let i=`#${((1<<24)+(e<<16)+(t<<8)+n).toString(16).slice(1)}`;return r===void 0?i:`${i}${Math.round(r*255).toString(16).padStart(2,`0`)}`},randomHex=()=>`#${Math.floor(Math.random()*16777215).toString(16).padEnd(6,`0`)}`;export{hexToRgb,randomHex,rgbToHex};
|
package/lib/rules.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useLocal}from"./_utils/local.mjs";import{isRegExp}from"es-toolkit";import{getAppProvider}from"@semi-kit/component";const prefix={input:`pleaseInput`,"input-number":`pleaseInput`,change:`pleaseSelect`},presetRulePatterns={officePhoneRule:/^(0\d{2,3}-?)?\d+$/,mobilePhoneRule:/^(?:(?:\+|00)86)?1\d{10}$/,emailRule:/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\])|(([a-z\-0-9]+\.)+[a-z]{2,}))$/i,onlyNumbersRule:/^\d+$/,onlyLetterRule:/^[a-z]+$/i,onlyLowercaseRule:/^[a-z]+$/,onlyUppercaseRule:/^[A-Z]+$/,onlyIntRule:/^(?:0|-?[1-9]\d*)$/,onlyPositiveIntRule:/^\+?[1-9]\d*$/,onlyPositiveIntZeroRule:/^\+?\d+$/,onlyNegativeIntRule:/^-\d+$/,ipRule:/^((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])(?::(?:\d|[1-9]\d{1,3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5]))?$/,onlyChineseRule:/[\u4e00-\u9fa5]+$/,onlyNotChineseRule:/[^\u4e00-\u9fa5|\u3002\uff1f\uff01\uff0c\u3001\uff1b\uff1a\u201c\u201d\u2018\u2019\uff08\uff09\u300a\u300b\u3008\u3009\u3010\u3011\u300e\u300f\u300c\u300d\ufe43\ufe44\u3014\u3015\u2026\u2014\uff5e\ufe4f\uffe5]$/};function useRules(n,a,o={}){let s=useLocal(),{required:c=!0}=o,l={trigger:[`blur`,n===`input-number`?`change`:n]};return c&&(l.required=c),n===`input-number`&&(l.type=`number`),a in presetRulePatterns?l.validator=(e,n)=>{let{message:c,required:l=!0}=o;if(!l&&!n)return!0;let u=presetRulePatterns[a];return isRegExp(u)?l&&(typeof n==`number`?n==null:!n)?Error(s(prefix.input)+(c||``)):u.test(n)?!0:Error(s(a)):(console.error(`Rule 验证`,Error(`非 RegExp 表达式`)),!0)}:l.message=s(prefix[n])+a,l}const useRuleStringLength=(t=0,r,i)=>{let a=useLocal(),o=getAppProvider()
|
|
1
|
+
import{useLocal}from"./_utils/local.mjs";import{isRegExp}from"es-toolkit";import{getAppProvider}from"@semi-kit/component";const prefix={input:`pleaseInput`,"input-number":`pleaseInput`,change:`pleaseSelect`},presetRulePatterns={officePhoneRule:/^(0\d{2,3}-?)?\d+$/,mobilePhoneRule:/^(?:(?:\+|00)86)?1\d{10}$/,emailRule:/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\])|(([a-z\-0-9]+\.)+[a-z]{2,}))$/i,onlyNumbersRule:/^\d+$/,onlyLetterRule:/^[a-z]+$/i,onlyLowercaseRule:/^[a-z]+$/,onlyUppercaseRule:/^[A-Z]+$/,onlyIntRule:/^(?:0|-?[1-9]\d*)$/,onlyPositiveIntRule:/^\+?[1-9]\d*$/,onlyPositiveIntZeroRule:/^\+?\d+$/,onlyNegativeIntRule:/^-\d+$/,ipRule:/^((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])(?::(?:\d|[1-9]\d{1,3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5]))?$/,onlyChineseRule:/[\u4e00-\u9fa5]+$/,onlyNotChineseRule:/[^\u4e00-\u9fa5|\u3002\uff1f\uff01\uff0c\u3001\uff1b\uff1a\u201c\u201d\u2018\u2019\uff08\uff09\u300a\u300b\u3008\u3009\u3010\u3011\u300e\u300f\u300c\u300d\ufe43\ufe44\u3014\u3015\u2026\u2014\uff5e\ufe4f\uffe5]$/};function useRules(n,a,o={}){let s=useLocal(),{required:c=!0}=o,l={trigger:[`blur`,n===`input-number`?`change`:n]};return c&&(l.required=c),n===`input-number`&&(l.type=`number`),a in presetRulePatterns?l.validator=(e,n)=>{let{message:c,required:l=!0}=o;if(!l&&!n)return!0;let u=presetRulePatterns[a];return isRegExp(u)?l&&(typeof n==`number`?n==null:!n)?Error(s(prefix.input)+(c||``)):u.test(n)?!0:Error(s(a)):(console.error(`Rule 验证`,Error(`非 RegExp 表达式`)),!0)}:l.message=s(prefix[n])+a,l}const useRuleStringLength=(t=0,r,i)=>{let a=useLocal(),o=getAppProvider(),s=r||o?.formRuleConfig?.value?.stringLength||0;return{trigger:[`blur`,`input`],min:t,max:s,message:i||(t===0?a(`onlyMaxLengthRule`,{max:s}):r===0?a(`onlyMinLengthRule`,{min:t}):a(`lengthRule`,{min:t,max:s}))}},useRuleNumberLength=(t=0,r,i)=>{let a=useLocal(),o=getAppProvider(),s=10**(r||o?.formRuleConfig?.value?.numberLength||0)-1;return{type:`number`,trigger:[`blur`,`change`],min:t===0?0:10**t,max:10**s-1,message:i||(t===0?a(`onlyMaxLengthRule`,{max:s}):s===0?a(`onlyMinLengthRule`,{min:t}):a(`lengthRule`,{min:t,max:s}))}},useRuleNumberSize=(t=0,r,i)=>{let a=useLocal(),o=getAppProvider(),s=10**(r||o?.formRuleConfig?.value?.numberSize||0)-1;return{type:`number`,trigger:[`blur`,`change`],min:t,max:s,message:i||(t===0?a(`onlyMaxSizeRule`,{max:s}):s===0?a(`onlyMinSizeRule`,{min:t}):a(`sizeRule`,{min:t,max:s}))}},useRuleDecimalPlace=(t,r)=>{let i=useLocal(),a=getAppProvider(),o=t||a?.formRuleConfig?.value?.decimalPlace||2;return{type:`number`,trigger:[`blur`,`change`],validator:(e,t)=>{if(t==null||t===``)return!0;let n=String(t),a=n.indexOf(`.`);return a===-1?!0:n.substring(a+1).length>o?Error(r||i(`decimalPlaceRule`,{place:o})):!0}}};export{useRuleDecimalPlace,useRuleNumberLength,useRuleNumberSize,useRuleStringLength,useRules};
|