@scbt-ecom/ui 0.74.0 → 0.75.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/hooks.js +2 -2
- package/dist/index-BcOxdcOI.js +561 -0
- package/dist/{index-CrR6G9lz.js.map → index-BcOxdcOI.js.map} +1 -1
- package/dist/{index-HbdkFbuN.js → index-DRIZ5Qrl.js} +5326 -5310
- package/dist/{index-HbdkFbuN.js.map → index-DRIZ5Qrl.js.map} +1 -1
- package/dist/shared/ui/formElements/controlled/slider/SliderControl.d.ts +1 -1
- package/dist/shared/ui/formElements/uncontrolled/index.d.ts +1 -1
- package/dist/shared/ui/formElements/uncontrolled/slider/index.d.ts +1 -0
- package/dist/shared/ui/formElements/uncontrolled/slider/model/index.d.ts +2 -0
- package/dist/shared/ui/formElements/uncontrolled/slider/model/types.d.ts +10 -0
- package/dist/shared/ui/formElements/uncontrolled/slider/ui/Slider.d.ts +3 -1
- package/dist/shared/ui/formElements/uncontrolled/slider/ui/sliderAlgorithmic/SliderAlgorithmic.d.ts +1 -1
- package/dist/shared/ui/formElements/uncontrolled/slider/ui/sliderMarks/SliderMarks.d.ts +1 -1
- package/dist/shared/ui/formElements/uncontrolled/slider/ui/sliderStep/SliderStep.d.ts +1 -1
- package/dist/shared/validation/messages.d.ts +3 -0
- package/dist/ui.js +4 -4
- package/dist/{useDebounce-B__kmLt7.js → useDebounce-BH0d8exl.js} +386 -382
- package/dist/useDebounce-BH0d8exl.js.map +1 -0
- package/dist/{useFieldsProgress-BtrWDMY2.js → useFieldsProgress-dcSmd8dw.js} +2 -2
- package/dist/{useFieldsProgress-BtrWDMY2.js.map → useFieldsProgress-dcSmd8dw.js.map} +1 -1
- package/dist/{utils-k3uzuyeN.js → utils-CaWgHX_C.js} +1224 -1256
- package/dist/utils-CaWgHX_C.js.map +1 -0
- package/dist/validation.js +47 -47
- package/dist/validation.js.map +1 -1
- package/dist/widget.js +953 -891
- package/dist/widget.js.map +1 -1
- package/dist/widgets/calculator/ui/calculatorFields/CalculatorFields.d.ts +4 -1
- package/dist/widgets/calculator/ui/calculatorFields/hooks/index.d.ts +1 -0
- package/dist/widgets/calculator/ui/calculatorFields/hooks/useAdditionalSlider.d.ts +19 -0
- package/dist/widgets/calculator/ui/calculatorFields/ui/AdditionalSlider.d.ts +8 -0
- package/dist/widgets/calculator/ui/calculatorFields/ui/FieldsGroup.d.ts +6 -1
- package/dist/widgets/calculator/ui/calculatorFields/ui/index.d.ts +1 -0
- package/dist/widgets/model/utils.d.ts +1 -1
- package/package.json +1 -1
- package/dist/index-CrR6G9lz.js +0 -446
- package/dist/useDebounce-B__kmLt7.js.map +0 -1
- package/dist/utils-k3uzuyeN.js.map +0 -1
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { FieldValues } from 'react-hook-form';
|
|
2
|
+
import { AdditionalSliderGroupConfig, SlidersGroupProps } from './FieldsGroup';
|
|
3
|
+
interface AdditionalSliderProps<T extends FieldValues> {
|
|
4
|
+
additionalSliderGroupConfig: AdditionalSliderGroupConfig<T>;
|
|
5
|
+
slidersGroupConfig: SlidersGroupProps<T>;
|
|
6
|
+
}
|
|
7
|
+
export declare const AdditionalSlider: <T extends FieldValues>({ slidersGroupConfig, additionalSliderGroupConfig }: AdditionalSliderProps<T>) => import("react/jsx-runtime").JSX.Element | null;
|
|
8
|
+
export {};
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { FieldValues } from 'react-hook-form';
|
|
2
2
|
import { FieldElementWithoutControl } from '../../../../fieldMapper';
|
|
3
3
|
import { FieldValidation } from '../../../../model';
|
|
4
|
-
|
|
4
|
+
import { SliderAdditionalProps } from '../../../../../shared/ui/formElements/uncontrolled/slider';
|
|
5
|
+
export type ValidationField = {
|
|
5
6
|
validation: FieldValidation;
|
|
6
7
|
};
|
|
7
8
|
export interface SelectGroupProps<T extends FieldValues> {
|
|
@@ -20,6 +21,10 @@ export interface SlidersGroupProps<T extends FieldValues> {
|
|
|
20
21
|
export interface SwitchGroupProps<T extends FieldValues> {
|
|
21
22
|
fields: FieldElementWithoutControl<T, 'SwitchControl', ValidationField>[];
|
|
22
23
|
}
|
|
24
|
+
export interface AdditionalSliderGroupConfig<T extends FieldValues> {
|
|
25
|
+
args: SliderAdditionalProps<T>;
|
|
26
|
+
type: 'SliderControl';
|
|
27
|
+
}
|
|
23
28
|
export type FieldsGroupProps<T extends FieldValues> = SelectGroupProps<T> | CheckboxGroupProps<T> | RadioGroupProps<T> | SlidersGroupProps<T> | SwitchGroupProps<T>;
|
|
24
29
|
export declare const FieldsGroup: <T extends FieldValues>({ fields }: FieldsGroupProps<T>) => import("react/jsx-runtime").JSX.Element;
|
|
25
30
|
export {};
|
package/package.json
CHANGED
package/dist/index-CrR6G9lz.js
DELETED
|
@@ -1,446 +0,0 @@
|
|
|
1
|
-
import { z as s, f as m, D as I, p as T, i as A, s as L } from "./utils-k3uzuyeN.js";
|
|
2
|
-
import { T as f } from "./typeGuards-CSiImkUY.js";
|
|
3
|
-
const D = (e) => {
|
|
4
|
-
const { defaultValue: t } = e || {};
|
|
5
|
-
return s.boolean().default(t ?? !1);
|
|
6
|
-
}, y = (e) => D(e).optional();
|
|
7
|
-
function P(e) {
|
|
8
|
-
const { required: t = !0, ...r } = e || {};
|
|
9
|
-
return t ? D(r) : y(r);
|
|
10
|
-
}
|
|
11
|
-
const u = {
|
|
12
|
-
NON_EMPTY: () => "Поле не может быть пустым",
|
|
13
|
-
MIN_LENGTH: (e) => `Поле должно содержать минимум символов: ${e}`,
|
|
14
|
-
MAX_LENGTH: (e) => `Поле должно содержать максимум символов: ${e}`,
|
|
15
|
-
FIX_LENGTH: (e) => `Поле должно быть фиксированной длины символов: ${e}`,
|
|
16
|
-
MIN_VALUE: (e) => `Значение не может быть меньше чем ${e}`,
|
|
17
|
-
MAX_VALUE: (e) => `Значение не может быть больше чем ${e}`,
|
|
18
|
-
PHONE_NON_EMPTY: () => "Номер телефона должен состоять из 11 цифр",
|
|
19
|
-
PHONE_INVALID_OPERATOR: () => "Код города/оператора должен начинаться с цифры 3, 4, 5, 6 или 9",
|
|
20
|
-
EMAIL_INVALID: () => "Email введен некорректно. Пример: example@domain.ru",
|
|
21
|
-
EMAIL_NON_EMPTY: () => "Введите адрес электронной почты",
|
|
22
|
-
SELECT_NON_EMPTY: () => "Выберите один из вариантов",
|
|
23
|
-
SELECT_MULTIPLE_MIN_LENGTH: (e) => `Выберите не менее ${e} вариантов`,
|
|
24
|
-
SELECT_MULTIPLE_MAX_LENGTH: (e) => `Выберите не более ${e} вариантов`,
|
|
25
|
-
SELECT_FIX_LENGTH: (e) => `Поле должно быть фиксированного количества вариантов: ${e}`,
|
|
26
|
-
DATE_INVALID_FORMAT: () => "Дата указана некорректно",
|
|
27
|
-
DATE_NON_EMPTY: () => "Укажите дату",
|
|
28
|
-
VALUE_OUT_OF_RANGE: (e) => `Выберите один из вариантов ${e.join(", ")}`,
|
|
29
|
-
DATE_MIN: (e) => {
|
|
30
|
-
const t = f.isString(e) ? new Date(e) : e;
|
|
31
|
-
return `Выбранная дата должна быть не раньше ${m(t)}`;
|
|
32
|
-
},
|
|
33
|
-
DATE_MAX: (e) => {
|
|
34
|
-
const t = f.isString(e) ? new Date(e) : e;
|
|
35
|
-
return `Выбранная дата должна быть не позже ${m(t)}`;
|
|
36
|
-
},
|
|
37
|
-
INVALID_REGEX_STRING: () => "Поле не соответствует требованиям",
|
|
38
|
-
INVALID_URL: () => "Ссылка введена некорректно. Пример: https://example.com, example.com"
|
|
39
|
-
}, V = (e) => {
|
|
40
|
-
const { iso: t = !0, pattern: r = I, min: n, max: i, defaultValue: o, message: d } = e || {};
|
|
41
|
-
return s.string().min(8, (d == null ? void 0 : d.min) || u.DATE_NON_EMPTY()).superRefine((l, a) => {
|
|
42
|
-
const c = r.replace(/\W/g, "").length;
|
|
43
|
-
if (l.replace(/[._-]/g, "").length < c && a.addIssue({
|
|
44
|
-
code: s.ZodIssueCode.too_small,
|
|
45
|
-
minimum: c,
|
|
46
|
-
type: "date",
|
|
47
|
-
inclusive: !0,
|
|
48
|
-
message: (d == null ? void 0 : d.min) || u.DATE_NON_EMPTY()
|
|
49
|
-
}), t) {
|
|
50
|
-
let g = null;
|
|
51
|
-
try {
|
|
52
|
-
g = new Date(l);
|
|
53
|
-
} catch {
|
|
54
|
-
a.addIssue({
|
|
55
|
-
code: s.ZodIssueCode.invalid_date,
|
|
56
|
-
message: (d == null ? void 0 : d.invalidDate) || u.DATE_INVALID_FORMAT()
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
n && g.getTime() < (f.isString(n) ? new Date(n).getTime() : n.getTime()) && a.addIssue({
|
|
60
|
-
code: s.ZodIssueCode.invalid_date,
|
|
61
|
-
message: (d == null ? void 0 : d.min) || u.DATE_MIN(n)
|
|
62
|
-
}), i && g.getTime() > (f.isString(i) ? new Date(i).getTime() : i.getTime()) && a.addIssue({
|
|
63
|
-
code: s.ZodIssueCode.invalid_date,
|
|
64
|
-
message: (d == null ? void 0 : d.max) || u.DATE_MAX(i)
|
|
65
|
-
});
|
|
66
|
-
} else {
|
|
67
|
-
const g = T(l, r, /* @__PURE__ */ new Date());
|
|
68
|
-
A(g) || a.addIssue({
|
|
69
|
-
code: s.ZodIssueCode.invalid_date,
|
|
70
|
-
message: (d == null ? void 0 : d.invalidDate) || u.DATE_INVALID_FORMAT()
|
|
71
|
-
}), n && g.getTime() < (f.isString(n) ? new Date(n).getTime() : n.getTime()) && a.addIssue({
|
|
72
|
-
code: s.ZodIssueCode.invalid_date,
|
|
73
|
-
message: (d == null ? void 0 : d.min) || u.DATE_MIN(n)
|
|
74
|
-
}), i && g.getTime() > (f.isString(i) ? new Date(i).getTime() : i.getTime()) && a.addIssue({
|
|
75
|
-
code: s.ZodIssueCode.invalid_date,
|
|
76
|
-
message: (d == null ? void 0 : d.max) || u.DATE_MAX(i)
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
}).default(o ?? "");
|
|
80
|
-
}, h = (e) => {
|
|
81
|
-
const { iso: t = !0, pattern: r = I, min: n, max: i, message: o } = e || {};
|
|
82
|
-
return s.string().transform((d) => d || void 0).superRefine((d, l) => {
|
|
83
|
-
if (f.isString(d) && d.length) {
|
|
84
|
-
const a = r.replace(/\W/g, "").length;
|
|
85
|
-
if (d.replace(/[._-]/g, "").length < a && l.addIssue({
|
|
86
|
-
code: s.ZodIssueCode.too_small,
|
|
87
|
-
minimum: a,
|
|
88
|
-
type: "date",
|
|
89
|
-
inclusive: !0,
|
|
90
|
-
message: (o == null ? void 0 : o.min) || u.DATE_NON_EMPTY()
|
|
91
|
-
}), t) {
|
|
92
|
-
let _ = null;
|
|
93
|
-
try {
|
|
94
|
-
_ = new Date(d);
|
|
95
|
-
} catch {
|
|
96
|
-
l.addIssue({
|
|
97
|
-
code: s.ZodIssueCode.invalid_date,
|
|
98
|
-
message: (o == null ? void 0 : o.invalidDate) || u.DATE_INVALID_FORMAT()
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
n && _.getTime() < (f.isString(n) ? new Date(n).getTime() : n.getTime()) && l.addIssue({
|
|
102
|
-
code: s.ZodIssueCode.invalid_date,
|
|
103
|
-
message: (o == null ? void 0 : o.min) || u.DATE_MIN(n)
|
|
104
|
-
}), i && _.getTime() > (f.isString(i) ? new Date(i).getTime() : i.getTime()) && l.addIssue({
|
|
105
|
-
code: s.ZodIssueCode.invalid_date,
|
|
106
|
-
message: (o == null ? void 0 : o.max) || u.DATE_MAX(i)
|
|
107
|
-
});
|
|
108
|
-
} else {
|
|
109
|
-
const _ = T(d, r, /* @__PURE__ */ new Date());
|
|
110
|
-
A(_) || l.addIssue({
|
|
111
|
-
code: s.ZodIssueCode.invalid_date,
|
|
112
|
-
message: (o == null ? void 0 : o.invalidDate) || u.DATE_INVALID_FORMAT()
|
|
113
|
-
}), n && _.getTime() < (f.isString(n) ? new Date(n).getTime() : n.getTime()) && l.addIssue({
|
|
114
|
-
code: s.ZodIssueCode.invalid_date,
|
|
115
|
-
message: (o == null ? void 0 : o.min) || u.DATE_MIN(n)
|
|
116
|
-
}), i && _.getTime() > (f.isString(i) ? new Date(i).getTime() : i.getTime()) && l.addIssue({
|
|
117
|
-
code: s.ZodIssueCode.invalid_date,
|
|
118
|
-
message: (o == null ? void 0 : o.max) || u.DATE_MAX(i)
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
}).optional();
|
|
123
|
-
};
|
|
124
|
-
function U(e) {
|
|
125
|
-
const { required: t = !0 } = e || {};
|
|
126
|
-
return t ? V(e) : h(e);
|
|
127
|
-
}
|
|
128
|
-
const O = /^[\w-.]+@([\w-]+\.)+[\w-]{2,4}$/g, Y = (e) => {
|
|
129
|
-
const { message: t, defaultValue: r, regexp: n = O } = e || {}, i = f.isString(n) ? new RegExp(n) : n;
|
|
130
|
-
return s.string().min(1, (t == null ? void 0 : t.min) || u.EMAIL_NON_EMPTY()).regex(i, (t == null ? void 0 : t.invalid) || u.EMAIL_INVALID()).default(r ?? "");
|
|
131
|
-
}, w = (e) => {
|
|
132
|
-
const { message: t, regexp: r = O } = e || {}, n = f.isString(r) ? new RegExp(r) : r;
|
|
133
|
-
return s.string().refine(
|
|
134
|
-
(i) => f.isStringEmpty(i) ? !0 : n.test(i),
|
|
135
|
-
{
|
|
136
|
-
message: (t == null ? void 0 : t.invalid) || u.EMAIL_INVALID()
|
|
137
|
-
}
|
|
138
|
-
).optional().transform((i) => (i == null ? void 0 : i.length) === 0 ? void 0 : i);
|
|
139
|
-
};
|
|
140
|
-
function p(e) {
|
|
141
|
-
const { required: t = !0 } = e || {};
|
|
142
|
-
return t ? Y(e) : w(e);
|
|
143
|
-
}
|
|
144
|
-
const M = (e) => {
|
|
145
|
-
const { min: t, max: r, message: n, defaultValue: i } = e || {};
|
|
146
|
-
let o = s.coerce.number();
|
|
147
|
-
return t && (o = o.min(t, (n == null ? void 0 : n.min) || u.MIN_VALUE(t))), r && (o = o.max(r, (n == null ? void 0 : n.min) || u.MAX_VALUE(r))), o.default(i ?? 0);
|
|
148
|
-
}, H = (e) => M(e).optional().transform((t) => t || void 0);
|
|
149
|
-
function x(e) {
|
|
150
|
-
const { required: t = !0 } = e || {};
|
|
151
|
-
return t ? M(e) : H(e);
|
|
152
|
-
}
|
|
153
|
-
const b = (e) => {
|
|
154
|
-
const {
|
|
155
|
-
ignoreMask: t = !0,
|
|
156
|
-
maskSymbols: r = /[()+_ -]/g,
|
|
157
|
-
message: n,
|
|
158
|
-
defaultValue: i,
|
|
159
|
-
validOperatorCodes: o = ["3", "4", "5", "6", "7", "9"]
|
|
160
|
-
} = e || {}, d = f.isString(r) ? new RegExp(r) : r;
|
|
161
|
-
let l = s.string().superRefine((a, c) => {
|
|
162
|
-
const _ = a.replace(d, ""), g = _.charAt(1);
|
|
163
|
-
o.includes(g) || c.addIssue({
|
|
164
|
-
code: s.ZodIssueCode.invalid_string,
|
|
165
|
-
validation: "regex",
|
|
166
|
-
message: (n == null ? void 0 : n.invalidOperator) || u.PHONE_INVALID_OPERATOR()
|
|
167
|
-
}), _.length < 11 && c.addIssue({
|
|
168
|
-
code: s.ZodIssueCode.too_small,
|
|
169
|
-
minimum: 11,
|
|
170
|
-
inclusive: !0,
|
|
171
|
-
type: "string",
|
|
172
|
-
message: (n == null ? void 0 : n.min) || u.PHONE_NON_EMPTY()
|
|
173
|
-
});
|
|
174
|
-
});
|
|
175
|
-
return t && (l = l.transform((a) => a.replace(d, ""))), l.default(i ?? "");
|
|
176
|
-
}, G = (e) => {
|
|
177
|
-
const {
|
|
178
|
-
ignoreMask: t = !0,
|
|
179
|
-
maskSymbols: r = /[()+_ -]/g,
|
|
180
|
-
message: n,
|
|
181
|
-
validOperatorCodes: i = ["3", "4", "5", "6", "7", "9"]
|
|
182
|
-
} = e || {}, o = f.isString(r) ? new RegExp(r) : r;
|
|
183
|
-
let d = s.string().superRefine((l, a) => {
|
|
184
|
-
const c = l.replace(o, ""), _ = c.charAt(1);
|
|
185
|
-
i.includes(_) || a.addIssue({
|
|
186
|
-
code: s.ZodIssueCode.invalid_string,
|
|
187
|
-
validation: "regex",
|
|
188
|
-
message: (n == null ? void 0 : n.invalidOperator) || u.PHONE_INVALID_OPERATOR()
|
|
189
|
-
}), c.length < 11 && a.addIssue({
|
|
190
|
-
code: s.ZodIssueCode.too_small,
|
|
191
|
-
minimum: 11,
|
|
192
|
-
inclusive: !0,
|
|
193
|
-
type: "string",
|
|
194
|
-
message: (n == null ? void 0 : n.min) || u.PHONE_NON_EMPTY()
|
|
195
|
-
});
|
|
196
|
-
});
|
|
197
|
-
return t && (d = d.transform((l) => l.replace(o, ""))), d.transform((l) => l || void 0);
|
|
198
|
-
};
|
|
199
|
-
function q(e) {
|
|
200
|
-
const { required: t = !0 } = e || {};
|
|
201
|
-
return t ? b(e) : G(e);
|
|
202
|
-
}
|
|
203
|
-
const Z = (e, t) => {
|
|
204
|
-
const { message: r, defaultValue: n = "" } = t || {};
|
|
205
|
-
return s.string().nonempty(u.NON_EMPTY()).regex(e, r || u.INVALID_REGEX_STRING()).default(n);
|
|
206
|
-
}, X = (e, t) => Z(e, t).optional().transform((r) => r != null && r.length ? r : void 0);
|
|
207
|
-
function v(e, t) {
|
|
208
|
-
const { required: r = !0, ...n } = t || {};
|
|
209
|
-
return r ? Z(e, n) : X(e, n);
|
|
210
|
-
}
|
|
211
|
-
const F = (e) => {
|
|
212
|
-
var i, o;
|
|
213
|
-
const { message: t, defaultValue: r } = e || {}, n = s.string().min(1, (t == null ? void 0 : t.single) || u.SELECT_NON_EMPTY()).nullable().refine((d) => !!d, (t == null ? void 0 : t.single) || u.SELECT_NON_EMPTY()).default(r ?? null);
|
|
214
|
-
if (e != null && e.multiple) {
|
|
215
|
-
let d = s.array(n).min((e == null ? void 0 : e.minLength) || 0, (t == null ? void 0 : t.multiple) || u.SELECT_MULTIPLE_MIN_LENGTH((e == null ? void 0 : e.minLength) || 0));
|
|
216
|
-
return e != null && e.length ? d.length(e.length, ((i = e.message) == null ? void 0 : i.length) || u.SELECT_FIX_LENGTH(e.length)).default([]) : (e != null && e.maxLength && (d = d.max(
|
|
217
|
-
e.maxLength,
|
|
218
|
-
((o = e.message) == null ? void 0 : o.maxLength) || u.SELECT_MULTIPLE_MAX_LENGTH(e.maxLength)
|
|
219
|
-
)), d.default([]));
|
|
220
|
-
}
|
|
221
|
-
return n;
|
|
222
|
-
};
|
|
223
|
-
function $(e) {
|
|
224
|
-
const t = s.string().nullable().optional();
|
|
225
|
-
return e != null && e.multiple ? s.array(t).optional() : t;
|
|
226
|
-
}
|
|
227
|
-
function B(e) {
|
|
228
|
-
const { required: t = !0 } = e || {};
|
|
229
|
-
return t ? F(e) : $(e);
|
|
230
|
-
}
|
|
231
|
-
const j = (e) => {
|
|
232
|
-
const { min: t, max: r, length: n, defaultValue: i, message: o } = e || {};
|
|
233
|
-
let d = s.string({ message: o == null ? void 0 : o.root });
|
|
234
|
-
return t && (d = d.min(t, { message: (o == null ? void 0 : o.min) || u.MIN_LENGTH(t) })), r && (d = d.max(r, { message: (o == null ? void 0 : o.max) || u.MAX_LENGTH(r) })), n && (d = d.length(n, { message: (o == null ? void 0 : o.length) || u.FIX_LENGTH(n) })), d.refine((l) => !!l.length, { message: (o == null ? void 0 : o.min) || u.NON_EMPTY() }).default(i ?? "");
|
|
235
|
-
}, z = (e) => {
|
|
236
|
-
const { min: t, max: r, length: n, message: i } = e || {};
|
|
237
|
-
let o = s.string({ message: i == null ? void 0 : i.root });
|
|
238
|
-
return t && (o = o.min(t, { message: (i == null ? void 0 : i.min) || u.MIN_LENGTH(t) })), r && (o = o.max(r, { message: (i == null ? void 0 : i.max) || u.MAX_LENGTH(r) })), n && (o = o.length(n, { message: (i == null ? void 0 : i.length) || u.FIX_LENGTH(n) })), o.optional().transform((d) => d != null && d.length ? d : void 0);
|
|
239
|
-
};
|
|
240
|
-
function k(e) {
|
|
241
|
-
const { required: t = !0, ...r } = e || {};
|
|
242
|
-
return t ? j(r) : z(r);
|
|
243
|
-
}
|
|
244
|
-
const S = (e, t) => {
|
|
245
|
-
const { message: r, ...n } = t || {}, [i, o, ...d] = e.map((a) => s.literal(a)), l = r ? typeof r == "function" ? r(e) : r : u.VALUE_OUT_OF_RANGE(e);
|
|
246
|
-
return s.union([i, o, ...d], {
|
|
247
|
-
message: l,
|
|
248
|
-
...n
|
|
249
|
-
}).nullable().refine(Boolean, u.NON_EMPTY()).default(null);
|
|
250
|
-
}, W = (e, t) => S(e, t).optional();
|
|
251
|
-
function K(e, t) {
|
|
252
|
-
const { required: r, ...n } = t || {};
|
|
253
|
-
return r ? S(e, n) : W(e, n);
|
|
254
|
-
}
|
|
255
|
-
const R = /^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?[a-z0-9]+([-.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/, J = (e) => {
|
|
256
|
-
const { message: t, defaultValue: r, regexp: n = R } = e || {}, i = f.isString(n) ? new RegExp(n) : n;
|
|
257
|
-
return L().min(1, (t == null ? void 0 : t.min) || u.NON_EMPTY()).regex(i, (t == null ? void 0 : t.invalid) || u.INVALID_URL()).default(r ?? "");
|
|
258
|
-
}, Q = (e) => {
|
|
259
|
-
const { message: t, regexp: r = R } = e || {}, n = f.isString(r) ? new RegExp(r) : r;
|
|
260
|
-
return L().refine((i) => f.isStringEmpty(i) ? !0 : n.test(i), (t == null ? void 0 : t.invalid) || u.INVALID_URL()).optional().transform((i) => i != null && i.length ? i : void 0);
|
|
261
|
-
};
|
|
262
|
-
function ee(e) {
|
|
263
|
-
const { required: t = !0 } = e || {};
|
|
264
|
-
return t ? J(e) : Q(e);
|
|
265
|
-
}
|
|
266
|
-
const te = {
|
|
267
|
-
getStringSchema: k,
|
|
268
|
-
getEmailSchema: p,
|
|
269
|
-
getSelectSchema: B,
|
|
270
|
-
getNumberSchema: x,
|
|
271
|
-
getPhoneSchema: q,
|
|
272
|
-
getDateSchema: U,
|
|
273
|
-
getUnionSchema: K,
|
|
274
|
-
getUrlSchema: ee,
|
|
275
|
-
getRegexSchema: v,
|
|
276
|
-
getBooleanSchema: P
|
|
277
|
-
};
|
|
278
|
-
class se {
|
|
279
|
-
/**
|
|
280
|
-
* Функция для получения значения по умолчанию исходя из схемы
|
|
281
|
-
* @param zodSchema схема формы
|
|
282
|
-
* @param options настройки генерации значений по умолчанию
|
|
283
|
-
* @returns объект значений по умолчанию
|
|
284
|
-
*
|
|
285
|
-
* @example
|
|
286
|
-
* const schema = z.object({
|
|
287
|
-
* name: zodValidators.base.getStringSchema(),
|
|
288
|
-
* role: zodValidators.base.getUnionSchema(['UNKNOWN', 'ADMIN', 'MODERATOR', 'USER'] as const),
|
|
289
|
-
* info: z.object({
|
|
290
|
-
* address: zodValidators.base.getStringSchema(),
|
|
291
|
-
* phone: zodValidators.base.getPhoneSchema({ ignoreMask: true }),
|
|
292
|
-
* age: zodValidators.base.getNumberSchema()
|
|
293
|
-
* })
|
|
294
|
-
* })
|
|
295
|
-
*
|
|
296
|
-
* const defaultValues = ZodUtils.getZodDefaults(schema)
|
|
297
|
-
*
|
|
298
|
-
* // default values will be inferred from schema
|
|
299
|
-
* // {
|
|
300
|
-
* // name: '',
|
|
301
|
-
* // role: 'UNKNOWN',
|
|
302
|
-
* // info: {
|
|
303
|
-
* // address: '',
|
|
304
|
-
* // phone: '',
|
|
305
|
-
* // age: 0
|
|
306
|
-
* // }
|
|
307
|
-
* // }
|
|
308
|
-
*/
|
|
309
|
-
static getZodDefaults(t, r) {
|
|
310
|
-
const { fillArrayWithValue: n } = r || {}, i = (a) => {
|
|
311
|
-
const c = a._def.schema;
|
|
312
|
-
return c instanceof s.ZodEffects || c._def.typeName === "ZodEffects" ? i(c) : c instanceof s.ZodObject || c._def.typeName === "ZodObject" ? this.getZodDefaults(c, r) : o(c);
|
|
313
|
-
}, o = (a) => {
|
|
314
|
-
if (a instanceof s.ZodEffects || a._def.typeName === "ZodEffects")
|
|
315
|
-
return i(a);
|
|
316
|
-
switch (!0) {
|
|
317
|
-
case (a._def.typeName === "ZodDefault" || a instanceof s.ZodDefault):
|
|
318
|
-
return a._def.defaultValue();
|
|
319
|
-
case (a._def.typeName === "ZodOptional" || a instanceof s.ZodOptional):
|
|
320
|
-
return;
|
|
321
|
-
case a._def.typeName === "ZodEffects":
|
|
322
|
-
return i(a);
|
|
323
|
-
case (a._def.typeName === "ZodNullable" || a instanceof s.ZodNullable):
|
|
324
|
-
return null;
|
|
325
|
-
case (a._def.typeName === "ZodArray" || a instanceof s.ZodArray):
|
|
326
|
-
return n ? [o(a.element)] : [];
|
|
327
|
-
case (a._def.typeName === "ZodObject" || a instanceof s.ZodObject):
|
|
328
|
-
return this.getZodDefaults(a, r);
|
|
329
|
-
case (a._def.typeName === "ZodUnion" || a instanceof s.ZodUnion):
|
|
330
|
-
return o(a._def.options[0]);
|
|
331
|
-
case (a._def.typeName === "ZodLiteral" || a instanceof s.ZodLiteral):
|
|
332
|
-
return a._def.value;
|
|
333
|
-
case (a._def.typeName === "ZodDiscriminatedUnion" || a instanceof s.ZodDiscriminatedUnion):
|
|
334
|
-
return o(a._def.options[0]);
|
|
335
|
-
case (a._def.typeName === "ZodEnum" || a instanceof s.ZodEnum):
|
|
336
|
-
return a._def.values[0];
|
|
337
|
-
case (a._def.typeName === "ZodString" || a instanceof s.ZodString):
|
|
338
|
-
return "";
|
|
339
|
-
case (a._def.typeName === "ZodNumber" || a instanceof s.ZodNumber):
|
|
340
|
-
return 0;
|
|
341
|
-
case (a._def.typeName === "ZodBoolean" || a instanceof s.ZodBoolean):
|
|
342
|
-
return !1;
|
|
343
|
-
case !("innerType" in a._def):
|
|
344
|
-
return;
|
|
345
|
-
default:
|
|
346
|
-
return o(a._def.innerType);
|
|
347
|
-
}
|
|
348
|
-
};
|
|
349
|
-
if (t instanceof s.ZodEffects || t._def.typeName === "ZodEffects")
|
|
350
|
-
return i(t);
|
|
351
|
-
const d = {};
|
|
352
|
-
return Object.entries(t.shape).map(([a, c]) => {
|
|
353
|
-
d[a] = o(c);
|
|
354
|
-
}), d;
|
|
355
|
-
}
|
|
356
|
-
/**
|
|
357
|
-
* Функция для объединения zod схождений
|
|
358
|
-
* @param {ZodIntersection} zodSchema
|
|
359
|
-
* @returns объединенная схема двух схождений
|
|
360
|
-
*
|
|
361
|
-
* @example
|
|
362
|
-
* let schema = z.object({
|
|
363
|
-
* foo: z.string()
|
|
364
|
-
* })
|
|
365
|
-
* // this will return intersection and we need
|
|
366
|
-
* // to merge its left to right schema's
|
|
367
|
-
* .and(
|
|
368
|
-
* z.object({
|
|
369
|
-
* bar: z.string()
|
|
370
|
-
* })
|
|
371
|
-
* )
|
|
372
|
-
*
|
|
373
|
-
* schema = ZodUtils.zodMergeIntersection(schema)
|
|
374
|
-
*
|
|
375
|
-
* // schema will be
|
|
376
|
-
* z.object({
|
|
377
|
-
* foo: z.string(),
|
|
378
|
-
* bar: z.string()
|
|
379
|
-
* })
|
|
380
|
-
*/
|
|
381
|
-
static zodMergeIntersection(t) {
|
|
382
|
-
const { left: r, right: n } = t._def, i = r instanceof s.ZodDiscriminatedUnion || r._def.typeName === "ZodDiscriminatedUnion" ? r._def.options[0] : r, o = n instanceof s.ZodDiscriminatedUnion || n._def.typeName === "ZodDiscriminatedUnion" ? n._def.options[0] : n;
|
|
383
|
-
if ((i._def.typeName === "ZodObject" || i instanceof s.ZodObject) && (o._def.typeName === "ZodObject" || o instanceof s.ZodObject))
|
|
384
|
-
return i.merge(o);
|
|
385
|
-
throw new Error(`Cannot merge schema type ${o._def.typeName} to ${i._def.typeName}`);
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
const E = {
|
|
389
|
-
NON_EMPTY: () => "Поле обязательно для заполнения",
|
|
390
|
-
VALUE_NO_WHITESPACE: () => "Укажите фамилию, имя и отчество через пробел",
|
|
391
|
-
ONLY_CYRILLIC: () => "Данные должны быть написаны кириллицей",
|
|
392
|
-
NAME_OR_SURNAME_NON_EMPTY: () => "Укажите имя и фамилию",
|
|
393
|
-
INVALID_NAME: () => "Неверно введено имя",
|
|
394
|
-
INVALID_SURNAME: () => "Неверно введена фамилия",
|
|
395
|
-
INVALID_PATRONYMIC: () => "Неверно введено отчество"
|
|
396
|
-
}, N = {
|
|
397
|
-
ONLY_CYRILLIC: /[\u0400-\u04FF\u00CB\u00EB -]/g,
|
|
398
|
-
CHECK_HYPHEN: /^(?:[^-]+(?:-[^-]+){0,4}|[^-]+)$/,
|
|
399
|
-
PATRONYMIC: /^[a-zA-Zа-яА-ЯёЁ]+(?:\s*-\s*[a-zA-Zа-яА-ЯёЁ]+){0,4}(?:\s+[a-zA-Zа-яА-ЯёЁ]+(?:\s*-\s*[a-zA-Zа-яА-ЯёЁ]+){0,4})?$/i
|
|
400
|
-
}, ne = (e) => {
|
|
401
|
-
const [t, r, ...n] = e.trim().replace(/\s+/g, " ").split(" "), i = n.join(" ");
|
|
402
|
-
return { surname: t, name: r, patronymic: i };
|
|
403
|
-
}, C = (e) => {
|
|
404
|
-
const { message: t } = e || {}, { nameOrSurnameEmpty: r, invalidSurname: n, invalidPatronymic: i, invalidName: o } = t || {};
|
|
405
|
-
return s.string().superRefine((d, l) => {
|
|
406
|
-
const { name: a, surname: c, patronymic: _ } = ne(d);
|
|
407
|
-
N.ONLY_CYRILLIC.test(d) || l.addIssue({
|
|
408
|
-
code: s.ZodIssueCode.invalid_string,
|
|
409
|
-
validation: "regex",
|
|
410
|
-
message: E.ONLY_CYRILLIC()
|
|
411
|
-
}), (!a || !c) && l.addIssue({
|
|
412
|
-
code: s.ZodIssueCode.invalid_string,
|
|
413
|
-
validation: "regex",
|
|
414
|
-
message: r || E.NAME_OR_SURNAME_NON_EMPTY()
|
|
415
|
-
}), N.CHECK_HYPHEN.test(a) || l.addIssue({
|
|
416
|
-
code: s.ZodIssueCode.invalid_string,
|
|
417
|
-
validation: "regex",
|
|
418
|
-
message: o || E.INVALID_NAME()
|
|
419
|
-
}), N.CHECK_HYPHEN.test(c) || l.addIssue({
|
|
420
|
-
code: s.ZodIssueCode.invalid_string,
|
|
421
|
-
validation: "regex",
|
|
422
|
-
message: n || E.INVALID_SURNAME()
|
|
423
|
-
}), _ && (N.PATRONYMIC.test(_) || l.addIssue({
|
|
424
|
-
code: s.ZodIssueCode.invalid_string,
|
|
425
|
-
validation: "regex",
|
|
426
|
-
message: i || E.INVALID_PATRONYMIC()
|
|
427
|
-
}));
|
|
428
|
-
}).transform((d) => d.trimEnd()).default("");
|
|
429
|
-
}, ie = (e) => C(e).optional().transform((t) => t != null && t.length ? t : void 0);
|
|
430
|
-
function re(e) {
|
|
431
|
-
const { required: t = !0, ...r } = e || {};
|
|
432
|
-
return t ? C(r) : ie(r);
|
|
433
|
-
}
|
|
434
|
-
const oe = {
|
|
435
|
-
getFioSchema: re
|
|
436
|
-
}, ue = {
|
|
437
|
-
base: te,
|
|
438
|
-
dadata: oe
|
|
439
|
-
};
|
|
440
|
-
export {
|
|
441
|
-
se as Z,
|
|
442
|
-
te as a,
|
|
443
|
-
u as b,
|
|
444
|
-
ue as z
|
|
445
|
-
};
|
|
446
|
-
//# sourceMappingURL=index-CrR6G9lz.js.map
|