@multiplatform.one/backoffice 7.20.0 → 7.22.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 (411) hide show
  1. package/dist/cjs/form/DocFormScreen.cjs +27 -4
  2. package/dist/cjs/form/DocFormScreen.native.js +28 -5
  3. package/dist/cjs/form/DocFormScreen.native.js.map +1 -1
  4. package/dist/cjs/list/DoctypeListScreen.cjs +18 -10
  5. package/dist/cjs/list/DoctypeListScreen.native.js +21 -11
  6. package/dist/cjs/list/DoctypeListScreen.native.js.map +1 -1
  7. package/dist/cjs/list/listFields.cjs +1 -1
  8. package/dist/cjs/list/listFields.native.js +1 -1
  9. package/dist/cjs/list/listFields.native.js.map +1 -1
  10. package/dist/cjs/shared/useFrappeApp.cjs +7 -3
  11. package/dist/cjs/shared/useFrappeApp.native.js +8 -4
  12. package/dist/cjs/shared/useFrappeApp.native.js.map +1 -1
  13. package/dist/cjs/shared/useUserRoles.cjs +6 -1
  14. package/dist/cjs/shared/useUserRoles.native.js +6 -1
  15. package/dist/cjs/shared/useUserRoles.native.js.map +1 -1
  16. package/dist/esm/chrome/BackofficeAwesomebar.native.js.map +1 -1
  17. package/dist/esm/chrome/CommandPalette.native.js.map +1 -1
  18. package/dist/esm/chrome/HelpMenu.native.js.map +1 -1
  19. package/dist/esm/chrome/NotificationsButton.native.js.map +1 -1
  20. package/dist/esm/chrome/UserMenu.native.js.map +1 -1
  21. package/dist/esm/chrome/awesomebar-data.native.js.map +1 -1
  22. package/dist/esm/chrome/command-palette-model.native.js.map +1 -1
  23. package/dist/esm/chrome/help-about-dialog.native.js.map +1 -1
  24. package/dist/esm/chrome/help-shortcuts-dialog.native.js.map +1 -1
  25. package/dist/esm/chrome/notifications-data.native.js.map +1 -1
  26. package/dist/esm/chrome/notifications-panel.native.js.map +1 -1
  27. package/dist/esm/chrome/notifications-utils.native.js.map +1 -1
  28. package/dist/esm/chrome/shortcuts.native.js.map +1 -1
  29. package/dist/esm/chrome/user-session.native.js.map +1 -1
  30. package/dist/esm/config/BackofficeProvider.native.js.map +1 -1
  31. package/dist/esm/config/capabilities.native.js.map +1 -1
  32. package/dist/esm/config/events.native.js.map +1 -1
  33. package/dist/esm/config/slots.native.js.map +1 -1
  34. package/dist/esm/desk/Desk.native.js.map +1 -1
  35. package/dist/esm/desk/DeskSurface.native.js.map +1 -1
  36. package/dist/esm/desk/resolveDeskPath.native.js.map +1 -1
  37. package/dist/esm/desk/scope.native.js.map +1 -1
  38. package/dist/esm/desk/target.native.js.map +1 -1
  39. package/dist/esm/form/DocFormScreen.mjs +28 -5
  40. package/dist/esm/form/DocFormScreen.mjs.map +1 -1
  41. package/dist/esm/form/DocFormScreen.native.js +29 -6
  42. package/dist/esm/form/DocFormScreen.native.js.map +1 -1
  43. package/dist/esm/form/FormConnections.native.js.map +1 -1
  44. package/dist/esm/form/FormDialogs.native.js.map +1 -1
  45. package/dist/esm/form/FormErrorBoundary.native.js.map +1 -1
  46. package/dist/esm/form/FormHeaderCluster.native.js.map +1 -1
  47. package/dist/esm/form/FormSidebarPanel.native.js.map +1 -1
  48. package/dist/esm/form/FormTimeline.native.js.map +1 -1
  49. package/dist/esm/form/FormToolbar.native.js.map +1 -1
  50. package/dist/esm/form/connections-data.native.js.map +1 -1
  51. package/dist/esm/form/createPrefill.native.js.map +1 -1
  52. package/dist/esm/form/dependsOn.native.js.map +1 -1
  53. package/dist/esm/form/dirtyTracking.native.js.map +1 -1
  54. package/dist/esm/form/docinfo.native.js.map +1 -1
  55. package/dist/esm/form/fetchFrom.native.js.map +1 -1
  56. package/dist/esm/form/fieldPermissions.native.js.map +1 -1
  57. package/dist/esm/form/formActions.native.js.map +1 -1
  58. package/dist/esm/form/formLayout.native.js.map +1 -1
  59. package/dist/esm/form/platformHooks.native.js.map +1 -1
  60. package/dist/esm/form/sidebar-attachments.native.js.map +1 -1
  61. package/dist/esm/form/sidebar-dialogs.native.js.map +1 -1
  62. package/dist/esm/form/sidebar-people.native.js.map +1 -1
  63. package/dist/esm/form/sidebar-rpc.native.js.map +1 -1
  64. package/dist/esm/form/sidebar-utils.native.js.map +1 -1
  65. package/dist/esm/form/timeline-entries.native.js.map +1 -1
  66. package/dist/esm/form/timeline-utils.native.js.map +1 -1
  67. package/dist/esm/form/useFormEngine.native.js.map +1 -1
  68. package/dist/esm/i18n/en.native.js.map +1 -1
  69. package/dist/esm/i18n/index.native.js.map +1 -1
  70. package/dist/esm/index.native.js.map +1 -1
  71. package/dist/esm/list/AddTagsDialog.native.js.map +1 -1
  72. package/dist/esm/list/AssignToDialog.native.js.map +1 -1
  73. package/dist/esm/list/DoctypeListScreen.mjs +19 -11
  74. package/dist/esm/list/DoctypeListScreen.mjs.map +1 -1
  75. package/dist/esm/list/DoctypeListScreen.native.js +22 -12
  76. package/dist/esm/list/DoctypeListScreen.native.js.map +1 -1
  77. package/dist/esm/list/ListBulkActionsBar.native.js.map +1 -1
  78. package/dist/esm/list/ListFilterBar.native.js.map +1 -1
  79. package/dist/esm/list/ListSidebar.native.js.map +1 -1
  80. package/dist/esm/list/bulk-edit-dialog.native.js.map +1 -1
  81. package/dist/esm/list/bulk-export.native.js.map +1 -1
  82. package/dist/esm/list/bulk-submit-cancel.native.js.map +1 -1
  83. package/dist/esm/list/bulkActions.native.js.map +1 -1
  84. package/dist/esm/list/filter-chips.native.js.map +1 -1
  85. package/dist/esm/list/filter-editor.native.js.map +1 -1
  86. package/dist/esm/list/filter-fields.native.js.map +1 -1
  87. package/dist/esm/list/filter-saved.native.js.map +1 -1
  88. package/dist/esm/list/filter-sort.native.js.map +1 -1
  89. package/dist/esm/list/filter-standard.native.js.map +1 -1
  90. package/dist/esm/list/filterConversion.native.js.map +1 -1
  91. package/dist/esm/list/list-tools-sheet.native.js.map +1 -1
  92. package/dist/esm/list/listColumns.native.js.map +1 -1
  93. package/dist/esm/list/listFields.mjs +1 -1
  94. package/dist/esm/list/listFields.mjs.map +1 -1
  95. package/dist/esm/list/listFields.native.js +1 -1
  96. package/dist/esm/list/listFields.native.js.map +1 -1
  97. package/dist/esm/list/listFormat.native.js.map +1 -1
  98. package/dist/esm/list/listUrlState.native.js.map +1 -1
  99. package/dist/esm/list/sidebar-section.native.js.map +1 -1
  100. package/dist/esm/list/sidebar-stats.native.js.map +1 -1
  101. package/dist/esm/list/statusColors.native.js.map +1 -1
  102. package/dist/esm/navigation/navigator.native.js.map +1 -1
  103. package/dist/esm/navigation/paths.native.js.map +1 -1
  104. package/dist/esm/oneAdapter/index.native.js.map +1 -1
  105. package/dist/esm/quickEntry/QuickEntryDialog.native.js.map +1 -1
  106. package/dist/esm/quickEntry/quickEntryPlan.native.js.map +1 -1
  107. package/dist/esm/report/DoctypeReportView.native.js.map +1 -1
  108. package/dist/esm/report/QueryReportScreen.native.js.map +1 -1
  109. package/dist/esm/report/queryReportColumns.native.js.map +1 -1
  110. package/dist/esm/report/queryReportFilterBar.native.js.map +1 -1
  111. package/dist/esm/report/queryReportUrlState.native.js.map +1 -1
  112. package/dist/esm/report/report-grid.native.js.map +1 -1
  113. package/dist/esm/report/report-toolbar.native.js.map +1 -1
  114. package/dist/esm/report/reportShapes.native.js.map +1 -1
  115. package/dist/esm/report/reportViewModel.native.js.map +1 -1
  116. package/dist/esm/report/savedReports.native.js.map +1 -1
  117. package/dist/esm/report/useQueryReport.native.js.map +1 -1
  118. package/dist/esm/shared/deskLinks.native.js.map +1 -1
  119. package/dist/esm/shared/listNavContext.native.js.map +1 -1
  120. package/dist/esm/shared/types.native.js.map +1 -1
  121. package/dist/esm/shared/useDocinfo.native.js.map +1 -1
  122. package/dist/esm/shared/useDoctypeMeta.native.js.map +1 -1
  123. package/dist/esm/shared/useFrappeApp.mjs +7 -3
  124. package/dist/esm/shared/useFrappeApp.mjs.map +1 -1
  125. package/dist/esm/shared/useFrappeApp.native.js +8 -4
  126. package/dist/esm/shared/useFrappeApp.native.js.map +1 -1
  127. package/dist/esm/shared/useRecentVisit.native.js.map +1 -1
  128. package/dist/esm/shared/useSessionUserId.native.js.map +1 -1
  129. package/dist/esm/shared/useSlugTarget.native.js.map +1 -1
  130. package/dist/esm/shared/useUserRoles.mjs +7 -2
  131. package/dist/esm/shared/useUserRoles.mjs.map +1 -1
  132. package/dist/esm/shared/useUserRoles.native.js +7 -2
  133. package/dist/esm/shared/useUserRoles.native.js.map +1 -1
  134. package/dist/esm/shell/BackofficeShell.native.js.map +1 -1
  135. package/dist/esm/shell/HomeRedirect.native.js.map +1 -1
  136. package/dist/esm/shell/NotFoundScreen.native.js.map +1 -1
  137. package/dist/esm/shell/SlugScreen.native.js.map +1 -1
  138. package/dist/esm/shell/WorkspaceSidebar.native.js.map +1 -1
  139. package/dist/esm/shell/useWorkspaces.native.js.map +1 -1
  140. package/dist/esm/shell/workspaceIcons.native.js.map +1 -1
  141. package/dist/esm/views/CalendarView.native.js.map +1 -1
  142. package/dist/esm/views/DashboardView.native.js.map +1 -1
  143. package/dist/esm/views/DoctypeViewScreen.native.js.map +1 -1
  144. package/dist/esm/views/ImageView.native.js.map +1 -1
  145. package/dist/esm/views/KanbanView.native.js.map +1 -1
  146. package/dist/esm/views/ReportView.native.js.map +1 -1
  147. package/dist/esm/views/TreeView.native.js.map +1 -1
  148. package/dist/esm/views/ViewHeader.native.js.map +1 -1
  149. package/dist/esm/views/ViewStates.native.js.map +1 -1
  150. package/dist/esm/views/ViewSwitcherMenu.native.js.map +1 -1
  151. package/dist/esm/views/calendar-field-selector.native.js.map +1 -1
  152. package/dist/esm/views/connection.native.js.map +1 -1
  153. package/dist/esm/views/dashboard-data.native.js.map +1 -1
  154. package/dist/esm/views/deskViewConfigs.native.js.map +1 -1
  155. package/dist/esm/views/kanban-board-controls.native.js.map +1 -1
  156. package/dist/esm/views/kanban-field-picker.native.js.map +1 -1
  157. package/dist/esm/views/kanbanBoardOps.native.js.map +1 -1
  158. package/dist/esm/views/report-controls.native.js.map +1 -1
  159. package/dist/esm/views/viewAvailability.native.js.map +1 -1
  160. package/dist/esm/views/viewMeta.native.js.map +1 -1
  161. package/dist/esm/workspace/WorkspaceChartBlock.native.js.map +1 -1
  162. package/dist/esm/workspace/WorkspaceGrid.native.js.map +1 -1
  163. package/dist/esm/workspace/WorkspaceLinkCard.native.js.map +1 -1
  164. package/dist/esm/workspace/WorkspaceLinkDirectory.native.js.map +1 -1
  165. package/dist/esm/workspace/WorkspaceNumberCard.native.js.map +1 -1
  166. package/dist/esm/workspace/WorkspaceQuickList.native.js.map +1 -1
  167. package/dist/esm/workspace/WorkspaceRecents.native.js.map +1 -1
  168. package/dist/esm/workspace/WorkspaceScreen.native.js.map +1 -1
  169. package/dist/esm/workspace/WorkspaceShortcut.native.js.map +1 -1
  170. package/dist/esm/workspace/parseContent.native.js.map +1 -1
  171. package/dist/esm/workspace/types.native.js.map +1 -1
  172. package/dist/esm/workspace/useDashboardChart.native.js.map +1 -1
  173. package/dist/esm/workspace/useWorkspaceDoc.native.js.map +1 -1
  174. package/dist/jsx/chrome/BackofficeAwesomebar.native.js +1 -1
  175. package/dist/jsx/chrome/BackofficeAwesomebar.native.js.map +1 -1
  176. package/dist/jsx/chrome/CommandPalette.native.js +1 -1
  177. package/dist/jsx/chrome/CommandPalette.native.js.map +1 -1
  178. package/dist/jsx/chrome/HelpMenu.native.js +1 -1
  179. package/dist/jsx/chrome/HelpMenu.native.js.map +1 -1
  180. package/dist/jsx/chrome/NotificationsButton.native.js +1 -1
  181. package/dist/jsx/chrome/NotificationsButton.native.js.map +1 -1
  182. package/dist/jsx/chrome/UserMenu.native.js +1 -1
  183. package/dist/jsx/chrome/UserMenu.native.js.map +1 -1
  184. package/dist/jsx/chrome/awesomebar-data.native.js.map +1 -1
  185. package/dist/jsx/chrome/command-palette-model.native.js +1 -1
  186. package/dist/jsx/chrome/command-palette-model.native.js.map +1 -1
  187. package/dist/jsx/chrome/help-about-dialog.native.js +1 -1
  188. package/dist/jsx/chrome/help-about-dialog.native.js.map +1 -1
  189. package/dist/jsx/chrome/help-shortcuts-dialog.native.js +1 -1
  190. package/dist/jsx/chrome/help-shortcuts-dialog.native.js.map +1 -1
  191. package/dist/jsx/chrome/notifications-data.native.js.map +1 -1
  192. package/dist/jsx/chrome/notifications-panel.native.js +1 -1
  193. package/dist/jsx/chrome/notifications-panel.native.js.map +1 -1
  194. package/dist/jsx/chrome/notifications-utils.native.js.map +1 -1
  195. package/dist/jsx/chrome/shortcuts.native.js.map +1 -1
  196. package/dist/jsx/chrome/user-session.native.js.map +1 -1
  197. package/dist/jsx/config/BackofficeProvider.native.js +1 -1
  198. package/dist/jsx/config/BackofficeProvider.native.js.map +1 -1
  199. package/dist/jsx/config/capabilities.native.js.map +1 -1
  200. package/dist/jsx/config/events.native.js.map +1 -1
  201. package/dist/jsx/config/slots.native.js.map +1 -1
  202. package/dist/jsx/desk/Desk.native.js.map +1 -1
  203. package/dist/jsx/desk/DeskSurface.native.js.map +1 -1
  204. package/dist/jsx/desk/resolveDeskPath.native.js.map +1 -1
  205. package/dist/jsx/desk/scope.native.js.map +1 -1
  206. package/dist/jsx/desk/target.native.js.map +1 -1
  207. package/dist/jsx/form/DocFormScreen.mjs +28 -5
  208. package/dist/jsx/form/DocFormScreen.mjs.map +1 -1
  209. package/dist/jsx/form/DocFormScreen.native.js +29 -6
  210. package/dist/jsx/form/DocFormScreen.native.js.map +1 -1
  211. package/dist/jsx/form/FormConnections.native.js +1 -1
  212. package/dist/jsx/form/FormConnections.native.js.map +1 -1
  213. package/dist/jsx/form/FormDialogs.native.js +1 -1
  214. package/dist/jsx/form/FormDialogs.native.js.map +1 -1
  215. package/dist/jsx/form/FormErrorBoundary.native.js +1 -1
  216. package/dist/jsx/form/FormErrorBoundary.native.js.map +1 -1
  217. package/dist/jsx/form/FormHeaderCluster.native.js +1 -1
  218. package/dist/jsx/form/FormHeaderCluster.native.js.map +1 -1
  219. package/dist/jsx/form/FormSidebarPanel.native.js +1 -1
  220. package/dist/jsx/form/FormSidebarPanel.native.js.map +1 -1
  221. package/dist/jsx/form/FormTimeline.native.js +1 -1
  222. package/dist/jsx/form/FormTimeline.native.js.map +1 -1
  223. package/dist/jsx/form/FormToolbar.native.js +1 -1
  224. package/dist/jsx/form/FormToolbar.native.js.map +1 -1
  225. package/dist/jsx/form/connections-data.native.js.map +1 -1
  226. package/dist/jsx/form/createPrefill.native.js.map +1 -1
  227. package/dist/jsx/form/dependsOn.native.js.map +1 -1
  228. package/dist/jsx/form/dirtyTracking.native.js.map +1 -1
  229. package/dist/jsx/form/docinfo.native.js.map +1 -1
  230. package/dist/jsx/form/fetchFrom.native.js.map +1 -1
  231. package/dist/jsx/form/fieldPermissions.native.js.map +1 -1
  232. package/dist/jsx/form/formActions.native.js.map +1 -1
  233. package/dist/jsx/form/formLayout.native.js.map +1 -1
  234. package/dist/jsx/form/platformHooks.native.js.map +1 -1
  235. package/dist/jsx/form/sidebar-attachments.native.js +1 -1
  236. package/dist/jsx/form/sidebar-attachments.native.js.map +1 -1
  237. package/dist/jsx/form/sidebar-dialogs.native.js +1 -1
  238. package/dist/jsx/form/sidebar-dialogs.native.js.map +1 -1
  239. package/dist/jsx/form/sidebar-people.native.js +1 -1
  240. package/dist/jsx/form/sidebar-people.native.js.map +1 -1
  241. package/dist/jsx/form/sidebar-rpc.native.js.map +1 -1
  242. package/dist/jsx/form/sidebar-utils.native.js.map +1 -1
  243. package/dist/jsx/form/timeline-entries.native.js.map +1 -1
  244. package/dist/jsx/form/timeline-utils.native.js.map +1 -1
  245. package/dist/jsx/form/useFormEngine.native.js.map +1 -1
  246. package/dist/jsx/i18n/en.native.js.map +1 -1
  247. package/dist/jsx/i18n/index.native.js.map +1 -1
  248. package/dist/jsx/index.native.js +1 -1
  249. package/dist/jsx/index.native.js.map +1 -1
  250. package/dist/jsx/list/AddTagsDialog.native.js +1 -1
  251. package/dist/jsx/list/AddTagsDialog.native.js.map +1 -1
  252. package/dist/jsx/list/AssignToDialog.native.js +1 -1
  253. package/dist/jsx/list/AssignToDialog.native.js.map +1 -1
  254. package/dist/jsx/list/DoctypeListScreen.mjs +19 -11
  255. package/dist/jsx/list/DoctypeListScreen.mjs.map +1 -1
  256. package/dist/jsx/list/DoctypeListScreen.native.js +22 -12
  257. package/dist/jsx/list/DoctypeListScreen.native.js.map +1 -1
  258. package/dist/jsx/list/ListBulkActionsBar.native.js +1 -1
  259. package/dist/jsx/list/ListBulkActionsBar.native.js.map +1 -1
  260. package/dist/jsx/list/ListFilterBar.native.js +1 -1
  261. package/dist/jsx/list/ListFilterBar.native.js.map +1 -1
  262. package/dist/jsx/list/ListSidebar.native.js +1 -1
  263. package/dist/jsx/list/ListSidebar.native.js.map +1 -1
  264. package/dist/jsx/list/bulk-edit-dialog.native.js +1 -1
  265. package/dist/jsx/list/bulk-edit-dialog.native.js.map +1 -1
  266. package/dist/jsx/list/bulk-export.native.js.map +1 -1
  267. package/dist/jsx/list/bulk-submit-cancel.native.js.map +1 -1
  268. package/dist/jsx/list/bulkActions.native.js.map +1 -1
  269. package/dist/jsx/list/filter-chips.native.js +1 -1
  270. package/dist/jsx/list/filter-chips.native.js.map +1 -1
  271. package/dist/jsx/list/filter-editor.native.js +1 -1
  272. package/dist/jsx/list/filter-editor.native.js.map +1 -1
  273. package/dist/jsx/list/filter-fields.native.js.map +1 -1
  274. package/dist/jsx/list/filter-saved.native.js +1 -1
  275. package/dist/jsx/list/filter-saved.native.js.map +1 -1
  276. package/dist/jsx/list/filter-sort.native.js +1 -1
  277. package/dist/jsx/list/filter-sort.native.js.map +1 -1
  278. package/dist/jsx/list/filter-standard.native.js.map +1 -1
  279. package/dist/jsx/list/filterConversion.native.js.map +1 -1
  280. package/dist/jsx/list/list-tools-sheet.native.js +1 -1
  281. package/dist/jsx/list/list-tools-sheet.native.js.map +1 -1
  282. package/dist/jsx/list/listColumns.native.js.map +1 -1
  283. package/dist/jsx/list/listFields.mjs +1 -1
  284. package/dist/jsx/list/listFields.mjs.map +1 -1
  285. package/dist/jsx/list/listFields.native.js +1 -1
  286. package/dist/jsx/list/listFields.native.js.map +1 -1
  287. package/dist/jsx/list/listFormat.native.js.map +1 -1
  288. package/dist/jsx/list/listUrlState.native.js.map +1 -1
  289. package/dist/jsx/list/sidebar-section.native.js +1 -1
  290. package/dist/jsx/list/sidebar-section.native.js.map +1 -1
  291. package/dist/jsx/list/sidebar-stats.native.js.map +1 -1
  292. package/dist/jsx/list/statusColors.native.js.map +1 -1
  293. package/dist/jsx/navigation/navigator.native.js.map +1 -1
  294. package/dist/jsx/navigation/paths.native.js.map +1 -1
  295. package/dist/jsx/oneAdapter/index.native.js.map +1 -1
  296. package/dist/jsx/quickEntry/QuickEntryDialog.native.js +1 -1
  297. package/dist/jsx/quickEntry/QuickEntryDialog.native.js.map +1 -1
  298. package/dist/jsx/quickEntry/quickEntryPlan.native.js.map +1 -1
  299. package/dist/jsx/report/DoctypeReportView.native.js +1 -1
  300. package/dist/jsx/report/DoctypeReportView.native.js.map +1 -1
  301. package/dist/jsx/report/QueryReportScreen.native.js +1 -1
  302. package/dist/jsx/report/QueryReportScreen.native.js.map +1 -1
  303. package/dist/jsx/report/queryReportColumns.native.js.map +1 -1
  304. package/dist/jsx/report/queryReportFilterBar.native.js +1 -1
  305. package/dist/jsx/report/queryReportFilterBar.native.js.map +1 -1
  306. package/dist/jsx/report/queryReportUrlState.native.js.map +1 -1
  307. package/dist/jsx/report/report-grid.native.js +1 -1
  308. package/dist/jsx/report/report-grid.native.js.map +1 -1
  309. package/dist/jsx/report/report-toolbar.native.js +1 -1
  310. package/dist/jsx/report/report-toolbar.native.js.map +1 -1
  311. package/dist/jsx/report/reportShapes.native.js.map +1 -1
  312. package/dist/jsx/report/reportViewModel.native.js.map +1 -1
  313. package/dist/jsx/report/savedReports.native.js.map +1 -1
  314. package/dist/jsx/report/useQueryReport.native.js.map +1 -1
  315. package/dist/jsx/shared/deskLinks.native.js.map +1 -1
  316. package/dist/jsx/shared/listNavContext.native.js.map +1 -1
  317. package/dist/jsx/shared/types.native.js.map +1 -1
  318. package/dist/jsx/shared/useDocinfo.native.js.map +1 -1
  319. package/dist/jsx/shared/useDoctypeMeta.native.js.map +1 -1
  320. package/dist/jsx/shared/useFrappeApp.mjs +7 -3
  321. package/dist/jsx/shared/useFrappeApp.mjs.map +1 -1
  322. package/dist/jsx/shared/useFrappeApp.native.js +8 -4
  323. package/dist/jsx/shared/useFrappeApp.native.js.map +1 -1
  324. package/dist/jsx/shared/useRecentVisit.native.js.map +1 -1
  325. package/dist/jsx/shared/useSessionUserId.native.js.map +1 -1
  326. package/dist/jsx/shared/useSlugTarget.native.js.map +1 -1
  327. package/dist/jsx/shared/useUserRoles.mjs +7 -2
  328. package/dist/jsx/shared/useUserRoles.mjs.map +1 -1
  329. package/dist/jsx/shared/useUserRoles.native.js +6 -1
  330. package/dist/jsx/shared/useUserRoles.native.js.map +1 -1
  331. package/dist/jsx/shell/BackofficeShell.native.js +1 -1
  332. package/dist/jsx/shell/BackofficeShell.native.js.map +1 -1
  333. package/dist/jsx/shell/HomeRedirect.native.js +1 -1
  334. package/dist/jsx/shell/HomeRedirect.native.js.map +1 -1
  335. package/dist/jsx/shell/NotFoundScreen.native.js +1 -1
  336. package/dist/jsx/shell/NotFoundScreen.native.js.map +1 -1
  337. package/dist/jsx/shell/SlugScreen.native.js +1 -1
  338. package/dist/jsx/shell/SlugScreen.native.js.map +1 -1
  339. package/dist/jsx/shell/WorkspaceSidebar.native.js +1 -1
  340. package/dist/jsx/shell/WorkspaceSidebar.native.js.map +1 -1
  341. package/dist/jsx/shell/useWorkspaces.native.js.map +1 -1
  342. package/dist/jsx/shell/workspaceIcons.native.js.map +1 -1
  343. package/dist/jsx/views/CalendarView.native.js +1 -1
  344. package/dist/jsx/views/CalendarView.native.js.map +1 -1
  345. package/dist/jsx/views/DashboardView.native.js +1 -1
  346. package/dist/jsx/views/DashboardView.native.js.map +1 -1
  347. package/dist/jsx/views/DoctypeViewScreen.native.js.map +1 -1
  348. package/dist/jsx/views/ImageView.native.js +1 -1
  349. package/dist/jsx/views/ImageView.native.js.map +1 -1
  350. package/dist/jsx/views/KanbanView.native.js +1 -1
  351. package/dist/jsx/views/KanbanView.native.js.map +1 -1
  352. package/dist/jsx/views/ReportView.native.js +1 -1
  353. package/dist/jsx/views/ReportView.native.js.map +1 -1
  354. package/dist/jsx/views/TreeView.native.js +1 -1
  355. package/dist/jsx/views/TreeView.native.js.map +1 -1
  356. package/dist/jsx/views/ViewHeader.native.js +1 -1
  357. package/dist/jsx/views/ViewHeader.native.js.map +1 -1
  358. package/dist/jsx/views/ViewStates.native.js +1 -1
  359. package/dist/jsx/views/ViewStates.native.js.map +1 -1
  360. package/dist/jsx/views/ViewSwitcherMenu.native.js +1 -1
  361. package/dist/jsx/views/ViewSwitcherMenu.native.js.map +1 -1
  362. package/dist/jsx/views/calendar-field-selector.native.js +1 -1
  363. package/dist/jsx/views/calendar-field-selector.native.js.map +1 -1
  364. package/dist/jsx/views/connection.native.js.map +1 -1
  365. package/dist/jsx/views/dashboard-data.native.js.map +1 -1
  366. package/dist/jsx/views/deskViewConfigs.native.js.map +1 -1
  367. package/dist/jsx/views/kanban-board-controls.native.js +1 -1
  368. package/dist/jsx/views/kanban-board-controls.native.js.map +1 -1
  369. package/dist/jsx/views/kanban-field-picker.native.js +1 -1
  370. package/dist/jsx/views/kanban-field-picker.native.js.map +1 -1
  371. package/dist/jsx/views/kanbanBoardOps.native.js.map +1 -1
  372. package/dist/jsx/views/report-controls.native.js +1 -1
  373. package/dist/jsx/views/report-controls.native.js.map +1 -1
  374. package/dist/jsx/views/viewAvailability.native.js.map +1 -1
  375. package/dist/jsx/views/viewMeta.native.js.map +1 -1
  376. package/dist/jsx/workspace/WorkspaceChartBlock.native.js +1 -1
  377. package/dist/jsx/workspace/WorkspaceChartBlock.native.js.map +1 -1
  378. package/dist/jsx/workspace/WorkspaceGrid.native.js.map +1 -1
  379. package/dist/jsx/workspace/WorkspaceLinkCard.native.js +1 -1
  380. package/dist/jsx/workspace/WorkspaceLinkCard.native.js.map +1 -1
  381. package/dist/jsx/workspace/WorkspaceLinkDirectory.native.js +1 -1
  382. package/dist/jsx/workspace/WorkspaceLinkDirectory.native.js.map +1 -1
  383. package/dist/jsx/workspace/WorkspaceNumberCard.native.js +1 -1
  384. package/dist/jsx/workspace/WorkspaceNumberCard.native.js.map +1 -1
  385. package/dist/jsx/workspace/WorkspaceQuickList.native.js +1 -1
  386. package/dist/jsx/workspace/WorkspaceQuickList.native.js.map +1 -1
  387. package/dist/jsx/workspace/WorkspaceRecents.native.js +1 -1
  388. package/dist/jsx/workspace/WorkspaceRecents.native.js.map +1 -1
  389. package/dist/jsx/workspace/WorkspaceScreen.native.js +1 -1
  390. package/dist/jsx/workspace/WorkspaceScreen.native.js.map +1 -1
  391. package/dist/jsx/workspace/WorkspaceShortcut.native.js +1 -1
  392. package/dist/jsx/workspace/WorkspaceShortcut.native.js.map +1 -1
  393. package/dist/jsx/workspace/parseContent.native.js.map +1 -1
  394. package/dist/jsx/workspace/types.native.js.map +1 -1
  395. package/dist/jsx/workspace/useDashboardChart.native.js.map +1 -1
  396. package/dist/jsx/workspace/useWorkspaceDoc.native.js.map +1 -1
  397. package/package.json +12 -12
  398. package/src/form/DocFormScreen.rights.spec.tsx +130 -0
  399. package/src/form/DocFormScreen.tsx +34 -6
  400. package/src/list/DoctypeListScreen.rights.spec.tsx +113 -0
  401. package/src/list/DoctypeListScreen.tsx +76 -52
  402. package/src/list/listFields.spec.ts +37 -1
  403. package/src/list/listFields.ts +1 -1
  404. package/src/shared/useFrappeApp.spec.tsx +28 -0
  405. package/src/shared/useFrappeApp.ts +4 -2
  406. package/src/shared/useUserRoles.ts +7 -6
  407. package/types/form/DocFormScreen.d.ts.map +1 -1
  408. package/types/list/DoctypeListScreen.d.ts.map +1 -1
  409. package/types/shared/useFrappeApp.d.ts.map +1 -1
  410. package/types/shared/useUserRoles.d.ts +4 -3
  411. package/types/shared/useUserRoles.d.ts.map +1 -1
