@multiplatform.one/backoffice 7.28.0 → 7.29.0

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 (759) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/chrome/BackofficeAwesomebar.native.js +1 -1
  3. package/dist/cjs/chrome/BackofficeAwesomebar.native.js.map +1 -1
  4. package/dist/cjs/chrome/CommandPalette.native.js +1 -1
  5. package/dist/cjs/chrome/CommandPalette.native.js.map +1 -1
  6. package/dist/cjs/chrome/HelpMenu.native.js +1 -1
  7. package/dist/cjs/chrome/HelpMenu.native.js.map +1 -1
  8. package/dist/cjs/chrome/NotificationsButton.native.js +1 -1
  9. package/dist/cjs/chrome/NotificationsButton.native.js.map +1 -1
  10. package/dist/cjs/chrome/UserMenu.native.js +1 -1
  11. package/dist/cjs/chrome/UserMenu.native.js.map +1 -1
  12. package/dist/cjs/chrome/awesomebar-data.native.js.map +1 -1
  13. package/dist/cjs/chrome/command-palette-model.native.js +1 -1
  14. package/dist/cjs/chrome/command-palette-model.native.js.map +1 -1
  15. package/dist/cjs/chrome/help-about-dialog.native.js +1 -1
  16. package/dist/cjs/chrome/help-about-dialog.native.js.map +1 -1
  17. package/dist/cjs/chrome/help-shortcuts-dialog.native.js +1 -1
  18. package/dist/cjs/chrome/help-shortcuts-dialog.native.js.map +1 -1
  19. package/dist/cjs/chrome/notifications-data.native.js.map +1 -1
  20. package/dist/cjs/chrome/notifications-panel.native.js +1 -1
  21. package/dist/cjs/chrome/notifications-panel.native.js.map +1 -1
  22. package/dist/cjs/chrome/notifications-utils.native.js.map +1 -1
  23. package/dist/cjs/chrome/shortcuts.native.js.map +1 -1
  24. package/dist/cjs/chrome/user-session.native.js.map +1 -1
  25. package/dist/cjs/config/BackofficeProvider.native.js +1 -1
  26. package/dist/cjs/config/BackofficeProvider.native.js.map +1 -1
  27. package/dist/cjs/config/capabilities.native.js.map +1 -1
  28. package/dist/cjs/config/events.native.js.map +1 -1
  29. package/dist/cjs/config/slots.native.js.map +1 -1
  30. package/dist/cjs/desk/Desk.native.js.map +1 -1
  31. package/dist/cjs/desk/DeskSurface.native.js.map +1 -1
  32. package/dist/cjs/desk/resolveDeskPath.native.js.map +1 -1
  33. package/dist/cjs/desk/scope.native.js.map +1 -1
  34. package/dist/cjs/desk/target.native.js.map +1 -1
  35. package/dist/cjs/form/DocFormScreen.cjs +167 -224
  36. package/dist/cjs/form/DocFormScreen.native.js +183 -260
  37. package/dist/cjs/form/DocFormScreen.native.js.map +1 -1
  38. package/dist/cjs/form/FormConnections.native.js +1 -1
  39. package/dist/cjs/form/FormConnections.native.js.map +1 -1
  40. package/dist/cjs/form/FormDialogs.native.js +1 -1
  41. package/dist/cjs/form/FormDialogs.native.js.map +1 -1
  42. package/dist/cjs/form/FormErrorBoundary.native.js +1 -1
  43. package/dist/cjs/form/FormErrorBoundary.native.js.map +1 -1
  44. package/dist/cjs/form/FormHeaderCluster.native.js +1 -1
  45. package/dist/cjs/form/FormHeaderCluster.native.js.map +1 -1
  46. package/dist/cjs/form/FormSidebarPanel.native.js +1 -1
  47. package/dist/cjs/form/FormSidebarPanel.native.js.map +1 -1
  48. package/dist/cjs/form/FormTimeline.native.js +1 -1
  49. package/dist/cjs/form/FormTimeline.native.js.map +1 -1
  50. package/dist/cjs/form/FormToolbar.native.js +1 -1
  51. package/dist/cjs/form/FormToolbar.native.js.map +1 -1
  52. package/dist/cjs/form/connections-data.native.js.map +1 -1
  53. package/dist/cjs/form/createPrefill.native.js.map +1 -1
  54. package/dist/cjs/form/dependsOn.native.js.map +1 -1
  55. package/dist/cjs/form/dirtyTracking.native.js.map +1 -1
  56. package/dist/cjs/form/docinfo.native.js.map +1 -1
  57. package/dist/cjs/form/fetchFrom.native.js.map +1 -1
  58. package/dist/cjs/form/fieldPermissions.native.js.map +1 -1
  59. package/dist/cjs/form/formActions.native.js.map +1 -1
  60. package/dist/cjs/form/formLayout.native.js.map +1 -1
  61. package/dist/cjs/form/platformHooks.native.js.map +1 -1
  62. package/dist/cjs/form/sidebar-attachments.native.js +1 -1
  63. package/dist/cjs/form/sidebar-attachments.native.js.map +1 -1
  64. package/dist/cjs/form/sidebar-dialogs.native.js +1 -1
  65. package/dist/cjs/form/sidebar-dialogs.native.js.map +1 -1
  66. package/dist/cjs/form/sidebar-people.native.js +1 -1
  67. package/dist/cjs/form/sidebar-people.native.js.map +1 -1
  68. package/dist/cjs/form/sidebar-rpc.native.js.map +1 -1
  69. package/dist/cjs/form/sidebar-utils.native.js.map +1 -1
  70. package/dist/cjs/form/timeline-entries.native.js.map +1 -1
  71. package/dist/cjs/form/timeline-utils.native.js.map +1 -1
  72. package/dist/cjs/form/useFormEngine.native.js.map +1 -1
  73. package/dist/cjs/i18n/en.cjs +1 -0
  74. package/dist/cjs/i18n/en.native.js +1 -0
  75. package/dist/cjs/i18n/en.native.js.map +1 -1
  76. package/dist/cjs/i18n/index.native.js.map +1 -1
  77. package/dist/cjs/index.native.js +1 -1
  78. package/dist/cjs/index.native.js.map +1 -1
  79. package/dist/cjs/list/AddTagsDialog.native.js +1 -1
  80. package/dist/cjs/list/AddTagsDialog.native.js.map +1 -1
  81. package/dist/cjs/list/AssignToDialog.native.js +1 -1
  82. package/dist/cjs/list/AssignToDialog.native.js.map +1 -1
  83. package/dist/cjs/list/DoctypeListScreen.native.js +1 -1
  84. package/dist/cjs/list/DoctypeListScreen.native.js.map +1 -1
  85. package/dist/cjs/list/ListBulkActionsBar.cjs +30 -18
  86. package/dist/cjs/list/ListBulkActionsBar.native.js +44 -32
  87. package/dist/cjs/list/ListBulkActionsBar.native.js.map +1 -1
  88. package/dist/cjs/list/ListFilterBar.native.js +1 -1
  89. package/dist/cjs/list/ListFilterBar.native.js.map +1 -1
  90. package/dist/cjs/list/ListSidebar.native.js +1 -1
  91. package/dist/cjs/list/ListSidebar.native.js.map +1 -1
  92. package/dist/cjs/list/bulk-edit-dialog.native.js +1 -1
  93. package/dist/cjs/list/bulk-edit-dialog.native.js.map +1 -1
  94. package/dist/cjs/list/bulk-export.native.js.map +1 -1
  95. package/dist/cjs/list/bulk-submit-cancel.native.js.map +1 -1
  96. package/dist/cjs/list/bulkActions.native.js.map +1 -1
  97. package/dist/cjs/list/filter-chips.native.js +1 -1
  98. package/dist/cjs/list/filter-chips.native.js.map +1 -1
  99. package/dist/cjs/list/filter-editor.native.js +1 -1
  100. package/dist/cjs/list/filter-editor.native.js.map +1 -1
  101. package/dist/cjs/list/filter-fields.native.js.map +1 -1
  102. package/dist/cjs/list/filter-saved.native.js +1 -1
  103. package/dist/cjs/list/filter-saved.native.js.map +1 -1
  104. package/dist/cjs/list/filter-sort.native.js +1 -1
  105. package/dist/cjs/list/filter-sort.native.js.map +1 -1
  106. package/dist/cjs/list/filter-standard.native.js.map +1 -1
  107. package/dist/cjs/list/filterConversion.native.js.map +1 -1
  108. package/dist/cjs/list/list-tools-sheet.native.js +1 -1
  109. package/dist/cjs/list/list-tools-sheet.native.js.map +1 -1
  110. package/dist/cjs/list/listColumns.native.js.map +1 -1
  111. package/dist/cjs/list/listFields.native.js.map +1 -1
  112. package/dist/cjs/list/listFormat.native.js.map +1 -1
  113. package/dist/cjs/list/listUrlState.native.js.map +1 -1
  114. package/dist/cjs/list/sidebar-section.cjs +15 -7
  115. package/dist/cjs/list/sidebar-section.native.js +17 -8
  116. package/dist/cjs/list/sidebar-section.native.js.map +1 -1
  117. package/dist/cjs/list/sidebar-stats.native.js.map +1 -1
  118. package/dist/cjs/list/statusColors.native.js.map +1 -1
  119. package/dist/cjs/navigation/navigator.native.js.map +1 -1
  120. package/dist/cjs/navigation/paths.native.js.map +1 -1
  121. package/dist/cjs/oneAdapter/index.native.js.map +1 -1
  122. package/dist/cjs/quickEntry/QuickEntryDialog.native.js +1 -1
  123. package/dist/cjs/quickEntry/QuickEntryDialog.native.js.map +1 -1
  124. package/dist/cjs/quickEntry/quickEntryPlan.native.js.map +1 -1
  125. package/dist/cjs/report/DoctypeReportView.cjs +20 -374
  126. package/dist/cjs/report/DoctypeReportView.native.js +23 -455
  127. package/dist/cjs/report/DoctypeReportView.native.js.map +1 -1
  128. package/dist/cjs/report/QueryReportScreen.cjs +33 -23
  129. package/dist/cjs/report/QueryReportScreen.native.js +34 -24
  130. package/dist/cjs/report/QueryReportScreen.native.js.map +1 -1
  131. package/dist/cjs/report/queryReportColumns.cjs +3 -105
  132. package/dist/cjs/report/queryReportColumns.native.js +2 -129
  133. package/dist/cjs/report/queryReportColumns.native.js.map +1 -1
  134. package/dist/cjs/report/queryReportFilterBar.cjs +3 -4
  135. package/dist/cjs/report/queryReportFilterBar.native.js +4 -5
  136. package/dist/cjs/report/queryReportFilterBar.native.js.map +1 -1
  137. package/dist/cjs/report/queryReportUrlState.cjs +2 -2
  138. package/dist/cjs/report/queryReportUrlState.native.js +2 -2
  139. package/dist/cjs/report/queryReportUrlState.native.js.map +1 -1
  140. package/dist/cjs/report/report-grid.cjs +2 -426
  141. package/dist/cjs/report/report-grid.native.js +1 -479
  142. package/dist/cjs/report/report-grid.native.js.map +1 -1
  143. package/dist/cjs/report/report-toolbar.cjs +2 -228
  144. package/dist/cjs/report/report-toolbar.native.js +1 -274
  145. package/dist/cjs/report/report-toolbar.native.js.map +1 -1
  146. package/dist/cjs/report/reportShapes.cjs +12 -383
  147. package/dist/cjs/report/reportShapes.native.js +12 -501
  148. package/dist/cjs/report/reportShapes.native.js.map +1 -1
  149. package/dist/cjs/report/reportViewModel.cjs +20 -360
  150. package/dist/cjs/report/reportViewModel.native.js +19 -627
  151. package/dist/cjs/report/reportViewModel.native.js.map +1 -1
  152. package/dist/cjs/report/savedReports.cjs +2 -106
  153. package/dist/cjs/report/savedReports.native.js +1 -132
  154. package/dist/cjs/report/savedReports.native.js.map +1 -1
  155. package/dist/cjs/report/useQueryReport.cjs +11 -219
  156. package/dist/cjs/report/useQueryReport.native.js +11 -244
  157. package/dist/cjs/report/useQueryReport.native.js.map +1 -1
  158. package/dist/cjs/shared/deskLinks.native.js.map +1 -1
  159. package/dist/cjs/shared/listNavContext.native.js.map +1 -1
  160. package/dist/cjs/shared/measures.cjs +3 -5
  161. package/dist/cjs/shared/measures.native.js +3 -5
  162. package/dist/cjs/shared/measures.native.js.map +1 -1
  163. package/dist/cjs/shared/types.native.js.map +1 -1
  164. package/dist/cjs/shared/useDocinfo.native.js.map +1 -1
  165. package/dist/cjs/shared/useDoctypeMeta.native.js.map +1 -1
  166. package/dist/cjs/shared/useFrappeApp.native.js.map +1 -1
  167. package/dist/cjs/shared/useRecentVisit.native.js.map +1 -1
  168. package/dist/cjs/shared/useSessionUserId.native.js.map +1 -1
  169. package/dist/cjs/shared/useSlugTarget.native.js.map +1 -1
  170. package/dist/cjs/shared/useUserRoles.native.js.map +1 -1
  171. package/dist/cjs/shell/BackofficeShell.native.js +1 -1
  172. package/dist/cjs/shell/BackofficeShell.native.js.map +1 -1
  173. package/dist/cjs/shell/HomeRedirect.native.js +1 -1
  174. package/dist/cjs/shell/HomeRedirect.native.js.map +1 -1
  175. package/dist/cjs/shell/NotFoundScreen.native.js +1 -1
  176. package/dist/cjs/shell/NotFoundScreen.native.js.map +1 -1
  177. package/dist/cjs/shell/SlugScreen.native.js +1 -1
  178. package/dist/cjs/shell/SlugScreen.native.js.map +1 -1
  179. package/dist/cjs/shell/WorkspaceSidebar.native.js +1 -1
  180. package/dist/cjs/shell/WorkspaceSidebar.native.js.map +1 -1
  181. package/dist/cjs/shell/useWorkspaces.native.js.map +1 -1
  182. package/dist/cjs/shell/workspaceIcons.native.js.map +1 -1
  183. package/dist/cjs/views/CalendarView.native.js +1 -1
  184. package/dist/cjs/views/CalendarView.native.js.map +1 -1
  185. package/dist/cjs/views/DashboardView.native.js +1 -1
  186. package/dist/cjs/views/DashboardView.native.js.map +1 -1
  187. package/dist/cjs/views/DoctypeViewScreen.native.js.map +1 -1
  188. package/dist/cjs/views/ImageView.native.js +1 -1
  189. package/dist/cjs/views/ImageView.native.js.map +1 -1
  190. package/dist/cjs/views/KanbanView.native.js +1 -1
  191. package/dist/cjs/views/KanbanView.native.js.map +1 -1
  192. package/dist/cjs/views/ReportView.cjs +3 -256
  193. package/dist/cjs/views/ReportView.native.js +3 -382
  194. package/dist/cjs/views/ReportView.native.js.map +1 -1
  195. package/dist/cjs/views/TreeView.native.js +1 -1
  196. package/dist/cjs/views/TreeView.native.js.map +1 -1
  197. package/dist/cjs/views/ViewHeader.native.js +1 -1
  198. package/dist/cjs/views/ViewHeader.native.js.map +1 -1
  199. package/dist/cjs/views/ViewStates.native.js +1 -1
  200. package/dist/cjs/views/ViewStates.native.js.map +1 -1
  201. package/dist/cjs/views/ViewSwitcherMenu.native.js +1 -1
  202. package/dist/cjs/views/ViewSwitcherMenu.native.js.map +1 -1
  203. package/dist/cjs/views/calendar-field-selector.native.js +1 -1
  204. package/dist/cjs/views/calendar-field-selector.native.js.map +1 -1
  205. package/dist/cjs/views/connection.native.js.map +1 -1
  206. package/dist/cjs/views/dashboard-data.native.js.map +1 -1
  207. package/dist/cjs/views/deskViewConfigs.native.js.map +1 -1
  208. package/dist/cjs/views/kanban-board-controls.native.js +1 -1
  209. package/dist/cjs/views/kanban-board-controls.native.js.map +1 -1
  210. package/dist/cjs/views/kanban-field-picker.native.js +1 -1
  211. package/dist/cjs/views/kanban-field-picker.native.js.map +1 -1
  212. package/dist/cjs/views/kanbanBoardOps.native.js.map +1 -1
  213. package/dist/cjs/views/report-controls.cjs +6 -6
  214. package/dist/cjs/views/report-controls.native.js +7 -7
  215. package/dist/cjs/views/report-controls.native.js.map +1 -1
  216. package/dist/cjs/views/viewAvailability.native.js.map +1 -1
  217. package/dist/cjs/views/viewMeta.native.js.map +1 -1
  218. package/dist/cjs/workspace/WorkspaceChartBlock.native.js +1 -1
  219. package/dist/cjs/workspace/WorkspaceChartBlock.native.js.map +1 -1
  220. package/dist/cjs/workspace/WorkspaceGrid.native.js.map +1 -1
  221. package/dist/cjs/workspace/WorkspaceLinkCard.native.js +1 -1
  222. package/dist/cjs/workspace/WorkspaceLinkCard.native.js.map +1 -1
  223. package/dist/cjs/workspace/WorkspaceLinkDirectory.native.js +1 -1
  224. package/dist/cjs/workspace/WorkspaceLinkDirectory.native.js.map +1 -1
  225. package/dist/cjs/workspace/WorkspaceNumberCard.native.js +1 -1
  226. package/dist/cjs/workspace/WorkspaceNumberCard.native.js.map +1 -1
  227. package/dist/cjs/workspace/WorkspaceQuickList.native.js +1 -1
  228. package/dist/cjs/workspace/WorkspaceQuickList.native.js.map +1 -1
  229. package/dist/cjs/workspace/WorkspaceRecents.native.js +1 -1
  230. package/dist/cjs/workspace/WorkspaceRecents.native.js.map +1 -1
  231. package/dist/cjs/workspace/WorkspaceScreen.native.js +1 -1
  232. package/dist/cjs/workspace/WorkspaceScreen.native.js.map +1 -1
  233. package/dist/cjs/workspace/WorkspaceShortcut.native.js +1 -1
  234. package/dist/cjs/workspace/WorkspaceShortcut.native.js.map +1 -1
  235. package/dist/cjs/workspace/parseContent.native.js.map +1 -1
  236. package/dist/cjs/workspace/types.native.js.map +1 -1
  237. package/dist/cjs/workspace/useDashboardChart.native.js.map +1 -1
  238. package/dist/cjs/workspace/useWorkspaceDoc.native.js.map +1 -1
  239. package/dist/esm/chrome/BackofficeAwesomebar.native.js.map +1 -1
  240. package/dist/esm/chrome/CommandPalette.native.js.map +1 -1
  241. package/dist/esm/chrome/HelpMenu.native.js.map +1 -1
  242. package/dist/esm/chrome/NotificationsButton.native.js.map +1 -1
  243. package/dist/esm/chrome/UserMenu.native.js.map +1 -1
  244. package/dist/esm/chrome/awesomebar-data.native.js.map +1 -1
  245. package/dist/esm/chrome/command-palette-model.native.js.map +1 -1
  246. package/dist/esm/chrome/help-about-dialog.native.js.map +1 -1
  247. package/dist/esm/chrome/help-shortcuts-dialog.native.js.map +1 -1
  248. package/dist/esm/chrome/notifications-data.native.js.map +1 -1
  249. package/dist/esm/chrome/notifications-panel.native.js.map +1 -1
  250. package/dist/esm/chrome/notifications-utils.native.js.map +1 -1
  251. package/dist/esm/chrome/shortcuts.native.js.map +1 -1
  252. package/dist/esm/chrome/user-session.native.js.map +1 -1
  253. package/dist/esm/config/BackofficeProvider.native.js.map +1 -1
  254. package/dist/esm/config/capabilities.native.js.map +1 -1
  255. package/dist/esm/config/events.native.js.map +1 -1
  256. package/dist/esm/config/slots.native.js.map +1 -1
  257. package/dist/esm/desk/Desk.native.js.map +1 -1
  258. package/dist/esm/desk/DeskSurface.mjs.map +1 -1
  259. package/dist/esm/desk/DeskSurface.native.js.map +1 -1
  260. package/dist/esm/desk/resolveDeskPath.native.js.map +1 -1
  261. package/dist/esm/desk/scope.native.js.map +1 -1
  262. package/dist/esm/desk/target.native.js.map +1 -1
  263. package/dist/esm/form/DocFormScreen.mjs +169 -226
  264. package/dist/esm/form/DocFormScreen.mjs.map +1 -1
  265. package/dist/esm/form/DocFormScreen.native.js +184 -261
  266. package/dist/esm/form/DocFormScreen.native.js.map +1 -1
  267. package/dist/esm/form/FormConnections.native.js.map +1 -1
  268. package/dist/esm/form/FormDialogs.native.js.map +1 -1
  269. package/dist/esm/form/FormErrorBoundary.native.js.map +1 -1
  270. package/dist/esm/form/FormHeaderCluster.native.js.map +1 -1
  271. package/dist/esm/form/FormSidebarPanel.native.js.map +1 -1
  272. package/dist/esm/form/FormTimeline.native.js.map +1 -1
  273. package/dist/esm/form/FormToolbar.native.js.map +1 -1
  274. package/dist/esm/form/connections-data.native.js.map +1 -1
  275. package/dist/esm/form/createPrefill.native.js.map +1 -1
  276. package/dist/esm/form/dependsOn.native.js.map +1 -1
  277. package/dist/esm/form/dirtyTracking.native.js.map +1 -1
  278. package/dist/esm/form/docinfo.native.js.map +1 -1
  279. package/dist/esm/form/fetchFrom.native.js.map +1 -1
  280. package/dist/esm/form/fieldPermissions.native.js.map +1 -1
  281. package/dist/esm/form/formActions.native.js.map +1 -1
  282. package/dist/esm/form/formLayout.native.js.map +1 -1
  283. package/dist/esm/form/platformHooks.native.js.map +1 -1
  284. package/dist/esm/form/sidebar-attachments.native.js.map +1 -1
  285. package/dist/esm/form/sidebar-dialogs.native.js.map +1 -1
  286. package/dist/esm/form/sidebar-people.native.js.map +1 -1
  287. package/dist/esm/form/sidebar-rpc.native.js.map +1 -1
  288. package/dist/esm/form/sidebar-utils.native.js.map +1 -1
  289. package/dist/esm/form/timeline-entries.native.js.map +1 -1
  290. package/dist/esm/form/timeline-utils.native.js.map +1 -1
  291. package/dist/esm/form/useFormEngine.native.js.map +1 -1
  292. package/dist/esm/i18n/en.mjs +1 -0
  293. package/dist/esm/i18n/en.mjs.map +1 -1
  294. package/dist/esm/i18n/en.native.js +1 -0
  295. package/dist/esm/i18n/en.native.js.map +1 -1
  296. package/dist/esm/i18n/index.native.js.map +1 -1
  297. package/dist/esm/index.native.js.map +1 -1
  298. package/dist/esm/list/AddTagsDialog.native.js.map +1 -1
  299. package/dist/esm/list/AssignToDialog.native.js.map +1 -1
  300. package/dist/esm/list/DoctypeListScreen.native.js.map +1 -1
  301. package/dist/esm/list/ListBulkActionsBar.mjs +31 -19
  302. package/dist/esm/list/ListBulkActionsBar.mjs.map +1 -1
  303. package/dist/esm/list/ListBulkActionsBar.native.js +37 -25
  304. package/dist/esm/list/ListBulkActionsBar.native.js.map +1 -1
  305. package/dist/esm/list/ListFilterBar.native.js.map +1 -1
  306. package/dist/esm/list/ListSidebar.native.js.map +1 -1
  307. package/dist/esm/list/bulk-edit-dialog.native.js.map +1 -1
  308. package/dist/esm/list/bulk-export.native.js.map +1 -1
  309. package/dist/esm/list/bulk-submit-cancel.native.js.map +1 -1
  310. package/dist/esm/list/bulkActions.native.js.map +1 -1
  311. package/dist/esm/list/filter-chips.native.js.map +1 -1
  312. package/dist/esm/list/filter-editor.native.js.map +1 -1
  313. package/dist/esm/list/filter-fields.native.js.map +1 -1
  314. package/dist/esm/list/filter-saved.native.js.map +1 -1
  315. package/dist/esm/list/filter-sort.native.js.map +1 -1
  316. package/dist/esm/list/filter-standard.native.js.map +1 -1
  317. package/dist/esm/list/filterConversion.native.js.map +1 -1
  318. package/dist/esm/list/list-tools-sheet.native.js.map +1 -1
  319. package/dist/esm/list/listColumns.native.js.map +1 -1
  320. package/dist/esm/list/listFields.native.js.map +1 -1
  321. package/dist/esm/list/listFormat.native.js.map +1 -1
  322. package/dist/esm/list/listUrlState.native.js.map +1 -1
  323. package/dist/esm/list/sidebar-section.mjs +16 -8
  324. package/dist/esm/list/sidebar-section.mjs.map +1 -1
  325. package/dist/esm/list/sidebar-section.native.js +17 -8
  326. package/dist/esm/list/sidebar-section.native.js.map +1 -1
  327. package/dist/esm/list/sidebar-stats.native.js.map +1 -1
  328. package/dist/esm/list/statusColors.native.js.map +1 -1
  329. package/dist/esm/navigation/navigator.native.js.map +1 -1
  330. package/dist/esm/navigation/paths.native.js.map +1 -1
  331. package/dist/esm/oneAdapter/index.native.js.map +1 -1
  332. package/dist/esm/quickEntry/QuickEntryDialog.native.js.map +1 -1
  333. package/dist/esm/quickEntry/quickEntryPlan.native.js.map +1 -1
  334. package/dist/esm/report/DoctypeReportView.mjs +21 -375
  335. package/dist/esm/report/DoctypeReportView.mjs.map +1 -1
  336. package/dist/esm/report/DoctypeReportView.native.js +24 -456
  337. package/dist/esm/report/DoctypeReportView.native.js.map +1 -1
  338. package/dist/esm/report/QueryReportScreen.mjs +26 -16
  339. package/dist/esm/report/QueryReportScreen.mjs.map +1 -1
  340. package/dist/esm/report/QueryReportScreen.native.js +26 -16
  341. package/dist/esm/report/QueryReportScreen.native.js.map +1 -1
  342. package/dist/esm/report/queryReportColumns.mjs +1 -103
  343. package/dist/esm/report/queryReportColumns.mjs.map +1 -1
  344. package/dist/esm/report/queryReportColumns.native.js +1 -117
  345. package/dist/esm/report/queryReportColumns.native.js.map +1 -1
  346. package/dist/esm/report/queryReportFilterBar.mjs +1 -2
  347. package/dist/esm/report/queryReportFilterBar.mjs.map +1 -1
  348. package/dist/esm/report/queryReportFilterBar.native.js +1 -2
  349. package/dist/esm/report/queryReportFilterBar.native.js.map +1 -1
  350. package/dist/esm/report/queryReportUrlState.mjs +1 -1
  351. package/dist/esm/report/queryReportUrlState.native.js +1 -1
  352. package/dist/esm/report/queryReportUrlState.native.js.map +1 -1
  353. package/dist/esm/report/report-grid.mjs +1 -425
  354. package/dist/esm/report/report-grid.mjs.map +1 -1
  355. package/dist/esm/report/report-grid.native.js +1 -468
  356. package/dist/esm/report/report-grid.native.js.map +1 -1
  357. package/dist/esm/report/report-toolbar.mjs +2 -228
  358. package/dist/esm/report/report-toolbar.mjs.map +1 -1
  359. package/dist/esm/report/report-toolbar.native.js +2 -264
  360. package/dist/esm/report/report-toolbar.native.js.map +1 -1
  361. package/dist/esm/report/reportShapes.mjs +2 -373
  362. package/dist/esm/report/reportShapes.mjs.map +1 -1
  363. package/dist/esm/report/reportShapes.native.js +2 -491
  364. package/dist/esm/report/reportShapes.native.js.map +1 -1
  365. package/dist/esm/report/reportViewModel.mjs +2 -342
  366. package/dist/esm/report/reportViewModel.mjs.map +1 -1
  367. package/dist/esm/report/reportViewModel.native.js +2 -610
  368. package/dist/esm/report/reportViewModel.native.js.map +1 -1
  369. package/dist/esm/report/savedReports.mjs +1 -105
  370. package/dist/esm/report/savedReports.mjs.map +1 -1
  371. package/dist/esm/report/savedReports.native.js +1 -132
  372. package/dist/esm/report/savedReports.native.js.map +1 -1
  373. package/dist/esm/report/useQueryReport.mjs +2 -210
  374. package/dist/esm/report/useQueryReport.mjs.map +1 -1
  375. package/dist/esm/report/useQueryReport.native.js +2 -235
  376. package/dist/esm/report/useQueryReport.native.js.map +1 -1
  377. package/dist/esm/shared/deskLinks.native.js.map +1 -1
  378. package/dist/esm/shared/listNavContext.native.js.map +1 -1
  379. package/dist/esm/shared/measures.mjs +1 -3
  380. package/dist/esm/shared/measures.mjs.map +1 -1
  381. package/dist/esm/shared/measures.native.js +1 -3
  382. package/dist/esm/shared/measures.native.js.map +1 -1
  383. package/dist/esm/shared/types.native.js.map +1 -1
  384. package/dist/esm/shared/useDocinfo.native.js.map +1 -1
  385. package/dist/esm/shared/useDoctypeMeta.native.js.map +1 -1
  386. package/dist/esm/shared/useFrappeApp.native.js.map +1 -1
  387. package/dist/esm/shared/useRecentVisit.native.js.map +1 -1
  388. package/dist/esm/shared/useSessionUserId.native.js.map +1 -1
  389. package/dist/esm/shared/useSlugTarget.native.js.map +1 -1
  390. package/dist/esm/shared/useUserRoles.native.js.map +1 -1
  391. package/dist/esm/shell/BackofficeShell.native.js.map +1 -1
  392. package/dist/esm/shell/HomeRedirect.native.js.map +1 -1
  393. package/dist/esm/shell/NotFoundScreen.native.js.map +1 -1
  394. package/dist/esm/shell/SlugScreen.native.js.map +1 -1
  395. package/dist/esm/shell/WorkspaceSidebar.native.js.map +1 -1
  396. package/dist/esm/shell/useWorkspaces.native.js.map +1 -1
  397. package/dist/esm/shell/workspaceIcons.native.js.map +1 -1
  398. package/dist/esm/views/CalendarView.native.js.map +1 -1
  399. package/dist/esm/views/DashboardView.native.js.map +1 -1
  400. package/dist/esm/views/DoctypeViewScreen.native.js.map +1 -1
  401. package/dist/esm/views/ImageView.native.js.map +1 -1
  402. package/dist/esm/views/KanbanView.native.js.map +1 -1
  403. package/dist/esm/views/ReportView.mjs +3 -256
  404. package/dist/esm/views/ReportView.mjs.map +1 -1
  405. package/dist/esm/views/ReportView.native.js +3 -382
  406. package/dist/esm/views/ReportView.native.js.map +1 -1
  407. package/dist/esm/views/TreeView.native.js.map +1 -1
  408. package/dist/esm/views/ViewHeader.native.js.map +1 -1
  409. package/dist/esm/views/ViewStates.native.js.map +1 -1
  410. package/dist/esm/views/ViewSwitcherMenu.native.js.map +1 -1
  411. package/dist/esm/views/calendar-field-selector.native.js.map +1 -1
  412. package/dist/esm/views/connection.native.js.map +1 -1
  413. package/dist/esm/views/dashboard-data.native.js.map +1 -1
  414. package/dist/esm/views/deskViewConfigs.native.js.map +1 -1
  415. package/dist/esm/views/kanban-board-controls.native.js.map +1 -1
  416. package/dist/esm/views/kanban-field-picker.native.js.map +1 -1
  417. package/dist/esm/views/kanbanBoardOps.native.js.map +1 -1
  418. package/dist/esm/views/report-controls.mjs +3 -3
  419. package/dist/esm/views/report-controls.mjs.map +1 -1
  420. package/dist/esm/views/report-controls.native.js +3 -3
  421. package/dist/esm/views/report-controls.native.js.map +1 -1
  422. package/dist/esm/views/viewAvailability.native.js.map +1 -1
  423. package/dist/esm/views/viewMeta.native.js.map +1 -1
  424. package/dist/esm/workspace/WorkspaceChartBlock.native.js.map +1 -1
  425. package/dist/esm/workspace/WorkspaceGrid.native.js.map +1 -1
  426. package/dist/esm/workspace/WorkspaceLinkCard.native.js.map +1 -1
  427. package/dist/esm/workspace/WorkspaceLinkDirectory.native.js.map +1 -1
  428. package/dist/esm/workspace/WorkspaceNumberCard.native.js.map +1 -1
  429. package/dist/esm/workspace/WorkspaceQuickList.native.js.map +1 -1
  430. package/dist/esm/workspace/WorkspaceRecents.native.js.map +1 -1
  431. package/dist/esm/workspace/WorkspaceScreen.native.js.map +1 -1
  432. package/dist/esm/workspace/WorkspaceShortcut.native.js.map +1 -1
  433. package/dist/esm/workspace/parseContent.native.js.map +1 -1
  434. package/dist/esm/workspace/types.native.js.map +1 -1
  435. package/dist/esm/workspace/useDashboardChart.native.js.map +1 -1
  436. package/dist/esm/workspace/useWorkspaceDoc.native.js.map +1 -1
  437. package/dist/jsx/chrome/BackofficeAwesomebar.native.js +1 -1
  438. package/dist/jsx/chrome/BackofficeAwesomebar.native.js.map +1 -1
  439. package/dist/jsx/chrome/CommandPalette.native.js +1 -1
  440. package/dist/jsx/chrome/CommandPalette.native.js.map +1 -1
  441. package/dist/jsx/chrome/HelpMenu.native.js +1 -1
  442. package/dist/jsx/chrome/HelpMenu.native.js.map +1 -1
  443. package/dist/jsx/chrome/NotificationsButton.native.js +1 -1
  444. package/dist/jsx/chrome/NotificationsButton.native.js.map +1 -1
  445. package/dist/jsx/chrome/UserMenu.native.js +1 -1
  446. package/dist/jsx/chrome/UserMenu.native.js.map +1 -1
  447. package/dist/jsx/chrome/awesomebar-data.native.js.map +1 -1
  448. package/dist/jsx/chrome/command-palette-model.native.js +1 -1
  449. package/dist/jsx/chrome/command-palette-model.native.js.map +1 -1
  450. package/dist/jsx/chrome/help-about-dialog.native.js +1 -1
  451. package/dist/jsx/chrome/help-about-dialog.native.js.map +1 -1
  452. package/dist/jsx/chrome/help-shortcuts-dialog.native.js +1 -1
  453. package/dist/jsx/chrome/help-shortcuts-dialog.native.js.map +1 -1
  454. package/dist/jsx/chrome/notifications-data.native.js.map +1 -1
  455. package/dist/jsx/chrome/notifications-panel.native.js +1 -1
  456. package/dist/jsx/chrome/notifications-panel.native.js.map +1 -1
  457. package/dist/jsx/chrome/notifications-utils.native.js.map +1 -1
  458. package/dist/jsx/chrome/shortcuts.native.js.map +1 -1
  459. package/dist/jsx/chrome/user-session.native.js.map +1 -1
  460. package/dist/jsx/config/BackofficeProvider.native.js +1 -1
  461. package/dist/jsx/config/BackofficeProvider.native.js.map +1 -1
  462. package/dist/jsx/config/capabilities.native.js.map +1 -1
  463. package/dist/jsx/config/events.native.js.map +1 -1
  464. package/dist/jsx/config/slots.native.js.map +1 -1
  465. package/dist/jsx/desk/Desk.native.js.map +1 -1
  466. package/dist/jsx/desk/DeskSurface.mjs.map +1 -1
  467. package/dist/jsx/desk/DeskSurface.native.js.map +1 -1
  468. package/dist/jsx/desk/resolveDeskPath.native.js.map +1 -1
  469. package/dist/jsx/desk/scope.native.js.map +1 -1
  470. package/dist/jsx/desk/target.native.js.map +1 -1
  471. package/dist/jsx/form/DocFormScreen.mjs +169 -226
  472. package/dist/jsx/form/DocFormScreen.mjs.map +1 -1
  473. package/dist/jsx/form/DocFormScreen.native.js +183 -260
  474. package/dist/jsx/form/DocFormScreen.native.js.map +1 -1
  475. package/dist/jsx/form/FormConnections.native.js +1 -1
  476. package/dist/jsx/form/FormConnections.native.js.map +1 -1
  477. package/dist/jsx/form/FormDialogs.native.js +1 -1
  478. package/dist/jsx/form/FormDialogs.native.js.map +1 -1
  479. package/dist/jsx/form/FormErrorBoundary.native.js +1 -1
  480. package/dist/jsx/form/FormErrorBoundary.native.js.map +1 -1
  481. package/dist/jsx/form/FormHeaderCluster.native.js +1 -1
  482. package/dist/jsx/form/FormHeaderCluster.native.js.map +1 -1
  483. package/dist/jsx/form/FormSidebarPanel.native.js +1 -1
  484. package/dist/jsx/form/FormSidebarPanel.native.js.map +1 -1
  485. package/dist/jsx/form/FormTimeline.native.js +1 -1
  486. package/dist/jsx/form/FormTimeline.native.js.map +1 -1
  487. package/dist/jsx/form/FormToolbar.native.js +1 -1
  488. package/dist/jsx/form/FormToolbar.native.js.map +1 -1
  489. package/dist/jsx/form/connections-data.native.js.map +1 -1
  490. package/dist/jsx/form/createPrefill.native.js.map +1 -1
  491. package/dist/jsx/form/dependsOn.native.js.map +1 -1
  492. package/dist/jsx/form/dirtyTracking.native.js.map +1 -1
  493. package/dist/jsx/form/docinfo.native.js.map +1 -1
  494. package/dist/jsx/form/fetchFrom.native.js.map +1 -1
  495. package/dist/jsx/form/fieldPermissions.native.js.map +1 -1
  496. package/dist/jsx/form/formActions.native.js.map +1 -1
  497. package/dist/jsx/form/formLayout.native.js.map +1 -1
  498. package/dist/jsx/form/platformHooks.native.js.map +1 -1
  499. package/dist/jsx/form/sidebar-attachments.native.js +1 -1
  500. package/dist/jsx/form/sidebar-attachments.native.js.map +1 -1
  501. package/dist/jsx/form/sidebar-dialogs.native.js +1 -1
  502. package/dist/jsx/form/sidebar-dialogs.native.js.map +1 -1
  503. package/dist/jsx/form/sidebar-people.native.js +1 -1
  504. package/dist/jsx/form/sidebar-people.native.js.map +1 -1
  505. package/dist/jsx/form/sidebar-rpc.native.js.map +1 -1
  506. package/dist/jsx/form/sidebar-utils.native.js.map +1 -1
  507. package/dist/jsx/form/timeline-entries.native.js.map +1 -1
  508. package/dist/jsx/form/timeline-utils.native.js.map +1 -1
  509. package/dist/jsx/form/useFormEngine.native.js.map +1 -1
  510. package/dist/jsx/i18n/en.mjs +1 -0
  511. package/dist/jsx/i18n/en.mjs.map +1 -1
  512. package/dist/jsx/i18n/en.native.js +1 -0
  513. package/dist/jsx/i18n/en.native.js.map +1 -1
  514. package/dist/jsx/i18n/index.native.js.map +1 -1
  515. package/dist/jsx/index.native.js +1 -1
  516. package/dist/jsx/index.native.js.map +1 -1
  517. package/dist/jsx/list/AddTagsDialog.native.js +1 -1
  518. package/dist/jsx/list/AddTagsDialog.native.js.map +1 -1
  519. package/dist/jsx/list/AssignToDialog.native.js +1 -1
  520. package/dist/jsx/list/AssignToDialog.native.js.map +1 -1
  521. package/dist/jsx/list/DoctypeListScreen.native.js +1 -1
  522. package/dist/jsx/list/DoctypeListScreen.native.js.map +1 -1
  523. package/dist/jsx/list/ListBulkActionsBar.mjs +31 -19
  524. package/dist/jsx/list/ListBulkActionsBar.mjs.map +1 -1
  525. package/dist/jsx/list/ListBulkActionsBar.native.js +44 -32
  526. package/dist/jsx/list/ListBulkActionsBar.native.js.map +1 -1
  527. package/dist/jsx/list/ListFilterBar.native.js +1 -1
  528. package/dist/jsx/list/ListFilterBar.native.js.map +1 -1
  529. package/dist/jsx/list/ListSidebar.native.js +1 -1
  530. package/dist/jsx/list/ListSidebar.native.js.map +1 -1
  531. package/dist/jsx/list/bulk-edit-dialog.native.js +1 -1
  532. package/dist/jsx/list/bulk-edit-dialog.native.js.map +1 -1
  533. package/dist/jsx/list/bulk-export.native.js.map +1 -1
  534. package/dist/jsx/list/bulk-submit-cancel.native.js.map +1 -1
  535. package/dist/jsx/list/bulkActions.native.js.map +1 -1
  536. package/dist/jsx/list/filter-chips.native.js +1 -1
  537. package/dist/jsx/list/filter-chips.native.js.map +1 -1
  538. package/dist/jsx/list/filter-editor.native.js +1 -1
  539. package/dist/jsx/list/filter-editor.native.js.map +1 -1
  540. package/dist/jsx/list/filter-fields.native.js.map +1 -1
  541. package/dist/jsx/list/filter-saved.native.js +1 -1
  542. package/dist/jsx/list/filter-saved.native.js.map +1 -1
  543. package/dist/jsx/list/filter-sort.native.js +1 -1
  544. package/dist/jsx/list/filter-sort.native.js.map +1 -1
  545. package/dist/jsx/list/filter-standard.native.js.map +1 -1
  546. package/dist/jsx/list/filterConversion.native.js.map +1 -1
  547. package/dist/jsx/list/list-tools-sheet.native.js +1 -1
  548. package/dist/jsx/list/list-tools-sheet.native.js.map +1 -1
  549. package/dist/jsx/list/listColumns.native.js.map +1 -1
  550. package/dist/jsx/list/listFields.native.js.map +1 -1
  551. package/dist/jsx/list/listFormat.native.js.map +1 -1
  552. package/dist/jsx/list/listUrlState.native.js.map +1 -1
  553. package/dist/jsx/list/sidebar-section.mjs +16 -8
  554. package/dist/jsx/list/sidebar-section.mjs.map +1 -1
  555. package/dist/jsx/list/sidebar-section.native.js +17 -8
  556. package/dist/jsx/list/sidebar-section.native.js.map +1 -1
  557. package/dist/jsx/list/sidebar-stats.native.js.map +1 -1
  558. package/dist/jsx/list/statusColors.native.js.map +1 -1
  559. package/dist/jsx/navigation/navigator.native.js.map +1 -1
  560. package/dist/jsx/navigation/paths.native.js.map +1 -1
  561. package/dist/jsx/oneAdapter/index.native.js.map +1 -1
  562. package/dist/jsx/quickEntry/QuickEntryDialog.native.js +1 -1
  563. package/dist/jsx/quickEntry/QuickEntryDialog.native.js.map +1 -1
  564. package/dist/jsx/quickEntry/quickEntryPlan.native.js.map +1 -1
  565. package/dist/jsx/report/DoctypeReportView.mjs +21 -375
  566. package/dist/jsx/report/DoctypeReportView.mjs.map +1 -1
  567. package/dist/jsx/report/DoctypeReportView.native.js +23 -455
  568. package/dist/jsx/report/DoctypeReportView.native.js.map +1 -1
  569. package/dist/jsx/report/QueryReportScreen.mjs +26 -16
  570. package/dist/jsx/report/QueryReportScreen.mjs.map +1 -1
  571. package/dist/jsx/report/QueryReportScreen.native.js +34 -24
  572. package/dist/jsx/report/QueryReportScreen.native.js.map +1 -1
  573. package/dist/jsx/report/queryReportColumns.mjs +1 -103
  574. package/dist/jsx/report/queryReportColumns.mjs.map +1 -1
  575. package/dist/jsx/report/queryReportColumns.native.js +2 -129
  576. package/dist/jsx/report/queryReportColumns.native.js.map +1 -1
  577. package/dist/jsx/report/queryReportFilterBar.mjs +1 -2
  578. package/dist/jsx/report/queryReportFilterBar.mjs.map +1 -1
  579. package/dist/jsx/report/queryReportFilterBar.native.js +4 -5
  580. package/dist/jsx/report/queryReportFilterBar.native.js.map +1 -1
  581. package/dist/jsx/report/queryReportUrlState.mjs +1 -1
  582. package/dist/jsx/report/queryReportUrlState.native.js +2 -2
  583. package/dist/jsx/report/queryReportUrlState.native.js.map +1 -1
  584. package/dist/jsx/report/report-grid.mjs +1 -425
  585. package/dist/jsx/report/report-grid.mjs.map +1 -1
  586. package/dist/jsx/report/report-grid.native.js +1 -479
  587. package/dist/jsx/report/report-grid.native.js.map +1 -1
  588. package/dist/jsx/report/report-toolbar.mjs +2 -228
  589. package/dist/jsx/report/report-toolbar.mjs.map +1 -1
  590. package/dist/jsx/report/report-toolbar.native.js +1 -274
  591. package/dist/jsx/report/report-toolbar.native.js.map +1 -1
  592. package/dist/jsx/report/reportShapes.mjs +2 -373
  593. package/dist/jsx/report/reportShapes.mjs.map +1 -1
  594. package/dist/jsx/report/reportShapes.native.js +12 -501
  595. package/dist/jsx/report/reportShapes.native.js.map +1 -1
  596. package/dist/jsx/report/reportViewModel.mjs +2 -342
  597. package/dist/jsx/report/reportViewModel.mjs.map +1 -1
  598. package/dist/jsx/report/reportViewModel.native.js +19 -627
  599. package/dist/jsx/report/reportViewModel.native.js.map +1 -1
  600. package/dist/jsx/report/savedReports.mjs +1 -105
  601. package/dist/jsx/report/savedReports.mjs.map +1 -1
  602. package/dist/jsx/report/savedReports.native.js +1 -132
  603. package/dist/jsx/report/savedReports.native.js.map +1 -1
  604. package/dist/jsx/report/useQueryReport.mjs +2 -210
  605. package/dist/jsx/report/useQueryReport.mjs.map +1 -1
  606. package/dist/jsx/report/useQueryReport.native.js +11 -244
  607. package/dist/jsx/report/useQueryReport.native.js.map +1 -1
  608. package/dist/jsx/shared/deskLinks.native.js.map +1 -1
  609. package/dist/jsx/shared/listNavContext.native.js.map +1 -1
  610. package/dist/jsx/shared/measures.mjs +1 -3
  611. package/dist/jsx/shared/measures.mjs.map +1 -1
  612. package/dist/jsx/shared/measures.native.js +3 -5
  613. package/dist/jsx/shared/measures.native.js.map +1 -1
  614. package/dist/jsx/shared/types.native.js.map +1 -1
  615. package/dist/jsx/shared/useDocinfo.native.js.map +1 -1
  616. package/dist/jsx/shared/useDoctypeMeta.native.js.map +1 -1
  617. package/dist/jsx/shared/useFrappeApp.native.js.map +1 -1
  618. package/dist/jsx/shared/useRecentVisit.native.js.map +1 -1
  619. package/dist/jsx/shared/useSessionUserId.native.js.map +1 -1
  620. package/dist/jsx/shared/useSlugTarget.native.js.map +1 -1
  621. package/dist/jsx/shared/useUserRoles.native.js.map +1 -1
  622. package/dist/jsx/shell/BackofficeShell.native.js +1 -1
  623. package/dist/jsx/shell/BackofficeShell.native.js.map +1 -1
  624. package/dist/jsx/shell/HomeRedirect.native.js +1 -1
  625. package/dist/jsx/shell/HomeRedirect.native.js.map +1 -1
  626. package/dist/jsx/shell/NotFoundScreen.native.js +1 -1
  627. package/dist/jsx/shell/NotFoundScreen.native.js.map +1 -1
  628. package/dist/jsx/shell/SlugScreen.native.js +1 -1
  629. package/dist/jsx/shell/SlugScreen.native.js.map +1 -1
  630. package/dist/jsx/shell/WorkspaceSidebar.native.js +1 -1
  631. package/dist/jsx/shell/WorkspaceSidebar.native.js.map +1 -1
  632. package/dist/jsx/shell/useWorkspaces.native.js.map +1 -1
  633. package/dist/jsx/shell/workspaceIcons.native.js.map +1 -1
  634. package/dist/jsx/views/CalendarView.native.js +1 -1
  635. package/dist/jsx/views/CalendarView.native.js.map +1 -1
  636. package/dist/jsx/views/DashboardView.native.js +1 -1
  637. package/dist/jsx/views/DashboardView.native.js.map +1 -1
  638. package/dist/jsx/views/DoctypeViewScreen.native.js.map +1 -1
  639. package/dist/jsx/views/ImageView.native.js +1 -1
  640. package/dist/jsx/views/ImageView.native.js.map +1 -1
  641. package/dist/jsx/views/KanbanView.native.js +1 -1
  642. package/dist/jsx/views/KanbanView.native.js.map +1 -1
  643. package/dist/jsx/views/ReportView.mjs +3 -256
  644. package/dist/jsx/views/ReportView.mjs.map +1 -1
  645. package/dist/jsx/views/ReportView.native.js +3 -382
  646. package/dist/jsx/views/ReportView.native.js.map +1 -1
  647. package/dist/jsx/views/TreeView.native.js +1 -1
  648. package/dist/jsx/views/TreeView.native.js.map +1 -1
  649. package/dist/jsx/views/ViewHeader.native.js +1 -1
  650. package/dist/jsx/views/ViewHeader.native.js.map +1 -1
  651. package/dist/jsx/views/ViewStates.native.js +1 -1
  652. package/dist/jsx/views/ViewStates.native.js.map +1 -1
  653. package/dist/jsx/views/ViewSwitcherMenu.native.js +1 -1
  654. package/dist/jsx/views/ViewSwitcherMenu.native.js.map +1 -1
  655. package/dist/jsx/views/calendar-field-selector.native.js +1 -1
  656. package/dist/jsx/views/calendar-field-selector.native.js.map +1 -1
  657. package/dist/jsx/views/connection.native.js.map +1 -1
  658. package/dist/jsx/views/dashboard-data.native.js.map +1 -1
  659. package/dist/jsx/views/deskViewConfigs.native.js.map +1 -1
  660. package/dist/jsx/views/kanban-board-controls.native.js +1 -1
  661. package/dist/jsx/views/kanban-board-controls.native.js.map +1 -1
  662. package/dist/jsx/views/kanban-field-picker.native.js +1 -1
  663. package/dist/jsx/views/kanban-field-picker.native.js.map +1 -1
  664. package/dist/jsx/views/kanbanBoardOps.native.js.map +1 -1
  665. package/dist/jsx/views/report-controls.mjs +3 -3
  666. package/dist/jsx/views/report-controls.mjs.map +1 -1
  667. package/dist/jsx/views/report-controls.native.js +7 -7
  668. package/dist/jsx/views/report-controls.native.js.map +1 -1
  669. package/dist/jsx/views/viewAvailability.native.js.map +1 -1
  670. package/dist/jsx/views/viewMeta.native.js.map +1 -1
  671. package/dist/jsx/workspace/WorkspaceChartBlock.native.js +1 -1
  672. package/dist/jsx/workspace/WorkspaceChartBlock.native.js.map +1 -1
  673. package/dist/jsx/workspace/WorkspaceGrid.native.js.map +1 -1
  674. package/dist/jsx/workspace/WorkspaceLinkCard.native.js +1 -1
  675. package/dist/jsx/workspace/WorkspaceLinkCard.native.js.map +1 -1
  676. package/dist/jsx/workspace/WorkspaceLinkDirectory.native.js +1 -1
  677. package/dist/jsx/workspace/WorkspaceLinkDirectory.native.js.map +1 -1
  678. package/dist/jsx/workspace/WorkspaceNumberCard.native.js +1 -1
  679. package/dist/jsx/workspace/WorkspaceNumberCard.native.js.map +1 -1
  680. package/dist/jsx/workspace/WorkspaceQuickList.native.js +1 -1
  681. package/dist/jsx/workspace/WorkspaceQuickList.native.js.map +1 -1
  682. package/dist/jsx/workspace/WorkspaceRecents.native.js +1 -1
  683. package/dist/jsx/workspace/WorkspaceRecents.native.js.map +1 -1
  684. package/dist/jsx/workspace/WorkspaceScreen.native.js +1 -1
  685. package/dist/jsx/workspace/WorkspaceScreen.native.js.map +1 -1
  686. package/dist/jsx/workspace/WorkspaceShortcut.native.js +1 -1
  687. package/dist/jsx/workspace/WorkspaceShortcut.native.js.map +1 -1
  688. package/dist/jsx/workspace/parseContent.native.js.map +1 -1
  689. package/dist/jsx/workspace/types.native.js.map +1 -1
  690. package/dist/jsx/workspace/useDashboardChart.native.js.map +1 -1
  691. package/dist/jsx/workspace/useWorkspaceDoc.native.js.map +1 -1
  692. package/package.json +12 -12
  693. package/src/backofficeScreens.designLaw.spec.ts +0 -5
  694. package/src/desk/DeskSurface.tsx +4 -7
  695. package/src/form/DocFormScreen.chrome.spec.ts +77 -0
  696. package/src/form/DocFormScreen.guest.screen.spec.tsx +175 -0
  697. package/src/form/DocFormScreen.rights.spec.tsx +7 -3
  698. package/src/form/DocFormScreen.tsx +214 -315
  699. package/src/i18n/en.ts +1 -0
  700. package/src/list/ListBulkActionsBar.rights.spec.tsx +134 -0
  701. package/src/list/ListBulkActionsBar.screen.spec.tsx +7 -1
  702. package/src/list/ListBulkActionsBar.tsx +76 -57
  703. package/src/list/ListFilterBar.screen.spec.tsx +14 -13
  704. package/src/list/sidebar-section.tsx +11 -3
  705. package/src/report/DoctypeReportView.tsx +28 -550
  706. package/src/report/QueryReportScreen.spec.tsx +75 -1
  707. package/src/report/QueryReportScreen.tsx +38 -22
  708. package/src/report/queryReportColumns.tsx +4 -123
  709. package/src/report/queryReportFilterBar.tsx +3 -5
  710. package/src/report/queryReportUrlState.ts +1 -1
  711. package/src/report/report-grid.tsx +4 -529
  712. package/src/report/report-toolbar.tsx +4 -308
  713. package/src/report/reportShapes.ts +25 -613
  714. package/src/report/reportShim.spec.ts +162 -0
  715. package/src/report/reportViewModel.ts +32 -605
  716. package/src/report/savedReports.ts +4 -161
  717. package/src/report/useQueryReport.ts +9 -347
  718. package/src/shared/measures.ts +3 -11
  719. package/src/views/ReportView.screen.spec.tsx +25 -20
  720. package/src/views/ReportView.tsx +7 -439
  721. package/src/views/report-controls.tsx +12 -20
  722. package/types/desk/DeskSurface.d.ts.map +1 -1
  723. package/types/form/DocFormScreen.d.ts +2 -2
  724. package/types/form/DocFormScreen.d.ts.map +1 -1
  725. package/types/i18n/en.d.ts +1 -0
  726. package/types/i18n/en.d.ts.map +1 -1
  727. package/types/list/ListBulkActionsBar.d.ts.map +1 -1
  728. package/types/list/sidebar-section.d.ts.map +1 -1
  729. package/types/report/DoctypeReportView.d.ts.map +1 -1
  730. package/types/report/QueryReportScreen.d.ts +1 -1
  731. package/types/report/QueryReportScreen.d.ts.map +1 -1
  732. package/types/report/queryReportColumns.d.ts +2 -11
  733. package/types/report/queryReportColumns.d.ts.map +1 -1
  734. package/types/report/queryReportFilterBar.d.ts +1 -1
  735. package/types/report/queryReportFilterBar.d.ts.map +1 -1
  736. package/types/report/queryReportUrlState.d.ts +1 -1
  737. package/types/report/queryReportUrlState.d.ts.map +1 -1
  738. package/types/report/report-grid.d.ts +2 -19
  739. package/types/report/report-grid.d.ts.map +1 -1
  740. package/types/report/report-toolbar.d.ts +2 -29
  741. package/types/report/report-toolbar.d.ts.map +1 -1
  742. package/types/report/reportShapes.d.ts +2 -115
  743. package/types/report/reportShapes.d.ts.map +1 -1
  744. package/types/report/reportViewModel.d.ts +2 -135
  745. package/types/report/reportViewModel.d.ts.map +1 -1
  746. package/types/report/savedReports.d.ts +2 -18
  747. package/types/report/savedReports.d.ts.map +1 -1
  748. package/types/report/useQueryReport.d.ts +2 -35
  749. package/types/report/useQueryReport.d.ts.map +1 -1
  750. package/types/shared/measures.d.ts +1 -2
  751. package/types/shared/measures.d.ts.map +1 -1
  752. package/types/views/ReportView.d.ts +3 -22
  753. package/types/views/ReportView.d.ts.map +1 -1
  754. package/types/views/report-controls.d.ts +2 -5
  755. package/types/views/report-controls.d.ts.map +1 -1
  756. package/src/report/report-grid.spec.tsx +0 -175
  757. package/src/report/report-toolbar.spec.tsx +0 -90
  758. package/src/report/reportShapes.spec.ts +0 -391
  759. package/src/report/reportViewModel.spec.ts +0 -393
