@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.
- package/dist/cjs/chrome/BackofficeAwesomebar.native.js +1 -1
- package/dist/cjs/chrome/BackofficeAwesomebar.native.js.map +1 -1
- package/dist/cjs/chrome/CommandPalette.native.js +1 -1
- package/dist/cjs/chrome/CommandPalette.native.js.map +1 -1
- package/dist/cjs/chrome/HelpMenu.native.js +1 -1
- package/dist/cjs/chrome/HelpMenu.native.js.map +1 -1
- package/dist/cjs/chrome/NotificationsButton.native.js +1 -1
- package/dist/cjs/chrome/NotificationsButton.native.js.map +1 -1
- package/dist/cjs/chrome/UserMenu.native.js +1 -1
- package/dist/cjs/chrome/UserMenu.native.js.map +1 -1
- package/dist/cjs/chrome/awesomebar-data.native.js.map +1 -1
- package/dist/cjs/chrome/command-palette-model.native.js +1 -1
- package/dist/cjs/chrome/command-palette-model.native.js.map +1 -1
- package/dist/cjs/chrome/help-about-dialog.native.js +1 -1
- package/dist/cjs/chrome/help-about-dialog.native.js.map +1 -1
- package/dist/cjs/chrome/help-shortcuts-dialog.native.js +1 -1
- package/dist/cjs/chrome/help-shortcuts-dialog.native.js.map +1 -1
- package/dist/cjs/chrome/notifications-data.native.js.map +1 -1
- package/dist/cjs/chrome/notifications-panel.native.js +1 -1
- package/dist/cjs/chrome/notifications-panel.native.js.map +1 -1
- package/dist/cjs/chrome/notifications-utils.native.js.map +1 -1
- package/dist/cjs/chrome/shortcuts.native.js.map +1 -1
- package/dist/cjs/chrome/user-session.native.js.map +1 -1
- package/dist/cjs/config/BackofficeProvider.native.js +1 -1
- package/dist/cjs/config/BackofficeProvider.native.js.map +1 -1
- package/dist/cjs/config/capabilities.native.js.map +1 -1
- package/dist/cjs/config/events.native.js.map +1 -1
- package/dist/cjs/config/slots.native.js.map +1 -1
- package/dist/cjs/desk/Desk.native.js.map +1 -1
- package/dist/cjs/desk/DeskSurface.native.js.map +1 -1
- package/dist/cjs/desk/resolveDeskPath.native.js.map +1 -1
- package/dist/cjs/desk/scope.native.js.map +1 -1
- package/dist/cjs/desk/target.native.js.map +1 -1
- package/dist/cjs/form/DocFormScreen.native.js +1 -1
- package/dist/cjs/form/DocFormScreen.native.js.map +1 -1
- package/dist/cjs/form/FormConnections.native.js +1 -1
- package/dist/cjs/form/FormConnections.native.js.map +1 -1
- package/dist/cjs/form/FormDialogs.native.js +1 -1
- package/dist/cjs/form/FormDialogs.native.js.map +1 -1
- package/dist/cjs/form/FormErrorBoundary.native.js +1 -1
- package/dist/cjs/form/FormErrorBoundary.native.js.map +1 -1
- package/dist/cjs/form/FormHeaderCluster.native.js +1 -1
- package/dist/cjs/form/FormHeaderCluster.native.js.map +1 -1
- package/dist/cjs/form/FormSidebarPanel.native.js +1 -1
- package/dist/cjs/form/FormSidebarPanel.native.js.map +1 -1
- package/dist/cjs/form/FormTimeline.native.js +1 -1
- package/dist/cjs/form/FormTimeline.native.js.map +1 -1
- package/dist/cjs/form/FormToolbar.native.js +1 -1
- package/dist/cjs/form/FormToolbar.native.js.map +1 -1
- package/dist/cjs/form/connections-data.native.js.map +1 -1
- package/dist/cjs/form/createPrefill.cjs +3 -11
- package/dist/cjs/form/createPrefill.native.js +3 -11
- package/dist/cjs/form/createPrefill.native.js.map +1 -1
- package/dist/cjs/form/dependsOn.native.js.map +1 -1
- package/dist/cjs/form/dirtyTracking.cjs +4 -29
- package/dist/cjs/form/dirtyTracking.native.js +4 -48
- package/dist/cjs/form/dirtyTracking.native.js.map +1 -1
- package/dist/cjs/form/docinfo.native.js.map +1 -1
- package/dist/cjs/form/fetchFrom.cjs +4 -41
- package/dist/cjs/form/fetchFrom.native.js +4 -81
- package/dist/cjs/form/fetchFrom.native.js.map +1 -1
- package/dist/cjs/form/fieldPermissions.cjs +4 -29
- package/dist/cjs/form/fieldPermissions.native.js +4 -51
- package/dist/cjs/form/fieldPermissions.native.js.map +1 -1
- package/dist/cjs/form/formActions.cjs +2 -171
- package/dist/cjs/form/formActions.native.js +2 -178
- package/dist/cjs/form/formActions.native.js.map +1 -1
- package/dist/cjs/form/formLayout.cjs +5 -219
- package/dist/cjs/form/formLayout.native.js +5 -359
- package/dist/cjs/form/formLayout.native.js.map +1 -1
- package/dist/cjs/form/platformHooks.native.js.map +1 -1
- package/dist/cjs/form/sidebar-attachments.native.js +1 -1
- package/dist/cjs/form/sidebar-attachments.native.js.map +1 -1
- package/dist/cjs/form/sidebar-dialogs.native.js +1 -1
- package/dist/cjs/form/sidebar-dialogs.native.js.map +1 -1
- package/dist/cjs/form/sidebar-people.native.js +1 -1
- package/dist/cjs/form/sidebar-people.native.js.map +1 -1
- package/dist/cjs/form/sidebar-rpc.native.js.map +1 -1
- package/dist/cjs/form/sidebar-utils.native.js.map +1 -1
- package/dist/cjs/form/timeline-entries.native.js.map +1 -1
- package/dist/cjs/form/timeline-utils.native.js.map +1 -1
- package/dist/cjs/form/useFormEngine.cjs +2 -361
- package/dist/cjs/form/useFormEngine.native.js +2 -447
- package/dist/cjs/form/useFormEngine.native.js.map +1 -1
- package/dist/cjs/i18n/en.native.js.map +1 -1
- package/dist/cjs/i18n/index.native.js.map +1 -1
- package/dist/cjs/index.native.js +1 -1
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/list/AddTagsDialog.native.js +1 -1
- package/dist/cjs/list/AddTagsDialog.native.js.map +1 -1
- package/dist/cjs/list/AssignToDialog.native.js +1 -1
- package/dist/cjs/list/AssignToDialog.native.js.map +1 -1
- package/dist/cjs/list/DoctypeListScreen.native.js +1 -1
- package/dist/cjs/list/DoctypeListScreen.native.js.map +1 -1
- package/dist/cjs/list/ListBulkActionsBar.native.js +1 -1
- package/dist/cjs/list/ListBulkActionsBar.native.js.map +1 -1
- package/dist/cjs/list/ListFilterBar.native.js +1 -1
- package/dist/cjs/list/ListFilterBar.native.js.map +1 -1
- package/dist/cjs/list/ListSidebar.native.js +1 -1
- package/dist/cjs/list/ListSidebar.native.js.map +1 -1
- package/dist/cjs/list/bulk-edit-dialog.native.js +1 -1
- package/dist/cjs/list/bulk-edit-dialog.native.js.map +1 -1
- package/dist/cjs/list/bulk-export.native.js.map +1 -1
- package/dist/cjs/list/bulk-submit-cancel.native.js.map +1 -1
- package/dist/cjs/list/bulkActions.native.js.map +1 -1
- package/dist/cjs/list/filter-chips.native.js +1 -1
- package/dist/cjs/list/filter-chips.native.js.map +1 -1
- package/dist/cjs/list/filter-editor.native.js +1 -1
- package/dist/cjs/list/filter-editor.native.js.map +1 -1
- package/dist/cjs/list/filter-fields.native.js.map +1 -1
- package/dist/cjs/list/filter-saved.native.js +1 -1
- package/dist/cjs/list/filter-saved.native.js.map +1 -1
- package/dist/cjs/list/filter-sort.native.js +1 -1
- package/dist/cjs/list/filter-sort.native.js.map +1 -1
- package/dist/cjs/list/filter-standard.native.js.map +1 -1
- package/dist/cjs/list/filterConversion.native.js.map +1 -1
- package/dist/cjs/list/list-tools-sheet.native.js +1 -1
- package/dist/cjs/list/list-tools-sheet.native.js.map +1 -1
- package/dist/cjs/list/listColumns.native.js.map +1 -1
- package/dist/cjs/list/listFields.native.js.map +1 -1
- package/dist/cjs/list/listFormat.native.js.map +1 -1
- package/dist/cjs/list/listUrlState.native.js.map +1 -1
- package/dist/cjs/list/sidebar-section.native.js +1 -1
- package/dist/cjs/list/sidebar-section.native.js.map +1 -1
- package/dist/cjs/list/sidebar-stats.native.js.map +1 -1
- package/dist/cjs/list/statusColors.native.js.map +1 -1
- package/dist/cjs/navigation/navigator.native.js.map +1 -1
- package/dist/cjs/navigation/paths.native.js.map +1 -1
- package/dist/cjs/oneAdapter/index.native.js.map +1 -1
- package/dist/cjs/quickEntry/QuickEntryDialog.native.js +1 -1
- package/dist/cjs/quickEntry/QuickEntryDialog.native.js.map +1 -1
- package/dist/cjs/quickEntry/quickEntryPlan.native.js.map +1 -1
- package/dist/cjs/report/DoctypeReportView.native.js +1 -1
- package/dist/cjs/report/DoctypeReportView.native.js.map +1 -1
- package/dist/cjs/report/QueryReportScreen.native.js +1 -1
- package/dist/cjs/report/QueryReportScreen.native.js.map +1 -1
- package/dist/cjs/report/queryReportColumns.native.js.map +1 -1
- package/dist/cjs/report/queryReportFilterBar.native.js +1 -1
- package/dist/cjs/report/queryReportFilterBar.native.js.map +1 -1
- package/dist/cjs/report/queryReportUrlState.native.js.map +1 -1
- package/dist/cjs/report/report-grid.native.js +1 -1
- package/dist/cjs/report/report-grid.native.js.map +1 -1
- package/dist/cjs/report/report-toolbar.native.js +1 -1
- package/dist/cjs/report/report-toolbar.native.js.map +1 -1
- package/dist/cjs/report/reportShapes.native.js.map +1 -1
- package/dist/cjs/report/reportViewModel.native.js.map +1 -1
- package/dist/cjs/report/savedReports.native.js.map +1 -1
- package/dist/cjs/report/useQueryReport.native.js.map +1 -1
- package/dist/cjs/shared/deskLinks.native.js.map +1 -1
- package/dist/cjs/shared/listNavContext.native.js.map +1 -1
- package/dist/cjs/shared/types.native.js.map +1 -1
- package/dist/cjs/shared/useDocinfo.native.js.map +1 -1
- package/dist/cjs/shared/useDoctypeMeta.native.js.map +1 -1
- package/dist/cjs/shared/useFrappeApp.native.js.map +1 -1
- package/dist/cjs/shared/useRecentVisit.native.js.map +1 -1
- package/dist/cjs/shared/useSessionUserId.native.js.map +1 -1
- package/dist/cjs/shared/useSlugTarget.native.js.map +1 -1
- package/dist/cjs/shared/useUserRoles.native.js.map +1 -1
- package/dist/cjs/shell/BackofficeShell.native.js +1 -1
- package/dist/cjs/shell/BackofficeShell.native.js.map +1 -1
- package/dist/cjs/shell/HomeRedirect.native.js +1 -1
- package/dist/cjs/shell/HomeRedirect.native.js.map +1 -1
- package/dist/cjs/shell/NotFoundScreen.native.js +1 -1
- package/dist/cjs/shell/NotFoundScreen.native.js.map +1 -1
- package/dist/cjs/shell/SlugScreen.native.js +1 -1
- package/dist/cjs/shell/SlugScreen.native.js.map +1 -1
- package/dist/cjs/shell/WorkspaceSidebar.native.js +1 -1
- package/dist/cjs/shell/WorkspaceSidebar.native.js.map +1 -1
- package/dist/cjs/shell/useWorkspaces.native.js.map +1 -1
- package/dist/cjs/shell/workspaceIcons.native.js.map +1 -1
- package/dist/cjs/views/CalendarView.native.js +1 -1
- package/dist/cjs/views/CalendarView.native.js.map +1 -1
- package/dist/cjs/views/DashboardView.native.js +1 -1
- package/dist/cjs/views/DashboardView.native.js.map +1 -1
- package/dist/cjs/views/DoctypeViewScreen.native.js.map +1 -1
- package/dist/cjs/views/ImageView.native.js +1 -1
- package/dist/cjs/views/ImageView.native.js.map +1 -1
- package/dist/cjs/views/KanbanView.native.js +1 -1
- package/dist/cjs/views/KanbanView.native.js.map +1 -1
- package/dist/cjs/views/ReportView.native.js +1 -1
- package/dist/cjs/views/ReportView.native.js.map +1 -1
- package/dist/cjs/views/TreeView.native.js +1 -1
- package/dist/cjs/views/TreeView.native.js.map +1 -1
- package/dist/cjs/views/ViewHeader.native.js +1 -1
- package/dist/cjs/views/ViewHeader.native.js.map +1 -1
- package/dist/cjs/views/ViewStates.native.js +1 -1
- package/dist/cjs/views/ViewStates.native.js.map +1 -1
- package/dist/cjs/views/ViewSwitcherMenu.native.js +1 -1
- package/dist/cjs/views/ViewSwitcherMenu.native.js.map +1 -1
- package/dist/cjs/views/calendar-field-selector.native.js +1 -1
- package/dist/cjs/views/calendar-field-selector.native.js.map +1 -1
- package/dist/cjs/views/connection.native.js.map +1 -1
- package/dist/cjs/views/dashboard-data.native.js.map +1 -1
- package/dist/cjs/views/deskViewConfigs.native.js.map +1 -1
- package/dist/cjs/views/kanban-board-controls.native.js +1 -1
- package/dist/cjs/views/kanban-board-controls.native.js.map +1 -1
- package/dist/cjs/views/kanban-field-picker.native.js +1 -1
- package/dist/cjs/views/kanban-field-picker.native.js.map +1 -1
- package/dist/cjs/views/kanbanBoardOps.native.js.map +1 -1
- package/dist/cjs/views/report-controls.native.js +1 -1
- package/dist/cjs/views/report-controls.native.js.map +1 -1
- package/dist/cjs/views/viewAvailability.native.js.map +1 -1
- package/dist/cjs/views/viewMeta.native.js.map +1 -1
- package/dist/cjs/workspace/WorkspaceChartBlock.native.js +1 -1
- package/dist/cjs/workspace/WorkspaceChartBlock.native.js.map +1 -1
- package/dist/cjs/workspace/WorkspaceGrid.native.js.map +1 -1
- package/dist/cjs/workspace/WorkspaceLinkCard.native.js +1 -1
- package/dist/cjs/workspace/WorkspaceLinkCard.native.js.map +1 -1
- package/dist/cjs/workspace/WorkspaceLinkDirectory.native.js +1 -1
- package/dist/cjs/workspace/WorkspaceLinkDirectory.native.js.map +1 -1
- package/dist/cjs/workspace/WorkspaceNumberCard.native.js +1 -1
- package/dist/cjs/workspace/WorkspaceNumberCard.native.js.map +1 -1
- package/dist/cjs/workspace/WorkspaceQuickList.cjs +1 -1
- package/dist/cjs/workspace/WorkspaceQuickList.native.js +4 -2
- package/dist/cjs/workspace/WorkspaceQuickList.native.js.map +1 -1
- package/dist/cjs/workspace/WorkspaceRecents.cjs +1 -3
- package/dist/cjs/workspace/WorkspaceRecents.native.js +4 -4
- package/dist/cjs/workspace/WorkspaceRecents.native.js.map +1 -1
- package/dist/cjs/workspace/WorkspaceScreen.native.js +1 -1
- package/dist/cjs/workspace/WorkspaceScreen.native.js.map +1 -1
- package/dist/cjs/workspace/WorkspaceShortcut.cjs +1 -3
- package/dist/cjs/workspace/WorkspaceShortcut.native.js +5 -4
- package/dist/cjs/workspace/WorkspaceShortcut.native.js.map +1 -1
- package/dist/cjs/workspace/parseContent.native.js.map +1 -1
- package/dist/cjs/workspace/types.native.js.map +1 -1
- package/dist/cjs/workspace/useDashboardChart.native.js.map +1 -1
- package/dist/cjs/workspace/useWorkspaceDoc.native.js.map +1 -1
- package/dist/esm/desk/DeskSurface.mjs.map +1 -1
- package/dist/esm/desk/DeskSurface.native.js.map +1 -1
- package/dist/esm/form/createPrefill.mjs +1 -9
- package/dist/esm/form/createPrefill.mjs.map +1 -1
- package/dist/esm/form/createPrefill.native.js +1 -9
- package/dist/esm/form/createPrefill.native.js.map +1 -1
- package/dist/esm/form/dirtyTracking.mjs +1 -26
- package/dist/esm/form/dirtyTracking.mjs.map +1 -1
- package/dist/esm/form/dirtyTracking.native.js +1 -45
- package/dist/esm/form/dirtyTracking.native.js.map +1 -1
- package/dist/esm/form/fetchFrom.mjs +1 -38
- package/dist/esm/form/fetchFrom.mjs.map +1 -1
- package/dist/esm/form/fetchFrom.native.js +1 -78
- package/dist/esm/form/fetchFrom.native.js.map +1 -1
- package/dist/esm/form/fieldPermissions.mjs +1 -26
- package/dist/esm/form/fieldPermissions.mjs.map +1 -1
- package/dist/esm/form/fieldPermissions.native.js +1 -48
- package/dist/esm/form/fieldPermissions.native.js.map +1 -1
- package/dist/esm/form/formActions.mjs +1 -145
- package/dist/esm/form/formActions.mjs.map +1 -1
- package/dist/esm/form/formActions.native.js +1 -152
- package/dist/esm/form/formActions.native.js.map +1 -1
- package/dist/esm/form/formLayout.mjs +1 -215
- package/dist/esm/form/formLayout.mjs.map +1 -1
- package/dist/esm/form/formLayout.native.js +1 -355
- package/dist/esm/form/formLayout.native.js.map +1 -1
- package/dist/esm/form/useFormEngine.mjs +1 -360
- package/dist/esm/form/useFormEngine.mjs.map +1 -1
- package/dist/esm/form/useFormEngine.native.js +1 -446
- package/dist/esm/form/useFormEngine.native.js.map +1 -1
- package/dist/esm/shared/useDoctypeMeta.mjs.map +1 -1
- package/dist/esm/shared/useDoctypeMeta.native.js.map +1 -1
- package/dist/esm/workspace/WorkspaceQuickList.mjs +2 -2
- package/dist/esm/workspace/WorkspaceQuickList.mjs.map +1 -1
- package/dist/esm/workspace/WorkspaceQuickList.native.js +4 -2
- package/dist/esm/workspace/WorkspaceQuickList.native.js.map +1 -1
- package/dist/esm/workspace/WorkspaceRecents.mjs +1 -3
- package/dist/esm/workspace/WorkspaceRecents.mjs.map +1 -1
- package/dist/esm/workspace/WorkspaceRecents.native.js +3 -3
- package/dist/esm/workspace/WorkspaceRecents.native.js.map +1 -1
- package/dist/esm/workspace/WorkspaceShortcut.mjs +1 -3
- package/dist/esm/workspace/WorkspaceShortcut.mjs.map +1 -1
- package/dist/esm/workspace/WorkspaceShortcut.native.js +4 -3
- package/dist/esm/workspace/WorkspaceShortcut.native.js.map +1 -1
- package/dist/jsx/desk/DeskSurface.mjs.map +1 -1
- package/dist/jsx/desk/DeskSurface.native.js.map +1 -1
- package/dist/jsx/form/createPrefill.mjs +1 -9
- package/dist/jsx/form/createPrefill.mjs.map +1 -1
- package/dist/jsx/form/createPrefill.native.js +3 -11
- package/dist/jsx/form/createPrefill.native.js.map +1 -1
- package/dist/jsx/form/dirtyTracking.mjs +1 -26
- package/dist/jsx/form/dirtyTracking.mjs.map +1 -1
- package/dist/jsx/form/dirtyTracking.native.js +4 -48
- package/dist/jsx/form/dirtyTracking.native.js.map +1 -1
- package/dist/jsx/form/fetchFrom.mjs +1 -38
- package/dist/jsx/form/fetchFrom.mjs.map +1 -1
- package/dist/jsx/form/fetchFrom.native.js +4 -81
- package/dist/jsx/form/fetchFrom.native.js.map +1 -1
- package/dist/jsx/form/fieldPermissions.mjs +1 -26
- package/dist/jsx/form/fieldPermissions.mjs.map +1 -1
- package/dist/jsx/form/fieldPermissions.native.js +4 -51
- package/dist/jsx/form/fieldPermissions.native.js.map +1 -1
- package/dist/jsx/form/formActions.mjs +1 -145
- package/dist/jsx/form/formActions.mjs.map +1 -1
- package/dist/jsx/form/formActions.native.js +2 -178
- package/dist/jsx/form/formActions.native.js.map +1 -1
- package/dist/jsx/form/formLayout.mjs +1 -215
- package/dist/jsx/form/formLayout.mjs.map +1 -1
- package/dist/jsx/form/formLayout.native.js +5 -359
- package/dist/jsx/form/formLayout.native.js.map +1 -1
- package/dist/jsx/form/useFormEngine.mjs +1 -360
- package/dist/jsx/form/useFormEngine.mjs.map +1 -1
- package/dist/jsx/form/useFormEngine.native.js +2 -447
- package/dist/jsx/form/useFormEngine.native.js.map +1 -1
- package/dist/jsx/shared/useDoctypeMeta.mjs.map +1 -1
- package/dist/jsx/shared/useDoctypeMeta.native.js.map +1 -1
- package/dist/jsx/workspace/WorkspaceQuickList.mjs +2 -2
- package/dist/jsx/workspace/WorkspaceQuickList.mjs.map +1 -1
- package/dist/jsx/workspace/WorkspaceQuickList.native.js +3 -1
- package/dist/jsx/workspace/WorkspaceQuickList.native.js.map +1 -1
- package/dist/jsx/workspace/WorkspaceRecents.mjs +1 -3
- package/dist/jsx/workspace/WorkspaceRecents.mjs.map +1 -1
- package/dist/jsx/workspace/WorkspaceRecents.native.js +3 -3
- package/dist/jsx/workspace/WorkspaceRecents.native.js.map +1 -1
- package/dist/jsx/workspace/WorkspaceShortcut.mjs +1 -3
- package/dist/jsx/workspace/WorkspaceShortcut.mjs.map +1 -1
- package/dist/jsx/workspace/WorkspaceShortcut.native.js +4 -3
- package/dist/jsx/workspace/WorkspaceShortcut.native.js.map +1 -1
- package/package.json +12 -13
- package/src/desk/DeskSurface.tsx +8 -4
- package/src/form/createPrefill.ts +5 -25
- package/src/form/dirtyTracking.ts +4 -61
- package/src/form/fetchFrom.ts +5 -108
- package/src/form/fieldPermissions.ts +7 -65
- package/src/form/formActions.ts +10 -281
- package/src/form/formEngineShim.spec.ts +122 -0
- package/src/form/formLayout.ts +15 -387
- package/src/form/useFormEngine.ts +5 -493
- package/src/shared/useDoctypeMeta.ts +12 -100
- package/src/workspace/WorkspaceQuickList.tsx +10 -2
- package/src/workspace/WorkspaceRecents.tsx +3 -1
- package/src/workspace/WorkspaceShortcut.tsx +4 -1
- package/types/desk/DeskSurface.d.ts.map +1 -1
- package/types/form/createPrefill.d.ts +5 -16
- package/types/form/createPrefill.d.ts.map +1 -1
- package/types/form/dirtyTracking.d.ts +4 -33
- package/types/form/dirtyTracking.d.ts.map +1 -1
- package/types/form/fetchFrom.d.ts +5 -40
- package/types/form/fetchFrom.d.ts.map +1 -1
- package/types/form/fieldPermissions.d.ts +7 -35
- package/types/form/fieldPermissions.d.ts.map +1 -1
- package/types/form/formActions.d.ts +6 -91
- package/types/form/formActions.d.ts.map +1 -1
- package/types/form/formLayout.d.ts +12 -89
- package/types/form/formLayout.d.ts.map +1 -1
- package/types/form/useFormEngine.d.ts +5 -58
- package/types/form/useFormEngine.d.ts.map +1 -1
- package/types/shared/useDoctypeMeta.d.ts +2 -100
- package/types/shared/useDoctypeMeta.d.ts.map +1 -1
- package/types/workspace/WorkspaceQuickList.d.ts.map +1 -1
- package/types/workspace/WorkspaceRecents.d.ts.map +1 -1
- package/types/workspace/WorkspaceShortcut.d.ts.map +1 -1
- package/src/form/dirtyTracking.spec.ts +0 -91
- package/src/form/fetchFrom.spec.ts +0 -92
- package/src/form/fieldPermissions.spec.ts +0 -61
- package/src/form/formLayout.spec.ts +0 -373
|
@@ -24,453 +24,8 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
|
24
24
|
}), mod);
|
|
25
25
|
var useFormEngine_exports = {};
|
|
26
26
|
__export(useFormEngine_exports, {
|
|
27
|
-
useFormEngine: () => useFormEngine
|
|
27
|
+
useFormEngine: () => import_frappe_ui.useFormEngine
|
|
28
28
|
});
|
|
29
29
|
module.exports = __toCommonJS(useFormEngine_exports);
|
|
30
|
-
var
|
|
31
|
-
var import_react = require("react");
|
|
32
|
-
var import_formActions = require("./formActions.native.js");
|
|
33
|
-
var import_formLayout = require("./formLayout.native.js");
|
|
34
|
-
var import_createPrefill = require("./createPrefill.native.js");
|
|
35
|
-
var import_dependsOn = require("./dependsOn.native.js");
|
|
36
|
-
var import_dirtyTracking = require("./dirtyTracking.native.js");
|
|
37
|
-
var import_fetchFrom = require("./fetchFrom.native.js");
|
|
38
|
-
var LAYOUT_TYPES = /* @__PURE__ */new Set(["Section Break", "Column Break", "Tab Break", "Fold"]);
|
|
39
|
-
function isConflictError(err) {
|
|
40
|
-
var _e_message;
|
|
41
|
-
var e = err;
|
|
42
|
-
if (!e) return false;
|
|
43
|
-
if (e.status === 409) return true;
|
|
44
|
-
if (e.exc_type === "TimestampMismatchError") return true;
|
|
45
|
-
return /TimestampMismatch|has been modified/i.test((_e_message = e.message) !== null && _e_message !== void 0 ? _e_message : "");
|
|
46
|
-
}
|
|
47
|
-
function extractServerError(err, fallback) {
|
|
48
|
-
var e = err;
|
|
49
|
-
if (e === null || e === void 0 ? void 0 : e._server_messages) {
|
|
50
|
-
try {
|
|
51
|
-
var messages = JSON.parse(e._server_messages);
|
|
52
|
-
var parsed = messages.map(function (msg) {
|
|
53
|
-
try {
|
|
54
|
-
var _JSON_parse_message;
|
|
55
|
-
return (_JSON_parse_message = JSON.parse(msg).message) !== null && _JSON_parse_message !== void 0 ? _JSON_parse_message : "";
|
|
56
|
-
} catch (unused) {
|
|
57
|
-
return msg;
|
|
58
|
-
}
|
|
59
|
-
}).filter(Boolean);
|
|
60
|
-
if (parsed.length > 0) return parsed.join("\n");
|
|
61
|
-
} catch (unused) {}
|
|
62
|
-
}
|
|
63
|
-
return (e === null || e === void 0 ? void 0 : e.message) || fallback;
|
|
64
|
-
}
|
|
65
|
-
function useFormEngine(connection, doctype, name, meta, translate) {
|
|
66
|
-
var _ref;
|
|
67
|
-
var isCreate = !name;
|
|
68
|
-
var [localDoc, setLocalDoc] = (0, import_react.useState)({});
|
|
69
|
-
var [baseline, setBaseline] = (0, import_react.useState)(void 0);
|
|
70
|
-
var [isSaving, setIsSaving] = (0, import_react.useState)(false);
|
|
71
|
-
var [errors, setErrors] = (0, import_react.useState)({});
|
|
72
|
-
var [conflict, setConflict] = (0, import_react.useState)(false);
|
|
73
|
-
var [wasDeleted, setWasDeleted] = (0, import_react.useState)(false);
|
|
74
|
-
var [currentUser, setCurrentUser] = (0, import_react.useState)("");
|
|
75
|
-
var everLoadedRef = (0, import_react.useRef)(false);
|
|
76
|
-
var seededRef = (0, import_react.useRef)(false);
|
|
77
|
-
var localDocRef = (0, import_react.useRef)(localDoc);
|
|
78
|
-
localDocRef.current = localDoc;
|
|
79
|
-
var baselineRef = (0, import_react.useRef)(baseline);
|
|
80
|
-
baselineRef.current = baseline;
|
|
81
|
-
var docCollection = (0, import_frappe.useFrappeCollection)(name ? connection : void 0, doctype, {
|
|
82
|
-
filters: name ? {
|
|
83
|
-
name
|
|
84
|
-
} : void 0
|
|
85
|
-
});
|
|
86
|
-
var {
|
|
87
|
-
data: rawDocData,
|
|
88
|
-
isLoading: isDocLoading
|
|
89
|
-
} = (0, import_frappe.useLiveQuery)(function (q) {
|
|
90
|
-
if (!docCollection || !name) return null;
|
|
91
|
-
return q.from({
|
|
92
|
-
_doc: docCollection
|
|
93
|
-
}).where(function (param) {
|
|
94
|
-
var {
|
|
95
|
-
_doc
|
|
96
|
-
} = param;
|
|
97
|
-
return (0, import_frappe.eq)(_doc.name, name);
|
|
98
|
-
});
|
|
99
|
-
}, [docCollection, name]);
|
|
100
|
-
var liveDoc = (0, import_react.useMemo)(function () {
|
|
101
|
-
var _arr_;
|
|
102
|
-
var arr = Array.isArray(rawDocData) ? rawDocData : rawDocData ? [rawDocData] : [];
|
|
103
|
-
return (_arr_ = arr[0]) !== null && _arr_ !== void 0 ? _arr_ : null;
|
|
104
|
-
}, [rawDocData]);
|
|
105
|
-
(0, import_react.useEffect)(function () {
|
|
106
|
-
if (!connection) return;
|
|
107
|
-
var cancelled = false;
|
|
108
|
-
(0, import_formActions.getLoggedUser)((0, import_formActions.createHttpClient)(connection)).then(function (user) {
|
|
109
|
-
if (!cancelled) setCurrentUser(user);
|
|
110
|
-
}).catch(function () {});
|
|
111
|
-
return function () {
|
|
112
|
-
cancelled = true;
|
|
113
|
-
};
|
|
114
|
-
}, [connection === null || connection === void 0 ? void 0 : connection.baseURL]);
|
|
115
|
-
(0, import_react.useEffect)(function () {
|
|
116
|
-
everLoadedRef.current = false;
|
|
117
|
-
seededRef.current = false;
|
|
118
|
-
setWasDeleted(false);
|
|
119
|
-
setConflict(false);
|
|
120
|
-
setErrors({});
|
|
121
|
-
setBaseline(void 0);
|
|
122
|
-
setLocalDoc({});
|
|
123
|
-
}, [doctype, name]);
|
|
124
|
-
(0, import_react.useEffect)(function () {
|
|
125
|
-
if (!isCreate || !meta || seededRef.current) return;
|
|
126
|
-
seededRef.current = true;
|
|
127
|
-
var defaults = (0, import_formLayout.buildCreateDefaults)(meta.fields, currentUser || void 0);
|
|
128
|
-
var prefill = (0, import_createPrefill.takeCreatePrefill)(doctype);
|
|
129
|
-
setLocalDoc({
|
|
130
|
-
...defaults,
|
|
131
|
-
...prefill,
|
|
132
|
-
doctype
|
|
133
|
-
});
|
|
134
|
-
},
|
|
135
|
-
// currentUser intentionally not a dep: seeding happens once per mount;
|
|
136
|
-
// a late-resolving user only matters for brand-new blank forms where
|
|
137
|
-
// the meta usually arrives later anyway.
|
|
138
|
-
[isCreate, meta, doctype]);
|
|
139
|
-
(0, import_react.useEffect)(function () {
|
|
140
|
-
if (!name) return;
|
|
141
|
-
if (liveDoc) {
|
|
142
|
-
everLoadedRef.current = true;
|
|
143
|
-
setWasDeleted(false);
|
|
144
|
-
var incoming = liveDoc;
|
|
145
|
-
var prevBaseline = baselineRef.current;
|
|
146
|
-
if (!prevBaseline) {
|
|
147
|
-
setBaseline(incoming);
|
|
148
|
-
setLocalDoc(incoming);
|
|
149
|
-
return;
|
|
150
|
-
}
|
|
151
|
-
var local = localDocRef.current;
|
|
152
|
-
var merged = {
|
|
153
|
-
...incoming
|
|
154
|
-
};
|
|
155
|
-
var _iteratorNormalCompletion = true,
|
|
156
|
-
_didIteratorError = false,
|
|
157
|
-
_iteratorError = void 0;
|
|
158
|
-
try {
|
|
159
|
-
for (var _iterator = Object.keys(local)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
160
|
-
var key = _step.value;
|
|
161
|
-
if (!(0, import_dirtyTracking.isSameValue)(local[key], prevBaseline[key])) merged[key] = local[key];
|
|
162
|
-
}
|
|
163
|
-
} catch (err) {
|
|
164
|
-
_didIteratorError = true;
|
|
165
|
-
_iteratorError = err;
|
|
166
|
-
} finally {
|
|
167
|
-
try {
|
|
168
|
-
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
169
|
-
_iterator.return();
|
|
170
|
-
}
|
|
171
|
-
} finally {
|
|
172
|
-
if (_didIteratorError) {
|
|
173
|
-
throw _iteratorError;
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
setBaseline(incoming);
|
|
178
|
-
setLocalDoc(merged);
|
|
179
|
-
} else if (everLoadedRef.current && !isDocLoading) {
|
|
180
|
-
setWasDeleted(true);
|
|
181
|
-
}
|
|
182
|
-
}, [liveDoc, isDocLoading, name]);
|
|
183
|
-
var dirtyFields = (0, import_react.useMemo)(function () {
|
|
184
|
-
return (0, import_dirtyTracking.computeDirtyFields)(localDoc, baseline);
|
|
185
|
-
}, [localDoc, baseline]);
|
|
186
|
-
var isDirty = dirtyFields.length > 0;
|
|
187
|
-
var fetchMap = (0, import_react.useMemo)(function () {
|
|
188
|
-
return meta ? (0, import_fetchFrom.buildFetchMap)(meta.fields) : void 0;
|
|
189
|
-
}, [meta]);
|
|
190
|
-
var fetchStateRef = (0, import_react.useRef)({
|
|
191
|
-
meta: void 0,
|
|
192
|
-
connection: void 0
|
|
193
|
-
});
|
|
194
|
-
fetchStateRef.current = {
|
|
195
|
-
meta,
|
|
196
|
-
connection
|
|
197
|
-
};
|
|
198
|
-
var fetchMapRef = (0, import_react.useRef)(fetchMap);
|
|
199
|
-
fetchMapRef.current = fetchMap;
|
|
200
|
-
var runFetchFrom = (0, import_react.useCallback)(function (field, value) {
|
|
201
|
-
var _fetchMapRef_current;
|
|
202
|
-
var rules = (_fetchMapRef_current = fetchMapRef.current) === null || _fetchMapRef_current === void 0 ? void 0 : _fetchMapRef_current.get(field);
|
|
203
|
-
if (!rules || rules.length === 0) return;
|
|
204
|
-
var {
|
|
205
|
-
meta: currentMeta,
|
|
206
|
-
connection: currentConnection
|
|
207
|
-
} = fetchStateRef.current;
|
|
208
|
-
var linkField = currentMeta === null || currentMeta === void 0 ? void 0 : currentMeta.fields.find(function (f) {
|
|
209
|
-
return f.fieldname === field;
|
|
210
|
-
});
|
|
211
|
-
var targetDoctype = typeof (linkField === null || linkField === void 0 ? void 0 : linkField.options) === "string" ? linkField.options : "";
|
|
212
|
-
var applyPatch = function applyPatch2(fetched) {
|
|
213
|
-
setLocalDoc(function (prev) {
|
|
214
|
-
if (prev[field] !== value) return prev;
|
|
215
|
-
var patch = (0, import_fetchFrom.applyFetchedValues)(rules, fetched, prev);
|
|
216
|
-
return Object.keys(patch).length > 0 ? {
|
|
217
|
-
...prev,
|
|
218
|
-
...patch
|
|
219
|
-
} : prev;
|
|
220
|
-
});
|
|
221
|
-
};
|
|
222
|
-
if (value === void 0 || value === null || value === "") {
|
|
223
|
-
applyPatch({});
|
|
224
|
-
return;
|
|
225
|
-
}
|
|
226
|
-
if (!currentConnection || !targetDoctype || currentConnection.fixtures) return;
|
|
227
|
-
var sources = Array.from(new Set(rules.map(function (rule) {
|
|
228
|
-
return rule.source;
|
|
229
|
-
})));
|
|
230
|
-
(0, import_formActions.validateLink)((0, import_formActions.createHttpClient)(currentConnection), targetDoctype, String(value), sources).then(applyPatch).catch(function () {});
|
|
231
|
-
},
|
|
232
|
-
// Invalid link / no read perm on source — leave targets as-is;
|
|
233
|
-
// the server re-validates on save.
|
|
234
|
-
[]);
|
|
235
|
-
var setValue = (0, import_react.useCallback)(function (field, value) {
|
|
236
|
-
setLocalDoc(function (prev) {
|
|
237
|
-
return {
|
|
238
|
-
...prev,
|
|
239
|
-
[field]: value
|
|
240
|
-
};
|
|
241
|
-
});
|
|
242
|
-
setErrors(function (prev) {
|
|
243
|
-
if (!(field in prev)) return prev;
|
|
244
|
-
var next = {
|
|
245
|
-
...prev
|
|
246
|
-
};
|
|
247
|
-
delete next[field];
|
|
248
|
-
return next;
|
|
249
|
-
});
|
|
250
|
-
runFetchFrom(field, value);
|
|
251
|
-
}, [runFetchFrom]);
|
|
252
|
-
var validate = (0, import_react.useCallback)(function () {
|
|
253
|
-
if (!meta) return {};
|
|
254
|
-
var doc = {
|
|
255
|
-
...localDocRef.current,
|
|
256
|
-
__islocal: isCreate ? 1 : 0,
|
|
257
|
-
...(currentUser ? {
|
|
258
|
-
__session_user: currentUser
|
|
259
|
-
} : {})
|
|
260
|
-
};
|
|
261
|
-
var validationErrors = {};
|
|
262
|
-
if (isCreate && (0, import_formLayout.isPromptNamed)(meta.autoname, meta.naming_rule) && (0, import_dirtyTracking.isEmptyValue)(doc.name)) {
|
|
263
|
-
validationErrors.name = translate("nameRequired", {
|
|
264
|
-
defaultValue: "Name is required"
|
|
265
|
-
});
|
|
266
|
-
}
|
|
267
|
-
var _iteratorNormalCompletion = true,
|
|
268
|
-
_didIteratorError = false,
|
|
269
|
-
_iteratorError = void 0;
|
|
270
|
-
try {
|
|
271
|
-
for (var _iterator = meta.fields[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
272
|
-
var field = _step.value;
|
|
273
|
-
if (field.hidden || LAYOUT_TYPES.has(field.fieldtype)) continue;
|
|
274
|
-
if (!(0, import_dependsOn.evaluateDependsOn)(field.depends_on, doc, true)) continue;
|
|
275
|
-
var required = !!field.reqd || !!field.mandatory_depends_on && (0, import_dependsOn.evaluateDependsOn)(field.mandatory_depends_on, doc, false);
|
|
276
|
-
if (!required) continue;
|
|
277
|
-
if ((0, import_dirtyTracking.isEmptyValue)(doc[field.fieldname])) {
|
|
278
|
-
validationErrors[field.fieldname] = translate("fieldRequired", {
|
|
279
|
-
defaultValue: "{{label}} is required",
|
|
280
|
-
label: field.label || field.fieldname
|
|
281
|
-
});
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
} catch (err) {
|
|
285
|
-
_didIteratorError = true;
|
|
286
|
-
_iteratorError = err;
|
|
287
|
-
} finally {
|
|
288
|
-
try {
|
|
289
|
-
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
290
|
-
_iterator.return();
|
|
291
|
-
}
|
|
292
|
-
} finally {
|
|
293
|
-
if (_didIteratorError) {
|
|
294
|
-
throw _iteratorError;
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
return validationErrors;
|
|
299
|
-
}, [meta, isCreate, currentUser, translate]);
|
|
300
|
-
var save = (0, import_react.useCallback)(async function () {
|
|
301
|
-
if (wasDeleted || !connection) return void 0;
|
|
302
|
-
var requiredErrors = validate();
|
|
303
|
-
if (Object.keys(requiredErrors).length > 0) {
|
|
304
|
-
setErrors(requiredErrors);
|
|
305
|
-
return void 0;
|
|
306
|
-
}
|
|
307
|
-
setIsSaving(true);
|
|
308
|
-
setErrors({});
|
|
309
|
-
try {
|
|
310
|
-
var _created_name;
|
|
311
|
-
if (name) {
|
|
312
|
-
var _baselineRef_current;
|
|
313
|
-
if (!docCollection) return void 0;
|
|
314
|
-
var local = localDocRef.current;
|
|
315
|
-
var base = (_baselineRef_current = baselineRef.current) !== null && _baselineRef_current !== void 0 ? _baselineRef_current : {};
|
|
316
|
-
var changed = Object.keys(local).filter(function (key) {
|
|
317
|
-
return key !== "doctype" && key !== "name" && !(0, import_dirtyTracking.isSameValue)(local[key], base[key]);
|
|
318
|
-
});
|
|
319
|
-
if (changed.length > 0) {
|
|
320
|
-
var tx = docCollection.update(name, function (draft) {
|
|
321
|
-
var _iteratorNormalCompletion = true,
|
|
322
|
-
_didIteratorError = false,
|
|
323
|
-
_iteratorError = void 0;
|
|
324
|
-
try {
|
|
325
|
-
for (var _iterator = changed[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
326
|
-
var key = _step.value;
|
|
327
|
-
draft[key] = local[key];
|
|
328
|
-
}
|
|
329
|
-
} catch (err) {
|
|
330
|
-
_didIteratorError = true;
|
|
331
|
-
_iteratorError = err;
|
|
332
|
-
} finally {
|
|
333
|
-
try {
|
|
334
|
-
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
335
|
-
_iterator.return();
|
|
336
|
-
}
|
|
337
|
-
} finally {
|
|
338
|
-
if (_didIteratorError) {
|
|
339
|
-
throw _iteratorError;
|
|
340
|
-
}
|
|
341
|
-
}
|
|
342
|
-
}
|
|
343
|
-
});
|
|
344
|
-
await tx.isPersisted.promise;
|
|
345
|
-
}
|
|
346
|
-
setConflict(false);
|
|
347
|
-
return name;
|
|
348
|
-
}
|
|
349
|
-
var {
|
|
350
|
-
doctype: _dt,
|
|
351
|
-
name: newName,
|
|
352
|
-
...values
|
|
353
|
-
} = localDocRef.current;
|
|
354
|
-
if (typeof newName === "string" && newName.trim()) {
|
|
355
|
-
values.name = newName.trim();
|
|
356
|
-
}
|
|
357
|
-
var created = await (0, import_formActions.insertDoc)((0, import_formActions.createHttpClient)(connection), doctype, values);
|
|
358
|
-
return String((_created_name = created.name) !== null && _created_name !== void 0 ? _created_name : "");
|
|
359
|
-
} catch (err) {
|
|
360
|
-
if (isConflictError(err)) {
|
|
361
|
-
setConflict(true);
|
|
362
|
-
setErrors({
|
|
363
|
-
general: translate("conflictError", {
|
|
364
|
-
defaultValue: "This document was modified on the server after you opened it. Reload to get the latest version \u2014 your unsaved edits will be discarded."
|
|
365
|
-
})
|
|
366
|
-
});
|
|
367
|
-
} else {
|
|
368
|
-
setErrors({
|
|
369
|
-
general: extractServerError(err, translate("saveFailed", {
|
|
370
|
-
defaultValue: "Failed to save"
|
|
371
|
-
}))
|
|
372
|
-
});
|
|
373
|
-
}
|
|
374
|
-
return void 0;
|
|
375
|
-
} finally {
|
|
376
|
-
setIsSaving(false);
|
|
377
|
-
}
|
|
378
|
-
}, [wasDeleted, connection, validate, name, docCollection, doctype, translate]);
|
|
379
|
-
var submit = (0, import_react.useCallback)(async function () {
|
|
380
|
-
if (!connection || !name) return false;
|
|
381
|
-
setIsSaving(true);
|
|
382
|
-
setErrors({});
|
|
383
|
-
try {
|
|
384
|
-
var base = baselineRef.current;
|
|
385
|
-
if (!base) return false;
|
|
386
|
-
await (0, import_formActions.submitDoc)((0, import_formActions.createHttpClient)(connection), {
|
|
387
|
-
...base,
|
|
388
|
-
doctype
|
|
389
|
-
});
|
|
390
|
-
return true;
|
|
391
|
-
} catch (err) {
|
|
392
|
-
if (isConflictError(err)) setConflict(true);
|
|
393
|
-
setErrors({
|
|
394
|
-
general: extractServerError(err, translate("submitFailed", {
|
|
395
|
-
defaultValue: "Failed to submit"
|
|
396
|
-
}))
|
|
397
|
-
});
|
|
398
|
-
return false;
|
|
399
|
-
} finally {
|
|
400
|
-
setIsSaving(false);
|
|
401
|
-
}
|
|
402
|
-
}, [connection, name, doctype, translate]);
|
|
403
|
-
var cancel = (0, import_react.useCallback)(async function () {
|
|
404
|
-
if (!connection || !name) return false;
|
|
405
|
-
setIsSaving(true);
|
|
406
|
-
setErrors({});
|
|
407
|
-
try {
|
|
408
|
-
await (0, import_formActions.cancelDoc)((0, import_formActions.createHttpClient)(connection), doctype, name);
|
|
409
|
-
return true;
|
|
410
|
-
} catch (err) {
|
|
411
|
-
setErrors({
|
|
412
|
-
general: extractServerError(err, translate("cancelFailed", {
|
|
413
|
-
defaultValue: "Failed to cancel"
|
|
414
|
-
}))
|
|
415
|
-
});
|
|
416
|
-
return false;
|
|
417
|
-
} finally {
|
|
418
|
-
setIsSaving(false);
|
|
419
|
-
}
|
|
420
|
-
}, [connection, name, doctype, translate]);
|
|
421
|
-
var remove = (0, import_react.useCallback)(async function () {
|
|
422
|
-
if (!docCollection || !name || wasDeleted) return false;
|
|
423
|
-
setIsSaving(true);
|
|
424
|
-
setErrors({});
|
|
425
|
-
try {
|
|
426
|
-
var tx = docCollection.delete(name);
|
|
427
|
-
await tx.isPersisted.promise;
|
|
428
|
-
return true;
|
|
429
|
-
} catch (err) {
|
|
430
|
-
setErrors({
|
|
431
|
-
general: extractServerError(err, translate("deleteFailed", {
|
|
432
|
-
defaultValue: "Failed to delete"
|
|
433
|
-
}))
|
|
434
|
-
});
|
|
435
|
-
return false;
|
|
436
|
-
} finally {
|
|
437
|
-
setIsSaving(false);
|
|
438
|
-
}
|
|
439
|
-
}, [docCollection, name, wasDeleted, translate]);
|
|
440
|
-
var reload = (0, import_react.useCallback)(function () {
|
|
441
|
-
setConflict(false);
|
|
442
|
-
setErrors({});
|
|
443
|
-
if (baselineRef.current) {
|
|
444
|
-
setLocalDoc(baselineRef.current);
|
|
445
|
-
} else if (!name) {
|
|
446
|
-
seededRef.current = false;
|
|
447
|
-
setLocalDoc({
|
|
448
|
-
doctype
|
|
449
|
-
});
|
|
450
|
-
}
|
|
451
|
-
}, [doctype, name]);
|
|
452
|
-
var docstatus = Number((_ref = baseline === null || baseline === void 0 ? void 0 : baseline.docstatus) !== null && _ref !== void 0 ? _ref : 0);
|
|
453
|
-
return {
|
|
454
|
-
doc: localDoc,
|
|
455
|
-
baseline,
|
|
456
|
-
isLoading: !!name && isDocLoading && !everLoadedRef.current,
|
|
457
|
-
notFound: !!name && !isDocLoading && !liveDoc && !everLoadedRef.current,
|
|
458
|
-
wasDeleted,
|
|
459
|
-
isCreate,
|
|
460
|
-
isDirty,
|
|
461
|
-
dirtyFields,
|
|
462
|
-
isSaving,
|
|
463
|
-
errors,
|
|
464
|
-
conflict,
|
|
465
|
-
currentUser,
|
|
466
|
-
docstatus,
|
|
467
|
-
setValue,
|
|
468
|
-
save,
|
|
469
|
-
submit,
|
|
470
|
-
cancel,
|
|
471
|
-
remove,
|
|
472
|
-
reload,
|
|
473
|
-
validate
|
|
474
|
-
};
|
|
475
|
-
}
|
|
30
|
+
var import_frappe_ui = require("@multiplatform.one/frappe-ui");
|
|
476
31
|
//# sourceMappingURL=useFormEngine.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","useFormEngine_exports","useFormEngine","module","exports","import_frappe","require","import_react","import_formActions","import_formLayout","import_createPrefill","import_dependsOn","import_dirtyTracking","import_fetchFrom","LAYOUT_TYPES","Set","isConflictError","err","_e_message","e","status","exc_type","test","message","extractServerError","fallback","_server_messages","messages","JSON","parse","parsed","map","msg","_JSON_parse_message","unused","filter","Boolean","length","join","connection","doctype","meta","translate","_ref","isCreate","localDoc","setLocalDoc","useState","baseline","setBaseline","isSaving","setIsSaving","errors","setErrors","conflict","setConflict","wasDeleted","setWasDeleted","currentUser","setCurrentUser","everLoadedRef","useRef","seededRef","localDocRef","current","baselineRef","docCollection","useFrappeCollection","filters","data","rawDocData","isLoading","isDocLoading","useLiveQuery","q","_doc","where","param","eq","liveDoc","useMemo","_arr_","arr","Array","isArray","useEffect","cancelled","getLoggedUser","createHttpClient","then","user","catch","baseURL","defaults","buildCreateDefaults","fields","prefill","takeCreatePrefill","incoming","prevBaseline","local","merged","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","keys","Symbol","iterator","_step","next","done","isSameValue","return","dirtyFields","computeDirtyFields","isDirty","fetchMap","buildFetchMap","fetchStateRef","fetchMapRef","runFetchFrom","useCallback","field","_fetchMapRef_current","rules","currentMeta","currentConnection","linkField","find","f","fieldname","targetDoctype","options","applyPatch","applyPatch2","fetched","prev","patch","applyFetchedValues","fixtures","sources","rule","source","validateLink","String","setValue","validate","doc","__islocal","__session_user","validationErrors","isPromptNamed","autoname","naming_rule","isEmptyValue","defaultValue","hidden","has","fieldtype","evaluateDependsOn","depends_on","required","reqd","mandatory_depends_on","label","save","requiredErrors","_created_name","_baselineRef_current","base","changed","tx","update","draft","isPersisted","promise","_dt","newName","values","trim","created","insertDoc","general","submit","submitDoc","cancel","cancelDoc","remove","delete","reload","docstatus","Number","notFound"],"sources":["useFormEngine.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar useFormEngine_exports = {};\n__export(useFormEngine_exports, {\n useFormEngine: () => useFormEngine\n});\nmodule.exports = __toCommonJS(useFormEngine_exports);\nvar import_frappe = require(\"@multiplatform.one/frappe\");\nvar import_react = require(\"react\");\nvar import_formActions = require(\"./formActions\");\nvar import_formLayout = require(\"./formLayout\");\nvar import_createPrefill = require(\"./createPrefill\");\nvar import_dependsOn = require(\"./dependsOn\");\nvar import_dirtyTracking = require(\"./dirtyTracking\");\nvar import_fetchFrom = require(\"./fetchFrom\");\nvar LAYOUT_TYPES = /* @__PURE__ */ new Set([\n \"Section Break\",\n \"Column Break\",\n \"Tab Break\",\n \"Fold\"\n]);\nfunction isConflictError(err) {\n var _e_message;\n var e = err;\n if (!e) return false;\n if (e.status === 409) return true;\n if (e.exc_type === \"TimestampMismatchError\") return true;\n return /TimestampMismatch|has been modified/i.test((_e_message = e.message) !== null && _e_message !== void 0 ? _e_message : \"\");\n}\nfunction extractServerError(err, fallback) {\n var e = err;\n if (e === null || e === void 0 ? void 0 : e._server_messages) {\n try {\n var messages = JSON.parse(e._server_messages);\n var parsed = messages.map(function(msg) {\n try {\n var _JSON_parse_message;\n return (_JSON_parse_message = JSON.parse(msg).message) !== null && _JSON_parse_message !== void 0 ? _JSON_parse_message : \"\";\n } catch (unused) {\n return msg;\n }\n }).filter(Boolean);\n if (parsed.length > 0) return parsed.join(\"\\n\");\n } catch (unused) {\n }\n }\n return (e === null || e === void 0 ? void 0 : e.message) || fallback;\n}\nfunction useFormEngine(connection, doctype, name, meta, translate) {\n var _ref;\n var isCreate = !name;\n var [localDoc, setLocalDoc] = (0, import_react.useState)({});\n var [baseline, setBaseline] = (0, import_react.useState)(void 0);\n var [isSaving, setIsSaving] = (0, import_react.useState)(false);\n var [errors, setErrors] = (0, import_react.useState)({});\n var [conflict, setConflict] = (0, import_react.useState)(false);\n var [wasDeleted, setWasDeleted] = (0, import_react.useState)(false);\n var [currentUser, setCurrentUser] = (0, import_react.useState)(\"\");\n var everLoadedRef = (0, import_react.useRef)(false);\n var seededRef = (0, import_react.useRef)(false);\n var localDocRef = (0, import_react.useRef)(localDoc);\n localDocRef.current = localDoc;\n var baselineRef = (0, import_react.useRef)(baseline);\n baselineRef.current = baseline;\n var docCollection = (0, import_frappe.useFrappeCollection)(name ? connection : void 0, doctype, {\n filters: name ? {\n name\n } : void 0\n });\n var { data: rawDocData, isLoading: isDocLoading } = (0, import_frappe.useLiveQuery)(function(q) {\n if (!docCollection || !name) return null;\n return q.from({\n _doc: docCollection\n }).where(function(param) {\n var { _doc } = param;\n return (0, import_frappe.eq)(_doc.name, name);\n });\n }, [\n docCollection,\n name\n ]);\n var liveDoc = (0, import_react.useMemo)(function() {\n var _arr_;\n var arr = Array.isArray(rawDocData) ? rawDocData : rawDocData ? [\n rawDocData\n ] : [];\n return (_arr_ = arr[0]) !== null && _arr_ !== void 0 ? _arr_ : null;\n }, [\n rawDocData\n ]);\n (0, import_react.useEffect)(function() {\n if (!connection) return;\n var cancelled = false;\n (0, import_formActions.getLoggedUser)((0, import_formActions.createHttpClient)(connection)).then(function(user) {\n if (!cancelled) setCurrentUser(user);\n }).catch(function() {\n });\n return function() {\n cancelled = true;\n };\n }, [\n connection === null || connection === void 0 ? void 0 : connection.baseURL\n ]);\n (0, import_react.useEffect)(function() {\n everLoadedRef.current = false;\n seededRef.current = false;\n setWasDeleted(false);\n setConflict(false);\n setErrors({});\n setBaseline(void 0);\n setLocalDoc({});\n }, [\n doctype,\n name\n ]);\n (0, import_react.useEffect)(\n function() {\n if (!isCreate || !meta || seededRef.current) return;\n seededRef.current = true;\n var defaults = (0, import_formLayout.buildCreateDefaults)(meta.fields, currentUser || void 0);\n var prefill = (0, import_createPrefill.takeCreatePrefill)(doctype);\n setLocalDoc({\n ...defaults,\n ...prefill,\n doctype\n });\n },\n // currentUser intentionally not a dep: seeding happens once per mount;\n // a late-resolving user only matters for brand-new blank forms where\n // the meta usually arrives later anyway.\n [\n isCreate,\n meta,\n doctype\n ]\n );\n (0, import_react.useEffect)(function() {\n if (!name) return;\n if (liveDoc) {\n everLoadedRef.current = true;\n setWasDeleted(false);\n var incoming = liveDoc;\n var prevBaseline = baselineRef.current;\n if (!prevBaseline) {\n setBaseline(incoming);\n setLocalDoc(incoming);\n return;\n }\n var local = localDocRef.current;\n var merged = {\n ...incoming\n };\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = Object.keys(local)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n if (!(0, import_dirtyTracking.isSameValue)(local[key], prevBaseline[key])) merged[key] = local[key];\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n setBaseline(incoming);\n setLocalDoc(merged);\n } else if (everLoadedRef.current && !isDocLoading) {\n setWasDeleted(true);\n }\n }, [\n liveDoc,\n isDocLoading,\n name\n ]);\n var dirtyFields = (0, import_react.useMemo)(function() {\n return (0, import_dirtyTracking.computeDirtyFields)(localDoc, baseline);\n }, [\n localDoc,\n baseline\n ]);\n var isDirty = dirtyFields.length > 0;\n var fetchMap = (0, import_react.useMemo)(function() {\n return meta ? (0, import_fetchFrom.buildFetchMap)(meta.fields) : void 0;\n }, [\n meta\n ]);\n var fetchStateRef = (0, import_react.useRef)({\n meta: void 0,\n connection: void 0\n });\n fetchStateRef.current = {\n meta,\n connection\n };\n var fetchMapRef = (0, import_react.useRef)(fetchMap);\n fetchMapRef.current = fetchMap;\n var runFetchFrom = (0, import_react.useCallback)(\n function(field, value) {\n var _fetchMapRef_current;\n var rules = (_fetchMapRef_current = fetchMapRef.current) === null || _fetchMapRef_current === void 0 ? void 0 : _fetchMapRef_current.get(field);\n if (!rules || rules.length === 0) return;\n var { meta: currentMeta, connection: currentConnection } = fetchStateRef.current;\n var linkField = currentMeta === null || currentMeta === void 0 ? void 0 : currentMeta.fields.find(function(f) {\n return f.fieldname === field;\n });\n var targetDoctype = typeof (linkField === null || linkField === void 0 ? void 0 : linkField.options) === \"string\" ? linkField.options : \"\";\n var applyPatch = function applyPatch2(fetched) {\n setLocalDoc(function(prev) {\n if (prev[field] !== value) return prev;\n var patch = (0, import_fetchFrom.applyFetchedValues)(rules, fetched, prev);\n return Object.keys(patch).length > 0 ? {\n ...prev,\n ...patch\n } : prev;\n });\n };\n if (value === void 0 || value === null || value === \"\") {\n applyPatch({});\n return;\n }\n if (!currentConnection || !targetDoctype || currentConnection.fixtures) return;\n var sources = Array.from(new Set(rules.map(function(rule) {\n return rule.source;\n })));\n (0, import_formActions.validateLink)((0, import_formActions.createHttpClient)(currentConnection), targetDoctype, String(value), sources).then(applyPatch).catch(function() {\n });\n },\n // Invalid link / no read perm on source — leave targets as-is;\n // the server re-validates on save.\n []\n );\n var setValue = (0, import_react.useCallback)(function(field, value) {\n setLocalDoc(function(prev) {\n return {\n ...prev,\n [field]: value\n };\n });\n setErrors(function(prev) {\n if (!(field in prev)) return prev;\n var next = {\n ...prev\n };\n delete next[field];\n return next;\n });\n runFetchFrom(field, value);\n }, [\n runFetchFrom\n ]);\n var validate = (0, import_react.useCallback)(function() {\n if (!meta) return {};\n var doc = {\n ...localDocRef.current,\n __islocal: isCreate ? 1 : 0,\n ...currentUser ? {\n __session_user: currentUser\n } : {}\n };\n var validationErrors = {};\n if (isCreate && (0, import_formLayout.isPromptNamed)(meta.autoname, meta.naming_rule) && (0, import_dirtyTracking.isEmptyValue)(doc.name)) {\n validationErrors.name = translate(\"nameRequired\", {\n defaultValue: \"Name is required\"\n });\n }\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = meta.fields[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var field = _step.value;\n if (field.hidden || LAYOUT_TYPES.has(field.fieldtype)) continue;\n if (!(0, import_dependsOn.evaluateDependsOn)(field.depends_on, doc, true)) continue;\n var required = !!field.reqd || !!field.mandatory_depends_on && (0, import_dependsOn.evaluateDependsOn)(field.mandatory_depends_on, doc, false);\n if (!required) continue;\n if ((0, import_dirtyTracking.isEmptyValue)(doc[field.fieldname])) {\n validationErrors[field.fieldname] = translate(\"fieldRequired\", {\n defaultValue: \"{{label}} is required\",\n label: field.label || field.fieldname\n });\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return validationErrors;\n }, [\n meta,\n isCreate,\n currentUser,\n translate\n ]);\n var save = (0, import_react.useCallback)(async function() {\n if (wasDeleted || !connection) return void 0;\n var requiredErrors = validate();\n if (Object.keys(requiredErrors).length > 0) {\n setErrors(requiredErrors);\n return void 0;\n }\n setIsSaving(true);\n setErrors({});\n try {\n var _created_name;\n if (name) {\n var _baselineRef_current;\n if (!docCollection) return void 0;\n var local = localDocRef.current;\n var base = (_baselineRef_current = baselineRef.current) !== null && _baselineRef_current !== void 0 ? _baselineRef_current : {};\n var changed = Object.keys(local).filter(function(key) {\n return key !== \"doctype\" && key !== \"name\" && !(0, import_dirtyTracking.isSameValue)(local[key], base[key]);\n });\n if (changed.length > 0) {\n var tx = docCollection.update(name, function(draft) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = changed[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n draft[key] = local[key];\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n });\n await tx.isPersisted.promise;\n }\n setConflict(false);\n return name;\n }\n var { doctype: _dt, name: newName, ...values } = localDocRef.current;\n if (typeof newName === \"string\" && newName.trim()) {\n values.name = newName.trim();\n }\n var created = await (0, import_formActions.insertDoc)((0, import_formActions.createHttpClient)(connection), doctype, values);\n return String((_created_name = created.name) !== null && _created_name !== void 0 ? _created_name : \"\");\n } catch (err) {\n if (isConflictError(err)) {\n setConflict(true);\n setErrors({\n general: translate(\"conflictError\", {\n defaultValue: \"This document was modified on the server after you opened it. Reload to get the latest version \\u2014 your unsaved edits will be discarded.\"\n })\n });\n } else {\n setErrors({\n general: extractServerError(err, translate(\"saveFailed\", {\n defaultValue: \"Failed to save\"\n }))\n });\n }\n return void 0;\n } finally {\n setIsSaving(false);\n }\n }, [\n wasDeleted,\n connection,\n validate,\n name,\n docCollection,\n doctype,\n translate\n ]);\n var submit = (0, import_react.useCallback)(async function() {\n if (!connection || !name) return false;\n setIsSaving(true);\n setErrors({});\n try {\n var base = baselineRef.current;\n if (!base) return false;\n await (0, import_formActions.submitDoc)((0, import_formActions.createHttpClient)(connection), {\n ...base,\n doctype\n });\n return true;\n } catch (err) {\n if (isConflictError(err)) setConflict(true);\n setErrors({\n general: extractServerError(err, translate(\"submitFailed\", {\n defaultValue: \"Failed to submit\"\n }))\n });\n return false;\n } finally {\n setIsSaving(false);\n }\n }, [\n connection,\n name,\n doctype,\n translate\n ]);\n var cancel = (0, import_react.useCallback)(async function() {\n if (!connection || !name) return false;\n setIsSaving(true);\n setErrors({});\n try {\n await (0, import_formActions.cancelDoc)((0, import_formActions.createHttpClient)(connection), doctype, name);\n return true;\n } catch (err) {\n setErrors({\n general: extractServerError(err, translate(\"cancelFailed\", {\n defaultValue: \"Failed to cancel\"\n }))\n });\n return false;\n } finally {\n setIsSaving(false);\n }\n }, [\n connection,\n name,\n doctype,\n translate\n ]);\n var remove = (0, import_react.useCallback)(async function() {\n if (!docCollection || !name || wasDeleted) return false;\n setIsSaving(true);\n setErrors({});\n try {\n var tx = docCollection.delete(name);\n await tx.isPersisted.promise;\n return true;\n } catch (err) {\n setErrors({\n general: extractServerError(err, translate(\"deleteFailed\", {\n defaultValue: \"Failed to delete\"\n }))\n });\n return false;\n } finally {\n setIsSaving(false);\n }\n }, [\n docCollection,\n name,\n wasDeleted,\n translate\n ]);\n var reload = (0, import_react.useCallback)(function() {\n setConflict(false);\n setErrors({});\n if (baselineRef.current) {\n setLocalDoc(baselineRef.current);\n } else if (!name) {\n seededRef.current = false;\n setLocalDoc({\n doctype\n });\n }\n }, [\n doctype,\n name\n ]);\n var docstatus = Number((_ref = baseline === null || baseline === void 0 ? void 0 : baseline.docstatus) !== null && _ref !== void 0 ? _ref : 0);\n return {\n doc: localDoc,\n baseline,\n isLoading: !!name && isDocLoading && !everLoadedRef.current,\n notFound: !!name && !isDocLoading && !liveDoc && !everLoadedRef.current,\n wasDeleted,\n isCreate,\n isDirty,\n dirtyFields,\n isSaving,\n errors,\n conflict,\n currentUser,\n docstatus,\n setValue,\n save,\n submit,\n cancel,\n remove,\n reload,\n validate\n };\n}\n//# sourceMappingURL=useFormEngine.js.map\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","useFormEngine_exports","__export","useFormEngine","import_frappe_ui","module","exports"],"sources":["../../../src/form/useFormEngine.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,qBAAA;AAAAC,QAAA,CAAAD,qBAAA;EAAAE,aAAA,EAAAA,CAAA,KAAAC,gBAAA,CAAAD;AAAA;AAMAE,MAAA,CAAAC,OAAA,GAAAV,YAA8B,CAAAK,qBAAA","ignoreList":[]}
|