adaptform 2.0.5 → 2.2.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/luxon.d.cts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { DateTime } from 'luxon';
2
- import { g as FieldOptions, p as messagesOptions, a as FieldType } from './Form-Be3I6LX0.cjs';
2
+ import { k as FieldOptions, C as messagesOptions, a as FieldType } from './Form-uHUaTUZS.cjs';
3
3
 
4
4
  interface messagesDateLuxonOptions extends messagesOptions {
5
5
  minDate?: string;
package/dist/luxon.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { DateTime } from 'luxon';
2
- import { g as FieldOptions, p as messagesOptions, a as FieldType } from './Form-Be3I6LX0.js';
2
+ import { k as FieldOptions, C as messagesOptions, a as FieldType } from './Form-uHUaTUZS.js';
3
3
 
4
4
  interface messagesDateLuxonOptions extends messagesOptions {
5
5
  minDate?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "adaptform",
3
- "version": "2.0.5",
3
+ "version": "2.2.0",
4
4
  "description": "Library of adaptive forms of validation",
5
5
  "keywords": [
6
6
  "form",
@@ -45,17 +45,20 @@
45
45
  "dist",
46
46
  "README.md",
47
47
  "LICENSE.md",
48
- "CHANGELOG.md"
48
+ "CHANGELOG.md",
49
+ "README.ru.md",
50
+ "LICENSE.ru.md",
51
+ "CHANGELOG.ru.md"
49
52
  ],
50
53
  "sideEffects": false,
51
54
  "repository": {
52
55
  "type": "git",
53
- "url": "git+https://github.com/ArhiMEN/adaptform.git"
56
+ "url": "git+https://github.com/ArhiMEN/AdaptForm.git"
54
57
  },
55
58
  "bugs": {
56
59
  "url": "https://github.com/ArhiMEN/adaptform/issues"
57
60
  },
58
- "homepage": "https://github.com/ArhiMEN/adaptform#readme",
61
+ "homepage": "https://arhimen.github.io/AdaptForm/",
59
62
  "engines": {
60
63
  "node": ">=16.0.0"
61
64
  },
@@ -67,18 +70,26 @@
67
70
  "test:integration": "vitest run tests/integration",
68
71
  "test:watch": "vitest",
69
72
  "test:coverage": "vitest run --coverage",
70
- "lint": "eslint src --ext .ts",
71
- "prepublishOnly": "npm run build"
73
+ "lint": "eslint src tests demo --max-warnings 0",
74
+ "prepublishOnly": "npm run build",
75
+ "check:package": "node scripts/check-package-content.mjs",
76
+ "build:demo": "vite build --config demo/vite.config.ts",
77
+ "check:demo": "tsc --noEmit -p demo/tsconfig.json"
72
78
  },
73
79
  "devDependencies": {
74
80
  "@types/luxon": "^3.5.0",
75
- "@types/node": "^20.0.0",
76
- "@vitest/coverage-v8": "^1.6.1",
81
+ "@types/node": "^22.0.0",
82
+ "@vitest/coverage-v8": "^5.0.4",
77
83
  "jsdom": "^29.1.1",
78
84
  "luxon": "^3.5.0",
79
85
  "tsup": "^8.0.0",
80
86
  "typescript": "^5.0.0",
81
- "vitest": "^1.0.0"
87
+ "vitest": "^5.0.4",
88
+ "@eslint/js": "^10.0.1",
89
+ "eslint": "^10.12.0",
90
+ "typescript-eslint": "^8.71.2",
91
+ "vite": "^8.3.4",
92
+ "globals": "^17.4.0"
82
93
  },
83
94
  "peerDependencies": {
84
95
  "luxon": ">=3.5.0"
@@ -87,5 +98,13 @@
87
98
  "luxon": {
88
99
  "optional": true
89
100
  }
101
+ },
102
+ "overrides": {
103
+ "brace-expansion": "5.0.12",
104
+ "esbuild": "0.28.1",
105
+ "nanoid": "3.3.18",
106
+ "postcss": "8.5.23",
107
+ "source-map-js": "1.2.2",
108
+ "undici": "7.29.1"
90
109
  }
91
110
  }
