@steroidsjs/core 3.0.0-beta.90 → 3.0.0-beta.92

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.
Files changed (97) hide show
  1. package/docs-autogen-result.json +1114 -164
  2. package/en.json +14 -9
  3. package/hooks/useList.d.ts +1 -1
  4. package/package.json +3 -3
  5. package/ui/content/CalendarSystem/hooks/useExpandClickAway.d.ts +7 -0
  6. package/ui/content/CalendarSystem/hooks/useExpandClickAway.js +23 -0
  7. package/ui/content/Kanban/Kanban.d.ts +107 -0
  8. package/ui/content/Kanban/Kanban.js +59 -0
  9. package/ui/content/Kanban/actions/index.d.ts +2 -0
  10. package/ui/content/Kanban/actions/index.js +16 -0
  11. package/ui/content/Kanban/actions/kanban.d.ts +40 -0
  12. package/ui/content/Kanban/actions/kanban.js +49 -0
  13. package/ui/content/Kanban/constants/modalAndFormIds.d.ts +4 -0
  14. package/ui/content/Kanban/constants/modalAndFormIds.js +7 -0
  15. package/ui/content/Kanban/enums/KanbanModalTypeEnum.d.ts +13 -0
  16. package/ui/content/Kanban/enums/KanbanModalTypeEnum.js +49 -0
  17. package/ui/content/Kanban/enums/KanbanPrioritiesEnum.d.ts +18 -0
  18. package/ui/content/Kanban/enums/KanbanPrioritiesEnum.js +78 -0
  19. package/ui/content/Kanban/enums/index.d.ts +3 -0
  20. package/ui/content/Kanban/enums/index.js +10 -0
  21. package/ui/content/Kanban/hooks/index.d.ts +2 -0
  22. package/ui/content/Kanban/hooks/index.js +8 -0
  23. package/ui/content/Kanban/hooks/useKanban.d.ts +70 -0
  24. package/ui/content/Kanban/hooks/useKanban.js +174 -0
  25. package/ui/content/Kanban/index.d.ts +2 -0
  26. package/ui/content/Kanban/index.js +7 -0
  27. package/ui/content/Kanban/reducers/index.d.ts +3 -0
  28. package/ui/content/{Calendar/demo/basic.js → Kanban/reducers/index.js} +7 -12
  29. package/ui/content/Kanban/reducers/kanban.d.ts +9 -0
  30. package/ui/content/Kanban/reducers/kanban.js +122 -0
  31. package/ui/content/index.d.ts +2 -1
  32. package/ui/content/index.js +3 -1
  33. package/ui/form/FieldSet/FieldSet.d.ts +1 -1
  34. package/ui/form/FileField/FileField.d.ts +3 -0
  35. package/ui/form/Form/Form.d.ts +1 -1
  36. package/ui/form/InputField/InputField.d.ts +1 -1
  37. package/ui/form/SliderField/SliderField.d.ts +1 -1
  38. package/ui/format/EnumFormatter/EnumFormatter.d.ts +1 -1
  39. package/ui/format/MoneyFormatter/MoneyFormatter.d.ts +1 -1
  40. package/ui/list/Grid/Grid.d.ts +1 -1
  41. package/ui/nav/Tree/Tree.d.ts +1 -1
  42. package/ui/typography/Text/Text.d.ts +1 -1
  43. package/ui/content/Calendar/demo/basic.d.ts +0 -8
  44. package/ui/form/RateField/demo/allow-clear.d.ts +0 -8
  45. package/ui/form/RateField/demo/allow-clear.js +0 -37
  46. package/ui/form/RateField/demo/basic.d.ts +0 -8
  47. package/ui/form/RateField/demo/basic.js +0 -37
  48. package/ui/form/RateField/demo/default-value.d.ts +0 -8
  49. package/ui/form/RateField/demo/default-value.js +0 -37
  50. package/ui/form/RateField/demo/disabled.d.ts +0 -8
  51. package/ui/form/RateField/demo/disabled.js +0 -37
  52. package/ui/form/RateField/demo/errors.d.ts +0 -8
  53. package/ui/form/RateField/demo/errors.js +0 -37
  54. package/ui/form/RateField/demo/items-count.d.ts +0 -8
  55. package/ui/form/RateField/demo/items-count.js +0 -37
  56. package/ui/form/RateField/demo/required.d.ts +0 -8
  57. package/ui/form/RateField/demo/required.js +0 -37
  58. package/ui/form/SwitcherField/demo/basic.d.ts +0 -12
  59. package/ui/form/SwitcherField/demo/basic.js +0 -56
  60. package/ui/form/SwitcherField/demo/disabled.d.ts +0 -8
  61. package/ui/form/SwitcherField/demo/disabled.js +0 -38
  62. package/ui/form/SwitcherField/demo/errors.d.ts +0 -8
  63. package/ui/form/SwitcherField/demo/errors.js +0 -38
  64. package/ui/form/SwitcherField/demo/required.d.ts +0 -8
  65. package/ui/form/SwitcherField/demo/required.js +0 -38
  66. package/ui/form/TimeField/demo/basic.d.ts +0 -8
  67. package/ui/form/TimeField/demo/basic.js +0 -37
  68. package/ui/form/TimeField/demo/disabled.d.ts +0 -8
  69. package/ui/form/TimeField/demo/disabled.js +0 -37
  70. package/ui/form/TimeField/demo/errors.d.ts +0 -8
  71. package/ui/form/TimeField/demo/errors.js +0 -37
  72. package/ui/form/TimeField/demo/icon.d.ts +0 -8
  73. package/ui/form/TimeField/demo/icon.js +0 -37
  74. package/ui/form/TimeField/demo/noBorder.d.ts +0 -8
  75. package/ui/form/TimeField/demo/noBorder.js +0 -37
  76. package/ui/form/TimeField/demo/placeholder.d.ts +0 -8
  77. package/ui/form/TimeField/demo/placeholder.js +0 -37
  78. package/ui/form/TimeField/demo/required.d.ts +0 -8
  79. package/ui/form/TimeField/demo/required.js +0 -37
  80. package/ui/form/TimeField/demo/showRemove.d.ts +0 -8
  81. package/ui/form/TimeField/demo/showRemove.js +0 -37
  82. package/ui/layout/ProgressBar/demo/percent.d.ts +0 -8
  83. package/ui/layout/ProgressBar/demo/percent.js +0 -53
  84. package/ui/layout/ProgressBar/demo/showLabel.d.ts +0 -8
  85. package/ui/layout/ProgressBar/demo/showLabel.js +0 -44
  86. package/ui/layout/ProgressBar/demo/sizes.d.ts +0 -8
  87. package/ui/layout/ProgressBar/demo/sizes.js +0 -44
  88. package/ui/layout/ProgressBar/demo/status.d.ts +0 -8
  89. package/ui/layout/ProgressBar/demo/status.js +0 -39
  90. package/ui/layout/ProgressBar/demo/type.d.ts +0 -8
  91. package/ui/layout/ProgressBar/demo/type.js +0 -44
  92. package/ui/layout/Skeleton/demo/animations.d.ts +0 -8
  93. package/ui/layout/Skeleton/demo/animations.js +0 -53
  94. package/ui/layout/Skeleton/demo/width height.d.ts +0 -8
  95. package/ui/layout/Skeleton/demo/width height.js +0 -42
  96. package/ui/list/SearchForm/demo/basic.d.ts +0 -8
  97. package/ui/list/SearchForm/demo/basic.js +0 -42
