@hitachivantara/uikit-react-core 5.80.2 → 5.81.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (447) 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/InlineEditor/InlineEditor.cjs +13 -2
  10. package/dist/cjs/MultiButton/MultiButton.cjs +3 -4
  11. package/dist/cjs/MultiButton/MultiButton.styles.cjs +48 -109
  12. package/dist/cjs/Pagination/Pagination.styles.cjs +1 -1
  13. package/dist/cjs/Table/TableCell/TableCell.styles.cjs +2 -5
  14. package/dist/cjs/Table/TableHeader/TableHeader.cjs +40 -49
  15. package/dist/cjs/Table/TableHeader/TableHeader.styles.cjs +18 -20
  16. package/dist/cjs/Table/TableRow/TableRow.styles.cjs +7 -15
  17. package/dist/esm/Accordion/Accordion.js.map +1 -1
  18. package/dist/esm/Accordion/Accordion.styles.js.map +1 -1
  19. package/dist/esm/ActionBar/ActionBar.js.map +1 -1
  20. package/dist/esm/ActionBar/ActionBar.styles.js.map +1 -1
  21. package/dist/esm/ActionsGeneric/ActionsGeneric.js.map +1 -1
  22. package/dist/esm/ActionsGeneric/ActionsGeneric.styles.js.map +1 -1
  23. package/dist/esm/AppSwitcher/Action/Action.js.map +1 -1
  24. package/dist/esm/AppSwitcher/Action/Action.styles.js.map +1 -1
  25. package/dist/esm/AppSwitcher/AppSwitcher.js.map +1 -1
  26. package/dist/esm/AppSwitcher/AppSwitcher.styles.js.map +1 -1
  27. package/dist/esm/Avatar/Avatar.js.map +1 -1
  28. package/dist/esm/Avatar/Avatar.styles.js.map +1 -1
  29. package/dist/esm/AvatarGroup/AvatarGroup.js.map +1 -1
  30. package/dist/esm/AvatarGroup/AvatarGroup.styles.js.map +1 -1
  31. package/dist/esm/Badge/Badge.js.map +1 -1
  32. package/dist/esm/Badge/Badge.styles.js.map +1 -1
  33. package/dist/esm/Banner/Banner.js.map +1 -1
  34. package/dist/esm/Banner/Banner.styles.js.map +1 -1
  35. package/dist/esm/Banner/BannerContent/ActionContainer/ActionContainer.js.map +1 -1
  36. package/dist/esm/Banner/BannerContent/ActionContainer/ActionContainer.styles.js.map +1 -1
  37. package/dist/esm/Banner/BannerContent/BannerContent.js.map +1 -1
  38. package/dist/esm/Banner/BannerContent/BannerContent.styles.js.map +1 -1
  39. package/dist/esm/Banner/BannerContent/MessageContainer/MessageContainer.js.map +1 -1
  40. package/dist/esm/Banner/BannerContent/MessageContainer/MessageContainer.styles.js.map +1 -1
  41. package/dist/esm/BaseCheckBox/BaseCheckBox.js.map +1 -1
  42. package/dist/esm/BaseCheckBox/BaseCheckBox.styles.js.map +1 -1
  43. package/dist/esm/BaseCheckBox/icons.js.map +1 -1
  44. package/dist/esm/BaseDropdown/BaseDropdown.js +82 -163
  45. package/dist/esm/BaseDropdown/BaseDropdown.js.map +1 -1
  46. package/dist/esm/BaseDropdown/BaseDropdown.styles.js +2 -2
  47. package/dist/esm/BaseDropdown/BaseDropdown.styles.js.map +1 -1
  48. package/dist/esm/BaseDropdown/BaseDropdownPanel.js +80 -0
  49. package/dist/esm/BaseDropdown/BaseDropdownPanel.js.map +1 -0
  50. package/dist/esm/BaseDropdown/{BaseDropdownContext/BaseDropdownContext.js → context.js} +1 -1
  51. package/dist/esm/BaseDropdown/context.js.map +1 -0
  52. package/dist/esm/BaseInput/BaseInput.js.map +1 -1
  53. package/dist/esm/BaseInput/BaseInput.styles.js.map +1 -1
  54. package/dist/esm/BaseInput/validations.js.map +1 -1
  55. package/dist/esm/BaseRadio/BaseRadio.js.map +1 -1
  56. package/dist/esm/BaseRadio/BaseRadio.styles.js.map +1 -1
  57. package/dist/esm/BaseRadio/icons.js.map +1 -1
  58. package/dist/esm/BaseSwitch/BaseSwitch.js.map +1 -1
  59. package/dist/esm/BaseSwitch/BaseSwitch.styles.js.map +1 -1
  60. package/dist/esm/BreadCrumb/BreadCrumb.js.map +1 -1
  61. package/dist/esm/BreadCrumb/BreadCrumb.styles.js.map +1 -1
  62. package/dist/esm/BreadCrumb/Page/Page.js.map +1 -1
  63. package/dist/esm/BreadCrumb/Page/Page.styles.js.map +1 -1
  64. package/dist/esm/BreadCrumb/PathElement/PathElement.js.map +1 -1
  65. package/dist/esm/BreadCrumb/PathElement/PathElement.styles.js.map +1 -1
  66. package/dist/esm/BreadCrumb/utils.js.map +1 -1
  67. package/dist/esm/BulkActions/BulkActions.js.map +1 -1
  68. package/dist/esm/BulkActions/BulkActions.styles.js.map +1 -1
  69. package/dist/esm/Button/Button.js.map +1 -1
  70. package/dist/esm/Button/Button.styles.js +6 -2
  71. package/dist/esm/Button/Button.styles.js.map +1 -1
  72. package/dist/esm/ButtonBase/ButtonBase.js.map +1 -1
  73. package/dist/esm/ButtonBase/ButtonBase.styles.js.map +1 -1
  74. package/dist/esm/Calendar/Calendar.js.map +1 -1
  75. package/dist/esm/Calendar/Calendar.styles.js.map +1 -1
  76. package/dist/esm/Calendar/CalendarHeader/CalendarHeader.js.map +1 -1
  77. package/dist/esm/Calendar/CalendarHeader/CalendarHeader.styles.js.map +1 -1
  78. package/dist/esm/Calendar/CalendarNavigation/ComposedNavigation/ComposedNavigation.js.map +1 -1
  79. package/dist/esm/Calendar/CalendarNavigation/ComposedNavigation/ComposedNavigation.styles.js.map +1 -1
  80. package/dist/esm/Calendar/CalendarNavigation/MonthSelector/MonthSelector.js.map +1 -1
  81. package/dist/esm/Calendar/CalendarNavigation/MonthSelector/MonthSelector.styles.js.map +1 -1
  82. package/dist/esm/Calendar/CalendarNavigation/Navigation/Navigation.js.map +1 -1
  83. package/dist/esm/Calendar/CalendarNavigation/Navigation/Navigation.styles.js.map +1 -1
  84. package/dist/esm/Calendar/SingleCalendar/CalendarCell.js.map +1 -1
  85. package/dist/esm/Calendar/SingleCalendar/CalendarCell.styles.js.map +1 -1
  86. package/dist/esm/Calendar/SingleCalendar/SingleCalendar.js.map +1 -1
  87. package/dist/esm/Calendar/SingleCalendar/SingleCalendar.styles.js.map +1 -1
  88. package/dist/esm/Calendar/model.js.map +1 -1
  89. package/dist/esm/Calendar/utils.js.map +1 -1
  90. package/dist/esm/Card/Card.js.map +1 -1
  91. package/dist/esm/Card/Card.styles.js.map +1 -1
  92. package/dist/esm/Card/Content/Content.js.map +1 -1
  93. package/dist/esm/Card/Content/Content.styles.js.map +1 -1
  94. package/dist/esm/Card/Header/Header.js.map +1 -1
  95. package/dist/esm/Card/Header/Header.styles.js.map +1 -1
  96. package/dist/esm/Card/Media/Media.js.map +1 -1
  97. package/dist/esm/Card/Media/Media.styles.js.map +1 -1
  98. package/dist/esm/Carousel/Carousel.js.map +1 -1
  99. package/dist/esm/Carousel/Carousel.styles.js.map +1 -1
  100. package/dist/esm/Carousel/CarouselControls.js.map +1 -1
  101. package/dist/esm/Carousel/CarouselSlide/CarouselSlide.js.map +1 -1
  102. package/dist/esm/Carousel/CarouselSlide/CarouselSlide.styles.js.map +1 -1
  103. package/dist/esm/Carousel/CarouselThumbnails.js.map +1 -1
  104. package/dist/esm/CheckBox/CheckBox.js.map +1 -1
  105. package/dist/esm/CheckBox/CheckBox.styles.js.map +1 -1
  106. package/dist/esm/CheckBoxGroup/CheckBoxGroup.js.map +1 -1
  107. package/dist/esm/CheckBoxGroup/CheckBoxGroup.styles.js.map +1 -1
  108. package/dist/esm/ColorPicker/ColorPicker.js.map +1 -1
  109. package/dist/esm/ColorPicker/ColorPicker.styles.js.map +1 -1
  110. package/dist/esm/ColorPicker/Fields/Fields.js.map +1 -1
  111. package/dist/esm/ColorPicker/Fields/Fields.styles.js.map +1 -1
  112. package/dist/esm/ColorPicker/Picker/Picker.js.map +1 -1
  113. package/dist/esm/ColorPicker/Picker/Picker.styles.js.map +1 -1
  114. package/dist/esm/ColorPicker/PresetColors/PresetColors.js.map +1 -1
  115. package/dist/esm/ColorPicker/PresetColors/PresetColors.styles.js.map +1 -1
  116. package/dist/esm/ColorPicker/SavedColors/SavedColors.js.map +1 -1
  117. package/dist/esm/ColorPicker/SavedColors/SavedColors.styles.js.map +1 -1
  118. package/dist/esm/Container/Container.js.map +1 -1
  119. package/dist/esm/Container/Container.styles.js.map +1 -1
  120. package/dist/esm/Controls/Controls.js.map +1 -1
  121. package/dist/esm/Controls/Controls.styles.js.map +1 -1
  122. package/dist/esm/Controls/LeftControl/LeftControl.js.map +1 -1
  123. package/dist/esm/Controls/RightControl/RightControl.js.map +1 -1
  124. package/dist/esm/Controls/context/ControlsContext.js.map +1 -1
  125. package/dist/esm/DatePicker/DatePicker.js.map +1 -1
  126. package/dist/esm/DatePicker/DatePicker.styles.js.map +1 -1
  127. package/dist/esm/DatePicker/useVisibleDate.js.map +1 -1
  128. package/dist/esm/DatePicker/utils.js.map +1 -1
  129. package/dist/esm/Dialog/Actions/Actions.js.map +1 -1
  130. package/dist/esm/Dialog/Actions/Actions.styles.js.map +1 -1
  131. package/dist/esm/Dialog/Content/Content.js.map +1 -1
  132. package/dist/esm/Dialog/Content/Content.styles.js.map +1 -1
  133. package/dist/esm/Dialog/Dialog.js.map +1 -1
  134. package/dist/esm/Dialog/Dialog.styles.js.map +1 -1
  135. package/dist/esm/Dialog/Title/Title.js.map +1 -1
  136. package/dist/esm/Dialog/Title/Title.styles.js.map +1 -1
  137. package/dist/esm/Dialog/context.js.map +1 -1
  138. package/dist/esm/DotPagination/DotPagination.js.map +1 -1
  139. package/dist/esm/DotPagination/DotPagination.styles.js.map +1 -1
  140. package/dist/esm/Drawer/Drawer.js.map +1 -1
  141. package/dist/esm/Drawer/Drawer.styles.js.map +1 -1
  142. package/dist/esm/DropDownMenu/DropDownMenu.js +20 -27
  143. package/dist/esm/DropDownMenu/DropDownMenu.js.map +1 -1
  144. package/dist/esm/DropDownMenu/DropDownMenu.styles.js +15 -2
  145. package/dist/esm/DropDownMenu/DropDownMenu.styles.js.map +1 -1
  146. package/dist/esm/Dropdown/Dropdown.js.map +1 -1
  147. package/dist/esm/Dropdown/Dropdown.styles.js.map +1 -1
  148. package/dist/esm/Dropdown/List/List.js +6 -5
  149. package/dist/esm/Dropdown/List/List.js.map +1 -1
  150. package/dist/esm/Dropdown/List/List.styles.js.map +1 -1
  151. package/dist/esm/Dropdown/utils.js.map +1 -1
  152. package/dist/esm/DropdownButton/DropdownButton.js.map +1 -1
  153. package/dist/esm/DropdownButton/DropdownButton.styles.js.map +1 -1
  154. package/dist/esm/EmptyState/EmptyState.js.map +1 -1
  155. package/dist/esm/EmptyState/EmptyState.styles.js.map +1 -1
  156. package/dist/esm/FileUploader/DropZone/DropZone.js.map +1 -1
  157. package/dist/esm/FileUploader/DropZone/DropZone.styles.js.map +1 -1
  158. package/dist/esm/FileUploader/File/File.js.map +1 -1
  159. package/dist/esm/FileUploader/File/File.styles.js.map +1 -1
  160. package/dist/esm/FileUploader/FileList/FileList.js.map +1 -1
  161. package/dist/esm/FileUploader/FileList/FileList.styles.js.map +1 -1
  162. package/dist/esm/FileUploader/FileUploader.js.map +1 -1
  163. package/dist/esm/FileUploader/Preview/Preview.js.map +1 -1
  164. package/dist/esm/FileUploader/Preview/Preview.styles.js.map +1 -1
  165. package/dist/esm/FileUploader/utils.js.map +1 -1
  166. package/dist/esm/FilterGroup/Counter/Counter.js.map +1 -1
  167. package/dist/esm/FilterGroup/Counter/Counter.styles.js.map +1 -1
  168. package/dist/esm/FilterGroup/FilterContent/FilterContent.js.map +1 -1
  169. package/dist/esm/FilterGroup/FilterContent/FilterContent.styles.js.map +1 -1
  170. package/dist/esm/FilterGroup/FilterGroup.js.map +1 -1
  171. package/dist/esm/FilterGroup/FilterGroup.styles.js.map +1 -1
  172. package/dist/esm/FilterGroup/FilterGroupContext.js.map +1 -1
  173. package/dist/esm/FilterGroup/LeftPanel/LeftPanel.js.map +1 -1
  174. package/dist/esm/FilterGroup/LeftPanel/LeftPanel.styles.js.map +1 -1
  175. package/dist/esm/FilterGroup/RightPanel/RightPanel.js.map +1 -1
  176. package/dist/esm/FilterGroup/RightPanel/RightPanel.styles.js.map +1 -1
  177. package/dist/esm/Focus/Focus.js.map +1 -1
  178. package/dist/esm/Focus/Focus.styles.js.map +1 -1
  179. package/dist/esm/Focus/utils.js.map +1 -1
  180. package/dist/esm/Footer/Footer.js.map +1 -1
  181. package/dist/esm/Footer/Footer.styles.js.map +1 -1
  182. package/dist/esm/Forms/Adornment/Adornment.js.map +1 -1
  183. package/dist/esm/Forms/Adornment/Adornment.styles.js.map +1 -1
  184. package/dist/esm/Forms/CharCounter/CharCounter.js.map +1 -1
  185. package/dist/esm/Forms/FormElement/FormElement.js.map +1 -1
  186. package/dist/esm/Forms/FormElement/FormElement.styles.js.map +1 -1
  187. package/dist/esm/Forms/FormElement/context/FormElementContext.js.map +1 -1
  188. package/dist/esm/Forms/FormElement/context/FormElementDescriptorsContext.js.map +1 -1
  189. package/dist/esm/Forms/FormElement/utils/FormUtils.js.map +1 -1
  190. package/dist/esm/Forms/InfoMessage/InfoMessage.js.map +1 -1
  191. package/dist/esm/Forms/Label/Label.js.map +1 -1
  192. package/dist/esm/Forms/Suggestions/Suggestions.js.map +1 -1
  193. package/dist/esm/Forms/Suggestions/Suggestions.styles.js.map +1 -1
  194. package/dist/esm/Forms/WarningText/WarningText.js.map +1 -1
  195. package/dist/esm/GlobalActions/GlobalActions.js.map +1 -1
  196. package/dist/esm/GlobalActions/GlobalActions.styles.js.map +1 -1
  197. package/dist/esm/Grid/Grid.js.map +1 -1
  198. package/dist/esm/Grid/Grid.styles.js.map +1 -1
  199. package/dist/esm/Header/Actions/Actions.js.map +1 -1
  200. package/dist/esm/Header/Actions/Actions.styles.js.map +1 -1
  201. package/dist/esm/Header/Brand/Brand.js.map +1 -1
  202. package/dist/esm/Header/Brand/Brand.styles.js.map +1 -1
  203. package/dist/esm/Header/Header.js.map +1 -1
  204. package/dist/esm/Header/Header.styles.js.map +1 -1
  205. package/dist/esm/Header/Navigation/MenuBar/Bar.js.map +1 -1
  206. package/dist/esm/Header/Navigation/MenuBar/Bar.styles.js.map +1 -1
  207. package/dist/esm/Header/Navigation/MenuBar/MenuBar.js.map +1 -1
  208. package/dist/esm/Header/Navigation/MenuItem/MenuItem.js.map +1 -1
  209. package/dist/esm/Header/Navigation/MenuItem/MenuItem.styles.js.map +1 -1
  210. package/dist/esm/Header/Navigation/Navigation.js.map +1 -1
  211. package/dist/esm/Header/Navigation/Navigation.styles.js.map +1 -1
  212. package/dist/esm/Header/Navigation/useSelectionPath.js.map +1 -1
  213. package/dist/esm/Header/Navigation/utils/FocusContext.js.map +1 -1
  214. package/dist/esm/IconButton/IconButton.js.map +1 -1
  215. package/dist/esm/InlineEditor/InlineEditor.js +13 -2
  216. package/dist/esm/InlineEditor/InlineEditor.js.map +1 -1
  217. package/dist/esm/InlineEditor/InlineEditor.styles.js.map +1 -1
  218. package/dist/esm/Input/Input.js.map +1 -1
  219. package/dist/esm/Input/Input.styles.js.map +1 -1
  220. package/dist/esm/Kpi/Kpi.js.map +1 -1
  221. package/dist/esm/Link/Link.js.map +1 -1
  222. package/dist/esm/Link/Link.styles.js.map +1 -1
  223. package/dist/esm/List/List.js.map +1 -1
  224. package/dist/esm/List/List.styles.js.map +1 -1
  225. package/dist/esm/List/utils.js.map +1 -1
  226. package/dist/esm/ListContainer/ListContainer.js.map +1 -1
  227. package/dist/esm/ListContainer/ListContainer.styles.js.map +1 -1
  228. package/dist/esm/ListContainer/ListContext/ListContext.js.map +1 -1
  229. package/dist/esm/ListContainer/ListItem/ListItem.js.map +1 -1
  230. package/dist/esm/ListContainer/ListItem/ListItem.styles.js.map +1 -1
  231. package/dist/esm/Loading/Loading.js.map +1 -1
  232. package/dist/esm/Loading/Loading.styles.js.map +1 -1
  233. package/dist/esm/LoadingContainer/LoadingContainer.js.map +1 -1
  234. package/dist/esm/LoadingContainer/LoadingContainer.styles.js.map +1 -1
  235. package/dist/esm/Login/Login.js.map +1 -1
  236. package/dist/esm/Login/Login.styles.js.map +1 -1
  237. package/dist/esm/MultiButton/MultiButton.js +3 -4
  238. package/dist/esm/MultiButton/MultiButton.js.map +1 -1
  239. package/dist/esm/MultiButton/MultiButton.styles.js +48 -109
  240. package/dist/esm/MultiButton/MultiButton.styles.js.map +1 -1
  241. package/dist/esm/OverflowTooltip/OverflowTooltip.js.map +1 -1
  242. package/dist/esm/OverflowTooltip/OverflowTooltip.styles.js.map +1 -1
  243. package/dist/esm/Pagination/Pagination.js.map +1 -1
  244. package/dist/esm/Pagination/Pagination.styles.js +1 -1
  245. package/dist/esm/Pagination/Pagination.styles.js.map +1 -1
  246. package/dist/esm/Pagination/Select.js.map +1 -1
  247. package/dist/esm/Pagination/Select.styles.js.map +1 -1
  248. package/dist/esm/Panel/Panel.js.map +1 -1
  249. package/dist/esm/Panel/Panel.styles.js.map +1 -1
  250. package/dist/esm/ProgressBar/ProgressBar.js.map +1 -1
  251. package/dist/esm/ProgressBar/ProgressBar.styles.js.map +1 -1
  252. package/dist/esm/QueryBuilder/ConfirmationDialog/ConfirmationDialog.js.map +1 -1
  253. package/dist/esm/QueryBuilder/ConfirmationDialog/ConfirmationDialog.styles.js.map +1 -1
  254. package/dist/esm/QueryBuilder/Context.js.map +1 -1
  255. package/dist/esm/QueryBuilder/QueryBuilder.js.map +1 -1
  256. package/dist/esm/QueryBuilder/QueryBuilder.styles.js.map +1 -1
  257. package/dist/esm/QueryBuilder/Rule/Attribute/Attribute.js.map +1 -1
  258. package/dist/esm/QueryBuilder/Rule/Operator/Operator.js.map +1 -1
  259. package/dist/esm/QueryBuilder/Rule/Rule.js.map +1 -1
  260. package/dist/esm/QueryBuilder/Rule/Rule.styles.js.map +1 -1
  261. package/dist/esm/QueryBuilder/Rule/Value/BooleanValue/BooleanValue.js.map +1 -1
  262. package/dist/esm/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.js.map +1 -1
  263. package/dist/esm/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.styles.js.map +1 -1
  264. package/dist/esm/QueryBuilder/Rule/Value/DateTimeValue/utils.js.map +1 -1
  265. package/dist/esm/QueryBuilder/Rule/Value/EmptyValue/EmptyValue.js.map +1 -1
  266. package/dist/esm/QueryBuilder/Rule/Value/NumericValue/Numeric.styles.js.map +1 -1
  267. package/dist/esm/QueryBuilder/Rule/Value/NumericValue/NumericValue.js.map +1 -1
  268. package/dist/esm/QueryBuilder/Rule/Value/TextValue/TextValue.js.map +1 -1
  269. package/dist/esm/QueryBuilder/Rule/Value/TextValue/TextValue.styles.js.map +1 -1
  270. package/dist/esm/QueryBuilder/Rule/Value/Value.js.map +1 -1
  271. package/dist/esm/QueryBuilder/RuleGroup/RuleGroup.js.map +1 -1
  272. package/dist/esm/QueryBuilder/utils/index.js.map +1 -1
  273. package/dist/esm/QueryBuilder/utils/reducer.js.map +1 -1
  274. package/dist/esm/Radio/Radio.js.map +1 -1
  275. package/dist/esm/Radio/Radio.styles.js.map +1 -1
  276. package/dist/esm/RadioGroup/RadioGroup.js.map +1 -1
  277. package/dist/esm/RadioGroup/RadioGroup.styles.js.map +1 -1
  278. package/dist/esm/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.js.map +1 -1
  279. package/dist/esm/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.styles.js.map +1 -1
  280. package/dist/esm/ScrollTo/Horizontal/ScrollToHorizontal.js.map +1 -1
  281. package/dist/esm/ScrollTo/Horizontal/ScrollToHorizontal.styles.js.map +1 -1
  282. package/dist/esm/ScrollTo/Vertical/ScrollToVertical.js.map +1 -1
  283. package/dist/esm/ScrollTo/Vertical/ScrollToVertical.styles.js.map +1 -1
  284. package/dist/esm/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.js.map +1 -1
  285. package/dist/esm/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.styles.js.map +1 -1
  286. package/dist/esm/ScrollTo/useScrollTo.js.map +1 -1
  287. package/dist/esm/ScrollTo/utils.js.map +1 -1
  288. package/dist/esm/Section/Section.js.map +1 -1
  289. package/dist/esm/Section/Section.styles.js.map +1 -1
  290. package/dist/esm/Select/Option.js.map +1 -1
  291. package/dist/esm/Select/OptionGroup.js.map +1 -1
  292. package/dist/esm/Select/Select.js.map +1 -1
  293. package/dist/esm/Select/Select.styles.js.map +1 -1
  294. package/dist/esm/SelectionList/SelectionList.js.map +1 -1
  295. package/dist/esm/SelectionList/SelectionList.styles.js.map +1 -1
  296. package/dist/esm/SimpleGrid/SimpleGrid.js.map +1 -1
  297. package/dist/esm/SimpleGrid/SimpleGrid.styles.js.map +1 -1
  298. package/dist/esm/Skeleton/Skeleton.js.map +1 -1
  299. package/dist/esm/Skeleton/Skeleton.styles.js.map +1 -1
  300. package/dist/esm/Slider/Slider.js.map +1 -1
  301. package/dist/esm/Slider/Slider.styles.js.map +1 -1
  302. package/dist/esm/Slider/SliderInput/SliderInput.js.map +1 -1
  303. package/dist/esm/Slider/base.js.map +1 -1
  304. package/dist/esm/Slider/utils.js.map +1 -1
  305. package/dist/esm/Snackbar/Snackbar.js.map +1 -1
  306. package/dist/esm/Snackbar/Snackbar.styles.js.map +1 -1
  307. package/dist/esm/Snackbar/SnackbarContent/SnackbarContent.js.map +1 -1
  308. package/dist/esm/Snackbar/SnackbarContent/SnackbarContent.styles.js.map +1 -1
  309. package/dist/esm/SnackbarProvider/SnackbarProvider.js.map +1 -1
  310. package/dist/esm/SnackbarProvider/SnackbarProvider.styles.js.map +1 -1
  311. package/dist/esm/Stack/Stack.js.map +1 -1
  312. package/dist/esm/Stack/Stack.styles.js.map +1 -1
  313. package/dist/esm/Switch/Switch.js.map +1 -1
  314. package/dist/esm/Switch/Switch.styles.js.map +1 -1
  315. package/dist/esm/Tab/Tab.js.map +1 -1
  316. package/dist/esm/Tab/Tab.styles.js.map +1 -1
  317. package/dist/esm/Table/Table.js.map +1 -1
  318. package/dist/esm/Table/Table.styles.js.map +1 -1
  319. package/dist/esm/Table/TableBody/TableBody.js.map +1 -1
  320. package/dist/esm/Table/TableCell/TableCell.js.map +1 -1
  321. package/dist/esm/Table/TableCell/TableCell.styles.js +2 -5
  322. package/dist/esm/Table/TableCell/TableCell.styles.js.map +1 -1
  323. package/dist/esm/Table/TableContainer/TableContainer.js.map +1 -1
  324. package/dist/esm/Table/TableContainer/TableContainer.styles.js.map +1 -1
  325. package/dist/esm/Table/TableHead/TableHead.js.map +1 -1
  326. package/dist/esm/Table/TableHeader/TableHeader.js +44 -52
  327. package/dist/esm/Table/TableHeader/TableHeader.js.map +1 -1
  328. package/dist/esm/Table/TableHeader/TableHeader.styles.js +18 -20
  329. package/dist/esm/Table/TableHeader/TableHeader.styles.js.map +1 -1
  330. package/dist/esm/Table/TableHeader/utils.js.map +1 -1
  331. package/dist/esm/Table/TableRow/TableRow.js.map +1 -1
  332. package/dist/esm/Table/TableRow/TableRow.styles.js +7 -15
  333. package/dist/esm/Table/TableRow/TableRow.styles.js.map +1 -1
  334. package/dist/esm/Table/hooks/useBulkActions.js.map +1 -1
  335. package/dist/esm/Table/hooks/useFilters.js.map +1 -1
  336. package/dist/esm/Table/hooks/useGlobalFilter.js.map +1 -1
  337. package/dist/esm/Table/hooks/useHeaderGroups.js.map +1 -1
  338. package/dist/esm/Table/hooks/usePagination.js.map +1 -1
  339. package/dist/esm/Table/hooks/useResizeColumns.js.map +1 -1
  340. package/dist/esm/Table/hooks/useRowExpand.js.map +1 -1
  341. package/dist/esm/Table/hooks/useRowSelection.js.map +1 -1
  342. package/dist/esm/Table/hooks/useRowState.js.map +1 -1
  343. package/dist/esm/Table/hooks/useSortBy.js.map +1 -1
  344. package/dist/esm/Table/hooks/useSticky.js.map +1 -1
  345. package/dist/esm/Table/hooks/useTable.js.map +1 -1
  346. package/dist/esm/Table/hooks/useTableStyles.js.map +1 -1
  347. package/dist/esm/Table/renderers/DateColumnCell/DateColumnCell.js.map +1 -1
  348. package/dist/esm/Table/renderers/ProgressColumnCell/ProgressColumnCell.js.map +1 -1
  349. package/dist/esm/Table/renderers/ProgressColumnCell/ProgressColumnCell.styles.js.map +1 -1
  350. package/dist/esm/Table/renderers/SwitchColumnCell/SwitchColumnCell.js.map +1 -1
  351. package/dist/esm/Table/renderers/SwitchColumnCell/SwitchColumnCell.styles.js.map +1 -1
  352. package/dist/esm/Table/renderers/renderers.js.map +1 -1
  353. package/dist/esm/Table/utils/fallbacks.js.map +1 -1
  354. package/dist/esm/Table/utils/utils.js.map +1 -1
  355. package/dist/esm/TableSection/TableSection.js.map +1 -1
  356. package/dist/esm/TableSection/TableSection.styles.js.map +1 -1
  357. package/dist/esm/Tabs/Tabs.js.map +1 -1
  358. package/dist/esm/Tabs/Tabs.styles.js.map +1 -1
  359. package/dist/esm/Tag/Tag.js.map +1 -1
  360. package/dist/esm/Tag/Tag.styles.js.map +1 -1
  361. package/dist/esm/TagsInput/TagsInput.js.map +1 -1
  362. package/dist/esm/TagsInput/TagsInput.styles.js.map +1 -1
  363. package/dist/esm/TextArea/TextArea.js.map +1 -1
  364. package/dist/esm/TimeAgo/TimeAgo.js.map +1 -1
  365. package/dist/esm/TimeAgo/TimeAgo.styles.js.map +1 -1
  366. package/dist/esm/TimeAgo/formatUtils.js.map +1 -1
  367. package/dist/esm/TimeAgo/useTimeAgo.js.map +1 -1
  368. package/dist/esm/TimePicker/Placeholder.js.map +1 -1
  369. package/dist/esm/TimePicker/TimePicker.js.map +1 -1
  370. package/dist/esm/TimePicker/TimePicker.styles.js.map +1 -1
  371. package/dist/esm/TimePicker/Unit/Unit.js.map +1 -1
  372. package/dist/esm/TimePicker/Unit/Unit.styles.js.map +1 -1
  373. package/dist/esm/ToggleButton/ToggleButton.js.map +1 -1
  374. package/dist/esm/Tooltip/Tooltip.js.map +1 -1
  375. package/dist/esm/Tooltip/Tooltip.styles.js.map +1 -1
  376. package/dist/esm/TreeView/TreeItem/DefaultContent.js.map +1 -1
  377. package/dist/esm/TreeView/TreeItem/TreeItem.js.map +1 -1
  378. package/dist/esm/TreeView/TreeItem/TreeItem.styles.js.map +1 -1
  379. package/dist/esm/TreeView/TreeItem/useHvTreeItem.js.map +1 -1
  380. package/dist/esm/TreeView/TreeView.js.map +1 -1
  381. package/dist/esm/TreeView/TreeView.styles.js.map +1 -1
  382. package/dist/esm/TreeView/internals/DescendantProvider.js.map +1 -1
  383. package/dist/esm/TreeView/internals/TreeViewProvider.js.map +1 -1
  384. package/dist/esm/TreeView/internals/hooks/plugins/useTreeViewContextValueBuilder.js.map +1 -1
  385. package/dist/esm/TreeView/internals/hooks/plugins/useTreeViewExpansion.js.map +1 -1
  386. package/dist/esm/TreeView/internals/hooks/plugins/useTreeViewFocus.js.map +1 -1
  387. package/dist/esm/TreeView/internals/hooks/plugins/useTreeViewKeyboardNavigation.js.map +1 -1
  388. package/dist/esm/TreeView/internals/hooks/plugins/useTreeViewNodes.js.map +1 -1
  389. package/dist/esm/TreeView/internals/hooks/plugins/useTreeViewSelection.js.map +1 -1
  390. package/dist/esm/TreeView/internals/hooks/useInstanceEventHandler.js.map +1 -1
  391. package/dist/esm/TreeView/internals/hooks/useTreeView.js.map +1 -1
  392. package/dist/esm/TreeView/internals/hooks/useTreeViewInstanceEvents.js.map +1 -1
  393. package/dist/esm/TreeView/internals/hooks/useTreeViewModels.js.map +1 -1
  394. package/dist/esm/TreeView/internals/hooks/utils.js.map +1 -1
  395. package/dist/esm/TreeView/internals/utils/EventManager.js.map +1 -1
  396. package/dist/esm/TreeView/internals/utils/FinalizationRegistryBasedCleanupTracking.js.map +1 -1
  397. package/dist/esm/TreeView/internals/utils/TimerBasedCleanupTracking.js.map +1 -1
  398. package/dist/esm/Typography/Typography.js.map +1 -1
  399. package/dist/esm/Typography/Typography.styles.js.map +1 -1
  400. package/dist/esm/VerticalNavigation/Actions/Action.js.map +1 -1
  401. package/dist/esm/VerticalNavigation/Actions/Action.styles.js.map +1 -1
  402. package/dist/esm/VerticalNavigation/Actions/Actions.js.map +1 -1
  403. package/dist/esm/VerticalNavigation/Actions/Actions.styles.js.map +1 -1
  404. package/dist/esm/VerticalNavigation/Header/Header.js.map +1 -1
  405. package/dist/esm/VerticalNavigation/Header/Header.styles.js.map +1 -1
  406. package/dist/esm/VerticalNavigation/Navigation/Navigation.js.map +1 -1
  407. package/dist/esm/VerticalNavigation/Navigation/Navigation.styles.js.map +1 -1
  408. package/dist/esm/VerticalNavigation/NavigationPopup/NavigationPopup.styles.js.map +1 -1
  409. package/dist/esm/VerticalNavigation/NavigationPopup/NavigationPopupContainer.js.map +1 -1
  410. package/dist/esm/VerticalNavigation/NavigationSlider/NavigationSlider.js.map +1 -1
  411. package/dist/esm/VerticalNavigation/NavigationSlider/NavigationSlider.styles.js.map +1 -1
  412. package/dist/esm/VerticalNavigation/NavigationSlider/utils.js.map +1 -1
  413. package/dist/esm/VerticalNavigation/TreeView/TreeView.js.map +1 -1
  414. package/dist/esm/VerticalNavigation/TreeView/TreeView.styles.js.map +1 -1
  415. package/dist/esm/VerticalNavigation/TreeView/TreeViewContext.js.map +1 -1
  416. package/dist/esm/VerticalNavigation/TreeView/TreeViewItem.js.map +1 -1
  417. package/dist/esm/VerticalNavigation/TreeView/TreeViewItem.styles.js.map +1 -1
  418. package/dist/esm/VerticalNavigation/VerticalNavigation.js.map +1 -1
  419. package/dist/esm/VerticalNavigation/VerticalNavigation.styles.js.map +1 -1
  420. package/dist/esm/VerticalNavigation/VerticalNavigationContext.js.map +1 -1
  421. package/dist/esm/hocs/withTooltip.js.map +1 -1
  422. package/dist/esm/hooks/useClickOutside.js.map +1 -1
  423. package/dist/esm/hooks/useComputation.js.map +1 -1
  424. package/dist/esm/hooks/useControlled.js.map +1 -1
  425. package/dist/esm/hooks/useExpandable.js.map +1 -1
  426. package/dist/esm/hooks/useForkRef.js.map +1 -1
  427. package/dist/esm/hooks/useImageLoaded.js.map +1 -1
  428. package/dist/esm/hooks/useIsMounted.js.map +1 -1
  429. package/dist/esm/hooks/useUniqueId.js.map +1 -1
  430. package/dist/esm/hooks/useWidth.js.map +1 -1
  431. package/dist/esm/providers/Provider.js.map +1 -1
  432. package/dist/esm/providers/ThemeProvider.js.map +1 -1
  433. package/dist/esm/utils/Random.js.map +1 -1
  434. package/dist/esm/utils/browser.js.map +1 -1
  435. package/dist/esm/utils/deepMerge.js.map +1 -1
  436. package/dist/esm/utils/document.js.map +1 -1
  437. package/dist/esm/utils/focusableElementFinder.js.map +1 -1
  438. package/dist/esm/utils/helpers.js.map +1 -1
  439. package/dist/esm/utils/iconVariant.js.map +1 -1
  440. package/dist/esm/utils/multiSelectionEventHandler.js.map +1 -1
  441. package/dist/esm/utils/sizes.js.map +1 -1
  442. package/dist/esm/utils/theme.js.map +1 -1
  443. package/dist/esm/utils/useSavedState.js.map +1 -1
  444. package/dist/esm/utils/wrapperTooltip.js.map +1 -1
  445. package/dist/types/index.d.ts +7 -4
  446. package/package.json +6 -6
  447. package/dist/esm/BaseDropdown/BaseDropdownContext/BaseDropdownContext.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useTreeViewSelection.js","sources":["../../../../../../src/TreeView/internals/hooks/plugins/useTreeViewSelection.ts"],"sourcesContent":["import * as React from \"react\";\n\nimport type {\n DefaultizedProps,\n TreeViewInstance,\n TreeViewItemRange,\n TreeViewPlugin,\n TreeViewPluginSignature,\n} from \"../../types\";\nimport {\n getFirstNode,\n getLastNode,\n getNextNode,\n populateInstance,\n} from \"../utils\";\nimport type { UseTreeViewExpansionSignature } from \"./useTreeViewExpansion\";\nimport type { UseTreeViewNodesSignature } from \"./useTreeViewNodes\";\n\n/**\n * This is used to determine the start and end of a selection range so\n * we can get the nodes between the two border nodes.\n *\n * It finds the nodes' common ancestor using\n * a naive implementation of a lowest common ancestor algorithm\n * (https://en.wikipedia.org/wiki/Lowest_common_ancestor).\n * Then compares the ancestor's 2 children that are ancestors of nodeA and NodeB\n * so we can compare their indexes to work out which node comes first in a depth first search.\n * (https://en.wikipedia.org/wiki/Depth-first_search)\n *\n * Another way to put it is which node is shallower in a trémaux tree\n * https://en.wikipedia.org/wiki/Tr%C3%A9maux_tree\n */\nexport const findOrderInTremauxTree = (\n instance: TreeViewInstance<[UseTreeViewNodesSignature]>,\n nodeAId: string,\n nodeBId: string,\n) => {\n if (nodeAId === nodeBId) {\n return [nodeAId, nodeBId];\n }\n\n const nodeA = instance.getNode(nodeAId);\n const nodeB = instance.getNode(nodeBId);\n\n if (nodeA.parentId === nodeB.id || nodeB.parentId === nodeA.id) {\n return nodeB.parentId === nodeA.id\n ? [nodeA.id, nodeB.id]\n : [nodeB.id, nodeA.id];\n }\n\n const aFamily: (string | null)[] = [nodeA.id];\n const bFamily: (string | null)[] = [nodeB.id];\n\n let aAncestor = nodeA.parentId;\n let bAncestor = nodeB.parentId;\n\n let aAncestorIsCommon = bFamily.indexOf(aAncestor) !== -1;\n let bAncestorIsCommon = aFamily.indexOf(bAncestor) !== -1;\n\n let continueA = true;\n let continueB = true;\n\n while (!bAncestorIsCommon && !aAncestorIsCommon) {\n if (continueA) {\n aFamily.push(aAncestor);\n aAncestorIsCommon = bFamily.indexOf(aAncestor) !== -1;\n continueA = aAncestor !== null;\n if (!aAncestorIsCommon && continueA) {\n aAncestor = instance.getNode(aAncestor!).parentId;\n }\n }\n\n if (continueB && !aAncestorIsCommon) {\n bFamily.push(bAncestor);\n bAncestorIsCommon = aFamily.indexOf(bAncestor) !== -1;\n continueB = bAncestor !== null;\n if (!bAncestorIsCommon && continueB) {\n bAncestor = instance.getNode(bAncestor!).parentId;\n }\n }\n }\n\n const commonAncestor = aAncestorIsCommon ? aAncestor : bAncestor;\n const ancestorFamily = instance.getChildrenIds(commonAncestor);\n\n const aSide = aFamily[aFamily.indexOf(commonAncestor) - 1];\n const bSide = bFamily[bFamily.indexOf(commonAncestor) - 1];\n\n return ancestorFamily.indexOf(aSide!) < ancestorFamily.indexOf(bSide!)\n ? [nodeAId, nodeBId]\n : [nodeBId, nodeAId];\n};\n\nexport interface UseTreeViewSelectionInstance {\n isNodeSelected: (nodeId: string) => boolean;\n selectNode: (\n event: React.SyntheticEvent,\n nodeId: string,\n multiple?: boolean,\n ) => void;\n selectRange: (\n event: React.SyntheticEvent,\n nodes: TreeViewItemRange,\n stacked?: boolean,\n ) => void;\n rangeSelectToFirst: (\n event: React.KeyboardEvent<HTMLUListElement>,\n nodeId: string,\n ) => void;\n rangeSelectToLast: (\n event: React.KeyboardEvent<HTMLUListElement>,\n nodeId: string,\n ) => void;\n}\n\ntype TreeViewSelectionValue<Multiple extends boolean | undefined> =\n Multiple extends true ? string[] : string | null;\n\nexport interface UseTreeViewSelectionParameters<\n Multiple extends boolean | undefined,\n> {\n /**\n * If `true` selection is disabled.\n * @default false\n */\n disableSelection?: boolean;\n /**\n * Selected node ids. (Uncontrolled)\n * When `multiSelect` is true this takes an array of strings; when false (default) a string.\n * @default []\n */\n defaultSelected?: TreeViewSelectionValue<Multiple>;\n /**\n * Selected node ids. (Controlled)\n * When `multiSelect` is true this takes an array of strings; when false (default) a string.\n */\n selected?: TreeViewSelectionValue<Multiple>;\n /**\n * If true `ctrl` and `shift` will trigger multiselect.\n * @default false\n */\n multiSelect?: Multiple;\n /**\n * Callback fired when tree items are selected/unselected.\n * @param {React.SyntheticEvent} event The event source of the callback\n * @param {string[] | string} nodeIds Ids of the selected nodes. When `multiSelect` is true\n * this is an array of strings; when false (default) a string.\n */\n onNodeSelect?: (\n event: React.SyntheticEvent,\n nodeIds: Exclude<TreeViewSelectionValue<Multiple>, null>,\n ) => void;\n}\n\nexport type UseTreeViewSelectionDefaultizedParameters<\n Multiple extends boolean,\n> = DefaultizedProps<\n UseTreeViewSelectionParameters<Multiple>,\n \"disableSelection\" | \"defaultSelected\" | \"multiSelect\"\n>;\n\nexport type UseTreeViewSelectionSignature<\n Multiple extends boolean | undefined,\n> = TreeViewPluginSignature<\n UseTreeViewSelectionParameters<Multiple>,\n UseTreeViewSelectionDefaultizedParameters<\n Multiple extends undefined ? false : Multiple\n >,\n UseTreeViewSelectionInstance,\n {},\n {},\n \"selected\",\n [\n UseTreeViewNodesSignature,\n UseTreeViewExpansionSignature,\n UseTreeViewNodesSignature,\n ]\n>;\n\nexport const useTreeViewSelection: TreeViewPlugin<\n UseTreeViewSelectionSignature<any>\n> = ({ instance, params, models }) => {\n const lastSelectedNode = React.useRef<string | null>(null);\n const lastSelectionWasRange = React.useRef(false);\n const currentRangeSelection = React.useRef<string[]>([]);\n\n const isNodeSelected = (nodeId: string) =>\n Array.isArray(models.selected.value)\n ? models.selected.value.indexOf(nodeId) !== -1\n : models.selected.value === nodeId;\n\n const selectNode = (\n event: React.SyntheticEvent,\n nodeId: string,\n multiple = false,\n ) => {\n if (params.disableSelection) {\n return;\n }\n\n if (multiple) {\n if (Array.isArray(models.selected.value)) {\n let newSelected: string[];\n if (models.selected.value.indexOf(nodeId) !== -1) {\n newSelected = models.selected.value.filter((id) => id !== nodeId);\n } else {\n newSelected = [nodeId].concat(models.selected.value);\n }\n\n if (params.onNodeSelect) {\n (params.onNodeSelect as UseTreeViewSelectionDefaultizedParameters<true>[\"onNodeSelect\"])!(\n event,\n newSelected,\n );\n }\n\n models.selected.setValue(newSelected);\n }\n } else {\n const newSelected = params.multiSelect ? [nodeId] : nodeId;\n\n if (params.onNodeSelect) {\n params.onNodeSelect(event, newSelected as string & string[]);\n }\n\n models.selected.setValue(newSelected);\n }\n lastSelectedNode.current = nodeId;\n lastSelectionWasRange.current = false;\n currentRangeSelection.current = [];\n };\n\n const getNodesInRange = (nodeAId: string, nodeBId: string) => {\n const [first, last] = findOrderInTremauxTree(instance, nodeAId, nodeBId);\n const nodes = [first];\n\n let current = first;\n\n while (current !== last) {\n current = getNextNode(instance, current)!;\n nodes.push(current);\n }\n\n return nodes;\n };\n\n const handleRangeArrowSelect = (\n event: React.SyntheticEvent,\n nodes: TreeViewItemRange,\n ) => {\n let base = (models.selected.value as string[]).slice();\n const { start, next, current } = nodes;\n\n if (!next || !current) {\n return;\n }\n\n if (currentRangeSelection.current.indexOf(current) === -1) {\n currentRangeSelection.current = [];\n }\n\n if (lastSelectionWasRange.current) {\n if (currentRangeSelection.current.indexOf(next) !== -1) {\n base = base.filter((id) => id === start || id !== current);\n currentRangeSelection.current = currentRangeSelection.current.filter(\n (id) => id === start || id !== current,\n );\n } else {\n base.push(next);\n currentRangeSelection.current.push(next);\n }\n } else {\n base.push(next);\n currentRangeSelection.current.push(current, next);\n }\n\n if (params.onNodeSelect) {\n (params.onNodeSelect as UseTreeViewSelectionDefaultizedParameters<true>[\"onNodeSelect\"])!(\n event,\n base,\n );\n }\n\n models.selected.setValue(base);\n };\n\n const handleRangeSelect = (\n event: React.SyntheticEvent,\n nodes: { start: string; end: string },\n ) => {\n let base = (models.selected.value as string[]).slice();\n const { start, end } = nodes;\n // If last selection was a range selection ignore nodes that were selected.\n if (lastSelectionWasRange.current) {\n base = base.filter(\n (id) => currentRangeSelection.current.indexOf(id) === -1,\n );\n }\n\n let range = getNodesInRange(start, end);\n range = range.filter((node) => !instance.isNodeDisabled(node));\n currentRangeSelection.current = range;\n let newSelected = base.concat(range);\n newSelected = newSelected.filter((id, i) => newSelected.indexOf(id) === i);\n\n if (params.onNodeSelect) {\n (params.onNodeSelect as UseTreeViewSelectionDefaultizedParameters<true>[\"onNodeSelect\"])!(\n event,\n newSelected,\n );\n }\n\n models.selected.setValue(newSelected);\n };\n\n const selectRange = (\n event: React.SyntheticEvent,\n nodes: TreeViewItemRange,\n stacked = false,\n ) => {\n if (params.disableSelection) {\n return;\n }\n\n const { start = lastSelectedNode.current, end, current } = nodes;\n if (stacked) {\n handleRangeArrowSelect(event, { start, next: end, current });\n } else if (start != null && end != null) {\n handleRangeSelect(event, { start, end });\n }\n lastSelectionWasRange.current = true;\n };\n\n const rangeSelectToFirst = (\n event: React.KeyboardEvent<HTMLUListElement>,\n nodeId: string,\n ) => {\n if (!lastSelectedNode.current) {\n lastSelectedNode.current = nodeId;\n }\n\n const start = lastSelectionWasRange.current\n ? lastSelectedNode.current\n : nodeId;\n\n instance.selectRange(event, {\n start,\n end: getFirstNode(instance),\n });\n };\n\n const rangeSelectToLast = (\n event: React.KeyboardEvent<HTMLUListElement>,\n nodeId: string,\n ) => {\n if (!lastSelectedNode.current) {\n lastSelectedNode.current = nodeId;\n }\n\n const start = lastSelectionWasRange.current\n ? lastSelectedNode.current\n : nodeId;\n\n instance.selectRange(event, {\n start,\n end: getLastNode(instance),\n });\n };\n\n populateInstance<UseTreeViewSelectionSignature<any>>(instance, {\n isNodeSelected,\n selectNode,\n selectRange,\n rangeSelectToLast,\n rangeSelectToFirst,\n });\n\n return {\n getRootProps: () => ({\n \"aria-multiselectable\": params.multiSelect,\n }),\n };\n};\n\nuseTreeViewSelection.models = {\n selected: { controlledProp: \"selected\", defaultProp: \"defaultSelected\" },\n};\n\nconst DEFAULT_SELECTED: string[] = [];\n\nuseTreeViewSelection.getDefaultizedParams = (params) => ({\n ...params,\n disableSelection: params.disableSelection ?? false,\n multiSelect: params.multiSelect ?? false,\n defaultSelected:\n params.defaultSelected ?? (params.multiSelect ? DEFAULT_SELECTED : null),\n});\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useTreeViewSelection.js","sources":["../../../../../../src/TreeView/internals/hooks/plugins/useTreeViewSelection.ts"],"sourcesContent":["import * as React from \"react\";\n\nimport type {\n DefaultizedProps,\n TreeViewInstance,\n TreeViewItemRange,\n TreeViewPlugin,\n TreeViewPluginSignature,\n} from \"../../types\";\nimport {\n getFirstNode,\n getLastNode,\n getNextNode,\n populateInstance,\n} from \"../utils\";\nimport type { UseTreeViewExpansionSignature } from \"./useTreeViewExpansion\";\nimport type { UseTreeViewNodesSignature } from \"./useTreeViewNodes\";\n\n/**\n * This is used to determine the start and end of a selection range so\n * we can get the nodes between the two border nodes.\n *\n * It finds the nodes' common ancestor using\n * a naive implementation of a lowest common ancestor algorithm\n * (https://en.wikipedia.org/wiki/Lowest_common_ancestor).\n * Then compares the ancestor's 2 children that are ancestors of nodeA and NodeB\n * so we can compare their indexes to work out which node comes first in a depth first search.\n * (https://en.wikipedia.org/wiki/Depth-first_search)\n *\n * Another way to put it is which node is shallower in a trémaux tree\n * https://en.wikipedia.org/wiki/Tr%C3%A9maux_tree\n */\nexport const findOrderInTremauxTree = (\n instance: TreeViewInstance<[UseTreeViewNodesSignature]>,\n nodeAId: string,\n nodeBId: string,\n) => {\n if (nodeAId === nodeBId) {\n return [nodeAId, nodeBId];\n }\n\n const nodeA = instance.getNode(nodeAId);\n const nodeB = instance.getNode(nodeBId);\n\n if (nodeA.parentId === nodeB.id || nodeB.parentId === nodeA.id) {\n return nodeB.parentId === nodeA.id\n ? [nodeA.id, nodeB.id]\n : [nodeB.id, nodeA.id];\n }\n\n const aFamily: (string | null)[] = [nodeA.id];\n const bFamily: (string | null)[] = [nodeB.id];\n\n let aAncestor = nodeA.parentId;\n let bAncestor = nodeB.parentId;\n\n let aAncestorIsCommon = bFamily.indexOf(aAncestor) !== -1;\n let bAncestorIsCommon = aFamily.indexOf(bAncestor) !== -1;\n\n let continueA = true;\n let continueB = true;\n\n while (!bAncestorIsCommon && !aAncestorIsCommon) {\n if (continueA) {\n aFamily.push(aAncestor);\n aAncestorIsCommon = bFamily.indexOf(aAncestor) !== -1;\n continueA = aAncestor !== null;\n if (!aAncestorIsCommon && continueA) {\n aAncestor = instance.getNode(aAncestor!).parentId;\n }\n }\n\n if (continueB && !aAncestorIsCommon) {\n bFamily.push(bAncestor);\n bAncestorIsCommon = aFamily.indexOf(bAncestor) !== -1;\n continueB = bAncestor !== null;\n if (!bAncestorIsCommon && continueB) {\n bAncestor = instance.getNode(bAncestor!).parentId;\n }\n }\n }\n\n const commonAncestor = aAncestorIsCommon ? aAncestor : bAncestor;\n const ancestorFamily = instance.getChildrenIds(commonAncestor);\n\n const aSide = aFamily[aFamily.indexOf(commonAncestor) - 1];\n const bSide = bFamily[bFamily.indexOf(commonAncestor) - 1];\n\n return ancestorFamily.indexOf(aSide!) < ancestorFamily.indexOf(bSide!)\n ? [nodeAId, nodeBId]\n : [nodeBId, nodeAId];\n};\n\nexport interface UseTreeViewSelectionInstance {\n isNodeSelected: (nodeId: string) => boolean;\n selectNode: (\n event: React.SyntheticEvent,\n nodeId: string,\n multiple?: boolean,\n ) => void;\n selectRange: (\n event: React.SyntheticEvent,\n nodes: TreeViewItemRange,\n stacked?: boolean,\n ) => void;\n rangeSelectToFirst: (\n event: React.KeyboardEvent<HTMLUListElement>,\n nodeId: string,\n ) => void;\n rangeSelectToLast: (\n event: React.KeyboardEvent<HTMLUListElement>,\n nodeId: string,\n ) => void;\n}\n\ntype TreeViewSelectionValue<Multiple extends boolean | undefined> =\n Multiple extends true ? string[] : string | null;\n\nexport interface UseTreeViewSelectionParameters<\n Multiple extends boolean | undefined,\n> {\n /**\n * If `true` selection is disabled.\n * @default false\n */\n disableSelection?: boolean;\n /**\n * Selected node ids. (Uncontrolled)\n * When `multiSelect` is true this takes an array of strings; when false (default) a string.\n * @default []\n */\n defaultSelected?: TreeViewSelectionValue<Multiple>;\n /**\n * Selected node ids. (Controlled)\n * When `multiSelect` is true this takes an array of strings; when false (default) a string.\n */\n selected?: TreeViewSelectionValue<Multiple>;\n /**\n * If true `ctrl` and `shift` will trigger multiselect.\n * @default false\n */\n multiSelect?: Multiple;\n /**\n * Callback fired when tree items are selected/unselected.\n * @param {React.SyntheticEvent} event The event source of the callback\n * @param {string[] | string} nodeIds Ids of the selected nodes. When `multiSelect` is true\n * this is an array of strings; when false (default) a string.\n */\n onNodeSelect?: (\n event: React.SyntheticEvent,\n nodeIds: Exclude<TreeViewSelectionValue<Multiple>, null>,\n ) => void;\n}\n\nexport type UseTreeViewSelectionDefaultizedParameters<\n Multiple extends boolean,\n> = DefaultizedProps<\n UseTreeViewSelectionParameters<Multiple>,\n \"disableSelection\" | \"defaultSelected\" | \"multiSelect\"\n>;\n\nexport type UseTreeViewSelectionSignature<\n Multiple extends boolean | undefined,\n> = TreeViewPluginSignature<\n UseTreeViewSelectionParameters<Multiple>,\n UseTreeViewSelectionDefaultizedParameters<\n Multiple extends undefined ? false : Multiple\n >,\n UseTreeViewSelectionInstance,\n {},\n {},\n \"selected\",\n [\n UseTreeViewNodesSignature,\n UseTreeViewExpansionSignature,\n UseTreeViewNodesSignature,\n ]\n>;\n\nexport const useTreeViewSelection: TreeViewPlugin<\n UseTreeViewSelectionSignature<any>\n> = ({ instance, params, models }) => {\n const lastSelectedNode = React.useRef<string | null>(null);\n const lastSelectionWasRange = React.useRef(false);\n const currentRangeSelection = React.useRef<string[]>([]);\n\n const isNodeSelected = (nodeId: string) =>\n Array.isArray(models.selected.value)\n ? models.selected.value.indexOf(nodeId) !== -1\n : models.selected.value === nodeId;\n\n const selectNode = (\n event: React.SyntheticEvent,\n nodeId: string,\n multiple = false,\n ) => {\n if (params.disableSelection) {\n return;\n }\n\n if (multiple) {\n if (Array.isArray(models.selected.value)) {\n let newSelected: string[];\n if (models.selected.value.indexOf(nodeId) !== -1) {\n newSelected = models.selected.value.filter((id) => id !== nodeId);\n } else {\n newSelected = [nodeId].concat(models.selected.value);\n }\n\n if (params.onNodeSelect) {\n (params.onNodeSelect as UseTreeViewSelectionDefaultizedParameters<true>[\"onNodeSelect\"])!(\n event,\n newSelected,\n );\n }\n\n models.selected.setValue(newSelected);\n }\n } else {\n const newSelected = params.multiSelect ? [nodeId] : nodeId;\n\n if (params.onNodeSelect) {\n params.onNodeSelect(event, newSelected as string & string[]);\n }\n\n models.selected.setValue(newSelected);\n }\n lastSelectedNode.current = nodeId;\n lastSelectionWasRange.current = false;\n currentRangeSelection.current = [];\n };\n\n const getNodesInRange = (nodeAId: string, nodeBId: string) => {\n const [first, last] = findOrderInTremauxTree(instance, nodeAId, nodeBId);\n const nodes = [first];\n\n let current = first;\n\n while (current !== last) {\n current = getNextNode(instance, current)!;\n nodes.push(current);\n }\n\n return nodes;\n };\n\n const handleRangeArrowSelect = (\n event: React.SyntheticEvent,\n nodes: TreeViewItemRange,\n ) => {\n let base = (models.selected.value as string[]).slice();\n const { start, next, current } = nodes;\n\n if (!next || !current) {\n return;\n }\n\n if (currentRangeSelection.current.indexOf(current) === -1) {\n currentRangeSelection.current = [];\n }\n\n if (lastSelectionWasRange.current) {\n if (currentRangeSelection.current.indexOf(next) !== -1) {\n base = base.filter((id) => id === start || id !== current);\n currentRangeSelection.current = currentRangeSelection.current.filter(\n (id) => id === start || id !== current,\n );\n } else {\n base.push(next);\n currentRangeSelection.current.push(next);\n }\n } else {\n base.push(next);\n currentRangeSelection.current.push(current, next);\n }\n\n if (params.onNodeSelect) {\n (params.onNodeSelect as UseTreeViewSelectionDefaultizedParameters<true>[\"onNodeSelect\"])!(\n event,\n base,\n );\n }\n\n models.selected.setValue(base);\n };\n\n const handleRangeSelect = (\n event: React.SyntheticEvent,\n nodes: { start: string; end: string },\n ) => {\n let base = (models.selected.value as string[]).slice();\n const { start, end } = nodes;\n // If last selection was a range selection ignore nodes that were selected.\n if (lastSelectionWasRange.current) {\n base = base.filter(\n (id) => currentRangeSelection.current.indexOf(id) === -1,\n );\n }\n\n let range = getNodesInRange(start, end);\n range = range.filter((node) => !instance.isNodeDisabled(node));\n currentRangeSelection.current = range;\n let newSelected = base.concat(range);\n newSelected = newSelected.filter((id, i) => newSelected.indexOf(id) === i);\n\n if (params.onNodeSelect) {\n (params.onNodeSelect as UseTreeViewSelectionDefaultizedParameters<true>[\"onNodeSelect\"])!(\n event,\n newSelected,\n );\n }\n\n models.selected.setValue(newSelected);\n };\n\n const selectRange = (\n event: React.SyntheticEvent,\n nodes: TreeViewItemRange,\n stacked = false,\n ) => {\n if (params.disableSelection) {\n return;\n }\n\n const { start = lastSelectedNode.current, end, current } = nodes;\n if (stacked) {\n handleRangeArrowSelect(event, { start, next: end, current });\n } else if (start != null && end != null) {\n handleRangeSelect(event, { start, end });\n }\n lastSelectionWasRange.current = true;\n };\n\n const rangeSelectToFirst = (\n event: React.KeyboardEvent<HTMLUListElement>,\n nodeId: string,\n ) => {\n if (!lastSelectedNode.current) {\n lastSelectedNode.current = nodeId;\n }\n\n const start = lastSelectionWasRange.current\n ? lastSelectedNode.current\n : nodeId;\n\n instance.selectRange(event, {\n start,\n end: getFirstNode(instance),\n });\n };\n\n const rangeSelectToLast = (\n event: React.KeyboardEvent<HTMLUListElement>,\n nodeId: string,\n ) => {\n if (!lastSelectedNode.current) {\n lastSelectedNode.current = nodeId;\n }\n\n const start = lastSelectionWasRange.current\n ? lastSelectedNode.current\n : nodeId;\n\n instance.selectRange(event, {\n start,\n end: getLastNode(instance),\n });\n };\n\n populateInstance<UseTreeViewSelectionSignature<any>>(instance, {\n isNodeSelected,\n selectNode,\n selectRange,\n rangeSelectToLast,\n rangeSelectToFirst,\n });\n\n return {\n getRootProps: () => ({\n \"aria-multiselectable\": params.multiSelect,\n }),\n };\n};\n\nuseTreeViewSelection.models = {\n selected: { controlledProp: \"selected\", defaultProp: \"defaultSelected\" },\n};\n\nconst DEFAULT_SELECTED: string[] = [];\n\nuseTreeViewSelection.getDefaultizedParams = (params) => ({\n ...params,\n disableSelection: params.disableSelection ?? false,\n multiSelect: params.multiSelect ?? false,\n defaultSelected:\n params.defaultSelected ?? (params.multiSelect ? DEFAULT_SELECTED : null),\n});\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useInstanceEventHandler.js","sources":["../../../../../src/TreeView/internals/hooks/useInstanceEventHandler.ts"],"sourcesContent":["import * as React from \"react\";\n\nimport { TreeViewAnyPluginSignature, TreeViewUsedEvents } from \"../types\";\nimport { TreeViewEventListener } from \"../types/events\";\nimport { CleanupTracking, UnregisterToken } from \"../utils/CleanupTracking\";\nimport { FinalizationRegistryBasedCleanupTracking } from \"../utils/FinalizationRegistryBasedCleanupTracking\";\nimport { TimerBasedCleanupTracking } from \"../utils/TimerBasedCleanupTracking\";\nimport { UseTreeViewInstanceEventsInstance } from \"./useTreeViewInstanceEvents.types\";\n\ninterface RegistryContainer {\n registry: CleanupTracking | null;\n}\n\n// We use class to make it easier to detect in heap snapshots by name\nclass ObjectToBeRetainedByReact {}\n\n// Based on https://github.com/Bnaya/use-dispose-uncommitted/blob/main/src/finalization-registry-based-impl.ts\n// Check https://github.com/facebook/react/issues/15317 to get more information\nexport function createUseInstanceEventHandler(\n registryContainer: RegistryContainer,\n) {\n let cleanupTokensCounter = 0;\n\n return function useInstanceEventHandler<\n Instance extends UseTreeViewInstanceEventsInstance & {\n $$signature: TreeViewAnyPluginSignature;\n },\n E extends keyof TreeViewUsedEvents<Instance[\"$$signature\"]>,\n >(\n instance: Instance,\n eventName: E,\n handler: TreeViewEventListener<\n TreeViewUsedEvents<Instance[\"$$signature\"]>[E]\n >,\n ) {\n type Signature = Instance[\"$$signature\"];\n\n if (registryContainer.registry === null) {\n registryContainer.registry =\n typeof FinalizationRegistry !== \"undefined\"\n ? new FinalizationRegistryBasedCleanupTracking()\n : new TimerBasedCleanupTracking();\n }\n\n const [objectRetainedByReact] = React.useState(\n new ObjectToBeRetainedByReact(),\n );\n const subscription = React.useRef<(() => void) | null>(null);\n const handlerRef = React.useRef<\n TreeViewEventListener<TreeViewUsedEvents<Signature>[E]> | undefined\n >();\n handlerRef.current = handler;\n const cleanupTokenRef = React.useRef<UnregisterToken | null>(null);\n\n if (!subscription.current && handlerRef.current) {\n const enhancedHandler: TreeViewEventListener<\n TreeViewUsedEvents<Signature>[E]\n > = (params, event) => {\n if (!event.defaultMuiPrevented) {\n handlerRef.current?.(params, event);\n }\n };\n\n subscription.current = instance.$$subscribeEvent(\n eventName as string,\n enhancedHandler,\n );\n\n cleanupTokensCounter += 1;\n cleanupTokenRef.current = { cleanupToken: cleanupTokensCounter };\n\n registryContainer.registry.register(\n objectRetainedByReact, // The callback below will be called once this reference stops being retained\n () => {\n subscription.current?.();\n subscription.current = null;\n cleanupTokenRef.current = null;\n },\n cleanupTokenRef.current,\n );\n } else if (!handlerRef.current && subscription.current) {\n subscription.current();\n subscription.current = null;\n\n if (cleanupTokenRef.current) {\n registryContainer.registry.unregister(cleanupTokenRef.current);\n cleanupTokenRef.current = null;\n }\n }\n\n React.useEffect(() => {\n if (!subscription.current && handlerRef.current) {\n const enhancedHandler: TreeViewEventListener<\n TreeViewUsedEvents<Signature>[E]\n > = (params, event) => {\n if (!event.defaultMuiPrevented) {\n handlerRef.current?.(params, event);\n }\n };\n\n subscription.current = instance.$$subscribeEvent(\n eventName as string,\n enhancedHandler,\n );\n }\n\n if (cleanupTokenRef.current && registryContainer.registry) {\n // If the effect was called, it means that this render was committed\n // so we can trust the cleanup function to remove the listener.\n registryContainer.registry.unregister(cleanupTokenRef.current);\n cleanupTokenRef.current = null;\n }\n\n return () => {\n subscription.current?.();\n subscription.current = null;\n };\n }, [instance, eventName]);\n };\n}\n\nconst registryContainer: RegistryContainer = { registry: null };\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const unstable_resetCleanupTracking = () => {\n registryContainer.registry?.reset();\n registryContainer.registry = null;\n};\n\nexport const useInstanceEventHandler =\n createUseInstanceEventHandler(registryContainer);\n"],"names":["registryContainer","useInstanceEventHandler"],"mappings":";;;AAcA,MAAM,0BAA0B;AAAC;AAI1B,SAAS,8BACdA,oBACA;AACA,MAAI,uBAAuB;AAE3B,SAAO,SAASC,yBAMd,UACA,WACA,SAGA;AAGID,QAAAA,mBAAkB,aAAa,MAAM;AACvCA,yBAAkB,WAChB,OAAO,yBAAyB,cAC5B,IAAI,yCACJ,IAAA,IAAI;IACZ;AAEM,UAAA,CAAC,qBAAqB,IAAI,MAAM;AAAA,MACpC,IAAI,0BAA0B;AAAA,IAAA;AAE1B,UAAA,eAAe,MAAM,OAA4B,IAAI;AACrD,UAAA,aAAa,MAAM;AAGzB,eAAW,UAAU;AACf,UAAA,kBAAkB,MAAM,OAA+B,IAAI;AAEjE,QAAI,CAAC,aAAa,WAAW,WAAW,SAAS;AACzC,YAAA,kBAEF,CAAC,QAAQ,UAAU;AACjB,YAAA,CAAC,MAAM,qBAAqB;AACnB,qBAAA,UAAU,QAAQ,KAAK;AAAA,QACpC;AAAA,MAAA;AAGF,mBAAa,UAAU,SAAS;AAAA,QAC9B;AAAA,QACA;AAAA,MAAA;AAGsB,8BAAA;AACR,sBAAA,UAAU,EAAE,cAAc,qBAAqB;AAE/DA,yBAAkB,SAAS;AAAA,QACzB;AAAA;AAAA,QACA,MAAM;AACJ,uBAAa,UAAU;AACvB,uBAAa,UAAU;AACvB,0BAAgB,UAAU;AAAA,QAC5B;AAAA,QACA,gBAAgB;AAAA,MAAA;AAAA,IAET,WAAA,CAAC,WAAW,WAAW,aAAa,SAAS;AACtD,mBAAa,QAAQ;AACrB,mBAAa,UAAU;AAEvB,UAAI,gBAAgB,SAAS;AAC3BA,2BAAkB,SAAS,WAAW,gBAAgB,OAAO;AAC7D,wBAAgB,UAAU;AAAA,MAC5B;AAAA,IACF;AAEA,UAAM,UAAU,MAAM;AACpB,UAAI,CAAC,aAAa,WAAW,WAAW,SAAS;AACzC,cAAA,kBAEF,CAAC,QAAQ,UAAU;AACjB,cAAA,CAAC,MAAM,qBAAqB;AACnB,uBAAA,UAAU,QAAQ,KAAK;AAAA,UACpC;AAAA,QAAA;AAGF,qBAAa,UAAU,SAAS;AAAA,UAC9B;AAAA,UACA;AAAA,QAAA;AAAA,MAEJ;AAEI,UAAA,gBAAgB,WAAWA,mBAAkB,UAAU;AAGzDA,2BAAkB,SAAS,WAAW,gBAAgB,OAAO;AAC7D,wBAAgB,UAAU;AAAA,MAC5B;AAEA,aAAO,MAAM;AACX,qBAAa,UAAU;AACvB,qBAAa,UAAU;AAAA,MAAA;AAAA,IACzB,GACC,CAAC,UAAU,SAAS,CAAC;AAAA,EAAA;AAE5B;AAEA,MAAM,oBAAuC,EAAE,UAAU;AAQ5C,MAAA,0BACX,8BAA8B,iBAAiB;"}
