@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,95 +1,95 @@
1
- import React from 'react';
2
- import type { IDropdownProps, ICalloutContentStyleProps, ICalloutContentStyles } from '@fluentui/react';
3
- import { DropdownMenuItemType, IDropdownOption } from '@fluentui/react';
4
- import type { UIMessagesExtendedProps } from '../../helper/ValidationMessage';
5
- import './UIDropdown.scss';
6
- export { IDropdownOption as UIDropdownOption };
7
- export { DropdownMenuItemType as UIDropdownMenuItemType };
8
- export interface UIDropdownProps extends IDropdownProps, UIMessagesExtendedProps {
9
- onHandleChange?(option: IDropdownOption, index: number): void;
10
- onHandleOpen?(): void;
11
- onHandleRenderTitle?(items: IDropdownOption[] | undefined): JSX.Element;
12
- useDropdownAsMenuMinWidth?: boolean;
13
- readOnly?: boolean;
14
- calloutCollisionTransformation?: boolean;
15
- }
16
- export interface UIDropdownState {
17
- options: IDropdownOption[];
18
- isOpen: boolean;
19
- }
20
- /**
21
- * UIDropdown component
22
- * based on https://developer.microsoft.com/en-us/fluentui#/controls/web/dropdown
23
- *
24
- * @exports
25
- * @class UIDropdown
26
- * @extends {React.Component<UIDropdownProps, UIDropdownState>}
27
- */
28
- export declare class UIDropdown extends React.Component<UIDropdownProps, UIDropdownState> {
29
- private dropdownDomRef;
30
- private menuDomRef;
31
- private calloutCollisionTransform;
32
- /**
33
- * Initializes component properties.
34
- *
35
- * @param {UIDropdownProps} props
36
- */
37
- constructor(props: UIDropdownProps);
38
- onRenderCaretDown: () => JSX.Element;
39
- onRenderTitle: (items: IDropdownOption[] | undefined) => JSX.Element;
40
- onClick: () => void;
41
- onChange: (event: React.FormEvent<HTMLDivElement>, option?: IDropdownOption, index?: number) => void;
42
- /**
43
- * Method stops event propagation.
44
- *
45
- * @param {React.MouseEvent<HTMLDivElement>} event Mouse event.
46
- */
47
- stopEventPropagation: (event: React.MouseEvent<HTMLDivElement>) => void;
48
- /**
49
- * Method used as workaround to separate focus and hover.
50
- * Default behaviour of fluent ui is that focus follows hover, but we need separe them.
51
- *
52
- * @param {IDropdownOption} [props] Dropdown props.
53
- * @param {(props?: IDropdownOption) => JSX.Element | null} [defaultRender] Default option renderer.
54
- * @returns {JSX.Element | null} Returns dropdown option element.
55
- */
56
- private readonly onRenderOption;
57
- /**
58
- * Method called on combobox item render.
59
- * We should pass query to it and avoid rendering if it is hidden.
60
- *
61
- * @param {IComboBoxOption} props Combobox item props.
62
- * @param {Function} defaultRender Combobox item default renderer.
63
- * @returns {JSX.Element | null} Element to render.
64
- */
65
- private onRenderItem;
66
- /**
67
- * Method returns styles for callout to support property 'useDropdownAsMenuMinWidth'.
68
- * States:
69
- * 1. Min width of callout is equals to width of droipdown input box;
70
- * 2. Max width equals to windows size minus 10px;
71
- * 3. Width is auto - it allows to make callout wider if menu option size exceeds size of dropdown input(min-width).
72
- *
73
- * @param {ICalloutContentStyleProps} calloutStyleProps Current callout styles.
74
- * @returns {Partial<ICalloutContentStyles>} Styles for callout.
75
- */
76
- getCalloutStylesForUseAsMinWidth(calloutStyleProps: ICalloutContentStyleProps): Partial<ICalloutContentStyles>;
77
- /**
78
- * Method returns class names string depending on props and component state.
79
- *
80
- * @param {InputValidationMessageInfo} messageInfo Error/warning message if applied
81
- * @returns {string} Class names of root dropdown element.
82
- */
83
- private getClassNames;
84
- /**
85
- * Method returns additional component properties for accessibility.
86
- *
87
- * @returns {AccessibilityProps} Additional properties.
88
- */
89
- private getAccessibilityProps;
90
- /**
91
- * @returns {JSX.Element}
92
- */
93
- render(): JSX.Element;
94
- }
1
+ import React from 'react';
2
+ import type { IDropdownProps, ICalloutContentStyleProps, ICalloutContentStyles } from '@fluentui/react';
3
+ import { DropdownMenuItemType, IDropdownOption } from '@fluentui/react';
4
+ import type { UIMessagesExtendedProps } from '../../helper/ValidationMessage';
5
+ import './UIDropdown.scss';
6
+ export { IDropdownOption as UIDropdownOption };
7
+ export { DropdownMenuItemType as UIDropdownMenuItemType };
8
+ export interface UIDropdownProps extends IDropdownProps, UIMessagesExtendedProps {
9
+ onHandleChange?(option: IDropdownOption, index: number): void;
10
+ onHandleOpen?(): void;
11
+ onHandleRenderTitle?(items: IDropdownOption[] | undefined): JSX.Element;
12
+ useDropdownAsMenuMinWidth?: boolean;
13
+ readOnly?: boolean;
14
+ calloutCollisionTransformation?: boolean;
15
+ }
16
+ export interface UIDropdownState {
17
+ options: IDropdownOption[];
18
+ isOpen: boolean;
19
+ }
20
+ /**
21
+ * UIDropdown component
22
+ * based on https://developer.microsoft.com/en-us/fluentui#/controls/web/dropdown
23
+ *
24
+ * @exports
25
+ * @class UIDropdown
26
+ * @extends {React.Component<UIDropdownProps, UIDropdownState>}
27
+ */
28
+ export declare class UIDropdown extends React.Component<UIDropdownProps, UIDropdownState> {
29
+ private dropdownDomRef;
30
+ private menuDomRef;
31
+ private calloutCollisionTransform;
32
+ /**
33
+ * Initializes component properties.
34
+ *
35
+ * @param {UIDropdownProps} props
36
+ */
37
+ constructor(props: UIDropdownProps);
38
+ onRenderCaretDown: () => JSX.Element;
39
+ onRenderTitle: (items: IDropdownOption[] | undefined) => JSX.Element;
40
+ onClick: () => void;
41
+ onChange: (event: React.FormEvent<HTMLDivElement>, option?: IDropdownOption, index?: number) => void;
42
+ /**
43
+ * Method stops event propagation.
44
+ *
45
+ * @param {React.MouseEvent<HTMLDivElement>} event Mouse event.
46
+ */
47
+ stopEventPropagation: (event: React.MouseEvent<HTMLDivElement>) => void;
48
+ /**
49
+ * Method used as workaround to separate focus and hover.
50
+ * Default behaviour of fluent ui is that focus follows hover, but we need separe them.
51
+ *
52
+ * @param {IDropdownOption} [props] Dropdown props.
53
+ * @param {(props?: IDropdownOption) => JSX.Element | null} [defaultRender] Default option renderer.
54
+ * @returns {JSX.Element | null} Returns dropdown option element.
55
+ */
56
+ private readonly onRenderOption;
57
+ /**
58
+ * Method called on combobox item render.
59
+ * We should pass query to it and avoid rendering if it is hidden.
60
+ *
61
+ * @param {IComboBoxOption} props Combobox item props.
62
+ * @param {Function} defaultRender Combobox item default renderer.
63
+ * @returns {JSX.Element | null} Element to render.
64
+ */
65
+ private onRenderItem;
66
+ /**
67
+ * Method returns styles for callout to support property 'useDropdownAsMenuMinWidth'.
68
+ * States:
69
+ * 1. Min width of callout is equals to width of droipdown input box;
70
+ * 2. Max width equals to windows size minus 10px;
71
+ * 3. Width is auto - it allows to make callout wider if menu option size exceeds size of dropdown input(min-width).
72
+ *
73
+ * @param {ICalloutContentStyleProps} calloutStyleProps Current callout styles.
74
+ * @returns {Partial<ICalloutContentStyles>} Styles for callout.
75
+ */
76
+ getCalloutStylesForUseAsMinWidth(calloutStyleProps: ICalloutContentStyleProps): Partial<ICalloutContentStyles>;
77
+ /**
78
+ * Method returns class names string depending on props and component state.
79
+ *
80
+ * @param {InputValidationMessageInfo} messageInfo Error/warning message if applied
81
+ * @returns {string} Class names of root dropdown element.
82
+ */
83
+ private getClassNames;
84
+ /**
85
+ * Method returns additional component properties for accessibility.
86
+ *
87
+ * @returns {AccessibilityProps} Additional properties.
88
+ */
89
+ private getAccessibilityProps;
90
+ /**
91
+ * @returns {JSX.Element}
92
+ */
93
+ render(): JSX.Element;
94
+ }
95
95
  //# sourceMappingURL=UIDropdown.d.ts.map