@@ -0,0 +1,70 @@
1
+ import { IDragEndResult, IKanbanColumn, IKanbanTask, ITaskAssigner, ITaskTag } from '../Kanban';
2
+ export interface IKanbanConfig {
3
+ /**
4
+ * Идентификатор канбан доски
5
+ * @example TasksKanban
6
+ */
7
+ kanbanId?: string;
8
+ /**
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
+ * ]
22
+ */
23
+ columns: IKanbanColumn[];
24
+ /**
25
+ * Массив тегов для задач
26
+ */
27
+ tags?: ITaskTag[];
28
+ /**
29
+ * Массив исполнителей, которых можно назначить для выполнения задачи
30
+ */
31
+ assigners?: ITaskAssigner[];
32
+ /**
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 для новых задач
62
+ */
63
+ lastTaskId?: number;
64
+ }
65
+ export default function useKanban(config: IKanbanConfig): {
66
+ columns: any;
67
+ onDragEnd: (result: any) => void;
68
+ onOpenTaskDetailsModal: (task: any, columnId: any) => void;
69
+ onOpenCreateTaskModal: (columnId: any) => void;
70
+ };
@@ -0,0 +1,174 @@
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
+ };
36
+ exports.__esModule = true;
37
+ var react_1 = __importStar(require("react"));
38
+ var react_use_1 = require("react-use");
39
+ var modal_1 = require("../../../../actions/modal");
40
+ var hooks_1 = require("../../../../hooks");
41
+ var enums_1 = require("../enums");
42
+ var reducers_1 = require("../reducers");
43
+ var actions_1 = require("../actions");
44
+ var modalAndFormIds_1 = require("../constants/modalAndFormIds");
45
+ var COLUMNS_DROPPABLE_ID = 'all-columns';
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
+ }); };
65
+ function useKanban(config) {
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;
71
+ var dispatch = (0, hooks_1.useDispatch)();
72
+ // move card
73
+ var moveCard = (0, react_1.useCallback)(function (source, destination) {
74
+ dispatch((0, actions_1.kanbanMoveTask)(config.kanbanId, source, destination));
75
+ }, [config.kanbanId, dispatch]);
76
+ // move column
77
+ var moveColumn = (0, react_1.useCallback)(function (source, destination) {
78
+ dispatch((0, actions_1.kanbanMoveColumn)(config.kanbanId, source, destination));
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]);
138
+ var onDragEnd = function (result) {
139
+ if (config.onDragEnd) {
140
+ config.onDragEnd(result);
141
+ }
142
+ // drop outside the column
143
+ if (!result.destination) {
144
+ return;
145
+ }
146
+ var source = result.source, destination = result.destination;
147
+ if (source.droppableId === COLUMNS_DROPPABLE_ID) {
148
+ // handle the column movement
149
+ moveColumn(source, destination);
150
+ }
151
+ else {
152
+ // handle the task card movement
153
+ moveCard(source, destination);
154
+ }
155
+ };
156
+ // Init kanban in redux store
157
+ (0, react_use_1.useMount)(function () {
158
+ if (!kanban) {
159
+ dispatch((0, actions_1.kanbanInit)(config.kanbanId, {
160
+ kanbanId: config.kanbanId,
161
+ columns: config.columns || null,
162
+ tags: config.tags || null,
163
+ lastTaskId: config.lastTaskId || null
164
+ }));
165
+ }
166
+ });
167
+ return {
168
+ columns: kanban === null || kanban === void 0 ? void 0 : kanban.columns,
169
+ onDragEnd: onDragEnd,
170
+ onOpenTaskDetailsModal: onOpenTaskDetailsModal,
171
+ onOpenCreateTaskModal: onOpenCreateTaskModal
172
+ };
173
+ }
174
+ exports["default"] = useKanban;
@@ -0,0 +1,2 @@
1
+ import Kanban from './Kanban';
2
+ export default Kanban;
@@ -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 Kanban_1 = __importDefault(require("./Kanban"));
7
+ exports["default"] = Kanban_1["default"];
@@ -0,0 +1,3 @@
1
+ import kanban, { getKanban, getLastTaskId, getKanbanTags, getKanbanPriorities } from './kanban';
2
+ export { getKanban, getLastTaskId, getKanbanTags, getKanbanPriorities };
3
+ export default kanban;
@@ -22,16 +22,11 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
25
  exports.__esModule = true;
