@primeui/vue-taskboard 0.0.1-alpha.1 → 1.0.0-rc.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 (129) hide show
  1. package/LICENSE.md +35 -0
  2. package/dist/TaskBoard.context.d.ts +21 -21
  3. package/dist/TaskBoard.parts.d.ts +20 -20
  4. package/dist/TaskBoard.vue.d.ts +37 -37
  5. package/dist/TaskBoardContent.vue.d.ts +2 -2
  6. package/dist/chunks/TaskBoard.context-BCq7uauT.mjs +29 -0
  7. package/dist/chunks/TaskBoard.vue_vue_type_script_setup_true_lang-BWN_YxC5.mjs +841 -0
  8. package/dist/chunks/TaskBoardCard.vue_vue_type_script_setup_true_lang-B1Ix7Gjf.mjs +34 -0
  9. package/dist/chunks/TaskBoardCardAdd.vue_vue_type_script_setup_true_lang-Dy4BuCa9.mjs +14 -0
  10. package/dist/chunks/TaskBoardCardContent.vue_vue_type_script_setup_true_lang-DNEmpvcn.mjs +19 -0
  11. package/dist/chunks/TaskBoardCardFooter.vue_vue_type_script_setup_true_lang-8FWnuxSl.mjs +19 -0
  12. package/dist/chunks/TaskBoardCardHeader.vue_vue_type_script_setup_true_lang-Dr-XJfaE.mjs +19 -0
  13. package/dist/chunks/TaskBoardColumn.vue_vue_type_script_setup_true_lang-D_AJ5j7c.mjs +42 -0
  14. package/dist/chunks/TaskBoardColumnAdd-C_JSN3pp.mjs +10 -0
  15. package/dist/chunks/TaskBoardColumnContent.vue_vue_type_script_setup_true_lang-DNRiWBN_.mjs +180 -0
  16. package/dist/chunks/TaskBoardColumnEmpty.vue_vue_type_script_setup_true_lang-D23AtNeX.mjs +18 -0
  17. package/dist/chunks/TaskBoardColumnFooter.vue_vue_type_script_setup_true_lang-BpKRnC6u.mjs +19 -0
  18. package/dist/chunks/TaskBoardColumnHeader.vue_vue_type_script_setup_true_lang-DMc9zcWV.mjs +51 -0
  19. package/dist/chunks/TaskBoardContent.vue_vue_type_script_setup_true_lang-lDUg6UrJ.mjs +292 -0
  20. package/dist/chunks/TaskBoardDragConfirm.vue_vue_type_script_setup_true_lang-B4OdxK5L.mjs +20 -0
  21. package/dist/chunks/TaskBoardDragPreview.vue_vue_type_script_setup_true_lang-B7F-FPY1.mjs +40 -0
  22. package/dist/chunks/TaskBoardDropIndicator-BUMSBiQC.mjs +14 -0
  23. package/dist/chunks/TaskBoardHeader.vue_vue_type_script_setup_true_lang-CwtaadkE.mjs +21 -0
  24. package/dist/chunks/TaskBoardLoading-CrgtYPP-.mjs +10 -0
  25. package/dist/chunks/TaskBoardSwimlaneColumnHeader.vue_vue_type_script_setup_true_lang-BVpen7mj.mjs +23 -0
  26. package/dist/chunks/TaskBoardSwimlaneHeader.vue_vue_type_script_setup_true_lang-D6NdS4hP.mjs +32 -0
  27. package/dist/chunks/_plugin-vue_export-helper-CHgC5LLL.mjs +9 -0
  28. package/dist/chunks/useHistory-C-Ud-WgS.mjs +510 -0
  29. package/dist/chunks/useTaskBoardDrag-BvBISSNb.mjs +58 -0
  30. package/dist/components/card/TaskBoardCard.vue.d.ts +3 -3
  31. package/dist/components/card/TaskBoardCardContent.vue.d.ts +1 -1
  32. package/dist/components/card/TaskBoardCardFooter.vue.d.ts +1 -1
  33. package/dist/components/card/TaskBoardCardHeader.vue.d.ts +1 -1
  34. package/dist/components/column/TaskBoardColumn.vue.d.ts +2 -2
  35. package/dist/components/column/TaskBoardColumnContent.vue.d.ts +1 -1
  36. package/dist/components/column/TaskBoardColumnFooter.vue.d.ts +1 -1
  37. package/dist/components/column/TaskBoardColumnHeader.vue.d.ts +1 -1
  38. package/dist/components/overlay/TaskBoardDragConfirm.vue.d.ts +2 -2
  39. package/dist/components/swimlane/TaskBoardSwimlaneColumnHeader.vue.d.ts +3 -3
  40. package/dist/components.d.ts +20 -0
  41. package/dist/components.mjs +42 -0
  42. package/dist/composables/index.mjs +6 -5
  43. package/dist/composables/useCardDrag.d.ts +2 -2
  44. package/dist/composables/useColumnDrag.d.ts +5 -5
  45. package/dist/composables/useControllerInit.d.ts +3 -3
  46. package/dist/composables/useKeyboardHandling.d.ts +2 -2
  47. package/dist/index.d.ts +20 -20
  48. package/dist/index.mjs +77 -1650
  49. package/dist/parts/card/index.d.ts +1 -0
  50. package/dist/parts/card/index.mjs +4 -0
  51. package/dist/parts/cardadd/index.d.ts +1 -0
  52. package/dist/parts/cardadd/index.mjs +4 -0
  53. package/dist/parts/cardcontent/index.d.ts +1 -0
  54. package/dist/parts/cardcontent/index.mjs +4 -0
  55. package/dist/parts/cardfooter/index.d.ts +1 -0
  56. package/dist/parts/cardfooter/index.mjs +4 -0
  57. package/dist/parts/cardheader/index.d.ts +1 -0
  58. package/dist/parts/cardheader/index.mjs +4 -0
  59. package/dist/parts/column/index.d.ts +1 -0
  60. package/dist/parts/column/index.mjs +4 -0
  61. package/dist/parts/columnadd/index.d.ts +1 -0
  62. package/dist/parts/columnadd/index.mjs +4 -0
  63. package/dist/parts/columncontent/index.d.ts +1 -0
  64. package/dist/parts/columncontent/index.mjs +4 -0
  65. package/dist/parts/columnempty/index.d.ts +1 -0
  66. package/dist/parts/columnempty/index.mjs +4 -0
  67. package/dist/parts/columnfooter/index.d.ts +1 -0
  68. package/dist/parts/columnfooter/index.mjs +4 -0
  69. package/dist/parts/columnheader/index.d.ts +1 -0
  70. package/dist/parts/columnheader/index.mjs +4 -0
  71. package/dist/parts/content/index.d.ts +1 -0
  72. package/dist/parts/content/index.mjs +4 -0
  73. package/dist/parts/dragconfirm/index.d.ts +1 -0
  74. package/dist/parts/dragconfirm/index.mjs +4 -0
  75. package/dist/parts/dragpreview/index.d.ts +1 -0
  76. package/dist/parts/dragpreview/index.mjs +4 -0
  77. package/dist/parts/dropindicator/index.d.ts +1 -0
  78. package/dist/parts/dropindicator/index.mjs +4 -0
  79. package/dist/parts/header/index.d.ts +1 -0
  80. package/dist/parts/header/index.mjs +4 -0
  81. package/dist/parts/loading/index.d.ts +1 -0
  82. package/dist/parts/loading/index.mjs +4 -0
  83. package/dist/parts/root/index.d.ts +1 -0
  84. package/dist/parts/root/index.mjs +4 -0
  85. package/dist/parts/swimlanecolumnheader/index.d.ts +1 -0
  86. package/dist/parts/swimlanecolumnheader/index.mjs +4 -0
  87. package/dist/parts/swimlaneheader/index.d.ts +1 -0
  88. package/dist/parts/swimlaneheader/index.mjs +4 -0
  89. package/dist/release-date.d.ts +1 -1
  90. package/package.json +24 -19
  91. package/LICENSE +0 -23
  92. package/dist/TaskBoard.context.d.mts +0 -235
  93. package/dist/TaskBoard.parts.d.mts +0 -20
  94. package/dist/TaskBoard.vue.d.mts +0 -291
  95. package/dist/TaskBoardContent.vue.d.mts +0 -27
  96. package/dist/TaskBoardHeader.vue.d.mts +0 -18
  97. package/dist/TaskBoardLoading.vue.d.mts +0 -13
  98. package/dist/chunks/useTaskBoardDrag-ByZvmcfw.mjs +0 -590
  99. package/dist/components/card/TaskBoardCard.vue.d.mts +0 -23
  100. package/dist/components/card/TaskBoardCardAdd.vue.d.mts +0 -15
  101. package/dist/components/card/TaskBoardCardContent.vue.d.mts +0 -18
  102. package/dist/components/card/TaskBoardCardFooter.vue.d.mts +0 -18
  103. package/dist/components/card/TaskBoardCardHeader.vue.d.mts +0 -18
  104. package/dist/components/column/TaskBoardColumn.vue.d.mts +0 -19
  105. package/dist/components/column/TaskBoardColumnAdd.vue.d.mts +0 -13
  106. package/dist/components/column/TaskBoardColumnContent.vue.d.mts +0 -20
  107. package/dist/components/column/TaskBoardColumnEmpty.vue.d.mts +0 -13
  108. package/dist/components/column/TaskBoardColumnFooter.vue.d.mts +0 -16
  109. package/dist/components/column/TaskBoardColumnHeader.vue.d.mts +0 -19
  110. package/dist/components/overlay/TaskBoardDragConfirm.vue.d.mts +0 -20
  111. package/dist/components/overlay/TaskBoardDragPreview.vue.d.mts +0 -16
  112. package/dist/components/overlay/TaskBoardDropIndicator.d.mts +0 -2
  113. package/dist/components/swimlane/TaskBoardSwimlaneColumnHeader.vue.d.mts +0 -20
  114. package/dist/components/swimlane/TaskBoardSwimlaneHeader.vue.d.mts +0 -22
  115. package/dist/composables/index.d.mts +0 -9
  116. package/dist/composables/useCardDrag.d.mts +0 -47
  117. package/dist/composables/useCardDragGeometry.d.mts +0 -21
  118. package/dist/composables/useColumnDrag.d.mts +0 -24
  119. package/dist/composables/useControllerInit.d.mts +0 -64
  120. package/dist/composables/useHistory.d.mts +0 -15
  121. package/dist/composables/useKeyboardHandling.d.mts +0 -37
  122. package/dist/composables/useTaskBoardAccess.d.mts +0 -9
  123. package/dist/composables/useTaskBoardDrag.d.mts +0 -14
  124. package/dist/composables/useTaskBoardHistory.d.mts +0 -6
  125. package/dist/composables/useTaskBoardPrintRuntime.d.mts +0 -7
  126. package/dist/composables/useTaskBoardSelection.d.mts +0 -11
  127. package/dist/composables/useTaskBoardWorkflow.d.mts +0 -8
  128. package/dist/index.d.mts +0 -29
  129. package/dist/release-date.d.mts +0 -11
