uix_validations 0.4.8 → 0.5.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a254f90a464bf33df3268f32d5377fdced7ac3df496822c04e561b1eea2e421d
4
- data.tar.gz: 95cbb87f1c44232884a53a5faab40307d9464c1a14c05680002e37e4a1a6378d
3
+ metadata.gz: 9f42e5cab37cb240ef7553b7854285893179f6077cd6c79176eca95884f61176
4
+ data.tar.gz: 3508693ed965fa9a2807cc8c9fd769f510c345802fbab894b6b63f79efa86f05
5
5
  SHA512:
6
- metadata.gz: ba558ae7f924f986aced1d6d0980e303675ec99842c281d1596e1f293b2ffd3e194eb4cb12f8753e83a7c928b2998befa2e1bbab12422846eb056dc3f042ce28
7
- data.tar.gz: 1ee2527edeeb504527250a499164bb6ecc3c5bd050fe3c54f57d61300aab3706a325b61d5ad1e5929a1628f38f1789e13af93a30b43131c4ee6a271a522045da
6
+ metadata.gz: 11bd1069604223f419cea9bbae0a77cbc9223d493392e2dc06c97741815970820d6099251b5ec47fce5809d8589bedbf090e29bf2db68f94759ae72120cac5e9
7
+ data.tar.gz: 2c651e8b7fc01c5061c738ce91a67206947ea12fbd8ccd291caf983141f6624c323821af06fc0baab764d70fd365b0caec3abd7c32c2044ec5e25906a5f190a5
@@ -0,0 +1,106 @@
1
+ // Regex list
2
+ var numberPattern = /^[0-9]*$/;
3
+ var characterPattern = /^[a-zA-Z]*$/;
4
+ var nonDigitPattern = /^[^0-9]*$/;
5
+
6
+ // From https://stackoverflow.com/questions/46155/how-to-validate-an-email-address-in-javascript
7
+ var emailPattern = /\S+@\S+\.\S+/;
8
+
9
+ // From https://stackoverflow.com/questions/14850553/javascript-regex-for-password-containing-at-least-8-characters-1-number-1-uppe
10
+ var strongPasswordPattern = /^(?=.*\d)[0-9a-zA-Z]{8,}$/;
11
+
12
+ var veryStrongPasswordPattern = /^(?=.*[A-Z])(?=.*[!@#$&*.,_-])(?=.*[0-9])(?=.*[a-z]).{8,}$/
13
+
14
+ // Flow
15
+ // onClick -> set default
16
+ // checkinputValue->
17
+ // if (while is typing value is valid) { SET VALID }
18
+ // else { SET default }
19
+ // checkinputout->
20
+ // if (onFocusOut is valid) { SET VALID }
21
+ // else { SET INVALID }
22
+
23
+ // Generic functions
24
+ function validatePattern(fieldId, validId, regex) {
25
+ var field = document.querySelector(fieldId);
26
+ field.addEventListener("click", () => {
27
+ var valid = document.querySelector(validId);
28
+ setDefaultClass(valid);
29
+ checkInputValue(field, valid, regex)
30
+ checkInputOut(field, valid, regex);
31
+ });
32
+ }
33
+ function checkInputValue(field, valid, regex) {
34
+ field.addEventListener("keyup", () => {
35
+ switchClasses(field, valid, regex, ['uix-defaulf', 'uix-valid']);
36
+ // find way to get class type
37
+ });
38
+ }
39
+ function checkInputOut(field, valid, regex) {
40
+ field.addEventListener("focusout", () => {
41
+ switchClasses(field, valid, regex);
42
+ // find way to get class type
43
+ });
44
+ }
45
+ function setClasses(element, classIn) {
46
+ element.className = 'uix-validation ' + classIn;
47
+ }
48
+ function setDefaultClass(element) {
49
+ element.className = 'uix-validation uix-default';
50
+ element.style.visibility = 'inherit';
51
+ }
52
+ function switchClasses(field, valid, regex, classes = ['uix-invalid', 'uix-valid']) {
53
+ if(regex.test(field.value) && field.value != '') {
54
+ setClasses(valid, classes[1]);
55
+ }
56
+ else {
57
+ setClasses(valid, classes[0]);
58
+ }
59
+ }
60
+
61
+ // Specific functions
62
+ // Number
63
+ function validateNumber(fieldId, validId) {
64
+ validatePattern(fieldId, validId, numberPattern);
65
+ }
66
+ function validateNumberRange(fieldId, validId, range=[0,10]) {
67
+ var numberRangePattern = new RegExp(`^\\d{`+range[0]+`,`+range[1]+`}$`);
68
+ validatePattern(fieldId, validId, numberRangePattern);
69
+ }
70
+ // Character
71
+ function validateCharacter(fieldId, validId) {
72
+ validatePattern(fieldId, validId, characterPattern);
73
+ }
74
+ function validateCharacterLength(fieldId, validId, range=[0,10]) {
75
+ var characterRangePattern = new RegExp(`^\[a-zA-Z]{`+range[0]+`,`+range[1]+`}$`);
76
+ validatePattern(fieldId, validId, characterRangePattern);
77
+ }
78
+ // Non digit
79
+ function validateNonDigit(fieldId, validId) {
80
+ validatePattern(fieldId, validId, nonDigitPattern);
81
+ }
82
+ function validateNonDigitLength(fieldId, validId, range=[0,10]) {
83
+ var nonDigitRangePattern = new RegExp(`^\\D{`+range[0]+`,`+range[1]+`}$`);
84
+ validatePattern(fieldId, validId, nonDigitRangePattern);
85
+ }
86
+ // Email
87
+ function validateEmail(fieldId, validId) {
88
+ validatePattern(fieldId, validId, emailPattern);
89
+ }
90
+ // Range
91
+ function validateJustLength(fieldId, validId, range=[0,10]) {
92
+ var rangePattern = new RegExp(`^\\S{`+range[0]+`,`+range[1]+`}$`);
93
+ validatePattern(fieldId, validId, rangePattern);
94
+ }
95
+ // Any regex
96
+ function validateRegex(fieldId, validId, regex) {
97
+ validatePattern(fieldId, validId, regex);
98
+ }
99
+ // Strong Password
100
+ function validateStrongPassword(fieldId, validId) {
101
+ validatePattern(fieldId, validId, strongPasswordPattern);
102
+ }
103
+ // Very Strong Password
104
+ function validateVeryStrongPassword(fieldId, validId) {
105
+ validatePattern(fieldId, validId, veryStrongPasswordPattern);
106
+ }
@@ -0,0 +1,23 @@
1
+ .uix-validation {
2
+ padding: 1%;
3
+ font-size: 90%;
4
+ color: #232323;
5
+ width: 100%;
6
+ visibility: hidden;
7
+ }
8
+ .uix-default {
9
+ background: #ffffff;
10
+ }
11
+ .uix-valid {
12
+ color: #04a100;
13
+ font-weight: 400;
14
+ // background: #64e066;
15
+
16
+ }
17
+ .uix-invalid {
18
+ color: #cf0a0a;
19
+ font-weight: 400;
20
+ // background: #ff8484;
21
+ }
22
+
23
+ // old #5bff5e
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: uix_validations
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.8
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lucas Andrade
@@ -65,7 +65,9 @@ email:
65
65
  executables: []
66
66
  extensions: []
67
67
  extra_rdoc_files: []
68
- files: []
68
+ files:
69
+ - vendor/assets/javascripts/uix_validations.js
70
+ - vendor/assets/stylesheets/uix_validations.scss
69
71
  homepage: https://github.com/LucasAndrad/uix_validations
70
72
  licenses:
71
73
  - MIT