29
- var React = __importStar(require("react"));
30
- var Calendar_1 = __importDefault(require("../Calendar"));
31
- /**
32
- * Basic
33
- * @order 1
34
- * @col 5
35
- */
36
- exports["default"] = (function () { return (React.createElement(React.Fragment, null,
37
- React.createElement(Calendar_1["default"], { value: '2021-10-15' }))); });
26
+ exports.getKanbanPriorities = exports.getKanbanTags = exports.getLastTaskId = exports.getKanban = void 0;
27
+ var kanban_1 = __importStar(require("./kanban"));
28
+ exports.getKanban = kanban_1.getKanban;
29
+ exports.getLastTaskId = kanban_1.getLastTaskId;
30
+ exports.getKanbanTags = kanban_1.getKanbanTags;
31
+ exports.getKanbanPriorities = kanban_1.getKanbanPriorities;
32
+ exports["default"] = kanban_1["default"];
@@ -0,0 +1,9 @@
1
+ export declare const getKanbanColumns: (state: any, kanbanId: any) => any;
2
+ declare const _default: (state: {
3
+ kanbans: {};
4
+ }, action: any) => any;
5
+ export default _default;
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;
@@ -0,0 +1,122 @@
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 __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
14
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
15
+ if (ar || !(i in from)) {
16
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
17
+ ar[i] = from[i];
18
+ }
19
+ }
20
+ return to.concat(ar || Array.prototype.slice.call(from));
21
+ };
22
+ var __importDefault = (this && this.__importDefault) || function (mod) {
23
+ return (mod && mod.__esModule) ? mod : { "default": mod };
24
+ };
25
+ var _a;
26
+ exports.__esModule = true;
27
+ exports.getKanbanPriorities = exports.getKanbanTags = exports.getLastTaskId = exports.getKanban = exports.getKanbanColumns = void 0;
28
+ var get_1 = __importDefault(require("lodash-es/get"));
29
+ var actions_1 = require("../actions");
30
+ var initialState = {
31
+ kanbans: {}
32
+ };
33
+ var getKanbanColumns = function (state, kanbanId) { return (0, get_1["default"])(state, ['kanbans', kanbanId, 'columns']) || []; };
34
+ exports.getKanbanColumns = getKanbanColumns;
35
+ var reducerMap = (_a = {},
36
+ _a[actions_1.KANBAN_INIT] = function (state, action) {
37
+ var _a;
38
+ return (__assign(__assign({}, state), { kanbans: __assign(__assign({}, state.kanbans), (_a = {}, _a[action.payload.kanbanId] = __assign({}, action.payload), _a)) }));
39
+ },
40
+ _a[actions_1.KANBAN_MOVE_TASK] = function (state, action) {
41
+ var _a;
42
+ if (state.kanbans[action.kanbanId]) {
43
+ var columns = (0, exports.getKanbanColumns)(state, action.kanbanId);
44
+ var sourceColumn = columns.find(function (column) { return column.id === Number(action.source.droppableId); });
45
+ var sourceTasks = sourceColumn.tasks;
46
+ var removedTask = sourceTasks.splice(action.source.index, 1)[0];
47
+ // move task to different column
48
+ if (action.source.droppableId !== action.destination.droppableId) {
49
+ var destinationColumn = columns.find(function (column) { return column.id === Number(action.destination.droppableId); });
50
+ var destinationTasks = destinationColumn.tasks;
51
+ destinationTasks.splice(action.destination.index, 0, removedTask);
52
+ }
53
+ else {
54
+ sourceTasks.splice(action.destination.index, 0, removedTask);
55
+ }
56
+ return __assign(__assign({}, state), { kanbans: __assign(__assign({}, state.kanbans), (_a = {}, _a[action.kanbanId] = __assign(__assign({}, state.kanbans[action.kanbanId]), { columns: __spreadArray([], columns, true) }), _a)) });
57
+ }
58
+ return [];
59
+ },
60
+ _a[actions_1.KANBAN_MOVE_COLUMN] = function (state, action) {
61
+ var _a;
62
+ if (state.kanbans[action.kanbanId]) {
63
+ var columns = (0, exports.getKanbanColumns)(state, action.kanbanId);
64
+ var removedColumn = columns.splice(action.source.index, 1)[0];
65
+ columns.splice(action.destination.index, 0, removedColumn);
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)) });
67
+ }
68
+ return [];
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
+ },
108
+ _a);
109
+ exports["default"] = (function (state, action) {
110
+ if (state === void 0) { state = initialState; }
111
+ return reducerMap[action.type]
112
+ ? reducerMap[action.type](state, action)
113
+ : state;
114
+ });
115
+ var getKanban = function (state, kanbanId) { return (0, get_1["default"])(state, ['kanban', 'kanbans', kanbanId]) || null; };
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;
@@ -6,9 +6,10 @@ import Alert from './Alert';
6
6
  import Badge from './Badge';
