@sap-ux/ui-components 1.14.0 → 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 (253) 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 -208
  40. package/dist/components/UIComboBox/UIComboBox.js +563 -563
  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 +126 -126
  45. package/dist/components/UIContextualMenu/UIHighlightMenuOption.d.ts +19 -19
  46. package/dist/components/UIContextualMenu/UIHighlightMenuOption.js +50 -50
  47. package/dist/components/UIContextualMenu/index.d.ts +2 -2
  48. package/dist/components/UIContextualMenu/index.js +18 -18
  49. package/dist/components/UICreateSelect/UICreateSelect.d.ts +36 -36
  50. package/dist/components/UICreateSelect/UICreateSelect.js +172 -172
  51. package/dist/components/UICreateSelect/index.d.ts +1 -1
  52. package/dist/components/UICreateSelect/index.js +17 -17
  53. package/dist/components/UIDatePicker/UIDatePicker.d.ts +49 -49
  54. package/dist/components/UIDatePicker/UIDatePicker.js +72 -72
  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 +118 -118
  58. package/dist/components/UIDialog/UIDialog.js +281 -281
  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 +94 -94
  62. package/dist/components/UIDropdown/UIDropdown.js +224 -224
  63. package/dist/components/UIDropdown/index.d.ts +2 -2
  64. package/dist/components/UIDropdown/index.js +18 -18
  65. package/dist/components/UIDropdown/utils.d.ts +20 -20
  66. package/dist/components/UIDropdown/utils.js +43 -43
  67. package/dist/components/UIFlexibleTable/RowActions.d.ts +16 -16
  68. package/dist/components/UIFlexibleTable/RowActions.js +73 -73
  69. package/dist/components/UIFlexibleTable/RowData.d.ts +16 -16
  70. package/dist/components/UIFlexibleTable/RowData.js +111 -111
  71. package/dist/components/UIFlexibleTable/UIFlexibleTable.d.ts +11 -11
  72. package/dist/components/UIFlexibleTable/UIFlexibleTable.js +280 -280
  73. package/dist/components/UIFlexibleTable/UIFlexibleTableActionButton.d.ts +20 -20
  74. package/dist/components/UIFlexibleTable/UIFlexibleTableActionButton.js +20 -20
  75. package/dist/components/UIFlexibleTable/UIFlexibleTableRow.d.ts +26 -26
  76. package/dist/components/UIFlexibleTable/UIFlexibleTableRow.js +219 -219
  77. package/dist/components/UIFlexibleTable/UIFlexibleTableRowActionButton.d.ts +20 -20
  78. package/dist/components/UIFlexibleTable/UIFlexibleTableRowActionButton.js +19 -19
  79. package/dist/components/UIFlexibleTable/UIFlexibleTableRowNoData.d.ts +15 -15
  80. package/dist/components/UIFlexibleTable/UIFlexibleTableRowNoData.js +28 -28
  81. package/dist/components/UIFlexibleTable/index.d.ts +5 -5
  82. package/dist/components/UIFlexibleTable/index.js +21 -21
  83. package/dist/components/UIFlexibleTable/types.d.ts +143 -143
  84. package/dist/components/UIFlexibleTable/types.js +14 -14
  85. package/dist/components/UIFlexibleTable/utils.d.ts +25 -25
  86. package/dist/components/UIFlexibleTable/utils.js +49 -49
  87. package/dist/components/UIFocusZone/UIFocusTrapZone.d.ts +22 -22
  88. package/dist/components/UIFocusZone/UIFocusTrapZone.js +33 -33
  89. package/dist/components/UIFocusZone/UIFocusZone.d.ts +23 -23
  90. package/dist/components/UIFocusZone/UIFocusZone.js +35 -35
  91. package/dist/components/UIFocusZone/index.d.ts +2 -2
  92. package/dist/components/UIFocusZone/index.js +18 -18
  93. package/dist/components/UIIcon/UIIcon.d.ts +24 -24
  94. package/dist/components/UIIcon/UIIcon.js +37 -37
  95. package/dist/components/UIIcon/index.d.ts +1 -1
  96. package/dist/components/UIIcon/index.js +17 -17
  97. package/dist/components/UIInput/UITextInput.d.ts +51 -51
  98. package/dist/components/UIInput/UITextInput.js +244 -244
  99. package/dist/components/UIInput/index.d.ts +1 -1
  100. package/dist/components/UIInput/index.js +17 -17
  101. package/dist/components/UILabel/UILabel.d.ts +30 -30
  102. package/dist/components/UILabel/UILabel.js +64 -64
  103. package/dist/components/UILabel/index.d.ts +1 -1
  104. package/dist/components/UILabel/index.js +17 -17
  105. package/dist/components/UILink/UILink.d.ts +25 -25
  106. package/dist/components/UILink/UILink.js +71 -71
  107. package/dist/components/UILink/index.d.ts +1 -1
  108. package/dist/components/UILink/index.js +17 -17
  109. package/dist/components/UIList/UIList.d.ts +31 -31
  110. package/dist/components/UIList/UIList.js +120 -120
  111. package/dist/components/UIList/index.d.ts +1 -1
  112. package/dist/components/UIList/index.js +17 -17
  113. package/dist/components/UILoader/UILoader.d.ts +27 -27
  114. package/dist/components/UILoader/UILoader.js +78 -78
  115. package/dist/components/UILoader/index.d.ts +1 -1
  116. package/dist/components/UILoader/index.js +17 -17
  117. package/dist/components/UIMessageBar/UIMessageBar.d.ts +25 -25
  118. package/dist/components/UIMessageBar/UIMessageBar.js +56 -56
  119. package/dist/components/UIMessageBar/index.d.ts +1 -1
  120. package/dist/components/UIMessageBar/index.js +17 -17
  121. package/dist/components/UIModal/UIModal.d.ts +23 -23
  122. package/dist/components/UIModal/UIModal.js +43 -43
  123. package/dist/components/UIModal/index.d.ts +1 -1
  124. package/dist/components/UIModal/index.js +17 -17
  125. package/dist/components/UIOverlay/UIOverlay.d.ts +22 -22
  126. package/dist/components/UIOverlay/UIOverlay.js +38 -38
  127. package/dist/components/UIOverlay/index.d.ts +1 -1
  128. package/dist/components/UIOverlay/index.js +17 -17
  129. package/dist/components/UIPersona/UIPersona.d.ts +27 -27
  130. package/dist/components/UIPersona/UIPersona.js +48 -48
  131. package/dist/components/UIPersona/index.d.ts +1 -1
  132. package/dist/components/UIPersona/index.js +17 -17
  133. package/dist/components/UISearchBox/UISearchBox.d.ts +22 -22
  134. package/dist/components/UISearchBox/UISearchBox.js +155 -155
  135. package/dist/components/UISearchBox/index.d.ts +3 -3
  136. package/dist/components/UISearchBox/index.js +17 -17
  137. package/dist/components/UISection/UISection.d.ts +34 -34
  138. package/dist/components/UISection/UISection.js +44 -44
  139. package/dist/components/UISection/UISections.d.ts +249 -249
  140. package/dist/components/UISection/UISections.js +707 -707
  141. package/dist/components/UISection/UISplitter.d.ts +96 -96
  142. package/dist/components/UISection/UISplitter.js +220 -220
  143. package/dist/components/UISection/index.d.ts +3 -3
  144. package/dist/components/UISection/index.js +19 -19
  145. package/dist/components/UISeparator/UISeparator.d.ts +25 -25
  146. package/dist/components/UISeparator/UISeparator.js +65 -65
  147. package/dist/components/UISeparator/index.d.ts +1 -1
  148. package/dist/components/UISeparator/index.js +17 -17
  149. package/dist/components/UITable/UITable-helper.d.ts +88 -88
  150. package/dist/components/UITable/UITable-helper.js +263 -263
  151. package/dist/components/UITable/UITable.d.ts +213 -213
  152. package/dist/components/UITable/UITable.js +779 -779
  153. package/dist/components/UITable/index.d.ts +2 -2
  154. package/dist/components/UITable/index.js +18 -18
  155. package/dist/components/UITable/types.d.ts +77 -77
  156. package/dist/components/UITable/types.js +28 -28
  157. package/dist/components/UITabs/UITabs.d.ts +28 -28
  158. package/dist/components/UITabs/UITabs.js +70 -70
  159. package/dist/components/UITabs/index.d.ts +1 -1
  160. package/dist/components/UITabs/index.js +17 -17
  161. package/dist/components/UIToggle/UIToggle.d.ts +39 -39
  162. package/dist/components/UIToggle/UIToggle.js +181 -181
  163. package/dist/components/UIToggle/index.d.ts +1 -1
  164. package/dist/components/UIToggle/index.js +17 -17
  165. package/dist/components/UIToggleGroup/UIToggleGroup.d.ts +31 -31
  166. package/dist/components/UIToggleGroup/UIToggleGroup.js +139 -139
  167. package/dist/components/UIToggleGroup/UIToggleGroup.types.d.ts +22 -22
  168. package/dist/components/UIToggleGroup/UIToggleGroup.types.js +2 -2
  169. package/dist/components/UIToggleGroup/UIToggleGroupOption/UIToggleGroupOption.d.ts +25 -25
  170. package/dist/components/UIToggleGroup/UIToggleGroupOption/UIToggleGroupOption.js +77 -77
  171. package/dist/components/UIToggleGroup/UIToggleGroupOption/UIToggleGroupOption.types.d.ts +10 -10
  172. package/dist/components/UIToggleGroup/UIToggleGroupOption/UIToggleGroupOption.types.js +2 -2
  173. package/dist/components/UIToggleGroup/UIToggleGroupOption/index.d.ts +2 -2
  174. package/dist/components/UIToggleGroup/UIToggleGroupOption/index.js +18 -18
  175. package/dist/components/UIToggleGroup/index.d.ts +2 -2
  176. package/dist/components/UIToggleGroup/index.js +18 -18
  177. package/dist/components/UIToolbar/UIToolbar.d.ts +36 -36
  178. package/dist/components/UIToolbar/UIToolbar.js +104 -104
  179. package/dist/components/UIToolbar/UIToolbarColumn.d.ts +7 -7
  180. package/dist/components/UIToolbar/UIToolbarColumn.js +33 -33
  181. package/dist/components/UIToolbar/UIToolbarDivider.d.ts +27 -27
  182. package/dist/components/UIToolbar/UIToolbarDivider.js +52 -52
  183. package/dist/components/UIToolbar/index.d.ts +3 -3
  184. package/dist/components/UIToolbar/index.js +19 -19
  185. package/dist/components/UITooltip/UITooltip.d.ts +29 -29
  186. package/dist/components/UITooltip/UITooltip.js +77 -77
  187. package/dist/components/UITooltip/UITooltipUtils.d.ts +17 -17
  188. package/dist/components/UITooltip/UITooltipUtils.js +45 -45
  189. package/dist/components/UITooltip/index.d.ts +2 -2
  190. package/dist/components/UITooltip/index.js +18 -18
  191. package/dist/components/UITranslationInput/UIFormattedText.d.ts +46 -46
  192. package/dist/components/UITranslationInput/UIFormattedText.js +121 -121
  193. package/dist/components/UITranslationInput/UILoadButton.d.ts +52 -52
  194. package/dist/components/UITranslationInput/UILoadButton.js +109 -109
  195. package/dist/components/UITranslationInput/UITranslationButton.d.ts +14 -14
  196. package/dist/components/UITranslationInput/UITranslationButton.js +88 -88
  197. package/dist/components/UITranslationInput/UITranslationButton.types.d.ts +67 -67
  198. package/dist/components/UITranslationInput/UITranslationButton.types.js +21 -21
  199. package/dist/components/UITranslationInput/UITranslationInput.d.ts +25 -25
  200. package/dist/components/UITranslationInput/UITranslationInput.js +169 -169
  201. package/dist/components/UITranslationInput/UITranslationUtils.d.ts +64 -64
  202. package/dist/components/UITranslationInput/UITranslationUtils.js +168 -168
  203. package/dist/components/UITranslationInput/defaults.d.ts +2 -2
  204. package/dist/components/UITranslationInput/defaults.js +15 -15
  205. package/dist/components/UITranslationInput/index.d.ts +2 -2
  206. package/dist/components/UITranslationInput/index.js +18 -18
  207. package/dist/components/UITreeDropdown/UITreeDropdown.d.ts +265 -265
  208. package/dist/components/UITreeDropdown/UITreeDropdown.js +660 -660
  209. package/dist/components/UITreeDropdown/index.d.ts +1 -1
  210. package/dist/components/UITreeDropdown/index.js +17 -17
  211. package/dist/components/UIVerticalDivider/UIVerticalDivider.d.ts +23 -23
  212. package/dist/components/UIVerticalDivider/UIVerticalDivider.js +41 -41
  213. package/dist/components/UIVerticalDivider/index.d.ts +1 -1
  214. package/dist/components/UIVerticalDivider/index.js +17 -17
  215. package/dist/components/UIVirtualList/UIAutoSizer.d.ts +22 -22
  216. package/dist/components/UIVirtualList/UIAutoSizer.js +33 -33
  217. package/dist/components/UIVirtualList/UICellMeasurer.d.ts +23 -23
  218. package/dist/components/UIVirtualList/UICellMeasurer.js +33 -33
  219. package/dist/components/UIVirtualList/UIVirtualList.d.ts +43 -43
  220. package/dist/components/UIVirtualList/UIVirtualList.js +70 -70
  221. package/dist/components/UIVirtualList/index.d.ts +3 -3
  222. package/dist/components/UIVirtualList/index.js +19 -19
  223. package/dist/components/index.d.ts +38 -38
  224. package/dist/components/index.js +54 -54
  225. package/dist/helper/ValidationMessage/MessageWrapper.d.ts +17 -17
  226. package/dist/helper/ValidationMessage/MessageWrapper.js +34 -34
  227. package/dist/helper/ValidationMessage/index.d.ts +2 -2
  228. package/dist/helper/ValidationMessage/index.js +18 -18
  229. package/dist/helper/ValidationMessage/utils.d.ts +31 -31
  230. package/dist/helper/ValidationMessage/utils.js +121 -121
  231. package/dist/index.d.ts +2 -2
  232. package/dist/index.js +18 -18
  233. package/dist/utilities/DeepMerge.d.ts +10 -10
  234. package/dist/utilities/DeepMerge.js +48 -48
  235. package/dist/utilities/Dom.d.ts +14 -14
  236. package/dist/utilities/Dom.js +23 -23
  237. package/dist/utilities/Focus.d.ts +14 -14
  238. package/dist/utilities/Focus.js +34 -34
  239. package/dist/utilities/Id.d.ts +2 -2
  240. package/dist/utilities/Id.js +5 -5
  241. package/dist/utilities/Keys.d.ts +2 -2
  242. package/dist/utilities/Keys.js +5 -5
  243. package/dist/utilities/index.d.ts +4 -4
  244. package/dist/utilities/index.js +20 -20
  245. package/package.json +1 -1
  246. package/storybook/494.d8aaa4d7.iframe.bundle.js +1 -0
  247. package/storybook/{930.1b3c5615.iframe.bundle.js → 930.3177b0dc.iframe.bundle.js} +2 -2
  248. package/storybook/iframe.html +3 -3
  249. package/storybook/main.5f68bcca.iframe.bundle.js +1 -0
  250. package/storybook/project.json +1 -1
  251. package/storybook/{runtime~main.f52a1710.iframe.bundle.js → runtime~main.a213c0ae.iframe.bundle.js} +1 -1
  252. package/storybook/494.b98920dd.iframe.bundle.js +0 -1
  253. 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