@sap-ux/ui-components 1.13.5 → 1.14.1

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 (263) hide show
  1. package/dist/components/Icons.d.ts +150 -150
  2. package/dist/components/Icons.js +628 -628
  3. package/dist/components/UIActionCallout/UIActionCallout.d.ts +64 -64
  4. package/dist/components/UIActionCallout/UIActionCallout.js +67 -67
  5. package/dist/components/UIActionCallout/index.d.ts +1 -1
  6. package/dist/components/UIActionCallout/index.js +17 -17
  7. package/dist/components/UIBreadcrumb/UIBreadcrumb.d.ts +23 -23
  8. package/dist/components/UIBreadcrumb/UIBreadcrumb.js +38 -38
  9. package/dist/components/UIBreadcrumb/index.d.ts +1 -1
  10. package/dist/components/UIBreadcrumb/index.js +17 -17
  11. package/dist/components/UIButton/UIActionButton.d.ts +23 -23
  12. package/dist/components/UIButton/UIActionButton.js +89 -89
  13. package/dist/components/UIButton/UIDefaultButton.d.ts +41 -23
  14. package/dist/components/UIButton/UIDefaultButton.d.ts.map +1 -1
  15. package/dist/components/UIButton/UIDefaultButton.js +255 -237
  16. package/dist/components/UIButton/UIDefaultButton.js.map +1 -1
  17. package/dist/components/UIButton/UIIconButton.d.ts +37 -37
  18. package/dist/components/UIButton/UIIconButton.js +106 -106
  19. package/dist/components/UIButton/UISmallButton.d.ts +34 -34
  20. package/dist/components/UIButton/UISmallButton.js +115 -115
  21. package/dist/components/UIButton/UISplitButton.d.ts +44 -44
  22. package/dist/components/UIButton/UISplitButton.js +86 -86
  23. package/dist/components/UIButton/index.d.ts +7 -7
  24. package/dist/components/UIButton/index.js +21 -21
  25. package/dist/components/UICallout/CalloutCollisionTransform.d.ts +54 -54
  26. package/dist/components/UICallout/CalloutCollisionTransform.js +160 -160
  27. package/dist/components/UICallout/UICallout.d.ts +48 -48
  28. package/dist/components/UICallout/UICallout.js +122 -122
  29. package/dist/components/UICallout/index.d.ts +2 -2
  30. package/dist/components/UICallout/index.js +18 -18
  31. package/dist/components/UICheckbox/UICheckbox.d.ts +34 -34
  32. package/dist/components/UICheckbox/UICheckbox.js +135 -135
  33. package/dist/components/UICheckbox/index.d.ts +1 -1
  34. package/dist/components/UICheckbox/index.js +17 -17
  35. package/dist/components/UIChoiceGroup/UIChoiceGroup.d.ts +28 -28
  36. package/dist/components/UIChoiceGroup/UIChoiceGroup.js +182 -182
  37. package/dist/components/UIChoiceGroup/index.d.ts +1 -1
  38. package/dist/components/UIChoiceGroup/index.js +17 -17
  39. package/dist/components/UIComboBox/UIComboBox.d.ts +208 -200
  40. package/dist/components/UIComboBox/UIComboBox.d.ts.map +1 -1
  41. package/dist/components/UIComboBox/UIComboBox.js +563 -541
  42. package/dist/components/UIComboBox/UIComboBox.js.map +1 -1
  43. package/dist/components/UIComboBox/index.d.ts +1 -1
  44. package/dist/components/UIComboBox/index.js +17 -17
  45. package/dist/components/UIContextualMenu/UIContextualMenu.d.ts +31 -31
  46. package/dist/components/UIContextualMenu/UIContextualMenu.js +126 -126
  47. package/dist/components/UIContextualMenu/UIHighlightMenuOption.d.ts +19 -19
  48. package/dist/components/UIContextualMenu/UIHighlightMenuOption.js +50 -50
  49. package/dist/components/UIContextualMenu/index.d.ts +2 -2
  50. package/dist/components/UIContextualMenu/index.js +18 -18
  51. package/dist/components/UICreateSelect/UICreateSelect.d.ts +36 -36
  52. package/dist/components/UICreateSelect/UICreateSelect.js +172 -172
  53. package/dist/components/UICreateSelect/index.d.ts +1 -1
  54. package/dist/components/UICreateSelect/index.js +17 -17
  55. package/dist/components/UIDatePicker/UIDatePicker.d.ts +49 -49
  56. package/dist/components/UIDatePicker/UIDatePicker.js +72 -72
  57. package/dist/components/UIDatePicker/index.d.ts +1 -1
  58. package/dist/components/UIDatePicker/index.js +17 -17
  59. package/dist/components/UIDialog/UIDialog.d.ts +118 -118
  60. package/dist/components/UIDialog/UIDialog.js +281 -281
  61. package/dist/components/UIDialog/index.d.ts +1 -1
  62. package/dist/components/UIDialog/index.js +17 -17
  63. package/dist/components/UIDropdown/UIDropdown.d.ts +94 -94
  64. package/dist/components/UIDropdown/UIDropdown.js +224 -224
  65. package/dist/components/UIDropdown/index.d.ts +2 -2
  66. package/dist/components/UIDropdown/index.js +18 -18
  67. package/dist/components/UIDropdown/utils.d.ts +20 -20
  68. package/dist/components/UIDropdown/utils.js +43 -43
  69. package/dist/components/UIFlexibleTable/RowActions.d.ts +16 -16
  70. package/dist/components/UIFlexibleTable/RowActions.js +73 -73
  71. package/dist/components/UIFlexibleTable/RowData.d.ts +16 -16
  72. package/dist/components/UIFlexibleTable/RowData.js +111 -111
  73. package/dist/components/UIFlexibleTable/UIFlexibleTable.d.ts +11 -11
  74. package/dist/components/UIFlexibleTable/UIFlexibleTable.js +280 -280
  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 +219 -219
  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 +143 -143
  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/index.d.ts +1 -1
  98. package/dist/components/UIIcon/index.js +17 -17
  99. package/dist/components/UIInput/UITextInput.d.ts +51 -51
  100. package/dist/components/UIInput/UITextInput.js +244 -244
  101. package/dist/components/UIInput/index.d.ts +1 -1
  102. package/dist/components/UIInput/index.js +17 -17
  103. package/dist/components/UILabel/UILabel.d.ts +30 -30
  104. package/dist/components/UILabel/UILabel.js +64 -64
  105. package/dist/components/UILabel/index.d.ts +1 -1
  106. package/dist/components/UILabel/index.js +17 -17
  107. package/dist/components/UILink/UILink.d.ts +25 -25
  108. package/dist/components/UILink/UILink.js +71 -71
  109. package/dist/components/UILink/index.d.ts +1 -1
  110. package/dist/components/UILink/index.js +17 -17
  111. package/dist/components/UIList/UIList.d.ts +31 -31
  112. package/dist/components/UIList/UIList.js +120 -120
  113. package/dist/components/UIList/index.d.ts +1 -1
  114. package/dist/components/UIList/index.js +17 -17
  115. package/dist/components/UILoader/UILoader.d.ts +27 -27
  116. package/dist/components/UILoader/UILoader.js +78 -78
  117. package/dist/components/UILoader/index.d.ts +1 -1
  118. package/dist/components/UILoader/index.js +17 -17
  119. package/dist/components/UIMessageBar/UIMessageBar.d.ts +25 -25
  120. package/dist/components/UIMessageBar/UIMessageBar.js +56 -56
  121. package/dist/components/UIMessageBar/index.d.ts +1 -1
  122. package/dist/components/UIMessageBar/index.js +17 -17
  123. package/dist/components/UIModal/UIModal.d.ts +23 -23
  124. package/dist/components/UIModal/UIModal.js +43 -43
  125. package/dist/components/UIModal/index.d.ts +1 -1
  126. package/dist/components/UIModal/index.js +17 -17
  127. package/dist/components/UIOverlay/UIOverlay.d.ts +22 -22
  128. package/dist/components/UIOverlay/UIOverlay.js +38 -38
  129. package/dist/components/UIOverlay/index.d.ts +1 -1
  130. package/dist/components/UIOverlay/index.js +17 -17
  131. package/dist/components/UIPersona/UIPersona.d.ts +27 -27
  132. package/dist/components/UIPersona/UIPersona.js +48 -48
  133. package/dist/components/UIPersona/index.d.ts +1 -1
  134. package/dist/components/UIPersona/index.js +17 -17
  135. package/dist/components/UISearchBox/UISearchBox.d.ts +22 -22
  136. package/dist/components/UISearchBox/UISearchBox.js +155 -155
  137. package/dist/components/UISearchBox/index.d.ts +3 -3
  138. package/dist/components/UISearchBox/index.js +17 -17
  139. package/dist/components/UISection/UISection.d.ts +34 -34
  140. package/dist/components/UISection/UISection.js +44 -44
  141. package/dist/components/UISection/UISections.d.ts +249 -249
  142. package/dist/components/UISection/UISections.js +707 -707
  143. package/dist/components/UISection/UISplitter.d.ts +96 -96
  144. package/dist/components/UISection/UISplitter.js +220 -220
  145. package/dist/components/UISection/index.d.ts +3 -3
  146. package/dist/components/UISection/index.js +19 -19
  147. package/dist/components/UISeparator/UISeparator.d.ts +25 -25
  148. package/dist/components/UISeparator/UISeparator.js +65 -65
  149. package/dist/components/UISeparator/index.d.ts +1 -1
  150. package/dist/components/UISeparator/index.js +17 -17
  151. package/dist/components/UITable/UITable-helper.d.ts +88 -88
  152. package/dist/components/UITable/UITable-helper.js +263 -263
  153. package/dist/components/UITable/UITable.d.ts +213 -213
  154. package/dist/components/UITable/UITable.js +779 -779
  155. package/dist/components/UITable/index.d.ts +2 -2
  156. package/dist/components/UITable/index.js +18 -18
  157. package/dist/components/UITable/types.d.ts +77 -77
  158. package/dist/components/UITable/types.js +28 -28
  159. package/dist/components/UITabs/UITabs.d.ts +28 -28
  160. package/dist/components/UITabs/UITabs.js +70 -70
  161. package/dist/components/UITabs/index.d.ts +1 -1
  162. package/dist/components/UITabs/index.js +17 -17
  163. package/dist/components/UIToggle/UIToggle.d.ts +39 -39
  164. package/dist/components/UIToggle/UIToggle.js +181 -181
  165. package/dist/components/UIToggle/index.d.ts +1 -1
  166. package/dist/components/UIToggle/index.js +17 -17
  167. package/dist/components/UIToggleGroup/UIToggleGroup.d.ts +31 -31
  168. package/dist/components/UIToggleGroup/UIToggleGroup.js +139 -139
  169. package/dist/components/UIToggleGroup/UIToggleGroup.types.d.ts +22 -22
  170. package/dist/components/UIToggleGroup/UIToggleGroup.types.js +2 -2
  171. package/dist/components/UIToggleGroup/UIToggleGroupOption/UIToggleGroupOption.d.ts +25 -25
  172. package/dist/components/UIToggleGroup/UIToggleGroupOption/UIToggleGroupOption.js +77 -77
  173. package/dist/components/UIToggleGroup/UIToggleGroupOption/UIToggleGroupOption.types.d.ts +10 -10
  174. package/dist/components/UIToggleGroup/UIToggleGroupOption/UIToggleGroupOption.types.js +2 -2
  175. package/dist/components/UIToggleGroup/UIToggleGroupOption/index.d.ts +2 -2
  176. package/dist/components/UIToggleGroup/UIToggleGroupOption/index.js +18 -18
  177. package/dist/components/UIToggleGroup/index.d.ts +2 -2
  178. package/dist/components/UIToggleGroup/index.js +18 -18
  179. package/dist/components/UIToolbar/UIToolbar.d.ts +36 -36
  180. package/dist/components/UIToolbar/UIToolbar.js +104 -104
  181. package/dist/components/UIToolbar/UIToolbarColumn.d.ts +7 -7
  182. package/dist/components/UIToolbar/UIToolbarColumn.js +33 -33
  183. package/dist/components/UIToolbar/UIToolbarDivider.d.ts +27 -27
  184. package/dist/components/UIToolbar/UIToolbarDivider.js +52 -52
  185. package/dist/components/UIToolbar/index.d.ts +3 -3
  186. package/dist/components/UIToolbar/index.js +19 -19
  187. package/dist/components/UITooltip/UITooltip.d.ts +29 -29
  188. package/dist/components/UITooltip/UITooltip.js +77 -77
  189. package/dist/components/UITooltip/UITooltipUtils.d.ts +17 -17
  190. package/dist/components/UITooltip/UITooltipUtils.js +45 -45
  191. package/dist/components/UITooltip/index.d.ts +2 -2
  192. package/dist/components/UITooltip/index.js +18 -18
  193. package/dist/components/UITranslationInput/UIFormattedText.d.ts +46 -46
  194. package/dist/components/UITranslationInput/UIFormattedText.js +121 -121
  195. package/dist/components/UITranslationInput/UILoadButton.d.ts +52 -52
  196. package/dist/components/UITranslationInput/UILoadButton.js +109 -109
  197. package/dist/components/UITranslationInput/UITranslationButton.d.ts +14 -14
  198. package/dist/components/UITranslationInput/UITranslationButton.js +88 -88
  199. package/dist/components/UITranslationInput/UITranslationButton.types.d.ts +67 -67
  200. package/dist/components/UITranslationInput/UITranslationButton.types.js +21 -21
  201. package/dist/components/UITranslationInput/UITranslationInput.d.ts +25 -25
  202. package/dist/components/UITranslationInput/UITranslationInput.js +169 -169
  203. package/dist/components/UITranslationInput/UITranslationUtils.d.ts +64 -64
  204. package/dist/components/UITranslationInput/UITranslationUtils.js +168 -168
  205. package/dist/components/UITranslationInput/defaults.d.ts +2 -2
  206. package/dist/components/UITranslationInput/defaults.js +15 -15
  207. package/dist/components/UITranslationInput/index.d.ts +2 -2
  208. package/dist/components/UITranslationInput/index.js +18 -18
  209. package/dist/components/UITreeDropdown/UITreeDropdown.d.ts +265 -265
  210. package/dist/components/UITreeDropdown/UITreeDropdown.js +660 -660
  211. package/dist/components/UITreeDropdown/index.d.ts +1 -1
  212. package/dist/components/UITreeDropdown/index.js +17 -17
  213. package/dist/components/UIVerticalDivider/UIVerticalDivider.d.ts +23 -23
  214. package/dist/components/UIVerticalDivider/UIVerticalDivider.js +41 -41
  215. package/dist/components/UIVerticalDivider/index.d.ts +1 -1
  216. package/dist/components/UIVerticalDivider/index.js +17 -17
  217. package/dist/components/UIVirtualList/UIAutoSizer.d.ts +22 -22
  218. package/dist/components/UIVirtualList/UIAutoSizer.js +33 -33
  219. package/dist/components/UIVirtualList/UICellMeasurer.d.ts +23 -23
  220. package/dist/components/UIVirtualList/UICellMeasurer.js +33 -33
  221. package/dist/components/UIVirtualList/UIVirtualList.d.ts +43 -43
  222. package/dist/components/UIVirtualList/UIVirtualList.js +70 -70
  223. package/dist/components/UIVirtualList/index.d.ts +3 -3
  224. package/dist/components/UIVirtualList/index.js +19 -19
  225. package/dist/components/index.d.ts +38 -38
  226. package/dist/components/index.js +54 -54
  227. package/dist/helper/ValidationMessage/MessageWrapper.d.ts +17 -17
  228. package/dist/helper/ValidationMessage/MessageWrapper.js +34 -34
  229. package/dist/helper/ValidationMessage/index.d.ts +2 -2
  230. package/dist/helper/ValidationMessage/index.js +18 -18
  231. package/dist/helper/ValidationMessage/utils.d.ts +31 -31
  232. package/dist/helper/ValidationMessage/utils.js +121 -121
  233. package/dist/index.d.ts +2 -2
  234. package/dist/index.js +18 -18
  235. package/dist/utilities/DeepMerge.d.ts +10 -10
  236. package/dist/utilities/DeepMerge.js +48 -48
  237. package/dist/utilities/Dom.d.ts +14 -7
  238. package/dist/utilities/Dom.d.ts.map +1 -1
  239. package/dist/utilities/Dom.js +23 -13
  240. package/dist/utilities/Dom.js.map +1 -1
  241. package/dist/utilities/Focus.d.ts +14 -14
  242. package/dist/utilities/Focus.js +34 -34
  243. package/dist/utilities/Id.d.ts +2 -2
  244. package/dist/utilities/Id.js +5 -5
  245. package/dist/utilities/Keys.d.ts +2 -2
  246. package/dist/utilities/Keys.js +5 -5
  247. package/dist/utilities/index.d.ts +4 -4
  248. package/dist/utilities/index.js +20 -20
  249. package/package.json +1 -1
  250. package/storybook/494.d8aaa4d7.iframe.bundle.js +1 -0
  251. package/storybook/580.057c85e9.iframe.bundle.js +1 -0
  252. package/storybook/{930.1b3c5615.iframe.bundle.js → 930.3177b0dc.iframe.bundle.js} +2 -2
  253. package/storybook/UIActionCallout-story.9ee56c83.iframe.bundle.js +2 -0
  254. package/storybook/UIToggleGroup-story.573848ba.iframe.bundle.js +2 -0
  255. package/storybook/iframe.html +3 -3
  256. package/storybook/main.5f68bcca.iframe.bundle.js +1 -0
  257. package/storybook/project.json +1 -1
  258. package/storybook/{runtime~main.7c93d414.iframe.bundle.js → runtime~main.a213c0ae.iframe.bundle.js} +1 -1
  259. package/storybook/494.1829058d.iframe.bundle.js +0 -1
  260. package/storybook/580.c5ddde6e.iframe.bundle.js +0 -1
  261. package/storybook/UIActionCallout-story.13bdf055.iframe.bundle.js +0 -2
  262. package/storybook/UIToggleGroup-story.6f3e7d06.iframe.bundle.js +0 -2
  263. package/storybook/main.4ed99289.iframe.bundle.js +0 -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