7
7
  import { Detail, DetailItem } from './Detail';
8
8
  import Icon from './Icon';
9
+ import Kanban from './Kanban';
9
10
  import Menu from './Menu';
10
11
  import CopyToClipboard from './CopyToClipboard';
11
12
  import Chart from './Chart';
12
13
  import Slider from './Slider';
13
14
  import CalendarSystem from './CalendarSystem';
14
- export { Avatar, AvatarGroup, Accordion, AccordionItem, Alert, Card, DropDown, Badge, Detail, DetailItem, Icon, Menu, CopyToClipboard, Chart, Slider, CalendarSystem, };
15
+ export { Avatar, AvatarGroup, Accordion, AccordionItem, Alert, Card, DropDown, Badge, Detail, DetailItem, Icon, Kanban, Menu, CopyToClipboard, Chart, Slider, CalendarSystem, };
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  exports.__esModule = true;
6
- exports.CalendarSystem = exports.Slider = exports.Chart = exports.CopyToClipboard = exports.Menu = exports.Icon = exports.DetailItem = exports.Detail = exports.Badge = exports.DropDown = exports.Card = exports.Alert = exports.AccordionItem = exports.Accordion = exports.AvatarGroup = exports.Avatar = void 0;
6
+ exports.CalendarSystem = exports.Slider = exports.Chart = exports.CopyToClipboard = exports.Menu = exports.Kanban = exports.Icon = exports.DetailItem = exports.Detail = exports.Badge = exports.DropDown = exports.Card = exports.Alert = exports.AccordionItem = exports.Accordion = exports.AvatarGroup = exports.Avatar = void 0;
7
7
  var Avatar_1 = require("./Avatar");
