@sap-ux/ui-components 1.0.0

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 (450) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +20 -0
  3. package/dist/components/Icons.d.ts +105 -0
  4. package/dist/components/Icons.d.ts.map +1 -0
  5. package/dist/components/Icons.js +401 -0
  6. package/dist/components/Icons.js.map +1 -0
  7. package/dist/components/UIBreadcrumb/UIBreadcrumb.d.ts +23 -0
  8. package/dist/components/UIBreadcrumb/UIBreadcrumb.d.ts.map +1 -0
  9. package/dist/components/UIBreadcrumb/UIBreadcrumb.js +38 -0
  10. package/dist/components/UIBreadcrumb/UIBreadcrumb.js.map +1 -0
  11. package/dist/components/UIBreadcrumb/index.d.ts +2 -0
  12. package/dist/components/UIBreadcrumb/index.d.ts.map +1 -0
  13. package/dist/components/UIBreadcrumb/index.js +14 -0
  14. package/dist/components/UIBreadcrumb/index.js.map +1 -0
  15. package/dist/components/UIButton/UIActionButton.d.ts +23 -0
  16. package/dist/components/UIButton/UIActionButton.d.ts.map +1 -0
  17. package/dist/components/UIButton/UIActionButton.js +97 -0
  18. package/dist/components/UIButton/UIActionButton.js.map +1 -0
  19. package/dist/components/UIButton/UIDefaultButton.d.ts +23 -0
  20. package/dist/components/UIButton/UIDefaultButton.d.ts.map +1 -0
  21. package/dist/components/UIButton/UIDefaultButton.js +227 -0
  22. package/dist/components/UIButton/UIDefaultButton.js.map +1 -0
  23. package/dist/components/UIButton/UIIconButton.d.ts +37 -0
  24. package/dist/components/UIButton/UIIconButton.d.ts.map +1 -0
  25. package/dist/components/UIButton/UIIconButton.js +106 -0
  26. package/dist/components/UIButton/UIIconButton.js.map +1 -0
  27. package/dist/components/UIButton/UISplitButton.d.ts +36 -0
  28. package/dist/components/UIButton/UISplitButton.d.ts.map +1 -0
  29. package/dist/components/UIButton/UISplitButton.js +67 -0
  30. package/dist/components/UIButton/UISplitButton.js.map +1 -0
  31. package/dist/components/UIButton/index.d.ts +7 -0
  32. package/dist/components/UIButton/index.d.ts.map +1 -0
  33. package/dist/components/UIButton/index.js +17 -0
  34. package/dist/components/UIButton/index.js.map +1 -0
  35. package/dist/components/UICallout/UICallout.d.ts +37 -0
  36. package/dist/components/UICallout/UICallout.d.ts.map +1 -0
  37. package/dist/components/UICallout/UICallout.js +90 -0
  38. package/dist/components/UICallout/UICallout.js.map +1 -0
  39. package/dist/components/UICallout/index.d.ts +2 -0
  40. package/dist/components/UICallout/index.d.ts.map +1 -0
  41. package/dist/components/UICallout/index.js +14 -0
  42. package/dist/components/UICallout/index.js.map +1 -0
  43. package/dist/components/UICheckbox/UICheckbox.d.ts +34 -0
  44. package/dist/components/UICheckbox/UICheckbox.d.ts.map +1 -0
  45. package/dist/components/UICheckbox/UICheckbox.js +135 -0
  46. package/dist/components/UICheckbox/UICheckbox.js.map +1 -0
  47. package/dist/components/UICheckbox/index.d.ts +2 -0
  48. package/dist/components/UICheckbox/index.d.ts.map +1 -0
  49. package/dist/components/UICheckbox/index.js +14 -0
  50. package/dist/components/UICheckbox/index.js.map +1 -0
  51. package/dist/components/UIChoiceGroup/UIChoiceGroup.d.ts +28 -0
  52. package/dist/components/UIChoiceGroup/UIChoiceGroup.d.ts.map +1 -0
  53. package/dist/components/UIChoiceGroup/UIChoiceGroup.js +182 -0
  54. package/dist/components/UIChoiceGroup/UIChoiceGroup.js.map +1 -0
  55. package/dist/components/UIChoiceGroup/index.d.ts +2 -0
  56. package/dist/components/UIChoiceGroup/index.d.ts.map +1 -0
  57. package/dist/components/UIChoiceGroup/index.js +14 -0
  58. package/dist/components/UIChoiceGroup/index.js.map +1 -0
  59. package/dist/components/UIComboBox/Callout.scss +7 -0
  60. package/dist/components/UIComboBox/UIComboBox.d.ts +190 -0
  61. package/dist/components/UIComboBox/UIComboBox.d.ts.map +1 -0
  62. package/dist/components/UIComboBox/UIComboBox.js +468 -0
  63. package/dist/components/UIComboBox/UIComboBox.js.map +1 -0
  64. package/dist/components/UIComboBox/UIComboBox.scss +245 -0
  65. package/dist/components/UIComboBox/_mixins.scss +24 -0
  66. package/dist/components/UIComboBox/index.d.ts +2 -0
  67. package/dist/components/UIComboBox/index.d.ts.map +1 -0
  68. package/dist/components/UIComboBox/index.js +14 -0
  69. package/dist/components/UIComboBox/index.js.map +1 -0
  70. package/dist/components/UIContextualMenu/UIContextualMenu.d.ts +32 -0
  71. package/dist/components/UIContextualMenu/UIContextualMenu.d.ts.map +1 -0
  72. package/dist/components/UIContextualMenu/UIContextualMenu.js +124 -0
  73. package/dist/components/UIContextualMenu/UIContextualMenu.js.map +1 -0
  74. package/dist/components/UIContextualMenu/UIContextualMenu.scss +211 -0
  75. package/dist/components/UIContextualMenu/UIHighlightMenuOption.d.ts +20 -0
  76. package/dist/components/UIContextualMenu/UIHighlightMenuOption.d.ts.map +1 -0
  77. package/dist/components/UIContextualMenu/UIHighlightMenuOption.js +51 -0
  78. package/dist/components/UIContextualMenu/UIHighlightMenuOption.js.map +1 -0
  79. package/dist/components/UIContextualMenu/UIHighlightMenuOption.scss +23 -0
  80. package/dist/components/UIContextualMenu/_variables.scss +30 -0
  81. package/dist/components/UIContextualMenu/index.d.ts +3 -0
  82. package/dist/components/UIContextualMenu/index.d.ts.map +1 -0
  83. package/dist/components/UIContextualMenu/index.js +15 -0
  84. package/dist/components/UIContextualMenu/index.js.map +1 -0
  85. package/dist/components/UIDatePicker/UIDatePicker.d.ts +49 -0
  86. package/dist/components/UIDatePicker/UIDatePicker.d.ts.map +1 -0
  87. package/dist/components/UIDatePicker/UIDatePicker.js +72 -0
  88. package/dist/components/UIDatePicker/UIDatePicker.js.map +1 -0
  89. package/dist/components/UIDatePicker/UIDatePicker.scss +38 -0
  90. package/dist/components/UIDatePicker/index.d.ts +2 -0
  91. package/dist/components/UIDatePicker/index.d.ts.map +1 -0
  92. package/dist/components/UIDatePicker/index.js +14 -0
  93. package/dist/components/UIDatePicker/index.js.map +1 -0
  94. package/dist/components/UIDialog/UIDialog.d.ts +102 -0
  95. package/dist/components/UIDialog/UIDialog.d.ts.map +1 -0
  96. package/dist/components/UIDialog/UIDialog.js +250 -0
  97. package/dist/components/UIDialog/UIDialog.js.map +1 -0
  98. package/dist/components/UIDialog/index.d.ts +2 -0
  99. package/dist/components/UIDialog/index.d.ts.map +1 -0
  100. package/dist/components/UIDialog/index.js +14 -0
  101. package/dist/components/UIDialog/index.js.map +1 -0
  102. package/dist/components/UIDropdown/UIDropdown.d.ts +76 -0
  103. package/dist/components/UIDropdown/UIDropdown.d.ts.map +1 -0
  104. package/dist/components/UIDropdown/UIDropdown.js +166 -0
  105. package/dist/components/UIDropdown/UIDropdown.js.map +1 -0
  106. package/dist/components/UIDropdown/UIDropdown.scss +80 -0
  107. package/dist/components/UIDropdown/index.d.ts +2 -0
  108. package/dist/components/UIDropdown/index.d.ts.map +1 -0
  109. package/dist/components/UIDropdown/index.js +14 -0
  110. package/dist/components/UIDropdown/index.js.map +1 -0
  111. package/dist/components/UIFlexibleTable/RowActions.d.ts +17 -0
  112. package/dist/components/UIFlexibleTable/RowActions.d.ts.map +1 -0
  113. package/dist/components/UIFlexibleTable/RowActions.js +68 -0
  114. package/dist/components/UIFlexibleTable/RowActions.js.map +1 -0
  115. package/dist/components/UIFlexibleTable/RowData.d.ts +16 -0
  116. package/dist/components/UIFlexibleTable/RowData.d.ts.map +1 -0
  117. package/dist/components/UIFlexibleTable/RowData.js +109 -0
  118. package/dist/components/UIFlexibleTable/RowData.js.map +1 -0
  119. package/dist/components/UIFlexibleTable/UIFlexibleTable.d.ts +12 -0
  120. package/dist/components/UIFlexibleTable/UIFlexibleTable.d.ts.map +1 -0
  121. package/dist/components/UIFlexibleTable/UIFlexibleTable.js +256 -0
  122. package/dist/components/UIFlexibleTable/UIFlexibleTable.js.map +1 -0
  123. package/dist/components/UIFlexibleTable/UIFlexibleTable.scss +408 -0
  124. package/dist/components/UIFlexibleTable/UIFlexibleTableActionButton.d.ts +20 -0
  125. package/dist/components/UIFlexibleTable/UIFlexibleTableActionButton.d.ts.map +1 -0
  126. package/dist/components/UIFlexibleTable/UIFlexibleTableActionButton.js +20 -0
  127. package/dist/components/UIFlexibleTable/UIFlexibleTableActionButton.js.map +1 -0
  128. package/dist/components/UIFlexibleTable/UIFlexibleTableRow.d.ts +28 -0
  129. package/dist/components/UIFlexibleTable/UIFlexibleTableRow.d.ts.map +1 -0
  130. package/dist/components/UIFlexibleTable/UIFlexibleTableRow.js +165 -0
  131. package/dist/components/UIFlexibleTable/UIFlexibleTableRow.js.map +1 -0
  132. package/dist/components/UIFlexibleTable/UIFlexibleTableRowActionButton.d.ts +21 -0
  133. package/dist/components/UIFlexibleTable/UIFlexibleTableRowActionButton.d.ts.map +1 -0
  134. package/dist/components/UIFlexibleTable/UIFlexibleTableRowActionButton.js +20 -0
  135. package/dist/components/UIFlexibleTable/UIFlexibleTableRowActionButton.js.map +1 -0
  136. package/dist/components/UIFlexibleTable/index.d.ts +6 -0
  137. package/dist/components/UIFlexibleTable/index.d.ts.map +1 -0
  138. package/dist/components/UIFlexibleTable/index.js +18 -0
  139. package/dist/components/UIFlexibleTable/index.js.map +1 -0
  140. package/dist/components/UIFlexibleTable/types.d.ts +103 -0
  141. package/dist/components/UIFlexibleTable/types.d.ts.map +1 -0
  142. package/dist/components/UIFlexibleTable/types.js +9 -0
  143. package/dist/components/UIFlexibleTable/types.js.map +1 -0
  144. package/dist/components/UIFlexibleTable/utils.d.ts +29 -0
  145. package/dist/components/UIFlexibleTable/utils.d.ts.map +1 -0
  146. package/dist/components/UIFlexibleTable/utils.js +53 -0
  147. package/dist/components/UIFlexibleTable/utils.js.map +1 -0
  148. package/dist/components/UIFocusZone/UIFocusTrapZone.d.ts +22 -0
  149. package/dist/components/UIFocusZone/UIFocusTrapZone.d.ts.map +1 -0
  150. package/dist/components/UIFocusZone/UIFocusTrapZone.js +33 -0
  151. package/dist/components/UIFocusZone/UIFocusTrapZone.js.map +1 -0
  152. package/dist/components/UIFocusZone/UIFocusZone.d.ts +23 -0
  153. package/dist/components/UIFocusZone/UIFocusZone.d.ts.map +1 -0
  154. package/dist/components/UIFocusZone/UIFocusZone.js +35 -0
  155. package/dist/components/UIFocusZone/UIFocusZone.js.map +1 -0
  156. package/dist/components/UIFocusZone/index.d.ts +3 -0
  157. package/dist/components/UIFocusZone/index.d.ts.map +1 -0
  158. package/dist/components/UIFocusZone/index.js +15 -0
  159. package/dist/components/UIFocusZone/index.js.map +1 -0
  160. package/dist/components/UIIcon/UIIcon.d.ts +24 -0
  161. package/dist/components/UIIcon/UIIcon.d.ts.map +1 -0
  162. package/dist/components/UIIcon/UIIcon.js +37 -0
  163. package/dist/components/UIIcon/UIIcon.js.map +1 -0
  164. package/dist/components/UIIcon/UIIcon.scss +3 -0
  165. package/dist/components/UIIcon/index.d.ts +2 -0
  166. package/dist/components/UIIcon/index.d.ts.map +1 -0
  167. package/dist/components/UIIcon/index.js +14 -0
  168. package/dist/components/UIIcon/index.js.map +1 -0
  169. package/dist/components/UIInput/UITextInput.d.ts +25 -0
  170. package/dist/components/UIInput/UITextInput.d.ts.map +1 -0
  171. package/dist/components/UIInput/UITextInput.js +180 -0
  172. package/dist/components/UIInput/UITextInput.js.map +1 -0
  173. package/dist/components/UIInput/index.d.ts +2 -0
  174. package/dist/components/UIInput/index.d.ts.map +1 -0
  175. package/dist/components/UIInput/index.js +14 -0
  176. package/dist/components/UIInput/index.js.map +1 -0
  177. package/dist/components/UILabel/UILabel.d.ts +30 -0
  178. package/dist/components/UILabel/UILabel.d.ts.map +1 -0
  179. package/dist/components/UILabel/UILabel.js +64 -0
  180. package/dist/components/UILabel/UILabel.js.map +1 -0
  181. package/dist/components/UILabel/index.d.ts +2 -0
  182. package/dist/components/UILabel/index.d.ts.map +1 -0
  183. package/dist/components/UILabel/index.js +14 -0
  184. package/dist/components/UILabel/index.js.map +1 -0
  185. package/dist/components/UILink/UILink.d.ts +22 -0
  186. package/dist/components/UILink/UILink.d.ts.map +1 -0
  187. package/dist/components/UILink/UILink.js +58 -0
  188. package/dist/components/UILink/UILink.js.map +1 -0
  189. package/dist/components/UILink/index.d.ts +2 -0
  190. package/dist/components/UILink/index.d.ts.map +1 -0
  191. package/dist/components/UILink/index.js +14 -0
  192. package/dist/components/UILink/index.js.map +1 -0
  193. package/dist/components/UIList/UIList.d.ts +31 -0
  194. package/dist/components/UIList/UIList.d.ts.map +1 -0
  195. package/dist/components/UIList/UIList.js +120 -0
  196. package/dist/components/UIList/UIList.js.map +1 -0
  197. package/dist/components/UIList/UIList.scss +16 -0
  198. package/dist/components/UIList/index.d.ts +2 -0
  199. package/dist/components/UIList/index.d.ts.map +1 -0
  200. package/dist/components/UIList/index.js +14 -0
  201. package/dist/components/UIList/index.js.map +1 -0
  202. package/dist/components/UILoader/UILoader.d.ts +27 -0
  203. package/dist/components/UILoader/UILoader.d.ts.map +1 -0
  204. package/dist/components/UILoader/UILoader.js +78 -0
  205. package/dist/components/UILoader/UILoader.js.map +1 -0
  206. package/dist/components/UILoader/UILoader.scss +32 -0
  207. package/dist/components/UILoader/index.d.ts +2 -0
  208. package/dist/components/UILoader/index.d.ts.map +1 -0
  209. package/dist/components/UILoader/index.js +14 -0
  210. package/dist/components/UILoader/index.js.map +1 -0
  211. package/dist/components/UIMessageBar/UIMessageBar.d.ts +25 -0
  212. package/dist/components/UIMessageBar/UIMessageBar.d.ts.map +1 -0
  213. package/dist/components/UIMessageBar/UIMessageBar.js +59 -0
  214. package/dist/components/UIMessageBar/UIMessageBar.js.map +1 -0
  215. package/dist/components/UIMessageBar/index.d.ts +2 -0
  216. package/dist/components/UIMessageBar/index.d.ts.map +1 -0
  217. package/dist/components/UIMessageBar/index.js +14 -0
  218. package/dist/components/UIMessageBar/index.js.map +1 -0
  219. package/dist/components/UIModal/UIModal.d.ts +23 -0
  220. package/dist/components/UIModal/UIModal.d.ts.map +1 -0
  221. package/dist/components/UIModal/UIModal.js +43 -0
  222. package/dist/components/UIModal/UIModal.js.map +1 -0
  223. package/dist/components/UIModal/index.d.ts +2 -0
  224. package/dist/components/UIModal/index.d.ts.map +1 -0
  225. package/dist/components/UIModal/index.js +14 -0
  226. package/dist/components/UIModal/index.js.map +1 -0
  227. package/dist/components/UIOverlay/UIOverlay.d.ts +22 -0
  228. package/dist/components/UIOverlay/UIOverlay.d.ts.map +1 -0
  229. package/dist/components/UIOverlay/UIOverlay.js +38 -0
  230. package/dist/components/UIOverlay/UIOverlay.js.map +1 -0
  231. package/dist/components/UIOverlay/index.d.ts +2 -0
  232. package/dist/components/UIOverlay/index.d.ts.map +1 -0
  233. package/dist/components/UIOverlay/index.js +14 -0
  234. package/dist/components/UIOverlay/index.js.map +1 -0
  235. package/dist/components/UISearchBox/UISearchBox.d.ts +22 -0
  236. package/dist/components/UISearchBox/UISearchBox.d.ts.map +1 -0
  237. package/dist/components/UISearchBox/UISearchBox.js +155 -0
  238. package/dist/components/UISearchBox/UISearchBox.js.map +1 -0
  239. package/dist/components/UISearchBox/index.d.ts +4 -0
  240. package/dist/components/UISearchBox/index.d.ts.map +1 -0
  241. package/dist/components/UISearchBox/index.js +14 -0
  242. package/dist/components/UISearchBox/index.js.map +1 -0
  243. package/dist/components/UISection/UISection.d.ts +33 -0
  244. package/dist/components/UISection/UISection.d.ts.map +1 -0
  245. package/dist/components/UISection/UISection.js +47 -0
  246. package/dist/components/UISection/UISection.js.map +1 -0
  247. package/dist/components/UISection/UISection.scss +76 -0
  248. package/dist/components/UISection/UISections.d.ts +251 -0
  249. package/dist/components/UISection/UISections.d.ts.map +1 -0
  250. package/dist/components/UISection/UISections.js +709 -0
  251. package/dist/components/UISection/UISections.js.map +1 -0
  252. package/dist/components/UISection/UISections.scss +62 -0
  253. package/dist/components/UISection/UISplitter.d.ts +97 -0
  254. package/dist/components/UISection/UISplitter.d.ts.map +1 -0
  255. package/dist/components/UISection/UISplitter.js +221 -0
  256. package/dist/components/UISection/UISplitter.js.map +1 -0
  257. package/dist/components/UISection/UISplitter.scss +212 -0
  258. package/dist/components/UISection/_mixins.scss +14 -0
  259. package/dist/components/UISection/_variables.scss +1 -0
  260. package/dist/components/UISection/index.d.ts +4 -0
  261. package/dist/components/UISection/index.d.ts.map +1 -0
  262. package/dist/components/UISection/index.js +16 -0
  263. package/dist/components/UISection/index.js.map +1 -0
  264. package/dist/components/UITable/UITable-helper.d.ts +85 -0
  265. package/dist/components/UITable/UITable-helper.d.ts.map +1 -0
  266. package/dist/components/UITable/UITable-helper.js +267 -0
  267. package/dist/components/UITable/UITable-helper.js.map +1 -0
  268. package/dist/components/UITable/UITable.d.ts +212 -0
  269. package/dist/components/UITable/UITable.d.ts.map +1 -0
  270. package/dist/components/UITable/UITable.js +762 -0
  271. package/dist/components/UITable/UITable.js.map +1 -0
  272. package/dist/components/UITable/UITable.scss +194 -0
  273. package/dist/components/UITable/index.d.ts +3 -0
  274. package/dist/components/UITable/index.d.ts.map +1 -0
  275. package/dist/components/UITable/index.js +15 -0
  276. package/dist/components/UITable/index.js.map +1 -0
  277. package/dist/components/UITable/types.d.ts +76 -0
  278. package/dist/components/UITable/types.d.ts.map +1 -0
  279. package/dist/components/UITable/types.js +27 -0
  280. package/dist/components/UITable/types.js.map +1 -0
  281. package/dist/components/UITabs/UITabs.d.ts +28 -0
  282. package/dist/components/UITabs/UITabs.d.ts.map +1 -0
  283. package/dist/components/UITabs/UITabs.js +70 -0
  284. package/dist/components/UITabs/UITabs.js.map +1 -0
  285. package/dist/components/UITabs/index.d.ts +2 -0
  286. package/dist/components/UITabs/index.d.ts.map +1 -0
  287. package/dist/components/UITabs/index.js +14 -0
  288. package/dist/components/UITabs/index.js.map +1 -0
  289. package/dist/components/UIToggle/UIToggle.d.ts +39 -0
  290. package/dist/components/UIToggle/UIToggle.d.ts.map +1 -0
  291. package/dist/components/UIToggle/UIToggle.js +181 -0
  292. package/dist/components/UIToggle/UIToggle.js.map +1 -0
  293. package/dist/components/UIToggle/index.d.ts +2 -0
  294. package/dist/components/UIToggle/index.d.ts.map +1 -0
  295. package/dist/components/UIToggle/index.js +14 -0
  296. package/dist/components/UIToggle/index.js.map +1 -0
  297. package/dist/components/UIToggleGroup/UIToggleGroup.d.ts +31 -0
  298. package/dist/components/UIToggleGroup/UIToggleGroup.d.ts.map +1 -0
  299. package/dist/components/UIToggleGroup/UIToggleGroup.js +132 -0
  300. package/dist/components/UIToggleGroup/UIToggleGroup.js.map +1 -0
  301. package/dist/components/UIToggleGroup/UIToggleGroup.scss +13 -0
  302. package/dist/components/UIToggleGroup/UIToggleGroup.types.d.ts +23 -0
  303. package/dist/components/UIToggleGroup/UIToggleGroup.types.d.ts.map +1 -0
  304. package/dist/components/UIToggleGroup/UIToggleGroup.types.js +3 -0
  305. package/dist/components/UIToggleGroup/UIToggleGroup.types.js.map +1 -0
  306. package/dist/components/UIToggleGroup/UIToggleGroupOption/UIToggleGroupOption.d.ts +26 -0
  307. package/dist/components/UIToggleGroup/UIToggleGroupOption/UIToggleGroupOption.d.ts.map +1 -0
  308. package/dist/components/UIToggleGroup/UIToggleGroupOption/UIToggleGroupOption.js +74 -0
  309. package/dist/components/UIToggleGroup/UIToggleGroupOption/UIToggleGroupOption.js.map +1 -0
  310. package/dist/components/UIToggleGroup/UIToggleGroupOption/UIToggleGroupOption.scss +74 -0
  311. package/dist/components/UIToggleGroup/UIToggleGroupOption/UIToggleGroupOption.types.d.ts +11 -0
  312. package/dist/components/UIToggleGroup/UIToggleGroupOption/UIToggleGroupOption.types.d.ts.map +1 -0
  313. package/dist/components/UIToggleGroup/UIToggleGroupOption/UIToggleGroupOption.types.js +3 -0
  314. package/dist/components/UIToggleGroup/UIToggleGroupOption/UIToggleGroupOption.types.js.map +1 -0
  315. package/dist/components/UIToggleGroup/UIToggleGroupOption/index.d.ts +3 -0
  316. package/dist/components/UIToggleGroup/UIToggleGroupOption/index.d.ts.map +1 -0
  317. package/dist/components/UIToggleGroup/UIToggleGroupOption/index.js +15 -0
  318. package/dist/components/UIToggleGroup/UIToggleGroupOption/index.js.map +1 -0
  319. package/dist/components/UIToggleGroup/index.d.ts +3 -0
  320. package/dist/components/UIToggleGroup/index.d.ts.map +1 -0
  321. package/dist/components/UIToggleGroup/index.js +15 -0
  322. package/dist/components/UIToggleGroup/index.js.map +1 -0
  323. package/dist/components/UIToolbar/UIToolbar.d.ts +37 -0
  324. package/dist/components/UIToolbar/UIToolbar.d.ts.map +1 -0
  325. package/dist/components/UIToolbar/UIToolbar.js +101 -0
  326. package/dist/components/UIToolbar/UIToolbar.js.map +1 -0
  327. package/dist/components/UIToolbar/UIToolbar.scss +48 -0
  328. package/dist/components/UIToolbar/UIToolbarColumn.d.ts +8 -0
  329. package/dist/components/UIToolbar/UIToolbarColumn.d.ts.map +1 -0
  330. package/dist/components/UIToolbar/UIToolbarColumn.js +30 -0
  331. package/dist/components/UIToolbar/UIToolbarColumn.js.map +1 -0
  332. package/dist/components/UIToolbar/UIToolbarDivider.d.ts +26 -0
  333. package/dist/components/UIToolbar/UIToolbarDivider.d.ts.map +1 -0
  334. package/dist/components/UIToolbar/UIToolbarDivider.js +51 -0
  335. package/dist/components/UIToolbar/UIToolbarDivider.js.map +1 -0
  336. package/dist/components/UIToolbar/index.d.ts +4 -0
  337. package/dist/components/UIToolbar/index.d.ts.map +1 -0
  338. package/dist/components/UIToolbar/index.js +16 -0
  339. package/dist/components/UIToolbar/index.js.map +1 -0
  340. package/dist/components/UITooltip/UITooltip.d.ts +29 -0
  341. package/dist/components/UITooltip/UITooltip.d.ts.map +1 -0
  342. package/dist/components/UITooltip/UITooltip.js +79 -0
  343. package/dist/components/UITooltip/UITooltip.js.map +1 -0
  344. package/dist/components/UITooltip/UITooltipUtils.d.ts +17 -0
  345. package/dist/components/UITooltip/UITooltipUtils.d.ts.map +1 -0
  346. package/dist/components/UITooltip/UITooltipUtils.js +47 -0
  347. package/dist/components/UITooltip/UITooltipUtils.js.map +1 -0
  348. package/dist/components/UITooltip/index.d.ts +3 -0
  349. package/dist/components/UITooltip/index.d.ts.map +1 -0
  350. package/dist/components/UITooltip/index.js +15 -0
  351. package/dist/components/UITooltip/index.js.map +1 -0
  352. package/dist/components/UITreeDropdown/UITreeDropdown.d.ts +255 -0
  353. package/dist/components/UITreeDropdown/UITreeDropdown.d.ts.map +1 -0
  354. package/dist/components/UITreeDropdown/UITreeDropdown.js +638 -0
  355. package/dist/components/UITreeDropdown/UITreeDropdown.js.map +1 -0
  356. package/dist/components/UITreeDropdown/UITreeDropdown.scss +82 -0
  357. package/dist/components/UITreeDropdown/index.d.ts +2 -0
  358. package/dist/components/UITreeDropdown/index.d.ts.map +1 -0
  359. package/dist/components/UITreeDropdown/index.js +14 -0
  360. package/dist/components/UITreeDropdown/index.js.map +1 -0
  361. package/dist/components/UIVerticalDivider/UIVerticalDivider.d.ts +24 -0
  362. package/dist/components/UIVerticalDivider/UIVerticalDivider.d.ts.map +1 -0
  363. package/dist/components/UIVerticalDivider/UIVerticalDivider.js +42 -0
  364. package/dist/components/UIVerticalDivider/UIVerticalDivider.js.map +1 -0
  365. package/dist/components/UIVerticalDivider/index.d.ts +2 -0
  366. package/dist/components/UIVerticalDivider/index.d.ts.map +1 -0
  367. package/dist/components/UIVerticalDivider/index.js +14 -0
  368. package/dist/components/UIVerticalDivider/index.js.map +1 -0
  369. package/dist/components/UIVirtualList/UIAutoSizer.d.ts +22 -0
  370. package/dist/components/UIVirtualList/UIAutoSizer.d.ts.map +1 -0
  371. package/dist/components/UIVirtualList/UIAutoSizer.js +33 -0
  372. package/dist/components/UIVirtualList/UIAutoSizer.js.map +1 -0
  373. package/dist/components/UIVirtualList/UICellMeasurer.d.ts +23 -0
  374. package/dist/components/UIVirtualList/UICellMeasurer.d.ts.map +1 -0
  375. package/dist/components/UIVirtualList/UICellMeasurer.js +33 -0
  376. package/dist/components/UIVirtualList/UICellMeasurer.js.map +1 -0
  377. package/dist/components/UIVirtualList/UIVirtualList.d.ts +43 -0
  378. package/dist/components/UIVirtualList/UIVirtualList.d.ts.map +1 -0
  379. package/dist/components/UIVirtualList/UIVirtualList.js +70 -0
  380. package/dist/components/UIVirtualList/UIVirtualList.js.map +1 -0
  381. package/dist/components/UIVirtualList/index.d.ts +4 -0
  382. package/dist/components/UIVirtualList/index.d.ts.map +1 -0
  383. package/dist/components/UIVirtualList/index.js +16 -0
  384. package/dist/components/UIVirtualList/index.js.map +1 -0
  385. package/dist/components/index.d.ts +34 -0
  386. package/dist/components/index.d.ts.map +1 -0
  387. package/dist/components/index.js +46 -0
  388. package/dist/components/index.js.map +1 -0
  389. package/dist/helper/ValidationMessage/MessageWrapper.d.ts +18 -0
  390. package/dist/helper/ValidationMessage/MessageWrapper.d.ts.map +1 -0
  391. package/dist/helper/ValidationMessage/MessageWrapper.js +35 -0
  392. package/dist/helper/ValidationMessage/MessageWrapper.js.map +1 -0
  393. package/dist/helper/ValidationMessage/MessageWrapper.scss +44 -0
  394. package/dist/helper/ValidationMessage/index.d.ts +3 -0
  395. package/dist/helper/ValidationMessage/index.d.ts.map +1 -0
  396. package/dist/helper/ValidationMessage/index.js +15 -0
  397. package/dist/helper/ValidationMessage/index.js.map +1 -0
  398. package/dist/helper/ValidationMessage/utils.d.ts +32 -0
  399. package/dist/helper/ValidationMessage/utils.d.ts.map +1 -0
  400. package/dist/helper/ValidationMessage/utils.js +124 -0
  401. package/dist/helper/ValidationMessage/utils.js.map +1 -0
  402. package/dist/index.d.ts +3 -0
  403. package/dist/index.d.ts.map +1 -0
  404. package/dist/index.js +15 -0
  405. package/dist/index.js.map +1 -0
  406. package/dist/styles/_color.scss +435 -0
  407. package/dist/styles/_mixins.scss +15 -0
  408. package/dist/styles/_theia_materialcolors.scss +279 -0
  409. package/dist/styles/_typography.scss +72 -0
  410. package/dist/styles/_variables.scss +24 -0
  411. package/dist/styles/ui-components.scss +5 -0
  412. package/dist/utilities/DeepMerge.d.ts +10 -0
  413. package/dist/utilities/DeepMerge.d.ts.map +1 -0
  414. package/dist/utilities/DeepMerge.js +43 -0
  415. package/dist/utilities/DeepMerge.js.map +1 -0
  416. package/dist/utilities/Focus.d.ts +5 -0
  417. package/dist/utilities/Focus.d.ts.map +1 -0
  418. package/dist/utilities/Focus.js +8 -0
  419. package/dist/utilities/Focus.js.map +1 -0
  420. package/dist/utilities/Id.d.ts +3 -0
  421. package/dist/utilities/Id.d.ts.map +1 -0
  422. package/dist/utilities/Id.js +6 -0
  423. package/dist/utilities/Id.js.map +1 -0
  424. package/dist/utilities/Keys.d.ts +3 -0
  425. package/dist/utilities/Keys.d.ts.map +1 -0
  426. package/dist/utilities/Keys.js +6 -0
  427. package/dist/utilities/Keys.js.map +1 -0
  428. package/dist/utilities/index.d.ts +4 -0
  429. package/dist/utilities/index.d.ts.map +1 -0
  430. package/dist/utilities/index.js +16 -0
  431. package/dist/utilities/index.js.map +1 -0
  432. package/package.json +78 -0
  433. package/storybook/509.1060f8f464e74d7e89e3.manager.bundle.js +17 -0
  434. package/storybook/685.6d7c03ae84f4f4910fd8.manager.bundle.js +10 -0
  435. package/storybook/720.3f79f56f8617ba9b098b.manager.bundle.js +1 -0
  436. package/storybook/730.e07ff5529508942d85d4.manager.bundle.js +15 -0
  437. package/storybook/759.8ae5af3b1b3b446a9919.manager.bundle.js +296 -0
  438. package/storybook/906.cf93a831.iframe.bundle.js +1 -0
  439. package/storybook/93.4e7a890e.iframe.bundle.js +301 -0
  440. package/storybook/975.15c711f75c0452ae9e9f.manager.bundle.js +2 -0
  441. package/storybook/978.a517622963996a3b8256.manager.bundle.js +894 -0
  442. package/storybook/983.515d3eedbfaed61e9ae7.manager.bundle.js +1 -0
  443. package/storybook/favicon.ico +0 -0
  444. package/storybook/iframe.html +380 -0
  445. package/storybook/index.html +177 -0
  446. package/storybook/main.e843f431b2692c06059a.manager.bundle.js +1 -0
  447. package/storybook/main.fd2077c6.iframe.bundle.js +98 -0
  448. package/storybook/project.json +1 -0
  449. package/storybook/runtime~main.1118f177d5097a42d314.manager.bundle.js +2 -0
  450. package/storybook/runtime~main.e0688c57.iframe.bundle.js +2 -0
