@wavemaker/react-runtime 11.14.2-rc.6311 → 12.0.0-next.28533

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 (244) hide show
  1. package/actions/base-action.js +5 -7
  2. package/actions/login-action.js +7 -8
  3. package/actions/logout-action.js +5 -7
  4. package/actions/navigation-action.js +32 -10
  5. package/actions/notification-action.js +22 -8
  6. package/actions/timer-action.js +13 -15
  7. package/actions/toast.js +4 -2
  8. package/actions/toast.service.js +1 -2
  9. package/components/advanced/carousel/index.js +1 -1
  10. package/components/advanced/carousel/template.js +1 -1
  11. package/components/basic/anchor/index.js +26 -9
  12. package/components/basic/html/index.js +115 -24
  13. package/components/basic/icon/index.js +2 -1
  14. package/components/basic/iframe/index.js +2 -1
  15. package/components/basic/label/index.js +12 -9
  16. package/components/basic/message/index.js +12 -3
  17. package/components/basic/picture/index.js +11 -4
  18. package/components/basic/progress-bar/index.js +1 -1
  19. package/components/basic/progress-circle/index.js +34 -28
  20. package/components/basic/progress-circle/props.js +10 -2
  21. package/components/basic/richtexteditor/index.js +95 -94
  22. package/components/basic/search/index.js +401 -156
  23. package/components/basic/search/providers.js +126 -61
  24. package/components/basic/spinner/index.js +2 -1
  25. package/components/basic/tree/index.js +34 -34
  26. package/components/basic/tree/utils.js +10 -4
  27. package/components/chart/components/barColumnChart/index.js +36 -33
  28. package/components/chart/components/bubbleChart/index.js +35 -25
  29. package/components/chart/components/chartLegend/utils.js +2 -1
  30. package/components/chart/components/cumulativeLineChart/index.js +30 -26
  31. package/components/chart/components/lineAreaChart/index.js +50 -32
  32. package/components/chart/components/pieDonutChart/index.js +13 -4
  33. package/components/chart/hooks/useXAxisConfig.js +15 -8
  34. package/components/chart/index.js +223 -53
  35. package/components/chart/utils.js +12 -1
  36. package/components/constants.js +5 -2
  37. package/components/container/accordion/accordion-pane/index.js +17 -12
  38. package/components/container/accordion/index.js +9 -4
  39. package/components/container/alignment-utils.js +56 -1
  40. package/components/container/index.js +49 -20
  41. package/components/container/panel/components/panel-header/index.js +3 -4
  42. package/components/container/panel/index.js +15 -10
  43. package/components/container/tabs/index.js +92 -14
  44. package/components/container/tabs/tab-pane/index.js +15 -8
  45. package/components/container/tabs/utils.js +51 -0
  46. package/components/container/wizard/components/StepComponents.js +2 -1
  47. package/components/container/wizard/components/WizardStep.js +2 -1
  48. package/components/container/wizard/index.js +64 -35
  49. package/components/container/wizard/utils.js +46 -1
  50. package/components/container/wizard/wizard-step/index.js +11 -1
  51. package/components/data/card/card-content/index.js +1 -1
  52. package/components/data/form/base-form/index.js +991 -180
  53. package/components/data/form/base-form/props.js +3 -1
  54. package/components/data/form/base-form/utils.js +159 -1
  55. package/components/data/form/dynamic-fields/constant.js +53 -0
  56. package/components/data/form/dynamic-fields/index.js +10 -45
  57. package/components/data/form/dynamic-fields/utils.js +37 -2
  58. package/components/data/form/form-action/index.js +5 -4
  59. package/components/data/form/form-context.js +5 -1
  60. package/components/data/form/form-controller/utils.js +84 -0
  61. package/components/data/form/form-controller/validation-contrustor.js +402 -189
  62. package/components/data/form/form-controller/withFormController.js +191 -52
  63. package/components/data/form/form-field/base-field.js +54 -33
  64. package/components/data/form/form-field/index.js +28 -5
  65. package/components/data/form/form-header/index.js +3 -4
  66. package/components/data/form/index.js +20 -1
  67. package/components/data/list/components/ListDND.js +2 -1
  68. package/components/data/list/components/ListItem.js +6 -2
  69. package/components/data/list/components/ListItemWithTemplate.js +46 -2
  70. package/components/data/list/components/ListItems.js +17 -26
  71. package/components/data/list/components/ListPagination.js +3 -3
  72. package/components/data/list/components/StandardListItems.js +3 -4
  73. package/components/data/list/hooks/useListEffects.js +55 -14
  74. package/components/data/list/hooks/useListEventHandlers.js +3 -1
  75. package/components/data/list/hooks/useListState.js +3 -1
  76. package/components/data/list/hooks/usePaginatedGroupedData.js +18 -5
  77. package/components/data/list/index.js +74 -55
  78. package/components/data/list/utils/list-helpers.js +73 -35
  79. package/components/data/list/utils/list-widget-methods.js +138 -95
  80. package/components/data/live-filter/index.js +26 -15
  81. package/components/data/live-form/index.js +23 -7
  82. package/components/data/live-form/props.js +1 -1
  83. package/components/data/pagination/components/BasicPagination.js +71 -16
  84. package/components/data/pagination/components/PageSizeSelector.js +8 -3
  85. package/components/data/pagination/components/TotalRecords.js +1 -5
  86. package/components/data/pagination/hooks/usePagination.js +349 -66
  87. package/components/data/pagination/index.js +137 -19
  88. package/components/data/table/components/AddNewRow.js +5 -1
  89. package/components/data/table/components/EditableCell.js +2 -2
  90. package/components/data/table/components/RowCells.js +64 -0
  91. package/components/data/table/components/RowExpansionButton.js +2 -2
  92. package/components/data/table/components/SummaryCell.js +111 -0
  93. package/components/data/table/components/SummaryRow.js +54 -0
  94. package/components/data/table/components/SummaryRowFooter.js +46 -0
  95. package/components/data/table/components/TableBody.js +61 -59
  96. package/components/data/table/components/TableDataRow.js +109 -0
  97. package/components/data/table/components/TableFilters.js +225 -121
  98. package/components/data/table/components/TableHeader.js +291 -23
  99. package/components/data/table/components/TablePanelHeading.js +139 -8
  100. package/components/data/table/components/index.js +22 -1
  101. package/components/data/table/hooks/use-edited-rows.js +141 -0
  102. package/components/data/table/hooks/useCellState.js +5 -12
  103. package/components/data/table/hooks/useFormWidget.js +58 -51
  104. package/components/data/table/hooks/usePaginationState.js +45 -24
  105. package/components/data/table/hooks/usePanelStructure.js +4 -4
  106. package/components/data/table/hooks/useRowHandlers.js +39 -5
  107. package/components/data/table/hooks/useRowSelection.js +244 -50
  108. package/components/data/table/hooks/useServerSideSorting.js +81 -37
  109. package/components/data/table/hooks/useTableColumns.js +211 -118
  110. package/components/data/table/hooks/useTableData.js +54 -9
  111. package/components/data/table/hooks/useTableEdit.js +272 -97
  112. package/components/data/table/hooks/useTableEffects.js +31 -13
  113. package/components/data/table/hooks/useTableFilter.js +1 -1
  114. package/components/data/table/hooks/useTableInitialization.js +23 -22
  115. package/components/data/table/hooks/useTableState.js +11 -5
  116. package/components/data/table/hooks/useTableStateManager.js +140 -65
  117. package/components/data/table/index.js +637 -274
  118. package/components/data/table/live-table/index.js +54 -22
  119. package/components/data/table/table-action/index.js +1 -1
  120. package/components/data/table/table-group/index.js +26 -0
  121. package/components/data/table/table-row-action/index.js +32 -18
  122. package/components/data/table/utils/buildSelectionColumns.js +12 -21
  123. package/components/data/table/utils/columnBuilder.js +29 -14
  124. package/components/data/table/utils/columnProxy.js +68 -1
  125. package/components/data/table/utils/constants.js +6 -2
  126. package/components/data/table/utils/crud-handlers.js +68 -63
  127. package/components/data/table/utils/groupHeaderUtils.js +102 -0
  128. package/components/data/table/utils/index.js +210 -21
  129. package/components/data/table/utils/renderDisplayCell.js +6 -6
  130. package/components/data/table/utils/selectionUtils.js +25 -26
  131. package/components/data/table/utils/validation.js +1 -0
  132. package/components/data/utils/filter-field-util.js +3 -3
  133. package/components/dialogs/alert-dialog/index.js +1 -1
  134. package/components/dialogs/confirm-dialog/index.js +1 -1
  135. package/components/dialogs/dialog/index.js +4 -1
  136. package/components/dialogs/dialog-content/index.js +3 -1
  137. package/components/dialogs/dialog-header/index.js +2 -2
  138. package/components/dialogs/iframe-dialog/index.js +11 -5
  139. package/components/dialogs/index.js +1 -1
  140. package/components/dialogs/login-dialog/index.js +1 -1
  141. package/components/dialogs/page-dialog/index.js +1 -1
  142. package/components/form/button/index.js +33 -7
  143. package/components/input/calendar/index.js +18 -6
  144. package/components/input/chips/index.js +99 -28
  145. package/components/input/chips/utils.js +34 -4
  146. package/components/input/color-picker/index.js +74 -25
  147. package/components/input/composite/index.js +3 -3
  148. package/components/input/currency/index.js +35 -49
  149. package/components/input/default/checkbox/index.js +23 -28
  150. package/components/input/default/checkboxset/index.js +38 -18
  151. package/components/input/default/checkboxset/utils.js +30 -0
  152. package/components/input/default/radioset/index.js +36 -39
  153. package/components/input/default/switch/index.js +30 -13
  154. package/components/input/epoch/date/index.js +130 -69
  155. package/components/input/epoch/date/utils.js +94 -1
  156. package/components/input/epoch/datetime/index.js +72 -22
  157. package/components/input/epoch/datetime/utils.js +49 -10
  158. package/components/input/epoch/time/index.js +68 -19
  159. package/components/input/epoch/time/utils.js +62 -14
  160. package/components/input/fileupload/Utils.js +12 -7
  161. package/components/input/fileupload/components/MultiUpload.js +2 -6
  162. package/components/input/fileupload/components/SingleUpload.js +3 -7
  163. package/components/input/fileupload/index.js +6 -10
  164. package/components/input/fileupload/useFileUpload.js +16 -5
  165. package/components/input/number/index.js +158 -43
  166. package/components/input/rating/index.js +90 -7
  167. package/components/input/select/index.js +147 -70
  168. package/components/input/slider/index.js +84 -26
  169. package/components/input/text/index.js +38 -18
  170. package/components/input/text/util.js +283 -130
  171. package/components/input/textarea/index.js +13 -10
  172. package/components/input/upload/index.js +124 -0
  173. package/components/input/upload/props.js +5 -0
  174. package/components/input/util/index.js +11 -0
  175. package/components/navbar/index.js +51 -3
  176. package/components/navbar/nav/index.js +46 -16
  177. package/components/navbar/nav-item/index.js +11 -5
  178. package/components/navigation/menu/components/ListItems.js +3 -0
  179. package/components/navigation/menu/constants.js +2 -1
  180. package/components/navigation/menu/hooks/useHoverState.hook.js +48 -0
  181. package/components/navigation/menu/hooks/useKeyboardMovements.hook.js +37 -0
  182. package/components/navigation/menu/hooks/useTransformedDataset.hook.js +15 -0
  183. package/components/navigation/menu/index.js +326 -188
  184. package/components/navigation/menu/utils/action-task.js +14 -0
  185. package/components/navigation/menu/utils/role-filter.js +76 -0
  186. package/components/navigation/popover/index.js +99 -26
  187. package/components/page/partial-container/index.js +34 -5
  188. package/components/prefab/index.js +2 -4
  189. package/context/PrefabContext.js +10 -6
  190. package/context/WidgetProvider.js +30 -31
  191. package/core/app.service.js +1 -1
  192. package/core/constants/events.js +57 -1
  193. package/core/dialog.service.js +1 -2
  194. package/core/event-notifier.js +1 -2
  195. package/core/formatter/array-formatters.js +33 -0
  196. package/core/formatter/date-formatters.js +2 -4
  197. package/core/formatter/index.js +2 -1
  198. package/core/formatter/number-formatters.js +5 -10
  199. package/core/formatter/security-formatters.js +2 -4
  200. package/core/formatter/string-formatters.js +3 -6
  201. package/core/proxy-service.js +84 -13
  202. package/core/script-registry.js +108 -48
  203. package/core/util/common.js +4 -4
  204. package/core/util/compare.js +30 -0
  205. package/core/util/dom.js +8 -8
  206. package/core/util/index.js +16 -6
  207. package/core/util/safe-is-equal.js +156 -0
  208. package/core/util/security.js +1 -2
  209. package/core/util/utils.js +16 -7
  210. package/higherOrder/BaseApp.js +108 -65
  211. package/higherOrder/BaseDateTime.js +31 -13
  212. package/higherOrder/BasePage.js +268 -144
  213. package/higherOrder/BasePartial.js +1 -1
  214. package/higherOrder/BasePrefab.js +33 -15
  215. package/higherOrder/DataNav.js +99 -16
  216. package/higherOrder/helper.js +5 -0
  217. package/higherOrder/withBaseWrapper.js +41 -28
  218. package/hooks/useAuth.js +11 -5
  219. package/hooks/useHttp.js +280 -94
  220. package/mui-config/theme-provider.js +1 -1
  221. package/mui-config/theme.js +1 -1
  222. package/package-lock.json +824 -724
  223. package/package.json +8 -8
  224. package/store/bindActions/i18nActions.js +18 -0
  225. package/store/index.js +3 -1
  226. package/store/slices/appConfigSlice.js +2 -2
  227. package/store/slices/authSlice.js +31 -28
  228. package/store/slices/i18nSlice.js +2 -2
  229. package/store/slices/navigationSlice.js +35 -0
  230. package/store/viewport.service.js +255 -0
  231. package/utils/attr.js +35 -0
  232. package/utils/dataset-util.js +1 -2
  233. package/utils/form-state.util.js +43 -12
  234. package/utils/form-utils.js +47 -2
  235. package/utils/format-util.js +28 -13
  236. package/utils/page-params-util.js +33 -1
  237. package/utils/state-persistance.js +72 -13
  238. package/utils/transformedDataset-utils.js +35 -24
  239. package/variables/base-variable.js +12 -14
  240. package/variables/crud-variable.js +225 -0
  241. package/variables/live-variable.js +56 -20
  242. package/variables/metadata.service.js +123 -0
  243. package/variables/model-variable.js +21 -15
  244. package/variables/service-variable.js +88 -83
