@steroidsjs/core 3.0.39 → 3.0.40

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.
@@ -7637,6 +7637,15 @@
7637
7637
  "example": null,
7638
7638
  "defaultValue": null
7639
7639
  },
7640
+ {
7641
+ "name": "calendarDatesFormData",
7642
+ "decorators": [],
7643
+ "description": "Данные для формы с текущими датами календаря",
7644
+ "required": false,
7645
+ "type": "{dateFromAttribute: string, dateToAttribute: string, formId: string}",
7646
+ "example": null,
7647
+ "defaultValue": null
7648
+ },
7640
7649
  {
7641
7650
  "name": "calendarModalProps",
7642
7651
  "decorators": [],
@@ -7678,7 +7687,7 @@
7678
7687
  "decorators": [],
7679
7688
  "description": "Параметры для групп событий",
7680
7689
  "required": true,
7681
- "type": "{eventGroups: IEventGroup[], title: string}",
7690
+ "type": "{canAddedEventGroups: boolean, eventGroups: IEventGroup[], title: string}",
7682
7691
  "example": null,
7683
7692
  "defaultValue": null
7684
7693
  },
@@ -7755,6 +7764,24 @@
7755
7764
  "example": null
7756
7765
  }
7757
7766
  ]
7767
+ },
7768
+ {
7769
+ "name": "onEventClick",
7770
+ "decorators": [],
7771
+ "description": "Функция, которая вызывается по клику на событие",
7772
+ "required": false,
7773
+ "type": "void",
7774
+ "example": null,
7775
+ "parameters": [
7776
+ {
7777
+ "name": "event",
7778
+ "decorators": [],
7779
+ "description": "",
7780
+ "required": true,
7781
+ "type": "Record",
7782
+ "example": null
7783
+ }
7784
+ ]
7758
7785
  }
7759
7786
  ]
7760
7787
  },
@@ -7802,6 +7829,14 @@
7802
7829
  "type": "default",
7803
7830
  "example": null
7804
7831
  },
7832
+ {
7833
+ "name": "canAddedEventGroups",
7834
+ "decorators": [],
7835
+ "description": "",
7836
+ "required": false,
7837
+ "type": "boolean",
7838
+ "example": null
7839
+ },
7805
7840
  {
7806
7841
  "name": "children",
7807
7842
  "decorators": [],
@@ -8214,7 +8249,7 @@
8214
8249
  "decorators": [],
8215
8250
  "description": "Идентификатор",
8216
8251
  "required": true,
8217
- "type": "number",
8252
+ "type": "string | number",
8218
8253
  "example": null
8219
8254
  },
