@wavemaker-ai/react-runtime 1.0.0-rc.647502 → 1.0.0-rc.647565

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 (574) hide show
  1. package/.npmignore +4 -0
  2. package/actions/base-action.js +12 -29
  3. package/actions/login-action.js +35 -52
  4. package/actions/logout-action.js +21 -38
  5. package/actions/navigation-action.js +251 -346
  6. package/actions/notification-action.js +121 -149
  7. package/actions/timer-action.js +95 -151
  8. package/actions/toast-provider.js +62 -76
  9. package/actions/toast.js +95 -91
  10. package/actions/toast.service.js +59 -79
  11. package/actions/types/index.js +6 -9
  12. package/components/advanced/carousel/index.js +358 -366
  13. package/components/advanced/carousel/props.js +0 -5
  14. package/components/advanced/carousel/template.js +102 -80
  15. package/components/advanced/login/index.js +227 -285
  16. package/components/advanced/login/props.js +0 -5
  17. package/components/advanced/marquee/index.js +169 -163
  18. package/components/advanced/marquee/props.js +0 -5
  19. package/components/basic/anchor/index.js +207 -187
  20. package/components/basic/anchor/props.js +0 -5
  21. package/components/basic/audio/index.js +110 -72
  22. package/components/basic/audio/props.js +0 -5
  23. package/components/basic/html/index.js +163 -203
  24. package/components/basic/html/props.js +0 -5
  25. package/components/basic/html/utils.js +30 -28
  26. package/components/basic/icon/index.js +98 -84
  27. package/components/basic/icon/props.js +0 -5
  28. package/components/basic/iframe/iframe.utils.js +7 -16
  29. package/components/basic/iframe/index.js +97 -103
  30. package/components/basic/iframe/props.js +0 -5
  31. package/components/basic/label/index.js +156 -134
  32. package/components/basic/label/props.js +0 -5
  33. package/components/basic/message/index.js +129 -113
  34. package/components/basic/message/props.js +0 -5
  35. package/components/basic/picture/index.js +156 -127
  36. package/components/basic/picture/props.js +0 -5
  37. package/components/basic/progress-bar/index.js +240 -176
  38. package/components/basic/progress-bar/props.js +5 -31
  39. package/components/basic/progress-circle/index.js +166 -183
  40. package/components/basic/progress-circle/props.js +14 -34
  41. package/components/basic/richtexteditor/index.js +430 -396
  42. package/components/basic/richtexteditor/props.js +0 -5
  43. package/components/basic/search/index.js +812 -931
  44. package/components/basic/search/props.js +0 -5
  45. package/components/basic/search/providers.js +233 -380
  46. package/components/basic/spinner/index.js +210 -200
  47. package/components/basic/spinner/props.js +4 -22
  48. package/components/basic/tile/index.js +73 -81
  49. package/components/basic/tile/props.js +0 -5
  50. package/components/basic/tree/Components/TreeNodeComponent.js +238 -170
  51. package/components/basic/tree/hooks/useTreePartialNodeApi.js +143 -135
  52. package/components/basic/tree/index.js +378 -454
  53. package/components/basic/tree/props.js +0 -5
  54. package/components/basic/tree/utils.js +129 -185
  55. package/components/basic/video/index.js +161 -107
  56. package/components/basic/video/props.js +0 -5
  57. package/components/chart/index.js +42 -50
  58. package/components/chart/props.js +31 -37
  59. package/components/chart/src/ChartRenderer.js +172 -154
  60. package/components/chart/src/chart.js +391 -213
  61. package/components/chart/src/chartStyles.generated.js +6 -14
  62. package/components/chart/src/chartUtils.js +228 -272
  63. package/components/chart/src/constants.d.ts +13 -0
  64. package/components/chart/src/constants.js +316 -90
  65. package/components/chart/src/d3Setup.js +11 -30
  66. package/components/chart/src/dataUtils.js +362 -446
  67. package/components/chart/src/formatUtils.js +47 -38
  68. package/components/chart/src/index.js +11 -19
  69. package/components/chart/src/nvd3Source.generated.js +5 -13
  70. package/components/chart/src/pieDonutResponsiveLayout.d.ts +5 -0
  71. package/components/chart/src/pieDonutResponsiveLayout.js +76 -96
  72. package/components/chart/src/types.js +0 -5
  73. package/components/common/AppSpinner.js +17 -33
  74. package/components/common/app-spinner.js +11 -22
  75. package/components/common/customTemplate/index.d.ts +3 -0
  76. package/components/common/customTemplate/index.js +6 -0
  77. package/components/common/customTemplate/props.d.ts +20 -0
  78. package/components/common/customTemplate/props.js +0 -0
  79. package/components/common/customTemplate/template.d.ts +3 -0
  80. package/components/common/customTemplate/template.js +27 -0
  81. package/components/common/customTemplate/useCustomTemplate.d.ts +8 -0
  82. package/components/common/customTemplate/useCustomTemplate.js +17 -0
  83. package/components/common/customTemplate/utils.d.ts +6 -0
  84. package/components/common/customTemplate/utils.js +12 -0
  85. package/components/common/index.js +4 -12
  86. package/components/constants.js +81 -77
  87. package/components/container/accordion/accordion-pane/index.js +105 -118
  88. package/components/container/accordion/accordion-pane/props.js +5 -21
  89. package/components/container/accordion/index.js +225 -243
  90. package/components/container/accordion/props.js +5 -16
  91. package/components/container/index.js +214 -150
  92. package/components/container/layout-grid/grid-column/index.js +68 -43
  93. package/components/container/layout-grid/grid-column/props.js +0 -5
  94. package/components/container/layout-grid/grid-row/index.js +12 -29
  95. package/components/container/layout-grid/grid-row/props.js +0 -5
  96. package/components/container/layout-grid/index.js +53 -38
  97. package/components/container/layout-grid/props.js +0 -5
  98. package/components/container/linear-layout/index.js +56 -60
  99. package/components/container/linear-layout/linear-layout-item/index.js +43 -47
  100. package/components/container/linear-layout/linear-layout-item/props.js +0 -5
  101. package/components/container/linear-layout/props.js +0 -5
  102. package/components/container/panel/components/panel-content/index.js +7 -16
  103. package/components/container/panel/components/panel-header/index.js +166 -146
  104. package/components/container/panel/components/panel-header/props.js +0 -5
  105. package/components/container/panel/hooks.js +76 -102
  106. package/components/container/panel/index.js +289 -252
  107. package/components/container/panel/props.js +0 -5
  108. package/components/container/props.js +0 -5
  109. package/components/container/repeat-template/index.js +65 -44
  110. package/components/container/repeat-template/props.js +0 -5
  111. package/components/container/tabs/index.js +517 -526
  112. package/components/container/tabs/props.js +5 -28
  113. package/components/container/tabs/tab-pane/index.js +105 -100
  114. package/components/container/tabs/tab-pane/props.js +0 -5
  115. package/components/container/tabs/utils.js +30 -35
  116. package/components/container/wizard/WizardContext.js +9 -11
  117. package/components/container/wizard/components/StepComponents.js +76 -99
  118. package/components/container/wizard/components/WizardStep.js +107 -85
  119. package/components/container/wizard/index.js +791 -921
  120. package/components/container/wizard/props.js +0 -5
  121. package/components/container/wizard/utils.js +97 -131
  122. package/components/container/wizard/wizard-action/index.js +41 -81
  123. package/components/container/wizard/wizard-step/index.js +140 -120
  124. package/components/data/card/card-actions/index.js +13 -31
  125. package/components/data/card/card-content/index.js +27 -36
  126. package/components/data/card/card-footer/index.js +13 -31
  127. package/components/data/card/index.js +192 -199
  128. package/components/data/card/props.js +0 -5
  129. package/components/data/form/base-form/constant.js +5 -8
  130. package/components/data/form/base-form/hooks/index.js +26 -77
  131. package/components/data/form/base-form/hooks/useFormDataSync.js +106 -212
  132. package/components/data/form/base-form/hooks/useFormOperations.js +109 -161
  133. package/components/data/form/base-form/hooks/useFormSubmission.js +220 -280
  134. package/components/data/form/base-form/hooks/useFormValidation.js +119 -168
  135. package/components/data/form/base-form/hooks/useParentFormRelationship.js +67 -103
  136. package/components/data/form/base-form/index.js +531 -646
  137. package/components/data/form/base-form/props.js +74 -151
  138. package/components/data/form/base-form/utils.js +210 -323
  139. package/components/data/form/dynamic-fields/constant.js +43 -53
  140. package/components/data/form/dynamic-fields/index.js +135 -144
  141. package/components/data/form/dynamic-fields/props.js +0 -5
  142. package/components/data/form/dynamic-fields/utils.js +99 -158
  143. package/components/data/form/form-action/index.js +107 -85
  144. package/components/data/form/form-body/index.js +52 -26
  145. package/components/data/form/form-context.js +43 -59
  146. package/components/data/form/form-controller/hooks/index.js +43 -57
  147. package/components/data/form/form-controller/props.js +5 -8
  148. package/components/data/form/form-controller/utils.js +54 -49
  149. package/components/data/form/form-controller/validation-contrustor.js +203 -426
  150. package/components/data/form/form-controller/withFormController.js +319 -269
  151. package/components/data/form/form-dynamic-section/index.js +47 -41
  152. package/components/data/form/form-dynamic-section/props.js +0 -5
  153. package/components/data/form/form-field/base-field.js +97 -109
  154. package/components/data/form/form-field/index.js +91 -82
  155. package/components/data/form/form-field/props.js +0 -5
  156. package/components/data/form/form-footer/index.js +52 -25
  157. package/components/data/form/form-header/index.js +61 -58
  158. package/components/data/form/index.js +95 -74
  159. package/components/data/form/props.js +0 -5
  160. package/components/data/list/components/GroupHeader.js +34 -33
  161. package/components/data/list/components/GroupedListItems.js +108 -104
  162. package/components/data/list/components/ListContainer.js +22 -27
  163. package/components/data/list/components/ListDND.js +193 -185
  164. package/components/data/list/components/ListHeader.js +32 -49
  165. package/components/data/list/components/ListItem.js +153 -146
  166. package/components/data/list/components/ListItemWithTemplate.js +87 -105
  167. package/components/data/list/components/ListItems.js +180 -194
  168. package/components/data/list/components/ListPagination.js +127 -153
  169. package/components/data/list/components/LoadMoreButton.js +25 -33
  170. package/components/data/list/components/NoDataMessage.js +9 -22
  171. package/components/data/list/components/StandardListItems.js +79 -85
  172. package/components/data/list/components/index.js +31 -119
  173. package/components/data/list/components/props.js +0 -5
  174. package/components/data/list/hooks/index.js +22 -75
  175. package/components/data/list/hooks/props.js +0 -5
  176. package/components/data/list/hooks/useCurrentPageItems.js +20 -38
  177. package/components/data/list/hooks/useGroupedData.js +19 -33
  178. package/components/data/list/hooks/useListData.js +17 -47
  179. package/components/data/list/hooks/useListEffects.js +168 -237
  180. package/components/data/list/hooks/useListEventHandlers.js +301 -285
  181. package/components/data/list/hooks/useListPagination.js +90 -136
  182. package/components/data/list/hooks/useListState.js +49 -91
  183. package/components/data/list/hooks/useListStateManager.js +104 -159
  184. package/components/data/list/hooks/usePaginatedGroupedData.js +74 -110
  185. package/components/data/list/index.d.ts +1 -0
  186. package/components/data/list/index.js +579 -621
  187. package/components/data/list/props.d.ts +4 -0
  188. package/components/data/list/props.js +0 -5
  189. package/components/data/list/templates/media-template.js +29 -50
  190. package/components/data/list/utils/constants.js +20 -32
  191. package/components/data/list/utils/list-helpers.d.ts +2 -1
  192. package/components/data/list/utils/list-helpers.js +71 -115
  193. package/components/data/list/utils/list-widget-methods.js +56 -76
  194. package/components/data/list/utils/widget-instance-utils.js +20 -57
  195. package/components/data/live-filter/index.js +219 -271
  196. package/components/data/live-filter/props.js +5 -12
  197. package/components/data/live-form/index.js +68 -91
  198. package/components/data/live-form/props.js +5 -12
  199. package/components/data/pagination/components/BasicPagination.js +124 -104
  200. package/components/data/pagination/components/ClassicPagination.js +167 -190
  201. package/components/data/pagination/components/InlinePagination.js +97 -98
  202. package/components/data/pagination/components/LoadingComponent.js +17 -30
  203. package/components/data/pagination/components/PageSizeSelector.js +176 -169
  204. package/components/data/pagination/components/PagerNavigation.js +84 -105
  205. package/components/data/pagination/components/TotalRecords.js +48 -47
  206. package/components/data/pagination/components/index.js +14 -47
  207. package/components/data/pagination/components/props.js +0 -5
  208. package/components/data/pagination/hooks/index.js +6 -19
  209. package/components/data/pagination/hooks/props.js +0 -5
  210. package/components/data/pagination/hooks/useNavigationSize.js +12 -21
  211. package/components/data/pagination/hooks/usePagination.js +702 -905
  212. package/components/data/pagination/index.js +336 -389
  213. package/components/data/table/components/AddNewRow.js +122 -154
  214. package/components/data/table/components/EditableCell.js +68 -75
  215. package/components/data/table/components/FieldValidationError.js +19 -20
  216. package/components/data/table/components/RowCells.js +97 -80
  217. package/components/data/table/components/RowExpansionButton.js +43 -39
  218. package/components/data/table/components/SummaryCell.js +54 -88
  219. package/components/data/table/components/SummaryRow.js +45 -52
  220. package/components/data/table/components/SummaryRowFooter.js +35 -42
  221. package/components/data/table/components/TableBody.js +222 -218
  222. package/components/data/table/components/TableDataRow.js +113 -106
  223. package/components/data/table/components/TableFilters.js +391 -390
  224. package/components/data/table/components/TableFooterActions.js +25 -32
  225. package/components/data/table/components/TableHeader.js +460 -435
  226. package/components/data/table/components/TablePanelHeading.js +157 -181
  227. package/components/data/table/components/index.js +27 -95
  228. package/components/data/table/hooks/index.js +21 -230
  229. package/components/data/table/hooks/use-edited-rows.js +59 -94
  230. package/components/data/table/hooks/useCellState.js +58 -83
  231. package/components/data/table/hooks/useCustomExpressionColumns.js +65 -86
  232. package/components/data/table/hooks/useDynamicColumns.js +59 -92
  233. package/components/data/table/hooks/useEditingState.js +30 -41
  234. package/components/data/table/hooks/useFormWidget.js +163 -172
  235. package/components/data/table/hooks/usePaginationState.js +67 -77
  236. package/components/data/table/hooks/usePanelStructure.js +47 -41
  237. package/components/data/table/hooks/useResponsiveColumns.js +14 -20
  238. package/components/data/table/hooks/useRowExpansion.js +131 -127
  239. package/components/data/table/hooks/useRowHandlers.js +56 -69
  240. package/components/data/table/hooks/useRowSelection.js +249 -329
  241. package/components/data/table/hooks/useServerSideSorting.js +109 -175
  242. package/components/data/table/hooks/useTableColumns.js +322 -331
  243. package/components/data/table/hooks/useTableData.js +111 -166
  244. package/components/data/table/hooks/useTableEdit.js +526 -564
  245. package/components/data/table/hooks/useTableEffects.js +60 -107
  246. package/components/data/table/hooks/useTableFilter.js +244 -237
  247. package/components/data/table/hooks/useTableInitialization.js +44 -76
  248. package/components/data/table/hooks/useTableState.js +39 -61
  249. package/components/data/table/hooks/useTableStateManager.js +295 -468
  250. package/components/data/table/index.js +1553 -1713
  251. package/components/data/table/live-table/index.js +157 -219
  252. package/components/data/table/props.js +0 -5
  253. package/components/data/table/table-action/index.js +97 -75
  254. package/components/data/table/table-column/index.js +48 -42
  255. package/components/data/table/table-group/index.js +7 -25
  256. package/components/data/table/table-row/index.js +63 -55
  257. package/components/data/table/table-row-action/index.js +102 -77
  258. package/components/data/table/utils/buildSelectionColumns.js +86 -137
  259. package/components/data/table/utils/columnBuilder.js +116 -158
  260. package/components/data/table/utils/columnProxy.js +48 -66
  261. package/components/data/table/utils/columnWidthDistribution.js +40 -64
  262. package/components/data/table/utils/constants.js +92 -40
  263. package/components/data/table/utils/crud-handlers.js +292 -473
  264. package/components/data/table/utils/dynamic-columns.js +99 -144
  265. package/components/data/table/utils/groupHeaderUtils.js +36 -61
  266. package/components/data/table/utils/index.d.ts +8 -5
  267. package/components/data/table/utils/index.js +419 -639
  268. package/components/data/table/utils/renderDisplayCell.js +127 -169
  269. package/components/data/table/utils/script-page-size-broadcast.js +17 -29
  270. package/components/data/table/utils/selectionUtils.js +59 -113
  271. package/components/data/table/utils/table-helpers.js +38 -74
  272. package/components/data/table/utils/validation.js +35 -78
  273. package/components/data/table/utils/widgetMapping.d.ts +5 -0
  274. package/components/data/table/utils/widgetMapping.js +41 -0
  275. package/components/data/types.js +112 -112
  276. package/components/data/utils/field-data-utils.js +38 -42
  277. package/components/data/utils/filter-field-util.js +42 -44
  278. package/components/data/utils/index.js +112 -111
  279. package/components/dialogs/alert-dialog/index.js +83 -78
  280. package/components/dialogs/alert-dialog/props.js +0 -5
  281. package/components/dialogs/confirm-dialog/index.js +102 -92
  282. package/components/dialogs/confirm-dialog/props.js +0 -5
  283. package/components/dialogs/dialog/index.js +93 -69
  284. package/components/dialogs/dialog/props.js +0 -5
  285. package/components/dialogs/dialog-actions/index.js +12 -26
  286. package/components/dialogs/dialog-actions/props.js +0 -5
  287. package/components/dialogs/dialog-body/index.js +13 -30
  288. package/components/dialogs/dialog-body/props.js +0 -5
  289. package/components/dialogs/dialog-content/index.js +48 -41
  290. package/components/dialogs/dialog-content/props.js +0 -5
  291. package/components/dialogs/dialog-header/index.js +88 -101
  292. package/components/dialogs/dialog-header/props.js +0 -5
  293. package/components/dialogs/iframe-dialog/index.js +136 -128
  294. package/components/dialogs/iframe-dialog/props.js +0 -5
  295. package/components/dialogs/index.js +104 -101
  296. package/components/dialogs/login-dialog/index.js +285 -347
  297. package/components/dialogs/login-dialog/props.js +0 -5
  298. package/components/dialogs/page-dialog/index.js +95 -86
  299. package/components/dialogs/page-dialog/props.js +0 -5
  300. package/components/dialogs/props.js +0 -5
  301. package/components/dialogs/withDialogWrapper.js +110 -83
  302. package/components/form/button/index.js +296 -245
  303. package/components/form/button/props.js +0 -5
  304. package/components/form/button-group/index.js +80 -69
  305. package/components/form/button-group/props.js +0 -5
  306. package/components/input/calendar/index.js +409 -362
  307. package/components/input/calendar/props.js +0 -5
  308. package/components/input/calendar/utils.js +164 -172
  309. package/components/input/chips/SortableChip/index.js +109 -100
  310. package/components/input/chips/SortableChip/props.js +0 -5
  311. package/components/input/chips/index.js +663 -570
  312. package/components/input/chips/props.js +0 -5
  313. package/components/input/chips/utils.js +131 -122
  314. package/components/input/color-picker/index.js +536 -594
  315. package/components/input/color-picker/props.js +0 -5
  316. package/components/input/composite/index.js +71 -110
  317. package/components/input/composite/props.js +0 -5
  318. package/components/input/currency/index.js +277 -224
  319. package/components/input/currency/props.js +0 -5
  320. package/components/input/default/checkbox/index.js +329 -250
  321. package/components/input/default/checkbox/props.js +0 -5
  322. package/components/input/default/checkboxset/index.d.ts +2 -0
  323. package/components/input/default/checkboxset/index.js +529 -446
  324. package/components/input/default/checkboxset/props.d.ts +4 -0
  325. package/components/input/default/checkboxset/props.js +0 -5
  326. package/components/input/default/checkboxset/utils.js +15 -25
  327. package/components/input/default/radioset/index.d.ts +2 -0
  328. package/components/input/default/radioset/index.js +409 -350
  329. package/components/input/default/radioset/props.d.ts +6 -0
  330. package/components/input/default/radioset/props.js +0 -5
  331. package/components/input/default/switch/index.js +494 -458
  332. package/components/input/default/switch/prop.js +0 -5
  333. package/components/input/epoch/date/components/DatePickerPopover.js +242 -193
  334. package/components/input/epoch/date/index.js +638 -518
  335. package/components/input/epoch/date/props.js +0 -5
  336. package/components/input/epoch/date/styled.js +61 -70
  337. package/components/input/epoch/date/utils.js +67 -115
  338. package/components/input/epoch/datetime/index.js +758 -695
  339. package/components/input/epoch/datetime/props.js +0 -5
  340. package/components/input/epoch/datetime/utils.js +121 -186
  341. package/components/input/epoch/time/index.js +441 -415
  342. package/components/input/epoch/time/props.js +0 -5
  343. package/components/input/epoch/time/utils.js +101 -112
  344. package/components/input/fileupload/Utils.js +70 -97
  345. package/components/input/fileupload/components/ListItems.js +132 -130
  346. package/components/input/fileupload/components/MultiUpload.js +80 -77
  347. package/components/input/fileupload/components/SingleUpload.js +57 -57
  348. package/components/input/fileupload/index.js +253 -178
  349. package/components/input/fileupload/props.js +0 -5
  350. package/components/input/fileupload/useFileUpload.js +209 -258
  351. package/components/input/number/index.js +434 -393
  352. package/components/input/number/props.js +0 -5
  353. package/components/input/rating/index.js +401 -394
  354. package/components/input/rating/props.js +0 -5
  355. package/components/input/select/index.js +408 -463
  356. package/components/input/select/props.js +0 -5
  357. package/components/input/slider/index.js +339 -332
  358. package/components/input/slider/props.js +0 -5
  359. package/components/input/text/index.d.ts +3 -3
  360. package/components/input/text/index.js +438 -475
  361. package/components/input/text/props.d.ts +1 -1
  362. package/components/input/text/props.js +0 -5
  363. package/components/input/text/util.js +82 -222
  364. package/components/input/textarea/index.js +322 -358
  365. package/components/input/textarea/props.js +0 -5
  366. package/components/input/upload/index.js +135 -131
  367. package/components/input/upload/props.js +0 -5
  368. package/components/input/util/index.js +9 -11
  369. package/components/layout/footer/index.js +12 -35
  370. package/components/layout/footer/props.js +0 -5
  371. package/components/layout/header/index.js +12 -38
  372. package/components/layout/header/props.js +0 -5
  373. package/components/layout/leftnav/index.js +38 -44
  374. package/components/layout/leftnav/props.js +0 -5
  375. package/components/layout/rightnav/index.js +12 -36
  376. package/components/layout/rightnav/props.js +0 -5
  377. package/components/layout/topnav/index.js +24 -38
  378. package/components/layout/topnav/props.js +0 -5
  379. package/components/navbar/index.js +119 -98
  380. package/components/navbar/nav/index.js +236 -232
  381. package/components/navbar/nav/props.js +0 -5
  382. package/components/navbar/nav-item/index.js +74 -65
  383. package/components/navbar/nav-item/props.js +0 -5
  384. package/components/navigation/breadcrumb/index.js +38 -61
  385. package/components/navigation/breadcrumb/props.js +0 -5
  386. package/components/navigation/menu/components/ListItems.js +76 -67
  387. package/components/navigation/menu/constants.js +27 -42
  388. package/components/navigation/menu/hooks/useHoverState.hook.js +20 -47
  389. package/components/navigation/menu/hooks/useKeyboardMovements.hook.js +34 -28
  390. package/components/navigation/menu/hooks/useTransformedDataset.hook.js +21 -14
  391. package/components/navigation/menu/index.js +911 -846
  392. package/components/navigation/menu/props.js +0 -5
  393. package/components/navigation/menu/utils/action-task.js +6 -9
  394. package/components/navigation/menu/utils/role-filter.js +41 -56
  395. package/components/navigation/popover/index.js +191 -205
  396. package/components/navigation/popover/props.js +5 -8
  397. package/components/page/content/index.js +9 -31
  398. package/components/page/content/props.js +0 -5
  399. package/components/page/error-boundary/index.js +115 -105
  400. package/components/page/error-boundary/props.js +0 -5
  401. package/components/page/index.js +84 -102
  402. package/components/page/page-content/index.js +21 -30
  403. package/components/page/page-content/props.js +0 -5
  404. package/components/page/partial/index.js +50 -45
  405. package/components/page/partial/props.js +0 -5
  406. package/components/page/partial-container/index.js +81 -107
  407. package/components/page/partial-container/props.d.ts +1 -1
  408. package/components/page/partial-container/props.js +0 -5
  409. package/components/page/props.js +0 -5
  410. package/components/page/toast-container/index.js +20 -41
  411. package/components/page/toast-container/props.js +0 -5
  412. package/components/prefab/container/index.js +60 -53
  413. package/components/prefab/container/props.js +0 -5
  414. package/components/prefab/index.js +76 -61
  415. package/components/prefab/props.js +0 -5
  416. package/context/AppContext.d.ts +1 -1
  417. package/context/AppContext.js +17 -18
  418. package/context/AppSpinnerProvider.js +19 -34
  419. package/context/LayoutProvider.js +54 -57
  420. package/context/LocalizationProvider.js +34 -49
  421. package/context/PrefabContext.js +68 -119
  422. package/context/WidgetProvider.js +160 -166
  423. package/core/app-config.js +0 -1
  424. package/core/app.service.js +200 -327
  425. package/core/appVariablesStore.js +10 -15
  426. package/core/appstore.js +37 -53
  427. package/core/constants/currency-constant.js +81 -83
  428. package/core/constants/events.js +34 -44
  429. package/core/constants/index.js +21 -31
  430. package/core/dialog.service.js +52 -72
  431. package/core/event-notifier.js +94 -131
  432. package/core/formatter/array-formatters.js +18 -32
  433. package/core/formatter/date-formatters.js +140 -204
  434. package/core/formatter/index.js +64 -117
  435. package/core/formatter/number-formatters.js +115 -159
  436. package/core/formatter/security-formatters.js +233 -283
  437. package/core/formatter/string-formatters.js +23 -45
  438. package/core/formatter/types.js +12 -18
  439. package/core/formatters.js +6 -24
  440. package/core/proxy-service.js +242 -306
  441. package/core/script-registry.js +87 -134
  442. package/core/security.service.js +8 -11
  443. package/core/util/compare.js +13 -25
  444. package/core/util/dom.js +32 -63
  445. package/core/util/index.d.ts +5 -0
  446. package/core/util/index.js +95 -95
  447. package/core/util/safe-is-equal.js +42 -94
  448. package/core/util/security.js +114 -153
  449. package/core/util/utils.d.ts +8 -1
  450. package/core/util/utils.js +124 -132
  451. package/core/widget-observer.js +34 -61
  452. package/higherOrder/BaseApp.js +327 -500
  453. package/higherOrder/BaseAppProps.js +0 -5
  454. package/higherOrder/BaseDateTime.js +277 -231
  455. package/higherOrder/BasePage.js +479 -735
  456. package/higherOrder/BasePartial.js +87 -114
  457. package/higherOrder/BasePrefab.js +190 -206
  458. package/higherOrder/DataNav.js +287 -302
  459. package/higherOrder/helper.js +62 -48
  460. package/higherOrder/props.js +0 -5
  461. package/higherOrder/withBaseWrapper.js +123 -168
  462. package/higherOrder/withStandalone.js +28 -26
  463. package/hooks/useAccess.js +113 -289
  464. package/hooks/useAppConfig.js +15 -40
  465. package/hooks/useAuth.js +256 -495
  466. package/hooks/useDataSourceSubscription.d.ts +3 -3
  467. package/hooks/useDataSourceSubscription.js +99 -109
  468. package/hooks/useDebounce.js +28 -56
  469. package/hooks/useDeviceVisibility.js +14 -23
  470. package/hooks/useHttp.d.ts +1 -0
  471. package/hooks/useHttp.js +318 -493
  472. package/libs/index.js +4 -13
  473. package/libs/prefab/index.js +6 -20
  474. package/mui-config/theme-provider.js +9 -17
  475. package/mui-config/theme.js +6 -9
  476. package/package-lock.json +808 -3177
  477. package/package.json +3 -19
  478. package/providers/AppProviders.js +21 -24
  479. package/runtime-dynamic/App.js +65 -93
  480. package/runtime-dynamic/app-initializer.js +207 -400
  481. package/runtime-dynamic/components/ErrorBoundary.js +59 -76
  482. package/runtime-dynamic/components/PageWrapper.js +23 -35
  483. package/runtime-dynamic/components/PrefabPreview.js +40 -69
  484. package/runtime-dynamic/components/partial-content.d.ts +2 -3
  485. package/runtime-dynamic/components/partial-content.js +66 -48
  486. package/runtime-dynamic/components/prefab-content.js +37 -30
  487. package/runtime-dynamic/components/use-dynamic-component.js +62 -150
  488. package/runtime-dynamic/factories/build-base-page-like-component.js +44 -58
  489. package/runtime-dynamic/factories/dynamic-component.d.ts +9 -0
  490. package/runtime-dynamic/factories/dynamic-component.js +83 -0
  491. package/runtime-dynamic/factories/prefab-factory.js +60 -81
  492. package/runtime-dynamic/factories/startup-info.js +12 -25
  493. package/runtime-dynamic/factories/utils.d.ts +1 -9
  494. package/runtime-dynamic/factories/utils.js +47 -130
  495. package/runtime-dynamic/index.js +56 -191
  496. package/runtime-dynamic/main.js +42 -70
  497. package/runtime-dynamic/preview-mode.js +14 -29
  498. package/runtime-dynamic/preview-navigation.js +21 -30
  499. package/runtime-dynamic/preview-path.d.ts +5 -0
  500. package/runtime-dynamic/preview-path.js +13 -0
  501. package/runtime-dynamic/preview-resource-base.js +15 -31
  502. package/runtime-dynamic/registry/component-registry.js +269 -334
  503. package/runtime-dynamic/registry/custom-widget-registry.js +11 -15
  504. package/runtime-dynamic/registry/index.js +24 -63
  505. package/runtime-dynamic/registry/store.d.ts +1 -0
  506. package/runtime-dynamic/registry/store.js +18 -23
  507. package/runtime-dynamic/routes.js +53 -81
  508. package/runtime-dynamic/services/app-extension-provider.js +17 -44
  509. package/runtime-dynamic/services/autolayout-inject.d.ts +4 -0
  510. package/runtime-dynamic/services/autolayout-inject.js +27 -0
  511. package/runtime-dynamic/services/cache.js +27 -33
  512. package/runtime-dynamic/services/compile-render.d.ts +9 -0
  513. package/runtime-dynamic/services/compile-render.js +142 -0
  514. package/runtime-dynamic/services/component-ref-provider.js +70 -124
  515. package/runtime-dynamic/services/css-scoping.js +27 -28
  516. package/runtime-dynamic/services/fragment-url.js +37 -50
  517. package/runtime-dynamic/services/index.js +48 -152
  518. package/runtime-dynamic/services/markup-transpiler.d.ts +2 -2
  519. package/runtime-dynamic/services/markup-transpiler.js +39 -231
  520. package/runtime-dynamic/services/prefab-resources.js +42 -130
  521. package/runtime-dynamic/services/resource-manager.d.ts +2 -1
  522. package/runtime-dynamic/services/resource-manager.js +32 -63
  523. package/runtime-dynamic/services/script-executor.js +50 -61
  524. package/runtime-dynamic/services/variable-factory.js +141 -184
  525. package/runtime-dynamic/services/variable-registry.js +69 -115
  526. package/runtime-dynamic/services/variable-transpiler.js +73 -103
  527. package/runtime-dynamic/shims/next-image.js +79 -50
  528. package/runtime-dynamic/shims/next-link.js +58 -32
  529. package/runtime-dynamic/shims/next-navigation.js +17 -34
  530. package/runtime-dynamic/utils/index.d.ts +2 -0
  531. package/runtime-dynamic/utils/index.js +22 -24
  532. package/store/bindActions/i18nActions.js +16 -18
  533. package/store/index.js +29 -35
  534. package/store/middleware/navigationMiddleware.js +25 -45
  535. package/store/middleware/pendingTabNavigationIntentMiddleware.js +20 -25
  536. package/store/slices/appConfigSlice.js +65 -94
  537. package/store/slices/authSlice.js +317 -471
  538. package/store/slices/i18nSlice.js +169 -168
  539. package/store/slices/navigationSlice.js +22 -20
  540. package/store/util/resolve-path.d.ts +1 -0
  541. package/store/util/resolve-path.js +7 -0
  542. package/store/viewport.service.js +150 -194
  543. package/types/index.js +10 -15
  544. package/utils/attr.js +198 -41
  545. package/utils/custom-expression/index.js +55 -151
  546. package/utils/custom-expression/parser.js +106 -182
  547. package/utils/dataset-util.js +113 -154
  548. package/utils/eval-expression.js +10 -19
  549. package/utils/form-state.util.js +60 -118
  550. package/utils/form-utils.js +49 -190
  551. package/utils/format-util.js +113 -184
  552. package/utils/layoutsize-util.js +11 -17
  553. package/utils/lib-error-skipper.js +54 -52
  554. package/utils/page-params-util.js +50 -40
  555. package/utils/pending-tab-navigation-intent.js +7 -17
  556. package/utils/resource-url.js +8 -19
  557. package/utils/state-persistance.js +136 -253
  558. package/utils/style-utils.d.ts +2 -0
  559. package/utils/style-utils.js +25 -74
  560. package/utils/transformedDataset-utils.js +353 -381
  561. package/utils/widget-cleanup-util.js +42 -74
  562. package/utils/widgets.js +19 -31
  563. package/variables/base-variable.js +117 -166
  564. package/variables/constants.js +5 -8
  565. package/variables/crud-variable.js +150 -181
  566. package/variables/live-variable.d.ts +1 -1
  567. package/variables/live-variable.js +140 -174
  568. package/variables/metadata.service.js +74 -116
  569. package/variables/model-variable.js +68 -78
  570. package/variables/service-variable.js +171 -285
  571. package/wm-namespace.js +11 -14
  572. package/components/chart/src/css.d.js +0 -1
  573. package/tsconfig.declaration.tsbuildinfo +0 -1
  574. package/types/global.d.js +0 -3
