@expcat/tigercat-vue 1.0.0 → 1.0.7
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/{chunk-A64AWAOW.mjs → chunk-3ICMBQPM.mjs} +2 -0
- package/dist/{chunk-4KCCUIGO.mjs → chunk-3PQ2I5IQ.mjs} +1 -1
- package/dist/{chunk-MI5EG5QX.js → chunk-4DJ2HAYO.js} +2 -2
- package/dist/{chunk-5DXIYS7U.js → chunk-5G5Q3TTH.js} +1 -1
- package/dist/{chunk-ESTA5C5P.js → chunk-D2I2NNYI.js} +1 -1
- package/dist/{chunk-LJJ3VTR3.mjs → chunk-EZ6GXQMP.mjs} +1 -1
- package/dist/{chunk-XYIAHZNM.mjs → chunk-GTSS7RAT.mjs} +1 -1
- package/dist/{chunk-XA5QMUZX.mjs → chunk-J7VTGSHX.mjs} +78 -17
- package/dist/{chunk-SI3JIHH4.js → chunk-KI35GUL5.js} +1 -1
- package/dist/{chunk-DC5J25FH.mjs → chunk-NMGH5YTV.mjs} +1 -1
- package/dist/{chunk-BDMWFNTC.js → chunk-O2Q4UYDA.js} +77 -16
- package/dist/chunk-PLGYRHPX.mjs +87 -0
- package/dist/{chunk-PUALBK3Y.js → chunk-S2PMAXBQ.js} +2 -0
- package/dist/{chunk-C76CIM26.mjs → chunk-SAMKKXAW.mjs} +1 -1
- package/dist/{chunk-4F5ABXXM.js → chunk-WB6JGQWN.js} +1 -1
- package/dist/chunk-WBY2ILFK.js +90 -0
- package/dist/{chunk-3YWYAQR6.js → chunk-XGJWUZWS.js} +10 -9
- package/dist/{chunk-OEHCRIVT.mjs → chunk-YYRJA6VQ.mjs} +9 -8
- package/dist/components/CropUpload.js +3 -3
- package/dist/components/CropUpload.mjs +1 -1
- package/dist/components/DataTableWithToolbar.d.mts +14 -14
- package/dist/components/DataTableWithToolbar.d.ts +14 -14
- package/dist/components/DataTableWithToolbar.js +4 -4
- package/dist/components/DataTableWithToolbar.mjs +2 -2
- package/dist/components/Dropdown.js +4 -4
- package/dist/components/Dropdown.mjs +1 -1
- package/dist/components/DropdownItem.js +4 -4
- package/dist/components/DropdownItem.mjs +2 -2
- package/dist/components/HeatmapChart.js +3 -3
- package/dist/components/HeatmapChart.mjs +1 -1
- package/dist/components/Kanban.d.mts +2 -2
- package/dist/components/Kanban.d.ts +2 -2
- package/dist/components/Kanban.js +4 -3
- package/dist/components/Kanban.mjs +2 -1
- package/dist/components/NotificationCenter.js +3 -3
- package/dist/components/NotificationCenter.mjs +1 -1
- package/dist/components/Table.js +3 -3
- package/dist/components/Table.mjs +1 -1
- package/dist/components/TaskBoard.d.mts +52 -1
- package/dist/components/TaskBoard.d.ts +52 -1
- package/dist/components/TaskBoard.js +3 -3
- package/dist/components/TaskBoard.mjs +1 -1
- package/dist/components/Transfer.js +3 -3
- package/dist/components/Transfer.mjs +1 -1
- package/dist/index.js +23 -23
- package/dist/index.mjs +10 -10
- package/package.json +2 -2
- package/dist/chunk-33C5E3AQ.mjs +0 -328
- package/dist/chunk-CXJUEG75.js +0 -331
- /package/dist/{chunk-HTOCKV2N.mjs → chunk-HTG6ISVH.mjs} +0 -0
- /package/dist/{chunk-UG6XPJ2N.js → chunk-TT5LWQIZ.js} +0 -0
|
@@ -267,8 +267,10 @@ var Dropdown = defineComponent({
|
|
|
267
267
|
},
|
|
268
268
|
[
|
|
269
269
|
h(
|
|
270
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
270
271
|
menuNode.type,
|
|
271
272
|
{ ...menuNode.props || {}, id: menuId },
|
|
273
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
272
274
|
menuNode.children
|
|
273
275
|
)
|
|
274
276
|
]
|
|
@@ -167,7 +167,7 @@ var CropUpload = defineComponent({
|
|
|
167
167
|
src: imageSrc.value,
|
|
168
168
|
...props.cropperProps
|
|
169
169
|
}) : null,
|
|
170
|
-
footer: ({ cancel }) => h("div", { class: modalFooterClasses }, [
|
|
170
|
+
footer: ({ cancel: _cancel }) => h("div", { class: modalFooterClasses }, [
|
|
171
171
|
h(Button, { variant: "secondary", onClick: handleCancel }, { default: () => "\u53D6\u6D88" }),
|
|
172
172
|
h(
|
|
173
173
|
Button,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkS2PMAXBQ_js = require('./chunk-S2PMAXBQ.js');
|
|
4
4
|
var vue = require('vue');
|
|
5
5
|
var tigercatCore = require('@expcat/tigercat-core');
|
|
6
6
|
|
|
@@ -48,7 +48,7 @@ var DropdownItem = vue.defineComponent({
|
|
|
48
48
|
const attrsRecord = attrs;
|
|
49
49
|
const attrsClass = attrsRecord.class;
|
|
50
50
|
const attrsStyle = attrsRecord.style;
|
|
51
|
-
const context = vue.inject(
|
|
51
|
+
const context = vue.inject(chunkS2PMAXBQ_js.DropdownContextKey, null);
|
|
52
52
|
const handleClick = (event) => {
|
|
53
53
|
if (props.disabled) {
|
|
54
54
|
event.preventDefault();
|
|
@@ -274,7 +274,7 @@ var NotificationCenter = vue.defineComponent({
|
|
|
274
274
|
)
|
|
275
275
|
);
|
|
276
276
|
};
|
|
277
|
-
const renderListItem = (item,
|
|
277
|
+
const renderListItem = (item, _index) => {
|
|
278
278
|
const isRead = Boolean(item.read);
|
|
279
279
|
const timeText = item.time ? tigercatCore.formatActivityTime(item.time) : "";
|
|
280
280
|
return vue.h(
|
|
@@ -169,7 +169,7 @@ var CropUpload = vue.defineComponent({
|
|
|
169
169
|
src: imageSrc.value,
|
|
170
170
|
...props.cropperProps
|
|
171
171
|
}) : null,
|
|
172
|
-
footer: ({ cancel }) => vue.h("div", { class: tigercatCore.modalFooterClasses }, [
|
|
172
|
+
footer: ({ cancel: _cancel }) => vue.h("div", { class: tigercatCore.modalFooterClasses }, [
|
|
173
173
|
vue.h(chunkU7CCKZAG_js.Button, { variant: "secondary", onClick: handleCancel }, { default: () => "\u53D6\u6D88" }),
|
|
174
174
|
vue.h(
|
|
175
175
|
chunkU7CCKZAG_js.Button,
|
|
@@ -272,7 +272,7 @@ var NotificationCenter = defineComponent({
|
|
|
272
272
|
)
|
|
273
273
|
);
|
|
274
274
|
};
|
|
275
|
-
const renderListItem = (item,
|
|
275
|
+
const renderListItem = (item, _index) => {
|
|
276
276
|
const isRead = Boolean(item.read);
|
|
277
277
|
const timeText = item.time ? formatActivityTime(item.time) : "";
|
|
278
278
|
return h(
|
|
@@ -46,7 +46,7 @@ var HeatmapChart = defineComponent({
|
|
|
46
46
|
handleMouseMove,
|
|
47
47
|
handleMouseLeave,
|
|
48
48
|
handleClick,
|
|
49
|
-
wrapperClasses
|
|
49
|
+
wrapperClasses: _wrapperClasses
|
|
50
50
|
} = useChartInteraction({
|
|
51
51
|
hoverable: computed(() => props.hoverable),
|
|
52
52
|
hoveredIndexProp: () => props.hoveredIndex,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useTigerConfig } from './chunk-XP5M2GK7.mjs';
|
|
2
2
|
import { defineComponent, computed, ref, watch, onMounted, onBeforeUnmount, h } from 'vue';
|
|
3
|
-
import { mergeTigerLocale, getTaskBoardLabels, classNames, taskBoardBaseClasses, coerceClassValue, mergeStyleValues, resolveLocaleText, createTouchDragTracker, isWipExceeded, taskBoardColumnClasses, taskBoardColumnDropTargetClasses, taskBoardColumnDraggingClasses, taskBoardWipExceededClasses, taskBoardColumnHeaderClasses, taskBoardDropIndicatorClasses, taskBoardEmptyClasses, taskBoardColumnBodyClasses, taskBoardAddCardClasses, getColumnDropIndex, setDragData, createColumnDragData, taskBoardCardClasses, taskBoardCardDraggingClasses, parseDragData, getDropIndex, reorderColumns, findColumnFromPoint, createCardDragData, moveCard } from '@expcat/tigercat-core';
|
|
3
|
+
import { mergeTigerLocale, getTaskBoardLabels, filterColumns, classNames, taskBoardBaseClasses, coerceClassValue, mergeStyleValues, kanbanAddColumnClasses, resolveLocaleText, createTouchDragTracker, isWipExceeded, getColumnCardCount, taskBoardColumnClasses, taskBoardColumnDropTargetClasses, taskBoardColumnDraggingClasses, taskBoardWipExceededClasses, kanbanCardCountClasses, taskBoardColumnHeaderClasses, taskBoardDropIndicatorClasses, taskBoardEmptyClasses, taskBoardColumnBodyClasses, taskBoardAddCardClasses, getColumnDropIndex, setDragData, createColumnDragData, taskBoardCardClasses, taskBoardCardDraggingClasses, parseDragData, getDropIndex, reorderColumns, findColumnFromPoint, createCardDragData, moveCard } from '@expcat/tigercat-core';
|
|
4
4
|
|
|
5
5
|
var TaskBoard = defineComponent({
|
|
6
6
|
name: "TigerTaskBoard",
|
|
@@ -38,6 +38,14 @@ var TaskBoard = defineComponent({
|
|
|
38
38
|
type: Function,
|
|
39
39
|
default: void 0
|
|
40
40
|
},
|
|
41
|
+
filterText: { type: String, default: "" },
|
|
42
|
+
hiddenColumns: {
|
|
43
|
+
type: Array,
|
|
44
|
+
default: () => []
|
|
45
|
+
},
|
|
46
|
+
showCardCount: { type: Boolean, default: false },
|
|
47
|
+
allowAddCard: { type: Boolean, default: false },
|
|
48
|
+
allowAddColumn: { type: Boolean, default: false },
|
|
41
49
|
locale: {
|
|
42
50
|
type: Object,
|
|
43
51
|
default: void 0
|
|
@@ -51,7 +59,7 @@ var TaskBoard = defineComponent({
|
|
|
51
59
|
default: void 0
|
|
52
60
|
}
|
|
53
61
|
},
|
|
54
|
-
emits: ["card-move", "column-move", "card-add", "update:columns"],
|
|
62
|
+
emits: ["card-move", "column-move", "card-add", "column-add", "update:columns"],
|
|
55
63
|
setup(props, { slots, attrs, emit }) {
|
|
56
64
|
const config = useTigerConfig();
|
|
57
65
|
const mergedLocale = computed(() => mergeTigerLocale(config.value.locale, props.locale));
|
|
@@ -72,6 +80,13 @@ var TaskBoard = defineComponent({
|
|
|
72
80
|
}
|
|
73
81
|
);
|
|
74
82
|
const currentColumns = computed(() => props.columns ?? innerColumns.value);
|
|
83
|
+
const visibleColumns = computed(() => {
|
|
84
|
+
const cols = currentColumns.value;
|
|
85
|
+
if (!props.filterText && (!props.hiddenColumns || props.hiddenColumns.length === 0)) {
|
|
86
|
+
return cols;
|
|
87
|
+
}
|
|
88
|
+
return filterColumns(cols, props.filterText || "", props.hiddenColumns);
|
|
89
|
+
});
|
|
75
90
|
const updateColumns = (next) => {
|
|
76
91
|
innerColumns.value = next;
|
|
77
92
|
emit("update:columns", next);
|
|
@@ -321,6 +336,7 @@ var TaskBoard = defineComponent({
|
|
|
321
336
|
const isDropTarget = dragState.value?.type === "card" && dropTargetColumnId.value === column.id;
|
|
322
337
|
const isColDragging = dragState.value?.type === "column" && dragState.value.id === column.id;
|
|
323
338
|
const wipOver = isWipExceeded(column);
|
|
339
|
+
const cardCount = props.showCardCount ? getColumnCardCount(column) : null;
|
|
324
340
|
const colClasses = classNames(
|
|
325
341
|
taskBoardColumnClasses,
|
|
326
342
|
isDropTarget && taskBoardColumnDropTargetClasses,
|
|
@@ -329,7 +345,8 @@ var TaskBoard = defineComponent({
|
|
|
329
345
|
const headerContent = slots["column-header"] ? slots["column-header"]({ column }) : [
|
|
330
346
|
h("span", { class: wipOver ? taskBoardWipExceededClasses : void 0 }, [
|
|
331
347
|
column.title,
|
|
332
|
-
|
|
348
|
+
// When showCardCount is enabled, use the compact badge style
|
|
349
|
+
props.showCardCount && cardCount ? null : column.wipLimit != null ? h(
|
|
333
350
|
"span",
|
|
334
351
|
{
|
|
335
352
|
class: "ml-2 text-xs font-normal opacity-70",
|
|
@@ -344,6 +361,17 @@ var TaskBoard = defineComponent({
|
|
|
344
361
|
String(column.cards.length)
|
|
345
362
|
)
|
|
346
363
|
]),
|
|
364
|
+
// Card count badge (Kanban-style)
|
|
365
|
+
props.showCardCount && cardCount ? h(
|
|
366
|
+
"span",
|
|
367
|
+
{
|
|
368
|
+
class: classNames(
|
|
369
|
+
kanbanCardCountClasses,
|
|
370
|
+
wipOver && taskBoardWipExceededClasses
|
|
371
|
+
)
|
|
372
|
+
},
|
|
373
|
+
cardCount.limit ? `${cardCount.count}/${cardCount.limit}` : `${cardCount.count}`
|
|
374
|
+
) : null,
|
|
347
375
|
column.description ? h(
|
|
348
376
|
"span",
|
|
349
377
|
{
|
|
@@ -394,15 +422,24 @@ var TaskBoard = defineComponent({
|
|
|
394
422
|
},
|
|
395
423
|
cards
|
|
396
424
|
);
|
|
397
|
-
const
|
|
425
|
+
const showAddCard = props.allowAddCard || props.onCardAdd;
|
|
426
|
+
const footer = slots["column-footer"] ? slots["column-footer"]({ column }) : showAddCard ? h(
|
|
398
427
|
"div",
|
|
399
428
|
{
|
|
400
429
|
class: classNames(
|
|
401
430
|
"border-t border-[var(--tiger-border,#e5e7eb)]",
|
|
402
431
|
taskBoardAddCardClasses
|
|
403
432
|
),
|
|
433
|
+
role: "button",
|
|
434
|
+
tabindex: 0,
|
|
404
435
|
onClick: () => {
|
|
405
436
|
emit("card-add", column.id);
|
|
437
|
+
},
|
|
438
|
+
onKeydown: (e) => {
|
|
439
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
440
|
+
e.preventDefault();
|
|
441
|
+
emit("card-add", column.id);
|
|
442
|
+
}
|
|
406
443
|
}
|
|
407
444
|
},
|
|
408
445
|
[h("span", null, "+"), h("span", null, resolveLocaleText(labels.value.addCardText))]
|
|
@@ -420,19 +457,43 @@ var TaskBoard = defineComponent({
|
|
|
420
457
|
[header, body, footer]
|
|
421
458
|
);
|
|
422
459
|
};
|
|
423
|
-
return () =>
|
|
424
|
-
|
|
425
|
-
{
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
460
|
+
return () => {
|
|
461
|
+
const children = visibleColumns.value.map((col, i) => renderColumnNode(col, i));
|
|
462
|
+
if (props.allowAddColumn) {
|
|
463
|
+
children.push(
|
|
464
|
+
h(
|
|
465
|
+
"div",
|
|
466
|
+
{
|
|
467
|
+
key: "__add-column",
|
|
468
|
+
class: kanbanAddColumnClasses,
|
|
469
|
+
role: "button",
|
|
470
|
+
tabindex: 0,
|
|
471
|
+
onClick: () => emit("column-add"),
|
|
472
|
+
onKeydown: (e) => {
|
|
473
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
474
|
+
e.preventDefault();
|
|
475
|
+
emit("column-add");
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
},
|
|
479
|
+
"+ " + resolveLocaleText(labels.value.addCardText)
|
|
480
|
+
)
|
|
481
|
+
);
|
|
482
|
+
}
|
|
483
|
+
return h(
|
|
484
|
+
"div",
|
|
485
|
+
{
|
|
486
|
+
...attrs,
|
|
487
|
+
ref: boardRef,
|
|
488
|
+
class: wrapperClasses.value,
|
|
489
|
+
style: wrapperStyle.value,
|
|
490
|
+
role: "region",
|
|
491
|
+
"aria-label": resolveLocaleText(labels.value.boardAriaLabel),
|
|
492
|
+
"data-tiger-task-board": ""
|
|
493
|
+
},
|
|
494
|
+
children
|
|
495
|
+
);
|
|
496
|
+
};
|
|
436
497
|
}
|
|
437
498
|
});
|
|
438
499
|
var TaskBoard_default = TaskBoard;
|
|
@@ -48,7 +48,7 @@ var HeatmapChart = vue.defineComponent({
|
|
|
48
48
|
handleMouseMove,
|
|
49
49
|
handleMouseLeave,
|
|
50
50
|
handleClick,
|
|
51
|
-
wrapperClasses
|
|
51
|
+
wrapperClasses: _wrapperClasses
|
|
52
52
|
} = chunkFLAJKB2O_js.useChartInteraction({
|
|
53
53
|
hoverable: vue.computed(() => props.hoverable),
|
|
54
54
|
hoveredIndexProp: () => props.hoveredIndex,
|
|
@@ -66,7 +66,7 @@ var Transfer = defineComponent({
|
|
|
66
66
|
const targetSelectedKeys = ref(/* @__PURE__ */ new Set());
|
|
67
67
|
const sourceSearch = ref("");
|
|
68
68
|
const targetSearch = ref("");
|
|
69
|
-
const { sourceItems, targetItems } = computed(
|
|
69
|
+
const { sourceItems: _sourceItems, targetItems: _targetItems } = computed(
|
|
70
70
|
() => splitTransferData(props.dataSource, props.modelValue)
|
|
71
71
|
).value;
|
|
72
72
|
const computedData = computed(() => splitTransferData(props.dataSource, props.modelValue));
|
|
@@ -40,6 +40,14 @@ var TaskBoard = vue.defineComponent({
|
|
|
40
40
|
type: Function,
|
|
41
41
|
default: void 0
|
|
42
42
|
},
|
|
43
|
+
filterText: { type: String, default: "" },
|
|
44
|
+
hiddenColumns: {
|
|
45
|
+
type: Array,
|
|
46
|
+
default: () => []
|
|
47
|
+
},
|
|
48
|
+
showCardCount: { type: Boolean, default: false },
|
|
49
|
+
allowAddCard: { type: Boolean, default: false },
|
|
50
|
+
allowAddColumn: { type: Boolean, default: false },
|
|
43
51
|
locale: {
|
|
44
52
|
type: Object,
|
|
45
53
|
default: void 0
|
|
@@ -53,7 +61,7 @@ var TaskBoard = vue.defineComponent({
|
|
|
53
61
|
default: void 0
|
|
54
62
|
}
|
|
55
63
|
},
|
|
56
|
-
emits: ["card-move", "column-move", "card-add", "update:columns"],
|
|
64
|
+
emits: ["card-move", "column-move", "card-add", "column-add", "update:columns"],
|
|
57
65
|
setup(props, { slots, attrs, emit }) {
|
|
58
66
|
const config = chunkV4PBWEAU_js.useTigerConfig();
|
|
59
67
|
const mergedLocale = vue.computed(() => tigercatCore.mergeTigerLocale(config.value.locale, props.locale));
|
|
@@ -74,6 +82,13 @@ var TaskBoard = vue.defineComponent({
|
|
|
74
82
|
}
|
|
75
83
|
);
|
|
76
84
|
const currentColumns = vue.computed(() => props.columns ?? innerColumns.value);
|
|
85
|
+
const visibleColumns = vue.computed(() => {
|
|
86
|
+
const cols = currentColumns.value;
|
|
87
|
+
if (!props.filterText && (!props.hiddenColumns || props.hiddenColumns.length === 0)) {
|
|
88
|
+
return cols;
|
|
89
|
+
}
|
|
90
|
+
return tigercatCore.filterColumns(cols, props.filterText || "", props.hiddenColumns);
|
|
91
|
+
});
|
|
77
92
|
const updateColumns = (next) => {
|
|
78
93
|
innerColumns.value = next;
|
|
79
94
|
emit("update:columns", next);
|
|
@@ -323,6 +338,7 @@ var TaskBoard = vue.defineComponent({
|
|
|
323
338
|
const isDropTarget = dragState.value?.type === "card" && dropTargetColumnId.value === column.id;
|
|
324
339
|
const isColDragging = dragState.value?.type === "column" && dragState.value.id === column.id;
|
|
325
340
|
const wipOver = tigercatCore.isWipExceeded(column);
|
|
341
|
+
const cardCount = props.showCardCount ? tigercatCore.getColumnCardCount(column) : null;
|
|
326
342
|
const colClasses = tigercatCore.classNames(
|
|
327
343
|
tigercatCore.taskBoardColumnClasses,
|
|
328
344
|
isDropTarget && tigercatCore.taskBoardColumnDropTargetClasses,
|
|
@@ -331,7 +347,8 @@ var TaskBoard = vue.defineComponent({
|
|
|
331
347
|
const headerContent = slots["column-header"] ? slots["column-header"]({ column }) : [
|
|
332
348
|
vue.h("span", { class: wipOver ? tigercatCore.taskBoardWipExceededClasses : void 0 }, [
|
|
333
349
|
column.title,
|
|
334
|
-
|
|
350
|
+
// When showCardCount is enabled, use the compact badge style
|
|
351
|
+
props.showCardCount && cardCount ? null : column.wipLimit != null ? vue.h(
|
|
335
352
|
"span",
|
|
336
353
|
{
|
|
337
354
|
class: "ml-2 text-xs font-normal opacity-70",
|
|
@@ -346,6 +363,17 @@ var TaskBoard = vue.defineComponent({
|
|
|
346
363
|
String(column.cards.length)
|
|
347
364
|
)
|
|
348
365
|
]),
|
|
366
|
+
// Card count badge (Kanban-style)
|
|
367
|
+
props.showCardCount && cardCount ? vue.h(
|
|
368
|
+
"span",
|
|
369
|
+
{
|
|
370
|
+
class: tigercatCore.classNames(
|
|
371
|
+
tigercatCore.kanbanCardCountClasses,
|
|
372
|
+
wipOver && tigercatCore.taskBoardWipExceededClasses
|
|
373
|
+
)
|
|
374
|
+
},
|
|
375
|
+
cardCount.limit ? `${cardCount.count}/${cardCount.limit}` : `${cardCount.count}`
|
|
376
|
+
) : null,
|
|
349
377
|
column.description ? vue.h(
|
|
350
378
|
"span",
|
|
351
379
|
{
|
|
@@ -396,15 +424,24 @@ var TaskBoard = vue.defineComponent({
|
|
|
396
424
|
},
|
|
397
425
|
cards
|
|
398
426
|
);
|
|
399
|
-
const
|
|
427
|
+
const showAddCard = props.allowAddCard || props.onCardAdd;
|
|
428
|
+
const footer = slots["column-footer"] ? slots["column-footer"]({ column }) : showAddCard ? vue.h(
|
|
400
429
|
"div",
|
|
401
430
|
{
|
|
402
431
|
class: tigercatCore.classNames(
|
|
403
432
|
"border-t border-[var(--tiger-border,#e5e7eb)]",
|
|
404
433
|
tigercatCore.taskBoardAddCardClasses
|
|
405
434
|
),
|
|
435
|
+
role: "button",
|
|
436
|
+
tabindex: 0,
|
|
406
437
|
onClick: () => {
|
|
407
438
|
emit("card-add", column.id);
|
|
439
|
+
},
|
|
440
|
+
onKeydown: (e) => {
|
|
441
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
442
|
+
e.preventDefault();
|
|
443
|
+
emit("card-add", column.id);
|
|
444
|
+
}
|
|
408
445
|
}
|
|
409
446
|
},
|
|
410
447
|
[vue.h("span", null, "+"), vue.h("span", null, tigercatCore.resolveLocaleText(labels.value.addCardText))]
|
|
@@ -422,19 +459,43 @@ var TaskBoard = vue.defineComponent({
|
|
|
422
459
|
[header, body, footer]
|
|
423
460
|
);
|
|
424
461
|
};
|
|
425
|
-
return () =>
|
|
426
|
-
|
|
427
|
-
{
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
462
|
+
return () => {
|
|
463
|
+
const children = visibleColumns.value.map((col, i) => renderColumnNode(col, i));
|
|
464
|
+
if (props.allowAddColumn) {
|
|
465
|
+
children.push(
|
|
466
|
+
vue.h(
|
|
467
|
+
"div",
|
|
468
|
+
{
|
|
469
|
+
key: "__add-column",
|
|
470
|
+
class: tigercatCore.kanbanAddColumnClasses,
|
|
471
|
+
role: "button",
|
|
472
|
+
tabindex: 0,
|
|
473
|
+
onClick: () => emit("column-add"),
|
|
474
|
+
onKeydown: (e) => {
|
|
475
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
476
|
+
e.preventDefault();
|
|
477
|
+
emit("column-add");
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
},
|
|
481
|
+
"+ " + tigercatCore.resolveLocaleText(labels.value.addCardText)
|
|
482
|
+
)
|
|
483
|
+
);
|
|
484
|
+
}
|
|
485
|
+
return vue.h(
|
|
486
|
+
"div",
|
|
487
|
+
{
|
|
488
|
+
...attrs,
|
|
489
|
+
ref: boardRef,
|
|
490
|
+
class: wrapperClasses.value,
|
|
491
|
+
style: wrapperStyle.value,
|
|
492
|
+
role: "region",
|
|
493
|
+
"aria-label": tigercatCore.resolveLocaleText(labels.value.boardAriaLabel),
|
|
494
|
+
"data-tiger-task-board": ""
|
|
495
|
+
},
|
|
496
|
+
children
|
|
497
|
+
);
|
|
498
|
+
};
|
|
438
499
|
}
|
|
439
500
|
});
|
|
440
501
|
var TaskBoard_default = TaskBoard;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { TaskBoard } from './chunk-J7VTGSHX.mjs';
|
|
2
|
+
import { defineComponent, h } from 'vue';
|
|
3
|
+
|
|
4
|
+
var Kanban = defineComponent({
|
|
5
|
+
name: "TigerKanban",
|
|
6
|
+
inheritAttrs: false,
|
|
7
|
+
props: {
|
|
8
|
+
columns: {
|
|
9
|
+
type: Array,
|
|
10
|
+
default: void 0
|
|
11
|
+
},
|
|
12
|
+
defaultColumns: {
|
|
13
|
+
type: Array,
|
|
14
|
+
default: () => []
|
|
15
|
+
},
|
|
16
|
+
draggable: { type: Boolean, default: true },
|
|
17
|
+
columnDraggable: { type: Boolean, default: true },
|
|
18
|
+
enforceWipLimit: { type: Boolean, default: false },
|
|
19
|
+
beforeCardMove: {
|
|
20
|
+
type: Function,
|
|
21
|
+
default: void 0
|
|
22
|
+
},
|
|
23
|
+
beforeColumnMove: {
|
|
24
|
+
type: Function,
|
|
25
|
+
default: void 0
|
|
26
|
+
},
|
|
27
|
+
onCardAdd: {
|
|
28
|
+
type: Function,
|
|
29
|
+
default: void 0
|
|
30
|
+
},
|
|
31
|
+
filterText: { type: String, default: "" },
|
|
32
|
+
hiddenColumns: {
|
|
33
|
+
type: Array,
|
|
34
|
+
default: () => []
|
|
35
|
+
},
|
|
36
|
+
showCardCount: { type: Boolean, default: true },
|
|
37
|
+
allowAddCard: { type: Boolean, default: true },
|
|
38
|
+
allowAddColumn: { type: Boolean, default: false },
|
|
39
|
+
locale: {
|
|
40
|
+
type: Object,
|
|
41
|
+
default: void 0
|
|
42
|
+
},
|
|
43
|
+
className: { type: String, default: void 0 },
|
|
44
|
+
style: {
|
|
45
|
+
type: Object,
|
|
46
|
+
default: void 0
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
emits: ["card-move", "column-move", "update:columns", "card-add", "column-add"],
|
|
50
|
+
setup(props, { emit, attrs, slots }) {
|
|
51
|
+
const handleCardAdd = (colId) => {
|
|
52
|
+
props.onCardAdd?.(colId);
|
|
53
|
+
emit("card-add", colId);
|
|
54
|
+
};
|
|
55
|
+
return () => h(
|
|
56
|
+
TaskBoard,
|
|
57
|
+
{
|
|
58
|
+
...attrs,
|
|
59
|
+
columns: props.columns,
|
|
60
|
+
defaultColumns: props.defaultColumns,
|
|
61
|
+
draggable: props.draggable,
|
|
62
|
+
columnDraggable: props.columnDraggable,
|
|
63
|
+
enforceWipLimit: props.enforceWipLimit,
|
|
64
|
+
beforeCardMove: props.beforeCardMove,
|
|
65
|
+
beforeColumnMove: props.beforeColumnMove,
|
|
66
|
+
// Only set onCardAdd when needed — its presence affects button visibility
|
|
67
|
+
onCardAdd: props.allowAddCard || props.onCardAdd ? handleCardAdd : void 0,
|
|
68
|
+
filterText: props.filterText,
|
|
69
|
+
hiddenColumns: props.hiddenColumns,
|
|
70
|
+
showCardCount: props.showCardCount,
|
|
71
|
+
allowAddCard: props.allowAddCard,
|
|
72
|
+
allowAddColumn: props.allowAddColumn,
|
|
73
|
+
locale: props.locale,
|
|
74
|
+
className: props.className,
|
|
75
|
+
style: props.style,
|
|
76
|
+
"onCard-move": (e) => emit("card-move", e),
|
|
77
|
+
"onColumn-move": (e) => emit("column-move", e),
|
|
78
|
+
"onUpdate:columns": (cols) => emit("update:columns", cols),
|
|
79
|
+
"onColumn-add": () => emit("column-add")
|
|
80
|
+
},
|
|
81
|
+
slots
|
|
82
|
+
);
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
var Kanban_default = Kanban;
|
|
86
|
+
|
|
87
|
+
export { Kanban, Kanban_default };
|
|
@@ -269,8 +269,10 @@ var Dropdown = vue.defineComponent({
|
|
|
269
269
|
},
|
|
270
270
|
[
|
|
271
271
|
vue.h(
|
|
272
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
272
273
|
menuNode.type,
|
|
273
274
|
{ ...menuNode.props || {}, id: menuId },
|
|
275
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
274
276
|
menuNode.children
|
|
275
277
|
)
|
|
276
278
|
]
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DropdownContextKey } from './chunk-
|
|
1
|
+
import { DropdownContextKey } from './chunk-3ICMBQPM.mjs';
|
|
2
2
|
import { defineComponent, inject, computed, h } from 'vue';
|
|
3
3
|
import { classNames, getDropdownItemClasses, coerceClassValue, mergeStyleValues } from '@expcat/tigercat-core';
|
|
4
4
|
|
|
@@ -68,7 +68,7 @@ var Transfer = vue.defineComponent({
|
|
|
68
68
|
const targetSelectedKeys = vue.ref(/* @__PURE__ */ new Set());
|
|
69
69
|
const sourceSearch = vue.ref("");
|
|
70
70
|
const targetSearch = vue.ref("");
|
|
71
|
-
const { sourceItems, targetItems } = vue.computed(
|
|
71
|
+
const { sourceItems: _sourceItems, targetItems: _targetItems } = vue.computed(
|
|
72
72
|
() => tigercatCore.splitTransferData(props.dataSource, props.modelValue)
|
|
73
73
|
).value;
|
|
74
74
|
const computedData = vue.computed(() => tigercatCore.splitTransferData(props.dataSource, props.modelValue));
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkO2Q4UYDA_js = require('./chunk-O2Q4UYDA.js');
|
|
4
|
+
var vue = require('vue');
|
|
5
|
+
|
|
6
|
+
var Kanban = vue.defineComponent({
|
|
7
|
+
name: "TigerKanban",
|
|
8
|
+
inheritAttrs: false,
|
|
9
|
+
props: {
|
|
10
|
+
columns: {
|
|
11
|
+
type: Array,
|
|
12
|
+
default: void 0
|
|
13
|
+
},
|
|
14
|
+
defaultColumns: {
|
|
15
|
+
type: Array,
|
|
16
|
+
default: () => []
|
|
17
|
+
},
|
|
18
|
+
draggable: { type: Boolean, default: true },
|
|
19
|
+
columnDraggable: { type: Boolean, default: true },
|
|
20
|
+
enforceWipLimit: { type: Boolean, default: false },
|
|
21
|
+
beforeCardMove: {
|
|
22
|
+
type: Function,
|
|
23
|
+
default: void 0
|
|
24
|
+
},
|
|
25
|
+
beforeColumnMove: {
|
|
26
|
+
type: Function,
|
|
27
|
+
default: void 0
|
|
28
|
+
},
|
|
29
|
+
onCardAdd: {
|
|
30
|
+
type: Function,
|
|
31
|
+
default: void 0
|
|
32
|
+
},
|
|
33
|
+
filterText: { type: String, default: "" },
|
|
34
|
+
hiddenColumns: {
|
|
35
|
+
type: Array,
|
|
36
|
+
default: () => []
|
|
37
|
+
},
|
|
38
|
+
showCardCount: { type: Boolean, default: true },
|
|
39
|
+
allowAddCard: { type: Boolean, default: true },
|
|
40
|
+
allowAddColumn: { type: Boolean, default: false },
|
|
41
|
+
locale: {
|
|
42
|
+
type: Object,
|
|
43
|
+
default: void 0
|
|
44
|
+
},
|
|
45
|
+
className: { type: String, default: void 0 },
|
|
46
|
+
style: {
|
|
47
|
+
type: Object,
|
|
48
|
+
default: void 0
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
emits: ["card-move", "column-move", "update:columns", "card-add", "column-add"],
|
|
52
|
+
setup(props, { emit, attrs, slots }) {
|
|
53
|
+
const handleCardAdd = (colId) => {
|
|
54
|
+
props.onCardAdd?.(colId);
|
|
55
|
+
emit("card-add", colId);
|
|
56
|
+
};
|
|
57
|
+
return () => vue.h(
|
|
58
|
+
chunkO2Q4UYDA_js.TaskBoard,
|
|
59
|
+
{
|
|
60
|
+
...attrs,
|
|
61
|
+
columns: props.columns,
|
|
62
|
+
defaultColumns: props.defaultColumns,
|
|
63
|
+
draggable: props.draggable,
|
|
64
|
+
columnDraggable: props.columnDraggable,
|
|
65
|
+
enforceWipLimit: props.enforceWipLimit,
|
|
66
|
+
beforeCardMove: props.beforeCardMove,
|
|
67
|
+
beforeColumnMove: props.beforeColumnMove,
|
|
68
|
+
// Only set onCardAdd when needed — its presence affects button visibility
|
|
69
|
+
onCardAdd: props.allowAddCard || props.onCardAdd ? handleCardAdd : void 0,
|
|
70
|
+
filterText: props.filterText,
|
|
71
|
+
hiddenColumns: props.hiddenColumns,
|
|
72
|
+
showCardCount: props.showCardCount,
|
|
73
|
+
allowAddCard: props.allowAddCard,
|
|
74
|
+
allowAddColumn: props.allowAddColumn,
|
|
75
|
+
locale: props.locale,
|
|
76
|
+
className: props.className,
|
|
77
|
+
style: props.style,
|
|
78
|
+
"onCard-move": (e) => emit("card-move", e),
|
|
79
|
+
"onColumn-move": (e) => emit("column-move", e),
|
|
80
|
+
"onUpdate:columns": (cols) => emit("update:columns", cols),
|
|
81
|
+
"onColumn-add": () => emit("column-add")
|
|
82
|
+
},
|
|
83
|
+
slots
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
var Kanban_default = Kanban;
|
|
88
|
+
|
|
89
|
+
exports.Kanban = Kanban;
|
|
90
|
+
exports.Kanban_default = Kanban_default;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkTT5LWQIZ_js = require('./chunk-TT5LWQIZ.js');
|
|
4
4
|
var chunkPBWSBNDS_js = require('./chunk-PBWSBNDS.js');
|
|
5
5
|
var chunkAGAJJYP2_js = require('./chunk-AGAJJYP2.js');
|
|
6
6
|
var chunkBYNMOQBB_js = require('./chunk-BYNMOQBB.js');
|
|
@@ -106,13 +106,13 @@ var DataTableWithToolbar = vue.defineComponent({
|
|
|
106
106
|
}
|
|
107
107
|
},
|
|
108
108
|
emits: {
|
|
109
|
-
"search-change": (
|
|
110
|
-
search: (
|
|
111
|
-
"filters-change": (
|
|
112
|
-
"bulk-action": (
|
|
113
|
-
"selection-change": (
|
|
114
|
-
"page-change": (
|
|
115
|
-
"page-size-change": (
|
|
109
|
+
"search-change": (_value) => true,
|
|
110
|
+
search: (_value) => true,
|
|
111
|
+
"filters-change": (_filters) => true,
|
|
112
|
+
"bulk-action": (_action, _keys) => true,
|
|
113
|
+
"selection-change": (_keys) => true,
|
|
114
|
+
"page-change": (_current, _pageSize) => true,
|
|
115
|
+
"page-size-change": (_current, _pageSize) => true
|
|
116
116
|
},
|
|
117
117
|
setup(props, { attrs, emit }) {
|
|
118
118
|
const internalSearch = vue.ref(props.toolbar?.defaultSearchValue ?? "");
|
|
@@ -338,7 +338,8 @@ var DataTableWithToolbar = vue.defineComponent({
|
|
|
338
338
|
},
|
|
339
339
|
[
|
|
340
340
|
renderToolbar(),
|
|
341
|
-
|
|
341
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
342
|
+
vue.h(chunkTT5LWQIZ_js.Table, tableProps),
|
|
342
343
|
showPagination ? vue.h(chunkAGAJJYP2_js.Pagination, {
|
|
343
344
|
...props.pagination,
|
|
344
345
|
onChange: (current, pageSize) => emit("page-change", current, pageSize),
|