@cuemath/web-utils 1.1.7 → 1.1.8-beta.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.
@@ -8,6 +8,7 @@ export * from './utils';
8
8
  export * from './script';
9
9
  export * from './url';
10
10
  export * from './url-parser';
11
+ export * from './validations';
11
12
  export * from './growth-source';
12
13
  export * from './analytics';
13
14
  export * from './ab-experiment';
package/dist/cjs/index.js CHANGED
@@ -24,6 +24,7 @@ __exportStar(require("./utils"), exports);
24
24
  __exportStar(require("./script"), exports);
25
25
  __exportStar(require("./url"), exports);
26
26
  __exportStar(require("./url-parser"), exports);
27
+ __exportStar(require("./validations"), exports);
27
28
  // below <package> to be removed from here and used and '@cuemath/web-utils/<package>' instead
28
29
  __exportStar(require("./growth-source"), exports);
29
30
  __exportStar(require("./analytics"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,8CAA4B;AAC5B,kDAAgC;AAChC,qDAAmC;AACnC,2CAAyB;AACzB,0CAAwB;AACxB,0CAAwB;AACxB,2CAAyB;AACzB,wCAAsB;AACtB,+CAA6B;AAE7B,8FAA8F;AAC9F,kDAAgC;AAChC,8CAA4B;AAC5B,kDAAgC;AAChC,qDAAmC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,8CAA4B;AAC5B,kDAAgC;AAChC,qDAAmC;AACnC,2CAAyB;AACzB,0CAAwB;AACxB,0CAAwB;AACxB,2CAAyB;AACzB,wCAAsB;AACtB,+CAA6B;AAC7B,gDAA8B;AAE9B,8FAA8F;AAC9F,kDAAgC;AAChC,8CAA4B;AAC5B,kDAAgC;AAChC,qDAAmC"}
@@ -0,0 +1,12 @@
1
+ interface FormField {
2
+ id: string;
3
+ }
4
+ interface FormState {
5
+ [key: string]: any;
6
+ }
7
+ interface FormValidations {
8
+ [key: string]: string;
9
+ }
10
+ type SetValidationsFunction = (validations: FormValidations) => void;
11
+ export declare const checkValidation: (formFields: FormField[], formState: FormState, setValidations?: SetValidationsFunction) => boolean;
12
+ export {};
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.checkValidation = void 0;
4
+ const validateEmail = (value) => {
5
+ if (typeof value !== 'undefined') {
6
+ const pattern = new RegExp(/^(("[\w-\s]+")|([\w+.]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
7
+ return pattern.test(value);
8
+ }
9
+ return false;
10
+ };
11
+ const isValid = (fieldId, formState) => {
12
+ if (!formState[fieldId]) {
13
+ return false;
14
+ }
15
+ return true;
16
+ };
17
+ const checkValidation = (formFields, formState, setValidations) => {
18
+ let isValidResponse = true;
19
+ const formValidations = {};
20
+ formFields.forEach(field => {
21
+ const fieldId = field.id;
22
+ if (Array.isArray(field)) {
23
+ field.forEach(subField => {
24
+ const subFieldId = subField.id;
25
+ if (!isValid(subFieldId, formState)) {
26
+ isValidResponse = false;
27
+ formValidations[subFieldId] = 'This field is required';
28
+ }
29
+ });
30
+ }
31
+ else if (!isValid(fieldId, formState)) {
32
+ isValidResponse = false;
33
+ formValidations[fieldId] = 'This field is required';
34
+ }
35
+ if (fieldId === 'email') {
36
+ const isValidEmail = validateEmail(formState?.email);
37
+ formValidations[fieldId] = isValidEmail ? '' : `Please enter a valid ${fieldId} id`;
38
+ isValidResponse = isValidEmail;
39
+ }
40
+ });
41
+ if (setValidations) {
42
+ setValidations(formValidations);
43
+ }
44
+ return isValidResponse;
45
+ };
46
+ exports.checkValidation = checkValidation;
47
+ //# sourceMappingURL=form-validations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-validations.js","sourceRoot":"","sources":["../../../src/validations/form-validations.ts"],"names":[],"mappings":";;;AAcA,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,EAAE;IACtC,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;QAChC,MAAM,OAAO,GAAG,IAAI,MAAM,CACxB,kSAAkS,CACnS,CAAC;QAEF,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5B;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,CAAC,OAAe,EAAE,SAAoB,EAAW,EAAE;IACjE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;QACvB,OAAO,KAAK,CAAC;KACd;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEK,MAAM,eAAe,GAAG,CAC7B,UAAuB,EACvB,SAAoB,EACpB,cAAuC,EAC9B,EAAE;IACX,IAAI,eAAe,GAAG,IAAI,CAAC;IAC3B,MAAM,eAAe,GAAoB,EAAE,CAAC;IAE5C,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACzB,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC;QAEzB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxB,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBACvB,MAAM,UAAU,GAAG,QAAQ,CAAC,EAAE,CAAC;gBAE/B,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE;oBACnC,eAAe,GAAG,KAAK,CAAC;oBACxB,eAAe,CAAC,UAAU,CAAC,GAAG,wBAAwB,CAAC;iBACxD;YACH,CAAC,CAAC,CAAC;SACJ;aAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE;YACvC,eAAe,GAAG,KAAK,CAAC;YACxB,eAAe,CAAC,OAAO,CAAC,GAAG,wBAAwB,CAAC;SACrD;QAED,IAAI,OAAO,KAAK,OAAO,EAAE;YACvB,MAAM,YAAY,GAAG,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAErD,eAAe,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,wBAAwB,OAAO,KAAK,CAAC;YACpF,eAAe,GAAG,YAAY,CAAC;SAChC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,cAAc,EAAE;QAClB,cAAc,CAAC,eAAe,CAAC,CAAC;KACjC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC;AAtCW,QAAA,eAAe,mBAsC1B"}
@@ -0,0 +1 @@
1
+ export * from "./form-validations";
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./form-validations"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/validations/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC"}
@@ -8,6 +8,7 @@ export * from './utils';
8
8
  export * from './script';
9
9
  export * from './url';
10
10
  export * from './url-parser';
11
+ export * from './validations';
11
12
  export * from './growth-source';
12
13
  export * from './analytics';
13
14
  export * from './ab-experiment';
package/dist/esm/index.js CHANGED
@@ -8,6 +8,7 @@ export * from './utils';
8
8
  export * from './script';
9
9
  export * from './url';
10
10
  export * from './url-parser';
11
+ export * from './validations';
11
12
  // below <package> to be removed from here and used and '@cuemath/web-utils/<package>' instead
12
13
  export * from './growth-source';
13
14
  export * from './analytics';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,cAAc,CAAC;AAE7B,8FAA8F;AAC9F,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAE9B,8FAA8F;AAC9F,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,12 @@
1
+ interface FormField {
2
+ id: string;
3
+ }
4
+ interface FormState {
5
+ [key: string]: any;
6
+ }
7
+ interface FormValidations {
8
+ [key: string]: string;
9
+ }
10
+ type SetValidationsFunction = (validations: FormValidations) => void;
11
+ export declare const checkValidation: (formFields: FormField[], formState: FormState, setValidations?: SetValidationsFunction) => boolean;
12
+ export {};
@@ -0,0 +1,43 @@
1
+ const validateEmail = (value) => {
2
+ if (typeof value !== 'undefined') {
3
+ const pattern = new RegExp(/^(("[\w-\s]+")|([\w+.]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
4
+ return pattern.test(value);
5
+ }
6
+ return false;
7
+ };
8
+ const isValid = (fieldId, formState) => {
9
+ if (!formState[fieldId]) {
10
+ return false;
11
+ }
12
+ return true;
13
+ };
14
+ export const checkValidation = (formFields, formState, setValidations) => {
15
+ let isValidResponse = true;
16
+ const formValidations = {};
17
+ formFields.forEach(field => {
18
+ const fieldId = field.id;
19
+ if (Array.isArray(field)) {
20
+ field.forEach(subField => {
21
+ const subFieldId = subField.id;
22
+ if (!isValid(subFieldId, formState)) {
23
+ isValidResponse = false;
24
+ formValidations[subFieldId] = 'This field is required';
25
+ }
26
+ });
27
+ }
28
+ else if (!isValid(fieldId, formState)) {
29
+ isValidResponse = false;
30
+ formValidations[fieldId] = 'This field is required';
31
+ }
32
+ if (fieldId === 'email') {
33
+ const isValidEmail = validateEmail(formState === null || formState === void 0 ? void 0 : formState.email);
34
+ formValidations[fieldId] = isValidEmail ? '' : `Please enter a valid ${fieldId} id`;
35
+ isValidResponse = isValidEmail;
36
+ }
37
+ });
38
+ if (setValidations) {
39
+ setValidations(formValidations);
40
+ }
41
+ return isValidResponse;
42
+ };
43
+ //# sourceMappingURL=form-validations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-validations.js","sourceRoot":"","sources":["../../../src/validations/form-validations.ts"],"names":[],"mappings":"AAcA,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,EAAE;IACtC,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;QAChC,MAAM,OAAO,GAAG,IAAI,MAAM,CACxB,kSAAkS,CACnS,CAAC;QAEF,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5B;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,CAAC,OAAe,EAAE,SAAoB,EAAW,EAAE;IACjE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;QACvB,OAAO,KAAK,CAAC;KACd;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,UAAuB,EACvB,SAAoB,EACpB,cAAuC,EAC9B,EAAE;IACX,IAAI,eAAe,GAAG,IAAI,CAAC;IAC3B,MAAM,eAAe,GAAoB,EAAE,CAAC;IAE5C,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACzB,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC;QAEzB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxB,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBACvB,MAAM,UAAU,GAAG,QAAQ,CAAC,EAAE,CAAC;gBAE/B,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE;oBACnC,eAAe,GAAG,KAAK,CAAC;oBACxB,eAAe,CAAC,UAAU,CAAC,GAAG,wBAAwB,CAAC;iBACxD;YACH,CAAC,CAAC,CAAC;SACJ;aAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE;YACvC,eAAe,GAAG,KAAK,CAAC;YACxB,eAAe,CAAC,OAAO,CAAC,GAAG,wBAAwB,CAAC;SACrD;QAED,IAAI,OAAO,KAAK,OAAO,EAAE;YACvB,MAAM,YAAY,GAAG,aAAa,CAAC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,CAAC,CAAC;YAErD,eAAe,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,wBAAwB,OAAO,KAAK,CAAC;YACpF,eAAe,GAAG,YAAY,CAAC;SAChC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,cAAc,EAAE;QAClB,cAAc,CAAC,eAAe,CAAC,CAAC;KACjC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export * from "./form-validations";
@@ -0,0 +1,2 @@
1
+ export * from './form-validations';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/validations/index.js"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cuemath/web-utils",
3
- "version": "1.1.7",
3
+ "version": "1.1.8-beta.0",
4
4
  "description": "Shared web utils package",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",