@neo4j-ndl/react 2.0.0-alpha-e609471 → 2.0.0-alpha-5e223d7

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 (194) hide show
  1. package/lib/NOTICE.txt +2 -0
  2. package/lib/cjs/accordion/Accordion.js +6 -5
  3. package/lib/cjs/accordion/Accordion.js.map +1 -1
  4. package/lib/cjs/banner/Banner.js +9 -6
  5. package/lib/cjs/banner/Banner.js.map +1 -1
  6. package/lib/cjs/checkbox/Checkbox.js.map +1 -1
  7. package/lib/cjs/context-menu/ContextMenu.js +30 -16
  8. package/lib/cjs/context-menu/ContextMenu.js.map +1 -1
  9. package/lib/cjs/data-grid/Components.js +364 -0
  10. package/lib/cjs/data-grid/Components.js.map +1 -0
  11. package/lib/cjs/data-grid/DataGrid.js +98 -0
  12. package/lib/cjs/data-grid/DataGrid.js.map +1 -0
  13. package/lib/cjs/{table-deprecated/hooks/hookCallbackTypes.js → data-grid/DataGridContext.js} +12 -1
  14. package/lib/cjs/data-grid/DataGridContext.js.map +1 -0
  15. package/lib/cjs/data-grid/helpers.js +94 -0
  16. package/lib/cjs/data-grid/helpers.js.map +1 -0
  17. package/lib/cjs/{table-deprecated → data-grid}/index.js +19 -6
  18. package/lib/cjs/data-grid/index.js.map +1 -0
  19. package/lib/cjs/dialog/Dialog.js +4 -3
  20. package/lib/cjs/dialog/Dialog.js.map +1 -1
  21. package/lib/cjs/dropdown/Overrides.js +1 -1
  22. package/lib/cjs/dropdown/Overrides.js.map +1 -1
  23. package/lib/cjs/{drag-and-drop/DragAndDrop.js → dropzone/Dropzone.js} +7 -14
  24. package/lib/cjs/dropzone/Dropzone.js.map +1 -0
  25. package/lib/cjs/dropzone/icons/CSV-file.js.map +1 -0
  26. package/lib/cjs/dropzone/icons/Cloud.js +27 -0
  27. package/lib/cjs/dropzone/icons/Cloud.js.map +1 -0
  28. package/lib/cjs/{drag-and-drop → dropzone}/icons/File.js +1 -1
  29. package/lib/cjs/dropzone/icons/File.js.map +1 -0
  30. package/lib/cjs/{drag-and-drop → dropzone}/icons/InvalidFile.js +1 -1
  31. package/lib/cjs/dropzone/icons/InvalidFile.js.map +1 -0
  32. package/lib/cjs/{drag-and-drop → dropzone}/index.js +3 -3
  33. package/lib/cjs/dropzone/index.js.map +1 -0
  34. package/lib/cjs/index.js +4 -3
  35. package/lib/cjs/index.js.map +1 -1
  36. package/lib/cjs/modal/Modal.js +5 -18
  37. package/lib/cjs/modal/Modal.js.map +1 -1
  38. package/lib/cjs/popover/Popover.js +7 -3
  39. package/lib/cjs/popover/Popover.js.map +1 -1
  40. package/lib/cjs/{view-selector/ViewSelector.js → segmented-control/SegmentedControl.js} +20 -13
  41. package/lib/cjs/segmented-control/SegmentedControl.js.map +1 -0
  42. package/lib/cjs/{table-deprecated/hooks → segmented-control}/index.js +1 -3
  43. package/lib/cjs/segmented-control/index.js.map +1 -0
  44. package/lib/cjs/side-navigation/SideNavigation.js +17 -31
  45. package/lib/cjs/side-navigation/SideNavigation.js.map +1 -1
  46. package/lib/cjs/table/Components.js +1 -3
  47. package/lib/cjs/table/Components.js.map +1 -1
  48. package/lib/cjs/table/Table.js +8 -0
  49. package/lib/cjs/table/Table.js.map +1 -1
  50. package/lib/cjs/tabs/Tabs.js +15 -4
  51. package/lib/cjs/tabs/Tabs.js.map +1 -1
  52. package/lib/cjs/theme/ThemeProvider.js +99 -0
  53. package/lib/cjs/theme/ThemeProvider.js.map +1 -0
  54. package/lib/cjs/{view-selector → theme}/index.js +1 -1
  55. package/lib/cjs/theme/index.js.map +1 -0
  56. package/lib/cjs/tip/Tip.js +2 -3
  57. package/lib/cjs/tip/Tip.js.map +1 -1
  58. package/lib/esm/accordion/Accordion.js +7 -8
  59. package/lib/esm/accordion/Accordion.js.map +1 -1
  60. package/lib/esm/banner/Banner.js +8 -4
  61. package/lib/esm/banner/Banner.js.map +1 -1
  62. package/lib/esm/checkbox/Checkbox.js.map +1 -1
  63. package/lib/esm/context-menu/ContextMenu.js +29 -15
  64. package/lib/esm/context-menu/ContextMenu.js.map +1 -1
  65. package/lib/esm/data-grid/Components.js +339 -0
  66. package/lib/esm/data-grid/Components.js.map +1 -0
  67. package/lib/esm/data-grid/DataGrid.js +92 -0
  68. package/lib/esm/data-grid/DataGrid.js.map +1 -0
  69. package/lib/esm/{drag-and-drop/index.js → data-grid/DataGridContext.js} +10 -2
  70. package/lib/esm/data-grid/DataGridContext.js.map +1 -0
  71. package/lib/esm/data-grid/helpers.js +88 -0
  72. package/lib/esm/data-grid/helpers.js.map +1 -0
  73. package/lib/esm/{table-deprecated → data-grid}/index.js +4 -2
  74. package/lib/esm/data-grid/index.js.map +1 -0
  75. package/lib/esm/dialog/Dialog.js +4 -3
  76. package/lib/esm/dialog/Dialog.js.map +1 -1
  77. package/lib/esm/dropdown/Overrides.js +1 -1
  78. package/lib/esm/dropdown/Overrides.js.map +1 -1
  79. package/lib/esm/{drag-and-drop/DragAndDrop.js → dropzone/Dropzone.js} +7 -14
  80. package/lib/esm/dropzone/Dropzone.js.map +1 -0
  81. package/lib/esm/dropzone/icons/CSV-file.js.map +1 -0
  82. package/lib/esm/dropzone/icons/Cloud.js +25 -0
  83. package/lib/esm/dropzone/icons/Cloud.js.map +1 -0
  84. package/lib/esm/dropzone/icons/File.js +25 -0
  85. package/lib/esm/dropzone/icons/File.js.map +1 -0
  86. package/lib/esm/dropzone/icons/InvalidFile.js +25 -0
  87. package/lib/esm/dropzone/icons/InvalidFile.js.map +1 -0
  88. package/lib/{types/table-deprecated/index.d.ts → esm/dropzone/index.js} +2 -2
  89. package/lib/esm/dropzone/index.js.map +1 -0
  90. package/lib/esm/index.js +4 -3
  91. package/lib/esm/index.js.map +1 -1
  92. package/lib/esm/modal/Modal.js +6 -18
  93. package/lib/esm/modal/Modal.js.map +1 -1
  94. package/lib/esm/popover/Popover.js +7 -3
  95. package/lib/esm/popover/Popover.js.map +1 -1
  96. package/lib/esm/{view-selector/ViewSelector.js → segmented-control/SegmentedControl.js} +20 -13
  97. package/lib/esm/segmented-control/SegmentedControl.js.map +1 -0
  98. package/lib/esm/segmented-control/index.js +22 -0
  99. package/lib/esm/segmented-control/index.js.map +1 -0
  100. package/lib/esm/side-navigation/SideNavigation.js +16 -7
  101. package/lib/esm/side-navigation/SideNavigation.js.map +1 -1
  102. package/lib/esm/table/Components.js +1 -3
  103. package/lib/esm/table/Components.js.map +1 -1
  104. package/lib/esm/table/Table.js +8 -0
  105. package/lib/esm/table/Table.js.map +1 -1
  106. package/lib/esm/tabs/Tabs.js +15 -4
  107. package/lib/esm/tabs/Tabs.js.map +1 -1
  108. package/lib/esm/theme/ThemeProvider.js +68 -0
  109. package/lib/esm/theme/ThemeProvider.js.map +1 -0
  110. package/lib/esm/{view-selector → theme}/index.js +1 -1
  111. package/lib/esm/theme/index.js.map +1 -0
  112. package/lib/esm/tip/Tip.js +2 -3
  113. package/lib/esm/tip/Tip.js.map +1 -1
  114. package/lib/types/accordion/Accordion.d.ts +7 -6
  115. package/lib/types/banner/Banner.d.ts +9 -5
  116. package/lib/types/context-menu/ContextMenu.d.ts +16 -12
  117. package/lib/types/data-grid/Components.d.ts +94 -0
  118. package/lib/types/data-grid/DataGrid.d.ts +90 -0
  119. package/lib/types/data-grid/DataGridContext.d.ts +62 -0
  120. package/lib/types/{table-deprecated → data-grid}/helpers.d.ts +15 -21
  121. package/lib/types/{table-deprecated/hooks → data-grid}/index.d.ts +5 -3
  122. package/lib/types/dialog/Dialog.d.ts +1 -1
  123. package/lib/types/{drag-and-drop/DragAndDrop.d.ts → dropzone/Dropzone.d.ts} +4 -11
  124. package/lib/types/{drag-and-drop → dropzone}/index.d.ts +1 -1
  125. package/lib/types/helpers/forwardRef.d.ts +6 -0
  126. package/lib/types/index.d.ts +4 -3
  127. package/lib/types/modal/Modal.d.ts +13 -6
  128. package/lib/types/popover/Popover.d.ts +8 -2
  129. package/lib/types/{view-selector/ViewSelector.d.ts → segmented-control/SegmentedControl.d.ts} +13 -19
  130. package/lib/{esm/table-deprecated/hooks/hookCallbackTypes.js → types/segmented-control/index.d.ts} +1 -2
  131. package/lib/types/side-navigation/SideNavigation.d.ts +10 -9
  132. package/lib/types/table/Table.d.ts +4 -0
  133. package/lib/types/tabs/Tabs.d.ts +5 -4
  134. package/lib/types/theme/ThemeProvider.d.ts +54 -0
  135. package/lib/types/{view-selector → theme}/index.d.ts +1 -1
  136. package/package.json +2 -2
  137. package/lib/cjs/drag-and-drop/DragAndDrop.js.map +0 -1
  138. package/lib/cjs/drag-and-drop/icons/CSV-file.js.map +0 -1
  139. package/lib/cjs/drag-and-drop/icons/Cloud.js +0 -27
  140. package/lib/cjs/drag-and-drop/icons/Cloud.js.map +0 -1
  141. package/lib/cjs/drag-and-drop/icons/File.js.map +0 -1
  142. package/lib/cjs/drag-and-drop/icons/InvalidFile.js.map +0 -1
  143. package/lib/cjs/drag-and-drop/index.js.map +0 -1
  144. package/lib/cjs/table-deprecated/Table.js +0 -157
  145. package/lib/cjs/table-deprecated/Table.js.map +0 -1
  146. package/lib/cjs/table-deprecated/TableNavigation.js +0 -51
  147. package/lib/cjs/table-deprecated/TableNavigation.js.map +0 -1
  148. package/lib/cjs/table-deprecated/helpers.js +0 -123
  149. package/lib/cjs/table-deprecated/helpers.js.map +0 -1
  150. package/lib/cjs/table-deprecated/hooks/hookCallbackTypes.js.map +0 -1
  151. package/lib/cjs/table-deprecated/hooks/index.js.map +0 -1
  152. package/lib/cjs/table-deprecated/hooks/useMultiRowSelect.js +0 -84
  153. package/lib/cjs/table-deprecated/hooks/useMultiRowSelect.js.map +0 -1
  154. package/lib/cjs/table-deprecated/hooks/useSingleRowSelect.js +0 -61
  155. package/lib/cjs/table-deprecated/hooks/useSingleRowSelect.js.map +0 -1
  156. package/lib/cjs/table-deprecated/index.js.map +0 -1
  157. package/lib/cjs/view-selector/ViewSelector.js.map +0 -1
  158. package/lib/cjs/view-selector/index.js.map +0 -1
  159. package/lib/esm/drag-and-drop/DragAndDrop.js.map +0 -1
  160. package/lib/esm/drag-and-drop/icons/CSV-file.js.map +0 -1
  161. package/lib/esm/drag-and-drop/icons/Cloud.js +0 -25
  162. package/lib/esm/drag-and-drop/icons/Cloud.js.map +0 -1
  163. package/lib/esm/drag-and-drop/icons/File.js +0 -25
  164. package/lib/esm/drag-and-drop/icons/File.js.map +0 -1
  165. package/lib/esm/drag-and-drop/icons/InvalidFile.js +0 -25
  166. package/lib/esm/drag-and-drop/icons/InvalidFile.js.map +0 -1
  167. package/lib/esm/drag-and-drop/index.js.map +0 -1
  168. package/lib/esm/table-deprecated/Table.js +0 -150
  169. package/lib/esm/table-deprecated/Table.js.map +0 -1
  170. package/lib/esm/table-deprecated/TableNavigation.js +0 -44
  171. package/lib/esm/table-deprecated/TableNavigation.js.map +0 -1
  172. package/lib/esm/table-deprecated/helpers.js +0 -116
  173. package/lib/esm/table-deprecated/helpers.js.map +0 -1
  174. package/lib/esm/table-deprecated/hooks/hookCallbackTypes.js.map +0 -1
  175. package/lib/esm/table-deprecated/hooks/index.js +0 -24
  176. package/lib/esm/table-deprecated/hooks/index.js.map +0 -1
  177. package/lib/esm/table-deprecated/hooks/useMultiRowSelect.js +0 -82
  178. package/lib/esm/table-deprecated/hooks/useMultiRowSelect.js.map +0 -1
  179. package/lib/esm/table-deprecated/hooks/useSingleRowSelect.js +0 -57
  180. package/lib/esm/table-deprecated/hooks/useSingleRowSelect.js.map +0 -1
  181. package/lib/esm/table-deprecated/index.js.map +0 -1
  182. package/lib/esm/view-selector/ViewSelector.js.map +0 -1
  183. package/lib/esm/view-selector/index.js.map +0 -1
  184. package/lib/types/table-deprecated/Table.d.ts +0 -76
  185. package/lib/types/table-deprecated/TableNavigation.d.ts +0 -38
  186. package/lib/types/table-deprecated/hooks/hookCallbackTypes.d.ts +0 -27
  187. package/lib/types/table-deprecated/hooks/useMultiRowSelect.d.ts +0 -42
  188. package/lib/types/table-deprecated/hooks/useSingleRowSelect.d.ts +0 -37
  189. /package/lib/cjs/{drag-and-drop → dropzone}/icons/CSV-file.js +0 -0
  190. /package/lib/esm/{drag-and-drop → dropzone}/icons/CSV-file.js +0 -0
  191. /package/lib/types/{drag-and-drop → dropzone}/icons/CSV-file.d.ts +0 -0
  192. /package/lib/types/{drag-and-drop → dropzone}/icons/Cloud.d.ts +0 -0
  193. /package/lib/types/{drag-and-drop → dropzone}/icons/File.d.ts +0 -0
  194. /package/lib/types/{drag-and-drop → dropzone}/icons/InvalidFile.d.ts +0 -0
