@coreui/react-data-grid 0.1.0-rc.0

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.
Files changed (104) hide show
  1. package/LICENSE +3 -0
  2. package/README.md +33 -0
  3. package/dist/cjs/CDataGrid.d.ts +8 -0
  4. package/dist/cjs/CDataGrid.js +903 -0
  5. package/dist/cjs/CDataGrid.js.map +1 -0
  6. package/dist/cjs/CDataGridBody.d.ts +40 -0
  7. package/dist/cjs/CDataGridBody.js +144 -0
  8. package/dist/cjs/CDataGridBody.js.map +1 -0
  9. package/dist/cjs/CDataGridCellEditor.d.ts +8 -0
  10. package/dist/cjs/CDataGridCellEditor.js +67 -0
  11. package/dist/cjs/CDataGridCellEditor.js.map +1 -0
  12. package/dist/cjs/CDataGridColumnChooser.d.ts +23 -0
  13. package/dist/cjs/CDataGridColumnChooser.js +71 -0
  14. package/dist/cjs/CDataGridColumnChooser.js.map +1 -0
  15. package/dist/cjs/CDataGridFilterMenu.d.ts +22 -0
  16. package/dist/cjs/CDataGridFilterMenu.js +177 -0
  17. package/dist/cjs/CDataGridFilterMenu.js.map +1 -0
  18. package/dist/cjs/CDataGridHeader.d.ts +36 -0
  19. package/dist/cjs/CDataGridHeader.js +232 -0
  20. package/dist/cjs/CDataGridHeader.js.map +1 -0
  21. package/dist/cjs/CDataGridHeaderMenu.d.ts +29 -0
  22. package/dist/cjs/CDataGridHeaderMenu.js +127 -0
  23. package/dist/cjs/CDataGridHeaderMenu.js.map +1 -0
  24. package/dist/cjs/CDataGridPagination.d.ts +18 -0
  25. package/dist/cjs/CDataGridPagination.js +39 -0
  26. package/dist/cjs/CDataGridPagination.js.map +1 -0
  27. package/dist/cjs/CDataGridToolbar.d.ts +32 -0
  28. package/dist/cjs/CDataGridToolbar.js +49 -0
  29. package/dist/cjs/CDataGridToolbar.js.map +1 -0
  30. package/dist/cjs/active-cell.d.ts +22 -0
  31. package/dist/cjs/active-cell.js +89 -0
  32. package/dist/cjs/active-cell.js.map +1 -0
  33. package/dist/cjs/columns.d.ts +37 -0
  34. package/dist/cjs/columns.js +170 -0
  35. package/dist/cjs/columns.js.map +1 -0
  36. package/dist/cjs/icons.d.ts +22 -0
  37. package/dist/cjs/icons.js +40 -0
  38. package/dist/cjs/icons.js.map +1 -0
  39. package/dist/cjs/index.d.ts +12 -0
  40. package/dist/cjs/index.js +39 -0
  41. package/dist/cjs/index.js.map +1 -0
  42. package/dist/cjs/labels.d.ts +7 -0
  43. package/dist/cjs/pinning.d.ts +19 -0
  44. package/dist/cjs/pinning.js +32 -0
  45. package/dist/cjs/pinning.js.map +1 -0
  46. package/dist/cjs/toolbar.d.ts +22 -0
  47. package/dist/cjs/toolbar.js +43 -0
  48. package/dist/cjs/toolbar.js.map +1 -0
  49. package/dist/cjs/tooltip.d.ts +10 -0
  50. package/dist/cjs/tooltip.js +102 -0
  51. package/dist/cjs/tooltip.js.map +1 -0
  52. package/dist/cjs/types.d.ts +287 -0
  53. package/dist/esm/CDataGrid.d.ts +8 -0
  54. package/dist/esm/CDataGrid.mjs +901 -0
  55. package/dist/esm/CDataGrid.mjs.map +1 -0
  56. package/dist/esm/CDataGridBody.d.ts +40 -0
  57. package/dist/esm/CDataGridBody.mjs +142 -0
  58. package/dist/esm/CDataGridBody.mjs.map +1 -0
  59. package/dist/esm/CDataGridCellEditor.d.ts +8 -0
  60. package/dist/esm/CDataGridCellEditor.mjs +65 -0
  61. package/dist/esm/CDataGridCellEditor.mjs.map +1 -0
  62. package/dist/esm/CDataGridColumnChooser.d.ts +23 -0
  63. package/dist/esm/CDataGridColumnChooser.mjs +69 -0
  64. package/dist/esm/CDataGridColumnChooser.mjs.map +1 -0
  65. package/dist/esm/CDataGridFilterMenu.d.ts +22 -0
  66. package/dist/esm/CDataGridFilterMenu.mjs +175 -0
  67. package/dist/esm/CDataGridFilterMenu.mjs.map +1 -0
  68. package/dist/esm/CDataGridHeader.d.ts +36 -0
  69. package/dist/esm/CDataGridHeader.mjs +230 -0
  70. package/dist/esm/CDataGridHeader.mjs.map +1 -0
  71. package/dist/esm/CDataGridHeaderMenu.d.ts +29 -0
  72. package/dist/esm/CDataGridHeaderMenu.mjs +125 -0
  73. package/dist/esm/CDataGridHeaderMenu.mjs.map +1 -0
  74. package/dist/esm/CDataGridPagination.d.ts +18 -0
  75. package/dist/esm/CDataGridPagination.mjs +37 -0
  76. package/dist/esm/CDataGridPagination.mjs.map +1 -0
  77. package/dist/esm/CDataGridToolbar.d.ts +32 -0
  78. package/dist/esm/CDataGridToolbar.mjs +47 -0
  79. package/dist/esm/CDataGridToolbar.mjs.map +1 -0
  80. package/dist/esm/active-cell.d.ts +22 -0
  81. package/dist/esm/active-cell.mjs +86 -0
  82. package/dist/esm/active-cell.mjs.map +1 -0
  83. package/dist/esm/columns.d.ts +37 -0
  84. package/dist/esm/columns.mjs +163 -0
  85. package/dist/esm/columns.mjs.map +1 -0
  86. package/dist/esm/icons.d.ts +22 -0
  87. package/dist/esm/icons.mjs +24 -0
  88. package/dist/esm/icons.mjs.map +1 -0
  89. package/dist/esm/index.d.mts +1 -0
  90. package/dist/esm/index.d.ts +12 -0
  91. package/dist/esm/index.mjs +5 -0
  92. package/dist/esm/index.mjs.map +1 -0
  93. package/dist/esm/labels.d.ts +7 -0
  94. package/dist/esm/pinning.d.ts +19 -0
  95. package/dist/esm/pinning.mjs +29 -0
  96. package/dist/esm/pinning.mjs.map +1 -0
  97. package/dist/esm/toolbar.d.ts +22 -0
  98. package/dist/esm/toolbar.mjs +41 -0
  99. package/dist/esm/toolbar.mjs.map +1 -0
  100. package/dist/esm/tooltip.d.ts +10 -0
  101. package/dist/esm/tooltip.mjs +100 -0
  102. package/dist/esm/tooltip.mjs.map +1 -0
  103. package/dist/esm/types.d.ts +287 -0
  104. package/package.json +92 -0
