@sunggang/ui-lib 0.4.0 → 0.4.1
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/index.cjs.js +135 -0
- package/index.esm.js +132 -2
- package/package.json +3 -1
- package/src/index.d.ts +1 -0
package/index.cjs.js
CHANGED
|
@@ -191,6 +191,136 @@ var Switch = /*#__PURE__*/ React__namespace.forwardRef(function(_param, ref) {
|
|
|
191
191
|
});
|
|
192
192
|
});
|
|
193
193
|
|
|
194
|
+
var phone = /^09\d{8}$/;
|
|
195
|
+
var email = /^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/i;
|
|
196
|
+
var birthday = /^(19|20)\d\d[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])$/;
|
|
197
|
+
var carrier = /^\/[0-9A-Z.+-]{7}$/;
|
|
198
|
+
var Regex = {
|
|
199
|
+
phone: phone,
|
|
200
|
+
email: email,
|
|
201
|
+
birthday: birthday,
|
|
202
|
+
carrier: carrier
|
|
203
|
+
};
|
|
204
|
+
|
|
205
|
+
var verifyTaiwanIdIntermediateString = function(input) {
|
|
206
|
+
var idArray = input.split("");
|
|
207
|
+
var intRadix = 10;
|
|
208
|
+
var TAIWAN_ID_LOCALE_CODE_LIST = [
|
|
209
|
+
1,
|
|
210
|
+
10,
|
|
211
|
+
19,
|
|
212
|
+
28,
|
|
213
|
+
37,
|
|
214
|
+
46,
|
|
215
|
+
55,
|
|
216
|
+
64,
|
|
217
|
+
39,
|
|
218
|
+
73,
|
|
219
|
+
82,
|
|
220
|
+
2,
|
|
221
|
+
11,
|
|
222
|
+
20,
|
|
223
|
+
48,
|
|
224
|
+
29,
|
|
225
|
+
38,
|
|
226
|
+
47,
|
|
227
|
+
56,
|
|
228
|
+
65,
|
|
229
|
+
74,
|
|
230
|
+
83,
|
|
231
|
+
21,
|
|
232
|
+
3,
|
|
233
|
+
12,
|
|
234
|
+
30
|
|
235
|
+
];
|
|
236
|
+
var RESIDENT_CERTIFICATE_NUMBER_LIST = [
|
|
237
|
+
"0",
|
|
238
|
+
"1",
|
|
239
|
+
"2",
|
|
240
|
+
"3",
|
|
241
|
+
"4",
|
|
242
|
+
"5",
|
|
243
|
+
"6",
|
|
244
|
+
"7",
|
|
245
|
+
"4",
|
|
246
|
+
"8",
|
|
247
|
+
"9",
|
|
248
|
+
"0",
|
|
249
|
+
"1",
|
|
250
|
+
"2",
|
|
251
|
+
"5",
|
|
252
|
+
"3",
|
|
253
|
+
"4",
|
|
254
|
+
"5",
|
|
255
|
+
"6",
|
|
256
|
+
"7",
|
|
257
|
+
"8",
|
|
258
|
+
"9",
|
|
259
|
+
"2",
|
|
260
|
+
"0",
|
|
261
|
+
"1",
|
|
262
|
+
"3"
|
|
263
|
+
];
|
|
264
|
+
// if is not a number (居留證編號)
|
|
265
|
+
// eslint-disable-next-line no-restricted-globals
|
|
266
|
+
if (isNaN(parseInt(idArray[1], intRadix))) {
|
|
267
|
+
idArray[1] = RESIDENT_CERTIFICATE_NUMBER_LIST[input.charCodeAt(1) - "A".charCodeAt(0)];
|
|
268
|
+
}
|
|
269
|
+
var result = idArray.reduce(function(sum, n, index) {
|
|
270
|
+
if (index === 0) {
|
|
271
|
+
return sum + TAIWAN_ID_LOCALE_CODE_LIST[idArray[0].charCodeAt(0) - "A".charCodeAt(0)];
|
|
272
|
+
}
|
|
273
|
+
if (index === 9) {
|
|
274
|
+
return sum + parseInt(idArray[9], intRadix);
|
|
275
|
+
}
|
|
276
|
+
return sum + parseInt(idArray[index], intRadix) * (9 - index);
|
|
277
|
+
}, 0);
|
|
278
|
+
if (result % 10 === 0) {
|
|
279
|
+
return true;
|
|
280
|
+
}
|
|
281
|
+
return false;
|
|
282
|
+
};
|
|
283
|
+
var verifyId = function(input) {
|
|
284
|
+
var regex = /^[A-Z][1,2,8,9]\d{8}$/;
|
|
285
|
+
if (!regex.test(input)) {
|
|
286
|
+
return false;
|
|
287
|
+
}
|
|
288
|
+
return verifyTaiwanIdIntermediateString(input);
|
|
289
|
+
};
|
|
290
|
+
var verifyTaxId = function(idStr) {
|
|
291
|
+
var regex = /^\d{8}$/;
|
|
292
|
+
if (!regex.test(idStr)) {
|
|
293
|
+
console.log("Fail, 長度錯誤");
|
|
294
|
+
return false;
|
|
295
|
+
}
|
|
296
|
+
var len = 8;
|
|
297
|
+
var idArray = new Array(len);
|
|
298
|
+
var weight = [
|
|
299
|
+
1,
|
|
300
|
+
2,
|
|
301
|
+
1,
|
|
302
|
+
2,
|
|
303
|
+
1,
|
|
304
|
+
2,
|
|
305
|
+
4,
|
|
306
|
+
1
|
|
307
|
+
];
|
|
308
|
+
var sum = 0;
|
|
309
|
+
// eslint-disable-next-line no-plusplus
|
|
310
|
+
for(var i = 0; i < len; i++){
|
|
311
|
+
idArray[i] = parseInt(idStr[i], 10);
|
|
312
|
+
var p = idArray[i] * weight[i];
|
|
313
|
+
var s = Math.floor(p / 10) + p % 10;
|
|
314
|
+
sum += s;
|
|
315
|
+
}
|
|
316
|
+
var checkNumber = 5;
|
|
317
|
+
var isLegal = sum % checkNumber === 0 || (sum + 1) % checkNumber === 0 && idArray[6] === 7;
|
|
318
|
+
if (!isLegal) {
|
|
319
|
+
console.log("Fail, 不合法的統一編號驗證");
|
|
320
|
+
}
|
|
321
|
+
return isLegal;
|
|
322
|
+
};
|
|
323
|
+
|
|
194
324
|
function _define_property$5(obj, key, value) {
|
|
195
325
|
if (key in obj) {
|
|
196
326
|
Object.defineProperty(obj, key, {
|
|
@@ -1948,6 +2078,7 @@ exports.SelectScrollUpButton = baseSwitch.SelectScrollUpButton;
|
|
|
1948
2078
|
exports.SelectSeparator = baseSwitch.SelectSeparator;
|
|
1949
2079
|
exports.SelectTrigger = baseSwitch.SelectTrigger;
|
|
1950
2080
|
exports.SelectValue = baseSwitch.SelectValue;
|
|
2081
|
+
exports.validateMsg = baseSwitch.validateMsg;
|
|
1951
2082
|
exports.Checkbox = Checkbox;
|
|
1952
2083
|
exports.DateRangePicker = DateRangePicker;
|
|
1953
2084
|
exports.DropDown = DropDown;
|
|
@@ -1957,6 +2088,10 @@ exports.InputOTPSeparator = InputOTPSeparator;
|
|
|
1957
2088
|
exports.InputOTPSlot = InputOTPSlot;
|
|
1958
2089
|
exports.InputOTPs = InputOTPs;
|
|
1959
2090
|
exports.ReactDateRange = ReactDateRange;
|
|
2091
|
+
exports.Regex = Regex;
|
|
1960
2092
|
exports.SingleDatePicker = SingleDatePicker;
|
|
1961
2093
|
exports.Spin = Spin;
|
|
1962
2094
|
exports.Switch = Switch;
|
|
2095
|
+
exports.verifyId = verifyId;
|
|
2096
|
+
exports.verifyTaiwanIdIntermediateString = verifyTaiwanIdIntermediateString;
|
|
2097
|
+
exports.verifyTaxId = verifyTaxId;
|
package/index.esm.js
CHANGED
|
@@ -6,7 +6,7 @@ import React__default, { useState, useRef, useEffect, useMemo, createContext, us
|
|
|
6
6
|
import * as SwitchPrimitives from '@radix-ui/react-switch';
|
|
7
7
|
import { c as cn } from './utils.esm.js';
|
|
8
8
|
import { u as useForm, C as Controller } from './index.esm.esm.js';
|
|
9
|
-
export { B as BaseSwitch, S as Select, d as SelectContent, a as SelectGroup, f as SelectItem, e as SelectLabel, i as SelectScrollDownButton, h as SelectScrollUpButton, g as SelectSeparator, c as SelectTrigger, b as SelectValue } from './baseSwitch.esm.js';
|
|
9
|
+
export { B as BaseSwitch, S as Select, d as SelectContent, a as SelectGroup, f as SelectItem, e as SelectLabel, i as SelectScrollDownButton, h as SelectScrollUpButton, g as SelectSeparator, c as SelectTrigger, b as SelectValue, v as validateMsg } from './baseSwitch.esm.js';
|
|
10
10
|
import format from 'date-fns/format';
|
|
11
11
|
import { Calendar as Calendar$1 } from 'lucide-react';
|
|
12
12
|
import { Icon } from '@iconify/react';
|
|
@@ -159,6 +159,136 @@ var Switch = /*#__PURE__*/ React.forwardRef(function(_param, ref) {
|
|
|
159
159
|
});
|
|
160
160
|
});
|
|
161
161
|
|
|
162
|
+
var phone = /^09\d{8}$/;
|
|
163
|
+
var email = /^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/i;
|
|
164
|
+
var birthday = /^(19|20)\d\d[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])$/;
|
|
165
|
+
var carrier = /^\/[0-9A-Z.+-]{7}$/;
|
|
166
|
+
var Regex = {
|
|
167
|
+
phone: phone,
|
|
168
|
+
email: email,
|
|
169
|
+
birthday: birthday,
|
|
170
|
+
carrier: carrier
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
var verifyTaiwanIdIntermediateString = function(input) {
|
|
174
|
+
var idArray = input.split("");
|
|
175
|
+
var intRadix = 10;
|
|
176
|
+
var TAIWAN_ID_LOCALE_CODE_LIST = [
|
|
177
|
+
1,
|
|
178
|
+
10,
|
|
179
|
+
19,
|
|
180
|
+
28,
|
|
181
|
+
37,
|
|
182
|
+
46,
|
|
183
|
+
55,
|
|
184
|
+
64,
|
|
185
|
+
39,
|
|
186
|
+
73,
|
|
187
|
+
82,
|
|
188
|
+
2,
|
|
189
|
+
11,
|
|
190
|
+
20,
|
|
191
|
+
48,
|
|
192
|
+
29,
|
|
193
|
+
38,
|
|
194
|
+
47,
|
|
195
|
+
56,
|
|
196
|
+
65,
|
|
197
|
+
74,
|
|
198
|
+
83,
|
|
199
|
+
21,
|
|
200
|
+
3,
|
|
201
|
+
12,
|
|
202
|
+
30
|
|
203
|
+
];
|
|
204
|
+
var RESIDENT_CERTIFICATE_NUMBER_LIST = [
|
|
205
|
+
"0",
|
|
206
|
+
"1",
|
|
207
|
+
"2",
|
|
208
|
+
"3",
|
|
209
|
+
"4",
|
|
210
|
+
"5",
|
|
211
|
+
"6",
|
|
212
|
+
"7",
|
|
213
|
+
"4",
|
|
214
|
+
"8",
|
|
215
|
+
"9",
|
|
216
|
+
"0",
|
|
217
|
+
"1",
|
|
218
|
+
"2",
|
|
219
|
+
"5",
|
|
220
|
+
"3",
|
|
221
|
+
"4",
|
|
222
|
+
"5",
|
|
223
|
+
"6",
|
|
224
|
+
"7",
|
|
225
|
+
"8",
|
|
226
|
+
"9",
|
|
227
|
+
"2",
|
|
228
|
+
"0",
|
|
229
|
+
"1",
|
|
230
|
+
"3"
|
|
231
|
+
];
|
|
232
|
+
// if is not a number (居留證編號)
|
|
233
|
+
// eslint-disable-next-line no-restricted-globals
|
|
234
|
+
if (isNaN(parseInt(idArray[1], intRadix))) {
|
|
235
|
+
idArray[1] = RESIDENT_CERTIFICATE_NUMBER_LIST[input.charCodeAt(1) - "A".charCodeAt(0)];
|
|
236
|
+
}
|
|
237
|
+
var result = idArray.reduce(function(sum, n, index) {
|
|
238
|
+
if (index === 0) {
|
|
239
|
+
return sum + TAIWAN_ID_LOCALE_CODE_LIST[idArray[0].charCodeAt(0) - "A".charCodeAt(0)];
|
|
240
|
+
}
|
|
241
|
+
if (index === 9) {
|
|
242
|
+
return sum + parseInt(idArray[9], intRadix);
|
|
243
|
+
}
|
|
244
|
+
return sum + parseInt(idArray[index], intRadix) * (9 - index);
|
|
245
|
+
}, 0);
|
|
246
|
+
if (result % 10 === 0) {
|
|
247
|
+
return true;
|
|
248
|
+
}
|
|
249
|
+
return false;
|
|
250
|
+
};
|
|
251
|
+
var verifyId = function(input) {
|
|
252
|
+
var regex = /^[A-Z][1,2,8,9]\d{8}$/;
|
|
253
|
+
if (!regex.test(input)) {
|
|
254
|
+
return false;
|
|
255
|
+
}
|
|
256
|
+
return verifyTaiwanIdIntermediateString(input);
|
|
257
|
+
};
|
|
258
|
+
var verifyTaxId = function(idStr) {
|
|
259
|
+
var regex = /^\d{8}$/;
|
|
260
|
+
if (!regex.test(idStr)) {
|
|
261
|
+
console.log("Fail, 長度錯誤");
|
|
262
|
+
return false;
|
|
263
|
+
}
|
|
264
|
+
var len = 8;
|
|
265
|
+
var idArray = new Array(len);
|
|
266
|
+
var weight = [
|
|
267
|
+
1,
|
|
268
|
+
2,
|
|
269
|
+
1,
|
|
270
|
+
2,
|
|
271
|
+
1,
|
|
272
|
+
2,
|
|
273
|
+
4,
|
|
274
|
+
1
|
|
275
|
+
];
|
|
276
|
+
var sum = 0;
|
|
277
|
+
// eslint-disable-next-line no-plusplus
|
|
278
|
+
for(var i = 0; i < len; i++){
|
|
279
|
+
idArray[i] = parseInt(idStr[i], 10);
|
|
280
|
+
var p = idArray[i] * weight[i];
|
|
281
|
+
var s = Math.floor(p / 10) + p % 10;
|
|
282
|
+
sum += s;
|
|
283
|
+
}
|
|
284
|
+
var checkNumber = 5;
|
|
285
|
+
var isLegal = sum % checkNumber === 0 || (sum + 1) % checkNumber === 0 && idArray[6] === 7;
|
|
286
|
+
if (!isLegal) {
|
|
287
|
+
console.log("Fail, 不合法的統一編號驗證");
|
|
288
|
+
}
|
|
289
|
+
return isLegal;
|
|
290
|
+
};
|
|
291
|
+
|
|
162
292
|
function _define_property$5(obj, key, value) {
|
|
163
293
|
if (key in obj) {
|
|
164
294
|
Object.defineProperty(obj, key, {
|
|
@@ -1902,4 +2032,4 @@ var InputOTPs = function(param) {
|
|
|
1902
2032
|
});
|
|
1903
2033
|
};
|
|
1904
2034
|
|
|
1905
|
-
export { Checkbox, DateRangePicker, DropDown, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, InputOTPs, ReactDateRange, SingleDatePicker, Spin, Switch };
|
|
2035
|
+
export { Checkbox, DateRangePicker, DropDown, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, InputOTPs, ReactDateRange, Regex, SingleDatePicker, Spin, Switch, verifyId, verifyTaiwanIdIntermediateString, verifyTaxId };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sunggang/ui-lib",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"main": "./index.cjs.js",
|
|
5
5
|
"module": "./index.esm.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -51,6 +51,8 @@
|
|
|
51
51
|
"default": "./Tabs.cjs.js"
|
|
52
52
|
},
|
|
53
53
|
"./style.css": "./dist/style.css",
|
|
54
|
+
"./index.esm.css": "./dist/style.css",
|
|
55
|
+
"./dist/style.css": "./dist/style.css",
|
|
54
56
|
"./package.json": "./package.json"
|
|
55
57
|
},
|
|
56
58
|
"sideEffects": [
|
package/src/index.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export * from './components/ui/singlePicker';
|
|
|
9
9
|
export * from './components/ui/reactDateRange';
|
|
10
10
|
export * from './components/ui/checkbox';
|
|
11
11
|
export * from './components/ui/inputOtp';
|
|
12
|
+
export * from './lib/Function';
|
|
12
13
|
export * from './lib/Spin';
|
|
13
14
|
export * from './lib/Dropdown';
|
|
14
15
|
export * from './lib/InputOtp';
|