react-table-edit 1.5.45 → 1.5.47
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/component/table/filter-element.d.ts +1 -1
- package/dist/index.js +92 -45
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +92 -45
- package/dist/index.mjs.map +1 -1
- package/dist/styles/date-picker.css +74 -771
- package/dist/styles/date-picker.css.map +1 -1
- package/dist/styles/form-wizard.css.map +1 -1
- package/dist/styles/index.css +341 -840
- package/dist/styles/index.css.map +1 -1
- package/dist/styles/select-table.css.map +1 -1
- package/dist/styles/sidebar.css +14 -0
- package/dist/styles/sidebar.css.map +1 -1
- package/dist/styles/tab-menu.css.map +1 -1
- package/package.json +1 -1
|
@@ -9,5 +9,5 @@ type IFilterProps = {
|
|
|
9
9
|
formatSetting?: IFTableEditFormat;
|
|
10
10
|
changeFilter: (data: IFFilterTable[]) => void;
|
|
11
11
|
};
|
|
12
|
-
declare const FilterComponent: ({ optionsFilter, formatSetting, filterBy, setOpenFilter, changeFilter, column }: IFilterProps) => import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
declare const FilterComponent: ({ optionsFilter, formatSetting, filterBy, setOpenFilter, changeFilter, column, }: IFilterProps) => import("react/jsx-runtime").JSX.Element;
|
|
13
13
|
export default FilterComponent;
|
package/dist/index.js
CHANGED
|
@@ -39586,7 +39586,7 @@ const DateRangePicker = React$5.forwardRef((props, ref) => {
|
|
|
39586
39586
|
}, children: t('Last month') })] })] })] }) }));
|
|
39587
39587
|
});
|
|
39588
39588
|
|
|
39589
|
-
const FilterComponent = ({ optionsFilter, formatSetting, filterBy, setOpenFilter, changeFilter, column }) => {
|
|
39589
|
+
const FilterComponent = ({ optionsFilter, formatSetting, filterBy, setOpenFilter, changeFilter, column, }) => {
|
|
39590
39590
|
const { t } = reactI18next.useTranslation();
|
|
39591
39591
|
const fieldFilter = column.fieldFilter ?? column.field;
|
|
39592
39592
|
let typeFilter = column.filterType;
|
|
@@ -39613,14 +39613,22 @@ const FilterComponent = ({ optionsFilter, formatSetting, filterBy, setOpenFilter
|
|
|
39613
39613
|
from.value = filterValue?.from;
|
|
39614
39614
|
}
|
|
39615
39615
|
else {
|
|
39616
|
-
filterBy.push({
|
|
39616
|
+
filterBy.push({
|
|
39617
|
+
key: fieldFilter,
|
|
39618
|
+
ope: 'greaterthanorequal',
|
|
39619
|
+
value: filterValue?.from,
|
|
39620
|
+
});
|
|
39617
39621
|
}
|
|
39618
39622
|
const to = filterBy.find((item) => item.key === fieldFilter && item.ope === 'lessthanorequal');
|
|
39619
39623
|
if (to) {
|
|
39620
39624
|
to.value = filterValue?.to;
|
|
39621
39625
|
}
|
|
39622
39626
|
else {
|
|
39623
|
-
filterBy.push({
|
|
39627
|
+
filterBy.push({
|
|
39628
|
+
key: fieldFilter,
|
|
39629
|
+
ope: 'lessthanorequal',
|
|
39630
|
+
value: filterValue?.to,
|
|
39631
|
+
});
|
|
39624
39632
|
}
|
|
39625
39633
|
}
|
|
39626
39634
|
else {
|
|
@@ -39630,7 +39638,11 @@ const FilterComponent = ({ optionsFilter, formatSetting, filterBy, setOpenFilter
|
|
|
39630
39638
|
filter.value = filterValue ?? '';
|
|
39631
39639
|
}
|
|
39632
39640
|
else {
|
|
39633
|
-
filterBy.push({
|
|
39641
|
+
filterBy.push({
|
|
39642
|
+
key: fieldFilter,
|
|
39643
|
+
ope: operator ?? 'equal',
|
|
39644
|
+
value: filterValue ?? '',
|
|
39645
|
+
});
|
|
39634
39646
|
}
|
|
39635
39647
|
}
|
|
39636
39648
|
changeFilter([...filterBy]);
|
|
@@ -39639,19 +39651,19 @@ const FilterComponent = ({ optionsFilter, formatSetting, filterBy, setOpenFilter
|
|
|
39639
39651
|
/* eslint-disable */
|
|
39640
39652
|
switch (typeFilter) {
|
|
39641
39653
|
case 'text':
|
|
39642
|
-
return jsxRuntime.jsx(StringFilterComponent, { fieldFilter: fieldFilter, optionsFilter: optionsFilter, filterBy: filterBy, column: column, handleSave: handleSave });
|
|
39654
|
+
return (jsxRuntime.jsx(StringFilterComponent, { fieldFilter: fieldFilter, optionsFilter: optionsFilter, filterBy: filterBy, column: column, handleSave: handleSave }));
|
|
39643
39655
|
case 'numeric':
|
|
39644
|
-
return jsxRuntime.jsx(NumberFilterComponent, { fieldFilter: fieldFilter, optionsFilter: optionsFilter, filterBy: filterBy, column: column, handleSave: handleSave, formatSetting: formatSetting });
|
|
39656
|
+
return (jsxRuntime.jsx(NumberFilterComponent, { fieldFilter: fieldFilter, optionsFilter: optionsFilter, filterBy: filterBy, column: column, handleSave: handleSave, formatSetting: formatSetting }));
|
|
39645
39657
|
case 'select':
|
|
39646
|
-
return jsxRuntime.jsx(SelectFilterComponent, { fieldFilter: fieldFilter, optionsFilter: optionsFilter, filterBy: filterBy, column: column, handleSave: handleSave });
|
|
39658
|
+
return (jsxRuntime.jsx(SelectFilterComponent, { fieldFilter: fieldFilter, optionsFilter: optionsFilter, filterBy: filterBy, column: column, handleSave: handleSave }));
|
|
39647
39659
|
case 'date':
|
|
39648
|
-
return jsxRuntime.jsx(DateRangeFilterComponent, { fieldFilter: fieldFilter, optionsFilter: optionsFilter, filterBy: filterBy, column: column, handleSave: handleSave });
|
|
39660
|
+
return (jsxRuntime.jsx(DateRangeFilterComponent, { fieldFilter: fieldFilter, optionsFilter: optionsFilter, filterBy: filterBy, column: column, handleSave: handleSave }));
|
|
39649
39661
|
default:
|
|
39650
39662
|
return jsxRuntime.jsx("div", { children: t('No filter available') });
|
|
39651
39663
|
}
|
|
39652
39664
|
/* eslint-enable */
|
|
39653
39665
|
};
|
|
39654
|
-
const StringFilterComponent = ({ fieldFilter, filterBy, handleSave }) => {
|
|
39666
|
+
const StringFilterComponent = ({ fieldFilter, filterBy, handleSave, }) => {
|
|
39655
39667
|
const { t } = reactI18next.useTranslation();
|
|
39656
39668
|
const filter = filterBy.find((item) => item.key === fieldFilter);
|
|
39657
39669
|
const [operator, setOperator] = React$5.useState(filter?.ope ?? 'contains');
|
|
@@ -39661,7 +39673,7 @@ const StringFilterComponent = ({ fieldFilter, filterBy, handleSave }) => {
|
|
|
39661
39673
|
{ label: 'Kết thúc bởi', value: 'endswith' },
|
|
39662
39674
|
{ label: 'Chứa', value: 'contains' },
|
|
39663
39675
|
{ label: 'Bằng', value: 'equal' },
|
|
39664
|
-
{ label: 'Không bằng', value: 'notequal' }
|
|
39676
|
+
{ label: 'Không bằng', value: 'notequal' },
|
|
39665
39677
|
];
|
|
39666
39678
|
return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsxs("div", { className: "r-filter-popup", onKeyDown: (e) => {
|
|
39667
39679
|
if (e.code === 'Enter' || e.code === 'NumpadEnter') {
|
|
@@ -39676,7 +39688,7 @@ const StringFilterComponent = ({ fieldFilter, filterBy, handleSave }) => {
|
|
|
39676
39688
|
setValueFilter(val.target.value);
|
|
39677
39689
|
} }), jsxRuntime.jsxs("div", { className: "d-flex justify-content-end", children: [jsxRuntime.jsx(Button$1$1, { color: "primary", style: { borderRadius: 3 }, className: "me-50 py-25 px-50 fw-bold", onClick: () => handleSave('text', valueFilter, operator), children: t('Filter') }), jsxRuntime.jsx(Button$1$1, { className: "py-25 px-50 fw-bold", outline: true, style: { borderRadius: 3 }, onClick: () => handleSave(), children: t('Clear') })] })] }) }));
|
|
39678
39690
|
};
|
|
39679
|
-
const NumberFilterComponent = ({ column, filterBy, fieldFilter, handleSave, formatSetting }) => {
|
|
39691
|
+
const NumberFilterComponent = ({ column, filterBy, fieldFilter, handleSave, formatSetting, }) => {
|
|
39680
39692
|
const { t } = reactI18next.useTranslation();
|
|
39681
39693
|
const filter = filterBy.find((item) => item.key === fieldFilter);
|
|
39682
39694
|
const [operator, setOperator] = React$5.useState(filter?.ope ?? 'equal');
|
|
@@ -39686,17 +39698,15 @@ const NumberFilterComponent = ({ column, filterBy, fieldFilter, handleSave, form
|
|
|
39686
39698
|
{ label: 'Lớn hơn hoặc bằng', value: 'greaterthanorequal' },
|
|
39687
39699
|
{ label: 'Bằng', value: 'equal' },
|
|
39688
39700
|
{ label: 'Bé hơn', value: 'lessthan' },
|
|
39689
|
-
{ label: 'Bé hơn hoặc bằng', value: 'lessthanorequal' }
|
|
39701
|
+
{ label: 'Bé hơn hoặc bằng', value: 'lessthanorequal' },
|
|
39690
39702
|
];
|
|
39691
39703
|
const numericFormatProps = {
|
|
39692
39704
|
value: !isNullOrUndefined$1(valueFilter) ? valueFilter.toString() : '',
|
|
39693
39705
|
thousandSeparator: checkThousandSeparator(formatSetting?.thousandSeparator, formatSetting?.decimalSeparator),
|
|
39694
39706
|
decimalSeparator: checkDecimalSeparator(formatSetting?.thousandSeparator, formatSetting?.decimalSeparator),
|
|
39695
39707
|
allowNegative: column.numericSettings?.allowNegative ?? false,
|
|
39696
|
-
decimalScale: column.numericSettings?.fraction ?? 0
|
|
39708
|
+
decimalScale: column.numericSettings?.fraction ?? 0,
|
|
39697
39709
|
};
|
|
39698
|
-
console.log(column.numericSettings?.fraction);
|
|
39699
|
-
console.log(column.field);
|
|
39700
39710
|
let floatValue = parseFloat(valueFilter ?? '0');
|
|
39701
39711
|
return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsxs("div", { className: "r-filter-popup", onKeyDown: (e) => {
|
|
39702
39712
|
if (e.code === 'Enter' || e.code === 'NumpadEnter') {
|
|
@@ -39717,7 +39727,7 @@ const NumberFilterComponent = ({ column, filterBy, fieldFilter, handleSave, form
|
|
|
39717
39727
|
}
|
|
39718
39728
|
} }), jsxRuntime.jsxs("div", { className: "d-flex justify-content-end", children: [jsxRuntime.jsx(Button$1$1, { color: "primary", style: { borderRadius: 3 }, className: "me-50 py-25 px-50 fw-bold", onClick: () => handleSave('numeric', valueFilter, operator), children: t('Filter') }), jsxRuntime.jsx(Button$1$1, { className: "py-25 px-50 fw-bold", outline: true, style: { borderRadius: 3 }, onClick: () => handleSave(), children: t('Clear') })] })] }) }));
|
|
39719
39729
|
};
|
|
39720
|
-
const SelectFilterComponent = ({ column, filterBy, handleSave, fieldFilter, optionsFilter }) => {
|
|
39730
|
+
const SelectFilterComponent = ({ column, filterBy, handleSave, fieldFilter, optionsFilter, }) => {
|
|
39721
39731
|
const { t } = reactI18next.useTranslation();
|
|
39722
39732
|
const filter = filterBy.find((item) => item.key === fieldFilter);
|
|
39723
39733
|
const [valueFilter, setValueFilter] = React$5.useState(filter?.value ?? '');
|
|
@@ -39728,15 +39738,22 @@ const SelectFilterComponent = ({ column, filterBy, handleSave, fieldFilter, opti
|
|
|
39728
39738
|
}, 100);
|
|
39729
39739
|
e.stopPropagation();
|
|
39730
39740
|
}
|
|
39731
|
-
}, children: [jsxRuntime.jsx("div", { className: "mb-1", children: jsxRuntime.jsx(SelectTable, { value: optionsFilter
|
|
39741
|
+
}, children: [jsxRuntime.jsx("div", { className: "mb-1", children: jsxRuntime.jsx(SelectTable, { value: optionsFilter
|
|
39742
|
+
? optionsFilter[column.fieldFilter ?? column.field]?.find((x) => x.value === valueFilter)
|
|
39743
|
+
: undefined, options: (optionsFilter &&
|
|
39744
|
+
optionsFilter[column.fieldFilter ?? column.field]) ??
|
|
39745
|
+
[], isClearable: true, onChange: (val) => {
|
|
39732
39746
|
setValueFilter(val?.value);
|
|
39733
39747
|
}, placeholder: t('Select') }) }), jsxRuntime.jsxs("div", { className: "d-flex justify-content-end", children: [jsxRuntime.jsx(Button$1$1, { color: "primary", style: { borderRadius: 3 }, className: "me-50 py-25 px-50 fw-bold", onClick: () => handleSave('select', valueFilter, 'equal'), children: t('Filter') }), jsxRuntime.jsx(Button$1$1, { className: "py-25 px-50 fw-bold", outline: true, style: { borderRadius: 3 }, onClick: () => handleSave(), children: t('Clear') })] })] }) }));
|
|
39734
39748
|
};
|
|
39735
|
-
const DateRangeFilterComponent = ({ fieldFilter, filterBy, handleSave }) => {
|
|
39749
|
+
const DateRangeFilterComponent = ({ fieldFilter, filterBy, handleSave, }) => {
|
|
39736
39750
|
const { t } = reactI18next.useTranslation();
|
|
39737
39751
|
const from = filterBy.find((item) => item.key === fieldFilter && item.ope === 'greaterthanorequal')?.value;
|
|
39738
39752
|
const to = filterBy.find((item) => item.key === fieldFilter && item.ope === 'lessthanorequal')?.value;
|
|
39739
|
-
const [valueFilter, setValueFilter] = React$5.useState({
|
|
39753
|
+
const [valueFilter, setValueFilter] = React$5.useState({
|
|
39754
|
+
from: from ?? undefined,
|
|
39755
|
+
to: to ?? undefined,
|
|
39756
|
+
});
|
|
39740
39757
|
return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsxs("div", { className: "r-filter-popup", onKeyDown: (e) => {
|
|
39741
39758
|
if (e.code === 'Enter' || e.code === 'NumpadEnter') {
|
|
39742
39759
|
setTimeout(() => {
|
|
@@ -69671,7 +69688,7 @@ const RenderContentCol = React__default["default"].memo((props) => {
|
|
|
69671
69688
|
});
|
|
69672
69689
|
|
|
69673
69690
|
const TableElement = React__default["default"].memo((props) => {
|
|
69674
|
-
const { contentColumns, dataSource, fieldKey, filterBy, fisrtObjWidthFixRight, lastObjWidthFixLeft, objWidthFixLeft, objWidthFixRight, orderBy, selectedRows, setContentColumns, setSelectedRows, formatSetting, gridRef, idTable, headerColumns, objHeaderWidthFixLeft, objHeaderWidthFixRight, isMulti, querySetting, searchSetting, searchTerm, columnsAggregate, haveSum, expandsAll, zeroVisiable, setFilterBy, setOrderBy, setExpandsAll, handleDoubleClick, handleCellClick, contextMenuItems, handleContextMenuClick, isLoading } = props;
|
|
69691
|
+
const { contentColumns, dataSource, fieldKey, filterBy, fisrtObjWidthFixRight, lastObjWidthFixLeft, objWidthFixLeft, objWidthFixRight, orderBy, selectedRows, setContentColumns, setSelectedRows, formatSetting, gridRef, idTable, headerColumns, objHeaderWidthFixLeft, objHeaderWidthFixRight, isMulti, querySetting, searchSetting, searchTerm, columnsAggregate, haveSum, expandsAll, zeroVisiable, setFilterBy, setOrderBy, setExpandsAll, handleDoubleClick, handleCellClick, contextMenuItems, handleContextMenuClick, isLoading, } = props;
|
|
69675
69692
|
const { t } = reactI18next.useTranslation();
|
|
69676
69693
|
const [context, setContext] = React$5.useState(null);
|
|
69677
69694
|
const virtualDivRef = React$5.useRef(null);
|
|
@@ -69717,7 +69734,10 @@ const TableElement = React__default["default"].memo((props) => {
|
|
|
69717
69734
|
if (searchTerm) {
|
|
69718
69735
|
datas = datas.filter((row) => {
|
|
69719
69736
|
return searchSetting?.keyField?.some((key) => {
|
|
69720
|
-
return row[key]
|
|
69737
|
+
return row[key]
|
|
69738
|
+
?.toString()
|
|
69739
|
+
.toLowerCase()
|
|
69740
|
+
.includes(searchTerm.trim().toLowerCase());
|
|
69721
69741
|
});
|
|
69722
69742
|
});
|
|
69723
69743
|
}
|
|
@@ -69726,7 +69746,10 @@ const TableElement = React__default["default"].memo((props) => {
|
|
|
69726
69746
|
return filterBy.every((filter) => {
|
|
69727
69747
|
const { key, value, ope } = filter;
|
|
69728
69748
|
const rowValue = row[key];
|
|
69729
|
-
if (rowValue === undefined ||
|
|
69749
|
+
if (rowValue === undefined ||
|
|
69750
|
+
rowValue === null ||
|
|
69751
|
+
value === undefined ||
|
|
69752
|
+
value === null) {
|
|
69730
69753
|
return false;
|
|
69731
69754
|
}
|
|
69732
69755
|
const valStr = String(rowValue).toLowerCase();
|
|
@@ -69792,52 +69815,68 @@ const TableElement = React__default["default"].memo((props) => {
|
|
|
69792
69815
|
}
|
|
69793
69816
|
let value = row[col.field];
|
|
69794
69817
|
if (col.type === 'numeric') {
|
|
69795
|
-
value =
|
|
69818
|
+
value =
|
|
69819
|
+
formartNumberic(row[col.field], formatSetting?.decimalSeparator ?? ',', formatSetting?.thousandSeparator ?? '.', col.numericSettings?.fraction, true, false) ?? 0;
|
|
69796
69820
|
}
|
|
69797
69821
|
else if (col.type === 'date') {
|
|
69798
|
-
value = value
|
|
69822
|
+
value = value
|
|
69823
|
+
? formatDateTime(value, formatSetting?.dateFormat)
|
|
69824
|
+
: '';
|
|
69799
69825
|
}
|
|
69800
69826
|
else if (col.type === 'datetime') {
|
|
69801
|
-
value = value
|
|
69827
|
+
value = value
|
|
69828
|
+
? formatDateTime(value, formatSetting?.dateFormat ?? 'DD/MM/yyyy HH:mm')
|
|
69829
|
+
: '';
|
|
69802
69830
|
}
|
|
69803
69831
|
if (col.template) {
|
|
69804
69832
|
value = col.template(row, indexRow) ?? '';
|
|
69805
69833
|
}
|
|
69806
69834
|
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("tr", { "aria-rowindex": indexRow + 1, role: "row", className: "r-row", children: [jsxRuntime.jsx("td", { className: "r-rowcell r-cell-group", colSpan: 3, children: jsxRuntime.jsxs("div", { className: "r-rowcell-div", children: [jsxRuntime.jsx(SvgChevronRight, { style: {
|
|
69807
69835
|
marginLeft: level * 20,
|
|
69808
|
-
transform: expand ? 'rotate(90deg)' : 'rotate(0deg)'
|
|
69836
|
+
transform: expand ? 'rotate(90deg)' : 'rotate(0deg)',
|
|
69809
69837
|
}, fontSize: 15, onClick: () => {
|
|
69810
69838
|
setExpand(!expand);
|
|
69811
69839
|
setExpandsAll(undefined);
|
|
69812
69840
|
row.expand = !expand;
|
|
69813
69841
|
} }), t(col.headerDisplay ?? col.headerText ?? ''), ": ", value, " (", row.children.length, ")"] }) }), contentColumns.map((colSum, indexCol) => {
|
|
69814
|
-
if (indexCol <= firstColSpan ||
|
|
69842
|
+
if (indexCol <= firstColSpan ||
|
|
69843
|
+
colSum.visible === false ||
|
|
69844
|
+
colSum.isGroup === true) {
|
|
69815
69845
|
return;
|
|
69816
69846
|
}
|
|
69817
69847
|
let sumValue = row[colSum.field];
|
|
69818
|
-
const haveSum = row[colSum.field] !== undefined &&
|
|
69819
|
-
|
|
69848
|
+
const haveSum = row[colSum.field] !== undefined &&
|
|
69849
|
+
row[colSum.field] !== null;
|
|
69850
|
+
if (!haveSum &&
|
|
69851
|
+
colSum.haveSum === true &&
|
|
69852
|
+
colSum.type === 'numeric') {
|
|
69820
69853
|
sumValue = row.children.reduce(function (accumulator, currentValue) {
|
|
69821
|
-
return Number(accumulator ?? 0) +
|
|
69854
|
+
return (Number(accumulator ?? 0) +
|
|
69855
|
+
Number(currentValue[colSum.field] ?? 0));
|
|
69822
69856
|
}, 0);
|
|
69823
69857
|
}
|
|
69824
69858
|
if (colSum.type === 'numeric') {
|
|
69825
69859
|
sumValue = formartNumberic(sumValue, formatSetting?.decimalSeparator ?? ',', formatSetting?.thousandSeparator ?? '.', colSum.numericSettings?.fraction, true, false);
|
|
69826
|
-
if (!zeroVisiable &&
|
|
69860
|
+
if (!zeroVisiable &&
|
|
69861
|
+
!col.zeroVisiable &&
|
|
69862
|
+
(sumValue === '0' || sumValue === 0)) {
|
|
69827
69863
|
sumValue = '';
|
|
69828
69864
|
}
|
|
69829
69865
|
}
|
|
69830
69866
|
return (jsxRuntime.jsx("td", { className: "r-rowcell r-cell-sum-group", children: jsxRuntime.jsx("div", { className: "r-rowcell-div", style: {
|
|
69831
|
-
justifyContent: colSum.textAlign
|
|
69832
|
-
|
|
69833
|
-
|
|
69834
|
-
|
|
69835
|
-
|
|
69867
|
+
justifyContent: colSum.textAlign
|
|
69868
|
+
? colSum.textAlign
|
|
69869
|
+
: 'left',
|
|
69870
|
+
}, children: (haveSum || colSum.haveSum === true) &&
|
|
69871
|
+
Number(row[colSum.field] ?? '0') < 0 ? (jsxRuntime.jsx("div", { style: {
|
|
69872
|
+
color: formatSetting?.colorNegative ?? 'red',
|
|
69873
|
+
}, children: `${formatSetting?.prefixNegative ?? '-'}${sumValue}${formatSetting?.suffixNegative ?? ''}` })) : (sumValue) }) }, `group-sum-cell-${level}-${indexRow}-${indexCol}`));
|
|
69874
|
+
})] }), expand && (jsxRuntime.jsx(RenderContent, { datas: row.children, level: level + 1 }))] }, `row-${level}-${indexRow}`));
|
|
69836
69875
|
}
|
|
69837
69876
|
else {
|
|
69838
69877
|
const isSelected = selectedRows?.some((x) => x[fieldKey] === row[fieldKey]);
|
|
69839
69878
|
return (jsxRuntime.jsx("tr", { id: `row-content-${indexRow}`, "aria-rowindex": indexRow + 1, role: "row", className: classNames$1('r-row', {
|
|
69840
|
-
'r-last-row': level === 0 && indexRow === viewData.length - 1
|
|
69879
|
+
'r-last-row': level === 0 && indexRow === viewData.length - 1,
|
|
69841
69880
|
}), onContextMenu: (e) => {
|
|
69842
69881
|
e.preventDefault();
|
|
69843
69882
|
handleContextMenu(e, row);
|
|
@@ -69853,7 +69892,7 @@ const TableElement = React__default["default"].memo((props) => {
|
|
|
69853
69892
|
x: e.clientX,
|
|
69854
69893
|
y: e.clientY,
|
|
69855
69894
|
row,
|
|
69856
|
-
show: true
|
|
69895
|
+
show: true,
|
|
69857
69896
|
});
|
|
69858
69897
|
}, 100);
|
|
69859
69898
|
};
|
|
@@ -69877,20 +69916,28 @@ const TableElement = React__default["default"].memo((props) => {
|
|
|
69877
69916
|
let sumValue = item?.value;
|
|
69878
69917
|
if (!item && col.haveSum === true && col.type === 'numeric') {
|
|
69879
69918
|
sumValue = viewData.reduce(function (accumulator, currentValue) {
|
|
69880
|
-
return Number(accumulator ?? 0) +
|
|
69919
|
+
return (Number(accumulator ?? 0) +
|
|
69920
|
+
Number(currentValue[col.field] ?? 0));
|
|
69881
69921
|
}, 0);
|
|
69882
69922
|
}
|
|
69883
69923
|
if (col.type === 'numeric') {
|
|
69884
69924
|
sumValue = formartNumberic(sumValue, formatSetting?.decimalSeparator ?? ',', formatSetting?.thousandSeparator ?? '.', col.numericSettings?.fraction, true, false);
|
|
69885
69925
|
}
|
|
69886
69926
|
return (jsxRuntime.jsx("td", { className: classNames$1(`p-0 px-50 r-footer fix-${col.fixedType}`, { 'cell-fixed': col.fixedType }), style: {
|
|
69887
|
-
left: col.fixedType === 'left'
|
|
69888
|
-
|
|
69889
|
-
|
|
69890
|
-
|
|
69891
|
-
|
|
69927
|
+
left: col.fixedType === 'left'
|
|
69928
|
+
? objWidthFixLeft[indexCol]
|
|
69929
|
+
: undefined,
|
|
69930
|
+
right: col.fixedType === 'right'
|
|
69931
|
+
? objWidthFixRight[indexCol]
|
|
69932
|
+
: undefined,
|
|
69933
|
+
textAlign: col.textAlign ? col.textAlign : 'left',
|
|
69934
|
+
}, children: jsxRuntime.jsx("div", { className: "r-footer-div", children: (item || col.haveSum === true) &&
|
|
69935
|
+
Number(item?.value ?? '0') < 0 ? (jsxRuntime.jsxs("div", { style: {
|
|
69936
|
+
color: formatSetting?.colorNegative ?? 'red',
|
|
69892
69937
|
}, children: [' ', `${formatSetting?.prefixNegative ?? '-'}${sumValue}${formatSetting?.suffixNegative ?? ''}`] })) : (sumValue) }) }, `summarycell-${indexCol}`));
|
|
69893
|
-
}) })) })] }), jsxRuntime.jsx("div", { ref: virtualDivRef }), context &&
|
|
69938
|
+
}) })) })] }), jsxRuntime.jsx("div", { ref: virtualDivRef }), context &&
|
|
69939
|
+
(contextMenuItems?.length ?? 0) > 0 &&
|
|
69940
|
+
handleContextMenuClick && (jsxRuntime.jsx(Popover$1, { className: "r-context-popover", placement: "right-start", isOpen: context.show, target: virtualDivRef.current, toggle: handleCloseContext, fade: false, children: jsxRuntime.jsx(PopoverBody$1, { children: contextMenuItems?.map((item, index) => {
|
|
69894
69941
|
return (jsxRuntime.jsxs("div", { className: "r-context-item", onClick: () => {
|
|
69895
69942
|
handleCloseContext();
|
|
69896
69943
|
handleContextMenuClick?.(item, context.row);
|