@economic/taco 2.4.3 → 2.6.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/components/Icon/components/ChartArea.d.ts +3 -0
- package/dist/components/Icon/components/ChartBar.d.ts +3 -0
- package/dist/components/Icon/components/ChartLine.d.ts +3 -0
- package/dist/components/Icon/components/ChartPie.d.ts +3 -0
- package/dist/components/Icon/components/ChartTable.d.ts +3 -0
- package/dist/components/Icon/components/index.d.ts +1 -1
- package/dist/components/Input/Input.d.ts +1 -1
- package/dist/components/Menu/components/Item.d.ts +1 -1
- package/dist/components/Menu/components/Link.d.ts +1 -1
- package/dist/components/Navigation2/components/Link.d.ts +1 -1
- package/dist/components/Select2/components/Option.d.ts +1 -1
- package/dist/components/Select2/components/Search.d.ts +1 -1
- package/dist/components/Table3/hooks/features/useSettings.d.ts +1 -0
- package/dist/components/Table3/hooks/useTable.d.ts +1 -0
- package/dist/components/Table3/types.d.ts +1 -0
- package/dist/components/Tag/Tag.d.ts +1 -1
- package/dist/esm/index.css +5 -0
- package/dist/esm/packages/taco/src/components/Icon/components/ChartArea.js +19 -0
- package/dist/esm/packages/taco/src/components/Icon/components/ChartArea.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Icon/components/ChartBar.js +19 -0
- package/dist/esm/packages/taco/src/components/Icon/components/ChartBar.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Icon/components/ChartLine.js +19 -0
- package/dist/esm/packages/taco/src/components/Icon/components/ChartLine.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Icon/components/ChartPie.js +17 -0
- package/dist/esm/packages/taco/src/components/Icon/components/ChartPie.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Icon/components/ChartTable.js +19 -0
- package/dist/esm/packages/taco/src/components/Icon/components/ChartTable.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Icon/components/index.js +10 -0
- package/dist/esm/packages/taco/src/components/Icon/components/index.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/components/column/Cell.js +7 -2
- package/dist/esm/packages/taco/src/components/Table2/components/column/Cell.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/components/row/Row.js +2 -1
- package/dist/esm/packages/taco/src/components/Table2/components/row/Row.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/Table3.js +3 -1
- package/dist/esm/packages/taco/src/components/Table3/Table3.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Drag.js +2 -2
- package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Drag.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Selection.js +3 -3
- package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Selection.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/rows/Row.js +2 -1
- package/dist/esm/packages/taco/src/components/Table3/components/rows/Row.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/PrintButton.js +2 -1
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/PrintButton.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/PrintIFrame.js +3 -1
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/PrintIFrame.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useColumnFreezing.js +14 -5
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useColumnFreezing.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useSettings.js +10 -4
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useSettings.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/hooks/useConvertChildrenToColumns.js +82 -78
- package/dist/esm/packages/taco/src/components/Table3/hooks/useConvertChildrenToColumns.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/hooks/useCssGrid.js +7 -1
- package/dist/esm/packages/taco/src/components/Table3/hooks/useCssGrid.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/hooks/useTable.js +1 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/useTable.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/hooks/useTablePreset.js +5 -1
- package/dist/esm/packages/taco/src/components/Table3/hooks/useTablePreset.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/types.js.map +1 -1
- package/dist/esm/packages/taco/src/hooks/useLocalStorage.js +11 -1
- package/dist/esm/packages/taco/src/hooks/useLocalStorage.js.map +1 -1
- package/dist/esm/packages/taco/src/utils/hooks/useDropTarget.js +1 -1
- package/dist/esm/packages/taco/src/utils/hooks/useDropTarget.js.map +1 -1
- package/dist/hooks/useLocalStorage.d.ts +1 -1
- package/dist/index.css +5 -0
- package/dist/taco.cjs.development.js +232 -102
- package/dist/taco.cjs.development.js.map +1 -1
- package/dist/taco.cjs.production.min.js +1 -1
- package/dist/taco.cjs.production.min.js.map +1 -1
- package/package.json +2 -2
- package/types.json +21765 -11931
@@ -473,6 +473,79 @@ function IconCashReports(props, svgRef) {
|
|
473
473
|
}
|
474
474
|
var CashReports = /*#__PURE__*/React.forwardRef(IconCashReports);
|
475
475
|
|
476
|
+
function IconChartArea(props, svgRef) {
|
477
|
+
return /*#__PURE__*/React.createElement("svg", Object.assign({
|
478
|
+
fill: "none",
|
479
|
+
xmlns: "http://www.w3.org/2000/svg",
|
480
|
+
viewBox: "0 0 24 24",
|
481
|
+
ref: svgRef
|
482
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
483
|
+
fillRule: "evenodd",
|
484
|
+
clipRule: "evenodd",
|
485
|
+
d: "M3.5 4.75a.75.75 0 00-1.5 0v14.5c0 .414.336.75.75.75h18.5a.75.75 0 000-1.5h-1.5V6a.75.75 0 00-1.14-.64l-6.88 4.188-3.045-2.682a.75.75 0 00-.921-.055L3.5 9.745V4.75zm0 6.816V18.5h14.75V7.335l-6.211 3.782a.75.75 0 01-.886-.078l-3.02-2.66L3.5 11.565z",
|
486
|
+
fill: "currentColor"
|
487
|
+
}));
|
488
|
+
}
|
489
|
+
var ChartArea = /*#__PURE__*/React.forwardRef(IconChartArea);
|
490
|
+
|
491
|
+
function IconChartBar(props, svgRef) {
|
492
|
+
return /*#__PURE__*/React.createElement("svg", Object.assign({
|
493
|
+
fill: "none",
|
494
|
+
xmlns: "http://www.w3.org/2000/svg",
|
495
|
+
viewBox: "0 0 24 24",
|
496
|
+
ref: svgRef
|
497
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
498
|
+
fillRule: "evenodd",
|
499
|
+
clipRule: "evenodd",
|
500
|
+
d: "M11 17.75A1.75 1.75 0 009.25 16h-4.5A1.75 1.75 0 003 17.75v1.5c0 .966.784 1.75 1.75 1.75h4.5A1.75 1.75 0 0011 19.25v-1.5zm6-6.5a1.75 1.75 0 00-1.75-1.75H4.75A1.75 1.75 0 003 11.25v1.5c0 .966.784 1.75 1.75 1.75h10.5A1.75 1.75 0 0017 12.75v-1.5zm4-6.5A1.75 1.75 0 0019.25 3H4.75A1.75 1.75 0 003 4.75v1.5C3 7.216 3.784 8 4.75 8h14.5A1.75 1.75 0 0021 6.25v-1.5zm-11.5 13v1.5a.25.25 0 01-.193.243l-.057.007h-4.5a.25.25 0 01-.243-.193L4.5 19.25v-1.5a.25.25 0 01.193-.243l.057-.007h4.5a.25.25 0 01.243.193l.007.057zm6-6.5v1.5a.25.25 0 01-.193.243L15.25 13H4.75a.25.25 0 01-.243-.193L4.5 12.75v-1.5a.25.25 0 01.193-.243L4.75 11h10.5a.25.25 0 01.243.193l.007.057zm4-6.5v1.5a.25.25 0 01-.193.243l-.057.007H4.75a.25.25 0 01-.243-.193L4.5 6.25v-1.5a.25.25 0 01.193-.243L4.75 4.5h14.5a.25.25 0 01.243.193l.007.057z",
|
501
|
+
fill: "currentColor"
|
502
|
+
}));
|
503
|
+
}
|
504
|
+
var ChartBar = /*#__PURE__*/React.forwardRef(IconChartBar);
|
505
|
+
|
506
|
+
function IconChartLine(props, svgRef) {
|
507
|
+
return /*#__PURE__*/React.createElement("svg", Object.assign({
|
508
|
+
fill: "none",
|
509
|
+
xmlns: "http://www.w3.org/2000/svg",
|
510
|
+
viewBox: "0 0 24 24",
|
511
|
+
ref: svgRef
|
512
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
513
|
+
fillRule: "evenodd",
|
514
|
+
clipRule: "evenodd",
|
515
|
+
d: "M3.5 4.75a.75.75 0 00-1.5 0v14.5c0 .414.336.75.75.75h18.5a.75.75 0 000-1.5H3.5V4.75zm18.06 2.53a.75.75 0 10-1.06-1.06l-5.97 5.97-3.47-3.47a.75.75 0 00-1.06 0l-4.47 4.47a.75.75 0 001.061 1.06l3.94-3.94L14 13.78a.75.75 0 001.06 0l6.5-6.5z",
|
516
|
+
fill: "currentColor"
|
517
|
+
}));
|
518
|
+
}
|
519
|
+
var ChartLine = /*#__PURE__*/React.forwardRef(IconChartLine);
|
520
|
+
|
521
|
+
function IconChartPie(props, svgRef) {
|
522
|
+
return /*#__PURE__*/React.createElement("svg", Object.assign({
|
523
|
+
fill: "none",
|
524
|
+
xmlns: "http://www.w3.org/2000/svg",
|
525
|
+
viewBox: "0 0 24 24",
|
526
|
+
ref: svgRef
|
527
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
528
|
+
d: "M10.25 4.25A.75.75 0 0111 5v8h8a.75.75 0 01.743.648l.007.102c0 4.97-4.03 8.5-9 8.5a9 9 0 01-9-9c0-4.97 3.53-9 8.5-9zM9.5 5.787l-.209.024c-3.69.47-6.041 3.622-6.041 7.439a7.5 7.5 0 007.5 7.5c3.817 0 6.968-2.352 7.44-6.041l.022-.209H10.25a.75.75 0 01-.743-.648L9.5 13.75V5.787zm3.75-4.037a9 9 0 019 9 .75.75 0 01-.75.75h-8.25a.75.75 0 01-.75-.75V2.5a.75.75 0 01.75-.75zM14 3.287V10h6.712l-.023-.209a7.504 7.504 0 00-6.48-6.48L14 3.287z",
|
529
|
+
fill: "currentColor"
|
530
|
+
}));
|
531
|
+
}
|
532
|
+
var ChartPie = /*#__PURE__*/React.forwardRef(IconChartPie);
|
533
|
+
|
534
|
+
function IconChartTable(props, svgRef) {
|
535
|
+
return /*#__PURE__*/React.createElement("svg", Object.assign({
|
536
|
+
fill: "none",
|
537
|
+
xmlns: "http://www.w3.org/2000/svg",
|
538
|
+
viewBox: "0 0 24 24",
|
539
|
+
ref: svgRef
|
540
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
541
|
+
fillRule: "evenodd",
|
542
|
+
clipRule: "evenodd",
|
543
|
+
d: "M4.5 4.5h15v3.75h-15V4.5zM3 9.75V4.5A1.5 1.5 0 014.5 3h15A1.5 1.5 0 0121 4.5v15a1.5 1.5 0 01-1.5 1.5h-15A1.5 1.5 0 013 19.5V9.75zM4.5 14V9.75h4V14h-4zm0 1.5v4h4v-4h-4zm5.5 4h4v-4h-4v4zm5.5 0h4v-4h-4v4zm4-5.5V9.75h-4V14h4zM10 9.75h4V14h-4V9.75z",
|
544
|
+
fill: "currentColor"
|
545
|
+
}));
|
546
|
+
}
|
547
|
+
var ChartTable = /*#__PURE__*/React.forwardRef(IconChartTable);
|
548
|
+
|
476
549
|
function IconChatSolid(props, svgRef) {
|
477
550
|
return /*#__PURE__*/React.createElement("svg", Object.assign({
|
478
551
|
xmlns: "http://www.w3.org/2000/svg",
|
@@ -3140,6 +3213,11 @@ const icons = {
|
|
3140
3213
|
calendar: Calendar,
|
3141
3214
|
'cash-account': CashAccount,
|
3142
3215
|
'cash-reports': CashReports,
|
3216
|
+
'chart-area': ChartArea,
|
3217
|
+
'chart-bar': ChartBar,
|
3218
|
+
'chart-line': ChartLine,
|
3219
|
+
'chart-pie': ChartPie,
|
3220
|
+
'chart-table': ChartTable,
|
3143
3221
|
'chat-solid': ChatSolid,
|
3144
3222
|
chat: Chat,
|
3145
3223
|
'chevron-down-double': ChevronDownDouble,
|
@@ -7832,7 +7910,7 @@ const useDropTarget = onDrop => {
|
|
7832
7910
|
}, []);
|
7833
7911
|
const handleDragLeave = React__default.useCallback(event => {
|
7834
7912
|
event.preventDefault();
|
7835
|
-
if (event.target === event.currentTarget) {
|
7913
|
+
if (event.target === event.currentTarget || event.relatedTarget && !event.currentTarget.contains(event.relatedTarget)) {
|
7836
7914
|
setDraggedOver(false);
|
7837
7915
|
}
|
7838
7916
|
}, []);
|
@@ -12918,7 +12996,7 @@ const Cell = function Cell(props) {
|
|
12918
12996
|
return (_tableRef$current2 = tableRef.current) === null || _tableRef$current2 === void 0 ? void 0 : _tableRef$current2.classList.remove('pb-4');
|
12919
12997
|
};
|
12920
12998
|
}, [isIndicatorVisible, isLastRow]);
|
12921
|
-
const className = cn('[&>[data-taco="tag"]]:-my-0.5', {
|
12999
|
+
const className = cn('[&>[data-taco="tag"]]:-my-0.5', '[[data-dragged-over="true"]_&]:bg-grey-100', {
|
12922
13000
|
'border-b': !isLastRow,
|
12923
13001
|
'sticky z-[1]': isFrozen,
|
12924
13002
|
// use isHoveredRow rather than css group-hover/row because we want to hide hover state when keyboard navigating
|
@@ -12992,9 +13070,14 @@ const Cell = function Cell(props) {
|
|
12992
13070
|
};
|
12993
13071
|
if (meta.editMode.onSave && hasCellControl && (canEditThisCell || isHoveringThisRowWhileEditing && isDataColumn)) {
|
12994
13072
|
attributes.onMouseDown = event => {
|
12995
|
-
handleMouseDown(event);
|
12996
13073
|
const target = event.target;
|
12997
13074
|
const isTargetInput = target !== null && target.nodeName === 'INPUT';
|
13075
|
+
// In Edit mode, If mouse click is happening outside of cell (in case of any dropdowns like date picker or select),
|
13076
|
+
// then it should not be processed as a click on a cell.
|
13077
|
+
if (!event.currentTarget.contains(target)) {
|
13078
|
+
return;
|
13079
|
+
}
|
13080
|
+
handleMouseDown(event);
|
12998
13081
|
// event.target?.select is only truthy for input elements
|
12999
13082
|
// if event.target is active element, then that means we should select the text
|
13000
13083
|
if (isTargetInput && target !== document.activeElement) {
|
@@ -14656,13 +14739,14 @@ const InternalRow = ({
|
|
14656
14739
|
const meta = table.options.meta;
|
14657
14740
|
const isActiveRow = meta.activeRowIndex === rowIndex;
|
14658
14741
|
const isDragging = meta.dragging[row.id];
|
14659
|
-
const [, dropTargetProps] = useDropTarget(event => onRowDrop(event, row.original));
|
14742
|
+
const [isDraggedOver, dropTargetProps] = useDropTarget(event => onRowDrop(event, row.original));
|
14660
14743
|
const attributes = {
|
14661
14744
|
...props,
|
14662
14745
|
...(typeof onRowDrop === 'function' ? dropTargetProps : undefined),
|
14663
14746
|
'aria-current': isActiveRow ? true : undefined,
|
14664
14747
|
'aria-grabbed': isDragging ? true : undefined,
|
14665
14748
|
'data-row-index': rowIndex,
|
14749
|
+
'data-dragged-over': isDraggedOver,
|
14666
14750
|
draggable: meta.enableRowDragging ? true : undefined,
|
14667
14751
|
onMouseEnter: () => setIsHovered(true),
|
14668
14752
|
onMouseLeave: () => setIsHovered(false),
|
@@ -16386,7 +16470,9 @@ const getInputAppearanceClassnames = () => {
|
|
16386
16470
|
const useCssGrid = table => {
|
16387
16471
|
const allVisibleColumns = table.getVisibleLeafColumns();
|
16388
16472
|
const columnSizing = table.getState().columnSizing;
|
16389
|
-
const
|
16473
|
+
const rowsLength = table.getRowModel().rows.length;
|
16474
|
+
const expandedRowsLength = Object.keys(table.getState().expanded).length;
|
16475
|
+
const length = rowsLength + expandedRowsLength;
|
16390
16476
|
const gridTemplateColumns = React__default.useMemo(() => {
|
16391
16477
|
return allVisibleColumns.reduce((accum, column, index) => {
|
16392
16478
|
let size;
|
@@ -16398,6 +16484,8 @@ const useCssGrid = table => {
|
|
16398
16484
|
if (column.id === COLUMN_ID) {
|
16399
16485
|
size = 'minmax(max-content, auto)';
|
16400
16486
|
} else {
|
16487
|
+
// getSize method is used instead of columnSizing state because columnSizing state doesn't have
|
16488
|
+
// sizes of internal columns.
|
16401
16489
|
size = `${column.getSize()}px`;
|
16402
16490
|
}
|
16403
16491
|
} else if (width !== undefined) {
|
@@ -16419,6 +16507,8 @@ const useCssGrid = table => {
|
|
16419
16507
|
}, '');
|
16420
16508
|
}, [allVisibleColumns, columnSizing]);
|
16421
16509
|
const gridTemplateRows = React__default.useMemo(() => {
|
16510
|
+
// 1fr makes sure that there is always a free space between the rows and footer when table height exceeds the
|
16511
|
+
// cumulative height of all rows
|
16422
16512
|
return `min-content repeat(${length}, min-content) 1fr min-content`;
|
16423
16513
|
}, [length]);
|
16424
16514
|
const style = {
|
@@ -16501,6 +16591,7 @@ const DEFAULT_ALL_DISABLED = {
|
|
16501
16591
|
enableColumnOrdering: false,
|
16502
16592
|
enableColumnResizing: false,
|
16503
16593
|
enableFontSize: false,
|
16594
|
+
enableFooter: false,
|
16504
16595
|
enablePrinting: false,
|
16505
16596
|
enableRowDrag: false,
|
16506
16597
|
enableRowDrop: false,
|
@@ -16521,6 +16612,7 @@ const presets = {
|
|
16521
16612
|
enableColumnOrdering: true,
|
16522
16613
|
enableColumnResizing: true,
|
16523
16614
|
enableFontSize: true,
|
16615
|
+
enableFooter: true,
|
16524
16616
|
enablePrinting: false,
|
16525
16617
|
enableRowDrag: true,
|
16526
16618
|
enableRowDrop: true,
|
@@ -16540,6 +16632,7 @@ const presets = {
|
|
16540
16632
|
enableColumnOrdering: true,
|
16541
16633
|
enableColumnResizing: true,
|
16542
16634
|
enableFontSize: true,
|
16635
|
+
enableFooter: true,
|
16543
16636
|
enablePrinting: false,
|
16544
16637
|
enableRowDrag: true,
|
16545
16638
|
enableRowDrop: true,
|
@@ -16555,7 +16648,7 @@ const presets = {
|
|
16555
16648
|
}
|
16556
16649
|
};
|
16557
16650
|
function useTablePreset(props) {
|
16558
|
-
var _props$enableRowExpan, _props$enableRowSelec, _props$enableColumnFr, _props$enableColumnHi, _props$enableColumnOr, _props$enableColumnRe, _props$enableFontSize, _props$enablePrinting, _props$enableRowDrag, _props$enableRowDrop, _props$enableRowGoto, _props$enableRowHeigh, _props$enableRowSelec2, _props$enableEditing, _props$enableFilterin, _props$enableSearch, _props$enableSorting;
|
16651
|
+
var _props$enableRowExpan, _props$enableRowSelec, _props$enableColumnFr, _props$enableColumnHi, _props$enableColumnOr, _props$enableColumnRe, _props$enableFontSize, _props$enableFooter, _props$enablePrinting, _props$enableRowDrag, _props$enableRowDrop, _props$enableRowGoto, _props$enableRowHeigh, _props$enableRowSelec2, _props$enableEditing, _props$enableFilterin, _props$enableSearch, _props$enableSorting;
|
16559
16652
|
const presetOptions = props.preset ? presets[props.preset] : DEFAULT_ALL_DISABLED;
|
16560
16653
|
const enableRowExpansion = (_props$enableRowExpan = props.enableRowExpansion) !== null && _props$enableRowExpan !== void 0 ? _props$enableRowExpan : presetOptions.enableRowExpansion;
|
16561
16654
|
const enableRowSelection = (_props$enableRowSelec = props.enableRowSelection) !== null && _props$enableRowSelec !== void 0 ? _props$enableRowSelec : presetOptions.enableRowSelection;
|
@@ -16574,6 +16667,7 @@ function useTablePreset(props) {
|
|
16574
16667
|
enableColumnOrdering: (_props$enableColumnOr = props.enableColumnOrdering) !== null && _props$enableColumnOr !== void 0 ? _props$enableColumnOr : presetOptions.enableColumnOrdering,
|
16575
16668
|
enableColumnResizing: (_props$enableColumnRe = props.enableColumnResizing) !== null && _props$enableColumnRe !== void 0 ? _props$enableColumnRe : presetOptions.enableColumnResizing,
|
16576
16669
|
enableFontSize: (_props$enableFontSize = props.enableFontSize) !== null && _props$enableFontSize !== void 0 ? _props$enableFontSize : presetOptions.enableFontSize,
|
16670
|
+
enableFooter: (_props$enableFooter = props.enableFooter) !== null && _props$enableFooter !== void 0 ? _props$enableFooter : presetOptions.enableFooter,
|
16577
16671
|
enablePrinting: (_props$enablePrinting = props.enablePrinting) !== null && _props$enablePrinting !== void 0 ? _props$enablePrinting : presetOptions.enablePrinting,
|
16578
16672
|
enableRowDrag: ((_props$enableRowDrag = props.enableRowDrag) !== null && _props$enableRowDrag !== void 0 ? _props$enableRowDrag : presetOptions.enableRowDrag) && !!props.onRowDrag,
|
16579
16673
|
enableRowDrop: ((_props$enableRowDrop = props.enableRowDrop) !== null && _props$enableRowDrop !== void 0 ? _props$enableRowDrop : presetOptions.enableRowDrop) && !!props.onRowDrop,
|
@@ -16900,17 +16994,26 @@ function useColumnFreezingStyle(tableId, table) {
|
|
16900
16994
|
columnVisibility
|
16901
16995
|
} = table.getState();
|
16902
16996
|
const tableMeta = table.options.meta;
|
16903
|
-
const frozenColumnIndex =
|
16997
|
+
const frozenColumnIndex =
|
16998
|
+
// If column freezing is not enabled then only internal frozen column should be frozen.
|
16999
|
+
(tableMeta.columnFreezing.isEnabled ? (_tableMeta$columnFree = tableMeta.columnFreezing.frozenColumnIndex) !== null && _tableMeta$columnFree !== void 0 ? _tableMeta$columnFree : -1 : -1) + tableMeta.columnFreezing.frozenInternalColumnCount;
|
16904
17000
|
const style = React__default.useMemo(() => {
|
16905
17001
|
if (tableMeta.columnFreezing.frozenInternalColumnCount > 0 || tableMeta.columnFreezing.isEnabled && frozenColumnIndex !== undefined) {
|
16906
|
-
|
17002
|
+
var _visibleFrozenColumns;
|
17003
|
+
const visibleFrozenColumns = table.getVisibleLeafColumns().slice(0, frozenColumnIndex + 1);
|
16907
17004
|
// if all frozen columns haven't had their size set yet, then abort
|
16908
|
-
if (visibleFrozenColumns.every(
|
17005
|
+
if (visibleFrozenColumns.every(column => columnSizing[column.id] === undefined)) {
|
16909
17006
|
return undefined;
|
16910
17007
|
}
|
16911
17008
|
const offsets = {};
|
16912
|
-
visibleFrozenColumns.reduce((offset,
|
17009
|
+
visibleFrozenColumns.reduce((offset, column) => {
|
17010
|
+
const columnId = column.id;
|
16913
17011
|
offsets[columnId] = offset;
|
17012
|
+
if (isInternalColumn$1(columnId)) {
|
17013
|
+
// getSize method is used instead of columnSizing state because columnSizing state doesn't have
|
17014
|
+
// sizes of internal columns.
|
17015
|
+
return offset + column.getSize();
|
17016
|
+
}
|
16914
17017
|
return offset + columnSizing[columnId];
|
16915
17018
|
}, 0);
|
16916
17019
|
const styles = [Object.values(offsets).map((offset, index) => `#${tableId} [role="row"] > :nth-child(${index + 1}) { left: ${offset}px }`).join('\n'), `#${tableId} [role="row"] > :not(:nth-child(n+${frozenColumnIndex + 2})) {
|
@@ -16919,7 +17022,7 @@ function useColumnFreezingStyle(tableId, table) {
|
|
16919
17022
|
}`, `#${tableId}[data-horizontally-scrolled="true"] [role="row"] > :nth-child(${frozenColumnIndex + 1}) {
|
16920
17023
|
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), 6px 0px 6px rgb(0 0 0/8%), 1px 0px 0px #DDDDDD;
|
16921
17024
|
}`];
|
16922
|
-
const columnId = visibleFrozenColumns[frozenColumnIndex];
|
17025
|
+
const columnId = (_visibleFrozenColumns = visibleFrozenColumns[frozenColumnIndex]) === null || _visibleFrozenColumns === void 0 ? void 0 : _visibleFrozenColumns.id;
|
16923
17026
|
// frozenColumnIndex could not be in the visible frozen column so it is important to check if columnId
|
16924
17027
|
// exists before checking if it is internal.
|
16925
17028
|
//
|
@@ -17807,7 +17910,7 @@ const Cell$4 = /*#__PURE__*/React__default.memo(function MemoedCell(context) {
|
|
17807
17910
|
return newTableMeta.currentRow.currentRowIndex === oldTableMeta.currentRow.currentRowIndex && newProps.row.getIsSelected() !== oldProps.row.getIsSelected();
|
17808
17911
|
});
|
17809
17912
|
function createRowSelectionColumn$1(hasDrag, hasExpansion) {
|
17810
|
-
const size = hasDrag ? 22 : 40;
|
17913
|
+
const size = hasDrag && hasExpansion ? 22 : 40;
|
17811
17914
|
return {
|
17812
17915
|
id: COLUMN_ID$2,
|
17813
17916
|
header: Header$3,
|
@@ -17817,7 +17920,7 @@ function createRowSelectionColumn$1(hasDrag, hasExpansion) {
|
|
17817
17920
|
align: 'center',
|
17818
17921
|
className: cn('!pt-[var(--table3-row-padding)] !justify-end !p-0', {
|
17819
17922
|
'!pr-0.5': hasExpansion,
|
17820
|
-
'!pr-
|
17923
|
+
'!pr-3': !hasExpansion
|
17821
17924
|
}),
|
17822
17925
|
enableOrdering: false,
|
17823
17926
|
enableSearch: false,
|
@@ -17825,7 +17928,7 @@ function createRowSelectionColumn$1(hasDrag, hasExpansion) {
|
|
17825
17928
|
header: '',
|
17826
17929
|
headerClassName: cn('items-center !justify-end !p-0', {
|
17827
17930
|
'!pr-0.5': hasExpansion,
|
17828
|
-
'!pr-
|
17931
|
+
'!pr-3': !hasExpansion
|
17829
17932
|
})
|
17830
17933
|
},
|
17831
17934
|
// options
|
@@ -18000,8 +18103,8 @@ function createRowDragColumn(onRowDrag) {
|
|
18000
18103
|
},
|
18001
18104
|
// options
|
18002
18105
|
enableResizing: false,
|
18003
|
-
size:
|
18004
|
-
minSize:
|
18106
|
+
size: 20,
|
18107
|
+
minSize: 20
|
18005
18108
|
};
|
18006
18109
|
}
|
18007
18110
|
|
@@ -18021,88 +18124,92 @@ function getSortingFn$1(dataType, customFnOrBuiltIn) {
|
|
18021
18124
|
return 'auto';
|
18022
18125
|
}
|
18023
18126
|
function useConvertChildrenToColumns(props, options, editing) {
|
18024
|
-
|
18025
|
-
|
18026
|
-
|
18027
|
-
|
18028
|
-
|
18029
|
-
|
18030
|
-
|
18031
|
-
|
18032
|
-
|
18033
|
-
|
18034
|
-
|
18035
|
-
|
18036
|
-
|
18037
|
-
|
18038
|
-
|
18039
|
-
|
18040
|
-
|
18041
|
-
|
18127
|
+
// It's important to memoise column definitions, because it prevents columns like "Drag column" to re-render on every state change,
|
18128
|
+
// and break dragging at the moment it happens.
|
18129
|
+
return React__default.useMemo(() => {
|
18130
|
+
var _props$actionsForRow;
|
18131
|
+
const columnHelper = reactTable$1.createColumnHelper();
|
18132
|
+
const columns = [];
|
18133
|
+
const defaultColumnSizing = {};
|
18134
|
+
const defaultColumnVisibility = {};
|
18135
|
+
const defaultSorting = [];
|
18136
|
+
React__default.Children.toArray(props.children).filter(child => !!child) // remove falsey children
|
18137
|
+
.forEach(child => {
|
18138
|
+
if ( /*#__PURE__*/React__default.isValidElement(child) && child.props.accessor) {
|
18139
|
+
var _child$props$enableRe, _child$props$enableFi, _child$props$enableSo, _child$props$enableHi, _child$props$enableOr, _child$props$enableSe, _child$props$enableTr;
|
18140
|
+
if (child.props.defaultWidth) {
|
18141
|
+
defaultColumnSizing[child.props.accessor] = child.props.defaultWidth === 'grow' ? '1fr' : child.props.defaultWidth;
|
18142
|
+
}
|
18143
|
+
if (child.props.defaultHidden && options.enableColumnHiding) {
|
18144
|
+
defaultColumnVisibility[child.props.accessor] = false;
|
18145
|
+
}
|
18146
|
+
if (child.props.sort !== undefined) {
|
18147
|
+
defaultSorting.push({
|
18148
|
+
id: child.props.accessor,
|
18149
|
+
desc: child.props.sort === 'desc'
|
18150
|
+
});
|
18151
|
+
}
|
18152
|
+
columns.push({
|
18153
|
+
accessorKey: child.props.accessor,
|
18042
18154
|
id: child.props.accessor,
|
18043
|
-
|
18155
|
+
header: Header$2,
|
18156
|
+
cell: Cell$3,
|
18157
|
+
footer: Footer$4,
|
18158
|
+
// sizing
|
18159
|
+
minSize: MIN_COLUMN_SIZE$1,
|
18160
|
+
enableResizing: (_child$props$enableRe = child.props.enableResizing) !== null && _child$props$enableRe !== void 0 ? _child$props$enableRe : true,
|
18161
|
+
// filtering
|
18162
|
+
enableColumnFilter: (_child$props$enableFi = child.props.enableFiltering) !== null && _child$props$enableFi !== void 0 ? _child$props$enableFi : true,
|
18163
|
+
filterFn: 'tacoFilter',
|
18164
|
+
// sorting
|
18165
|
+
enableSorting: (_child$props$enableSo = child.props.enableSorting) !== null && _child$props$enableSo !== void 0 ? _child$props$enableSo : true,
|
18166
|
+
sortingFn: getSortingFn$1(child.props.dataType, child.props.sortFn),
|
18167
|
+
sortDescFirst: false,
|
18168
|
+
sortUndefined: 1,
|
18169
|
+
// visibility
|
18170
|
+
enableHiding: (_child$props$enableHi = child.props.enableHiding) !== null && _child$props$enableHi !== void 0 ? _child$props$enableHi : true,
|
18171
|
+
// custom options
|
18172
|
+
meta: {
|
18173
|
+
align: child.props.align,
|
18174
|
+
className: child.props.className,
|
18175
|
+
control: child.props.control,
|
18176
|
+
dataType: child.props.dataType,
|
18177
|
+
enableOrdering: (_child$props$enableOr = child.props.enableOrdering) !== null && _child$props$enableOr !== void 0 ? _child$props$enableOr : true,
|
18178
|
+
enableSearch: (_child$props$enableSe = child.props.enableSearch) !== null && _child$props$enableSe !== void 0 ? _child$props$enableSe : true,
|
18179
|
+
enableTruncate: (_child$props$enableTr = child.props.enableTruncate) !== null && _child$props$enableTr !== void 0 ? _child$props$enableTr : false,
|
18180
|
+
filters: child.props.filters,
|
18181
|
+
footer: child.props.footer,
|
18182
|
+
header: child.props.header,
|
18183
|
+
headerClassName: child.props.headerClassName,
|
18184
|
+
menu: child.props.menu,
|
18185
|
+
renderer: child.props.renderer,
|
18186
|
+
tooltip: child.props.tooltip
|
18187
|
+
}
|
18044
18188
|
});
|
18045
18189
|
}
|
18046
|
-
|
18047
|
-
|
18048
|
-
|
18049
|
-
header: Header$2,
|
18050
|
-
cell: Cell$3,
|
18051
|
-
footer: Footer$4,
|
18052
|
-
// sizing
|
18053
|
-
minSize: MIN_COLUMN_SIZE$1,
|
18054
|
-
enableResizing: (_child$props$enableRe = child.props.enableResizing) !== null && _child$props$enableRe !== void 0 ? _child$props$enableRe : true,
|
18055
|
-
// filtering
|
18056
|
-
enableColumnFilter: (_child$props$enableFi = child.props.enableFiltering) !== null && _child$props$enableFi !== void 0 ? _child$props$enableFi : true,
|
18057
|
-
filterFn: 'tacoFilter',
|
18058
|
-
// sorting
|
18059
|
-
enableSorting: (_child$props$enableSo = child.props.enableSorting) !== null && _child$props$enableSo !== void 0 ? _child$props$enableSo : true,
|
18060
|
-
sortingFn: getSortingFn$1(child.props.dataType, child.props.sortFn),
|
18061
|
-
sortDescFirst: false,
|
18062
|
-
sortUndefined: 1,
|
18063
|
-
// visibility
|
18064
|
-
enableHiding: (_child$props$enableHi = child.props.enableHiding) !== null && _child$props$enableHi !== void 0 ? _child$props$enableHi : true,
|
18065
|
-
// custom options
|
18066
|
-
meta: {
|
18067
|
-
align: child.props.align,
|
18068
|
-
className: child.props.className,
|
18069
|
-
control: child.props.control,
|
18070
|
-
dataType: child.props.dataType,
|
18071
|
-
enableOrdering: (_child$props$enableOr = child.props.enableOrdering) !== null && _child$props$enableOr !== void 0 ? _child$props$enableOr : true,
|
18072
|
-
enableSearch: (_child$props$enableSe = child.props.enableSearch) !== null && _child$props$enableSe !== void 0 ? _child$props$enableSe : true,
|
18073
|
-
enableTruncate: (_child$props$enableTr = child.props.enableTruncate) !== null && _child$props$enableTr !== void 0 ? _child$props$enableTr : false,
|
18074
|
-
filters: child.props.filters,
|
18075
|
-
footer: child.props.footer,
|
18076
|
-
header: child.props.header,
|
18077
|
-
headerClassName: child.props.headerClassName,
|
18078
|
-
menu: child.props.menu,
|
18079
|
-
renderer: child.props.renderer,
|
18080
|
-
tooltip: child.props.tooltip
|
18081
|
-
}
|
18082
|
-
});
|
18190
|
+
});
|
18191
|
+
if (options.enableRowExpansion && props.expandedRowRenderer) {
|
18192
|
+
columns.unshift(columnHelper.display(createRowExpansionColumn$1(props.expandedRowRenderer)));
|
18083
18193
|
}
|
18084
|
-
|
18085
|
-
|
18086
|
-
|
18087
|
-
|
18088
|
-
|
18089
|
-
|
18090
|
-
|
18091
|
-
|
18092
|
-
|
18093
|
-
|
18094
|
-
|
18095
|
-
|
18096
|
-
|
18097
|
-
|
18098
|
-
|
18099
|
-
|
18100
|
-
|
18101
|
-
|
18102
|
-
|
18103
|
-
defaultColumnVisibility,
|
18104
|
-
defaultSorting
|
18105
|
-
};
|
18194
|
+
if (options.enableRowSelection) {
|
18195
|
+
columns.unshift(columnHelper.display(createRowSelectionColumn$1(!!(options.enableRowDrag && props.onRowDrag), !!props.expandedRowRenderer)));
|
18196
|
+
}
|
18197
|
+
if (options.enableRowDrag && props.onRowDrag) {
|
18198
|
+
columns.unshift(columnHelper.display(createRowDragColumn(props.onRowDrag)));
|
18199
|
+
}
|
18200
|
+
if ((_props$actionsForRow = props.actionsForRow) !== null && _props$actionsForRow !== void 0 && _props$actionsForRow.length) {
|
18201
|
+
columns.push(columnHelper.display(createRowActionsColumn$1()));
|
18202
|
+
}
|
18203
|
+
if (editing.isEnabled && editing.isEditing) {
|
18204
|
+
columns.push(columnHelper.display(createRowEditingActionsColumn()));
|
18205
|
+
}
|
18206
|
+
return {
|
18207
|
+
columns,
|
18208
|
+
defaultColumnSizing,
|
18209
|
+
defaultColumnVisibility,
|
18210
|
+
defaultSorting
|
18211
|
+
};
|
18212
|
+
}, [props.children]);
|
18106
18213
|
}
|
18107
18214
|
|
18108
18215
|
function usePrinting(isEnabled, loadAll, showWarningWhenPrintingLargeDataset = true) {
|
@@ -18231,6 +18338,9 @@ function useRowActions$1(actionsForRow, actionsForRowLength = ACTIONS_ON_ROW_LEN
|
|
18231
18338
|
|
18232
18339
|
const useLocalStorage = (key, initialValue) => {
|
18233
18340
|
const [state, setState] = React__default.useState(() => {
|
18341
|
+
if (!key) {
|
18342
|
+
return initialValue;
|
18343
|
+
}
|
18234
18344
|
try {
|
18235
18345
|
const localStorageValue = localStorage.getItem(key);
|
18236
18346
|
if (typeof localStorageValue !== 'string') {
|
@@ -18247,6 +18357,9 @@ const useLocalStorage = (key, initialValue) => {
|
|
18247
18357
|
}
|
18248
18358
|
});
|
18249
18359
|
React__default.useEffect(() => {
|
18360
|
+
if (!key) {
|
18361
|
+
return;
|
18362
|
+
}
|
18250
18363
|
try {
|
18251
18364
|
const serializedState = JSON.stringify(state);
|
18252
18365
|
localStorage.setItem(key, serializedState);
|
@@ -18255,7 +18368,11 @@ const useLocalStorage = (key, initialValue) => {
|
|
18255
18368
|
// localStorage can throw. Also JSON.stringify can throw.
|
18256
18369
|
}
|
18257
18370
|
}, [key, state]);
|
18258
|
-
const clear = () =>
|
18371
|
+
const clear = () => {
|
18372
|
+
if (key) {
|
18373
|
+
localStorage.removeItem(key);
|
18374
|
+
}
|
18375
|
+
};
|
18259
18376
|
return [state, setState, clear];
|
18260
18377
|
};
|
18261
18378
|
|
@@ -18263,10 +18380,16 @@ function useTacoSettings() {
|
|
18263
18380
|
return React__default.useContext(TacoContext);
|
18264
18381
|
}
|
18265
18382
|
|
18266
|
-
function
|
18383
|
+
function useUniqueTableId(tableId) {
|
18267
18384
|
const tacoSettings = useTacoSettings();
|
18268
|
-
|
18269
|
-
|
18385
|
+
return `taco.${tacoSettings.uniqueUserIdentifier}.table3.${tableId}.settings`;
|
18386
|
+
}
|
18387
|
+
function useSettings(id, defaultSettings = {}, onChangeSettings) {
|
18388
|
+
const uniqueId = useUniqueTableId(id);
|
18389
|
+
// If the onChangeSettings prop is provided, we intend to handle settings changes externally rather than saving them
|
18390
|
+
// to local storage.
|
18391
|
+
const key = !onChangeSettings ? uniqueId : undefined;
|
18392
|
+
const [persistedSettings, setPersistedSettings] = useLocalStorage(key, defaultSettings);
|
18270
18393
|
return React__default.useMemo(() => {
|
18271
18394
|
if (onChangeSettings) {
|
18272
18395
|
return [defaultSettings, onChangeSettings];
|
@@ -18393,6 +18516,7 @@ function useTable$2(props) {
|
|
18393
18516
|
columnOrdering,
|
18394
18517
|
currentRow,
|
18395
18518
|
editing,
|
18519
|
+
enableFooter: options.enableFooter,
|
18396
18520
|
fontSize,
|
18397
18521
|
hoverState,
|
18398
18522
|
isUsingServer: !!props.loadPage,
|
@@ -18659,7 +18783,7 @@ const MemoedRow = /*#__PURE__*/React__default.memo(function MemoedRow(props) {
|
|
18659
18783
|
}
|
18660
18784
|
setIsHovered(false);
|
18661
18785
|
};
|
18662
|
-
const [, dropTargetProps] = useDropTarget(event => onDrop === null || onDrop === void 0 ? void 0 : onDrop(event, row.original));
|
18786
|
+
const [isDraggedOver, dropTargetProps] = useDropTarget(event => onDrop === null || onDrop === void 0 ? void 0 : onDrop(event, row.original));
|
18663
18787
|
const className = cn('group/row contents',
|
18664
18788
|
// resizing column requires dragging, which means the mouse might (on rare occasions) move over rows and trigger hover state
|
18665
18789
|
// that in turn triggers rendering of e.g. row actions, which could cause janky ui - so don't allow mouse interaction when resizing
|
@@ -18669,6 +18793,7 @@ const MemoedRow = /*#__PURE__*/React__default.memo(function MemoedRow(props) {
|
|
18669
18793
|
return /*#__PURE__*/React__default.createElement("div", Object.assign({}, attributes, onDrop ? dropTargetProps : undefined, {
|
18670
18794
|
className: className,
|
18671
18795
|
"data-row-index": index,
|
18796
|
+
"data-dragged-over": isDraggedOver,
|
18672
18797
|
onClick: handleClick,
|
18673
18798
|
onClickCapture: handleClickCapture,
|
18674
18799
|
onMouseEnter: handleMouseEnter,
|
@@ -19853,7 +19978,9 @@ function PrintIFrame({
|
|
19853
19978
|
enableRowDrag: false,
|
19854
19979
|
enableRowDrop: false,
|
19855
19980
|
enableRowSelectionSingle: false,
|
19856
|
-
preset: undefined
|
19981
|
+
preset: undefined,
|
19982
|
+
// The presence of the onChangeSettings prop ensures that settings won't be stored in local storage.
|
19983
|
+
onChangeSettings: () => undefined
|
19857
19984
|
};
|
19858
19985
|
// -top-60 -left-60 styles make sure that iframe is added outside of the viewport
|
19859
19986
|
return /*#__PURE__*/React__default.createElement("iframe", {
|
@@ -19929,6 +20056,7 @@ function PrintButton(props) {
|
|
19929
20056
|
const {
|
19930
20057
|
printWarningDialogVisibility
|
19931
20058
|
} = tableMeta.printing;
|
20059
|
+
const printTableId = `${tableProps.id}_print`;
|
19932
20060
|
const defaultSettings = React__default.useMemo(() => ({
|
19933
20061
|
columnFreezingIndex: tableMeta.columnFreezing.frozenColumnIndex,
|
19934
20062
|
columnOrder: state.columnOrder,
|
@@ -19945,7 +20073,7 @@ function PrintButton(props) {
|
|
19945
20073
|
const iframeTableProps = {
|
19946
20074
|
...tableProps,
|
19947
20075
|
defaultSettings,
|
19948
|
-
id:
|
20076
|
+
id: printTableId
|
19949
20077
|
};
|
19950
20078
|
useGlobalKeyDown({
|
19951
20079
|
key: 'p',
|
@@ -20478,6 +20606,8 @@ const Table$1 = /*#__PURE__*/fixedForwardRef(function Table3(props, ref) {
|
|
20478
20606
|
"data-taco": "table2-body",
|
20479
20607
|
role: "rowgroup"
|
20480
20608
|
}, renderBody())), /*#__PURE__*/React__default.createElement("div", {
|
20609
|
+
className: "border-grey-300 col-span-full -mt-px border-t"
|
20610
|
+
}), tableMeta.enableFooter ? /*#__PURE__*/React__default.createElement("div", {
|
20481
20611
|
className: "group/footer contents",
|
20482
20612
|
"data-taco": "table2-footer",
|
20483
20613
|
role: "rowgroup"
|
@@ -20490,7 +20620,7 @@ const Table$1 = /*#__PURE__*/fixedForwardRef(function Table3(props, ref) {
|
|
20490
20620
|
}, reactTable$1.flexRender(footer.column.columnDef.footer, footer.getContext()))))), length ? /*#__PURE__*/React__default.createElement(Summary$1, {
|
20491
20621
|
length: length,
|
20492
20622
|
table: table
|
20493
|
-
}) : null)) : /*#__PURE__*/React__default.createElement("div", {
|
20623
|
+
}) : null) : null) : /*#__PURE__*/React__default.createElement("div", {
|
20494
20624
|
className: "col-span-full min-h-[theme(spacing.8)]"
|
20495
20625
|
}, EmptyState ? /*#__PURE__*/React__default.createElement(EmptyState, null) : null)));
|
20496
20626
|
});
|