@gooddata/sdk-ui-kit 10.38.0 → 10.39.0-alpha.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 (320) hide show
  1. package/esm/@ui/@types/icon.d.ts +1 -1
  2. package/esm/@ui/@types/icon.d.ts.map +1 -1
  3. package/esm/@ui/@types/themeColors.d.ts +1 -1
  4. package/esm/@ui/@types/themeColors.d.ts.map +1 -1
  5. package/esm/@ui/@types/themeColors.js +1 -1
  6. package/esm/@ui/@types/themeColors.js.map +1 -1
  7. package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTable.d.ts.map +1 -1
  8. package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTable.js +6 -18
  9. package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTable.js.map +1 -1
  10. package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableDropdownItem.d.ts +1 -1
  11. package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableDropdownItem.d.ts.map +1 -1
  12. package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableDropdownItem.js +3 -1
  13. package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableDropdownItem.js.map +1 -1
  14. package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableFilter.d.ts +2 -2
  15. package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableFilter.d.ts.map +1 -1
  16. package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableFilter.js +3 -4
  17. package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableFilter.js.map +1 -1
  18. package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableRow.js +4 -2
  19. package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableRow.js.map +1 -1
  20. package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableToolbar.js +3 -3
  21. package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableToolbar.js.map +1 -1
  22. package/esm/@ui/UiAsyncTable/types.d.ts +3 -4
  23. package/esm/@ui/UiAsyncTable/types.d.ts.map +1 -1
  24. package/esm/@ui/UiFocusManager/UiAutofocus.d.ts.map +1 -1
  25. package/esm/@ui/UiFocusManager/UiAutofocus.js +4 -4
  26. package/esm/@ui/UiFocusManager/UiAutofocus.js.map +1 -1
  27. package/esm/@ui/UiFocusManager/UiFocusManager.d.ts +2 -1
  28. package/esm/@ui/UiFocusManager/UiFocusManager.d.ts.map +1 -1
  29. package/esm/@ui/UiFocusManager/UiFocusManager.js +2 -2
  30. package/esm/@ui/UiFocusManager/UiFocusManager.js.map +1 -1
  31. package/esm/@ui/UiFocusManager/UiFocusTrap.d.ts +2 -1
  32. package/esm/@ui/UiFocusManager/UiFocusTrap.d.ts.map +1 -1
  33. package/esm/@ui/UiFocusManager/UiFocusTrap.js +5 -5
  34. package/esm/@ui/UiFocusManager/UiFocusTrap.js.map +1 -1
  35. package/esm/@ui/UiFocusManager/utils.d.ts +9 -1
  36. package/esm/@ui/UiFocusManager/utils.d.ts.map +1 -1
  37. package/esm/@ui/UiFocusManager/utils.js +14 -2
  38. package/esm/@ui/UiFocusManager/utils.js.map +1 -1
  39. package/esm/@ui/UiIcon/icons.d.ts.map +1 -1
  40. package/esm/@ui/UiIcon/icons.js +8 -0
  41. package/esm/@ui/UiIcon/icons.js.map +1 -1
  42. package/esm/@ui/UiIconButton/UiIconButtonRenderer.d.ts +1 -0
  43. package/esm/@ui/UiIconButton/UiIconButtonRenderer.d.ts.map +1 -1
  44. package/esm/@ui/UiIconButton/UiIconButtonRenderer.js +2 -2
  45. package/esm/@ui/UiIconButton/UiIconButtonRenderer.js.map +1 -1
  46. package/esm/@ui/UiTooltip/UiTooltip.d.ts.map +1 -1
  47. package/esm/@ui/UiTooltip/UiTooltip.js +6 -1
  48. package/esm/@ui/UiTooltip/UiTooltip.js.map +1 -1
  49. package/esm/@ui/UiTooltip/types.d.ts +2 -0
  50. package/esm/@ui/UiTooltip/types.d.ts.map +1 -1
  51. package/esm/@ui/UiTreeview/UITreeviewItem.d.ts +3 -1
  52. package/esm/@ui/UiTreeview/UITreeviewItem.d.ts.map +1 -1
  53. package/esm/@ui/UiTreeview/UITreeviewItem.js +17 -7
  54. package/esm/@ui/UiTreeview/UITreeviewItem.js.map +1 -1
  55. package/esm/@ui/UiTreeview/UiTreeview.d.ts.map +1 -1
  56. package/esm/@ui/UiTreeview/UiTreeview.js +8 -3
  57. package/esm/@ui/UiTreeview/UiTreeview.js.map +1 -1
  58. package/esm/@ui/UiTreeview/UiTreeviewRoot.d.ts +3 -3
  59. package/esm/@ui/UiTreeview/UiTreeviewRoot.d.ts.map +1 -1
  60. package/esm/@ui/UiTreeview/UiTreeviewRoot.js +2 -2
  61. package/esm/@ui/UiTreeview/UiTreeviewRoot.js.map +1 -1
  62. package/esm/@ui/UiTreeview/defaults/DefaultUiTreeViewItemComponent.d.ts +1 -1
  63. package/esm/@ui/UiTreeview/defaults/DefaultUiTreeViewItemComponent.d.ts.map +1 -1
  64. package/esm/@ui/UiTreeview/defaults/DefaultUiTreeViewItemComponent.js +2 -2
  65. package/esm/@ui/UiTreeview/defaults/DefaultUiTreeViewItemComponent.js.map +1 -1
  66. package/esm/@ui/UiTreeview/types.d.ts +16 -5
  67. package/esm/@ui/UiTreeview/types.d.ts.map +1 -1
  68. package/esm/@ui/UiTreeview/utils.d.ts +1 -1
  69. package/esm/@ui/UiTreeview/utils.d.ts.map +1 -1
  70. package/esm/@ui/UiTreeview/utils.js +2 -2
  71. package/esm/@ui/UiTreeview/utils.js.map +1 -1
  72. package/esm/AutoSize/AutoSize.d.ts +2 -13
  73. package/esm/AutoSize/AutoSize.d.ts.map +1 -1
  74. package/esm/AutoSize/AutoSize.js +21 -24
  75. package/esm/AutoSize/AutoSize.js.map +1 -1
  76. package/esm/Bubble/Bubble.d.ts +1 -30
  77. package/esm/Bubble/Bubble.d.ts.map +1 -1
  78. package/esm/Bubble/Bubble.js +79 -82
  79. package/esm/Bubble/Bubble.js.map +1 -1
  80. package/esm/Button/Button.d.ts.map +1 -1
  81. package/esm/Button/Button.js +10 -2
  82. package/esm/Button/Button.js.map +1 -1
  83. package/esm/Button/typings.d.ts +1 -0
  84. package/esm/Button/typings.d.ts.map +1 -1
  85. package/esm/ColorPicker/ColorPicker.d.ts.map +1 -1
  86. package/esm/ColorPicker/ColorPicker.js +29 -39
  87. package/esm/ColorPicker/ColorPicker.js.map +1 -1
  88. package/esm/ColorPicker/components/ColorPickerMatrix.d.ts +2 -4
  89. package/esm/ColorPicker/components/ColorPickerMatrix.d.ts.map +1 -1
  90. package/esm/ColorPicker/components/ColorPickerMatrix.js +23 -21
  91. package/esm/ColorPicker/components/ColorPickerMatrix.js.map +1 -1
  92. package/esm/ColorPicker/components/ColorsPreview.d.ts +2 -5
  93. package/esm/ColorPicker/components/ColorsPreview.d.ts.map +1 -1
  94. package/esm/ColorPicker/components/ColorsPreview.js +12 -20
  95. package/esm/ColorPicker/components/ColorsPreview.js.map +1 -1
  96. package/esm/ColorPicker/components/HexColorInput.d.ts +2 -6
  97. package/esm/ColorPicker/components/HexColorInput.d.ts.map +1 -1
  98. package/esm/ColorPicker/components/HexColorInput.js +12 -17
  99. package/esm/ColorPicker/components/HexColorInput.js.map +1 -1
  100. package/esm/ColorPicker/components/HueColorPicker.d.ts +2 -14
  101. package/esm/ColorPicker/components/HueColorPicker.d.ts.map +1 -1
  102. package/esm/ColorPicker/components/HueColorPicker.js +38 -46
  103. package/esm/ColorPicker/components/HueColorPicker.js.map +1 -1
  104. package/esm/Dialog/ConfirmDialog.d.ts +2 -4
  105. package/esm/Dialog/ConfirmDialog.d.ts.map +1 -1
  106. package/esm/Dialog/ConfirmDialog.js +9 -12
  107. package/esm/Dialog/ConfirmDialog.js.map +1 -1
  108. package/esm/Dialog/ConfirmDialogBase.d.ts.map +1 -1
  109. package/esm/Dialog/ConfirmDialogBase.js +1 -1
  110. package/esm/Dialog/ConfirmDialogBase.js.map +1 -1
  111. package/esm/Dialog/DialogBase.d.ts.map +1 -1
  112. package/esm/Dialog/DialogBase.js +3 -2
  113. package/esm/Dialog/DialogBase.js.map +1 -1
  114. package/esm/Dialog/ShareDialog/ShareDialogBase/AddGranteeButton.d.ts.map +1 -1
  115. package/esm/Dialog/ShareDialog/ShareDialogBase/AddGranteeButton.js +5 -6
  116. package/esm/Dialog/ShareDialog/ShareDialogBase/AddGranteeButton.js.map +1 -1
  117. package/esm/Dialog/typings.d.ts +5 -0
  118. package/esm/Dialog/typings.d.ts.map +1 -1
  119. package/esm/Dropdown/Dropdown.d.ts +1 -1
  120. package/esm/Dropdown/Dropdown.d.ts.map +1 -1
  121. package/esm/Dropdown/Dropdown.js.map +1 -1
  122. package/esm/FilterLabel/FilterLabel.d.ts.map +1 -1
  123. package/esm/FilterLabel/FilterLabel.js +41 -60
  124. package/esm/FilterLabel/FilterLabel.js.map +1 -1
  125. package/esm/FlexDimensions/FlexDimensions.js +1 -1
  126. package/esm/Form/Checkbox.d.ts +8 -20
  127. package/esm/Form/Checkbox.d.ts.map +1 -1
  128. package/esm/Form/Checkbox.js +15 -27
  129. package/esm/Form/Checkbox.js.map +1 -1
  130. package/esm/Form/InputPure.d.ts +20 -20
  131. package/esm/Form/InputPure.d.ts.map +1 -1
  132. package/esm/Form/InputPure.js +1 -1
  133. package/esm/Form/InputPure.js.map +1 -1
  134. package/esm/Header/Header.d.ts.map +1 -1
  135. package/esm/Header/Header.js +262 -219
  136. package/esm/Header/Header.js.map +1 -1
  137. package/esm/Header/HeaderMenu.d.ts +1 -3
  138. package/esm/Header/HeaderMenu.d.ts.map +1 -1
  139. package/esm/Header/HeaderMenu.js +19 -25
  140. package/esm/Header/HeaderMenu.js.map +1 -1
  141. package/esm/List/InsightListItem.d.ts +1 -14
  142. package/esm/List/InsightListItem.d.ts.map +1 -1
  143. package/esm/List/InsightListItem.js +34 -41
  144. package/esm/List/InsightListItem.js.map +1 -1
  145. package/esm/List/InvertableSelect/InvertableSelectSelectionStatus.d.ts.map +1 -1
  146. package/esm/List/InvertableSelect/InvertableSelectSelectionStatus.js +5 -4
  147. package/esm/List/InvertableSelect/InvertableSelectSelectionStatus.js.map +1 -1
  148. package/esm/List/InvertableSelect/InvertableSelectVirtualised.d.ts.map +1 -1
  149. package/esm/List/InvertableSelect/InvertableSelectVirtualised.js +11 -6
  150. package/esm/List/InvertableSelect/InvertableSelectVirtualised.js.map +1 -1
  151. package/esm/List/LegacyInvertableList.d.ts +3 -74
  152. package/esm/List/LegacyInvertableList.d.ts.map +1 -1
  153. package/esm/List/LegacyInvertableList.js +189 -169
  154. package/esm/List/LegacyInvertableList.js.map +1 -1
  155. package/esm/List/LegacyList.d.ts +2 -16
  156. package/esm/List/LegacyList.d.ts.map +1 -1
  157. package/esm/List/LegacyList.js +40 -65
  158. package/esm/List/LegacyList.js.map +1 -1
  159. package/esm/List/LegacyListItem.d.ts +2 -7
  160. package/esm/List/LegacyListItem.d.ts.map +1 -1
  161. package/esm/List/LegacyListItem.js +11 -17
  162. package/esm/List/LegacyListItem.js.map +1 -1
  163. package/esm/List/LegacyMultiSelectList.d.ts +1 -47
  164. package/esm/List/LegacyMultiSelectList.d.ts.map +1 -1
  165. package/esm/List/LegacyMultiSelectList.js +78 -108
  166. package/esm/List/LegacyMultiSelectList.js.map +1 -1
  167. package/esm/List/LegacyMultiSelectListItem.d.ts +2 -20
  168. package/esm/List/LegacyMultiSelectListItem.d.ts.map +1 -1
  169. package/esm/List/LegacyMultiSelectListItem.js +29 -49
  170. package/esm/List/LegacyMultiSelectListItem.js.map +1 -1
  171. package/esm/List/LegacySingleSelectList.d.ts +2 -27
  172. package/esm/List/LegacySingleSelectList.d.ts.map +1 -1
  173. package/esm/List/LegacySingleSelectList.js +32 -45
  174. package/esm/List/LegacySingleSelectList.js.map +1 -1
  175. package/esm/List/LegacySingleSelectListItem.d.ts +2 -21
  176. package/esm/List/LegacySingleSelectListItem.d.ts.map +1 -1
  177. package/esm/List/LegacySingleSelectListItem.js +37 -52
  178. package/esm/List/LegacySingleSelectListItem.js.map +1 -1
  179. package/esm/List/MultiSelectList.d.ts.map +1 -1
  180. package/esm/List/MultiSelectList.js +51 -53
  181. package/esm/List/MultiSelectList.js.map +1 -1
  182. package/esm/List/MultiSelectListItem.d.ts +2 -6
  183. package/esm/List/MultiSelectListItem.d.ts.map +1 -1
  184. package/esm/List/MultiSelectListItem.js +19 -23
  185. package/esm/List/MultiSelectListItem.js.map +1 -1
  186. package/esm/Menu/ControlledMenu.d.ts +1 -9
  187. package/esm/Menu/ControlledMenu.d.ts.map +1 -1
  188. package/esm/Menu/ControlledMenu.js +21 -33
  189. package/esm/Menu/ControlledMenu.js.map +1 -1
  190. package/esm/Menu/MenuState.d.ts +1 -9
  191. package/esm/Menu/MenuState.d.ts.map +1 -1
  192. package/esm/Menu/MenuState.js +19 -28
  193. package/esm/Menu/MenuState.js.map +1 -1
  194. package/esm/Menu/menuOpener/MenuOpenedByClick.d.ts.map +1 -1
  195. package/esm/Menu/menuOpener/MenuOpenedByClick.js +6 -5
  196. package/esm/Menu/menuOpener/MenuOpenedByClick.js.map +1 -1
  197. package/esm/Menu/menuOpener/MenuOpenedByHover.d.ts +1 -9
  198. package/esm/Menu/menuOpener/MenuOpenedByHover.d.ts.map +1 -1
  199. package/esm/Menu/menuOpener/MenuOpenedByHover.js +28 -28
  200. package/esm/Menu/menuOpener/MenuOpenedByHover.js.map +1 -1
  201. package/esm/Menu/menuOpener/MenuOpener.d.ts +1 -5
  202. package/esm/Menu/menuOpener/MenuOpener.d.ts.map +1 -1
  203. package/esm/Menu/menuOpener/MenuOpener.js +26 -17
  204. package/esm/Menu/menuOpener/MenuOpener.js.map +1 -1
  205. package/esm/Menu/positioning/MenuPosition.d.ts +1 -13
  206. package/esm/Menu/positioning/MenuPosition.d.ts.map +1 -1
  207. package/esm/Menu/positioning/MenuPosition.js +17 -26
  208. package/esm/Menu/positioning/MenuPosition.js.map +1 -1
  209. package/esm/Menu/positioning/PositionedMenuContent.d.ts +1 -11
  210. package/esm/Menu/positioning/PositionedMenuContent.d.ts.map +1 -1
  211. package/esm/Menu/positioning/PositionedMenuContent.js +47 -48
  212. package/esm/Menu/positioning/PositionedMenuContent.js.map +1 -1
  213. package/esm/Menu/utils/OutsideClickHandler.d.ts +1 -13
  214. package/esm/Menu/utils/OutsideClickHandler.d.ts.map +1 -1
  215. package/esm/Menu/utils/OutsideClickHandler.js +23 -37
  216. package/esm/Menu/utils/OutsideClickHandler.js.map +1 -1
  217. package/esm/Menu/utils/RenderChildrenInPortal.d.ts +1 -7
  218. package/esm/Menu/utils/RenderChildrenInPortal.d.ts.map +1 -1
  219. package/esm/Menu/utils/RenderChildrenInPortal.js +20 -19
  220. package/esm/Menu/utils/RenderChildrenInPortal.js.map +1 -1
  221. package/esm/Messages/Messages.d.ts +7 -1
  222. package/esm/Messages/Messages.d.ts.map +1 -1
  223. package/esm/Messages/Messages.js +31 -3
  224. package/esm/Messages/Messages.js.map +1 -1
  225. package/esm/Messages/ToastMessages.d.ts.map +1 -1
  226. package/esm/Messages/ToastMessages.js +7 -6
  227. package/esm/Messages/ToastMessages.js.map +1 -1
  228. package/esm/Messages/typings.d.ts +5 -0
  229. package/esm/Messages/typings.d.ts.map +1 -1
  230. package/esm/Messages/typings.js +1 -1
  231. package/esm/Overlay/ErrorOverlay.d.ts +1 -3
  232. package/esm/Overlay/ErrorOverlay.d.ts.map +1 -1
  233. package/esm/Overlay/ErrorOverlay.js +9 -11
  234. package/esm/Overlay/ErrorOverlay.js.map +1 -1
  235. package/esm/RecurrenceForm/DateTime.d.ts.map +1 -1
  236. package/esm/RecurrenceForm/DateTime.js +37 -23
  237. package/esm/RecurrenceForm/DateTime.js.map +1 -1
  238. package/esm/ResponsiveText/ResponsiveText.d.ts +1 -0
  239. package/esm/ResponsiveText/ResponsiveText.d.ts.map +1 -1
  240. package/esm/ResponsiveText/ResponsiveText.js +3 -3
  241. package/esm/ResponsiveText/ResponsiveText.js.map +1 -1
  242. package/esm/ShortenedText/ShortenedText.js +1 -1
  243. package/esm/Spinner/Spinner.d.ts +2 -8
  244. package/esm/Spinner/Spinner.d.ts.map +1 -1
  245. package/esm/Spinner/Spinner.js +13 -19
  246. package/esm/Spinner/Spinner.js.map +1 -1
  247. package/esm/Tabs/Tabs.d.ts +2 -14
  248. package/esm/Tabs/Tabs.d.ts.map +1 -1
  249. package/esm/Tabs/Tabs.js +31 -43
  250. package/esm/Tabs/Tabs.js.map +1 -1
  251. package/esm/TextAreaWithSubmit/TextAreaWithSubmit.d.ts +3 -46
  252. package/esm/TextAreaWithSubmit/TextAreaWithSubmit.d.ts.map +1 -1
  253. package/esm/TextAreaWithSubmit/TextAreaWithSubmit.js +100 -133
  254. package/esm/TextAreaWithSubmit/TextAreaWithSubmit.js.map +1 -1
  255. package/esm/Timepicker/Timepicker.d.ts +3 -29
  256. package/esm/Timepicker/Timepicker.d.ts.map +1 -1
  257. package/esm/Timepicker/Timepicker.js +79 -102
  258. package/esm/Timepicker/Timepicker.js.map +1 -1
  259. package/esm/index.d.ts +2 -2
  260. package/esm/index.d.ts.map +1 -1
  261. package/esm/index.js +1 -1
  262. package/esm/index.js.map +1 -1
  263. package/esm/measureNumberFormat/customFormatDialog/CustomFormatDialog.d.ts +1 -11
  264. package/esm/measureNumberFormat/customFormatDialog/CustomFormatDialog.d.ts.map +1 -1
  265. package/esm/measureNumberFormat/customFormatDialog/CustomFormatDialog.js +28 -37
  266. package/esm/measureNumberFormat/customFormatDialog/CustomFormatDialog.js.map +1 -1
  267. package/esm/measureNumberFormat/customFormatDialog/FormatInput.d.ts.map +1 -1
  268. package/esm/measureNumberFormat/customFormatDialog/FormatInput.js +12 -14
  269. package/esm/measureNumberFormat/customFormatDialog/FormatInput.js.map +1 -1
  270. package/esm/measureNumberFormat/customFormatDialog/formatTemplatesDropdown/DropdownItem.d.ts +2 -12
  271. package/esm/measureNumberFormat/customFormatDialog/formatTemplatesDropdown/DropdownItem.d.ts.map +1 -1
  272. package/esm/measureNumberFormat/customFormatDialog/formatTemplatesDropdown/DropdownItem.js +21 -28
  273. package/esm/measureNumberFormat/customFormatDialog/formatTemplatesDropdown/DropdownItem.js.map +1 -1
  274. package/esm/measureNumberFormat/customFormatDialog/formatTemplatesDropdown/FormatTemplatesDropdown.d.ts +1 -13
  275. package/esm/measureNumberFormat/customFormatDialog/formatTemplatesDropdown/FormatTemplatesDropdown.d.ts.map +1 -1
  276. package/esm/measureNumberFormat/customFormatDialog/formatTemplatesDropdown/FormatTemplatesDropdown.js +20 -26
  277. package/esm/measureNumberFormat/customFormatDialog/formatTemplatesDropdown/FormatTemplatesDropdown.js.map +1 -1
  278. package/esm/measureNumberFormat/customFormatDialog/previewSection/ExtendedPreview.d.ts +1 -8
  279. package/esm/measureNumberFormat/customFormatDialog/previewSection/ExtendedPreview.d.ts.map +1 -1
  280. package/esm/measureNumberFormat/customFormatDialog/previewSection/ExtendedPreview.js +16 -22
  281. package/esm/measureNumberFormat/customFormatDialog/previewSection/ExtendedPreview.js.map +1 -1
  282. package/esm/measureNumberFormat/customFormatDialog/previewSection/Preview.d.ts +1 -8
  283. package/esm/measureNumberFormat/customFormatDialog/previewSection/Preview.d.ts.map +1 -1
  284. package/esm/measureNumberFormat/customFormatDialog/previewSection/Preview.js +15 -19
  285. package/esm/measureNumberFormat/customFormatDialog/previewSection/Preview.js.map +1 -1
  286. package/esm/measureNumberFormat/presetsDropdown/PresetsDropdown.d.ts +1 -6
  287. package/esm/measureNumberFormat/presetsDropdown/PresetsDropdown.d.ts.map +1 -1
  288. package/esm/measureNumberFormat/presetsDropdown/PresetsDropdown.js +19 -25
  289. package/esm/measureNumberFormat/presetsDropdown/PresetsDropdown.js.map +1 -1
  290. package/esm/measureNumberFormat/presetsDropdown/PresetsDropdownItem.d.ts +1 -5
  291. package/esm/measureNumberFormat/presetsDropdown/PresetsDropdownItem.d.ts.map +1 -1
  292. package/esm/measureNumberFormat/presetsDropdown/PresetsDropdownItem.js +13 -20
  293. package/esm/measureNumberFormat/presetsDropdown/PresetsDropdownItem.js.map +1 -1
  294. package/esm/sdk-ui-kit.d.ts +99 -257
  295. package/esm/typings/accessibility.d.ts +2 -1
  296. package/esm/typings/accessibility.d.ts.map +1 -1
  297. package/esm/utils/domUtilities.d.ts +2 -2
  298. package/esm/utils/domUtilities.d.ts.map +1 -1
  299. package/esm/utils/domUtilities.js +28 -4
  300. package/esm/utils/domUtilities.js.map +1 -1
  301. package/package.json +8 -8
  302. package/src/@ui/UiAsyncTable/asyncTable.scss +19 -2
  303. package/src/@ui/themeColorsMap.scss +1 -0
  304. package/styles/css/invertableSelect.css +13 -0
  305. package/styles/css/invertableSelect.css.map +1 -1
  306. package/styles/css/main.css +33 -1
  307. package/styles/css/main.css.map +1 -1
  308. package/styles/scss/invertableSelect.scss +15 -0
  309. package/esm/@ui/UiAsyncTable/UiAsyncTable/AsyncTableFilter.d.ts +0 -7
  310. package/esm/@ui/UiAsyncTable/UiAsyncTable/AsyncTableFilter.d.ts.map +0 -1
  311. package/esm/@ui/UiAsyncTable/UiAsyncTable/AsyncTableFilter.js +0 -32
  312. package/esm/@ui/UiAsyncTable/UiAsyncTable/AsyncTableFilter.js.map +0 -1
  313. package/esm/@ui/UiAsyncTable/UiAsyncTable/AsyncTableRow.d.ts +0 -6
  314. package/esm/@ui/UiAsyncTable/UiAsyncTable/AsyncTableRow.d.ts.map +0 -1
  315. package/esm/@ui/UiAsyncTable/UiAsyncTable/AsyncTableRow.js +0 -86
  316. package/esm/@ui/UiAsyncTable/UiAsyncTable/AsyncTableRow.js.map +0 -1
  317. package/esm/@ui/UiAsyncTable/UiAsyncTable/AsyncTableToolbar.d.ts +0 -6
  318. package/esm/@ui/UiAsyncTable/UiAsyncTable/AsyncTableToolbar.d.ts.map +0 -1
  319. package/esm/@ui/UiAsyncTable/UiAsyncTable/AsyncTableToolbar.js +0 -72
  320. package/esm/@ui/UiAsyncTable/UiAsyncTable/AsyncTableToolbar.js.map +0 -1
@@ -1,66 +1,58 @@
1
- // (C) 2007-2022 GoodData Corporation
2
- import React, { Component } from "react";
1
+ // (C) 2007-2025 GoodData Corporation
2
+ import React, { useRef, useState, useEffect, useCallback, useMemo } from "react";
3
3
  import identity from "lodash/identity.js";
4
4
  /**
5
5
  * @internal
6
6
  */
7
- export class TextAreaWithSubmit extends Component {
8
- static defaultProps = {
9
- className: "",
10
- maxLength: 100000,
11
- rows: 1,
12
- onCancel: identity,
13
- onEditingStart: identity,
14
- onChange: identity,
15
- placeholder: "",
16
- scrollToEndOnEditingStart: true,
17
- autofocus: false,
18
- disabled: false,
19
- };
20
- root;
21
- textarea;
22
- focusTimeout = 0;
23
- constructor(props) {
24
- super(props);
25
- this.state = {
26
- value: props.defaultValue,
27
- isEditing: false,
28
- };
29
- this.root = React.createRef();
30
- this.textarea = React.createRef();
31
- }
32
- componentDidMount() {
33
- const rootNode = this.root.current;
34
- rootNode.addEventListener("dragstart", this.onSelectStart);
35
- rootNode.addEventListener("selectstart", this.onSelectStart);
36
- if (this.props.autofocus) {
37
- this.edit();
7
+ export function TextAreaWithSubmit({ className = "", maxLength = 100000, rows = 1, onCancel = identity, onEditingStart = identity, onChange = identity, placeholder = "", scrollToEndOnEditingStart = true, autofocus = false, disabled = false, defaultValue, onSubmit: onSubmitProp, }) {
8
+ const [value, setValue] = useState(defaultValue);
9
+ const [isEditing, setIsEditing] = useState(false);
10
+ const root = useRef();
11
+ const textarea = useRef();
12
+ const focusTimeoutRef = useRef(0);
13
+ const onSelectStart = useCallback((e) => {
14
+ e.stopPropagation();
15
+ }, []);
16
+ const isClickOutsideTextarea = useCallback((clickedTarget) => {
17
+ return textarea.current && !textarea.current.contains(clickedTarget);
18
+ }, []);
19
+ const onDocumentClick = useCallback((e) => {
20
+ if (isClickOutsideTextarea(e.target)) {
21
+ const textAreaNode = textarea.current;
22
+ textAreaNode.blur();
38
23
  }
39
- }
40
- UNSAFE_componentWillReceiveProps(newProps) {
41
- if (this.props.defaultValue !== newProps.defaultValue) {
42
- this.setState({
43
- value: newProps.defaultValue,
44
- });
24
+ }, [isClickOutsideTextarea]);
25
+ const removeListeners = useCallback(() => {
26
+ document.removeEventListener("mousedown", onDocumentClick);
27
+ }, [onDocumentClick]);
28
+ const onSubmit = useCallback(() => {
29
+ const oldValue = defaultValue;
30
+ const newTrimmedValue = value.trim();
31
+ if (newTrimmedValue === "") {
32
+ setValue("");
45
33
  }
46
- }
47
- componentWillUnmount() {
48
- const rootNode = this.root.current;
49
- rootNode.removeEventListener("dragstart", this.onSelectStart);
50
- rootNode.removeEventListener("selectstart", this.onSelectStart);
51
- this.removeListeners();
52
- clearTimeout(this.focusTimeout);
53
- }
54
- onDocumentClick = (e) => {
55
- if (this.isClickOutsideTextarea(e.target)) {
56
- const textAreaNode = this.textarea.current;
57
- textAreaNode.blur();
34
+ if (oldValue !== newTrimmedValue) {
35
+ onSubmitProp(newTrimmedValue);
58
36
  }
59
- };
60
- onSelectStart(e) {
61
- e.stopPropagation();
62
- }
63
- onKeyDown = (e) => {
37
+ else {
38
+ onCancel(oldValue);
39
+ }
40
+ setValue(newTrimmedValue);
41
+ setIsEditing(false);
42
+ removeListeners();
43
+ }, [defaultValue, value, onSubmitProp, onCancel, removeListeners]);
44
+ const onCancelHandler = useCallback(() => {
45
+ onCancel(defaultValue);
46
+ setValue(defaultValue);
47
+ setIsEditing(false);
48
+ removeListeners();
49
+ }, [defaultValue, onCancel, removeListeners]);
50
+ const onChangeHandler = useCallback((e) => {
51
+ const { value } = e.target;
52
+ setValue(value);
53
+ onChange(value);
54
+ }, [onChange]);
55
+ const onKeyDown = useCallback((e) => {
64
56
  const isSubmit = e.key === "Enter" && !e.shiftKey;
65
57
  const isCancel = e.key === "Escape";
66
58
  if (isSubmit || isCancel) {
@@ -68,93 +60,68 @@ export class TextAreaWithSubmit extends Component {
68
60
  e.stopPropagation();
69
61
  }
70
62
  if (isSubmit) {
71
- this.onSubmit();
63
+ onSubmit();
72
64
  }
73
65
  if (isCancel) {
74
- this.onCancel();
75
- }
76
- };
77
- onSubmit = () => {
78
- const oldValue = this.props.defaultValue;
79
- const newTrimmedValue = this.state.value.trim();
80
- if (newTrimmedValue === "") {
81
- this.setState({
82
- value: "",
83
- });
84
- }
85
- if (oldValue !== newTrimmedValue) {
86
- this.props.onSubmit(newTrimmedValue);
66
+ onCancelHandler();
87
67
  }
88
- else {
89
- this.props.onCancel(oldValue);
90
- }
91
- this.setState({
92
- value: newTrimmedValue,
93
- isEditing: false,
94
- });
95
- this.removeListeners();
96
- };
97
- onCancel = () => {
98
- const { defaultValue } = this.props;
99
- this.props.onCancel(defaultValue);
100
- this.setState({
101
- value: defaultValue,
102
- isEditing: false,
103
- });
104
- this.removeListeners();
105
- };
106
- onChange = (e) => {
107
- const { value } = e.target;
108
- this.setState({ value }, () => {
109
- this.props.onChange(value);
110
- });
111
- };
112
- edit = (_e) => {
113
- if (!this.state.isEditing) {
114
- this.setState({
115
- isEditing: true,
116
- }, () => {
117
- this.selectAndFocus();
118
- document.addEventListener("mousedown", this.onDocumentClick);
119
- });
120
- this.props.onEditingStart();
121
- }
122
- };
123
- isClickOutsideTextarea(clickedTarget) {
124
- return this.textarea.current && !this.textarea.current.contains(clickedTarget);
125
- }
126
- isMultiLine() {
127
- return this.props.rows > 1;
128
- }
129
- removeListeners() {
130
- document.removeEventListener("mousedown", this.onDocumentClick);
131
- }
132
- selectAndFocus = () => {
133
- const componentElement = this.textarea.current;
134
- const { scrollToEndOnEditingStart } = this.props;
68
+ }, [onSubmit, onCancelHandler]);
69
+ const isMultiLine = useCallback(() => {
70
+ return rows > 1;
71
+ }, [rows]);
72
+ const selectAndFocus = useCallback(() => {
73
+ const componentElement = textarea.current;
135
74
  if (componentElement) {
136
- window.clearTimeout(this.focusTimeout);
75
+ window.clearTimeout(focusTimeoutRef.current);
137
76
  // without the timeout the focus sometimes got stolen by the previously active item for some reason
138
- this.focusTimeout = window.setTimeout(() => {
77
+ focusTimeoutRef.current = window.setTimeout(() => {
139
78
  componentElement.focus();
140
- if (scrollToEndOnEditingStart && this.isMultiLine()) {
79
+ if (scrollToEndOnEditingStart && isMultiLine()) {
141
80
  componentElement.scrollTop = componentElement.scrollHeight;
142
81
  }
143
82
  componentElement.select();
144
83
  }, 1);
145
84
  }
146
- };
147
- renderTextarea(style = {}) {
148
- const { rows, disabled, maxLength, placeholder, className } = this.props;
149
- const { value } = this.state;
150
- return (React.createElement("textarea", { className: className, style: style, rows: rows, maxLength: maxLength, onKeyDown: this.onKeyDown, onBlur: this.onSubmit, onChange: this.onChange, value: value, placeholder: placeholder, ref: this.textarea, disabled: disabled }));
151
- }
152
- renderTextAreaWithSubmitEdit() {
153
- return this.renderTextarea({});
154
- }
155
- render() {
156
- return (React.createElement("div", { role: "editable-label", onClick: this.edit },
157
- React.createElement("div", { ref: this.root }, this.renderTextAreaWithSubmitEdit())));
158
- }
85
+ }, [scrollToEndOnEditingStart, isMultiLine]);
86
+ const edit = useCallback((_e) => {
87
+ if (!isEditing) {
88
+ setIsEditing(true);
89
+ // Use setTimeout to ensure state update is processed before side effects
90
+ setTimeout(() => {
91
+ selectAndFocus();
92
+ document.addEventListener("mousedown", onDocumentClick);
93
+ }, 0);
94
+ onEditingStart();
95
+ }
96
+ }, [isEditing, selectAndFocus, onDocumentClick, onEditingStart]);
97
+ const renderTextarea = useCallback((style = {}) => {
98
+ return (React.createElement("textarea", { className: className, style: style, rows: rows, maxLength: maxLength, onKeyDown: onKeyDown, onBlur: onSubmit, onChange: onChangeHandler, value: value, placeholder: placeholder, ref: textarea, disabled: disabled }));
99
+ }, [className, rows, maxLength, onKeyDown, onSubmit, onChangeHandler, value, placeholder, disabled]);
100
+ const renderTextAreaWithSubmitEdit = useMemo(() => {
101
+ return renderTextarea({});
102
+ }, [renderTextarea]);
103
+ useEffect(() => {
104
+ const rootNode = root.current;
105
+ if (rootNode) {
106
+ rootNode.addEventListener("dragstart", onSelectStart);
107
+ rootNode.addEventListener("selectstart", onSelectStart);
108
+ }
109
+ if (autofocus) {
110
+ edit();
111
+ }
112
+ return () => {
113
+ if (rootNode) {
114
+ rootNode.removeEventListener("dragstart", onSelectStart);
115
+ rootNode.removeEventListener("selectstart", onSelectStart);
116
+ }
117
+ removeListeners();
118
+ clearTimeout(focusTimeoutRef.current);
119
+ };
120
+ }, [autofocus, edit, onSelectStart, removeListeners]);
121
+ useEffect(() => {
122
+ setValue(defaultValue);
123
+ }, [defaultValue]);
124
+ return (React.createElement("div", { role: "editable-label", onClick: edit },
125
+ React.createElement("div", { ref: root }, renderTextAreaWithSubmitEdit)));
159
126
  }
160
127
  //# sourceMappingURL=TextAreaWithSubmit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TextAreaWithSubmit.js","sourceRoot":"","sources":["../../src/TextAreaWithSubmit/TextAreaWithSubmit.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TextAreaWithSubmit.js","sourceRoot":"","sources":["../../src/TextAreaWithSubmit/TextAreaWithSubmit.tsx"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ export interface ITimepickerOwnProps {
10
10
  time: Date | null;
11
11
  className?: string;
12
12
  ariaLabelledBy?: string;
13
+ ariaDescribedBy?: string;
13
14
  maxVisibleItemsCount?: number;
14
15
  onChange?: (selectedTime: Date) => void;
15
16
  overlayPositionType?: OverlayPositionType;
@@ -21,36 +22,9 @@ export interface ITimepickerOwnProps {
21
22
  closeOnParentScroll?: boolean;
22
23
  }
23
24
  export type TimePickerProps = ITimepickerOwnProps & WrappedComponentProps;
24
- interface ITimePickerState {
25
- dropdownWidth: number;
26
- selectedTime: Date;
27
- }
28
- export declare class WrappedTimepicker extends React.PureComponent<TimePickerProps, ITimePickerState> {
29
- dropdownRef: React.RefObject<HTMLDivElement>;
30
- static defaultProps: {
31
- className: string;
32
- maxVisibleItemsCount: number;
33
- time: Date;
34
- onChange: (...args: any[]) => void;
35
- overlayZIndex: number;
36
- skipNormalizeTime: boolean;
37
- timeAnchor: number;
38
- timeFormat: any;
39
- };
40
- constructor(props: TimePickerProps);
41
- UNSAFE_componentWillReceiveProps(newProps: TimePickerProps): void;
42
- componentDidMount(): void;
43
- private getComponentClasses;
44
- private getTimeItems;
45
- private updateDropdownWidth;
46
- private updateLocaleForMoment;
47
- private handleTimeChanged;
48
- render(): React.JSX.Element;
49
- }
25
+ export declare const WrappedTimepicker: React.NamedExoticComponent<TimePickerProps>;
50
26
  /**
51
27
  * @internal
52
28
  */
53
- export declare class Timepicker extends React.PureComponent<ITimepickerOwnProps> {
54
- render(): React.JSX.Element;
55
- }
29
+ export declare const Timepicker: React.NamedExoticComponent<ITimepickerOwnProps>;
56
30
  //# sourceMappingURL=Timepicker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Timepicker.d.ts","sourceRoot":"","sources":["../../src/Timepicker/Timepicker.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAc,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAM/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAI5D,OAAO,EAAE,UAAU,EAAE,aAAa,EAAyC,MAAM,0BAA0B,CAAC;AAS5G,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AAErC;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,KAAK,IAAI,CAAC;IACxC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,MAAM,eAAe,GAAG,mBAAmB,GAAG,qBAAqB,CAAC;AAE1E,UAAU,gBAAgB;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,IAAI,CAAC;CACtB;AAED,qBAAa,iBAAkB,SAAQ,KAAK,CAAC,aAAa,CAAC,eAAe,EAAE,gBAAgB,CAAC;IAClF,WAAW,kCAAqC;IAEvD,OAAc,YAAY;;;;;;;;;MASxB;gBAEU,KAAK,EAAE,eAAe;IAc3B,gCAAgC,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAWjE,iBAAiB,IAAI,IAAI;IAIhC,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,YAAY,CAqBlB;IAEF,OAAO,CAAC,mBAAmB,CAGzB;IAEF,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,iBAAiB,CASvB;IAEK,MAAM;CAwFhB;AAID;;GAEG;AACH,qBAAa,UAAW,SAAQ,KAAK,CAAC,aAAa,CAAC,mBAAmB,CAAC;IAC7D,MAAM;CAOhB"}
1
+ {"version":3,"file":"Timepicker.d.ts","sourceRoot":"","sources":["../../src/Timepicker/Timepicker.tsx"],"names":[],"mappings":"AACA,OAAO,KAAkE,MAAM,OAAO,CAAC;AACvF,OAAO,EAAc,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAM/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAI5D,OAAO,EAAE,UAAU,EAAE,aAAa,EAAyC,MAAM,0BAA0B,CAAC;AAQ5G,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AAErC;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,KAAK,IAAI,CAAC;IACxC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,MAAM,eAAe,GAAG,mBAAmB,GAAG,qBAAqB,CAAC;AAE1E,eAAO,MAAM,iBAAiB,6CAwL5B,CAAC;AAIH;;GAEG;AACH,eAAO,MAAM,UAAU,iDAMrB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  // (C) 2019-2025 GoodData Corporation
2
- import React from "react";
2
+ import React, { memo, useState, useRef, useEffect, useCallback, useMemo } from "react";
3
3
  import { injectIntl } from "react-intl";
4
4
  import moment from "moment";
5
5
  import { translationUtils } from "@gooddata/util";
@@ -11,58 +11,46 @@ import { formatTime, normalizeTime, updateTime, HOURS_IN_DAY, TIME_ANCHOR } from
11
11
  import { SingleSelectListItem } from "../List/index.js";
12
12
  const DEFAULT_WIDTH = 199;
13
13
  const MINUTES_IN_HOUR = 60;
14
- const MAX_VISIBLE_ITEMS_COUNT = 10;
15
14
  const MAX_HEIGHT = 140;
16
15
  export { normalizeTime, formatTime };
17
- export class WrappedTimepicker extends React.PureComponent {
18
- dropdownRef = React.createRef();
19
- static defaultProps = {
20
- className: "",
21
- maxVisibleItemsCount: MAX_VISIBLE_ITEMS_COUNT,
22
- time: new Date(),
23
- onChange: noop,
24
- overlayZIndex: 0,
25
- skipNormalizeTime: false,
26
- timeAnchor: TIME_ANCHOR,
27
- timeFormat: undefined,
28
- };
29
- constructor(props) {
30
- super(props);
31
- this.updateLocaleForMoment();
32
- const time = props.time || new Date();
33
- this.state = {
34
- dropdownWidth: DEFAULT_WIDTH,
35
- selectedTime: props.skipNormalizeTime
36
- ? time
37
- : normalizeTime(time, undefined, this.props.timeAnchor),
38
- };
39
- }
40
- UNSAFE_componentWillReceiveProps(newProps) {
41
- if (newProps.time !== this.props.time) {
42
- const updatedTime = newProps.time || new Date();
43
- this.setState({
44
- selectedTime: this.props.skipNormalizeTime
45
- ? updatedTime
46
- : normalizeTime(updatedTime, undefined, this.props.timeAnchor),
47
- });
16
+ export const WrappedTimepicker = memo(function WrappedTimepicker({ time = new Date(), className = "", ariaLabelledBy, ariaDescribedBy, onChange = noop, overlayPositionType, overlayZIndex = 0, skipNormalizeTime = false, timeAnchor = TIME_ANCHOR, timeFormat = undefined, closeOnParentScroll, intl, }) {
17
+ const dropdownRef = useRef();
18
+ const updateLocaleForMoment = useCallback(() => {
19
+ moment.locale(translationUtils.sanitizeLocaleForMoment(intl.locale));
20
+ }, [intl.locale]);
21
+ updateLocaleForMoment();
22
+ const initialTime = time || new Date();
23
+ const [dropdownWidth, setDropdownWidth] = useState(DEFAULT_WIDTH);
24
+ const [selectedTime, setSelectedTime] = useState(skipNormalizeTime ? initialTime : normalizeTime(initialTime, undefined, timeAnchor));
25
+ useEffect(() => {
26
+ const updatedTime = time || new Date();
27
+ const newSelectedTime = skipNormalizeTime
28
+ ? updatedTime
29
+ : normalizeTime(updatedTime, undefined, timeAnchor);
30
+ if (newSelectedTime.getTime() !== selectedTime.getTime()) {
31
+ setSelectedTime(newSelectedTime);
48
32
  }
49
- }
50
- componentDidMount() {
51
- this.updateDropdownWidth();
52
- }
53
- getComponentClasses() {
54
- return `gd-datepicker ${this.props.className} gd-datepicker-input gd-timepicker`;
55
- }
56
- getTimeItems = (selectedTime) => {
33
+ }, [time, skipNormalizeTime, timeAnchor, selectedTime]);
34
+ const updateDropdownWidth = useCallback(() => {
35
+ const { width } = dropdownRef.current.getBoundingClientRect();
36
+ setDropdownWidth(width);
37
+ }, []);
38
+ useEffect(() => {
39
+ updateDropdownWidth();
40
+ }, [updateDropdownWidth]);
41
+ const getComponentClasses = useCallback(() => {
42
+ return `gd-datepicker ${className} gd-datepicker-input gd-timepicker`;
43
+ }, [className]);
44
+ const getTimeItems = useCallback((selectedTime) => {
57
45
  let currentItem;
58
46
  const items = [];
59
47
  const { h: hours, m: minutes } = selectedTime;
60
48
  for (let h = 0; h < HOURS_IN_DAY; h += 1) {
61
- for (let m = 0; m < MINUTES_IN_HOUR; m += this.props.timeAnchor) {
49
+ for (let m = 0; m < MINUTES_IN_HOUR; m += timeAnchor) {
62
50
  const item = {
63
51
  h,
64
52
  m,
65
- title: formatTime(h, m, this.props.timeFormat),
53
+ title: formatTime(h, m, timeFormat),
66
54
  };
67
55
  items.push(item);
68
56
  if (h === hours && m === minutes) {
@@ -71,71 +59,60 @@ export class WrappedTimepicker extends React.PureComponent {
71
59
  }
72
60
  }
73
61
  return { items, currentItem };
74
- };
75
- updateDropdownWidth = () => {
76
- const { width } = this.dropdownRef.current.getBoundingClientRect();
77
- this.setState({ dropdownWidth: width });
78
- };
79
- updateLocaleForMoment() {
80
- moment.locale(translationUtils.sanitizeLocaleForMoment(this.props.intl.locale));
81
- }
82
- handleTimeChanged = (newlySelectedTime) => {
62
+ }, [timeAnchor, timeFormat]);
63
+ const handleTimeChanged = useCallback((newlySelectedTime) => {
83
64
  if (!newlySelectedTime) {
84
65
  return;
85
66
  }
86
67
  const { h, m } = newlySelectedTime;
87
- const selectedTime = updateTime(h, m);
88
- this.setState({ selectedTime }, () => this.props.onChange(selectedTime));
89
- };
90
- render() {
91
- const { ariaLabelledBy, overlayPositionType, overlayZIndex, intl, closeOnParentScroll } = this.props;
92
- const { dropdownWidth, selectedTime } = this.state;
93
- const time = {
94
- h: selectedTime.getHours(),
95
- m: selectedTime.getMinutes(),
96
- };
97
- const { items, currentItem } = this.getTimeItems(time);
98
- const accessibilityDropdownButtonLabel = intl.formatMessage({ id: "timePicker.accessibility.label" });
99
- return (React.createElement("div", { className: this.getComponentClasses(), ref: this.dropdownRef },
100
- React.createElement(Dropdown, { closeOnParentScroll: closeOnParentScroll, overlayPositionType: overlayPositionType, alignPoints: [
101
- {
102
- align: "bl tl",
103
- },
104
- {
105
- align: "tl bl",
106
- },
107
- ], autofocusOnOpen: true, renderButton: ({ openDropdown, isOpen, dropdownId, buttonRef }) => (React.createElement(DropdownButton, { accessibilityConfig: {
108
- ariaLabelledBy,
109
- ariaLabel: accessibilityDropdownButtonLabel,
110
- }, value: formatTime(time.h, time.m, this.props.timeFormat), isOpen: isOpen, dropdownId: dropdownId, onClick: openDropdown, iconLeft: "gd-icon-timer", buttonRef: buttonRef })), renderBody: ({ closeDropdown, ariaAttributes }) => {
111
- const listboxItems = items.map((item) => ({
112
- type: "interactive",
113
- id: `${item.h}-${item.m}`,
114
- stringTitle: item.title,
115
- data: item,
116
- }));
117
- const handleKeyDown = (e) => {
118
- if (e.key !== "Tab") {
119
- return;
120
- }
121
- closeDropdown();
122
- };
123
- return (React.createElement(UiListbox, { shouldKeyboardActionStopPropagation: true, shouldKeyboardActionPreventDefault: true, dataTestId: "s-timepicker-list", items: listboxItems, maxWidth: dropdownWidth, maxHeight: MAX_HEIGHT, selectedItemId: currentItem ? `${currentItem.h}-${currentItem.m}` : undefined, onSelect: (item) => {
124
- this.handleTimeChanged(item.data);
125
- }, onClose: closeDropdown, onUnhandledKeyDown: handleKeyDown, ariaAttributes: ariaAttributes, InteractiveItemComponent: ({ item, isSelected, onSelect, isFocused }) => {
126
- return (React.createElement(SingleSelectListItem, { title: item.stringTitle, isSelected: isSelected, isFocused: isFocused, onClick: onSelect, className: "gd-timepicker-list-item" }));
127
- } }));
128
- }, overlayZIndex: overlayZIndex })));
129
- }
130
- }
68
+ const newSelectedTime = updateTime(h, m);
69
+ setSelectedTime(newSelectedTime);
70
+ onChange(newSelectedTime);
71
+ }, [onChange]);
72
+ const timeObj = useMemo(() => ({
73
+ h: selectedTime.getHours(),
74
+ m: selectedTime.getMinutes(),
75
+ }), [selectedTime]);
76
+ const { items, currentItem } = useMemo(() => getTimeItems(timeObj), [getTimeItems, timeObj]);
77
+ const accessibilityDropdownButtonLabel = intl.formatMessage({ id: "timePicker.accessibility.label" });
78
+ return (React.createElement("div", { className: getComponentClasses(), ref: dropdownRef },
79
+ React.createElement(Dropdown, { closeOnParentScroll: closeOnParentScroll, overlayPositionType: overlayPositionType, alignPoints: [
80
+ {
81
+ align: "bl tl",
82
+ },
83
+ {
84
+ align: "tl bl",
85
+ },
86
+ ], autofocusOnOpen: true, renderButton: ({ openDropdown, isOpen, dropdownId, buttonRef }) => (React.createElement(DropdownButton, { accessibilityConfig: {
87
+ ariaLabelledBy,
88
+ ariaDescribedBy,
89
+ ariaLabel: accessibilityDropdownButtonLabel,
90
+ }, value: formatTime(timeObj.h, timeObj.m, timeFormat), isOpen: isOpen, dropdownId: dropdownId, onClick: openDropdown, iconLeft: "gd-icon-timer", buttonRef: buttonRef })), renderBody: useCallback(({ closeDropdown, ariaAttributes }) => {
91
+ const listboxItems = items.map((item) => ({
92
+ type: "interactive",
93
+ id: `${item.h}-${item.m}`,
94
+ stringTitle: item.title,
95
+ data: item,
96
+ }));
97
+ const handleKeyDown = (e) => {
98
+ if (e.key !== "Tab") {
99
+ return;
100
+ }
101
+ closeDropdown();
102
+ };
103
+ return (React.createElement(UiListbox, { shouldKeyboardActionStopPropagation: true, shouldKeyboardActionPreventDefault: true, dataTestId: "s-timepicker-list", items: listboxItems, maxWidth: dropdownWidth, maxHeight: MAX_HEIGHT, selectedItemId: currentItem ? `${currentItem.h}-${currentItem.m}` : undefined, onSelect: (item) => {
104
+ handleTimeChanged(item.data);
105
+ }, onClose: closeDropdown, onUnhandledKeyDown: handleKeyDown, ariaAttributes: ariaAttributes, InteractiveItemComponent: ({ item, isSelected, onSelect, isFocused }) => {
106
+ return (React.createElement(SingleSelectListItem, { title: item.stringTitle, isSelected: isSelected, isFocused: isFocused, onClick: onSelect, className: "gd-timepicker-list-item" }));
107
+ } }));
108
+ }, [items, handleTimeChanged, currentItem, dropdownWidth]), overlayZIndex: overlayZIndex })));
109
+ });
131
110
  const TimePickerWithIntl = injectIntl(WrappedTimepicker);
132
111
  /**
133
112
  * @internal
134
113
  */
135
- export class Timepicker extends React.PureComponent {
136
- render() {
137
- return (React.createElement(IntlWrapper, { locale: this.props.locale },
138
- React.createElement(TimePickerWithIntl, { ...this.props })));
139
- }
140
- }
114
+ export const Timepicker = React.memo(function Timepicker(props) {
115
+ return (React.createElement(IntlWrapper, { locale: props.locale },
116
+ React.createElement(TimePickerWithIntl, { ...props })));
117
+ });
141
118
  //# sourceMappingURL=Timepicker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Timepicker.js","sourceRoot":"","sources":["../../src/Timepicker/Timepicker.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Timepicker.js","sourceRoot":"","sources":["../../src/Timepicker/Timepicker.tsx"],"names":[],"mappings":"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"}