@cocreate/validation 1.11.5 → 1.11.7
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/CHANGELOG.md +14 -0
- package/package.json +1 -1
- package/src/index.js +2 -2
- package/src/validations/matches.js +22 -22
- package/src/validations/required.js +17 -17
- package/src/validations/subdomain.js +24 -24
- package/src/validations/unique.js +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
## [1.11.7](https://github.com/CoCreate-app/CoCreate-validation/compare/v1.11.6...v1.11.7) (2023-10-19)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* declartion of render functions using object spread ([b51b172](https://github.com/CoCreate-app/CoCreate-validation/commit/b51b17283c46c6c777d70f4f1ad853cec9100caf))
|
|
7
|
+
|
|
8
|
+
## [1.11.6](https://github.com/CoCreate-app/CoCreate-validation/compare/v1.11.5...v1.11.6) (2023-10-17)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* await getValue() ([71acb5f](https://github.com/CoCreate-app/CoCreate-validation/commit/71acb5fceb4c5157bdfa56540324979ed286f671))
|
|
14
|
+
|
|
1
15
|
## [1.11.5](https://github.com/CoCreate-app/CoCreate-validation/compare/v1.11.4...v1.11.5) (2023-10-14)
|
|
2
16
|
|
|
3
17
|
|
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -21,7 +21,7 @@ validations.set('unique', unique);
|
|
|
21
21
|
|
|
22
22
|
const selectors = '[matches], [required], [unique], [subdomain]';
|
|
23
23
|
|
|
24
|
-
function validate(btn, params) {
|
|
24
|
+
async function validate(btn, params) {
|
|
25
25
|
let validateElements;
|
|
26
26
|
let validateSelectors = [];
|
|
27
27
|
let failedElements = [];
|
|
@@ -54,7 +54,7 @@ function validate(btn, params) {
|
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
if (elements.length) {
|
|
57
|
-
let failedEls = func(elements);
|
|
57
|
+
let failedEls = await func(elements);
|
|
58
58
|
if (failedEls)
|
|
59
59
|
failedElements.push(failedEls);
|
|
60
60
|
}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import render from '@cocreate/render';
|
|
1
|
+
import { render } from '@cocreate/render';
|
|
2
2
|
|
|
3
|
-
function initMatches(){
|
|
3
|
+
function initMatches() {
|
|
4
4
|
let elements = document.querySelectorAll('[matches]');
|
|
5
|
-
for (let element of elements){
|
|
5
|
+
for (let element of elements) {
|
|
6
6
|
let targetSelector = element.getAttribute('matches');
|
|
7
7
|
let target = document.querySelector(targetSelector);
|
|
8
|
-
element.validations = {matches: target};
|
|
8
|
+
element.validations = { matches: target };
|
|
9
9
|
element.addEventListener('input', validateMatchEvent);
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
function validateMatchEvent(e){
|
|
13
|
+
function validateMatchEvent(e) {
|
|
14
14
|
validateMatch(e.target);
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
function validateMatch(element){
|
|
17
|
+
function validateMatch(element) {
|
|
18
18
|
// let element = e.target;
|
|
19
19
|
let target = element.validations.matches;
|
|
20
|
-
if (target.value == element.value){
|
|
20
|
+
if (target.value == element.value) {
|
|
21
21
|
target.setAttribute('validation', 'true');
|
|
22
22
|
element.setAttribute('validation', 'true');
|
|
23
23
|
}
|
|
@@ -27,29 +27,29 @@ function validateMatch(element){
|
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
function matches(elements){
|
|
30
|
+
function matches(elements) {
|
|
31
31
|
let failedElements = [];
|
|
32
32
|
for (let element of elements) {
|
|
33
33
|
let isValid = element.getAttribute('validation');
|
|
34
|
-
if (isValid == 'false'){
|
|
34
|
+
if (isValid == 'false') {
|
|
35
35
|
failedElements.push(element);
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
-
if (failedElements.length){
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
38
|
+
if (failedElements.length) {
|
|
39
|
+
render({
|
|
40
|
+
selector: "[template='validate']",
|
|
41
|
+
data: {
|
|
42
|
+
type: 'matches',
|
|
43
|
+
status: 'failed',
|
|
44
|
+
message: 'One or more values do not match',
|
|
45
|
+
selector: '[matches][validation="false"]',
|
|
46
|
+
elements: failedElements
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
return failedElements;
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
initMatches();
|
|
54
54
|
|
|
55
|
-
export {matches};
|
|
55
|
+
export { matches };
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// import {validations} from '../index.js';
|
|
2
|
-
import render from '@cocreate/render';
|
|
2
|
+
import { render } from '@cocreate/render';
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
export var required = (elements) => {
|
|
5
|
+
export var required = async (elements) => {
|
|
6
6
|
let failedElements = [];
|
|
7
|
-
for (let element of elements){
|
|
8
|
-
let value = element.getValue();
|
|
9
|
-
if (value){
|
|
7
|
+
for (let element of elements) {
|
|
8
|
+
let value = await element.getValue();
|
|
9
|
+
if (value) {
|
|
10
10
|
element.setAttribute('validation', 'true');
|
|
11
11
|
}
|
|
12
12
|
else {
|
|
@@ -14,17 +14,17 @@ export var required = (elements) => {
|
|
|
14
14
|
failedElements.push(element);
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
|
-
if (failedElements.length){
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
17
|
+
if (failedElements.length) {
|
|
18
|
+
render({
|
|
19
|
+
selector: "[template='validate']",
|
|
20
|
+
data: {
|
|
21
|
+
type: 'unique',
|
|
22
|
+
status: 'failed',
|
|
23
|
+
message: 'One or more required fields are missing values',
|
|
24
|
+
selector: '[required][validation="false"]',
|
|
25
|
+
elements: failedElements
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
return failedElements;
|
|
29
29
|
}
|
|
30
30
|
};
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
import render from '@cocreate/render';
|
|
1
|
+
import { render } from '@cocreate/render';
|
|
2
2
|
|
|
3
|
-
function initSubdomain(){
|
|
3
|
+
function initSubdomain() {
|
|
4
4
|
let elements = document.querySelectorAll('[subdomain]');
|
|
5
|
-
for (let element of elements){
|
|
5
|
+
for (let element of elements) {
|
|
6
6
|
element.addEventListener('input', validateSubdomainEvent);
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
function validateSubdomainEvent(e){
|
|
10
|
+
function validateSubdomainEvent(e) {
|
|
11
11
|
validateSubdomain(e.target);
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
function validateSubdomain(element){
|
|
15
|
-
let subdomain = element.getValue();
|
|
14
|
+
async function validateSubdomain(element) {
|
|
15
|
+
let subdomain = await element.getValue();
|
|
16
16
|
let validation = 'false';
|
|
17
17
|
if (Array.isArray(subdomain))
|
|
18
18
|
subdomain = subdomain[0]
|
|
19
19
|
let array = subdomain.split('.');
|
|
20
|
-
if (array.length -1 == 2){
|
|
20
|
+
if (array.length - 1 == 2) {
|
|
21
21
|
validation = 'true';
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
const pattern = /^[a-z0-9][a-z0-9\-]*[a-z0-9]$/;
|
|
25
|
-
if (validation != 'false' && pattern.test(array[0])){
|
|
25
|
+
if (validation != 'false' && pattern.test(array[0])) {
|
|
26
26
|
validation = 'true';
|
|
27
27
|
}
|
|
28
28
|
else
|
|
@@ -31,35 +31,35 @@ function validateSubdomain(element){
|
|
|
31
31
|
// if (validation && array == 2){
|
|
32
32
|
// validation = 'true';
|
|
33
33
|
// }
|
|
34
|
-
|
|
34
|
+
|
|
35
35
|
element.setAttribute('validation', validation);
|
|
36
36
|
return validation;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
function subdomain(elements){
|
|
39
|
+
function subdomain(elements) {
|
|
40
40
|
let failedElements = [];
|
|
41
41
|
for (let element of elements) {
|
|
42
42
|
// let isValid = element.getAttribute('subdomain');
|
|
43
43
|
let isValid = validateSubdomain(element);
|
|
44
|
-
if (isValid == 'false'){
|
|
44
|
+
if (isValid == 'false') {
|
|
45
45
|
failedElements.push(element);
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
|
-
if (failedElements.length){
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
48
|
+
if (failedElements.length) {
|
|
49
|
+
render({
|
|
50
|
+
selector: "[template='validate']",
|
|
51
|
+
data: {
|
|
52
|
+
type: 'subdomain',
|
|
53
|
+
status: 'failed',
|
|
54
|
+
message: 'Enter a valid subdomain. subdomain can only be one level.',
|
|
55
|
+
selector: '[subdomain][validation="false"]',
|
|
56
|
+
elements: failedElements
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
return failedElements;
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
initSubdomain();
|
|
64
64
|
|
|
65
|
-
export {subdomain};
|
|
65
|
+
export { subdomain };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import render from '@cocreate/render';
|
|
1
|
+
import { render } from '@cocreate/render';
|
|
2
2
|
|
|
3
3
|
export const unique = (elements) => {
|
|
4
4
|
let failedElements = [];
|
|
@@ -9,7 +9,7 @@ export const unique = (elements) => {
|
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
11
|
if (failedElements.length) {
|
|
12
|
-
render
|
|
12
|
+
render({
|
|
13
13
|
selector: "[template='validate']",
|
|
14
14
|
data: {
|
|
15
15
|
type: 'unique',
|