@digigov/form 2.0.0-a402a664 → 2.0.0-abd768eb
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/Field/FieldBase/index.js +1 -1
- package/Field/FieldBase.js.map +2 -2
- package/Field/FieldBaseContainer/index.js +36 -19
- package/Field/FieldBaseContainer.d.ts +1 -1
- package/Field/FieldBaseContainer.js.map +2 -2
- package/FieldArray/index.js +20 -1
- package/FieldArray/index.js.map +2 -2
- package/FormBuilder/index.js +0 -1
- package/FormBuilder/index.js.map +2 -2
- package/cjs/Field/FieldBase/index.js +1 -1
- package/cjs/Field/FieldBase.js.map +2 -2
- package/cjs/Field/FieldBaseContainer/index.js +36 -19
- package/cjs/Field/FieldBaseContainer.js.map +2 -2
- package/cjs/FieldArray/index.js +19 -0
- package/cjs/FieldArray/index.js.map +2 -2
- package/cjs/FormBuilder/index.js +0 -1
- package/cjs/FormBuilder/index.js.map +2 -2
- package/cjs/inputs/Checkboxes/index.js +1 -1
- package/cjs/inputs/Checkboxes/index.js.map +2 -2
- package/cjs/inputs/DateInput/index.js +26 -11
- package/cjs/inputs/DateInput/index.js.map +2 -2
- package/cjs/inputs/DateTimeInput/index.js +54 -33
- package/cjs/inputs/DateTimeInput/index.js.map +2 -2
- package/cjs/inputs/FileInput/index.js +42 -24
- package/cjs/inputs/FileInput/index.js.map +2 -2
- package/cjs/registry/index.js +4 -4
- package/cjs/registry.js.map +2 -2
- package/cjs/validators/index.js +1 -1
- package/cjs/validators/index.js.map +2 -2
- package/cjs/validators/utils/date/index.js +26 -3
- package/cjs/validators/utils/date.js.map +2 -2
- package/cjs/validators/utils/datetime/index.js +118 -24
- package/cjs/validators/utils/datetime.js.map +2 -2
- package/index.js +1 -1
- package/inputs/Checkboxes/index.js +1 -1
- package/inputs/Checkboxes/index.js.map +2 -2
- package/inputs/DateInput/DateInput.stories.d.ts +4 -0
- package/inputs/DateInput/__stories__/WithDefaultValue.d.ts +3 -0
- package/inputs/DateInput/__stories__/WithInitialValue.d.ts +3 -0
- package/inputs/DateInput/__stories__/WithWrongDefaultValue.d.ts +3 -0
- package/inputs/DateInput/__stories__/WithWrongInitialValue.d.ts +3 -0
- package/inputs/DateInput/index.js +27 -12
- package/inputs/DateInput/index.js.map +2 -2
- package/inputs/DateTimeInput/DateTimeInput.stories.d.ts +8 -3
- package/inputs/DateTimeInput/__stories__/WithDefaultValue.d.ts +3 -0
- package/inputs/DateTimeInput/__stories__/WithInitialValue.d.ts +3 -0
- package/inputs/DateTimeInput/__stories__/WithWrongDefaultValue.d.ts +3 -0
- package/inputs/DateTimeInput/__stories__/WithWrongInitialValue.d.ts +3 -0
- package/inputs/DateTimeInput/index.js +55 -34
- package/inputs/DateTimeInput/index.js.map +2 -2
- package/inputs/FileInput/index.d.ts +5 -1
- package/inputs/FileInput/index.js +43 -25
- package/inputs/FileInput/index.js.map +2 -2
- package/package.json +4 -4
- package/registry/index.js +4 -4
- package/src/Field/FieldBase.tsx +1 -1
- package/src/Field/FieldBaseContainer.tsx +67 -51
- package/src/FieldArray/index.tsx +28 -1
- package/src/FormBuilder/index.tsx +0 -1
- package/src/FormBuilder/scenarios.test.tsx +759 -1
- package/src/inputs/Checkboxes/index.tsx +1 -5
- package/src/inputs/DateInput/DateInput.stories.js +4 -0
- package/src/inputs/DateInput/__stories__/WithDefaultValue.tsx +26 -0
- package/src/inputs/DateInput/__stories__/WithInitialValue.tsx +28 -0
- package/src/inputs/DateInput/__stories__/WithWrongDefaultValue.tsx +26 -0
- package/src/inputs/DateInput/__stories__/WithWrongInitialValue.tsx +28 -0
- package/src/inputs/DateInput/index.test.tsx +16 -0
- package/src/inputs/DateInput/index.tsx +30 -12
- package/src/inputs/DateTimeInput/DateTimeInput.stories.js +9 -6
- package/src/inputs/DateTimeInput/__stories__/WithDefaultValue.tsx +26 -0
- package/src/inputs/DateTimeInput/__stories__/WithInitialValue.tsx +28 -0
- package/src/inputs/DateTimeInput/__stories__/WithWrongDefaultValue.tsx +26 -0
- package/src/inputs/DateTimeInput/__stories__/WithWrongInitialValue.tsx +28 -0
- package/src/inputs/DateTimeInput/index.test.tsx +16 -0
- package/src/inputs/DateTimeInput/index.tsx +58 -34
- package/src/inputs/FileInput/index.tsx +70 -39
- package/src/registry.js +4 -4
- package/src/validators/index.ts +1 -1
- package/src/validators/utils/date.ts +28 -4
- package/src/validators/utils/datetime.ts +121 -29
- package/validators/index.js +1 -1
- package/validators/index.js.map +2 -2
- package/validators/utils/date/index.js +26 -3
- package/validators/utils/date.d.ts +1 -1
- package/validators/utils/date.js.map +2 -2
- package/validators/utils/datetime/index.js +118 -24
- package/validators/utils/datetime.d.ts +1 -1
- package/validators/utils/datetime.js.map +2 -2
|
@@ -3,50 +3,144 @@ import customParseFormat from "dayjs/plugin/customParseFormat";
|
|
|
3
3
|
dayjs.extend(customParseFormat);
|
|
4
4
|
const VALID_DATETIME_FORMATS = ["DD/MM/YYYY HH:mm"];
|
|
5
5
|
const DATETIME_CACHE = {};
|
|
6
|
+
const onlyNumbersRegex = /^\d+$/;
|
|
6
7
|
const getDateTime = (v) => {
|
|
7
8
|
return DATETIME_CACHE[v] ? DATETIME_CACHE[v] : dayjs(v, VALID_DATETIME_FORMATS, true);
|
|
8
9
|
};
|
|
10
|
+
const getDaysInMonth = (month, year) => {
|
|
11
|
+
return dayjs(`${year}-${month}-01`).daysInMonth();
|
|
12
|
+
};
|
|
9
13
|
const checkPartialDateTime = (value) => {
|
|
10
14
|
const [datePart, timePart] = value.split(" ");
|
|
11
|
-
const [day, month, year] = datePart
|
|
12
|
-
const [hours, minutes] = timePart
|
|
13
|
-
|
|
15
|
+
const [day, month, year] = datePart?.split("/") ?? [];
|
|
16
|
+
const [hours, minutes] = timePart?.split(":") ?? [];
|
|
17
|
+
const hasDay = Boolean(day);
|
|
18
|
+
const hasMonth = Boolean(month);
|
|
19
|
+
const hasYear = Boolean(year);
|
|
20
|
+
const hasHours = Boolean(hours);
|
|
21
|
+
const hasMinutes = Boolean(minutes);
|
|
22
|
+
if (hasDay && !hasMonth && !hasYear && !hasHours && !hasMinutes) {
|
|
23
|
+
return "form.error.datetime.invalid_month_year_hours_minutes";
|
|
24
|
+
}
|
|
25
|
+
if (!hasDay && hasMonth && !hasYear && !hasHours && !hasMinutes) {
|
|
26
|
+
return "form.error.datetime.invalid_day_year_hours_minutes";
|
|
27
|
+
}
|
|
28
|
+
if (!hasDay && !hasMonth && hasYear && !hasHours && !hasMinutes) {
|
|
29
|
+
return "form.error.datetime.invalid_day_month_hours_minutes";
|
|
30
|
+
}
|
|
31
|
+
if (hasDay && hasMonth && !hasYear && !hasHours && !hasMinutes) {
|
|
32
|
+
return "form.error.datetime.invalid_year_hours_minutes";
|
|
33
|
+
}
|
|
34
|
+
if (hasDay && !hasMonth && hasYear && !hasHours && !hasMinutes) {
|
|
35
|
+
return "form.error.datetime.invalid_month_hours_minutes";
|
|
36
|
+
}
|
|
37
|
+
if (!hasDay && hasMonth && hasYear && !hasHours && !hasMinutes) {
|
|
38
|
+
return "form.error.datetime.invalid_day_hours_minutes";
|
|
39
|
+
}
|
|
40
|
+
if (hasDay && hasMonth && hasYear && !hasHours && !hasMinutes) {
|
|
41
|
+
return "form.error.datetime.invalid__hours_minutes";
|
|
42
|
+
}
|
|
43
|
+
if (hasDay && hasMonth && hasYear && hasHours && !hasMinutes) {
|
|
44
|
+
return "form.error.datetime.invalid_minutes";
|
|
45
|
+
}
|
|
46
|
+
if (hasDay && hasMonth && hasYear && !hasHours && hasMinutes) {
|
|
47
|
+
return "form.error.datetime.invalid_hours";
|
|
48
|
+
}
|
|
49
|
+
if (hasDay && !hasMonth && !hasYear && hasHours && !hasMinutes) {
|
|
50
|
+
return "form.error.datetime.invalid_month_year_minutes";
|
|
51
|
+
}
|
|
52
|
+
if (hasDay && !hasMonth && !hasYear && !hasHours && hasMinutes) {
|
|
53
|
+
return "form.error.datetime.invalid_month_year_hours";
|
|
54
|
+
}
|
|
55
|
+
if (hasDay && !hasMonth && !hasYear && hasHours && hasMinutes) {
|
|
14
56
|
return "form.error.datetime.invalid_month_year";
|
|
15
57
|
}
|
|
16
|
-
if (!
|
|
58
|
+
if (!hasDay && hasMonth && !hasYear && hasHours && !hasMinutes) {
|
|
59
|
+
return "form.error.datetime.invalid_day_year_minutes";
|
|
60
|
+
}
|
|
61
|
+
if (!hasDay && hasMonth && !hasYear && !hasHours && hasMinutes) {
|
|
62
|
+
return "form.error.datetime.invalid_day_year_hours";
|
|
63
|
+
}
|
|
64
|
+
if (!hasDay && hasMonth && !hasYear && hasHours && hasMinutes) {
|
|
17
65
|
return "form.error.datetime.invalid_day_year";
|
|
18
66
|
}
|
|
19
|
-
if (!
|
|
67
|
+
if (!hasDay && !hasMonth && hasYear && hasHours && !hasMinutes) {
|
|
68
|
+
return "form.error.datetime.invalid_day_month_minutes";
|
|
69
|
+
}
|
|
70
|
+
if (!hasDay && !hasMonth && hasYear && !hasHours && hasMinutes) {
|
|
71
|
+
return "form.error.datetime.invalid_day_month_hours";
|
|
72
|
+
}
|
|
73
|
+
if (!hasDay && !hasMonth && hasYear && hasHours && hasMinutes) {
|
|
20
74
|
return "form.error.datetime.invalid_day_month";
|
|
21
75
|
}
|
|
22
|
-
if (
|
|
76
|
+
if (!hasDay && !hasMonth && !hasYear && hasHours && hasMinutes) {
|
|
77
|
+
return "form.error.datetime.invalid_day_month_year";
|
|
78
|
+
}
|
|
79
|
+
if (!hasDay && !hasMonth && !hasYear && !hasHours && hasMinutes) {
|
|
80
|
+
return "form.error.datetime.invalid_day_month_year_hours";
|
|
81
|
+
}
|
|
82
|
+
if (hasDay && hasMonth && !hasYear && hasHours && !hasMinutes) {
|
|
83
|
+
return "form.error.datetime.invalid_year_minutes";
|
|
84
|
+
}
|
|
85
|
+
if (hasDay && hasMonth && !hasYear && !hasHours && hasMinutes) {
|
|
86
|
+
return "form.error.datetime.invalid_year_hours";
|
|
87
|
+
}
|
|
88
|
+
if (hasDay && hasMonth && !hasYear && hasHours && hasMinutes) {
|
|
23
89
|
return "form.error.datetime.invalid_year";
|
|
24
90
|
}
|
|
25
|
-
if (
|
|
91
|
+
if (hasDay && !hasMonth && hasYear && hasHours && !hasMinutes) {
|
|
92
|
+
return "form.error.datetime.invalid_month_minutes";
|
|
93
|
+
}
|
|
94
|
+
if (hasDay && !hasMonth && hasYear && !hasHours && hasMinutes) {
|
|
95
|
+
return "form.error.datetime.invalid_month_hours";
|
|
96
|
+
}
|
|
97
|
+
if (hasDay && !hasMonth && hasYear && hasHours && hasMinutes) {
|
|
26
98
|
return "form.error.datetime.invalid_month";
|
|
27
99
|
}
|
|
28
|
-
if (!
|
|
100
|
+
if (!hasDay && hasMonth && hasYear && hasHours && !hasMinutes) {
|
|
101
|
+
return "form.error.datetime.invalid_day_minutes";
|
|
102
|
+
}
|
|
103
|
+
if (!hasDay && hasMonth && hasYear && !hasHours && hasMinutes) {
|
|
104
|
+
return "form.error.datetime.invalid_day_hours";
|
|
105
|
+
}
|
|
106
|
+
if (!hasDay && hasMonth && hasYear && hasHours && hasMinutes) {
|
|
29
107
|
return "form.error.datetime.invalid_day";
|
|
30
108
|
}
|
|
31
|
-
if (
|
|
32
|
-
|
|
33
|
-
|
|
109
|
+
if (!hasDay && !hasMonth && !hasYear && hasHours && !hasMinutes) {
|
|
110
|
+
return "form.error.datetime.invalid_day_month_year_minutes";
|
|
111
|
+
}
|
|
112
|
+
if (hasDay && hasMonth && hasYear && !hasHours && !hasMinutes) {
|
|
113
|
+
return "form.error.datetime.invalid_hours_minutes";
|
|
114
|
+
}
|
|
115
|
+
if (day && month) {
|
|
116
|
+
const dayNum = parseInt(day);
|
|
117
|
+
const monthNum = parseInt(month);
|
|
118
|
+
const validYear = onlyNumbersRegex.test(year) ? year : void 0;
|
|
119
|
+
if (!validYear || year.length < 4) {
|
|
120
|
+
return "form.error.datetime.invalid";
|
|
34
121
|
}
|
|
35
|
-
|
|
36
|
-
|
|
122
|
+
const yearNum = parseInt(validYear);
|
|
123
|
+
const maxDay = getDaysInMonth(monthNum, yearNum);
|
|
124
|
+
if (dayNum < 1 || dayNum > maxDay) {
|
|
125
|
+
return {
|
|
126
|
+
key: "form.error.datetime.invalid_day_range",
|
|
127
|
+
context: {
|
|
128
|
+
maxDay
|
|
129
|
+
}
|
|
130
|
+
};
|
|
37
131
|
}
|
|
38
|
-
if (
|
|
39
|
-
return "form.error.datetime.
|
|
132
|
+
if (monthNum < 1 || monthNum > 12) {
|
|
133
|
+
return "form.error.datetime.invalid_month_range";
|
|
40
134
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
135
|
+
}
|
|
136
|
+
if (hours && minutes) {
|
|
137
|
+
const hoursNum = parseInt(hours);
|
|
138
|
+
const minutesNum = parseInt(minutes);
|
|
139
|
+
if (hoursNum < 0 || hoursNum > 23) {
|
|
140
|
+
return "form.error.datetime.invalid_hours_range";
|
|
141
|
+
}
|
|
142
|
+
if (minutesNum < 0 || minutesNum > 59) {
|
|
143
|
+
return "form.error.datetime.invalid_minutes_range";
|
|
50
144
|
}
|
|
51
145
|
}
|
|
52
146
|
return "form.error.datetime.invalid";
|
|
@@ -4,6 +4,6 @@ export declare const LATER_THAN_DATETIME_VALIDATOR: (field: FieldSpec) => Valida
|
|
|
4
4
|
export declare const EARLIER_THAN_DATETIME_VALIDATOR: (field: FieldSpec) => ValidatorSchema;
|
|
5
5
|
export declare const DATETIME_VALIDATOR: {
|
|
6
6
|
name: string;
|
|
7
|
-
message: (v: any) => string;
|
|
7
|
+
message: (v: any) => string | object;
|
|
8
8
|
test: (value: string) => any;
|
|
9
9
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/validators/utils/datetime.ts"],
|
|
4
|
-
"sourcesContent": ["import dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { FieldSpec } from '@digigov/form/types';\nimport { ValidatorSchema } from '@digigov/form/validators/types';\n\ndayjs.extend(customParseFormat);\n\nconst VALID_DATETIME_FORMATS = ['DD/MM/YYYY HH:mm'];\nconst DATETIME_CACHE = {};\n\nconst getDateTime = (v: string) => {\n return DATETIME_CACHE[v]\n ? DATETIME_CACHE[v]\n : dayjs(v, VALID_DATETIME_FORMATS, true);\n};\n\n//
|
|
5
|
-
"mappings": "AAAA,OAAO,WAAW;AAClB,OAAO,uBAAuB;AAI9B,MAAM,OAAO,iBAAiB;AAE9B,MAAM,yBAAyB,CAAC,kBAAkB;AAClD,MAAM,iBAAiB,CAAC;
|
|
4
|
+
"sourcesContent": ["import dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { FieldSpec } from '@digigov/form/types';\nimport { ValidatorSchema } from '@digigov/form/validators/types';\n\ndayjs.extend(customParseFormat);\n\nconst VALID_DATETIME_FORMATS = ['DD/MM/YYYY HH:mm'];\nconst DATETIME_CACHE = {};\nconst onlyNumbersRegex = /^\\d+$/;\n\nconst getDateTime = (v: string) => {\n return DATETIME_CACHE[v]\n ? DATETIME_CACHE[v]\n : dayjs(v, VALID_DATETIME_FORMATS, true);\n};\n\nconst getDaysInMonth = (month: number, year: number): number => {\n return dayjs(`${year}-${month}-01`).daysInMonth(); // e.g. 29 for Feb 2024\n};\n\nconst checkPartialDateTime = (value: string) => {\n const [datePart, timePart] = value.split(' ');\n const [day, month, year] = datePart?.split('/') ?? [];\n const [hours, minutes] = timePart?.split(':') ?? [];\n\n const hasDay = Boolean(day);\n const hasMonth = Boolean(month);\n const hasYear = Boolean(year);\n const hasHours = Boolean(hours);\n const hasMinutes = Boolean(minutes);\n\n if (hasDay && !hasMonth && !hasYear && !hasHours && !hasMinutes) {\n return 'form.error.datetime.invalid_month_year_hours_minutes';\n }\n if (!hasDay && hasMonth && !hasYear && !hasHours && !hasMinutes) {\n return 'form.error.datetime.invalid_day_year_hours_minutes';\n }\n if (!hasDay && !hasMonth && hasYear && !hasHours && !hasMinutes) {\n return 'form.error.datetime.invalid_day_month_hours_minutes';\n }\n if (hasDay && hasMonth && !hasYear && !hasHours && !hasMinutes) {\n return 'form.error.datetime.invalid_year_hours_minutes';\n }\n if (hasDay && !hasMonth && hasYear && !hasHours && !hasMinutes) {\n return 'form.error.datetime.invalid_month_hours_minutes';\n }\n if (!hasDay && hasMonth && hasYear && !hasHours && !hasMinutes) {\n return 'form.error.datetime.invalid_day_hours_minutes';\n }\n if (hasDay && hasMonth && hasYear && !hasHours && !hasMinutes) {\n return 'form.error.datetime.invalid__hours_minutes';\n }\n if (hasDay && hasMonth && hasYear && hasHours && !hasMinutes) {\n return 'form.error.datetime.invalid_minutes';\n }\n if (hasDay && hasMonth && hasYear && !hasHours && hasMinutes) {\n return 'form.error.datetime.invalid_hours';\n }\n if (hasDay && !hasMonth && !hasYear && hasHours && !hasMinutes) {\n return 'form.error.datetime.invalid_month_year_minutes';\n }\n if (hasDay && !hasMonth && !hasYear && !hasHours && hasMinutes) {\n return 'form.error.datetime.invalid_month_year_hours';\n }\n if (hasDay && !hasMonth && !hasYear && hasHours && hasMinutes) {\n return 'form.error.datetime.invalid_month_year';\n }\n if (!hasDay && hasMonth && !hasYear && hasHours && !hasMinutes) {\n return 'form.error.datetime.invalid_day_year_minutes';\n }\n if (!hasDay && hasMonth && !hasYear && !hasHours && hasMinutes) {\n return 'form.error.datetime.invalid_day_year_hours';\n }\n if (!hasDay && hasMonth && !hasYear && hasHours && hasMinutes) {\n return 'form.error.datetime.invalid_day_year';\n }\n if (!hasDay && !hasMonth && hasYear && hasHours && !hasMinutes) {\n return 'form.error.datetime.invalid_day_month_minutes';\n }\n if (!hasDay && !hasMonth && hasYear && !hasHours && hasMinutes) {\n return 'form.error.datetime.invalid_day_month_hours';\n }\n if (!hasDay && !hasMonth && hasYear && hasHours && hasMinutes) {\n return 'form.error.datetime.invalid_day_month';\n }\n if (!hasDay && !hasMonth && !hasYear && hasHours && hasMinutes) {\n return 'form.error.datetime.invalid_day_month_year';\n }\n if (!hasDay && !hasMonth && !hasYear && !hasHours && hasMinutes) {\n return 'form.error.datetime.invalid_day_month_year_hours';\n }\n if (hasDay && hasMonth && !hasYear && hasHours && !hasMinutes) {\n return 'form.error.datetime.invalid_year_minutes';\n }\n if (hasDay && hasMonth && !hasYear && !hasHours && hasMinutes) {\n return 'form.error.datetime.invalid_year_hours';\n }\n if (hasDay && hasMonth && !hasYear && hasHours && hasMinutes) {\n return 'form.error.datetime.invalid_year';\n }\n if (hasDay && !hasMonth && hasYear && hasHours && !hasMinutes) {\n return 'form.error.datetime.invalid_month_minutes';\n }\n if (hasDay && !hasMonth && hasYear && !hasHours && hasMinutes) {\n return 'form.error.datetime.invalid_month_hours';\n }\n if (hasDay && !hasMonth && hasYear && hasHours && hasMinutes) {\n return 'form.error.datetime.invalid_month';\n }\n if (!hasDay && hasMonth && hasYear && hasHours && !hasMinutes) {\n return 'form.error.datetime.invalid_day_minutes';\n }\n if (!hasDay && hasMonth && hasYear && !hasHours && hasMinutes) {\n return 'form.error.datetime.invalid_day_hours';\n }\n if (!hasDay && hasMonth && hasYear && hasHours && hasMinutes) {\n return 'form.error.datetime.invalid_day';\n }\n if (!hasDay && !hasMonth && !hasYear && hasHours && !hasMinutes) {\n return 'form.error.datetime.invalid_day_month_year_minutes';\n }\n if (hasDay && hasMonth && hasYear && !hasHours && !hasMinutes) {\n return 'form.error.datetime.invalid_hours_minutes';\n }\n if (day && month) {\n const dayNum = parseInt(day);\n const monthNum = parseInt(month);\n const validYear = onlyNumbersRegex.test(year) ? year : undefined;\n if (!validYear || year.length < 4) {\n return 'form.error.datetime.invalid';\n }\n const yearNum = parseInt(validYear);\n const maxDay = getDaysInMonth(monthNum, yearNum);\n if (dayNum < 1 || dayNum > maxDay) {\n return {\n key: 'form.error.datetime.invalid_day_range',\n context: {\n maxDay: maxDay,\n },\n };\n }\n if (monthNum < 1 || monthNum > 12) {\n return 'form.error.datetime.invalid_month_range';\n }\n }\n if (hours && minutes) {\n const hoursNum = parseInt(hours);\n const minutesNum = parseInt(minutes);\n if (hoursNum < 0 || hoursNum > 23) {\n return 'form.error.datetime.invalid_hours_range';\n }\n if (minutesNum < 0 || minutesNum > 59) {\n return 'form.error.datetime.invalid_minutes_range';\n }\n }\n return 'form.error.datetime.invalid';\n};\n\nexport const LATER_THAN_DATETIME_VALIDATOR = (\n field: FieldSpec\n): ValidatorSchema => {\n let minDateTime;\n const params = field.extra || {};\n if (params.min === 'now') {\n minDateTime = dayjs();\n } else {\n minDateTime = getDateTime(params.min);\n }\n return {\n name: 'later-than-datetime',\n message: {\n key: 'form.error.datetime.later_than',\n context: {\n minDateTime: minDateTime.format('DD/MM/YYYY HH:mm'),\n },\n },\n test: function (value: string) {\n if (!value) return true;\n const datetime = getDateTime(value);\n return datetime.isValid() && datetime.isAfter(minDateTime);\n },\n };\n};\n\nexport const EARLIER_THAN_DATETIME_VALIDATOR = (\n field: FieldSpec\n): ValidatorSchema => {\n let maxDateTime;\n const params = field.extra || {};\n if (params.max === 'now') {\n maxDateTime = dayjs();\n } else {\n maxDateTime = getDateTime(params.max);\n }\n return {\n name: 'earlier-than-datetime',\n message: {\n key: 'form.error.datetime.earlier_than',\n context: {\n maxDateTime: maxDateTime.format('DD/MM/YYYY HH:mm'),\n },\n },\n test: function (value: string) {\n if (!value) return true;\n const datetime = getDateTime(value);\n return datetime.isValid() && datetime.isBefore(maxDateTime);\n },\n };\n};\n\nexport const DATETIME_VALIDATOR = {\n name: 'datetime-validator',\n message: (v): string | object => {\n return checkPartialDateTime(v.value);\n },\n test: function (value: string) {\n if (!value) return true;\n const datetime = getDateTime(value);\n return datetime.isValid();\n },\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|