@@ -7,30 +7,152 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.TableHeaderComponent = void 0;
9
9
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
13
  var _react = _interopRequireWildcard(require("react"));
11
14
  var _material = require("@mui/material");
12
15
  var _reactTable = require("@tanstack/react-table");
13
16
  var _utils = require("../utils");
14
17
  var _TableFilters = require("./TableFilters");
18
+ var _groupHeaderUtils = require("../utils/groupHeaderUtils");
19
+ var _excluded = ["header", "enablesort", "rowSpan", "children", "className", "style", "title", "onClick"],
20
+ _excluded2 = ["rowSpan", "columnwidth"];
15
21
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
16
22
  var __jsx = _react["default"].createElement;
17
- var TableHeaderComponent = exports.TableHeaderComponent = /*#__PURE__*/(0, _react.memo)(function (_ref) {
18
- var table = _ref.table,
23
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
24
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
25
+ // Helper component for rendering a standard table header cell
26
+ var StandardHeaderCell = /*#__PURE__*/(0, _react.memo)(function (_ref) {
27
+ var _header$column$column;
28
+ var header = _ref.header,
19
29
  enablesort = _ref.enablesort,
20
- _ref$rowClass = _ref.rowClass,
21
- rowClass = _ref$rowClass === void 0 ? "" : _ref$rowClass,
22
- sorting = _ref.sorting,
23
- columnSizing = _ref.columnSizing,
24
- rowSelection = _ref.rowSelection,
25
- rowExpansionConfig = _ref.rowExpansionConfig,
26
- filterMode = _ref.filterMode,
27
- columnFilters = _ref.columnFilters,
28
- onColumnFilterChange = _ref.onColumnFilterChange,
29
- renderFormWidget = _ref.renderFormWidget,
30
- listener = _ref.listener;
30
+ _ref$rowSpan = _ref.rowSpan,
31
+ rowSpan = _ref$rowSpan === void 0 ? 1 : _ref$rowSpan,
32
+ children = _ref.children,
33
+ className = _ref.className,
34
+ style = _ref.style,
35
+ title = _ref.title,
36
+ onClick = _ref.onClick,
37
+ rest = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
38
+ var canSort = enablesort && header.column.getCanSort();
39
+ var isSorted = header.column.getIsSorted();
40
+
41
+ // Merge className with meta className if present
42
+ var metaClassName = ((_header$column$column = header.column.columnDef) === null || _header$column$column === void 0 || (_header$column$column = _header$column$column.meta) === null || _header$column$column === void 0 ? void 0 : _header$column$column.className) || "";
43
+ var mergedClassName = "".concat(_utils.TABLE_CSS_CLASSES.headerCell, " ").concat(metaClassName, " ").concat(className || "").trim();
44
+
45
+ // Merge default styles with provided styles
46
+ var mergedStyle = _objectSpread({
47
+ cursor: canSort ? "pointer" : "default",
48
+ userSelect: "none",
49
+ width: header.getSize(),
50
+ position: "relative"
51
+ }, style);
52
+
53
+ // Get title from header definition or use provided title
54
+ var headerTitle = header.column.columnDef.header && typeof header.column.columnDef.header !== "function" ? header.column.columnDef.header.toString() : "";
55
+ return __jsx(_material.TableCell, (0, _extends2["default"])({
56
+ className: mergedClassName,
57
+ rowSpan: rowSpan,
58
+ style: mergedStyle,
59
+ title: title || headerTitle,
60
+ onClick: onClick || (canSort ? header.column.getToggleSortingHandler() : undefined)
61
+ }, rest), children || __jsx(_react["default"].Fragment, null, __jsx(_material.Box, {
62
+ component: "span"
63
+ }, header.isPlaceholder ? null : (0, _reactTable.flexRender)(header.column.columnDef.header, header.getContext())), canSort && __jsx(_material.Box, {
64
+ style: {
65
+ zIndex: 90
66
+ },
67
+ component: "span",
68
+ className: "sort-buttons-container ".concat(isSorted ? "active" : "")
69
+ }, __jsx(_material.Box, {
70
+ component: "i",
71
+ className: "sort-icon".concat(isSorted === "asc" ? " ".concat(_utils.TABLE_CSS_CLASSES.ascIcon) : isSorted === "desc" ? " ".concat(_utils.TABLE_CSS_CLASSES.descIcon) : "")
72
+ })), header.column.getCanResize() && __jsx(_material.Box, {
73
+ className: "ui-resizable-handle ui-resizable-e",
74
+ onMouseDown: header.getResizeHandler(),
75
+ onTouchStart: header.getResizeHandler()
76
+ })));
77
+ });
78
+ StandardHeaderCell.displayName = "StandardHeaderCell";
79
+
80
+ // Helper component for rendering a group header cell
81
+ var GroupHeaderCell = /*#__PURE__*/(0, _react.memo)(function (_ref2) {
82
+ var headerCell = _ref2.headerCell;
83
+ var groupClasses = ["app-datagrid-group-header-cell"];
84
+ if (headerCell["class"]) groupClasses.push(headerCell["class"]);
85
+ if (headerCell.colClass) groupClasses.push(headerCell.colClass);
86
+ var groupStyles = _objectSpread({
87
+ textAlign: headerCell.textAlignment || "center",
88
+ backgroundColor: headerCell.backgroundColor
89
+ }, headerCell.styles || {});
90
+ return __jsx(_material.TableCell, {
91
+ className: groupClasses.join(" "),
92
+ colSpan: headerCell.colspan || 1,
93
+ style: groupStyles,
94
+ title: headerCell.displayName
95
+ }, __jsx("span", {
96
+ className: "header-data"
97
+ }, headerCell.displayName));
98
+ });
99
+ GroupHeaderCell.displayName = "GroupHeaderCell";
100
+
101
+ // Helper component for expansion header cell
102
+ var ExpansionHeaderCell = /*#__PURE__*/(0, _react.memo)(function (_ref3) {
103
+ var _ref3$rowSpan = _ref3.rowSpan,
104
+ rowSpan = _ref3$rowSpan === void 0 ? 1 : _ref3$rowSpan,
105
+ columnwidth = _ref3.columnwidth,
106
+ rest = (0, _objectWithoutProperties2["default"])(_ref3, _excluded2);
107
+ return __jsx(_material.TableCell, (0, _extends2["default"])({}, rest, {
108
+ className: "".concat(_utils.TABLE_CSS_CLASSES.headerCell, " ").concat(rest.className || "").trim(),
109
+ rowSpan: rowSpan,
110
+ style: _objectSpread({
111
+ width: columnwidth || "50px",
112
+ padding: "8px",
113
+ userSelect: "none"
114
+ }, rest.style)
115
+ }));
116
+ });
117
+ ExpansionHeaderCell.displayName = "ExpansionHeaderCell";
118
+ var TableHeaderComponent = exports.TableHeaderComponent = /*#__PURE__*/(0, _react.memo)(function (_ref4) {
119
+ var table = _ref4.table,
120
+ enablesort = _ref4.enablesort,
121
+ _ref4$enablecolumnsel = _ref4.enablecolumnselection,
122
+ enablecolumnselection = _ref4$enablecolumnsel === void 0 ? false : _ref4$enablecolumnsel,
123
+ _ref4$rowClass = _ref4.rowClass,
124
+ rowClass = _ref4$rowClass === void 0 ? "" : _ref4$rowClass,
125
+ rowExpansionConfig = _ref4.rowExpansionConfig,
126
+ filterMode = _ref4.filterMode,
127
+ columnFilters = _ref4.columnFilters,
128
+ onColumnFilterChange = _ref4.onColumnFilterChange,
129
+ renderFormWidget = _ref4.renderFormWidget,
130
+ listener = _ref4.listener,
131
+ tableStructure = _ref4.tableStructure,
132
+ onColumnSelect = _ref4.onColumnSelect,
133
+ onColumnDeselect = _ref4.onColumnDeselect,
134
+ onHeaderclick = _ref4.onHeaderclick,
135
+ tableName = _ref4.tableName;
31
136
  var hasExpansion = rowExpansionConfig && rowExpansionConfig.show;
32
137
 
33
- // Calculate where to insert the expansion header
138
+ // Check if we have grouped columns
139
+ var hasGroups = (0, _react.useMemo)(function () {
140
+ return tableStructure && (0, _groupHeaderUtils.hasTableGroups)(tableStructure);
141
+ }, [tableStructure]);
142
+
143
+ // Calculate the maximum depth of the header structure
144
+ var maxHeaderDepth = (0, _react.useMemo)(function () {
145
+ if (!hasGroups || !tableStructure) return 1;
146
+ return (0, _groupHeaderUtils.calculateMaxDepth)(tableStructure);
147
+ }, [hasGroups, tableStructure]);
148
+
149
+ // Generate header rows for grouped columns
150
+ var groupHeaderRows = (0, _react.useMemo)(function () {
151
+ if (!hasGroups || !tableStructure) return [];
152
+ return (0, _groupHeaderUtils.generateHeaderRows)(tableStructure, maxHeaderDepth);
153
+ }, [hasGroups, tableStructure, maxHeaderDepth]);
154
+
155
+ // Calculate where to insert the expansion header for non-grouped tables
34
156
  var getExpansionInsertIndex = _react["default"].useMemo(function () {
35
157
  var _table$getHeaderGroup;
36
158
  if (!hasExpansion || !rowExpansionConfig) return -1;
@@ -79,44 +201,190 @@ var TableHeaderComponent = exports.TableHeaderComponent = /*#__PURE__*/(0, _reac
79
201
  }
80
202
  return 0;
81
203
  }, [hasExpansion, rowExpansionConfig, table]);
204
+
205
+ // Render grouped headers if we have groups
206
+ if (hasGroups && groupHeaderRows.length > 0) {
207
+ return __jsx(_material.TableHead, {
208
+ className: "table-header thead-sticky"
209
+ }, table.getHeaderGroups().map(function (headerGroup, groupIndex) {
210
+ // For grouped tables, we only render the first header group from the table
211
+ // and replace its content with our grouped structure
212
+ if (groupIndex > 0) return null;
213
+ return groupHeaderRows.map(function (headerRow, rowIndex) {
214
+ return __jsx(_material.TableRow, {
215
+ key: "header-row-".concat(rowIndex),
216
+ className: "".concat(_utils.TABLE_CSS_CLASSES.tableRow, " ").concat(rowClass)
217
+ }, rowIndex === 0 && headerGroup.headers.filter(function (header) {
218
+ return ["multiSelect", "radioSelect", "rowIndex", "row-index"].includes(header.column.id);
219
+ }).map(function (header) {
220
+ return __jsx(StandardHeaderCell, {
221
+ key: header.id,
222
+ header: header,
223
+ enablesort: enablesort,
224
+ rowSpan: maxHeaderDepth
225
+ });
226
+ }), rowIndex === 0 && hasExpansion && __jsx(ExpansionHeaderCell, {
227
+ key: "expansion-header",
228
+ rowSpan: maxHeaderDepth,
229
+ columnwidth: rowExpansionConfig === null || rowExpansionConfig === void 0 ? void 0 : rowExpansionConfig.columnwidth
230
+ }), headerRow.map(function (headerCell, cellIndex) {
231
+ if (headerCell.isGroup) {
232
+ return __jsx(GroupHeaderCell, {
233
+ key: "group-".concat(cellIndex, "-").concat(headerCell.field),
234
+ headerCell: headerCell
235
+ });
236
+ } else if (headerCell.column) {
237
+ // Find the corresponding header from the table
238
+ var header = headerGroup.headers.find(function (h) {
239
+ return h.column.id === headerCell.field || h.column.columnDef.accessorKey === headerCell.field;
240
+ });
241
+ if (header) {
242
+ return __jsx(StandardHeaderCell, {
243
+ key: header.id,
244
+ header: header,
245
+ enablesort: enablesort,
246
+ rowSpan: headerCell.rowspan || 1
247
+ });
248
+ }
249
+ }
250
+ return null;
251
+ }), rowIndex === 0 && headerGroup.headers.filter(function (header) {
252
+ return header.column.id === "actions";
253
+ }).map(function (header) {
254
+ return __jsx(StandardHeaderCell, {
255
+ key: header.id,
256
+ header: header,
257
+ enablesort: enablesort,
258
+ rowSpan: maxHeaderDepth
259
+ });
260
+ }));
261
+ });
262
+ }), filterMode === "multicolumn" && __jsx(_TableFilters.TableFilterRow, {
263
+ columns: table.getAllFlatColumns().map(function (col) {
264
+ return col.columnDef;
265
+ }),
266
+ columnFilters: columnFilters || {},
267
+ onColumnFilterChange: onColumnFilterChange || function () {},
268
+ filterMode: filterMode,
269
+ renderFormWidget: renderFormWidget,
270
+ listener: listener
271
+ }));
272
+ }
273
+
274
+ // Default rendering for non-grouped tables
82
275
  return __jsx(_material.TableHead, {
83
276
  className: "table-header thead-sticky"
84
277
  }, table.getHeaderGroups().map(function (headerGroup) {
85
278
  return __jsx(_material.TableRow, {
86
279
  key: headerGroup.id,
87
- className: "".concat(_utils.TABLE_CSS_CLASSES.tableRow, " ").concat(rowClass)
280
+ className: "".concat(_utils.TABLE_CSS_CLASSES.tableRow, " ").concat(rowClass),
281
+ tabIndex: 0,
282
+ role: "row"
88
283
  }, headerGroup.headers.map(function (header, headerIndex) {
89
- var _header$column$column;
284
+ var _header$column$column2;
90
285
  var cells = [];
91
286
 
92
287
  // Insert expansion header before this cell if it's at the calculated position
93
288
  if (hasExpansion && headerIndex === getExpansionInsertIndex) {
94
- cells.push(__jsx(_material.TableCell, {
289
+ cells.push(__jsx(ExpansionHeaderCell, {
95
290
  key: "expansion-header-".concat(headerIndex),
96
291
  className: _utils.TABLE_CSS_CLASSES.headerCell,
97
292
  style: {
98
293
  width: (rowExpansionConfig === null || rowExpansionConfig === void 0 ? void 0 : rowExpansionConfig.columnwidth) || "50px",
99
294
  padding: "8px",
100
295
  userSelect: "none"
101
- }
296
+ },
297
+ role: "columnheader",
298
+ "data-col-id": headerIndex,
299
+ tabIndex: 0,
300
+ "data-col-field": header.column.id,
301
+ columnwidth: rowExpansionConfig === null || rowExpansionConfig === void 0 ? void 0 : rowExpansionConfig.columnwidth
102
302
  }));
103
303
  }
104
304
 
305
+ // Column selection feature
306
+ var columnId = header.column.id;
307
+
308
+ // Determine if this is a system column (excluded from column selection)
309
+ var isSystemColumn = columnId === "multiSelect" || columnId === "radioSelect" || columnId === "row-index" || columnId === "rowIndex" || columnId === "actions";
310
+
311
+ // Handle header cell click - column selection takes priority over sorting
312
+ var handleHeaderClick = function handleHeaderClick(event) {
313
+ // Call onHeaderclick callback if provided
314
+ if (onHeaderclick) {
315
+ var _listener$Widgets;
316
+ var colDef = header.column.columnDef;
317
+ var columnData = {
318
+ field: columnId,
319
+ caption: colDef.header || columnId,
320
+ colDef: colDef
321
+ };
322
+ onHeaderclick(event, listener === null || listener === void 0 || (_listener$Widgets = listener.Widgets) === null || _listener$Widgets === void 0 ? void 0 : _listener$Widgets[tableName || ""], columnData);
323
+ }
324
+
325
+ // Skip system columns from column selection
326
+ if (enablecolumnselection && !isSystemColumn) {
327
+ // Column selection has priority - toggle class directly on the element
328
+ var target = event.currentTarget;
329
+ var isCurrentlySelected = target.classList.contains(_utils.TABLE_CSS_CLASSES.selectedColumn);
330
+
331
+ // Get current visible rows directly from table at click time
332
+ // This ensures we get the actual displayed rows based on current page size
333
+ var currentRows = table.getRowModel().rows.map(function (row) {
334
+ return row.original;
335
+ });
336
+
337
+ // Extract column data from current visible rows
338
+ var _colDef = header.column.columnDef;
339
+ var accessorKey = _colDef.accessorKey || columnId;
340
+ var _columnData = currentRows.map(function (row) {
341
+ // Handle nested paths (e.g., "name.location.url")
342
+ if (accessorKey.includes(".")) {
343
+ return accessorKey.split(".").reduce(function (obj, key) {
344
+ return obj === null || obj === void 0 ? void 0 : obj[key];
345
+ }, row);
346
+ }
347
+ return row[accessorKey];
348
+ });
349
+ if (isCurrentlySelected) {
350
+ // Deselect: remove the class and call callback
351
+ target.classList.remove(_utils.TABLE_CSS_CLASSES.selectedColumn);
352
+ onColumnDeselect === null || onColumnDeselect === void 0 || onColumnDeselect(event, columnId, header.column.columnDef, _columnData);
353
+ } else {
354
+ // Select: add the class and call callback
355
+ target.classList.add(_utils.TABLE_CSS_CLASSES.selectedColumn);
356
+ onColumnSelect === null || onColumnSelect === void 0 || onColumnSelect(event, columnId, header.column.columnDef, _columnData);
357
+ }
358
+ return; // Don't execute sorting
359
+ }
360
+
361
+ // Fall back to sorting if column selection is not enabled
362
+ if (enablesort && header.column.getCanSort()) {
363
+ var _header$column$getTog;
364
+ (_header$column$getTog = header.column.getToggleSortingHandler()) === null || _header$column$getTog === void 0 || _header$column$getTog(event);
365
+ }
366
+ };
367
+ var isClickable = enablecolumnselection && !isSystemColumn || enablesort && header.column.getCanSort();
368
+
105
369
  // Add the regular header cell
106
370
  cells.push(__jsx(_material.TableCell, {
107
371
  key: header.id,
108
- className: "".concat(_utils.TABLE_CSS_CLASSES.headerCell, " ").concat(((_header$column$column = header.column.columnDef) === null || _header$column$column === void 0 || (_header$column$column = _header$column$column.meta) === null || _header$column$column === void 0 ? void 0 : _header$column$column.className) || "").trim(),
372
+ className: "".concat(_utils.TABLE_CSS_CLASSES.headerCell, " ").concat(((_header$column$column2 = header.column.columnDef) === null || _header$column$column2 === void 0 || (_header$column$column2 = _header$column$column2.meta) === null || _header$column$column2 === void 0 ? void 0 : _header$column$column2.className) || "").trim(),
109
373
  style: {
110
- cursor: enablesort && header.column.getCanSort() ? "pointer" : "default",
374
+ cursor: isClickable ? "pointer" : "default",
111
375
  userSelect: "none",
112
376
  width: header.getSize(),
113
377
  position: "relative"
114
378
  },
115
379
  title: header.column.columnDef.header && typeof header.column.columnDef.header !== "function" ? header.column.columnDef.header.toString() : "",
116
- onClick: enablesort && header.column.getCanSort() ? header.column.getToggleSortingHandler() : undefined
380
+ onClick: handleHeaderClick,
381
+ role: "columnheader",
382
+ "data-col-id": headerIndex,
383
+ tabIndex: 0,
384
+ "data-col-field": header.column.id
117
385
  }, __jsx(_material.Box, {
118
386
  component: "span"
119
- }, header.isPlaceholder ? null : (0, _reactTable.flexRender)(header.column.columnDef.header, header.getContext())), enablesort && header.column.getCanSort() && __jsx(_material.Box, {
387
+ }, header.isPlaceholder ? null : (0, _reactTable.flexRender)(header.column.columnDef.header, header.getContext())), enablesort && !enablecolumnselection && header.column.getCanSort() && __jsx(_material.Box, {
120
388
  style: {
121
389
  zIndex: 90
122
390
  },
@@ -173,6 +441,6 @@ var TableHeaderComponent = exports.TableHeaderComponent = /*#__PURE__*/(0, _reac
173
441
  var selectionEqual = selectionKeys.size === Object.keys(prevSelection).length && selectionKeys.size === Object.keys(nextSelection).length && Array.from(selectionKeys).every(function (key) {
174
442
  return prevSelection[key] === nextSelection[key];
175
443
  });
176
- return prevProps.enablesort === nextProps.enablesort && prevProps.rowClass === nextProps.rowClass && sortingEqual && sizingEqual && selectionEqual && prevProps.rowExpansionConfig === nextProps.rowExpansionConfig && prevProps.columnsVersion === nextProps.columnsVersion && prevProps.filterMode === nextProps.filterMode && JSON.stringify(prevProps.columnFilters || {}) === JSON.stringify(nextProps.columnFilters || {});
444
+ return prevProps.enablesort === nextProps.enablesort && prevProps.enablecolumnselection === nextProps.enablecolumnselection && prevProps.rowClass === nextProps.rowClass && sortingEqual && sizingEqual && selectionEqual && prevProps.rowExpansionConfig === nextProps.rowExpansionConfig && prevProps.columnsVersion === nextProps.columnsVersion && prevProps.filterMode === nextProps.filterMode && JSON.stringify(prevProps.columnFilters || {}) === JSON.stringify(nextProps.columnFilters || {});
177
445
  });
178
446
  TableHeaderComponent.displayName = "TableHeaderComponent";
@@ -1,21 +1,30 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.TablePanelHeading = void 0;
8
- var _react = _interopRequireDefault(require("react"));
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _react = _interopRequireWildcard(require("react"));
9
11
  var _material = require("@mui/material");
10
12
  var _tableAction = _interopRequireDefault(require("../table-action"));
11
13
  var _utils = require("../utils");
14
+ var _menu = _interopRequireDefault(require("@wavemaker/react-runtime/components/navigation/menu"));
15
+ var _types = require("@wavemaker/react-runtime/components/data/types");
16
+ var _lodash = require("lodash");
17
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
12
18
  var __jsx = _react["default"].createElement;
13
- var TablePanelHeading = exports.TablePanelHeading = function TablePanelHeading(_ref) {
19
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
20
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
21
+ var TablePanelHeadingComponent = function TablePanelHeadingComponent(_ref) {
22
+ var _listener$appLocale;
14
23
  var title = _ref.title,
15
24
  subheading = _ref.subheading,
16
25
  iconclass = _ref.iconclass,
17
- _ref$exportOptions = _ref.exportOptions,
18
- exportOptions = _ref$exportOptions === void 0 ? [] : _ref$exportOptions,
26
+ _ref$exportformat = _ref.exportformat,
27
+ exportformat = _ref$exportformat === void 0 ? [] : _ref$exportformat,
19
28
  headerActions = _ref.headerActions,
20
29
  _ref$spacing = _ref.spacing,
21
30
  spacing = _ref$spacing === void 0 ? "normal" : _ref$spacing,
@@ -23,7 +32,113 @@ var TablePanelHeading = exports.TablePanelHeading = function TablePanelHeading(_
23
32
  isGridEditMode = _ref$isGridEditMode === void 0 ? false : _ref$isGridEditMode,
24
33
  _ref$isLoading = _ref.isLoading,
25
34
  isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
26
- listener = _ref.listener;
35
+ listener = _ref.listener,
36
+ datasource = _ref.datasource,
37
+ _ref$columns = _ref.columns,
38
+ columns = _ref$columns === void 0 ? [] : _ref$columns,
39
+ sortInfo = _ref.sortInfo,
40
+ _ref$filterInfo = _ref.filterInfo,
41
+ filterInfo = _ref$filterInfo === void 0 ? [] : _ref$filterInfo,
42
+ exportdatasize = _ref.exportdatasize,
43
+ onBeforeExport = _ref.onBeforeExport;
44
+ var ROW_OPS_FIELD = "rowOperations";
45
+ var exportIconMapping = {
46
+ EXCEL: "fa fa-file-excel-o",
47
+ CSV: "fa fa-file-text-o"
48
+ };
49
+
50
+ // Parse exportformat if it's a comma-separated string
51
+ var exportOptions = (0, _react.useMemo)(function () {
52
+ if (Array.isArray(exportformat)) {
53
+ return exportformat;
54
+ }
55
+ var formatStr = exportformat;
56
+ if (typeof formatStr === "string") {
57
+ return formatStr.split(",").map(function (opt) {
58
+ return opt.trim();
59
+ }).filter(Boolean);
60
+ }
61
+ return [];
62
+ }, [exportformat]);
63
+
64
+ // Transform export options into dataset format for WmMenu
65
+ var exportDataset = (0, _react.useMemo)(function () {
66
+ return exportOptions.map(function (format) {
67
+ return {
68
+ label: format,
69
+ icon: exportIconMapping[format] || "fa fa-file-o",
70
+ dataValue: format
71
+ };
72
+ });
73
+ }, [exportOptions]);
74
+ var handleExportSelect = (0, _react.useCallback)(function (event, widget, item) {
75
+ if (!datasource) {
76
+ console.warn("No datasource available for export");
77
+ return;
78
+ }
79
+ var sortOptions = (0, _lodash.isEmpty)(sortInfo) ? "" : "".concat(sortInfo.field, " ").concat(sortInfo.direction);
80
+ var columnsMap = {};
81
+
82
+ // Build columns map from fieldDefs (columns)
83
+ columns.forEach(function (fieldDef) {
84
+ // Do not add the row operation actions column to the exported file.
85
+ if (fieldDef.field === ROW_OPS_FIELD || fieldDef.show === false) {
86
+ return;
87
+ }
88
+ var option = {
89
+ header: fieldDef.displayName || fieldDef.field || ""
90
+ };
91
+
92
+ // If column has exportexpression, then send the expression as required by backend.
93
+ // otherwise send the field name.
94
+ if (fieldDef.exportexpression) {
95
+ option.expression = fieldDef.exportexpression;
96
+ } else {
97
+ option.field = fieldDef.field;
98
+ }
99
+ if (fieldDef.field) {
100
+ columnsMap[fieldDef.field] = option;
101
+ }
102
+ });
103
+ var requestData = {
104
+ matchMode: "anywhereignorecase",
105
+ filterFields: filterInfo,
106
+ orderBy: sortOptions,
107
+ exportType: item.label,
108
+ logicalOp: "AND",
109
+ exportSize: exportdatasize,
110
+ columns: columnsMap
111
+ };
112
+
113
+ // Call beforeexport callback if provided
114
+ var isValid = true;
115
+ if (onBeforeExport) {
116
+ isValid = onBeforeExport({
117
+ $data: requestData
118
+ }) !== false;
119
+ }
120
+ if (isValid === false) {
121
+ return;
122
+ }
123
+
124
+ // Convert columns map to fields array
125
+ var requestDataWithFields = _objectSpread(_objectSpread({}, requestData), {}, {
126
+ fields: (0, _lodash.values)(requestData.columns)
127
+ });
128
+
129
+ // Execute download operation
130
+ try {
131
+ datasource === null || datasource === void 0 || datasource.execute(_types.DataSource.Operation.DOWNLOAD, {
132
+ data: requestDataWithFields
133
+ });
134
+ } catch (error) {
135
+ var _listener$App;
136
+ console.error("Error exporting data:", error);
137
+ if (listener !== null && listener !== void 0 && (_listener$App = listener.App) !== null && _listener$App !== void 0 && _listener$App.notifyApp) {
138
+ listener.App.notifyApp("Failed to export data", "Error");
139
+ }
140
+ }
141
+ }, [datasource, columns, sortInfo, filterInfo, exportdatasize, onBeforeExport, listener]);
27
142
  return __jsx(_material.Box, {
28
143
  className: "panel-heading"
29
144
  }, __jsx(_material.Box, {
@@ -42,7 +157,7 @@ var TablePanelHeading = exports.TablePanelHeading = function TablePanelHeading(_
42
157
  }, title), subheading && __jsx(_material.Box, {
43
158
  component: "div",
44
159
  className: "description"
45
- }, subheading)), ((exportOptions === null || exportOptions === void 0 ? void 0 : exportOptions.length) > 0 || headerActions.length > 0) && __jsx(_material.Box, {
160
+ }, subheading)), ((exportformat === null || exportformat === void 0 ? void 0 : exportformat.length) > 0 || headerActions.length > 0) && __jsx(_material.Box, {
46
161
  className: "panel-actions app-datagrid-actions"
47
162
  }, headerActions.map(function (action, index) {
48
163
  return __jsx(_tableAction["default"], {
@@ -64,5 +179,21 @@ var TablePanelHeading = exports.TablePanelHeading = function TablePanelHeading(_
64
179
  show: action.show,
65
180
  styles: action.styles
66
181
  }, action.children);
67
- }), (exportOptions === null || exportOptions === void 0 ? void 0 : exportOptions.length) > 0 && __jsx(_material.Box, null, "Export Options Available"))));
68
- };
182
+ }), exportOptions.length > 0 && __jsx(_menu["default"], {
183
+ caption: (listener === null || listener === void 0 || (_listener$appLocale = listener.appLocale) === null || _listener$appLocale === void 0 ? void 0 : _listener$appLocale.LABEL_EXPORT) || "Export",
184
+ dataset: exportDataset,
185
+ itemlabel: "label",
186
+ itemicon: "icon",
187
+ menuposition: "down,left",
188
+ autoclose: "always",
189
+ onSelect: handleExportSelect,
190
+ listener: listener,
191
+ name: "export-menu",
192
+ tabindex: 0
193
+ }))));
194
+ };
195
+ TablePanelHeadingComponent.displayName = "TablePanelHeading";
196
+ var TablePanelHeading = exports.TablePanelHeading = /*#__PURE__*/(0, _react.memo)(TablePanelHeadingComponent, function (prevProps, nextProps) {
197
+ // Custom comparison function to prevent unnecessary re-renders
198
+ return prevProps.title === nextProps.title && prevProps.subheading === nextProps.subheading && prevProps.iconclass === nextProps.iconclass && prevProps.exportformat === nextProps.exportformat && prevProps.headerActions === nextProps.headerActions && prevProps.spacing === nextProps.spacing && prevProps.isGridEditMode === nextProps.isGridEditMode && prevProps.isLoading === nextProps.isLoading && prevProps.listener === nextProps.listener && prevProps.datasource === nextProps.datasource && prevProps.columns === nextProps.columns && prevProps.sortInfo === nextProps.sortInfo && prevProps.filterInfo === nextProps.filterInfo && prevProps.exportdatasize === nextProps.exportdatasize && prevProps.onBeforeExport === nextProps.onBeforeExport;
199
+ });
@@ -33,6 +33,24 @@ Object.defineProperty(exports, "RowExpansionButton", {
33
33
  return _RowExpansionButton.RowExpansionButton;
34
34
  }
35
35
  });
36
+ Object.defineProperty(exports, "SummaryCell", {
37
+ enumerable: true,
38
+ get: function get() {
39
+ return _SummaryCell.SummaryCell;
40
+ }
41
+ });
42
+ Object.defineProperty(exports, "SummaryRow", {
43
+ enumerable: true,
44
+ get: function get() {
45
+ return _SummaryRow.SummaryRow;
46
+ }
47
+ });
48
+ Object.defineProperty(exports, "SummaryRowFooter", {
49
+ enumerable: true,
50
+ get: function get() {
51
+ return _SummaryRowFooter.SummaryRowFooter;
52
+ }
53
+ });
36
54
  Object.defineProperty(exports, "TableBodyComponent", {
37
55
  enumerable: true,
38
56
  get: function get() {
@@ -71,4 +89,7 @@ var _FieldValidationError = require("./FieldValidationError");
71
89
  var _TableBody = require("./TableBody");
72
90
  var _TableHeader = require("./TableHeader");
73
91
  var _RowExpansionButton = require("./RowExpansionButton");
74
- var _TableFilters = require("./TableFilters");
92
+ var _TableFilters = require("./TableFilters");
93
+ var _SummaryRowFooter = require("./SummaryRowFooter");
94
+ var _SummaryRow = require("./SummaryRow");
95
+ var _SummaryCell = require("./SummaryCell");