@terraware/web-components 5.0.27 → 5.1.1-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 (311) hide show
  1. package/components/AntSwitch/index.js +19 -22
  2. package/components/Autocomplete/Autocomplete.js +106 -130
  3. package/components/Badge/index.js +28 -29
  4. package/components/BusySpinner/index.js +40 -45
  5. package/components/Button/Button.js +41 -47
  6. package/components/Checkbox.js +64 -63
  7. package/components/Confirm/index.js +74 -83
  8. package/components/DatePicker/DatePicker.js +138 -141
  9. package/components/DialogBox/DialogBox.js +111 -118
  10. package/components/Divisor.js +18 -18
  11. package/components/Dropdown.js +66 -94
  12. package/components/EditableTable/index.js +211 -271
  13. package/components/ErrorBox/ErrorBox.js +47 -49
  14. package/components/FileChooser/index.js +117 -135
  15. package/components/FormBottomBar/index.js +75 -84
  16. package/components/Icon/Icon.js +12 -20
  17. package/components/Icon/icons/index.js +256 -256
  18. package/components/IconTooltip/index.js +49 -60
  19. package/components/Map/MapBox.js +545 -452
  20. package/components/Map/MapContainer.js +25 -29
  21. package/components/Map/MapDateSliderControl.js +64 -64
  22. package/components/Map/MapDrawer.js +41 -47
  23. package/components/Map/MapLegend.js +176 -172
  24. package/components/Map/MapViewStyleControl.js +59 -63
  25. package/components/Map/ReactMapboxWrapper.js +3 -2
  26. package/components/Map/index.js +161 -180
  27. package/components/Map/types.js +12 -17
  28. package/components/Map/useMaintainLayerOrder.js +16 -26
  29. package/components/Markdown/index.js +25 -26
  30. package/components/Message/Message.js +73 -76
  31. package/components/MultiSelect/index.js +112 -124
  32. package/components/Navbar/NavFooter.js +9 -13
  33. package/components/Navbar/NavItem.js +70 -76
  34. package/components/Navbar/NavSection.js +17 -19
  35. package/components/Navbar/Navbar.js +39 -46
  36. package/components/Navbar/SubNavbar.js +9 -13
  37. package/components/Note.js +18 -22
  38. package/components/OverlayModal/OverlayModal.js +56 -63
  39. package/components/PageForm/index.js +33 -41
  40. package/components/PhotoChooser/index.js +165 -173
  41. package/components/PhotosCarousel/PhotoSlide.js +32 -35
  42. package/components/PhotosCarousel/index.js +80 -85
  43. package/components/PhotosCarousel/usePhotosCarousel.js +69 -76
  44. package/components/Pill/index.js +41 -45
  45. package/components/PillList/index.js +17 -24
  46. package/components/PlacementWrapper/index.js +38 -59
  47. package/components/PopoverMenu/Popover.js +68 -85
  48. package/components/PopoverMenu/index.js +51 -56
  49. package/components/PopoverMultiSelect/index.js +52 -59
  50. package/components/ProgressCircle/ProgressCircle.js +28 -32
  51. package/components/RadioButton.js +17 -19
  52. package/components/Select/Select.js +13 -15
  53. package/components/Select/SelectT.js +235 -250
  54. package/components/Separator/index.js +14 -17
  55. package/components/Size.js +0 -1
  56. package/components/Slider/index.js +43 -56
  57. package/components/Stepper/index.d.ts +33 -0
  58. package/components/Stepper/index.d.ts.map +1 -0
  59. package/components/Stepper/index.js +66 -0
  60. package/components/SummaryBox.js +70 -72
  61. package/components/Tabs/index.js +133 -135
  62. package/components/TextTruncated/index.js +117 -130
  63. package/components/Textfield/Textfield.js +158 -190
  64. package/components/Textfield/TruncatedTextArea.js +70 -84
  65. package/components/TimelineSlider/TimelineMarker.js +25 -30
  66. package/components/TimelineSlider/TimelineRail.js +8 -11
  67. package/components/TimelineSlider/index.js +64 -66
  68. package/components/TimelineSliderV2/ClusterBadge.js +25 -29
  69. package/components/TimelineSliderV2/TimelineDot.js +31 -35
  70. package/components/TimelineSliderV2/TimelineRail.js +8 -11
  71. package/components/TimelineSliderV2/index.js +121 -103
  72. package/components/TimelineSliderV2/layout.js +124 -147
  73. package/components/TimelineSliderV2/types.js +0 -1
  74. package/components/Tooltip/Tooltip.js +47 -56
  75. package/components/ViewPhotosDialog/index.js +28 -35
  76. package/components/VirtualWalkthrough/Annotation.js +163 -207
  77. package/components/VirtualWalkthrough/AnnotationEditPane.js +198 -184
  78. package/components/VirtualWalkthrough/AnnotationPanel.js +187 -199
  79. package/components/VirtualWalkthrough/Application.js +31 -34
  80. package/components/VirtualWalkthrough/AutoRotator.js +85 -223
  81. package/components/VirtualWalkthrough/BlockingSpinner.js +26 -28
  82. package/components/VirtualWalkthrough/BoundaryRing.js +30 -34
  83. package/components/VirtualWalkthrough/BoundaryWall.js +32 -36
  84. package/components/VirtualWalkthrough/CameraInfo.js +100 -89
  85. package/components/VirtualWalkthrough/ControlsInfoPane.js +254 -195
  86. package/components/VirtualWalkthrough/GradientSky.js +72 -73
  87. package/components/VirtualWalkthrough/SplatControls.js +209 -221
  88. package/components/VirtualWalkthrough/SplatCrop.js +21 -20
  89. package/components/VirtualWalkthrough/SplatFadeCrop.js +21 -20
  90. package/components/VirtualWalkthrough/SplatModel.js +65 -85
  91. package/components/VirtualWalkthrough/SplatRevealRain.js +41 -46
  92. package/components/VirtualWalkthrough/TfAnnotationManager.js +197 -379
  93. package/components/VirtualWalkthrough/TfXrNavigation.js +73 -162
  94. package/components/VirtualWalkthrough/VirtualWalkthroughViewer.js +438 -431
  95. package/components/VirtualWalkthrough/VrAnnotationPanel.js +18 -22
  96. package/components/VirtualWalkthrough/XrAnnotationInteraction.js +14 -17
  97. package/components/VirtualWalkthrough/XrExitButton.js +14 -17
  98. package/components/VirtualWalkthrough/XrGazeDwell.js +14 -17
  99. package/components/VirtualWalkthrough/XrPointerRay.js +14 -17
  100. package/components/VirtualWalkthrough/XrStartPose.js +67 -121
  101. package/components/VirtualWalkthrough/boundary-ring.js +87 -117
  102. package/components/VirtualWalkthrough/boundary-wall.js +175 -258
  103. package/components/VirtualWalkthrough/camera-adoption.js +18 -64
  104. package/components/VirtualWalkthrough/groundPlane.js +32 -47
  105. package/components/VirtualWalkthrough/gsplat-fade-crop-effect.js +35 -35
  106. package/components/VirtualWalkthrough/splatFormat.js +13 -47
  107. package/components/VirtualWalkthrough/useAdoptedCamera.js +23 -44
  108. package/components/VirtualWalkthrough/useRestartOnVr.js +26 -37
  109. package/components/VirtualWalkthrough/useXrRenderTuning.js +33 -54
  110. package/components/VirtualWalkthrough/vr-annotation-panel-layout.js +67 -99
  111. package/components/VirtualWalkthrough/vr-annotation-panel.js +403 -433
  112. package/components/VirtualWalkthrough/vr-annotation-scroll.js +10 -28
  113. package/components/VirtualWalkthrough/walkthrough-camera.js +204 -329
  114. package/components/VirtualWalkthrough/xr-annotation-candidate-buffer.js +39 -80
  115. package/components/VirtualWalkthrough/xr-annotation-candidates.js +6 -18
  116. package/components/VirtualWalkthrough/xr-annotation-interaction.js +31 -56
  117. package/components/VirtualWalkthrough/xr-annotation-targeting.js +22 -38
  118. package/components/VirtualWalkthrough/xr-button-arming.js +7 -17
  119. package/components/VirtualWalkthrough/xr-button-hold.js +22 -36
  120. package/components/VirtualWalkthrough/xr-exit-button-mask.js +22 -36
  121. package/components/VirtualWalkthrough/xr-exit-button.js +148 -207
  122. package/components/VirtualWalkthrough/xr-face-buttons.js +19 -29
  123. package/components/VirtualWalkthrough/xr-gaze-dwell-state.js +23 -34
  124. package/components/VirtualWalkthrough/xr-gaze-dwell.js +107 -144
  125. package/components/VirtualWalkthrough/xr-interactive-ui.js +12 -24
  126. package/components/VirtualWalkthrough/xr-pointer-ray.js +13 -20
  127. package/components/VirtualWalkthrough/xr-progress-pie-material.js +117 -88
  128. package/components/VirtualWalkthrough/xr-progress-pie.js +1 -10
  129. package/components/VirtualWalkthrough/xr-ray-quad.js +16 -30
  130. package/components/VirtualWalkthrough/xr-render-tuning.js +17 -48
  131. package/components/VirtualWalkthrough/xr-scene-bounds.js +21 -37
  132. package/components/VirtualWalkthrough/xr-start-pose.js +27 -73
  133. package/components/VirtualWalkthrough/xr-teleport-gesture.js +16 -42
  134. package/components/svg/BlobbyGrayIconImage.js +41 -39
  135. package/components/svg/BlobbyGrayIconImport.js +41 -39
  136. package/components/svg/BlobbyGrayIconUploadToTheCloud.js +41 -39
  137. package/components/svg/BlobbyIconCloudChecked.js +202 -164
  138. package/components/svg/BlobbyIconExportOrUploadPhoto.js +202 -164
  139. package/components/svg/BlobbyIconFolder.js +202 -164
  140. package/components/svg/BlobbyIconGraphReport.js +202 -164
  141. package/components/svg/BlobbyIconHappy.js +202 -164
  142. package/components/svg/BlobbyIconHeartMonitor.js +202 -164
  143. package/components/svg/BlobbyIconLeaf.js +202 -164
  144. package/components/svg/BlobbyIconLibrary.js +202 -164
  145. package/components/svg/BlobbyIconNursery.js +204 -166
  146. package/components/svg/BlobbyIconOrganization.js +202 -164
  147. package/components/svg/BlobbyIconParchment.js +202 -164
  148. package/components/svg/BlobbyIconPeople.js +202 -164
  149. package/components/svg/BlobbyIconSeedBank.js +202 -164
  150. package/components/svg/BlobbyIconSeedling.js +202 -164
  151. package/components/svg/BlobbyIconSeeds.js +202 -164
  152. package/components/svg/BlobbyIconSite.js +206 -167
  153. package/components/svg/BlobbyIconSparkles.js +202 -164
  154. package/components/svg/BlobbyIconWrench.js +202 -164
  155. package/components/svg/Bug.js +19 -21
  156. package/components/svg/Calendar.js +19 -21
  157. package/components/svg/CaretDown.js +19 -21
  158. package/components/svg/CaretLeft.js +19 -21
  159. package/components/svg/CaretRight.js +19 -21
  160. package/components/svg/CaretUp.js +19 -21
  161. package/components/svg/ChevronDown.js +19 -21
  162. package/components/svg/ChevronUp.js +19 -21
  163. package/components/svg/Close.js +19 -21
  164. package/components/svg/Critical.js +19 -21
  165. package/components/svg/Edit.js +202 -164
  166. package/components/svg/Error.js +19 -21
  167. package/components/svg/Filter.js +19 -21
  168. package/components/svg/Folder.js +19 -21
  169. package/components/svg/Help.js +19 -21
  170. package/components/svg/Home.js +19 -21
  171. package/components/svg/IconAdd.js +19 -21
  172. package/components/svg/IconArrowRight.js +21 -23
  173. package/components/svg/IconBusinessNetwork.js +19 -21
  174. package/components/svg/IconCalendar.js +19 -21
  175. package/components/svg/IconCancel.js +19 -21
  176. package/components/svg/IconChargingBattery.js +19 -21
  177. package/components/svg/IconChecklist.js +21 -23
  178. package/components/svg/IconCheckmark.js +19 -21
  179. package/components/svg/IconCoinInHand.js +19 -21
  180. package/components/svg/IconColumns.js +19 -21
  181. package/components/svg/IconComment.js +20 -22
  182. package/components/svg/IconDashboard.js +19 -21
  183. package/components/svg/IconDataMigration.js +19 -21
  184. package/components/svg/IconDocument.js +21 -23
  185. package/components/svg/IconDownloadFromTheCloud.js +21 -23
  186. package/components/svg/IconEdit.js +21 -23
  187. package/components/svg/IconExpand.js +21 -23
  188. package/components/svg/IconExport.js +19 -21
  189. package/components/svg/IconExternalLink.js +19 -21
  190. package/components/svg/IconEye.js +19 -21
  191. package/components/svg/IconEyeOff.js +19 -21
  192. package/components/svg/IconFile.js +19 -21
  193. package/components/svg/IconFolder.js +19 -21
  194. package/components/svg/IconFullScreen.js +20 -22
  195. package/components/svg/IconFutures.js +19 -21
  196. package/components/svg/IconGraphReport.js +19 -21
  197. package/components/svg/IconGrid.js +19 -21
  198. package/components/svg/IconHeartMonitor.js +19 -21
  199. package/components/svg/IconHelp.js +21 -23
  200. package/components/svg/IconHistory.js +19 -21
  201. package/components/svg/IconImport.js +19 -21
  202. package/components/svg/IconIndex.js +19 -21
  203. package/components/svg/IconLayers.js +19 -21
  204. package/components/svg/IconLibrary.js +20 -22
  205. package/components/svg/IconList.js +19 -21
  206. package/components/svg/IconLivePlant.js +19 -21
  207. package/components/svg/IconLocations.js +19 -21
  208. package/components/svg/IconMail.js +19 -21
  209. package/components/svg/IconManager.js +19 -21
  210. package/components/svg/IconMap.js +19 -21
  211. package/components/svg/IconMarker.js +19 -21
  212. package/components/svg/IconMenu.js +19 -21
  213. package/components/svg/IconMenuHorizontal.js +19 -21
  214. package/components/svg/IconModule.js +19 -21
  215. package/components/svg/IconMyLocation.js +19 -21
  216. package/components/svg/IconNote.js +21 -23
  217. package/components/svg/IconNursery.js +21 -23
  218. package/components/svg/IconOrg.js +19 -21
  219. package/components/svg/IconParchment.js +19 -21
  220. package/components/svg/IconPhoto.js +19 -21
  221. package/components/svg/IconPlantsFilled.js +19 -21
  222. package/components/svg/IconRedo.js +19 -21
  223. package/components/svg/IconRestorationSite.js +19 -21
  224. package/components/svg/IconSeedBank.js +19 -21
  225. package/components/svg/IconSeedling.js +19 -21
  226. package/components/svg/IconSettings.js +19 -21
  227. package/components/svg/IconSlice.js +19 -21
  228. package/components/svg/IconSubmit.js +19 -21
  229. package/components/svg/IconSubtract.js +21 -23
  230. package/components/svg/IconSynced.js +19 -21
  231. package/components/svg/IconTrashCan.js +19 -21
  232. package/components/svg/IconTreasureMap.js +19 -21
  233. package/components/svg/IconUnavailable.js +19 -21
  234. package/components/svg/IconUndo.js +19 -21
  235. package/components/svg/IconVariable.js +19 -21
  236. package/components/svg/IconVideo.js +30 -31
  237. package/components/svg/IconWifi.js +19 -21
  238. package/components/svg/Info.js +19 -21
  239. package/components/svg/Key.js +19 -21
  240. package/components/svg/Leaf.js +19 -21
  241. package/components/svg/Lock.js +19 -21
  242. package/components/svg/Logo.js +48 -43
  243. package/components/svg/MenuVertical.js +19 -21
  244. package/components/svg/Notification.js +19 -21
  245. package/components/svg/Person.js +19 -21
  246. package/components/svg/Plus.js +19 -21
  247. package/components/svg/RestorationSite.js +19 -21
  248. package/components/svg/Search.js +19 -21
  249. package/components/svg/Seeds.js +19 -21
  250. package/components/svg/Site.js +19 -21
  251. package/components/svg/Sparkles.js +19 -21
  252. package/components/svg/Species.js +19 -21
  253. package/components/svg/Species2.js +202 -164
  254. package/components/svg/Spinner.js +54 -48
  255. package/components/svg/Star.js +19 -21
  256. package/components/svg/Success.js +19 -21
  257. package/components/svg/SuccessFilled.js +19 -21
  258. package/components/svg/TerrawareLogoDesktop.js +55 -49
  259. package/components/svg/TerrawareLogoMobile.js +25 -26
  260. package/components/svg/Touchscreen.js +19 -21
  261. package/components/svg/UploadCloud.js +202 -164
  262. package/components/svg/Warning.js +19 -21
  263. package/components/svg/WelcomeClipboard.js +156 -133
  264. package/components/svg/index.js +129 -129
  265. package/components/table/EnhancedTableToolbar.js +68 -74
  266. package/components/table/EnhancedTableToolbarV2.js +31 -41
  267. package/components/table/TableCellRenderer.js +196 -231
  268. package/components/table/TableHeader.js +71 -73
  269. package/components/table/TableHeaderItem.js +97 -102
  270. package/components/table/density.js +18 -19
  271. package/components/table/index.js +350 -369
  272. package/components/table/sort.js +27 -52
  273. package/components/table/types.js +0 -1
  274. package/components/types/index.js +0 -1
  275. package/hooks/cameraEntityContext.js +2 -13
  276. package/hooks/useBoolean.js +17 -13
  277. package/hooks/useCameraPosition.js +56 -56
  278. package/hooks/useDevicePerformance.js +17 -17
  279. package/hooks/useXr.js +85 -87
  280. package/index.d.ts +3 -1
  281. package/index.d.ts.map +1 -1
  282. package/index.js +59 -58
  283. package/package.json +1 -1
  284. package/setupTests.js +0 -4
  285. package/strings/csv/en.csv +1 -0
  286. package/strings/csv/es.csv +1 -0
  287. package/strings/csv/fr.csv +1 -0
  288. package/strings/export.js +111 -170
  289. package/strings/index.js +25 -54
  290. package/strings/locales.js +21 -41
  291. package/strings/strings-en.d.ts +1 -0
  292. package/strings/strings-en.d.ts.map +1 -1
  293. package/strings/strings-en.js +50 -51
  294. package/strings/strings-es.d.ts +1 -0
  295. package/strings/strings-es.d.ts.map +1 -1
  296. package/strings/strings-es.js +50 -51
  297. package/strings/strings-fr.d.ts +1 -0
  298. package/strings/strings-fr.d.ts.map +1 -1
  299. package/strings/strings-fr.js +50 -51
  300. package/strings/strings-gx.d.ts +1 -0
  301. package/strings/strings-gx.d.ts.map +1 -1
  302. package/strings/strings-gx.js +50 -51
  303. package/style-dictionary-dist/TerrawareTheme.js +186 -186
  304. package/theme.js +74 -76
  305. package/utils/color.js +8 -15
  306. package/utils/date.js +42 -108
  307. package/utils/index.js +4 -4
  308. package/utils/preventDefaultEvent.js +3 -3
  309. package/utils/text.js +11 -11
  310. package/utils/useDeviceInfo.js +42 -79
  311. package/virtualWalkthrough.js +23 -23
