@expcat/tigercat-vue 1.0.4 → 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-XA5QMUZX.mjs → chunk-J7VTGSHX.mjs} +78 -17
- package/dist/{chunk-BDMWFNTC.js → chunk-O2Q4UYDA.js} +77 -16
- package/dist/chunk-PLGYRHPX.mjs +87 -0
- package/dist/chunk-WBY2ILFK.js +90 -0
- package/dist/components/ActivityFeed.d.mts +5 -5
- package/dist/components/ActivityFeed.d.ts +5 -5
- package/dist/components/Affix.d.mts +1 -1
- package/dist/components/Affix.d.ts +1 -1
- package/dist/components/Alert.d.mts +3 -3
- package/dist/components/Alert.d.ts +3 -3
- package/dist/components/Anchor.d.mts +1 -1
- package/dist/components/Anchor.d.ts +1 -1
- package/dist/components/AnchorLink.d.mts +1 -1
- package/dist/components/AnchorLink.d.ts +1 -1
- package/dist/components/AreaChart.d.mts +1 -1
- package/dist/components/AreaChart.d.ts +1 -1
- package/dist/components/AutoComplete.d.mts +2 -2
- package/dist/components/AutoComplete.d.ts +2 -2
- package/dist/components/Avatar.d.mts +2 -2
- package/dist/components/Avatar.d.ts +2 -2
- package/dist/components/BackTop.d.mts +1 -1
- package/dist/components/BackTop.d.ts +1 -1
- package/dist/components/Badge.d.mts +5 -5
- package/dist/components/Badge.d.ts +5 -5
- package/dist/components/BarChart.d.mts +1 -1
- package/dist/components/BarChart.d.ts +1 -1
- package/dist/components/Breadcrumb.d.mts +1 -1
- package/dist/components/Breadcrumb.d.ts +1 -1
- package/dist/components/BreadcrumbItem.d.mts +3 -3
- package/dist/components/BreadcrumbItem.d.ts +3 -3
- package/dist/components/Button.d.mts +5 -5
- package/dist/components/Button.d.ts +5 -5
- package/dist/components/Calendar.d.mts +1 -1
- package/dist/components/Calendar.d.ts +1 -1
- package/dist/components/Card.d.mts +3 -3
- package/dist/components/Card.d.ts +3 -3
- package/dist/components/Carousel.d.mts +2 -2
- package/dist/components/Carousel.d.ts +2 -2
- package/dist/components/ChatWindow.d.mts +4 -4
- package/dist/components/ChatWindow.d.ts +4 -4
- package/dist/components/Code.d.mts +1 -1
- package/dist/components/Code.d.ts +1 -1
- package/dist/components/CodeEditor.d.mts +3 -3
- package/dist/components/CodeEditor.d.ts +3 -3
- package/dist/components/Collapse.d.mts +2 -2
- package/dist/components/Collapse.d.ts +2 -2
- package/dist/components/CollapsePanel.d.mts +2 -2
- package/dist/components/CollapsePanel.d.ts +2 -2
- package/dist/components/CommentThread.d.mts +4 -4
- package/dist/components/CommentThread.d.ts +4 -4
- package/dist/components/Content.d.mts +1 -1
- package/dist/components/Content.d.ts +1 -1
- package/dist/components/CropUpload.d.mts +1 -1
- package/dist/components/CropUpload.d.ts +1 -1
- package/dist/components/DataTableWithToolbar.d.mts +8 -8
- package/dist/components/DataTableWithToolbar.d.ts +8 -8
- package/dist/components/DatePicker.d.mts +3 -3
- package/dist/components/DatePicker.d.ts +3 -3
- package/dist/components/Descriptions.d.mts +4 -4
- package/dist/components/Descriptions.d.ts +4 -4
- package/dist/components/DonutChart.d.mts +2 -2
- package/dist/components/DonutChart.d.ts +2 -2
- package/dist/components/Drawer.d.mts +5 -5
- package/dist/components/Drawer.d.ts +5 -5
- package/dist/components/Dropdown.d.mts +1 -1
- package/dist/components/Dropdown.d.ts +1 -1
- package/dist/components/DropdownItem.d.mts +1 -1
- package/dist/components/DropdownItem.d.ts +1 -1
- package/dist/components/DropdownMenu.d.mts +1 -1
- package/dist/components/DropdownMenu.d.ts +1 -1
- package/dist/components/Empty.d.mts +1 -1
- package/dist/components/Empty.d.ts +1 -1
- package/dist/components/FileManager.d.mts +1 -1
- package/dist/components/FileManager.d.ts +1 -1
- package/dist/components/FloatButton.d.mts +6 -6
- package/dist/components/FloatButton.d.ts +6 -6
- package/dist/components/Footer.d.mts +1 -1
- package/dist/components/Footer.d.ts +1 -1
- package/dist/components/Form.d.mts +1 -1
- package/dist/components/Form.d.ts +1 -1
- package/dist/components/FormWizard.d.mts +2 -2
- package/dist/components/FormWizard.d.ts +2 -2
- package/dist/components/FunnelChart.d.mts +2 -2
- package/dist/components/FunnelChart.d.ts +2 -2
- package/dist/components/GaugeChart.d.mts +1 -1
- package/dist/components/GaugeChart.d.ts +1 -1
- package/dist/components/Header.d.mts +1 -1
- package/dist/components/Header.d.ts +1 -1
- package/dist/components/HeatmapChart.d.mts +1 -1
- package/dist/components/HeatmapChart.d.ts +1 -1
- package/dist/components/Image.d.mts +3 -3
- package/dist/components/Image.d.ts +3 -3
- package/dist/components/ImageCropper.d.mts +1 -1
- package/dist/components/ImageCropper.d.ts +1 -1
- package/dist/components/InfiniteScroll.d.mts +2 -2
- package/dist/components/InfiniteScroll.d.ts +2 -2
- package/dist/components/Input.d.mts +4 -4
- package/dist/components/Input.d.ts +4 -4
- package/dist/components/InputGroup.d.mts +1 -1
- package/dist/components/InputGroup.d.ts +1 -1
- package/dist/components/InputNumber.d.mts +1 -1
- package/dist/components/InputNumber.d.ts +1 -1
- package/dist/components/Kanban.d.mts +4 -4
- package/dist/components/Kanban.d.ts +4 -4
- package/dist/components/Kanban.js +4 -3
- package/dist/components/Kanban.mjs +2 -1
- package/dist/components/Layout.d.mts +1 -1
- package/dist/components/Layout.d.ts +1 -1
- package/dist/components/LineChart.d.mts +1 -1
- package/dist/components/LineChart.d.ts +1 -1
- package/dist/components/Link.d.mts +1 -1
- package/dist/components/Link.d.ts +1 -1
- package/dist/components/List.d.mts +5 -5
- package/dist/components/List.d.ts +5 -5
- package/dist/components/Loading.d.mts +3 -3
- package/dist/components/Loading.d.ts +3 -3
- package/dist/components/Mentions.d.mts +2 -2
- package/dist/components/Mentions.d.ts +2 -2
- package/dist/components/Menu.d.mts +2 -2
- package/dist/components/Menu.d.ts +2 -2
- package/dist/components/MenuItem.d.mts +1 -1
- package/dist/components/MenuItem.d.ts +1 -1
- package/dist/components/MenuItemGroup.d.mts +1 -1
- package/dist/components/MenuItemGroup.d.ts +1 -1
- package/dist/components/Modal.d.mts +5 -5
- package/dist/components/Modal.d.ts +5 -5
- package/dist/components/NotificationCenter.d.mts +6 -6
- package/dist/components/NotificationCenter.d.ts +6 -6
- package/dist/components/Pagination.d.mts +3 -3
- package/dist/components/Pagination.d.ts +3 -3
- package/dist/components/PieChart.d.mts +2 -2
- package/dist/components/PieChart.d.ts +2 -2
- package/dist/components/Popconfirm.d.mts +1 -1
- package/dist/components/Popconfirm.d.ts +1 -1
- package/dist/components/Popover.d.mts +2 -2
- package/dist/components/Popover.d.ts +2 -2
- package/dist/components/Progress.d.mts +3 -3
- package/dist/components/Progress.d.ts +3 -3
- package/dist/components/QRCode.d.mts +2 -2
- package/dist/components/QRCode.d.ts +2 -2
- package/dist/components/RadarChart.d.mts +1 -1
- package/dist/components/RadarChart.d.ts +1 -1
- package/dist/components/Resizable.d.mts +1 -1
- package/dist/components/Resizable.d.ts +1 -1
- package/dist/components/Result.d.mts +1 -1
- package/dist/components/Result.d.ts +1 -1
- package/dist/components/RichTextEditor.d.mts +1 -1
- package/dist/components/RichTextEditor.d.ts +1 -1
- package/dist/components/Row.d.mts +1 -1
- package/dist/components/Row.d.ts +1 -1
- package/dist/components/ScatterChart.d.mts +1 -1
- package/dist/components/ScatterChart.d.ts +1 -1
- package/dist/components/Select.d.mts +1 -1
- package/dist/components/Select.d.ts +1 -1
- package/dist/components/Sidebar.d.mts +1 -1
- package/dist/components/Sidebar.d.ts +1 -1
- package/dist/components/Skeleton.d.mts +2 -2
- package/dist/components/Skeleton.d.ts +2 -2
- package/dist/components/Slider.d.mts +2 -2
- package/dist/components/Slider.d.ts +2 -2
- package/dist/components/Splitter.d.mts +2 -2
- package/dist/components/Splitter.d.ts +2 -2
- package/dist/components/Statistic.d.mts +1 -1
- package/dist/components/Statistic.d.ts +1 -1
- package/dist/components/Steps.d.mts +2 -2
- package/dist/components/Steps.d.ts +2 -2
- package/dist/components/StepsItem.d.mts +2 -2
- package/dist/components/StepsItem.d.ts +2 -2
- package/dist/components/SubMenu.d.mts +1 -1
- package/dist/components/SubMenu.d.ts +1 -1
- package/dist/components/SunburstChart.d.mts +1 -1
- package/dist/components/SunburstChart.d.ts +1 -1
- package/dist/components/TabPane.d.mts +2 -2
- package/dist/components/TabPane.d.ts +2 -2
- package/dist/components/Table.d.mts +5 -5
- package/dist/components/Table.d.ts +5 -5
- package/dist/components/Tabs.d.mts +2 -2
- package/dist/components/Tabs.d.ts +2 -2
- package/dist/components/Tag.d.mts +2 -2
- package/dist/components/Tag.d.ts +2 -2
- package/dist/components/TaskBoard.d.mts +54 -3
- package/dist/components/TaskBoard.d.ts +54 -3
- package/dist/components/TaskBoard.js +3 -3
- package/dist/components/TaskBoard.mjs +1 -1
- package/dist/components/Text.d.mts +2 -2
- package/dist/components/Text.d.ts +2 -2
- package/dist/components/Textarea.d.mts +1 -1
- package/dist/components/Textarea.d.ts +1 -1
- package/dist/components/TimePicker.d.mts +4 -4
- package/dist/components/TimePicker.d.ts +4 -4
- package/dist/components/Timeline.d.mts +3 -3
- package/dist/components/Timeline.d.ts +3 -3
- package/dist/components/Tooltip.d.mts +2 -2
- package/dist/components/Tooltip.d.ts +2 -2
- package/dist/components/Tour.d.mts +1 -1
- package/dist/components/Tour.d.ts +1 -1
- package/dist/components/Tree.d.mts +3 -3
- package/dist/components/Tree.d.ts +3 -3
- package/dist/components/TreeMapChart.d.mts +1 -1
- package/dist/components/TreeMapChart.d.ts +1 -1
- package/dist/components/Upload.d.mts +4 -4
- package/dist/components/Upload.d.ts +4 -4
- package/dist/components/VirtualTable.d.mts +3 -3
- package/dist/components/VirtualTable.d.ts +3 -3
- package/dist/components/Watermark.d.mts +2 -2
- package/dist/components/Watermark.d.ts +2 -2
- package/dist/index.js +7 -7
- package/dist/index.mjs +2 -2
- package/package.json +2 -2
- package/dist/chunk-33C5E3AQ.mjs +0 -328
- package/dist/chunk-CXJUEG75.js +0 -331
|
@@ -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;
|
|
@@ -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 };
|
|
@@ -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;
|
|
@@ -107,18 +107,18 @@ declare const ActivityFeed: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
107
107
|
default: undefined;
|
|
108
108
|
};
|
|
109
109
|
}>> & Readonly<{}>, {
|
|
110
|
+
style: Record<string, string | number>;
|
|
111
|
+
loading: boolean;
|
|
112
|
+
className: string;
|
|
113
|
+
emptyText: string;
|
|
114
|
+
groupBy: (item: ActivityItem) => string;
|
|
110
115
|
items: ActivityItem[];
|
|
111
116
|
groups: ActivityGroup[];
|
|
112
|
-
groupBy: (item: ActivityItem) => string;
|
|
113
117
|
groupOrder: string[];
|
|
114
|
-
loading: boolean;
|
|
115
118
|
loadingText: string;
|
|
116
|
-
emptyText: string;
|
|
117
119
|
showAvatar: boolean;
|
|
118
120
|
showTime: boolean;
|
|
119
121
|
showGroupTitle: boolean;
|
|
120
|
-
className: string;
|
|
121
|
-
style: Record<string, string | number>;
|
|
122
122
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
|
|
123
123
|
|
|
124
124
|
export { ActivityFeed, type VueActivityFeedProps, ActivityFeed as default };
|
|
@@ -107,18 +107,18 @@ declare const ActivityFeed: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
107
107
|
default: undefined;
|
|
108
108
|
};
|
|
109
109
|
}>> & Readonly<{}>, {
|
|
110
|
+
style: Record<string, string | number>;
|
|
111
|
+
loading: boolean;
|
|
112
|
+
className: string;
|
|
113
|
+
emptyText: string;
|
|
114
|
+
groupBy: (item: ActivityItem) => string;
|
|
110
115
|
items: ActivityItem[];
|
|
111
116
|
groups: ActivityGroup[];
|
|
112
|
-
groupBy: (item: ActivityItem) => string;
|
|
113
117
|
groupOrder: string[];
|
|
114
|
-
loading: boolean;
|
|
115
118
|
loadingText: string;
|
|
116
|
-
emptyText: string;
|
|
117
119
|
showAvatar: boolean;
|
|
118
120
|
showTime: boolean;
|
|
119
121
|
showGroupTitle: boolean;
|
|
120
|
-
className: string;
|
|
121
|
-
style: Record<string, string | number>;
|
|
122
122
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
|
|
123
123
|
|
|
124
124
|
export { ActivityFeed, type VueActivityFeedProps, ActivityFeed as default };
|
|
@@ -64,8 +64,8 @@ declare const Affix: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
64
64
|
}>> & Readonly<{
|
|
65
65
|
onChange?: ((...args: any[]) => any) | undefined;
|
|
66
66
|
}>, {
|
|
67
|
-
className: string;
|
|
68
67
|
style: Record<string, string | number>;
|
|
68
|
+
className: string;
|
|
69
69
|
target: string;
|
|
70
70
|
zIndex: number;
|
|
71
71
|
offsetTop: number;
|
|
@@ -64,8 +64,8 @@ declare const Affix: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
64
64
|
}>> & Readonly<{
|
|
65
65
|
onChange?: ((...args: any[]) => any) | undefined;
|
|
66
66
|
}>, {
|
|
67
|
-
className: string;
|
|
68
67
|
style: Record<string, string | number>;
|
|
68
|
+
className: string;
|
|
69
69
|
target: string;
|
|
70
70
|
zIndex: number;
|
|
71
71
|
offsetTop: number;
|
|
@@ -204,11 +204,11 @@ declare const Alert: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
204
204
|
}>> & Readonly<{
|
|
205
205
|
onClose?: ((...args: any[]) => any) | undefined;
|
|
206
206
|
}>, {
|
|
207
|
-
size: AlertSize;
|
|
208
|
-
className: string;
|
|
209
|
-
style: Record<string, string | number>;
|
|
210
207
|
type: AlertType;
|
|
208
|
+
style: Record<string, string | number>;
|
|
211
209
|
title: string;
|
|
210
|
+
size: AlertSize;
|
|
211
|
+
className: string;
|
|
212
212
|
closable: boolean;
|
|
213
213
|
closeAriaLabel: string;
|
|
214
214
|
showIcon: boolean;
|
|
@@ -204,11 +204,11 @@ declare const Alert: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
204
204
|
}>> & Readonly<{
|
|
205
205
|
onClose?: ((...args: any[]) => any) | undefined;
|
|
206
206
|
}>, {
|
|
207
|
-
size: AlertSize;
|
|
208
|
-
className: string;
|
|
209
|
-
style: Record<string, string | number>;
|
|
210
207
|
type: AlertType;
|
|
208
|
+
style: Record<string, string | number>;
|
|
211
209
|
title: string;
|
|
210
|
+
size: AlertSize;
|
|
211
|
+
className: string;
|
|
212
212
|
closable: boolean;
|
|
213
213
|
closeAriaLabel: string;
|
|
214
214
|
showIcon: boolean;
|
|
@@ -171,8 +171,8 @@ declare const Anchor: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
171
171
|
onChange?: ((...args: any[]) => any) | undefined;
|
|
172
172
|
onClick?: ((...args: any[]) => any) | undefined;
|
|
173
173
|
}>, {
|
|
174
|
-
className: string;
|
|
175
174
|
style: Record<string, unknown>;
|
|
175
|
+
className: string;
|
|
176
176
|
direction: AnchorDirection;
|
|
177
177
|
affix: boolean;
|
|
178
178
|
bounds: number;
|
|
@@ -171,8 +171,8 @@ declare const Anchor: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
171
171
|
onChange?: ((...args: any[]) => any) | undefined;
|
|
172
172
|
onClick?: ((...args: any[]) => any) | undefined;
|
|
173
173
|
}>, {
|
|
174
|
-
className: string;
|
|
175
174
|
style: Record<string, unknown>;
|
|
175
|
+
className: string;
|
|
176
176
|
direction: AnchorDirection;
|
|
177
177
|
affix: boolean;
|
|
178
178
|
bounds: number;
|
|
@@ -61,8 +61,8 @@ declare const AnchorLink: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
61
61
|
default: undefined;
|
|
62
62
|
};
|
|
63
63
|
}>> & Readonly<{}>, {
|
|
64
|
-
className: string;
|
|
65
64
|
title: string;
|
|
65
|
+
className: string;
|
|
66
66
|
target: string;
|
|
67
67
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
|
|
68
68
|
|
|
@@ -61,8 +61,8 @@ declare const AnchorLink: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
61
61
|
default: undefined;
|
|
62
62
|
};
|
|
63
63
|
}>> & Readonly<{}>, {
|
|
64
|
-
className: string;
|
|
65
64
|
title: string;
|
|
65
|
+
className: string;
|
|
66
66
|
target: string;
|
|
67
67
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
|
|
68
68
|
|
|
@@ -387,10 +387,10 @@ declare const AreaChart: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
387
387
|
"onSeries-click"?: ((...args: any[]) => any) | undefined;
|
|
388
388
|
"onSeries-hover"?: ((...args: any[]) => any) | undefined;
|
|
389
389
|
}>, {
|
|
390
|
-
hoverable: boolean;
|
|
391
390
|
width: number;
|
|
392
391
|
height: number;
|
|
393
392
|
padding: ChartPadding;
|
|
393
|
+
hoverable: boolean;
|
|
394
394
|
selectable: boolean;
|
|
395
395
|
strokeWidth: number;
|
|
396
396
|
xTicks: number;
|
|
@@ -387,10 +387,10 @@ declare const AreaChart: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
387
387
|
"onSeries-click"?: ((...args: any[]) => any) | undefined;
|
|
388
388
|
"onSeries-hover"?: ((...args: any[]) => any) | undefined;
|
|
389
389
|
}>, {
|
|
390
|
-
hoverable: boolean;
|
|
391
390
|
width: number;
|
|
392
391
|
height: number;
|
|
393
392
|
padding: ChartPadding;
|
|
393
|
+
hoverable: boolean;
|
|
394
394
|
selectable: boolean;
|
|
395
395
|
strokeWidth: number;
|
|
396
396
|
xTicks: number;
|