@wavemaker/react-runtime 11.14.1-16.6404

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 (402) hide show
  1. package/actions/base-action.js +32 -0
  2. package/actions/login-action.js +53 -0
  3. package/actions/logout-action.js +41 -0
  4. package/actions/navigation-action.js +145 -0
  5. package/actions/notification-action.js +147 -0
  6. package/actions/timer-action.js +164 -0
  7. package/actions/toast-provider.js +111 -0
  8. package/actions/toast.js +115 -0
  9. package/actions/toast.service.js +94 -0
  10. package/actions/types/index.js +11 -0
  11. package/components/advanced/carousel/index.js +456 -0
  12. package/components/advanced/carousel/props.js +5 -0
  13. package/components/advanced/carousel/template.js +72 -0
  14. package/components/advanced/login/index.js +307 -0
  15. package/components/advanced/login/props.js +5 -0
  16. package/components/advanced/marquee/index.js +158 -0
  17. package/components/advanced/marquee/props.js +5 -0
  18. package/components/basic/anchor/index.js +239 -0
  19. package/components/basic/anchor/props.js +5 -0
  20. package/components/basic/audio/index.js +61 -0
  21. package/components/basic/html/index.js +158 -0
  22. package/components/basic/icon/index.js +85 -0
  23. package/components/basic/iframe/iframe.utils.js +10 -0
  24. package/components/basic/iframe/index.js +95 -0
  25. package/components/basic/label/index.js +139 -0
  26. package/components/basic/message/index.js +120 -0
  27. package/components/basic/message/props.js +5 -0
  28. package/components/basic/picture/index.js +117 -0
  29. package/components/basic/picture/props.js +5 -0
  30. package/components/basic/progress-bar/index.js +168 -0
  31. package/components/basic/progress-bar/props.js +18 -0
  32. package/components/basic/progress-circle/index.js +196 -0
  33. package/components/basic/progress-circle/props.js +16 -0
  34. package/components/basic/richtexteditor/index.js +533 -0
  35. package/components/basic/richtexteditor/props.js +5 -0
  36. package/components/basic/search/index.js +1023 -0
  37. package/components/basic/search/props.js +5 -0
  38. package/components/basic/search/providers.js +350 -0
  39. package/components/basic/spinner/index.js +202 -0
  40. package/components/basic/spinner/props.js +12 -0
  41. package/components/basic/tile/index.js +91 -0
  42. package/components/basic/tree/Components/TreeNodeComponent.js +142 -0
  43. package/components/basic/tree/index.js +503 -0
  44. package/components/basic/tree/props.js +5 -0
  45. package/components/basic/tree/utils.js +154 -0
  46. package/components/basic/video/index.js +85 -0
  47. package/components/basic/video/props.js +5 -0
  48. package/components/chart/components/barColumnChart/index.js +132 -0
  49. package/components/chart/components/barColumnChart/props.js +5 -0
  50. package/components/chart/components/bubbleChart/index.js +176 -0
  51. package/components/chart/components/bubbleChart/props.js +5 -0
  52. package/components/chart/components/chartLegend/components/ClassicLegendItem.js +39 -0
  53. package/components/chart/components/chartLegend/components/FuriousLegendItem.js +81 -0
  54. package/components/chart/components/chartLegend/index.js +69 -0
  55. package/components/chart/components/chartLegend/props.js +5 -0
  56. package/components/chart/components/chartLegend/utils.js +31 -0
  57. package/components/chart/components/chartTooltip/index.js +53 -0
  58. package/components/chart/components/chartTooltip/styles.js +37 -0
  59. package/components/chart/components/chartTooltip/utils.js +23 -0
  60. package/components/chart/components/cumulativeLineChart/index.js +113 -0
  61. package/components/chart/components/cumulativeLineChart/props.js +5 -0
  62. package/components/chart/components/cumulativeLineChart/utils.js +34 -0
  63. package/components/chart/components/index.js +40 -0
  64. package/components/chart/components/lineAreaChart/index.js +140 -0
  65. package/components/chart/components/lineAreaChart/props.js +5 -0
  66. package/components/chart/components/noDataMessage/index.js +27 -0
  67. package/components/chart/components/pieDonutChart/index.js +171 -0
  68. package/components/chart/components/pieDonutChart/props.js +5 -0
  69. package/components/chart/constant.js +72 -0
  70. package/components/chart/index.js +930 -0
  71. package/components/chart/props.js +5 -0
  72. package/components/chart/utils.js +691 -0
  73. package/components/common/AppSpinner.js +36 -0
  74. package/components/common/app-spinner.js +26 -0
  75. package/components/common/index.js +12 -0
  76. package/components/constants.js +1208 -0
  77. package/components/container/accordion/accordion-pane/index.js +108 -0
  78. package/components/container/accordion/accordion-pane/props.js +11 -0
  79. package/components/container/accordion/index.js +232 -0
  80. package/components/container/accordion/props.js +13 -0
  81. package/components/container/alignment-utils.js +183 -0
  82. package/components/container/index.js +188 -0
  83. package/components/container/layout-grid/grid-column/index.js +34 -0
  84. package/components/container/layout-grid/grid-row/index.js +24 -0
  85. package/components/container/layout-grid/index.js +33 -0
  86. package/components/container/linear-layout/index.js +72 -0
  87. package/components/container/linear-layout/linear-layout-item/index.js +43 -0
  88. package/components/container/panel/components/panel-header/index.js +144 -0
  89. package/components/container/panel/components/panel-header/props.js +5 -0
  90. package/components/container/panel/hooks.js +144 -0
  91. package/components/container/panel/index.js +286 -0
  92. package/components/container/panel/props.js +5 -0
  93. package/components/container/props.js +5 -0
  94. package/components/container/tabs/index.js +379 -0
  95. package/components/container/tabs/props.js +20 -0
  96. package/components/container/tabs/tab-pane/index.js +42 -0
  97. package/components/container/tabs/tab-pane/props.js +5 -0
  98. package/components/container/wizard/WizardContext.js +16 -0
  99. package/components/container/wizard/components/StepComponents.js +100 -0
  100. package/components/container/wizard/components/WizardStep.js +89 -0
  101. package/components/container/wizard/index.js +710 -0
  102. package/components/container/wizard/props.js +5 -0
  103. package/components/container/wizard/utils.js +133 -0
  104. package/components/container/wizard/wizard-action/index.js +22 -0
  105. package/components/container/wizard/wizard-step/index.js +94 -0
  106. package/components/data/card/card-actions/index.js +24 -0
  107. package/components/data/card/card-content/index.js +38 -0
  108. package/components/data/card/card-footer/index.js +24 -0
  109. package/components/data/card/index.js +246 -0
  110. package/components/data/card/props.js +5 -0
  111. package/components/data/form/base-form/constant.js +39 -0
  112. package/components/data/form/base-form/index.js +460 -0
  113. package/components/data/form/base-form/props.js +29 -0
  114. package/components/data/form/base-form/utils.js +42 -0
  115. package/components/data/form/dynamic-fields/index.js +196 -0
  116. package/components/data/form/dynamic-fields/props.js +5 -0
  117. package/components/data/form/dynamic-fields/utils.js +237 -0
  118. package/components/data/form/form-action/index.js +71 -0
  119. package/components/data/form/form-body/index.js +26 -0
  120. package/components/data/form/form-context.js +34 -0
  121. package/components/data/form/form-controller/props.js +19 -0
  122. package/components/data/form/form-controller/validation-contrustor.js +313 -0
  123. package/components/data/form/form-controller/withFormController.js +320 -0
  124. package/components/data/form/form-field/base-field.js +138 -0
  125. package/components/data/form/form-field/index.js +36 -0
  126. package/components/data/form/form-field/props.js +5 -0
  127. package/components/data/form/form-footer/index.js +26 -0
  128. package/components/data/form/form-header/index.js +56 -0
  129. package/components/data/form/index.js +39 -0
  130. package/components/data/form/props.js +5 -0
  131. package/components/data/list/components/GroupHeader.js +35 -0
  132. package/components/data/list/components/GroupedListItems.js +98 -0
  133. package/components/data/list/components/ListContainer.js +27 -0
  134. package/components/data/list/components/ListDND.js +241 -0
  135. package/components/data/list/components/ListHeader.js +59 -0
  136. package/components/data/list/components/ListItem.js +148 -0
  137. package/components/data/list/components/ListItemWithTemplate.js +59 -0
  138. package/components/data/list/components/ListItems.js +231 -0
  139. package/components/data/list/components/ListPagination.js +165 -0
  140. package/components/data/list/components/LoadMoreButton.js +39 -0
  141. package/components/data/list/components/NoDataMessage.js +22 -0
  142. package/components/data/list/components/StandardListItems.js +84 -0
  143. package/components/data/list/components/index.js +119 -0
  144. package/components/data/list/components/props.js +5 -0
  145. package/components/data/list/hooks/index.js +75 -0
  146. package/components/data/list/hooks/props.js +5 -0
  147. package/components/data/list/hooks/useCurrentPageItems.js +48 -0
  148. package/components/data/list/hooks/useGroupedData.js +37 -0
  149. package/components/data/list/hooks/useListData.js +60 -0
  150. package/components/data/list/hooks/useListEffects.js +285 -0
  151. package/components/data/list/hooks/useListEventHandlers.js +291 -0
  152. package/components/data/list/hooks/useListPagination.js +168 -0
  153. package/components/data/list/hooks/useListState.js +98 -0
  154. package/components/data/list/hooks/useListStateManager.js +195 -0
  155. package/components/data/list/hooks/usePaginatedGroupedData.js +121 -0
  156. package/components/data/list/index.js +611 -0
  157. package/components/data/list/props.js +5 -0
  158. package/components/data/list/templates/media-template.js +53 -0
  159. package/components/data/list/utils/constants.js +81 -0
  160. package/components/data/list/utils/list-helpers.js +173 -0
  161. package/components/data/list/utils/list-widget-methods.js +114 -0
  162. package/components/data/live-filter/index.js +279 -0
  163. package/components/data/live-filter/props.js +12 -0
  164. package/components/data/live-form/index.js +93 -0
  165. package/components/data/live-form/props.js +16 -0
  166. package/components/data/pagination/components/BasicPagination.js +77 -0
  167. package/components/data/pagination/components/ClassicPagination.js +191 -0
  168. package/components/data/pagination/components/InlinePagination.js +99 -0
  169. package/components/data/pagination/components/LoadingComponent.js +31 -0
  170. package/components/data/pagination/components/PageSizeSelector.js +175 -0
  171. package/components/data/pagination/components/PagerNavigation.js +105 -0
  172. package/components/data/pagination/components/TotalRecords.js +52 -0
  173. package/components/data/pagination/components/index.js +47 -0
  174. package/components/data/pagination/components/props.js +5 -0
  175. package/components/data/pagination/hooks/index.js +19 -0
  176. package/components/data/pagination/hooks/props.js +5 -0
  177. package/components/data/pagination/hooks/useNavigationSize.js +44 -0
  178. package/components/data/pagination/hooks/usePagination.js +796 -0
  179. package/components/data/pagination/index.js +322 -0
  180. package/components/data/table/components/AddNewRow.js +190 -0
  181. package/components/data/table/components/EditableCell.js +91 -0
  182. package/components/data/table/components/FieldValidationError.js +24 -0
  183. package/components/data/table/components/RowExpansionButton.js +74 -0
  184. package/components/data/table/components/TableBody.js +279 -0
  185. package/components/data/table/components/TableFilters.js +325 -0
  186. package/components/data/table/components/TableFooterActions.js +48 -0
  187. package/components/data/table/components/TableHeader.js +174 -0
  188. package/components/data/table/components/TablePanelHeading.js +68 -0
  189. package/components/data/table/components/index.js +74 -0
  190. package/components/data/table/hooks/index.js +219 -0
  191. package/components/data/table/hooks/useCellState.js +117 -0
  192. package/components/data/table/hooks/useDynamicColumns.js +85 -0
  193. package/components/data/table/hooks/useEditingState.js +47 -0
  194. package/components/data/table/hooks/useFormWidget.js +184 -0
  195. package/components/data/table/hooks/usePaginationState.js +60 -0
  196. package/components/data/table/hooks/usePanelStructure.js +40 -0
  197. package/components/data/table/hooks/useResponsiveColumns.js +34 -0
  198. package/components/data/table/hooks/useRowExpansion.js +110 -0
  199. package/components/data/table/hooks/useRowHandlers.js +38 -0
  200. package/components/data/table/hooks/useRowSelection.js +213 -0
  201. package/components/data/table/hooks/useServerSideSorting.js +165 -0
  202. package/components/data/table/hooks/useTableColumns.js +263 -0
  203. package/components/data/table/hooks/useTableData.js +154 -0
  204. package/components/data/table/hooks/useTableEdit.js +467 -0
  205. package/components/data/table/hooks/useTableEffects.js +139 -0
  206. package/components/data/table/hooks/useTableFilter.js +389 -0
  207. package/components/data/table/hooks/useTableInitialization.js +103 -0
  208. package/components/data/table/hooks/useTableState.js +69 -0
  209. package/components/data/table/hooks/useTableStateManager.js +558 -0
  210. package/components/data/table/index.js +1295 -0
  211. package/components/data/table/live-table/index.js +232 -0
  212. package/components/data/table/props.js +5 -0
  213. package/components/data/table/table-action/index.js +78 -0
  214. package/components/data/table/table-column/index.js +35 -0
  215. package/components/data/table/table-row/index.js +49 -0
  216. package/components/data/table/table-row-action/index.js +74 -0
  217. package/components/data/table/utils/buildSelectionColumns.js +173 -0
  218. package/components/data/table/utils/columnBuilder.js +209 -0
  219. package/components/data/table/utils/columnProxy.js +48 -0
  220. package/components/data/table/utils/columnWidthDistribution.js +98 -0
  221. package/components/data/table/utils/constants.js +80 -0
  222. package/components/data/table/utils/crud-handlers.js +518 -0
  223. package/components/data/table/utils/dynamic-columns.js +118 -0
  224. package/components/data/table/utils/index.js +607 -0
  225. package/components/data/table/utils/renderDisplayCell.js +183 -0
  226. package/components/data/table/utils/selectionUtils.js +166 -0
  227. package/components/data/table/utils/table-helpers.js +100 -0
  228. package/components/data/table/utils/validation.js +124 -0
  229. package/components/data/types.js +113 -0
  230. package/components/data/utils/field-data-utils.js +66 -0
  231. package/components/data/utils/filter-field-util.js +81 -0
  232. package/components/data/utils/index.js +216 -0
  233. package/components/dialogs/alert-dialog/index.js +80 -0
  234. package/components/dialogs/confirm-dialog/index.js +105 -0
  235. package/components/dialogs/dialog/index.js +56 -0
  236. package/components/dialogs/dialog-actions/index.js +18 -0
  237. package/components/dialogs/dialog-body/index.js +21 -0
  238. package/components/dialogs/dialog-content/index.js +30 -0
  239. package/components/dialogs/dialog-header/index.js +93 -0
  240. package/components/dialogs/iframe-dialog/index.js +114 -0
  241. package/components/dialogs/index.js +129 -0
  242. package/components/dialogs/login-dialog/index.js +369 -0
  243. package/components/dialogs/login-dialog/props.js +5 -0
  244. package/components/dialogs/page-dialog/index.js +96 -0
  245. package/components/dialogs/withDialogWrapper.js +108 -0
  246. package/components/form/button/index.js +216 -0
  247. package/components/form/button-group/index.js +60 -0
  248. package/components/input/calendar/index.js +546 -0
  249. package/components/input/calendar/props.js +5 -0
  250. package/components/input/calendar/utils.js +340 -0
  251. package/components/input/chips/SortableChip/index.js +115 -0
  252. package/components/input/chips/SortableChip/props.js +5 -0
  253. package/components/input/chips/index.js +488 -0
  254. package/components/input/chips/props.js +5 -0
  255. package/components/input/chips/utils.js +259 -0
  256. package/components/input/color-picker/index.js +678 -0
  257. package/components/input/color-picker/props.js +5 -0
  258. package/components/input/composite/index.js +137 -0
  259. package/components/input/currency/index.js +263 -0
  260. package/components/input/currency/props.js +5 -0
  261. package/components/input/default/checkbox/index.js +230 -0
  262. package/components/input/default/checkbox/props.js +5 -0
  263. package/components/input/default/checkboxset/index.js +476 -0
  264. package/components/input/default/checkboxset/props.js +5 -0
  265. package/components/input/default/radioset/index.js +379 -0
  266. package/components/input/default/radioset/props.js +5 -0
  267. package/components/input/default/switch/index.js +490 -0
  268. package/components/input/default/switch/prop.js +5 -0
  269. package/components/input/epoch/date/components/DatePickerPopover.js +220 -0
  270. package/components/input/epoch/date/index.js +520 -0
  271. package/components/input/epoch/date/props.js +5 -0
  272. package/components/input/epoch/date/styled.js +70 -0
  273. package/components/input/epoch/date/utils.js +108 -0
  274. package/components/input/epoch/datetime/index.js +656 -0
  275. package/components/input/epoch/datetime/props.js +5 -0
  276. package/components/input/epoch/datetime/styled.js +90 -0
  277. package/components/input/epoch/datetime/utils.js +244 -0
  278. package/components/input/epoch/time/index.js +412 -0
  279. package/components/input/epoch/time/props.js +5 -0
  280. package/components/input/epoch/time/utils.js +209 -0
  281. package/components/input/fileupload/Utils.js +134 -0
  282. package/components/input/fileupload/components/ListItems.js +140 -0
  283. package/components/input/fileupload/components/MultiUpload.js +85 -0
  284. package/components/input/fileupload/components/SingleUpload.js +65 -0
  285. package/components/input/fileupload/index.js +170 -0
  286. package/components/input/fileupload/props.js +5 -0
  287. package/components/input/fileupload/useFileUpload.js +400 -0
  288. package/components/input/number/index.js +295 -0
  289. package/components/input/number/props.js +5 -0
  290. package/components/input/rating/index.js +368 -0
  291. package/components/input/rating/props.js +5 -0
  292. package/components/input/select/index.js +344 -0
  293. package/components/input/select/props.js +5 -0
  294. package/components/input/slider/index.js +167 -0
  295. package/components/input/slider/props.js +5 -0
  296. package/components/input/text/index.js +434 -0
  297. package/components/input/text/props.js +5 -0
  298. package/components/input/text/util.js +179 -0
  299. package/components/input/textarea/index.js +347 -0
  300. package/components/input/textarea/props.js +5 -0
  301. package/components/layout/footer/index.js +30 -0
  302. package/components/layout/header/index.js +30 -0
  303. package/components/layout/leftnav/index.js +44 -0
  304. package/components/layout/rightnav/index.js +32 -0
  305. package/components/layout/topnav/index.js +34 -0
  306. package/components/navbar/index.js +41 -0
  307. package/components/navbar/nav/index.js +102 -0
  308. package/components/navbar/nav/props.js +5 -0
  309. package/components/navbar/nav-item/index.js +44 -0
  310. package/components/navigation/breadcrumb/index.js +56 -0
  311. package/components/navigation/breadcrumb/props.js +5 -0
  312. package/components/navigation/menu/components/ListItems.js +66 -0
  313. package/components/navigation/menu/constants.js +101 -0
  314. package/components/navigation/menu/index.js +807 -0
  315. package/components/navigation/menu/props.js +5 -0
  316. package/components/navigation/popover/index.js +209 -0
  317. package/components/navigation/popover/props.js +15 -0
  318. package/components/page/content/index.js +28 -0
  319. package/components/page/error-boundary/index.js +108 -0
  320. package/components/page/index.js +137 -0
  321. package/components/page/page-content/index.js +23 -0
  322. package/components/page/partial/index.js +36 -0
  323. package/components/page/partial-container/index.js +48 -0
  324. package/components/page/props.js +5 -0
  325. package/components/page/toast-container/index.js +33 -0
  326. package/components/prefab/container/index.js +46 -0
  327. package/components/prefab/index.js +67 -0
  328. package/context/AppContext.js +25 -0
  329. package/context/AppSpinnerProvider.js +43 -0
  330. package/context/LocalizationProvider.js +79 -0
  331. package/context/PrefabContext.js +66 -0
  332. package/context/WidgetProvider.js +187 -0
  333. package/core/app-config.js +1 -0
  334. package/core/app.service.js +357 -0
  335. package/core/appVariablesStore.js +20 -0
  336. package/core/appstore.js +88 -0
  337. package/core/constants/currency-constant.js +1071 -0
  338. package/core/constants/events.js +34 -0
  339. package/core/constants/index.js +27 -0
  340. package/core/dialog.service.js +76 -0
  341. package/core/event-notifier.js +151 -0
  342. package/core/formatter/date-formatters.js +222 -0
  343. package/core/formatter/index.js +131 -0
  344. package/core/formatter/number-formatters.js +142 -0
  345. package/core/formatter/security-formatters.js +323 -0
  346. package/core/formatter/string-formatters.js +52 -0
  347. package/core/formatter/types.js +18 -0
  348. package/core/formatters.js +24 -0
  349. package/core/proxy-service.js +412 -0
  350. package/core/script-registry.js +63 -0
  351. package/core/security.service.js +11 -0
  352. package/core/util/common.js +33 -0
  353. package/core/util/dom.js +107 -0
  354. package/core/util/index.js +136 -0
  355. package/core/util/security.js +184 -0
  356. package/core/util/utils.js +189 -0
  357. package/core/widget-observer.js +98 -0
  358. package/higherOrder/BaseApp.js +430 -0
  359. package/higherOrder/BaseAppProps.js +5 -0
  360. package/higherOrder/BaseDateTime.js +251 -0
  361. package/higherOrder/BasePage.js +715 -0
  362. package/higherOrder/BasePartial.js +124 -0
  363. package/higherOrder/BasePrefab.js +145 -0
  364. package/higherOrder/DataNav.js +377 -0
  365. package/higherOrder/helper.js +43 -0
  366. package/higherOrder/props.js +5 -0
  367. package/higherOrder/withBaseWrapper.js +183 -0
  368. package/hooks/useAccess.js +308 -0
  369. package/hooks/useAppConfig.js +42 -0
  370. package/hooks/useAuth.js +562 -0
  371. package/hooks/useDataSourceSubscription.js +125 -0
  372. package/hooks/useDebounce.js +76 -0
  373. package/hooks/useDeviceVisibility.js +49 -0
  374. package/hooks/useHttp.js +338 -0
  375. package/libs/index.js +20 -0
  376. package/mui-config/theme-provider.js +17 -0
  377. package/mui-config/theme.js +371 -0
  378. package/package-lock.json +10177 -0
  379. package/package.json +95 -0
  380. package/store/index.js +33 -0
  381. package/store/middleware/navigationMiddleware.js +48 -0
  382. package/store/slices/appConfigSlice.js +103 -0
  383. package/store/slices/authSlice.js +508 -0
  384. package/store/slices/i18nSlice.js +206 -0
  385. package/types/index.js +15 -0
  386. package/utils/dataset-util.js +174 -0
  387. package/utils/eval-expression.js +32 -0
  388. package/utils/form-state.util.js +140 -0
  389. package/utils/form-utils.js +187 -0
  390. package/utils/format-util.js +260 -0
  391. package/utils/page-params-util.js +24 -0
  392. package/utils/resource-url.js +27 -0
  393. package/utils/state-persistance.js +343 -0
  394. package/utils/style-utils.js +73 -0
  395. package/utils/transformedDataset-utils.js +633 -0
  396. package/utils/widget-cleanup-util.js +84 -0
  397. package/utils/widgets.js +99 -0
  398. package/variables/base-variable.js +173 -0
  399. package/variables/constants.js +27 -0
  400. package/variables/live-variable.js +166 -0
  401. package/variables/model-variable.js +77 -0
  402. package/variables/service-variable.js +307 -0
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _clsx = _interopRequireDefault(require("clsx"));
10
+ var _Collapse = _interopRequireDefault(require("@mui/material/Collapse"));
11
+ var _Box = _interopRequireDefault(require("@mui/material/Box"));
12
+ var __jsx = _react["default"].createElement;
13
+ var TreeNodeComponent = /*#__PURE__*/_react["default"].memo(function (_ref) {
14
+ var node = _ref.node,
15
+ treeicons = _ref.treeicons,
16
+ isCheckboxTree = _ref.isCheckboxTree,
17
+ isRadioTree = _ref.isRadioTree,
18
+ selectedItem = _ref.selectedItem,
19
+ handleNodeClick = _ref.handleNodeClick,
20
+ toggleNodeExpansion = _ref.toggleNodeExpansion,
21
+ toggleNodeChecked = _ref.toggleNodeChecked,
22
+ handleRadioSelect = _ref.handleRadioSelect,
23
+ _ref$depth = _ref.depth,
24
+ depth = _ref$depth === void 0 ? 0 : _ref$depth,
25
+ treeName = _ref.treeName;
26
+ var hasChildren = node.children && node.children.length > 0;
27
+
28
+ // Generate a unique ID for DOM selection (similar to tId in zTree)
29
+ node.tId = node.tId || "".concat(treeName, "_").concat(node.nodeId);
30
+ node.isParent = hasChildren;
31
+ var renderExpandCollapseIcon = function renderExpandCollapseIcon() {
32
+ if (hasChildren) {
33
+ return __jsx(_Box["default"], {
34
+ component: "span",
35
+ className: (0, _clsx["default"])("button", "level".concat(depth), "switch", depth === 0 ? node.open ? "roots_open" : "roots_close" : node.open ? "bottom_open" : "bottom_close", treeicons, "treenode_switch"),
36
+ treeicons: treeicons,
37
+ onClick: function onClick(event) {
38
+ return toggleNodeExpansion(event, node);
39
+ },
40
+ id: "".concat(node.tId, "_switch"),
41
+ title: "",
42
+ treenode_switch: "true"
43
+ });
44
+ }
45
+ return __jsx(_Box["default"], {
46
+ component: "span",
47
+ treeicons: treeicons,
48
+ className: (0, _clsx["default"])("button", "level".concat(depth), "switch", "bottom_docu", treeicons, "treenode_switch"),
49
+ treenode_switch: "true"
50
+ });
51
+ };
52
+ var renderCheckboxOrRadio = function renderCheckboxOrRadio() {
53
+ if (!isCheckboxTree && !isRadioTree) return null;
54
+ return __jsx(_Box["default"], {
55
+ component: "span",
56
+ className: (0, _clsx["default"])("button", "chk", isRadioTree ? "radio_false_full" : "checkbox_false_full", node.checked && (isRadioTree ? "radio_true_full" : "checkbox_true_full")),
57
+ onClick: function onClick(event) {
58
+ event.stopPropagation();
59
+ if (isRadioTree) {
60
+ handleRadioSelect(event, node);
61
+ } else {
62
+ toggleNodeChecked(event, node);
63
+ }
64
+ },
65
+ treeicons: treeicons,
66
+ id: "".concat(node.tId, "_check"),
67
+ treenode_check: "true"
68
+ });
69
+ };
70
+ var renderNodeIcon = function renderNodeIcon() {
71
+ if (!node.icon) return null;
72
+ return __jsx(_Box["default"], {
73
+ component: "span",
74
+ className: (0, _clsx["default"])("button", "ico_open", "treenode_ico"),
75
+ id: "".concat(node.tId, "_ico"),
76
+ title: "",
77
+ treenode_ico: "true"
78
+ });
79
+ };
80
+ var renderNodeContent = function renderNodeContent() {
81
+ return __jsx(_Box["default"], {
82
+ component: "a",
83
+ onClick: function onClick(event) {
84
+ return handleNodeClick(event, node);
85
+ },
86
+ className: (0, _clsx["default"])("level".concat(depth), "glyphicon", node.icon || "glyphicon-music", {
87
+ curSelectedNode: (selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.nodeId) === node.nodeId
88
+ }, "treenode_a"),
89
+ "data-node-id": node.nodeId,
90
+ id: "".concat(node.tId, "_a"),
91
+ title: node.label,
92
+ treenode_a: "true"
93
+ }, renderNodeIcon(), __jsx(_Box["default"], {
94
+ component: "span",
95
+ className: "node_name",
96
+ id: "".concat(node.tId, "_span")
97
+ }, node.label));
98
+ };
99
+ var renderChildNodes = function renderChildNodes() {
100
+ if (!hasChildren) return null;
101
+ return __jsx(_Collapse["default"], {
102
+ "in": !!node.open
103
+ }, __jsx(_Box["default"], {
104
+ component: "ul",
105
+ className: (0, _clsx["default"])("level".concat(depth), "line"),
106
+ id: "".concat(node.tId, "_ul"),
107
+ style: {
108
+ marginLeft: "20px",
109
+ listStyle: "none",
110
+ padding: 0,
111
+ display: node.open ? "block" : "none"
112
+ }
113
+ }, node.children && node.children.map(function (childNode) {
114
+ return __jsx(TreeNodeComponent, {
115
+ key: childNode.nodeId,
116
+ node: childNode,
117
+ treeicons: treeicons,
118
+ isCheckboxTree: isCheckboxTree,
119
+ isRadioTree: isRadioTree,
120
+ selectedItem: selectedItem,
121
+ handleNodeClick: handleNodeClick,
122
+ toggleNodeExpansion: toggleNodeExpansion,
123
+ toggleNodeChecked: toggleNodeChecked,
124
+ handleRadioSelect: handleRadioSelect,
125
+ depth: depth + 1,
126
+ treeName: treeName
127
+ });
128
+ })));
129
+ };
130
+ return __jsx(_Box["default"], {
131
+ component: "li",
132
+ key: node.nodeId,
133
+ className: (0, _clsx["default"])("level".concat(depth), {
134
+ selected: (selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.nodeId) === node.nodeId
135
+ }),
136
+ id: node.tId,
137
+ tabIndex: (selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.nodeId) === node.nodeId ? 0 : -1,
138
+ treenode: "true"
139
+ }, renderExpandCollapseIcon(), renderCheckboxOrRadio(), renderNodeContent(), renderChildNodes());
140
+ });
141
+ TreeNodeComponent.displayName = "TreeNodeComponent";
142
+ var _default = exports["default"] = TreeNodeComponent;
@@ -0,0 +1,503 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _clsx = _interopRequireDefault(require("clsx"));
12
+ var _withBaseWrapper = require("@wavemaker/react-runtime/higherOrder/withBaseWrapper");
13
+ var _isArray = _interopRequireDefault(require("lodash-es/isArray"));
14
+ var _isEmpty = _interopRequireDefault(require("lodash-es/isEmpty"));
15
+ var _isObject = _interopRequireDefault(require("lodash-es/isObject"));
16
+ var _isString = _interopRequireDefault(require("lodash-es/isString"));
17
+ var _transformedDatasetUtils = require("@wavemaker/react-runtime/utils/transformedDataset-utils");
18
+ var _Box = _interopRequireDefault(require("@mui/material/Box"));
19
+ var _TreeNodeComponent = _interopRequireDefault(require("./Components/TreeNodeComponent"));
20
+ var _utils = require("./utils");
21
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
22
+ var __jsx = _react["default"].createElement;
23
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
24
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
25
+ var DEFAULT_CLASS = "app-tree";
26
+ var DEFAULT_TREE_ICON_CLASS = "plus-minus";
27
+ var WmTree = function WmTree(props) {
28
+ var _props$dataset = props.dataset,
29
+ dataset = _props$dataset === void 0 ? "node1, node2, node3" : _props$dataset,
30
+ datavalue = props.datavalue,
31
+ _props$treeicons = props.treeicons,
32
+ treeicons = _props$treeicons === void 0 ? DEFAULT_TREE_ICON_CLASS : _props$treeicons,
33
+ _props$levels = props.levels,
34
+ levels = _props$levels === void 0 ? 0 : _props$levels,
35
+ _props$nodelabel = props.nodelabel,
36
+ nodelabel = _props$nodelabel === void 0 ? "" : _props$nodelabel,
37
+ _props$nodeicon = props.nodeicon,
38
+ nodeicon = _props$nodeicon === void 0 ? "" : _props$nodeicon,
39
+ _props$nodechildren = props.nodechildren,
40
+ nodechildren = _props$nodechildren === void 0 ? "" : _props$nodechildren,
41
+ _props$nodeid = props.nodeid,
42
+ nodeid = _props$nodeid === void 0 ? "" : _props$nodeid,
43
+ _props$nodeaction = props.nodeaction,
44
+ nodeaction = _props$nodeaction === void 0 ? "" : _props$nodeaction,
45
+ _props$nodeclick = props.nodeclick,
46
+ nodeclick = _props$nodeclick === void 0 ? "none" : _props$nodeclick,
47
+ _props$tabindex = props.tabindex,
48
+ tabindex = _props$tabindex === void 0 ? 0 : _props$tabindex,
49
+ _props$name = props.name,
50
+ name = _props$name === void 0 ? "treeview" : _props$name,
51
+ classFromProps = props["class"],
52
+ className = props.className,
53
+ _props$orderby = props.orderby,
54
+ orderby = _props$orderby === void 0 ? "" : _props$orderby,
55
+ onExpand = props.onExpand,
56
+ onCollapse = props.onCollapse,
57
+ onSelect = props.onSelect,
58
+ onCheck = props.onCheck,
59
+ _props$horizontalalig = props.horizontalalign,
60
+ horizontalalign = _props$horizontalalig === void 0 ? "left" : _props$horizontalalig,
61
+ listener = props.listener,
62
+ width = props.width,
63
+ height = props.height;
64
+
65
+ // Combined class for both props.class and props.className
66
+ var combinedClassName = (0, _clsx["default"])(classFromProps, className);
67
+ var isCheckboxTree = combinedClassName === null || combinedClassName === void 0 ? void 0 : combinedClassName.includes("Checkbox");
68
+ var isRadioTree = combinedClassName === null || combinedClassName === void 0 ? void 0 : combinedClassName.includes("Radio");
69
+
70
+ // Component state
71
+ var _useState = (0, _react.useState)([]),
72
+ treeNodes = _useState[0],
73
+ setTreeNodes = _useState[1];
74
+ var _useState2 = (0, _react.useState)(null),
75
+ selectedItem = _useState2[0],
76
+ setSelectedItem = _useState2[1];
77
+ var _useState3 = (0, _react.useState)(null),
78
+ radioSelectedNodeId = _useState3[0],
79
+ setRadioSelectedNodeId = _useState3[1];
80
+
81
+ // Unique ID generator for ensuring nodeId uniqueness
82
+ var usedNodeIds = (0, _react.useRef)(new Set());
83
+
84
+ // Function to get nodes from string input
85
+ var getNodesFromString = (0, _react.useCallback)(function (value) {
86
+ if (!value) return [];
87
+ return value.split(",").map(function (item, index) {
88
+ return {
89
+ name: item.trim(),
90
+ label: item.trim(),
91
+ nodeId: "string_node_".concat(index, "_").concat(item.trim()),
92
+ tId: "".concat(name, "_string_node_").concat(index, "_").concat(item.trim()),
93
+ data: {
94
+ label: item.trim()
95
+ },
96
+ children: [],
97
+ open: levels > 0,
98
+ checked: false
99
+ };
100
+ });
101
+ }, [levels, name]);
102
+
103
+ // Get initial nodes from dataset
104
+ var getNodes = (0, _react.useCallback)(function (newVal) {
105
+ usedNodeIds.current.clear();
106
+ var processNodeOptions = {
107
+ levels: levels,
108
+ nodelabel: nodelabel,
109
+ nodeicon: nodeicon,
110
+ nodechildren: nodechildren,
111
+ nodeid: nodeid,
112
+ generateUniqueNodeId: function generateUniqueNodeId(baseId) {
113
+ return (0, _utils.generateUniqueNodeId)(baseId, usedNodeIds.current);
114
+ }
115
+ };
116
+ if ((0, _isArray["default"])(newVal)) {
117
+ return newVal.map(function (item, index) {
118
+ return (0, _utils.processNode)(item, 0, undefined, newVal, index, name, processNodeOptions);
119
+ });
120
+ } else if ((0, _isObject["default"])(newVal) && newVal !== null) {
121
+ return [(0, _utils.processNode)(newVal, 0, undefined, [newVal], 0, name, processNodeOptions)];
122
+ } else if ((0, _isString["default"])(newVal) && !(0, _isEmpty["default"])(newVal)) {
123
+ return getNodesFromString(newVal.trim());
124
+ }
125
+ return [];
126
+ }, [getNodesFromString, levels, nodelabel, nodeicon, nodechildren, nodeid, name]);
127
+
128
+ // Get path to node (for event callbacks)
129
+ var getPath = (0, _react.useCallback)(function (node) {
130
+ if (!node) return "";
131
+ var path = [];
132
+ var currentNode = node;
133
+ while (currentNode) {
134
+ path.unshift(currentNode.name);
135
+ currentNode = currentNode.parent;
136
+ }
137
+ return "/".concat(path.join("/"));
138
+ }, []);
139
+ var toggleNodeExpansion = (0, _react.useCallback)(function (event, node) {
140
+ if (event) {
141
+ event.stopPropagation(); // Prevent triggering node selection
142
+ }
143
+
144
+ // Toggle the open state
145
+ var updatedNode = _objectSpread(_objectSpread({}, node), {}, {
146
+ open: !node.open
147
+ });
148
+
149
+ // Update the node in the tree
150
+ var updateNodeInTree = function updateNodeInTree(nodes, targetNode) {
151
+ return nodes.map(function (n) {
152
+ var _n$children;
153
+ if (n.nodeId === targetNode.nodeId) {
154
+ return updatedNode;
155
+ } else if ((_n$children = n.children) !== null && _n$children !== void 0 && _n$children.length) {
156
+ return _objectSpread(_objectSpread({}, n), {}, {
157
+ children: updateNodeInTree(n.children, targetNode)
158
+ });
159
+ }
160
+ return n;
161
+ });
162
+ };
163
+ var updatedNodes = updateNodeInTree(treeNodes, node);
164
+ setTreeNodes(updatedNodes);
165
+ var path = getPath(node);
166
+ if (updatedNode.open) {
167
+ if (onExpand && event && name) {
168
+ onExpand(event, listener === null || listener === void 0 ? void 0 : listener.Widgets[name], node.data, path);
169
+ }
170
+ } else {
171
+ if (onCollapse && event && name) {
172
+ onCollapse(event, listener === null || listener === void 0 ? void 0 : listener.Widgets[name], node.data, path);
173
+ }
174
+ }
175
+ }, [getPath, name, onCollapse, onExpand, treeNodes]);
176
+
177
+ // Handle node selection
178
+ var selectNode = (0, _react.useCallback)(function (event, node) {
179
+ var _node$children;
180
+ if (!node) return;
181
+ setSelectedItem(node);
182
+ if (event && nodeclick === "expand" && (_node$children = node.children) !== null && _node$children !== void 0 && _node$children.length) {
183
+ toggleNodeExpansion(event, node);
184
+ }
185
+ if (onSelect && event && name) {
186
+ onSelect(event, listener === null || listener === void 0 ? void 0 : listener.Widgets[name], node.data, getPath(node));
187
+ }
188
+ }, [name, nodeaction, nodeclick, onSelect, toggleNodeExpansion]);
189
+
190
+ // Handle node click
191
+ var handleNodeClick = (0, _react.useCallback)(function (event, node) {
192
+ selectNode(event, node);
193
+ }, [selectNode]);
194
+
195
+ // Handle checkbox toggle
196
+ var toggleNodeChecked = (0, _react.useCallback)(function (event, node) {
197
+ event.stopPropagation(); // Prevent triggering node selection
198
+
199
+ // Toggle the checked state
200
+ var newCheckedState = !node.checked;
201
+
202
+ // Update the tree with cascading effect
203
+ var updateCheckedState = function updateCheckedState(nodes, nodeId, checked) {
204
+ return nodes.map(function (node) {
205
+ var _node$children3;
206
+ if (node.nodeId === nodeId) {
207
+ var _node$children2;
208
+ // Update this node's checked state
209
+ var updatedNode = _objectSpread(_objectSpread({}, node), {}, {
210
+ checked: checked
211
+ });
212
+
213
+ // Update all children recursively if any
214
+ if ((_node$children2 = node.children) !== null && _node$children2 !== void 0 && _node$children2.length) {
215
+ updatedNode.children = updateAllChildrenChecked(node.children, checked);
216
+ }
217
+
218
+ // Also update the data object to maintain consistency
219
+ if (updatedNode.data) {
220
+ updatedNode.data = _objectSpread(_objectSpread({}, updatedNode.data), {}, {
221
+ checked: checked
222
+ });
223
+ }
224
+ return updatedNode;
225
+ } else if ((_node$children3 = node.children) !== null && _node$children3 !== void 0 && _node$children3.length) {
226
+ // Check if the target node is in the children
227
+ var updatedChildren = updateCheckedState(node.children, nodeId, checked);
228
+
229
+ // Check if all children are checked or unchecked to update parent accordingly
230
+ var allChildrenChecked = updatedChildren.every(function (child) {
231
+ return child.checked;
232
+ });
233
+ var anyChildChecked = updatedChildren.some(function (child) {
234
+ return child.checked;
235
+ });
236
+ var updatedCheckedState = nodeId !== node.nodeId ? checked ? allChildrenChecked : anyChildChecked ? node.checked : false : node.checked;
237
+
238
+ // Update the data object to maintain consistency
239
+ var _updatedNode = _objectSpread(_objectSpread({}, node), {}, {
240
+ children: updatedChildren,
241
+ checked: updatedCheckedState
242
+ });
243
+ if (_updatedNode.data) {
244
+ _updatedNode.data = _objectSpread(_objectSpread({}, _updatedNode.data), {}, {
245
+ checked: updatedCheckedState
246
+ });
247
+ }
248
+ return _updatedNode;
249
+ }
250
+ return node;
251
+ });
252
+ };
253
+
254
+ // Helper function to set all children to the same checked state
255
+ var updateAllChildrenChecked = function updateAllChildrenChecked(nodes, checked) {
256
+ return nodes.map(function (node) {
257
+ var _node$children4;
258
+ var updatedNode = _objectSpread(_objectSpread({}, node), {}, {
259
+ checked: checked,
260
+ children: (_node$children4 = node.children) !== null && _node$children4 !== void 0 && _node$children4.length ? updateAllChildrenChecked(node.children, checked) : node.children
261
+ });
262
+
263
+ // Update the data object to maintain consistency
264
+ if (updatedNode.data) {
265
+ updatedNode.data = _objectSpread(_objectSpread({}, updatedNode.data), {}, {
266
+ checked: checked
267
+ });
268
+ }
269
+ return updatedNode;
270
+ });
271
+ };
272
+ var updatedNodes = updateCheckedState(treeNodes, node.nodeId, newCheckedState);
273
+ setTreeNodes(updatedNodes);
274
+ if (onCheck) {
275
+ onCheck(event, undefined, node.data, newCheckedState);
276
+ }
277
+ }, [name, onCheck, treeNodes]);
278
+
279
+ // Handle radio button selection
280
+ var handleRadioSelect = (0, _react.useCallback)(function (event, node) {
281
+ event.stopPropagation(); // Prevent triggering node selection
282
+
283
+ // Already selected, skip
284
+ if (radioSelectedNodeId === node.nodeId) {
285
+ return;
286
+ }
287
+
288
+ // Set new selected radio
289
+ setRadioSelectedNodeId(node.nodeId);
290
+
291
+ // Update all nodes in the tree to set the correct radio state
292
+ var updateRadioState = function updateRadioState(nodes, selectedNodeId) {
293
+ return nodes.map(function (node) {
294
+ var _node$children5;
295
+ var isChecked = node.nodeId === selectedNodeId;
296
+
297
+ // Update this node
298
+ var updatedNode = _objectSpread(_objectSpread({}, node), {}, {
299
+ checked: isChecked
300
+ });
301
+
302
+ // Update the data object to maintain consistency
303
+ if (updatedNode.data) {
304
+ updatedNode.data = _objectSpread(_objectSpread({}, updatedNode.data), {}, {
305
+ checked: isChecked
306
+ });
307
+ }
308
+
309
+ // Update children recursively if any
310
+ if ((_node$children5 = node.children) !== null && _node$children5 !== void 0 && _node$children5.length) {
311
+ updatedNode.children = updateRadioState(node.children, selectedNodeId);
312
+ }
313
+ return updatedNode;
314
+ });
315
+ };
316
+ var updatedNodes = updateRadioState(treeNodes, node.nodeId);
317
+ setTreeNodes(updatedNodes);
318
+ if (onCheck) {
319
+ onCheck(event, undefined, node.data, true);
320
+ }
321
+ }, [name, onCheck, radioSelectedNodeId, treeNodes]);
322
+
323
+ // Implement programmatic API methods
324
+ var selectById = (0, _react.useCallback)(function (nodeId) {
325
+ if (!nodeId) {
326
+ setSelectedItem(null);
327
+ return;
328
+ }
329
+ var node = (0, _utils.findNodeById)(treeNodes, nodeId);
330
+ if (node) {
331
+ selectNode(undefined, node);
332
+ if (isRadioTree) {
333
+ setRadioSelectedNodeId(node.nodeId);
334
+ var updateRadioState = function updateRadioState(nodes, selectedNodeId) {
335
+ return nodes.map(function (node) {
336
+ var _node$children6;
337
+ var isChecked = node.nodeId === selectedNodeId;
338
+ var updatedNode = _objectSpread(_objectSpread({}, node), {}, {
339
+ checked: isChecked
340
+ });
341
+ if (updatedNode.data) {
342
+ updatedNode.data = _objectSpread(_objectSpread({}, updatedNode.data), {}, {
343
+ checked: isChecked
344
+ });
345
+ }
346
+ if ((_node$children6 = node.children) !== null && _node$children6 !== void 0 && _node$children6.length) {
347
+ updatedNode.children = updateRadioState(node.children, selectedNodeId);
348
+ }
349
+ return updatedNode;
350
+ });
351
+ };
352
+ var updatedNodes = updateRadioState(treeNodes, node.nodeId);
353
+ setTreeNodes(updatedNodes);
354
+ }
355
+ var currentNode = node.parent;
356
+ var nodesToExpand = [];
357
+ while (currentNode) {
358
+ nodesToExpand.push(currentNode);
359
+ currentNode = currentNode.parent;
360
+ }
361
+ if (nodesToExpand.length) {
362
+ var updateNodeOpenState = function updateNodeOpenState(nodes, nodesToExpand) {
363
+ return nodes.map(function (node) {
364
+ var _node$children7;
365
+ if (nodesToExpand.some(function (n) {
366
+ return n.nodeId === node.nodeId;
367
+ })) {
368
+ return _objectSpread(_objectSpread({}, node), {}, {
369
+ open: true,
370
+ children: node.children ? updateNodeOpenState(node.children, nodesToExpand) : undefined
371
+ });
372
+ } else if ((_node$children7 = node.children) !== null && _node$children7 !== void 0 && _node$children7.length) {
373
+ return _objectSpread(_objectSpread({}, node), {}, {
374
+ children: updateNodeOpenState(node.children, nodesToExpand)
375
+ });
376
+ }
377
+ return node;
378
+ });
379
+ };
380
+ var _updatedNodes = updateNodeOpenState(treeNodes, nodesToExpand);
381
+ setTreeNodes(_updatedNodes);
382
+ }
383
+ }
384
+ }, [isRadioTree]);
385
+ var deselectById = (0, _react.useCallback)(function () {
386
+ setSelectedItem(null);
387
+ if (isRadioTree) {
388
+ setRadioSelectedNodeId(null);
389
+ var clearCheckedState = function clearCheckedState(nodes) {
390
+ return nodes.map(function (node) {
391
+ var _node$children8;
392
+ var updatedNode = _objectSpread(_objectSpread({}, node), {}, {
393
+ checked: false,
394
+ children: (_node$children8 = node.children) !== null && _node$children8 !== void 0 && _node$children8.length ? clearCheckedState(node.children) : node.children
395
+ });
396
+ if (updatedNode.data) {
397
+ updatedNode.data = _objectSpread(_objectSpread({}, updatedNode.data), {}, {
398
+ checked: false
399
+ });
400
+ }
401
+ return updatedNode;
402
+ });
403
+ };
404
+ setTreeNodes(clearCheckedState(treeNodes));
405
+ }
406
+ }, [isRadioTree]);
407
+
408
+ // Memoized sorted nodes to avoid re-sorting on every render
409
+ var sortedTreeNodes = (0, _react.useMemo)(function () {
410
+ return orderby ? (0, _transformedDatasetUtils.getOrderedDataset)(treeNodes, orderby) : treeNodes;
411
+ }, [orderby, treeNodes]);
412
+
413
+ // Process dataset when it changes
414
+ (0, _react.useEffect)(function () {
415
+ try {
416
+ var parsedNodes = getNodes(dataset);
417
+ setTreeNodes(parsedNodes);
418
+ } catch (error) {
419
+ setTreeNodes([]);
420
+ }
421
+ }, [dataset, getNodes]);
422
+
423
+ // Handle datavalue changes - following Angular's approach
424
+ (0, _react.useEffect)(function () {
425
+ if (!datavalue || !sortedTreeNodes.length) return;
426
+ if (selectedItem) return;
427
+ var targetNode = null;
428
+ if (datavalue === "FirstNode") {
429
+ targetNode = sortedTreeNodes[0];
430
+ } else if (datavalue === "LastNode") {
431
+ targetNode = sortedTreeNodes[sortedTreeNodes.length - 1];
432
+ } else {
433
+ targetNode = (0, _utils.findNodeById)(sortedTreeNodes, datavalue);
434
+ }
435
+ if (targetNode) {
436
+ var _targetNode$children;
437
+ selectNode(undefined, targetNode);
438
+ if ((_targetNode$children = targetNode.children) !== null && _targetNode$children !== void 0 && _targetNode$children.length) {
439
+ var updateNodeOpenState = function updateNodeOpenState(nodes, targetNodeId) {
440
+ return nodes.map(function (node) {
441
+ var _node$children9;
442
+ if (node.nodeId === targetNodeId) {
443
+ return _objectSpread(_objectSpread({}, node), {}, {
444
+ open: true,
445
+ children: node.children ? updateNodeOpenState(node.children, targetNodeId) : undefined
446
+ });
447
+ } else if ((_node$children9 = node.children) !== null && _node$children9 !== void 0 && _node$children9.length) {
448
+ return _objectSpread(_objectSpread({}, node), {}, {
449
+ children: updateNodeOpenState(node.children, targetNodeId)
450
+ });
451
+ }
452
+ return node;
453
+ });
454
+ };
455
+ var updatedNodes = updateNodeOpenState(treeNodes, targetNode.nodeId);
456
+ setTreeNodes(updatedNodes);
457
+ }
458
+ }
459
+ }, [datavalue, sortedTreeNodes.length, selectedItem, treeNodes, selectNode]); // Added selectNode to dependencies
460
+
461
+ //Handled methods
462
+ (0, _react.useEffect)(function () {
463
+ if (listener !== null && listener !== void 0 && listener.onChange) {
464
+ listener.onChange(name, {
465
+ selectById: selectById,
466
+ deselectById: deselectById
467
+ });
468
+ }
469
+ }, [selectById, deselectById]);
470
+ return __jsx(_Box["default"], {
471
+ component: "ul",
472
+ className: (0, _clsx["default"])(DEFAULT_CLASS, combinedClassName, "ztree"),
473
+ id: name,
474
+ name: name,
475
+ tabIndex: tabindex,
476
+ style: _objectSpread(_objectSpread({}, props.styles), {}, {
477
+ width: width,
478
+ height: height,
479
+ textAlign: horizontalalign
480
+ })
481
+ }, sortedTreeNodes.length > 0 ? sortedTreeNodes.map(function (node) {
482
+ return __jsx(_TreeNodeComponent["default"], {
483
+ key: node.nodeId,
484
+ node: node,
485
+ treeicons: treeicons,
486
+ isCheckboxTree: isCheckboxTree,
487
+ isRadioTree: isRadioTree,
488
+ selectedItem: selectedItem,
489
+ handleNodeClick: handleNodeClick,
490
+ toggleNodeExpansion: toggleNodeExpansion,
491
+ toggleNodeChecked: toggleNodeChecked,
492
+ handleRadioSelect: handleRadioSelect,
493
+ treeName: name
494
+ });
495
+ }) : __jsx("li", {
496
+ style: {
497
+ padding: 16,
498
+ color: "text.secondary"
499
+ }
500
+ }, "No tree data available"));
501
+ };
502
+ WmTree.displayName = "WmTree";
503
+ var _default = exports["default"] = (0, _withBaseWrapper.withBaseWrapper)(WmTree);
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });