@royaltics/ui 1.0.0

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.
Files changed (78) hide show
  1. package/README.md +84 -0
  2. package/dist/buttons/Button.d.ts +19 -0
  3. package/dist/buttons/Button.d.ts.map +1 -0
  4. package/dist/buttons/Button.js +12 -0
  5. package/dist/buttons/Button.js.map +1 -0
  6. package/dist/forms/Checkbox.d.ts +18 -0
  7. package/dist/forms/Checkbox.d.ts.map +1 -0
  8. package/dist/forms/Checkbox.js +17 -0
  9. package/dist/forms/Checkbox.js.map +1 -0
  10. package/dist/forms/Input.d.ts +31 -0
  11. package/dist/forms/Input.d.ts.map +1 -0
  12. package/dist/forms/Input.js +35 -0
  13. package/dist/forms/Input.js.map +1 -0
  14. package/dist/forms/InputAutocomplete.d.ts +20 -0
  15. package/dist/forms/InputAutocomplete.d.ts.map +1 -0
  16. package/dist/forms/InputAutocomplete.js +67 -0
  17. package/dist/forms/InputAutocomplete.js.map +1 -0
  18. package/dist/forms/Paginate.d.ts +12 -0
  19. package/dist/forms/Paginate.d.ts.map +1 -0
  20. package/dist/forms/Paginate.js +35 -0
  21. package/dist/forms/Paginate.js.map +1 -0
  22. package/dist/forms/PhotoCard.d.ts +12 -0
  23. package/dist/forms/PhotoCard.d.ts.map +1 -0
  24. package/dist/forms/PhotoCard.js +62 -0
  25. package/dist/forms/PhotoCard.js.map +1 -0
  26. package/dist/forms/PlayerYoutube.d.ts +17 -0
  27. package/dist/forms/PlayerYoutube.d.ts.map +1 -0
  28. package/dist/forms/PlayerYoutube.js +40 -0
  29. package/dist/forms/PlayerYoutube.js.map +1 -0
  30. package/dist/forms/RadioButton.d.ts +16 -0
  31. package/dist/forms/RadioButton.d.ts.map +1 -0
  32. package/dist/forms/RadioButton.js +14 -0
  33. package/dist/forms/RadioButton.js.map +1 -0
  34. package/dist/forms/Select.d.ts +22 -0
  35. package/dist/forms/Select.d.ts.map +1 -0
  36. package/dist/forms/Select.js +36 -0
  37. package/dist/forms/Select.js.map +1 -0
  38. package/dist/forms/TextArea.d.ts +22 -0
  39. package/dist/forms/TextArea.d.ts.map +1 -0
  40. package/dist/forms/TextArea.js +21 -0
  41. package/dist/forms/TextArea.js.map +1 -0
  42. package/dist/forms/ToogleSwitch.d.ts +12 -0
  43. package/dist/forms/ToogleSwitch.d.ts.map +1 -0
  44. package/dist/forms/ToogleSwitch.js +14 -0
  45. package/dist/forms/ToogleSwitch.js.map +1 -0
  46. package/dist/forms/index.d.ts +12 -0
  47. package/dist/forms/index.d.ts.map +1 -0
  48. package/dist/forms/index.js +12 -0
  49. package/dist/forms/index.js.map +1 -0
  50. package/dist/hooks/index.d.ts +4 -0
  51. package/dist/hooks/index.d.ts.map +1 -0
  52. package/dist/hooks/index.js +4 -0
  53. package/dist/hooks/index.js.map +1 -0
  54. package/dist/hooks/useHttpState.d.ts +31 -0
  55. package/dist/hooks/useHttpState.d.ts.map +1 -0
  56. package/dist/hooks/useHttpState.js +100 -0
  57. package/dist/hooks/useHttpState.js.map +1 -0
  58. package/dist/hooks/useNavigatorOnline.d.ts +3 -0
  59. package/dist/hooks/useNavigatorOnline.d.ts.map +1 -0
  60. package/dist/hooks/useNavigatorOnline.js +20 -0
  61. package/dist/hooks/useNavigatorOnline.js.map +1 -0
  62. package/dist/hooks/useRouter.d.ts +9 -0
  63. package/dist/hooks/useRouter.d.ts.map +1 -0
  64. package/dist/hooks/useRouter.js +21 -0
  65. package/dist/hooks/useRouter.js.map +1 -0
  66. package/dist/index.d.ts +9 -0
  67. package/dist/index.d.ts.map +1 -0
  68. package/dist/index.js +11 -0
  69. package/dist/index.js.map +1 -0
  70. package/dist/reducers/index.d.ts +7 -0
  71. package/dist/reducers/index.d.ts.map +1 -0
  72. package/dist/reducers/index.js +8 -0
  73. package/dist/reducers/index.js.map +1 -0
  74. package/dist/validator/validator.d.ts +25 -0
  75. package/dist/validator/validator.d.ts.map +1 -0
  76. package/dist/validator/validator.js +119 -0
  77. package/dist/validator/validator.js.map +1 -0
  78. package/package.json +46 -0