8220
8255
  {
package/en.json CHANGED
@@ -994,6 +994,7 @@
994
994
  "Сохранение в localStorage уровней вложенности.": "",
995
995
  "Дополнительные свойства для списка календарей бокового календаря": "",
996
996
  "Дополнительные свойства для бокового календаря": "",
997
+ "Данные для формы с текущими датами календаря": "",
997
998
  "Свойства для сетки дня": "",
998
999
  "Свойства для сетки месяца": "",
999
1000
  "Свойства для сетки недели": "",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steroidsjs/core",
3
- "version": "3.0.39",
3
+ "version": "3.0.40",
4
4
  "description": "",
5
5
  "author": "Vladimir Kozhin <hello@kozhindev.com>",
6
6
  "repository": {
@@ -59,7 +59,7 @@ export interface IEventGroup {
59
59
  /**
60
60
  * Идентификатор
61
61
  */
62
- id: number;
62
+ id: number | string;
63
63
  /**
64
64
  * Название группы
65
65
  */
@@ -120,6 +120,10 @@ export interface ICalendarSystemProps extends IUiComponent {
120
120
  * Группы событий
121
121
  */
122
122
  eventGroups: IEventGroup[];
123
+ /**
124
+ * Можно ли добавлять группы событий в календарь
125
+ */
126
+ canAddedEventGroups?: boolean;
123
127
  };
124
128
  /**
125
129
  * Свойства для сетки дня
@@ -150,12 +154,25 @@ export interface ICalendarSystemProps extends IUiComponent {
150
154
  * Дочерние элементы
151
155
  */
152
156
  children?: React.ReactNode;
157
+ /**
158
+ * Функция, которая вызывается по клику на событие
159
+ */
160
+ onEventClick?: (event: Record<string, any>) => void;
161
+ /**
162
+ * Данные для формы с текущими датами календаря
163
+ */
164
+ calendarDatesFormData?: {
165
+ formId: string;
166
+ dateFromAttribute?: string;
167
+ dateToAttribute?: string;
168
+ };
153
169
  [key: string]: any;
154
170
  }
155
171
  export interface ICalendarSystemViewProps extends Pick<ICalendarSystemProps, 'className' | 'style' | 'additionalViewProps' | 'users' | 'asideCalendarProps' | 'asideCalendarCheckboxListProps'> {
156
172
  onCalendarChangedMonth: (newDate: Date) => void;
157
173
  eventGroups: IEventGroup[];
158
174
  eventGroupsTitle: string;
175
+ canAddedEventGroups?: boolean;
159
176
  onChangeEventGroupsIds: (selectedIds: number[]) => void;
160
177
  openCreateEventGroupModal: VoidFunction;
161
178
  dateToDisplay: string;
@@ -36,6 +36,7 @@ function CalendarSystem(props) {
36
36
  additionalViewProps: props.additionalViewProps,
37
37
  users: calendarSystem.users,
38
38
  eventGroupsTitle: props.eventBlock.title,
39
+ canAddedEventGroups: props.eventBlock.canAddedEventGroups,
39
40
  asideCalendarProps: props.asideCalendarProps,
40
41
  asideCalendarCheckboxListProps: props.asideCalendarCheckboxListProps,
41
42
  children: props.children,
@@ -49,11 +50,11 @@ function CalendarSystem(props) {
49
50
  handleCalendarTypeChange: calendarSystem.handleCalendarTypeChange,
50
51
  onClickControl: calendarSystem.onClickControl,
51
52
  getEventsFromDate: calendarSystem.getEventsFromDate,
52
- openEditModal: calendarSystem.openEditModal,
53
+ openEditModal: props.onEventClick || calendarSystem.openEditModal,
53
54
  monthGridProps: __assign({ monthGridWeekDays: calendarSystem.monthGridWeekDays, monthGridCalendarDays: calendarSystem.monthGridCalendarDays }, monthGridViews),
54
55
  weekGridProps: __assign({ weekGridTwentyFourHoursArray: calendarSystem.weekGridTwentyFourHoursArray, weekGridCurrentWeekDays: calendarSystem.weekGridCurrentWeekDays }, weekGridViews),
55
56
  dayGridProps: __assign({ dayGridTwentyFourHoursArray: calendarSystem.dayGridTwentyFourHoursArray, dayGridCurrentDay: calendarSystem.dayGridCurrentDay }, dayGridViews)
56
- }); }, [props.className, props.style, props.additionalViewProps, props.eventBlock.title, props.asideCalendarProps, props.asideCalendarCheckboxListProps, props.children, calendarSystem, monthGridViews, weekGridViews, dayGridViews]);
57
+ }); }, [props.className, props.style, props.additionalViewProps, props.eventBlock.title, props.eventBlock.canAddedEventGroups, props.asideCalendarProps, props.asideCalendarCheckboxListProps, props.children, props.onEventClick, calendarSystem, monthGridViews, weekGridViews, dayGridViews]);
57
58
  return components.ui.renderView(props.view || 'content.CalendarSystemView', viewProps);
58
59
  }
59
60
  exports["default"] = CalendarSystem;
@@ -1,3 +1,3 @@
1
1
  import dayjs from 'dayjs';
2
2
  import { IEventGroup, IEvent } from '../CalendarSystem';
