es-grid-template 1.9.58 → 1.9.59
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/es/grid-component/hooks/utils.d.ts +2 -2
- package/es/grid-component/hooks/utils.js +0 -8
- package/es/grid-component/type.d.ts +4 -3
- package/es/group-component/body/EditableCell.d.ts +1 -2
- package/es/group-component/hook/utils.d.ts +4 -3
- package/es/table-component/body/EditableCell.d.ts +1 -2
- package/es/table-component/body/EditableCell.js +5 -3
- package/es/table-component/body/TableBodyCell.js +77 -8
- package/es/table-component/body/TableBodyCellEdit.js +88 -18
- package/es/table-component/style.js +1 -1
- package/lib/grid-component/hooks/utils.d.ts +2 -2
- package/lib/grid-component/hooks/utils.js +0 -10
- package/lib/grid-component/type.d.ts +4 -3
- package/lib/group-component/body/EditableCell.d.ts +1 -2
- package/lib/group-component/hook/utils.d.ts +1 -0
- package/lib/table-component/body/EditableCell.d.ts +1 -2
- package/lib/table-component/body/EditableCell.js +5 -3
- package/lib/table-component/body/TableBodyCell.js +77 -8
- package/lib/table-component/body/TableBodyCellEdit.js +88 -18
- package/lib/table-component/style.js +1 -1
- package/package.json +1 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type * as React from "react";
|
|
2
2
|
import dayjs from "dayjs";
|
|
3
|
-
import type {
|
|
3
|
+
import type { TypeFilter } from "rc-master-ui";
|
|
4
4
|
import type { Key } from "react";
|
|
5
5
|
import type { ColumnsTable } from "./../index";
|
|
6
|
-
import type { AnyObject, ColumnTable, GetRowKey, IFormat } from "../type";
|
|
6
|
+
import type { AnyObject, ColumnTable, EditType, GetRowKey, IColumnType, IFormat } from "../type";
|
|
7
7
|
export declare const newGuid: () => any;
|
|
8
8
|
export declare const sumDataByField: (data: any[], field: string) => any;
|
|
9
9
|
export declare const checkThousandSeparator: (thousandSeparator: string | undefined, decimalSeparator: string | undefined) => string;
|
|
@@ -1,18 +1,10 @@
|
|
|
1
1
|
import dayjs from "dayjs";
|
|
2
|
-
// import type {ColumnTable, GetRowKey, IFormat, Presets} from "./../ type"
|
|
3
2
|
import moment from "moment/moment";
|
|
4
|
-
// import type {SelectionSettings} from "../type"
|
|
5
|
-
// import type {AnyObject} from "../type"
|
|
6
3
|
import { v4 as uuidv4 } from 'uuid';
|
|
7
4
|
import { presetPalettes } from "@ant-design/colors";
|
|
8
|
-
// import {Table} from "rc-master-ui"
|
|
9
|
-
// import {flatColumns2} from "./columns"
|
|
10
|
-
// import {SELECTION_COLUMN} from "./useColumns"
|
|
11
|
-
|
|
12
5
|
export const newGuid = () => {
|
|
13
6
|
for (let i = 0; i < 20; i++) {
|
|
14
7
|
// @ts-ignore
|
|
15
|
-
// const id = crypto.randomUUID()
|
|
16
8
|
return uuidv4();
|
|
17
9
|
}
|
|
18
10
|
};
|
|
@@ -94,10 +94,10 @@ export type IFormat = {
|
|
|
94
94
|
yearFormat?: string;
|
|
95
95
|
};
|
|
96
96
|
export type RowSelectMethod = 'all' | 'none' | 'invert' | 'single' | 'multiple';
|
|
97
|
-
export type EditType = 'text' | 'numeric' | 'asyncSelect' | 'date' | 'datetime' | 'time' | 'week' | 'month' | 'quarter' | 'year' | 'select' | 'checkbox' | 'currency' | 'image' | 'selectTable' | 'customSelect' | 'form' | 'color' | 'treeSelect' | 'file';
|
|
97
|
+
export type EditType = 'text' | 'numeric' | 'asyncSelect' | 'date' | 'datetime' | 'time' | 'week' | 'month' | 'quarter' | 'year' | 'select' | 'checkbox' | 'currency' | 'image' | 'selectTable' | 'customSelect' | 'form' | 'color' | 'link' | 'treeSelect' | 'file';
|
|
98
98
|
export type ITextAlign = 'center' | 'left' | 'right';
|
|
99
99
|
export type TypeFilter = 'Text' | 'Date' | 'Time' | 'Datetime' | 'DateRange' | 'Month' | 'Quarter' | 'Year' | 'Week' | 'Number' | 'NumberRange' | 'Dropdown' | 'DropTree' | 'Checkbox' | 'CheckboxTree' | 'CheckboxDropdown';
|
|
100
|
-
export type IColumnType = 'number' | 'time' | 'date' | 'week' | 'month' | 'file' | 'quarter' | 'year' | 'datetime' | 'string' | 'boolean' | 'checkbox' | 'color' | null | undefined;
|
|
100
|
+
export type IColumnType = 'number' | 'time' | 'date' | 'week' | 'month' | 'file' | 'quarter' | 'year' | 'datetime' | 'string' | 'boolean' | 'checkbox' | 'color' | 'link' | null | undefined;
|
|
101
101
|
export type FilterOperator = 'equal' | 'notequal' | 'greaterthan' | 'greaterthanorequal' | 'lessthan' | 'lessthanorequal' | 'startswith' | 'endswith' | 'contains';
|
|
102
102
|
export type FixedType = 'left' | 'right' | boolean;
|
|
103
103
|
export type SelectMode = 'checkbox' | 'radio' | undefined;
|
|
@@ -241,6 +241,7 @@ export type ColumnTable<RecordType = AnyObject> = {
|
|
|
241
241
|
textAlign?: ITextAlign;
|
|
242
242
|
/** Template custom render cell */
|
|
243
243
|
template?: ReactNode | ReactElement | ((args: ColumnTemplate<RecordType>) => ReactNode | ReactElement);
|
|
244
|
+
linkTemplate?: ReactNode | ReactElement | ((args: ColumnTemplate<RecordType>) => ReactNode | ReactElement);
|
|
244
245
|
/** Hiển thị tooltip cell */
|
|
245
246
|
showTooltip?: boolean;
|
|
246
247
|
/** Nội dung tooltip của cell */
|
|
@@ -811,7 +812,7 @@ export type RangeState = {
|
|
|
811
812
|
endColIndex: number | undefined;
|
|
812
813
|
rowIds: string[];
|
|
813
814
|
colIds: string[];
|
|
814
|
-
type?:
|
|
815
|
+
type?: any;
|
|
815
816
|
};
|
|
816
817
|
export type Sorter = {
|
|
817
818
|
columnKey: string;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import type { EditType } from "
|
|
3
|
-
import type { ColumnTable, IFormat } from "../../grid-component/type";
|
|
2
|
+
import type { ColumnTable, EditType, IFormat } from "../../grid-component/type";
|
|
4
3
|
interface EditableCellProps<DataType> extends React.HTMLAttributes<HTMLElement> {
|
|
5
4
|
t?: any;
|
|
6
5
|
dataIndex: string;
|
|
@@ -189,15 +189,16 @@ export declare const fixColumnsLeft: <RecordType>(columns: ColumnTable<RecordTyp
|
|
|
189
189
|
align?: import("./../../grid-component/type").ITextAlign;
|
|
190
190
|
textAlign?: import("./../../grid-component/type").ITextAlign;
|
|
191
191
|
template?: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | import("react").ReactNode | ((args: import("./../../grid-component/type").ColumnTemplate<RecordType>) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | import("react").ReactNode);
|
|
192
|
+
linkTemplate?: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | import("react").ReactNode | ((args: import("./../../grid-component/type").ColumnTemplate<RecordType>) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | import("react").ReactNode);
|
|
192
193
|
showTooltip?: boolean;
|
|
193
194
|
tooltipDescription?: string | ((args: {
|
|
194
195
|
value: any;
|
|
195
196
|
rowData: RecordType;
|
|
196
197
|
}) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | import("react").ReactNode);
|
|
197
|
-
onCellStyles?: Omit<CSSProperties, "
|
|
198
|
-
onCellHeaderStyles?: Omit<CSSProperties, "
|
|
198
|
+
onCellStyles?: Omit<CSSProperties, "position" | "left" | "right" | "display" | "width" | "minWidth"> | ((cellValue: any, cell: import("@tanstack/react-table").Cell<RecordType, unknown>) => Omit<CSSProperties, "position" | "left" | "right" | "display" | "width" | "minWidth">);
|
|
199
|
+
onCellHeaderStyles?: Omit<CSSProperties, "position" | "left" | "right" | "display" | "width" | "minWidth"> | ((cell: import("@tanstack/react-table").Header<RecordType, unknown>) => Omit<CSSProperties, "position" | "left" | "right" | "display" | "width" | "minWidth">);
|
|
199
200
|
onCell?: (rowData: RecordType, index: number) => import("react").TdHTMLAttributes<HTMLTableCellElement>;
|
|
200
|
-
onCellFooterStyles?: Omit<CSSProperties, "
|
|
201
|
+
onCellFooterStyles?: Omit<CSSProperties, "position" | "left" | "right" | "display" | "width" | "minWidth"> | ((cellValue: any, cell: import("@tanstack/react-table").Header<RecordType, unknown>) => Omit<CSSProperties, "position" | "left" | "right" | "display" | "width" | "minWidth">);
|
|
201
202
|
getValue?: (row: any, rowIndex: number) => any;
|
|
202
203
|
getCellProps?: (value: any, row: any, rowIndex: number) => import("./../../grid-component/type").CellProps;
|
|
203
204
|
headerCellProps?: import("./../../grid-component/type").CellProps;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import type { EditType } from "
|
|
3
|
-
import type { ColumnTable, IFormat } from "../../grid-component/type";
|
|
2
|
+
import type { ColumnTable, EditType, IFormat } from "../../grid-component/type";
|
|
4
3
|
import type { Column } from "@tanstack/react-table";
|
|
5
4
|
interface EditableCellProps<DataType> extends React.HTMLAttributes<HTMLElement> {
|
|
6
5
|
t?: any;
|
|
@@ -2,6 +2,8 @@ import _extends from "@babel/runtime/helpers/esm/extends";
|
|
|
2
2
|
import React, { useContext } from "react";
|
|
3
3
|
import { DatePicker, TimePicker, ColorPicker, Input } from "rc-master-ui";
|
|
4
4
|
import { Divider, Row, Col, Button } from "rc-master-ui";
|
|
5
|
+
// import type { EditType } from "rc-master-ui"
|
|
6
|
+
|
|
5
7
|
import { checkDecimalSeparator, checkThousandSeparator, checkFieldKey, convertArrayWithIndent, convertDateToDayjs, convertLabelToTitle, getDatepickerFormat, isDisable, isEmpty, isNullOrUndefined, customWeekStartEndFormat, convertDayjsToDate, parseBooleanToValue, isColor, genPresets, getFormat, removeVietnameseTones, getDateValueType } from "../hook/utils";
|
|
6
8
|
import classNames from "classnames";
|
|
7
9
|
import { NumericFormat } from "react-numeric-component";
|
|
@@ -483,7 +485,7 @@ const EditableCell = props => {
|
|
|
483
485
|
const formState = getValues();
|
|
484
486
|
const formNewState = {
|
|
485
487
|
...getValues(),
|
|
486
|
-
[dataIndex]: formState[dataIndex]
|
|
488
|
+
[dataIndex]: !isNullOrUndefined(formState[dataIndex]) ? formState[dataIndex] : undefined
|
|
487
489
|
};
|
|
488
490
|
// @ts-ignore
|
|
489
491
|
const prevState = record[dataIndex] ?? undefined;
|
|
@@ -629,7 +631,7 @@ const EditableCell = props => {
|
|
|
629
631
|
const formState = getValues();
|
|
630
632
|
const formNewState = {
|
|
631
633
|
...getValues(),
|
|
632
|
-
[dataIndex]: formState[dataIndex]
|
|
634
|
+
[dataIndex]: !isNullOrUndefined(formState[dataIndex]) ? formState[dataIndex] : undefined
|
|
633
635
|
};
|
|
634
636
|
// @ts-ignore
|
|
635
637
|
const prevState = record[dataIndex] ?? undefined;
|
|
@@ -773,7 +775,7 @@ const EditableCell = props => {
|
|
|
773
775
|
const formState = getValues();
|
|
774
776
|
const formNewState = {
|
|
775
777
|
...getValues(),
|
|
776
|
-
[dataIndex]: formState[dataIndex]
|
|
778
|
+
[dataIndex]: !isNullOrUndefined(formState[dataIndex]) ? formState[dataIndex] : undefined
|
|
777
779
|
};
|
|
778
780
|
// @ts-ignore
|
|
779
781
|
const prevState = record[dataIndex] ?? undefined;
|
|
@@ -6,6 +6,7 @@ import classNames from "classnames";
|
|
|
6
6
|
import React from "react";
|
|
7
7
|
import { TableContext } from "../useContext";
|
|
8
8
|
import { getValueCellString, renderValueCell, toggleRowSelection } from "../hook/useColumns";
|
|
9
|
+
import { Dropdown } from "rc-master-ui";
|
|
9
10
|
const renderCellIndex = props => {
|
|
10
11
|
const {
|
|
11
12
|
parrents,
|
|
@@ -213,6 +214,18 @@ const TableBodyCell = props => {
|
|
|
213
214
|
const colFormat = typeof columnMeta?.format === 'function' ? columnMeta?.format(record) : columnMeta?.format;
|
|
214
215
|
const cellFormat = getFormat(colFormat, format);
|
|
215
216
|
const fomatedValue = renderValueCell(columnMeta, cellValue, record, rowIndex, colIndex, cellFormat, true);
|
|
217
|
+
const cellContent = columnMeta?.template ? typeof columnMeta.template === 'function' ? columnMeta.template({
|
|
218
|
+
field: columnMeta.field,
|
|
219
|
+
index: cell.row.index,
|
|
220
|
+
rowData: cell.row.original,
|
|
221
|
+
value: cell.getValue()
|
|
222
|
+
}) : columnMeta.template : fomatedValue;
|
|
223
|
+
const linkContent = columnMeta?.linkTemplate ? typeof columnMeta.linkTemplate === 'function' ? columnMeta.linkTemplate({
|
|
224
|
+
field: columnMeta.field,
|
|
225
|
+
index: cell.row.index,
|
|
226
|
+
rowData: cell.row.original,
|
|
227
|
+
value: cell.getValue()
|
|
228
|
+
}) : columnMeta.linkTemplate : cellContent;
|
|
216
229
|
const valueCellString = getValueCellString(columnMeta, cellValue, record, rowIndex, colIndex, format);
|
|
217
230
|
const tooltipContent = React.useMemo(() => {
|
|
218
231
|
if (isOpenTooltip === false) {
|
|
@@ -375,7 +388,7 @@ const TableBodyCell = props => {
|
|
|
375
388
|
"data-row-index": rowNumber,
|
|
376
389
|
"data-col-key": cell.column.id,
|
|
377
390
|
"data-tooltip-id": `${id}-tooltip-content`,
|
|
378
|
-
"data-tooltip-content": tooltipContent
|
|
391
|
+
"data-tooltip-content": columnMeta?.type === 'link' ? '' : tooltipContent
|
|
379
392
|
// data-tooltip-delay-show={500}
|
|
380
393
|
,
|
|
381
394
|
|
|
@@ -389,7 +402,8 @@ const TableBodyCell = props => {
|
|
|
389
402
|
[`${prefix}-grid-cell-fix-left-last`]: isLastLeftPinnedColumn,
|
|
390
403
|
[`${prefix}-grid-cell-fix-right-first`]: isFirstRightPinnedColumn,
|
|
391
404
|
[`${prefix}-grid-cell-text-center`]: columnMeta?.textAlign === 'center',
|
|
392
|
-
[`${prefix}-grid-cell-text-right`]: columnMeta?.textAlign === 'right' || columnMeta
|
|
405
|
+
[`${prefix}-grid-cell-text-right`]: columnMeta?.textAlign === 'right' || columnMeta?.type === 'number',
|
|
406
|
+
[`${prefix}-grid-cell-link`]: columnMeta?.type === 'link'
|
|
393
407
|
}),
|
|
394
408
|
style: {
|
|
395
409
|
...cellStyles,
|
|
@@ -487,6 +501,30 @@ const TableBodyCell = props => {
|
|
|
487
501
|
}
|
|
488
502
|
}
|
|
489
503
|
}
|
|
504
|
+
}, cellContent && columnMeta?.type === 'link' ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Dropdown, {
|
|
505
|
+
trigger: ['hover'],
|
|
506
|
+
menu: {
|
|
507
|
+
items: [{
|
|
508
|
+
key: '1',
|
|
509
|
+
label: ''
|
|
510
|
+
}]
|
|
511
|
+
},
|
|
512
|
+
dropdownRender: () => /*#__PURE__*/React.createElement("div", {
|
|
513
|
+
style: {
|
|
514
|
+
padding: '1rem',
|
|
515
|
+
backgroundColor: '#ffffff',
|
|
516
|
+
borderRadius: 6,
|
|
517
|
+
boxShadow: '0 6px 16px 0 rgba(0, 0, 0, 0.08),0 3px 6px -4px rgba(0, 0, 0, 0.12),0 9px 28px 8px rgba(0, 0, 0, 0.05)'
|
|
518
|
+
}
|
|
519
|
+
}, linkContent && typeof linkContent === 'string' ? /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("a", {
|
|
520
|
+
href: linkContent,
|
|
521
|
+
target: "_blank",
|
|
522
|
+
rel: "noreferrer"
|
|
523
|
+
}, linkContent)) : linkContent ? linkContent : /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("a", {
|
|
524
|
+
href: typeof cellContent === 'string' ? cellContent : '',
|
|
525
|
+
target: "_blank",
|
|
526
|
+
rel: "noreferrer"
|
|
527
|
+
}, cellContent)))
|
|
490
528
|
}, /*#__PURE__*/React.createElement("div", {
|
|
491
529
|
className: classNames('ui-rc_cell-content', {})
|
|
492
530
|
}, cell.column.getIndex() === expandIconColumnIndex && isDataTree && /*#__PURE__*/React.createElement("div", {
|
|
@@ -535,11 +573,42 @@ const TableBodyCell = props => {
|
|
|
535
573
|
className: "ui-rc-table-row-expand-icon ui-rc-table-row-expand-icon-collapsed"
|
|
536
574
|
})) : /*#__PURE__*/React.createElement("span", {
|
|
537
575
|
className: "ui-rc-table-row-expand-icon ui-rc-table-row-expand-icon-spaced"
|
|
538
|
-
}))),
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
576
|
+
}))), cellContent))) : /*#__PURE__*/React.createElement("div", {
|
|
577
|
+
className: classNames('ui-rc_cell-content', {})
|
|
578
|
+
}, cell.column.getIndex() === expandIconColumnIndex && isDataTree && /*#__PURE__*/React.createElement("div", {
|
|
579
|
+
className: "ui-rc-table-row-expand-trigger",
|
|
580
|
+
style: {
|
|
581
|
+
paddingLeft: `${cell.row.depth * 25}px`
|
|
582
|
+
}
|
|
583
|
+
}, /*#__PURE__*/React.createElement("div", null, cell.row.getCanExpand() ? /*#__PURE__*/React.createElement("button", {
|
|
584
|
+
// onClick: row.getToggleExpandedHandler(),
|
|
585
|
+
onClick: e => {
|
|
586
|
+
e.stopPropagation();
|
|
587
|
+
const keys = Object.keys(expanded);
|
|
588
|
+
// @ts-ignore
|
|
589
|
+
const tmp = {
|
|
590
|
+
...expanded
|
|
591
|
+
};
|
|
592
|
+
if (keys.includes(cell.row.id)) {
|
|
593
|
+
delete tmp[cell.row.id];
|
|
594
|
+
setExpanded(tmp);
|
|
595
|
+
} else {
|
|
596
|
+
setExpanded(old => ({
|
|
597
|
+
...old,
|
|
598
|
+
[cell.row.id]: true
|
|
599
|
+
}));
|
|
600
|
+
}
|
|
601
|
+
},
|
|
602
|
+
style: {
|
|
603
|
+
cursor: "pointer"
|
|
604
|
+
},
|
|
605
|
+
className: "ui-rc-table-row-expand"
|
|
606
|
+
}, cell.row.getIsExpanded() ? /*#__PURE__*/React.createElement("span", {
|
|
607
|
+
className: "ui-rc-table-row-expand-icon ui-rc-table-row-expand-icon-expanded"
|
|
608
|
+
}) : /*#__PURE__*/React.createElement("span", {
|
|
609
|
+
className: "ui-rc-table-row-expand-icon ui-rc-table-row-expand-icon-collapsed"
|
|
610
|
+
})) : /*#__PURE__*/React.createElement("span", {
|
|
611
|
+
className: "ui-rc-table-row-expand-icon ui-rc-table-row-expand-icon-spaced"
|
|
612
|
+
}))), cellContent));
|
|
544
613
|
};
|
|
545
614
|
export default TableBodyCell;
|
|
@@ -8,6 +8,7 @@ import { TableContext } from "../useContext";
|
|
|
8
8
|
import EditableCell from "./EditableCell";
|
|
9
9
|
import { nonActionColumn } from "../../grid-component/hooks";
|
|
10
10
|
import { getValueCellString, renderValueCell, toggleRowSelection } from "../hook/useColumns";
|
|
11
|
+
import { Dropdown } from "rc-master-ui";
|
|
11
12
|
const renderCellIndex = props => {
|
|
12
13
|
const {
|
|
13
14
|
parrents,
|
|
@@ -239,13 +240,6 @@ const TableBodyCellEdit = props => {
|
|
|
239
240
|
const [isOpenTooltip, setIsOpenTooltip] = React.useState(false);
|
|
240
241
|
const rowError = dataErrors ? dataErrors.find(it => it.id === cell.row.id) : undefined;
|
|
241
242
|
const message = rowError && rowError[cell.column.id]?.field === cell.column.id ? rowError[cell.column.id].message : undefined;
|
|
242
|
-
|
|
243
|
-
// const tooltipContent = (isOpenTooltip === false)
|
|
244
|
-
// ? ''
|
|
245
|
-
// : columnMeta?.tooltipDescription
|
|
246
|
-
// ? (typeof columnMeta.tooltipDescription === 'function' ? columnMeta.tooltipDescription({ value: cell.getValue(), rowData: record }) : columnMeta.tooltipDescription)
|
|
247
|
-
// : cell.getValue()
|
|
248
|
-
|
|
249
243
|
const canEdit = isEditable(cell.column.columnDef.meta, record) && isRowEditable !== false;
|
|
250
244
|
|
|
251
245
|
// const allRows = table.getRowModel().rows;
|
|
@@ -1273,6 +1267,18 @@ const TableBodyCellEdit = props => {
|
|
|
1273
1267
|
const colFormat = typeof columnMeta?.format === 'function' ? columnMeta?.format(record) : columnMeta?.format;
|
|
1274
1268
|
const cellFormat = getFormat(colFormat, format);
|
|
1275
1269
|
const fomatedValue = renderValueCell(columnMeta, cellValue, record, rowIndex, colIndex, cellFormat, true);
|
|
1270
|
+
const cellContent = columnMeta?.template ? typeof columnMeta.template === 'function' ? columnMeta.template({
|
|
1271
|
+
field: columnMeta.field,
|
|
1272
|
+
index: cell.row.index,
|
|
1273
|
+
rowData: cell.row.original,
|
|
1274
|
+
value: cell.getValue()
|
|
1275
|
+
}) : columnMeta.template : fomatedValue;
|
|
1276
|
+
const linkContent = columnMeta?.linkTemplate ? typeof columnMeta.linkTemplate === 'function' ? columnMeta.linkTemplate({
|
|
1277
|
+
field: columnMeta.field,
|
|
1278
|
+
index: cell.row.index,
|
|
1279
|
+
rowData: cell.row.original,
|
|
1280
|
+
value: cell.getValue()
|
|
1281
|
+
}) : columnMeta.linkTemplate : cellContent;
|
|
1276
1282
|
return /*#__PURE__*/React.createElement("div", {
|
|
1277
1283
|
key: cell.id,
|
|
1278
1284
|
ref: el => {
|
|
@@ -1287,7 +1293,7 @@ const TableBodyCellEdit = props => {
|
|
|
1287
1293
|
"data-row-key": cell.row.id,
|
|
1288
1294
|
"data-tooltip-id": `${id}-tooltip-content`,
|
|
1289
1295
|
"data-tooltip-delay-show": 500,
|
|
1290
|
-
"data-tooltip-content": isEditing && message ? message : rowError && rowError[cell.column.id]?.field === cell.column.id ? rowError[cell.column.id].message : tooltipContent,
|
|
1296
|
+
"data-tooltip-content": isEditing && message ? message : rowError && rowError[cell.column.id]?.field === cell.column.id ? rowError[cell.column.id].message : columnMeta?.type === 'link' ? '' : tooltipContent,
|
|
1291
1297
|
className: classNames(`${prefix}-grid-cell cell-editable editable `, {
|
|
1292
1298
|
[`${prefix}-grid-cell-ellipsis`]: true,
|
|
1293
1299
|
'cell-editing': isEditing,
|
|
@@ -1306,7 +1312,8 @@ const TableBodyCellEdit = props => {
|
|
|
1306
1312
|
[`${prefix}-grid-cell-fix-left-last`]: isLastLeftPinnedColumn,
|
|
1307
1313
|
[`${prefix}-grid-cell-fix-right-first`]: isFirstRightPinnedColumn,
|
|
1308
1314
|
[`${prefix}-grid-cell-text-center`]: columnMeta?.textAlign === 'center',
|
|
1309
|
-
[`${prefix}-grid-cell-text-right`]: columnMeta?.textAlign === 'right' || columnMeta
|
|
1315
|
+
[`${prefix}-grid-cell-text-right`]: columnMeta?.textAlign === 'right' || columnMeta?.type === 'number',
|
|
1316
|
+
[`${prefix}-grid-cell-link`]: columnMeta?.type === 'link'
|
|
1310
1317
|
}),
|
|
1311
1318
|
style: {
|
|
1312
1319
|
display: 'flex',
|
|
@@ -1406,8 +1413,31 @@ const TableBodyCellEdit = props => {
|
|
|
1406
1413
|
record: record,
|
|
1407
1414
|
visibleColumns: visibleColumns,
|
|
1408
1415
|
handleNextCell: handleNextCell
|
|
1409
|
-
|
|
1410
|
-
|
|
1416
|
+
}) : columnMeta?.type === 'link' ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Dropdown, {
|
|
1417
|
+
trigger: ['hover'],
|
|
1418
|
+
menu: {
|
|
1419
|
+
items: [{
|
|
1420
|
+
key: '1',
|
|
1421
|
+
label: ''
|
|
1422
|
+
}]
|
|
1423
|
+
},
|
|
1424
|
+
dropdownRender: () => /*#__PURE__*/React.createElement("div", {
|
|
1425
|
+
style: {
|
|
1426
|
+
padding: '1rem',
|
|
1427
|
+
backgroundColor: '#ffffff',
|
|
1428
|
+
borderRadius: 6,
|
|
1429
|
+
boxShadow: '0 6px 16px 0 rgba(0, 0, 0, 0.08),0 3px 6px -4px rgba(0, 0, 0, 0.12),0 9px 28px 8px rgba(0, 0, 0, 0.05)'
|
|
1430
|
+
}
|
|
1431
|
+
}, linkContent && typeof linkContent === 'string' ? /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("a", {
|
|
1432
|
+
href: linkContent,
|
|
1433
|
+
target: "_blank",
|
|
1434
|
+
rel: "noreferrer"
|
|
1435
|
+
}, linkContent)) : linkContent ? linkContent : /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("a", {
|
|
1436
|
+
href: typeof cellContent === 'string' ? cellContent : '',
|
|
1437
|
+
target: "_blank",
|
|
1438
|
+
rel: "noreferrer"
|
|
1439
|
+
}, cellContent)))
|
|
1440
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
1411
1441
|
className: classNames('ui-rc_cell-content', {
|
|
1412
1442
|
'select-cell': canEdit && ['select', 'selectTable', 'asyncSelect', 'treeSelect'].includes(getEditType(columnMeta, record))
|
|
1413
1443
|
})
|
|
@@ -1447,17 +1477,57 @@ const TableBodyCellEdit = props => {
|
|
|
1447
1477
|
className: "ui-rc-table-row-expand-icon ui-rc-table-row-expand-icon-collapsed"
|
|
1448
1478
|
})) : /*#__PURE__*/React.createElement("span", {
|
|
1449
1479
|
className: "ui-rc-table-row-expand-icon ui-rc-table-row-expand-icon-spaced"
|
|
1450
|
-
}))),
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
}) :
|
|
1480
|
+
}))), cellContent, (editType === 'select' || editType === 'selectTable' || editType === 'asyncSelect' || editType === 'treeSelect') && canEdit && /*#__PURE__*/React.createElement("span", {
|
|
1481
|
+
className: 'caret-down',
|
|
1482
|
+
onClick: e => {
|
|
1483
|
+
handleEdit(e);
|
|
1484
|
+
}
|
|
1485
|
+
})))) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
1486
|
+
className: classNames('ui-rc_cell-content', {
|
|
1487
|
+
'select-cell': canEdit && ['select', 'selectTable', 'asyncSelect', 'treeSelect'].includes(getEditType(columnMeta, record))
|
|
1488
|
+
})
|
|
1489
|
+
}, cell.column.getIndex() === expandIconColumnIndex && isDataTree && /*#__PURE__*/React.createElement("div", {
|
|
1490
|
+
className: "ui-rc-table-row-expand-trigger",
|
|
1491
|
+
style: {
|
|
1492
|
+
paddingLeft: `${cell.row.depth * 25}px`
|
|
1493
|
+
}
|
|
1494
|
+
}, /*#__PURE__*/React.createElement("div", null, cell.row.getCanExpand() ? /*#__PURE__*/React.createElement("button", {
|
|
1495
|
+
// onClick: row.getToggleExpandedHandler(),
|
|
1496
|
+
onClick: e => {
|
|
1497
|
+
e.stopPropagation();
|
|
1498
|
+
e.preventDefault();
|
|
1499
|
+
setIsExpandClick(true);
|
|
1500
|
+
const keys = Object.keys(expanded);
|
|
1501
|
+
// @ts-ignore
|
|
1502
|
+
const tmp = {
|
|
1503
|
+
...expanded
|
|
1504
|
+
};
|
|
1505
|
+
if (keys.includes(cell.row.id)) {
|
|
1506
|
+
delete tmp[cell.row.id];
|
|
1507
|
+
setExpanded(tmp);
|
|
1508
|
+
} else {
|
|
1509
|
+
setExpanded(old => ({
|
|
1510
|
+
...old,
|
|
1511
|
+
[cell.row.id]: true
|
|
1512
|
+
}));
|
|
1513
|
+
}
|
|
1514
|
+
},
|
|
1515
|
+
style: {
|
|
1516
|
+
cursor: "pointer"
|
|
1517
|
+
},
|
|
1518
|
+
className: "ui-rc-table-row-expand"
|
|
1519
|
+
}, cell.row.getIsExpanded() ? /*#__PURE__*/React.createElement("span", {
|
|
1520
|
+
className: "ui-rc-table-row-expand-icon ui-rc-table-row-expand-icon-expanded"
|
|
1521
|
+
}) : /*#__PURE__*/React.createElement("span", {
|
|
1522
|
+
className: "ui-rc-table-row-expand-icon ui-rc-table-row-expand-icon-collapsed"
|
|
1523
|
+
})) : /*#__PURE__*/React.createElement("span", {
|
|
1524
|
+
className: "ui-rc-table-row-expand-icon ui-rc-table-row-expand-icon-spaced"
|
|
1525
|
+
}))), cellContent, (editType === 'select' || editType === 'selectTable' || editType === 'asyncSelect' || editType === 'treeSelect') && canEdit && /*#__PURE__*/React.createElement("span", {
|
|
1456
1526
|
className: 'caret-down',
|
|
1457
1527
|
onClick: e => {
|
|
1458
1528
|
handleEdit(e);
|
|
1459
1529
|
}
|
|
1460
|
-
})), !isSelecting && !isEditing && rowRange &&
|
|
1530
|
+
}))), !isSelecting && !isEditing && rowRange &&
|
|
1461
1531
|
// rowNumber === rangeState?.endRowIndex &&
|
|
1462
1532
|
cell.row.id === rowRange[rowRange?.length - 1] && cell.column.getIndex() === rangeState?.endColIndex && /*#__PURE__*/React.createElement("div", {
|
|
1463
1533
|
className: 'dragging-point',
|
|
@@ -48,4 +48,4 @@ const colorDark = '#e6e4f3e6 ';
|
|
|
48
48
|
export const GridStyle = styled.div.withConfig({
|
|
49
49
|
displayName: "GridStyle",
|
|
50
50
|
componentId: "es-grid-template__sc-hdqm5k-0"
|
|
51
|
-
})(["&.", "-grid{color:", ";font-size:", ";background-color:", ";font-family:", ";&.", "-grid-editable{.", "-grid-container{.", "-grid-tbody{.", "-grid-row{background-color:", ";color:", ";&.", "-grid-row-parent{background-color:#ffffff;font-weight:500;}}}}}table{table-layout:fixed;border-collapse:separate;border-spacing:0;}.", "-grid-container{border:1px solid ", ";border-right:0;&::after{position:absolute;top:0px;right:0;z-index:1;height:100%;border-right:1px solid ", ";content:'';pointer-events:none;}.", "-grid-cell{padding:5px 8px;&.", "-grid-cell-text-center{text-align:center;justify-content:center;}&.", "-grid-cell-text-right{justify-content:flex-end;text-align:right;}&.editable{.ui-rc_cell-content{height:100%}}&.", "-grid-cell-ellipsis{.ui-rc_cell-content{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all;&.select-cell{padding-right:18px;position:relative;}.caret-down{float:right;position:absolute;right:0;&::before{content:'';display:inline-block;margin-left:4px;vertical-align:middle;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #6f7777;}}}}&.", "-grid-cell-wrap{white-space:normal;text-overflow:ellipsis;word-break:break-word;}.", "-grid-header-text-wrap{white-space:normal;overflow:hidden;text-overflow:ellipsis;word-break:break-word;}}.", "-grid-thead{background-color:", ";font-weight:", ";.", "-grid-cell{font-weight:inherit;color:", ";background-color:inherit;border-inline-end:1px solid ", ";border-bottom:1px solid ", ";&.ui-rc-grid-cell-ellipsis{.ui-rc-table-column-title,.", "-grid-cell-ellipsis{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all;}}&.ui-rc-grid-cell-wrap{.ui-rc-table-column-title,.", "-grid-cell-text-wrap{white-space:normal;word-break:break-word;overflow:hidden;}}&:hover{.ui-rc-header-trigger{.ui-rc-table-column-sorter-cancel{opacity:1;}}}.", "-grid-filter-column{display:flex;justify-content:space-between;width:100%;align-items:center;position:relative;z-index:3;}.ui-rc-header-trigger{padding-left:6px;display:flex;align-items:center;.ui-rc-table-column-sorter-cancel{opacity:0;}}.resizer{cursor:col-resize;height:100%;position:absolute;right:0;top:0;z-index:3;touch-action:none;user-select:none;width:5px;}.resizer.isResizing{opacity:1;}}}.", "-grid-tbody{.", "-grid-row{font-weight:", ";background-color:", ";color:", ";&.", "-grid-row-odd{background-color:#f9f8fd;}&.", "-grid-row-even{}&.", "-grid-row-parent{background-color:#f5f5f5;font-weight:500;}}}.", "-grid-tfoot{.", "-grid-footer-row{border-bottom-width:1px;border-bottom-color:", ";border-bottom-style:solid;border-top-width:1px;border-top-color:", ";border-top-style:solid;background-color:#fafafa;}.", "-grid-cell{background-color:inherit;border-inline-end:1px solid ", ";}}}&.", "-grid-dark{background-color:", ";color:", ";.", "-grid-container{border-color:", ";&::after{border-right-color:", ";}}}.ui-rc-toolbar-bottom{border-right:1px solid #e0e0e0;border-left:1px solid #e0e0e0;.be-toolbar-item{.ui-rc-btn{font-size:12px;line-height:1.5}.toolbar-dropdown-button{font-size:12px;.ui-rc-btn.ui-rc-btn-default.ui-rc-btn-variant-outlined.ui-rc-btn-compact-item.ui-rc-btn-compact-first-item{border-color:#28c76f;}.ui-rc-btn.ui-rc-btn-default.ui-rc-btn-variant-outlined.ui-rc-btn-compact-item.ui-rc-btn-compact-last-item{border-color:#28c76f;.ui-rc-btn-icon{color:#28c76f;}}}}}.ui-rc-toolbar-bottom_border-bottom{border-bottom:1px solid #e0e0e0;}.ui-rc-toolbar-bottom{position:relative;padding:.15rem 0.5rem;background-color:#ffffff;.toolbar-button{border-radius:3px;}.ui-rc-btn{border-radius:3px;height:28px;&.ui-rc-btn-compact-item.ui-rc-btn-compact-last-item{border-start-start-radius:0;border-end-start-radius:0;}&.ui-rc-btn-compact-item.ui-rc-btn-compact-first-item{border-start-end-radius:0;border-end-end-radius:0;}}}}"], props => props.$prefix, color, fontSize, BgColor, fontFamily, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => `${props.$theme.backgroundColor ? props.$theme.backgroundColor : BgColor}`, props => `${props.$theme.color ? props.$theme.color : color}`, props => props.$prefix, props => props.$prefix, tableBorderColor, tableBorderColor, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => `${props.$theme.backgroundColor ? props.$theme.backgroundColor : BgColor}`, fwHeader, props => props.$prefix, props => `${props.$theme.color ? props.$theme.color : color}`, tableBorderColor, tableBorderColor, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, fwBody, props => `${props.$theme.backgroundColor ? props.$theme.backgroundColor : BgColor}`, props => `${props.$theme.color ? props.$theme.color : color}`, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, tableBorderColor, tableBorderColor, props => props.$prefix, tableBorderColor, props => props.$prefix, BgColorDark, colorDark, props => props.$prefix, tableBorderColorDark, tableBorderColorDark);
|
|
51
|
+
})(["&.", "-grid{color:", ";font-size:", ";background-color:", ";font-family:", ";&.", "-grid-editable{.", "-grid-container{.", "-grid-tbody{.", "-grid-row{background-color:", ";color:", ";&.", "-grid-row-parent{background-color:#ffffff;font-weight:500;}}}}}table{table-layout:fixed;border-collapse:separate;border-spacing:0;}.", "-grid-container{border:1px solid ", ";border-right:0;&::after{position:absolute;top:0px;right:0;z-index:1;height:100%;border-right:1px solid ", ";content:'';pointer-events:none;}.", "-grid-cell{padding:5px 8px;&.", "-grid-cell-text-center{text-align:center;justify-content:center;}&.", "-grid-cell-text-right{justify-content:flex-end;text-align:right;}&.", "-grid-cell-link{text-decoration:underline;color:#336cc9;&:has(textarea){text-decoration:none;}}&.editable{.ui-rc_cell-content{height:100%}}&.", "-grid-cell-ellipsis{.ui-rc_cell-content{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all;&.select-cell{padding-right:18px;position:relative;}.caret-down{float:right;position:absolute;right:0;&::before{content:'';display:inline-block;margin-left:4px;vertical-align:middle;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #6f7777;}}}}&.", "-grid-cell-wrap{white-space:normal;text-overflow:ellipsis;word-break:break-word;}.", "-grid-header-text-wrap{white-space:normal;overflow:hidden;text-overflow:ellipsis;word-break:break-word;}}.", "-grid-thead{background-color:", ";font-weight:", ";.", "-grid-cell{font-weight:inherit;color:", ";background-color:inherit;border-inline-end:1px solid ", ";border-bottom:1px solid ", ";&.ui-rc-grid-cell-ellipsis{.ui-rc-table-column-title,.", "-grid-cell-ellipsis{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all;}}&.ui-rc-grid-cell-wrap{.ui-rc-table-column-title,.", "-grid-cell-text-wrap{white-space:normal;word-break:break-word;overflow:hidden;}}&:hover{.ui-rc-header-trigger{.ui-rc-table-column-sorter-cancel{opacity:1;}}}.", "-grid-filter-column{display:flex;justify-content:space-between;width:100%;align-items:center;position:relative;z-index:3;}.ui-rc-header-trigger{padding-left:6px;display:flex;align-items:center;.ui-rc-table-column-sorter-cancel{opacity:0;}}.resizer{cursor:col-resize;height:100%;position:absolute;right:0;top:0;z-index:3;touch-action:none;user-select:none;width:5px;}.resizer.isResizing{opacity:1;}}}.", "-grid-tbody{.", "-grid-row{font-weight:", ";background-color:", ";color:", ";&.", "-grid-row-odd{background-color:#f9f8fd;}&.", "-grid-row-even{}&.", "-grid-row-parent{background-color:#f5f5f5;font-weight:500;}}}.", "-grid-tfoot{.", "-grid-footer-row{border-bottom-width:1px;border-bottom-color:", ";border-bottom-style:solid;border-top-width:1px;border-top-color:", ";border-top-style:solid;background-color:#fafafa;}.", "-grid-cell{background-color:inherit;border-inline-end:1px solid ", ";}}}&.", "-grid-dark{background-color:", ";color:", ";.", "-grid-container{border-color:", ";&::after{border-right-color:", ";}}}.ui-rc-toolbar-bottom{border-right:1px solid #e0e0e0;border-left:1px solid #e0e0e0;.be-toolbar-item{.ui-rc-btn{font-size:12px;line-height:1.5}.toolbar-dropdown-button{font-size:12px;.ui-rc-btn.ui-rc-btn-default.ui-rc-btn-variant-outlined.ui-rc-btn-compact-item.ui-rc-btn-compact-first-item{border-color:#28c76f;}.ui-rc-btn.ui-rc-btn-default.ui-rc-btn-variant-outlined.ui-rc-btn-compact-item.ui-rc-btn-compact-last-item{border-color:#28c76f;.ui-rc-btn-icon{color:#28c76f;}}}}}.ui-rc-toolbar-bottom_border-bottom{border-bottom:1px solid #e0e0e0;}.ui-rc-toolbar-bottom{position:relative;padding:.15rem 0.5rem;background-color:#ffffff;.toolbar-button{border-radius:3px;}.ui-rc-btn{border-radius:3px;height:28px;&.ui-rc-btn-compact-item.ui-rc-btn-compact-last-item{border-start-start-radius:0;border-end-start-radius:0;}&.ui-rc-btn-compact-item.ui-rc-btn-compact-first-item{border-start-end-radius:0;border-end-end-radius:0;}}}}"], props => props.$prefix, color, fontSize, BgColor, fontFamily, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => `${props.$theme.backgroundColor ? props.$theme.backgroundColor : BgColor}`, props => `${props.$theme.color ? props.$theme.color : color}`, props => props.$prefix, props => props.$prefix, tableBorderColor, tableBorderColor, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => `${props.$theme.backgroundColor ? props.$theme.backgroundColor : BgColor}`, fwHeader, props => props.$prefix, props => `${props.$theme.color ? props.$theme.color : color}`, tableBorderColor, tableBorderColor, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, fwBody, props => `${props.$theme.backgroundColor ? props.$theme.backgroundColor : BgColor}`, props => `${props.$theme.color ? props.$theme.color : color}`, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, tableBorderColor, tableBorderColor, props => props.$prefix, tableBorderColor, props => props.$prefix, BgColorDark, colorDark, props => props.$prefix, tableBorderColorDark, tableBorderColorDark);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type * as React from "react";
|
|
2
2
|
import dayjs from "dayjs";
|
|
3
|
-
import type {
|
|
3
|
+
import type { TypeFilter } from "rc-master-ui";
|
|
4
4
|
import type { Key } from "react";
|
|
5
5
|
import type { ColumnsTable } from "./../index";
|
|
6
|
-
import type { AnyObject, ColumnTable, GetRowKey, IFormat } from "../type";
|
|
6
|
+
import type { AnyObject, ColumnTable, EditType, GetRowKey, IColumnType, IFormat } from "../type";
|
|
7
7
|
export declare const newGuid: () => any;
|
|
8
8
|
export declare const sumDataByField: (data: any[], field: string) => any;
|
|
9
9
|
export declare const checkThousandSeparator: (thousandSeparator: string | undefined, decimalSeparator: string | undefined) => string;
|
|
@@ -48,19 +48,9 @@ var _dayjs = _interopRequireDefault(require("dayjs"));
|
|
|
48
48
|
var _moment = _interopRequireDefault(require("moment/moment"));
|
|
49
49
|
var _uuid = require("uuid");
|
|
50
50
|
var _colors = require("@ant-design/colors");
|
|
51
|
-
// import type {ColumnTable, GetRowKey, IFormat, Presets} from "./../ type"
|
|
52
|
-
|
|
53
|
-
// import type {SelectionSettings} from "../type"
|
|
54
|
-
// import type {AnyObject} from "../type"
|
|
55
|
-
|
|
56
|
-
// import {Table} from "rc-master-ui"
|
|
57
|
-
// import {flatColumns2} from "./columns"
|
|
58
|
-
// import {SELECTION_COLUMN} from "./useColumns"
|
|
59
|
-
|
|
60
51
|
const newGuid = () => {
|
|
61
52
|
for (let i = 0; i < 20; i++) {
|
|
62
53
|
// @ts-ignore
|
|
63
|
-
// const id = crypto.randomUUID()
|
|
64
54
|
return (0, _uuid.v4)();
|
|
65
55
|
}
|
|
66
56
|
};
|
|
@@ -94,10 +94,10 @@ export type IFormat = {
|
|
|
94
94
|
yearFormat?: string;
|
|
95
95
|
};
|
|
96
96
|
export type RowSelectMethod = 'all' | 'none' | 'invert' | 'single' | 'multiple';
|
|
97
|
-
export type EditType = 'text' | 'numeric' | 'asyncSelect' | 'date' | 'datetime' | 'time' | 'week' | 'month' | 'quarter' | 'year' | 'select' | 'checkbox' | 'currency' | 'image' | 'selectTable' | 'customSelect' | 'form' | 'color' | 'treeSelect' | 'file';
|
|
97
|
+
export type EditType = 'text' | 'numeric' | 'asyncSelect' | 'date' | 'datetime' | 'time' | 'week' | 'month' | 'quarter' | 'year' | 'select' | 'checkbox' | 'currency' | 'image' | 'selectTable' | 'customSelect' | 'form' | 'color' | 'link' | 'treeSelect' | 'file';
|
|
98
98
|
export type ITextAlign = 'center' | 'left' | 'right';
|
|
99
99
|
export type TypeFilter = 'Text' | 'Date' | 'Time' | 'Datetime' | 'DateRange' | 'Month' | 'Quarter' | 'Year' | 'Week' | 'Number' | 'NumberRange' | 'Dropdown' | 'DropTree' | 'Checkbox' | 'CheckboxTree' | 'CheckboxDropdown';
|
|
100
|
-
export type IColumnType = 'number' | 'time' | 'date' | 'week' | 'month' | 'file' | 'quarter' | 'year' | 'datetime' | 'string' | 'boolean' | 'checkbox' | 'color' | null | undefined;
|
|
100
|
+
export type IColumnType = 'number' | 'time' | 'date' | 'week' | 'month' | 'file' | 'quarter' | 'year' | 'datetime' | 'string' | 'boolean' | 'checkbox' | 'color' | 'link' | null | undefined;
|
|
101
101
|
export type FilterOperator = 'equal' | 'notequal' | 'greaterthan' | 'greaterthanorequal' | 'lessthan' | 'lessthanorequal' | 'startswith' | 'endswith' | 'contains';
|
|
102
102
|
export type FixedType = 'left' | 'right' | boolean;
|
|
103
103
|
export type SelectMode = 'checkbox' | 'radio' | undefined;
|
|
@@ -241,6 +241,7 @@ export type ColumnTable<RecordType = AnyObject> = {
|
|
|
241
241
|
textAlign?: ITextAlign;
|
|
242
242
|
/** Template custom render cell */
|
|
243
243
|
template?: ReactNode | ReactElement | ((args: ColumnTemplate<RecordType>) => ReactNode | ReactElement);
|
|
244
|
+
linkTemplate?: ReactNode | ReactElement | ((args: ColumnTemplate<RecordType>) => ReactNode | ReactElement);
|
|
244
245
|
/** Hiển thị tooltip cell */
|
|
245
246
|
showTooltip?: boolean;
|
|
246
247
|
/** Nội dung tooltip của cell */
|
|
@@ -811,7 +812,7 @@ export type RangeState = {
|
|
|
811
812
|
endColIndex: number | undefined;
|
|
812
813
|
rowIds: string[];
|
|
813
814
|
colIds: string[];
|
|
814
|
-
type?:
|
|
815
|
+
type?: any;
|
|
815
816
|
};
|
|
816
817
|
export type Sorter = {
|
|
817
818
|
columnKey: string;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import type { EditType } from "
|
|
3
|
-
import type { ColumnTable, IFormat } from "../../grid-component/type";
|
|
2
|
+
import type { ColumnTable, EditType, IFormat } from "../../grid-component/type";
|
|
4
3
|
interface EditableCellProps<DataType> extends React.HTMLAttributes<HTMLElement> {
|
|
5
4
|
t?: any;
|
|
6
5
|
dataIndex: string;
|
|
@@ -189,6 +189,7 @@ export declare const fixColumnsLeft: <RecordType>(columns: ColumnTable<RecordTyp
|
|
|
189
189
|
align?: import("./../../grid-component/type").ITextAlign;
|
|
190
190
|
textAlign?: import("./../../grid-component/type").ITextAlign;
|
|
191
191
|
template?: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | import("react").ReactNode | ((args: import("./../../grid-component/type").ColumnTemplate<RecordType>) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | import("react").ReactNode);
|
|
192
|
+
linkTemplate?: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | import("react").ReactNode | ((args: import("./../../grid-component/type").ColumnTemplate<RecordType>) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | import("react").ReactNode);
|
|
192
193
|
showTooltip?: boolean;
|
|
193
194
|
tooltipDescription?: string | ((args: {
|
|
194
195
|
value: any;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import type { EditType } from "
|
|
3
|
-
import type { ColumnTable, IFormat } from "../../grid-component/type";
|
|
2
|
+
import type { ColumnTable, EditType, IFormat } from "../../grid-component/type";
|
|
4
3
|
import type { Column } from "@tanstack/react-table";
|
|
5
4
|
interface EditableCellProps<DataType> extends React.HTMLAttributes<HTMLElement> {
|
|
6
5
|
t?: any;
|
|
@@ -23,6 +23,8 @@ var _locale = require("rc-master-ui/es/locale");
|
|
|
23
23
|
var _hooks = require("../../grid-component/hooks");
|
|
24
24
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
25
25
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
26
|
+
// import type { EditType } from "rc-master-ui"
|
|
27
|
+
|
|
26
28
|
const {
|
|
27
29
|
SHOW_PARENT
|
|
28
30
|
} = _rcMasterUi.TreeSelect;
|
|
@@ -490,7 +492,7 @@ const EditableCell = props => {
|
|
|
490
492
|
const formState = getValues();
|
|
491
493
|
const formNewState = {
|
|
492
494
|
...getValues(),
|
|
493
|
-
[dataIndex]: formState[dataIndex]
|
|
495
|
+
[dataIndex]: !(0, _utils.isNullOrUndefined)(formState[dataIndex]) ? formState[dataIndex] : undefined
|
|
494
496
|
};
|
|
495
497
|
// @ts-ignore
|
|
496
498
|
const prevState = record[dataIndex] ?? undefined;
|
|
@@ -636,7 +638,7 @@ const EditableCell = props => {
|
|
|
636
638
|
const formState = getValues();
|
|
637
639
|
const formNewState = {
|
|
638
640
|
...getValues(),
|
|
639
|
-
[dataIndex]: formState[dataIndex]
|
|
641
|
+
[dataIndex]: !(0, _utils.isNullOrUndefined)(formState[dataIndex]) ? formState[dataIndex] : undefined
|
|
640
642
|
};
|
|
641
643
|
// @ts-ignore
|
|
642
644
|
const prevState = record[dataIndex] ?? undefined;
|
|
@@ -780,7 +782,7 @@ const EditableCell = props => {
|
|
|
780
782
|
const formState = getValues();
|
|
781
783
|
const formNewState = {
|
|
782
784
|
...getValues(),
|
|
783
|
-
[dataIndex]: formState[dataIndex]
|
|
785
|
+
[dataIndex]: !(0, _utils.isNullOrUndefined)(formState[dataIndex]) ? formState[dataIndex] : undefined
|
|
784
786
|
};
|
|
785
787
|
// @ts-ignore
|
|
786
788
|
const prevState = record[dataIndex] ?? undefined;
|
|
@@ -13,6 +13,7 @@ var _classnames = _interopRequireDefault(require("classnames"));
|
|
|
13
13
|
var _react = _interopRequireDefault(require("react"));
|
|
14
14
|
var _useContext = require("../useContext");
|
|
15
15
|
var _useColumns = require("../hook/useColumns");
|
|
16
|
+
var _rcMasterUi = require("rc-master-ui");
|
|
16
17
|
const renderCellIndex = props => {
|
|
17
18
|
const {
|
|
18
19
|
parrents,
|
|
@@ -220,6 +221,18 @@ const TableBodyCell = props => {
|
|
|
220
221
|
const colFormat = typeof columnMeta?.format === 'function' ? columnMeta?.format(record) : columnMeta?.format;
|
|
221
222
|
const cellFormat = (0, _utils.getFormat)(colFormat, format);
|
|
222
223
|
const fomatedValue = (0, _useColumns.renderValueCell)(columnMeta, cellValue, record, rowIndex, colIndex, cellFormat, true);
|
|
224
|
+
const cellContent = columnMeta?.template ? typeof columnMeta.template === 'function' ? columnMeta.template({
|
|
225
|
+
field: columnMeta.field,
|
|
226
|
+
index: cell.row.index,
|
|
227
|
+
rowData: cell.row.original,
|
|
228
|
+
value: cell.getValue()
|
|
229
|
+
}) : columnMeta.template : fomatedValue;
|
|
230
|
+
const linkContent = columnMeta?.linkTemplate ? typeof columnMeta.linkTemplate === 'function' ? columnMeta.linkTemplate({
|
|
231
|
+
field: columnMeta.field,
|
|
232
|
+
index: cell.row.index,
|
|
233
|
+
rowData: cell.row.original,
|
|
234
|
+
value: cell.getValue()
|
|
235
|
+
}) : columnMeta.linkTemplate : cellContent;
|
|
223
236
|
const valueCellString = (0, _useColumns.getValueCellString)(columnMeta, cellValue, record, rowIndex, colIndex, format);
|
|
224
237
|
const tooltipContent = _react.default.useMemo(() => {
|
|
225
238
|
if (isOpenTooltip === false) {
|
|
@@ -382,7 +395,7 @@ const TableBodyCell = props => {
|
|
|
382
395
|
"data-row-index": rowNumber,
|
|
383
396
|
"data-col-key": cell.column.id,
|
|
384
397
|
"data-tooltip-id": `${id}-tooltip-content`,
|
|
385
|
-
"data-tooltip-content": tooltipContent
|
|
398
|
+
"data-tooltip-content": columnMeta?.type === 'link' ? '' : tooltipContent
|
|
386
399
|
// data-tooltip-delay-show={500}
|
|
387
400
|
,
|
|
388
401
|
|
|
@@ -396,7 +409,8 @@ const TableBodyCell = props => {
|
|
|
396
409
|
[`${prefix}-grid-cell-fix-left-last`]: isLastLeftPinnedColumn,
|
|
397
410
|
[`${prefix}-grid-cell-fix-right-first`]: isFirstRightPinnedColumn,
|
|
398
411
|
[`${prefix}-grid-cell-text-center`]: columnMeta?.textAlign === 'center',
|
|
399
|
-
[`${prefix}-grid-cell-text-right`]: columnMeta?.textAlign === 'right' || columnMeta
|
|
412
|
+
[`${prefix}-grid-cell-text-right`]: columnMeta?.textAlign === 'right' || columnMeta?.type === 'number',
|
|
413
|
+
[`${prefix}-grid-cell-link`]: columnMeta?.type === 'link'
|
|
400
414
|
}),
|
|
401
415
|
style: {
|
|
402
416
|
...cellStyles,
|
|
@@ -494,6 +508,30 @@ const TableBodyCell = props => {
|
|
|
494
508
|
}
|
|
495
509
|
}
|
|
496
510
|
}
|
|
511
|
+
}, cellContent && columnMeta?.type === 'link' ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_rcMasterUi.Dropdown, {
|
|
512
|
+
trigger: ['hover'],
|
|
513
|
+
menu: {
|
|
514
|
+
items: [{
|
|
515
|
+
key: '1',
|
|
516
|
+
label: ''
|
|
517
|
+
}]
|
|
518
|
+
},
|
|
519
|
+
dropdownRender: () => /*#__PURE__*/_react.default.createElement("div", {
|
|
520
|
+
style: {
|
|
521
|
+
padding: '1rem',
|
|
522
|
+
backgroundColor: '#ffffff',
|
|
523
|
+
borderRadius: 6,
|
|
524
|
+
boxShadow: '0 6px 16px 0 rgba(0, 0, 0, 0.08),0 3px 6px -4px rgba(0, 0, 0, 0.12),0 9px 28px 8px rgba(0, 0, 0, 0.05)'
|
|
525
|
+
}
|
|
526
|
+
}, linkContent && typeof linkContent === 'string' ? /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("a", {
|
|
527
|
+
href: linkContent,
|
|
528
|
+
target: "_blank",
|
|
529
|
+
rel: "noreferrer"
|
|
530
|
+
}, linkContent)) : linkContent ? linkContent : /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("a", {
|
|
531
|
+
href: typeof cellContent === 'string' ? cellContent : '',
|
|
532
|
+
target: "_blank",
|
|
533
|
+
rel: "noreferrer"
|
|
534
|
+
}, cellContent)))
|
|
497
535
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
498
536
|
className: (0, _classnames.default)('ui-rc_cell-content', {})
|
|
499
537
|
}, cell.column.getIndex() === expandIconColumnIndex && isDataTree && /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -542,11 +580,42 @@ const TableBodyCell = props => {
|
|
|
542
580
|
className: "ui-rc-table-row-expand-icon ui-rc-table-row-expand-icon-collapsed"
|
|
543
581
|
})) : /*#__PURE__*/_react.default.createElement("span", {
|
|
544
582
|
className: "ui-rc-table-row-expand-icon ui-rc-table-row-expand-icon-spaced"
|
|
545
|
-
}))),
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
583
|
+
}))), cellContent))) : /*#__PURE__*/_react.default.createElement("div", {
|
|
584
|
+
className: (0, _classnames.default)('ui-rc_cell-content', {})
|
|
585
|
+
}, cell.column.getIndex() === expandIconColumnIndex && isDataTree && /*#__PURE__*/_react.default.createElement("div", {
|
|
586
|
+
className: "ui-rc-table-row-expand-trigger",
|
|
587
|
+
style: {
|
|
588
|
+
paddingLeft: `${cell.row.depth * 25}px`
|
|
589
|
+
}
|
|
590
|
+
}, /*#__PURE__*/_react.default.createElement("div", null, cell.row.getCanExpand() ? /*#__PURE__*/_react.default.createElement("button", {
|
|
591
|
+
// onClick: row.getToggleExpandedHandler(),
|
|
592
|
+
onClick: e => {
|
|
593
|
+
e.stopPropagation();
|
|
594
|
+
const keys = Object.keys(expanded);
|
|
595
|
+
// @ts-ignore
|
|
596
|
+
const tmp = {
|
|
597
|
+
...expanded
|
|
598
|
+
};
|
|
599
|
+
if (keys.includes(cell.row.id)) {
|
|
600
|
+
delete tmp[cell.row.id];
|
|
601
|
+
setExpanded(tmp);
|
|
602
|
+
} else {
|
|
603
|
+
setExpanded(old => ({
|
|
604
|
+
...old,
|
|
605
|
+
[cell.row.id]: true
|
|
606
|
+
}));
|
|
607
|
+
}
|
|
608
|
+
},
|
|
609
|
+
style: {
|
|
610
|
+
cursor: "pointer"
|
|
611
|
+
},
|
|
612
|
+
className: "ui-rc-table-row-expand"
|
|
613
|
+
}, cell.row.getIsExpanded() ? /*#__PURE__*/_react.default.createElement("span", {
|
|
614
|
+
className: "ui-rc-table-row-expand-icon ui-rc-table-row-expand-icon-expanded"
|
|
615
|
+
}) : /*#__PURE__*/_react.default.createElement("span", {
|
|
616
|
+
className: "ui-rc-table-row-expand-icon ui-rc-table-row-expand-icon-collapsed"
|
|
617
|
+
})) : /*#__PURE__*/_react.default.createElement("span", {
|
|
618
|
+
className: "ui-rc-table-row-expand-icon ui-rc-table-row-expand-icon-spaced"
|
|
619
|
+
}))), cellContent));
|
|
551
620
|
};
|
|
552
621
|
var _default = exports.default = TableBodyCell;
|
|
@@ -15,6 +15,7 @@ var _useContext = require("../useContext");
|
|
|
15
15
|
var _EditableCell = _interopRequireDefault(require("./EditableCell"));
|
|
16
16
|
var _hooks = require("../../grid-component/hooks");
|
|
17
17
|
var _useColumns = require("../hook/useColumns");
|
|
18
|
+
var _rcMasterUi = require("rc-master-ui");
|
|
18
19
|
const renderCellIndex = props => {
|
|
19
20
|
const {
|
|
20
21
|
parrents,
|
|
@@ -246,13 +247,6 @@ const TableBodyCellEdit = props => {
|
|
|
246
247
|
const [isOpenTooltip, setIsOpenTooltip] = _react.default.useState(false);
|
|
247
248
|
const rowError = dataErrors ? dataErrors.find(it => it.id === cell.row.id) : undefined;
|
|
248
249
|
const message = rowError && rowError[cell.column.id]?.field === cell.column.id ? rowError[cell.column.id].message : undefined;
|
|
249
|
-
|
|
250
|
-
// const tooltipContent = (isOpenTooltip === false)
|
|
251
|
-
// ? ''
|
|
252
|
-
// : columnMeta?.tooltipDescription
|
|
253
|
-
// ? (typeof columnMeta.tooltipDescription === 'function' ? columnMeta.tooltipDescription({ value: cell.getValue(), rowData: record }) : columnMeta.tooltipDescription)
|
|
254
|
-
// : cell.getValue()
|
|
255
|
-
|
|
256
250
|
const canEdit = (0, _utils.isEditable)(cell.column.columnDef.meta, record) && isRowEditable !== false;
|
|
257
251
|
|
|
258
252
|
// const allRows = table.getRowModel().rows;
|
|
@@ -1280,6 +1274,18 @@ const TableBodyCellEdit = props => {
|
|
|
1280
1274
|
const colFormat = typeof columnMeta?.format === 'function' ? columnMeta?.format(record) : columnMeta?.format;
|
|
1281
1275
|
const cellFormat = (0, _utils.getFormat)(colFormat, format);
|
|
1282
1276
|
const fomatedValue = (0, _useColumns.renderValueCell)(columnMeta, cellValue, record, rowIndex, colIndex, cellFormat, true);
|
|
1277
|
+
const cellContent = columnMeta?.template ? typeof columnMeta.template === 'function' ? columnMeta.template({
|
|
1278
|
+
field: columnMeta.field,
|
|
1279
|
+
index: cell.row.index,
|
|
1280
|
+
rowData: cell.row.original,
|
|
1281
|
+
value: cell.getValue()
|
|
1282
|
+
}) : columnMeta.template : fomatedValue;
|
|
1283
|
+
const linkContent = columnMeta?.linkTemplate ? typeof columnMeta.linkTemplate === 'function' ? columnMeta.linkTemplate({
|
|
1284
|
+
field: columnMeta.field,
|
|
1285
|
+
index: cell.row.index,
|
|
1286
|
+
rowData: cell.row.original,
|
|
1287
|
+
value: cell.getValue()
|
|
1288
|
+
}) : columnMeta.linkTemplate : cellContent;
|
|
1283
1289
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
1284
1290
|
key: cell.id,
|
|
1285
1291
|
ref: el => {
|
|
@@ -1294,7 +1300,7 @@ const TableBodyCellEdit = props => {
|
|
|
1294
1300
|
"data-row-key": cell.row.id,
|
|
1295
1301
|
"data-tooltip-id": `${id}-tooltip-content`,
|
|
1296
1302
|
"data-tooltip-delay-show": 500,
|
|
1297
|
-
"data-tooltip-content": isEditing && message ? message : rowError && rowError[cell.column.id]?.field === cell.column.id ? rowError[cell.column.id].message : tooltipContent,
|
|
1303
|
+
"data-tooltip-content": isEditing && message ? message : rowError && rowError[cell.column.id]?.field === cell.column.id ? rowError[cell.column.id].message : columnMeta?.type === 'link' ? '' : tooltipContent,
|
|
1298
1304
|
className: (0, _classnames.default)(`${prefix}-grid-cell cell-editable editable `, {
|
|
1299
1305
|
[`${prefix}-grid-cell-ellipsis`]: true,
|
|
1300
1306
|
'cell-editing': isEditing,
|
|
@@ -1313,7 +1319,8 @@ const TableBodyCellEdit = props => {
|
|
|
1313
1319
|
[`${prefix}-grid-cell-fix-left-last`]: isLastLeftPinnedColumn,
|
|
1314
1320
|
[`${prefix}-grid-cell-fix-right-first`]: isFirstRightPinnedColumn,
|
|
1315
1321
|
[`${prefix}-grid-cell-text-center`]: columnMeta?.textAlign === 'center',
|
|
1316
|
-
[`${prefix}-grid-cell-text-right`]: columnMeta?.textAlign === 'right' || columnMeta
|
|
1322
|
+
[`${prefix}-grid-cell-text-right`]: columnMeta?.textAlign === 'right' || columnMeta?.type === 'number',
|
|
1323
|
+
[`${prefix}-grid-cell-link`]: columnMeta?.type === 'link'
|
|
1317
1324
|
}),
|
|
1318
1325
|
style: {
|
|
1319
1326
|
display: 'flex',
|
|
@@ -1413,8 +1420,31 @@ const TableBodyCellEdit = props => {
|
|
|
1413
1420
|
record: record,
|
|
1414
1421
|
visibleColumns: visibleColumns,
|
|
1415
1422
|
handleNextCell: handleNextCell
|
|
1416
|
-
|
|
1417
|
-
|
|
1423
|
+
}) : columnMeta?.type === 'link' ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_rcMasterUi.Dropdown, {
|
|
1424
|
+
trigger: ['hover'],
|
|
1425
|
+
menu: {
|
|
1426
|
+
items: [{
|
|
1427
|
+
key: '1',
|
|
1428
|
+
label: ''
|
|
1429
|
+
}]
|
|
1430
|
+
},
|
|
1431
|
+
dropdownRender: () => /*#__PURE__*/_react.default.createElement("div", {
|
|
1432
|
+
style: {
|
|
1433
|
+
padding: '1rem',
|
|
1434
|
+
backgroundColor: '#ffffff',
|
|
1435
|
+
borderRadius: 6,
|
|
1436
|
+
boxShadow: '0 6px 16px 0 rgba(0, 0, 0, 0.08),0 3px 6px -4px rgba(0, 0, 0, 0.12),0 9px 28px 8px rgba(0, 0, 0, 0.05)'
|
|
1437
|
+
}
|
|
1438
|
+
}, linkContent && typeof linkContent === 'string' ? /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("a", {
|
|
1439
|
+
href: linkContent,
|
|
1440
|
+
target: "_blank",
|
|
1441
|
+
rel: "noreferrer"
|
|
1442
|
+
}, linkContent)) : linkContent ? linkContent : /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("a", {
|
|
1443
|
+
href: typeof cellContent === 'string' ? cellContent : '',
|
|
1444
|
+
target: "_blank",
|
|
1445
|
+
rel: "noreferrer"
|
|
1446
|
+
}, cellContent)))
|
|
1447
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
1418
1448
|
className: (0, _classnames.default)('ui-rc_cell-content', {
|
|
1419
1449
|
'select-cell': canEdit && ['select', 'selectTable', 'asyncSelect', 'treeSelect'].includes((0, _utils.getEditType)(columnMeta, record))
|
|
1420
1450
|
})
|
|
@@ -1454,17 +1484,57 @@ const TableBodyCellEdit = props => {
|
|
|
1454
1484
|
className: "ui-rc-table-row-expand-icon ui-rc-table-row-expand-icon-collapsed"
|
|
1455
1485
|
})) : /*#__PURE__*/_react.default.createElement("span", {
|
|
1456
1486
|
className: "ui-rc-table-row-expand-icon ui-rc-table-row-expand-icon-spaced"
|
|
1457
|
-
}))),
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
}) :
|
|
1487
|
+
}))), cellContent, (editType === 'select' || editType === 'selectTable' || editType === 'asyncSelect' || editType === 'treeSelect') && canEdit && /*#__PURE__*/_react.default.createElement("span", {
|
|
1488
|
+
className: 'caret-down',
|
|
1489
|
+
onClick: e => {
|
|
1490
|
+
handleEdit(e);
|
|
1491
|
+
}
|
|
1492
|
+
})))) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
1493
|
+
className: (0, _classnames.default)('ui-rc_cell-content', {
|
|
1494
|
+
'select-cell': canEdit && ['select', 'selectTable', 'asyncSelect', 'treeSelect'].includes((0, _utils.getEditType)(columnMeta, record))
|
|
1495
|
+
})
|
|
1496
|
+
}, cell.column.getIndex() === expandIconColumnIndex && isDataTree && /*#__PURE__*/_react.default.createElement("div", {
|
|
1497
|
+
className: "ui-rc-table-row-expand-trigger",
|
|
1498
|
+
style: {
|
|
1499
|
+
paddingLeft: `${cell.row.depth * 25}px`
|
|
1500
|
+
}
|
|
1501
|
+
}, /*#__PURE__*/_react.default.createElement("div", null, cell.row.getCanExpand() ? /*#__PURE__*/_react.default.createElement("button", {
|
|
1502
|
+
// onClick: row.getToggleExpandedHandler(),
|
|
1503
|
+
onClick: e => {
|
|
1504
|
+
e.stopPropagation();
|
|
1505
|
+
e.preventDefault();
|
|
1506
|
+
setIsExpandClick(true);
|
|
1507
|
+
const keys = Object.keys(expanded);
|
|
1508
|
+
// @ts-ignore
|
|
1509
|
+
const tmp = {
|
|
1510
|
+
...expanded
|
|
1511
|
+
};
|
|
1512
|
+
if (keys.includes(cell.row.id)) {
|
|
1513
|
+
delete tmp[cell.row.id];
|
|
1514
|
+
setExpanded(tmp);
|
|
1515
|
+
} else {
|
|
1516
|
+
setExpanded(old => ({
|
|
1517
|
+
...old,
|
|
1518
|
+
[cell.row.id]: true
|
|
1519
|
+
}));
|
|
1520
|
+
}
|
|
1521
|
+
},
|
|
1522
|
+
style: {
|
|
1523
|
+
cursor: "pointer"
|
|
1524
|
+
},
|
|
1525
|
+
className: "ui-rc-table-row-expand"
|
|
1526
|
+
}, cell.row.getIsExpanded() ? /*#__PURE__*/_react.default.createElement("span", {
|
|
1527
|
+
className: "ui-rc-table-row-expand-icon ui-rc-table-row-expand-icon-expanded"
|
|
1528
|
+
}) : /*#__PURE__*/_react.default.createElement("span", {
|
|
1529
|
+
className: "ui-rc-table-row-expand-icon ui-rc-table-row-expand-icon-collapsed"
|
|
1530
|
+
})) : /*#__PURE__*/_react.default.createElement("span", {
|
|
1531
|
+
className: "ui-rc-table-row-expand-icon ui-rc-table-row-expand-icon-spaced"
|
|
1532
|
+
}))), cellContent, (editType === 'select' || editType === 'selectTable' || editType === 'asyncSelect' || editType === 'treeSelect') && canEdit && /*#__PURE__*/_react.default.createElement("span", {
|
|
1463
1533
|
className: 'caret-down',
|
|
1464
1534
|
onClick: e => {
|
|
1465
1535
|
handleEdit(e);
|
|
1466
1536
|
}
|
|
1467
|
-
})), !isSelecting && !isEditing && rowRange &&
|
|
1537
|
+
}))), !isSelecting && !isEditing && rowRange &&
|
|
1468
1538
|
// rowNumber === rangeState?.endRowIndex &&
|
|
1469
1539
|
cell.row.id === rowRange[rowRange?.length - 1] && cell.column.getIndex() === rangeState?.endColIndex && /*#__PURE__*/_react.default.createElement("div", {
|
|
1470
1540
|
className: 'dragging-point',
|
|
@@ -55,4 +55,4 @@ const colorDark = '#e6e4f3e6 ';
|
|
|
55
55
|
const GridStyle = exports.GridStyle = _styledComponents.default.div.withConfig({
|
|
56
56
|
displayName: "GridStyle",
|
|
57
57
|
componentId: "es-grid-template__sc-hdqm5k-0"
|
|
58
|
-
})(["&.", "-grid{color:", ";font-size:", ";background-color:", ";font-family:", ";&.", "-grid-editable{.", "-grid-container{.", "-grid-tbody{.", "-grid-row{background-color:", ";color:", ";&.", "-grid-row-parent{background-color:#ffffff;font-weight:500;}}}}}table{table-layout:fixed;border-collapse:separate;border-spacing:0;}.", "-grid-container{border:1px solid ", ";border-right:0;&::after{position:absolute;top:0px;right:0;z-index:1;height:100%;border-right:1px solid ", ";content:'';pointer-events:none;}.", "-grid-cell{padding:5px 8px;&.", "-grid-cell-text-center{text-align:center;justify-content:center;}&.", "-grid-cell-text-right{justify-content:flex-end;text-align:right;}&.editable{.ui-rc_cell-content{height:100%}}&.", "-grid-cell-ellipsis{.ui-rc_cell-content{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all;&.select-cell{padding-right:18px;position:relative;}.caret-down{float:right;position:absolute;right:0;&::before{content:'';display:inline-block;margin-left:4px;vertical-align:middle;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #6f7777;}}}}&.", "-grid-cell-wrap{white-space:normal;text-overflow:ellipsis;word-break:break-word;}.", "-grid-header-text-wrap{white-space:normal;overflow:hidden;text-overflow:ellipsis;word-break:break-word;}}.", "-grid-thead{background-color:", ";font-weight:", ";.", "-grid-cell{font-weight:inherit;color:", ";background-color:inherit;border-inline-end:1px solid ", ";border-bottom:1px solid ", ";&.ui-rc-grid-cell-ellipsis{.ui-rc-table-column-title,.", "-grid-cell-ellipsis{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all;}}&.ui-rc-grid-cell-wrap{.ui-rc-table-column-title,.", "-grid-cell-text-wrap{white-space:normal;word-break:break-word;overflow:hidden;}}&:hover{.ui-rc-header-trigger{.ui-rc-table-column-sorter-cancel{opacity:1;}}}.", "-grid-filter-column{display:flex;justify-content:space-between;width:100%;align-items:center;position:relative;z-index:3;}.ui-rc-header-trigger{padding-left:6px;display:flex;align-items:center;.ui-rc-table-column-sorter-cancel{opacity:0;}}.resizer{cursor:col-resize;height:100%;position:absolute;right:0;top:0;z-index:3;touch-action:none;user-select:none;width:5px;}.resizer.isResizing{opacity:1;}}}.", "-grid-tbody{.", "-grid-row{font-weight:", ";background-color:", ";color:", ";&.", "-grid-row-odd{background-color:#f9f8fd;}&.", "-grid-row-even{}&.", "-grid-row-parent{background-color:#f5f5f5;font-weight:500;}}}.", "-grid-tfoot{.", "-grid-footer-row{border-bottom-width:1px;border-bottom-color:", ";border-bottom-style:solid;border-top-width:1px;border-top-color:", ";border-top-style:solid;background-color:#fafafa;}.", "-grid-cell{background-color:inherit;border-inline-end:1px solid ", ";}}}&.", "-grid-dark{background-color:", ";color:", ";.", "-grid-container{border-color:", ";&::after{border-right-color:", ";}}}.ui-rc-toolbar-bottom{border-right:1px solid #e0e0e0;border-left:1px solid #e0e0e0;.be-toolbar-item{.ui-rc-btn{font-size:12px;line-height:1.5}.toolbar-dropdown-button{font-size:12px;.ui-rc-btn.ui-rc-btn-default.ui-rc-btn-variant-outlined.ui-rc-btn-compact-item.ui-rc-btn-compact-first-item{border-color:#28c76f;}.ui-rc-btn.ui-rc-btn-default.ui-rc-btn-variant-outlined.ui-rc-btn-compact-item.ui-rc-btn-compact-last-item{border-color:#28c76f;.ui-rc-btn-icon{color:#28c76f;}}}}}.ui-rc-toolbar-bottom_border-bottom{border-bottom:1px solid #e0e0e0;}.ui-rc-toolbar-bottom{position:relative;padding:.15rem 0.5rem;background-color:#ffffff;.toolbar-button{border-radius:3px;}.ui-rc-btn{border-radius:3px;height:28px;&.ui-rc-btn-compact-item.ui-rc-btn-compact-last-item{border-start-start-radius:0;border-end-start-radius:0;}&.ui-rc-btn-compact-item.ui-rc-btn-compact-first-item{border-start-end-radius:0;border-end-end-radius:0;}}}}"], props => props.$prefix, color, fontSize, BgColor, fontFamily, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => `${props.$theme.backgroundColor ? props.$theme.backgroundColor : BgColor}`, props => `${props.$theme.color ? props.$theme.color : color}`, props => props.$prefix, props => props.$prefix, tableBorderColor, tableBorderColor, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => `${props.$theme.backgroundColor ? props.$theme.backgroundColor : BgColor}`, fwHeader, props => props.$prefix, props => `${props.$theme.color ? props.$theme.color : color}`, tableBorderColor, tableBorderColor, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, fwBody, props => `${props.$theme.backgroundColor ? props.$theme.backgroundColor : BgColor}`, props => `${props.$theme.color ? props.$theme.color : color}`, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, tableBorderColor, tableBorderColor, props => props.$prefix, tableBorderColor, props => props.$prefix, BgColorDark, colorDark, props => props.$prefix, tableBorderColorDark, tableBorderColorDark);
|
|
58
|
+
})(["&.", "-grid{color:", ";font-size:", ";background-color:", ";font-family:", ";&.", "-grid-editable{.", "-grid-container{.", "-grid-tbody{.", "-grid-row{background-color:", ";color:", ";&.", "-grid-row-parent{background-color:#ffffff;font-weight:500;}}}}}table{table-layout:fixed;border-collapse:separate;border-spacing:0;}.", "-grid-container{border:1px solid ", ";border-right:0;&::after{position:absolute;top:0px;right:0;z-index:1;height:100%;border-right:1px solid ", ";content:'';pointer-events:none;}.", "-grid-cell{padding:5px 8px;&.", "-grid-cell-text-center{text-align:center;justify-content:center;}&.", "-grid-cell-text-right{justify-content:flex-end;text-align:right;}&.", "-grid-cell-link{text-decoration:underline;color:#336cc9;&:has(textarea){text-decoration:none;}}&.editable{.ui-rc_cell-content{height:100%}}&.", "-grid-cell-ellipsis{.ui-rc_cell-content{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all;&.select-cell{padding-right:18px;position:relative;}.caret-down{float:right;position:absolute;right:0;&::before{content:'';display:inline-block;margin-left:4px;vertical-align:middle;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #6f7777;}}}}&.", "-grid-cell-wrap{white-space:normal;text-overflow:ellipsis;word-break:break-word;}.", "-grid-header-text-wrap{white-space:normal;overflow:hidden;text-overflow:ellipsis;word-break:break-word;}}.", "-grid-thead{background-color:", ";font-weight:", ";.", "-grid-cell{font-weight:inherit;color:", ";background-color:inherit;border-inline-end:1px solid ", ";border-bottom:1px solid ", ";&.ui-rc-grid-cell-ellipsis{.ui-rc-table-column-title,.", "-grid-cell-ellipsis{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all;}}&.ui-rc-grid-cell-wrap{.ui-rc-table-column-title,.", "-grid-cell-text-wrap{white-space:normal;word-break:break-word;overflow:hidden;}}&:hover{.ui-rc-header-trigger{.ui-rc-table-column-sorter-cancel{opacity:1;}}}.", "-grid-filter-column{display:flex;justify-content:space-between;width:100%;align-items:center;position:relative;z-index:3;}.ui-rc-header-trigger{padding-left:6px;display:flex;align-items:center;.ui-rc-table-column-sorter-cancel{opacity:0;}}.resizer{cursor:col-resize;height:100%;position:absolute;right:0;top:0;z-index:3;touch-action:none;user-select:none;width:5px;}.resizer.isResizing{opacity:1;}}}.", "-grid-tbody{.", "-grid-row{font-weight:", ";background-color:", ";color:", ";&.", "-grid-row-odd{background-color:#f9f8fd;}&.", "-grid-row-even{}&.", "-grid-row-parent{background-color:#f5f5f5;font-weight:500;}}}.", "-grid-tfoot{.", "-grid-footer-row{border-bottom-width:1px;border-bottom-color:", ";border-bottom-style:solid;border-top-width:1px;border-top-color:", ";border-top-style:solid;background-color:#fafafa;}.", "-grid-cell{background-color:inherit;border-inline-end:1px solid ", ";}}}&.", "-grid-dark{background-color:", ";color:", ";.", "-grid-container{border-color:", ";&::after{border-right-color:", ";}}}.ui-rc-toolbar-bottom{border-right:1px solid #e0e0e0;border-left:1px solid #e0e0e0;.be-toolbar-item{.ui-rc-btn{font-size:12px;line-height:1.5}.toolbar-dropdown-button{font-size:12px;.ui-rc-btn.ui-rc-btn-default.ui-rc-btn-variant-outlined.ui-rc-btn-compact-item.ui-rc-btn-compact-first-item{border-color:#28c76f;}.ui-rc-btn.ui-rc-btn-default.ui-rc-btn-variant-outlined.ui-rc-btn-compact-item.ui-rc-btn-compact-last-item{border-color:#28c76f;.ui-rc-btn-icon{color:#28c76f;}}}}}.ui-rc-toolbar-bottom_border-bottom{border-bottom:1px solid #e0e0e0;}.ui-rc-toolbar-bottom{position:relative;padding:.15rem 0.5rem;background-color:#ffffff;.toolbar-button{border-radius:3px;}.ui-rc-btn{border-radius:3px;height:28px;&.ui-rc-btn-compact-item.ui-rc-btn-compact-last-item{border-start-start-radius:0;border-end-start-radius:0;}&.ui-rc-btn-compact-item.ui-rc-btn-compact-first-item{border-start-end-radius:0;border-end-end-radius:0;}}}}"], props => props.$prefix, color, fontSize, BgColor, fontFamily, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => `${props.$theme.backgroundColor ? props.$theme.backgroundColor : BgColor}`, props => `${props.$theme.color ? props.$theme.color : color}`, props => props.$prefix, props => props.$prefix, tableBorderColor, tableBorderColor, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => `${props.$theme.backgroundColor ? props.$theme.backgroundColor : BgColor}`, fwHeader, props => props.$prefix, props => `${props.$theme.color ? props.$theme.color : color}`, tableBorderColor, tableBorderColor, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, fwBody, props => `${props.$theme.backgroundColor ? props.$theme.backgroundColor : BgColor}`, props => `${props.$theme.color ? props.$theme.color : color}`, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, tableBorderColor, tableBorderColor, props => props.$prefix, tableBorderColor, props => props.$prefix, BgColorDark, colorDark, props => props.$prefix, tableBorderColorDark, tableBorderColorDark);
|