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,789 @@
|
|
|
1
|
+
import { IService } from '../../shared/services/ServiceRegistry';
|
|
2
|
+
import { SharedBaseProps } from '../../shared/types/BaseProps';
|
|
3
|
+
/**
|
|
4
|
+
* Represents the entire Kanban board structure.
|
|
5
|
+
* @group Models
|
|
6
|
+
*/
|
|
7
|
+
export interface KanbanBoard {
|
|
8
|
+
/** Unique identifier for the board. @group Properties */
|
|
9
|
+
id: string;
|
|
10
|
+
/** Display name of the board. @group Properties */
|
|
11
|
+
name: string;
|
|
12
|
+
/** Optional description of the board. @group Properties */
|
|
13
|
+
description?: string;
|
|
14
|
+
/** List of columns in the board. @group Properties */
|
|
15
|
+
columns: KanbanColumn[];
|
|
16
|
+
/** List of swimlanes (if enabled). @group Properties */
|
|
17
|
+
swimlanes?: KanbanSwimlane[];
|
|
18
|
+
/** List of all cards on the board. @group Properties */
|
|
19
|
+
cards: KanbanCard[];
|
|
20
|
+
/** User permissions for this board. @group Properties */
|
|
21
|
+
permissions?: KanbanPermissions;
|
|
22
|
+
/** Board-specific settings. @group Properties */
|
|
23
|
+
settings: BoardSettings;
|
|
24
|
+
/** Custom field definitions. @group Properties */
|
|
25
|
+
customFields?: CustomFieldDefinition[];
|
|
26
|
+
/** Creation timestamp. @group Properties */
|
|
27
|
+
createdAt: Date;
|
|
28
|
+
/** Last update timestamp. @group Properties */
|
|
29
|
+
updatedAt: Date;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Represents a swimlane in the Kanban board.
|
|
33
|
+
* @group Models
|
|
34
|
+
*/
|
|
35
|
+
export interface KanbanSwimlane {
|
|
36
|
+
/** Unique identifier for the swimlane. @group Properties */
|
|
37
|
+
id: string;
|
|
38
|
+
/** Display name of the swimlane. @group Properties */
|
|
39
|
+
name: string;
|
|
40
|
+
/** Type of swimlane grouping. @group Properties */
|
|
41
|
+
type: 'team' | 'priority' | 'custom';
|
|
42
|
+
/** Optional background or accent color. @group Properties */
|
|
43
|
+
color?: string;
|
|
44
|
+
/** Vertical sorting position. @group Properties */
|
|
45
|
+
position: number;
|
|
46
|
+
/** Whether the swimlane is currently collapsed. @group State */
|
|
47
|
+
isCollapsed?: boolean;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Represents a column in the Kanban board.
|
|
51
|
+
* @group Models
|
|
52
|
+
*/
|
|
53
|
+
export interface KanbanColumn {
|
|
54
|
+
/** Unique identifier for the column. @group Properties */
|
|
55
|
+
id: string;
|
|
56
|
+
/** Display name of the column. @group Properties */
|
|
57
|
+
name: string;
|
|
58
|
+
/** Header color of the column. @group Properties */
|
|
59
|
+
color?: string;
|
|
60
|
+
/** Icon for the column header. @group Properties */
|
|
61
|
+
icon?: string;
|
|
62
|
+
/** Work-in-progress limit for the column. @group Properties */
|
|
63
|
+
wipLimit?: number;
|
|
64
|
+
/** Sorting position of the column. @group Properties */
|
|
65
|
+
position: number;
|
|
66
|
+
/** Whether the column is collapsed. @group State */
|
|
67
|
+
isCollapsed?: boolean;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Configuration settings for a Kanban board.
|
|
71
|
+
* @group Models
|
|
72
|
+
*/
|
|
73
|
+
export interface BoardSettings {
|
|
74
|
+
/** Whether to allow drag and drop. @group Properties */
|
|
75
|
+
allowDragAndDrop: boolean;
|
|
76
|
+
/** Whether to allow multi-select. @group Properties */
|
|
77
|
+
allowMultiSelect: boolean;
|
|
78
|
+
/** Whether to respect WIP limits. @group Properties */
|
|
79
|
+
enableWipLimits: boolean;
|
|
80
|
+
/** Initial view mode. @group Properties */
|
|
81
|
+
defaultView: 'standard' | 'swimlane' | 'timeline';
|
|
82
|
+
}
|
|
83
|
+
export type CardType = 'standard' | 'epic' | 'milestone' | 'template';
|
|
84
|
+
/**
|
|
85
|
+
* Represents a single task or card on the Kanban board.
|
|
86
|
+
*/
|
|
87
|
+
export interface KanbanCard {
|
|
88
|
+
/** Unique identifier for the card */
|
|
89
|
+
id: string;
|
|
90
|
+
/** Type of card (e.g., standard, epic) */
|
|
91
|
+
type: CardType;
|
|
92
|
+
/** Title of the card */
|
|
93
|
+
title: string;
|
|
94
|
+
/** Description of the card */
|
|
95
|
+
description?: string;
|
|
96
|
+
/** ID of the column the card belongs to */
|
|
97
|
+
columnId: string;
|
|
98
|
+
/** ID of the swimlane the card belongs to (if any) */
|
|
99
|
+
swimlaneId?: string;
|
|
100
|
+
/** Sorting position within the column */
|
|
101
|
+
position: number;
|
|
102
|
+
/** Users assigned to this card */
|
|
103
|
+
assignees: CardAssignee[];
|
|
104
|
+
dueDate?: Date;
|
|
105
|
+
startDate?: Date;
|
|
106
|
+
completedAt?: Date;
|
|
107
|
+
tags: CardTag[];
|
|
108
|
+
priority?: 'low' | 'medium' | 'high' | 'critical';
|
|
109
|
+
metadata: Record<string, any>;
|
|
110
|
+
coverImage?: string;
|
|
111
|
+
checklists?: Checklist[];
|
|
112
|
+
attachments?: Attachment[];
|
|
113
|
+
comments?: Comment[];
|
|
114
|
+
customFieldValues?: Record<string, any>;
|
|
115
|
+
timeTracking?: {
|
|
116
|
+
estimated: number;
|
|
117
|
+
actual: number;
|
|
118
|
+
};
|
|
119
|
+
activity?: CardActivity[];
|
|
120
|
+
parentId?: string;
|
|
121
|
+
subtasks?: {
|
|
122
|
+
id: string;
|
|
123
|
+
title: string;
|
|
124
|
+
isCompleted: boolean;
|
|
125
|
+
}[];
|
|
126
|
+
createdBy: string;
|
|
127
|
+
createdAt: Date;
|
|
128
|
+
updatedBy: string;
|
|
129
|
+
updatedAt: Date;
|
|
130
|
+
isArchived?: boolean;
|
|
131
|
+
}
|
|
132
|
+
export interface CardAssignee {
|
|
133
|
+
id: string;
|
|
134
|
+
name: string;
|
|
135
|
+
email?: string;
|
|
136
|
+
avatarUrl?: string;
|
|
137
|
+
role?: 'owner' | 'assignee' | 'follower';
|
|
138
|
+
}
|
|
139
|
+
export interface CardTag {
|
|
140
|
+
id: string;
|
|
141
|
+
name: string;
|
|
142
|
+
color: string;
|
|
143
|
+
}
|
|
144
|
+
export interface Checklist {
|
|
145
|
+
id: string;
|
|
146
|
+
title: string;
|
|
147
|
+
items: ChecklistItem[];
|
|
148
|
+
}
|
|
149
|
+
export interface ChecklistItem {
|
|
150
|
+
id: string;
|
|
151
|
+
text: string;
|
|
152
|
+
isChecked: boolean;
|
|
153
|
+
}
|
|
154
|
+
export interface Attachment {
|
|
155
|
+
id: string;
|
|
156
|
+
name: string;
|
|
157
|
+
url: string;
|
|
158
|
+
type: string;
|
|
159
|
+
size?: number;
|
|
160
|
+
uploadedAt: Date;
|
|
161
|
+
}
|
|
162
|
+
export interface Comment {
|
|
163
|
+
id: string;
|
|
164
|
+
text: string;
|
|
165
|
+
authorId: string;
|
|
166
|
+
authorName: string;
|
|
167
|
+
isAutoGenerated?: boolean;
|
|
168
|
+
createdAt: Date;
|
|
169
|
+
}
|
|
170
|
+
export interface CardActivity {
|
|
171
|
+
id: string;
|
|
172
|
+
type: 'create' | 'move' | 'update' | 'comment' | 'attachment' | 'delete';
|
|
173
|
+
text: string;
|
|
174
|
+
userId: string;
|
|
175
|
+
userName: string;
|
|
176
|
+
createdAt: Date;
|
|
177
|
+
metadata?: Record<string, any>;
|
|
178
|
+
}
|
|
179
|
+
export interface CustomFieldDefinition {
|
|
180
|
+
id: string;
|
|
181
|
+
name: string;
|
|
182
|
+
type: 'text' | 'number' | 'date' | 'select' | 'checkbox';
|
|
183
|
+
options?: string[];
|
|
184
|
+
required?: boolean;
|
|
185
|
+
}
|
|
186
|
+
export interface KanbanPermissions {
|
|
187
|
+
userRole: 'admin' | 'editor' | 'viewer' | 'guest';
|
|
188
|
+
allowedActions: Array<'createCard' | 'updateCard' | 'deleteCard' | 'moveCard' | 'assignCard' | 'addColumn' | 'editColumn' | 'deleteColumn' | 'addSwimlane' | 'editSwimlane' | 'deleteSwimlane'>;
|
|
189
|
+
}
|
|
190
|
+
export interface FilterConfig {
|
|
191
|
+
tags?: string[];
|
|
192
|
+
assignees?: string[];
|
|
193
|
+
priority?: Array<'low' | 'medium' | 'high' | 'critical'>;
|
|
194
|
+
columns?: string[];
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Props for the EzKanban component.
|
|
198
|
+
*/
|
|
199
|
+
export interface EzKanbanProps extends SharedBaseProps {
|
|
200
|
+
/**
|
|
201
|
+
* The board data object.
|
|
202
|
+
* @group Properties
|
|
203
|
+
*/
|
|
204
|
+
board: KanbanBoard;
|
|
205
|
+
/**
|
|
206
|
+
* Callback when the board state changes.
|
|
207
|
+
* @group Events
|
|
208
|
+
*/
|
|
209
|
+
onBoardChange?: (board: KanbanBoard) => void;
|
|
210
|
+
/**
|
|
211
|
+
* The current view mode.
|
|
212
|
+
* @group Properties
|
|
213
|
+
*/
|
|
214
|
+
view?: 'standard' | 'swimlane' | 'timeline';
|
|
215
|
+
/**
|
|
216
|
+
* User permissions config.
|
|
217
|
+
* @group Properties
|
|
218
|
+
*/
|
|
219
|
+
permissions?: KanbanPermissions;
|
|
220
|
+
/**
|
|
221
|
+
* Enable read-only mode.
|
|
222
|
+
* @group Properties
|
|
223
|
+
*/
|
|
224
|
+
readOnly?: boolean;
|
|
225
|
+
/**
|
|
226
|
+
* Allow drag and drop.
|
|
227
|
+
* @group Properties
|
|
228
|
+
*/
|
|
229
|
+
allowDragAndDrop?: boolean;
|
|
230
|
+
/**
|
|
231
|
+
* Allow selecting multiple cards.
|
|
232
|
+
* @group Properties
|
|
233
|
+
*/
|
|
234
|
+
allowMultiSelect?: boolean;
|
|
235
|
+
/**
|
|
236
|
+
* Confirm before deleting items.
|
|
237
|
+
* @group Properties
|
|
238
|
+
*/
|
|
239
|
+
confirmOnDelete?: boolean;
|
|
240
|
+
/**
|
|
241
|
+
* Enforce strict WIP limits.
|
|
242
|
+
* @group Properties
|
|
243
|
+
*/
|
|
244
|
+
wipStrict?: boolean;
|
|
245
|
+
/**
|
|
246
|
+
* Locale for the board.
|
|
247
|
+
* @group Properties
|
|
248
|
+
*/
|
|
249
|
+
locale?: string;
|
|
250
|
+
/**
|
|
251
|
+
* Enable RTL layout.
|
|
252
|
+
* @group Properties
|
|
253
|
+
*/
|
|
254
|
+
rtl?: boolean;
|
|
255
|
+
/**
|
|
256
|
+
* Color theme.
|
|
257
|
+
* @group Properties
|
|
258
|
+
*/
|
|
259
|
+
theme?: 'light' | 'dark' | 'system';
|
|
260
|
+
/**
|
|
261
|
+
* Text direction.
|
|
262
|
+
* @group Properties
|
|
263
|
+
*/
|
|
264
|
+
dir?: 'ltr' | 'rtl' | 'auto';
|
|
265
|
+
/**
|
|
266
|
+
* Function to determine card class names.
|
|
267
|
+
* @group Properties
|
|
268
|
+
*/
|
|
269
|
+
cardClassName?: (card: KanbanCard) => string | undefined;
|
|
270
|
+
/**
|
|
271
|
+
* List of plugins to enhance functionality.
|
|
272
|
+
* @group Extensibility
|
|
273
|
+
*/
|
|
274
|
+
plugins?: KanbanPlugin[];
|
|
275
|
+
/**
|
|
276
|
+
* Custom renderers for various board elements.
|
|
277
|
+
* @group Extensibility
|
|
278
|
+
*/
|
|
279
|
+
customRenderers?: {
|
|
280
|
+
card?: (card: KanbanCard, defaultContent: React.JSX.Element) => React.JSX.Element;
|
|
281
|
+
cardContent?: (card: KanbanCard) => React.JSX.Element;
|
|
282
|
+
column?: (column: KanbanColumn) => React.JSX.Element;
|
|
283
|
+
cardEditor?: (props: {
|
|
284
|
+
isOpen: boolean;
|
|
285
|
+
card?: Partial<KanbanCard>;
|
|
286
|
+
onClose: () => void;
|
|
287
|
+
onSave: (card: Partial<KanbanCard>) => void;
|
|
288
|
+
onDelete?: (cardId: string) => void;
|
|
289
|
+
columns: KanbanColumn[];
|
|
290
|
+
}) => React.ReactNode;
|
|
291
|
+
};
|
|
292
|
+
/**
|
|
293
|
+
* Callback when a new card is being created.
|
|
294
|
+
* @group Events
|
|
295
|
+
*/
|
|
296
|
+
onCardCreate?: (draft: Partial<KanbanCard>) => void | Promise<void>;
|
|
297
|
+
/**
|
|
298
|
+
* Callback when a card is updated.
|
|
299
|
+
* @group Events
|
|
300
|
+
*/
|
|
301
|
+
onCardUpdate?: (card: KanbanCard, changeType: 'move' | 'edit' | 'assign' | 'complete') => Promise<void> | void;
|
|
302
|
+
/**
|
|
303
|
+
* Callback when a card is deleted.
|
|
304
|
+
* @group Events
|
|
305
|
+
*/
|
|
306
|
+
onCardDelete?: (cardId: string) => void | Promise<void>;
|
|
307
|
+
/**
|
|
308
|
+
* Callback when a card is clicked.
|
|
309
|
+
* @group Events
|
|
310
|
+
*/
|
|
311
|
+
onCardClick?: (card: KanbanCard) => void;
|
|
312
|
+
/**
|
|
313
|
+
* Callback when a card is double-clicked.
|
|
314
|
+
* @group Events
|
|
315
|
+
*/
|
|
316
|
+
onCardDoubleClick?: (card: KanbanCard) => void;
|
|
317
|
+
/**
|
|
318
|
+
* Callback when cards are selected.
|
|
319
|
+
* @group Events
|
|
320
|
+
*/
|
|
321
|
+
onCardSelect?: (cardIds: string[]) => void;
|
|
322
|
+
/**
|
|
323
|
+
* Callback when a column is created.
|
|
324
|
+
* @group Events
|
|
325
|
+
*/
|
|
326
|
+
onColumnCreate?: (column: Partial<KanbanColumn>) => void | Promise<void>;
|
|
327
|
+
/**
|
|
328
|
+
* Callback when a column is updated.
|
|
329
|
+
* @group Events
|
|
330
|
+
*/
|
|
331
|
+
onColumnUpdate?: (column: KanbanColumn) => void | Promise<void>;
|
|
332
|
+
/**
|
|
333
|
+
* Callback when a column is deleted.
|
|
334
|
+
* @group Events
|
|
335
|
+
*/
|
|
336
|
+
onColumnDelete?: (columnId: string) => void | Promise<void>;
|
|
337
|
+
/**
|
|
338
|
+
* Callback when a swimlane is created.
|
|
339
|
+
* @group Events
|
|
340
|
+
*/
|
|
341
|
+
onSwimlaneCreate?: (swimlane: Partial<KanbanSwimlane>) => void | Promise<void>;
|
|
342
|
+
/**
|
|
343
|
+
* Callback when a swimlane is updated.
|
|
344
|
+
* @group Events
|
|
345
|
+
*/
|
|
346
|
+
onSwimlaneUpdate?: (swimlane: KanbanSwimlane) => void | Promise<void>;
|
|
347
|
+
/**
|
|
348
|
+
* Callback when a swimlane is deleted.
|
|
349
|
+
* @group Events
|
|
350
|
+
*/
|
|
351
|
+
onSwimlaneDelete?: (swimlaneId: string) => void | Promise<void>;
|
|
352
|
+
/**
|
|
353
|
+
* Configuration for swimlanes.
|
|
354
|
+
* @group Enterprise
|
|
355
|
+
*/
|
|
356
|
+
swimlaneSettings?: {
|
|
357
|
+
allowDragBetweenSwimlanes?: boolean;
|
|
358
|
+
allowReordering?: boolean;
|
|
359
|
+
collapsible?: boolean;
|
|
360
|
+
emptySwimlaneTemplate?: React.ReactNode;
|
|
361
|
+
};
|
|
362
|
+
/**
|
|
363
|
+
* Configuration for columns.
|
|
364
|
+
* @group Enterprise
|
|
365
|
+
*/
|
|
366
|
+
columnSettings?: {
|
|
367
|
+
minWidth?: number;
|
|
368
|
+
maxWidth?: number;
|
|
369
|
+
allowCollapse?: boolean;
|
|
370
|
+
showItemCount?: boolean;
|
|
371
|
+
};
|
|
372
|
+
/**
|
|
373
|
+
* Configuration for drag and drop behavior.
|
|
374
|
+
* @group Enterprise
|
|
375
|
+
*/
|
|
376
|
+
dragSettings?: {
|
|
377
|
+
dragClass?: string;
|
|
378
|
+
dropClass?: string;
|
|
379
|
+
dragClone?: boolean;
|
|
380
|
+
minDragDistance?: number;
|
|
381
|
+
};
|
|
382
|
+
/**
|
|
383
|
+
* Configuration for dialogs (editor, confirmation).
|
|
384
|
+
* @group Enterprise
|
|
385
|
+
*/
|
|
386
|
+
dialogSettings?: {
|
|
387
|
+
modalZIndex?: number;
|
|
388
|
+
closeOnEscape?: boolean;
|
|
389
|
+
showCloseIcon?: boolean;
|
|
390
|
+
};
|
|
391
|
+
/**
|
|
392
|
+
* Enable tooltips for cards.
|
|
393
|
+
* @group Properties
|
|
394
|
+
*/
|
|
395
|
+
enableTooltip?: boolean;
|
|
396
|
+
/**
|
|
397
|
+
* Template for card tooltips.
|
|
398
|
+
* @group Templates
|
|
399
|
+
*/
|
|
400
|
+
tooltipTemplate?: (data: KanbanCard) => React.ReactNode;
|
|
401
|
+
/**
|
|
402
|
+
* Callback when card drag starts.
|
|
403
|
+
* @group Events
|
|
404
|
+
*/
|
|
405
|
+
onCardDragStart?: (args: {
|
|
406
|
+
card: KanbanCard;
|
|
407
|
+
columnId: string;
|
|
408
|
+
cancel?: boolean;
|
|
409
|
+
}) => void;
|
|
410
|
+
/**
|
|
411
|
+
* Callback when card drag stops.
|
|
412
|
+
* @group Events
|
|
413
|
+
*/
|
|
414
|
+
onCardDragStop?: (args: {
|
|
415
|
+
card: KanbanCard;
|
|
416
|
+
columnId: string;
|
|
417
|
+
cancel?: boolean;
|
|
418
|
+
}) => void;
|
|
419
|
+
/**
|
|
420
|
+
* Callback when card enters a column.
|
|
421
|
+
* @group Events
|
|
422
|
+
*/
|
|
423
|
+
onCardDragEnter?: (args: {
|
|
424
|
+
card: KanbanCard;
|
|
425
|
+
targetColumnId: string;
|
|
426
|
+
}) => void;
|
|
427
|
+
/**
|
|
428
|
+
* Callback when card leaves a column.
|
|
429
|
+
* @group Events
|
|
430
|
+
*/
|
|
431
|
+
onCardDragLeave?: (args: {
|
|
432
|
+
card: KanbanCard;
|
|
433
|
+
targetColumnId: string;
|
|
434
|
+
}) => void;
|
|
435
|
+
/**
|
|
436
|
+
* Callback before card render.
|
|
437
|
+
* @group Events
|
|
438
|
+
*/
|
|
439
|
+
onBeforeCardRender?: (args: {
|
|
440
|
+
card: KanbanCard;
|
|
441
|
+
}) => void;
|
|
442
|
+
/**
|
|
443
|
+
* Callback when swimlane toggle.
|
|
444
|
+
* @group Events
|
|
445
|
+
*/
|
|
446
|
+
onSwimlaneToggle?: (args: {
|
|
447
|
+
swimlaneId: string;
|
|
448
|
+
isCollapsed: boolean;
|
|
449
|
+
}) => void;
|
|
450
|
+
/**
|
|
451
|
+
* Threshold for virtualization.
|
|
452
|
+
* @group Performance
|
|
453
|
+
*/
|
|
454
|
+
virtualizationThreshold?: number;
|
|
455
|
+
/**
|
|
456
|
+
* Accessibility configuration.
|
|
457
|
+
* @group Accessibility
|
|
458
|
+
*/
|
|
459
|
+
ariaConfig?: Record<string, string>;
|
|
460
|
+
/**
|
|
461
|
+
* Enable keyboard navigation.
|
|
462
|
+
* @group Accessibility
|
|
463
|
+
*/
|
|
464
|
+
keyboardNavigation?: boolean;
|
|
465
|
+
}
|
|
466
|
+
export interface KanbanPlugin {
|
|
467
|
+
name?: string;
|
|
468
|
+
onBeforeCardRender?: (card: Readonly<KanbanCard>) => KanbanCard | void;
|
|
469
|
+
onAfterCardRender?: (card: KanbanCard, element: HTMLElement) => void;
|
|
470
|
+
onAfterDragEnd?: (card: KanbanCard, target: {
|
|
471
|
+
columnId: string;
|
|
472
|
+
}) => void;
|
|
473
|
+
onBeforeDragStart?: (card: KanbanCard) => boolean | void;
|
|
474
|
+
onBeforeOptimisticUpdate?: (card: KanbanCard) => Partial<KanbanCard> | void;
|
|
475
|
+
onUpdateRollback?: (originalCard: KanbanCard, error?: Error) => void;
|
|
476
|
+
onWipLimitExceeded?: (columnId: string, currentCount: number, limit: number) => void;
|
|
477
|
+
cleanup?: () => void;
|
|
478
|
+
}
|
|
479
|
+
export interface EzKanbanRef<TCard = KanbanCard> {
|
|
480
|
+
/**
|
|
481
|
+
* Add a new card.
|
|
482
|
+
* @group Methods
|
|
483
|
+
*/
|
|
484
|
+
addCard(draft: Partial<TCard>): Promise<TCard>;
|
|
485
|
+
/**
|
|
486
|
+
* Update an existing card.
|
|
487
|
+
* @group Methods
|
|
488
|
+
*/
|
|
489
|
+
updateCard(cardId: string, updates: Partial<TCard>): Promise<any>;
|
|
490
|
+
/**
|
|
491
|
+
* Delete a card by ID.
|
|
492
|
+
* @group Methods
|
|
493
|
+
*/
|
|
494
|
+
deleteCard(cardId: string): Promise<any>;
|
|
495
|
+
/**
|
|
496
|
+
* Move a card to a new column/swimlane.
|
|
497
|
+
* @group Methods
|
|
498
|
+
*/
|
|
499
|
+
moveCard(cardId: string, targetColumnId: string, targetSwimlaneId?: string, targetPosition?: number): Promise<any>;
|
|
500
|
+
/**
|
|
501
|
+
* Duplicate a card.
|
|
502
|
+
* @group Methods
|
|
503
|
+
*/
|
|
504
|
+
duplicateCard(cardId: string): Promise<TCard>;
|
|
505
|
+
/**
|
|
506
|
+
* Archive a card.
|
|
507
|
+
* @group Methods
|
|
508
|
+
*/
|
|
509
|
+
archiveCard(cardId: string): Promise<any>;
|
|
510
|
+
/**
|
|
511
|
+
* Restore an archived card.
|
|
512
|
+
* @group Methods
|
|
513
|
+
*/
|
|
514
|
+
restoreCard(cardId: string): Promise<any>;
|
|
515
|
+
/**
|
|
516
|
+
* Get a card by ID.
|
|
517
|
+
* @group Methods
|
|
518
|
+
*/
|
|
519
|
+
getCard(cardId: string): TCard | undefined;
|
|
520
|
+
/**
|
|
521
|
+
* Get all cards.
|
|
522
|
+
* @group Methods
|
|
523
|
+
*/
|
|
524
|
+
getCards(): TCard[];
|
|
525
|
+
/**
|
|
526
|
+
* Get cards in a specific column.
|
|
527
|
+
* @group Methods
|
|
528
|
+
*/
|
|
529
|
+
getCardsInColumn(columnId: string): TCard[];
|
|
530
|
+
/**
|
|
531
|
+
* Get ordered cards in a column.
|
|
532
|
+
* @group Methods
|
|
533
|
+
*/
|
|
534
|
+
getOrderedCards(columnId: string): TCard[];
|
|
535
|
+
/**
|
|
536
|
+
* Add a new column.
|
|
537
|
+
* @group Methods
|
|
538
|
+
*/
|
|
539
|
+
addColumn(column: Partial<KanbanColumn>): Promise<KanbanColumn>;
|
|
540
|
+
/**
|
|
541
|
+
* Update a column.
|
|
542
|
+
* @group Methods
|
|
543
|
+
*/
|
|
544
|
+
updateColumn(columnId: string, updates: Partial<KanbanColumn>): Promise<any>;
|
|
545
|
+
/**
|
|
546
|
+
* Delete a column.
|
|
547
|
+
* @group Methods
|
|
548
|
+
*/
|
|
549
|
+
deleteColumn(columnId: string): Promise<any>;
|
|
550
|
+
/**
|
|
551
|
+
* Reorder columns.
|
|
552
|
+
* @group Methods
|
|
553
|
+
*/
|
|
554
|
+
reorderColumns(columnIds: string[]): Promise<any>;
|
|
555
|
+
/**
|
|
556
|
+
* Collapse a column.
|
|
557
|
+
* @group Methods
|
|
558
|
+
*/
|
|
559
|
+
collapseColumn(columnId: string): void;
|
|
560
|
+
/**
|
|
561
|
+
* Expand a column.
|
|
562
|
+
* @group Methods
|
|
563
|
+
*/
|
|
564
|
+
expandColumn(columnId: string): void;
|
|
565
|
+
/**
|
|
566
|
+
* Get a column by ID.
|
|
567
|
+
* @group Methods
|
|
568
|
+
*/
|
|
569
|
+
getColumn(columnId: string): KanbanColumn | undefined;
|
|
570
|
+
/**
|
|
571
|
+
* Get all columns.
|
|
572
|
+
* @group Methods
|
|
573
|
+
*/
|
|
574
|
+
getColumns(): KanbanColumn[];
|
|
575
|
+
/**
|
|
576
|
+
* Add a new swimlane.
|
|
577
|
+
* @group Methods
|
|
578
|
+
*/
|
|
579
|
+
addSwimlane(swimlane: Partial<KanbanSwimlane>): Promise<KanbanSwimlane>;
|
|
580
|
+
/**
|
|
581
|
+
* Update a swimlane.
|
|
582
|
+
* @group Methods
|
|
583
|
+
*/
|
|
584
|
+
updateSwimlane(swimlaneId: string, updates: Partial<KanbanSwimlane>): Promise<any>;
|
|
585
|
+
/**
|
|
586
|
+
* Delete a swimlane.
|
|
587
|
+
* @group Methods
|
|
588
|
+
*/
|
|
589
|
+
deleteSwimlane(swimlaneId: string): Promise<any>;
|
|
590
|
+
/**
|
|
591
|
+
* Reorder swimlanes.
|
|
592
|
+
* @group Methods
|
|
593
|
+
*/
|
|
594
|
+
reorderSwimlanes(swimlaneIds: string[]): Promise<any>;
|
|
595
|
+
/**
|
|
596
|
+
* Collapse a swimlane.
|
|
597
|
+
* @group Methods
|
|
598
|
+
*/
|
|
599
|
+
collapseSwimlane(swimlaneId: string): void;
|
|
600
|
+
/**
|
|
601
|
+
* Expand a swimlane.
|
|
602
|
+
* @group Methods
|
|
603
|
+
*/
|
|
604
|
+
expandSwimlane(swimlaneId: string): void;
|
|
605
|
+
/**
|
|
606
|
+
* Get a swimlane by ID.
|
|
607
|
+
* @group Methods
|
|
608
|
+
*/
|
|
609
|
+
getSwimlane(swimlaneId: string): KanbanSwimlane | undefined;
|
|
610
|
+
/**
|
|
611
|
+
* Get all swimlanes.
|
|
612
|
+
* @group Methods
|
|
613
|
+
*/
|
|
614
|
+
getSwimlanes(): KanbanSwimlane[];
|
|
615
|
+
/**
|
|
616
|
+
* Select a card.
|
|
617
|
+
* @group Methods
|
|
618
|
+
*/
|
|
619
|
+
selectCard(cardId: string): void;
|
|
620
|
+
/**
|
|
621
|
+
* Select multiple cards.
|
|
622
|
+
* @group Methods
|
|
623
|
+
*/
|
|
624
|
+
selectCards(cardIds: string[]): void;
|
|
625
|
+
/**
|
|
626
|
+
* Deselect a card.
|
|
627
|
+
* @group Methods
|
|
628
|
+
*/
|
|
629
|
+
deselectCard(cardId: string): void;
|
|
630
|
+
/**
|
|
631
|
+
* Deselect all cards.
|
|
632
|
+
* @group Methods
|
|
633
|
+
*/
|
|
634
|
+
deselectAllCards(): void;
|
|
635
|
+
/**
|
|
636
|
+
* Get currently selected cards.
|
|
637
|
+
* @group Methods
|
|
638
|
+
*/
|
|
639
|
+
getSelectedCards(): TCard[];
|
|
640
|
+
/**
|
|
641
|
+
* Focus a card.
|
|
642
|
+
* @group Methods
|
|
643
|
+
*/
|
|
644
|
+
focusCard(cardId: string): void;
|
|
645
|
+
/**
|
|
646
|
+
* Highlight a card.
|
|
647
|
+
* @group Methods
|
|
648
|
+
*/
|
|
649
|
+
highlightCard(cardId: string, duration?: number): void;
|
|
650
|
+
/**
|
|
651
|
+
* Set the current view.
|
|
652
|
+
* @group Methods
|
|
653
|
+
*/
|
|
654
|
+
setView(view: 'standard' | 'swimlane' | 'timeline'): void;
|
|
655
|
+
/**
|
|
656
|
+
* Get the current view.
|
|
657
|
+
* @group Methods
|
|
658
|
+
*/
|
|
659
|
+
getView(): 'standard' | 'swimlane' | 'timeline';
|
|
660
|
+
/**
|
|
661
|
+
* Scroll to a column.
|
|
662
|
+
* @group Methods
|
|
663
|
+
*/
|
|
664
|
+
scrollToColumn(columnId: string, options?: ScrollIntoViewOptions): void;
|
|
665
|
+
/**
|
|
666
|
+
* Scroll to a card.
|
|
667
|
+
* @group Methods
|
|
668
|
+
*/
|
|
669
|
+
scrollToCard(cardId: string, options?: ScrollIntoViewOptions): void;
|
|
670
|
+
/**
|
|
671
|
+
* Set the search query.
|
|
672
|
+
* @group Methods
|
|
673
|
+
*/
|
|
674
|
+
setSearchQuery(query: string): void;
|
|
675
|
+
/**
|
|
676
|
+
* Get the search query.
|
|
677
|
+
* @group Methods
|
|
678
|
+
*/
|
|
679
|
+
getSearchQuery(): string;
|
|
680
|
+
/**
|
|
681
|
+
* Set active filters.
|
|
682
|
+
* @group Methods
|
|
683
|
+
*/
|
|
684
|
+
setActiveFilters(filters: FilterConfig): void;
|
|
685
|
+
/**
|
|
686
|
+
* Get active filters.
|
|
687
|
+
* @group Methods
|
|
688
|
+
*/
|
|
689
|
+
getActiveFilters(): FilterConfig;
|
|
690
|
+
/**
|
|
691
|
+
* Clear all filters.
|
|
692
|
+
* @group Methods
|
|
693
|
+
*/
|
|
694
|
+
clearFilters(): void;
|
|
695
|
+
/**
|
|
696
|
+
* Get filtered cards.
|
|
697
|
+
* @group Methods
|
|
698
|
+
*/
|
|
699
|
+
getFilteredCards(): TCard[];
|
|
700
|
+
/**
|
|
701
|
+
* Get the full board object.
|
|
702
|
+
* @group Methods
|
|
703
|
+
*/
|
|
704
|
+
getBoard(): KanbanBoard;
|
|
705
|
+
/**
|
|
706
|
+
* Replace the board object.
|
|
707
|
+
* @group Methods
|
|
708
|
+
*/
|
|
709
|
+
setBoard(board: KanbanBoard): void;
|
|
710
|
+
/**
|
|
711
|
+
* Refresh the board layout.
|
|
712
|
+
* @group Methods
|
|
713
|
+
*/
|
|
714
|
+
refresh(): Promise<void>;
|
|
715
|
+
/**
|
|
716
|
+
* Reset the board state.
|
|
717
|
+
* @group Methods
|
|
718
|
+
*/
|
|
719
|
+
reset(): void;
|
|
720
|
+
/**
|
|
721
|
+
* Show the loading spinner.
|
|
722
|
+
* @group Methods
|
|
723
|
+
*/
|
|
724
|
+
showSpinner(): void;
|
|
725
|
+
/**
|
|
726
|
+
* Hide the loading spinner.
|
|
727
|
+
* @group Methods
|
|
728
|
+
*/
|
|
729
|
+
hideSpinner(): void;
|
|
730
|
+
/**
|
|
731
|
+
* Force a re-render.
|
|
732
|
+
* @group Methods
|
|
733
|
+
*/
|
|
734
|
+
forceUpdate(): void;
|
|
735
|
+
/**
|
|
736
|
+
* Get board statistics.
|
|
737
|
+
* @group Methods
|
|
738
|
+
*/
|
|
739
|
+
getStatistics(): {
|
|
740
|
+
totalCards: number;
|
|
741
|
+
totalColumns: number;
|
|
742
|
+
};
|
|
743
|
+
/**
|
|
744
|
+
* Validate the board state.
|
|
745
|
+
* @group Methods
|
|
746
|
+
*/
|
|
747
|
+
validate(): {
|
|
748
|
+
isValid: boolean;
|
|
749
|
+
errors: string[];
|
|
750
|
+
};
|
|
751
|
+
}
|
|
752
|
+
/**
|
|
753
|
+
* Service interface for Kanban board data operations.
|
|
754
|
+
* @group Services
|
|
755
|
+
*/
|
|
756
|
+
export interface IKanbanService extends IService {
|
|
757
|
+
/** Fetches a board by ID. @group Methods */
|
|
758
|
+
getBoard(boardId: string): Promise<KanbanBoard>;
|
|
759
|
+
/** Creates a new board. @group Methods */
|
|
760
|
+
createBoard(board: Partial<KanbanBoard>): Promise<KanbanBoard>;
|
|
761
|
+
/** Updates board metadata. @group Methods */
|
|
762
|
+
updateBoard(boardId: string, updates: Partial<KanbanBoard>): Promise<void>;
|
|
763
|
+
/** Deletes a board. @group Methods */
|
|
764
|
+
deleteBoard(boardId: string): Promise<void>;
|
|
765
|
+
/** Creates a card in a board. @group Methods */
|
|
766
|
+
createCard(boardId: string, card: Partial<KanbanCard>): Promise<KanbanCard>;
|
|
767
|
+
/** Updates an existing card. @group Methods */
|
|
768
|
+
updateCard(cardId: string, updates: Partial<KanbanCard>): Promise<void>;
|
|
769
|
+
/** Deletes a card. @group Methods */
|
|
770
|
+
deleteCard(cardId: string): Promise<void>;
|
|
771
|
+
/** Moves a card across columns/swimlanes. @group Methods */
|
|
772
|
+
moveCard(cardId: string, targetColumnId: string, targetSwimlaneId?: string, targetPosition?: number): Promise<void>;
|
|
773
|
+
/** Creates a new column. @group Methods */
|
|
774
|
+
createColumn(boardId: string, column: Partial<KanbanColumn>): Promise<KanbanColumn>;
|
|
775
|
+
/** Updates column settings. @group Methods */
|
|
776
|
+
updateColumn(columnId: string, updates: Partial<KanbanColumn>): Promise<void>;
|
|
777
|
+
/** Deletes a column. @group Methods */
|
|
778
|
+
deleteColumn(columnId: string): Promise<void>;
|
|
779
|
+
/** Creates a new swimlane. @group Methods */
|
|
780
|
+
createSwimlane(boardId: string, swimlane: Partial<KanbanSwimlane>): Promise<KanbanSwimlane>;
|
|
781
|
+
/** Updates swimlane settings. @group Methods */
|
|
782
|
+
updateSwimlane(swimlaneId: string, updates: Partial<KanbanSwimlane>): Promise<void>;
|
|
783
|
+
/** Deletes a swimlane. @group Methods */
|
|
784
|
+
deleteSwimlane(swimlaneId: string): Promise<void>;
|
|
785
|
+
/** Optional method to pre-populate board data. @group Methods */
|
|
786
|
+
initializeWithData?(boards: KanbanBoard[]): void;
|
|
787
|
+
/** Service cleanup logic. @group Methods */
|
|
788
|
+
cleanup(): void;
|
|
789
|
+
}
|