@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,19 +1,8 @@
1
1
  /**
2
- * One-shot create-mode prefill hand-off.
3
- *
4
- * Two producers, one mechanism:
5
- * - Duplicate and Amend navigate to `newDocPath(doctype)` and stash the
6
- * copied values here (in-memory only — a refresh honestly falls back to
7
- * a blank form; no URL-size limits for large docs).
8
- * - NewDocRouteScreen stashes parsed `?d=` URL defaults (kanban column "+",
9
- * calendar day click, connections "+") before rendering the form — those
10
- * survive refresh because the URL re-stashes them.
11
- *
12
- * The create-mode form (useFormEngine seeding) consumes and clears the
13
- * stash on mount, merging it over meta defaults. Last stash per doctype
14
- * wins, so a `?d=` navigation cannot double-apply with a stale
15
- * Duplicate/Amend hand-off.
2
+ * Create-mode prefill handoff — moved to
3
+ * `@multiplatform.one/frappe-ui/src/formEngine/createPrefill` (MPO-15).
4
+ * Re-exported here so existing imports keep resolving (the GNOME shim
5
+ * deep-imports this path).
16
6
  */
17
- export declare function setCreatePrefill(doctype: string, values: Record<string, unknown>): void;
18
- export declare function takeCreatePrefill(doctype: string): Record<string, unknown> | undefined;
7
+ export { setCreatePrefill, takeCreatePrefill } from "@multiplatform.one/frappe-ui";
19
8
  //# sourceMappingURL=createPrefill.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createPrefill.d.ts","sourceRoot":"","sources":["../../src/form/createPrefill.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAEvF;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAItF"}
