@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 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.0",
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';