@@ -1,21 +1,21 @@
1
- import React from 'react';
2
- import type { UiIcons } from '..';
3
- export interface UIFlexibleTableActionProps {
4
- actionName: string;
5
- className?: string;
6
- iconName: UiIcons;
7
- disabled?: boolean;
8
- tableId: string;
9
- title?: string;
10
- onClick?: () => void;
11
- onFocus?: () => void;
12
- }
13
- /**
14
- * UIFlexibleTableActionButton component.
15
- *
16
- * @exports
17
- * @param {UIFlexibleTableActionProps} props
18
- * @returns { React.ReactElement}
19
- */
20
- export declare function UIFlexibleTableActionButton(props: UIFlexibleTableActionProps): React.ReactElement;
1
+ import React from 'react';
2
+ import type { UiIcons } from '..';
3
+ export interface UIFlexibleTableActionProps {
4
+ actionName: string;
5
+ className?: string;
6
+ iconName: UiIcons;
7
+ disabled?: boolean;
8
+ tableId: string;
9
+ title?: string;
10
+ onClick?: () => void;
11
+ onFocus?: () => void;
12
+ }
13
+ /**
14
+ * UIFlexibleTableActionButton component.
15
+ *
16
+ * @exports
17
+ * @param {UIFlexibleTableActionProps} props
18
+ * @returns { React.ReactElement}
19
+ */
20
+ export declare function UIFlexibleTableActionButton(props: UIFlexibleTableActionProps): React.ReactElement;
21
21
  //# sourceMappingURL=UIFlexibleTableActionButton.d.ts.map