@@ -0,0 +1,638 @@
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.UITreeDropdown = exports.EdgePosition = exports.UIDirectionalHint = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const uuid_1 = __importDefault(require("uuid"));
9
+ const react_2 = require("@fluentui/react");
10
+ Object.defineProperty(exports, "UIDirectionalHint", { enumerable: true, get: function () { return react_2.DirectionalHint; } });
11
+ const UIInput_1 = require("../UIInput");
12
+ const UIContextualMenu_1 = require("../UIContextualMenu");
13
+ const UIIconButton_1 = require("../UIButton/UIIconButton");
14
+ const Icons_1 = require("../Icons");
15
+ require("./UITreeDropdown.scss");
16
+ const SELECTOR_CLASSES = {
17
+ callout: 'ui-tree-callout',
18
+ scrollArea: 'ms-ContextualMenu-container',
19
+ splitButton: 'ms-ContextualMenu-splitMenu'
20
+ };
21
+ var EdgePosition;
22
+ (function (EdgePosition) {
23
+ EdgePosition["First"] = "First";
24
+ EdgePosition["Last"] = "Last";
25
+ })(EdgePosition = exports.EdgePosition || (exports.EdgePosition = {}));
26
+ const KEYBOARD_KEYS = {
27
+ ArrowUp: 'ArrowUp',
28
+ ArrowDown: 'ArrowDown',
29
+ Enter: 'Enter',
30
+ Escape: 'Escape'
31
+ };
32
+ /**
33
+ * UITreeDropdown component.
34
+ * @exports
35
+ * @class UIVerticalDivider
36
+ * @extends {React.Component<UITreeDropdownProps, UITreeDropdownState>}
37
+ */
38
+ class UITreeDropdown extends react_1.default.Component {
39
+ /**
40
+ * Initializes component properties.
41
+ * @param {UITreeDropdownProps} props
42
+ */
43
+ constructor(props) {
44
+ super(props);
45
+ this.UITreeDropdownRef = react_1.default.createRef();
46
+ this.UITreeDropdownFocusZoneRef = react_1.default.createRef();
47
+ this.inputRef = react_1.default.createRef();
48
+ this.submenuRefs = {};
49
+ // Calculated offset for submenu positions
50
+ // It is added because root menu can have scrollbar - in result root menu's items width is smaller than root menu.
51
+ // In such case(when scrollbar) submenu is positioned near to expand/hovered item and position is not on the edge of root menu.
52
+ // Using offset/margin we can do corrections to position of submenu and place it one the edge of root menu.
53
+ this.submenuOffset = 0;
54
+ this.lastKeyDown = '';
55
+ this.componentDidMount = () => {
56
+ if (this.props.items.length) {
57
+ this.buildItems(this.props.items);
58
+ this.setState({ isDisabled: false });
59
+ }
60
+ };
61
+ this.componentDidUpdate = (prevProps) => {
62
+ if (this.props.items.length !== prevProps.items.length) {
63
+ this.setState({ isHidden: true });
64
+ this.setState({ isDisabled: this.props.items.length ? false : true });
65
+ this.buildItems(this.props.items);
66
+ }
67
+ if (this.props.value !== prevProps.value) {
68
+ this.setState({ value: this.props.value });
69
+ }
70
+ // Calculate size for submenu offset
71
+ this.calculateSubmenuOffset();
72
+ };
73
+ /**
74
+ * Map the payload.
75
+ *
76
+ * @param {ItemsProps[]} items
77
+ */
78
+ this.buildItems = (items) => {
79
+ if (this.state.items.length !== items.length) {
80
+ items = items.map(this.buildSubItems);
81
+ const mapedItems = this.mapValuesToContextMenu(items);
82
+ this.setState({
83
+ originalItems: mapedItems,
84
+ items: mapedItems
85
+ });
86
+ }
87
+ };
88
+ /**
89
+ * Sub items values and style.
90
+ *
91
+ * @param {ItemsProps} item
92
+ * @returns {ItemsProps}
93
+ */
94
+ this.buildSubItems = (item) => {
95
+ if (item.children && item.children.length) {
96
+ item.children = item.children.map((el) => {
97
+ const regex = new RegExp(item.value, 'ig');
98
+ const value = el.value.search(regex) === -1 ? `${item.value}${this.state.valueSeparator}${el.value}` : el.value;
99
+ return {
100
+ ...el,
101
+ split: false,
102
+ value
103
+ };
104
+ });
105
+ }
106
+ return item;
107
+ };
108
+ /**
109
+ * Map GD payload to ContextMenu payload.
110
+ *
111
+ * @param {ItemsProps[]} items
112
+ * @param {number} level
113
+ * @returns {IContextualMenuItem[]}
114
+ */
115
+ this.mapValuesToContextMenu = (items, level = 0) => {
116
+ return items.map((item) => {
117
+ if (item.children && item.children.length) {
118
+ item.split = true;
119
+ const refId = this.getRefId(item.value, level);
120
+ if (!this.submenuRefs[refId]) {
121
+ this.submenuRefs[refId] = react_1.default.createRef();
122
+ }
123
+ item.subMenuProps = {
124
+ componentRef: this.submenuRefs[refId],
125
+ items: this.mapValuesToContextMenu(item.children, level + 1),
126
+ focusZoneProps: {
127
+ handleTabKey: react_2.FocusZoneTabbableElements.none,
128
+ onFocus: () => {
129
+ const openerItem = this.defaultSubmenuFocus?.parent;
130
+ if (openerItem && openerItem.item.value === item.value && openerItem.level === level) {
131
+ this.focusItemWithValue(this.state.value, this.defaultSubmenuFocus?.parent?.item.subMenuProps?.items);
132
+ }
133
+ }
134
+ }
135
+ };
136
+ }
137
+ return {
138
+ ...item,
139
+ key: item.value,
140
+ text: item.label,
141
+ className: 'ui-tree-dropdown-list-item',
142
+ onClick: () => this.handleSelection(item.value),
143
+ onRenderContent: this.handleRenderContent
144
+ };
145
+ });
146
+ };
147
+ /**
148
+ * Handle the selected value.
149
+ *
150
+ * @param {string} value
151
+ */
152
+ this.handleSelection = (value) => {
153
+ this.setState({ hasSelected: true, value: value, valueChanged: false }, () => this.props.onParameterValueChange(value));
154
+ };
155
+ /**
156
+ * Handle the keypress value.
157
+ *
158
+ * @param {React.KeyboardEvent<HTMLInputElement>} event
159
+ */
160
+ this.handleKeyPress = (event) => {
161
+ switch (event.key) {
162
+ case 'Enter':
163
+ if (!this.state.isMenuOpen) {
164
+ this.toggleMenu(false, event);
165
+ }
166
+ else {
167
+ this.setState({ valueChanged: true });
168
+ this.handleSelection(this.state.value ? this.state.value : '');
169
+ }
170
+ break;
171
+ case 'ArrowDown':
172
+ if (!this.state.isMenuOpen) {
173
+ // Open dropdown contextMenu if closed
174
+ this.toggleMenu(false, event);
175
+ }
176
+ else {
177
+ this.focusDropdown(event, event.key);
178
+ }
179
+ break;
180
+ case 'Tab':
181
+ if (this.state.isMenuOpen) {
182
+ // Close Dropdown if open
183
+ this.toggleMenu(true);
184
+ }
185
+ this.handleSelection(this.state.value ? this.state.value : '');
186
+ break;
187
+ }
188
+ this.lastKeyDown = event.key;
189
+ };
190
+ /**
191
+ * Handle ContextMenu focus.
192
+ *
193
+ * @param {React.KeyboardEvent<HTMLInputElement>} event
194
+ * @param {string} key
195
+ */
196
+ this.focusDropdown = (event, key) => {
197
+ if (this.UITreeDropdownFocusZoneRef) {
198
+ if (key === KEYBOARD_KEYS.Enter) {
199
+ this.focusItemWithValue(this.state.value, this.state.items);
200
+ }
201
+ else {
202
+ this.UITreeDropdownFocusZoneRef.current?.focus(true);
203
+ }
204
+ // disable scroll which sometimes triggers
205
+ event.preventDefault();
206
+ }
207
+ };
208
+ /**
209
+ * Custom handle the render from subMenu to control the highlight and the .is-selected.
210
+ *
211
+ * @param {IContextualMenuListProps} props
212
+ * @param {IContextualMenuItemRenderFunctions} defaultRenders
213
+ * @returns { React.ReactNode | null}
214
+ */
215
+ this.handleRenderContent = (props, defaultRenders) => {
216
+ props.item.className = props.item.value === this.props.value ? 'is-selected' : '';
217
+ props.item.text = this.highlightQuery(props.item.label, this.state.query);
218
+ this.applySubmenuPosition(props.item);
219
+ return defaultRenders ? defaultRenders.renderItemName(props) : null;
220
+ };
221
+ /**
222
+ * Custom handle the render to control the highlight and the .is-selected.
223
+ *
224
+ * @param {IContextualMenuListProps} props
225
+ * @param {IRenderFunction<IContextualMenuListProps>} defaultRender
226
+ * @returns {JSX.Element | null}
227
+ */
228
+ this.handleRenderMenuList = (props, defaultRender) => {
229
+ let mappedItems = [];
230
+ if (props?.items) {
231
+ mappedItems = props.items.map((item) => {
232
+ item.className = item.value === this.props.value ? 'is-selected' : '';
233
+ item.text = this.highlightQuery(item.label, this.state.query);
234
+ this.applySubmenuPosition(item);
235
+ item.subMenuProps?.items.map((subItem) => {
236
+ subItem.className = subItem.value === this.props.value ? 'is-selected' : '';
237
+ return subItem;
238
+ });
239
+ return { ...item };
240
+ });
241
+ }
242
+ return defaultRender ? defaultRender({ ...props, items: mappedItems }) : null;
243
+ };
244
+ /**
245
+ * Handle on/off ContextualMenu.
246
+ *
247
+ * @param {boolean} status
248
+ * @param {React.KeyboardEvent<HTMLInputElement>} event
249
+ */
250
+ this.toggleMenu = (status, event) => {
251
+ this.setState({
252
+ isHidden: status
253
+ });
254
+ const key = event?.key;
255
+ //select first item after contextMenu is opened
256
+ if (event) {
257
+ setTimeout(() => {
258
+ event.persist();
259
+ this.focusDropdown(event, key);
260
+ }, 0);
261
+ }
262
+ };
263
+ /**
264
+ * Highlight the search string.
265
+ *
266
+ * @param {string} text
267
+ * @param {string} query
268
+ * @returns {JSX.Element}
269
+ */
270
+ this.highlightQuery = (text, query) => {
271
+ return react_1.default.createElement(UIContextualMenu_1.UIHighlightMenuOption, { text: text, query: query });
272
+ };
273
+ /**
274
+ * Filter all options that match the query string.
275
+ *
276
+ * @param {string} input
277
+ * @param {IContextualMenuItem} item
278
+ * @returns {boolean}
279
+ */
280
+ this.filterElement = (input, item) => {
281
+ const regex = new RegExp(input, 'ig');
282
+ if (item?.children?.length) {
283
+ return item.children.filter((item) => this.filterElement(input, item)).length > 0;
284
+ }
285
+ if (item?.value) {
286
+ return item.value.search(regex) !== -1;
287
+ }
288
+ return false;
289
+ };
290
+ /**
291
+ * Update the query string and the prop value.
292
+ *
293
+ * @param {React.FormEvent<HTMLInputElement | HTMLTextAreaElement>} event
294
+ */
295
+ this.handleOnChangeValue = (event) => {
296
+ const query = event.target;
297
+ const list = this.state.originalItems.filter((item) => this.filterElement(query.value, item));
298
+ this.setState({
299
+ hasSelected: false,
300
+ value: query.value,
301
+ items: list,
302
+ query: query.value,
303
+ valueChanged: true
304
+ });
305
+ if (!this.state.isMenuOpen) {
306
+ this.toggleMenu(false);
307
+ }
308
+ };
309
+ /**
310
+ * Method reset states.
311
+ *
312
+ * @param {Event | React.MouseEvent<Element, MouseEvent> | React.KeyboardEvent} event
313
+ */
314
+ this.handleDismiss = (event) => {
315
+ if (event && 'key' in event && event.key === KEYBOARD_KEYS.Escape) {
316
+ this.resetValue();
317
+ }
318
+ else if (!this.state.hasSelected) {
319
+ this.props.onParameterValueChange('');
320
+ }
321
+ this.setState({
322
+ items: this.state.originalItems,
323
+ query: ''
324
+ });
325
+ this.toggleMenu(true);
326
+ this.originalValue = undefined;
327
+ };
328
+ /**
329
+ * Method applies additional styling for submnu callout.
330
+ * It is used to apply scroll width offset - in result submenu should be displayed on the edge of root menu.
331
+ *
332
+ * @param {IContextualMenuItem} item Context menu item.
333
+ */
334
+ this.applySubmenuPosition = (item) => {
335
+ if (item.subMenuProps?.items) {
336
+ if (!item.subMenuProps.calloutProps) {
337
+ item.subMenuProps.calloutProps = {};
338
+ }
339
+ item.subMenuProps.calloutProps.styles = {
340
+ root: {
341
+ marginLeft: this.submenuOffset
342
+ }
343
+ };
344
+ }
345
+ };
346
+ this.getCalloutDomRef = (submenu = false) => {
347
+ const menuLayerClass = `${SELECTOR_CLASSES.callout}${this.state.uiidInput}`;
348
+ const callout = document.querySelector(`.${menuLayerClass}`);
349
+ return submenu && callout ? callout.nextSibling : callout;
350
+ };
351
+ /**
352
+ * Method calculates offset size for submenus.
353
+ * Calculated offset should be used to position submenu right to edge of root menu.
354
+ * - Detects if scrollbar exists.
355
+ * - Calculates size of scrollbar and stores it as value for offset.
356
+ */
357
+ this.calculateSubmenuOffset = () => {
358
+ const callout = this.getCalloutDomRef();
359
+ if (callout) {
360
+ const scrollContainer = callout.querySelector(`.${SELECTOR_CLASSES.scrollArea}`);
361
+ this.submenuOffset = 0;
362
+ if (scrollContainer && scrollContainer.scrollHeight > scrollContainer.clientHeight) {
363
+ this.submenuOffset = scrollContainer.offsetWidth - scrollContainer.clientWidth;
364
+ }
365
+ }
366
+ };
367
+ /**
368
+ * Method updates state, if focus visible, using arrow keys.
369
+ *
370
+ * @param {HTMLElement|React.FocusEvent<HTMLElement>} ev
371
+ */
372
+ this.onFocusElementChanged = (ev) => {
373
+ const menuOption = ev.getElementsByClassName('ts-Menu-option');
374
+ const isFocusVisible = document.getElementsByClassName('ms-Fabric--isFocusVisible');
375
+ if (isFocusVisible.length > 0 && menuOption.length > 0) {
376
+ this.setState({
377
+ value: ev.value ? ev.value : menuOption[0].innerText,
378
+ valueChanged: true
379
+ });
380
+ }
381
+ };
382
+ /**
383
+ * Method handles window keydown event.
384
+ * 1. Stores last keyboard pressed event.
385
+ * 2. Disables CircularNavigation for menus.
386
+ *
387
+ * @param {KeyboardEvent | React.KeyboardEvent<HTMLInputElement>} event
388
+ */
389
+ this.onWindowKeyDown = (event) => {
390
+ this.lastKeyDown = event.key;
391
+ // Avoid circular navigation
392
+ const activeElement = document.activeElement;
393
+ if ([KEYBOARD_KEYS.ArrowDown, KEYBOARD_KEYS.ArrowUp].includes(event.key) && activeElement) {
394
+ // Disable CircularNavigation
395
+ // There is property in focusZoneProps, but it is overwritten by fluent ui and we can not change it from outside
396
+ const positions = this.getEdgePosition(activeElement);
397
+ const fromFirst = positions.includes(EdgePosition.First) && event.key === KEYBOARD_KEYS.ArrowUp;
398
+ const fromLast = positions.includes(EdgePosition.Last) && event.key === KEYBOARD_KEYS.ArrowDown;
399
+ if (fromFirst || fromLast) {
400
+ // Circular navigation case.
401
+ // Check if first item focused in root menu.
402
+ if (fromFirst && activeElement.closest(`.${SELECTOR_CLASSES.callout}${this.state.uiidInput}`)) {
403
+ // Focus input field if navigation triggered from first item using ArrowUp
404
+ this.inputRef.current?.focus();
405
+ }
406
+ event.stopPropagation();
407
+ event.preventDefault();
408
+ }
409
+ }
410
+ };
411
+ /**
412
+ * Method handles focus logic if arrow key was pressed.
413
+ *
414
+ * @param {FocusEvent} event
415
+ */
416
+ this.handleCustomDownKey = (event) => {
417
+ if (this.lastKeyDown.includes('Arrow')) {
418
+ this.lastKeyDown = '';
419
+ this.onFocusElementChanged(event.target);
420
+ }
421
+ };
422
+ /**
423
+ * Method appends custom keydown and focus event listeners when context menu is opened.
424
+ */
425
+ this.applyCustomKeyDownHandlingEvents = () => {
426
+ window.addEventListener('keydown', this.onWindowKeyDown, true);
427
+ window.addEventListener('focus', this.handleCustomDownKey, true);
428
+ };
429
+ /**
430
+ * Method removes custom keydown and focus event listeners when context menu is dismissed.
431
+ */
432
+ this.removeCustomKeyDownHandlingEvents = () => {
433
+ window.removeEventListener('keydown', this.onWindowKeyDown, true);
434
+ window.removeEventListener('focus', this.handleCustomDownKey, true);
435
+ };
436
+ /**
437
+ * Method receives any menu child element and returns edge positions if item is first or last in rendered menu.
438
+ *
439
+ * @param {Element} itemElement Item's DOM to check position.
440
+ * @returns {EdgePosition[]} Returns positions if element is first or last in menu - also can be both.
441
+ */
442
+ this.getEdgePosition = (itemElement) => {
443
+ const container = itemElement.closest('ul');
444
+ const item = itemElement.closest('li');
445
+ const position = [];
446
+ if (container && item) {
447
+ if (container.children[0] === item) {
448
+ position.push(EdgePosition.First);
449
+ }
450
+ if (container.children[container.children.length - 1] === item) {
451
+ position.push(EdgePosition.Last);
452
+ }
453
+ }
454
+ return position;
455
+ };
456
+ /**
457
+ * Recursive method finds menu item info object in tree menu items by passed value/key of item.
458
+ *
459
+ * @param {string} [value] Value/key of item.
460
+ * @param {IContextualMenuItem[]} [items=[]] Menu items.
461
+ * @param {TreeItemInfo} [parent] Item's parent object.
462
+ * @param {number} [level=0] Level of item in tree structure.
463
+ * @returns {TreeItemInfo | undefined} Found menu item.
464
+ */
465
+ this.findItemByValue = (value, items = [], parent, level = 0) => {
466
+ let selectedItem;
467
+ for (let i = 0; i < items.length; i++) {
468
+ const item = items[i];
469
+ const selectedItemTemp = {
470
+ item,
471
+ index: i,
472
+ parent,
473
+ level
474
+ };
475
+ if (item.value === value) {
476
+ selectedItem = selectedItemTemp;
477
+ }
478
+ else if (item.subMenuProps?.items?.length) {
479
+ selectedItem = this.findItemByValue(value, item.subMenuProps.items, selectedItemTemp, level + 1);
480
+ }
481
+ if (selectedItem) {
482
+ break;
483
+ }
484
+ }
485
+ return selectedItem;
486
+ };
487
+ /**
488
+ * Method finds DOM node of menu item based on received item object and container DOM.
489
+ *
490
+ * @param {HTMLElement} container Menu container DOM.
491
+ * @param {TreeItemInfo} item Menu item info object.
492
+ * @returns {HTMLElement | undefined} Found DOM element of item.
493
+ */
494
+ this.getItemTarget = (container, item) => {
495
+ let itemDom;
496
+ const listDom = container.querySelector('.ms-ContextualMenu-list');
497
+ if (listDom && listDom.childNodes[item.index]) {
498
+ const listItemDom = listDom.childNodes[item.index];
499
+ const itemElement = listItemDom.firstChild;
500
+ itemDom = itemElement;
501
+ }
502
+ return itemDom;
503
+ };
504
+ /**
505
+ * Method focuses context menu item based on recieved value/key and menude data(items and hoisted object).
506
+ * Method works with any level menu.
507
+ *
508
+ * @param {string} [value] Value/key of item.
509
+ * @param {IContextualMenuItem[]} [items=[]] Target menu items.
510
+ */
511
+ this.focusItemWithValue = (value, items = []) => {
512
+ const selectedItem = this.findItemByValue(value, items);
513
+ const callout = this.getCalloutDomRef(!!this.defaultSubmenuFocus);
514
+ this.defaultSubmenuFocus = undefined;
515
+ if (selectedItem && callout) {
516
+ let itemDom;
517
+ if (selectedItem.parent) {
518
+ // Item is in next level of menu - we need open submenu
519
+ const parentItemDom = this.getItemTarget(callout, selectedItem.parent);
520
+ if (parentItemDom) {
521
+ this.defaultSubmenuFocus = selectedItem;
522
+ parentItemDom.dispatchEvent(new KeyboardEvent('keydown', { keyCode: 39, which: 39, bubbles: true }));
523
+ }
524
+ }
525
+ else {
526
+ // Item is in first level
527
+ itemDom = this.getItemTarget(callout, selectedItem);
528
+ }
529
+ // Focus target item or focus container while submenu is not opened
530
+ if (itemDom) {
531
+ itemDom.focus();
532
+ }
533
+ else {
534
+ const menuContainer = callout.querySelector(`.${SELECTOR_CLASSES.scrollArea}`);
535
+ menuContainer?.focus();
536
+ }
537
+ }
538
+ };
539
+ /**
540
+ * Generate unique id for menu component references.
541
+ *
542
+ * @param {string} value Value of item.
543
+ * @param {number} level Level of item in tree structure.
544
+ * @returns {string} Id containing value andf level in format "${value}__${level}".
545
+ */
546
+ this.getRefId = (value, level) => {
547
+ return `${value}__${level}`;
548
+ };
549
+ this.state = {
550
+ query: '',
551
+ hasSelected: this.props.value ? true : false,
552
+ // value has to be set, otherwise react treats this as "uncontrolled" component
553
+ // and displays warnings when value is set later on
554
+ value: this.props.value || '',
555
+ isHidden: true,
556
+ originalItems: [],
557
+ items: [],
558
+ valueSeparator: this.props.valueSeparator || '.',
559
+ uiidInput: uuid_1.default.v4(),
560
+ isDisabled: this.props.items.length ? false : true,
561
+ isMenuOpen: false,
562
+ valueChanged: false
563
+ };
564
+ this.toggleMenu = this.toggleMenu.bind(this);
565
+ this.onWindowKeyDown = this.onWindowKeyDown.bind(this);
566
+ this.handleCustomDownKey = this.handleCustomDownKey.bind(this);
567
+ // Suppress icon warnings, as they are irrelevant
568
+ react_2.setIconOptions({ disableWarnings: true });
569
+ }
570
+ /**
571
+ * Method resets value of dropdown input to original value, which was stored after open.
572
+ */
573
+ resetValue() {
574
+ this.setState({
575
+ value: this.originalValue,
576
+ valueChanged: false
577
+ });
578
+ }
579
+ /**
580
+ * @returns {JSX.Element}
581
+ */
582
+ render() {
583
+ let useTargetWidth = true;
584
+ if (this.props.useTargetWidth) {
585
+ useTargetWidth = false;
586
+ }
587
+ return (react_1.default.createElement("div", { className: `ui-treeDropdown ui-treeDropDown-${this.state.uiidInput} ${this.props.label ? 'ui-treeDropdown-with-label' : ''}` },
588
+ this.props.label && (react_1.default.createElement("label", { className: `${this.props.required ? 'required' : ''} ${this.state.isDisabled ? 'disabled' : ''}` }, this.props.label)),
589
+ react_1.default.createElement("div", { className: `ui-treeDropdown-wrapper${this.state.isDisabled ? ' disabled' : ''}
590
+ ui-treeDropdown-wrapper-menu${this.state.isMenuOpen ? '-open' : '-close'} ui-treeDropdown-wrapper-${this.state.uiidInput}` },
591
+ react_1.default.createElement(UIInput_1.UITextInput, { componentRef: this.inputRef, disabled: this.state.isDisabled, autoComplete: "off", value: this.state.value, placeholder: this.props.placeholderText, onKeyDown: this.handleKeyPress, onChange: this.handleOnChangeValue, onClick: () => {
592
+ this.toggleMenu(false);
593
+ }, onFocus: (event) => {
594
+ // Select the text of the input
595
+ event.target.select();
596
+ } }),
597
+ react_1.default.createElement(UIIconButton_1.UIIconButton, { tabIndex: -1, allowDisabledFocus: true, className: "ui-treeDropdown-caret", iconProps: { iconName: Icons_1.UiIcons.ArrowDown }, onClick: () => {
598
+ if (this.state.isHidden) {
599
+ // Menu would become visible - focus input
600
+ this.inputRef.current?.focus();
601
+ }
602
+ this.toggleMenu(!this.state.isHidden);
603
+ } })),
604
+ !this.state.isHidden && (react_1.default.createElement(UIContextualMenu_1.UIContextualMenu, { componentRef: this.UITreeDropdownRef, onRenderMenuList: this.handleRenderMenuList, className: "ui-treeDropDown-context-menu", target: `.ui-treeDropDown-${this.state.uiidInput}`, onMenuOpened: () => {
605
+ this.originalValue = this.state.value;
606
+ this.applyCustomKeyDownHandlingEvents();
607
+ this.setState({
608
+ isMenuOpen: true
609
+ });
610
+ }, onMenuDismissed: () => {
611
+ this.removeCustomKeyDownHandlingEvents();
612
+ this.setState({ isMenuOpen: false });
613
+ if (this.state.valueChanged) {
614
+ this.handleSelection(this.state.value ? this.state.value : '');
615
+ }
616
+ }, useTargetWidth: useTargetWidth, useTargetAsMinWidth: true, onRestoreFocus: (params) => {
617
+ params.originalElement?.focus();
618
+ }, shouldUpdateWhenHidden: true, items: this.state.items, onDismiss: this.handleDismiss, shouldFocusOnContainer: false, focusZoneProps: {
619
+ componentRef: this.UITreeDropdownFocusZoneRef,
620
+ handleTabKey: react_2.FocusZoneTabbableElements.none,
621
+ isCircularNavigation: false
622
+ }, shouldFocusOnMount: false, directionalHint: this.props.directionalHint, calloutProps: {
623
+ layerProps: {
624
+ className: `${SELECTOR_CLASSES.callout}${this.state.uiidInput}`
625
+ },
626
+ onLayerMounted: () => {
627
+ this.calculateSubmenuOffset();
628
+ }
629
+ }, styles: {
630
+ container: {
631
+ maxHeight: 192,
632
+ overflowY: 'auto'
633
+ }
634
+ }, maxWidth: this.props.maxWidth }))));
635
+ }
636
+ }
637
+ exports.UITreeDropdown = UITreeDropdown;
638
+ //# sourceMappingURL=UITreeDropdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UITreeDropdown.js","sourceRoot":"","sources":["../../../src/components/UITreeDropdown/UITreeDropdown.tsx"],"names":[],"mappings":"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"}