react-big-schedule 8.0.0 → 9.0.0

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 (109) hide show
  1. package/README.md +20 -1129
  2. package/dist/calendar/Calendar.d.ts +28 -0
  3. package/dist/calendar/Calendar.js +95 -0
  4. package/dist/calendar/Toolbar.d.ts +18 -0
  5. package/dist/calendar/Toolbar.js +6 -0
  6. package/dist/calendar/recurrence.check.d.ts +1 -0
  7. package/dist/calendar/recurrence.check.js +49 -0
  8. package/dist/calendar/recurrence.d.ts +8 -0
  9. package/dist/calendar/recurrence.js +90 -0
  10. package/dist/calendar/timezone.d.ts +6 -0
  11. package/dist/calendar/timezone.js +14 -0
  12. package/dist/calendar/types.d.ts +187 -0
  13. package/dist/calendar/types.js +1 -0
  14. package/dist/calendar/useEventSources.d.ts +11 -0
  15. package/dist/calendar/useEventSources.js +89 -0
  16. package/dist/calendar/useRecurrence.d.ts +4 -0
  17. package/dist/calendar/useRecurrence.js +15 -0
  18. package/dist/calendar/utils.d.ts +38 -0
  19. package/dist/calendar/utils.js +143 -0
  20. package/dist/calendar/views/DayGridView.d.ts +3 -0
  21. package/dist/calendar/views/DayGridView.js +375 -0
  22. package/dist/calendar/views/ListView.d.ts +4 -0
  23. package/dist/calendar/views/ListView.js +56 -0
  24. package/dist/calendar/views/MultiMonthView.d.ts +4 -0
  25. package/dist/calendar/views/MultiMonthView.js +36 -0
  26. package/dist/calendar/views/TimeGridView.d.ts +3 -0
  27. package/dist/calendar/views/TimeGridView.js +334 -0
  28. package/dist/calendar/views/daygrid/DayCell.d.ts +19 -0
  29. package/dist/calendar/views/daygrid/DayCell.js +17 -0
  30. package/dist/calendar/views/daygrid/EventChip.d.ts +19 -0
  31. package/dist/calendar/views/daygrid/EventChip.js +40 -0
  32. package/dist/calendar/views/daygrid/layout.d.ts +30 -0
  33. package/dist/calendar/views/daygrid/layout.js +63 -0
  34. package/dist/calendar/views/list/bucket.d.ts +8 -0
  35. package/dist/calendar/views/list/bucket.js +37 -0
  36. package/dist/calendar/views/multimonth/Cell.d.ts +12 -0
  37. package/dist/calendar/views/multimonth/Cell.js +44 -0
  38. package/dist/calendar/views/multimonth/Continuous.d.ts +8 -0
  39. package/dist/calendar/views/multimonth/Continuous.js +28 -0
  40. package/dist/calendar/views/multimonth/MonthGrid.d.ts +10 -0
  41. package/dist/calendar/views/multimonth/MonthGrid.js +36 -0
  42. package/dist/calendar/views/multimonth/shared.d.ts +27 -0
  43. package/dist/calendar/views/multimonth/shared.js +40 -0
  44. package/dist/calendar/views/timegrid/DayColumn.d.ts +49 -0
  45. package/dist/calendar/views/timegrid/DayColumn.js +86 -0
  46. package/dist/calendar/views/timegrid/model.d.ts +55 -0
  47. package/dist/calendar/views/timegrid/model.js +102 -0
  48. package/dist/components/AddMore.d.ts +13 -0
  49. package/dist/components/AddMore.js +9 -42
  50. package/dist/components/AddMorePopover.d.ts +13 -0
  51. package/dist/components/AddMorePopover.js +24 -95
  52. package/dist/components/AgendaEventItem.d.ts +10 -0
  53. package/dist/components/AgendaEventItem.js +33 -81
  54. package/dist/components/AgendaResourceEvents.d.ts +10 -0
  55. package/dist/components/AgendaResourceEvents.js +38 -90
  56. package/dist/components/AgendaView.d.ts +9 -0
  57. package/dist/components/AgendaView.js +10 -69
  58. package/dist/components/BodyView.d.ts +11 -0
  59. package/dist/components/BodyView.js +36 -67
  60. package/dist/components/DnDContext.d.ts +48 -0
  61. package/dist/components/DnDContext.js +200 -221
  62. package/dist/components/DnDSource.d.ts +49 -0
  63. package/dist/components/DnDSource.js +125 -120
  64. package/dist/components/EventItem.d.ts +41 -0
  65. package/dist/components/EventItem.js +585 -787
  66. package/dist/components/EventItemPopover.d.ts +12 -0
  67. package/dist/components/EventItemPopover.js +19 -143
  68. package/dist/components/HeaderView.d.ts +14 -0
  69. package/dist/components/HeaderView.js +123 -186
  70. package/dist/components/ResourceEvents.d.ts +54 -0
  71. package/dist/components/ResourceEvents.js +534 -703
  72. package/dist/components/ResourceView.d.ts +26 -0
  73. package/dist/components/ResourceView.js +64 -184
  74. package/dist/components/SchedulerData.d.ts +136 -0
  75. package/dist/components/SchedulerData.js +1296 -1226
  76. package/dist/components/SchedulerHeader.d.ts +25 -0
  77. package/dist/components/SchedulerHeader.js +50 -150
  78. package/dist/components/SelectedArea.d.ts +8 -0
  79. package/dist/components/SelectedArea.js +11 -26
  80. package/dist/components/Summary.d.ts +11 -0
  81. package/dist/components/Summary.js +21 -50
  82. package/dist/components/WrapperFun.d.ts +2 -0
  83. package/dist/components/WrapperFun.js +5 -10
  84. package/dist/components/index.d.ts +44 -0
  85. package/dist/components/index.js +428 -654
  86. package/dist/components/ui/Icons.d.ts +8 -0
  87. package/dist/components/ui/Icons.js +7 -0
  88. package/dist/components/ui/MiniCalendar.d.ts +9 -0
  89. package/dist/components/ui/MiniCalendar.js +17 -0
  90. package/dist/components/ui/Popover.d.ts +13 -0
  91. package/dist/components/ui/Popover.js +80 -0
  92. package/dist/config/default.d.ts +36 -0
  93. package/dist/config/default.js +17 -26
  94. package/dist/config/i18n.d.ts +27 -0
  95. package/dist/config/i18n.js +21 -37
  96. package/dist/config/scheduler.d.ts +12 -0
  97. package/dist/config/scheduler.js +126 -119
  98. package/dist/css/style.css +2 -316
  99. package/dist/helper/behaviors.d.ts +14 -0
  100. package/dist/helper/behaviors.js +75 -75
  101. package/dist/helper/utility.d.ts +26 -0
  102. package/dist/helper/utility.js +23 -30
  103. package/dist/index.d.ts +6 -477
  104. package/dist/index.js +4 -2
  105. package/dist/sample-data/sample1.d.ts +11 -0
  106. package/dist/sample-data/sample1.js +427 -372
  107. package/dist/types.d.ts +267 -0
  108. package/dist/types.js +1 -0
  109. package/package.json +35 -26
