@steroidsjs/core 3.0.14 → 3.0.16

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 (40) hide show
  1. package/docs-autogen-result.json +464 -38
  2. package/en.json +7 -0
  3. package/hooks/useTree.d.ts +3 -2
  4. package/hooks/useTree.js +20 -1
  5. package/package.json +4 -4
  6. package/ui/content/CalendarSystem/CalendarSystem.d.ts +46 -15
  7. package/ui/content/CalendarSystem/CalendarSystem.js +32 -68
  8. package/ui/content/CalendarSystem/enums/CalendarType.d.ts +1 -0
  9. package/ui/content/CalendarSystem/enums/CalendarType.js +2 -0
  10. package/ui/content/CalendarSystem/enums/DisplayDateFormatType.d.ts +6 -0
  11. package/ui/content/CalendarSystem/enums/DisplayDateFormatType.js +38 -0
  12. package/ui/content/CalendarSystem/hooks/useCalendarControls.d.ts +4 -4
  13. package/ui/content/CalendarSystem/hooks/useCalendarControls.js +125 -21
  14. package/ui/content/CalendarSystem/hooks/useCalendarSystem.d.ts +29 -0
  15. package/ui/content/CalendarSystem/hooks/useCalendarSystem.js +96 -0
  16. package/ui/content/CalendarSystem/hooks/useCalendarSystemModals.d.ts +2 -2
  17. package/ui/content/CalendarSystem/hooks/useCalendarSystemModals.js +29 -10
  18. package/ui/content/CalendarSystem/hooks/useCustomViews.d.ts +24 -0
  19. package/ui/content/CalendarSystem/hooks/useCustomViews.js +45 -0
  20. package/ui/content/CalendarSystem/hooks/useDayGrid.d.ts +5 -0
  21. package/ui/content/CalendarSystem/hooks/useDayGrid.js +9 -0
  22. package/ui/content/CalendarSystem/hooks/useDisplayDate.d.ts +4 -3
  23. package/ui/content/CalendarSystem/hooks/useDisplayDate.js +10 -14
  24. package/ui/content/CalendarSystem/hooks/useEventsFromDate.js +9 -1
  25. package/ui/content/CalendarSystem/hooks/useMonthGrid.d.ts +1 -10
  26. package/ui/content/CalendarSystem/hooks/useMonthGrid.js +28 -44
  27. package/ui/content/CalendarSystem/hooks/useWeekGrid.d.ts +3 -7
  28. package/ui/content/CalendarSystem/hooks/useWeekGrid.js +8 -65
  29. package/ui/content/CalendarSystem/utils/utils.d.ts +7 -0
  30. package/ui/content/CalendarSystem/utils/utils.js +57 -3
  31. package/ui/content/Icon/Icon.d.ts +4 -0
  32. package/ui/content/Icon/Icon.js +3 -2
  33. package/ui/form/DateField/useDateInputState.js +1 -1
  34. package/ui/form/DateTimeField/DateTimeField.js +2 -1
  35. package/ui/form/PasswordField/PasswordField.js +14 -7
  36. package/ui/form/RadioListField/RadioListField.js +1 -1
  37. package/ui/form/SliderField/SliderField.d.ts +8 -0
  38. package/ui/form/SliderField/SliderField.js +17 -7
  39. package/ui/nav/Tree/Tree.d.ts +7 -0
  40. package/ui/nav/Tree/Tree.js +14 -10