@@ -1,293 +0,0 @@
1
- interface FieldPlugin<T = any> {
2
- pluginOptions?: PluginOptions;
3
- init?(field: Field<T>): void;
4
- toRawValue?(value: any, field: Field<T>): any;
5
- toValueClear?(value: any, field: Field<T>): any;
6
- }
7
- declare abstract class BasePlugin<T = any> implements FieldPlugin<T> {
8
- pluginOptions: PluginOptions;
9
- constructor(pluginOptions?: PluginOptions);
10
- }
11
-
12
- declare class ArrayField<T = any> {
13
- protected factory: (value?: T) => Field<T>;
14
- protected options: ArrayFieldOptions;
15
- protected _items: Field<T>[];
16
- protected _errors: string[];
17
- isTouched: boolean;
18
- constructor(factory: (value?: T) => Field<T>, options?: ArrayFieldOptions, initial?: T[]);
19
- set itemsValue(items: T[]);
20
- get itemsValue(): T[];
21
- get items(): Field<T>[];
22
- add(value?: T, force_check?: boolean): Field<T>;
23
- remove(index: number): void;
24
- clear(): void;
25
- private isRequired;
26
- checkValid(form?: Form): boolean;
27
- checkAndSetValid(form?: Form): boolean;
28
- get isValid(): boolean;
29
- get error(): string;
30
- set error(message: string | null);
31
- get errors(): string[];
32
- reset(): void;
33
- }
34
-
35
- declare class ArrayFormField<T extends Form = Form> {
36
- private FormConstructor;
37
- private options;
38
- private _forms;
39
- private _errors;
40
- isTouched: boolean;
41
- constructor(FormConstructor: new () => T, options?: ArrayFormFieldOptions, initial?: any[]);
42
- set forms(forms: any[]);
43
- get forms(): Form[];
44
- get formsFieldsValue(): any[];
45
- add(data?: any, force_check?: boolean): T;
46
- remove(index: number): void;
47
- clear(): void;
48
- reset(): void;
49
- private isRequired;
50
- checkValid(form?: Form): boolean;
51
- checkAndSetValid(form?: Form): boolean;
52
- get isValid(): boolean;
53
- get errors(): string[];
54
- get error(): string;
55
- set error(message: string | null);
56
- }
57
-
58
- interface messagesOptions {
59
- isRequired?: string;
60
- validate?: string;
61
- type?: string;
62
- invalid?: string;
63
- }
64
- interface messagesStringOptions extends messagesOptions {
65
- minLength?: string;
66
- maxLength?: string;
67
- pattern?: string;
68
- }
69
- interface messagesNumberOptions extends messagesOptions {
70
- gt?: string;
71
- ge?: string;
72
- lt?: string;
73
- le?: string;
74
- }
75
- interface messagesBooleanOptions extends messagesOptions {
76
- mustBeTrue?: string;
77
- mustBeFalse?: string;
78
- }
79
- interface messagesDateOptions extends messagesOptions {
80
- minDate?: string;
81
- maxDate?: string;
82
- }
83
- interface messagesDecimalOptions extends messagesOptions {
84
- gt?: string;
85
- ge?: string;
86
- lt?: string;
87
- le?: string;
88
- decimalPlaces?: string;
89
- maxDigits?: string;
90
- }
91
- interface messagesArrayFieldOptions extends messagesOptions {
92
- minItems?: string;
93
- maxItems?: string;
94
- }
95
- interface messagesArrayFormFieldOptions extends messagesOptions {
96
- minForms?: string;
97
- maxForms?: string;
98
- }
99
- interface FieldOptions {
100
- isRequired?: boolean | ((form?: any) => boolean);
101
- messages?: messagesOptions;
102
- validate?: (value: any, form?: any) => boolean | string;
103
- plugins?: FieldPlugin[];
104
- }
105
- interface StringOptions extends FieldOptions {
106
- minLength?: number;
107
- maxLength?: number;
108
- pattern?: RegExp;
109
- messages?: messagesStringOptions;
110
- }
111
- interface NumberOptions extends FieldOptions {
112
- gt?: number;
113
- ge?: number;
114
- lt?: number;
115
- le?: number;
116
- messages?: messagesNumberOptions;
117
- }
118
- interface BooleanOptions extends FieldOptions {
119
- mustBeTrue?: boolean;
120
- mustBeFalse?: boolean;
121
- messages?: messagesBooleanOptions;
122
- }
123
- interface DateOptions extends FieldOptions {
124
- minDate?: Date;
125
- maxDate?: Date;
126
- isDatetime?: boolean;
127
- messages?: messagesDateOptions;
128
- }
129
- interface DecimalOptions extends FieldOptions {
130
- gt?: number;
131
- ge?: number;
132
- lt?: number;
133
- le?: number;
134
- decimalPlaces?: number;
135
- maxDigits?: number;
136
- messages?: messagesDecimalOptions;
137
- }
138
- interface ArrayFieldOptions {
139
- isRequired?: boolean | ((form?: any) => boolean);
140
- messages?: messagesArrayFieldOptions;
141
- validate?: (value: any[], form?: any) => boolean | string;
142
- minItems?: number;
143
- maxItems?: number;
144
- }
145
- interface ArrayFormFieldOptions {
146
- isRequired?: boolean | ((form?: any) => boolean);
147
- messages?: messagesArrayFormFieldOptions;
148
- validate?: (value: any[], form?: any) => boolean | string;
149
- minForms?: number;
150
- maxForms?: number;
151
- }
152
- interface PluginOptions {
153
- priority?: number;
154
- }
155
- interface MaskPluginOptions {
156
- maskFormat: string;
157
- maskPlaceholder: string;
158
- digitPattern: RegExp;
159
- }
160
-
161
- declare abstract class FieldType<T, O extends FieldOptions = FieldOptions> {
162
- options: O;
163
- constructor(options: O);
164
- abstract cast(rawValue: any): T | null;
165
- abstract validate(value: T, form?: Form): string[];
166
- abstract getTypeName(): string;
167
- }
168
-
169
- type FieldTypeConstructor<T, O extends FieldOptions = FieldOptions> = new (options: O) => FieldType<T, O>;
170
- declare class Field<T = any, O extends FieldOptions = FieldOptions> {
171
- protected _rawValue: any;
172
- protected _valueClear: T | null;
173
- protected fieldType: FieldType<T, O>;
174
- protected defaultValue: T | null;
175
- protected _errors: string[];
176
- isValid: boolean | null;
177
- isTouched: boolean;
178
- constructor(TypeConstructor: FieldTypeConstructor<T, O>, defaultValue?: T | null, options?: O | null);
179
- protected get plugins(): FieldPlugin<any>[];
180
- get options(): O;
181
- set options(options: O);
182
- get rawValue(): T | null;
183
- set rawValue(input: any);
184
- get errors(): string[];
185
- get error(): string;
186
- set error(message: string | null);
187
- get valueClear(): any;
188
- private isRequired;
189
- checkValid(form?: Form): boolean;
190
- checkAndSetValid(form?: Form): boolean;
191
- get isEmpty(): boolean;
192
- reset(): void;
193
- }
194
-
195
- interface ParsedError {
196
- fieldName: string;
197
- message: string;
198
- sourceKey: string;
199
- matchedBy: 'static' | 'dynamic' | 'fallback';
200
- }
201
- declare class ErrorsSchema {
202
- private _staticRules;
203
- private _dynamicRules;
204
- private _fallbackHandler?;
205
- private _valueTransformers;
206
- /**
207
- * Добавляет статическое правило - точное соответствие ключа ошибки
208
- * @param errorKey - точный ключ ошибки из ответа сервера
209
- * @param fieldName - имя поля в форме или функция для динамического определения
210
- */
211
- staticKey(errorKey: string, fieldName: string | ((errorValue: any) => string)): this;
212
- /**
213
- * Добавляет динамическое правило с регулярным выражением
214
- * @param pattern - регулярное выражение для сопоставления ключа ошибки
215
- * @param mapping - имя поля или функция для извлечения имени поля из совпадения
216
- * @param options - дополнительные опции (приоритет и т.д.)
217
- */
218
- dynamicKey(pattern: RegExp, mapping: string | ((match: RegExpMatchArray) => string), options?: {
219
- priority?: number;
220
- }): this;
221
- /**
222
- * Устанавливает обработчик для ошибок, которые не подошли ни под одно правило
223
- */
224
- fallback(handler: (key: string, value: any) => string | null): this;
225
- /**
226
- * Добавляет трансформер для значений ошибок
227
- * Полезно для нормализации сообщений (например, если сервер возвращает массив ошибок)
228
- */
229
- transformValue(transformer: (value: any) => any): this;
230
- /**
231
- * Быстрый метод для создания схемы из простого объекта маппинга
232
- */
233
- static fromObject(mapping: Record<string, string>): ErrorsSchema;
234
- /**
235
- * Создает схему для массива однотипных форм
236
- */
237
- static forArray(itemSchema: ErrorsSchema, arrayFieldName: string, indexExtractor?: (key: string) => number): ErrorsSchema;
238
- /**
239
- * Основной метод парсинга ошибок с поддержкой трансформеров
240
- * Поддерживает вложенные структуры через точечную нотацию
241
- */
242
- parseErrors(errors: Record<string, any>, prefix?: string): Record<string, string>;
243
- /**
244
- * Парсит ошибки сервера и возвращает расширенную информацию
245
- */
246
- parseErrorsDetailed(errors: Record<string, any>, prefix?: string): Record<string, ParsedError>;
247
- /**
248
- * Создает схему для вложенной формы
249
- */
250
- nest(prefix: string): ErrorsSchema;
251
- /**
252
- * Клонирует текущую схему
253
- */
254
- clone(): ErrorsSchema;
255
- /**
256
- * Объединяет текущую схему с другой
257
- */
258
- merge(other: ErrorsSchema): ErrorsSchema;
259
- private isNestedObject;
260
- private findMappingDetailed;
261
- private findMapping;
262
- }
263
-
264
- declare abstract class Form {
265
- private _globalErrors;
266
- errorsShema: ErrorsSchema;
267
- protected get _fields(): Record<string, Field<any> | ArrayField<any> | ArrayFormField<any>>;
268
- checkValid(form?: this): boolean;
269
- get fieldsValue(): Record<string, any>;
270
- set fields(data: Record<string, any>);
271
- get allErrors(): Record<string, string[]>;
272
- /**
273
- * Рекурсивно собирает все ошибки из ArrayFormField
274
- */
275
- private collectArrayFormErrors;
276
- get globalErrors(): Record<string, string>;
277
- set errors(errors: Record<string, any>);
278
- /**
279
- * Применяет ошибку к соответствующему полю
280
- * Поддерживает вложенные поля через точечную нотацию
281
- */
282
- private applyErrorToField;
283
- private applyNestedError;
284
- setGlobalError(key: string, message: string): void;
285
- clearGlobalErrors(): void;
286
- reset(): void;
287
- get isTouched(): boolean;
288
- get isValid(): boolean;
289
- toFormData(): FormData;
290
- toJSON(): Record<string, any>;
291
- }
292
-
293
- export { ArrayField as A, BasePlugin as B, type DecimalOptions as D, Field as F, type MaskPluginOptions as M, type NumberOptions as N, type PluginOptions as P, type StringOptions as S, FieldType as a, type BooleanOptions as b, type DateOptions as c, type ArrayFieldOptions as d, ArrayFormField as e, type ArrayFormFieldOptions as f, type FieldOptions as g, type FieldPlugin as h, Form as i, type messagesArrayFormFieldOptions as j, type messagesBooleanOptions as k, type messagesDateOptions as l, type messagesArrayFieldOptions as m, type messagesDecimalOptions as n, type messagesNumberOptions as o, type messagesOptions as p, type messagesStringOptions as q };
@@ -1,293 +0,0 @@
1
- interface FieldPlugin<T = any> {
2
- pluginOptions?: PluginOptions;
3
- init?(field: Field<T>): void;
4
- toRawValue?(value: any, field: Field<T>): any;
5
- toValueClear?(value: any, field: Field<T>): any;
6
- }
7
- declare abstract class BasePlugin<T = any> implements FieldPlugin<T> {
8
- pluginOptions: PluginOptions;
9
- constructor(pluginOptions?: PluginOptions);
10
- }
11
-
12
- declare class ArrayField<T = any> {
13
- protected factory: (value?: T) => Field<T>;
14
- protected options: ArrayFieldOptions;
15
- protected _items: Field<T>[];
16
- protected _errors: string[];
17
- isTouched: boolean;
18
- constructor(factory: (value?: T) => Field<T>, options?: ArrayFieldOptions, initial?: T[]);
19
- set itemsValue(items: T[]);
20
- get itemsValue(): T[];
21
- get items(): Field<T>[];
22
- add(value?: T, force_check?: boolean): Field<T>;
23
- remove(index: number): void;
24
- clear(): void;
25
- private isRequired;
26
- checkValid(form?: Form): boolean;
27
- checkAndSetValid(form?: Form): boolean;
28
- get isValid(): boolean;
29
- get error(): string;
30
- set error(message: string | null);
31
- get errors(): string[];
32
- reset(): void;
33
- }
34
-
35
- declare class ArrayFormField<T extends Form = Form> {
36
- private FormConstructor;
37
- private options;
38
- private _forms;
39
- private _errors;
40
- isTouched: boolean;
41
- constructor(FormConstructor: new () => T, options?: ArrayFormFieldOptions, initial?: any[]);
42
- set forms(forms: any[]);
43
- get forms(): Form[];
44
- get formsFieldsValue(): any[];
45
- add(data?: any, force_check?: boolean): T;
46
- remove(index: number): void;
47
- clear(): void;
48
- reset(): void;
49
- private isRequired;
50
- checkValid(form?: Form): boolean;
51
- checkAndSetValid(form?: Form): boolean;
52
- get isValid(): boolean;
53
- get errors(): string[];
54
- get error(): string;
55
- set error(message: string | null);
56
- }
57
-
58
- interface messagesOptions {
59
- isRequired?: string;
60
- validate?: string;
61
- type?: string;
62
- invalid?: string;
63
- }
64
- interface messagesStringOptions extends messagesOptions {
65
- minLength?: string;
66
- maxLength?: string;
67
- pattern?: string;
68
- }
69
- interface messagesNumberOptions extends messagesOptions {
70
- gt?: string;
71
- ge?: string;
72
- lt?: string;
73
- le?: string;
74
- }
75
- interface messagesBooleanOptions extends messagesOptions {
76
- mustBeTrue?: string;
77
- mustBeFalse?: string;
78
- }
79
- interface messagesDateOptions extends messagesOptions {
80
- minDate?: string;
81
- maxDate?: string;
82
- }
83
- interface messagesDecimalOptions extends messagesOptions {
84
- gt?: string;
85
- ge?: string;
86
- lt?: string;
87
- le?: string;
88
- decimalPlaces?: string;
89
- maxDigits?: string;
90
- }
91
- interface messagesArrayFieldOptions extends messagesOptions {
92
- minItems?: string;
93
- maxItems?: string;
94
- }
95
- interface messagesArrayFormFieldOptions extends messagesOptions {
96
- minForms?: string;
97
- maxForms?: string;
98
- }
99
- interface FieldOptions {
100
- isRequired?: boolean | ((form?: any) => boolean);
101
- messages?: messagesOptions;
102
- validate?: (value: any, form?: any) => boolean | string;
103
- plugins?: FieldPlugin[];
104
- }
105
- interface StringOptions extends FieldOptions {
106
- minLength?: number;
107
- maxLength?: number;
108
- pattern?: RegExp;
109
- messages?: messagesStringOptions;
110
- }
111
- interface NumberOptions extends FieldOptions {
112
- gt?: number;
113
- ge?: number;
114
- lt?: number;
115
- le?: number;
116
- messages?: messagesNumberOptions;
117
- }
118
- interface BooleanOptions extends FieldOptions {
119
- mustBeTrue?: boolean;
120
- mustBeFalse?: boolean;
121
- messages?: messagesBooleanOptions;
122
- }
123
- interface DateOptions extends FieldOptions {
124
- minDate?: Date;
125
- maxDate?: Date;
126
- isDatetime?: boolean;
127
- messages?: messagesDateOptions;
128
- }
129
- interface DecimalOptions extends FieldOptions {
130
- gt?: number;
131
- ge?: number;
132
- lt?: number;
133
- le?: number;
134
- decimalPlaces?: number;
135
- maxDigits?: number;
136
- messages?: messagesDecimalOptions;
137
- }
138
- interface ArrayFieldOptions {
139
- isRequired?: boolean | ((form?: any) => boolean);
140
- messages?: messagesArrayFieldOptions;
141
- validate?: (value: any[], form?: any) => boolean | string;
142
- minItems?: number;
143
- maxItems?: number;
144
- }
145
- interface ArrayFormFieldOptions {
146
- isRequired?: boolean | ((form?: any) => boolean);
147
- messages?: messagesArrayFormFieldOptions;
148
- validate?: (value: any[], form?: any) => boolean | string;
149
- minForms?: number;
150
- maxForms?: number;
151
- }
152
- interface PluginOptions {
153
- priority?: number;
154
- }
155
- interface MaskPluginOptions {
156
- maskFormat: string;
157
- maskPlaceholder: string;
158
- digitPattern: RegExp;
159
- }
160
-
161
- declare abstract class FieldType<T, O extends FieldOptions = FieldOptions> {
162
- options: O;
163
- constructor(options: O);
164
- abstract cast(rawValue: any): T | null;
165
- abstract validate(value: T, form?: Form): string[];
166
- abstract getTypeName(): string;
167
- }
168
-
169
- type FieldTypeConstructor<T, O extends FieldOptions = FieldOptions> = new (options: O) => FieldType<T, O>;
170
- declare class Field<T = any, O extends FieldOptions = FieldOptions> {
171
- protected _rawValue: any;
172
- protected _valueClear: T | null;
173
- protected fieldType: FieldType<T, O>;
174
- protected defaultValue: T | null;
175
- protected _errors: string[];
176
- isValid: boolean | null;
177
- isTouched: boolean;
178
- constructor(TypeConstructor: FieldTypeConstructor<T, O>, defaultValue?: T | null, options?: O | null);
179
- protected get plugins(): FieldPlugin<any>[];
180
- get options(): O;
181
- set options(options: O);
182
- get rawValue(): T | null;
183
- set rawValue(input: any);
184
- get errors(): string[];
185
- get error(): string;
186
- set error(message: string | null);
187
- get valueClear(): any;
188
- private isRequired;
189
- checkValid(form?: Form): boolean;
190
- checkAndSetValid(form?: Form): boolean;
191
- get isEmpty(): boolean;
192
- reset(): void;
193
- }
194
-
195
- interface ParsedError {
196
- fieldName: string;
197
- message: string;
198
- sourceKey: string;
199
- matchedBy: 'static' | 'dynamic' | 'fallback';
200
- }
201
- declare class ErrorsSchema {
202
- private _staticRules;
203
- private _dynamicRules;
204
- private _fallbackHandler?;
205
- private _valueTransformers;
206
- /**
207
- * Добавляет статическое правило - точное соответствие ключа ошибки
208
- * @param errorKey - точный ключ ошибки из ответа сервера
209
- * @param fieldName - имя поля в форме или функция для динамического определения
210
- */
211
- staticKey(errorKey: string, fieldName: string | ((errorValue: any) => string)): this;
212
- /**
213
- * Добавляет динамическое правило с регулярным выражением
214
- * @param pattern - регулярное выражение для сопоставления ключа ошибки
215
- * @param mapping - имя поля или функция для извлечения имени поля из совпадения
216
- * @param options - дополнительные опции (приоритет и т.д.)
217
- */
218
- dynamicKey(pattern: RegExp, mapping: string | ((match: RegExpMatchArray) => string), options?: {
219
- priority?: number;
220
- }): this;
221
- /**
222
- * Устанавливает обработчик для ошибок, которые не подошли ни под одно правило
223
- */
224
- fallback(handler: (key: string, value: any) => string | null): this;
225
- /**
226
- * Добавляет трансформер для значений ошибок
227
- * Полезно для нормализации сообщений (например, если сервер возвращает массив ошибок)
228
- */
229
- transformValue(transformer: (value: any) => any): this;
230
- /**
231
- * Быстрый метод для создания схемы из простого объекта маппинга
232
- */
233
- static fromObject(mapping: Record<string, string>): ErrorsSchema;
234
- /**
235
- * Создает схему для массива однотипных форм
236
- */
237
- static forArray(itemSchema: ErrorsSchema, arrayFieldName: string, indexExtractor?: (key: string) => number): ErrorsSchema;
238
- /**
239
- * Основной метод парсинга ошибок с поддержкой трансформеров
240
- * Поддерживает вложенные структуры через точечную нотацию
241
- */
242
- parseErrors(errors: Record<string, any>, prefix?: string): Record<string, string>;
243
- /**
244
- * Парсит ошибки сервера и возвращает расширенную информацию
245
- */
246
- parseErrorsDetailed(errors: Record<string, any>, prefix?: string): Record<string, ParsedError>;
247
- /**
248
- * Создает схему для вложенной формы
249
- */
250
- nest(prefix: string): ErrorsSchema;
251
- /**
252
- * Клонирует текущую схему
253
- */
254
- clone(): ErrorsSchema;
255
- /**
256
- * Объединяет текущую схему с другой
257
- */
258
- merge(other: ErrorsSchema): ErrorsSchema;
259
- private isNestedObject;
260
- private findMappingDetailed;
261
- private findMapping;
262
- }
263
-
264
- declare abstract class Form {
265
- private _globalErrors;
266
- errorsShema: ErrorsSchema;
267
- protected get _fields(): Record<string, Field<any> | ArrayField<any> | ArrayFormField<any>>;
268
- checkValid(form?: this): boolean;
269
- get fieldsValue(): Record<string, any>;
270
- set fields(data: Record<string, any>);
271
- get allErrors(): Record<string, string[]>;
272
- /**
273
- * Рекурсивно собирает все ошибки из ArrayFormField
274
- */
275
- private collectArrayFormErrors;
276
- get globalErrors(): Record<string, string>;
277
- set errors(errors: Record<string, any>);
278
- /**
279
- * Применяет ошибку к соответствующему полю
280
- * Поддерживает вложенные поля через точечную нотацию
281
- */
282
- private applyErrorToField;
283
- private applyNestedError;
284
- setGlobalError(key: string, message: string): void;
285
- clearGlobalErrors(): void;
286
- reset(): void;
287
- get isTouched(): boolean;
288
- get isValid(): boolean;
289
- toFormData(): FormData;
290
- toJSON(): Record<string, any>;
291
- }
292
-
293
- export { ArrayField as A, BasePlugin as B, type DecimalOptions as D, Field as F, type MaskPluginOptions as M, type NumberOptions as N, type PluginOptions as P, type StringOptions as S, FieldType as a, type BooleanOptions as b, type DateOptions as c, type ArrayFieldOptions as d, ArrayFormField as e, type ArrayFormFieldOptions as f, type FieldOptions as g, type FieldPlugin as h, Form as i, type messagesArrayFormFieldOptions as j, type messagesBooleanOptions as k, type messagesDateOptions as l, type messagesArrayFieldOptions as m, type messagesDecimalOptions as n, type messagesNumberOptions as o, type messagesOptions as p, type messagesStringOptions as q };