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 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 resolvedOnClick = pivotEnabled ? undefined : onClick;
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 = cellSelectionOptions;
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
- }); })), page = _b.page, displayPaginationLength = _b.displayPaginationLength;
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
  }
@@ -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
- }); })), 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;
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
- }, [data.length, frozenRowCount, (_c = props.reorder) === null || _c === void 0 ? void 0 : _c.enabled, scrollOverscanRows, scrollTop, scrollableBodyHeight, trHeight]);
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
- }, [columns, data.length, props.frozenColumnIndex, frozenColumnsWidth, frozenRowCount, frozenRowsHeight, scrollTop, trHeight]);
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
- }, [props.loading, props.spinning, setLoading, setSpinning]);
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.editable !== undefined)
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 = isLeftRegion &&
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
- }); })), 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;
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();