@sap-ux/ui-components 1.8.1 → 1.8.2

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 (272) hide show
  1. package/dist/components/Icons.d.ts +139 -139
  2. package/dist/components/Icons.js +582 -582
  3. package/dist/components/UIActionCallout/UIActionCallout.d.ts +61 -61
  4. package/dist/components/UIActionCallout/UIActionCallout.js +63 -63
  5. package/dist/components/UIActionCallout/UIActionCallout.scss +31 -31
  6. package/dist/components/UIActionCallout/index.d.ts +1 -1
  7. package/dist/components/UIActionCallout/index.js +17 -17
  8. package/dist/components/UIBreadcrumb/UIBreadcrumb.d.ts +23 -23
  9. package/dist/components/UIBreadcrumb/UIBreadcrumb.js +38 -38
  10. package/dist/components/UIBreadcrumb/index.d.ts +1 -1
  11. package/dist/components/UIBreadcrumb/index.js +17 -17
  12. package/dist/components/UIButton/UIActionButton.d.ts +23 -23
  13. package/dist/components/UIButton/UIActionButton.js +89 -89
  14. package/dist/components/UIButton/UIDefaultButton.d.ts +23 -23
  15. package/dist/components/UIButton/UIDefaultButton.js +229 -229
  16. package/dist/components/UIButton/UIIconButton.d.ts +37 -37
  17. package/dist/components/UIButton/UIIconButton.js +106 -106
  18. package/dist/components/UIButton/UISmallButton.d.ts +34 -34
  19. package/dist/components/UIButton/UISmallButton.js +115 -115
  20. package/dist/components/UIButton/UISplitButton.d.ts +36 -36
  21. package/dist/components/UIButton/UISplitButton.js +71 -71
  22. package/dist/components/UIButton/index.d.ts +7 -7
  23. package/dist/components/UIButton/index.js +21 -21
  24. package/dist/components/UICallout/UICallout.d.ts +37 -37
  25. package/dist/components/UICallout/UICallout.js +90 -90
  26. package/dist/components/UICallout/index.d.ts +1 -1
  27. package/dist/components/UICallout/index.js +17 -17
  28. package/dist/components/UICheckbox/UICheckbox.d.ts +34 -34
  29. package/dist/components/UICheckbox/UICheckbox.js +135 -135
  30. package/dist/components/UICheckbox/index.d.ts +1 -1
  31. package/dist/components/UICheckbox/index.js +17 -17
  32. package/dist/components/UIChoiceGroup/UIChoiceGroup.d.ts +28 -28
  33. package/dist/components/UIChoiceGroup/UIChoiceGroup.js +182 -182
  34. package/dist/components/UIChoiceGroup/index.d.ts +1 -1
  35. package/dist/components/UIChoiceGroup/index.js +17 -17
  36. package/dist/components/UIComboBox/Callout.scss +7 -7
  37. package/dist/components/UIComboBox/UIComboBox.d.ts +198 -198
  38. package/dist/components/UIComboBox/UIComboBox.js +516 -516
  39. package/dist/components/UIComboBox/UIComboBox.scss +268 -268
  40. package/dist/components/UIComboBox/_mixins.scss +32 -32
  41. package/dist/components/UIComboBox/index.d.ts +1 -1
  42. package/dist/components/UIComboBox/index.js +17 -17
  43. package/dist/components/UIContextualMenu/UIContextualMenu.d.ts +31 -31
  44. package/dist/components/UIContextualMenu/UIContextualMenu.js +123 -123
  45. package/dist/components/UIContextualMenu/UIContextualMenu.scss +211 -211
  46. package/dist/components/UIContextualMenu/UIHighlightMenuOption.d.ts +19 -19
  47. package/dist/components/UIContextualMenu/UIHighlightMenuOption.js +50 -50
  48. package/dist/components/UIContextualMenu/UIHighlightMenuOption.scss +23 -23
  49. package/dist/components/UIContextualMenu/_variables.scss +30 -30
  50. package/dist/components/UIContextualMenu/index.d.ts +2 -2
  51. package/dist/components/UIContextualMenu/index.js +18 -18
  52. package/dist/components/UIDatePicker/UIDatePicker.d.ts +49 -49
  53. package/dist/components/UIDatePicker/UIDatePicker.js +72 -72
  54. package/dist/components/UIDatePicker/UIDatePicker.scss +38 -38
  55. package/dist/components/UIDatePicker/index.d.ts +1 -1
  56. package/dist/components/UIDatePicker/index.js +17 -17
  57. package/dist/components/UIDialog/UIDialog.d.ts +116 -116
  58. package/dist/components/UIDialog/UIDialog.js +279 -279
  59. package/dist/components/UIDialog/index.d.ts +1 -1
  60. package/dist/components/UIDialog/index.js +17 -17
  61. package/dist/components/UIDropdown/UIDropdown.d.ts +90 -90
  62. package/dist/components/UIDropdown/UIDropdown.js +216 -216
  63. package/dist/components/UIDropdown/UIDropdown.scss +115 -115
  64. package/dist/components/UIDropdown/index.d.ts +2 -2
  65. package/dist/components/UIDropdown/index.js +18 -18
  66. package/dist/components/UIDropdown/utils.d.ts +8 -8
  67. package/dist/components/UIDropdown/utils.js +20 -20
  68. package/dist/components/UIFlexibleTable/RowActions.d.ts +16 -16
  69. package/dist/components/UIFlexibleTable/RowActions.js +73 -73
  70. package/dist/components/UIFlexibleTable/RowData.d.ts +16 -16
  71. package/dist/components/UIFlexibleTable/RowData.js +111 -111
  72. package/dist/components/UIFlexibleTable/UIFlexibleTable.d.ts +11 -11
  73. package/dist/components/UIFlexibleTable/UIFlexibleTable.js +280 -280
  74. package/dist/components/UIFlexibleTable/UIFlexibleTable.scss +433 -433
  75. package/dist/components/UIFlexibleTable/UIFlexibleTableActionButton.d.ts +20 -20
  76. package/dist/components/UIFlexibleTable/UIFlexibleTableActionButton.js +20 -20
  77. package/dist/components/UIFlexibleTable/UIFlexibleTableRow.d.ts +26 -26
  78. package/dist/components/UIFlexibleTable/UIFlexibleTableRow.js +165 -165
  79. package/dist/components/UIFlexibleTable/UIFlexibleTableRowActionButton.d.ts +20 -20
  80. package/dist/components/UIFlexibleTable/UIFlexibleTableRowActionButton.js +19 -19
  81. package/dist/components/UIFlexibleTable/UIFlexibleTableRowNoData.d.ts +15 -15
  82. package/dist/components/UIFlexibleTable/UIFlexibleTableRowNoData.js +28 -28
  83. package/dist/components/UIFlexibleTable/index.d.ts +5 -5
  84. package/dist/components/UIFlexibleTable/index.js +21 -21
  85. package/dist/components/UIFlexibleTable/types.d.ts +142 -142
  86. package/dist/components/UIFlexibleTable/types.js +14 -14
  87. package/dist/components/UIFlexibleTable/utils.d.ts +25 -25
  88. package/dist/components/UIFlexibleTable/utils.js +49 -49
  89. package/dist/components/UIFocusZone/UIFocusTrapZone.d.ts +22 -22
  90. package/dist/components/UIFocusZone/UIFocusTrapZone.js +33 -33
  91. package/dist/components/UIFocusZone/UIFocusZone.d.ts +23 -23
  92. package/dist/components/UIFocusZone/UIFocusZone.js +35 -35
  93. package/dist/components/UIFocusZone/index.d.ts +2 -2
  94. package/dist/components/UIFocusZone/index.js +18 -18
  95. package/dist/components/UIIcon/UIIcon.d.ts +24 -24
  96. package/dist/components/UIIcon/UIIcon.js +37 -37
  97. package/dist/components/UIIcon/UIIcon.scss +3 -3
  98. package/dist/components/UIIcon/index.d.ts +1 -1
  99. package/dist/components/UIIcon/index.js +17 -17
  100. package/dist/components/UIInput/UITextInput.d.ts +48 -48
  101. package/dist/components/UIInput/UITextInput.js +238 -238
  102. package/dist/components/UIInput/index.d.ts +1 -1
  103. package/dist/components/UIInput/index.js +17 -17
  104. package/dist/components/UILabel/UILabel.d.ts +30 -30
  105. package/dist/components/UILabel/UILabel.js +64 -64
  106. package/dist/components/UILabel/index.d.ts +1 -1
  107. package/dist/components/UILabel/index.js +17 -17
  108. package/dist/components/UILink/UILink.d.ts +25 -25
  109. package/dist/components/UILink/UILink.js +71 -71
  110. package/dist/components/UILink/index.d.ts +1 -1
  111. package/dist/components/UILink/index.js +17 -17
  112. package/dist/components/UIList/UIList.d.ts +31 -31
  113. package/dist/components/UIList/UIList.js +120 -120
  114. package/dist/components/UIList/UIList.scss +16 -16
  115. package/dist/components/UIList/index.d.ts +1 -1
  116. package/dist/components/UIList/index.js +17 -17
  117. package/dist/components/UILoader/UILoader.d.ts +27 -27
  118. package/dist/components/UILoader/UILoader.js +78 -78
  119. package/dist/components/UILoader/UILoader.scss +32 -32
  120. package/dist/components/UILoader/index.d.ts +1 -1
  121. package/dist/components/UILoader/index.js +17 -17
  122. package/dist/components/UIMessageBar/UIMessageBar.d.ts +25 -25
  123. package/dist/components/UIMessageBar/UIMessageBar.js +56 -56
  124. package/dist/components/UIMessageBar/index.d.ts +1 -1
  125. package/dist/components/UIMessageBar/index.js +17 -17
  126. package/dist/components/UIModal/UIModal.d.ts +23 -23
  127. package/dist/components/UIModal/UIModal.js +43 -43
  128. package/dist/components/UIModal/index.d.ts +1 -1
  129. package/dist/components/UIModal/index.js +17 -17
  130. package/dist/components/UIOverlay/UIOverlay.d.ts +22 -22
  131. package/dist/components/UIOverlay/UIOverlay.js +38 -38
  132. package/dist/components/UIOverlay/index.d.ts +1 -1
  133. package/dist/components/UIOverlay/index.js +17 -17
  134. package/dist/components/UIPersona/UIPersona.d.ts +27 -27
  135. package/dist/components/UIPersona/UIPersona.js +48 -48
  136. package/dist/components/UIPersona/index.d.ts +1 -1
  137. package/dist/components/UIPersona/index.js +17 -17
  138. package/dist/components/UISearchBox/UISearchBox.d.ts +22 -22
  139. package/dist/components/UISearchBox/UISearchBox.js +153 -153
  140. package/dist/components/UISearchBox/index.d.ts +3 -3
  141. package/dist/components/UISearchBox/index.js +17 -17
  142. package/dist/components/UISection/UISection.d.ts +34 -34
  143. package/dist/components/UISection/UISection.js +44 -44
  144. package/dist/components/UISection/UISection.scss +76 -76
  145. package/dist/components/UISection/UISections.d.ts +249 -249
  146. package/dist/components/UISection/UISections.js +707 -707
  147. package/dist/components/UISection/UISections.scss +62 -62
  148. package/dist/components/UISection/UISplitter.d.ts +96 -96
  149. package/dist/components/UISection/UISplitter.js +220 -220
  150. package/dist/components/UISection/UISplitter.scss +212 -212
  151. package/dist/components/UISection/_mixins.scss +14 -14
  152. package/dist/components/UISection/_variables.scss +1 -1
  153. package/dist/components/UISection/index.d.ts +3 -3
  154. package/dist/components/UISection/index.js +19 -19
  155. package/dist/components/UISeparator/UISeparator.d.ts +25 -25
  156. package/dist/components/UISeparator/UISeparator.js +65 -65
  157. package/dist/components/UISeparator/index.d.ts +1 -1
  158. package/dist/components/UISeparator/index.js +17 -17
  159. package/dist/components/UITable/UITable-helper.d.ts +79 -79
  160. package/dist/components/UITable/UITable-helper.js +259 -259
  161. package/dist/components/UITable/UITable.d.ts +212 -212
  162. package/dist/components/UITable/UITable.d.ts.map +1 -1
  163. package/dist/components/UITable/UITable.js +775 -773
  164. package/dist/components/UITable/UITable.js.map +1 -1
  165. package/dist/components/UITable/UITable.scss +194 -194
  166. package/dist/components/UITable/index.d.ts +2 -2
  167. package/dist/components/UITable/index.js +18 -18
  168. package/dist/components/UITable/types.d.ts +77 -77
  169. package/dist/components/UITable/types.js +28 -28
  170. package/dist/components/UITabs/UITabs.d.ts +28 -28
  171. package/dist/components/UITabs/UITabs.js +70 -70
  172. package/dist/components/UITabs/index.d.ts +1 -1
  173. package/dist/components/UITabs/index.js +17 -17
  174. package/dist/components/UIToggle/UIToggle.d.ts +39 -39
  175. package/dist/components/UIToggle/UIToggle.js +181 -181
  176. package/dist/components/UIToggle/index.d.ts +1 -1
  177. package/dist/components/UIToggle/index.js +17 -17
  178. package/dist/components/UIToggleGroup/UIToggleGroup.d.ts +31 -31
  179. package/dist/components/UIToggleGroup/UIToggleGroup.js +136 -136
  180. package/dist/components/UIToggleGroup/UIToggleGroup.scss +13 -13
  181. package/dist/components/UIToggleGroup/UIToggleGroup.types.d.ts +22 -22
  182. package/dist/components/UIToggleGroup/UIToggleGroup.types.js +2 -2
  183. package/dist/components/UIToggleGroup/UIToggleGroupOption/UIToggleGroupOption.d.ts +25 -25
  184. package/dist/components/UIToggleGroup/UIToggleGroupOption/UIToggleGroupOption.js +77 -77
  185. package/dist/components/UIToggleGroup/UIToggleGroupOption/UIToggleGroupOption.scss +74 -74
  186. package/dist/components/UIToggleGroup/UIToggleGroupOption/UIToggleGroupOption.types.d.ts +10 -10
  187. package/dist/components/UIToggleGroup/UIToggleGroupOption/UIToggleGroupOption.types.js +2 -2
  188. package/dist/components/UIToggleGroup/UIToggleGroupOption/index.d.ts +2 -2
  189. package/dist/components/UIToggleGroup/UIToggleGroupOption/index.js +18 -18
  190. package/dist/components/UIToggleGroup/index.d.ts +2 -2
  191. package/dist/components/UIToggleGroup/index.js +18 -18
  192. package/dist/components/UIToolbar/UIToolbar.d.ts +36 -36
  193. package/dist/components/UIToolbar/UIToolbar.js +104 -104
  194. package/dist/components/UIToolbar/UIToolbar.scss +48 -48
  195. package/dist/components/UIToolbar/UIToolbarColumn.d.ts +7 -7
  196. package/dist/components/UIToolbar/UIToolbarColumn.js +33 -33
  197. package/dist/components/UIToolbar/UIToolbarDivider.d.ts +27 -27
  198. package/dist/components/UIToolbar/UIToolbarDivider.js +56 -56
  199. package/dist/components/UIToolbar/index.d.ts +3 -3
  200. package/dist/components/UIToolbar/index.js +19 -19
  201. package/dist/components/UITooltip/UITooltip.d.ts +29 -29
  202. package/dist/components/UITooltip/UITooltip.js +77 -77
  203. package/dist/components/UITooltip/UITooltipUtils.d.ts +17 -17
  204. package/dist/components/UITooltip/UITooltipUtils.js +45 -45
  205. package/dist/components/UITooltip/index.d.ts +2 -2
  206. package/dist/components/UITooltip/index.js +18 -18
  207. package/dist/components/UITranslationInput/UIFormattedText.d.ts +46 -46
  208. package/dist/components/UITranslationInput/UIFormattedText.js +121 -121
  209. package/dist/components/UITranslationInput/UILoadButton.d.ts +52 -52
  210. package/dist/components/UITranslationInput/UILoadButton.js +109 -109
  211. package/dist/components/UITranslationInput/UILoadButton.scss +14 -14
  212. package/dist/components/UITranslationInput/UITranslationButton.d.ts +14 -14
  213. package/dist/components/UITranslationInput/UITranslationButton.js +88 -88
  214. package/dist/components/UITranslationInput/UITranslationButton.types.d.ts +67 -67
  215. package/dist/components/UITranslationInput/UITranslationButton.types.js +21 -21
  216. package/dist/components/UITranslationInput/UITranslationInput.d.ts +25 -25
  217. package/dist/components/UITranslationInput/UITranslationInput.js +169 -169
  218. package/dist/components/UITranslationInput/UITranslationInput.scss +40 -40
  219. package/dist/components/UITranslationInput/UITranslationUtils.d.ts +64 -64
  220. package/dist/components/UITranslationInput/UITranslationUtils.js +168 -168
  221. package/dist/components/UITranslationInput/defaults.d.ts +2 -2
  222. package/dist/components/UITranslationInput/defaults.js +15 -15
  223. package/dist/components/UITranslationInput/index.d.ts +2 -2
  224. package/dist/components/UITranslationInput/index.js +18 -18
  225. package/dist/components/UITreeDropdown/UITreeDropdown.d.ts +265 -265
  226. package/dist/components/UITreeDropdown/UITreeDropdown.js +661 -661
  227. package/dist/components/UITreeDropdown/UITreeDropdown.scss +64 -64
  228. package/dist/components/UITreeDropdown/index.d.ts +1 -1
  229. package/dist/components/UITreeDropdown/index.js +17 -17
  230. package/dist/components/UIVerticalDivider/UIVerticalDivider.d.ts +23 -23
  231. package/dist/components/UIVerticalDivider/UIVerticalDivider.js +41 -41
  232. package/dist/components/UIVerticalDivider/index.d.ts +1 -1
  233. package/dist/components/UIVerticalDivider/index.js +17 -17
  234. package/dist/components/UIVirtualList/UIAutoSizer.d.ts +22 -22
  235. package/dist/components/UIVirtualList/UIAutoSizer.js +33 -33
  236. package/dist/components/UIVirtualList/UICellMeasurer.d.ts +23 -23
  237. package/dist/components/UIVirtualList/UICellMeasurer.js +33 -33
  238. package/dist/components/UIVirtualList/UIVirtualList.d.ts +43 -43
  239. package/dist/components/UIVirtualList/UIVirtualList.js +70 -70
  240. package/dist/components/UIVirtualList/index.d.ts +3 -3
  241. package/dist/components/UIVirtualList/index.js +19 -19
  242. package/dist/components/index.d.ts +37 -37
  243. package/dist/components/index.js +53 -53
  244. package/dist/helper/ValidationMessage/MessageWrapper.d.ts +17 -17
  245. package/dist/helper/ValidationMessage/MessageWrapper.js +34 -34
  246. package/dist/helper/ValidationMessage/MessageWrapper.scss +44 -44
  247. package/dist/helper/ValidationMessage/index.d.ts +2 -2
  248. package/dist/helper/ValidationMessage/index.js +18 -18
  249. package/dist/helper/ValidationMessage/utils.d.ts +31 -31
  250. package/dist/helper/ValidationMessage/utils.js +121 -121
  251. package/dist/index.d.ts +2 -2
  252. package/dist/index.js +18 -18
  253. package/dist/styles/_mixins.scss +15 -15
  254. package/dist/styles/_typography.scss +72 -72
  255. package/dist/styles/_variables.scss +26 -26
  256. package/dist/styles/ui-components.scss +3 -3
  257. package/dist/utilities/DeepMerge.d.ts +10 -10
  258. package/dist/utilities/DeepMerge.js +48 -48
  259. package/dist/utilities/Focus.d.ts +4 -4
  260. package/dist/utilities/Focus.js +7 -7
  261. package/dist/utilities/Id.d.ts +2 -2
  262. package/dist/utilities/Id.js +5 -5
  263. package/dist/utilities/Keys.d.ts +2 -2
  264. package/dist/utilities/Keys.js +5 -5
  265. package/dist/utilities/index.d.ts +3 -3
  266. package/dist/utilities/index.js +19 -19
  267. package/package.json +1 -1
  268. package/storybook/{713.bc462d5f.iframe.bundle.js → 713.ec72f301.iframe.bundle.js} +2 -2
  269. package/storybook/iframe.html +17 -17
  270. package/storybook/index.html +118 -118
  271. package/storybook/{main.f8a470b7.iframe.bundle.js → main.4bf0e1ff.iframe.bundle.js} +2 -2
  272. package/storybook/project.json +1 -1
