@mui/lab 5.0.0-alpha.106 → 5.0.0-alpha.108

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 (347) hide show
  1. package/AdapterDateFns/AdapterDateFns.js +2 -4
  2. package/AdapterDayjs/AdapterDayjs.js +2 -4
  3. package/AdapterLuxon/AdapterLuxon.js +2 -4
  4. package/AdapterMoment/AdapterMoment.js +2 -4
  5. package/Alert/Alert.js +1 -2
  6. package/AlertTitle/AlertTitle.js +1 -2
  7. package/Autocomplete/Autocomplete.js +1 -2
  8. package/AvatarGroup/AvatarGroup.js +1 -2
  9. package/CHANGELOG.md +127 -1
  10. package/CalendarPicker/CalendarPicker.js +0 -2
  11. package/CalendarPickerSkeleton/CalendarPickerSkeleton.js +0 -2
  12. package/ClockPicker/ClockPicker.js +0 -2
  13. package/DatePicker/DatePicker.js +0 -2
  14. package/DateRangePicker/DateRangePicker.js +0 -2
  15. package/DateRangePickerDay/DateRangePickerDay.js +0 -2
  16. package/DateTimePicker/DateTimePicker.js +0 -2
  17. package/DesktopDatePicker/DesktopDatePicker.js +0 -2
  18. package/DesktopDateRangePicker/DesktopDateRangePicker.js +0 -2
  19. package/DesktopDateTimePicker/DesktopDateTimePicker.js +0 -2
  20. package/DesktopTimePicker/DesktopTimePicker.js +0 -2
  21. package/LoadingButton/LoadingButton.js +13 -34
  22. package/LocalizationProvider/LocalizationProvider.js +0 -2
  23. package/Masonry/Masonry.js +27 -68
  24. package/MobileDatePicker/MobileDatePicker.js +0 -2
  25. package/MobileDateRangePicker/MobileDateRangePicker.js +0 -2
  26. package/MobileDateTimePicker/MobileDateTimePicker.js +0 -2
  27. package/MobileTimePicker/MobileTimePicker.js +0 -2
  28. package/MonthPicker/MonthPicker.js +0 -2
  29. package/Pagination/Pagination.js +1 -2
  30. package/PaginationItem/PaginationItem.js +1 -2
  31. package/PickersDay/PickersDay.js +0 -2
  32. package/Rating/Rating.js +1 -2
  33. package/Skeleton/Skeleton.js +1 -2
  34. package/SpeedDial/SpeedDial.js +1 -2
  35. package/SpeedDialAction/SpeedDialAction.js +1 -2
  36. package/SpeedDialIcon/SpeedDialIcon.js +1 -2
  37. package/StaticDatePicker/StaticDatePicker.js +0 -2
  38. package/StaticDateRangePicker/StaticDateRangePicker.js +0 -2
  39. package/StaticDateTimePicker/StaticDateTimePicker.js +0 -2
  40. package/StaticTimePicker/StaticTimePicker.js +0 -2
  41. package/TabContext/TabContext.js +3 -14
  42. package/TabList/TabList.js +4 -11
  43. package/TabPanel/TabPanel.js +6 -20
  44. package/TimePicker/TimePicker.js +0 -2
  45. package/Timeline/Timeline.js +9 -20
  46. package/Timeline/TimelineContext.js +1 -3
  47. package/TimelineConnector/TimelineConnector.js +4 -14
  48. package/TimelineContent/TimelineContent.js +4 -16
  49. package/TimelineDot/TimelineDot.js +8 -25
  50. package/TimelineItem/TimelineItem.js +5 -18
  51. package/TimelineOppositeContent/TimelineOppositeContent.js +4 -16
  52. package/TimelineSeparator/TimelineSeparator.js +4 -14
  53. package/ToggleButton/ToggleButton.js +1 -2
  54. package/ToggleButtonGroup/ToggleButtonGroup.js +1 -2
  55. package/TreeItem/TreeItem.js +19 -58
  56. package/TreeItem/TreeItemContent.js +12 -28
  57. package/TreeItem/useTreeItem.js +2 -8
  58. package/TreeView/TreeView.js +51 -195
  59. package/TreeView/TreeViewContext.js +1 -3
  60. package/TreeView/descendants.js +19 -31
  61. package/YearPicker/YearPicker.js +1 -3
  62. package/index.js +3 -2
  63. package/internal/svg-icons/ArrowDropDown.js +1 -1
  64. package/internal/svg-icons/ArrowLeft.js +1 -1
  65. package/internal/svg-icons/ArrowRight.js +1 -1
  66. package/internal/svg-icons/Calendar.js +1 -1
  67. package/internal/svg-icons/Clock.js +1 -1
  68. package/internal/svg-icons/DateRange.js +1 -1
  69. package/internal/svg-icons/Pen.js +1 -1
  70. package/internal/svg-icons/Time.js +1 -1
  71. package/legacy/AdapterDateFns/AdapterDateFns.js +2 -5
  72. package/legacy/AdapterDayjs/AdapterDayjs.js +2 -5
  73. package/legacy/AdapterLuxon/AdapterLuxon.js +2 -5
  74. package/legacy/AdapterMoment/AdapterMoment.js +2 -5
  75. package/legacy/Alert/Alert.js +1 -2
  76. package/legacy/AlertTitle/AlertTitle.js +1 -2
  77. package/legacy/Autocomplete/Autocomplete.js +1 -2
  78. package/legacy/AvatarGroup/AvatarGroup.js +1 -2
  79. package/legacy/CalendarPicker/CalendarPicker.js +0 -2
  80. package/legacy/CalendarPickerSkeleton/CalendarPickerSkeleton.js +0 -2
  81. package/legacy/ClockPicker/ClockPicker.js +0 -2
  82. package/legacy/DatePicker/DatePicker.js +0 -2
  83. package/legacy/DateRangePicker/DateRangePicker.js +0 -2
  84. package/legacy/DateRangePickerDay/DateRangePickerDay.js +0 -2
  85. package/legacy/DateTimePicker/DateTimePicker.js +0 -2
  86. package/legacy/DesktopDatePicker/DesktopDatePicker.js +0 -2
  87. package/legacy/DesktopDateRangePicker/DesktopDateRangePicker.js +0 -2
  88. package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +0 -2
  89. package/legacy/DesktopTimePicker/DesktopTimePicker.js +0 -2
  90. package/legacy/LoadingButton/LoadingButton.js +19 -40
  91. package/legacy/LocalizationProvider/LocalizationProvider.js +0 -2
  92. package/legacy/Masonry/Masonry.js +33 -77
  93. package/legacy/MobileDatePicker/MobileDatePicker.js +0 -2
  94. package/legacy/MobileDateRangePicker/MobileDateRangePicker.js +0 -2
  95. package/legacy/MobileDateTimePicker/MobileDateTimePicker.js +0 -2
  96. package/legacy/MobileTimePicker/MobileTimePicker.js +0 -2
  97. package/legacy/MonthPicker/MonthPicker.js +0 -2
  98. package/legacy/Pagination/Pagination.js +1 -2
  99. package/legacy/PaginationItem/PaginationItem.js +1 -2
  100. package/legacy/PickersDay/PickersDay.js +0 -2
  101. package/legacy/Rating/Rating.js +1 -2
  102. package/legacy/Skeleton/Skeleton.js +1 -2
  103. package/legacy/SpeedDial/SpeedDial.js +1 -2
  104. package/legacy/SpeedDialAction/SpeedDialAction.js +1 -2
  105. package/legacy/SpeedDialIcon/SpeedDialIcon.js +1 -2
  106. package/legacy/StaticDatePicker/StaticDatePicker.js +0 -2
  107. package/legacy/StaticDateRangePicker/StaticDateRangePicker.js +0 -2
  108. package/legacy/StaticDateTimePicker/StaticDateTimePicker.js +0 -2
  109. package/legacy/StaticTimePicker/StaticTimePicker.js +0 -2
  110. package/legacy/TabContext/TabContext.js +6 -18
  111. package/legacy/TabList/TabList.js +2 -9
  112. package/legacy/TabPanel/TabPanel.js +4 -18
  113. package/legacy/TimePicker/TimePicker.js +0 -2
  114. package/legacy/Timeline/Timeline.js +9 -20
  115. package/legacy/Timeline/TimelineContext.js +1 -3
  116. package/legacy/TimelineConnector/TimelineConnector.js +2 -12
  117. package/legacy/TimelineContent/TimelineContent.js +4 -16
  118. package/legacy/TimelineDot/TimelineDot.js +11 -28
  119. package/legacy/TimelineItem/TimelineItem.js +6 -21
  120. package/legacy/TimelineOppositeContent/TimelineOppositeContent.js +4 -16
  121. package/legacy/TimelineSeparator/TimelineSeparator.js +2 -12
  122. package/legacy/ToggleButton/ToggleButton.js +1 -2
  123. package/legacy/ToggleButtonGroup/ToggleButtonGroup.js +1 -2
  124. package/legacy/TreeItem/TreeItem.js +37 -81
  125. package/legacy/TreeItem/TreeItemContent.js +17 -34
  126. package/legacy/TreeItem/useTreeItem.js +12 -19
  127. package/legacy/TreeView/TreeView.js +83 -236
  128. package/legacy/TreeView/TreeViewContext.js +1 -3
  129. package/legacy/TreeView/descendants.js +26 -44
  130. package/legacy/YearPicker/YearPicker.js +1 -3
  131. package/legacy/index.js +3 -2
  132. package/legacy/internal/svg-icons/ArrowDropDown.js +1 -1
  133. package/legacy/internal/svg-icons/ArrowLeft.js +1 -1
  134. package/legacy/internal/svg-icons/ArrowRight.js +1 -1
  135. package/legacy/internal/svg-icons/Calendar.js +1 -1
  136. package/legacy/internal/svg-icons/Clock.js +1 -1
  137. package/legacy/internal/svg-icons/DateRange.js +1 -1
  138. package/legacy/internal/svg-icons/Pen.js +1 -1
  139. package/legacy/internal/svg-icons/Time.js +1 -1
  140. package/modern/AdapterDateFns/AdapterDateFns.js +2 -4
  141. package/modern/AdapterDayjs/AdapterDayjs.js +2 -4
  142. package/modern/AdapterLuxon/AdapterLuxon.js +2 -4
  143. package/modern/AdapterMoment/AdapterMoment.js +2 -4
  144. package/modern/Alert/Alert.js +1 -2
  145. package/modern/AlertTitle/AlertTitle.js +1 -2
  146. package/modern/Autocomplete/Autocomplete.js +1 -2
  147. package/modern/AvatarGroup/AvatarGroup.js +1 -2
  148. package/modern/CalendarPicker/CalendarPicker.js +0 -2
  149. package/modern/CalendarPickerSkeleton/CalendarPickerSkeleton.js +0 -2
  150. package/modern/ClockPicker/ClockPicker.js +0 -2
  151. package/modern/DatePicker/DatePicker.js +0 -2
  152. package/modern/DateRangePicker/DateRangePicker.js +0 -2
  153. package/modern/DateRangePickerDay/DateRangePickerDay.js +0 -2
  154. package/modern/DateTimePicker/DateTimePicker.js +0 -2
  155. package/modern/DesktopDatePicker/DesktopDatePicker.js +0 -2
  156. package/modern/DesktopDateRangePicker/DesktopDateRangePicker.js +0 -2
  157. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +0 -2
  158. package/modern/DesktopTimePicker/DesktopTimePicker.js +0 -2
  159. package/modern/LoadingButton/LoadingButton.js +13 -35
  160. package/modern/LocalizationProvider/LocalizationProvider.js +0 -2
  161. package/modern/Masonry/Masonry.js +27 -68
  162. package/modern/MobileDatePicker/MobileDatePicker.js +0 -2
  163. package/modern/MobileDateRangePicker/MobileDateRangePicker.js +0 -2
  164. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +0 -2
  165. package/modern/MobileTimePicker/MobileTimePicker.js +0 -2
  166. package/modern/MonthPicker/MonthPicker.js +0 -2
  167. package/modern/Pagination/Pagination.js +1 -2
  168. package/modern/PaginationItem/PaginationItem.js +1 -2
  169. package/modern/PickersDay/PickersDay.js +0 -2
  170. package/modern/Rating/Rating.js +1 -2
  171. package/modern/Skeleton/Skeleton.js +1 -2
  172. package/modern/SpeedDial/SpeedDial.js +1 -2
  173. package/modern/SpeedDialAction/SpeedDialAction.js +1 -2
  174. package/modern/SpeedDialIcon/SpeedDialIcon.js +1 -2
  175. package/modern/StaticDatePicker/StaticDatePicker.js +0 -2
  176. package/modern/StaticDateRangePicker/StaticDateRangePicker.js +0 -2
  177. package/modern/StaticDateTimePicker/StaticDateTimePicker.js +0 -2
  178. package/modern/StaticTimePicker/StaticTimePicker.js +0 -2
  179. package/modern/TabContext/TabContext.js +3 -14
  180. package/modern/TabList/TabList.js +4 -11
  181. package/modern/TabPanel/TabPanel.js +6 -20
  182. package/modern/TimePicker/TimePicker.js +0 -2
  183. package/modern/Timeline/Timeline.js +9 -20
  184. package/modern/Timeline/TimelineContext.js +1 -3
  185. package/modern/TimelineConnector/TimelineConnector.js +4 -14
  186. package/modern/TimelineContent/TimelineContent.js +4 -16
  187. package/modern/TimelineDot/TimelineDot.js +8 -25
  188. package/modern/TimelineItem/TimelineItem.js +5 -18
  189. package/modern/TimelineOppositeContent/TimelineOppositeContent.js +4 -16
  190. package/modern/TimelineSeparator/TimelineSeparator.js +4 -14
  191. package/modern/ToggleButton/ToggleButton.js +1 -2
  192. package/modern/ToggleButtonGroup/ToggleButtonGroup.js +1 -2
  193. package/modern/TreeItem/TreeItem.js +19 -58
  194. package/modern/TreeItem/TreeItemContent.js +12 -28
  195. package/modern/TreeItem/useTreeItem.js +2 -8
  196. package/modern/TreeView/TreeView.js +51 -195
  197. package/modern/TreeView/TreeViewContext.js +1 -3
  198. package/modern/TreeView/descendants.js +19 -31
  199. package/modern/YearPicker/YearPicker.js +1 -3
  200. package/modern/index.js +3 -2
  201. package/modern/internal/svg-icons/ArrowDropDown.js +1 -1
  202. package/modern/internal/svg-icons/ArrowLeft.js +1 -1
  203. package/modern/internal/svg-icons/ArrowRight.js +1 -1
  204. package/modern/internal/svg-icons/Calendar.js +1 -1
  205. package/modern/internal/svg-icons/Clock.js +1 -1
  206. package/modern/internal/svg-icons/DateRange.js +1 -1
  207. package/modern/internal/svg-icons/Pen.js +1 -1
  208. package/modern/internal/svg-icons/Time.js +1 -1
  209. package/node/AdapterDateFns/AdapterDateFns.js +2 -5
  210. package/node/AdapterDateFns/index.js +0 -2
  211. package/node/AdapterDayjs/AdapterDayjs.js +2 -5
  212. package/node/AdapterDayjs/index.js +0 -2
  213. package/node/AdapterLuxon/AdapterLuxon.js +2 -5
  214. package/node/AdapterLuxon/index.js +0 -2
  215. package/node/AdapterMoment/AdapterMoment.js +2 -5
  216. package/node/AdapterMoment/index.js +0 -2
  217. package/node/Alert/Alert.js +1 -11
  218. package/node/Alert/index.js +0 -2
  219. package/node/AlertTitle/AlertTitle.js +1 -11
  220. package/node/AlertTitle/index.js +0 -2
  221. package/node/Autocomplete/Autocomplete.js +1 -11
  222. package/node/Autocomplete/index.js +0 -2
  223. package/node/AvatarGroup/AvatarGroup.js +1 -11
  224. package/node/AvatarGroup/index.js +0 -2
  225. package/node/CalendarPicker/CalendarPicker.js +1 -6
  226. package/node/CalendarPicker/index.js +0 -4
  227. package/node/CalendarPickerSkeleton/CalendarPickerSkeleton.js +1 -8
  228. package/node/CalendarPickerSkeleton/index.js +0 -4
  229. package/node/ClockPicker/ClockPicker.js +1 -6
  230. package/node/ClockPicker/index.js +0 -4
  231. package/node/DatePicker/DatePicker.js +1 -6
  232. package/node/DatePicker/index.js +0 -4
  233. package/node/DateRangePicker/DateRangePicker.js +1 -6
  234. package/node/DateRangePicker/index.js +0 -4
  235. package/node/DateRangePickerDay/DateRangePickerDay.js +1 -8
  236. package/node/DateRangePickerDay/index.js +0 -4
  237. package/node/DateTimePicker/DateTimePicker.js +1 -6
  238. package/node/DateTimePicker/index.js +0 -4
  239. package/node/DesktopDatePicker/DesktopDatePicker.js +1 -6
  240. package/node/DesktopDatePicker/index.js +0 -4
  241. package/node/DesktopDateRangePicker/DesktopDateRangePicker.js +1 -6
  242. package/node/DesktopDateRangePicker/index.js +0 -4
  243. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -6
  244. package/node/DesktopDateTimePicker/index.js +0 -4
  245. package/node/DesktopTimePicker/DesktopTimePicker.js +1 -6
  246. package/node/DesktopTimePicker/index.js +0 -4
  247. package/node/LoadingButton/LoadingButton.js +13 -46
  248. package/node/LoadingButton/index.js +0 -6
  249. package/node/LoadingButton/loadingButtonClasses.js +0 -5
  250. package/node/LocalizationProvider/LocalizationProvider.js +0 -6
  251. package/node/LocalizationProvider/index.js +0 -4
  252. package/node/Masonry/Masonry.js +27 -83
  253. package/node/Masonry/index.js +0 -6
  254. package/node/Masonry/masonryClasses.js +0 -5
  255. package/node/MobileDatePicker/MobileDatePicker.js +1 -6
  256. package/node/MobileDatePicker/index.js +0 -4
  257. package/node/MobileDateRangePicker/MobileDateRangePicker.js +1 -6
  258. package/node/MobileDateRangePicker/index.js +0 -4
  259. package/node/MobileDateTimePicker/MobileDateTimePicker.js +1 -6
  260. package/node/MobileDateTimePicker/index.js +0 -4
  261. package/node/MobileTimePicker/MobileTimePicker.js +1 -6
  262. package/node/MobileTimePicker/index.js +0 -4
  263. package/node/MonthPicker/MonthPicker.js +1 -8
  264. package/node/MonthPicker/index.js +0 -4
  265. package/node/Pagination/Pagination.js +1 -11
  266. package/node/Pagination/index.js +0 -3
  267. package/node/Pagination/usePagination.js +0 -2
  268. package/node/PaginationItem/PaginationItem.js +1 -11
  269. package/node/PaginationItem/index.js +0 -2
  270. package/node/PickersDay/PickersDay.js +1 -8
  271. package/node/PickersDay/index.js +0 -4
  272. package/node/Rating/Rating.js +1 -11
  273. package/node/Rating/index.js +0 -2
  274. package/node/Skeleton/Skeleton.js +1 -11
  275. package/node/Skeleton/index.js +0 -2
  276. package/node/SpeedDial/SpeedDial.js +1 -11
  277. package/node/SpeedDial/index.js +0 -2
  278. package/node/SpeedDialAction/SpeedDialAction.js +1 -11
  279. package/node/SpeedDialAction/index.js +0 -2
  280. package/node/SpeedDialIcon/SpeedDialIcon.js +1 -11
  281. package/node/SpeedDialIcon/index.js +0 -2
  282. package/node/StaticDatePicker/StaticDatePicker.js +1 -6
  283. package/node/StaticDatePicker/index.js +0 -4
  284. package/node/StaticDateRangePicker/StaticDateRangePicker.js +1 -6
  285. package/node/StaticDateRangePicker/index.js +0 -4
  286. package/node/StaticDateTimePicker/StaticDateTimePicker.js +1 -6
  287. package/node/StaticDateTimePicker/index.js +0 -4
  288. package/node/StaticTimePicker/StaticTimePicker.js +1 -6
  289. package/node/StaticTimePicker/index.js +0 -4
  290. package/node/TabContext/TabContext.js +2 -23
  291. package/node/TabContext/index.js +0 -4
  292. package/node/TabList/TabList.js +4 -22
  293. package/node/TabList/index.js +0 -2
  294. package/node/TabPanel/TabPanel.js +6 -31
  295. package/node/TabPanel/index.js +0 -6
  296. package/node/TabPanel/tabPanelClasses.js +0 -5
  297. package/node/TimePicker/TimePicker.js +1 -6
  298. package/node/TimePicker/index.js +0 -4
  299. package/node/Timeline/Timeline.js +9 -32
  300. package/node/Timeline/TimelineContext.js +0 -6
  301. package/node/Timeline/index.js +0 -6
  302. package/node/Timeline/timelineClasses.js +0 -5
  303. package/node/TimelineConnector/TimelineConnector.js +4 -25
  304. package/node/TimelineConnector/index.js +0 -6
  305. package/node/TimelineConnector/timelineConnectorClasses.js +0 -5
  306. package/node/TimelineContent/TimelineContent.js +4 -28
  307. package/node/TimelineContent/index.js +0 -6
  308. package/node/TimelineContent/timelineContentClasses.js +0 -5
  309. package/node/TimelineDot/TimelineDot.js +8 -36
  310. package/node/TimelineDot/index.js +0 -6
  311. package/node/TimelineDot/timelineDotClasses.js +0 -5
  312. package/node/TimelineItem/TimelineItem.js +5 -31
  313. package/node/TimelineItem/index.js +0 -6
  314. package/node/TimelineItem/timelineItemClasses.js +0 -5
  315. package/node/TimelineOppositeContent/TimelineOppositeContent.js +4 -28
  316. package/node/TimelineOppositeContent/index.js +0 -6
  317. package/node/TimelineOppositeContent/timelineOppositeContentClasses.js +0 -5
  318. package/node/TimelineSeparator/TimelineSeparator.js +4 -25
  319. package/node/TimelineSeparator/index.js +0 -6
  320. package/node/TimelineSeparator/timelineSeparatorClasses.js +0 -5
  321. package/node/ToggleButton/ToggleButton.js +1 -11
  322. package/node/ToggleButton/index.js +0 -2
  323. package/node/ToggleButtonGroup/ToggleButtonGroup.js +1 -11
  324. package/node/ToggleButtonGroup/index.js +0 -2
  325. package/node/TreeItem/TreeItem.js +19 -73
  326. package/node/TreeItem/TreeItemContent.js +11 -38
  327. package/node/TreeItem/index.js +0 -7
  328. package/node/TreeItem/treeItemClasses.js +0 -5
  329. package/node/TreeItem/useTreeItem.js +2 -14
  330. package/node/TreeView/TreeView.js +51 -205
  331. package/node/TreeView/TreeViewContext.js +0 -6
  332. package/node/TreeView/descendants.js +18 -40
  333. package/node/TreeView/index.js +0 -6
  334. package/node/TreeView/treeViewClasses.js +0 -5
  335. package/node/YearPicker/YearPicker.js +1 -6
  336. package/node/YearPicker/index.js +0 -4
  337. package/node/index.js +1 -107
  338. package/node/internal/svg-icons/ArrowDropDown.js +0 -7
  339. package/node/internal/svg-icons/ArrowLeft.js +0 -7
  340. package/node/internal/svg-icons/ArrowRight.js +0 -7
  341. package/node/internal/svg-icons/Calendar.js +0 -7
  342. package/node/internal/svg-icons/Clock.js +0 -7
  343. package/node/internal/svg-icons/DateRange.js +0 -7
  344. package/node/internal/svg-icons/Pen.js +0 -7
  345. package/node/internal/svg-icons/Time.js +0 -7
  346. package/node/useAutocomplete/index.js +0 -1
  347. package/package.json +6 -6
