@sunggang/ui-lib 0.4.24 → 0.4.26
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/BaseCkeditor.cjs.js +5 -21
- package/BaseCkeditor.esm.js +3 -19
- package/BigCalender.cjs.js +42 -42
- package/BigCalender.esm.js +2 -2
- package/CkEditor.cjs.js +2 -18
- package/CkEditor.esm.js +2 -18
- package/CustomSelect.cjs.js +238 -1
- package/CustomSelect.esm.js +209 -2
- package/DataTable.cjs.js +2 -2
- package/DataTable.esm.js +2 -2
- package/DropImage.cjs.js +55 -55
- package/DropImage.esm.js +1 -1
- package/FieldLabel.cjs.js +35 -0
- package/FieldLabel.esm.js +33 -0
- package/Form.cjs.js +8273 -25
- package/Form.esm.js +8261 -37
- package/FormProvider.esm.js +2 -2
- package/Modal.cjs.js +2 -1
- package/Modal.esm.js +2 -1
- package/{baseSwitch.cjs.js → common.cjs.js} +1 -8518
- package/{baseSwitch.esm.js → common.esm.js} +1 -8473
- package/{setPrototypeOf.esm.js → extends.esm.js} +7 -7
- package/index.cjs.css +16 -0
- package/index.cjs.js +154 -329
- package/index.esm.css +16 -0
- package/index.esm.esm.js +1 -1
- package/index.esm.js +146 -319
- package/inheritsLoose.cjs.js +2 -2
- package/inheritsLoose.esm.js +1 -1
- package/memoize-one.esm.cjs.js +65 -65
- package/memoize-one.esm.esm.js +63 -63
- package/package.json +21 -4
- package/src/BaseSwitch.d.ts +1 -0
- package/src/ReactDateRange.d.ts +1 -0
- package/src/ReactDateRangeCSS.d.ts +1 -0
- package/src/index.d.ts +0 -2
- package/src/lib/Form/FieldLabel.d.ts +5 -0
- package/src/lib/Form/index.d.ts +0 -6
- package/src/lib/Form/types.d.ts +2 -0
- package/{setPrototypeOf.cjs.js → extends.cjs.js} +6 -6
|
@@ -64,6 +64,12 @@ function _objectWithoutPropertiesLoose(r, e) {
|
|
|
64
64
|
return t;
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
+
function _setPrototypeOf(t, e) {
|
|
68
|
+
return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(t, e) {
|
|
69
|
+
return t.__proto__ = e, t;
|
|
70
|
+
}, _setPrototypeOf(t, e);
|
|
71
|
+
}
|
|
72
|
+
|
|
67
73
|
function _extends() {
|
|
68
74
|
return _extends = Object.assign ? Object.assign.bind() : function _extends(n) {
|
|
69
75
|
for(var e = 1; e < arguments.length; e++){
|
|
@@ -74,10 +80,4 @@ function _extends() {
|
|
|
74
80
|
}, _extends.apply(null, arguments);
|
|
75
81
|
}
|
|
76
82
|
|
|
77
|
-
|
|
78
|
-
return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(t, e) {
|
|
79
|
-
return t.__proto__ = e, t;
|
|
80
|
-
}, _setPrototypeOf(t, e);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
export { _objectSpread2 as _, _typeof as a, _defineProperty as b, _extends as c, _objectWithoutPropertiesLoose as d, _setPrototypeOf as e, toPropertyKey as t };
|
|
83
|
+
export { _extends as _, _objectWithoutPropertiesLoose as a, _objectSpread2 as b, _defineProperty as c, _typeof as d, _setPrototypeOf as e, toPropertyKey as t };
|
package/index.cjs.css
CHANGED
|
@@ -3516,6 +3516,10 @@ video {
|
|
|
3516
3516
|
.focus\:bg-accent:focus {
|
|
3517
3517
|
background-color: hsl(var(--accent));
|
|
3518
3518
|
}
|
|
3519
|
+
.focus\:bg-slate-100:focus {
|
|
3520
|
+
--tw-bg-opacity: 1;
|
|
3521
|
+
background-color: rgb(241 245 249 / var(--tw-bg-opacity, 1));
|
|
3522
|
+
}
|
|
3519
3523
|
.focus\:text-\[\#fff\]:focus {
|
|
3520
3524
|
--tw-text-opacity: 1;
|
|
3521
3525
|
color: rgb(255 255 255 / var(--tw-text-opacity, 1));
|
|
@@ -3523,6 +3527,10 @@ video {
|
|
|
3523
3527
|
.focus\:text-accent-foreground:focus {
|
|
3524
3528
|
color: hsl(var(--accent-foreground));
|
|
3525
3529
|
}
|
|
3530
|
+
.focus\:text-slate-900:focus {
|
|
3531
|
+
--tw-text-opacity: 1;
|
|
3532
|
+
color: rgb(15 23 42 / var(--tw-text-opacity, 1));
|
|
3533
|
+
}
|
|
3526
3534
|
.focus\:outline-none:focus {
|
|
3527
3535
|
outline: 2px solid transparent;
|
|
3528
3536
|
outline-offset: 2px;
|
|
@@ -3793,6 +3801,14 @@ video {
|
|
|
3793
3801
|
.data-\[side\=top\]\:slide-in-from-bottom-2[data-side="top"] {
|
|
3794
3802
|
--tw-enter-translate-y: 0.5rem;
|
|
3795
3803
|
}
|
|
3804
|
+
.dark\:focus\:bg-slate-800:focus:is(.dark *) {
|
|
3805
|
+
--tw-bg-opacity: 1;
|
|
3806
|
+
background-color: rgb(30 41 59 / var(--tw-bg-opacity, 1));
|
|
3807
|
+
}
|
|
3808
|
+
.dark\:focus\:text-slate-100:focus:is(.dark *) {
|
|
3809
|
+
--tw-text-opacity: 1;
|
|
3810
|
+
color: rgb(241 245 249 / var(--tw-text-opacity, 1));
|
|
3811
|
+
}
|
|
3796
3812
|
@media (min-width: 640px) {
|
|
3797
3813
|
|
|
3798
3814
|
.sm\:mx-4 {
|
package/index.cjs.js
CHANGED
|
@@ -7,37 +7,23 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
7
7
|
var React = require('react');
|
|
8
8
|
var SwitchPrimitives = require('@radix-ui/react-switch');
|
|
9
9
|
var utils = require('./utils.cjs.js');
|
|
10
|
-
var
|
|
10
|
+
var CustomSelect = require('./CustomSelect.cjs.js');
|
|
11
11
|
var dateFns = require('date-fns');
|
|
12
12
|
var lucideReact = require('lucide-react');
|
|
13
13
|
var react = require('@iconify/react');
|
|
14
14
|
var reactDayPicker = require('react-day-picker');
|
|
15
15
|
var zhTW = require('date-fns/locale/zh-TW');
|
|
16
16
|
var PopoverPrimitive = require('@radix-ui/react-popover');
|
|
17
|
-
var reactDateRange = require('react-date-range');
|
|
18
|
-
var locales = require('react-date-range/dist/locale/index.js');
|
|
19
17
|
var CheckboxPrimitive = require('@radix-ui/react-checkbox');
|
|
20
18
|
var reactIcons = require('@radix-ui/react-icons');
|
|
21
19
|
var inputOtp = require('input-otp');
|
|
20
|
+
var common = require('./common.cjs.js');
|
|
22
21
|
var clsx = require('clsx');
|
|
23
|
-
var CustomSelect = require('./CustomSelect.cjs.js');
|
|
24
22
|
require('@radix-ui/react-slot');
|
|
25
23
|
require('class-variance-authority');
|
|
26
24
|
require('tailwind-merge');
|
|
27
|
-
require('./index.esm.cjs.js');
|
|
28
|
-
require('next/dynamic');
|
|
29
|
-
require('./setPrototypeOf.cjs.js');
|
|
30
|
-
require('./memoize-one.esm.cjs.js');
|
|
31
|
-
require('@emotion/react');
|
|
32
|
-
require('react-dom');
|
|
33
|
-
require('@mui/material');
|
|
34
|
-
require('./styled-components.esm.cjs.js');
|
|
35
|
-
require('./_tslib.cjs.js');
|
|
36
|
-
require('./_commonjsHelpers.cjs.js');
|
|
37
|
-
require('./Modal.cjs.js');
|
|
38
25
|
require('@radix-ui/react-select');
|
|
39
|
-
require('
|
|
40
|
-
require('flatpickr/dist/l10n/zh-tw.js');
|
|
26
|
+
require('./_commonjsHelpers.cjs.js');
|
|
41
27
|
|
|
42
28
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
43
29
|
|
|
@@ -64,7 +50,6 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
|
64
50
|
var SwitchPrimitives__namespace = /*#__PURE__*/_interopNamespace(SwitchPrimitives);
|
|
65
51
|
var zhTW__default = /*#__PURE__*/_interopDefaultLegacy(zhTW);
|
|
66
52
|
var PopoverPrimitive__namespace = /*#__PURE__*/_interopNamespace(PopoverPrimitive);
|
|
67
|
-
var locales__namespace = /*#__PURE__*/_interopNamespace(locales);
|
|
68
53
|
var CheckboxPrimitive__namespace = /*#__PURE__*/_interopNamespace(CheckboxPrimitive);
|
|
69
54
|
|
|
70
55
|
function _define_property$7(obj, key, value) {
|
|
@@ -178,136 +163,6 @@ var Switch = /*#__PURE__*/ React__namespace.forwardRef(function(_param, ref) {
|
|
|
178
163
|
});
|
|
179
164
|
Switch.displayName = "Switch";
|
|
180
165
|
|
|
181
|
-
var phone = /^09\d{8}$/;
|
|
182
|
-
var email = /^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/i;
|
|
183
|
-
var birthday = /^(19|20)\d\d[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])$/;
|
|
184
|
-
var carrier = /^\/[0-9A-Z.+-]{7}$/;
|
|
185
|
-
var Regex = {
|
|
186
|
-
phone: phone,
|
|
187
|
-
email: email,
|
|
188
|
-
birthday: birthday,
|
|
189
|
-
carrier: carrier
|
|
190
|
-
};
|
|
191
|
-
|
|
192
|
-
var verifyTaiwanIdIntermediateString = function(input) {
|
|
193
|
-
var idArray = input.split("");
|
|
194
|
-
var intRadix = 10;
|
|
195
|
-
var TAIWAN_ID_LOCALE_CODE_LIST = [
|
|
196
|
-
1,
|
|
197
|
-
10,
|
|
198
|
-
19,
|
|
199
|
-
28,
|
|
200
|
-
37,
|
|
201
|
-
46,
|
|
202
|
-
55,
|
|
203
|
-
64,
|
|
204
|
-
39,
|
|
205
|
-
73,
|
|
206
|
-
82,
|
|
207
|
-
2,
|
|
208
|
-
11,
|
|
209
|
-
20,
|
|
210
|
-
48,
|
|
211
|
-
29,
|
|
212
|
-
38,
|
|
213
|
-
47,
|
|
214
|
-
56,
|
|
215
|
-
65,
|
|
216
|
-
74,
|
|
217
|
-
83,
|
|
218
|
-
21,
|
|
219
|
-
3,
|
|
220
|
-
12,
|
|
221
|
-
30
|
|
222
|
-
];
|
|
223
|
-
var RESIDENT_CERTIFICATE_NUMBER_LIST = [
|
|
224
|
-
"0",
|
|
225
|
-
"1",
|
|
226
|
-
"2",
|
|
227
|
-
"3",
|
|
228
|
-
"4",
|
|
229
|
-
"5",
|
|
230
|
-
"6",
|
|
231
|
-
"7",
|
|
232
|
-
"4",
|
|
233
|
-
"8",
|
|
234
|
-
"9",
|
|
235
|
-
"0",
|
|
236
|
-
"1",
|
|
237
|
-
"2",
|
|
238
|
-
"5",
|
|
239
|
-
"3",
|
|
240
|
-
"4",
|
|
241
|
-
"5",
|
|
242
|
-
"6",
|
|
243
|
-
"7",
|
|
244
|
-
"8",
|
|
245
|
-
"9",
|
|
246
|
-
"2",
|
|
247
|
-
"0",
|
|
248
|
-
"1",
|
|
249
|
-
"3"
|
|
250
|
-
];
|
|
251
|
-
// if is not a number (居留證編號)
|
|
252
|
-
// eslint-disable-next-line no-restricted-globals
|
|
253
|
-
if (isNaN(parseInt(idArray[1], intRadix))) {
|
|
254
|
-
idArray[1] = RESIDENT_CERTIFICATE_NUMBER_LIST[input.charCodeAt(1) - "A".charCodeAt(0)];
|
|
255
|
-
}
|
|
256
|
-
var result = idArray.reduce(function(sum, n, index) {
|
|
257
|
-
if (index === 0) {
|
|
258
|
-
return sum + TAIWAN_ID_LOCALE_CODE_LIST[idArray[0].charCodeAt(0) - "A".charCodeAt(0)];
|
|
259
|
-
}
|
|
260
|
-
if (index === 9) {
|
|
261
|
-
return sum + parseInt(idArray[9], intRadix);
|
|
262
|
-
}
|
|
263
|
-
return sum + parseInt(idArray[index], intRadix) * (9 - index);
|
|
264
|
-
}, 0);
|
|
265
|
-
if (result % 10 === 0) {
|
|
266
|
-
return true;
|
|
267
|
-
}
|
|
268
|
-
return false;
|
|
269
|
-
};
|
|
270
|
-
var verifyId = function(input) {
|
|
271
|
-
var regex = /^[A-Z][1,2,8,9]\d{8}$/;
|
|
272
|
-
if (!regex.test(input)) {
|
|
273
|
-
return false;
|
|
274
|
-
}
|
|
275
|
-
return verifyTaiwanIdIntermediateString(input);
|
|
276
|
-
};
|
|
277
|
-
var verifyTaxId = function(idStr) {
|
|
278
|
-
var regex = /^\d{8}$/;
|
|
279
|
-
if (!regex.test(idStr)) {
|
|
280
|
-
console.log("Fail, 長度錯誤");
|
|
281
|
-
return false;
|
|
282
|
-
}
|
|
283
|
-
var len = 8;
|
|
284
|
-
var idArray = new Array(len);
|
|
285
|
-
var weight = [
|
|
286
|
-
1,
|
|
287
|
-
2,
|
|
288
|
-
1,
|
|
289
|
-
2,
|
|
290
|
-
1,
|
|
291
|
-
2,
|
|
292
|
-
4,
|
|
293
|
-
1
|
|
294
|
-
];
|
|
295
|
-
var sum = 0;
|
|
296
|
-
// eslint-disable-next-line no-plusplus
|
|
297
|
-
for(var i = 0; i < len; i++){
|
|
298
|
-
idArray[i] = parseInt(idStr[i], 10);
|
|
299
|
-
var p = idArray[i] * weight[i];
|
|
300
|
-
var s = Math.floor(p / 10) + p % 10;
|
|
301
|
-
sum += s;
|
|
302
|
-
}
|
|
303
|
-
var checkNumber = 5;
|
|
304
|
-
var isLegal = sum % checkNumber === 0 || (sum + 1) % checkNumber === 0 && idArray[6] === 7;
|
|
305
|
-
if (!isLegal) {
|
|
306
|
-
console.log("Fail, 不合法的統一編號驗證");
|
|
307
|
-
}
|
|
308
|
-
return isLegal;
|
|
309
|
-
};
|
|
310
|
-
|
|
311
166
|
function _define_property$6(obj, key, value) {
|
|
312
167
|
if (key in obj) {
|
|
313
168
|
Object.defineProperty(obj, key, {
|
|
@@ -605,15 +460,15 @@ function DateRangePicker(param) {
|
|
|
605
460
|
});
|
|
606
461
|
}
|
|
607
462
|
|
|
608
|
-
function _array_like_to_array$
|
|
463
|
+
function _array_like_to_array$1(arr, len) {
|
|
609
464
|
if (len == null || len > arr.length) len = arr.length;
|
|
610
465
|
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
611
466
|
return arr2;
|
|
612
467
|
}
|
|
613
|
-
function _array_with_holes$
|
|
468
|
+
function _array_with_holes$1(arr) {
|
|
614
469
|
if (Array.isArray(arr)) return arr;
|
|
615
470
|
}
|
|
616
|
-
function _iterable_to_array_limit$
|
|
471
|
+
function _iterable_to_array_limit$1(arr, i) {
|
|
617
472
|
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
|
|
618
473
|
if (_i == null) return;
|
|
619
474
|
var _arr = [];
|
|
@@ -637,23 +492,23 @@ function _iterable_to_array_limit$2(arr, i) {
|
|
|
637
492
|
}
|
|
638
493
|
return _arr;
|
|
639
494
|
}
|
|
640
|
-
function _non_iterable_rest$
|
|
495
|
+
function _non_iterable_rest$1() {
|
|
641
496
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
642
497
|
}
|
|
643
|
-
function _sliced_to_array$
|
|
644
|
-
return _array_with_holes$
|
|
498
|
+
function _sliced_to_array$1(arr, i) {
|
|
499
|
+
return _array_with_holes$1(arr) || _iterable_to_array_limit$1(arr, i) || _unsupported_iterable_to_array$1(arr, i) || _non_iterable_rest$1();
|
|
645
500
|
}
|
|
646
|
-
function _unsupported_iterable_to_array$
|
|
501
|
+
function _unsupported_iterable_to_array$1(o, minLen) {
|
|
647
502
|
if (!o) return;
|
|
648
|
-
if (typeof o === "string") return _array_like_to_array$
|
|
503
|
+
if (typeof o === "string") return _array_like_to_array$1(o, minLen);
|
|
649
504
|
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
650
505
|
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
651
506
|
if (n === "Map" || n === "Set") return Array.from(n);
|
|
652
|
-
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$
|
|
507
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$1(o, minLen);
|
|
653
508
|
}
|
|
654
509
|
var SingleDatePicker = function(param) {
|
|
655
510
|
var disable = param.disable, onChange = param.onChange;
|
|
656
|
-
var _useState = _sliced_to_array$
|
|
511
|
+
var _useState = _sliced_to_array$1(React.useState(), 2), date = _useState[0], setDate = _useState[1];
|
|
657
512
|
var handleDate = function(newDate) {
|
|
658
513
|
if (newDate) {
|
|
659
514
|
setDate(newDate);
|
|
@@ -693,164 +548,6 @@ var SingleDatePicker = function(param) {
|
|
|
693
548
|
});
|
|
694
549
|
};
|
|
695
550
|
|
|
696
|
-
/**
|
|
697
|
-
* React Date Range CSS styles as string constants
|
|
698
|
-
* This allows the component to inject styles dynamically without requiring external CSS imports
|
|
699
|
-
*/ // React Date Range main styles
|
|
700
|
-
var REACT_DATE_RANGE_STYLES_CSS = ".rdrCalendarWrapper {\n box-sizing: border-box;\n background: #ffffff;\n display: inline-flex;\n flex-direction: column;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.rdrDateDisplay {\n display: flex;\n justify-content: space-between;\n}\n\n.rdrDateDisplayItem {\n flex: 1 1;\n width: 0;\n text-align: center;\n color: inherit;\n}\n\n.rdrDateDisplayItem + .rdrDateDisplayItem {\n margin-left: 0.833em;\n}\n\n.rdrDateDisplayItem input {\n text-align: inherit;\n}\n\n.rdrDateDisplayItem input:disabled {\n cursor: default;\n}\n\n.rdrDateDisplayItemActive {\n}\n\n.rdrMonthAndYearWrapper {\n box-sizing: inherit;\n display: flex;\n justify-content: space-between;\n}\n\n.rdrMonthAndYearPickers {\n flex: 1 1 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.rdrMonthPicker {\n}\n\n.rdrYearPicker {\n}\n\n.rdrNextPrevButton {\n box-sizing: inherit;\n cursor: pointer;\n outline: none;\n}\n\n.rdrPprevButton {\n}\n\n.rdrNextButton {\n}\n\n.rdrMonths {\n display: flex;\n}\n\n.rdrMonthsVertical {\n flex-direction: column;\n}\n\n.rdrMonthsHorizontal > div > div > div {\n display: flex;\n flex-direction: row;\n}\n\n.rdrMonth {\n width: 27.667em;\n}\n\n.rdrWeekDays {\n display: flex;\n}\n\n.rdrWeekDay {\n flex-basis: calc(100% / 7);\n box-sizing: inherit;\n text-align: center;\n}\n\n.rdrDays {\n display: flex;\n flex-wrap: wrap;\n}\n\n.rdrDateDisplayWrapper {\n}\n\n.rdrMonthName {\n}\n\n.rdrInfiniteMonths {\n overflow: auto;\n}\n\n.rdrDateRangeWrapper {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.rdrDateInput {\n position: relative;\n}\n\n.rdrDateInput input {\n outline: none;\n}\n\n.rdrDateInput .rdrWarning {\n position: absolute;\n font-size: 1.6em;\n line-height: 1.6em;\n top: 0;\n right: 0.25em;\n color: #ff0000;\n}\n\n.rdrDay {\n box-sizing: inherit;\n width: calc(100% / 7);\n position: relative;\n font: inherit;\n cursor: pointer;\n}\n\n.rdrDayNumber {\n display: block;\n position: relative;\n}\n\n.rdrDayNumber span {\n color: #1d2429;\n}\n\n.rdrDayDisabled {\n cursor: not-allowed;\n}\n\n@supports (-ms-ime-align: auto) {\n .rdrDay {\n flex-basis: 14.285% !important;\n }\n}\n\n.rdrSelected,\n.rdrInRange,\n.rdrStartEdge,\n.rdrEndEdge {\n pointer-events: none;\n}\n\n.rdrInRange {\n}\n\n.rdrDayStartPreview,\n.rdrDayInPreview,\n.rdrDayEndPreview {\n pointer-events: none;\n}\n\n.rdrDayHovered {\n}\n\n.rdrDayActive {\n}\n\n.rdrDateRangePickerWrapper {\n display: inline-flex;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.rdrDefinedRangesWrapper {\n}\n\n.rdrStaticRanges {\n display: flex;\n flex-direction: column;\n}\n\n.rdrStaticRange {\n font-size: inherit;\n}\n\n.rdrStaticRangeLabel {\n}\n\n.rdrInputRanges {\n}\n\n.rdrInputRange {\n display: flex;\n}\n\n.rdrInputRangeInput {\n}";
|
|
701
|
-
// React Date Range theme (default) styles
|
|
702
|
-
var REACT_DATE_RANGE_THEME_CSS = ".rdrCalendarWrapper{\n color: #000000;\n font-size: 12px;\n}\n\n.rdrDateDisplayWrapper{\n background-color: rgb(239, 242, 247);\n}\n\n.rdrDateDisplay{\n margin: 0.833em;\n}\n\n.rdrDateDisplayItem{\n border-radius: 4px;\n background-color: rgb(255, 255, 255);\n box-shadow: 0 1px 2px 0 rgba(35, 57, 66, 0.21);\n border: 1px solid transparent;\n}\n\n.rdrDateDisplayItem input{\n cursor: pointer;\n height: 2.5em;\n line-height: 2.5em;\n border: 0px;\n background: transparent;\n width: 100%;\n color: #849095;\n }\n\n.rdrDateDisplayItemActive{\n border-color: currentColor;\n}\n\n.rdrDateDisplayItemActive input{\n color: #7d888d\n }\n\n.rdrMonthAndYearWrapper {\n align-items: center;\n height: 60px;\n padding-top: 10px;\n}\n\n.rdrMonthAndYearPickers{\n font-weight: 600;\n}\n\n.rdrMonthAndYearPickers select{\n -moz-appearance: none;\n appearance: none;\n -webkit-appearance: none;\n border: 0;\n background: transparent;\n padding: 10px 30px 10px 10px;\n border-radius: 4px;\n outline: 0;\n color: #3e484f;\n background: url(\"data:image/svg+xml;utf8,<svg width='9px' height='6px' viewBox='0 0 9 6' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'><g id='Artboard' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd' transform='translate(-636.000000, -171.000000)' fill-opacity='0.368716033'><g id='input' transform='translate(172.000000, 37.000000)' fill='%230E242F' fill-rule='nonzero'><g id='Group-9' transform='translate(323.000000, 127.000000)'><path d='M142.280245,7.23952813 C141.987305,6.92353472 141.512432,6.92361662 141.219585,7.23971106 C140.926739,7.5558055 140.926815,8.06821394 141.219755,8.38420735 L145.498801,13 L149.780245,8.38162071 C150.073185,8.0656273 150.073261,7.55321886 149.780415,7.23712442 C149.487568,6.92102998 149.012695,6.92094808 148.719755,7.23694149 L145.498801,10.7113732 L142.280245,7.23952813 Z' id='arrow'></path></g></g></g></svg>\") no-repeat;\n background-position: right 8px center;\n cursor: pointer;\n text-align: center\n }\n\n.rdrMonthAndYearPickers select:hover{\n background-color: rgba(0,0,0,0.07);\n }\n\n.rdrMonthPicker, .rdrYearPicker{\n margin: 0 5px\n}\n\n.rdrNextPrevButton {\n display: block;\n width: 24px;\n height: 24px;\n margin: 0 0.833em;\n padding: 0;\n border: 0;\n border-radius: 5px;\n background: #EFF2F7\n}\n\n.rdrNextPrevButton:hover{\n background: #E1E7F0;\n }\n\n.rdrNextPrevButton i {\n display: block;\n width: 0;\n height: 0;\n padding: 0;\n text-align: center;\n border-style: solid;\n margin: auto;\n transform: translate(-3px, 0px);\n }\n\n.rdrPprevButton i {\n border-width: 4px 6px 4px 4px;\n border-color: transparent rgb(52, 73, 94) transparent transparent;\n transform: translate(-3px, 0px);\n }\n\n.rdrNextButton i {\n margin: 0 0 0 7px;\n border-width: 4px 4px 4px 6px;\n border-color: transparent transparent transparent rgb(52, 73, 94);\n transform: translate(3px, 0px);\n }\n\n.rdrWeekDays {\n padding: 0 0.833em;\n}\n\n.rdrMonth{\n padding: 0 0.833em 1.666em 0.833em;\n}\n\n.rdrMonth .rdrWeekDays {\n padding: 0;\n }\n\n.rdrMonths.rdrMonthsVertical .rdrMonth:first-child .rdrMonthName{\n display: none;\n}\n\n.rdrWeekDay {\n font-weight: 400;\n line-height: 2.667em;\n color: rgb(132, 144, 149);\n}\n\n.rdrDay {\n background: transparent;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n border: 0;\n padding: 0;\n line-height: 3.000em;\n height: 3.000em;\n text-align: center;\n color: #1d2429\n}\n\n.rdrDay:focus {\n outline: 0;\n }\n\n.rdrDayNumber {\n outline: 0;\n font-weight: 300;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n top: 5px;\n bottom: 5px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.rdrDayToday .rdrDayNumber span{\n font-weight: 500\n}\n\n.rdrDayToday .rdrDayNumber span:after{\n content: '';\n position: absolute;\n bottom: 4px;\n left: 50%;\n transform: translate(-50%, 0);\n width: 18px;\n height: 2px;\n border-radius: 2px;\n background: #3d91ff;\n }\n\n.rdrDayToday:not(.rdrDayPassive) .rdrInRange ~ .rdrDayNumber span:after,.rdrDayToday:not(.rdrDayPassive) .rdrStartEdge ~ .rdrDayNumber span:after,.rdrDayToday:not(.rdrDayPassive) .rdrEndEdge ~ .rdrDayNumber span:after,.rdrDayToday:not(.rdrDayPassive) .rdrSelected ~ .rdrDayNumber span:after{\n background: #fff;\n }\n\n.rdrDay:not(.rdrDayPassive) .rdrInRange ~ .rdrDayNumber span,.rdrDay:not(.rdrDayPassive) .rdrStartEdge ~ .rdrDayNumber span,.rdrDay:not(.rdrDayPassive) .rdrEndEdge ~ .rdrDayNumber span,.rdrDay:not(.rdrDayPassive) .rdrSelected ~ .rdrDayNumber span{\n color: rgba(255, 255, 255, 0.85);\n }\n\n.rdrSelected, .rdrInRange, .rdrStartEdge, .rdrEndEdge{\n background: currentColor;\n position: absolute;\n top: 5px;\n left: 0;\n right: 0;\n bottom: 5px;\n}\n\n.rdrSelected{\n left: 2px;\n right: 2px;\n}\n\n.rdrInRange{}\n\n.rdrStartEdge{\n border-top-left-radius: 1.042em;\n border-bottom-left-radius: 1.042em;\n left: 2px;\n}\n\n.rdrEndEdge{\n border-top-right-radius: 1.042em;\n border-bottom-right-radius: 1.042em;\n right: 2px;\n}\n\n.rdrSelected{\n border-radius: 1.042em;\n}\n\n.rdrDayStartOfMonth .rdrInRange, .rdrDayStartOfMonth .rdrEndEdge, .rdrDayStartOfWeek .rdrInRange, .rdrDayStartOfWeek .rdrEndEdge{\n border-top-left-radius: 1.042em;\n border-bottom-left-radius: 1.042em;\n left: 2px;\n }\n\n.rdrDayEndOfMonth .rdrInRange, .rdrDayEndOfMonth .rdrStartEdge, .rdrDayEndOfWeek .rdrInRange, .rdrDayEndOfWeek .rdrStartEdge{\n border-top-right-radius: 1.042em;\n border-bottom-right-radius: 1.042em;\n right: 2px;\n }\n\n.rdrDayStartOfMonth .rdrDayInPreview, .rdrDayStartOfMonth .rdrDayEndPreview, .rdrDayStartOfWeek .rdrDayInPreview, .rdrDayStartOfWeek .rdrDayEndPreview{\n border-top-left-radius: 1.333em;\n border-bottom-left-radius: 1.333em;\n border-left-width: 1px;\n left: 0px;\n }\n\n.rdrDayEndOfMonth .rdrDayInPreview, .rdrDayEndOfMonth .rdrDayStartPreview, .rdrDayEndOfWeek .rdrDayInPreview, .rdrDayEndOfWeek .rdrDayStartPreview{\n border-top-right-radius: 1.333em;\n border-bottom-right-radius: 1.333em;\n border-right-width: 1px;\n right: 0px;\n }\n\n.rdrDayStartPreview, .rdrDayInPreview, .rdrDayEndPreview{\n background: rgba(255, 255, 255, 0.09);\n position: absolute;\n top: 3px;\n left: 0px;\n right: 0px;\n bottom: 3px;\n pointer-events: none;\n border: 0px solid currentColor;\n z-index: 1;\n}\n\n.rdrDayStartPreview{\n border-top-width: 1px;\n border-left-width: 1px;\n border-bottom-width: 1px;\n border-top-left-radius: 1.333em;\n border-bottom-left-radius: 1.333em;\n left: 0px;\n}\n\n.rdrDayInPreview{\n border-top-width: 1px;\n border-bottom-width: 1px;\n}\n\n.rdrDayEndPreview{\n border-top-width: 1px;\n border-right-width: 1px;\n border-bottom-width: 1px;\n border-top-right-radius: 1.333em;\n border-bottom-right-radius: 1.333em;\n right: 2px;\n right: 0px;\n}\n\n.rdrDefinedRangesWrapper{\n font-size: 12px;\n width: 226px;\n border-right: solid 1px #eff2f7;\n background: #fff;\n}\n\n.rdrDefinedRangesWrapper .rdrStaticRangeSelected{\n color: currentColor;\n font-weight: 600;\n }\n\n.rdrStaticRange{\n border: 0;\n cursor: pointer;\n display: block;\n outline: 0;\n border-bottom: 1px solid #eff2f7;\n padding: 0;\n background: #fff\n}\n\n.rdrStaticRange:hover .rdrStaticRangeLabel,.rdrStaticRange:focus .rdrStaticRangeLabel{\n background: #eff2f7;\n }\n\n.rdrStaticRangeLabel{\n display: block;\n outline: 0;\n line-height: 18px;\n padding: 10px 20px;\n text-align: left;\n}\n\n.rdrInputRanges{\n padding: 10px 0;\n}\n\n.rdrInputRange{\n align-items: center;\n padding: 5px 20px;\n}\n\n.rdrInputRangeInput{\n width: 30px;\n height: 30px;\n line-height: 30px;\n border-radius: 4px;\n text-align: center;\n border: solid 1px rgb(222, 231, 235);\n margin-right: 10px;\n color: rgb(108, 118, 122)\n}\n\n.rdrInputRangeInput:focus, .rdrInputRangeInput:hover{\n border-color: rgb(180, 191, 196);\n outline: 0;\n color: #333;\n }\n\n.rdrCalendarWrapper:not(.rdrDateRangeWrapper) .rdrDayHovered .rdrDayNumber:after{\n content: '';\n border: 1px solid currentColor;\n border-radius: 1.333em;\n position: absolute;\n top: -2px;\n bottom: -2px;\n left: 0px;\n right: 0px;\n background: transparent;\n}\n\n.rdrDayPassive{\n pointer-events: none;\n}\n\n.rdrDayPassive .rdrDayNumber span{\n color: #d5dce0;\n }\n\n.rdrDayPassive .rdrInRange, .rdrDayPassive .rdrStartEdge, .rdrDayPassive .rdrEndEdge, .rdrDayPassive .rdrSelected, .rdrDayPassive .rdrDayStartPreview, .rdrDayPassive .rdrDayInPreview, .rdrDayPassive .rdrDayEndPreview{\n display: none;\n }\n\n.rdrDayDisabled {\n background-color: rgb(248, 248, 248);\n}\n\n.rdrDayDisabled .rdrDayNumber span{\n color: #aeb9bf;\n }\n\n.rdrDayDisabled .rdrInRange, .rdrDayDisabled .rdrStartEdge, .rdrDayDisabled .rdrEndEdge, .rdrDayDisabled .rdrSelected, .rdrDayDisabled .rdrDayStartPreview, .rdrDayDisabled .rdrDayInPreview, .rdrDayDisabled .rdrDayEndPreview{\n filter: grayscale(100%) opacity(60%);\n }\n\n.rdrMonthName{\n text-align: left;\n font-weight: 600;\n color: #849095;\n padding: 0.833em;\n}";
|
|
703
|
-
// Combined CSS (styles + theme)
|
|
704
|
-
var REACT_DATE_RANGE_COMBINED_CSS = REACT_DATE_RANGE_STYLES_CSS + "\n\n" + REACT_DATE_RANGE_THEME_CSS;
|
|
705
|
-
|
|
706
|
-
function _array_like_to_array$1(arr, len) {
|
|
707
|
-
if (len == null || len > arr.length) len = arr.length;
|
|
708
|
-
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
709
|
-
return arr2;
|
|
710
|
-
}
|
|
711
|
-
function _array_with_holes$1(arr) {
|
|
712
|
-
if (Array.isArray(arr)) return arr;
|
|
713
|
-
}
|
|
714
|
-
function _iterable_to_array_limit$1(arr, i) {
|
|
715
|
-
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
|
|
716
|
-
if (_i == null) return;
|
|
717
|
-
var _arr = [];
|
|
718
|
-
var _n = true;
|
|
719
|
-
var _d = false;
|
|
720
|
-
var _s, _e;
|
|
721
|
-
try {
|
|
722
|
-
for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
|
|
723
|
-
_arr.push(_s.value);
|
|
724
|
-
if (i && _arr.length === i) break;
|
|
725
|
-
}
|
|
726
|
-
} catch (err) {
|
|
727
|
-
_d = true;
|
|
728
|
-
_e = err;
|
|
729
|
-
} finally{
|
|
730
|
-
try {
|
|
731
|
-
if (!_n && _i["return"] != null) _i["return"]();
|
|
732
|
-
} finally{
|
|
733
|
-
if (_d) throw _e;
|
|
734
|
-
}
|
|
735
|
-
}
|
|
736
|
-
return _arr;
|
|
737
|
-
}
|
|
738
|
-
function _non_iterable_rest$1() {
|
|
739
|
-
throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
740
|
-
}
|
|
741
|
-
function _sliced_to_array$1(arr, i) {
|
|
742
|
-
return _array_with_holes$1(arr) || _iterable_to_array_limit$1(arr, i) || _unsupported_iterable_to_array$1(arr, i) || _non_iterable_rest$1();
|
|
743
|
-
}
|
|
744
|
-
function _unsupported_iterable_to_array$1(o, minLen) {
|
|
745
|
-
if (!o) return;
|
|
746
|
-
if (typeof o === "string") return _array_like_to_array$1(o, minLen);
|
|
747
|
-
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
748
|
-
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
749
|
-
if (n === "Map" || n === "Set") return Array.from(n);
|
|
750
|
-
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$1(o, minLen);
|
|
751
|
-
}
|
|
752
|
-
var ReactDateRange = function(param) {
|
|
753
|
-
var className = param.className, item = param.item, onChange = param.onChange, dates = param.dates, date = param.date;
|
|
754
|
-
// 動態注入 React Date Range CSS,避免外部專案需要手動 import CSS
|
|
755
|
-
baseSwitch.useInjectGlobalCSS(REACT_DATE_RANGE_COMBINED_CSS, "react-date-range-styles");
|
|
756
|
-
var _useState = _sliced_to_array$1(React.useState("zhTW"), 1), locale = _useState[0];
|
|
757
|
-
var _useState1 = _sliced_to_array$1(React.useState(null), 2), calendarData = _useState1[0], setCalendarData = _useState1[1];
|
|
758
|
-
var _useState2 = _sliced_to_array$1(React.useState({
|
|
759
|
-
startDate: new Date(),
|
|
760
|
-
endDate: dateFns.addDays(new Date(), 7),
|
|
761
|
-
key: "selection"
|
|
762
|
-
}), 2), range = _useState2[0], setRange = _useState2[1];
|
|
763
|
-
var _useState3 = _sliced_to_array$1(React.useState(false), 2), open = _useState3[0], setOpen = _useState3[1];
|
|
764
|
-
var refOne = React.useRef(null);
|
|
765
|
-
var hideOnEscape = function(e) {
|
|
766
|
-
if (e.key === "Escape") {
|
|
767
|
-
setOpen(false);
|
|
768
|
-
}
|
|
769
|
-
};
|
|
770
|
-
var hideOnClickOutside = function(e) {
|
|
771
|
-
if (refOne.current && !refOne.current.contains(e.target)) {
|
|
772
|
-
setOpen(false);
|
|
773
|
-
}
|
|
774
|
-
};
|
|
775
|
-
React.useEffect(function() {
|
|
776
|
-
setCalendarData(date || null);
|
|
777
|
-
}, [
|
|
778
|
-
date
|
|
779
|
-
]);
|
|
780
|
-
React.useEffect(function() {
|
|
781
|
-
if (!dates) return;
|
|
782
|
-
setRange(dates);
|
|
783
|
-
}, [
|
|
784
|
-
dates
|
|
785
|
-
]);
|
|
786
|
-
React.useEffect(function() {
|
|
787
|
-
document.addEventListener("keydown", hideOnEscape, true);
|
|
788
|
-
document.addEventListener("click", hideOnClickOutside, true);
|
|
789
|
-
return function() {
|
|
790
|
-
document.removeEventListener("keydown", hideOnEscape, true);
|
|
791
|
-
document.removeEventListener("click", hideOnClickOutside, true);
|
|
792
|
-
};
|
|
793
|
-
}, []);
|
|
794
|
-
var formatDates = function() {
|
|
795
|
-
if (!range) return;
|
|
796
|
-
var startDate = range.startDate, endDate = range.endDate;
|
|
797
|
-
return "".concat(dateFns.format(startDate, "yyyy-MM-dd"), " ~ ").concat(dateFns.format(endDate, "yyyy-MM-dd"));
|
|
798
|
-
};
|
|
799
|
-
var formatDate = calendarData ? dateFns.format(calendarData, (item === null || item === void 0 ? void 0 : item.dateDisplayFormat) || "yyyy-MM-dd") : "";
|
|
800
|
-
return /*#__PURE__*/ jsxRuntime.jsxs("div", {
|
|
801
|
-
className: [
|
|
802
|
-
className,
|
|
803
|
-
"relative"
|
|
804
|
-
].join(" "),
|
|
805
|
-
children: [
|
|
806
|
-
(item === null || item === void 0 ? void 0 : item.label) && /*#__PURE__*/ jsxRuntime.jsx("div", {
|
|
807
|
-
className: "text-gray-700 font-medium mb-2 h-6",
|
|
808
|
-
children: item === null || item === void 0 ? void 0 : item.label
|
|
809
|
-
}),
|
|
810
|
-
/*#__PURE__*/ jsxRuntime.jsx("input", {
|
|
811
|
-
className: "border-solid border rounded p-2 h-10 w-full timePicker border-gray-300",
|
|
812
|
-
name: item === null || item === void 0 ? void 0 : item.name,
|
|
813
|
-
onClick: function() {
|
|
814
|
-
return setOpen(function(openState) {
|
|
815
|
-
return !openState;
|
|
816
|
-
});
|
|
817
|
-
},
|
|
818
|
-
placeholder: item === null || item === void 0 ? void 0 : item.placeholder,
|
|
819
|
-
value: (item === null || item === void 0 ? void 0 : item.type) === "date" ? formatDate : formatDates(),
|
|
820
|
-
autoComplete: "off"
|
|
821
|
-
}),
|
|
822
|
-
open && /*#__PURE__*/ jsxRuntime.jsxs("div", {
|
|
823
|
-
className: "absolute top-[72px] left-0 z-50 shadow-md",
|
|
824
|
-
ref: refOne,
|
|
825
|
-
children: [
|
|
826
|
-
open && (item === null || item === void 0 ? void 0 : item.type) === "date" && /*#__PURE__*/ jsxRuntime.jsx(reactDateRange.Calendar, {
|
|
827
|
-
data: calendarData,
|
|
828
|
-
locale: locales__namespace[locale],
|
|
829
|
-
dateDisplayFormat: item === null || item === void 0 ? void 0 : item.dateDisplayFormat,
|
|
830
|
-
onChange: function(value) {
|
|
831
|
-
setCalendarData(value);
|
|
832
|
-
if (onChange) onChange(value);
|
|
833
|
-
setOpen(false);
|
|
834
|
-
}
|
|
835
|
-
}),
|
|
836
|
-
open && (item === null || item === void 0 ? void 0 : item.type) === "dateRange" && /*#__PURE__*/ jsxRuntime.jsx(reactDateRange.DateRange, {
|
|
837
|
-
editableDateInputs: true,
|
|
838
|
-
onChange: function(value) {
|
|
839
|
-
setRange(value.selection);
|
|
840
|
-
if (onChange) onChange(value.selection);
|
|
841
|
-
},
|
|
842
|
-
ranges: [
|
|
843
|
-
range
|
|
844
|
-
],
|
|
845
|
-
locale: locales__namespace[locale],
|
|
846
|
-
dateDisplayFormat: "yyyy.MM.dd"
|
|
847
|
-
})
|
|
848
|
-
]
|
|
849
|
-
})
|
|
850
|
-
]
|
|
851
|
-
});
|
|
852
|
-
};
|
|
853
|
-
|
|
854
551
|
function _define_property$4(obj, key, value) {
|
|
855
552
|
if (key in obj) {
|
|
856
553
|
Object.defineProperty(obj, key, {
|
|
@@ -1100,6 +797,136 @@ var InputOTPSeparator = /*#__PURE__*/ React__namespace.forwardRef(function(_para
|
|
|
1100
797
|
}));
|
|
1101
798
|
});
|
|
1102
799
|
|
|
800
|
+
var phone = /^09\d{8}$/;
|
|
801
|
+
var email = /^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/i;
|
|
802
|
+
var birthday = /^(19|20)\d\d[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])$/;
|
|
803
|
+
var carrier = /^\/[0-9A-Z.+-]{7}$/;
|
|
804
|
+
var Regex = {
|
|
805
|
+
phone: phone,
|
|
806
|
+
email: email,
|
|
807
|
+
birthday: birthday,
|
|
808
|
+
carrier: carrier
|
|
809
|
+
};
|
|
810
|
+
|
|
811
|
+
var verifyTaiwanIdIntermediateString = function(input) {
|
|
812
|
+
var idArray = input.split("");
|
|
813
|
+
var intRadix = 10;
|
|
814
|
+
var TAIWAN_ID_LOCALE_CODE_LIST = [
|
|
815
|
+
1,
|
|
816
|
+
10,
|
|
817
|
+
19,
|
|
818
|
+
28,
|
|
819
|
+
37,
|
|
820
|
+
46,
|
|
821
|
+
55,
|
|
822
|
+
64,
|
|
823
|
+
39,
|
|
824
|
+
73,
|
|
825
|
+
82,
|
|
826
|
+
2,
|
|
827
|
+
11,
|
|
828
|
+
20,
|
|
829
|
+
48,
|
|
830
|
+
29,
|
|
831
|
+
38,
|
|
832
|
+
47,
|
|
833
|
+
56,
|
|
834
|
+
65,
|
|
835
|
+
74,
|
|
836
|
+
83,
|
|
837
|
+
21,
|
|
838
|
+
3,
|
|
839
|
+
12,
|
|
840
|
+
30
|
|
841
|
+
];
|
|
842
|
+
var RESIDENT_CERTIFICATE_NUMBER_LIST = [
|
|
843
|
+
"0",
|
|
844
|
+
"1",
|
|
845
|
+
"2",
|
|
846
|
+
"3",
|
|
847
|
+
"4",
|
|
848
|
+
"5",
|
|
849
|
+
"6",
|
|
850
|
+
"7",
|
|
851
|
+
"4",
|
|
852
|
+
"8",
|
|
853
|
+
"9",
|
|
854
|
+
"0",
|
|
855
|
+
"1",
|
|
856
|
+
"2",
|
|
857
|
+
"5",
|
|
858
|
+
"3",
|
|
859
|
+
"4",
|
|
860
|
+
"5",
|
|
861
|
+
"6",
|
|
862
|
+
"7",
|
|
863
|
+
"8",
|
|
864
|
+
"9",
|
|
865
|
+
"2",
|
|
866
|
+
"0",
|
|
867
|
+
"1",
|
|
868
|
+
"3"
|
|
869
|
+
];
|
|
870
|
+
// if is not a number (居留證編號)
|
|
871
|
+
// eslint-disable-next-line no-restricted-globals
|
|
872
|
+
if (isNaN(parseInt(idArray[1], intRadix))) {
|
|
873
|
+
idArray[1] = RESIDENT_CERTIFICATE_NUMBER_LIST[input.charCodeAt(1) - "A".charCodeAt(0)];
|
|
874
|
+
}
|
|
875
|
+
var result = idArray.reduce(function(sum, n, index) {
|
|
876
|
+
if (index === 0) {
|
|
877
|
+
return sum + TAIWAN_ID_LOCALE_CODE_LIST[idArray[0].charCodeAt(0) - "A".charCodeAt(0)];
|
|
878
|
+
}
|
|
879
|
+
if (index === 9) {
|
|
880
|
+
return sum + parseInt(idArray[9], intRadix);
|
|
881
|
+
}
|
|
882
|
+
return sum + parseInt(idArray[index], intRadix) * (9 - index);
|
|
883
|
+
}, 0);
|
|
884
|
+
if (result % 10 === 0) {
|
|
885
|
+
return true;
|
|
886
|
+
}
|
|
887
|
+
return false;
|
|
888
|
+
};
|
|
889
|
+
var verifyId = function(input) {
|
|
890
|
+
var regex = /^[A-Z][1,2,8,9]\d{8}$/;
|
|
891
|
+
if (!regex.test(input)) {
|
|
892
|
+
return false;
|
|
893
|
+
}
|
|
894
|
+
return verifyTaiwanIdIntermediateString(input);
|
|
895
|
+
};
|
|
896
|
+
var verifyTaxId = function(idStr) {
|
|
897
|
+
var regex = /^\d{8}$/;
|
|
898
|
+
if (!regex.test(idStr)) {
|
|
899
|
+
console.log("Fail, 長度錯誤");
|
|
900
|
+
return false;
|
|
901
|
+
}
|
|
902
|
+
var len = 8;
|
|
903
|
+
var idArray = new Array(len);
|
|
904
|
+
var weight = [
|
|
905
|
+
1,
|
|
906
|
+
2,
|
|
907
|
+
1,
|
|
908
|
+
2,
|
|
909
|
+
1,
|
|
910
|
+
2,
|
|
911
|
+
4,
|
|
912
|
+
1
|
|
913
|
+
];
|
|
914
|
+
var sum = 0;
|
|
915
|
+
// eslint-disable-next-line no-plusplus
|
|
916
|
+
for(var i = 0; i < len; i++){
|
|
917
|
+
idArray[i] = parseInt(idStr[i], 10);
|
|
918
|
+
var p = idArray[i] * weight[i];
|
|
919
|
+
var s = Math.floor(p / 10) + p % 10;
|
|
920
|
+
sum += s;
|
|
921
|
+
}
|
|
922
|
+
var checkNumber = 5;
|
|
923
|
+
var isLegal = sum % checkNumber === 0 || (sum + 1) % checkNumber === 0 && idArray[6] === 7;
|
|
924
|
+
if (!isLegal) {
|
|
925
|
+
console.log("Fail, 不合法的統一編號驗證");
|
|
926
|
+
}
|
|
927
|
+
return isLegal;
|
|
928
|
+
};
|
|
929
|
+
|
|
1103
930
|
function _define_property$2(obj, key, value) {
|
|
1104
931
|
if (key in obj) {
|
|
1105
932
|
Object.defineProperty(obj, key, {
|
|
@@ -2141,19 +1968,18 @@ var InputOTPs = function(param) {
|
|
|
2141
1968
|
exports.Button = input.Button;
|
|
2142
1969
|
exports.Input = input.Input;
|
|
2143
1970
|
exports.buttonVariants = input.buttonVariants;
|
|
2144
|
-
exports.BaseSwitch = baseSwitch.BaseSwitch;
|
|
2145
|
-
exports.Select = baseSwitch.Select;
|
|
2146
|
-
exports.SelectContent = baseSwitch.SelectContent;
|
|
2147
|
-
exports.SelectGroup = baseSwitch.SelectGroup;
|
|
2148
|
-
exports.SelectItem = baseSwitch.SelectItem;
|
|
2149
|
-
exports.SelectLabel = baseSwitch.SelectLabel;
|
|
2150
|
-
exports.SelectScrollDownButton = baseSwitch.SelectScrollDownButton;
|
|
2151
|
-
exports.SelectScrollUpButton = baseSwitch.SelectScrollUpButton;
|
|
2152
|
-
exports.SelectSeparator = baseSwitch.SelectSeparator;
|
|
2153
|
-
exports.SelectTrigger = baseSwitch.SelectTrigger;
|
|
2154
|
-
exports.SelectValue = baseSwitch.SelectValue;
|
|
2155
|
-
exports.validateMsg = baseSwitch.validateMsg;
|
|
2156
1971
|
exports.CustomSelect = CustomSelect.CustomSelect;
|
|
1972
|
+
exports.Select = CustomSelect.Select;
|
|
1973
|
+
exports.SelectContent = CustomSelect.SelectContent;
|
|
1974
|
+
exports.SelectGroup = CustomSelect.SelectGroup;
|
|
1975
|
+
exports.SelectItem = CustomSelect.SelectItem;
|
|
1976
|
+
exports.SelectLabel = CustomSelect.SelectLabel;
|
|
1977
|
+
exports.SelectScrollDownButton = CustomSelect.SelectScrollDownButton;
|
|
1978
|
+
exports.SelectScrollUpButton = CustomSelect.SelectScrollUpButton;
|
|
1979
|
+
exports.SelectSeparator = CustomSelect.SelectSeparator;
|
|
1980
|
+
exports.SelectTrigger = CustomSelect.SelectTrigger;
|
|
1981
|
+
exports.SelectValue = CustomSelect.SelectValue;
|
|
1982
|
+
exports.validateMsg = common.validateMsg;
|
|
2157
1983
|
exports.Checkbox = Checkbox;
|
|
2158
1984
|
exports.DateRangePicker = DateRangePicker;
|
|
2159
1985
|
exports.Drawer = Drawer;
|
|
@@ -2163,7 +1989,6 @@ exports.InputOTPGroup = InputOTPGroup;
|
|
|
2163
1989
|
exports.InputOTPSeparator = InputOTPSeparator;
|
|
2164
1990
|
exports.InputOTPSlot = InputOTPSlot;
|
|
2165
1991
|
exports.InputOTPs = InputOTPs;
|
|
2166
|
-
exports.ReactDateRange = ReactDateRange;
|
|
2167
1992
|
exports.Regex = Regex;
|
|
2168
1993
|
exports.SingleDatePicker = SingleDatePicker;
|
|
2169
1994
|
exports.Spin = Spin;
|