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