8
8
  exports.Avatar = Avatar_1.Avatar;
9
9
  exports.AvatarGroup = Avatar_1.AvatarGroup;
@@ -23,6 +23,8 @@ exports.Detail = Detail_1.Detail;
23
23
  exports.DetailItem = Detail_1.DetailItem;
24
24
  var Icon_1 = __importDefault(require("./Icon"));
25
25
  exports.Icon = Icon_1["default"];
26
+ var Kanban_1 = __importDefault(require("./Kanban"));
27
+ exports.Kanban = Kanban_1["default"];
26
28
  var Menu_1 = __importDefault(require("./Menu"));
27
29
  exports.Menu = Menu_1["default"];
28
30
  var CopyToClipboard_1 = __importDefault(require("./CopyToClipboard"));
@@ -21,7 +21,7 @@ export interface IFieldSetProps extends IFormContext {
21
21
  */
22
22
  view?: CustomView;
23
23
  /**
24
- * Дополнительный CSS-класс для \<fieldset\>...\<\/fieldset\>
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
  /**
@@ -116,7 +116,7 @@ export interface IFormProps extends IUiComponent {
116
116
  */
117
117
  addressBar?: boolean | IAddressBarConfig;
118
118
  /**
119
- * Если в форме есть элементы \<input\>, то произойдет автоматическая фокусировка на первом из них
119
+ * Если в форме есть элементы '<input>', то произойдет автоматическая фокусировка на первом из них
120
120
  * @example true
121
121
  */
122
122
  autoFocus?: boolean;
@@ -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
  /**
@@ -40,7 +40,7 @@ export interface ISliderFieldProps extends IFieldWrapperInputProps, IUiComponent
40
40
  */
41
41
  valuePostfix?: string;
42
42
  /**
43
- * Метки на ползунке. В объекте ({key: value}) key определяет положение, а value определяет, что будет отображаться.
43
+ * Метки на ползунке. В объекте '{'key: value'}' key определяет положение, а value определяет, что будет отображаться.
44
44
  * Если вы хотите задать стиль определенной точки метки, значением должен быть объект,
45
45
  * содержащий свойства style и label.
46
46
  * @example { min: 20, 40: 40, max: 100 }
@@ -10,7 +10,7 @@ export interface IEnumFormatterProps {
10
10
  /**
11
11
  * Перечисление элементов.
12
12
  * 1) Может быть строкой вида: `app.geo.enums.Cities`
13
- * 2) Массивом: [{id: 1, label: "London"}]
13
+ * 2) Массивом: ['{'id: 1, label: "London"'}']
14
14
  */
15
15
  items?: DataProviderItems;
16
16
  /**
@@ -7,7 +7,7 @@
7
7
  **/
8
8
  export interface IMoneyFormatterProps {
9
9
  /**
10
- * Валюта @enum {eur, rub, usd}
10
+ * Валюта @enum '{eur, rub, usd}'
11
11
  * @example rub
12
12
  */
13
13
  currency?: string;
@@ -32,7 +32,7 @@ export interface IGridColumn {
32
32
  */
33
33
  hint?: React.ReactNode;
34
34
  /**
35
- * CSS-класс для ячейки с заголовком колонки <th>...</th>
35
+ * CSS-класс для ячейки с заголовком колонки '<th>...</th>'
36
36
  */
37
37
  headerClassName?: CssClassName;
38
38
  /**
@@ -7,7 +7,7 @@ export interface ITreeItem extends IButtonProps {
7
7
  id?: string | number;
8
8
  /**
9
9
  * Вложенные элементы
10
- * [{id: 2, label: 'Nested element', items: [...]}]
10
+ * @example [{id: 2, label: 'Nested element', items: [...]}]
11
11
  */
12
12
  items?: any[];
13
13
  /**
@@ -13,7 +13,7 @@ export interface ITextProps extends IUiComponent {
13
13
  * Тип текста
14
14
  * @example 'body'
15
15
  */
16
- type?: 'body' | 'span' | 'boldSpan' | string;
16
+ type?: 'body' | 'body2' | 'span' | 'boldSpan' | string;
17
17
  /** HTML тег
18
18
  * @example 'span'
19
19
  */
@@ -1,8 +0,0 @@
1
- /// <reference types="react" />
2
- /**
3
- * Basic
4
- * @order 1
5
- * @col 5
6
- */
7
- declare const _default: () => JSX.Element;
8
- export default _default;
@@ -1,8 +0,0 @@
1
- /// <reference types="react" />
2
- /**
3
- * При двойном нажатии значение обнуляется.
4
- * @order 5
5
- * @col 6
6
- */
7
- declare const _default: () => JSX.Element;
8
- export default _default;
@@ -1,37 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- exports.__esModule = true;
29
- var React = __importStar(require("react"));
30
- var RateField_1 = __importDefault(require("../RateField"));
31
- /**
32
- * При двойном нажатии значение обнуляется.
33
- * @order 5
34
- * @col 6
35
- */
36
- exports["default"] = (function () { return (React.createElement(React.Fragment, null,
37
- React.createElement(RateField_1["default"], { allowClear: true }))); });
@@ -1,8 +0,0 @@
1
- /// <reference types="react" />
2
- /**
3
- * Обычный пример использования RateField.
4
- * @order 1
5
- * @col 6
6
- */
7
- declare const _default: () => JSX.Element;
8
- export default _default;