@isma91/react-scheduler 4.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 (134) hide show
  1. package/.github/workflows/publish.yml +29 -0
  2. package/.github/workflows/tests.yml +35 -0
  3. package/.gitignore +32 -0
  4. package/.husky/pre-commit +2 -0
  5. package/.prettierignore +1 -0
  6. package/.prettierrc.json +7 -0
  7. package/.yarnrc.yml +1 -0
  8. package/LICENSE +24 -0
  9. package/README.md +172 -0
  10. package/dist/LICENSE +24 -0
  11. package/dist/README.md +172 -0
  12. package/dist/SchedulerComponent.d.ts +3 -0
  13. package/dist/components/common/Cell.d.ts +13 -0
  14. package/dist/components/common/LocaleArrow.d.ts +8 -0
  15. package/dist/components/common/ResourceHeader.d.ts +6 -0
  16. package/dist/components/common/Tabs.d.ts +16 -0
  17. package/dist/components/common/TodayTypo.d.ts +8 -0
  18. package/dist/components/common/WithResources.d.ts +6 -0
  19. package/dist/components/events/Actions.d.ts +8 -0
  20. package/dist/components/events/AgendaEventsList.d.ts +7 -0
  21. package/dist/components/events/CurrentTimeBar.d.ts +11 -0
  22. package/dist/components/events/EmptyAgenda.d.ts +2 -0
  23. package/dist/components/events/EventItem.d.ts +10 -0
  24. package/dist/components/events/EventItemPopover.d.ts +9 -0
  25. package/dist/components/events/MonthEvents.d.ts +13 -0
  26. package/dist/components/events/TodayEvents.d.ts +16 -0
  27. package/dist/components/hoc/DateProvider.d.ts +5 -0
  28. package/dist/components/inputs/DatePicker.d.ts +14 -0
  29. package/dist/components/inputs/Input.d.ts +19 -0
  30. package/dist/components/inputs/SelectInput.d.ts +22 -0
  31. package/dist/components/month/MonthTable.d.ts +8 -0
  32. package/dist/components/nav/DayDateBtn.d.ts +6 -0
  33. package/dist/components/nav/MonthDateBtn.d.ts +6 -0
  34. package/dist/components/nav/Navigation.d.ts +3 -0
  35. package/dist/components/nav/WeekDateBtn.d.ts +8 -0
  36. package/dist/components/week/WeekTable.d.ts +11 -0
  37. package/dist/helpers/constants.d.ts +4 -0
  38. package/dist/helpers/generals.d.ts +78 -0
  39. package/dist/hooks/useArrowDisable.d.ts +5 -0
  40. package/dist/hooks/useCellAttributes.d.ts +18 -0
  41. package/dist/hooks/useDragAttributes.d.ts +10 -0
  42. package/dist/hooks/useEventPermissions.d.ts +7 -0
  43. package/dist/hooks/useStore.d.ts +2 -0
  44. package/dist/hooks/useSyncScroll.d.ts +8 -0
  45. package/dist/hooks/useWindowResize.d.ts +4 -0
  46. package/dist/index.d.ts +3 -0
  47. package/dist/index.js +2853 -0
  48. package/dist/package.json +65 -0
  49. package/dist/positionManger/context.d.ts +14 -0
  50. package/dist/positionManger/provider.d.ts +5 -0
  51. package/dist/positionManger/usePosition.d.ts +4 -0
  52. package/dist/store/context.d.ts +2 -0
  53. package/dist/store/default.d.ts +245 -0
  54. package/dist/store/provider.d.ts +7 -0
  55. package/dist/store/types.d.ts +27 -0
  56. package/dist/styles/styles.d.ts +30 -0
  57. package/dist/types.d.ts +372 -0
  58. package/dist/views/Day.d.ts +2 -0
  59. package/dist/views/DayAgenda.d.ts +7 -0
  60. package/dist/views/Editor.d.ts +11 -0
  61. package/dist/views/Month.d.ts +2 -0
  62. package/dist/views/MonthAgenda.d.ts +7 -0
  63. package/dist/views/Week.d.ts +2 -0
  64. package/dist/views/WeekAgenda.d.ts +8 -0
  65. package/eslint.config.js +79 -0
  66. package/index.html +41 -0
  67. package/jest.config.ts +194 -0
  68. package/package.json +137 -0
  69. package/public/favicon.ico +0 -0
  70. package/public/logo192.png +0 -0
  71. package/public/logo512.png +0 -0
  72. package/public/manifest.json +25 -0
  73. package/public/robots.txt +3 -0
  74. package/scripts/post-pack.js +34 -0
  75. package/src/App.tsx +25 -0
  76. package/src/Page1.tsx +67 -0
  77. package/src/events.tsx +227 -0
  78. package/src/index.tsx +21 -0
  79. package/src/lib/SchedulerComponent.tsx +78 -0
  80. package/src/lib/__tests__/index.test.tsx +24 -0
  81. package/src/lib/components/common/Cell.tsx +52 -0
  82. package/src/lib/components/common/LocaleArrow.tsx +38 -0
  83. package/src/lib/components/common/ResourceHeader.tsx +73 -0
  84. package/src/lib/components/common/Tabs.tsx +119 -0
  85. package/src/lib/components/common/TodayTypo.tsx +44 -0
  86. package/src/lib/components/common/WithResources.tsx +98 -0
  87. package/src/lib/components/events/Actions.tsx +65 -0
  88. package/src/lib/components/events/AgendaEventsList.tsx +115 -0
  89. package/src/lib/components/events/CurrentTimeBar.tsx +59 -0
  90. package/src/lib/components/events/EmptyAgenda.tsx +27 -0
  91. package/src/lib/components/events/EventItem.tsx +180 -0
  92. package/src/lib/components/events/EventItemPopover.tsx +179 -0
  93. package/src/lib/components/events/MonthEvents.tsx +141 -0
  94. package/src/lib/components/events/TodayEvents.tsx +99 -0
  95. package/src/lib/components/hoc/DateProvider.tsx +19 -0
  96. package/src/lib/components/inputs/DatePicker.tsx +95 -0
  97. package/src/lib/components/inputs/Input.tsx +113 -0
  98. package/src/lib/components/inputs/SelectInput.tsx +164 -0
  99. package/src/lib/components/month/MonthTable.tsx +207 -0
  100. package/src/lib/components/nav/DayDateBtn.tsx +77 -0
  101. package/src/lib/components/nav/MonthDateBtn.tsx +80 -0
  102. package/src/lib/components/nav/Navigation.tsx +201 -0
  103. package/src/lib/components/nav/WeekDateBtn.tsx +89 -0
  104. package/src/lib/components/week/WeekTable.tsx +229 -0
  105. package/src/lib/helpers/constants.ts +4 -0
  106. package/src/lib/helpers/generals.tsx +354 -0
  107. package/src/lib/hooks/useArrowDisable.ts +26 -0
  108. package/src/lib/hooks/useCellAttributes.ts +67 -0
  109. package/src/lib/hooks/useDragAttributes.ts +31 -0
  110. package/src/lib/hooks/useEventPermissions.ts +42 -0
  111. package/src/lib/hooks/useStore.ts +8 -0
  112. package/src/lib/hooks/useSyncScroll.ts +31 -0
  113. package/src/lib/hooks/useWindowResize.ts +37 -0
  114. package/src/lib/index.tsx +14 -0
  115. package/src/lib/positionManger/context.ts +14 -0
  116. package/src/lib/positionManger/provider.tsx +113 -0
  117. package/src/lib/positionManger/usePosition.ts +8 -0
  118. package/src/lib/store/context.ts +5 -0
  119. package/src/lib/store/default.ts +157 -0
  120. package/src/lib/store/provider.tsx +211 -0
  121. package/src/lib/store/types.ts +33 -0
  122. package/src/lib/styles/styles.ts +256 -0
  123. package/src/lib/types.ts +423 -0
  124. package/src/lib/views/Day.tsx +265 -0
  125. package/src/lib/views/DayAgenda.tsx +57 -0
  126. package/src/lib/views/Editor.tsx +258 -0
  127. package/src/lib/views/Month.tsx +82 -0
  128. package/src/lib/views/MonthAgenda.tsx +84 -0
  129. package/src/lib/views/Week.tsx +92 -0
  130. package/src/lib/views/WeekAgenda.tsx +81 -0
  131. package/src/vite-env.d.ts +3 -0
  132. package/tsconfig.build.json +5 -0
  133. package/tsconfig.json +27 -0
  134. package/vite.config.js +40 -0