@@ -0,0 +1,25 @@
1
+ import React, { type CSSProperties, type ReactNode } from 'react';
2
+ import type { ViewType } from '../config/default';
3
+ import type SchedulerData from './SchedulerData';
4
+ export interface ViewChangeEvent {
5
+ viewType: ViewType;
6
+ showAgenda: boolean;
7
+ isEventPerspective: boolean;
8
+ }
9
+ export interface SchedulerHeaderProps {
10
+ /** Receives the encoded view key: viewType, showAgenda (0|1), isEventPerspective (0|1). */
11
+ onViewChange: (event: {
12
+ target: {
13
+ value: string;
14
+ };
15
+ }) => void;
16
+ goNext: () => void;
17
+ goBack: () => void;
18
+ onSelectDate: (date: string) => void;
19
+ schedulerData: SchedulerData;
20
+ leftCustomHeader?: ReactNode;
21
+ rightCustomHeader?: ReactNode;
22
+ style?: CSSProperties;
23
+ }
24
+ declare const SchedulerHeader: React.ForwardRefExoticComponent<SchedulerHeaderProps & React.RefAttributes<HTMLDivElement>>;
25
+ export default SchedulerHeader;
@@ -1,156 +1,56 @@
1
- import { LeftOutlined, RightOutlined } from '@ant-design/icons';
2
- import { Calendar, Col, Popover, Radio, Row, Space, Spin } from 'antd';
3
- import dayjs from 'dayjs';
4
- import PropTypes from 'prop-types';
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
2
  import React, { useEffect, useRef, useState } from 'react';