@@ -1,281 +1,281 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.UIFlexibleTable = void 0;
27
- const react_1 = __importStar(require("react"));
28
- const react_movable_1 = require("react-movable");
29
- const __1 = require("..");
30
- const UIFlexibleTableRow_1 = require("./UIFlexibleTableRow");
31
- const UIFlexibleTableRowNoData_1 = require("./UIFlexibleTableRowNoData");
32
- const types_1 = require("./types");
33
- require("./UIFlexibleTable.scss");
34
- const utils_1 = require("./utils");
35
- const RowActions_1 = require("./RowActions");
36
- const RowData_1 = require("./RowData");
37
- /**
38
- * UIFlexibleTable component.
39
- *
40
- * @exports
41
- * @param {UIFlexibleTableProps<T>} props
42
- * @returns {React.ReactElement}
43
- */
44
- function UIFlexibleTable(props) {
45
- const [currentFocusedRowIndex, setCurrentFocusedRowIndex] = (0, react_1.useState)();
46
- const [currentFocusedRowAction, setCurrentFocusedRowAction] = (0, react_1.useState)('');
47
- const [isInRowLayout, setIsInRowLayout] = (0, react_1.useState)(props.layout === types_1.UIFlexibleTableLayout.InlineFlex);
48
- const [titleRowRightPadding, setTitleRowRightPadding] = (0, react_1.useState)(0);
49
- const [rowToNavigate, setRowToNavigate] = (0, react_1.useState)();
50
- const scrollableElement = (0, react_1.useRef)(null);
51
- const tableRootElementRef = (0, react_1.useRef)(null);
52
- const contentElementRef = (0, react_1.useRef)(null);
53
- const tableBodyElementRef = (0, react_1.useRef)(null);
54
- const scrollTargetRef = (0, react_1.useRef)(null);
55
- const onResize = (element) => {
56
- setIsInRowLayout(props.layout === types_1.UIFlexibleTableLayout.InlineFlex &&
57
- isRowFitsContainer(props.inRowLayoutMinWidth, tableRootElementRef));
58
- const rootContainer = tableRootElementRef.current;
59
- if (element && props.onContentSizeChange && rootContainer) {
60
- props.onContentSizeChange({ height: rootContainer.clientHeight, width: rootContainer.clientWidth });
61
- }
62
- };
63
- const onScrollBarStateChange = () => {
64
- const content = contentElementRef
65
- .current;
66
- const scrollableContent = scrollableElement.current;
67
- const scrollBarSize = content && scrollableContent ? content.clientWidth - scrollableContent.clientWidth : 0;
68
- setTitleRowRightPadding(scrollBarSize);
69
- };
70
- const [resizeObserver] = (0, react_1.useState)(new ResizeObserver(onResize));
71
- const scrollBarObserver = (0, react_1.useRef)(new ResizeObserver(onScrollBarStateChange));
72
- (0, react_1.useEffect)(() => {
73
- if (tableRootElementRef.current) {
74
- resizeObserver.observe(tableRootElementRef.current);
75
- onResize();
76
- }
77
- }, [tableRootElementRef.current]);
78
- (0, react_1.useEffect)(() => {
79
- if (currentFocusedRowIndex !== undefined) {
80
- restoreFocus(currentFocusedRowAction, currentFocusedRowIndex, props.id);
81
- }
82
- if (!props.isContentLoading && scrollTargetRef.current) {
83
- scrollTargetRef.current.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
84
- setRowToNavigate(undefined);
85
- }
86
- }, [props.isContentLoading, props.rows]);
87
- (0, react_1.useEffect)(() => {
88
- return () => {
89
- resizeObserver.disconnect();
90
- };
91
- }, []);
92
- (0, react_1.useEffect)(() => {
93
- onResize();
94
- }, [props.layout, props.maxWidth]);
95
- const reorderTable = (oldIndex, newIndex) => {
96
- if (props.onTableReorder) {
97
- const result = props.onTableReorder({ oldIndex, newIndex });
98
- if (typeof result === 'object' && result.isDropDisabled) {
99
- return;
100
- }
101
- setCurrentFocusedRowIndex(newIndex);
102
- }
103
- };
104
- const addNewRow = () => {
105
- if (props.addRowButton?.onClick) {
106
- const result = props.addRowButton.onClick();
107
- if (result instanceof Promise) {
108
- result.then((data) => setRowToNavigate(data?.scrollToRow)).catch(() => undefined);
109
- }
110
- else {
111
- setRowToNavigate(result?.scrollToRow);
112
- }
113
- }
114
- };
115
- const onFocusRowAction = (rowIndex, actionName = '') => {
116
- setCurrentFocusedRowIndex(rowIndex);
117
- setCurrentFocusedRowAction(actionName);
118
- };
119
- const renderRowActions = (rowIndex) => {
120
- return (react_1.default.createElement(RowActions_1.RowActions, { rowIndex: rowIndex, tableProps: props, onFocusRowAction: (actionName) => onFocusRowAction(rowIndex, actionName), onMoveDownClick: () => reorderTable(rowIndex, rowIndex + 1), onMoveUpClick: () => reorderTable(rowIndex, rowIndex - 1) }));
121
- };
122
- const renderRowData = (params) => (react_1.default.createElement(RowData_1.RowDataCells, { key: params.index || 0, isInRowLayout: isInRowLayout, row: params.value, rowIndex: params.index || 0, tableProps: props }));
123
- /**
124
- * Renders row.
125
- *
126
- * @param {NodeDragAndDropSortingParams} params
127
- * @returns {React.ReactElement<UIFlexibleTableRowProps<T>, 'UIFlexibleTableRow'>}
128
- */
129
- function renderRow(params) {
130
- const rowIndex = params.index;
131
- const { isDropWarning } = props.onRenderRowContainer
132
- ? props.onRenderRowContainer({
133
- readonly: !!props.readonly,
134
- rowIndex,
135
- isDragged: params.isDragged
136
- })
137
- : { isDropWarning: false };
138
- return (react_1.default.createElement(UIFlexibleTableRow_1.UIFlexibleTableRow, { key: `row-${rowIndex}`, dragAndDropParams: params, rowActions: renderRowActions(rowIndex || 0), rowData: renderRowData(params), tableProps: props, rowRef: typeof rowToNavigate === 'number' && rowIndex === rowToNavigate ? scrollTargetRef : undefined, className: isDropWarning ? 'highlight-drop-warning' : '' }));
139
- }
140
- const renderTable = (params) => {
141
- const ulElement = params.props.ref?.current;
142
- let { children } = params;
143
- if (ulElement && scrollableElement.current !== ulElement) {
144
- scrollableElement.current = ulElement;
145
- scrollBarObserver.current.observe(ulElement);
146
- }
147
- if (props.rows.length === 0 && props.noDataText) {
148
- children = (react_1.default.createElement(UIFlexibleTableRowNoData_1.UIFlexibleTableRowNoData, { noRowBackground: props.noRowBackground, reverseBackground: props.reverseBackground }, props.noDataText));
149
- }
150
- const getCursorStyle = () => {
151
- let cursorIcon = 'default';
152
- if (props.onTableReorder) {
153
- cursorIcon = params.isDragged ? 'grabbing' : 'grab';
154
- }
155
- return cursorIcon;
156
- };
157
- return (react_1.default.createElement("ul", { ref: params.props.ref, className: `flexible-table-content-table${params.isDragged ? ' dragged' : ''}`, style: {
158
- cursor: getCursorStyle(),
159
- maxHeight: props.maxScrollableContentHeight ? `${props.maxScrollableContentHeight}px` : undefined
160
- } }, children));
161
- };
162
- const tableBody = getTableBody(props, renderTable, renderRow, reorderTable, tableBodyElementRef);
163
- const tableClasses = (0, utils_1.composeClassNames)('flexible-table', [
164
- props.layout === types_1.UIFlexibleTableLayout.InlineFlex ? 'inline-layout' : 'wrapping-layout',
165
- props.readonly ? 'readonly' : ''
166
- ]);
167
- const showTitleRow = props.showColumnTitles && isInRowLayout && !props.showColumnTitlesInCells;
168
- const tableRootElementStyle = {
169
- maxWidth: props.maxWidth ? `${props.maxWidth}px` : '100%'
170
- };
171
- const getCustomTableActions = (actionsGenerator) => {
172
- if (actionsGenerator) {
173
- const customActions = actionsGenerator({ readonly: !!props.readonly });
174
- return customActions.map((actionElement) => (react_1.default.createElement(react_1.default.Fragment, { key: `table-action-${actionElement.key}` },
175
- react_1.default.createElement("div", { className: "flexible-table-header-action" }, actionElement))));
176
- }
177
- return [];
178
- };
179
- const primaryTableActions = getCustomTableActions(props.onRenderPrimaryTableActions);
180
- const secondaryTableActions = getCustomTableActions(props.onRenderSecondaryTableActions);
181
- const isEmptyHeader = !props.addRowButton && primaryTableActions.length + secondaryTableActions.length === 0;
182
- const contentClasses = (0, utils_1.composeClassNames)('flexible-table-content', [
183
- props.rows.length === 0 && !props.noDataText ? 'empty-table' : '',
184
- props.isContentLoading ? 'loading' : '',
185
- isEmptyHeader ? 'empty-table-header' : ''
186
- ]);
187
- return (react_1.default.createElement("div", { className: tableClasses, ref: tableRootElementRef, id: props.id, style: tableRootElementStyle, onBlur: () => {
188
- onFocusRowAction();
189
- } },
190
- isEmptyHeader ? (react_1.default.createElement(react_1.default.Fragment, null)) : (react_1.default.createElement("div", { className: "flexible-table-header" },
191
- react_1.default.createElement("div", { className: "flexible-table-header-primary-actions" },
192
- props.addRowButton && (react_1.default.createElement("div", { className: "flexible-table-header-action" },
193
- react_1.default.createElement(__1.UIDefaultButton, { iconProps: { iconName: 'Add' }, className: "flexible-table-btn-add", id: (0, utils_1.getTableActionButtonId)(props.id, 'add-row'), primary: true, disabled: props.isAddItemDisabled || props.isContentLoading || props.readonly, onClick: addNewRow, title: props.addRowButton.title }, props.addRowButton.label))),
194
- primaryTableActions),
195
- react_1.default.createElement("div", { className: "flexible-table-header-secondary-actions" }, secondaryTableActions))),
196
- react_1.default.createElement("div", { className: contentClasses, ref: contentElementRef },
197
- showTitleRow && (0, UIFlexibleTableRow_1.renderTitleRow)(props, titleRowRightPadding),
198
- tableBody,
199
- props.isContentLoading && (react_1.default.createElement(__1.UILoader, { className: 'uiLoaderXLarge flexible-table-overlay-loader', blockDOM: true })))));
200
- }
201
- exports.UIFlexibleTable = UIFlexibleTable;
202
- /**
203
- * Gets table body.
204
- *
205
- * @param {UIFlexibleTableProps<T>} props
206
- * @param {(params: { children: React.ReactNode; isDragged: boolean; props: { ref?: React.RefObject<any>; }; }) => React.ReactNode} renderTable
207
- * @param {( params: NodeDragAndDropSortingParams) => React.ReactElement<UIFlexibleTableRowProps<T>, 'UIFlexibleTableRow'>} renderRow
208
- * @param { (oldIndex: number, newIndex: number) => void} reorderTable
209
- * @param {React.MutableRefObject<any>} tableBodyElementRef
210
- * @returns {React.ReactNode}
211
- */
212
- function getTableBody(props, renderTable, renderRow, reorderTable, tableBodyElementRef) {
213
- let tableBody;
214
- const { rows } = props.onBeforeTableRender ? props.onBeforeTableRender({ rows: props.rows }) : { rows: props.rows };
215
- if (rows.length > 0 && props.onTableReorder && !props.readonly) {
216
- tableBody = (react_1.default.createElement(react_movable_1.List, { values: rows, lockVertically: props.lockVertically, onChange: (params) => reorderTable(params.oldIndex, params.newIndex), renderList: (params) => renderTable(params), renderItem: (params) => renderRow(params), removableByMove: true, beforeDrag: props.onStartDragging }));
217
- }
218
- else {
219
- const children = props.rows.map((row, index) => {
220
- const rowProps = {
221
- key: index
222
- };
223
- const dragAndDropParams = {
224
- index,
225
- isDragged: false,
226
- isOutOfBounds: false,
227
- isSelected: false,
228
- props: rowProps,
229
- value: row
230
- };
231
- return renderRow(dragAndDropParams);
232
- });
233
- tableBody = renderTable({ children, isDragged: false, props: { ...props, ref: tableBodyElementRef } });
234
- }
235
- return tableBody;
236
- }
237
- /**
238
- * Restores focus.
239
- *
240
- * @param {string} currentFocusedRowAction
241
- * @param {number | undefined} currentFocusedRowIndex
242
- * @param {string} tableId
243
- */
244
- function restoreFocus(currentFocusedRowAction, currentFocusedRowIndex, tableId) {
245
- if (currentFocusedRowAction) {
246
- let actionElement = document.getElementById((0, utils_1.getRowActionButtonId)(tableId, currentFocusedRowIndex, currentFocusedRowAction));
247
- if (actionElement) {
248
- if (!actionElement.hasAttribute('disabled')) {
249
- actionElement.focus();
250
- }
251
- else {
252
- if (currentFocusedRowAction === 'up') {
253
- actionElement = document.getElementById((0, utils_1.getRowActionButtonId)(tableId, currentFocusedRowIndex, 'down'));
254
- }
255
- else {
256
- actionElement = document.getElementById((0, utils_1.getRowActionButtonId)(tableId, currentFocusedRowIndex, 'up'));
257
- }
258
- if (actionElement) {
259
- actionElement.focus();
260
- }
261
- }
262
- }
263
- }
264
- }
265
- /**
266
- * Check row fit container.
267
- *
268
- * @param {number | undefined} propThreshold
269
- * @param {React.MutableRefObject<HTMLDivElement | null>} containerRef
270
- * @returns {boolean}
271
- */
272
- function isRowFitsContainer(propThreshold, containerRef) {
273
- let result = true;
274
- const inRowMinWidth = propThreshold ?? 600;
275
- const containerWidth = containerRef?.current?.clientWidth ?? 0;
276
- if (containerWidth) {
277
- result = containerWidth >= inRowMinWidth;
278
- }
279
- return result;
280
- }
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.UIFlexibleTable = void 0;
27
+ const react_1 = __importStar(require("react"));
28
+ const react_movable_1 = require("react-movable");
29
+ const __1 = require("..");
30
+ const UIFlexibleTableRow_1 = require("./UIFlexibleTableRow");
31
+ const UIFlexibleTableRowNoData_1 = require("./UIFlexibleTableRowNoData");
32
+ const types_1 = require("./types");
33
+ require("./UIFlexibleTable.scss");
34
+ const utils_1 = require("./utils");
35
+ const RowActions_1 = require("./RowActions");
36
+ const RowData_1 = require("./RowData");
37
+ /**
38
+ * UIFlexibleTable component.
39
+ *
40
+ * @exports
41
+ * @param {UIFlexibleTableProps<T>} props
42
+ * @returns {React.ReactElement}
43
+ */
44
+ function UIFlexibleTable(props) {
45
+ const [currentFocusedRowIndex, setCurrentFocusedRowIndex] = (0, react_1.useState)();
46
+ const [currentFocusedRowAction, setCurrentFocusedRowAction] = (0, react_1.useState)('');
47
+ const [isInRowLayout, setIsInRowLayout] = (0, react_1.useState)(props.layout === types_1.UIFlexibleTableLayout.InlineFlex);
48
+ const [titleRowRightPadding, setTitleRowRightPadding] = (0, react_1.useState)(0);
49
+ const [rowToNavigate, setRowToNavigate] = (0, react_1.useState)();
50
+ const scrollableElement = (0, react_1.useRef)(null);
51
+ const tableRootElementRef = (0, react_1.useRef)(null);
52
+ const contentElementRef = (0, react_1.useRef)(null);
53
+ const tableBodyElementRef = (0, react_1.useRef)(null);
54
+ const scrollTargetRef = (0, react_1.useRef)(null);
55
+ const onResize = (element) => {
56
+ setIsInRowLayout(props.layout === types_1.UIFlexibleTableLayout.InlineFlex &&
57
+ isRowFitsContainer(props.inRowLayoutMinWidth, tableRootElementRef));
58
+ const rootContainer = tableRootElementRef.current;
59
+ if (element && props.onContentSizeChange && rootContainer) {
60
+ props.onContentSizeChange({ height: rootContainer.clientHeight, width: rootContainer.clientWidth });
61
+ }
62
+ };
63
+ const onScrollBarStateChange = () => {
64
+ const content = contentElementRef
65
+ .current;
66
+ const scrollableContent = scrollableElement.current;
67
+ const scrollBarSize = content && scrollableContent ? content.clientWidth - scrollableContent.clientWidth : 0;
68
+ setTitleRowRightPadding(scrollBarSize);
69
+ };
70
+ const [resizeObserver] = (0, react_1.useState)(new ResizeObserver(onResize));
71
+ const scrollBarObserver = (0, react_1.useRef)(new ResizeObserver(onScrollBarStateChange));
72
+ (0, react_1.useEffect)(() => {
73
+ if (tableRootElementRef.current) {
74
+ resizeObserver.observe(tableRootElementRef.current);
75
+ onResize();
76
+ }
77
+ }, [tableRootElementRef.current]);
78
+ (0, react_1.useEffect)(() => {
79
+ if (currentFocusedRowIndex !== undefined) {
80
+ restoreFocus(currentFocusedRowAction, currentFocusedRowIndex, props.id);
81
+ }
82
+ if (!props.isContentLoading && scrollTargetRef.current) {
83
+ scrollTargetRef.current.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
84
+ setRowToNavigate(undefined);
85
+ }
86
+ }, [props.isContentLoading, props.rows]);
87
+ (0, react_1.useEffect)(() => {
88
+ return () => {
89
+ resizeObserver.disconnect();
90
+ };
91
+ }, []);
92
+ (0, react_1.useEffect)(() => {
93
+ onResize();
94
+ }, [props.layout, props.maxWidth]);
95
+ const reorderTable = (oldIndex, newIndex) => {
96
+ if (props.onTableReorder) {
97
+ const result = props.onTableReorder({ oldIndex, newIndex });
98
+ if (typeof result === 'object' && result.isDropDisabled) {
99
+ return;
100
+ }
101
+ setCurrentFocusedRowIndex(newIndex);
102
+ }
103
+ };
104
+ const addNewRow = () => {
105
+ if (props.addRowButton?.onClick) {
106
+ const result = props.addRowButton.onClick();
107
+ if (result instanceof Promise) {
108
+ result.then((data) => setRowToNavigate(data?.scrollToRow)).catch(() => undefined);
109
+ }
110
+ else {
111
+ setRowToNavigate(result?.scrollToRow);
112
+ }
113
+ }
114
+ };
115
+ const onFocusRowAction = (rowIndex, actionName = '') => {
116
+ setCurrentFocusedRowIndex(rowIndex);
117
+ setCurrentFocusedRowAction(actionName);
118
+ };
119
+ const renderRowActions = (rowIndex) => {
120
+ return (react_1.default.createElement(RowActions_1.RowActions, { rowIndex: rowIndex, tableProps: props, onFocusRowAction: (actionName) => onFocusRowAction(rowIndex, actionName), onMoveDownClick: () => reorderTable(rowIndex, rowIndex + 1), onMoveUpClick: () => reorderTable(rowIndex, rowIndex - 1) }));
121
+ };
122
+ const renderRowData = (params) => (react_1.default.createElement(RowData_1.RowDataCells, { key: params.index || 0, isInRowLayout: isInRowLayout, row: params.value, rowIndex: params.index || 0, tableProps: props }));
123
+ /**
124
+ * Renders row.
125
+ *
126
+ * @param {NodeDragAndDropSortingParams} params
127
+ * @returns {React.ReactElement<UIFlexibleTableRowProps<T>, 'UIFlexibleTableRow'>}
128
+ */
129
+ function renderRow(params) {
130
+ const rowIndex = params.index;
131
+ const { isDropWarning } = props.onRenderRowContainer
132
+ ? props.onRenderRowContainer({
133
+ readonly: !!props.readonly,
134
+ rowIndex,
135
+ isDragged: params.isDragged
136
+ })
137
+ : { isDropWarning: false };
138
+ return (react_1.default.createElement(UIFlexibleTableRow_1.UIFlexibleTableRow, { key: `row-${rowIndex}`, dragAndDropParams: params, rowActions: renderRowActions(rowIndex || 0), rowData: renderRowData(params), tableProps: props, rowRef: typeof rowToNavigate === 'number' && rowIndex === rowToNavigate ? scrollTargetRef : undefined, className: isDropWarning ? 'highlight-drop-warning' : '' }));
139
+ }
140
+ const renderTable = (params) => {
141
+ const ulElement = params.props.ref?.current;
142
+ let { children } = params;
143
+ if (ulElement && scrollableElement.current !== ulElement) {
144
+ scrollableElement.current = ulElement;
145
+ scrollBarObserver.current.observe(ulElement);
146
+ }
147
+ if (props.rows.length === 0 && props.noDataText) {
148
+ children = (react_1.default.createElement(UIFlexibleTableRowNoData_1.UIFlexibleTableRowNoData, { noRowBackground: props.noRowBackground, reverseBackground: props.reverseBackground }, props.noDataText));
149
+ }
150
+ const getCursorStyle = () => {
151
+ let cursorIcon = 'default';
152
+ if (props.onTableReorder) {
153
+ cursorIcon = params.isDragged ? 'grabbing' : 'grab';
154
+ }
155
+ return cursorIcon;
156
+ };
157
+ return (react_1.default.createElement("ul", { ref: params.props.ref, className: `flexible-table-content-table${params.isDragged ? ' dragged' : ''}`, style: {
158
+ cursor: getCursorStyle(),
159
+ maxHeight: props.maxScrollableContentHeight ? `${props.maxScrollableContentHeight}px` : undefined
160
+ } }, children));
161
+ };
162
+ const tableBody = getTableBody(props, renderTable, renderRow, reorderTable, tableBodyElementRef);
163
+ const tableClasses = (0, utils_1.composeClassNames)('flexible-table', [
164
+ props.layout === types_1.UIFlexibleTableLayout.InlineFlex ? 'inline-layout' : 'wrapping-layout',
165
+ props.readonly ? 'readonly' : ''
166
+ ]);
167
+ const showTitleRow = props.showColumnTitles && isInRowLayout && !props.showColumnTitlesInCells;
168
+ const tableRootElementStyle = {
169
+ maxWidth: props.maxWidth ? `${props.maxWidth}px` : '100%'
170
+ };
171
+ const getCustomTableActions = (actionsGenerator) => {
172
+ if (actionsGenerator) {
173
+ const customActions = actionsGenerator({ readonly: !!props.readonly });
174
+ return customActions.map((actionElement) => (react_1.default.createElement(react_1.default.Fragment, { key: `table-action-${actionElement.key}` },
175
+ react_1.default.createElement("div", { className: "flexible-table-header-action" }, actionElement))));
176
+ }
177
+ return [];
178
+ };
179
+ const primaryTableActions = getCustomTableActions(props.onRenderPrimaryTableActions);
180
+ const secondaryTableActions = getCustomTableActions(props.onRenderSecondaryTableActions);
181
+ const isEmptyHeader = !props.addRowButton && primaryTableActions.length + secondaryTableActions.length === 0;
182
+ const contentClasses = (0, utils_1.composeClassNames)('flexible-table-content', [
183
+ props.rows.length === 0 && !props.noDataText ? 'empty-table' : '',
184
+ props.isContentLoading ? 'loading' : '',
185
+ isEmptyHeader ? 'empty-table-header' : ''
186
+ ]);
187
+ return (react_1.default.createElement("div", { className: tableClasses, ref: tableRootElementRef, id: props.id, style: tableRootElementStyle, onBlur: () => {
188
+ onFocusRowAction();
189
+ } },
190
+ isEmptyHeader ? (react_1.default.createElement(react_1.default.Fragment, null)) : (react_1.default.createElement("div", { className: "flexible-table-header" },
191
+ react_1.default.createElement("div", { className: "flexible-table-header-primary-actions" },
192
+ props.addRowButton && (react_1.default.createElement("div", { className: "flexible-table-header-action" },
193
+ react_1.default.createElement(__1.UIDefaultButton, { iconProps: { iconName: 'Add' }, className: "flexible-table-btn-add", id: (0, utils_1.getTableActionButtonId)(props.id, 'add-row'), primary: true, disabled: props.isAddItemDisabled || props.isContentLoading || props.readonly, onClick: addNewRow, title: props.addRowButton.title }, props.addRowButton.label))),
194
+ primaryTableActions),
195
+ react_1.default.createElement("div", { className: "flexible-table-header-secondary-actions" }, secondaryTableActions))),
196
+ react_1.default.createElement("div", { className: contentClasses, ref: contentElementRef },
197
+ showTitleRow && (0, UIFlexibleTableRow_1.renderTitleRow)(props, titleRowRightPadding),
198
+ tableBody,
199
+ props.isContentLoading && (react_1.default.createElement(__1.UILoader, { className: 'uiLoaderXLarge flexible-table-overlay-loader', blockDOM: true })))));
200
+ }
201
+ exports.UIFlexibleTable = UIFlexibleTable;
202
+ /**
203
+ * Gets table body.
204
+ *
205
+ * @param {UIFlexibleTableProps<T>} props
206
+ * @param {(params: { children: React.ReactNode; isDragged: boolean; props: { ref?: React.RefObject<any>; }; }) => React.ReactNode} renderTable
207
+ * @param {( params: NodeDragAndDropSortingParams) => React.ReactElement<UIFlexibleTableRowProps<T>, 'UIFlexibleTableRow'>} renderRow
208
+ * @param { (oldIndex: number, newIndex: number) => void} reorderTable
209
+ * @param {React.MutableRefObject<any>} tableBodyElementRef
210
+ * @returns {React.ReactNode}
211
+ */
212
+ function getTableBody(props, renderTable, renderRow, reorderTable, tableBodyElementRef) {
213
+ let tableBody;
214
+ const { rows } = props.onBeforeTableRender ? props.onBeforeTableRender({ rows: props.rows }) : { rows: props.rows };
215
+ if (rows.length > 0 && props.onTableReorder && !props.readonly) {
216
+ tableBody = (react_1.default.createElement(react_movable_1.List, { values: rows, lockVertically: props.lockVertically, onChange: (params) => reorderTable(params.oldIndex, params.newIndex), renderList: (params) => renderTable(params), renderItem: (params) => renderRow(params), removableByMove: true, beforeDrag: props.onStartDragging }));
217
+ }
218
+ else {
219
+ const children = props.rows.map((row, index) => {
220
+ const rowProps = {
221
+ key: index
222
+ };
223
+ const dragAndDropParams = {
224
+ index,
225
+ isDragged: false,
226
+ isOutOfBounds: false,
227
+ isSelected: false,
228
+ props: rowProps,
229
+ value: row
230
+ };
231
+ return renderRow(dragAndDropParams);
232
+ });
233
+ tableBody = renderTable({ children, isDragged: false, props: { ...props, ref: tableBodyElementRef } });
234
+ }
235
+ return tableBody;
236
+ }
237
+ /**
238
+ * Restores focus.
239
+ *
240
+ * @param {string} currentFocusedRowAction
241
+ * @param {number | undefined} currentFocusedRowIndex
242
+ * @param {string} tableId
243
+ */
244
+ function restoreFocus(currentFocusedRowAction, currentFocusedRowIndex, tableId) {
245
+ if (currentFocusedRowAction) {
246
+ let actionElement = document.getElementById((0, utils_1.getRowActionButtonId)(tableId, currentFocusedRowIndex, currentFocusedRowAction));
247
+ if (actionElement) {
248
+ if (!actionElement.hasAttribute('disabled')) {
249
+ actionElement.focus();
250
+ }
251
+ else {
252
+ if (currentFocusedRowAction === 'up') {
253
+ actionElement = document.getElementById((0, utils_1.getRowActionButtonId)(tableId, currentFocusedRowIndex, 'down'));
254
+ }
255
+ else {
256
+ actionElement = document.getElementById((0, utils_1.getRowActionButtonId)(tableId, currentFocusedRowIndex, 'up'));
257
+ }
258
+ if (actionElement) {
259
+ actionElement.focus();
260
+ }
261
+ }
262
+ }
263
+ }
264
+ }
265
+ /**
266
+ * Check row fit container.
267
+ *
268
+ * @param {number | undefined} propThreshold
269
+ * @param {React.MutableRefObject<HTMLDivElement | null>} containerRef
270
+ * @returns {boolean}
271
+ */
272
+ function isRowFitsContainer(propThreshold, containerRef) {
273
+ let result = true;
274
+ const inRowMinWidth = propThreshold ?? 600;
275
+ const containerWidth = containerRef?.current?.clientWidth ?? 0;
276
+ if (containerWidth) {
277
+ result = containerWidth >= inRowMinWidth;
278
+ }
279
+ return result;
280
+ }
281
281
  //# sourceMappingURL=UIFlexibleTable.js.map