@@ -0,0 +1,65 @@
1
+ {
2
+ "name": "@isma91/react-scheduler",
3
+ "version": "4.0.0",
4
+ "description": "React scheduler component based on Material-UI & date-fns",
5
+ "files": [
6
+ "*"
7
+ ],
8
+ "type": "module",
9
+ "exports": {
10
+ "./types": {
11
+ "import": "./types.d.ts"
12
+ },
13
+ ".": {
14
+ "import": "./index.js"
15
+ }
16
+ },
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "https://github.com/isma91/react-scheduler.git"
20
+ },
21
+ "author": "isma91 (fork of Aldabil)",
22
+ "bugs": {
23
+ "url": "https://github.com/isma91/react-scheduler/issues"
24
+ },
25
+ "keywords": [
26
+ "react",
27
+ "material-ui",
28
+ "calendar",
29
+ "scheduler"
30
+ ],
31
+ "license": "MIT",
32
+ "peerDependencies": {
33
+ "@mui/icons-material": ">=7.0.0",
34
+ "@mui/material": ">=7.0.0",
35
+ "@mui/x-date-pickers": ">=7.0.0",
36
+ "date-fns": ">=4.0.0",
37
+ "react": ">=18.0.0",
38
+ "react-dom": ">=18.0.0",
39
+ "rrule": ">=2.8.1"
40
+ },
41
+ "peerDependenciesMeta": {
42
+ "rrule": {
43
+ "optional": true
44
+ }
45
+ },
46
+ "eslintConfig": {
47
+ "extends": [
48
+ "react-app",
49
+ "react-app/jest"
50
+ ]
51
+ },
52
+ "browserslist": {
53
+ "production": [
54
+ ">0.2%",
55
+ "not dead",
56
+ "not op_mini all"
57
+ ],
58
+ "development": [
59
+ "last 1 chrome version",
60
+ "last 1 firefox version",
61
+ "last 1 safari version"
62
+ ]
63
+ },
64
+ "homepage": "https://github.com/aldabil21/react-scheduler#readme"
65
+ }
@@ -0,0 +1,14 @@
1
+ export type PositionManagerState = {
2
+ renderedSlots: {
3
+ [day: string]: {
4
+ [resourceId: string]: {
5
+ [eventId: string]: number;
6
+ };
7
+ };
8
+ };
9
+ };
10
+ type PositionManagerProps = {
11
+ setRenderedSlot(day: string, eventId: string, position: number, resourceId?: string): void;
12
+ };
13
+ export declare const PositionContext: import('react').Context<PositionManagerState & PositionManagerProps>;
14
+ export {};
@@ -0,0 +1,5 @@
1
+ type Props = {
2
+ children: React.ReactNode;
3
+ };
4
+ export declare const PositionProvider: ({ children }: Props) => import("react/jsx-runtime").JSX.Element;
5
+ export {};
@@ -0,0 +1,4 @@
1
+ declare const usePosition: () => import('./context').PositionManagerState & {
2
+ setRenderedSlot(day: string, eventId: string, position: number, resourceId?: string): void;
3
+ };
4
+ export default usePosition;
@@ -0,0 +1,2 @@
1
+ import { Store } from './types';
2
+ export declare const StoreContext: import('react').Context<Store>;
@@ -0,0 +1,245 @@
1
+ import { SchedulerProps } from '../types';
2
+ export declare const defaultProps: (props: Partial<SchedulerProps>) => {
3
+ height: number;
4
+ alwaysShowAgendaDays?: boolean | undefined;
5
+ month: import('../types').MonthProps | null;
6
+ week: import('../types').WeekProps | null;
7
+ day: import('../types').DayProps | null;
8
+ navigation: boolean;
9
+ disableViewNavigator: boolean;
10
+ navigationPickerProps?: Partial<Omit<import('@mui/x-date-pickers').DateCalendarProps, "open" | "onClose" | "openTo" | "views" | "value" | "readOnly" | "onChange">> | undefined;
11
+ events: import('../types').ProcessedEvent[];
12
+ eventRenderer?: ((props: import('../types').EventRendererProps) => React.ReactNode | null) | undefined;
13
+ getRemoteEvents?: ((params: import('../types').RemoteQuery) => Promise<import('../types').ProcessedEvent[] | void>) | undefined;
14
+ fields: import('../types').FieldProps[];
15
+ loading: boolean;
16
+ loadingComponent?: import('react').ReactNode;
17
+ onConfirm: ((event: import('../types').ProcessedEvent, action: import('../types').EventActions) => Promise<import('../types').ProcessedEvent>) | undefined;
18
+ onDelete: ((deletedId: string | number) => Promise<string | number | void>) | undefined;
19
+ customEditor: ((scheduler: import('../types').SchedulerHelpers) => React.ReactNode) | undefined;
20
+ customViewer?: ((event: import('../types').ProcessedEvent, close: () => void) => React.ReactNode) | undefined;
21
+ viewerExtraComponent: string | number | bigint | boolean | import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>> | Iterable<import('react').ReactNode> | Promise<string | number | bigint | boolean | import('react').ReactPortal | import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>> | Iterable<import('react').ReactNode> | null | undefined> | ((fields: import('../types').FieldProps[], event: import('../types').ProcessedEvent) => React.ReactNode) | null | undefined;
22
+ viewerTitleComponent?: ((event: import('../types').ProcessedEvent) => React.ReactNode) | undefined;
23
+ viewerSubtitleComponent?: ((event: import('../types').ProcessedEvent) => React.ReactNode) | undefined;
24
+ disableViewer?: boolean | undefined;
25
+ resources: import('../types').DefaultResource[];
26
+ resourceHeaderComponent: ((resource: import('../types').DefaultResource) => React.ReactNode) | undefined;
27
+ onResourceChange?: ((resource: import('../types').DefaultResource) => void) | undefined;
28
+ locale: import('date-fns').Locale;
29
+ timeZone?: string | undefined;
30
+ onEventDrop?: ((event: import('react').DragEvent<HTMLButtonElement>, droppedOn: Date, updatedEvent: import('../types').ProcessedEvent, originalEvent: import('../types').ProcessedEvent) => Promise<import('../types').ProcessedEvent | void>) | undefined;
31
+ onEventClick?: ((event: import('../types').ProcessedEvent) => void) | undefined;
32
+ onEventEdit?: ((event: import('../types').ProcessedEvent) => void) | undefined;
33
+ deletable: boolean;
34
+ editable: boolean;
35
+ draggable: boolean;
36
+ onSelectedDateChange?: ((date: Date) => void) | undefined;
37
+ onViewChange?: ((view: import('../components/nav/Navigation').View, agenda?: boolean) => void) | undefined;
38
+ stickyNavigation?: boolean | undefined;
39
+ onClickMore?: ((date: Date, gotToDay: (date: Date) => void) => void) | undefined;
40
+ onCellClick?: ((start: Date, end: Date, resourceKey?: string, resourceVal?: string | number) => void) | undefined;
41
+ customHeaderContent?: (() => React.ReactNode) | undefined;
42
+ stickyNavigationOffset?: number | undefined;
43
+ stickyNavigationHeight?: number | undefined;
44
+ currentTime?: Date | undefined;
45
+ showCurrentTimeBar: boolean;
46
+ currentTimeBarColor?: string | undefined;
47
+ forceInlineMultiDay: boolean;
48
+ translations: {
49
+ moreEvents: string;
50
+ loading: string;
51
+ noDataToDisplay: string;
52
+ validation?: {
53
+ required?: string;
54
+ invalidEmail?: string;
55
+ onlyNumbers?: string;
56
+ min?: string | ((min: number) => string);
57
+ max?: string | ((max: number) => string);
58
+ } | undefined;
59
+ navigation: {
60
+ month: string;
61
+ week: string;
62
+ day: string;
63
+ agenda: string;
64
+ today: string;
65
+ } & Record<import('../components/nav/Navigation').View, string> & {
66
+ today: string;
67
+ agenda: string;
68
+ };
69
+ form: {
70
+ addTitle: string;
71
+ editTitle: string;
72
+ confirm: string;
73
+ delete: string;
74
+ cancel: string;
75
+ } & {
76
+ addTitle: string;
77
+ editTitle: string;
78
+ confirm: string;
79
+ delete: string;
80
+ cancel: string;
81
+ };
82
+ event: {
83
+ title: string;
84
+ start: string;
85
+ end: string;
86
+ allDay: string;
87
+ } & Record<string, string> & {
88
+ title: string;
89
+ subtitle: string;
90
+ start: string;
91
+ end: string;
92
+ allDay: string;
93
+ };
94
+ };
95
+ resourceFields: {
96
+ idField: string;
97
+ textField: string;
98
+ subTextField: string;
99
+ avatarField: string;
100
+ colorField: string;
101
+ } & {
102
+ idField: string;
103
+ textField: string;
104
+ subTextField?: string;
105
+ avatarField?: string;
106
+ colorField?: string;
107
+ } & Record<string, string>;
108
+ view: import('../components/nav/Navigation').View;
109
+ selectedDate: Date;
110
+ resourceViewMode: "default" | "vertical" | "tabs";
111
+ direction: "rtl" | "ltr";
112
+ dialogMaxWidth: import('@mui/system').Breakpoint;
113
+ hourFormat: "12" | "24";
114
+ agenda: boolean | undefined;
115
+ enableAgenda: boolean;
116
+ };
117
+ export declare const initialStore: {
118
+ setProps: () => void;
119
+ dialog: boolean;
120
+ selectedRange: undefined;
121
+ selectedEvent: undefined;
122
+ selectedResource: undefined;
123
+ handleState: () => void;
124
+ getViews: () => never[];
125
+ toggleAgenda: () => void;
126
+ triggerDialog: () => void;
127
+ triggerLoading: () => void;
128
+ handleGotoDay: () => void;
129
+ confirmEvent: () => void;
130
+ setCurrentDragged: () => void;
131
+ onDrop: () => void;
132
+ height: number;
133
+ alwaysShowAgendaDays?: boolean | undefined;
134
+ month: import('../types').MonthProps | null;
135
+ week: import('../types').WeekProps | null;
136
+ day: import('../types').DayProps | null;
137
+ navigation: boolean;
138
+ disableViewNavigator: boolean;
139
+ navigationPickerProps?: Partial<Omit<import('@mui/x-date-pickers').DateCalendarProps, "open" | "onClose" | "openTo" | "views" | "value" | "readOnly" | "onChange">> | undefined;
140
+ events: import('../types').ProcessedEvent[];
141
+ eventRenderer?: ((props: import('../types').EventRendererProps) => React.ReactNode | null) | undefined;
142
+ getRemoteEvents?: ((params: import('../types').RemoteQuery) => Promise<import('../types').ProcessedEvent[] | void>) | undefined;
143
+ fields: import('../types').FieldProps[];
144
+ loading: boolean;
145
+ loadingComponent?: import('react').ReactNode;
146
+ onConfirm: ((event: import('../types').ProcessedEvent, action: import('../types').EventActions) => Promise<import('../types').ProcessedEvent>) | undefined;
147
+ onDelete: ((deletedId: string | number) => Promise<string | number | void>) | undefined;
148
+ customEditor: ((scheduler: import('../types').SchedulerHelpers) => React.ReactNode) | undefined;
149
+ customViewer?: ((event: import('../types').ProcessedEvent, close: () => void) => React.ReactNode) | undefined;
150
+ viewerExtraComponent: string | number | bigint | boolean | import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>> | Iterable<import('react').ReactNode> | Promise<string | number | bigint | boolean | import('react').ReactPortal | import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>> | Iterable<import('react').ReactNode> | null | undefined> | ((fields: import('../types').FieldProps[], event: import('../types').ProcessedEvent) => React.ReactNode) | null | undefined;
151
+ viewerTitleComponent?: ((event: import('../types').ProcessedEvent) => React.ReactNode) | undefined;
152
+ viewerSubtitleComponent?: ((event: import('../types').ProcessedEvent) => React.ReactNode) | undefined;
153
+ disableViewer?: boolean | undefined;
154
+ resources: import('../types').DefaultResource[];
155
+ resourceHeaderComponent: ((resource: import('../types').DefaultResource) => React.ReactNode) | undefined;
156
+ onResourceChange?: ((resource: import('../types').DefaultResource) => void) | undefined;
157
+ locale: import('date-fns').Locale;
158
+ timeZone?: string | undefined;
159
+ onEventDrop?: ((event: import('react').DragEvent<HTMLButtonElement>, droppedOn: Date, updatedEvent: import('../types').ProcessedEvent, originalEvent: import('../types').ProcessedEvent) => Promise<import('../types').ProcessedEvent | void>) | undefined;
160
+ onEventClick?: ((event: import('../types').ProcessedEvent) => void) | undefined;
161
+ onEventEdit?: ((event: import('../types').ProcessedEvent) => void) | undefined;
162
+ deletable: boolean;
163
+ editable: boolean;
164
+ draggable: boolean;
165
+ onSelectedDateChange?: ((date: Date) => void) | undefined;
166
+ onViewChange?: ((view: import('../components/nav/Navigation').View, agenda?: boolean) => void) | undefined;
167
+ stickyNavigation?: boolean | undefined;
168
+ onClickMore?: ((date: Date, gotToDay: (date: Date) => void) => void) | undefined;
169
+ onCellClick?: ((start: Date, end: Date, resourceKey?: string, resourceVal?: string | number) => void) | undefined;
170
+ customHeaderContent?: (() => React.ReactNode) | undefined;
171
+ stickyNavigationOffset?: number | undefined;
172
+ stickyNavigationHeight?: number | undefined;
173
+ currentTime?: Date | undefined;
174
+ showCurrentTimeBar: boolean;
175
+ currentTimeBarColor?: string | undefined;
176
+ forceInlineMultiDay: boolean;
177
+ translations: {
178
+ moreEvents: string;
179
+ loading: string;
180
+ noDataToDisplay: string;
181
+ validation?: {
182
+ required?: string;
183
+ invalidEmail?: string;
184
+ onlyNumbers?: string;
185
+ min?: string | ((min: number) => string);
186
+ max?: string | ((max: number) => string);
187
+ } | undefined;
188
+ navigation: {
189
+ month: string;
190
+ week: string;
191
+ day: string;
192
+ agenda: string;
193
+ today: string;
194
+ } & Record<import('../components/nav/Navigation').View, string> & {
195
+ today: string;
196
+ agenda: string;
197
+ };
198
+ form: {
199
+ addTitle: string;
200
+ editTitle: string;
201
+ confirm: string;
202
+ delete: string;
203
+ cancel: string;
204
+ } & {
205
+ addTitle: string;
206
+ editTitle: string;
207
+ confirm: string;
208
+ delete: string;
209
+ cancel: string;
210
+ };
211
+ event: {
212
+ title: string;
213
+ start: string;
214
+ end: string;
215
+ allDay: string;
216
+ } & Record<string, string> & {
217
+ title: string;
218
+ subtitle: string;
219
+ start: string;
220
+ end: string;
221
+ allDay: string;
222
+ };
223
+ };
224
+ resourceFields: {
225
+ idField: string;
226
+ textField: string;
227
+ subTextField: string;
228
+ avatarField: string;
229
+ colorField: string;
230
+ } & {
231
+ idField: string;
232
+ textField: string;
233
+ subTextField?: string;
234
+ avatarField?: string;
235
+ colorField?: string;
236
+ } & Record<string, string>;
237
+ view: import('../components/nav/Navigation').View;
238
+ selectedDate: Date;
239
+ resourceViewMode: "default" | "vertical" | "tabs";
240
+ direction: "rtl" | "ltr";
241
+ dialogMaxWidth: import('@mui/system').Breakpoint;
242
+ hourFormat: "12" | "24";
243
+ agenda: boolean | undefined;
244
+ enableAgenda: boolean;
245
+ };
@@ -0,0 +1,7 @@
1
+ import { SchedulerProps } from '../types';
2
+ type Props = {
3
+ children: React.ReactNode;
4
+ initial: Partial<SchedulerProps>;
5
+ };
6
+ export declare const StoreProvider: ({ children, initial }: Props) => import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -0,0 +1,27 @@
1
+ import { DragEvent } from 'react';
2
+ import { View } from '../components/nav/Navigation';
3
+ import { DefaultResource, EventActions, ProcessedEvent, SchedulerProps } from '../types';
4
+ export type SelectedRange = {
5
+ start: Date;
6
+ end: Date;
7
+ };
8
+ export interface SchedulerState extends SchedulerProps {
9
+ dialog: boolean;
10
+ selectedRange?: SelectedRange;
11
+ selectedEvent?: ProcessedEvent;
12
+ selectedResource?: DefaultResource["assignee"] | DefaultResource["assignee"][];
13
+ selectedTab?: DefaultResource["assignee"];
14
+ currentDragged?: ProcessedEvent;
15
+ enableAgenda?: boolean;
16
+ }
17
+ export interface Store extends SchedulerState {
18
+ handleState(value: SchedulerState[keyof SchedulerState], name: keyof SchedulerState): void;
19
+ getViews(): View[];
20
+ toggleAgenda: () => void;
21
+ triggerDialog(status: boolean, event?: SelectedRange | ProcessedEvent): void;
22
+ triggerLoading(status: boolean): void;
23
+ handleGotoDay(day: Date): void;
24
+ confirmEvent(event: ProcessedEvent | ProcessedEvent[], action: EventActions): void;
25
+ setCurrentDragged(event?: ProcessedEvent): void;
26
+ onDrop(event: DragEvent<HTMLButtonElement>, eventId: string, droppedStartTime: Date, resourceKey?: string, resourceVal?: string | number): void;
27
+ }
@@ -0,0 +1,30 @@
1
+ export declare const Wrapper: import('@emotion/styled').StyledComponent<import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme> & {
2
+ dialog: number;
3
+ }, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
4
+ export declare const Table: import('@emotion/styled').StyledComponent<import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme> & {
5
+ resource_count: number;
6
+ }, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
7
+ export declare const NavigationDiv: import('@emotion/styled').StyledComponent<import('@mui/material').PaperOwnProps & import('@mui/material/OverridableComponent').CommonProps & Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "children" | "classes" | "className" | "sx" | "style" | "square" | "elevation" | "variant"> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme> & {
8
+ sticky?: string;
9
+ offset?: number;
10
+ }, {}, {}>;
11
+ export declare const AgendaDiv: import('@emotion/styled').StyledComponent<import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme> & {
12
+ stickyOffset?: number;
13
+ stickyHeight?: number;
14
+ }, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
15
+ export declare const TableGrid: import('@emotion/styled').StyledComponent<import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme> & {
16
+ days: number;
17
+ sticky?: string;
18
+ stickyNavigation?: boolean;
19
+ stickyOffset?: number;
20
+ stickyHeight?: number;
21
+ indent?: string;
22
+ }, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
23
+ export declare const EventItemPaper: import('@emotion/styled').StyledComponent<import('@mui/material').PaperOwnProps & import('@mui/material/OverridableComponent').CommonProps & Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "children" | "classes" | "className" | "sx" | "style" | "square" | "elevation" | "variant"> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme> & {
24
+ disabled?: boolean;
25
+ }, {}, {}>;
26
+ export declare const PopperInner: import('@emotion/styled').StyledComponent<import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
27
+ export declare const EventActions: import('@emotion/styled').StyledComponent<import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
28
+ export declare const TimeIndicatorBar: import('@emotion/styled').StyledComponent<import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme> & {
29
+ color?: string;
30
+ }, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;