@steroidsjs/bootstrap 3.0.0-beta.101 → 3.0.0-beta.102
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 +6 -3
- package/content/CalendarSystem/AsideCalendars/AsideCalendars.d.ts +12 -0
- package/content/CalendarSystem/AsideCalendars/AsideCalendars.js +41 -0
- package/content/CalendarSystem/AsideCalendars/AsideCalendars.scss +81 -0
- package/content/CalendarSystem/AsideCalendars/index.d.ts +2 -0
- package/content/CalendarSystem/AsideCalendars/index.js +7 -0
- package/content/CalendarSystem/AsideHeader/AsideHeader.d.ts +9 -0
- package/content/CalendarSystem/AsideHeader/AsideHeader.js +40 -0
- package/content/CalendarSystem/AsideHeader/AsideHeader.scss +41 -0
- package/content/CalendarSystem/AsideHeader/index.d.ts +2 -0
- package/content/CalendarSystem/AsideHeader/index.js +7 -0
- package/content/CalendarSystem/CalendarSystemModalView.d.ts +3 -0
- package/content/CalendarSystem/CalendarSystemModalView.js +14 -0
- package/content/CalendarSystem/CalendarSystemModalView.scss +5 -0
- package/content/CalendarSystem/CalendarSystemView.d.ts +2 -0
- package/content/CalendarSystem/CalendarSystemView.js +28 -0
- package/content/CalendarSystem/CalendarSystemView.scss +50 -0
- package/content/CalendarSystem/ContentHeader/ContentHeader.d.ts +10 -0
- package/content/CalendarSystem/ContentHeader/ContentHeader.js +29 -0
- package/content/CalendarSystem/ContentHeader/ContentHeader.scss +57 -0
- package/content/CalendarSystem/ContentHeader/index.d.ts +2 -0
- package/content/CalendarSystem/ContentHeader/index.js +7 -0
- package/content/CalendarSystem/MonthGrid/MonthGrid.d.ts +12 -0
- package/content/CalendarSystem/MonthGrid/MonthGrid.js +50 -0
- package/content/CalendarSystem/MonthGrid/MonthGrid.scss +131 -0
- package/content/CalendarSystem/MonthGrid/index.d.ts +2 -0
- package/content/CalendarSystem/MonthGrid/index.js +7 -0
- package/content/CalendarSystem/WeekGrid/WeekGrid.d.ts +12 -0
- package/content/CalendarSystem/WeekGrid/WeekGrid.js +25 -0
- package/content/CalendarSystem/WeekGrid/WeekGrid.scss +225 -0
- package/content/CalendarSystem/WeekGrid/index.d.ts +2 -0
- package/content/CalendarSystem/WeekGrid/index.js +7 -0
- package/content/CalendarSystem/WeekGrid/views/WeekHour/WeekHour.d.ts +12 -0
- package/content/CalendarSystem/WeekGrid/views/WeekHour/WeekHour.js +38 -0
- package/content/CalendarSystem/WeekGrid/views/WeekHour/WeekHour.scss +14 -0
- package/content/CalendarSystem/WeekGrid/views/WeekHour/index.d.ts +2 -0
- package/content/CalendarSystem/WeekGrid/views/WeekHour/index.js +7 -0
- package/content/Icon/IconView.js +18 -2
- package/form/CheckboxField/CheckboxFieldView.js +5 -2
- package/form/CheckboxField/CheckboxFieldView.scss +27 -0
- package/index.d.ts +3 -0
- package/index.js +3 -0
- package/index.scss +2 -0
- package/package.json +2 -2
|
@@ -31,6 +31,7 @@ var react_1 = require("react");
|
|
|
31
31
|
var hooks_1 = require("@steroidsjs/core/hooks");
|
|
32
32
|
var Icon_1 = __importDefault(require("@steroidsjs/core/ui/content/Icon"));
|
|
33
33
|
var upperFirst_1 = __importDefault(require("lodash-es/upperFirst"));
|
|
34
|
+
var DateControlType_1 = __importDefault(require("@steroidsjs/core/ui/content/CalendarSystem/enums/DateControlType"));
|
|
34
35
|
function CaptionElement(props) {
|
|
35
36
|
var bem = (0, hooks_1.useBem)('CaptionElement');
|
|
36
37
|
var localeUtils = props.localeUtils, locale = props.locale, fromYear = props.fromYear, toYear = props.toYear, date = props.date, isCaptionPanelVisible = props.isCaptionPanelVisible, toggleCaptionPanel = props.toggleCaptionPanel;
|
|
@@ -60,20 +61,22 @@ function CaptionElement(props) {
|
|
|
60
61
|
var icons = (0, react_1.useMemo)(function () { return [
|
|
61
62
|
{
|
|
62
63
|
name: 'double_arrow_left',
|
|
64
|
+
sourceControl: DateControlType_1["default"].PREV_DOUBLE,
|
|
63
65
|
onClick: function () { return handleYearChange(currentYear - 1); }
|
|
64
66
|
},
|
|
65
67
|
{
|
|
66
68
|
name: 'arrow_left_24x24',
|
|
67
|
-
|
|
69
|
+
sourceControl: DateControlType_1["default"].PREV_ONE,
|
|
68
70
|
onClick: function () { return handleMonthChange(currentMonth - 1); }
|
|
69
71
|
},
|
|
70
72
|
{
|
|
71
73
|
name: 'arrow_right_24x24',
|
|
72
|
-
|
|
74
|
+
sourceControl: DateControlType_1["default"].NEXT_ONE,
|
|
73
75
|
onClick: function () { return handleMonthChange(currentMonth + 1); }
|
|
74
76
|
},
|
|
75
77
|
{
|
|
76
78
|
name: 'double_arrow_right',
|
|
79
|
+
sourceControl: DateControlType_1["default"].NEXT_DOUBLE,
|
|
77
80
|
onClick: function () { return handleYearChange(currentYear + 1); }
|
|
78
81
|
},
|
|
79
82
|
]; }, [currentYear, handleYearChange, currentMonth, handleMonthChange]);
|
|
@@ -91,7 +94,7 @@ function CaptionElement(props) {
|
|
|
91
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) {
|
|
92
95
|
e.preventDefault();
|
|
93
96
|
icon.onClick();
|
|
94
|
-
}, className: bem.element('button', icon.
|
|
97
|
+
}, className: bem.element('button'), "data-sourcecontrol": icon.sourceControl })); }))),
|
|
95
98
|
isCaptionPanelVisible && (React.createElement("div", { className: bem.element('panel', { 'full-height': !props.showCalendarFooter }) },
|
|
96
99
|
React.createElement("div", { className: bem.element('panel-header', 'months') }, __('Месяц')),
|
|
97
100
|
React.createElement("div", { className: bem.element('panel-header', 'years') }, __('Год')),
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { IEventGroup } from '@steroidsjs/core/ui/content/CalendarSystem/CalendarSystem';
|
|
3
|
+
import './AsideCalendars.scss';
|
|
4
|
+
interface IAsideCalendarsProps {
|
|
5
|
+
eventGroups: IEventGroup[];
|
|
6
|
+
eventGroupsTitle: string;
|
|
7
|
+
selectedCalendarGroupsIds: number[];
|
|
8
|
+
onChangeEventGroupsIds: (selectedIds: number[]) => void;
|
|
9
|
+
}
|
|
10
|
+
declare function AsideCalendars(props: IAsideCalendarsProps): JSX.Element;
|
|
11
|
+
declare const _default: React.MemoExoticComponent<typeof AsideCalendars>;
|
|
12
|
+
export default _default;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
exports.__esModule = true;
|
|
29
|
+
var react_1 = __importStar(require("react"));
|
|
30
|
+
var useBem_1 = __importDefault(require("@steroidsjs/core/hooks/useBem"));
|
|
31
|
+
var content_1 = require("@steroidsjs/core/ui/content");
|
|
32
|
+
var form_1 = require("@steroidsjs/core/ui/form");
|
|
33
|
+
require("./AsideCalendars.scss");
|
|
34
|
+
function AsideCalendars(props) {
|
|
35
|
+
var bem = (0, useBem_1["default"])('AsideCalendars');
|
|
36
|
+
return (react_1["default"].createElement("div", { className: bem.block() },
|
|
37
|
+
react_1["default"].createElement(content_1.Accordion, null,
|
|
38
|
+
react_1["default"].createElement(content_1.AccordionItem, { title: props.eventGroupsTitle },
|
|
39
|
+
react_1["default"].createElement(form_1.CheckboxListField, { items: props.eventGroups, selectedIds: props.selectedCalendarGroupsIds, onChange: function (selectedIds) { return props.onChangeEventGroupsIds(selectedIds); } })))));
|
|
40
|
+
}
|
|
41
|
+
exports["default"] = (0, react_1.memo)(AsideCalendars);
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
@use "style/variables";
|
|
2
|
+
|
|
3
|
+
:root {
|
|
4
|
+
--calendar-system-icon-background-color: #f1f5f7;
|
|
5
|
+
--calendar-system-icon-chevron-color: #323232;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
html[data-theme="dark"] {
|
|
9
|
+
--calendar-system-icon-background-color: #4b4e5e;
|
|
10
|
+
--calendar-system-separator-color: rgba(255, 255, 255, 0.1);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
$calendar-system-icon-background-color: var(--calendar-system-icon-background-color);
|
|
14
|
+
$calendar-system-separator-color: var(--calendar-system-separator-color);
|
|
15
|
+
|
|
16
|
+
.AsideCalendars {
|
|
17
|
+
position: relative;
|
|
18
|
+
|
|
19
|
+
&::before {
|
|
20
|
+
content: "";
|
|
21
|
+
display: block;
|
|
22
|
+
position: relative;
|
|
23
|
+
height: 1px;
|
|
24
|
+
width: 100%;
|
|
25
|
+
margin: 32px 0px;
|
|
26
|
+
|
|
27
|
+
background-color: $calendar-system-separator-color;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.AccordionItemView {
|
|
31
|
+
width: 100%;
|
|
32
|
+
|
|
33
|
+
&_opened {
|
|
34
|
+
overflow: visible;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
&__icon-chevron {
|
|
38
|
+
box-shadow: none;
|
|
39
|
+
|
|
40
|
+
svg {
|
|
41
|
+
rect {
|
|
42
|
+
fill: $calendar-system-icon-background-color;
|
|
43
|
+
}
|
|
44
|
+
path {
|
|
45
|
+
stroke: variables.$icon-color;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
&__icon-wrapper {
|
|
51
|
+
top: 14px;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
&__header-container {
|
|
55
|
+
background-color: variables.$element-background-color;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
&__content {
|
|
59
|
+
padding: 0;
|
|
60
|
+
padding-top: 0;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
&__content_visible {
|
|
64
|
+
padding: 0;
|
|
65
|
+
border: none;
|
|
66
|
+
overflow: visible;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
&__title-container {
|
|
70
|
+
width: 238px;
|
|
71
|
+
padding-left: 0;
|
|
72
|
+
padding-top: 12px;
|
|
73
|
+
|
|
74
|
+
p {
|
|
75
|
+
font-size: variables.$font-size-16;
|
|
76
|
+
font-weight: variables.$font-weight-lg;
|
|
77
|
+
line-height: variables.$line-height-22;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
@@ -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 AsideCalendars_1 = __importDefault(require("./AsideCalendars"));
|
|
7
|
+
exports["default"] = AsideCalendars_1["default"];
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './AsideHeader.scss';
|
|
3
|
+
interface IAsideHeaderProps {
|
|
4
|
+
onClick?: () => void;
|
|
5
|
+
className?: string;
|
|
6
|
+
}
|
|
7
|
+
declare function AsideHeader(props: IAsideHeaderProps): JSX.Element;
|
|
8
|
+
declare const _default: React.MemoExoticComponent<typeof AsideHeader>;
|
|
9
|
+
export default _default;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
exports.__esModule = true;
|
|
29
|
+
var react_1 = __importStar(require("react"));
|
|
30
|
+
var useBem_1 = __importDefault(require("@steroidsjs/core/hooks/useBem"));
|
|
31
|
+
var Title_1 = __importDefault(require("@steroidsjs/core/ui/typography/Title/Title"));
|
|
32
|
+
var form_1 = require("@steroidsjs/core/ui/form");
|
|
33
|
+
require("./AsideHeader.scss");
|
|
34
|
+
function AsideHeader(props) {
|
|
35
|
+
var bem = (0, useBem_1["default"])('AsideHeader');
|
|
36
|
+
return (react_1["default"].createElement("div", { className: bem(bem.block(), props.className) },
|
|
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 })));
|
|
39
|
+
}
|
|
40
|
+
exports["default"] = (0, react_1.memo)(AsideHeader);
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
@use "style/variables";
|
|
2
|
+
|
|
3
|
+
.AsideHeader {
|
|
4
|
+
display: flex;
|
|
5
|
+
align-items: center;
|
|
6
|
+
justify-content: space-between;
|
|
7
|
+
|
|
8
|
+
&__title {
|
|
9
|
+
font-size: variables.$font-size-24;
|
|
10
|
+
font-weight: variables.$font-weight-lg;
|
|
11
|
+
line-height: variables.$line-height-32;
|
|
12
|
+
color: variables.$text-color;
|
|
13
|
+
margin-bottom: 0;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.ButtonView {
|
|
17
|
+
width: 94px;
|
|
18
|
+
height: 34px;
|
|
19
|
+
border: none;
|
|
20
|
+
padding: 5px 12px;
|
|
21
|
+
|
|
22
|
+
&__label {
|
|
23
|
+
gap: 4px;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
&__text {
|
|
27
|
+
font-size: variables.$font-size-14;
|
|
28
|
+
font-weight: variables.$font-weight-sm;
|
|
29
|
+
line-height: variables.$line-height-24;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
&__icon {
|
|
33
|
+
margin: 0;
|
|
34
|
+
svg path,
|
|
35
|
+
rect,
|
|
36
|
+
circle {
|
|
37
|
+
stroke: #FFFFFF;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -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 AsideHeader_1 = __importDefault(require("./AsideHeader"));
|
|
7
|
+
exports["default"] = AsideHeader_1["default"];
|
|
@@ -0,0 +1,14 @@
|
|
|
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
|
+
require("./CalendarSystemModalView.scss");
|
|
9
|
+
var Modal_1 = __importDefault(require("@steroidsjs/core/ui/modal/Modal"));
|
|
10
|
+
function CalendarSystemModalView(props) {
|
|
11
|
+
var bem = (0, useBem_1["default"])('CalendarSystemModalView');
|
|
12
|
+
return (react_1["default"].createElement(Modal_1["default"], { title: __('Новое событие'), onClose: props.onClose }));
|
|
13
|
+
}
|
|
14
|
+
exports["default"] = CalendarSystemModalView;
|
|
@@ -0,0 +1,28 @@
|
|
|
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 Calendar_1 = __importDefault(require("@steroidsjs/core/ui/content/Calendar"));
|
|
9
|
+
var CalendarType_1 = __importDefault(require("@steroidsjs/core/ui/content/CalendarSystem/enums/CalendarType"));
|
|
10
|
+
var AsideHeader_1 = __importDefault(require("./AsideHeader"));
|
|
11
|
+
var AsideCalendars_1 = __importDefault(require("./AsideCalendars"));
|
|
12
|
+
var ContentHeader_1 = __importDefault(require("./ContentHeader"));
|
|
13
|
+
var MonthGrid_1 = __importDefault(require("./MonthGrid"));
|
|
14
|
+
var WeekGrid_1 = __importDefault(require("./WeekGrid"));
|
|
15
|
+
function CalendarSystemView(props) {
|
|
16
|
+
var bem = (0, useBem_1["default"])('CalendarSystemView');
|
|
17
|
+
return (react_1["default"].createElement("div", { className: bem(bem.block(), props.className), style: props.style },
|
|
18
|
+
react_1["default"].createElement("aside", { className: bem.element('aside') },
|
|
19
|
+
react_1["default"].createElement(AsideHeader_1["default"], { onClick: props.onClickCreate, className: bem.element('aside-header') }),
|
|
20
|
+
react_1["default"].createElement(Calendar_1["default"], { showFooter: false, onMonthChange: props.onMonthChange }),
|
|
21
|
+
react_1["default"].createElement(AsideCalendars_1["default"], { eventGroups: props.eventGroups, eventGroupsTitle: props.eventGroupsTitle, selectedCalendarGroupsIds: props.selectedCalendarGroups, onChangeEventGroupsIds: props.onChangeEventGroupsIds })),
|
|
22
|
+
react_1["default"].createElement("div", { className: bem.element('content') },
|
|
23
|
+
react_1["default"].createElement(ContentHeader_1["default"], { dateToDisplay: props.dateToDisplay, onChangeCalendarType: props.onChangeCalendarType, applyControl: props.applyControl }),
|
|
24
|
+
props.calendarType === CalendarType_1["default"].MONTH
|
|
25
|
+
? (react_1["default"].createElement(MonthGrid_1["default"], { monthCalendarDays: props.monthCalendarDays, getEventsFromDate: props.getEventsFromDate, weekDays: props.weekDays }))
|
|
26
|
+
: (react_1["default"].createElement(WeekGrid_1["default"], { allHours: props.allHours, getEventsFromDate: props.getEventsFromDate, onClickHour: props.onClickHour, currentWeekDays: props.currentWeekDays })))));
|
|
27
|
+
}
|
|
28
|
+
exports["default"] = CalendarSystemView;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
@use 'style/variables';
|
|
2
|
+
|
|
3
|
+
:root {
|
|
4
|
+
--calendar-system-content-background-color: #f1f5f7;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
html[data-theme="dark"] {
|
|
8
|
+
--calendar-system-content-background-color: #101216;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
$calendar-system-content-background-color: var(--calendar-system-content-background-color);
|
|
12
|
+
|
|
13
|
+
.CalendarSystemView {
|
|
14
|
+
$root: &;
|
|
15
|
+
max-height: 1080px;
|
|
16
|
+
|
|
17
|
+
display: flex;
|
|
18
|
+
&__aside {
|
|
19
|
+
display: flex;
|
|
20
|
+
flex-flow: column nowrap;
|
|
21
|
+
flex-shrink: 0;
|
|
22
|
+
gap: 32px;
|
|
23
|
+
max-width: 310px;
|
|
24
|
+
padding: 12px;
|
|
25
|
+
|
|
26
|
+
background-color: variables.$element-background-color;
|
|
27
|
+
|
|
28
|
+
.CalendarView {
|
|
29
|
+
padding: 0;
|
|
30
|
+
border: none;
|
|
31
|
+
|
|
32
|
+
.DayPicker-WeekdaysRow {
|
|
33
|
+
gap: 8px;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.DayPicker-Week {
|
|
37
|
+
gap: 8px;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
&__content {
|
|
43
|
+
background-color: $calendar-system-content-background-color;
|
|
44
|
+
width: 100%;
|
|
45
|
+
padding: 12px;
|
|
46
|
+
display: flex;
|
|
47
|
+
flex-flow: column nowrap;
|
|
48
|
+
gap: 11px;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './ContentHeader.scss';
|
|
3
|
+
interface IContentHeaderProps {
|
|
4
|
+
dateToDisplay: string;
|
|
5
|
+
onChangeCalendarType: (newType: string) => void;
|
|
6
|
+
applyControl: (event: React.MouseEvent<HTMLElement>) => void;
|
|
7
|
+
}
|
|
8
|
+
declare function ContentHeader(props: IContentHeaderProps): JSX.Element;
|
|
9
|
+
declare const _default: React.MemoExoticComponent<typeof ContentHeader>;
|
|
10
|
+
export default _default;
|
|
@@ -0,0 +1,29 @@
|
|
|
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 jsx-a11y/no-noninteractive-element-interactions */
|
|
7
|
+
var react_1 = __importDefault(require("react"));
|
|
8
|
+
var useBem_1 = __importDefault(require("@steroidsjs/core/hooks/useBem"));
|
|
9
|
+
var Text_1 = __importDefault(require("@steroidsjs/core/ui/typography/Text/Text"));
|
|
10
|
+
var nav_1 = require("@steroidsjs/core/ui/nav");
|
|
11
|
+
var content_1 = require("@steroidsjs/core/ui/content");
|
|
12
|
+
var DateControlType_1 = __importDefault(require("@steroidsjs/core/ui/content/CalendarSystem/enums/DateControlType"));
|
|
13
|
+
var CalendarType_1 = __importDefault(require("@steroidsjs/core/ui/content/CalendarSystem/enums/CalendarType"));
|
|
14
|
+
require("./ContentHeader.scss");
|
|
15
|
+
function ContentHeader(props) {
|
|
16
|
+
var bem = (0, useBem_1["default"])('ContentHeader');
|
|
17
|
+
return (react_1["default"].createElement("div", { className: bem.block() },
|
|
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.applyControl }, Object.entries(DateControlType_1["default"].getIcons()).map(function (_a, controlIndex) {
|
|
20
|
+
var controlLabel = _a[0], controlIcon = _a[1];
|
|
21
|
+
return (react_1["default"].createElement("li", { key: controlIndex, className: bem.element('controls-item'), "data-control": controlLabel },
|
|
22
|
+
react_1["default"].createElement(content_1.Icon, { className: bem.element('controls-item-icon'), name: controlIcon })));
|
|
23
|
+
})),
|
|
24
|
+
react_1["default"].createElement(nav_1.ButtonGroup, { className: bem.element('measures'), items: Object.entries(CalendarType_1["default"].getLabels()).map(function (_a) {
|
|
25
|
+
var _ = _a[0], label = _a[1];
|
|
26
|
+
return label;
|
|
27
|
+
}), onClick: props.onChangeCalendarType, defaultActiveButton: CalendarType_1["default"].getLabels()[CalendarType_1["default"].MONTH] })));
|
|
28
|
+
}
|
|
29
|
+
exports["default"] = react_1["default"].memo(ContentHeader);
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
@use "style/variables";
|
|
2
|
+
|
|
3
|
+
:root {
|
|
4
|
+
--calendar-system-caption-arrow-background-color: #fff;
|
|
5
|
+
--calendar-system-caption-arrow-color: #323232;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
html[data-theme="dark"] {
|
|
9
|
+
--calendar-system-caption-arrow-background-color: var(--gray);
|
|
10
|
+
--calendar-system-caption-arrow-color: #ffffff;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
$calendar-system-caption-arrow-color: var(--calendar-system-caption-arrow-color);
|
|
14
|
+
$calendar-system-caption-arrow-background-color: var(--calendar-system-caption-arrow-background-color);
|
|
15
|
+
|
|
16
|
+
.ContentHeader {
|
|
17
|
+
display: flex;
|
|
18
|
+
align-items: center;
|
|
19
|
+
|
|
20
|
+
&__month {
|
|
21
|
+
display: inline-block;
|
|
22
|
+
font-size: variables.$font-size-24;
|
|
23
|
+
font-weight: variables.$font-weight-lg;
|
|
24
|
+
line-height: variables.$line-height-32;
|
|
25
|
+
margin-right: 93px;
|
|
26
|
+
margin-bottom: 0;
|
|
27
|
+
width: 190px;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
&__controls {
|
|
31
|
+
display: inline-flex;
|
|
32
|
+
align-items: center;
|
|
33
|
+
flex-flow: row nowrap;
|
|
34
|
+
margin-right: auto;
|
|
35
|
+
gap: 8px;
|
|
36
|
+
|
|
37
|
+
&-item {
|
|
38
|
+
cursor: pointer;
|
|
39
|
+
|
|
40
|
+
svg {
|
|
41
|
+
path {
|
|
42
|
+
stroke: $calendar-system-caption-arrow-color;
|
|
43
|
+
}
|
|
44
|
+
rect {
|
|
45
|
+
fill: $calendar-system-caption-arrow-background-color;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
&-icon {
|
|
50
|
+
pointer-events: none;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
&__measures {
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -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 ContentHeader_1 = __importDefault(require("./ContentHeader"));
|
|
7
|
+
exports["default"] = ContentHeader_1["default"];
|
|
@@ -0,0 +1,12 @@
|
|
|
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';
|
|
4
|
+
import './MonthGrid.scss';
|
|
5
|
+
interface IMonthGridProps {
|
|
6
|
+
monthCalendarDays: IDay[];
|
|
7
|
+
getEventsFromDate: (dateFromDay: Date, currentCalendarType: CalendarEnum) => IEvent[];
|
|
8
|
+
weekDays: string[];
|
|
9
|
+
}
|
|
10
|
+
declare function MonthGrid(props: IMonthGridProps): JSX.Element;
|
|
11
|
+
declare const _default: React.MemoExoticComponent<typeof MonthGrid>;
|
|
12
|
+
export default _default;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
exports.__esModule = true;
|
|
29
|
+
var react_1 = __importStar(require("react"));
|
|
30
|
+
var useBem_1 = __importDefault(require("@steroidsjs/core/hooks/useBem"));
|
|
31
|
+
var CalendarType_1 = __importDefault(require("@steroidsjs/core/ui/content/CalendarSystem/enums/CalendarType"));
|
|
32
|
+
require("./MonthGrid.scss");
|
|
33
|
+
function MonthGrid(props) {
|
|
34
|
+
var bem = (0, useBem_1["default"])('MonthGrid');
|
|
35
|
+
return (react_1["default"].createElement("div", { className: bem.block() },
|
|
36
|
+
react_1["default"].createElement("div", { className: bem.element('week-days') }, props.weekDays.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.monthCalendarDays.map(function (day, dayIndex) {
|
|
38
|
+
var _a;
|
|
39
|
+
return (react_1["default"].createElement("div", { key: dayIndex, className: bem.element('day', {
|
|
40
|
+
outOfRange: day.outOfRange,
|
|
41
|
+
isToday: day.isToday
|
|
42
|
+
}) },
|
|
43
|
+
react_1["default"].createElement("div", { className: bem.element('day-wrapper') },
|
|
44
|
+
react_1["default"].createElement("span", { className: bem.element('day-number') }, day.dayNumber.toString()),
|
|
45
|
+
react_1["default"].createElement("div", { className: bem.element('day-content') }, (_a = props.getEventsFromDate(day.date, CalendarType_1["default"].MONTH)) === null || _a === void 0 ? void 0 : _a.map(function (event, eventIndex) { return (react_1["default"].createElement("span", { key: eventIndex, className: bem.element('day-event'), title: event.title },
|
|
46
|
+
react_1["default"].createElement("span", { className: bem.element('day-event-dot'), style: { backgroundColor: event.color } }),
|
|
47
|
+
event.title)); })))));
|
|
48
|
+
}))));
|
|
49
|
+
}
|
|
50
|
+
exports["default"] = (0, react_1.memo)(MonthGrid);
|