@steroidsjs/bootstrap 3.0.10 → 3.0.12

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 (62) hide show
  1. package/content/Calendar/CaptionElement.js +2 -2
  2. package/content/CalendarSystem/AsideCalendars/AsideCalendars.d.ts +2 -7
  3. package/content/CalendarSystem/AsideHeader/AsideHeader.d.ts +2 -2
  4. package/content/CalendarSystem/AsideHeader/AsideHeader.js +1 -1
  5. package/content/CalendarSystem/CalendarSystemModalView.js +13 -4
  6. package/content/CalendarSystem/CalendarSystemModalView.scss +6 -0
  7. package/content/CalendarSystem/CalendarSystemView.js +15 -8
  8. package/content/CalendarSystem/ContentHeader/ContentHeader.d.ts +2 -5
  9. package/content/CalendarSystem/ContentHeader/ContentHeader.js +2 -2
  10. package/content/CalendarSystem/ContentHeader/ContentHeader.scss +1 -0
  11. package/content/CalendarSystem/DayGrid/DayGrid.d.ts +7 -0
  12. package/content/CalendarSystem/DayGrid/DayGrid.js +33 -0
  13. package/content/CalendarSystem/DayGrid/DayGrid.scss +111 -0
  14. package/content/CalendarSystem/DayGrid/index.d.ts +2 -0
  15. package/content/CalendarSystem/DayGrid/index.js +7 -0
  16. package/content/CalendarSystem/DayGrid/views/DayHour/DayHour.d.ts +11 -0
  17. package/content/CalendarSystem/DayGrid/views/DayHour/DayHour.js +46 -0
  18. package/content/CalendarSystem/DayGrid/views/DayHour/DayHour.scss +7 -0
  19. package/content/CalendarSystem/DayGrid/views/DayHour/index.d.ts +2 -0
  20. package/content/CalendarSystem/DayGrid/views/DayHour/index.js +7 -0
  21. package/content/CalendarSystem/DayGrid/views/DayHour/views/DayEvent/DayEvent.d.ts +7 -0
  22. package/content/CalendarSystem/DayGrid/views/DayHour/views/DayEvent/DayEvent.js +30 -0
  23. package/content/CalendarSystem/DayGrid/views/DayHour/views/DayEvent/DayEvent.scss +25 -0
  24. package/content/CalendarSystem/DayGrid/views/DayHour/views/DayEvent/index.d.ts +2 -0
  25. package/content/CalendarSystem/DayGrid/views/DayHour/views/DayEvent/index.js +7 -0
  26. package/content/CalendarSystem/MonthGrid/MonthGrid.d.ts +2 -9
  27. package/content/CalendarSystem/MonthGrid/MonthGrid.js +8 -2
  28. package/content/CalendarSystem/MonthGrid/views/MonthDay/MonthDay.d.ts +4 -6
  29. package/content/CalendarSystem/MonthGrid/views/MonthDay/MonthDay.js +3 -6
  30. package/content/CalendarSystem/MonthGrid/views/MonthDay/MonthDay.scss +2 -31
  31. package/content/CalendarSystem/MonthGrid/views/MonthDay/views/MonthEvent/MonthEvent.d.ts +7 -0
  32. package/content/CalendarSystem/MonthGrid/views/MonthDay/views/MonthEvent/MonthEvent.js +18 -0
  33. package/content/CalendarSystem/MonthGrid/views/MonthDay/views/MonthEvent/MonthEvent.scss +39 -0
  34. package/content/CalendarSystem/MonthGrid/views/MonthDay/views/MonthEvent/index.d.ts +2 -0
  35. package/content/CalendarSystem/MonthGrid/views/MonthDay/views/MonthEvent/index.js +7 -0
  36. package/content/CalendarSystem/WeekGrid/WeekGrid.d.ts +2 -9
  37. package/content/CalendarSystem/WeekGrid/WeekGrid.js +9 -3
  38. package/content/CalendarSystem/WeekGrid/WeekGrid.scss +3 -2
  39. package/content/CalendarSystem/WeekGrid/views/WeekHour/WeekHour.d.ts +4 -6
  40. package/content/CalendarSystem/WeekGrid/views/WeekHour/WeekHour.js +7 -40
  41. package/content/CalendarSystem/WeekGrid/views/WeekHour/WeekHour.scss +2 -98
  42. package/content/CalendarSystem/WeekGrid/views/WeekHour/views/WeekEvent/WeekEvent.d.ts +7 -0
  43. package/content/CalendarSystem/WeekGrid/views/WeekHour/views/WeekEvent/WeekEvent.js +30 -0
  44. package/content/CalendarSystem/WeekGrid/views/WeekHour/views/WeekEvent/WeekEvent.scss +42 -0
  45. package/content/CalendarSystem/WeekGrid/views/WeekHour/views/WeekEvent/index.d.ts +2 -0
  46. package/content/CalendarSystem/WeekGrid/views/WeekHour/views/WeekEvent/index.js +7 -0
  47. package/content/Chat/views/ChatInput/ChatInputView.js +3 -3
  48. package/content/Icon/IconView.js +2 -2
  49. package/form/CheckboxField/CheckboxFieldView.js +1 -1
  50. package/form/CheckboxTreeField/CheckboxTreeFieldView.js +2 -1
  51. package/form/FieldSet/FieldSetView.scss +7 -9
  52. package/form/FileField/FileFieldView.js +1 -1
  53. package/form/FileField/FileFieldView.scss +11 -3
  54. package/form/InputField/InputFieldView.scss +20 -6
  55. package/form/PasswordField/PasswordFieldView.js +6 -3
  56. package/form/PasswordField/PasswordFieldView.scss +34 -15
  57. package/form/TextField/TextFieldView.scss +1 -2
  58. package/icons/index.js +1 -0
  59. package/icons/svgs/export.svg +4 -0
  60. package/list/Grid/GridView.js +3 -2
  61. package/list/List/ListView.js +1 -1
  62. 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'), "data-sourcecontrol": icon.sourceControl })); }))),
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 { IEventGroup } from '@steroidsjs/core/ui/content/CalendarSystem/CalendarSystem';
2
+ import { ICalendarSystemViewProps } from '@steroidsjs/core/ui/content/CalendarSystem/CalendarSystem';
3
3
  import './AsideCalendars.scss';