3
- export declare const addEventIfMatchDate: (eventDateDayJs: dayjs.Dayjs, sourceDateInDayJs: dayjs.Dayjs, calendarGroup: IEventGroup, originalEvent: IEvent, unit: 'hours' | 'day', selectedEventGroupsIds: number[], resultEventsOnDate: IEvent[]) => void;
3
+ export declare const addEventIfMatchDate: (eventDateDayJs: dayjs.Dayjs, sourceDateInDayJs: dayjs.Dayjs, calendarGroup: IEventGroup, originalEvent: IEvent, unit: 'hours' | 'day', selectedEventGroupsIds: Array<number | string>, resultEventsOnDate: IEvent[]) => void;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { ICalendarSystemProps, ICalendarUser, IEventGroup } from '../CalendarSystem';
3
- import CalendarEnum from '../enums/CalendarType';
3
+ import CalendarType from '../enums/CalendarType';
4
4
  export declare const useCalendarSystem: (props: ICalendarSystemProps) => {
5
5
  monthGridWeekDays: any;
6
6
  monthGridCalendarDays: import("../CalendarSystem").IDay[];
@@ -16,11 +16,11 @@ export declare const useCalendarSystem: (props: ICalendarSystemProps) => {
16
16
  dayGridCurrentDay: import("../CalendarSystem").IDay;
17
17
  dateToDisplay: any;
18
18
  innerEventGroups: IEventGroup[];
19
- calendarType: CalendarEnum;
19
+ calendarType: CalendarType;
20
20
  users: ICalendarUser[];
21
21
  setSelectedEventGroupsIds: React.Dispatch<React.SetStateAction<number[]>>;
22
22
  handleCalendarTypeChange: (newType: string) => void;
23
- getEventsFromDate: (dateFromDay: Date, currentCalendarType: CalendarEnum) => import("../CalendarSystem").IEvent[];
23
+ getEventsFromDate: (dateFromDay: Date, currentCalendarType: CalendarType) => import("../CalendarSystem").IEvent[];
24
24
  onCalendarChangedMonth: (newDate: Date) => void;
25
25
  openCreateEventGroupModal: () => void;
26
26
  openEditModal: (event: import("../CalendarSystem").IEvent) => void;
@@ -27,11 +27,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  };
28
28
  exports.__esModule = true;
29
29
  exports.useCalendarSystem = void 0;
30
+ /* eslint-disable default-case */
30
31
  var react_1 = __importStar(require("react"));
32
+ var react_use_1 = require("react-use");
33
+ var react_redux_1 = require("react-redux");
34
+ var last_1 = __importDefault(require("lodash-es/last"));
35
+ var head_1 = __importDefault(require("lodash-es/head"));
31
36
  var useDisplayDate_1 = __importDefault(require("./useDisplayDate"));
32
37
  var useDayGrid_1 = require("./useDayGrid");
33
38
  var useCalendarType_1 = require("./useCalendarType");
34
- var CalendarType_1 = __importDefault(require("../enums/CalendarType"));
35
39
  var useMonthGrid_1 = __importDefault(require("./useMonthGrid"));
36
40
  var useWeekGrid_1 = __importDefault(require("./useWeekGrid"));
37
41
  var useCalendarControls_1 = __importDefault(require("./useCalendarControls"));
@@ -40,12 +44,24 @@ var useCalendarSystemEventGroupModals_1 = require("./useCalendarSystemEventGroup
40
44
  var useEventsFromDate_1 = require("./useEventsFromDate");
41
45
  var DisplayDateFormatType_1 = __importDefault(require("../enums/DisplayDateFormatType"));
42
46
  var utils_1 = require("../utils/utils");
47
+ var form_1 = require("../../../../actions/form");
48
+ var CalendarType_1 = __importDefault(require("../enums/CalendarType"));
49
+ var DEFAULT_DATE_FROM_ATTRIBUTE = 'dateFrom';
50
+ var DEFAULT_DATE_TO_ATTRIBUTE = 'dateTo';
43
51
  var useCalendarSystem = function (props) {
44
- var _a = react_1["default"].useState(props.eventBlock.eventGroups || []), innerEventGroups = _a[0], setInnerEventGroups = _a[1];
45
- var _b = react_1["default"].useState([]), selectedEventGroupsIds = _b[0], setSelectedEventGroupsIds = _b[1];
46
- var _c = (0, react_1.useState)(props.users), users = _c[0], setUsers = _c[1];
52
+ var _a, _b;
53
+ var dispatch = (0, react_redux_1.useDispatch)();
54
+ var _c = react_1["default"].useState(props.eventBlock.eventGroups || []), innerEventGroups = _c[0], setInnerEventGroups = _c[1];
55
+ var _d = react_1["default"].useState([]), selectedEventGroupsIds = _d[0], setSelectedEventGroupsIds = _d[1];
56
+ var _e = (0, react_1.useState)(props.users), users = _e[0], setUsers = _e[1];
57
+ react_1["default"].useEffect(function () {
58
+ setInnerEventGroups(props.eventBlock.eventGroups);
59
+ }, [props.eventBlock.eventGroups]);
60
+ react_1["default"].useEffect(function () {
61
+ setUsers(props.users);
62
+ }, [props.users]);
47
63
  //Главная дата, от которой происходят все вычисления
48
- var _d = react_1["default"].useState((0, utils_1.getFormattedDay)()), generalCurrentDay = _d[0], setGeneralCurrentDay = _d[1];
64
+ var _f = react_1["default"].useState((0, utils_1.getFormattedDay)()), generalCurrentDay = _f[0], setGeneralCurrentDay = _f[1];
49
65
  var isGeneralCurrentDayNeedsUpdate = (0, react_1.useRef)(true);
50
66
  var updateGeneralCurrentDay = (0, react_1.useCallback)(function (newDate) {
51
67
  if (!isGeneralCurrentDayNeedsUpdate.current) {
@@ -57,21 +73,59 @@ var useCalendarSystem = function (props) {
57
73
  var onCalendarChangedMonth = react_1["default"].useCallback(function (newDate) {
58
74
  updateGeneralCurrentDay(newDate);
59
75
  }, [updateGeneralCurrentDay]);
60
- var _e = (0, useDisplayDate_1["default"])(generalCurrentDay), dateToDisplay = _e.dateToDisplay, changeDisplayFormat = _e.changeDisplayFormat;
61
- var _f = (0, useMonthGrid_1["default"])(generalCurrentDay), monthGridWeekDays = _f.monthGridWeekDays, monthGridCalendarDays = _f.monthGridCalendarDays;
62
- var _g = (0, useWeekGrid_1["default"])(generalCurrentDay), weekGridTwentyFourHoursArray = _g.weekGridTwentyFourHoursArray, weekGridCurrentWeekDays = _g.weekGridCurrentWeekDays;
63
- var _h = (0, useDayGrid_1.useDayGrid)(generalCurrentDay), dayGridTwentyFourHoursArray = _h.dayGridTwentyFourHoursArray, dayGridCurrentDay = _h.dayGridCurrentDay;
64
- var _j = (0, useCalendarType_1.useCalendarType)(function (newType) {
76
+ var _g = (0, useDisplayDate_1["default"])(generalCurrentDay), dateToDisplay = _g.dateToDisplay, changeDisplayFormat = _g.changeDisplayFormat;
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
+ var _k = (0, useDayGrid_1.useDayGrid)(generalCurrentDay), dayGridTwentyFourHoursArray = _k.dayGridTwentyFourHoursArray, dayGridCurrentDay = _k.dayGridCurrentDay;
80
+ var _l = (0, useCalendarType_1.useCalendarType)(function (newType) {
65
81
  if (newType === CalendarType_1["default"].DAY) {
66
82
  changeDisplayFormat(DisplayDateFormatType_1["default"].DAY);
67
83
  return;
68
84
  }
69
85
  changeDisplayFormat(DisplayDateFormatType_1["default"].DEFAULT);
70
- }), calendarType = _j.calendarType, handleCalendarTypeChange = _j.handleCalendarTypeChange;
86
+ }), calendarType = _l.calendarType, handleCalendarTypeChange = _l.handleCalendarTypeChange;
71
87
  var onClickControl = (0, useCalendarControls_1["default"])(calendarType, generalCurrentDay, setGeneralCurrentDay, isGeneralCurrentDayNeedsUpdate).onClickControl;
72
- var _k = (0, useCalendarSystemModals_1["default"])(props.calendarModalProps, innerEventGroups, setInnerEventGroups, users, setUsers), openCreateModal = _k.openCreateModal, openEditModal = _k.openEditModal;
88
+ var _m = (0, useCalendarSystemModals_1["default"])(props.calendarModalProps, innerEventGroups, setInnerEventGroups, users, setUsers), openCreateModal = _m.openCreateModal, openEditModal = _m.openEditModal;
73
89
  var openCreateEventGroupModal = (0, useCalendarSystemEventGroupModals_1.useCalendarSystemEventGroupModals)(innerEventGroups, setInnerEventGroups, props.eventGroupModalProps).openCreateEventGroupModal;
74
90
  var getEventsFromDate = (0, useEventsFromDate_1.useEventsFromDate)(innerEventGroups, selectedEventGroupsIds).getEventsFromDate;
91
+ // save dateTo and dateFrom in redux
92
+ var dateFromAttribute = ((_a = props.calendarDatesFormData) === null || _a === void 0 ? void 0 : _a.dateFromAttribute) || DEFAULT_DATE_FROM_ATTRIBUTE;
93
+ var dateToAttribute = ((_b = props.calendarDatesFormData) === null || _b === void 0 ? void 0 : _b.dateToAttribute) || DEFAULT_DATE_TO_ATTRIBUTE;
94
+ (0, react_use_1.useMount)(function () {
95
+ var _a;
96
+ if (props.calendarDatesFormData) {
97
+ dispatch((0, form_1.formInitialize)(props.calendarDatesFormData.formId, (_a = {},
98
+ _a[dateFromAttribute] = null,
99
+ _a[dateToAttribute] = null,
100
+ _a)));
101
+ }
102
+ });
103
+ react_1["default"].useEffect(function () {
104
+ var _a;
105
+ if (props.calendarDatesFormData) {
106
+ var currentDateArray = calendarType === CalendarType_1["default"].MONTH
107
+ ? monthGridCalendarDays
108
+ : weekGridCurrentWeekDays;
109
+ var newFormValues = (_a = {},
110
+ _a[dateFromAttribute] = (0, head_1["default"])(currentDateArray).date,
111
+ _a[dateToAttribute] = (0, last_1["default"])(currentDateArray).date,
112
+ _a);
113
+ if (calendarType === CalendarType_1["default"].DAY) {
114
+ newFormValues[dateFromAttribute] = dayGridCurrentDay.date;
115
+ newFormValues[dateToAttribute] = dayGridCurrentDay.date;
116
+ }
117
+ dispatch((0, form_1.formChange)(props.calendarDatesFormData.formId, newFormValues));
118
+ }
119
+ }, [
120
+ calendarType,
121
+ dateFromAttribute,
122
+ dateToAttribute,
123
+ dayGridCurrentDay,
124
+ dispatch,
125
+ monthGridCalendarDays,
126
+ props.calendarDatesFormData,
127
+ weekGridCurrentWeekDays,
128
+ ]);
75
129
  return {
76
130
  monthGridWeekDays: monthGridWeekDays,
77
131
  monthGridCalendarDays: monthGridCalendarDays,
@@ -6,7 +6,7 @@ declare const useCalendarSystemModals: (calendarModalProps: IModalProps, innerEv
6
6
  openEditModal: (event: IEvent) => void;
7
7
  getEventFromGroup: (event: IEvent) => IEventGroup;
8
8
  getModalProps: (isCreate: boolean, eventInitialValues?: Partial<IEvent & {
9
- eventGroupId: number;
9
+ eventGroupId: number | string;
10
10
  }>) => ICalendarSystemModalViewProps;
11
11
  };
12
12
  export default useCalendarSystemModals;