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.
Files changed (293) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +56 -0
  3. package/dist/EzEventModal-DtpvYwGr.js +684 -0
  4. package/dist/EzGroupingPanel-CFwKUrF_.js +59 -0
  5. package/dist/EzTableEditDialog-BIk_mNpI.js +60 -0
  6. package/dist/components/EzKanban/EzKanban.types.d.ts +789 -0
  7. package/dist/components/EzKanban/components/CardEditorModal.d.ts +23 -0
  8. package/dist/components/EzKanban/components/EzKanbanErrorFallback.d.ts +1 -0
  9. package/dist/components/EzKanban/components/FilterPopover.d.ts +10 -0
  10. package/dist/components/EzKanban/components/KanbanBoard.d.ts +62 -0
  11. package/dist/components/EzKanban/components/KanbanCard.d.ts +38 -0
  12. package/dist/components/EzKanban/components/KanbanColumn.d.ts +55 -0
  13. package/dist/components/EzKanban/components/KanbanSwimlane.d.ts +46 -0
  14. package/dist/components/EzKanban/components/KanbanToolbar.d.ts +41 -0
  15. package/dist/components/EzKanban/exports.d.ts +4 -0
  16. package/dist/components/EzKanban/hooks/useKanbanCards.d.ts +36 -0
  17. package/dist/components/EzKanban/hooks/useKanbanColumns.d.ts +27 -0
  18. package/dist/components/EzKanban/hooks/useKanbanDragDrop.d.ts +31 -0
  19. package/dist/components/EzKanban/hooks/useKanbanFilters.d.ts +23 -0
  20. package/dist/components/EzKanban/hooks/useKanbanState.d.ts +79 -0
  21. package/dist/components/EzKanban/hooks/useKanbanSwimlanes.d.ts +27 -0
  22. package/dist/components/EzKanban/hooks/useKanbanVirtualization.d.ts +16 -0
  23. package/dist/components/EzKanban/index.d.ts +45 -0
  24. package/dist/components/EzKanban/services/KanbanService.d.ts +30 -0
  25. package/dist/components/EzKanban/state/kanban.store.d.ts +33 -0
  26. package/dist/components/EzKanban/useEzKanban.d.ts +162 -0
  27. package/dist/components/EzKanban/views/KanbanTimelineView.d.ts +15 -0
  28. package/dist/components/EzLayout/Authentication/AuthSlider.d.ts +13 -0
  29. package/dist/components/EzLayout/Authentication/InputPassword.d.ts +7 -0
  30. package/dist/components/EzLayout/Authentication/SignInForm.d.ts +21 -0
  31. package/dist/components/EzLayout/Authentication/SignUpForm.d.ts +20 -0
  32. package/dist/components/EzLayout/EzHeader.d.ts +33 -0
  33. package/dist/components/EzLayout/EzLanguageSwitcher.d.ts +4 -0
  34. package/dist/components/EzLayout/EzLayout.types.d.ts +223 -0
  35. package/dist/components/EzLayout/EzSidebar.d.ts +14 -0
  36. package/dist/components/EzLayout/EzThemeColorChanger.d.ts +9 -0
  37. package/dist/components/EzLayout/EzThemeSwitcher.d.ts +8 -0
  38. package/dist/components/EzLayout/EzUserProfile.d.ts +23 -0
  39. package/dist/components/EzLayout/components/MainContent.d.ts +13 -0
  40. package/dist/components/EzLayout/hooks/useLayoutImperative.d.ts +17 -0
  41. package/dist/components/EzLayout/hooks/useLayoutState.d.ts +25 -0
  42. package/dist/components/EzLayout/index.d.ts +19 -0
  43. package/dist/components/EzLayout/useEzLayout.d.ts +26 -0
  44. package/dist/components/EzScheduler/EzScheduler.types.d.ts +1658 -0
  45. package/dist/components/EzScheduler/EzSchedulerToolbar.d.ts +117 -0
  46. package/dist/components/EzScheduler/components/EzEventModal.d.ts +17 -0
  47. package/dist/components/EzScheduler/components/EzOverlapAlert.d.ts +12 -0
  48. package/dist/components/EzScheduler/components/EzQuickInfoPopup.d.ts +22 -0
  49. package/dist/components/EzScheduler/components/EzResourceSidebar.d.ts +33 -0
  50. package/dist/components/EzScheduler/components/EzSchedulerContent.d.ts +123 -0
  51. package/dist/components/EzScheduler/components/EzSchedulerQuickAdd.d.ts +17 -0
  52. package/dist/components/EzScheduler/components/RecurrenceEditor.d.ts +7 -0
  53. package/dist/components/EzScheduler/components/SchedulerLoadingSpinner.d.ts +2 -0
  54. package/dist/components/EzScheduler/components/dnd/DraggableEvent.d.ts +21 -0
  55. package/dist/components/EzScheduler/components/dnd/DroppableSlot.d.ts +19 -0
  56. package/dist/components/EzScheduler/hooks/useRecurrence.d.ts +2 -0
  57. package/dist/components/EzScheduler/hooks/useSchedulerEventHandlers.d.ts +11 -0
  58. package/dist/components/EzScheduler/hooks/useSchedulerEvents.d.ts +26 -0
  59. package/dist/components/EzScheduler/hooks/useSchedulerImperative.d.ts +15 -0
  60. package/dist/components/EzScheduler/hooks/useSchedulerNavigation.d.ts +9 -0
  61. package/dist/components/EzScheduler/hooks/useSchedulerResources.d.ts +10 -0
  62. package/dist/components/EzScheduler/hooks/useSchedulerState.d.ts +14 -0
  63. package/dist/components/EzScheduler/hooks/useSchedulerVirtualization.d.ts +9 -0
  64. package/dist/components/EzScheduler/index.d.ts +41 -0
  65. package/dist/components/EzScheduler/models/EventSettings.d.ts +11 -0
  66. package/dist/components/EzScheduler/models/View.d.ts +49 -0
  67. package/dist/components/EzScheduler/models/index.d.ts +2 -0
  68. package/dist/components/EzScheduler/services/AttendeeService.d.ts +15 -0
  69. package/dist/components/EzScheduler/services/AuditService.d.ts +15 -0
  70. package/dist/components/EzScheduler/services/CollisionDetectionService.d.ts +19 -0
  71. package/dist/components/EzScheduler/services/DragAndDropService.d.ts +16 -0
  72. package/dist/components/EzScheduler/services/HistoryService.d.ts +31 -0
  73. package/dist/components/EzScheduler/services/ICalendarImportService.d.ts +16 -0
  74. package/dist/components/EzScheduler/services/PrintService.d.ts +7 -0
  75. package/dist/components/EzScheduler/services/RecurrenceEngine.d.ts +7 -0
  76. package/dist/components/EzScheduler/services/ReminderService.d.ts +17 -0
  77. package/dist/components/EzScheduler/services/SchedulerService.d.ts +69 -0
  78. package/dist/components/EzScheduler/services/SearchService.d.ts +11 -0
  79. package/dist/components/EzScheduler/services/SecurityService.d.ts +25 -0
  80. package/dist/components/EzScheduler/services/TimezoneService.d.ts +20 -0
  81. package/dist/components/EzScheduler/services/VirtualScrollingService.d.ts +34 -0
  82. package/dist/components/EzScheduler/state/scheduler.store.d.ts +27 -0
  83. package/dist/components/EzScheduler/templates/CellTemplate.d.ts +42 -0
  84. package/dist/components/EzScheduler/templates/EditorTemplate.d.ts +32 -0
  85. package/dist/components/EzScheduler/templates/HeaderTemplate.d.ts +36 -0
  86. package/dist/components/EzScheduler/tests/phase1_rendering.spec.d.ts +1 -0
  87. package/dist/components/EzScheduler/tests/phase2_events.spec.d.ts +1 -0
  88. package/dist/components/EzScheduler/tests/phase3_templates.spec.d.ts +1 -0
  89. package/dist/components/EzScheduler/tests/phase4_export.spec.d.ts +1 -0
  90. package/dist/components/EzScheduler/tests/phase5_advanced.spec.d.ts +1 -0
  91. package/dist/components/EzScheduler/tests/phase6_security.spec.d.ts +1 -0
  92. package/dist/components/EzScheduler/tests/phase7_regression.spec.d.ts +1 -0
  93. package/dist/components/EzScheduler/useEzScheduler.d.ts +152 -0
  94. package/dist/components/EzScheduler/utils/createDragConstraint.d.ts +7 -0
  95. package/dist/components/EzScheduler/utils/getWeekNumber.d.ts +8 -0
  96. package/dist/components/EzScheduler/utils/sanitizeHtml.d.ts +17 -0
  97. package/dist/components/EzScheduler/views/AgendaView.d.ts +33 -0
  98. package/dist/components/EzScheduler/views/DayWeekView.d.ts +182 -0
  99. package/dist/components/EzScheduler/views/MonthView.d.ts +65 -0
  100. package/dist/components/EzScheduler/views/TimelineView.d.ts +121 -0
  101. package/dist/components/EzSignature/EzSignature.d.ts +42 -0
  102. package/dist/components/EzSignature/EzSignature.test.d.ts +1 -0
  103. package/dist/components/EzSignature/EzSignature.types.d.ts +132 -0
  104. package/dist/components/EzSignature/index.d.ts +2 -0
  105. package/dist/components/EzTable/EzColumnMenu.d.ts +7 -0
  106. package/dist/components/EzTable/EzDateFilterTree.d.ts +7 -0
  107. package/dist/components/EzTable/EzExcelFilter.d.ts +6 -0
  108. package/dist/components/EzTable/EzFilterBuilder.d.ts +12 -0
  109. package/dist/components/EzTable/EzGroupingPanel.d.ts +9 -0
  110. package/dist/components/EzTable/EzHeaderContextMenu.d.ts +8 -0
  111. package/dist/components/EzTable/EzPagination.d.ts +19 -0
  112. package/dist/components/EzTable/EzTable.types.d.ts +1481 -0
  113. package/dist/components/EzTable/EzTableEditDialog.d.ts +15 -0
  114. package/dist/components/EzTable/EzTableFooter.d.ts +10 -0
  115. package/dist/components/EzTable/EzTableOverlays.d.ts +11 -0
  116. package/dist/components/EzTable/EzTableStatusBar.d.ts +6 -0
  117. package/dist/components/EzTable/EzTableToolbar.d.ts +58 -0
  118. package/dist/components/EzTable/SmartCell.d.ts +7 -0
  119. package/dist/components/EzTable/__tests__/EzTableDX.test.d.ts +0 -0
  120. package/dist/components/EzTable/__tests__/EzTableEnterprise.test.d.ts +1 -0
  121. package/dist/components/EzTable/__tests__/useEzTable.test.d.ts +1 -0
  122. package/dist/components/EzTable/components/AdvancedColumnFilter.d.ts +16 -0
  123. package/dist/components/EzTable/components/BooleanFilterSection.d.ts +7 -0
  124. package/dist/components/EzTable/components/DraggableHeader.d.ts +10 -0
  125. package/dist/components/EzTable/components/EzTableBodySection.d.ts +70 -0
  126. package/dist/components/EzTable/components/EzTableCell.d.ts +46 -0
  127. package/dist/components/EzTable/components/EzTableHeaderSection.d.ts +22 -0
  128. package/dist/components/EzTable/components/EzTablePaginationSection.d.ts +31 -0
  129. package/dist/components/EzTable/components/EzTableRow.d.ts +56 -0
  130. package/dist/components/EzTable/components/FilterActionButtons.d.ts +16 -0
  131. package/dist/components/EzTable/components/FilterRuleSelect.d.ts +26 -0
  132. package/dist/components/EzTable/components/SelectAllCheckbox.d.ts +21 -0
  133. package/dist/components/EzTable/components/SelectFilterSection.d.ts +18 -0
  134. package/dist/components/EzTable/components/VirtualizedFilterList.d.ts +21 -0
  135. package/dist/components/EzTable/constants/filterOptions.d.ts +47 -0
  136. package/dist/components/EzTable/context/EzTableContext.d.ts +10 -0
  137. package/dist/components/EzTable/context/TableConfigContext.d.ts +13 -0
  138. package/dist/components/EzTable/context/TableStore.d.ts +17 -0
  139. package/dist/components/EzTable/filterUtils.d.ts +5 -0
  140. package/dist/components/EzTable/hooks/useAutoFit.d.ts +4 -0
  141. package/dist/components/EzTable/hooks/useCellEventHandlers.d.ts +16 -0
  142. package/dist/components/EzTable/hooks/useColumnSizeVars.d.ts +6 -0
  143. package/dist/components/EzTable/hooks/useContainerResize.d.ts +11 -0
  144. package/dist/components/EzTable/hooks/useDialogStateInitialization.d.ts +8 -0
  145. package/dist/components/EzTable/hooks/useFilterSelection.d.ts +12 -0
  146. package/dist/components/EzTable/hooks/useTableFiltering.d.ts +23 -0
  147. package/dist/components/EzTable/hooks/useTableHistory.d.ts +87 -0
  148. package/dist/components/EzTable/hooks/useTableImperative.d.ts +42 -0
  149. package/dist/components/EzTable/hooks/useTableSelection.d.ts +32 -0
  150. package/dist/components/EzTable/hooks/useTableState.d.ts +31 -0
  151. package/dist/components/EzTable/hooks/useTableVirtualization.d.ts +33 -0
  152. package/dist/components/EzTable/index.d.ts +50 -0
  153. package/dist/components/EzTable/renderers/index.d.ts +6 -0
  154. package/dist/components/EzTable/services/TableService.d.ts +26 -0
  155. package/dist/components/EzTable/useEzTable.d.ts +17 -0
  156. package/dist/components/EzTable/utils/TextMeasurer.d.ts +1 -0
  157. package/dist/components/EzTable/utils/TruncatedTooltip.d.ts +7 -0
  158. package/dist/components/EzTable/utils/columnTypeDetector.d.ts +5 -0
  159. package/dist/components/EzTable/utils/filterTypeGuards.d.ts +3 -0
  160. package/dist/components/EzTable/utils/index.d.ts +1 -0
  161. package/dist/components/EzTreeView/EzTreeView.types.d.ts +395 -0
  162. package/dist/components/EzTreeView/EzTreeViewItem.d.ts +77 -0
  163. package/dist/components/EzTreeView/EzVirtualTree.d.ts +72 -0
  164. package/dist/components/EzTreeView/components/EzTreeViewLoadingSpinner.d.ts +2 -0
  165. package/dist/components/EzTreeView/hooks/useTreeDragDrop.d.ts +31 -0
  166. package/dist/components/EzTreeView/hooks/useTreeExpansion.d.ts +21 -0
  167. package/dist/components/EzTreeView/hooks/useTreeImperative.d.ts +28 -0
  168. package/dist/components/EzTreeView/hooks/useTreeSelection.d.ts +31 -0
  169. package/dist/components/EzTreeView/hooks/useTreeState.d.ts +21 -0
  170. package/dist/components/EzTreeView/hooks/useTreeVirtualization.d.ts +18 -0
  171. package/dist/components/EzTreeView/index.d.ts +40 -0
  172. package/dist/components/EzTreeView/services/TreeService.d.ts +11 -0
  173. package/dist/components/EzTreeView/useEzTreeView.d.ts +62 -0
  174. package/dist/components/EzTreeView/utils/treeUtils.d.ts +17 -0
  175. package/dist/components/shared/components/EzErrorBoundary.d.ts +18 -0
  176. package/dist/components/shared/components/EzLayoutErrorFallback.d.ts +2 -0
  177. package/dist/components/shared/components/EzLoadingSpinner.d.ts +8 -0
  178. package/dist/components/shared/components/EzSchedulerErrorFallback.d.ts +2 -0
  179. package/dist/components/shared/components/EzTableErrorFallback.d.ts +2 -0
  180. package/dist/components/shared/components/EzTreeViewErrorFallback.d.ts +2 -0
  181. package/dist/components/ui/avatar.d.ts +5 -0
  182. package/dist/components/ui/badge.d.ts +9 -0
  183. package/dist/components/ui/breadcrumb.d.ts +19 -0
  184. package/dist/components/ui/button.d.ts +12 -0
  185. package/dist/components/ui/calendar.d.ts +15 -0
  186. package/dist/components/ui/card.d.ts +8 -0
  187. package/dist/components/ui/checkbox.d.ts +7 -0
  188. package/dist/components/ui/command.d.ts +78 -0
  189. package/dist/components/ui/context-menu.d.ts +27 -0
  190. package/dist/components/ui/date-time-picker.d.ts +13 -0
  191. package/dist/components/ui/dropdown-menu.d.ts +27 -0
  192. package/dist/components/ui/index.d.ts +26 -0
  193. package/dist/components/ui/input.d.ts +5 -0
  194. package/dist/components/ui/label.d.ts +5 -0
  195. package/dist/components/ui/modal.d.ts +9 -0
  196. package/dist/components/ui/password-input.d.ts +5 -0
  197. package/dist/components/ui/popover.d.ts +4 -0
  198. package/dist/components/ui/progress.d.ts +7 -0
  199. package/dist/components/ui/radio-group.d.ts +5 -0
  200. package/dist/components/ui/scroll-area.d.ts +5 -0
  201. package/dist/components/ui/select.d.ts +24 -0
  202. package/dist/components/ui/skeleton.d.ts +2 -0
  203. package/dist/components/ui/switch.d.ts +4 -0
  204. package/dist/components/ui/table.d.ts +10 -0
  205. package/dist/components/ui/tabs.d.ts +14 -0
  206. package/dist/components/ui/textarea.d.ts +5 -0
  207. package/dist/components/ui/tooltip.d.ts +7 -0
  208. package/dist/ezux.es.js +149 -0
  209. package/dist/ezux.umd.js +68 -0
  210. package/dist/index-DBwoXp4n.js +30656 -0
  211. package/dist/index.d.ts +70 -0
  212. package/dist/lib/perfect-freehand.d.ts +221 -0
  213. package/dist/lib/utils.d.ts +2 -0
  214. package/dist/shared/components/AnimatedText.d.ts +44 -0
  215. package/dist/shared/components/BaseCell.d.ts +14 -0
  216. package/dist/shared/components/BooleanRenderer.d.ts +34 -0
  217. package/dist/shared/components/ChartRenderer.d.ts +19 -0
  218. package/dist/shared/components/DeleteConfirmationModal.d.ts +11 -0
  219. package/dist/shared/components/EzContextMenu.d.ts +12 -0
  220. package/dist/shared/components/EzNotificationDropdown.d.ts +1 -0
  221. package/dist/shared/components/HighlightText.d.ts +4 -0
  222. package/dist/shared/components/Modal.d.ts +13 -0
  223. package/dist/shared/components/NotificationPanel.d.ts +2 -0
  224. package/dist/shared/components/PrimitiveRenderer.d.ts +39 -0
  225. package/dist/shared/components/SearchableSelect.d.ts +13 -0
  226. package/dist/shared/components/SelectRenderer.d.ts +33 -0
  227. package/dist/shared/components/StatusBadge.d.ts +12 -0
  228. package/dist/shared/components/TooltipWrapper.d.ts +12 -0
  229. package/dist/shared/components/index.d.ts +9 -0
  230. package/dist/shared/hooks/index.d.ts +56 -0
  231. package/dist/shared/hooks/useBaseComponent.d.ts +60 -0
  232. package/dist/shared/hooks/useComponentImperativeAPI.d.ts +11 -0
  233. package/dist/shared/hooks/useComponentState.d.ts +39 -0
  234. package/dist/shared/hooks/useCurrentTime.d.ts +6 -0
  235. package/dist/shared/hooks/useDataChangeEvents.d.ts +53 -0
  236. package/dist/shared/hooks/useDebounce.d.ts +10 -0
  237. package/dist/shared/hooks/useDeleteConfirmation.d.ts +9 -0
  238. package/dist/shared/hooks/useDialogState.d.ts +21 -0
  239. package/dist/shared/hooks/useDndHandlers.d.ts +17 -0
  240. package/dist/shared/hooks/useEditing.d.ts +107 -0
  241. package/dist/shared/hooks/useEventHandlers.d.ts +61 -0
  242. package/dist/shared/hooks/useEzTheme.d.ts +22 -0
  243. package/dist/shared/hooks/useFieldValidation.d.ts +24 -0
  244. package/dist/shared/hooks/useHistory.d.ts +13 -0
  245. package/dist/shared/hooks/useI18n.d.ts +9 -0
  246. package/dist/shared/hooks/useImperativeAPI.d.ts +8 -0
  247. package/dist/shared/hooks/useInitCoreServices.d.ts +5 -0
  248. package/dist/shared/hooks/useKeyboardNavigation.d.ts +36 -0
  249. package/dist/shared/hooks/useKeyboardShortcuts.d.ts +14 -0
  250. package/dist/shared/hooks/useLifecycleEvents.d.ts +22 -0
  251. package/dist/shared/hooks/useLoadingState.d.ts +17 -0
  252. package/dist/shared/hooks/useMediaQuery.d.ts +6 -0
  253. package/dist/shared/hooks/useNotificationService.d.ts +8 -0
  254. package/dist/shared/hooks/usePerformanceMonitor.d.ts +15 -0
  255. package/dist/shared/hooks/useRowSelectionEvents.d.ts +44 -0
  256. package/dist/shared/hooks/useSelection.d.ts +73 -0
  257. package/dist/shared/hooks/useService.d.ts +12 -0
  258. package/dist/shared/hooks/useServiceState.d.ts +12 -0
  259. package/dist/shared/hooks/useStateChangeEvents.d.ts +61 -0
  260. package/dist/shared/hooks/useTheme.d.ts +13 -0
  261. package/dist/shared/hooks/useVirtualization.d.ts +85 -0
  262. package/dist/shared/services/BaseService.d.ts +56 -0
  263. package/dist/shared/services/ContextMenuService.d.ts +58 -0
  264. package/dist/shared/services/ExportService.d.ts +35 -0
  265. package/dist/shared/services/FocusManagerService.d.ts +33 -0
  266. package/dist/shared/services/HierarchyService.d.ts +43 -0
  267. package/dist/shared/services/I18nService.d.ts +65 -0
  268. package/dist/shared/services/LayoutService.d.ts +80 -0
  269. package/dist/shared/services/NotificationService.d.ts +44 -0
  270. package/dist/shared/services/PersistenceService.d.ts +69 -0
  271. package/dist/shared/services/ServiceRegistry.d.ts +51 -0
  272. package/dist/shared/services/ThemeService.d.ts +49 -0
  273. package/dist/shared/services/VirtualizationService.d.ts +51 -0
  274. package/dist/shared/state/store.d.ts +10 -0
  275. package/dist/shared/themes.d.ts +25 -0
  276. package/dist/shared/types/BaseProps.d.ts +18 -0
  277. package/dist/shared/types/common.d.ts +292 -0
  278. package/dist/shared/types/commonTypes.d.ts +101 -0
  279. package/dist/shared/types/index.d.ts +2 -0
  280. package/dist/shared/utils/canvasUtils.d.ts +16 -0
  281. package/dist/shared/utils/commonUtils.d.ts +28 -0
  282. package/dist/shared/utils/csvUtils.d.ts +7 -0
  283. package/dist/shared/utils/dateUtils.d.ts +5 -0
  284. package/dist/shared/utils/dndUtils.d.ts +16 -0
  285. package/dist/shared/utils/ezStyleUtils.d.ts +64 -0
  286. package/dist/shared/utils/formatUtils.d.ts +20 -0
  287. package/dist/shared/utils/imperativeApiUtils.d.ts +36 -0
  288. package/dist/shared/utils/index.d.ts +11 -0
  289. package/dist/shared/utils/renderUtils.d.ts +6 -0
  290. package/dist/shared/utils/serviceUtils.d.ts +10 -0
  291. package/dist/shared/utils/styleUtils.d.ts +66 -0
  292. package/dist/shared/utils/validationUtils.d.ts +16 -0
  293. 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
+ }