nntc-ui 0.0.83 → 0.0.85
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/index.css +17 -3
- package/index.d.ts +5 -2
- package/index.js +162 -26
- package/package.json +1 -1
package/index.css
CHANGED
|
@@ -733,11 +733,12 @@
|
|
|
733
733
|
}
|
|
734
734
|
.dateTime_popoverTarget {
|
|
735
735
|
position: absolute;
|
|
736
|
-
|
|
736
|
+
top: 0;
|
|
737
737
|
left: 0;
|
|
738
|
-
z-index:
|
|
738
|
+
z-index: 0;
|
|
739
739
|
width: 100%;
|
|
740
|
-
height:
|
|
740
|
+
height: 100%;
|
|
741
|
+
pointer-events: none;
|
|
741
742
|
}
|
|
742
743
|
.dateTime_popoverContent {
|
|
743
744
|
max-width: none;
|
|
@@ -1899,10 +1900,20 @@
|
|
|
1899
1900
|
border-bottom: 1px solid var(--border-color);
|
|
1900
1901
|
}
|
|
1901
1902
|
.virtualTable_td {
|
|
1903
|
+
position: relative;
|
|
1902
1904
|
display: flex;
|
|
1903
1905
|
align-items: center;
|
|
1904
1906
|
padding: 0;
|
|
1905
1907
|
}
|
|
1908
|
+
.virtualTable_rowspanContent {
|
|
1909
|
+
position: absolute;
|
|
1910
|
+
top: 0;
|
|
1911
|
+
left: 0;
|
|
1912
|
+
z-index: 3;
|
|
1913
|
+
display: flex;
|
|
1914
|
+
align-items: center;
|
|
1915
|
+
width: 100%;
|
|
1916
|
+
}
|
|
1906
1917
|
.virtualTable_root.virtualTable_bordersAll .virtualTable_td:nth-child(2),
|
|
1907
1918
|
.virtualTable_root.virtualTable_root.virtualTable_bordersVertical .virtualTable_td:nth-child(2) {
|
|
1908
1919
|
border-left: 1px solid var(--border-color);
|
|
@@ -2057,6 +2068,9 @@
|
|
|
2057
2068
|
font-size: calc(var(--text-body2-size) - 4px);
|
|
2058
2069
|
line-height: calc(var(--text-body2-height) - 4px);
|
|
2059
2070
|
}
|
|
2071
|
+
.virtualTable_input {
|
|
2072
|
+
border-radius: 0 !important;
|
|
2073
|
+
}
|
|
2060
2074
|
|
|
2061
2075
|
/* src/components/view/VirtualTable/ui/HeaderDropdown/headerDropdown.module.css */
|
|
2062
2076
|
.headerDropdown_root {
|
package/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { ButtonHTMLAttributes, ReactNode, DetailedHTMLProps, InputHTMLAttributes, PropsWithChildren,
|
|
2
|
+
import { ButtonHTMLAttributes, ReactNode, DetailedHTMLProps, InputHTMLAttributes, PropsWithChildren, HTMLInputTypeAttribute, JSX, MutableRefObject, ReactElement, CSSProperties, HTMLProps, ElementType } from 'react';
|
|
3
3
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
4
|
import { Placement } from '@floating-ui/react';
|
|
5
5
|
|
|
@@ -96,6 +96,7 @@ interface Props$k {
|
|
|
96
96
|
variant?: Variant$6;
|
|
97
97
|
isPeriod?: boolean;
|
|
98
98
|
valueType?: ValueType;
|
|
99
|
+
defaultOpen?: boolean;
|
|
99
100
|
componentSize?: Size$9;
|
|
100
101
|
fullWidth?: boolean;
|
|
101
102
|
label?: string;
|
|
@@ -279,6 +280,7 @@ interface TableCell {
|
|
|
279
280
|
};
|
|
280
281
|
tooltip?: string;
|
|
281
282
|
fill?: 'error' | 'success';
|
|
283
|
+
rowspan?: number;
|
|
282
284
|
}
|
|
283
285
|
|
|
284
286
|
interface TableRow {
|
|
@@ -332,6 +334,7 @@ interface TableColumn {
|
|
|
332
334
|
}) => void;
|
|
333
335
|
verticalAlign?: VerticalAlign;
|
|
334
336
|
toFixed?: number;
|
|
337
|
+
inputType?: HTMLInputTypeAttribute;
|
|
335
338
|
}
|
|
336
339
|
|
|
337
340
|
interface VirtualTableRef {
|
|
@@ -347,7 +350,7 @@ interface Props$8 {
|
|
|
347
350
|
additionalColumnsViews?: (id: string, value: string | number | undefined, payload: {
|
|
348
351
|
[key: string]: string;
|
|
349
352
|
} | undefined) => {
|
|
350
|
-
edit: ((onChange: (
|
|
353
|
+
edit: ((onChange: (changeValue?: string, withBlur?: boolean) => void, onBlur: () => void) => JSX.Element | null) | null;
|
|
351
354
|
view: JSX.Element | null;
|
|
352
355
|
};
|
|
353
356
|
onChangeCell?: (rowIndex: number, columnId: string, value: string | number | undefined, original?: TableRow) => void;
|
package/index.js
CHANGED
|
@@ -1540,6 +1540,7 @@ var DateTime = forwardRef5(
|
|
|
1540
1540
|
variant = "filled",
|
|
1541
1541
|
isPeriod = false,
|
|
1542
1542
|
valueType = "date",
|
|
1543
|
+
defaultOpen = false,
|
|
1543
1544
|
componentSize = "medium",
|
|
1544
1545
|
fullWidth: fullWidth4,
|
|
1545
1546
|
label: label9,
|
|
@@ -1551,12 +1552,15 @@ var DateTime = forwardRef5(
|
|
|
1551
1552
|
dayjs: dayjsFromProps,
|
|
1552
1553
|
classes,
|
|
1553
1554
|
id,
|
|
1555
|
+
onFocus,
|
|
1556
|
+
onBlur,
|
|
1554
1557
|
...inputProps
|
|
1555
1558
|
}, ref) => {
|
|
1556
1559
|
const dayjs3 = dayjsFromProps ?? defaultDayjs2;
|
|
1557
1560
|
const [stateValues, setStateValues] = useState5(
|
|
1558
1561
|
values !== void 0 ? values : defaultValues
|
|
1559
1562
|
);
|
|
1563
|
+
const [isPopoverOpen, setIsPopoverOpen] = useState5(defaultOpen);
|
|
1560
1564
|
const stateValuesRef = useRef4(stateValues);
|
|
1561
1565
|
useEffect5(() => {
|
|
1562
1566
|
if (values !== void 0) {
|
|
@@ -1573,16 +1577,48 @@ var DateTime = forwardRef5(
|
|
|
1573
1577
|
}, [stateValues]);
|
|
1574
1578
|
const effectiveValueType = isPeriod && valueType === "dateTime" ? "date" : valueType;
|
|
1575
1579
|
const inputRef = useRef4(null);
|
|
1576
|
-
const popoverTargetRef = useRef4(null);
|
|
1577
1580
|
const reactId = useId2();
|
|
1578
1581
|
const inputId = id ?? reactId;
|
|
1579
|
-
const
|
|
1580
|
-
(
|
|
1581
|
-
|
|
1582
|
-
|
|
1582
|
+
const inputFocusHandler = useCallback5(
|
|
1583
|
+
(event) => {
|
|
1584
|
+
setIsPopoverOpen(true);
|
|
1585
|
+
onFocus?.(event);
|
|
1586
|
+
},
|
|
1587
|
+
[onFocus]
|
|
1588
|
+
);
|
|
1589
|
+
const inputBlurHandler = useCallback5(
|
|
1590
|
+
(event) => {
|
|
1591
|
+
if (isPopoverOpen) {
|
|
1592
|
+
return;
|
|
1593
|
+
}
|
|
1594
|
+
onBlur?.(event);
|
|
1595
|
+
},
|
|
1596
|
+
[isPopoverOpen, onBlur]
|
|
1597
|
+
);
|
|
1598
|
+
const popoverOpenChangeHandler = useCallback5(
|
|
1599
|
+
(open) => {
|
|
1600
|
+
setIsPopoverOpen(open);
|
|
1601
|
+
if (!open) {
|
|
1602
|
+
const currentValues = stateValuesRef.current;
|
|
1603
|
+
if (currentValues !== void 0) {
|
|
1604
|
+
onValueChange?.(currentValues);
|
|
1605
|
+
}
|
|
1606
|
+
const inputElement = inputRef.current;
|
|
1607
|
+
if (!inputElement) {
|
|
1608
|
+
return;
|
|
1609
|
+
}
|
|
1610
|
+
if (document.activeElement === inputElement) {
|
|
1611
|
+
inputElement.blur();
|
|
1612
|
+
return;
|
|
1613
|
+
}
|
|
1614
|
+
onBlur?.({ target: inputElement, currentTarget: inputElement });
|
|
1615
|
+
}
|
|
1583
1616
|
},
|
|
1584
|
-
[
|
|
1617
|
+
[onBlur, onValueChange]
|
|
1585
1618
|
);
|
|
1619
|
+
const iconClickHandler = useCallback5(() => {
|
|
1620
|
+
inputRef.current?.focus();
|
|
1621
|
+
}, []);
|
|
1586
1622
|
const changeDates = useCallback5(
|
|
1587
1623
|
(newStartDate, newEndDate) => {
|
|
1588
1624
|
const newValues = isPeriod ? [newStartDate, newEndDate] : [newStartDate];
|
|
@@ -1594,9 +1630,8 @@ var DateTime = forwardRef5(
|
|
|
1594
1630
|
}
|
|
1595
1631
|
stateValuesRef.current = newValues;
|
|
1596
1632
|
setStateValues(newValues);
|
|
1597
|
-
onValueChange?.(newValues);
|
|
1598
1633
|
},
|
|
1599
|
-
[isPeriod
|
|
1634
|
+
[isPeriod]
|
|
1600
1635
|
);
|
|
1601
1636
|
return /* @__PURE__ */ jsxs7(
|
|
1602
1637
|
"div",
|
|
@@ -1634,14 +1669,17 @@ var DateTime = forwardRef5(
|
|
|
1634
1669
|
)}` : "",
|
|
1635
1670
|
onChange: () => {
|
|
1636
1671
|
},
|
|
1637
|
-
|
|
1672
|
+
onFocus: inputFocusHandler,
|
|
1673
|
+
onBlur: inputBlurHandler
|
|
1638
1674
|
}
|
|
1639
1675
|
),
|
|
1640
|
-
/* @__PURE__ */ jsx15("span", { onClick:
|
|
1676
|
+
/* @__PURE__ */ jsx15("span", { onClick: iconClickHandler, className: classnames7(icon2, classes?.icon), children: /* @__PURE__ */ jsx15(DateRangeIcon, {}) }),
|
|
1641
1677
|
/* @__PURE__ */ jsx15(
|
|
1642
1678
|
Popover,
|
|
1643
1679
|
{
|
|
1644
1680
|
placement: "bottom-start",
|
|
1681
|
+
open: isPopoverOpen,
|
|
1682
|
+
onOpenChange: popoverOpenChangeHandler,
|
|
1645
1683
|
classes: { ...classes?.popover, content: popoverContent2 },
|
|
1646
1684
|
containerOffset: 4,
|
|
1647
1685
|
description: /* @__PURE__ */ jsx15(
|
|
@@ -1658,7 +1696,7 @@ var DateTime = forwardRef5(
|
|
|
1658
1696
|
onClear
|
|
1659
1697
|
}
|
|
1660
1698
|
),
|
|
1661
|
-
children: /* @__PURE__ */ jsx15("div", {
|
|
1699
|
+
children: /* @__PURE__ */ jsx15("div", { className: classnames7(popoverTarget2) })
|
|
1662
1700
|
}
|
|
1663
1701
|
)
|
|
1664
1702
|
] })
|
|
@@ -1924,7 +1962,7 @@ var Input = forwardRef6(
|
|
|
1924
1962
|
{
|
|
1925
1963
|
ref: mergeRefs5([inputRef, ref]),
|
|
1926
1964
|
id: inputId,
|
|
1927
|
-
className: fileInput,
|
|
1965
|
+
className: classnames8(fileInput, classes?.fileInput),
|
|
1928
1966
|
type: "file",
|
|
1929
1967
|
onChange: handleFileChange,
|
|
1930
1968
|
...inputProps
|
|
@@ -3137,6 +3175,7 @@ __export(virtualTable_exports, {
|
|
|
3137
3175
|
error: () => error2,
|
|
3138
3176
|
evenRow: () => evenRow,
|
|
3139
3177
|
firstThRow: () => firstThRow,
|
|
3178
|
+
input: () => input8,
|
|
3140
3179
|
label: () => label7,
|
|
3141
3180
|
marginLeftChanging: () => marginLeftChanging,
|
|
3142
3181
|
medium: () => medium12,
|
|
@@ -3144,6 +3183,7 @@ __export(virtualTable_exports, {
|
|
|
3144
3183
|
rightBorder: () => rightBorder,
|
|
3145
3184
|
root: () => root17,
|
|
3146
3185
|
rowButtonTrigger: () => rowButtonTrigger,
|
|
3186
|
+
rowspanContent: () => rowspanContent,
|
|
3147
3187
|
selected: () => selected3,
|
|
3148
3188
|
showInModal: () => showInModal,
|
|
3149
3189
|
small: () => small12,
|
|
@@ -3182,6 +3222,7 @@ var alignRight = "virtualTable_alignRight";
|
|
|
3182
3222
|
var alignCenter = "virtualTable_alignCenter";
|
|
3183
3223
|
var tr = "virtualTable_tr";
|
|
3184
3224
|
var td = "virtualTable_td";
|
|
3225
|
+
var rowspanContent = "virtualTable_rowspanContent";
|
|
3185
3226
|
var evenRow = "virtualTable_evenRow";
|
|
3186
3227
|
var selected3 = "virtualTable_selected";
|
|
3187
3228
|
var sticky = "virtualTable_sticky";
|
|
@@ -3202,6 +3243,7 @@ var verticalAlignFlexEnd = "virtualTable_verticalAlignFlexEnd";
|
|
|
3202
3243
|
var rowButtonTrigger = "virtualTable_rowButtonTrigger";
|
|
3203
3244
|
var medium12 = "virtualTable_medium";
|
|
3204
3245
|
var small12 = "virtualTable_small";
|
|
3246
|
+
var input8 = "virtualTable_input";
|
|
3205
3247
|
var virtualTable_default = {
|
|
3206
3248
|
root: root17,
|
|
3207
3249
|
tableContainer,
|
|
@@ -3221,6 +3263,7 @@ var virtualTable_default = {
|
|
|
3221
3263
|
alignCenter,
|
|
3222
3264
|
tr,
|
|
3223
3265
|
td,
|
|
3266
|
+
rowspanContent,
|
|
3224
3267
|
evenRow,
|
|
3225
3268
|
selected: selected3,
|
|
3226
3269
|
sticky,
|
|
@@ -3240,7 +3283,8 @@ var virtualTable_default = {
|
|
|
3240
3283
|
verticalAlignFlexEnd,
|
|
3241
3284
|
rowButtonTrigger,
|
|
3242
3285
|
medium: medium12,
|
|
3243
|
-
small: small12
|
|
3286
|
+
small: small12,
|
|
3287
|
+
input: input8
|
|
3244
3288
|
};
|
|
3245
3289
|
|
|
3246
3290
|
// src/components/view/VirtualTable/ui/DefaultColumn/DefaultColumn.tsx
|
|
@@ -3266,15 +3310,32 @@ var DefaultColumn = {
|
|
|
3266
3310
|
tableMeta?.updateData(index, id, value, original);
|
|
3267
3311
|
setIsEdit(false);
|
|
3268
3312
|
};
|
|
3269
|
-
const onChange = (
|
|
3270
|
-
setValue(
|
|
3313
|
+
const onChange = (changeValue, withBlur) => {
|
|
3314
|
+
setValue(changeValue);
|
|
3315
|
+
if (withBlur) {
|
|
3316
|
+
tableMeta?.updateData(index, id, changeValue, original);
|
|
3317
|
+
setIsEdit(false);
|
|
3318
|
+
}
|
|
3271
3319
|
};
|
|
3272
3320
|
return /* @__PURE__ */ jsx31(
|
|
3273
3321
|
Tooltip,
|
|
3274
3322
|
{
|
|
3275
3323
|
label: original[id]?.tooltip ?? "",
|
|
3276
3324
|
alertType: original[id]?.fill === "error" ? "error" : original[id]?.fill === "success" ? "success" : "default",
|
|
3277
|
-
children: additionalViewResult?.edit !== null && additionalViewResult?.edit !== void 0 ? additionalViewResult.edit(onChange, onBlur) : /* @__PURE__ */ jsx31(Fragment6, { children: /* @__PURE__ */ jsx31(
|
|
3325
|
+
children: additionalViewResult?.edit !== null && additionalViewResult?.edit !== void 0 ? additionalViewResult.edit(onChange, onBlur) : /* @__PURE__ */ jsx31(Fragment6, { children: /* @__PURE__ */ jsx31(
|
|
3326
|
+
Input,
|
|
3327
|
+
{
|
|
3328
|
+
classes: { input: input8 },
|
|
3329
|
+
componentSize: "small",
|
|
3330
|
+
variant: "outlined",
|
|
3331
|
+
onChange: (e) => onChange(e.target.value),
|
|
3332
|
+
onBlur,
|
|
3333
|
+
value: value ?? "",
|
|
3334
|
+
type: meta.inputType,
|
|
3335
|
+
fullWidth: true,
|
|
3336
|
+
autoFocus: true
|
|
3337
|
+
}
|
|
3338
|
+
) })
|
|
3278
3339
|
}
|
|
3279
3340
|
);
|
|
3280
3341
|
}
|
|
@@ -3411,7 +3472,7 @@ import { useCallback as useCallback11, useState as useState15 } from "react";
|
|
|
3411
3472
|
var root20 = "numberFiltration_root";
|
|
3412
3473
|
var select = "numberFiltration_select";
|
|
3413
3474
|
var inputsContainer = "numberFiltration_inputsContainer";
|
|
3414
|
-
var
|
|
3475
|
+
var input9 = "numberFiltration_input";
|
|
3415
3476
|
|
|
3416
3477
|
// src/components/view/VirtualTable/ui/NumberFiltration/NumberFiltration.tsx
|
|
3417
3478
|
import { Fragment as Fragment7, jsx as jsx33, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
@@ -3479,7 +3540,7 @@ function NumberFiltration(props) {
|
|
|
3479
3540
|
componentSize: "small",
|
|
3480
3541
|
variant: "outlined",
|
|
3481
3542
|
type: "number",
|
|
3482
|
-
classes: { root:
|
|
3543
|
+
classes: { root: input9 },
|
|
3483
3544
|
value: values[0] > -Infinity && values[0] < Infinity ? values[0] : "",
|
|
3484
3545
|
onChange: (e) => {
|
|
3485
3546
|
handleChangeNumber("more", e.target.value);
|
|
@@ -3499,7 +3560,7 @@ function NumberFiltration(props) {
|
|
|
3499
3560
|
componentSize: "small",
|
|
3500
3561
|
variant: "outlined",
|
|
3501
3562
|
type: "number",
|
|
3502
|
-
classes: { root:
|
|
3563
|
+
classes: { root: input9 },
|
|
3503
3564
|
value: values[1] > -Infinity && values[1] < Infinity ? values[1] : "",
|
|
3504
3565
|
onChange: (e) => {
|
|
3505
3566
|
handleChangeNumber("less", e.target.value);
|
|
@@ -3519,7 +3580,7 @@ function NumberFiltration(props) {
|
|
|
3519
3580
|
componentSize: "small",
|
|
3520
3581
|
variant: "outlined",
|
|
3521
3582
|
type: "number",
|
|
3522
|
-
classes: { root:
|
|
3583
|
+
classes: { root: input9 },
|
|
3523
3584
|
value: selectedItem.value === "more" ? values[0] > -Infinity && values[0] < Infinity ? values[0] : "" : values[1] > -Infinity && values[1] < Infinity ? values[1] : "",
|
|
3524
3585
|
onChange: (e) => {
|
|
3525
3586
|
handleChangeNumber(selectedItem.value, e.target.value);
|
|
@@ -3775,7 +3836,8 @@ var createMeta = (column) => {
|
|
|
3775
3836
|
onClick: column.onClick,
|
|
3776
3837
|
label: column.label,
|
|
3777
3838
|
verticalAlign: column.verticalAlign,
|
|
3778
|
-
toFixed: column.toFixed
|
|
3839
|
+
toFixed: column.toFixed,
|
|
3840
|
+
inputType: column.inputType
|
|
3779
3841
|
};
|
|
3780
3842
|
}
|
|
3781
3843
|
};
|
|
@@ -4065,6 +4127,65 @@ var VirtualTable = forwardRef10((props, ref) => {
|
|
|
4065
4127
|
const virtualRows = rowVirtualizer.getVirtualItems();
|
|
4066
4128
|
const virtualColumns = columnVirtualizer.getVirtualItems();
|
|
4067
4129
|
const lastVirtualColumnIndex = virtualColumns[virtualColumns.length - 1]?.index;
|
|
4130
|
+
const virtualRowsSizeByIndex = useMemo9(
|
|
4131
|
+
() => new Map(virtualRows.map((item3) => [item3.index, item3.size])),
|
|
4132
|
+
[virtualRows]
|
|
4133
|
+
);
|
|
4134
|
+
const getRowSizeByIndex = useCallback12(
|
|
4135
|
+
(index) => virtualRowsSizeByIndex.get(index) ?? bodyRowHeight,
|
|
4136
|
+
[bodyRowHeight, virtualRowsSizeByIndex]
|
|
4137
|
+
);
|
|
4138
|
+
const getRowspanHeight = useCallback12(
|
|
4139
|
+
(rowIndex, rowspan) => {
|
|
4140
|
+
const clampedRowspan = Math.max(1, Math.floor(rowspan));
|
|
4141
|
+
const lastRowIndex = Math.min(rowsFromTable.length - 1, rowIndex + clampedRowspan - 1);
|
|
4142
|
+
const rowsInRange = lastRowIndex - rowIndex + 1;
|
|
4143
|
+
let result = 0;
|
|
4144
|
+
for (let index = rowIndex; index <= lastRowIndex; index += 1) {
|
|
4145
|
+
result += getRowSizeByIndex(index);
|
|
4146
|
+
}
|
|
4147
|
+
const bordersCompensation = borders === "all" || borders === "horizontal" ? Math.max(0, rowsInRange - 1) : 0;
|
|
4148
|
+
return Math.max(0, result - bordersCompensation);
|
|
4149
|
+
},
|
|
4150
|
+
[borders, getRowSizeByIndex, rowsFromTable.length]
|
|
4151
|
+
);
|
|
4152
|
+
const isCellCoveredByRowspan = useCallback12(
|
|
4153
|
+
(rowIndex, columnId) => {
|
|
4154
|
+
for (let index = rowIndex - 1; index >= 0; index -= 1) {
|
|
4155
|
+
const upperCell = rowsFromTable[index]?.original?.[columnId];
|
|
4156
|
+
const upperRowspan = Math.max(1, upperCell?.rowspan ?? 1);
|
|
4157
|
+
if (index + upperRowspan - 1 >= rowIndex) {
|
|
4158
|
+
return true;
|
|
4159
|
+
}
|
|
4160
|
+
}
|
|
4161
|
+
return false;
|
|
4162
|
+
},
|
|
4163
|
+
[rowsFromTable]
|
|
4164
|
+
);
|
|
4165
|
+
const getRowBackgroundColor = useCallback12((row, rowIndex) => {
|
|
4166
|
+
if (row?.isNew?.value === 1) {
|
|
4167
|
+
return "var(--theme-table-selected-row)";
|
|
4168
|
+
}
|
|
4169
|
+
return rowIndex % 2 !== 0 ? "var(--theme-table-even-row)" : "var(--theme-table-background)";
|
|
4170
|
+
}, []);
|
|
4171
|
+
const rowZIndexByIndex = useMemo9(() => {
|
|
4172
|
+
const rowsCount = rowsFromTable.length;
|
|
4173
|
+
const result = /* @__PURE__ */ new Map();
|
|
4174
|
+
rowsFromTable.forEach((row, rowIndex) => {
|
|
4175
|
+
const maxRowspan = row.getAllCells().reduce(
|
|
4176
|
+
(maxSpan, cell2) => Math.max(maxSpan, Math.max(1, row.original?.[cell2.column.id]?.rowspan ?? 1)),
|
|
4177
|
+
1
|
|
4178
|
+
);
|
|
4179
|
+
const spanWeight = maxRowspan - 1;
|
|
4180
|
+
const zIndex = spanWeight * (rowsCount + 1) + (rowsCount - rowIndex + 1);
|
|
4181
|
+
result.set(rowIndex, zIndex);
|
|
4182
|
+
});
|
|
4183
|
+
return result;
|
|
4184
|
+
}, [rowsFromTable]);
|
|
4185
|
+
const headerBaseZIndex = useMemo9(
|
|
4186
|
+
() => rowsFromTable.length * rowsFromTable.length + rowsFromTable.length + 10,
|
|
4187
|
+
[rowsFromTable.length]
|
|
4188
|
+
);
|
|
4068
4189
|
const renderHeaderNode = (header2) => {
|
|
4069
4190
|
const metaLabel = header2.column.columnDef.meta?.label;
|
|
4070
4191
|
if (typeof metaLabel === "string") {
|
|
@@ -4113,7 +4234,7 @@ var VirtualTable = forwardRef10((props, ref) => {
|
|
|
4113
4234
|
style: {
|
|
4114
4235
|
position: "sticky",
|
|
4115
4236
|
top: 0,
|
|
4116
|
-
zIndex:
|
|
4237
|
+
zIndex: headerBaseZIndex
|
|
4117
4238
|
},
|
|
4118
4239
|
children: headerGroups.map((headerGroup, hgi) => {
|
|
4119
4240
|
const innerCell = (header2) => {
|
|
@@ -4180,7 +4301,7 @@ var VirtualTable = forwardRef10((props, ref) => {
|
|
|
4180
4301
|
marginLeftChanging
|
|
4181
4302
|
),
|
|
4182
4303
|
style: {
|
|
4183
|
-
zIndex:
|
|
4304
|
+
zIndex: headerBaseZIndex + 1,
|
|
4184
4305
|
width: `${columnsEstimateSize(index)}px`,
|
|
4185
4306
|
height: `${headerGroupHeight[hgi]}px`,
|
|
4186
4307
|
transform: `translateX(${Array.from({ length: index }, (_, i) => columnsEstimateSize(i)).reduce(
|
|
@@ -4208,7 +4329,7 @@ var VirtualTable = forwardRef10((props, ref) => {
|
|
|
4208
4329
|
(sum, current) => sum + (current.column.columnDef.meta?.width ?? 0),
|
|
4209
4330
|
0
|
|
4210
4331
|
);
|
|
4211
|
-
const zIndex = !nextHorizontalHeaders.length && !prevHorizontalHeaders.length ? void 0 : nextHorizontalHeaders.length + 2;
|
|
4332
|
+
const zIndex = !nextHorizontalHeaders.length && !prevHorizontalHeaders.length ? void 0 : headerBaseZIndex + nextHorizontalHeaders.length + 2;
|
|
4212
4333
|
const thHeight = !prevVerticalHeaders.length ? headerGroupHeight[hgi] : headerGroupHeight[hgi] + prevVerticalHeaders.reduce(
|
|
4213
4334
|
(sum, _, index) => sum + (headerGroupHeight[hgi - index - 1] ?? 0),
|
|
4214
4335
|
0
|
|
@@ -4269,6 +4390,7 @@ var VirtualTable = forwardRef10((props, ref) => {
|
|
|
4269
4390
|
row.original?.isNew?.value === 1 && selected3
|
|
4270
4391
|
),
|
|
4271
4392
|
style: {
|
|
4393
|
+
zIndex: rowZIndexByIndex.get(virtualRow.index) ?? 1,
|
|
4272
4394
|
...!dynamicRowHeight && {
|
|
4273
4395
|
height: virtualRow.size
|
|
4274
4396
|
},
|
|
@@ -4279,6 +4401,10 @@ var VirtualTable = forwardRef10((props, ref) => {
|
|
|
4279
4401
|
virtualColumns.map((virtualCol) => {
|
|
4280
4402
|
const cell2 = row.getAllCells()[virtualCol.index];
|
|
4281
4403
|
const isSticky = cell2.column.getIsPinned() === "left";
|
|
4404
|
+
const currentCell = row.original?.[cell2.column.id];
|
|
4405
|
+
const rowspan = Math.max(1, currentCell?.rowspan ?? 1);
|
|
4406
|
+
const isCoveredByRowspan = isCellCoveredByRowspan(virtualRow.index, cell2.column.id);
|
|
4407
|
+
const hasRowspan = rowspan > 1 && !isCoveredByRowspan;
|
|
4282
4408
|
return /* @__PURE__ */ jsx35(
|
|
4283
4409
|
"div",
|
|
4284
4410
|
{
|
|
@@ -4291,12 +4417,22 @@ var VirtualTable = forwardRef10((props, ref) => {
|
|
|
4291
4417
|
// чтобы появился левый бордер
|
|
4292
4418
|
},
|
|
4293
4419
|
width: `${virtualCol.size}px`,
|
|
4294
|
-
...!dynamicRowHeight && {
|
|
4420
|
+
...!dynamicRowHeight && !hasRowspan && {
|
|
4295
4421
|
overflow: "hidden"
|
|
4296
4422
|
}
|
|
4297
4423
|
},
|
|
4298
4424
|
"data-index": virtualRow.index,
|
|
4299
|
-
children:
|
|
4425
|
+
children: !isCoveredByRowspan && (hasRowspan ? /* @__PURE__ */ jsx35(
|
|
4426
|
+
"div",
|
|
4427
|
+
{
|
|
4428
|
+
className: rowspanContent,
|
|
4429
|
+
style: {
|
|
4430
|
+
height: `${getRowspanHeight(virtualRow.index, rowspan)}px`,
|
|
4431
|
+
backgroundColor: getRowBackgroundColor(row.original, virtualRow.index)
|
|
4432
|
+
},
|
|
4433
|
+
children: flexRender(cell2.column.columnDef.cell, cell2.getContext())
|
|
4434
|
+
}
|
|
4435
|
+
) : flexRender(cell2.column.columnDef.cell, cell2.getContext()))
|
|
4300
4436
|
},
|
|
4301
4437
|
`cell-${virtualRow.key}-${virtualCol.key}`
|
|
4302
4438
|
);
|