6
3
  import { DATE_FORMAT } from '../config/default';
7
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
- const RadioButton = Radio.Button;
9
- const RadioGroup = Radio.Group;
10
- const SchedulerHeader = /*#__PURE__*/React.forwardRef(({
11
- onViewChange,
12
- goNext,
13
- goBack,
14
- onSelectDate,
15
- schedulerData,
16
- leftCustomHeader,
17
- rightCustomHeader,
18
- style
19
- }, ref) => {
20
- const [viewSpinning, setViewSpinning] = useState(false);
21
- const [dateSpinning, setDateSpinning] = useState(false);
22
- const [visible, setVisible] = useState(false);
23
- const {
24
- viewType,
25
- showAgenda,
26
- isEventPerspective,
27
- config
28
- } = schedulerData;
29
- const dateLabel = schedulerData.getDateLabel();
30
- const selectDate = schedulerData.getSelectedDate();
31
- const calendarLocale = schedulerData.getCalendarPopoverLocale()?.default?.Calendar;
32
- const defaultValue = `${viewType}${showAgenda ? 1 : 0}${isEventPerspective ? 1 : 0}`;
33
- const isMountedRef = useRef(true);
34
- useEffect(() => {
35
- return () => {
36
- isMountedRef.current = false;
37
- };
38
- }, []);
39
- const handleEvents = (func, isViewSpinning, funcArg) => {
40
- const isSpinEnabled = isViewSpinning ? config.viewChangeSpinEnabled : config.dateChangeSpinEnabled;
41
- const setSpin = isViewSpinning ? setViewSpinning : setDateSpinning;
42
- if (isSpinEnabled) {
43
- setSpin(true);
44
- }
45
- const coreFunc = () => {
46
- try {
47
- funcArg !== undefined ? func(funcArg) : func();
48
- } finally {
49
- if (isSpinEnabled && isMountedRef.current) {
50
- setSpin(false);
4
+ import { ChevronLeft, ChevronRight } from './ui/Icons';
5
+ import MiniCalendar from './ui/MiniCalendar';
6
+ import Popover from './ui/Popover';
7
+ const Spinner = () => _jsx("span", { className: "rbs-spinner", role: "status", "aria-label": "Loading" });
8
+ const SchedulerHeader = React.forwardRef(({ onViewChange, goNext, goBack, onSelectDate, schedulerData, leftCustomHeader, rightCustomHeader, style }, ref) => {
9
+ const [viewSpinning, setViewSpinning] = useState(false);
10
+ const [dateSpinning, setDateSpinning] = useState(false);
11
+ const [visible, setVisible] = useState(false);
12
+ const { viewType, showAgenda, isEventPerspective, config } = schedulerData;
13
+ const dateLabel = schedulerData.getDateLabel();
14
+ const selectDate = schedulerData.getSelectedDate();
15
+ const currentView = `${viewType}${showAgenda ? 1 : 0}${isEventPerspective ? 1 : 0}`;
16
+ const isMountedRef = useRef(true);
17
+ useEffect(() => {
18
+ return () => {
19
+ isMountedRef.current = false;
20
+ };
21
+ }, []);
22
+ const handleEvents = (func, isViewSpinning, funcArg) => {
23
+ const isSpinEnabled = isViewSpinning ? config.viewChangeSpinEnabled : config.dateChangeSpinEnabled;
24
+ const setSpin = isViewSpinning ? setViewSpinning : setDateSpinning;
25
+ if (isSpinEnabled) {
26
+ setSpin(true);
27
+ }
28
+ const coreFunc = () => {
29
+ try {
30
+ func(funcArg);
31
+ }
32
+ finally {
33
+ if (isSpinEnabled && isMountedRef.current) {
34
+ setSpin(false);
35
+ }
36
+ }
37
+ };
38
+ if (isSpinEnabled) {
39
+ setTimeout(coreFunc, config.schedulerHeaderEventsFuncsTimeoutMs);
40
+ }
41
+ else {
42
+ coreFunc();
51
43
  }
52
- }
53
44
  };
54
- if (isSpinEnabled) {
55
- setTimeout(coreFunc, config.schedulerHeaderEventsFuncsTimeoutMs);
56
- } else {
57
- coreFunc();
58
- }
59
- };
60
- const popover = /*#__PURE__*/_jsx("div", {
61
- className: "rbs-popover-calendar",
62
- children: /*#__PURE__*/_jsx(Calendar, {
63
- locale: calendarLocale,
64
- defaultValue: dayjs(selectDate),
65
- fullscreen: false,
66
- onSelect: date => {
67
- setVisible(false);
68
- handleEvents(onSelectDate, false, date.format(DATE_FORMAT));
69
- }
70
- })
71
- });
72
- const radioButtonList = config.views.map(item => /*#__PURE__*/_jsx(RadioButton, {
73
- value: `${item.viewType}${item.showAgenda ? 1 : 0}${item.isEventPerspective ? 1 : 0}`,
74
- children: /*#__PURE__*/_jsx("span", {
75
- style: {
76
- margin: '0px 8px'
77
- },
78
- children: item.viewName
79
- })
80
- }, `${item.viewType}${item.showAgenda ? 1 : 0}${item.isEventPerspective ? 1 : 0}`));
81
- return /*#__PURE__*/_jsxs(Row, {
82
- ref: ref,
83
- gutter: [10, 10],
84
- align: "middle",
85
- justify: "space-between",
86
- style: {
87
- marginInline: 0,
88
- ...style
89
- },
90
- children: [leftCustomHeader, /*#__PURE__*/_jsx(Col, {
91
- children: /*#__PURE__*/_jsx("div", {
92
- className: "header2-text",
93
- children: /*#__PURE__*/_jsxs(Space, {
94
- children: [/*#__PURE__*/_jsxs("div", {
95
- children: [/*#__PURE__*/_jsx(LeftOutlined, {
96
- style: {
97
- marginRight: '8px'
98
- },
99
- className: "icon-nav",
100
- onClick: () => handleEvents(goBack, false)
101
- }), config.calendarPopoverEnabled ? /*#__PURE__*/_jsx(Popover, {
102
- content: popover,
103
- placement: "bottomLeft",
104
- trigger: "click",
105
- open: visible,
106
- onOpenChange: setVisible,
107
- overlayClassName: "scheduler-header-popover",
108
- children: /*#__PURE__*/_jsx("span", {
109
- className: "header2-text-label",
110
- style: {
111
- cursor: 'pointer'
112
- },
113
- children: dateLabel
114
- })
115
- }) : /*#__PURE__*/_jsx("span", {
116
- className: "header2-text-label",
117
- children: dateLabel
118
- }), /*#__PURE__*/_jsx(RightOutlined, {
119
- style: {
120
- marginLeft: '8px'
121
- },
122
- className: "icon-nav",
123
- onClick: () => handleEvents(goNext, false)
124
- })]
125
- }), /*#__PURE__*/_jsx(Spin, {
126
- spinning: dateSpinning
127
- })]
128
- })
129
- })
130
- }), /*#__PURE__*/_jsx(Col, {
131
- children: /*#__PURE__*/_jsxs(Space, {
132
- children: [/*#__PURE__*/_jsx(Spin, {
133
- spinning: viewSpinning
134
- }), /*#__PURE__*/_jsx(RadioGroup, {
135
- buttonStyle: "solid",
136
- defaultValue: defaultValue,
137
- size: "default",
138
- onChange: event => handleEvents(onViewChange, true, event),
139
- children: radioButtonList
140
- })]
141
- })
142
- }), rightCustomHeader]
143
- });
45
+ const popover = (_jsx("div", { className: "rbs-popover-calendar", children: _jsx(MiniCalendar, { dayjs: schedulerData.localeDayjs, value: selectDate, onSelect: date => {
46
+ setVisible(false);
47
+ handleEvents(onSelectDate, false, date.format(DATE_FORMAT));
48
+ } }) }));
49
+ const viewButtons = config.views.map(item => {
50
+ const value = `${item.viewType}${item.showAgenda ? 1 : 0}${item.isEventPerspective ? 1 : 0}`;
51
+ return (_jsx("button", { type: "button", "aria-pressed": value === currentView, onClick: () => handleEvents(onViewChange, true, { target: { value } }), children: _jsx("span", { style: { margin: '0px 8px' }, children: item.viewName }) }, value));
52
+ });
53
+ return (_jsxs("div", { ref: ref, className: "rbs:flex rbs:flex-wrap rbs:items-center rbs:justify-between rbs:gap-2.5", style: style, children: [leftCustomHeader, _jsxs("div", { className: "header2-text rbs:flex rbs:items-center rbs:gap-2", children: [_jsxs("div", { className: "rbs:flex rbs:items-center", children: [_jsx(ChevronLeft, { style: { marginRight: '8px' }, className: "icon-nav", onClick: () => handleEvents(goBack, false, undefined) }), config.calendarPopoverEnabled ? (_jsx(Popover, { content: popover, placement: "bottomLeft", trigger: "click", open: visible, onOpenChange: setVisible, className: "scheduler-header-popover", children: _jsx("span", { className: "header2-text-label", style: { cursor: 'pointer' }, children: dateLabel }) })) : (_jsx("span", { className: "header2-text-label", children: dateLabel })), _jsx(ChevronRight, { style: { marginLeft: '8px' }, className: "icon-nav", onClick: () => handleEvents(goNext, false, undefined) })] }), dateSpinning && _jsx(Spinner, {})] }), _jsxs("div", { className: "rbs:flex rbs:items-center rbs:gap-2", children: [viewSpinning && _jsx(Spinner, {}), _jsx("div", { className: "rbs-segmented", role: "group", children: viewButtons })] }), rightCustomHeader] }));
144
54
  });
145
- SchedulerHeader.propTypes = {
146
- onViewChange: PropTypes.func.isRequired,
147
- goNext: PropTypes.func.isRequired,
148
- goBack: PropTypes.func.isRequired,
149
- onSelectDate: PropTypes.func.isRequired,
150
- schedulerData: PropTypes.object.isRequired,
151
- leftCustomHeader: PropTypes.object,
152
- rightCustomHeader: PropTypes.object,
153
- style: PropTypes.object
154
- };
155
55
  SchedulerHeader.displayName = 'SchedulerHeader';
156
- export default SchedulerHeader;
56
+ export default SchedulerHeader;
@@ -0,0 +1,8 @@
1
+ import type SchedulerData from './SchedulerData';
2
+ export interface SelectedAreaProps {
3
+ schedulerData: SchedulerData;
4
+ left: number;
5
+ width: number;
6
+ }
7
+ declare function SelectedArea({ left, width, schedulerData }: SelectedAreaProps): import("react").JSX.Element;
8
+ export default SelectedArea;
@@ -1,28 +1,13 @@
1
- import PropTypes from 'prop-types';
2
1
  import { jsx as _jsx } from "react/jsx-runtime";
3
- function SelectedArea({
4
- left,
5
- width,
6
- schedulerData
7
- }) {
8
- const {
9
- config
10
- } = schedulerData;
11
- const selectedAreaStyle = {
12
- left,
13
- width,
14
- top: 0,
15
- bottom: 0,
16
- backgroundColor: config.selectedAreaColor
17
- };
18
- return /*#__PURE__*/_jsx("div", {
19
- className: "selected-area",
20
- style: selectedAreaStyle
21
- });
2
+ function SelectedArea({ left, width, schedulerData }) {
3
+ const { config } = schedulerData;
4
+ const selectedAreaStyle = {
5
+ left,
6
+ width,
7
+ top: 0,
8
+ bottom: 0,
9
+ backgroundColor: config.selectedAreaColor,
10
+ };
11
+ return _jsx("div", { className: "selected-area", style: selectedAreaStyle });
22
12
  }
23
- SelectedArea.propTypes = {
24
- schedulerData: PropTypes.object.isRequired,
25
- left: PropTypes.number.isRequired,
26
- width: PropTypes.number.isRequired
27
- };
28
- export default SelectedArea;
13
+ export default SelectedArea;
@@ -0,0 +1,11 @@
1
+ import type { SummaryResult } from '../types';
2
+ import type SchedulerData from './SchedulerData';
3
+ export interface SummaryProps {
4
+ schedulerData: SchedulerData;
5
+ summary: Partial<SummaryResult>;
6
+ left: number;
7
+ width: number;
8
+ top: number;
9
+ }
10
+ declare function Summary({ schedulerData, summary, left, width, top }: SummaryProps): import("react").JSX.Element;
11
+ export default Summary;
@@ -1,52 +1,23 @@
1
- import PropTypes from 'prop-types';
2
- import { SummaryPos } from '../config/default';
3
1
  import { jsx as _jsx } from "react/jsx-runtime";
4
- function Summary({
5
- schedulerData,
6
- summary,
7
- left,
8
- width,
9
- top
10
- }) {
11
- const {
12
- config
13
- } = schedulerData;
14
- const color = summary.color !== undefined ? summary.color : config.summaryColor;
15
- let textAlign = 'center';
16
- if (config.summaryPos === SummaryPos.TopRight || config.summaryPos === SummaryPos.BottomRight) {
17
- textAlign = 'right';
18
- } else if (config.summaryPos === SummaryPos.TopLeft || config.summaryPos === SummaryPos.BottomLeft) {
19
- textAlign = 'left';
20
- }
21
- const style = {
22
- height: config.eventItemHeight,
23
- color,
24
- textAlign,
25
- marginLeft: '6px',
26
- marginRight: '6px',
27
- ...(summary.fontSize !== undefined ? {
28
- fontSize: summary.fontSize
29
- } : {})
30
- };
31
- return /*#__PURE__*/_jsx("div", {
32
- className: "timeline-event header2-text",
33
- style: {
34
- left,
35
- width,
36
- top,
37
- cursor: 'default'
38
- },
39
- children: /*#__PURE__*/_jsx("div", {
40
- style: style,
41
- children: summary.text
42
- })
43
- });
2
+ import { SummaryPos } from '../config/default';
3
+ function Summary({ schedulerData, summary, left, width, top }) {
4
+ const { config } = schedulerData;
5
+ const color = summary.color !== undefined ? summary.color : config.summaryColor;
6
+ let textAlign = 'center';
7
+ if (config.summaryPos === SummaryPos.TopRight || config.summaryPos === SummaryPos.BottomRight) {
8
+ textAlign = 'right';
9
+ }
10
+ else if (config.summaryPos === SummaryPos.TopLeft || config.summaryPos === SummaryPos.BottomLeft) {
11
+ textAlign = 'left';
12
+ }
13
+ const style = {
14
+ height: config.eventItemHeight,
15
+ color,
16
+ textAlign,
17
+ marginLeft: '6px',
18
+ marginRight: '6px',
19
+ ...(summary.fontSize !== undefined ? { fontSize: summary.fontSize } : {}),
20
+ };
21
+ return (_jsx("div", { className: "timeline-event header2-text", style: { left, width, top, cursor: 'default' }, children: _jsx("div", { style: style, children: summary.text }) }));
44
22
  }
45
- Summary.propTypes = {
46
- schedulerData: PropTypes.object.isRequired,
47
- summary: PropTypes.object.isRequired,
48
- left: PropTypes.number.isRequired,
49
- width: PropTypes.number.isRequired,
50
- top: PropTypes.number.isRequired
51
- };
52
- export default Summary;
23
+ export default Summary;
@@ -0,0 +1,2 @@
1
+ import type { ComponentType } from 'react';
2
+ export default function WrapperFun<P extends object>(Component: ComponentType<P>): (props: P) => import("react").JSX.Element;
@@ -1,13 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
1
2
  import { DndProvider } from 'react-dnd';
2
3
  import { HTML5Backend } from 'react-dnd-html5-backend';
3
- import { jsx as _jsx } from "react/jsx-runtime";
4
4
  export default function WrapperFun(Component) {
5
- return function WrappedComponent(props) {
6
- return /*#__PURE__*/_jsx(DndProvider, {
7
- backend: HTML5Backend,
8
- children: /*#__PURE__*/_jsx(Component, {
9
- ...props
10
- })
11
- });
12
- };
13
- }
5
+ return function WrappedComponent(props) {
6
+ return (_jsx(DndProvider, { backend: HTML5Backend, children: _jsx(Component, { ...props }) }));
7
+ };
8
+ }
@@ -0,0 +1,44 @@
1
+ import { type ComponentType, type CSSProperties, type ReactNode, type RefObject } from 'react';
2
+ import { CellUnit, DATE_FORMAT, DATETIME_FORMAT, SummaryPos, ViewType } from '../config/default';
3
+ import DemoData from '../sample-data/sample1';
4
+ import type { Id, SlotClickedFunc, SlotItemTemplateResolver } from '../types';
5
+ import AddMorePopover from './AddMorePopover';
6
+ import DnDContext from './DnDContext';
7
+ import DnDSource from './DnDSource';
8
+ import { type NonAgendaCellHeaderTemplateResolver } from './HeaderView';
9
+ import { type ResourceEventsProps } from './ResourceEvents';
10
+ import { type CustomResourceCellProps } from './ResourceView';
11
+ import SchedulerData from './SchedulerData';
12
+ import type { ViewChangeEvent } from './SchedulerHeader';
13
+ import wrapperFun from './WrapperFun';
14
+ type ScrollHandler = (schedulerData: SchedulerData, element: HTMLElement, maxScroll: number) => void;
15
+ export interface SchedulerProps extends Pick<ResourceEventsProps, 'onSetAddMoreState' | 'updateEventStart' | 'updateEventEnd' | 'moveEvent' | 'movingEvent' | 'newEvent' | 'conflictOccurred' | 'subtitleGetter' | 'eventItemClick' | 'viewEventClick' | 'viewEventText' | 'viewEvent2Click' | 'viewEvent2Text' | 'eventItemTemplateResolver' | 'eventItemPopoverTemplateResolver'> {
16
+ /** View model that supplies configuration, layout and render data. */
17
+ schedulerData: SchedulerData;
18
+ /** Extra drag sources, merged into the DnD context on first mount. */
19
+ dndSources?: DnDSource[];
20
+ /** Parent whose height is tracked when `config.responsiveByParent` is on. */
21
+ parentRef?: RefObject<HTMLElement | null>;
22
+ className?: string;
23
+ style?: CSSProperties;
24
+ prevClick: (schedulerData: SchedulerData) => void;
25
+ nextClick: (schedulerData: SchedulerData) => void;
26
+ onViewChange: (schedulerData: SchedulerData, view: ViewChangeEvent) => void;
27
+ onSelectDate: (schedulerData: SchedulerData, date: string) => void;
28
+ leftCustomHeader?: ReactNode;
29
+ rightCustomHeader?: ReactNode;
30
+ slotClickedFunc?: SlotClickedFunc;
31
+ toggleExpandFunc?: (schedulerData: SchedulerData, slotId: Id) => void;
32
+ slotItemTemplateResolver?: SlotItemTemplateResolver;
33
+ nonAgendaCellHeaderTemplateResolver?: NonAgendaCellHeaderTemplateResolver;
34
+ onScrollLeft?: ScrollHandler;
35
+ onScrollRight?: ScrollHandler;
36
+ onScrollTop?: ScrollHandler;
37
+ onScrollBottom?: ScrollHandler;
38
+ CustomResourceHeader?: ComponentType;
39
+ CustomResourceCell?: ComponentType<CustomResourceCellProps>;
40
+ /** Extra style for the resource column header cell. */
41
+ configTableHeaderStyle?: CSSProperties;
42
+ }
43
+ declare function Scheduler(props: SchedulerProps): import("react").JSX.Element;
44
+ export { AddMorePopover, CellUnit, DATE_FORMAT, DATETIME_FORMAT, DemoData, DnDContext, DnDSource, Scheduler, SchedulerData, SummaryPos, ViewType, wrapperFun, };