@expcat/tigercat-react 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-L6WOLPV7.mjs → chunk-32PAZTVF.mjs} +2 -2
- package/dist/{chunk-ZCBKAOAX.mjs → chunk-34VGG7AK.mjs} +1 -1
- package/dist/{chunk-SULHTYSV.js → chunk-4Q4GADHJ.js} +1 -1
- package/dist/{chunk-5CQEXJF2.js → chunk-5MALB34H.js} +2 -2
- package/dist/chunk-7BVXG3Z5.mjs +22 -0
- package/dist/{chunk-DR2DFFNQ.js → chunk-AHF6JE43.js} +1 -1
- package/dist/{chunk-XODGTE2Y.js → chunk-AUW7DCXL.js} +1 -1
- package/dist/{chunk-5BBZBI2V.mjs → chunk-AYDTXJOR.mjs} +1 -1
- package/dist/{chunk-6SDLSIAO.mjs → chunk-B3MNIAM5.mjs} +1 -1
- package/dist/{chunk-EHU3J4B2.mjs → chunk-DBNAL6G6.mjs} +100 -47
- package/dist/{chunk-2H43QM4B.mjs → chunk-EBLAM3YP.mjs} +1 -1
- package/dist/{chunk-QNFSZYTZ.js → chunk-FHE4D56E.js} +1 -1
- package/dist/{chunk-HADBETZG.js → chunk-FNK4ZATV.js} +1 -1
- package/dist/{chunk-WGPUGPYE.js → chunk-H3JAEEEE.js} +99 -46
- package/dist/{chunk-VUD4BU4K.mjs → chunk-H3NLKNR4.mjs} +1 -1
- package/dist/{chunk-VWMVWZMD.js → chunk-HU3VDVH6.js} +1 -2
- package/dist/{chunk-H5CAIMVL.js → chunk-I3CDTF4U.js} +1 -1
- package/dist/{chunk-SJ5GT7Y4.mjs → chunk-J3N24I7A.mjs} +1 -1
- package/dist/{chunk-SVASEF6K.js → chunk-JB33A4S6.js} +2 -2
- package/dist/{chunk-FT6TEMUF.mjs → chunk-LPNHBHS2.mjs} +1 -1
- package/dist/{chunk-RU6YS4LZ.mjs → chunk-MB7CJ32C.mjs} +1 -1
- package/dist/chunk-NG3GA5LF.js +25 -0
- package/dist/{chunk-QVZTZHCJ.mjs → chunk-PNSWIJG3.mjs} +16 -7
- package/dist/{chunk-333325LH.mjs → chunk-QYLNPHKG.mjs} +1 -1
- package/dist/{chunk-JR7L67Q3.mjs → chunk-R3QWJ7GT.mjs} +1 -1
- package/dist/{chunk-45H3JEI3.js → chunk-RFPXIDAK.js} +16 -7
- package/dist/{chunk-SKJXVYYF.js → chunk-RWZIWKZR.js} +2 -2
- package/dist/{chunk-IWTY32AW.mjs → chunk-SWF7GJYT.mjs} +1 -2
- package/dist/{chunk-J23B66DJ.js → chunk-XO6NSGV3.js} +1 -1
- package/dist/{chunk-FRHGRKKT.js → chunk-XR6B2URW.js} +1 -1
- package/dist/{chunk-T6KZ73VM.js → chunk-YHFBPSMF.js} +1 -1
- package/dist/{chunk-AYDPWKSW.mjs → chunk-YJ4W6DMX.mjs} +2 -2
- package/dist/components/ChatWindow.js +3 -3
- package/dist/components/ChatWindow.mjs +1 -1
- package/dist/components/ColorPicker.js +2 -2
- package/dist/components/ColorPicker.mjs +1 -1
- package/dist/components/CropUpload.js +2 -2
- package/dist/components/CropUpload.mjs +1 -1
- package/dist/components/DataTableWithToolbar.js +4 -4
- package/dist/components/DataTableWithToolbar.mjs +2 -2
- package/dist/components/DonutChart.js +3 -3
- package/dist/components/DonutChart.mjs +1 -1
- package/dist/components/FloatButton.js +3 -3
- package/dist/components/FloatButton.mjs +1 -1
- package/dist/components/FunnelChart.js +2 -2
- package/dist/components/FunnelChart.mjs +1 -1
- package/dist/components/InputGroup.js +5 -5
- package/dist/components/InputGroup.mjs +1 -1
- package/dist/components/Kanban.d.mts +3 -2
- package/dist/components/Kanban.d.ts +3 -2
- package/dist/components/Kanban.js +5 -4
- package/dist/components/Kanban.mjs +3 -2
- package/dist/components/NotificationCenter.js +3 -3
- package/dist/components/NotificationCenter.mjs +1 -1
- package/dist/components/QRCode.js +3 -3
- package/dist/components/QRCode.mjs +1 -1
- package/dist/components/Splitter.js +3 -3
- package/dist/components/Splitter.mjs +1 -1
- package/dist/components/SunburstChart.js +2 -2
- package/dist/components/SunburstChart.mjs +1 -1
- package/dist/components/Table.d.mts +1 -1
- package/dist/components/Table.d.ts +1 -1
- package/dist/components/Table.js +2 -2
- package/dist/components/Table.mjs +1 -1
- package/dist/components/TaskBoard.js +3 -3
- package/dist/components/TaskBoard.mjs +1 -1
- package/dist/components/TreeMapChart.js +2 -2
- package/dist/components/TreeMapChart.mjs +1 -1
- package/dist/index.js +37 -37
- package/dist/index.mjs +16 -16
- package/package.json +2 -2
- package/dist/chunk-24RUEJWB.js +0 -293
- package/dist/chunk-YXWRSEP5.mjs +0 -286
|
@@ -22,7 +22,7 @@ var InputGroup = ({
|
|
|
22
22
|
return /* @__PURE__ */ jsx(InputGroupContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx("div", { ...rest, className: groupClasses, role: "group", children }) });
|
|
23
23
|
};
|
|
24
24
|
var InputGroupAddon = ({
|
|
25
|
-
addonType = "text",
|
|
25
|
+
addonType: _addonType = "text",
|
|
26
26
|
className,
|
|
27
27
|
children,
|
|
28
28
|
...rest
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkXO6NSGV3_js = require('./chunk-XO6NSGV3.js');
|
|
4
4
|
var chunkNZNSUKPT_js = require('./chunk-NZNSUKPT.js');
|
|
5
5
|
var chunk3GW3UAKB_js = require('./chunk-3GW3UAKB.js');
|
|
6
6
|
var chunkZYJTHGQW_js = require('./chunk-ZYJTHGQW.js');
|
|
@@ -187,7 +187,7 @@ var DataTableWithToolbar = ({
|
|
|
187
187
|
const showPagination = pagination && typeof pagination === "object";
|
|
188
188
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: wrapperClasses, "data-tiger-data-table-with-toolbar": true, children: [
|
|
189
189
|
renderToolbar(),
|
|
190
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
190
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkXO6NSGV3_js.Table, { ...tableProps, pagination: false, className: tableClassName }),
|
|
191
191
|
showPagination ? /* @__PURE__ */ jsxRuntime.jsx(chunk3GW3UAKB_js.Pagination, { ...pagination, onChange: onPageChange, onPageSizeChange }) : null
|
|
192
192
|
] });
|
|
193
193
|
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { TaskBoard } from './chunk-DBNAL6G6.mjs';
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
|
|
4
|
+
var Kanban = ({
|
|
5
|
+
showCardCount = true,
|
|
6
|
+
allowAddCard = true,
|
|
7
|
+
allowAddColumn = false,
|
|
8
|
+
...props
|
|
9
|
+
}) => {
|
|
10
|
+
return /* @__PURE__ */ jsx(
|
|
11
|
+
TaskBoard,
|
|
12
|
+
{
|
|
13
|
+
showCardCount,
|
|
14
|
+
allowAddCard,
|
|
15
|
+
allowAddColumn,
|
|
16
|
+
...props
|
|
17
|
+
}
|
|
18
|
+
);
|
|
19
|
+
};
|
|
20
|
+
var Kanban_default = Kanban;
|
|
21
|
+
|
|
22
|
+
export { Kanban, Kanban_default };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useTigerConfig } from './chunk-CRSMECWE.mjs';
|
|
2
2
|
import React, { useMemo, useState, useEffect, useRef, useCallback } from 'react';
|
|
3
|
-
import { classNames, taskBoardCardClasses, taskBoardCardDraggingClasses, isWipExceeded, taskBoardColumnClasses, taskBoardColumnDropTargetClasses, taskBoardColumnDraggingClasses, taskBoardDropIndicatorClasses, resolveLocaleText, taskBoardEmptyClasses, taskBoardColumnHeaderClasses, taskBoardWipExceededClasses, taskBoardColumnBodyClasses, taskBoardAddCardClasses, mergeTigerLocale, getTaskBoardLabels, createTouchDragTracker, moveCard, reorderColumns, setDragData, createCardDragData, getDropIndex, parseDragData, createColumnDragData, getColumnDropIndex, findColumnFromPoint, taskBoardBaseClasses } from '@expcat/tigercat-core';
|
|
3
|
+
import { classNames, taskBoardCardClasses, taskBoardCardDraggingClasses, isWipExceeded, getColumnCardCount, taskBoardColumnClasses, taskBoardColumnDropTargetClasses, taskBoardColumnDraggingClasses, taskBoardDropIndicatorClasses, resolveLocaleText, taskBoardEmptyClasses, taskBoardColumnHeaderClasses, taskBoardWipExceededClasses, kanbanCardCountClasses, taskBoardColumnBodyClasses, taskBoardAddCardClasses, mergeTigerLocale, getTaskBoardLabels, filterColumns, createTouchDragTracker, moveCard, reorderColumns, setDragData, createCardDragData, getDropIndex, parseDragData, createColumnDragData, getColumnDropIndex, findColumnFromPoint, taskBoardBaseClasses, kanbanAddColumnClasses } from '@expcat/tigercat-core';
|
|
4
4
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
5
5
|
|
|
6
6
|
var CardItem = React.memo(
|
|
@@ -83,9 +83,12 @@ var ColumnItem = React.memo(
|
|
|
83
83
|
onColumnTouchEnd,
|
|
84
84
|
onCardKeyDown,
|
|
85
85
|
dragStateId,
|
|
86
|
-
kbDragStateId
|
|
86
|
+
kbDragStateId,
|
|
87
|
+
showCardCount,
|
|
88
|
+
allowAddCard
|
|
87
89
|
}) => {
|
|
88
90
|
const wipOver = isWipExceeded(column);
|
|
91
|
+
const cardCount = showCardCount ? getColumnCardCount(column) : null;
|
|
89
92
|
const colClasses = classNames(
|
|
90
93
|
taskBoardColumnClasses,
|
|
91
94
|
isDropTarget && taskBoardColumnDropTargetClasses,
|
|
@@ -153,7 +156,7 @@ var ColumnItem = React.memo(
|
|
|
153
156
|
children: renderColumnHeader ? renderColumnHeader(column) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
154
157
|
/* @__PURE__ */ jsxs("span", { className: wipOver ? taskBoardWipExceededClasses : void 0, children: [
|
|
155
158
|
column.title,
|
|
156
|
-
column.wipLimit != null ? /* @__PURE__ */ jsxs("span", { className: "ml-2 text-xs font-normal opacity-70", title: wipTitle, children: [
|
|
159
|
+
showCardCount && cardCount ? null : column.wipLimit != null ? /* @__PURE__ */ jsxs("span", { className: "ml-2 text-xs font-normal opacity-70", title: wipTitle, children: [
|
|
157
160
|
"(",
|
|
158
161
|
column.cards.length,
|
|
159
162
|
"/",
|
|
@@ -161,6 +164,16 @@ var ColumnItem = React.memo(
|
|
|
161
164
|
")"
|
|
162
165
|
] }) : /* @__PURE__ */ jsx("span", { className: "ml-2 text-xs font-normal opacity-50", children: column.cards.length })
|
|
163
166
|
] }),
|
|
167
|
+
showCardCount && cardCount && /* @__PURE__ */ jsx(
|
|
168
|
+
"span",
|
|
169
|
+
{
|
|
170
|
+
className: classNames(
|
|
171
|
+
kanbanCardCountClasses,
|
|
172
|
+
wipOver && taskBoardWipExceededClasses
|
|
173
|
+
),
|
|
174
|
+
children: cardCount.limit ? `${cardCount.count}/${cardCount.limit}` : `${cardCount.count}`
|
|
175
|
+
}
|
|
176
|
+
),
|
|
164
177
|
column.description && /* @__PURE__ */ jsx("span", { className: "text-xs font-normal text-[var(--tiger-text-muted,#6b7280)] truncate max-w-[120px]", children: column.description })
|
|
165
178
|
] })
|
|
166
179
|
}
|
|
@@ -177,14 +190,22 @@ var ColumnItem = React.memo(
|
|
|
177
190
|
children: cardsContent
|
|
178
191
|
}
|
|
179
192
|
),
|
|
180
|
-
renderColumnFooter ? renderColumnFooter(column) : onCardAdd ? /* @__PURE__ */ jsxs(
|
|
193
|
+
renderColumnFooter ? renderColumnFooter(column) : onCardAdd || allowAddCard ? /* @__PURE__ */ jsxs(
|
|
181
194
|
"div",
|
|
182
195
|
{
|
|
183
196
|
className: classNames(
|
|
184
197
|
"border-t border-[var(--tiger-border,#e5e7eb)]",
|
|
185
198
|
taskBoardAddCardClasses
|
|
186
199
|
),
|
|
187
|
-
|
|
200
|
+
role: "button",
|
|
201
|
+
tabIndex: 0,
|
|
202
|
+
onClick: () => onCardAdd?.(column.id),
|
|
203
|
+
onKeyDown: (e) => {
|
|
204
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
205
|
+
e.preventDefault();
|
|
206
|
+
onCardAdd?.(column.id);
|
|
207
|
+
}
|
|
208
|
+
},
|
|
188
209
|
children: [
|
|
189
210
|
/* @__PURE__ */ jsx("span", { children: "+" }),
|
|
190
211
|
/* @__PURE__ */ jsx("span", { children: resolveLocaleText(labels.addCardText) })
|
|
@@ -195,7 +216,7 @@ var ColumnItem = React.memo(
|
|
|
195
216
|
}
|
|
196
217
|
);
|
|
197
218
|
},
|
|
198
|
-
(prev, next) => prev.column === next.column && prev.colIndex === next.colIndex && prev.isDropTarget === next.isDropTarget && prev.isColDragging === next.isColDragging && prev.dropIdx === next.dropIdx && prev.draggable === next.draggable && prev.columnDraggable === next.columnDraggable && prev.dragType === next.dragType && prev.dragStateId === next.dragStateId && prev.kbDragStateId === next.kbDragStateId && prev.onCardAdd === next.onCardAdd
|
|
219
|
+
(prev, next) => prev.column === next.column && prev.colIndex === next.colIndex && prev.isDropTarget === next.isDropTarget && prev.isColDragging === next.isColDragging && prev.dropIdx === next.dropIdx && prev.draggable === next.draggable && prev.columnDraggable === next.columnDraggable && prev.dragType === next.dragType && prev.dragStateId === next.dragStateId && prev.kbDragStateId === next.kbDragStateId && prev.onCardAdd === next.onCardAdd && prev.showCardCount === next.showCardCount && prev.allowAddCard === next.allowAddCard
|
|
199
220
|
);
|
|
200
221
|
ColumnItem.displayName = "TaskBoardColumnItem";
|
|
201
222
|
var TaskBoard = ({
|
|
@@ -210,6 +231,12 @@ var TaskBoard = ({
|
|
|
210
231
|
onColumnMove,
|
|
211
232
|
onColumnsChange,
|
|
212
233
|
onCardAdd,
|
|
234
|
+
filterText = "",
|
|
235
|
+
hiddenColumns,
|
|
236
|
+
showCardCount = false,
|
|
237
|
+
allowAddCard = false,
|
|
238
|
+
allowAddColumn = false,
|
|
239
|
+
onColumnAdd,
|
|
213
240
|
renderCard: renderCardProp,
|
|
214
241
|
renderColumnHeader,
|
|
215
242
|
renderColumnFooter,
|
|
@@ -230,6 +257,12 @@ var TaskBoard = ({
|
|
|
230
257
|
if (controlledColumns !== void 0) setInnerColumns(controlledColumns);
|
|
231
258
|
}, [controlledColumns]);
|
|
232
259
|
const currentColumns = controlledColumns ?? innerColumns;
|
|
260
|
+
const visibleColumns = useMemo(() => {
|
|
261
|
+
if (!filterText && (!hiddenColumns || hiddenColumns.length === 0)) {
|
|
262
|
+
return currentColumns;
|
|
263
|
+
}
|
|
264
|
+
return filterColumns(currentColumns, filterText, hiddenColumns);
|
|
265
|
+
}, [currentColumns, filterText, hiddenColumns]);
|
|
233
266
|
const columnsRef = useRef(currentColumns);
|
|
234
267
|
columnsRef.current = currentColumns;
|
|
235
268
|
const updateColumns = useCallback(
|
|
@@ -477,7 +510,7 @@ var TaskBoard = ({
|
|
|
477
510
|
const dragType = dragState?.type ?? null;
|
|
478
511
|
const dragStateId = dragState?.type === "card" ? dragState.id : null;
|
|
479
512
|
const kbDragStateId = kbDragState?.id ?? null;
|
|
480
|
-
return /* @__PURE__ */
|
|
513
|
+
return /* @__PURE__ */ jsxs(
|
|
481
514
|
"div",
|
|
482
515
|
{
|
|
483
516
|
ref: boardRef,
|
|
@@ -487,47 +520,67 @@ var TaskBoard = ({
|
|
|
487
520
|
"aria-label": resolveLocaleText(labels.boardAriaLabel),
|
|
488
521
|
"data-tiger-task-board": "",
|
|
489
522
|
...rest,
|
|
490
|
-
children:
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
523
|
+
children: [
|
|
524
|
+
visibleColumns.map((col, i) => {
|
|
525
|
+
const isDropTarget = dragState?.type === "card" && dropTargetColumnId === col.id;
|
|
526
|
+
const isColDragging = dragState?.type === "column" && dragState.id === col.id;
|
|
527
|
+
return /* @__PURE__ */ jsx(
|
|
528
|
+
ColumnItem,
|
|
529
|
+
{
|
|
530
|
+
column: col,
|
|
531
|
+
colIndex: i,
|
|
532
|
+
isDropTarget,
|
|
533
|
+
isColDragging,
|
|
534
|
+
dropIdx: isDropTarget ? dropIdx : -1,
|
|
535
|
+
draggable,
|
|
536
|
+
columnDraggable,
|
|
537
|
+
labels,
|
|
538
|
+
renderCardProp,
|
|
539
|
+
renderColumnHeader,
|
|
540
|
+
renderColumnFooter,
|
|
541
|
+
renderEmptyColumn,
|
|
542
|
+
onCardAdd,
|
|
543
|
+
dragType,
|
|
544
|
+
onCardDragStart: handleCardDragStart,
|
|
545
|
+
onCardDragOver: handleCardDragOver,
|
|
546
|
+
onCardDrop: handleCardDrop,
|
|
547
|
+
onDragEnd: handleDragEnd,
|
|
548
|
+
onDragLeave: handleDragLeave,
|
|
549
|
+
onColumnDragStart: handleColumnDragStart,
|
|
550
|
+
onColumnDragOver: handleColumnDragOver,
|
|
551
|
+
onColumnDrop: handleColumnDrop,
|
|
552
|
+
onCardTouchStart: handleTouchStart,
|
|
553
|
+
onCardTouchMove: handleTouchMove,
|
|
554
|
+
onCardTouchEnd: handleTouchEnd,
|
|
555
|
+
onColumnTouchStart: handleColumnTouchStart,
|
|
556
|
+
onColumnTouchMove: handleColumnTouchMove,
|
|
557
|
+
onColumnTouchEnd: handleColumnTouchEnd,
|
|
558
|
+
onCardKeyDown: handleCardKeyDown,
|
|
559
|
+
dragStateId,
|
|
560
|
+
kbDragStateId,
|
|
561
|
+
showCardCount,
|
|
562
|
+
allowAddCard
|
|
563
|
+
},
|
|
564
|
+
String(col.id)
|
|
565
|
+
);
|
|
566
|
+
}),
|
|
567
|
+
allowAddColumn && /* @__PURE__ */ jsx(
|
|
568
|
+
"div",
|
|
495
569
|
{
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
onCardDragStart: handleCardDragStart,
|
|
511
|
-
onCardDragOver: handleCardDragOver,
|
|
512
|
-
onCardDrop: handleCardDrop,
|
|
513
|
-
onDragEnd: handleDragEnd,
|
|
514
|
-
onDragLeave: handleDragLeave,
|
|
515
|
-
onColumnDragStart: handleColumnDragStart,
|
|
516
|
-
onColumnDragOver: handleColumnDragOver,
|
|
517
|
-
onColumnDrop: handleColumnDrop,
|
|
518
|
-
onCardTouchStart: handleTouchStart,
|
|
519
|
-
onCardTouchMove: handleTouchMove,
|
|
520
|
-
onCardTouchEnd: handleTouchEnd,
|
|
521
|
-
onColumnTouchStart: handleColumnTouchStart,
|
|
522
|
-
onColumnTouchMove: handleColumnTouchMove,
|
|
523
|
-
onColumnTouchEnd: handleColumnTouchEnd,
|
|
524
|
-
onCardKeyDown: handleCardKeyDown,
|
|
525
|
-
dragStateId,
|
|
526
|
-
kbDragStateId
|
|
527
|
-
},
|
|
528
|
-
String(col.id)
|
|
529
|
-
);
|
|
530
|
-
})
|
|
570
|
+
className: kanbanAddColumnClasses,
|
|
571
|
+
role: "button",
|
|
572
|
+
tabIndex: 0,
|
|
573
|
+
onClick: () => onColumnAdd?.(),
|
|
574
|
+
onKeyDown: (e) => {
|
|
575
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
576
|
+
e.preventDefault();
|
|
577
|
+
onColumnAdd?.();
|
|
578
|
+
}
|
|
579
|
+
},
|
|
580
|
+
children: "+ Add column"
|
|
581
|
+
}
|
|
582
|
+
)
|
|
583
|
+
]
|
|
531
584
|
}
|
|
532
585
|
);
|
|
533
586
|
};
|
|
@@ -89,9 +89,12 @@ var ColumnItem = React__default.default.memo(
|
|
|
89
89
|
onColumnTouchEnd,
|
|
90
90
|
onCardKeyDown,
|
|
91
91
|
dragStateId,
|
|
92
|
-
kbDragStateId
|
|
92
|
+
kbDragStateId,
|
|
93
|
+
showCardCount,
|
|
94
|
+
allowAddCard
|
|
93
95
|
}) => {
|
|
94
96
|
const wipOver = tigercatCore.isWipExceeded(column);
|
|
97
|
+
const cardCount = showCardCount ? tigercatCore.getColumnCardCount(column) : null;
|
|
95
98
|
const colClasses = tigercatCore.classNames(
|
|
96
99
|
tigercatCore.taskBoardColumnClasses,
|
|
97
100
|
isDropTarget && tigercatCore.taskBoardColumnDropTargetClasses,
|
|
@@ -159,7 +162,7 @@ var ColumnItem = React__default.default.memo(
|
|
|
159
162
|
children: renderColumnHeader ? renderColumnHeader(column) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
160
163
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: wipOver ? tigercatCore.taskBoardWipExceededClasses : void 0, children: [
|
|
161
164
|
column.title,
|
|
162
|
-
column.wipLimit != null ? /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ml-2 text-xs font-normal opacity-70", title: wipTitle, children: [
|
|
165
|
+
showCardCount && cardCount ? null : column.wipLimit != null ? /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ml-2 text-xs font-normal opacity-70", title: wipTitle, children: [
|
|
163
166
|
"(",
|
|
164
167
|
column.cards.length,
|
|
165
168
|
"/",
|
|
@@ -167,6 +170,16 @@ var ColumnItem = React__default.default.memo(
|
|
|
167
170
|
")"
|
|
168
171
|
] }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-2 text-xs font-normal opacity-50", children: column.cards.length })
|
|
169
172
|
] }),
|
|
173
|
+
showCardCount && cardCount && /* @__PURE__ */ jsxRuntime.jsx(
|
|
174
|
+
"span",
|
|
175
|
+
{
|
|
176
|
+
className: tigercatCore.classNames(
|
|
177
|
+
tigercatCore.kanbanCardCountClasses,
|
|
178
|
+
wipOver && tigercatCore.taskBoardWipExceededClasses
|
|
179
|
+
),
|
|
180
|
+
children: cardCount.limit ? `${cardCount.count}/${cardCount.limit}` : `${cardCount.count}`
|
|
181
|
+
}
|
|
182
|
+
),
|
|
170
183
|
column.description && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-normal text-[var(--tiger-text-muted,#6b7280)] truncate max-w-[120px]", children: column.description })
|
|
171
184
|
] })
|
|
172
185
|
}
|
|
@@ -183,14 +196,22 @@ var ColumnItem = React__default.default.memo(
|
|
|
183
196
|
children: cardsContent
|
|
184
197
|
}
|
|
185
198
|
),
|
|
186
|
-
renderColumnFooter ? renderColumnFooter(column) : onCardAdd ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
199
|
+
renderColumnFooter ? renderColumnFooter(column) : onCardAdd || allowAddCard ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
187
200
|
"div",
|
|
188
201
|
{
|
|
189
202
|
className: tigercatCore.classNames(
|
|
190
203
|
"border-t border-[var(--tiger-border,#e5e7eb)]",
|
|
191
204
|
tigercatCore.taskBoardAddCardClasses
|
|
192
205
|
),
|
|
193
|
-
|
|
206
|
+
role: "button",
|
|
207
|
+
tabIndex: 0,
|
|
208
|
+
onClick: () => onCardAdd?.(column.id),
|
|
209
|
+
onKeyDown: (e) => {
|
|
210
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
211
|
+
e.preventDefault();
|
|
212
|
+
onCardAdd?.(column.id);
|
|
213
|
+
}
|
|
214
|
+
},
|
|
194
215
|
children: [
|
|
195
216
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "+" }),
|
|
196
217
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: tigercatCore.resolveLocaleText(labels.addCardText) })
|
|
@@ -201,7 +222,7 @@ var ColumnItem = React__default.default.memo(
|
|
|
201
222
|
}
|
|
202
223
|
);
|
|
203
224
|
},
|
|
204
|
-
(prev, next) => prev.column === next.column && prev.colIndex === next.colIndex && prev.isDropTarget === next.isDropTarget && prev.isColDragging === next.isColDragging && prev.dropIdx === next.dropIdx && prev.draggable === next.draggable && prev.columnDraggable === next.columnDraggable && prev.dragType === next.dragType && prev.dragStateId === next.dragStateId && prev.kbDragStateId === next.kbDragStateId && prev.onCardAdd === next.onCardAdd
|
|
225
|
+
(prev, next) => prev.column === next.column && prev.colIndex === next.colIndex && prev.isDropTarget === next.isDropTarget && prev.isColDragging === next.isColDragging && prev.dropIdx === next.dropIdx && prev.draggable === next.draggable && prev.columnDraggable === next.columnDraggable && prev.dragType === next.dragType && prev.dragStateId === next.dragStateId && prev.kbDragStateId === next.kbDragStateId && prev.onCardAdd === next.onCardAdd && prev.showCardCount === next.showCardCount && prev.allowAddCard === next.allowAddCard
|
|
205
226
|
);
|
|
206
227
|
ColumnItem.displayName = "TaskBoardColumnItem";
|
|
207
228
|
var TaskBoard = ({
|
|
@@ -216,6 +237,12 @@ var TaskBoard = ({
|
|
|
216
237
|
onColumnMove,
|
|
217
238
|
onColumnsChange,
|
|
218
239
|
onCardAdd,
|
|
240
|
+
filterText = "",
|
|
241
|
+
hiddenColumns,
|
|
242
|
+
showCardCount = false,
|
|
243
|
+
allowAddCard = false,
|
|
244
|
+
allowAddColumn = false,
|
|
245
|
+
onColumnAdd,
|
|
219
246
|
renderCard: renderCardProp,
|
|
220
247
|
renderColumnHeader,
|
|
221
248
|
renderColumnFooter,
|
|
@@ -236,6 +263,12 @@ var TaskBoard = ({
|
|
|
236
263
|
if (controlledColumns !== void 0) setInnerColumns(controlledColumns);
|
|
237
264
|
}, [controlledColumns]);
|
|
238
265
|
const currentColumns = controlledColumns ?? innerColumns;
|
|
266
|
+
const visibleColumns = React.useMemo(() => {
|
|
267
|
+
if (!filterText && (!hiddenColumns || hiddenColumns.length === 0)) {
|
|
268
|
+
return currentColumns;
|
|
269
|
+
}
|
|
270
|
+
return tigercatCore.filterColumns(currentColumns, filterText, hiddenColumns);
|
|
271
|
+
}, [currentColumns, filterText, hiddenColumns]);
|
|
239
272
|
const columnsRef = React.useRef(currentColumns);
|
|
240
273
|
columnsRef.current = currentColumns;
|
|
241
274
|
const updateColumns = React.useCallback(
|
|
@@ -483,7 +516,7 @@ var TaskBoard = ({
|
|
|
483
516
|
const dragType = dragState?.type ?? null;
|
|
484
517
|
const dragStateId = dragState?.type === "card" ? dragState.id : null;
|
|
485
518
|
const kbDragStateId = kbDragState?.id ?? null;
|
|
486
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
519
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
487
520
|
"div",
|
|
488
521
|
{
|
|
489
522
|
ref: boardRef,
|
|
@@ -493,47 +526,67 @@ var TaskBoard = ({
|
|
|
493
526
|
"aria-label": tigercatCore.resolveLocaleText(labels.boardAriaLabel),
|
|
494
527
|
"data-tiger-task-board": "",
|
|
495
528
|
...rest,
|
|
496
|
-
children:
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
529
|
+
children: [
|
|
530
|
+
visibleColumns.map((col, i) => {
|
|
531
|
+
const isDropTarget = dragState?.type === "card" && dropTargetColumnId === col.id;
|
|
532
|
+
const isColDragging = dragState?.type === "column" && dragState.id === col.id;
|
|
533
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
534
|
+
ColumnItem,
|
|
535
|
+
{
|
|
536
|
+
column: col,
|
|
537
|
+
colIndex: i,
|
|
538
|
+
isDropTarget,
|
|
539
|
+
isColDragging,
|
|
540
|
+
dropIdx: isDropTarget ? dropIdx : -1,
|
|
541
|
+
draggable,
|
|
542
|
+
columnDraggable,
|
|
543
|
+
labels,
|
|
544
|
+
renderCardProp,
|
|
545
|
+
renderColumnHeader,
|
|
546
|
+
renderColumnFooter,
|
|
547
|
+
renderEmptyColumn,
|
|
548
|
+
onCardAdd,
|
|
549
|
+
dragType,
|
|
550
|
+
onCardDragStart: handleCardDragStart,
|
|
551
|
+
onCardDragOver: handleCardDragOver,
|
|
552
|
+
onCardDrop: handleCardDrop,
|
|
553
|
+
onDragEnd: handleDragEnd,
|
|
554
|
+
onDragLeave: handleDragLeave,
|
|
555
|
+
onColumnDragStart: handleColumnDragStart,
|
|
556
|
+
onColumnDragOver: handleColumnDragOver,
|
|
557
|
+
onColumnDrop: handleColumnDrop,
|
|
558
|
+
onCardTouchStart: handleTouchStart,
|
|
559
|
+
onCardTouchMove: handleTouchMove,
|
|
560
|
+
onCardTouchEnd: handleTouchEnd,
|
|
561
|
+
onColumnTouchStart: handleColumnTouchStart,
|
|
562
|
+
onColumnTouchMove: handleColumnTouchMove,
|
|
563
|
+
onColumnTouchEnd: handleColumnTouchEnd,
|
|
564
|
+
onCardKeyDown: handleCardKeyDown,
|
|
565
|
+
dragStateId,
|
|
566
|
+
kbDragStateId,
|
|
567
|
+
showCardCount,
|
|
568
|
+
allowAddCard
|
|
569
|
+
},
|
|
570
|
+
String(col.id)
|
|
571
|
+
);
|
|
572
|
+
}),
|
|
573
|
+
allowAddColumn && /* @__PURE__ */ jsxRuntime.jsx(
|
|
574
|
+
"div",
|
|
501
575
|
{
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
onCardDragStart: handleCardDragStart,
|
|
517
|
-
onCardDragOver: handleCardDragOver,
|
|
518
|
-
onCardDrop: handleCardDrop,
|
|
519
|
-
onDragEnd: handleDragEnd,
|
|
520
|
-
onDragLeave: handleDragLeave,
|
|
521
|
-
onColumnDragStart: handleColumnDragStart,
|
|
522
|
-
onColumnDragOver: handleColumnDragOver,
|
|
523
|
-
onColumnDrop: handleColumnDrop,
|
|
524
|
-
onCardTouchStart: handleTouchStart,
|
|
525
|
-
onCardTouchMove: handleTouchMove,
|
|
526
|
-
onCardTouchEnd: handleTouchEnd,
|
|
527
|
-
onColumnTouchStart: handleColumnTouchStart,
|
|
528
|
-
onColumnTouchMove: handleColumnTouchMove,
|
|
529
|
-
onColumnTouchEnd: handleColumnTouchEnd,
|
|
530
|
-
onCardKeyDown: handleCardKeyDown,
|
|
531
|
-
dragStateId,
|
|
532
|
-
kbDragStateId
|
|
533
|
-
},
|
|
534
|
-
String(col.id)
|
|
535
|
-
);
|
|
536
|
-
})
|
|
576
|
+
className: tigercatCore.kanbanAddColumnClasses,
|
|
577
|
+
role: "button",
|
|
578
|
+
tabIndex: 0,
|
|
579
|
+
onClick: () => onColumnAdd?.(),
|
|
580
|
+
onKeyDown: (e) => {
|
|
581
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
582
|
+
e.preventDefault();
|
|
583
|
+
onColumnAdd?.();
|
|
584
|
+
}
|
|
585
|
+
},
|
|
586
|
+
children: "+ Add column"
|
|
587
|
+
}
|
|
588
|
+
)
|
|
589
|
+
]
|
|
537
590
|
}
|
|
538
591
|
);
|
|
539
592
|
};
|
|
@@ -100,7 +100,6 @@ var NotificationCenter = ({
|
|
|
100
100
|
...group,
|
|
101
101
|
items: applyReadOverrides(group.items)
|
|
102
102
|
})),
|
|
103
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
104
103
|
[resolvedGroups, readStateOverrides]
|
|
105
104
|
);
|
|
106
105
|
const effectiveCurrentGroup = react.useMemo(() => {
|
|
@@ -145,7 +144,7 @@ var NotificationCenter = ({
|
|
|
145
144
|
}
|
|
146
145
|
onMarkAllRead?.(currentGroupKey, effectiveCurrentGroupItems);
|
|
147
146
|
};
|
|
148
|
-
const renderItem = (item,
|
|
147
|
+
const renderItem = (item, _index) => {
|
|
149
148
|
const isRead = Boolean(item.read);
|
|
150
149
|
const timeText = item.time ? tigercatCore.formatActivityTime(item.time) : "";
|
|
151
150
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -24,7 +24,7 @@ var InputGroup = ({
|
|
|
24
24
|
return /* @__PURE__ */ jsxRuntime.jsx(InputGroupContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxRuntime.jsx("div", { ...rest, className: groupClasses, role: "group", children }) });
|
|
25
25
|
};
|
|
26
26
|
var InputGroupAddon = ({
|
|
27
|
-
addonType = "text",
|
|
27
|
+
addonType: _addonType = "text",
|
|
28
28
|
className,
|
|
29
29
|
children,
|
|
30
30
|
...rest
|