form-father 0.2.8 → 0.2.10
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/README.md +223 -9
- package/RESPONSE_API.md +233 -0
- package/dist/FormFather.min.js +2 -0
- package/{index.d.ts → dist/index.d.ts} +97 -12
- package/{index.js → dist/index.js} +334 -74
- package/{index.js.map → dist/index.js.map} +1 -1
- package/{types → dist/types}/index.d.ts +37 -13
- package/package.json +20 -3
- package/FormFather.min.js +0 -2
- /package/{FormFather.min.js.map → dist/FormFather.min.js.map} +0 -0
- /package/{types → dist/types}/helpers.d.ts +0 -0
- /package/{types → dist/types}/validators.d.ts +0 -0
|
@@ -24,12 +24,75 @@ declare function registerValidator(name: string, fn: ValidatorFn, defaultMessage
|
|
|
24
24
|
declare const getValidator: (name: string) => Validator | undefined;
|
|
25
25
|
declare function getAllValidators(): Map<string, Validator>;
|
|
26
26
|
|
|
27
|
+
/**
|
|
28
|
+
* Находит родительский элемент по заданому селектору.
|
|
29
|
+
*
|
|
30
|
+
* @param {HTMLElement | null} $el - Элемент, чего родителя нужно найти.
|
|
31
|
+
* @param {string} selector - Селектор родителя.
|
|
32
|
+
*
|
|
33
|
+
* @returns {HTMLElement | null} Элемент родителя. Но если родителя с таким селектори не было найдено возвращается null.
|
|
34
|
+
*/
|
|
35
|
+
declare function closest($el: HTMLElement | null, selector: string): HTMLElement | null;
|
|
36
|
+
/** Включает блокировку скролла страницы */
|
|
37
|
+
declare function blockScrollBody(): void;
|
|
38
|
+
/** Отменяет блокировку скролла страницы */
|
|
39
|
+
declare function unblockScrollBody(): void;
|
|
40
|
+
/**
|
|
41
|
+
* Проверяет является ли строка валидным адресом электронной почты.
|
|
42
|
+
*
|
|
43
|
+
* @param {string} value - Строка, которую нужно проверить.
|
|
44
|
+
*
|
|
45
|
+
* @returns {boolean} Является ли строка валидным адресом электронной почты true/false.
|
|
46
|
+
*/
|
|
47
|
+
declare function isEmailValid(value: string): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Проверяет является ли строка валидным url.
|
|
50
|
+
*
|
|
51
|
+
* @param {string} originalUrlString - Строка, которую нужно проверить.
|
|
52
|
+
*
|
|
53
|
+
* @returns {boolean} Является ли строка валидным url адресом true/false.
|
|
54
|
+
*/
|
|
55
|
+
declare function isUrlValid(originalUrlString: string): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Проверяет является ли строка валидным номером телефона.
|
|
58
|
+
*
|
|
59
|
+
* @param {string} value - Строка, которую нужно проверить.
|
|
60
|
+
*
|
|
61
|
+
* @returns {boolean} Является ли строка валидным номером телефона true/false.
|
|
62
|
+
*/
|
|
63
|
+
declare function isPhoneValid(value: string): boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Кастомная сериализация формы в объект FormData.
|
|
66
|
+
*
|
|
67
|
+
* @param {HTMLElement} $element - DOM элемент для сериализации.
|
|
68
|
+
*
|
|
69
|
+
* @returns {FormData} Сериализованные данные формы в объекте FormData.
|
|
70
|
+
*/
|
|
71
|
+
declare function serializeToFormData($element: HTMLElement): FormData;
|
|
72
|
+
/**
|
|
73
|
+
* Функция для разбора общих свойств ответа.
|
|
74
|
+
*
|
|
75
|
+
* @param {any} responseBody - Тело ответа.
|
|
76
|
+
*/
|
|
77
|
+
declare function parseCommonResponseProperties(responseBody: any): void;
|
|
78
|
+
/**
|
|
79
|
+
* Сериализует данные формы в объект JSON.
|
|
80
|
+
*
|
|
81
|
+
* @param {HTMLFormElement} form - Элемент формы.
|
|
82
|
+
*
|
|
83
|
+
* @returns {Object} Сериализованные данные формы.
|
|
84
|
+
*/
|
|
85
|
+
declare function serializeFormToJSON(form: HTMLFormElement): {
|
|
86
|
+
[key: string]: any;
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
type ValidationRule = string | {
|
|
90
|
+
rule: string;
|
|
91
|
+
params?: any;
|
|
92
|
+
};
|
|
27
93
|
type ValidationSchema = Record<string, {
|
|
28
|
-
rules:
|
|
29
|
-
|
|
30
|
-
params?: any;
|
|
31
|
-
})[];
|
|
32
|
-
selector: string;
|
|
94
|
+
rules: ValidationRule[];
|
|
95
|
+
selector?: string;
|
|
33
96
|
messages?: Record<string, string>;
|
|
34
97
|
}>;
|
|
35
98
|
/** Параметры формы. */
|
|
@@ -59,21 +122,21 @@ interface FormOptions {
|
|
|
59
122
|
* @param responseBody - Тело ответа.
|
|
60
123
|
* @param formInstance - Инстанс формы.
|
|
61
124
|
*/
|
|
62
|
-
onResponse?: (responseBody:
|
|
125
|
+
onResponse?: (responseBody: ResponseBody, formInstance: Form) => void;
|
|
63
126
|
/**
|
|
64
|
-
* Функция обратного вызова. Запускается после
|
|
127
|
+
* Функция обратного вызова. Запускается после успешного HTTP-ответа и `success: true`.
|
|
65
128
|
*
|
|
66
129
|
* @param responseBody - Тело ответа.
|
|
67
130
|
* @param formInstance - Инстанс формы.
|
|
68
131
|
*/
|
|
69
|
-
onResponseSuccess?: (responseBody:
|
|
132
|
+
onResponseSuccess?: (responseBody: ResponseBody, formInstance: Form) => void;
|
|
70
133
|
/**
|
|
71
|
-
* Функция обратного вызова. Запускается после
|
|
134
|
+
* Функция обратного вызова. Запускается после неуспешного HTTP-ответа или `success !== true`.
|
|
72
135
|
*
|
|
73
136
|
* @param responseBody - Тело ответа.
|
|
74
137
|
* @param formInstance - Инстанс формы.
|
|
75
138
|
*/
|
|
76
|
-
onResponseUnsuccess?: (responseBody:
|
|
139
|
+
onResponseUnsuccess?: (responseBody: ResponseBody, formInstance: Form) => void;
|
|
77
140
|
/** Нужно ли показывать loader в кнопке. По умолчанию `true`. */
|
|
78
141
|
showLoaderButton?: boolean;
|
|
79
142
|
/** Нужно ли проскроливать до первого по порядку элемента с ошибкой. По умолчанию `true`. */
|
|
@@ -96,6 +159,17 @@ interface FormOptions {
|
|
|
96
159
|
/** Схема валидации: поле → массив правил + override-сообщения */
|
|
97
160
|
validationSchema?: ValidationSchema;
|
|
98
161
|
}
|
|
162
|
+
interface ErrorResponse {
|
|
163
|
+
name: string;
|
|
164
|
+
'error-msg': string;
|
|
165
|
+
}
|
|
166
|
+
interface ResponseBody {
|
|
167
|
+
[key: string]: any;
|
|
168
|
+
success?: boolean;
|
|
169
|
+
error?: boolean;
|
|
170
|
+
'error-msg'?: string;
|
|
171
|
+
errors?: ErrorResponse[];
|
|
172
|
+
}
|
|
99
173
|
/**
|
|
100
174
|
* Реализует форму отправки данных.
|
|
101
175
|
*
|
|
@@ -120,7 +194,7 @@ declare class Form {
|
|
|
120
194
|
* @param {HTMLElement} $el - Элемент формы (тег form!).
|
|
121
195
|
* @param {Object} options - Параметры формы.
|
|
122
196
|
*/
|
|
123
|
-
constructor($el: HTMLElement, options
|
|
197
|
+
constructor($el: HTMLElement, options?: FormOptions);
|
|
124
198
|
getOptions(): FormOptions;
|
|
125
199
|
/**
|
|
126
200
|
* Обновляет параметры по умолчанию для настроек формы. Метод объединяет переданные параметры с уже существующими
|
|
@@ -197,8 +271,19 @@ declare class Form {
|
|
|
197
271
|
* @returns {boolean} Корректны данные или нет (true/false).
|
|
198
272
|
*/
|
|
199
273
|
private isCorrectArguments;
|
|
274
|
+
private formDataToObject;
|
|
275
|
+
private appendFormDataValue;
|
|
276
|
+
private objectToFormData;
|
|
277
|
+
private stringifyFormDataValue;
|
|
278
|
+
private formDataToUrlSearchParams;
|
|
279
|
+
private formDataToTextBody;
|
|
280
|
+
private isBodylessMethod;
|
|
281
|
+
private appendQueryString;
|
|
282
|
+
private findFieldByName;
|
|
283
|
+
private parseResponseBody;
|
|
284
|
+
private handleUnsuccessfulResponse;
|
|
200
285
|
private sendData;
|
|
201
286
|
private submit;
|
|
202
287
|
}
|
|
203
288
|
|
|
204
|
-
export { type ValidatorEffectCtx, type ValidatorResult, Form as default, getAllValidators, getValidator, registerValidator };
|
|
289
|
+
export { type ErrorResponse, type FormOptions, type ResponseBody, type ValidationRule, type ValidationSchema, type ValidatorEffectCtx, type ValidatorResult, blockScrollBody, closest, Form as default, getAllValidators, getValidator, isEmailValid, isPhoneValid, isUrlValid, parseCommonResponseProperties, registerValidator, serializeFormToJSON, serializeToFormData, unblockScrollBody };
|