4
- interface IAsideCalendarsProps {
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.onClick })));
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 = 'AddEventForm';
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: 'date', required: true })),
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(MonthGrid_1["default"], __assign({}, props.monthGridProps)),
32
- _a[CalendarType_1["default"].WEEK] = react_1["default"].createElement(WeekGrid_1["default"], __assign({}, props.weekGridProps)),
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"], { onClick: props.openCreateModal, className: bem.element('aside-header') }),
38
- react_1["default"].createElement(Calendar_1["default"], { showFooter: false, onMonthChange: props.onInnerCalendarChangeMonth }),
44
+ react_1["default"].createElement(AsideHeader_1["default"], { openCreateModal: props.openCreateModal, className: bem.element('aside-header') }),
45
+ react_1["default"].createElement(Calendar_1["default"], __assign({ showFooter: false, onTodayButtonClick: props.onCalendarChangedMonth, onMonthChange: props.onCalendarChangedMonth }, props.asideCalendarProps)),
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, onChangeCalendarType: props.handleCalendarTypeChange, handleControlClick: props.handleControlClick }),
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
- interface IContentHeaderProps {
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.handleControlClick }, Object.entries(DateControlType_1["default"].getIcons()).map(function (_a, controlIndex) {
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.onChangeCalendarType, defaultActiveButton: CalendarType_1["default"].MONTH })));
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);
@@ -25,6 +25,7 @@ $calendar-system-caption-arrow-background-color: var(--calendar-system-caption-a
25
25
  margin-right: 93px;
26
26
  margin-bottom: 0;
27
27
  width: 190px;
28
+ white-space: nowrap;
28
29
  }
29
30
 
30
31
  &__controls {
@@ -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,2 @@
1
+ import DayGrid from './DayGrid';
2
+ export default DayGrid;
@@ -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 'style/variables';
2
+
3
+ .DayHour {
4
+ &__hour {
5
+ position: relative;
6
+ }
7
+ }
@@ -0,0 +1,2 @@
1
+ import DayHour from './DayHour';
2
+ export 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,7 @@
1
+ import { IEvent } from '@steroidsjs/core/ui/content/CalendarSystem/CalendarSystem';
2
+ import './DayEvent.scss';
3
+ interface IDayEventProps {
4
+ event: IEvent;
5
+ }
6
+ export default function DayEvent({ event }: IDayEventProps): JSX.Element;
7
+ export {};
@@ -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,2 @@
1
+ import DayEvent from './DayEvent';
2
+ export default DayEvent;
@@ -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 { IDay, IEvent } from '@steroidsjs/core/ui/content/CalendarSystem/CalendarSystem';
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
- interface IMonthGridProps {
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(MonthDay_1["default"], { key: dayIndex, openEditModal: props.openEditModal, getEventsFromDate: props.getEventsFromDate, openCreateModal: props.openCreateModal, day: day })); }))));
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 CalendarEnum from '@steroidsjs/core/ui/content/CalendarSystem/enums/CalendarType';
2
- import { IDay, IEvent } from '@steroidsjs/core/ui/content/CalendarSystem/CalendarSystem';
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
- getEventsFromDate: (dateFromDay: Date, currentCalendarType: CalendarEnum) => IEvent[];
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(renderEvent),
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;