@hitachivantara/uikit-react-core 5.80.2 → 5.81.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 (445) hide show
  1. package/dist/cjs/BaseDropdown/BaseDropdown.cjs +82 -165
  2. package/dist/cjs/BaseDropdown/BaseDropdown.styles.cjs +2 -2
  3. package/dist/cjs/BaseDropdown/BaseDropdownPanel.cjs +80 -0
  4. package/dist/cjs/BaseDropdown/{BaseDropdownContext/BaseDropdownContext.cjs → context.cjs} +2 -2
  5. package/dist/cjs/Button/Button.styles.cjs +6 -2
  6. package/dist/cjs/DropDownMenu/DropDownMenu.cjs +21 -28
  7. package/dist/cjs/DropDownMenu/DropDownMenu.styles.cjs +15 -2
  8. package/dist/cjs/Dropdown/List/List.cjs +6 -5
  9. package/dist/cjs/MultiButton/MultiButton.cjs +3 -4
  10. package/dist/cjs/MultiButton/MultiButton.styles.cjs +48 -109
  11. package/dist/cjs/Pagination/Pagination.styles.cjs +1 -1
  12. package/dist/cjs/Table/TableCell/TableCell.styles.cjs +2 -5
  13. package/dist/cjs/Table/TableHeader/TableHeader.cjs +40 -49
  14. package/dist/cjs/Table/TableHeader/TableHeader.styles.cjs +18 -20
  15. package/dist/cjs/Table/TableRow/TableRow.styles.cjs +7 -15
  16. package/dist/esm/Accordion/Accordion.js.map +1 -1
  17. package/dist/esm/Accordion/Accordion.styles.js.map +1 -1
  18. package/dist/esm/ActionBar/ActionBar.js.map +1 -1
  19. package/dist/esm/ActionBar/ActionBar.styles.js.map +1 -1
  20. package/dist/esm/ActionsGeneric/ActionsGeneric.js.map +1 -1
  21. package/dist/esm/ActionsGeneric/ActionsGeneric.styles.js.map +1 -1
  22. package/dist/esm/AppSwitcher/Action/Action.js.map +1 -1
  23. package/dist/esm/AppSwitcher/Action/Action.styles.js.map +1 -1
  24. package/dist/esm/AppSwitcher/AppSwitcher.js.map +1 -1
  25. package/dist/esm/AppSwitcher/AppSwitcher.styles.js.map +1 -1
  26. package/dist/esm/Avatar/Avatar.js.map +1 -1
  27. package/dist/esm/Avatar/Avatar.styles.js.map +1 -1
  28. package/dist/esm/AvatarGroup/AvatarGroup.js.map +1 -1
  29. package/dist/esm/AvatarGroup/AvatarGroup.styles.js.map +1 -1
  30. package/dist/esm/Badge/Badge.js.map +1 -1
  31. package/dist/esm/Badge/Badge.styles.js.map +1 -1
  32. package/dist/esm/Banner/Banner.js.map +1 -1
  33. package/dist/esm/Banner/Banner.styles.js.map +1 -1
  34. package/dist/esm/Banner/BannerContent/ActionContainer/ActionContainer.js.map +1 -1
  35. package/dist/esm/Banner/BannerContent/ActionContainer/ActionContainer.styles.js.map +1 -1
  36. package/dist/esm/Banner/BannerContent/BannerContent.js.map +1 -1
  37. package/dist/esm/Banner/BannerContent/BannerContent.styles.js.map +1 -1
  38. package/dist/esm/Banner/BannerContent/MessageContainer/MessageContainer.js.map +1 -1
  39. package/dist/esm/Banner/BannerContent/MessageContainer/MessageContainer.styles.js.map +1 -1
  40. package/dist/esm/BaseCheckBox/BaseCheckBox.js.map +1 -1
  41. package/dist/esm/BaseCheckBox/BaseCheckBox.styles.js.map +1 -1
  42. package/dist/esm/BaseCheckBox/icons.js.map +1 -1
  43. package/dist/esm/BaseDropdown/BaseDropdown.js +82 -163
  44. package/dist/esm/BaseDropdown/BaseDropdown.js.map +1 -1
  45. package/dist/esm/BaseDropdown/BaseDropdown.styles.js +2 -2
  46. package/dist/esm/BaseDropdown/BaseDropdown.styles.js.map +1 -1
  47. package/dist/esm/BaseDropdown/BaseDropdownPanel.js +80 -0
  48. package/dist/esm/BaseDropdown/BaseDropdownPanel.js.map +1 -0
  49. package/dist/esm/BaseDropdown/{BaseDropdownContext/BaseDropdownContext.js → context.js} +1 -1
  50. package/dist/esm/BaseDropdown/context.js.map +1 -0
  51. package/dist/esm/BaseInput/BaseInput.js.map +1 -1
  52. package/dist/esm/BaseInput/BaseInput.styles.js.map +1 -1
  53. package/dist/esm/BaseInput/validations.js.map +1 -1
  54. package/dist/esm/BaseRadio/BaseRadio.js.map +1 -1
  55. package/dist/esm/BaseRadio/BaseRadio.styles.js.map +1 -1
  56. package/dist/esm/BaseRadio/icons.js.map +1 -1
  57. package/dist/esm/BaseSwitch/BaseSwitch.js.map +1 -1
  58. package/dist/esm/BaseSwitch/BaseSwitch.styles.js.map +1 -1
  59. package/dist/esm/BreadCrumb/BreadCrumb.js.map +1 -1
  60. package/dist/esm/BreadCrumb/BreadCrumb.styles.js.map +1 -1
  61. package/dist/esm/BreadCrumb/Page/Page.js.map +1 -1
  62. package/dist/esm/BreadCrumb/Page/Page.styles.js.map +1 -1
  63. package/dist/esm/BreadCrumb/PathElement/PathElement.js.map +1 -1
  64. package/dist/esm/BreadCrumb/PathElement/PathElement.styles.js.map +1 -1
  65. package/dist/esm/BreadCrumb/utils.js.map +1 -1
  66. package/dist/esm/BulkActions/BulkActions.js.map +1 -1
  67. package/dist/esm/BulkActions/BulkActions.styles.js.map +1 -1
  68. package/dist/esm/Button/Button.js.map +1 -1
  69. package/dist/esm/Button/Button.styles.js +6 -2
  70. package/dist/esm/Button/Button.styles.js.map +1 -1
  71. package/dist/esm/ButtonBase/ButtonBase.js.map +1 -1
  72. package/dist/esm/ButtonBase/ButtonBase.styles.js.map +1 -1
  73. package/dist/esm/Calendar/Calendar.js.map +1 -1
  74. package/dist/esm/Calendar/Calendar.styles.js.map +1 -1
  75. package/dist/esm/Calendar/CalendarHeader/CalendarHeader.js.map +1 -1
  76. package/dist/esm/Calendar/CalendarHeader/CalendarHeader.styles.js.map +1 -1
  77. package/dist/esm/Calendar/CalendarNavigation/ComposedNavigation/ComposedNavigation.js.map +1 -1
  78. package/dist/esm/Calendar/CalendarNavigation/ComposedNavigation/ComposedNavigation.styles.js.map +1 -1
  79. package/dist/esm/Calendar/CalendarNavigation/MonthSelector/MonthSelector.js.map +1 -1
  80. package/dist/esm/Calendar/CalendarNavigation/MonthSelector/MonthSelector.styles.js.map +1 -1
  81. package/dist/esm/Calendar/CalendarNavigation/Navigation/Navigation.js.map +1 -1
  82. package/dist/esm/Calendar/CalendarNavigation/Navigation/Navigation.styles.js.map +1 -1
  83. package/dist/esm/Calendar/SingleCalendar/CalendarCell.js.map +1 -1
  84. package/dist/esm/Calendar/SingleCalendar/CalendarCell.styles.js.map +1 -1
  85. package/dist/esm/Calendar/SingleCalendar/SingleCalendar.js.map +1 -1
  86. package/dist/esm/Calendar/SingleCalendar/SingleCalendar.styles.js.map +1 -1
  87. package/dist/esm/Calendar/model.js.map +1 -1
  88. package/dist/esm/Calendar/utils.js.map +1 -1
  89. package/dist/esm/Card/Card.js.map +1 -1
  90. package/dist/esm/Card/Card.styles.js.map +1 -1
  91. package/dist/esm/Card/Content/Content.js.map +1 -1
  92. package/dist/esm/Card/Content/Content.styles.js.map +1 -1
  93. package/dist/esm/Card/Header/Header.js.map +1 -1
  94. package/dist/esm/Card/Header/Header.styles.js.map +1 -1
  95. package/dist/esm/Card/Media/Media.js.map +1 -1
  96. package/dist/esm/Card/Media/Media.styles.js.map +1 -1
  97. package/dist/esm/Carousel/Carousel.js.map +1 -1
  98. package/dist/esm/Carousel/Carousel.styles.js.map +1 -1
  99. package/dist/esm/Carousel/CarouselControls.js.map +1 -1
  100. package/dist/esm/Carousel/CarouselSlide/CarouselSlide.js.map +1 -1
  101. package/dist/esm/Carousel/CarouselSlide/CarouselSlide.styles.js.map +1 -1
  102. package/dist/esm/Carousel/CarouselThumbnails.js.map +1 -1
  103. package/dist/esm/CheckBox/CheckBox.js.map +1 -1
  104. package/dist/esm/CheckBox/CheckBox.styles.js.map +1 -1
  105. package/dist/esm/CheckBoxGroup/CheckBoxGroup.js.map +1 -1
  106. package/dist/esm/CheckBoxGroup/CheckBoxGroup.styles.js.map +1 -1
  107. package/dist/esm/ColorPicker/ColorPicker.js.map +1 -1
  108. package/dist/esm/ColorPicker/ColorPicker.styles.js.map +1 -1
  109. package/dist/esm/ColorPicker/Fields/Fields.js.map +1 -1
  110. package/dist/esm/ColorPicker/Fields/Fields.styles.js.map +1 -1
  111. package/dist/esm/ColorPicker/Picker/Picker.js.map +1 -1
  112. package/dist/esm/ColorPicker/Picker/Picker.styles.js.map +1 -1
  113. package/dist/esm/ColorPicker/PresetColors/PresetColors.js.map +1 -1
  114. package/dist/esm/ColorPicker/PresetColors/PresetColors.styles.js.map +1 -1
  115. package/dist/esm/ColorPicker/SavedColors/SavedColors.js.map +1 -1
  116. package/dist/esm/ColorPicker/SavedColors/SavedColors.styles.js.map +1 -1
  117. package/dist/esm/Container/Container.js.map +1 -1
  118. package/dist/esm/Container/Container.styles.js.map +1 -1
  119. package/dist/esm/Controls/Controls.js.map +1 -1
  120. package/dist/esm/Controls/Controls.styles.js.map +1 -1
  121. package/dist/esm/Controls/LeftControl/LeftControl.js.map +1 -1
  122. package/dist/esm/Controls/RightControl/RightControl.js.map +1 -1
  123. package/dist/esm/Controls/context/ControlsContext.js.map +1 -1
  124. package/dist/esm/DatePicker/DatePicker.js.map +1 -1
  125. package/dist/esm/DatePicker/DatePicker.styles.js.map +1 -1
  126. package/dist/esm/DatePicker/useVisibleDate.js.map +1 -1
  127. package/dist/esm/DatePicker/utils.js.map +1 -1
  128. package/dist/esm/Dialog/Actions/Actions.js.map +1 -1
  129. package/dist/esm/Dialog/Actions/Actions.styles.js.map +1 -1
  130. package/dist/esm/Dialog/Content/Content.js.map +1 -1
  131. package/dist/esm/Dialog/Content/Content.styles.js.map +1 -1
  132. package/dist/esm/Dialog/Dialog.js.map +1 -1
  133. package/dist/esm/Dialog/Dialog.styles.js.map +1 -1
  134. package/dist/esm/Dialog/Title/Title.js.map +1 -1
  135. package/dist/esm/Dialog/Title/Title.styles.js.map +1 -1
  136. package/dist/esm/Dialog/context.js.map +1 -1
  137. package/dist/esm/DotPagination/DotPagination.js.map +1 -1
  138. package/dist/esm/DotPagination/DotPagination.styles.js.map +1 -1
  139. package/dist/esm/Drawer/Drawer.js.map +1 -1
  140. package/dist/esm/Drawer/Drawer.styles.js.map +1 -1
  141. package/dist/esm/DropDownMenu/DropDownMenu.js +20 -27
  142. package/dist/esm/DropDownMenu/DropDownMenu.js.map +1 -1
  143. package/dist/esm/DropDownMenu/DropDownMenu.styles.js +15 -2
  144. package/dist/esm/DropDownMenu/DropDownMenu.styles.js.map +1 -1
  145. package/dist/esm/Dropdown/Dropdown.js.map +1 -1
  146. package/dist/esm/Dropdown/Dropdown.styles.js.map +1 -1
  147. package/dist/esm/Dropdown/List/List.js +6 -5
  148. package/dist/esm/Dropdown/List/List.js.map +1 -1
  149. package/dist/esm/Dropdown/List/List.styles.js.map +1 -1
  150. package/dist/esm/Dropdown/utils.js.map +1 -1
  151. package/dist/esm/DropdownButton/DropdownButton.js.map +1 -1
  152. package/dist/esm/DropdownButton/DropdownButton.styles.js.map +1 -1
  153. package/dist/esm/EmptyState/EmptyState.js.map +1 -1
  154. package/dist/esm/EmptyState/EmptyState.styles.js.map +1 -1
  155. package/dist/esm/FileUploader/DropZone/DropZone.js.map +1 -1
  156. package/dist/esm/FileUploader/DropZone/DropZone.styles.js.map +1 -1
  157. package/dist/esm/FileUploader/File/File.js.map +1 -1
  158. package/dist/esm/FileUploader/File/File.styles.js.map +1 -1
  159. package/dist/esm/FileUploader/FileList/FileList.js.map +1 -1
  160. package/dist/esm/FileUploader/FileList/FileList.styles.js.map +1 -1
  161. package/dist/esm/FileUploader/FileUploader.js.map +1 -1
  162. package/dist/esm/FileUploader/Preview/Preview.js.map +1 -1
  163. package/dist/esm/FileUploader/Preview/Preview.styles.js.map +1 -1
  164. package/dist/esm/FileUploader/utils.js.map +1 -1
  165. package/dist/esm/FilterGroup/Counter/Counter.js.map +1 -1
  166. package/dist/esm/FilterGroup/Counter/Counter.styles.js.map +1 -1
  167. package/dist/esm/FilterGroup/FilterContent/FilterContent.js.map +1 -1
  168. package/dist/esm/FilterGroup/FilterContent/FilterContent.styles.js.map +1 -1
  169. package/dist/esm/FilterGroup/FilterGroup.js.map +1 -1
  170. package/dist/esm/FilterGroup/FilterGroup.styles.js.map +1 -1
  171. package/dist/esm/FilterGroup/FilterGroupContext.js.map +1 -1
  172. package/dist/esm/FilterGroup/LeftPanel/LeftPanel.js.map +1 -1
  173. package/dist/esm/FilterGroup/LeftPanel/LeftPanel.styles.js.map +1 -1
  174. package/dist/esm/FilterGroup/RightPanel/RightPanel.js.map +1 -1
  175. package/dist/esm/FilterGroup/RightPanel/RightPanel.styles.js.map +1 -1
  176. package/dist/esm/Focus/Focus.js.map +1 -1
  177. package/dist/esm/Focus/Focus.styles.js.map +1 -1
  178. package/dist/esm/Focus/utils.js.map +1 -1
  179. package/dist/esm/Footer/Footer.js.map +1 -1
  180. package/dist/esm/Footer/Footer.styles.js.map +1 -1
  181. package/dist/esm/Forms/Adornment/Adornment.js.map +1 -1
  182. package/dist/esm/Forms/Adornment/Adornment.styles.js.map +1 -1
  183. package/dist/esm/Forms/CharCounter/CharCounter.js.map +1 -1
  184. package/dist/esm/Forms/FormElement/FormElement.js.map +1 -1
  185. package/dist/esm/Forms/FormElement/FormElement.styles.js.map +1 -1
  186. package/dist/esm/Forms/FormElement/context/FormElementContext.js.map +1 -1
  187. package/dist/esm/Forms/FormElement/context/FormElementDescriptorsContext.js.map +1 -1
  188. package/dist/esm/Forms/FormElement/utils/FormUtils.js.map +1 -1
  189. package/dist/esm/Forms/InfoMessage/InfoMessage.js.map +1 -1
  190. package/dist/esm/Forms/Label/Label.js.map +1 -1
  191. package/dist/esm/Forms/Suggestions/Suggestions.js.map +1 -1
  192. package/dist/esm/Forms/Suggestions/Suggestions.styles.js.map +1 -1
  193. package/dist/esm/Forms/WarningText/WarningText.js.map +1 -1
  194. package/dist/esm/GlobalActions/GlobalActions.js.map +1 -1
  195. package/dist/esm/GlobalActions/GlobalActions.styles.js.map +1 -1
  196. package/dist/esm/Grid/Grid.js.map +1 -1
  197. package/dist/esm/Grid/Grid.styles.js.map +1 -1
  198. package/dist/esm/Header/Actions/Actions.js.map +1 -1
  199. package/dist/esm/Header/Actions/Actions.styles.js.map +1 -1
  200. package/dist/esm/Header/Brand/Brand.js.map +1 -1
  201. package/dist/esm/Header/Brand/Brand.styles.js.map +1 -1
  202. package/dist/esm/Header/Header.js.map +1 -1
  203. package/dist/esm/Header/Header.styles.js.map +1 -1
  204. package/dist/esm/Header/Navigation/MenuBar/Bar.js.map +1 -1
  205. package/dist/esm/Header/Navigation/MenuBar/Bar.styles.js.map +1 -1
  206. package/dist/esm/Header/Navigation/MenuBar/MenuBar.js.map +1 -1
  207. package/dist/esm/Header/Navigation/MenuItem/MenuItem.js.map +1 -1
  208. package/dist/esm/Header/Navigation/MenuItem/MenuItem.styles.js.map +1 -1
  209. package/dist/esm/Header/Navigation/Navigation.js.map +1 -1
  210. package/dist/esm/Header/Navigation/Navigation.styles.js.map +1 -1
  211. package/dist/esm/Header/Navigation/useSelectionPath.js.map +1 -1
  212. package/dist/esm/Header/Navigation/utils/FocusContext.js.map +1 -1
  213. package/dist/esm/IconButton/IconButton.js.map +1 -1
  214. package/dist/esm/InlineEditor/InlineEditor.js.map +1 -1
  215. package/dist/esm/InlineEditor/InlineEditor.styles.js.map +1 -1
  216. package/dist/esm/Input/Input.js.map +1 -1
  217. package/dist/esm/Input/Input.styles.js.map +1 -1
  218. package/dist/esm/Kpi/Kpi.js.map +1 -1
  219. package/dist/esm/Link/Link.js.map +1 -1
  220. package/dist/esm/Link/Link.styles.js.map +1 -1
  221. package/dist/esm/List/List.js.map +1 -1
  222. package/dist/esm/List/List.styles.js.map +1 -1
  223. package/dist/esm/List/utils.js.map +1 -1
  224. package/dist/esm/ListContainer/ListContainer.js.map +1 -1
  225. package/dist/esm/ListContainer/ListContainer.styles.js.map +1 -1
  226. package/dist/esm/ListContainer/ListContext/ListContext.js.map +1 -1
  227. package/dist/esm/ListContainer/ListItem/ListItem.js.map +1 -1
  228. package/dist/esm/ListContainer/ListItem/ListItem.styles.js.map +1 -1
  229. package/dist/esm/Loading/Loading.js.map +1 -1
  230. package/dist/esm/Loading/Loading.styles.js.map +1 -1
  231. package/dist/esm/LoadingContainer/LoadingContainer.js.map +1 -1
  232. package/dist/esm/LoadingContainer/LoadingContainer.styles.js.map +1 -1
  233. package/dist/esm/Login/Login.js.map +1 -1
  234. package/dist/esm/Login/Login.styles.js.map +1 -1
  235. package/dist/esm/MultiButton/MultiButton.js +3 -4
  236. package/dist/esm/MultiButton/MultiButton.js.map +1 -1
  237. package/dist/esm/MultiButton/MultiButton.styles.js +48 -109
  238. package/dist/esm/MultiButton/MultiButton.styles.js.map +1 -1
  239. package/dist/esm/OverflowTooltip/OverflowTooltip.js.map +1 -1
  240. package/dist/esm/OverflowTooltip/OverflowTooltip.styles.js.map +1 -1
  241. package/dist/esm/Pagination/Pagination.js.map +1 -1
  242. package/dist/esm/Pagination/Pagination.styles.js +1 -1
  243. package/dist/esm/Pagination/Pagination.styles.js.map +1 -1
  244. package/dist/esm/Pagination/Select.js.map +1 -1
  245. package/dist/esm/Pagination/Select.styles.js.map +1 -1
  246. package/dist/esm/Panel/Panel.js.map +1 -1
  247. package/dist/esm/Panel/Panel.styles.js.map +1 -1
  248. package/dist/esm/ProgressBar/ProgressBar.js.map +1 -1
  249. package/dist/esm/ProgressBar/ProgressBar.styles.js.map +1 -1
  250. package/dist/esm/QueryBuilder/ConfirmationDialog/ConfirmationDialog.js.map +1 -1
  251. package/dist/esm/QueryBuilder/ConfirmationDialog/ConfirmationDialog.styles.js.map +1 -1
  252. package/dist/esm/QueryBuilder/Context.js.map +1 -1
  253. package/dist/esm/QueryBuilder/QueryBuilder.js.map +1 -1
  254. package/dist/esm/QueryBuilder/QueryBuilder.styles.js.map +1 -1
  255. package/dist/esm/QueryBuilder/Rule/Attribute/Attribute.js.map +1 -1
  256. package/dist/esm/QueryBuilder/Rule/Operator/Operator.js.map +1 -1
  257. package/dist/esm/QueryBuilder/Rule/Rule.js.map +1 -1
  258. package/dist/esm/QueryBuilder/Rule/Rule.styles.js.map +1 -1
  259. package/dist/esm/QueryBuilder/Rule/Value/BooleanValue/BooleanValue.js.map +1 -1
  260. package/dist/esm/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.js.map +1 -1
  261. package/dist/esm/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.styles.js.map +1 -1
  262. package/dist/esm/QueryBuilder/Rule/Value/DateTimeValue/utils.js.map +1 -1
  263. package/dist/esm/QueryBuilder/Rule/Value/EmptyValue/EmptyValue.js.map +1 -1
  264. package/dist/esm/QueryBuilder/Rule/Value/NumericValue/Numeric.styles.js.map +1 -1
  265. package/dist/esm/QueryBuilder/Rule/Value/NumericValue/NumericValue.js.map +1 -1
  266. package/dist/esm/QueryBuilder/Rule/Value/TextValue/TextValue.js.map +1 -1
  267. package/dist/esm/QueryBuilder/Rule/Value/TextValue/TextValue.styles.js.map +1 -1
  268. package/dist/esm/QueryBuilder/Rule/Value/Value.js.map +1 -1
  269. package/dist/esm/QueryBuilder/RuleGroup/RuleGroup.js.map +1 -1
  270. package/dist/esm/QueryBuilder/utils/index.js.map +1 -1
  271. package/dist/esm/QueryBuilder/utils/reducer.js.map +1 -1
  272. package/dist/esm/Radio/Radio.js.map +1 -1
  273. package/dist/esm/Radio/Radio.styles.js.map +1 -1
  274. package/dist/esm/RadioGroup/RadioGroup.js.map +1 -1
  275. package/dist/esm/RadioGroup/RadioGroup.styles.js.map +1 -1
  276. package/dist/esm/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.js.map +1 -1
  277. package/dist/esm/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.styles.js.map +1 -1
  278. package/dist/esm/ScrollTo/Horizontal/ScrollToHorizontal.js.map +1 -1
  279. package/dist/esm/ScrollTo/Horizontal/ScrollToHorizontal.styles.js.map +1 -1
  280. package/dist/esm/ScrollTo/Vertical/ScrollToVertical.js.map +1 -1
  281. package/dist/esm/ScrollTo/Vertical/ScrollToVertical.styles.js.map +1 -1
  282. package/dist/esm/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.js.map +1 -1
  283. package/dist/esm/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.styles.js.map +1 -1
  284. package/dist/esm/ScrollTo/useScrollTo.js.map +1 -1
  285. package/dist/esm/ScrollTo/utils.js.map +1 -1
  286. package/dist/esm/Section/Section.js.map +1 -1
  287. package/dist/esm/Section/Section.styles.js.map +1 -1
  288. package/dist/esm/Select/Option.js.map +1 -1
  289. package/dist/esm/Select/OptionGroup.js.map +1 -1
  290. package/dist/esm/Select/Select.js.map +1 -1
  291. package/dist/esm/Select/Select.styles.js.map +1 -1
  292. package/dist/esm/SelectionList/SelectionList.js.map +1 -1
  293. package/dist/esm/SelectionList/SelectionList.styles.js.map +1 -1
  294. package/dist/esm/SimpleGrid/SimpleGrid.js.map +1 -1
  295. package/dist/esm/SimpleGrid/SimpleGrid.styles.js.map +1 -1
  296. package/dist/esm/Skeleton/Skeleton.js.map +1 -1
  297. package/dist/esm/Skeleton/Skeleton.styles.js.map +1 -1
  298. package/dist/esm/Slider/Slider.js.map +1 -1
  299. package/dist/esm/Slider/Slider.styles.js.map +1 -1
  300. package/dist/esm/Slider/SliderInput/SliderInput.js.map +1 -1
  301. package/dist/esm/Slider/base.js.map +1 -1
  302. package/dist/esm/Slider/utils.js.map +1 -1
  303. package/dist/esm/Snackbar/Snackbar.js.map +1 -1
  304. package/dist/esm/Snackbar/Snackbar.styles.js.map +1 -1
  305. package/dist/esm/Snackbar/SnackbarContent/SnackbarContent.js.map +1 -1
  306. package/dist/esm/Snackbar/SnackbarContent/SnackbarContent.styles.js.map +1 -1
  307. package/dist/esm/SnackbarProvider/SnackbarProvider.js.map +1 -1
  308. package/dist/esm/SnackbarProvider/SnackbarProvider.styles.js.map +1 -1
  309. package/dist/esm/Stack/Stack.js.map +1 -1
  310. package/dist/esm/Stack/Stack.styles.js.map +1 -1
  311. package/dist/esm/Switch/Switch.js.map +1 -1
  312. package/dist/esm/Switch/Switch.styles.js.map +1 -1
  313. package/dist/esm/Tab/Tab.js.map +1 -1
  314. package/dist/esm/Tab/Tab.styles.js.map +1 -1
  315. package/dist/esm/Table/Table.js.map +1 -1
  316. package/dist/esm/Table/Table.styles.js.map +1 -1
  317. package/dist/esm/Table/TableBody/TableBody.js.map +1 -1
  318. package/dist/esm/Table/TableCell/TableCell.js.map +1 -1
  319. package/dist/esm/Table/TableCell/TableCell.styles.js +2 -5
  320. package/dist/esm/Table/TableCell/TableCell.styles.js.map +1 -1
  321. package/dist/esm/Table/TableContainer/TableContainer.js.map +1 -1
  322. package/dist/esm/Table/TableContainer/TableContainer.styles.js.map +1 -1
  323. package/dist/esm/Table/TableHead/TableHead.js.map +1 -1
  324. package/dist/esm/Table/TableHeader/TableHeader.js +44 -52
  325. package/dist/esm/Table/TableHeader/TableHeader.js.map +1 -1
  326. package/dist/esm/Table/TableHeader/TableHeader.styles.js +18 -20
  327. package/dist/esm/Table/TableHeader/TableHeader.styles.js.map +1 -1
  328. package/dist/esm/Table/TableHeader/utils.js.map +1 -1
  329. package/dist/esm/Table/TableRow/TableRow.js.map +1 -1
  330. package/dist/esm/Table/TableRow/TableRow.styles.js +7 -15
  331. package/dist/esm/Table/TableRow/TableRow.styles.js.map +1 -1
  332. package/dist/esm/Table/hooks/useBulkActions.js.map +1 -1
  333. package/dist/esm/Table/hooks/useFilters.js.map +1 -1
  334. package/dist/esm/Table/hooks/useGlobalFilter.js.map +1 -1
  335. package/dist/esm/Table/hooks/useHeaderGroups.js.map +1 -1
  336. package/dist/esm/Table/hooks/usePagination.js.map +1 -1
  337. package/dist/esm/Table/hooks/useResizeColumns.js.map +1 -1
  338. package/dist/esm/Table/hooks/useRowExpand.js.map +1 -1
  339. package/dist/esm/Table/hooks/useRowSelection.js.map +1 -1
  340. package/dist/esm/Table/hooks/useRowState.js.map +1 -1
  341. package/dist/esm/Table/hooks/useSortBy.js.map +1 -1
  342. package/dist/esm/Table/hooks/useSticky.js.map +1 -1
  343. package/dist/esm/Table/hooks/useTable.js.map +1 -1
  344. package/dist/esm/Table/hooks/useTableStyles.js.map +1 -1
  345. package/dist/esm/Table/renderers/DateColumnCell/DateColumnCell.js.map +1 -1
  346. package/dist/esm/Table/renderers/ProgressColumnCell/ProgressColumnCell.js.map +1 -1
  347. package/dist/esm/Table/renderers/ProgressColumnCell/ProgressColumnCell.styles.js.map +1 -1
  348. package/dist/esm/Table/renderers/SwitchColumnCell/SwitchColumnCell.js.map +1 -1
  349. package/dist/esm/Table/renderers/SwitchColumnCell/SwitchColumnCell.styles.js.map +1 -1
  350. package/dist/esm/Table/renderers/renderers.js.map +1 -1
  351. package/dist/esm/Table/utils/fallbacks.js.map +1 -1
  352. package/dist/esm/Table/utils/utils.js.map +1 -1
  353. package/dist/esm/TableSection/TableSection.js.map +1 -1
  354. package/dist/esm/TableSection/TableSection.styles.js.map +1 -1
  355. package/dist/esm/Tabs/Tabs.js.map +1 -1
  356. package/dist/esm/Tabs/Tabs.styles.js.map +1 -1
  357. package/dist/esm/Tag/Tag.js.map +1 -1
  358. package/dist/esm/Tag/Tag.styles.js.map +1 -1
  359. package/dist/esm/TagsInput/TagsInput.js.map +1 -1
  360. package/dist/esm/TagsInput/TagsInput.styles.js.map +1 -1
  361. package/dist/esm/TextArea/TextArea.js.map +1 -1
  362. package/dist/esm/TimeAgo/TimeAgo.js.map +1 -1
  363. package/dist/esm/TimeAgo/TimeAgo.styles.js.map +1 -1
  364. package/dist/esm/TimeAgo/formatUtils.js.map +1 -1
  365. package/dist/esm/TimeAgo/useTimeAgo.js.map +1 -1
  366. package/dist/esm/TimePicker/Placeholder.js.map +1 -1
  367. package/dist/esm/TimePicker/TimePicker.js.map +1 -1
  368. package/dist/esm/TimePicker/TimePicker.styles.js.map +1 -1
  369. package/dist/esm/TimePicker/Unit/Unit.js.map +1 -1
  370. package/dist/esm/TimePicker/Unit/Unit.styles.js.map +1 -1
  371. package/dist/esm/ToggleButton/ToggleButton.js.map +1 -1
  372. package/dist/esm/Tooltip/Tooltip.js.map +1 -1
  373. package/dist/esm/Tooltip/Tooltip.styles.js.map +1 -1
  374. package/dist/esm/TreeView/TreeItem/DefaultContent.js.map +1 -1
  375. package/dist/esm/TreeView/TreeItem/TreeItem.js.map +1 -1
  376. package/dist/esm/TreeView/TreeItem/TreeItem.styles.js.map +1 -1
  377. package/dist/esm/TreeView/TreeItem/useHvTreeItem.js.map +1 -1
  378. package/dist/esm/TreeView/TreeView.js.map +1 -1
  379. package/dist/esm/TreeView/TreeView.styles.js.map +1 -1
  380. package/dist/esm/TreeView/internals/DescendantProvider.js.map +1 -1
  381. package/dist/esm/TreeView/internals/TreeViewProvider.js.map +1 -1
  382. package/dist/esm/TreeView/internals/hooks/plugins/useTreeViewContextValueBuilder.js.map +1 -1
  383. package/dist/esm/TreeView/internals/hooks/plugins/useTreeViewExpansion.js.map +1 -1
  384. package/dist/esm/TreeView/internals/hooks/plugins/useTreeViewFocus.js.map +1 -1
  385. package/dist/esm/TreeView/internals/hooks/plugins/useTreeViewKeyboardNavigation.js.map +1 -1
  386. package/dist/esm/TreeView/internals/hooks/plugins/useTreeViewNodes.js.map +1 -1
  387. package/dist/esm/TreeView/internals/hooks/plugins/useTreeViewSelection.js.map +1 -1
  388. package/dist/esm/TreeView/internals/hooks/useInstanceEventHandler.js.map +1 -1
  389. package/dist/esm/TreeView/internals/hooks/useTreeView.js.map +1 -1
  390. package/dist/esm/TreeView/internals/hooks/useTreeViewInstanceEvents.js.map +1 -1
  391. package/dist/esm/TreeView/internals/hooks/useTreeViewModels.js.map +1 -1
  392. package/dist/esm/TreeView/internals/hooks/utils.js.map +1 -1
  393. package/dist/esm/TreeView/internals/utils/EventManager.js.map +1 -1
  394. package/dist/esm/TreeView/internals/utils/FinalizationRegistryBasedCleanupTracking.js.map +1 -1
  395. package/dist/esm/TreeView/internals/utils/TimerBasedCleanupTracking.js.map +1 -1
  396. package/dist/esm/Typography/Typography.js.map +1 -1
  397. package/dist/esm/Typography/Typography.styles.js.map +1 -1
  398. package/dist/esm/VerticalNavigation/Actions/Action.js.map +1 -1
  399. package/dist/esm/VerticalNavigation/Actions/Action.styles.js.map +1 -1
  400. package/dist/esm/VerticalNavigation/Actions/Actions.js.map +1 -1
  401. package/dist/esm/VerticalNavigation/Actions/Actions.styles.js.map +1 -1
  402. package/dist/esm/VerticalNavigation/Header/Header.js.map +1 -1
  403. package/dist/esm/VerticalNavigation/Header/Header.styles.js.map +1 -1
  404. package/dist/esm/VerticalNavigation/Navigation/Navigation.js.map +1 -1
  405. package/dist/esm/VerticalNavigation/Navigation/Navigation.styles.js.map +1 -1
  406. package/dist/esm/VerticalNavigation/NavigationPopup/NavigationPopup.styles.js.map +1 -1
  407. package/dist/esm/VerticalNavigation/NavigationPopup/NavigationPopupContainer.js.map +1 -1
  408. package/dist/esm/VerticalNavigation/NavigationSlider/NavigationSlider.js.map +1 -1
  409. package/dist/esm/VerticalNavigation/NavigationSlider/NavigationSlider.styles.js.map +1 -1
  410. package/dist/esm/VerticalNavigation/NavigationSlider/utils.js.map +1 -1
  411. package/dist/esm/VerticalNavigation/TreeView/TreeView.js.map +1 -1
  412. package/dist/esm/VerticalNavigation/TreeView/TreeView.styles.js.map +1 -1
  413. package/dist/esm/VerticalNavigation/TreeView/TreeViewContext.js.map +1 -1
  414. package/dist/esm/VerticalNavigation/TreeView/TreeViewItem.js.map +1 -1
  415. package/dist/esm/VerticalNavigation/TreeView/TreeViewItem.styles.js.map +1 -1
  416. package/dist/esm/VerticalNavigation/VerticalNavigation.js.map +1 -1
  417. package/dist/esm/VerticalNavigation/VerticalNavigation.styles.js.map +1 -1
  418. package/dist/esm/VerticalNavigation/VerticalNavigationContext.js.map +1 -1
  419. package/dist/esm/hocs/withTooltip.js.map +1 -1
  420. package/dist/esm/hooks/useClickOutside.js.map +1 -1
  421. package/dist/esm/hooks/useComputation.js.map +1 -1
  422. package/dist/esm/hooks/useControlled.js.map +1 -1
  423. package/dist/esm/hooks/useExpandable.js.map +1 -1
  424. package/dist/esm/hooks/useForkRef.js.map +1 -1
  425. package/dist/esm/hooks/useImageLoaded.js.map +1 -1
  426. package/dist/esm/hooks/useIsMounted.js.map +1 -1
  427. package/dist/esm/hooks/useUniqueId.js.map +1 -1
  428. package/dist/esm/hooks/useWidth.js.map +1 -1
  429. package/dist/esm/providers/Provider.js.map +1 -1
  430. package/dist/esm/providers/ThemeProvider.js.map +1 -1
  431. package/dist/esm/utils/Random.js.map +1 -1
  432. package/dist/esm/utils/browser.js.map +1 -1
  433. package/dist/esm/utils/deepMerge.js.map +1 -1
  434. package/dist/esm/utils/document.js.map +1 -1
  435. package/dist/esm/utils/focusableElementFinder.js.map +1 -1
  436. package/dist/esm/utils/helpers.js.map +1 -1
  437. package/dist/esm/utils/iconVariant.js.map +1 -1
  438. package/dist/esm/utils/multiSelectionEventHandler.js.map +1 -1
  439. package/dist/esm/utils/sizes.js.map +1 -1
  440. package/dist/esm/utils/theme.js.map +1 -1
  441. package/dist/esm/utils/useSavedState.js.map +1 -1
  442. package/dist/esm/utils/wrapperTooltip.js.map +1 -1
  443. package/dist/types/index.d.ts +6 -3
  444. package/package.json +6 -6
  445. package/dist/esm/BaseDropdown/BaseDropdownContext/BaseDropdownContext.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useTreeView.js","sources":["../../../../../src/TreeView/internals/hooks/useTreeView.ts"],"sourcesContent":["import * as React from \"react\";\nimport { EventHandlers } from \"@mui/base/utils\";\nimport { useForkRef } from \"@mui/material/utils\";\n\nimport { TREE_VIEW_CORE_PLUGINS } from \"../corePlugins\";\nimport {\n DEFAULT_TREE_VIEW_CONTEXT_VALUE,\n TreeViewContextValue,\n} from \"../TreeViewProvider\";\nimport {\n ConvertPluginsIntoSignatures,\n MergePluginsProperty,\n TreeViewAnyPluginSignature,\n TreeViewInstance,\n TreeViewPlugin,\n} from \"../types\";\nimport { useTreeViewModels } from \"./useTreeViewModels\";\n\nexport type UseTreeViewParameters<\n TPlugins extends readonly TreeViewPlugin<TreeViewAnyPluginSignature>[],\n> = {\n rootRef?: React.Ref<HTMLUListElement> | undefined;\n plugins: TPlugins;\n} & MergePluginsProperty<ConvertPluginsIntoSignatures<TPlugins>, \"params\">;\n\nexport type UseTreeViewDefaultizedParameters<\n TPlugins extends readonly TreeViewPlugin<TreeViewAnyPluginSignature>[],\n> = {\n rootRef?: React.Ref<HTMLUListElement> | undefined;\n plugins: TPlugins;\n} & MergePluginsProperty<\n ConvertPluginsIntoSignatures<TPlugins>,\n \"defaultizedParams\"\n>;\n\nexport interface UseTreeViewRootSlotProps\n extends Pick<\n React.HTMLAttributes<HTMLUListElement>,\n | \"onFocus\"\n | \"onBlur\"\n | \"onKeyDown\"\n | \"id\"\n | \"aria-activedescendant\"\n | \"aria-multiselectable\"\n | \"role\"\n | \"tabIndex\"\n > {\n ref: React.Ref<HTMLUListElement>;\n}\n\nexport interface UseTreeViewReturnValue<\n TPlugins extends readonly TreeViewAnyPluginSignature[],\n> {\n getRootProps: <TOther extends EventHandlers = {}>(\n otherHandlers?: TOther,\n ) => UseTreeViewRootSlotProps;\n rootRef: React.RefCallback<HTMLUListElement> | null;\n contextValue: TreeViewContextValue<TPlugins>;\n}\n\nexport const useTreeView = <\n Plugins extends readonly TreeViewPlugin<TreeViewAnyPluginSignature>[],\n>(\n inParams: UseTreeViewParameters<Plugins>,\n): UseTreeViewReturnValue<ConvertPluginsIntoSignatures<Plugins>> => {\n const plugins = [...TREE_VIEW_CORE_PLUGINS, ...inParams.plugins];\n type Signatures = ConvertPluginsIntoSignatures<typeof plugins>;\n\n const params = plugins.reduce((acc, plugin) => {\n if (plugin.getDefaultizedParams) {\n return plugin.getDefaultizedParams(acc);\n }\n\n return acc;\n }, inParams) as unknown as UseTreeViewDefaultizedParameters<Plugins>;\n\n const models = useTreeViewModels(\n plugins,\n params as MergePluginsProperty<Signatures, \"defaultizedParams\">,\n );\n const instanceRef = React.useRef<TreeViewInstance<Signatures>>(\n {} as TreeViewInstance<Signatures>,\n );\n const instance = instanceRef.current;\n const innerRootRef = React.useRef(null);\n const handleRootRef = useForkRef(innerRootRef, inParams.rootRef);\n\n const [state, setState] = React.useState(() => {\n const temp = {} as MergePluginsProperty<Signatures, \"state\">;\n plugins.forEach((plugin) => {\n if (plugin.getInitialState) {\n Object.assign(\n temp,\n plugin.getInitialState(\n params as UseTreeViewDefaultizedParameters<any>,\n ),\n );\n }\n });\n\n return temp;\n });\n\n const rootPropsGetters: (<TOther extends EventHandlers = {}>(\n otherHandlers: TOther,\n ) => React.HTMLAttributes<HTMLUListElement>)[] = [];\n let contextValue: TreeViewContextValue<Signatures> =\n DEFAULT_TREE_VIEW_CONTEXT_VALUE;\n\n const runPlugin = (plugin: TreeViewPlugin<any>) => {\n const pluginResponse =\n plugin({\n instance,\n params,\n state,\n setState,\n rootRef: innerRootRef,\n models,\n }) || {};\n\n if (pluginResponse.getRootProps) {\n rootPropsGetters.push(pluginResponse.getRootProps);\n }\n\n if (pluginResponse.contextValue) {\n contextValue = pluginResponse.contextValue;\n }\n };\n\n plugins.forEach(runPlugin);\n\n const getRootProps = <TOther extends EventHandlers = {}>(\n otherHandlers: TOther = {} as TOther,\n ) => {\n const rootProps: UseTreeViewRootSlotProps = {\n role: \"tree\",\n tabIndex: 0,\n ...otherHandlers,\n ref: handleRootRef,\n };\n\n rootPropsGetters.forEach((rootPropsGetter) => {\n Object.assign(rootProps, rootPropsGetter(otherHandlers));\n });\n\n return rootProps;\n };\n\n return { getRootProps, rootRef: handleRootRef, contextValue };\n};\n"],"names":[],"mappings":";;;;;AA4Da,MAAA,cAAc,CAGzB,aACkE;AAClE,QAAM,UAAU,CAAC,GAAG,wBAAwB,GAAG,SAAS,OAAO;AAG/D,QAAM,SAAS,QAAQ,OAAO,CAAC,KAAK,WAAW;AAC7C,QAAI,OAAO,sBAAsB;AACxB,aAAA,OAAO,qBAAqB,GAAG;AAAA,IACxC;AAEO,WAAA;AAAA,KACN,QAAQ;AAEX,QAAM,SAAS;AAAA,IACb;AAAA,IACA;AAAA,EAAA;AAEF,QAAM,cAAc,MAAM;AAAA,IACxB,CAAC;AAAA,EAAA;AAEH,QAAM,WAAW,YAAY;AACvB,QAAA,eAAe,MAAM,OAAO,IAAI;AACtC,QAAM,gBAAgB,WAAW,cAAc,SAAS,OAAO;AAE/D,QAAM,CAAC,OAAO,QAAQ,IAAI,MAAM,SAAS,MAAM;AAC7C,UAAM,OAAO,CAAA;AACL,YAAA,QAAQ,CAAC,WAAW;AAC1B,UAAI,OAAO,iBAAiB;AACnB,eAAA;AAAA,UACL;AAAA,UACA,OAAO;AAAA,YACL;AAAA,UACF;AAAA,QAAA;AAAA,MAEJ;AAAA,IAAA,CACD;AAEM,WAAA;AAAA,EAAA,CACR;AAED,QAAM,mBAE2C,CAAA;AACjD,MAAI,eACF;AAEI,QAAA,YAAY,CAAC,WAAgC;AACjD,UAAM,iBACJ,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAAS;AAAA,MACT;AAAA,IACD,CAAA,KAAK,CAAA;AAER,QAAI,eAAe,cAAc;AACd,uBAAA,KAAK,eAAe,YAAY;AAAA,IACnD;AAEA,QAAI,eAAe,cAAc;AAC/B,qBAAe,eAAe;AAAA,IAChC;AAAA,EAAA;AAGF,UAAQ,QAAQ,SAAS;AAEzB,QAAM,eAAe,CACnB,gBAAwB,OACrB;AACH,UAAM,YAAsC;AAAA,MAC1C,MAAM;AAAA,MACN,UAAU;AAAA,MACV,GAAG;AAAA,MACH,KAAK;AAAA,IAAA;AAGU,qBAAA,QAAQ,CAAC,oBAAoB;AAC5C,aAAO,OAAO,WAAW,gBAAgB,aAAa,CAAC;AAAA,IAAA,CACxD;AAEM,WAAA;AAAA,EAAA;AAGT,SAAO,EAAE,cAAc,SAAS,eAAe,aAAa;AAC9D;"}
