@laerdal/life-react-components 1.11.0-dev.9 → 2.0.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 (248) hide show
  1. package/dist/Accordion/AccordionItem.cjs +12 -7
  2. package/dist/Accordion/AccordionItem.cjs.map +1 -1
  3. package/dist/Accordion/AccordionItem.js +12 -7
  4. package/dist/Accordion/AccordionItem.js.map +1 -1
  5. package/dist/Accordion/ContentAccordion.cjs +3 -1
  6. package/dist/Accordion/ContentAccordion.cjs.map +1 -1
  7. package/dist/Accordion/ContentAccordion.js +3 -1
  8. package/dist/Accordion/ContentAccordion.js.map +1 -1
  9. package/dist/Accordion/styles.cjs +1 -1
  10. package/dist/Accordion/styles.cjs.map +1 -1
  11. package/dist/Accordion/styles.js +1 -1
  12. package/dist/Accordion/styles.js.map +1 -1
  13. package/dist/AuthPage/AuthPage.d.ts +0 -1
  14. package/dist/Banners/Banner.cjs +9 -4
  15. package/dist/Banners/Banner.cjs.map +1 -1
  16. package/dist/Banners/Banner.js +8 -4
  17. package/dist/Banners/Banner.js.map +1 -1
  18. package/dist/Breadcrumb/Breadcrumb.cjs +12 -0
  19. package/dist/Breadcrumb/Breadcrumb.cjs.map +1 -1
  20. package/dist/Breadcrumb/Breadcrumb.js +12 -0
  21. package/dist/Breadcrumb/Breadcrumb.js.map +1 -1
  22. package/dist/Button/DualFunctionButton.cjs +27 -12
  23. package/dist/Button/DualFunctionButton.cjs.map +1 -1
  24. package/dist/Button/DualFunctionButton.js +26 -12
  25. package/dist/Button/DualFunctionButton.js.map +1 -1
  26. package/dist/Button/Iconbutton.cjs +2 -2
  27. package/dist/Button/Iconbutton.cjs.map +1 -1
  28. package/dist/Button/Iconbutton.js +2 -2
  29. package/dist/Button/Iconbutton.js.map +1 -1
  30. package/dist/Card/VerticalCard/Card.cjs +2 -2
  31. package/dist/Card/VerticalCard/Card.cjs.map +1 -1
  32. package/dist/Card/VerticalCard/Card.js +2 -2
  33. package/dist/Card/VerticalCard/Card.js.map +1 -1
  34. package/dist/ChipsInput/ChipDropdownInput.cjs +33 -22
  35. package/dist/ChipsInput/ChipDropdownInput.cjs.map +1 -1
  36. package/dist/ChipsInput/ChipDropdownInput.js +33 -22
  37. package/dist/ChipsInput/ChipDropdownInput.js.map +1 -1
  38. package/dist/Dropdown/BasicDropdown.cjs +26 -12
  39. package/dist/Dropdown/BasicDropdown.cjs.map +1 -1
  40. package/dist/Dropdown/BasicDropdown.js +26 -12
  41. package/dist/Dropdown/BasicDropdown.js.map +1 -1
  42. package/dist/Dropdown/DropdownButton.cjs +27 -11
  43. package/dist/Dropdown/DropdownButton.cjs.map +1 -1
  44. package/dist/Dropdown/DropdownButton.js +27 -11
  45. package/dist/Dropdown/DropdownButton.js.map +1 -1
  46. package/dist/Dropdown/DropdownButtonTypes.cjs.map +1 -1
  47. package/dist/Dropdown/DropdownButtonTypes.d.ts +1 -1
  48. package/dist/Dropdown/DropdownButtonTypes.js.map +1 -1
  49. package/dist/Dropdown/DropdownContent.cjs +44 -6
  50. package/dist/Dropdown/DropdownContent.cjs.map +1 -1
  51. package/dist/Dropdown/DropdownContent.d.ts +2 -0
  52. package/dist/Dropdown/DropdownContent.js +44 -6
  53. package/dist/Dropdown/DropdownContent.js.map +1 -1
  54. package/dist/Dropdown/DropdownFilter.cjs +23 -9
  55. package/dist/Dropdown/DropdownFilter.cjs.map +1 -1
  56. package/dist/Dropdown/DropdownFilter.js +23 -9
  57. package/dist/Dropdown/DropdownFilter.js.map +1 -1
  58. package/dist/Footer/Components/FooterBottomLinks.d.ts +0 -1
  59. package/dist/Footer/Components/FooterDropdownLinks.d.ts +0 -1
  60. package/dist/Footer/Components/FooterNavSection.cjs +7 -2
  61. package/dist/Footer/Components/FooterNavSection.cjs.map +1 -1
  62. package/dist/Footer/Components/FooterNavSection.d.ts +0 -1
  63. package/dist/Footer/Components/FooterNavSection.js +6 -2
  64. package/dist/Footer/Components/FooterNavSection.js.map +1 -1
  65. package/dist/Footer/Components/FooterNewsletterAndSocialSection.d.ts +0 -1
  66. package/dist/Footer/Components/FooterTop.d.ts +0 -1
  67. package/dist/Footer/Footer.d.ts +0 -1
  68. package/dist/GlobalNavigationBar/GlobalNavigationBar.cjs +3 -1
  69. package/dist/GlobalNavigationBar/GlobalNavigationBar.cjs.map +1 -1
  70. package/dist/GlobalNavigationBar/GlobalNavigationBar.js +2 -1
  71. package/dist/GlobalNavigationBar/GlobalNavigationBar.js.map +1 -1
  72. package/dist/GlobalNavigationBar/desktop/ExtendedMainMenu.d.ts +0 -1
  73. package/dist/GlobalNavigationBar/desktop/UserMenu.d.ts +0 -1
  74. package/dist/GlobalNavigationBar/mobile/CommonStyles.cjs +24 -2
  75. package/dist/GlobalNavigationBar/mobile/CommonStyles.cjs.map +1 -1
  76. package/dist/GlobalNavigationBar/mobile/CommonStyles.d.ts +5 -0
  77. package/dist/GlobalNavigationBar/mobile/CommonStyles.js +8 -2
  78. package/dist/GlobalNavigationBar/mobile/CommonStyles.js.map +1 -1
  79. package/dist/GlobalNavigationBar/mobile/MobileActionContainer.cjs +53 -0
  80. package/dist/GlobalNavigationBar/mobile/MobileActionContainer.cjs.map +1 -0
  81. package/dist/GlobalNavigationBar/mobile/MobileActionContainer.d.ts +6 -0
  82. package/dist/GlobalNavigationBar/mobile/MobileActionContainer.js +34 -0
  83. package/dist/GlobalNavigationBar/mobile/MobileActionContainer.js.map +1 -0
  84. package/dist/GlobalNavigationBar/mobile/MobileMenu.cjs +3 -5
  85. package/dist/GlobalNavigationBar/mobile/MobileMenu.cjs.map +1 -1
  86. package/dist/GlobalNavigationBar/mobile/MobileMenu.d.ts +0 -1
  87. package/dist/GlobalNavigationBar/mobile/MobileMenu.js +2 -4
  88. package/dist/GlobalNavigationBar/mobile/MobileMenu.js.map +1 -1
  89. package/dist/GlobalNavigationBar/mobile/MobileMenuContent.cjs +30 -61
  90. package/dist/GlobalNavigationBar/mobile/MobileMenuContent.cjs.map +1 -1
  91. package/dist/GlobalNavigationBar/mobile/MobileMenuContent.js +30 -57
  92. package/dist/GlobalNavigationBar/mobile/MobileMenuContent.js.map +1 -1
  93. package/dist/GlobalNavigationBar/types.cjs.map +1 -1
  94. package/dist/GlobalNavigationBar/types.d.ts +3 -1
  95. package/dist/GlobalNavigationBar/types.js.map +1 -1
  96. package/dist/InputFields/Checkbox.cjs +1 -0
  97. package/dist/InputFields/Checkbox.cjs.map +1 -1
  98. package/dist/InputFields/Checkbox.js +1 -0
  99. package/dist/InputFields/Checkbox.js.map +1 -1
  100. package/dist/InputFields/DatepickerField.cjs +12 -4
  101. package/dist/InputFields/DatepickerField.cjs.map +1 -1
  102. package/dist/InputFields/DatepickerField.js +6 -4
  103. package/dist/InputFields/DatepickerField.js.map +1 -1
  104. package/dist/InputFields/DatepickerFieldHeader.d.ts +0 -1
  105. package/dist/InputFields/Label.cjs +16 -14
  106. package/dist/InputFields/Label.cjs.map +1 -1
  107. package/dist/InputFields/Label.d.ts +1 -0
  108. package/dist/InputFields/Label.js +15 -13
  109. package/dist/InputFields/Label.js.map +1 -1
  110. package/dist/InputFields/NumberField.cjs +1 -1
  111. package/dist/InputFields/NumberField.cjs.map +1 -1
  112. package/dist/InputFields/NumberField.js +1 -1
  113. package/dist/InputFields/NumberField.js.map +1 -1
  114. package/dist/InputFields/QuickSearch.cjs +1 -1
  115. package/dist/InputFields/QuickSearch.cjs.map +1 -1
  116. package/dist/InputFields/QuickSearch.js +1 -1
  117. package/dist/InputFields/QuickSearch.js.map +1 -1
  118. package/dist/InputFields/ResponsiveComponentWrapper.cjs +3 -3
  119. package/dist/InputFields/ResponsiveComponentWrapper.cjs.map +1 -1
  120. package/dist/InputFields/ResponsiveComponentWrapper.js +3 -3
  121. package/dist/InputFields/ResponsiveComponentWrapper.js.map +1 -1
  122. package/dist/InputFields/SearchBar.cjs +1 -0
  123. package/dist/InputFields/SearchBar.cjs.map +1 -1
  124. package/dist/InputFields/SearchBar.js +1 -0
  125. package/dist/InputFields/SearchBar.js.map +1 -1
  126. package/dist/InputFields/Textarea.cjs.map +1 -1
  127. package/dist/InputFields/Textarea.d.ts +1 -1
  128. package/dist/InputFields/Textarea.js.map +1 -1
  129. package/dist/InputFields/types.cjs.map +1 -1
  130. package/dist/InputFields/types.d.ts +1 -1
  131. package/dist/InputFields/types.js.map +1 -1
  132. package/dist/LoadingIndicator/LoadingIndicator.d.ts +0 -1
  133. package/dist/MiniProductCard/MiniProductCard.d.ts +0 -1
  134. package/dist/Modals/ModalContent.cjs +2 -1
  135. package/dist/Modals/ModalContent.cjs.map +1 -1
  136. package/dist/Modals/ModalContent.d.ts +1 -0
  137. package/dist/Modals/ModalContent.js +2 -1
  138. package/dist/Modals/ModalContent.js.map +1 -1
  139. package/dist/Modals/ModalDialog.cjs +1 -0
  140. package/dist/Modals/ModalDialog.cjs.map +1 -1
  141. package/dist/Modals/ModalDialog.d.ts +1 -0
  142. package/dist/Modals/ModalDialog.js +1 -0
  143. package/dist/Modals/ModalDialog.js.map +1 -1
  144. package/dist/NavItem/NavItem.cjs +22 -1
  145. package/dist/NavItem/NavItem.cjs.map +1 -1
  146. package/dist/NavItem/NavItem.d.ts +7 -1
  147. package/dist/NavItem/NavItem.js +18 -1
  148. package/dist/NavItem/NavItem.js.map +1 -1
  149. package/dist/NavItem/index.cjs.map +1 -1
  150. package/dist/NavItem/index.d.ts +1 -0
  151. package/dist/NavItem/index.js.map +1 -1
  152. package/dist/Paginator/Paginator.d.ts +0 -1
  153. package/dist/QuizButton/QuizButton.cjs +3 -1
  154. package/dist/QuizButton/QuizButton.cjs.map +1 -1
  155. package/dist/QuizButton/QuizButton.js +3 -1
  156. package/dist/QuizButton/QuizButton.js.map +1 -1
  157. package/dist/SideMenu/SideMenuBody.d.ts +0 -1
  158. package/dist/SideMenu/SideMenuFooter.d.ts +0 -1
  159. package/dist/SideMenu/SideMenuHeader.d.ts +0 -1
  160. package/dist/SideMenu/types.d.ts +0 -1
  161. package/dist/SkipToContent/SkipToContent.cjs +5 -0
  162. package/dist/SkipToContent/SkipToContent.cjs.map +1 -1
  163. package/dist/SkipToContent/SkipToContent.d.ts +3 -1
  164. package/dist/SkipToContent/SkipToContent.js +4 -0
  165. package/dist/SkipToContent/SkipToContent.js.map +1 -1
  166. package/dist/Switcher/MobileCustomMenuContent.cjs +56 -0
  167. package/dist/Switcher/MobileCustomMenuContent.cjs.map +1 -0
  168. package/dist/Switcher/MobileCustomMenuContent.d.ts +8 -0
  169. package/dist/Switcher/MobileCustomMenuContent.js +39 -0
  170. package/dist/Switcher/MobileCustomMenuContent.js.map +1 -0
  171. package/dist/Switcher/MobileSwitcherMenu.cjs +17 -4
  172. package/dist/Switcher/MobileSwitcherMenu.cjs.map +1 -1
  173. package/dist/Switcher/MobileSwitcherMenu.d.ts +5 -3
  174. package/dist/Switcher/MobileSwitcherMenu.js +16 -4
  175. package/dist/Switcher/MobileSwitcherMenu.js.map +1 -1
  176. package/dist/Switcher/SwitcherMenuItem.d.ts +0 -1
  177. package/dist/Table/Table.cjs +9 -6
  178. package/dist/Table/Table.cjs.map +1 -1
  179. package/dist/Table/Table.js +9 -6
  180. package/dist/Table/Table.js.map +1 -1
  181. package/dist/Table/TableBody.cjs +6 -5
  182. package/dist/Table/TableBody.cjs.map +1 -1
  183. package/dist/Table/TableBody.d.ts +1 -3
  184. package/dist/Table/TableBody.js +6 -5
  185. package/dist/Table/TableBody.js.map +1 -1
  186. package/dist/Table/TableStyles.cjs +1 -1
  187. package/dist/Table/TableStyles.cjs.map +1 -1
  188. package/dist/Table/TableStyles.js +1 -1
  189. package/dist/Table/TableStyles.js.map +1 -1
  190. package/dist/Table/TableTypes.cjs.map +1 -1
  191. package/dist/Table/TableTypes.d.ts +5 -1
  192. package/dist/Table/TableTypes.js.map +1 -1
  193. package/dist/Table/index.cjs.map +1 -1
  194. package/dist/Table/index.d.ts +1 -1
  195. package/dist/Table/index.js.map +1 -1
  196. package/dist/Tabs/TabLink.cjs +13 -16
  197. package/dist/Tabs/TabLink.cjs.map +1 -1
  198. package/dist/Tabs/TabLink.d.ts +1 -1
  199. package/dist/Tabs/TabLink.js +14 -16
  200. package/dist/Tabs/TabLink.js.map +1 -1
  201. package/dist/Tabs/VerticalTabs.cjs +1 -0
  202. package/dist/Tabs/VerticalTabs.cjs.map +1 -1
  203. package/dist/Tabs/VerticalTabs.d.ts +1 -2
  204. package/dist/Tabs/VerticalTabs.js +1 -0
  205. package/dist/Tabs/VerticalTabs.js.map +1 -1
  206. package/dist/Tile/TileBody.cjs.map +1 -1
  207. package/dist/Tile/TileBody.d.ts +1 -0
  208. package/dist/Tile/TileBody.js.map +1 -1
  209. package/dist/Tile/TileCommonItems.d.ts +0 -1
  210. package/dist/Toasters/ToastContext.cjs +5 -0
  211. package/dist/Toasters/ToastContext.cjs.map +1 -1
  212. package/dist/Toasters/ToastContext.d.ts +6 -4
  213. package/dist/Toasters/ToastContext.js +4 -0
  214. package/dist/Toasters/ToastContext.js.map +1 -1
  215. package/dist/Toggles/TogglerTypes.d.ts +0 -1
  216. package/dist/Tooltips/TooltipTypes.d.ts +0 -1
  217. package/dist/Tooltips/TooltipWrapper.d.ts +0 -1
  218. package/dist/common/ScrollableContainer.cjs +44 -0
  219. package/dist/common/ScrollableContainer.cjs.map +1 -0
  220. package/dist/common/ScrollableContainer.d.ts +2 -0
  221. package/dist/common/ScrollableContainer.js +28 -0
  222. package/dist/common/ScrollableContainer.js.map +1 -0
  223. package/dist/icons/contenticons/ContentIcons.cjs +83 -2
  224. package/dist/icons/contenticons/ContentIcons.cjs.map +1 -1
  225. package/dist/icons/contenticons/ContentIcons.d.ts +3 -0
  226. package/dist/icons/contenticons/ContentIcons.js +72 -0
  227. package/dist/icons/contenticons/ContentIcons.js.map +1 -1
  228. package/dist/icons/index.cjs +14 -7
  229. package/dist/icons/index.cjs.map +1 -1
  230. package/dist/icons/index.d.ts +1 -0
  231. package/dist/icons/index.js +14 -7
  232. package/dist/icons/index.js.map +1 -1
  233. package/dist/icons/systemicons/SystemIcons.cjs +30 -1
  234. package/dist/icons/systemicons/SystemIcons.cjs.map +1 -1
  235. package/dist/icons/systemicons/SystemIcons.d.ts +1 -0
  236. package/dist/icons/systemicons/SystemIcons.js +26 -0
  237. package/dist/icons/systemicons/SystemIcons.js.map +1 -1
  238. package/dist/styles/typography.cjs +27 -13
  239. package/dist/styles/typography.cjs.map +1 -1
  240. package/dist/styles/typography.d.ts +2 -0
  241. package/dist/styles/typography.js +27 -13
  242. package/dist/styles/typography.js.map +1 -1
  243. package/dist/utils/utils.cjs +13 -0
  244. package/dist/utils/utils.cjs.map +1 -0
  245. package/dist/utils/utils.d.ts +1 -0
  246. package/dist/utils/utils.js +4 -0
  247. package/dist/utils/utils.js.map +1 -0
  248. package/package.json +22 -17
