@sap-ux/ui-components 1.14.1 → 1.14.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (253) hide show
  1. package/dist/components/Icons.d.ts +151 -150
  2. package/dist/components/Icons.d.ts.map +1 -1
  3. package/dist/components/Icons.js +631 -628
  4. package/dist/components/Icons.js.map +1 -1
  5. package/dist/components/UIActionCallout/UIActionCallout.d.ts +64 -64
  6. package/dist/components/UIActionCallout/UIActionCallout.js +67 -67
  7. package/dist/components/UIActionCallout/index.d.ts +1 -1
  8. package/dist/components/UIActionCallout/index.js +17 -17
  9. package/dist/components/UIBreadcrumb/UIBreadcrumb.d.ts +23 -23
  10. package/dist/components/UIBreadcrumb/UIBreadcrumb.js +38 -38
  11. package/dist/components/UIBreadcrumb/index.d.ts +1 -1
  12. package/dist/components/UIBreadcrumb/index.js +17 -17
  13. package/dist/components/UIButton/UIActionButton.d.ts +23 -23
  14. package/dist/components/UIButton/UIActionButton.js +89 -89
  15. package/dist/components/UIButton/UIDefaultButton.d.ts +41 -41
  16. package/dist/components/UIButton/UIDefaultButton.js +255 -255
  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 +2 -2
  246. package/storybook/909.5e5ef92e.iframe.bundle.js +1 -0
  247. package/storybook/{930.3177b0dc.iframe.bundle.js → 930.1b3c5615.iframe.bundle.js} +2 -2
  248. package/storybook/iframe.html +3 -3
  249. package/storybook/main.4ed99289.iframe.bundle.js +1 -0
  250. package/storybook/project.json +1 -1
  251. package/storybook/{runtime~main.a213c0ae.iframe.bundle.js → runtime~main.8927df25.iframe.bundle.js} +2 -2
  252. package/storybook/909.dde4cce0.iframe.bundle.js +0 -1
  253. package/storybook/main.5f68bcca.iframe.bundle.js +0 -1
