@primeui/vue-taskboard 0.0.1-alpha.1 → 1.0.0-beta.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.
Files changed (126) hide show
  1. package/dist/TaskBoard.context.d.ts +21 -21
  2. package/dist/TaskBoard.parts.d.ts +20 -20
  3. package/dist/TaskBoard.vue.d.ts +37 -37
  4. package/dist/TaskBoardContent.vue.d.ts +2 -2
  5. package/dist/chunks/TaskBoard.context-BCq7uauT.mjs +29 -0
  6. package/dist/chunks/TaskBoard.vue_vue_type_script_setup_true_lang-Djmr6yoF.mjs +841 -0
  7. package/dist/chunks/TaskBoardCard.vue_vue_type_script_setup_true_lang-B1Ix7Gjf.mjs +34 -0
  8. package/dist/chunks/TaskBoardCardAdd.vue_vue_type_script_setup_true_lang-Dy4BuCa9.mjs +14 -0
  9. package/dist/chunks/TaskBoardCardContent.vue_vue_type_script_setup_true_lang-DNEmpvcn.mjs +19 -0
  10. package/dist/chunks/TaskBoardCardFooter.vue_vue_type_script_setup_true_lang-8FWnuxSl.mjs +19 -0
  11. package/dist/chunks/TaskBoardCardHeader.vue_vue_type_script_setup_true_lang-Dr-XJfaE.mjs +19 -0
  12. package/dist/chunks/TaskBoardColumn.vue_vue_type_script_setup_true_lang-D_AJ5j7c.mjs +42 -0
  13. package/dist/chunks/TaskBoardColumnAdd-C_JSN3pp.mjs +10 -0
  14. package/dist/chunks/TaskBoardColumnContent.vue_vue_type_script_setup_true_lang-DNRiWBN_.mjs +180 -0
  15. package/dist/chunks/TaskBoardColumnEmpty.vue_vue_type_script_setup_true_lang-D23AtNeX.mjs +18 -0
  16. package/dist/chunks/TaskBoardColumnFooter.vue_vue_type_script_setup_true_lang-BpKRnC6u.mjs +19 -0
  17. package/dist/chunks/TaskBoardColumnHeader.vue_vue_type_script_setup_true_lang-DMc9zcWV.mjs +51 -0
  18. package/dist/chunks/TaskBoardContent.vue_vue_type_script_setup_true_lang-lDUg6UrJ.mjs +292 -0
  19. package/dist/chunks/TaskBoardDragConfirm.vue_vue_type_script_setup_true_lang-B4OdxK5L.mjs +20 -0
  20. package/dist/chunks/TaskBoardDragPreview.vue_vue_type_script_setup_true_lang-B7F-FPY1.mjs +40 -0
  21. package/dist/chunks/TaskBoardDropIndicator-BUMSBiQC.mjs +14 -0
  22. package/dist/chunks/TaskBoardHeader.vue_vue_type_script_setup_true_lang-CwtaadkE.mjs +21 -0
  23. package/dist/chunks/TaskBoardLoading-CrgtYPP-.mjs +10 -0
  24. package/dist/chunks/TaskBoardSwimlaneColumnHeader.vue_vue_type_script_setup_true_lang-BVpen7mj.mjs +23 -0
  25. package/dist/chunks/TaskBoardSwimlaneHeader.vue_vue_type_script_setup_true_lang-D6NdS4hP.mjs +32 -0
  26. package/dist/chunks/_plugin-vue_export-helper-CHgC5LLL.mjs +9 -0
  27. package/dist/chunks/useHistory-C-Ud-WgS.mjs +510 -0
  28. package/dist/chunks/useTaskBoardDrag-BvBISSNb.mjs +58 -0
  29. package/dist/components/card/TaskBoardCard.vue.d.ts +3 -3
  30. package/dist/components/card/TaskBoardCardContent.vue.d.ts +1 -1
  31. package/dist/components/card/TaskBoardCardFooter.vue.d.ts +1 -1
  32. package/dist/components/card/TaskBoardCardHeader.vue.d.ts +1 -1
  33. package/dist/components/column/TaskBoardColumn.vue.d.ts +2 -2
  34. package/dist/components/column/TaskBoardColumnContent.vue.d.ts +1 -1
  35. package/dist/components/column/TaskBoardColumnFooter.vue.d.ts +1 -1
  36. package/dist/components/column/TaskBoardColumnHeader.vue.d.ts +1 -1
  37. package/dist/components/overlay/TaskBoardDragConfirm.vue.d.ts +2 -2
  38. package/dist/components/swimlane/TaskBoardSwimlaneColumnHeader.vue.d.ts +3 -3
  39. package/dist/components.d.ts +20 -0
  40. package/dist/components.mjs +42 -0
  41. package/dist/composables/index.mjs +6 -5
  42. package/dist/composables/useCardDrag.d.ts +2 -2
  43. package/dist/composables/useColumnDrag.d.ts +5 -5
  44. package/dist/composables/useControllerInit.d.ts +3 -3
  45. package/dist/composables/useKeyboardHandling.d.ts +2 -2
  46. package/dist/index.d.ts +20 -20
  47. package/dist/index.mjs +77 -1650
  48. package/dist/parts/card/index.d.ts +1 -0
  49. package/dist/parts/card/index.mjs +4 -0
  50. package/dist/parts/cardadd/index.d.ts +1 -0
  51. package/dist/parts/cardadd/index.mjs +4 -0
  52. package/dist/parts/cardcontent/index.d.ts +1 -0
  53. package/dist/parts/cardcontent/index.mjs +4 -0
  54. package/dist/parts/cardfooter/index.d.ts +1 -0
  55. package/dist/parts/cardfooter/index.mjs +4 -0
  56. package/dist/parts/cardheader/index.d.ts +1 -0
  57. package/dist/parts/cardheader/index.mjs +4 -0
  58. package/dist/parts/column/index.d.ts +1 -0
  59. package/dist/parts/column/index.mjs +4 -0
  60. package/dist/parts/columnadd/index.d.ts +1 -0
  61. package/dist/parts/columnadd/index.mjs +4 -0
  62. package/dist/parts/columncontent/index.d.ts +1 -0
  63. package/dist/parts/columncontent/index.mjs +4 -0
  64. package/dist/parts/columnempty/index.d.ts +1 -0
  65. package/dist/parts/columnempty/index.mjs +4 -0
  66. package/dist/parts/columnfooter/index.d.ts +1 -0
  67. package/dist/parts/columnfooter/index.mjs +4 -0
  68. package/dist/parts/columnheader/index.d.ts +1 -0
  69. package/dist/parts/columnheader/index.mjs +4 -0
  70. package/dist/parts/content/index.d.ts +1 -0
  71. package/dist/parts/content/index.mjs +4 -0
  72. package/dist/parts/dragconfirm/index.d.ts +1 -0
  73. package/dist/parts/dragconfirm/index.mjs +4 -0
  74. package/dist/parts/dragpreview/index.d.ts +1 -0
  75. package/dist/parts/dragpreview/index.mjs +4 -0
  76. package/dist/parts/dropindicator/index.d.ts +1 -0
  77. package/dist/parts/dropindicator/index.mjs +4 -0
  78. package/dist/parts/header/index.d.ts +1 -0
  79. package/dist/parts/header/index.mjs +4 -0
  80. package/dist/parts/loading/index.d.ts +1 -0
  81. package/dist/parts/loading/index.mjs +4 -0
  82. package/dist/parts/root/index.d.ts +1 -0
  83. package/dist/parts/root/index.mjs +4 -0
  84. package/dist/parts/swimlanecolumnheader/index.d.ts +1 -0
  85. package/dist/parts/swimlanecolumnheader/index.mjs +4 -0
  86. package/dist/parts/swimlaneheader/index.d.ts +1 -0
  87. package/dist/parts/swimlaneheader/index.mjs +4 -0
  88. package/package.json +22 -12
  89. package/dist/TaskBoard.context.d.mts +0 -235
  90. package/dist/TaskBoard.parts.d.mts +0 -20
  91. package/dist/TaskBoard.vue.d.mts +0 -291
  92. package/dist/TaskBoardContent.vue.d.mts +0 -27
  93. package/dist/TaskBoardHeader.vue.d.mts +0 -18
  94. package/dist/TaskBoardLoading.vue.d.mts +0 -13
  95. package/dist/chunks/useTaskBoardDrag-ByZvmcfw.mjs +0 -590
  96. package/dist/components/card/TaskBoardCard.vue.d.mts +0 -23
  97. package/dist/components/card/TaskBoardCardAdd.vue.d.mts +0 -15
  98. package/dist/components/card/TaskBoardCardContent.vue.d.mts +0 -18
  99. package/dist/components/card/TaskBoardCardFooter.vue.d.mts +0 -18
  100. package/dist/components/card/TaskBoardCardHeader.vue.d.mts +0 -18
  101. package/dist/components/column/TaskBoardColumn.vue.d.mts +0 -19
  102. package/dist/components/column/TaskBoardColumnAdd.vue.d.mts +0 -13
  103. package/dist/components/column/TaskBoardColumnContent.vue.d.mts +0 -20
  104. package/dist/components/column/TaskBoardColumnEmpty.vue.d.mts +0 -13
  105. package/dist/components/column/TaskBoardColumnFooter.vue.d.mts +0 -16
  106. package/dist/components/column/TaskBoardColumnHeader.vue.d.mts +0 -19
  107. package/dist/components/overlay/TaskBoardDragConfirm.vue.d.mts +0 -20
  108. package/dist/components/overlay/TaskBoardDragPreview.vue.d.mts +0 -16
  109. package/dist/components/overlay/TaskBoardDropIndicator.d.mts +0 -2
  110. package/dist/components/swimlane/TaskBoardSwimlaneColumnHeader.vue.d.mts +0 -20
  111. package/dist/components/swimlane/TaskBoardSwimlaneHeader.vue.d.mts +0 -22
  112. package/dist/composables/index.d.mts +0 -9
  113. package/dist/composables/useCardDrag.d.mts +0 -47
  114. package/dist/composables/useCardDragGeometry.d.mts +0 -21
  115. package/dist/composables/useColumnDrag.d.mts +0 -24
  116. package/dist/composables/useControllerInit.d.mts +0 -64
  117. package/dist/composables/useHistory.d.mts +0 -15
  118. package/dist/composables/useKeyboardHandling.d.mts +0 -37
  119. package/dist/composables/useTaskBoardAccess.d.mts +0 -9
  120. package/dist/composables/useTaskBoardDrag.d.mts +0 -14
  121. package/dist/composables/useTaskBoardHistory.d.mts +0 -6
  122. package/dist/composables/useTaskBoardPrintRuntime.d.mts +0 -7
  123. package/dist/composables/useTaskBoardSelection.d.mts +0 -11
  124. package/dist/composables/useTaskBoardWorkflow.d.mts +0 -8
  125. package/dist/index.d.mts +0 -29
  126. package/dist/release-date.d.mts +0 -11