@@ -0,0 +1,96 @@
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
+ exports.useCalendarSystem = void 0;
30
+ var react_1 = __importStar(require("react"));
31
+ var useDisplayDate_1 = __importDefault(require("./useDisplayDate"));
32
+ var useDayGrid_1 = require("./useDayGrid");
33
+ var useCalendarType_1 = require("./useCalendarType");
34
+ var CalendarType_1 = __importDefault(require("../enums/CalendarType"));
35
+ var useMonthGrid_1 = __importDefault(require("./useMonthGrid"));
36
+ var useWeekGrid_1 = __importDefault(require("./useWeekGrid"));
37
+ var useCalendarControls_1 = __importDefault(require("./useCalendarControls"));
38
+ var useCalendarSystemModals_1 = __importDefault(require("./useCalendarSystemModals"));
39
+ var useCalendarSystemEventGroupModals_1 = require("./useCalendarSystemEventGroupModals");
40
+ var useEventsFromDate_1 = require("./useEventsFromDate");
41
+ var DisplayDateFormatType_1 = __importDefault(require("../enums/DisplayDateFormatType"));
42
+ var utils_1 = require("../utils/utils");
43
+ 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];
47
+ //Главная дата, от которой происходят все вычисления
48
+ var _d = react_1["default"].useState((0, utils_1.getFormattedDay)()), generalCurrentDay = _d[0], setGeneralCurrentDay = _d[1];
49
+ var isGeneralCurrentDayNeedsUpdate = (0, react_1.useRef)(true);
50
+ var updateGeneralCurrentDay = (0, react_1.useCallback)(function (newDate) {
51
+ if (!isGeneralCurrentDayNeedsUpdate.current) {
52
+ isGeneralCurrentDayNeedsUpdate.current = true;
53
+ return;
54
+ }
55
+ setGeneralCurrentDay((0, utils_1.getFormattedDay)(newDate));
56
+ }, [isGeneralCurrentDayNeedsUpdate]);
57
+ var onCalendarChangedMonth = react_1["default"].useCallback(function (newDate) {
58
+ updateGeneralCurrentDay(newDate);
59
+ }, [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) {
65
+ if (newType === CalendarType_1["default"].DAY) {
66
+ changeDisplayFormat(DisplayDateFormatType_1["default"].DAY);
67
+ return;
68
+ }
69
+ changeDisplayFormat(DisplayDateFormatType_1["default"].DEFAULT);
70
+ }), calendarType = _j.calendarType, handleCalendarTypeChange = _j.handleCalendarTypeChange;
71
+ 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;
73
+ var openCreateEventGroupModal = (0, useCalendarSystemEventGroupModals_1.useCalendarSystemEventGroupModals)(innerEventGroups, setInnerEventGroups, props.eventGroupModalProps).openCreateEventGroupModal;
74
+ var getEventsFromDate = (0, useEventsFromDate_1.useEventsFromDate)(innerEventGroups, selectedEventGroupsIds).getEventsFromDate;
75
+ return {
76
+ monthGridWeekDays: monthGridWeekDays,
77
+ monthGridCalendarDays: monthGridCalendarDays,
78
+ weekGridTwentyFourHoursArray: weekGridTwentyFourHoursArray,
79
+ weekGridCurrentWeekDays: weekGridCurrentWeekDays,
80
+ dayGridTwentyFourHoursArray: dayGridTwentyFourHoursArray,
81
+ dayGridCurrentDay: dayGridCurrentDay,
82
+ dateToDisplay: dateToDisplay,
83
+ innerEventGroups: innerEventGroups,
84
+ calendarType: calendarType,
85
+ users: users,
86
+ setSelectedEventGroupsIds: setSelectedEventGroupsIds,
87
+ handleCalendarTypeChange: handleCalendarTypeChange,
88
+ getEventsFromDate: getEventsFromDate,
89
+ onCalendarChangedMonth: onCalendarChangedMonth,
90
+ openCreateEventGroupModal: openCreateEventGroupModal,
91
+ openEditModal: openEditModal,
92
+ openCreateModal: openCreateModal,
93
+ onClickControl: onClickControl
94
+ };
95
+ };
96
+ exports.useCalendarSystem = useCalendarSystem;
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { IModalProps } from '../../../modal/Modal/Modal';
3
- import { ICalendarSystemModalViewProps, IDay, IEvent, IEventGroup } from '../CalendarSystem';
4
- declare const useCalendarSystemModals: (calendarModalProps: IModalProps, innerEventGroups: IEventGroup[], setInnerEventGroups: React.Dispatch<React.SetStateAction<IEventGroup[]>>) => {
3
+ import { ICalendarSystemModalViewProps, ICalendarUser, IDay, IEvent, IEventGroup } from '../CalendarSystem';
4
+ declare const useCalendarSystemModals: (calendarModalProps: IModalProps, innerEventGroups: IEventGroup[], setInnerEventGroups: React.Dispatch<React.SetStateAction<IEventGroup[]>>, users: ICalendarUser[], setUsers: React.Dispatch<React.SetStateAction<ICalendarUser[]>>) => {
5
5
  openCreateModal: (eventInitialDay?: IDay) => void;
6
6
  openEditModal: (event: IEvent) => void;
7
7
  getEventFromGroup: (event: IEvent) => IEventGroup;
@@ -27,17 +27,18 @@ var react_1 = __importDefault(require("react"));
27
27
  var react_redux_1 = require("react-redux");
28
28
  var isEqual_1 = __importDefault(require("lodash-es/isEqual"));
29
29
  var maxBy_1 = __importDefault(require("lodash-es/maxBy"));
30
+ var cloneDeep_1 = __importDefault(require("lodash-es/cloneDeep"));
30
31
  var modal_1 = require("../../../../actions/modal");
31
32
  var useComponents_1 = __importDefault(require("../../../../hooks/useComponents"));
32
33
  var utils_1 = require("../utils/utils");
33
- var DEFAULT_ID = 0;
34
- var useCalendarSystemModals = function (calendarModalProps, innerEventGroups, setInnerEventGroups) {
34
+ var DEFAULT_ID = 1;
35
+ var useCalendarSystemModals = function (calendarModalProps, innerEventGroups, setInnerEventGroups, users, setUsers) {
35
36
  var dispatch = (0, react_redux_1.useDispatch)();
36
37
  var components = (0, useComponents_1["default"])();
37
38
  var calendarModalView = (calendarModalProps === null || calendarModalProps === void 0 ? void 0 : calendarModalProps.component) || components.ui.getView('content.CalendarSystemModalView');
38
39
  var onModalFormSubmit = react_1["default"].useCallback(function (fields, eventInitialValues) {
39
40
  var _a;
40
- var eventGroupId = fields.eventGroupId, date = fields.date, title = fields.title, description = fields.description;
41
+ var id = fields.id, eventGroupId = fields.eventGroupId, startDate = fields.startDate, title = fields.title, description = fields.description, endDate = fields.endDate, usersIds = fields.usersIds;
41
42
  var currentEventGroups = __spreadArray([], innerEventGroups, true);
42
43
  if (eventInitialValues) {
43
44
  // Удаляем событие из предыдущей группы
@@ -51,8 +52,9 @@ var useCalendarSystemModals = function (calendarModalProps, innerEventGroups, se
51
52
  var changeableEventGroupIndex = currentEventGroups.findIndex(function (group) { return group.id === eventGroupId; });
52
53
  var changeableEventGroup = __assign({}, currentEventGroups[changeableEventGroupIndex]);
53
54
  var updatedEvent = {
54
- id: (((_a = (0, maxBy_1["default"])(changeableEventGroup.events, function (event) { return event.id; })) === null || _a === void 0 ? void 0 : _a.id) || DEFAULT_ID) + 1,
55
- date: new Date(date),
55
+ id: id || (((_a = (0, maxBy_1["default"])(changeableEventGroup.events, function (event) { return event.id; })) === null || _a === void 0 ? void 0 : _a.id) || DEFAULT_ID) + 1,
56
+ startDate: new Date(startDate),
57
+ endDate: new Date(endDate),
56
58
  title: title,
57
59
  description: description
58
60
  };
@@ -62,22 +64,39 @@ var useCalendarSystemModals = function (calendarModalProps, innerEventGroups, se
62
64
  changeableEventGroup
63
65
  ], false), currentEventGroups.slice(changeableEventGroupIndex + 1), true);
64
66
  setInnerEventGroups(currentEventGroups);
65
- }, [innerEventGroups, setInnerEventGroups]);
66
- var getModalProps = react_1["default"].useCallback(function (isCreate, eventInitialValues) { return (__assign(__assign({}, calendarModalProps), { component: calendarModalView, eventGroups: innerEventGroups, onModalFormSubmit: onModalFormSubmit, isCreate: isCreate, eventInitialValues: eventInitialValues })); }, [calendarModalProps, calendarModalView, innerEventGroups, onModalFormSubmit]);
67
+ var newUsers = (0, cloneDeep_1["default"])(users);
68
+ newUsers = newUsers.map(function (user) {
69
+ var newUser = (0, cloneDeep_1["default"])(user);
70
+ if (newUser.eventsIds.includes(updatedEvent.id) && !usersIds.includes(newUser.id)) {
71
+ return __assign(__assign({}, newUser), { eventsIds: __spreadArray([], newUser.eventsIds, true).filter(function (eventId) { return eventId !== updatedEvent.id; }) });
72
+ }
73
+ if (usersIds.includes(newUser.id) && !newUser.eventsIds.includes(updatedEvent.id)) {
74
+ return __assign(__assign({}, newUser), { eventsIds: __spreadArray(__spreadArray([], newUser.eventsIds, true), [updatedEvent.id], false) });
75
+ }
76
+ return newUser;
77
+ });
78
+ setUsers(newUsers);
79
+ }, [innerEventGroups, setInnerEventGroups, setUsers, users]);
80
+ var getModalProps = react_1["default"].useCallback(function (isCreate, eventInitialValues) { return (__assign(__assign({}, calendarModalProps), { component: calendarModalView, eventGroups: innerEventGroups, onModalFormSubmit: onModalFormSubmit, isCreate: isCreate, eventInitialValues: eventInitialValues, users: users })); }, [calendarModalProps, calendarModalView, innerEventGroups, onModalFormSubmit, users]);
67
81
  var getEventFromGroup = react_1["default"].useCallback(function (event) { return innerEventGroups
68
82
  .find(function (group) { return group.events
69
83
  .some(function (groupEvent) { return (0, isEqual_1["default"])((0, utils_1.getOmittedEvent)(groupEvent), (0, utils_1.getOmittedEvent)(event)); }); }); }, [innerEventGroups]);
70
84
  var openCreateModal = react_1["default"].useCallback(function (eventInitialDay) {
71
85
  if (eventInitialDay === void 0) { eventInitialDay = null; }
72
86
  var modalProps = eventInitialDay
73
- ? getModalProps(true, { date: eventInitialDay.date }) : getModalProps(true);
87
+ ? getModalProps(true, { startDate: eventInitialDay.date }) : getModalProps(true);
74
88
  dispatch((0, modal_1.openModal)(calendarModalView, modalProps));
75
89
  }, [calendarModalView, dispatch, getModalProps]);
76
90
  var openEditModal = react_1["default"].useCallback(function (event) {
77
91
  var _a;
78
92
  var eventGroupId = ((_a = getEventFromGroup(event)) === null || _a === void 0 ? void 0 : _a.id) || 0;
79
- dispatch((0, modal_1.openModal)(calendarModalView, getModalProps(false, __assign(__assign({}, event), { eventGroupId: eventGroupId }))));
80
- }, [getModalProps, calendarModalView, dispatch, getEventFromGroup]);
93
+ dispatch((0, modal_1.openModal)(calendarModalView, getModalProps(false, __assign(__assign({}, event), { eventGroupId: eventGroupId, usersIds: users.map(function (user) {
94
+ if (!user.eventsIds.includes(event.id)) {
95
+ return null;
96
+ }
97
+ return user.id;
98
+ }).filter(Boolean) }))));
99
+ }, [getEventFromGroup, dispatch, calendarModalView, getModalProps, users]);
81
100
  return {
82
101
  openCreateModal: openCreateModal,
83
102
  openEditModal: openEditModal,
@@ -0,0 +1,24 @@
1
+ /// <reference types="react" />
2
+ import { ICalendarSystemProps } from '../CalendarSystem';
3
+ export interface ICustomViews {
4
+ renderEventView: (componentProps: any) => JSX.Element;
5
+ renderHourView: (componentProps: any) => JSX.Element;
6
+ renderGridView: (componentProps: any) => JSX.Element;
7
+ }
8
+ export declare const useCustomViews: (props: Pick<ICalendarSystemProps, 'dayGrid' | 'weekGrid' | 'monthGrid'>) => {
9
+ dayGridViews: {
10
+ renderEventView: (componentProps: any) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
11
+ renderHourView: (componentProps: any) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
12
+ renderGridView: (componentProps: any) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
13
+ };
14
+ weekGridViews: {
15
+ renderEventView: (componentProps: any) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
16
+ renderHourView: (componentProps: any) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
17
+ renderGridView: (componentProps: any) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
18
+ };
19
+ monthGridViews: {
20
+ renderEventView: (componentProps: any) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
21
+ renderHourView: (componentProps: any) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
22
+ renderGridView: (componentProps: any) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
23
+ };
24
+ };
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.useCustomViews = void 0;
4
+ /* eslint-disable max-len */
5
+ var react_1 = require("react");
6
+ var hooks_1 = require("../../../../hooks");
7
+ var DEFAULT_DAY_GRID_VIEWS = {
8
+ eventView: 'content.CalendarSystemDayEventView',
9
+ hourView: 'content.CalendarSystemDayHourView',
10
+ gridView: 'content.CalendarSystemDayGridView'
11
+ };
12
+ var DEFAULT_WEEK_GRID_VIEWS = {
13
+ eventView: 'content.CalendarSystemWeekEventView',
14
+ hourView: 'content.CalendarSystemWeekHourView',
15
+ gridView: 'content.CalendarSystemWeekGridView'
16
+ };
17
+ var DEFAULT_MONTH_GRID_VIEWS = {
18
+ eventView: 'content.CalendarSystemMonthEventView',
19
+ hourView: 'content.CalendarSystemMonthHourView',
20
+ gridView: 'content.CalendarSystemMonthGridView'
21
+ };
22
+ var useCustomViews = function (props) {
23
+ var components = (0, hooks_1.useComponents)();
24
+ var dayGridViews = (0, react_1.useMemo)(function () { return ({
25
+ renderEventView: function (componentProps) { var _a; return components.ui.renderView(((_a = props === null || props === void 0 ? void 0 : props.dayGrid) === null || _a === void 0 ? void 0 : _a.eventView) || DEFAULT_DAY_GRID_VIEWS.eventView, componentProps); },
26
+ renderHourView: function (componentProps) { var _a; return components.ui.renderView(((_a = props === null || props === void 0 ? void 0 : props.dayGrid) === null || _a === void 0 ? void 0 : _a.hourView) || DEFAULT_DAY_GRID_VIEWS.hourView, componentProps); },
27
+ renderGridView: function (componentProps) { var _a; return components.ui.renderView(((_a = props === null || props === void 0 ? void 0 : props.dayGrid) === null || _a === void 0 ? void 0 : _a.gridView) || DEFAULT_DAY_GRID_VIEWS.gridView, componentProps); }
28
+ }); }, [components.ui, props]);
29
+ var weekGridViews = (0, react_1.useMemo)(function () { return ({
30
+ renderEventView: function (componentProps) { var _a; return components.ui.renderView(((_a = props === null || props === void 0 ? void 0 : props.weekGrid) === null || _a === void 0 ? void 0 : _a.eventView) || DEFAULT_WEEK_GRID_VIEWS.eventView, componentProps); },
31
+ renderHourView: function (componentProps) { var _a; return components.ui.renderView(((_a = props === null || props === void 0 ? void 0 : props.weekGrid) === null || _a === void 0 ? void 0 : _a.hourView) || DEFAULT_WEEK_GRID_VIEWS.hourView, componentProps); },
32
+ renderGridView: function (componentProps) { var _a; return components.ui.renderView(((_a = props === null || props === void 0 ? void 0 : props.weekGrid) === null || _a === void 0 ? void 0 : _a.gridView) || DEFAULT_WEEK_GRID_VIEWS.gridView, componentProps); }
33
+ }); }, [components.ui, props]);
34
+ var monthGridViews = (0, react_1.useMemo)(function () { return ({
35
+ renderEventView: function (componentProps) { var _a; return components.ui.renderView(((_a = props === null || props === void 0 ? void 0 : props.monthGrid) === null || _a === void 0 ? void 0 : _a.eventView) || DEFAULT_MONTH_GRID_VIEWS.eventView, componentProps); },
36
+ renderHourView: function (componentProps) { var _a; return components.ui.renderView(((_a = props === null || props === void 0 ? void 0 : props.monthGrid) === null || _a === void 0 ? void 0 : _a.hourView) || DEFAULT_MONTH_GRID_VIEWS.hourView, componentProps); },
37
+ renderGridView: function (componentProps) { var _a; return components.ui.renderView(((_a = props === null || props === void 0 ? void 0 : props.monthGrid) === null || _a === void 0 ? void 0 : _a.gridView) || DEFAULT_MONTH_GRID_VIEWS.gridView, componentProps); }
38
+ }); }, [components.ui, props]);
39
+ return {
40
+ dayGridViews: dayGridViews,
41
+ weekGridViews: weekGridViews,
42
+ monthGridViews: monthGridViews
43
+ };
44
+ };
45
+ exports.useCustomViews = useCustomViews;
@@ -0,0 +1,5 @@
1
+ import { IDay } from '../CalendarSystem';
2
+ export declare const useDayGrid: (generalCurrentDay: IDay) => {
3
+ dayGridCurrentDay: IDay;
4
+ dayGridTwentyFourHoursArray: string[];
5
+ };
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.useDayGrid = void 0;
4
+ var utils_1 = require("../utils/utils");
5
+ var useDayGrid = function (generalCurrentDay) { return ({
6
+ dayGridCurrentDay: generalCurrentDay,
7
+ dayGridTwentyFourHoursArray: (0, utils_1.getTwentyFourHoursArray)()
8
+ }); };
9
+ exports.useDayGrid = useDayGrid;
@@ -1,6 +1,7 @@
1
- export declare const MONTH_CONVERT_FORMAT = "MMMM YYYY";
2
- declare const useDisplayDate: () => {
1
+ import { IDay } from '../CalendarSystem';
2
+ declare const useDisplayDate: (generalCurrentDay: IDay) => {
3
3
  dateToDisplay: any;
4
- setNewDateToDisplay: (newDate: Date) => void;
4
+ displayFormat: string;
5
+ changeDisplayFormat: (newFormat: string) => void;
5
6
  };
6
7
  export default useDisplayDate;
@@ -3,25 +3,21 @@ 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.MONTH_CONVERT_FORMAT = void 0;
7
- var react_1 = __importDefault(require("react"));
6
+ var react_1 = require("react");
8
7
  var upperFirst_1 = __importDefault(require("lodash-es/upperFirst"));
9
8
  var calendar_1 = require("../../../../utils/calendar");
10
- exports.MONTH_CONVERT_FORMAT = 'MMMM YYYY';
11
- var getFirstDayOfCurrentMonth = function () {
12
- var currentDate = new Date();
13
- var firstDayOfMonth = new Date(currentDate.getFullYear(), currentDate.getMonth(), 1);
14
- return firstDayOfMonth;
15
- };
16
- var convertDateToRequiredFormat = function (date) { return (0, calendar_1.convertDate)(date, null, exports.MONTH_CONVERT_FORMAT); };
17
- var useDisplayDate = function () {
18
- var _a = react_1["default"].useState((0, upperFirst_1["default"])(convertDateToRequiredFormat(getFirstDayOfCurrentMonth()))), dateToDisplay = _a[0], setDateToDisplay = _a[1];
19
- var setNewDateToDisplay = function (newDate) {
20
- setDateToDisplay(convertDateToRequiredFormat(newDate));
9
+ var DisplayDateFormatType_1 = __importDefault(require("../enums/DisplayDateFormatType"));
10
+ var convertDateToRequiredFormat = function (date, toFormat) { return (0, calendar_1.convertDate)(date, null, DisplayDateFormatType_1["default"].getLabel(toFormat)); };
11
+ var useDisplayDate = function (generalCurrentDay) {
12
+ var _a = (0, react_1.useState)(DisplayDateFormatType_1["default"].DEFAULT), displayFormat = _a[0], setDisplayFormat = _a[1];
13
+ var dateToDisplay = (0, react_1.useMemo)(function () { return (0, upperFirst_1["default"])(convertDateToRequiredFormat(generalCurrentDay.date, displayFormat)); }, [displayFormat, generalCurrentDay.date]);
14
+ var changeDisplayFormat = function (newFormat) {
15
+ setDisplayFormat(newFormat);
21
16
  };
22
17
  return {
23
18
  dateToDisplay: dateToDisplay,
24
- setNewDateToDisplay: setNewDateToDisplay
19
+ displayFormat: displayFormat,
20
+ changeDisplayFormat: changeDisplayFormat
25
21
  };
26
22
  };
27
23
  exports["default"] = useDisplayDate;
@@ -23,6 +23,14 @@ var CALENDAR_TYPE_GETTING_EVENTS_PROPERTIES = (_a = {},
23
23
  },
24
24
  unit: 'hours'
25
25
  },
26
+ _a[CalendarType_1["default"].DAY] = {
27
+ getDayJsDate: function (date) {
28
+ var eventDate = new Date(date);
29
+ eventDate.setHours(eventDate.getHours(), 0, 0, 0);
30
+ return (0, dayjs_1["default"])(eventDate);
31
+ },
32
+ unit: 'hours'
33
+ },
26
34
  _a);
27
35
  var useEventsFromDate = function (innerEventGroups, selectedEventGroupsIds) {
28
36
  var getEventsFromDate = react_1["default"].useCallback(function (dateFromDay, currentCalendarType) {
@@ -37,7 +45,7 @@ var useEventsFromDate = function (innerEventGroups, selectedEventGroupsIds) {
37
45
  };
38
46
  var calendarTypeProperties = CALENDAR_TYPE_GETTING_EVENTS_PROPERTIES[currentCalendarType];
39
47
  forEachEventGroupEvent(function (event, eventGroup) {
40
- var eventDateDayJs = calendarTypeProperties.getDayJsDate(event.date);
48
+ var eventDateDayJs = calendarTypeProperties.getDayJsDate(event.startDate);
41
49
  (0, addEventIfMatchDate_1.addEventIfMatchDate)(eventDateDayJs, dayjsDateFromDay, eventGroup, event, calendarTypeProperties.unit, selectedEventGroupsIds, resultEventsOnDate);
42
50
  });
43
51
  return resultEventsOnDate;
@@ -1,15 +1,6 @@
1
- import React from 'react';
2
1
  import { IDay } from '../CalendarSystem';
3
- declare const useMonthGrid: (currentMonthFirstDayDate: Date, setCurrentMonthFirstDayDate: React.Dispatch<React.SetStateAction<Date>>) => {
2
+ declare const useMonthGrid: (generalCurrentDay: IDay) => {
4
3
  monthGridWeekDays: any;
5
4
  monthGridCalendarDays: IDay[];
6
- getCalendarArray: () => IDay[];
7
- getCurrentMonthDataUTC: () => {
8
- currentMonth: number;
9
- lastDayOfCurrentMonth: number;
10
- firstDayOfCurrentMonth: Date;
11
- daysInCurrentMonth: any[];
12
- };
13
- getWeekFromDate: (date: Date) => IDay[];
14
5
  };
15
6
  export default useMonthGrid;
@@ -10,34 +10,25 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
- var __importDefault = (this && this.__importDefault) || function (mod) {
14
- return (mod && mod.__esModule) ? mod : { "default": mod };
15
- };
16
13
  exports.__esModule = true;
17
14
  /* eslint-disable no-plusplus */
18
15
  /* eslint-disable import/order */
19
- var react_1 = __importDefault(require("react"));
16
+ var react_1 = require("react");
20
17
  var utils_1 = require("../utils/utils");
21
- var concat_1 = __importDefault(require("lodash-es/concat"));
22
- var slice_1 = __importDefault(require("lodash-es/slice"));
23
- var dayjs_1 = __importDefault(require("dayjs"));
24
- var upperFirst_1 = __importDefault(require("lodash-es/upperFirst"));
25
18
  var FIRST_DAY = 1;
26
19
  var ONE_MONTH = 1;
27
20
  var TOTAL_DAYS_IN_CALENDAR = 42;
28
- var useMonthGrid = function (currentMonthFirstDayDate, setCurrentMonthFirstDayDate) {
29
- var getCurrentMonthDataUTC = react_1["default"].useCallback(function () {
30
- var currentYear = (currentMonthFirstDayDate === null || currentMonthFirstDayDate === void 0 ? void 0 : currentMonthFirstDayDate.getFullYear()) || new Date().getFullYear();
31
- var month = (currentMonthFirstDayDate === null || currentMonthFirstDayDate === void 0 ? void 0 : currentMonthFirstDayDate.getMonth()) || new Date().getMonth();
21
+ var useMonthGrid = function (generalCurrentDay) {
22
+ var currentMonthData = (0, react_1.useMemo)(function () {
23
+ var _a, _b;
24
+ var currentYear = (_a = generalCurrentDay.date) === null || _a === void 0 ? void 0 : _a.getFullYear();
25
+ var month = (_b = generalCurrentDay.date) === null || _b === void 0 ? void 0 : _b.getMonth();
32
26
  var nextMonthFirstDay = new Date(currentYear, month + ONE_MONTH, FIRST_DAY);
33
- var lastDayOfCurrentMonth = new Date(nextMonthFirstDay.getTime() - FIRST_DAY).getDate();
34
- var firstDayOfCurrentMonth = new Date(Date.UTC(currentYear, month, FIRST_DAY));
35
- if (currentMonthFirstDayDate === null) {
36
- setCurrentMonthFirstDayDate(firstDayOfCurrentMonth);
37
- }
27
+ var lastDateOfCurrentMonth = new Date(nextMonthFirstDay.getTime() - FIRST_DAY).getDate();
28
+ var firstDateOfCurrentMonth = new Date(Date.UTC(currentYear, month, FIRST_DAY));
38
29
  var daysInCurrentMonth = [];
39
30
  // Пройдемся по всем дням месяца и добавим их в массив
40
- for (var dayNumber = 1; dayNumber <= lastDayOfCurrentMonth; dayNumber++) {
31
+ for (var dayNumber = 1; dayNumber <= lastDateOfCurrentMonth; dayNumber++) {
41
32
  var date = new Date(Date.UTC(currentYear, month, dayNumber));
42
33
  daysInCurrentMonth.push({
43
34
  date: date,
@@ -46,51 +37,44 @@ var useMonthGrid = function (currentMonthFirstDayDate, setCurrentMonthFirstDayDa
46
37
  }
47
38
  return {
48
39
  currentMonth: month,
49
- lastDayOfCurrentMonth: lastDayOfCurrentMonth,
50
- firstDayOfCurrentMonth: firstDayOfCurrentMonth,
40
+ lastDateOfCurrentMonth: lastDateOfCurrentMonth,
41
+ firstDateOfCurrentMonth: firstDateOfCurrentMonth,
51
42
  daysInCurrentMonth: daysInCurrentMonth
52
43
  };
53
- }, [currentMonthFirstDayDate, setCurrentMonthFirstDayDate]);
54
- var getCalendarArray = react_1["default"].useCallback(function () {
55
- var calendarArray = [];
56
- var _a = getCurrentMonthDataUTC(), firstDayOfCurrentMonth = _a.firstDayOfCurrentMonth, month = _a.currentMonth, daysInCurrentMonth = _a.daysInCurrentMonth;
57
- var firstWeekInMonth = (0, utils_1.getWeekDaysFromDate)(firstDayOfCurrentMonth);
58
- firstWeekInMonth.forEach(function (day) { return calendarArray.push({
44
+ }, [generalCurrentDay.date]);
45
+ var calendarArray = (0, react_1.useMemo)(function () {
46
+ var innerCalendarArray = [];
47
+ var firstDateOfCurrentMonth = currentMonthData.firstDateOfCurrentMonth, currentMonth = currentMonthData.currentMonth, daysInCurrentMonth = currentMonthData.daysInCurrentMonth;
48
+ var firstWeekInMonth = (0, utils_1.getWeekDaysFromDate)(firstDateOfCurrentMonth);
49
+ firstWeekInMonth.forEach(function (day) { return innerCalendarArray.push({
59
50
  date: day.date,
60
51
  dayNumber: day.dayNumber,
61
- outOfRange: day.date.getMonth() < month
52
+ outOfRange: day.date.getMonth() < currentMonth
62
53
  }); });
63
54
  daysInCurrentMonth.forEach(function (day) {
64
- var existingDay = calendarArray.find(function (item) { return item.date.getTime() === day.date.getTime(); });
55
+ var existingDay = innerCalendarArray.find(function (item) { return item.date.getTime() === day.date.getTime(); });
65
56
  if (!existingDay) {
66
- calendarArray.push({
57
+ innerCalendarArray.push({
67
58
  date: day.date,
68
59
  dayNumber: day.dayNumber,
69
60
  outOfRange: false
70
61
  });
71
62
  }
72
63
  });
73
- var daysAfterCurrentMonth = TOTAL_DAYS_IN_CALENDAR - calendarArray.length;
64
+ var daysAfterCurrentMonth = TOTAL_DAYS_IN_CALENDAR - innerCalendarArray.length;
74
65
  for (var i = 1; i <= daysAfterCurrentMonth; i++) {
75
- var currentDate = new Date(currentMonthFirstDayDate === null || currentMonthFirstDayDate === void 0 ? void 0 : currentMonthFirstDayDate.getFullYear(), month + 1, i);
76
- calendarArray.push({
66
+ var currentDate = new Date(generalCurrentDay.date.getFullYear(), currentMonth + 1, i);
67
+ innerCalendarArray.push({
77
68
  date: currentDate,
78
69
  dayNumber: currentDate.getDate(),
79
- outOfRange: currentDate.getMonth() > month
70
+ outOfRange: currentDate.getMonth() > currentMonth
80
71
  });
81
72
  }
82
- return calendarArray.map(function (day) { return (0, utils_1.isDateIsToday)(day.date) ? (__assign(__assign({}, day), { isToday: true })) : day; });
83
- }, [currentMonthFirstDayDate, getCurrentMonthDataUTC]);
84
- var weekDays = react_1["default"].useMemo(function () {
85
- var unformattedDaysOfWeek = dayjs_1["default"].weekdaysMin();
86
- return (0, concat_1["default"])((0, slice_1["default"])(unformattedDaysOfWeek, 1), unformattedDaysOfWeek[0]).map(function (weekDay) { return __("".concat((0, upperFirst_1["default"])(weekDay))); });
87
- }, []);
73
+ return innerCalendarArray.map(function (day) { return (0, utils_1.isDateIsToday)(day.date) ? (__assign(__assign({}, day), { isToday: true })) : day; });
74
+ }, [generalCurrentDay.date, currentMonthData]);
88
75
  return {
89
- monthGridWeekDays: weekDays,
90
- monthGridCalendarDays: getCalendarArray(),
91
- getCalendarArray: getCalendarArray,
92
- getCurrentMonthDataUTC: getCurrentMonthDataUTC,
93
- getWeekFromDate: utils_1.getWeekDaysFromDate
76
+ monthGridWeekDays: (0, utils_1.getWeekDays)(),
77
+ monthGridCalendarDays: calendarArray
94
78
  };
95
79
  };
96
80
  exports["default"] = useMonthGrid;
@@ -1,6 +1,6 @@
1
- import DateControlEnum from '../enums/DateControlType';
2
- declare const useWeekGrid: (currentMonthFirstDayDate: Date) => {
3
- weekGridTwentyFourHoursArray: any[];
1
+ import { IDay } from '../CalendarSystem';
2
+ declare const useWeekGrid: (generalCurrentDay: IDay) => {
3
+ weekGridTwentyFourHoursArray: string[];
4
4
  weekGridCurrentWeekDays: {
5
5
  dayNumber: number;
6
6
  date: Date;
@@ -8,9 +8,5 @@ declare const useWeekGrid: (currentMonthFirstDayDate: Date) => {
8
8
  isToday?: boolean;
9
9
  formattedDisplay?: string;
10
10
  }[];
11
- weekGridControls: {
12
- [key: string]: () => void | DateControlEnum;
13
- };
14
- updateWeekOnMonthChange: (newMonthDate: Date) => void;
15
11
  };
16
12
  export default useWeekGrid;
@@ -1,72 +1,15 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  exports.__esModule = true;
6
- /* eslint-disable no-plusplus */
7
- var react_1 = __importDefault(require("react"));
8
- var dayjs_1 = __importDefault(require("dayjs"));
9
- var DateControlType_1 = __importDefault(require("../enums/DateControlType"));
3
+ var react_1 = require("react");
10
4
  var utils_1 = require("../utils/utils");
11
- var ONE_DAY = 1;
12
- var getTwentyFourHoursArray = function () {
13
- var hoursArray = [];
14
- for (var i = 0; i < 24; i++) {
15
- var formattedHour = (0, dayjs_1["default"])().startOf('day').add(i, 'hour').format('HH:00');
16
- hoursArray.push(formattedHour);
17
- }
18
- return hoursArray;
19
- };
20
- var useWeekGrid = function (currentMonthFirstDayDate) {
21
- var _a;
22
- var _b = react_1["default"].useState((0, utils_1.getFormattedWeekFromDate)()), currentWeek = _b[0], setCurrentWeek = _b[1];
23
- var updateWeekOnMonthChange = react_1["default"].useCallback(function (newMonthDate) {
24
- setCurrentWeek((0, utils_1.getFormattedWeekFromDate)(newMonthDate));
25
- }, []);
26
- var changeMonthAfterWeekChanged = react_1["default"].useCallback(function (formattedWeek) {
27
- var firstDayOfWeek = formattedWeek[0].date;
28
- var currentMonthNumber = currentMonthFirstDayDate.getMonth();
29
- var isWeekOutOfMonth = formattedWeek.every(function (dayOfWeek) { return dayOfWeek.date.getMonth() !== currentMonthNumber; });
30
- if (!isWeekOutOfMonth) {
31
- return;
32
- }
33
- if (currentMonthNumber - firstDayOfWeek.getMonth() === 1) {
34
- var lastDayOfWeekInNewMonth = formattedWeek[formattedWeek.length - 1].date;
35
- var prevMonthControl = (0, utils_1.getSourceCalendarControl)(DateControlType_1["default"].PREV_ONE);
36
- prevMonthControl.click();
37
- updateWeekOnMonthChange(lastDayOfWeekInNewMonth);
38
- }
39
- else {
40
- var firstDayOfWeekInNewMonth = formattedWeek[0].date;
41
- var nextMonthControl = (0, utils_1.getSourceCalendarControl)(DateControlType_1["default"].NEXT_ONE);
42
- nextMonthControl.click();
43
- updateWeekOnMonthChange(firstDayOfWeekInNewMonth);
44
- }
45
- }, [currentMonthFirstDayDate, updateWeekOnMonthChange]);
46
- var setNextWeek = react_1["default"].useCallback(function () {
47
- var lastDayOfWeek = currentWeek[currentWeek.length - 1].date;
48
- lastDayOfWeek.setDate(lastDayOfWeek.getDate() + ONE_DAY);
49
- var formattedNextWeek = (0, utils_1.getFormattedWeekFromDate)(lastDayOfWeek);
50
- setCurrentWeek(formattedNextWeek);
51
- changeMonthAfterWeekChanged(formattedNextWeek);
52
- }, [currentWeek, changeMonthAfterWeekChanged]);
53
- var setPrevWeek = react_1["default"].useCallback(function () {
54
- var firstDayOfWeek = currentWeek[0].date;
55
- firstDayOfWeek.setDate(firstDayOfWeek.getDate() - ONE_DAY);
56
- var formattedPrevWeek = (0, utils_1.getFormattedWeekFromDate)(firstDayOfWeek);
57
- setCurrentWeek(formattedPrevWeek);
58
- changeMonthAfterWeekChanged(formattedPrevWeek);
59
- }, [currentWeek, changeMonthAfterWeekChanged]);
5
+ var useWeekGrid = function (generalCurrentDay) {
6
+ var currentWeek = (0, react_1.useMemo)(function () {
7
+ var formattedWeek = (0, utils_1.getFormattedWeekFromDate)(generalCurrentDay.date);
8
+ return formattedWeek;
9
+ }, [generalCurrentDay.date]);
60
10
  return {
61
- weekGridTwentyFourHoursArray: getTwentyFourHoursArray(),
62
- weekGridCurrentWeekDays: currentWeek,
63
- weekGridControls: (_a = {},
64
- _a[DateControlType_1["default"].NEXT_DOUBLE] = DateControlType_1["default"].NEXT_ONE,
65
- _a[DateControlType_1["default"].NEXT_ONE] = setNextWeek,
66
- _a[DateControlType_1["default"].PREV_ONE] = setPrevWeek,
67
- _a[DateControlType_1["default"].PREV_DOUBLE] = DateControlType_1["default"].PREV_ONE,
68
- _a),
69
- updateWeekOnMonthChange: updateWeekOnMonthChange
11
+ weekGridTwentyFourHoursArray: (0, utils_1.getTwentyFourHoursArray)(),
12
+ weekGridCurrentWeekDays: currentWeek
70
13
  };
71
14
  };
72
15
  exports["default"] = useWeekGrid;
@@ -1,9 +1,11 @@
1
+ import { CSSProperties } from 'react';
1
2
  import { IDay, IEvent, IEventGroup } from '../CalendarSystem';
2
3
  export declare const getWeekDaysFromDate: (date: Date) => IDay[];
3
4
  export declare const isDateIsToday: (date: Date) => boolean;
4
5
  export declare const getOmittedEvent: (event: IEvent | Omit<IEvent, 'color'>) => any;
5
6
  export declare const sortEventsInGroup: (group: IEventGroup) => Omit<IEvent, "color">[];
6
7
  export declare const getSourceCalendarControl: (control: string) => HTMLElement;
8
+ export declare const getFormattedDay: (date?: Date) => IDay;
7
9
  export declare const getFormattedWeekFromDate: (fromDate?: Date) => {
8
10
  dayNumber: number;
9
11
  date: Date;
@@ -11,3 +13,8 @@ export declare const getFormattedWeekFromDate: (fromDate?: Date) => {
11
13
  isToday?: boolean;
12
14
  formattedDisplay?: string;
13
15
  }[];
16
+ export declare const getTwentyFourHoursArray: () => string[];
17
+ export declare const getWeekDays: () => any;
18
+ export declare const getProportionFromEvent: (event: IEvent) => number;
19
+ export declare const getTopMarginFromEvent: (event: IEvent) => CSSProperties;
20
+ export declare const formatEventTime: (date: Date) => any;