1
+ {"version":3,"file":"useInstanceEventHandler.js","sources":["../../../../../src/TreeView/internals/hooks/useInstanceEventHandler.ts"],"sourcesContent":["import * as React from \"react\";\n\nimport { TreeViewAnyPluginSignature, TreeViewUsedEvents } from \"../types\";\nimport { TreeViewEventListener } from \"../types/events\";\nimport { CleanupTracking, UnregisterToken } from \"../utils/CleanupTracking\";\nimport { FinalizationRegistryBasedCleanupTracking } from \"../utils/FinalizationRegistryBasedCleanupTracking\";\nimport { TimerBasedCleanupTracking } from \"../utils/TimerBasedCleanupTracking\";\nimport { UseTreeViewInstanceEventsInstance } from \"./useTreeViewInstanceEvents.types\";\n\ninterface RegistryContainer {\n registry: CleanupTracking | null;\n}\n\n// We use class to make it easier to detect in heap snapshots by name\nclass ObjectToBeRetainedByReact {}\n\n// Based on https://github.com/Bnaya/use-dispose-uncommitted/blob/main/src/finalization-registry-based-impl.ts\n// Check https://github.com/facebook/react/issues/15317 to get more information\nexport function createUseInstanceEventHandler(\n registryContainer: RegistryContainer,\n) {\n let cleanupTokensCounter = 0;\n\n return function useInstanceEventHandler<\n Instance extends UseTreeViewInstanceEventsInstance & {\n $$signature: TreeViewAnyPluginSignature;\n },\n E extends keyof TreeViewUsedEvents<Instance[\"$$signature\"]>,\n >(\n instance: Instance,\n eventName: E,\n handler: TreeViewEventListener<\n TreeViewUsedEvents<Instance[\"$$signature\"]>[E]\n >,\n ) {\n type Signature = Instance[\"$$signature\"];\n\n if (registryContainer.registry === null) {\n registryContainer.registry =\n typeof FinalizationRegistry !== \"undefined\"\n ? new FinalizationRegistryBasedCleanupTracking()\n : new TimerBasedCleanupTracking();\n }\n\n const [objectRetainedByReact] = React.useState(\n new ObjectToBeRetainedByReact(),\n );\n const subscription = React.useRef<(() => void) | null>(null);\n const handlerRef = React.useRef<\n TreeViewEventListener<TreeViewUsedEvents<Signature>[E]> | undefined\n >();\n handlerRef.current = handler;\n const cleanupTokenRef = React.useRef<UnregisterToken | null>(null);\n\n if (!subscription.current && handlerRef.current) {\n const enhancedHandler: TreeViewEventListener<\n TreeViewUsedEvents<Signature>[E]\n > = (params, event) => {\n if (!event.defaultMuiPrevented) {\n handlerRef.current?.(params, event);\n }\n };\n\n subscription.current = instance.$$subscribeEvent(\n eventName as string,\n enhancedHandler,\n );\n\n cleanupTokensCounter += 1;\n cleanupTokenRef.current = { cleanupToken: cleanupTokensCounter };\n\n registryContainer.registry.register(\n objectRetainedByReact, // The callback below will be called once this reference stops being retained\n () => {\n subscription.current?.();\n subscription.current = null;\n cleanupTokenRef.current = null;\n },\n cleanupTokenRef.current,\n );\n } else if (!handlerRef.current && subscription.current) {\n subscription.current();\n subscription.current = null;\n\n if (cleanupTokenRef.current) {\n registryContainer.registry.unregister(cleanupTokenRef.current);\n cleanupTokenRef.current = null;\n }\n }\n\n React.useEffect(() => {\n if (!subscription.current && handlerRef.current) {\n const enhancedHandler: TreeViewEventListener<\n TreeViewUsedEvents<Signature>[E]\n > = (params, event) => {\n if (!event.defaultMuiPrevented) {\n handlerRef.current?.(params, event);\n }\n };\n\n subscription.current = instance.$$subscribeEvent(\n eventName as string,\n enhancedHandler,\n );\n }\n\n if (cleanupTokenRef.current && registryContainer.registry) {\n // If the effect was called, it means that this render was committed\n // so we can trust the cleanup function to remove the listener.\n registryContainer.registry.unregister(cleanupTokenRef.current);\n cleanupTokenRef.current = null;\n }\n\n return () => {\n subscription.current?.();\n subscription.current = null;\n };\n }, [instance, eventName]);\n };\n}\n\nconst registryContainer: RegistryContainer = { registry: null };\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const unstable_resetCleanupTracking = () => {\n registryContainer.registry?.reset();\n registryContainer.registry = null;\n};\n\nexport const useInstanceEventHandler =\n createUseInstanceEventHandler(registryContainer);\n"],"names":["registryContainer","useInstanceEventHandler"],"mappings":";;;AAcA,MAAM,0BAA0B;AAAC;AAI1B,SAAS,8BACdA,oBACA;AACA,MAAI,uBAAuB;AAE3B,SAAO,SAASC,yBAMd,UACA,WACA,SAGA;AAGID,QAAAA,mBAAkB,aAAa,MAAM;AACvCA,yBAAkB,WAChB,OAAO,yBAAyB,cAC5B,IAAI,yCAAA,IACJ,IAAI,0BAA0B;AAAA,IAAA;AAGhC,UAAA,CAAC,qBAAqB,IAAI,MAAM;AAAA,MACpC,IAAI,0BAA0B;AAAA,IAChC;AACM,UAAA,eAAe,MAAM,OAA4B,IAAI;AACrD,UAAA,aAAa,MAAM,OAEvB;AACF,eAAW,UAAU;AACf,UAAA,kBAAkB,MAAM,OAA+B,IAAI;AAEjE,QAAI,CAAC,aAAa,WAAW,WAAW,SAAS;AACzC,YAAA,kBAEF,CAAC,QAAQ,UAAU;AACjB,YAAA,CAAC,MAAM,qBAAqB;AACnB,qBAAA,UAAU,QAAQ,KAAK;AAAA,QAAA;AAAA,MAEtC;AAEA,mBAAa,UAAU,SAAS;AAAA,QAC9B;AAAA,QACA;AAAA,MACF;AAEwB,8BAAA;AACR,sBAAA,UAAU,EAAE,cAAc,qBAAqB;AAE/DA,yBAAkB,SAAS;AAAA,QACzB;AAAA;AAAA,QACA,MAAM;AACJ,uBAAa,UAAU;AACvB,uBAAa,UAAU;AACvB,0BAAgB,UAAU;AAAA,QAC5B;AAAA,QACA,gBAAgB;AAAA,MAClB;AAAA,IACS,WAAA,CAAC,WAAW,WAAW,aAAa,SAAS;AACtD,mBAAa,QAAQ;AACrB,mBAAa,UAAU;AAEvB,UAAI,gBAAgB,SAAS;AAC3BA,2BAAkB,SAAS,WAAW,gBAAgB,OAAO;AAC7D,wBAAgB,UAAU;AAAA,MAAA;AAAA,IAC5B;AAGF,UAAM,UAAU,MAAM;AACpB,UAAI,CAAC,aAAa,WAAW,WAAW,SAAS;AACzC,cAAA,kBAEF,CAAC,QAAQ,UAAU;AACjB,cAAA,CAAC,MAAM,qBAAqB;AACnB,uBAAA,UAAU,QAAQ,KAAK;AAAA,UAAA;AAAA,QAEtC;AAEA,qBAAa,UAAU,SAAS;AAAA,UAC9B;AAAA,UACA;AAAA,QACF;AAAA,MAAA;AAGE,UAAA,gBAAgB,WAAWA,mBAAkB,UAAU;AAGzDA,2BAAkB,SAAS,WAAW,gBAAgB,OAAO;AAC7D,wBAAgB,UAAU;AAAA,MAAA;AAG5B,aAAO,MAAM;AACX,qBAAa,UAAU;AACvB,qBAAa,UAAU;AAAA,MACzB;AAAA,IAAA,GACC,CAAC,UAAU,SAAS,CAAC;AAAA,EAC1B;AACF;AAEA,MAAM,oBAAuC,EAAE,UAAU,KAAK;AAQjD,MAAA,0BACX,8BAA8B,iBAAiB;"}
@@ -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;"}