@@ -0,0 +1,119 @@
1
+ export const isEmpty = (data, minLength = 1) => {
2
+ if (data === undefined || data === null || data === '' || data === 0 || data.length < minLength)
3
+ return true;
4
+ return false;
5
+ };
6
+ export const isInteger = (value) => {
7
+ return /^-?\d+$/.test(value);
8
+ };
9
+ export function isFloat(value) {
10
+ return value && typeof value === 'string' && value.includes('.') && !isNaN(Number(value.replace('.', '')));
11
+ }
12
+ export const isUUID = (value) => {
13
+ const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
14
+ return uuidRegex.test(value);
15
+ };
16
+ export const isNumberDocument = (doc_number) => {
17
+ if (!doc_number)
18
+ return false;
19
+ const rgex = new RegExp("^\\d{3}-\\d{3}-\\d{9}$");
20
+ return rgex.test(doc_number);
21
+ };
22
+ export const isEmail = (value) => {
23
+ const rgex = /^[\w-]+([-\.]\w+)*@\w+([-\.]\w+)*\.\w{2,4}$/;
24
+ return Boolean(value) && rgex.test(value);
25
+ };
26
+ export const isURL = (value) => {
27
+ const rgex = /^(https?|ftp):\/\/[^\s/$.?#].[^\s]*$/i;
28
+ return Boolean(value) && rgex.test(value);
29
+ };
30
+ const getValueDefault = (key, rules) => {
31
+ const rule = rules.find(r => r.includes(key));
32
+ return parseFloat(rule?.replace(`${key}:`, "") || "");
33
+ };
34
+ /**
35
+ * Validate forms require reducer<inputs>
36
+ * @param {any} inputs
37
+ * @param rulesObject
38
+ * @returns
39
+ */
40
+ export const isValidForm = (inputs, rulesObject, toast) => {
41
+ let _message = null;
42
+ const types = ['number', 'str', 'array', 'cb', 'email'];
43
+ for (let k of Object.keys(rulesObject)) {
44
+ //Get Type Field
45
+ const { rules, name, message, cb } = rulesObject[k];
46
+ let min = -1, max = 0, verifyMaxMinValue = null;
47
+ let type = 'str';
48
+ for (let _type of types) {
49
+ if (rules.includes(_type)) {
50
+ type = _type;
51
+ break;
52
+ }
53
+ }
54
+ //its is required
55
+ if (rules.includes("req") && isEmpty(inputs[k], 1)) {
56
+ _message = message ?? `El Campo '${name ?? k}' es obligatorio`;
57
+ break;
58
+ }
59
+ if (rules.some(r => r.startsWith("len:"))) {
60
+ type = 'str';
61
+ min = getValueDefault("len", rules);
62
+ max = min;
63
+ }
64
+ if (rules.some(r => r.startsWith("min:"))) {
65
+ min = getValueDefault("min", rules);
66
+ }
67
+ if (rules.some(r => r.startsWith("max:"))) {
68
+ max = getValueDefault("max", rules);
69
+ }
70
+ //it's is number
71
+ if (type === 'number' && inputs[k] !== undefined && isNaN(inputs[k])) {
72
+ _message = `El Campo '${name ?? k}' no es un número válido`;
73
+ break;
74
+ }
75
+ //it's is date
76
+ if (type === 'date' && inputs[k] !== undefined) {
77
+ const defaultDate = new Date(inputs[k]);
78
+ const year = defaultDate.getFullYear();
79
+ if (!defaultDate || year < 2018 || year > 3000) {
80
+ _message = `El Campo '${name ?? k}' no es una Fecha válida`;
81
+ break;
82
+ }
83
+ }
84
+ //Validar Minimos y Maximos
85
+ verifyMaxMinValue = type === 'number' ? Number(inputs[k]) : inputs[k]?.length;
86
+ if (min > -1 && verifyMaxMinValue && verifyMaxMinValue < min) {
87
+ _message = `El Campo '${name ?? k}' no puede ser menor a '${min}' ${type === 'str' ? 'Caracteres' : ''}`;
88
+ break;
89
+ }
90
+ if (max > 0 && verifyMaxMinValue && verifyMaxMinValue > max) {
91
+ _message = `El Campo '${name ?? k}' no puede ser Mayor a '${max}' ${type === 'str' ? 'Caracteres' : ''}`;
92
+ break;
93
+ }
94
+ if (rules.includes("email") && !isEmpty(inputs[k])) {
95
+ const valuesEmailScape = (inputs[k] + ",").split(",");
96
+ for (let value of valuesEmailScape) {
97
+ //permitir clientes con multiples correos
98
+ if (!isEmail(value)) {
99
+ _message = `'${value}' no es un '${name ?? k}' válido. Revisar que sea correcto y no incluya espacios`;
100
+ break;
101
+ }
102
+ }
103
+ }
104
+ //Only for custom rules
105
+ if (rules.includes("cb") && cb !== undefined) {
106
+ const result = cb(inputs[k]);
107
+ const success = typeof result === "boolean" ? result : false;
108
+ const _message_cb = typeof result === "boolean" ? message : result;
109
+ if (!success) {
110
+ _message = _message_cb ?? `El Campo '${name ?? k}' no es válido`;
111
+ break;
112
+ }
113
+ }
114
+ }
115
+ if (_message && toast)
116
+ toast.warn(_message);
117
+ return _message == null;
118
+ };
119
+ //# sourceMappingURL=validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/validator/validator.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,46 @@
1
+ {
2
+ "name": "@royaltics/ui",
3
+ "version": "1.0.0",
4
+ "private": false,
5
+ "main": "dist/index.cjs",
6
+ "module": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "type": "module",
9
+ "files": [
10
+ "dist",
11
+ "dist/ui",
12
+ "dist/utils"
13
+ ],
14
+ "exports": {
15
+ ".": {
16
+ "import": "./dist/index.js",
17
+ "require": "./dist/index.cjs"
18
+ }
19
+ },
20
+ "scripts": {
21
+ "build:ext": "tsc && node fix-extensions.js",
22
+ "build": "tsc && tsc-alias",
23
+ "builds": "tsc && pnpm build:cjs && pnpm build:esm",
24
+ "build:cjs": "tsc --module CommonJS --outDir dist/cjs",
25
+ "build:esm": "tsc --module ESNext --outDir dist/esm"
26
+ },
27
+ "peerDependencies": {
28
+ "react": "^18.0.0",
29
+ "react-dom": "^18.0.0"
30
+ },
31
+ "devDependencies": {
32
+ "@types/react": "^18.0.0",
33
+ "@types/react-dom": "^18.0.0",
34
+ "@types/youtube": "^0.1.0",
35
+ "tsc-alias": "^1.8.10",
36
+ "tsup": "^7.0.0",
37
+ "typescript": "^5.0.0"
38
+ },
39
+ "dependencies": {
40
+ "@heroicons/react": "^2.2.0",
41
+ "classnames": "^2.5.1",
42
+ "query-string": "^9.1.1",
43
+ "react-router-dom": "^7.1.5",
44
+ "react-toastify": "^11.0.3"
45
+ }
46
+ }