1
+ {"version":3,"file":"createPrefill.d.ts","sourceRoot":"","sources":["../../src/form/createPrefill.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC"}
@@ -1,36 +1,7 @@
1
1
  /**
2
- * Dirty tracking for the desk form engine (R-1 false "Not Saved" fix).
3
- *
4
- * The engine diffs the locally edited doc against the last server baseline.
5
- * A strict `!==` diff falsely armed Save on untouched documents whenever a
6
- * field's *representation* of a value differed from the wire format (mount
7
- * emitters have been fixed at the field level — forms contract: initialization
8
- * must not emit change events — but the engine stays defensive).
2
+ * Dirty-field diffing moved to
3
+ * `@multiplatform.one/frappe-ui/src/formEngine/dirtyTracking` (MPO-15).
4
+ * Re-exported here so existing imports keep resolving.
9
5
  */
10
- export declare function isEmptyValue(value: unknown): boolean;
11
- /**
12
- * Init-aware value equality. Two representation classes are folded:
13
- *
14
- * - empty: null / undefined / "" / [] are one empty state (a field
15
- * normalizing null → "" is not an edit)
16
- * - boolean: Check wires 0/1 but a control may emit true/false
17
- *
18
- * Everything else stays strict equality — deliberately shallow and honest
19
- * (no deep equality): desk parity means an edit reverted to a value that is
20
- * merely *equivalent* (not identical) may still read dirty, while reverting
21
- * to the exact original value reads clean.
22
- */
23
- export declare function isSameValue(a: unknown, b: unknown): boolean;
24
- /**
25
- * Names of fields whose local value differs from the baseline.
26
- *
27
- * - Edit mode (baseline defined): normalization-insensitive diff via
28
- * `isSameValue` — an untouched doc reads pristine even if a field
29
- * re-represented its value during initialization.
30
- * - Create mode (no baseline): any non-empty value counts, defaults included —
31
- * desk parity, a new doc shows "Not Saved".
32
- *
33
- * `doctype` / `name` are bookkeeping, never dirty.
34
- */
35
- export declare function computeDirtyFields(localDoc: Record<string, unknown>, baseline: Record<string, unknown> | undefined): string[];
6
+ export { computeDirtyFields, isEmptyValue, isSameValue } from "@multiplatform.one/frappe-ui";
36
7
  //# sourceMappingURL=dirtyTracking.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dirtyTracking.d.ts","sourceRoot":"","sources":["../../src/form/dirtyTracking.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAKpD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAS3D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC5C,MAAM,EAAE,CASV"}
1
+ {"version":3,"file":"dirtyTracking.d.ts","sourceRoot":"","sources":["../../src/form/dirtyTracking.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC"}
@@ -1,43 +1,8 @@
1
1
  /**
2
- * fetch_from client-side previewdesk parity with
3
- * frappe/public/js/frappe/form/script_manager.js (`setup_add_fetch`) and
4
- * controls/link.js (`validate_link_and_fetch`):
5
- *
6
- * - A field participates when `fetch_from` is "<link_field>.<source_field>"
7
- * AND (its fieldtype is in the scalar set desk registers, or it is
8
- * read_only / is_virtual).
9
- * - When the link field changes to a value, desk calls
10
- * `frappe.client.validate_link` with the source columns and writes the
11
- * returned values onto the targets; clearing the link clears the targets.
12
- * - `fetch_if_empty` targets keep a non-empty existing value (server
13
- * semantics; desk leaves such fields editable — see
14
- * `read_only_because_of_fetch_from`, base_input.js:56-66).
15
- *
16
- * The server remains authoritative: this is a preview so the user sees the
17
- * fetched values before save.
2
+ * `fetch_from` map + lock helpers moved to
3
+ * `@multiplatform.one/frappe-ui/src/formEngine/fetchFrom` (MPO-15).
4
+ * Re-exported here so existing imports keep resolving.
18
5
  */
19
- import type { DocFieldMeta } from "../shared/useDoctypeMeta";
20
- export interface FetchRule {
21
- /** Field to populate. */
22
- target: string;
23
- /** Column on the linked doc to read. */
24
- source: string;
25
- /** Only fill when the target is currently empty; never lock the field. */
26
- fetchIfEmpty: boolean;
27
- }
28
- /** Map of link fieldname → fetch rules hanging off that link. */
29
- export type FetchMap = Map<string, FetchRule[]>;
30
- export declare function buildFetchMap(fields: DocFieldMeta[]): FetchMap;
31
- /**
32
- * Values to patch onto the doc after the linked doc's columns arrive.
33
- * `fetched` is empty when the link was cleared — desk then blanks the
34
- * targets; `fetch_if_empty` targets holding a value are left alone in both
35
- * directions (they belong to the user until the server reconciles).
36
- */
37
- export declare function applyFetchedValues(rules: FetchRule[], fetched: Record<string, unknown>, currentDoc: Record<string, unknown>): Record<string, unknown>;
38
- /**
39
- * Desk's `read_only_because_of_fetch_from`: a fetch target without
40
- * `fetch_if_empty` renders read-only while its source link holds a value.
41
- */
42
- export declare function isFetchLocked(field: DocFieldMeta, doc: Record<string, unknown>): boolean;
6
+ export { applyFetchedValues, buildFetchMap, isFetchLocked } from "@multiplatform.one/frappe-ui";
7
+ export type { FetchMap, FetchRule } from "@multiplatform.one/frappe-ui";
43
8
  //# sourceMappingURL=fetchFrom.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetchFrom.d.ts","sourceRoot":"","sources":["../../src/form/fetchFrom.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAuB7D,MAAM,WAAW,SAAS;IACxB,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,iEAAiE;AACjE,MAAM,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;AAEhD,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,QAAQ,CAsB9D;AAMD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,SAAS,EAAE,EAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAOzB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAKxF"}
1
+ {"version":3,"file":"fetchFrom.d.ts","sourceRoot":"","sources":["../../src/form/fetchFrom.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAChG,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC"}
@@ -1,38 +1,10 @@
1
1
  /**
2
- * Field-level permission matrix — desk parity with
3
- * frappe/public/js/frappe/model/perm.js (`get_role_permissions` +
4
- * `get_field_display_status`):
5
- *
6
- * perm[level] = OR of meta.permissions rows whose role the session user
7
- * holds. A field at permlevel L then resolves to:
8
- * - no read at L → hidden ("None")
9
- * - read, no write → read-only ("Read")
10
- * - write → editable ("Write", subject to the other rules)
11
- *
12
- * Levels that appear on fields but have no granting rows resolve to
13
- * {read: false} — desk hides those fields (gap-filled `{}` in perm.js:153).
14
- * When the caller has no role list (fixtures, roles RPC unavailable) the
15
- * matrix is undefined and formLayout falls back to the conservative
16
- * "permlevel > 0 → read-only" rule (never hides, never unlocks).
2
+ * Permlevel matrix helpers moved to
3
+ * `@multiplatform.one/frappe-ui/src/formEngine/fieldPermissions` (MPO-15),
4
+ * because formLayout consumes them and formLayout now lives there.
5
+ * Re-exported here so existing imports keep resolving (the GNOME shim
6
+ * deep-imports this path).
17
7
  */
18
- import type { DocPermissionRule } from "../shared/useDoctypeMeta";
19
- export interface LevelPerm {
20
- read: boolean;
21
- write: boolean;
22
- }
23
- /** Sparse array indexed by permlevel; missing entries mean "no rights". */
24
- export type PermLevelMatrix = LevelPerm[];
25
- export declare function buildPermLevelMatrix(permissions: DocPermissionRule[] | undefined, userRoles: string[] | undefined): PermLevelMatrix | undefined;
26
- /**
27
- * Read access at a permlevel. Level 0 is implied by having the doc at all
28
- * (docinfo/doc-level perms govern it — including share/if_owner grants the
29
- * role matrix can't see), so only higher levels consult the matrix.
30
- */
31
- export declare function canReadLevel(matrix: PermLevelMatrix | undefined, permlevel: number): boolean;
32
- /**
33
- * Write access at a permlevel. Level 0 defers to the doc-level write flag
34
- * (formReadOnly); higher levels require a granting role row — without a
35
- * matrix the coarse fallback keeps them read-only (desk-safe direction).
36
- */
37
- export declare function canWriteLevel(matrix: PermLevelMatrix | undefined, permlevel: number): boolean;
8
+ export { buildPermLevelMatrix, canReadLevel, canWriteLevel } from "@multiplatform.one/frappe-ui";
9
+ export type { LevelPerm, PermLevelMatrix } from "@multiplatform.one/frappe-ui";
38
10
  //# sourceMappingURL=fieldPermissions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fieldPermissions.d.ts","sourceRoot":"","sources":["../../src/form/fieldPermissions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,2EAA2E;AAC3E,MAAM,MAAM,eAAe,GAAG,SAAS,EAAE,CAAC;AAE1C,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,iBAAiB,EAAE,GAAG,SAAS,EAC5C,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,GAC9B,eAAe,GAAG,SAAS,CAc7B;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAI5F;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAI7F"}
1
+ {"version":3,"file":"fieldPermissions.d.ts","sourceRoot":"","sources":["../../src/form/fieldPermissions.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AACjG,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC"}
@@ -1,95 +1,10 @@
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
- import { HttpClient } from "@multiplatform.one/frappe";
29
- import type { FixtureProvider } from "@multiplatform.one/frappe";
30
- /**
31
- * Connection shape shared by every form loader/action — structurally
32
- * compatible with frappe-ui's FrappeConfig and the frappe package's
33
- * UseFrappeCollectionConfig (function tokens included).
34
- */
35
- export interface FrappeConnection {
36
- baseURL: string;
37
- socketPort?: number;
38
- /** Same-origin socket override (see FrappeConfig.socketBaseURL). */
39
- socketBaseURL?: string;
40
- /** Frappe site name — the realtime Socket.IO namespace. */
41
- siteName?: string;
42
- auth?: {
43
- useToken?: boolean;
44
- token?: string | (() => string | Promise<string>);
45
- type?: string;
46
- };
47
- syncOptions?: any;
48
- fixtures?: FixtureProvider;
49
- }
50
- export declare function createHttpClient(connection: FrappeConnection): HttpClient;
51
- export declare function addAssignment(http: HttpClient, doctype: string, name: string, users: string[], description?: string): Promise<unknown>;
52
- export declare function removeAssignment(http: HttpClient, doctype: string, name: string, user: string): Promise<unknown>;
53
- export declare function addComment(http: HttpClient, args: {
54
- doctype: string;
55
- name: string;
56
- content: string;
57
- commentEmail: string;
58
- commentBy?: string;
59
- }): Promise<unknown>;
60
- export declare function addTag(http: HttpClient, doctype: string, name: string, tag: string): Promise<unknown>;
61
- export declare function removeTag(http: HttpClient, doctype: string, name: string, tag: string): Promise<unknown>;
62
- export declare function toggleLike(http: HttpClient, doctype: string, name: string, add: boolean): Promise<unknown>;
63
- export declare function followDocument(http: HttpClient, doctype: string, name: string, user: string): Promise<unknown>;
64
- export declare function unfollowDocument(http: HttpClient, doctype: string, name: string, user: string): Promise<unknown>;
65
- /**
66
- * Rename a document; resolves with the new name. Uses desk's own
67
- * `update_document_title` (handles title-field sync; the bare
68
- * `frappe.rename_doc` does not). Pass a `title` argument instead of `name`
69
- * to retitle without renaming — not needed here yet.
70
- */
71
- export declare function renameDoc(http: HttpClient, doctype: string, oldName: string, newName: string): Promise<string>;
72
- /** Submit a saved draft (docstatus 0 → 1). Requires the current full doc for OCC. */
73
- export declare function submitDoc(http: HttpClient, doc: Record<string, unknown>): Promise<Record<string, unknown> | undefined>;
74
- /** Cancel a submitted doc (docstatus 1 → 2). */
75
- export declare function cancelDoc(http: HttpClient, doctype: string, name: string): Promise<Record<string, unknown> | undefined>;
76
- /** Direct REST insert — returns the created doc (with its server-issued name). */
77
- export declare function insertDoc(http: HttpClient, doctype: string, values: Record<string, unknown>): Promise<Record<string, unknown>>;
78
- /**
79
- * Validate a link value and fetch columns off the linked doc in one call —
80
- * what desk's Link control uses to drive fetch_from previews. Resolves with
81
- * `{name, <field>: value, ...}`; rejects when the target doc is missing.
82
- */
83
- export declare function validateLink(http: HttpClient, doctype: string, docname: string, fields: string[]): Promise<Record<string, unknown>>;
84
- export declare function getCount(http: HttpClient, doctype: string, filters: Record<string, unknown>): Promise<number>;
85
- export declare function getLoggedUser(http: HttpClient): Promise<string>;
86
- export declare function removeAttachment(http: HttpClient, fileId: string, doctype: string, name: string): Promise<unknown>;
87
- export declare function uploadAttachment(http: HttpClient, file: File | Blob, doctype: string, name: string): Promise<unknown>;
88
- export declare function sendEmail(http: HttpClient, args: {
89
- doctype: string;
90
- name: string;
91
- recipients: string;
92
- subject: string;
93
- content: string;
94
- }): Promise<unknown>;
9
+ export * from "@multiplatform.one/frappe-ui/formActions";
95
10
  //# sourceMappingURL=formActions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"formActions.d.ts","sourceRoot":"","sources":["../../src/form/formActions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"formActions.d.ts","sourceRoot":"","sources":["../../src/form/formActions.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,cAAc,0CAA0C,CAAC"}
@@ -1,91 +1,14 @@
1
1
  /**
2
- * Desk form layout engine.
3
- *
4
- * Splits the flat DocType field list into desk tabs (Tab Break), sections
5
- * (Section Break, collapsible honored), and columns (Column Break), and
6
- * maps them to the generic `FormSchema` consumed by frappe-ui's SchemaForm.
7
- *
8
- * Dynamic behavior is computed HERE with the safe depends_on evaluator
9
- * (dependsOn.ts) — the `depends_on` string is deliberately stripped from the
10
- * FieldSchema handed to SchemaForm so its string-eval-based evaluator
11
- * (which cannot run on Hermes/GJS) never engages:
12
- *
13
- * - depends_on → field omitted from the built schema
14
- * - mandatory_depends_on → `required: true` on the built FieldSchema
15
- * - read_only_depends_on → `readOnly: true` on the built FieldSchema
16
- * - permlevel → hidden without level read, read-only without
17
- * level write (role matrix via fieldPermissions.ts; coarse read-only
18
- * fallback when roles are unavailable)
19
- * - set_only_once → read-only on saved docs
20
- * - fetch_from → read-only while the source link holds a value
21
- * (unless fetch_if_empty)
22
- * - docstatus > 0 → everything read-only except allow_on_submit
23
- * fields on a submitted (1) doc
24
- * - collapsible / collapsible_depends_on / missing-mandatory → per-section
25
- * computed collapse state (desk refresh_section_collapse)
26
- *
27
- * Sections whose Section Break has a false depends_on hide wholesale; a
28
- * section with no visible fields is dropped so SchemaForm never renders an
29
- * empty card.
30
- */
31
- import type { FormSchema } from "@multiplatform.one/frappe-ui";
32
- import { type PermLevelMatrix } from "./fieldPermissions";
33
- import type { DocFieldMeta } from "../shared/useDoctypeMeta";
34
- export interface FormTab {
35
- /** Stable key (fieldname of the Tab Break or "__details") */
36
- key: string;
37
- label: string;
38
- schema: FormSchema;
39
- }
40
- export interface BuildTabsOptions {
41
- fields: DocFieldMeta[];
42
- doc: Record<string, unknown>;
43
- /** docstatus of the loaded doc (0 draft / 1 submitted / 2 cancelled). */
44
- docstatus: number;
45
- /** Meta-level read_only or missing write permission. */
46
- formReadOnly: boolean;
47
- /** Create mode relaxes read_only_depends_on on unsaved values. */
48
- isCreate: boolean;
49
- /** Default label for the implicit first tab. */
50
- detailsLabel: string;
51
- /**
52
- * Role-derived permlevel matrix (fieldPermissions.ts). Desk semantics:
53
- * fields at a level without read HIDE; read without write → read-only.
54
- * Undefined (fixtures / roles unavailable) → coarse fallback: any
55
- * permlevel > 0 renders read-only, never hidden.
56
- */
57
- permLevels?: PermLevelMatrix;
58
- /** Host-hidden fields (fieldnames) — dropped before layout resolution. */
59
- hiddenFields?: readonly string[];
60
- /**
61
- * Host-hidden sections/tabs. Matches a Section Break's or Tab Break's
62
- * fieldname OR label; the whole section (or tab) is dropped.
63
- */
64
- hiddenSections?: readonly string[];
65
- }
66
- /**
67
- * Build the desk tab list for the current doc state. Recomputed whenever
68
- * the doc changes so depends_on chains re-resolve; the work is O(fields).
69
- */
70
- export declare function buildFormTabs(options: BuildTabsOptions): FormTab[];
71
- /**
72
- * Seed a create-mode doc from meta field defaults — desk parity with
73
- * create_new.js get_default_value / set_default_values:
74
- *
75
- * - `Today` → today's date; `now` → time (Time) / local datetime (else)
76
- * - `__user` / `user` (Link/Data only, avoiding Select option collisions)
77
- * → session user
78
- * - Select fields with no default seed their first option
79
- * (create_new.js:107-114)
80
- * - `:fieldname` boot sysdefaults, `frappe.*`, `user_fullname` stay unset —
81
- * server-resolved on insert (documented gap)
82
- */
83
- export declare function buildCreateDefaults(fields: DocFieldMeta[], currentUser?: string): Record<string, unknown>;
84
- /**
85
- * Copyable field values for Duplicate / Amend: strips standard bookkeeping
86
- * fields, `no_copy` fields, layout breaks, and empty values.
87
- */
88
- export declare function buildCopyValues(fields: DocFieldMeta[], doc: Record<string, unknown>): Record<string, unknown>;
89
- /** True when the doctype names docs by user prompt (show a name input). */
90
- export declare function isPromptNamed(autoname?: string, namingRule?: string): boolean;
2
+ * Desk form layout engine — moved to
3
+ * `@multiplatform.one/frappe-ui/src/formEngine/formLayout` (MPO-15).
4
+ *
5
+ * The exported `FrappeForm` needed the same tab / section / depends_on /
6
+ * permlevel / fetch_from resolution the desk uses, and backoffice sits a
7
+ * tier ABOVE frappe-ui, so the engine could not be reached from there. It
8
+ * lives in frappe-ui now. This module re-exports it so the barrel and the
9
+ * `@multiplatform.one/backoffice/src/form/formLayout` deep import keep
10
+ * resolving unchanged; the specs moved with the implementation.
11
+ */
12
+ export { buildCopyValues, buildCreateDefaults, buildFormTabs, isPromptNamed, } from "@multiplatform.one/frappe-ui";
13
+ export type { BuildTabsOptions, FormTab } from "@multiplatform.one/frappe-ui";
91
14
  //# sourceMappingURL=formLayout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"formLayout.d.ts","sourceRoot":"","sources":["../../src/form/formLayout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAGH,OAAO,KAAK,EAAe,UAAU,EAAe,MAAM,8BAA8B,CAAC;AAEzF,OAAO,EAA+B,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEvF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAM7D,MAAM,WAAW,OAAO;IACtB,6DAA6D;IAC7D,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC;CACpB;AAuDD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,yEAAyE;IACzE,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,YAAY,EAAE,OAAO,CAAC;IACtB,kEAAkE;IAClE,QAAQ,EAAE,OAAO,CAAC;IAClB,gDAAgD;IAChD,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,0EAA0E;IAC1E,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC;;;OAGG;IACH,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAuFD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,EAAE,CAiElE;AAYD;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EAAE,EACtB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAqCzB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,YAAY,EAAE,EACtB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA4BzB;AAED,2EAA2E;AAC3E,wBAAgB,aAAa,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAG7E"}
1
+ {"version":3,"file":"formLayout.d.ts","sourceRoot":"","sources":["../../src/form/formLayout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,aAAa,GACd,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC"}
@@ -1,61 +1,8 @@
1
1
  /**
2
- * The desk form state engine.
3
- *
4
- * - Edit mode: the doc lives in a name-filtered live collection
5
- * (useFrappeCollection + useLiveQuery) so realtime updates flow in; saves
6
- * write only dirty fields through the collection's optimistic update path
7
- * (live update_doc enforces If-Match OCC — a version conflict surfaces as
8
- * a save error and flips `conflict` so the UI can offer a reload).
9
- * - Create mode: seeds meta defaults (+ optional Duplicate/Amend prefill)
10
- * and inserts via direct REST so the server-issued name is returned for
11
- * router.replace(formPath(...)).
12
- * - Dirty tracking against the last server baseline; external updates land
13
- * on clean fields in place, dirty fields are preserved.
14
- * - Submit / Cancel lifecycle for is_submittable doctypes via
15
- * frappe.client.submit / frappe.client.cancel (probed) — realtime then
16
- * refreshes the live doc; Amend is a create-mode copy with amended_from.
2
+ * Desk form state engine — moved to
3
+ * `@multiplatform.one/frappe-ui/src/formEngine/useFormEngine` (MPO-15).
4
+ * Re-exported here so existing imports keep resolving.
17
5
  */
18
- import type { DoctypeMeta } from "../shared/useDoctypeMeta";
19
- import type { FrappeConnection } from "./formActions";
20
- export interface FormEngine {
21
- /** Current (locally edited) doc values. */
22
- doc: Record<string, unknown>;
23
- /** Last authoritative server snapshot (undefined in create mode). */
24
- baseline: Record<string, unknown> | undefined;
25
- isLoading: boolean;
26
- /** Edit-mode doc missing after load settles (bad name / no permission). */
27
- notFound: boolean;
28
- /** The open doc was deleted on the server while open. */
29
- wasDeleted: boolean;
30
- isCreate: boolean;
31
- isDirty: boolean;
32
- dirtyFields: string[];
33
- isSaving: boolean;
34
- /** Per-field + `general` error messages. */
35
- errors: Record<string, string>;
36
- /** True after a save failed with a version conflict (OCC 409). */
37
- conflict: boolean;
38
- /** Logged-in user (for comments / likes / assignments). */
39
- currentUser: string;
40
- docstatus: number;
41
- setValue: (field: string, value: unknown) => void;
42
- /**
43
- * Save. Create mode resolves with the server-issued doc name;
44
- * edit mode resolves with the current name. Undefined = validation failed.
45
- */
46
- save: () => Promise<string | undefined>;
47
- /** Submit lifecycle (is_submittable): docstatus 0 → 1. */
48
- submit: () => Promise<boolean>;
49
- /** Cancel lifecycle: docstatus 1 → 2. */
50
- cancel: () => Promise<boolean>;
51
- /** Delete the doc through the live collection. */
52
- remove: () => Promise<boolean>;
53
- /** Discard local edits / clear conflict, back to the server baseline. */
54
- reload: () => void;
55
- /** Client-side required validation (fires on save too). */
56
- validate: () => Record<string, string>;
57
- }
58
- export declare function useFormEngine(connection: FrappeConnection | undefined, doctype: string,
59
- /** Document name, or undefined for create mode. */
60
- name: string | undefined, meta: DoctypeMeta | undefined, translate: (key: string, options?: Record<string, unknown>) => string): FormEngine;
6
+ export { useFormEngine } from "@multiplatform.one/frappe-ui";
7
+ export type { FormEngine } from "@multiplatform.one/frappe-ui";
61
8
  //# sourceMappingURL=useFormEngine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFormEngine.d.ts","sourceRoot":"","sources":["../../src/form/useFormEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAiBtD,MAAM,WAAW,UAAU;IACzB,2CAA2C;IAC3C,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAC9C,SAAS,EAAE,OAAO,CAAC;IACnB,2EAA2E;IAC3E,QAAQ,EAAE,OAAO,CAAC;IAClB,yDAAyD;IACzD,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,kEAAkE;IAClE,QAAQ,EAAE,OAAO,CAAC;IAClB,2DAA2D;IAC3D,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAClD;;;OAGG;IACH,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACxC,0DAA0D;IAC1D,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,yCAAyC;IACzC,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,kDAAkD;IAClD,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,yEAAyE;IACzE,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAkCD,wBAAgB,aAAa,CAC3B,UAAU,EAAE,gBAAgB,GAAG,SAAS,EACxC,OAAO,EAAE,MAAM;AACf,mDAAmD;AACnD,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,GACpE,UAAU,CA2XZ"}
1
+ {"version":3,"file":"useFormEngine.d.ts","sourceRoot":"","sources":["../../src/form/useFormEngine.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,YAAY,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC"}
@@ -1,103 +1,5 @@
1
- /** A single DocField row from a DocType meta (loose — server is source of truth). */
2
- export interface DocFieldMeta {
3
- fieldname: string;
4
- label?: string;
5
- fieldtype: string;
6
- options?: string;
7
- reqd?: 0 | 1;
8
- hidden?: 0 | 1;
9
- read_only?: 0 | 1;
10
- bold?: 0 | 1;
11
- in_list_view?: 0 | 1;
12
- in_standard_filter?: 0 | 1;
13
- in_global_search?: 0 | 1;
14
- allow_in_quick_entry?: 0 | 1;
15
- allow_on_submit?: 0 | 1;
16
- no_copy?: 0 | 1;
17
- collapsible?: 0 | 1;
18
- collapsible_depends_on?: string;
19
- depends_on?: string;
20
- mandatory_depends_on?: string;
21
- read_only_depends_on?: string;
22
- fetch_from?: string;
23
- permlevel?: number;
24
- length?: number;
25
- default?: string;
26
- description?: string;
27
- precision?: string | number;
28
- idx?: number;
29
- [key: string]: unknown;
30
- }
31
- /** DocType Link child row (Connections tab). Probed: `group` arrives null when unset. */
32
- export interface DocLinkMeta {
33
- name?: string;
34
- link_doctype: string;
35
- link_fieldname: string;
36
- group?: string | null;
37
- hidden?: 0 | 1;
38
- is_child_table?: 0 | 1;
39
- parent_doctype?: string;
40
- table_fieldname?: string;
41
- [key: string]: unknown;
42
- }
43
- /** Role permission row from the DocType meta. */
44
- export interface DocPermissionRule {
45
- role?: string;
46
- permlevel?: number;
47
- read?: 0 | 1;
48
- write?: 0 | 1;
49
- create?: 0 | 1;
50
- delete?: 0 | 1;
51
- submit?: 0 | 1;
52
- cancel?: 0 | 1;
53
- amend?: 0 | 1;
54
- print?: 0 | 1;
55
- email?: 0 | 1;
56
- share?: 0 | 1;
57
- if_owner?: 0 | 1;
58
- [key: string]: unknown;
59
- }
60
- /** DocType meta as returned by frappe.desk.form.load.getdoctype (loose). */
61
- export interface DoctypeMeta {
62
- doctype?: string;
63
- name: string;
64
- module?: string;
65
- issingle?: 0 | 1;
66
- istable?: 0 | 1;
67
- is_submittable?: 0 | 1;
68
- is_tree?: 0 | 1;
69
- /** Desk treeview_settings asset (`{doctype}_tree.js`) — gates Tree. */
70
- __tree_js?: string;
71
- /** Desk calendar_settings asset (`{doctype}_calendar.js`) — gates Calendar. */
72
- __calendar_js?: string;
73
- is_virtual?: 0 | 1;
74
- editable_grid?: 0 | 1;
75
- track_changes?: 0 | 1;
76
- quick_entry?: 0 | 1;
77
- autoname?: string;
78
- naming_rule?: string;
79
- allow_rename?: 0 | 1;
80
- allow_copy?: 0 | 1;
81
- read_only?: 0 | 1;
82
- in_create?: 0 | 1;
83
- hide_toolbar?: 0 | 1;
84
- max_attachments?: number;
85
- title_field?: string;
86
- image_field?: string;
87
- search_fields?: string;
88
- sort_field?: string;
89
- sort_order?: string;
90
- icon?: string;
91
- document_type?: string;
92
- fields: DocFieldMeta[];
93
- permissions?: DocPermissionRule[];
94
- links?: DocLinkMeta[];
95
- states?: Array<{
96
- title?: string;
97
- color?: string;
98
- } & Record<string, unknown>>;
99
- [key: string]: unknown;
100
- }
1
+ import type { DoctypeMeta } from "@multiplatform.one/frappe-ui";
2
+ export type { DocFieldMeta, DocLinkMeta, DocPermissionRule, DoctypeMeta, } from "@multiplatform.one/frappe-ui";
101
3
  export interface DoctypeMetaBundle {
102
4
  /** Parent doctype meta (docs[0]) */
103
5
  meta: DoctypeMeta;
@@ -1 +1 @@
1
- {"version":3,"file":"useDoctypeMeta.d.ts","sourceRoot":"","sources":["../../src/shared/useDoctypeMeta.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useDoctypeMeta.d.ts","sourceRoot":"","sources":["../../src/shared/useDoctypeMeta.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAS9E,YAAY,EACV,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,WAAW,GACZ,MAAM,8BAA8B,CAAC;AAEtC,MAAM,WAAW,iBAAiB;IAChC,oCAAoC;IACpC,IAAI,EAAE,WAAW,CAAC;IAClB,kEAAkE;IAClE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACxC,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC;AAmCD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG;IAChD,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB,CAgFA"}
@@ -1 +1 @@
1
- {"version":3,"file":"WorkspaceQuickList.d.ts","sourceRoot":"","sources":["../../src/workspace/WorkspaceQuickList.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAcrD,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,qBAAqB,CAAC;CAC5B;AAED,wBAAgB,kBAAkB,CAAC,EAAE,GAAG,EAAE,EAAE,uBAAuB,2CAoFlE"}
1
+ {"version":3,"file":"WorkspaceQuickList.d.ts","sourceRoot":"","sources":["../../src/workspace/WorkspaceQuickList.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAcrD,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,qBAAqB,CAAC;CAC5B;AAED,wBAAgB,kBAAkB,CAAC,EAAE,GAAG,EAAE,EAAE,uBAAuB,2CAwFlE"}
@@ -1 +1 @@
1
- {"version":3,"file":"WorkspaceRecents.d.ts","sourceRoot":"","sources":["../../src/workspace/WorkspaceRecents.tsx"],"names":[],"mappings":"AAyBA,wBAAgB,gBAAgB,mDA4E/B"}
1
+ {"version":3,"file":"WorkspaceRecents.d.ts","sourceRoot":"","sources":["../../src/workspace/WorkspaceRecents.tsx"],"names":[],"mappings":"AAyBA,wBAAgB,gBAAgB,mDA8E/B"}
@@ -1 +1 @@
1
- {"version":3,"file":"WorkspaceShortcut.d.ts","sourceRoot":"","sources":["../../src/workspace/WorkspaceShortcut.tsx"],"names":[],"mappings":"AAsCA,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGlF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAcpD;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,oBAAoB,EACzB,KAAK,GAAE,eAA8B,GACpC;IACD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAgBA;AAED,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,oBAAoB,CAAC;IAC1B,mEAAmE;IACnE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,oBAAoB,KAAK,IAAI,CAAC;CAC/C;AAWD,wBAAgB,iBAAiB,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,sBAAsB,kDAiIzE"}
1
+ {"version":3,"file":"WorkspaceShortcut.d.ts","sourceRoot":"","sources":["../../src/workspace/WorkspaceShortcut.tsx"],"names":[],"mappings":"AAsCA,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGlF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAcpD;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,oBAAoB,EACzB,KAAK,GAAE,eAA8B,GACpC;IACD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAgBA;AAED,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,oBAAoB,CAAC;IAC1B,mEAAmE;IACnE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,oBAAoB,KAAK,IAAI,CAAC;CAC/C;AAWD,wBAAgB,iBAAiB,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,sBAAsB,kDAoIzE"}