@codacy/ui-components 0.66.24 → 0.66.26

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 (286) hide show
  1. package/lib/Avatar/Avatar.js +20 -28
  2. package/lib/Avatar/Avatar.types.js +1 -5
  3. package/lib/Avatar/gravatar.js +14 -22
  4. package/lib/Avatar/index.js +1 -16
  5. package/lib/Banner/Banner.js +33 -50
  6. package/lib/Banner/Banner.styles.d.ts +1 -1
  7. package/lib/Banner/Banner.styles.js +11 -20
  8. package/lib/Banner/Banner.types.js +1 -5
  9. package/lib/Banner/index.js +2 -27
  10. package/lib/Bannerol/Bannerol.js +44 -61
  11. package/lib/Bannerol/Bannerol.styles.js +9 -18
  12. package/lib/Bannerol/Bannerol.types.js +1 -5
  13. package/lib/Bannerol/index.js +3 -38
  14. package/lib/BigTabs/BigTabs.js +39 -54
  15. package/lib/BigTabs/BigTabs.styles.js +79 -107
  16. package/lib/BigTabs/BigTabs.types.js +1 -5
  17. package/lib/BigTabs/index.js +1 -16
  18. package/lib/Button/Button.js +45 -67
  19. package/lib/Button/index.js +2 -27
  20. package/lib/Button/styles.js +101 -130
  21. package/lib/Button/types.js +1 -5
  22. package/lib/Checkbox/Checkbox.js +55 -68
  23. package/lib/Checkbox/CheckboxFilterList.js +33 -66
  24. package/lib/Checkbox/index.js +3 -38
  25. package/lib/Checkbox/styles.js +64 -86
  26. package/lib/Checkbox/types.js +1 -5
  27. package/lib/CloseButton/index.d.ts +1 -1
  28. package/lib/CloseButton/index.js +24 -36
  29. package/lib/Divider/Divider.js +14 -25
  30. package/lib/Divider/Divider.styles.d.ts +1 -1
  31. package/lib/Divider/Divider.styles.js +24 -38
  32. package/lib/Divider/Divider.types.js +1 -5
  33. package/lib/Divider/index.js +1 -16
  34. package/lib/Dropdown/Content/DropdownInput.js +10 -20
  35. package/lib/Dropdown/Content/DropdownItem.js +22 -36
  36. package/lib/Dropdown/Content/DropdownSeparator.js +8 -19
  37. package/lib/Dropdown/Content/DropdownTitle.js +8 -22
  38. package/lib/Dropdown/Content/index.js +4 -49
  39. package/lib/Dropdown/Dropdown.js +74 -102
  40. package/lib/Dropdown/Dropdown.styles.d.ts +1 -1
  41. package/lib/Dropdown/Dropdown.styles.js +60 -82
  42. package/lib/Dropdown/Dropdown.types.js +1 -5
  43. package/lib/Dropdown/Triggers/DropdownButtonTrigger.js +19 -32
  44. package/lib/Dropdown/Triggers/DropdownItemTrigger.js +18 -30
  45. package/lib/Dropdown/Triggers/FilterTrigger.js +66 -93
  46. package/lib/Dropdown/Triggers/InputTrigger.js +15 -24
  47. package/lib/Dropdown/Triggers/SelectTrigger.js +12 -21
  48. package/lib/Dropdown/Triggers/hooks.js +17 -26
  49. package/lib/Dropdown/Triggers/index.js +6 -71
  50. package/lib/Dropdown/Triggers/types.js +1 -5
  51. package/lib/Dropdown/index.js +4 -49
  52. package/lib/ExpandableBox/ExpandableBox.js +28 -43
  53. package/lib/ExpandableBox/ExpandableBox.styles.d.ts +2 -2
  54. package/lib/ExpandableBox/ExpandableBox.styles.js +27 -40
  55. package/lib/ExpandableBox/ExpandableBox.types.js +1 -5
  56. package/lib/ExpandableBox/index.js +1 -16
  57. package/lib/Flexbox/Flexbox.js +14 -21
  58. package/lib/Flexbox/index.js +1 -16
  59. package/lib/Group/Group.js +7 -18
  60. package/lib/Group/Group.styles.js +8 -16
  61. package/lib/Group/Group.types.js +1 -5
  62. package/lib/Group/index.js +1 -16
  63. package/lib/Icon/Icon.js +15 -26
  64. package/lib/Icon/Icon.styles.d.ts +1 -1
  65. package/lib/Icon/Icon.styles.js +57 -50
  66. package/lib/Icon/Icon.types.js +1 -5
  67. package/lib/Icon/index.js +1 -16
  68. package/lib/IconAndText/IconAndText.js +23 -36
  69. package/lib/IconAndText/IconAndText.styles.js +19 -29
  70. package/lib/IconAndText/IconAndText.types.js +1 -5
  71. package/lib/IconAndText/index.js +1 -16
  72. package/lib/Icons/Chevrons.js +45 -65
  73. package/lib/Icons/CodacyIcon.js +9 -20
  74. package/lib/Icons/Ellipsis.js +18 -29
  75. package/lib/Icons/Messages.js +58 -79
  76. package/lib/Icons/Search.js +8 -19
  77. package/lib/Icons/Severities.js +113 -149
  78. package/lib/Icons/Sorting.js +15 -29
  79. package/lib/Icons/Spinner.js +11 -22
  80. package/lib/Icons/Symbols.js +67 -90
  81. package/lib/Icons/index.js +8 -93
  82. package/lib/Img/Img.js +26 -45
  83. package/lib/Img/Img.styles.d.ts +2 -2
  84. package/lib/Img/Img.styles.js +21 -29
  85. package/lib/Img/Img.types.js +1 -5
  86. package/lib/Img/index.js +1 -16
  87. package/lib/InlineMessage/InlineMessage.js +43 -70
  88. package/lib/InlineMessage/index.js +1 -16
  89. package/lib/InlineMessage/types.js +1 -5
  90. package/lib/Input/Input.js +115 -143
  91. package/lib/Input/hooks.js +107 -208
  92. package/lib/Input/index.js +2 -27
  93. package/lib/Input/styles.d.ts +2 -2
  94. package/lib/Input/styles.js +116 -151
  95. package/lib/Input/types.js +1 -5
  96. package/lib/Labeled/Labeled.js +22 -35
  97. package/lib/Labeled/index.js +1 -16
  98. package/lib/Labeled/styles.js +23 -37
  99. package/lib/Labeled/types.js +1 -5
  100. package/lib/LeftMenu/LeftMenu.js +10 -21
  101. package/lib/LeftMenu/LeftMenu.styles.js +25 -43
  102. package/lib/LeftMenu/LeftMenu.types.js +1 -5
  103. package/lib/LeftMenu/index.js +1 -16
  104. package/lib/Link/Link.js +32 -50
  105. package/lib/Link/Link.styles.js +11 -23
  106. package/lib/Link/Link.types.js +1 -5
  107. package/lib/Link/index.js +3 -38
  108. package/lib/Message/Message.js +31 -42
  109. package/lib/Message/Message.styles.js +18 -31
  110. package/lib/Message/Message.types.js +1 -5
  111. package/lib/Message/index.js +1 -16
  112. package/lib/Modal/ConfirmationModal.js +40 -67
  113. package/lib/Modal/Modal.js +107 -137
  114. package/lib/Modal/index.js +2 -27
  115. package/lib/Modal/styles.js +44 -62
  116. package/lib/Modal/types.js +1 -5
  117. package/lib/MoreInfo/MoreInfo.js +41 -53
  118. package/lib/MoreInfo/index.js +1 -16
  119. package/lib/MoreInfo/types.js +1 -5
  120. package/lib/MultiSlider/MultiSlider.js +17 -31
  121. package/lib/MultiSlider/index.js +1 -16
  122. package/lib/MultiSlider/styles.js +18 -34
  123. package/lib/MultiSlider/types.js +1 -5
  124. package/lib/Panel/Panel.js +9 -19
  125. package/lib/Panel/Panel.styles.js +15 -22
  126. package/lib/Panel/Panel.types.js +1 -5
  127. package/lib/Panel/index.js +2 -27
  128. package/lib/PillLabel/PillLabel.js +35 -49
  129. package/lib/PillLabel/PillLabel.styles.js +33 -44
  130. package/lib/PillLabel/PillLabel.types.js +1 -5
  131. package/lib/PillLabel/index.js +1 -16
  132. package/lib/Popup/Popup.js +43 -61
  133. package/lib/Popup/index.js +1 -16
  134. package/lib/Popup/styles.js +22 -34
  135. package/lib/Popup/types.js +1 -5
  136. package/lib/ProgressBar/ProgressBar.js +19 -35
  137. package/lib/ProgressBar/index.js +2 -27
  138. package/lib/ProgressBar/styles.d.ts +2 -2
  139. package/lib/ProgressBar/styles.js +21 -37
  140. package/lib/ProgressBar/types.d.ts +0 -3
  141. package/lib/ProgressBar/types.js +1 -5
  142. package/lib/Radio/Radio.js +47 -59
  143. package/lib/Radio/index.js +1 -16
  144. package/lib/Radio/styles.js +48 -72
  145. package/lib/Radio/types.js +1 -5
  146. package/lib/ScrollableContent/ScrollableContent.js +27 -40
  147. package/lib/ScrollableContent/ScrollableContent.styles.js +22 -39
  148. package/lib/ScrollableContent/ScrollableContent.types.js +1 -5
  149. package/lib/ScrollableContent/index.js +2 -27
  150. package/lib/ScrollableContent/useScrollContainer.js +35 -50
  151. package/lib/Skeleton/Skeleton.js +25 -45
  152. package/lib/Skeleton/Skeleton.styles.js +28 -25
  153. package/lib/Skeleton/Skeleton.types.js +1 -5
  154. package/lib/Skeleton/index.js +2 -20
  155. package/lib/Slider/Slider.js +32 -56
  156. package/lib/Slider/index.js +1 -16
  157. package/lib/Slider/styles.js +41 -60
  158. package/lib/Slider/types.js +1 -5
  159. package/lib/StepNumber/StepNumber.js +26 -40
  160. package/lib/StepNumber/index.js +1 -16
  161. package/lib/StepNumber/styles.js +13 -24
  162. package/lib/StepNumber/types.js +1 -5
  163. package/lib/Stepper/Stepper.js +45 -62
  164. package/lib/Stepper/Stepper.styles.js +27 -44
  165. package/lib/Stepper/Stepper.types.js +1 -5
  166. package/lib/Stepper/index.js +1 -16
  167. package/lib/Switcher/Switcher.js +22 -34
  168. package/lib/Switcher/Switcher.styles.js +27 -42
  169. package/lib/Switcher/Switcher.types.js +1 -5
  170. package/lib/Switcher/index.js +1 -16
  171. package/lib/Tab/Tab.js +21 -33
  172. package/lib/Tab/Tab.styles.js +34 -50
  173. package/lib/Tab/Tab.types.js +1 -5
  174. package/lib/Tab/index.js +1 -16
  175. package/lib/Table/NewSelectableTable.js +59 -97
  176. package/lib/Table/SelectableTable.js +142 -189
  177. package/lib/Table/Table.js +110 -155
  178. package/lib/Table/Table.styles.js +67 -90
  179. package/lib/Table/Table.types.js +1 -5
  180. package/lib/Table/index.js +2 -27
  181. package/lib/TagsInput/TagsInput.js +32 -46
  182. package/lib/TagsInput/index.js +1 -16
  183. package/lib/TagsInput/style.js +45 -71
  184. package/lib/TagsInput/types.js +1 -5
  185. package/lib/Textarea/Textarea.js +52 -71
  186. package/lib/Textarea/Textarea.styles.js +91 -126
  187. package/lib/Textarea/Textarea.types.js +1 -5
  188. package/lib/Textarea/index.js +1 -16
  189. package/lib/ThemeProvider/ThemeProvider.js +41 -65
  190. package/lib/ThemeProvider/index.js +1 -16
  191. package/lib/Toast/Toast.js +53 -68
  192. package/lib/Toast/index.js +1 -16
  193. package/lib/Toast/styles.js +29 -49
  194. package/lib/Toast/types.js +1 -5
  195. package/lib/Toggle/Toggle.js +48 -65
  196. package/lib/Toggle/index.js +1 -16
  197. package/lib/Toggle/styles.d.ts +1 -1
  198. package/lib/Toggle/styles.js +66 -101
  199. package/lib/Toggle/types.js +1 -5
  200. package/lib/Tooltip/Tooltip.js +84 -121
  201. package/lib/Tooltip/index.js +2 -27
  202. package/lib/Tooltip/styles.js +63 -93
  203. package/lib/Tooltip/types.js +1 -5
  204. package/lib/Typography/Typography.js +78 -116
  205. package/lib/Typography/Typography.styles.js +61 -78
  206. package/lib/Typography/Typography.types.js +1 -5
  207. package/lib/Typography/index.js +3 -38
  208. package/lib/emotion.d.js +1 -3
  209. package/lib/hooks/index.js +3 -38
  210. package/lib/hooks/useForwardedRef.js +5 -11
  211. package/lib/hooks/useInfiniteScroll.js +13 -25
  212. package/lib/hooks/useStatefulRef.js +10 -23
  213. package/lib/index.js +49 -544
  214. package/lib/system-props/color.js +3 -9
  215. package/lib/system-props/index.js +2 -27
  216. package/lib/system-props/types.js +1 -5
  217. package/lib/theme/ColorSchemes/components/alerts.js +30 -38
  218. package/lib/theme/ColorSchemes/components/button.js +89 -97
  219. package/lib/theme/ColorSchemes/components/cards.js +16 -24
  220. package/lib/theme/ColorSchemes/components/charts.js +93 -101
  221. package/lib/theme/ColorSchemes/components/checkbox-input.js +13 -21
  222. package/lib/theme/ColorSchemes/components/divider.js +4 -12
  223. package/lib/theme/ColorSchemes/components/drawer.js +21 -29
  224. package/lib/theme/ColorSchemes/components/effects.js +5 -13
  225. package/lib/theme/ColorSchemes/components/filters.js +12 -20
  226. package/lib/theme/ColorSchemes/components/index.d.ts +2 -0
  227. package/lib/theme/ColorSchemes/components/index.js +23 -236
  228. package/lib/theme/ColorSchemes/components/input.js +38 -46
  229. package/lib/theme/ColorSchemes/components/issues.js +27 -35
  230. package/lib/theme/ColorSchemes/components/label.js +33 -41
  231. package/lib/theme/ColorSchemes/components/list-orb.js +8 -16
  232. package/lib/theme/ColorSchemes/components/loading.js +4 -12
  233. package/lib/theme/ColorSchemes/components/logo.js +6 -14
  234. package/lib/theme/ColorSchemes/components/modals.js +6 -14
  235. package/lib/theme/ColorSchemes/components/navigation.js +17 -25
  236. package/lib/theme/ColorSchemes/components/progress-bar.d.ts +5 -0
  237. package/lib/theme/ColorSchemes/components/progress-bar.js +5 -0
  238. package/lib/theme/ColorSchemes/components/selector.js +20 -28
  239. package/lib/theme/ColorSchemes/components/stepper.js +9 -17
  240. package/lib/theme/ColorSchemes/components/tables.js +12 -20
  241. package/lib/theme/ColorSchemes/components/tabs.js +13 -21
  242. package/lib/theme/ColorSchemes/components/tooltip.d.ts +6 -0
  243. package/lib/theme/ColorSchemes/components/tooltip.js +6 -0
  244. package/lib/theme/ColorSchemes/components/utils.js +1 -11
  245. package/lib/theme/ColorSchemes/dark/background.d.ts +27 -27
  246. package/lib/theme/ColorSchemes/dark/background.js +42 -50
  247. package/lib/theme/ColorSchemes/dark/border.d.ts +27 -27
  248. package/lib/theme/ColorSchemes/dark/border.js +37 -45
  249. package/lib/theme/ColorSchemes/dark/data.js +18 -24
  250. package/lib/theme/ColorSchemes/dark/icon.d.ts +27 -27
  251. package/lib/theme/ColorSchemes/dark/icon.js +40 -48
  252. package/lib/theme/ColorSchemes/dark/illustration.js +11 -17
  253. package/lib/theme/ColorSchemes/dark/index.js +60 -26
  254. package/lib/theme/ColorSchemes/dark/text.d.ts +27 -27
  255. package/lib/theme/ColorSchemes/dark/text.js +47 -54
  256. package/lib/theme/ColorSchemes/index.js +4 -49
  257. package/lib/theme/ColorSchemes/light/background.d.ts +27 -27
  258. package/lib/theme/ColorSchemes/light/background.js +42 -50
  259. package/lib/theme/ColorSchemes/light/border.d.ts +27 -27
  260. package/lib/theme/ColorSchemes/light/border.js +37 -45
  261. package/lib/theme/ColorSchemes/light/data.js +18 -24
  262. package/lib/theme/ColorSchemes/light/icon.d.ts +27 -27
  263. package/lib/theme/ColorSchemes/light/icon.js +40 -48
  264. package/lib/theme/ColorSchemes/light/illustration.js +11 -17
  265. package/lib/theme/ColorSchemes/light/index.d.ts +59 -54
  266. package/lib/theme/ColorSchemes/light/index.js +43 -19
  267. package/lib/theme/ColorSchemes/light/text.d.ts +27 -27
  268. package/lib/theme/ColorSchemes/light/text.js +47 -54
  269. package/lib/theme/ColorSchemes/primitives/blue.js +1 -7
  270. package/lib/theme/ColorSchemes/primitives/green.js +1 -7
  271. package/lib/theme/ColorSchemes/primitives/grey.js +1 -7
  272. package/lib/theme/ColorSchemes/primitives/index.d.ts +9 -9
  273. package/lib/theme/ColorSchemes/primitives/index.js +20 -18
  274. package/lib/theme/ColorSchemes/primitives/magenta.js +1 -7
  275. package/lib/theme/ColorSchemes/primitives/orange.js +1 -7
  276. package/lib/theme/ColorSchemes/primitives/purple.js +1 -7
  277. package/lib/theme/ColorSchemes/primitives/red.js +1 -7
  278. package/lib/theme/ColorSchemes/primitives/teal.js +1 -7
  279. package/lib/theme/ColorSchemes/primitives/yellow.js +1 -7
  280. package/lib/theme/ColorSchemes/semantics.js +7 -13
  281. package/lib/theme/index.js +2 -27
  282. package/lib/theme/theme.js +68 -77
  283. package/lib/types.js +1 -5
  284. package/lib/utils/hash.js +3 -9
  285. package/lib/utils/reactNodeToText.js +9 -17
  286. package/package.json +21 -11