@@ -1 +1 @@
1
- {"version":3,"names":["fieldKind","selectOptionsFromField","_type_of","obj","Symbol","constructor","VALUELESS_FIELDTYPES","Set","REPORT_NUMERIC_FIELDTYPES","WIDE_FIELDTYPES","REPORT_PAGE_SIZES","DEFAULT_REPORT_PAGE_SIZE","defaultColumnWidth","fieldtype","has","columnAlign","toColumnDef","field","String","fieldname","label","kind","options","width","align","standardReportColumns","reportColumnsFromMeta","meta","_ref","out","seen","push","push2","column","add","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","fields","iterator","_step","next","done","value","startsWith","err","return","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","standard","defaultReportFieldnames","pickable","pickable2","field2","report_hide","status","find","title_field","image_field","flagged","filter","in_list_view","in_standard_filter","field1","includes","split","resolveSelectedColumns","all","fieldnames","byName","Map","map","column2","get","COMPARISON_PREFIXES","CHECK_TRUE","CHECK_FALSE","columnFilterTuple","raw","text","trim","lowered","toLowerCase","match","option","prefix","slice","length","columnFilterTuples","columns","filters","tuple","parseReportFiltersParam","candidates","decoded","decodeURIComponent","unused","candidate","parsed","JSON","parse","Array","isArray","BACKTICK_FIELD_RE","toDeskFieldExpr","doctype","parseDeskOrderBy","orderBy","expr","direction","backticked","replace","order","toDeskReportSettings","config","_config_sort","_config_pageSize","sort","param","operator","order_by","add_totals_row","addTotals","page_length","pageSize","column_widths","group_by","groupBy","aggregate_function","aggregate_on","fromDeskReportSettings","json","entry","fieldDoctype","entry1","filterDoctype","groupByRaw","groupByExpr","groupByMatch","isNullish","compareCellValues","a","b","left","right","orderReportRows","rows","sorted","grouped","ordered","name","buildGridRows","orderedRows","pageStart","page","previousGroup","counts","row","_row_groupBy","_counts_get","groupKey","set","forEach","row2","index","_row_groupBy2","groupKey2","_counts_get2","key","count","computeTotals","reduce","sum","Number","escapeCsvCell","test","buildReportCsv","lines","join"],"sources":["reportViewModel.native.js"],"sourcesContent":["import { fieldKind, selectOptionsFromField } from \"@multiplatform.one/frappe-ui\";\nfunction _type_of(obj) {\n \"@swc/helpers - typeof\";\n return obj && typeof Symbol !== \"undefined\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n}\nvar VALUELESS_FIELDTYPES = /* @__PURE__ */ new Set([\n \"Section Break\",\n \"Column Break\",\n \"Tab Break\",\n \"HTML\",\n \"Table\",\n \"Table MultiSelect\",\n \"Button\",\n \"Image\",\n \"Fold\",\n \"Heading\"\n]);\nvar REPORT_NUMERIC_FIELDTYPES = /* @__PURE__ */ new Set([\n \"Int\",\n \"Float\",\n \"Currency\",\n \"Percent\",\n \"Rating\",\n \"Duration\"\n]);\nvar WIDE_FIELDTYPES = /* @__PURE__ */ new Set([\n \"Small Text\",\n \"Text\",\n \"Long Text\",\n \"Text Editor\",\n \"Markdown Editor\",\n \"Code\",\n \"JSON\"\n]);\nvar REPORT_PAGE_SIZES = [\n 20,\n 100,\n 500\n];\nvar DEFAULT_REPORT_PAGE_SIZE = REPORT_PAGE_SIZES[0];\nfunction defaultColumnWidth(fieldtype) {\n if (fieldtype === \"Check\") return 90;\n if (REPORT_NUMERIC_FIELDTYPES.has(fieldtype)) return 110;\n if (fieldtype === \"Date\") return 120;\n if (fieldtype === \"Datetime\") return 165;\n if (WIDE_FIELDTYPES.has(fieldtype)) return 240;\n return 160;\n}\nfunction columnAlign(fieldtype) {\n if (fieldtype === \"Check\") return \"center\";\n return REPORT_NUMERIC_FIELDTYPES.has(fieldtype) ? \"right\" : \"left\";\n}\nfunction toColumnDef(field) {\n var fieldtype = String(field.fieldtype);\n return {\n fieldname: field.fieldname,\n label: field.label || field.fieldname,\n fieldtype,\n kind: fieldKind(fieldtype),\n options: field.options,\n width: defaultColumnWidth(fieldtype),\n align: columnAlign(fieldtype)\n };\n}\nfunction standardReportColumns() {\n return [\n {\n fieldname: \"name\",\n label: \"ID\",\n fieldtype: \"Data\",\n kind: \"text\",\n width: 160,\n align: \"left\"\n },\n {\n fieldname: \"owner\",\n label: \"Created By\",\n fieldtype: \"Link\",\n kind: \"link\",\n options: \"User\",\n width: 160,\n align: \"left\"\n },\n {\n fieldname: \"creation\",\n label: \"Created On\",\n fieldtype: \"Datetime\",\n kind: \"date\",\n width: 165,\n align: \"left\"\n },\n {\n fieldname: \"modified\",\n label: \"Last Updated On\",\n fieldtype: \"Datetime\",\n kind: \"date\",\n width: 165,\n align: \"left\"\n },\n {\n fieldname: \"modified_by\",\n label: \"Last Updated By\",\n fieldtype: \"Link\",\n kind: \"link\",\n options: \"User\",\n width: 160,\n align: \"left\"\n }\n ];\n}\nfunction reportColumnsFromMeta(meta) {\n var _ref;\n var out = [];\n var seen = /* @__PURE__ */ new Set();\n var push = function push2(column) {\n if (!column.fieldname || seen.has(column.fieldname)) return;\n seen.add(column.fieldname);\n out.push(column);\n };\n push(standardReportColumns()[0]);\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = ((_ref = meta === null || meta === void 0 ? void 0 : meta.fields) !== null && _ref !== void 0 ? _ref : [])[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var field = _step.value;\n var fieldtype = String(field.fieldtype);\n if (VALUELESS_FIELDTYPES.has(fieldtype) || fieldtype.startsWith(\"Table\")) continue;\n push(toColumnDef(field));\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = standardReportColumns()[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var standard = _step1.value;\n push(standard);\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n return out;\n}\nfunction defaultReportFieldnames(meta) {\n var _ref;\n var out = [];\n var seen = /* @__PURE__ */ new Set();\n var push = function push2(fieldname) {\n if (!fieldname || seen.has(fieldname)) return;\n seen.add(fieldname);\n out.push(fieldname);\n };\n var pickable = function pickable2(field2) {\n var fieldtype = String(field2.fieldtype);\n return !VALUELESS_FIELDTYPES.has(fieldtype) && !fieldtype.startsWith(\"Table\") && field2.report_hide !== 1;\n };\n var fields = (_ref = meta === null || meta === void 0 ? void 0 : meta.fields) !== null && _ref !== void 0 ? _ref : [];\n push(\"name\");\n var status = fields.find(function(field2) {\n return field2.fieldname === \"status\";\n });\n if (status && pickable(status)) push(\"status\");\n push(meta === null || meta === void 0 ? void 0 : meta.title_field);\n push(meta === null || meta === void 0 ? void 0 : meta.image_field);\n var flagged = fields.filter(function(field2) {\n return pickable(field2) && (field2.in_list_view === 1 || field2.in_standard_filter === 1);\n });\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = flagged[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var field = _step.value;\n push(field.fieldname);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = flagged[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var field1 = _step1.value;\n if (String(field1.fieldtype) !== \"Currency\" || !field1.options) continue;\n push(field1.options.includes(\":\") ? field1.options.split(\":\")[1] : field1.options);\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n push(\"modified\");\n return out;\n}\nfunction resolveSelectedColumns(all, fieldnames) {\n var byName = new Map(all.map(function(column2) {\n return [\n column2.fieldname,\n column2\n ];\n }));\n var out = [];\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = fieldnames[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var fieldname = _step.value;\n var column = byName.get(fieldname);\n if (column) out.push(column);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return out;\n}\nvar COMPARISON_PREFIXES = [\n \">=\",\n \"<=\",\n \"!=\",\n \">\",\n \"<\",\n \"=\"\n];\nvar CHECK_TRUE = /* @__PURE__ */ new Set([\n \"1\",\n \"true\",\n \"yes\",\n \"y\",\n \"\\u2713\"\n]);\nvar CHECK_FALSE = /* @__PURE__ */ new Set([\n \"0\",\n \"false\",\n \"no\",\n \"n\"\n]);\nfunction columnFilterTuple(column, raw) {\n var text = raw.trim();\n if (!text) return null;\n switch (column.kind) {\n case \"check\": {\n var lowered = text.toLowerCase();\n if (CHECK_TRUE.has(lowered)) return [\n column.fieldname,\n \"=\",\n 1\n ];\n if (CHECK_FALSE.has(lowered)) return [\n column.fieldname,\n \"=\",\n 0\n ];\n return null;\n }\n case \"select\": {\n var match = selectOptionsFromField(column.options).find(function(option) {\n return option.value.toLowerCase() === text.toLowerCase();\n });\n if (match) return [\n column.fieldname,\n \"=\",\n match.value\n ];\n return [\n column.fieldname,\n \"like\",\n text.includes(\"%\") ? text : `%${text}%`\n ];\n }\n case \"number\":\n case \"date\": {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = COMPARISON_PREFIXES[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var prefix = _step.value;\n if (text.startsWith(prefix)) {\n var value = text.slice(prefix.length).trim();\n return value ? [\n column.fieldname,\n prefix,\n value\n ] : null;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return [\n column.fieldname,\n \"=\",\n text\n ];\n }\n default:\n return [\n column.fieldname,\n \"like\",\n text.includes(\"%\") ? text : `%${text}%`\n ];\n }\n}\nfunction columnFilterTuples(columns, filters) {\n var out = [];\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = columns[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var column = _step.value;\n var raw = filters[column.fieldname];\n if (raw === void 0) continue;\n var tuple = columnFilterTuple(column, raw);\n if (tuple) out.push(tuple);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return out;\n}\nfunction parseReportFiltersParam(raw) {\n if (typeof raw !== \"string\" || !raw) return void 0;\n var candidates = [\n raw\n ];\n try {\n var decoded = decodeURIComponent(raw);\n if (decoded !== raw) candidates.push(decoded);\n } catch (unused) {\n }\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = candidates[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var candidate = _step.value;\n try {\n var parsed = JSON.parse(candidate);\n if (!Array.isArray(parsed)) continue;\n var filters = [];\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = parsed[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var tuple = _step1.value;\n if (Array.isArray(tuple) && tuple.length === 3 && typeof tuple[0] === \"string\" && typeof tuple[1] === \"string\") {\n filters.push([\n tuple[0],\n tuple[1],\n tuple[2]\n ]);\n }\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n if (filters.length > 0) return filters;\n } catch (unused) {\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return void 0;\n}\nvar BACKTICK_FIELD_RE = /`tab([^`]+)`\\.`([^`]+)`/;\nfunction toDeskFieldExpr(doctype, fieldname) {\n return `\\`tab${doctype}\\`.\\`${fieldname}\\``;\n}\nfunction parseDeskOrderBy(orderBy) {\n if (typeof orderBy !== \"string\" || !orderBy.trim()) return void 0;\n var [expr, direction] = orderBy.trim().split(/\\s+/);\n var backticked = expr.match(BACKTICK_FIELD_RE);\n var field = backticked ? backticked[2] : expr.replace(/`/g, \"\");\n if (!field) return void 0;\n return {\n field,\n order: (direction === null || direction === void 0 ? void 0 : direction.toLowerCase()) === \"asc\" ? \"asc\" : \"desc\"\n };\n}\nfunction toDeskReportSettings(doctype, config) {\n var _config_sort, _config_pageSize;\n var sort = (_config_sort = config.sort) !== null && _config_sort !== void 0 ? _config_sort : {\n field: \"modified\",\n order: \"desc\"\n };\n return {\n fields: config.fieldnames.map(function(fieldname) {\n return [\n fieldname,\n doctype\n ];\n }),\n filters: config.filters.map(function(param) {\n var [fieldname, operator, value] = param;\n return [\n doctype,\n fieldname,\n operator,\n value\n ];\n }),\n order_by: `${toDeskFieldExpr(doctype, sort.field)} ${sort.order}`,\n add_totals_row: config.addTotals ? 1 : 0,\n page_length: (_config_pageSize = config.pageSize) !== null && _config_pageSize !== void 0 ? _config_pageSize : DEFAULT_REPORT_PAGE_SIZE,\n column_widths: {},\n group_by: config.groupBy ? {\n group_by: toDeskFieldExpr(doctype, config.groupBy),\n aggregate_function: \"count\",\n aggregate_on: null\n } : null\n };\n}\nfunction fromDeskReportSettings(doctype, json) {\n if (!json || (typeof json === \"undefined\" ? \"undefined\" : _type_of(json)) !== \"object\") return void 0;\n var raw = json;\n var fieldnames = [];\n if (Array.isArray(raw.fields)) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = raw.fields[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var entry = _step.value;\n if (typeof entry === \"string\") {\n fieldnames.push(entry);\n } else if (Array.isArray(entry) && typeof entry[0] === \"string\") {\n var fieldDoctype = typeof entry[1] === \"string\" ? entry[1] : doctype;\n if (fieldDoctype === doctype) fieldnames.push(entry[0]);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n var filters = [];\n if (Array.isArray(raw.filters)) {\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = raw.filters[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var entry1 = _step1.value;\n if (!Array.isArray(entry1)) continue;\n if (entry1.length === 4) {\n var [filterDoctype, fieldname, operator, value] = entry1;\n if (filterDoctype === doctype && typeof fieldname === \"string\" && typeof operator === \"string\") {\n filters.push([\n fieldname,\n operator,\n value\n ]);\n }\n } else if (entry1.length === 3 && typeof entry1[0] === \"string\" && typeof entry1[1] === \"string\") {\n filters.push([\n entry1[0],\n entry1[1],\n entry1[2]\n ]);\n }\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n }\n var groupByRaw = raw.group_by;\n var groupByExpr = typeof (groupByRaw === null || groupByRaw === void 0 ? void 0 : groupByRaw.group_by) === \"string\" ? groupByRaw.group_by : void 0;\n var groupByMatch = groupByExpr === null || groupByExpr === void 0 ? void 0 : groupByExpr.match(BACKTICK_FIELD_RE);\n return {\n fieldnames,\n filters,\n sort: parseDeskOrderBy(raw.order_by),\n pageSize: typeof raw.page_length === \"number\" && raw.page_length > 0 ? raw.page_length : void 0,\n groupBy: groupByMatch ? groupByMatch[2] : null,\n addTotals: raw.add_totals_row === 1\n };\n}\nfunction isNullish(value) {\n return value === null || value === void 0;\n}\nfunction compareCellValues(a, b) {\n if (isNullish(a) && isNullish(b)) return 0;\n if (isNullish(a)) return 1;\n if (isNullish(b)) return -1;\n if (typeof a === \"number\" && typeof b === \"number\") return a - b;\n var left = String(a);\n var right = String(b);\n return left < right ? -1 : left > right ? 1 : 0;\n}\nfunction orderReportRows(rows, sort, groupBy) {\n var direction = sort.order === \"asc\" ? 1 : -1;\n var sorted = [\n ...rows\n ];\n sorted.sort(function(a, b) {\n if (groupBy) {\n var grouped = compareCellValues(a[groupBy], b[groupBy]);\n if (grouped !== 0) return grouped;\n }\n var left = a[sort.field];\n var right = b[sort.field];\n var ordered = isNullish(left) || isNullish(right) ? compareCellValues(left, right) : direction * compareCellValues(left, right);\n return ordered || compareCellValues(a.name, b.name);\n });\n return sorted;\n}\nfunction buildGridRows(orderedRows, pageStart, pageSize, groupBy) {\n var page = orderedRows.slice(pageStart, pageStart + pageSize);\n var out = [];\n var previousGroup;\n var counts = /* @__PURE__ */ new Map();\n if (groupBy) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = orderedRows[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var row = _step.value;\n var _row_groupBy, _counts_get;\n var groupKey = String((_row_groupBy = row[groupBy]) !== null && _row_groupBy !== void 0 ? _row_groupBy : \"\");\n counts.set(groupKey, ((_counts_get = counts.get(groupKey)) !== null && _counts_get !== void 0 ? _counts_get : 0) + 1);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n page.forEach(function(row2, index) {\n if (groupBy) {\n var _row_groupBy2;\n var groupKey2 = String((_row_groupBy2 = row2[groupBy]) !== null && _row_groupBy2 !== void 0 ? _row_groupBy2 : \"\");\n if (previousGroup === void 0 || groupKey2 !== previousGroup) {\n var _counts_get2;\n previousGroup = groupKey2;\n out.push({\n kind: \"group\",\n key: `group:${groupKey2}:${pageStart + index}`,\n value: row2[groupBy],\n count: (_counts_get2 = counts.get(groupKey2)) !== null && _counts_get2 !== void 0 ? _counts_get2 : 0\n });\n }\n }\n out.push({\n kind: \"row\",\n key: row2.name,\n row: row2,\n index: pageStart + index + 1\n });\n });\n return out;\n}\nfunction computeTotals(columns, rows) {\n if (rows.length === 0) return [];\n return columns.filter(function(column) {\n return REPORT_NUMERIC_FIELDTYPES.has(column.fieldtype);\n }).map(function(column) {\n return {\n fieldname: column.fieldname,\n fieldtype: column.fieldtype,\n value: rows.reduce(function(sum, row) {\n return sum + (Number(row[column.fieldname]) || 0);\n }, 0)\n };\n });\n}\nfunction escapeCsvCell(value) {\n if (value === null || value === void 0) return \"\";\n var text = String(value);\n return /[\",\\n]/.test(text) ? `\"${text.replace(/\"/g, '\"\"')}\"` : text;\n}\nfunction buildReportCsv(columns, rows) {\n var lines = [\n columns.map(function(column) {\n return escapeCsvCell(column.label);\n }).join(\",\"),\n ...rows.map(function(row) {\n return columns.map(function(column) {\n return escapeCsvCell(row[column.fieldname]);\n }).join(\",\");\n })\n ];\n return lines.join(\"\\n\");\n}\nexport {\n DEFAULT_REPORT_PAGE_SIZE,\n REPORT_NUMERIC_FIELDTYPES,\n REPORT_PAGE_SIZES,\n buildGridRows,\n buildReportCsv,\n columnAlign,\n columnFilterTuple,\n columnFilterTuples,\n compareCellValues,\n computeTotals,\n defaultColumnWidth,\n defaultReportFieldnames,\n fromDeskReportSettings,\n orderReportRows,\n parseDeskOrderBy,\n parseReportFiltersParam,\n reportColumnsFromMeta,\n resolveSelectedColumns,\n toDeskReportSettings\n};\n//# sourceMappingURL=reportViewModel.js.map\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["buildReportGridRows","buildReportCsv","reportColumnAlign","reportColumnFilterTuple","reportColumnFilterTuples","compareReportCellValues","computeReportTotals","DEFAULT_REPORT_PAGE_SIZE","defaultReportColumnWidth","defaultReportFieldnames","fromDeskReportSettings","orderReportRows","parseDeskOrderBy","parseReportFiltersParam","REPORT_NUMERIC_FIELDTYPES","REPORT_PAGE_SIZES","reportColumnsFromMeta","resolveReportColumns","toDeskReportSettings","buildGridRows","columnAlign","columnFilterTuple","columnFilterTuples","compareCellValues","computeTotals","defaultColumnWidth","resolveSelectedColumns"],"sources":["../../../src/report/reportViewModel.ts"],"sourcesContent":[null],"mappings":"AAGA,SAAAA,mBAAA,EAAAC,cAAA,EAAAC,iBAAA,EAAAC,uBAAA,EAAAC,wBAAA,EAAAC,uBAAA,EAAAC,mBAAA,EAAAC,wBAAA,EAAAC,wBAAA,EAAAC,uBAAA,EAAAC,sBAAA,EAAAC,eAAA,EAAAC,gBAAA,EAAAC,uBAAA,EAAAC,yBAAA,EAAAC,iBAAA,EAAAC,qBAAA,EAAAC,oBAAA,EAAAC,oBAAA;AAAA,SAEEX,wBAAA,EACqBO,yBAAA,EACMC,iBAAA,EACCf,mBAAA,IAAAmB,aAAA,EACDlB,cAAA,EACJC,iBAAA,IAAAkB,WAAA,EACvBjB,uBAAA,IAAAkB,iBAAA,EAC4BjB,wBAAA,IAAAkB,kBAAA,EAC5BjB,uBAAA,IAAAkB,iBAAA,EACAjB,mBAAA,IAAAkB,aAAA,EACAhB,wBAAA,IAAAiB,kBAAA,EACAhB,uBAAA,EACAC,sBAAA,EACAC,eAAA,EACAC,gBAAA,EACAC,uBAAA,EACwBG,qBAAA,EACxBC,oBAAA,IAAAS,sBAAA,EAAAR,oBACK","ignoreList":[]}
@@ -1,107 +1,3 @@
1
- import { useFrappeConfig } from "@multiplatform.one/frappe-ui";
2
- import { useCallback, useEffect, useMemo, useRef, useState } from "react";
3
- import { useFrappeApp } from "../shared/useFrappeApp.mjs";
4
- import { toDeskReportSettings, fromDeskReportSettings } from "./reportViewModel.mjs";
5
- function useSavedReports(doctype) {
6
- const app = useFrappeApp();
7
- const config = useFrappeConfig();
8
- const fixtureMode = Boolean(config?.fixtures);
9
- const [reports, setReports] = useState([]);
10
- const [loading, setLoading] = useState(false);
11
- const [generation, setGeneration] = useState(0);
12
- const memoryConfigs = useRef(/* @__PURE__ */new Map());
13
- useEffect(() => {
14
- memoryConfigs.current = /* @__PURE__ */new Map();
15
- setReports([]);
16
- }, [doctype]);
17
- useEffect(() => {
18
- if (!app || fixtureMode) return;
19
- let cancelled = false;
20
- setLoading(true);
21
- app.call().get("frappe.client.get_list", {
22
- doctype: "Report",
23
- filters: JSON.stringify([["ref_doctype", "=", doctype], ["report_type", "=", "Report Builder"], ["disabled", "=", 0]]),
24
- fields: JSON.stringify(["name", "report_name", "json"]),
25
- limit_page_length: 0,
26
- order_by: "report_name asc"
27
- }).then(res => {
28
- if (cancelled) return;
29
- const rows = res.payload?.message ?? [];
30
- setReports(rows.map(row => ({
31
- name: row.name,
32
- reportName: row.report_name || row.name,
33
- json: row.json
34
- })));
35
- setLoading(false);
36
- }).catch(() => {
37
- if (cancelled) return;
38
- setReports([]);
39
- setLoading(false);
40
- });
41
- return () => {
42
- cancelled = true;
43
- };
44
- }, [app, fixtureMode, doctype, generation]);
45
- const load = useCallback(async name => {
46
- if (fixtureMode) return memoryConfigs.current.get(name);
47
- const summary = reports.find(report => report.name === name);
48
- let json = summary?.json;
49
- if (json === void 0 && app) {
50
- const res = await app.call().get("frappe.client.get_value", {
51
- doctype: "Report",
52
- filters: JSON.stringify({
53
- name
54
- }),
55
- fieldname: JSON.stringify(["json"])
56
- });
57
- json = res.payload?.message?.json;
58
- }
59
- if (!json) return void 0;
60
- try {
61
- return fromDeskReportSettings(doctype, JSON.parse(json));
62
- } catch {
63
- return void 0;
64
- }
65
- }, [app, fixtureMode, reports, doctype]);
66
- const save = useCallback(async (name, viewConfig) => {
67
- const trimmed = name.trim();
68
- if (!trimmed) throw new Error("Report name is required");
69
- if (fixtureMode || !app) {
70
- memoryConfigs.current.set(trimmed, viewConfig);
71
- setReports(previous => [...previous.filter(report => report.name !== trimmed), {
72
- name: trimmed,
73
- reportName: trimmed
74
- }]);
75
- return trimmed;
76
- }
77
- const res = await app.call().post("frappe.desk.reportview.save_report", {
78
- name: trimmed,
79
- doctype,
80
- report_settings: JSON.stringify(toDeskReportSettings(doctype, viewConfig))
81
- });
82
- setGeneration(value => value + 1);
83
- return res.payload?.message ?? trimmed;
84
- }, [app, fixtureMode, doctype]);
85
- const remove = useCallback(async name => {
86
- if (fixtureMode || !app) {
87
- memoryConfigs.current.delete(name);
88
- setReports(previous => previous.filter(report => report.name !== name));
89
- return;
90
- }
91
- await app.call().post("frappe.desk.reportview.delete_report", {
92
- name
93
- });
94
- setGeneration(value => value + 1);
95
- }, [app, fixtureMode, doctype]);
96
- const refresh = useCallback(() => setGeneration(value => value + 1), []);
97
- return useMemo(() => ({
98
- reports,
99
- loading,
100
- load,
101
- save,
102
- remove,
103
- refresh
104
- }), [reports, loading, load, save, remove, refresh]);
105
- }
1
+ import { useSavedReports } from "@multiplatform.one/frappe-ui";
106
2
  export { useSavedReports };
107
3
  //# sourceMappingURL=savedReports.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["useFrappeConfig","useCallback","useEffect","useMemo","useRef","useState","useFrappeApp","toDeskReportSettings","fromDeskReportSettings","useSavedReports","doctype","app","config","fixtureMode","Boolean","fixtures","reports","setReports","loading","setLoading","generation","setGeneration","memoryConfigs","Map","current","cancelled","call","get","filters","JSON","stringify","fields","limit_page_length","order_by","then","res","rows","payload","message","map","row","name","reportName","report_name","json","catch","load","summary","find","report","fieldname","parse","save","viewConfig","trimmed","trim","Error","set","previous","filter","post","report_settings","value","remove","delete","refresh"],"sources":["../../../src/report/savedReports.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useSavedReports"],"sources":["../../../src/report/savedReports.ts"],"sourcesContent":[null],"mappings":"AAEA,SAASA,eAAA,QAAuB","ignoreList":[]}
@@ -1,134 +1,3 @@
1
- import { useFrappeConfig } from "@multiplatform.one/frappe-ui";
2
- import { useCallback, useEffect, useMemo, useRef, useState } from "react";
3
- import { useFrappeApp } from "../shared/useFrappeApp.native.js";
4
- import { toDeskReportSettings, fromDeskReportSettings } from "./reportViewModel.native.js";
5
- function useSavedReports(doctype) {
6
- var app = useFrappeApp();
7
- var config = useFrappeConfig();
8
- var fixtureMode = Boolean(config === null || config === void 0 ? void 0 : config.fixtures);
9
- var [reports, setReports] = useState([]);
10
- var [loading, setLoading] = useState(false);
11
- var [generation, setGeneration] = useState(0);
12
- var memoryConfigs = useRef(/* @__PURE__ */new Map());
13
- useEffect(function () {
14
- memoryConfigs.current = /* @__PURE__ */new Map();
15
- setReports([]);
16
- }, [doctype]);
17
- useEffect(function () {
18
- if (!app || fixtureMode) return;
19
- var cancelled = false;
20
- setLoading(true);
21
- app.call().get("frappe.client.get_list", {
22
- doctype: "Report",
23
- filters: JSON.stringify([["ref_doctype", "=", doctype], ["report_type", "=", "Report Builder"], ["disabled", "=", 0]]),
24
- fields: JSON.stringify(["name", "report_name", "json"]),
25
- limit_page_length: 0,
26
- order_by: "report_name asc"
27
- }).then(function (res) {
28
- var _ref;
29
- var _res_payload;
30
- if (cancelled) return;
31
- var rows = (_ref = (_res_payload = res.payload) === null || _res_payload === void 0 ? void 0 : _res_payload.message) !== null && _ref !== void 0 ? _ref : [];
32
- setReports(rows.map(function (row) {
33
- return {
34
- name: row.name,
35
- reportName: row.report_name || row.name,
36
- json: row.json
37
- };
38
- }));
39
- setLoading(false);
40
- }).catch(function () {
41
- if (cancelled) return;
42
- setReports([]);
43
- setLoading(false);
44
- });
45
- return function () {
46
- cancelled = true;
47
- };
48
- }, [app, fixtureMode, doctype, generation]);
49
- var load = useCallback(async function (name) {
50
- if (fixtureMode) return memoryConfigs.current.get(name);
51
- var summary = reports.find(function (report) {
52
- return report.name === name;
53
- });
54
- var json = summary === null || summary === void 0 ? void 0 : summary.json;
55
- if (json === void 0 && app) {
56
- var _res_payload_message, _res_payload;
57
- var res = await app.call().get("frappe.client.get_value", {
58
- doctype: "Report",
59
- filters: JSON.stringify({
60
- name
61
- }),
62
- fieldname: JSON.stringify(["json"])
63
- });
64
- json = (_res_payload = res.payload) === null || _res_payload === void 0 ? void 0 : (_res_payload_message = _res_payload.message) === null || _res_payload_message === void 0 ? void 0 : _res_payload_message.json;
65
- }
66
- if (!json) return void 0;
67
- try {
68
- return fromDeskReportSettings(doctype, JSON.parse(json));
69
- } catch (unused) {
70
- return void 0;
71
- }
72
- }, [app, fixtureMode, reports, doctype]);
73
- var save = useCallback(async function (name, viewConfig) {
74
- var _ref;
75
- var _res_payload;
76
- var trimmed = name.trim();
77
- if (!trimmed) throw new Error("Report name is required");
78
- if (fixtureMode || !app) {
79
- memoryConfigs.current.set(trimmed, viewConfig);
80
- setReports(function (previous) {
81
- return [...previous.filter(function (report) {
82
- return report.name !== trimmed;
83
- }), {
84
- name: trimmed,
85
- reportName: trimmed
86
- }];
87
- });
88
- return trimmed;
89
- }
90
- var res = await app.call().post("frappe.desk.reportview.save_report", {
91
- name: trimmed,
92
- doctype,
93
- report_settings: JSON.stringify(toDeskReportSettings(doctype, viewConfig))
94
- });
95
- setGeneration(function (value) {
96
- return value + 1;
97
- });
98
- return (_ref = (_res_payload = res.payload) === null || _res_payload === void 0 ? void 0 : _res_payload.message) !== null && _ref !== void 0 ? _ref : trimmed;
99
- }, [app, fixtureMode, doctype]);
100
- var remove = useCallback(async function (name) {
101
- if (fixtureMode || !app) {
102
- memoryConfigs.current.delete(name);
103
- setReports(function (previous) {
104
- return previous.filter(function (report) {
105
- return report.name !== name;
106
- });
107
- });
108
- return;
109
- }
110
- await app.call().post("frappe.desk.reportview.delete_report", {
111
- name
112
- });
113
- setGeneration(function (value) {
114
- return value + 1;
115
- });
116
- }, [app, fixtureMode, doctype]);
117
- var refresh = useCallback(function () {
118
- return setGeneration(function (value) {
119
- return value + 1;
120
- });
121
- }, []);
122
- return useMemo(function () {
123
- return {
124
- reports,
125
- loading,
126
- load,
127
- save,
128
- remove,
129
- refresh
130
- };
131
- }, [reports, loading, load, save, remove, refresh]);
132
- }
1
+ import { useSavedReports } from "@multiplatform.one/frappe-ui";
133
2
  export { useSavedReports };
134
3
  //# sourceMappingURL=savedReports.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useFrappeConfig","useCallback","useEffect","useMemo","useRef","useState","useFrappeApp","toDeskReportSettings","fromDeskReportSettings","useSavedReports","doctype","app","config","fixtureMode","Boolean","fixtures","reports","setReports","loading","setLoading","generation","setGeneration","memoryConfigs","Map","current","cancelled","call","get","filters","JSON","stringify","fields","limit_page_length","order_by","then","res","_ref","_res_payload","rows","payload","message","map","row","name","reportName","report_name","json","catch","load","summary","find","report","_res_payload_message","fieldname","parse","unused","save","viewConfig","trimmed","trim","Error","set","previous","filter","post","report_settings","value","remove","delete","refresh"],"sources":["savedReports.native.js"],"sourcesContent":["import { useFrappeConfig } from \"@multiplatform.one/frappe-ui\";\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useFrappeApp } from \"../shared/useFrappeApp\";\nimport { toDeskReportSettings, fromDeskReportSettings } from \"./reportViewModel\";\nfunction useSavedReports(doctype) {\n var app = useFrappeApp();\n var config = useFrappeConfig();\n var fixtureMode = Boolean(config === null || config === void 0 ? void 0 : config.fixtures);\n var [reports, setReports] = useState([]);\n var [loading, setLoading] = useState(false);\n var [generation, setGeneration] = useState(0);\n var memoryConfigs = useRef(/* @__PURE__ */ new Map());\n useEffect(function() {\n memoryConfigs.current = /* @__PURE__ */ new Map();\n setReports([]);\n }, [\n doctype\n ]);\n useEffect(function() {\n if (!app || fixtureMode) return;\n var cancelled = false;\n setLoading(true);\n app.call().get(\"frappe.client.get_list\", {\n doctype: \"Report\",\n filters: JSON.stringify([\n [\n \"ref_doctype\",\n \"=\",\n doctype\n ],\n [\n \"report_type\",\n \"=\",\n \"Report Builder\"\n ],\n [\n \"disabled\",\n \"=\",\n 0\n ]\n ]),\n fields: JSON.stringify([\n \"name\",\n \"report_name\",\n \"json\"\n ]),\n limit_page_length: 0,\n order_by: \"report_name asc\"\n }).then(function(res) {\n var _ref;\n var _res_payload;\n if (cancelled) return;\n var rows = (_ref = (_res_payload = res.payload) === null || _res_payload === void 0 ? void 0 : _res_payload.message) !== null && _ref !== void 0 ? _ref : [];\n setReports(rows.map(function(row) {\n return {\n name: row.name,\n reportName: row.report_name || row.name,\n json: row.json\n };\n }));\n setLoading(false);\n }).catch(function() {\n if (cancelled) return;\n setReports([]);\n setLoading(false);\n });\n return function() {\n cancelled = true;\n };\n }, [\n app,\n fixtureMode,\n doctype,\n generation\n ]);\n var load = useCallback(async function(name) {\n if (fixtureMode) return memoryConfigs.current.get(name);\n var summary = reports.find(function(report) {\n return report.name === name;\n });\n var json = summary === null || summary === void 0 ? void 0 : summary.json;\n if (json === void 0 && app) {\n var _res_payload_message, _res_payload;\n var res = await app.call().get(\"frappe.client.get_value\", {\n doctype: \"Report\",\n filters: JSON.stringify({\n name\n }),\n fieldname: JSON.stringify([\n \"json\"\n ])\n });\n json = (_res_payload = res.payload) === null || _res_payload === void 0 ? void 0 : (_res_payload_message = _res_payload.message) === null || _res_payload_message === void 0 ? void 0 : _res_payload_message.json;\n }\n if (!json) return void 0;\n try {\n return fromDeskReportSettings(doctype, JSON.parse(json));\n } catch (unused) {\n return void 0;\n }\n }, [\n app,\n fixtureMode,\n reports,\n doctype\n ]);\n var save = useCallback(async function(name, viewConfig) {\n var _ref;\n var _res_payload;\n var trimmed = name.trim();\n if (!trimmed) throw new Error(\"Report name is required\");\n if (fixtureMode || !app) {\n memoryConfigs.current.set(trimmed, viewConfig);\n setReports(function(previous) {\n return [\n ...previous.filter(function(report) {\n return report.name !== trimmed;\n }),\n {\n name: trimmed,\n reportName: trimmed\n }\n ];\n });\n return trimmed;\n }\n var res = await app.call().post(\"frappe.desk.reportview.save_report\", {\n name: trimmed,\n doctype,\n report_settings: JSON.stringify(toDeskReportSettings(doctype, viewConfig))\n });\n setGeneration(function(value) {\n return value + 1;\n });\n return (_ref = (_res_payload = res.payload) === null || _res_payload === void 0 ? void 0 : _res_payload.message) !== null && _ref !== void 0 ? _ref : trimmed;\n }, [\n app,\n fixtureMode,\n doctype\n ]);\n var remove = useCallback(async function(name) {\n if (fixtureMode || !app) {\n memoryConfigs.current.delete(name);\n setReports(function(previous) {\n return previous.filter(function(report) {\n return report.name !== name;\n });\n });\n return;\n }\n await app.call().post(\"frappe.desk.reportview.delete_report\", {\n name\n });\n setGeneration(function(value) {\n return value + 1;\n });\n }, [\n app,\n fixtureMode,\n doctype\n ]);\n var refresh = useCallback(function() {\n return setGeneration(function(value) {\n return value + 1;\n });\n }, []);\n return useMemo(function() {\n return {\n reports,\n loading,\n load,\n save,\n remove,\n refresh\n };\n }, [\n reports,\n loading,\n load,\n save,\n remove,\n refresh\n ]);\n}\nexport {\n useSavedReports\n};\n//# sourceMappingURL=savedReports.js.map\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useSavedReports"],"sources":["../../../src/report/savedReports.ts"],"sourcesContent":[null],"mappings":"AAEA,SAASA,eAAA,QAAuB","ignoreList":[]}
@@ -1,211 +1,3 @@
1
- import { useCallback, useEffect, useMemo, useRef, useState } from "react";
2
- import { useFrappeApp } from "../shared/useFrappeApp.mjs";
3
- import { buildRunFilters, defaultFilterValues, extractScriptFilters, humanizeFrappeError, isEmptyFilterValue, normalizeFilterMeta, normalizeQueryReportColumns, normalizeQueryReportRows } from "./reportShapes.mjs";
4
- import { buildRunFilters as buildRunFilters2, compactQueryReportFilters, defaultFilterValues as defaultFilterValues2, extractScriptFilters as extractScriptFilters2, isEmptyFilterValue as isEmptyFilterValue2, normalizeQueryReportColumns as normalizeQueryReportColumns2, normalizeQueryReportRows as normalizeQueryReportRows2, scrubFieldname, stripHtml } from "./reportShapes.mjs";
5
- const RUN_METHOD = "frappe.desk.query_report.run";
6
- const SCRIPT_METHOD = "frappe.desk.query_report.get_script";
7
- async function fetchReportMeta(app, reportName) {
8
- const res = await app.call().get("frappe.client.get", {
9
- doctype: "Report",
10
- name: reportName
11
- });
12
- const doc = res.payload?.message;
13
- if (!doc) throw new Error(`Report "${reportName}" not found`);
14
- return doc;
15
- }
16
- async function fetchReportScript(app, reportName) {
17
- const res = await app.call().get(SCRIPT_METHOD, {
18
- report_name: reportName
19
- });
20
- const script = res.payload?.message?.script;
21
- return typeof script === "string" ? script : void 0;
22
- }
23
- function useQueryReport(reportName, options = {}) {
24
- const {
25
- fixture
26
- } = options;
27
- const app = useFrappeApp();
28
- const initialFiltersRef = useRef(options.initialFilters);
29
- initialFiltersRef.current = options.initialFilters;
30
- const [meta, setMeta] = useState(void 0);
31
- const [script, setScript] = useState(void 0);
32
- const [sourcesSettled, setSourcesSettled] = useState(false);
33
- const [filters, setFiltersState] = useState(() => ({
34
- ...initialFiltersRef.current
35
- }));
36
- const [columns, setColumns] = useState([]);
37
- const [rows, setRows] = useState([]);
38
- const [loading, setLoading] = useState(true);
39
- const [running, setRunning] = useState(false);
40
- const [error, setError] = useState(void 0);
41
- const [serverMessage, setServerMessage] = useState(void 0);
42
- const [executionTime, setExecutionTime] = useState(void 0);
43
- const [generation, setGeneration] = useState(0);
44
- const seededFor = useRef(void 0);
45
- const lastReport = useRef(reportName);
46
- useEffect(() => {
47
- if (lastReport.current === reportName) return;
48
- lastReport.current = reportName;
49
- setFiltersState({
50
- ...initialFiltersRef.current
51
- });
52
- setMeta(void 0);
53
- setScript(void 0);
54
- setSourcesSettled(false);
55
- setColumns([]);
56
- setRows([]);
57
- setError(void 0);
58
- setServerMessage(void 0);
59
- setExecutionTime(void 0);
60
- setLoading(true);
61
- }, [reportName]);
62
- useEffect(() => {
63
- if (fixture) return;
64
- if (!app) {
65
- setSourcesSettled(true);
66
- return;
67
- }
68
- let cancelled = false;
69
- setSourcesSettled(false);
70
- Promise.allSettled([fetchReportMeta(app, reportName), fetchReportScript(app, reportName)]).then(([metaResult, scriptResult]) => {
71
- if (cancelled) return;
72
- const doc = metaResult.status === "fulfilled" ? metaResult.value : void 0;
73
- const scriptText = scriptResult.status === "fulfilled" ? scriptResult.value : void 0;
74
- if (doc) setMeta(doc);
75
- if (scriptText) setScript(scriptText);
76
- if (seededFor.current !== reportName) {
77
- seededFor.current = reportName;
78
- const extraction = extractScriptFilters(scriptText);
79
- const merged = extraction.declared ? extraction.filters : normalizeFilterMeta(doc?.filters);
80
- const defaults = defaultFilterValues(merged);
81
- if (Object.keys(defaults).length > 0) setFiltersState(previous => ({
82
- ...defaults,
83
- ...previous
84
- }));
85
- }
86
- setSourcesSettled(true);
87
- });
88
- return () => {
89
- cancelled = true;
90
- };
91
- }, [app, fixture, reportName]);
92
- const scriptExtraction = useMemo(() => extractScriptFilters(fixture ? fixture.script : script), [fixture, script]);
93
- const docFilterMeta = useMemo(() => normalizeFilterMeta(fixture ? fixture.meta?.filters : meta?.filters), [fixture, meta]);
94
- const filterMeta = useMemo(() => scriptExtraction.declared ? scriptExtraction.filters : docFilterMeta, [scriptExtraction, docFilterMeta]);
95
- const scriptFilterGap = scriptExtraction.declaredCount > scriptExtraction.filters.length;
96
- useEffect(() => {
97
- if (!fixture) return;
98
- if (seededFor.current === reportName) return;
99
- seededFor.current = reportName;
100
- const defaults = defaultFilterValues(filterMeta);
101
- if (Object.keys(defaults).length > 0) setFiltersState(previous => ({
102
- ...defaults,
103
- ...previous
104
- }));
105
- }, [fixture, reportName, filterMeta]);
106
- const missingRequired = useMemo(() => filterMeta.filter(filter => filter.mandatory === 1 && isEmptyFilterValue(filters[filter.fieldname])), [filterMeta, filters]);
107
- const hasMissingRequired = missingRequired.length > 0;
108
- const metaDisabled = (fixture ? fixture.meta?.disabled : meta?.disabled) === 1;
109
- useEffect(() => {
110
- if (fixture) return;
111
- if (!sourcesSettled) return;
112
- if (metaDisabled) {
113
- setLoading(false);
114
- return;
115
- }
116
- if (hasMissingRequired) {
117
- setColumns([]);
118
- setRows([]);
119
- setError(void 0);
120
- setLoading(false);
121
- return;
122
- }
123
- if (!app) {
124
- setError(new Error("No Frappe connection configured"));
125
- setLoading(false);
126
- return;
127
- }
128
- let cancelled = false;
129
- setRunning(true);
130
- app.call().post(RUN_METHOD, {
131
- report_name: reportName,
132
- filters: buildRunFilters(filterMeta, filters),
133
- ignore_prepared_report: 1
134
- }).then(res => {
135
- if (cancelled) return;
136
- const message = res.payload?.message;
137
- const nextColumns = normalizeQueryReportColumns(message?.columns);
138
- setColumns(nextColumns);
139
- setRows(normalizeQueryReportRows(message?.result, nextColumns));
140
- setServerMessage(typeof message?.message === "string" ? message.message : void 0);
141
- setExecutionTime(typeof message?.execution_time === "number" ? message.execution_time : void 0);
142
- setError(void 0);
143
- }).catch(err => {
144
- if (cancelled) return;
145
- setColumns([]);
146
- setRows([]);
147
- setError(humanizeFrappeError(err));
148
- }).finally(() => {
149
- if (cancelled) return;
150
- setRunning(false);
151
- setLoading(false);
152
- });
153
- return () => {
154
- cancelled = true;
155
- };
156
- }, [app, fixture, reportName, filters, filterMeta, generation, sourcesSettled, metaDisabled, hasMissingRequired]);
157
- const setFilters = useCallback(next => {
158
- setFiltersState(next);
159
- }, []);
160
- const reload = useCallback(() => {
161
- setGeneration(previous => previous + 1);
162
- }, []);
163
- const fixtureResult = useMemo(() => {
164
- if (!fixture) return void 0;
165
- const fixtureColumns = normalizeQueryReportColumns(fixture.columns);
166
- return {
167
- columns: fixtureColumns,
168
- rows: normalizeQueryReportRows(fixture.rows, fixtureColumns),
169
- meta: fixture.meta ? {
170
- name: reportName,
171
- ...fixture.meta
172
- } : void 0
173
- };
174
- }, [fixture, reportName]);
175
- if (fixtureResult) {
176
- return {
177
- meta: fixtureResult.meta,
178
- columns: fixtureResult.columns,
179
- rows: hasMissingRequired ? [] : fixtureResult.rows,
180
- loading: false,
181
- running: false,
182
- error: void 0,
183
- serverMessage: fixture?.message,
184
- executionTime: void 0,
185
- filterMeta,
186
- scriptFilterGap,
187
- missingRequired,
188
- filters,
189
- setFilters,
190
- reload
191
- };
192
- }
193
- return {
194
- meta,
195
- columns,
196
- rows,
197
- loading,
198
- running,
199
- error,
200
- serverMessage,
201
- executionTime,
202
- filterMeta,
203
- scriptFilterGap,
204
- missingRequired,
205
- filters,
206
- setFilters,
207
- reload
208
- };
209
- }
210
- export { buildRunFilters2 as buildRunFilters, compactQueryReportFilters, defaultFilterValues2 as defaultFilterValues, extractScriptFilters2 as extractScriptFilters, isEmptyFilterValue2 as isEmptyFilterValue, normalizeQueryReportColumns2 as normalizeQueryReportColumns, normalizeQueryReportRows2 as normalizeQueryReportRows, scrubFieldname, stripHtml, useQueryReport };
1
+ import { buildRunFilters, compactQueryReportFilters, defaultFilterValues, extractScriptFilters, isEmptyFilterValue, normalizeQueryReportColumns, normalizeQueryReportRows, scrubFieldname, stripReportHtml, useQueryReport } from "@multiplatform.one/frappe-ui";
2
+ export { buildRunFilters, compactQueryReportFilters, defaultFilterValues, extractScriptFilters, isEmptyFilterValue, normalizeQueryReportColumns, normalizeQueryReportRows, scrubFieldname, stripReportHtml as stripHtml, useQueryReport };
211
3
  //# sourceMappingURL=useQueryReport.mjs.map