@@ -0,0 +1,39 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
+ import _pt from "prop-types";
4
+
5
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6
+
7
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
8
+
9
+ import React from 'react';
10
+ import { useScrollableContainer } from '../common/ScrollableContainer';
11
+ import { MobileHeaderContainer, MobileHeaderNote, MobileHeaderText, MobileMenuWrapper, ScrollableContainer } from '../GlobalNavigationBar/mobile/CommonStyles';
12
+ import { MobileActionContainer } from '../GlobalNavigationBar/mobile/MobileActionContainer';
13
+ import { jsx as _jsx } from "react/jsx-runtime";
14
+ import { jsxs as _jsxs } from "react/jsx-runtime";
15
+ export var MobileCustomMenuContent = function MobileCustomMenuContent(_ref) {
16
+ var children = _ref.children,
17
+ header = _ref.header,
18
+ action = _ref.action;
19
+
20
+ var _useScrollableContain = useScrollableContainer([children]),
21
+ _useScrollableContain2 = _slicedToArray(_useScrollableContain, 2),
22
+ scrollContainerRef = _useScrollableContain2[0],
23
+ scrollable = _useScrollableContain2[1];
24
+
25
+ return /*#__PURE__*/_jsxs(MobileMenuWrapper, {
26
+ children: [/*#__PURE__*/_jsxs(ScrollableContainer, {
27
+ ref: scrollContainerRef,
28
+ className: scrollable ? 'scrollable' : '',
29
+ children: [!!header && /*#__PURE__*/_jsxs(MobileHeaderContainer, {
30
+ children: [/*#__PURE__*/_jsx(MobileHeaderText, {
31
+ children: header.header
32
+ }), header.note && /*#__PURE__*/_jsx(MobileHeaderNote, {
33
+ children: header.note
34
+ })]
35
+ }), children]
36
+ }), action && /*#__PURE__*/_jsx(MobileActionContainer, _objectSpread({}, action))]
37
+ });
38
+ };
39
+ //# sourceMappingURL=MobileCustomMenuContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MobileCustomMenuContent.js","names":["React","useScrollableContainer","MobileHeaderContainer","MobileHeaderNote","MobileHeaderText","MobileMenuWrapper","ScrollableContainer","MobileActionContainer","MobileCustomMenuContent","children","header","action","scrollContainerRef","scrollable","note"],"sources":["../../src/Switcher/MobileCustomMenuContent.tsx"],"sourcesContent":["import React from 'react';\nimport { useScrollableContainer } from '../common/ScrollableContainer';\nimport { MenuButton, MenuGroupHeader } from '../GlobalNavigationBar';\nimport { MobileHeaderContainer, MobileHeaderNote, MobileHeaderText, MobileMenuWrapper, ScrollableContainer } from '../GlobalNavigationBar/mobile/CommonStyles';\nimport { MobileActionContainer } from '../GlobalNavigationBar/mobile/MobileActionContainer';\n\ninterface MobileCustomMenuContentProps {\n header?: MenuGroupHeader;\n action?: MenuButton;\n}\n\nexport const MobileCustomMenuContent: React.FunctionComponent<MobileCustomMenuContentProps> = ({ children, header, action }) => {\n const [scrollContainerRef, scrollable] = useScrollableContainer([children]);\n\n return (\n <MobileMenuWrapper>\n <ScrollableContainer ref={scrollContainerRef as any} className={scrollable ? 'scrollable' : ''}>\n {!!header && (\n <MobileHeaderContainer>\n <MobileHeaderText>{header.header}</MobileHeaderText>\n {header.note && <MobileHeaderNote>{header.note}</MobileHeaderNote>}\n </MobileHeaderContainer>\n )}\n {children}\n </ScrollableContainer>\n {action && <MobileActionContainer {...action} />}\n </MobileMenuWrapper>\n );\n};\n"],"mappings":";;;;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,sBAAT,QAAuC,+BAAvC;AAEA,SAASC,qBAAT,EAAgCC,gBAAhC,EAAkDC,gBAAlD,EAAoEC,iBAApE,EAAuFC,mBAAvF,QAAkH,4CAAlH;AACA,SAASC,qBAAT,QAAsC,qDAAtC;;;AAOA,OAAO,IAAMC,uBAA8E,GAAG,SAAjFA,uBAAiF,OAAkC;EAAA,IAA/BC,QAA+B,QAA/BA,QAA+B;EAAA,IAArBC,MAAqB,QAArBA,MAAqB;EAAA,IAAbC,MAAa,QAAbA,MAAa;;EAC9H,4BAAyCV,sBAAsB,CAAC,CAACQ,QAAD,CAAD,CAA/D;EAAA;EAAA,IAAOG,kBAAP;EAAA,IAA2BC,UAA3B;;EAEA,oBACE,MAAC,iBAAD;IAAA,wBACE,MAAC,mBAAD;MAAqB,GAAG,EAAED,kBAA1B;MAAqD,SAAS,EAAEC,UAAU,GAAG,YAAH,GAAkB,EAA5F;MAAA,WACG,CAAC,CAACH,MAAF,iBACC,MAAC,qBAAD;QAAA,wBACE,KAAC,gBAAD;UAAA,UAAmBA,MAAM,CAACA;QAA1B,EADF,EAEGA,MAAM,CAACI,IAAP,iBAAe,KAAC,gBAAD;UAAA,UAAmBJ,MAAM,CAACI;QAA1B,EAFlB;MAAA,EAFJ,EAOGL,QAPH;IAAA,EADF,EAUGE,MAAM,iBAAI,KAAC,qBAAD,oBAA2BA,MAA3B,EAVb;EAAA,EADF;AAcD,CAjBM"}
@@ -23,6 +23,8 @@ var _MobileMenuHeader = _interopRequireDefault(require("../GlobalNavigationBar/m
23
23
 
24
24
  var _MobileMenuContent = _interopRequireDefault(require("../GlobalNavigationBar/mobile/MobileMenuContent"));
25
25
 
26
+ var _MobileCustomMenuContent = require("./MobileCustomMenuContent");
27
+
26
28
  var _jsxRuntime = require("react/jsx-runtime");
27
29
 
28
30
  var _templateObject;
@@ -38,7 +40,9 @@ var MobileSwitcherMenu = function MobileSwitcherMenu(_ref) {
38
40
  header = _ref.header,
39
41
  note = _ref.note,
40
42
  onMenuClose = _ref.onMenuClose,
41
- items = _ref.items;
43
+ customContent = _ref.customContent,
44
+ items = _ref.items,
45
+ footerAction = _ref.footerAction;
42
46
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Wrapper, {
43
47
  role: "menu",
44
48
  "aria-labelledby": "UserMenuButton",
@@ -46,12 +50,20 @@ var MobileSwitcherMenu = function MobileSwitcherMenu(_ref) {
46
50
  onGoBack: onMenuClose,
47
51
  label: label,
48
52
  onClose: onMenuClose
49
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_MobileMenuContent.default, {
53
+ }), items && /*#__PURE__*/(0, _jsxRuntime.jsx)(_MobileMenuContent.default, {
54
+ header: {
55
+ header: header,
56
+ note: note
57
+ },
58
+ items: items,
59
+ action: footerAction
60
+ }), customContent && /*#__PURE__*/(0, _jsxRuntime.jsx)(_MobileCustomMenuContent.MobileCustomMenuContent, {
50
61
  header: {
51
62
  header: header,
52
63
  note: note
53
64
  },
54
- items: items
65
+ action: footerAction,
66
+ children: customContent
55
67
  })]
56
68
  });
57
69
  };
@@ -61,7 +73,8 @@ MobileSwitcherMenu.propTypes = {
61
73
  header: _propTypes.default.string.isRequired,
62
74
  note: _propTypes.default.string,
63
75
  onMenuClose: _propTypes.default.func.isRequired,
64
- items: _propTypes.default.array
76
+ items: _propTypes.default.array,
77
+ customContent: _propTypes.default.node
65
78
  };
66
79
  var _default = MobileSwitcherMenu;