@@ -33,6 +33,7 @@ import {
33
33
  import {
34
34
  FrappeTable,
35
35
  docFieldsToFilterFields,
36
+ sessionDocRights,
36
37
  useFrappeAggregate,
37
38
  useFrappeConfig,
38
39
  } from "@multiplatform.one/frappe-ui";
@@ -222,8 +223,17 @@ export function DoctypeListScreen({
222
223
  if (metaError && !meta) emitEvent({ type: "error", error: metaError, context: "list-meta" });
223
224
  }, [metaError, meta, emitEvent]);
224
225
 
225
- // "New" affordances: host prop + the newDoc capability.
226
- const showNew = !hideNewButton && capabilities.newDoc.enabled;
226
+ // Session roles × meta.permissions: the doctype-level rights (desk
227
+ // get_role_permissions) gate New and the write/delete bulk actions; fixture
228
+ // mode has no session and withholds nothing.
229
+ const { roles, user: rolesUser } = useUserRoles();
230
+ const rights = useMemo(
231
+ () => sessionDocRights({ fixtures: fixtureMode, meta, roles, user: rolesUser }),
232
+ [fixtureMode, meta, roles, rolesUser],
233
+ );
234
+
235
+ // "New" affordances: host prop + the newDoc capability + the create right.
236
+ const showNew = !hideNewButton && capabilities.newDoc.enabled && rights.create;
227
237
 
228
238
  // ONE FILTER SYSTEM (MOD-04): `baseFilters` is the single writable filter
229
239
  // state for this screen. Every filter surface — quick standard filters,
@@ -405,7 +415,6 @@ export function DoctypeListScreen({
405
415
  // fields above the roles' read level are pruned (desk hides them; the
406
416
  // server strips their values anyway). Undefined (fixtures / roles RPC
407
417
  // unavailable) prunes nothing — never hides more than desk would.
408
- const { roles } = useUserRoles();
409
418
  const permMatrix = useMemo(
410
419
  () => buildPermLevelMatrix(meta?.permissions, roles),
411
420
  [meta?.permissions, roles],
@@ -690,14 +699,19 @@ export function DoctypeListScreen({
690
699
  },
691
700
  ] as BulkAction<ListRow>[])
692
701
  : []),
693
- {
694
- id: "edit",
695
- label: t("list.editTitle", "Bulk Edit"),
696
- onExecute: (items, clearSelection) => {
697
- const names = items.map((item) => item.name).filter(Boolean) as string[];
698
- if (names.length > 0) setPendingDialog({ type: "edit", names, clear: clearSelection });
699
- },
700
- },
702
+ ...(rights.write
703
+ ? ([
704
+ {
705
+ id: "edit",
706
+ label: t("list.editTitle", "Bulk Edit"),
707
+ onExecute: (items, clearSelection) => {
708
+ const names = items.map((item) => item.name).filter(Boolean) as string[];
709
+ if (names.length > 0)
710
+ setPendingDialog({ type: "edit", names, clear: clearSelection });
711
+ },
712
+ },
713
+ ] as BulkAction<ListRow>[])
714
+ : []),
701
715
  {
702
716
  id: "export",
703
717
  label: t("list.export", "Export CSV"),
@@ -706,7 +720,7 @@ export function DoctypeListScreen({
706
720
  if (names.length > 0) await handleBulkExport(names);
707
721
  },
708
722
  },
709
- ...(isSubmittable
723
+ ...(isSubmittable && rights.submit
710
724
  ? ([
711
725
  {
712
726
  id: "submit",
@@ -724,6 +738,10 @@ export function DoctypeListScreen({
724
738
  clearSelection();
725
739
  },
726
740
  },
741
+ ] as BulkAction<ListRow>[])
742
+ : []),
743
+ ...(isSubmittable && rights.cancel
744
+ ? ([
727
745
  {
728
746
  id: "cancel",
729
747
  label: t("list.cancel", "Cancel"),
@@ -742,47 +760,51 @@ export function DoctypeListScreen({
742
760
  },
743
761
  ] as BulkAction<ListRow>[])
744
762
  : []),
745
- {
746
- id: "delete",
747
- label: t("list.delete", "Delete"),
748
- variant: "destructive",
749
- requiresConfirmation: true,
750
- confirmTitle: t("list.deleteTitle", "Delete documents"),
751
- confirmMessage: t("list.deleteConfirm", {
752
- defaultValue: "Permanently delete the selected {{doctype}} documents?",
753
- doctype,
754
- }),
755
- onExecute: async (items, clearSelection) => {
756
- if (!app) return;
757
- const names = items.map((item) => item.name).filter(Boolean) as string[];
758
- if (names.length === 0) return;
759
- const result = await bulkDelete(app, doctype, names);
760
- if (result.failed.length > 0) {
761
- notify({
762
- severity: "warning",
763
- scope: "page",
764
- body: t("list.deletePartial", {
765
- count: result.succeeded.length,
766
- total: names.length,
767
- names: result.failed.map((failure) => failure.name).join(", "),
768
- defaultValue: "Deleted {{count}} of {{total}} documents; failed: {{names}}",
769
- }),
770
- });
771
- } else {
772
- notify({
773
- severity: "success",
774
- scope: "page",
775
- body: t("list.deleteDone", {
776
- count: result.succeeded.length,
777
- defaultValue_one: "Deleted {{count}} document",
778
- defaultValue_other: "Deleted {{count}} documents",
763
+ ...(rights.delete
764
+ ? ([
765
+ {
766
+ id: "delete",
767
+ label: t("list.delete", "Delete"),
768
+ variant: "destructive",
769
+ requiresConfirmation: true,
770
+ confirmTitle: t("list.deleteTitle", "Delete documents"),
771
+ confirmMessage: t("list.deleteConfirm", {
772
+ defaultValue: "Permanently delete the selected {{doctype}} documents?",
773
+ doctype,
779
774
  }),
780
- });
781
- }
782
- clearSelection();
783
- count.refresh();
784
- },
785
- },
775
+ onExecute: async (items, clearSelection) => {
776
+ if (!app) return;
777
+ const names = items.map((item) => item.name).filter(Boolean) as string[];
778
+ if (names.length === 0) return;
779
+ const result = await bulkDelete(app, doctype, names);
780
+ if (result.failed.length > 0) {
781
+ notify({
782
+ severity: "warning",
783
+ scope: "page",
784
+ body: t("list.deletePartial", {
785
+ count: result.succeeded.length,
786
+ total: names.length,
787
+ names: result.failed.map((failure) => failure.name).join(", "),
788
+ defaultValue: "Deleted {{count}} of {{total}} documents; failed: {{names}}",
789
+ }),
790
+ });
791
+ } else {
792
+ notify({
793
+ severity: "success",
794
+ scope: "page",
795
+ body: t("list.deleteDone", {
796
+ count: result.succeeded.length,
797
+ defaultValue_one: "Deleted {{count}} document",
798
+ defaultValue_other: "Deleted {{count}} documents",
799
+ }),
800
+ });
801
+ }
802
+ clearSelection();
803
+ count.refresh();
804
+ },
805
+ },
806
+ ] as BulkAction<ListRow>[])
807
+ : []),
786
808
  ...hostListActions,
787
809
  ],
788
810
  [
@@ -796,6 +818,7 @@ export function DoctypeListScreen({
796
818
  capabilities.assignments.enabled,
797
819
  capabilities.tags.enabled,
798
820
  hostListActions,
821
+ rights,
799
822
  ],
800
823
  );
801
824
 
@@ -1060,6 +1083,7 @@ export function DoctypeListScreen({
1060
1083
  {...(bulkActionsEnabled ? { bulkActions } : {})}
1061
1084
  onRowClick={handleRowClick}
1062
1085
  onStateChange={handleStateChange}
1086
+ rights={rights}
1063
1087
  layout="list"
1064
1088
  />
1065
1089
  )}
@@ -86,7 +86,7 @@ describe("listFieldsToFetch permlevel pruning", () => {
86
86
  const matrix = buildPermLevelMatrix(meta.permissions, ["Desk User"]);
87
87
  const fields = listFieldsToFetch(meta, matrix);
88
88
  expect(fields).toEqual(
89
- expect.arrayContaining(["name", "modified", "full_name", "enabled", "_comment_count"]),
89
+ expect.arrayContaining(["name", "modified", "full_name", "enabled", "_comments"]),
90
90
  );
91
91
  expect(fields).not.toContain("role_profile_name");
92
92
  expect(fields).not.toContain("api_secret_hint");
@@ -99,6 +99,42 @@ describe("listFieldsToFetch permlevel pruning", () => {
99
99
  });
100
100
  });
101
101
 
102
+ // frappe/model/__init__.py default_fields and optional_fields: the only names
103
+ // frappe.desk.reportview.validate_fields lets through without a DocField.
104
+ // Anything else that isn't a field of the doctype answers 417 "Field not
105
+ // permitted in query" for every user without the query bypass (MPO-389).
106
+ const frappeStandardFields = new Set([
107
+ "doctype",
108
+ "name",
109
+ "owner",
110
+ "creation",
111
+ "modified",
112
+ "modified_by",
113
+ "docstatus",
114
+ "idx",
115
+ "_user_tags",
116
+ "_comments",
117
+ "_assign",
118
+ "_liked_by",
119
+ "_seen",
120
+ ]);
121
+
122
+ describe("listFieldsToFetch asks only for columns Frappe will select", () => {
123
+ it("names nothing but the doctype's fields and Frappe's standard columns", () => {
124
+ const fieldnames = new Set(meta.fields.map((field) => field.fieldname));
125
+ const rejected = listFieldsToFetch(meta, undefined).filter(
126
+ (name) => !fieldnames.has(name) && !frappeStandardFields.has(name),
127
+ );
128
+ expect(rejected).toEqual([]);
129
+ });
130
+
131
+ it("reads the comment count from _comments instead of the computed _comment_count", () => {
132
+ const fields = listFieldsToFetch(meta, undefined);
133
+ expect(fields).toContain("_comments");
134
+ expect(fields).not.toContain("_comment_count");
135
+ });
136
+ });
137
+
102
138
  describe("listDocumentColumnIds desk list anatomy", () => {
103
139
  it("is title, in_list_view values, then the activity cluster — no extra ID/modified", () => {
104
140
  expect(listDocumentColumnIds(meta)).toEqual([
@@ -24,7 +24,7 @@ export function listFieldsToFetch(meta?: DoctypeMeta, permMatrix?: PermLevelMatr
24
24
  "_liked_by",
25
25
  "_assign",
26
26
  "_user_tags",
27
- "_comment_count",
27
+ "_comments",
28
28
  ]);
29
29
  if (meta?.title_field) fields.add(meta.title_field);
30
30
  for (const field of meta?.fields ?? []) {
@@ -0,0 +1,28 @@
1
+ import { FrappeProvider } from "@multiplatform.one/frappe-ui";
2
+ import { renderHook } from "@testing-library/react";
3
+ import type { ReactNode } from "react";
4
+ import { describe, expect, it } from "vitest";
5
+ import { useFrappeApp } from "./useFrappeApp";
6
+
7
+ function appUnder(syncOptions?: { writeStrategy?: "live" | "resource" }) {
8
+ const wrapper = ({ children }: { children: ReactNode }) => (
9
+ <FrappeProvider
10
+ baseURL="https://use-frappe-app.test"
11
+ realtime={false}
12
+ syncOptions={syncOptions}
13
+ >
14
+ {children}
15
+ </FrappeProvider>
16
+ );
17
+ return renderHook(() => useFrappeApp(), { wrapper }).result.current;
18
+ }
19
+
20
+ describe("useFrappeApp write strategy (MPO-396)", () => {
21
+ it("bulk writes follow the provider's resource write strategy", () => {
22
+ expect(appUnder({ writeStrategy: "resource" })?.db().getWriteStrategy()).toBe("resource");
23
+ });
24
+
25
+ it("stays on the live app when the provider names none", () => {
26
+ expect(appUnder()?.db().getWriteStrategy()).toBe("live");
27
+ });
28
+ });
@@ -26,9 +26,10 @@ export function useFrappeApp(): FrappeApp | undefined {
26
26
  const useToken = config?.auth?.useToken;
27
27
  const token = config?.auth?.token;
28
28
  const type = config?.auth?.type;
29
+ const writeStrategy = config?.syncOptions?.writeStrategy;
29
30
  return useMemo(() => {
30
31
  if (!baseURL) return undefined;
31
- const key = `${baseURL}|${socketPort ?? ""}|${socketBaseURL ?? ""}|${siteName ?? ""}|${useToken ? "t" : ""}|${token ?? ""}|${type ?? ""}`;
32
+ const key = `${baseURL}|${socketPort ?? ""}|${socketBaseURL ?? ""}|${siteName ?? ""}|${useToken ? "t" : ""}|${token ?? ""}|${type ?? ""}|${writeStrategy ?? ""}`;
32
33
  let app = appCache.get(key);
33
34
  if (!app) {
34
35
  const realtimeOptions =
@@ -40,9 +41,10 @@ export function useFrappeApp(): FrappeApp | undefined {
40
41
  token,
41
42
  type: (type === "Bearer" ? "Bearer" : type ? "token" : undefined) as AuthConfig["type"],
42
43
  realtimeOptions,
44
+ frappeLive: writeStrategy ? { writeStrategy } : undefined,
43
45
  });
44
46
  appCache.set(key, app);
45
47
  }
46
48
  return app;
47
- }, [baseURL, socketPort, socketBaseURL, siteName, useToken, token, type]);
49
+ }, [baseURL, socketPort, socketBaseURL, siteName, useToken, token, type, writeStrategy]);
48
50
  }
@@ -1,14 +1,15 @@
1
1
  /**
2
2
  * Session user's role list for backoffice surfaces, read off the ambient
3
3
  * FrappeProvider. The fetch itself lives in frappe-ui's form engine
4
- * (`useSessionRoles`) so FrappeForm and the desk resolve permlevel from one
5
- * source; `roles` stays undefined while loading, in fixture mode, or when
6
- * the RPC fails.
4
+ * (`useFrappeSession`) so FrappeForm and the desk resolve permlevel and doc
5
+ * rights from one source; `roles` and `user` stay undefined while loading,
6
+ * in fixture mode, or when the RPC fails.
7
7
  */
8
8
 
9
- import { useFrappeConfig, useSessionRoles } from "@multiplatform.one/frappe-ui";
9
+ import { useFrappeConfig, useFrappeSession } from "@multiplatform.one/frappe-ui";
10
10
 
11
- export function useUserRoles(): { roles?: string[] } {
11
+ export function useUserRoles(): { roles?: string[]; user?: string } {
12
12
  const config = useFrappeConfig();
13
- return { roles: useSessionRoles(config) };
13
+ const { roles, user } = useFrappeSession(config);
14
+ return { roles, user };
14
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DocFormScreen.d.ts","sourceRoot":"","sources":["../../src/form/DocFormScreen.tsx"],"names":[],"mappings":"AAqCA,OAAO,EAML,KAAK,gBAAgB,EACtB,MAAM,8BAA8B,CAAC;AAqCtC,oDAAoD;AACpD,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,+EAA+E;IAC/E,KAAK,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,kBAAkB;IACjC,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uEAAuE;IACvE,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,2CAA2C;IAC3C,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,+EAA+E;IAC/E,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACpE,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,wDAAwD;IACxD,eAAe,CAAC,EAAE,sBAAsB,CAAC;CAC1C;AAID,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,SAAS,EACT,eAAe,GAChB,EAAE,kBAAkB,2CAq+BpB"}
1
+ {"version":3,"file":"DocFormScreen.d.ts","sourceRoot":"","sources":["../../src/form/DocFormScreen.tsx"],"names":[],"mappings":"AA0CA,OAAO,EAML,KAAK,gBAAgB,EACtB,MAAM,8BAA8B,CAAC;AAqCtC,oDAAoD;AACpD,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,+EAA+E;IAC/E,KAAK,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,kBAAkB;IACjC,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uEAAuE;IACvE,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,2CAA2C;IAC3C,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,+EAA+E;IAC/E,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACpE,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,wDAAwD;IACxD,eAAe,CAAC,EAAE,sBAAsB,CAAC;CAC1C;AAID,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,SAAS,EACT,eAAe,GAChB,EAAE,kBAAkB,2CA4/BpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"DoctypeListScreen.d.ts","sourceRoot":"","sources":["../../src/list/DoctypeListScreen.tsx"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EAEV,eAAe,EAIhB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAOL,KAAK,gBAAgB,EACtB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAS1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,KAAK,WAAW,EAAkB,MAAM,0BAA0B,CAAC;AAoB5E,OAAO,EAAgB,KAAK,OAAO,EAAoB,MAAM,eAAe,CAAC;AAY7E,MAAM,WAAW,sBAAsB;IACrC,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IAClC;;;OAGG;IACH,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B;;;OAGG;IACH,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,8EAA8E;IAC9E,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,KAAK,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;IACtF,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gFAAgF;IAChF,cAAc,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;CAC9C;AAsBD,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,KAAK,EAAE,cAAc,EACrB,cAAc,EACd,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,SAAS,EACT,aAAa,EACb,cAAc,GACf,EAAE,sBAAsB,2CA86BxB"}
1
+ {"version":3,"file":"DoctypeListScreen.d.ts","sourceRoot":"","sources":["../../src/list/DoctypeListScreen.tsx"],"names":[],"mappings":"AAuCA,OAAO,KAAK,EAEV,eAAe,EAIhB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAOL,KAAK,gBAAgB,EACtB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAS1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,KAAK,WAAW,EAAkB,MAAM,0BAA0B,CAAC;AAoB5E,OAAO,EAAgB,KAAK,OAAO,EAAoB,MAAM,eAAe,CAAC;AAY7E,MAAM,WAAW,sBAAsB;IACrC,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IAClC;;;OAGG;IACH,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B;;;OAGG;IACH,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,8EAA8E;IAC9E,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,KAAK,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;IACtF,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gFAAgF;IAChF,cAAc,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;CAC9C;AAsBD,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,KAAK,EAAE,cAAc,EACrB,cAAc,EACd,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,SAAS,EACT,aAAa,EACb,cAAc,GACf,EAAE,sBAAsB,2CAq8BxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"useFrappeApp.d.ts","sourceRoot":"","sources":["../../src/shared/useFrappeApp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAmB,MAAM,2BAA2B,CAAC;AAMvE;;;;;;GAMG;AACH,wBAAgB,YAAY,IAAI,SAAS,GAAG,SAAS,CAkCpD"}
1
+ {"version":3,"file":"useFrappeApp.d.ts","sourceRoot":"","sources":["../../src/shared/useFrappeApp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAmB,MAAM,2BAA2B,CAAC;AAMvE;;;;;;GAMG;AACH,wBAAgB,YAAY,IAAI,SAAS,GAAG,SAAS,CAoCpD"}
@@ -1,11 +1,12 @@
1
1
  /**
2
2
  * Session user's role list for backoffice surfaces, read off the ambient
3
3
  * FrappeProvider. The fetch itself lives in frappe-ui's form engine
4
- * (`useSessionRoles`) so FrappeForm and the desk resolve permlevel from one
5
- * source; `roles` stays undefined while loading, in fixture mode, or when
6
- * the RPC fails.
4
+ * (`useFrappeSession`) so FrappeForm and the desk resolve permlevel and doc
5
+ * rights from one source; `roles` and `user` stay undefined while loading,
6
+ * in fixture mode, or when the RPC fails.
7
7
  */
8
8
  export declare function useUserRoles(): {
9
9
  roles?: string[];
10
+ user?: string;
10
11
  };
11
12
  //# sourceMappingURL=useUserRoles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useUserRoles.d.ts","sourceRoot":"","sources":["../../src/shared/useUserRoles.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,wBAAgB,YAAY,IAAI;IAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAGnD"}
1
+ {"version":3,"file":"useUserRoles.d.ts","sourceRoot":"","sources":["../../src/shared/useUserRoles.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,wBAAgB,YAAY,IAAI;IAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAIlE"}