@@ -1,36 +1,17 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.useSelectableTableContext = exports.SelectableTable = void 0;
9
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
10
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/toConsumableArray"));
11
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
12
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectWithoutProperties"));
13
- var _react = _interopRequireWildcard(require("react"));
14
- var _Table = require("./Table.styles");
15
- var _2 = require("../");
16
- var _lodash = require("lodash");
17
- var _Table2 = require("./Table");
18
- var _jsxRuntime = require("react/jsx-runtime");
19
- var _excluded = ["children", "items", "totalLength", "onSelectionChange", "initialValue"],
20
- _excluded2 = ["children", "sticky", "stickyOffset"],
21
- _excluded3 = ["children", "index", "disabled"];
22
- var INITIAL_TABLE_STATE = {
1
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+ import React, { useCallback, useContext, useEffect, useState } from 'react';
3
+ import { TableWrapper, StyledTableHeader, StyledTableHeaderCell, StyledTableBodyCell, StyledTableRow, StyledTable } from './Table.styles';
4
+ import { Checkbox, Caption, Link } from '../';
5
+ import { uniq } from 'lodash';
6
+ import { ColumnsGroup } from './Table';
7
+ const INITIAL_TABLE_STATE = {
23
8
  indexes: [],
24
9
  multiple: 'none'
25
10
  };
26
- var SelectableTableContext = /*#__PURE__*/_react["default"].createContext(null);
27
- var sequentialArray = function sequentialArray(from, to) {
28
- return new Array(to - from + 1).fill(0).map(function (_, idx) {
29
- return idx + from;
30
- });
31
- };
32
- var useSelectableTableContext = exports.useSelectableTableContext = function useSelectableTableContext() {
33
- var context = (0, _react.useContext)(SelectableTableContext);
11
+ const SelectableTableContext = /*#__PURE__*/React.createContext(null);
12
+ const sequentialArray = (from, to) => new Array(to - from + 1).fill(0).map((_, idx) => idx + from);
13
+ export const useSelectableTableContext = () => {
14
+ const context = useContext(SelectableTableContext);
34
15
  if (context === null) {
35
16
  throw new Error("You are using SelectableTableContext outside it's provider.");
36
17
  }
@@ -40,229 +21,201 @@ var useSelectableTableContext = exports.useSelectableTableContext = function use
40
21
  /**
41
22
  * Base selectable table component
42
23
  */
43
- function SelectableTableComponent(_ref) {
24
+ function SelectableTableComponent({
25
+ children,
26
+ items,
27
+ totalLength,
28
+ onSelectionChange,
29
+ initialValue,
30
+ ...props
31
+ }) {
44
32
  var _initialValue$selecte, _initialValue$selecte2;
45
- var children = _ref.children,
46
- items = _ref.items,
47
- totalLength = _ref.totalLength,
48
- onSelectionChange = _ref.onSelectionChange,
49
- initialValue = _ref.initialValue,
50
- props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
51
- var _useState = (0, _react.useState)(initialValue ? {
52
- indexes: initialValue.selected ? initialValue.selected.map(function (v) {
53
- return items.indexOf(v);
54
- }) : [],
55
- totalLength: totalLength,
56
- multiple: initialValue.allSelected ? 'all' : items.length > 0 && ((_initialValue$selecte = initialValue.selected) === null || _initialValue$selecte === void 0 ? void 0 : _initialValue$selecte.length) === items.length ? 'visible' : items.length > 0 && !!((_initialValue$selecte2 = initialValue.selected) !== null && _initialValue$selecte2 !== void 0 && _initialValue$selecte2.length) ? 'partial' : 'none'
57
- } : INITIAL_TABLE_STATE),
58
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
59
- selected = _useState2[0],
60
- setSelected = _useState2[1];
61
- var add = (0, _react.useCallback)(function (idxFrom, idxTo) {
33
+ const [selected, setSelected] = useState(initialValue ? {
34
+ indexes: initialValue.selected ? initialValue.selected.map(v => items.indexOf(v)) : [],
35
+ totalLength: totalLength,
36
+ multiple: initialValue.allSelected ? 'all' : items.length > 0 && ((_initialValue$selecte = initialValue.selected) === null || _initialValue$selecte === void 0 ? void 0 : _initialValue$selecte.length) === items.length ? 'visible' : items.length > 0 && !!((_initialValue$selecte2 = initialValue.selected) !== null && _initialValue$selecte2 !== void 0 && _initialValue$selecte2.length) ? 'partial' : 'none'
37
+ } : INITIAL_TABLE_STATE);
38
+ const add = useCallback((idxFrom, idxTo) => {
62
39
  if (idxTo !== undefined && idxTo !== idxFrom) {
63
- var from = Math.min(idxFrom, idxTo);
64
- var to = Math.max(idxFrom, idxTo);
65
- var rangeToAdd = sequentialArray(from, to);
66
- setSelected(function (_ref2) {
67
- var indexes = _ref2.indexes;
68
- var newIndexes = (0, _lodash.uniq)([].concat((0, _toConsumableArray2["default"])(indexes), (0, _toConsumableArray2["default"])(rangeToAdd))).sort();
40
+ const from = Math.min(idxFrom, idxTo);
41
+ const to = Math.max(idxFrom, idxTo);
42
+ const rangeToAdd = sequentialArray(from, to);
43
+ setSelected(({
44
+ indexes
45
+ }) => {
46
+ const newIndexes = uniq([...indexes, ...rangeToAdd]).sort();
69
47
  return {
70
48
  indexes: newIndexes,
71
49
  multiple: newIndexes.length === totalLength ? 'all' : newIndexes.length === items.length ? 'visible' : 'partial',
72
50
  lastAction: 'add',
73
51
  lastIndex: idxFrom,
74
- totalLength: totalLength
52
+ totalLength
75
53
  };
76
54
  });
77
55
  } else {
78
- setSelected(function (_ref3) {
79
- var indexes = _ref3.indexes;
80
- var newIndexes = !indexes.includes(idxFrom) ? [].concat((0, _toConsumableArray2["default"])(indexes), [idxFrom]).sort() : indexes;
56
+ setSelected(({
57
+ indexes
58
+ }) => {
59
+ const newIndexes = !indexes.includes(idxFrom) ? [...indexes, idxFrom].sort() : indexes;
81
60
  return {
82
61
  indexes: newIndexes,
83
62
  multiple: newIndexes.length === totalLength ? 'all' : newIndexes.length === items.length ? 'visible' : 'partial',
84
63
  lastAction: 'add',
85
64
  lastIndex: idxFrom,
86
- totalLength: totalLength
65
+ totalLength
87
66
  };
88
67
  });
89
68
  }
90
69
  }, [items.length, totalLength]);
91
- var remove = (0, _react.useCallback)(function (idxFrom, idxTo) {
92
- var response = {
70
+ const remove = useCallback((idxFrom, idxTo) => {
71
+ const response = {
93
72
  indexes: [],
94
73
  lastAction: 'remove',
95
74
  lastIndex: idxFrom,
96
- totalLength: totalLength
75
+ totalLength
97
76
  };
98
77
  if (idxTo !== undefined && idxTo !== idxFrom) {
99
- var from = Math.min(idxFrom, idxTo);
100
- var to = Math.max(idxFrom, idxTo);
101
- var rangeToRemove = sequentialArray(from, to);
102
- setSelected(function (_ref4) {
103
- var indexes = _ref4.indexes;
104
- var newIndexes = indexes.filter(function (i) {
105
- return !rangeToRemove.includes(i);
106
- });
107
- return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, response), {}, {
78
+ const from = Math.min(idxFrom, idxTo);
79
+ const to = Math.max(idxFrom, idxTo);
80
+ const rangeToRemove = sequentialArray(from, to);
81
+ setSelected(({
82
+ indexes
83
+ }) => {
84
+ const newIndexes = indexes.filter(i => !rangeToRemove.includes(i));
85
+ return {
86
+ ...response,
108
87
  indexes: newIndexes,
109
88
  multiple: newIndexes.length ? 'partial' : 'none'
110
- });
89
+ };
111
90
  });
112
91
  } else {
113
- setSelected(function (_ref5) {
114
- var indexes = _ref5.indexes,
115
- multiple = _ref5.multiple;
116
- var realIndexes = multiple === 'visible' || multiple === 'all' ? sequentialArray(0, items.length - 1) : indexes;
117
- var newIndexes = realIndexes.includes(idxFrom) ? realIndexes.filter(function (i) {
118
- return i !== idxFrom;
119
- }) : realIndexes;
120
- return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, response), {}, {
92
+ setSelected(({
93
+ indexes,
94
+ multiple
95
+ }) => {
96
+ const realIndexes = multiple === 'visible' || multiple === 'all' ? sequentialArray(0, items.length - 1) : indexes;
97
+ const newIndexes = realIndexes.includes(idxFrom) ? realIndexes.filter(i => i !== idxFrom) : realIndexes;
98
+ return {
99
+ ...response,
121
100
  indexes: newIndexes,
122
101
  multiple: newIndexes.length ? 'partial' : 'none'
123
- });
102
+ };
124
103
  });
125
104
  }
126
105
  }, [items.length, totalLength]);
127
- var selectAllVisible = (0, _react.useCallback)(function () {
106
+ const selectAllVisible = useCallback(() => {
128
107
  setSelected({
129
108
  indexes: [],
130
109
  multiple: 'visible',
131
- totalLength: totalLength
110
+ totalLength
132
111
  });
133
112
  }, [totalLength]);
134
- var selectAll = (0, _react.useCallback)(function () {
113
+ const selectAll = useCallback(() => {
135
114
  setSelected({
136
115
  indexes: [],
137
116
  multiple: 'all',
138
- totalLength: totalLength
117
+ totalLength
139
118
  });
140
119
  }, [totalLength]);
141
- var clearSelection = (0, _react.useCallback)(function () {
120
+ const clearSelection = useCallback(() => {
142
121
  setSelected({
143
122
  indexes: [],
144
123
  multiple: 'none'
145
124
  });
146
125
  }, []);
147
- (0, _react.useEffect)(function () {
126
+ useEffect(() => {
148
127
  if (onSelectionChange) {
149
- onSelectionChange(selected.multiple === 'visible' ? (0, _toConsumableArray2["default"])(items) : selected.indexes.map(function (idx) {
150
- return items[idx];
151
- }), selected.multiple === 'all');
128
+ onSelectionChange(selected.multiple === 'visible' ? [...items] : selected.indexes.map(idx => items[idx]), selected.multiple === 'all');
152
129
  }
153
130
  }, [selected, items, onSelectionChange]);
154
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Table.TableWrapper, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, props), {}, {
155
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(SelectableTableContext.Provider, {
156
- value: (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, selected), {}, {
157
- itemsLength: items.length,
158
- add: add,
159
- remove: remove,
160
- selectAllVisible: selectAllVisible,
161
- selectAll: selectAll,
162
- clearSelection: clearSelection
163
- }),
164
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Table.StyledTable, {
165
- children: children
166
- })
167
- })
168
- }));
131
+ return /*#__PURE__*/React.createElement(TableWrapper, props, /*#__PURE__*/React.createElement(SelectableTableContext.Provider, {
132
+ value: {
133
+ ...selected,
134
+ itemsLength: items.length,
135
+ add,
136
+ remove,
137
+ selectAllVisible,
138
+ selectAll,
139
+ clearSelection
140
+ }
141
+ }, /*#__PURE__*/React.createElement(StyledTable, null, children)));
169
142
  }
170
- var Header = function Header(_ref6) {
171
- var children = _ref6.children,
172
- _ref6$sticky = _ref6.sticky,
173
- sticky = _ref6$sticky === void 0 ? false : _ref6$sticky,
174
- _ref6$stickyOffset = _ref6.stickyOffset,
175
- stickyOffset = _ref6$stickyOffset === void 0 ? '0' : _ref6$stickyOffset,
176
- props = (0, _objectWithoutProperties2["default"])(_ref6, _excluded2);
177
- var selection = useSelectableTableContext();
178
- var selectStatus = selection.multiple === 'none' ? false : selection.multiple === 'partial' ? 'indeterminate' : true;
179
- var handleSelectChange = (0, _react.useCallback)(function (checked) {
143
+ const Header = ({
144
+ children,
145
+ sticky = false,
146
+ stickyOffset = '0',
147
+ ...props
148
+ }) => {
149
+ const selection = useSelectableTableContext();
150
+ const selectStatus = selection.multiple === 'none' ? false : selection.multiple === 'partial' ? 'indeterminate' : true;
151
+ const handleSelectChange = useCallback(checked => {
180
152
  if (checked) selection.selectAllVisible();else selection.clearSelection();
181
153
  }, [selection]);
182
- var hasMoreRows = !!selection.totalLength && selection.totalLength > selection.itemsLength;
183
- var selectedVisibleWithMoreRows = selection.multiple === 'visible' && hasMoreRows;
184
- var selectedAllWithMoreRows = selection.multiple === 'all' && hasMoreRows;
185
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
186
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Table2.ColumnsGroup, {
187
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Table.StyledTableHeaderCell, {
188
- width: "3.25rem"
189
- }), children]
190
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Table.StyledTableHeader, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({
191
- sticky: sticky,
192
- stickyOffset: stickyOffset
193
- }, props), {}, {
194
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Table.StyledTableRow, {
195
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Table.StyledTableHeaderCell, {
196
- totalizer: selectedVisibleWithMoreRows || selectedAllWithMoreRows,
197
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_2.Checkbox, {
198
- size: "sm",
199
- onChange: handleSelectChange,
200
- checked: selectStatus,
201
- className: "th-checkbox"
202
- })
203
- }), selectedVisibleWithMoreRows ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Table.StyledTableHeaderCell, {
204
- align: "left",
205
- totalizer: true,
206
- colSpan: _react["default"].Children.count(children),
207
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_2.Caption, {
208
- mr: 4,
209
- as: "span",
210
- size: "md",
211
- children: [selection.itemsLength, " selected"]
212
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_2.Link, {
213
- onClick: selection.selectAll,
214
- children: ["Select all ", selection.totalLength, " instead"]
215
- })]
216
- }) : selectedAllWithMoreRows ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Table.StyledTableHeaderCell, {
217
- align: "left",
218
- totalizer: true,
219
- colSpan: _react["default"].Children.count(children),
220
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_2.Caption, {
221
- mr: 4,
222
- as: "span",
223
- size: "md",
224
- children: ["All ", selection.totalLength, " selected"]
225
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_2.Link, {
226
- onClick: selection.clearSelection,
227
- children: "Clear selection"
228
- })]
229
- }) : children]
230
- })
231
- }))]
232
- });
154
+ const hasMoreRows = !!selection.totalLength && selection.totalLength > selection.itemsLength;
155
+ const selectedVisibleWithMoreRows = selection.multiple === 'visible' && hasMoreRows;
156
+ const selectedAllWithMoreRows = selection.multiple === 'all' && hasMoreRows;
157
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ColumnsGroup, null, /*#__PURE__*/React.createElement(StyledTableHeaderCell, {
158
+ width: "3.25rem"
159
+ }), children), /*#__PURE__*/React.createElement(StyledTableHeader, _extends({
160
+ sticky: sticky,
161
+ stickyOffset: stickyOffset
162
+ }, props), /*#__PURE__*/React.createElement(StyledTableRow, null, /*#__PURE__*/React.createElement(StyledTableHeaderCell, {
163
+ totalizer: selectedVisibleWithMoreRows || selectedAllWithMoreRows
164
+ }, /*#__PURE__*/React.createElement(Checkbox, {
165
+ size: "sm",
166
+ onChange: handleSelectChange,
167
+ checked: selectStatus,
168
+ className: "th-checkbox"
169
+ })), selectedVisibleWithMoreRows ? /*#__PURE__*/React.createElement(StyledTableHeaderCell, {
170
+ align: "left",
171
+ totalizer: true,
172
+ colSpan: React.Children.count(children)
173
+ }, /*#__PURE__*/React.createElement(Caption, {
174
+ mr: 4,
175
+ as: "span",
176
+ size: "md"
177
+ }, selection.itemsLength, " selected"), /*#__PURE__*/React.createElement(Link, {
178
+ onClick: selection.selectAll
179
+ }, "Select all ", selection.totalLength, " instead")) : selectedAllWithMoreRows ? /*#__PURE__*/React.createElement(StyledTableHeaderCell, {
180
+ align: "left",
181
+ totalizer: true,
182
+ colSpan: React.Children.count(children)
183
+ }, /*#__PURE__*/React.createElement(Caption, {
184
+ mr: 4,
185
+ as: "span",
186
+ size: "md"
187
+ }, "All ", selection.totalLength, " selected"), /*#__PURE__*/React.createElement(Link, {
188
+ onClick: selection.clearSelection
189
+ }, "Clear selection")) : children)));
233
190
  };
234
- var Row = function Row(_ref7) {
235
- var children = _ref7.children,
236
- index = _ref7.index,
237
- _ref7$disabled = _ref7.disabled,
238
- disabled = _ref7$disabled === void 0 ? false : _ref7$disabled,
239
- props = (0, _objectWithoutProperties2["default"])(_ref7, _excluded3);
240
- var selection = useSelectableTableContext();
241
- var handleSelectChange = (0, _react.useCallback)(function (checked, event) {
191
+ const Row = ({
192
+ children,
193
+ index,
194
+ disabled = false,
195
+ ...props
196
+ }) => {
197
+ const selection = useSelectableTableContext();
198
+ const handleSelectChange = useCallback((checked, event) => {
242
199
  if (event !== null && event !== void 0 && event.shiftKey && selection.lastAction) {
243
200
  if (selection.lastAction === 'add') selection.add(index, selection.lastIndex);else selection.remove(index, selection.lastIndex);
244
201
  } else {
245
202
  if (checked) selection.add(index);else selection.remove(index);
246
203
  }
247
204
  }, [selection, index]);
248
- var isSelected = selection.multiple === 'all' || selection.multiple === 'visible' || selection.indexes.includes(index);
249
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Table.StyledTableRow, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, props), {}, {
250
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Table.StyledTableBodyCell, {
251
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_2.Checkbox, {
252
- size: "sm",
253
- onChange: handleSelectChange,
254
- checked: !disabled && isSelected,
255
- disabled: disabled,
256
- className: "tr-checkbox"
257
- })
258
- }), children]
259
- }));
205
+ const isSelected = selection.multiple === 'all' || selection.multiple === 'visible' || selection.indexes.includes(index);
206
+ return /*#__PURE__*/React.createElement(StyledTableRow, props, /*#__PURE__*/React.createElement(StyledTableBodyCell, null, /*#__PURE__*/React.createElement(Checkbox, {
207
+ size: "sm",
208
+ onChange: handleSelectChange,
209
+ checked: !disabled && isSelected,
210
+ disabled: disabled,
211
+ className: "tr-checkbox"
212
+ })), children);
260
213
  };
261
214
 
262
215
  /**
263
216
  * @deprecated Use the NewSelectableTable instead.
264
217
  */
265
- var SelectableTable = exports.SelectableTable = Object.assign(SelectableTableComponent, {
266
- Header: Header,
267
- Row: Row
218
+ export const SelectableTable = Object.assign(SelectableTableComponent, {
219
+ Header,
220
+ Row
268
221
  });