@@ -0,0 +1,177 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var filters = require('@coreui/data-grid/filters');
5
+ var react = require('react');
6
+ var reactDom = require('react-dom');
7
+ var labels = require('@coreui/data-grid/labels');
8
+
9
+ const SEARCH_THRESHOLD = 10;
10
+ const MAX_CONDITIONS = 2;
11
+ const OPERATOR_LABEL_KEYS = {
12
+ contains: 'operatorContains',
13
+ notContains: 'operatorNotContains',
14
+ equals: 'operatorEquals',
15
+ notEquals: 'operatorNotEquals',
16
+ startsWith: 'operatorStartsWith',
17
+ endsWith: 'operatorEndsWith',
18
+ blank: 'operatorBlank',
19
+ notBlank: 'operatorNotBlank',
20
+ greaterThan: 'operatorGreaterThan',
21
+ greaterThanOrEqual: 'operatorGreaterThanOrEqual',
22
+ lessThan: 'operatorLessThan',
23
+ lessThanOrEqual: 'operatorLessThanOrEqual',
24
+ between: 'operatorBetween'
25
+ };
26
+ const inputTypeFor = (filterType) => (filterType === 'number' ? 'number' : (filterType === 'date' ? 'date' : 'text'));
27
+ const toDraft = (filterType, condition) => {
28
+ var _a;
29
+ return ({
30
+ operator: (_a = condition === null || condition === void 0 ? void 0 : condition.operator) !== null && _a !== void 0 ? _a : filters.FILTER_OPERATORS[filterType][0],
31
+ value: (condition === null || condition === void 0 ? void 0 : condition.value) === undefined ? '' : String(condition.value),
32
+ value2: (condition === null || condition === void 0 ? void 0 : condition.value2) === undefined ? '' : String(condition.value2)
33
+ });
34
+ };
35
+ const readCondition = (draft) => {
36
+ if (filters.VALUELESS_OPERATORS.has(draft.operator)) {
37
+ return { operator: draft.operator };
38
+ }
39
+ if (draft.value.trim() === '') {
40
+ return null;
41
+ }
42
+ return {
43
+ operator: draft.operator,
44
+ value: draft.value,
45
+ ...(draft.operator === 'between' && draft.value2.trim() !== '' && { value2: draft.value2 })
46
+ };
47
+ };
48
+ const FilterMenuFooter = ({ labels, onApply, onClear }) => (jsxRuntime.jsxs("div", { className: "data-grid-filter-menu-footer", children: [jsxRuntime.jsx("button", { type: "button", className: "btn btn-primary btn-sm", onClick: onApply, children: labels.applyFilter }), jsxRuntime.jsx("button", { type: "button", className: "btn btn-outline-secondary btn-sm", onClick: onClear, children: labels.clearFilter })] }));
49
+ const ConditionsContent = ({ current, filterType, labels, onApply }) => {
50
+ const initialConditions = current !== undefined && typeof current !== 'string' && 'conditions' in current ? current.conditions : [];
51
+ const [drafts, setDrafts] = react.useState(() => {
52
+ var _a;
53
+ return (initialConditions.length > 1 ?
54
+ [toDraft(filterType, initialConditions[0]), toDraft(filterType, initialConditions[1])] :
55
+ [toDraft(filterType, (_a = initialConditions[0]) !== null && _a !== void 0 ? _a : null)]);
56
+ });
57
+ const [join, setJoin] = react.useState(current !== undefined && typeof current !== 'string' && 'conditions' in current ? current.join : 'and');
58
+ const joinName = `${react.useId()}-join`;
59
+ const updateDraft = (index, patch) => {
60
+ setDrafts(previous => previous.map((draft, i) => (i === index ? { ...draft, ...patch } : draft)));
61
+ };
62
+ const addCondition = () => {
63
+ setDrafts(previous => {
64
+ var _a;
65
+ return (previous.length >= MAX_CONDITIONS ?
66
+ previous :
67
+ [...previous, toDraft(filterType, (_a = initialConditions[1]) !== null && _a !== void 0 ? _a : null)]);
68
+ });
69
+ };
70
+ const apply = () => {
71
+ const collected = [];
72
+ for (const draft of drafts) {
73
+ const condition = readCondition(draft);
74
+ if (condition !== null) {
75
+ collected.push(condition);
76
+ }
77
+ }
78
+ onApply(collected.length === 0 ? undefined : { conditions: collected, join });
79
+ };
80
+ const conditionRow = (index) => {
81
+ const draft = drafts[index];
82
+ return (jsxRuntime.jsxs("div", { className: "data-grid-filter-menu-condition", children: [jsxRuntime.jsx("select", { className: "form-select form-select-sm", "aria-label": labels.filterAction, value: draft.operator, onChange: event => updateDraft(index, { operator: event.target.value }), children: filters.FILTER_OPERATORS[filterType].map(operator => (jsxRuntime.jsx("option", { value: operator, children: labels[OPERATOR_LABEL_KEYS[operator]] }, operator))) }), jsxRuntime.jsx("input", { type: inputTypeFor(filterType), className: "form-control form-control-sm", "data-coreui-filter-value": "", hidden: filters.VALUELESS_OPERATORS.has(draft.operator), value: draft.value, onChange: event => updateDraft(index, { value: event.target.value }) }), jsxRuntime.jsx("input", { type: inputTypeFor(filterType), className: "form-control form-control-sm", "data-coreui-filter-value2": "", hidden: draft.operator !== 'between', value: draft.value2, onChange: event => updateDraft(index, { value2: event.target.value }) })] }, index));
83
+ };
84
+ return (jsxRuntime.jsxs("div", { children: [conditionRow(0), drafts.length > 1 && (jsxRuntime.jsx("div", { className: "data-grid-filter-menu-join", children: ['and', 'or'].map(option => (jsxRuntime.jsxs("label", { children: [jsxRuntime.jsx("input", { type: "radio", className: "form-check-input", name: joinName, value: option, checked: join === option, onChange: () => setJoin(option) }), ` ${option === 'and' ? labels.joinAnd : labels.joinOr}`] }, option))) })), drafts.length > 1 && conditionRow(1), jsxRuntime.jsx("button", { type: "button", className: "btn btn-link btn-sm", hidden: drafts.length >= MAX_CONDITIONS, onClick: addCondition, children: labels.addCondition }), jsxRuntime.jsx(FilterMenuFooter, { labels: labels, onApply: apply, onClear: () => onApply() })] }));
85
+ };
86
+ const SelectContent = ({ current, labels, onApply, values }) => {
87
+ const [checked, setChecked] = react.useState(() => {
88
+ const selected = current !== undefined && typeof current !== 'string' && 'operator' in current ?
89
+ new Set(current.value.map(String)) :
90
+ null;
91
+ return new Set(selected === null ? values : values.filter(value => selected.has(value)));
92
+ });
93
+ const [search, setSearch] = react.useState('');
94
+ const allChecked = checked.size === values.length;
95
+ const toggleValue = (value, on) => {
96
+ setChecked(previous => {
97
+ const next = new Set(previous);
98
+ if (on) {
99
+ next.add(value);
100
+ }
101
+ else {
102
+ next.delete(value);
103
+ }
104
+ return next;
105
+ });
106
+ };
107
+ const apply = () => {
108
+ onApply(allChecked ? undefined : { operator: 'in', value: values.filter(value => checked.has(value)) });
109
+ };
110
+ const needle = search.toLowerCase();
111
+ return (jsxRuntime.jsxs("div", { children: [values.length > SEARCH_THRESHOLD && (jsxRuntime.jsx("input", { type: "text", className: "form-control form-control-sm", "aria-label": labels.searchValues, placeholder: labels.searchValues, value: search, onChange: event => setSearch(event.target.value) })), jsxRuntime.jsxs("div", { className: "data-grid-filter-menu-values", children: [jsxRuntime.jsxs("label", { className: "form-check", children: [jsxRuntime.jsx("input", { type: "checkbox", className: "form-check-input", checked: allChecked, "data-coreui-select-all-values": "", onChange: event => setChecked(new Set(event.target.checked ? values : [])) }), jsxRuntime.jsx("span", { className: "form-check-label", children: labels.selectAllValues })] }), values.map(value => (jsxRuntime.jsxs("label", { className: "form-check", hidden: !value.toLowerCase().includes(needle), children: [jsxRuntime.jsx("input", { type: "checkbox", className: "form-check-input", checked: checked.has(value), "data-coreui-filter-option": value, onChange: event => toggleValue(value, event.target.checked) }), jsxRuntime.jsx("span", { className: "form-check-label", children: value })] }, value)))] }), jsxRuntime.jsx(FilterMenuFooter, { labels: labels, onApply: apply, onClear: () => onApply() })] }));
112
+ };
113
+ const CDataGridFilterMenu = ({ column, container, id, labels: labels$1, onClose, position, table }) => {
114
+ var _a, _b, _c;
115
+ const menuRef = react.useRef(null);
116
+ const [left, setLeft] = react.useState(0);
117
+ // Faceted values are captured once at open — the menu edits a draft and the
118
+ // grid state only changes on Apply, which closes it.
119
+ const [values] = react.useState(() => { var _a, _b; return [...((_b = (_a = table.getColumn(column.key)) === null || _a === void 0 ? void 0 : _a.getFacetedUniqueValues().keys()) !== null && _b !== void 0 ? _b : [])].map(String); });
120
+ // Right-align the dialog to the menu trigger, like the header menu — the
121
+ // width is only known after mount, so measure and place it before paint.
122
+ react.useLayoutEffect(() => {
123
+ var _a, _b;
124
+ const width = (_b = (_a = menuRef.current) === null || _a === void 0 ? void 0 : _a.offsetWidth) !== null && _b !== void 0 ? _b : 0;
125
+ setLeft(Math.max(position.buttonRight - width, 0));
126
+ }, [position.buttonRight]);
127
+ react.useLayoutEffect(() => {
128
+ var _a, _b;
129
+ (_b = (_a = menuRef.current) === null || _a === void 0 ? void 0 : _a.querySelector('select, input')) === null || _b === void 0 ? void 0 : _b.focus();
130
+ const onOutsidePointerDown = (event) => {
131
+ var _a, _b;
132
+ const target = event.target;
133
+ const trigger = (_a = container.current) === null || _a === void 0 ? void 0 : _a.querySelector(`button[data-coreui-menu="${column.key}"]`);
134
+ if (!((_b = menuRef.current) === null || _b === void 0 ? void 0 : _b.contains(target)) && !(trigger === null || trigger === void 0 ? void 0 : trigger.contains(target))) {
135
+ onClose();
136
+ }
137
+ };
138
+ const onWindowChange = (event) => {
139
+ var _a;
140
+ if ((event === null || event === void 0 ? void 0 : event.target) instanceof Node && ((_a = menuRef.current) === null || _a === void 0 ? void 0 : _a.contains(event.target))) {
141
+ return;
142
+ }
143
+ onClose();
144
+ };
145
+ document.addEventListener('pointerdown', onOutsidePointerDown, true);
146
+ window.addEventListener('scroll', onWindowChange, true);
147
+ window.addEventListener('resize', onWindowChange);
148
+ return () => {
149
+ document.removeEventListener('pointerdown', onOutsidePointerDown, true);
150
+ window.removeEventListener('scroll', onWindowChange, true);
151
+ window.removeEventListener('resize', onWindowChange);
152
+ };
153
+ // eslint-disable-next-line react-hooks/exhaustive-deps
154
+ }, []);
155
+ if (!table.getColumn(column.key) || !container.current) {
156
+ return null;
157
+ }
158
+ const commit = (value) => {
159
+ var _a;
160
+ (_a = table.getColumn(column.key)) === null || _a === void 0 ? void 0 : _a.setFilterValue(value);
161
+ onClose(true);
162
+ };
163
+ const onKeyDown = (event) => {
164
+ if (event.key === 'Escape') {
165
+ event.stopPropagation();
166
+ onClose(true);
167
+ }
168
+ };
169
+ const filterType = (_a = column.filterType) !== null && _a !== void 0 ? _a : 'text';
170
+ const current = (_b = table.getColumn(column.key)) === null || _b === void 0 ? void 0 : _b.getFilterValue();
171
+ return reactDom.createPortal(jsxRuntime.jsx("div", { className: "data-grid-filter-menu", id: id, role: "dialog", "aria-label": labels.interpolate(labels$1.filterColumn, { column: (_c = column.label) !== null && _c !== void 0 ? _c : column.key }), ref: menuRef, style: { top: position.top, left }, onKeyDown: onKeyDown, children: filterType === 'select' ?
172
+ (jsxRuntime.jsx(SelectContent, { current: current, labels: labels$1, onApply: commit, values: values })) :
173
+ (jsxRuntime.jsx(ConditionsContent, { current: current, filterType: filterType, labels: labels$1, onApply: commit })) }), container.current);
174
+ };
175
+
176
+ exports.CDataGridFilterMenu = CDataGridFilterMenu;
177
+ //# sourceMappingURL=CDataGridFilterMenu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CDataGridFilterMenu.js","sources":["../../../src/CDataGridFilterMenu.tsx"],"sourcesContent":[null],"names":["FILTER_OPERATORS","VALUELESS_OPERATORS","_jsxs","_jsx","useState","useId","labels","useRef","useLayoutEffect","createPortal","interpolate"],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * --------------------------------------------------------------------------
3
+ * CoreUI PRO react-data-grid CDataGridHeader.tsx
4
+ * License (https://coreui.io/pro/license/)
5
+ * --------------------------------------------------------------------------
6
+ */
7
+ import type { Table } from '@tanstack/react-table';
8
+ import { type ReactNode, type RefObject } from 'react';
9
+ import type { ActiveCell } from './active-cell';
10
+ import { type MenuIcons } from './columns';
11
+ import type { CDataGridColumn, CDataGridColumnMenuBuilder, DataGridItem, DataGridLabels } from './types';
12
+ export interface CDataGridHeaderProps {
13
+ cellNavigation: boolean;
14
+ columnFilters: boolean;
15
+ columns: CDataGridColumn[];
16
+ draggable: boolean;
17
+ icons: MenuIcons & {
18
+ columnMenu: ReactNode;
19
+ filter: ReactNode;
20
+ };
21
+ menuBuilder: CDataGridColumnMenuBuilder | null;
22
+ isFilterable: (column: CDataGridColumn) => boolean;
23
+ isResizable: (column: CDataGridColumn) => boolean;
24
+ isSortable: (column: CDataGridColumn) => boolean;
25
+ labels: DataGridLabels;
26
+ menu: boolean;
27
+ menuContainer: RefObject<HTMLDivElement | null>;
28
+ pinning: boolean;
29
+ resizable: boolean;
30
+ selectAll: boolean;
31
+ selection: boolean;
32
+ tabStop: ActiveCell | null;
33
+ table: Table<DataGridItem>;
34
+ visibility: boolean;
35
+ }
36
+ export declare const CDataGridHeader: ({ cellNavigation, columnFilters, columns, draggable, icons, menuBuilder, isFilterable, isResizable, isSortable, labels, menu, menuContainer, pinning, resizable, selectAll, selection, tabStop, table, visibility }: CDataGridHeaderProps) => import("react").JSX.Element;
@@ -0,0 +1,232 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var react = require('react');
5
+ var CDataGridFilterMenu = require('./CDataGridFilterMenu.js');
6
+ var CDataGridHeaderMenu = require('./CDataGridHeaderMenu.js');
7
+ var columns = require('./columns.js');
8
+ var labels = require('@coreui/data-grid/labels');
9
+ var pinning = require('./pinning.js');
10
+
11
+ const sortIconFor = (icons, sorted) => {
12
+ if (sorted === 'asc') {
13
+ return icons.sortAscending;
14
+ }
15
+ if (sorted === 'desc') {
16
+ return icons.sortDescending;
17
+ }
18
+ return icons.sortNeutral;
19
+ };
20
+ const CDataGridHeader = ({ cellNavigation, columnFilters, columns: columns$1, draggable, icons, menuBuilder, isFilterable, isResizable, isSortable, labels: labels$1, menu, menuContainer, pinning: pinning$1, resizable, selectAll, selection, tabStop, table, visibility }) => {
21
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
22
+ const dragColumn = react.useRef(null);
23
+ const [dragging, setDragging] = react.useState(null);
24
+ const [dropTarget, setDropTarget] = react.useState(null);
25
+ const [openMenu, setOpenMenu] = react.useState(null);
26
+ const [openFilterMenu, setOpenFilterMenu] = react.useState(null);
27
+ const menuId = react.useId();
28
+ const filterMenuId = react.useId();
29
+ // Columns with a custom filter UI own their filtering - no built-in button.
30
+ const hasFilterButton = (column) => columnFilters && isFilterable(column) && !column.filter;
31
+ // The filter row exists only for custom filter UIs.
32
+ const filterRowVisible = columnFilters && columns$1.some(column => column.filter && isFilterable(column));
33
+ const toggleFilterMenu = (column, event) => {
34
+ if ((openFilterMenu === null || openFilterMenu === void 0 ? void 0 : openFilterMenu.key) === column.key) {
35
+ setOpenFilterMenu(null);
36
+ return;
37
+ }
38
+ const root = menuContainer.current;
39
+ if (!root) {
40
+ return;
41
+ }
42
+ const rootRect = root.getBoundingClientRect();
43
+ const buttonRect = event.currentTarget.getBoundingClientRect();
44
+ setOpenFilterMenu({
45
+ key: column.key,
46
+ top: buttonRect.bottom - rootRect.top,
47
+ buttonRight: buttonRect.right - rootRect.left
48
+ });
49
+ };
50
+ const closeFilterMenu = (refocus = false) => {
51
+ var _a, _b;
52
+ if (refocus && openFilterMenu) {
53
+ (_b = (_a = menuContainer.current) === null || _a === void 0 ? void 0 : _a.querySelector(`button[data-coreui-filter="${openFilterMenu.key}"]`)) === null || _b === void 0 ? void 0 : _b.focus();
54
+ }
55
+ setOpenFilterMenu(null);
56
+ };
57
+ const hasMenu = (column) => {
58
+ if (!menu) {
59
+ return false;
60
+ }
61
+ // A builder can add items regardless of enabled features, so ask it directly.
62
+ if (menuBuilder) {
63
+ return (columns.buildMenuActions({
64
+ builder: menuBuilder,
65
+ column,
66
+ icons,
67
+ labels: labels$1,
68
+ ordering: draggable,
69
+ pinning: pinning$1,
70
+ sortable: isSortable(column),
71
+ table,
72
+ visibility
73
+ }).length > 0);
74
+ }
75
+ return (isSortable(column) ||
76
+ pinning$1 ||
77
+ (visibility && column.hideable !== false) ||
78
+ (draggable && column.movable !== false));
79
+ };
80
+ const toggleMenu = (column, event) => {
81
+ if ((openMenu === null || openMenu === void 0 ? void 0 : openMenu.key) === column.key) {
82
+ setOpenMenu(null);
83
+ return;
84
+ }
85
+ const root = menuContainer.current;
86
+ if (!root) {
87
+ return;
88
+ }
89
+ const rootRect = root.getBoundingClientRect();
90
+ const buttonRect = event.currentTarget.getBoundingClientRect();
91
+ setOpenMenu({
92
+ key: column.key,
93
+ top: buttonRect.bottom - rootRect.top,
94
+ buttonRight: buttonRect.right - rootRect.left
95
+ });
96
+ };
97
+ const closeMenu = (refocus = false) => {
98
+ var _a, _b;
99
+ if (refocus && openMenu) {
100
+ (_b = (_a = menuContainer.current) === null || _a === void 0 ? void 0 : _a.querySelector(`button[data-coreui-menu="${openMenu.key}"]`)) === null || _b === void 0 ? void 0 : _b.focus();
101
+ }
102
+ setOpenMenu(null);
103
+ };
104
+ const visible = columns.visibleColumns(table, columns$1);
105
+ const menuColumn = openMenu ?
106
+ (_b = (_a = visible.find(column => column.key === openMenu.key)) !== null && _a !== void 0 ? _a : columns$1.find(column => column.key === openMenu.key)) !== null && _b !== void 0 ? _b : null :
107
+ null;
108
+ const filterMenuColumn = openFilterMenu ?
109
+ (_d = (_c = visible.find(column => column.key === openFilterMenu.key)) !== null && _c !== void 0 ? _c : columns$1.find(column => column.key === openFilterMenu.key)) !== null && _d !== void 0 ? _d : null :
110
+ null;
111
+ const leftColumns = pinning$1 ? table.getLeftLeafColumns().filter(column => column.getIsVisible()) : [];
112
+ const rightColumns = pinning$1 ? table.getRightLeafColumns().filter(column => column.getIsVisible()) : [];
113
+ const selectPinned = pinning$1 && selection && leftColumns.length > 0;
114
+ const pinnedEdges = { lastLeft: (_f = (_e = leftColumns[leftColumns.length - 1]) === null || _e === void 0 ? void 0 : _e.id) !== null && _f !== void 0 ? _f : null, firstRight: (_h = (_g = rightColumns[0]) === null || _g === void 0 ? void 0 : _g.id) !== null && _h !== void 0 ? _h : null };
115
+ const selectPin = pinning.selectCellPinnedProps(selectPinned);
116
+ const widths = resizable || pinning$1;
117
+ const endColumnDrag = () => {
118
+ dragColumn.current = null;
119
+ setDragging(null);
120
+ setDropTarget(null);
121
+ };
122
+ // A column is draggable only when reordering is on and its pinned region holds
123
+ // another movable column to swap with - reordering never crosses a pinning
124
+ // boundary, so a column alone in its region has no valid target.
125
+ const regionOf = (key) => { var _a; return ((_a = table.getColumn(key)) === null || _a === void 0 ? void 0 : _a.getIsPinned()) || 'center'; };
126
+ const movablePerRegion = new Map();
127
+ if (draggable) {
128
+ for (const column of visible) {
129
+ if (column.movable !== false) {
130
+ const region = regionOf(column.key);
131
+ movablePerRegion.set(region, ((_j = movablePerRegion.get(region)) !== null && _j !== void 0 ? _j : 0) + 1);
132
+ }
133
+ }
134
+ }
135
+ const isColumnDraggable = (column) => { var _a; return draggable && column.movable !== false && ((_a = movablePerRegion.get(regionOf(column.key))) !== null && _a !== void 0 ? _a : 0) > 1; };
136
+ const dragHandlers = (column) => isColumnDraggable(column) ?
137
+ {
138
+ draggable: true,
139
+ 'data-coreui-draggable': '',
140
+ onDragStart(event) {
141
+ var _a, _b;
142
+ // A drag started from the resize handle is a resize, not a reorder.
143
+ // The handle's mousedown is preventDefault'd so the browser never
144
+ // starts a drag there; this ancestry check is a secondary guard.
145
+ if ((_b = (_a = event.target).closest) === null || _b === void 0 ? void 0 : _b.call(_a, '[data-coreui-resizer]')) {
146
+ event.preventDefault();
147
+ return;
148
+ }
149
+ dragColumn.current = column.key;
150
+ setDragging(column.key);
151
+ if (event.dataTransfer) {
152
+ event.dataTransfer.effectAllowed = 'move';
153
+ event.dataTransfer.setData('text/plain', column.key);
154
+ }
155
+ },
156
+ onDragOver(event) {
157
+ const sourceKey = dragColumn.current;
158
+ // A drop is only valid within the drag source's pinned region; leaving
159
+ // other targets un-prevented shows the browser's no-drop cursor there.
160
+ if (!sourceKey || sourceKey === column.key || regionOf(sourceKey) !== regionOf(column.key)) {
161
+ return;
162
+ }
163
+ event.preventDefault();
164
+ setDropTarget(column.key);
165
+ },
166
+ onDragLeave() {
167
+ setDropTarget(current => (current === column.key ? null : current));
168
+ },
169
+ onDrop(event) {
170
+ event.preventDefault();
171
+ const sourceKey = dragColumn.current;
172
+ endColumnDrag();
173
+ if (sourceKey) {
174
+ columns.reorderColumn(table, sourceKey, column.key);
175
+ }
176
+ },
177
+ onDragEnd: endColumnDrag
178
+ } :
179
+ {};
180
+ const navOffset = selection ? 1 : 0;
181
+ return (jsxRuntime.jsxs("thead", { className: "data-grid-header", children: [jsxRuntime.jsxs("tr", { ...(cellNavigation && { role: 'row' }), children: [selection && (jsxRuntime.jsx("th", { className: `data-grid-select-cell${selectPin.className ? ` ${selectPin.className}` : ''}`, scope: "col", style: selectPin.style, ...(cellNavigation && { role: 'columnheader', 'aria-colindex': 1 }), children: selectAll && (jsxRuntime.jsx("input", { type: "checkbox", className: "form-check-input", "aria-label": labels$1.selectAllRows, checked: table.getIsAllRowsSelected(), "data-coreui-select-all": "", onChange: event => table.toggleAllRowsSelected(event.target.checked), ref: element => {
182
+ if (element) {
183
+ element.indeterminate = table.getIsSomeRowsSelected();
184
+ }
185
+ }, ...(cellNavigation && { tabIndex: -1 }) })) })), visible.map((column, navIndex) => {
186
+ var _a, _b, _c, _d, _e, _f, _g;
187
+ const tableColumn = table.getColumn(column.key);
188
+ const sorted = tableColumn === null || tableColumn === void 0 ? void 0 : tableColumn.getIsSorted();
189
+ const sortDirection = sorted ? (sorted === 'desc' ? 'descending' : 'ascending') : undefined;
190
+ const sortable = isSortable(column);
191
+ const header = widths ?
192
+ (_a = table.getHeaderGroups()[0]) === null || _a === void 0 ? void 0 : _a.headers.find(item => item.column.id === column.key) :
193
+ undefined;
194
+ const pin = pinning$1 && tableColumn ? pinning.pinnedColumnProps(tableColumn, selectPinned, pinnedEdges) : {};
195
+ const style = {
196
+ ...column.style,
197
+ ...(column.width !== undefined && { width: column.width }),
198
+ ...(header && { width: header.getSize() }),
199
+ ...pin.style
200
+ };
201
+ const className = [
202
+ sortable && 'data-grid-sortable',
203
+ pin.className,
204
+ dragging === column.key && 'data-grid-dragging',
205
+ dropTarget === column.key && 'data-grid-drop-target'
206
+ ]
207
+ .filter(Boolean)
208
+ .join(' ');
209
+ return (jsxRuntime.jsxs("th", { scope: "col", className: className === '' ? undefined : className, style: style, "data-coreui-column": column.key, "aria-sort": sortDirection, ...(cellNavigation && {
210
+ role: 'columnheader',
211
+ 'aria-colindex': navOffset + navIndex + 1,
212
+ tabIndex: tabStop !== null && tabStop.rowIndex === -1 && tabStop.columnId === column.key ? 0 : -1
213
+ }), ...dragHandlers(column), children: [jsxRuntime.jsxs("div", { className: "data-grid-header-cell", children: [sortable ?
214
+ (jsxRuntime.jsxs("button", { type: "button", className: "data-grid-sort-button", onClick: tableColumn === null || tableColumn === void 0 ? void 0 : tableColumn.getToggleSortingHandler(), ...(cellNavigation && { tabIndex: -1 }), children: [(_b = column.label) !== null && _b !== void 0 ? _b : column.key, jsxRuntime.jsx("span", { className: "data-grid-sort-icon", "aria-hidden": "true", "data-coreui-sort": sortDirection !== null && sortDirection !== void 0 ? sortDirection : 'neutral', children: sortIconFor(icons, sorted) })] })) :
215
+ (jsxRuntime.jsx("span", { className: "data-grid-header-label", children: (_c = column.label) !== null && _c !== void 0 ? _c : column.key })), hasFilterButton(column) && (jsxRuntime.jsx("button", { type: "button", className: `btn btn-ghost btn-sm data-grid-filter-button${table.getState().columnFilters.some(filter => filter.id === column.key) ?
216
+ ' data-grid-filter-button-filtered' :
217
+ ''}`, "aria-haspopup": "dialog", "aria-expanded": (openFilterMenu === null || openFilterMenu === void 0 ? void 0 : openFilterMenu.key) === column.key, "aria-controls": (openFilterMenu === null || openFilterMenu === void 0 ? void 0 : openFilterMenu.key) === column.key ? filterMenuId : undefined, "aria-label": labels.interpolate(labels$1.filterColumn, { column: (_d = column.label) !== null && _d !== void 0 ? _d : column.key }), "data-coreui-tooltip": labels.interpolate(labels$1.filterColumn, { column: (_e = column.label) !== null && _e !== void 0 ? _e : column.key }), "data-coreui-filter": column.key, onClick: event => toggleFilterMenu(column, event), ...(cellNavigation && { tabIndex: -1 }), children: icons.filter })), hasMenu(column) && (jsxRuntime.jsx("button", { type: "button", className: "btn btn-ghost btn-sm data-grid-menu-button", "aria-haspopup": "menu", "aria-expanded": (openMenu === null || openMenu === void 0 ? void 0 : openMenu.key) === column.key, "aria-controls": (openMenu === null || openMenu === void 0 ? void 0 : openMenu.key) === column.key ? menuId : undefined, "aria-label": labels.interpolate(labels$1.columnMenu, { column: (_f = column.label) !== null && _f !== void 0 ? _f : column.key }), "data-coreui-tooltip": labels.interpolate(labels$1.columnMenu, { column: (_g = column.label) !== null && _g !== void 0 ? _g : column.key }), "data-coreui-menu": column.key, onClick: event => toggleMenu(column, event), ...(cellNavigation && { tabIndex: -1 }), children: icons.columnMenu }))] }), resizable && isResizable(column) && header && (jsxRuntime.jsx("span", { className: `data-grid-resizer${(tableColumn === null || tableColumn === void 0 ? void 0 : tableColumn.getIsResizing()) ? ' data-grid-resizer-active' : ''}`, "aria-hidden": "true", "data-coreui-resizer": "", onMouseDown: event => {
218
+ // Stop the browser from starting a native reorder drag from
219
+ // the draggable th when the press lands on the handle.
220
+ event.preventDefault();
221
+ header.getResizeHandler()(event);
222
+ }, onTouchStart: header.getResizeHandler() }))] }, column.key));
223
+ })] }), openMenu && menuColumn && (jsxRuntime.jsx(CDataGridHeaderMenu.CDataGridHeaderMenu, { builder: menuBuilder, column: menuColumn, container: menuContainer, icons: icons, id: menuId, labels: labels$1, onClose: closeMenu, ordering: draggable, pinning: pinning$1, position: openMenu, sortable: isSortable(menuColumn), table: table, visibility: visibility })), openFilterMenu && filterMenuColumn && (jsxRuntime.jsx(CDataGridFilterMenu.CDataGridFilterMenu, { column: filterMenuColumn, container: menuContainer, id: filterMenuId, labels: labels$1, onClose: closeFilterMenu, position: openFilterMenu, table: table })), filterRowVisible && (jsxRuntime.jsxs("tr", { className: "data-grid-filter-row", ...(cellNavigation && { role: 'row' }), children: [selection && jsxRuntime.jsx("th", { className: selectPin.className, style: selectPin.style }), visible.map(column => {
224
+ const tableColumn = table.getColumn(column.key);
225
+ const pin = pinning$1 && tableColumn ? pinning.pinnedColumnProps(tableColumn, selectPinned, pinnedEdges) : {};
226
+ const Filter = column.filter;
227
+ return (jsxRuntime.jsx("th", { className: pin.className, style: pin.style, children: isFilterable(column) && Filter && tableColumn && (jsxRuntime.jsx(Filter, { column: tableColumn, table: table, labels: labels$1 })) }, column.key));
228
+ })] }))] }));
229
+ };
230
+
231
+ exports.CDataGridHeader = CDataGridHeader;
232
+ //# sourceMappingURL=CDataGridHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CDataGridHeader.js","sources":["../../../src/CDataGridHeader.tsx"],"sourcesContent":[null],"names":["columns","labels","pinning","useRef","useState","useId","buildMenuActions","visibleColumns","selectCellPinnedProps","reorderColumn","_jsxs","_jsx","pinnedColumnProps","interpolate","CDataGridHeaderMenu","CDataGridFilterMenu"],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * --------------------------------------------------------------------------
3
+ * CoreUI PRO react-data-grid CDataGridHeaderMenu.tsx
4
+ * License (https://coreui.io/pro/license/)
5
+ * --------------------------------------------------------------------------
6
+ */
7
+ import type { Table } from '@tanstack/react-table';
8
+ import { type RefObject } from 'react';
9
+ import { type MenuIcons } from './columns';
10
+ import type { CDataGridColumn, CDataGridColumnMenuBuilder, DataGridItem, DataGridLabels } from './types';
11
+ export interface CDataGridHeaderMenuProps {
12
+ builder: CDataGridColumnMenuBuilder | null;
13
+ column: CDataGridColumn;
14
+ container: RefObject<HTMLDivElement | null>;
15
+ icons: MenuIcons;
16
+ id: string;
17
+ labels: DataGridLabels;
18
+ onClose: (refocus?: boolean) => void;
19
+ ordering: boolean;
20
+ pinning: boolean;
21
+ position: {
22
+ buttonRight: number;
23
+ top: number;
24
+ };
25
+ sortable: boolean;
26
+ table: Table<DataGridItem>;
27
+ visibility: boolean;
28
+ }
29
+ export declare const CDataGridHeaderMenu: ({ builder, column, container, icons, id, labels, onClose, ordering, pinning, position, sortable, table, visibility }: CDataGridHeaderMenuProps) => import("react").ReactPortal | null;