@multiplatform.one/backoffice 7.6.2 → 7.7.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 (353) 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.native.js.map +1 -1
  12. package/dist/cjs/chrome/command-palette-model.native.js +1 -1
  13. package/dist/cjs/chrome/command-palette-model.native.js.map +1 -1
  14. package/dist/cjs/chrome/help-about-dialog.native.js +1 -1
  15. package/dist/cjs/chrome/help-about-dialog.native.js.map +1 -1
  16. package/dist/cjs/chrome/help-shortcuts-dialog.native.js +1 -1
  17. package/dist/cjs/chrome/help-shortcuts-dialog.native.js.map +1 -1
  18. package/dist/cjs/chrome/notifications-data.native.js.map +1 -1
  19. package/dist/cjs/chrome/notifications-panel.native.js +1 -1
  20. package/dist/cjs/chrome/notifications-panel.native.js.map +1 -1
  21. package/dist/cjs/chrome/notifications-utils.native.js.map +1 -1
  22. package/dist/cjs/chrome/shortcuts.native.js.map +1 -1
  23. package/dist/cjs/chrome/user-session.native.js.map +1 -1
  24. package/dist/cjs/config/BackofficeProvider.native.js +1 -1
  25. package/dist/cjs/config/BackofficeProvider.native.js.map +1 -1
  26. package/dist/cjs/config/capabilities.native.js.map +1 -1
  27. package/dist/cjs/config/events.native.js.map +1 -1
  28. package/dist/cjs/config/slots.native.js.map +1 -1
  29. package/dist/cjs/desk/Desk.native.js.map +1 -1
  30. package/dist/cjs/desk/DeskSurface.native.js.map +1 -1
  31. package/dist/cjs/desk/resolveDeskPath.native.js.map +1 -1
  32. package/dist/cjs/desk/scope.native.js.map +1 -1
  33. package/dist/cjs/desk/target.native.js.map +1 -1
  34. package/dist/cjs/form/DocFormScreen.native.js +1 -1
  35. package/dist/cjs/form/DocFormScreen.native.js.map +1 -1
  36. package/dist/cjs/form/FormConnections.native.js +1 -1
  37. package/dist/cjs/form/FormConnections.native.js.map +1 -1
  38. package/dist/cjs/form/FormDialogs.native.js +1 -1
  39. package/dist/cjs/form/FormDialogs.native.js.map +1 -1
  40. package/dist/cjs/form/FormErrorBoundary.native.js +1 -1
  41. package/dist/cjs/form/FormErrorBoundary.native.js.map +1 -1
  42. package/dist/cjs/form/FormHeaderCluster.native.js +1 -1
  43. package/dist/cjs/form/FormHeaderCluster.native.js.map +1 -1
  44. package/dist/cjs/form/FormSidebarPanel.native.js +1 -1
  45. package/dist/cjs/form/FormSidebarPanel.native.js.map +1 -1
  46. package/dist/cjs/form/FormTimeline.native.js +1 -1
  47. package/dist/cjs/form/FormTimeline.native.js.map +1 -1
  48. package/dist/cjs/form/FormToolbar.native.js +1 -1
  49. package/dist/cjs/form/FormToolbar.native.js.map +1 -1
  50. package/dist/cjs/form/connections-data.native.js.map +1 -1
  51. package/dist/cjs/form/createPrefill.cjs +3 -11
  52. package/dist/cjs/form/createPrefill.native.js +3 -11
  53. package/dist/cjs/form/createPrefill.native.js.map +1 -1
  54. package/dist/cjs/form/dependsOn.native.js.map +1 -1
  55. package/dist/cjs/form/dirtyTracking.cjs +4 -29
  56. package/dist/cjs/form/dirtyTracking.native.js +4 -48
  57. package/dist/cjs/form/dirtyTracking.native.js.map +1 -1
  58. package/dist/cjs/form/docinfo.native.js.map +1 -1
  59. package/dist/cjs/form/fetchFrom.cjs +4 -41
  60. package/dist/cjs/form/fetchFrom.native.js +4 -81
  61. package/dist/cjs/form/fetchFrom.native.js.map +1 -1
  62. package/dist/cjs/form/fieldPermissions.cjs +4 -29
  63. package/dist/cjs/form/fieldPermissions.native.js +4 -51
  64. package/dist/cjs/form/fieldPermissions.native.js.map +1 -1
  65. package/dist/cjs/form/formActions.cjs +2 -171
  66. package/dist/cjs/form/formActions.native.js +2 -178
  67. package/dist/cjs/form/formActions.native.js.map +1 -1
  68. package/dist/cjs/form/formLayout.cjs +5 -219
  69. package/dist/cjs/form/formLayout.native.js +5 -359
  70. package/dist/cjs/form/formLayout.native.js.map +1 -1
  71. package/dist/cjs/form/platformHooks.native.js.map +1 -1
  72. package/dist/cjs/form/sidebar-attachments.native.js +1 -1
  73. package/dist/cjs/form/sidebar-attachments.native.js.map +1 -1
  74. package/dist/cjs/form/sidebar-dialogs.native.js +1 -1
  75. package/dist/cjs/form/sidebar-dialogs.native.js.map +1 -1
  76. package/dist/cjs/form/sidebar-people.native.js +1 -1
  77. package/dist/cjs/form/sidebar-people.native.js.map +1 -1
  78. package/dist/cjs/form/sidebar-rpc.native.js.map +1 -1
  79. package/dist/cjs/form/sidebar-utils.native.js.map +1 -1
  80. package/dist/cjs/form/timeline-entries.native.js.map +1 -1
  81. package/dist/cjs/form/timeline-utils.native.js.map +1 -1
  82. package/dist/cjs/form/useFormEngine.cjs +2 -361
  83. package/dist/cjs/form/useFormEngine.native.js +2 -447
  84. package/dist/cjs/form/useFormEngine.native.js.map +1 -1
  85. package/dist/cjs/i18n/en.native.js.map +1 -1
  86. package/dist/cjs/i18n/index.native.js.map +1 -1
  87. package/dist/cjs/index.native.js +1 -1
  88. package/dist/cjs/index.native.js.map +1 -1
  89. package/dist/cjs/list/AddTagsDialog.native.js +1 -1
  90. package/dist/cjs/list/AddTagsDialog.native.js.map +1 -1
  91. package/dist/cjs/list/AssignToDialog.native.js +1 -1
  92. package/dist/cjs/list/AssignToDialog.native.js.map +1 -1
  93. package/dist/cjs/list/DoctypeListScreen.native.js +1 -1
  94. package/dist/cjs/list/DoctypeListScreen.native.js.map +1 -1
  95. package/dist/cjs/list/ListBulkActionsBar.native.js +1 -1
  96. package/dist/cjs/list/ListBulkActionsBar.native.js.map +1 -1
  97. package/dist/cjs/list/ListFilterBar.native.js +1 -1
  98. package/dist/cjs/list/ListFilterBar.native.js.map +1 -1
  99. package/dist/cjs/list/ListSidebar.native.js +1 -1
  100. package/dist/cjs/list/ListSidebar.native.js.map +1 -1
  101. package/dist/cjs/list/bulk-edit-dialog.native.js +1 -1
  102. package/dist/cjs/list/bulk-edit-dialog.native.js.map +1 -1
  103. package/dist/cjs/list/bulk-export.native.js.map +1 -1
  104. package/dist/cjs/list/bulk-submit-cancel.native.js.map +1 -1
  105. package/dist/cjs/list/bulkActions.native.js.map +1 -1
  106. package/dist/cjs/list/filter-chips.native.js +1 -1
  107. package/dist/cjs/list/filter-chips.native.js.map +1 -1
  108. package/dist/cjs/list/filter-editor.native.js +1 -1
  109. package/dist/cjs/list/filter-editor.native.js.map +1 -1
  110. package/dist/cjs/list/filter-fields.native.js.map +1 -1
  111. package/dist/cjs/list/filter-saved.native.js +1 -1
  112. package/dist/cjs/list/filter-saved.native.js.map +1 -1
  113. package/dist/cjs/list/filter-sort.native.js +1 -1
  114. package/dist/cjs/list/filter-sort.native.js.map +1 -1
  115. package/dist/cjs/list/filter-standard.native.js.map +1 -1
  116. package/dist/cjs/list/filterConversion.native.js.map +1 -1
  117. package/dist/cjs/list/list-tools-sheet.native.js +1 -1
  118. package/dist/cjs/list/list-tools-sheet.native.js.map +1 -1
  119. package/dist/cjs/list/listColumns.native.js.map +1 -1
  120. package/dist/cjs/list/listFields.native.js.map +1 -1
  121. package/dist/cjs/list/listFormat.native.js.map +1 -1
  122. package/dist/cjs/list/listUrlState.native.js.map +1 -1
  123. package/dist/cjs/list/sidebar-section.native.js +1 -1
  124. package/dist/cjs/list/sidebar-section.native.js.map +1 -1
  125. package/dist/cjs/list/sidebar-stats.native.js.map +1 -1
  126. package/dist/cjs/list/statusColors.native.js.map +1 -1
  127. package/dist/cjs/navigation/navigator.native.js.map +1 -1
  128. package/dist/cjs/navigation/paths.native.js.map +1 -1
  129. package/dist/cjs/oneAdapter/index.native.js.map +1 -1
  130. package/dist/cjs/quickEntry/QuickEntryDialog.native.js +1 -1
  131. package/dist/cjs/quickEntry/QuickEntryDialog.native.js.map +1 -1
  132. package/dist/cjs/quickEntry/quickEntryPlan.native.js.map +1 -1
  133. package/dist/cjs/report/DoctypeReportView.native.js +1 -1
  134. package/dist/cjs/report/DoctypeReportView.native.js.map +1 -1
  135. package/dist/cjs/report/QueryReportScreen.native.js +1 -1
  136. package/dist/cjs/report/QueryReportScreen.native.js.map +1 -1
  137. package/dist/cjs/report/queryReportColumns.native.js.map +1 -1
  138. package/dist/cjs/report/queryReportFilterBar.native.js +1 -1
  139. package/dist/cjs/report/queryReportFilterBar.native.js.map +1 -1
  140. package/dist/cjs/report/queryReportUrlState.native.js.map +1 -1
  141. package/dist/cjs/report/report-grid.native.js +1 -1
  142. package/dist/cjs/report/report-grid.native.js.map +1 -1
  143. package/dist/cjs/report/report-toolbar.native.js +1 -1
  144. package/dist/cjs/report/report-toolbar.native.js.map +1 -1
  145. package/dist/cjs/report/reportShapes.native.js.map +1 -1
  146. package/dist/cjs/report/reportViewModel.native.js.map +1 -1
  147. package/dist/cjs/report/savedReports.native.js.map +1 -1
  148. package/dist/cjs/report/useQueryReport.native.js.map +1 -1
  149. package/dist/cjs/shared/deskLinks.native.js.map +1 -1
  150. package/dist/cjs/shared/listNavContext.native.js.map +1 -1
  151. package/dist/cjs/shared/types.native.js.map +1 -1
  152. package/dist/cjs/shared/useDocinfo.native.js.map +1 -1
  153. package/dist/cjs/shared/useDoctypeMeta.native.js.map +1 -1
  154. package/dist/cjs/shared/useFrappeApp.native.js.map +1 -1
  155. package/dist/cjs/shared/useRecentVisit.native.js.map +1 -1
  156. package/dist/cjs/shared/useSessionUserId.native.js.map +1 -1
  157. package/dist/cjs/shared/useSlugTarget.native.js.map +1 -1
  158. package/dist/cjs/shared/useUserRoles.native.js.map +1 -1
  159. package/dist/cjs/shell/BackofficeShell.native.js +1 -1
  160. package/dist/cjs/shell/BackofficeShell.native.js.map +1 -1
  161. package/dist/cjs/shell/HomeRedirect.native.js +1 -1
  162. package/dist/cjs/shell/HomeRedirect.native.js.map +1 -1
  163. package/dist/cjs/shell/NotFoundScreen.native.js +1 -1
  164. package/dist/cjs/shell/NotFoundScreen.native.js.map +1 -1
  165. package/dist/cjs/shell/SlugScreen.native.js +1 -1
  166. package/dist/cjs/shell/SlugScreen.native.js.map +1 -1
  167. package/dist/cjs/shell/WorkspaceSidebar.native.js +1 -1
  168. package/dist/cjs/shell/WorkspaceSidebar.native.js.map +1 -1
  169. package/dist/cjs/shell/useWorkspaces.native.js.map +1 -1
  170. package/dist/cjs/shell/workspaceIcons.native.js.map +1 -1
  171. package/dist/cjs/views/CalendarView.native.js +1 -1
  172. package/dist/cjs/views/CalendarView.native.js.map +1 -1
  173. package/dist/cjs/views/DashboardView.native.js +1 -1
  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.native.js +1 -1
  179. package/dist/cjs/views/KanbanView.native.js.map +1 -1
  180. package/dist/cjs/views/ReportView.native.js +1 -1
  181. package/dist/cjs/views/ReportView.native.js.map +1 -1
  182. package/dist/cjs/views/TreeView.native.js +1 -1
  183. package/dist/cjs/views/TreeView.native.js.map +1 -1
  184. package/dist/cjs/views/ViewHeader.native.js +1 -1
  185. package/dist/cjs/views/ViewHeader.native.js.map +1 -1
  186. package/dist/cjs/views/ViewStates.native.js +1 -1
  187. package/dist/cjs/views/ViewStates.native.js.map +1 -1
  188. package/dist/cjs/views/ViewSwitcherMenu.native.js +1 -1
  189. package/dist/cjs/views/ViewSwitcherMenu.native.js.map +1 -1
  190. package/dist/cjs/views/calendar-field-selector.native.js +1 -1
  191. package/dist/cjs/views/calendar-field-selector.native.js.map +1 -1
  192. package/dist/cjs/views/connection.native.js.map +1 -1
  193. package/dist/cjs/views/dashboard-data.native.js.map +1 -1
  194. package/dist/cjs/views/deskViewConfigs.native.js.map +1 -1
  195. package/dist/cjs/views/kanban-board-controls.native.js +1 -1
  196. package/dist/cjs/views/kanban-board-controls.native.js.map +1 -1
  197. package/dist/cjs/views/kanban-field-picker.native.js +1 -1
  198. package/dist/cjs/views/kanban-field-picker.native.js.map +1 -1
  199. package/dist/cjs/views/kanbanBoardOps.native.js.map +1 -1
  200. package/dist/cjs/views/report-controls.native.js +1 -1
  201. package/dist/cjs/views/report-controls.native.js.map +1 -1
  202. package/dist/cjs/views/viewAvailability.native.js.map +1 -1
  203. package/dist/cjs/views/viewMeta.native.js.map +1 -1
  204. package/dist/cjs/workspace/WorkspaceChartBlock.native.js +1 -1
  205. package/dist/cjs/workspace/WorkspaceChartBlock.native.js.map +1 -1
  206. package/dist/cjs/workspace/WorkspaceGrid.native.js.map +1 -1
  207. package/dist/cjs/workspace/WorkspaceLinkCard.native.js +1 -1
  208. package/dist/cjs/workspace/WorkspaceLinkCard.native.js.map +1 -1
  209. package/dist/cjs/workspace/WorkspaceLinkDirectory.native.js +1 -1
  210. package/dist/cjs/workspace/WorkspaceLinkDirectory.native.js.map +1 -1
  211. package/dist/cjs/workspace/WorkspaceNumberCard.native.js +1 -1
  212. package/dist/cjs/workspace/WorkspaceNumberCard.native.js.map +1 -1
  213. package/dist/cjs/workspace/WorkspaceQuickList.cjs +1 -1
  214. package/dist/cjs/workspace/WorkspaceQuickList.native.js +4 -2
  215. package/dist/cjs/workspace/WorkspaceQuickList.native.js.map +1 -1
  216. package/dist/cjs/workspace/WorkspaceRecents.cjs +1 -3
  217. package/dist/cjs/workspace/WorkspaceRecents.native.js +4 -4
  218. package/dist/cjs/workspace/WorkspaceRecents.native.js.map +1 -1
  219. package/dist/cjs/workspace/WorkspaceScreen.native.js +1 -1
  220. package/dist/cjs/workspace/WorkspaceScreen.native.js.map +1 -1
  221. package/dist/cjs/workspace/WorkspaceShortcut.cjs +1 -3
  222. package/dist/cjs/workspace/WorkspaceShortcut.native.js +5 -4
  223. package/dist/cjs/workspace/WorkspaceShortcut.native.js.map +1 -1
  224. package/dist/cjs/workspace/parseContent.native.js.map +1 -1
  225. package/dist/cjs/workspace/types.native.js.map +1 -1
  226. package/dist/cjs/workspace/useDashboardChart.native.js.map +1 -1
  227. package/dist/cjs/workspace/useWorkspaceDoc.native.js.map +1 -1
  228. package/dist/esm/desk/DeskSurface.mjs.map +1 -1
  229. package/dist/esm/desk/DeskSurface.native.js.map +1 -1
  230. package/dist/esm/form/createPrefill.mjs +1 -9
  231. package/dist/esm/form/createPrefill.mjs.map +1 -1
  232. package/dist/esm/form/createPrefill.native.js +1 -9
  233. package/dist/esm/form/createPrefill.native.js.map +1 -1
  234. package/dist/esm/form/dirtyTracking.mjs +1 -26
  235. package/dist/esm/form/dirtyTracking.mjs.map +1 -1
  236. package/dist/esm/form/dirtyTracking.native.js +1 -45
  237. package/dist/esm/form/dirtyTracking.native.js.map +1 -1
  238. package/dist/esm/form/fetchFrom.mjs +1 -38
  239. package/dist/esm/form/fetchFrom.mjs.map +1 -1
  240. package/dist/esm/form/fetchFrom.native.js +1 -78
  241. package/dist/esm/form/fetchFrom.native.js.map +1 -1
  242. package/dist/esm/form/fieldPermissions.mjs +1 -26
  243. package/dist/esm/form/fieldPermissions.mjs.map +1 -1
  244. package/dist/esm/form/fieldPermissions.native.js +1 -48
  245. package/dist/esm/form/fieldPermissions.native.js.map +1 -1
  246. package/dist/esm/form/formActions.mjs +1 -145
  247. package/dist/esm/form/formActions.mjs.map +1 -1
  248. package/dist/esm/form/formActions.native.js +1 -152
  249. package/dist/esm/form/formActions.native.js.map +1 -1
  250. package/dist/esm/form/formLayout.mjs +1 -215
  251. package/dist/esm/form/formLayout.mjs.map +1 -1
  252. package/dist/esm/form/formLayout.native.js +1 -355
  253. package/dist/esm/form/formLayout.native.js.map +1 -1
  254. package/dist/esm/form/useFormEngine.mjs +1 -360
  255. package/dist/esm/form/useFormEngine.mjs.map +1 -1
  256. package/dist/esm/form/useFormEngine.native.js +1 -446
  257. package/dist/esm/form/useFormEngine.native.js.map +1 -1
  258. package/dist/esm/shared/useDoctypeMeta.mjs.map +1 -1
  259. package/dist/esm/shared/useDoctypeMeta.native.js.map +1 -1
  260. package/dist/esm/workspace/WorkspaceQuickList.mjs +2 -2
  261. package/dist/esm/workspace/WorkspaceQuickList.mjs.map +1 -1
  262. package/dist/esm/workspace/WorkspaceQuickList.native.js +4 -2
  263. package/dist/esm/workspace/WorkspaceQuickList.native.js.map +1 -1
  264. package/dist/esm/workspace/WorkspaceRecents.mjs +1 -3
  265. package/dist/esm/workspace/WorkspaceRecents.mjs.map +1 -1
  266. package/dist/esm/workspace/WorkspaceRecents.native.js +3 -3
  267. package/dist/esm/workspace/WorkspaceRecents.native.js.map +1 -1
  268. package/dist/esm/workspace/WorkspaceShortcut.mjs +1 -3
  269. package/dist/esm/workspace/WorkspaceShortcut.mjs.map +1 -1
  270. package/dist/esm/workspace/WorkspaceShortcut.native.js +4 -3
  271. package/dist/esm/workspace/WorkspaceShortcut.native.js.map +1 -1
  272. package/dist/jsx/desk/DeskSurface.mjs.map +1 -1
  273. package/dist/jsx/desk/DeskSurface.native.js.map +1 -1
  274. package/dist/jsx/form/createPrefill.mjs +1 -9
  275. package/dist/jsx/form/createPrefill.mjs.map +1 -1
  276. package/dist/jsx/form/createPrefill.native.js +3 -11
  277. package/dist/jsx/form/createPrefill.native.js.map +1 -1
  278. package/dist/jsx/form/dirtyTracking.mjs +1 -26
  279. package/dist/jsx/form/dirtyTracking.mjs.map +1 -1
  280. package/dist/jsx/form/dirtyTracking.native.js +4 -48
  281. package/dist/jsx/form/dirtyTracking.native.js.map +1 -1
  282. package/dist/jsx/form/fetchFrom.mjs +1 -38
  283. package/dist/jsx/form/fetchFrom.mjs.map +1 -1
  284. package/dist/jsx/form/fetchFrom.native.js +4 -81
  285. package/dist/jsx/form/fetchFrom.native.js.map +1 -1
  286. package/dist/jsx/form/fieldPermissions.mjs +1 -26
  287. package/dist/jsx/form/fieldPermissions.mjs.map +1 -1
  288. package/dist/jsx/form/fieldPermissions.native.js +4 -51
  289. package/dist/jsx/form/fieldPermissions.native.js.map +1 -1
  290. package/dist/jsx/form/formActions.mjs +1 -145
  291. package/dist/jsx/form/formActions.mjs.map +1 -1
  292. package/dist/jsx/form/formActions.native.js +2 -178
  293. package/dist/jsx/form/formActions.native.js.map +1 -1
  294. package/dist/jsx/form/formLayout.mjs +1 -215
  295. package/dist/jsx/form/formLayout.mjs.map +1 -1
  296. package/dist/jsx/form/formLayout.native.js +5 -359
  297. package/dist/jsx/form/formLayout.native.js.map +1 -1
  298. package/dist/jsx/form/useFormEngine.mjs +1 -360
  299. package/dist/jsx/form/useFormEngine.mjs.map +1 -1
  300. package/dist/jsx/form/useFormEngine.native.js +2 -447
  301. package/dist/jsx/form/useFormEngine.native.js.map +1 -1
  302. package/dist/jsx/shared/useDoctypeMeta.mjs.map +1 -1
  303. package/dist/jsx/shared/useDoctypeMeta.native.js.map +1 -1
  304. package/dist/jsx/workspace/WorkspaceQuickList.mjs +2 -2
  305. package/dist/jsx/workspace/WorkspaceQuickList.mjs.map +1 -1
  306. package/dist/jsx/workspace/WorkspaceQuickList.native.js +3 -1
  307. package/dist/jsx/workspace/WorkspaceQuickList.native.js.map +1 -1
  308. package/dist/jsx/workspace/WorkspaceRecents.mjs +1 -3
  309. package/dist/jsx/workspace/WorkspaceRecents.mjs.map +1 -1
  310. package/dist/jsx/workspace/WorkspaceRecents.native.js +3 -3
  311. package/dist/jsx/workspace/WorkspaceRecents.native.js.map +1 -1
  312. package/dist/jsx/workspace/WorkspaceShortcut.mjs +1 -3
  313. package/dist/jsx/workspace/WorkspaceShortcut.mjs.map +1 -1
  314. package/dist/jsx/workspace/WorkspaceShortcut.native.js +4 -3
  315. package/dist/jsx/workspace/WorkspaceShortcut.native.js.map +1 -1
  316. package/package.json +12 -13
  317. package/src/desk/DeskSurface.tsx +8 -4
  318. package/src/form/createPrefill.ts +5 -25
  319. package/src/form/dirtyTracking.ts +4 -61
  320. package/src/form/fetchFrom.ts +5 -108
  321. package/src/form/fieldPermissions.ts +7 -65
  322. package/src/form/formActions.ts +10 -281
  323. package/src/form/formEngineShim.spec.ts +122 -0
  324. package/src/form/formLayout.ts +15 -387
  325. package/src/form/useFormEngine.ts +5 -493
  326. package/src/shared/useDoctypeMeta.ts +12 -100
  327. package/src/workspace/WorkspaceQuickList.tsx +10 -2
  328. package/src/workspace/WorkspaceRecents.tsx +3 -1
  329. package/src/workspace/WorkspaceShortcut.tsx +4 -1
  330. package/types/desk/DeskSurface.d.ts.map +1 -1
  331. package/types/form/createPrefill.d.ts +5 -16
  332. package/types/form/createPrefill.d.ts.map +1 -1
  333. package/types/form/dirtyTracking.d.ts +4 -33
  334. package/types/form/dirtyTracking.d.ts.map +1 -1
  335. package/types/form/fetchFrom.d.ts +5 -40
  336. package/types/form/fetchFrom.d.ts.map +1 -1
  337. package/types/form/fieldPermissions.d.ts +7 -35
  338. package/types/form/fieldPermissions.d.ts.map +1 -1
  339. package/types/form/formActions.d.ts +6 -91
  340. package/types/form/formActions.d.ts.map +1 -1
  341. package/types/form/formLayout.d.ts +12 -89
  342. package/types/form/formLayout.d.ts.map +1 -1
  343. package/types/form/useFormEngine.d.ts +5 -58
  344. package/types/form/useFormEngine.d.ts.map +1 -1
  345. package/types/shared/useDoctypeMeta.d.ts +2 -100
  346. package/types/shared/useDoctypeMeta.d.ts.map +1 -1
  347. package/types/workspace/WorkspaceQuickList.d.ts.map +1 -1
  348. package/types/workspace/WorkspaceRecents.d.ts.map +1 -1
  349. package/types/workspace/WorkspaceShortcut.d.ts.map +1 -1
  350. package/src/form/dirtyTracking.spec.ts +0 -91
  351. package/src/form/fetchFrom.spec.ts +0 -92
  352. package/src/form/fieldPermissions.spec.ts +0 -61
  353. package/src/form/formLayout.spec.ts +0 -373
