@steroidsjs/core 3.0.0-beta.91 → 3.0.0-beta.93
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 +1114 -164
- package/en.json +14 -9
- package/hooks/useList.d.ts +1 -1
- package/hooks/useSaveCursorPosition.js +3 -0
- package/package.json +5 -5
- package/ui/content/CalendarSystem/hooks/useExpandClickAway.d.ts +7 -0
- package/ui/content/CalendarSystem/hooks/useExpandClickAway.js +23 -0
- package/ui/content/Kanban/Kanban.d.ts +45 -42
- package/ui/content/Kanban/Kanban.js +6 -3
- package/ui/content/Kanban/actions/index.d.ts +2 -2
- package/ui/content/Kanban/actions/index.js +7 -1
- package/ui/content/Kanban/actions/kanban.d.ts +21 -0
- package/ui/content/Kanban/actions/kanban.js +25 -1
- package/ui/content/Kanban/constants/modalAndFormIds.d.ts +4 -0
- package/ui/content/Kanban/constants/modalAndFormIds.js +7 -0
- package/ui/content/Kanban/enums/KanbanModalTypeEnum.d.ts +13 -0
- package/ui/content/Kanban/enums/KanbanModalTypeEnum.js +49 -0
- package/ui/content/Kanban/enums/KanbanPrioritiesEnum.d.ts +18 -0
- package/ui/content/Kanban/enums/KanbanPrioritiesEnum.js +78 -0
- package/ui/content/Kanban/enums/index.d.ts +3 -0
- package/ui/content/Kanban/enums/index.js +10 -0
- package/ui/content/Kanban/hooks/useKanban.d.ts +54 -9
- package/ui/content/Kanban/hooks/useKanban.js +126 -28
- package/ui/content/Kanban/reducers/index.d.ts +2 -2
- package/ui/content/Kanban/reducers/index.js +4 -1
- package/ui/content/Kanban/reducers/kanban.d.ts +4 -0
- package/ui/content/Kanban/reducers/kanban.js +50 -5
- package/ui/form/EmailField/EmailField.d.ts +6 -0
- package/ui/form/EmailField/EmailField.js +44 -0
- package/ui/form/EmailField/hooks/useInputTypeEmail.d.ts +5 -0
- package/ui/form/EmailField/hooks/useInputTypeEmail.js +31 -0
- package/ui/form/EmailField/index.d.ts +2 -0
- package/ui/form/EmailField/index.js +7 -0
- package/ui/form/FieldSet/FieldSet.d.ts +1 -1
- package/ui/form/FileField/FileField.d.ts +3 -0
- package/ui/form/Form/Form.d.ts +1 -1
- package/ui/form/InputField/InputField.d.ts +3 -3
- package/ui/form/InputField/InputField.js +7 -1
- package/ui/form/InputField/hooks/useInputFieldWarningByType.d.ts +3 -0
- package/ui/form/InputField/hooks/useInputFieldWarningByType.js +35 -0
- package/ui/form/NumberField/hooks/useInputTypeNumber.d.ts +1 -1
- package/ui/form/NumberField/hooks/useInputTypeNumber.js +9 -13
- package/ui/form/SliderField/SliderField.d.ts +1 -1
- package/ui/form/index.d.ts +3 -1
- package/ui/form/index.js +5 -2
- package/ui/format/EnumFormatter/EnumFormatter.d.ts +1 -1
- package/ui/format/MoneyFormatter/MoneyFormatter.d.ts +1 -1
- package/ui/list/Grid/Grid.d.ts +1 -1
- package/ui/nav/Tree/Tree.d.ts +1 -1
- package/ui/content/Calendar/demo/basic.d.ts +0 -8
- package/ui/content/Calendar/demo/basic.js +0 -37
- package/ui/form/RateField/demo/allow-clear.d.ts +0 -8
- package/ui/form/RateField/demo/allow-clear.js +0 -37
- package/ui/form/RateField/demo/basic.d.ts +0 -8
- package/ui/form/RateField/demo/basic.js +0 -37
- package/ui/form/RateField/demo/default-value.d.ts +0 -8
- package/ui/form/RateField/demo/default-value.js +0 -37
- package/ui/form/RateField/demo/disabled.d.ts +0 -8
- package/ui/form/RateField/demo/disabled.js +0 -37
- package/ui/form/RateField/demo/errors.d.ts +0 -8
- package/ui/form/RateField/demo/errors.js +0 -37
- package/ui/form/RateField/demo/items-count.d.ts +0 -8
- package/ui/form/RateField/demo/items-count.js +0 -37
- package/ui/form/RateField/demo/required.d.ts +0 -8
- package/ui/form/RateField/demo/required.js +0 -37
- package/ui/form/SwitcherField/demo/basic.d.ts +0 -12
- package/ui/form/SwitcherField/demo/basic.js +0 -56
- package/ui/form/SwitcherField/demo/disabled.d.ts +0 -8
- package/ui/form/SwitcherField/demo/disabled.js +0 -38
- package/ui/form/SwitcherField/demo/errors.d.ts +0 -8
- package/ui/form/SwitcherField/demo/errors.js +0 -38
- package/ui/form/SwitcherField/demo/required.d.ts +0 -8
- package/ui/form/SwitcherField/demo/required.js +0 -38
- package/ui/form/TimeField/demo/basic.d.ts +0 -8
- package/ui/form/TimeField/demo/basic.js +0 -37
- package/ui/form/TimeField/demo/disabled.d.ts +0 -8
- package/ui/form/TimeField/demo/disabled.js +0 -37
- package/ui/form/TimeField/demo/errors.d.ts +0 -8
- package/ui/form/TimeField/demo/errors.js +0 -37
- package/ui/form/TimeField/demo/icon.d.ts +0 -8
- package/ui/form/TimeField/demo/icon.js +0 -37
- package/ui/form/TimeField/demo/noBorder.d.ts +0 -8
- package/ui/form/TimeField/demo/noBorder.js +0 -37
- package/ui/form/TimeField/demo/placeholder.d.ts +0 -8
- package/ui/form/TimeField/demo/placeholder.js +0 -37
- package/ui/form/TimeField/demo/required.d.ts +0 -8
- package/ui/form/TimeField/demo/required.js +0 -37
- package/ui/form/TimeField/demo/showRemove.d.ts +0 -8
- package/ui/form/TimeField/demo/showRemove.js +0 -37
- package/ui/layout/ProgressBar/demo/percent.d.ts +0 -8
- package/ui/layout/ProgressBar/demo/percent.js +0 -53
- package/ui/layout/ProgressBar/demo/showLabel.d.ts +0 -8
- package/ui/layout/ProgressBar/demo/showLabel.js +0 -44
- package/ui/layout/ProgressBar/demo/sizes.d.ts +0 -8
- package/ui/layout/ProgressBar/demo/sizes.js +0 -44
- package/ui/layout/ProgressBar/demo/status.d.ts +0 -8
- package/ui/layout/ProgressBar/demo/status.js +0 -39
- package/ui/layout/ProgressBar/demo/type.d.ts +0 -8
- package/ui/layout/ProgressBar/demo/type.js +0 -44
- package/ui/layout/Skeleton/demo/animations.d.ts +0 -8
- package/ui/layout/Skeleton/demo/animations.js +0 -53
- package/ui/layout/Skeleton/demo/width height.d.ts +0 -8
- package/ui/layout/Skeleton/demo/width height.js +0 -42
- package/ui/list/SearchForm/demo/basic.d.ts +0 -8
- package/ui/list/SearchForm/demo/basic.js +0 -42
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IDragEndResult, IKanbanColumn } from '../Kanban';
|
|
1
|
+
import { IDragEndResult, IKanbanColumn, IKanbanTask, ITaskAssigner, ITaskTag } from '../Kanban';
|
|
2
2
|
export interface IKanbanConfig {
|
|
3
3
|
/**
|
|
4
4
|
* Идентификатор канбан доски
|
|
@@ -6,20 +6,65 @@ export interface IKanbanConfig {
|
|
|
6
6
|
*/
|
|
7
7
|
kanbanId?: string;
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
9
|
+
* Коллекция с наименованиями и свойствами колонок в таблице
|
|
10
|
+
* @example [
|
|
11
|
+
* {
|
|
12
|
+
* id: 1,
|
|
13
|
+
* title: 'column 1',
|
|
14
|
+
* tasks: [{ content: 'item 1', id: 1 }],
|
|
15
|
+
* },
|
|
16
|
+
* {
|
|
17
|
+
* id: 2,
|
|
18
|
+
* title: 'column 2',
|
|
19
|
+
* tasks: [],
|
|
20
|
+
* }
|
|
21
|
+
* ]
|
|
10
22
|
*/
|
|
11
|
-
columns
|
|
23
|
+
columns: IKanbanColumn[];
|
|
24
|
+
/**
|
|
25
|
+
* Массив тегов для задач
|
|
26
|
+
*/
|
|
27
|
+
tags?: ITaskTag[];
|
|
28
|
+
/**
|
|
29
|
+
* Массив исполнителей, которых можно назначить для выполнения задачи
|
|
30
|
+
*/
|
|
31
|
+
assigners?: ITaskAssigner[];
|
|
12
32
|
/**
|
|
13
33
|
* Обработчик события окончания перетаскивания карточки или колонки
|
|
34
|
+
* В result передается объект с информацией о событии
|
|
35
|
+
* @example {
|
|
36
|
+
* draggableId: 1,
|
|
37
|
+
* type: 'task',
|
|
38
|
+
* source: {
|
|
39
|
+
* index: 0,
|
|
40
|
+
* droppableId: 2
|
|
41
|
+
* },
|
|
42
|
+
* reason: 'DROP',
|
|
43
|
+
* mode: 'FLUID',
|
|
44
|
+
* destination: {
|
|
45
|
+
* droppableId: 2,
|
|
46
|
+
* index: 1
|
|
47
|
+
* },
|
|
48
|
+
* combine: null
|
|
49
|
+
* }
|
|
50
|
+
*/
|
|
51
|
+
onDragEnd?: (result: IDragEndResult) => void;
|
|
52
|
+
/**
|
|
53
|
+
* Обработчик события создания карточки
|
|
54
|
+
*/
|
|
55
|
+
onCreateTask?: (kanbanId: string, columnId: number, task: IKanbanTask) => void;
|
|
56
|
+
/**
|
|
57
|
+
* Обработчик события редактирования карточки
|
|
58
|
+
*/
|
|
59
|
+
onEditTask?: (task: IKanbanTask) => void;
|
|
60
|
+
/**
|
|
61
|
+
* Идентификатор последней созданной задачи, нужен для определения последовательности id для новых задач
|
|
14
62
|
*/
|
|
15
|
-
|
|
63
|
+
lastTaskId?: number;
|
|
16
64
|
}
|
|
17
|
-
export declare const DEFAULT_COLUMNS: {
|
|
18
|
-
id: string;
|
|
19
|
-
title: string;
|
|
20
|
-
tasks: any[];
|
|
21
|
-
}[];
|
|
22
65
|
export default function useKanban(config: IKanbanConfig): {
|
|
23
66
|
columns: any;
|
|
24
67
|
onDragEnd: (result: any) => void;
|
|
68
|
+
onOpenTaskDetailsModal: (task: any, columnId: any) => void;
|
|
69
|
+
onOpenCreateTaskModal: (columnId: any) => void;
|
|
25
70
|
};
|
|
@@ -1,37 +1,73 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(o, k2, desc);
|
|
20
|
+
}) : (function(o, m, k, k2) {
|
|
21
|
+
if (k2 === undefined) k2 = k;
|
|
22
|
+
o[k2] = m[k];
|
|
23
|
+
}));
|
|
24
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
+
}) : function(o, v) {
|
|
27
|
+
o["default"] = v;
|
|
28
|
+
});
|
|
29
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
30
|
+
if (mod && mod.__esModule) return mod;
|
|
31
|
+
var result = {};
|
|
32
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
33
|
+
__setModuleDefault(result, mod);
|
|
34
|
+
return result;
|
|
35
|
+
};
|
|
2
36
|
exports.__esModule = true;
|
|
3
|
-
|
|
37
|
+
var react_1 = __importStar(require("react"));
|
|
4
38
|
var react_use_1 = require("react-use");
|
|
5
|
-
var
|
|
39
|
+
var modal_1 = require("../../../../actions/modal");
|
|
6
40
|
var hooks_1 = require("../../../../hooks");
|
|
41
|
+
var enums_1 = require("../enums");
|
|
7
42
|
var reducers_1 = require("../reducers");
|
|
8
43
|
var actions_1 = require("../actions");
|
|
44
|
+
var modalAndFormIds_1 = require("../constants/modalAndFormIds");
|
|
9
45
|
var COLUMNS_DROPPABLE_ID = 'all-columns';
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
{
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
tasks: []
|
|
30
|
-
},
|
|
31
|
-
];
|
|
46
|
+
var INITIAL_TASK_ID = 1;
|
|
47
|
+
var normalizeAssignersForDropDownItems = function (assigners) { return assigners.map(function (assigner) {
|
|
48
|
+
var _a, _b;
|
|
49
|
+
return ({
|
|
50
|
+
id: assigner.id,
|
|
51
|
+
label: "".concat(assigner.firstName || '', " ").concat(assigner.lastName || ''),
|
|
52
|
+
contentType: assigner.avatar ? 'img' : 'icon',
|
|
53
|
+
contentSrc: (_b = (_a = assigner.avatar) === null || _a === void 0 ? void 0 : _a.src) !== null && _b !== void 0 ? _b : 'user'
|
|
54
|
+
});
|
|
55
|
+
}); };
|
|
56
|
+
var normalizeEditTaskFormForState = function (id, data, assigners, tags) { return ({
|
|
57
|
+
id: id,
|
|
58
|
+
title: data.title || '',
|
|
59
|
+
description: data.description || '',
|
|
60
|
+
fullDescription: data.fullDescription || '',
|
|
61
|
+
priority: enums_1.KanbanPrioritiesEnum.getPriorityById(data.priority),
|
|
62
|
+
assigner: assigners.find(function (user) { return user.id === data.assigner; }) || null,
|
|
63
|
+
tags: data.tags && tags && tags.filter(function (tag) { return data.tags.includes(tag.id); })
|
|
64
|
+
}); };
|
|
32
65
|
function useKanban(config) {
|
|
33
|
-
|
|
34
|
-
|
|
66
|
+
var _a = (0, hooks_1.useSelector)(function (state) { return ({
|
|
67
|
+
kanban: (0, reducers_1.getKanban)(state, config.kanbanId),
|
|
68
|
+
lastTaskId: (0, reducers_1.getLastTaskId)(state, config.kanbanId),
|
|
69
|
+
tags: (0, reducers_1.getKanbanTags)(state, config.kanbanId)
|
|
70
|
+
}); }), kanban = _a.kanban, lastTaskId = _a.lastTaskId, tags = _a.tags;
|
|
35
71
|
var dispatch = (0, hooks_1.useDispatch)();
|
|
36
72
|
// move card
|
|
37
73
|
var moveCard = (0, react_1.useCallback)(function (source, destination) {
|
|
@@ -41,6 +77,64 @@ function useKanban(config) {
|
|
|
41
77
|
var moveColumn = (0, react_1.useCallback)(function (source, destination) {
|
|
42
78
|
dispatch((0, actions_1.kanbanMoveColumn)(config.kanbanId, source, destination));
|
|
43
79
|
}, [config.kanbanId, dispatch]);
|
|
80
|
+
var components = (0, hooks_1.useComponents)();
|
|
81
|
+
var onCreateTask = react_1["default"].useCallback(function (_, data) {
|
|
82
|
+
var newTaskId = lastTaskId ? lastTaskId + 1 : INITIAL_TASK_ID;
|
|
83
|
+
var newTask = normalizeEditTaskFormForState(newTaskId, data, config.assigners, tags);
|
|
84
|
+
if (config.onCreateTask) {
|
|
85
|
+
config.onCreateTask(config.kanbanId, data.columnId, newTask);
|
|
86
|
+
}
|
|
87
|
+
var toDispatch = [
|
|
88
|
+
(0, actions_1.kanbanAddTask)(config.kanbanId, data.columnId, newTask),
|
|
89
|
+
(0, actions_1.kanbanIncreaseTaskId)(config.kanbanId, newTaskId),
|
|
90
|
+
(0, modal_1.closeModal)(modalAndFormIds_1.CREATE_TASK_MODAL_ID),
|
|
91
|
+
];
|
|
92
|
+
dispatch(toDispatch);
|
|
93
|
+
}, [config, dispatch, lastTaskId, tags]);
|
|
94
|
+
var onEditTask = react_1["default"].useCallback(function (id, data, prevColumnId) {
|
|
95
|
+
var editedTask = normalizeEditTaskFormForState(id, data, config.assigners, tags);
|
|
96
|
+
if (config.onEditTask) {
|
|
97
|
+
config.onEditTask(editedTask);
|
|
98
|
+
}
|
|
99
|
+
var toDispatch = [
|
|
100
|
+
(0, actions_1.kanbanEditTask)(config.kanbanId, data.columnId, prevColumnId, editedTask),
|
|
101
|
+
(0, modal_1.closeModal)(modalAndFormIds_1.EDIT_TASK_MODAL_ID),
|
|
102
|
+
];
|
|
103
|
+
dispatch(toDispatch);
|
|
104
|
+
}, [config, dispatch, tags]);
|
|
105
|
+
// common modal
|
|
106
|
+
var KanbanModalView = components.ui.getView('content.KanbanModalView');
|
|
107
|
+
var createOrEditTaskCommonModalProps = react_1["default"].useMemo(function () { return ({
|
|
108
|
+
columns: kanban === null || kanban === void 0 ? void 0 : kanban.columns,
|
|
109
|
+
assigners: normalizeAssignersForDropDownItems(config.assigners || []),
|
|
110
|
+
tags: tags
|
|
111
|
+
}); }, [config.assigners, kanban === null || kanban === void 0 ? void 0 : kanban.columns, tags]);
|
|
112
|
+
// create task modal
|
|
113
|
+
var onOpenCreateTaskModal = react_1["default"].useCallback(function (columnId) {
|
|
114
|
+
if (columnId) {
|
|
115
|
+
dispatch((0, modal_1.openModal)(KanbanModalView, __assign(__assign({}, createOrEditTaskCommonModalProps), { modalId: modalAndFormIds_1.CREATE_TASK_MODAL_ID, modalType: enums_1.KanbanModalTypeEnum.CREATE, title: enums_1.KanbanModalTypeEnum.getLabel(enums_1.KanbanModalTypeEnum.CREATE), formId: modalAndFormIds_1.CREATE_TASK_FORM_ID, columnId: columnId, onSubmit: onCreateTask })));
|
|
116
|
+
}
|
|
117
|
+
}, [KanbanModalView, createOrEditTaskCommonModalProps, dispatch, onCreateTask]);
|
|
118
|
+
// task details modal
|
|
119
|
+
var onOpenTaskDetailsModal = react_1["default"].useCallback(function (task, columnId) {
|
|
120
|
+
if (task && columnId) {
|
|
121
|
+
dispatch((0, modal_1.openModal)(KanbanModalView, {
|
|
122
|
+
modalId: modalAndFormIds_1.EDIT_TASK_MODAL_ID,
|
|
123
|
+
modalType: enums_1.KanbanModalTypeEnum.DETAILS,
|
|
124
|
+
title: "#".concat(task.id, " ").concat(task.title),
|
|
125
|
+
task: task,
|
|
126
|
+
tags: tags,
|
|
127
|
+
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
128
|
+
onToggleModalType: function () { return onOpenEditTaskModal(task, columnId); }
|
|
129
|
+
}));
|
|
130
|
+
}
|
|
131
|
+
}, [KanbanModalView, dispatch, kanban]);
|
|
132
|
+
// edit task modal
|
|
133
|
+
var onOpenEditTaskModal = react_1["default"].useCallback(function (task, columnId) {
|
|
134
|
+
if (task && columnId) {
|
|
135
|
+
dispatch((0, modal_1.openModal)(KanbanModalView, __assign(__assign({}, createOrEditTaskCommonModalProps), { modalId: modalAndFormIds_1.EDIT_TASK_MODAL_ID, modalType: enums_1.KanbanModalTypeEnum.EDIT, title: enums_1.KanbanModalTypeEnum.getLabel(enums_1.KanbanModalTypeEnum.EDIT), formId: modalAndFormIds_1.EDIT_TASK_FORM_ID, columnId: columnId, onSubmit: onEditTask, onToggleModalType: function () { return onOpenTaskDetailsModal(task, columnId); } })));
|
|
136
|
+
}
|
|
137
|
+
}, [KanbanModalView, createOrEditTaskCommonModalProps, dispatch, onEditTask, onOpenTaskDetailsModal]);
|
|
44
138
|
var onDragEnd = function (result) {
|
|
45
139
|
if (config.onDragEnd) {
|
|
46
140
|
config.onDragEnd(result);
|
|
@@ -64,13 +158,17 @@ function useKanban(config) {
|
|
|
64
158
|
if (!kanban) {
|
|
65
159
|
dispatch((0, actions_1.kanbanInit)(config.kanbanId, {
|
|
66
160
|
kanbanId: config.kanbanId,
|
|
67
|
-
columns: config.columns ||
|
|
161
|
+
columns: config.columns || null,
|
|
162
|
+
tags: config.tags || null,
|
|
163
|
+
lastTaskId: config.lastTaskId || null
|
|
68
164
|
}));
|
|
69
165
|
}
|
|
70
166
|
});
|
|
71
167
|
return {
|
|
72
168
|
columns: kanban === null || kanban === void 0 ? void 0 : kanban.columns,
|
|
73
|
-
onDragEnd: onDragEnd
|
|
169
|
+
onDragEnd: onDragEnd,
|
|
170
|
+
onOpenTaskDetailsModal: onOpenTaskDetailsModal,
|
|
171
|
+
onOpenCreateTaskModal: onOpenCreateTaskModal
|
|
74
172
|
};
|
|
75
173
|
}
|
|
76
174
|
exports["default"] = useKanban;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import kanban, { getKanban } from './kanban';
|
|
2
|
-
export { getKanban };
|
|
1
|
+
import kanban, { getKanban, getLastTaskId, getKanbanTags, getKanbanPriorities } from './kanban';
|
|
2
|
+
export { getKanban, getLastTaskId, getKanbanTags, getKanbanPriorities };
|
|
3
3
|
export default kanban;
|
|
@@ -23,7 +23,10 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
exports.__esModule = true;
|
|
26
|
-
exports.getKanban = void 0;
|
|
26
|
+
exports.getKanbanPriorities = exports.getKanbanTags = exports.getLastTaskId = exports.getKanban = void 0;
|
|
27
27
|
var kanban_1 = __importStar(require("./kanban"));
|
|
28
28
|
exports.getKanban = kanban_1.getKanban;
|
|
29
|
+
exports.getLastTaskId = kanban_1.getLastTaskId;
|
|
30
|
+
exports.getKanbanTags = kanban_1.getKanbanTags;
|
|
31
|
+
exports.getKanbanPriorities = kanban_1.getKanbanPriorities;
|
|
29
32
|
exports["default"] = kanban_1["default"];
|
|
@@ -1,5 +1,9 @@
|
|
|
1
|
+
export declare const getKanbanColumns: (state: any, kanbanId: any) => any;
|
|
1
2
|
declare const _default: (state: {
|
|
2
3
|
kanbans: {};
|
|
3
4
|
}, action: any) => any;
|
|
4
5
|
export default _default;
|
|
5
6
|
export declare const getKanban: (state: any, kanbanId: any) => any;
|
|
7
|
+
export declare const getLastTaskId: (state: any, kanbanId: any) => any;
|
|
8
|
+
export declare const getKanbanTags: (state: any, kanbanId: any) => any;
|
|
9
|
+
export declare const getKanbanPriorities: (state: any, kanbanId: any) => any;
|
|
@@ -24,13 +24,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
24
24
|
};
|
|
25
25
|
var _a;
|
|
26
26
|
exports.__esModule = true;
|
|
27
|
-
exports.getKanban = void 0;
|
|
27
|
+
exports.getKanbanPriorities = exports.getKanbanTags = exports.getLastTaskId = exports.getKanban = exports.getKanbanColumns = void 0;
|
|
28
28
|
var get_1 = __importDefault(require("lodash-es/get"));
|
|
29
29
|
var actions_1 = require("../actions");
|
|
30
30
|
var initialState = {
|
|
31
31
|
kanbans: {}
|
|
32
32
|
};
|
|
33
33
|
var getKanbanColumns = function (state, kanbanId) { return (0, get_1["default"])(state, ['kanbans', kanbanId, 'columns']) || []; };
|
|
34
|
+
exports.getKanbanColumns = getKanbanColumns;
|
|
34
35
|
var reducerMap = (_a = {},
|
|
35
36
|
_a[actions_1.KANBAN_INIT] = function (state, action) {
|
|
36
37
|
var _a;
|
|
@@ -39,13 +40,13 @@ var reducerMap = (_a = {},
|
|
|
39
40
|
_a[actions_1.KANBAN_MOVE_TASK] = function (state, action) {
|
|
40
41
|
var _a;
|
|
41
42
|
if (state.kanbans[action.kanbanId]) {
|
|
42
|
-
var columns = getKanbanColumns(state, action.kanbanId);
|
|
43
|
-
var sourceColumn = columns.find(function (column) { return column.id === action.source.droppableId; });
|
|
43
|
+
var columns = (0, exports.getKanbanColumns)(state, action.kanbanId);
|
|
44
|
+
var sourceColumn = columns.find(function (column) { return column.id === Number(action.source.droppableId); });
|
|
44
45
|
var sourceTasks = sourceColumn.tasks;
|
|
45
46
|
var removedTask = sourceTasks.splice(action.source.index, 1)[0];
|
|
46
47
|
// move task to different column
|
|
47
48
|
if (action.source.droppableId !== action.destination.droppableId) {
|
|
48
|
-
var destinationColumn = columns.find(function (column) { return column.id === action.destination.droppableId; });
|
|
49
|
+
var destinationColumn = columns.find(function (column) { return column.id === Number(action.destination.droppableId); });
|
|
49
50
|
var destinationTasks = destinationColumn.tasks;
|
|
50
51
|
destinationTasks.splice(action.destination.index, 0, removedTask);
|
|
51
52
|
}
|
|
@@ -59,13 +60,51 @@ var reducerMap = (_a = {},
|
|
|
59
60
|
_a[actions_1.KANBAN_MOVE_COLUMN] = function (state, action) {
|
|
60
61
|
var _a;
|
|
61
62
|
if (state.kanbans[action.kanbanId]) {
|
|
62
|
-
var columns = getKanbanColumns(state, action.kanbanId);
|
|
63
|
+
var columns = (0, exports.getKanbanColumns)(state, action.kanbanId);
|
|
63
64
|
var removedColumn = columns.splice(action.source.index, 1)[0];
|
|
64
65
|
columns.splice(action.destination.index, 0, removedColumn);
|
|
65
66
|
return __assign(__assign({}, state), { kanbans: __assign(__assign({}, state.kanbans), (_a = {}, _a[action.kanbanId] = __assign(__assign({}, state.kanbans[action.kanbanId]), { columns: __spreadArray([], columns, true) }), _a)) });
|
|
66
67
|
}
|
|
67
68
|
return [];
|
|
68
69
|
},
|
|
70
|
+
_a[actions_1.KANBAN_ADD_TASK] = function (state, action) {
|
|
71
|
+
var _a;
|
|
72
|
+
if (state.kanbans[action.kanbanId]) {
|
|
73
|
+
var columns = (0, exports.getKanbanColumns)(state, action.kanbanId);
|
|
74
|
+
var sourceColumn = columns.find(function (column) { return column.id === action.columnId; });
|
|
75
|
+
var sourceTasks = sourceColumn.tasks;
|
|
76
|
+
sourceTasks.unshift(action.task);
|
|
77
|
+
return __assign(__assign({}, state), { kanbans: __assign(__assign({}, state.kanbans), (_a = {}, _a[action.kanbanId] = __assign(__assign({}, state.kanbans[action.kanbanId]), { columns: __spreadArray([], columns, true) }), _a)) });
|
|
78
|
+
}
|
|
79
|
+
return [];
|
|
80
|
+
},
|
|
81
|
+
_a[actions_1.KANBAN_EDIT_TASK] = function (state, action) {
|
|
82
|
+
var _a;
|
|
83
|
+
if (state.kanbans[action.kanbanId]) {
|
|
84
|
+
var columns = (0, exports.getKanbanColumns)(state, action.kanbanId);
|
|
85
|
+
var sourceColumn = columns.find(function (column) { return column.tasks.find(function (task) { return task.id === action.task.id; }); });
|
|
86
|
+
var sourceTasks = sourceColumn.tasks;
|
|
87
|
+
// move to different column
|
|
88
|
+
if (action.columnId !== action.prevColumnId) {
|
|
89
|
+
var destinationColumn = columns.find(function (column) { return column.id === action.columnId; });
|
|
90
|
+
var destinationTasks = destinationColumn.tasks;
|
|
91
|
+
var taskIndex = sourceTasks.findIndex(function (task) { return task.id === action.task.id; });
|
|
92
|
+
var removedTask = sourceTasks.splice(taskIndex, 1)[0];
|
|
93
|
+
destinationTasks.unshift(removedTask);
|
|
94
|
+
Object.assign(removedTask, action.task);
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
var sourceTask = sourceTasks.find(function (task) { return task.id === action.task.id; });
|
|
98
|
+
Object.assign(sourceTask, action.task);
|
|
99
|
+
}
|
|
100
|
+
return __assign(__assign({}, state), { kanbans: __assign(__assign({}, state.kanbans), (_a = {}, _a[action.kanbanId] = __assign(__assign({}, state.kanbans[action.kanbanId]), { columns: __spreadArray([], columns, true) }), _a)) });
|
|
101
|
+
}
|
|
102
|
+
return [];
|
|
103
|
+
},
|
|
104
|
+
_a[actions_1.KANBAN_INCREASE_TASK_ID] = function (state, action) {
|
|
105
|
+
var _a;
|
|
106
|
+
return (__assign(__assign({}, state), { kanbans: __assign(__assign({}, state.kanbans), (_a = {}, _a[action.kanbanId] = __assign(__assign({}, state.kanbans[action.kanbanId]), { lastTaskId: action.lastTaskId }), _a)) }));
|
|
107
|
+
},
|
|
69
108
|
_a);
|
|
70
109
|
exports["default"] = (function (state, action) {
|
|
71
110
|
if (state === void 0) { state = initialState; }
|
|
@@ -75,3 +114,9 @@ exports["default"] = (function (state, action) {
|
|
|
75
114
|
});
|
|
76
115
|
var getKanban = function (state, kanbanId) { return (0, get_1["default"])(state, ['kanban', 'kanbans', kanbanId]) || null; };
|
|
77
116
|
exports.getKanban = getKanban;
|
|
117
|
+
var getLastTaskId = function (state, kanbanId) { return (0, get_1["default"])(state, ['kanban', 'kanbans', kanbanId, 'lastTaskId']) || null; };
|
|
118
|
+
exports.getLastTaskId = getLastTaskId;
|
|
119
|
+
var getKanbanTags = function (state, kanbanId) { return (0, get_1["default"])(state, ['kanban', 'kanbans', kanbanId, 'tags']) || null; };
|
|
120
|
+
exports.getKanbanTags = getKanbanTags;
|
|
121
|
+
var getKanbanPriorities = function (state, kanbanId) { return (0, get_1["default"])(state, ['kanban', 'kanbans', kanbanId, 'priorities']) || null; };
|
|
122
|
+
exports.getKanbanPriorities = getKanbanPriorities;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { IBaseFieldProps } from '../InputField/InputField';
|
|
2
|
+
import { IFieldWrapperInputProps } from '../Field/fieldWrapper';
|
|
3
|
+
export interface IEmailFieldProps extends IBaseFieldProps, IFieldWrapperInputProps {
|
|
4
|
+
}
|
|
5
|
+
declare const _default: import("../Field/fieldWrapper").FieldWrapperComponent<IEmailFieldProps>;
|
|
6
|
+
export default _default;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
exports.__esModule = true;
|
|
17
|
+
/* eslint-disable max-len */
|
|
18
|
+
var react_1 = __importDefault(require("react"));
|
|
19
|
+
var hooks_1 = require("../../../hooks");
|
|
20
|
+
var fieldWrapper_1 = __importDefault(require("../Field/fieldWrapper"));
|
|
21
|
+
var useInputTypeEmail_1 = __importDefault(require("./hooks/useInputTypeEmail"));
|
|
22
|
+
/**
|
|
23
|
+
* EmailField
|
|
24
|
+
* Поле для ввода почты
|
|
25
|
+
*/
|
|
26
|
+
function EmailField(props) {
|
|
27
|
+
var components = (0, hooks_1.useComponents)();
|
|
28
|
+
var _a = (0, hooks_1.useSaveCursorPosition)(props.input), currentInputRef = _a.inputRef, onChange = _a.onChange;
|
|
29
|
+
var onInputChange = (0, useInputTypeEmail_1["default"])(currentInputRef, onChange, props.input.value).onInputChange;
|
|
30
|
+
var onClear = react_1["default"].useCallback(function () { return props.input.onChange(''); }, [props.input]);
|
|
31
|
+
var inputProps = react_1["default"].useMemo(function () {
|
|
32
|
+
var _a;
|
|
33
|
+
return (__assign({ name: props.input.name, value: (_a = props.input.value) !== null && _a !== void 0 ? _a : '', onChange: onInputChange, type: 'text', placeholder: props.placeholder, disabled: props.disabled, required: props.required }, props.inputProps));
|
|
34
|
+
}, [onInputChange, props.disabled, props.input.name, props.input.value, props.inputProps, props.placeholder, props.required]);
|
|
35
|
+
return components.ui.renderView(props.view || 'form.InputFieldView', __assign(__assign({}, props), { inputProps: inputProps, inputRef: currentInputRef, onClear: onClear }));
|
|
36
|
+
}
|
|
37
|
+
EmailField.defaultProps = {
|
|
38
|
+
size: 'md',
|
|
39
|
+
disabled: false,
|
|
40
|
+
required: false,
|
|
41
|
+
showClear: false,
|
|
42
|
+
maskOptions: null
|
|
43
|
+
};
|
|
44
|
+
exports["default"] = (0, fieldWrapper_1["default"])('EmailField', EmailField);
|
|
@@ -0,0 +1,5 @@
|
|
|
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) => {
|
|
3
|
+
onInputChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
4
|
+
};
|
|
5
|
+
export default useInputTypeEmail;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
/* eslint-disable max-len */
|
|
7
|
+
/* eslint-disable no-unused-expressions */
|
|
8
|
+
var react_1 = __importDefault(require("react"));
|
|
9
|
+
var DEFAULT_VALIDITY = __('Неправильный формат адреса электронной почты.');
|
|
10
|
+
var useInputTypeEmail = function (currentInputRef, onChange, currentValue) {
|
|
11
|
+
var isValueEmail = function (value) {
|
|
12
|
+
//In that case it's testing if value is empty string or not defined
|
|
13
|
+
if (!value) {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
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
|
+
return emailRegexp.test(value.toLowerCase());
|
|
18
|
+
};
|
|
19
|
+
var errorMessage = isValueEmail(currentValue) ? '' : DEFAULT_VALIDITY;
|
|
20
|
+
react_1["default"].useEffect(function () {
|
|
21
|
+
var _a;
|
|
22
|
+
(_a = currentInputRef.current) === null || _a === void 0 ? void 0 : _a.setCustomValidity(errorMessage);
|
|
23
|
+
}, [currentInputRef, currentValue, errorMessage]);
|
|
24
|
+
var onInputChange = function (event) {
|
|
25
|
+
onChange(event);
|
|
26
|
+
};
|
|
27
|
+
return {
|
|
28
|
+
onInputChange: onInputChange
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
exports["default"] = useInputTypeEmail;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
var EmailField_1 = __importDefault(require("./EmailField"));
|
|
7
|
+
exports["default"] = EmailField_1["default"];
|
|
@@ -21,7 +21,7 @@ export interface IFieldSetProps extends IFormContext {
|
|
|
21
21
|
*/
|
|
22
22
|
view?: CustomView;
|
|
23
23
|
/**
|
|
24
|
-
* Дополнительный CSS-класс для
|
|
24
|
+
* Дополнительный CSS-класс для '<fieldset>...</fieldset>'
|
|
25
25
|
*/
|
|
26
26
|
className?: CssClassName;
|
|
27
27
|
[key: string]: any;
|
|
@@ -28,6 +28,9 @@ interface IFileFieldCommonProps extends IFileInput {
|
|
|
28
28
|
* Компонент `FileField` представляет собой поле формы для загрузки файлов.
|
|
29
29
|
* Он использует хук `useFile` для управления состоянием файлов и выполнения операций с файлами, таких как выбор и удаление.
|
|
30
30
|
* Компонент поддерживает различные варианты отображения файлов (список или стена) с помощью перечисления `FilesLayout`.
|
|
31
|
+
* На backendUrl по дефолту файл отправляется в теле запроса в виде бинарного кода.
|
|
32
|
+
* Чтобы отправлять файл в виде form-data (например в таком виде принимает файл FileModule в библиотеке steroidsjs/nest),
|
|
33
|
+
* нужно передать в `FileField` пропс uploaderConfig, в котором нужно указать поле useFormData: true.
|
|
31
34
|
**/
|
|
32
35
|
export interface IFileFieldProps extends IFieldWrapperInputProps, IFileFieldCommonProps, IUiComponent {
|
|
33
36
|
/**
|
package/ui/form/Form/Form.d.ts
CHANGED
|
@@ -116,7 +116,7 @@ export interface IFormProps extends IUiComponent {
|
|
|
116
116
|
*/
|
|
117
117
|
addressBar?: boolean | IAddressBarConfig;
|
|
118
118
|
/**
|
|
119
|
-
* Если в форме есть элементы
|
|
119
|
+
* Если в форме есть элементы '<input>', то произойдет автоматическая фокусировка на первом из них
|
|
120
120
|
* @example true
|
|
121
121
|
*/
|
|
122
122
|
autoFocus?: boolean;
|
|
@@ -3,7 +3,7 @@ import { InputHTMLAttributes, ReactNode } from 'react';
|
|
|
3
3
|
import { MaskitoOptions } from '@maskito/core';
|
|
4
4
|
import { IFieldWrapperInputProps, IFieldWrapperOutputProps } from '../Field/fieldWrapper';
|
|
5
5
|
export declare const MASK_PRESETS: {
|
|
6
|
-
date: MaskitoOptions
|
|
6
|
+
date: Required<MaskitoOptions>;
|
|
7
7
|
phone: {
|
|
8
8
|
mask: any[];
|
|
9
9
|
};
|
|
@@ -11,7 +11,7 @@ export declare const MASK_PRESETS: {
|
|
|
11
11
|
mask: any[];
|
|
12
12
|
};
|
|
13
13
|
};
|
|
14
|
-
type IElementInputType = 'button' | 'checkbox' | 'color' | 'date' | 'datetime-local' | 'email' | 'file' | 'hidden' | 'image' | 'month' | 'number' | 'password' | 'radio' | 'range' | 'reset' | 'search' | 'submit' | 'tel' | 'text' | 'time' | 'url' | 'week' | string;
|
|
14
|
+
export type IElementInputType = 'button' | 'checkbox' | 'color' | 'date' | 'datetime-local' | 'email' | 'file' | 'hidden' | 'image' | 'month' | 'number' | 'password' | 'radio' | 'range' | 'reset' | 'search' | 'submit' | 'tel' | 'text' | 'time' | 'url' | 'week' | string;
|
|
15
15
|
export interface IBaseFieldProps extends IFieldWrapperInputProps, IUiComponent {
|
|
16
16
|
/**
|
|
17
17
|
* Свойства для элемента input
|
|
@@ -48,7 +48,7 @@ export interface IInputFieldProps extends IBaseFieldProps {
|
|
|
48
48
|
textBefore?: number | ReactNode | string;
|
|
49
49
|
/**
|
|
50
50
|
* Изображение или React-нода, которая будет отрендерена справа от поля.
|
|
51
|
-
* @example require('icon.png') | <component/>
|
|
51
|
+
* @example require('icon.png') | '<component/>'
|
|
52
52
|
*/
|
|
53
53
|
textAfter?: number | ReactNode | string;
|
|
54
54
|
/**
|
|
@@ -47,12 +47,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
47
47
|
};
|
|
48
48
|
exports.__esModule = true;
|
|
49
49
|
exports.MASK_PRESETS = void 0;
|
|
50
|
+
/* eslint-disable no-unused-expressions */
|
|
51
|
+
/* eslint-disable max-len */
|
|
50
52
|
var React = __importStar(require("react"));
|
|
51
53
|
var react_1 = require("react");
|
|
52
54
|
var react_2 = require("@maskito/react");
|
|
53
55
|
var kit_1 = require("@maskito/kit");
|
|
54
56
|
var fieldWrapper_1 = __importDefault(require("../Field/fieldWrapper"));
|
|
55
57
|
var hooks_1 = require("../../../hooks");
|
|
58
|
+
var useInputFieldWarningByType_1 = require("./hooks/useInputFieldWarningByType");
|
|
56
59
|
exports.MASK_PRESETS = {
|
|
57
60
|
date: (0, kit_1.maskitoDateOptionsGenerator)({
|
|
58
61
|
mode: 'dd/mm/yyyy'
|
|
@@ -93,6 +96,7 @@ function InputField(props) {
|
|
|
93
96
|
maskedInputRef(inputRef.current);
|
|
94
97
|
}
|
|
95
98
|
}, [inputRef, maskedInputRef]);
|
|
99
|
+
(0, useInputFieldWarningByType_1.useInputFieldWarningByType)(props.type);
|
|
96
100
|
var onClear = React.useCallback(function () { return props.input.onChange(''); }, [props.input]);
|
|
97
101
|
var inputProps = (0, react_1.useMemo)(function () {
|
|
98
102
|
var _a;
|
|
@@ -102,7 +106,9 @@ function InputField(props) {
|
|
|
102
106
|
if (props.type === 'hidden') {
|
|
103
107
|
return null;
|
|
104
108
|
}
|
|
105
|
-
return components.ui.renderView(props.view || 'form.InputFieldView', __assign(__assign(__assign({}, props), props.viewProps), { inputProps: inputProps,
|
|
109
|
+
return components.ui.renderView(props.view || 'form.InputFieldView', __assign(__assign(__assign({}, props), props.viewProps), { inputProps: inputProps,
|
|
110
|
+
// If type was recognized as unsupported in InputField, then we do not pass ref.
|
|
111
|
+
inputRef: useInputFieldWarningByType_1.INPUT_TYPES_SUPPORTED_SELECTION.includes(props.type) ? inputRef : null, onClear: onClear }));
|
|
106
112
|
}
|
|
107
113
|
InputField.defaultProps = {
|
|
108
114
|
type: 'text',
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
exports.__esModule = true;
|
|
3
|
+
exports.useInputFieldWarningByType = exports.INPUT_TYPES_SUPPORTED_SELECTION = void 0;
|
|
4
|
+
/* eslint-disable max-len */
|
|
5
|
+
/* eslint-disable no-unused-expressions */
|
|
6
|
+
var react_use_1 = require("react-use");
|
|
7
|
+
exports.INPUT_TYPES_SUPPORTED_SELECTION = ['text', 'search', 'tel', 'url', 'password'];
|
|
8
|
+
var INPUT_TYPES_REPLACEMENT_HASH = {
|
|
9
|
+
email: 'EmailField',
|
|
10
|
+
date: 'DateField',
|
|
11
|
+
month: 'DateField',
|
|
12
|
+
week: 'CalendarSystem',
|
|
13
|
+
time: 'DateTimeField',
|
|
14
|
+
'datetime-local': 'DateField',
|
|
15
|
+
number: 'NumberField',
|
|
16
|
+
range: 'SliderField',
|
|
17
|
+
checkbox: 'CheckboxField',
|
|
18
|
+
radio: 'RadioField',
|
|
19
|
+
button: 'Button',
|
|
20
|
+
file: 'FileField',
|
|
21
|
+
submit: 'Button',
|
|
22
|
+
image: 'Button',
|
|
23
|
+
reset: 'Button'
|
|
24
|
+
};
|
|
25
|
+
var useInputFieldWarningByType = function (type) {
|
|
26
|
+
(0, react_use_1.useMount)(function () {
|
|
27
|
+
if (!exports.INPUT_TYPES_SUPPORTED_SELECTION.includes(type)) {
|
|
28
|
+
var recommendedUiComponent = "<".concat(INPUT_TYPES_REPLACEMENT_HASH[type], " />");
|
|
29
|
+
INPUT_TYPES_REPLACEMENT_HASH[type]
|
|
30
|
+
? console.warn("<InputField /> with \"".concat(type, "\" type does not support setSelectionRange() method. Try to use ").concat(recommendedUiComponent, " instead."))
|
|
31
|
+
: console.warn("< InputField /> with \"".concat(type, "\" type does not support setSelectionRange() method.Try to use native <input /> tag."));
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
exports.useInputFieldWarningByType = useInputFieldWarningByType;
|
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
interface IInputTypeNumberProps {
|
|
3
3
|
max: any;
|
|
4
4
|
min: any;
|
|
5
|
-
value:
|
|
5
|
+
value: string | undefined | null;
|
|
6
6
|
}
|
|
7
7
|
declare const useInputTypeNumber: (currentInputRef: React.MutableRefObject<HTMLInputElement>, inputTypeNumberProps: IInputTypeNumberProps, onChange: (event: React.ChangeEvent<HTMLInputElement>, value?: any) => void) => {
|
|
8
8
|
onInputChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
|