@@ -0,0 +1,34 @@
1
+ import { defineComponent as g, inject as m, computed as o, toRef as c, provide as p, renderSlot as v } from "vue";
2
+ import { T as f, a as I, C } from "./TaskBoard.context-BCq7uauT.mjs";
3
+ const K = /* @__PURE__ */ g({
4
+ __name: "TaskBoardCard",
5
+ props: {
6
+ item: {},
7
+ column: {}
8
+ },
9
+ setup(l) {
10
+ const e = l, t = m(f), a = m(I, null), u = o(() => e.item), r = o(() => e.column ?? (a ? a.columnData : void 0)), s = o(() => {
11
+ if (!e.item) return !1;
12
+ const n = t.getItemId(e.item);
13
+ return t.selectedItemIds.value.includes(n);
14
+ }), i = o(() => {
15
+ if (!e.item) return !1;
16
+ const n = t.getItemId(e.item);
17
+ return !!(t.isDragging.value && t.draggedItem.value && t.getItemId(t.draggedItem.value) === n);
18
+ }), d = {
19
+ item: c(() => e.item),
20
+ column: c(() => r.value),
21
+ isSelected: s,
22
+ isDragging: i
23
+ };
24
+ return p(C, d), (n, _) => v(n.$slots, "default", {
25
+ item: u.value,
26
+ isSelected: s.value,
27
+ isDragging: i.value,
28
+ column: r.value
29
+ });
30
+ }
31
+ });
32
+ export {
33
+ K as _
34
+ };
@@ -0,0 +1,14 @@
1
+ import { defineComponent as o, inject as t, renderSlot as a, unref as n } from "vue";
2
+ import { a as d } from "./TaskBoard.context-BCq7uauT.mjs";
3
+ const p = /* @__PURE__ */ o({
4
+ __name: "TaskBoardCardAdd",
5
+ setup(s) {
6
+ const e = t(d);
7
+ return (r, _) => a(r.$slots, "default", {
8
+ add: n(e).addItem
9
+ });
10
+ }
11
+ });
12
+ export {
13
+ p as _
14
+ };
@@ -0,0 +1,19 @@
1
+ import { defineComponent as o, inject as r, openBlock as a, createElementBlock as l, renderSlot as c, unref as n } from "vue";
2
+ import { C as i } from "./TaskBoard.context-BCq7uauT.mjs";
3
+ const _ = /* @__PURE__ */ o({
4
+ __name: "TaskBoardCardContent",
5
+ setup(s) {
6
+ const e = r(i);
7
+ return (t, m) => (a(), l("div", null, [
8
+ c(t.$slots, "default", {
9
+ item: n(e).item.value,
10
+ isSelected: n(e).isSelected.value,
11
+ isDragging: n(e).isDragging.value,
12
+ column: n(e).column.value
13
+ })
14
+ ]));
15
+ }
16
+ });
17
+ export {
18
+ _
19
+ };
@@ -0,0 +1,19 @@
1
+ import { defineComponent as t, inject as n, openBlock as a, createElementBlock as l, renderSlot as c, unref as o } from "vue";
2
+ import { C as i } from "./TaskBoard.context-BCq7uauT.mjs";
3
+ const _ = /* @__PURE__ */ t({
4
+ __name: "TaskBoardCardFooter",
5
+ setup(s) {
6
+ const e = n(i);
7
+ return (r, m) => (a(), l("div", null, [
8
+ c(r.$slots, "default", {
9
+ item: o(e).item.value,
10
+ isSelected: o(e).isSelected.value,
11
+ isDragging: o(e).isDragging.value,
12
+ column: o(e).column.value
13
+ })
14
+ ]));
15
+ }
16
+ });
17
+ export {
18
+ _
19
+ };
@@ -0,0 +1,19 @@
1
+ import { defineComponent as t, inject as a, openBlock as o, createElementBlock as l, renderSlot as c, unref as r } from "vue";
2
+ import { C as i } from "./TaskBoard.context-BCq7uauT.mjs";
3
+ const _ = /* @__PURE__ */ t({
4
+ __name: "TaskBoardCardHeader",
5
+ setup(s) {
6
+ const e = a(i);
7
+ return (n, m) => (o(), l("div", null, [
8
+ c(n.$slots, "default", {
9
+ item: r(e).item.value,
10
+ isSelected: r(e).isSelected.value,
11
+ isDragging: r(e).isDragging.value,
12
+ column: r(e).column.value
13
+ })
14
+ ]));
15
+ }
16
+ });
17
+ export {
18
+ _
19
+ };
@@ -0,0 +1,42 @@
1
+ import { defineComponent as d, inject as v, computed as t, onMounted as p, onBeforeUnmount as C, provide as b, openBlock as g, createElementBlock as _, mergeProps as f, unref as n, renderSlot as B } from "vue";
2
+ import { T as D, a as I } from "./TaskBoard.context-BCq7uauT.mjs";
3
+ const x = ["data-column-id", "aria-label", "aria-expanded"], k = /* @__PURE__ */ d({
4
+ inheritAttrs: !1,
5
+ __name: "TaskBoardColumn",
6
+ props: {
7
+ label: {},
8
+ value: {},
9
+ column: {}
10
+ },
11
+ setup(m) {
12
+ const e = m, l = v(D), a = t(() => e.column ? { ...e.column, id: e.value, label: e.label } : { id: e.value, label: e.label });
13
+ p(() => l.registerColumn(e.column ? { ...e.column, id: e.value, label: e.label } : { id: e.value, label: e.label })), C(() => l.unregisterColumn(e.value));
14
+ const u = t(() => l.itemCount(e.value)), s = t(() => l.isColumnCollapsed(e.value)), r = t(() => l.getItemsByColumn(e.value)), i = t(() => l.getVisibleItemsByColumn(e.value)), c = {
15
+ label: e.label,
16
+ value: e.value,
17
+ columnData: a.value,
18
+ itemCount: u,
19
+ isCollapsed: s,
20
+ toggleCollapse: () => l.onColumnToggle(a.value),
21
+ startDrag: (o) => l.onColumnHeaderPointerDown(a.value, o),
22
+ items: r,
23
+ visibleItems: i,
24
+ addItem: (o) => {
25
+ l.createItem(o ?? {}, a.value);
26
+ }
27
+ };
28
+ return b(I, c), (o, y) => (g(), _("div", f({
29
+ class: n(l).columnClasses(a.value),
30
+ "data-column-id": e.value,
31
+ style: n(l).getColumnStyle(a.value),
32
+ role: "list",
33
+ "aria-label": e.label + ", " + u.value + " items",
34
+ "aria-expanded": n(l).props.columnCollapsible ? !s.value : void 0
35
+ }, o.$attrs), [
36
+ B(o.$slots, "default")
37
+ ], 16, x));
38
+ }
39
+ });
40
+ export {
41
+ k as _
42
+ };
@@ -0,0 +1,10 @@
1
+ import { renderSlot as o } from "vue";
2
+ import { _ as e } from "./_plugin-vue_export-helper-CHgC5LLL.mjs";
3
+ const t = {};
4
+ function n(r, s) {
5
+ return o(r.$slots, "default");
6
+ }
7
+ const a = /* @__PURE__ */ e(t, [["render", n]]);
8
+ export {
9
+ a as T
10
+ };
@@ -0,0 +1,180 @@
1
+ import { defineComponent as ve, useSlots as pe, inject as W, ref as J, computed as i, onMounted as fe, onBeforeUnmount as me, watch as Q, nextTick as he, openBlock as s, createElementBlock as u, mergeProps as Ie, unref as r, withModifiers as Se, normalizeStyle as X, createCommentVNode as k, Fragment as f, createBlock as R, resolveDynamicComponent as z, normalizeClass as D, renderList as ye, createElementVNode as ke, renderSlot as Z, createTextVNode as xe } from "vue";
2
+ import { T as Te, a as Ce } from "./TaskBoard.context-BCq7uauT.mjs";
3
+ import { calculateVisibleRangeDynamic as De } from "@primeui/taskboard-core";
4
+ const be = ["data-task-id", "data-task-index", "onDblclick", "onPointerdown", "onContextmenu"], Ve = /* @__PURE__ */ ve({
5
+ inheritAttrs: !1,
6
+ __name: "TaskBoardColumnContent",
7
+ setup(He) {
8
+ const b = pe(), t = W(Te), m = W(Ce), c = J(), d = J(null), p = /* @__PURE__ */ new Map();
9
+ let h = null, x = null, K = /* @__PURE__ */ new Set(), H = null;
10
+ const g = i(() => t.virtualScroll.value);
11
+ fe(() => {
12
+ b.default && !t.cardSlotRenderer.value && t.registerCardSlot(b.default), b["drop-indicator"] && !t.dropIndicatorSlotRenderer.value && t.registerDropIndicatorSlot(b["drop-indicator"]), g.value && c.value && (x = new ResizeObserver((e) => {
13
+ (e[0]?.contentRect.height ?? 0) > 0 && (x?.disconnect(), x = null, V(0));
14
+ }), x.observe(c.value));
15
+ }), me(() => {
16
+ x?.disconnect(), x = null, h && (cancelAnimationFrame(h), h = null);
17
+ });
18
+ const M = i(() => m.columnData), w = i(() => b["drop-indicator"] ?? t.dropIndicatorSlotRenderer.value), F = i(() => t.isDragging.value && String(t.dragTargetColumnValue.value) === String(m.value)), P = i(() => t.dragTargetIndex.value ?? 0), $ = (e) => F.value && t.dragTargetIndex.value === e, B = (e) => {
19
+ const a = w.value;
20
+ return a ? () => a({ column: M.value, index: e }) : null;
21
+ }, v = i(() => m.visibleItems.value), G = () => t.props.virtualScrollItemHeight ?? 120, ee = () => t.props.virtualScrollBuffer ?? 3, T = (e) => String(t.getItemId(e)), q = () => {
22
+ if (p.size === 0) return G();
23
+ const a = Array.from(p.values()).reduce((l, n) => l + n, 0) / p.size;
24
+ return Number.isFinite(a) && a > 0 ? a : G();
25
+ }, E = (e) => p.get(T(e)) ?? q(), te = (e = v.value) => e.map((a) => p.get(T(a)) ?? 0), le = (e) => e.reduce((a, l) => a + E(l), 0), ae = () => {
26
+ const e = c.value;
27
+ return e ? Math.max(0, e.scrollHeight - e.clientHeight) : 0;
28
+ }, _ = (e, a, l) => {
29
+ const n = Math.max(0, le(a) - l), o = ae();
30
+ return Math.max(0, Math.min(e, Math.max(n, o)));
31
+ }, re = (e, a) => {
32
+ let l = 0;
33
+ for (let n = 0; n < Math.max(0, a); n++)
34
+ l += E(e[n]);
35
+ return l;
36
+ }, ne = (e, a) => {
37
+ let l = 0;
38
+ for (let n = 0; n < e.length; n++) {
39
+ const o = E(e[n]);
40
+ if (l + o > a)
41
+ return n;
42
+ l += o;
43
+ }
44
+ return Math.max(0, e.length - 1);
45
+ }, oe = (e, a) => e.length ? T(e[ne(e, a)]) : null, se = (e) => {
46
+ const a = new Set(e.map((l) => T(l)));
47
+ for (const l of p.keys())
48
+ a.has(l) || p.delete(l);
49
+ };
50
+ function V(e) {
51
+ if (!c.value) return;
52
+ const a = d.value?.startIndex ?? 0;
53
+ c.value.querySelectorAll("[data-task-id]").forEach((C, N) => {
54
+ const y = v.value[a + N], A = C.getAttribute("data-task-id") ?? (y ? T(y) : null);
55
+ A && p.set(String(A), C.offsetHeight);
56
+ });
57
+ const n = c.value.clientHeight, o = _(e, v.value, n);
58
+ Math.abs(c.value.scrollTop - o) > 1 && (c.value.scrollTop = o), d.value = De(o, n, v.value.length, te(), q(), ee());
59
+ }
60
+ function ue(e) {
61
+ if (t.markDragGeometryDirty(), !g.value) return;
62
+ const a = e.target;
63
+ h && cancelAnimationFrame(h), h = requestAnimationFrame(() => {
64
+ V(a.scrollTop), h = null;
65
+ });
66
+ }
67
+ Q(
68
+ () => t.isDragging.value,
69
+ (e) => {
70
+ g.value && e && H == null && (H = c.value?.scrollTop ?? null);
71
+ },
72
+ { flush: "sync" }
73
+ ), Q(v, (e, a = []) => {
74
+ if (!g.value) return;
75
+ const l = c.value, n = l?.scrollTop ?? 0, o = oe(a, n), C = new Set(t.getDragHiddenIds().map((y) => String(y))), N = t.isDragging.value || C.size > 0 || K.size > 0;
76
+ if (K = C, se(e), !l) {
77
+ d.value = null;
78
+ return;
79
+ }
80
+ he(() => {
81
+ if (N) {
82
+ const O = _(H ?? n, e, l.clientHeight);
83
+ Math.abs(l.scrollTop - O) > 1 && (l.scrollTop = O), V(O), t.markDragGeometryDirty(), !t.isDragging.value && C.size === 0 && (H = null);
84
+ return;
85
+ }
86
+ H = null;
87
+ const y = o == null ? -1 : e.findIndex((j) => T(j) === o), A = y >= 0 ? re(e, y) : n, Y = _(A, e, l.clientHeight);
88
+ l.scrollTop = Y, V(Y), t.markDragGeometryDirty();
89
+ });
90
+ });
91
+ const I = i(() => {
92
+ if (!g.value) return v.value;
93
+ if (!d.value) {
94
+ const e = t.props.virtualScrollItemHeight ?? 120, a = t.props.virtualScrollBuffer ?? 3, l = Math.ceil(600 / e) + a * 2;
95
+ return v.value.slice(0, Math.min(l, v.value.length));
96
+ }
97
+ return v.value.slice(d.value.startIndex, d.value.endIndex);
98
+ }), ie = i(() => S(0)), ce = i(() => S(I.value.length)), de = i(() => g.value && F.value && t.dragTargetIndex.value != null && I.value.length > 0 && t.dragTargetIndex.value < ie.value), ge = i(() => g.value && F.value && t.dragTargetIndex.value != null && I.value.length > 0 && t.dragTargetIndex.value > ce.value), S = (e) => !g.value || !d.value ? e : d.value.startIndex + e, L = i(() => d.value?.topSpacerHeight ?? 0), U = i(() => {
99
+ if (d.value) return d.value.bottomSpacerHeight;
100
+ if (!g.value) return 0;
101
+ const e = t.props.virtualScrollItemHeight ?? 120, a = t.props.virtualScrollBuffer ?? 3, l = Math.ceil(600 / e) + a * 2, n = Math.min(l, v.value.length), o = v.value.length - n;
102
+ return o > 0 ? o * e : 0;
103
+ });
104
+ return (e, a) => (s(), u("div", Ie({
105
+ ref_key: "bodyRef",
106
+ ref: c,
107
+ class: r(t).classes.columnBody
108
+ }, e.$attrs, {
109
+ onScroll: ue,
110
+ onClick: a[0] || (a[0] = Se((l) => r(m).isCollapsed.value ? r(m).toggleCollapse() : r(t).onBoardBackgroundClick(), ["self"]))
111
+ }), [
112
+ g.value && L.value > 0 ? (s(), u("div", {
113
+ key: 0,
114
+ style: X({ height: L.value + "px", flexShrink: "0" })
115
+ }, null, 4)) : k("", !0),
116
+ de.value ? (s(), u(f, { key: 1 }, [
117
+ w.value ? (s(), R(z(B(P.value)), { key: 0 })) : (s(), u("div", {
118
+ key: 1,
119
+ class: D(r(t).classes.dropIndicator)
120
+ }, null, 2))
121
+ ], 64)) : k("", !0),
122
+ I.value.length > 0 || r(t).isDragging.value && String(r(t).dragTargetColumnValue.value) === String(r(m).value) ? (s(), u(f, { key: 2 }, [
123
+ (s(!0), u(f, null, ye(I.value, (l, n) => (s(), u(f, {
124
+ key: r(t).getItemId(l)
125
+ }, [
126
+ $(S(n)) ? (s(), u(f, { key: 0 }, [
127
+ w.value ? (s(), R(z(B(S(n))), { key: 0 })) : (s(), u("div", {
128
+ key: 1,
129
+ class: D(r(t).classes.dropIndicator)
130
+ }, null, 2))
131
+ ], 64)) : k("", !0),
132
+ ke("div", {
133
+ "data-task-id": r(t).getItemId(l),
134
+ "data-task-index": S(n),
135
+ class: D(r(t).cardWrapperClasses(l)),
136
+ role: "listitem",
137
+ onDblclick: (o) => r(t).onCardDblClick(l, M.value, o),
138
+ onPointerdown: (o) => r(t).onCardPointerDown(l, M.value, o),
139
+ onContextmenu: (o) => r(t).onCardContextMenu(l, M.value, o)
140
+ }, [
141
+ Z(e.$slots, "default", {
142
+ item: l,
143
+ column: M.value,
144
+ isSelected: r(t).selectedItemIds.value.includes(r(t).getItemId(l)),
145
+ isDragging: r(t).isDragging.value && r(t).draggedItem.value && r(t).getItemId(r(t).draggedItem.value) === r(t).getItemId(l)
146
+ })
147
+ ], 42, be)
148
+ ], 64))), 128)),
149
+ $(S(I.value.length)) ? (s(), u(f, { key: 0 }, [
150
+ w.value ? (s(), R(z(B(S(I.value.length))), { key: 0 })) : (s(), u("div", {
151
+ key: 1,
152
+ class: D(r(t).classes.dropIndicator)
153
+ }, null, 2))
154
+ ], 64)) : k("", !0)
155
+ ], 64)) : (s(), u(f, { key: 3 }, [
156
+ r(t).isDragging.value && String(r(t).dragTargetColumnValue.value) === String(r(m).value) ? k("", !0) : (s(), u("div", {
157
+ key: 0,
158
+ class: D(r(t).classes.emptyColumn)
159
+ }, [
160
+ Z(e.$slots, "empty", {}, () => [
161
+ a[1] || (a[1] = xe("No items", -1))
162
+ ])
163
+ ], 2))
164
+ ], 64)),
165
+ ge.value ? (s(), u(f, { key: 4 }, [
166
+ w.value ? (s(), R(z(B(P.value)), { key: 0 })) : (s(), u("div", {
167
+ key: 1,
168
+ class: D(r(t).classes.dropIndicator)
169
+ }, null, 2))
170
+ ], 64)) : k("", !0),
171
+ g.value && U.value > 0 ? (s(), u("div", {
172
+ key: 5,
173
+ style: X({ height: U.value + "px", flexShrink: "0" })
174
+ }, null, 4)) : k("", !0)
175
+ ], 16));
176
+ }
177
+ });
178
+ export {
179
+ Ve as _
180
+ };
@@ -0,0 +1,18 @@
1
+ import { defineComponent as r, inject as s, openBlock as n, createElementBlock as m, normalizeClass as a, unref as l, renderSlot as p, createTextVNode as c } from "vue";
2
+ import { T as i } from "./TaskBoard.context-BCq7uauT.mjs";
3
+ const f = /* @__PURE__ */ r({
4
+ __name: "TaskBoardColumnEmpty",
5
+ setup(d) {
6
+ const o = s(i);
7
+ return (t, e) => (n(), m("div", {
8
+ class: a(l(o).classes.emptyColumn)
9
+ }, [
10
+ p(t.$slots, "default", {}, () => [
11
+ e[0] || (e[0] = c("No items", -1))
12
+ ])
13
+ ], 2));
14
+ }
15
+ });
16
+ export {
17
+ f as _
18
+ };
@@ -0,0 +1,19 @@
1
+ import { defineComponent as r, inject as t, openBlock as s, createElementBlock as c, normalizeClass as l, unref as o, renderSlot as m } from "vue";
2
+ import { T as u, a as _ } from "./TaskBoard.context-BCq7uauT.mjs";
3
+ const f = /* @__PURE__ */ r({
4
+ __name: "TaskBoardColumnFooter",
5
+ setup(i) {
6
+ const n = t(u), e = t(_);
7
+ return (a, p) => (s(), c("div", {
8
+ class: l(o(n).classes.columnFooter)
9
+ }, [
10
+ m(a.$slots, "default", {
11
+ column: o(e).columnData,
12
+ itemCount: o(e).itemCount.value
13
+ })
14
+ ], 2));
15
+ }
16
+ });
17
+ export {
18
+ f as _
19
+ };
@@ -0,0 +1,51 @@
1
+ import { defineComponent as p, useSlots as C, inject as i, onMounted as c, openBlock as s, createElementBlock as a, unref as e, normalizeClass as r, renderSlot as g, withModifiers as d, createElementVNode as f, createCommentVNode as k } from "vue";
2
+ import { T as v, a as w } from "./TaskBoard.context-BCq7uauT.mjs";
3
+ const b = ["aria-label"], H = /* @__PURE__ */ p({
4
+ __name: "TaskBoardColumnHeader",
5
+ setup(D) {
6
+ const n = C(), t = i(v), o = i(w);
7
+ return c(() => {
8
+ n.default && !t.columnHeaderSlotRenderer.value && t.registerColumnHeaderSlot(n.default);
9
+ }), (m, l) => (s(), a("div", {
10
+ class: r(e(t).classes.columnHeader),
11
+ onPointerdown: l[2] || (l[2] = (u) => e(t).onColumnHeaderPointerDown(e(o).columnData, u))
12
+ }, [
13
+ e(n).default ? g(m.$slots, "default", {
14
+ key: 0,
15
+ column: e(o).columnData,
16
+ itemCount: e(o).itemCount.value,
17
+ isCollapsed: e(o).isCollapsed.value,
18
+ toggleCollapse: e(o).toggleCollapse,
19
+ startDrag: e(o).startDrag
20
+ }) : e(o).isCollapsed.value ? (s(), a("button", {
21
+ key: 1,
22
+ type: "button",
23
+ class: r(e(t).classes.columnCollapseToggle),
24
+ "aria-label": `Expand ${e(o).label} column`,
25
+ onPointerdown: l[0] || (l[0] = d(() => {
26
+ }, ["stop"])),
27
+ onClick: l[1] || (l[1] = d((u) => e(o).toggleCollapse(), ["stop"]))
28
+ }, [
29
+ (s(), a("svg", {
30
+ class: r(e(t).classes.columnCollapseToggleIcon),
31
+ width: "12",
32
+ height: "12",
33
+ viewBox: "0 0 12 12",
34
+ fill: "none",
35
+ "aria-hidden": "true"
36
+ }, [...l[3] || (l[3] = [
37
+ f("path", {
38
+ d: "M4.5 2.5L8 6L4.5 9.5",
39
+ stroke: "currentColor",
40
+ "stroke-width": "1.5",
41
+ "stroke-linecap": "round",
42
+ "stroke-linejoin": "round"
43
+ }, null, -1)
44
+ ])], 2))
45
+ ], 42, b)) : k("", !0)
46
+ ], 34));
47
+ }
48
+ });
49
+ export {
50
+ H as _
51
+ };