@@ -0,0 +1,510 @@
1
+ import { nextTick as $, ref as Q } from "vue";
2
+ import { classes as Z, resolveColumnStyle as _, createColumnDragController as ee, createTaskBoard as te, createDragController as le, createSelectionController as re, createWorkflowController as ne, createHistoryController as oe, createAuditController as ae, createKeyboardController as se, applyHistoryRedo as de, applyHistoryUndo as ue } from "@primeui/taskboard-core";
3
+ const ce = () => ({
4
+ columns: [],
5
+ containerRect: null,
6
+ scrollBodies: []
7
+ }), Y = (e) => {
8
+ const S = e.getAttribute("data-task-index");
9
+ if (S == null || S === "") return;
10
+ const k = Number(S);
11
+ return Number.isFinite(k) ? k : void 0;
12
+ };
13
+ function ie(e) {
14
+ let S = null, k = !0;
15
+ const I = (C) => {
16
+ if (e.hasSwimlanes()) {
17
+ const i = C.querySelectorAll("[data-column-id][data-swimlane-id]");
18
+ return Array.from(i).map((c) => ({
19
+ columnId: c.getAttribute("data-column-id"),
20
+ swimlaneId: c.getAttribute("data-swimlane-id"),
21
+ rect: c.getBoundingClientRect(),
22
+ cardRects: Array.from(c.querySelectorAll("[data-task-id]")).map((v) => ({
23
+ taskId: v.getAttribute("data-task-id"),
24
+ index: Y(v),
25
+ rect: v.getBoundingClientRect()
26
+ }))
27
+ }));
28
+ }
29
+ const g = C.querySelectorAll("[data-column-id]");
30
+ return Array.from(g).map((i) => ({
31
+ columnId: i.getAttribute("data-column-id"),
32
+ rect: i.getBoundingClientRect(),
33
+ cardRects: Array.from(i.querySelectorAll("[data-task-id]")).map((c) => ({
34
+ taskId: c.getAttribute("data-task-id"),
35
+ index: Y(c),
36
+ rect: c.getBoundingClientRect()
37
+ }))
38
+ }));
39
+ }, A = () => {
40
+ const C = e.getContainer();
41
+ return C ? {
42
+ columns: I(C),
43
+ containerRect: C.getBoundingClientRect(),
44
+ scrollBodies: Array.from(C.querySelectorAll(`.${Z.columnBody}`)).map((g) => ({
45
+ element: g,
46
+ rect: g.getBoundingClientRect()
47
+ }))
48
+ } : ce();
49
+ }, m = () => (S = A(), k = !1, S);
50
+ return {
51
+ getSnapshot: () => !S || k ? m() : S,
52
+ refresh: m,
53
+ markDirty: () => {
54
+ k = !0;
55
+ },
56
+ clear: () => {
57
+ S = null, k = !0;
58
+ }
59
+ };
60
+ }
61
+ function Ie(e) {
62
+ let m = null, y = null, C = null, g = null, i = null;
63
+ const c = ie({
64
+ getContainer: () => e.columnsContainerRef.value,
65
+ hasSwimlanes: () => e.hasSwimlanes.value
66
+ }), v = () => e.draggedCardId.value ?? e.getDragController()?.state.draggedCardId ?? null, x = (r) => {
67
+ const d = e.getDragController(), o = e.isDragging.value || !!d?.state.isDragging || r && !!d?.state.isPending, D = v();
68
+ return !o || D == null ? [] : e.selectedCardIds.value.length > 1 && e.selectedCardIds.value.some((T) => String(T) === String(D)) ? e.selectedCardIds.value : [D];
69
+ }, f = () => {
70
+ if (!C) return;
71
+ const { element: r, pointerId: d } = C;
72
+ if (C = null, !!r.hasPointerCapture?.(d))
73
+ try {
74
+ r.releasePointerCapture(d);
75
+ } catch {
76
+ }
77
+ }, P = () => x(!1), B = () => {
78
+ const r = x(!0), d = new Set(r.length > 1 ? r.map((o) => String(o)) : []);
79
+ return d.size ? c.getSnapshot().columns.map((o) => ({
80
+ ...o,
81
+ cardRects: o.cardRects.filter((D) => !d.has(String(D.taskId)))
82
+ })) : c.getSnapshot().columns;
83
+ }, M = () => {
84
+ c.markDirty();
85
+ }, O = () => c.refresh().columns, R = () => {
86
+ c.clear();
87
+ }, t = (r) => {
88
+ const d = r.currentTarget instanceof HTMLElement ? r.currentTarget : null;
89
+ return d?.hasAttribute("data-task-id") ? d : r.target instanceof HTMLElement ? r.target.closest("[data-task-id]") : null;
90
+ }, n = (r) => {
91
+ const o = t(r)?.getBoundingClientRect().width ?? 0;
92
+ e.dragPreviewWidth.value = Number.isFinite(o) && o > 0 ? o : null;
93
+ }, l = (r, d) => Math.min(d, Math.max(0, r)), s = (r, d, o) => Math.ceil(Math.min(1, Math.max(0, (d - r) / d)) * o), h = (r, d) => {
94
+ const o = e.getDragController(), D = o?.state.isPending || o?.state.isDragging ? B() : [], T = e.isDragging.value;
95
+ o?.onPointerMove({ x: r, y: d }, D), o && (o.state.isDragging && !T && (m = null, y = null, M(), $(() => M())), e.isDragging.value = o.state.isDragging, e.draggedCardId.value = o.state.draggedCardId, e.dragTargetColumnId.value = o.state.targetColumnId, e.dragTargetIndex.value = o.state.targetIndex, e.dragTargetSwimlaneId.value = o.state.targetSwimlaneId, e.ghostPosition.value = o.state.ghostPosition, o.state.isDragging && o.state.draggedCardId && (e.draggedCardData.value = (e.tasks.value ?? []).find((L) => e.getItemId(L) === o.state.draggedCardId) ?? null));
96
+ }, w = (r, d) => {
97
+ if (!e.columnsContainerRef.value) return !1;
98
+ const o = e.columnsContainerRef.value, D = c.getSnapshot(), T = D.containerRect;
99
+ if (!T) return !1;
100
+ let L = !1, V = 0;
101
+ const X = r - T.left, N = T.right - r;
102
+ X < 96 ? V = -s(X, 96, 44) : N < 96 && (V = s(N, 96, 44));
103
+ for (const { element: H, rect: F } of D.scrollBodies)
104
+ if (r >= F.left && r <= F.right) {
105
+ const K = Math.max(0, H.scrollHeight - H.clientHeight), q = l(H.scrollTop, K);
106
+ let z = q;
107
+ const j = d - F.top, J = F.bottom - d;
108
+ j < 56 ? z = l(q - s(j, 56, 14), K) : J < 56 && (z = l(q + s(J, 56, 14), K)), z !== q && (H.scrollTop = z, M(), L = !0);
109
+ }
110
+ if (V !== 0) {
111
+ const H = Math.max(0, o.scrollWidth - o.clientWidth), F = l(o.scrollLeft, H), K = l(F + V, H);
112
+ K !== F && (o.scrollLeft = K, M(), L = !0);
113
+ }
114
+ return L;
115
+ }, E = () => {
116
+ i != null && (cancelAnimationFrame(i), i = null);
117
+ }, W = () => {
118
+ i = null, !(!e.getDragController()?.state.isDragging || !g || !w(g.x, g.y)) && (h(g.x, g.y), i = requestAnimationFrame(W));
119
+ }, U = (r, d) => {
120
+ if (g = { x: r, y: d }, !w(r, d)) {
121
+ E();
122
+ return;
123
+ }
124
+ i == null && (i = requestAnimationFrame(W));
125
+ }, G = (r, d) => (g = { x: r, y: d }, w(r, d)), a = (r) => {
126
+ const d = e.getDragController();
127
+ h(r.clientX, r.clientY), d?.state.isDragging ? U(r.clientX, r.clientY) : E();
128
+ }, u = () => {
129
+ const r = e.getDragController(), d = e.getSelectionController(), o = e.isDragging.value;
130
+ if (r?.onPointerUp(), f(), E(), e.isDragging.value = !1, e.draggedCardId.value = null, e.dragTargetColumnId.value = null, e.dragTargetIndex.value = null, e.dragTargetSwimlaneId.value = null, e.ghostPosition.value = null, e.dragPreviewWidth.value = null, e.draggedCardData.value = null, g = null, R(), !o && m && y) {
131
+ const { task: D, column: T } = m, L = y;
132
+ e.emit("cardClick", { card: D, column: T, jsEvent: new MouseEvent("click") }), e.focusCard(e.getItemId(D)), e.getSelectionMode() !== "none" && e.isFeatureEnabled("cardSelection") && (e.selectionOrigin.value = "pointer", d?.selectCard(e.getItemId(D), {
133
+ ctrlKey: L.ctrlKey,
134
+ shiftKey: L.shiftKey,
135
+ metaKey: L.metaKey
136
+ }));
137
+ }
138
+ m = null, y = null, document.removeEventListener("pointermove", a), document.removeEventListener("pointerup", u);
139
+ };
140
+ return {
141
+ getDragHiddenIds: P,
142
+ getColumnElements: B,
143
+ markDragGeometryDirty: M,
144
+ refreshDragGeometry: O,
145
+ clearDragGeometry: R,
146
+ autoScroll: G,
147
+ onCardPointerDown: (r, d, o) => {
148
+ const D = e.getDragController(), T = o.target;
149
+ if (f(), T?.setPointerCapture)
150
+ try {
151
+ T.setPointerCapture(o.pointerId), C = { element: T, pointerId: o.pointerId };
152
+ } catch {
153
+ C = null;
154
+ }
155
+ m = { task: r, column: d }, y = { ctrlKey: o.ctrlKey, shiftKey: o.shiftKey, metaKey: o.metaKey }, e.canDrag.value && r.draggable !== !1 && !e.getDisabled() && !e.getReadonly() && e.canMoveOutOfColumn(e.getItemColumnValue(r)) && (R(), n(o), D?.onPointerDown(e.getItemId(r), d.id, { x: o.clientX, y: o.clientY }, o, e.getItemSwimlaneValue(r))), document.addEventListener("pointermove", a), document.addEventListener("pointerup", u);
156
+ },
157
+ onDocumentPointerMove: a,
158
+ onDocumentPointerUp: u,
159
+ cleanupCardDrag: () => {
160
+ f(), E(), R(), e.dragPreviewWidth.value = null, g = null, document.removeEventListener("pointermove", a), document.removeEventListener("pointerup", u);
161
+ }
162
+ };
163
+ }
164
+ const me = ["button", "a", "input", "select", "textarea", "summary", '[role="button"]', '[role="link"]', '[contenteditable="true"]', "[data-taskboard-column-header-interactive]"].join(",");
165
+ function Se(e) {
166
+ let I = !1, A = null, m = [], y = 0, C = null, g = 0, i = null;
167
+ const c = () => {
168
+ const a = e.processedColumns.value;
169
+ if (m.length === 0) return a;
170
+ const u = new Map(a.map((r) => [String(r.id), r])), p = m.map((r) => u.get(String(r.id))).filter((r) => !!r);
171
+ if (p.length === a.length) return p;
172
+ const b = new Set(p.map((r) => String(r.id)));
173
+ return [...p, ...a.filter((r) => !b.has(String(r.id)))];
174
+ }, v = () => (A || (A = ee({
175
+ getColumns: c,
176
+ emit: (a, u) => e.emit(a, u),
177
+ isDisabled: e.getDisabled
178
+ })), A), x = () => {
179
+ if (!e.columnsContainerRef.value) return [];
180
+ const a = e.columnsContainerRef.value.querySelectorAll("[data-column-id]"), u = [];
181
+ return a.forEach((p) => {
182
+ const b = p.getBoundingClientRect();
183
+ u.push({ id: p.getAttribute("data-column-id"), left: b.left, width: b.width });
184
+ }), u;
185
+ }, f = () => {
186
+ const a = v();
187
+ e.isColumnDragging.value = a.state.isDragging, e.draggedColumnId.value = a.state.draggedColumnId, e.columnDragStartX.value = a.state.startX, e.columnDragOffsets.value = a.state.offsets;
188
+ }, P = () => {
189
+ const a = e.columnsContainerRef.value;
190
+ return Math.max(0, (a?.scrollWidth ?? 0) - (a?.clientWidth ?? 0));
191
+ }, B = () => {
192
+ const a = P();
193
+ return C == null ? a : Math.min(C, a);
194
+ }, M = (a) => Math.min(B(), Math.max(0, a)), O = () => M(e.columnsContainerRef.value?.scrollLeft ?? 0) - y, R = (a) => {
195
+ const u = v();
196
+ u.state.isDragging && (u.onDragMove(a + O(), m), f());
197
+ }, t = (a) => {
198
+ const u = e.columnsContainerRef.value;
199
+ if (!u) return 0;
200
+ const p = u.getBoundingClientRect(), b = a - p.left, r = p.right - a, d = (o) => Math.ceil(Math.min(1, Math.max(0, (56 - o) / 56)) * 14);
201
+ return b < 56 && u.scrollLeft > 0 ? -d(b) : r < 56 && u.scrollLeft < B() ? d(r) : 0;
202
+ }, n = () => {
203
+ i != null && (cancelAnimationFrame(i), i = null);
204
+ }, l = () => {
205
+ i = null;
206
+ const a = e.columnsContainerRef.value, u = v();
207
+ if (!a || !u.state.isDragging) return;
208
+ const p = t(g);
209
+ if (p === 0) return;
210
+ const b = M(a.scrollLeft), r = M(b + p);
211
+ a.scrollLeft = r, M(a.scrollLeft) !== b && (R(g), i = requestAnimationFrame(l));
212
+ }, s = (a) => {
213
+ if (g = a, t(a) === 0) {
214
+ n();
215
+ return;
216
+ }
217
+ i == null && (i = requestAnimationFrame(l));
218
+ }, h = (a) => {
219
+ v().state.isDragging && (R(a.clientX), s(a.clientX));
220
+ }, w = () => {
221
+ const a = v();
222
+ a.state.isDragging && (n(), R(g), a.onDragEnd(m), f(), m = [], y = 0, C = null, I = !0, requestAnimationFrame(() => {
223
+ I = !1;
224
+ }), document.removeEventListener("pointermove", h), document.removeEventListener("pointerup", w));
225
+ };
226
+ return {
227
+ onColumnHeaderPointerDown: (a, u) => {
228
+ if (u.defaultPrevented || u.button !== 0) return;
229
+ const p = u.currentTarget, b = u.target;
230
+ if (p instanceof Element && b instanceof Element) {
231
+ const o = b.closest(me);
232
+ if (o && o !== p && p.contains(o)) return;
233
+ }
234
+ if (!e.canReorderColumns.value || e.getDisabled() || a.locked) return;
235
+ u.preventDefault(), u.stopPropagation(), u.target.setPointerCapture?.(u.pointerId);
236
+ const r = e.columnsContainerRef.value;
237
+ m = x(), C = P(), y = M(r?.scrollLeft ?? 0), g = u.clientX, v().onDragStart(a.id, u.clientX), f(), document.addEventListener("pointermove", h), document.addEventListener("pointerup", w);
238
+ },
239
+ onColumnHeaderClick: () => {
240
+ if (I) {
241
+ I = !1;
242
+ return;
243
+ }
244
+ },
245
+ onColumnDragMove: h,
246
+ onColumnDragEnd: w,
247
+ getColumnStyle: (a) => _(a, {
248
+ offsets: e.columnDragOffsets.value,
249
+ draggedColumnId: e.draggedColumnId.value
250
+ }),
251
+ cleanupColumnDrag: () => {
252
+ n(), document.removeEventListener("pointermove", h), document.removeEventListener("pointerup", w);
253
+ }
254
+ };
255
+ }
256
+ function ve(e) {
257
+ let S = null, k = null, I = null, A = null, m = null, y = null, C = null;
258
+ const g = Q(!1), i = Q(!1), c = (t) => (e.tasks.value ?? []).find((n) => String(e.getItemId(n)) === String(t)), v = (t) => e.allColumns.value.find((n) => String(n.id) === String(t)), x = (t, n, l, s, h) => {
259
+ e.emit("cardDropBlocked", {
260
+ task: t,
261
+ targetColumn: n,
262
+ reason: l,
263
+ message: s,
264
+ failedFields: h
265
+ }), e.announce(s);
266
+ }, f = (t, n) => {
267
+ const l = n?.selectedCardIds ?? e.selectedCardIds.value;
268
+ return l.length > 1 && l.some((s) => String(s) === String(t)) ? l.length : 1;
269
+ }, P = (t) => {
270
+ const n = c(e.getItemId(t.card)), l = v(t.newColumnId);
271
+ if (!(!n || !l)) {
272
+ if (!e.canMoveOutOfColumn(t.oldColumnId)) {
273
+ const s = v(t.oldColumnId);
274
+ x(n, l, "move-out-blocked", `Cards cannot move out of "${s?.label ?? t.oldColumnId}"`);
275
+ return;
276
+ }
277
+ if (String(t.oldColumnId) !== String(t.newColumnId) && !e.canMoveIntoColumn(t.newColumnId)) {
278
+ x(n, l, "move-in-blocked", `Cards cannot move into "${l.label}"`);
279
+ return;
280
+ }
281
+ if (A && String(t.oldColumnId) !== String(t.newColumnId)) {
282
+ const s = A.canMoveCard(n, t.oldColumnId, t.newColumnId, f(e.getItemId(n), t));
283
+ if (!s.allowed) {
284
+ if (s.reason === "confirmation-required") {
285
+ e.pendingConfirmMove.value = { payload: t, task: n, message: s.message ?? "" };
286
+ return;
287
+ }
288
+ x(n, l, s.reason, s.message, s.failedFields);
289
+ return;
290
+ }
291
+ }
292
+ e.applyCardMoveHandler(t);
293
+ }
294
+ }, B = (t) => {
295
+ const n = c(t.cardId), l = t.targetColumnId != null ? v(t.targetColumnId) : v(t.columnId);
296
+ if (!n || !l) return;
297
+ const s = t.reason === "move-out-blocked" ? `Cards cannot move out of "${v(t.columnId)?.label ?? t.columnId}"` : "Keyboard move is disabled for this board";
298
+ x(n, l, t.reason, s);
299
+ };
300
+ return {
301
+ initializeCore: () => {
302
+ S || (S = te({
303
+ refs: {
304
+ root: e.rootRef.value,
305
+ columnsContainer: e.columnsContainerRef.value
306
+ },
307
+ props: e.getCoreProps(),
308
+ state: {
309
+ selectedCardIds: e.selectedCardIds.value,
310
+ lastSelectedCardId: null,
311
+ dragState: {
312
+ isDragging: !1,
313
+ draggedCardId: null,
314
+ sourceColumnId: null,
315
+ targetColumnId: null,
316
+ targetIndex: null
317
+ },
318
+ focusedCardId: null,
319
+ collapsedColumnIds: e.collapsedColumnIds.value,
320
+ collapsedSwimlaneIds: e.collapsedSwimlaneIds.value,
321
+ columnOrder: []
322
+ },
323
+ emits: {
324
+ cardMove: (t) => {
325
+ e.applyCardMoveHandler(t);
326
+ },
327
+ cardClick: (t) => {
328
+ e.emit("cardClick", t);
329
+ },
330
+ cardDblclick: (t) => {
331
+ e.emit("cardDblclick", t);
332
+ },
333
+ cardSelect: (t) => {
334
+ e.emit("cardSelect", t);
335
+ },
336
+ selectionChange: (t) => {
337
+ e.selectedCardIds.value = t.selectedIds, S?.$setState({ selectedCardIds: t.selectedIds }), e.emit("selectionChange", t);
338
+ },
339
+ cardCreate: (t) => {
340
+ e.emit("cardCreate", t);
341
+ },
342
+ cardUpdate: (t) => {
343
+ e.emit("cardUpdate", t);
344
+ },
345
+ cardDelete: (t) => {
346
+ e.emit("cardDelete", t);
347
+ },
348
+ columnCollapse: (t) => {
349
+ t.collapsed ? e.collapsedColumnIds.value = [...e.collapsedColumnIds.value, t.column.id] : e.collapsedColumnIds.value = e.collapsedColumnIds.value.filter((n) => n !== t.column.id), S?.$setState({ collapsedColumnIds: e.collapsedColumnIds.value }), e.emit("columnCollapse", t);
350
+ },
351
+ columnReorder: (t) => {
352
+ e.emit("columnReorder", t);
353
+ },
354
+ swimlaneCollapse: (t) => {
355
+ t.collapsed ? e.collapsedSwimlaneIds.value = [...e.collapsedSwimlaneIds.value, t.swimlane.id] : e.collapsedSwimlaneIds.value = e.collapsedSwimlaneIds.value.filter((n) => n !== t.swimlane.id), S?.$setState({ collapsedSwimlaneIds: e.collapsedSwimlaneIds.value }), e.emit("swimlaneCollapse", t);
356
+ },
357
+ dragStart: (t) => {
358
+ e.emit("dragStart", t);
359
+ },
360
+ dragEnd: (t) => {
361
+ e.emit("dragEnd", t);
362
+ },
363
+ cardContextMenu: (t) => {
364
+ e.emit("cardContextMenu", t);
365
+ },
366
+ scrollToColumn: (t) => {
367
+ e.scrollToColumnImpl(t.id);
368
+ },
369
+ scrollToCard: (t) => {
370
+ e.scrollToCardImpl(t.id);
371
+ }
372
+ }
373
+ }), k = le({
374
+ getColumns: () => e.allColumns.value,
375
+ getTasksByColumn: (t) => e.getColumnTasks(t),
376
+ getTaskById: c,
377
+ getTaskId: (t) => e.getItemId(t),
378
+ getTaskSwimlaneValue: (t) => e.getItemSwimlaneValue(t),
379
+ getColumnById: (t) => e.allColumns.value.find((n) => n.id === t),
380
+ emit: (t, n) => {
381
+ if (t === "card-move")
382
+ P(n);
383
+ else if (t === "drag-start") {
384
+ const l = n;
385
+ e.emit("dragStart", l);
386
+ } else if (t === "drag-end") {
387
+ const l = n;
388
+ e.emit("dragEnd", l);
389
+ } else if (t === "drag-cancel") {
390
+ const l = n, s = (e.tasks.value ?? []).find((w) => e.getItemId(w) === l.draggedCardId), h = e.allColumns.value.find((w) => w.id === l.sourceColumnId);
391
+ s && h && e.emit("dragCancel", { card: s, column: h });
392
+ }
393
+ },
394
+ isDisabled: () => e.getDisabled(),
395
+ isReadonly: () => e.getReadonly(),
396
+ dragMinDistance: e.dragMinDistance
397
+ }), I = re({
398
+ getTaskById: c,
399
+ getTasksByColumn: (t) => e.getColumnTasks(t),
400
+ getTaskId: (t) => e.getItemId(t),
401
+ getTaskColumnValue: (t) => e.getItemColumnValue(t),
402
+ getTaskSwimlaneValue: (t) => e.getItemSwimlaneValue(t),
403
+ emit: (t, n) => {
404
+ if (t === "card-select") {
405
+ const l = n;
406
+ e.emit("cardSelect", l);
407
+ } else if (t === "selection-change") {
408
+ const l = n;
409
+ e.selectedCardIds.value = l.selectedIds, S?.$setState({ selectedCardIds: l.selectedIds }), l.selectedIds.length === 0 && (e.selectionOrigin.value = null), e.emit("selectionChange", l), e.announce(`${l.selectedIds.length} task${l.selectedIds.length === 1 ? "" : "s"} selected`);
410
+ }
411
+ },
412
+ getSelectionMode: () => e.getSelectionMode()
413
+ }), A = ne({
414
+ getColumnById: (t) => e.allColumns.value.find((n) => String(n.id) === String(t)),
415
+ getTasksByColumn: (t) => e.getColumnTasks(t)
416
+ }), y = oe({
417
+ maxSize: 50,
418
+ onHistoryChange: (t) => {
419
+ g.value = t.canUndo, i.value = t.canRedo;
420
+ }
421
+ }), C = ae({ maxEntries: 200 }), m = se({
422
+ getColumns: () => e.visibleColumns.value,
423
+ getTasksByColumn: (t) => e.getColumnTasks(t),
424
+ getTasksByCell: (t, n) => e.getVisibleCellTasks(t, n),
425
+ getSwimlanes: () => e.processedSwimlanes.value,
426
+ getTaskById: c,
427
+ getSelectedCardIds: () => e.selectedCardIds.value,
428
+ getTaskId: (t) => e.getItemId(t),
429
+ getTaskColumnValue: (t) => e.getItemColumnValue(t),
430
+ getTaskSwimlaneValue: (t) => e.getItemSwimlaneValue(t),
431
+ canMoveCards: () => e.canKeyboardMove(),
432
+ canMoveOutOfColumn: (t) => e.canMoveOutOfColumn(t),
433
+ emit: (t, n) => {
434
+ if (t === "focus-change") {
435
+ const l = n;
436
+ if (e.focusedCardId.value = l.cardId, e.focusedColumnId.value = l.columnId ?? null, e.focusedSwimlaneId.value = l.swimlaneId ?? null, l.cardId) {
437
+ const s = c(l.cardId);
438
+ s && e.announce(`Focused ${String(s.title ?? e.getItemId(s))}`), $(() => {
439
+ const h = String(l.cardId);
440
+ Array.from(e.rootRef.value?.querySelectorAll("[data-task-id]") ?? []).find((E) => E.getAttribute("data-task-id") === h)?.scrollIntoView({ block: "nearest", inline: "nearest", behavior: "smooth" });
441
+ });
442
+ } else if (l.columnId != null) {
443
+ const s = v(l.columnId);
444
+ s && (e.announce(`Focused ${s.label}`), $(() => e.scrollToColumnImpl(s.id)));
445
+ }
446
+ } else if (t === "keyboard-enter") {
447
+ const s = c(n.cardId), h = s ? e.allColumns.value.find((w) => String(w.id) === String(e.getItemColumnValue(s))) : null;
448
+ s && h && e.emit("cardActivate", { card: s, column: h, origin: "keyboard" });
449
+ } else if (t === "keyboard-space") {
450
+ const l = n;
451
+ e.getSelectionMode() !== "none" && (e.selectionOrigin.value = "keyboard", I?.selectCard(l.cardId, { ctrlKey: !0 }));
452
+ } else if (t === "keyboard-range-select") {
453
+ const l = n;
454
+ e.getSelectionMode() !== "none" && (e.selectionOrigin.value = "keyboard", I?.selectRange(l.cardId, l.anchorCardId));
455
+ } else if (t === "keyboard-select-all") {
456
+ const l = n, s = l.swimlaneId != null ? e.getVisibleCellTasks(l.columnId, l.swimlaneId) : e.getColumnTasks(l.columnId);
457
+ e.selectionOrigin.value = "keyboard", I?.selectAll(s);
458
+ } else if (t === "keyboard-card-move") {
459
+ const l = n, s = c(l.cardId);
460
+ if (!s) return;
461
+ P({
462
+ card: s,
463
+ oldColumnId: l.oldColumnId,
464
+ newColumnId: l.newColumnId,
465
+ oldIndex: l.oldIndex,
466
+ newIndex: l.newIndex,
467
+ oldSwimlaneId: l.oldSwimlaneId,
468
+ newSwimlaneId: l.newSwimlaneId,
469
+ selectedCardIds: l.selectedCardIds
470
+ }), e.focusedCardId.value = l.cardId, e.focusedColumnId.value = l.newColumnId, e.focusedSwimlaneId.value = l.newSwimlaneId ?? null, m && (m.focusedCardId = l.cardId, m.focusedColumnId = l.newColumnId, m.focusedSwimlaneId = l.newSwimlaneId ?? null);
471
+ } else t === "keyboard-card-move-blocked" && B(n);
472
+ },
473
+ isDisabled: () => e.getDisabled()
474
+ }));
475
+ },
476
+ cleanupControllers: () => {
477
+ k?.destroy(), k = null, I = null, A = null, m = null, y = null, C = null, S = null;
478
+ },
479
+ recordAudit: (t, n, l, s, h) => {
480
+ C?.record(t, n, l, s, h);
481
+ },
482
+ canUndoState: g,
483
+ canRedoState: i,
484
+ getCoreInstance: () => S,
485
+ getDragController: () => k,
486
+ getSelectionController: () => I,
487
+ getWorkflowController: () => A,
488
+ getKeyboardController: () => m,
489
+ getHistoryController: () => y,
490
+ getAuditController: () => C
491
+ };
492
+ }
493
+ function he(e) {
494
+ return {
495
+ performUndo: () => {
496
+ const I = e.getHistoryController()?.undo();
497
+ I && (e.tasksWritable.value = ue(e.tasks.value, I, e.getMutationFields()), e.syncCoreProps(), e.announce("Undo: " + I.description));
498
+ },
499
+ performRedo: () => {
500
+ const I = e.getHistoryController()?.redo();
501
+ I && (e.tasksWritable.value = de(e.tasks.value, I, e.getMutationFields()), e.syncCoreProps(), e.announce("Redo: " + I.description));
502
+ }
503
+ };
504
+ }
505
+ export {
506
+ Se as a,
507
+ ve as b,
508
+ he as c,
509
+ Ie as u
510
+ };
@@ -0,0 +1,58 @@
1
+ import { inject as t } from "vue";
2
+ import { T as a } from "./TaskBoard.context-BCq7uauT.mjs";
3
+ function r() {
4
+ const e = t(a);
5
+ return {
6
+ selectedIds: e.selectedItemIds,
7
+ select: e.selectCard,
8
+ selectAll: e.selectAllCards,
9
+ clear: e.clearSelection,
10
+ isSelected: (n) => e.selectedItemIds.value.includes(n)
11
+ };
12
+ }
13
+ function s() {
14
+ const e = t(a);
15
+ return {
16
+ canUndo: e.canUndoState,
17
+ canRedo: e.canRedoState,
18
+ undo: e.performUndo,
19
+ redo: e.performRedo
20
+ };
21
+ }
22
+ function d() {
23
+ const e = t(a);
24
+ return {
25
+ canDrag: e.canDrag,
26
+ canEdit: e.canEdit,
27
+ canCreate: e.canCreate,
28
+ canDelete: e.canDelete,
29
+ canMoveInto: e.canMoveIntoColumn,
30
+ canMoveOut: e.canMoveOutOfColumn,
31
+ canView: e.canViewColumn
32
+ };
33
+ }
34
+ function i() {
35
+ const e = t(a);
36
+ return {
37
+ getWipStatus: e.getWipStatus,
38
+ canMoveCard: e.canMoveCard
39
+ };
40
+ }
41
+ function u() {
42
+ const e = t(a);
43
+ return {
44
+ isDragging: e.isDragging,
45
+ draggedItem: e.draggedItem,
46
+ targetColumn: e.dragTargetColumnValue,
47
+ targetIndex: e.dragTargetIndex,
48
+ ghostPosition: e.ghostPosition,
49
+ hiddenIds: e.getDragHiddenIds
50
+ };
51
+ }
52
+ export {
53
+ u as a,
54
+ s as b,
55
+ r as c,
56
+ i as d,
57
+ d as u
58
+ };
@@ -1,13 +1,13 @@
1
- import type { TaskBoardColumn, TaskBoardItem } from '@primeui/taskboard-types';
1
+ import type { TaskBoardColumnModel, TaskBoardItem } from '@primeui/taskboard-types';
2
2
  type __VLS_Props = {
3
3
  item?: TaskBoardItem;
4
- column?: TaskBoardColumn;
4
+ column?: TaskBoardColumnModel;
5
5
  };
