@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,633 @@
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.transformFormData = exports.transformDataset = exports.transformDataWithKeys = exports.toggleAllHeaders = exports.setItemByCompare = exports.handleHeaderClick = exports.groupData = exports.getOrderedDataset = exports.extractDataAsArray = exports.datasetItems = exports.convertDataToObject = exports.configureDnD = exports.DataSetItem = void 0;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
11
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
+ var _widgets = require("@wavemaker/react-runtime/utils/widgets");
15
+ var _lodashEs = require("lodash-es");
16
+ var momentLib = _interopRequireWildcard(require("moment"));
17
+ 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); }
18
+ 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; }
19
+ 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; }
20
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
21
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
22
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
23
+ var ALLFIELDS = "All Fields";
24
+ var moment = momentLib["default"] || window["moment"];
25
+ var isDefined = function isDefined(val) {
26
+ return val !== undefined && val !== null;
27
+ };
28
+ var getFormattedDate = function getFormattedDate(date, format) {
29
+ return moment(date).format(format);
30
+ };
31
+ var isEqualWithFields = function isEqualWithFields(objA, objB, fieldsStr) {
32
+ if (!fieldsStr || !(0, _lodashEs.isString)(fieldsStr)) {
33
+ return (0, _lodashEs.isEqual)(objA, objB); // Fallback to deep comparison if no fields specified
34
+ }
35
+ var fields = fieldsStr.split(",").map(function (f) {
36
+ return f.trim();
37
+ });
38
+ if (!objA || !objB) {
39
+ return objA === objB; // Handle null/undefined cases
40
+ }
41
+ var _iterator = _createForOfIteratorHelper(fields),
42
+ _step;
43
+ try {
44
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
45
+ var field = _step.value;
46
+ if (!(0, _lodashEs.isEqual)((0, _lodashEs.get)(objA, field), (0, _lodashEs.get)(objB, field))) {
47
+ return false;
48
+ }
49
+ }
50
+ } catch (err) {
51
+ _iterator.e(err);
52
+ } finally {
53
+ _iterator.f();
54
+ }
55
+ return true;
56
+ };
57
+ var GROUP_BY_OPTIONS = {
58
+ ALPHABET: "alphabet",
59
+ WORD: "word",
60
+ OTHERS: "Others"
61
+ };
62
+ var TIME_ROLLUP_OPTIONS = {
63
+ HOUR: "hour",
64
+ DAY: "day",
65
+ WEEK: "week",
66
+ MONTH: "month",
67
+ YEAR: "year"
68
+ };
69
+
70
+ // Adjusted for moment.js (YYYY for year, DD for day)
71
+ var ROLLUP_PATTERNS = {
72
+ DAY: "YYYY-MM-DD",
73
+ WEEK: "wo [Week], YYYY",
74
+ // Example: 42nd Week, 2023 (moment's week format)
75
+ MONTH: "MMM, YYYY",
76
+ YEAR: "YYYY",
77
+ HOUR: "hh:mm A"
78
+ };
79
+ var DataSetItem = exports.DataSetItem = /*#__PURE__*/(0, _createClass2["default"])(function DataSetItem() {
80
+ (0, _classCallCheck2["default"])(this, DataSetItem);
81
+ (0, _defineProperty2["default"])(this, "key", void 0);
82
+ (0, _defineProperty2["default"])(this, "label", void 0);
83
+ (0, _defineProperty2["default"])(this, "value", void 0);
84
+ (0, _defineProperty2["default"])(this, "dataObject", void 0);
85
+ (0, _defineProperty2["default"])(this, "index", void 0);
86
+ (0, _defineProperty2["default"])(this, "imgSrc", void 0);
87
+ (0, _defineProperty2["default"])(this, "selected", void 0);
88
+ (0, _defineProperty2["default"])(this, "children", void 0);
89
+ (0, _defineProperty2["default"])(this, "match", void 0);
90
+ (0, _defineProperty2["default"])(this, "dateformat", void 0);
91
+ });
92
+ var _internalTransformDataset = function _internalTransformDataset(dataset, datafield, displayfield, displaylabel, displayexpression, orderby, groupby, dataPath, itemchildren) {
93
+ return datasetItems(dataset, datafield, displayfield, displaylabel, displayexpression, orderby, groupby, dataPath, itemchildren);
94
+ };
95
+
96
+ // Custom resolver for memoize to handle multiple arguments correctly
97
+ var resolver = function resolver() {
98
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
99
+ args[_key] = arguments[_key];
100
+ }
101
+ return args.map(function (arg) {
102
+ if (typeof arg === "function") {
103
+ return arg.toString();
104
+ }
105
+ return JSON.stringify(arg);
106
+ }).join("|");
107
+ };
108
+ var transformDataset = exports.transformDataset = (0, _lodashEs.memoize)(_internalTransformDataset, resolver);
109
+
110
+ /**
111
+ * function to get the ordered dataset based on the given orderby
112
+ */
113
+ var getOrderedDataset = exports.getOrderedDataset = function getOrderedDataset(dataSet, orderBy, innerItem) {
114
+ if (!orderBy) {
115
+ return (0, _lodashEs.cloneDeep)(dataSet);
116
+ }
117
+ var items = orderBy.split(",");
118
+ var fields = [];
119
+ var directions = [];
120
+ items.forEach(function (obj) {
121
+ var item = obj.split(":");
122
+ fields.push(innerItem ? "".concat(innerItem, ".").concat(item[0]) : item[0]);
123
+ directions.push(item[1]);
124
+ });
125
+ return (0, _lodashEs.orderBy)(dataSet, fields, directions);
126
+ };
127
+
128
+ /**
129
+ * Returns an array of object, each object contain the DataSetItem whose key, value, label are extracted from object keys.
130
+ */
131
+ var transformDataWithKeys = exports.transformDataWithKeys = function transformDataWithKeys(dataSet) {
132
+ var data = [];
133
+ if ((0, _lodashEs.isObject)(dataSet[0]) || (0, _lodashEs.isObject)(dataSet) && !(0, _lodashEs.isArray)(dataSet)) {
134
+ var objectKeys = Object.keys(dataSet[0] || dataSet);
135
+ (0, _lodashEs.forEach)(objectKeys, function (objKey, index) {
136
+ data.push({
137
+ key: objKey,
138
+ label: objKey,
139
+ value: objKey,
140
+ index: (index || 0) + 1 // Ensure index is number
141
+ });
142
+ });
143
+ }
144
+ return data;
145
+ };
146
+ var extractDataAsArray = exports.extractDataAsArray = function extractDataAsArray(data) {
147
+ if ((0, _lodashEs.isUndefined)(data) || (0, _lodashEs.isNull)(data) || (0, _lodashEs.isString)(data) && (0, _lodashEs.trim)(data) === "") {
148
+ return [];
149
+ }
150
+ if ((0, _lodashEs.isString)(data)) {
151
+ data = (0, _lodashEs.split)(data, ",").map(function (str) {
152
+ return (0, _lodashEs.trim)(str);
153
+ });
154
+ }
155
+ if (!(0, _lodashEs.isArray)(data)) {
156
+ data = [data];
157
+ }
158
+ return data;
159
+ };
160
+ var convertDataToObject = exports.convertDataToObject = function convertDataToObject(dataResult) {
161
+ if ((0, _lodashEs.isString)(dataResult)) {
162
+ dataResult = (0, _lodashEs.split)(dataResult, ",").map(function (str) {
163
+ return (0, _lodashEs.trim)(str);
164
+ });
165
+ }
166
+ return dataResult;
167
+ };
168
+ var isSearchWidget = function isSearchWidget(widgetType) {
169
+ return widgetType === "wm-search"; // Assuming 'wm-search' is a string identifier
170
+ };
171
+
172
+ // This function originally used $parseEvent from @wm/core for dynamic expression evaluation.
173
+ // In React, it's highly recommended to pass functions directly as props instead of string expressions.
174
+ // This adapted version provides a placeholder for simple property access and logs a warning for complex cases.
175
+ var setGroupbyKey = function setGroupbyKey(scope, context, dataSetItem, innerItem) {
176
+ if (scope && isSearchWidget(scope.widgetType)) {
177
+ if (scope.groupby) {
178
+ if ((0, _lodashEs.includes)(scope.groupby, "(") || (0, _lodashEs.includes)(scope.groupby, "[")) {
179
+ // Complex expression detected. Direct evaluation of arbitrary strings is unsafe and not React-idiomatic.
180
+ // Consider refactoring to pass a pre-compiled function for groupby logic.
181
+ console.warn("Complex groupby expression \"".concat(scope.groupby, "\" detected for search widget. ") + "This may not work as expected. Refactor to use a function prop.");
182
+ // Attempting simple property access as a fallback if context and item are available
183
+ if (dataSetItem.dataObject && context) {
184
+ try {
185
+ // This is a very basic attempt and might not cover all original $parseEvent cases.
186
+ // For example, if scope.groupby was 'item.name.toUpperCase()', this won't work.
187
+ var value = (0, _lodashEs.get)(dataSetItem.dataObject, scope.groupby);
188
+ dataSetItem.key = value;
189
+ } catch (e) {
190
+ console.error("Failed to evaluate groupby expression (simple access):", scope.groupby, e);
191
+ dataSetItem.key = GROUP_BY_OPTIONS.OTHERS;
192
+ }
193
+ } else {
194
+ dataSetItem.key = GROUP_BY_OPTIONS.OTHERS; // Fallback
195
+ }
196
+ } else {
197
+ // Simple field name, try to get it from dataObject
198
+ dataSetItem.key = (0, _lodashEs.get)(dataSetItem.dataObject, scope.groupby);
199
+ }
200
+ } else {
201
+ // if groupby is not defined, set the key as datafield value
202
+ dataSetItem.key = dataSetItem.value;
203
+ }
204
+ } else if (dataSetItem.dataObject && scope && scope.groupby) {
205
+ // For non-search widgets, if groupby is present
206
+ dataSetItem.key = (0, _lodashEs.get)(dataSetItem.dataObject, scope.groupby);
207
+ }
208
+ };
209
+ function resolveDataPath(dataSet, dataPath) {
210
+ if (!Array.isArray(dataSet)) {
211
+ dataSet = [dataSet];
212
+ }
213
+ if (!dataPath) return dataSet;
214
+
215
+ // Remove leading dot if present and filter out empty segments
216
+ var cleanPath = dataPath.startsWith(".") ? dataPath.substring(1) : dataPath;
217
+ var pathSegments = cleanPath.split(".").filter(function (segment) {
218
+ return segment.length > 0;
219
+ });
220
+ if (pathSegments.length === 0) return dataSet;
221
+ var flatten = function flatten(data, path) {
222
+ if (path.length === 0) return data;
223
+ var nextKey = path[0];
224
+ var remainingPath = path.slice(1);
225
+ var result = [];
226
+ var _iterator2 = _createForOfIteratorHelper(data),
227
+ _step2;
228
+ try {
229
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
230
+ var item = _step2.value;
231
+ if (!item || (0, _typeof2["default"])(item) !== "object") continue;
232
+ var value = item[nextKey];
233
+ if (Array.isArray(value)) {
234
+ var next = flatten(value, remainingPath);
235
+ result = result.concat(next);
236
+ } else if (((0, _typeof2["default"])(value) === "object" || typeof value === "string") && value !== null) {
237
+ var _next = flatten([value], remainingPath);
238
+ result = result.concat(_next);
239
+ }
240
+ // else: primitive types or undefined → skip
241
+ }
242
+ } catch (err) {
243
+ _iterator2.e(err);
244
+ } finally {
245
+ _iterator2.f();
246
+ }
247
+ return result;
248
+ };
249
+ return flatten(dataSet, pathSegments);
250
+ }
251
+ var transformFormData = exports.transformFormData = function transformFormData(context, dataSet, myDataField, displayOptions, startIndex, scope, dataPath) {
252
+ if (dataPath) {
253
+ dataSet = resolveDataPath(dataSet, dataPath || "");
254
+ }
255
+ var data = [];
256
+ if ((0, _lodashEs.isString)(dataSet)) {
257
+ dataSet = dataSet.split(",").map(function (str) {
258
+ return str.trim();
259
+ });
260
+ dataSet.forEach(function (option, index) {
261
+ var dataSetItem = {
262
+ key: option,
263
+ value: option,
264
+ label: isDefined(option) && option !== null ? option.toString() : "",
265
+ index: startIndex + index
266
+ };
267
+ setGroupbyKey(scope, context, dataSetItem, "value");
268
+ data.push(dataSetItem);
269
+ });
270
+ } else if ((0, _lodashEs.isArray)(dataSet) && !(0, _lodashEs.isObject)(dataSet[0])) {
271
+ // array of primitive values only
272
+ dataSet.forEach(function (option, index) {
273
+ var dataSetItem = {
274
+ key: option,
275
+ value: option,
276
+ label: isDefined(option) && option !== null ? option.toString() : "",
277
+ index: startIndex + index
278
+ };
279
+ setGroupbyKey(scope, context, dataSetItem, "value");
280
+ data.push(dataSetItem);
281
+ });
282
+ } else if (!(dataSet instanceof Array) && (0, _lodashEs.isObject)(dataSet)) {
283
+ var i = 0;
284
+ (0, _lodashEs.forEach)(dataSet, function (value, key) {
285
+ // @ts-ignore
286
+ var dataSetItem = {
287
+ key: (0, _lodashEs.trim)(key),
288
+ value: key,
289
+ label: isDefined(value) && value !== null ? value.toString() : "",
290
+ index: startIndex,
291
+ dataObject: dataSet
292
+ };
293
+ setGroupbyKey(scope, context, dataSetItem, "value");
294
+ data.push(dataSetItem);
295
+ });
296
+ } else {
297
+ if (!myDataField) {
298
+ // consider the datafield as 'ALLFIELDS' when datafield is not given.
299
+ myDataField = ALLFIELDS;
300
+ }
301
+ dataSet.forEach(function (option, index) {
302
+ var key = myDataField === ALLFIELDS ? startIndex + index : (0, _widgets.getObjValueByKey)(option, myDataField);
303
+ // Omit all the items whose datafield (key) is null or undefined.
304
+ if (!(0, _lodashEs.isUndefined)(key) && !(0, _lodashEs.isNull)(key)) {
305
+ var label = (0, _widgets.getEvaluatedData)(option, {
306
+ field: displayOptions.displayField,
307
+ expression: displayOptions.displayExpr,
308
+ bindExpression: displayOptions.bindDisplayExpr
309
+ }, option);
310
+ var dataSetItem = {
311
+ key: key,
312
+ label: isDefined(label) && label !== null ? label.toString() : "",
313
+ value: myDataField === ALLFIELDS ? option : key,
314
+ dataObject: option,
315
+ // represents the object when datafield is ALLFIELDS. This is used as innerItem while grouping the datasetItems.
316
+ index: startIndex + index
317
+ };
318
+ if (displayOptions.displayImgSrc || displayOptions.bindDisplayImgSrc) {
319
+ dataSetItem.imgSrc = (0, _widgets.getEvaluatedData)(option, {
320
+ expression: displayOptions.displayImgSrc,
321
+ bindExpression: displayOptions.bindDisplayImgSrc
322
+ }, context);
323
+ }
324
+ setGroupbyKey(scope, context, dataSetItem, "dataObject");
325
+ data.push(dataSetItem);
326
+ }
327
+ });
328
+ }
329
+ return data;
330
+ };
331
+ var getUniqObjsByDataField = function getUniqObjsByDataField(data, dataField, displayField, allowEmptyFields) {
332
+ if (!allowEmptyFields) {
333
+ data = (0, _lodashEs.filter)(data, function (item) {
334
+ return isDefined(item.key) && item.key !== "";
335
+ });
336
+ }
337
+ return (0, _lodashEs.uniqWith)(data, function (obj1, obj2) {
338
+ var val1 = (0, _lodashEs.get)(obj1.dataObject, dataField);
339
+ var val2 = (0, _lodashEs.get)(obj2.dataObject, dataField);
340
+ var dVal1 = (0, _lodashEs.get)(obj1.dataObject, displayField);
341
+ var dVal2 = (0, _lodashEs.get)(obj2.dataObject, displayField);
342
+ return (0, _lodashEs.isEqual)(val1, val2) && (0, _lodashEs.isEqual)(dVal1, dVal2);
343
+ });
344
+ };
345
+ var setItemByCompare = exports.setItemByCompare = function setItemByCompare(datasetItems, compareWithDataObj, compareByField) {
346
+ return datasetItems.find(function (item) {
347
+ if (item.dataObject) {
348
+ return isEqualWithFields(compareWithDataObj, item.dataObject, compareByField);
349
+ }
350
+ return false;
351
+ });
352
+ };
353
+ var getSortedGroupedData = function getSortedGroupedData(groupedLiData, groupBy, orderby) {
354
+ var data = (0, _lodashEs.values)(groupedLiData).map(function (val) {
355
+ if (orderby) {
356
+ val.data = getOrderedDataset(val.data, orderby, "dataObject");
357
+ }
358
+ return val;
359
+ });
360
+ return (0, _lodashEs.sortBy)(data, "data[0].dataObject.".concat(groupBy));
361
+ };
362
+ var datasetItems = exports.datasetItems = function datasetItems(dataset, datafield, displayfield, displaylabel, displayexpression, orderby, groupby, dataPath, itemchildren) {
363
+ if (!dataset) return [];
364
+ var items = transformFormData(null, dataset, datafield, {
365
+ displayField: displayfield || displaylabel,
366
+ displayExpr: displayexpression
367
+ }, 0, null, dataPath);
368
+ if (orderby) {
369
+ var orderFields = orderby.split(",");
370
+ items.sort(function (a, b) {
371
+ var _iterator3 = _createForOfIteratorHelper(orderFields),
372
+ _step3;
373
+ try {
374
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
375
+ var orderField = _step3.value;
376
+ var _orderField$split = orderField.split(":"),
377
+ _orderField$split2 = (0, _slicedToArray2["default"])(_orderField$split, 2),
378
+ field = _orderField$split2[0],
379
+ order = _orderField$split2[1];
380
+ var aVal = String(a.dataObject[field] || a.label || "");
381
+ var bVal = String(b.dataObject[field] || b.label || "");
382
+ var comparison = order === "desc" ? bVal.localeCompare(aVal) : aVal.localeCompare(bVal);
383
+ if (comparison !== 0) return comparison;
384
+ }
385
+ } catch (err) {
386
+ _iterator3.e(err);
387
+ } finally {
388
+ _iterator3.f();
389
+ }
390
+ return 0;
391
+ });
392
+ }
393
+ var _iterator4 = _createForOfIteratorHelper(items),
394
+ _step4;
395
+ try {
396
+ for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
397
+ var item = _step4.value;
398
+ var children = void 0;
399
+ if (typeof itemchildren === "function") {
400
+ var _itemchildren;
401
+ children = (_itemchildren = itemchildren(item === null || item === void 0 ? void 0 : item.dataObject)) !== null && _itemchildren !== void 0 ? _itemchildren : itemchildren(item);
402
+ if (Array.isArray(children)) {
403
+ var sortedChildren = datasetItems(children, datafield, displayfield, displaylabel, displayexpression, orderby, groupby);
404
+ if (itemchildren(item === null || item === void 0 ? void 0 : item.dataObject)) {
405
+ item.dataObject.children = sortedChildren;
406
+ } else if (itemchildren(item)) {
407
+ item.children = sortedChildren;
408
+ }
409
+ }
410
+ } else {
411
+ var _item$dataObject$item, _item$dataObject;
412
+ children = (_item$dataObject$item = item === null || item === void 0 || (_item$dataObject = item.dataObject) === null || _item$dataObject === void 0 ? void 0 : _item$dataObject[itemchildren]) !== null && _item$dataObject$item !== void 0 ? _item$dataObject$item : item === null || item === void 0 ? void 0 : item[itemchildren];
413
+ if (Array.isArray(children)) {
414
+ var _item$dataObject2;
415
+ var _sortedChildren = datasetItems(children, datafield, displayfield, displaylabel, displayexpression, orderby, groupby);
416
+ if (item !== null && item !== void 0 && (_item$dataObject2 = item.dataObject) !== null && _item$dataObject2 !== void 0 && _item$dataObject2[itemchildren]) {
417
+ item.dataObject.children = _sortedChildren;
418
+ } else if (item !== null && item !== void 0 && item[itemchildren]) {
419
+ item.children = _sortedChildren;
420
+ }
421
+ }
422
+ }
423
+ }
424
+ } catch (err) {
425
+ _iterator4.e(err);
426
+ } finally {
427
+ _iterator4.f();
428
+ }
429
+ if (groupby) {
430
+ items = groupData(null, items, groupby, "word", "", "");
431
+ }
432
+ return items;
433
+ };
434
+ var groupData = exports.groupData = function groupData(compRef, data, groupby, match, orderby, dateformat) {
435
+ var innerItem = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : "dataObject";
436
+ var AppDefaults = arguments.length > 7 ? arguments[7] : undefined;
437
+ if (!groupby || !data || !data.length) {
438
+ return [];
439
+ }
440
+ var groupedData = getGroupedData(data, groupby, match, orderby, dateformat, innerItem, AppDefaults);
441
+ return getSortedGroupedData(groupedData, groupby, orderby);
442
+ };
443
+ var getGroupedData = function getGroupedData(fieldDefs, groupby, match, orderby, dateFormat, innerItem, AppDefaults) {
444
+ var mappedData = fieldDefs.map(function (item) {
445
+ var groupByKey = groupDataByField(groupby, match, innerItem, dateFormat, /*datePipe,*/AppDefaults, item);
446
+ return {
447
+ groupByKey: groupByKey,
448
+ data: item
449
+ };
450
+ });
451
+ var groupedData = (0, _lodashEs.groupBy)(mappedData, "groupByKey");
452
+
453
+ // Format for final structure {key: groupName, data: [items]}
454
+ var result = {};
455
+ (0, _lodashEs.forEach)(groupedData, function (value, key) {
456
+ result[key] = {
457
+ key: key,
458
+ data: value.map(function (v) {
459
+ return v.data;
460
+ })
461
+ };
462
+ });
463
+ return result;
464
+ };
465
+ var filterDateReact = function filterDateReact(value, format, defaultFormat) {
466
+ if (!isDefined(value) || value === "") {
467
+ return "";
468
+ }
469
+ var mDate = moment(value);
470
+ if (mDate.isValid()) {
471
+ return mDate.format(format || defaultFormat);
472
+ }
473
+ return String(value); // Return original if not a valid date
474
+ };
475
+ var getTimeRolledUpString = function getTimeRolledUpString(concatStr, rollUp, dateformat, AppDefaults) {
476
+ if (!isDefined(concatStr) || concatStr === "") {
477
+ return GROUP_BY_OPTIONS.OTHERS;
478
+ }
479
+ var mDate = moment(concatStr);
480
+ if (!mDate.isValid()) {
481
+ return GROUP_BY_OPTIONS.OTHERS;
482
+ }
483
+ var appDateFormat = AppDefaults && AppDefaults.dateFormat ? AppDefaults.dateFormat : "yyyy-MM-dd";
484
+ var calendarDayFormats = {
485
+ lastDay: "[Yesterday]",
486
+ lastWeek: "[Last] dddd",
487
+ nextDay: "[Tomorrow]",
488
+ nextWeek: "dddd",
489
+ sameDay: "[Today]",
490
+ sameElse: appDateFormat.replace(/y/g, "Y").replace(/d/g, "D") // Adjust to moment format tokens
491
+ };
492
+ if (rollUp === TIME_ROLLUP_OPTIONS.DAY) {
493
+ return mDate.calendar(null, calendarDayFormats);
494
+ }
495
+ if (rollUp === TIME_ROLLUP_OPTIONS.WEEK) {
496
+ // Example: 'Week 1, 2023' or use specific format from ROLLUP_PATTERNS
497
+ return mDate.format(ROLLUP_PATTERNS.WEEK || "wo [Week], YYYY");
498
+ }
499
+ if (rollUp === TIME_ROLLUP_OPTIONS.MONTH) {
500
+ return mDate.format(ROLLUP_PATTERNS.MONTH || "MMM, YYYY");
501
+ }
502
+ if (rollUp === TIME_ROLLUP_OPTIONS.YEAR) {
503
+ return mDate.format(ROLLUP_PATTERNS.YEAR || "YYYY");
504
+ }
505
+ if (rollUp === TIME_ROLLUP_OPTIONS.HOUR) {
506
+ // Check if it's today to show 'Today, 09:00 AM', else 'YYYY-MM-DD, 09:00 AM'
507
+ var baseFormat = ROLLUP_PATTERNS.HOUR || "hh:mm A";
508
+ if (mDate.isSame(moment(), "day")) {
509
+ return "[Today], ".concat(mDate.format(baseFormat));
510
+ }
511
+ return mDate.format("".concat(ROLLUP_PATTERNS.DAY, ", ").concat(baseFormat));
512
+ }
513
+
514
+ // Default if no rollup matched, or for custom date formats if applicable
515
+ if (dateformat) {
516
+ return filterDateReact(mDate.toDate(), dateformat, appDateFormat);
517
+ }
518
+ return mDate.format(appDateFormat.replace(/y/g, "Y").replace(/d/g, "D"));
519
+ };
520
+ var groupDataByField = function groupDataByField(groupby, match, innerItem, dateFormat, AppDefaults, liData) {
521
+ var concatStr = (0, _lodashEs.get)(innerItem ? liData[innerItem] : liData, groupby);
522
+ if ((0, _lodashEs.isUndefined)(concatStr) || (0, _lodashEs.isNull)(concatStr) || (0, _lodashEs.isString)(concatStr) && concatStr.toString().trim() === "") {
523
+ return GROUP_BY_OPTIONS.OTHERS;
524
+ }
525
+ if (match === GROUP_BY_OPTIONS.ALPHABET) {
526
+ return String(concatStr).substr(0, 1).toUpperCase();
527
+ }
528
+ if (match === GROUP_BY_OPTIONS.WORD) {
529
+ return String(concatStr);
530
+ }
531
+ if ((0, _lodashEs.includes)((0, _lodashEs.values)(TIME_ROLLUP_OPTIONS), match)) {
532
+ return getTimeRolledUpString(String(concatStr), match, dateFormat, AppDefaults);
533
+ }
534
+ return String(concatStr);
535
+ };
536
+
537
+ /**
538
+ * Utility functions for list group operations
539
+ */
540
+
541
+ /**
542
+ * Toggle all list items in all groups
543
+ * @param containerRef - Reference to the container element
544
+ * @returns void
545
+ */
546
+ var toggleAllHeaders = exports.toggleAllHeaders = function toggleAllHeaders(containerRef) {
547
+ var groups = containerRef.querySelectorAll(".item-group");
548
+ groups.forEach(function (group) {
549
+ var listItems = group.querySelectorAll(".group-list-item");
550
+ var icon = group.querySelector("li.list-group-header .app-icon");
551
+ listItems.forEach(function (item) {
552
+ // Toggle visibility
553
+ var currentDisplay = window.getComputedStyle(item).display;
554
+ item.style.display = currentDisplay === "none" ? "block" : "none";
555
+ });
556
+ if (icon) {
557
+ if (icon.classList.contains("wi-chevron-down")) {
558
+ icon.classList.remove("wi-chevron-down");
559
+ icon.classList.add("wi-chevron-up");
560
+ } else {
561
+ icon.classList.remove("wi-chevron-up");
562
+ icon.classList.add("wi-chevron-down");
563
+ }
564
+ }
565
+ });
566
+ };
567
+
568
+ /**
569
+ * Handle click on a group header
570
+ * @param event - Click event
571
+ * @returns void
572
+ */
573
+ var handleHeaderClick = exports.handleHeaderClick = function handleHeaderClick(event) {
574
+ var target = event.target;
575
+ var selectedGroup = target.closest(".item-group");
576
+ if (!selectedGroup) return;
577
+ var selectedAppIcon = selectedGroup.querySelector("li.list-group-header .app-icon");
578
+ var listItems = selectedGroup.querySelectorAll(".group-list-item");
579
+ if (selectedAppIcon) {
580
+ if (selectedAppIcon.classList.contains("wi-chevron-down")) {
581
+ selectedAppIcon.classList.remove("wi-chevron-down");
582
+ selectedAppIcon.classList.add("wi-chevron-up");
583
+ } else {
584
+ selectedAppIcon.classList.remove("wi-chevron-up");
585
+ selectedAppIcon.classList.add("wi-chevron-down");
586
+ }
587
+ }
588
+ listItems.forEach(function (item) {
589
+ var currentDisplay = window.getComputedStyle(item).display;
590
+ item.style.display = currentDisplay === "none" ? "block" : "none";
591
+ });
592
+ };
593
+ /**
594
+ * Configure drag and drop functionality
595
+ * Note: This is a basic implementation. For production use, consider using modern libraries like react-beautiful-dnd
596
+ * @param element - Element to make sortable
597
+ * @param options - Sortable options
598
+ * @param onDragStart - Callback when drag starts
599
+ * @param onUpdate - Callback when sorting ends and DOM position changes
600
+ * @param onSort - Optional callback during sorting
601
+ */
602
+ var configureDnD = exports.configureDnD = function configureDnD(element) {
603
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
604
+ var onDragStart = arguments.length > 2 ? arguments[2] : undefined;
605
+ var onUpdate = arguments.length > 3 ? arguments[3] : undefined;
606
+ var onSort = arguments.length > 4 ? arguments[4] : undefined;
607
+ var defaultOptions = {
608
+ containment: element,
609
+ delay: 100,
610
+ opacity: 0.8,
611
+ helper: "clone",
612
+ zIndex: 1050,
613
+ tolerance: "pointer"
614
+ };
615
+ var finalOptions = _objectSpread(_objectSpread({}, defaultOptions), options);
616
+
617
+ // Add drag and drop event listeners
618
+ element.addEventListener("dragstart", onDragStart);
619
+ element.addEventListener("dragend", onUpdate);
620
+ if (onSort) {
621
+ element.addEventListener("drag", onSort);
622
+ }
623
+
624
+ // Make children draggable
625
+ var draggableItems = element.children;
626
+ Array.from(draggableItems).forEach(function (item) {
627
+ item.draggable = true;
628
+ item.style.userSelect = "none";
629
+ if (finalOptions.opacity) {
630
+ item.style.opacity = "1";
631
+ }
632
+ });
633
+ };