@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
package/index.esm.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.esm.esm.js
CHANGED
|
@@ -3448,4 +3448,4 @@ var updateAt = function(fieldValues, index, value1) {
|
|
|
3448
3448
|
return _formControl.current;
|
|
3449
3449
|
}
|
|
3450
3450
|
|
|
3451
|
-
export { Controller as C, FormProvider as F,
|
|
3451
|
+
export { Controller as C, FormProvider as F, useFormContext as a, useController as b, useFieldArray as c, useFormState as d, useWatch as e, useForm as u };
|
package/index.esm.js
CHANGED
|
@@ -2,41 +2,26 @@ import { b as buttonVariants, B as Button } from './input.esm.js';
|
|
|
2
2
|
export { B as Button, I as Input, b as buttonVariants } from './input.esm.js';
|
|
3
3
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
4
4
|
import * as React from 'react';
|
|
5
|
-
import React__default, { useState,
|
|
5
|
+
import React__default, { useState, useEffect, useMemo, createContext, useContext, useCallback, forwardRef, useRef } from 'react';
|
|
6
6
|
import * as SwitchPrimitives from '@radix-ui/react-switch';
|
|
7
7
|
import { c as cn } from './utils.esm.js';
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
import { format, addDays } from 'date-fns';
|
|
8
|
+
export { C as CustomSelect, 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 './CustomSelect.esm.js';
|
|
9
|
+
import { format } from 'date-fns';
|
|
11
10
|
import { Calendar as Calendar$1 } from 'lucide-react';
|
|
12
11
|
import { Icon } from '@iconify/react';
|
|
13
12
|
import { DayPicker } from 'react-day-picker';
|
|
14
13
|
import zhTW from 'date-fns/locale/zh-TW';
|
|
15
14
|
import * as PopoverPrimitive from '@radix-ui/react-popover';
|
|
16
|
-
import { Calendar as Calendar$2, DateRange } from 'react-date-range';
|
|
17
|
-
import * as locales from 'react-date-range/dist/locale/index.js';
|
|
18
15
|
import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
|
|
19
16
|
import { CheckIcon } from '@radix-ui/react-icons';
|
|
20
17
|
import { OTPInput, OTPInputContext } from 'input-otp';
|
|
18
|
+
export { v as validateMsg } from './common.esm.js';
|
|
21
19
|
import { clsx } from 'clsx';
|
|
22
|
-
export { C as CustomSelect } from './CustomSelect.esm.js';
|
|
23
20
|
import '@radix-ui/react-slot';
|
|
24
21
|
import 'class-variance-authority';
|
|
25
22
|
import 'tailwind-merge';
|
|
26
|
-
import './index.esm.esm.js';
|
|
27
|
-
import 'next/dynamic';
|
|
28
|
-
import './setPrototypeOf.esm.js';
|
|
29
|
-
import './memoize-one.esm.esm.js';
|
|
30
|
-
import '@emotion/react';
|
|
31
|
-
import 'react-dom';
|
|
32
|
-
import '@mui/material';
|
|
33
|
-
import './styled-components.esm.esm.js';
|
|
34
|
-
import './_tslib.esm.js';
|
|
35
|
-
import './_commonjsHelpers.esm.js';
|
|
36
|
-
import './Modal.esm.js';
|
|
37
23
|
import '@radix-ui/react-select';
|
|
38
|
-
import '
|
|
39
|
-
import 'flatpickr/dist/l10n/zh-tw.js';
|
|
24
|
+
import './_commonjsHelpers.esm.js';
|
|
40
25
|
|
|
41
26
|
function _define_property$7(obj, key, value) {
|
|
42
27
|
if (key in obj) {
|
|
@@ -149,136 +134,6 @@ var Switch = /*#__PURE__*/ React.forwardRef(function(_param, ref) {
|
|
|
149
134
|
});
|
|
150
135
|
Switch.displayName = "Switch";
|
|
151
136
|
|
|
152
|
-
var phone = /^09\d{8}$/;
|
|
153
|
-
var email = /^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/i;
|
|
154
|
-
var birthday = /^(19|20)\d\d[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])$/;
|
|
155
|
-
var carrier = /^\/[0-9A-Z.+-]{7}$/;
|
|
156
|
-
var Regex = {
|
|
157
|
-
phone: phone,
|
|
158
|
-
email: email,
|
|
159
|
-
birthday: birthday,
|
|
160
|
-
carrier: carrier
|
|
161
|
-
};
|
|
162
|
-
|
|
163
|
-
var verifyTaiwanIdIntermediateString = function(input) {
|
|
164
|
-
var idArray = input.split("");
|
|
165
|
-
var intRadix = 10;
|
|
166
|
-
var TAIWAN_ID_LOCALE_CODE_LIST = [
|
|
167
|
-
1,
|
|
168
|
-
10,
|
|
169
|
-
19,
|
|
170
|
-
28,
|
|
171
|
-
37,
|
|
172
|
-
46,
|
|
173
|
-
55,
|
|
174
|
-
64,
|
|
175
|
-
39,
|
|
176
|
-
73,
|
|
177
|
-
82,
|
|
178
|
-
2,
|
|
179
|
-
11,
|
|
180
|
-
20,
|
|
181
|
-
48,
|
|
182
|
-
29,
|
|
183
|
-
38,
|
|
184
|
-
47,
|
|
185
|
-
56,
|
|
186
|
-
65,
|
|
187
|
-
74,
|
|
188
|
-
83,
|
|
189
|
-
21,
|
|
190
|
-
3,
|
|
191
|
-
12,
|
|
192
|
-
30
|
|
193
|
-
];
|
|
194
|
-
var RESIDENT_CERTIFICATE_NUMBER_LIST = [
|
|
195
|
-
"0",
|
|
196
|
-
"1",
|
|
197
|
-
"2",
|
|
198
|
-
"3",
|
|
199
|
-
"4",
|
|
200
|
-
"5",
|
|
201
|
-
"6",
|
|
202
|
-
"7",
|
|
203
|
-
"4",
|
|
204
|
-
"8",
|
|
205
|
-
"9",
|
|
206
|
-
"0",
|
|
207
|
-
"1",
|
|
208
|
-
"2",
|
|
209
|
-
"5",
|
|
210
|
-
"3",
|
|
211
|
-
"4",
|
|
212
|
-
"5",
|
|
213
|
-
"6",
|
|
214
|
-
"7",
|
|
215
|
-
"8",
|
|
216
|
-
"9",
|
|
217
|
-
"2",
|
|
218
|
-
"0",
|
|
219
|
-
"1",
|
|
220
|
-
"3"
|
|
221
|
-
];
|
|
222
|
-
// if is not a number (居留證編號)
|
|
223
|
-
// eslint-disable-next-line no-restricted-globals
|
|
224
|
-
if (isNaN(parseInt(idArray[1], intRadix))) {
|
|
225
|
-
idArray[1] = RESIDENT_CERTIFICATE_NUMBER_LIST[input.charCodeAt(1) - "A".charCodeAt(0)];
|
|
226
|
-
}
|
|
227
|
-
var result = idArray.reduce(function(sum, n, index) {
|
|
228
|
-
if (index === 0) {
|
|
229
|
-
return sum + TAIWAN_ID_LOCALE_CODE_LIST[idArray[0].charCodeAt(0) - "A".charCodeAt(0)];
|
|
230
|
-
}
|
|
231
|
-
if (index === 9) {
|
|
232
|
-
return sum + parseInt(idArray[9], intRadix);
|
|
233
|
-
}
|
|
234
|
-
return sum + parseInt(idArray[index], intRadix) * (9 - index);
|
|
235
|
-
}, 0);
|
|
236
|
-
if (result % 10 === 0) {
|
|
237
|
-
return true;
|
|
238
|
-
}
|
|
239
|
-
return false;
|
|
240
|
-
};
|
|
241
|
-
var verifyId = function(input) {
|
|
242
|
-
var regex = /^[A-Z][1,2,8,9]\d{8}$/;
|
|
243
|
-
if (!regex.test(input)) {
|
|
244
|
-
return false;
|
|
245
|
-
}
|
|
246
|
-
return verifyTaiwanIdIntermediateString(input);
|
|
247
|
-
};
|
|
248
|
-
var verifyTaxId = function(idStr) {
|
|
249
|
-
var regex = /^\d{8}$/;
|
|
250
|
-
if (!regex.test(idStr)) {
|
|
251
|
-
console.log("Fail, 長度錯誤");
|
|
252
|
-
return false;
|
|
253
|
-
}
|
|
254
|
-
var len = 8;
|
|
255
|
-
var idArray = new Array(len);
|
|
256
|
-
var weight = [
|
|
257
|
-
1,
|
|
258
|
-
2,
|
|
259
|
-
1,
|
|
260
|
-
2,
|
|
261
|
-
1,
|
|
262
|
-
2,
|
|
263
|
-
4,
|
|
264
|
-
1
|
|
265
|
-
];
|
|
266
|
-
var sum = 0;
|
|
267
|
-
// eslint-disable-next-line no-plusplus
|
|
268
|
-
for(var i = 0; i < len; i++){
|
|
269
|
-
idArray[i] = parseInt(idStr[i], 10);
|
|
270
|
-
var p = idArray[i] * weight[i];
|
|
271
|
-
var s = Math.floor(p / 10) + p % 10;
|
|
272
|
-
sum += s;
|
|
273
|
-
}
|
|
274
|
-
var checkNumber = 5;
|
|
275
|
-
var isLegal = sum % checkNumber === 0 || (sum + 1) % checkNumber === 0 && idArray[6] === 7;
|
|
276
|
-
if (!isLegal) {
|
|
277
|
-
console.log("Fail, 不合法的統一編號驗證");
|
|
278
|
-
}
|
|
279
|
-
return isLegal;
|
|
280
|
-
};
|
|
281
|
-
|
|
282
137
|
function _define_property$6(obj, key, value) {
|
|
283
138
|
if (key in obj) {
|
|
284
139
|
Object.defineProperty(obj, key, {
|
|
@@ -576,15 +431,15 @@ function DateRangePicker(param) {
|
|
|
576
431
|
});
|
|
577
432
|
}
|
|
578
433
|
|
|
579
|
-
function _array_like_to_array$
|
|
434
|
+
function _array_like_to_array$1(arr, len) {
|
|
580
435
|
if (len == null || len > arr.length) len = arr.length;
|
|
581
436
|
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
582
437
|
return arr2;
|
|
583
438
|
}
|
|
584
|
-
function _array_with_holes$
|
|
439
|
+
function _array_with_holes$1(arr) {
|
|
585
440
|
if (Array.isArray(arr)) return arr;
|
|
586
441
|
}
|
|
587
|
-
function _iterable_to_array_limit$
|
|
442
|
+
function _iterable_to_array_limit$1(arr, i) {
|
|
588
443
|
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
|
|
589
444
|
if (_i == null) return;
|
|
590
445
|
var _arr = [];
|
|
@@ -608,23 +463,23 @@ function _iterable_to_array_limit$2(arr, i) {
|
|
|
608
463
|
}
|
|
609
464
|
return _arr;
|
|
610
465
|
}
|
|
611
|
-
function _non_iterable_rest$
|
|
466
|
+
function _non_iterable_rest$1() {
|
|
612
467
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
613
468
|
}
|
|
614
|
-
function _sliced_to_array$
|
|
615
|
-
return _array_with_holes$
|
|
469
|
+
function _sliced_to_array$1(arr, i) {
|
|
470
|
+
return _array_with_holes$1(arr) || _iterable_to_array_limit$1(arr, i) || _unsupported_iterable_to_array$1(arr, i) || _non_iterable_rest$1();
|
|
616
471
|
}
|
|
617
|
-
function _unsupported_iterable_to_array$
|
|
472
|
+
function _unsupported_iterable_to_array$1(o, minLen) {
|
|
618
473
|
if (!o) return;
|
|
619
|
-
if (typeof o === "string") return _array_like_to_array$
|
|
474
|
+
if (typeof o === "string") return _array_like_to_array$1(o, minLen);
|
|
620
475
|
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
621
476
|
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
622
477
|
if (n === "Map" || n === "Set") return Array.from(n);
|
|
623
|
-
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$
|
|
478
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$1(o, minLen);
|
|
624
479
|
}
|
|
625
480
|
var SingleDatePicker = function(param) {
|
|
626
481
|
var disable = param.disable, onChange = param.onChange;
|
|
627
|
-
var _useState = _sliced_to_array$
|
|
482
|
+
var _useState = _sliced_to_array$1(useState(), 2), date = _useState[0], setDate = _useState[1];
|
|
628
483
|
var handleDate = function(newDate) {
|
|
629
484
|
if (newDate) {
|
|
630
485
|
setDate(newDate);
|
|
@@ -664,164 +519,6 @@ var SingleDatePicker = function(param) {
|
|
|
664
519
|
});
|
|
665
520
|
};
|
|
666
521
|
|
|
667
|
-
/**
|
|
668
|
-
* React Date Range CSS styles as string constants
|
|
669
|
-
* This allows the component to inject styles dynamically without requiring external CSS imports
|
|
670
|
-
*/ // React Date Range main styles
|
|
671
|
-
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}";
|
|
672
|
-
// React Date Range theme (default) styles
|
|
673
|
-
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}";
|
|
674
|
-
// Combined CSS (styles + theme)
|
|
675
|
-
var REACT_DATE_RANGE_COMBINED_CSS = REACT_DATE_RANGE_STYLES_CSS + "\n\n" + REACT_DATE_RANGE_THEME_CSS;
|
|
676
|
-
|
|
677
|
-
function _array_like_to_array$1(arr, len) {
|
|
678
|
-
if (len == null || len > arr.length) len = arr.length;
|
|
679
|
-
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
680
|
-
return arr2;
|
|
681
|
-
}
|
|
682
|
-
function _array_with_holes$1(arr) {
|
|
683
|
-
if (Array.isArray(arr)) return arr;
|
|
684
|
-
}
|
|
685
|
-
function _iterable_to_array_limit$1(arr, i) {
|
|
686
|
-
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
|
|
687
|
-
if (_i == null) return;
|
|
688
|
-
var _arr = [];
|
|
689
|
-
var _n = true;
|
|
690
|
-
var _d = false;
|
|
691
|
-
var _s, _e;
|
|
692
|
-
try {
|
|
693
|
-
for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
|
|
694
|
-
_arr.push(_s.value);
|
|
695
|
-
if (i && _arr.length === i) break;
|
|
696
|
-
}
|
|
697
|
-
} catch (err) {
|
|
698
|
-
_d = true;
|
|
699
|
-
_e = err;
|
|
700
|
-
} finally{
|
|
701
|
-
try {
|
|
702
|
-
if (!_n && _i["return"] != null) _i["return"]();
|
|
703
|
-
} finally{
|
|
704
|
-
if (_d) throw _e;
|
|
705
|
-
}
|
|
706
|
-
}
|
|
707
|
-
return _arr;
|
|
708
|
-
}
|
|
709
|
-
function _non_iterable_rest$1() {
|
|
710
|
-
throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
711
|
-
}
|
|
712
|
-
function _sliced_to_array$1(arr, i) {
|
|
713
|
-
return _array_with_holes$1(arr) || _iterable_to_array_limit$1(arr, i) || _unsupported_iterable_to_array$1(arr, i) || _non_iterable_rest$1();
|
|
714
|
-
}
|
|
715
|
-
function _unsupported_iterable_to_array$1(o, minLen) {
|
|
716
|
-
if (!o) return;
|
|
717
|
-
if (typeof o === "string") return _array_like_to_array$1(o, minLen);
|
|
718
|
-
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
719
|
-
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
720
|
-
if (n === "Map" || n === "Set") return Array.from(n);
|
|
721
|
-
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$1(o, minLen);
|
|
722
|
-
}
|
|
723
|
-
var ReactDateRange = function(param) {
|
|
724
|
-
var className = param.className, item = param.item, onChange = param.onChange, dates = param.dates, date = param.date;
|
|
725
|
-
// 動態注入 React Date Range CSS,避免外部專案需要手動 import CSS
|
|
726
|
-
useInjectGlobalCSS(REACT_DATE_RANGE_COMBINED_CSS, "react-date-range-styles");
|
|
727
|
-
var _useState = _sliced_to_array$1(useState("zhTW"), 1), locale = _useState[0];
|
|
728
|
-
var _useState1 = _sliced_to_array$1(useState(null), 2), calendarData = _useState1[0], setCalendarData = _useState1[1];
|
|
729
|
-
var _useState2 = _sliced_to_array$1(useState({
|
|
730
|
-
startDate: new Date(),
|
|
731
|
-
endDate: addDays(new Date(), 7),
|
|
732
|
-
key: "selection"
|
|
733
|
-
}), 2), range = _useState2[0], setRange = _useState2[1];
|
|
734
|
-
var _useState3 = _sliced_to_array$1(useState(false), 2), open = _useState3[0], setOpen = _useState3[1];
|
|
735
|
-
var refOne = useRef(null);
|
|
736
|
-
var hideOnEscape = function(e) {
|
|
737
|
-
if (e.key === "Escape") {
|
|
738
|
-
setOpen(false);
|
|
739
|
-
}
|
|
740
|
-
};
|
|
741
|
-
var hideOnClickOutside = function(e) {
|
|
742
|
-
if (refOne.current && !refOne.current.contains(e.target)) {
|
|
743
|
-
setOpen(false);
|
|
744
|
-
}
|
|
745
|
-
};
|
|
746
|
-
useEffect(function() {
|
|
747
|
-
setCalendarData(date || null);
|
|
748
|
-
}, [
|
|
749
|
-
date
|
|
750
|
-
]);
|
|
751
|
-
useEffect(function() {
|
|
752
|
-
if (!dates) return;
|
|
753
|
-
setRange(dates);
|
|
754
|
-
}, [
|
|
755
|
-
dates
|
|
756
|
-
]);
|
|
757
|
-
useEffect(function() {
|
|
758
|
-
document.addEventListener("keydown", hideOnEscape, true);
|
|
759
|
-
document.addEventListener("click", hideOnClickOutside, true);
|
|
760
|
-
return function() {
|
|
761
|
-
document.removeEventListener("keydown", hideOnEscape, true);
|
|
762
|
-
document.removeEventListener("click", hideOnClickOutside, true);
|
|
763
|
-
};
|
|
764
|
-
}, []);
|
|
765
|
-
var formatDates = function() {
|
|
766
|
-
if (!range) return;
|
|
767
|
-
var startDate = range.startDate, endDate = range.endDate;
|
|
768
|
-
return "".concat(format(startDate, "yyyy-MM-dd"), " ~ ").concat(format(endDate, "yyyy-MM-dd"));
|
|
769
|
-
};
|
|
770
|
-
var formatDate = calendarData ? format(calendarData, (item === null || item === void 0 ? void 0 : item.dateDisplayFormat) || "yyyy-MM-dd") : "";
|
|
771
|
-
return /*#__PURE__*/ jsxs("div", {
|
|
772
|
-
className: [
|
|
773
|
-
className,
|
|
774
|
-
"relative"
|
|
775
|
-
].join(" "),
|
|
776
|
-
children: [
|
|
777
|
-
(item === null || item === void 0 ? void 0 : item.label) && /*#__PURE__*/ jsx("div", {
|
|
778
|
-
className: "text-gray-700 font-medium mb-2 h-6",
|
|
779
|
-
children: item === null || item === void 0 ? void 0 : item.label
|
|
780
|
-
}),
|
|
781
|
-
/*#__PURE__*/ jsx("input", {
|
|
782
|
-
className: "border-solid border rounded p-2 h-10 w-full timePicker border-gray-300",
|
|
783
|
-
name: item === null || item === void 0 ? void 0 : item.name,
|
|
784
|
-
onClick: function() {
|
|
785
|
-
return setOpen(function(openState) {
|
|
786
|
-
return !openState;
|
|
787
|
-
});
|
|
788
|
-
},
|
|
789
|
-
placeholder: item === null || item === void 0 ? void 0 : item.placeholder,
|
|
790
|
-
value: (item === null || item === void 0 ? void 0 : item.type) === "date" ? formatDate : formatDates(),
|
|
791
|
-
autoComplete: "off"
|
|
792
|
-
}),
|
|
793
|
-
open && /*#__PURE__*/ jsxs("div", {
|
|
794
|
-
className: "absolute top-[72px] left-0 z-50 shadow-md",
|
|
795
|
-
ref: refOne,
|
|
796
|
-
children: [
|
|
797
|
-
open && (item === null || item === void 0 ? void 0 : item.type) === "date" && /*#__PURE__*/ jsx(Calendar$2, {
|
|
798
|
-
data: calendarData,
|
|
799
|
-
locale: locales[locale],
|
|
800
|
-
dateDisplayFormat: item === null || item === void 0 ? void 0 : item.dateDisplayFormat,
|
|
801
|
-
onChange: function(value) {
|
|
802
|
-
setCalendarData(value);
|
|
803
|
-
if (onChange) onChange(value);
|
|
804
|
-
setOpen(false);
|
|
805
|
-
}
|
|
806
|
-
}),
|
|
807
|
-
open && (item === null || item === void 0 ? void 0 : item.type) === "dateRange" && /*#__PURE__*/ jsx(DateRange, {
|
|
808
|
-
editableDateInputs: true,
|
|
809
|
-
onChange: function(value) {
|
|
810
|
-
setRange(value.selection);
|
|
811
|
-
if (onChange) onChange(value.selection);
|
|
812
|
-
},
|
|
813
|
-
ranges: [
|
|
814
|
-
range
|
|
815
|
-
],
|
|
816
|
-
locale: locales[locale],
|
|
817
|
-
dateDisplayFormat: "yyyy.MM.dd"
|
|
818
|
-
})
|
|
819
|
-
]
|
|
820
|
-
})
|
|
821
|
-
]
|
|
822
|
-
});
|
|
823
|
-
};
|
|
824
|
-
|
|
825
522
|
function _define_property$4(obj, key, value) {
|
|
826
523
|
if (key in obj) {
|
|
827
524
|
Object.defineProperty(obj, key, {
|
|
@@ -1071,6 +768,136 @@ var InputOTPSeparator = /*#__PURE__*/ React.forwardRef(function(_param, ref) {
|
|
|
1071
768
|
}));
|
|
1072
769
|
});
|
|
1073
770
|
|
|
771
|
+
var phone = /^09\d{8}$/;
|
|
772
|
+
var email = /^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/i;
|
|
773
|
+
var birthday = /^(19|20)\d\d[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])$/;
|
|
774
|
+
var carrier = /^\/[0-9A-Z.+-]{7}$/;
|
|
775
|
+
var Regex = {
|
|
776
|
+
phone: phone,
|
|
777
|
+
email: email,
|
|
778
|
+
birthday: birthday,
|
|
779
|
+
carrier: carrier
|
|
780
|
+
};
|
|
781
|
+
|
|
782
|
+
var verifyTaiwanIdIntermediateString = function(input) {
|
|
783
|
+
var idArray = input.split("");
|
|
784
|
+
var intRadix = 10;
|
|
785
|
+
var TAIWAN_ID_LOCALE_CODE_LIST = [
|
|
786
|
+
1,
|
|
787
|
+
10,
|
|
788
|
+
19,
|
|
789
|
+
28,
|
|
790
|
+
37,
|
|
791
|
+
46,
|
|
792
|
+
55,
|
|
793
|
+
64,
|
|
794
|
+
39,
|
|
795
|
+
73,
|
|
796
|
+
82,
|
|
797
|
+
2,
|
|
798
|
+
11,
|
|
799
|
+
20,
|
|
800
|
+
48,
|
|
801
|
+
29,
|
|
802
|
+
38,
|
|
803
|
+
47,
|
|
804
|
+
56,
|
|
805
|
+
65,
|
|
806
|
+
74,
|
|
807
|
+
83,
|
|
808
|
+
21,
|
|
809
|
+
3,
|
|
810
|
+
12,
|
|
811
|
+
30
|
|
812
|
+
];
|
|
813
|
+
var RESIDENT_CERTIFICATE_NUMBER_LIST = [
|
|
814
|
+
"0",
|
|
815
|
+
"1",
|
|
816
|
+
"2",
|
|
817
|
+
"3",
|
|
818
|
+
"4",
|
|
819
|
+
"5",
|
|
820
|
+
"6",
|
|
821
|
+
"7",
|
|
822
|
+
"4",
|
|
823
|
+
"8",
|
|
824
|
+
"9",
|
|
825
|
+
"0",
|
|
826
|
+
"1",
|
|
827
|
+
"2",
|
|
828
|
+
"5",
|
|
829
|
+
"3",
|
|
830
|
+
"4",
|
|
831
|
+
"5",
|
|
832
|
+
"6",
|
|
833
|
+
"7",
|
|
834
|
+
"8",
|
|
835
|
+
"9",
|
|
836
|
+
"2",
|
|
837
|
+
"0",
|
|
838
|
+
"1",
|
|
839
|
+
"3"
|
|
840
|
+
];
|
|
841
|
+
// if is not a number (居留證編號)
|
|
842
|
+
// eslint-disable-next-line no-restricted-globals
|
|
843
|
+
if (isNaN(parseInt(idArray[1], intRadix))) {
|
|
844
|
+
idArray[1] = RESIDENT_CERTIFICATE_NUMBER_LIST[input.charCodeAt(1) - "A".charCodeAt(0)];
|
|
845
|
+
}
|
|
846
|
+
var result = idArray.reduce(function(sum, n, index) {
|
|
847
|
+
if (index === 0) {
|
|
848
|
+
return sum + TAIWAN_ID_LOCALE_CODE_LIST[idArray[0].charCodeAt(0) - "A".charCodeAt(0)];
|
|
849
|
+
}
|
|
850
|
+
if (index === 9) {
|
|
851
|
+
return sum + parseInt(idArray[9], intRadix);
|
|
852
|
+
}
|
|
853
|
+
return sum + parseInt(idArray[index], intRadix) * (9 - index);
|
|
854
|
+
}, 0);
|
|
855
|
+
if (result % 10 === 0) {
|
|
856
|
+
return true;
|
|
857
|
+
}
|
|
858
|
+
return false;
|
|
859
|
+
};
|
|
860
|
+
var verifyId = function(input) {
|
|
861
|
+
var regex = /^[A-Z][1,2,8,9]\d{8}$/;
|
|
862
|
+
if (!regex.test(input)) {
|
|
863
|
+
return false;
|
|
864
|
+
}
|
|
865
|
+
return verifyTaiwanIdIntermediateString(input);
|
|
866
|
+
};
|
|
867
|
+
var verifyTaxId = function(idStr) {
|
|
868
|
+
var regex = /^\d{8}$/;
|
|
869
|
+
if (!regex.test(idStr)) {
|
|
870
|
+
console.log("Fail, 長度錯誤");
|
|
871
|
+
return false;
|
|
872
|
+
}
|
|
873
|
+
var len = 8;
|
|
874
|
+
var idArray = new Array(len);
|
|
875
|
+
var weight = [
|
|
876
|
+
1,
|
|
877
|
+
2,
|
|
878
|
+
1,
|
|
879
|
+
2,
|
|
880
|
+
1,
|
|
881
|
+
2,
|
|
882
|
+
4,
|
|
883
|
+
1
|
|
884
|
+
];
|
|
885
|
+
var sum = 0;
|
|
886
|
+
// eslint-disable-next-line no-plusplus
|
|
887
|
+
for(var i = 0; i < len; i++){
|
|
888
|
+
idArray[i] = parseInt(idStr[i], 10);
|
|
889
|
+
var p = idArray[i] * weight[i];
|
|
890
|
+
var s = Math.floor(p / 10) + p % 10;
|
|
891
|
+
sum += s;
|
|
892
|
+
}
|
|
893
|
+
var checkNumber = 5;
|
|
894
|
+
var isLegal = sum % checkNumber === 0 || (sum + 1) % checkNumber === 0 && idArray[6] === 7;
|
|
895
|
+
if (!isLegal) {
|
|
896
|
+
console.log("Fail, 不合法的統一編號驗證");
|
|
897
|
+
}
|
|
898
|
+
return isLegal;
|
|
899
|
+
};
|
|
900
|
+
|
|
1074
901
|
function _define_property$2(obj, key, value) {
|
|
1075
902
|
if (key in obj) {
|
|
1076
903
|
Object.defineProperty(obj, key, {
|
|
@@ -2109,4 +1936,4 @@ var InputOTPs = function(param) {
|
|
|
2109
1936
|
});
|
|
2110
1937
|
};
|
|
2111
1938
|
|
|
2112
|
-
export { Checkbox, DateRangePicker, Drawer, DropDown, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, InputOTPs,
|
|
1939
|
+
export { Checkbox, DateRangePicker, Drawer, DropDown, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, InputOTPs, Regex, SingleDatePicker, Spin, Switch, verifyId, verifyTaiwanIdIntermediateString, verifyTaxId };
|
package/inheritsLoose.cjs.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _extends = require('./extends.cjs.js');
|
|
4
4
|
|
|
5
5
|
function _inheritsLoose(t, o) {
|
|
6
|
-
t.prototype = Object.create(o.prototype), t.prototype.constructor = t,
|
|
6
|
+
t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _extends._setPrototypeOf(t, o);
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
exports._inheritsLoose = _inheritsLoose;
|
package/inheritsLoose.esm.js
CHANGED