@@ -0,0 +1,364 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Scrollable = exports.LoadingPlaceholder = exports.NoDataPlaceholder = exports.PaginationNumericButton = exports.PaginationArrowButton = exports.PaginationNumericButtons = exports.Pagination = exports.RowsPerPage = exports.TableResults = exports.Navigation = exports.HeaderCell = exports.BodyRow = exports.BodyCell = exports.Body = exports.Header = exports.ResizingBar = exports.ColumnControls = exports.RowActionCell = exports.ActionButton = exports.DEFAULT_SORT_ACTIONS = void 0;
7
+ const react_1 = require("react");
8
+ const jsx_runtime_1 = require("react/jsx-runtime");
9
+ /**
10
+ *
11
+ * Copyright (c) "Neo4j"
12
+ * Neo4j Sweden AB [http://neo4j.com]
13
+ *
14
+ * This file is part of Neo4j.
15
+ *
16
+ * Neo4j is free software: you can redistribute it and/or modify
17
+ * it under the terms of the GNU General Public License as published by
18
+ * the Free Software Foundation, either version 3 of the License, or
19
+ * (at your option) any later version.
20
+ *
21
+ * This program is distributed in the hope that it will be useful,
22
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
23
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24
+ * GNU General Public License for more details.
25
+ *
26
+ * You should have received a copy of the GNU General Public License
27
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
28
+ */
29
+ const react_table_1 = require("@tanstack/react-table");
30
+ const classnames_1 = __importDefault(require("classnames"));
31
+ const react_2 = require("react");
32
+ const icons_1 = require("../icons");
33
+ const loading_spinner_1 = require("../loading-spinner");
34
+ const helpers_1 = require("./helpers");
35
+ const DataGridContext_1 = require("./DataGridContext");
36
+ const button_1 = require("../button");
37
+ const context_menu_1 = require("../context-menu");
38
+ /** Table results per page, with the first option being the default */
39
+ const TABLE_RESULTS = {
40
+ DEFAULT: 10,
41
+ values: [10, 25, 50, 100],
42
+ };
43
+ const DEFAULT_SORT_ACTIONS = (cell) => ({
44
+ asc: {
45
+ title: 'Sort ascending',
46
+ icon: (0, jsx_runtime_1.jsx)(icons_1.BarsArrowUpIconOutline, {}),
47
+ onClick: () => cell.column.toggleSorting(false),
48
+ },
49
+ desc: {
50
+ title: 'Sort descending',
51
+ icon: (0, jsx_runtime_1.jsx)(icons_1.BarsArrowDownIconOutline, {}),
52
+ onClick: () => cell.column.toggleSorting(true),
53
+ },
54
+ default: {
55
+ title: 'Default sort',
56
+ icon: (0, jsx_runtime_1.jsx)(icons_1.Bars3CenterLeftIconOutline, {}),
57
+ onClick: () => cell.column.clearSorting(),
58
+ },
59
+ });
60
+ exports.DEFAULT_SORT_ACTIONS = DEFAULT_SORT_ACTIONS;
61
+ const ResizingBar = ({ header, children, innerProps, }) => {
62
+ const { className = undefined } = innerProps || {};
63
+ return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: children || ((0, jsx_runtime_1.jsx)("button", Object.assign({}, innerProps, { type: "button", className: "ndl-data-grid-resizer-wrapper", onMouseDown: header.getResizeHandler(), onTouchStart: header.getResizeHandler(), "aria-label": "resizing bar", children: (0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)('ndl-data-grid-resizer', className, {
64
+ 'ndl-data-grid-is-resizing': header.column.getIsResizing(),
65
+ }) }) }))) }));
66
+ };
67
+ exports.ResizingBar = ResizingBar;
68
+ const Scrollable = ({ children, innerProps }) => {
69
+ const { className } = innerProps || {};
70
+ return ((0, jsx_runtime_1.jsx)("div", Object.assign({}, innerProps, { className: (0, classnames_1.default)('ndl-data-grid-scrollable', className), children: children })));
71
+ };
72
+ exports.Scrollable = Scrollable;
73
+ const Header = ({ children, innerProps }) => {
74
+ const { tableProps, components } = (0, DataGridContext_1.useDataGridContext)();
75
+ const { getHeaderGroups, getState } = tableProps;
76
+ const { className = undefined } = innerProps || {};
77
+ return ((0, jsx_runtime_1.jsx)("div", Object.assign({}, innerProps, { role: "rowgroup", className: (0, classnames_1.default)('ndl-data-grid-thead', className, {
78
+ 'ndl-data-grid-is-resizing': getState().columnSizingInfo.isResizingColumn,
79
+ }), children: children || ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: getHeaderGroups().map((headerGroup) => ((0, jsx_runtime_1.jsx)("div", { className: "ndl-data-grid-tr", role: "row", children: headerGroup.headers.map((header) => components.HeaderCell && ((0, jsx_runtime_1.jsx)(components.HeaderCell, { cell: header }, header.id))) }, headerGroup.id))) })) })));
80
+ };
81
+ exports.Header = Header;
82
+ const ActionButton = ({ action, children, onClose, innerProps, }) => {
83
+ const { className } = innerProps || {};
84
+ const { onClick } = action;
85
+ const interceptedOnClick = (0, react_2.useCallback)((e) => {
86
+ const providedOnClick = onClick || (innerProps === null || innerProps === void 0 ? void 0 : innerProps.onClick);
87
+ if (typeof providedOnClick === 'function') {
88
+ providedOnClick(e);
89
+ }
90
+ onClose();
91
+ }, [innerProps === null || innerProps === void 0 ? void 0 : innerProps.onClick, onClick, onClose]);
92
+ // const commonProps: MenuItemProps = {
93
+ const commonProps = Object.assign(Object.assign(Object.assign({}, innerProps), action), { className: (0, classnames_1.default)('ndl-data-grid-column-action', className), onClick: interceptedOnClick });
94
+ return (0, jsx_runtime_1.jsx)(react_2.Fragment, { children: children || (0, jsx_runtime_1.jsx)(context_menu_1.Menu.Item, Object.assign({}, commonProps)) });
95
+ };
96
+ exports.ActionButton = ActionButton;
97
+ const RowActionCell = ({ cell, innerProps, }) => {
98
+ var _a, _b;
99
+ const { components } = (0, DataGridContext_1.useDataGridContext)();
100
+ const actionsButtonRef = (0, react_2.useRef)(null);
101
+ const [actionsOpen, setActionsOpen] = (0, react_2.useState)(false);
102
+ if (!cell ||
103
+ !cell.column.columnDef.meta ||
104
+ typeof ((_b = (_a = cell.column.columnDef) === null || _a === void 0 ? void 0 : _a.meta) === null || _b === void 0 ? void 0 : _b.isActionCell) !== 'object')
105
+ return null;
106
+ const { actions, onOpenChange } = cell.column.columnDef.meta.isActionCell;
107
+ return ((0, jsx_runtime_1.jsxs)(react_2.Fragment, { children: [(0, jsx_runtime_1.jsx)(button_1.IconButton, Object.assign({ clean: true, size: "medium", "aria-label": `Row actions for row id: ${cell.row.id}`, ref: actionsButtonRef, active: actionsOpen, onClick: () => {
108
+ onOpenChange && onOpenChange(!actionsOpen);
109
+ setActionsOpen(!actionsOpen);
110
+ } }, innerProps, { children: (0, jsx_runtime_1.jsx)(icons_1.ChevronDownIconSolid, {}) })), (0, jsx_runtime_1.jsx)(context_menu_1.Menu, { open: actionsOpen, anchorEl: actionsButtonRef.current, onClose: () => {
111
+ onOpenChange && onOpenChange(false);
112
+ setActionsOpen(false);
113
+ }, anchorOrigin: {
114
+ vertical: 'bottom',
115
+ horizontal: 'left',
116
+ }, transformOrigin: {
117
+ horizontal: 'right',
118
+ vertical: 'top',
119
+ }, children: actions.map((action, i) => components.ActionButton && ((0, jsx_runtime_1.jsx)(components.ActionButton, { action: action, onClose: () => setActionsOpen(false) }, `${cell.column.id}-action-${i}`))) })] }));
120
+ };
121
+ exports.RowActionCell = RowActionCell;
122
+ const ColumnControls = ({ cell, children, innerProps, }) => {
123
+ var _a;
124
+ const { className } = innerProps || {};
125
+ const { components } = (0, DataGridContext_1.useDataGridContext)();
126
+ const sort = cell.column.getIsSorted();
127
+ const canSort = cell.column.getCanSort();
128
+ const { defaultSortingActions = true, actions } = ((_a = cell.column.columnDef.meta) === null || _a === void 0 ? void 0 : _a.columnActions) || {};
129
+ const sortingActions = (0, react_2.useMemo)(() => {
130
+ if (canSort) {
131
+ if (sort !== 'asc' && sort !== 'desc') {
132
+ return [
133
+ (0, exports.DEFAULT_SORT_ACTIONS)(cell).asc,
134
+ (0, exports.DEFAULT_SORT_ACTIONS)(cell).desc,
135
+ ];
136
+ }
137
+ if (sort === 'asc') {
138
+ return [
139
+ (0, exports.DEFAULT_SORT_ACTIONS)(cell).default,
140
+ (0, exports.DEFAULT_SORT_ACTIONS)(cell).desc,
141
+ ];
142
+ }
143
+ if (sort === 'desc') {
144
+ return [
145
+ (0, exports.DEFAULT_SORT_ACTIONS)(cell).default,
146
+ (0, exports.DEFAULT_SORT_ACTIONS)(cell).asc,
147
+ ];
148
+ }
149
+ }
150
+ // Default case
151
+ return [];
152
+ }, [sort, cell, canSort]);
153
+ const newActions = [
154
+ ...(defaultSortingActions ? sortingActions : []),
155
+ ...(actions !== null && actions !== void 0 ? actions : []),
156
+ ];
157
+ const actionsButtonRef = (0, react_2.useRef)(null);
158
+ const [actionsOpen, setActionsOpen] = (0, react_2.useState)(false);
159
+ if (!actions || actions.length === 0)
160
+ return null;
161
+ return newActions.length > 0 ? ((0, jsx_runtime_1.jsx)("div", Object.assign({}, innerProps, { className: (0, classnames_1.default)('ndl-header-action-group', className), style: {
162
+ zIndex: 100000,
163
+ position: 'relative',
164
+ right: '12px',
165
+ }, children: children || ((0, jsx_runtime_1.jsxs)(react_2.Fragment, { children: [(0, jsx_runtime_1.jsx)(button_1.IconButton, { clean: true, size: "medium", "arial-label": `Column actions for ${cell.column.id} column`, ref: actionsButtonRef, active: actionsOpen, onClick: () => {
166
+ setActionsOpen(!actionsOpen);
167
+ }, children: (0, jsx_runtime_1.jsx)(icons_1.ChevronDownIconSolid, {}) }), (0, jsx_runtime_1.jsx)(context_menu_1.Menu, { open: actionsOpen, anchorEl: actionsButtonRef.current, onClose: () => setActionsOpen(false), anchorOrigin: {
168
+ vertical: 'bottom',
169
+ horizontal: 'center',
170
+ }, transformOrigin: {
171
+ horizontal: 'center',
172
+ vertical: 'top',
173
+ }, children: newActions.map((action, i) => components.ActionButton && ((0, jsx_runtime_1.jsx)(components.ActionButton, { action: action, onClose: () => setActionsOpen(false) }, `${cell.column.id}-action-${i}`))) })] })) }))) : null;
174
+ };
175
+ exports.ColumnControls = ColumnControls;
176
+ const HeaderCell = ({ cell, children, innerProps, }) => {
177
+ var _a;
178
+ const { components, resizable, tableProps } = (0, DataGridContext_1.useDataGridContext)();
179
+ const { className } = innerProps || {};
180
+ const sort = cell.column.getIsSorted();
181
+ const canSort = cell.column.getCanSort();
182
+ const ariaSortRole = (0, react_2.useMemo)(() => {
183
+ switch (sort) {
184
+ case 'asc':
185
+ return 'ascending';
186
+ case 'desc':
187
+ return 'descending';
188
+ default:
189
+ return 'none';
190
+ }
191
+ }, [sort]);
192
+ const Icon = (0, react_2.useMemo)(() => {
193
+ switch (sort) {
194
+ case 'asc':
195
+ return (0, jsx_runtime_1.jsx)(icons_1.BarsArrowUpIconOutline, { className: "ndl-header-icon" });
196
+ case 'desc':
197
+ return (0, jsx_runtime_1.jsx)(icons_1.BarsArrowDownIconOutline, { className: "ndl-header-icon" });
198
+ default:
199
+ return ((0, jsx_runtime_1.jsx)(icons_1.Bars3CenterLeftIconSolid, { className: "ndl-hoverable-indicator ndl-header-icon" }));
200
+ }
201
+ }, [sort]);
202
+ const ariaDescription = canSort
203
+ ? `Press ENTER or SPACE to sort column ${cell.column.id}`
204
+ : `Column id: ${cell.column.id}`;
205
+ const constrained = (0, helpers_1.isSizeConstrained)(cell.column.columnDef);
206
+ const ref = (0, react_2.useRef)(null);
207
+ const [grow, setGrow] = (0, react_2.useState)(true);
208
+ /**
209
+ * This part enables the auto sizing of the columns.
210
+ *
211
+ * On initial render we need to wait for the width to be
212
+ * calculated by the browser with `flex-grow: 1`, if the size is not
213
+ * constrained by the user.
214
+ * Then we update the table state with the new width to aligned
215
+ * with the one calculated by browser, for optimal user experience.
216
+ */
217
+ (0, react_2.useEffect)(() => {
218
+ var _a;
219
+ // The `flex-grow` property is modifying the
220
+ // width of the column, update this also in the table state
221
+ const { width } = ((_a = ref.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect()) || {};
222
+ if (width) {
223
+ // Update column sizing in table's state
224
+ tableProps.setState((prev) => (Object.assign(Object.assign({}, prev), { columnSizing: Object.assign(Object.assign({}, prev.columnSizing), { [cell.column.id]: width }) })));
225
+ // Disable flex grow, to avoid weird resizing behaviour
226
+ setGrow(false);
227
+ }
228
+ }, [tableProps, cell.column.id]);
229
+ const isActionColumn = typeof ((_a = cell.column.columnDef.meta) === null || _a === void 0 ? void 0 : _a.isActionCell) === 'object';
230
+ const Tag = canSort ? 'button' : 'div';
231
+ return ((0, jsx_runtime_1.jsx)("div", Object.assign({ tabIndex: -1, role: "columnheader" }, innerProps, { className: (0, classnames_1.default)('ndl-data-grid-th ndl-focusable-cell', className, {
232
+ 'ndl-data-grid-row-action': isActionColumn,
233
+ }), "aria-sort": ariaSortRole, style: {
234
+ width: isActionColumn ? 40 : cell.getSize(),
235
+ maxWidth: cell.column.columnDef.maxSize
236
+ ? `${cell.column.columnDef.maxSize}px`
237
+ : 'none',
238
+ flexGrow: !isActionColumn && !constrained && grow ? 1 : 0,
239
+ }, ref: ref, children: children || ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Tag, { className: "ndl-header-group", style: {
240
+ cursor: canSort ? 'pointer' : 'default',
241
+ }, tabIndex: canSort ? -1 : undefined, "aria-describedby": ariaDescription, onClick: () => canSort && cell.column.toggleSorting(), children: (0, jsx_runtime_1.jsxs)("div", { className: "ndl-header-cell", children: [cell.isPlaceholder
242
+ ? null
243
+ : (0, react_table_1.flexRender)(cell.column.columnDef.header, cell.getContext()), canSort && Icon] }) }), components.ColumnControls && ((0, jsx_runtime_1.jsx)(components.ColumnControls, { cell: cell })), resizable &&
244
+ cell.headerGroup.headers.length - 1 !== cell.index &&
245
+ cell.column.getCanResize() &&
246
+ components.ResizingBar && (0, jsx_runtime_1.jsx)(components.ResizingBar, { header: cell })] })) }), cell.id));
247
+ };
248
+ exports.HeaderCell = HeaderCell;
249
+ const Body = ({ children, innerProps }) => {
250
+ const { tableProps, components, loading } = (0, DataGridContext_1.useDataGridContext)();
251
+ const { getRowModel } = tableProps;
252
+ const { className } = innerProps || {};
253
+ return ((0, jsx_runtime_1.jsx)("div", Object.assign({}, innerProps, { className: (0, classnames_1.default)('ndl-data-grid-tbody', className), role: "rowgroup", "aria-busy": loading ? 'true' : 'false', children: children || ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [loading && components.LoadingPlaceholder && ((0, jsx_runtime_1.jsx)(components.LoadingPlaceholder, {})), !loading &&
254
+ getRowModel().rows.length === 0 &&
255
+ components.NoDataPlaceholder && (0, jsx_runtime_1.jsx)(components.NoDataPlaceholder, {}), !loading &&
256
+ getRowModel().rows.map((row, idx) => components.BodyRow && ((0, jsx_runtime_1.jsx)(components.BodyRow, { row: row }, `table-row-${idx}`)))] })) })));
257
+ };
258
+ exports.Body = Body;
259
+ const BodyCell = ({ cell, children, innerProps, }) => {
260
+ var _a;
261
+ const isResizing = cell.column.getIsResizing();
262
+ const { className } = innerProps || {};
263
+ const isActionColumn = typeof ((_a = cell.column.columnDef.meta) === null || _a === void 0 ? void 0 : _a.isActionCell) === 'object';
264
+ return ((0, jsx_runtime_1.jsx)("div", Object.assign({}, innerProps, { className: (0, classnames_1.default)('ndl-data-grid-td ndl-focusable-cell', className, {
265
+ 'ndl-data-grid-is-resizing': isResizing,
266
+ 'ndl-data-grid-row-action': isActionColumn,
267
+ }), role: "cell", tabIndex: 0, style: {
268
+ width: isActionColumn ? 40 : cell.column.getSize(),
269
+ }, children: children || (0, react_table_1.flexRender)(cell.column.columnDef.cell, cell.getContext()) }), cell.id));
270
+ };
271
+ exports.BodyCell = BodyCell;
272
+ const BodyRow = ({ row, children, innerProps, }) => {
273
+ const { components } = (0, DataGridContext_1.useDataGridContext)();
274
+ const { className } = innerProps || {};
275
+ return ((0, react_1.createElement)("div", Object.assign({}, innerProps, { key: row.id, className: (0, classnames_1.default)('ndl-data-grid-tr', className), role: "row", style: {
276
+ display: 'flex',
277
+ flexDirection: 'row',
278
+ } }), children || ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: row
279
+ .getVisibleCells()
280
+ .map((cell) => components.BodyCell && ((0, jsx_runtime_1.jsx)(components.BodyCell, { cell: cell }, cell.id))) }))));
281
+ };
282
+ exports.BodyRow = BodyRow;
283
+ const TableResults = ({ children, innerProps, manualPagination, }) => {
284
+ const { tableProps } = (0, DataGridContext_1.useDataGridContext)();
285
+ const { getState, getRowModel, getCoreRowModel } = tableProps;
286
+ const { pagination: { pageSize, pageIndex }, } = getState();
287
+ const { rows } = getRowModel();
288
+ const { from, to, totalRows } = (0, react_2.useMemo)(() => manualPagination || {
289
+ from: 1 + pageIndex * pageSize,
290
+ to: rows.length + pageIndex * pageSize,
291
+ totalRows: getCoreRowModel().rows.length,
292
+ }, [pageIndex, pageSize, manualPagination, rows, getCoreRowModel]);
293
+ const { className } = innerProps || {};
294
+ return ((0, jsx_runtime_1.jsx)("span", Object.assign({}, innerProps, { className: (0, classnames_1.default)('ndl-data-grid-results', className), children: children || ((0, jsx_runtime_1.jsxs)("span", { children: ["Showing", ' ', (0, jsx_runtime_1.jsx)("b", { children: totalRows ? `${from}${to !== from ? `-${to}` : ''}` : 0 }), " of", ' ', (0, jsx_runtime_1.jsx)("b", { children: totalRows }), " results"] })) })));
295
+ };
296
+ exports.TableResults = TableResults;
297
+ const RowsPerPage = ({ children, innerProps, }) => {
298
+ const { tableProps } = (0, DataGridContext_1.useDataGridContext)();
299
+ const { setPageSize, getState } = tableProps;
300
+ const { className } = innerProps || {};
301
+ const { pagination: { pageSize }, } = getState();
302
+ return ((0, jsx_runtime_1.jsx)("div", Object.assign({}, innerProps, { className: (0, classnames_1.default)('ndl-data-grid-rows-per-page', className), children: children || ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["Show", (0, jsx_runtime_1.jsx)("select", { onChange: (e) => setPageSize(parseInt(e.target.value, 10)), className: "ndl-data-grid-select", value: pageSize, "aria-label": "Select page size", children: [...new Set([...TABLE_RESULTS.values, pageSize])]
303
+ .sort((a, b) => a - b)
304
+ .map((option) => ((0, jsx_runtime_1.jsx)("option", { value: `${option}`, children: option }, `${option}`))) })] })) })));
305
+ };
306
+ exports.RowsPerPage = RowsPerPage;
307
+ const PaginationArrowButton = ({ action, children, innerProps, }) => {
308
+ const { className } = innerProps || {};
309
+ return ((0, jsx_runtime_1.jsx)("button", Object.assign({}, innerProps, { type: "button", className: (0, classnames_1.default)('ndl-data-grid-pagination-icon-button', className), children: children || ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [action === 'previous' && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("span", { className: "n-sr-only", children: "Previous table page" }), (0, jsx_runtime_1.jsx)(icons_1.ChevronLeftIconOutline, { className: "ndl-data-grid-pagination-icon" })] })), action === 'next' && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("span", { className: "n-sr-only", children: "Next table page" }), (0, jsx_runtime_1.jsx)(icons_1.ChevronRightIconOutline, { className: "ndl-data-grid-pagination-icon" })] }))] })) })));
310
+ };
311
+ exports.PaginationArrowButton = PaginationArrowButton;
312
+ const PaginationNumericButton = ({ currentIndex, isSelected, children, innerProps, }) => {
313
+ const { className, onClick } = innerProps || {};
314
+ return ((0, jsx_runtime_1.jsx)("button", Object.assign({}, innerProps, { type: "button", "data-testid": `table-${currentIndex}`, className: (0, classnames_1.default)('ndl-data-grid-pagination-numeric-button', className, {
315
+ 'ndl-not-selected-numeric': typeof currentIndex === 'number' && !isSelected,
316
+ 'ndl-is-selected': isSelected,
317
+ 'ndl-not-selected': !isSelected,
318
+ }), onClick: (e) => typeof currentIndex === 'number' && onClick && onClick(e), tabIndex: typeof currentIndex === 'number' ? 0 : -1, children: children || currentIndex })));
319
+ };
320
+ exports.PaginationNumericButton = PaginationNumericButton;
321
+ const PaginationNumericButtons = () => {
322
+ const { tableProps, components } = (0, DataGridContext_1.useDataGridContext)();
323
+ const { getState, setPageIndex, getPageCount } = tableProps;
324
+ const { pagination: { pageIndex }, } = getState();
325
+ return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, helpers_1.userFriendlyPagination)(pageIndex + 1, getPageCount()).map((option, idx) => components.PaginationNumericButton && ((0, jsx_runtime_1.jsx)(components.PaginationNumericButton
326
+ /** Use index to avoid situations where two "..." values will appear, causing a key conflict */
327
+ , { innerProps: {
328
+ onClick: () => typeof option === 'number' && setPageIndex(option - 1),
329
+ }, currentIndex: option, isSelected: option === pageIndex + 1 }, `${option}-${idx}`))) }));
330
+ };
331
+ exports.PaginationNumericButtons = PaginationNumericButtons;
332
+ const Pagination = ({ children, innerProps, }) => {
333
+ const { tableProps, components } = (0, DataGridContext_1.useDataGridContext)();
334
+ const { getCanPreviousPage, getCanNextPage, previousPage, nextPage } = tableProps;
335
+ const { className } = innerProps || {};
336
+ return ((0, jsx_runtime_1.jsx)("nav", Object.assign({}, innerProps, { className: (0, classnames_1.default)('ndl-data-grid-nav', className), "aria-label": "Pagination", children: children || ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [getCanPreviousPage()
337
+ ? components.PaginationArrowButton && ((0, jsx_runtime_1.jsx)(components.PaginationArrowButton, { action: "previous", innerProps: {
338
+ onClick: previousPage,
339
+ } }))
340
+ : null, components.PaginationNumericButtons && ((0, jsx_runtime_1.jsx)(components.PaginationNumericButtons, {})), getCanNextPage()
341
+ ? components.PaginationArrowButton && ((0, jsx_runtime_1.jsx)(components.PaginationArrowButton, { action: "next", innerProps: {
342
+ onClick: nextPage,
343
+ } }))
344
+ : null] })) })));
345
+ };
346
+ exports.Pagination = Pagination;
347
+ const Navigation = ({ children, innerProps, }) => {
348
+ const { tableProps, components } = (0, DataGridContext_1.useDataGridContext)();
349
+ const { getPageCount } = tableProps;
350
+ const { className } = innerProps || {};
351
+ return ((0, jsx_runtime_1.jsx)("div", Object.assign({}, innerProps, { className: (0, classnames_1.default)('ndl-data-grid-navigation', className), children: (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: children || ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [components.TableResults && (0, jsx_runtime_1.jsx)(components.TableResults, {}), (0, jsx_runtime_1.jsxs)("div", { className: "ndl-data-grid-navigation-right-items", children: [getPageCount() > 1 && components.Pagination && ((0, jsx_runtime_1.jsx)(components.Pagination, {})), components.RowsPerPage && (0, jsx_runtime_1.jsx)(components.RowsPerPage, {})] })] })) }) })));
352
+ };
353
+ exports.Navigation = Navigation;
354
+ const LoadingPlaceholder = ({ children, innerProps, }) => {
355
+ const { className } = innerProps || {};
356
+ return ((0, jsx_runtime_1.jsx)("div", Object.assign({}, innerProps, { className: (0, classnames_1.default)('nld-table-placeholder-wrapper', className), role: "row", children: children || ((0, jsx_runtime_1.jsx)("div", { role: "cell", className: "ndl-data-grid-placeholder", children: (0, jsx_runtime_1.jsxs)("div", { className: "ndl-data-grid-loading-placeholder", children: [(0, jsx_runtime_1.jsx)(loading_spinner_1.LoadingSpinner, {}), (0, jsx_runtime_1.jsx)("h6", { children: "Loading data" })] }) })) })));
357
+ };
358
+ exports.LoadingPlaceholder = LoadingPlaceholder;
359
+ const NoDataPlaceholder = ({ children, innerProps, }) => {
360
+ const { className } = innerProps || {};
361
+ return ((0, jsx_runtime_1.jsx)("div", Object.assign({}, innerProps, { className: (0, classnames_1.default)('nld-table-placeholder-wrapper', className), role: "row", children: children || ((0, jsx_runtime_1.jsx)("div", { role: "cell", className: "ndl-data-grid-placeholder", children: (0, jsx_runtime_1.jsx)("h6", { children: "No data present" }) })) })));
362
+ };
363
+ exports.NoDataPlaceholder = NoDataPlaceholder;
364
+ //# sourceMappingURL=Components.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Components.js","sourceRoot":"","sources":["../../../src/data-grid/Components.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DataGridComponents = void 0;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ /**
9
+ *
10
+ * Copyright (c) "Neo4j"
11
+ * Neo4j Sweden AB [http://neo4j.com]
12
+ *
13
+ * This file is part of Neo4j.
14
+ *
15
+ * Neo4j is free software: you can redistribute it and/or modify
16
+ * it under the terms of the GNU General Public License as published by
17
+ * the Free Software Foundation, either version 3 of the License, or
18
+ * (at your option) any later version.
19
+ *
20
+ * This program is distributed in the hope that it will be useful,
21
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
22
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23
+ * GNU General Public License for more details.
24
+ *
25
+ * You should have received a copy of the GNU General Public License
26
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
27
+ */
28
+ const classnames_1 = __importDefault(require("classnames"));
29
+ const helpers_1 = require("../helpers");
30
+ const react_1 = require("react");
31
+ const DataGridContext_1 = require("./DataGridContext");
32
+ const Components_1 = require("./Components");
33
+ const react_2 = require("@table-nav/react");
34
+ exports.DataGridComponents = {
35
+ ResizingBar: Components_1.ResizingBar,
36
+ Header: Components_1.Header,
37
+ Body: Components_1.Body,
38
+ BodyCell: Components_1.BodyCell,
39
+ BodyRow: Components_1.BodyRow,
40
+ HeaderCell: Components_1.HeaderCell,
41
+ ActionButton: Components_1.ActionButton,
42
+ ColumnControls: Components_1.ColumnControls,
43
+ Navigation: Components_1.Navigation,
44
+ TableResults: Components_1.TableResults,
45
+ RowsPerPage: Components_1.RowsPerPage,
46
+ Pagination: Components_1.Pagination,
47
+ PaginationNumericButtons: Components_1.PaginationNumericButtons,
48
+ PaginationNumericButton: Components_1.PaginationNumericButton,
49
+ PaginationArrowButton: Components_1.PaginationArrowButton,
50
+ LoadingPlaceholder: Components_1.LoadingPlaceholder,
51
+ NoDataPlaceholder: Components_1.NoDataPlaceholder,
52
+ Scrollable: Components_1.Scrollable,
53
+ };
54
+ var BorderStyleEnum;
55
+ (function (BorderStyleEnum) {
56
+ BorderStyleEnum["AllSides"] = "all-sides";
57
+ BorderStyleEnum["Horizontal"] = "horizontal";
58
+ BorderStyleEnum["None"] = "none";
59
+ })(BorderStyleEnum || (BorderStyleEnum = {}));
60
+ var HeaderStyleEnum;
61
+ (function (HeaderStyleEnum) {
62
+ HeaderStyleEnum["Filled"] = "filled";
63
+ HeaderStyleEnum["Clean"] = "clean";
64
+ })(HeaderStyleEnum || (HeaderStyleEnum = {}));
65
+ const DEFAULT_STYLING = {
66
+ zebraStriping: false,
67
+ borderStyle: BorderStyleEnum.Horizontal,
68
+ headerStyle: HeaderStyleEnum.Filled,
69
+ };
70
+ const DataGrid = (0, helpers_1.forwardRef)(function DataGrid({ isResizable = true, isLoading = false, isKeyboardNavigable = false, tableInstance, components, rootProps, styling = {}, tableNavRef, }, ref) {
71
+ const { className = '', style = {} } = rootProps || {};
72
+ const Styling = (0, react_1.useMemo)(() => (Object.assign(Object.assign({}, DEFAULT_STYLING), styling)), [styling]);
73
+ const Components = (0, react_1.useMemo)(() => (Object.assign(Object.assign({}, exports.DataGridComponents), components)), [components]);
74
+ const ScrollableContainer = (Components === null || Components === void 0 ? void 0 : Components.Scrollable)
75
+ ? Components.Scrollable
76
+ : Components_1.Scrollable;
77
+ const { listeners, tableNav: tableNavigationReference } = (0, react_2.useTableNav)({
78
+ debug: false,
79
+ });
80
+ /** Surface the tableNav instance for programmatic control if needed */
81
+ (0, react_1.useImperativeHandle)(tableNavRef, () => tableNavigationReference, [
82
+ tableNavigationReference,
83
+ ]);
84
+ return ((0, jsx_runtime_1.jsx)(DataGridContext_1.DataGridContext.Provider, { value: {
85
+ resizable: isResizable,
86
+ tableProps: tableInstance,
87
+ loading: isLoading,
88
+ components: Components,
89
+ }, children: (0, jsx_runtime_1.jsxs)("div", Object.assign({}, rootProps, (isKeyboardNavigable ? listeners : {}), { className: (0, classnames_1.default)('ndl-data-grid-root', className, {
90
+ 'ndl-data-grid-focusable-cells': isKeyboardNavigable,
91
+ 'ndl-data-grid-zebra-striping': Styling.zebraStriping,
92
+ 'ndl-data-grid-border-all-sides': Styling.borderStyle === BorderStyleEnum.AllSides,
93
+ 'ndl-data-grid-border-horizontal': Styling.borderStyle === BorderStyleEnum.Horizontal,
94
+ 'ndl-data-grid-header-filled': Styling.headerStyle === HeaderStyleEnum.Filled,
95
+ }), style: style, ref: ref, children: [(0, jsx_runtime_1.jsx)(ScrollableContainer, { children: (0, jsx_runtime_1.jsxs)("div", { className: "ndl-div-table", role: "grid", "aria-busy": isLoading ? 'true' : 'false', children: [(Components === null || Components === void 0 ? void 0 : Components.Header) && (0, jsx_runtime_1.jsx)(Components.Header, {}), (Components === null || Components === void 0 ? void 0 : Components.Body) && (0, jsx_runtime_1.jsx)(Components.Body, {})] }) }), (Components === null || Components === void 0 ? void 0 : Components.Navigation) && (0, jsx_runtime_1.jsx)(Components.Navigation, {})] })) }));
96
+ });
97
+ exports.default = DataGrid;
98
+ //# sourceMappingURL=DataGrid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataGrid.js","sourceRoot":"","sources":["../../../src/data-grid/DataGrid.tsx"],"names":[],"mappings":"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"}
@@ -20,4 +20,15 @@
20
20
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
21
21
  */
22
22
  Object.defineProperty(exports, "__esModule", { value: true });
23
- //# sourceMappingURL=hookCallbackTypes.js.map
23
+ exports.useDataGridContext = exports.DataGridContext = void 0;
24
+ const react_1 = require("react");
25
+ exports.DataGridContext = (0, react_1.createContext)(null);
26
+ function useDataGridContext() {
27
+ const context = (0, react_1.useContext)(exports.DataGridContext);
28
+ if (!context) {
29
+ throw new Error('useDataGridContext should be used under Table component provider');
30
+ }
31
+ return context;
32
+ }
33
+ exports.useDataGridContext = useDataGridContext;
34
+ //# sourceMappingURL=DataGridContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataGridContext.js","sourceRoot":"","sources":["../../../src/data-grid/DataGridContext.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;;;AAGH,iCAAkD;AA6DrC,QAAA,eAAe,GAAG,IAAA,qBAAa,EAA2B,IAAK,CAAC,CAAC;AAE9E,SAAgB,kBAAkB;IAChC,MAAM,OAAO,GAAG,IAAA,kBAAU,EAAyB,uBAAe,CAAC,CAAC;IACpE,IAAI,CAAC,OAAO,EAAE;QACZ,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;KACH;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AARD,gDAQC"}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ /**
3
+ *
4
+ * Copyright (c) "Neo4j"
5
+ * Neo4j Sweden AB [http://neo4j.com]
6
+ *
7
+ * This file is part of Neo4j.
8
+ *
9
+ * Neo4j is free software: you can redistribute it and/or modify
10
+ * it under the terms of the GNU General Public License as published by
11
+ * the Free Software Foundation, either version 3 of the License, or
12
+ * (at your option) any later version.
13
+ *
14
+ * This program is distributed in the hope that it will be useful,
15
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ * GNU General Public License for more details.
18
+ *
19
+ * You should have received a copy of the GNU General Public License
20
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
21
+ */
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.isSizeConstrained = exports.gridGenerator = exports.userFriendlyPagination = void 0;
24
+ /**
25
+ * Modified from here: https://gist.github.com/kottenator/9d936eb3e4e3c3e02598
26
+ *
27
+ * @param current Current Index
28
+ * @param max Max Index
29
+ * @returns
30
+ */
31
+ const userFriendlyPagination = (current, max) => {
32
+ const last = max;
33
+ const delta = 1;
34
+ const left = current - delta;
35
+ const right = current + delta + 1;
36
+ const range = [];
37
+ const rangeWithDots = [];
38
+ let length;
39
+ for (let i = 1; i <= last; i += 1) {
40
+ if (i === 1 || i === last || (i >= left && i < right)) {
41
+ range.push(i);
42
+ }
43
+ }
44
+ for (let i = 0; i < range.length; i += 1) {
45
+ if (length) {
46
+ if (range[i] - length === 2) {
47
+ rangeWithDots.push(length + 1);
48
+ }
49
+ else if (range[i] - length !== 1) {
50
+ rangeWithDots.push('...');
51
+ }
52
+ }
53
+ rangeWithDots.push(range[i]);
54
+ length = range[i];
55
+ }
56
+ return rangeWithDots;
57
+ };
58
+ exports.userFriendlyPagination = userFriendlyPagination;
59
+ /**
60
+ * Simple helper to generate inline grid style
61
+ * to be responsive.
62
+ *
63
+ * Secret sauce:
64
+ * The last element takes an "auto" width, so it will
65
+ * fill the available space, and the result till be for 4 columns:
66
+ * minmax(min column1Sizepx,column1Sizepx) minmax(min column2Sizepx,column2Sizepx) ... minmax(columnNSizepx, auto)
67
+ */
68
+ const gridGenerator = (table) => {
69
+ const visibleColumns = table.getVisibleFlatColumns();
70
+ const tableDefaultMin = table._getDefaultColumnDef().minSize;
71
+ // 20 is the default value that is set in Tanstack. For us the min size is too
72
+ // small so we increase it to look better per default.
73
+ // https://github.com/TanStack/table/blob/main/docs/guide/column-sizing.md
74
+ const defaultMin = tableDefaultMin !== 20 ? tableDefaultMin : 100;
75
+ // If there are actions, we want the last column to be fixed sized
76
+ // and the rest to be auto.
77
+ return visibleColumns
78
+ .map((i, idx) => {
79
+ var _a;
80
+ return visibleColumns.length === idx + 1
81
+ ? `minmax(${i.getSize()}px ,auto)`
82
+ : `minmax(${((_a = table.getColumn(i.id)) === null || _a === void 0 ? void 0 : _a.columnDef.minSize) || defaultMin}px,${i.getSize()}px)`;
83
+ })
84
+ .join(' ');
85
+ };
86
+ exports.gridGenerator = gridGenerator;
87
+ /**
88
+ * Check if the column is size constrained,
89
+ * so we can let the column's width grow with `flex-grow: 1`
90
+ * @param columnDef
91
+ */
92
+ const isSizeConstrained = (columnDef) => columnDef.size !== undefined && columnDef.size !== 150;
93
+ exports.isSizeConstrained = isSizeConstrained;
94
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/data-grid/helpers.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;;;AAQH;;;;;;GAMG;AACI,MAAM,sBAAsB,GAAG,CAAC,OAAe,EAAE,GAAW,EAAE,EAAE;IACrE,MAAM,IAAI,GAAG,GAAG,CAAC;IACjB,MAAM,KAAK,GAAG,CAAC,CAAC;IAChB,MAAM,IAAI,GAAG,OAAO,GAAG,KAAK,CAAC;IAC7B,MAAM,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,MAAM,aAAa,GAAG,EAAE,CAAC;IACzB,IAAI,MAA0B,CAAC;IAE/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE;QACjC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE;YACrD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACf;KACF;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QACxC,IAAI,MAAM,EAAE;YACV,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,EAAE;gBAC3B,aAAa,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;aAChC;iBAAM,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,EAAE;gBAClC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC3B;SACF;QACD,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AA5BW,QAAA,sBAAsB,0BA4BjC;AAEF;;;;;;;;GAQG;AACI,MAAM,aAAa,GAAG,CAAoB,KAAe,EAAE,EAAE;IAClE,MAAM,cAAc,GAAG,KAAK,CAAC,qBAAqB,EAAE,CAAC;IACrD,MAAM,eAAe,GAAG,KAAK,CAAC,oBAAoB,EAAE,CAAC,OAAO,CAAC;IAC7D,8EAA8E;IAC9E,sDAAsD;IACtD,0EAA0E;IAC1E,MAAM,UAAU,GAAG,eAAe,KAAK,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC;IAElE,kEAAkE;IAClE,2BAA2B;IAC3B,OAAO,cAAc;SAClB,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;;QACd,OAAA,cAAc,CAAC,MAAM,KAAK,GAAG,GAAG,CAAC;YAC/B,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,WAAW;YAClC,CAAC,CAAC,UACE,CAAA,MAAA,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,0CAAE,SAAS,CAAC,OAAO,KAAI,UAC9C,MAAM,CAAC,CAAC,OAAO,EAAE,KAAK,CAAA;KAAA,CAC3B;SACA,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC,CAAC;AAnBW,QAAA,aAAa,iBAmBxB;AAEF;;;;GAIG;AACI,MAAM,iBAAiB,GAAG,CAAoB,SAAuB,EAAE,EAAE,CAC9E,SAAS,CAAC,IAAI,KAAK,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,GAAG,CAAC;AAD5C,QAAA,iBAAiB,qBAC2B"}