ezux 1.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.
- package/LICENSE +21 -0
- package/README.md +56 -0
- package/dist/EzEventModal-DtpvYwGr.js +684 -0
- package/dist/EzGroupingPanel-CFwKUrF_.js +59 -0
- package/dist/EzTableEditDialog-BIk_mNpI.js +60 -0
- package/dist/components/EzKanban/EzKanban.types.d.ts +789 -0
- package/dist/components/EzKanban/components/CardEditorModal.d.ts +23 -0
- package/dist/components/EzKanban/components/EzKanbanErrorFallback.d.ts +1 -0
- package/dist/components/EzKanban/components/FilterPopover.d.ts +10 -0
- package/dist/components/EzKanban/components/KanbanBoard.d.ts +62 -0
- package/dist/components/EzKanban/components/KanbanCard.d.ts +38 -0
- package/dist/components/EzKanban/components/KanbanColumn.d.ts +55 -0
- package/dist/components/EzKanban/components/KanbanSwimlane.d.ts +46 -0
- package/dist/components/EzKanban/components/KanbanToolbar.d.ts +41 -0
- package/dist/components/EzKanban/exports.d.ts +4 -0
- package/dist/components/EzKanban/hooks/useKanbanCards.d.ts +36 -0
- package/dist/components/EzKanban/hooks/useKanbanColumns.d.ts +27 -0
- package/dist/components/EzKanban/hooks/useKanbanDragDrop.d.ts +31 -0
- package/dist/components/EzKanban/hooks/useKanbanFilters.d.ts +23 -0
- package/dist/components/EzKanban/hooks/useKanbanState.d.ts +79 -0
- package/dist/components/EzKanban/hooks/useKanbanSwimlanes.d.ts +27 -0
- package/dist/components/EzKanban/hooks/useKanbanVirtualization.d.ts +16 -0
- package/dist/components/EzKanban/index.d.ts +45 -0
- package/dist/components/EzKanban/services/KanbanService.d.ts +30 -0
- package/dist/components/EzKanban/state/kanban.store.d.ts +33 -0
- package/dist/components/EzKanban/useEzKanban.d.ts +162 -0
- package/dist/components/EzKanban/views/KanbanTimelineView.d.ts +15 -0
- package/dist/components/EzLayout/Authentication/AuthSlider.d.ts +13 -0
- package/dist/components/EzLayout/Authentication/InputPassword.d.ts +7 -0
- package/dist/components/EzLayout/Authentication/SignInForm.d.ts +21 -0
- package/dist/components/EzLayout/Authentication/SignUpForm.d.ts +20 -0
- package/dist/components/EzLayout/EzHeader.d.ts +33 -0
- package/dist/components/EzLayout/EzLanguageSwitcher.d.ts +4 -0
- package/dist/components/EzLayout/EzLayout.types.d.ts +223 -0
- package/dist/components/EzLayout/EzSidebar.d.ts +14 -0
- package/dist/components/EzLayout/EzThemeColorChanger.d.ts +9 -0
- package/dist/components/EzLayout/EzThemeSwitcher.d.ts +8 -0
- package/dist/components/EzLayout/EzUserProfile.d.ts +23 -0
- package/dist/components/EzLayout/components/MainContent.d.ts +13 -0
- package/dist/components/EzLayout/hooks/useLayoutImperative.d.ts +17 -0
- package/dist/components/EzLayout/hooks/useLayoutState.d.ts +25 -0
- package/dist/components/EzLayout/index.d.ts +19 -0
- package/dist/components/EzLayout/useEzLayout.d.ts +26 -0
- package/dist/components/EzScheduler/EzScheduler.types.d.ts +1658 -0
- package/dist/components/EzScheduler/EzSchedulerToolbar.d.ts +117 -0
- package/dist/components/EzScheduler/components/EzEventModal.d.ts +17 -0
- package/dist/components/EzScheduler/components/EzOverlapAlert.d.ts +12 -0
- package/dist/components/EzScheduler/components/EzQuickInfoPopup.d.ts +22 -0
- package/dist/components/EzScheduler/components/EzResourceSidebar.d.ts +33 -0
- package/dist/components/EzScheduler/components/EzSchedulerContent.d.ts +123 -0
- package/dist/components/EzScheduler/components/EzSchedulerQuickAdd.d.ts +17 -0
- package/dist/components/EzScheduler/components/RecurrenceEditor.d.ts +7 -0
- package/dist/components/EzScheduler/components/SchedulerLoadingSpinner.d.ts +2 -0
- package/dist/components/EzScheduler/components/dnd/DraggableEvent.d.ts +21 -0
- package/dist/components/EzScheduler/components/dnd/DroppableSlot.d.ts +19 -0
- package/dist/components/EzScheduler/hooks/useRecurrence.d.ts +2 -0
- package/dist/components/EzScheduler/hooks/useSchedulerEventHandlers.d.ts +11 -0
- package/dist/components/EzScheduler/hooks/useSchedulerEvents.d.ts +26 -0
- package/dist/components/EzScheduler/hooks/useSchedulerImperative.d.ts +15 -0
- package/dist/components/EzScheduler/hooks/useSchedulerNavigation.d.ts +9 -0
- package/dist/components/EzScheduler/hooks/useSchedulerResources.d.ts +10 -0
- package/dist/components/EzScheduler/hooks/useSchedulerState.d.ts +14 -0
- package/dist/components/EzScheduler/hooks/useSchedulerVirtualization.d.ts +9 -0
- package/dist/components/EzScheduler/index.d.ts +41 -0
- package/dist/components/EzScheduler/models/EventSettings.d.ts +11 -0
- package/dist/components/EzScheduler/models/View.d.ts +49 -0
- package/dist/components/EzScheduler/models/index.d.ts +2 -0
- package/dist/components/EzScheduler/services/AttendeeService.d.ts +15 -0
- package/dist/components/EzScheduler/services/AuditService.d.ts +15 -0
- package/dist/components/EzScheduler/services/CollisionDetectionService.d.ts +19 -0
- package/dist/components/EzScheduler/services/DragAndDropService.d.ts +16 -0
- package/dist/components/EzScheduler/services/HistoryService.d.ts +31 -0
- package/dist/components/EzScheduler/services/ICalendarImportService.d.ts +16 -0
- package/dist/components/EzScheduler/services/PrintService.d.ts +7 -0
- package/dist/components/EzScheduler/services/RecurrenceEngine.d.ts +7 -0
- package/dist/components/EzScheduler/services/ReminderService.d.ts +17 -0
- package/dist/components/EzScheduler/services/SchedulerService.d.ts +69 -0
- package/dist/components/EzScheduler/services/SearchService.d.ts +11 -0
- package/dist/components/EzScheduler/services/SecurityService.d.ts +25 -0
- package/dist/components/EzScheduler/services/TimezoneService.d.ts +20 -0
- package/dist/components/EzScheduler/services/VirtualScrollingService.d.ts +34 -0
- package/dist/components/EzScheduler/state/scheduler.store.d.ts +27 -0
- package/dist/components/EzScheduler/templates/CellTemplate.d.ts +42 -0
- package/dist/components/EzScheduler/templates/EditorTemplate.d.ts +32 -0
- package/dist/components/EzScheduler/templates/HeaderTemplate.d.ts +36 -0
- package/dist/components/EzScheduler/tests/phase1_rendering.spec.d.ts +1 -0
- package/dist/components/EzScheduler/tests/phase2_events.spec.d.ts +1 -0
- package/dist/components/EzScheduler/tests/phase3_templates.spec.d.ts +1 -0
- package/dist/components/EzScheduler/tests/phase4_export.spec.d.ts +1 -0
- package/dist/components/EzScheduler/tests/phase5_advanced.spec.d.ts +1 -0
- package/dist/components/EzScheduler/tests/phase6_security.spec.d.ts +1 -0
- package/dist/components/EzScheduler/tests/phase7_regression.spec.d.ts +1 -0
- package/dist/components/EzScheduler/useEzScheduler.d.ts +152 -0
- package/dist/components/EzScheduler/utils/createDragConstraint.d.ts +7 -0
- package/dist/components/EzScheduler/utils/getWeekNumber.d.ts +8 -0
- package/dist/components/EzScheduler/utils/sanitizeHtml.d.ts +17 -0
- package/dist/components/EzScheduler/views/AgendaView.d.ts +33 -0
- package/dist/components/EzScheduler/views/DayWeekView.d.ts +182 -0
- package/dist/components/EzScheduler/views/MonthView.d.ts +65 -0
- package/dist/components/EzScheduler/views/TimelineView.d.ts +121 -0
- package/dist/components/EzSignature/EzSignature.d.ts +42 -0
- package/dist/components/EzSignature/EzSignature.test.d.ts +1 -0
- package/dist/components/EzSignature/EzSignature.types.d.ts +132 -0
- package/dist/components/EzSignature/index.d.ts +2 -0
- package/dist/components/EzTable/EzColumnMenu.d.ts +7 -0
- package/dist/components/EzTable/EzDateFilterTree.d.ts +7 -0
- package/dist/components/EzTable/EzExcelFilter.d.ts +6 -0
- package/dist/components/EzTable/EzFilterBuilder.d.ts +12 -0
- package/dist/components/EzTable/EzGroupingPanel.d.ts +9 -0
- package/dist/components/EzTable/EzHeaderContextMenu.d.ts +8 -0
- package/dist/components/EzTable/EzPagination.d.ts +19 -0
- package/dist/components/EzTable/EzTable.types.d.ts +1481 -0
- package/dist/components/EzTable/EzTableEditDialog.d.ts +15 -0
- package/dist/components/EzTable/EzTableFooter.d.ts +10 -0
- package/dist/components/EzTable/EzTableOverlays.d.ts +11 -0
- package/dist/components/EzTable/EzTableStatusBar.d.ts +6 -0
- package/dist/components/EzTable/EzTableToolbar.d.ts +58 -0
- package/dist/components/EzTable/SmartCell.d.ts +7 -0
- package/dist/components/EzTable/__tests__/EzTableDX.test.d.ts +0 -0
- package/dist/components/EzTable/__tests__/EzTableEnterprise.test.d.ts +1 -0
- package/dist/components/EzTable/__tests__/useEzTable.test.d.ts +1 -0
- package/dist/components/EzTable/components/AdvancedColumnFilter.d.ts +16 -0
- package/dist/components/EzTable/components/BooleanFilterSection.d.ts +7 -0
- package/dist/components/EzTable/components/DraggableHeader.d.ts +10 -0
- package/dist/components/EzTable/components/EzTableBodySection.d.ts +70 -0
- package/dist/components/EzTable/components/EzTableCell.d.ts +46 -0
- package/dist/components/EzTable/components/EzTableHeaderSection.d.ts +22 -0
- package/dist/components/EzTable/components/EzTablePaginationSection.d.ts +31 -0
- package/dist/components/EzTable/components/EzTableRow.d.ts +56 -0
- package/dist/components/EzTable/components/FilterActionButtons.d.ts +16 -0
- package/dist/components/EzTable/components/FilterRuleSelect.d.ts +26 -0
- package/dist/components/EzTable/components/SelectAllCheckbox.d.ts +21 -0
- package/dist/components/EzTable/components/SelectFilterSection.d.ts +18 -0
- package/dist/components/EzTable/components/VirtualizedFilterList.d.ts +21 -0
- package/dist/components/EzTable/constants/filterOptions.d.ts +47 -0
- package/dist/components/EzTable/context/EzTableContext.d.ts +10 -0
- package/dist/components/EzTable/context/TableConfigContext.d.ts +13 -0
- package/dist/components/EzTable/context/TableStore.d.ts +17 -0
- package/dist/components/EzTable/filterUtils.d.ts +5 -0
- package/dist/components/EzTable/hooks/useAutoFit.d.ts +4 -0
- package/dist/components/EzTable/hooks/useCellEventHandlers.d.ts +16 -0
- package/dist/components/EzTable/hooks/useColumnSizeVars.d.ts +6 -0
- package/dist/components/EzTable/hooks/useContainerResize.d.ts +11 -0
- package/dist/components/EzTable/hooks/useDialogStateInitialization.d.ts +8 -0
- package/dist/components/EzTable/hooks/useFilterSelection.d.ts +12 -0
- package/dist/components/EzTable/hooks/useTableFiltering.d.ts +23 -0
- package/dist/components/EzTable/hooks/useTableHistory.d.ts +87 -0
- package/dist/components/EzTable/hooks/useTableImperative.d.ts +42 -0
- package/dist/components/EzTable/hooks/useTableSelection.d.ts +32 -0
- package/dist/components/EzTable/hooks/useTableState.d.ts +31 -0
- package/dist/components/EzTable/hooks/useTableVirtualization.d.ts +33 -0
- package/dist/components/EzTable/index.d.ts +50 -0
- package/dist/components/EzTable/renderers/index.d.ts +6 -0
- package/dist/components/EzTable/services/TableService.d.ts +26 -0
- package/dist/components/EzTable/useEzTable.d.ts +17 -0
- package/dist/components/EzTable/utils/TextMeasurer.d.ts +1 -0
- package/dist/components/EzTable/utils/TruncatedTooltip.d.ts +7 -0
- package/dist/components/EzTable/utils/columnTypeDetector.d.ts +5 -0
- package/dist/components/EzTable/utils/filterTypeGuards.d.ts +3 -0
- package/dist/components/EzTable/utils/index.d.ts +1 -0
- package/dist/components/EzTreeView/EzTreeView.types.d.ts +395 -0
- package/dist/components/EzTreeView/EzTreeViewItem.d.ts +77 -0
- package/dist/components/EzTreeView/EzVirtualTree.d.ts +72 -0
- package/dist/components/EzTreeView/components/EzTreeViewLoadingSpinner.d.ts +2 -0
- package/dist/components/EzTreeView/hooks/useTreeDragDrop.d.ts +31 -0
- package/dist/components/EzTreeView/hooks/useTreeExpansion.d.ts +21 -0
- package/dist/components/EzTreeView/hooks/useTreeImperative.d.ts +28 -0
- package/dist/components/EzTreeView/hooks/useTreeSelection.d.ts +31 -0
- package/dist/components/EzTreeView/hooks/useTreeState.d.ts +21 -0
- package/dist/components/EzTreeView/hooks/useTreeVirtualization.d.ts +18 -0
- package/dist/components/EzTreeView/index.d.ts +40 -0
- package/dist/components/EzTreeView/services/TreeService.d.ts +11 -0
- package/dist/components/EzTreeView/useEzTreeView.d.ts +62 -0
- package/dist/components/EzTreeView/utils/treeUtils.d.ts +17 -0
- package/dist/components/shared/components/EzErrorBoundary.d.ts +18 -0
- package/dist/components/shared/components/EzLayoutErrorFallback.d.ts +2 -0
- package/dist/components/shared/components/EzLoadingSpinner.d.ts +8 -0
- package/dist/components/shared/components/EzSchedulerErrorFallback.d.ts +2 -0
- package/dist/components/shared/components/EzTableErrorFallback.d.ts +2 -0
- package/dist/components/shared/components/EzTreeViewErrorFallback.d.ts +2 -0
- package/dist/components/ui/avatar.d.ts +5 -0
- package/dist/components/ui/badge.d.ts +9 -0
- package/dist/components/ui/breadcrumb.d.ts +19 -0
- package/dist/components/ui/button.d.ts +12 -0
- package/dist/components/ui/calendar.d.ts +15 -0
- package/dist/components/ui/card.d.ts +8 -0
- package/dist/components/ui/checkbox.d.ts +7 -0
- package/dist/components/ui/command.d.ts +78 -0
- package/dist/components/ui/context-menu.d.ts +27 -0
- package/dist/components/ui/date-time-picker.d.ts +13 -0
- package/dist/components/ui/dropdown-menu.d.ts +27 -0
- package/dist/components/ui/index.d.ts +26 -0
- package/dist/components/ui/input.d.ts +5 -0
- package/dist/components/ui/label.d.ts +5 -0
- package/dist/components/ui/modal.d.ts +9 -0
- package/dist/components/ui/password-input.d.ts +5 -0
- package/dist/components/ui/popover.d.ts +4 -0
- package/dist/components/ui/progress.d.ts +7 -0
- package/dist/components/ui/radio-group.d.ts +5 -0
- package/dist/components/ui/scroll-area.d.ts +5 -0
- package/dist/components/ui/select.d.ts +24 -0
- package/dist/components/ui/skeleton.d.ts +2 -0
- package/dist/components/ui/switch.d.ts +4 -0
- package/dist/components/ui/table.d.ts +10 -0
- package/dist/components/ui/tabs.d.ts +14 -0
- package/dist/components/ui/textarea.d.ts +5 -0
- package/dist/components/ui/tooltip.d.ts +7 -0
- package/dist/ezux.es.js +149 -0
- package/dist/ezux.umd.js +68 -0
- package/dist/index-DBwoXp4n.js +30656 -0
- package/dist/index.d.ts +70 -0
- package/dist/lib/perfect-freehand.d.ts +221 -0
- package/dist/lib/utils.d.ts +2 -0
- package/dist/shared/components/AnimatedText.d.ts +44 -0
- package/dist/shared/components/BaseCell.d.ts +14 -0
- package/dist/shared/components/BooleanRenderer.d.ts +34 -0
- package/dist/shared/components/ChartRenderer.d.ts +19 -0
- package/dist/shared/components/DeleteConfirmationModal.d.ts +11 -0
- package/dist/shared/components/EzContextMenu.d.ts +12 -0
- package/dist/shared/components/EzNotificationDropdown.d.ts +1 -0
- package/dist/shared/components/HighlightText.d.ts +4 -0
- package/dist/shared/components/Modal.d.ts +13 -0
- package/dist/shared/components/NotificationPanel.d.ts +2 -0
- package/dist/shared/components/PrimitiveRenderer.d.ts +39 -0
- package/dist/shared/components/SearchableSelect.d.ts +13 -0
- package/dist/shared/components/SelectRenderer.d.ts +33 -0
- package/dist/shared/components/StatusBadge.d.ts +12 -0
- package/dist/shared/components/TooltipWrapper.d.ts +12 -0
- package/dist/shared/components/index.d.ts +9 -0
- package/dist/shared/hooks/index.d.ts +56 -0
- package/dist/shared/hooks/useBaseComponent.d.ts +60 -0
- package/dist/shared/hooks/useComponentImperativeAPI.d.ts +11 -0
- package/dist/shared/hooks/useComponentState.d.ts +39 -0
- package/dist/shared/hooks/useCurrentTime.d.ts +6 -0
- package/dist/shared/hooks/useDataChangeEvents.d.ts +53 -0
- package/dist/shared/hooks/useDebounce.d.ts +10 -0
- package/dist/shared/hooks/useDeleteConfirmation.d.ts +9 -0
- package/dist/shared/hooks/useDialogState.d.ts +21 -0
- package/dist/shared/hooks/useDndHandlers.d.ts +17 -0
- package/dist/shared/hooks/useEditing.d.ts +107 -0
- package/dist/shared/hooks/useEventHandlers.d.ts +61 -0
- package/dist/shared/hooks/useEzTheme.d.ts +22 -0
- package/dist/shared/hooks/useFieldValidation.d.ts +24 -0
- package/dist/shared/hooks/useHistory.d.ts +13 -0
- package/dist/shared/hooks/useI18n.d.ts +9 -0
- package/dist/shared/hooks/useImperativeAPI.d.ts +8 -0
- package/dist/shared/hooks/useInitCoreServices.d.ts +5 -0
- package/dist/shared/hooks/useKeyboardNavigation.d.ts +36 -0
- package/dist/shared/hooks/useKeyboardShortcuts.d.ts +14 -0
- package/dist/shared/hooks/useLifecycleEvents.d.ts +22 -0
- package/dist/shared/hooks/useLoadingState.d.ts +17 -0
- package/dist/shared/hooks/useMediaQuery.d.ts +6 -0
- package/dist/shared/hooks/useNotificationService.d.ts +8 -0
- package/dist/shared/hooks/usePerformanceMonitor.d.ts +15 -0
- package/dist/shared/hooks/useRowSelectionEvents.d.ts +44 -0
- package/dist/shared/hooks/useSelection.d.ts +73 -0
- package/dist/shared/hooks/useService.d.ts +12 -0
- package/dist/shared/hooks/useServiceState.d.ts +12 -0
- package/dist/shared/hooks/useStateChangeEvents.d.ts +61 -0
- package/dist/shared/hooks/useTheme.d.ts +13 -0
- package/dist/shared/hooks/useVirtualization.d.ts +85 -0
- package/dist/shared/services/BaseService.d.ts +56 -0
- package/dist/shared/services/ContextMenuService.d.ts +58 -0
- package/dist/shared/services/ExportService.d.ts +35 -0
- package/dist/shared/services/FocusManagerService.d.ts +33 -0
- package/dist/shared/services/HierarchyService.d.ts +43 -0
- package/dist/shared/services/I18nService.d.ts +65 -0
- package/dist/shared/services/LayoutService.d.ts +80 -0
- package/dist/shared/services/NotificationService.d.ts +44 -0
- package/dist/shared/services/PersistenceService.d.ts +69 -0
- package/dist/shared/services/ServiceRegistry.d.ts +51 -0
- package/dist/shared/services/ThemeService.d.ts +49 -0
- package/dist/shared/services/VirtualizationService.d.ts +51 -0
- package/dist/shared/state/store.d.ts +10 -0
- package/dist/shared/themes.d.ts +25 -0
- package/dist/shared/types/BaseProps.d.ts +18 -0
- package/dist/shared/types/common.d.ts +292 -0
- package/dist/shared/types/commonTypes.d.ts +101 -0
- package/dist/shared/types/index.d.ts +2 -0
- package/dist/shared/utils/canvasUtils.d.ts +16 -0
- package/dist/shared/utils/commonUtils.d.ts +28 -0
- package/dist/shared/utils/csvUtils.d.ts +7 -0
- package/dist/shared/utils/dateUtils.d.ts +5 -0
- package/dist/shared/utils/dndUtils.d.ts +16 -0
- package/dist/shared/utils/ezStyleUtils.d.ts +64 -0
- package/dist/shared/utils/formatUtils.d.ts +20 -0
- package/dist/shared/utils/imperativeApiUtils.d.ts +36 -0
- package/dist/shared/utils/index.d.ts +11 -0
- package/dist/shared/utils/renderUtils.d.ts +6 -0
- package/dist/shared/utils/serviceUtils.d.ts +10 -0
- package/dist/shared/utils/styleUtils.d.ts +66 -0
- package/dist/shared/utils/validationUtils.d.ts +16 -0
- package/package.json +101 -0
|
@@ -0,0 +1,1658 @@
|
|
|
1
|
+
import { SharedBaseProps } from '../../shared/types/BaseProps';
|
|
2
|
+
import { IService } from '../../shared/services/ServiceRegistry';
|
|
3
|
+
/**
|
|
4
|
+
* Available view modes for the scheduler.
|
|
5
|
+
*/
|
|
6
|
+
export type View = 'Day' | 'Week' | 'WorkWeek' | 'Month' | 'TimelineDay' | 'TimelineWeek' | 'TimelineWorkWeek' | 'TimelineMonth' | 'Agenda' | 'MonthAgenda' | 'Year';
|
|
7
|
+
/**
|
|
8
|
+
* Action types for the scheduler editor.
|
|
9
|
+
*/
|
|
10
|
+
export type CurrentAction = 'Add' | 'Edit' | 'Delete';
|
|
11
|
+
export type ViewType = 'day' | 'week' | 'workweek' | 'month' | 'agenda' | 'timeline-day' | 'timeline-week' | 'timeline-month';
|
|
12
|
+
/**
|
|
13
|
+
* Configuration for event settings.
|
|
14
|
+
*/
|
|
15
|
+
export interface EventSettingsModel {
|
|
16
|
+
/**
|
|
17
|
+
* The data source for events.
|
|
18
|
+
* @group Models
|
|
19
|
+
*/
|
|
20
|
+
dataSource: Object[] | any;
|
|
21
|
+
/**
|
|
22
|
+
* Custom field mapping.
|
|
23
|
+
* @group Models
|
|
24
|
+
*/
|
|
25
|
+
fields?: FieldModel;
|
|
26
|
+
/**
|
|
27
|
+
* Allow adding new events.
|
|
28
|
+
* @group Models
|
|
29
|
+
*/
|
|
30
|
+
allowAdding?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Allow deleting events.
|
|
33
|
+
* @group Models
|
|
34
|
+
*/
|
|
35
|
+
allowDeleting?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Allow editing events.
|
|
38
|
+
* @group Models
|
|
39
|
+
*/
|
|
40
|
+
allowEditing?: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Enable event tooltips.
|
|
43
|
+
* @group Models
|
|
44
|
+
*/
|
|
45
|
+
enableTooltip?: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Template for event content.
|
|
48
|
+
* @group Models
|
|
49
|
+
*/
|
|
50
|
+
template?: string | ((data: EventData) => React.ReactNode);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Event field mapping configuration.
|
|
54
|
+
*/
|
|
55
|
+
export interface FieldModel {
|
|
56
|
+
/**
|
|
57
|
+
* ID field name.
|
|
58
|
+
* @group Models
|
|
59
|
+
*/
|
|
60
|
+
id?: string;
|
|
61
|
+
/**
|
|
62
|
+
* Subject/Title field name.
|
|
63
|
+
* @group Models
|
|
64
|
+
*/
|
|
65
|
+
subject?: string;
|
|
66
|
+
/**
|
|
67
|
+
* Start time field name.
|
|
68
|
+
* @group Models
|
|
69
|
+
*/
|
|
70
|
+
startTime?: string;
|
|
71
|
+
/**
|
|
72
|
+
* End time field name.
|
|
73
|
+
* @group Models
|
|
74
|
+
*/
|
|
75
|
+
endTime?: string;
|
|
76
|
+
/**
|
|
77
|
+
* Description field name.
|
|
78
|
+
* @group Models
|
|
79
|
+
*/
|
|
80
|
+
description?: string;
|
|
81
|
+
/**
|
|
82
|
+
* Location field name.
|
|
83
|
+
* @group Models
|
|
84
|
+
*/
|
|
85
|
+
location?: string;
|
|
86
|
+
/**
|
|
87
|
+
* Recurrence rule field name.
|
|
88
|
+
* @group Models
|
|
89
|
+
*/
|
|
90
|
+
recurrenceRule?: string;
|
|
91
|
+
/**
|
|
92
|
+
* Recurrence ID field name.
|
|
93
|
+
* @group Models
|
|
94
|
+
*/
|
|
95
|
+
recurrenceID?: string;
|
|
96
|
+
/**
|
|
97
|
+
* Recurrence exception field name.
|
|
98
|
+
* @group Models
|
|
99
|
+
*/
|
|
100
|
+
recurrenceException?: string;
|
|
101
|
+
/**
|
|
102
|
+
* Is all day field name.
|
|
103
|
+
* @group Models
|
|
104
|
+
*/
|
|
105
|
+
isAllDay?: string;
|
|
106
|
+
}
|
|
107
|
+
export interface EventData {
|
|
108
|
+
id: string | number;
|
|
109
|
+
subject: string;
|
|
110
|
+
startTime: Date;
|
|
111
|
+
endTime: Date;
|
|
112
|
+
isAllDay?: boolean;
|
|
113
|
+
recurrenceRule?: string;
|
|
114
|
+
resourceID?: string | number | (string | number)[];
|
|
115
|
+
[key: string]: any;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Attendee information for an event.
|
|
119
|
+
*/
|
|
120
|
+
export interface Attendee {
|
|
121
|
+
/**
|
|
122
|
+
* Unique identifier for the attendee.
|
|
123
|
+
* @group Models
|
|
124
|
+
*/
|
|
125
|
+
id: string;
|
|
126
|
+
/**
|
|
127
|
+
* Name of the attendee.
|
|
128
|
+
* @group Models
|
|
129
|
+
*/
|
|
130
|
+
name: string;
|
|
131
|
+
/**
|
|
132
|
+
* Email address.
|
|
133
|
+
* @group Models
|
|
134
|
+
*/
|
|
135
|
+
email?: string;
|
|
136
|
+
/**
|
|
137
|
+
* Avatar image URL.
|
|
138
|
+
* @group Models
|
|
139
|
+
*/
|
|
140
|
+
avatar?: string;
|
|
141
|
+
/**
|
|
142
|
+
* RSVP status.
|
|
143
|
+
* @group Models
|
|
144
|
+
*/
|
|
145
|
+
status?: 'accepted' | 'declined' | 'tentative' | 'needs-action';
|
|
146
|
+
/**
|
|
147
|
+
* Whether attendance is required.
|
|
148
|
+
* @group Models
|
|
149
|
+
*/
|
|
150
|
+
required?: boolean;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Reminder configuration for an event.
|
|
154
|
+
*/
|
|
155
|
+
export interface Reminder {
|
|
156
|
+
/**
|
|
157
|
+
* Unique identifier for the reminder.
|
|
158
|
+
* @group Models
|
|
159
|
+
*/
|
|
160
|
+
id: string;
|
|
161
|
+
/**
|
|
162
|
+
* Type of reminder.
|
|
163
|
+
* @group Models
|
|
164
|
+
*/
|
|
165
|
+
type: 'email' | 'popup' | 'sms';
|
|
166
|
+
/**
|
|
167
|
+
* Minutes before start to trigger.
|
|
168
|
+
* @group Models
|
|
169
|
+
*/
|
|
170
|
+
minutesBefore: number;
|
|
171
|
+
/**
|
|
172
|
+
* Current status.
|
|
173
|
+
* @group Models
|
|
174
|
+
*/
|
|
175
|
+
status?: 'pending' | 'sent' | 'dismissed';
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Represents a single event in the scheduler.
|
|
179
|
+
*/
|
|
180
|
+
export interface SchedulerEvent {
|
|
181
|
+
/** Unique identifier for the event */
|
|
182
|
+
id: string;
|
|
183
|
+
/** Title of the event displayed in the scheduler */
|
|
184
|
+
title: string;
|
|
185
|
+
/** Start date and time of the event */
|
|
186
|
+
start: Date;
|
|
187
|
+
/** End date and time of the event */
|
|
188
|
+
end: Date;
|
|
189
|
+
/** Resource ID associated with the event (single resource) */
|
|
190
|
+
resourceId?: string;
|
|
191
|
+
/** Resource IDs associated with the event (multiple resources) */
|
|
192
|
+
resourceIds?: string[];
|
|
193
|
+
/** Background color of the event */
|
|
194
|
+
color?: string;
|
|
195
|
+
/** Whether the event lasts all day */
|
|
196
|
+
allDay?: boolean;
|
|
197
|
+
/** Detailed description of the event */
|
|
198
|
+
description?: string;
|
|
199
|
+
/** Recurrence rule string (RRULE) */
|
|
200
|
+
rrule?: string;
|
|
201
|
+
/** Excluded dates for recurrence */
|
|
202
|
+
exdate?: string[];
|
|
203
|
+
/** Recurrence exception dates */
|
|
204
|
+
recurrenceException?: string;
|
|
205
|
+
/** ID of the parent recurrence event */
|
|
206
|
+
recurrenceId?: string;
|
|
207
|
+
/** Original start date of the recurrence instance */
|
|
208
|
+
originalStart?: Date;
|
|
209
|
+
/** Files attached to the event */
|
|
210
|
+
attachedFiles?: File[];
|
|
211
|
+
/** Whether the event blocks the time slot (e.g., lunch break) */
|
|
212
|
+
isBlock?: boolean;
|
|
213
|
+
/** Location of the event */
|
|
214
|
+
location?: string;
|
|
215
|
+
/** List of attendees */
|
|
216
|
+
attendees?: Attendee[];
|
|
217
|
+
/** List of reminders */
|
|
218
|
+
reminders?: Reminder[];
|
|
219
|
+
/** Whether the event is a holiday */
|
|
220
|
+
isHoliday?: boolean;
|
|
221
|
+
/** Whether the event slot is fully booked */
|
|
222
|
+
isFullyBooked?: boolean;
|
|
223
|
+
[key: string]: any;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Metadata about resource collection.
|
|
227
|
+
*/
|
|
228
|
+
export interface ResourceModel {
|
|
229
|
+
/**
|
|
230
|
+
* Name of the field in the event data.
|
|
231
|
+
* @group Models
|
|
232
|
+
*/
|
|
233
|
+
field: string;
|
|
234
|
+
/**
|
|
235
|
+
* Title of the resource.
|
|
236
|
+
* @group Models
|
|
237
|
+
*/
|
|
238
|
+
title: string;
|
|
239
|
+
/**
|
|
240
|
+
* Unique name index.
|
|
241
|
+
* @group Models
|
|
242
|
+
*/
|
|
243
|
+
name: string;
|
|
244
|
+
/**
|
|
245
|
+
* Resource data array.
|
|
246
|
+
* @group Models
|
|
247
|
+
*/
|
|
248
|
+
dataSource: Object[];
|
|
249
|
+
/**
|
|
250
|
+
* Field for resource text.
|
|
251
|
+
* @group Models
|
|
252
|
+
*/
|
|
253
|
+
textField: string;
|
|
254
|
+
/**
|
|
255
|
+
* Field for resource ID.
|
|
256
|
+
* @group Models
|
|
257
|
+
*/
|
|
258
|
+
idField: string;
|
|
259
|
+
/**
|
|
260
|
+
* Field for grouping.
|
|
261
|
+
* @group Models
|
|
262
|
+
*/
|
|
263
|
+
groupIDField?: string;
|
|
264
|
+
/**
|
|
265
|
+
* Field for resource color.
|
|
266
|
+
* @group Models
|
|
267
|
+
*/
|
|
268
|
+
colorField?: string;
|
|
269
|
+
/**
|
|
270
|
+
* Allow multiple resources.
|
|
271
|
+
* @group Models
|
|
272
|
+
*/
|
|
273
|
+
allowMultiple?: boolean;
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Represents a resource (e.g., person, room, equipment) in the scheduler.
|
|
277
|
+
*/
|
|
278
|
+
export interface Resource {
|
|
279
|
+
/** Unique identifier for the resource */
|
|
280
|
+
id: string;
|
|
281
|
+
/** Display name of the resource */
|
|
282
|
+
name: string;
|
|
283
|
+
/** Color associated with the resource */
|
|
284
|
+
color?: string;
|
|
285
|
+
/** URL to the resource's avatar image */
|
|
286
|
+
avatar?: string;
|
|
287
|
+
/** Working hours configuration for this resource */
|
|
288
|
+
workingHours?: {
|
|
289
|
+
start: number;
|
|
290
|
+
end: number;
|
|
291
|
+
days: number[];
|
|
292
|
+
};
|
|
293
|
+
[key: string]: any;
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Configuration for grouping resources.
|
|
297
|
+
*/
|
|
298
|
+
export interface GroupModel {
|
|
299
|
+
/**
|
|
300
|
+
* Group by date first.
|
|
301
|
+
* @group Models
|
|
302
|
+
*/
|
|
303
|
+
byDate?: boolean;
|
|
304
|
+
/**
|
|
305
|
+
* Group by group ID.
|
|
306
|
+
* @group Models
|
|
307
|
+
*/
|
|
308
|
+
byGroupID?: boolean;
|
|
309
|
+
/**
|
|
310
|
+
* List of resource names to group by.
|
|
311
|
+
* @group Models
|
|
312
|
+
*/
|
|
313
|
+
resources?: string[];
|
|
314
|
+
/**
|
|
315
|
+
* Enable compact view for groups.
|
|
316
|
+
* @group Models
|
|
317
|
+
*/
|
|
318
|
+
enableCompactView?: boolean;
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* View configuration.
|
|
322
|
+
*/
|
|
323
|
+
export interface ViewsModel {
|
|
324
|
+
/**
|
|
325
|
+
* View mode.
|
|
326
|
+
* @group Models
|
|
327
|
+
*/
|
|
328
|
+
option: View;
|
|
329
|
+
/**
|
|
330
|
+
* Allow virtual scrolling in this view.
|
|
331
|
+
* @group Models
|
|
332
|
+
*/
|
|
333
|
+
allowVirtualScrolling?: boolean;
|
|
334
|
+
/**
|
|
335
|
+
* Display name for the view.
|
|
336
|
+
* @group Models
|
|
337
|
+
*/
|
|
338
|
+
displayName?: string;
|
|
339
|
+
/**
|
|
340
|
+
* Start hour for the view.
|
|
341
|
+
* @group Models
|
|
342
|
+
*/
|
|
343
|
+
startHour?: string;
|
|
344
|
+
/**
|
|
345
|
+
* End hour for the view.
|
|
346
|
+
* @group Models
|
|
347
|
+
*/
|
|
348
|
+
endHour?: string;
|
|
349
|
+
/**
|
|
350
|
+
* Time interval in minutes.
|
|
351
|
+
* @group Models
|
|
352
|
+
*/
|
|
353
|
+
interval?: number;
|
|
354
|
+
/**
|
|
355
|
+
* Show weekend.
|
|
356
|
+
* @group Models
|
|
357
|
+
*/
|
|
358
|
+
showWeekend?: boolean;
|
|
359
|
+
/**
|
|
360
|
+
* Is this view selected.
|
|
361
|
+
* @group Models
|
|
362
|
+
*/
|
|
363
|
+
isSelected?: boolean;
|
|
364
|
+
}
|
|
365
|
+
/**
|
|
366
|
+
* Working hours configuration.
|
|
367
|
+
*/
|
|
368
|
+
export interface WorkHoursModel {
|
|
369
|
+
/**
|
|
370
|
+
* Highlight working hours.
|
|
371
|
+
* @group Models
|
|
372
|
+
*/
|
|
373
|
+
highlight?: boolean;
|
|
374
|
+
/**
|
|
375
|
+
* Start hour.
|
|
376
|
+
* @group Models
|
|
377
|
+
*/
|
|
378
|
+
start?: string;
|
|
379
|
+
/**
|
|
380
|
+
* End hour.
|
|
381
|
+
* @group Models
|
|
382
|
+
*/
|
|
383
|
+
end?: string;
|
|
384
|
+
}
|
|
385
|
+
/**
|
|
386
|
+
* Time scale configuration.
|
|
387
|
+
*/
|
|
388
|
+
export interface TimeScaleModel {
|
|
389
|
+
/**
|
|
390
|
+
* Enable time scale.
|
|
391
|
+
* @group Models
|
|
392
|
+
*/
|
|
393
|
+
enable: boolean;
|
|
394
|
+
/**
|
|
395
|
+
* Time interval in minutes.
|
|
396
|
+
* @group Models
|
|
397
|
+
*/
|
|
398
|
+
interval: number;
|
|
399
|
+
/**
|
|
400
|
+
* Number of slots per interval.
|
|
401
|
+
* @group Models
|
|
402
|
+
*/
|
|
403
|
+
slotCount: number;
|
|
404
|
+
/**
|
|
405
|
+
* Template for major time slots.
|
|
406
|
+
* @group Models
|
|
407
|
+
*/
|
|
408
|
+
majorSlotTemplate?: string | ((props: SlotTemplateProps) => React.ReactNode);
|
|
409
|
+
/**
|
|
410
|
+
* Template for minor time slots.
|
|
411
|
+
* @group Models
|
|
412
|
+
*/
|
|
413
|
+
minorSlotTemplate?: string | ((props: SlotTemplateProps) => React.ReactNode);
|
|
414
|
+
}
|
|
415
|
+
/**
|
|
416
|
+
* Props for the slot template.
|
|
417
|
+
*/
|
|
418
|
+
export interface SlotTemplateProps {
|
|
419
|
+
/**
|
|
420
|
+
* The date of the slot.
|
|
421
|
+
* @group Models
|
|
422
|
+
*/
|
|
423
|
+
date: Date;
|
|
424
|
+
/**
|
|
425
|
+
* Whether the slot is a working day.
|
|
426
|
+
* @group Models
|
|
427
|
+
*/
|
|
428
|
+
isWorkingDay: boolean;
|
|
429
|
+
/**
|
|
430
|
+
* The group index.
|
|
431
|
+
* @group Models
|
|
432
|
+
*/
|
|
433
|
+
groupIndex: number;
|
|
434
|
+
}
|
|
435
|
+
/**
|
|
436
|
+
* Header row configuration.
|
|
437
|
+
*/
|
|
438
|
+
export interface HeaderRowModel {
|
|
439
|
+
/**
|
|
440
|
+
* The header row option.
|
|
441
|
+
* @group Models
|
|
442
|
+
*/
|
|
443
|
+
option: 'Year' | 'Month' | 'Week' | 'Date' | 'Hour';
|
|
444
|
+
/**
|
|
445
|
+
* Template for the header row.
|
|
446
|
+
* @group Models
|
|
447
|
+
*/
|
|
448
|
+
template?: string | ((props: any) => React.ReactNode);
|
|
449
|
+
}
|
|
450
|
+
/**
|
|
451
|
+
* Toolbar item configuration.
|
|
452
|
+
*/
|
|
453
|
+
export interface ToolbarItemModel {
|
|
454
|
+
/**
|
|
455
|
+
* Text to display.
|
|
456
|
+
* @group Models
|
|
457
|
+
*/
|
|
458
|
+
text: string;
|
|
459
|
+
/**
|
|
460
|
+
* CSS class for the item.
|
|
461
|
+
* @group Models
|
|
462
|
+
*/
|
|
463
|
+
cssClass?: string;
|
|
464
|
+
/**
|
|
465
|
+
* CSS class for the icon.
|
|
466
|
+
* @group Models
|
|
467
|
+
*/
|
|
468
|
+
iconCss?: string;
|
|
469
|
+
/**
|
|
470
|
+
* Alignment of the item.
|
|
471
|
+
* @group Models
|
|
472
|
+
*/
|
|
473
|
+
align?: 'Left' | 'Center' | 'Right';
|
|
474
|
+
}
|
|
475
|
+
/**
|
|
476
|
+
* Timezone field configuration.
|
|
477
|
+
*/
|
|
478
|
+
export interface TimezoneFields {
|
|
479
|
+
/**
|
|
480
|
+
* Display label.
|
|
481
|
+
* @group Models
|
|
482
|
+
*/
|
|
483
|
+
label: string;
|
|
484
|
+
/**
|
|
485
|
+
* Timezone value.
|
|
486
|
+
* @group Models
|
|
487
|
+
*/
|
|
488
|
+
value: string;
|
|
489
|
+
}
|
|
490
|
+
/**
|
|
491
|
+
* Quick info templates configuration.
|
|
492
|
+
*/
|
|
493
|
+
export interface QuickInfoTemplatesModel {
|
|
494
|
+
/**
|
|
495
|
+
* Template for the content area.
|
|
496
|
+
* @group Models
|
|
497
|
+
*/
|
|
498
|
+
content?: string | ((props: any) => React.ReactNode);
|
|
499
|
+
/**
|
|
500
|
+
* Template for the footer area.
|
|
501
|
+
* @group Models
|
|
502
|
+
*/
|
|
503
|
+
footer?: string | ((props: any) => React.ReactNode);
|
|
504
|
+
/**
|
|
505
|
+
* Template for the header area.
|
|
506
|
+
* @group Models
|
|
507
|
+
*/
|
|
508
|
+
header?: string | ((props: any) => React.ReactNode);
|
|
509
|
+
}
|
|
510
|
+
export type WeekRule = 'FirstDay' | 'FirstFourDayWeek' | 'FirstFullWeek';
|
|
511
|
+
/**
|
|
512
|
+
* Component Injection (IoC)
|
|
513
|
+
*/
|
|
514
|
+
/**
|
|
515
|
+
* Component Injection (IoC).
|
|
516
|
+
*/
|
|
517
|
+
export interface EzSchedulerComponents {
|
|
518
|
+
/**
|
|
519
|
+
* Custom event component.
|
|
520
|
+
* @group Subcomponents
|
|
521
|
+
*/
|
|
522
|
+
event?: React.ComponentType<{
|
|
523
|
+
event: SchedulerEvent;
|
|
524
|
+
isPlaceholder?: boolean;
|
|
525
|
+
}>;
|
|
526
|
+
/**
|
|
527
|
+
* Custom toolbar component.
|
|
528
|
+
* @group Subcomponents
|
|
529
|
+
*/
|
|
530
|
+
toolbar?: React.ComponentType<any>;
|
|
531
|
+
/**
|
|
532
|
+
* Custom resource header component.
|
|
533
|
+
* @group Subcomponents
|
|
534
|
+
*/
|
|
535
|
+
resourceHeader?: React.ComponentType<{
|
|
536
|
+
resource: Resource;
|
|
537
|
+
}>;
|
|
538
|
+
/**
|
|
539
|
+
* Custom time slot component.
|
|
540
|
+
* @group Subcomponents
|
|
541
|
+
*/
|
|
542
|
+
timeSlot?: React.ComponentType<{
|
|
543
|
+
date: Date;
|
|
544
|
+
isWorkHour?: boolean;
|
|
545
|
+
}>;
|
|
546
|
+
}
|
|
547
|
+
/**
|
|
548
|
+
* Props for the EzScheduler component.
|
|
549
|
+
*
|
|
550
|
+
* @example
|
|
551
|
+
* ```tsx
|
|
552
|
+
* import { EzScheduler } from 'ezux';
|
|
553
|
+
*
|
|
554
|
+
* const events = [
|
|
555
|
+
* { id: 1, title: 'Meeting', start: new Date(), end: new Date() }
|
|
556
|
+
* ];
|
|
557
|
+
*
|
|
558
|
+
* return <EzScheduler events={events} />;
|
|
559
|
+
* ```
|
|
560
|
+
*/
|
|
561
|
+
export interface EzSchedulerProps extends SharedBaseProps {
|
|
562
|
+
/**
|
|
563
|
+
* Allow event dragging.
|
|
564
|
+
* @group Properties
|
|
565
|
+
*/
|
|
566
|
+
eventDrag?: boolean;
|
|
567
|
+
/**
|
|
568
|
+
* Allow keyboard navigation.
|
|
569
|
+
* @group Properties
|
|
570
|
+
*/
|
|
571
|
+
keyboardNavigation?: boolean;
|
|
572
|
+
/**
|
|
573
|
+
* Allow selecting multiple cells.
|
|
574
|
+
* @group Properties
|
|
575
|
+
*/
|
|
576
|
+
allowMultiCellSelection?: boolean;
|
|
577
|
+
/**
|
|
578
|
+
* Allow event resizing.
|
|
579
|
+
* @group Properties
|
|
580
|
+
*/
|
|
581
|
+
eventResize?: boolean;
|
|
582
|
+
/**
|
|
583
|
+
* Allow copying/pasting events via clipboard.
|
|
584
|
+
* @group Properties
|
|
585
|
+
*/
|
|
586
|
+
allowClipboard?: boolean;
|
|
587
|
+
/**
|
|
588
|
+
* Allow inline editing of events.
|
|
589
|
+
* @group Properties
|
|
590
|
+
*/
|
|
591
|
+
allowInline?: boolean;
|
|
592
|
+
/**
|
|
593
|
+
* Allow dragging multiple events.
|
|
594
|
+
* @group Properties
|
|
595
|
+
*/
|
|
596
|
+
allowMultiDrag?: boolean;
|
|
597
|
+
/**
|
|
598
|
+
* Allow selecting multiple rows.
|
|
599
|
+
* @group Properties
|
|
600
|
+
*/
|
|
601
|
+
allowMultiRowSelection?: boolean;
|
|
602
|
+
/**
|
|
603
|
+
* Allow overlapping events to be displayed.
|
|
604
|
+
* @group Properties
|
|
605
|
+
*/
|
|
606
|
+
eventOverlap?: boolean;
|
|
607
|
+
/**
|
|
608
|
+
* Allow touch swiping to navigate views.
|
|
609
|
+
* @group Properties
|
|
610
|
+
*/
|
|
611
|
+
allowSwiping?: boolean;
|
|
612
|
+
/**
|
|
613
|
+
* Number of days to show in Agenda view.
|
|
614
|
+
* @group Properties
|
|
615
|
+
*/
|
|
616
|
+
agendaDaysCount?: number;
|
|
617
|
+
/**
|
|
618
|
+
* Calendar system to use.
|
|
619
|
+
* @group Properties
|
|
620
|
+
*/
|
|
621
|
+
calendarMode?: 'Gregorian' | 'Islamic';
|
|
622
|
+
/**
|
|
623
|
+
* Template for cell headers.
|
|
624
|
+
* @group Properties
|
|
625
|
+
*/
|
|
626
|
+
cellHeaderTemplate?: string | ((props: any) => React.ReactNode);
|
|
627
|
+
/**
|
|
628
|
+
* Custom CSS class for the scheduler container.
|
|
629
|
+
* @group Properties
|
|
630
|
+
*/
|
|
631
|
+
cssClass?: string;
|
|
632
|
+
/**
|
|
633
|
+
* The initial view to display.
|
|
634
|
+
* @group Properties
|
|
635
|
+
*/
|
|
636
|
+
view?: View;
|
|
637
|
+
/**
|
|
638
|
+
* Date format for headers and tooltips.
|
|
639
|
+
* @group Properties
|
|
640
|
+
*/
|
|
641
|
+
dateFormat?: string;
|
|
642
|
+
/**
|
|
643
|
+
* Template for date headers.
|
|
644
|
+
* @group Properties
|
|
645
|
+
*/
|
|
646
|
+
dateHeader?: string | ((props: any) => React.ReactNode);
|
|
647
|
+
/**
|
|
648
|
+
* Template for date range display.
|
|
649
|
+
* @group Properties
|
|
650
|
+
*/
|
|
651
|
+
dateRangeTemplate?: string | ((props: any) => React.ReactNode);
|
|
652
|
+
/**
|
|
653
|
+
* Template for day headers.
|
|
654
|
+
* @group Properties
|
|
655
|
+
*/
|
|
656
|
+
dayHeaderTemplate?: string | ((props: any) => React.ReactNode);
|
|
657
|
+
/**
|
|
658
|
+
* Enable adaptive UI for mobile devices.
|
|
659
|
+
* @group Properties
|
|
660
|
+
*/
|
|
661
|
+
enableAdaptiveUI?: boolean;
|
|
662
|
+
/**
|
|
663
|
+
* Enable scrolling for the All Day row.
|
|
664
|
+
* @group Properties
|
|
665
|
+
*/
|
|
666
|
+
enableAllDayScroll?: boolean;
|
|
667
|
+
/**
|
|
668
|
+
* Enable state persistence (save settings to local storage).
|
|
669
|
+
* @group Properties
|
|
670
|
+
*/
|
|
671
|
+
enablePersistence?: boolean;
|
|
672
|
+
/**
|
|
673
|
+
* Validation for recurrence rules.
|
|
674
|
+
* @group Properties
|
|
675
|
+
*/
|
|
676
|
+
enableRecurrenceValidation?: boolean;
|
|
677
|
+
/**
|
|
678
|
+
* Enable RTL (Right-to-Left) text direction.
|
|
679
|
+
* @group Properties
|
|
680
|
+
*/
|
|
681
|
+
enableRtl?: boolean;
|
|
682
|
+
/**
|
|
683
|
+
* End hour of the scheduler (e.g., '18:00').
|
|
684
|
+
* @group Properties
|
|
685
|
+
*/
|
|
686
|
+
endHour?: string;
|
|
687
|
+
/**
|
|
688
|
+
* Configuration for event fields and settings.
|
|
689
|
+
* @group Properties
|
|
690
|
+
*/
|
|
691
|
+
eventSettings?: EventSettingsModel;
|
|
692
|
+
/**
|
|
693
|
+
* First day of the week (0=Sunday, 1=Monday, etc.).
|
|
694
|
+
* @group Properties
|
|
695
|
+
*/
|
|
696
|
+
firstDayOfWeek?: number;
|
|
697
|
+
/**
|
|
698
|
+
* First month of the year (0=January, etc.).
|
|
699
|
+
* @group Properties
|
|
700
|
+
*/
|
|
701
|
+
firstMonthOfYear?: number;
|
|
702
|
+
/**
|
|
703
|
+
* Configuration for grouping resources.
|
|
704
|
+
* @group Properties
|
|
705
|
+
*/
|
|
706
|
+
group?: GroupModel;
|
|
707
|
+
/**
|
|
708
|
+
* Template for header indentation.
|
|
709
|
+
* @group Properties
|
|
710
|
+
*/
|
|
711
|
+
headerIndentTemplate?: string | ((props: any) => React.ReactNode);
|
|
712
|
+
/**
|
|
713
|
+
* Custom header rows configuration.
|
|
714
|
+
* @group Properties
|
|
715
|
+
*/
|
|
716
|
+
headerRows?: HeaderRowModel[];
|
|
717
|
+
/**
|
|
718
|
+
* Height of the scheduler.
|
|
719
|
+
* @group Properties
|
|
720
|
+
*/
|
|
721
|
+
height?: string | number;
|
|
722
|
+
/**
|
|
723
|
+
* Hide days with no events in Agenda view.
|
|
724
|
+
* @group Properties
|
|
725
|
+
*/
|
|
726
|
+
hideEmptyAgendaDays?: boolean;
|
|
727
|
+
/**
|
|
728
|
+
* Whether the current view is All Day.
|
|
729
|
+
* @group Properties
|
|
730
|
+
*/
|
|
731
|
+
isAllDay?: boolean;
|
|
732
|
+
/**
|
|
733
|
+
* Locale for the scheduler.
|
|
734
|
+
* @group Properties
|
|
735
|
+
*/
|
|
736
|
+
locale?: string;
|
|
737
|
+
/**
|
|
738
|
+
* Maximum date navigable.
|
|
739
|
+
* @group Properties
|
|
740
|
+
*/
|
|
741
|
+
maxDate?: Date;
|
|
742
|
+
/**
|
|
743
|
+
* Minimum date navigable.
|
|
744
|
+
* @group Properties
|
|
745
|
+
*/
|
|
746
|
+
minDate?: Date;
|
|
747
|
+
/**
|
|
748
|
+
* Template for month view headers.
|
|
749
|
+
* @group Properties
|
|
750
|
+
*/
|
|
751
|
+
monthHeaderTemplate?: string | ((props: any) => React.ReactNode);
|
|
752
|
+
/**
|
|
753
|
+
* Show quick info popup on selection end.
|
|
754
|
+
* @group Properties
|
|
755
|
+
*/
|
|
756
|
+
quickInfoOnSelectionEnd?: boolean;
|
|
757
|
+
/**
|
|
758
|
+
* Enable read-only mode.
|
|
759
|
+
* @group Properties
|
|
760
|
+
*/
|
|
761
|
+
readOnly?: boolean;
|
|
762
|
+
/**
|
|
763
|
+
* Template for resource headers.
|
|
764
|
+
* @group Properties
|
|
765
|
+
*/
|
|
766
|
+
resourceHeaderTemplate?: string | ((props: any) => React.ReactNode);
|
|
767
|
+
/**
|
|
768
|
+
* Resources data.
|
|
769
|
+
* @group Properties
|
|
770
|
+
*/
|
|
771
|
+
resources?: ResourceModel[] | Resource[];
|
|
772
|
+
/**
|
|
773
|
+
* Auto-adjust row height based on content.
|
|
774
|
+
* @group Properties
|
|
775
|
+
*/
|
|
776
|
+
rowAutoHeight?: boolean;
|
|
777
|
+
/**
|
|
778
|
+
* The currently selected date.
|
|
779
|
+
* @group Properties
|
|
780
|
+
*/
|
|
781
|
+
selectedDate?: Date;
|
|
782
|
+
/**
|
|
783
|
+
* Show the header bar.
|
|
784
|
+
* @group Properties
|
|
785
|
+
*/
|
|
786
|
+
showHeaderBar?: boolean;
|
|
787
|
+
/**
|
|
788
|
+
* Show quick info popup on click.
|
|
789
|
+
* @group Properties
|
|
790
|
+
*/
|
|
791
|
+
showQuickInfoPopup?: boolean;
|
|
792
|
+
/**
|
|
793
|
+
* Show resource headers.
|
|
794
|
+
* @group Properties
|
|
795
|
+
*/
|
|
796
|
+
showResourceHeaders?: boolean;
|
|
797
|
+
/**
|
|
798
|
+
* Show current time indicator.
|
|
799
|
+
* @group Properties
|
|
800
|
+
*/
|
|
801
|
+
showTimeIndicator?: boolean;
|
|
802
|
+
/**
|
|
803
|
+
* Show current time indicator.
|
|
804
|
+
* @group Properties
|
|
805
|
+
*/
|
|
806
|
+
currentTimeIndicator?: boolean;
|
|
807
|
+
/**
|
|
808
|
+
* Start hour of the scheduler (e.g., '08:00').
|
|
809
|
+
* @group Properties
|
|
810
|
+
*/
|
|
811
|
+
startHour?: string;
|
|
812
|
+
/**
|
|
813
|
+
* Time scale configuration.
|
|
814
|
+
* @group Properties
|
|
815
|
+
*/
|
|
816
|
+
timeScale?: TimeScaleModel;
|
|
817
|
+
/**
|
|
818
|
+
* Timezone of the scheduler.
|
|
819
|
+
* @group Properties
|
|
820
|
+
*/
|
|
821
|
+
timezone?: string;
|
|
822
|
+
/**
|
|
823
|
+
* Timezone data source.
|
|
824
|
+
* @group Properties
|
|
825
|
+
*/
|
|
826
|
+
timezoneDataSource?: TimezoneFields[];
|
|
827
|
+
/**
|
|
828
|
+
* Toolbar items configuration.
|
|
829
|
+
* @group Properties
|
|
830
|
+
*/
|
|
831
|
+
toolbarItems?: (string | ToolbarItemModel)[];
|
|
832
|
+
/**
|
|
833
|
+
* Available views configuration.
|
|
834
|
+
* @group Properties
|
|
835
|
+
*/
|
|
836
|
+
views?: (View | ViewsModel)[];
|
|
837
|
+
/**
|
|
838
|
+
* Width of the scheduler.
|
|
839
|
+
* @group Properties
|
|
840
|
+
*/
|
|
841
|
+
width?: string | number;
|
|
842
|
+
/**
|
|
843
|
+
* Working days (0=Sun, 1=Mon, etc.).
|
|
844
|
+
* @group Properties
|
|
845
|
+
*/
|
|
846
|
+
workDays?: number[];
|
|
847
|
+
/**
|
|
848
|
+
* Working hours configuration.
|
|
849
|
+
* @group Properties
|
|
850
|
+
*/
|
|
851
|
+
workHours?: WorkHoursModel;
|
|
852
|
+
/**
|
|
853
|
+
* Template for cell content.
|
|
854
|
+
* @group Templates
|
|
855
|
+
*/
|
|
856
|
+
cell?: string | ((props: any) => React.ReactNode);
|
|
857
|
+
/**
|
|
858
|
+
* Template for editor footer.
|
|
859
|
+
* @group Templates
|
|
860
|
+
*/
|
|
861
|
+
editorFooterTemplate?: string | ((props: any) => React.ReactNode);
|
|
862
|
+
/**
|
|
863
|
+
* Template for editor header.
|
|
864
|
+
* @group Templates
|
|
865
|
+
*/
|
|
866
|
+
editorHeaderTemplate?: string | ((props: any) => React.ReactNode);
|
|
867
|
+
/**
|
|
868
|
+
* Template for editor content.
|
|
869
|
+
* @group Templates
|
|
870
|
+
*/
|
|
871
|
+
editorTemplate?: string | ((props: any) => React.ReactNode);
|
|
872
|
+
/**
|
|
873
|
+
* Enable HTML sanitizer for templates.
|
|
874
|
+
* @group Properties
|
|
875
|
+
*/
|
|
876
|
+
enableHtmlSanitizer?: boolean;
|
|
877
|
+
/**
|
|
878
|
+
* CSS class for event drag area.
|
|
879
|
+
* @group Properties
|
|
880
|
+
*/
|
|
881
|
+
eventDragArea?: string;
|
|
882
|
+
/**
|
|
883
|
+
* Number of months to display in year/month views.
|
|
884
|
+
* @group Properties
|
|
885
|
+
*/
|
|
886
|
+
monthsCount?: number;
|
|
887
|
+
/**
|
|
888
|
+
* Number of items to render outside visible area.
|
|
889
|
+
* @group Properties
|
|
890
|
+
*/
|
|
891
|
+
overscanCount?: number;
|
|
892
|
+
/** Progressive rendering for large datasets */
|
|
893
|
+
/**
|
|
894
|
+
* Progressive rendering for large datasets.
|
|
895
|
+
* @group Properties
|
|
896
|
+
*/
|
|
897
|
+
progressiveRendering?: boolean;
|
|
898
|
+
/**
|
|
899
|
+
* Distance in items to prefetch.
|
|
900
|
+
* @group Properties
|
|
901
|
+
*/
|
|
902
|
+
prefetchDistance?: number;
|
|
903
|
+
/**
|
|
904
|
+
* Debugging for virtualization.
|
|
905
|
+
* @group Properties
|
|
906
|
+
*/
|
|
907
|
+
debugVirtualization?: boolean;
|
|
908
|
+
/**
|
|
909
|
+
* Templates for quick info popup.
|
|
910
|
+
* @group Templates
|
|
911
|
+
*/
|
|
912
|
+
quickInfoTemplates?: QuickInfoTemplatesModel;
|
|
913
|
+
/**
|
|
914
|
+
* Show week numbers.
|
|
915
|
+
* @group Properties
|
|
916
|
+
*/
|
|
917
|
+
showWeekNumber?: boolean;
|
|
918
|
+
/**
|
|
919
|
+
* Show weekends.
|
|
920
|
+
* @group Properties
|
|
921
|
+
*/
|
|
922
|
+
showWeekend?: boolean;
|
|
923
|
+
/**
|
|
924
|
+
* Time format (e.g., 'HH:mm').
|
|
925
|
+
* @group Properties
|
|
926
|
+
*/
|
|
927
|
+
timeFormat?: string;
|
|
928
|
+
/**
|
|
929
|
+
* Week start rule.
|
|
930
|
+
* @group Properties
|
|
931
|
+
*/
|
|
932
|
+
weekRule?: WeekRule;
|
|
933
|
+
/**
|
|
934
|
+
* Recurrence engine instance.
|
|
935
|
+
* @group Properties
|
|
936
|
+
*/
|
|
937
|
+
recurrenceEngine?: any;
|
|
938
|
+
/**
|
|
939
|
+
* Duration of a time slot in minutes.
|
|
940
|
+
* @group Properties
|
|
941
|
+
*/
|
|
942
|
+
slotDuration?: number;
|
|
943
|
+
/**
|
|
944
|
+
* Height of a time slot in pixels.
|
|
945
|
+
* @group Properties
|
|
946
|
+
*/
|
|
947
|
+
slotHeight?: number;
|
|
948
|
+
/**
|
|
949
|
+
* Whether the scheduler is loading data.
|
|
950
|
+
* @group Properties
|
|
951
|
+
*/
|
|
952
|
+
isLoading?: boolean;
|
|
953
|
+
/**
|
|
954
|
+
* Allow past events modification.
|
|
955
|
+
* @group Properties
|
|
956
|
+
*/
|
|
957
|
+
allowPastEvents?: boolean;
|
|
958
|
+
/**
|
|
959
|
+
* Use 24-hour format.
|
|
960
|
+
* @group Properties
|
|
961
|
+
*/
|
|
962
|
+
is24Hour?: boolean;
|
|
963
|
+
/**
|
|
964
|
+
* Callback when events overlap.
|
|
965
|
+
* @group Events
|
|
966
|
+
*/
|
|
967
|
+
onEventOverlap?: (args: {
|
|
968
|
+
event: SchedulerEvent;
|
|
969
|
+
existingEvents: SchedulerEvent[];
|
|
970
|
+
cancel: boolean;
|
|
971
|
+
}) => void;
|
|
972
|
+
/**
|
|
973
|
+
* Callback when a cell is right-clicked.
|
|
974
|
+
* @group Events
|
|
975
|
+
*/
|
|
976
|
+
onCellContextMenu?: (args: {
|
|
977
|
+
date: Date;
|
|
978
|
+
x: number;
|
|
979
|
+
y: number;
|
|
980
|
+
}) => void;
|
|
981
|
+
/**
|
|
982
|
+
* Custom component injections (IoC).
|
|
983
|
+
* @group Properties
|
|
984
|
+
*/
|
|
985
|
+
components?: EzSchedulerComponents;
|
|
986
|
+
/**
|
|
987
|
+
* Array of event data.
|
|
988
|
+
* @group Properties
|
|
989
|
+
*/
|
|
990
|
+
events?: SchedulerEvent[];
|
|
991
|
+
/**
|
|
992
|
+
* Default initial view.
|
|
993
|
+
* @group Properties
|
|
994
|
+
*/
|
|
995
|
+
defaultView?: ViewType;
|
|
996
|
+
/**
|
|
997
|
+
* Default initial selected date.
|
|
998
|
+
* @group Properties
|
|
999
|
+
*/
|
|
1000
|
+
defaultSelectedDate?: Date;
|
|
1001
|
+
/**
|
|
1002
|
+
* Show resources in Day view.
|
|
1003
|
+
* @group Properties
|
|
1004
|
+
*/
|
|
1005
|
+
showResourcesInDayView?: boolean;
|
|
1006
|
+
/**
|
|
1007
|
+
* Show unassigned lane in swimlane views.
|
|
1008
|
+
* @group Properties
|
|
1009
|
+
*/
|
|
1010
|
+
showUnassignedLane?: boolean;
|
|
1011
|
+
/**
|
|
1012
|
+
* Callback when the view changes.
|
|
1013
|
+
* @group Events
|
|
1014
|
+
*/
|
|
1015
|
+
onViewChange?: (view: any) => void;
|
|
1016
|
+
/**
|
|
1017
|
+
* Callback when the date changes.
|
|
1018
|
+
* @group Events
|
|
1019
|
+
*/
|
|
1020
|
+
onDateChange?: (date: Date) => void;
|
|
1021
|
+
/**
|
|
1022
|
+
* Callback when the slot duration changes.
|
|
1023
|
+
* @group Events
|
|
1024
|
+
*/
|
|
1025
|
+
onSlotDurationChange?: (duration: number) => void;
|
|
1026
|
+
/**
|
|
1027
|
+
* Callback when a cell is clicked.
|
|
1028
|
+
* @group Events
|
|
1029
|
+
*/
|
|
1030
|
+
onCellClick?: (date: Date, resourceId?: string) => void;
|
|
1031
|
+
/**
|
|
1032
|
+
* Callback when a cell is double-clicked.
|
|
1033
|
+
* @group Events
|
|
1034
|
+
*/
|
|
1035
|
+
onCellDoubleClick?: (date: Date, resourceId?: string) => void;
|
|
1036
|
+
/**
|
|
1037
|
+
* Callback when an event is clicked.
|
|
1038
|
+
* @group Events
|
|
1039
|
+
*/
|
|
1040
|
+
onEventClick?: (event: SchedulerEvent) => void;
|
|
1041
|
+
/**
|
|
1042
|
+
* Callback when an event is double-clicked.
|
|
1043
|
+
* @group Events
|
|
1044
|
+
*/
|
|
1045
|
+
onEventDoubleClick?: (event: SchedulerEvent) => void;
|
|
1046
|
+
/**
|
|
1047
|
+
* Callback when an event is created.
|
|
1048
|
+
* @group Events
|
|
1049
|
+
*/
|
|
1050
|
+
onEventCreate?: (event: Partial<SchedulerEvent>) => void | Promise<void>;
|
|
1051
|
+
/**
|
|
1052
|
+
* Callback when an event is deleted.
|
|
1053
|
+
* @group Events
|
|
1054
|
+
*/
|
|
1055
|
+
onEventDelete?: (eventId: string) => void | Promise<void>;
|
|
1056
|
+
/**
|
|
1057
|
+
* Callback when an event is changed.
|
|
1058
|
+
* @group Events
|
|
1059
|
+
*/
|
|
1060
|
+
onEventChange?: (event: SchedulerEvent) => void;
|
|
1061
|
+
/**
|
|
1062
|
+
* Callback when an action begins.
|
|
1063
|
+
* @group Events
|
|
1064
|
+
*/
|
|
1065
|
+
actionBegin?: (args: ActionEventArgs) => void;
|
|
1066
|
+
/**
|
|
1067
|
+
* Callback when an action completes.
|
|
1068
|
+
* @group Events
|
|
1069
|
+
*/
|
|
1070
|
+
actionComplete?: (args: ActionEventArgs) => void;
|
|
1071
|
+
/**
|
|
1072
|
+
* Callback when an action fails.
|
|
1073
|
+
* @group Events
|
|
1074
|
+
*/
|
|
1075
|
+
actionFailure?: (args: ActionFailureArgs) => void;
|
|
1076
|
+
/**
|
|
1077
|
+
* Callback when a cell is clicked.
|
|
1078
|
+
* @group Events
|
|
1079
|
+
*/
|
|
1080
|
+
cellClick?: (args: CellClickEventArgs) => void;
|
|
1081
|
+
/**
|
|
1082
|
+
* Callback when a cell is double-clicked.
|
|
1083
|
+
* @group Events
|
|
1084
|
+
*/
|
|
1085
|
+
cellDoubleClick?: (args: CellClickEventArgs) => void;
|
|
1086
|
+
/**
|
|
1087
|
+
* Callback when an event is clicked.
|
|
1088
|
+
* @group Events
|
|
1089
|
+
*/
|
|
1090
|
+
eventClick?: (args: EventClickArgs) => void;
|
|
1091
|
+
/**
|
|
1092
|
+
* Callback when an event is double-clicked.
|
|
1093
|
+
* @group Events
|
|
1094
|
+
*/
|
|
1095
|
+
eventDoubleClick?: (args: EventClickArgs) => void;
|
|
1096
|
+
/**
|
|
1097
|
+
* Callback during navigation.
|
|
1098
|
+
* @group Events
|
|
1099
|
+
*/
|
|
1100
|
+
navigating?: (args: NavigatingEventArgs) => void;
|
|
1101
|
+
/**
|
|
1102
|
+
* Callback when a popup closes.
|
|
1103
|
+
* @group Events
|
|
1104
|
+
*/
|
|
1105
|
+
popupClose?: (args: PopupCloseEventArgs) => void;
|
|
1106
|
+
/**
|
|
1107
|
+
* Callback when a popup opens.
|
|
1108
|
+
* @group Events
|
|
1109
|
+
*/
|
|
1110
|
+
popupOpen?: (args: PopupOpenEventArgs) => void;
|
|
1111
|
+
/**
|
|
1112
|
+
* Callback when a cell is rendered.
|
|
1113
|
+
* @group Events
|
|
1114
|
+
*/
|
|
1115
|
+
renderCell?: (args: RenderCellEventArgs) => void;
|
|
1116
|
+
/**
|
|
1117
|
+
* Callback when resizing starts.
|
|
1118
|
+
* @group Events
|
|
1119
|
+
*/
|
|
1120
|
+
resizeStart?: (args: ResizeEventArgs) => void;
|
|
1121
|
+
/**
|
|
1122
|
+
* Callback when resizing stops.
|
|
1123
|
+
* @group Events
|
|
1124
|
+
*/
|
|
1125
|
+
resizeStop?: (args: ResizeEventArgs) => void;
|
|
1126
|
+
/**
|
|
1127
|
+
* Callback when dragging starts.
|
|
1128
|
+
* @group Events
|
|
1129
|
+
*/
|
|
1130
|
+
dragStart?: (args: DragEventArgs) => void;
|
|
1131
|
+
/**
|
|
1132
|
+
* Callback during dragging.
|
|
1133
|
+
* @group Events
|
|
1134
|
+
*/
|
|
1135
|
+
drag?: (args: DragEventArgs) => void;
|
|
1136
|
+
/**
|
|
1137
|
+
* Callback when dragging stops.
|
|
1138
|
+
* @group Events
|
|
1139
|
+
*/
|
|
1140
|
+
dragStop?: (args: DragEventArgs) => void;
|
|
1141
|
+
/**
|
|
1142
|
+
* Callback when selection changes.
|
|
1143
|
+
* @group Events
|
|
1144
|
+
*/
|
|
1145
|
+
select?: (args: SelectEventArgs) => void;
|
|
1146
|
+
/**
|
|
1147
|
+
* Callback before pasting.
|
|
1148
|
+
* @group Events
|
|
1149
|
+
*/
|
|
1150
|
+
beforePaste?: (args: any) => void;
|
|
1151
|
+
/**
|
|
1152
|
+
* Callback before printing.
|
|
1153
|
+
* @group Events
|
|
1154
|
+
*/
|
|
1155
|
+
beforePrint?: (args: any) => void;
|
|
1156
|
+
/**
|
|
1157
|
+
* Callback when component is created.
|
|
1158
|
+
* @group Events
|
|
1159
|
+
*/
|
|
1160
|
+
created?: (args: any) => void;
|
|
1161
|
+
/**
|
|
1162
|
+
* Callback during data binding.
|
|
1163
|
+
* @group Events
|
|
1164
|
+
*/
|
|
1165
|
+
dataBinding?: (args: any) => void;
|
|
1166
|
+
/**
|
|
1167
|
+
* Callback when data is bound.
|
|
1168
|
+
* @group Events
|
|
1169
|
+
*/
|
|
1170
|
+
dataBound?: (args: any) => void;
|
|
1171
|
+
/**
|
|
1172
|
+
* Callback when component is destroyed.
|
|
1173
|
+
* @group Events
|
|
1174
|
+
*/
|
|
1175
|
+
destroyed?: (args: any) => void;
|
|
1176
|
+
/**
|
|
1177
|
+
* Callback when event is rendered.
|
|
1178
|
+
* @group Events
|
|
1179
|
+
*/
|
|
1180
|
+
eventRendered?: (args: any) => void;
|
|
1181
|
+
/**
|
|
1182
|
+
* Callback during excel export.
|
|
1183
|
+
* @group Events
|
|
1184
|
+
*/
|
|
1185
|
+
excelExport?: (args: any) => void;
|
|
1186
|
+
/**
|
|
1187
|
+
* Callback on hover.
|
|
1188
|
+
* @group Events
|
|
1189
|
+
*/
|
|
1190
|
+
hover?: (args: any) => void;
|
|
1191
|
+
/**
|
|
1192
|
+
* Callback when "more events" is clicked.
|
|
1193
|
+
* @group Events
|
|
1194
|
+
*/
|
|
1195
|
+
moreEventsClick?: (args: any) => void;
|
|
1196
|
+
/**
|
|
1197
|
+
* Callback during resizing.
|
|
1198
|
+
* @group Events
|
|
1199
|
+
*/
|
|
1200
|
+
resizing?: (args: ResizeEventArgs) => void;
|
|
1201
|
+
/**
|
|
1202
|
+
* Callback when tooltip opens.
|
|
1203
|
+
* @group Events
|
|
1204
|
+
*/
|
|
1205
|
+
tooltipOpen?: (args: any) => void;
|
|
1206
|
+
/**
|
|
1207
|
+
* Callback when virtual scroll starts.
|
|
1208
|
+
* @group Events
|
|
1209
|
+
*/
|
|
1210
|
+
virtualScrollStart?: (args: any) => void;
|
|
1211
|
+
/**
|
|
1212
|
+
* Callback when virtual scroll stops.
|
|
1213
|
+
* @group Events
|
|
1214
|
+
*/
|
|
1215
|
+
virtualScrollStop?: (args: any) => void;
|
|
1216
|
+
/**
|
|
1217
|
+
* Export to Excel callback.
|
|
1218
|
+
* @group Events
|
|
1219
|
+
*/
|
|
1220
|
+
onExportExcel?: (events: SchedulerEvent[]) => void;
|
|
1221
|
+
/**
|
|
1222
|
+
* Export to CSV callback.
|
|
1223
|
+
* @group Events
|
|
1224
|
+
*/
|
|
1225
|
+
onExportCSV?: (events: SchedulerEvent[]) => void;
|
|
1226
|
+
/**
|
|
1227
|
+
* Export to ICS callback.
|
|
1228
|
+
* @group Events
|
|
1229
|
+
*/
|
|
1230
|
+
onExportICS?: (events: SchedulerEvent[]) => void;
|
|
1231
|
+
}
|
|
1232
|
+
/**
|
|
1233
|
+
* Arguments for action events.
|
|
1234
|
+
*/
|
|
1235
|
+
export interface ActionEventArgs {
|
|
1236
|
+
/**
|
|
1237
|
+
* The type of request being performed.
|
|
1238
|
+
* @group Models
|
|
1239
|
+
*/
|
|
1240
|
+
requestType: string;
|
|
1241
|
+
/**
|
|
1242
|
+
* Whether the action should be cancelled.
|
|
1243
|
+
* @group Models
|
|
1244
|
+
*/
|
|
1245
|
+
cancel: boolean;
|
|
1246
|
+
/**
|
|
1247
|
+
* Associated data for the action.
|
|
1248
|
+
* @group Models
|
|
1249
|
+
*/
|
|
1250
|
+
data?: Object;
|
|
1251
|
+
[key: string]: any;
|
|
1252
|
+
}
|
|
1253
|
+
/**
|
|
1254
|
+
* Arguments for action failure events.
|
|
1255
|
+
*/
|
|
1256
|
+
export interface ActionFailureArgs {
|
|
1257
|
+
/**
|
|
1258
|
+
* The type of request that failed.
|
|
1259
|
+
* @group Models
|
|
1260
|
+
*/
|
|
1261
|
+
requestType: string;
|
|
1262
|
+
/**
|
|
1263
|
+
* The error that occurred.
|
|
1264
|
+
* @group Models
|
|
1265
|
+
*/
|
|
1266
|
+
error: Error;
|
|
1267
|
+
[key: string]: any;
|
|
1268
|
+
}
|
|
1269
|
+
/**
|
|
1270
|
+
* Arguments for cell click events.
|
|
1271
|
+
*/
|
|
1272
|
+
export interface CellClickEventArgs {
|
|
1273
|
+
/**
|
|
1274
|
+
* Start time of the clicked cell.
|
|
1275
|
+
* @group Models
|
|
1276
|
+
*/
|
|
1277
|
+
startTime: Date;
|
|
1278
|
+
/**
|
|
1279
|
+
* End time of the clicked cell.
|
|
1280
|
+
* @group Models
|
|
1281
|
+
*/
|
|
1282
|
+
endTime: Date;
|
|
1283
|
+
/**
|
|
1284
|
+
* The HTML element that was clicked.
|
|
1285
|
+
* @group Models
|
|
1286
|
+
*/
|
|
1287
|
+
element?: HTMLElement;
|
|
1288
|
+
/**
|
|
1289
|
+
* Whether the cell is in the all-day row.
|
|
1290
|
+
* @group Models
|
|
1291
|
+
*/
|
|
1292
|
+
isAllDay: boolean;
|
|
1293
|
+
/**
|
|
1294
|
+
* The resource group index.
|
|
1295
|
+
* @group Models
|
|
1296
|
+
*/
|
|
1297
|
+
groupIndex?: number;
|
|
1298
|
+
}
|
|
1299
|
+
/**
|
|
1300
|
+
* Arguments for event click events.
|
|
1301
|
+
*/
|
|
1302
|
+
export interface EventClickArgs {
|
|
1303
|
+
/**
|
|
1304
|
+
* The data of the clicked event.
|
|
1305
|
+
* @group Models
|
|
1306
|
+
*/
|
|
1307
|
+
data: EventData;
|
|
1308
|
+
/**
|
|
1309
|
+
* The HTML element of the event.
|
|
1310
|
+
* @group Models
|
|
1311
|
+
*/
|
|
1312
|
+
element?: HTMLElement;
|
|
1313
|
+
/**
|
|
1314
|
+
* The raw mouse event.
|
|
1315
|
+
* @group Models
|
|
1316
|
+
*/
|
|
1317
|
+
event?: React.MouseEvent;
|
|
1318
|
+
}
|
|
1319
|
+
/**
|
|
1320
|
+
* Arguments for navigation events.
|
|
1321
|
+
*/
|
|
1322
|
+
export interface NavigatingEventArgs {
|
|
1323
|
+
/**
|
|
1324
|
+
* The date before navigation.
|
|
1325
|
+
* @group Models
|
|
1326
|
+
*/
|
|
1327
|
+
previousDate: Date;
|
|
1328
|
+
/**
|
|
1329
|
+
* The new active date.
|
|
1330
|
+
* @group Models
|
|
1331
|
+
*/
|
|
1332
|
+
currentDate: Date;
|
|
1333
|
+
/**
|
|
1334
|
+
* The view mode before navigation.
|
|
1335
|
+
* @group Models
|
|
1336
|
+
*/
|
|
1337
|
+
previousView: View;
|
|
1338
|
+
/**
|
|
1339
|
+
* The new active view mode.
|
|
1340
|
+
* @group Models
|
|
1341
|
+
*/
|
|
1342
|
+
currentView: View;
|
|
1343
|
+
/**
|
|
1344
|
+
* Whether navigation should be cancelled.
|
|
1345
|
+
* @group Models
|
|
1346
|
+
*/
|
|
1347
|
+
cancel?: boolean;
|
|
1348
|
+
}
|
|
1349
|
+
/**
|
|
1350
|
+
* Arguments for popup opening events.
|
|
1351
|
+
*/
|
|
1352
|
+
export interface PopupOpenEventArgs {
|
|
1353
|
+
/**
|
|
1354
|
+
* The type of popup being opened.
|
|
1355
|
+
* @group Models
|
|
1356
|
+
*/
|
|
1357
|
+
type: 'Editor' | 'QuickInfo';
|
|
1358
|
+
/**
|
|
1359
|
+
* The data associated with the popup.
|
|
1360
|
+
* @group Models
|
|
1361
|
+
*/
|
|
1362
|
+
data?: EventData;
|
|
1363
|
+
/**
|
|
1364
|
+
* The popup HTML element.
|
|
1365
|
+
* @group Models
|
|
1366
|
+
*/
|
|
1367
|
+
element?: HTMLElement;
|
|
1368
|
+
/**
|
|
1369
|
+
* Whether to cancel the opening.
|
|
1370
|
+
* @group Models
|
|
1371
|
+
*/
|
|
1372
|
+
cancel: boolean;
|
|
1373
|
+
}
|
|
1374
|
+
/**
|
|
1375
|
+
* Arguments for popup closing events.
|
|
1376
|
+
*/
|
|
1377
|
+
export interface PopupCloseEventArgs {
|
|
1378
|
+
/**
|
|
1379
|
+
* The type of popup being closed.
|
|
1380
|
+
* @group Models
|
|
1381
|
+
*/
|
|
1382
|
+
type: 'Editor' | 'QuickInfo';
|
|
1383
|
+
/**
|
|
1384
|
+
* The data associated with the popup.
|
|
1385
|
+
* @group Models
|
|
1386
|
+
*/
|
|
1387
|
+
data?: EventData;
|
|
1388
|
+
/**
|
|
1389
|
+
* The popup HTML element.
|
|
1390
|
+
* @group Models
|
|
1391
|
+
*/
|
|
1392
|
+
element?: HTMLElement;
|
|
1393
|
+
}
|
|
1394
|
+
/**
|
|
1395
|
+
* Arguments for resize events.
|
|
1396
|
+
*/
|
|
1397
|
+
export interface ResizeEventArgs {
|
|
1398
|
+
/**
|
|
1399
|
+
* The event data being resized.
|
|
1400
|
+
* @group Models
|
|
1401
|
+
*/
|
|
1402
|
+
data: EventData;
|
|
1403
|
+
/**
|
|
1404
|
+
* The HTML element being resized.
|
|
1405
|
+
* @group Models
|
|
1406
|
+
*/
|
|
1407
|
+
element?: HTMLElement;
|
|
1408
|
+
/**
|
|
1409
|
+
* Whether to cancel resizing.
|
|
1410
|
+
* @group Models
|
|
1411
|
+
*/
|
|
1412
|
+
cancel: boolean;
|
|
1413
|
+
}
|
|
1414
|
+
/**
|
|
1415
|
+
* Arguments for drag events.
|
|
1416
|
+
*/
|
|
1417
|
+
export interface DragEventArgs {
|
|
1418
|
+
/**
|
|
1419
|
+
* The event data being dragged.
|
|
1420
|
+
* @group Models
|
|
1421
|
+
*/
|
|
1422
|
+
data: EventData;
|
|
1423
|
+
/**
|
|
1424
|
+
* The HTML element being dragged.
|
|
1425
|
+
* @group Models
|
|
1426
|
+
*/
|
|
1427
|
+
element?: HTMLElement;
|
|
1428
|
+
/**
|
|
1429
|
+
* Whether to cancel dragging.
|
|
1430
|
+
* @group Models
|
|
1431
|
+
*/
|
|
1432
|
+
cancel: boolean;
|
|
1433
|
+
/**
|
|
1434
|
+
* The drag target element.
|
|
1435
|
+
* @group Models
|
|
1436
|
+
*/
|
|
1437
|
+
target?: HTMLElement;
|
|
1438
|
+
}
|
|
1439
|
+
/**
|
|
1440
|
+
* Arguments for cell rendering events.
|
|
1441
|
+
*/
|
|
1442
|
+
export interface RenderCellEventArgs {
|
|
1443
|
+
/**
|
|
1444
|
+
* The date of the cell.
|
|
1445
|
+
* @group Models
|
|
1446
|
+
*/
|
|
1447
|
+
date: Date;
|
|
1448
|
+
/**
|
|
1449
|
+
* The cell HTML element.
|
|
1450
|
+
* @group Models
|
|
1451
|
+
*/
|
|
1452
|
+
element: HTMLElement;
|
|
1453
|
+
/**
|
|
1454
|
+
* The current view mode.
|
|
1455
|
+
* @group Models
|
|
1456
|
+
*/
|
|
1457
|
+
view: View;
|
|
1458
|
+
/**
|
|
1459
|
+
* The resource group index.
|
|
1460
|
+
* @group Models
|
|
1461
|
+
*/
|
|
1462
|
+
groupIndex?: number;
|
|
1463
|
+
}
|
|
1464
|
+
/**
|
|
1465
|
+
* Arguments for selection events.
|
|
1466
|
+
*/
|
|
1467
|
+
export interface SelectEventArgs {
|
|
1468
|
+
/**
|
|
1469
|
+
* The selected HTML elements.
|
|
1470
|
+
* @group Models
|
|
1471
|
+
*/
|
|
1472
|
+
element?: HTMLElement[];
|
|
1473
|
+
/**
|
|
1474
|
+
* Start time of the selection.
|
|
1475
|
+
* @group Models
|
|
1476
|
+
*/
|
|
1477
|
+
startTime: Date;
|
|
1478
|
+
/**
|
|
1479
|
+
* End time of the selection.
|
|
1480
|
+
* @group Models
|
|
1481
|
+
*/
|
|
1482
|
+
endTime: Date;
|
|
1483
|
+
}
|
|
1484
|
+
/**
|
|
1485
|
+
* Imperative API Reference
|
|
1486
|
+
*/
|
|
1487
|
+
export interface EzSchedulerRef {
|
|
1488
|
+
/**
|
|
1489
|
+
* Change the current view.
|
|
1490
|
+
* @group Methods
|
|
1491
|
+
*/
|
|
1492
|
+
changeView: (view: View) => void;
|
|
1493
|
+
/**
|
|
1494
|
+
* The current view mode.
|
|
1495
|
+
* @group Properties
|
|
1496
|
+
*/
|
|
1497
|
+
currentView: View;
|
|
1498
|
+
/**
|
|
1499
|
+
* Scroll to a specific row index.
|
|
1500
|
+
* @group Methods
|
|
1501
|
+
*/
|
|
1502
|
+
scrollToIndex: (index: number) => void;
|
|
1503
|
+
/**
|
|
1504
|
+
* Scroll to a specific time.
|
|
1505
|
+
* @group Methods
|
|
1506
|
+
*/
|
|
1507
|
+
scrollTo: (hour: string, minute?: number) => void;
|
|
1508
|
+
/**
|
|
1509
|
+
* Navigate to the next date range.
|
|
1510
|
+
* @group Methods
|
|
1511
|
+
*/
|
|
1512
|
+
next: () => void;
|
|
1513
|
+
/**
|
|
1514
|
+
* Navigate to the previous date range.
|
|
1515
|
+
* @group Methods
|
|
1516
|
+
*/
|
|
1517
|
+
prev: () => void;
|
|
1518
|
+
/**
|
|
1519
|
+
* Navigate to today.
|
|
1520
|
+
* @group Methods
|
|
1521
|
+
*/
|
|
1522
|
+
today: () => void;
|
|
1523
|
+
/**
|
|
1524
|
+
* Scroll to a specific time (legacy).
|
|
1525
|
+
* @group Methods
|
|
1526
|
+
*/
|
|
1527
|
+
scrollToTime: (hour: number, minute: number) => void;
|
|
1528
|
+
/**
|
|
1529
|
+
* Refresh the scheduler layout.
|
|
1530
|
+
* @group Methods
|
|
1531
|
+
*/
|
|
1532
|
+
refresh: () => void;
|
|
1533
|
+
/**
|
|
1534
|
+
* Get all events.
|
|
1535
|
+
* @group Methods
|
|
1536
|
+
*/
|
|
1537
|
+
getData: () => Promise<SchedulerEvent[]>;
|
|
1538
|
+
/**
|
|
1539
|
+
* Add a new event.
|
|
1540
|
+
* @group Methods
|
|
1541
|
+
*/
|
|
1542
|
+
addEvent: (event: SchedulerEvent | Record<string, any>) => Promise<void>;
|
|
1543
|
+
/**
|
|
1544
|
+
* Save an existing or new event.
|
|
1545
|
+
* @group Methods
|
|
1546
|
+
*/
|
|
1547
|
+
saveEvent: (event: SchedulerEvent | Record<string, any>) => Promise<void>;
|
|
1548
|
+
/**
|
|
1549
|
+
* Delete an event by ID.
|
|
1550
|
+
* @group Methods
|
|
1551
|
+
*/
|
|
1552
|
+
deleteEvent: (id: string | number) => Promise<void>;
|
|
1553
|
+
/**
|
|
1554
|
+
* Get all events.
|
|
1555
|
+
* @group Methods
|
|
1556
|
+
*/
|
|
1557
|
+
getEvents: () => Promise<SchedulerEvent[]>;
|
|
1558
|
+
/**
|
|
1559
|
+
* Get events in a specific date range.
|
|
1560
|
+
* @group Methods
|
|
1561
|
+
*/
|
|
1562
|
+
getEventsInDateRange: (start: Date, end: Date) => Promise<SchedulerEvent[]>;
|
|
1563
|
+
/**
|
|
1564
|
+
* Add a new resource.
|
|
1565
|
+
* @group Methods
|
|
1566
|
+
*/
|
|
1567
|
+
addResource: (resource: Resource | Record<string, any>) => Promise<void>;
|
|
1568
|
+
/**
|
|
1569
|
+
* Remove a resource by ID.
|
|
1570
|
+
* @group Methods
|
|
1571
|
+
*/
|
|
1572
|
+
removeResource: (resourceId: string | number) => Promise<void>;
|
|
1573
|
+
/**
|
|
1574
|
+
* Open the event editor.
|
|
1575
|
+
* @group Methods
|
|
1576
|
+
*/
|
|
1577
|
+
openEditor: (event: SchedulerEvent, action: CurrentAction) => void;
|
|
1578
|
+
/**
|
|
1579
|
+
* Close the event editor.
|
|
1580
|
+
* @group Methods
|
|
1581
|
+
*/
|
|
1582
|
+
closeEditor: () => void;
|
|
1583
|
+
/**
|
|
1584
|
+
* Close the quick info popup.
|
|
1585
|
+
* @group Methods
|
|
1586
|
+
*/
|
|
1587
|
+
closeQuickInfoPopup: () => void;
|
|
1588
|
+
/**
|
|
1589
|
+
* Show the loading spinner.
|
|
1590
|
+
* @group Methods
|
|
1591
|
+
*/
|
|
1592
|
+
showSpinner: () => void;
|
|
1593
|
+
/**
|
|
1594
|
+
* Hide the loading spinner.
|
|
1595
|
+
* @group Methods
|
|
1596
|
+
*/
|
|
1597
|
+
hideSpinner: () => void;
|
|
1598
|
+
/**
|
|
1599
|
+
* Export to Excel.
|
|
1600
|
+
* @group Methods
|
|
1601
|
+
*/
|
|
1602
|
+
exportToExcel: () => void;
|
|
1603
|
+
/**
|
|
1604
|
+
* Export to CSV.
|
|
1605
|
+
* @group Methods
|
|
1606
|
+
*/
|
|
1607
|
+
exportToCsv: () => void;
|
|
1608
|
+
/**
|
|
1609
|
+
* Print the scheduler.
|
|
1610
|
+
* @group Methods
|
|
1611
|
+
*/
|
|
1612
|
+
print: () => void;
|
|
1613
|
+
/**
|
|
1614
|
+
* Destroy the component instance.
|
|
1615
|
+
* @group Methods
|
|
1616
|
+
*/
|
|
1617
|
+
destroy: () => void;
|
|
1618
|
+
}
|
|
1619
|
+
/**
|
|
1620
|
+
* Interface defined for the Scheduler service.
|
|
1621
|
+
*/
|
|
1622
|
+
export interface ISchedulerService extends IService {
|
|
1623
|
+
/**
|
|
1624
|
+
* Retrieves events within a date range.
|
|
1625
|
+
* @group Services
|
|
1626
|
+
*/
|
|
1627
|
+
getEvents(start: Date, end: Date): Promise<SchedulerEvent[]>;
|
|
1628
|
+
/**
|
|
1629
|
+
* Adds a new event.
|
|
1630
|
+
* @group Services
|
|
1631
|
+
*/
|
|
1632
|
+
addEvent(event: Partial<SchedulerEvent>): Promise<SchedulerEvent>;
|
|
1633
|
+
/**
|
|
1634
|
+
* Updates an existing event.
|
|
1635
|
+
* @group Services
|
|
1636
|
+
*/
|
|
1637
|
+
updateEvent(event: SchedulerEvent): Promise<SchedulerEvent>;
|
|
1638
|
+
/**
|
|
1639
|
+
* Deletes an event by ID.
|
|
1640
|
+
* @group Services
|
|
1641
|
+
*/
|
|
1642
|
+
deleteEvent(id: string | number): Promise<void>;
|
|
1643
|
+
/**
|
|
1644
|
+
* Retrieves all resources.
|
|
1645
|
+
* @group Services
|
|
1646
|
+
*/
|
|
1647
|
+
getResources?(): Promise<Resource[]>;
|
|
1648
|
+
/**
|
|
1649
|
+
* Adds a new resource.
|
|
1650
|
+
* @group Services
|
|
1651
|
+
*/
|
|
1652
|
+
addResource?(resource: Resource): Promise<Resource>;
|
|
1653
|
+
/**
|
|
1654
|
+
* Initializes the service with data.
|
|
1655
|
+
* @group Services
|
|
1656
|
+
*/
|
|
1657
|
+
initializeWithData?(events: SchedulerEvent[], resources?: Resource[]): void;
|
|
1658
|
+
}
|