@semi-kit/hooks 1.1.16 → 1.2.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/lib/index.d.mts CHANGED
@@ -8,4 +8,6 @@ import { UseTreeReturn, useTree } from "./tree.mjs";
8
8
  import { UseModalReturn, useModal } from "./modal.mjs";
9
9
  import { UsePopoverReturn, usePopover } from "./popover.mjs";
10
10
  import { UseTableSelectionReturn, useTableSelection } from "./selection.mjs";
11
- export { UseDrawerReturn, UseDropdownReturn, UseFilterColumnReturn, UseFormReturn, UseForwardInstReturn, UseModalReturn, UsePopoverReturn, UseSortableReturn, UseTableSelectionReturn, UseTreeReturn, useDrawer, useDropdown, useFilterColumn, useForm, useForwardInst, useModal, usePopover, useSortable, useTableSelection, useTree };
11
+ import { PrefixType, PresetRules, ValidationTrigger, useRules } from "./rules.mjs";
12
+ import { LocaleMessages, useLocal } from "./local.mjs";
13
+ export { LocaleMessages, PrefixType, PresetRules, UseDrawerReturn, UseDropdownReturn, UseFilterColumnReturn, UseFormReturn, UseForwardInstReturn, UseModalReturn, UsePopoverReturn, UseSortableReturn, UseTableSelectionReturn, UseTreeReturn, ValidationTrigger, useDrawer, useDropdown, useFilterColumn, useForm, useForwardInst, useLocal, useModal, usePopover, useRules, useSortable, useTableSelection, useTree };
package/lib/index.mjs CHANGED
@@ -1 +1 @@
1
- import{useDrawer}from"./drawer.mjs";import{useDropdown}from"./dropdown.mjs";import{useFilterColumn}from"./filter-column.mjs";import{useForm}from"./form.mjs";import{useForwardInst}from"./forward-inst.mjs";import{useSortable}from"./sortable.mjs";import{useTree}from"./tree.mjs";import{useModal}from"./modal.mjs";import{usePopover}from"./popover.mjs";import{useTableSelection}from"./selection.mjs";export{useDrawer,useDropdown,useFilterColumn,useForm,useForwardInst,useModal,usePopover,useSortable,useTableSelection,useTree};
1
+ import{useDrawer}from"./drawer.mjs";import{useDropdown}from"./dropdown.mjs";import{useFilterColumn}from"./filter-column.mjs";import{useForm}from"./form.mjs";import{useForwardInst}from"./forward-inst.mjs";import{useSortable}from"./sortable.mjs";import{useTree}from"./tree.mjs";import{useModal}from"./modal.mjs";import{usePopover}from"./popover.mjs";import{useTableSelection}from"./selection.mjs";import{useLocal}from"./local.mjs";import{useRules}from"./rules.mjs";export{useDrawer,useDropdown,useFilterColumn,useForm,useForwardInst,useLocal,useModal,usePopover,useRules,useSortable,useTableSelection,useTree};
@@ -0,0 +1,3 @@
1
+ type LocaleMessages = Record<string, Record<string, string>>;
2
+ declare function useLocal(): (key: string) => string;
3
+ export { LocaleMessages, useLocal };
package/lib/local.mjs ADDED
@@ -0,0 +1 @@
1
+ import{getAppProvider}from"@semi-kit/component";let globalMessages={"zh-CN":{pleaseSelect:`请选择`,pleaseInput:`请输入`,ipRule:`IP 地址格式错误`,officePhoneRule:`办公电话格式错误`,mobilePhoneRule:`手机号码格式错误`,emailRule:`邮箱格式错误`,onlyNumbersRule:`只能包含数字`,onlyLetterRule:`只能包含字母`,onlyLowercaseRule:`只能包含小写字母`,onlyUppercaseRule:`只能包含大写字母`,onlyIntRule:`只能包含整数`,onlyPositiveIntRule:`只能包含正整数`,onlyPositiveIntZeroRule:`只能包含 0 及正整数`,onlyNegativeIntRule:`只能包含负整数`,onlyChineseRule:`只能包含中文字符`,onlyNotChineseRule:`只能包含非中文字符`},en:{pleaseSelect:`Please Select `,pleaseInput:`Please Input `,ipRule:`IP address format error`,officePhoneRule:`Office phone format error`,mobilePhoneRule:`Mobile phone format error`,emailRule:`Email format error`,onlyNumbersRule:`Only numbers allowed`,onlyLetterRule:`Only letters allowed`,onlyLowercaseRule:`Only lowercase letters allowed`,onlyUppercaseRule:`Only uppercase letters allowed`,onlyIntRule:`Only integers allowed`,onlyPositiveIntRule:`Only positive integers allowed`,onlyPositiveIntZeroRule:`Only positive integers or zero allowed`,onlyNegativeIntRule:`Only negative integers allowed`,onlyChineseRule:`Only Chinese characters allowed`,onlyNotChineseRule:`Chinese characters not allowed`}};function useLocal(){let n=getAppProvider();return e=>globalMessages[n.locale.value]?.[e]||e}export{useLocal};
@@ -0,0 +1,11 @@
1
+ import { FormItemRule } from "naive-ui";
2
+ type PresetRules = 'onlyNotChineseRule' | 'onlyChineseRule' | 'onlyNegativeIntRule' | 'onlyPositiveIntRule' | 'onlyPositiveIntZeroRule' | 'officePhoneRule' | 'mobilePhoneRule' | 'emailRule' | 'onlyNumbersRule' | 'onlyLetterRule' | 'onlyLowercaseRule' | 'onlyUppercaseRule' | 'ipRule' | 'onlyIntRule';
3
+ type ValidationTrigger = 'input' | 'change' | 'input-number';
4
+ type PrefixType = { [K in ValidationTrigger]: string };
5
+ interface RuleOptionsType {
6
+ required?: boolean;
7
+ message?: string;
8
+ }
9
+ declare function useRules(trigger: ValidationTrigger, message: string, options?: RuleOptionsType): FormItemRule;
10
+ declare function useRules(trigger: ValidationTrigger, message: PresetRules, options?: RuleOptionsType): FormItemRule;
11
+ export { PrefixType, PresetRules, ValidationTrigger, useRules };
package/lib/rules.mjs ADDED
@@ -0,0 +1 @@
1
+ import{useLocal}from"./local.mjs";import{isRegExp}from"es-toolkit";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(i,a,o={}){let s=useLocal(),{required:c=!0}=o,l={trigger:[`blur`,i===`input-number`?`change`:i]};return c&&(l.required=c),i===`input-number`&&(l.type=`number`),a in presetRulePatterns?l.validator=(e,i)=>{let{message:c,required:l=!0}=o;if(!l&&!i)return!0;let u=presetRulePatterns[a];return isRegExp(u)?l&&(typeof i==`number`?i==null:!i)?Error(s(prefix.input)+(c||``)):u.test(i)?!0:Error(s(a)):(console.error(`Rule 验证`,Error(`非 RegExp 表达式`)),!0)}:l.message=s(prefix[i])+`xx1`+a,l}export{useRules};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@semi-kit/hooks",
3
- "version": "1.1.16",
3
+ "version": "1.2.0",
4
4
  "description": "Commonly used Hooks collection",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -21,8 +21,10 @@
