@steroidsjs/core 3.0.43 → 3.0.45
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 +55 -4
- package/en.json +3 -0
- package/hooks/useTree.d.ts +5 -0
- package/hooks/useTree.js +3 -2
- package/package.json +1 -1
- package/ui/form/DateField/useDateRange.js +2 -1
- package/ui/form/DateRangeField/DateRangeField.d.ts +5 -0
- package/ui/form/DateRangeField/DateRangeField.js +2 -1
- package/ui/form/FieldList/FieldList.js +1 -1
- package/ui/list/Pagination/Pagination.d.ts +6 -1
- package/ui/list/TreeTable/TreeTable.d.ts +1 -0
- package/ui/list/TreeTable/TreeTable.js +2 -1
package/docs-autogen-result.json
CHANGED
|
@@ -4671,6 +4671,14 @@
|
|
|
4671
4671
|
"type": "number",
|
|
4672
4672
|
"example": null
|
|
4673
4673
|
},
|
|
4674
|
+
{
|
|
4675
|
+
"name": "isSinglePageItems",
|
|
4676
|
+
"decorators": [],
|
|
4677
|
+
"description": "Если флаг true, то данные в items переданы только для одной страницы, если false, то данные в items переданы сразу для всех страниц",
|
|
4678
|
+
"required": false,
|
|
4679
|
+
"type": "boolean",
|
|
4680
|
+
"example": "true"
|
|
4681
|
+
},
|
|
4674
4682
|
{
|
|
4675
4683
|
"name": "items",
|
|
4676
4684
|
"decorators": [],
|
|
@@ -17467,6 +17475,15 @@
|
|
|
17467
17475
|
"example": "{width: '45%'}",
|
|
17468
17476
|
"defaultValue": null
|
|
17469
17477
|
},
|
|
17478
|
+
{
|
|
17479
|
+
"name": "useSmartFocus",
|
|
17480
|
+
"decorators": [],
|
|
17481
|
+
"description": "Перемещать ли фокус на пустое после заполнения",
|
|
17482
|
+
"required": false,
|
|
17483
|
+
"type": "boolean",
|
|
17484
|
+
"example": "true",
|
|
17485
|
+
"defaultValue": null
|
|
17486
|
+
},
|
|
17470
17487
|
{
|
|
17471
17488
|
"name": "useUTC",
|
|
17472
17489
|
"decorators": [],
|
|
@@ -36458,10 +36475,10 @@
|
|
|
36458
36475
|
{
|
|
36459
36476
|
"name": "list",
|
|
36460
36477
|
"decorators": [],
|
|
36461
|
-
"description": "Список, для которого используется
|
|
36478
|
+
"description": "Список, для которого используется пагинация, пример {items: [...], total: number},",
|
|
36462
36479
|
"required": false,
|
|
36463
36480
|
"type": "any",
|
|
36464
|
-
"example":
|
|
36481
|
+
"example": "{{\n total: 100,\n page: 2,\n pageSize: 10,\n }}",
|
|
36465
36482
|
"defaultValue": null
|
|
36466
36483
|
},
|
|
36467
36484
|
{
|
|
@@ -36626,10 +36643,10 @@
|
|
|
36626
36643
|
{
|
|
36627
36644
|
"name": "list",
|
|
36628
36645
|
"decorators": [],
|
|
36629
|
-
"description": "Список, для которого используется
|
|
36646
|
+
"description": "Список, для которого используется пагинация, пример {items: [...], total: number},",
|
|
36630
36647
|
"required": false,
|
|
36631
36648
|
"type": "any",
|
|
36632
|
-
"example":
|
|
36649
|
+
"example": "{{\n total: 100,\n page: 2,\n pageSize: 10,\n }}"
|
|
36633
36650
|
},
|
|
36634
36651
|
{
|
|
36635
36652
|
"name": "loadMore",
|
|
@@ -37990,6 +38007,15 @@
|
|
|
37990
38007
|
"example": null,
|
|
37991
38008
|
"defaultValue": null
|
|
37992
38009
|
},
|
|
38010
|
+
{
|
|
38011
|
+
"name": "isSinglePageItems",
|
|
38012
|
+
"decorators": [],
|
|
38013
|
+
"description": "",
|
|
38014
|
+
"required": false,
|
|
38015
|
+
"type": "boolean",
|
|
38016
|
+
"example": null,
|
|
38017
|
+
"defaultValue": null
|
|
38018
|
+
},
|
|
37993
38019
|
{
|
|
37994
38020
|
"name": "items",
|
|
37995
38021
|
"decorators": [],
|
|
@@ -40121,6 +40147,14 @@
|
|
|
40121
40147
|
"type": "string",
|
|
40122
40148
|
"example": "'exampleTree'"
|
|
40123
40149
|
},
|
|
40150
|
+
{
|
|
40151
|
+
"name": "isSinglePageItems",
|
|
40152
|
+
"decorators": [],
|
|
40153
|
+
"description": "Если флаг true, то данные в items переданы только для одной страницы, если false, то данные в items переданы сразу для всех страниц",
|
|
40154
|
+
"required": false,
|
|
40155
|
+
"type": "boolean",
|
|
40156
|
+
"example": "true"
|
|
40157
|
+
},
|
|
40124
40158
|
{
|
|
40125
40159
|
"name": "item",
|
|
40126
40160
|
"decorators": [],
|
|
@@ -40370,6 +40404,15 @@
|
|
|
40370
40404
|
"example": "'exampleTree'",
|
|
40371
40405
|
"defaultValue": null
|
|
40372
40406
|
},
|
|
40407
|
+
{
|
|
40408
|
+
"name": "isSinglePageItems",
|
|
40409
|
+
"decorators": [],
|
|
40410
|
+
"description": "Если флаг true, то данные в items переданы только для одной страницы, если false, то данные в items переданы сразу для всех страниц",
|
|
40411
|
+
"required": false,
|
|
40412
|
+
"type": "boolean",
|
|
40413
|
+
"example": "true",
|
|
40414
|
+
"defaultValue": null
|
|
40415
|
+
},
|
|
40373
40416
|
{
|
|
40374
40417
|
"name": "items",
|
|
40375
40418
|
"decorators": [],
|
|
@@ -40590,6 +40633,14 @@
|
|
|
40590
40633
|
"type": "string",
|
|
40591
40634
|
"example": "'exampleTree'"
|
|
40592
40635
|
},
|
|
40636
|
+
{
|
|
40637
|
+
"name": "isSinglePageItems",
|
|
40638
|
+
"decorators": [],
|
|
40639
|
+
"description": "Если флаг true, то данные в items переданы только для одной страницы, если false, то данные в items переданы сразу для всех страниц",
|
|
40640
|
+
"required": false,
|
|
40641
|
+
"type": "boolean",
|
|
40642
|
+
"example": "true"
|
|
40643
|
+
},
|
|
40593
40644
|
{
|
|
40594
40645
|
"name": "items",
|
|
40595
40646
|
"decorators": [],
|
package/en.json
CHANGED
|
@@ -989,6 +989,7 @@
|
|
|
989
989
|
"Идентификатор (ключ) для сохранения в LocalStorage коллекции.": "",
|
|
990
990
|
"Скрывать открытые вложенные узлы, если скрыли родительский узел": "",
|
|
991
991
|
"Текущая страница, используется для корректного отображения пагинации": "",
|
|
992
|
+
"Если флаг true, то данные в items переданы только для одной страницы, если false, то данные в items переданы сразу для всех страниц": "",
|
|
992
993
|
"Количество элементов на странице, используется для корректного отображения пагинации": "",
|
|
993
994
|
"Параметры роутинга": "",
|
|
994
995
|
"Сохранение в localStorage уровней вложенности.": "",
|
|
@@ -1006,6 +1007,7 @@
|
|
|
1006
1007
|
"Пропсы для отображения элемента": "",
|
|
1007
1008
|
"Отображать чекбоксы только на узлах, не имеющих вложенных элементов": "",
|
|
1008
1009
|
"View компонент для элемента дерева": "",
|
|
1010
|
+
"Перемещать ли фокус на пустое после заполнения": "",
|
|
1009
1011
|
"Разделитель для даты и времени, не влияет на отображение": "",
|
|
1010
1012
|
"Нужно ли подгружать данные после закрытия DropDown": "",
|
|
1011
1013
|
"Начальные элементы списка": "",
|
|
@@ -1022,6 +1024,7 @@
|
|
|
1022
1024
|
"Подключить бесконечный скролл": "",
|
|
1023
1025
|
"Аттрибут (название) в форме для поля с флагом, определяющим есть ли следующая страница": "",
|
|
1024
1026
|
"Аттрибут (название) в форме для поля с номером текущей страницы": "",
|
|
1027
|
+
"Список, для которого используется пагинация, пример {items: [...], total: number},": "",
|
|
1025
1028
|
"CSS-класс для элемента навигации.": "",
|
|
1026
1029
|
"Тип данных для параметров маршрута.": "",
|
|
1027
1030
|
"Обертка над Redux Store со встроенными middleware (thunk, multi, promise..) и react-router.": ""
|
package/hooks/useTree.d.ts
CHANGED
|
@@ -116,5 +116,10 @@ export interface ITreeConfig {
|
|
|
116
116
|
* @example 'exampleTree'
|
|
117
117
|
*/
|
|
118
118
|
clientStorageId?: string;
|
|
119
|
+
/**
|
|
120
|
+
* Если флаг true, то данные в items переданы только для одной страницы, если false, то данные в items переданы сразу для всех страниц
|
|
121
|
+
* @example true
|
|
122
|
+
*/
|
|
123
|
+
isSinglePageItems?: boolean;
|
|
119
124
|
}
|
|
120
125
|
export default function useTree(config: ITreeConfig): ITreeOutput;
|
package/hooks/useTree.js
CHANGED
|
@@ -32,6 +32,7 @@ var DOT_SEPARATOR = '.';
|
|
|
32
32
|
var EMPTY_PARENT_ID = '';
|
|
33
33
|
var FIRST_LEVEL_PARENT_ID = '0';
|
|
34
34
|
var CLIENT_STORAGE_KEY = '_tree';
|
|
35
|
+
var DEFAULT_START_INDEX = 0;
|
|
35
36
|
var defaultProps = {
|
|
36
37
|
itemsKey: 'items',
|
|
37
38
|
autoOpenLevels: 0
|
|
@@ -200,7 +201,7 @@ function useTree(config) {
|
|
|
200
201
|
return [];
|
|
201
202
|
}
|
|
202
203
|
if (config.currentPage && config.itemsOnPage && currentLevel === INITIAL_CURRENT_LEVEL) {
|
|
203
|
-
var startIndex = (config.currentPage - 1) * config.itemsOnPage;
|
|
204
|
+
var startIndex = config.isSinglePageItems ? DEFAULT_START_INDEX : (config.currentPage - 1) * config.itemsOnPage;
|
|
204
205
|
sourceItems = sourceItems.slice(startIndex, startIndex + config.itemsOnPage);
|
|
205
206
|
}
|
|
206
207
|
return (sourceItems || []).reduce(function (treeItems, item, index) {
|
|
@@ -220,7 +221,7 @@ function useTree(config) {
|
|
|
220
221
|
};
|
|
221
222
|
return getItems(items);
|
|
222
223
|
// eslint-disable-next-line max-len
|
|
223
|
-
}, [activeRouteIds, config.alwaysOpened, config.currentPage, config.itemsOnPage, config.level, expandedItems, items, onExpand, primaryKey, routerParams, selectedUniqueId]);
|
|
224
|
+
}, [activeRouteIds, config.alwaysOpened, config.currentPage, config.itemsOnPage, config.level, expandedItems, items, onExpand, primaryKey, routerParams, selectedUniqueId, config.isSinglePageItems]);
|
|
224
225
|
return {
|
|
225
226
|
treeItems: resultTreeItems,
|
|
226
227
|
onItemFocus: onItemFocus
|
package/package.json
CHANGED
|
@@ -19,6 +19,7 @@ var react_use_1 = require("react-use");
|
|
|
19
19
|
var isNil_1 = __importDefault(require("lodash-es/isNil"));
|
|
20
20
|
var dayjs_1 = __importDefault(require("dayjs"));
|
|
21
21
|
var calendar_1 = require("@steroidsjs/core/utils/calendar");
|
|
22
|
+
var isOneRangeValueEmpty = function (valueFrom, valueTo) { return !valueFrom || !valueTo; };
|
|
22
23
|
function useDateRange(props) {
|
|
23
24
|
// Tracking focus for input being edited
|
|
24
25
|
var _a = (0, react_1.useState)('from'), focus = _a[0], setFocus = _a[1];
|
|
@@ -65,7 +66,7 @@ function useDateRange(props) {
|
|
|
65
66
|
if ((0, isNil_1["default"])(props.inputFrom.value) && (0, isNil_1["default"])(props.inputTo.value)) {
|
|
66
67
|
return;
|
|
67
68
|
}
|
|
68
|
-
if (props.useSmartFocus) {
|
|
69
|
+
if (props.useSmartFocus && isOneRangeValueEmpty(props.inputFrom.value, props.inputTo.value)) {
|
|
69
70
|
if (focus === 'from' && !valueToRef.current && prevValueFrom !== props.inputFrom.value) {
|
|
70
71
|
valueFromRef.current = props.inputFrom.value;
|
|
71
72
|
inputToRef.current.focus();
|
|
@@ -74,6 +74,11 @@ export interface IDateRangeFieldProps extends IDateInputStateInput, Omit<IFieldW
|
|
|
74
74
|
* @example true
|
|
75
75
|
*/
|
|
76
76
|
hasInitialFocus?: boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Перемещать ли фокус на пустое после заполнения
|
|
79
|
+
* @example true
|
|
80
|
+
*/
|
|
81
|
+
useSmartFocus?: boolean;
|
|
77
82
|
/**
|
|
78
83
|
* Опции маски для полей
|
|
79
84
|
*/
|
|
@@ -79,7 +79,7 @@ function DateRangeField(props) {
|
|
|
79
79
|
inputPropsTo: inputPropsTo,
|
|
80
80
|
inputFrom: props.inputFrom,
|
|
81
81
|
inputTo: props.inputTo,
|
|
82
|
-
useSmartFocus:
|
|
82
|
+
useSmartFocus: props.useSmartFocus,
|
|
83
83
|
hasInitialFocus: props.hasInitialFocus,
|
|
84
84
|
displayFormat: props.displayFormat,
|
|
85
85
|
valueFormat: props.valueFormat
|
|
@@ -130,6 +130,7 @@ DateRangeField.defaultProps = {
|
|
|
130
130
|
displayFormat: 'DD.MM.YYYY',
|
|
131
131
|
valueFormat: 'YYYY-MM-DD',
|
|
132
132
|
showRemove: true,
|
|
133
|
+
useSmartFocus: true,
|
|
133
134
|
hasInitialFocus: false,
|
|
134
135
|
icon: true,
|
|
135
136
|
maskOptions: {
|
|
@@ -135,7 +135,7 @@ function FieldList(props) {
|
|
|
135
135
|
onAdd: onAdd
|
|
136
136
|
}); }, [items, onAdd, props.className, props.disabled, props.required, props.showAdd, props.showRemove, props.size, props.tableClassName]);
|
|
137
137
|
var viewProps = (0, react_1.useMemo)(function () { return (__assign(__assign(__assign({}, commonProps), props.viewProps), { forwardedRef: nodeRef, hasAlternatingColors: props.hasAlternatingColors, style: props.style, children: props.children })); }, [commonProps, props.children, props.hasAlternatingColors, props.style, props.viewProps]);
|
|
138
|
-
var itemViewProps = (0, react_1.useMemo)(function () { return (__assign(__assign(__assign({}, commonProps), props.itemViewProps), {
|
|
138
|
+
var itemViewProps = (0, react_1.useMemo)(function () { return (__assign(__assign(__assign(__assign({}, commonProps), { onRemove: onRemove }), props.itemViewProps), { removeIcon: props.removeIcon })); }, [commonProps, onRemove, props.itemViewProps, props.removeIcon]);
|
|
139
139
|
var FieldListView = props.view || components.ui.getView('form.FieldListView');
|
|
140
140
|
var FieldListItemView = props.itemView || components.ui.getView('form.FieldListItemView');
|
|
141
141
|
return (react_1["default"].createElement(Form_1.FormContext.Provider, { value: contextValue },
|
|
@@ -63,7 +63,12 @@ export interface IPaginationProps {
|
|
|
63
63
|
*/
|
|
64
64
|
dark?: boolean;
|
|
65
65
|
/**
|
|
66
|
-
* Список, для которого используется
|
|
66
|
+
* Список, для которого используется пагинация, пример {items: [...], total: number},
|
|
67
|
+
* @example {{
|
|
68
|
+
* total: 100,
|
|
69
|
+
* page: 2,
|
|
70
|
+
* pageSize: 10,
|
|
71
|
+
* }}
|
|
67
72
|
*/
|
|
68
73
|
list?: any;
|
|
69
74
|
/**
|
|
@@ -27,6 +27,7 @@ export interface ITreeTableProps extends Omit<IGridProps, 'items'>, Pick<ITreePr
|
|
|
27
27
|
* ]
|
|
28
28
|
*/
|
|
29
29
|
items?: ITreeItem[];
|
|
30
|
+
isSinglePageItems?: boolean;
|
|
30
31
|
customIcon?: string | React.ReactElement;
|
|
31
32
|
}
|
|
32
33
|
export declare const addTreeColumnFieldsToFirstColumn: (columns: IGridColumn[], levelPadding: string | number, customIcon?: string | React.ReactElement) => IGridColumn[];
|
|
@@ -76,7 +76,8 @@ function TreeTable(props) {
|
|
|
76
76
|
itemsOnPage: list === null || list === void 0 ? void 0 : list.pageSize,
|
|
77
77
|
collapseChildItems: props.collapseChildItems,
|
|
78
78
|
saveInClientStorage: props.saveInClientStorage,
|
|
79
|
-
clientStorageId: props.listId
|
|
79
|
+
clientStorageId: props.listId,
|
|
80
|
+
isSinglePageItems: props.isSinglePageItems
|
|
80
81
|
}).treeItems;
|
|
81
82
|
return (React.createElement(Grid_1["default"], __assign({}, props, { columns: columns, items: treeItems, itemsIndexing: false })));
|
|
82
83
|
}
|