@@ -1,264 +1,264 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getComboBoxInput = exports.hideFocus = exports.showFocus = exports.getStylesForSelectedCell = exports._onHeaderRender = exports.addRowNumbers = exports.sleep = exports.waitFor = exports.scrollToRow = exports.scrollToColumn = exports.getCellFromCoords = exports.focusEditedCell = exports._copyAndSort = void 0;
7
- const react_1 = __importDefault(require("react"));
8
- const react_2 = require("@fluentui/react");
9
- const __1 = require("..");
10
- /**
11
- * Method to copy and sort.
12
- *
13
- * @param {T[]} items
14
- * @param {string }columnKey
15
- * @param {boolean} isSortedDescending
16
- * @returns {T[]}
17
- */
18
- function _copyAndSort(items, columnKey, isSortedDescending) {
19
- const key = columnKey;
20
- return items.slice(0).sort((a, b) => ((isSortedDescending ? a[key] > b[key] : a[key] < b[key]) ? 1 : -1));
21
- }
22
- exports._copyAndSort = _copyAndSort;
23
- /**
24
- * Focus edited cell.
25
- *
26
- * @param {EditedCell | undefined} editedCell
27
- * @param {UITableProps} props
28
- * @param {string} direction
29
- * @returns {Promise<void>}
30
- */
31
- function focusEditedCell(editedCell, props, direction = '') {
32
- const rowIndex = editedCell?.rowIndex || 0;
33
- const colKey = editedCell?.column?.key || '';
34
- let newRowIndex = rowIndex;
35
- let newColKey = colKey;
36
- if (!colKey) {
37
- return Promise.resolve();
38
- }
39
- // go up/down/left/right
40
- if (direction) {
41
- const editableColumnKeys = props.columns.filter((c) => c.editable).map((c) => c.key);
42
- const rowsLen = props.items.length;
43
- const colIdx = editableColumnKeys.indexOf(colKey);
44
- if (direction === 'right') {
45
- if (colIdx < editableColumnKeys.length - 1) {
46
- newColKey = editableColumnKeys[colIdx + 1];
47
- }
48
- }
49
- else if (direction === 'left') {
50
- if (colIdx > 0) {
51
- newColKey = editableColumnKeys[colIdx - 1];
52
- }
53
- }
54
- else if (direction === 'down') {
55
- if (rowIndex < rowsLen - 1) {
56
- newRowIndex = rowIndex + 1;
57
- }
58
- }
59
- else if (direction === 'up') {
60
- if (rowIndex > 0) {
61
- newRowIndex = rowIndex - 1;
62
- }
63
- }
64
- }
65
- return new Promise((resolve) => {
66
- requestAnimationFrame(() => {
67
- const cell = getCellFromCoords(newRowIndex, newColKey, props.columns, props.showRowNumbers);
68
- if (cell && direction) {
69
- cell.click();
70
- }
71
- cell?.focus();
72
- requestAnimationFrame(() => resolve());
73
- });
74
- });
75
- }
76
- exports.focusEditedCell = focusEditedCell;
77
- /**
78
- * Get cell from coordinates.
79
- *
80
- * @param {number} rowIdx
81
- * @param {string} columnKey
82
- * @param {UIColumn} columns
83
- * @param {boolean} addOneToColIndex
84
- * @returns {NodeListOf<Element>}
85
- */
86
- function getCellFromCoords(rowIdx, columnKey, columns, addOneToColIndex = false) {
87
- const selectedIdx = (columns.findIndex((col) => col.key === columnKey) || 0) + +addOneToColIndex;
88
- const row = document.querySelector(`.ms-DetailsList .ms-DetailsList-contentWrapper .ms-List-page .ms-DetailsRow[data-item-index="${rowIdx || 0}"]`);
89
- const cols = row?.querySelectorAll('.ms-DetailsRow-cell');
90
- return cols && cols.length && cols[selectedIdx];
91
- }
92
- exports.getCellFromCoords = getCellFromCoords;
93
- // manual workaround due to the lack of API for selecting columns
94
- /**
95
- * Scrolls to column.
96
- *
97
- * @param {string} columnKey
98
- * @param {UIColumn[]} columns
99
- * @param {number} selectedRow
100
- * @param {boolean} addOneToColIndex
101
- */
102
- function scrollToColumn(columnKey, columns, selectedRow, addOneToColIndex = false) {
103
- const sidebar = document.querySelector('.data-editor__sidebar');
104
- const sidebarWidth = (sidebar?.getBoundingClientRect().width || 0) + (addOneToColIndex ? 20 : 0);
105
- const scrollContainer = document.querySelector('.ms-ScrollablePane--contentContainer');
106
- const cell = getCellFromCoords(selectedRow, columnKey, columns, addOneToColIndex);
107
- const box = cell && cell.getBoundingClientRect();
108
- if (scrollContainer && box) {
109
- const left = scrollContainer.scrollLeft + Math.ceil(box.x) - sidebarWidth;
110
- requestAnimationFrame(() => scrollContainer.scrollTo({ left, behavior: 'smooth' }));
111
- }
112
- }
113
- exports.scrollToColumn = scrollToColumn;
114
- /**
115
- * Scrolls to row.
116
- *
117
- * @param {number} idx
118
- * @param {IDetailsList | null} table
119
- */
120
- function scrollToRow(idx = 0, table) {
121
- if (!table) {
122
- return;
123
- }
124
- table.focusIndex(idx, false);
125
- const slctr = `.ms-DetailsList-contentWrapper .ms-DetailsRow[data-selection-index="${idx}"]`;
126
- waitFor(slctr)
127
- .then((rowEl) => {
128
- rowEl.setAttribute('tabIndex', '0');
129
- rowEl.click();
130
- rowEl.focus();
131
- showFocus();
132
- })
133
- .catch((e) => {
134
- throw e;
135
- });
136
- }
137
- exports.scrollToRow = scrollToRow;
138
- /**
139
- * Wait for selector.
140
- *
141
- * @param {string} selector
142
- * @param {number} count - number of tries, after which the element is considered not found
143
- * (so that the function doesn't run forever)
144
- * @returns {Promise<Element>}
145
- */
146
- async function waitFor(selector, count = 10) {
147
- if (count === 0) {
148
- return Promise.reject(new Error('Element for selector not found: ' + selector));
149
- }
150
- await sleep();
151
- const el = document.querySelector(selector);
152
- return el ? Promise.resolve(el) : waitFor(selector, count - 1);
153
- }
154
- exports.waitFor = waitFor;
155
- /**
156
- * Promisified setTimeout.
157
- *
158
- * @param ms
159
- * @returns Promise
160
- */
161
- function sleep(ms = 200) {
162
- return new Promise((resolve) => setTimeout(resolve, ms));
163
- }
164
- exports.sleep = sleep;
165
- /**
166
- * Adds row numbers.
167
- *
168
- * @param {any} columns
169
- * @param {boolean} showRowNumbers
170
- * @returns {any}
171
- */
172
- function addRowNumbers(columns, showRowNumbers = false) {
173
- if (showRowNumbers && columns[0].key !== '__row_number__') {
174
- columns.unshift({
175
- key: '__row_number__',
176
- name: '#',
177
- fieldName: '__row_number__',
178
- minWidth: 24,
179
- maxWidth: 24,
180
- isResizable: false
181
- });
182
- }
183
- return columns;
184
- }
185
- exports.addRowNumbers = addRowNumbers;
186
- const _onHeaderRender = (props, defaultRender) => {
187
- if (!props || !defaultRender) {
188
- return null;
189
- }
190
- const customProps = {
191
- ...props,
192
- onRenderColumnHeaderTooltip: (item, tooltipDefaultRender) => {
193
- if (item?.column) {
194
- const column = item.column;
195
- const editable = (column.editable ? '' : 'not-') + 'editable-container';
196
- const containerDiv = column.key !== '__row_number__' ? react_1.default.createElement("div", { className: editable }) : null;
197
- return (react_1.default.createElement("div", { className: "data-editor__header-cell" },
198
- column.iconName && (react_1.default.createElement(__1.UIIcon, { className: "type-icon", iconName: column.iconName, title: column.iconTooltip || '' })),
199
- react_1.default.createElement("span", { title: column?.headerTooltip || column.name }, column.name),
200
- containerDiv));
201
- }
202
- const isCheckTooltip = item?.hostClassName === 'ms-DetailsHeader-checkTooltip';
203
- if (props.selection && isCheckTooltip && tooltipDefaultRender) {
204
- return tooltipDefaultRender(item);
205
- }
206
- return null;
207
- }
208
- };
209
- return react_1.default.createElement(react_2.Sticky, null, defaultRender(customProps));
210
- };
211
- exports._onHeaderRender = _onHeaderRender;
212
- /**
213
- * Gets styles for selected cell.
214
- *
215
- * @param state
216
- * @returns {Partial<IDetailsListStyles>}
217
- */
218
- function getStylesForSelectedCell(state) {
219
- let styles = {};
220
- const editedRow = state.editedCell ? state.editedCell.rowIndex : undefined;
221
- const editedColumn = state.editedCell ? state.editedCell.column : undefined;
222
- if (editedRow !== undefined && editedColumn !== undefined) {
223
- styles = {
224
- root: {
225
- ['div.ms-List-cell']: {
226
- position: 'relative',
227
- zIndex: 0
228
- },
229
- [`div.ms-List-cell[data-list-index="${editedRow}"]`]: {
230
- zIndex: 1
231
- },
232
- [`.ms-DetailsRow-cell`]: {
233
- overflow: 'hidden'
234
- },
235
- [`div.ms-List-cell[data-list-index="${editedRow}"] .ms-DetailsRow-cell[data-automation-key="${editedColumn.key}"]`]: {
236
- overflow: 'visible'
237
- }
238
- }
239
- };
240
- }
241
- return styles;
242
- }
243
- exports.getStylesForSelectedCell = getStylesForSelectedCell;
244
- function showFocus() {
245
- document.body.classList.remove('ms-Fabric--isFocusHidden');
246
- document.body.classList.add('ms-Fabric--isFocusVisible');
247
- }
248
- exports.showFocus = showFocus;
249
- function hideFocus() {
250
- document.body.classList.add('ms-Fabric--isFocusHidden');
251
- document.body.classList.remove('ms-Fabric--isFocusVisible');
252
- }
253
- exports.hideFocus = hideFocus;
254
- /**
255
- * Gets ComboBox input.
256
- *
257
- * @param ref
258
- * @returns {HTMLInputElement | undefined }
259
- */
260
- function getComboBoxInput(ref) {
261
- return ref?.current?.querySelector('input');
262
- }
263
- exports.getComboBoxInput = getComboBoxInput;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getComboBoxInput = exports.hideFocus = exports.showFocus = exports.getStylesForSelectedCell = exports._onHeaderRender = exports.addRowNumbers = exports.sleep = exports.waitFor = exports.scrollToRow = exports.scrollToColumn = exports.getCellFromCoords = exports.focusEditedCell = exports._copyAndSort = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const react_2 = require("@fluentui/react");
9
+ const __1 = require("..");
10
+ /**
11
+ * Method to copy and sort.
12
+ *
13
+ * @param {T[]} items
14
+ * @param {string }columnKey
15
+ * @param {boolean} isSortedDescending
16
+ * @returns {T[]}
17
+ */
18
+ function _copyAndSort(items, columnKey, isSortedDescending) {
19
+ const key = columnKey;
20
+ return items.slice(0).sort((a, b) => ((isSortedDescending ? a[key] > b[key] : a[key] < b[key]) ? 1 : -1));
21
+ }
22
+ exports._copyAndSort = _copyAndSort;
23
+ /**
24
+ * Focus edited cell.
25
+ *
26
+ * @param {EditedCell | undefined} editedCell
27
+ * @param {UITableProps} props
28
+ * @param {string} direction
29
+ * @returns {Promise<void>}
30
+ */
31
+ function focusEditedCell(editedCell, props, direction = '') {
32
+ const rowIndex = editedCell?.rowIndex || 0;
33
+ const colKey = editedCell?.column?.key || '';
34
+ let newRowIndex = rowIndex;
35
+ let newColKey = colKey;
36
+ if (!colKey) {
37
+ return Promise.resolve();
38
+ }
39
+ // go up/down/left/right
40
+ if (direction) {
41
+ const editableColumnKeys = props.columns.filter((c) => c.editable).map((c) => c.key);
42
+ const rowsLen = props.items.length;
43
+ const colIdx = editableColumnKeys.indexOf(colKey);
44
+ if (direction === 'right') {
45
+ if (colIdx < editableColumnKeys.length - 1) {
46
+ newColKey = editableColumnKeys[colIdx + 1];
47
+ }
48
+ }
49
+ else if (direction === 'left') {
50
+ if (colIdx > 0) {
51
+ newColKey = editableColumnKeys[colIdx - 1];
52
+ }
53
+ }
54
+ else if (direction === 'down') {
55
+ if (rowIndex < rowsLen - 1) {
56
+ newRowIndex = rowIndex + 1;
57
+ }
58
+ }
59
+ else if (direction === 'up') {
60
+ if (rowIndex > 0) {
61
+ newRowIndex = rowIndex - 1;
62
+ }
63
+ }
64
+ }
65
+ return new Promise((resolve) => {
66
+ requestAnimationFrame(() => {
67
+ const cell = getCellFromCoords(newRowIndex, newColKey, props.columns, props.showRowNumbers);
68
+ if (cell && direction) {
69
+ cell.click();
70
+ }
71
+ cell?.focus();
72
+ requestAnimationFrame(() => resolve());
73
+ });
74
+ });
75
+ }
76
+ exports.focusEditedCell = focusEditedCell;
77
+ /**
78
+ * Get cell from coordinates.
79
+ *
80
+ * @param {number} rowIdx
81
+ * @param {string} columnKey
82
+ * @param {UIColumn} columns
83
+ * @param {boolean} addOneToColIndex
84
+ * @returns {NodeListOf<Element>}
85
+ */
86
+ function getCellFromCoords(rowIdx, columnKey, columns, addOneToColIndex = false) {
87
+ const selectedIdx = (columns.findIndex((col) => col.key === columnKey) || 0) + +addOneToColIndex;
88
+ const row = document.querySelector(`.ms-DetailsList .ms-DetailsList-contentWrapper .ms-List-page .ms-DetailsRow[data-item-index="${rowIdx || 0}"]`);
89
+ const cols = row?.querySelectorAll('.ms-DetailsRow-cell');
90
+ return cols && cols.length && cols[selectedIdx];
91
+ }
92
+ exports.getCellFromCoords = getCellFromCoords;
93
+ // manual workaround due to the lack of API for selecting columns
94
+ /**
95
+ * Scrolls to column.
96
+ *
97
+ * @param {string} columnKey
98
+ * @param {UIColumn[]} columns
99
+ * @param {number} selectedRow
100
+ * @param {boolean} addOneToColIndex
101
+ */
102
+ function scrollToColumn(columnKey, columns, selectedRow, addOneToColIndex = false) {
103
+ const sidebar = document.querySelector('.data-editor__sidebar');
104
+ const sidebarWidth = (sidebar?.getBoundingClientRect().width || 0) + (addOneToColIndex ? 20 : 0);
105
+ const scrollContainer = document.querySelector('.ms-ScrollablePane--contentContainer');
106
+ const cell = getCellFromCoords(selectedRow, columnKey, columns, addOneToColIndex);
107
+ const box = cell && cell.getBoundingClientRect();
108
+ if (scrollContainer && box) {
109
+ const left = scrollContainer.scrollLeft + Math.ceil(box.x) - sidebarWidth;
110
+ requestAnimationFrame(() => scrollContainer.scrollTo({ left, behavior: 'smooth' }));
111
+ }
112
+ }
113
+ exports.scrollToColumn = scrollToColumn;
114
+ /**
115
+ * Scrolls to row.
116
+ *
117
+ * @param {number} idx
118
+ * @param {IDetailsList | null} table
119
+ */
120
+ function scrollToRow(idx = 0, table) {
121
+ if (!table) {
122
+ return;
123
+ }
124
+ table.focusIndex(idx, false);
125
+ const slctr = `.ms-DetailsList-contentWrapper .ms-DetailsRow[data-selection-index="${idx}"]`;
126
+ waitFor(slctr)
127
+ .then((rowEl) => {
128
+ rowEl.setAttribute('tabIndex', '0');
129
+ rowEl.click();
130
+ rowEl.focus();
131
+ showFocus();
132
+ })
133
+ .catch((e) => {
134
+ throw e;
135
+ });
136
+ }
137
+ exports.scrollToRow = scrollToRow;
138
+ /**
139
+ * Wait for selector.
140
+ *
141
+ * @param {string} selector
142
+ * @param {number} count - number of tries, after which the element is considered not found
143
+ * (so that the function doesn't run forever)
144
+ * @returns {Promise<Element>}
145
+ */
146
+ async function waitFor(selector, count = 10) {
147
+ if (count === 0) {
148
+ return Promise.reject(new Error('Element for selector not found: ' + selector));
149
+ }
150
+ await sleep();
151
+ const el = document.querySelector(selector);
152
+ return el ? Promise.resolve(el) : waitFor(selector, count - 1);
153
+ }
154
+ exports.waitFor = waitFor;
155
+ /**
156
+ * Promisified setTimeout.
157
+ *
158
+ * @param ms
159
+ * @returns Promise
160
+ */
161
+ function sleep(ms = 200) {
162
+ return new Promise((resolve) => setTimeout(resolve, ms));
163
+ }
164
+ exports.sleep = sleep;
165
+ /**
166
+ * Adds row numbers.
167
+ *
168
+ * @param {any} columns
169
+ * @param {boolean} showRowNumbers
170
+ * @returns {any}
171
+ */
172
+ function addRowNumbers(columns, showRowNumbers = false) {
173
+ if (showRowNumbers && columns[0].key !== '__row_number__') {
174
+ columns.unshift({
175
+ key: '__row_number__',
176
+ name: '#',
177
+ fieldName: '__row_number__',
178
+ minWidth: 24,
179
+ maxWidth: 24,
180
+ isResizable: false
181
+ });
182
+ }
183
+ return columns;
184
+ }
185
+ exports.addRowNumbers = addRowNumbers;
186
+ const _onHeaderRender = (props, defaultRender) => {
187
+ if (!props || !defaultRender) {
188
+ return null;
189
+ }
190
+ const customProps = {
191
+ ...props,
192
+ onRenderColumnHeaderTooltip: (item, tooltipDefaultRender) => {
193
+ if (item?.column) {
194
+ const column = item.column;
195
+ const editable = (column.editable ? '' : 'not-') + 'editable-container';
196
+ const containerDiv = column.key !== '__row_number__' ? react_1.default.createElement("div", { className: editable }) : null;
197
+ return (react_1.default.createElement("div", { className: "data-editor__header-cell" },
198
+ column.iconName && (react_1.default.createElement(__1.UIIcon, { className: "type-icon", iconName: column.iconName, title: column.iconTooltip || '' })),
199
+ react_1.default.createElement("span", { title: column?.headerTooltip || column.name }, column.name),
200
+ containerDiv));
201
+ }
202
+ const isCheckTooltip = item?.hostClassName === 'ms-DetailsHeader-checkTooltip';
203
+ if (props.selection && isCheckTooltip && tooltipDefaultRender) {
204
+ return tooltipDefaultRender(item);
205
+ }
206
+ return null;
207
+ }
208
+ };
209
+ return react_1.default.createElement(react_2.Sticky, null, defaultRender(customProps));
210
+ };
211
+ exports._onHeaderRender = _onHeaderRender;
212
+ /**
213
+ * Gets styles for selected cell.
214
+ *
215
+ * @param state
216
+ * @returns {Partial<IDetailsListStyles>}
217
+ */
218
+ function getStylesForSelectedCell(state) {
219
+ let styles = {};
220
+ const editedRow = state.editedCell ? state.editedCell.rowIndex : undefined;
221
+ const editedColumn = state.editedCell ? state.editedCell.column : undefined;
222
+ if (editedRow !== undefined && editedColumn !== undefined) {
223
+ styles = {
224
+ root: {
225
+ ['div.ms-List-cell']: {
226
+ position: 'relative',
227
+ zIndex: 0
228
+ },
229
+ [`div.ms-List-cell[data-list-index="${editedRow}"]`]: {
230
+ zIndex: 1
231
+ },
232
+ [`.ms-DetailsRow-cell`]: {
233
+ overflow: 'hidden'
234
+ },
235
+ [`div.ms-List-cell[data-list-index="${editedRow}"] .ms-DetailsRow-cell[data-automation-key="${editedColumn.key}"]`]: {
236
+ overflow: 'visible'
237
+ }
238
+ }
239
+ };
240
+ }
241
+ return styles;
242
+ }
243
+ exports.getStylesForSelectedCell = getStylesForSelectedCell;
244
+ function showFocus() {
245
+ document.body.classList.remove('ms-Fabric--isFocusHidden');
246
+ document.body.classList.add('ms-Fabric--isFocusVisible');
247
+ }
248
+ exports.showFocus = showFocus;
249
+ function hideFocus() {
250
+ document.body.classList.add('ms-Fabric--isFocusHidden');
251
+ document.body.classList.remove('ms-Fabric--isFocusVisible');
252
+ }
253
+ exports.hideFocus = hideFocus;
254
+ /**
255
+ * Gets ComboBox input.
256
+ *
257
+ * @param ref
258
+ * @returns {HTMLInputElement | undefined }
259
+ */
260
+ function getComboBoxInput(ref) {
261
+ return ref?.current?.querySelector('input');
262
+ }
263
+ exports.getComboBoxInput = getComboBoxInput;
264
264
  //# sourceMappingURL=UITable-helper.js.map