@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.
- package/dist/TaskBoard.context.d.ts +21 -21
- package/dist/TaskBoard.parts.d.ts +20 -20
- package/dist/TaskBoard.vue.d.ts +37 -37
- package/dist/TaskBoardContent.vue.d.ts +2 -2
- package/dist/chunks/TaskBoard.context-BCq7uauT.mjs +29 -0
- package/dist/chunks/TaskBoard.vue_vue_type_script_setup_true_lang-Djmr6yoF.mjs +841 -0
- package/dist/chunks/TaskBoardCard.vue_vue_type_script_setup_true_lang-B1Ix7Gjf.mjs +34 -0
- package/dist/chunks/TaskBoardCardAdd.vue_vue_type_script_setup_true_lang-Dy4BuCa9.mjs +14 -0
- package/dist/chunks/TaskBoardCardContent.vue_vue_type_script_setup_true_lang-DNEmpvcn.mjs +19 -0
- package/dist/chunks/TaskBoardCardFooter.vue_vue_type_script_setup_true_lang-8FWnuxSl.mjs +19 -0
- package/dist/chunks/TaskBoardCardHeader.vue_vue_type_script_setup_true_lang-Dr-XJfaE.mjs +19 -0
- package/dist/chunks/TaskBoardColumn.vue_vue_type_script_setup_true_lang-D_AJ5j7c.mjs +42 -0
- package/dist/chunks/TaskBoardColumnAdd-C_JSN3pp.mjs +10 -0
- package/dist/chunks/TaskBoardColumnContent.vue_vue_type_script_setup_true_lang-DNRiWBN_.mjs +180 -0
- package/dist/chunks/TaskBoardColumnEmpty.vue_vue_type_script_setup_true_lang-D23AtNeX.mjs +18 -0
- package/dist/chunks/TaskBoardColumnFooter.vue_vue_type_script_setup_true_lang-BpKRnC6u.mjs +19 -0
- package/dist/chunks/TaskBoardColumnHeader.vue_vue_type_script_setup_true_lang-DMc9zcWV.mjs +51 -0
- package/dist/chunks/TaskBoardContent.vue_vue_type_script_setup_true_lang-lDUg6UrJ.mjs +292 -0
- package/dist/chunks/TaskBoardDragConfirm.vue_vue_type_script_setup_true_lang-B4OdxK5L.mjs +20 -0
- package/dist/chunks/TaskBoardDragPreview.vue_vue_type_script_setup_true_lang-B7F-FPY1.mjs +40 -0
- package/dist/chunks/TaskBoardDropIndicator-BUMSBiQC.mjs +14 -0
- package/dist/chunks/TaskBoardHeader.vue_vue_type_script_setup_true_lang-CwtaadkE.mjs +21 -0
- package/dist/chunks/TaskBoardLoading-CrgtYPP-.mjs +10 -0
- package/dist/chunks/TaskBoardSwimlaneColumnHeader.vue_vue_type_script_setup_true_lang-BVpen7mj.mjs +23 -0
- package/dist/chunks/TaskBoardSwimlaneHeader.vue_vue_type_script_setup_true_lang-D6NdS4hP.mjs +32 -0
- package/dist/chunks/_plugin-vue_export-helper-CHgC5LLL.mjs +9 -0
- package/dist/chunks/useHistory-C-Ud-WgS.mjs +510 -0
- package/dist/chunks/useTaskBoardDrag-BvBISSNb.mjs +58 -0
- package/dist/components/card/TaskBoardCard.vue.d.ts +3 -3
- package/dist/components/card/TaskBoardCardContent.vue.d.ts +1 -1
- package/dist/components/card/TaskBoardCardFooter.vue.d.ts +1 -1
- package/dist/components/card/TaskBoardCardHeader.vue.d.ts +1 -1
- package/dist/components/column/TaskBoardColumn.vue.d.ts +2 -2
- package/dist/components/column/TaskBoardColumnContent.vue.d.ts +1 -1
- package/dist/components/column/TaskBoardColumnFooter.vue.d.ts +1 -1
- package/dist/components/column/TaskBoardColumnHeader.vue.d.ts +1 -1
- package/dist/components/overlay/TaskBoardDragConfirm.vue.d.ts +2 -2
- package/dist/components/swimlane/TaskBoardSwimlaneColumnHeader.vue.d.ts +3 -3
- package/dist/components.d.ts +20 -0
- package/dist/components.mjs +42 -0
- package/dist/composables/index.mjs +6 -5
- package/dist/composables/useCardDrag.d.ts +2 -2
- package/dist/composables/useColumnDrag.d.ts +5 -5
- package/dist/composables/useControllerInit.d.ts +3 -3
- package/dist/composables/useKeyboardHandling.d.ts +2 -2
- package/dist/index.d.ts +20 -20
- package/dist/index.mjs +77 -1650
- package/dist/parts/card/index.d.ts +1 -0
- package/dist/parts/card/index.mjs +4 -0
- package/dist/parts/cardadd/index.d.ts +1 -0
- package/dist/parts/cardadd/index.mjs +4 -0
- package/dist/parts/cardcontent/index.d.ts +1 -0
- package/dist/parts/cardcontent/index.mjs +4 -0
- package/dist/parts/cardfooter/index.d.ts +1 -0
- package/dist/parts/cardfooter/index.mjs +4 -0
- package/dist/parts/cardheader/index.d.ts +1 -0
- package/dist/parts/cardheader/index.mjs +4 -0
- package/dist/parts/column/index.d.ts +1 -0
- package/dist/parts/column/index.mjs +4 -0
- package/dist/parts/columnadd/index.d.ts +1 -0
- package/dist/parts/columnadd/index.mjs +4 -0
- package/dist/parts/columncontent/index.d.ts +1 -0
- package/dist/parts/columncontent/index.mjs +4 -0
- package/dist/parts/columnempty/index.d.ts +1 -0
- package/dist/parts/columnempty/index.mjs +4 -0
- package/dist/parts/columnfooter/index.d.ts +1 -0
- package/dist/parts/columnfooter/index.mjs +4 -0
- package/dist/parts/columnheader/index.d.ts +1 -0
- package/dist/parts/columnheader/index.mjs +4 -0
- package/dist/parts/content/index.d.ts +1 -0
- package/dist/parts/content/index.mjs +4 -0
- package/dist/parts/dragconfirm/index.d.ts +1 -0
- package/dist/parts/dragconfirm/index.mjs +4 -0
- package/dist/parts/dragpreview/index.d.ts +1 -0
- package/dist/parts/dragpreview/index.mjs +4 -0
- package/dist/parts/dropindicator/index.d.ts +1 -0
- package/dist/parts/dropindicator/index.mjs +4 -0
- package/dist/parts/header/index.d.ts +1 -0
- package/dist/parts/header/index.mjs +4 -0
- package/dist/parts/loading/index.d.ts +1 -0
- package/dist/parts/loading/index.mjs +4 -0
- package/dist/parts/root/index.d.ts +1 -0
- package/dist/parts/root/index.mjs +4 -0
- package/dist/parts/swimlanecolumnheader/index.d.ts +1 -0
- package/dist/parts/swimlanecolumnheader/index.mjs +4 -0
- package/dist/parts/swimlaneheader/index.d.ts +1 -0
- package/dist/parts/swimlaneheader/index.mjs +4 -0
- package/package.json +22 -12
- package/dist/TaskBoard.context.d.mts +0 -235
- package/dist/TaskBoard.parts.d.mts +0 -20
- package/dist/TaskBoard.vue.d.mts +0 -291
- package/dist/TaskBoardContent.vue.d.mts +0 -27
- package/dist/TaskBoardHeader.vue.d.mts +0 -18
- package/dist/TaskBoardLoading.vue.d.mts +0 -13
- package/dist/chunks/useTaskBoardDrag-ByZvmcfw.mjs +0 -590
- package/dist/components/card/TaskBoardCard.vue.d.mts +0 -23
- package/dist/components/card/TaskBoardCardAdd.vue.d.mts +0 -15
- package/dist/components/card/TaskBoardCardContent.vue.d.mts +0 -18
- package/dist/components/card/TaskBoardCardFooter.vue.d.mts +0 -18
- package/dist/components/card/TaskBoardCardHeader.vue.d.mts +0 -18
- package/dist/components/column/TaskBoardColumn.vue.d.mts +0 -19
- package/dist/components/column/TaskBoardColumnAdd.vue.d.mts +0 -13
- package/dist/components/column/TaskBoardColumnContent.vue.d.mts +0 -20
- package/dist/components/column/TaskBoardColumnEmpty.vue.d.mts +0 -13
- package/dist/components/column/TaskBoardColumnFooter.vue.d.mts +0 -16
- package/dist/components/column/TaskBoardColumnHeader.vue.d.mts +0 -19
- package/dist/components/overlay/TaskBoardDragConfirm.vue.d.mts +0 -20
- package/dist/components/overlay/TaskBoardDragPreview.vue.d.mts +0 -16
- package/dist/components/overlay/TaskBoardDropIndicator.d.mts +0 -2
- package/dist/components/swimlane/TaskBoardSwimlaneColumnHeader.vue.d.mts +0 -20
- package/dist/components/swimlane/TaskBoardSwimlaneHeader.vue.d.mts +0 -22
- package/dist/composables/index.d.mts +0 -9
- package/dist/composables/useCardDrag.d.mts +0 -47
- package/dist/composables/useCardDragGeometry.d.mts +0 -21
- package/dist/composables/useColumnDrag.d.mts +0 -24
- package/dist/composables/useControllerInit.d.mts +0 -64
- package/dist/composables/useHistory.d.mts +0 -15
- package/dist/composables/useKeyboardHandling.d.mts +0 -37
- package/dist/composables/useTaskBoardAccess.d.mts +0 -9
- package/dist/composables/useTaskBoardDrag.d.mts +0 -14
- package/dist/composables/useTaskBoardHistory.d.mts +0 -6
- package/dist/composables/useTaskBoardPrintRuntime.d.mts +0 -7
- package/dist/composables/useTaskBoardSelection.d.mts +0 -11
- package/dist/composables/useTaskBoardWorkflow.d.mts +0 -8
- package/dist/index.d.mts +0 -29
- 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,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
|
+
};
|