@@ -11,7 +11,6 @@ import TreeViewContext from './TreeViewContext';
11
11
  import { DescendantProvider } from './descendants';
12
12
  import { getTreeViewUtilityClass } from './treeViewClasses';
13
13
  import { jsx as _jsx } from "react/jsx-runtime";
14
-
15
14
  var useUtilityClasses = function useUtilityClasses(ownerState) {
16
15
  var classes = ownerState.classes;
17
16
  var slots = {
@@ -19,7 +18,6 @@ var useUtilityClasses = function useUtilityClasses(ownerState) {
19
18
  };
20
19
  return composeClasses(slots, getTreeViewUtilityClass, classes);
21
20
  };
22
-
23
21
  var TreeViewRoot = styled('ul', {
24
22
  name: 'MuiTreeView',
25
23
  slot: 'Root',
@@ -32,25 +30,20 @@ var TreeViewRoot = styled('ul', {
32
30
  listStyle: 'none',
33
31
  outline: 0
34
32
  });
35
-
36
33
  function isPrintableCharacter(string) {
37
34
  return string && string.length === 1 && string.match(/\S/);
38
35
  }
39
-
40
36
  function findNextFirstChar(firstChars, startIndex, char) {
41
37
  for (var i = startIndex; i < firstChars.length; i += 1) {
42
38
  if (char === firstChars[i]) {
43
39
  return i;
44
40
  }
45
41
  }
46
-
47
42
  return -1;
48
43
  }
49
-
50
44
  function noopSelection() {
51
45
  return false;
52
46
  }
53
-
54
47
  var defaultDefaultExpanded = [];
55
48
  var defaultDefaultSelected = [];
56
49
  var TreeView = /*#__PURE__*/React.forwardRef(function TreeView(inProps, ref) {
@@ -58,37 +51,34 @@ var TreeView = /*#__PURE__*/React.forwardRef(function TreeView(inProps, ref) {
58
51
  props: inProps,
59
52
  name: 'MuiTreeView'
60
53
  });
61
-
62
54
  var children = props.children,
63
- className = props.className,
64
- defaultCollapseIcon = props.defaultCollapseIcon,
65
- defaultEndIcon = props.defaultEndIcon,
66
- _props$defaultExpande = props.defaultExpanded,
67
- defaultExpanded = _props$defaultExpande === void 0 ? defaultDefaultExpanded : _props$defaultExpande,
68
- defaultExpandIcon = props.defaultExpandIcon,
69
- defaultParentIcon = props.defaultParentIcon,
70
- _props$defaultSelecte = props.defaultSelected,
71
- defaultSelected = _props$defaultSelecte === void 0 ? defaultDefaultSelected : _props$defaultSelecte,
72
- _props$disabledItemsF = props.disabledItemsFocusable,
73
- disabledItemsFocusable = _props$disabledItemsF === void 0 ? false : _props$disabledItemsF,
74
- _props$disableSelecti = props.disableSelection,
75
- disableSelection = _props$disableSelecti === void 0 ? false : _props$disableSelecti,
76
- expandedProp = props.expanded,
77
- idProp = props.id,
78
- _props$multiSelect = props.multiSelect,
79
- multiSelect = _props$multiSelect === void 0 ? false : _props$multiSelect,
80
- onBlur = props.onBlur,
81
- onFocus = props.onFocus,
82
- onKeyDown = props.onKeyDown,
83
- onNodeFocus = props.onNodeFocus,
84
- onNodeSelect = props.onNodeSelect,
85
- onNodeToggle = props.onNodeToggle,
86
- selectedProp = props.selected,
87
- other = _objectWithoutProperties(props, ["children", "className", "defaultCollapseIcon", "defaultEndIcon", "defaultExpanded", "defaultExpandIcon", "defaultParentIcon", "defaultSelected", "disabledItemsFocusable", "disableSelection", "expanded", "id", "multiSelect", "onBlur", "onFocus", "onKeyDown", "onNodeFocus", "onNodeSelect", "onNodeToggle", "selected"]);
88
-
55
+ className = props.className,
56
+ defaultCollapseIcon = props.defaultCollapseIcon,
57
+ defaultEndIcon = props.defaultEndIcon,
58
+ _props$defaultExpande = props.defaultExpanded,
59
+ defaultExpanded = _props$defaultExpande === void 0 ? defaultDefaultExpanded : _props$defaultExpande,
60
+ defaultExpandIcon = props.defaultExpandIcon,
61
+ defaultParentIcon = props.defaultParentIcon,
62
+ _props$defaultSelecte = props.defaultSelected,
63
+ defaultSelected = _props$defaultSelecte === void 0 ? defaultDefaultSelected : _props$defaultSelecte,
64
+ _props$disabledItemsF = props.disabledItemsFocusable,
65
+ disabledItemsFocusable = _props$disabledItemsF === void 0 ? false : _props$disabledItemsF,
66
+ _props$disableSelecti = props.disableSelection,
67
+ disableSelection = _props$disableSelecti === void 0 ? false : _props$disableSelecti,
68
+ expandedProp = props.expanded,
69
+ idProp = props.id,
70
+ _props$multiSelect = props.multiSelect,
71
+ multiSelect = _props$multiSelect === void 0 ? false : _props$multiSelect,
72
+ onBlur = props.onBlur,
73
+ onFocus = props.onFocus,
74
+ onKeyDown = props.onKeyDown,
75
+ onNodeFocus = props.onNodeFocus,
76
+ onNodeSelect = props.onNodeSelect,
77
+ onNodeToggle = props.onNodeToggle,
78
+ selectedProp = props.selected,
79
+ other = _objectWithoutProperties(props, ["children", "className", "defaultCollapseIcon", "defaultEndIcon", "defaultExpanded", "defaultExpandIcon", "defaultParentIcon", "defaultSelected", "disabledItemsFocusable", "disableSelection", "expanded", "id", "multiSelect", "onBlur", "onFocus", "onKeyDown", "onNodeFocus", "onNodeSelect", "onNodeToggle", "selected"]);
89
80
  var theme = useTheme();
90
81
  var isRtl = theme.direction === 'rtl';
91
-
92
82
  var ownerState = _extends({}, props, {
93
83
  defaultExpanded: defaultExpanded,
94
84
  defaultSelected: defaultSelected,
@@ -96,43 +86,36 @@ var TreeView = /*#__PURE__*/React.forwardRef(function TreeView(inProps, ref) {
96
86
  disableSelection: disableSelection,
97
87
  multiSelect: multiSelect
98
88
  });
99
-
100
89
  var classes = useUtilityClasses(ownerState);
101
90
  var treeId = useId(idProp);
102
91
  var treeRef = React.useRef(null);
103
92
  var handleRef = useForkRef(treeRef, ref);
104
-
105
93
  var _React$useState = React.useState(null),
106
- focusedNodeId = _React$useState[0],
107
- setFocusedNodeId = _React$useState[1];
108
-
94
+ focusedNodeId = _React$useState[0],
95
+ setFocusedNodeId = _React$useState[1];
109
96
  var nodeMap = React.useRef({});
110
97
  var firstCharMap = React.useRef({});
111
-
112
98
  var _useControlled = useControlled({
113
- controlled: expandedProp,
114
- default: defaultExpanded,
115
- name: 'TreeView',
116
- state: 'expanded'
117
- }),
118
- _useControlled2 = _slicedToArray(_useControlled, 2),
119
- expanded = _useControlled2[0],
120
- setExpandedState = _useControlled2[1];
121
-
99
+ controlled: expandedProp,
100
+ default: defaultExpanded,
101
+ name: 'TreeView',
102
+ state: 'expanded'
103
+ }),
104
+ _useControlled2 = _slicedToArray(_useControlled, 2),
105
+ expanded = _useControlled2[0],
106
+ setExpandedState = _useControlled2[1];
122
107
  var _useControlled3 = useControlled({
123
- controlled: selectedProp,
124
- default: defaultSelected,
125
- name: 'TreeView',
126
- state: 'selected'
127
- }),
128
- _useControlled4 = _slicedToArray(_useControlled3, 2),
129
- selected = _useControlled4[0],
130
- setSelectedState = _useControlled4[1];
108
+ controlled: selectedProp,
109
+ default: defaultSelected,
110
+ name: 'TreeView',
111
+ state: 'selected'
112
+ }),
113
+ _useControlled4 = _slicedToArray(_useControlled3, 2),
114
+ selected = _useControlled4[0],
115
+ setSelectedState = _useControlled4[1];
131
116
  /*
132
117
  * Status Helpers
133
118
  */
134
-
135
-
136
119
  var isExpanded = React.useCallback(function (id) {
137
120
  return Array.isArray(expanded) ? expanded.indexOf(id) !== -1 : false;
138
121
  }, [expanded]);
@@ -143,36 +126,32 @@ var TreeView = /*#__PURE__*/React.forwardRef(function TreeView(inProps, ref) {
143
126
  return Array.isArray(selected) ? selected.indexOf(id) !== -1 : selected === id;
144
127
  }, [selected]);
145
128
  var isDisabled = React.useCallback(function (id) {
146
- var node = nodeMap.current[id]; // This can be called before the node has been added to the node map.
129
+ var node = nodeMap.current[id];
147
130
 
131
+ // This can be called before the node has been added to the node map.
148
132
  if (!node) {
149
133
  return false;
150
134
  }
151
-
152
135
  if (node.disabled) {
153
136
  return true;
154
137
  }
155
-
156
138
  while (node.parentId != null) {
157
139
  node = nodeMap.current[node.parentId];
158
-
159
140
  if (node.disabled) {
160
141
  return true;
161
142
  }
162
143
  }
163
-
164
144
  return false;
165
145
  }, []);
166
-
167
146
  var isFocused = function isFocused(id) {
168
147
  return focusedNodeId === id;
169
148
  };
149
+
170
150
  /*
171
151
  * Child Helpers
172
152
  */
173
- // Using Object.keys -> .map to mimic Object.values we should replace with Object.values() once we stop IE11 support.
174
-
175
153
 
154
+ // Using Object.keys -> .map to mimic Object.values we should replace with Object.values() once we stop IE11 support.
176
155
  var getChildrenIds = function getChildrenIds(id) {
177
156
  return Object.keys(nodeMap.current).map(function (key) {
178
157
  return nodeMap.current[key];
@@ -184,82 +163,66 @@ var TreeView = /*#__PURE__*/React.forwardRef(function TreeView(inProps, ref) {
184
163
  return child.id;
185
164
  });
186
165
  };
187
-
188
166
  var getNavigableChildrenIds = function getNavigableChildrenIds(id) {
189
167
  var childrenIds = getChildrenIds(id);
190
-
191
168
  if (!disabledItemsFocusable) {
192
169
  childrenIds = childrenIds.filter(function (node) {
193
170
  return !isDisabled(node);
194
171
  });
195
172
  }
196
-
197
173
  return childrenIds;
198
174
  };
175
+
199
176
  /*
200
177
  * Node Helpers
201
178
  */
202
179
 
203
-
204
180
  var getNextNode = function getNextNode(id) {
205
181
  // If expanded get first child
206
182
  if (isExpanded(id) && getNavigableChildrenIds(id).length > 0) {
207
183
  return getNavigableChildrenIds(id)[0];
208
184
  }
209
-
210
185
  var node = nodeMap.current[id];
211
-
212
186
  while (node != null) {
213
187
  // Try to get next sibling
214
188
  var siblings = getNavigableChildrenIds(node.parentId);
215
189
  var nextSibling = siblings[siblings.indexOf(node.id) + 1];
216
-
217
190
  if (nextSibling) {
218
191
  return nextSibling;
219
- } // If the sibling does not exist, go up a level to the parent and try again.
220
-
192
+ }
221
193
 
194
+ // If the sibling does not exist, go up a level to the parent and try again.
222
195
  node = nodeMap.current[node.parentId];
223
196
  }
224
-
225
197
  return null;
226
198
  };
227
-
228
199
  var getPreviousNode = function getPreviousNode(id) {
229
200
  var node = nodeMap.current[id];
230
201
  var siblings = getNavigableChildrenIds(node.parentId);
231
202
  var nodeIndex = siblings.indexOf(id);
232
-
233
203
  if (nodeIndex === 0) {
234
204
  return node.parentId;
235
205
  }
236
-
237
206
  var currentNode = siblings[nodeIndex - 1];
238
-
239
207
  while (isExpanded(currentNode) && getNavigableChildrenIds(currentNode).length > 0) {
240
208
  currentNode = getNavigableChildrenIds(currentNode).pop();
241
209
  }
242
-
243
210
  return currentNode;
244
211
  };
245
-
246
212
  var getLastNode = function getLastNode() {
247
213
  var lastNode = getNavigableChildrenIds(null).pop();
248
-
249
214
  while (isExpanded(lastNode)) {
250
215
  lastNode = getNavigableChildrenIds(lastNode).pop();
251
216
  }
252
-
253
217
  return lastNode;
254
218
  };
255
-
256
219
  var getFirstNode = function getFirstNode() {
257
220
  return getNavigableChildrenIds(null)[0];
258
221
  };
259
-
260
222
  var getParent = function getParent(id) {
261
223
  return nodeMap.current[id].parentId;
262
224
  };
225
+
263
226
  /**
264
227
  * This is used to determine the start and end of a selection range so
265
228
  * we can get the nodes between the two border nodes.
@@ -274,20 +237,15 @@ var TreeView = /*#__PURE__*/React.forwardRef(function TreeView(inProps, ref) {
274
237
  * Another way to put it is which node is shallower in a trémaux tree
275
238
  * https://en.wikipedia.org/wiki/Tr%C3%A9maux_tree
276
239
  */
277
-
278
-
279
240
  var findOrderInTremauxTree = function findOrderInTremauxTree(nodeAId, nodeBId) {
280
241
  if (nodeAId === nodeBId) {
281
242
  return [nodeAId, nodeBId];
282
243
  }
283
-
284
244
  var nodeA = nodeMap.current[nodeAId];
285
245
  var nodeB = nodeMap.current[nodeBId];
286
-
287
246
  if (nodeA.parentId === nodeB.id || nodeB.parentId === nodeA.id) {
288
247
  return nodeB.parentId === nodeA.id ? [nodeA.id, nodeB.id] : [nodeB.id, nodeA.id];
289
248
  }
290
-
291
249
  var aFamily = [nodeA.id];
292
250
  var bFamily = [nodeB.id];
293
251
  var aAncestor = nodeA.parentId;
@@ -296,129 +254,113 @@ var TreeView = /*#__PURE__*/React.forwardRef(function TreeView(inProps, ref) {
296
254
  var bAncestorIsCommon = aFamily.indexOf(bAncestor) !== -1;
297
255
  var continueA = true;
298
256
  var continueB = true;
299
-
300
257
  while (!bAncestorIsCommon && !aAncestorIsCommon) {
301
258
  if (continueA) {
302
259
  aFamily.push(aAncestor);
303
260
  aAncestorIsCommon = bFamily.indexOf(aAncestor) !== -1;
304
261
  continueA = aAncestor !== null;
305
-
306
262
  if (!aAncestorIsCommon && continueA) {
307
263
  aAncestor = nodeMap.current[aAncestor].parentId;
308
264
  }
309
265
  }
310
-
311
266
  if (continueB && !aAncestorIsCommon) {
312
267
  bFamily.push(bAncestor);
313
268
  bAncestorIsCommon = aFamily.indexOf(bAncestor) !== -1;
314
269
  continueB = bAncestor !== null;
315
-
316
270
  if (!bAncestorIsCommon && continueB) {
317
271
  bAncestor = nodeMap.current[bAncestor].parentId;
318
272
  }
319
273
  }
320
274
  }
321
-
322
275
  var commonAncestor = aAncestorIsCommon ? aAncestor : bAncestor;
323
276
  var ancestorFamily = getChildrenIds(commonAncestor);
324
277
  var aSide = aFamily[aFamily.indexOf(commonAncestor) - 1];
325
278
  var bSide = bFamily[bFamily.indexOf(commonAncestor) - 1];
326
279
  return ancestorFamily.indexOf(aSide) < ancestorFamily.indexOf(bSide) ? [nodeAId, nodeBId] : [nodeBId, nodeAId];
327
280
  };
328
-
329
281
  var getNodesInRange = function getNodesInRange(nodeA, nodeB) {
330
282
  var _findOrderInTremauxTr = findOrderInTremauxTree(nodeA, nodeB),
331
- _findOrderInTremauxTr2 = _slicedToArray(_findOrderInTremauxTr, 2),
332
- first = _findOrderInTremauxTr2[0],
333
- last = _findOrderInTremauxTr2[1];
334
-
283
+ _findOrderInTremauxTr2 = _slicedToArray(_findOrderInTremauxTr, 2),
284
+ first = _findOrderInTremauxTr2[0],
285
+ last = _findOrderInTremauxTr2[1];
335
286
  var nodes = [first];
336
287
  var current = first;
337
-
338
288
  while (current !== last) {
339
289
  current = getNextNode(current);
340
290
  nodes.push(current);
341
291
  }
342
-
343
292
  return nodes;
344
293
  };
294
+
345
295
  /*
346
296
  * Focus Helpers
347
297
  */
348
298
 
349
-
350
299
  var focus = function focus(event, id) {
351
300
  if (id) {
352
301
  setFocusedNodeId(id);
353
-
354
302
  if (onNodeFocus) {
355
303
  onNodeFocus(event, id);
356
304
  }
357
305
  }
358
306
  };
359
-
360
307
  var focusNextNode = function focusNextNode(event, id) {
361
308
  return focus(event, getNextNode(id));
362
309
  };
363
-
364
310
  var focusPreviousNode = function focusPreviousNode(event, id) {
365
311
  return focus(event, getPreviousNode(id));
366
312
  };
367
-
368
313
  var focusFirstNode = function focusFirstNode(event) {
369
314
  return focus(event, getFirstNode());
370
315
  };
371
-
372
316
  var focusLastNode = function focusLastNode(event) {
373
317
  return focus(event, getLastNode());
374
318
  };
375
-
376
319
  var focusByFirstCharacter = function focusByFirstCharacter(event, id, char) {
377
320
  var start;
378
321
  var index;
379
322
  var lowercaseChar = char.toLowerCase();
380
323
  var firstCharIds = [];
381
- var firstChars = []; // This really only works since the ids are strings
382
-
324
+ var firstChars = [];
325
+ // This really only works since the ids are strings
383
326
  Object.keys(firstCharMap.current).forEach(function (nodeId) {
384
327
  var firstChar = firstCharMap.current[nodeId];
385
328
  var map = nodeMap.current[nodeId];
386
329
  var visible = map.parentId ? isExpanded(map.parentId) : true;
387
330
  var shouldBeSkipped = disabledItemsFocusable ? false : isDisabled(nodeId);
388
-
389
331
  if (visible && !shouldBeSkipped) {
390
332
  firstCharIds.push(nodeId);
391
333
  firstChars.push(firstChar);
392
334
  }
393
- }); // Get start index for search based on position of currentItem
335
+ });
394
336
 
337
+ // Get start index for search based on position of currentItem
395
338
  start = firstCharIds.indexOf(id) + 1;
396
-
397
339
  if (start >= firstCharIds.length) {
398
340
  start = 0;
399
- } // Check remaining slots in the menu
400
-
341
+ }
401
342
 
402
- index = findNextFirstChar(firstChars, start, lowercaseChar); // If not found in remaining slots, check from beginning
343
+ // Check remaining slots in the menu
344
+ index = findNextFirstChar(firstChars, start, lowercaseChar);
403
345
 
346
+ // If not found in remaining slots, check from beginning
404
347
  if (index === -1) {
405
348
  index = findNextFirstChar(firstChars, 0, lowercaseChar);
406
- } // If match was found...
407
-
349
+ }
408
350
 
351
+ // If match was found...
409
352
  if (index > -1) {
410
353
  focus(event, firstCharIds[index]);
411
354
  }
412
355
  };
356
+
413
357
  /*
414
358
  * Expansion Helpers
415
359
  */
416
360
 
417
-
418
361
  var toggleExpansion = function toggleExpansion(event) {
419
362
  var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : focusedNodeId;
420
363
  var newExpanded;
421
-
422
364
  if (expanded.indexOf(value) !== -1) {
423
365
  newExpanded = expanded.filter(function (id) {
424
366
  return id !== value;
@@ -426,14 +368,11 @@ var TreeView = /*#__PURE__*/React.forwardRef(function TreeView(inProps, ref) {
426
368
  } else {
427
369
  newExpanded = [value].concat(expanded);
428
370
  }
429
-
430
371
  if (onNodeToggle) {
431
372
  onNodeToggle(event, newExpanded);
432
373
  }
433
-
434
374
  setExpandedState(newExpanded);
435
375
  };
436
-
437
376
  var expandAllSiblings = function expandAllSiblings(event, id) {
438
377
  var map = nodeMap.current[id];
439
378
  var siblings = getChildrenIds(map.parentId);
@@ -441,38 +380,32 @@ var TreeView = /*#__PURE__*/React.forwardRef(function TreeView(inProps, ref) {
441
380
  return isExpandable(child) && !isExpanded(child);
442
381
  });
443
382
  var newExpanded = expanded.concat(diff);
444
-
445
383
  if (diff.length > 0) {
446
384
  setExpandedState(newExpanded);
447
-
448
385
  if (onNodeToggle) {
449
386
  onNodeToggle(event, newExpanded);
450
387
  }
451
388
  }
452
389
  };
390
+
453
391
  /*
454
392
  * Selection Helpers
455
393
  */
456
394
 
457
-
458
395
  var lastSelectedNode = React.useRef(null);
459
396
  var lastSelectionWasRange = React.useRef(false);
460
397
  var currentRangeSelection = React.useRef([]);
461
-
462
398
  var handleRangeArrowSelect = function handleRangeArrowSelect(event, nodes) {
463
399
  var base = selected.slice();
464
400
  var start = nodes.start,
465
- next = nodes.next,
466
- current = nodes.current;
467
-
401
+ next = nodes.next,
402
+ current = nodes.current;
468
403
  if (!next || !current) {
469
404
  return;
470
405
  }
471
-
472
406
  if (currentRangeSelection.current.indexOf(current) === -1) {
473
407
  currentRangeSelection.current = [];
474
408
  }
475
-
476
409
  if (lastSelectionWasRange.current) {
477
410
  if (currentRangeSelection.current.indexOf(next) !== -1) {
478
411
  base = base.filter(function (id) {
@@ -489,25 +422,20 @@ var TreeView = /*#__PURE__*/React.forwardRef(function TreeView(inProps, ref) {
489
422
  base.push(next);
490
423
  currentRangeSelection.current.push(current, next);
491
424
  }
492
-
493
425
  if (onNodeSelect) {
494
426
  onNodeSelect(event, base);
495
427
  }
496
-
497
428
  setSelectedState(base);
498
429
  };
499
-
500
430
  var handleRangeSelect = function handleRangeSelect(event, nodes) {
501
431
  var base = selected.slice();
502
432
  var start = nodes.start,
503
- end = nodes.end; // If last selection was a range selection ignore nodes that were selected.
504
-
433
+ end = nodes.end; // If last selection was a range selection ignore nodes that were selected.
505
434
  if (lastSelectionWasRange.current) {
506
435
  base = base.filter(function (id) {
507
436
  return currentRangeSelection.current.indexOf(id) === -1;
508
437
  });
509
438
  }
510
-
511
439
  var range = getNodesInRange(start, end);
512
440
  range = range.filter(function (node) {
513
441
  return !isDisabled(node);
@@ -517,17 +445,13 @@ var TreeView = /*#__PURE__*/React.forwardRef(function TreeView(inProps, ref) {
517
445
  newSelected = newSelected.filter(function (id, i) {
518
446
  return newSelected.indexOf(id) === i;
519
447
  });
520
-
521
448
  if (onNodeSelect) {
522
449
  onNodeSelect(event, newSelected);
523
450
  }
524
-
525
451
  setSelectedState(newSelected);
526
452
  };
527
-
528
453
  var handleMultipleSelect = function handleMultipleSelect(event, value) {
529
454
  var newSelected;
530
-
531
455
  if (selected.indexOf(value) !== -1) {
532
456
  newSelected = selected.filter(function (id) {
533
457
  return id !== value;
@@ -535,50 +459,39 @@ var TreeView = /*#__PURE__*/React.forwardRef(function TreeView(inProps, ref) {
535
459
  } else {
536
460
  newSelected = [value].concat(selected);
537
461
  }
538
-
539
462
  if (onNodeSelect) {
540
463
  onNodeSelect(event, newSelected);
541
464
  }
542
-
543
465
  setSelectedState(newSelected);
544
466
  };
545
-
546
467
  var handleSingleSelect = function handleSingleSelect(event, value) {
547
468
  var newSelected = multiSelect ? [value] : value;
548
-
549
469
  if (onNodeSelect) {
550
470
  onNodeSelect(event, newSelected);
551
471
  }
552
-
553
472
  setSelectedState(newSelected);
554
473
  };
555
-
556
474
  var selectNode = function selectNode(event, id) {
557
475
  var multiple = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
558
-
559
476
  if (id) {
560
477
  if (multiple) {
561
478
  handleMultipleSelect(event, id);
562
479
  } else {
563
480
  handleSingleSelect(event, id);
564
481
  }
565
-
566
482
  lastSelectedNode.current = id;
567
483
  lastSelectionWasRange.current = false;
568
484
  currentRangeSelection.current = [];
569
485
  return true;
570
486
  }
571
-
572
487
  return false;
573
488
  };
574
-
575
489
  var selectRange = function selectRange(event, nodes) {
576
490
  var stacked = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
577
491
  var _nodes$start = nodes.start,
578
- start = _nodes$start === void 0 ? lastSelectedNode.current : _nodes$start,
579
- end = nodes.end,
580
- current = nodes.current;
581
-
492
+ start = _nodes$start === void 0 ? lastSelectedNode.current : _nodes$start,
493
+ end = nodes.end,
494
+ current = nodes.current;
582
495
  if (stacked) {
583
496
  handleRangeArrowSelect(event, {
584
497
  start: start,
@@ -591,34 +504,28 @@ var TreeView = /*#__PURE__*/React.forwardRef(function TreeView(inProps, ref) {
591
504
  end: end
592
505
  });
593
506
  }
594
-
595
507
  lastSelectionWasRange.current = true;
596
508
  };
597
-
598
509
  var rangeSelectToFirst = function rangeSelectToFirst(event, id) {
599
510
  if (!lastSelectedNode.current) {
600
511
  lastSelectedNode.current = id;
601
512
  }
602
-
603
513
  var start = lastSelectionWasRange.current ? lastSelectedNode.current : id;
604
514
  selectRange(event, {
605
515
  start: start,
606
516
  end: getFirstNode()
607
517
  });
608
518
  };
609
-
610
519
  var rangeSelectToLast = function rangeSelectToLast(event, id) {
611
520
  if (!lastSelectedNode.current) {
612
521
  lastSelectedNode.current = id;
613
522
  }
614
-
615
523
  var start = lastSelectionWasRange.current ? lastSelectedNode.current : id;
616
524
  selectRange(event, {
617
525
  start: start,
618
526
  end: getLastNode()
619
527
  });
620
528
  };
621
-
622
529
  var selectNextNode = function selectNextNode(event, id) {
623
530
  if (!isDisabled(getNextNode(id))) {
624
531
  selectRange(event, {
@@ -627,7 +534,6 @@ var TreeView = /*#__PURE__*/React.forwardRef(function TreeView(inProps, ref) {
627
534
  }, true);
628
535
  }
629
536
  };
630
-
631
537
  var selectPreviousNode = function selectPreviousNode(event, id) {
632
538
  if (!isDisabled(getPreviousNode(id))) {
633
539
  selectRange(event, {
@@ -636,25 +542,23 @@ var TreeView = /*#__PURE__*/React.forwardRef(function TreeView(inProps, ref) {
636
542
  }, true);
637
543
  }
638
544
  };
639
-
640
545
  var selectAllNodes = function selectAllNodes(event) {
641
546
  selectRange(event, {
642
547
  start: getFirstNode(),
643
548
  end: getLastNode()
644
549
  });
645
550
  };
551
+
646
552
  /*
647
553
  * Mapping Helpers
648
554
  */
649
-
650
-
651
555
  var registerNode = React.useCallback(function (node) {
652
556
  var id = node.id,
653
- index = node.index,
654
- parentId = node.parentId,
655
- expandable = node.expandable,
656
- idAttribute = node.idAttribute,
657
- disabled = node.disabled;
557
+ index = node.index,
558
+ parentId = node.parentId,
559
+ expandable = node.expandable,
560
+ idAttribute = node.idAttribute,
561
+ disabled = node.disabled;
658
562
  nodeMap.current[id] = {
659
563
  id: id,
660
564
  index: index,
@@ -666,14 +570,12 @@ var TreeView = /*#__PURE__*/React.forwardRef(function TreeView(inProps, ref) {
666
570
  }, []);
667
571
  var unregisterNode = React.useCallback(function (id) {
668
572
  var newMap = _extends({}, nodeMap.current);
669
-
670
573
  delete newMap[id];
671
574
  nodeMap.current = newMap;
672
575
  setFocusedNodeId(function (oldFocusedNodeId) {
673
576
  if (oldFocusedNodeId === id && treeRef.current === ownerDocument(treeRef.current).activeElement) {
674
577
  return getChildrenIds(null)[0];
675
578
  }
676
-
677
579
  return oldFocusedNodeId;
678
580
  });
679
581
  }, []);
@@ -682,10 +584,10 @@ var TreeView = /*#__PURE__*/React.forwardRef(function TreeView(inProps, ref) {
682
584
  }, []);
683
585
  var unMapFirstChar = React.useCallback(function (id) {
684
586
  var newMap = _extends({}, firstCharMap.current);
685
-
686
587
  delete newMap[id];
687
588
  firstCharMap.current = newMap;
688
589
  }, []);
590
+
689
591
  /**
690
592
  * Event handlers and Navigation
691
593
  */
@@ -698,36 +600,29 @@ var TreeView = /*#__PURE__*/React.forwardRef(function TreeView(inProps, ref) {
698
600
  toggleExpansion(event);
699
601
  }
700
602
  }
701
-
702
603
  return true;
703
604
  };
704
-
705
605
  var handlePreviousArrow = function handlePreviousArrow(event) {
706
606
  if (isExpanded(focusedNodeId) && !isDisabled(focusedNodeId)) {
707
607
  toggleExpansion(event, focusedNodeId);
708
608
  return true;
709
609
  }
710
-
711
610
  var parent = getParent(focusedNodeId);
712
-
713
611
  if (parent) {
714
612
  focus(event, parent);
715
613
  return true;
716
614
  }
717
-
718
615
  return false;
719
616
  };
720
-
721
617
  var handleKeyDown = function handleKeyDown(event) {
722
618
  var flag = false;
723
- var key = event.key; // If the tree is empty there will be no focused node
619
+ var key = event.key;
724
620
 
621
+ // If the tree is empty there will be no focused node
725
622
  if (event.altKey || event.currentTarget !== event.target || !focusedNodeId) {
726
623
  return;
727
624
  }
728
-
729
625
  var ctrlPressed = event.ctrlKey || event.metaKey;
730
-
731
626
  switch (key) {
732
627
  case ' ':
733
628
  if (!disableSelection && !isDisabled(focusedNodeId)) {
@@ -742,10 +637,8 @@ var TreeView = /*#__PURE__*/React.forwardRef(function TreeView(inProps, ref) {
742
637
  flag = selectNode(event, focusedNodeId);
743
638
  }
744
639
  }
745
-
746
640
  event.stopPropagation();
747
641
  break;
748
-
749
642
  case 'Enter':
750
643
  if (!isDisabled(focusedNodeId)) {
751
644
  if (isExpandable(focusedNodeId)) {
@@ -757,64 +650,50 @@ var TreeView = /*#__PURE__*/React.forwardRef(function TreeView(inProps, ref) {
757
650
  flag = selectNode(event, focusedNodeId);
758
651
  }
759
652
  }
760
-
761
653
  event.stopPropagation();
762
654
  break;
763
-
764
655
  case 'ArrowDown':
765
656
  if (multiSelect && event.shiftKey && !disableSelection) {
766
657
  selectNextNode(event, focusedNodeId);
767
658
  }
768
-
769
659
  focusNextNode(event, focusedNodeId);
770
660
  flag = true;
771
661
  break;
772
-
773
662
  case 'ArrowUp':
774
663
  if (multiSelect && event.shiftKey && !disableSelection) {
775
664
  selectPreviousNode(event, focusedNodeId);
776
665
  }
777
-
778
666
  focusPreviousNode(event, focusedNodeId);
779
667
  flag = true;
780
668
  break;
781
-
782
669
  case 'ArrowRight':
783
670
  if (isRtl) {
784
671
  flag = handlePreviousArrow(event);
785
672
  } else {
786
673
  flag = handleNextArrow(event);
787
674
  }
788
-
789
675
  break;
790
-
791
676
  case 'ArrowLeft':
792
677
  if (isRtl) {
793
678
  flag = handleNextArrow(event);
794
679
  } else {
795
680
  flag = handlePreviousArrow(event);
796
681
  }
797
-
798
682
  break;
799
-
800
683
  case 'Home':
801
684
  if (multiSelect && ctrlPressed && event.shiftKey && !disableSelection && !isDisabled(focusedNodeId)) {
802
685
  rangeSelectToFirst(event, focusedNodeId);
803
686
  }
804
-
805
687
  focusFirstNode(event);
806
688
  flag = true;
807
689
  break;
808
-
809
690
  case 'End':
810
691
  if (multiSelect && ctrlPressed && event.shiftKey && !disableSelection && !isDisabled(focusedNodeId)) {
811
692
  rangeSelectToLast(event, focusedNodeId);
812
693
  }
813
-
814
694
  focusLastNode(event);
815
695
  flag = true;
816
696
  break;
817
-
818
697
  default:
819
698
  if (key === '*') {
820
699
  expandAllSiblings(event, focusedNodeId);
@@ -826,39 +705,31 @@ var TreeView = /*#__PURE__*/React.forwardRef(function TreeView(inProps, ref) {
826
705
  focusByFirstCharacter(event, focusedNodeId, key);
827
706
  flag = true;
828
707
  }
829
-
830
708
  }
831
-
832
709
  if (flag) {
833
710
  event.preventDefault();
834
711
  event.stopPropagation();
835
712
  }
836
-
837
713
  if (onKeyDown) {
838
714
  onKeyDown(event);
839
715
  }
840
716
  };
841
-
842
717
  var handleFocus = function handleFocus(event) {
843
718
  // if the event bubbled (which is React specific) we don't want to steal focus
844
719
  if (event.target === event.currentTarget) {
845
720
  var firstSelected = Array.isArray(selected) ? selected[0] : selected;
846
721
  focus(event, firstSelected || getNavigableChildrenIds(null)[0]);
847
722
  }
848
-
849
723
  if (onFocus) {
850
724
  onFocus(event);
851
725
  }
852
726
  };
853
-
854
727
  var handleBlur = function handleBlur(event) {
855
728
  setFocusedNodeId(null);
856
-
857
729
  if (onBlur) {
858
730
  onBlur(event);
859
731
  }
860
732
  };
861
-
862
733
  var activeDescendant = nodeMap.current[focusedNodeId] ? nodeMap.current[focusedNodeId].idAttribute : null;
863
734
  return /*#__PURE__*/_jsx(TreeViewContext.Provider, {
864
735
  // TODO: fix lint error:
@@ -906,108 +777,88 @@ var TreeView = /*#__PURE__*/React.forwardRef(function TreeView(inProps, ref) {
906
777
  })
907
778
  });
908
779
  });
909
- process.env.NODE_ENV !== "production" ? TreeView.propTypes
910
- /* remove-proptypes */
911
- = {
780
+ process.env.NODE_ENV !== "production" ? TreeView.propTypes /* remove-proptypes */ = {
912
781
  // ----------------------------- Warning --------------------------------
913
782
  // | These PropTypes are generated from the TypeScript type definitions |
914
783
  // | To update them edit the d.ts file and run "yarn proptypes" |
915
784
  // ----------------------------------------------------------------------
916
-
917
785
  /**
918
786
  * The content of the component.
919
787
  */
920
788
  children: PropTypes.node,
921
-
922
789
  /**
923
790
  * Override or extend the styles applied to the component.
924
791
  */
925
792
  classes: PropTypes.object,
926
-
927
793
  /**
928
794
  * @ignore
929
795
  */
930
796
  className: PropTypes.string,
931
-
932
797
  /**
933
798
  * The default icon used to collapse the node.
934
799
  */
935
800
  defaultCollapseIcon: PropTypes.node,
936
-
937
801
  /**
938
802
  * The default icon displayed next to a end node. This is applied to all
939
803
  * tree nodes and can be overridden by the TreeItem `icon` prop.
940
804
  */
941
805
  defaultEndIcon: PropTypes.node,
942
-
943
806
  /**
944
807
  * Expanded node ids. (Uncontrolled)
945
808
  * @default []
946
809
  */
947
810
  defaultExpanded: PropTypes.arrayOf(PropTypes.string),
948
-
949
811
  /**
950
812
  * The default icon used to expand the node.
951
813
  */
952
814
  defaultExpandIcon: PropTypes.node,
953
-
954
815
  /**
955
816
  * The default icon displayed next to a parent node. This is applied to all
956
817
  * parent nodes and can be overridden by the TreeItem `icon` prop.
957
818
  */
958
819
  defaultParentIcon: PropTypes.node,
959
-
960
820
  /**
961
821
  * Selected node ids. (Uncontrolled)
962
822
  * When `multiSelect` is true this takes an array of strings; when false (default) a string.
963
823
  * @default []
964
824
  */
965
825
  defaultSelected: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.string]),
966
-
967
826
  /**
968
827
  * If `true`, will allow focus on disabled items.
969
828
  * @default false
970
829
  */
971
830
  disabledItemsFocusable: PropTypes.bool,
972
-
973
831
  /**
974
832
  * If `true` selection is disabled.
975
833
  * @default false
976
834
  */
977
835
  disableSelection: PropTypes.bool,
978
-
979
836
  /**
980
837
  * Expanded node ids. (Controlled)
981
838
  */
982
839
  expanded: PropTypes.arrayOf(PropTypes.string),
983
-
984
840
  /**
985
841
  * This prop is used to help implement the accessibility logic.
986
842
  * If you don't provide this prop. It falls back to a randomly generated id.
987
843
  */
988
844
  id: PropTypes.string,
989
-
990
845
  /**
991
846
  * If true `ctrl` and `shift` will trigger multiselect.
992
847
  * @default false
993
848
  */
994
849
  multiSelect: PropTypes.bool,
995
-
996
850
  /**
997
851
  * @ignore
998
852
  */
999
853
  onBlur: PropTypes.func,
1000
-
1001
854
  /**
1002
855
  * @ignore
1003
856
  */
1004
857
  onFocus: PropTypes.func,
1005
-
1006
858
  /**
1007
859
  * @ignore
1008
860
  */
1009
861
  onKeyDown: PropTypes.func,
1010
-
1011
862
  /**
1012
863
  * Callback fired when tree items are focused.
1013
864
  *
@@ -1015,7 +866,6 @@ process.env.NODE_ENV !== "production" ? TreeView.propTypes
1015
866
  * @param {string} value of the focused node.
1016
867
  */
1017
868
  onNodeFocus: PropTypes.func,
1018
-
1019
869
  /**
1020
870
  * Callback fired when tree items are selected/unselected.
1021
871
  *
@@ -1024,7 +874,6 @@ process.env.NODE_ENV !== "production" ? TreeView.propTypes
1024
874
  * this is an array of strings; when false (default) a string.
1025
875
  */
1026
876
  onNodeSelect: PropTypes.func,
1027
-
1028
877
  /**
1029
878
  * Callback fired when tree items are expanded/collapsed.
1030
879
  *
@@ -1032,13 +881,11 @@ process.env.NODE_ENV !== "production" ? TreeView.propTypes
1032
881
  * @param {array} nodeIds The ids of the expanded nodes.
1033
882
  */
1034
883
  onNodeToggle: PropTypes.func,
1035
-
1036
884
  /**
1037
885
  * Selected node ids. (Controlled)
1038
886
  * When `multiSelect` is true this takes an array of strings; when false (default) a string.
1039
887
  */
1040
888
  selected: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.string]),
1041
-
1042
889
  /**
1043
890
  * The system prop that allows defining system overrides as well as additional CSS styles.
1044
891
  */