67
80
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"file":"MobileSwitcherMenu.cjs","names":["Wrapper","styled","div","Z_INDEXES","off_canvas","BREAKPOINTS","SMALL","MobileSwitcherMenu","label","header","note","onMenuClose","items"],"sources":["../../src/Switcher/MobileSwitcherMenu.tsx"],"sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport {BREAKPOINTS} from '../styles';\nimport {Z_INDEXES} from '../styles';\nimport {MenuNavigationItemTypeItem} from '../GlobalNavigationBar';\nimport MobileMenuHeader from '../GlobalNavigationBar/mobile/MobileMenuHeader';\nimport MobileMenuContent from '../GlobalNavigationBar/mobile/MobileMenuContent';\n\nconst Wrapper = styled.div`\n width: 320px;\n z-index: ${Z_INDEXES.off_canvas};\n height: 100%;\n box-sizing: border-box;\n\n display: flex;\n flex-direction: column;\n gap: 8px;\n\n ${BREAKPOINTS.SMALL} {\n width: 400px;\n }\n`;\n\n\ninterface Props {\n label: string;\n header: string;\n note?: string;\n onMenuClose: () => void;\n items?: MenuNavigationItemTypeItem[];\n}\n\nconst MobileSwitcherMenu = ({label, header, note, onMenuClose, items}: Props) => {\n return (\n <Wrapper role=\"menu\" aria-labelledby=\"UserMenuButton\">\n <MobileMenuHeader onGoBack={onMenuClose}\n label={label}\n onClose={onMenuClose}/>\n <MobileMenuContent header={{header, note}}\n items={items}/>\n </Wrapper>\n );\n};\n\nexport default MobileSwitcherMenu;\n"],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAGA;;AACA;;;;;;;;;;AAEA,IAAMA,OAAO,GAAGC,yBAAA,CAAOC,GAAV,qQAEAC,iBAAA,CAAUC,UAFV,EAUTC,mBAAA,CAAYC,KAVH,CAAb;;AAwBA,IAAMC,kBAAkB,GAAG,SAArBA,kBAAqB,OAAsD;EAAA,IAApDC,KAAoD,QAApDA,KAAoD;EAAA,IAA7CC,MAA6C,QAA7CA,MAA6C;EAAA,IAArCC,IAAqC,QAArCA,IAAqC;EAAA,IAA/BC,WAA+B,QAA/BA,WAA+B;EAAA,IAAlBC,KAAkB,QAAlBA,KAAkB;EAC/E,oBACE,sBAAC,OAAD;IAAS,IAAI,EAAC,MAAd;IAAqB,mBAAgB,gBAArC;IAAA,wBACE,qBAAC,yBAAD;MAAkB,QAAQ,EAAED,WAA5B;MACkB,KAAK,EAAEH,KADzB;MAEkB,OAAO,EAAEG;IAF3B,EADF,eAIE,qBAAC,0BAAD;MAAmB,MAAM,EAAE;QAACF,MAAM,EAANA,MAAD;QAASC,IAAI,EAAJA;MAAT,CAA3B;MACmB,KAAK,EAAEE;IAD1B,EAJF;EAAA,EADF;AASD,CAVD;;;EAPEJ,K;EACAC,M;EACAC,I;EACAC,W;EACAC,K;;eAeaL,kB"}
1
+ {"version":3,"file":"MobileSwitcherMenu.cjs","names":["Wrapper","styled","div","Z_INDEXES","off_canvas","BREAKPOINTS","SMALL","MobileSwitcherMenu","label","header","note","onMenuClose","customContent","items","footerAction"],"sources":["../../src/Switcher/MobileSwitcherMenu.tsx"],"sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport { BREAKPOINTS } from '../styles';\nimport { Z_INDEXES } from '../styles';\nimport { MenuButton, MenuNavigationItemTypeItem } from '../GlobalNavigationBar';\nimport MobileMenuHeader from '../GlobalNavigationBar/mobile/MobileMenuHeader';\nimport MobileMenuContent from '../GlobalNavigationBar/mobile/MobileMenuContent';\nimport { MobileCustomMenuContent } from './MobileCustomMenuContent';\n\nconst Wrapper = styled.div`\n width: 320px;\n z-index: ${Z_INDEXES.off_canvas};\n height: 100%;\n box-sizing: border-box;\n\n display: flex;\n flex-direction: column;\n gap: 8px;\n\n ${BREAKPOINTS.SMALL} {\n width: 400px;\n }\n`;\n\ninterface Props {\n label: string;\n header: string;\n note?: string;\n onMenuClose: () => void;\n items?: MenuNavigationItemTypeItem[];\n footerAction?: MenuButton;\n customContent?: React.ReactNode;\n}\n\nconst MobileSwitcherMenu = ({ label, header, note, onMenuClose, customContent, items, footerAction }: Props) => {\n return (\n <Wrapper role=\"menu\" aria-labelledby=\"UserMenuButton\">\n <MobileMenuHeader onGoBack={onMenuClose} label={label} onClose={onMenuClose} />\n {items && <MobileMenuContent header={{ header, note }} items={items} action={footerAction} />}\n {customContent && (\n <MobileCustomMenuContent header={{ header, note }} action={footerAction}>\n {customContent}\n </MobileCustomMenuContent>\n )}\n </Wrapper>\n );\n};\n\nexport default MobileSwitcherMenu;\n"],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAGA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,OAAO,GAAGC,yBAAA,CAAOC,GAAV,qQAEAC,iBAAA,CAAUC,UAFV,EAUTC,mBAAA,CAAYC,KAVH,CAAb;;AAyBA,IAAMC,kBAAkB,GAAG,SAArBA,kBAAqB,OAAqF;EAAA,IAAlFC,KAAkF,QAAlFA,KAAkF;EAAA,IAA3EC,MAA2E,QAA3EA,MAA2E;EAAA,IAAnEC,IAAmE,QAAnEA,IAAmE;EAAA,IAA7DC,WAA6D,QAA7DA,WAA6D;EAAA,IAAhDC,aAAgD,QAAhDA,aAAgD;EAAA,IAAjCC,KAAiC,QAAjCA,KAAiC;EAAA,IAA1BC,YAA0B,QAA1BA,YAA0B;EAC9G,oBACE,sBAAC,OAAD;IAAS,IAAI,EAAC,MAAd;IAAqB,mBAAgB,gBAArC;IAAA,wBACE,qBAAC,yBAAD;MAAkB,QAAQ,EAAEH,WAA5B;MAAyC,KAAK,EAAEH,KAAhD;MAAuD,OAAO,EAAEG;IAAhE,EADF,EAEGE,KAAK,iBAAI,qBAAC,0BAAD;MAAmB,MAAM,EAAE;QAAEJ,MAAM,EAANA,MAAF;QAAUC,IAAI,EAAJA;MAAV,CAA3B;MAA6C,KAAK,EAAEG,KAApD;MAA2D,MAAM,EAAEC;IAAnE,EAFZ,EAGGF,aAAa,iBACZ,qBAAC,gDAAD;MAAyB,MAAM,EAAE;QAAEH,MAAM,EAANA,MAAF;QAAUC,IAAI,EAAJA;MAAV,CAAjC;MAAmD,MAAM,EAAEI,YAA3D;MAAA,UACGF;IADH,EAJJ;EAAA,EADF;AAWD,CAZD;;;EATEJ,K;EACAC,M;EACAC,I;EACAC,W;EACAE,K;EAEAD,a;;eAiBaL,kB"}
@@ -1,11 +1,13 @@
1
- /// <reference types="react" />
2
- import { MenuNavigationItemTypeItem } from '../GlobalNavigationBar';
1
+ import * as React from 'react';
2
+ import { MenuButton, MenuNavigationItemTypeItem } from '../GlobalNavigationBar';
3
3
  interface Props {
4
4
  label: string;
5
5
  header: string;
6
6
  note?: string;
7
7
  onMenuClose: () => void;
8
8
  items?: MenuNavigationItemTypeItem[];
9
+ footerAction?: MenuButton;
10
+ customContent?: React.ReactNode;
9
11
  }
10
- declare const MobileSwitcherMenu: ({ label, header, note, onMenuClose, items }: Props) => JSX.Element;
12
+ declare const MobileSwitcherMenu: ({ label, header, note, onMenuClose, customContent, items, footerAction }: Props) => JSX.Element;
11
13
  export default MobileSwitcherMenu;
@@ -9,6 +9,7 @@ import { BREAKPOINTS } from '../styles';
9
9
  import { Z_INDEXES } from '../styles';
10
10
  import MobileMenuHeader from '../GlobalNavigationBar/mobile/MobileMenuHeader';
11
11
  import MobileMenuContent from '../GlobalNavigationBar/mobile/MobileMenuContent';
12
+ import { MobileCustomMenuContent } from './MobileCustomMenuContent';
12
13
  import { jsx as _jsx } from "react/jsx-runtime";
13
14
  import { jsxs as _jsxs } from "react/jsx-runtime";
14
15
  var Wrapper = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n width: 320px;\n z-index: ", ";\n height: 100%;\n box-sizing: border-box;\n\n display: flex;\n flex-direction: column;\n gap: 8px;\n\n ", " {\n width: 400px;\n }\n"])), Z_INDEXES.off_canvas, BREAKPOINTS.SMALL);
@@ -18,7 +19,9 @@ var MobileSwitcherMenu = function MobileSwitcherMenu(_ref) {
18
19
  header = _ref.header,
19
20
  note = _ref.note,
20
21
  onMenuClose = _ref.onMenuClose,
21
- items = _ref.items;
22
+ customContent = _ref.customContent,
23
+ items = _ref.items,
24
+ footerAction = _ref.footerAction;
22
25
  return /*#__PURE__*/_jsxs(Wrapper, {
23
26
  role: "menu",
24
27
  "aria-labelledby": "UserMenuButton",
@@ -26,12 +29,20 @@ var MobileSwitcherMenu = function MobileSwitcherMenu(_ref) {
26
29
  onGoBack: onMenuClose,
27
30
  label: label,
28
31
  onClose: onMenuClose
29
- }), /*#__PURE__*/_jsx(MobileMenuContent, {
32
+ }), items && /*#__PURE__*/_jsx(MobileMenuContent, {
30
33
  header: {
31
34
  header: header,
32
35
  note: note
33
36
  },
34
- items: items
37
+ items: items,
38
+ action: footerAction
39
+ }), customContent && /*#__PURE__*/_jsx(MobileCustomMenuContent, {
40
+ header: {
41
+ header: header,
42
+ note: note
43
+ },
44
+ action: footerAction,
45
+ children: customContent
35
46
  })]
36
47
  });
37
48
  };
@@ -41,7 +52,8 @@ MobileSwitcherMenu.propTypes = {
41
52
  header: _pt.string.isRequired,
42
53
  note: _pt.string,
43
54
  onMenuClose: _pt.func.isRequired,
44
- items: _pt.array
55
+ items: _pt.array,
56
+ customContent: _pt.node
45
57
  };
46
58
  export default MobileSwitcherMenu;
47
59
  //# sourceMappingURL=MobileSwitcherMenu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MobileSwitcherMenu.js","names":["React","styled","BREAKPOINTS","Z_INDEXES","MobileMenuHeader","MobileMenuContent","Wrapper","div","off_canvas","SMALL","MobileSwitcherMenu","label","header","note","onMenuClose","items"],"sources":["../../src/Switcher/MobileSwitcherMenu.tsx"],"sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport {BREAKPOINTS} from '../styles';\nimport {Z_INDEXES} from '../styles';\nimport {MenuNavigationItemTypeItem} from '../GlobalNavigationBar';\nimport MobileMenuHeader from '../GlobalNavigationBar/mobile/MobileMenuHeader';\nimport MobileMenuContent from '../GlobalNavigationBar/mobile/MobileMenuContent';\n\nconst Wrapper = styled.div`\n width: 320px;\n z-index: ${Z_INDEXES.off_canvas};\n height: 100%;\n box-sizing: border-box;\n\n display: flex;\n flex-direction: column;\n gap: 8px;\n\n ${BREAKPOINTS.SMALL} {\n width: 400px;\n }\n`;\n\n\ninterface Props {\n label: string;\n header: string;\n note?: string;\n onMenuClose: () => void;\n items?: MenuNavigationItemTypeItem[];\n}\n\nconst MobileSwitcherMenu = ({label, header, note, onMenuClose, items}: Props) => {\n return (\n <Wrapper role=\"menu\" aria-labelledby=\"UserMenuButton\">\n <MobileMenuHeader onGoBack={onMenuClose}\n label={label}\n onClose={onMenuClose}/>\n <MobileMenuContent header={{header, note}}\n items={items}/>\n </Wrapper>\n );\n};\n\nexport default MobileSwitcherMenu;\n"],"mappings":";;;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,OAAOC,MAAP,MAAmB,mBAAnB;AACA,SAAQC,WAAR,QAA0B,WAA1B;AACA,SAAQC,SAAR,QAAwB,WAAxB;AAEA,OAAOC,gBAAP,MAA6B,gDAA7B;AACA,OAAOC,iBAAP,MAA8B,iDAA9B;;;AAEA,IAAMC,OAAO,GAAGL,MAAM,CAACM,GAAV,uPAEAJ,SAAS,CAACK,UAFV,EAUTN,WAAW,CAACO,KAVH,CAAb;;AAwBA,IAAMC,kBAAkB,GAAG,SAArBA,kBAAqB,OAAsD;EAAA,IAApDC,KAAoD,QAApDA,KAAoD;EAAA,IAA7CC,MAA6C,QAA7CA,MAA6C;EAAA,IAArCC,IAAqC,QAArCA,IAAqC;EAAA,IAA/BC,WAA+B,QAA/BA,WAA+B;EAAA,IAAlBC,KAAkB,QAAlBA,KAAkB;EAC/E,oBACE,MAAC,OAAD;IAAS,IAAI,EAAC,MAAd;IAAqB,mBAAgB,gBAArC;IAAA,wBACE,KAAC,gBAAD;MAAkB,QAAQ,EAAED,WAA5B;MACkB,KAAK,EAAEH,KADzB;MAEkB,OAAO,EAAEG;IAF3B,EADF,eAIE,KAAC,iBAAD;MAAmB,MAAM,EAAE;QAACF,MAAM,EAANA,MAAD;QAASC,IAAI,EAAJA;MAAT,CAA3B;MACmB,KAAK,EAAEE;IAD1B,EAJF;EAAA,EADF;AASD,CAVD;;;EAPEJ,K;EACAC,M;EACAC,I;EACAC,W;EACAC,K;;AAeF,eAAeL,kBAAf"}
1
+ {"version":3,"file":"MobileSwitcherMenu.js","names":["React","styled","BREAKPOINTS","Z_INDEXES","MobileMenuHeader","MobileMenuContent","MobileCustomMenuContent","Wrapper","div","off_canvas","SMALL","MobileSwitcherMenu","label","header","note","onMenuClose","customContent","items","footerAction"],"sources":["../../src/Switcher/MobileSwitcherMenu.tsx"],"sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport { BREAKPOINTS } from '../styles';\nimport { Z_INDEXES } from '../styles';\nimport { MenuButton, MenuNavigationItemTypeItem } from '../GlobalNavigationBar';\nimport MobileMenuHeader from '../GlobalNavigationBar/mobile/MobileMenuHeader';\nimport MobileMenuContent from '../GlobalNavigationBar/mobile/MobileMenuContent';\nimport { MobileCustomMenuContent } from './MobileCustomMenuContent';\n\nconst Wrapper = styled.div`\n width: 320px;\n z-index: ${Z_INDEXES.off_canvas};\n height: 100%;\n box-sizing: border-box;\n\n display: flex;\n flex-direction: column;\n gap: 8px;\n\n ${BREAKPOINTS.SMALL} {\n width: 400px;\n }\n`;\n\ninterface Props {\n label: string;\n header: string;\n note?: string;\n onMenuClose: () => void;\n items?: MenuNavigationItemTypeItem[];\n footerAction?: MenuButton;\n customContent?: React.ReactNode;\n}\n\nconst MobileSwitcherMenu = ({ label, header, note, onMenuClose, customContent, items, footerAction }: Props) => {\n return (\n <Wrapper role=\"menu\" aria-labelledby=\"UserMenuButton\">\n <MobileMenuHeader onGoBack={onMenuClose} label={label} onClose={onMenuClose} />\n {items && <MobileMenuContent header={{ header, note }} items={items} action={footerAction} />}\n {customContent && (\n <MobileCustomMenuContent header={{ header, note }} action={footerAction}>\n {customContent}\n </MobileCustomMenuContent>\n )}\n </Wrapper>\n );\n};\n\nexport default MobileSwitcherMenu;\n"],"mappings":";;;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,OAAOC,MAAP,MAAmB,mBAAnB;AACA,SAASC,WAAT,QAA4B,WAA5B;AACA,SAASC,SAAT,QAA0B,WAA1B;AAEA,OAAOC,gBAAP,MAA6B,gDAA7B;AACA,OAAOC,iBAAP,MAA8B,iDAA9B;AACA,SAASC,uBAAT,QAAwC,2BAAxC;;;AAEA,IAAMC,OAAO,GAAGN,MAAM,CAACO,GAAV,uPAEAL,SAAS,CAACM,UAFV,EAUTP,WAAW,CAACQ,KAVH,CAAb;;AAyBA,IAAMC,kBAAkB,GAAG,SAArBA,kBAAqB,OAAqF;EAAA,IAAlFC,KAAkF,QAAlFA,KAAkF;EAAA,IAA3EC,MAA2E,QAA3EA,MAA2E;EAAA,IAAnEC,IAAmE,QAAnEA,IAAmE;EAAA,IAA7DC,WAA6D,QAA7DA,WAA6D;EAAA,IAAhDC,aAAgD,QAAhDA,aAAgD;EAAA,IAAjCC,KAAiC,QAAjCA,KAAiC;EAAA,IAA1BC,YAA0B,QAA1BA,YAA0B;EAC9G,oBACE,MAAC,OAAD;IAAS,IAAI,EAAC,MAAd;IAAqB,mBAAgB,gBAArC;IAAA,wBACE,KAAC,gBAAD;MAAkB,QAAQ,EAAEH,WAA5B;MAAyC,KAAK,EAAEH,KAAhD;MAAuD,OAAO,EAAEG;IAAhE,EADF,EAEGE,KAAK,iBAAI,KAAC,iBAAD;MAAmB,MAAM,EAAE;QAAEJ,MAAM,EAANA,MAAF;QAAUC,IAAI,EAAJA;MAAV,CAA3B;MAA6C,KAAK,EAAEG,KAApD;MAA2D,MAAM,EAAEC;IAAnE,EAFZ,EAGGF,aAAa,iBACZ,KAAC,uBAAD;MAAyB,MAAM,EAAE;QAAEH,MAAM,EAANA,MAAF;QAAUC,IAAI,EAAJA;MAAV,CAAjC;MAAmD,MAAM,EAAEI,YAA3D;MAAA,UACGF;IADH,EAJJ;EAAA,EADF;AAWD,CAZD;;;EATEJ,K;EACAC,M;EACAC,I;EACAC,W;EACAE,K;EAEAD,a;;AAiBF,eAAeL,kBAAf"}
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export interface SwitcherNavItem {
3
2
  label: string;
4
3
  url: string;
@@ -58,6 +58,7 @@ var Table = function Table(props) {
58
58
  selectable = props.selectable,
59
59
  multiSelect = props.multiSelect,
60
60
  keyExpr = props.keyExpr,
61
+ sortProps = props.sortProps,
61
62
  accordion = props.accordion,
62
63
  _props$collapsed = props.collapsed,
63
64
  collapsed = _props$collapsed === void 0 ? true : _props$collapsed,
@@ -84,7 +85,7 @@ var Table = function Table(props) {
84
85
  currentPage = _React$useState8[0],
85
86
  setCurrentPage = _React$useState8[1];
86
87
 
87
- var _React$useState9 = React.useState({}),
88
+ var _React$useState9 = React.useState(sortProps),
88
89
  _React$useState10 = (0, _slicedToArray2.default)(_React$useState9, 2),
89
90
  sort = _React$useState10[0],
90
91
  setSort = _React$useState10[1];
@@ -119,6 +120,9 @@ var Table = function Table(props) {
119
120
  selected = _React$useState22[0],
120
121
  setSelected = _React$useState22[1];
121
122
 
123
+ React.useEffect(function () {
124
+ setSort(sortProps);
125
+ }, [sortProps]);
122
126
  React.useEffect(function () {
123
127
  setSelected(props.selectedRows || (multiSelect ? [] : undefined));
124
128
  }, [props.selectedRows, multiSelect]);
@@ -249,11 +253,11 @@ var Table = function Table(props) {
249
253
  var columnKey = '';
250
254
  var sortDirection = undefined;
251
255
 
252
- if (sort.column !== column.key) {
256
+ if ((sort === null || sort === void 0 ? void 0 : sort.column) !== column.key) {
253
257
  columnKey = column.key;
254
258
  sortDirection = 'asc';
255
259
  } else {
256
- if (sort.direction === 'desc') {
260
+ if ((sort === null || sort === void 0 ? void 0 : sort.direction) === 'desc') {
257
261
  columnKey = '';
258
262
  sortDirection = undefined;
259
263
  } else {
@@ -262,7 +266,7 @@ var Table = function Table(props) {
262
266
  }
263
267
  }
264
268
 
265
- setSort({
269
+ if (columnKey == '') setSort(undefined);else setSort({
266
270
  column: columnKey,
267
271
  direction: sortDirection
268
272
  });
@@ -394,8 +398,7 @@ var Table = function Table(props) {
394
398
  onRowClick: onRowClick,
395
399
  sortByColumn: sortTableColumn,
396
400
  onSelectAllClick: onSelectAllClick,
397
- sortedColumn: sort.column,
398
- sortedDirection: sort.direction,
401
+ sortProps: sort,
399
402
  selectAllState: selectAllState
400
403
  })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_TableFooter.default, _objectSpread(_objectSpread({}, props), {}, {
401
404
  onRowsPerPageChange: changeRowsPerPage,
@@ -1 +1 @@
1
- {"version":3,"file":"Table.cjs","names":["Table","props","onPreviousPageClick","onNextPageClick","onRowsPerPageChange","onTriggerSortingChange","columns","rows","remoteOperations","pagination","showLoadingIndicator","selectable","multiSelect","keyExpr","accordion","collapsed","collapsedRows","rowsPerPageLabel","React","useState","rowsPerPage","setRowsPerPage","filteredRows","setFilteredRows","currentPageRows","setCurrentPageRows","currentPage","setCurrentPage","sort","setSort","from","setFrom","to","setTo","total","setTotal","isCollapsed","setIsCollapsed","selectAllState","setSelectAllState","undefined","selected","setSelected","useEffect","selectedRows","currentList","map","row","count","filter","item","includes","length","filterAndSortRows","tmpFilteredRows","matchFilterCriteria","column","filterValue","key","toLowerCase","indexOf","direction","a","b","rowsFrom","rowsTo","slice","sortTableColumn","columnKey","sortDirection","previousPage","nextPage","changeRowsPerPage","value","onRowClick","selectedText","window","getSelection","toString","currentSelection","existing","splice","onSelectionChange","onSelectAllClick","Size","Medium"],"sources":["../../src/Table/Table.tsx"],"sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import custom components.\n */\nimport {Size} from '../types'\n\n/**\n * Import custom styles.\n */\nimport {StyledTable, StyledTableSpinner, TableWrapper} from './TableStyles';\n\n/**\n * Import custom types.\n */\nimport {TableProps, TableColumn, TableSortingDirection} from './TableTypes';\nimport {LoadingIndicator} from '../LoadingIndicator';\nimport TableHeader from './TableHeaders';\nimport TableFooter from './TableFooter';\nimport TableBody from './TableBody';\n\nconst Table: React.FunctionComponent<TableProps> = (props: TableProps) => {\n let {\n onPreviousPageClick,\n onNextPageClick,\n onRowsPerPageChange,\n onTriggerSortingChange,\n columns,\n rows,\n remoteOperations,\n pagination,\n showLoadingIndicator,\n selectable,\n multiSelect,\n keyExpr,\n accordion,\n collapsed = true,\n collapsedRows,\n rowsPerPageLabel\n } = props;\n\n // States used within the component\n const [rowsPerPage, setRowsPerPage] = React.useState<number>(10);\n const [filteredRows, setFilteredRows] = React.useState<any[]>([]);\n const [currentPageRows, setCurrentPageRows] = React.useState<any[]>([]);\n const [currentPage, setCurrentPage] = React.useState<number>(1);\n const [sort, setSort] = React.useState<{ column?: string; direction?: TableSortingDirection }>({});\n const [from, setFrom] = React.useState<number>();\n const [to, setTo] = React.useState<number>();\n const [total, setTotal] = React.useState<number>();\n\n const [isCollapsed, setIsCollapsed] = React.useState(true);\n\n const [selectAllState, setSelectAllState] = React.useState<'all' | 'some' | 'none'>('none');\n\n const [selected, setSelected] = React.useState<any | any[]>(multiSelect ? [] : undefined);\n\n React.useEffect(() => {\n setSelected(props.selectedRows || (multiSelect ? [] : undefined))\n }, [props.selectedRows, multiSelect])\n\n /**\n * update select all checkbox state\n */\n React.useEffect(() => {\n if (multiSelect) {\n const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);\n const count = selected.filter((item: any) => currentList.includes(item)).length;\n\n setSelectAllState(count === currentList.length ? 'all' : count > 0 ? 'some' : 'none');\n }\n }, [currentPageRows, multiSelect, selected, keyExpr])\n\n /**\n * Takes care of remote pagination.\n * Works only in case remote pagination is set to true.\n */\n React.useEffect(() => {\n if (remoteOperations) {\n setCurrentPageRows(rows);\n\n // Let's assign pagination values\n setFrom(pagination?.from);\n setTo(pagination?.to);\n setTotal(pagination?.total);\n setCurrentPage(pagination?.currentPage!);\n setRowsPerPage(pagination?.rowsPerPage!);\n }\n }, [remoteOperations, pagination, rows]);\n\n /**\n * Sets number of rows to display when accordion.\n */\n React.useEffect(() => {\n if (!accordion) return;\n\n setRowsPerPage(isCollapsed ? collapsedRows || 10 : rows.length);\n }, [rows, accordion, collapsedRows, isCollapsed])\n\n React.useEffect(() => {\n if (!accordion) return;\n\n setIsCollapsed(!!collapsed);\n }, [accordion, collapsed])\n\n /**\n * Filters out a rows by specific column filters and sorts them if any sorting is set.\n * @returns Filtered and sorted rows.\n */\n const filterAndSortRows = (): any[] => {\n let tmpFilteredRows = rows.filter((row) => {\n // Let's start with matched filter criteria\n let matchFilterCriteria = true;\n\n // Let's go through columns\n for (const column of columns) {\n // Let's check if filter value is specified for the column\n // And if it doesn't match the current row column value\n // Then let's update match filter criteria to failed\n if (column.filterValue && row[column.key].toLowerCase().indexOf(column.filterValue.toLowerCase()) === -1) {\n matchFilterCriteria = false;\n }\n }\n\n // Let's return row only in case match filter criteria succeeds\n if (matchFilterCriteria) {\n return row;\n }\n });\n\n // Let's apply sorting if needed\n if (!!sort?.column && !!sort?.direction) {\n // Let's sort the rows\n tmpFilteredRows.sort((a, b) => {\n if (a[sort.column!] > b[sort.column!]) {\n return sort.direction! === 'asc' ? 1 : -1;\n } else if (a[sort.column!] < b[sort.column!]) {\n return sort.direction! === 'asc' ? -1 : 1;\n } else {\n return 0;\n }\n });\n }\n\n // Let's return filtered rows\n return tmpFilteredRows;\n };\n\n /**\n * Takes care of local pagination.\n * Works only in case remote pagination is not defined or is set to false.\n */\n React.useEffect(() => {\n if (!remoteOperations) {\n // Let's retrieve temporary filtered rows and update globally filtered rows\n const tmpFilteredRows = filterAndSortRows();\n setFilteredRows(tmpFilteredRows);\n setTotal(tmpFilteredRows.length);\n\n // Assign rows from and rows to\n const rowsFrom = (currentPage - 1) * rowsPerPage;\n const rowsTo = rowsFrom + rowsPerPage >= tmpFilteredRows.length ? tmpFilteredRows.length : rowsFrom + rowsPerPage;\n\n // Set from and to values\n setFrom(rowsFrom + 1);\n setTo(rowsTo);\n\n // Filter out the rows\n setCurrentPageRows(tmpFilteredRows.slice(rowsFrom, rowsTo));\n }\n }, [rowsPerPage, rows, currentPage, columns, sort, remoteOperations]);\n\n\n /**\n * Applies a specific sorting to a column.\n * If no sorting exists, then applies ascending initially\n * @param column - Column to which sorting should be applied.\n */\n const sortTableColumn = (column: TableColumn): void => {\n let columnKey = '';\n let sortDirection: TableSortingDirection | undefined = undefined;\n\n if (sort.column !== column.key) {\n columnKey = column.key;\n sortDirection = 'asc';\n } else {\n if (sort.direction === 'desc') {\n columnKey = '';\n sortDirection = undefined;\n } else {\n columnKey = sort.column;\n sortDirection = sort.direction === 'asc' ? 'desc' : 'asc';\n }\n }\n\n setSort({column: columnKey, direction: sortDirection});\n\n remoteOperations && onTriggerSortingChange && onTriggerSortingChange(columnKey, sortDirection);\n };\n\n /**\n * Navigates user back to the previous page and updates the current table page.\n */\n const previousPage = () => {\n if (remoteOperations) {\n // Let's inform parent component about page change\n if (onPreviousPageClick) {\n onPreviousPageClick();\n }\n } else {\n // Let's change the page within the component\n setCurrentPage(currentPage > 1 ? currentPage - 1 : 1);\n }\n };\n\n /**\n * Navigates user to the next page and updates the current table page.\n */\n const nextPage = () => {\n if (remoteOperations) {\n // Let's inform parent component about page change\n if (onNextPageClick) {\n onNextPageClick();\n }\n } else {\n // Let's change the page within the component\n setCurrentPage(currentPage * rowsPerPage >= filteredRows.length ? currentPage : currentPage + 1);\n }\n };\n\n /**\n * Updates the rows per page value and refreshes the table content accordingly.\n * @param value - Newly selected rows per page value.\n */\n const changeRowsPerPage = (value: number) => {\n // Let's check if we are using remote pagination\n if (remoteOperations) {\n // Inform parent component about rows per page change\n if (onRowsPerPageChange) {\n onRowsPerPageChange(value);\n }\n } else {\n // Let's reset current page to 1\n setCurrentPage(1);\n }\n\n // Let's set rows per page\n setRowsPerPage(value);\n };\n\n\n /**\n * Function which is called when a mouse click happens on a row to pass data to the parent component.\n * @param row - Row in which the link is located.\n */\n const onRowClick = (row: any): void => {\n const selectedText = window?.getSelection()?.toString();\n\n if (selectedText?.length === 0 && selectable) {\n const value = keyExpr ? row[keyExpr] : row;\n let currentSelection = value;\n if (!!multiSelect) {\n const existing = selected?.indexOf(value);\n if (existing > -1) {\n currentSelection = [...selected];\n currentSelection.splice(existing, 1);\n } else {\n currentSelection = [...selected, currentSelection];\n }\n }\n\n setSelected(currentSelection)\n props.onSelectionChange && props.onSelectionChange(currentSelection);\n }\n };\n\n /**\n * Function which is called when user clicks checkbox to select or deselect all rows.\n */\n const onSelectAllClick = () => {\n const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);\n\n switch (selectAllState) {\n case 'all':\n setSelected([...selected].filter(item => !currentList.includes(item)));\n setSelectAllState('none');\n break;\n case 'none':\n setSelected([...selected, ...currentList]);\n setSelectAllState('all');\n break;\n case 'some':\n setSelected([...selected, ...currentList.filter(item => !selected.includes(item))]);\n setSelectAllState('all');\n break;\n }\n };\n\n /**\n * Return Table component.\n */\n return (\n <TableWrapper>\n <TableHeader {...props}/>\n <TableBody {...props}\n currentPageRows={currentPageRows}\n selected={selected}\n onRowClick={onRowClick}\n sortByColumn={sortTableColumn}\n onSelectAllClick={onSelectAllClick}\n sortedColumn={sort.column}\n sortedDirection={sort.direction}\n selectAllState={selectAllState}/>\n <TableFooter {...props}\n onRowsPerPageChange={changeRowsPerPage}\n rowsPerPage={rowsPerPage}\n setIsCollapsed={setIsCollapsed}\n isCollapsed={isCollapsed}\n from={from}\n to={to}\n total={total}\n nextPage={nextPage}\n prevPage={previousPage}/>\n {showLoadingIndicator && (\n <StyledTableSpinner>\n <LoadingIndicator size={Size.Medium}/>\n </StyledTableSpinner>\n )}\n </TableWrapper>\n );\n};\n\nexport default Table;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Table.cjs","names":["Table","props","onPreviousPageClick","onNextPageClick","onRowsPerPageChange","onTriggerSortingChange","columns","rows","remoteOperations","pagination","showLoadingIndicator","selectable","multiSelect","keyExpr","sortProps","accordion","collapsed","collapsedRows","rowsPerPageLabel","React","useState","rowsPerPage","setRowsPerPage","filteredRows","setFilteredRows","currentPageRows","setCurrentPageRows","currentPage","setCurrentPage","sort","setSort","from","setFrom","to","setTo","total","setTotal","isCollapsed","setIsCollapsed","selectAllState","setSelectAllState","undefined","selected","setSelected","useEffect","selectedRows","currentList","map","row","count","filter","item","includes","length","filterAndSortRows","tmpFilteredRows","matchFilterCriteria","column","filterValue","key","toLowerCase","indexOf","direction","a","b","rowsFrom","rowsTo","slice","sortTableColumn","columnKey","sortDirection","previousPage","nextPage","changeRowsPerPage","value","onRowClick","selectedText","window","getSelection","toString","currentSelection","existing","splice","onSelectionChange","onSelectAllClick","Size","Medium"],"sources":["../../src/Table/Table.tsx"],"sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import custom components.\n */\nimport {Size} from '../types'\n\n/**\n * Import custom styles.\n */\nimport {StyledTable, StyledTableSpinner, TableWrapper} from './TableStyles';\n\n/**\n * Import custom types.\n */\nimport {TableProps, TableColumn, TableSortingDirection, TableSortProps} from './TableTypes';\nimport {LoadingIndicator} from '../LoadingIndicator';\nimport TableHeader from './TableHeaders';\nimport TableFooter from './TableFooter';\nimport TableBody from './TableBody';\n\nconst Table: React.FunctionComponent<TableProps> = (props: TableProps) => {\n let {\n onPreviousPageClick,\n onNextPageClick,\n onRowsPerPageChange,\n onTriggerSortingChange,\n columns,\n rows,\n remoteOperations,\n pagination,\n showLoadingIndicator,\n selectable,\n multiSelect,\n keyExpr,\n sortProps,\n accordion,\n collapsed = true,\n collapsedRows,\n rowsPerPageLabel\n } = props;\n\n // States used within the component\n const [rowsPerPage, setRowsPerPage] = React.useState<number>(10);\n const [filteredRows, setFilteredRows] = React.useState<any[]>([]);\n const [currentPageRows, setCurrentPageRows] = React.useState<any[]>([]);\n const [currentPage, setCurrentPage] = React.useState<number>(1);\n const [sort, setSort] = React.useState<TableSortProps | undefined>(sortProps);\n const [from, setFrom] = React.useState<number>();\n const [to, setTo] = React.useState<number>();\n const [total, setTotal] = React.useState<number>();\n\n const [isCollapsed, setIsCollapsed] = React.useState(true);\n\n const [selectAllState, setSelectAllState] = React.useState<'all' | 'some' | 'none'>('none');\n\n const [selected, setSelected] = React.useState<any | any[]>(multiSelect ? [] : undefined);\n\n React.useEffect(() => {\n setSort(sortProps);\n }, [sortProps])\n\n React.useEffect(() => {\n setSelected(props.selectedRows || (multiSelect ? [] : undefined))\n }, [props.selectedRows, multiSelect])\n\n /**\n * update select all checkbox state\n */\n React.useEffect(() => {\n if (multiSelect) {\n const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);\n const count = selected.filter((item: any) => currentList.includes(item)).length;\n\n setSelectAllState(count === currentList.length ? 'all' : count > 0 ? 'some' : 'none');\n }\n }, [currentPageRows, multiSelect, selected, keyExpr])\n\n /**\n * Takes care of remote pagination.\n * Works only in case remote pagination is set to true.\n */\n React.useEffect(() => {\n if (remoteOperations) {\n setCurrentPageRows(rows);\n\n // Let's assign pagination values\n setFrom(pagination?.from);\n setTo(pagination?.to);\n setTotal(pagination?.total);\n setCurrentPage(pagination?.currentPage!);\n setRowsPerPage(pagination?.rowsPerPage!);\n }\n }, [remoteOperations, pagination, rows]);\n\n /**\n * Sets number of rows to display when accordion.\n */\n React.useEffect(() => {\n if (!accordion) return;\n\n setRowsPerPage(isCollapsed ? collapsedRows || 10 : rows.length);\n }, [rows, accordion, collapsedRows, isCollapsed])\n\n React.useEffect(() => {\n if (!accordion) return;\n\n setIsCollapsed(!!collapsed);\n }, [accordion, collapsed])\n\n /**\n * Filters out a rows by specific column filters and sorts them if any sorting is set.\n * @returns Filtered and sorted rows.\n */\n const filterAndSortRows = (): any[] => {\n let tmpFilteredRows = rows.filter((row) => {\n // Let's start with matched filter criteria\n let matchFilterCriteria = true;\n\n // Let's go through columns\n for (const column of columns) {\n // Let's check if filter value is specified for the column\n // And if it doesn't match the current row column value\n // Then let's update match filter criteria to failed\n if (column.filterValue && row[column.key].toLowerCase().indexOf(column.filterValue.toLowerCase()) === -1) {\n matchFilterCriteria = false;\n }\n }\n\n // Let's return row only in case match filter criteria succeeds\n if (matchFilterCriteria) {\n return row;\n }\n });\n\n // Let's apply sorting if needed\n if (!!sort?.column && !!sort?.direction) {\n // Let's sort the rows\n tmpFilteredRows.sort((a, b) => {\n if (a[sort.column!] > b[sort.column!]) {\n return sort.direction! === 'asc' ? 1 : -1;\n } else if (a[sort.column!] < b[sort.column!]) {\n return sort.direction! === 'asc' ? -1 : 1;\n } else {\n return 0;\n }\n });\n }\n\n // Let's return filtered rows\n return tmpFilteredRows;\n };\n\n /**\n * Takes care of local pagination.\n * Works only in case remote pagination is not defined or is set to false.\n */\n React.useEffect(() => {\n if (!remoteOperations) {\n // Let's retrieve temporary filtered rows and update globally filtered rows\n const tmpFilteredRows = filterAndSortRows();\n setFilteredRows(tmpFilteredRows);\n setTotal(tmpFilteredRows.length);\n\n // Assign rows from and rows to\n const rowsFrom = (currentPage - 1) * rowsPerPage;\n const rowsTo = rowsFrom + rowsPerPage >= tmpFilteredRows.length ? tmpFilteredRows.length : rowsFrom + rowsPerPage;\n\n // Set from and to values\n setFrom(rowsFrom + 1);\n setTo(rowsTo);\n\n // Filter out the rows\n setCurrentPageRows(tmpFilteredRows.slice(rowsFrom, rowsTo));\n }\n }, [rowsPerPage, rows, currentPage, columns, sort, remoteOperations]);\n\n\n /**\n * Applies a specific sorting to a column.\n * If no sorting exists, then applies ascending initially\n * @param column - Column to which sorting should be applied.\n */\n const sortTableColumn = (column: TableColumn): void => {\n let columnKey = '';\n let sortDirection: TableSortingDirection | undefined = undefined;\n\n if (sort?.column !== column.key) {\n columnKey = column.key;\n sortDirection = 'asc';\n } else {\n if (sort?.direction === 'desc') {\n columnKey = '';\n sortDirection = undefined;\n } else {\n columnKey = sort.column;\n sortDirection = sort.direction === 'asc' ? 'desc' : 'asc';\n }\n }\n\n if(columnKey == '')\n setSort(undefined);\n else\n setSort({column: columnKey, direction: sortDirection!});\n\n remoteOperations && onTriggerSortingChange && onTriggerSortingChange(columnKey, sortDirection);\n };\n\n /**\n * Navigates user back to the previous page and updates the current table page.\n */\n const previousPage = () => {\n if (remoteOperations) {\n // Let's inform parent component about page change\n if (onPreviousPageClick) {\n onPreviousPageClick();\n }\n } else {\n // Let's change the page within the component\n setCurrentPage(currentPage > 1 ? currentPage - 1 : 1);\n }\n };\n\n /**\n * Navigates user to the next page and updates the current table page.\n */\n const nextPage = () => {\n if (remoteOperations) {\n // Let's inform parent component about page change\n if (onNextPageClick) {\n onNextPageClick();\n }\n } else {\n // Let's change the page within the component\n setCurrentPage(currentPage * rowsPerPage >= filteredRows.length ? currentPage : currentPage + 1);\n }\n };\n\n /**\n * Updates the rows per page value and refreshes the table content accordingly.\n * @param value - Newly selected rows per page value.\n */\n const changeRowsPerPage = (value: number) => {\n // Let's check if we are using remote pagination\n if (remoteOperations) {\n // Inform parent component about rows per page change\n if (onRowsPerPageChange) {\n onRowsPerPageChange(value);\n }\n } else {\n // Let's reset current page to 1\n setCurrentPage(1);\n }\n\n // Let's set rows per page\n setRowsPerPage(value);\n };\n\n\n /**\n * Function which is called when a mouse click happens on a row to pass data to the parent component.\n * @param row - Row in which the link is located.\n */\n const onRowClick = (row: any): void => {\n const selectedText = window?.getSelection()?.toString();\n\n if (selectedText?.length === 0 && selectable) {\n const value = keyExpr ? row[keyExpr] : row;\n let currentSelection = value;\n if (!!multiSelect) {\n const existing = selected?.indexOf(value);\n if (existing > -1) {\n currentSelection = [...selected];\n currentSelection.splice(existing, 1);\n } else {\n currentSelection = [...selected, currentSelection];\n }\n }\n\n setSelected(currentSelection)\n props.onSelectionChange && props.onSelectionChange(currentSelection);\n }\n };\n\n /**\n * Function which is called when user clicks checkbox to select or deselect all rows.\n */\n const onSelectAllClick = () => {\n const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);\n\n switch (selectAllState) {\n case 'all':\n setSelected([...selected].filter(item => !currentList.includes(item)));\n setSelectAllState('none');\n break;\n case 'none':\n setSelected([...selected, ...currentList]);\n setSelectAllState('all');\n break;\n case 'some':\n setSelected([...selected, ...currentList.filter(item => !selected.includes(item))]);\n setSelectAllState('all');\n break;\n }\n };\n\n /**\n * Return Table component.\n */\n return (\n <TableWrapper>\n <TableHeader {...props}/>\n <TableBody {...props}\n currentPageRows={currentPageRows}\n selected={selected}\n onRowClick={onRowClick}\n sortByColumn={sortTableColumn}\n onSelectAllClick={onSelectAllClick}\n sortProps={sort}\n selectAllState={selectAllState}/>\n <TableFooter {...props}\n onRowsPerPageChange={changeRowsPerPage}\n rowsPerPage={rowsPerPage}\n setIsCollapsed={setIsCollapsed}\n isCollapsed={isCollapsed}\n from={from}\n to={to}\n total={total}\n nextPage={nextPage}\n prevPage={previousPage}/>\n {showLoadingIndicator && (\n <StyledTableSpinner>\n <LoadingIndicator size={Size.Medium}/>\n </StyledTableSpinner>\n )}\n </TableWrapper>\n );\n};\n\nexport default Table;\n"],"mappings":"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"}
@@ -50,6 +50,7 @@ var Table = function Table(props) {
50
50
  selectable = props.selectable,
51
51
  multiSelect = props.multiSelect,
52
52
  keyExpr = props.keyExpr,
53
+ sortProps = props.sortProps,
53
54
  accordion = props.accordion,
54
55
  _props$collapsed = props.collapsed,
55
56
  collapsed = _props$collapsed === void 0 ? true : _props$collapsed,
@@ -76,7 +77,7 @@ var Table = function Table(props) {
76
77
  currentPage = _React$useState8[0],
77
78
  setCurrentPage = _React$useState8[1];
78
79
 
79
- var _React$useState9 = React.useState({}),
80
+ var _React$useState9 = React.useState(sortProps),
80
81
  _React$useState10 = _slicedToArray(_React$useState9, 2),
81
82
  sort = _React$useState10[0],
82
83
  setSort = _React$useState10[1];
@@ -111,6 +112,9 @@ var Table = function Table(props) {
111
112
  selected = _React$useState22[0],
112
113
  setSelected = _React$useState22[1];
113
114
 
115
+ React.useEffect(function () {
116
+ setSort(sortProps);
117
+ }, [sortProps]);
114
118
  React.useEffect(function () {
115
119
  setSelected(props.selectedRows || (multiSelect ? [] : undefined));
116
120
  }, [props.selectedRows, multiSelect]);
@@ -241,11 +245,11 @@ var Table = function Table(props) {
241
245
  var columnKey = '';
242
246
  var sortDirection = undefined;
243
247
 
244
- if (sort.column !== column.key) {
248
+ if ((sort === null || sort === void 0 ? void 0 : sort.column) !== column.key) {
245
249
  columnKey = column.key;
246
250
  sortDirection = 'asc';
247
251
  } else {
248
- if (sort.direction === 'desc') {
252
+ if ((sort === null || sort === void 0 ? void 0 : sort.direction) === 'desc') {
249
253
  columnKey = '';
250
254
  sortDirection = undefined;
251
255
  } else {
@@ -254,7 +258,7 @@ var Table = function Table(props) {
254
258
  }
255
259
  }
256
260
 
257
- setSort({
261
+ if (columnKey == '') setSort(undefined);else setSort({
258
262
  column: columnKey,
259
263
  direction: sortDirection
260
264
  });
@@ -386,8 +390,7 @@ var Table = function Table(props) {
386
390
  onRowClick: onRowClick,
387
391
  sortByColumn: sortTableColumn,
388
392
  onSelectAllClick: onSelectAllClick,
389
- sortedColumn: sort.column,
390
- sortedDirection: sort.direction,
393
+ sortProps: sort,
391
394
  selectAllState: selectAllState
392
395
  })), /*#__PURE__*/_jsx(TableFooter, _objectSpread(_objectSpread({}, props), {}, {
393
396
  onRowsPerPageChange: changeRowsPerPage,
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","names":["React","Size","StyledTableSpinner","TableWrapper","LoadingIndicator","TableHeader","TableFooter","TableBody","Table","props","onPreviousPageClick","onNextPageClick","onRowsPerPageChange","onTriggerSortingChange","columns","rows","remoteOperations","pagination","showLoadingIndicator","selectable","multiSelect","keyExpr","accordion","collapsed","collapsedRows","rowsPerPageLabel","useState","rowsPerPage","setRowsPerPage","filteredRows","setFilteredRows","currentPageRows","setCurrentPageRows","currentPage","setCurrentPage","sort","setSort","from","setFrom","to","setTo","total","setTotal","isCollapsed","setIsCollapsed","selectAllState","setSelectAllState","undefined","selected","setSelected","useEffect","selectedRows","currentList","map","row","count","filter","item","includes","length","filterAndSortRows","tmpFilteredRows","matchFilterCriteria","column","filterValue","key","toLowerCase","indexOf","direction","a","b","rowsFrom","rowsTo","slice","sortTableColumn","columnKey","sortDirection","previousPage","nextPage","changeRowsPerPage","value","onRowClick","selectedText","window","getSelection","toString","currentSelection","existing","splice","onSelectionChange","onSelectAllClick","Medium"],"sources":["../../src/Table/Table.tsx"],"sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import custom components.\n */\nimport {Size} from '../types'\n\n/**\n * Import custom styles.\n */\nimport {StyledTable, StyledTableSpinner, TableWrapper} from './TableStyles';\n\n/**\n * Import custom types.\n */\nimport {TableProps, TableColumn, TableSortingDirection} from './TableTypes';\nimport {LoadingIndicator} from '../LoadingIndicator';\nimport TableHeader from './TableHeaders';\nimport TableFooter from './TableFooter';\nimport TableBody from './TableBody';\n\nconst Table: React.FunctionComponent<TableProps> = (props: TableProps) => {\n let {\n onPreviousPageClick,\n onNextPageClick,\n onRowsPerPageChange,\n onTriggerSortingChange,\n columns,\n rows,\n remoteOperations,\n pagination,\n showLoadingIndicator,\n selectable,\n multiSelect,\n keyExpr,\n accordion,\n collapsed = true,\n collapsedRows,\n rowsPerPageLabel\n } = props;\n\n // States used within the component\n const [rowsPerPage, setRowsPerPage] = React.useState<number>(10);\n const [filteredRows, setFilteredRows] = React.useState<any[]>([]);\n const [currentPageRows, setCurrentPageRows] = React.useState<any[]>([]);\n const [currentPage, setCurrentPage] = React.useState<number>(1);\n const [sort, setSort] = React.useState<{ column?: string; direction?: TableSortingDirection }>({});\n const [from, setFrom] = React.useState<number>();\n const [to, setTo] = React.useState<number>();\n const [total, setTotal] = React.useState<number>();\n\n const [isCollapsed, setIsCollapsed] = React.useState(true);\n\n const [selectAllState, setSelectAllState] = React.useState<'all' | 'some' | 'none'>('none');\n\n const [selected, setSelected] = React.useState<any | any[]>(multiSelect ? [] : undefined);\n\n React.useEffect(() => {\n setSelected(props.selectedRows || (multiSelect ? [] : undefined))\n }, [props.selectedRows, multiSelect])\n\n /**\n * update select all checkbox state\n */\n React.useEffect(() => {\n if (multiSelect) {\n const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);\n const count = selected.filter((item: any) => currentList.includes(item)).length;\n\n setSelectAllState(count === currentList.length ? 'all' : count > 0 ? 'some' : 'none');\n }\n }, [currentPageRows, multiSelect, selected, keyExpr])\n\n /**\n * Takes care of remote pagination.\n * Works only in case remote pagination is set to true.\n */\n React.useEffect(() => {\n if (remoteOperations) {\n setCurrentPageRows(rows);\n\n // Let's assign pagination values\n setFrom(pagination?.from);\n setTo(pagination?.to);\n setTotal(pagination?.total);\n setCurrentPage(pagination?.currentPage!);\n setRowsPerPage(pagination?.rowsPerPage!);\n }\n }, [remoteOperations, pagination, rows]);\n\n /**\n * Sets number of rows to display when accordion.\n */\n React.useEffect(() => {\n if (!accordion) return;\n\n setRowsPerPage(isCollapsed ? collapsedRows || 10 : rows.length);\n }, [rows, accordion, collapsedRows, isCollapsed])\n\n React.useEffect(() => {\n if (!accordion) return;\n\n setIsCollapsed(!!collapsed);\n }, [accordion, collapsed])\n\n /**\n * Filters out a rows by specific column filters and sorts them if any sorting is set.\n * @returns Filtered and sorted rows.\n */\n const filterAndSortRows = (): any[] => {\n let tmpFilteredRows = rows.filter((row) => {\n // Let's start with matched filter criteria\n let matchFilterCriteria = true;\n\n // Let's go through columns\n for (const column of columns) {\n // Let's check if filter value is specified for the column\n // And if it doesn't match the current row column value\n // Then let's update match filter criteria to failed\n if (column.filterValue && row[column.key].toLowerCase().indexOf(column.filterValue.toLowerCase()) === -1) {\n matchFilterCriteria = false;\n }\n }\n\n // Let's return row only in case match filter criteria succeeds\n if (matchFilterCriteria) {\n return row;\n }\n });\n\n // Let's apply sorting if needed\n if (!!sort?.column && !!sort?.direction) {\n // Let's sort the rows\n tmpFilteredRows.sort((a, b) => {\n if (a[sort.column!] > b[sort.column!]) {\n return sort.direction! === 'asc' ? 1 : -1;\n } else if (a[sort.column!] < b[sort.column!]) {\n return sort.direction! === 'asc' ? -1 : 1;\n } else {\n return 0;\n }\n });\n }\n\n // Let's return filtered rows\n return tmpFilteredRows;\n };\n\n /**\n * Takes care of local pagination.\n * Works only in case remote pagination is not defined or is set to false.\n */\n React.useEffect(() => {\n if (!remoteOperations) {\n // Let's retrieve temporary filtered rows and update globally filtered rows\n const tmpFilteredRows = filterAndSortRows();\n setFilteredRows(tmpFilteredRows);\n setTotal(tmpFilteredRows.length);\n\n // Assign rows from and rows to\n const rowsFrom = (currentPage - 1) * rowsPerPage;\n const rowsTo = rowsFrom + rowsPerPage >= tmpFilteredRows.length ? tmpFilteredRows.length : rowsFrom + rowsPerPage;\n\n // Set from and to values\n setFrom(rowsFrom + 1);\n setTo(rowsTo);\n\n // Filter out the rows\n setCurrentPageRows(tmpFilteredRows.slice(rowsFrom, rowsTo));\n }\n }, [rowsPerPage, rows, currentPage, columns, sort, remoteOperations]);\n\n\n /**\n * Applies a specific sorting to a column.\n * If no sorting exists, then applies ascending initially\n * @param column - Column to which sorting should be applied.\n */\n const sortTableColumn = (column: TableColumn): void => {\n let columnKey = '';\n let sortDirection: TableSortingDirection | undefined = undefined;\n\n if (sort.column !== column.key) {\n columnKey = column.key;\n sortDirection = 'asc';\n } else {\n if (sort.direction === 'desc') {\n columnKey = '';\n sortDirection = undefined;\n } else {\n columnKey = sort.column;\n sortDirection = sort.direction === 'asc' ? 'desc' : 'asc';\n }\n }\n\n setSort({column: columnKey, direction: sortDirection});\n\n remoteOperations && onTriggerSortingChange && onTriggerSortingChange(columnKey, sortDirection);\n };\n\n /**\n * Navigates user back to the previous page and updates the current table page.\n */\n const previousPage = () => {\n if (remoteOperations) {\n // Let's inform parent component about page change\n if (onPreviousPageClick) {\n onPreviousPageClick();\n }\n } else {\n // Let's change the page within the component\n setCurrentPage(currentPage > 1 ? currentPage - 1 : 1);\n }\n };\n\n /**\n * Navigates user to the next page and updates the current table page.\n */\n const nextPage = () => {\n if (remoteOperations) {\n // Let's inform parent component about page change\n if (onNextPageClick) {\n onNextPageClick();\n }\n } else {\n // Let's change the page within the component\n setCurrentPage(currentPage * rowsPerPage >= filteredRows.length ? currentPage : currentPage + 1);\n }\n };\n\n /**\n * Updates the rows per page value and refreshes the table content accordingly.\n * @param value - Newly selected rows per page value.\n */\n const changeRowsPerPage = (value: number) => {\n // Let's check if we are using remote pagination\n if (remoteOperations) {\n // Inform parent component about rows per page change\n if (onRowsPerPageChange) {\n onRowsPerPageChange(value);\n }\n } else {\n // Let's reset current page to 1\n setCurrentPage(1);\n }\n\n // Let's set rows per page\n setRowsPerPage(value);\n };\n\n\n /**\n * Function which is called when a mouse click happens on a row to pass data to the parent component.\n * @param row - Row in which the link is located.\n */\n const onRowClick = (row: any): void => {\n const selectedText = window?.getSelection()?.toString();\n\n if (selectedText?.length === 0 && selectable) {\n const value = keyExpr ? row[keyExpr] : row;\n let currentSelection = value;\n if (!!multiSelect) {\n const existing = selected?.indexOf(value);\n if (existing > -1) {\n currentSelection = [...selected];\n currentSelection.splice(existing, 1);\n } else {\n currentSelection = [...selected, currentSelection];\n }\n }\n\n setSelected(currentSelection)\n props.onSelectionChange && props.onSelectionChange(currentSelection);\n }\n };\n\n /**\n * Function which is called when user clicks checkbox to select or deselect all rows.\n */\n const onSelectAllClick = () => {\n const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);\n\n switch (selectAllState) {\n case 'all':\n setSelected([...selected].filter(item => !currentList.includes(item)));\n setSelectAllState('none');\n break;\n case 'none':\n setSelected([...selected, ...currentList]);\n setSelectAllState('all');\n break;\n case 'some':\n setSelected([...selected, ...currentList.filter(item => !selected.includes(item))]);\n setSelectAllState('all');\n break;\n }\n };\n\n /**\n * Return Table component.\n */\n return (\n <TableWrapper>\n <TableHeader {...props}/>\n <TableBody {...props}\n currentPageRows={currentPageRows}\n selected={selected}\n onRowClick={onRowClick}\n sortByColumn={sortTableColumn}\n onSelectAllClick={onSelectAllClick}\n sortedColumn={sort.column}\n sortedDirection={sort.direction}\n selectAllState={selectAllState}/>\n <TableFooter {...props}\n onRowsPerPageChange={changeRowsPerPage}\n rowsPerPage={rowsPerPage}\n setIsCollapsed={setIsCollapsed}\n isCollapsed={isCollapsed}\n from={from}\n to={to}\n total={total}\n nextPage={nextPage}\n prevPage={previousPage}/>\n {showLoadingIndicator && (\n <StyledTableSpinner>\n <LoadingIndicator size={Size.Medium}/>\n </StyledTableSpinner>\n )}\n </TableWrapper>\n );\n};\n\nexport default Table;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Table.js","names":["React","Size","StyledTableSpinner","TableWrapper","LoadingIndicator","TableHeader","TableFooter","TableBody","Table","props","onPreviousPageClick","onNextPageClick","onRowsPerPageChange","onTriggerSortingChange","columns","rows","remoteOperations","pagination","showLoadingIndicator","selectable","multiSelect","keyExpr","sortProps","accordion","collapsed","collapsedRows","rowsPerPageLabel","useState","rowsPerPage","setRowsPerPage","filteredRows","setFilteredRows","currentPageRows","setCurrentPageRows","currentPage","setCurrentPage","sort","setSort","from","setFrom","to","setTo","total","setTotal","isCollapsed","setIsCollapsed","selectAllState","setSelectAllState","undefined","selected","setSelected","useEffect","selectedRows","currentList","map","row","count","filter","item","includes","length","filterAndSortRows","tmpFilteredRows","matchFilterCriteria","column","filterValue","key","toLowerCase","indexOf","direction","a","b","rowsFrom","rowsTo","slice","sortTableColumn","columnKey","sortDirection","previousPage","nextPage","changeRowsPerPage","value","onRowClick","selectedText","window","getSelection","toString","currentSelection","existing","splice","onSelectionChange","onSelectAllClick","Medium"],"sources":["../../src/Table/Table.tsx"],"sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import custom components.\n */\nimport {Size} from '../types'\n\n/**\n * Import custom styles.\n */\nimport {StyledTable, StyledTableSpinner, TableWrapper} from './TableStyles';\n\n/**\n * Import custom types.\n */\nimport {TableProps, TableColumn, TableSortingDirection, TableSortProps} from './TableTypes';\nimport {LoadingIndicator} from '../LoadingIndicator';\nimport TableHeader from './TableHeaders';\nimport TableFooter from './TableFooter';\nimport TableBody from './TableBody';\n\nconst Table: React.FunctionComponent<TableProps> = (props: TableProps) => {\n let {\n onPreviousPageClick,\n onNextPageClick,\n onRowsPerPageChange,\n onTriggerSortingChange,\n columns,\n rows,\n remoteOperations,\n pagination,\n showLoadingIndicator,\n selectable,\n multiSelect,\n keyExpr,\n sortProps,\n accordion,\n collapsed = true,\n collapsedRows,\n rowsPerPageLabel\n } = props;\n\n // States used within the component\n const [rowsPerPage, setRowsPerPage] = React.useState<number>(10);\n const [filteredRows, setFilteredRows] = React.useState<any[]>([]);\n const [currentPageRows, setCurrentPageRows] = React.useState<any[]>([]);\n const [currentPage, setCurrentPage] = React.useState<number>(1);\n const [sort, setSort] = React.useState<TableSortProps | undefined>(sortProps);\n const [from, setFrom] = React.useState<number>();\n const [to, setTo] = React.useState<number>();\n const [total, setTotal] = React.useState<number>();\n\n const [isCollapsed, setIsCollapsed] = React.useState(true);\n\n const [selectAllState, setSelectAllState] = React.useState<'all' | 'some' | 'none'>('none');\n\n const [selected, setSelected] = React.useState<any | any[]>(multiSelect ? [] : undefined);\n\n React.useEffect(() => {\n setSort(sortProps);\n }, [sortProps])\n\n React.useEffect(() => {\n setSelected(props.selectedRows || (multiSelect ? [] : undefined))\n }, [props.selectedRows, multiSelect])\n\n /**\n * update select all checkbox state\n */\n React.useEffect(() => {\n if (multiSelect) {\n const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);\n const count = selected.filter((item: any) => currentList.includes(item)).length;\n\n setSelectAllState(count === currentList.length ? 'all' : count > 0 ? 'some' : 'none');\n }\n }, [currentPageRows, multiSelect, selected, keyExpr])\n\n /**\n * Takes care of remote pagination.\n * Works only in case remote pagination is set to true.\n */\n React.useEffect(() => {\n if (remoteOperations) {\n setCurrentPageRows(rows);\n\n // Let's assign pagination values\n setFrom(pagination?.from);\n setTo(pagination?.to);\n setTotal(pagination?.total);\n setCurrentPage(pagination?.currentPage!);\n setRowsPerPage(pagination?.rowsPerPage!);\n }\n }, [remoteOperations, pagination, rows]);\n\n /**\n * Sets number of rows to display when accordion.\n */\n React.useEffect(() => {\n if (!accordion) return;\n\n setRowsPerPage(isCollapsed ? collapsedRows || 10 : rows.length);\n }, [rows, accordion, collapsedRows, isCollapsed])\n\n React.useEffect(() => {\n if (!accordion) return;\n\n setIsCollapsed(!!collapsed);\n }, [accordion, collapsed])\n\n /**\n * Filters out a rows by specific column filters and sorts them if any sorting is set.\n * @returns Filtered and sorted rows.\n */\n const filterAndSortRows = (): any[] => {\n let tmpFilteredRows = rows.filter((row) => {\n // Let's start with matched filter criteria\n let matchFilterCriteria = true;\n\n // Let's go through columns\n for (const column of columns) {\n // Let's check if filter value is specified for the column\n // And if it doesn't match the current row column value\n // Then let's update match filter criteria to failed\n if (column.filterValue && row[column.key].toLowerCase().indexOf(column.filterValue.toLowerCase()) === -1) {\n matchFilterCriteria = false;\n }\n }\n\n // Let's return row only in case match filter criteria succeeds\n if (matchFilterCriteria) {\n return row;\n }\n });\n\n // Let's apply sorting if needed\n if (!!sort?.column && !!sort?.direction) {\n // Let's sort the rows\n tmpFilteredRows.sort((a, b) => {\n if (a[sort.column!] > b[sort.column!]) {\n return sort.direction! === 'asc' ? 1 : -1;\n } else if (a[sort.column!] < b[sort.column!]) {\n return sort.direction! === 'asc' ? -1 : 1;\n } else {\n return 0;\n }\n });\n }\n\n // Let's return filtered rows\n return tmpFilteredRows;\n };\n\n /**\n * Takes care of local pagination.\n * Works only in case remote pagination is not defined or is set to false.\n */\n React.useEffect(() => {\n if (!remoteOperations) {\n // Let's retrieve temporary filtered rows and update globally filtered rows\n const tmpFilteredRows = filterAndSortRows();\n setFilteredRows(tmpFilteredRows);\n setTotal(tmpFilteredRows.length);\n\n // Assign rows from and rows to\n const rowsFrom = (currentPage - 1) * rowsPerPage;\n const rowsTo = rowsFrom + rowsPerPage >= tmpFilteredRows.length ? tmpFilteredRows.length : rowsFrom + rowsPerPage;\n\n // Set from and to values\n setFrom(rowsFrom + 1);\n setTo(rowsTo);\n\n // Filter out the rows\n setCurrentPageRows(tmpFilteredRows.slice(rowsFrom, rowsTo));\n }\n }, [rowsPerPage, rows, currentPage, columns, sort, remoteOperations]);\n\n\n /**\n * Applies a specific sorting to a column.\n * If no sorting exists, then applies ascending initially\n * @param column - Column to which sorting should be applied.\n */\n const sortTableColumn = (column: TableColumn): void => {\n let columnKey = '';\n let sortDirection: TableSortingDirection | undefined = undefined;\n\n if (sort?.column !== column.key) {\n columnKey = column.key;\n sortDirection = 'asc';\n } else {\n if (sort?.direction === 'desc') {\n columnKey = '';\n sortDirection = undefined;\n } else {\n columnKey = sort.column;\n sortDirection = sort.direction === 'asc' ? 'desc' : 'asc';\n }\n }\n\n if(columnKey == '')\n setSort(undefined);\n else\n setSort({column: columnKey, direction: sortDirection!});\n\n remoteOperations && onTriggerSortingChange && onTriggerSortingChange(columnKey, sortDirection);\n };\n\n /**\n * Navigates user back to the previous page and updates the current table page.\n */\n const previousPage = () => {\n if (remoteOperations) {\n // Let's inform parent component about page change\n if (onPreviousPageClick) {\n onPreviousPageClick();\n }\n } else {\n // Let's change the page within the component\n setCurrentPage(currentPage > 1 ? currentPage - 1 : 1);\n }\n };\n\n /**\n * Navigates user to the next page and updates the current table page.\n */\n const nextPage = () => {\n if (remoteOperations) {\n // Let's inform parent component about page change\n if (onNextPageClick) {\n onNextPageClick();\n }\n } else {\n // Let's change the page within the component\n setCurrentPage(currentPage * rowsPerPage >= filteredRows.length ? currentPage : currentPage + 1);\n }\n };\n\n /**\n * Updates the rows per page value and refreshes the table content accordingly.\n * @param value - Newly selected rows per page value.\n */\n const changeRowsPerPage = (value: number) => {\n // Let's check if we are using remote pagination\n if (remoteOperations) {\n // Inform parent component about rows per page change\n if (onRowsPerPageChange) {\n onRowsPerPageChange(value);\n }\n } else {\n // Let's reset current page to 1\n setCurrentPage(1);\n }\n\n // Let's set rows per page\n setRowsPerPage(value);\n };\n\n\n /**\n * Function which is called when a mouse click happens on a row to pass data to the parent component.\n * @param row - Row in which the link is located.\n */\n const onRowClick = (row: any): void => {\n const selectedText = window?.getSelection()?.toString();\n\n if (selectedText?.length === 0 && selectable) {\n const value = keyExpr ? row[keyExpr] : row;\n let currentSelection = value;\n if (!!multiSelect) {\n const existing = selected?.indexOf(value);\n if (existing > -1) {\n currentSelection = [...selected];\n currentSelection.splice(existing, 1);\n } else {\n currentSelection = [...selected, currentSelection];\n }\n }\n\n setSelected(currentSelection)\n props.onSelectionChange && props.onSelectionChange(currentSelection);\n }\n };\n\n /**\n * Function which is called when user clicks checkbox to select or deselect all rows.\n */\n const onSelectAllClick = () => {\n const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);\n\n switch (selectAllState) {\n case 'all':\n setSelected([...selected].filter(item => !currentList.includes(item)));\n setSelectAllState('none');\n break;\n case 'none':\n setSelected([...selected, ...currentList]);\n setSelectAllState('all');\n break;\n case 'some':\n setSelected([...selected, ...currentList.filter(item => !selected.includes(item))]);\n setSelectAllState('all');\n break;\n }\n };\n\n /**\n * Return Table component.\n */\n return (\n <TableWrapper>\n <TableHeader {...props}/>\n <TableBody {...props}\n currentPageRows={currentPageRows}\n selected={selected}\n onRowClick={onRowClick}\n sortByColumn={sortTableColumn}\n onSelectAllClick={onSelectAllClick}\n sortProps={sort}\n selectAllState={selectAllState}/>\n <TableFooter {...props}\n onRowsPerPageChange={changeRowsPerPage}\n rowsPerPage={rowsPerPage}\n setIsCollapsed={setIsCollapsed}\n isCollapsed={isCollapsed}\n from={from}\n to={to}\n total={total}\n nextPage={nextPage}\n prevPage={previousPage}/>\n {showLoadingIndicator && (\n <StyledTableSpinner>\n <LoadingIndicator size={Size.Medium}/>\n </StyledTableSpinner>\n )}\n </TableWrapper>\n );\n};\n\nexport default Table;\n"],"mappings":";;;;;;;;;;;;;;AAAA;AACA;AACA;AACA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AAEA;AACA;AACA;;AACA,SAAQC,IAAR,QAAmB,UAAnB;AAEA;AACA;AACA;;AACA,SAAqBC,kBAArB,EAAyCC,YAAzC,QAA4D,eAA5D;AAEA;AACA;AACA;;AAEA,SAAQC,gBAAR,QAA+B,qBAA/B;AACA,OAAOC,WAAP,MAAwB,gBAAxB;AACA,OAAOC,WAAP,MAAwB,eAAxB;AACA,OAAOC,SAAP,MAAsB,aAAtB;;;;AAEA,IAAMC,KAA0C,GAAG,SAA7CA,KAA6C,CAACC,KAAD,EAAuB;EACxE,IACEC,mBADF,GAkBID,KAlBJ,CACEC,mBADF;EAAA,IAEEC,eAFF,GAkBIF,KAlBJ,CAEEE,eAFF;EAAA,IAGEC,mBAHF,GAkBIH,KAlBJ,CAGEG,mBAHF;EAAA,IAIEC,sBAJF,GAkBIJ,KAlBJ,CAIEI,sBAJF;EAAA,IAKEC,OALF,GAkBIL,KAlBJ,CAKEK,OALF;EAAA,IAMEC,IANF,GAkBIN,KAlBJ,CAMEM,IANF;EAAA,IAOEC,gBAPF,GAkBIP,KAlBJ,CAOEO,gBAPF;EAAA,IAQEC,UARF,GAkBIR,KAlBJ,CAQEQ,UARF;EAAA,IASEC,oBATF,GAkBIT,KAlBJ,CASES,oBATF;EAAA,IAUEC,UAVF,GAkBIV,KAlBJ,CAUEU,UAVF;EAAA,IAWEC,WAXF,GAkBIX,KAlBJ,CAWEW,WAXF;EAAA,IAYEC,OAZF,GAkBIZ,KAlBJ,CAYEY,OAZF;EAAA,IAaEC,SAbF,GAkBIb,KAlBJ,CAaEa,SAbF;EAAA,IAcEC,SAdF,GAkBId,KAlBJ,CAcEc,SAdF;EAAA,uBAkBId,KAlBJ,CAeEe,SAfF;EAAA,IAeEA,SAfF,iCAec,IAfd;EAAA,IAgBEC,aAhBF,GAkBIhB,KAlBJ,CAgBEgB,aAhBF;EAAA,IAiBEC,gBAjBF,GAkBIjB,KAlBJ,CAiBEiB,gBAjBF,CADwE,CAqBxE;;EACA,sBAAsC1B,KAAK,CAAC2B,QAAN,CAAuB,EAAvB,CAAtC;EAAA;EAAA,IAAOC,WAAP;EAAA,IAAoBC,cAApB;;EACA,uBAAwC7B,KAAK,CAAC2B,QAAN,CAAsB,EAAtB,CAAxC;EAAA;EAAA,IAAOG,YAAP;EAAA,IAAqBC,eAArB;;EACA,uBAA8C/B,KAAK,CAAC2B,QAAN,CAAsB,EAAtB,CAA9C;EAAA;EAAA,IAAOK,eAAP;EAAA,IAAwBC,kBAAxB;;EACA,uBAAsCjC,KAAK,CAAC2B,QAAN,CAAuB,CAAvB,CAAtC;EAAA;EAAA,IAAOO,WAAP;EAAA,IAAoBC,cAApB;;EACA,uBAAwBnC,KAAK,CAAC2B,QAAN,CAA2CL,SAA3C,CAAxB;EAAA;EAAA,IAAOc,IAAP;EAAA,IAAaC,OAAb;;EACA,wBAAwBrC,KAAK,CAAC2B,QAAN,EAAxB;EAAA;EAAA,IAAOW,IAAP;EAAA,IAAaC,OAAb;;EACA,wBAAoBvC,KAAK,CAAC2B,QAAN,EAApB;EAAA;EAAA,IAAOa,EAAP;EAAA,IAAWC,KAAX;;EACA,wBAA0BzC,KAAK,CAAC2B,QAAN,EAA1B;EAAA;EAAA,IAAOe,KAAP;EAAA,IAAcC,QAAd;;EAEA,wBAAsC3C,KAAK,CAAC2B,QAAN,CAAe,IAAf,CAAtC;EAAA;EAAA,IAAOiB,WAAP;EAAA,IAAoBC,cAApB;;EAEA,wBAA4C7C,KAAK,CAAC2B,QAAN,CAAwC,MAAxC,CAA5C;EAAA;EAAA,IAAOmB,cAAP;EAAA,IAAuBC,iBAAvB;;EAEA,wBAAgC/C,KAAK,CAAC2B,QAAN,CAA4BP,WAAW,GAAG,EAAH,GAAQ4B,SAA/C,CAAhC;EAAA;EAAA,IAAOC,QAAP;EAAA,IAAiBC,WAAjB;;EAEAlD,KAAK,CAACmD,SAAN,CAAgB,YAAM;IACpBd,OAAO,CAACf,SAAD,CAAP;EACD,CAFD,EAEG,CAACA,SAAD,CAFH;EAIAtB,KAAK,CAACmD,SAAN,CAAgB,YAAM;IACpBD,WAAW,CAACzC,KAAK,CAAC2C,YAAN,KAAuBhC,WAAW,GAAG,EAAH,GAAQ4B,SAA1C,CAAD,CAAX;EACD,CAFD,EAEG,CAACvC,KAAK,CAAC2C,YAAP,EAAqBhC,WAArB,CAFH;EAIA;AACF;AACA;;EACEpB,KAAK,CAACmD,SAAN,CAAgB,YAAM;IACpB,IAAI/B,WAAJ,EAAiB;MACf,IAAMiC,WAAW,GAAGrB,eAAe,CAACsB,GAAhB,CAAoB,UAAAC,GAAG;QAAA,OAAIlC,OAAO,GAAGkC,GAAG,CAAClC,OAAD,CAAN,GAAkBkC,GAA7B;MAAA,CAAvB,CAApB;MACA,IAAMC,KAAK,GAAGP,QAAQ,CAACQ,MAAT,CAAgB,UAACC,IAAD;QAAA,OAAeL,WAAW,CAACM,QAAZ,CAAqBD,IAArB,CAAf;MAAA,CAAhB,EAA2DE,MAAzE;MAEAb,iBAAiB,CAACS,KAAK,KAAKH,WAAW,CAACO,MAAtB,GAA+B,KAA/B,GAAuCJ,KAAK,GAAG,CAAR,GAAY,MAAZ,GAAqB,MAA7D,CAAjB;IACD;EACF,CAPD,EAOG,CAACxB,eAAD,EAAkBZ,WAAlB,EAA+B6B,QAA/B,EAAyC5B,OAAzC,CAPH;EASA;AACF;AACA;AACA;;EACErB,KAAK,CAACmD,SAAN,CAAgB,YAAM;IACpB,IAAInC,gBAAJ,EAAsB;MACpBiB,kBAAkB,CAAClB,IAAD,CAAlB,CADoB,CAGpB;;MACAwB,OAAO,CAACtB,UAAD,aAACA,UAAD,uBAACA,UAAU,CAAEqB,IAAb,CAAP;MACAG,KAAK,CAACxB,UAAD,aAACA,UAAD,uBAACA,UAAU,CAAEuB,EAAb,CAAL;MACAG,QAAQ,CAAC1B,UAAD,aAACA,UAAD,uBAACA,UAAU,CAAEyB,KAAb,CAAR;MACAP,cAAc,CAAClB,UAAD,aAACA,UAAD,uBAACA,UAAU,CAAEiB,WAAb,CAAd;MACAL,cAAc,CAACZ,UAAD,aAACA,UAAD,uBAACA,UAAU,CAAEW,WAAb,CAAd;IACD;EACF,CAXD,EAWG,CAACZ,gBAAD,EAAmBC,UAAnB,EAA+BF,IAA/B,CAXH;EAaA;AACF;AACA;;EACEf,KAAK,CAACmD,SAAN,CAAgB,YAAM;IACpB,IAAI,CAAC5B,SAAL,EAAgB;IAEhBM,cAAc,CAACe,WAAW,GAAGnB,aAAa,IAAI,EAApB,GAAyBV,IAAI,CAAC6C,MAA1C,CAAd;EACD,CAJD,EAIG,CAAC7C,IAAD,EAAOQ,SAAP,EAAkBE,aAAlB,EAAiCmB,WAAjC,CAJH;EAMA5C,KAAK,CAACmD,SAAN,CAAgB,YAAM;IACpB,IAAI,CAAC5B,SAAL,EAAgB;IAEhBsB,cAAc,CAAC,CAAC,CAACrB,SAAH,CAAd;EACD,CAJD,EAIG,CAACD,SAAD,EAAYC,SAAZ,CAJH;EAMA;AACF;AACA;AACA;;EACE,IAAMqC,iBAAiB,GAAG,SAApBA,iBAAoB,GAAa;IACrC,IAAIC,eAAe,GAAG/C,IAAI,CAAC0C,MAAL,CAAY,UAACF,GAAD,EAAS;MACzC;MACA,IAAIQ,mBAAmB,GAAG,IAA1B,CAFyC,CAIzC;;MAJyC,2CAKpBjD,OALoB;MAAA;;MAAA;QAKzC,oDAA8B;UAAA,IAAnBkD,MAAmB;;UAC5B;UACA;UACA;UACA,IAAIA,MAAM,CAACC,WAAP,IAAsBV,GAAG,CAACS,MAAM,CAACE,GAAR,CAAH,CAAgBC,WAAhB,GAA8BC,OAA9B,CAAsCJ,MAAM,CAACC,WAAP,CAAmBE,WAAnB,EAAtC,MAA4E,CAAC,CAAvG,EAA0G;YACxGJ,mBAAmB,GAAG,KAAtB;UACD;QACF,CAZwC,CAczC;;MAdyC;QAAA;MAAA;QAAA;MAAA;;MAezC,IAAIA,mBAAJ,EAAyB;QACvB,OAAOR,GAAP;MACD;IACF,CAlBqB,CAAtB,CADqC,CAqBrC;;IACA,IAAI,CAAC,EAACnB,IAAD,aAACA,IAAD,eAACA,IAAI,CAAE4B,MAAP,CAAD,IAAkB,CAAC,EAAC5B,IAAD,aAACA,IAAD,eAACA,IAAI,CAAEiC,SAAP,CAAvB,EAAyC;MACvC;MACAP,eAAe,CAAC1B,IAAhB,CAAqB,UAACkC,CAAD,EAAIC,CAAJ,EAAU;QAC7B,IAAID,CAAC,CAAClC,IAAI,CAAC4B,MAAN,CAAD,GAAkBO,CAAC,CAACnC,IAAI,CAAC4B,MAAN,CAAvB,EAAuC;UACrC,OAAO5B,IAAI,CAACiC,SAAL,KAAoB,KAApB,GAA4B,CAA5B,GAAgC,CAAC,CAAxC;QACD,CAFD,MAEO,IAAIC,CAAC,CAAClC,IAAI,CAAC4B,MAAN,CAAD,GAAkBO,CAAC,CAACnC,IAAI,CAAC4B,MAAN,CAAvB,EAAuC;UAC5C,OAAO5B,IAAI,CAACiC,SAAL,KAAoB,KAApB,GAA4B,CAAC,CAA7B,GAAiC,CAAxC;QACD,CAFM,MAEA;UACL,OAAO,CAAP;QACD;MACF,CARD;IASD,CAjCoC,CAmCrC;;;IACA,OAAOP,eAAP;EACD,CArCD;EAuCA;AACF;AACA;AACA;;;EACE9D,KAAK,CAACmD,SAAN,CAAgB,YAAM;IACpB,IAAI,CAACnC,gBAAL,EAAuB;MACrB;MACA,IAAM8C,eAAe,GAAGD,iBAAiB,EAAzC;MACA9B,eAAe,CAAC+B,eAAD,CAAf;MACAnB,QAAQ,CAACmB,eAAe,CAACF,MAAjB,CAAR,CAJqB,CAMrB;;MACA,IAAMY,QAAQ,GAAG,CAACtC,WAAW,GAAG,CAAf,IAAoBN,WAArC;MACA,IAAM6C,MAAM,GAAGD,QAAQ,GAAG5C,WAAX,IAA0BkC,eAAe,CAACF,MAA1C,GAAmDE,eAAe,CAACF,MAAnE,GAA4EY,QAAQ,GAAG5C,WAAtG,CARqB,CAUrB;;MACAW,OAAO,CAACiC,QAAQ,GAAG,CAAZ,CAAP;MACA/B,KAAK,CAACgC,MAAD,CAAL,CAZqB,CAcrB;;MACAxC,kBAAkB,CAAC6B,eAAe,CAACY,KAAhB,CAAsBF,QAAtB,EAAgCC,MAAhC,CAAD,CAAlB;IACD;EACF,CAlBD,EAkBG,CAAC7C,WAAD,EAAcb,IAAd,EAAoBmB,WAApB,EAAiCpB,OAAjC,EAA0CsB,IAA1C,EAAgDpB,gBAAhD,CAlBH;EAqBA;AACF;AACA;AACA;AACA;;EACE,IAAM2D,eAAe,GAAG,SAAlBA,eAAkB,CAACX,MAAD,EAA+B;IACrD,IAAIY,SAAS,GAAG,EAAhB;IACA,IAAIC,aAAgD,GAAG7B,SAAvD;;IAEA,IAAI,CAAAZ,IAAI,SAAJ,IAAAA,IAAI,WAAJ,YAAAA,IAAI,CAAE4B,MAAN,MAAiBA,MAAM,CAACE,GAA5B,EAAiC;MAC/BU,SAAS,GAAGZ,MAAM,CAACE,GAAnB;MACAW,aAAa,GAAG,KAAhB;IACD,CAHD,MAGO;MACL,IAAI,CAAAzC,IAAI,SAAJ,IAAAA,IAAI,WAAJ,YAAAA,IAAI,CAAEiC,SAAN,MAAoB,MAAxB,EAAgC;QAC9BO,SAAS,GAAG,EAAZ;QACAC,aAAa,GAAG7B,SAAhB;MACD,CAHD,MAGO;QACL4B,SAAS,GAAGxC,IAAI,CAAC4B,MAAjB;QACAa,aAAa,GAAGzC,IAAI,CAACiC,SAAL,KAAmB,KAAnB,GAA2B,MAA3B,GAAoC,KAApD;MACD;IACF;;IAED,IAAGO,SAAS,IAAI,EAAhB,EACEvC,OAAO,CAACW,SAAD,CAAP,CADF,KAGEX,OAAO,CAAC;MAAC2B,MAAM,EAAEY,SAAT;MAAoBP,SAAS,EAAEQ;IAA/B,CAAD,CAAP;IAEF7D,gBAAgB,IAAIH,sBAApB,IAA8CA,sBAAsB,CAAC+D,SAAD,EAAYC,aAAZ,CAApE;EACD,CAvBD;EAyBA;AACF;AACA;;;EACE,IAAMC,YAAY,GAAG,SAAfA,YAAe,GAAM;IACzB,IAAI9D,gBAAJ,EAAsB;MACpB;MACA,IAAIN,mBAAJ,EAAyB;QACvBA,mBAAmB;MACpB;IACF,CALD,MAKO;MACL;MACAyB,cAAc,CAACD,WAAW,GAAG,CAAd,GAAkBA,WAAW,GAAG,CAAhC,GAAoC,CAArC,CAAd;IACD;EACF,CAVD;EAYA;AACF;AACA;;;EACE,IAAM6C,QAAQ,GAAG,SAAXA,QAAW,GAAM;IACrB,IAAI/D,gBAAJ,EAAsB;MACpB;MACA,IAAIL,eAAJ,EAAqB;QACnBA,eAAe;MAChB;IACF,CALD,MAKO;MACL;MACAwB,cAAc,CAACD,WAAW,GAAGN,WAAd,IAA6BE,YAAY,CAAC8B,MAA1C,GAAmD1B,WAAnD,GAAiEA,WAAW,GAAG,CAAhF,CAAd;IACD;EACF,CAVD;EAYA;AACF;AACA;AACA;;;EACE,IAAM8C,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,KAAD,EAAmB;IAC3C;IACA,IAAIjE,gBAAJ,EAAsB;MACpB;MACA,IAAIJ,mBAAJ,EAAyB;QACvBA,mBAAmB,CAACqE,KAAD,CAAnB;MACD;IACF,CALD,MAKO;MACL;MACA9C,cAAc,CAAC,CAAD,CAAd;IACD,CAV0C,CAY3C;;;IACAN,cAAc,CAACoD,KAAD,CAAd;EACD,CAdD;EAiBA;AACF;AACA;AACA;;;EACE,IAAMC,UAAU,GAAG,SAAbA,UAAa,CAAC3B,GAAD,EAAoB;IAAA;;IACrC,IAAM4B,YAAY,cAAGC,MAAH,oEAAG,QAAQC,YAAR,EAAH,yDAAG,qBAAwBC,QAAxB,EAArB;;IAEA,IAAI,CAAAH,YAAY,SAAZ,IAAAA,YAAY,WAAZ,YAAAA,YAAY,CAAEvB,MAAd,MAAyB,CAAzB,IAA8BzC,UAAlC,EAA8C;MAC5C,IAAM8D,KAAK,GAAG5D,OAAO,GAAGkC,GAAG,CAAClC,OAAD,CAAN,GAAkBkC,GAAvC;MACA,IAAIgC,gBAAgB,GAAGN,KAAvB;;MACA,IAAI,CAAC,CAAC7D,WAAN,EAAmB;QACjB,IAAMoE,QAAQ,GAAGvC,QAAH,aAAGA,QAAH,uBAAGA,QAAQ,CAAEmB,OAAV,CAAkBa,KAAlB,CAAjB;;QACA,IAAIO,QAAQ,GAAG,CAAC,CAAhB,EAAmB;UACjBD,gBAAgB,sBAAOtC,QAAP,CAAhB;UACAsC,gBAAgB,CAACE,MAAjB,CAAwBD,QAAxB,EAAkC,CAAlC;QACD,CAHD,MAGO;UACLD,gBAAgB,gCAAOtC,QAAP,IAAiBsC,gBAAjB,EAAhB;QACD;MACF;;MAEDrC,WAAW,CAACqC,gBAAD,CAAX;MACA9E,KAAK,CAACiF,iBAAN,IAA2BjF,KAAK,CAACiF,iBAAN,CAAwBH,gBAAxB,CAA3B;IACD;EACF,CAnBD;EAqBA;AACF;AACA;;;EACE,IAAMI,gBAAgB,GAAG,SAAnBA,gBAAmB,GAAM;IAC7B,IAAMtC,WAAW,GAAGrB,eAAe,CAACsB,GAAhB,CAAoB,UAAAC,GAAG;MAAA,OAAIlC,OAAO,GAAGkC,GAAG,CAAClC,OAAD,CAAN,GAAkBkC,GAA7B;IAAA,CAAvB,CAApB;;IAEA,QAAQT,cAAR;MACE,KAAK,KAAL;QACEI,WAAW,CAAC,mBAAID,QAAJ,EAAcQ,MAAd,CAAqB,UAAAC,IAAI;UAAA,OAAI,CAACL,WAAW,CAACM,QAAZ,CAAqBD,IAArB,CAAL;QAAA,CAAzB,CAAD,CAAX;QACAX,iBAAiB,CAAC,MAAD,CAAjB;QACA;;MACF,KAAK,MAAL;QACEG,WAAW,8BAAKD,QAAL,sBAAkBI,WAAlB,GAAX;QACAN,iBAAiB,CAAC,KAAD,CAAjB;QACA;;MACF,KAAK,MAAL;QACEG,WAAW,8BAAKD,QAAL,sBAAkBI,WAAW,CAACI,MAAZ,CAAmB,UAAAC,IAAI;UAAA,OAAI,CAACT,QAAQ,CAACU,QAAT,CAAkBD,IAAlB,CAAL;QAAA,CAAvB,CAAlB,GAAX;QACAX,iBAAiB,CAAC,KAAD,CAAjB;QACA;IAZJ;EAcD,CAjBD;EAmBA;AACF;AACA;;;EACE,oBACE,MAAC,YAAD;IAAA,wBACE,KAAC,WAAD,oBAAiBtC,KAAjB,EADF,eAEE,KAAC,SAAD,kCAAeA,KAAf;MACW,eAAe,EAAEuB,eAD5B;MAEW,QAAQ,EAAEiB,QAFrB;MAGW,UAAU,EAAEiC,UAHvB;MAIW,YAAY,EAAEP,eAJzB;MAKW,gBAAgB,EAAEgB,gBAL7B;MAMW,SAAS,EAAEvD,IANtB;MAOW,cAAc,EAAEU;IAP3B,GAFF,eAUE,KAAC,WAAD,kCAAiBrC,KAAjB;MACa,mBAAmB,EAAEuE,iBADlC;MAEa,WAAW,EAAEpD,WAF1B;MAGa,cAAc,EAAEiB,cAH7B;MAIa,WAAW,EAAED,WAJ1B;MAKa,IAAI,EAAEN,IALnB;MAMa,EAAE,EAAEE,EANjB;MAOa,KAAK,EAAEE,KAPpB;MAQa,QAAQ,EAAEqC,QARvB;MASa,QAAQ,EAAED;IATvB,GAVF,EAoBG5D,oBAAoB,iBACnB,KAAC,kBAAD;MAAA,uBACE,KAAC,gBAAD;QAAkB,IAAI,EAAEjB,IAAI,CAAC2F;MAA7B;IADF,EArBJ;EAAA,EADF;AA4BD,CA5TD;;AA8TA,eAAepF,KAAf"}
@@ -182,6 +182,8 @@ var TableBody = function TableBody(props) {
182
182
  })
183
183
  })
184
184
  }), props.columns.map(function (column) {
185
+ var _props$sortProps, _props$sortProps2, _props$sortProps3, _props$sortProps4;
186
+
185
187
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TableStyles.StyledTableHeaderColumn, {
186
188
  onMouseDown: _common.defaultOnMouseDownHandler,
187
189
  onClick: function onClick(e) {
@@ -196,12 +198,12 @@ var TableBody = function TableBody(props) {
196
198
  width: column.width
197
199
  },
198
200
  tabIndex: column.sortable && !props.showLoadingIndicator ? 0 : -1,
199
- className: "".concat(!!column.sortable ? 'sortable' : '', " ").concat(column.key === props.sortedColumn && !!props.sortedDirection ? 'sorted' : ''),
201
+ className: "".concat(!!column.sortable ? 'sortable' : '', " ").concat(column.key === ((_props$sortProps = props.sortProps) === null || _props$sortProps === void 0 ? void 0 : _props$sortProps.column) && !!((_props$sortProps2 = props.sortProps) !== null && _props$sortProps2 !== void 0 && _props$sortProps2.direction) ? 'sorted' : '', " ").concat(column.justify || ''),
200
202
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_TableStyles.StyledTableHeaderColumnContent, {
201
203
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
202
204
  children: column.name
203
- }), column.key === props.sortedColumn && /*#__PURE__*/(0, _jsxRuntime.jsx)(_TableStyles.StyledTableHeaderColumnSortDirection, {
204
- children: props.sortedDirection === 'asc' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_SystemIcons.ArrowLineUp, {
205
+ }), column.key === ((_props$sortProps3 = props.sortProps) === null || _props$sortProps3 === void 0 ? void 0 : _props$sortProps3.column) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_TableStyles.StyledTableHeaderColumnSortDirection, {
206
+ children: ((_props$sortProps4 = props.sortProps) === null || _props$sortProps4 === void 0 ? void 0 : _props$sortProps4.direction) === 'asc' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_SystemIcons.ArrowLineUp, {
205
207
  size: '24px'
206
208
  }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_SystemIcons.ArrowLineDown, {
207
209
  size: '24px'
@@ -269,8 +271,7 @@ TableBody.propTypes = {
269
271
  selected: _propTypes.default.any,
270
272
  sortByColumn: _propTypes.default.func.isRequired,
271
273
  onSelectAllClick: _propTypes.default.func.isRequired,
272
- selectAllState: _propTypes.default.oneOf(['all', 'some', 'none']).isRequired,
273
- sortedColumn: _propTypes.default.string
274
+ selectAllState: _propTypes.default.oneOf(['all', 'some', 'none']).isRequired
274
275
  };
275
276
  var _default = TableBody;
276
277
  exports.default = _default;