react-big-schedule 8.1.0 → 9.0.1

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 +24 -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 +37 -91
  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 +30 -27
@@ -0,0 +1,26 @@
1
+ import React, { type ComponentType, type ReactNode } from 'react';
2
+ import type { Id, RenderItem, SlotClickedFunc, SlotItemTemplateResolver } from '../types';
3
+ import type SchedulerData from './SchedulerData';
4
+ export interface CustomResourceCellProps {
5
+ schedulerData: SchedulerData;
6
+ item: RenderItem;
7
+ indents: ReactNode[];
8
+ slotClickedFunc?: SlotClickedFunc;
9
+ handleToggleExpand: (item: RenderItem) => void;
10
+ }
11
+ export interface ResourceViewProps {
12
+ schedulerData: SchedulerData;
13
+ /** Changes whenever schedulerData mutates, so the memoised view re-renders. */
14
+ schedulerDataVersion?: number;
15
+ contentScrollbarHeight: number;
16
+ slotClickedFunc?: SlotClickedFunc;
17
+ slotItemTemplateResolver?: SlotItemTemplateResolver;
18
+ toggleExpandFunc?: (schedulerData: SchedulerData, slotId: Id) => void;
19
+ CustomResourceCell?: ComponentType<CustomResourceCellProps>;
20
+ isSelecting?: boolean;
21
+ selectedResourceIds?: Id[] | Set<Id>;
22
+ }
23
+ /** Render the resource column: hierarchical indentation, expand/collapse controls and clickable slot names. */
24
+ declare function ResourceView({ schedulerData, contentScrollbarHeight, slotClickedFunc, slotItemTemplateResolver, toggleExpandFunc, CustomResourceCell, isSelecting, selectedResourceIds, }: ResourceViewProps): React.JSX.Element;
25
+ declare const _default: React.MemoExoticComponent<typeof ResourceView>;
26
+ export default _default;
@@ -1,189 +1,69 @@
1
- import { MinusSquareOutlined, PlusSquareOutlined } from '@ant-design/icons';
2
- import PropTypes from 'prop-types';
3
- import React from 'react';
4
-
5
- /**
6
- * Render the scheduler's resource table with hierarchical indentation, optional expand/collapse controls,
7
- * clickable slot names, and support for custom slot templates or an injected resource-cell renderer.
8
- *
9
- * @param {object} schedulerData - Scheduler state and helpers; must include `renderData`,
10
- * `getResourceTableWidth`, and `config`.
11
- * @param {number} contentScrollbarHeight - Height used to set the container's bottom padding.
12
- * @param {Function} [slotClickedFunc] - Called as `slotClickedFunc(schedulerData, item)` when a slot name is clicked.
13
- * @param {Function} [slotItemTemplateResolver] - Called as `slotItemTemplateResolver
14
- * (schedulerData, item, slotClickedFunc, width, className)` to provide a custom slot cell element;
15
- * if a value is returned it replaces the default slot cell.
16
- * @param {Function} [toggleExpandFunc] - Called as `toggleExpandFunc(schedulerData, slotId)`
17
- * to toggle expansion for items with children.
18
- * @param {Function} [CustomResourceCell] - Optional React component rendered inside the resource
19
- * `<td>` when provided; receives props `{ schedulerData, item, indents, slotClickedFunc, handleToggleExpand }`.
20
- * @returns {JSX.Element} The rendered resource table element.
21
- */
22
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
23
- function ResourceView({
24
- schedulerData,
25
- contentScrollbarHeight,
26
- slotClickedFunc,
27
- slotItemTemplateResolver,
28
- toggleExpandFunc,
29
- CustomResourceCell,
30
- isSelecting,
31
- selectedResourceIds
32
- }) {
33
- const {
34
- renderData
35
- } = schedulerData;
36
- const width = schedulerData.getResourceTableWidth();
37
- const paddingBottom = contentScrollbarHeight;
38
- const displayRenderData = renderData.filter(o => o.render);
39
- const handleToggleExpand = item => {
40
- if (toggleExpandFunc) {
41
- toggleExpandFunc(schedulerData, item.slotId);
42
- }
43
- };
44
- const renderSlotItem = (item, indents) => {
45
- let indent = /*#__PURE__*/_jsx("span", {
46
- className: "expander-space"
47
- }, `es${item.indent}`);
48
- const iconProps = {
49
- onClick: () => handleToggleExpand(item)
2
+ import React from 'react';
3
+ import { MinusSquare, PlusSquare } from './ui/Icons';
4
+ /** Render the resource column: hierarchical indentation, expand/collapse controls and clickable slot names. */
5
+ function ResourceView({ schedulerData, contentScrollbarHeight, slotClickedFunc, slotItemTemplateResolver, toggleExpandFunc, CustomResourceCell, isSelecting, selectedResourceIds, }) {
6
+ const { renderData } = schedulerData;
7
+ const width = schedulerData.getResourceTableWidth();
8
+ const paddingBottom = contentScrollbarHeight;
9
+ const displayRenderData = renderData.filter(o => o.render);
10
+ const handleToggleExpand = (item) => {
11
+ if (toggleExpandFunc) {
12
+ toggleExpandFunc(schedulerData, item.slotId);
13
+ }
50
14
  };
51
- if (item.hasChildren) {
52
- indent = item.expanded ? /*#__PURE__*/_jsx(MinusSquareOutlined, {
53
- ...iconProps
54
- }, `es${item.indent}`) : /*#__PURE__*/_jsx(PlusSquareOutlined, {
55
- ...iconProps
56
- }, `es${item.indent}`);
57
- }
58
- indents.push(indent);
59
- const tdStyle = {
60
- height: item.rowHeight,
61
- backgroundColor: item.groupOnly ? schedulerData.config.groupOnlySlotColor : undefined,
62
- borderLeft: '3px solid transparent'
15
+ const renderSlotItem = (item, indents) => {
16
+ let indent = _jsx("span", { className: "expander-space" }, `es${item.indent}`);
17
+ const iconProps = { onClick: () => handleToggleExpand(item), style: { cursor: 'pointer' } };
18
+ if (item.hasChildren) {
19
+ indent = item.expanded ? (_jsx(MinusSquare, { ...iconProps }, `es${item.indent}`)) : (_jsx(PlusSquare, { ...iconProps }, `es${item.indent}`));
20
+ }
21
+ indents.push(indent);
22
+ const tdStyle = {
23
+ height: item.rowHeight,
24
+ backgroundColor: item.groupOnly ? schedulerData.config.groupOnlySlotColor : undefined,
25
+ borderLeft: '3px solid transparent',
26
+ };
27
+ const selectedBorderColor = schedulerData.config.selectedSlotBorderColor || 'var(--rbs-accent)';
28
+ const selectedShadowColor = schedulerData.config.selectedSlotShadowColor || 'color-mix(in srgb, var(--rbs-accent) 45%, transparent)';
29
+ const selectedSlotColor = schedulerData.config.selectedSlotColor || 'color-mix(in srgb, var(--rbs-accent) 10%, transparent)';
30
+ const hasSelectedResourceId = selectedResourceIds instanceof Set
31
+ ? selectedResourceIds.has(item.slotId)
32
+ : Array.isArray(selectedResourceIds) && selectedResourceIds.includes(item.slotId);
33
+ const isRowSelected = isSelecting && hasSelectedResourceId;
34
+ if (isRowSelected) {
35
+ tdStyle.borderLeft = `3px solid ${selectedBorderColor}`;
36
+ tdStyle.boxShadow = `inset 0 0 0 1px ${selectedShadowColor}`;
37
+ if (!item.groupOnly) {
38
+ tdStyle.backgroundColor = selectedSlotColor;
39
+ }
40
+ }
41
+ if (CustomResourceCell) {
42
+ return (_jsx("tr", { "aria-selected": isRowSelected, children: _jsx("td", { "data-resource-id": item.slotId, style: tdStyle, children: _jsx(CustomResourceCell, { schedulerData: schedulerData, item: item, indents: indents, slotClickedFunc: slotClickedFunc, handleToggleExpand: handleToggleExpand }) }) }, item.slotId));
43
+ }
44
+ const slotCell = slotClickedFunc ? (_jsxs("span", { className: "slot-cell", children: [indents, _jsx("button", { type: "button", style: { cursor: 'pointer' }, className: "slot-text rbs-txt-btn-dis", onClick: () => slotClickedFunc(schedulerData, item), children: item.slotName })] })) : (_jsxs("span", { className: "slot-cell", children: [indents, _jsx("button", { type: "button", className: "slot-text rbs-txt-btn-dis", style: {
45
+ cursor: slotClickedFunc === undefined ? undefined : 'pointer',
46
+ }, children: item.slotName })] }));
47
+ let slotItem = (_jsx("div", { title: item.slotTitle || item.slotName, className: "overflow-text header2-text", style: { textAlign: 'left' }, children: slotCell }));
48
+ if (slotItemTemplateResolver) {
49
+ const resolvedTemplate = slotItemTemplateResolver(schedulerData, item, slotClickedFunc, width, 'overflow-text header2-text');
50
+ if (resolvedTemplate) {
51
+ slotItem = resolvedTemplate;
52
+ }
53
+ }
54
+ return (_jsx("tr", { "aria-selected": isRowSelected, children: _jsx("td", { "data-resource-id": item.slotId, style: tdStyle, children: slotItem }) }, item.slotId));
63
55
  };
64
- const selectedBorderColor = schedulerData.config.selectedSlotBorderColor || '#1677ff';
65
- const selectedShadowColor = schedulerData.config.selectedSlotShadowColor || '#91caff';
66
- const selectedSlotColor = schedulerData.config.selectedSlotColor || '#e6f4ff';
67
- const hasSelectedResourceId = selectedResourceIds instanceof Set ? selectedResourceIds.has(item.slotId) : Array.isArray(selectedResourceIds) && selectedResourceIds.includes(item.slotId);
68
- const isRowSelected = isSelecting && hasSelectedResourceId;
69
- if (isRowSelected) {
70
- tdStyle.borderLeft = `3px solid ${selectedBorderColor}`;
71
- tdStyle.boxShadow = `inset 0 0 0 1px ${selectedShadowColor}`;
72
- if (!item.groupOnly) {
73
- tdStyle.backgroundColor = selectedSlotColor;
74
- }
75
- }
76
- if (CustomResourceCell) {
77
- return /*#__PURE__*/_jsx("tr", {
78
- "aria-selected": isRowSelected,
79
- children: /*#__PURE__*/_jsx("td", {
80
- "data-resource-id": item.slotId,
81
- style: tdStyle,
82
- children: /*#__PURE__*/_jsx(CustomResourceCell, {
83
- schedulerData: schedulerData,
84
- item: item,
85
- indents: indents,
86
- slotClickedFunc: slotClickedFunc,
87
- handleToggleExpand: handleToggleExpand
88
- })
89
- })
90
- }, item.slotId);
91
- }
92
- const slotCell = slotClickedFunc ? /*#__PURE__*/_jsxs("span", {
93
- className: "slot-cell",
94
- children: [indents, /*#__PURE__*/_jsx("button", {
95
- type: "button",
96
- style: {
97
- cursor: 'pointer'
98
- },
99
- className: "slot-text rbs-txt-btn-dis",
100
- onClick: () => slotClickedFunc(schedulerData, item),
101
- children: item.slotName
102
- })]
103
- }) : /*#__PURE__*/_jsxs("span", {
104
- className: "slot-cell",
105
- children: [indents, /*#__PURE__*/_jsx("button", {
106
- type: "button",
107
- className: "slot-text rbs-txt-btn-dis",
108
- style: {
109
- cursor: slotClickedFunc === undefined ? undefined : 'pointer'
110
- },
111
- children: item.slotName
112
- })]
56
+ const resourceList = displayRenderData.map(item => {
57
+ if (schedulerData.isVerticalResourceView()) {
58
+ const timeLabel = schedulerData.localeDayjs(new Date(item.slotName)).format('HH:mm');
59
+ return (_jsx("tr", { style: { height: item.rowHeight }, children: _jsx("td", { "data-resource-id": item.slotId, style: { height: item.rowHeight, minHeight: item.rowHeight, textAlign: 'center' }, className: "header2-text", children: _jsx("span", { children: timeLabel }) }) }, item.slotId));
60
+ }
61
+ const indents = [];
62
+ for (let i = 0; i < item.indent; i += 1) {
63
+ indents.push(_jsx("span", { className: "expander-space" }, `es${i}`));
64
+ }
65
+ return renderSlotItem(item, indents);
113
66
  });
114
- let slotItem = /*#__PURE__*/_jsx("div", {
115
- title: item.slotTitle || item.slotName,
116
- className: "overflow-text header2-text",
117
- style: {
118
- textAlign: 'left'
119
- },
120
- children: slotCell
121
- });
122
- if (slotItemTemplateResolver) {
123
- const resolvedTemplate = slotItemTemplateResolver(schedulerData, item, slotClickedFunc, width, 'overflow-text header2-text');
124
- if (resolvedTemplate) {
125
- slotItem = resolvedTemplate;
126
- }
127
- }
128
- return /*#__PURE__*/_jsx("tr", {
129
- "aria-selected": isRowSelected,
130
- children: /*#__PURE__*/_jsx("td", {
131
- "data-resource-id": item.slotId,
132
- style: tdStyle,
133
- children: slotItem
134
- })
135
- }, item.slotId);
136
- };
137
- const resourceList = displayRenderData.map(item => {
138
- if (schedulerData.isVerticalResourceView()) {
139
- const timeLabel = schedulerData.localeDayjs(new Date(item.slotName)).format('HH:mm');
140
- return /*#__PURE__*/_jsx("tr", {
141
- style: {
142
- height: item.rowHeight
143
- },
144
- children: /*#__PURE__*/_jsx("td", {
145
- "data-resource-id": item.slotId,
146
- style: {
147
- height: item.rowHeight,
148
- minHeight: item.rowHeight,
149
- textAlign: 'center'
150
- },
151
- className: "header2-text",
152
- children: /*#__PURE__*/_jsx("span", {
153
- children: timeLabel
154
- })
155
- })
156
- }, item.slotId);
157
- }
158
- const indents = [];
159
- for (let i = 0; i < item.indent; i += 1) {
160
- indents.push(/*#__PURE__*/_jsx("span", {
161
- className: "expander-space"
162
- }, `es${i}`));
163
- }
164
- return renderSlotItem(item, indents);
165
- });
166
- return /*#__PURE__*/_jsx("section", {
167
- style: {
168
- paddingBottom
169
- },
170
- children: /*#__PURE__*/_jsx("table", {
171
- className: "resource-table",
172
- children: /*#__PURE__*/_jsx("tbody", {
173
- children: resourceList
174
- })
175
- })
176
- });
67
+ return (_jsx("section", { style: { paddingBottom }, children: _jsx("table", { className: "resource-table", children: _jsx("tbody", { children: resourceList }) }) }));
177
68
  }
178
- ResourceView.propTypes = {
179
- schedulerData: PropTypes.object.isRequired,
180
- schedulerDataVersion: PropTypes.number,
181
- contentScrollbarHeight: PropTypes.number.isRequired,
182
- slotClickedFunc: PropTypes.func,
183
- slotItemTemplateResolver: PropTypes.func,
184
- toggleExpandFunc: PropTypes.func,
185
- CustomResourceCell: PropTypes.func,
186
- isSelecting: PropTypes.bool,
187
- selectedResourceIds: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])), PropTypes.instanceOf(Set)])
188
- };
189
- export default /*#__PURE__*/React.memo(ResourceView);
69
+ export default React.memo(ResourceView);
@@ -0,0 +1,136 @@
1
+ import { type Dayjs } from 'dayjs';
2
+ import { CellUnit, ViewType } from '../config/default';
3
+ import type { Behaviors, DateInput, EventGroup, Header, HeaderItem, Id, LocaleDayjs, RenderItem, Resource, SchedulerConfig, SchedulerEvent, Size, Slot } from '../types';
4
+ type StepUnit = 'minutes' | 'days' | 'weeks' | 'months' | 'years' | 'quarters';
5
+ export default class SchedulerData {
6
+ resources: Resource[];
7
+ events: SchedulerEvent[];
8
+ eventGroups: EventGroup[];
9
+ eventGroupsAutoGenerated: boolean;
10
+ viewType: ViewType;
11
+ cellUnit: CellUnit;
12
+ showAgenda: boolean;
13
+ isEventPerspective: boolean;
14
+ resizing: boolean;
15
+ scrollToSpecialDayjs: boolean;
16
+ documentWidth: number;
17
+ documentHeight: number;
18
+ schedulerHeaderHeight: number;
19
+ version: number;
20
+ localeDayjs: LocaleDayjs;
21
+ config: SchedulerConfig;
22
+ behaviors: Behaviors;
23
+ selectDate: Dayjs;
24
+ startDate: Dayjs;
25
+ endDate: Dayjs;
26
+ timeSlots: Header[];
27
+ headers: Header[];
28
+ renderData: RenderItem[];
29
+ _shouldReloadViewType: boolean;
30
+ _batchCount: number;
31
+ _versionChangeCallback: ((version: number) => void) | null;
32
+ _pendingVersion?: number;
33
+ constructor(date?: DateInput, viewType?: ViewType, showAgenda?: boolean, isEventPerspective?: boolean, newConfig?: Partial<SchedulerConfig> | undefined, newBehaviors?: Partial<Behaviors> | undefined);
34
+ _createLocaleDayjs(): LocaleDayjs;
35
+ /**
36
+ * Update user-facing labels from the i18n provider
37
+ * This allows apps to provide localized labels via setLabelsProvider()
38
+ * @private
39
+ */
40
+ _updateLabelsFromI18n(locale?: string): void;
41
+ setVersionChangeNotifier(callback: ((version: number) => void) | null | undefined): void;
42
+ beginBatch(): void;
43
+ endBatch(): void;
44
+ bumpVersion(): void;
45
+ getVersion(): number;
46
+ isVerticalResourceView(): boolean;
47
+ setSchedulerLocale(preset: string): void;
48
+ setResources(resources: Resource[]): void;
49
+ setEventGroupsAutoGenerated(autoGenerated: boolean): void;
50
+ setEventGroups(eventGroups: EventGroup[]): void;
51
+ setMinuteStep(minuteStep: number): void;
52
+ setUnderneathHeight(underneathHeight: number): void;
53
+ getMinuteStepsInHour(): number;
54
+ addResource(resource: Resource): void;
55
+ addEventGroup(eventGroup: EventGroup): void;
56
+ removeEventGroupById(eventGroupId: Id): void;
57
+ containsEventGroupId(eventGroupId: Id): boolean;
58
+ setEvents(events: SchedulerEvent[]): void;
59
+ setScrollToSpecialDayjs(scrollToSpecialDayjs: boolean): void;
60
+ prev(): void;
61
+ next(): void;
62
+ setDate(date?: DateInput): void;
63
+ setViewType(viewType?: ViewType, showAgenda?: boolean, isEventPerspective?: boolean): void;
64
+ setSchedulerMaxHeight(newSchedulerMaxHeight: number): void;
65
+ isSchedulerResponsive(): boolean;
66
+ toggleExpandStatus(slotId: Id): void;
67
+ isResourceViewResponsive(): boolean;
68
+ isContentViewResponsive(): boolean;
69
+ getSchedulerWidth(): number;
70
+ getSchedulerHeight(): number;
71
+ _getConfiguredResourceTableWidth(): number;
72
+ getResourceTableWidth(): number;
73
+ getContentCellWidth(): number;
74
+ getContentTableWidth(): number;
75
+ getScrollToSpecialDayjs(): boolean;
76
+ getSlots(): Slot[];
77
+ getSlotById(slotId: Id): Slot | undefined;
78
+ getResourceById(resourceId: Id): Resource | undefined;
79
+ getHeaderGroupRowsHeight(): number;
80
+ getTableHeaderHeight(): number;
81
+ getSchedulerContentDesiredHeight(): number;
82
+ getCellMaxEvents(): number;
83
+ getSelectedDate(): string;
84
+ getViewStartDate(): Dayjs;
85
+ getViewEndDate(): Dayjs;
86
+ getViewDates(): {
87
+ startDate: Dayjs;
88
+ endDate: Dayjs;
89
+ };
90
+ getDateLabel(): string;
91
+ addEvent(newEvent: SchedulerEvent): void;
92
+ updateEventStart(event: SchedulerEvent, newStart: string): void;
93
+ updateEventEnd(event: SchedulerEvent, newEnd: string): void;
94
+ swapEvent(eventSource: SchedulerEvent, eventDest: SchedulerEvent): void;
95
+ swapEvent2(eventSource: SchedulerEvent, eventDest: SchedulerEvent): void;
96
+ moveEvent(event: SchedulerEvent, newSlotId: Id, newSlotName: string | undefined, newStart: string, newEnd: string): void;
97
+ isEventInTimeWindow(eventStart: Dayjs, eventEnd: Dayjs, windowStart: Dayjs, windowEnd: Dayjs): boolean;
98
+ removeEvent(event: SchedulerEvent): void;
99
+ removeEventById(eventId: Id): void;
100
+ getResourceTableConfigWidth(): Size;
101
+ getContentCellConfigWidth(): Size;
102
+ _setDocumentWidth(documentWidth: number): void;
103
+ _setDocumentHeight(documentHeight: number): void;
104
+ _setSchedulerHeaderHeight(schedulerHeaderHeight: number): void;
105
+ _detachEvent(event: SchedulerEvent): void;
106
+ _attachEvent(event: SchedulerEvent): void;
107
+ _handleRecurringEvents(): void;
108
+ _resolveDate(num: number, date?: DateInput | undefined): void;
109
+ _createHeaders(): void;
110
+ _createInitHeaderEvents(header: Header): HeaderItem;
111
+ _createHeaderEvent(render: boolean, span: number, eventItem: SchedulerEvent): {
112
+ render: boolean;
113
+ span: number;
114
+ eventItem: SchedulerEvent;
115
+ };
116
+ _getEventSlotId(event: SchedulerEvent): Id;
117
+ _getEventGroupId(event: SchedulerEvent): string;
118
+ _getEventGroupName(event: SchedulerEvent): string;
119
+ _generateEventGroups(): void;
120
+ _createInitRenderData(isEventPerspective: boolean, eventGroups: EventGroup[], resources: Resource[], headers: Header[]): RenderItem[];
121
+ _getCellStep(): {
122
+ amount: number;
123
+ unit: StepUnit;
124
+ };
125
+ _getSpan(startTime: string, endTime: string, headers: Header[]): number;
126
+ _validateResource(resources: Resource[]): void;
127
+ _validateEventGroups(eventGroups: EventGroup[]): void;
128
+ _validateEvents(events: SchedulerEvent[]): void;
129
+ _validateMinuteStep(minuteStep: number): void;
130
+ _compare(event1: SchedulerEvent, event2: SchedulerEvent): -1 | 1;
131
+ _createRenderData(): void;
132
+ _startResizing(): void;
133
+ _stopResizing(): void;
134
+ _isResizing(): boolean;
135
+ }
136
+ export {};