@@ -1,225 +1,225 @@
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.UIDropdown = exports.UIDropdownMenuItemType = void 0;
7
- const react_1 = __importDefault(require("react"));
8
- const react_2 = require("@fluentui/react");
9
- Object.defineProperty(exports, "UIDropdownMenuItemType", { enumerable: true, get: function () { return react_2.DropdownMenuItemType; } });
10
- const UIIcon_1 = require("../UIIcon");
11
- const ValidationMessage_1 = require("../../helper/ValidationMessage");
12
- const UILabel_1 = require("../UILabel");
13
- const utils_1 = require("./utils");
14
- const UICallout_1 = require("../UICallout");
15
- require("./UIDropdown.scss");
16
- const ERROR_BORDER_COLOR = 'var(--vscode-inputValidation-errorBorder)';
17
- /**
18
- * UIDropdown component
19
- * based on https://developer.microsoft.com/en-us/fluentui#/controls/web/dropdown
20
- *
21
- * @exports
22
- * @class UIDropdown
23
- * @extends {React.Component<UIDropdownProps, UIDropdownState>}
24
- */
25
- class UIDropdown extends react_1.default.Component {
26
- /**
27
- * Initializes component properties.
28
- *
29
- * @param {UIDropdownProps} props
30
- */
31
- constructor(props) {
32
- super(props);
33
- this.dropdownDomRef = react_1.default.createRef();
34
- this.menuDomRef = react_1.default.createRef();
35
- this.calloutCollisionTransform = new UICallout_1.CalloutCollisionTransform(this.dropdownDomRef, this.menuDomRef);
36
- this.onRenderCaretDown = () => {
37
- return react_1.default.createElement(UIIcon_1.UIIcon, { iconName: "ArrowDown", style: { height: '100%' } });
38
- };
39
- this.onRenderTitle = (items) => {
40
- if (this.props.multiSelect && this.props.onHandleRenderTitle) {
41
- return this.props.onHandleRenderTitle(items);
42
- }
43
- else {
44
- const { multiSelectDelimiter = ', ' } = this.props;
45
- if (items) {
46
- const title = items.map((i) => i.text).join(multiSelectDelimiter);
47
- return react_1.default.createElement(react_1.default.Fragment, null, title);
48
- }
49
- else {
50
- return react_1.default.createElement(react_1.default.Fragment, null, this.props.title);
51
- }
52
- }
53
- };
54
- this.onClick = ( /* event: React.FormEvent<HTMLDivElement>, option?: IDropdownOption, index?: number */) => {
55
- this.setState((prevState) => ({ isOpen: !prevState.isOpen }), () => {
56
- if (this.props.multiSelect && this.props.onHandleOpen) {
57
- if (this.state.isOpen) {
58
- this.setState((prevState) => ({ isOpen: !prevState.isOpen }));
59
- this.props.onHandleOpen();
60
- }
61
- }
62
- });
63
- };
64
- this.onChange = (event, option, index) => {
65
- if (this.props.multiSelect && this.props.onHandleChange) {
66
- if (option && index) {
67
- this.props.onHandleChange(option, index);
68
- }
69
- }
70
- };
71
- /**
72
- * Method stops event propagation.
73
- *
74
- * @param {React.MouseEvent<HTMLDivElement>} event Mouse event.
75
- */
76
- this.stopEventPropagation = (event) => {
77
- event.stopPropagation();
78
- };
79
- /**
80
- * Method used as workaround to separate focus and hover.
81
- * Default behaviour of fluent ui is that focus follows hover, but we need separe them.
82
- *
83
- * @param {IDropdownOption} [props] Dropdown props.
84
- * @param {(props?: IDropdownOption) => JSX.Element | null} [defaultRender] Default option renderer.
85
- * @returns {JSX.Element | null} Returns dropdown option element.
86
- */
87
- this.onRenderOption = (props, defaultRender) => {
88
- return (react_1.default.createElement(react_1.default.Fragment, null,
89
- defaultRender?.(props),
90
- props?.itemType !== react_2.DropdownMenuItemType.Header && (react_1.default.createElement("div", { onMouseEnter: this.stopEventPropagation.bind(this), onMouseLeave: this.stopEventPropagation.bind(this), onMouseMove: this.stopEventPropagation.bind(this), className: "ts-dropdown-item-blocker" }))));
91
- };
92
- /**
93
- * Method called on combobox item render.
94
- * We should pass query to it and avoid rendering if it is hidden.
95
- *
96
- * @param {IComboBoxOption} props Combobox item props.
97
- * @param {Function} defaultRender Combobox item default renderer.
98
- * @returns {JSX.Element | null} Element to render.
99
- */
100
- this.onRenderItem = (props, defaultRender) => {
101
- if (defaultRender && props) {
102
- if (props.title === undefined) {
103
- // Apply title by default if property not provided
104
- // In older fluent-ui versions it was applied by default, but behavior changed in version '8.66.2'
105
- props.title = props.text;
106
- }
107
- return defaultRender(props);
108
- }
109
- return null;
110
- };
111
- this.state = {
112
- options: [],
113
- isOpen: false
114
- };
115
- }
116
- /**
117
- * Method returns styles for callout to support property 'useDropdownAsMenuMinWidth'.
118
- * States:
119
- * 1. Min width of callout is equals to width of droipdown input box;
120
- * 2. Max width equals to windows size minus 10px;
121
- * 3. Width is auto - it allows to make callout wider if menu option size exceeds size of dropdown input(min-width).
122
- *
123
- * @param {ICalloutContentStyleProps} calloutStyleProps Current callout styles.
124
- * @returns {Partial<ICalloutContentStyles>} Styles for callout.
125
- */
126
- getCalloutStylesForUseAsMinWidth(calloutStyleProps) {
127
- return {
128
- root: {
129
- minWidth: calloutStyleProps.calloutWidth,
130
- width: 'auto',
131
- maxWidth: 'calc(100% - 10px)'
132
- }
133
- };
134
- }
135
- /**
136
- * Method returns class names string depending on props and component state.
137
- *
138
- * @param {InputValidationMessageInfo} messageInfo Error/warning message if applied
139
- * @returns {string} Class names of root dropdown element.
140
- */
141
- getClassNames(messageInfo) {
142
- const { className, readOnly, disabled } = this.props;
143
- const errorSuffix = messageInfo.message ? ValidationMessage_1.MESSAGE_TYPES_CLASSNAME_MAP.get(messageInfo.type) : undefined;
144
- let classNames = `ts-SelectBox${messageInfo.message ? ' ts-SelectBox--' + errorSuffix : ''}`;
145
- // Readonly
146
- if (readOnly && !disabled) {
147
- classNames += ' ts-SelectBox--readonly';
148
- }
149
- // Disabled
150
- if (disabled) {
151
- classNames += ' ts-SelectBox--disabled';
152
- }
153
- // Custom external classes
154
- if (className) {
155
- classNames += ` ${className}`;
156
- }
157
- // Empty value
158
- if ((0, utils_1.isDropdownEmpty)(this.props)) {
159
- classNames += ' ts-SelectBox--empty';
160
- }
161
- return classNames;
162
- }
163
- /**
164
- * Method returns additional component properties for accessibility.
165
- *
166
- * @returns {AccessibilityProps} Additional properties.
167
- */
168
- getAccessibilityProps() {
169
- const { readOnly, disabled } = this.props;
170
- const additionalProps = {};
171
- if (readOnly && !disabled) {
172
- // Make dropdown focusable
173
- additionalProps.tabIndex = 0;
174
- additionalProps['data-is-focusable'] = true;
175
- // Adjust aria attributes for readonly
176
- additionalProps['aria-disabled'] = undefined;
177
- additionalProps['aria-readonly'] = true;
178
- }
179
- else if (disabled) {
180
- additionalProps.tabIndex = 0;
181
- additionalProps['data-is-focusable'] = true;
182
- }
183
- return additionalProps;
184
- }
185
- /**
186
- * @returns {JSX.Element}
187
- */
188
- render() {
189
- const messageInfo = (0, ValidationMessage_1.getMessageInfo)(this.props);
190
- const additionalProps = this.getAccessibilityProps();
191
- const dropdownStyles = () => ({
192
- ...{
193
- label: {
194
- ...UILabel_1.labelGlobalStyle,
195
- ...(this.props.disabled && {
196
- opacity: '0.4'
197
- }),
198
- ...(this.props.required && {
199
- selectors: {
200
- '::after': {
201
- content: `' *'`,
202
- color: ERROR_BORDER_COLOR,
203
- paddingRight: 12
204
- }
205
- }
206
- })
207
- },
208
- errorMessage: [messageInfo.style]
209
- }
210
- });
211
- return (react_1.default.createElement(react_2.Dropdown, { ref: this.dropdownDomRef, calloutProps: {
212
- calloutMaxHeight: 200,
213
- styles: this.props.useDropdownAsMenuMinWidth ? this.getCalloutStylesForUseAsMinWidth : undefined,
214
- className: 'ts-Callout ts-Callout-Dropdown',
215
- popupProps: {
216
- ref: this.menuDomRef
217
- },
218
- ...(0, utils_1.getCalloutCollisionTransformationProps)(this.calloutCollisionTransform, this.props.multiSelect, this.props.calloutCollisionTransformation)
219
- }, onRenderCaretDown: this.onRenderCaretDown, onClick: this.onClick, onChange: this.onChange, onRenderTitle: this.onRenderTitle, onRenderOption: this.onRenderOption.bind(this), onRenderItem: this.onRenderItem.bind(this),
220
- // Use default responsiveMode as xxxLarge, which does not enter mobile mode.
221
- responsiveMode: react_2.ResponsiveMode.xxxLarge, disabled: this.props.readOnly, ...additionalProps, ...this.props, styles: dropdownStyles, className: this.getClassNames(messageInfo), errorMessage: messageInfo.message }));
222
- }
223
- }
224
- exports.UIDropdown = UIDropdown;
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.UIDropdown = exports.UIDropdownMenuItemType = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const react_2 = require("@fluentui/react");
9
+ Object.defineProperty(exports, "UIDropdownMenuItemType", { enumerable: true, get: function () { return react_2.DropdownMenuItemType; } });
10
+ const UIIcon_1 = require("../UIIcon");
11
+ const ValidationMessage_1 = require("../../helper/ValidationMessage");
12
+ const UILabel_1 = require("../UILabel");
13
+ const utils_1 = require("./utils");
14
+ const UICallout_1 = require("../UICallout");
15
+ require("./UIDropdown.scss");
16
+ const ERROR_BORDER_COLOR = 'var(--vscode-inputValidation-errorBorder)';
17
+ /**
18
+ * UIDropdown component
19
+ * based on https://developer.microsoft.com/en-us/fluentui#/controls/web/dropdown
20
+ *
21
+ * @exports
22
+ * @class UIDropdown
23
+ * @extends {React.Component<UIDropdownProps, UIDropdownState>}
24
+ */
25
+ class UIDropdown extends react_1.default.Component {
26
+ /**
27
+ * Initializes component properties.
28
+ *
29
+ * @param {UIDropdownProps} props
30
+ */
31
+ constructor(props) {
32
+ super(props);
33
+ this.dropdownDomRef = react_1.default.createRef();
34
+ this.menuDomRef = react_1.default.createRef();
35
+ this.calloutCollisionTransform = new UICallout_1.CalloutCollisionTransform(this.dropdownDomRef, this.menuDomRef);
36
+ this.onRenderCaretDown = () => {
37
+ return react_1.default.createElement(UIIcon_1.UIIcon, { iconName: "ArrowDown", style: { height: '100%' } });
38
+ };
39
+ this.onRenderTitle = (items) => {
40
+ if (this.props.multiSelect && this.props.onHandleRenderTitle) {
41
+ return this.props.onHandleRenderTitle(items);
42
+ }
43
+ else {
44
+ const { multiSelectDelimiter = ', ' } = this.props;
45
+ if (items) {
46
+ const title = items.map((i) => i.text).join(multiSelectDelimiter);
47
+ return react_1.default.createElement(react_1.default.Fragment, null, title);
48
+ }
49
+ else {
50
+ return react_1.default.createElement(react_1.default.Fragment, null, this.props.title);
51
+ }
52
+ }
53
+ };
54
+ this.onClick = ( /* event: React.FormEvent<HTMLDivElement>, option?: IDropdownOption, index?: number */) => {
55
+ this.setState((prevState) => ({ isOpen: !prevState.isOpen }), () => {
56
+ if (this.props.multiSelect && this.props.onHandleOpen) {
57
+ if (this.state.isOpen) {
58
+ this.setState((prevState) => ({ isOpen: !prevState.isOpen }));
59
+ this.props.onHandleOpen();
60
+ }
61
+ }
62
+ });
63
+ };
64
+ this.onChange = (event, option, index) => {
65
+ if (this.props.multiSelect && this.props.onHandleChange) {
66
+ if (option && index) {
67
+ this.props.onHandleChange(option, index);
68
+ }
69
+ }
70
+ };
71
+ /**
72
+ * Method stops event propagation.
73
+ *
74
+ * @param {React.MouseEvent<HTMLDivElement>} event Mouse event.
75
+ */
76
+ this.stopEventPropagation = (event) => {
77
+ event.stopPropagation();
78
+ };
79
+ /**
80
+ * Method used as workaround to separate focus and hover.
81
+ * Default behaviour of fluent ui is that focus follows hover, but we need separe them.
82
+ *
83
+ * @param {IDropdownOption} [props] Dropdown props.
84
+ * @param {(props?: IDropdownOption) => JSX.Element | null} [defaultRender] Default option renderer.
85
+ * @returns {JSX.Element | null} Returns dropdown option element.
86
+ */
87
+ this.onRenderOption = (props, defaultRender) => {
88
+ return (react_1.default.createElement(react_1.default.Fragment, null,
89
+ defaultRender?.(props),
90
+ props?.itemType !== react_2.DropdownMenuItemType.Header && (react_1.default.createElement("div", { onMouseEnter: this.stopEventPropagation.bind(this), onMouseLeave: this.stopEventPropagation.bind(this), onMouseMove: this.stopEventPropagation.bind(this), className: "ts-dropdown-item-blocker" }))));
91
+ };
92
+ /**
93
+ * Method called on combobox item render.
94
+ * We should pass query to it and avoid rendering if it is hidden.
95
+ *
96
+ * @param {IComboBoxOption} props Combobox item props.
97
+ * @param {Function} defaultRender Combobox item default renderer.
98
+ * @returns {JSX.Element | null} Element to render.
99
+ */
100
+ this.onRenderItem = (props, defaultRender) => {
101
+ if (defaultRender && props) {
102
+ if (props.title === undefined) {
103
+ // Apply title by default if property not provided
104
+ // In older fluent-ui versions it was applied by default, but behavior changed in version '8.66.2'
105
+ props.title = props.text;
106
+ }
107
+ return defaultRender(props);
108
+ }
109
+ return null;
110
+ };
111
+ this.state = {
112
+ options: [],
113
+ isOpen: false
114
+ };
115
+ }
116
+ /**
117
+ * Method returns styles for callout to support property 'useDropdownAsMenuMinWidth'.
118
+ * States:
119
+ * 1. Min width of callout is equals to width of droipdown input box;
120
+ * 2. Max width equals to windows size minus 10px;
121
+ * 3. Width is auto - it allows to make callout wider if menu option size exceeds size of dropdown input(min-width).
122
+ *
123
+ * @param {ICalloutContentStyleProps} calloutStyleProps Current callout styles.
124
+ * @returns {Partial<ICalloutContentStyles>} Styles for callout.
125
+ */
126
+ getCalloutStylesForUseAsMinWidth(calloutStyleProps) {
127
+ return {
128
+ root: {
129
+ minWidth: calloutStyleProps.calloutWidth,
130
+ width: 'auto',
131
+ maxWidth: 'calc(100% - 10px)'
132
+ }
133
+ };
134
+ }
135
+ /**
136
+ * Method returns class names string depending on props and component state.
137
+ *
138
+ * @param {InputValidationMessageInfo} messageInfo Error/warning message if applied
139
+ * @returns {string} Class names of root dropdown element.
140
+ */
141
+ getClassNames(messageInfo) {
142
+ const { className, readOnly, disabled } = this.props;
143
+ const errorSuffix = messageInfo.message ? ValidationMessage_1.MESSAGE_TYPES_CLASSNAME_MAP.get(messageInfo.type) : undefined;
144
+ let classNames = `ts-SelectBox${messageInfo.message ? ' ts-SelectBox--' + errorSuffix : ''}`;
145
+ // Readonly
146
+ if (readOnly && !disabled) {
147
+ classNames += ' ts-SelectBox--readonly';
148
+ }
149
+ // Disabled
150
+ if (disabled) {
151
+ classNames += ' ts-SelectBox--disabled';
152
+ }
153
+ // Custom external classes
154
+ if (className) {
155
+ classNames += ` ${className}`;
156
+ }
157
+ // Empty value
158
+ if ((0, utils_1.isDropdownEmpty)(this.props)) {
159
+ classNames += ' ts-SelectBox--empty';
160
+ }
161
+ return classNames;
162
+ }
163
+ /**
164
+ * Method returns additional component properties for accessibility.
165
+ *
166
+ * @returns {AccessibilityProps} Additional properties.
167
+ */
168
+ getAccessibilityProps() {
169
+ const { readOnly, disabled } = this.props;
170
+ const additionalProps = {};
171
+ if (readOnly && !disabled) {
172
+ // Make dropdown focusable
173
+ additionalProps.tabIndex = 0;
174
+ additionalProps['data-is-focusable'] = true;
175
+ // Adjust aria attributes for readonly
176
+ additionalProps['aria-disabled'] = undefined;
177
+ additionalProps['aria-readonly'] = true;
178
+ }
179
+ else if (disabled) {
180
+ additionalProps.tabIndex = 0;
181
+ additionalProps['data-is-focusable'] = true;
182
+ }
183
+ return additionalProps;
184
+ }
185
+ /**
186
+ * @returns {JSX.Element}
187
+ */
188
+ render() {
189
+ const messageInfo = (0, ValidationMessage_1.getMessageInfo)(this.props);
190
+ const additionalProps = this.getAccessibilityProps();
191
+ const dropdownStyles = () => ({
192
+ ...{
193
+ label: {
194
+ ...UILabel_1.labelGlobalStyle,
195
+ ...(this.props.disabled && {
196
+ opacity: '0.4'
197
+ }),
198
+ ...(this.props.required && {
199
+ selectors: {
200
+ '::after': {
201
+ content: `' *'`,
202
+ color: ERROR_BORDER_COLOR,
203
+ paddingRight: 12
204
+ }
205
+ }
206
+ })
207
+ },
208
+ errorMessage: [messageInfo.style]
209
+ }
210
+ });
211
+ return (react_1.default.createElement(react_2.Dropdown, { ref: this.dropdownDomRef, calloutProps: {
212
+ calloutMaxHeight: 200,
213
+ styles: this.props.useDropdownAsMenuMinWidth ? this.getCalloutStylesForUseAsMinWidth : undefined,
214
+ className: 'ts-Callout ts-Callout-Dropdown',
215
+ popupProps: {
216
+ ref: this.menuDomRef
217
+ },
218
+ ...(0, utils_1.getCalloutCollisionTransformationProps)(this.calloutCollisionTransform, this.props.multiSelect, this.props.calloutCollisionTransformation)
219
+ }, onRenderCaretDown: this.onRenderCaretDown, onClick: this.onClick, onChange: this.onChange, onRenderTitle: this.onRenderTitle, onRenderOption: this.onRenderOption.bind(this), onRenderItem: this.onRenderItem.bind(this),
220
+ // Use default responsiveMode as xxxLarge, which does not enter mobile mode.
221
+ responsiveMode: react_2.ResponsiveMode.xxxLarge, disabled: this.props.readOnly, ...additionalProps, ...this.props, styles: dropdownStyles, className: this.getClassNames(messageInfo), errorMessage: messageInfo.message }));
222
+ }
223
+ }
224
+ exports.UIDropdown = UIDropdown;
225
225
  //# sourceMappingURL=UIDropdown.js.map
@@ -1,3 +1,3 @@
1
- export * from './UIDropdown';
2
- export * from './utils';
1
+ export * from './UIDropdown';
2
+ export * from './utils';
3
3
  //# sourceMappingURL=index.d.ts.map