Skip to content

Commit 587f127

Browse files
committed
[stdf] 更新输入组件,支持负数输入;增加多语言支持,扩展语言文件。
1 parent 319f25d commit 587f127

File tree

6 files changed

+98
-4
lines changed

6 files changed

+98
-4
lines changed

packages/stdf/package.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "stdf",
3-
"version": "1.0.3",
3+
"version": "1.0.4",
44
"description": "Mobile web component library based on Svelte and Tailwind",
55
"author": "any-tdf",
66
"funding": "https://stdf.design?fund",
@@ -125,6 +125,10 @@
125125
"types": "./dist/index.d.ts",
126126
"svelte": "./dist/index.js"
127127
},
128+
"./types": {
129+
"types": "./dist/types/index.d.ts",
130+
"svelte": "./dist/types/index.js"
131+
},
128132
"./theme": {
129133
"types": "./dist/theme/index.d.ts",
130134
"svelte": "./dist/theme/index.js"

packages/stdf/src/lib/components/input/Input.svelte

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
textareaMaxlength = 200,
4141
rows = 2,
4242
autosize = false,
43+
negative = false,
4344
onfocus,
4445
onblur,
4546
onchange,
@@ -188,11 +189,32 @@
188189
if (type === 'decimal' || type === 'number') {
189190
// 数字
190191
// Number
191-
value = e.value.replace(/[^\d^.]+/g, '');
192+
if (negative && e.value.startsWith('-')) {
193+
// 允许第一个字符为负号
194+
// Allow the first character to be a negative sign
195+
value =
196+
'-' +
197+
e.value
198+
.substring(1)
199+
.replace(/[^\d.]+/g, '')
200+
.replace(/\.{2,}/g, '.')
201+
.replace(/^(\d*\.\d*)\./, '$1');
202+
} else {
203+
value = e.value
204+
.replace(/[^\d.]+/g, '')
205+
.replace(/\.{2,}/g, '.')
206+
.replace(/^(\d*\.\d*)\./, '$1');
207+
}
192208
} else if (type === 'numeric') {
193209
// 整数
194210
// Integer
195-
value = e.value.replace(/[^\d]/g, '');
211+
if (negative && e.value.startsWith('-')) {
212+
// 允许第一个字符为负号
213+
// Allow the first character to be a negative sign
214+
value = '-' + e.value.substring(1).replace(/[^\d]+/g, '');
215+
} else {
216+
value = e.value.replace(/[^\d]+/g, '');
217+
}
196218
} else {
197219
value = e.value;
198220
}
@@ -218,6 +240,7 @@
218240
const clearFun = () => {
219241
value = '';
220242
onclear?.();
243+
onchange?.('');
221244
};
222245
223246
// 键盘事件

packages/stdf/src/lib/lang/index.ts

Lines changed: 65 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,69 @@
1-
export { default as zh_CN } from './zh_CN.js';
1+
export { default as ar_EG } from './ar_EG.js';
2+
export { default as az_AZ } from './az_AZ.js';
3+
export { default as bg_BG } from './bg_BG.js';
4+
export { default as bn_BD } from './bn_BD.js';
5+
export { default as ca_ES } from './ca_ES.js';
6+
export { default as cs_CZ } from './cs_CZ.js';
7+
export { default as da_DK } from './da_DK.js';
8+
export { default as de_DE } from './de_DE.js';
9+
export { default as el_GR } from './el_GR.js';
10+
export { default as en_GB } from './en_GB.js';
211
export { default as en_US } from './en_US.js';
12+
export { default as es_ES } from './es_ES.js';
13+
export { default as et_EE } from './et_EE.js';
14+
export { default as eu_ES } from './eu_ES.js';
15+
export { default as fa_IR } from './fa_IR.js';
16+
export { default as fi_FI } from './fi_FI.js';
17+
export { default as fr_BE } from './fr_BE.js';
18+
export { default as fr_CA } from './fr_CA.js';
19+
export { default as fr_FR } from './fr_FR.js';
20+
export { default as ga_IE } from './ga_IE.js';
21+
export { default as gl_ES } from './gl_ES.js';
22+
export { default as he_IL } from './he_IL.js';
23+
export { default as hi_IN } from './hi_IN.js';
24+
export { default as hr_HR } from './hr_HR.js';
25+
export { default as hu_HU } from './hu_HU.js';
26+
export { default as hy_AM } from './hy_AM.js';
27+
export { default as id_ID } from './id_ID.js';
28+
export { default as is_IS } from './is_IS.js';
29+
export { default as it_IT } from './it_IT.js';
30+
export { default as ja_JP } from './ja_JP.js';
31+
export { default as ka_GE } from './ka_GE.js';
32+
export { default as kk_KZ } from './kk_KZ.js';
33+
export { default as km_KH } from './km_KH.js';
34+
export { default as kmr_IQ } from './kmr_IQ.js';
35+
export { default as kn_IN } from './kn_IN.js';
36+
export { default as ko_KR } from './ko_KR.js';
37+
export { default as lt_LT } from './lt_LT.js';
38+
export { default as lv_LV } from './lv_LV.js';
39+
export { default as mk_MK } from './mk_MK.js';
40+
export { default as ml_IN } from './ml_IN.js';
41+
export { default as mn_MN } from './mn_MN.js';
42+
export { default as ms_MY } from './ms_MY.js';
43+
export { default as nb_NO } from './nb_NO.js';
44+
export { default as ne_NP } from './ne_NP.js';
45+
export { default as nl_BE } from './nl_BE.js';
46+
export { default as nl_NL } from './nl_NL.js';
47+
export { default as pl_PL } from './pl_PL.js';
48+
export { default as pt_BR } from './pt_BR.js';
49+
export { default as pt_PT } from './pt_PT.js';
50+
export { default as ro_RO } from './ro_RO.js';
51+
export { default as ru_RU } from './ru_RU.js';
52+
export { default as si_LK } from './si_LK.js';
53+
export { default as sk_SK } from './sk_SK.js';
54+
export { default as sl_SI } from './sl_SI.js';
55+
export { default as sr_RS } from './sr_RS.js';
56+
export { default as sv_SE } from './sv_SE.js';
57+
export { default as ta_IN } from './ta_IN.js';
58+
export { default as th_TH } from './th_TH.js';
59+
export { default as tk_TK } from './tk_TK.js';
60+
export { default as tr_TR } from './tr_TR.js';
61+
export { default as uk_UA } from './uk_UA.js';
62+
export { default as ur_PK } from './ur_PK.js';
63+
export { default as vi_VN } from './vi_VN.js';
64+
export { default as zh_CN } from './zh_CN.js';
65+
export { default as zh_HK } from './zh_HK.js';
66+
export { default as zh_TW } from './zh_TW.js';
367

468
export type LangProps = {
569
common: {

packages/stdf/src/lib/types/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,7 @@ export type InputProps = {
312312
textareaMaxlength?: number;
313313
rows?: number;
314314
autosize?: boolean;
315+
negative?: boolean;
315316
label1?: null | IconProps;
316317
label2?: null | string;
317318
label3?: null | IconProps;

packages/stdf/src/routes/input/en_US/+page.svelte

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
<Input title="Number (Any)" type="number" />
5252
<Input title="Number (Integer)" type="numeric" />
5353
<Input title="Number (Decimal Allowed)" type="decimal" />
54+
<Input title="Number (Allow Negative)" type="number" negative />
5455
<Input title="Email" type="email" />
5556
<Input title="Phone Number" type="tel" />
5657
<Input title="URL" type="url" />

packages/stdf/src/routes/input/zh_CN/+page.svelte

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
<Input title="数字(任意)" type="number" />
5252
<Input title="数字(整数)" type="numeric" />
5353
<Input title="数字(允许小数点)" type="decimal" />
54+
<Input title="数字(允许负数)" type="number" negative />
5455
<Input title="邮箱" type="email" />
5556
<Input title="电话号码" type="tel" />
5657
<Input title="链接地址" type="url" />

0 commit comments

Comments
 (0)