@multiplatform.one/backoffice 7.23.2 → 7.25.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 (523) hide show
  1. package/dist/cjs/chrome/BackofficeAwesomebar.native.js +1 -1
  2. package/dist/cjs/chrome/BackofficeAwesomebar.native.js.map +1 -1
  3. package/dist/cjs/chrome/CommandPalette.native.js +1 -1
  4. package/dist/cjs/chrome/CommandPalette.native.js.map +1 -1
  5. package/dist/cjs/chrome/HelpMenu.native.js +1 -1
  6. package/dist/cjs/chrome/HelpMenu.native.js.map +1 -1
  7. package/dist/cjs/chrome/NotificationsButton.native.js +1 -1
  8. package/dist/cjs/chrome/NotificationsButton.native.js.map +1 -1
  9. package/dist/cjs/chrome/UserMenu.native.js +1 -1
  10. package/dist/cjs/chrome/UserMenu.native.js.map +1 -1
  11. package/dist/cjs/chrome/awesomebar-data.cjs +4 -2
  12. package/dist/cjs/chrome/awesomebar-data.native.js +7 -4
  13. package/dist/cjs/chrome/awesomebar-data.native.js.map +1 -1
  14. package/dist/cjs/chrome/command-palette-model.native.js +1 -1
  15. package/dist/cjs/chrome/command-palette-model.native.js.map +1 -1
  16. package/dist/cjs/chrome/help-about-dialog.cjs +2 -2
  17. package/dist/cjs/chrome/help-about-dialog.native.js +3 -3
  18. package/dist/cjs/chrome/help-about-dialog.native.js.map +1 -1
  19. package/dist/cjs/chrome/help-shortcuts-dialog.cjs +2 -2
  20. package/dist/cjs/chrome/help-shortcuts-dialog.native.js +3 -3
  21. package/dist/cjs/chrome/help-shortcuts-dialog.native.js.map +1 -1
  22. package/dist/cjs/chrome/notifications-data.native.js.map +1 -1
  23. package/dist/cjs/chrome/notifications-panel.cjs +8 -6
  24. package/dist/cjs/chrome/notifications-panel.native.js +9 -7
  25. package/dist/cjs/chrome/notifications-panel.native.js.map +1 -1
  26. package/dist/cjs/chrome/notifications-utils.native.js.map +1 -1
  27. package/dist/cjs/chrome/shortcuts.native.js.map +1 -1
  28. package/dist/cjs/chrome/user-session.native.js.map +1 -1
  29. package/dist/cjs/config/BackofficeProvider.native.js +1 -1
  30. package/dist/cjs/config/BackofficeProvider.native.js.map +1 -1
  31. package/dist/cjs/config/capabilities.native.js.map +1 -1
  32. package/dist/cjs/config/events.native.js.map +1 -1
  33. package/dist/cjs/config/slots.native.js.map +1 -1
  34. package/dist/cjs/desk/Desk.native.js.map +1 -1
  35. package/dist/cjs/desk/DeskSurface.native.js.map +1 -1
  36. package/dist/cjs/desk/resolveDeskPath.native.js.map +1 -1
  37. package/dist/cjs/desk/scope.native.js.map +1 -1
  38. package/dist/cjs/desk/target.native.js.map +1 -1
  39. package/dist/cjs/form/DocFormScreen.cjs +43 -43
  40. package/dist/cjs/form/DocFormScreen.native.js +44 -44
  41. package/dist/cjs/form/DocFormScreen.native.js.map +1 -1
  42. package/dist/cjs/form/FormConnections.native.js +1 -1
  43. package/dist/cjs/form/FormConnections.native.js.map +1 -1
  44. package/dist/cjs/form/FormDialogs.native.js +1 -1
  45. package/dist/cjs/form/FormDialogs.native.js.map +1 -1
  46. package/dist/cjs/form/FormErrorBoundary.native.js +1 -1
  47. package/dist/cjs/form/FormErrorBoundary.native.js.map +1 -1
  48. package/dist/cjs/form/FormHeaderCluster.native.js +1 -1
  49. package/dist/cjs/form/FormHeaderCluster.native.js.map +1 -1
  50. package/dist/cjs/form/FormSidebarPanel.native.js +1 -1
  51. package/dist/cjs/form/FormSidebarPanel.native.js.map +1 -1
  52. package/dist/cjs/form/FormTimeline.native.js +1 -1
  53. package/dist/cjs/form/FormTimeline.native.js.map +1 -1
  54. package/dist/cjs/form/FormToolbar.native.js +1 -1
  55. package/dist/cjs/form/FormToolbar.native.js.map +1 -1
  56. package/dist/cjs/form/connections-data.native.js.map +1 -1
  57. package/dist/cjs/form/createPrefill.native.js.map +1 -1
  58. package/dist/cjs/form/dependsOn.native.js.map +1 -1
  59. package/dist/cjs/form/dirtyTracking.native.js.map +1 -1
  60. package/dist/cjs/form/docinfo.native.js.map +1 -1
  61. package/dist/cjs/form/fetchFrom.native.js.map +1 -1
  62. package/dist/cjs/form/fieldPermissions.native.js.map +1 -1
  63. package/dist/cjs/form/formActions.native.js.map +1 -1
  64. package/dist/cjs/form/formLayout.native.js.map +1 -1
  65. package/dist/cjs/form/platformHooks.native.js.map +1 -1
  66. package/dist/cjs/form/sidebar-attachments.native.js +1 -1
  67. package/dist/cjs/form/sidebar-attachments.native.js.map +1 -1
  68. package/dist/cjs/form/sidebar-dialogs.native.js +1 -1
  69. package/dist/cjs/form/sidebar-dialogs.native.js.map +1 -1
  70. package/dist/cjs/form/sidebar-people.cjs +5 -2
  71. package/dist/cjs/form/sidebar-people.native.js +6 -3
  72. package/dist/cjs/form/sidebar-people.native.js.map +1 -1
  73. package/dist/cjs/form/sidebar-rpc.native.js.map +1 -1
  74. package/dist/cjs/form/sidebar-utils.native.js.map +1 -1
  75. package/dist/cjs/form/timeline-entries.native.js.map +1 -1
  76. package/dist/cjs/form/timeline-utils.native.js.map +1 -1
  77. package/dist/cjs/form/useFormEngine.native.js.map +1 -1
  78. package/dist/cjs/i18n/en.cjs +1 -1
  79. package/dist/cjs/i18n/en.native.js +1 -1
  80. package/dist/cjs/i18n/en.native.js.map +1 -1
  81. package/dist/cjs/i18n/index.native.js.map +1 -1
  82. package/dist/cjs/index.native.js +1 -1
  83. package/dist/cjs/index.native.js.map +1 -1
  84. package/dist/cjs/list/AddTagsDialog.native.js +1 -1
  85. package/dist/cjs/list/AddTagsDialog.native.js.map +1 -1
  86. package/dist/cjs/list/AssignToDialog.native.js +1 -1
  87. package/dist/cjs/list/AssignToDialog.native.js.map +1 -1
  88. package/dist/cjs/list/DoctypeListScreen.native.js +1 -1
  89. package/dist/cjs/list/DoctypeListScreen.native.js.map +1 -1
  90. package/dist/cjs/list/ListBulkActionsBar.cjs +1 -1
  91. package/dist/cjs/list/ListBulkActionsBar.native.js +2 -3
  92. package/dist/cjs/list/ListBulkActionsBar.native.js.map +1 -1
  93. package/dist/cjs/list/ListFilterBar.native.js +1 -1
  94. package/dist/cjs/list/ListFilterBar.native.js.map +1 -1
  95. package/dist/cjs/list/ListSidebar.native.js +1 -1
  96. package/dist/cjs/list/ListSidebar.native.js.map +1 -1
  97. package/dist/cjs/list/bulk-edit-dialog.native.js +1 -1
  98. package/dist/cjs/list/bulk-edit-dialog.native.js.map +1 -1
  99. package/dist/cjs/list/bulk-export.native.js.map +1 -1
  100. package/dist/cjs/list/bulk-submit-cancel.native.js.map +1 -1
  101. package/dist/cjs/list/bulkActions.native.js.map +1 -1
  102. package/dist/cjs/list/filter-chips.native.js +1 -1
  103. package/dist/cjs/list/filter-chips.native.js.map +1 -1
  104. package/dist/cjs/list/filter-editor.native.js +1 -1
  105. package/dist/cjs/list/filter-editor.native.js.map +1 -1
  106. package/dist/cjs/list/filter-fields.native.js.map +1 -1
  107. package/dist/cjs/list/filter-saved.native.js +1 -1
  108. package/dist/cjs/list/filter-saved.native.js.map +1 -1
  109. package/dist/cjs/list/filter-sort.native.js +1 -1
  110. package/dist/cjs/list/filter-sort.native.js.map +1 -1
  111. package/dist/cjs/list/filter-standard.native.js.map +1 -1
  112. package/dist/cjs/list/filterConversion.native.js.map +1 -1
  113. package/dist/cjs/list/list-tools-sheet.native.js +1 -1
  114. package/dist/cjs/list/list-tools-sheet.native.js.map +1 -1
  115. package/dist/cjs/list/listColumns.native.js.map +1 -1
  116. package/dist/cjs/list/listFields.native.js.map +1 -1
  117. package/dist/cjs/list/listFormat.native.js.map +1 -1
  118. package/dist/cjs/list/listUrlState.native.js.map +1 -1
  119. package/dist/cjs/list/sidebar-section.native.js +1 -1
  120. package/dist/cjs/list/sidebar-section.native.js.map +1 -1
  121. package/dist/cjs/list/sidebar-stats.native.js.map +1 -1
  122. package/dist/cjs/list/statusColors.native.js.map +1 -1
  123. package/dist/cjs/navigation/navigator.native.js.map +1 -1
  124. package/dist/cjs/navigation/paths.native.js.map +1 -1
  125. package/dist/cjs/oneAdapter/index.native.js.map +1 -1
  126. package/dist/cjs/quickEntry/QuickEntryDialog.native.js +1 -1
  127. package/dist/cjs/quickEntry/QuickEntryDialog.native.js.map +1 -1
  128. package/dist/cjs/quickEntry/quickEntryPlan.native.js.map +1 -1
  129. package/dist/cjs/report/DoctypeReportView.native.js +1 -1
  130. package/dist/cjs/report/DoctypeReportView.native.js.map +1 -1
  131. package/dist/cjs/report/QueryReportScreen.native.js +1 -1
  132. package/dist/cjs/report/QueryReportScreen.native.js.map +1 -1
  133. package/dist/cjs/report/queryReportColumns.native.js.map +1 -1
  134. package/dist/cjs/report/queryReportFilterBar.native.js +1 -1
  135. package/dist/cjs/report/queryReportFilterBar.native.js.map +1 -1
  136. package/dist/cjs/report/queryReportUrlState.native.js.map +1 -1
  137. package/dist/cjs/report/report-grid.native.js +1 -1
  138. package/dist/cjs/report/report-grid.native.js.map +1 -1
  139. package/dist/cjs/report/report-toolbar.native.js +1 -1
  140. package/dist/cjs/report/report-toolbar.native.js.map +1 -1
  141. package/dist/cjs/report/reportShapes.native.js.map +1 -1
  142. package/dist/cjs/report/reportViewModel.native.js.map +1 -1
  143. package/dist/cjs/report/savedReports.native.js.map +1 -1
  144. package/dist/cjs/report/useQueryReport.native.js.map +1 -1
  145. package/dist/cjs/shared/deskLinks.native.js.map +1 -1
  146. package/dist/cjs/shared/listNavContext.native.js.map +1 -1
  147. package/dist/cjs/shared/measures.native.js.map +1 -1
  148. package/dist/cjs/shared/types.native.js.map +1 -1
  149. package/dist/cjs/shared/useDocinfo.native.js.map +1 -1
  150. package/dist/cjs/shared/useDoctypeMeta.native.js.map +1 -1
  151. package/dist/cjs/shared/useFrappeApp.native.js.map +1 -1
  152. package/dist/cjs/shared/useRecentVisit.native.js.map +1 -1
  153. package/dist/cjs/shared/useSessionUserId.native.js.map +1 -1
  154. package/dist/cjs/shared/useSlugTarget.native.js.map +1 -1
  155. package/dist/cjs/shared/useUserRoles.native.js.map +1 -1
  156. package/dist/cjs/shell/BackofficeShell.native.js +1 -1
  157. package/dist/cjs/shell/BackofficeShell.native.js.map +1 -1
  158. package/dist/cjs/shell/HomeRedirect.native.js +1 -1
  159. package/dist/cjs/shell/HomeRedirect.native.js.map +1 -1
  160. package/dist/cjs/shell/NotFoundScreen.native.js +1 -1
  161. package/dist/cjs/shell/NotFoundScreen.native.js.map +1 -1
  162. package/dist/cjs/shell/SlugScreen.native.js +1 -1
  163. package/dist/cjs/shell/SlugScreen.native.js.map +1 -1
  164. package/dist/cjs/shell/WorkspaceSidebar.cjs +9 -7
  165. package/dist/cjs/shell/WorkspaceSidebar.native.js +10 -8
  166. package/dist/cjs/shell/WorkspaceSidebar.native.js.map +1 -1
  167. package/dist/cjs/shell/useWorkspaces.native.js.map +1 -1
  168. package/dist/cjs/shell/workspaceIcons.native.js.map +1 -1
  169. package/dist/cjs/views/CalendarView.cjs +5 -1
  170. package/dist/cjs/views/CalendarView.native.js +8 -3
  171. package/dist/cjs/views/CalendarView.native.js.map +1 -1
  172. package/dist/cjs/views/DashboardView.cjs +9 -3
  173. package/dist/cjs/views/DashboardView.native.js +10 -4
  174. package/dist/cjs/views/DashboardView.native.js.map +1 -1
  175. package/dist/cjs/views/DoctypeViewScreen.native.js.map +1 -1
  176. package/dist/cjs/views/ImageView.native.js +1 -1
  177. package/dist/cjs/views/ImageView.native.js.map +1 -1
  178. package/dist/cjs/views/KanbanView.cjs +5 -2
  179. package/dist/cjs/views/KanbanView.native.js +8 -4
  180. package/dist/cjs/views/KanbanView.native.js.map +1 -1
  181. package/dist/cjs/views/ReportView.cjs +8 -5
  182. package/dist/cjs/views/ReportView.native.js +12 -7
  183. package/dist/cjs/views/ReportView.native.js.map +1 -1
  184. package/dist/cjs/views/TreeView.native.js +1 -1
  185. package/dist/cjs/views/TreeView.native.js.map +1 -1
  186. package/dist/cjs/views/ViewHeader.cjs +8 -1
  187. package/dist/cjs/views/ViewHeader.native.js +9 -2
  188. package/dist/cjs/views/ViewHeader.native.js.map +1 -1
  189. package/dist/cjs/views/ViewStates.native.js +1 -1
  190. package/dist/cjs/views/ViewStates.native.js.map +1 -1
  191. package/dist/cjs/views/ViewSwitcherMenu.native.js +1 -1
  192. package/dist/cjs/views/ViewSwitcherMenu.native.js.map +1 -1
  193. package/dist/cjs/views/calendar-field-selector.native.js +1 -1
  194. package/dist/cjs/views/calendar-field-selector.native.js.map +1 -1
  195. package/dist/cjs/views/connection.native.js.map +1 -1
  196. package/dist/cjs/views/dashboard-data.cjs +17 -11
  197. package/dist/cjs/views/dashboard-data.native.js +20 -13
  198. package/dist/cjs/views/dashboard-data.native.js.map +1 -1
  199. package/dist/cjs/views/deskViewConfigs.native.js.map +1 -1
  200. package/dist/cjs/views/kanban-board-controls.native.js +1 -1
  201. package/dist/cjs/views/kanban-board-controls.native.js.map +1 -1
  202. package/dist/cjs/views/kanban-field-picker.native.js +1 -1
  203. package/dist/cjs/views/kanban-field-picker.native.js.map +1 -1
  204. package/dist/cjs/views/kanbanBoardOps.native.js.map +1 -1
  205. package/dist/cjs/views/report-controls.native.js +1 -1
  206. package/dist/cjs/views/report-controls.native.js.map +1 -1
  207. package/dist/cjs/views/viewAvailability.native.js.map +1 -1
  208. package/dist/cjs/views/viewMeta.native.js.map +1 -1
  209. package/dist/cjs/workspace/WorkspaceChartBlock.native.js +1 -1
  210. package/dist/cjs/workspace/WorkspaceChartBlock.native.js.map +1 -1
  211. package/dist/cjs/workspace/WorkspaceGrid.native.js.map +1 -1
  212. package/dist/cjs/workspace/WorkspaceLinkCard.native.js +1 -1
  213. package/dist/cjs/workspace/WorkspaceLinkCard.native.js.map +1 -1
  214. package/dist/cjs/workspace/WorkspaceLinkDirectory.native.js +1 -1
  215. package/dist/cjs/workspace/WorkspaceLinkDirectory.native.js.map +1 -1
  216. package/dist/cjs/workspace/WorkspaceNumberCard.native.js +1 -1
  217. package/dist/cjs/workspace/WorkspaceNumberCard.native.js.map +1 -1
  218. package/dist/cjs/workspace/WorkspaceQuickList.native.js +1 -1
  219. package/dist/cjs/workspace/WorkspaceQuickList.native.js.map +1 -1
  220. package/dist/cjs/workspace/WorkspaceRecents.native.js +1 -1
  221. package/dist/cjs/workspace/WorkspaceRecents.native.js.map +1 -1
  222. package/dist/cjs/workspace/WorkspaceScreen.native.js +1 -1
  223. package/dist/cjs/workspace/WorkspaceScreen.native.js.map +1 -1
  224. package/dist/cjs/workspace/WorkspaceShortcut.native.js +1 -1
  225. package/dist/cjs/workspace/WorkspaceShortcut.native.js.map +1 -1
  226. package/dist/cjs/workspace/parseContent.native.js.map +1 -1
  227. package/dist/cjs/workspace/types.native.js.map +1 -1
  228. package/dist/cjs/workspace/useDashboardChart.native.js.map +1 -1
  229. package/dist/cjs/workspace/useWorkspaceDoc.native.js.map +1 -1
  230. package/dist/esm/chrome/BackofficeAwesomebar.native.js.map +1 -1
  231. package/dist/esm/chrome/CommandPalette.native.js.map +1 -1
  232. package/dist/esm/chrome/HelpMenu.native.js.map +1 -1
  233. package/dist/esm/chrome/NotificationsButton.native.js.map +1 -1
  234. package/dist/esm/chrome/UserMenu.native.js.map +1 -1
  235. package/dist/esm/chrome/awesomebar-data.mjs +4 -2
  236. package/dist/esm/chrome/awesomebar-data.mjs.map +1 -1
  237. package/dist/esm/chrome/awesomebar-data.native.js +7 -4
  238. package/dist/esm/chrome/awesomebar-data.native.js.map +1 -1
  239. package/dist/esm/chrome/command-palette-model.native.js.map +1 -1
  240. package/dist/esm/chrome/help-about-dialog.mjs +2 -2
  241. package/dist/esm/chrome/help-about-dialog.mjs.map +1 -1
  242. package/dist/esm/chrome/help-about-dialog.native.js +2 -2
  243. package/dist/esm/chrome/help-about-dialog.native.js.map +1 -1
  244. package/dist/esm/chrome/help-shortcuts-dialog.mjs +2 -2
  245. package/dist/esm/chrome/help-shortcuts-dialog.mjs.map +1 -1
  246. package/dist/esm/chrome/help-shortcuts-dialog.native.js +2 -2
  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.mjs +8 -6
  250. package/dist/esm/chrome/notifications-panel.mjs.map +1 -1
  251. package/dist/esm/chrome/notifications-panel.native.js +8 -6
  252. package/dist/esm/chrome/notifications-panel.native.js.map +1 -1
  253. package/dist/esm/chrome/notifications-utils.native.js.map +1 -1
  254. package/dist/esm/chrome/shortcuts.native.js.map +1 -1
  255. package/dist/esm/chrome/user-session.native.js.map +1 -1
  256. package/dist/esm/config/BackofficeProvider.native.js.map +1 -1
  257. package/dist/esm/config/capabilities.native.js.map +1 -1
  258. package/dist/esm/config/events.native.js.map +1 -1
  259. package/dist/esm/config/slots.native.js.map +1 -1
  260. package/dist/esm/desk/Desk.native.js.map +1 -1
  261. package/dist/esm/desk/DeskSurface.native.js.map +1 -1
  262. package/dist/esm/desk/resolveDeskPath.native.js.map +1 -1
  263. package/dist/esm/desk/scope.native.js.map +1 -1
  264. package/dist/esm/desk/target.native.js.map +1 -1
  265. package/dist/esm/form/DocFormScreen.mjs +43 -43
  266. package/dist/esm/form/DocFormScreen.mjs.map +1 -1
  267. package/dist/esm/form/DocFormScreen.native.js +43 -43
  268. package/dist/esm/form/DocFormScreen.native.js.map +1 -1
  269. package/dist/esm/form/FormConnections.native.js.map +1 -1
  270. package/dist/esm/form/FormDialogs.native.js.map +1 -1
  271. package/dist/esm/form/FormErrorBoundary.native.js.map +1 -1
  272. package/dist/esm/form/FormHeaderCluster.native.js.map +1 -1
  273. package/dist/esm/form/FormSidebarPanel.native.js.map +1 -1
  274. package/dist/esm/form/FormTimeline.native.js.map +1 -1
  275. package/dist/esm/form/FormToolbar.native.js.map +1 -1
  276. package/dist/esm/form/connections-data.native.js.map +1 -1
  277. package/dist/esm/form/createPrefill.native.js.map +1 -1
  278. package/dist/esm/form/dependsOn.native.js.map +1 -1
  279. package/dist/esm/form/dirtyTracking.native.js.map +1 -1
  280. package/dist/esm/form/docinfo.native.js.map +1 -1
  281. package/dist/esm/form/fetchFrom.native.js.map +1 -1
  282. package/dist/esm/form/fieldPermissions.native.js.map +1 -1
  283. package/dist/esm/form/formActions.native.js.map +1 -1
  284. package/dist/esm/form/formLayout.native.js.map +1 -1
  285. package/dist/esm/form/platformHooks.native.js.map +1 -1
  286. package/dist/esm/form/sidebar-attachments.native.js.map +1 -1
  287. package/dist/esm/form/sidebar-dialogs.native.js.map +1 -1
  288. package/dist/esm/form/sidebar-people.mjs +6 -3
  289. package/dist/esm/form/sidebar-people.mjs.map +1 -1
  290. package/dist/esm/form/sidebar-people.native.js +6 -3
  291. package/dist/esm/form/sidebar-people.native.js.map +1 -1
  292. package/dist/esm/form/sidebar-rpc.native.js.map +1 -1
  293. package/dist/esm/form/sidebar-utils.native.js.map +1 -1
  294. package/dist/esm/form/timeline-entries.native.js.map +1 -1
  295. package/dist/esm/form/timeline-utils.native.js.map +1 -1
  296. package/dist/esm/form/useFormEngine.native.js.map +1 -1
  297. package/dist/esm/i18n/en.mjs +1 -1
  298. package/dist/esm/i18n/en.native.js +1 -1
  299. package/dist/esm/i18n/en.native.js.map +1 -1
  300. package/dist/esm/i18n/index.native.js.map +1 -1
  301. package/dist/esm/index.native.js.map +1 -1
  302. package/dist/esm/list/AddTagsDialog.native.js.map +1 -1
  303. package/dist/esm/list/AssignToDialog.native.js.map +1 -1
  304. package/dist/esm/list/DoctypeListScreen.native.js.map +1 -1
  305. package/dist/esm/list/ListBulkActionsBar.mjs +2 -2
  306. package/dist/esm/list/ListBulkActionsBar.mjs.map +1 -1
  307. package/dist/esm/list/ListBulkActionsBar.native.js +2 -3
  308. package/dist/esm/list/ListBulkActionsBar.native.js.map +1 -1
  309. package/dist/esm/list/ListFilterBar.native.js.map +1 -1
  310. package/dist/esm/list/ListSidebar.native.js.map +1 -1
  311. package/dist/esm/list/bulk-edit-dialog.native.js.map +1 -1
  312. package/dist/esm/list/bulk-export.native.js.map +1 -1
  313. package/dist/esm/list/bulk-submit-cancel.native.js.map +1 -1
  314. package/dist/esm/list/bulkActions.native.js.map +1 -1
  315. package/dist/esm/list/filter-chips.native.js.map +1 -1
  316. package/dist/esm/list/filter-editor.native.js.map +1 -1
  317. package/dist/esm/list/filter-fields.native.js.map +1 -1
  318. package/dist/esm/list/filter-saved.native.js.map +1 -1
  319. package/dist/esm/list/filter-sort.native.js.map +1 -1
  320. package/dist/esm/list/filter-standard.native.js.map +1 -1
  321. package/dist/esm/list/filterConversion.native.js.map +1 -1
  322. package/dist/esm/list/list-tools-sheet.native.js.map +1 -1
  323. package/dist/esm/list/listColumns.native.js.map +1 -1
  324. package/dist/esm/list/listFields.native.js.map +1 -1
  325. package/dist/esm/list/listFormat.native.js.map +1 -1
  326. package/dist/esm/list/listUrlState.native.js.map +1 -1
  327. package/dist/esm/list/sidebar-section.native.js.map +1 -1
  328. package/dist/esm/list/sidebar-stats.native.js.map +1 -1
  329. package/dist/esm/list/statusColors.native.js.map +1 -1
  330. package/dist/esm/navigation/navigator.native.js.map +1 -1
  331. package/dist/esm/navigation/paths.native.js.map +1 -1
  332. package/dist/esm/oneAdapter/index.native.js.map +1 -1
  333. package/dist/esm/quickEntry/QuickEntryDialog.native.js.map +1 -1
  334. package/dist/esm/quickEntry/quickEntryPlan.native.js.map +1 -1
  335. package/dist/esm/report/DoctypeReportView.native.js.map +1 -1
  336. package/dist/esm/report/QueryReportScreen.native.js.map +1 -1
  337. package/dist/esm/report/queryReportColumns.native.js.map +1 -1
  338. package/dist/esm/report/queryReportFilterBar.native.js.map +1 -1
  339. package/dist/esm/report/queryReportUrlState.native.js.map +1 -1
  340. package/dist/esm/report/report-grid.native.js.map +1 -1
  341. package/dist/esm/report/report-toolbar.native.js.map +1 -1
  342. package/dist/esm/report/reportShapes.native.js.map +1 -1
  343. package/dist/esm/report/reportViewModel.native.js.map +1 -1
  344. package/dist/esm/report/savedReports.native.js.map +1 -1
  345. package/dist/esm/report/useQueryReport.native.js.map +1 -1
  346. package/dist/esm/shared/deskLinks.native.js.map +1 -1
  347. package/dist/esm/shared/listNavContext.native.js.map +1 -1
  348. package/dist/esm/shared/measures.native.js.map +1 -1
  349. package/dist/esm/shared/types.native.js.map +1 -1
  350. package/dist/esm/shared/useDocinfo.native.js.map +1 -1
  351. package/dist/esm/shared/useDoctypeMeta.native.js.map +1 -1
  352. package/dist/esm/shared/useFrappeApp.native.js.map +1 -1
  353. package/dist/esm/shared/useRecentVisit.native.js.map +1 -1
  354. package/dist/esm/shared/useSessionUserId.native.js.map +1 -1
  355. package/dist/esm/shared/useSlugTarget.native.js.map +1 -1
  356. package/dist/esm/shared/useUserRoles.native.js.map +1 -1
  357. package/dist/esm/shell/BackofficeShell.native.js.map +1 -1
  358. package/dist/esm/shell/HomeRedirect.native.js.map +1 -1
  359. package/dist/esm/shell/NotFoundScreen.native.js.map +1 -1
  360. package/dist/esm/shell/SlugScreen.native.js.map +1 -1
  361. package/dist/esm/shell/WorkspaceSidebar.mjs +9 -7
  362. package/dist/esm/shell/WorkspaceSidebar.mjs.map +1 -1
  363. package/dist/esm/shell/WorkspaceSidebar.native.js +9 -7
  364. package/dist/esm/shell/WorkspaceSidebar.native.js.map +1 -1
  365. package/dist/esm/shell/useWorkspaces.native.js.map +1 -1
  366. package/dist/esm/shell/workspaceIcons.native.js.map +1 -1
  367. package/dist/esm/views/CalendarView.mjs +6 -2
  368. package/dist/esm/views/CalendarView.mjs.map +1 -1
  369. package/dist/esm/views/CalendarView.native.js +8 -3
  370. package/dist/esm/views/CalendarView.native.js.map +1 -1
  371. package/dist/esm/views/DashboardView.mjs +9 -3
  372. package/dist/esm/views/DashboardView.mjs.map +1 -1
  373. package/dist/esm/views/DashboardView.native.js +9 -3
  374. package/dist/esm/views/DashboardView.native.js.map +1 -1
  375. package/dist/esm/views/DoctypeViewScreen.native.js.map +1 -1
  376. package/dist/esm/views/ImageView.native.js.map +1 -1
  377. package/dist/esm/views/KanbanView.mjs +6 -3
  378. package/dist/esm/views/KanbanView.mjs.map +1 -1
  379. package/dist/esm/views/KanbanView.native.js +8 -4
  380. package/dist/esm/views/KanbanView.native.js.map +1 -1
  381. package/dist/esm/views/ReportView.mjs +8 -5
  382. package/dist/esm/views/ReportView.mjs.map +1 -1
  383. package/dist/esm/views/ReportView.native.js +11 -6
  384. package/dist/esm/views/ReportView.native.js.map +1 -1
  385. package/dist/esm/views/TreeView.native.js.map +1 -1
  386. package/dist/esm/views/ViewHeader.mjs +8 -1
  387. package/dist/esm/views/ViewHeader.mjs.map +1 -1
  388. package/dist/esm/views/ViewHeader.native.js +8 -1
  389. package/dist/esm/views/ViewHeader.native.js.map +1 -1
  390. package/dist/esm/views/ViewStates.native.js.map +1 -1
  391. package/dist/esm/views/ViewSwitcherMenu.native.js.map +1 -1
  392. package/dist/esm/views/calendar-field-selector.native.js.map +1 -1
  393. package/dist/esm/views/connection.native.js.map +1 -1
  394. package/dist/esm/views/dashboard-data.mjs +17 -11
  395. package/dist/esm/views/dashboard-data.mjs.map +1 -1
  396. package/dist/esm/views/dashboard-data.native.js +20 -13
  397. package/dist/esm/views/dashboard-data.native.js.map +1 -1
  398. package/dist/esm/views/deskViewConfigs.native.js.map +1 -1
  399. package/dist/esm/views/kanban-board-controls.native.js.map +1 -1
  400. package/dist/esm/views/kanban-field-picker.native.js.map +1 -1
  401. package/dist/esm/views/kanbanBoardOps.native.js.map +1 -1
  402. package/dist/esm/views/report-controls.native.js.map +1 -1
  403. package/dist/esm/views/viewAvailability.native.js.map +1 -1
  404. package/dist/esm/views/viewMeta.native.js.map +1 -1
  405. package/dist/esm/workspace/WorkspaceChartBlock.native.js.map +1 -1
  406. package/dist/esm/workspace/WorkspaceGrid.native.js.map +1 -1
  407. package/dist/esm/workspace/WorkspaceLinkCard.native.js.map +1 -1
  408. package/dist/esm/workspace/WorkspaceLinkDirectory.native.js.map +1 -1
  409. package/dist/esm/workspace/WorkspaceNumberCard.native.js.map +1 -1
  410. package/dist/esm/workspace/WorkspaceQuickList.native.js.map +1 -1
  411. package/dist/esm/workspace/WorkspaceRecents.native.js.map +1 -1
  412. package/dist/esm/workspace/WorkspaceScreen.native.js.map +1 -1
  413. package/dist/esm/workspace/WorkspaceShortcut.native.js.map +1 -1
  414. package/dist/esm/workspace/parseContent.native.js.map +1 -1
  415. package/dist/esm/workspace/types.native.js.map +1 -1
  416. package/dist/esm/workspace/useDashboardChart.native.js.map +1 -1
  417. package/dist/esm/workspace/useWorkspaceDoc.native.js.map +1 -1
  418. package/dist/jsx/chrome/awesomebar-data.mjs +4 -2
  419. package/dist/jsx/chrome/awesomebar-data.mjs.map +1 -1
  420. package/dist/jsx/chrome/awesomebar-data.native.js +7 -4
  421. package/dist/jsx/chrome/awesomebar-data.native.js.map +1 -1
  422. package/dist/jsx/chrome/help-about-dialog.mjs +2 -2
  423. package/dist/jsx/chrome/help-about-dialog.mjs.map +1 -1
  424. package/dist/jsx/chrome/help-about-dialog.native.js +2 -2
  425. package/dist/jsx/chrome/help-shortcuts-dialog.mjs +2 -2
  426. package/dist/jsx/chrome/help-shortcuts-dialog.mjs.map +1 -1
  427. package/dist/jsx/chrome/help-shortcuts-dialog.native.js +2 -2
  428. package/dist/jsx/chrome/help-shortcuts-dialog.native.js.map +1 -1
  429. package/dist/jsx/chrome/notifications-panel.mjs +8 -6
  430. package/dist/jsx/chrome/notifications-panel.mjs.map +1 -1
  431. package/dist/jsx/chrome/notifications-panel.native.js +8 -6
  432. package/dist/jsx/chrome/notifications-panel.native.js.map +1 -1
  433. package/dist/jsx/form/DocFormScreen.mjs +43 -43
  434. package/dist/jsx/form/DocFormScreen.mjs.map +1 -1
  435. package/dist/jsx/form/DocFormScreen.native.js +43 -43
  436. package/dist/jsx/form/DocFormScreen.native.js.map +1 -1
  437. package/dist/jsx/form/sidebar-people.mjs +6 -3
  438. package/dist/jsx/form/sidebar-people.mjs.map +1 -1
  439. package/dist/jsx/form/sidebar-people.native.js +5 -2
  440. package/dist/jsx/form/sidebar-people.native.js.map +1 -1
  441. package/dist/jsx/i18n/en.mjs +1 -1
  442. package/dist/jsx/i18n/en.native.js +1 -1
  443. package/dist/jsx/i18n/en.native.js.map +1 -1
  444. package/dist/jsx/index.native.js.map +1 -1
  445. package/dist/jsx/list/ListBulkActionsBar.mjs +2 -2
  446. package/dist/jsx/list/ListBulkActionsBar.mjs.map +1 -1
  447. package/dist/jsx/list/ListBulkActionsBar.native.js +1 -2
  448. package/dist/jsx/list/ListBulkActionsBar.native.js.map +1 -1
  449. package/dist/jsx/shell/WorkspaceSidebar.mjs +9 -7
  450. package/dist/jsx/shell/WorkspaceSidebar.mjs.map +1 -1
  451. package/dist/jsx/shell/WorkspaceSidebar.native.js +9 -7
  452. package/dist/jsx/shell/WorkspaceSidebar.native.js.map +1 -1
  453. package/dist/jsx/views/CalendarView.mjs +6 -2
  454. package/dist/jsx/views/CalendarView.mjs.map +1 -1
  455. package/dist/jsx/views/CalendarView.native.js +7 -2
  456. package/dist/jsx/views/CalendarView.native.js.map +1 -1
  457. package/dist/jsx/views/DashboardView.mjs +9 -3
  458. package/dist/jsx/views/DashboardView.mjs.map +1 -1
  459. package/dist/jsx/views/DashboardView.native.js +9 -3
  460. package/dist/jsx/views/DashboardView.native.js.map +1 -1
  461. package/dist/jsx/views/KanbanView.mjs +6 -3
  462. package/dist/jsx/views/KanbanView.mjs.map +1 -1
  463. package/dist/jsx/views/KanbanView.native.js +7 -3
  464. package/dist/jsx/views/KanbanView.native.js.map +1 -1
  465. package/dist/jsx/views/ReportView.mjs +8 -5
  466. package/dist/jsx/views/ReportView.mjs.map +1 -1
  467. package/dist/jsx/views/ReportView.native.js +11 -6
  468. package/dist/jsx/views/ReportView.native.js.map +1 -1
  469. package/dist/jsx/views/ViewHeader.mjs +8 -1
  470. package/dist/jsx/views/ViewHeader.mjs.map +1 -1
  471. package/dist/jsx/views/ViewHeader.native.js +8 -1
  472. package/dist/jsx/views/ViewHeader.native.js.map +1 -1
  473. package/dist/jsx/views/dashboard-data.mjs +17 -11
  474. package/dist/jsx/views/dashboard-data.mjs.map +1 -1
  475. package/dist/jsx/views/dashboard-data.native.js +20 -13
  476. package/dist/jsx/views/dashboard-data.native.js.map +1 -1
  477. package/package.json +12 -12
  478. package/src/chrome/NotificationsButton.screen.spec.tsx +162 -0
  479. package/src/chrome/UserMenu.screen.spec.tsx +107 -0
  480. package/src/chrome/awesomebar-data.auth.spec.ts +56 -0
  481. package/src/chrome/awesomebar-data.tsx +4 -2
  482. package/src/chrome/help-about-dialog.tsx +2 -2
  483. package/src/chrome/help-shortcuts-dialog.tsx +2 -2
  484. package/src/chrome/notifications-panel.tsx +8 -9
  485. package/src/form/DocFormScreen.tsx +54 -45
  486. package/src/form/FormConnections.screen.spec.tsx +153 -0
  487. package/src/form/FormDialogs.screen.spec.tsx +119 -0
  488. package/src/form/FormToolbar.screen.spec.tsx +147 -0
  489. package/src/form/sidebar-people.tsx +7 -5
  490. package/src/i18n/en.ts +1 -1
  491. package/src/list/ListBulkActionsBar.screen.spec.tsx +181 -0
  492. package/src/list/ListBulkActionsBar.tsx +6 -2
  493. package/src/list/ListFilterBar.screen.spec.tsx +176 -0
  494. package/src/list/ListSidebar.screen.spec.tsx +202 -0
  495. package/src/quickEntry/QuickEntryDialog.screen.spec.tsx +143 -0
  496. package/src/report/DoctypeReportView.screen.spec.tsx +154 -0
  497. package/src/shell/WorkspaceSidebar.tsx +10 -9
  498. package/src/views/CalendarView.screen.spec.tsx +241 -0
  499. package/src/views/CalendarView.tsx +11 -3
  500. package/src/views/DashboardView.screen.spec.tsx +144 -0
  501. package/src/views/DashboardView.tsx +7 -3
  502. package/src/views/ImageView.screen.spec.tsx +108 -0
  503. package/src/views/KanbanView.screen.spec.tsx +282 -0
  504. package/src/views/KanbanView.tsx +7 -3
  505. package/src/views/ReportView.screen.spec.tsx +108 -0
  506. package/src/views/ReportView.tsx +10 -5
  507. package/src/views/ViewHeader.screen.spec.tsx +185 -0
  508. package/src/views/ViewHeader.tsx +4 -1
  509. package/src/views/dashboard-data.tsx +21 -12
  510. package/types/chrome/awesomebar-data.d.ts.map +1 -1
  511. package/types/chrome/notifications-panel.d.ts.map +1 -1
  512. package/types/form/DocFormScreen.d.ts.map +1 -1
  513. package/types/form/sidebar-people.d.ts.map +1 -1
  514. package/types/i18n/en.d.ts +1 -1
  515. package/types/list/ListBulkActionsBar.d.ts.map +1 -1
  516. package/types/shell/WorkspaceSidebar.d.ts.map +1 -1
  517. package/types/views/CalendarView.d.ts.map +1 -1
  518. package/types/views/DashboardView.d.ts.map +1 -1
  519. package/types/views/KanbanView.d.ts.map +1 -1
  520. package/types/views/ReportView.d.ts.map +1 -1
  521. package/types/views/ViewHeader.d.ts.map +1 -1
  522. package/types/views/dashboard-data.d.ts +4 -2
  523. package/types/views/dashboard-data.d.ts.map +1 -1
@@ -59,12 +59,12 @@ function bucketRowsByDay(rows) {
59
59
  }
60
60
  return counts;
61
61
  }
62
- async function fetchLiveDayCounts(connection, doctype, cutoff) {
62
+ async function fetchLiveDayCounts(connection, doctype, cutoff, scope) {
63
63
  const db = new DbModule(new HttpClient(connection.baseURL, toAuthConfig(connection.auth)));
64
64
  try {
65
65
  const rows = await db.getDocList(doctype, {
66
66
  fields: ["date(creation) as _day", "count(name) as _aggregate_value"],
67
- filters: [["creation", ">=", cutoff]],
67
+ filters: [...scope, ["creation", ">=", cutoff]],
68
68
  groupBy: "date(creation)",
69
69
  limit: 0
70
70
  });
@@ -79,20 +79,22 @@ async function fetchLiveDayCounts(connection, doctype, cutoff) {
79
79
  } catch {
80
80
  const rows = await db.getDocList(doctype, {
81
81
  fields: ["creation"],
82
- filters: [["creation", ">=", cutoff]],
82
+ filters: [...scope, ["creation", ">=", cutoff]],
83
83
  limit: 0
84
84
  });
85
85
  return bucketRowsByDay(rows);
86
86
  }
87
87
  }
88
- async function fetchFixtureDayCounts(fixtures, doctype) {
88
+ async function fetchFixtureDayCounts(fixtures, doctype, scope) {
89
89
  const rows = await fixtures.getList(doctype, {
90
- fields: ["creation"]
90
+ fields: ["creation"],
91
+ filters: scope
91
92
  });
92
93
  return bucketRowsByDay(rows);
93
94
  }
94
95
  const REFETCH_DEBOUNCE_MS = 300;
95
- function useWeeklyCreated(connection, doctype, weeks = WEEKS_WINDOW) {
96
+ const NO_SCOPE = [];
97
+ function useWeeklyCreated(connection, doctype, weeks = WEEKS_WINDOW, scope = NO_SCOPE) {
96
98
  const [data, setData] = useState(void 0);
97
99
  const [isLoading, setIsLoading] = useState(true);
98
100
  const [isStale, setIsStale] = useState(false);
@@ -102,24 +104,27 @@ function useWeeklyCreated(connection, doctype, weeks = WEEKS_WINDOW) {
102
104
  connectionRef.current = connection;
103
105
  const specRef = useRef({
104
106
  doctype,
105
- weeks
107
+ weeks,
108
+ scope
106
109
  });
107
110
  specRef.current = {
108
111
  doctype,
109
- weeks
112
+ weeks,
113
+ scope
110
114
  };
111
115
  const runFetch = useCallback(async () => {
112
116
  const conn = connectionRef.current;
113
117
  const {
114
118
  doctype: currentDoctype,
115
- weeks: currentWeeks
119
+ weeks: currentWeeks,
120
+ scope: currentScope
116
121
  } = specRef.current;
117
122
  if (!conn || !currentDoctype) return;
118
123
  const seq = ++fetchSeq.current;
119
124
  try {
120
125
  const firstWeek = weekStart(/* @__PURE__ */new Date());
121
126
  firstWeek.setDate(firstWeek.getDate() - (currentWeeks - 1) * 7);
122
- const dayCounts = conn.fixtures ? await fetchFixtureDayCounts(conn.fixtures, currentDoctype) : await fetchLiveDayCounts(conn, currentDoctype, isoDate(firstWeek));
127
+ const dayCounts = conn.fixtures ? await fetchFixtureDayCounts(conn.fixtures, currentDoctype, currentScope) : await fetchLiveDayCounts(conn, currentDoctype, isoDate(firstWeek), currentScope);
123
128
  const weekCounts = /* @__PURE__ */new Map();
124
129
  for (const [day, count] of dayCounts) {
125
130
  const date = parseIsoDateLocal(day);
@@ -166,12 +171,13 @@ function useWeeklyCreated(connection, doctype, weeks = WEEKS_WINDOW) {
166
171
  }, []);
167
172
  const baseURL = connection?.baseURL;
168
173
  const hasFixtures = !!connection?.fixtures;
174
+ const scopeKey = JSON.stringify(scope);
169
175
  useEffect(() => {
170
176
  if (!baseURL || !doctype) return;
171
177
  setIsLoading(true);
172
178
  setError(void 0);
173
179
  void runFetch();
174
- }, [baseURL, hasFixtures, doctype, weeks, runFetch]);
180
+ }, [baseURL, hasFixtures, doctype, weeks, scopeKey, runFetch]);
175
181
  useFrappeDoctypeEvents(connection, doctype, () => {
176
182
  setIsStale(true);
177
183
  void debouncerRef.current?.maybeExecute();
@@ -1 +1 @@
1
- {"version":3,"names":["AsyncDebouncer","DbModule","HttpClient","useFrappeDoctypeEvents","formatAbsoluteDate","formatCalendarDate","useCallback","useEffect","useRef","useState","createBackofficePaths","WEEKS_WINDOW","MAX_STATUS_KPI_CARDS","isSelectCandidate","field","fieldtype","hidden","options","trim","length","detectStatusField","meta","candidates","fields","filter","find","fieldname","defaultPaths","filteredListHref","doctype","value","paths","filters","list","encodeURIComponent","JSON","stringify","isoDate","date","daysAgoIso","days","Date","setDate","getDate","weekStart","copy","getFullYear","getMonth","mondayOffset","getDay","parseIsoDateLocal","y","m","d","slice","split","map","Number","isNaN","getTime","parseFrappeDatetime","replace","toAuthConfig","auth","useToken","token","type","bucketRowsByDay","rows","counts","Map","row","created","creation","day","set","get","fetchLiveDayCounts","connection","cutoff","db","baseURL","getDocList","groupBy","limit","_day","_aggregate_value","isFinite","fetchFixtureDayCounts","fixtures","getList","REFETCH_DEBOUNCE_MS","useWeeklyCreated","weeks","data","setData","isLoading","setIsLoading","isStale","setIsStale","error","setError","fetchSeq","connectionRef","current","specRef","runFetch","conn","currentDoctype","currentWeeks","seq","firstWeek","dayCounts","weekCounts","count","bucket","series","i","week","push","label","year","err","Error","String","debouncerRef","wait","cancel","hasFixtures","maybeExecute","refresh","isEmpty","every","point"],"sources":["../../../src/views/dashboard-data.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["AsyncDebouncer","DbModule","HttpClient","useFrappeDoctypeEvents","formatAbsoluteDate","formatCalendarDate","useCallback","useEffect","useRef","useState","createBackofficePaths","WEEKS_WINDOW","MAX_STATUS_KPI_CARDS","isSelectCandidate","field","fieldtype","hidden","options","trim","length","detectStatusField","meta","candidates","fields","filter","find","fieldname","defaultPaths","filteredListHref","doctype","value","paths","filters","list","encodeURIComponent","JSON","stringify","isoDate","date","daysAgoIso","days","Date","setDate","getDate","weekStart","copy","getFullYear","getMonth","mondayOffset","getDay","parseIsoDateLocal","y","m","d","slice","split","map","Number","isNaN","getTime","parseFrappeDatetime","replace","toAuthConfig","auth","useToken","token","type","bucketRowsByDay","rows","counts","Map","row","created","creation","day","set","get","fetchLiveDayCounts","connection","cutoff","scope","db","baseURL","getDocList","groupBy","limit","_day","_aggregate_value","isFinite","fetchFixtureDayCounts","fixtures","getList","REFETCH_DEBOUNCE_MS","NO_SCOPE","useWeeklyCreated","weeks","data","setData","isLoading","setIsLoading","isStale","setIsStale","error","setError","fetchSeq","connectionRef","current","specRef","runFetch","conn","currentDoctype","currentWeeks","currentScope","seq","firstWeek","dayCounts","weekCounts","count","bucket","series","i","week","push","label","year","err","Error","String","debouncerRef","wait","cancel","hasFixtures","scopeKey","maybeExecute","refresh","isEmpty","every","point"],"sources":["../../../src/views/dashboard-data.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -141,12 +141,12 @@ function bucketRowsByDay(rows) {
141
141
  }
142
142
  return counts;
143
143
  }
144
- async function fetchLiveDayCounts(connection, doctype, cutoff) {
144
+ async function fetchLiveDayCounts(connection, doctype, cutoff, scope) {
145
145
  var db = new import_frappe.DbModule(new import_frappe.HttpClient(connection.baseURL, toAuthConfig(connection.auth)));
146
146
  try {
147
147
  var rows = await db.getDocList(doctype, {
148
148
  fields: ["date(creation) as _day", "count(name) as _aggregate_value"],
149
- filters: [["creation", ">=", cutoff]],
149
+ filters: [...scope, ["creation", ">=", cutoff]],
150
150
  groupBy: "date(creation)",
151
151
  limit: 0
152
152
  });
@@ -181,21 +181,24 @@ async function fetchLiveDayCounts(connection, doctype, cutoff) {
181
181
  } catch (unused) {
182
182
  var rows1 = await db.getDocList(doctype, {
183
183
  fields: ["creation"],
184
- filters: [["creation", ">=", cutoff]],
184
+ filters: [...scope, ["creation", ">=", cutoff]],
185
185
  limit: 0
186
186
  });
187
187
  return bucketRowsByDay(rows1);
188
188
  }
189
189
  }
190
- async function fetchFixtureDayCounts(fixtures, doctype) {
190
+ async function fetchFixtureDayCounts(fixtures, doctype, scope) {
191
191
  var rows = await fixtures.getList(doctype, {
192
- fields: ["creation"]
192
+ fields: ["creation"],
193
+ filters: scope
193
194
  });
194
195
  return bucketRowsByDay(rows);
195
196
  }
196
197
  var REFETCH_DEBOUNCE_MS = 300;
198
+ var NO_SCOPE = [];
197
199
  function useWeeklyCreated(connection, doctype) {
198
- var weeks = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : WEEKS_WINDOW;
200
+ var weeks = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : WEEKS_WINDOW,
201
+ scope = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : NO_SCOPE;
199
202
  var [data, setData] = (0, import_react2.useState)(void 0);
200
203
  var [isLoading, setIsLoading] = (0, import_react2.useState)(true);
201
204
  var [isStale, setIsStale] = (0, import_react2.useState)(false);
@@ -205,24 +208,27 @@ function useWeeklyCreated(connection, doctype) {
205
208
  connectionRef.current = connection;
206
209
  var specRef = (0, import_react2.useRef)({
207
210
  doctype,
208
- weeks
211
+ weeks,
212
+ scope
209
213
  });
210
214
  specRef.current = {
211
215
  doctype,
212
- weeks
216
+ weeks,
217
+ scope
213
218
  };
214
219
  var runFetch = (0, import_react2.useCallback)(async function () {
215
220
  var conn = connectionRef.current;
216
221
  var {
217
222
  doctype: currentDoctype,
218
- weeks: currentWeeks
223
+ weeks: currentWeeks,
224
+ scope: currentScope
219
225
  } = specRef.current;
220
226
  if (!conn || !currentDoctype) return;
221
227
  var seq = ++fetchSeq.current;
222
228
  try {
223
229
  var firstWeek = weekStart(/* @__PURE__ */new Date());
224
230
  firstWeek.setDate(firstWeek.getDate() - (currentWeeks - 1) * 7);
225
- var dayCounts = conn.fixtures ? await fetchFixtureDayCounts(conn.fixtures, currentDoctype) : await fetchLiveDayCounts(conn, currentDoctype, isoDate(firstWeek));
231
+ var dayCounts = conn.fixtures ? await fetchFixtureDayCounts(conn.fixtures, currentDoctype, currentScope) : await fetchLiveDayCounts(conn, currentDoctype, isoDate(firstWeek), currentScope);
226
232
  var weekCounts = /* @__PURE__ */new Map();
227
233
  var _iteratorNormalCompletion = true,
228
234
  _didIteratorError = false,
@@ -295,15 +301,16 @@ function useWeeklyCreated(connection, doctype) {
295
301
  }, []);
296
302
  var baseURL = connection === null || connection === void 0 ? void 0 : connection.baseURL;
297
303
  var hasFixtures = !!(connection === null || connection === void 0 ? void 0 : connection.fixtures);
304
+ var scopeKey = JSON.stringify(scope);
298
305
  (0, import_react2.useEffect)(function () {
299
306
  if (!baseURL || !doctype) return;
300
307
  setIsLoading(true);
301
308
  setError(void 0);
302
309
  void runFetch();
303
310
  },
304
- // Refetch on connection target / doctype change only — the connection
305
- // object identity churns with provider re-renders.
306
- [baseURL, hasFixtures, doctype, weeks, runFetch]);
311
+ // Refetch on connection target / doctype / scope change only — the
312
+ // connection object identity churns with provider re-renders.
313
+ [baseURL, hasFixtures, doctype, weeks, scopeKey, runFetch]);
307
314
  (0, import_frappe.useFrappeDoctypeEvents)(connection, doctype, function () {
308
315
  var _debouncerRef_current;
309
316
  setIsStale(true);
@@ -1 +1 @@
1
- {"version":3,"names":["__create","Object","create","__defProp","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__getProtoOf","getPrototypeOf","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toESM","mod","isNodeMode","__esModule","value","__toCommonJS","dashboard_data_exports","MAX_STATUS_KPI_CARDS","WEEKS_WINDOW","daysAgoIso","detectStatusField","filteredListHref","isoDate","useWeeklyCreated","weekStart","module","exports","import_react","require","import_frappe","import_theme","import_react2","import_paths","_instanceof","left","right","Symbol","hasInstance","isSelectCandidate","field","_field_options","fieldtype","hidden","options","trim","length","meta","_candidates_find","candidates","fields","filter","find","fieldname","defaultPaths","createBackofficePaths","doctype","paths","arguments","filters","list","encodeURIComponent","JSON","stringify","date","formatCalendarDate","days","Date","setDate","getDate","copy","getFullYear","getMonth","mondayOffset","getDay","parseIsoDateLocal","y","m","d","slice","split","map","Number","isNaN","getTime","parseFrappeDatetime","replace","toAuthConfig","auth","useToken","token","type","bucketRowsByDay","rows","counts","Map","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","row","_counts_get","created","creation","day","set","err","return","fetchLiveDayCounts","connection","cutoff","db","DbModule","HttpClient","baseURL","getDocList","groupBy","limit","_day","_aggregate_value","isFinite"],"sources":["../../../src/views/dashboard-data.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__create","Object","create","__defProp","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__getProtoOf","getPrototypeOf","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toESM","mod","isNodeMode","__esModule","value","__toCommonJS","dashboard_data_exports","MAX_STATUS_KPI_CARDS","WEEKS_WINDOW","daysAgoIso","detectStatusField","filteredListHref","isoDate","useWeeklyCreated","weekStart","module","exports","import_react","require","import_frappe","import_theme","import_react2","import_paths","_instanceof","left","right","Symbol","hasInstance","isSelectCandidate","field","_field_options","fieldtype","hidden","options","trim","length","meta","_candidates_find","candidates","fields","filter","find","fieldname","defaultPaths","createBackofficePaths","doctype","paths","arguments","filters","list","encodeURIComponent","JSON","stringify","date","formatCalendarDate","days","Date","setDate","getDate","copy","getFullYear","getMonth","mondayOffset","getDay","parseIsoDateLocal","y","m","d","slice","split","map","Number","isNaN","getTime","parseFrappeDatetime","replace","toAuthConfig","auth","useToken","token","type","bucketRowsByDay","rows","counts","Map","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","row","_counts_get","created","creation","day","set","err","return","fetchLiveDayCounts","connection","cutoff","scope","db","DbModule","HttpClient","baseURL","getDocList","groupBy","limit","_day","_aggregate_value","isFinite","unused","rows1"],"sources":["../../../src/views/dashboard-data.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@multiplatform.one/backoffice",
3
- "version": "7.23.2",
3
+ "version": "7.25.0",
4
4
  "description": "Embeddable Frappe desk recreation (backoffice) for the multiplatform.one stack",
5
5
  "keywords": [
6
6
  "backoffice",
@@ -71,21 +71,21 @@
71
71
  "access": "public"
72
72
  },
73
73
  "dependencies": {
74
- "@multiplatform.one/components": "7.23.2",
75
- "@multiplatform.one/forms": "7.23.2",
76
- "@multiplatform.one/frappe": "7.23.2",
77
- "@multiplatform.one/frappe-ui": "7.23.2",
78
- "@multiplatform.one/i18n": "7.23.2",
79
- "@multiplatform.one/platform": "7.23.2",
80
- "@multiplatform.one/store": "7.23.2",
81
- "@multiplatform.one/table": "7.23.2",
82
- "@multiplatform.one/theme": "7.23.2",
74
+ "@multiplatform.one/components": "7.25.0",
75
+ "@multiplatform.one/forms": "7.25.0",
76
+ "@multiplatform.one/frappe": "7.25.0",
77
+ "@multiplatform.one/frappe-ui": "7.25.0",
78
+ "@multiplatform.one/i18n": "7.25.0",
79
+ "@multiplatform.one/platform": "7.25.0",
80
+ "@multiplatform.one/store": "7.25.0",
81
+ "@multiplatform.one/table": "7.25.0",
82
+ "@multiplatform.one/theme": "7.25.0",
83
83
  "@phosphor-icons/react": "^2.1.10",
84
84
  "tamagui": "2.7.6"
85
85
  },
86
86
  "devDependencies": {
87
- "@multiplatform.one/config": "7.23.2",
88
- "@multiplatform.one/test-utils": "7.23.2",
87
+ "@multiplatform.one/config": "7.25.0",
88
+ "@multiplatform.one/test-utils": "7.25.0",
89
89
  "@tamagui/build": "2.7.6",
90
90
  "@testing-library/react": "^16.3.2",
91
91
  "@types/react-dom": "^19.2.3",
@@ -0,0 +1,162 @@
1
+ // The navbar bell over the Notification Log (MPO-414): unread badge, panel
2
+ // rows newest first, a row press routes to its document and marks it read.
3
+ import { InMemoryFixtureProvider } from "@multiplatform.one/frappe";
4
+ import { renderWithProviders } from "@multiplatform.one/test-utils";
5
+ import { fireEvent, screen, waitFor } from "@testing-library/react";
6
+ import { afterEach, describe, expect, it, vi } from "vitest";
7
+ import { BackofficeProvider } from "../config/BackofficeProvider";
8
+ import { createMemoryNavigator } from "../navigation/navigator";
9
+ import { NotificationsButton } from "./NotificationsButton";
10
+
11
+ const notifications = [
12
+ {
13
+ name: "notif-0001",
14
+ doctype: "Notification Log",
15
+ subject: "<b>Jane Doe</b> mentioned you in a comment on ToDo",
16
+ type: "Mention",
17
+ document_type: "ToDo",
18
+ document_name: "TODO-0001",
19
+ read: 0,
20
+ from_user: "jane@example.com",
21
+ creation: "2026-09-27 10:00:00",
22
+ },
23
+ {
24
+ name: "notif-0002",
25
+ doctype: "Notification Log",
26
+ subject: "<b>Joe Smith</b> assigned a new task to you",
27
+ type: "Assignment",
28
+ document_type: "ToDo",
29
+ document_name: "TODO-0002",
30
+ read: 0,
31
+ from_user: "joe@example.com",
32
+ creation: "2026-09-27 09:00:00",
33
+ },
34
+ {
35
+ name: "notif-0003",
36
+ doctype: "Notification Log",
37
+ subject: "<b>Administrator</b> shared a document with you",
38
+ type: "Share",
39
+ document_type: "Note",
40
+ document_name: "NOTE-0001",
41
+ read: 1,
42
+ from_user: "Administrator",
43
+ creation: "2026-09-26 08:00:00",
44
+ },
45
+ ];
46
+
47
+ let host = 0;
48
+
49
+ afterEach(() => {
50
+ vi.restoreAllMocks();
51
+ vi.unstubAllGlobals();
52
+ });
53
+
54
+ function renderBell(rows: typeof notifications) {
55
+ host += 1;
56
+ const navigation = createMemoryNavigator("/backoffice");
57
+ renderWithProviders(
58
+ <BackofficeProvider
59
+ frappe={{
60
+ baseURL: `https://notifications-${host}.screen.spec.test`,
61
+ fixtures: new InMemoryFixtureProvider({ "Notification Log": rows }),
62
+ }}
63
+ navigation={navigation}
64
+ >
65
+ <NotificationsButton />
66
+ </BackofficeProvider>,
67
+ );
68
+ return navigation;
69
+ }
70
+
71
+ function json(body: unknown, status = 200) {
72
+ return new Response(JSON.stringify(body), {
73
+ status,
74
+ headers: { "content-type": "application/json" },
75
+ });
76
+ }
77
+
78
+ function renderLiveBell() {
79
+ host += 1;
80
+ const navigation = createMemoryNavigator("/backoffice");
81
+ renderWithProviders(
82
+ <BackofficeProvider
83
+ frappe={{ baseURL: `https://notifications-live-${host}.screen.spec.test` }}
84
+ navigation={navigation}
85
+ >
86
+ <NotificationsButton />
87
+ </BackofficeProvider>,
88
+ );
89
+ return navigation;
90
+ }
91
+
92
+ function badgeCount(): string | undefined {
93
+ const badge = document.querySelector('[data-badge="count"]');
94
+ return badge?.textContent?.replace(/\D/g, "");
95
+ }
96
+
97
+ function rows(): HTMLElement[] {
98
+ return screen.queryAllByTestId("backoffice-notification-row");
99
+ }
100
+
101
+ describe("NotificationsButton", () => {
102
+ it("badges the unread count and lists every row newest first", async () => {
103
+ renderBell(notifications);
104
+ await waitFor(() => expect(badgeCount()).toBe("2"));
105
+ fireEvent.click(screen.getByTestId("backoffice-notifications-button"));
106
+ await waitFor(() => expect(rows()).toHaveLength(3));
107
+ expect(rows().map((row) => row.getAttribute("aria-label"))).toEqual([
108
+ "Jane Doe mentioned you in a comment on ToDo",
109
+ "Joe Smith assigned a new task to you",
110
+ "Administrator shared a document with you",
111
+ ]);
112
+ });
113
+
114
+ it("routes a row press to its document and marks it read", async () => {
115
+ const navigation = renderBell(notifications);
116
+ await waitFor(() => expect(badgeCount()).toBe("2"));
117
+ fireEvent.click(screen.getByTestId("backoffice-notifications-button"));
118
+ await waitFor(() => expect(rows()).toHaveLength(3));
119
+ fireEvent.click(rows()[1] as HTMLElement);
120
+ expect(navigation.getLocation().path).toBe("/backoffice/todo/TODO-0002");
121
+ await waitFor(() => expect(badgeCount()).toBe("1"));
122
+ });
123
+
124
+ it("marks every row read from the panel header", async () => {
125
+ renderBell(notifications);
126
+ await waitFor(() => expect(badgeCount()).toBe("2"));
127
+ fireEvent.click(screen.getByTestId("backoffice-notifications-button"));
128
+ const markAll = await screen.findByTestId("backoffice-notifications-mark-all");
129
+ fireEvent.click(markAll);
130
+ await waitFor(() => expect(badgeCount()).toBeUndefined());
131
+ });
132
+
133
+ it("tells the bench a live row was read", async () => {
134
+ const markedRead: string[] = [];
135
+ vi.stubGlobal("fetch", async (input: string | URL | Request, init?: RequestInit) => {
136
+ const url = new URL(String(input instanceof Request ? input.url : input));
137
+ const method = url.pathname.replace(/^\/api\/method\//, "");
138
+ if (method === "frappe.auth.get_logged_user") return json({ message: "jane@example.com" });
139
+ if (method === "frappe.desk.doctype.notification_log.notification_log.mark_as_read") {
140
+ markedRead.push(String(init?.body ?? ""));
141
+ return json({ message: null });
142
+ }
143
+ if (url.pathname === "/api/resource/Notification%20Log") return json({ data: notifications });
144
+ return json({ data: [] });
145
+ });
146
+ renderLiveBell();
147
+ await waitFor(() => expect(badgeCount()).toBe("2"), { timeout: 5000 });
148
+ fireEvent.click(screen.getByTestId("backoffice-notifications-button"));
149
+ await waitFor(() => expect(rows()).toHaveLength(3));
150
+ fireEvent.click(rows()[0] as HTMLElement);
151
+ await waitFor(() => expect(markedRead).toHaveLength(1));
152
+ expect(markedRead[0]).toContain("notif-0001");
153
+ });
154
+
155
+ it("shows the empty state when the log has no rows", async () => {
156
+ renderBell([]);
157
+ fireEvent.click(screen.getByTestId("backoffice-notifications-button"));
158
+ expect(await screen.findByText("No new notifications")).toBeTruthy();
159
+ expect(rows()).toHaveLength(0);
160
+ expect(badgeCount()).toBeUndefined();
161
+ });
162
+ });
@@ -0,0 +1,107 @@
1
+ // The navbar user menu (MPO-414): the session header, profile routing, the
2
+ // theme toggle through the host appearance adapter, and logout.
3
+ import { renderWithProviders } from "@multiplatform.one/test-utils";
4
+ import { fireEvent, screen, waitFor } from "@testing-library/react";
5
+ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
6
+ import { BackofficeProvider, type BackofficeProviderProps } from "../config/BackofficeProvider";
7
+ import { createMemoryNavigator } from "../navigation/navigator";
8
+ import { UserMenu } from "./UserMenu";
9
+
10
+ let host = 0;
11
+ let loggedUser: string | null = "jane@example.com";
12
+ let calls: string[] = [];
13
+
14
+ function json(body: unknown, status = 200) {
15
+ return new Response(JSON.stringify(body), {
16
+ status,
17
+ headers: { "content-type": "application/json" },
18
+ });
19
+ }
20
+
21
+ beforeEach(() => {
22
+ host += 1;
23
+ calls = [];
24
+ loggedUser = "jane@example.com";
25
+ vi.stubGlobal("fetch", async (input: string | URL | Request) => {
26
+ const url = new URL(String(input instanceof Request ? input.url : input));
27
+ calls.push(url.pathname);
28
+ if (url.pathname === "/api/method/frappe.auth.get_logged_user") {
29
+ return loggedUser ? json({ message: loggedUser }) : json({ exc_type: "Forbidden" }, 403);
30
+ }
31
+ if (url.pathname === "/api/method/frappe.client.get_value") {
32
+ return json({
33
+ message: { full_name: "Jane Cooper", email: "jane@example.com", user_image: null },
34
+ });
35
+ }
36
+ if (url.pathname === "/api/method/logout") return json({ message: "" });
37
+ return json({ data: [] });
38
+ });
39
+ });
40
+
41
+ afterEach(() => {
42
+ vi.restoreAllMocks();
43
+ vi.unstubAllGlobals();
44
+ });
45
+
46
+ function renderMenu(props: Partial<BackofficeProviderProps> = {}) {
47
+ const navigation = createMemoryNavigator("/backoffice/todo");
48
+ renderWithProviders(
49
+ <BackofficeProvider
50
+ frappe={{ baseURL: `https://user-menu-${host}.screen.spec.test` }}
51
+ navigation={navigation}
52
+ {...props}
53
+ >
54
+ <UserMenu defaultOpen />
55
+ </BackofficeProvider>,
56
+ );
57
+ return navigation;
58
+ }
59
+
60
+ function item(label: string): HTMLElement {
61
+ const found = Array.from(document.querySelectorAll('[role="menuitem"]')).find((node) =>
62
+ node.textContent?.startsWith(label),
63
+ );
64
+ if (!found) throw new Error(`no menu item ${label}`);
65
+ return found as HTMLElement;
66
+ }
67
+
68
+ describe("UserMenu", () => {
69
+ it("heads the menu with the session user and routes My Profile to their User form", async () => {
70
+ const navigation = renderMenu();
71
+ expect(await screen.findByText("Jane Cooper")).toBeTruthy();
72
+ expect(screen.getByText("jane@example.com")).toBeTruthy();
73
+ fireEvent.click(item("My Profile"));
74
+ expect(navigation.getLocation().path).toBe("/backoffice/user/jane%40example.com");
75
+ });
76
+
77
+ it("disables the profile items while no session user resolves", async () => {
78
+ loggedUser = null;
79
+ renderMenu();
80
+ await waitFor(() => expect(calls).toContain("/api/method/frappe.auth.get_logged_user"));
81
+ await waitFor(() => expect(item("My Profile").getAttribute("aria-disabled")).toBe("true"));
82
+ expect(item("My Settings").getAttribute("aria-disabled")).toBe("true");
83
+ expect(screen.queryByText("Jane Cooper")).toBeNull();
84
+ });
85
+
86
+ it("toggles the scheme through the host appearance adapter", async () => {
87
+ const setScheme = vi.fn();
88
+ renderMenu({ appearance: { scheme: "dark", setScheme } });
89
+ await screen.findByText("Jane Cooper");
90
+ fireEvent.click(item("Toggle Theme"));
91
+ expect(setScheme).toHaveBeenCalledWith("light");
92
+ });
93
+
94
+ it("offers no theme toggle a host cannot honour", async () => {
95
+ renderMenu();
96
+ await screen.findByText("Jane Cooper");
97
+ expect(item("Toggle Theme").getAttribute("aria-disabled")).toBe("true");
98
+ });
99
+
100
+ it("logs out on the bench and leaves for the desk home", async () => {
101
+ const navigation = renderMenu();
102
+ await screen.findByText("Jane Cooper");
103
+ fireEvent.click(item("Log Out"));
104
+ await waitFor(() => expect(navigation.getLocation().path).toBe("/backoffice"));
105
+ expect(calls).toContain("/api/method/logout");
106
+ });
107
+ });