21
21
  "./filter-column": "./lib/filter-column.mjs",
22
22
  "./form": "./lib/form.mjs",
23
23
  "./forward-inst": "./lib/forward-inst.mjs",
24
+ "./local": "./lib/local.mjs",
24
25
  "./modal": "./lib/modal.mjs",
25
26
  "./popover": "./lib/popover.mjs",
27
+ "./rules": "./lib/rules.mjs",
26
28
  "./selection": "./lib/selection.mjs",
27
29
  "./sortable": "./lib/sortable.mjs",
28
30
  "./tree": "./lib/tree.mjs",
@@ -45,8 +47,7 @@
45
47
  "vue": "catalog:",
46
48
  "naive-ui": "catalog:",
47
49
  "es-toolkit": "catalog:",
48
- "vue-i18n": "catalog:",
49
- "@semi-kit/hooks": "workspace:*"
50
+ "@semi-kit/component": "workspace:*"
50
51
  },
51
52
  "peerDependencies": {
52
53
  "sortablejs": "*",
@@ -54,7 +55,7 @@
54
55
  "vue": "*",
55
56
  "naive-ui": "*",
56
57
  "es-toolkit": "*",
57
- "vue-i18n": "*"
58
+ "@semi-kit/component": "*"
58
59
  },
59
60
  "peerDependenciesMeta": {
60
61
  "sortablejs": {
@@ -72,7 +73,7 @@
72
73
  "es-toolkit": {
73
74
  "optional": true
74
75
  },
75
- "vue-i18n": {
76
+ "@semi-kit/component": {
76
77
  "optional": true
77
78
  }
78
79
  }