@@ -1,478 +1,561 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof3 = require("@babel/runtime/helpers/typeof");
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports["default"] = exports.WmCheckboxset = void 0;
9
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
12
- var _react = _interopRequireWildcard(require("react"));
13
- var _clsx = _interopRequireDefault(require("clsx"));
14
- var _Box = _interopRequireDefault(require("@mui/material/Box"));
15
- var _List = _interopRequireDefault(require("@mui/material/List"));
16
- var _ListItem = _interopRequireDefault(require("@mui/material/ListItem"));
17
- var _ListItemText = _interopRequireDefault(require("@mui/material/ListItemText"));
18
- var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
19
- var _lodashEs = require("lodash-es");
20
- var _withBaseWrapper = require("@wavemaker-ai/react-runtime/higherOrder/withBaseWrapper");
21
- var _constants = require("@wavemaker-ai/react-runtime/components/constants");
22
- var _transformedDatasetUtils = require("@wavemaker-ai/react-runtime/utils/transformedDataset-utils");
23
- var _input = require("@base-ui-components/react/input");
24
- var _utils = require("./utils");
25
- var _withFormController = _interopRequireDefault(require("@wavemaker-ai/react-runtime/components/data/form/form-controller/withFormController"));
26
- var _listHelpers = require("@wavemaker-ai/react-runtime/components/data/list/utils/list-helpers");
27
- var _withStandalone = _interopRequireDefault(require("@wavemaker-ai/react-runtime/higherOrder/withStandalone"));
28
- 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" != _typeof3(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); }
29
- var __jsx = _react["default"].createElement;
30
- 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; }
31
- 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; }
32
- var DEFAULT_CLASS = "app-checkboxset list-group inline";
33
-
34
- // Helper function to normalize datavalue to always be an array
35
- var normalizeDatavalue = function normalizeDatavalue(datavalue) {
36
- if (datavalue === undefined || datavalue === null) {
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ import { jsx, jsxs } from "react/jsx-runtime";
21
+ import { memo, useEffect, useState, useCallback, useMemo } from "react";
22
+ import clsx from "clsx";
23
+ import Box from "@mui/material/Box";
24
+ import List from "@mui/material/List";
25
+ import ListItem from "@mui/material/ListItem";
26
+ import ListItemText from "@mui/material/ListItemText";
27
+ import Typography from "@mui/material/Typography";
28
+ import { find, isArray, isEqual, isString, toString, get } from "lodash-es";
29
+ import { withBaseWrapper } from "../../../../higherOrder/withBaseWrapper";
30
+ import { defaultItems } from "../../../constants";
31
+ import {
32
+ transformDataset,
33
+ transformDataWithKeys
34
+ } from "../../../../utils/transformedDataset-utils";
35
+ import { Input } from "@base-ui-components/react/input";
36
+ import { getCheckboxsetDisplayValues } from "./utils";
37
+ import withFormController from "../../../data/form/form-controller/withFormController";
38
+ import { getItemsPerRowClass } from "../../../data/list/utils/list-helpers";
39
+ import { ALL_FIELDS } from "../../../constants";
40
+ import withStandalone from "../../../../higherOrder/withStandalone";
41
+ import {
42
+ CustomTemplateCaption,
43
+ useCustomTemplate
44
+ } from "../../../common/customTemplate";
45
+ const DEFAULT_CLASS = "app-checkboxset list-group inline";
46
+ const normalizeDatavalue = (datavalue) => {
47
+ if (datavalue === void 0 || datavalue === null) {
37
48
  return [];
38
49
  }
39
- if ((0, _lodashEs.isArray)(datavalue)) {
50
+ if (isArray(datavalue)) {
40
51
  return datavalue;
41
52
  }
42
- if ((0, _lodashEs.isString)(datavalue)) {
43
- return datavalue.split(",").map(function (item) {
44
- return item.trim();
45
- });
53
+ if (isString(datavalue)) {
54
+ return datavalue.split(",").map((item) => item.trim());
46
55
  }
47
- // Convert single value to array
48
56
  return [datavalue];
49
57
  };
50
- var WmCheckboxset = /*#__PURE__*/(0, _react.memo)(function (props) {
51
- var _props$disabled = props.disabled,
52
- disabled = _props$disabled === void 0 ? false : _props$disabled,
53
- _props$readonly = props.readonly,
54
- readonly = _props$readonly === void 0 ? false : _props$readonly,
55
- _props$required = props.required,
56
- required = _props$required === void 0 ? false : _props$required,
57
- _props$label = props.label,
58
- label = _props$label === void 0 ? "" : _props$label,
59
- _props$datafield = props.datafield,
60
- datafield = _props$datafield === void 0 ? "" : _props$datafield,
61
- _props$displayfield = props.displayfield,
62
- displayfield = _props$displayfield === void 0 ? "" : _props$displayfield,
63
- getDisplayExpression = props.getDisplayExpression,
64
- _props$dataset = props.dataset,
65
- dataset = _props$dataset === void 0 ? "Option 1, Option 2, Option 3" : _props$dataset,
66
- _props$datavalue = props.datavalue,
67
- datavalue = _props$datavalue === void 0 ? [] : _props$datavalue,
68
- _props$usekeys = props.usekeys,
69
- usekeys = _props$usekeys === void 0 ? false : _props$usekeys,
70
- _props$groupby = props.groupby,
71
- groupby = _props$groupby === void 0 ? "" : _props$groupby,
72
- _props$match = props.match,
73
- match = _props$match === void 0 ? "" : _props$match,
74
- _props$orderby = props.orderby,
75
- orderby = _props$orderby === void 0 ? "" : _props$orderby,
76
- _props$layout = props.layout,
77
- layout = _props$layout === void 0 ? "stacked" : _props$layout,
78
- itemclass = props.itemclass,
79
- listclass = props.listclass,
80
- _props$showcount = props.showcount,
81
- showcount = _props$showcount === void 0 ? false : _props$showcount,
82
- _props$show = props.show,
83
- show = _props$show === void 0 ? true : _props$show,
84
- name = props.name,
85
- _props$collapsible = props.collapsible,
86
- collapsible = _props$collapsible === void 0 ? false : _props$collapsible,
87
- _props$collapsed = props.collapsed,
88
- collapsed = _props$collapsed === void 0 ? false : _props$collapsed,
89
- _props$tabIndex = props.tabIndex,
90
- tabIndex = _props$tabIndex === void 0 ? 0 : _props$tabIndex,
91
- styles = props.styles,
92
- onChange = props.onChange,
93
- onClick = props.onClick,
94
- onMouseEnter = props.onMouseEnter,
95
- onMouseLeave = props.onMouseLeave,
96
- _props$datasetItems = props.datasetItems,
97
- datasetItems = _props$datasetItems === void 0 ? [] : _props$datasetItems,
98
- _props$selectedItems = props.selectedItems,
99
- selectedItems = _props$selectedItems === void 0 ? [] : _props$selectedItems,
100
- _props$groupedData = props.groupedData,
101
- groupedData = _props$groupedData === void 0 ? [] : _props$groupedData,
102
- onchange = props.onchange,
103
- validation = props.validation,
104
- isDestroyed = props.isDestroyed,
105
- _props$compareby = props.compareby,
106
- compareby = _props$compareby === void 0 ? [] : _props$compareby,
107
- itemsperrow = props.itemsperrow,
108
- displayValue = props.displayValue,
109
- listener = props.listener,
110
- className = props.className,
111
- dataPath = props.dataPath;
112
- var _useState = (0, _react.useState)({}),
113
- expandedItems = _useState[0],
114
- setExpandedItems = _useState[1];
115
- var _useState2 = (0, _react.useState)(function () {
116
- return normalizeDatavalue(datavalue);
117
- }),
118
- localSelectedKeys = _useState2[0],
119
- setLocalSelectedKeys = _useState2[1];
120
- var _useState3 = (0, _react.useState)([]),
121
- localDatasetItems = _useState3[0],
122
- setLocalDatasetItems = _useState3[1];
123
- var _useState4 = (0, _react.useState)([]),
124
- groupedDataset = _useState4[0],
125
- setGroupedDataset = _useState4[1];
126
- var _useState5 = (0, _react.useState)(true),
127
- isLoading = _useState5[0],
128
- setIsLoading = _useState5[1];
129
- var _useState6 = (0, _react.useState)(null),
130
- error = _useState6[0],
131
- setError = _useState6[1];
132
-
133
- // Generate itemsPerRowClass
134
- var itemsPerRowClass = (0, _react.useMemo)(function () {
135
- return (0, _listHelpers.getItemsPerRowClass)(itemsperrow);
136
- }, [itemsperrow]);
137
- var transformedDataset = (0, _react.useMemo)(function () {
138
- if (!dataset) return [];
139
- if (usekeys) {
140
- return (0, _transformedDatasetUtils.transformDataWithKeys)(dataset);
141
- }
142
- var data = (0, _transformedDatasetUtils.transformDataset)(dataset, datafield, displayfield, undefined, getDisplayExpression, orderby, groupby, dataPath, "", match);
143
- return data;
144
- }, [dataset, datafield, displayfield, getDisplayExpression, orderby, groupby, match, usekeys, dataPath]);
145
- (0, _react.useEffect)(function () {
146
- setIsLoading(true);
147
- setError(null);
148
- try {
149
- if (datasetItems && datasetItems.length > 0) {
150
- setLocalDatasetItems(datasetItems);
151
- } else if (dataset) {
152
- setLocalDatasetItems(function (prevItems) {
153
- if (!(0, _lodashEs.isEqual)(prevItems, transformedDataset)) {
154
- return transformedDataset;
155
- }
156
- return prevItems;
157
- });
158
- } else {
159
- setLocalDatasetItems(_constants.defaultItems);
58
+ const WmCheckboxset = memo(
59
+ (props) => {
60
+ const {
61
+ disabled = false,
62
+ readonly = false,
63
+ required = false,
64
+ label = "",
65
+ datafield = "",
66
+ displayfield = "",
67
+ getDisplayExpression,
68
+ dataset = "Option 1, Option 2, Option 3",
69
+ datavalue = [],
70
+ usekeys = false,
71
+ groupby = "",
72
+ match = "",
73
+ orderby = "",
74
+ layout = "stacked",
75
+ itemclass,
76
+ listclass,
77
+ showcount = false,
78
+ show = true,
79
+ name,
80
+ collapsible = false,
81
+ collapsed = false,
82
+ tabIndex = 0,
83
+ styles,
84
+ onChange,
85
+ onClick,
86
+ onMouseEnter,
87
+ onMouseLeave,
88
+ datasetItems = [],
89
+ selectedItems = [],
90
+ groupedData = [],
91
+ onchange,
92
+ validation,
93
+ isDestroyed,
94
+ compareby = [],
95
+ itemsperrow,
96
+ displayValue,
97
+ listener,
98
+ className,
99
+ dataPath,
100
+ content
101
+ } = props;
102
+ const { templateName } = useCustomTemplate({ content, name, listener });
103
+ const [expandedItems, setExpandedItems] = useState({});
104
+ const [localSelectedKeys, setLocalSelectedKeys] = useState(
105
+ () => normalizeDatavalue(datavalue)
106
+ );
107
+ const [localDatasetItems, setLocalDatasetItems] = useState([]);
108
+ const [groupedDataset, setGroupedDataset] = useState([]);
109
+ const [isLoading, setIsLoading] = useState(true);
110
+ const [error, setError] = useState(null);
111
+ const itemsPerRowClass = useMemo(() => getItemsPerRowClass(itemsperrow), [itemsperrow]);
112
+ const transformedDataset = useMemo(() => {
113
+ if (!dataset) return [];
114
+ if (usekeys) {
115
+ return transformDataWithKeys(dataset);
160
116
  }
161
- } catch (e) {
162
- console.error("WmCheckboxset: Error processing dataset", e);
163
- setError("Error processing dataset");
164
- setLocalDatasetItems([]);
165
- } finally {
166
- setIsLoading(false);
167
- }
168
- }, [dataset, transformedDataset]);
169
-
170
- // Process grouping
171
- (0, _react.useEffect)(function () {
172
- if (groupby && localDatasetItems.length > 0) {
117
+ const data = transformDataset(
118
+ dataset,
119
+ datafield,
120
+ displayfield,
121
+ void 0,
122
+ getDisplayExpression,
123
+ orderby,
124
+ groupby,
125
+ dataPath,
126
+ "",
127
+ match
128
+ );
129
+ return data;
130
+ }, [
131
+ dataset,
132
+ datafield,
133
+ displayfield,
134
+ getDisplayExpression,
135
+ orderby,
136
+ groupby,
137
+ match,
138
+ usekeys,
139
+ dataPath
140
+ ]);
141
+ useEffect(() => {
142
+ setIsLoading(true);
143
+ setError(null);
173
144
  try {
174
- var _groupedData = transformedDataset;
175
- setGroupedDataset(function (prevGrouped) {
176
- if (!(0, _lodashEs.isEqual)(prevGrouped, _groupedData)) {
177
- return _groupedData;
178
- }
179
- return prevGrouped;
180
- });
181
- if (collapsible) {
182
- var initialExpandedState = {};
183
- _groupedData.forEach(function (group) {
184
- initialExpandedState[group.key] = !collapsed;
145
+ if (datasetItems && datasetItems.length > 0) {
146
+ setLocalDatasetItems(datasetItems);
147
+ } else if (dataset) {
148
+ setLocalDatasetItems((prevItems) => {
149
+ if (!isEqual(prevItems, transformedDataset)) {
150
+ return transformedDataset;
151
+ }
152
+ return prevItems;
185
153
  });
186
- setExpandedItems(initialExpandedState);
154
+ } else {
155
+ setLocalDatasetItems(defaultItems);
187
156
  }
188
157
  } catch (e) {
189
- console.error("WmCheckboxset: Error grouping data", e);
190
- setGroupedDataset([]);
158
+ console.error("WmCheckboxset: Error processing dataset", e);
159
+ setError("Error processing dataset");
160
+ setLocalDatasetItems([]);
161
+ } finally {
162
+ setIsLoading(false);
191
163
  }
192
- } else {
193
- setGroupedDataset([]);
194
- }
195
- }, [groupby, localDatasetItems, collapsible, transformedDataset, collapsed]);
196
-
197
- // Initialize selected keys from datavalue or from selectedItems
198
- (0, _react.useEffect)(function () {
199
- var normalizedDatavalue = normalizeDatavalue(datavalue);
200
- if (!(0, _lodashEs.isEqual)(normalizedDatavalue, localSelectedKeys) && datavalue !== undefined) {
201
- if (normalizedDatavalue.length > 0) {
202
- setLocalSelectedKeys(normalizedDatavalue);
203
- } else if (selectedItems && selectedItems.length > 0) {
204
- var matchedKeys = selectedItems.map(function (selectedVal) {
205
- var selectedItem = (0, _lodashEs.find)(localDatasetItems, function (item) {
206
- if ((0, _typeof2["default"])(selectedVal) === "object" && (0, _typeof2["default"])(item.value) === "object") {
207
- if (compareby && compareby.length) {
208
- return compareby.every(function (field) {
209
- return (0, _lodashEs.get)(selectedVal, field) === (0, _lodashEs.get)(item.value, field);
210
- });
211
- }
212
- return (0, _lodashEs.isEqual)(selectedVal, item.value);
164
+ }, [dataset, transformedDataset]);
165
+ useEffect(() => {
166
+ if (groupby && localDatasetItems.length > 0) {
167
+ try {
168
+ const groupedData2 = transformedDataset;
169
+ setGroupedDataset((prevGrouped) => {
170
+ if (!isEqual(prevGrouped, groupedData2)) {
171
+ return groupedData2;
213
172
  }
214
- return (0, _lodashEs.toString)(selectedVal) === (0, _lodashEs.toString)(item.value);
173
+ return prevGrouped;
215
174
  });
216
- return selectedItem ? selectedItem.key : null;
217
- }).filter(function (key) {
218
- return key !== null;
219
- });
220
- if (matchedKeys.length > 0 && !(0, _lodashEs.isEqual)(matchedKeys, localSelectedKeys)) {
221
- setLocalSelectedKeys(matchedKeys);
175
+ if (collapsible) {
176
+ const initialExpandedState = {};
177
+ groupedData2.forEach((group) => {
178
+ initialExpandedState[group.key] = !collapsed;
179
+ });
180
+ setExpandedItems(initialExpandedState);
181
+ }
182
+ } catch (e) {
183
+ console.error("WmCheckboxset: Error grouping data", e);
184
+ setGroupedDataset([]);
222
185
  }
223
- } else if (normalizedDatavalue.length == 0 && (!datavalue || datavalue.length == 0)) {
224
- setLocalSelectedKeys([]);
186
+ } else {
187
+ setGroupedDataset([]);
225
188
  }
226
- }
227
- }, [datavalue]); // Removed localSelectedKeys from deps
228
-
229
- (0, _react.useEffect)(function () {
230
- if (onchange && !(0, _lodashEs.isEqual)(localSelectedKeys, datavalue)) {
231
- var timeoutId = setTimeout(function () {
232
- onchange(localSelectedKeys);
233
- }, 0);
234
- return function () {
235
- return clearTimeout(timeoutId);
236
- };
237
- }
238
- }, [localSelectedKeys, onchange, datavalue]);
239
- var handleGroupClick = (0, _react.useCallback)(function (key, event) {
240
- setExpandedItems(function (prevState) {
241
- return _objectSpread(_objectSpread({}, prevState), {}, (0, _defineProperty2["default"])({}, key, !prevState[key]));
242
- });
243
- }, []);
244
- var handleCheckboxChange = (0, _react.useCallback)(function (event, key, dataObject) {
245
- if (disabled || readonly) return;
246
- var currentSelectedKeys = Array.isArray(localSelectedKeys) ? localSelectedKeys : [];
247
- var isCurrentlySelected = currentSelectedKeys.some(function (k) {
248
- if (datafield == _constants.ALL_FIELDS) {
249
- if (usekeys) {
250
- return (0, _lodashEs.toString)(k) === (0, _lodashEs.toString)(key);
189
+ }, [groupby, localDatasetItems, collapsible, transformedDataset, collapsed]);
190
+ useEffect(() => {
191
+ const normalizedDatavalue = normalizeDatavalue(datavalue);
192
+ if (!isEqual(normalizedDatavalue, localSelectedKeys) && datavalue !== void 0) {
193
+ if (normalizedDatavalue.length > 0) {
194
+ setLocalSelectedKeys(normalizedDatavalue);
195
+ } else if (selectedItems && selectedItems.length > 0) {
196
+ const matchedKeys = selectedItems.map((selectedVal) => {
197
+ const selectedItem = find(localDatasetItems, (item) => {
198
+ if (typeof selectedVal === "object" && typeof item.value === "object") {
199
+ if (compareby && compareby.length) {
200
+ return compareby.every(
201
+ (field) => get(selectedVal, field) === get(item.value, field)
202
+ );
203
+ }
204
+ return isEqual(selectedVal, item.value);
205
+ }
206
+ return toString(selectedVal) === toString(item.value);
207
+ });
208
+ return selectedItem ? selectedItem.key : null;
209
+ }).filter((key) => key !== null);
210
+ if (matchedKeys.length > 0 && !isEqual(matchedKeys, localSelectedKeys)) {
211
+ setLocalSelectedKeys(matchedKeys);
212
+ }
213
+ } else if (normalizedDatavalue.length == 0 && (!datavalue || datavalue.length == 0)) {
214
+ setLocalSelectedKeys([]);
251
215
  }
252
- return (0, _lodashEs.isEqual)(k, dataObject);
253
- }
254
- if ((0, _typeof2["default"])(k) === "object" && datafield) {
255
- return k[datafield] === key;
256
216
  }
257
- return (0, _lodashEs.toString)(k) === (0, _lodashEs.toString)(key);
258
- });
259
- var isChecked = !isCurrentlySelected;
260
- var newKeys;
261
- if (isChecked) {
262
- var selectedItem = (0, _lodashEs.find)(localDatasetItems, function (item) {
263
- if (datafield == _constants.ALL_FIELDS) {
264
- return (0, _lodashEs.isEqual)(item.value, dataObject);
265
- }
266
- return (0, _lodashEs.toString)(item.key) === (0, _lodashEs.toString)(key);
267
- });
268
- if (usekeys) {
269
- newKeys = [].concat((0, _toConsumableArray2["default"])(currentSelectedKeys), [key]);
270
- } else {
271
- var value;
272
- if ((0, _typeof2["default"])(selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.value) == "object") {
273
- var _selectedItem$value;
274
- // @ts-expect-error this is internal property
275
- value = selectedItem === null || selectedItem === void 0 || (_selectedItem$value = selectedItem.value) === null || _selectedItem$value === void 0 ? void 0 : _selectedItem$value.value;
276
- } else {
277
- value = selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.value;
278
- }
279
- newKeys = [].concat((0, _toConsumableArray2["default"])(currentSelectedKeys), [(selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.value) || key]);
217
+ }, [datavalue]);
218
+ useEffect(() => {
219
+ if (onchange && !isEqual(localSelectedKeys, datavalue)) {
220
+ const timeoutId = setTimeout(() => {
221
+ onchange(localSelectedKeys);
222
+ }, 0);
223
+ return () => clearTimeout(timeoutId);
280
224
  }
281
- } else {
282
- newKeys = currentSelectedKeys.filter(function (k) {
283
- if (datafield == _constants.ALL_FIELDS) {
225
+ }, [localSelectedKeys, onchange, datavalue]);
226
+ const handleGroupClick = useCallback((key, event) => {
227
+ setExpandedItems((prevState) => __spreadProps(__spreadValues({}, prevState), { [key]: !prevState[key] }));
228
+ }, []);
229
+ const handleCheckboxChange = useCallback(
230
+ (event, key, dataObject) => {
231
+ var _a;
232
+ if (disabled || readonly) return;
233
+ const currentSelectedKeys = Array.isArray(localSelectedKeys) ? localSelectedKeys : [];
234
+ const isCurrentlySelected = currentSelectedKeys.some((k) => {
235
+ if (datafield == ALL_FIELDS) {
236
+ if (usekeys) {
237
+ return toString(k) === toString(key);
238
+ }
239
+ return isEqual(k, dataObject);
240
+ }
241
+ if (typeof k === "object" && datafield) {
242
+ return k[datafield] === key;
243
+ }
244
+ return toString(k) === toString(key);
245
+ });
246
+ const isChecked = !isCurrentlySelected;
247
+ let newKeys;
248
+ if (isChecked) {
249
+ const selectedItem = find(localDatasetItems, (item) => {
250
+ if (datafield == ALL_FIELDS) {
251
+ return isEqual(item.value, dataObject);
252
+ }
253
+ return toString(item.key) === toString(key);
254
+ });
284
255
  if (usekeys) {
285
- return (0, _lodashEs.toString)(k) !== (0, _lodashEs.toString)(key);
256
+ newKeys = [...currentSelectedKeys, key];
257
+ } else {
258
+ let value;
259
+ if (typeof (selectedItem == null ? void 0 : selectedItem.value) == "object") {
260
+ value = (_a = selectedItem == null ? void 0 : selectedItem.value) == null ? void 0 : _a.value;
261
+ } else {
262
+ value = selectedItem == null ? void 0 : selectedItem.value;
263
+ }
264
+ newKeys = [...currentSelectedKeys, (selectedItem == null ? void 0 : selectedItem.value) || key];
286
265
  }
287
- return !(0, _lodashEs.isEqual)(k, dataObject);
266
+ } else {
267
+ newKeys = currentSelectedKeys.filter((k) => {
268
+ if (datafield == ALL_FIELDS) {
269
+ if (usekeys) {
270
+ return toString(k) !== toString(key);
271
+ }
272
+ return !isEqual(k, dataObject);
273
+ }
274
+ if (typeof k === "object" && datafield) {
275
+ return k[datafield] !== key;
276
+ }
277
+ return toString(k) !== toString(key);
278
+ });
288
279
  }
289
- if ((0, _typeof2["default"])(k) === "object" && datafield) {
290
- return k[datafield] !== key;
280
+ setLocalSelectedKeys(newKeys);
281
+ if (onchange) {
282
+ onchange(newKeys);
291
283
  }
292
- return (0, _lodashEs.toString)(k) !== (0, _lodashEs.toString)(key);
293
- });
294
- }
295
- setLocalSelectedKeys(newKeys);
296
- if (onchange) {
297
- onchange(newKeys);
298
- }
299
- if (onChange && name) {
300
- onChange(event, listener === null || listener === void 0 ? void 0 : listener.Widgets[name], newKeys, currentSelectedKeys);
284
+ if (onChange && name) {
285
+ onChange(event, listener == null ? void 0 : listener.Widgets[name], newKeys, currentSelectedKeys);
286
+ }
287
+ if (onClick && name) {
288
+ onClick(event, listener == null ? void 0 : listener.Widgets[name]);
289
+ }
290
+ if (listener == null ? void 0 : listener.onChange) {
291
+ const displayValues = getCheckboxsetDisplayValues(
292
+ localDatasetItems,
293
+ newKeys,
294
+ datafield,
295
+ usekeys
296
+ );
297
+ listener.onChange(props.fieldName || name, {
298
+ datavalue: newKeys,
299
+ displayValue: displayValues
300
+ });
301
+ }
302
+ },
303
+ [
304
+ localDatasetItems,
305
+ localSelectedKeys,
306
+ disabled,
307
+ readonly,
308
+ usekeys,
309
+ datafield,
310
+ onchange,
311
+ props,
312
+ onChange,
313
+ name
314
+ ]
315
+ );
316
+ const isItemChecked = useCallback(
317
+ (item) => {
318
+ const currentSelectedKeys = Array.isArray(localSelectedKeys) ? localSelectedKeys : [];
319
+ return currentSelectedKeys.some((k) => {
320
+ if (datafield == ALL_FIELDS) {
321
+ return usekeys ? toString(k) === toString(item.key) : isEqual(k, item.value);
322
+ }
323
+ return toString(k) === toString(item.key);
324
+ });
325
+ },
326
+ [localSelectedKeys, datafield, usekeys]
327
+ );
328
+ const renderCheckboxItem = useCallback(
329
+ (item, index, isGrouped = false) => {
330
+ const isChecked = isItemChecked(item);
331
+ return /* @__PURE__ */ jsx(
332
+ ListItem,
333
+ {
334
+ onClick: (e) => {
335
+ const tag = e.target.tagName;
336
+ if (tag !== "INPUT" && tag !== "LABEL" && tag !== "SPAN" && !templateName) {
337
+ handleCheckboxChange(e, toString(item.key), item == null ? void 0 : item.dataObject);
338
+ }
339
+ },
340
+ component: "li",
341
+ className: clsx(
342
+ "wm-checkboxset-item-reset",
343
+ "checkbox app-checkbox",
344
+ isGrouped && "group-list-item",
345
+ itemclass,
346
+ itemsPerRowClass,
347
+ {
348
+ active: isChecked,
349
+ disabled: disabled || readonly
350
+ }
351
+ ),
352
+ children: /* @__PURE__ */ jsxs(
353
+ "label",
354
+ {
355
+ className: clsx("app-checkboxset-label", { disabled }),
356
+ title: templateName ? void 0 : item.label,
357
+ children: [
358
+ /* @__PURE__ */ jsx(
359
+ Input,
360
+ {
361
+ name: `checkboxset_${name}`,
362
+ type: "checkbox",
363
+ className: clsx((disabled || readonly) && "wm-checkboxset-input-readonly"),
364
+ disabled: disabled || readonly,
365
+ "data-attr-index": item.key,
366
+ value: item.key,
367
+ tabIndex,
368
+ checked: isChecked,
369
+ role: "checkbox",
370
+ "aria-checked": isChecked,
371
+ onChange: (e) => handleCheckboxChange(e, toString(item.key), item == null ? void 0 : item.dataObject)
372
+ }
373
+ ),
374
+ templateName ? /* @__PURE__ */ jsx(
375
+ Box,
376
+ {
377
+ component: "span",
378
+ className: "caption customTemplate",
379
+ id: `checkbox-list-label-${item.key + "_" + index}`,
380
+ children: /* @__PURE__ */ jsx(
381
+ CustomTemplateCaption,
382
+ {
383
+ templateName,
384
+ item,
385
+ index,
386
+ widgetName: name,
387
+ listener
388
+ }
389
+ )
390
+ }
391
+ ) : /* @__PURE__ */ jsx(
392
+ Typography,
393
+ {
394
+ component: "span",
395
+ className: "caption",
396
+ id: `checkbox-list-label-${item.key + "_" + index}`,
397
+ children: item.label
398
+ }
399
+ )
400
+ ]
401
+ }
402
+ )
403
+ },
404
+ toString(item.key + "_" + index)
405
+ );
406
+ },
407
+ [
408
+ isItemChecked,
409
+ handleCheckboxChange,
410
+ disabled,
411
+ readonly,
412
+ tabIndex,
413
+ name,
414
+ itemclass,
415
+ itemsPerRowClass,
416
+ templateName
417
+ ]
418
+ );
419
+ const renderGroupHeader = useCallback(
420
+ (group) => {
421
+ var _a;
422
+ return /* @__PURE__ */ jsx(
423
+ ListItem,
424
+ {
425
+ className: clsx("list-group-header", collapsible ? "collapsible-content" : ""),
426
+ onClick: (e) => handleGroupClick(group.key, e),
427
+ component: "li",
428
+ children: /* @__PURE__ */ jsxs(Box, { component: "h4", className: "group-title", children: [
429
+ group.key || "Ungrouped",
430
+ /* @__PURE__ */ jsxs(Box, { component: "div", className: "header-action", children: [
431
+ collapsible && /* @__PURE__ */ jsx(
432
+ Box,
433
+ {
434
+ component: "i",
435
+ className: clsx(
436
+ "app-icon wi action",
437
+ expandedItems[group.key] ? "wi-chevron-up" : "wi-chevron-down"
438
+ ),
439
+ title: "Collapse/Expand",
440
+ onClick: (e) => {
441
+ e.stopPropagation();
442
+ handleGroupClick(group.key);
443
+ }
444
+ }
445
+ ),
446
+ showcount && /* @__PURE__ */ jsx(Typography, { variant: "caption", className: "label label-default", children: ((_a = group.data) == null ? void 0 : _a.length) || 0 })
447
+ ] })
448
+ ] })
449
+ },
450
+ `group_${group.key}`
451
+ );
452
+ },
453
+ [expandedItems, handleGroupClick, collapsible, showcount]
454
+ );
455
+ if (error) {
456
+ return /* @__PURE__ */ jsx("div", { className: "error-message", children: error });
301
457
  }
302
- if (onClick && name) {
303
- onClick(event, listener === null || listener === void 0 ? void 0 : listener.Widgets[name]);
458
+ if (isLoading) {
459
+ return /* @__PURE__ */ jsx("div", { className: "loading-state", children: "Loading..." });
304
460
  }
305
- if (listener !== null && listener !== void 0 && listener.onChange) {
306
- var displayValues = (0, _utils.getCheckboxsetDisplayValues)(localDatasetItems, newKeys, datafield, usekeys);
307
- listener.onChange(props.fieldName || name, {
308
- datavalue: newKeys,
309
- displayValue: displayValues
310
- });
461
+ if (!localDatasetItems || localDatasetItems.length === 0) {
462
+ return /* @__PURE__ */ jsx(List, { className: clsx(DEFAULT_CLASS, itemclass, listclass), sx: styles, children: /* @__PURE__ */ jsx(ListItem, { children: /* @__PURE__ */ jsx(ListItemText, { primary: "No items to display" }) }) });
311
463
  }
312
- }, [localDatasetItems, localSelectedKeys, disabled, readonly, usekeys, datafield, onchange, props, onChange, name]);
313
- var isItemChecked = (0, _react.useCallback)(function (item) {
314
- var currentSelectedKeys = Array.isArray(localSelectedKeys) ? localSelectedKeys : [];
315
- return currentSelectedKeys.some(function (k) {
316
- if (datafield == _constants.ALL_FIELDS) {
317
- return usekeys ? (0, _lodashEs.toString)(k) === (0, _lodashEs.toString)(item.key) : (0, _lodashEs.isEqual)(k, item.value);
464
+ const handleMouseEnter = (event) => {
465
+ if (onMouseEnter) {
466
+ onMouseEnter(event, listener == null ? void 0 : listener.Widgets[name]);
318
467
  }
319
- return (0, _lodashEs.toString)(k) === (0, _lodashEs.toString)(item.key);
320
- });
321
- }, [localSelectedKeys, datafield, usekeys]);
322
- var renderCheckboxItem = (0, _react.useCallback)(function (item, index) {
323
- var isChecked = isItemChecked(item);
324
- return __jsx(_ListItem["default"], {
325
- key: (0, _lodashEs.toString)(item.key + "_" + index),
326
- onClick: function onClick(e) {
327
- var tag = e.target.tagName;
328
- if (tag !== "INPUT" && tag !== "LABEL" && tag !== "SPAN") {
329
- handleCheckboxChange(e, (0, _lodashEs.toString)(item.key), item === null || item === void 0 ? void 0 : item.dataObject);
330
- }
331
- },
332
- component: "li",
333
- className: (0, _clsx["default"])("wm-checkboxset-item-reset", "checkbox app-checkbox", itemclass, itemsPerRowClass, {
334
- active: isChecked,
335
- disabled: disabled || readonly
336
- })
337
- }, __jsx("label", {
338
- className: (0, _clsx["default"])("app-checkboxset-label", {
339
- disabled: disabled
340
- }),
341
- title: item.label
342
- }, __jsx(_input.Input, {
343
- name: "checkboxset_".concat(name),
344
- type: "checkbox",
345
- className: (0, _clsx["default"])((disabled || readonly) && "wm-checkboxset-input-readonly"),
346
- disabled: disabled || readonly,
347
- "data-attr-index": item.key,
348
- value: item.key,
349
- tabIndex: tabIndex,
350
- checked: isChecked,
351
- role: "checkbox",
352
- "aria-checked": isChecked,
353
- onChange: function onChange(e) {
354
- return handleCheckboxChange(e, (0, _lodashEs.toString)(item.key), item === null || item === void 0 ? void 0 : item.dataObject);
468
+ };
469
+ const handleMouseLeave = (event) => {
470
+ if (onMouseLeave) {
471
+ onMouseLeave(event, listener == null ? void 0 : listener.Widgets[name]);
355
472
  }
356
- }), __jsx(_Typography["default"], {
357
- component: "span",
358
- className: "caption",
359
- id: "checkbox-list-label-".concat(item.key + "_" + index)
360
- }, item.label)));
361
- }, [isItemChecked, handleCheckboxChange, disabled, readonly, tabIndex, name, itemclass, itemsPerRowClass]);
362
- var renderGroupHeader = (0, _react.useCallback)(function (group) {
363
- var _group$data;
364
- return __jsx(_ListItem["default"], {
365
- key: "group_".concat(group.key),
366
- className: (0, _clsx["default"])("list-group-header", collapsible ? "collapsible-content" : ""),
367
- onClick: function onClick(e) {
368
- return handleGroupClick(group.key, e);
369
- },
370
- component: "li"
371
- }, __jsx(_Box["default"], {
372
- component: "h4",
373
- className: "group-title"
374
- }, group.key || "Ungrouped", __jsx(_Box["default"], {
375
- component: "div",
376
- className: "header-action"
377
- }, collapsible && __jsx(_Box["default"], {
378
- component: "i",
379
- className: (0, _clsx["default"])("app-icon wi action", expandedItems[group.key] ? "wi-chevron-up" : "wi-chevron-down"),
380
- title: "Collapse/Expand",
381
- onClick: function onClick(e) {
382
- e.stopPropagation();
383
- handleGroupClick(group.key);
473
+ };
474
+ return /* @__PURE__ */ jsxs(
475
+ List,
476
+ __spreadProps(__spreadValues({
477
+ hidden: props.hidden,
478
+ style: styles,
479
+ className: clsx(DEFAULT_CLASS, className, itemclass, listclass),
480
+ onMouseEnter: (event) => handleMouseEnter(event),
481
+ onMouseLeave: (event) => handleMouseLeave(event),
482
+ "aria-readonly": readonly,
483
+ name,
484
+ role: "group"
485
+ }, { datafield, displayfield }), {
486
+ children: [
487
+ label && /* @__PURE__ */ jsxs(Typography, { variant: "subtitle1", component: "div", className: "wm-checkboxset-label-row", children: [
488
+ label,
489
+ " ",
490
+ required && /* @__PURE__ */ jsx("span", { className: "wm-checkboxset-required-mark", children: "*" })
491
+ ] }),
492
+ groupby && groupedDataset.length > 0 ? groupedDataset.map((group) => {
493
+ var _a;
494
+ return /* @__PURE__ */ jsx(
495
+ List,
496
+ {
497
+ component: "li",
498
+ className: "app-list-item-group",
499
+ role: "presentation",
500
+ children: /* @__PURE__ */ jsxs(
501
+ List,
502
+ {
503
+ component: "ul",
504
+ className: clsx("item-group", "wm-checkboxset-group-list", {
505
+ "collapse-open": expandedItems[group.key]
506
+ }),
507
+ children: [
508
+ renderGroupHeader(group),
509
+ (!collapsible || expandedItems[group.key]) && ((_a = group.data) == null ? void 0 : _a.map((item, index) => renderCheckboxItem(item, index, true)))
510
+ ]
511
+ }
512
+ )
513
+ },
514
+ `group_${group.key}`
515
+ );
516
+ }) : localDatasetItems.map((item, index) => renderCheckboxItem(item, index))
517
+ ]
518
+ })
519
+ );
520
+ },
521
+ (prev, current) => {
522
+ const keys = [
523
+ "datavalue",
524
+ "dataset",
525
+ "show",
526
+ "disabled",
527
+ "readonly",
528
+ "orderby",
529
+ "groupby",
530
+ "collapsible",
531
+ "datasetItems",
532
+ "collapsed",
533
+ "onClick",
534
+ "onChange",
535
+ "onMouseEnter",
536
+ "onMouseLeave",
537
+ "getDisplayExpression",
538
+ "datafield",
539
+ "displayfield",
540
+ "dataset",
541
+ "datavalue",
542
+ "usekeys",
543
+ "groupby",
544
+ "hidden"
545
+ ];
546
+ return keys.every((key) => {
547
+ if (key === "datasetItems") {
548
+ return isEqual(prev[key], current[key]);
384
549
  }
385
- }), showcount && __jsx(_Typography["default"], {
386
- variant: "caption",
387
- className: "label label-default"
388
- }, ((_group$data = group.data) === null || _group$data === void 0 ? void 0 : _group$data.length) || 0))));
389
- }, [expandedItems, handleGroupClick, collapsible, showcount]);
390
- if (error) {
391
- return __jsx("div", {
392
- className: "error-message"
393
- }, error);
394
- }
395
- if (isLoading) {
396
- return __jsx("div", {
397
- className: "loading-state"
398
- }, "Loading...");
399
- }
400
- if (!localDatasetItems || localDatasetItems.length === 0) {
401
- return __jsx(_List["default"], {
402
- className: (0, _clsx["default"])(DEFAULT_CLASS, itemclass, listclass),
403
- sx: styles
404
- }, __jsx(_ListItem["default"], null, __jsx(_ListItemText["default"], {
405
- primary: "No items to display"
406
- })));
550
+ return prev[key] === current[key];
551
+ });
407
552
  }
408
- var handleMouseEnter = function handleMouseEnter(event) {
409
- if (onMouseEnter) {
410
- onMouseEnter(event, listener === null || listener === void 0 ? void 0 : listener.Widgets[name]);
411
- }
412
- };
413
- var handleMouseLeave = function handleMouseLeave(event) {
414
- if (onMouseLeave) {
415
- onMouseLeave(event, listener === null || listener === void 0 ? void 0 : listener.Widgets[name]);
416
- }
417
- };
418
- return __jsx(_List["default"], {
419
- hidden: props.hidden,
420
- style: styles,
421
- className: (0, _clsx["default"])(DEFAULT_CLASS, className, itemclass, listclass),
422
- onMouseEnter: function onMouseEnter(event) {
423
- return handleMouseEnter(event);
424
- },
425
- onMouseLeave: function onMouseLeave(event) {
426
- return handleMouseLeave(event);
427
- },
428
- "aria-readonly": readonly,
429
- name: name,
430
- role: "group",
431
- datafield: datafield,
432
- displayfield: displayfield
433
- }, label && __jsx(_Typography["default"], {
434
- variant: "subtitle1",
435
- component: "div",
436
- className: "wm-checkboxset-label-row"
437
- }, label, " ", required && __jsx("span", {
438
- className: "wm-checkboxset-required-mark"
439
- }, "*")), groupby && groupedDataset.length > 0 ? groupedDataset.map(function (group) {
440
- var _group$data2;
441
- return __jsx(_List["default"], {
442
- component: "li",
443
- className: "app-list-item-group",
444
- role: "presentation",
445
- key: "group_".concat(group.key)
446
- }, __jsx(_List["default"], {
447
- component: "ul",
448
- className: (0, _clsx["default"])("item-group", "wm-checkboxset-group-list", {
449
- "collapse-open": expandedItems[group.key]
450
- })
451
- }, renderGroupHeader(group), (!collapsible || expandedItems[group.key]) && ((_group$data2 = group.data) === null || _group$data2 === void 0 ? void 0 : _group$data2.map(function (item, index) {
452
- return renderCheckboxItem(item, index);
453
- }))));
454
- }) : localDatasetItems.map(function (item, index) {
455
- return renderCheckboxItem(item, index);
456
- }));
457
- }, function (prev, current) {
458
- var keys = ["datavalue", "dataset", "show", "disabled", "readonly", "orderby", "groupby", "collapsible", "datasetItems", "collapsed", "onClick", "onChange", "onMouseEnter", "onMouseLeave", "getDisplayExpression", "datafield", "displayfield", "dataset", "datavalue", "usekeys", "groupby", "hidden"];
459
- return keys.every(function (key) {
460
- if (key === "datasetItems") {
461
- return (0, _lodashEs.isEqual)(prev[key], current[key]);
462
- }
463
- return prev[key] === current[key];
464
- });
465
- });
553
+ );
466
554
  WmCheckboxset.displayName = "WmCheckboxset";
467
- var WithFormController = (0, _withFormController["default"])(WmCheckboxset);
468
- var WmCheckboxsetStandalone = exports.WmCheckboxset = (0, _withStandalone["default"])(WithFormController);
469
- /**
470
- * The WmCheckboxset component provides a group of checkboxes with dataset binding and grouping support.
471
- *
472
- * - [Playground](https://react-components.wavemaker.ai/?path=/story/input-checkboxset--showcase)
473
- *
474
- * - [Docs](https://react-components.wavemaker.ai/?path=/story/input-checkboxset--docs)
475
- *
476
- * @param props - {@link WmCheckboxsetProps}
477
- */
478
- var _default = exports["default"] = (0, _withBaseWrapper.withBaseWrapper)(WithFormController);
555
+ const WithFormController = withFormController(WmCheckboxset);
556
+ const WmCheckboxsetStandalone = withStandalone(WithFormController);
557
+ var checkboxset_default = withBaseWrapper(WithFormController);
558
+ export {
559
+ WmCheckboxsetStandalone as WmCheckboxset,
560
+ checkboxset_default as default
561
+ };