1
+ {"version":3,"file":"useTreeView.js","sources":["../../../../../src/TreeView/internals/hooks/useTreeView.ts"],"sourcesContent":["import * as React from \"react\";\nimport { EventHandlers } from \"@mui/base/utils\";\nimport { useForkRef } from \"@mui/material/utils\";\n\nimport { TREE_VIEW_CORE_PLUGINS } from \"../corePlugins\";\nimport {\n DEFAULT_TREE_VIEW_CONTEXT_VALUE,\n TreeViewContextValue,\n} from \"../TreeViewProvider\";\nimport {\n ConvertPluginsIntoSignatures,\n MergePluginsProperty,\n TreeViewAnyPluginSignature,\n TreeViewInstance,\n TreeViewPlugin,\n} from \"../types\";\nimport { useTreeViewModels } from \"./useTreeViewModels\";\n\nexport type UseTreeViewParameters<\n TPlugins extends readonly TreeViewPlugin<TreeViewAnyPluginSignature>[],\n> = {\n rootRef?: React.Ref<HTMLUListElement> | undefined;\n plugins: TPlugins;\n} & MergePluginsProperty<ConvertPluginsIntoSignatures<TPlugins>, \"params\">;\n\nexport type UseTreeViewDefaultizedParameters<\n TPlugins extends readonly TreeViewPlugin<TreeViewAnyPluginSignature>[],\n> = {\n rootRef?: React.Ref<HTMLUListElement> | undefined;\n plugins: TPlugins;\n} & MergePluginsProperty<\n ConvertPluginsIntoSignatures<TPlugins>,\n \"defaultizedParams\"\n>;\n\nexport interface UseTreeViewRootSlotProps\n extends Pick<\n React.HTMLAttributes<HTMLUListElement>,\n | \"onFocus\"\n | \"onBlur\"\n | \"onKeyDown\"\n | \"id\"\n | \"aria-activedescendant\"\n | \"aria-multiselectable\"\n | \"role\"\n | \"tabIndex\"\n > {\n ref: React.Ref<HTMLUListElement>;\n}\n\nexport interface UseTreeViewReturnValue<\n TPlugins extends readonly TreeViewAnyPluginSignature[],\n> {\n getRootProps: <TOther extends EventHandlers = {}>(\n otherHandlers?: TOther,\n ) => UseTreeViewRootSlotProps;\n rootRef: React.RefCallback<HTMLUListElement> | null;\n contextValue: TreeViewContextValue<TPlugins>;\n}\n\nexport const useTreeView = <\n Plugins extends readonly TreeViewPlugin<TreeViewAnyPluginSignature>[],\n>(\n inParams: UseTreeViewParameters<Plugins>,\n): UseTreeViewReturnValue<ConvertPluginsIntoSignatures<Plugins>> => {\n const plugins = [...TREE_VIEW_CORE_PLUGINS, ...inParams.plugins];\n type Signatures = ConvertPluginsIntoSignatures<typeof plugins>;\n\n const params = plugins.reduce((acc, plugin) => {\n if (plugin.getDefaultizedParams) {\n return plugin.getDefaultizedParams(acc);\n }\n\n return acc;\n }, inParams) as unknown as UseTreeViewDefaultizedParameters<Plugins>;\n\n const models = useTreeViewModels(\n plugins,\n params as MergePluginsProperty<Signatures, \"defaultizedParams\">,\n );\n const instanceRef = React.useRef<TreeViewInstance<Signatures>>(\n {} as TreeViewInstance<Signatures>,\n );\n const instance = instanceRef.current;\n const innerRootRef = React.useRef(null);\n const handleRootRef = useForkRef(innerRootRef, inParams.rootRef);\n\n const [state, setState] = React.useState(() => {\n const temp = {} as MergePluginsProperty<Signatures, \"state\">;\n plugins.forEach((plugin) => {\n if (plugin.getInitialState) {\n Object.assign(\n temp,\n plugin.getInitialState(\n params as UseTreeViewDefaultizedParameters<any>,\n ),\n );\n }\n });\n\n return temp;\n });\n\n const rootPropsGetters: (<TOther extends EventHandlers = {}>(\n otherHandlers: TOther,\n ) => React.HTMLAttributes<HTMLUListElement>)[] = [];\n let contextValue: TreeViewContextValue<Signatures> =\n DEFAULT_TREE_VIEW_CONTEXT_VALUE;\n\n const runPlugin = (plugin: TreeViewPlugin<any>) => {\n const pluginResponse =\n plugin({\n instance,\n params,\n state,\n setState,\n rootRef: innerRootRef,\n models,\n }) || {};\n\n if (pluginResponse.getRootProps) {\n rootPropsGetters.push(pluginResponse.getRootProps);\n }\n\n if (pluginResponse.contextValue) {\n contextValue = pluginResponse.contextValue;\n }\n };\n\n plugins.forEach(runPlugin);\n\n const getRootProps = <TOther extends EventHandlers = {}>(\n otherHandlers: TOther = {} as TOther,\n ) => {\n const rootProps: UseTreeViewRootSlotProps = {\n role: \"tree\",\n tabIndex: 0,\n ...otherHandlers,\n ref: handleRootRef,\n };\n\n rootPropsGetters.forEach((rootPropsGetter) => {\n Object.assign(rootProps, rootPropsGetter(otherHandlers));\n });\n\n return rootProps;\n };\n\n return { getRootProps, rootRef: handleRootRef, contextValue };\n};\n"],"names":[],"mappings":";;;;;AA4Da,MAAA,cAAc,CAGzB,aACkE;AAClE,QAAM,UAAU,CAAC,GAAG,wBAAwB,GAAG,SAAS,OAAO;AAG/D,QAAM,SAAS,QAAQ,OAAO,CAAC,KAAK,WAAW;AAC7C,QAAI,OAAO,sBAAsB;AACxB,aAAA,OAAO,qBAAqB,GAAG;AAAA,IAAA;AAGjC,WAAA;AAAA,KACN,QAAQ;AAEX,QAAM,SAAS;AAAA,IACb;AAAA,IACA;AAAA,EACF;AACA,QAAM,cAAc,MAAM;AAAA,IACxB,CAAA;AAAA,EACF;AACA,QAAM,WAAW,YAAY;AACvB,QAAA,eAAe,MAAM,OAAO,IAAI;AACtC,QAAM,gBAAgB,WAAW,cAAc,SAAS,OAAO;AAE/D,QAAM,CAAC,OAAO,QAAQ,IAAI,MAAM,SAAS,MAAM;AAC7C,UAAM,OAAO,CAAC;AACN,YAAA,QAAQ,CAAC,WAAW;AAC1B,UAAI,OAAO,iBAAiB;AACnB,eAAA;AAAA,UACL;AAAA,UACA,OAAO;AAAA,YACL;AAAA,UAAA;AAAA,QAEJ;AAAA,MAAA;AAAA,IACF,CACD;AAEM,WAAA;AAAA,EAAA,CACR;AAED,QAAM,mBAE2C,CAAC;AAClD,MAAI,eACF;AAEI,QAAA,YAAY,CAAC,WAAgC;AACjD,UAAM,iBACJ,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAAS;AAAA,MACT;AAAA,IACD,CAAA,KAAK,CAAC;AAET,QAAI,eAAe,cAAc;AACd,uBAAA,KAAK,eAAe,YAAY;AAAA,IAAA;AAGnD,QAAI,eAAe,cAAc;AAC/B,qBAAe,eAAe;AAAA,IAAA;AAAA,EAElC;AAEA,UAAQ,QAAQ,SAAS;AAEzB,QAAM,eAAe,CACnB,gBAAwB,OACrB;AACH,UAAM,YAAsC;AAAA,MAC1C,MAAM;AAAA,MACN,UAAU;AAAA,MACV,GAAG;AAAA,MACH,KAAK;AAAA,IACP;AAEiB,qBAAA,QAAQ,CAAC,oBAAoB;AAC5C,aAAO,OAAO,WAAW,gBAAgB,aAAa,CAAC;AAAA,IAAA,CACxD;AAEM,WAAA;AAAA,EACT;AAEA,SAAO,EAAE,cAAc,SAAS,eAAe,aAAa;AAC9D;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useTreeViewInstanceEvents.js","sources":["../../../../../src/TreeView/internals/hooks/useTreeViewInstanceEvents.ts"],"sourcesContent":["import * as React from \"react\";\n\nimport type { TreeViewPlugin } from \"../types\";\nimport type { TreeViewEventListener } from \"../types/events\";\nimport { EventManager } from \"../utils/EventManager\";\nimport { UseTreeViewInstanceEventsSignature } from \"./useTreeViewInstanceEvents.types\";\nimport { populateInstance } from \"./utils\";\n\nconst isSyntheticEvent = (event: any): event is React.SyntheticEvent => {\n return event.isPropagationStopped !== undefined;\n};\n\n/**\n * Plugin responsible for the registration of the nodes defined as JSX children of the TreeView.\n * When we will have both a SimpleTreeView using JSX children and a TreeView using a data prop,\n * this plugin will only be used by SimpleTreeView.\n */\nexport const useTreeViewInstanceEvents: TreeViewPlugin<\n UseTreeViewInstanceEventsSignature\n> = ({ instance }) => {\n const [eventManager] = React.useState(() => new EventManager());\n\n const publishEvent = React.useCallback(\n (...args: any[]) => {\n const [name, params, event = {}] = args;\n event.defaultMuiPrevented = false;\n\n if (isSyntheticEvent(event) && event.isPropagationStopped()) {\n return;\n }\n\n eventManager.emit(name, params, event);\n },\n [eventManager],\n );\n\n const subscribeEvent = React.useCallback(\n (event: string, handler: TreeViewEventListener<any>) => {\n eventManager.on(event, handler);\n return () => {\n eventManager.removeListener(event, handler);\n };\n },\n [eventManager],\n );\n\n populateInstance<UseTreeViewInstanceEventsSignature>(instance, {\n $$publishEvent: publishEvent,\n $$subscribeEvent: subscribeEvent,\n });\n};\n"],"names":[],"mappings":";;;AAQA,MAAM,mBAAmB,CAAC,UAA8C;AACtE,SAAO,MAAM,yBAAyB;AACxC;AAOO,MAAM,4BAET,CAAC,EAAE,eAAe;AACd,QAAA,CAAC,YAAY,IAAI,MAAM,SAAS,MAAM,IAAI,cAAc;AAE9D,QAAM,eAAe,MAAM;AAAA,IACzB,IAAI,SAAgB;AAClB,YAAM,CAAC,MAAM,QAAQ,QAAQ,CAAE,CAAA,IAAI;AACnC,YAAM,sBAAsB;AAE5B,UAAI,iBAAiB,KAAK,KAAK,MAAM,wBAAwB;AAC3D;AAAA,MACF;AAEa,mBAAA,KAAK,MAAM,QAAQ,KAAK;AAAA,IACvC;AAAA,IACA,CAAC,YAAY;AAAA,EAAA;AAGf,QAAM,iBAAiB,MAAM;AAAA,IAC3B,CAAC,OAAe,YAAwC;AACzC,mBAAA,GAAG,OAAO,OAAO;AAC9B,aAAO,MAAM;AACE,qBAAA,eAAe,OAAO,OAAO;AAAA,MAAA;AAAA,IAE9C;AAAA,IACA,CAAC,YAAY;AAAA,EAAA;AAGf,mBAAqD,UAAU;AAAA,IAC7D,gBAAgB;AAAA,IAChB,kBAAkB;AAAA,EAAA,CACnB;AACH;"}
1
+ {"version":3,"file":"useTreeViewInstanceEvents.js","sources":["../../../../../src/TreeView/internals/hooks/useTreeViewInstanceEvents.ts"],"sourcesContent":["import * as React from \"react\";\n\nimport type { TreeViewPlugin } from \"../types\";\nimport type { TreeViewEventListener } from \"../types/events\";\nimport { EventManager } from \"../utils/EventManager\";\nimport { UseTreeViewInstanceEventsSignature } from \"./useTreeViewInstanceEvents.types\";\nimport { populateInstance } from \"./utils\";\n\nconst isSyntheticEvent = (event: any): event is React.SyntheticEvent => {\n return event.isPropagationStopped !== undefined;\n};\n\n/**\n * Plugin responsible for the registration of the nodes defined as JSX children of the TreeView.\n * When we will have both a SimpleTreeView using JSX children and a TreeView using a data prop,\n * this plugin will only be used by SimpleTreeView.\n */\nexport const useTreeViewInstanceEvents: TreeViewPlugin<\n UseTreeViewInstanceEventsSignature\n> = ({ instance }) => {\n const [eventManager] = React.useState(() => new EventManager());\n\n const publishEvent = React.useCallback(\n (...args: any[]) => {\n const [name, params, event = {}] = args;\n event.defaultMuiPrevented = false;\n\n if (isSyntheticEvent(event) && event.isPropagationStopped()) {\n return;\n }\n\n eventManager.emit(name, params, event);\n },\n [eventManager],\n );\n\n const subscribeEvent = React.useCallback(\n (event: string, handler: TreeViewEventListener<any>) => {\n eventManager.on(event, handler);\n return () => {\n eventManager.removeListener(event, handler);\n };\n },\n [eventManager],\n );\n\n populateInstance<UseTreeViewInstanceEventsSignature>(instance, {\n $$publishEvent: publishEvent,\n $$subscribeEvent: subscribeEvent,\n });\n};\n"],"names":[],"mappings":";;;AAQA,MAAM,mBAAmB,CAAC,UAA8C;AACtE,SAAO,MAAM,yBAAyB;AACxC;AAOO,MAAM,4BAET,CAAC,EAAE,eAAe;AACd,QAAA,CAAC,YAAY,IAAI,MAAM,SAAS,MAAM,IAAI,cAAc;AAE9D,QAAM,eAAe,MAAM;AAAA,IACzB,IAAI,SAAgB;AAClB,YAAM,CAAC,MAAM,QAAQ,QAAQ,CAAA,CAAE,IAAI;AACnC,YAAM,sBAAsB;AAE5B,UAAI,iBAAiB,KAAK,KAAK,MAAM,wBAAwB;AAC3D;AAAA,MAAA;AAGW,mBAAA,KAAK,MAAM,QAAQ,KAAK;AAAA,IACvC;AAAA,IACA,CAAC,YAAY;AAAA,EACf;AAEA,QAAM,iBAAiB,MAAM;AAAA,IAC3B,CAAC,OAAe,YAAwC;AACzC,mBAAA,GAAG,OAAO,OAAO;AAC9B,aAAO,MAAM;AACE,qBAAA,eAAe,OAAO,OAAO;AAAA,MAC5C;AAAA,IACF;AAAA,IACA,CAAC,YAAY;AAAA,EACf;AAEA,mBAAqD,UAAU;AAAA,IAC7D,gBAAgB;AAAA,IAChB,kBAAkB;AAAA,EAAA,CACnB;AACH;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useTreeViewModels.js","sources":["../../../../../src/TreeView/internals/hooks/useTreeViewModels.ts"],"sourcesContent":["import * as React from \"react\";\n\nimport {\n ConvertPluginsIntoSignatures,\n MergePluginsProperty,\n TreeViewAnyPluginSignature,\n TreeViewPlugin,\n} from \"../types\";\n\n/**\n * Implements the same behavior as `useControlled` but for several models.\n * The controlled models are never stored in the state and the state is only updated if the model is not controlled.\n */\nexport const useTreeViewModels = <\n TPlugins extends readonly TreeViewPlugin<TreeViewAnyPluginSignature>[],\n>(\n plugins: TPlugins,\n props: MergePluginsProperty<\n ConvertPluginsIntoSignatures<TPlugins>,\n \"defaultizedParams\"\n >,\n) => {\n const modelsRef = React.useRef<{\n [modelName: string]: {\n controlledProp: keyof typeof props;\n defaultProp: keyof typeof props;\n isControlled: boolean;\n };\n }>({});\n\n const [modelsState, setModelsState] = React.useState<{\n [modelName: string]: any;\n }>(() => {\n const initialState: { [modelName: string]: any } = {};\n\n plugins.forEach((plugin) => {\n if (plugin.models) {\n Object.entries(plugin.models).forEach(([modelName, model]) => {\n modelsRef.current[modelName] = {\n controlledProp: model.controlledProp as keyof typeof props,\n defaultProp: model.defaultProp as keyof typeof props,\n isControlled:\n props[model.controlledProp as keyof typeof props] !== undefined,\n };\n initialState[modelName] =\n props[model.defaultProp as keyof typeof props];\n });\n }\n });\n\n return initialState;\n });\n\n const models = Object.fromEntries(\n Object.entries(modelsRef.current).map(([modelName, model]) => {\n const value = model.isControlled\n ? props[model.controlledProp]\n : modelsState[modelName];\n\n return [\n modelName,\n {\n value,\n setValue: (newValue: any) => {\n if (!model.isControlled) {\n setModelsState((prevState) => ({\n ...prevState,\n [modelName]: newValue,\n }));\n }\n },\n },\n ];\n }),\n ) as MergePluginsProperty<ConvertPluginsIntoSignatures<TPlugins>, \"models\">;\n\n return models;\n};\n"],"names":[],"mappings":";AAaa,MAAA,oBAAoB,CAG/B,SACA,UAIG;AACH,QAAM,YAAY,MAAM,OAMrB,CAAE,CAAA;AAEL,QAAM,CAAC,aAAa,cAAc,IAAI,MAAM,SAEzC,MAAM;AACP,UAAM,eAA6C,CAAA;AAE3C,YAAA,QAAQ,CAAC,WAAW;AAC1B,UAAI,OAAO,QAAQ;AACV,eAAA,QAAQ,OAAO,MAAM,EAAE,QAAQ,CAAC,CAAC,WAAW,KAAK,MAAM;AAClD,oBAAA,QAAQ,SAAS,IAAI;AAAA,YAC7B,gBAAgB,MAAM;AAAA,YACtB,aAAa,MAAM;AAAA,YACnB,cACE,MAAM,MAAM,cAAoC,MAAM;AAAA,UAAA;AAE1D,uBAAa,SAAS,IACpB,MAAM,MAAM,WAAiC;AAAA,QAAA,CAChD;AAAA,MACH;AAAA,IAAA,CACD;AAEM,WAAA;AAAA,EAAA,CACR;AAED,QAAM,SAAS,OAAO;AAAA,IACpB,OAAO,QAAQ,UAAU,OAAO,EAAE,IAAI,CAAC,CAAC,WAAW,KAAK,MAAM;AACtD,YAAA,QAAQ,MAAM,eAChB,MAAM,MAAM,cAAc,IAC1B,YAAY,SAAS;AAElB,aAAA;AAAA,QACL;AAAA,QACA;AAAA,UACE;AAAA,UACA,UAAU,CAAC,aAAkB;AACvB,gBAAA,CAAC,MAAM,cAAc;AACvB,6BAAe,CAAC,eAAe;AAAA,gBAC7B,GAAG;AAAA,gBACH,CAAC,SAAS,GAAG;AAAA,cACb,EAAA;AAAA,YACJ;AAAA,UACF;AAAA,QACF;AAAA,MAAA;AAAA,IACF,CACD;AAAA,EAAA;AAGI,SAAA;AACT;"}
1
+ {"version":3,"file":"useTreeViewModels.js","sources":["../../../../../src/TreeView/internals/hooks/useTreeViewModels.ts"],"sourcesContent":["import * as React from \"react\";\n\nimport {\n ConvertPluginsIntoSignatures,\n MergePluginsProperty,\n TreeViewAnyPluginSignature,\n TreeViewPlugin,\n} from \"../types\";\n\n/**\n * Implements the same behavior as `useControlled` but for several models.\n * The controlled models are never stored in the state and the state is only updated if the model is not controlled.\n */\nexport const useTreeViewModels = <\n TPlugins extends readonly TreeViewPlugin<TreeViewAnyPluginSignature>[],\n>(\n plugins: TPlugins,\n props: MergePluginsProperty<\n ConvertPluginsIntoSignatures<TPlugins>,\n \"defaultizedParams\"\n >,\n) => {\n const modelsRef = React.useRef<{\n [modelName: string]: {\n controlledProp: keyof typeof props;\n defaultProp: keyof typeof props;\n isControlled: boolean;\n };\n }>({});\n\n const [modelsState, setModelsState] = React.useState<{\n [modelName: string]: any;\n }>(() => {\n const initialState: { [modelName: string]: any } = {};\n\n plugins.forEach((plugin) => {\n if (plugin.models) {\n Object.entries(plugin.models).forEach(([modelName, model]) => {\n modelsRef.current[modelName] = {\n controlledProp: model.controlledProp as keyof typeof props,\n defaultProp: model.defaultProp as keyof typeof props,\n isControlled:\n props[model.controlledProp as keyof typeof props] !== undefined,\n };\n initialState[modelName] =\n props[model.defaultProp as keyof typeof props];\n });\n }\n });\n\n return initialState;\n });\n\n const models = Object.fromEntries(\n Object.entries(modelsRef.current).map(([modelName, model]) => {\n const value = model.isControlled\n ? props[model.controlledProp]\n : modelsState[modelName];\n\n return [\n modelName,\n {\n value,\n setValue: (newValue: any) => {\n if (!model.isControlled) {\n setModelsState((prevState) => ({\n ...prevState,\n [modelName]: newValue,\n }));\n }\n },\n },\n ];\n }),\n ) as MergePluginsProperty<ConvertPluginsIntoSignatures<TPlugins>, \"models\">;\n\n return models;\n};\n"],"names":[],"mappings":";AAaa,MAAA,oBAAoB,CAG/B,SACA,UAIG;AACH,QAAM,YAAY,MAAM,OAMrB,EAAE;AAEL,QAAM,CAAC,aAAa,cAAc,IAAI,MAAM,SAEzC,MAAM;AACP,UAAM,eAA6C,CAAC;AAE5C,YAAA,QAAQ,CAAC,WAAW;AAC1B,UAAI,OAAO,QAAQ;AACV,eAAA,QAAQ,OAAO,MAAM,EAAE,QAAQ,CAAC,CAAC,WAAW,KAAK,MAAM;AAClD,oBAAA,QAAQ,SAAS,IAAI;AAAA,YAC7B,gBAAgB,MAAM;AAAA,YACtB,aAAa,MAAM;AAAA,YACnB,cACE,MAAM,MAAM,cAAoC,MAAM;AAAA,UAC1D;AACA,uBAAa,SAAS,IACpB,MAAM,MAAM,WAAiC;AAAA,QAAA,CAChD;AAAA,MAAA;AAAA,IACH,CACD;AAEM,WAAA;AAAA,EAAA,CACR;AAED,QAAM,SAAS,OAAO;AAAA,IACpB,OAAO,QAAQ,UAAU,OAAO,EAAE,IAAI,CAAC,CAAC,WAAW,KAAK,MAAM;AACtD,YAAA,QAAQ,MAAM,eAChB,MAAM,MAAM,cAAc,IAC1B,YAAY,SAAS;AAElB,aAAA;AAAA,QACL;AAAA,QACA;AAAA,UACE;AAAA,UACA,UAAU,CAAC,aAAkB;AACvB,gBAAA,CAAC,MAAM,cAAc;AACvB,6BAAe,CAAC,eAAe;AAAA,gBAC7B,GAAG;AAAA,gBACH,CAAC,SAAS,GAAG;AAAA,cAAA,EACb;AAAA,YAAA;AAAA,UACJ;AAAA,QACF;AAAA,MAEJ;AAAA,IACD,CAAA;AAAA,EACH;AAEO,SAAA;AACT;"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../../src/TreeView/internals/hooks/utils.ts"],"sourcesContent":["import {\n TreeViewAnyPluginSignature,\n TreeViewInstance,\n TreeViewUsedInstance,\n} from \"../types\";\nimport type { UseTreeViewExpansionSignature } from \"./plugins/useTreeViewExpansion\";\nimport type { UseTreeViewNodesSignature } from \"./plugins/useTreeViewNodes\";\n\nexport const getPreviousNode = (\n instance: TreeViewInstance<\n [UseTreeViewNodesSignature, UseTreeViewExpansionSignature]\n >,\n nodeId: string,\n) => {\n const node = instance.getNode(nodeId);\n const siblings = instance.getNavigableChildrenIds(node.parentId);\n const nodeIndex = siblings.indexOf(nodeId);\n\n if (nodeIndex === 0) {\n return node.parentId;\n }\n\n let currentNode: string = siblings[nodeIndex - 1];\n while (\n instance.isNodeExpanded(currentNode) &&\n instance.getNavigableChildrenIds(currentNode).length > 0\n ) {\n currentNode = instance.getNavigableChildrenIds(currentNode).pop()!;\n }\n\n return currentNode;\n};\n\nexport const getNextNode = (\n instance: TreeViewInstance<\n [UseTreeViewExpansionSignature, UseTreeViewNodesSignature]\n >,\n nodeId: string,\n) => {\n // If expanded get first child\n if (\n instance.isNodeExpanded(nodeId) &&\n instance.getNavigableChildrenIds(nodeId).length > 0\n ) {\n return instance.getNavigableChildrenIds(nodeId)[0];\n }\n\n let node = instance.getNode(nodeId);\n while (node != null) {\n // Try to get next sibling\n const siblings = instance.getNavigableChildrenIds(node.parentId);\n const nextSibling = siblings[siblings.indexOf(node.id) + 1];\n\n if (nextSibling) {\n return nextSibling;\n }\n\n // If the sibling does not exist, go up a level to the parent and try again.\n node = instance.getNode(node.parentId!);\n }\n\n return null;\n};\n\nexport const getLastNode = (\n instance: TreeViewInstance<\n [UseTreeViewExpansionSignature, UseTreeViewNodesSignature]\n >,\n) => {\n let lastNode = instance.getNavigableChildrenIds(null).pop()!;\n\n while (instance.isNodeExpanded(lastNode)) {\n lastNode = instance.getNavigableChildrenIds(lastNode).pop()!;\n }\n return lastNode;\n};\n\nexport const getFirstNode = (\n instance: TreeViewInstance<[UseTreeViewNodesSignature]>,\n) => instance.getNavigableChildrenIds(null)[0];\n\nexport const populateInstance = <T extends TreeViewAnyPluginSignature>(\n instance: TreeViewUsedInstance<T>,\n methods: T[\"instance\"],\n) => {\n Object.assign(instance, methods);\n};\n"],"names":[],"mappings":"AAQa,MAAA,kBAAkB,CAC7B,UAGA,WACG;AACG,QAAA,OAAO,SAAS,QAAQ,MAAM;AACpC,QAAM,WAAW,SAAS,wBAAwB,KAAK,QAAQ;AACzD,QAAA,YAAY,SAAS,QAAQ,MAAM;AAEzC,MAAI,cAAc,GAAG;AACnB,WAAO,KAAK;AAAA,EACd;AAEI,MAAA,cAAsB,SAAS,YAAY,CAAC;AAE9C,SAAA,SAAS,eAAe,WAAW,KACnC,SAAS,wBAAwB,WAAW,EAAE,SAAS,GACvD;AACA,kBAAc,SAAS,wBAAwB,WAAW,EAAE,IAAI;AAAA,EAClE;AAEO,SAAA;AACT;AAEa,MAAA,cAAc,CACzB,UAGA,WACG;AAGD,MAAA,SAAS,eAAe,MAAM,KAC9B,SAAS,wBAAwB,MAAM,EAAE,SAAS,GAClD;AACA,WAAO,SAAS,wBAAwB,MAAM,EAAE,CAAC;AAAA,EACnD;AAEI,MAAA,OAAO,SAAS,QAAQ,MAAM;AAClC,SAAO,QAAQ,MAAM;AAEnB,UAAM,WAAW,SAAS,wBAAwB,KAAK,QAAQ;AAC/D,UAAM,cAAc,SAAS,SAAS,QAAQ,KAAK,EAAE,IAAI,CAAC;AAE1D,QAAI,aAAa;AACR,aAAA;AAAA,IACT;AAGO,WAAA,SAAS,QAAQ,KAAK,QAAS;AAAA,EACxC;AAEO,SAAA;AACT;AAEa,MAAA,cAAc,CACzB,aAGG;AACH,MAAI,WAAW,SAAS,wBAAwB,IAAI,EAAE,IAAI;AAEnD,SAAA,SAAS,eAAe,QAAQ,GAAG;AACxC,eAAW,SAAS,wBAAwB,QAAQ,EAAE,IAAI;AAAA,EAC5D;AACO,SAAA;AACT;AAEO,MAAM,eAAe,CAC1B,aACG,SAAS,wBAAwB,IAAI,EAAE,CAAC;AAEhC,MAAA,mBAAmB,CAC9B,UACA,YACG;AACI,SAAA,OAAO,UAAU,OAAO;AACjC;"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../../src/TreeView/internals/hooks/utils.ts"],"sourcesContent":["import {\n TreeViewAnyPluginSignature,\n TreeViewInstance,\n TreeViewUsedInstance,\n} from \"../types\";\nimport type { UseTreeViewExpansionSignature } from \"./plugins/useTreeViewExpansion\";\nimport type { UseTreeViewNodesSignature } from \"./plugins/useTreeViewNodes\";\n\nexport const getPreviousNode = (\n instance: TreeViewInstance<\n [UseTreeViewNodesSignature, UseTreeViewExpansionSignature]\n >,\n nodeId: string,\n) => {\n const node = instance.getNode(nodeId);\n const siblings = instance.getNavigableChildrenIds(node.parentId);\n const nodeIndex = siblings.indexOf(nodeId);\n\n if (nodeIndex === 0) {\n return node.parentId;\n }\n\n let currentNode: string = siblings[nodeIndex - 1];\n while (\n instance.isNodeExpanded(currentNode) &&\n instance.getNavigableChildrenIds(currentNode).length > 0\n ) {\n currentNode = instance.getNavigableChildrenIds(currentNode).pop()!;\n }\n\n return currentNode;\n};\n\nexport const getNextNode = (\n instance: TreeViewInstance<\n [UseTreeViewExpansionSignature, UseTreeViewNodesSignature]\n >,\n nodeId: string,\n) => {\n // If expanded get first child\n if (\n instance.isNodeExpanded(nodeId) &&\n instance.getNavigableChildrenIds(nodeId).length > 0\n ) {\n return instance.getNavigableChildrenIds(nodeId)[0];\n }\n\n let node = instance.getNode(nodeId);\n while (node != null) {\n // Try to get next sibling\n const siblings = instance.getNavigableChildrenIds(node.parentId);\n const nextSibling = siblings[siblings.indexOf(node.id) + 1];\n\n if (nextSibling) {\n return nextSibling;\n }\n\n // If the sibling does not exist, go up a level to the parent and try again.\n node = instance.getNode(node.parentId!);\n }\n\n return null;\n};\n\nexport const getLastNode = (\n instance: TreeViewInstance<\n [UseTreeViewExpansionSignature, UseTreeViewNodesSignature]\n >,\n) => {\n let lastNode = instance.getNavigableChildrenIds(null).pop()!;\n\n while (instance.isNodeExpanded(lastNode)) {\n lastNode = instance.getNavigableChildrenIds(lastNode).pop()!;\n }\n return lastNode;\n};\n\nexport const getFirstNode = (\n instance: TreeViewInstance<[UseTreeViewNodesSignature]>,\n) => instance.getNavigableChildrenIds(null)[0];\n\nexport const populateInstance = <T extends TreeViewAnyPluginSignature>(\n instance: TreeViewUsedInstance<T>,\n methods: T[\"instance\"],\n) => {\n Object.assign(instance, methods);\n};\n"],"names":[],"mappings":"AAQa,MAAA,kBAAkB,CAC7B,UAGA,WACG;AACG,QAAA,OAAO,SAAS,QAAQ,MAAM;AACpC,QAAM,WAAW,SAAS,wBAAwB,KAAK,QAAQ;AACzD,QAAA,YAAY,SAAS,QAAQ,MAAM;AAEzC,MAAI,cAAc,GAAG;AACnB,WAAO,KAAK;AAAA,EAAA;AAGV,MAAA,cAAsB,SAAS,YAAY,CAAC;AAE9C,SAAA,SAAS,eAAe,WAAW,KACnC,SAAS,wBAAwB,WAAW,EAAE,SAAS,GACvD;AACA,kBAAc,SAAS,wBAAwB,WAAW,EAAE,IAAI;AAAA,EAAA;AAG3D,SAAA;AACT;AAEa,MAAA,cAAc,CACzB,UAGA,WACG;AAGD,MAAA,SAAS,eAAe,MAAM,KAC9B,SAAS,wBAAwB,MAAM,EAAE,SAAS,GAClD;AACA,WAAO,SAAS,wBAAwB,MAAM,EAAE,CAAC;AAAA,EAAA;AAG/C,MAAA,OAAO,SAAS,QAAQ,MAAM;AAClC,SAAO,QAAQ,MAAM;AAEnB,UAAM,WAAW,SAAS,wBAAwB,KAAK,QAAQ;AAC/D,UAAM,cAAc,SAAS,SAAS,QAAQ,KAAK,EAAE,IAAI,CAAC;AAE1D,QAAI,aAAa;AACR,aAAA;AAAA,IAAA;AAIF,WAAA,SAAS,QAAQ,KAAK,QAAS;AAAA,EAAA;AAGjC,SAAA;AACT;AAEa,MAAA,cAAc,CACzB,aAGG;AACH,MAAI,WAAW,SAAS,wBAAwB,IAAI,EAAE,IAAI;AAEnD,SAAA,SAAS,eAAe,QAAQ,GAAG;AACxC,eAAW,SAAS,wBAAwB,QAAQ,EAAE,IAAI;AAAA,EAAA;AAErD,SAAA;AACT;AAEO,MAAM,eAAe,CAC1B,aACG,SAAS,wBAAwB,IAAI,EAAE,CAAC;AAEhC,MAAA,mBAAmB,CAC9B,UACA,YACG;AACI,SAAA,OAAO,UAAU,OAAO;AACjC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"EventManager.js","sources":["../../../../../src/TreeView/internals/utils/EventManager.ts"],"sourcesContent":["export type EventListener = (...args: any[]) => void;\n\nexport interface EventListenerOptions {\n isFirst?: boolean;\n}\n\ninterface EventListenerCollection {\n /**\n * List of listeners to run before the others\n * They are run in the opposite order of the registration order\n */\n highPriority: Map<EventListener, true>;\n /**\n * List of events to run after the high priority listeners\n * They are run in the registration order\n */\n regular: Map<EventListener, true>;\n}\n\n// Used https://gist.github.com/mudge/5830382 as a starting point.\n// See https://github.com/browserify/events/blob/master/events.js for\n// the Node.js (https://nodejs.org/api/events.html) polyfill used by webpack.\nexport class EventManager {\n maxListeners = 20;\n\n warnOnce = false;\n\n events: { [eventName: string]: EventListenerCollection } = {};\n\n on(\n eventName: string,\n listener: EventListener,\n options: EventListenerOptions = {},\n ): void {\n let collection = this.events[eventName];\n\n if (!collection) {\n collection = {\n highPriority: new Map(),\n regular: new Map(),\n };\n this.events[eventName] = collection;\n }\n\n if (options.isFirst) {\n collection.highPriority.set(listener, true);\n } else {\n collection.regular.set(listener, true);\n }\n }\n\n removeListener(eventName: string, listener: EventListener): void {\n if (this.events[eventName]) {\n this.events[eventName].regular.delete(listener);\n this.events[eventName].highPriority.delete(listener);\n }\n }\n\n removeAllListeners(): void {\n this.events = {};\n }\n\n emit(eventName: string, ...args: any[]): void {\n const collection = this.events[eventName];\n if (!collection) {\n return;\n }\n\n const highPriorityListeners = Array.from(collection.highPriority.keys());\n const regularListeners = Array.from(collection.regular.keys());\n\n for (let i = highPriorityListeners.length - 1; i >= 0; i -= 1) {\n const listener = highPriorityListeners[i];\n if (collection.highPriority.has(listener)) {\n listener.apply(this, args);\n }\n }\n\n for (let i = 0; i < regularListeners.length; i += 1) {\n const listener = regularListeners[i];\n if (collection.regular.has(listener)) {\n listener.apply(this, args);\n }\n }\n }\n\n once(eventName: string, listener: EventListener): void {\n // eslint-disable-next-line consistent-this\n const that = this;\n this.on(eventName, function oneTimeListener(...args) {\n that.removeListener(eventName, oneTimeListener);\n listener.apply(that, args);\n });\n }\n}\n"],"names":[],"mappings":"AAsBO,MAAM,aAAa;AAAA,EACxB,eAAe;AAAA,EAEf,WAAW;AAAA,EAEX,SAA2D,CAAA;AAAA,EAE3D,GACE,WACA,UACA,UAAgC,CAAA,GAC1B;AACF,QAAA,aAAa,KAAK,OAAO,SAAS;AAEtC,QAAI,CAAC,YAAY;AACF,mBAAA;AAAA,QACX,kCAAkB,IAAI;AAAA,QACtB,6BAAa,IAAI;AAAA,MAAA;AAEd,WAAA,OAAO,SAAS,IAAI;AAAA,IAC3B;AAEA,QAAI,QAAQ,SAAS;AACR,iBAAA,aAAa,IAAI,UAAU,IAAI;AAAA,IAAA,OACrC;AACM,iBAAA,QAAQ,IAAI,UAAU,IAAI;AAAA,IACvC;AAAA,EACF;AAAA,EAEA,eAAe,WAAmB,UAA+B;AAC3D,QAAA,KAAK,OAAO,SAAS,GAAG;AAC1B,WAAK,OAAO,SAAS,EAAE,QAAQ,OAAO,QAAQ;AAC9C,WAAK,OAAO,SAAS,EAAE,aAAa,OAAO,QAAQ;AAAA,IACrD;AAAA,EACF;AAAA,EAEA,qBAA2B;AACzB,SAAK,SAAS;EAChB;AAAA,EAEA,KAAK,cAAsB,MAAmB;AACtC,UAAA,aAAa,KAAK,OAAO,SAAS;AACxC,QAAI,CAAC,YAAY;AACf;AAAA,IACF;AAEA,UAAM,wBAAwB,MAAM,KAAK,WAAW,aAAa,MAAM;AACvE,UAAM,mBAAmB,MAAM,KAAK,WAAW,QAAQ,MAAM;AAE7D,aAAS,IAAI,sBAAsB,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG;AACvD,YAAA,WAAW,sBAAsB,CAAC;AACxC,UAAI,WAAW,aAAa,IAAI,QAAQ,GAAG;AAChC,iBAAA,MAAM,MAAM,IAAI;AAAA,MAC3B;AAAA,IACF;AAEA,aAAS,IAAI,GAAG,IAAI,iBAAiB,QAAQ,KAAK,GAAG;AAC7C,YAAA,WAAW,iBAAiB,CAAC;AACnC,UAAI,WAAW,QAAQ,IAAI,QAAQ,GAAG;AAC3B,iBAAA,MAAM,MAAM,IAAI;AAAA,MAC3B;AAAA,IACF;AAAA,EACF;AAAA,EAEA,KAAK,WAAmB,UAA+B;AAErD,UAAM,OAAO;AACb,SAAK,GAAG,WAAW,SAAS,mBAAmB,MAAM;AAC9C,WAAA,eAAe,WAAW,eAAe;AACrC,eAAA,MAAM,MAAM,IAAI;AAAA,IAAA,CAC1B;AAAA,EACH;AACF;"}
1
+ {"version":3,"file":"EventManager.js","sources":["../../../../../src/TreeView/internals/utils/EventManager.ts"],"sourcesContent":["export type EventListener = (...args: any[]) => void;\n\nexport interface EventListenerOptions {\n isFirst?: boolean;\n}\n\ninterface EventListenerCollection {\n /**\n * List of listeners to run before the others\n * They are run in the opposite order of the registration order\n */\n highPriority: Map<EventListener, true>;\n /**\n * List of events to run after the high priority listeners\n * They are run in the registration order\n */\n regular: Map<EventListener, true>;\n}\n\n// Used https://gist.github.com/mudge/5830382 as a starting point.\n// See https://github.com/browserify/events/blob/master/events.js for\n// the Node.js (https://nodejs.org/api/events.html) polyfill used by webpack.\nexport class EventManager {\n maxListeners = 20;\n\n warnOnce = false;\n\n events: { [eventName: string]: EventListenerCollection } = {};\n\n on(\n eventName: string,\n listener: EventListener,\n options: EventListenerOptions = {},\n ): void {\n let collection = this.events[eventName];\n\n if (!collection) {\n collection = {\n highPriority: new Map(),\n regular: new Map(),\n };\n this.events[eventName] = collection;\n }\n\n if (options.isFirst) {\n collection.highPriority.set(listener, true);\n } else {\n collection.regular.set(listener, true);\n }\n }\n\n removeListener(eventName: string, listener: EventListener): void {\n if (this.events[eventName]) {\n this.events[eventName].regular.delete(listener);\n this.events[eventName].highPriority.delete(listener);\n }\n }\n\n removeAllListeners(): void {\n this.events = {};\n }\n\n emit(eventName: string, ...args: any[]): void {\n const collection = this.events[eventName];\n if (!collection) {\n return;\n }\n\n const highPriorityListeners = Array.from(collection.highPriority.keys());\n const regularListeners = Array.from(collection.regular.keys());\n\n for (let i = highPriorityListeners.length - 1; i >= 0; i -= 1) {\n const listener = highPriorityListeners[i];\n if (collection.highPriority.has(listener)) {\n listener.apply(this, args);\n }\n }\n\n for (let i = 0; i < regularListeners.length; i += 1) {\n const listener = regularListeners[i];\n if (collection.regular.has(listener)) {\n listener.apply(this, args);\n }\n }\n }\n\n once(eventName: string, listener: EventListener): void {\n // eslint-disable-next-line consistent-this\n const that = this;\n this.on(eventName, function oneTimeListener(...args) {\n that.removeListener(eventName, oneTimeListener);\n listener.apply(that, args);\n });\n }\n}\n"],"names":[],"mappings":"AAsBO,MAAM,aAAa;AAAA,EACxB,eAAe;AAAA,EAEf,WAAW;AAAA,EAEX,SAA2D,CAAC;AAAA,EAE5D,GACE,WACA,UACA,UAAgC,CAAA,GAC1B;AACF,QAAA,aAAa,KAAK,OAAO,SAAS;AAEtC,QAAI,CAAC,YAAY;AACF,mBAAA;AAAA,QACX,kCAAkB,IAAI;AAAA,QACtB,6BAAa,IAAI;AAAA,MACnB;AACK,WAAA,OAAO,SAAS,IAAI;AAAA,IAAA;AAG3B,QAAI,QAAQ,SAAS;AACR,iBAAA,aAAa,IAAI,UAAU,IAAI;AAAA,IAAA,OACrC;AACM,iBAAA,QAAQ,IAAI,UAAU,IAAI;AAAA,IAAA;AAAA,EACvC;AAAA,EAGF,eAAe,WAAmB,UAA+B;AAC3D,QAAA,KAAK,OAAO,SAAS,GAAG;AAC1B,WAAK,OAAO,SAAS,EAAE,QAAQ,OAAO,QAAQ;AAC9C,WAAK,OAAO,SAAS,EAAE,aAAa,OAAO,QAAQ;AAAA,IAAA;AAAA,EACrD;AAAA,EAGF,qBAA2B;AACzB,SAAK,SAAS,CAAC;AAAA,EAAA;AAAA,EAGjB,KAAK,cAAsB,MAAmB;AACtC,UAAA,aAAa,KAAK,OAAO,SAAS;AACxC,QAAI,CAAC,YAAY;AACf;AAAA,IAAA;AAGF,UAAM,wBAAwB,MAAM,KAAK,WAAW,aAAa,MAAM;AACvE,UAAM,mBAAmB,MAAM,KAAK,WAAW,QAAQ,MAAM;AAE7D,aAAS,IAAI,sBAAsB,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG;AACvD,YAAA,WAAW,sBAAsB,CAAC;AACxC,UAAI,WAAW,aAAa,IAAI,QAAQ,GAAG;AAChC,iBAAA,MAAM,MAAM,IAAI;AAAA,MAAA;AAAA,IAC3B;AAGF,aAAS,IAAI,GAAG,IAAI,iBAAiB,QAAQ,KAAK,GAAG;AAC7C,YAAA,WAAW,iBAAiB,CAAC;AACnC,UAAI,WAAW,QAAQ,IAAI,QAAQ,GAAG;AAC3B,iBAAA,MAAM,MAAM,IAAI;AAAA,MAAA;AAAA,IAC3B;AAAA,EACF;AAAA,EAGF,KAAK,WAAmB,UAA+B;AAErD,UAAM,OAAO;AACb,SAAK,GAAG,WAAW,SAAS,mBAAmB,MAAM;AAC9C,WAAA,eAAe,WAAW,eAAe;AACrC,eAAA,MAAM,MAAM,IAAI;AAAA,IAAA,CAC1B;AAAA,EAAA;AAEL;"}
@@ -1 +1 @@
1
- {"version":3,"file":"FinalizationRegistryBasedCleanupTracking.js","sources":["../../../../../src/TreeView/internals/utils/FinalizationRegistryBasedCleanupTracking.ts"],"sourcesContent":["import {\n CleanupTracking,\n UnregisterToken,\n UnsubscribeFn,\n} from \"./CleanupTracking\";\n\nexport class FinalizationRegistryBasedCleanupTracking\n implements CleanupTracking\n{\n registry = new FinalizationRegistry<UnsubscribeFn>((unsubscribe) => {\n if (typeof unsubscribe === \"function\") {\n unsubscribe();\n }\n });\n\n register(\n object: any,\n unsubscribe: UnsubscribeFn,\n unregisterToken: UnregisterToken,\n ): void {\n this.registry.register(object, unsubscribe, unregisterToken);\n }\n\n unregister(unregisterToken: UnregisterToken): void {\n this.registry.unregister(unregisterToken);\n }\n\n // eslint-disable-next-line class-methods-use-this\n reset() {}\n}\n"],"names":[],"mappings":"AAMO,MAAM,yCAEb;AAAA,EACE,WAAW,IAAI,qBAAoC,CAAC,gBAAgB;AAC9D,QAAA,OAAO,gBAAgB,YAAY;AACzB;IACd;AAAA,EAAA,CACD;AAAA,EAED,SACE,QACA,aACA,iBACM;AACN,SAAK,SAAS,SAAS,QAAQ,aAAa,eAAe;AAAA,EAC7D;AAAA,EAEA,WAAW,iBAAwC;AAC5C,SAAA,SAAS,WAAW,eAAe;AAAA,EAC1C;AAAA;AAAA,EAGA,QAAQ;AAAA,EAAC;AACX;"}
1
+ {"version":3,"file":"FinalizationRegistryBasedCleanupTracking.js","sources":["../../../../../src/TreeView/internals/utils/FinalizationRegistryBasedCleanupTracking.ts"],"sourcesContent":["import {\n CleanupTracking,\n UnregisterToken,\n UnsubscribeFn,\n} from \"./CleanupTracking\";\n\nexport class FinalizationRegistryBasedCleanupTracking\n implements CleanupTracking\n{\n registry = new FinalizationRegistry<UnsubscribeFn>((unsubscribe) => {\n if (typeof unsubscribe === \"function\") {\n unsubscribe();\n }\n });\n\n register(\n object: any,\n unsubscribe: UnsubscribeFn,\n unregisterToken: UnregisterToken,\n ): void {\n this.registry.register(object, unsubscribe, unregisterToken);\n }\n\n unregister(unregisterToken: UnregisterToken): void {\n this.registry.unregister(unregisterToken);\n }\n\n // eslint-disable-next-line class-methods-use-this\n reset() {}\n}\n"],"names":[],"mappings":"AAMO,MAAM,yCAEb;AAAA,EACE,WAAW,IAAI,qBAAoC,CAAC,gBAAgB;AAC9D,QAAA,OAAO,gBAAgB,YAAY;AACzB,kBAAA;AAAA,IAAA;AAAA,EACd,CACD;AAAA,EAED,SACE,QACA,aACA,iBACM;AACN,SAAK,SAAS,SAAS,QAAQ,aAAa,eAAe;AAAA,EAAA;AAAA,EAG7D,WAAW,iBAAwC;AAC5C,SAAA,SAAS,WAAW,eAAe;AAAA,EAAA;AAAA;AAAA,EAI1C,QAAQ;AAAA,EAAA;AACV;"}
@@ -1 +1 @@
1
- {"version":3,"file":"TimerBasedCleanupTracking.js","sources":["../../../../../src/TreeView/internals/utils/TimerBasedCleanupTracking.ts"],"sourcesContent":["import {\n CleanupTracking,\n UnregisterToken,\n UnsubscribeFn,\n} from \"./CleanupTracking\";\n\n// If no effect ran after this amount of time, we assume that the render was not committed by React\nconst CLEANUP_TIMER_LOOP_MILLIS = 1000;\n\nexport class TimerBasedCleanupTracking implements CleanupTracking {\n timeouts? = new Map<number, NodeJS.Timeout>();\n\n cleanupTimeout = CLEANUP_TIMER_LOOP_MILLIS;\n\n constructor(timeout = CLEANUP_TIMER_LOOP_MILLIS) {\n this.cleanupTimeout = timeout;\n }\n\n register(\n object: any,\n unsubscribe: UnsubscribeFn,\n unregisterToken: UnregisterToken,\n ): void {\n if (!this.timeouts) {\n this.timeouts = new Map<number, NodeJS.Timeout>();\n }\n\n const timeout = setTimeout(() => {\n if (typeof unsubscribe === \"function\") {\n unsubscribe();\n }\n this.timeouts!.delete(unregisterToken.cleanupToken);\n }, this.cleanupTimeout);\n\n this.timeouts!.set(unregisterToken!.cleanupToken, timeout);\n }\n\n unregister(unregisterToken: UnregisterToken): void {\n const timeout = this.timeouts!.get(unregisterToken.cleanupToken);\n if (timeout) {\n this.timeouts!.delete(unregisterToken.cleanupToken);\n clearTimeout(timeout);\n }\n }\n\n reset() {\n if (this.timeouts) {\n this.timeouts.forEach((value, key) => {\n this.unregister({ cleanupToken: key });\n });\n this.timeouts = undefined;\n }\n }\n}\n"],"names":[],"mappings":"AAOA,MAAM,4BAA4B;AAE3B,MAAM,0BAAqD;AAAA,EAChE,+BAAgB;EAEhB,iBAAiB;AAAA,EAEjB,YAAY,UAAU,2BAA2B;AAC/C,SAAK,iBAAiB;AAAA,EACxB;AAAA,EAEA,SACE,QACA,aACA,iBACM;AACF,QAAA,CAAC,KAAK,UAAU;AACb,WAAA,+BAAe;IACtB;AAEM,UAAA,UAAU,WAAW,MAAM;AAC3B,UAAA,OAAO,gBAAgB,YAAY;AACzB;MACd;AACK,WAAA,SAAU,OAAO,gBAAgB,YAAY;AAAA,IAAA,GACjD,KAAK,cAAc;AAEtB,SAAK,SAAU,IAAI,gBAAiB,cAAc,OAAO;AAAA,EAC3D;AAAA,EAEA,WAAW,iBAAwC;AACjD,UAAM,UAAU,KAAK,SAAU,IAAI,gBAAgB,YAAY;AAC/D,QAAI,SAAS;AACN,WAAA,SAAU,OAAO,gBAAgB,YAAY;AAClD,mBAAa,OAAO;AAAA,IACtB;AAAA,EACF;AAAA,EAEA,QAAQ;AACN,QAAI,KAAK,UAAU;AACjB,WAAK,SAAS,QAAQ,CAAC,OAAO,QAAQ;AACpC,aAAK,WAAW,EAAE,cAAc,IAAK,CAAA;AAAA,MAAA,CACtC;AACD,WAAK,WAAW;AAAA,IAClB;AAAA,EACF;AACF;"}
1
+ {"version":3,"file":"TimerBasedCleanupTracking.js","sources":["../../../../../src/TreeView/internals/utils/TimerBasedCleanupTracking.ts"],"sourcesContent":["import {\n CleanupTracking,\n UnregisterToken,\n UnsubscribeFn,\n} from \"./CleanupTracking\";\n\n// If no effect ran after this amount of time, we assume that the render was not committed by React\nconst CLEANUP_TIMER_LOOP_MILLIS = 1000;\n\nexport class TimerBasedCleanupTracking implements CleanupTracking {\n timeouts? = new Map<number, NodeJS.Timeout>();\n\n cleanupTimeout = CLEANUP_TIMER_LOOP_MILLIS;\n\n constructor(timeout = CLEANUP_TIMER_LOOP_MILLIS) {\n this.cleanupTimeout = timeout;\n }\n\n register(\n object: any,\n unsubscribe: UnsubscribeFn,\n unregisterToken: UnregisterToken,\n ): void {\n if (!this.timeouts) {\n this.timeouts = new Map<number, NodeJS.Timeout>();\n }\n\n const timeout = setTimeout(() => {\n if (typeof unsubscribe === \"function\") {\n unsubscribe();\n }\n this.timeouts!.delete(unregisterToken.cleanupToken);\n }, this.cleanupTimeout);\n\n this.timeouts!.set(unregisterToken!.cleanupToken, timeout);\n }\n\n unregister(unregisterToken: UnregisterToken): void {\n const timeout = this.timeouts!.get(unregisterToken.cleanupToken);\n if (timeout) {\n this.timeouts!.delete(unregisterToken.cleanupToken);\n clearTimeout(timeout);\n }\n }\n\n reset() {\n if (this.timeouts) {\n this.timeouts.forEach((value, key) => {\n this.unregister({ cleanupToken: key });\n });\n this.timeouts = undefined;\n }\n }\n}\n"],"names":[],"mappings":"AAOA,MAAM,4BAA4B;AAE3B,MAAM,0BAAqD;AAAA,EAChE,+BAAgB,IAA4B;AAAA,EAE5C,iBAAiB;AAAA,EAEjB,YAAY,UAAU,2BAA2B;AAC/C,SAAK,iBAAiB;AAAA,EAAA;AAAA,EAGxB,SACE,QACA,aACA,iBACM;AACF,QAAA,CAAC,KAAK,UAAU;AACb,WAAA,+BAAe,IAA4B;AAAA,IAAA;AAG5C,UAAA,UAAU,WAAW,MAAM;AAC3B,UAAA,OAAO,gBAAgB,YAAY;AACzB,oBAAA;AAAA,MAAA;AAET,WAAA,SAAU,OAAO,gBAAgB,YAAY;AAAA,IAAA,GACjD,KAAK,cAAc;AAEtB,SAAK,SAAU,IAAI,gBAAiB,cAAc,OAAO;AAAA,EAAA;AAAA,EAG3D,WAAW,iBAAwC;AACjD,UAAM,UAAU,KAAK,SAAU,IAAI,gBAAgB,YAAY;AAC/D,QAAI,SAAS;AACN,WAAA,SAAU,OAAO,gBAAgB,YAAY;AAClD,mBAAa,OAAO;AAAA,IAAA;AAAA,EACtB;AAAA,EAGF,QAAQ;AACN,QAAI,KAAK,UAAU;AACjB,WAAK,SAAS,QAAQ,CAAC,OAAO,QAAQ;AACpC,aAAK,WAAW,EAAE,cAAc,IAAA,CAAK;AAAA,MAAA,CACtC;AACD,WAAK,WAAW;AAAA,IAAA;AAAA,EAClB;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Typography.js","sources":["../../../src/Typography/Typography.tsx"],"sourcesContent":["import {\n useDefaultProps,\n useTheme,\n type ExtractNames,\n} from \"@hitachivantara/uikit-react-utils\";\n\nimport {\n fixedForwardRef,\n PolymorphicComponentRef,\n PolymorphicRef,\n} from \"../types/generic\";\nimport { staticClasses, useClasses } from \"./Typography.styles\";\nimport {\n HvTypographyLegacyVariants,\n HvTypographyVariants,\n mapVariant,\n} from \"./utils\";\n\nexport { staticClasses as typographyClasses };\n\nexport type HvTypographyClasses = ExtractNames<typeof useClasses>;\n\nconst HvTypographyMap = {\n display: \"h1\",\n title1: \"h1\",\n title2: \"h2\",\n title3: \"h3\",\n title4: \"h4\",\n body: \"p\",\n label: \"span\",\n captionLabel: \"p\",\n caption1: \"p\",\n caption2: \"p\",\n // LEGACY\n \"5xlTitle\": \"h1\",\n \"4xlTitle\": \"h1\",\n \"3xlTitle\": \"h1\",\n xxlTitle: \"h1\",\n xlTitle: \"h1\",\n lTitle: \"h2\",\n mTitle: \"h3\",\n sTitle: \"h4\",\n xsTitle: \"h5\",\n xxsTitle: \"h6\",\n sectionTitle: \"p\",\n highlightText: \"p\",\n normalText: \"p\",\n placeholderText: \"p\",\n link: \"p\",\n disabledText: \"p\",\n selectedNavText: \"p\",\n vizText: \"p\",\n vizTextDisabled: \"p\",\n xsInlineLink: \"p\",\n} satisfies Record<\n HvTypographyVariants | HvTypographyLegacyVariants,\n React.ElementType\n>;\n\nexport type HvTypographyProps<C extends React.ElementType = \"p\"> =\n PolymorphicComponentRef<\n C,\n {\n /** Use the variant prop to change the visual style of the Typography. */\n variant?: HvTypographyVariants | HvTypographyLegacyVariants;\n /** If `true` the typography will display the look of a link. */\n link?: boolean;\n /** If `true` the typography will display the look of a disabled state. */\n disabled?: boolean;\n /**\n * If `true`, the typography will render a \"p\" element\n * @deprecated use `component=\"p\"` instead\n * */\n paragraph?: boolean;\n /**\n * If `true`, the text will not wrap, but instead will truncate with a text overflow ellipsis.\n *\n * Note that text overflow can only happen with block or inline-block level elements\n * (the element needs to have a width in order to overflow).\n */\n noWrap?: boolean;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvTypographyClasses;\n }\n >;\n\n/**\n * Typography component is used to render text and paragraphs within an interface.\n */\nexport const HvTypography = fixedForwardRef(function HvTypography<\n C extends React.ElementType = \"p\",\n>(props: HvTypographyProps<C>, ref: PolymorphicRef<C>) {\n const {\n className,\n component: ComponentProp,\n classes: classesProp,\n variant: variantProp = \"body\",\n link = false,\n noWrap = false,\n paragraph = false,\n disabled = false,\n ...others\n } = useDefaultProps(\"HvTypography\", props);\n const { classes, css, cx } = useClasses(classesProp);\n const { activeTheme } = useTheme();\n\n const variant = mapVariant(variantProp, activeTheme?.base);\n\n const Component =\n ComponentProp || (paragraph && \"p\") || HvTypographyMap[variant] || \"span\";\n\n return (\n <Component\n ref={ref}\n className={cx(\n css({ ...activeTheme?.typography[variant] }),\n classes.root,\n classes[variant],\n {\n [classes.isLink]: link,\n [classes.noWrap]: noWrap,\n [classes.disabled]: disabled,\n },\n className,\n )}\n disabled={disabled}\n {...others}\n />\n );\n});\n"],"names":["HvTypography"],"mappings":";;;;;;AAsBA,MAAM,kBAAkB;AAAA,EACtB,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,OAAO;AAAA,EACP,cAAc;AAAA,EACd,UAAU;AAAA,EACV,UAAU;AAAA;AAAA,EAEV,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,UAAU;AAAA,EACV,cAAc;AAAA,EACd,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,iBAAiB;AAAA,EACjB,MAAM;AAAA,EACN,cAAc;AAAA,EACd,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,iBAAiB;AAAA,EACjB,cAAc;AAChB;AAmCO,MAAM,eAAe,gBAAgB,SAASA,cAEnD,OAA6B,KAAwB;AAC/C,QAAA;AAAA,IACJ;AAAA,IACA,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS,cAAc;AAAA,IACvB,OAAO;AAAA,IACP,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,GAAG;AAAA,EAAA,IACD,gBAAgB,gBAAgB,KAAK;AACzC,QAAM,EAAE,SAAS,KAAK,GAAG,IAAI,WAAW,WAAW;AAC7C,QAAA,EAAE,gBAAgB;AAExB,QAAM,UAAU,WAAW,aAAa,aAAa,IAAI;AAEzD,QAAM,YACJ,iBAAkB,aAAa,OAAQ,gBAAgB,OAAO,KAAK;AAGnE,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT,IAAI,EAAE,GAAG,aAAa,WAAW,OAAO,GAAG;AAAA,QAC3C,QAAQ;AAAA,QACR,QAAQ,OAAO;AAAA,QACf;AAAA,UACE,CAAC,QAAQ,MAAM,GAAG;AAAA,UAClB,CAAC,QAAQ,MAAM,GAAG;AAAA,UAClB,CAAC,QAAQ,QAAQ,GAAG;AAAA,QACtB;AAAA,QACA;AAAA,MACF;AAAA,MACA;AAAA,MACC,GAAG;AAAA,IAAA;AAAA,EAAA;AAGV,CAAC;"}
1
+ {"version":3,"file":"Typography.js","sources":["../../../src/Typography/Typography.tsx"],"sourcesContent":["import {\n useDefaultProps,\n useTheme,\n type ExtractNames,\n} from \"@hitachivantara/uikit-react-utils\";\n\nimport {\n fixedForwardRef,\n PolymorphicComponentRef,\n PolymorphicRef,\n} from \"../types/generic\";\nimport { staticClasses, useClasses } from \"./Typography.styles\";\nimport {\n HvTypographyLegacyVariants,\n HvTypographyVariants,\n mapVariant,\n} from \"./utils\";\n\nexport { staticClasses as typographyClasses };\n\nexport type HvTypographyClasses = ExtractNames<typeof useClasses>;\n\nconst HvTypographyMap = {\n display: \"h1\",\n title1: \"h1\",\n title2: \"h2\",\n title3: \"h3\",\n title4: \"h4\",\n body: \"p\",\n label: \"span\",\n captionLabel: \"p\",\n caption1: \"p\",\n caption2: \"p\",\n // LEGACY\n \"5xlTitle\": \"h1\",\n \"4xlTitle\": \"h1\",\n \"3xlTitle\": \"h1\",\n xxlTitle: \"h1\",\n xlTitle: \"h1\",\n lTitle: \"h2\",\n mTitle: \"h3\",\n sTitle: \"h4\",\n xsTitle: \"h5\",\n xxsTitle: \"h6\",\n sectionTitle: \"p\",\n highlightText: \"p\",\n normalText: \"p\",\n placeholderText: \"p\",\n link: \"p\",\n disabledText: \"p\",\n selectedNavText: \"p\",\n vizText: \"p\",\n vizTextDisabled: \"p\",\n xsInlineLink: \"p\",\n} satisfies Record<\n HvTypographyVariants | HvTypographyLegacyVariants,\n React.ElementType\n>;\n\nexport type HvTypographyProps<C extends React.ElementType = \"p\"> =\n PolymorphicComponentRef<\n C,\n {\n /** Use the variant prop to change the visual style of the Typography. */\n variant?: HvTypographyVariants | HvTypographyLegacyVariants;\n /** If `true` the typography will display the look of a link. */\n link?: boolean;\n /** If `true` the typography will display the look of a disabled state. */\n disabled?: boolean;\n /**\n * If `true`, the typography will render a \"p\" element\n * @deprecated use `component=\"p\"` instead\n * */\n paragraph?: boolean;\n /**\n * If `true`, the text will not wrap, but instead will truncate with a text overflow ellipsis.\n *\n * Note that text overflow can only happen with block or inline-block level elements\n * (the element needs to have a width in order to overflow).\n */\n noWrap?: boolean;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvTypographyClasses;\n }\n >;\n\n/**\n * Typography component is used to render text and paragraphs within an interface.\n */\nexport const HvTypography = fixedForwardRef(function HvTypography<\n C extends React.ElementType = \"p\",\n>(props: HvTypographyProps<C>, ref: PolymorphicRef<C>) {\n const {\n className,\n component: ComponentProp,\n classes: classesProp,\n variant: variantProp = \"body\",\n link = false,\n noWrap = false,\n paragraph = false,\n disabled = false,\n ...others\n } = useDefaultProps(\"HvTypography\", props);\n const { classes, css, cx } = useClasses(classesProp);\n const { activeTheme } = useTheme();\n\n const variant = mapVariant(variantProp, activeTheme?.base);\n\n const Component =\n ComponentProp || (paragraph && \"p\") || HvTypographyMap[variant] || \"span\";\n\n return (\n <Component\n ref={ref}\n className={cx(\n css({ ...activeTheme?.typography[variant] }),\n classes.root,\n classes[variant],\n {\n [classes.isLink]: link,\n [classes.noWrap]: noWrap,\n [classes.disabled]: disabled,\n },\n className,\n )}\n disabled={disabled}\n {...others}\n />\n );\n});\n"],"names":["HvTypography"],"mappings":";;;;;;AAsBA,MAAM,kBAAkB;AAAA,EACtB,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,OAAO;AAAA,EACP,cAAc;AAAA,EACd,UAAU;AAAA,EACV,UAAU;AAAA;AAAA,EAEV,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,UAAU;AAAA,EACV,cAAc;AAAA,EACd,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,iBAAiB;AAAA,EACjB,MAAM;AAAA,EACN,cAAc;AAAA,EACd,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,iBAAiB;AAAA,EACjB,cAAc;AAChB;AAmCO,MAAM,eAAe,gBAAgB,SAASA,cAEnD,OAA6B,KAAwB;AAC/C,QAAA;AAAA,IACJ;AAAA,IACA,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS,cAAc;AAAA,IACvB,OAAO;AAAA,IACP,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,GAAG;AAAA,EAAA,IACD,gBAAgB,gBAAgB,KAAK;AACzC,QAAM,EAAE,SAAS,KAAK,GAAG,IAAI,WAAW,WAAW;AAC7C,QAAA,EAAE,YAAY,IAAI,SAAS;AAEjC,QAAM,UAAU,WAAW,aAAa,aAAa,IAAI;AAEzD,QAAM,YACJ,iBAAkB,aAAa,OAAQ,gBAAgB,OAAO,KAAK;AAGnE,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT,IAAI,EAAE,GAAG,aAAa,WAAW,OAAO,GAAG;AAAA,QAC3C,QAAQ;AAAA,QACR,QAAQ,OAAO;AAAA,QACf;AAAA,UACE,CAAC,QAAQ,MAAM,GAAG;AAAA,UAClB,CAAC,QAAQ,MAAM,GAAG;AAAA,UAClB,CAAC,QAAQ,QAAQ,GAAG;AAAA,QACtB;AAAA,QACA;AAAA,MACF;AAAA,MACA;AAAA,MACC,GAAG;AAAA,IAAA;AAAA,EACN;AAEJ,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Typography.styles.js","sources":["../../../src/Typography/Typography.styles.ts"],"sourcesContent":["import { createClasses } from \"@hitachivantara/uikit-react-utils\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nexport const { useClasses, staticClasses } = createClasses(\"HvTypography\", {\n root: {\n fontFamily: theme.fontFamily.body,\n },\n disabled: {\n color: theme.colors.secondary_60,\n },\n isLink: {\n cursor: \"pointer\",\n color: theme.colors.primary,\n textDecoration: \"underline\",\n },\n noWrap: {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n },\n // variants\n display: {},\n title1: {},\n title2: {},\n title3: {},\n title4: {},\n body: {},\n label: {},\n captionLabel: {},\n caption1: {},\n caption2: {},\n // legacy variants\n // TODO: remove (legacy or all variants) in v6 in favour of dynamic variants\n \"5xlTitle\": {},\n \"4xlTitle\": {},\n // @ts-ignore non-existent variant\n \"3xlTitle\": {},\n xxlTitle: {},\n xlTitle: {},\n lTitle: {},\n mTitle: {},\n sTitle: {},\n xsTitle: {},\n xxsTitle: {},\n sectionTitle: {\n textTransform: \"uppercase\",\n },\n highlightText: {},\n normalText: {},\n placeholderText: {},\n link: {\n cursor: \"pointer\",\n textDecoration: \"underline\",\n },\n disabledText: {},\n selectedNavText: {},\n vizText: {},\n vizTextDisabled: {},\n xsInlineLink: {},\n});\n"],"names":[],"mappings":";;AAGO,MAAM,EAAE,YAAY,kBAAkB,cAAc,gBAAgB;AAAA,EACzE,MAAM;AAAA,IACJ,YAAY,MAAM,WAAW;AAAA,EAC/B;AAAA,EACA,UAAU;AAAA,IACR,OAAO,MAAM,OAAO;AAAA,EACtB;AAAA,EACA,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO,MAAM,OAAO;AAAA,IACpB,gBAAgB;AAAA,EAClB;AAAA,EACA,QAAQ;AAAA,IACN,UAAU;AAAA,IACV,cAAc;AAAA,IACd,YAAY;AAAA,EACd;AAAA;AAAA,EAEA,SAAS,CAAC;AAAA,EACV,QAAQ,CAAC;AAAA,EACT,QAAQ,CAAC;AAAA,EACT,QAAQ,CAAC;AAAA,EACT,QAAQ,CAAC;AAAA,EACT,MAAM,CAAC;AAAA,EACP,OAAO,CAAC;AAAA,EACR,cAAc,CAAC;AAAA,EACf,UAAU,CAAC;AAAA,EACX,UAAU,CAAC;AAAA;AAAA;AAAA,EAGX,YAAY,CAAC;AAAA,EACb,YAAY,CAAC;AAAA;AAAA,EAEb,YAAY,CAAC;AAAA,EACb,UAAU,CAAC;AAAA,EACX,SAAS,CAAC;AAAA,EACV,QAAQ,CAAC;AAAA,EACT,QAAQ,CAAC;AAAA,EACT,QAAQ,CAAC;AAAA,EACT,SAAS,CAAC;AAAA,EACV,UAAU,CAAC;AAAA,EACX,cAAc;AAAA,IACZ,eAAe;AAAA,EACjB;AAAA,EACA,eAAe,CAAC;AAAA,EAChB,YAAY,CAAC;AAAA,EACb,iBAAiB,CAAC;AAAA,EAClB,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,gBAAgB;AAAA,EAClB;AAAA,EACA,cAAc,CAAC;AAAA,EACf,iBAAiB,CAAC;AAAA,EAClB,SAAS,CAAC;AAAA,EACV,iBAAiB,CAAC;AAAA,EAClB,cAAc,CAAC;AACjB,CAAC;"}
1
+ {"version":3,"file":"Typography.styles.js","sources":["../../../src/Typography/Typography.styles.ts"],"sourcesContent":["import { createClasses } from \"@hitachivantara/uikit-react-utils\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nexport const { useClasses, staticClasses } = createClasses(\"HvTypography\", {\n root: {\n fontFamily: theme.fontFamily.body,\n },\n disabled: {\n color: theme.colors.secondary_60,\n },\n isLink: {\n cursor: \"pointer\",\n color: theme.colors.primary,\n textDecoration: \"underline\",\n },\n noWrap: {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n },\n // variants\n display: {},\n title1: {},\n title2: {},\n title3: {},\n title4: {},\n body: {},\n label: {},\n captionLabel: {},\n caption1: {},\n caption2: {},\n // legacy variants\n // TODO: remove (legacy or all variants) in v6 in favour of dynamic variants\n \"5xlTitle\": {},\n \"4xlTitle\": {},\n // @ts-ignore non-existent variant\n \"3xlTitle\": {},\n xxlTitle: {},\n xlTitle: {},\n lTitle: {},\n mTitle: {},\n sTitle: {},\n xsTitle: {},\n xxsTitle: {},\n sectionTitle: {\n textTransform: \"uppercase\",\n },\n highlightText: {},\n normalText: {},\n placeholderText: {},\n link: {\n cursor: \"pointer\",\n textDecoration: \"underline\",\n },\n disabledText: {},\n selectedNavText: {},\n vizText: {},\n vizTextDisabled: {},\n xsInlineLink: {},\n});\n"],"names":[],"mappings":";;AAGO,MAAM,EAAE,YAAY,kBAAkB,cAAc,gBAAgB;AAAA,EACzE,MAAM;AAAA,IACJ,YAAY,MAAM,WAAW;AAAA,EAC/B;AAAA,EACA,UAAU;AAAA,IACR,OAAO,MAAM,OAAO;AAAA,EACtB;AAAA,EACA,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO,MAAM,OAAO;AAAA,IACpB,gBAAgB;AAAA,EAClB;AAAA,EACA,QAAQ;AAAA,IACN,UAAU;AAAA,IACV,cAAc;AAAA,IACd,YAAY;AAAA,EACd;AAAA;AAAA,EAEA,SAAS,CAAC;AAAA,EACV,QAAQ,CAAC;AAAA,EACT,QAAQ,CAAC;AAAA,EACT,QAAQ,CAAC;AAAA,EACT,QAAQ,CAAC;AAAA,EACT,MAAM,CAAC;AAAA,EACP,OAAO,CAAC;AAAA,EACR,cAAc,CAAC;AAAA,EACf,UAAU,CAAC;AAAA,EACX,UAAU,CAAC;AAAA;AAAA;AAAA,EAGX,YAAY,CAAC;AAAA,EACb,YAAY,CAAC;AAAA;AAAA,EAEb,YAAY,CAAC;AAAA,EACb,UAAU,CAAC;AAAA,EACX,SAAS,CAAC;AAAA,EACV,QAAQ,CAAC;AAAA,EACT,QAAQ,CAAC;AAAA,EACT,QAAQ,CAAC;AAAA,EACT,SAAS,CAAC;AAAA,EACV,UAAU,CAAC;AAAA,EACX,cAAc;AAAA,IACZ,eAAe;AAAA,EACjB;AAAA,EACA,eAAe,CAAC;AAAA,EAChB,YAAY,CAAC;AAAA,EACb,iBAAiB,CAAC;AAAA,EAClB,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,gBAAgB;AAAA,EAClB;AAAA,EACA,cAAc,CAAC;AAAA,EACf,iBAAiB,CAAC;AAAA,EAClB,SAAS,CAAC;AAAA,EACV,iBAAiB,CAAC;AAAA,EAClB,cAAc,CAAA;AAChB,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Action.js","sources":["../../../../src/VerticalNavigation/Actions/Action.tsx"],"sourcesContent":["import { useContext } from \"react\";\nimport {\n useDefaultProps,\n type ExtractNames,\n} from \"@hitachivantara/uikit-react-utils\";\n\nimport { HvButton, HvButtonProps } from \"../../Button\";\nimport { setId } from \"../../utils/setId\";\nimport { VerticalNavigationContext } from \"../VerticalNavigationContext\";\nimport { staticClasses, useClasses } from \"./Action.styles\";\n\nexport { staticClasses as actionClasses };\n\nexport type HvVerticalNavigationActionClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvVerticalNavigationActionProps\n extends Omit<HvButtonProps, \"classes\" | \"icon\"> {\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvVerticalNavigationActionClasses;\n /** Visual label. */\n label?: string;\n /** Icon. */\n icon?: React.ReactNode;\n}\n\nexport const HvVerticalNavigationAction = (\n props: HvVerticalNavigationActionProps,\n) => {\n const {\n className,\n classes: classesProp,\n id,\n label = \"\",\n icon,\n ...others\n } = useDefaultProps(\"HvVerticalNavigationAction\", props);\n\n const { isOpen } = useContext(VerticalNavigationContext);\n\n const { classes, cx } = useClasses(classesProp);\n\n return (\n <HvButton\n id={setId(id, \"button\")}\n variant=\"secondaryGhost\"\n icon={!isOpen}\n className={cx(\n classes.action,\n {\n [classes.noIcon]: !icon,\n [classes.minimized]: !isOpen,\n },\n className,\n )}\n {...(!isOpen && { \"aria-label\": label })}\n {...others}\n >\n {icon}\n {isOpen && label}\n </HvButton>\n );\n};\n"],"names":[],"mappings":";;;;;;;;AAyBa,MAAA,6BAA6B,CACxC,UACG;AACG,QAAA;AAAA,IACJ;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA,QAAQ;AAAA,IACR;AAAA,IACA,GAAG;AAAA,EAAA,IACD,gBAAgB,8BAA8B,KAAK;AAEvD,QAAM,EAAE,OAAA,IAAW,WAAW,yBAAyB;AAEvD,QAAM,EAAE,SAAS,GAAG,IAAI,WAAW,WAAW;AAG5C,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,IAAI,MAAM,IAAI,QAAQ;AAAA,MACtB,SAAQ;AAAA,MACR,MAAM,CAAC;AAAA,MACP,WAAW;AAAA,QACT,QAAQ;AAAA,QACR;AAAA,UACE,CAAC,QAAQ,MAAM,GAAG,CAAC;AAAA,UACnB,CAAC,QAAQ,SAAS,GAAG,CAAC;AAAA,QACxB;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAI,CAAC,UAAU,EAAE,cAAc,MAAM;AAAA,MACrC,GAAG;AAAA,MAEH,UAAA;AAAA,QAAA;AAAA,QACA,UAAU;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGjB;"}
1
+ {"version":3,"file":"Action.js","sources":["../../../../src/VerticalNavigation/Actions/Action.tsx"],"sourcesContent":["import { useContext } from \"react\";\nimport {\n useDefaultProps,\n type ExtractNames,\n} from \"@hitachivantara/uikit-react-utils\";\n\nimport { HvButton, HvButtonProps } from \"../../Button\";\nimport { setId } from \"../../utils/setId\";\nimport { VerticalNavigationContext } from \"../VerticalNavigationContext\";\nimport { staticClasses, useClasses } from \"./Action.styles\";\n\nexport { staticClasses as actionClasses };\n\nexport type HvVerticalNavigationActionClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvVerticalNavigationActionProps\n extends Omit<HvButtonProps, \"classes\" | \"icon\"> {\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvVerticalNavigationActionClasses;\n /** Visual label. */\n label?: string;\n /** Icon. */\n icon?: React.ReactNode;\n}\n\nexport const HvVerticalNavigationAction = (\n props: HvVerticalNavigationActionProps,\n) => {\n const {\n className,\n classes: classesProp,\n id,\n label = \"\",\n icon,\n ...others\n } = useDefaultProps(\"HvVerticalNavigationAction\", props);\n\n const { isOpen } = useContext(VerticalNavigationContext);\n\n const { classes, cx } = useClasses(classesProp);\n\n return (\n <HvButton\n id={setId(id, \"button\")}\n variant=\"secondaryGhost\"\n icon={!isOpen}\n className={cx(\n classes.action,\n {\n [classes.noIcon]: !icon,\n [classes.minimized]: !isOpen,\n },\n className,\n )}\n {...(!isOpen && { \"aria-label\": label })}\n {...others}\n >\n {icon}\n {isOpen && label}\n </HvButton>\n );\n};\n"],"names":[],"mappings":";;;;;;;;AAyBa,MAAA,6BAA6B,CACxC,UACG;AACG,QAAA;AAAA,IACJ;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA,QAAQ;AAAA,IACR;AAAA,IACA,GAAG;AAAA,EAAA,IACD,gBAAgB,8BAA8B,KAAK;AAEvD,QAAM,EAAE,OAAA,IAAW,WAAW,yBAAyB;AAEvD,QAAM,EAAE,SAAS,OAAO,WAAW,WAAW;AAG5C,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,IAAI,MAAM,IAAI,QAAQ;AAAA,MACtB,SAAQ;AAAA,MACR,MAAM,CAAC;AAAA,MACP,WAAW;AAAA,QACT,QAAQ;AAAA,QACR;AAAA,UACE,CAAC,QAAQ,MAAM,GAAG,CAAC;AAAA,UACnB,CAAC,QAAQ,SAAS,GAAG,CAAC;AAAA,QACxB;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAI,CAAC,UAAU,EAAE,cAAc,MAAM;AAAA,MACrC,GAAG;AAAA,MAEH,UAAA;AAAA,QAAA;AAAA,QACA,UAAU;AAAA,MAAA;AAAA,IAAA;AAAA,EACb;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Action.styles.js","sources":["../../../../src/VerticalNavigation/Actions/Action.styles.tsx"],"sourcesContent":["import { createClasses } from \"@hitachivantara/uikit-react-utils\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nexport const { staticClasses, useClasses } = createClasses(\n \"HvVerticalNavigationAction\",\n {\n action: {\n width: \"100%\",\n justifyContent: \"flex-start\",\n height: \"32px\",\n color: \"inherit\",\n fontWeight: \"inherit\",\n padding: 0,\n border: \"none\",\n\n // cursor\n \"& *\": {\n cursor: \"pointer\",\n },\n },\n noIcon: {\n paddingLeft: theme.space.xs,\n },\n minimized: {\n justifyContent: \"center\",\n paddingRight: 0,\n },\n },\n);\n"],"names":[],"mappings":";;AAGa,MAAA,EAAE,eAAe,WAAA,IAAe;AAAA,EAC3C;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,MACN,OAAO;AAAA,MACP,gBAAgB;AAAA,MAChB,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,SAAS;AAAA,MACT,QAAQ;AAAA;AAAA,MAGR,OAAO;AAAA,QACL,QAAQ;AAAA,MACV;AAAA,IACF;AAAA,IACA,QAAQ;AAAA,MACN,aAAa,MAAM,MAAM;AAAA,IAC3B;AAAA,IACA,WAAW;AAAA,MACT,gBAAgB;AAAA,MAChB,cAAc;AAAA,IAChB;AAAA,EACF;AACF;"}
1
+ {"version":3,"file":"Action.styles.js","sources":["../../../../src/VerticalNavigation/Actions/Action.styles.tsx"],"sourcesContent":["import { createClasses } from \"@hitachivantara/uikit-react-utils\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nexport const { staticClasses, useClasses } = createClasses(\n \"HvVerticalNavigationAction\",\n {\n action: {\n width: \"100%\",\n justifyContent: \"flex-start\",\n height: \"32px\",\n color: \"inherit\",\n fontWeight: \"inherit\",\n padding: 0,\n border: \"none\",\n\n // cursor\n \"& *\": {\n cursor: \"pointer\",\n },\n },\n noIcon: {\n paddingLeft: theme.space.xs,\n },\n minimized: {\n justifyContent: \"center\",\n paddingRight: 0,\n },\n },\n);\n"],"names":[],"mappings":";;AAGa,MAAA,EAAE,eAAe,WAAA,IAAe;AAAA,EAC3C;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,MACN,OAAO;AAAA,MACP,gBAAgB;AAAA,MAChB,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,SAAS;AAAA,MACT,QAAQ;AAAA;AAAA,MAGR,OAAO;AAAA,QACL,QAAQ;AAAA,MAAA;AAAA,IAEZ;AAAA,IACA,QAAQ;AAAA,MACN,aAAa,MAAM,MAAM;AAAA,IAC3B;AAAA,IACA,WAAW;AAAA,MACT,gBAAgB;AAAA,MAChB,cAAc;AAAA,IAAA;AAAA,EAChB;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Actions.js","sources":["../../../../src/VerticalNavigation/Actions/Actions.tsx"],"sourcesContent":["import { useContext } from \"react\";\nimport {\n useDefaultProps,\n type ExtractNames,\n} from \"@hitachivantara/uikit-react-utils\";\n\nimport { HvBaseProps } from \"../../types/generic\";\nimport { VerticalNavigationContext } from \"../VerticalNavigationContext\";\nimport { staticClasses, useClasses } from \"./Actions.styles\";\n\nexport { staticClasses as actionsClasses };\n\nexport type HvVerticalNavigationActionsClasses = ExtractNames<\n typeof useClasses\n>;\n\nexport interface HvVerticalNavigationActionsProps extends HvBaseProps {\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvVerticalNavigationActionsClasses;\n}\n\nexport const HvVerticalNavigationActions = (\n props: HvVerticalNavigationActionsProps,\n) => {\n const {\n className,\n classes: classesProp,\n children,\n ...others\n } = useDefaultProps(\"HvVerticalNavigationActions\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\n const { isOpen, useIcons } = useContext(VerticalNavigationContext);\n\n return (\n <div\n className={cx(\n classes.root,\n {\n [classes.hide]: !isOpen && !useIcons,\n },\n className,\n )}\n {...others}\n >\n {children}\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;;AAqBa,MAAA,8BAA8B,CACzC,UACG;AACG,QAAA;AAAA,IACJ;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA,GAAG;AAAA,EAAA,IACD,gBAAgB,+BAA+B,KAAK;AAExD,QAAM,EAAE,SAAS,GAAG,IAAI,WAAW,WAAW;AAE9C,QAAM,EAAE,QAAQ,SAAS,IAAI,WAAW,yBAAyB;AAG/D,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,QACT,QAAQ;AAAA,QACR;AAAA,UACE,CAAC,QAAQ,IAAI,GAAG,CAAC,UAAU,CAAC;AAAA,QAC9B;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH;AAAA,IAAA;AAAA,EAAA;AAGP;"}
1
+ {"version":3,"file":"Actions.js","sources":["../../../../src/VerticalNavigation/Actions/Actions.tsx"],"sourcesContent":["import { useContext } from \"react\";\nimport {\n useDefaultProps,\n type ExtractNames,\n} from \"@hitachivantara/uikit-react-utils\";\n\nimport { HvBaseProps } from \"../../types/generic\";\nimport { VerticalNavigationContext } from \"../VerticalNavigationContext\";\nimport { staticClasses, useClasses } from \"./Actions.styles\";\n\nexport { staticClasses as actionsClasses };\n\nexport type HvVerticalNavigationActionsClasses = ExtractNames<\n typeof useClasses\n>;\n\nexport interface HvVerticalNavigationActionsProps extends HvBaseProps {\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvVerticalNavigationActionsClasses;\n}\n\nexport const HvVerticalNavigationActions = (\n props: HvVerticalNavigationActionsProps,\n) => {\n const {\n className,\n classes: classesProp,\n children,\n ...others\n } = useDefaultProps(\"HvVerticalNavigationActions\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\n const { isOpen, useIcons } = useContext(VerticalNavigationContext);\n\n return (\n <div\n className={cx(\n classes.root,\n {\n [classes.hide]: !isOpen && !useIcons,\n },\n className,\n )}\n {...others}\n >\n {children}\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;;AAqBa,MAAA,8BAA8B,CACzC,UACG;AACG,QAAA;AAAA,IACJ;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA,GAAG;AAAA,EAAA,IACD,gBAAgB,+BAA+B,KAAK;AAExD,QAAM,EAAE,SAAS,OAAO,WAAW,WAAW;AAE9C,QAAM,EAAE,QAAQ,aAAa,WAAW,yBAAyB;AAG/D,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,QACT,QAAQ;AAAA,QACR;AAAA,UACE,CAAC,QAAQ,IAAI,GAAG,CAAC,UAAU,CAAC;AAAA,QAC9B;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH;AAAA,IAAA;AAAA,EACH;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Actions.styles.js","sources":["../../../../src/VerticalNavigation/Actions/Actions.styles.tsx"],"sourcesContent":["import { createClasses } from \"@hitachivantara/uikit-react-utils\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nexport const { staticClasses, useClasses } = createClasses(\n \"HvVerticalNavigationActions\",\n {\n root: {\n display: \"flex\",\n flexDirection: \"column\",\n marginTop: \"auto\",\n\n gap: theme.space.xs,\n },\n hide: {\n display: \"none\",\n },\n },\n);\n"],"names":[],"mappings":";;AAGa,MAAA,EAAE,eAAe,WAAA,IAAe;AAAA,EAC3C;AAAA,EACA;AAAA,IACE,MAAM;AAAA,MACJ,SAAS;AAAA,MACT,eAAe;AAAA,MACf,WAAW;AAAA,MAEX,KAAK,MAAM,MAAM;AAAA,IACnB;AAAA,IACA,MAAM;AAAA,MACJ,SAAS;AAAA,IACX;AAAA,EACF;AACF;"}
1
+ {"version":3,"file":"Actions.styles.js","sources":["../../../../src/VerticalNavigation/Actions/Actions.styles.tsx"],"sourcesContent":["import { createClasses } from \"@hitachivantara/uikit-react-utils\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nexport const { staticClasses, useClasses } = createClasses(\n \"HvVerticalNavigationActions\",\n {\n root: {\n display: \"flex\",\n flexDirection: \"column\",\n marginTop: \"auto\",\n\n gap: theme.space.xs,\n },\n hide: {\n display: \"none\",\n },\n },\n);\n"],"names":[],"mappings":";;AAGa,MAAA,EAAE,eAAe,WAAA,IAAe;AAAA,EAC3C;AAAA,EACA;AAAA,IACE,MAAM;AAAA,MACJ,SAAS;AAAA,MACT,eAAe;AAAA,MACf,WAAW;AAAA,MAEX,KAAK,MAAM,MAAM;AAAA,IACnB;AAAA,IACA,MAAM;AAAA,MACJ,SAAS;AAAA,IAAA;AAAA,EACX;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Header.js","sources":["../../../../src/VerticalNavigation/Header/Header.tsx"],"sourcesContent":["import { useContext, useMemo } from \"react\";\nimport { Backwards, Forwards, Menu } from \"@hitachivantara/uikit-react-icons\";\nimport {\n useDefaultProps,\n type ExtractNames,\n} from \"@hitachivantara/uikit-react-utils\";\n\nimport { HvButton, HvButtonProps } from \"../../Button\";\nimport { HvBaseProps } from \"../../types/generic\";\nimport { HvTypography } from \"../../Typography\";\nimport { VerticalNavigationContext } from \"../VerticalNavigationContext\";\nimport { staticClasses, useClasses } from \"./Header.styles\";\n\nexport { staticClasses as verticalNavigationHeaderClasses };\n\nexport type HvVerticalNavigationHeaderClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvVerticalNavigationHeaderProps extends HvBaseProps {\n /** The title text to show on header. */\n title?: string;\n /** Icon to show when vertical navigation is collapsed. */\n openIcon?: React.ReactNode;\n /** Icon to show when vertical navigation is expanded. */\n closeIcon?: React.ReactNode;\n /** Props for the collapse button. */\n collapseButtonProps?: HvButtonProps;\n /** Props for the back button. */\n backButtonProps?: HvButtonProps;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvVerticalNavigationHeaderClasses;\n /** Handler for the collapse button. */\n onCollapseButtonClick?: React.MouseEventHandler<HTMLElement>;\n}\n\nexport const HvVerticalNavigationHeader = (\n props: HvVerticalNavigationHeaderProps,\n) => {\n const {\n title,\n openIcon: openIconProp,\n closeIcon: closeIconProp,\n collapseButtonProps = {},\n backButtonProps = {},\n className,\n classes: classesProp,\n onCollapseButtonClick,\n ...others\n } = useDefaultProps(\"HvVerticalNavigationHeader\", props);\n\n const {\n isOpen,\n useIcons,\n headerTitle,\n slider,\n navigateToParentHandler,\n parentItem,\n } = useContext(VerticalNavigationContext);\n\n const { classes, cx } = useClasses(classesProp);\n\n // whenever we're in a sublevel, the parentItem is always a single item.\n // In the first level it's always an array with the first level elements.\n const shouldShowTitle = useMemo(\n () => !slider || (slider && !Array.isArray(parentItem)),\n [parentItem, slider],\n );\n\n if (!shouldShowTitle) return null;\n\n const openIcon = openIconProp ?? (!useIcons ? <Menu /> : <Forwards />);\n const closeIcon = closeIconProp ?? <Backwards />;\n\n const handleClickBack = () => navigateToParentHandler?.();\n\n const { className: backButtonClassName, ...otherBackButtonProps } =\n backButtonProps;\n\n const {\n className: collapseButtonClassName,\n classes: collapseButtonClasses,\n ...otherCollapseButtonProps\n } = collapseButtonProps;\n\n return (\n <div\n className={cx(classes.root, { [classes.minimized]: !isOpen }, className)}\n {...others}\n >\n {isOpen && headerTitle && slider && (\n <HvButton\n icon\n onClick={handleClickBack}\n className={cx(classes.backButton, backButtonClassName)}\n aria-label=\"Back\"\n {...otherBackButtonProps}\n >\n <Backwards iconSize=\"XS\" />\n </HvButton>\n )}\n {isOpen && (\n <HvTypography\n variant={slider ? \"label\" : \"title3\"}\n className={classes.title}\n >\n {headerTitle && slider ? headerTitle : title}\n </HvTypography>\n )}\n {onCollapseButtonClick && (\n <HvButton\n icon\n onClick={onCollapseButtonClick}\n className={cx(classes.collapseButton, collapseButtonClassName)}\n classes={{\n ...collapseButtonClasses,\n root: cx(\n { [classes.minimized]: !isOpen }, // TODO - v6 don't use minimized classes in two different places\n collapseButtonClasses?.root,\n ),\n }}\n {...otherCollapseButtonProps}\n >\n {isOpen ? closeIcon : openIcon}\n </HvButton>\n )}\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;AAkCa,MAAA,6BAA6B,CACxC,UACG;AACG,QAAA;AAAA,IACJ;AAAA,IACA,UAAU;AAAA,IACV,WAAW;AAAA,IACX,sBAAsB,CAAC;AAAA,IACvB,kBAAkB,CAAC;AAAA,IACnB;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA,GAAG;AAAA,EAAA,IACD,gBAAgB,8BAA8B,KAAK;AAEjD,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACE,WAAW,yBAAyB;AAExC,QAAM,EAAE,SAAS,GAAG,IAAI,WAAW,WAAW;AAI9C,QAAM,kBAAkB;AAAA,IACtB,MAAM,CAAC,UAAW,UAAU,CAAC,MAAM,QAAQ,UAAU;AAAA,IACrD,CAAC,YAAY,MAAM;AAAA,EAAA;AAGjB,MAAA,CAAC,gBAAwB,QAAA;AAEvB,QAAA,WAAW,iBAAiB,CAAC,+BAAY,MAAK,CAAA,CAAA,wBAAM,UAAS,CAAA,CAAA;AAC7D,QAAA,YAAY,iBAAiB,oBAAC,WAAU,CAAA,CAAA;AAExC,QAAA,kBAAkB,MAAM;AAE9B,QAAM,EAAE,WAAW,qBAAqB,GAAG,yBACzC;AAEI,QAAA;AAAA,IACJ,WAAW;AAAA,IACX,SAAS;AAAA,IACT,GAAG;AAAA,EACD,IAAA;AAGF,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,GAAG,QAAQ,MAAM,EAAE,CAAC,QAAQ,SAAS,GAAG,CAAC,OAAO,GAAG,SAAS;AAAA,MACtE,GAAG;AAAA,MAEH,UAAA;AAAA,QAAA,UAAU,eAAe,UACxB;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAI;AAAA,YACJ,SAAS;AAAA,YACT,WAAW,GAAG,QAAQ,YAAY,mBAAmB;AAAA,YACrD,cAAW;AAAA,YACV,GAAG;AAAA,YAEJ,UAAA,oBAAC,WAAU,EAAA,UAAS,KAAK,CAAA;AAAA,UAAA;AAAA,QAC3B;AAAA,QAED,UACC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,SAAS,SAAS,UAAU;AAAA,YAC5B,WAAW,QAAQ;AAAA,YAElB,UAAA,eAAe,SAAS,cAAc;AAAA,UAAA;AAAA,QACzC;AAAA,QAED,yBACC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAI;AAAA,YACJ,SAAS;AAAA,YACT,WAAW,GAAG,QAAQ,gBAAgB,uBAAuB;AAAA,YAC7D,SAAS;AAAA,cACP,GAAG;AAAA,cACH,MAAM;AAAA,gBACJ,EAAE,CAAC,QAAQ,SAAS,GAAG,CAAC,OAAO;AAAA;AAAA,gBAC/B,uBAAuB;AAAA,cACzB;AAAA,YACF;AAAA,YACC,GAAG;AAAA,YAEH,mBAAS,YAAY;AAAA,UAAA;AAAA,QACxB;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;"}
1
+ {"version":3,"file":"Header.js","sources":["../../../../src/VerticalNavigation/Header/Header.tsx"],"sourcesContent":["import { useContext, useMemo } from \"react\";\nimport { Backwards, Forwards, Menu } from \"@hitachivantara/uikit-react-icons\";\nimport {\n useDefaultProps,\n type ExtractNames,\n} from \"@hitachivantara/uikit-react-utils\";\n\nimport { HvButton, HvButtonProps } from \"../../Button\";\nimport { HvBaseProps } from \"../../types/generic\";\nimport { HvTypography } from \"../../Typography\";\nimport { VerticalNavigationContext } from \"../VerticalNavigationContext\";\nimport { staticClasses, useClasses } from \"./Header.styles\";\n\nexport { staticClasses as verticalNavigationHeaderClasses };\n\nexport type HvVerticalNavigationHeaderClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvVerticalNavigationHeaderProps extends HvBaseProps {\n /** The title text to show on header. */\n title?: string;\n /** Icon to show when vertical navigation is collapsed. */\n openIcon?: React.ReactNode;\n /** Icon to show when vertical navigation is expanded. */\n closeIcon?: React.ReactNode;\n /** Props for the collapse button. */\n collapseButtonProps?: HvButtonProps;\n /** Props for the back button. */\n backButtonProps?: HvButtonProps;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvVerticalNavigationHeaderClasses;\n /** Handler for the collapse button. */\n onCollapseButtonClick?: React.MouseEventHandler<HTMLElement>;\n}\n\nexport const HvVerticalNavigationHeader = (\n props: HvVerticalNavigationHeaderProps,\n) => {\n const {\n title,\n openIcon: openIconProp,\n closeIcon: closeIconProp,\n collapseButtonProps = {},\n backButtonProps = {},\n className,\n classes: classesProp,\n onCollapseButtonClick,\n ...others\n } = useDefaultProps(\"HvVerticalNavigationHeader\", props);\n\n const {\n isOpen,\n useIcons,\n headerTitle,\n slider,\n navigateToParentHandler,\n parentItem,\n } = useContext(VerticalNavigationContext);\n\n const { classes, cx } = useClasses(classesProp);\n\n // whenever we're in a sublevel, the parentItem is always a single item.\n // In the first level it's always an array with the first level elements.\n const shouldShowTitle = useMemo(\n () => !slider || (slider && !Array.isArray(parentItem)),\n [parentItem, slider],\n );\n\n if (!shouldShowTitle) return null;\n\n const openIcon = openIconProp ?? (!useIcons ? <Menu /> : <Forwards />);\n const closeIcon = closeIconProp ?? <Backwards />;\n\n const handleClickBack = () => navigateToParentHandler?.();\n\n const { className: backButtonClassName, ...otherBackButtonProps } =\n backButtonProps;\n\n const {\n className: collapseButtonClassName,\n classes: collapseButtonClasses,\n ...otherCollapseButtonProps\n } = collapseButtonProps;\n\n return (\n <div\n className={cx(classes.root, { [classes.minimized]: !isOpen }, className)}\n {...others}\n >\n {isOpen && headerTitle && slider && (\n <HvButton\n icon\n onClick={handleClickBack}\n className={cx(classes.backButton, backButtonClassName)}\n aria-label=\"Back\"\n {...otherBackButtonProps}\n >\n <Backwards iconSize=\"XS\" />\n </HvButton>\n )}\n {isOpen && (\n <HvTypography\n variant={slider ? \"label\" : \"title3\"}\n className={classes.title}\n >\n {headerTitle && slider ? headerTitle : title}\n </HvTypography>\n )}\n {onCollapseButtonClick && (\n <HvButton\n icon\n onClick={onCollapseButtonClick}\n className={cx(classes.collapseButton, collapseButtonClassName)}\n classes={{\n ...collapseButtonClasses,\n root: cx(\n { [classes.minimized]: !isOpen }, // TODO - v6 don't use minimized classes in two different places\n collapseButtonClasses?.root,\n ),\n }}\n {...otherCollapseButtonProps}\n >\n {isOpen ? closeIcon : openIcon}\n </HvButton>\n )}\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;AAkCa,MAAA,6BAA6B,CACxC,UACG;AACG,QAAA;AAAA,IACJ;AAAA,IACA,UAAU;AAAA,IACV,WAAW;AAAA,IACX,sBAAsB,CAAC;AAAA,IACvB,kBAAkB,CAAC;AAAA,IACnB;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA,GAAG;AAAA,EAAA,IACD,gBAAgB,8BAA8B,KAAK;AAEjD,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACE,WAAW,yBAAyB;AAExC,QAAM,EAAE,SAAS,OAAO,WAAW,WAAW;AAI9C,QAAM,kBAAkB;AAAA,IACtB,MAAM,CAAC,UAAW,UAAU,CAAC,MAAM,QAAQ,UAAU;AAAA,IACrD,CAAC,YAAY,MAAM;AAAA,EACrB;AAEI,MAAA,CAAC,gBAAwB,QAAA;AAEvB,QAAA,WAAW,iBAAiB,CAAC,+BAAY,MAAK,CAAA,CAAA,wBAAM,UAAS,CAAA,CAAA;AAC7D,QAAA,YAAY,iBAAiB,oBAAC,WAAU,CAAA,CAAA;AAExC,QAAA,kBAAkB,MAAM,0BAA0B;AAExD,QAAM,EAAE,WAAW,qBAAqB,GAAG,qBACzC,IAAA;AAEI,QAAA;AAAA,IACJ,WAAW;AAAA,IACX,SAAS;AAAA,IACT,GAAG;AAAA,EAAA,IACD;AAGF,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,GAAG,QAAQ,MAAM,EAAE,CAAC,QAAQ,SAAS,GAAG,CAAC,OAAO,GAAG,SAAS;AAAA,MACtE,GAAG;AAAA,MAEH,UAAA;AAAA,QAAA,UAAU,eAAe,UACxB;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAI;AAAA,YACJ,SAAS;AAAA,YACT,WAAW,GAAG,QAAQ,YAAY,mBAAmB;AAAA,YACrD,cAAW;AAAA,YACV,GAAG;AAAA,YAEJ,UAAA,oBAAC,WAAU,EAAA,UAAS,KAAK,CAAA;AAAA,UAAA;AAAA,QAC3B;AAAA,QAED,UACC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,SAAS,SAAS,UAAU;AAAA,YAC5B,WAAW,QAAQ;AAAA,YAElB,UAAA,eAAe,SAAS,cAAc;AAAA,UAAA;AAAA,QACzC;AAAA,QAED,yBACC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAI;AAAA,YACJ,SAAS;AAAA,YACT,WAAW,GAAG,QAAQ,gBAAgB,uBAAuB;AAAA,YAC7D,SAAS;AAAA,cACP,GAAG;AAAA,cACH,MAAM;AAAA,gBACJ,EAAE,CAAC,QAAQ,SAAS,GAAG,CAAC,OAAO;AAAA;AAAA,gBAC/B,uBAAuB;AAAA,cAAA;AAAA,YAE3B;AAAA,YACC,GAAG;AAAA,YAEH,mBAAS,YAAY;AAAA,UAAA;AAAA,QAAA;AAAA,MACxB;AAAA,IAAA;AAAA,EAEJ;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Header.styles.js","sources":["../../../../src/VerticalNavigation/Header/Header.styles.tsx"],"sourcesContent":["import { createClasses } from \"@hitachivantara/uikit-react-utils\";\n\nexport const { staticClasses, useClasses } = createClasses(\n \"HvVerticalNavigationHeader\",\n {\n root: {\n width: \"100%\",\n display: \"flex\",\n marginTop: \"12px\",\n alignItems: \"center\",\n },\n minimized: {\n justifyContent: \"center\",\n paddingRight: 0,\n },\n collapseButton: {\n marginLeft: \"auto\",\n color: \"inherit\",\n \"&$minimized\": {\n marginLeft: 0,\n },\n },\n backButton: {\n color: \"inherit\",\n },\n title: {\n color: \"inherit\",\n },\n },\n);\n"],"names":[],"mappings":";AAEa,MAAA,EAAE,eAAe,WAAA,IAAe;AAAA,EAC3C;AAAA,EACA;AAAA,IACE,MAAM;AAAA,MACJ,OAAO;AAAA,MACP,SAAS;AAAA,MACT,WAAW;AAAA,MACX,YAAY;AAAA,IACd;AAAA,IACA,WAAW;AAAA,MACT,gBAAgB;AAAA,MAChB,cAAc;AAAA,IAChB;AAAA,IACA,gBAAgB;AAAA,MACd,YAAY;AAAA,MACZ,OAAO;AAAA,MACP,eAAe;AAAA,QACb,YAAY;AAAA,MACd;AAAA,IACF;AAAA,IACA,YAAY;AAAA,MACV,OAAO;AAAA,IACT;AAAA,IACA,OAAO;AAAA,MACL,OAAO;AAAA,IACT;AAAA,EACF;AACF;"}
1
+ {"version":3,"file":"Header.styles.js","sources":["../../../../src/VerticalNavigation/Header/Header.styles.tsx"],"sourcesContent":["import { createClasses } from \"@hitachivantara/uikit-react-utils\";\n\nexport const { staticClasses, useClasses } = createClasses(\n \"HvVerticalNavigationHeader\",\n {\n root: {\n width: \"100%\",\n display: \"flex\",\n marginTop: \"12px\",\n alignItems: \"center\",\n },\n minimized: {\n justifyContent: \"center\",\n paddingRight: 0,\n },\n collapseButton: {\n marginLeft: \"auto\",\n color: \"inherit\",\n \"&$minimized\": {\n marginLeft: 0,\n },\n },\n backButton: {\n color: \"inherit\",\n },\n title: {\n color: \"inherit\",\n },\n },\n);\n"],"names":[],"mappings":";AAEa,MAAA,EAAE,eAAe,WAAA,IAAe;AAAA,EAC3C;AAAA,EACA;AAAA,IACE,MAAM;AAAA,MACJ,OAAO;AAAA,MACP,SAAS;AAAA,MACT,WAAW;AAAA,MACX,YAAY;AAAA,IACd;AAAA,IACA,WAAW;AAAA,MACT,gBAAgB;AAAA,MAChB,cAAc;AAAA,IAChB;AAAA,IACA,gBAAgB;AAAA,MACd,YAAY;AAAA,MACZ,OAAO;AAAA,MACP,eAAe;AAAA,QACb,YAAY;AAAA,MAAA;AAAA,IAEhB;AAAA,IACA,YAAY;AAAA,MACV,OAAO;AAAA,IACT;AAAA,IACA,OAAO;AAAA,MACL,OAAO;AAAA,IAAA;AAAA,EACT;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Navigation.js","sources":["../../../../src/VerticalNavigation/Navigation/Navigation.tsx"],"sourcesContent":["import { useCallback, useContext, useEffect, useMemo, useState } from \"react\";\nimport {\n useDefaultProps,\n type ExtractNames,\n} from \"@hitachivantara/uikit-react-utils\";\n\nimport { useControlled } from \"../../hooks/useControlled\";\nimport { HvBaseProps } from \"../../types/generic\";\nimport { uniqueId } from \"../../utils/helpers\";\nimport { setId } from \"../../utils/setId\";\nimport { NavigationPopupContainer } from \"../NavigationPopup/NavigationPopupContainer\";\nimport {\n HvVerticalNavigationSlider,\n HvVerticalNavigationSliderProps,\n} from \"../NavigationSlider\";\nimport { getParentItemById } from \"../NavigationSlider/utils\";\nimport {\n HvVerticalNavigationTreeView,\n HvVerticalNavigationTreeViewItem,\n NavigationMode,\n} from \"../TreeView\";\nimport {\n NavigationData,\n VerticalNavigationContext,\n} from \"../VerticalNavigationContext\";\nimport { staticClasses, useClasses } from \"./Navigation.styles\";\n\nexport { staticClasses as verticalNavigationTreeClasses };\n\nexport type HvVerticalNavigationTreeClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvVerticalNavigationTreeProps\n extends HvBaseProps<HTMLDivElement, \"onChange\" | \"onToggle\"> {\n /** A Jss Object used to override or extend the styles applied. */\n classes?: HvVerticalNavigationTreeClasses;\n /** Modus operandi (role) of the widget instance. */\n mode?: NavigationMode;\n /** Can non-leaf nodes be collapsed / expanded. */\n collapsible?: boolean;\n /** The ID of the selected page. */\n selected?: string;\n /** When uncontrolled, defines the initial selected page ID. */\n defaultSelected?: string;\n /** Callback fired when a navigation item is selected. */\n onChange?: (\n event:\n | React.MouseEvent<HTMLLIElement>\n | React.KeyboardEvent<HTMLUListElement>,\n page: NavigationData,\n ) => void;\n /** Expanded nodes' ids. */\n expanded?: string[];\n /**\n * When uncontrolled, defines the initial expanded nodes' ids.\n *\n * It also supports `true` for starting with all nodes expanded.\n * With `false` all nodes will be collapsed.\n *\n * By default it expands the needed nodes to display the current selection, if any.\n */\n defaultExpanded?: string[] | boolean;\n /** Callback fired when tree items are expanded/collapsed. */\n onToggle?: (\n event: React.KeyboardEvent<HTMLUListElement>,\n nodeIds: string[],\n ) => void;\n /**\n * An array containing the data for each menu item.\n *\n * id - the id to be applied to the root element.\n * label - the label to be rendered on the menu item.\n * data - sub-menu items\n * href - the url used for navigation.\n * target - the behavior when opening an url.\n */\n data?: NavigationData[];\n /** Aria label to apply to the navigate to submenu button on the navigation slider list items. */\n sliderForwardButtonAriaLabel?: string;\n}\n\nconst createListHierarchy = (\n items: NavigationData[],\n id: string | undefined,\n classes?: HvVerticalNavigationTreeClasses,\n mouseEnterHandler?: (event: any, item: any) => void,\n disableTooltip = false,\n) =>\n items.map((item) => {\n const {\n id: itemId,\n label: itemLabel,\n icon,\n data: children,\n selectable,\n disabled,\n href,\n target,\n } = item;\n\n const itemMouseEnterHandler = (event: any) => {\n mouseEnterHandler?.(event, item);\n };\n\n return (\n <HvVerticalNavigationTreeViewItem\n id={setId(id, itemId)}\n className={classes?.listItem}\n href={href}\n target={target}\n key={itemId}\n nodeId={itemId}\n label={itemLabel}\n icon={icon}\n payload={item}\n selectable={selectable}\n disabled={disabled}\n onMouseEnter={itemMouseEnterHandler}\n disableTooltip={disableTooltip}\n >\n {children\n ? createListHierarchy(\n children,\n id,\n classes,\n mouseEnterHandler,\n disableTooltip,\n )\n : undefined}\n </HvVerticalNavigationTreeViewItem>\n );\n });\n\nconst getAllParents = (items: any) => {\n const parents = items.filter(\n (item: any) => item.data != null && item.data.length > 0,\n );\n const childParents = parents.flatMap((item: any) => getAllParents(item.data));\n\n return [...parents, ...childParents];\n};\n\nfunction pathToElement(data: any, targetId: any) {\n const path: string[] = [];\n\n if (data != null && data.length > 0) {\n for (let i = 0; i !== data.length; ++i) {\n const item = data[i];\n if (item.id === targetId) {\n path.push(item.id);\n break;\n }\n\n const subPaths = pathToElement(item.data, targetId);\n if (subPaths.length > 0) {\n path.push(item.id);\n path.push(...subPaths);\n break;\n }\n }\n }\n\n return path;\n}\n\nexport const HvVerticalNavigationTree = (\n props: HvVerticalNavigationTreeProps,\n) => {\n const {\n id,\n className,\n classes: classesProp,\n data,\n mode = \"navigation\",\n collapsible = false,\n expanded: expandedProp,\n defaultExpanded,\n onToggle,\n selected: selectedProp,\n defaultSelected,\n onChange,\n sliderForwardButtonAriaLabel = \"Navigate to submenu\",\n ...others\n } = useDefaultProps(\"HvVerticalNavigationTree\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\n const [selected, setSelected] = useControlled(selectedProp, defaultSelected);\n const [expanded, setExpanded] = useControlled(expandedProp, () => {\n if (defaultExpanded === true) {\n // all parent nodes will be expanded by default\n return getAllParents(data).map((item) => item.id);\n }\n\n if (defaultExpanded === false) {\n // all parent nodes will be collapsed by default\n return [];\n }\n\n if (defaultExpanded == null) {\n if (selected != null) {\n // the path to the selected node will be expanded (default behaviour)\n const path = pathToElement(data, selected);\n return path.slice(0, -1);\n }\n\n // nothing is expanded\n return [];\n }\n\n return defaultExpanded;\n });\n\n const {\n isOpen,\n useIcons,\n slider,\n\n parentItem,\n setParentItem,\n withParentData,\n navigateToChildHandler,\n\n setParentData,\n setParentSelected,\n } = useContext(VerticalNavigationContext);\n\n const [navigationPopup, setNavigationPopup] = useState<{\n // This value is needed to guarantee that the NavigationPopup is fully re-rendered with keeping any previous values\n uniqueKey: string;\n anchorEl: HTMLElement | null;\n fixedMode: boolean;\n data: NavigationData[];\n } | null>(null);\n\n const handleChange = useCallback(\n (\n event:\n | React.MouseEvent<HTMLLIElement>\n | React.KeyboardEvent<HTMLUListElement>,\n selectedId: string | string[],\n selectedItem: NavigationData,\n ) => {\n if (useIcons && !isOpen && selectedItem.data) {\n const currentEventTarget = event.currentTarget;\n setNavigationPopup((prevState) => {\n // We want to close the popup in case the clicked element is the same as the previous one\n return prevState?.anchorEl === currentEventTarget\n ? null\n : {\n uniqueKey: uniqueId(),\n anchorEl: currentEventTarget,\n fixedMode: true,\n data: selectedItem.data as NavigationData[],\n };\n });\n\n // We need this stopPropagation or else the Popup will close due to the clickaway being triggered\n event.stopPropagation();\n } else {\n setSelected(selectedId as string);\n setExpanded((prevState) => {\n if (!isOpen) {\n return [...prevState, ...pathToElement(data, selectedId)];\n }\n return [...prevState];\n });\n setNavigationPopup(null);\n onChange?.(event, selectedItem);\n }\n },\n [onChange, setSelected, setExpanded, isOpen, useIcons, data],\n );\n\n const treeViewItemMouseEnterHandler = useCallback(\n (event: any, item: any) => {\n const isCollapsed = useIcons && !isOpen;\n\n if (isCollapsed && item.data && !navigationPopup?.fixedMode) {\n const currentEventTarget = event.currentTarget;\n\n setNavigationPopup?.({\n uniqueKey: uniqueId(),\n anchorEl: currentEventTarget,\n fixedMode: false,\n data: item.data,\n });\n } else if (isCollapsed && !item.data && !navigationPopup?.fixedMode) {\n setNavigationPopup(null);\n }\n },\n [isOpen, useIcons, navigationPopup],\n );\n\n const handleToggle = useCallback(\n (event: React.KeyboardEvent<HTMLUListElement>, newExpanded: string[]) => {\n setExpanded(newExpanded);\n onToggle?.(event, newExpanded);\n },\n [onToggle, setExpanded],\n );\n\n const children = useMemo(\n () =>\n data &&\n createListHierarchy(\n data,\n id,\n classes,\n treeViewItemMouseEnterHandler,\n navigationPopup?.fixedMode,\n ),\n [classes, data, id, navigationPopup, treeViewItemMouseEnterHandler],\n );\n\n useEffect(() => {\n if (!isOpen) {\n setNavigationPopup?.(null);\n }\n }, [isOpen]);\n\n useEffect(() => {\n if (setParentSelected) setParentSelected(selected);\n }, [selected, setSelected, setParentSelected]);\n\n useEffect(() => {\n if (setParentData) setParentData(data);\n }, [data, setParentData]);\n\n useEffect(() => {\n if (\n withParentData &&\n selected &&\n setParentItem &&\n getParentItemById(withParentData, selected)\n ) {\n setParentItem(getParentItemById(withParentData, selected));\n }\n }, [withParentData, selected, setParentItem]);\n\n const navigateToTargetHandler: HvVerticalNavigationSliderProps[\"onNavigateToTarget\"] =\n (event, selectedItem) => handleChange(event, selectedItem.id, selectedItem);\n\n const handleNavigationPopupClose = () => setNavigationPopup(null);\n\n const handleStyledNavMouseLeave = () => {\n if (useIcons && !isOpen && !navigationPopup?.fixedMode) {\n setNavigationPopup(null);\n }\n };\n\n const handleNavigationPopupMouseLeave = () => {\n if (!navigationPopup?.fixedMode) {\n handleNavigationPopupClose();\n }\n };\n\n const handleNavigationPopupChange: HvVerticalNavigationTreeProps[\"onChange\"] =\n (event, selectedItem) => {\n handleChange(event, selectedItem.id, selectedItem);\n };\n\n return (\n <nav\n id={id}\n className={cx(\n classes.root,\n { [classes.collapsed]: !isOpen && !useIcons },\n className,\n )}\n onMouseLeave={handleStyledNavMouseLeave}\n {...others}\n >\n {slider ? (\n <HvVerticalNavigationSlider\n data={parentItem.data || withParentData}\n selected={selected}\n onNavigateToTarget={navigateToTargetHandler}\n onNavigateToChild={navigateToChildHandler}\n forwardButtonAriaLabel={sliderForwardButtonAriaLabel}\n />\n ) : (\n <HvVerticalNavigationTreeView\n id={setId(id, \"tree\")}\n className={classes.list}\n selectable\n mode={mode}\n collapsible={collapsible}\n selected={selected}\n onChange={handleChange}\n expanded={expanded}\n onToggle={handleToggle}\n >\n {useIcons && !isOpen && navigationPopup && (\n <NavigationPopupContainer\n anchorEl={navigationPopup.anchorEl}\n onClose={handleNavigationPopupClose}\n key={navigationPopup.uniqueKey}\n className={classes.navigationPopup}\n >\n <HvVerticalNavigationTree\n className={classes.popup}\n id={setId(id, \"navigation-popup-tree\")}\n collapsible\n defaultExpanded\n selected={selected}\n data={navigationPopup.data}\n onChange={handleNavigationPopupChange}\n onMouseLeave={handleNavigationPopupMouseLeave}\n />\n </NavigationPopupContainer>\n )}\n {children}\n </HvVerticalNavigationTreeView>\n )}\n </nav>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Navigation.js","sources":["../../../../src/VerticalNavigation/Navigation/Navigation.tsx"],"sourcesContent":["import { useCallback, useContext, useEffect, useMemo, useState } from \"react\";\nimport {\n useDefaultProps,\n type ExtractNames,\n} from \"@hitachivantara/uikit-react-utils\";\n\nimport { useControlled } from \"../../hooks/useControlled\";\nimport { HvBaseProps } from \"../../types/generic\";\nimport { uniqueId } from \"../../utils/helpers\";\nimport { setId } from \"../../utils/setId\";\nimport { NavigationPopupContainer } from \"../NavigationPopup/NavigationPopupContainer\";\nimport {\n HvVerticalNavigationSlider,\n HvVerticalNavigationSliderProps,\n} from \"../NavigationSlider\";\nimport { getParentItemById } from \"../NavigationSlider/utils\";\nimport {\n HvVerticalNavigationTreeView,\n HvVerticalNavigationTreeViewItem,\n NavigationMode,\n} from \"../TreeView\";\nimport {\n NavigationData,\n VerticalNavigationContext,\n} from \"../VerticalNavigationContext\";\nimport { staticClasses, useClasses } from \"./Navigation.styles\";\n\nexport { staticClasses as verticalNavigationTreeClasses };\n\nexport type HvVerticalNavigationTreeClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvVerticalNavigationTreeProps\n extends HvBaseProps<HTMLDivElement, \"onChange\" | \"onToggle\"> {\n /** A Jss Object used to override or extend the styles applied. */\n classes?: HvVerticalNavigationTreeClasses;\n /** Modus operandi (role) of the widget instance. */\n mode?: NavigationMode;\n /** Can non-leaf nodes be collapsed / expanded. */\n collapsible?: boolean;\n /** The ID of the selected page. */\n selected?: string;\n /** When uncontrolled, defines the initial selected page ID. */\n defaultSelected?: string;\n /** Callback fired when a navigation item is selected. */\n onChange?: (\n event:\n | React.MouseEvent<HTMLLIElement>\n | React.KeyboardEvent<HTMLUListElement>,\n page: NavigationData,\n ) => void;\n /** Expanded nodes' ids. */\n expanded?: string[];\n /**\n * When uncontrolled, defines the initial expanded nodes' ids.\n *\n * It also supports `true` for starting with all nodes expanded.\n * With `false` all nodes will be collapsed.\n *\n * By default it expands the needed nodes to display the current selection, if any.\n */\n defaultExpanded?: string[] | boolean;\n /** Callback fired when tree items are expanded/collapsed. */\n onToggle?: (\n event: React.KeyboardEvent<HTMLUListElement>,\n nodeIds: string[],\n ) => void;\n /**\n * An array containing the data for each menu item.\n *\n * id - the id to be applied to the root element.\n * label - the label to be rendered on the menu item.\n * data - sub-menu items\n * href - the url used for navigation.\n * target - the behavior when opening an url.\n */\n data?: NavigationData[];\n /** Aria label to apply to the navigate to submenu button on the navigation slider list items. */\n sliderForwardButtonAriaLabel?: string;\n}\n\nconst createListHierarchy = (\n items: NavigationData[],\n id: string | undefined,\n classes?: HvVerticalNavigationTreeClasses,\n mouseEnterHandler?: (event: any, item: any) => void,\n disableTooltip = false,\n) =>\n items.map((item) => {\n const {\n id: itemId,\n label: itemLabel,\n icon,\n data: children,\n selectable,\n disabled,\n href,\n target,\n } = item;\n\n const itemMouseEnterHandler = (event: any) => {\n mouseEnterHandler?.(event, item);\n };\n\n return (\n <HvVerticalNavigationTreeViewItem\n id={setId(id, itemId)}\n className={classes?.listItem}\n href={href}\n target={target}\n key={itemId}\n nodeId={itemId}\n label={itemLabel}\n icon={icon}\n payload={item}\n selectable={selectable}\n disabled={disabled}\n onMouseEnter={itemMouseEnterHandler}\n disableTooltip={disableTooltip}\n >\n {children\n ? createListHierarchy(\n children,\n id,\n classes,\n mouseEnterHandler,\n disableTooltip,\n )\n : undefined}\n </HvVerticalNavigationTreeViewItem>\n );\n });\n\nconst getAllParents = (items: any) => {\n const parents = items.filter(\n (item: any) => item.data != null && item.data.length > 0,\n );\n const childParents = parents.flatMap((item: any) => getAllParents(item.data));\n\n return [...parents, ...childParents];\n};\n\nfunction pathToElement(data: any, targetId: any) {\n const path: string[] = [];\n\n if (data != null && data.length > 0) {\n for (let i = 0; i !== data.length; ++i) {\n const item = data[i];\n if (item.id === targetId) {\n path.push(item.id);\n break;\n }\n\n const subPaths = pathToElement(item.data, targetId);\n if (subPaths.length > 0) {\n path.push(item.id);\n path.push(...subPaths);\n break;\n }\n }\n }\n\n return path;\n}\n\nexport const HvVerticalNavigationTree = (\n props: HvVerticalNavigationTreeProps,\n) => {\n const {\n id,\n className,\n classes: classesProp,\n data,\n mode = \"navigation\",\n collapsible = false,\n expanded: expandedProp,\n defaultExpanded,\n onToggle,\n selected: selectedProp,\n defaultSelected,\n onChange,\n sliderForwardButtonAriaLabel = \"Navigate to submenu\",\n ...others\n } = useDefaultProps(\"HvVerticalNavigationTree\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\n const [selected, setSelected] = useControlled(selectedProp, defaultSelected);\n const [expanded, setExpanded] = useControlled(expandedProp, () => {\n if (defaultExpanded === true) {\n // all parent nodes will be expanded by default\n return getAllParents(data).map((item) => item.id);\n }\n\n if (defaultExpanded === false) {\n // all parent nodes will be collapsed by default\n return [];\n }\n\n if (defaultExpanded == null) {\n if (selected != null) {\n // the path to the selected node will be expanded (default behaviour)\n const path = pathToElement(data, selected);\n return path.slice(0, -1);\n }\n\n // nothing is expanded\n return [];\n }\n\n return defaultExpanded;\n });\n\n const {\n isOpen,\n useIcons,\n slider,\n\n parentItem,\n setParentItem,\n withParentData,\n navigateToChildHandler,\n\n setParentData,\n setParentSelected,\n } = useContext(VerticalNavigationContext);\n\n const [navigationPopup, setNavigationPopup] = useState<{\n // This value is needed to guarantee that the NavigationPopup is fully re-rendered with keeping any previous values\n uniqueKey: string;\n anchorEl: HTMLElement | null;\n fixedMode: boolean;\n data: NavigationData[];\n } | null>(null);\n\n const handleChange = useCallback(\n (\n event:\n | React.MouseEvent<HTMLLIElement>\n | React.KeyboardEvent<HTMLUListElement>,\n selectedId: string | string[],\n selectedItem: NavigationData,\n ) => {\n if (useIcons && !isOpen && selectedItem.data) {\n const currentEventTarget = event.currentTarget;\n setNavigationPopup((prevState) => {\n // We want to close the popup in case the clicked element is the same as the previous one\n return prevState?.anchorEl === currentEventTarget\n ? null\n : {\n uniqueKey: uniqueId(),\n anchorEl: currentEventTarget,\n fixedMode: true,\n data: selectedItem.data as NavigationData[],\n };\n });\n\n // We need this stopPropagation or else the Popup will close due to the clickaway being triggered\n event.stopPropagation();\n } else {\n setSelected(selectedId as string);\n setExpanded((prevState) => {\n if (!isOpen) {\n return [...prevState, ...pathToElement(data, selectedId)];\n }\n return [...prevState];\n });\n setNavigationPopup(null);\n onChange?.(event, selectedItem);\n }\n },\n [onChange, setSelected, setExpanded, isOpen, useIcons, data],\n );\n\n const treeViewItemMouseEnterHandler = useCallback(\n (event: any, item: any) => {\n const isCollapsed = useIcons && !isOpen;\n\n if (isCollapsed && item.data && !navigationPopup?.fixedMode) {\n const currentEventTarget = event.currentTarget;\n\n setNavigationPopup?.({\n uniqueKey: uniqueId(),\n anchorEl: currentEventTarget,\n fixedMode: false,\n data: item.data,\n });\n } else if (isCollapsed && !item.data && !navigationPopup?.fixedMode) {\n setNavigationPopup(null);\n }\n },\n [isOpen, useIcons, navigationPopup],\n );\n\n const handleToggle = useCallback(\n (event: React.KeyboardEvent<HTMLUListElement>, newExpanded: string[]) => {\n setExpanded(newExpanded);\n onToggle?.(event, newExpanded);\n },\n [onToggle, setExpanded],\n );\n\n const children = useMemo(\n () =>\n data &&\n createListHierarchy(\n data,\n id,\n classes,\n treeViewItemMouseEnterHandler,\n navigationPopup?.fixedMode,\n ),\n [classes, data, id, navigationPopup, treeViewItemMouseEnterHandler],\n );\n\n useEffect(() => {\n if (!isOpen) {\n setNavigationPopup?.(null);\n }\n }, [isOpen]);\n\n useEffect(() => {\n if (setParentSelected) setParentSelected(selected);\n }, [selected, setSelected, setParentSelected]);\n\n useEffect(() => {\n if (setParentData) setParentData(data);\n }, [data, setParentData]);\n\n useEffect(() => {\n if (\n withParentData &&\n selected &&\n setParentItem &&\n getParentItemById(withParentData, selected)\n ) {\n setParentItem(getParentItemById(withParentData, selected));\n }\n }, [withParentData, selected, setParentItem]);\n\n const navigateToTargetHandler: HvVerticalNavigationSliderProps[\"onNavigateToTarget\"] =\n (event, selectedItem) => handleChange(event, selectedItem.id, selectedItem);\n\n const handleNavigationPopupClose = () => setNavigationPopup(null);\n\n const handleStyledNavMouseLeave = () => {\n if (useIcons && !isOpen && !navigationPopup?.fixedMode) {\n setNavigationPopup(null);\n }\n };\n\n const handleNavigationPopupMouseLeave = () => {\n if (!navigationPopup?.fixedMode) {\n handleNavigationPopupClose();\n }\n };\n\n const handleNavigationPopupChange: HvVerticalNavigationTreeProps[\"onChange\"] =\n (event, selectedItem) => {\n handleChange(event, selectedItem.id, selectedItem);\n };\n\n return (\n <nav\n id={id}\n className={cx(\n classes.root,\n { [classes.collapsed]: !isOpen && !useIcons },\n className,\n )}\n onMouseLeave={handleStyledNavMouseLeave}\n {...others}\n >\n {slider ? (\n <HvVerticalNavigationSlider\n data={parentItem.data || withParentData}\n selected={selected}\n onNavigateToTarget={navigateToTargetHandler}\n onNavigateToChild={navigateToChildHandler}\n forwardButtonAriaLabel={sliderForwardButtonAriaLabel}\n />\n ) : (\n <HvVerticalNavigationTreeView\n id={setId(id, \"tree\")}\n className={classes.list}\n selectable\n mode={mode}\n collapsible={collapsible}\n selected={selected}\n onChange={handleChange}\n expanded={expanded}\n onToggle={handleToggle}\n >\n {useIcons && !isOpen && navigationPopup && (\n <NavigationPopupContainer\n anchorEl={navigationPopup.anchorEl}\n onClose={handleNavigationPopupClose}\n key={navigationPopup.uniqueKey}\n className={classes.navigationPopup}\n >\n <HvVerticalNavigationTree\n className={classes.popup}\n id={setId(id, \"navigation-popup-tree\")}\n collapsible\n defaultExpanded\n selected={selected}\n data={navigationPopup.data}\n onChange={handleNavigationPopupChange}\n onMouseLeave={handleNavigationPopupMouseLeave}\n />\n </NavigationPopupContainer>\n )}\n {children}\n </HvVerticalNavigationTreeView>\n )}\n </nav>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Navigation.styles.js","sources":["../../../../src/VerticalNavigation/Navigation/Navigation.styles.tsx"],"sourcesContent":["import { createClasses } from \"@hitachivantara/uikit-react-utils\";\n\nexport const { staticClasses, useClasses } = createClasses(\n \"HvVerticalNavigationTree\",\n {\n root: {\n display: \"block\",\n overflowY: \"auto\",\n },\n list: {},\n listItem: {},\n collapsed: {\n display: \"none\",\n },\n popup: {\n boxShadow: \"inset 5px 0 5px -3px rgb(65 65 65 / 12%)\",\n },\n navigationPopup: {\n boxShadow: \"inset 5px 0 5px -3px rgb(65 65 65 / 12%)\",\n },\n },\n);\n"],"names":[],"mappings":";AAEa,MAAA,EAAE,eAAe,WAAA,IAAe;AAAA,EAC3C;AAAA,EACA;AAAA,IACE,MAAM;AAAA,MACJ,SAAS;AAAA,MACT,WAAW;AAAA,IACb;AAAA,IACA,MAAM,CAAC;AAAA,IACP,UAAU,CAAC;AAAA,IACX,WAAW;AAAA,MACT,SAAS;AAAA,IACX;AAAA,IACA,OAAO;AAAA,MACL,WAAW;AAAA,IACb;AAAA,IACA,iBAAiB;AAAA,MACf,WAAW;AAAA,IACb;AAAA,EACF;AACF;"}
1
+ {"version":3,"file":"Navigation.styles.js","sources":["../../../../src/VerticalNavigation/Navigation/Navigation.styles.tsx"],"sourcesContent":["import { createClasses } from \"@hitachivantara/uikit-react-utils\";\n\nexport const { staticClasses, useClasses } = createClasses(\n \"HvVerticalNavigationTree\",\n {\n root: {\n display: \"block\",\n overflowY: \"auto\",\n },\n list: {},\n listItem: {},\n collapsed: {\n display: \"none\",\n },\n popup: {\n boxShadow: \"inset 5px 0 5px -3px rgb(65 65 65 / 12%)\",\n },\n navigationPopup: {\n boxShadow: \"inset 5px 0 5px -3px rgb(65 65 65 / 12%)\",\n },\n },\n);\n"],"names":[],"mappings":";AAEa,MAAA,EAAE,eAAe,WAAA,IAAe;AAAA,EAC3C;AAAA,EACA;AAAA,IACE,MAAM;AAAA,MACJ,SAAS;AAAA,MACT,WAAW;AAAA,IACb;AAAA,IACA,MAAM,CAAC;AAAA,IACP,UAAU,CAAC;AAAA,IACX,WAAW;AAAA,MACT,SAAS;AAAA,IACX;AAAA,IACA,OAAO;AAAA,MACL,WAAW;AAAA,IACb;AAAA,IACA,iBAAiB;AAAA,MACf,WAAW;AAAA,IAAA;AAAA,EACb;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationPopup.styles.js","sources":["../../../../src/VerticalNavigation/NavigationPopup/NavigationPopup.styles.tsx"],"sourcesContent":["import { createClasses } from \"@hitachivantara/uikit-react-utils\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nexport const { staticClasses, useClasses } = createClasses(\n \"HvVerticalNavigationPopup\",\n {\n popup: {},\n container: {\n marginLeft: theme.spacing(\"xs\"),\n },\n popper: {\n zIndex: theme.zIndices.popover,\n },\n },\n);\n"],"names":[],"mappings":";;AAGa,MAAA,EAAE,eAAe,WAAA,IAAe;AAAA,EAC3C;AAAA,EACA;AAAA,IACE,OAAO,CAAC;AAAA,IACR,WAAW;AAAA,MACT,YAAY,MAAM,QAAQ,IAAI;AAAA,IAChC;AAAA,IACA,QAAQ;AAAA,MACN,QAAQ,MAAM,SAAS;AAAA,IACzB;AAAA,EACF;AACF;"}
1
+ {"version":3,"file":"NavigationPopup.styles.js","sources":["../../../../src/VerticalNavigation/NavigationPopup/NavigationPopup.styles.tsx"],"sourcesContent":["import { createClasses } from \"@hitachivantara/uikit-react-utils\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nexport const { staticClasses, useClasses } = createClasses(\n \"HvVerticalNavigationPopup\",\n {\n popup: {},\n container: {\n marginLeft: theme.spacing(\"xs\"),\n },\n popper: {\n zIndex: theme.zIndices.popover,\n },\n },\n);\n"],"names":[],"mappings":";;AAGa,MAAA,EAAE,eAAe,WAAA,IAAe;AAAA,EAC3C;AAAA,EACA;AAAA,IACE,OAAO,CAAC;AAAA,IACR,WAAW;AAAA,MACT,YAAY,MAAM,QAAQ,IAAI;AAAA,IAChC;AAAA,IACA,QAAQ;AAAA,MACN,QAAQ,MAAM,SAAS;AAAA,IAAA;AAAA,EACzB;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationPopupContainer.js","sources":["../../../../src/VerticalNavigation/NavigationPopup/NavigationPopupContainer.tsx"],"sourcesContent":["import { Popper } from \"@mui/base/Popper\";\nimport ClickAwayListener from \"@mui/material/ClickAwayListener\";\nimport { useTheme, type ExtractNames } from \"@hitachivantara/uikit-react-utils\";\n\nimport { HvBaseProps } from \"../../types/generic\";\nimport { getContainerElement } from \"../../utils/document\";\nimport { HvVerticalNavigation } from \"../VerticalNavigation\";\nimport { staticClasses, useClasses } from \"./NavigationPopup.styles\";\n\nexport { staticClasses as verticalNavigationPopupClasses };\n\nexport type HvVerticalNavigationPopupClasses = ExtractNames<typeof useClasses>;\n\nexport interface NavigationPopupContainerProps extends HvBaseProps {\n anchorEl?: HTMLElement | null;\n onClose?: () => void;\n classes?: HvVerticalNavigationPopupClasses;\n}\n\nexport const NavigationPopupContainer = ({\n anchorEl,\n onClose,\n children,\n classes: classesProp,\n className,\n ...others\n}: NavigationPopupContainerProps) => {\n const { classes, cx } = useClasses(classesProp);\n\n const { rootId } = useTheme();\n\n const handleClickAway = () => onClose?.();\n\n return (\n <Popper\n open\n anchorEl={anchorEl}\n placement=\"right-start\"\n container={getContainerElement(rootId)}\n className={cx(classes.popper, classes.popup, className)}\n {...others}\n >\n <ClickAwayListener onClickAway={handleClickAway}>\n <div className={classes.container}>\n <HvVerticalNavigation open useIcons>\n {children}\n </HvVerticalNavigation>\n </div>\n </ClickAwayListener>\n </Popper>\n );\n};\n"],"names":[],"mappings":";;;;;;;;AAmBO,MAAM,2BAA2B,CAAC;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS;AAAA,EACT;AAAA,EACA,GAAG;AACL,MAAqC;AACnC,QAAM,EAAE,SAAS,GAAG,IAAI,WAAW,WAAW;AAExC,QAAA,EAAE,WAAW;AAEb,QAAA,kBAAkB,MAAM;AAG5B,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAI;AAAA,MACJ;AAAA,MACA,WAAU;AAAA,MACV,WAAW,oBAAoB,MAAM;AAAA,MACrC,WAAW,GAAG,QAAQ,QAAQ,QAAQ,OAAO,SAAS;AAAA,MACrD,GAAG;AAAA,MAEJ,8BAAC,mBAAkB,EAAA,aAAa,iBAC9B,UAAA,oBAAC,SAAI,WAAW,QAAQ,WACtB,UAAA,oBAAC,wBAAqB,MAAI,MAAC,UAAQ,MAChC,UACH,GACF,EACF,CAAA;AAAA,IAAA;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"NavigationPopupContainer.js","sources":["../../../../src/VerticalNavigation/NavigationPopup/NavigationPopupContainer.tsx"],"sourcesContent":["import { Popper } from \"@mui/base/Popper\";\nimport ClickAwayListener from \"@mui/material/ClickAwayListener\";\nimport { useTheme, type ExtractNames } from \"@hitachivantara/uikit-react-utils\";\n\nimport { HvBaseProps } from \"../../types/generic\";\nimport { getContainerElement } from \"../../utils/document\";\nimport { HvVerticalNavigation } from \"../VerticalNavigation\";\nimport { staticClasses, useClasses } from \"./NavigationPopup.styles\";\n\nexport { staticClasses as verticalNavigationPopupClasses };\n\nexport type HvVerticalNavigationPopupClasses = ExtractNames<typeof useClasses>;\n\nexport interface NavigationPopupContainerProps extends HvBaseProps {\n anchorEl?: HTMLElement | null;\n onClose?: () => void;\n classes?: HvVerticalNavigationPopupClasses;\n}\n\nexport const NavigationPopupContainer = ({\n anchorEl,\n onClose,\n children,\n classes: classesProp,\n className,\n ...others\n}: NavigationPopupContainerProps) => {\n const { classes, cx } = useClasses(classesProp);\n\n const { rootId } = useTheme();\n\n const handleClickAway = () => onClose?.();\n\n return (\n <Popper\n open\n anchorEl={anchorEl}\n placement=\"right-start\"\n container={getContainerElement(rootId)}\n className={cx(classes.popper, classes.popup, className)}\n {...others}\n >\n <ClickAwayListener onClickAway={handleClickAway}>\n <div className={classes.container}>\n <HvVerticalNavigation open useIcons>\n {children}\n </HvVerticalNavigation>\n </div>\n </ClickAwayListener>\n </Popper>\n );\n};\n"],"names":[],"mappings":";;;;;;;;AAmBO,MAAM,2BAA2B,CAAC;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS;AAAA,EACT;AAAA,EACA,GAAG;AACL,MAAqC;AACnC,QAAM,EAAE,SAAS,OAAO,WAAW,WAAW;AAExC,QAAA,EAAE,OAAO,IAAI,SAAS;AAEtB,QAAA,kBAAkB,MAAM,UAAU;AAGtC,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAI;AAAA,MACJ;AAAA,MACA,WAAU;AAAA,MACV,WAAW,oBAAoB,MAAM;AAAA,MACrC,WAAW,GAAG,QAAQ,QAAQ,QAAQ,OAAO,SAAS;AAAA,MACrD,GAAG;AAAA,MAEJ,8BAAC,mBAAkB,EAAA,aAAa,iBAC9B,UAAA,oBAAC,SAAI,WAAW,QAAQ,WACtB,UAAA,oBAAC,wBAAqB,MAAI,MAAC,UAAQ,MAChC,UACH,GACF,EACF,CAAA;AAAA,IAAA;AAAA,EACF;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationSlider.js","sources":["../../../../src/VerticalNavigation/NavigationSlider/NavigationSlider.tsx"],"sourcesContent":["import { DropRightXS } from \"@hitachivantara/uikit-react-icons\";\nimport {\n useDefaultProps,\n type ExtractNames,\n} from \"@hitachivantara/uikit-react-utils\";\n\nimport { HvButton } from \"../../Button\";\nimport {\n HvListContainer,\n HvListContainerProps,\n HvListItem,\n} from \"../../ListContainer\";\nimport { HvOverflowTooltip } from \"../../OverflowTooltip\";\nimport { NavigationData } from \"../VerticalNavigationContext\";\nimport { staticClasses, useClasses } from \"./NavigationSlider.styles\";\n\nexport { staticClasses as verticalNavigationSliderClasses };\n\nexport type HvVerticalNavigationSliderClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvVerticalNavigationSliderProps\n extends Omit<HvListContainerProps, \"classes\"> {\n /** A Jss Object used to override or extend the styles applied. */\n classes?: HvVerticalNavigationSliderClasses;\n /**\n * An array containing the data for each menu item.\n *\n * id - the id to be applied to the root element.\n * label - the label to be rendered on the menu item.\n * icon - the icon react element\n * data - sub-menu items\n * href - the url used for navigation.\n * target - the behavior when opening an url.\n */\n data?: NavigationData[];\n /** The selected item id. */\n selected?: string;\n /** Triggered when the item is clicked. */\n onNavigateToTarget?: (\n event: React.MouseEvent<HTMLLIElement>,\n item: NavigationData,\n ) => void;\n /** Triggered when the navigate to child button is clicked. */\n onNavigateToChild?: (\n event: React.MouseEvent<HTMLButtonElement>,\n item: NavigationData,\n ) => void;\n /** Aria label to apply to the navigate to submenu button on the list items. */\n forwardButtonAriaLabel?: string;\n}\n\nexport const HvVerticalNavigationSlider = (\n props: HvVerticalNavigationSliderProps,\n) => {\n const {\n className,\n classes: classesProp,\n data,\n selected,\n onNavigateToTarget,\n onNavigateToChild,\n forwardButtonAriaLabel = \"Navigate to submenu\",\n ...others\n } = useDefaultProps(\"HvVerticalNavigationSlider\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\n return (\n <HvListContainer\n interactive\n className={cx(classes.listContainer, className)}\n {...others}\n >\n {data?.map((item) => (\n <HvListItem\n key={item.id}\n classes={{\n root: classes.root,\n selected: classes.listItemSelected,\n focus: classes.listItemFocus,\n disabled: classes.listItemDisabled,\n }}\n onClick={(event) => {\n onNavigateToTarget?.(event, item);\n }}\n aria-label={item.label}\n aria-current={\n selected === item.id ? (item.href ? \"page\" : true) : undefined\n }\n selected={selected === item.id}\n startAdornment={item.icon ? <div>{item.icon}</div> : undefined}\n endAdornment={\n item.data && item.data.length > 0 ? (\n <HvButton\n icon\n onClick={(event) => {\n onNavigateToChild?.(event, item);\n }}\n className={classes.forwardButton}\n aria-label={forwardButtonAriaLabel}\n >\n <DropRightXS color=\"currentcolor\" />\n </HvButton>\n ) : undefined\n }\n >\n <HvOverflowTooltip data={item.label} />\n </HvListItem>\n ))}\n </HvListContainer>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;AAmDa,MAAA,6BAA6B,CACxC,UACG;AACG,QAAA;AAAA,IACJ;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,yBAAyB;AAAA,IACzB,GAAG;AAAA,EAAA,IACD,gBAAgB,8BAA8B,KAAK;AAEvD,QAAM,EAAE,SAAS,GAAG,IAAI,WAAW,WAAW;AAG5C,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAW;AAAA,MACX,WAAW,GAAG,QAAQ,eAAe,SAAS;AAAA,MAC7C,GAAG;AAAA,MAEH,UAAA,MAAM,IAAI,CAAC,SACV;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC,SAAS;AAAA,YACP,MAAM,QAAQ;AAAA,YACd,UAAU,QAAQ;AAAA,YAClB,OAAO,QAAQ;AAAA,YACf,UAAU,QAAQ;AAAA,UACpB;AAAA,UACA,SAAS,CAAC,UAAU;AAClB,iCAAqB,OAAO,IAAI;AAAA,UAClC;AAAA,UACA,cAAY,KAAK;AAAA,UACjB,gBACE,aAAa,KAAK,KAAM,KAAK,OAAO,SAAS,OAAQ;AAAA,UAEvD,UAAU,aAAa,KAAK;AAAA,UAC5B,gBAAgB,KAAK,2BAAQ,OAAK,EAAA,UAAA,KAAK,MAAK,IAAS;AAAA,UACrD,cACE,KAAK,QAAQ,KAAK,KAAK,SAAS,IAC9B;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,MAAI;AAAA,cACJ,SAAS,CAAC,UAAU;AAClB,oCAAoB,OAAO,IAAI;AAAA,cACjC;AAAA,cACA,WAAW,QAAQ;AAAA,cACnB,cAAY;AAAA,cAEZ,UAAA,oBAAC,aAAY,EAAA,OAAM,eAAe,CAAA;AAAA,YAAA;AAAA,UAElC,IAAA;AAAA,UAGN,UAAC,oBAAA,mBAAA,EAAkB,MAAM,KAAK,OAAO;AAAA,QAAA;AAAA,QA/BhC,KAAK;AAAA,MAAA,CAiCb;AAAA,IAAA;AAAA,EAAA;AAGP;"}
1
+ {"version":3,"file":"NavigationSlider.js","sources":["../../../../src/VerticalNavigation/NavigationSlider/NavigationSlider.tsx"],"sourcesContent":["import { DropRightXS } from \"@hitachivantara/uikit-react-icons\";\nimport {\n useDefaultProps,\n type ExtractNames,\n} from \"@hitachivantara/uikit-react-utils\";\n\nimport { HvButton } from \"../../Button\";\nimport {\n HvListContainer,\n HvListContainerProps,\n HvListItem,\n} from \"../../ListContainer\";\nimport { HvOverflowTooltip } from \"../../OverflowTooltip\";\nimport { NavigationData } from \"../VerticalNavigationContext\";\nimport { staticClasses, useClasses } from \"./NavigationSlider.styles\";\n\nexport { staticClasses as verticalNavigationSliderClasses };\n\nexport type HvVerticalNavigationSliderClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvVerticalNavigationSliderProps\n extends Omit<HvListContainerProps, \"classes\"> {\n /** A Jss Object used to override or extend the styles applied. */\n classes?: HvVerticalNavigationSliderClasses;\n /**\n * An array containing the data for each menu item.\n *\n * id - the id to be applied to the root element.\n * label - the label to be rendered on the menu item.\n * icon - the icon react element\n * data - sub-menu items\n * href - the url used for navigation.\n * target - the behavior when opening an url.\n */\n data?: NavigationData[];\n /** The selected item id. */\n selected?: string;\n /** Triggered when the item is clicked. */\n onNavigateToTarget?: (\n event: React.MouseEvent<HTMLLIElement>,\n item: NavigationData,\n ) => void;\n /** Triggered when the navigate to child button is clicked. */\n onNavigateToChild?: (\n event: React.MouseEvent<HTMLButtonElement>,\n item: NavigationData,\n ) => void;\n /** Aria label to apply to the navigate to submenu button on the list items. */\n forwardButtonAriaLabel?: string;\n}\n\nexport const HvVerticalNavigationSlider = (\n props: HvVerticalNavigationSliderProps,\n) => {\n const {\n className,\n classes: classesProp,\n data,\n selected,\n onNavigateToTarget,\n onNavigateToChild,\n forwardButtonAriaLabel = \"Navigate to submenu\",\n ...others\n } = useDefaultProps(\"HvVerticalNavigationSlider\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\n return (\n <HvListContainer\n interactive\n className={cx(classes.listContainer, className)}\n {...others}\n >\n {data?.map((item) => (\n <HvListItem\n key={item.id}\n classes={{\n root: classes.root,\n selected: classes.listItemSelected,\n focus: classes.listItemFocus,\n disabled: classes.listItemDisabled,\n }}\n onClick={(event) => {\n onNavigateToTarget?.(event, item);\n }}\n aria-label={item.label}\n aria-current={\n selected === item.id ? (item.href ? \"page\" : true) : undefined\n }\n selected={selected === item.id}\n startAdornment={item.icon ? <div>{item.icon}</div> : undefined}\n endAdornment={\n item.data && item.data.length > 0 ? (\n <HvButton\n icon\n onClick={(event) => {\n onNavigateToChild?.(event, item);\n }}\n className={classes.forwardButton}\n aria-label={forwardButtonAriaLabel}\n >\n <DropRightXS color=\"currentcolor\" />\n </HvButton>\n ) : undefined\n }\n >\n <HvOverflowTooltip data={item.label} />\n </HvListItem>\n ))}\n </HvListContainer>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;AAmDa,MAAA,6BAA6B,CACxC,UACG;AACG,QAAA;AAAA,IACJ;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,yBAAyB;AAAA,IACzB,GAAG;AAAA,EAAA,IACD,gBAAgB,8BAA8B,KAAK;AAEvD,QAAM,EAAE,SAAS,OAAO,WAAW,WAAW;AAG5C,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAW;AAAA,MACX,WAAW,GAAG,QAAQ,eAAe,SAAS;AAAA,MAC7C,GAAG;AAAA,MAEH,UAAA,MAAM,IAAI,CAAC,SACV;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC,SAAS;AAAA,YACP,MAAM,QAAQ;AAAA,YACd,UAAU,QAAQ;AAAA,YAClB,OAAO,QAAQ;AAAA,YACf,UAAU,QAAQ;AAAA,UACpB;AAAA,UACA,SAAS,CAAC,UAAU;AAClB,iCAAqB,OAAO,IAAI;AAAA,UAClC;AAAA,UACA,cAAY,KAAK;AAAA,UACjB,gBACE,aAAa,KAAK,KAAM,KAAK,OAAO,SAAS,OAAQ;AAAA,UAEvD,UAAU,aAAa,KAAK;AAAA,UAC5B,gBAAgB,KAAK,2BAAQ,OAAK,EAAA,UAAA,KAAK,MAAK,IAAS;AAAA,UACrD,cACE,KAAK,QAAQ,KAAK,KAAK,SAAS,IAC9B;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,MAAI;AAAA,cACJ,SAAS,CAAC,UAAU;AAClB,oCAAoB,OAAO,IAAI;AAAA,cACjC;AAAA,cACA,WAAW,QAAQ;AAAA,cACnB,cAAY;AAAA,cAEZ,UAAA,oBAAC,aAAY,EAAA,OAAM,eAAe,CAAA;AAAA,YAAA;AAAA,UAElC,IAAA;AAAA,UAGN,UAAC,oBAAA,mBAAA,EAAkB,MAAM,KAAK,MAAO,CAAA;AAAA,QAAA;AAAA,QA/BhC,KAAK;AAAA,MAiCb,CAAA;AAAA,IAAA;AAAA,EACH;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationSlider.styles.js","sources":["../../../../src/VerticalNavigation/NavigationSlider/NavigationSlider.styles.tsx"],"sourcesContent":["import { createClasses } from \"@hitachivantara/uikit-react-utils\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nexport const { staticClasses, useClasses } = createClasses(\n \"HvVerticalNavigationSlider\",\n {\n root: {\n display: \"flex\",\n alignItems: \"center\",\n borderLeft: `4px solid transparent`,\n minHeight: \"48px\",\n color: \"inherit\",\n marginBottom: \"8px\",\n \"& > button\": {\n marginLeft: \"auto\",\n },\n\n \"& .HvListItem-startAdornment .color0\": {\n fill: \"currentColor\",\n },\n },\n listItemSelected: {\n background: theme.colors.atmo3,\n borderLeft: `4px solid ${theme.colors.secondary}`,\n },\n listItemFocus: {\n background: theme.colors.atmo3,\n },\n forwardButton: {\n color: \"inherit\",\n },\n listContainer: {},\n listItemDisabled: {},\n },\n);\n"],"names":[],"mappings":";;AAGa,MAAA,EAAE,eAAe,WAAA,IAAe;AAAA,EAC3C;AAAA,EACA;AAAA,IACE,MAAM;AAAA,MACJ,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,OAAO;AAAA,MACP,cAAc;AAAA,MACd,cAAc;AAAA,QACZ,YAAY;AAAA,MACd;AAAA,MAEA,wCAAwC;AAAA,QACtC,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA,kBAAkB;AAAA,MAChB,YAAY,MAAM,OAAO;AAAA,MACzB,YAAY,aAAa,MAAM,OAAO,SAAS;AAAA,IACjD;AAAA,IACA,eAAe;AAAA,MACb,YAAY,MAAM,OAAO;AAAA,IAC3B;AAAA,IACA,eAAe;AAAA,MACb,OAAO;AAAA,IACT;AAAA,IACA,eAAe,CAAC;AAAA,IAChB,kBAAkB,CAAC;AAAA,EACrB;AACF;"}
1
+ {"version":3,"file":"NavigationSlider.styles.js","sources":["../../../../src/VerticalNavigation/NavigationSlider/NavigationSlider.styles.tsx"],"sourcesContent":["import { createClasses } from \"@hitachivantara/uikit-react-utils\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nexport const { staticClasses, useClasses } = createClasses(\n \"HvVerticalNavigationSlider\",\n {\n root: {\n display: \"flex\",\n alignItems: \"center\",\n borderLeft: `4px solid transparent`,\n minHeight: \"48px\",\n color: \"inherit\",\n marginBottom: \"8px\",\n \"& > button\": {\n marginLeft: \"auto\",\n },\n\n \"& .HvListItem-startAdornment .color0\": {\n fill: \"currentColor\",\n },\n },\n listItemSelected: {\n background: theme.colors.atmo3,\n borderLeft: `4px solid ${theme.colors.secondary}`,\n },\n listItemFocus: {\n background: theme.colors.atmo3,\n },\n forwardButton: {\n color: \"inherit\",\n },\n listContainer: {},\n listItemDisabled: {},\n },\n);\n"],"names":[],"mappings":";;AAGa,MAAA,EAAE,eAAe,WAAA,IAAe;AAAA,EAC3C;AAAA,EACA;AAAA,IACE,MAAM;AAAA,MACJ,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,OAAO;AAAA,MACP,cAAc;AAAA,MACd,cAAc;AAAA,QACZ,YAAY;AAAA,MACd;AAAA,MAEA,wCAAwC;AAAA,QACtC,MAAM;AAAA,MAAA;AAAA,IAEV;AAAA,IACA,kBAAkB;AAAA,MAChB,YAAY,MAAM,OAAO;AAAA,MACzB,YAAY,aAAa,MAAM,OAAO,SAAS;AAAA,IACjD;AAAA,IACA,eAAe;AAAA,MACb,YAAY,MAAM,OAAO;AAAA,IAC3B;AAAA,IACA,eAAe;AAAA,MACb,OAAO;AAAA,IACT;AAAA,IACA,eAAe,CAAC;AAAA,IAChB,kBAAkB,CAAA;AAAA,EAAC;AAEvB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../src/VerticalNavigation/NavigationSlider/utils.ts"],"sourcesContent":["/**\n * Recursively searches in a collection the first element where the property matches the specified value.\n *\n * @param collection - Collection where the search will be performed\n * @param childrenPropName - The children property name where the recursive search will be performed\n * @param propName - The name of the property to be used on the search\n * @param propValue - The value of the property to be used on the search\n * @returns The element that matches the requirement or null if none is found\n */\nconst searchInCollection = (\n collection: any,\n childrenPropName: any,\n propName: any,\n propValue: any,\n): any => {\n if (collection[propName] === propValue) {\n return collection;\n }\n\n const items = collection[childrenPropName] || collection;\n\n let foundItem = null;\n for (let index = 0; foundItem === null && index < items.length; index += 1) {\n foundItem = searchInCollection(\n items[index],\n childrenPropName,\n propName,\n propValue,\n );\n }\n return foundItem;\n};\n\n/**\n * Returns the navigation item with the specified id.\n *\n * @param navigationItems - The collection of navigation items.\n * @param navigationItemId - The id to be used on the search\n * @returns The navigation item with the specified id.\n */\nconst getNavigationItemById = (navigationItems: any, navigationItemId: any) => {\n return searchInCollection(navigationItems, \"data\", \"id\", navigationItemId);\n};\n\n/**\n * Returns the parent item for the received item id.\n *\n * @param navigationItems - The collection of navigation items.\n * @param navigationItemId - The id to be used on the search\n * @returns The parent navigation item.\n */\nconst getParentItemById = (navigationItems: any, navigationItemId: any) => {\n const parentId = getNavigationItemById(\n navigationItems,\n navigationItemId,\n )?.parent;\n return getNavigationItemById(navigationItems, parentId);\n};\n\n/**\n * Fills the data structure with the parent id on each one of the nodes.\n *\n * @param navigationItems - The collection of navigation items.\n * @param parentItemId - The parent id to be added.\n * @returns The structure now filled with the parent id.\n */\nconst fillDataWithParentId = (navigationItems: any, parentItemId?: any) => {\n return navigationItems.map((item: any) => {\n if (item?.data?.length > 0) {\n return {\n ...item,\n parent: parentItemId,\n data: fillDataWithParentId(item.data, item.id),\n };\n }\n return { ...item, parent: parentItemId };\n });\n};\n\nexport { getNavigationItemById, getParentItemById, fillDataWithParentId };\n"],"names":[],"mappings":"AASA,MAAM,qBAAqB,CACzB,YACA,kBACA,UACA,cACQ;AACJ,MAAA,WAAW,QAAQ,MAAM,WAAW;AAC/B,WAAA;AAAA,EACT;AAEM,QAAA,QAAQ,WAAW,gBAAgB,KAAK;AAE9C,MAAI,YAAY;AACP,WAAA,QAAQ,GAAG,cAAc,QAAQ,QAAQ,MAAM,QAAQ,SAAS,GAAG;AAC9D,gBAAA;AAAA,MACV,MAAM,KAAK;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EAEJ;AACO,SAAA;AACT;AASM,MAAA,wBAAwB,CAAC,iBAAsB,qBAA0B;AAC7E,SAAO,mBAAmB,iBAAiB,QAAQ,MAAM,gBAAgB;AAC3E;AASM,MAAA,oBAAoB,CAAC,iBAAsB,qBAA0B;AACzE,QAAM,WAAW;AAAA,IACf;AAAA,IACA;AAAA,EACC,GAAA;AACI,SAAA,sBAAsB,iBAAiB,QAAQ;AACxD;AASM,MAAA,uBAAuB,CAAC,iBAAsB,iBAAuB;AAClE,SAAA,gBAAgB,IAAI,CAAC,SAAc;AACpC,QAAA,MAAM,MAAM,SAAS,GAAG;AACnB,aAAA;AAAA,QACL,GAAG;AAAA,QACH,QAAQ;AAAA,QACR,MAAM,qBAAqB,KAAK,MAAM,KAAK,EAAE;AAAA,MAAA;AAAA,IAEjD;AACA,WAAO,EAAE,GAAG,MAAM,QAAQ,aAAa;AAAA,EAAA,CACxC;AACH;"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../src/VerticalNavigation/NavigationSlider/utils.ts"],"sourcesContent":["/**\n * Recursively searches in a collection the first element where the property matches the specified value.\n *\n * @param collection - Collection where the search will be performed\n * @param childrenPropName - The children property name where the recursive search will be performed\n * @param propName - The name of the property to be used on the search\n * @param propValue - The value of the property to be used on the search\n * @returns The element that matches the requirement or null if none is found\n */\nconst searchInCollection = (\n collection: any,\n childrenPropName: any,\n propName: any,\n propValue: any,\n): any => {\n if (collection[propName] === propValue) {\n return collection;\n }\n\n const items = collection[childrenPropName] || collection;\n\n let foundItem = null;\n for (let index = 0; foundItem === null && index < items.length; index += 1) {\n foundItem = searchInCollection(\n items[index],\n childrenPropName,\n propName,\n propValue,\n );\n }\n return foundItem;\n};\n\n/**\n * Returns the navigation item with the specified id.\n *\n * @param navigationItems - The collection of navigation items.\n * @param navigationItemId - The id to be used on the search\n * @returns The navigation item with the specified id.\n */\nconst getNavigationItemById = (navigationItems: any, navigationItemId: any) => {\n return searchInCollection(navigationItems, \"data\", \"id\", navigationItemId);\n};\n\n/**\n * Returns the parent item for the received item id.\n *\n * @param navigationItems - The collection of navigation items.\n * @param navigationItemId - The id to be used on the search\n * @returns The parent navigation item.\n */\nconst getParentItemById = (navigationItems: any, navigationItemId: any) => {\n const parentId = getNavigationItemById(\n navigationItems,\n navigationItemId,\n )?.parent;\n return getNavigationItemById(navigationItems, parentId);\n};\n\n/**\n * Fills the data structure with the parent id on each one of the nodes.\n *\n * @param navigationItems - The collection of navigation items.\n * @param parentItemId - The parent id to be added.\n * @returns The structure now filled with the parent id.\n */\nconst fillDataWithParentId = (navigationItems: any, parentItemId?: any) => {\n return navigationItems.map((item: any) => {\n if (item?.data?.length > 0) {\n return {\n ...item,\n parent: parentItemId,\n data: fillDataWithParentId(item.data, item.id),\n };\n }\n return { ...item, parent: parentItemId };\n });\n};\n\nexport { getNavigationItemById, getParentItemById, fillDataWithParentId };\n"],"names":[],"mappings":"AASA,MAAM,qBAAqB,CACzB,YACA,kBACA,UACA,cACQ;AACJ,MAAA,WAAW,QAAQ,MAAM,WAAW;AAC/B,WAAA;AAAA,EAAA;AAGH,QAAA,QAAQ,WAAW,gBAAgB,KAAK;AAE9C,MAAI,YAAY;AACP,WAAA,QAAQ,GAAG,cAAc,QAAQ,QAAQ,MAAM,QAAQ,SAAS,GAAG;AAC9D,gBAAA;AAAA,MACV,MAAM,KAAK;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EAAA;AAEK,SAAA;AACT;AASM,MAAA,wBAAwB,CAAC,iBAAsB,qBAA0B;AAC7E,SAAO,mBAAmB,iBAAiB,QAAQ,MAAM,gBAAgB;AAC3E;AASM,MAAA,oBAAoB,CAAC,iBAAsB,qBAA0B;AACzE,QAAM,WAAW;AAAA,IACf;AAAA,IACA;AAAA,EAAA,GACC;AACI,SAAA,sBAAsB,iBAAiB,QAAQ;AACxD;AASM,MAAA,uBAAuB,CAAC,iBAAsB,iBAAuB;AAClE,SAAA,gBAAgB,IAAI,CAAC,SAAc;AACpC,QAAA,MAAM,MAAM,SAAS,GAAG;AACnB,aAAA;AAAA,QACL,GAAG;AAAA,QACH,QAAQ;AAAA,QACR,MAAM,qBAAqB,KAAK,MAAM,KAAK,EAAE;AAAA,MAC/C;AAAA,IAAA;AAEF,WAAO,EAAE,GAAG,MAAM,QAAQ,aAAa;AAAA,EAAA,CACxC;AACH;"}