@steroidsjs/bootstrap 3.0.9 → 3.0.11
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/content/Calendar/CaptionElement.js +2 -2
- package/content/CalendarSystem/AsideCalendars/AsideCalendars.d.ts +2 -7
- package/content/CalendarSystem/AsideHeader/AsideHeader.d.ts +2 -2
- package/content/CalendarSystem/AsideHeader/AsideHeader.js +1 -1
- package/content/CalendarSystem/CalendarSystemModalView.js +13 -4
- package/content/CalendarSystem/CalendarSystemModalView.scss +6 -0
- package/content/CalendarSystem/CalendarSystemView.js +15 -8
- package/content/CalendarSystem/ContentHeader/ContentHeader.d.ts +2 -5
- package/content/CalendarSystem/ContentHeader/ContentHeader.js +2 -2
- package/content/CalendarSystem/ContentHeader/ContentHeader.scss +1 -0
- package/content/CalendarSystem/DayGrid/DayGrid.d.ts +7 -0
- package/content/CalendarSystem/DayGrid/DayGrid.js +33 -0
- package/content/CalendarSystem/DayGrid/DayGrid.scss +111 -0
- package/content/CalendarSystem/DayGrid/index.d.ts +2 -0
- package/content/CalendarSystem/DayGrid/index.js +7 -0
- package/content/CalendarSystem/DayGrid/views/DayHour/DayHour.d.ts +11 -0
- package/content/CalendarSystem/DayGrid/views/DayHour/DayHour.js +46 -0
- package/content/CalendarSystem/DayGrid/views/DayHour/DayHour.scss +7 -0
- package/content/CalendarSystem/DayGrid/views/DayHour/index.d.ts +2 -0
- package/content/CalendarSystem/DayGrid/views/DayHour/index.js +7 -0
- package/content/CalendarSystem/DayGrid/views/DayHour/views/DayEvent/DayEvent.d.ts +7 -0
- package/content/CalendarSystem/DayGrid/views/DayHour/views/DayEvent/DayEvent.js +30 -0
- package/content/CalendarSystem/DayGrid/views/DayHour/views/DayEvent/DayEvent.scss +25 -0
- package/content/CalendarSystem/DayGrid/views/DayHour/views/DayEvent/index.d.ts +2 -0
- package/content/CalendarSystem/DayGrid/views/DayHour/views/DayEvent/index.js +7 -0
- package/content/CalendarSystem/MonthGrid/MonthGrid.d.ts +2 -9
- package/content/CalendarSystem/MonthGrid/MonthGrid.js +8 -2
- package/content/CalendarSystem/MonthGrid/views/MonthDay/MonthDay.d.ts +4 -6
- package/content/CalendarSystem/MonthGrid/views/MonthDay/MonthDay.js +3 -6
- package/content/CalendarSystem/MonthGrid/views/MonthDay/MonthDay.scss +2 -31
- package/content/CalendarSystem/MonthGrid/views/MonthDay/views/MonthEvent/MonthEvent.d.ts +7 -0
- package/content/CalendarSystem/MonthGrid/views/MonthDay/views/MonthEvent/MonthEvent.js +18 -0
- package/content/CalendarSystem/MonthGrid/views/MonthDay/views/MonthEvent/MonthEvent.scss +39 -0
- package/content/CalendarSystem/MonthGrid/views/MonthDay/views/MonthEvent/index.d.ts +2 -0
- package/content/CalendarSystem/MonthGrid/views/MonthDay/views/MonthEvent/index.js +7 -0
- package/content/CalendarSystem/WeekGrid/WeekGrid.d.ts +2 -9
- package/content/CalendarSystem/WeekGrid/WeekGrid.js +9 -3
- package/content/CalendarSystem/WeekGrid/WeekGrid.scss +3 -2
- package/content/CalendarSystem/WeekGrid/views/WeekHour/WeekHour.d.ts +4 -6
- package/content/CalendarSystem/WeekGrid/views/WeekHour/WeekHour.js +7 -40
- package/content/CalendarSystem/WeekGrid/views/WeekHour/WeekHour.scss +2 -98
- package/content/CalendarSystem/WeekGrid/views/WeekHour/views/WeekEvent/WeekEvent.d.ts +7 -0
- package/content/CalendarSystem/WeekGrid/views/WeekHour/views/WeekEvent/WeekEvent.js +30 -0
- package/content/CalendarSystem/WeekGrid/views/WeekHour/views/WeekEvent/WeekEvent.scss +42 -0
- package/content/CalendarSystem/WeekGrid/views/WeekHour/views/WeekEvent/index.d.ts +2 -0
- package/content/CalendarSystem/WeekGrid/views/WeekHour/views/WeekEvent/index.js +7 -0
- package/content/Chat/views/ChatInput/ChatInputView.js +3 -3
- package/content/Icon/IconView.js +2 -2
- package/form/CheckboxField/CheckboxFieldView.js +1 -1
- package/form/CheckboxTreeField/CheckboxTreeFieldView.js +2 -1
- package/form/FieldSet/FieldSetView.scss +7 -9
- package/form/FileField/FileFieldView.js +1 -1
- package/form/FileField/FileFieldView.scss +11 -3
- package/form/Form/FormView.scss +3 -0
- package/form/InputField/InputFieldView.scss +20 -6
- package/form/PasswordField/PasswordFieldView.js +6 -3
- package/form/PasswordField/PasswordFieldView.scss +34 -15
- package/form/TextField/TextFieldView.scss +1 -2
- package/icons/index.js +1 -0
- package/icons/svgs/export.svg +4 -0
- package/index.scss +1 -0
- package/package.json +2 -2
|
@@ -91,10 +91,10 @@ function CaptionElement(props) {
|
|
|
91
91
|
}, role: 'button', tabIndex: 0 },
|
|
92
92
|
React.createElement("span", { className: bem.element('selected-month') }, months.find(function (month) { return month.id === currentMonth; }).label),
|
|
93
93
|
React.createElement("span", { className: bem.element('selected-year') }, years.find(function (year) { return year === currentYear; }))),
|
|
94
|
-
React.createElement("div", { className: bem.element('container-icons') }, icons.map(function (icon, iconIndex) { return (React.createElement(Icon_1["default"], { key: iconIndex, name: icon.name, onClick: function (e) {
|
|
94
|
+
React.createElement("div", { className: bem.element('container-icons'), "data-test": 'fds' }, icons.map(function (icon, iconIndex) { return (React.createElement(Icon_1["default"], { key: iconIndex, name: icon.name, onClick: function (e) {
|
|
95
95
|
e.preventDefault();
|
|
96
96
|
icon.onClick();
|
|
97
|
-
}, className: bem.element('button'),
|
|
97
|
+
}, className: bem.element('button'), dataIcon: 'control-' + icon.sourceControl })); }))),
|
|
98
98
|
isCaptionPanelVisible && (React.createElement("div", { className: bem.element('panel', { 'full-height': !props.showCalendarFooter }) },
|
|
99
99
|
React.createElement("div", { className: bem.element('panel-header', 'months') }, __('Месяц')),
|
|
100
100
|
React.createElement("div", { className: bem.element('panel-header', 'years') }, __('Год')),
|
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { ICalendarSystemViewProps } from '@steroidsjs/core/ui/content/CalendarSystem/CalendarSystem';
|
|
3
3
|
import './AsideCalendars.scss';
|
|
4
|
-
|
|
5
|
-
eventGroups: IEventGroup[];
|
|
6
|
-
eventGroupsTitle: string;
|
|
7
|
-
onChangeEventGroupsIds: (selectedIds: number[]) => void;
|
|
8
|
-
openCreateEventGroupModal: () => void;
|
|
9
|
-
}
|
|
4
|
+
type IAsideCalendarsProps = Pick<ICalendarSystemViewProps, 'eventGroups' | 'eventGroupsTitle' | 'onChangeEventGroupsIds' | 'openCreateEventGroupModal'>;
|
|
10
5
|
declare function AsideCalendars(props: IAsideCalendarsProps): JSX.Element;
|
|
11
6
|
declare const _default: React.MemoExoticComponent<typeof AsideCalendars>;
|
|
12
7
|
export default _default;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { ICalendarSystemViewProps } from '@steroidsjs/core/ui/content/CalendarSystem/CalendarSystem';
|
|
2
3
|
import './AsideHeader.scss';
|
|
3
|
-
interface IAsideHeaderProps {
|
|
4
|
-
onClick?: () => void;
|
|
4
|
+
interface IAsideHeaderProps extends Pick<ICalendarSystemViewProps, 'openCreateModal'> {
|
|
5
5
|
className?: string;
|
|
6
6
|
}
|
|
7
7
|
declare function AsideHeader(props: IAsideHeaderProps): JSX.Element;
|
|
@@ -35,6 +35,6 @@ function AsideHeader(props) {
|
|
|
35
35
|
var bem = (0, useBem_1["default"])('AsideHeader');
|
|
36
36
|
return (react_1["default"].createElement("div", { className: bem(bem.block(), props.className) },
|
|
37
37
|
react_1["default"].createElement(Title_1["default"], { content: __('Календарь'), className: bem.element('title') }),
|
|
38
|
-
react_1["default"].createElement(form_1.Button, { icon: "add", size: "sm", label: __('Создать'), className: bem.element('create'), onClick: props.
|
|
38
|
+
react_1["default"].createElement(form_1.Button, { icon: "add", size: "sm", label: __('Создать'), className: bem.element('create'), onClick: function () { return props.openCreateModal(); } })));
|
|
39
39
|
}
|
|
40
40
|
exports["default"] = (0, react_1.memo)(AsideHeader);
|
|
@@ -13,7 +13,7 @@ var react_1 = __importDefault(require("react"));
|
|
|
13
13
|
var useBem_1 = __importDefault(require("@steroidsjs/core/hooks/useBem"));
|
|
14
14
|
var hooks_1 = require("@steroidsjs/core/hooks");
|
|
15
15
|
var form_2 = require("@steroidsjs/core/actions/form");
|
|
16
|
-
var ADD_EVENT_FORM_ID = '
|
|
16
|
+
var ADD_EVENT_FORM_ID = 'add-event-form';
|
|
17
17
|
function CalendarSystemModalView(props) {
|
|
18
18
|
var bem = (0, useBem_1["default"])('CalendarSystemModalView');
|
|
19
19
|
var dispatch = (0, hooks_1.useDispatch)();
|
|
@@ -24,7 +24,7 @@ function CalendarSystemModalView(props) {
|
|
|
24
24
|
var onCloseModal = react_1["default"].useCallback(function () {
|
|
25
25
|
props.onClose();
|
|
26
26
|
dispatch((0, form_2.formSetErrors)(ADD_EVENT_FORM_ID, {}));
|
|
27
|
-
}, []);
|
|
27
|
+
}, [dispatch, props]);
|
|
28
28
|
return (react_1["default"].createElement(Modal_1["default"], { title: props.isCreate ? __('Новое событие') : __('Редактирование события'), onClose: onCloseModal, className: bem.block(), shouldCloseOnEsc: true, shouldCloseOnOverlayClick: true },
|
|
29
29
|
react_1["default"].createElement(form_1.Form, { className: bem.element('default-form'), formId: ADD_EVENT_FORM_ID, onBeforeSubmit: function (data) {
|
|
30
30
|
if (!data.eventGroupId) {
|
|
@@ -46,9 +46,18 @@ function CalendarSystemModalView(props) {
|
|
|
46
46
|
} })),
|
|
47
47
|
react_1["default"].createElement("div", null,
|
|
48
48
|
react_1["default"].createElement(Text_1["default"], { content: __('Время и дата'), className: bem.element('label') }),
|
|
49
|
-
react_1["default"].createElement(form_1.DateTimeField, { attribute: '
|
|
49
|
+
react_1["default"].createElement(form_1.DateTimeField, { attribute: 'startDate', required: true }),
|
|
50
|
+
react_1["default"].createElement(form_1.DateTimeField, { attribute: 'endDate', required: true })),
|
|
50
51
|
react_1["default"].createElement("div", null,
|
|
51
52
|
react_1["default"].createElement(Text_1["default"], { content: __('Описание'), className: bem.element('label') }),
|
|
52
|
-
react_1["default"].createElement(form_1.TextField, { attribute: 'description', required: true }))
|
|
53
|
+
react_1["default"].createElement(form_1.TextField, { attribute: 'description', required: true })),
|
|
54
|
+
react_1["default"].createElement("div", null,
|
|
55
|
+
react_1["default"].createElement(Text_1["default"], { content: __('Пользователи'), className: bem.element('label') }),
|
|
56
|
+
react_1["default"].createElement(form_1.DropDownField, { attribute: 'usersIds', items: props.users.map(function (user) { return ({
|
|
57
|
+
id: user.id,
|
|
58
|
+
label: user.name
|
|
59
|
+
}); }), outline: true, color: "primary", placeholder: '\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0438', itemsContent: {
|
|
60
|
+
type: 'checkbox'
|
|
61
|
+
}, className: bem.element('users-field'), multiple: true, required: true })))));
|
|
53
62
|
}
|
|
54
63
|
exports["default"] = CalendarSystemModalView;
|
|
@@ -37,6 +37,7 @@
|
|
|
37
37
|
width: calc(84%);
|
|
38
38
|
|
|
39
39
|
.TextFieldView textarea {
|
|
40
|
+
min-width: 100%;
|
|
40
41
|
height: 160px;
|
|
41
42
|
}
|
|
42
43
|
}
|
|
@@ -80,5 +81,10 @@
|
|
|
80
81
|
-webkit-box-orient: vertical;
|
|
81
82
|
}
|
|
82
83
|
}
|
|
84
|
+
|
|
85
|
+
#{$root}__users-field.DropDownFieldView {
|
|
86
|
+
width: 600px;
|
|
87
|
+
}
|
|
83
88
|
}
|
|
89
|
+
|
|
84
90
|
}
|
|
@@ -14,6 +14,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
14
14
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
15
|
};
|
|
16
16
|
exports.__esModule = true;
|
|
17
|
+
/* eslint-disable max-len */
|
|
17
18
|
var react_1 = __importDefault(require("react"));
|
|
18
19
|
var useBem_1 = __importDefault(require("@steroidsjs/core/hooks/useBem"));
|
|
19
20
|
var Calendar_1 = __importDefault(require("@steroidsjs/core/ui/content/Calendar"));
|
|
@@ -21,24 +22,30 @@ var CalendarType_1 = __importDefault(require("@steroidsjs/core/ui/content/Calend
|
|
|
21
22
|
var AsideHeader_1 = __importDefault(require("./AsideHeader"));
|
|
22
23
|
var AsideCalendars_1 = __importDefault(require("./AsideCalendars"));
|
|
23
24
|
var ContentHeader_1 = __importDefault(require("./ContentHeader"));
|
|
24
|
-
var MonthGrid_1 = __importDefault(require("./MonthGrid"));
|
|
25
|
-
var WeekGrid_1 = __importDefault(require("./WeekGrid"));
|
|
26
25
|
function CalendarSystemView(props) {
|
|
27
26
|
var bem = (0, useBem_1["default"])('CalendarSystemView');
|
|
27
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
28
|
+
var sharedFunctions = {
|
|
29
|
+
getEventsFromDate: props.getEventsFromDate,
|
|
30
|
+
openEditModal: props.openEditModal,
|
|
31
|
+
openCreateModal: props.openCreateModal
|
|
32
|
+
};
|
|
33
|
+
var renderDayGrid = props.dayGridProps.renderGridView, renderWeekGrid = props.weekGridProps.renderGridView, renderMonthGrid = props.monthGridProps.renderGridView;
|
|
28
34
|
var calendarTypeGrids = react_1["default"].useMemo(function () {
|
|
29
35
|
var _a;
|
|
30
36
|
return (_a = {},
|
|
31
|
-
_a[CalendarType_1["default"].MONTH] = react_1["default"].createElement(
|
|
32
|
-
_a[CalendarType_1["default"].WEEK] = react_1["default"].createElement(
|
|
37
|
+
_a[CalendarType_1["default"].MONTH] = (react_1["default"].createElement(react_1["default"].Fragment, null, renderMonthGrid(__assign(__assign({}, props.monthGridProps), sharedFunctions)))),
|
|
38
|
+
_a[CalendarType_1["default"].WEEK] = (react_1["default"].createElement(react_1["default"].Fragment, null, renderWeekGrid(__assign(__assign({}, props.weekGridProps), sharedFunctions)))),
|
|
39
|
+
_a[CalendarType_1["default"].DAY] = (react_1["default"].createElement(react_1["default"].Fragment, null, renderDayGrid(__assign(__assign(__assign({}, props.dayGridProps), sharedFunctions), { users: props.users })))),
|
|
33
40
|
_a);
|
|
34
|
-
}, [props.monthGridProps, props.weekGridProps]);
|
|
41
|
+
}, [props.dayGridProps, props.monthGridProps, props.users, props.weekGridProps, renderDayGrid, renderMonthGrid, renderWeekGrid, sharedFunctions]);
|
|
35
42
|
return (react_1["default"].createElement("div", { className: bem(bem.block(), props.className), style: props.style },
|
|
36
43
|
react_1["default"].createElement("aside", { className: bem.element('aside') },
|
|
37
|
-
react_1["default"].createElement(AsideHeader_1["default"], {
|
|
38
|
-
react_1["default"].createElement(Calendar_1["default"], { showFooter: false, onMonthChange: props.
|
|
44
|
+
react_1["default"].createElement(AsideHeader_1["default"], { openCreateModal: props.openCreateModal, className: bem.element('aside-header') }),
|
|
45
|
+
react_1["default"].createElement(Calendar_1["default"], { showFooter: false, onMonthChange: props.onCalendarChangedMonth }),
|
|
39
46
|
react_1["default"].createElement(AsideCalendars_1["default"], { eventGroups: props.eventGroups, eventGroupsTitle: props.eventGroupsTitle, onChangeEventGroupsIds: props.onChangeEventGroupsIds, openCreateEventGroupModal: props.openCreateEventGroupModal })),
|
|
40
47
|
react_1["default"].createElement("div", { className: bem.element('content') },
|
|
41
|
-
react_1["default"].createElement(ContentHeader_1["default"], { dateToDisplay: props.dateToDisplay,
|
|
48
|
+
react_1["default"].createElement(ContentHeader_1["default"], { dateToDisplay: props.dateToDisplay, handleCalendarTypeChange: props.handleCalendarTypeChange, onClickControl: props.onClickControl }),
|
|
42
49
|
calendarTypeGrids[props.calendarType])));
|
|
43
50
|
}
|
|
44
51
|
exports["default"] = CalendarSystemView;
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { ICalendarSystemViewProps } from '@steroidsjs/core/ui/content/CalendarSystem/CalendarSystem';
|
|
2
3
|
import './ContentHeader.scss';
|
|
3
|
-
|
|
4
|
-
dateToDisplay: string;
|
|
5
|
-
onChangeCalendarType: (newType: string) => void;
|
|
6
|
-
handleControlClick: (event: React.MouseEvent<HTMLElement>) => void;
|
|
7
|
-
}
|
|
4
|
+
type IContentHeaderProps = Pick<ICalendarSystemViewProps, 'dateToDisplay' | 'handleCalendarTypeChange' | 'onClickControl'>;
|
|
8
5
|
declare function ContentHeader(props: IContentHeaderProps): JSX.Element;
|
|
9
6
|
declare const _default: React.MemoExoticComponent<typeof ContentHeader>;
|
|
10
7
|
export default _default;
|
|
@@ -16,11 +16,11 @@ function ContentHeader(props) {
|
|
|
16
16
|
var bem = (0, useBem_1["default"])('ContentHeader');
|
|
17
17
|
return (react_1["default"].createElement("div", { className: bem.block() },
|
|
18
18
|
react_1["default"].createElement(Text_1["default"], { content: props.dateToDisplay, className: bem.element('month') }),
|
|
19
|
-
react_1["default"].createElement("ul", { className: bem.element('controls'), onClick: props.
|
|
19
|
+
react_1["default"].createElement("ul", { className: bem.element('controls'), onClick: props.onClickControl }, Object.entries(DateControlType_1["default"].getIcons()).map(function (_a, controlIndex) {
|
|
20
20
|
var controlLabel = _a[0], controlIcon = _a[1];
|
|
21
21
|
return (react_1["default"].createElement("li", { key: controlIndex, className: bem.element('controls-item'), "data-control": controlLabel },
|
|
22
22
|
react_1["default"].createElement(content_1.Icon, { className: bem.element('controls-item-icon'), name: controlIcon })));
|
|
23
23
|
})),
|
|
24
|
-
react_1["default"].createElement(nav_1.ButtonGroup, { className: bem.element('measures'), items: CalendarType_1["default"], onClick: props.
|
|
24
|
+
react_1["default"].createElement(nav_1.ButtonGroup, { className: bem.element('measures'), items: CalendarType_1["default"], onClick: props.handleCalendarTypeChange, defaultActiveButton: CalendarType_1["default"].MONTH })));
|
|
25
25
|
}
|
|
26
26
|
exports["default"] = react_1["default"].memo(ContentHeader);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ICalendarSystemViewProps } from '@steroidsjs/core/ui/content/CalendarSystem/CalendarSystem';
|
|
3
|
+
import './DayGrid.scss';
|
|
4
|
+
type IDayGridProps = Pick<ICalendarSystemViewProps, 'openEditModal' | 'openCreateModal' | 'getEventsFromDate' | 'users'> & ICalendarSystemViewProps['dayGridProps'];
|
|
5
|
+
declare function DayGrid(props: IDayGridProps): JSX.Element;
|
|
6
|
+
declare const _default: React.MemoExoticComponent<typeof DayGrid>;
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,33 @@
|
|
|
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 react_1 = __importDefault(require("react"));
|
|
7
|
+
var useBem_1 = __importDefault(require("@steroidsjs/core/hooks/useBem"));
|
|
8
|
+
var typography_1 = require("@steroidsjs/core/ui/typography");
|
|
9
|
+
require("./DayGrid.scss");
|
|
10
|
+
function DayGrid(props) {
|
|
11
|
+
var _a, _b;
|
|
12
|
+
var bem = (0, useBem_1["default"])('DayGrid');
|
|
13
|
+
return (react_1["default"].createElement("div", { className: bem.block() },
|
|
14
|
+
react_1["default"].createElement("div", { className: bem.element('content') },
|
|
15
|
+
react_1["default"].createElement("div", { className: bem.element('hours-time') }, props.dayGridTwentyFourHoursArray.map(function (hour, hourIndex) { return (react_1["default"].createElement("div", { key: hourIndex, className: bem.element('hours-time-item') }, hour)); })),
|
|
16
|
+
react_1["default"].createElement("div", { className: bem.element('table') },
|
|
17
|
+
react_1["default"].createElement("div", { className: bem.element('table-heading'), style: {
|
|
18
|
+
gridTemplateColumns: "repeat(".concat((_a = props.users) === null || _a === void 0 ? void 0 : _a.length, ", 200px)")
|
|
19
|
+
} }, (_b = props.users) === null || _b === void 0 ? void 0 : _b.map(function (user, userIndex) { return (react_1["default"].createElement(typography_1.Text, { key: userIndex, className: bem.element('header') },
|
|
20
|
+
react_1["default"].createElement("span", { className: bem.element('header-wrapper') },
|
|
21
|
+
react_1["default"].createElement("span", { className: bem.element('header-label') }, user.name),
|
|
22
|
+
react_1["default"].createElement("span", { className: bem.element('header-caption') }, user.caption)))); })),
|
|
23
|
+
react_1["default"].createElement("div", { className: bem.element('table-grid') }, props.dayGridTwentyFourHoursArray.map(function (hour, hourIndex) { return (react_1["default"].createElement("div", { key: hourIndex, className: bem.element('table-grid-row') }, props.users.map(function (user, userIndex) { return (react_1["default"].createElement(react_1["default"].Fragment, { key: userIndex }, props.renderHourView({
|
|
24
|
+
hour: hour,
|
|
25
|
+
getEventsFromDate: props.getEventsFromDate,
|
|
26
|
+
user: user,
|
|
27
|
+
openEditModal: props.openEditModal,
|
|
28
|
+
openCreateModal: props.openCreateModal,
|
|
29
|
+
currentDay: props.dayGridCurrentDay,
|
|
30
|
+
renderEventView: props.renderEventView
|
|
31
|
+
}))); }))); }))))));
|
|
32
|
+
}
|
|
33
|
+
exports["default"] = react_1["default"].memo(DayGrid);
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
@use "style/variables";
|
|
2
|
+
|
|
3
|
+
:root {
|
|
4
|
+
--calendar-system-hour-border-color: #dbe2e6;
|
|
5
|
+
--calendar-system-time-background-color: #fff;
|
|
6
|
+
--calendar-system-today-background-color: #dbe2e6;
|
|
7
|
+
--calendar-system-today-border-color: #cbd5db;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
html[data-theme="dark"] {
|
|
11
|
+
--calendar-system-hour-border-color: #333646;
|
|
12
|
+
--calendar-system-time-background-color: #4b4e5e;
|
|
13
|
+
--calendar-system-today-background-color: #191b1f;
|
|
14
|
+
--calendar-system-today-border-color: #333646;
|
|
15
|
+
--calendar-system-today-day-background-color: #651fff;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
$calendar-system-hour-border-color: var(--calendar-system-hour-border-color);
|
|
19
|
+
$calendar-system-time-background-color: var(--calendar-system-time-background-color);
|
|
20
|
+
$calendar-system-today-background-color: var(--calendar-system-today-background-color);
|
|
21
|
+
$calendar-system-today-border-color: var(--calendar-system-today-border-color);
|
|
22
|
+
|
|
23
|
+
$calendar-border-style: 1px solid $calendar-system-hour-border-color;
|
|
24
|
+
$calendar-today-border-style: 1px solid $calendar-system-today-border-color;
|
|
25
|
+
|
|
26
|
+
.DayGrid {
|
|
27
|
+
$root: &;
|
|
28
|
+
@include variables.scrollWrapper(568px, 20px, variables.$scroll-thumb-color, variables.$scroll-track-color);
|
|
29
|
+
|
|
30
|
+
&__content {
|
|
31
|
+
display: flex;
|
|
32
|
+
|
|
33
|
+
#{$root}__hours-time {
|
|
34
|
+
display: flex;
|
|
35
|
+
flex-flow: column nowrap;
|
|
36
|
+
justify-content: space-around;
|
|
37
|
+
flex-shrink: 0;
|
|
38
|
+
margin-right: 8px;
|
|
39
|
+
margin-top: 32px;
|
|
40
|
+
|
|
41
|
+
&-item {
|
|
42
|
+
width: 40px;
|
|
43
|
+
height: 24px;
|
|
44
|
+
border-radius: variables.$radius-small;
|
|
45
|
+
background-color: $calendar-system-time-background-color;
|
|
46
|
+
color: var(--custom-text-color-base);
|
|
47
|
+
font-size: variables.$font-size-xs;
|
|
48
|
+
font-weight: variables.$font-weight-sm;
|
|
49
|
+
line-height: variables.$line-height-xs;
|
|
50
|
+
|
|
51
|
+
display: flex;
|
|
52
|
+
justify-content: center;
|
|
53
|
+
align-items: center;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
&__table {
|
|
59
|
+
&-heading {
|
|
60
|
+
display: grid;
|
|
61
|
+
margin-bottom: 0;
|
|
62
|
+
|
|
63
|
+
#{$root}__header {
|
|
64
|
+
margin-bottom: 0;
|
|
65
|
+
|
|
66
|
+
font-size: variables.$font-size-sm;
|
|
67
|
+
font-weight: variables.$font-weight-md;
|
|
68
|
+
line-height: variables.$line-height-sm;
|
|
69
|
+
|
|
70
|
+
&-label {
|
|
71
|
+
display: block;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
&-caption {
|
|
75
|
+
display: block;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
&-grid {
|
|
81
|
+
width: auto;
|
|
82
|
+
display: grid;
|
|
83
|
+
grid-template-rows: repeat(24, auto);
|
|
84
|
+
|
|
85
|
+
&-row {
|
|
86
|
+
display: flex;
|
|
87
|
+
flex: row nowrap;
|
|
88
|
+
height: 150px;
|
|
89
|
+
|
|
90
|
+
.DayHour__hour {
|
|
91
|
+
flex-basis: 200px;
|
|
92
|
+
flex-shrink: 0;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
//Borders
|
|
96
|
+
&:first-child .DayHour__hour {
|
|
97
|
+
border-top: $calendar-border-style;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.DayHour__hour {
|
|
101
|
+
border-right: $calendar-border-style;
|
|
102
|
+
border-bottom: $calendar-border-style;
|
|
103
|
+
|
|
104
|
+
&:first-child {
|
|
105
|
+
border-left: $calendar-border-style;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
@@ -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 DayGrid_1 = __importDefault(require("./DayGrid"));
|
|
7
|
+
exports["default"] = DayGrid_1["default"];
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ICalendarSystemViewProps, ICalendarUser, IDay } from '@steroidsjs/core/ui/content/CalendarSystem/CalendarSystem';
|
|
3
|
+
import './DayHour.scss';
|
|
4
|
+
interface IDayHourProps extends Pick<ICalendarSystemViewProps, 'openEditModal' | 'openCreateModal' | 'getEventsFromDate'> {
|
|
5
|
+
hour: string;
|
|
6
|
+
user: ICalendarUser;
|
|
7
|
+
currentDay: IDay;
|
|
8
|
+
renderEventView: (componentProps: any) => React.ReactNode;
|
|
9
|
+
}
|
|
10
|
+
export default function DayHour(props: IDayHourProps): JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,46 @@
|
|
|
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 @typescript-eslint/no-shadow */
|
|
7
|
+
var react_1 = __importDefault(require("react"));
|
|
8
|
+
var useBem_1 = __importDefault(require("@steroidsjs/core/hooks/useBem"));
|
|
9
|
+
var calendar_1 = require("@steroidsjs/core/utils/calendar");
|
|
10
|
+
var cloneDeep_1 = __importDefault(require("lodash-es/cloneDeep"));
|
|
11
|
+
var CalendarType_1 = __importDefault(require("@steroidsjs/core/ui/content/CalendarSystem/enums/CalendarType"));
|
|
12
|
+
var get_1 = __importDefault(require("lodash-es/get"));
|
|
13
|
+
require("./DayHour.scss");
|
|
14
|
+
function DayHour(props) {
|
|
15
|
+
var bem = (0, useBem_1["default"])('DayHour');
|
|
16
|
+
var events = react_1["default"].useMemo(function () {
|
|
17
|
+
var eventsIds = props.user.eventsIds;
|
|
18
|
+
var callingDate = new Date(props.currentDay.date);
|
|
19
|
+
var timeArray = props.hour.replace(':', '').split('');
|
|
20
|
+
callingDate.setHours(Number(timeArray[0] + timeArray[1]), 0, 0, 0);
|
|
21
|
+
var _events = props.getEventsFromDate(callingDate, CalendarType_1["default"].DAY)
|
|
22
|
+
.filter(function (event) { return eventsIds.includes(event.id); });
|
|
23
|
+
return {
|
|
24
|
+
events: _events
|
|
25
|
+
};
|
|
26
|
+
}, [props]).events;
|
|
27
|
+
var handleEventClick = react_1["default"].useCallback(function (event) {
|
|
28
|
+
var eventFromHour = event.target;
|
|
29
|
+
var eventId = (0, get_1["default"])(eventFromHour, 'dataset.eventid');
|
|
30
|
+
if (!eventId) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
var requiredEvent = events.filter(function (hourEvent) { return hourEvent.id === Number(eventId); })[0];
|
|
34
|
+
props.openEditModal(requiredEvent);
|
|
35
|
+
}, [events, props]);
|
|
36
|
+
var handleOnContextMenuCreateClick = react_1["default"].useCallback(function (e) {
|
|
37
|
+
e.preventDefault();
|
|
38
|
+
var day = (0, cloneDeep_1["default"])(props.currentDay);
|
|
39
|
+
day.date.setHours(Number((0, calendar_1.convertDate)(props.hour, 'HH:mm', 'H')), 0, 0, 0);
|
|
40
|
+
props.openCreateModal(day);
|
|
41
|
+
}, [props]);
|
|
42
|
+
return (react_1["default"].createElement("div", { className: bem.element('hour'), onClick: handleEventClick, onContextMenu: handleOnContextMenuCreateClick }, events.map(function (event) { return props.renderEventView({
|
|
43
|
+
event: event
|
|
44
|
+
}); })));
|
|
45
|
+
}
|
|
46
|
+
exports["default"] = DayHour;
|
|
@@ -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 DayHour_1 = __importDefault(require("./DayHour"));
|
|
7
|
+
exports["default"] = DayHour_1["default"];
|
|
@@ -0,0 +1,30 @@
|
|
|
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
|
+
var react_1 = __importDefault(require("react"));
|
|
18
|
+
var useBem_1 = __importDefault(require("@steroidsjs/core/hooks/useBem"));
|
|
19
|
+
var utils_1 = require("@steroidsjs/core/ui/content/CalendarSystem/utils/utils");
|
|
20
|
+
var Tooltip_1 = __importDefault(require("@steroidsjs/core/ui/layout/Tooltip/Tooltip"));
|
|
21
|
+
require("./DayEvent.scss");
|
|
22
|
+
function DayEvent(_a) {
|
|
23
|
+
var event = _a.event;
|
|
24
|
+
var bem = (0, useBem_1["default"])('DayEvent');
|
|
25
|
+
return (react_1["default"].createElement(Tooltip_1["default"], { position: 'rightBottom', content: event.title, className: bem.element('tooltip'), key: event.id },
|
|
26
|
+
react_1["default"].createElement("div", { className: bem.element('event'), style: __assign({ backgroundColor: event.color, height: "".concat((0, utils_1.getProportionFromEvent)(event), "%") }, (0, utils_1.getTopMarginFromEvent)(event)), title: event.title, "data-eventid": event.id },
|
|
27
|
+
react_1["default"].createElement("span", { className: bem.element('event-time') }, "".concat((0, utils_1.formatEventTime)(event.startDate), " - ").concat((0, utils_1.formatEventTime)(event.endDate))),
|
|
28
|
+
react_1["default"].createElement("span", { className: bem.element('event-title') }, event.title))));
|
|
29
|
+
}
|
|
30
|
+
exports["default"] = DayEvent;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
@use 'style/variables';
|
|
2
|
+
@use "../../../../../../../scss/mixins";
|
|
3
|
+
|
|
4
|
+
.DayEvent {
|
|
5
|
+
&__tooltip {
|
|
6
|
+
@include mixins.calendar-tooltip();
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
&__event {
|
|
10
|
+
overflow: hidden;
|
|
11
|
+
width: 100%;
|
|
12
|
+
position: absolute;
|
|
13
|
+
height: 100%;
|
|
14
|
+
cursor: pointer;
|
|
15
|
+
|
|
16
|
+
&-title {
|
|
17
|
+
display: block;
|
|
18
|
+
pointer-events: none;
|
|
19
|
+
}
|
|
20
|
+
&-time {
|
|
21
|
+
display: block;
|
|
22
|
+
pointer-events: none;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -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 DayEvent_1 = __importDefault(require("./DayEvent"));
|
|
7
|
+
exports["default"] = DayEvent_1["default"];
|
|
@@ -1,14 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import CalendarEnum from '@steroidsjs/core/ui/content/CalendarSystem/enums/CalendarType';
|
|
2
|
+
import { ICalendarSystemViewProps } from '@steroidsjs/core/ui/content/CalendarSystem/CalendarSystem';
|
|
4
3
|
import './MonthGrid.scss';
|
|
5
|
-
|
|
6
|
-
monthGridWeekDays: string[];
|
|
7
|
-
monthGridCalendarDays: IDay[];
|
|
8
|
-
getEventsFromDate: (dateFromDay: Date, currentCalendarType: CalendarEnum) => IEvent[];
|
|
9
|
-
openEditModal: (event: IEvent) => void;
|
|
10
|
-
openCreateModal: (eventInitialDay?: IDay) => void;
|
|
11
|
-
}
|
|
4
|
+
type IMonthGridProps = Pick<ICalendarSystemViewProps, 'openEditModal' | 'openCreateModal' | 'getEventsFromDate'> & ICalendarSystemViewProps['monthGridProps'];
|
|
12
5
|
declare function MonthGrid(props: IMonthGridProps): JSX.Element;
|
|
13
6
|
declare const _default: React.MemoExoticComponent<typeof MonthGrid>;
|
|
14
7
|
export default _default;
|
|
@@ -26,14 +26,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
exports.__esModule = true;
|
|
29
|
+
/* eslint-disable max-len */
|
|
29
30
|
var react_1 = __importStar(require("react"));
|
|
30
31
|
var useBem_1 = __importDefault(require("@steroidsjs/core/hooks/useBem"));
|
|
31
32
|
require("./MonthGrid.scss");
|
|
32
|
-
var MonthDay_1 = __importDefault(require("./views/MonthDay"));
|
|
33
33
|
function MonthGrid(props) {
|
|
34
34
|
var bem = (0, useBem_1["default"])('MonthGrid');
|
|
35
35
|
return (react_1["default"].createElement("div", { className: bem.block() },
|
|
36
36
|
react_1["default"].createElement("div", { className: bem.element('week-days') }, props.monthGridWeekDays.map(function (day, dayIndex) { return (react_1["default"].createElement("span", { key: dayIndex, className: bem.element('week-days-day') }, day)); })),
|
|
37
|
-
react_1["default"].createElement("div", { className: bem.element('grid') }, props.monthGridCalendarDays.map(function (day, dayIndex) { return (react_1["default"].createElement(
|
|
37
|
+
react_1["default"].createElement("div", { className: bem.element('grid') }, props.monthGridCalendarDays.map(function (day, dayIndex) { return (react_1["default"].createElement(react_1["default"].Fragment, { key: dayIndex }, props.renderHourView({
|
|
38
|
+
openEditModal: props.openEditModal,
|
|
39
|
+
openCreateModal: props.openCreateModal,
|
|
40
|
+
getEventsFromDate: props.getEventsFromDate,
|
|
41
|
+
renderEventView: props.renderEventView,
|
|
42
|
+
day: day
|
|
43
|
+
}))); }))));
|
|
38
44
|
}
|
|
39
45
|
exports["default"] = (0, react_1.memo)(MonthGrid);
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ICalendarSystemViewProps, IDay } from '@steroidsjs/core/ui/content/CalendarSystem/CalendarSystem';
|
|
3
3
|
import './MonthDay.scss';
|
|
4
|
-
interface IMonthDayProps {
|
|
4
|
+
interface IMonthDayProps extends Pick<ICalendarSystemViewProps, 'openEditModal' | 'openCreateModal' | 'getEventsFromDate'> {
|
|
5
5
|
day: IDay;
|
|
6
|
-
|
|
7
|
-
openEditModal: (event: IEvent) => void;
|
|
8
|
-
openCreateModal: (eventInitialDay?: IDay) => void;
|
|
6
|
+
renderEventView: (componentProps: any) => React.ReactNode;
|
|
9
7
|
}
|
|
10
8
|
export default function MonthDay(props: IMonthDayProps): JSX.Element;
|
|
11
9
|
export {};
|
|
@@ -16,7 +16,6 @@ exports.__esModule = true;
|
|
|
16
16
|
var react_1 = __importDefault(require("react"));
|
|
17
17
|
var useBem_1 = __importDefault(require("@steroidsjs/core/hooks/useBem"));
|
|
18
18
|
var CalendarType_1 = __importDefault(require("@steroidsjs/core/ui/content/CalendarSystem/enums/CalendarType"));
|
|
19
|
-
var Tooltip_1 = __importDefault(require("@steroidsjs/core/ui/layout/Tooltip/Tooltip"));
|
|
20
19
|
var slice_1 = __importDefault(require("lodash-es/slice"));
|
|
21
20
|
var get_1 = __importDefault(require("lodash-es/get"));
|
|
22
21
|
var form_1 = require("@steroidsjs/core/ui/form");
|
|
@@ -39,10 +38,6 @@ function MonthDay(props) {
|
|
|
39
38
|
};
|
|
40
39
|
}, [getEventsFromDate, props.day.date]), events = _b.events, hasSixEvents = _b.hasSixEvents;
|
|
41
40
|
var formattedExpandLabel = react_1["default"].useMemo(function () { return (0, getFormattedExpandLabel_1.getFormattedExpandRestLabel)((0, slice_1["default"])(__spreadArray([], events, true), SIXTH_ELEMENT_INDEX)); }, [events]);
|
|
42
|
-
var renderEvent = react_1["default"].useCallback(function (event, eventIndex) { return (react_1["default"].createElement(Tooltip_1["default"], { key: event.id, position: 'rightBottom', content: event.title, className: bem.element('tooltip') },
|
|
43
|
-
react_1["default"].createElement("span", { className: bem.element('event'), "data-eventid": event.id },
|
|
44
|
-
react_1["default"].createElement("span", { className: bem.element('event-dot'), style: { backgroundColor: event.color } }),
|
|
45
|
-
event.title))); }, [bem]);
|
|
46
41
|
var handleEventClick = react_1["default"].useCallback(function (event) {
|
|
47
42
|
var eventFromHour = event.target;
|
|
48
43
|
var eventId = (0, get_1["default"])(eventFromHour, 'dataset.eventid');
|
|
@@ -67,7 +62,9 @@ function MonthDay(props) {
|
|
|
67
62
|
react_1["default"].createElement("div", { className: bem.element('content', {
|
|
68
63
|
isExpanded: isExpanded
|
|
69
64
|
}) },
|
|
70
|
-
events.map(
|
|
65
|
+
events.map(function (event) { return props.renderEventView({
|
|
66
|
+
event: event
|
|
67
|
+
}); }),
|
|
71
68
|
hasSixEvents && !isExpanded && (react_1["default"].createElement(form_1.Button, { link: true, className: bem.element('expand-button'), onClick: function () { return setIsExpanded(true); } }, formattedExpandLabel))))));
|
|
72
69
|
}
|
|
73
70
|
exports["default"] = MonthDay;
|