@@ -1,285 +1,14 @@
1
1
  /**
2
- * Desk form RPC helpers — thin wrappers over the whitelisted methods the
3
- * stock desk form view calls. Every payload here was probed against a live
4
- * bench (frappe v15) before implementation:
2
+ * Desk RPC helpers — moved to
3
+ * `@multiplatform.one/frappe-ui/src/formEngine/formActions` (MPO-15),
4
+ * because useFormEngine consumes them and the engine now lives there.
5
5
  *
6
- * frappe.desk.form.assign_to.add {doctype, name, assign_to: [..], description?}
7
- * frappe.desk.form.assign_to.remove {doctype, name, assign_to: "user"}
8
- * frappe.desk.form.utils.add_comment {reference_doctype, reference_name, content,
9
- * comment_email, comment_by}
10
- * frappe.desk.doctype.tag.tag.add_tag {tag, dt, dn}
11
- * frappe.desk.doctype.tag.tag.remove_tag{tag, dt, dn}
12
- * frappe.desk.like.toggle_like {doctype, name, add: "Yes"|"No"}
13
- * frappe.desk.form.document_follow.follow_document / unfollow_document
14
- * {doctype, doc_name, user}
15
- * frappe.model.rename_doc.update_document_title
16
- * {doctype, docname, name, merge: 0} → new name
17
- * (what desk calls — syncs the title field too)
18
- * frappe.client.submit {doc} (full doc incl. modified — OCC enforced)
19
- * frappe.client.cancel {doctype, name}
20
- * frappe.client.get_count {doctype, filters}
21
- * frappe.client.validate_link {doctype, docname, fields: [..]} →
22
- * {name, <field>: value} (fetch_from preview)
23
- * frappe.core.doctype.communication.email.make
24
- * {doctype, name, recipients, subject, content,
25
- * send_email: 1}
26
- * frappe.desk.form.utils.remove_attach {fid, dt, dn}
6
+ * Deep-import only on both sides: these utility names collide with the list
7
+ * and shell surfaces, so neither barrel carries them.
27
8
  */