6
6
  declare var __VLS_1: {
7
7
  item: TaskBoardItem | undefined;
8
8
  isSelected: boolean;
9
9
  isDragging: boolean;
10
- column: TaskBoardColumn | undefined;
10
+ column: TaskBoardColumnModel | undefined;
11
11
  };
12
12
  type __VLS_Slots = {} & {
13
13
  default?: (props: typeof __VLS_1) => any;
@@ -2,7 +2,7 @@ declare var __VLS_1: {
2
2
  item: import("packages/components/taskboard/taskboard-types/src").TaskBoardItem;
3
3
  isSelected: boolean;
4
4
  isDragging: boolean;
5
- column: import("packages/components/taskboard/taskboard-types/src").TaskBoardColumn;
5
+ column: import("packages/components/taskboard/taskboard-types/src").TaskBoardColumnModel;
6
6
  };
7
7
  type __VLS_Slots = {} & {
8
8
  default?: (props: typeof __VLS_1) => any;
@@ -2,7 +2,7 @@ declare var __VLS_1: {
2
2
  item: import("packages/components/taskboard/taskboard-types/src").TaskBoardItem;
3
3
  isSelected: boolean;
4
4
  isDragging: boolean;
5
- column: import("packages/components/taskboard/taskboard-types/src").TaskBoardColumn;
5
+ column: import("packages/components/taskboard/taskboard-types/src").TaskBoardColumnModel;
6
6
  };
7
7
  type __VLS_Slots = {} & {
8
8
  default?: (props: typeof __VLS_1) => any;
@@ -2,7 +2,7 @@ declare var __VLS_1: {
2
2
  item: import("packages/components/taskboard/taskboard-types/src").TaskBoardItem;
3
3
  isSelected: boolean;
4
4
  isDragging: boolean;
5
- column: import("packages/components/taskboard/taskboard-types/src").TaskBoardColumn;
5
+ column: import("packages/components/taskboard/taskboard-types/src").TaskBoardColumnModel;
6
6
  };
7
7
  type __VLS_Slots = {} & {
8
8
  default?: (props: typeof __VLS_1) => any;
@@ -1,8 +1,8 @@
1
- import type { TaskBoardColumn } from '@primeui/taskboard-types';
1
+ import type { TaskBoardColumnModel } from '@primeui/taskboard-types';
2
2
  type __VLS_Props = {
3
3
  label: string;
4
4
  value: string | number;
5
- column?: TaskBoardColumn;
5
+ column?: TaskBoardColumnModel;
6
6
  };
7
7
  declare var __VLS_1: {};
8
8
  type __VLS_Slots = {} & {
@@ -1,6 +1,6 @@
1
1
  declare var __VLS_11: {
2
2
  item: import("@primeui/taskboard-core").TaskBoardItem;
3
- column: import("@primeui/taskboard-core").TaskBoardColumn;
3
+ column: import("@primeui/taskboard-core").TaskBoardColumnModel;
4
4
  isSelected: boolean;
5
5
  isDragging: boolean | null;
6
6
  }, __VLS_18: {};
@@ -1,5 +1,5 @@
1
1
  declare var __VLS_1: {
2
- column: import("packages/components/taskboard/taskboard-types/src").TaskBoardColumn;
2
+ column: import("packages/components/taskboard/taskboard-types/src").TaskBoardColumnModel;
3
3
  itemCount: number;
4
4
  };
5
5
  type __VLS_Slots = {} & {
@@ -1,5 +1,5 @@
1
1
  declare var __VLS_1: {
2
- column: import("packages/components/taskboard/taskboard-types/src").TaskBoardColumn;
2
+ column: import("packages/components/taskboard/taskboard-types/src").TaskBoardColumnModel;
3
3
  itemCount: number;
4
4
  isCollapsed: boolean;
5
5
  toggleCollapse: () => void;
@@ -1,7 +1,7 @@
1
1
  declare var __VLS_1: {
2
2
  task: import("packages/components/taskboard/taskboard-types/src").TaskBoardItem;
3
- sourceColumn: import("packages/components/taskboard/taskboard-types/src").TaskBoardColumn | undefined;
4
- targetColumn: import("packages/components/taskboard/taskboard-types/src").TaskBoardColumn | undefined;
3
+ sourceColumn: import("packages/components/taskboard/taskboard-types/src").TaskBoardColumnModel | undefined;
4
+ targetColumn: import("packages/components/taskboard/taskboard-types/src").TaskBoardColumnModel | undefined;
5
5
  confirm: () => void;
6
6
  cancel: () => void;
7
7
  message: string;
@@ -1,9 +1,9 @@
1
- import type { TaskBoardColumn } from '@primeui/taskboard-types';
1
+ import type { TaskBoardColumnModel } from '@primeui/taskboard-types';
2
2
  type __VLS_Props = {
3
- column?: TaskBoardColumn;
3
+ column?: TaskBoardColumnModel;
4
4
  };
5
5
  declare var __VLS_1: {
6
- column: TaskBoardColumn | undefined;
6
+ column: TaskBoardColumnModel | undefined;
7
7
  itemCount: number;
8
8
  };
9
9
  type __VLS_Slots = {} & {