@steroidsjs/core 3.0.83 → 3.0.85
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/docs-autogen-result.json +95 -16
- package/en.json +6 -3
- package/hooks/useDataProvider.d.ts +4 -0
- package/hooks/useDataProvider.js +5 -1
- package/package.json +1 -1
- package/ui/content/Calendar/Calendar.d.ts +1 -3
- package/ui/content/CalendarSystem/CalendarSystem.d.ts +0 -5
- package/ui/content/CalendarSystem/hooks/useCalendarSystem.d.ts +4 -10
- package/ui/content/CalendarSystem/hooks/useCalendarSystem.js +5 -5
- package/ui/content/CalendarSystem/hooks/useMonthGrid.d.ts +2 -8
- package/ui/content/CalendarSystem/hooks/useMonthGrid.js +3 -7
- package/ui/content/CalendarSystem/hooks/useWeekGrid.d.ts +4 -4
- package/ui/content/CalendarSystem/hooks/useWeekGrid.js +3 -3
- package/ui/content/CalendarSystem/utils/utils.d.ts +6 -12
- package/ui/content/CalendarSystem/utils/utils.js +24 -47
- package/ui/form/AutoCompleteField/AutoCompleteField.d.ts +4 -0
- package/ui/form/AutoCompleteField/AutoCompleteField.js +2 -1
- package/ui/form/DropDownField/DropDownField.d.ts +8 -0
- package/ui/form/DropDownField/DropDownField.js +7 -2
- package/ui/form/EmailField/EmailField.js +1 -1
- package/ui/form/EmailField/hooks/useInputTypeEmail.d.ts +1 -1
- package/ui/form/EmailField/hooks/useInputTypeEmail.js +2 -3
- package/ui/form/Form/Form.d.ts +4 -0
- package/ui/form/Form/Form.js +3 -3
- package/ui/format/EnumFormatter/EnumFormatter.d.ts +10 -3
- package/ui/format/MoneyFormatter/MoneyFormatter.d.ts +3 -3
package/docs-autogen-result.json
CHANGED
|
@@ -3182,6 +3182,14 @@
|
|
|
3182
3182
|
"type": "number[]",
|
|
3183
3183
|
"example": "[1, 22]"
|
|
3184
3184
|
},
|
|
3185
|
+
{
|
|
3186
|
+
"name": "isFetchDisabled",
|
|
3187
|
+
"decorators": [],
|
|
3188
|
+
"description": "Сигнал, запрещающий отправку запроса на получение данных",
|
|
3189
|
+
"required": false,
|
|
3190
|
+
"type": "boolean",
|
|
3191
|
+
"example": null
|
|
3192
|
+
},
|
|
3185
3193
|
{
|
|
3186
3194
|
"name": "items",
|
|
3187
3195
|
"decorators": [],
|
|
@@ -6976,7 +6984,7 @@
|
|
|
6976
6984
|
{
|
|
6977
6985
|
"name": "timeZone",
|
|
6978
6986
|
"decorators": [],
|
|
6979
|
-
"description": "Часовой пояс в формате IANA
|
|
6987
|
+
"description": "Часовой пояс в формате IANA",
|
|
6980
6988
|
"required": false,
|
|
6981
6989
|
"type": "string",
|
|
6982
6990
|
"example": "'Europe/Moscow'",
|
|
@@ -7170,7 +7178,7 @@
|
|
|
7170
7178
|
{
|
|
7171
7179
|
"name": "timeZone",
|
|
7172
7180
|
"decorators": [],
|
|
7173
|
-
"description": "Часовой пояс в формате IANA
|
|
7181
|
+
"description": "Часовой пояс в формате IANA",
|
|
7174
7182
|
"required": false,
|
|
7175
7183
|
"type": "string",
|
|
7176
7184
|
"example": "'Europe/Moscow'"
|
|
@@ -7186,7 +7194,7 @@
|
|
|
7186
7194
|
{
|
|
7187
7195
|
"name": "todayDate",
|
|
7188
7196
|
"decorators": [],
|
|
7189
|
-
"description": "Текущая дата в формате Date, используется для выделения текущего дня в
|
|
7197
|
+
"description": "Текущая дата в формате Date, используется для выделения текущего дня в календаре.",
|
|
7190
7198
|
"required": true,
|
|
7191
7199
|
"type": "Date",
|
|
7192
7200
|
"example": null
|
|
@@ -7863,15 +7871,6 @@
|
|
|
7863
7871
|
"example": "{width: '45%'}",
|
|
7864
7872
|
"defaultValue": null
|
|
7865
7873
|
},
|
|
7866
|
-
{
|
|
7867
|
-
"name": "timeZone",
|
|
7868
|
-
"decorators": [],
|
|
7869
|
-
"description": "Часовой пояс в формате IANA",
|
|
7870
|
-
"required": false,
|
|
7871
|
-
"type": "string",
|
|
7872
|
-
"example": "'Europe/Moscow'",
|
|
7873
|
-
"defaultValue": null
|
|
7874
|
-
},
|
|
7875
7874
|
{
|
|
7876
7875
|
"name": "users",
|
|
7877
7876
|
"decorators": [],
|
|
@@ -13916,6 +13915,15 @@
|
|
|
13916
13915
|
"example": null,
|
|
13917
13916
|
"defaultValue": null
|
|
13918
13917
|
},
|
|
13918
|
+
{
|
|
13919
|
+
"name": "isFetchDisabled",
|
|
13920
|
+
"decorators": [],
|
|
13921
|
+
"description": "Сигнал, запрещающий отправку запроса на получение данных",
|
|
13922
|
+
"required": false,
|
|
13923
|
+
"type": "boolean",
|
|
13924
|
+
"example": null,
|
|
13925
|
+
"defaultValue": null
|
|
13926
|
+
},
|
|
13919
13927
|
{
|
|
13920
13928
|
"name": "isRenderWithoutFieldLayout",
|
|
13921
13929
|
"decorators": [],
|
|
@@ -15765,6 +15773,15 @@
|
|
|
15765
15773
|
"example": null,
|
|
15766
15774
|
"defaultValue": null
|
|
15767
15775
|
},
|
|
15776
|
+
{
|
|
15777
|
+
"name": "isFetchDisabled",
|
|
15778
|
+
"decorators": [],
|
|
15779
|
+
"description": "Сигнал, запрещающий отправку запроса на получение данных",
|
|
15780
|
+
"required": false,
|
|
15781
|
+
"type": "boolean",
|
|
15782
|
+
"example": null,
|
|
15783
|
+
"defaultValue": null
|
|
15784
|
+
},
|
|
15768
15785
|
{
|
|
15769
15786
|
"name": "isRenderWithoutFieldLayout",
|
|
15770
15787
|
"decorators": [],
|
|
@@ -16348,6 +16365,15 @@
|
|
|
16348
16365
|
"example": null,
|
|
16349
16366
|
"defaultValue": null
|
|
16350
16367
|
},
|
|
16368
|
+
{
|
|
16369
|
+
"name": "isFetchDisabled",
|
|
16370
|
+
"decorators": [],
|
|
16371
|
+
"description": "Сигнал, запрещающий отправку запроса на получение данных",
|
|
16372
|
+
"required": false,
|
|
16373
|
+
"type": "boolean",
|
|
16374
|
+
"example": null,
|
|
16375
|
+
"defaultValue": null
|
|
16376
|
+
},
|
|
16351
16377
|
{
|
|
16352
16378
|
"name": "isRenderWithoutFieldLayout",
|
|
16353
16379
|
"decorators": [],
|
|
@@ -19426,6 +19452,15 @@
|
|
|
19426
19452
|
"example": null,
|
|
19427
19453
|
"defaultValue": null
|
|
19428
19454
|
},
|
|
19455
|
+
{
|
|
19456
|
+
"name": "isFetchDisabled",
|
|
19457
|
+
"decorators": [],
|
|
19458
|
+
"description": "Сигнал, запрещающий отправку запроса на получение данных",
|
|
19459
|
+
"required": false,
|
|
19460
|
+
"type": "boolean",
|
|
19461
|
+
"example": null,
|
|
19462
|
+
"defaultValue": null
|
|
19463
|
+
},
|
|
19429
19464
|
{
|
|
19430
19465
|
"name": "isFetchOnClose",
|
|
19431
19466
|
"decorators": [],
|
|
@@ -19725,6 +19760,15 @@
|
|
|
19725
19760
|
}
|
|
19726
19761
|
]
|
|
19727
19762
|
},
|
|
19763
|
+
{
|
|
19764
|
+
"name": "onOpen",
|
|
19765
|
+
"decorators": [],
|
|
19766
|
+
"description": "Callback-функция, которая вызывается при открытии DropDown",
|
|
19767
|
+
"required": false,
|
|
19768
|
+
"type": "void",
|
|
19769
|
+
"example": null,
|
|
19770
|
+
"parameters": []
|
|
19771
|
+
},
|
|
19728
19772
|
{
|
|
19729
19773
|
"name": "onReset",
|
|
19730
19774
|
"decorators": [],
|
|
@@ -19923,6 +19967,14 @@
|
|
|
19923
19967
|
"type": "boolean",
|
|
19924
19968
|
"example": null
|
|
19925
19969
|
},
|
|
19970
|
+
{
|
|
19971
|
+
"name": "isFetchDisabled",
|
|
19972
|
+
"decorators": [],
|
|
19973
|
+
"description": "Сигнал, запрещающий отправку запроса на получение данных",
|
|
19974
|
+
"required": false,
|
|
19975
|
+
"type": "boolean",
|
|
19976
|
+
"example": null
|
|
19977
|
+
},
|
|
19926
19978
|
{
|
|
19927
19979
|
"name": "isFetchOnClose",
|
|
19928
19980
|
"decorators": [],
|
|
@@ -20247,7 +20299,7 @@
|
|
|
20247
20299
|
{
|
|
20248
20300
|
"name": "onOpen",
|
|
20249
20301
|
"decorators": [],
|
|
20250
|
-
"description": "",
|
|
20302
|
+
"description": "Callback-функция, которая вызывается при открытии DropDown",
|
|
20251
20303
|
"required": false,
|
|
20252
20304
|
"type": "void",
|
|
20253
20305
|
"example": null,
|
|
@@ -23318,6 +23370,15 @@
|
|
|
23318
23370
|
"example": "true",
|
|
23319
23371
|
"defaultValue": null
|
|
23320
23372
|
},
|
|
23373
|
+
{
|
|
23374
|
+
"name": "validator",
|
|
23375
|
+
"decorators": [],
|
|
23376
|
+
"description": "Колбэк для использования сторонних валидаторов, например yup",
|
|
23377
|
+
"required": false,
|
|
23378
|
+
"type": "any",
|
|
23379
|
+
"example": null,
|
|
23380
|
+
"defaultValue": null
|
|
23381
|
+
},
|
|
23321
23382
|
{
|
|
23322
23383
|
"name": "validators",
|
|
23323
23384
|
"decorators": [],
|
|
@@ -26479,6 +26540,15 @@
|
|
|
26479
26540
|
"example": null,
|
|
26480
26541
|
"defaultValue": null
|
|
26481
26542
|
},
|
|
26543
|
+
{
|
|
26544
|
+
"name": "isFetchDisabled",
|
|
26545
|
+
"decorators": [],
|
|
26546
|
+
"description": "Сигнал, запрещающий отправку запроса на получение данных",
|
|
26547
|
+
"required": false,
|
|
26548
|
+
"type": "boolean",
|
|
26549
|
+
"example": null,
|
|
26550
|
+
"defaultValue": null
|
|
26551
|
+
},
|
|
26482
26552
|
{
|
|
26483
26553
|
"name": "isRenderWithoutFieldLayout",
|
|
26484
26554
|
"decorators": [],
|
|
@@ -31605,10 +31675,10 @@
|
|
|
31605
31675
|
{
|
|
31606
31676
|
"name": "items",
|
|
31607
31677
|
"decorators": [],
|
|
31608
|
-
"description": "Перечисление
|
|
31678
|
+
"description": "Перечисление элементов",
|
|
31609
31679
|
"required": false,
|
|
31610
31680
|
"type": "string | {} | string | number | {id: string | number | boolean, label: string | Record | number}[]",
|
|
31611
|
-
"example":
|
|
31681
|
+
"example": "// Строковый путь к перечислению\nconst enumPath = 'app.geo.enums.Cities';\n\n// Массив объектов\nconst items = [\n { id: 1, label: 'London' },\n { id: 2, label: 'Paris' }\n];",
|
|
31612
31682
|
"defaultValue": null
|
|
31613
31683
|
},
|
|
31614
31684
|
{
|
|
@@ -31781,7 +31851,7 @@
|
|
|
31781
31851
|
{
|
|
31782
31852
|
"name": "currency",
|
|
31783
31853
|
"decorators": [],
|
|
31784
|
-
"description": "Валюта @enum
|
|
31854
|
+
"description": "Валюта @enum {eur, rub, usd}",
|
|
31785
31855
|
"required": false,
|
|
31786
31856
|
"type": "string",
|
|
31787
31857
|
"example": "rub",
|
|
@@ -36921,6 +36991,15 @@
|
|
|
36921
36991
|
"example": "true",
|
|
36922
36992
|
"defaultValue": null
|
|
36923
36993
|
},
|
|
36994
|
+
{
|
|
36995
|
+
"name": "validator",
|
|
36996
|
+
"decorators": [],
|
|
36997
|
+
"description": "Колбэк для использования сторонних валидаторов, например yup",
|
|
36998
|
+
"required": false,
|
|
36999
|
+
"type": "any",
|
|
37000
|
+
"example": null,
|
|
37001
|
+
"defaultValue": null
|
|
37002
|
+
},
|
|
36924
37003
|
{
|
|
36925
37004
|
"name": "validators",
|
|
36926
37005
|
"decorators": [],
|
package/en.json
CHANGED
|
@@ -985,6 +985,7 @@
|
|
|
985
985
|
"Компонент, который представляет в виде дерева список с иерархической структурой данных\n\nДополнительный функционал: в кастомном view компонента есть возможность реализовать кнопку, по клику на которую\nбудет вызываться функция props.onItemFocus. Данная функция \"находит\" текущий роут в дереве -\nраскрывает родительские уровни, делает элемент активным.\nДанная функция не включает скролл к активному компоненту внутри дерева, это также необходимо\nреализовать в кастомном view локально в проекте.\n": "",
|
|
986
986
|
"Значение страницы по умолчанию.": "",
|
|
987
987
|
"Логическое значение, указывающее, можно ли загрузить еще элементы для списка при скролле.": "",
|
|
988
|
+
"Сигнал, запрещающий отправку запроса на получение данных": "",
|
|
988
989
|
" Ref autocomplete поиска": "",
|
|
989
990
|
"Нужно ли закрывать выпадающий список после выбора элемента": "",
|
|
990
991
|
"Ref для drop area": "",
|
|
@@ -1002,14 +1003,13 @@
|
|
|
1002
1003
|
"Сохранение в localStorage уровней вложенности.": "",
|
|
1003
1004
|
"Изначально отображать все элементы раскрытыми": "",
|
|
1004
1005
|
"Нужно ли отображать кнопку \"сегодня\" под календарем.": "",
|
|
1005
|
-
"Часовой пояс в формате IANA
|
|
1006
|
-
"Текущая дата в формате Date, используется для выделения текущего дня в
|
|
1006
|
+
"Часовой пояс в формате IANA": "",
|
|
1007
|
+
"Текущая дата в формате Date, используется для выделения текущего дня в календаре.": "",
|
|
1007
1008
|
"Дополнительные свойства для списка календарей бокового календаря": "",
|
|
1008
1009
|
"Дополнительные свойства для бокового календаря": "",
|
|
1009
1010
|
"Данные для формы с текущими датами календаря": "",
|
|
1010
1011
|
"Свойства для сетки дня": "",
|
|
1011
1012
|
"Свойства для сетки месяца": "",
|
|
1012
|
-
"Часовой пояс в формате IANA": "",
|
|
1013
1013
|
"Свойства для сетки недели": "",
|
|
1014
1014
|
"Конечная дата": "",
|
|
1015
1015
|
"Начальная дата": "",
|
|
@@ -1038,11 +1038,14 @@
|
|
|
1038
1038
|
"Текст, который отобразится при загрузке файла": "",
|
|
1039
1039
|
"Параметры для кнопки отправки формы": "",
|
|
1040
1040
|
"Очищать сообщение об ошибке при редактировании поля. По-умолчанию включено": "",
|
|
1041
|
+
"Колбэк для использования сторонних валидаторов, например yup": "",
|
|
1041
1042
|
"Конструктор редактора 'ckeditor5-react' из библиотеки @steroidsjs/ckeditor5/packages/ckeditor5-build-classic\nПримечание: для использования встроенного отображения 'HtmlField', данный компонент должен быть передан": "",
|
|
1042
1043
|
"Компонент редактора 'ckeditor5-react' из библиотеки @ckeditor\nПримечание: для использования встроенного отображения 'HtmlField', данный компонент должен быть передан": "",
|
|
1043
1044
|
"Допустимое количество символов после разделителя": "",
|
|
1044
1045
|
"Может ли число быть отрицательным": "",
|
|
1045
1046
|
" Ограничение доступного времени.": "",
|
|
1047
|
+
"Перечисление элементов": "",
|
|
1048
|
+
"Валюта @enum {eur, rub, usd}": "",
|
|
1046
1049
|
"Подключить бесконечный скролл": "",
|
|
1047
1050
|
"Аттрибут (название) в форме для поля с флагом, определяющим есть ли следующая страница": "",
|
|
1048
1051
|
"Аттрибут (название) в форме для поля с номером текущей страницы": "",
|
|
@@ -104,6 +104,10 @@ export interface IDataProviderConfig {
|
|
|
104
104
|
* @example [1, 22]
|
|
105
105
|
*/
|
|
106
106
|
initialSelectedIds?: number[];
|
|
107
|
+
/**
|
|
108
|
+
* Сигнал, запрещающий отправку запроса на получение данных
|
|
109
|
+
*/
|
|
110
|
+
isFetchDisabled?: boolean;
|
|
107
111
|
}
|
|
108
112
|
export interface IDataProviderResult {
|
|
109
113
|
fetchRemote: ((isAuto: boolean) => Promise<void>) | null;
|
package/hooks/useDataProvider.js
CHANGED
|
@@ -165,6 +165,9 @@ function useDataProvider(config) {
|
|
|
165
165
|
setItems(config.query ? (0, text_1.smartSearch)(config.query, sourceItems) : sourceItems);
|
|
166
166
|
return;
|
|
167
167
|
}
|
|
168
|
+
if (config.isFetchDisabled) {
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
168
171
|
if (config.autoFetch && !isAutoFetchedRef.current) {
|
|
169
172
|
isAutoFetchedRef.current = true;
|
|
170
173
|
fetchRemote(true);
|
|
@@ -187,7 +190,8 @@ function useDataProvider(config) {
|
|
|
187
190
|
}
|
|
188
191
|
}
|
|
189
192
|
}, [autoComplete, components.http, config.autoFetch, config.dataProvider, config.initialSelectedIds, config.query, dataProvider,
|
|
190
|
-
dataProvider.action, dataProvider.onSearch, fetchRemote, prevAction, prevParams, prevQuery, prevValues, setSourceItems, sourceItems
|
|
193
|
+
dataProvider.action, dataProvider.onSearch, fetchRemote, prevAction, prevParams, prevQuery, prevValues, setSourceItems, sourceItems,
|
|
194
|
+
config.isFetchDisabled]);
|
|
191
195
|
return {
|
|
192
196
|
fetchRemote: config.dataProvider && fetchRemote,
|
|
193
197
|
sourceItems: sourceItems,
|
package/package.json
CHANGED
|
@@ -64,8 +64,7 @@ export interface ICalendarProps extends IUiComponent {
|
|
|
64
64
|
*/
|
|
65
65
|
showTodayButton?: boolean;
|
|
66
66
|
/**
|
|
67
|
-
* Часовой пояс в формате IANA
|
|
68
|
-
* Не влияет на изменение даты в Calendar.
|
|
67
|
+
* Часовой пояс в формате IANA
|
|
69
68
|
* @example 'Europe/Moscow'
|
|
70
69
|
*/
|
|
71
70
|
timeZone?: string;
|
|
@@ -105,7 +104,6 @@ export interface ICalendarViewProps extends ICalendarProps {
|
|
|
105
104
|
toggleCaptionPanel: () => void;
|
|
106
105
|
/**
|
|
107
106
|
* Текущая дата в формате Date, используется для выделения текущего дня в календаре.
|
|
108
|
-
* Не влияет на изменение даты в Calendar.
|
|
109
107
|
*/
|
|
110
108
|
todayDate: Date;
|
|
111
109
|
}
|
|
@@ -165,11 +165,6 @@ export interface ICalendarSystemProps extends IUiComponent {
|
|
|
165
165
|
dateFromAttribute?: string;
|
|
166
166
|
dateToAttribute?: string;
|
|
167
167
|
};
|
|
168
|
-
/**
|
|
169
|
-
* Часовой пояс в формате IANA
|
|
170
|
-
* @example 'Europe/Moscow'
|
|
171
|
-
*/
|
|
172
|
-
timeZone?: string;
|
|
173
168
|
[key: string]: any;
|
|
174
169
|
}
|
|
175
170
|
export interface ICalendarSystemViewProps extends Pick<ICalendarSystemProps, 'className' | 'style' | 'additionalViewProps' | 'users' | 'asideCalendarProps' | 'asideCalendarCheckboxListProps'> {
|
|
@@ -2,20 +2,14 @@ import React from 'react';
|
|
|
2
2
|
import { ICalendarSystemProps, ICalendarUser, IEventGroup } from '../CalendarSystem';
|
|
3
3
|
export declare const useCalendarSystem: (props: ICalendarSystemProps) => {
|
|
4
4
|
monthGridWeekDays: any;
|
|
5
|
-
monthGridCalendarDays:
|
|
6
|
-
date: Date;
|
|
7
|
-
dayNumber: number;
|
|
8
|
-
outOfRange?: boolean;
|
|
9
|
-
isToday?: boolean;
|
|
10
|
-
formattedDisplay?: string;
|
|
11
|
-
}[];
|
|
5
|
+
monthGridCalendarDays: import("../CalendarSystem").IDay[];
|
|
12
6
|
weekGridTwentyFourHoursArray: string[];
|
|
13
7
|
weekGridCurrentWeekDays: {
|
|
14
|
-
date: Date;
|
|
15
|
-
formattedDisplay: any;
|
|
16
|
-
isToday: boolean;
|
|
17
8
|
dayNumber: number;
|
|
9
|
+
date: Date;
|
|
18
10
|
outOfRange?: boolean;
|
|
11
|
+
isToday?: boolean;
|
|
12
|
+
formattedDisplay?: string;
|
|
19
13
|
}[];
|
|
20
14
|
dayGridTwentyFourHoursArray: string[];
|
|
21
15
|
dayGridCurrentDay: import("../CalendarSystem").IDay;
|
|
@@ -61,21 +61,21 @@ var useCalendarSystem = function (props) {
|
|
|
61
61
|
setUsers(props.users);
|
|
62
62
|
}, [props.users]);
|
|
63
63
|
//Главная дата, от которой происходят все вычисления
|
|
64
|
-
var _f = react_1["default"].useState((0, utils_1.getFormattedDay)(
|
|
64
|
+
var _f = react_1["default"].useState((0, utils_1.getFormattedDay)()), generalCurrentDay = _f[0], setGeneralCurrentDay = _f[1];
|
|
65
65
|
var isGeneralCurrentDayNeedsUpdate = (0, react_1.useRef)(true);
|
|
66
66
|
var updateGeneralCurrentDay = (0, react_1.useCallback)(function (newDate) {
|
|
67
67
|
if (!isGeneralCurrentDayNeedsUpdate.current) {
|
|
68
68
|
isGeneralCurrentDayNeedsUpdate.current = true;
|
|
69
69
|
return;
|
|
70
70
|
}
|
|
71
|
-
setGeneralCurrentDay((0, utils_1.getFormattedDay)(newDate
|
|
72
|
-
}, [isGeneralCurrentDayNeedsUpdate
|
|
71
|
+
setGeneralCurrentDay((0, utils_1.getFormattedDay)(newDate));
|
|
72
|
+
}, [isGeneralCurrentDayNeedsUpdate]);
|
|
73
73
|
var onCalendarChangedMonth = react_1["default"].useCallback(function (newDate) {
|
|
74
74
|
updateGeneralCurrentDay(newDate);
|
|
75
75
|
}, [updateGeneralCurrentDay]);
|
|
76
76
|
var _g = (0, useDisplayDate_1["default"])(generalCurrentDay), dateToDisplay = _g.dateToDisplay, changeDisplayFormat = _g.changeDisplayFormat;
|
|
77
|
-
var _h = (0, useMonthGrid_1["default"])(generalCurrentDay
|
|
78
|
-
var _j = (0, useWeekGrid_1["default"])(generalCurrentDay
|
|
77
|
+
var _h = (0, useMonthGrid_1["default"])(generalCurrentDay), monthGridWeekDays = _h.monthGridWeekDays, monthGridCalendarDays = _h.monthGridCalendarDays;
|
|
78
|
+
var _j = (0, useWeekGrid_1["default"])(generalCurrentDay), weekGridTwentyFourHoursArray = _j.weekGridTwentyFourHoursArray, weekGridCurrentWeekDays = _j.weekGridCurrentWeekDays;
|
|
79
79
|
var _k = (0, useDayGrid_1.useDayGrid)(generalCurrentDay), dayGridTwentyFourHoursArray = _k.dayGridTwentyFourHoursArray, dayGridCurrentDay = _k.dayGridCurrentDay;
|
|
80
80
|
var _l = (0, useCalendarType_1.useCalendarType)(function (newType) {
|
|
81
81
|
if (newType === CalendarType_1["default"].DAY) {
|
|
@@ -1,12 +1,6 @@
|
|
|
1
1
|
import { IDay } from '../CalendarSystem';
|
|
2
|
-
declare const useMonthGrid: (generalCurrentDay: IDay
|
|
2
|
+
declare const useMonthGrid: (generalCurrentDay: IDay) => {
|
|
3
3
|
monthGridWeekDays: any;
|
|
4
|
-
monthGridCalendarDays:
|
|
5
|
-
date: Date;
|
|
6
|
-
dayNumber: number;
|
|
7
|
-
outOfRange?: boolean;
|
|
8
|
-
isToday?: boolean;
|
|
9
|
-
formattedDisplay?: string;
|
|
10
|
-
}[];
|
|
4
|
+
monthGridCalendarDays: IDay[];
|
|
11
5
|
};
|
|
12
6
|
export default useMonthGrid;
|
|
@@ -18,7 +18,7 @@ var utils_1 = require("../utils/utils");
|
|
|
18
18
|
var FIRST_DAY = 1;
|
|
19
19
|
var ONE_MONTH = 1;
|
|
20
20
|
var TOTAL_DAYS_IN_CALENDAR = 42;
|
|
21
|
-
var useMonthGrid = function (generalCurrentDay
|
|
21
|
+
var useMonthGrid = function (generalCurrentDay) {
|
|
22
22
|
var currentMonthData = (0, react_1.useMemo)(function () {
|
|
23
23
|
var _a, _b;
|
|
24
24
|
var currentYear = (_a = generalCurrentDay.date) === null || _a === void 0 ? void 0 : _a.getFullYear();
|
|
@@ -70,12 +70,8 @@ var useMonthGrid = function (generalCurrentDay, timeZone) {
|
|
|
70
70
|
outOfRange: currentDate.getMonth() > currentMonth
|
|
71
71
|
});
|
|
72
72
|
}
|
|
73
|
-
return innerCalendarArray.map(function (day) {
|
|
74
|
-
|
|
75
|
-
return (0, utils_1.isTodayInTimeZone)(zoned, timeZone)
|
|
76
|
-
? __assign(__assign({}, day), { date: zoned, isToday: true }) : __assign(__assign({}, day), { date: zoned });
|
|
77
|
-
});
|
|
78
|
-
}, [generalCurrentDay.date, currentMonthData, timeZone]);
|
|
73
|
+
return innerCalendarArray.map(function (day) { return (0, utils_1.isDateIsToday)(day.date) ? (__assign(__assign({}, day), { isToday: true })) : day; });
|
|
74
|
+
}, [generalCurrentDay.date, currentMonthData]);
|
|
79
75
|
return {
|
|
80
76
|
monthGridWeekDays: (0, utils_1.getWeekDays)(),
|
|
81
77
|
monthGridCalendarDays: calendarArray
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { IDay } from '../CalendarSystem';
|
|
2
|
-
declare const useWeekGrid: (generalCurrentDay: IDay
|
|
2
|
+
declare const useWeekGrid: (generalCurrentDay: IDay) => {
|
|
3
3
|
weekGridTwentyFourHoursArray: string[];
|
|
4
4
|
weekGridCurrentWeekDays: {
|
|
5
|
-
date: Date;
|
|
6
|
-
formattedDisplay: any;
|
|
7
|
-
isToday: boolean;
|
|
8
5
|
dayNumber: number;
|
|
6
|
+
date: Date;
|
|
9
7
|
outOfRange?: boolean;
|
|
8
|
+
isToday?: boolean;
|
|
9
|
+
formattedDisplay?: string;
|
|
10
10
|
}[];
|
|
11
11
|
};
|
|
12
12
|
export default useWeekGrid;
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
exports.__esModule = true;
|
|
3
3
|
var react_1 = require("react");
|
|
4
4
|
var utils_1 = require("../utils/utils");
|
|
5
|
-
var useWeekGrid = function (generalCurrentDay
|
|
5
|
+
var useWeekGrid = function (generalCurrentDay) {
|
|
6
6
|
var currentWeek = (0, react_1.useMemo)(function () {
|
|
7
|
-
var formattedWeek = (0, utils_1.getFormattedWeekFromDate)(generalCurrentDay.date
|
|
7
|
+
var formattedWeek = (0, utils_1.getFormattedWeekFromDate)(generalCurrentDay.date);
|
|
8
8
|
return formattedWeek;
|
|
9
|
-
}, [generalCurrentDay.date
|
|
9
|
+
}, [generalCurrentDay.date]);
|
|
10
10
|
return {
|
|
11
11
|
weekGridTwentyFourHoursArray: (0, utils_1.getTwentyFourHoursArray)(),
|
|
12
12
|
weekGridCurrentWeekDays: currentWeek
|
|
@@ -1,23 +1,17 @@
|
|
|
1
1
|
import { CSSProperties } from 'react';
|
|
2
2
|
import { IDay, IEvent, IEventGroup } from '../CalendarSystem';
|
|
3
|
-
export declare const
|
|
4
|
-
export declare const
|
|
5
|
-
export declare const getWeekDaysFromDate: (date: Date, timeZone?: string) => IDay[];
|
|
3
|
+
export declare const getWeekDaysFromDate: (date: Date) => IDay[];
|
|
4
|
+
export declare const isDateIsToday: (date: Date) => boolean;
|
|
6
5
|
export declare const getOmittedEvent: (event: IEvent | Omit<IEvent, 'color'>) => any;
|
|
7
6
|
export declare const sortEventsInGroup: (group: IEventGroup) => Omit<IEvent, "color">[];
|
|
8
7
|
export declare const getSourceCalendarControl: (control: string) => HTMLElement;
|
|
9
|
-
export declare const getFormattedDay: (date?: Date
|
|
8
|
+
export declare const getFormattedDay: (date?: Date) => IDay;
|
|
9
|
+
export declare const getFormattedWeekFromDate: (fromDate?: Date) => {
|
|
10
10
|
dayNumber: number;
|
|
11
11
|
date: Date;
|
|
12
|
-
formattedDisplay: any;
|
|
13
|
-
isToday: boolean;
|
|
14
|
-
};
|
|
15
|
-
export declare const getFormattedWeekFromDate: (fromDate?: Date, timeZone?: string) => {
|
|
16
|
-
date: Date;
|
|
17
|
-
formattedDisplay: any;
|
|
18
|
-
isToday: boolean;
|
|
19
|
-
dayNumber: number;
|
|
20
12
|
outOfRange?: boolean;
|
|
13
|
+
isToday?: boolean;
|
|
14
|
+
formattedDisplay?: string;
|
|
21
15
|
}[];
|
|
22
16
|
export declare const getTwentyFourHoursArray: () => string[];
|
|
23
17
|
export declare const getWeekDays: () => any;
|
|
@@ -14,57 +14,37 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
14
14
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
15
|
};
|
|
16
16
|
exports.__esModule = true;
|
|
17
|
-
exports.formatEventTime = exports.getTopMarginFromEvent = exports.getProportionFromEvent = exports.getWeekDays = exports.getTwentyFourHoursArray = exports.getFormattedWeekFromDate = exports.getFormattedDay = exports.getSourceCalendarControl = exports.sortEventsInGroup = exports.getOmittedEvent = exports.
|
|
17
|
+
exports.formatEventTime = exports.getTopMarginFromEvent = exports.getProportionFromEvent = exports.getWeekDays = exports.getTwentyFourHoursArray = exports.getFormattedWeekFromDate = exports.getFormattedDay = exports.getSourceCalendarControl = exports.sortEventsInGroup = exports.getOmittedEvent = exports.isDateIsToday = exports.getWeekDaysFromDate = void 0;
|
|
18
18
|
/* eslint-disable no-plusplus */
|
|
19
19
|
var dayjs_1 = __importDefault(require("dayjs"));
|
|
20
|
-
var utc_1 = __importDefault(require("dayjs/plugin/utc"));
|
|
21
|
-
var timezone_1 = __importDefault(require("dayjs/plugin/timezone"));
|
|
22
20
|
var omit_1 = __importDefault(require("lodash-es/omit"));
|
|
23
21
|
var concat_1 = __importDefault(require("lodash-es/concat"));
|
|
24
22
|
var slice_1 = __importDefault(require("lodash-es/slice"));
|
|
25
23
|
var upperFirst_1 = __importDefault(require("lodash-es/upperFirst"));
|
|
26
24
|
var ceil_1 = __importDefault(require("lodash-es/ceil"));
|
|
27
25
|
var calendar_1 = require("../../../../utils/calendar");
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
var SIX_DAYS_DIFF = 6;
|
|
27
|
+
var MAX_DAYS_DIFF_IN_WEEK = 7;
|
|
30
28
|
var WEEK_DAY_FORMAT = 'dd, D MMM';
|
|
31
|
-
|
|
32
|
-
var getDateInTimeZone = function (date, timeZone) {
|
|
33
|
-
if (!timeZone) {
|
|
34
|
-
return date;
|
|
35
|
-
}
|
|
36
|
-
var zoned = dayjs_1["default"].utc(date).tz(timeZone, true); // true => сохраняет локальное время
|
|
37
|
-
return zoned.toDate();
|
|
38
|
-
};
|
|
39
|
-
exports.getDateInTimeZone = getDateInTimeZone;
|
|
40
|
-
// Проверяет, является ли данная дата сегодняшним днём в указанном часовом поясе.
|
|
41
|
-
var isTodayInTimeZone = function (date, timeZone) {
|
|
42
|
-
if (!timeZone) {
|
|
43
|
-
return (0, dayjs_1["default"])(date).isToday();
|
|
44
|
-
}
|
|
45
|
-
var now = (0, dayjs_1["default"])().tz(timeZone);
|
|
46
|
-
var target = dayjs_1["default"].utc(date).tz(timeZone);
|
|
47
|
-
return now.isSame(target, 'day');
|
|
48
|
-
};
|
|
49
|
-
exports.isTodayInTimeZone = isTodayInTimeZone;
|
|
50
|
-
var getWeekDaysFromDate = function (date, timeZone) {
|
|
29
|
+
var getWeekDaysFromDate = function (date) {
|
|
51
30
|
var weekDays = [];
|
|
52
31
|
var firstDayOfWeek = new Date(date);
|
|
53
32
|
var currentDay = date.getDay();
|
|
54
|
-
var diff = currentDay === 0 ?
|
|
55
|
-
firstDayOfWeek.setDate(firstDayOfWeek.getDate() - diff);
|
|
56
|
-
for (var i = 0; i <
|
|
33
|
+
var diff = currentDay === 0 ? SIX_DAYS_DIFF : currentDay - 1; // Разница между текущим днем и понедельником
|
|
34
|
+
firstDayOfWeek.setDate(firstDayOfWeek.getDate() - diff); // Устанавливаем первый день недели (понедельник)
|
|
35
|
+
for (var i = 0; i < MAX_DAYS_DIFF_IN_WEEK; i++) {
|
|
57
36
|
var currentDate = new Date(firstDayOfWeek);
|
|
58
|
-
currentDate.setDate(
|
|
59
|
-
var zonedDate = (0, exports.getDateInTimeZone)(currentDate, timeZone);
|
|
37
|
+
currentDate.setDate(currentDate.getDate() + i);
|
|
60
38
|
weekDays.push({
|
|
61
|
-
dayNumber:
|
|
62
|
-
date:
|
|
39
|
+
dayNumber: currentDate.getDate(),
|
|
40
|
+
date: new Date(currentDate)
|
|
63
41
|
});
|
|
64
42
|
}
|
|
65
43
|
return weekDays;
|
|
66
44
|
};
|
|
67
45
|
exports.getWeekDaysFromDate = getWeekDaysFromDate;
|
|
46
|
+
var isDateIsToday = function (date) { return (0, dayjs_1["default"])(date).isToday(); };
|
|
47
|
+
exports.isDateIsToday = isDateIsToday;
|
|
68
48
|
var getOmittedEvent = function (event) { return (0, omit_1["default"])(event, ['color', 'eventGroupId']); };
|
|
69
49
|
exports.getOmittedEvent = getOmittedEvent;
|
|
70
50
|
var sortEventsInGroup = function (group) { return group.events
|
|
@@ -76,29 +56,26 @@ var sortEventsInGroup = function (group) { return group.events
|
|
|
76
56
|
exports.sortEventsInGroup = sortEventsInGroup;
|
|
77
57
|
var getSourceCalendarControl = function (control) { return document.querySelector("[data-icon=\"control-".concat(control, "\"]")); };
|
|
78
58
|
exports.getSourceCalendarControl = getSourceCalendarControl;
|
|
79
|
-
var getFormattedDay = function (date
|
|
59
|
+
var getFormattedDay = function (date) {
|
|
80
60
|
if (date === void 0) { date = null; }
|
|
81
|
-
var
|
|
82
|
-
// Сбрасываем время до начала дня в часовом поясе
|
|
83
|
-
var zoned = timeZone
|
|
84
|
-
? base.tz(timeZone).startOf('day')
|
|
85
|
-
: base.startOf('day');
|
|
86
|
-
var dayNumber = zoned.date();
|
|
87
|
-
var formattedDisplay = (0, calendar_1.convertDate)(zoned.toDate(), null, WEEK_DAY_FORMAT);
|
|
61
|
+
var dateToFormat = date || new Date();
|
|
88
62
|
return {
|
|
89
|
-
dayNumber:
|
|
90
|
-
date:
|
|
91
|
-
formattedDisplay:
|
|
92
|
-
isToday:
|
|
63
|
+
dayNumber: dateToFormat.getDate(),
|
|
64
|
+
date: new Date(dateToFormat),
|
|
65
|
+
formattedDisplay: (0, calendar_1.convertDate)(dateToFormat, null, WEEK_DAY_FORMAT),
|
|
66
|
+
isToday: (0, exports.isDateIsToday)(dateToFormat)
|
|
93
67
|
};
|
|
94
68
|
};
|
|
95
69
|
exports.getFormattedDay = getFormattedDay;
|
|
96
|
-
|
|
70
|
+
//TODO использовать существующие функции а не дублировать функционал
|
|
71
|
+
var getFormattedWeekFromDate = function (fromDate) {
|
|
97
72
|
if (fromDate === void 0) { fromDate = null; }
|
|
98
73
|
var currentWeek = (0, exports.getWeekDaysFromDate)(fromDate || new Date());
|
|
99
74
|
return currentWeek.map(function (dayOfWeek) {
|
|
100
|
-
var
|
|
101
|
-
|
|
75
|
+
var copyOfDayWeek = __assign({}, dayOfWeek);
|
|
76
|
+
copyOfDayWeek.formattedDisplay = (0, calendar_1.convertDate)(dayOfWeek.date, null, WEEK_DAY_FORMAT);
|
|
77
|
+
copyOfDayWeek.isToday = (0, exports.isDateIsToday)(copyOfDayWeek.date);
|
|
78
|
+
return copyOfDayWeek;
|
|
102
79
|
});
|
|
103
80
|
};
|
|
104
81
|
exports.getFormattedWeekFromDate = getFormattedWeekFromDate;
|
|
@@ -43,6 +43,10 @@ export interface IAutoCompleteFieldProps extends IBaseFieldProps, IDataProviderC
|
|
|
43
43
|
* @example '; '
|
|
44
44
|
*/
|
|
45
45
|
multipleSeparator?: string;
|
|
46
|
+
/**
|
|
47
|
+
* Сигнал, запрещающий отправку запроса на получение данных
|
|
48
|
+
*/
|
|
49
|
+
isFetchDisabled?: boolean;
|
|
46
50
|
}
|
|
47
51
|
export interface IAutoCompleteFieldViewProps extends Omit<IAutoCompleteFieldProps, 'items'> {
|
|
48
52
|
items: IAutoCompleteItem[];
|
|
@@ -42,7 +42,8 @@ function AutoCompleteField(props) {
|
|
|
42
42
|
autoComplete: props.autoComplete,
|
|
43
43
|
autoFetch: props.autoFetch,
|
|
44
44
|
initialSelectedIds: props.selectedIds,
|
|
45
|
-
query: query
|
|
45
|
+
query: query,
|
|
46
|
+
isFetchDisabled: props.isFetchDisabled
|
|
46
47
|
}), items = _b.items, isLoading = _b.isLoading, sourceItems = _b.sourceItems;
|
|
47
48
|
// Data select
|
|
48
49
|
var _c = (0, hooks_1.useDataSelect)({
|
|
@@ -166,6 +166,14 @@ export interface IDropDownFieldProps extends IFieldWrapperInputProps, Omit<IData
|
|
|
166
166
|
* Число в пикселях, больше которого не может быть выпадающее меню
|
|
167
167
|
*/
|
|
168
168
|
maxHeight?: number;
|
|
169
|
+
/**
|
|
170
|
+
* Callback-функция, которая вызывается при открытии DropDown
|
|
171
|
+
*/
|
|
172
|
+
onOpen?: () => void;
|
|
173
|
+
/**
|
|
174
|
+
* Сигнал, запрещающий отправку запроса на получение данных
|
|
175
|
+
*/
|
|
176
|
+
isFetchDisabled?: boolean;
|
|
169
177
|
[key: string]: any;
|
|
170
178
|
}
|
|
171
179
|
export interface IDropDownFieldViewProps extends IDropDownFieldProps {
|
|
@@ -120,7 +120,8 @@ function DropDownField(props) {
|
|
|
120
120
|
autoComplete: props.autoComplete,
|
|
121
121
|
autoFetch: props.autoFetch,
|
|
122
122
|
query: query,
|
|
123
|
-
initialSelectedIds: inputSelectedIds
|
|
123
|
+
initialSelectedIds: inputSelectedIds,
|
|
124
|
+
isFetchDisabled: props.isFetchDisabled
|
|
124
125
|
}), fetchRemote = _c.fetchRemote, items = _c.items, isLoading = _c.isLoading, isAutoComplete = _c.isAutoComplete, sourceItems = _c.sourceItems, dataProvider = __rest(_c, ["fetchRemote", "items", "isLoading", "isAutoComplete", "sourceItems"]);
|
|
125
126
|
// Data select
|
|
126
127
|
var _d = (0, hooks_1.useDataSelect)({
|
|
@@ -136,11 +137,15 @@ function DropDownField(props) {
|
|
|
136
137
|
hasCloseOnSelect: props.hasCloseOnSelect
|
|
137
138
|
}), isOpened = _d.isOpened, setIsOpened = _d.setIsOpened, setIsFocused = _d.setIsFocused, hoveredId = _d.hoveredId, setHoveredId = _d.setHoveredId, selectedIds = _d.selectedIds, setSelectedIds = _d.setSelectedIds, selectedItems = _d.selectedItems, setSelectedAll = _d.setSelectedAll, isSelectedAll = _d.isSelectedAll;
|
|
138
139
|
var onOpen = (0, react_1.useCallback)(function () {
|
|
140
|
+
// setIsLazyLoadEnabled(true);
|
|
139
141
|
setQuery('');
|
|
140
142
|
setIsFocused(true);
|
|
141
143
|
setIsOpened(true);
|
|
142
144
|
setHoveredId(null);
|
|
143
|
-
|
|
145
|
+
if (props.onOpen) {
|
|
146
|
+
props.onOpen();
|
|
147
|
+
}
|
|
148
|
+
}, [setHoveredId, setIsFocused, setIsOpened, props.onOpen]);
|
|
144
149
|
var onItemHover = (0, react_1.useCallback)(function (id) {
|
|
145
150
|
setHoveredId(id);
|
|
146
151
|
}, [setHoveredId]);
|
|
@@ -45,7 +45,7 @@ var enums_1 = require("../../../enums");
|
|
|
45
45
|
function EmailField(props) {
|
|
46
46
|
var components = (0, hooks_1.useComponents)();
|
|
47
47
|
var _a = (0, hooks_1.useSaveCursorPosition)(props.input), currentInputRef = _a.inputRef, onChange = _a.onChange;
|
|
48
|
-
var onInputChange = (0, useInputTypeEmail_1["default"])(currentInputRef, onChange, props.input.value).onInputChange;
|
|
48
|
+
var onInputChange = (0, useInputTypeEmail_1["default"])(currentInputRef, onChange, props.input.value, props.required).onInputChange;
|
|
49
49
|
var onClear = react_1["default"].useCallback(function () { return props.input.onChange(''); }, [props.input]);
|
|
50
50
|
var inputProps = react_1["default"].useMemo(function () {
|
|
51
51
|
var _a;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
declare const useInputTypeEmail: (currentInputRef: React.MutableRefObject<HTMLInputElement>, onChange: (event: React.ChangeEvent<HTMLInputElement>, value?: any) => void, currentValue: string | null | undefined) => {
|
|
2
|
+
declare const useInputTypeEmail: (currentInputRef: React.MutableRefObject<HTMLInputElement>, onChange: (event: React.ChangeEvent<HTMLInputElement>, value?: any) => void, currentValue: string | null | undefined, required: boolean) => {
|
|
3
3
|
onInputChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
4
4
|
};
|
|
5
5
|
export default useInputTypeEmail;
|
|
@@ -7,11 +7,10 @@ exports.__esModule = true;
|
|
|
7
7
|
/* eslint-disable no-unused-expressions */
|
|
8
8
|
var react_1 = __importDefault(require("react"));
|
|
9
9
|
var DEFAULT_VALIDITY = __('Неправильный формат адреса электронной почты.');
|
|
10
|
-
var useInputTypeEmail = function (currentInputRef, onChange, currentValue) {
|
|
10
|
+
var useInputTypeEmail = function (currentInputRef, onChange, currentValue, required) {
|
|
11
11
|
var isValueEmail = function (value) {
|
|
12
|
-
//In that case it's testing if value is empty string or not defined
|
|
13
12
|
if (!value) {
|
|
14
|
-
return
|
|
13
|
+
return !required;
|
|
15
14
|
}
|
|
16
15
|
var emailRegexp = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|.(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
|
17
16
|
return emailRegexp.test(value.toLowerCase());
|
package/ui/form/Form/Form.d.ts
CHANGED
|
@@ -62,6 +62,10 @@ export interface IFormProps extends IUiComponent {
|
|
|
62
62
|
* ]
|
|
63
63
|
*/
|
|
64
64
|
validators?: string[] | Array<string[]> | Array<Record<string, any>>;
|
|
65
|
+
/**
|
|
66
|
+
* Колбэк для использования сторонних валидаторов, например yup
|
|
67
|
+
*/
|
|
68
|
+
validator?: any;
|
|
65
69
|
/**
|
|
66
70
|
* Обработчик события перед отправкой формы
|
|
67
71
|
* @param args
|
package/ui/form/Form/Form.js
CHANGED
|
@@ -89,7 +89,6 @@ var useAddressBar_1 = __importDefault(require("../../../hooks/useAddressBar"));
|
|
|
89
89
|
var AutoSaveHelper_1 = __importDefault(require("./AutoSaveHelper"));
|
|
90
90
|
var hooks_1 = require("../../../hooks");
|
|
91
91
|
var form_1 = require("../../../utils/form");
|
|
92
|
-
var validate_1 = __importDefault(require("../validate"));
|
|
93
92
|
var form_2 = require("../../../actions/form");
|
|
94
93
|
var enums_1 = require("../../../enums");
|
|
95
94
|
var _isEmptyString = function (value) { return (0, isString_1["default"])(value) && (0, isEmpty_1["default"])(value); };
|
|
@@ -224,8 +223,9 @@ function Form(props) {
|
|
|
224
223
|
dispatch((0, form_2.formSetSubmitting)(props.formId, false));
|
|
225
224
|
return [2 /*return*/, null];
|
|
226
225
|
}
|
|
227
|
-
if (props.
|
|
228
|
-
(0,
|
|
226
|
+
if (props.validator && props.validator.call(null, cleanedValues) === false) {
|
|
227
|
+
dispatch((0, form_2.formSetSubmitting)(props.formId, false));
|
|
228
|
+
return [2 /*return*/, null];
|
|
229
229
|
}
|
|
230
230
|
if (!props.onSubmit) return [3 /*break*/, 2];
|
|
231
231
|
return [4 /*yield*/, props.onSubmit.call(null, cleanedValues)];
|
|
@@ -8,9 +8,16 @@ import { DataProviderItems } from '../../../hooks/useDataProvider';
|
|
|
8
8
|
**/
|
|
9
9
|
export interface IEnumFormatterProps {
|
|
10
10
|
/**
|
|
11
|
-
* Перечисление
|
|
12
|
-
*
|
|
13
|
-
*
|
|
11
|
+
* Перечисление элементов
|
|
12
|
+
* @example
|
|
13
|
+
* // Строковый путь к перечислению
|
|
14
|
+
* const enumPath = 'app.geo.enums.Cities';
|
|
15
|
+
*
|
|
16
|
+
* // Массив объектов
|
|
17
|
+
* const items = [
|
|
18
|
+
* { id: 1, label: 'London' },
|
|
19
|
+
* { id: 2, label: 'Paris' }
|
|
20
|
+
* ];
|
|
14
21
|
*/
|
|
15
22
|
items?: DataProviderItems;
|
|
16
23
|
/**
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
**/
|
|
8
8
|
export interface IMoneyFormatterProps {
|
|
9
9
|
/**
|
|
10
|
-
* Валюта @enum
|
|
10
|
+
* Валюта @enum {eur, rub, usd}
|
|
11
11
|
* @example rub
|
|
12
12
|
*/
|
|
13
13
|
currency?: string;
|
|
@@ -22,8 +22,8 @@ export interface IMoneyFormatterProps {
|
|
|
22
22
|
*/
|
|
23
23
|
precision?: number;
|
|
24
24
|
/**
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
* Значение для MoneyFormatter
|
|
26
|
+
*/
|
|
27
27
|
value?: any;
|
|
28
28
|
[key: string]: any;
|
|
29
29
|
}
|