28
9
 
29
- import { HttpClient, FileModule, type AuthConfig } from "@multiplatform.one/frappe";
30
- import type { FixtureProvider } from "@multiplatform.one/frappe";
31
-
32
- /**
33
- * Connection shape shared by every form loader/action — structurally
34
- * compatible with frappe-ui's FrappeConfig and the frappe package's
35
- * UseFrappeCollectionConfig (function tokens included).
36
- */
37
- export interface FrappeConnection {
38
- baseURL: string;
39
- socketPort?: number;
40
- /** Same-origin socket override (see FrappeConfig.socketBaseURL). */
41
- socketBaseURL?: string;
42
- /** Frappe site name — the realtime Socket.IO namespace. */
43
- siteName?: string;
44
- auth?: {
45
- useToken?: boolean;
46
- token?: string | (() => string | Promise<string>);
47
- type?: string;
48
- };
49
- // biome-ignore lint: matches FrappeConfig.syncOptions
50
- syncOptions?: any;
51
- fixtures?: FixtureProvider;
52
- }
53
-
54
- export function createHttpClient(connection: FrappeConnection): HttpClient {
55
- const auth: AuthConfig | undefined = connection.auth
56
- ? {
57
- useToken: connection.auth.useToken,
58
- token: connection.auth.token,
59
- type: connection.auth.type as AuthConfig["type"],
60
- }
61
- : undefined;
62
- return new HttpClient(connection.baseURL, auth);
63
- }
64
-
65
- async function post<T = unknown>(
66
- http: HttpClient,
67
- method: string,
68
- body: Record<string, unknown>,
69
- ): Promise<T | undefined> {
70
- const response = await http.post<{ message?: T }>(`/api/method/${method}`, body);
71
- return response.payload?.message;
72
- }
73
-
74
- // ---------------------------------------------------------------------------
75
- // Assignments
76
- // ---------------------------------------------------------------------------
77
-
78
- export function addAssignment(
79
- http: HttpClient,
80
- doctype: string,
81
- name: string,
82
- users: string[],
83
- description?: string,
84
- ) {
85
- return post(http, "frappe.desk.form.assign_to.add", {
86
- doctype,
87
- name,
88
- assign_to: users,
89
- description: description || undefined,
90
- });
91
- }
92
-
93
- export function removeAssignment(http: HttpClient, doctype: string, name: string, user: string) {
94
- return post(http, "frappe.desk.form.assign_to.remove", { doctype, name, assign_to: user });
95
- }
96
-
97
- // ---------------------------------------------------------------------------
98
- // Comments
99
- // ---------------------------------------------------------------------------
100
-
101
- export function addComment(
102
- http: HttpClient,
103
- args: {
104
- doctype: string;
105
- name: string;
106
- content: string;
107
- commentEmail: string;
108
- commentBy?: string;
109
- },
110
- ) {
111
- return post(http, "frappe.desk.form.utils.add_comment", {
112
- reference_doctype: args.doctype,
113
- reference_name: args.name,
114
- content: args.content,
115
- comment_email: args.commentEmail,
116
- comment_by: args.commentBy ?? args.commentEmail,
117
- });
118
- }
119
-
120
- // ---------------------------------------------------------------------------
121
- // Tags
122
- // ---------------------------------------------------------------------------
123
-
124
- export function addTag(http: HttpClient, doctype: string, name: string, tag: string) {
125
- return post(http, "frappe.desk.doctype.tag.tag.add_tag", { tag, dt: doctype, dn: name });
126
- }
127
-
128
- export function removeTag(http: HttpClient, doctype: string, name: string, tag: string) {
129
- return post(http, "frappe.desk.doctype.tag.tag.remove_tag", { tag, dt: doctype, dn: name });
130
- }
131
-
132
- // ---------------------------------------------------------------------------
133
- // Like / Follow
134
- // ---------------------------------------------------------------------------
135
-
136
- export function toggleLike(http: HttpClient, doctype: string, name: string, add: boolean) {
137
- return post(http, "frappe.desk.like.toggle_like", {
138
- doctype,
139
- name,
140
- add: add ? "Yes" : "No",
141
- });
142
- }
143
-
144
- export function followDocument(http: HttpClient, doctype: string, name: string, user: string) {
145
- return post(http, "frappe.desk.form.document_follow.follow_document", {
146
- doctype,
147
- doc_name: name,
148
- user,
149
- });
150
- }
151
-
152
- export function unfollowDocument(http: HttpClient, doctype: string, name: string, user: string) {
153
- return post(http, "frappe.desk.form.document_follow.unfollow_document", {
154
- doctype,
155
- doc_name: name,
156
- user,
157
- });
158
- }
159
-
160
- // ---------------------------------------------------------------------------
161
- // Document lifecycle
162
- // ---------------------------------------------------------------------------
163
-
164
- /**
165
- * Rename a document; resolves with the new name. Uses desk's own
166
- * `update_document_title` (handles title-field sync; the bare
167
- * `frappe.rename_doc` does not). Pass a `title` argument instead of `name`
168
- * to retitle without renaming — not needed here yet.
169
- */
170
- export async function renameDoc(
171
- http: HttpClient,
172
- doctype: string,
173
- oldName: string,
174
- newName: string,
175
- ): Promise<string> {
176
- const result = await post<string>(http, "frappe.model.rename_doc.update_document_title", {
177
- doctype,
178
- docname: oldName,
179
- name: newName,
180
- merge: 0,
181
- });
182
- return result ?? newName;
183
- }
184
-
185
- /** Submit a saved draft (docstatus 0 → 1). Requires the current full doc for OCC. */
186
- export function submitDoc(http: HttpClient, doc: Record<string, unknown>) {
187
- return post<Record<string, unknown>>(http, "frappe.client.submit", { doc });
188
- }
189
-
190
- /** Cancel a submitted doc (docstatus 1 → 2). */
191
- export function cancelDoc(http: HttpClient, doctype: string, name: string) {
192
- return post<Record<string, unknown>>(http, "frappe.client.cancel", { doctype, name });
193
- }
194
-
195
- /** Direct REST insert — returns the created doc (with its server-issued name). */
196
- export async function insertDoc(
197
- http: HttpClient,
198
- doctype: string,
199
- values: Record<string, unknown>,
200
- ): Promise<Record<string, unknown>> {
201
- const response = await http.post<{ data?: Record<string, unknown> }>(
202
- `/api/resource/${encodeURIComponent(doctype)}`,
203
- values,
204
- );
205
- const data = response.payload?.data;
206
- if (!data) throw new Error(`Insert into ${doctype} returned no document`);
207
- return data;
208
- }
209
-
210
- /**
211
- * Validate a link value and fetch columns off the linked doc in one call —
212
- * what desk's Link control uses to drive fetch_from previews. Resolves with
213
- * `{name, <field>: value, ...}`; rejects when the target doc is missing.
214
- */
215
- export async function validateLink(
216
- http: HttpClient,
217
- doctype: string,
218
- docname: string,
219
- fields: string[],
220
- ): Promise<Record<string, unknown>> {
221
- const result = await post<Record<string, unknown>>(http, "frappe.client.validate_link", {
222
- doctype,
223
- docname,
224
- fields,
225
- });
226
- return result ?? {};
227
- }
228
-
229
- // ---------------------------------------------------------------------------
230
- // Misc
231
- // ---------------------------------------------------------------------------
232
-
233
- export async function getCount(
234
- http: HttpClient,
235
- doctype: string,
236
- filters: Record<string, unknown>,
237
- ): Promise<number> {
238
- const response = await http.get<{ message?: number }>("/api/method/frappe.client.get_count", {
239
- doctype,
240
- filters: JSON.stringify(filters),
241
- });
242
- return response.payload?.message ?? 0;
243
- }
244
-
245
- let cachedUser: string | undefined;
246
- export async function getLoggedUser(http: HttpClient): Promise<string> {
247
- if (cachedUser) return cachedUser;
248
- const response = await http.get<{ message?: string }>("/api/method/frappe.auth.get_logged_user");
249
- cachedUser = response.payload?.message ?? "Guest";
250
- return cachedUser;
251
- }
252
-
253
- export function removeAttachment(http: HttpClient, fileId: string, doctype: string, name: string) {
254
- return post(http, "frappe.desk.form.utils.remove_attach", { fid: fileId, dt: doctype, dn: name });
255
- }
256
-
257
- export function uploadAttachment(
258
- http: HttpClient,
259
- file: File | Blob,
260
- doctype: string,
261
- name: string,
262
- ): Promise<unknown> {
263
- const files = new FileModule(http);
264
- return files.uploadFile(file, { doctype, docname: name });
265
- }
266
-
267
- export function sendEmail(
268
- http: HttpClient,
269
- args: {
270
- doctype: string;
271
- name: string;
272
- recipients: string;
273
- subject: string;
274
- content: string;
275
- },
276
- ) {
277
- return post(http, "frappe.core.doctype.communication.email.make", {
278
- doctype: args.doctype,
279
- name: args.name,
280
- recipients: args.recipients,
281
- subject: args.subject,
282
- content: args.content,
283
- send_email: 1,
284
- });
285
- }
10
+ // Dedicated "./formActions" subpath (see frappe-ui package.json exports),
11
+ // following the ./dependsOn precedent: a deep, extension-less
12
+ // "@multiplatform.one/frappe-ui/src/*" import does NOT resolve under the
13
+ // storybook workspace aliases (bare-name alias -> src/index.ts).
14
+ export * from "@multiplatform.one/frappe-ui/formActions";
@@ -0,0 +1,122 @@
1
+ /**
2
+ * MPO-15 — the form-engine seam, from this side.
3
+ *
4
+ * The engine moved down to `@multiplatform.one/frappe-ui`
5
+ * (`src/formEngine/*`). The move must be invisible to anyone importing this
6
+ * package: the barrel keeps the same names, and the
7
+ * `@multiplatform.one/backoffice/src/form/*` deep imports keep resolving
8
+ * (the GNOME shim deep-imports `form/fieldPermissions` and
9
+ * `form/createPrefill`; `DocFormScreen` deep-imports `form/formActions`).
10
+ *
11
+ * Source-level on purpose: importing the backoffice barrel here would drag
12
+ * the whole desk UI into a node-ish spec run to prove a re-export.
13
+ */
14
+ import fs from "node:fs";
15
+ import path from "node:path";
16
+ import { describe, expect, it } from "vitest";
17
+
18
+ const srcDir = path.resolve(__dirname, "..");
19
+
20
+ function read(rel: string): string {
21
+ return fs.readFileSync(path.resolve(srcDir, rel), "utf-8");
22
+ }
23
+
24
+ /** module path (relative to src/) → names it must still hand out. */
25
+ const SHIMS: Record<string, string[]> = {
26
+ "form/formLayout.ts": [
27
+ "buildCopyValues",
28
+ "buildCreateDefaults",
29
+ "buildFormTabs",
30
+ "isPromptNamed",
31
+ "BuildTabsOptions",
32
+ "FormTab",
33
+ ],
34
+ "form/useFormEngine.ts": ["useFormEngine", "FormEngine"],
35
+ "form/fieldPermissions.ts": [
36
+ "buildPermLevelMatrix",
37
+ "canReadLevel",
38
+ "canWriteLevel",
39
+ "LevelPerm",
40
+ "PermLevelMatrix",
41
+ ],
42
+ "form/fetchFrom.ts": [
43
+ "applyFetchedValues",
44
+ "buildFetchMap",
45
+ "isFetchLocked",
46
+ "FetchMap",
47
+ "FetchRule",
48
+ ],
49
+ "form/dirtyTracking.ts": ["computeDirtyFields", "isEmptyValue", "isSameValue"],
50
+ "form/createPrefill.ts": ["setCreatePrefill", "takeCreatePrefill"],
51
+ };
52
+
53
+ describe("form engine shims (MPO-15)", () => {
54
+ it("re-exports every hoisted name from its old path", () => {
55
+ for (const [rel, names] of Object.entries(SHIMS)) {
56
+ const source = read(rel);
57
+ expect(source, `${rel} must source from frappe-ui`).toMatch(
58
+ /from ["']@multiplatform\.one\/frappe-ui["']/,
59
+ );
60
+ for (const name of names) {
61
+ expect(source, `${rel} must still hand out "${name}"`).toContain(name);
62
+ }
63
+ // A shim that grew an implementation back is the drift this guards.
64
+ expect(source, `${rel} is a re-export, not an implementation`).not.toMatch(
65
+ /^(export )?function |^const |^class /m,
66
+ );
67
+ }
68
+ });
69
+
70
+ it("reaches formActions through its dedicated subpath, not src/*", () => {
71
+ // A deep, extension-less "@multiplatform.one/frappe-ui/src/*" import does
72
+ // NOT resolve under the storybook workspace aliases (bare-name alias →
73
+ // src/index.ts) — the same trap ./dependsOn already documents.
74
+ const source = read("form/formActions.ts");
75
+ expect(source).toMatch(/from ["']@multiplatform\.one\/frappe-ui\/formActions["']/);
76
+ expect(source).not.toMatch(/from ["']@multiplatform\.one\/frappe-ui\/src\//);
77
+ });
78
+
79
+ it("stops declaring the meta shapes and re-exports them instead", () => {
80
+ const source = read("shared/useDoctypeMeta.ts");
81
+ for (const name of ["DocFieldMeta", "DocLinkMeta", "DocPermissionRule", "DoctypeMeta"]) {
82
+ expect(source, `${name} must no longer be declared here`).not.toContain(
83
+ `export interface ${name} {`,
84
+ );
85
+ }
86
+ expect(source, "the shapes still leave this module").toMatch(
87
+ /export type \{[\s\S]*DocFieldMeta[\s\S]*\} from "@multiplatform\.one\/frappe-ui"/,
88
+ );
89
+ // The loader hook itself stays — it needs the backoffice app context.
90
+ expect(source).toContain("export function useDoctypeMeta");
91
+ expect(source).toContain("export interface DoctypeMetaBundle");
92
+ });
93
+
94
+ it("keeps the barrel surface unchanged", () => {
95
+ const barrel = read("index.ts");
96
+ const names = [
97
+ "buildPermLevelMatrix",
98
+ "canReadLevel",
99
+ "canWriteLevel",
100
+ "applyFetchedValues",
101
+ "buildFetchMap",
102
+ "isFetchLocked",
103
+ "computeDirtyFields",
104
+ "isEmptyValue",
105
+ "isSameValue",
106
+ "setCreatePrefill",
107
+ "takeCreatePrefill",
108
+ "buildCopyValues",
109
+ "buildCreateDefaults",
110
+ "buildFormTabs",
111
+ "isPromptNamed",
112
+ "useFormEngine",
113
+ "DocFieldMeta",
114
+ "DocLinkMeta",
115
+ "DocPermissionRule",
116
+ "DoctypeMeta",
117
+ ];
118
+ for (const name of names) {
119
+ expect(barrel, `the backoffice barrel must still export "${name}"`).toContain(name);
120
+ }
121
+ });
122
+ });