@@ -1,378 +1,359 @@
1
- import React, { useState, useEffect, useCallback, useMemo } from 'react';
2
- import { useSensors, useSensor, MouseSensor, TouchSensor, KeyboardSensor, DndContext } from '@dnd-kit/core';
3
- import { sortableKeyboardCoordinates } from '@dnd-kit/sortable';
4
- import { useTheme, TableContainer, Table, TableBody, TableRow, TableCell, Checkbox, Typography, Box, Pagination } from '@mui/material';
5
- import 'lodash';
6
- import 'luxon';
7
- import useDeviceInfo from '../../utils/useDeviceInfo.js';
8
- import { CheckboxStyle } from '../Checkbox.js';
9
- import EnhancedTableToolbarV2 from './EnhancedTableToolbarV2.js';
10
- import CellRenderer from './TableCellRenderer.js';
11
- import EnhancedTableHead from './TableHeader.js';
12
- import { getTableCellPaddingY, getTableRowHeight } from './density.js';
13
- import { stableSort, descendingComparator, getComparator } from './sort.js';
14
- import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
15
-
16
- const isTopBarButton = input => {
17
- const castInput = input;
18
- return !!(castInput.buttonType && castInput.onButtonClick);
1
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+ import react, { useCallback, useEffect, useMemo, useState } from "react";
3
+ import { DndContext, KeyboardSensor, MouseSensor, TouchSensor, useSensor, useSensors } from "@dnd-kit/core";
4
+ import { sortableKeyboardCoordinates } from "@dnd-kit/sortable";
5
+ import { Box, Checkbox, Pagination, Table, TableBody, TableCell, TableContainer, TableRow, Typography, useTheme } from "@mui/material";
6
+ import { useDeviceInfo } from "../../utils/index.js";
7
+ import { CheckboxStyle } from "../Checkbox.js";
8
+ import EnhancedTableToolbarV2 from "./EnhancedTableToolbarV2.js";
9
+ import TableCellRenderer from "./TableCellRenderer.js";
10
+ import TableHeader from "./TableHeader.js";
11
+ import { getTableCellPaddingY, getTableRowHeight } from "./density.js";
12
+ import { descendingComparator, getComparator, stableSort } from "./sort.js";
13
+ const isTopBarButton = (input)=>{
14
+ const castInput = input;
15
+ return !!(castInput.buttonType && castInput.onButtonClick);
19
16
  };
20
- function EnhancedTable({
21
- id,
22
- columns,
23
- rows,
24
- order: _order = 'asc',
25
- orderBy: _orderBy,
26
- Renderer = CellRenderer,
27
- onSelect,
28
- onPageChange,
29
- maxItemsPerPage = 100,
30
- totalRowCount,
31
- currentPage,
32
- DetailsRenderer,
33
- sortComparator = descendingComparator,
34
- sortHandler,
35
- isInactive,
36
- isPresorted,
37
- onReorderEnd,
38
- isClickable,
39
- emptyTableMessage,
40
- showCheckbox,
41
- showTopBar,
42
- topBarButtons,
43
- selectedRows,
44
- setSelectedRows,
45
- controlledOnSelect,
46
- reloadData,
47
- stickyHeader = true,
48
- hideHeader,
49
- booleanFalseText,
50
- booleanTrueText,
51
- editText,
52
- renderNumSelectedText,
53
- renderPaginationText,
54
- enhancedTopBarSelectionConfig,
55
- density = 'comfortable',
56
- tableComments
57
- }) {
58
- const theme = useTheme();
59
- const [order, setOrder] = React.useState(_order);
60
- const [orderBy, setOrderBy] = React.useState(_orderBy);
61
- const [internalPage, setInternalPage] = useState(1);
62
- const {
63
- isMobile
64
- } = useDeviceInfo();
65
- const [displayColumnKeyNames, setDisplayColumnKeyNames] = useState();
66
- const [displayColumnsIndexed, setDisplayColumnsIndexed] = useState();
67
- const [displayColumnDetails, setDisplayColumnDetails] = useState();
68
- useEffect(() => {
69
- const columnsKeyNames = columns.map(col => col.key);
70
- const columnsIndexed = columns.reduce((acum, value) => {
71
- acum[value.key] = value;
72
- return acum;
73
- }, {});
74
- setDisplayColumnKeyNames(columnsKeyNames);
75
- setDisplayColumnsIndexed(columnsIndexed);
76
- }, [columns]);
77
- useEffect(() => {
78
- if (displayColumnKeyNames && displayColumnsIndexed) {
79
- const columnsDetails = displayColumnKeyNames.map(key => ({
80
- ...displayColumnsIndexed[key]
81
- }));
82
- setDisplayColumnDetails(columnsDetails);
83
- }
84
- }, [displayColumnKeyNames, displayColumnsIndexed]);
85
- useEffect(() => {
86
- if (setSelectedRows && rows.length >= 0) {
87
- setSelectedRows(currentlySelectedRows => {
88
- const emptyArray = [];
89
- if (rows.length || currentlySelectedRows.length > rows.length) {
90
- return emptyArray;
17
+ function EnhancedTable({ id, columns, rows, order: _order = 'asc', orderBy: _orderBy, Renderer = TableCellRenderer, onSelect, onPageChange, maxItemsPerPage = 100, totalRowCount, currentPage, DetailsRenderer, sortComparator = descendingComparator, sortHandler, isInactive, isPresorted, onReorderEnd, isClickable, emptyTableMessage, showCheckbox, showTopBar, topBarButtons, selectedRows, setSelectedRows, controlledOnSelect, reloadData, stickyHeader = true, hideHeader, booleanFalseText, booleanTrueText, editText, renderNumSelectedText, renderPaginationText, enhancedTopBarSelectionConfig, density = 'comfortable', tableComments }) {
18
+ const theme = useTheme();
19
+ const [order, setOrder] = react.useState(_order);
20
+ const [orderBy, setOrderBy] = react.useState(_orderBy);
21
+ const [internalPage, setInternalPage] = useState(1);
22
+ const { isMobile } = useDeviceInfo();
23
+ const [displayColumnKeyNames, setDisplayColumnKeyNames] = useState();
24
+ const [displayColumnsIndexed, setDisplayColumnsIndexed] = useState();
25
+ const [displayColumnDetails, setDisplayColumnDetails] = useState();
26
+ useEffect(()=>{
27
+ const columnsKeyNames = columns.map((col)=>col.key);
28
+ const columnsIndexed = columns.reduce((acum, value)=>{
29
+ acum[value.key] = value;
30
+ return acum;
31
+ }, {});
32
+ setDisplayColumnKeyNames(columnsKeyNames);
33
+ setDisplayColumnsIndexed(columnsIndexed);
34
+ }, [
35
+ columns
36
+ ]);
37
+ useEffect(()=>{
38
+ if (displayColumnKeyNames && displayColumnsIndexed) {
39
+ const columnsDetails = displayColumnKeyNames.map((key)=>({
40
+ ...displayColumnsIndexed[key]
41
+ }));
42
+ setDisplayColumnDetails(columnsDetails);
91
43
  }
92
- return currentlySelectedRows;
93
- });
94
- }
95
- }, [rows, setSelectedRows]);
96
- const handleChangePage = useCallback((event, newPage) => {
97
- onPageChange?.(newPage);
98
- if (currentPage === undefined) {
99
- setInternalPage(newPage);
100
- }
101
- }, [onPageChange, currentPage]);
102
- useEffect(() => {
103
- // this is not most elegant but we want to do this if table was sorted by some column in a presorted table
104
- // but we don't know when the data changes, hence this useEffect on the data size
105
- if (isPresorted && onPageChange === undefined) {
106
- // we want to set page back to 1 if the data changes on presorted lists,
107
- // this is because the data was reset due to some sort behavior refetching new data
108
- handleChangePage({}, 1);
109
- }
110
- }, [handleChangePage, isPresorted, onPageChange, rows]);
111
- const handleRequestSort = (event, property) => {
112
- const isAsc = orderBy === property && order === 'asc';
113
- const newOrder = isAsc ? 'desc' : 'asc';
114
- setOrder(newOrder);
115
- setOrderBy(property);
116
- if (sortHandler) {
117
- sortHandler(newOrder, property);
118
- }
119
- };
120
- const hasEditColumn = columns.filter(c => c.type === 'edit').length > 0;
121
- const isSelected = row => {
122
- return selectedRows && selectedRows.indexOf(row) !== -1;
123
- };
124
- const handleSelectAllClick = event => {
125
- if (setSelectedRows) {
126
- if (event.target.checked) {
127
- setSelectedRows(rows);
128
- return;
129
- } else {
130
- setSelectedRows([]);
131
- }
132
- }
133
- };
134
- const handleClick = (event, row) => {
135
- if (setSelectedRows && selectedRows) {
136
- const selectedIndex = selectedRows.indexOf(row);
137
- let newSelected = [];
138
- if (selectedIndex === -1) {
139
- newSelected = newSelected.concat(selectedRows, row);
140
- } else if (selectedIndex === 0) {
141
- newSelected = newSelected.concat(selectedRows.slice(1));
142
- } else if (selectedIndex === selectedRows.length - 1) {
143
- newSelected = newSelected.concat(selectedRows.slice(0, -1));
144
- } else if (selectedIndex > 0) {
145
- newSelected = newSelected.concat(selectedRows.slice(0, selectedIndex), selectedRows.slice(selectedIndex + 1));
146
- }
147
- setSelectedRows(newSelected);
148
- }
149
- };
150
- const columnsToHeadCells = useCallback(columnsR => {
151
- return columnsR.map(c => ({
152
- id: c.key,
153
- disablePadding: true,
154
- label: typeof c.name === 'string' ? c.name.toUpperCase() : c.name,
155
- sx: [{
156
- paddingY: getTableCellPaddingY(density)
157
- }, ...(Array.isArray(c.sx) ? c.sx : [c.sx])],
158
- tooltipTitle: c.tooltipTitle
44
+ }, [
45
+ displayColumnKeyNames,
46
+ displayColumnsIndexed
47
+ ]);
48
+ useEffect(()=>{
49
+ if (setSelectedRows && rows.length >= 0) setSelectedRows((currentlySelectedRows)=>{
50
+ const emptyArray = [];
51
+ if (rows.length || currentlySelectedRows.length > rows.length) return emptyArray;
52
+ return currentlySelectedRows;
53
+ });
54
+ }, [
55
+ rows,
56
+ setSelectedRows
57
+ ]);
58
+ const handleChangePage = useCallback((event, newPage)=>{
59
+ onPageChange?.(newPage);
60
+ if (void 0 === currentPage) setInternalPage(newPage);
61
+ }, [
62
+ onPageChange,
63
+ currentPage
64
+ ]);
65
+ useEffect(()=>{
66
+ if (isPresorted && void 0 === onPageChange) handleChangePage({}, 1);
67
+ }, [
68
+ handleChangePage,
69
+ isPresorted,
70
+ onPageChange,
71
+ rows
72
+ ]);
73
+ const handleRequestSort = (event, property)=>{
74
+ const isAsc = orderBy === property && 'asc' === order;
75
+ const newOrder = isAsc ? 'desc' : 'asc';
76
+ setOrder(newOrder);
77
+ setOrderBy(property);
78
+ if (sortHandler) sortHandler(newOrder, property);
79
+ };
80
+ const hasEditColumn = columns.filter((c)=>'edit' === c.type).length > 0;
81
+ const isSelected = (row)=>selectedRows && -1 !== selectedRows.indexOf(row);
82
+ const handleSelectAllClick = (event)=>{
83
+ if (setSelectedRows) if (event.target.checked) return void setSelectedRows(rows);
84
+ else setSelectedRows([]);
85
+ };
86
+ const handleClick = (event, row)=>{
87
+ if (setSelectedRows && selectedRows) {
88
+ const selectedIndex = selectedRows.indexOf(row);
89
+ let newSelected = [];
90
+ if (-1 === selectedIndex) newSelected = newSelected.concat(selectedRows, row);
91
+ else if (0 === selectedIndex) newSelected = newSelected.concat(selectedRows.slice(1));
92
+ else if (selectedIndex === selectedRows.length - 1) newSelected = newSelected.concat(selectedRows.slice(0, -1));
93
+ else if (selectedIndex > 0) newSelected = newSelected.concat(selectedRows.slice(0, selectedIndex), selectedRows.slice(selectedIndex + 1));
94
+ setSelectedRows(newSelected);
95
+ }
96
+ };
97
+ const columnsToHeadCells = useCallback((columnsR)=>columnsR.map((c)=>({
98
+ id: c.key,
99
+ disablePadding: true,
100
+ label: 'string' == typeof c.name ? c.name.toUpperCase() : c.name,
101
+ sx: [
102
+ {
103
+ paddingY: getTableCellPaddingY(density)
104
+ },
105
+ ...Array.isArray(c.sx) ? c.sx : [
106
+ c.sx
107
+ ]
108
+ ],
109
+ tooltipTitle: c.tooltipTitle
110
+ })), [
111
+ density
112
+ ]);
113
+ const [headCells, setHeadCells] = react.useState();
114
+ react.useEffect(()=>{
115
+ if (displayColumnDetails) setHeadCells(columnsToHeadCells(displayColumnDetails));
116
+ }, [
117
+ columnsToHeadCells,
118
+ displayColumnDetails
119
+ ]);
120
+ const sensors = useSensors(useSensor(MouseSensor), useSensor(TouchSensor), useSensor(KeyboardSensor, {
121
+ coordinateGetter: sortableKeyboardCoordinates
159
122
  }));
160
- }, [density]);
161
- const [headCells, setHeadCells] = React.useState();
162
- React.useEffect(() => {
163
- if (displayColumnDetails) {
164
- setHeadCells(columnsToHeadCells(displayColumnDetails));
165
- }
166
- }, [columnsToHeadCells, displayColumnDetails]);
167
- const sensors = useSensors(useSensor(MouseSensor), useSensor(TouchSensor), useSensor(KeyboardSensor, {
168
- coordinateGetter: sortableKeyboardCoordinates
169
- }));
170
- const onReorderEndHandler = useCallback(({
171
- oldIndex,
172
- newIndex
173
- }) => {
174
- if (displayColumnKeyNames) {
175
- if (newIndex !== 0 && oldIndex !== 0) {
176
- const newOrder = [...displayColumnKeyNames];
177
- const moved = newOrder.splice(oldIndex, 1);
178
- newOrder.splice(newIndex, 0, moved[0]);
179
- setDisplayColumnKeyNames(newOrder);
180
- if (onReorderEnd) {
181
- onReorderEnd(newOrder);
123
+ const onReorderEndHandler = useCallback(({ oldIndex, newIndex })=>{
124
+ if (displayColumnKeyNames) {
125
+ if (0 !== newIndex && 0 !== oldIndex) {
126
+ const newOrder = [
127
+ ...displayColumnKeyNames
128
+ ];
129
+ const moved = newOrder.splice(oldIndex, 1);
130
+ newOrder.splice(newIndex, 0, moved[0]);
131
+ setDisplayColumnKeyNames(newOrder);
132
+ if (onReorderEnd) onReorderEnd(newOrder);
133
+ }
182
134
  }
183
- }
184
- }
185
- }, [displayColumnKeyNames, setDisplayColumnKeyNames, onReorderEnd]);
186
- const handleDragEnd = event => {
187
- if (headCells) {
188
- const {
189
- active,
190
- over
191
- } = event;
192
- if (active && over && active.id !== over.id && onReorderEndHandler) {
193
- const oldIndex = headCells.findIndex(item => item.id === active.id);
194
- const newIndex = headCells.findIndex(item => item.id === over.id);
195
- onReorderEndHandler({
196
- oldIndex,
197
- newIndex
198
- });
199
- }
200
- }
201
- };
202
- const pageNumber = useMemo(() => currentPage ?? internalPage, [currentPage, internalPage]);
203
- const sortedPageRows = useMemo(() => {
204
- if (rows) {
205
- const itemsToSkip = onPageChange ? 0 : maxItemsPerPage * (pageNumber - 1);
206
- return (isPresorted ? rows : stableSort(rows, getComparator(order, orderBy, sortComparator))).slice(itemsToSkip, itemsToSkip + maxItemsPerPage);
207
- } else {
208
- return [];
209
- }
210
- }, [rows, onPageChange, maxItemsPerPage, pageNumber, isPresorted, order, orderBy, sortComparator]);
211
-
212
- /**
213
- * Calculate pagination numbers to show.
214
- * If the table is empty (rows.length === 0) override calculation and show '0 of 0'
215
- * Pagination total is overridden by totalRowCount if provided.
216
- */
217
- const paginationTotal = useMemo(() => totalRowCount || rows.length, [rows.length, totalRowCount]);
218
- const pagesCount = useMemo(() => Math.ceil(paginationTotal / maxItemsPerPage), [maxItemsPerPage, paginationTotal]);
219
- const minRowNumber = useMemo(() => {
220
- if (!sortedPageRows.length) {
221
- return 0;
222
- }
223
- return (pageNumber - 1) * maxItemsPerPage + 1;
224
- }, [pageNumber, maxItemsPerPage, sortedPageRows.length]);
225
- const maxRowNumber = useMemo(() => {
226
- if (!sortedPageRows.length) {
227
- return 0;
228
- }
229
- return Math.min(pageNumber * maxItemsPerPage, paginationTotal);
230
- }, [pageNumber, maxItemsPerPage, paginationTotal, sortedPageRows.length]);
231
- return /*#__PURE__*/jsxs(Fragment, {
232
- children: [showTopBar && /*#__PURE__*/jsx(EnhancedTableToolbarV2, {
233
- selectedRowsCount: selectedRows?.length || 0,
234
- pagesCount: pagesCount,
235
- renderNumSelectedText: renderNumSelectedText,
236
- rowsCount: rows.length,
237
- topBarButtons: topBarButtons,
238
- topBarSelectionConfig: enhancedTopBarSelectionConfig ? {
239
- ...enhancedTopBarSelectionConfig,
240
- handleSelectAll: () => setSelectedRows && setSelectedRows(rows),
241
- handleSelectNone: () => setSelectedRows && setSelectedRows([])
242
- } : undefined
243
- }), /*#__PURE__*/jsx(TableContainer, {
244
- id: id,
245
- children: /*#__PURE__*/jsx(DndContext, {
246
- sensors: sensors,
247
- onDragEnd: handleDragEnd,
248
- children: /*#__PURE__*/jsxs(Table, {
249
- stickyHeader: stickyHeader,
250
- "aria-labelledby": "tableTitle",
251
- size: "medium",
252
- "aria-label": "enhanced table",
253
- sx: {
254
- borderCollapse: 'initial'
255
- },
256
- children: [!hideHeader && /*#__PURE__*/jsx(EnhancedTableHead, {
257
- order: order,
258
- orderBy: orderBy,
259
- onRequestSort: handleRequestSort,
260
- columns: displayColumnDetails ?? [],
261
- onReorderEnd: onReorderEndHandler,
262
- numSelected: showCheckbox ? selectedRows?.length : undefined,
263
- onSelectAllClick: showCheckbox ? handleSelectAllClick : undefined,
264
- rowCount: showCheckbox ? sortedPageRows?.length : undefined,
265
- density: density
266
- }), /*#__PURE__*/jsxs(TableBody, {
267
- children: [sortedPageRows.length < 1 && emptyTableMessage && /*#__PURE__*/jsx(TableRow, {
268
- children: /*#__PURE__*/jsx(TableCell, {
269
- colSpan: columns.length + 1,
270
- align: "center",
271
- children: /*#__PURE__*/jsx("p", {
272
- children: emptyTableMessage
135
+ }, [
136
+ displayColumnKeyNames,
137
+ setDisplayColumnKeyNames,
138
+ onReorderEnd
139
+ ]);
140
+ const handleDragEnd = (event)=>{
141
+ if (headCells) {
142
+ const { active, over } = event;
143
+ if (active && over && active.id !== over.id && onReorderEndHandler) {
144
+ const oldIndex = headCells.findIndex((item)=>item.id === active.id);
145
+ const newIndex = headCells.findIndex((item)=>item.id === over.id);
146
+ onReorderEndHandler({
147
+ oldIndex,
148
+ newIndex
149
+ });
150
+ }
151
+ }
152
+ };
153
+ const pageNumber = useMemo(()=>currentPage ?? internalPage, [
154
+ currentPage,
155
+ internalPage
156
+ ]);
157
+ const sortedPageRows = useMemo(()=>{
158
+ if (!rows) return [];
159
+ else {
160
+ const itemsToSkip = onPageChange ? 0 : maxItemsPerPage * (pageNumber - 1);
161
+ return (isPresorted ? rows : stableSort(rows, getComparator(order, orderBy, sortComparator))).slice(itemsToSkip, itemsToSkip + maxItemsPerPage);
162
+ }
163
+ }, [
164
+ rows,
165
+ onPageChange,
166
+ maxItemsPerPage,
167
+ pageNumber,
168
+ isPresorted,
169
+ order,
170
+ orderBy,
171
+ sortComparator
172
+ ]);
173
+ const paginationTotal = useMemo(()=>totalRowCount || rows.length, [
174
+ rows.length,
175
+ totalRowCount
176
+ ]);
177
+ const pagesCount = useMemo(()=>Math.ceil(paginationTotal / maxItemsPerPage), [
178
+ maxItemsPerPage,
179
+ paginationTotal
180
+ ]);
181
+ const minRowNumber = useMemo(()=>{
182
+ if (!sortedPageRows.length) return 0;
183
+ return (pageNumber - 1) * maxItemsPerPage + 1;
184
+ }, [
185
+ pageNumber,
186
+ maxItemsPerPage,
187
+ sortedPageRows.length
188
+ ]);
189
+ const maxRowNumber = useMemo(()=>{
190
+ if (!sortedPageRows.length) return 0;
191
+ return Math.min(pageNumber * maxItemsPerPage, paginationTotal);
192
+ }, [
193
+ pageNumber,
194
+ maxItemsPerPage,
195
+ paginationTotal,
196
+ sortedPageRows.length
197
+ ]);
198
+ return /*#__PURE__*/ jsxs(Fragment, {
199
+ children: [
200
+ showTopBar && /*#__PURE__*/ jsx(EnhancedTableToolbarV2, {
201
+ selectedRowsCount: selectedRows?.length || 0,
202
+ pagesCount: pagesCount,
203
+ renderNumSelectedText: renderNumSelectedText,
204
+ rowsCount: rows.length,
205
+ topBarButtons: topBarButtons,
206
+ topBarSelectionConfig: enhancedTopBarSelectionConfig ? {
207
+ ...enhancedTopBarSelectionConfig,
208
+ handleSelectAll: ()=>setSelectedRows && setSelectedRows(rows),
209
+ handleSelectNone: ()=>setSelectedRows && setSelectedRows([])
210
+ } : void 0
211
+ }),
212
+ /*#__PURE__*/ jsx(TableContainer, {
213
+ id: id,
214
+ children: /*#__PURE__*/ jsx(DndContext, {
215
+ sensors: sensors,
216
+ onDragEnd: handleDragEnd,
217
+ children: /*#__PURE__*/ jsxs(Table, {
218
+ stickyHeader: stickyHeader,
219
+ "aria-labelledby": "tableTitle",
220
+ size: "medium",
221
+ "aria-label": "enhanced table",
222
+ sx: {
223
+ borderCollapse: 'initial'
224
+ },
225
+ children: [
226
+ !hideHeader && /*#__PURE__*/ jsx(TableHeader, {
227
+ order: order,
228
+ orderBy: orderBy,
229
+ onRequestSort: handleRequestSort,
230
+ columns: displayColumnDetails ?? [],
231
+ onReorderEnd: onReorderEndHandler,
232
+ numSelected: showCheckbox ? selectedRows?.length : void 0,
233
+ onSelectAllClick: showCheckbox ? handleSelectAllClick : void 0,
234
+ rowCount: showCheckbox ? sortedPageRows?.length : void 0,
235
+ density: density
236
+ }),
237
+ /*#__PURE__*/ jsxs(TableBody, {
238
+ children: [
239
+ sortedPageRows.length < 1 && emptyTableMessage && /*#__PURE__*/ jsx(TableRow, {
240
+ children: /*#__PURE__*/ jsx(TableCell, {
241
+ colSpan: columns.length + 1,
242
+ align: "center",
243
+ children: /*#__PURE__*/ jsx("p", {
244
+ children: emptyTableMessage
245
+ })
246
+ })
247
+ }),
248
+ sortedPageRows && sortedPageRows.map((row, index)=>{
249
+ const onClick = onSelect && !controlledOnSelect ? ()=>onSelect(row) : void 0;
250
+ const isItemSelected = isSelected(row);
251
+ return /*#__PURE__*/ jsxs(react.Fragment, {
252
+ children: [
253
+ /*#__PURE__*/ jsxs(TableRow, {
254
+ id: `row${index + 1}`,
255
+ hover: true,
256
+ onClick: (e)=>{
257
+ e.stopPropagation();
258
+ if (onClick && !hasEditColumn && (isClickable ? isClickable(row) : true)) onClick();
259
+ if (!onClick && !hasEditColumn && (isClickable ? isClickable(row) : true)) handleClick(e, row);
260
+ },
261
+ selected: isItemSelected,
262
+ "aria-checked": isItemSelected,
263
+ sx: {
264
+ ...isInactive && isInactive(row) ? {
265
+ backgroundColor: theme.palette.neutral[50]
266
+ } : {},
267
+ height: getTableRowHeight(density),
268
+ '&.MuiTableRow-root.Mui-selected': {
269
+ backgroundColor: theme.palette.TwClrBgSelectedTertiary
270
+ },
271
+ '&:nth-of-type(odd)': {
272
+ backgroundColor: theme.palette.TwClrBgSecondary
273
+ },
274
+ '&:hover': {
275
+ backgroundColor: theme.palette.TwClrBgSecondaryHover
276
+ }
277
+ },
278
+ children: [
279
+ showCheckbox && /*#__PURE__*/ jsx(TableCell, {
280
+ padding: "checkbox",
281
+ sx: {
282
+ '&.MuiTableCell-root': {
283
+ borderBottom: `1px solid ${theme.palette.TwClrBgSecondary}`
284
+ }
285
+ },
286
+ children: /*#__PURE__*/ jsx(Checkbox, {
287
+ disableRipple: true,
288
+ sx: CheckboxStyle(theme),
289
+ color: "primary",
290
+ checked: isItemSelected,
291
+ onClick: (e)=>isClickable && isClickable(row) ? null : handleClick(e, row)
292
+ })
293
+ }),
294
+ displayColumnDetails && displayColumnDetails.map((c)=>/*#__PURE__*/ jsx(Renderer, {
295
+ index: index + 1,
296
+ row: row,
297
+ column: c,
298
+ value: row[c.key],
299
+ onRowClick: onSelect && controlledOnSelect ? (newValue)=>onSelect(row, c.key, newValue) : onClick,
300
+ reloadData: reloadData,
301
+ booleanFalseText: booleanFalseText,
302
+ booleanTrueText: booleanTrueText,
303
+ editText: editText,
304
+ sx: {
305
+ paddingY: getTableCellPaddingY(density)
306
+ }
307
+ }, c.key))
308
+ ]
309
+ }),
310
+ DetailsRenderer && /*#__PURE__*/ jsx(DetailsRenderer, {
311
+ index: index,
312
+ row: row
313
+ })
314
+ ]
315
+ }, index);
316
+ })
317
+ ]
318
+ })
319
+ ]
320
+ })
273
321
  })
274
- })
275
- }), sortedPageRows && sortedPageRows.map((row, index) => {
276
- const onClick = onSelect && !controlledOnSelect ? () => onSelect(row) : undefined;
277
- const isItemSelected = isSelected(row);
278
- return /*#__PURE__*/jsxs(React.Fragment, {
279
- children: [/*#__PURE__*/jsxs(TableRow, {
280
- id: `row${index + 1}`,
281
- hover: true,
282
- onClick: e => {
283
- e.stopPropagation();
284
- if (onClick && !hasEditColumn && (isClickable ? isClickable(row) : true)) {
285
- onClick();
286
- }
287
- if (!onClick && !hasEditColumn && (isClickable ? isClickable(row) : true)) {
288
- handleClick(e, row);
289
- }
290
- },
291
- selected: isItemSelected,
292
- "aria-checked": isItemSelected,
293
- sx: {
294
- ...(isInactive && isInactive(row) ? {
295
- backgroundColor: theme.palette.neutral[50]
296
- } : {}),
297
- height: getTableRowHeight(density),
298
- '&.MuiTableRow-root.Mui-selected': {
299
- backgroundColor: theme.palette.TwClrBgSelectedTertiary
300
- },
301
- '&:nth-of-type(odd)': {
302
- backgroundColor: theme.palette.TwClrBgSecondary
303
- },
304
- '&:hover': {
305
- backgroundColor: theme.palette.TwClrBgSecondaryHover
306
- }
307
- },
308
- children: [showCheckbox && /*#__PURE__*/jsx(TableCell, {
309
- padding: "checkbox",
310
- sx: {
311
- '&.MuiTableCell-root': {
312
- borderBottom: `1px solid ${theme.palette.TwClrBgSecondary}`
313
- }
314
- },
315
- children: /*#__PURE__*/jsx(Checkbox, {
316
- disableRipple: true,
317
- sx: CheckboxStyle(theme),
318
- color: "primary",
319
- checked: isItemSelected,
320
- onClick: e => !isClickable || !isClickable(row) ? handleClick(e, row) : null
322
+ }),
323
+ tableComments && /*#__PURE__*/ jsx(Typography, {
324
+ fontWeight: 400,
325
+ fontSize: "14px",
326
+ color: theme.palette.TwClrTxtSecondary,
327
+ marginTop: 2,
328
+ children: tableComments
329
+ }),
330
+ renderPaginationText && /*#__PURE__*/ jsxs(Box, {
331
+ display: "flex",
332
+ alignItems: "center",
333
+ justifyContent: "flex-end",
334
+ paddingTop: "24px",
335
+ children: [
336
+ /*#__PURE__*/ jsx(Typography, {
337
+ paddingRight: "24px",
338
+ fontSize: "14px",
339
+ children: renderPaginationText(minRowNumber, maxRowNumber, paginationTotal)
340
+ }),
341
+ /*#__PURE__*/ jsx(Pagination, {
342
+ count: pagesCount,
343
+ page: pageNumber,
344
+ shape: "rounded",
345
+ onChange: handleChangePage,
346
+ siblingCount: isMobile ? 0 : 1,
347
+ size: 'small'
321
348
  })
322
- }), displayColumnDetails && displayColumnDetails.map(c => /*#__PURE__*/jsx(Renderer, {
323
- index: index + 1,
324
- row: row,
325
- column: c,
326
- value: row[c.key],
327
- onRowClick: onSelect && controlledOnSelect ? newValue => onSelect(row, c.key, newValue) : onClick,
328
- reloadData: reloadData,
329
- booleanFalseText: booleanFalseText,
330
- booleanTrueText: booleanTrueText,
331
- editText: editText,
332
- sx: {
333
- paddingY: getTableCellPaddingY(density)
334
- }
335
- }, c.key))]
336
- }), DetailsRenderer && /*#__PURE__*/jsx(DetailsRenderer, {
337
- index: index,
338
- row: row
339
- })]
340
- }, index);
341
- })]
342
- })]
343
- })
344
- })
345
- }), tableComments && /*#__PURE__*/jsx(Typography, {
346
- fontWeight: 400,
347
- fontSize: "14px",
348
- color: theme.palette.TwClrTxtSecondary,
349
- marginTop: 2,
350
- children: tableComments
351
- }), renderPaginationText && /*#__PURE__*/jsxs(Box, {
352
- display: "flex",
353
- alignItems: "center",
354
- justifyContent: "flex-end",
355
- paddingTop: "24px",
356
- children: [/*#__PURE__*/jsx(Typography, {
357
- paddingRight: "24px",
358
- fontSize: "14px",
359
- children: renderPaginationText(minRowNumber, maxRowNumber, paginationTotal)
360
- }), /*#__PURE__*/jsx(Pagination, {
361
- count: pagesCount,
362
- page: pageNumber,
363
- shape: "rounded",
364
- onChange: handleChangePage,
365
- siblingCount: isMobile ? 0 : 1,
366
- size: 'small'
367
- })]
368
- })]
369
- });
349
+ ]
350
+ })
351
+ ]
352
+ });
370
353
  }
371
354
  function tableSort(ignore, array, comparator) {
372
- if (ignore) {
373
- return array;
374
- }
375
- return stableSort(array, comparator);
355
+ if (ignore) return array;
356
+ return stableSort(array, comparator);
376
357
  }
377
-
378
- export { EnhancedTable as default, isTopBarButton, tableSort };
358
+ export default EnhancedTable;
359
+ export { isTopBarButton, tableSort };