antd-mobile 5.9.5 → 5.10.2
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/2x/cjs/components/capsule-tabs/capsule-tabs.js +3 -3
- package/2x/cjs/components/collapse/collapse.js +3 -3
- package/2x/cjs/components/divider/divider.css +19 -8
- package/2x/cjs/components/divider/divider.d.ts +1 -0
- package/2x/cjs/components/divider/divider.js +3 -2
- package/2x/cjs/components/form/form.js +3 -2
- package/2x/cjs/components/image-uploader/image-uploader.d.ts +2 -0
- package/2x/cjs/components/image-uploader/image-uploader.js +6 -2
- package/2x/cjs/components/image-uploader/preview-item.d.ts +2 -0
- package/2x/cjs/components/image-uploader/preview-item.js +3 -2
- package/2x/cjs/components/index-bar/index-bar.js +3 -3
- package/2x/cjs/components/jumbo-tabs/jumbo-tabs.js +3 -3
- package/2x/cjs/components/mask/mask.css +1 -0
- package/2x/cjs/components/mask/mask.js +8 -1
- package/2x/cjs/components/picker-view/picker-view.d.ts +1 -0
- package/2x/cjs/components/picker-view/wheel.js +3 -1
- package/2x/cjs/components/popover/popover-menu.js +2 -1
- package/2x/cjs/components/safe-area/safe-area.css +2 -2
- package/2x/cjs/components/side-bar/side-bar.js +3 -3
- package/2x/cjs/components/stepper/stepper.js +16 -9
- package/2x/cjs/components/swiper/swiper.js +1 -0
- package/2x/cjs/components/tab-bar/tab-bar.js +3 -3
- package/2x/cjs/components/tabs/tabs.js +3 -3
- package/2x/cjs/components/tree-select/multiple.js +2 -1
- package/2x/cjs/global/global.css +1 -0
- package/2x/cjs/global/theme.css +1 -0
- package/2x/cjs/locales/ko-KR.d.ts +102 -0
- package/2x/cjs/locales/ko-KR.js +115 -0
- package/2x/cjs/locales/zh-HK.js +56 -0
- package/2x/cjs/locales/zh-TW.js +56 -0
- package/2x/cjs/utils/traverse-react-node.d.ts +2 -0
- package/2x/cjs/utils/traverse-react-node.js +29 -0
- package/2x/es/components/capsule-tabs/capsule-tabs.js +2 -1
- package/2x/es/components/collapse/collapse.js +2 -1
- package/2x/es/components/divider/divider.css +19 -8
- package/2x/es/components/divider/divider.d.ts +1 -0
- package/2x/es/components/divider/divider.js +3 -2
- package/2x/es/components/form/form.js +2 -1
- package/2x/es/components/image-uploader/image-uploader.d.ts +2 -0
- package/2x/es/components/image-uploader/image-uploader.js +6 -2
- package/2x/es/components/image-uploader/preview-item.d.ts +2 -0
- package/2x/es/components/image-uploader/preview-item.js +3 -2
- package/2x/es/components/index-bar/index-bar.js +2 -1
- package/2x/es/components/jumbo-tabs/jumbo-tabs.js +2 -1
- package/2x/es/components/mask/mask.css +1 -0
- package/2x/es/components/mask/mask.js +8 -1
- package/2x/es/components/picker-view/picker-view.d.ts +1 -0
- package/2x/es/components/picker-view/wheel.js +3 -1
- package/2x/es/components/popover/popover-menu.js +2 -1
- package/2x/es/components/safe-area/safe-area.css +2 -2
- package/2x/es/components/side-bar/side-bar.js +2 -1
- package/2x/es/components/stepper/stepper.js +15 -9
- package/2x/es/components/swiper/swiper.js +1 -0
- package/2x/es/components/tab-bar/tab-bar.js +2 -1
- package/2x/es/components/tabs/tabs.js +2 -1
- package/2x/es/components/tree-select/multiple.js +2 -1
- package/2x/es/global/global.css +1 -0
- package/2x/es/global/theme.css +1 -0
- package/2x/es/locales/ko-KR.d.ts +102 -0
- package/2x/es/locales/ko-KR.js +105 -0
- package/2x/es/locales/zh-HK.js +56 -0
- package/2x/es/locales/zh-TW.js +56 -0
- package/2x/es/utils/traverse-react-node.d.ts +2 -0
- package/2x/es/utils/traverse-react-node.js +18 -0
- package/2x/package.json +5 -1
- package/bundle/antd-mobile.cjs.js +60 -25
- package/bundle/antd-mobile.es.js +59 -25
- package/bundle/style.css +22 -10
- package/cjs/components/capsule-tabs/capsule-tabs.js +3 -3
- package/cjs/components/collapse/collapse.js +3 -3
- package/cjs/components/divider/divider.css +18 -8
- package/cjs/components/divider/divider.d.ts +1 -0
- package/cjs/components/divider/divider.js +3 -2
- package/cjs/components/form/form.js +3 -2
- package/cjs/components/image-uploader/image-uploader.d.ts +2 -0
- package/cjs/components/image-uploader/image-uploader.js +6 -2
- package/cjs/components/image-uploader/preview-item.d.ts +2 -0
- package/cjs/components/image-uploader/preview-item.js +3 -2
- package/cjs/components/index-bar/index-bar.js +3 -3
- package/cjs/components/jumbo-tabs/jumbo-tabs.js +3 -3
- package/cjs/components/mask/mask.css +1 -0
- package/cjs/components/mask/mask.js +8 -1
- package/cjs/components/picker-view/picker-view.d.ts +1 -0
- package/cjs/components/picker-view/wheel.js +3 -1
- package/cjs/components/popover/popover-menu.js +2 -1
- package/cjs/components/safe-area/safe-area.css +2 -2
- package/cjs/components/side-bar/side-bar.js +3 -3
- package/cjs/components/stepper/stepper.js +16 -9
- package/cjs/components/swiper/swiper.js +1 -0
- package/cjs/components/tab-bar/tab-bar.js +3 -3
- package/cjs/components/tabs/tabs.js +3 -3
- package/cjs/components/tree-select/multiple.js +2 -1
- package/cjs/global/global.css +1 -0
- package/cjs/global/theme.css +1 -0
- package/cjs/locales/ko-KR.d.ts +102 -0
- package/cjs/locales/ko-KR.js +115 -0
- package/cjs/locales/zh-HK.js +56 -0
- package/cjs/locales/zh-TW.js +56 -0
- package/cjs/utils/traverse-react-node.d.ts +2 -0
- package/cjs/utils/traverse-react-node.js +29 -0
- package/es/components/capsule-tabs/capsule-tabs.js +2 -1
- package/es/components/collapse/collapse.js +2 -1
- package/es/components/divider/divider.css +18 -8
- package/es/components/divider/divider.d.ts +1 -0
- package/es/components/divider/divider.js +3 -2
- package/es/components/form/form.js +2 -1
- package/es/components/image-uploader/image-uploader.d.ts +2 -0
- package/es/components/image-uploader/image-uploader.js +6 -2
- package/es/components/image-uploader/preview-item.d.ts +2 -0
- package/es/components/image-uploader/preview-item.js +3 -2
- package/es/components/index-bar/index-bar.js +2 -1
- package/es/components/jumbo-tabs/jumbo-tabs.js +2 -1
- package/es/components/mask/mask.css +1 -0
- package/es/components/mask/mask.js +8 -1
- package/es/components/picker-view/picker-view.d.ts +1 -0
- package/es/components/picker-view/wheel.js +3 -1
- package/es/components/popover/popover-menu.js +2 -1
- package/es/components/safe-area/safe-area.css +2 -2
- package/es/components/side-bar/side-bar.js +2 -1
- package/es/components/stepper/stepper.js +15 -9
- package/es/components/swiper/swiper.js +1 -0
- package/es/components/tab-bar/tab-bar.js +2 -1
- package/es/components/tabs/tabs.js +2 -1
- package/es/components/tree-select/multiple.js +2 -1
- package/es/global/global.css +1 -0
- package/es/global/theme.css +1 -0
- package/es/locales/ko-KR.d.ts +102 -0
- package/es/locales/ko-KR.js +105 -0
- package/es/locales/zh-HK.js +56 -0
- package/es/locales/zh-TW.js +56 -0
- package/es/utils/traverse-react-node.d.ts +2 -0
- package/es/utils/traverse-react-node.js +18 -0
- package/package.json +5 -1
- package/umd/antd-mobile.js +1 -1
- package/umd/antd-mobile.js.LICENSE.txt +9 -0
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
declare const koKR: {
|
|
2
|
+
locale: string;
|
|
3
|
+
common: {
|
|
4
|
+
confirm: string;
|
|
5
|
+
cancel: string;
|
|
6
|
+
loading: string;
|
|
7
|
+
};
|
|
8
|
+
Calendar: {
|
|
9
|
+
markItems: string[];
|
|
10
|
+
renderYearAndMonth: (year: number, month: number) => string;
|
|
11
|
+
};
|
|
12
|
+
Cascader: {
|
|
13
|
+
placeholder: string;
|
|
14
|
+
};
|
|
15
|
+
Dialog: {
|
|
16
|
+
ok: string;
|
|
17
|
+
};
|
|
18
|
+
ErrorBlock: {
|
|
19
|
+
default: {
|
|
20
|
+
title: string;
|
|
21
|
+
description: string;
|
|
22
|
+
};
|
|
23
|
+
busy: {
|
|
24
|
+
title: string;
|
|
25
|
+
description: string;
|
|
26
|
+
};
|
|
27
|
+
disconnected: {
|
|
28
|
+
title: string;
|
|
29
|
+
description: string;
|
|
30
|
+
};
|
|
31
|
+
empty: {
|
|
32
|
+
title: string;
|
|
33
|
+
description: string;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
Form: {
|
|
37
|
+
required: string;
|
|
38
|
+
optional: string;
|
|
39
|
+
defaultValidateMessages: {
|
|
40
|
+
default: string;
|
|
41
|
+
required: string;
|
|
42
|
+
enum: string;
|
|
43
|
+
whitespace: string;
|
|
44
|
+
date: {
|
|
45
|
+
format: string;
|
|
46
|
+
parse: string;
|
|
47
|
+
invalid: string;
|
|
48
|
+
};
|
|
49
|
+
types: {
|
|
50
|
+
string: string;
|
|
51
|
+
method: string;
|
|
52
|
+
array: string;
|
|
53
|
+
object: string;
|
|
54
|
+
number: string;
|
|
55
|
+
date: string;
|
|
56
|
+
boolean: string;
|
|
57
|
+
integer: string;
|
|
58
|
+
float: string;
|
|
59
|
+
regexp: string;
|
|
60
|
+
email: string;
|
|
61
|
+
url: string;
|
|
62
|
+
hex: string;
|
|
63
|
+
};
|
|
64
|
+
string: {
|
|
65
|
+
len: string;
|
|
66
|
+
min: string;
|
|
67
|
+
max: string;
|
|
68
|
+
range: string;
|
|
69
|
+
};
|
|
70
|
+
number: {
|
|
71
|
+
len: string;
|
|
72
|
+
min: string;
|
|
73
|
+
max: string;
|
|
74
|
+
range: string;
|
|
75
|
+
};
|
|
76
|
+
array: {
|
|
77
|
+
len: string;
|
|
78
|
+
min: string;
|
|
79
|
+
max: string;
|
|
80
|
+
range: string;
|
|
81
|
+
};
|
|
82
|
+
pattern: {
|
|
83
|
+
mismatch: string;
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
ImageUploader: {
|
|
88
|
+
uploading: string;
|
|
89
|
+
};
|
|
90
|
+
Mask: {
|
|
91
|
+
name: string;
|
|
92
|
+
};
|
|
93
|
+
Modal: {
|
|
94
|
+
ok: string;
|
|
95
|
+
};
|
|
96
|
+
PullToRefresh: {
|
|
97
|
+
pulling: string;
|
|
98
|
+
canRelease: string;
|
|
99
|
+
complete: string;
|
|
100
|
+
};
|
|
101
|
+
};
|
|
102
|
+
export default koKR;
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _mergeLocale = require("../utils/merge-locale");
|
|
9
|
+
|
|
10
|
+
var _base = require("./base");
|
|
11
|
+
|
|
12
|
+
const typeTemplate = '${label} 유효하지 않은 ${type} 입니다';
|
|
13
|
+
const koKR = (0, _mergeLocale.mergeLocale)(_base.base, {
|
|
14
|
+
locale: 'ko-KR',
|
|
15
|
+
common: {
|
|
16
|
+
confirm: '확인',
|
|
17
|
+
cancel: '취소',
|
|
18
|
+
loading: '로딩중...'
|
|
19
|
+
},
|
|
20
|
+
Calendar: {
|
|
21
|
+
markItems: ['월', '화', '수', '목', '금', '토', '일'],
|
|
22
|
+
renderYearAndMonth: (year, month) => `${year}년${month}일`
|
|
23
|
+
},
|
|
24
|
+
Cascader: {
|
|
25
|
+
placeholder: '선택됨'
|
|
26
|
+
},
|
|
27
|
+
Dialog: {
|
|
28
|
+
ok: '확인'
|
|
29
|
+
},
|
|
30
|
+
ErrorBlock: {
|
|
31
|
+
default: {
|
|
32
|
+
title: '문제가 발생했습니다',
|
|
33
|
+
description: '잠시 후 다시 시도해주세요'
|
|
34
|
+
},
|
|
35
|
+
busy: {
|
|
36
|
+
title: '로딩 되지 않았습니다.',
|
|
37
|
+
description: '페이지를 새로고침 해주세요'
|
|
38
|
+
},
|
|
39
|
+
disconnected: {
|
|
40
|
+
title: '네트워크를 사용 중 입니다',
|
|
41
|
+
description: '페이지를 새로고침 해주세요'
|
|
42
|
+
},
|
|
43
|
+
empty: {
|
|
44
|
+
title: '정보를 찾을 수 없습니다',
|
|
45
|
+
description: '정확한 검색어인가요?'
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
Form: {
|
|
49
|
+
required: '필수',
|
|
50
|
+
optional: '선택',
|
|
51
|
+
defaultValidateMessages: {
|
|
52
|
+
default: '필드 유효성 검사 오류 ${label}',
|
|
53
|
+
required: '${label} 입력해 주세요',
|
|
54
|
+
enum: '${label} [${enum}] 중에 하나여야 합니다',
|
|
55
|
+
whitespace: '${label} 비워둘 수 없습니다',
|
|
56
|
+
date: {
|
|
57
|
+
format: '${label} 유효하지 않은 날짜 형식입니다',
|
|
58
|
+
parse: '${label} 날짜 형식으로 변환될 수 없습니다',
|
|
59
|
+
invalid: '${label} 유효하지 않은 날짜입니다'
|
|
60
|
+
},
|
|
61
|
+
types: {
|
|
62
|
+
string: typeTemplate,
|
|
63
|
+
method: typeTemplate,
|
|
64
|
+
array: typeTemplate,
|
|
65
|
+
object: typeTemplate,
|
|
66
|
+
number: typeTemplate,
|
|
67
|
+
date: typeTemplate,
|
|
68
|
+
boolean: typeTemplate,
|
|
69
|
+
integer: typeTemplate,
|
|
70
|
+
float: typeTemplate,
|
|
71
|
+
regexp: typeTemplate,
|
|
72
|
+
email: typeTemplate,
|
|
73
|
+
url: typeTemplate,
|
|
74
|
+
hex: typeTemplate
|
|
75
|
+
},
|
|
76
|
+
string: {
|
|
77
|
+
len: '${label} ${len}글자여야 합니다',
|
|
78
|
+
min: '${label} 적어도 ${min}글자 이상이어야 합니다',
|
|
79
|
+
max: '${label} ${max}글자 이하여야 합니다',
|
|
80
|
+
range: '${label} ${min}-${max}글자 사이어야 합니다'
|
|
81
|
+
},
|
|
82
|
+
number: {
|
|
83
|
+
len: '${label} 값은 ${len}이어야 합니다',
|
|
84
|
+
min: '${label} 최솟값은 ${min}입니다',
|
|
85
|
+
max: '${label} 최댓값은 ${max}입니다',
|
|
86
|
+
range: '${label} 값은 ${min}-${max} 사이어야 합니다'
|
|
87
|
+
},
|
|
88
|
+
array: {
|
|
89
|
+
len: '${len}이어야 합니다 ${label}',
|
|
90
|
+
min: '최소 ${min}이어야 합니다 ${label}',
|
|
91
|
+
max: '최대 ${max}이어야 합니다 ${label}',
|
|
92
|
+
range: '${label} ${min}-${max} 사이어야 합니다'
|
|
93
|
+
},
|
|
94
|
+
pattern: {
|
|
95
|
+
mismatch: '${label} ${pattern} 패턴과 일치하지 않습니다'
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
ImageUploader: {
|
|
100
|
+
uploading: '업로드 중...'
|
|
101
|
+
},
|
|
102
|
+
Mask: {
|
|
103
|
+
name: '마스크'
|
|
104
|
+
},
|
|
105
|
+
Modal: {
|
|
106
|
+
ok: '확인'
|
|
107
|
+
},
|
|
108
|
+
PullToRefresh: {
|
|
109
|
+
pulling: '스크롤을 당겨서 새로고침하십시오',
|
|
110
|
+
canRelease: '새로고침 하려면 놓으십시오',
|
|
111
|
+
complete: '새로고침 완료'
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
var _default = koKR;
|
|
115
|
+
exports.default = _default;
|
package/2x/cjs/locales/zh-HK.js
CHANGED
|
@@ -9,6 +9,7 @@ var _mergeLocale = require("../utils/merge-locale");
|
|
|
9
9
|
|
|
10
10
|
var _base = require("./base");
|
|
11
11
|
|
|
12
|
+
const typeTemplate = '${label}不是一個有效的${type}';
|
|
12
13
|
const zhHK = (0, _mergeLocale.mergeLocale)(_base.base, {
|
|
13
14
|
locale: 'zh-HK',
|
|
14
15
|
common: {
|
|
@@ -16,6 +17,10 @@ const zhHK = (0, _mergeLocale.mergeLocale)(_base.base, {
|
|
|
16
17
|
cancel: '取消',
|
|
17
18
|
loading: '加載中……'
|
|
18
19
|
},
|
|
20
|
+
Calendar: {
|
|
21
|
+
markItems: ['一', '二', '三', '四', '五', '六', '日'],
|
|
22
|
+
renderYearAndMonth: (year, month) => `${year}年${month}月`
|
|
23
|
+
},
|
|
19
24
|
Cascader: {
|
|
20
25
|
placeholder: '請選擇'
|
|
21
26
|
},
|
|
@@ -40,6 +45,57 @@ const zhHK = (0, _mergeLocale.mergeLocale)(_base.base, {
|
|
|
40
45
|
description: '找找其他的吧'
|
|
41
46
|
}
|
|
42
47
|
},
|
|
48
|
+
Form: {
|
|
49
|
+
required: '必填',
|
|
50
|
+
optional: '選填',
|
|
51
|
+
defaultValidateMessages: {
|
|
52
|
+
default: '字段驗證錯誤${label}',
|
|
53
|
+
required: '請輸入${label}',
|
|
54
|
+
enum: '${label}必須是其中一個[${enum}]',
|
|
55
|
+
whitespace: '${label}不能為空字符',
|
|
56
|
+
date: {
|
|
57
|
+
format: '${label}日期格式無效',
|
|
58
|
+
parse: '${label}不能轉換為日期',
|
|
59
|
+
invalid: '${label}是一個無效日期'
|
|
60
|
+
},
|
|
61
|
+
types: {
|
|
62
|
+
string: typeTemplate,
|
|
63
|
+
method: typeTemplate,
|
|
64
|
+
array: typeTemplate,
|
|
65
|
+
object: typeTemplate,
|
|
66
|
+
number: typeTemplate,
|
|
67
|
+
date: typeTemplate,
|
|
68
|
+
boolean: typeTemplate,
|
|
69
|
+
integer: typeTemplate,
|
|
70
|
+
float: typeTemplate,
|
|
71
|
+
regexp: typeTemplate,
|
|
72
|
+
email: typeTemplate,
|
|
73
|
+
url: typeTemplate,
|
|
74
|
+
hex: typeTemplate
|
|
75
|
+
},
|
|
76
|
+
string: {
|
|
77
|
+
len: '${label}須為${len}個字符',
|
|
78
|
+
min: '${label}最少${min}個字符',
|
|
79
|
+
max: '${label}最多${max}個字符',
|
|
80
|
+
range: '${label}須在${min}-${max}字符之間'
|
|
81
|
+
},
|
|
82
|
+
number: {
|
|
83
|
+
len: '${label}必須等於${len}',
|
|
84
|
+
min: '${label}最小值為${min}',
|
|
85
|
+
max: '${label}最大值為${max}',
|
|
86
|
+
range: '${label}須在${min}-${max}之間'
|
|
87
|
+
},
|
|
88
|
+
array: {
|
|
89
|
+
len: '須為${len}個${label}',
|
|
90
|
+
min: '最少${min}個${label}',
|
|
91
|
+
max: '最多${max}個${label}',
|
|
92
|
+
range: '${label}数量須在${min}-${max}之間'
|
|
93
|
+
},
|
|
94
|
+
pattern: {
|
|
95
|
+
mismatch: '${label}與模式不匹配${pattern}'
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
},
|
|
43
99
|
ImageUploader: {
|
|
44
100
|
uploading: '上傳中...'
|
|
45
101
|
},
|
package/2x/cjs/locales/zh-TW.js
CHANGED
|
@@ -9,6 +9,7 @@ var _mergeLocale = require("../utils/merge-locale");
|
|
|
9
9
|
|
|
10
10
|
var _base = require("./base");
|
|
11
11
|
|
|
12
|
+
const typeTemplate = '${label}不是一個有效的${type}';
|
|
12
13
|
const zhTW = (0, _mergeLocale.mergeLocale)(_base.base, {
|
|
13
14
|
locale: 'zh-TW',
|
|
14
15
|
common: {
|
|
@@ -16,6 +17,10 @@ const zhTW = (0, _mergeLocale.mergeLocale)(_base.base, {
|
|
|
16
17
|
cancel: '取消',
|
|
17
18
|
loading: '加載中……'
|
|
18
19
|
},
|
|
20
|
+
Calendar: {
|
|
21
|
+
markItems: ['一', '二', '三', '四', '五', '六', '日'],
|
|
22
|
+
renderYearAndMonth: (year, month) => `${year}年${month}月`
|
|
23
|
+
},
|
|
19
24
|
Cascader: {
|
|
20
25
|
placeholder: '請選擇'
|
|
21
26
|
},
|
|
@@ -40,6 +45,57 @@ const zhTW = (0, _mergeLocale.mergeLocale)(_base.base, {
|
|
|
40
45
|
description: '找找其他的吧'
|
|
41
46
|
}
|
|
42
47
|
},
|
|
48
|
+
Form: {
|
|
49
|
+
required: '必填',
|
|
50
|
+
optional: '選填',
|
|
51
|
+
defaultValidateMessages: {
|
|
52
|
+
default: '字段驗證錯誤${label}',
|
|
53
|
+
required: '請輸入${label}',
|
|
54
|
+
enum: '${label}必須是其中一個[${enum}]',
|
|
55
|
+
whitespace: '${label}不能為空字符',
|
|
56
|
+
date: {
|
|
57
|
+
format: '${label}日期格式無效',
|
|
58
|
+
parse: '${label}不能轉換為日期',
|
|
59
|
+
invalid: '${label}是一個無效日期'
|
|
60
|
+
},
|
|
61
|
+
types: {
|
|
62
|
+
string: typeTemplate,
|
|
63
|
+
method: typeTemplate,
|
|
64
|
+
array: typeTemplate,
|
|
65
|
+
object: typeTemplate,
|
|
66
|
+
number: typeTemplate,
|
|
67
|
+
date: typeTemplate,
|
|
68
|
+
boolean: typeTemplate,
|
|
69
|
+
integer: typeTemplate,
|
|
70
|
+
float: typeTemplate,
|
|
71
|
+
regexp: typeTemplate,
|
|
72
|
+
email: typeTemplate,
|
|
73
|
+
url: typeTemplate,
|
|
74
|
+
hex: typeTemplate
|
|
75
|
+
},
|
|
76
|
+
string: {
|
|
77
|
+
len: '${label}須為${len}個字符',
|
|
78
|
+
min: '${label}最少${min}個字符',
|
|
79
|
+
max: '${label}最多${max}個字符',
|
|
80
|
+
range: '${label}須在${min}-${max}字符之間'
|
|
81
|
+
},
|
|
82
|
+
number: {
|
|
83
|
+
len: '${label}必須等於${len}',
|
|
84
|
+
min: '${label}最小值為${min}',
|
|
85
|
+
max: '${label}最大值為${max}',
|
|
86
|
+
range: '${label}須在${min}-${max}之間'
|
|
87
|
+
},
|
|
88
|
+
array: {
|
|
89
|
+
len: '須為${len}個${label}',
|
|
90
|
+
min: '最少${min}個${label}',
|
|
91
|
+
max: '最多${max}個${label}',
|
|
92
|
+
range: '${label}数量須在${min}-${max}之間'
|
|
93
|
+
},
|
|
94
|
+
pattern: {
|
|
95
|
+
mismatch: '${label}與模式不匹配${pattern}'
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
},
|
|
43
99
|
ImageUploader: {
|
|
44
100
|
uploading: '上傳中...'
|
|
45
101
|
},
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.traverseReactNode = traverseReactNode;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _reactIs = require("react-is");
|
|
11
|
+
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
|
|
14
|
+
function traverseReactNode(children, fn) {
|
|
15
|
+
let i = 0;
|
|
16
|
+
|
|
17
|
+
function handle(target) {
|
|
18
|
+
_react.default.Children.forEach(target, child => {
|
|
19
|
+
if (!(0, _reactIs.isFragment)(child)) {
|
|
20
|
+
fn(child, i);
|
|
21
|
+
i += 1;
|
|
22
|
+
} else {
|
|
23
|
+
handle(child.props.children);
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
handle(children);
|
|
29
|
+
}
|
|
@@ -7,6 +7,7 @@ import { useResizeEffect } from '../../utils/use-resize-effect';
|
|
|
7
7
|
import { useTabListScroll } from '../../utils/use-tab-list-scroll';
|
|
8
8
|
import ScrollMask from '../scroll-mask';
|
|
9
9
|
import { ShouldRender } from '../../utils/should-render';
|
|
10
|
+
import { traverseReactNode } from '../../utils/traverse-react-node';
|
|
10
11
|
const classPrefix = `adm-capsule-tabs`;
|
|
11
12
|
export const CapsuleTab = () => {
|
|
12
13
|
return null;
|
|
@@ -19,7 +20,7 @@ export const CapsuleTabs = props => {
|
|
|
19
20
|
const keyToIndexRecord = {};
|
|
20
21
|
let firstActiveKey = null;
|
|
21
22
|
const panes = [];
|
|
22
|
-
|
|
23
|
+
traverseReactNode(props.children, (child, index) => {
|
|
23
24
|
if (!React.isValidElement(child)) return;
|
|
24
25
|
const key = child.key;
|
|
25
26
|
if (typeof key !== 'string') return;
|
|
@@ -8,6 +8,7 @@ import { usePropsValue } from '../../utils/use-props-value';
|
|
|
8
8
|
import { useMount } from 'ahooks';
|
|
9
9
|
import { useShouldRender } from '../../utils/should-render';
|
|
10
10
|
import { useIsomorphicUpdateLayoutEffect } from '../../utils/use-isomorphic-update-layout-effect';
|
|
11
|
+
import { traverseReactNode } from '../../utils/traverse-react-node';
|
|
11
12
|
const classPrefix = `adm-collapse`;
|
|
12
13
|
export const CollapsePanel = () => {
|
|
13
14
|
return null;
|
|
@@ -81,7 +82,7 @@ export const Collapse = props => {
|
|
|
81
82
|
var _a;
|
|
82
83
|
|
|
83
84
|
const panels = [];
|
|
84
|
-
|
|
85
|
+
traverseReactNode(props.children, child => {
|
|
85
86
|
if (!React.isValidElement(child)) return;
|
|
86
87
|
const key = child.key;
|
|
87
88
|
if (typeof key !== 'string') return;
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
.adm-divider {
|
|
1
|
+
.adm-divider-horizontal {
|
|
2
2
|
display: flex;
|
|
3
3
|
align-items: center;
|
|
4
4
|
margin: 32px 0;
|
|
5
|
-
color: var(--adm-color-weak);
|
|
6
|
-
font-size: 28px;
|
|
7
5
|
border-width: 0;
|
|
8
6
|
border-color: var(--adm-border-color);
|
|
9
7
|
border-style: solid;
|
|
8
|
+
color: var(--adm-color-weak);
|
|
9
|
+
font-size: 28px;
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
.adm-divider-left.adm-divider::before {
|
|
12
|
+
.adm-divider-left.adm-divider-horizontal::before {
|
|
13
13
|
max-width: 10%;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
.adm-divider-right.adm-divider::after {
|
|
16
|
+
.adm-divider-right.adm-divider-horizontal::after {
|
|
17
17
|
max-width: 10%;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
.adm-divider::after,
|
|
21
|
-
.adm-divider::before {
|
|
20
|
+
.adm-divider-horizontal::after,
|
|
21
|
+
.adm-divider-horizontal::before {
|
|
22
22
|
flex: auto;
|
|
23
23
|
display: block;
|
|
24
24
|
content: '';
|
|
@@ -27,7 +27,18 @@
|
|
|
27
27
|
border-width: 2px 0 0;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
.adm-divider-content {
|
|
30
|
+
.adm-divider-horizontal .adm-divider-content {
|
|
31
31
|
flex: none;
|
|
32
32
|
padding: 0 32px;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.adm-divider-vertical {
|
|
36
|
+
position: relative;
|
|
37
|
+
top: -0.06em;
|
|
38
|
+
display: inline-block;
|
|
39
|
+
height: 0.9em;
|
|
40
|
+
margin: 0 32px;
|
|
41
|
+
vertical-align: middle;
|
|
42
|
+
border-top: 0;
|
|
43
|
+
border-left: 2px solid var(--adm-border-color);
|
|
33
44
|
}
|
|
@@ -2,5 +2,6 @@ import { FC } from 'react';
|
|
|
2
2
|
import { NativeProps } from '../../utils/native-props';
|
|
3
3
|
export declare type DividerProps = {
|
|
4
4
|
contentPosition?: 'left' | 'right' | 'center';
|
|
5
|
+
direction?: 'horizontal' | 'vertical';
|
|
5
6
|
} & NativeProps;
|
|
6
7
|
export declare const Divider: FC<DividerProps>;
|
|
@@ -4,12 +4,13 @@ import { withNativeProps } from '../../utils/native-props';
|
|
|
4
4
|
import { mergeProps } from '../../utils/with-default-props';
|
|
5
5
|
const classPrefix = `adm-divider`;
|
|
6
6
|
const defaultProps = {
|
|
7
|
-
contentPosition: 'center'
|
|
7
|
+
contentPosition: 'center',
|
|
8
|
+
direction: 'horizontal'
|
|
8
9
|
};
|
|
9
10
|
export const Divider = p => {
|
|
10
11
|
const props = mergeProps(defaultProps, p);
|
|
11
12
|
return withNativeProps(props, React.createElement("div", {
|
|
12
|
-
className: classNames(classPrefix, `${classPrefix}-${props.contentPosition}`)
|
|
13
|
+
className: classNames(classPrefix, `${classPrefix}-${props.direction}`, `${classPrefix}-${props.contentPosition}`)
|
|
13
14
|
}, props.children && React.createElement("div", {
|
|
14
15
|
className: `${classPrefix}-content`
|
|
15
16
|
}, props.children)));
|
|
@@ -9,6 +9,7 @@ import { Header } from './header';
|
|
|
9
9
|
import { useConfig } from '../config-provider';
|
|
10
10
|
import merge from 'lodash/merge';
|
|
11
11
|
import { FormArray } from './form-array';
|
|
12
|
+
import { traverseReactNode } from '../../utils/traverse-react-node';
|
|
12
13
|
const classPrefix = 'adm-form';
|
|
13
14
|
const defaultProps = defaultFormContext;
|
|
14
15
|
export const Form = forwardRef((p, ref) => {
|
|
@@ -46,7 +47,7 @@ export const Form = forwardRef((p, ref) => {
|
|
|
46
47
|
items = [];
|
|
47
48
|
}
|
|
48
49
|
|
|
49
|
-
|
|
50
|
+
traverseReactNode(props.children, child => {
|
|
50
51
|
if (React.isValidElement(child)) {
|
|
51
52
|
if (child.type === Header) {
|
|
52
53
|
collect();
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { FC, InputHTMLAttributes } from 'react';
|
|
2
2
|
import { NativeProps } from '../../utils/native-props';
|
|
3
|
+
import type { ImageProps } from '../image';
|
|
3
4
|
export declare type TaskStatus = 'pending' | 'fail';
|
|
4
5
|
export interface ImageUploadItem {
|
|
5
6
|
key?: string | number;
|
|
@@ -25,5 +26,6 @@ export declare type ImageUploaderProps = {
|
|
|
25
26
|
onDelete?: (item: ImageUploadItem) => boolean | Promise<boolean> | void;
|
|
26
27
|
preview?: boolean;
|
|
27
28
|
showFailed?: boolean;
|
|
29
|
+
imageFit?: ImageProps['fit'];
|
|
28
30
|
} & NativeProps<'--cell-size'>;
|
|
29
31
|
export declare const ImageUploader: FC<ImageUploaderProps>;
|
|
@@ -18,7 +18,8 @@ const defaultProps = {
|
|
|
18
18
|
defaultValue: [],
|
|
19
19
|
accept: 'image/*',
|
|
20
20
|
preview: true,
|
|
21
|
-
showFailed: true
|
|
21
|
+
showFailed: true,
|
|
22
|
+
imageFit: 'cover'
|
|
22
23
|
};
|
|
23
24
|
export const ImageUploader = p => {
|
|
24
25
|
const props = mergeProps(defaultProps, p);
|
|
@@ -89,6 +90,8 @@ export const ImageUploader = p => {
|
|
|
89
90
|
file
|
|
90
91
|
}));
|
|
91
92
|
setTasks(prev => [...prev, ...newTasks]);
|
|
93
|
+
e.target.value = ''; // HACK: fix the same file doesn't trigger onChange
|
|
94
|
+
|
|
92
95
|
yield Promise.all(newTasks.map(currentTask => __awaiter(this, void 0, void 0, function* () {
|
|
93
96
|
try {
|
|
94
97
|
const result = yield props.upload(currentTask.file);
|
|
@@ -122,7 +125,6 @@ export const ImageUploader = p => {
|
|
|
122
125
|
throw e;
|
|
123
126
|
}
|
|
124
127
|
}))).catch(error => console.error(error));
|
|
125
|
-
e.target.value = ''; // HACK: fix the same file doesn't trigger onChange
|
|
126
128
|
});
|
|
127
129
|
}
|
|
128
130
|
|
|
@@ -157,6 +159,7 @@ export const ImageUploader = p => {
|
|
|
157
159
|
key: (_a = fileItem.key) !== null && _a !== void 0 ? _a : index,
|
|
158
160
|
url: (_b = fileItem.thumbnailUrl) !== null && _b !== void 0 ? _b : fileItem.url,
|
|
159
161
|
deletable: props.deletable,
|
|
162
|
+
imageFit: props.imageFit,
|
|
160
163
|
onClick: () => {
|
|
161
164
|
if (props.preview) {
|
|
162
165
|
previewImage(index);
|
|
@@ -182,6 +185,7 @@ export const ImageUploader = p => {
|
|
|
182
185
|
file: task.file,
|
|
183
186
|
deletable: task.status !== 'pending',
|
|
184
187
|
status: task.status,
|
|
188
|
+
imageFit: props.imageFit,
|
|
185
189
|
onDelete: () => {
|
|
186
190
|
setTasks(tasks.filter(x => x.id !== task.id));
|
|
187
191
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { FC } from 'react';
|
|
2
2
|
import { TaskStatus } from './image-uploader';
|
|
3
|
+
import type { ImageProps } from '../image';
|
|
3
4
|
declare type Props = {
|
|
4
5
|
onClick?: () => void;
|
|
5
6
|
onDelete?: () => void;
|
|
@@ -7,6 +8,7 @@ declare type Props = {
|
|
|
7
8
|
url?: string;
|
|
8
9
|
file?: File;
|
|
9
10
|
status?: TaskStatus;
|
|
11
|
+
imageFit: ImageProps['fit'];
|
|
10
12
|
};
|
|
11
13
|
declare const PreviewItem: FC<Props>;
|
|
12
14
|
export default PreviewItem;
|
|
@@ -14,7 +14,8 @@ const PreviewItem = props => {
|
|
|
14
14
|
url,
|
|
15
15
|
file,
|
|
16
16
|
deletable,
|
|
17
|
-
onDelete
|
|
17
|
+
onDelete,
|
|
18
|
+
imageFit
|
|
18
19
|
} = props;
|
|
19
20
|
const src = useMemo(() => {
|
|
20
21
|
if (url) {
|
|
@@ -54,7 +55,7 @@ const PreviewItem = props => {
|
|
|
54
55
|
}, React.createElement(Image, {
|
|
55
56
|
className: `${classPrefix}-cell-image`,
|
|
56
57
|
src: src,
|
|
57
|
-
fit:
|
|
58
|
+
fit: imageFit,
|
|
58
59
|
onClick: props.onClick
|
|
59
60
|
}), renderLoading(), renderDelete());
|
|
60
61
|
};
|
|
@@ -7,6 +7,7 @@ import { Sidebar } from './sidebar';
|
|
|
7
7
|
import { convertPx } from '../../utils/convert-px';
|
|
8
8
|
import { Panel } from './panel';
|
|
9
9
|
import { devWarning } from '../../utils/dev-log';
|
|
10
|
+
import { traverseReactNode } from '../../utils/traverse-react-node';
|
|
10
11
|
const classPrefix = `adm-index-bar`;
|
|
11
12
|
const defaultProps = {
|
|
12
13
|
sticky: true
|
|
@@ -17,7 +18,7 @@ export const IndexBar = forwardRef((p, ref) => {
|
|
|
17
18
|
const bodyRef = useRef(null);
|
|
18
19
|
const indexItems = [];
|
|
19
20
|
const panels = [];
|
|
20
|
-
|
|
21
|
+
traverseReactNode(props.children, child => {
|
|
21
22
|
var _a;
|
|
22
23
|
|
|
23
24
|
if (!React.isValidElement(child)) return;
|
|
@@ -7,6 +7,7 @@ import { useResizeEffect } from '../../utils/use-resize-effect';
|
|
|
7
7
|
import { useTabListScroll } from '../../utils/use-tab-list-scroll';
|
|
8
8
|
import ScrollMask from '../scroll-mask';
|
|
9
9
|
import { ShouldRender } from '../../utils/should-render';
|
|
10
|
+
import { traverseReactNode } from '../../utils/traverse-react-node';
|
|
10
11
|
const classPrefix = `adm-jumbo-tabs`;
|
|
11
12
|
export const JumboTab = () => {
|
|
12
13
|
return null;
|
|
@@ -19,7 +20,7 @@ export const JumboTabs = props => {
|
|
|
19
20
|
const keyToIndexRecord = {};
|
|
20
21
|
let firstActiveKey = null;
|
|
21
22
|
const panes = [];
|
|
22
|
-
|
|
23
|
+
traverseReactNode(props.children, (child, index) => {
|
|
23
24
|
if (!React.isValidElement(child)) return;
|
|
24
25
|
const key = child.key;
|
|
25
26
|
if (typeof key !== 'string') return;
|
|
@@ -76,7 +76,14 @@ export const Mask = p => {
|
|
|
76
76
|
opacity
|
|
77
77
|
}, props.style), {
|
|
78
78
|
display: active ? 'unset' : 'none'
|
|
79
|
-
})
|
|
79
|
+
}),
|
|
80
|
+
onClick: e => {
|
|
81
|
+
var _a;
|
|
82
|
+
|
|
83
|
+
if (e.target === e.currentTarget) {
|
|
84
|
+
(_a = props.onMaskClick) === null || _a === void 0 ? void 0 : _a.call(props, e);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
80
87
|
}, props.onMaskClick && React.createElement("div", {
|
|
81
88
|
className: `${classPrefix}-aria-button`,
|
|
82
89
|
role: 'button',
|