beautiful-grid 1.0.6 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/BGrid.js +16 -16
- package/cjs/components/ColResizer.js +8 -3
- package/cjs/components/Pagination.js +8 -5
- package/cjs/components/Table.js +62 -36
- package/cjs/components/TableBody.js +10 -15
- package/cjs/components/TableHead.js +6 -8
- package/cjs/components/TableHeadColumn.js +20 -18
- package/cjs/components/TableHeadFrozen.js +7 -9
- package/cjs/store/createAppStore.js +109 -27
- package/esm/BGrid.js +17 -15
- package/esm/components/ColResizer.js +8 -3
- package/esm/components/Pagination.js +8 -5
- package/esm/components/Table.js +62 -33
- package/esm/components/TableBody.js +11 -16
- package/esm/components/TableHead.js +6 -8
- package/esm/components/TableHeadColumn.js +20 -18
- package/esm/components/TableHeadFrozen.js +7 -9
- package/esm/store/createAppStore.js +125 -29
- package/package.json +1 -1
- package/style.css +58 -28
- package/types/BGrid.d.ts +1 -1
- package/types/components/Table.d.ts +1 -0
- package/types/store/createAppStore.d.ts +1 -1
- package/types/types.d.ts +4 -0
package/cjs/BGrid.js
CHANGED
|
@@ -92,7 +92,7 @@ function computeModelColumns(columns, frozenColumnIndex, duplicateToolboxColumnI
|
|
|
92
92
|
}
|
|
93
93
|
function BGrid(_a) {
|
|
94
94
|
var _b, _c, _d;
|
|
95
|
-
var ref = _a.ref, width = _a.width, height = _a.height, _e = _a.headerHeight, headerHeight = _e === void 0 ? 30 : _e, footerHeight = _a.footerHeight, _f = _a.summaryHeight, summaryHeight = _f === void 0 ? 30 : _f, _g = _a.itemHeight, itemHeight = _g === void 0 ? 15 : _g, _h = _a.itemPadding, itemPadding = _h === void 0 ? 7 : _h, columns = _a.columns, columnsGroup = _a.columnsGroup, columnGroups = _a.columnGroups, onChangeColumns = _a.onChangeColumns, _j = _a.frozenColumnIndex, frozenColumnIndex = _j === void 0 ? 0 : _j, _k = _a.frozenRowCount, frozenRowCount = _k === void 0 ? 0 : _k, _l = _a.data, data = _l === void 0 ? [] : _l, page = _a.page, scrollbar = _a.scrollbar, status = _a.status, pagination = _a.pagination, bottomBarHeight = _a.bottomBarHeight, _m = _a.scrollTop, scrollTop = _m === void 0 ? 0 : _m, _o = _a.scrollLeft, scrollLeft = _o === void 0 ? 0 : _o, className = _a.className, style = _a.style, rowChecked = _a.rowChecked, sort = _a.sort, onClick = _a.onClick, _p = _a.loading, loading = _p === void 0 ? false : _p, spinning = _a.spinning, rowKey = _a.rowKey, selectedRowKey = _a.selectedRowKey, editable = _a.editable, onChangeData = _a.onChangeData, showLineNumber = _a.showLineNumber, msg = _a.msg, getRowClassName = _a.getRowClassName, _q = _a.editTrigger, editTrigger = _q === void 0 ? 'dblclick' : _q, cellMergeOptions = _a.cellMergeOptions, cellSelectionOptions = _a.cellSelectionOptions, cellNavigationOptions = _a.cellNavigationOptions, variant = _a.variant, summary = _a.summary, columnSortable = _a.columnSortable, reorder = _a.reorder, pivot = _a.pivot, dataControl = _a.dataControl, icons = _a.icons, columnVisibility = _a.columnVisibility, searchOptions = _a.searchOptions, contextMenuOptions = _a.contextMenuOptions;
|
|
95
|
+
var ref = _a.ref, width = _a.width, height = _a.height, _e = _a.headerHeight, headerHeight = _e === void 0 ? 30 : _e, footerHeight = _a.footerHeight, _f = _a.summaryHeight, summaryHeight = _f === void 0 ? 30 : _f, _g = _a.itemHeight, itemHeight = _g === void 0 ? 15 : _g, _h = _a.itemPadding, itemPadding = _h === void 0 ? 7 : _h, columns = _a.columns, columnsGroup = _a.columnsGroup, columnGroups = _a.columnGroups, onChangeColumns = _a.onChangeColumns, _j = _a.frozenColumnIndex, frozenColumnIndex = _j === void 0 ? 0 : _j, _k = _a.frozenRowCount, frozenRowCount = _k === void 0 ? 0 : _k, _l = _a.data, data = _l === void 0 ? [] : _l, page = _a.page, scrollbar = _a.scrollbar, status = _a.status, pagination = _a.pagination, bottomBarHeight = _a.bottomBarHeight, _m = _a.scrollTop, scrollTop = _m === void 0 ? 0 : _m, _o = _a.scrollLeft, scrollLeft = _o === void 0 ? 0 : _o, className = _a.className, style = _a.style, rowChecked = _a.rowChecked, sort = _a.sort, onClick = _a.onClick, _p = _a.loading, loading = _p === void 0 ? false : _p, spinning = _a.spinning, disabled = _a.disabled, rowKey = _a.rowKey, selectedRowKey = _a.selectedRowKey, editable = _a.editable, onChangeData = _a.onChangeData, showLineNumber = _a.showLineNumber, msg = _a.msg, getRowClassName = _a.getRowClassName, _q = _a.editTrigger, editTrigger = _q === void 0 ? 'dblclick' : _q, cellMergeOptions = _a.cellMergeOptions, cellSelectionOptions = _a.cellSelectionOptions, cellNavigationOptions = _a.cellNavigationOptions, variant = _a.variant, summary = _a.summary, columnSortable = _a.columnSortable, reorder = _a.reorder, pivot = _a.pivot, dataControl = _a.dataControl, icons = _a.icons, columnVisibility = _a.columnVisibility, searchOptions = _a.searchOptions, contextMenuOptions = _a.contextMenuOptions;
|
|
96
96
|
var warnedSearchControlledRef = React.useRef({
|
|
97
97
|
open: false,
|
|
98
98
|
query: false,
|
|
@@ -150,30 +150,32 @@ function BGrid(_a) {
|
|
|
150
150
|
var resolvedFrozenColumnIndex = visibilityProjection.frozenColumnIndex;
|
|
151
151
|
var resolvedRowChecked = pivotEnabled ? undefined : rowChecked;
|
|
152
152
|
var resolvedSort = pivotEnabled ? undefined : sort;
|
|
153
|
-
var
|
|
153
|
+
var resolvedDisabled = !!disabled;
|
|
154
|
+
var resolvedOnClick = pivotEnabled || resolvedDisabled ? undefined : onClick;
|
|
154
155
|
var baseOnChangeColumns = pivotEnabled ? undefined : onChangeColumns;
|
|
155
156
|
var resolvedOnChangeData = pivotEnabled ? undefined : onChangeData;
|
|
156
157
|
var resolvedRowKey = pivotEnabled ? undefined : rowKey;
|
|
157
158
|
var resolvedSelectedRowKey = pivotEnabled ? undefined : selectedRowKey;
|
|
158
|
-
var resolvedEditable = pivotEnabled ? false : editable;
|
|
159
|
+
var resolvedEditable = pivotEnabled || resolvedDisabled ? false : editable;
|
|
159
160
|
var resolvedShowLineNumber = pivotEnabled ? false : showLineNumber;
|
|
160
161
|
var resolvedGetRowClassName = pivotEnabled ? undefined : getRowClassName;
|
|
161
162
|
var resolvedCellMergeOptions = visibilityProjection.cellMergeOptions;
|
|
162
|
-
var resolvedCellSelectionOptions =
|
|
163
|
+
var resolvedCellSelectionOptions = resolvedDisabled
|
|
164
|
+
? __assign(__assign({}, cellSelectionOptions), { enabled: false }) : cellSelectionOptions;
|
|
163
165
|
var resolvedSummary = visibilityProjection.summary;
|
|
164
166
|
var hasHiddenColumns = visibilityProjection.columns.length < resolvedColumns.length;
|
|
165
|
-
var resolvedColumnSortable = pivotEnabled || hasHiddenColumns ? false : columnSortable;
|
|
167
|
+
var resolvedColumnSortable = pivotEnabled || hasHiddenColumns || resolvedDisabled ? false : columnSortable;
|
|
166
168
|
var resolvedDataControl = pivotEnabled ? undefined : dataControl;
|
|
167
|
-
var resolvedSearchOptions = pivotEnabled ? undefined : searchOptions;
|
|
168
|
-
var resolvedContextMenuOptions = pivotEnabled ? undefined : contextMenuOptions;
|
|
169
|
+
var resolvedSearchOptions = pivotEnabled || resolvedDisabled ? undefined : searchOptions;
|
|
170
|
+
var resolvedContextMenuOptions = pivotEnabled || resolvedDisabled ? undefined : contextMenuOptions;
|
|
169
171
|
var hasActiveClientQuery = (resolvedDataControl === null || resolvedDataControl === void 0 ? void 0 : resolvedDataControl.mode) === 'client' &&
|
|
170
172
|
(resolvedDataControl.query.sortParams.length > 0 || resolvedDataControl.query.filterParams.length > 0);
|
|
171
173
|
var resolvedReorder = React.useMemo(function () {
|
|
172
|
-
return pivotEnabled
|
|
174
|
+
return pivotEnabled || resolvedDisabled
|
|
173
175
|
? undefined
|
|
174
176
|
: (hasActiveClientQuery || frozenRowCount > 0) && reorder
|
|
175
177
|
? __assign(__assign({}, reorder), { enabled: false }) : reorder;
|
|
176
|
-
}, [frozenRowCount, hasActiveClientQuery, pivotEnabled, reorder]);
|
|
178
|
+
}, [frozenRowCount, hasActiveClientQuery, pivotEnabled, reorder, resolvedDisabled]);
|
|
177
179
|
// Development warnings
|
|
178
180
|
React.useEffect(function () {
|
|
179
181
|
var _a, _b;
|
|
@@ -212,9 +214,7 @@ function BGrid(_a) {
|
|
|
212
214
|
warnedSearchControlledRef.current.columnVisibility = true;
|
|
213
215
|
console.warn('[BGrid] Controlled columnVisibility.hiddenColumnIds requires onChange to respond to user actions.');
|
|
214
216
|
}
|
|
215
|
-
if ((searchOptions === null || searchOptions === void 0 ? void 0 : searchOptions.open) !== undefined &&
|
|
216
|
-
!searchOptions.onOpenChange &&
|
|
217
|
-
!warnedSearchControlledRef.current.open) {
|
|
217
|
+
if ((searchOptions === null || searchOptions === void 0 ? void 0 : searchOptions.open) !== undefined && !searchOptions.onOpenChange && !warnedSearchControlledRef.current.open) {
|
|
218
218
|
warnedSearchControlledRef.current.open = true;
|
|
219
219
|
console.warn('[BGrid] Controlled searchOptions.open requires onOpenChange to respond to user actions.');
|
|
220
220
|
}
|
|
@@ -314,9 +314,7 @@ function BGrid(_a) {
|
|
|
314
314
|
if (updatedColumn)
|
|
315
315
|
nextColumns[originalIndex] = updatedColumn;
|
|
316
316
|
});
|
|
317
|
-
baseOnChangeColumns(visibleColumnIndex === null
|
|
318
|
-
? null
|
|
319
|
-
: (_a = visibilityProjection.visibleOriginalIndexes[visibleColumnIndex]) !== null && _a !== void 0 ? _a : null, __assign(__assign({}, info), { columns: nextColumns, columnsGroup: resolvedColumnsGroup, columnGroups: resolvedColumnGroups }));
|
|
317
|
+
baseOnChangeColumns(visibleColumnIndex === null ? null : (_a = visibilityProjection.visibleOriginalIndexes[visibleColumnIndex]) !== null && _a !== void 0 ? _a : null, __assign(__assign({}, info), { columns: nextColumns, columnsGroup: resolvedColumnsGroup, columnGroups: resolvedColumnGroups }));
|
|
320
318
|
}, [
|
|
321
319
|
baseOnChangeColumns,
|
|
322
320
|
hasHiddenColumns,
|
|
@@ -524,6 +522,7 @@ function BGrid(_a) {
|
|
|
524
522
|
page: resolvedPage,
|
|
525
523
|
displayPaginationLength: resolvedPage ? (_b = resolvedPage.displayPaginationLength) !== null && _b !== void 0 ? _b : 5 : 0,
|
|
526
524
|
loading: loading,
|
|
525
|
+
disabled: resolvedDisabled,
|
|
527
526
|
spinning: spinning,
|
|
528
527
|
scrollTop: scrollTop,
|
|
529
528
|
scrollLeft: scrollLeft,
|
|
@@ -583,6 +582,7 @@ function BGrid(_a) {
|
|
|
583
582
|
resolvedSearchOptions,
|
|
584
583
|
resolvedContextMenuOptions,
|
|
585
584
|
loading,
|
|
585
|
+
resolvedDisabled,
|
|
586
586
|
spinning,
|
|
587
587
|
scrollTop,
|
|
588
588
|
scrollLeft,
|
|
@@ -606,7 +606,7 @@ function BGrid(_a) {
|
|
|
606
606
|
React.createElement(Table_1.default, { ref: ref, columns: computedColumns,
|
|
607
607
|
columnsGroup: visibilityProjection.columnsGroup,
|
|
608
608
|
columnGroups: visibilityProjection.columnGroups,
|
|
609
|
-
onChangeColumns: resolvedOnChangeColumns, width: width, height: height, className: className, style: style, loading: loading, spinning: spinning, scrollLeft: scrollLeft, scrollTop: scrollTop, headerHeight: headerHeight, footerHeight: footerHeight, bottomBarHeight: resolvedBottomBarHeight,
|
|
609
|
+
onChangeColumns: resolvedOnChangeColumns, width: width, height: height, className: className, style: style, loading: loading, disabled: resolvedDisabled, spinning: spinning, scrollLeft: scrollLeft, scrollTop: scrollTop, headerHeight: headerHeight, footerHeight: footerHeight, bottomBarHeight: resolvedBottomBarHeight,
|
|
610
610
|
scrollbar: resolvedScrollbar,
|
|
611
611
|
status: resolvedStatus,
|
|
612
612
|
pagination: resolvedPagination, summaryHeight: summaryHeight, itemHeight: itemHeight, itemPadding: itemPadding, frozenColumnIndex: resolvedFrozenColumnIndex,
|
|
@@ -79,9 +79,12 @@ function ColResizer(_a) {
|
|
|
79
79
|
var setColumnWidth = (0, store_1.useAppStore)(function (s) { return s.setColumnWidth; });
|
|
80
80
|
var setColumnResizing = (0, store_1.useAppStore)(function (s) { return s.setColumnResizing; });
|
|
81
81
|
var endCellEdit = (0, store_1.useAppStore)(function (s) { return s.endCellEdit; });
|
|
82
|
+
var disabled = (0, store_1.useAppStore)(function (s) { return s.disabled; });
|
|
82
83
|
var columnsGroup = (0, store_1.useAppStore)(function (s) { return s.columnsGroup; });
|
|
83
84
|
var onPointerDownResizerHandle = React.useCallback(function (evt, columnIndex) {
|
|
84
85
|
var _a, _b;
|
|
86
|
+
if (disabled)
|
|
87
|
+
return;
|
|
85
88
|
evt.preventDefault();
|
|
86
89
|
evt.stopPropagation();
|
|
87
90
|
endCellEdit();
|
|
@@ -101,13 +104,15 @@ function ColResizer(_a) {
|
|
|
101
104
|
pointerId: evt.pointerId,
|
|
102
105
|
initialClientX: evt.clientX,
|
|
103
106
|
});
|
|
104
|
-
}, [container, endCellEdit, setColumnResizing, setColumnWidth]);
|
|
107
|
+
}, [container, disabled, endCellEdit, setColumnResizing, setColumnWidth]);
|
|
105
108
|
var onMouseDoubleClick = React.useCallback(function (evt, columnIndex) { return __awaiter(_this, void 0, void 0, function () {
|
|
106
109
|
var headFrozenHTML, headHTML, bodyFrozenHTML, bodyHTML, targetDiv, bodyTarget, targetTd;
|
|
107
110
|
var _a, _b, _c, _d, _e;
|
|
108
111
|
return __generator(this, function (_f) {
|
|
109
112
|
switch (_f.label) {
|
|
110
113
|
case 0:
|
|
114
|
+
if (disabled)
|
|
115
|
+
return [2 /*return*/];
|
|
111
116
|
evt.preventDefault();
|
|
112
117
|
evt.stopPropagation();
|
|
113
118
|
endCellEdit();
|
|
@@ -135,13 +140,13 @@ function ColResizer(_a) {
|
|
|
135
140
|
case 2: return [2 /*return*/];
|
|
136
141
|
}
|
|
137
142
|
});
|
|
138
|
-
}); }, [container, endCellEdit, setColumnWidth]);
|
|
143
|
+
}); }, [container, disabled, endCellEdit, setColumnWidth]);
|
|
139
144
|
return (React.createElement("div", { className: [
|
|
140
145
|
'bgrid-col-resizer',
|
|
141
146
|
hideHandle ? '' : 'bgrid-col-resizer-handle',
|
|
142
147
|
frozenBoundary ? 'bgrid-col-resizer-frozen-boundary' : '',
|
|
143
148
|
]
|
|
144
149
|
.filter(Boolean)
|
|
145
|
-
.join(' '), "data-bgrid-frozen-boundary": frozenBoundary ? 'true' : undefined, style: !hideHandle ? (_b = {}, _b['--bgrid-resizer-height'] = bordered ? '100%' : '1em', _b) : undefined, onPointerDown: function (evt) { return onPointerDownResizerHandle(evt, columnIndex); }, onDoubleClick: function (evt) { return onMouseDoubleClick(evt, columnIndex); }, onClick: function (evt) { return evt.stopPropagation(); } }));
|
|
150
|
+
.join(' '), "data-bgrid-frozen-boundary": frozenBoundary ? 'true' : undefined, "data-bgrid-disabled": disabled ? 'true' : undefined, style: !hideHandle ? (_b = {}, _b['--bgrid-resizer-height'] = bordered ? '100%' : '1em', _b) : undefined, onPointerDown: function (evt) { return onPointerDownResizerHandle(evt, columnIndex); }, onDoubleClick: function (evt) { return onMouseDoubleClick(evt, columnIndex); }, onClick: function (evt) { return evt.stopPropagation(); } }));
|
|
146
151
|
}
|
|
147
152
|
exports.default = ColResizer;
|
|
@@ -54,18 +54,21 @@ function Pagination(props) {
|
|
|
54
54
|
var _b = (0, store_1.useAppStore)((0, shallow_1.useShallow)(function (s) { return ({
|
|
55
55
|
page: s.page,
|
|
56
56
|
displayPaginationLength: s.displayPaginationLength,
|
|
57
|
-
|
|
57
|
+
disabled: s.disabled,
|
|
58
|
+
}); })), page = _b.page, displayPaginationLength = _b.displayPaginationLength, disabled = _b.disabled;
|
|
58
59
|
// [Selector Group 2] Pagination Actions - 페이지네이션 액션
|
|
59
60
|
var setPage = (0, store_1.useAppStore)((0, shallow_1.useShallow)(function (s) { return ({
|
|
60
61
|
setPage: s.setPage,
|
|
61
62
|
}); })).setPage;
|
|
62
63
|
var onClickPageNo = React.useCallback(function (pageNo) {
|
|
63
64
|
var _a;
|
|
65
|
+
if (disabled)
|
|
66
|
+
return;
|
|
64
67
|
if (page) {
|
|
65
68
|
setPage(__assign(__assign({}, page), { currentPage: pageNo }));
|
|
66
69
|
(_a = page === null || page === void 0 ? void 0 : page.onChange) === null || _a === void 0 ? void 0 : _a.call(page, pageNo, page === null || page === void 0 ? void 0 : page.pageSize);
|
|
67
70
|
}
|
|
68
|
-
}, [page, setPage]);
|
|
71
|
+
}, [disabled, page, setPage]);
|
|
69
72
|
if (page && page.totalPages !== undefined && page.currentPage !== undefined && page.totalPages > 0) {
|
|
70
73
|
var displayLength_1 = Math.min(displayPaginationLength !== null && displayPaginationLength !== void 0 ? displayPaginationLength : 0, (_a = page.totalPages) !== null && _a !== void 0 ? _a : 5);
|
|
71
74
|
var pageStartNumber_1 = (function () {
|
|
@@ -75,18 +78,18 @@ function Pagination(props) {
|
|
|
75
78
|
var pageNumber_1 = 0;
|
|
76
79
|
return (React.createElement("div", { className: 'bgrid-pagination' },
|
|
77
80
|
pageStartNumber_1 > 1 && (React.createElement(React.Fragment, null,
|
|
78
|
-
React.createElement("span", { role: 'page-number', className: 'bgrid-page-no', onClick: function () { return onClickPageNo(1); } }, "1"),
|
|
81
|
+
React.createElement("span", { role: 'page-number', className: 'bgrid-page-no', "aria-disabled": disabled ? 'true' : undefined, onClick: function () { return onClickPageNo(1); } }, "1"),
|
|
79
82
|
pageStartNumber_1 > 2 && '...')),
|
|
80
83
|
Array.from({ length: displayLength_1 }).map(function (_, i) {
|
|
81
84
|
var _a;
|
|
82
85
|
if (i <= ((_a = page.totalPages) !== null && _a !== void 0 ? _a : 1)) {
|
|
83
86
|
var num_1 = (pageNumber_1 = pageStartNumber_1 + i);
|
|
84
|
-
return (React.createElement("span", { role: 'page-number', key: num_1, className: 'bgrid-page-no', "data-active": page.currentPage === num_1, onClick: function () { return onClickPageNo(num_1); } }, (0, number_1.toMoney)(num_1)));
|
|
87
|
+
return (React.createElement("span", { role: 'page-number', key: num_1, className: 'bgrid-page-no', "data-active": page.currentPage === num_1, "aria-disabled": disabled ? 'true' : undefined, onClick: function () { return onClickPageNo(num_1); } }, (0, number_1.toMoney)(num_1)));
|
|
85
88
|
}
|
|
86
89
|
}),
|
|
87
90
|
page.totalPages && pageNumber_1 < page.totalPages && (React.createElement(React.Fragment, null,
|
|
88
91
|
pageNumber_1 < page.totalPages - 1 && '...',
|
|
89
|
-
React.createElement("span", { role: 'page-number', className: 'bgrid-page-no', onClick: function () { var _a; return onClickPageNo((_a = page.totalPages) !== null && _a !== void 0 ? _a : 0); } }, (0, number_1.toMoney)(page.totalPages))))));
|
|
92
|
+
React.createElement("span", { role: 'page-number', className: 'bgrid-page-no', "aria-disabled": disabled ? 'true' : undefined, onClick: function () { var _a; return onClickPageNo((_a = page.totalPages) !== null && _a !== void 0 ? _a : 0); } }, (0, number_1.toMoney)(page.totalPages))))));
|
|
90
93
|
}
|
|
91
94
|
return null;
|
|
92
95
|
}
|
package/cjs/components/Table.js
CHANGED
|
@@ -216,12 +216,13 @@ function Table(props) {
|
|
|
216
216
|
page: s.page,
|
|
217
217
|
loading: s.loading,
|
|
218
218
|
spinning: s.spinning,
|
|
219
|
+
disabled: s.disabled,
|
|
219
220
|
showLineNumber: s.showLineNumber,
|
|
220
221
|
summary: s.summary,
|
|
221
222
|
scrollbar: s.scrollbar,
|
|
222
223
|
status: s.status,
|
|
223
224
|
pagination: s.pagination,
|
|
224
|
-
}); })), rowChecked = _12.rowChecked, page = _12.page, loading = _12.loading, spinning = _12.spinning, showLineNumber = _12.showLineNumber, summary = _12.summary, scrollbar = _12.scrollbar, status = _12.status, pagination = _12.pagination;
|
|
225
|
+
}); })), rowChecked = _12.rowChecked, page = _12.page, loading = _12.loading, spinning = _12.spinning, disabled = _12.disabled, showLineNumber = _12.showLineNumber, summary = _12.summary, scrollbar = _12.scrollbar, status = _12.status, pagination = _12.pagination;
|
|
225
226
|
var _13 = (0, store_1.useAppStore)((0, shallow_1.useShallow)(function (s) { return ({
|
|
226
227
|
searchOpen: s.searchOpen,
|
|
227
228
|
searchOptions: s.searchOptions,
|
|
@@ -246,7 +247,8 @@ function Table(props) {
|
|
|
246
247
|
setItemPadding: s.setItemPadding,
|
|
247
248
|
setLoading: s.setLoading,
|
|
248
249
|
setSpinning: s.setSpinning,
|
|
249
|
-
|
|
250
|
+
setDisabled: s.setDisabled,
|
|
251
|
+
}); })), setHeight = _14.setHeight, setWidth = _14.setWidth, setContentBodyHeight = _14.setContentBodyHeight, setDisplayItemCount = _14.setDisplayItemCount, setHeaderHeight = _14.setHeaderHeight, setFooterHeight = _14.setFooterHeight, setBottomBarHeight = _14.setBottomBarHeight, setSummaryHeight = _14.setSummaryHeight, setItemHeight = _14.setItemHeight, setItemPadding = _14.setItemPadding, setLoading = _14.setLoading, setSpinning = _14.setSpinning, setDisabled = _14.setDisabled;
|
|
250
252
|
// [Selector Group 7] Data & Column Setters - 데이터/열 설정자
|
|
251
253
|
var _15 = (0, store_1.useAppStore)((0, shallow_1.useShallow)(function (s) { return ({
|
|
252
254
|
setData: s.setData,
|
|
@@ -402,15 +404,7 @@ function Table(props) {
|
|
|
402
404
|
frozenRowCount: frozenRowCount,
|
|
403
405
|
frozenColumnsWidth: frozenColumnsWidth !== null && frozenColumnsWidth !== void 0 ? frozenColumnsWidth : 0,
|
|
404
406
|
});
|
|
405
|
-
}, [
|
|
406
|
-
cellSelectionRanges,
|
|
407
|
-
columns,
|
|
408
|
-
data.length,
|
|
409
|
-
frozenColumnsWidth,
|
|
410
|
-
frozenRowCount,
|
|
411
|
-
props.frozenColumnIndex,
|
|
412
|
-
trHeight,
|
|
413
|
-
]);
|
|
407
|
+
}, [cellSelectionRanges, columns, data.length, frozenColumnsWidth, frozenRowCount, props.frozenColumnIndex, trHeight]);
|
|
414
408
|
var activeFragments = React.useMemo(function () {
|
|
415
409
|
var _a;
|
|
416
410
|
return (0, cellSelectionGeometry_1.getCellSelectionFragments)({
|
|
@@ -422,15 +416,7 @@ function Table(props) {
|
|
|
422
416
|
frozenRowCount: frozenRowCount,
|
|
423
417
|
frozenColumnsWidth: frozenColumnsWidth !== null && frozenColumnsWidth !== void 0 ? frozenColumnsWidth : 0,
|
|
424
418
|
});
|
|
425
|
-
}, [
|
|
426
|
-
activeCellRanges,
|
|
427
|
-
columns,
|
|
428
|
-
data.length,
|
|
429
|
-
frozenColumnsWidth,
|
|
430
|
-
frozenRowCount,
|
|
431
|
-
props.frozenColumnIndex,
|
|
432
|
-
trHeight,
|
|
433
|
-
]);
|
|
419
|
+
}, [activeCellRanges, columns, data.length, frozenColumnsWidth, frozenRowCount, props.frozenColumnIndex, trHeight]);
|
|
434
420
|
var activeOverlayFill = activeCellSelected;
|
|
435
421
|
var activeOverlayRing = !!activeCell && !hasMultiCellSelection;
|
|
436
422
|
var renderSelectionOverlay = function (quadrant) {
|
|
@@ -455,7 +441,15 @@ function Table(props) {
|
|
|
455
441
|
leadingOverscan: ((_b = props.reorder) === null || _b === void 0 ? void 0 : _b.enabled) ? 0 : scrollOverscanRows,
|
|
456
442
|
windowSize: ((_c = props.reorder) === null || _c === void 0 ? void 0 : _c.enabled) ? 1 : KEYBOARD_NAVIGATION_ROW_WINDOW_SIZE,
|
|
457
443
|
});
|
|
458
|
-
}, [
|
|
444
|
+
}, [
|
|
445
|
+
data.length,
|
|
446
|
+
frozenRowCount,
|
|
447
|
+
(_c = props.reorder) === null || _c === void 0 ? void 0 : _c.enabled,
|
|
448
|
+
scrollOverscanRows,
|
|
449
|
+
scrollTop,
|
|
450
|
+
scrollableBodyHeight,
|
|
451
|
+
trHeight,
|
|
452
|
+
]);
|
|
459
453
|
var frozenRowRange = React.useMemo(function () { return ({ startRowIndex: 0, endRowIndex: frozenRowCount }); }, [frozenRowCount]);
|
|
460
454
|
var scrollableRowRange = React.useMemo(function () { return ({
|
|
461
455
|
startRowIndex: visibleScrollableRows.startRowIndex,
|
|
@@ -480,6 +474,8 @@ function Table(props) {
|
|
|
480
474
|
(searchSurfaceEnabled && searchOptions.contextMenu !== false);
|
|
481
475
|
var openCellContextMenu = React.useCallback(function (cell, clientX, clientY, keyboard) {
|
|
482
476
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
477
|
+
if (disabled)
|
|
478
|
+
return false;
|
|
483
479
|
var logical = (0, utils_1.resolveLogicalCell)(data, props.cellMergeOptions, cell);
|
|
484
480
|
var visibleIndex = logical.cell.rowIndex;
|
|
485
481
|
var columnIndex = logical.cell.columnIndex;
|
|
@@ -561,6 +557,7 @@ function Table(props) {
|
|
|
561
557
|
columns,
|
|
562
558
|
contextMenuOptions,
|
|
563
559
|
data,
|
|
560
|
+
disabled,
|
|
564
561
|
openContextMenu,
|
|
565
562
|
props.cellMergeOptions,
|
|
566
563
|
requestSearchOpen,
|
|
@@ -570,12 +567,7 @@ function Table(props) {
|
|
|
570
567
|
storeRowKey,
|
|
571
568
|
storeSourceIndexByVisibleIndex,
|
|
572
569
|
]);
|
|
573
|
-
var scrollableColumnsWidth = React.useMemo(function () {
|
|
574
|
-
var _a;
|
|
575
|
-
return columns
|
|
576
|
-
.slice((_a = props.frozenColumnIndex) !== null && _a !== void 0 ? _a : 0)
|
|
577
|
-
.reduce(function (totalWidth, column) { var _a; return totalWidth + ((_a = column.width) !== null && _a !== void 0 ? _a : 100); }, 0);
|
|
578
|
-
}, [columns, props.frozenColumnIndex]);
|
|
570
|
+
var scrollableColumnsWidth = React.useMemo(function () { var _a; return columns.slice((_a = props.frozenColumnIndex) !== null && _a !== void 0 ? _a : 0).reduce(function (totalWidth, column) { var _a; return totalWidth + ((_a = column.width) !== null && _a !== void 0 ? _a : 100); }, 0); }, [columns, props.frozenColumnIndex]);
|
|
579
571
|
var stickyTopHeight = headerHeight + ((summary === null || summary === void 0 ? void 0 : summary.position) === 'top' ? summaryHeight : 0);
|
|
580
572
|
var stickyBottomHeight = (summary === null || summary === void 0 ? void 0 : summary.position) === 'bottom' ? summaryHeight : 0;
|
|
581
573
|
var stickyFixedHeight = stickyTopHeight + stickyBottomHeight;
|
|
@@ -661,7 +653,16 @@ function Table(props) {
|
|
|
661
653
|
scrollTop: scrollTop,
|
|
662
654
|
trHeight: trHeight,
|
|
663
655
|
};
|
|
664
|
-
}, [
|
|
656
|
+
}, [
|
|
657
|
+
columns,
|
|
658
|
+
data.length,
|
|
659
|
+
props.frozenColumnIndex,
|
|
660
|
+
frozenColumnsWidth,
|
|
661
|
+
frozenRowCount,
|
|
662
|
+
frozenRowsHeight,
|
|
663
|
+
scrollTop,
|
|
664
|
+
trHeight,
|
|
665
|
+
]);
|
|
665
666
|
var markScrollActive = (0, react_1.useCallback)(function () {
|
|
666
667
|
var _a;
|
|
667
668
|
(_a = containerRef.current) === null || _a === void 0 ? void 0 : _a.setAttribute('data-bgrid-scrolling', 'true');
|
|
@@ -831,6 +832,10 @@ function Table(props) {
|
|
|
831
832
|
}, [columns.length, data.length, setCellSelectionRanges]);
|
|
832
833
|
var onBodyPointerOverCapture = (0, react_1.useCallback)(function (evt) {
|
|
833
834
|
var _a;
|
|
835
|
+
if (disabled) {
|
|
836
|
+
clearHoveredRow();
|
|
837
|
+
return;
|
|
838
|
+
}
|
|
834
839
|
var target = evt.target;
|
|
835
840
|
updateAxisSelectionByTarget(target);
|
|
836
841
|
var physicalCellPosition = getCellPosition(target, containerRef.current);
|
|
@@ -855,6 +860,7 @@ function Table(props) {
|
|
|
855
860
|
}, [
|
|
856
861
|
cellSelectionEnabled,
|
|
857
862
|
clearHoveredRow,
|
|
863
|
+
disabled,
|
|
858
864
|
setCellSelectionRanges,
|
|
859
865
|
setHoveredRows,
|
|
860
866
|
toLogicalCellPosition,
|
|
@@ -862,6 +868,8 @@ function Table(props) {
|
|
|
862
868
|
]);
|
|
863
869
|
var onBodyPointerDownCapture = (0, react_1.useCallback)(function (evt) {
|
|
864
870
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
871
|
+
if (disabled)
|
|
872
|
+
return;
|
|
865
873
|
var navEnabled = (_a = cellNavigationOptions === null || cellNavigationOptions === void 0 ? void 0 : cellNavigationOptions.enabled) !== null && _a !== void 0 ? _a : true;
|
|
866
874
|
if (!cellSelectionEnabled && !navEnabled)
|
|
867
875
|
return;
|
|
@@ -963,6 +971,7 @@ function Table(props) {
|
|
|
963
971
|
cellSelectionRanges,
|
|
964
972
|
columns.length,
|
|
965
973
|
data.length,
|
|
974
|
+
disabled,
|
|
966
975
|
setActiveCell,
|
|
967
976
|
setCellSelecting,
|
|
968
977
|
setCellSelectionRanges,
|
|
@@ -1487,7 +1496,8 @@ function Table(props) {
|
|
|
1487
1496
|
setLoading(props.loading);
|
|
1488
1497
|
if (props.spinning !== undefined)
|
|
1489
1498
|
setSpinning(props.spinning);
|
|
1490
|
-
|
|
1499
|
+
setDisabled(props.disabled);
|
|
1500
|
+
}, [props.loading, props.spinning, props.disabled, setLoading, setSpinning, setDisabled]);
|
|
1491
1501
|
// [Group 4] Frozen columns
|
|
1492
1502
|
(0, react_1.useEffect)(function () {
|
|
1493
1503
|
var _a, _b, _c, _d;
|
|
@@ -1638,11 +1648,15 @@ function Table(props) {
|
|
|
1638
1648
|
}, [props.rowKey, props.selectedRowKey, setRowKey, setFocusedRowKey]);
|
|
1639
1649
|
// [Group 9] Edit options
|
|
1640
1650
|
(0, react_1.useEffect)(function () {
|
|
1641
|
-
if (props.
|
|
1651
|
+
if (props.disabled) {
|
|
1652
|
+
setEditable(false);
|
|
1653
|
+
}
|
|
1654
|
+
else if (props.editable !== undefined) {
|
|
1642
1655
|
setEditable(props.editable);
|
|
1656
|
+
}
|
|
1643
1657
|
if (props.editTrigger !== undefined)
|
|
1644
1658
|
setEditTrigger(props.editTrigger);
|
|
1645
|
-
}, [props.editable, props.editTrigger, setEditable, setEditTrigger]);
|
|
1659
|
+
}, [props.disabled, props.editable, props.editTrigger, setEditable, setEditTrigger]);
|
|
1646
1660
|
// [Group 10] Event callbacks
|
|
1647
1661
|
(0, react_1.useEffect)(function () {
|
|
1648
1662
|
setOnClick(props.onClick);
|
|
@@ -1706,6 +1720,7 @@ function Table(props) {
|
|
|
1706
1720
|
(_u = (_t = props.cellNavigationOptions) === null || _t === void 0 ? void 0 : _t.activeCell) === null || _u === void 0 ? void 0 : _u.rowIndex,
|
|
1707
1721
|
(_w = (_v = props.cellNavigationOptions) === null || _v === void 0 ? void 0 : _v.defaultActiveCell) === null || _w === void 0 ? void 0 : _w.columnIndex,
|
|
1708
1722
|
(_y = (_x = props.cellNavigationOptions) === null || _x === void 0 ? void 0 : _x.defaultActiveCell) === null || _y === void 0 ? void 0 : _y.rowIndex,
|
|
1723
|
+
disabled,
|
|
1709
1724
|
syncActiveCellToBounds,
|
|
1710
1725
|
]);
|
|
1711
1726
|
// setInitialized + DOM event bindings
|
|
@@ -1843,6 +1858,7 @@ function Table(props) {
|
|
|
1843
1858
|
copySelectedCells: copySelectedCells,
|
|
1844
1859
|
dataLength: data.length,
|
|
1845
1860
|
data: data,
|
|
1861
|
+
disabled: disabled,
|
|
1846
1862
|
editable: editable,
|
|
1847
1863
|
editItemIndex: editItemIndex,
|
|
1848
1864
|
endCellSelectionDrag: endCellSelectionDrag,
|
|
@@ -1876,6 +1892,7 @@ function Table(props) {
|
|
|
1876
1892
|
copySelectedCells: copySelectedCells,
|
|
1877
1893
|
dataLength: data.length,
|
|
1878
1894
|
data: data,
|
|
1895
|
+
disabled: disabled,
|
|
1879
1896
|
editable: editable,
|
|
1880
1897
|
editItemIndex: editItemIndex,
|
|
1881
1898
|
endCellSelectionDrag: endCellSelectionDrag,
|
|
@@ -1977,11 +1994,15 @@ function Table(props) {
|
|
|
1977
1994
|
};
|
|
1978
1995
|
var handleKeyDown = function (evt) {
|
|
1979
1996
|
var _a, _b, _c, _d, _e;
|
|
1980
|
-
var _f = keyboardRuntimeRef.current, activeCell = _f.activeCell, cellInteractionSession = _f.cellInteractionSession, cellNavigationOptions = _f.cellNavigationOptions, cellSelectionEnabled = _f.cellSelectionEnabled, clearCellSelection = _f.clearCellSelection, clearCellSelectionOnEscape = _f.clearCellSelectionOnEscape, columns = _f.columns, commitCheckboxCell = _f.commitCheckboxCell, commitScroll = _f.commitScroll, copySelectedCells = _f.copySelectedCells, data = _f.data, dataLength = _f.dataLength, editable = _f.editable, editItemIndex = _f.editItemIndex, endCellSelectionDrag = _f.endCellSelectionDrag, frozenColumnIndex = _f.frozenColumnIndex, frozenRowCount = _f.frozenRowCount, height = _f.height, handleClick = _f.handleClick, moveActiveCell = _f.moveActiveCell, openCellContextMenu = _f.openCellContextMenu, selectAllCells = _f.selectAllCells, setEditItem = _f.setEditItem, requestSearchOpen = _f.requestSearchOpen, searchOpen = _f.searchOpen, searchOptions = _f.searchOptions, trHeight = _f.trHeight, verticalScrollState = _f.verticalScrollState, viewportInsets = _f.viewportInsets;
|
|
1997
|
+
var _f = keyboardRuntimeRef.current, activeCell = _f.activeCell, cellInteractionSession = _f.cellInteractionSession, cellNavigationOptions = _f.cellNavigationOptions, cellSelectionEnabled = _f.cellSelectionEnabled, clearCellSelection = _f.clearCellSelection, clearCellSelectionOnEscape = _f.clearCellSelectionOnEscape, columns = _f.columns, commitCheckboxCell = _f.commitCheckboxCell, commitScroll = _f.commitScroll, copySelectedCells = _f.copySelectedCells, data = _f.data, dataLength = _f.dataLength, disabled = _f.disabled, editable = _f.editable, editItemIndex = _f.editItemIndex, endCellSelectionDrag = _f.endCellSelectionDrag, frozenColumnIndex = _f.frozenColumnIndex, frozenRowCount = _f.frozenRowCount, height = _f.height, handleClick = _f.handleClick, moveActiveCell = _f.moveActiveCell, openCellContextMenu = _f.openCellContextMenu, selectAllCells = _f.selectAllCells, setEditItem = _f.setEditItem, requestSearchOpen = _f.requestSearchOpen, searchOpen = _f.searchOpen, searchOptions = _f.searchOptions, trHeight = _f.trHeight, verticalScrollState = _f.verticalScrollState, viewportInsets = _f.viewportInsets;
|
|
1981
1998
|
var container = containerRef.current;
|
|
1982
1999
|
var activeElement = document.activeElement;
|
|
1983
2000
|
if (!container || (activeElement !== container && !container.contains(activeElement)))
|
|
1984
2001
|
return;
|
|
2002
|
+
if (disabled) {
|
|
2003
|
+
stopArrowRepeat();
|
|
2004
|
+
return;
|
|
2005
|
+
}
|
|
1985
2006
|
var isCtrlOrMeta = evt.ctrlKey || evt.metaKey;
|
|
1986
2007
|
var isFindShortcut = isCtrlOrMeta && evt.key.toLowerCase() === 'f';
|
|
1987
2008
|
if (isFindShortcut && searchOptions && searchOptions.enabled !== false && searchOptions.shortcut !== false) {
|
|
@@ -2202,6 +2223,8 @@ function Table(props) {
|
|
|
2202
2223
|
var activeElement = document.activeElement;
|
|
2203
2224
|
if (!container || (activeElement !== container && !container.contains(activeElement)))
|
|
2204
2225
|
return;
|
|
2226
|
+
if (keyboardRuntimeRef.current.disabled)
|
|
2227
|
+
return;
|
|
2205
2228
|
if (isInteractiveTarget(evt.target))
|
|
2206
2229
|
return;
|
|
2207
2230
|
evt.preventDefault();
|
|
@@ -2213,6 +2236,8 @@ function Table(props) {
|
|
|
2213
2236
|
var activeElement = document.activeElement;
|
|
2214
2237
|
if (!container || (activeElement !== container && !container.contains(activeElement)))
|
|
2215
2238
|
return;
|
|
2239
|
+
if (keyboardRuntimeRef.current.disabled)
|
|
2240
|
+
return;
|
|
2216
2241
|
if (keyboardRuntimeRef.current.editItemIndex !== undefined && keyboardRuntimeRef.current.editItemIndex >= 0) {
|
|
2217
2242
|
return;
|
|
2218
2243
|
}
|
|
@@ -2261,14 +2286,14 @@ function Table(props) {
|
|
|
2261
2286
|
};
|
|
2262
2287
|
}, []);
|
|
2263
2288
|
return (React.createElement(EditorPortalRoot_1.EditorPortalContext.Provider, { value: editorPortalContext },
|
|
2264
|
-
React.createElement(Container, { ref: containerRef, role: 'grid', style: __assign(__assign({}, style), (_a = { width: width, height: height, borderWidth: "".concat(containerBorderWidth, "px") }, _a['--bgrid-virtual-row-height'] = "".concat(trHeight, "px"), _a)), className: className, tabIndex: 0, onFocus: function (event) {
|
|
2289
|
+
React.createElement(Container, { ref: containerRef, role: 'grid', style: __assign(__assign({}, style), (_a = { width: width, height: height, borderWidth: "".concat(containerBorderWidth, "px") }, _a['--bgrid-virtual-row-height'] = "".concat(trHeight, "px"), _a)), className: className, tabIndex: 0, "aria-disabled": disabled ? 'true' : undefined, onFocus: function (event) {
|
|
2265
2290
|
if (event.target !== event.currentTarget)
|
|
2266
2291
|
return;
|
|
2267
2292
|
var gateway = event.currentTarget.querySelector('[data-bgrid-text-editor-gateway="true"]');
|
|
2268
2293
|
if (gateway instanceof HTMLInputElement) {
|
|
2269
2294
|
gateway.focus({ preventScroll: true });
|
|
2270
2295
|
}
|
|
2271
|
-
}, "data-scroll-variant": scrollbar.variant, "data-vertical-scrollbar": scrollbar.variant !== 'native' && scrollbar.vertical.visible ? 'visible' : 'hidden', "data-bgrid-cell-selection-enabled": cellSelectionEnabled ? 'true' : 'false', "data-bgrid-frozen-columns": ((_5 = props.frozenColumnIndex) !== null && _5 !== void 0 ? _5 : 0) > 0 ? 'true' : 'false' },
|
|
2296
|
+
}, "data-scroll-variant": scrollbar.variant, "data-vertical-scrollbar": scrollbar.variant !== 'native' && scrollbar.vertical.visible ? 'visible' : 'hidden', "data-bgrid-cell-selection-enabled": cellSelectionEnabled ? 'true' : 'false', "data-bgrid-frozen-columns": ((_5 = props.frozenColumnIndex) !== null && _5 !== void 0 ? _5 : 0) > 0 ? 'true' : 'false', "data-bgrid-disabled": disabled ? 'true' : undefined },
|
|
2272
2297
|
scrollbar.variant !== 'native' && scrollbar.vertical.visible && (React.createElement("div", { className: 'bgrid-vertical-scrollbar-gutter', "aria-hidden": 'true' })),
|
|
2273
2298
|
scrollbar.variant !== 'native' && scrollbar.vertical.visible && (React.createElement("div", { className: 'bgrid-vertical-scrollbar-area', style: {
|
|
2274
2299
|
top: 0,
|
|
@@ -2276,6 +2301,8 @@ function Table(props) {
|
|
|
2276
2301
|
} },
|
|
2277
2302
|
React.createElement(scrollbar_1.CustomScrollbar, { orientation: 'vertical', variant: scrollbar.variant, metrics: scrollbarMetrics.vertical, scrollOffset: scrollTop, onScrollChange: handleScrollTopChange }))),
|
|
2278
2303
|
React.createElement(ScrollContainer, { ref: scrollContainerRef, role: 'rfdg-scroll-container', "data-bgrid-scroll-plane": 'sticky', style: { height: scrollViewportHeight }, onPointerDownCapture: onBodyPointerDownCapture, onPointerOverCapture: onBodyPointerOverCapture, onPointerLeave: onBodyPointerLeave, onContextMenuCapture: function (event) {
|
|
2304
|
+
if (disabled)
|
|
2305
|
+
return;
|
|
2279
2306
|
if (isInteractiveTarget(event.target))
|
|
2280
2307
|
return;
|
|
2281
2308
|
var cell = getCellPosition(event.target, containerRef.current);
|
|
@@ -2414,8 +2441,7 @@ function getCellPositionFromPointer(_a) {
|
|
|
2414
2441
|
var rowIndex = metrics.frozenRowCount > 0 && clientY < frozenRowsBottom
|
|
2415
2442
|
? (0, coordinate_1.clamp)(Math.floor((clientY - bodyRect.top) / metrics.trHeight), 0, metrics.frozenRowCount - 1)
|
|
2416
2443
|
: (0, coordinate_1.clamp)(metrics.frozenRowCount +
|
|
2417
|
-
Math.floor((metrics.scrollTop +
|
|
2418
|
-
(0, coordinate_1.clamp)(clientY - scrollRect.top, 0, Math.max(scrollContainer.clientHeight - 1, 0))) /
|
|
2444
|
+
Math.floor((metrics.scrollTop + (0, coordinate_1.clamp)(clientY - scrollRect.top, 0, Math.max(scrollContainer.clientHeight - 1, 0))) /
|
|
2419
2445
|
metrics.trHeight), 0, metrics.dataLength - 1);
|
|
2420
2446
|
var columnIndex = getColumnIndexFromPointer({
|
|
2421
2447
|
clientX: clientX,
|
|
@@ -204,8 +204,9 @@ function TableBody(_a) {
|
|
|
204
204
|
var _j = (0, store_1.useAppStore)((0, shallow_1.useShallow)(function (s) { return ({
|
|
205
205
|
editable: s.editable,
|
|
206
206
|
editTrigger: s.editTrigger,
|
|
207
|
+
disabled: s.disabled,
|
|
207
208
|
cellInteractionSession: s.cellInteractionSession,
|
|
208
|
-
}); })), editable = _j.editable, editTrigger = _j.editTrigger, cellInteractionSession = _j.cellInteractionSession;
|
|
209
|
+
}); })), editable = _j.editable, editTrigger = _j.editTrigger, disabled = _j.disabled, cellInteractionSession = _j.cellInteractionSession;
|
|
209
210
|
// [Selector Group 5] Display Options - 표시 옵션
|
|
210
211
|
var _k = (0, store_1.useAppStore)((0, shallow_1.useShallow)(function (s) { return ({
|
|
211
212
|
msg: s.msg,
|
|
@@ -247,10 +248,11 @@ function TableBody(_a) {
|
|
|
247
248
|
endCIdx: endColumnIndex,
|
|
248
249
|
};
|
|
249
250
|
}, [scrollLeft, width, frozenColumnsWidth, columns, frozenColumnIndex, isLeftRegion]), startCIdx = _p.startCIdx, endCIdx = _p.endCIdx;
|
|
250
|
-
var hasOnClick = !!onClick;
|
|
251
|
+
var hasOnClick = !!onClick && !disabled;
|
|
251
252
|
var hasRowChecked = !!rowChecked;
|
|
252
253
|
var isRadio = rowChecked === null || rowChecked === void 0 ? void 0 : rowChecked.isRadio;
|
|
253
|
-
var rowReorderEnabled =
|
|
254
|
+
var rowReorderEnabled = !disabled &&
|
|
255
|
+
isLeftRegion &&
|
|
254
256
|
allowRowReorder &&
|
|
255
257
|
!!(reorder === null || reorder === void 0 ? void 0 : reorder.enabled) &&
|
|
256
258
|
!!onRowReorderPointerDown &&
|
|
@@ -302,10 +304,10 @@ function TableBody(_a) {
|
|
|
302
304
|
isLeftRegion &&
|
|
303
305
|
showLineNumber &&
|
|
304
306
|
(rowReorderEnabled ? (React.createElement(LineNumberTd, { bordered: !hasRowChecked && frozenColumnIndex > 0 && variant !== 'vertical-bordered', className: 'bgrid-line-number-drag', rowStatus: rowStatus, rowIndex: ri },
|
|
305
|
-
React.createElement("button", { type: 'button', className: 'bgrid-row-reorder-handle drag-handle', "data-row-reorder-index": ri, "data-dragging": (reorderingInfo === null || reorderingInfo === void 0 ? void 0 : reorderingInfo.fromIndex) === ri ? 'true' : undefined, "aria-label": "Move row ".concat(ri + 1), disabled: !!cellInteractionSession, onPointerDown: function (event) { return onRowReorderPointerDown === null || onRowReorderPointerDown === void 0 ? void 0 : onRowReorderPointerDown(event, ri); }, onKeyDown: function (event) { return onRowReorderKeyDown === null || onRowReorderKeyDown === void 0 ? void 0 : onRowReorderKeyDown(event, ri); } }, (_d = reorder === null || reorder === void 0 ? void 0 : reorder.handleIcon) !== null && _d !== void 0 ? _d : React.createElement(GripVertical_1.GripVertical, null)),
|
|
307
|
+
React.createElement("button", { type: 'button', className: 'bgrid-row-reorder-handle drag-handle', "data-row-reorder-index": ri, "data-dragging": (reorderingInfo === null || reorderingInfo === void 0 ? void 0 : reorderingInfo.fromIndex) === ri ? 'true' : undefined, "aria-label": "Move row ".concat(ri + 1), disabled: !!disabled || !!cellInteractionSession, onPointerDown: function (event) { return onRowReorderPointerDown === null || onRowReorderPointerDown === void 0 ? void 0 : onRowReorderPointerDown(event, ri); }, onKeyDown: function (event) { return onRowReorderKeyDown === null || onRowReorderKeyDown === void 0 ? void 0 : onRowReorderKeyDown(event, ri); } }, (_d = reorder === null || reorder === void 0 ? void 0 : reorder.handleIcon) !== null && _d !== void 0 ? _d : React.createElement(GripVertical_1.GripVertical, null)),
|
|
306
308
|
React.createElement("span", { className: 'bgrid-line-number-value' }, rowStatus !== null && rowStatus !== void 0 ? rowStatus : ri + 1))) : (React.createElement(LineNumberTd, { bordered: !hasRowChecked && frozenColumnIndex > 0 && variant !== 'vertical-bordered', rowStatus: rowStatus, rowIndex: ri }, rowStatus !== null && rowStatus !== void 0 ? rowStatus : ri + 1))),
|
|
307
309
|
isLeftRegion && hasRowChecked && (React.createElement("td", { className: frozenColumnIndex > 0 ? 'bordered' : '' },
|
|
308
|
-
React.createElement(RowSelector_1.default, { disabled: (_e = rowChecked.disabled) === null || _e === void 0 ? void 0 : _e.call(rowChecked, sourceIndex, item), checked: checkedAll === true || checkedIndexesMap.get(sourceIndex), handleChange: function (checked) { return __awaiter(_this, void 0, void 0, function () {
|
|
310
|
+
React.createElement(RowSelector_1.default, { disabled: !!disabled || ((_e = rowChecked.disabled) === null || _e === void 0 ? void 0 : _e.call(rowChecked, sourceIndex, item)), checked: checkedAll === true || checkedIndexesMap.get(sourceIndex), handleChange: function (checked) { return __awaiter(_this, void 0, void 0, function () {
|
|
309
311
|
return __generator(this, function (_a) {
|
|
310
312
|
switch (_a.label) {
|
|
311
313
|
case 0:
|
|
@@ -337,10 +339,7 @@ function TableBody(_a) {
|
|
|
337
339
|
cellInteractionSession.hostCell.rowIndex === ri &&
|
|
338
340
|
cellInteractionSession.hostCell.columnIndex === columnIndex;
|
|
339
341
|
var logicalRowsEditable = logicalCell.rowIndexes.every(function (rowIndex) { var _a; return ((_a = data[rowIndex]) === null || _a === void 0 ? void 0 : _a.status) !== types_1.BGridDataItemStatus.remove; });
|
|
340
|
-
var tdEditable = logicalRowsEditable &&
|
|
341
|
-
editable &&
|
|
342
|
-
column.editable !== false &&
|
|
343
|
-
isHostEditing;
|
|
342
|
+
var tdEditable = logicalRowsEditable && editable && column.editable !== false && isHostEditing;
|
|
344
343
|
var rowSpan = (mergeColumns === null || mergeColumns === void 0 ? void 0 : mergeColumns[columnIndex]) ? getRowSpan(ri, columnIndex) : 1;
|
|
345
344
|
if (rowSpan === 0)
|
|
346
345
|
return null;
|
|
@@ -415,9 +414,7 @@ function TableBody(_a) {
|
|
|
415
414
|
});
|
|
416
415
|
}); },
|
|
417
416
|
editable: tdEditable, cellEditable: cellEditable, interactionEditing: isLogicalEditing,
|
|
418
|
-
editSession: tdEditable && (cellInteractionSession === null || cellInteractionSession === void 0 ? void 0 : cellInteractionSession.kind) === 'editor'
|
|
419
|
-
? cellInteractionSession
|
|
420
|
-
: undefined })));
|
|
417
|
+
editSession: tdEditable && (cellInteractionSession === null || cellInteractionSession === void 0 ? void 0 : cellInteractionSession.kind) === 'editor' ? cellInteractionSession : undefined })));
|
|
421
418
|
}),
|
|
422
419
|
!isLeftRegion && React.createElement("td", { "data-none": true, onClick: function () { return handleClick(ri, -1); } })));
|
|
423
420
|
}),
|
|
@@ -460,9 +457,7 @@ function TableBodyTr(_a) {
|
|
|
460
457
|
var _b;
|
|
461
458
|
var itemHeight = _a.itemHeight, itemPadding = _a.itemPadding, active = _a.active, editable = _a.editable, odd = _a.odd, hasOnClick = _a.hasOnClick, className = _a.className, children = _a.children, style = _a.style, rest = __rest(_a, ["itemHeight", "itemPadding", "active", "editable", "odd", "hasOnClick", "className", "children", "style"]);
|
|
462
459
|
var clickable = !editable && hasOnClick;
|
|
463
|
-
var rowClassName = ['bgrid-body-row', active ? 'bgrid-row-active' : '', className !== null && className !== void 0 ? className : '']
|
|
464
|
-
.filter(Boolean)
|
|
465
|
-
.join(' ');
|
|
460
|
+
var rowClassName = ['bgrid-body-row', active ? 'bgrid-row-active' : '', className !== null && className !== void 0 ? className : ''].filter(Boolean).join(' ');
|
|
466
461
|
return (React.createElement("tr", __assign({ className: rowClassName, "data-odd": odd ? 'true' : undefined, "data-clickable": clickable ? 'true' : undefined, style: __assign((_b = {}, _b['--bgrid-item-line-height'] = "".concat(itemHeight, "px"), _b['--bgrid-item-cell-height'] = "".concat(itemHeight + itemPadding * 2, "px"), _b), style) }, rest), children));
|
|
467
462
|
}
|
|
468
463
|
function NoDataTr(_a) {
|
|
@@ -100,7 +100,8 @@ function TableHead(_a) {
|
|
|
100
100
|
frozenColumnIndex: s.frozenColumnIndex,
|
|
101
101
|
columnResizing: s.columnResizing,
|
|
102
102
|
columnSortable: s.columnSortable,
|
|
103
|
-
|
|
103
|
+
disabled: s.disabled,
|
|
104
|
+
}); })), sort = _b.sort, dataControl = _b.dataControl, headerHeight = _b.headerHeight, columns = _b.columns, columnsGroup = _b.columnsGroup, columnGroups = _b.columnGroups, frozenColumnIndex = _b.frozenColumnIndex, columnResizing = _b.columnResizing, columnSortable = _b.columnSortable, disabled = _b.disabled;
|
|
104
105
|
// [Selector Group 2] Action Setters - 액션 설정자
|
|
105
106
|
var _c = (0, store_1.useAppStore)((0, shallow_1.useShallow)(function (s) { return ({
|
|
106
107
|
toggleColumnSort: s.toggleColumnSort,
|
|
@@ -120,7 +121,7 @@ function TableHead(_a) {
|
|
|
120
121
|
var nestedGroupsActive = columnGroups.length > 0;
|
|
121
122
|
var handleSorted = React.useCallback(function () { return setSorted(true); }, []);
|
|
122
123
|
(0, useColumnSortable_1.useColumnSortable)({
|
|
123
|
-
enabled: !!columnSortable && !sorted,
|
|
124
|
+
enabled: !disabled && !!columnSortable && !sorted,
|
|
124
125
|
tbodyRef: tbodyRef,
|
|
125
126
|
columnsTable: columnsTable,
|
|
126
127
|
nestedGroupsActive: nestedGroupsActive,
|
|
@@ -141,18 +142,15 @@ function TableHead(_a) {
|
|
|
141
142
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
142
143
|
if (c.type === 'group') {
|
|
143
144
|
return (React.createElement(HeadGroupTd, { key: c.key, "data-column-index": c.startColumnIndex, "data-group-id": c.groupId, "data-header-cell-type": 'group', "data-bgrid-axis-selectable": 'true', colSpan: c.colSpan, className: [
|
|
144
|
-
columnSortable && !nestedGroupsActive ? 'drag-item' : '',
|
|
145
|
+
!disabled && columnSortable && !nestedGroupsActive ? 'drag-item' : '',
|
|
145
146
|
(_a = c.className) !== null && _a !== void 0 ? _a : '',
|
|
146
147
|
]
|
|
147
148
|
.filter(Boolean)
|
|
148
149
|
.join(' '), style: __assign(__assign({}, c.headerStyle), { textAlign: (_d = (_b = c.headerAlign) !== null && _b !== void 0 ? _b : (_c = c.headerStyle) === null || _c === void 0 ? void 0 : _c.textAlign) !== null && _d !== void 0 ? _d : 'center' }) },
|
|
149
150
|
React.createElement("span", { className: 'bgrid-column-drag-handle' }, c.label)));
|
|
150
151
|
}
|
|
151
|
-
var sortEnabled = !((_e = c.column) === null || _e === void 0 ? void 0 : _e.sortDisable) && (!!sort || !!dataControl);
|
|
152
|
-
return (React.createElement(HeadTd, { "data-column-index": c.columnIndex, "data-header-cell-type": 'column', "data-bgrid-axis-selectable": !sortEnabled ? 'true' : undefined, "data-parent-group-id": c.parentGroupId, key: c.key, rowSpan: c.rowSpan, bottomBorder: isHeadCellOnBottomRow(ri, c.rowSpan, columnsTable.length), style: __assign(__assign({}, c.headerStyle), { textAlign: (_h = (_f = c.headerAlign) !== null && _f !== void 0 ? _f : (_g = c.headerStyle) === null || _g === void 0 ? void 0 : _g.textAlign) !== null && _h !== void 0 ? _h : 'center' }), className: [
|
|
153
|
-
columnSortable ? 'drag-item' : '',
|
|
154
|
-
(_j = c.className) !== null && _j !== void 0 ? _j : '',
|
|
155
|
-
]
|
|
152
|
+
var sortEnabled = !disabled && !((_e = c.column) === null || _e === void 0 ? void 0 : _e.sortDisable) && (!!sort || !!dataControl);
|
|
153
|
+
return (React.createElement(HeadTd, { "data-column-index": c.columnIndex, "data-header-cell-type": 'column', "data-bgrid-axis-selectable": !sortEnabled ? 'true' : undefined, "data-parent-group-id": c.parentGroupId, key: c.key, rowSpan: c.rowSpan, bottomBorder: isHeadCellOnBottomRow(ri, c.rowSpan, columnsTable.length), style: __assign(__assign({}, c.headerStyle), { textAlign: (_h = (_f = c.headerAlign) !== null && _f !== void 0 ? _f : (_g = c.headerStyle) === null || _g === void 0 ? void 0 : _g.textAlign) !== null && _h !== void 0 ? _h : 'center' }), className: [!disabled && columnSortable ? 'drag-item' : '', (_j = c.className) !== null && _j !== void 0 ? _j : '']
|
|
156
154
|
.filter(Boolean)
|
|
157
155
|
.join(' '), hasOnClick: sortEnabled, columnResizing: columnResizing, onClick: function (evt) {
|
|
158
156
|
evt.preventDefault();
|