@neovici/cosmoz-form 2.4.0 → 2.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.
- package/dist/async-rule.d.ts +21 -11
- package/dist/async-rule.d.ts.map +1 -1
- package/dist/inputs/autocomplete.d.ts +1 -1
- package/dist/inputs/autocomplete.d.ts.map +1 -1
- package/dist/inputs/base.d.ts +4 -4
- package/dist/inputs/base.d.ts.map +1 -1
- package/dist/inputs/base.js +15 -11
- package/dist/inputs/basic.d.ts +1 -1
- package/dist/inputs/basic.d.ts.map +1 -1
- package/dist/inputs/common.d.ts +8 -8
- package/dist/inputs/common.d.ts.map +1 -1
- package/dist/inputs/common.js +3 -3
- package/dist/inputs/date-range.d.ts +1 -1
- package/dist/inputs/date-range.d.ts.map +1 -1
- package/dist/inputs/file-drop.d.ts +1 -1
- package/dist/inputs/file-drop.d.ts.map +1 -1
- package/dist/inputs/file.d.ts +1 -1
- package/dist/inputs/file.d.ts.map +1 -1
- package/dist/inputs/inline-file.d.ts +1 -1
- package/dist/inputs/inline-file.d.ts.map +1 -1
- package/dist/inputs/inline-file.js +2 -1
- package/dist/inputs/read-only-number.d.ts +1 -1
- package/dist/inputs/read-only-number.d.ts.map +1 -1
- package/dist/inputs/read-only-number.js +3 -3
- package/dist/inputs/toggle.d.ts +1 -1
- package/dist/inputs/toggle.d.ts.map +1 -1
- package/dist/make-debounce-runner.d.ts +2 -2
- package/dist/make-debounce-runner.d.ts.map +1 -1
- package/dist/make-debounce-runner.js +10 -2
- package/dist/make-take-latest-runner.d.ts +2 -2
- package/dist/make-take-latest-runner.d.ts.map +1 -1
- package/dist/make-take-latest-runner.js +1 -0
- package/dist/render/fields.d.ts +11 -11
- package/dist/render/fields.d.ts.map +1 -1
- package/dist/render/fields.js +2 -3
- package/dist/render/items.d.ts +12 -8
- package/dist/render/items.d.ts.map +1 -1
- package/dist/render/items.js +5 -4
- package/dist/test/apply-rules.test.d.ts +2 -0
- package/dist/test/apply-rules.test.d.ts.map +1 -0
- package/dist/test/apply-rules.test.js +295 -0
- package/dist/test/use-items.test.js +69 -2
- package/dist/test/use-validated-form.test.js +120 -1
- package/dist/types/index.d.ts +27 -27
- package/dist/types/index.d.ts.map +1 -1
- package/dist/use-async-form-core.d.ts +6 -6
- package/dist/use-async-form-core.d.ts.map +1 -1
- package/dist/use-async-form-core.js +9 -7
- package/dist/use-form-core.d.ts +3 -2
- package/dist/use-form-core.d.ts.map +1 -1
- package/dist/use-form-core.js +30 -7
- package/dist/use-form.d.ts +1 -1
- package/dist/use-form.d.ts.map +1 -1
- package/dist/use-form.js +1 -1
- package/dist/use-items/apply-rules.d.ts +10 -5
- package/dist/use-items/apply-rules.d.ts.map +1 -1
- package/dist/use-items/apply-rules.js +3 -3
- package/dist/use-items/use-async-rules.d.ts +4 -3
- package/dist/use-items/use-async-rules.d.ts.map +1 -1
- package/dist/use-items/use-async-rules.js +6 -5
- package/dist/use-items/use-items.d.ts +6 -4
- package/dist/use-items/use-items.d.ts.map +1 -1
- package/dist/use-items/use-items.js +44 -11
- package/dist/use-items/use-validated-items.d.ts +6 -4
- package/dist/use-items/use-validated-items.d.ts.map +1 -1
- package/dist/use-items/use-validated-items.js +5 -3
- package/dist/use-validated-form$.d.ts +7 -6
- package/dist/use-validated-form$.d.ts.map +1 -1
- package/dist/use-validated-form$.js +2 -2
- package/dist/use-validated-form-core.d.ts +12 -10
- package/dist/use-validated-form-core.d.ts.map +1 -1
- package/dist/use-validated-form-core.js +5 -5
- package/dist/use-validated-form.d.ts +7 -5
- package/dist/use-validated-form.d.ts.map +1 -1
- package/dist/use-validated-form.js +3 -3
- package/dist/validation/index.d.ts +10 -10
- package/dist/validation/index.d.ts.map +1 -1
- package/dist/validation/index.js +12 -12
- package/dist/validation/rules.d.ts +6 -6
- package/dist/validation/rules.d.ts.map +1 -1
- package/dist/validation/rules.js +8 -6
- package/package.json +1 -1
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { useMemo } from '@pionjs/pion';
|
|
2
1
|
import { invoke } from '@neovici/cosmoz-utils/function';
|
|
3
|
-
import {
|
|
2
|
+
import { useMemo } from '@pionjs/pion';
|
|
4
3
|
import { useFormCore } from './use-form-core';
|
|
4
|
+
import { validate } from './validation';
|
|
5
5
|
export const computeRules = (fields, rules = []) => {
|
|
6
6
|
const fieldRules = fields
|
|
7
7
|
.filter((f) => f?.rules != null)
|
|
8
8
|
.flatMap((f) => f?.rules);
|
|
9
9
|
return [...rules, ...fieldRules];
|
|
10
10
|
};
|
|
11
|
-
export const useValidatedFormCore = (state, setState, { fields: _fields, rules }) => {
|
|
11
|
+
export const useValidatedFormCore = (state, setState, { fields: _fields, rules, context, touched }) => {
|
|
12
12
|
const fields = useMemo(() => invoke(_fields) ?? [], [_fields]);
|
|
13
13
|
const allRules = useMemo(() => computeRules(fields, rules), [fields, rules]);
|
|
14
|
-
const form = useFormCore(state, setState, allRules);
|
|
14
|
+
const form = useFormCore(state, setState, allRules, context, touched);
|
|
15
15
|
const { values } = form;
|
|
16
16
|
return {
|
|
17
|
-
...useMemo(() => validate(fields, values), [fields, values]),
|
|
17
|
+
...useMemo(() => validate(fields, values, context), [fields, values, context]),
|
|
18
18
|
...form,
|
|
19
19
|
};
|
|
20
20
|
};
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import type { Fields } from './types';
|
|
2
2
|
import type { ItemRule } from './use-items/apply-rules';
|
|
3
|
-
import type
|
|
4
|
-
interface Props<T extends object> {
|
|
3
|
+
import { type UseValidatedForm } from './use-validated-form-core';
|
|
4
|
+
interface Props<T extends object, C extends object = object> {
|
|
5
5
|
initial: Readonly<T>;
|
|
6
|
-
fields?: Fields<T> | (() => Fields<T>);
|
|
7
|
-
rules?: readonly ItemRule<T>[];
|
|
6
|
+
fields?: Fields<T, C> | (() => Fields<T, C>);
|
|
7
|
+
rules?: readonly ItemRule<T, C>[];
|
|
8
|
+
context?: C;
|
|
9
|
+
touched?: boolean;
|
|
8
10
|
}
|
|
9
|
-
export declare const useValidatedForm: <T extends object>(options: Readonly<Props<T>>) => UseValidatedForm<T>;
|
|
11
|
+
export declare const useValidatedForm: <T extends object, C extends object = object>(options: Readonly<Props<T, C>>) => UseValidatedForm<T, C>;
|
|
10
12
|
export { UseValidatedForm };
|
|
11
13
|
//# sourceMappingURL=use-validated-form.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-validated-form.d.ts","sourceRoot":"","sources":["../src/use-validated-form.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-validated-form.d.ts","sourceRoot":"","sources":["../src/use-validated-form.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGtC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAGN,KAAK,gBAAgB,EACrB,MAAM,2BAA2B,CAAC;AAEnC,UAAU,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM;IAC1D,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,KAAK,CAAC,EAAE,SAAS,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAClC,OAAO,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,EAC3E,SAAS,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAC5B,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAUvB,CAAC;AAEF,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { useState } from '@pionjs/pion';
|
|
2
|
-
import { processInitial } from './use-form';
|
|
3
|
-
import { computeRules, useValidatedFormCore } from './use-validated-form-core';
|
|
4
2
|
import { invoke } from './helpers';
|
|
3
|
+
import { processInitial } from './use-form';
|
|
4
|
+
import { computeRules, useValidatedFormCore, } from './use-validated-form-core';
|
|
5
5
|
export const useValidatedForm = (options) => {
|
|
6
6
|
const [state, setState] = useState(() => {
|
|
7
|
-
const fields = invoke(options.fields) ?? [], allRules = computeRules(fields, options.rules), ini = processInitial(options.initial, allRules);
|
|
7
|
+
const fields = invoke(options.fields) ?? [], allRules = computeRules(fields, options.rules), ini = processInitial(options.initial, allRules, options.context);
|
|
8
8
|
return [ini, ini];
|
|
9
9
|
});
|
|
10
10
|
return useValidatedFormCore(state, setState, options);
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import { Field,
|
|
1
|
+
import { Errors, Field, Fields, Validate } from '../types';
|
|
2
2
|
export declare const ERROR: unique symbol;
|
|
3
|
-
export declare const runValidation: <T extends object, K extends keyof T, V extends T[K]>(validate: Validate<T, K, V>, value: V, values: T, field: Field<T, K, V
|
|
4
|
-
export declare const validateField: <T extends object, K extends keyof T>(field: Field<T, K, T[K]>, values: T) => string | undefined;
|
|
5
|
-
export declare const validateFields: <T extends object>(fields: Fields<T>, values: T) => Errors | undefined;
|
|
6
|
-
export declare const validateFieldsM: <T extends object>(fields: Fields<T>, values: T) => {
|
|
7
|
-
fields: ({ [K in keyof T]-?: Readonly<Field<T, K, T[K]>>; }[keyof T] & {
|
|
3
|
+
export declare const runValidation: <T extends object, K extends keyof T, V extends T[K], C extends object = object>(validate: Validate<T, K, V, C>, value: V, values: T, field: Field<T, K, V, C>, context?: C) => string | undefined;
|
|
4
|
+
export declare const validateField: <T extends object, K extends keyof T, C extends object = object>(field: Field<T, K, T[K], C>, values: T, context?: C) => string | undefined;
|
|
5
|
+
export declare const validateFields: <T extends object, C extends object = object>(fields: Fields<T, C>, values: T, context?: C) => Errors | undefined;
|
|
6
|
+
export declare const validateFieldsM: <T extends object, C extends object = object>(fields: Fields<T, C>, values: T, context?: C) => {
|
|
7
|
+
fields: ({ [K in keyof T]-?: Readonly<Field<T, K, T[K], C>>; }[keyof T] & {
|
|
8
8
|
error: string | undefined;
|
|
9
9
|
})[];
|
|
10
10
|
invalid: boolean;
|
|
11
11
|
};
|
|
12
|
-
export declare const validate: <T extends object>(fields: Fields<T>, values?: T) => {
|
|
13
|
-
fields: Fields<T>;
|
|
12
|
+
export declare const validate: <T extends object, C extends object = object>(fields: Fields<T, C>, values?: T, context?: C) => {
|
|
13
|
+
fields: Fields<T, C>;
|
|
14
14
|
invalid: boolean;
|
|
15
15
|
};
|
|
16
|
-
export declare const validateForms: <T extends object>(fields: Fields<T>, items: T[]) => {
|
|
16
|
+
export declare const validateForms: <T extends object, C extends object = object>(fields: Fields<T, C>, items: T[], context?: C) => {
|
|
17
17
|
forms: {
|
|
18
18
|
values: T;
|
|
19
19
|
index: number;
|
|
20
|
-
fields: Fields<T>;
|
|
20
|
+
fields: Fields<T, C>;
|
|
21
21
|
invalid: boolean;
|
|
22
22
|
}[];
|
|
23
23
|
invalid: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAE3D,eAAO,MAAM,KAAK,EAAE,OAAO,MAAwB,CAAC;AAEpD,eAAO,MAAM,aAAa,GACzB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,CAAC,EACjB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EACd,CAAC,SAAS,MAAM,GAAG,MAAM,EAEzB,UAAU,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC9B,OAAO,CAAC,EACR,QAAQ,CAAC,EACT,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACxB,UAAU,CAAC,KACT,MAAM,GAAG,SAOX,CAAC;AAEF,eAAO,MAAM,aAAa,GACzB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,CAAC,EACjB,CAAC,SAAS,MAAM,GAAG,MAAM,EAEzB,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAC3B,QAAQ,CAAC,EACT,UAAU,CAAC,uBASV,CAAC;AAEH,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,EACzE,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,QAAQ,CAAC,EACT,UAAU,CAAC,KACT,MAAM,GAAG,SAMX,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,EAC1E,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,QAAQ,CAAC,EACT,UAAU,CAAC;;;;;CAUX,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,EACnE,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,SAAS,CAAC,EACV,UAAU,CAAC;;;CAOR,CAAC;AAEL,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,EACxE,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,EACV,UAAU,CAAC;;;;;;;;CAWX,CAAC;AAEF,cAAc,SAAS,CAAC"}
|
package/dist/validation/index.js
CHANGED
|
@@ -1,41 +1,41 @@
|
|
|
1
1
|
import { array } from '@neovici/cosmoz-utils/array';
|
|
2
2
|
export const ERROR = Symbol('error');
|
|
3
|
-
export const runValidation = (validate, value, values, field) => {
|
|
3
|
+
export const runValidation = (validate, value, values, field, context) => {
|
|
4
4
|
for (const check of array(validate)) {
|
|
5
|
-
const error = check(value, values, field);
|
|
5
|
+
const error = check(value, values, field, context);
|
|
6
6
|
if (error) {
|
|
7
7
|
return error;
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
10
|
};
|
|
11
|
-
export const validateField = (field, values) => field.validate &&
|
|
12
|
-
runValidation(field.validate, values[field.path ?? field.id], values, field);
|
|
13
|
-
export const validateFields = (fields, values) => {
|
|
11
|
+
export const validateField = (field, values, context) => field.validate &&
|
|
12
|
+
runValidation(field.validate, values[field.path ?? field.id], values, field, context);
|
|
13
|
+
export const validateFields = (fields, values, context) => {
|
|
14
14
|
const errors = fields.flatMap((field) => {
|
|
15
|
-
const error = validateField(field, values);
|
|
15
|
+
const error = validateField(field, values, context);
|
|
16
16
|
return error ? [[field.id, error]] : [];
|
|
17
17
|
});
|
|
18
18
|
return errors.length ? Object.fromEntries(errors) : undefined;
|
|
19
19
|
};
|
|
20
|
-
export const validateFieldsM = (fields, values) => {
|
|
20
|
+
export const validateFieldsM = (fields, values, context) => {
|
|
21
21
|
const validated = fields.map((field) => ({
|
|
22
22
|
...field,
|
|
23
|
-
error: validateField(field, values),
|
|
23
|
+
error: validateField(field, values, context),
|
|
24
24
|
}));
|
|
25
25
|
return {
|
|
26
26
|
fields: validated,
|
|
27
27
|
invalid: validated.some(({ error }) => !!error),
|
|
28
28
|
};
|
|
29
29
|
};
|
|
30
|
-
export const validate = (fields, values) => values
|
|
31
|
-
? validateFieldsM(fields, values)
|
|
30
|
+
export const validate = (fields, values, context) => values
|
|
31
|
+
? validateFieldsM(fields, values, context)
|
|
32
32
|
: {
|
|
33
33
|
fields,
|
|
34
34
|
invalid: true,
|
|
35
35
|
};
|
|
36
|
-
export const validateForms = (fields, items) => {
|
|
36
|
+
export const validateForms = (fields, items, context) => {
|
|
37
37
|
const forms = items.map((values, index) => ({
|
|
38
|
-
...validate(fields, values),
|
|
38
|
+
...validate(fields, values, context),
|
|
39
39
|
values,
|
|
40
40
|
index,
|
|
41
41
|
}));
|
|
@@ -21,12 +21,12 @@ export declare const hint: <K extends PropertyKey>(field: K) => {
|
|
|
21
21
|
label: NonNullable<O_1[K]>;
|
|
22
22
|
} | undefined)[];
|
|
23
23
|
onChange: <V>(update: <Q extends Record<PropertyKey, any>>(q: Q) => void, id: string, value: V) => void;
|
|
24
|
-
validate: <V, O extends Record<K, any>>(value: V, values: O) => string |
|
|
24
|
+
validate: <V, O extends Record<K, any>>(value: V, values: O) => string | false;
|
|
25
25
|
};
|
|
26
|
-
export declare const afterStartDate: <K extends PropertyKey>(startDateField: K, eq?: boolean) => <V, O extends Record<K, any>>(value: V, values: O) => string | false
|
|
27
|
-
export declare const minDate: <Q>(date: Q) => <V>(value: V) => string | false
|
|
28
|
-
export declare const maxDate: <Q>(date: Q) => <V>(value: V) => string | false
|
|
29
|
-
export declare const maxDays: (days: number) => <V>(value: V) => string | false
|
|
26
|
+
export declare const afterStartDate: <K extends PropertyKey>(startDateField: K, eq?: boolean) => <V, O extends Record<K, any>>(value: V, values: O) => string | false;
|
|
27
|
+
export declare const minDate: <Q>(date: Q) => <V>(value: V) => string | false;
|
|
28
|
+
export declare const maxDate: <Q>(date: Q) => <V>(value: V) => string | false;
|
|
29
|
+
export declare const maxDays: (days: number) => <V>(value: V) => string | false;
|
|
30
30
|
export declare const xor: <T extends object, K extends keyof T, V extends T[K], P extends keyof T>(otherField: P) => (value: V, values: T) => boolean;
|
|
31
|
-
export declare const maxDecimal: (precision: number, message?: string) => <V>(value: V) => string | false
|
|
31
|
+
export declare const maxDecimal: (precision: number, message?: string) => <V>(value: V) => string | false;
|
|
32
32
|
//# sourceMappingURL=rules.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/validation/rules.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/validation/rules.ts"],"names":[],"mappings":"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"}
|
package/dist/validation/rules.js
CHANGED
|
@@ -60,7 +60,7 @@ export const hint = (field) => ({
|
|
|
60
60
|
validate: (value, values) => {
|
|
61
61
|
const req = required(value);
|
|
62
62
|
if (!req) {
|
|
63
|
-
return;
|
|
63
|
+
return false;
|
|
64
64
|
}
|
|
65
65
|
const hintValue = values[field];
|
|
66
66
|
return hintValue == null ? req : _('Option not among possible values');
|
|
@@ -70,7 +70,7 @@ export const afterStartDate = (startDateField, eq) => (value, values) => {
|
|
|
70
70
|
const end = ensureDate(value);
|
|
71
71
|
const start = ensureDate(values[startDateField]);
|
|
72
72
|
if (!(end && start))
|
|
73
|
-
return;
|
|
73
|
+
return false;
|
|
74
74
|
const endTime = end.getTime();
|
|
75
75
|
const startTime = start.getTime();
|
|
76
76
|
const invalid = eq ? endTime < startTime : endTime <= startTime;
|
|
@@ -78,6 +78,8 @@ export const afterStartDate = (startDateField, eq) => (value, values) => {
|
|
|
78
78
|
};
|
|
79
79
|
export const minDate = (date) => (value) => {
|
|
80
80
|
const dateValue = ensureDate(value), minDateValue = ensureDate(date);
|
|
81
|
+
if (!dateValue || !minDateValue)
|
|
82
|
+
return false;
|
|
81
83
|
return (dateValue &&
|
|
82
84
|
minDateValue &&
|
|
83
85
|
dateValue.getTime() <= minDateValue.getTime() &&
|
|
@@ -85,9 +87,9 @@ export const minDate = (date) => (value) => {
|
|
|
85
87
|
};
|
|
86
88
|
export const maxDate = (date) => (value) => {
|
|
87
89
|
const dateValue = ensureDate(value), maxDateValue = ensureDate(date);
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
90
|
+
if (!dateValue || !maxDateValue)
|
|
91
|
+
return false;
|
|
92
|
+
return (maxDateValue.getTime() <= dateValue.getTime() &&
|
|
91
93
|
_('Date must be lower than {0}', date));
|
|
92
94
|
};
|
|
93
95
|
export const maxDays = (days) => maxDate(format(addDays(days, new Date()), 'yyyy-MM-dd'));
|
|
@@ -95,7 +97,7 @@ export const xor = (otherField) => (value, values) => values[otherField] != null
|
|
|
95
97
|
const decimalRegexp = (precision) => new RegExp('^[0-9]*(.[0-9]{0,' + precision.toString() + '})?$', 'u');
|
|
96
98
|
export const maxDecimal = (precision, message = `Maximum ${precision} decimal digits.`) => (value) => {
|
|
97
99
|
if (value === null || value === undefined)
|
|
98
|
-
return;
|
|
100
|
+
return false;
|
|
99
101
|
if (typeof value !== 'string' && typeof value !== 'number')
|
|
100
102
|
return message;
|
|
101
103
|
return !decimalRegexp(precision).test(String(value)) && message;
|