formShape
Описание
Опциональный. Массив объектов, содержащих настройки для конфигурирования полей в диалоге Booking
Использование
formShape: [{
comp: "text" | "textarea",
key: string,
label?: string,
required?: boolean,
validation?: (value: any) => boolean,
errorMessage?: string
}];
Параметры
Для каждого поля можно указать следующие параметры:
comp- (обязательный) тип поля (textилиtextarea)key- (обязательный) идентификатор поляlabel- (опциональный) метка поляrequired- (опциональ ный) если значение установлено вtrue, поле не должно быть пустым и его необходимо заполнить для отправки формы бронирования; еслиfalse, поле может быть пустымvalidation- (опциональный) функция, которая принимает значение поля и возвращает булево значение; поле считается валидным, когда функция возвращаетtrueerrorMessage- (опциональный) сообщение, отображаемое когда значение не проходит валидацию
Конфигурация по умолчанию
const defaultFormShape = [
{
comp: "text",
key: "name",
label: "Name",
required: true,
validation: val => {
return !!val.replace(/\s/g, "");
},
errorMessage: " should not be empty"
},
{
comp: "text",
key: "email",
label: "Email",
required: true,
validation: val => {
const regEx = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/g;
return val && regEx.test(val);
},
errorMessage: " should contain valid email address"
},
{
comp: "textarea",
key: "description",
label: "Description"
}
];
Пример
const formShape = [
{
comp: "text",
key: "name",
label: "Name"
},
{
comp: "text",
key: "contact",
label: "Mobile"
},
{
comp: "textarea",
key: "description",
label: "Details"
},
];
new booking.Booking("#root", {
data,
formShape,
// другие параметры
});
Фрагмент ниже показывает, как настроить поля в диалоге Booking: