@primeui/vue-taskboard 0.0.1-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +23 -0
- package/dist/TaskBoard.context.d.mts +235 -0
- package/dist/TaskBoard.context.d.ts +235 -0
- package/dist/TaskBoard.parts.d.mts +20 -0
- package/dist/TaskBoard.parts.d.ts +20 -0
- package/dist/TaskBoard.vue.d.mts +291 -0
- package/dist/TaskBoard.vue.d.ts +291 -0
- package/dist/TaskBoardContent.vue.d.mts +27 -0
- package/dist/TaskBoardContent.vue.d.ts +27 -0
- package/dist/TaskBoardHeader.vue.d.mts +18 -0
- package/dist/TaskBoardHeader.vue.d.ts +18 -0
- package/dist/TaskBoardLoading.vue.d.mts +13 -0
- package/dist/TaskBoardLoading.vue.d.ts +13 -0
- package/dist/chunks/useTaskBoardDrag-ByZvmcfw.mjs +590 -0
- package/dist/components/card/TaskBoardCard.vue.d.mts +23 -0
- package/dist/components/card/TaskBoardCard.vue.d.ts +23 -0
- package/dist/components/card/TaskBoardCardAdd.vue.d.mts +15 -0
- package/dist/components/card/TaskBoardCardAdd.vue.d.ts +15 -0
- package/dist/components/card/TaskBoardCardContent.vue.d.mts +18 -0
- package/dist/components/card/TaskBoardCardContent.vue.d.ts +18 -0
- package/dist/components/card/TaskBoardCardFooter.vue.d.mts +18 -0
- package/dist/components/card/TaskBoardCardFooter.vue.d.ts +18 -0
- package/dist/components/card/TaskBoardCardHeader.vue.d.mts +18 -0
- package/dist/components/card/TaskBoardCardHeader.vue.d.ts +18 -0
- package/dist/components/column/TaskBoardColumn.vue.d.mts +19 -0
- package/dist/components/column/TaskBoardColumn.vue.d.ts +19 -0
- package/dist/components/column/TaskBoardColumnAdd.vue.d.mts +13 -0
- package/dist/components/column/TaskBoardColumnAdd.vue.d.ts +13 -0
- package/dist/components/column/TaskBoardColumnContent.vue.d.mts +20 -0
- package/dist/components/column/TaskBoardColumnContent.vue.d.ts +20 -0
- package/dist/components/column/TaskBoardColumnEmpty.vue.d.mts +13 -0
- package/dist/components/column/TaskBoardColumnEmpty.vue.d.ts +13 -0
- package/dist/components/column/TaskBoardColumnFooter.vue.d.mts +16 -0
- package/dist/components/column/TaskBoardColumnFooter.vue.d.ts +16 -0
- package/dist/components/column/TaskBoardColumnHeader.vue.d.mts +19 -0
- package/dist/components/column/TaskBoardColumnHeader.vue.d.ts +19 -0
- package/dist/components/overlay/TaskBoardDragConfirm.vue.d.mts +20 -0
- package/dist/components/overlay/TaskBoardDragConfirm.vue.d.ts +20 -0
- package/dist/components/overlay/TaskBoardDragPreview.vue.d.mts +16 -0
- package/dist/components/overlay/TaskBoardDragPreview.vue.d.ts +16 -0
- package/dist/components/overlay/TaskBoardDropIndicator.d.mts +2 -0
- package/dist/components/overlay/TaskBoardDropIndicator.d.ts +2 -0
- package/dist/components/swimlane/TaskBoardSwimlaneColumnHeader.vue.d.mts +20 -0
- package/dist/components/swimlane/TaskBoardSwimlaneColumnHeader.vue.d.ts +20 -0
- package/dist/components/swimlane/TaskBoardSwimlaneHeader.vue.d.mts +22 -0
- package/dist/components/swimlane/TaskBoardSwimlaneHeader.vue.d.ts +22 -0
- package/dist/composables/index.d.mts +9 -0
- package/dist/composables/index.d.ts +9 -0
- package/dist/composables/index.mjs +12 -0
- package/dist/composables/useCardDrag.d.mts +47 -0
- package/dist/composables/useCardDrag.d.ts +47 -0
- package/dist/composables/useCardDragGeometry.d.mts +21 -0
- package/dist/composables/useCardDragGeometry.d.ts +21 -0
- package/dist/composables/useColumnDrag.d.mts +24 -0
- package/dist/composables/useColumnDrag.d.ts +24 -0
- package/dist/composables/useControllerInit.d.mts +64 -0
- package/dist/composables/useControllerInit.d.ts +64 -0
- package/dist/composables/useHistory.d.mts +15 -0
- package/dist/composables/useHistory.d.ts +15 -0
- package/dist/composables/useKeyboardHandling.d.mts +37 -0
- package/dist/composables/useKeyboardHandling.d.ts +37 -0
- package/dist/composables/useTaskBoardAccess.d.mts +9 -0
- package/dist/composables/useTaskBoardAccess.d.ts +9 -0
- package/dist/composables/useTaskBoardDrag.d.mts +14 -0
- package/dist/composables/useTaskBoardDrag.d.ts +14 -0
- package/dist/composables/useTaskBoardHistory.d.mts +6 -0
- package/dist/composables/useTaskBoardHistory.d.ts +6 -0
- package/dist/composables/useTaskBoardPrintRuntime.d.mts +7 -0
- package/dist/composables/useTaskBoardPrintRuntime.d.ts +7 -0
- package/dist/composables/useTaskBoardSelection.d.mts +11 -0
- package/dist/composables/useTaskBoardSelection.d.ts +11 -0
- package/dist/composables/useTaskBoardWorkflow.d.mts +8 -0
- package/dist/composables/useTaskBoardWorkflow.d.ts +8 -0
- package/dist/index.d.mts +29 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.mjs +1654 -0
- package/dist/release-date.d.mts +11 -0
- package/dist/release-date.d.ts +11 -0
- package/package.json +57 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { type Ref } from 'vue';
|
|
2
|
+
import type { ColumnElementInfo, DragController, SelectionController } from '@primeui/taskboard-core';
|
|
3
|
+
import type { TaskBoardColumn, TaskBoardItem } from '@primeui/taskboard-types';
|
|
4
|
+
export interface CardDragConfig {
|
|
5
|
+
getDisabled: () => boolean;
|
|
6
|
+
getReadonly: () => boolean;
|
|
7
|
+
getSelectionMode: () => string;
|
|
8
|
+
getDragMinDistance: () => number | undefined;
|
|
9
|
+
tasks: Ref<TaskBoardItem[]>;
|
|
10
|
+
columnsContainerRef: Ref<HTMLElement | undefined>;
|
|
11
|
+
isDragging: Ref<boolean>;
|
|
12
|
+
draggedCardId: Ref<string | number | null>;
|
|
13
|
+
dragTargetColumnId: Ref<string | number | null>;
|
|
14
|
+
dragTargetIndex: Ref<number | null>;
|
|
15
|
+
dragTargetSwimlaneId: Ref<string | number | null>;
|
|
16
|
+
ghostPosition: Ref<{
|
|
17
|
+
x: number;
|
|
18
|
+
y: number;
|
|
19
|
+
} | null>;
|
|
20
|
+
dragPreviewWidth: Ref<number | null>;
|
|
21
|
+
draggedCardData: Ref<TaskBoardItem | null>;
|
|
22
|
+
selectedCardIds: Ref<(string | number)[]>;
|
|
23
|
+
selectionOrigin: Ref<'pointer' | 'keyboard' | null>;
|
|
24
|
+
hasSwimlanes: Ref<boolean>;
|
|
25
|
+
canDrag: Ref<boolean>;
|
|
26
|
+
getDragController: () => DragController | null;
|
|
27
|
+
getSelectionController: () => SelectionController | null;
|
|
28
|
+
isFeatureEnabled: (feature: string) => boolean;
|
|
29
|
+
canMoveOutOfColumn: (columnId: string | number) => boolean;
|
|
30
|
+
focusCard: (taskId: string | number) => void;
|
|
31
|
+
emit: (event: string, payload: unknown) => void;
|
|
32
|
+
getItemId: (item: TaskBoardItem) => string | number;
|
|
33
|
+
getItemColumnValue: (item: TaskBoardItem) => string | number;
|
|
34
|
+
getItemSwimlaneValue: (item: TaskBoardItem) => string | number | undefined;
|
|
35
|
+
}
|
|
36
|
+
export declare function useCardDrag(config: CardDragConfig): {
|
|
37
|
+
getDragHiddenIds: () => (string | number)[];
|
|
38
|
+
getColumnElements: () => ColumnElementInfo[];
|
|
39
|
+
markDragGeometryDirty: () => void;
|
|
40
|
+
refreshDragGeometry: () => ColumnElementInfo[];
|
|
41
|
+
clearDragGeometry: () => void;
|
|
42
|
+
autoScroll: (clientX: number, clientY: number) => boolean;
|
|
43
|
+
onCardPointerDown: (task: TaskBoardItem, column: TaskBoardColumn, event: PointerEvent) => void;
|
|
44
|
+
onDocumentPointerMove: (event: PointerEvent) => void;
|
|
45
|
+
onDocumentPointerUp: () => void;
|
|
46
|
+
cleanupCardDrag: () => void;
|
|
47
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type ColumnElementInfo } from '@primeui/taskboard-core';
|
|
2
|
+
interface CardDragScrollBody {
|
|
3
|
+
element: HTMLElement;
|
|
4
|
+
rect: DOMRect;
|
|
5
|
+
}
|
|
6
|
+
export interface CardDragGeometrySnapshot {
|
|
7
|
+
columns: ColumnElementInfo[];
|
|
8
|
+
containerRect: DOMRect | null;
|
|
9
|
+
scrollBodies: CardDragScrollBody[];
|
|
10
|
+
}
|
|
11
|
+
interface CardDragGeometryCacheOptions {
|
|
12
|
+
getContainer: () => HTMLElement | undefined;
|
|
13
|
+
hasSwimlanes: () => boolean;
|
|
14
|
+
}
|
|
15
|
+
export declare function createCardDragGeometryCache(options: CardDragGeometryCacheOptions): {
|
|
16
|
+
getSnapshot: () => CardDragGeometrySnapshot;
|
|
17
|
+
refresh: () => CardDragGeometrySnapshot;
|
|
18
|
+
markDirty: () => void;
|
|
19
|
+
clear: () => void;
|
|
20
|
+
};
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type ColumnElementInfo } from '@primeui/taskboard-core';
|
|
2
|
+
interface CardDragScrollBody {
|
|
3
|
+
element: HTMLElement;
|
|
4
|
+
rect: DOMRect;
|
|
5
|
+
}
|
|
6
|
+
export interface CardDragGeometrySnapshot {
|
|
7
|
+
columns: ColumnElementInfo[];
|
|
8
|
+
containerRect: DOMRect | null;
|
|
9
|
+
scrollBodies: CardDragScrollBody[];
|
|
10
|
+
}
|
|
11
|
+
interface CardDragGeometryCacheOptions {
|
|
12
|
+
getContainer: () => HTMLElement | undefined;
|
|
13
|
+
hasSwimlanes: () => boolean;
|
|
14
|
+
}
|
|
15
|
+
export declare function createCardDragGeometryCache(options: CardDragGeometryCacheOptions): {
|
|
16
|
+
getSnapshot: () => CardDragGeometrySnapshot;
|
|
17
|
+
refresh: () => CardDragGeometrySnapshot;
|
|
18
|
+
markDirty: () => void;
|
|
19
|
+
clear: () => void;
|
|
20
|
+
};
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Ref, ComputedRef } from 'vue';
|
|
2
|
+
import type { TaskBoardColumn } from '@primeui/taskboard-types';
|
|
3
|
+
export interface ColumnDragConfig {
|
|
4
|
+
getDisabled: () => boolean;
|
|
5
|
+
getColumnCollapsible: () => boolean;
|
|
6
|
+
columnsContainerRef: Ref<HTMLElement | undefined>;
|
|
7
|
+
isColumnDragging: Ref<boolean>;
|
|
8
|
+
draggedColumnId: Ref<string | number | null>;
|
|
9
|
+
columnDragStartX: Ref<number>;
|
|
10
|
+
columnDragOffsets: Ref<Map<string | number, number>>;
|
|
11
|
+
processedColumns: ComputedRef<TaskBoardColumn[]>;
|
|
12
|
+
canReorderColumns: ComputedRef<boolean>;
|
|
13
|
+
isColumnCollapsed: (columnId: string | number) => boolean;
|
|
14
|
+
onColumnToggle: (column: TaskBoardColumn) => void;
|
|
15
|
+
emit: (event: string, payload: unknown) => void;
|
|
16
|
+
}
|
|
17
|
+
export declare function useColumnDrag(config: ColumnDragConfig): {
|
|
18
|
+
onColumnHeaderPointerDown: (column: TaskBoardColumn, event: PointerEvent) => void;
|
|
19
|
+
onColumnHeaderClick: () => void;
|
|
20
|
+
onColumnDragMove: (event: PointerEvent) => void;
|
|
21
|
+
onColumnDragEnd: () => void;
|
|
22
|
+
getColumnStyle: (column: TaskBoardColumn) => Record<string, string> | undefined;
|
|
23
|
+
cleanupColumnDrag: () => void;
|
|
24
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Ref, ComputedRef } from 'vue';
|
|
2
|
+
import type { TaskBoardColumn } from '@primeui/taskboard-types';
|
|
3
|
+
export interface ColumnDragConfig {
|
|
4
|
+
getDisabled: () => boolean;
|
|
5
|
+
getColumnCollapsible: () => boolean;
|
|
6
|
+
columnsContainerRef: Ref<HTMLElement | undefined>;
|
|
7
|
+
isColumnDragging: Ref<boolean>;
|
|
8
|
+
draggedColumnId: Ref<string | number | null>;
|
|
9
|
+
columnDragStartX: Ref<number>;
|
|
10
|
+
columnDragOffsets: Ref<Map<string | number, number>>;
|
|
11
|
+
processedColumns: ComputedRef<TaskBoardColumn[]>;
|
|
12
|
+
canReorderColumns: ComputedRef<boolean>;
|
|
13
|
+
isColumnCollapsed: (columnId: string | number) => boolean;
|
|
14
|
+
onColumnToggle: (column: TaskBoardColumn) => void;
|
|
15
|
+
emit: (event: string, payload: unknown) => void;
|
|
16
|
+
}
|
|
17
|
+
export declare function useColumnDrag(config: ColumnDragConfig): {
|
|
18
|
+
onColumnHeaderPointerDown: (column: TaskBoardColumn, event: PointerEvent) => void;
|
|
19
|
+
onColumnHeaderClick: () => void;
|
|
20
|
+
onColumnDragMove: (event: PointerEvent) => void;
|
|
21
|
+
onColumnDragEnd: () => void;
|
|
22
|
+
getColumnStyle: (column: TaskBoardColumn) => Record<string, string> | undefined;
|
|
23
|
+
cleanupColumnDrag: () => void;
|
|
24
|
+
};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { Ref, ComputedRef } from 'vue';
|
|
2
|
+
import { type DragController, type SelectionController, type WorkflowController, type KeyboardController, type HistoryController, type AuditController } from '@primeui/taskboard-core';
|
|
3
|
+
import type { TaskBoardColumn, TaskBoardInstance, TaskBoardSelectionMode, TaskBoardSwimlane, TaskBoardItem } from '@primeui/taskboard-types';
|
|
4
|
+
export interface CardMovePayload {
|
|
5
|
+
card: TaskBoardItem;
|
|
6
|
+
oldColumnId: string | number;
|
|
7
|
+
newColumnId: string | number;
|
|
8
|
+
oldIndex: number;
|
|
9
|
+
newIndex: number;
|
|
10
|
+
oldSwimlaneId?: string | number;
|
|
11
|
+
newSwimlaneId?: string | number;
|
|
12
|
+
}
|
|
13
|
+
export interface ControllerInitConfig {
|
|
14
|
+
rootRef: Ref<HTMLElement | undefined>;
|
|
15
|
+
columnsContainerRef: Ref<HTMLElement | undefined>;
|
|
16
|
+
selectedCardIds: Ref<(string | number)[]>;
|
|
17
|
+
collapsedColumnIds: Ref<(string | number)[]>;
|
|
18
|
+
collapsedSwimlaneIds: Ref<(string | number)[]>;
|
|
19
|
+
focusedCardId: Ref<string | number | null>;
|
|
20
|
+
focusedColumnId: Ref<string | number | null>;
|
|
21
|
+
focusedSwimlaneId: Ref<string | number | null>;
|
|
22
|
+
selectionOrigin: Ref<'pointer' | 'keyboard' | null>;
|
|
23
|
+
pendingConfirmMove: Ref<{
|
|
24
|
+
payload: CardMovePayload;
|
|
25
|
+
task: TaskBoardItem;
|
|
26
|
+
message: string;
|
|
27
|
+
} | null>;
|
|
28
|
+
tasks: ComputedRef<TaskBoardItem[]>;
|
|
29
|
+
allColumns: ComputedRef<TaskBoardColumn[]>;
|
|
30
|
+
visibleColumns: ComputedRef<TaskBoardColumn[]>;
|
|
31
|
+
processedSwimlanes: ComputedRef<TaskBoardSwimlane[]>;
|
|
32
|
+
getCoreProps: () => Record<string, unknown>;
|
|
33
|
+
getColumnTasks: (columnId: string | number) => TaskBoardItem[];
|
|
34
|
+
getVisibleCellTasks: (columnId: string | number, swimlaneId: string | number) => TaskBoardItem[];
|
|
35
|
+
getItemId: (item: TaskBoardItem) => string | number;
|
|
36
|
+
getItemColumnValue: (item: TaskBoardItem) => string | number;
|
|
37
|
+
getItemSwimlaneValue: (item: TaskBoardItem) => string | number | undefined;
|
|
38
|
+
canMoveIntoColumn: (columnId: string | number) => boolean;
|
|
39
|
+
canMoveOutOfColumn: (columnId: string | number) => boolean;
|
|
40
|
+
canKeyboardMove: () => boolean;
|
|
41
|
+
applyCardMoveHandler: (p: CardMovePayload) => void;
|
|
42
|
+
announce: (message: string) => void;
|
|
43
|
+
scrollToColumnImpl: (id: string | number) => void;
|
|
44
|
+
scrollToCardImpl: (id: string | number) => void;
|
|
45
|
+
emit: (event: string, ...args: unknown[]) => void;
|
|
46
|
+
getDisabled: () => boolean;
|
|
47
|
+
getReadonly: () => boolean;
|
|
48
|
+
getSelectionMode: () => TaskBoardSelectionMode;
|
|
49
|
+
dragMinDistance?: number;
|
|
50
|
+
}
|
|
51
|
+
export declare function useControllerInit(config: ControllerInitConfig): {
|
|
52
|
+
initializeCore: () => void;
|
|
53
|
+
cleanupControllers: () => void;
|
|
54
|
+
recordAudit: (action: string, taskId: string | number, description: string, before?: unknown, after?: unknown) => void;
|
|
55
|
+
canUndoState: Ref<boolean, boolean>;
|
|
56
|
+
canRedoState: Ref<boolean, boolean>;
|
|
57
|
+
getCoreInstance: () => TaskBoardInstance | null;
|
|
58
|
+
getDragController: () => DragController | null;
|
|
59
|
+
getSelectionController: () => SelectionController | null;
|
|
60
|
+
getWorkflowController: () => WorkflowController | null;
|
|
61
|
+
getKeyboardController: () => KeyboardController | null;
|
|
62
|
+
getHistoryController: () => HistoryController | null;
|
|
63
|
+
getAuditController: () => AuditController | null;
|
|
64
|
+
};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { Ref, ComputedRef } from 'vue';
|
|
2
|
+
import { type DragController, type SelectionController, type WorkflowController, type KeyboardController, type HistoryController, type AuditController } from '@primeui/taskboard-core';
|
|
3
|
+
import type { TaskBoardColumn, TaskBoardInstance, TaskBoardSelectionMode, TaskBoardSwimlane, TaskBoardItem } from '@primeui/taskboard-types';
|
|
4
|
+
export interface CardMovePayload {
|
|
5
|
+
card: TaskBoardItem;
|
|
6
|
+
oldColumnId: string | number;
|
|
7
|
+
newColumnId: string | number;
|
|
8
|
+
oldIndex: number;
|
|
9
|
+
newIndex: number;
|
|
10
|
+
oldSwimlaneId?: string | number;
|
|
11
|
+
newSwimlaneId?: string | number;
|
|
12
|
+
}
|
|
13
|
+
export interface ControllerInitConfig {
|
|
14
|
+
rootRef: Ref<HTMLElement | undefined>;
|
|
15
|
+
columnsContainerRef: Ref<HTMLElement | undefined>;
|
|
16
|
+
selectedCardIds: Ref<(string | number)[]>;
|
|
17
|
+
collapsedColumnIds: Ref<(string | number)[]>;
|
|
18
|
+
collapsedSwimlaneIds: Ref<(string | number)[]>;
|
|
19
|
+
focusedCardId: Ref<string | number | null>;
|
|
20
|
+
focusedColumnId: Ref<string | number | null>;
|
|
21
|
+
focusedSwimlaneId: Ref<string | number | null>;
|
|
22
|
+
selectionOrigin: Ref<'pointer' | 'keyboard' | null>;
|
|
23
|
+
pendingConfirmMove: Ref<{
|
|
24
|
+
payload: CardMovePayload;
|
|
25
|
+
task: TaskBoardItem;
|
|
26
|
+
message: string;
|
|
27
|
+
} | null>;
|
|
28
|
+
tasks: ComputedRef<TaskBoardItem[]>;
|
|
29
|
+
allColumns: ComputedRef<TaskBoardColumn[]>;
|
|
30
|
+
visibleColumns: ComputedRef<TaskBoardColumn[]>;
|
|
31
|
+
processedSwimlanes: ComputedRef<TaskBoardSwimlane[]>;
|
|
32
|
+
getCoreProps: () => Record<string, unknown>;
|
|
33
|
+
getColumnTasks: (columnId: string | number) => TaskBoardItem[];
|
|
34
|
+
getVisibleCellTasks: (columnId: string | number, swimlaneId: string | number) => TaskBoardItem[];
|
|
35
|
+
getItemId: (item: TaskBoardItem) => string | number;
|
|
36
|
+
getItemColumnValue: (item: TaskBoardItem) => string | number;
|
|
37
|
+
getItemSwimlaneValue: (item: TaskBoardItem) => string | number | undefined;
|
|
38
|
+
canMoveIntoColumn: (columnId: string | number) => boolean;
|
|
39
|
+
canMoveOutOfColumn: (columnId: string | number) => boolean;
|
|
40
|
+
canKeyboardMove: () => boolean;
|
|
41
|
+
applyCardMoveHandler: (p: CardMovePayload) => void;
|
|
42
|
+
announce: (message: string) => void;
|
|
43
|
+
scrollToColumnImpl: (id: string | number) => void;
|
|
44
|
+
scrollToCardImpl: (id: string | number) => void;
|
|
45
|
+
emit: (event: string, ...args: unknown[]) => void;
|
|
46
|
+
getDisabled: () => boolean;
|
|
47
|
+
getReadonly: () => boolean;
|
|
48
|
+
getSelectionMode: () => TaskBoardSelectionMode;
|
|
49
|
+
dragMinDistance?: number;
|
|
50
|
+
}
|
|
51
|
+
export declare function useControllerInit(config: ControllerInitConfig): {
|
|
52
|
+
initializeCore: () => void;
|
|
53
|
+
cleanupControllers: () => void;
|
|
54
|
+
recordAudit: (action: string, taskId: string | number, description: string, before?: unknown, after?: unknown) => void;
|
|
55
|
+
canUndoState: Ref<boolean, boolean>;
|
|
56
|
+
canRedoState: Ref<boolean, boolean>;
|
|
57
|
+
getCoreInstance: () => TaskBoardInstance | null;
|
|
58
|
+
getDragController: () => DragController | null;
|
|
59
|
+
getSelectionController: () => SelectionController | null;
|
|
60
|
+
getWorkflowController: () => WorkflowController | null;
|
|
61
|
+
getKeyboardController: () => KeyboardController | null;
|
|
62
|
+
getHistoryController: () => HistoryController | null;
|
|
63
|
+
getAuditController: () => AuditController | null;
|
|
64
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Ref } from 'vue';
|
|
2
|
+
import type { HistoryController, MutationFieldConfig } from '@primeui/taskboard-core';
|
|
3
|
+
import type { TaskBoardItem } from '@primeui/taskboard-types';
|
|
4
|
+
export interface HistoryConfig {
|
|
5
|
+
tasks: Ref<TaskBoardItem[]>;
|
|
6
|
+
tasksWritable: Ref<TaskBoardItem[]>;
|
|
7
|
+
syncCoreProps: () => void;
|
|
8
|
+
announce: (message: string) => void;
|
|
9
|
+
getHistoryController: () => HistoryController | null;
|
|
10
|
+
getMutationFields: () => MutationFieldConfig;
|
|
11
|
+
}
|
|
12
|
+
export declare function useHistory(config: HistoryConfig): {
|
|
13
|
+
performUndo: () => void;
|
|
14
|
+
performRedo: () => void;
|
|
15
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Ref } from 'vue';
|
|
2
|
+
import type { HistoryController, MutationFieldConfig } from '@primeui/taskboard-core';
|
|
3
|
+
import type { TaskBoardItem } from '@primeui/taskboard-types';
|
|
4
|
+
export interface HistoryConfig {
|
|
5
|
+
tasks: Ref<TaskBoardItem[]>;
|
|
6
|
+
tasksWritable: Ref<TaskBoardItem[]>;
|
|
7
|
+
syncCoreProps: () => void;
|
|
8
|
+
announce: (message: string) => void;
|
|
9
|
+
getHistoryController: () => HistoryController | null;
|
|
10
|
+
getMutationFields: () => MutationFieldConfig;
|
|
11
|
+
}
|
|
12
|
+
export declare function useHistory(config: HistoryConfig): {
|
|
13
|
+
performUndo: () => void;
|
|
14
|
+
performRedo: () => void;
|
|
15
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { Ref, ComputedRef } from 'vue';
|
|
2
|
+
import type { DragController, KeyboardController, SelectionController } from '@primeui/taskboard-core';
|
|
3
|
+
import type { TaskBoardColumn, TaskBoardItem } from '@primeui/taskboard-types';
|
|
4
|
+
export interface KeyboardHandlingConfig {
|
|
5
|
+
isDragging: Ref<boolean>;
|
|
6
|
+
draggedCardId: Ref<string | number | null>;
|
|
7
|
+
dragTargetColumnId: Ref<string | number | null>;
|
|
8
|
+
dragTargetIndex: Ref<number | null>;
|
|
9
|
+
dragTargetSwimlaneId: Ref<string | number | null>;
|
|
10
|
+
ghostPosition: Ref<{
|
|
11
|
+
x: number;
|
|
12
|
+
y: number;
|
|
13
|
+
} | null>;
|
|
14
|
+
draggedCardData: Ref<TaskBoardItem | null>;
|
|
15
|
+
selectedCardIds: Ref<(string | number)[]>;
|
|
16
|
+
selectionOrigin: Ref<'pointer' | 'keyboard' | null>;
|
|
17
|
+
focusedCardId: Ref<string | number | null>;
|
|
18
|
+
focusedColumnId: Ref<string | number | null>;
|
|
19
|
+
focusedSwimlaneId: Ref<string | number | null>;
|
|
20
|
+
rootRef: Ref<HTMLElement | undefined>;
|
|
21
|
+
allColumns: ComputedRef<TaskBoardColumn[]>;
|
|
22
|
+
getDragController: () => DragController | null;
|
|
23
|
+
getSelectionController: () => SelectionController | null;
|
|
24
|
+
getKeyboardController: () => KeyboardController | null;
|
|
25
|
+
onDocumentPointerMove: (e: PointerEvent) => void;
|
|
26
|
+
onDocumentPointerUp: (e: PointerEvent) => void;
|
|
27
|
+
performUndo: () => void;
|
|
28
|
+
performRedo: () => void;
|
|
29
|
+
emit: (event: string, ...args: unknown[]) => void;
|
|
30
|
+
}
|
|
31
|
+
export declare function isTaskBoardInteractiveKeyTarget(target: EventTarget | null): boolean;
|
|
32
|
+
export declare function useKeyboardHandling(config: KeyboardHandlingConfig): {
|
|
33
|
+
onKeyDown: (event: KeyboardEvent) => void;
|
|
34
|
+
onDocumentClick: (event: MouseEvent) => void;
|
|
35
|
+
activateKeyboardScope: () => void;
|
|
36
|
+
deactivateKeyboardScope: () => void;
|
|
37
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { Ref, ComputedRef } from 'vue';
|
|
2
|
+
import type { DragController, KeyboardController, SelectionController } from '@primeui/taskboard-core';
|
|
3
|
+
import type { TaskBoardColumn, TaskBoardItem } from '@primeui/taskboard-types';
|
|
4
|
+
export interface KeyboardHandlingConfig {
|
|
5
|
+
isDragging: Ref<boolean>;
|
|
6
|
+
draggedCardId: Ref<string | number | null>;
|
|
7
|
+
dragTargetColumnId: Ref<string | number | null>;
|
|
8
|
+
dragTargetIndex: Ref<number | null>;
|
|
9
|
+
dragTargetSwimlaneId: Ref<string | number | null>;
|
|
10
|
+
ghostPosition: Ref<{
|
|
11
|
+
x: number;
|
|
12
|
+
y: number;
|
|
13
|
+
} | null>;
|
|
14
|
+
draggedCardData: Ref<TaskBoardItem | null>;
|
|
15
|
+
selectedCardIds: Ref<(string | number)[]>;
|
|
16
|
+
selectionOrigin: Ref<'pointer' | 'keyboard' | null>;
|
|
17
|
+
focusedCardId: Ref<string | number | null>;
|
|
18
|
+
focusedColumnId: Ref<string | number | null>;
|
|
19
|
+
focusedSwimlaneId: Ref<string | number | null>;
|
|
20
|
+
rootRef: Ref<HTMLElement | undefined>;
|
|
21
|
+
allColumns: ComputedRef<TaskBoardColumn[]>;
|
|
22
|
+
getDragController: () => DragController | null;
|
|
23
|
+
getSelectionController: () => SelectionController | null;
|
|
24
|
+
getKeyboardController: () => KeyboardController | null;
|
|
25
|
+
onDocumentPointerMove: (e: PointerEvent) => void;
|
|
26
|
+
onDocumentPointerUp: (e: PointerEvent) => void;
|
|
27
|
+
performUndo: () => void;
|
|
28
|
+
performRedo: () => void;
|
|
29
|
+
emit: (event: string, ...args: unknown[]) => void;
|
|
30
|
+
}
|
|
31
|
+
export declare function isTaskBoardInteractiveKeyTarget(target: EventTarget | null): boolean;
|
|
32
|
+
export declare function useKeyboardHandling(config: KeyboardHandlingConfig): {
|
|
33
|
+
onKeyDown: (event: KeyboardEvent) => void;
|
|
34
|
+
onDocumentClick: (event: MouseEvent) => void;
|
|
35
|
+
activateKeyboardScope: () => void;
|
|
36
|
+
deactivateKeyboardScope: () => void;
|
|
37
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare function useTaskBoardAccess(): {
|
|
2
|
+
canDrag: import("vue").ComputedRef<boolean>;
|
|
3
|
+
canEdit: import("vue").ComputedRef<boolean>;
|
|
4
|
+
canCreate: import("vue").ComputedRef<boolean>;
|
|
5
|
+
canDelete: import("vue").ComputedRef<boolean>;
|
|
6
|
+
canMoveInto: (columnId: string | number) => boolean;
|
|
7
|
+
canMoveOut: (columnId: string | number) => boolean;
|
|
8
|
+
canView: (columnId: string | number) => boolean;
|
|
9
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare function useTaskBoardAccess(): {
|
|
2
|
+
canDrag: import("vue").ComputedRef<boolean>;
|
|
3
|
+
canEdit: import("vue").ComputedRef<boolean>;
|
|
4
|
+
canCreate: import("vue").ComputedRef<boolean>;
|
|
5
|
+
canDelete: import("vue").ComputedRef<boolean>;
|
|
6
|
+
canMoveInto: (columnId: string | number) => boolean;
|
|
7
|
+
canMoveOut: (columnId: string | number) => boolean;
|
|
8
|
+
canView: (columnId: string | number) => boolean;
|
|
9
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare function useTaskBoardDrag(): {
|
|
2
|
+
isDragging: import("vue").Ref<boolean, boolean>;
|
|
3
|
+
draggedItem: import("vue").Ref<import("packages/components/taskboard/taskboard-types/src").TaskBoardItem | null, import("packages/components/taskboard/taskboard-types/src").TaskBoardItem | null>;
|
|
4
|
+
targetColumn: import("vue").Ref<string | number | null, string | number | null>;
|
|
5
|
+
targetIndex: import("vue").Ref<number | null, number | null>;
|
|
6
|
+
ghostPosition: import("vue").Ref<{
|
|
7
|
+
x: number;
|
|
8
|
+
y: number;
|
|
9
|
+
} | null, {
|
|
10
|
+
x: number;
|
|
11
|
+
y: number;
|
|
12
|
+
} | null>;
|
|
13
|
+
hiddenIds: () => (string | number)[];
|
|
14
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare function useTaskBoardDrag(): {
|
|
2
|
+
isDragging: import("vue").Ref<boolean, boolean>;
|
|
3
|
+
draggedItem: import("vue").Ref<import("packages/components/taskboard/taskboard-types/src").TaskBoardItem | null, import("packages/components/taskboard/taskboard-types/src").TaskBoardItem | null>;
|
|
4
|
+
targetColumn: import("vue").Ref<string | number | null, string | number | null>;
|
|
5
|
+
targetIndex: import("vue").Ref<number | null, number | null>;
|
|
6
|
+
ghostPosition: import("vue").Ref<{
|
|
7
|
+
x: number;
|
|
8
|
+
y: number;
|
|
9
|
+
} | null, {
|
|
10
|
+
x: number;
|
|
11
|
+
y: number;
|
|
12
|
+
} | null>;
|
|
13
|
+
hiddenIds: () => (string | number)[];
|
|
14
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare function useTaskBoardSelection(): {
|
|
2
|
+
selectedIds: import("vue").Ref<(string | number)[], (string | number)[]>;
|
|
3
|
+
select: (cardId: string | number, options?: {
|
|
4
|
+
ctrlKey?: boolean;
|
|
5
|
+
shiftKey?: boolean;
|
|
6
|
+
metaKey?: boolean;
|
|
7
|
+
}) => void;
|
|
8
|
+
selectAll: (items: import("packages/components/taskboard/taskboard-types/src").TaskBoardItem[]) => void;
|
|
9
|
+
clear: () => void;
|
|
10
|
+
isSelected: (id: string | number) => boolean;
|
|
11
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare function useTaskBoardSelection(): {
|
|
2
|
+
selectedIds: import("vue").Ref<(string | number)[], (string | number)[]>;
|
|
3
|
+
select: (cardId: string | number, options?: {
|
|
4
|
+
ctrlKey?: boolean;
|
|
5
|
+
shiftKey?: boolean;
|
|
6
|
+
metaKey?: boolean;
|
|
7
|
+
}) => void;
|
|
8
|
+
selectAll: (items: import("packages/components/taskboard/taskboard-types/src").TaskBoardItem[]) => void;
|
|
9
|
+
clear: () => void;
|
|
10
|
+
isSelected: (id: string | number) => boolean;
|
|
11
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare function useTaskBoardWorkflow(): {
|
|
2
|
+
getWipStatus: (columnId: string | number) => "normal" | "warning" | "exceeded" | undefined;
|
|
3
|
+
canMoveCard: (item: import("packages/components/taskboard/taskboard-types/src").TaskBoardItem, fromColumnId: string | number, toColumnId: string | number) => {
|
|
4
|
+
allowed: boolean;
|
|
5
|
+
reason?: string;
|
|
6
|
+
message?: string;
|
|
7
|
+
};
|
|
8
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare function useTaskBoardWorkflow(): {
|
|
2
|
+
getWipStatus: (columnId: string | number) => "normal" | "warning" | "exceeded" | undefined;
|
|
3
|
+
canMoveCard: (item: import("packages/components/taskboard/taskboard-types/src").TaskBoardItem, fromColumnId: string | number, toColumnId: string | number) => {
|
|
4
|
+
allowed: boolean;
|
|
5
|
+
reason?: string;
|
|
6
|
+
message?: string;
|
|
7
|
+
};
|
|
8
|
+
};
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export * as TaskBoard from './TaskBoard.parts';
|
|
2
|
+
export type * from '@primeui/taskboard-types';
|
|
3
|
+
export { default as TaskBoardRoot } from './TaskBoard.vue';
|
|
4
|
+
export { default as TaskBoardHeader } from './TaskBoardHeader.vue';
|
|
5
|
+
export { default as TaskBoardContent } from './TaskBoardContent.vue';
|
|
6
|
+
export { default as TaskBoardColumn } from './components/column/TaskBoardColumn.vue';
|
|
7
|
+
export { default as TaskBoardColumnHeader } from './components/column/TaskBoardColumnHeader.vue';
|
|
8
|
+
export { default as TaskBoardColumnContent } from './components/column/TaskBoardColumnContent.vue';
|
|
9
|
+
export { default as TaskBoardColumnFooter } from './components/column/TaskBoardColumnFooter.vue';
|
|
10
|
+
export { default as TaskBoardColumnEmpty } from './components/column/TaskBoardColumnEmpty.vue';
|
|
11
|
+
export { default as TaskBoardColumnAdd } from './components/column/TaskBoardColumnAdd.vue';
|
|
12
|
+
export { default as TaskBoardCard } from './components/card/TaskBoardCard.vue';
|
|
13
|
+
export { default as TaskBoardCardHeader } from './components/card/TaskBoardCardHeader.vue';
|
|
14
|
+
export { default as TaskBoardCardContent } from './components/card/TaskBoardCardContent.vue';
|
|
15
|
+
export { default as TaskBoardCardFooter } from './components/card/TaskBoardCardFooter.vue';
|
|
16
|
+
export { default as TaskBoardCardAdd } from './components/card/TaskBoardCardAdd.vue';
|
|
17
|
+
export { default as TaskBoardDragPreview } from './components/overlay/TaskBoardDragPreview.vue';
|
|
18
|
+
export { default as TaskBoardDragConfirm } from './components/overlay/TaskBoardDragConfirm.vue';
|
|
19
|
+
export { default as TaskBoardDropIndicator } from './components/overlay/TaskBoardDropIndicator';
|
|
20
|
+
export { default as TaskBoardLoading } from './TaskBoardLoading.vue';
|
|
21
|
+
export { default as TaskBoardSwimlaneHeader } from './components/swimlane/TaskBoardSwimlaneHeader.vue';
|
|
22
|
+
export { default as TaskBoardSwimlaneColumnHeader } from './components/swimlane/TaskBoardSwimlaneColumnHeader.vue';
|
|
23
|
+
export { TASKBOARD_KEY, COLUMN_KEY, CARD_KEY, SWIMLANE_KEY, useTaskBoardContext, useTaskBoardColumnContext, useTaskBoardCardContext, useTaskBoardSwimlaneHeaderContext } from './TaskBoard.context';
|
|
24
|
+
export type { TaskBoardContext, ColumnContext, CardContext, SwimlaneContext } from './TaskBoard.context';
|
|
25
|
+
export { useTaskBoardSelection } from './composables/useTaskBoardSelection';
|
|
26
|
+
export { useTaskBoardHistory } from './composables/useTaskBoardHistory';
|
|
27
|
+
export { useTaskBoardAccess } from './composables/useTaskBoardAccess';
|
|
28
|
+
export { useTaskBoardWorkflow } from './composables/useTaskBoardWorkflow';
|
|
29
|
+
export { useTaskBoardDrag } from './composables/useTaskBoardDrag';
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export * as TaskBoard from './TaskBoard.parts';
|
|
2
|
+
export type * from '@primeui/taskboard-types';
|
|
3
|
+
export { default as TaskBoardRoot } from './TaskBoard.vue';
|
|
4
|
+
export { default as TaskBoardHeader } from './TaskBoardHeader.vue';
|
|
5
|
+
export { default as TaskBoardContent } from './TaskBoardContent.vue';
|
|
6
|
+
export { default as TaskBoardColumn } from './components/column/TaskBoardColumn.vue';
|
|
7
|
+
export { default as TaskBoardColumnHeader } from './components/column/TaskBoardColumnHeader.vue';
|
|
8
|
+
export { default as TaskBoardColumnContent } from './components/column/TaskBoardColumnContent.vue';
|
|
9
|
+
export { default as TaskBoardColumnFooter } from './components/column/TaskBoardColumnFooter.vue';
|
|
10
|
+
export { default as TaskBoardColumnEmpty } from './components/column/TaskBoardColumnEmpty.vue';
|
|
11
|
+
export { default as TaskBoardColumnAdd } from './components/column/TaskBoardColumnAdd.vue';
|
|
12
|
+
export { default as TaskBoardCard } from './components/card/TaskBoardCard.vue';
|
|
13
|
+
export { default as TaskBoardCardHeader } from './components/card/TaskBoardCardHeader.vue';
|
|
14
|
+
export { default as TaskBoardCardContent } from './components/card/TaskBoardCardContent.vue';
|
|
15
|
+
export { default as TaskBoardCardFooter } from './components/card/TaskBoardCardFooter.vue';
|
|
16
|
+
export { default as TaskBoardCardAdd } from './components/card/TaskBoardCardAdd.vue';
|
|
17
|
+
export { default as TaskBoardDragPreview } from './components/overlay/TaskBoardDragPreview.vue';
|
|
18
|
+
export { default as TaskBoardDragConfirm } from './components/overlay/TaskBoardDragConfirm.vue';
|
|
19
|
+
export { default as TaskBoardDropIndicator } from './components/overlay/TaskBoardDropIndicator';
|
|
20
|
+
export { default as TaskBoardLoading } from './TaskBoardLoading.vue';
|
|
21
|
+
export { default as TaskBoardSwimlaneHeader } from './components/swimlane/TaskBoardSwimlaneHeader.vue';
|
|
22
|
+
export { default as TaskBoardSwimlaneColumnHeader } from './components/swimlane/TaskBoardSwimlaneColumnHeader.vue';
|
|
23
|
+
export { TASKBOARD_KEY, COLUMN_KEY, CARD_KEY, SWIMLANE_KEY, useTaskBoardContext, useTaskBoardColumnContext, useTaskBoardCardContext, useTaskBoardSwimlaneHeaderContext } from './TaskBoard.context';
|
|
24
|
+
export type { TaskBoardContext, ColumnContext, CardContext, SwimlaneContext } from './TaskBoard.context';
|
|
25
|
+
export { useTaskBoardSelection } from './composables/useTaskBoardSelection';
|
|
26
|
+
export { useTaskBoardHistory } from './composables/useTaskBoardHistory';
|
|
27
|
+
export { useTaskBoardAccess } from './composables/useTaskBoardAccess';
|
|
28
|
+
export { useTaskBoardWorkflow } from './composables/useTaskBoardWorkflow';
|
|
29
|
+
export { useTaskBoardDrag } from './composables/useTaskBoardDrag';
|