@multiplatform.one/backoffice 7.28.0 → 7.29.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/README.md +1 -1
- 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.cjs +167 -224
- package/dist/cjs/form/DocFormScreen.native.js +183 -260
- 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.native.js.map +1 -1
- package/dist/cjs/form/dependsOn.native.js.map +1 -1
- 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.native.js.map +1 -1
- package/dist/cjs/form/fieldPermissions.native.js.map +1 -1
- package/dist/cjs/form/formActions.native.js.map +1 -1
- 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.native.js.map +1 -1
- package/dist/cjs/i18n/en.cjs +1 -0
- package/dist/cjs/i18n/en.native.js +1 -0
- 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.cjs +30 -18
- package/dist/cjs/list/ListBulkActionsBar.native.js +44 -32
- 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.cjs +15 -7
- package/dist/cjs/list/sidebar-section.native.js +17 -8
- 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.cjs +20 -374
- package/dist/cjs/report/DoctypeReportView.native.js +23 -455
- package/dist/cjs/report/DoctypeReportView.native.js.map +1 -1
- package/dist/cjs/report/QueryReportScreen.cjs +33 -23
- package/dist/cjs/report/QueryReportScreen.native.js +34 -24
- package/dist/cjs/report/QueryReportScreen.native.js.map +1 -1
- package/dist/cjs/report/queryReportColumns.cjs +3 -105
- package/dist/cjs/report/queryReportColumns.native.js +2 -129
- package/dist/cjs/report/queryReportColumns.native.js.map +1 -1
- package/dist/cjs/report/queryReportFilterBar.cjs +3 -4
- package/dist/cjs/report/queryReportFilterBar.native.js +4 -5
- package/dist/cjs/report/queryReportFilterBar.native.js.map +1 -1
- package/dist/cjs/report/queryReportUrlState.cjs +2 -2
- package/dist/cjs/report/queryReportUrlState.native.js +2 -2
- package/dist/cjs/report/queryReportUrlState.native.js.map +1 -1
- package/dist/cjs/report/report-grid.cjs +2 -426
- package/dist/cjs/report/report-grid.native.js +1 -479
- package/dist/cjs/report/report-grid.native.js.map +1 -1
- package/dist/cjs/report/report-toolbar.cjs +2 -228
- package/dist/cjs/report/report-toolbar.native.js +1 -274
- package/dist/cjs/report/report-toolbar.native.js.map +1 -1
- package/dist/cjs/report/reportShapes.cjs +12 -383
- package/dist/cjs/report/reportShapes.native.js +12 -501
- package/dist/cjs/report/reportShapes.native.js.map +1 -1
- package/dist/cjs/report/reportViewModel.cjs +20 -360
- package/dist/cjs/report/reportViewModel.native.js +19 -627
- package/dist/cjs/report/reportViewModel.native.js.map +1 -1
- package/dist/cjs/report/savedReports.cjs +2 -106
- package/dist/cjs/report/savedReports.native.js +1 -132
- package/dist/cjs/report/savedReports.native.js.map +1 -1
- package/dist/cjs/report/useQueryReport.cjs +11 -219
- package/dist/cjs/report/useQueryReport.native.js +11 -244
- 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/measures.cjs +3 -5
- package/dist/cjs/shared/measures.native.js +3 -5
- package/dist/cjs/shared/measures.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.cjs +3 -256
- package/dist/cjs/views/ReportView.native.js +3 -382
- 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.cjs +6 -6
- package/dist/cjs/views/report-controls.native.js +7 -7
- 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.native.js +1 -1
- package/dist/cjs/workspace/WorkspaceQuickList.native.js.map +1 -1
- package/dist/cjs/workspace/WorkspaceRecents.native.js +1 -1
- 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.native.js +1 -1
- 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/chrome/BackofficeAwesomebar.native.js.map +1 -1
- package/dist/esm/chrome/CommandPalette.native.js.map +1 -1
- package/dist/esm/chrome/HelpMenu.native.js.map +1 -1
- package/dist/esm/chrome/NotificationsButton.native.js.map +1 -1
- package/dist/esm/chrome/UserMenu.native.js.map +1 -1
- package/dist/esm/chrome/awesomebar-data.native.js.map +1 -1
- package/dist/esm/chrome/command-palette-model.native.js.map +1 -1
- package/dist/esm/chrome/help-about-dialog.native.js.map +1 -1
- package/dist/esm/chrome/help-shortcuts-dialog.native.js.map +1 -1
- package/dist/esm/chrome/notifications-data.native.js.map +1 -1
- package/dist/esm/chrome/notifications-panel.native.js.map +1 -1
- package/dist/esm/chrome/notifications-utils.native.js.map +1 -1
- package/dist/esm/chrome/shortcuts.native.js.map +1 -1
- package/dist/esm/chrome/user-session.native.js.map +1 -1
- package/dist/esm/config/BackofficeProvider.native.js.map +1 -1
- package/dist/esm/config/capabilities.native.js.map +1 -1
- package/dist/esm/config/events.native.js.map +1 -1
- package/dist/esm/config/slots.native.js.map +1 -1
- package/dist/esm/desk/Desk.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/desk/resolveDeskPath.native.js.map +1 -1
- package/dist/esm/desk/scope.native.js.map +1 -1
- package/dist/esm/desk/target.native.js.map +1 -1
- package/dist/esm/form/DocFormScreen.mjs +169 -226
- package/dist/esm/form/DocFormScreen.mjs.map +1 -1
- package/dist/esm/form/DocFormScreen.native.js +184 -261
- package/dist/esm/form/DocFormScreen.native.js.map +1 -1
- package/dist/esm/form/FormConnections.native.js.map +1 -1
- package/dist/esm/form/FormDialogs.native.js.map +1 -1
- package/dist/esm/form/FormErrorBoundary.native.js.map +1 -1
- package/dist/esm/form/FormHeaderCluster.native.js.map +1 -1
- package/dist/esm/form/FormSidebarPanel.native.js.map +1 -1
- package/dist/esm/form/FormTimeline.native.js.map +1 -1
- package/dist/esm/form/FormToolbar.native.js.map +1 -1
- package/dist/esm/form/connections-data.native.js.map +1 -1
- package/dist/esm/form/createPrefill.native.js.map +1 -1
- package/dist/esm/form/dependsOn.native.js.map +1 -1
- package/dist/esm/form/dirtyTracking.native.js.map +1 -1
- package/dist/esm/form/docinfo.native.js.map +1 -1
- package/dist/esm/form/fetchFrom.native.js.map +1 -1
- package/dist/esm/form/fieldPermissions.native.js.map +1 -1
- package/dist/esm/form/formActions.native.js.map +1 -1
- package/dist/esm/form/formLayout.native.js.map +1 -1
- package/dist/esm/form/platformHooks.native.js.map +1 -1
- package/dist/esm/form/sidebar-attachments.native.js.map +1 -1
- package/dist/esm/form/sidebar-dialogs.native.js.map +1 -1
- package/dist/esm/form/sidebar-people.native.js.map +1 -1
- package/dist/esm/form/sidebar-rpc.native.js.map +1 -1
- package/dist/esm/form/sidebar-utils.native.js.map +1 -1
- package/dist/esm/form/timeline-entries.native.js.map +1 -1
- package/dist/esm/form/timeline-utils.native.js.map +1 -1
- package/dist/esm/form/useFormEngine.native.js.map +1 -1
- package/dist/esm/i18n/en.mjs +1 -0
- package/dist/esm/i18n/en.mjs.map +1 -1
- package/dist/esm/i18n/en.native.js +1 -0
- package/dist/esm/i18n/en.native.js.map +1 -1
- package/dist/esm/i18n/index.native.js.map +1 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/list/AddTagsDialog.native.js.map +1 -1
- package/dist/esm/list/AssignToDialog.native.js.map +1 -1
- package/dist/esm/list/DoctypeListScreen.native.js.map +1 -1
- package/dist/esm/list/ListBulkActionsBar.mjs +31 -19
- package/dist/esm/list/ListBulkActionsBar.mjs.map +1 -1
- package/dist/esm/list/ListBulkActionsBar.native.js +37 -25
- package/dist/esm/list/ListBulkActionsBar.native.js.map +1 -1
- package/dist/esm/list/ListFilterBar.native.js.map +1 -1
- package/dist/esm/list/ListSidebar.native.js.map +1 -1
- package/dist/esm/list/bulk-edit-dialog.native.js.map +1 -1
- package/dist/esm/list/bulk-export.native.js.map +1 -1
- package/dist/esm/list/bulk-submit-cancel.native.js.map +1 -1
- package/dist/esm/list/bulkActions.native.js.map +1 -1
- package/dist/esm/list/filter-chips.native.js.map +1 -1
- package/dist/esm/list/filter-editor.native.js.map +1 -1
- package/dist/esm/list/filter-fields.native.js.map +1 -1
- package/dist/esm/list/filter-saved.native.js.map +1 -1
- package/dist/esm/list/filter-sort.native.js.map +1 -1
- package/dist/esm/list/filter-standard.native.js.map +1 -1
- package/dist/esm/list/filterConversion.native.js.map +1 -1
- package/dist/esm/list/list-tools-sheet.native.js.map +1 -1
- package/dist/esm/list/listColumns.native.js.map +1 -1
- package/dist/esm/list/listFields.native.js.map +1 -1
- package/dist/esm/list/listFormat.native.js.map +1 -1
- package/dist/esm/list/listUrlState.native.js.map +1 -1
- package/dist/esm/list/sidebar-section.mjs +16 -8
- package/dist/esm/list/sidebar-section.mjs.map +1 -1
- package/dist/esm/list/sidebar-section.native.js +17 -8
- package/dist/esm/list/sidebar-section.native.js.map +1 -1
- package/dist/esm/list/sidebar-stats.native.js.map +1 -1
- package/dist/esm/list/statusColors.native.js.map +1 -1
- package/dist/esm/navigation/navigator.native.js.map +1 -1
- package/dist/esm/navigation/paths.native.js.map +1 -1
- package/dist/esm/oneAdapter/index.native.js.map +1 -1
- package/dist/esm/quickEntry/QuickEntryDialog.native.js.map +1 -1
- package/dist/esm/quickEntry/quickEntryPlan.native.js.map +1 -1
- package/dist/esm/report/DoctypeReportView.mjs +21 -375
- package/dist/esm/report/DoctypeReportView.mjs.map +1 -1
- package/dist/esm/report/DoctypeReportView.native.js +24 -456
- package/dist/esm/report/DoctypeReportView.native.js.map +1 -1
- package/dist/esm/report/QueryReportScreen.mjs +26 -16
- package/dist/esm/report/QueryReportScreen.mjs.map +1 -1
- package/dist/esm/report/QueryReportScreen.native.js +26 -16
- package/dist/esm/report/QueryReportScreen.native.js.map +1 -1
- package/dist/esm/report/queryReportColumns.mjs +1 -103
- package/dist/esm/report/queryReportColumns.mjs.map +1 -1
- package/dist/esm/report/queryReportColumns.native.js +1 -117
- package/dist/esm/report/queryReportColumns.native.js.map +1 -1
- package/dist/esm/report/queryReportFilterBar.mjs +1 -2
- package/dist/esm/report/queryReportFilterBar.mjs.map +1 -1
- package/dist/esm/report/queryReportFilterBar.native.js +1 -2
- package/dist/esm/report/queryReportFilterBar.native.js.map +1 -1
- package/dist/esm/report/queryReportUrlState.mjs +1 -1
- package/dist/esm/report/queryReportUrlState.native.js +1 -1
- package/dist/esm/report/queryReportUrlState.native.js.map +1 -1
- package/dist/esm/report/report-grid.mjs +1 -425
- package/dist/esm/report/report-grid.mjs.map +1 -1
- package/dist/esm/report/report-grid.native.js +1 -468
- package/dist/esm/report/report-grid.native.js.map +1 -1
- package/dist/esm/report/report-toolbar.mjs +2 -228
- package/dist/esm/report/report-toolbar.mjs.map +1 -1
- package/dist/esm/report/report-toolbar.native.js +2 -264
- package/dist/esm/report/report-toolbar.native.js.map +1 -1
- package/dist/esm/report/reportShapes.mjs +2 -373
- package/dist/esm/report/reportShapes.mjs.map +1 -1
- package/dist/esm/report/reportShapes.native.js +2 -491
- package/dist/esm/report/reportShapes.native.js.map +1 -1
- package/dist/esm/report/reportViewModel.mjs +2 -342
- package/dist/esm/report/reportViewModel.mjs.map +1 -1
- package/dist/esm/report/reportViewModel.native.js +2 -610
- package/dist/esm/report/reportViewModel.native.js.map +1 -1
- package/dist/esm/report/savedReports.mjs +1 -105
- package/dist/esm/report/savedReports.mjs.map +1 -1
- package/dist/esm/report/savedReports.native.js +1 -132
- package/dist/esm/report/savedReports.native.js.map +1 -1
- package/dist/esm/report/useQueryReport.mjs +2 -210
- package/dist/esm/report/useQueryReport.mjs.map +1 -1
- package/dist/esm/report/useQueryReport.native.js +2 -235
- package/dist/esm/report/useQueryReport.native.js.map +1 -1
- package/dist/esm/shared/deskLinks.native.js.map +1 -1
- package/dist/esm/shared/listNavContext.native.js.map +1 -1
- package/dist/esm/shared/measures.mjs +1 -3
- package/dist/esm/shared/measures.mjs.map +1 -1
- package/dist/esm/shared/measures.native.js +1 -3
- package/dist/esm/shared/measures.native.js.map +1 -1
- package/dist/esm/shared/types.native.js.map +1 -1
- package/dist/esm/shared/useDocinfo.native.js.map +1 -1
- package/dist/esm/shared/useDoctypeMeta.native.js.map +1 -1
- package/dist/esm/shared/useFrappeApp.native.js.map +1 -1
- package/dist/esm/shared/useRecentVisit.native.js.map +1 -1
- package/dist/esm/shared/useSessionUserId.native.js.map +1 -1
- package/dist/esm/shared/useSlugTarget.native.js.map +1 -1
- package/dist/esm/shared/useUserRoles.native.js.map +1 -1
- package/dist/esm/shell/BackofficeShell.native.js.map +1 -1
- package/dist/esm/shell/HomeRedirect.native.js.map +1 -1
- package/dist/esm/shell/NotFoundScreen.native.js.map +1 -1
- package/dist/esm/shell/SlugScreen.native.js.map +1 -1
- package/dist/esm/shell/WorkspaceSidebar.native.js.map +1 -1
- package/dist/esm/shell/useWorkspaces.native.js.map +1 -1
- package/dist/esm/shell/workspaceIcons.native.js.map +1 -1
- package/dist/esm/views/CalendarView.native.js.map +1 -1
- package/dist/esm/views/DashboardView.native.js.map +1 -1
- package/dist/esm/views/DoctypeViewScreen.native.js.map +1 -1
- package/dist/esm/views/ImageView.native.js.map +1 -1
- package/dist/esm/views/KanbanView.native.js.map +1 -1
- package/dist/esm/views/ReportView.mjs +3 -256
- package/dist/esm/views/ReportView.mjs.map +1 -1
- package/dist/esm/views/ReportView.native.js +3 -382
- package/dist/esm/views/ReportView.native.js.map +1 -1
- package/dist/esm/views/TreeView.native.js.map +1 -1
- package/dist/esm/views/ViewHeader.native.js.map +1 -1
- package/dist/esm/views/ViewStates.native.js.map +1 -1
- package/dist/esm/views/ViewSwitcherMenu.native.js.map +1 -1
- package/dist/esm/views/calendar-field-selector.native.js.map +1 -1
- package/dist/esm/views/connection.native.js.map +1 -1
- package/dist/esm/views/dashboard-data.native.js.map +1 -1
- package/dist/esm/views/deskViewConfigs.native.js.map +1 -1
- package/dist/esm/views/kanban-board-controls.native.js.map +1 -1
- package/dist/esm/views/kanban-field-picker.native.js.map +1 -1
- package/dist/esm/views/kanbanBoardOps.native.js.map +1 -1
- package/dist/esm/views/report-controls.mjs +3 -3
- package/dist/esm/views/report-controls.mjs.map +1 -1
- package/dist/esm/views/report-controls.native.js +3 -3
- package/dist/esm/views/report-controls.native.js.map +1 -1
- package/dist/esm/views/viewAvailability.native.js.map +1 -1
- package/dist/esm/views/viewMeta.native.js.map +1 -1
- package/dist/esm/workspace/WorkspaceChartBlock.native.js.map +1 -1
- package/dist/esm/workspace/WorkspaceGrid.native.js.map +1 -1
- package/dist/esm/workspace/WorkspaceLinkCard.native.js.map +1 -1
- package/dist/esm/workspace/WorkspaceLinkDirectory.native.js.map +1 -1
- package/dist/esm/workspace/WorkspaceNumberCard.native.js.map +1 -1
- package/dist/esm/workspace/WorkspaceQuickList.native.js.map +1 -1
- package/dist/esm/workspace/WorkspaceRecents.native.js.map +1 -1
- package/dist/esm/workspace/WorkspaceScreen.native.js.map +1 -1
- package/dist/esm/workspace/WorkspaceShortcut.native.js.map +1 -1
- package/dist/esm/workspace/parseContent.native.js.map +1 -1
- package/dist/esm/workspace/types.native.js.map +1 -1
- package/dist/esm/workspace/useDashboardChart.native.js.map +1 -1
- package/dist/esm/workspace/useWorkspaceDoc.native.js.map +1 -1
- package/dist/jsx/chrome/BackofficeAwesomebar.native.js +1 -1
- package/dist/jsx/chrome/BackofficeAwesomebar.native.js.map +1 -1
- package/dist/jsx/chrome/CommandPalette.native.js +1 -1
- package/dist/jsx/chrome/CommandPalette.native.js.map +1 -1
- package/dist/jsx/chrome/HelpMenu.native.js +1 -1
- package/dist/jsx/chrome/HelpMenu.native.js.map +1 -1
- package/dist/jsx/chrome/NotificationsButton.native.js +1 -1
- package/dist/jsx/chrome/NotificationsButton.native.js.map +1 -1
- package/dist/jsx/chrome/UserMenu.native.js +1 -1
- package/dist/jsx/chrome/UserMenu.native.js.map +1 -1
- package/dist/jsx/chrome/awesomebar-data.native.js.map +1 -1
- package/dist/jsx/chrome/command-palette-model.native.js +1 -1
- package/dist/jsx/chrome/command-palette-model.native.js.map +1 -1
- package/dist/jsx/chrome/help-about-dialog.native.js +1 -1
- package/dist/jsx/chrome/help-about-dialog.native.js.map +1 -1
- package/dist/jsx/chrome/help-shortcuts-dialog.native.js +1 -1
- package/dist/jsx/chrome/help-shortcuts-dialog.native.js.map +1 -1
- package/dist/jsx/chrome/notifications-data.native.js.map +1 -1
- package/dist/jsx/chrome/notifications-panel.native.js +1 -1
- package/dist/jsx/chrome/notifications-panel.native.js.map +1 -1
- package/dist/jsx/chrome/notifications-utils.native.js.map +1 -1
- package/dist/jsx/chrome/shortcuts.native.js.map +1 -1
- package/dist/jsx/chrome/user-session.native.js.map +1 -1
- package/dist/jsx/config/BackofficeProvider.native.js +1 -1
- package/dist/jsx/config/BackofficeProvider.native.js.map +1 -1
- package/dist/jsx/config/capabilities.native.js.map +1 -1
- package/dist/jsx/config/events.native.js.map +1 -1
- package/dist/jsx/config/slots.native.js.map +1 -1
- package/dist/jsx/desk/Desk.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/desk/resolveDeskPath.native.js.map +1 -1
- package/dist/jsx/desk/scope.native.js.map +1 -1
- package/dist/jsx/desk/target.native.js.map +1 -1
- package/dist/jsx/form/DocFormScreen.mjs +169 -226
- package/dist/jsx/form/DocFormScreen.mjs.map +1 -1
- package/dist/jsx/form/DocFormScreen.native.js +183 -260
- package/dist/jsx/form/DocFormScreen.native.js.map +1 -1
- package/dist/jsx/form/FormConnections.native.js +1 -1
- package/dist/jsx/form/FormConnections.native.js.map +1 -1
- package/dist/jsx/form/FormDialogs.native.js +1 -1
- package/dist/jsx/form/FormDialogs.native.js.map +1 -1
- package/dist/jsx/form/FormErrorBoundary.native.js +1 -1
- package/dist/jsx/form/FormErrorBoundary.native.js.map +1 -1
- package/dist/jsx/form/FormHeaderCluster.native.js +1 -1
- package/dist/jsx/form/FormHeaderCluster.native.js.map +1 -1
- package/dist/jsx/form/FormSidebarPanel.native.js +1 -1
- package/dist/jsx/form/FormSidebarPanel.native.js.map +1 -1
- package/dist/jsx/form/FormTimeline.native.js +1 -1
- package/dist/jsx/form/FormTimeline.native.js.map +1 -1
- package/dist/jsx/form/FormToolbar.native.js +1 -1
- package/dist/jsx/form/FormToolbar.native.js.map +1 -1
- package/dist/jsx/form/connections-data.native.js.map +1 -1
- package/dist/jsx/form/createPrefill.native.js.map +1 -1
- package/dist/jsx/form/dependsOn.native.js.map +1 -1
- package/dist/jsx/form/dirtyTracking.native.js.map +1 -1
- package/dist/jsx/form/docinfo.native.js.map +1 -1
- package/dist/jsx/form/fetchFrom.native.js.map +1 -1
- package/dist/jsx/form/fieldPermissions.native.js.map +1 -1
- package/dist/jsx/form/formActions.native.js.map +1 -1
- package/dist/jsx/form/formLayout.native.js.map +1 -1
- package/dist/jsx/form/platformHooks.native.js.map +1 -1
- package/dist/jsx/form/sidebar-attachments.native.js +1 -1
- package/dist/jsx/form/sidebar-attachments.native.js.map +1 -1
- package/dist/jsx/form/sidebar-dialogs.native.js +1 -1
- package/dist/jsx/form/sidebar-dialogs.native.js.map +1 -1
- package/dist/jsx/form/sidebar-people.native.js +1 -1
- package/dist/jsx/form/sidebar-people.native.js.map +1 -1
- package/dist/jsx/form/sidebar-rpc.native.js.map +1 -1
- package/dist/jsx/form/sidebar-utils.native.js.map +1 -1
- package/dist/jsx/form/timeline-entries.native.js.map +1 -1
- package/dist/jsx/form/timeline-utils.native.js.map +1 -1
- package/dist/jsx/form/useFormEngine.native.js.map +1 -1
- package/dist/jsx/i18n/en.mjs +1 -0
- package/dist/jsx/i18n/en.mjs.map +1 -1
- package/dist/jsx/i18n/en.native.js +1 -0
- package/dist/jsx/i18n/en.native.js.map +1 -1
- package/dist/jsx/i18n/index.native.js.map +1 -1
- package/dist/jsx/index.native.js +1 -1
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/list/AddTagsDialog.native.js +1 -1
- package/dist/jsx/list/AddTagsDialog.native.js.map +1 -1
- package/dist/jsx/list/AssignToDialog.native.js +1 -1
- package/dist/jsx/list/AssignToDialog.native.js.map +1 -1
- package/dist/jsx/list/DoctypeListScreen.native.js +1 -1
- package/dist/jsx/list/DoctypeListScreen.native.js.map +1 -1
- package/dist/jsx/list/ListBulkActionsBar.mjs +31 -19
- package/dist/jsx/list/ListBulkActionsBar.mjs.map +1 -1
- package/dist/jsx/list/ListBulkActionsBar.native.js +44 -32
- package/dist/jsx/list/ListBulkActionsBar.native.js.map +1 -1
- package/dist/jsx/list/ListFilterBar.native.js +1 -1
- package/dist/jsx/list/ListFilterBar.native.js.map +1 -1
- package/dist/jsx/list/ListSidebar.native.js +1 -1
- package/dist/jsx/list/ListSidebar.native.js.map +1 -1
- package/dist/jsx/list/bulk-edit-dialog.native.js +1 -1
- package/dist/jsx/list/bulk-edit-dialog.native.js.map +1 -1
- package/dist/jsx/list/bulk-export.native.js.map +1 -1
- package/dist/jsx/list/bulk-submit-cancel.native.js.map +1 -1
- package/dist/jsx/list/bulkActions.native.js.map +1 -1
- package/dist/jsx/list/filter-chips.native.js +1 -1
- package/dist/jsx/list/filter-chips.native.js.map +1 -1
- package/dist/jsx/list/filter-editor.native.js +1 -1
- package/dist/jsx/list/filter-editor.native.js.map +1 -1
- package/dist/jsx/list/filter-fields.native.js.map +1 -1
- package/dist/jsx/list/filter-saved.native.js +1 -1
- package/dist/jsx/list/filter-saved.native.js.map +1 -1
- package/dist/jsx/list/filter-sort.native.js +1 -1
- package/dist/jsx/list/filter-sort.native.js.map +1 -1
- package/dist/jsx/list/filter-standard.native.js.map +1 -1
- package/dist/jsx/list/filterConversion.native.js.map +1 -1
- package/dist/jsx/list/list-tools-sheet.native.js +1 -1
- package/dist/jsx/list/list-tools-sheet.native.js.map +1 -1
- package/dist/jsx/list/listColumns.native.js.map +1 -1
- package/dist/jsx/list/listFields.native.js.map +1 -1
- package/dist/jsx/list/listFormat.native.js.map +1 -1
- package/dist/jsx/list/listUrlState.native.js.map +1 -1
- package/dist/jsx/list/sidebar-section.mjs +16 -8
- package/dist/jsx/list/sidebar-section.mjs.map +1 -1
- package/dist/jsx/list/sidebar-section.native.js +17 -8
- package/dist/jsx/list/sidebar-section.native.js.map +1 -1
- package/dist/jsx/list/sidebar-stats.native.js.map +1 -1
- package/dist/jsx/list/statusColors.native.js.map +1 -1
- package/dist/jsx/navigation/navigator.native.js.map +1 -1
- package/dist/jsx/navigation/paths.native.js.map +1 -1
- package/dist/jsx/oneAdapter/index.native.js.map +1 -1
- package/dist/jsx/quickEntry/QuickEntryDialog.native.js +1 -1
- package/dist/jsx/quickEntry/QuickEntryDialog.native.js.map +1 -1
- package/dist/jsx/quickEntry/quickEntryPlan.native.js.map +1 -1
- package/dist/jsx/report/DoctypeReportView.mjs +21 -375
- package/dist/jsx/report/DoctypeReportView.mjs.map +1 -1
- package/dist/jsx/report/DoctypeReportView.native.js +23 -455
- package/dist/jsx/report/DoctypeReportView.native.js.map +1 -1
- package/dist/jsx/report/QueryReportScreen.mjs +26 -16
- package/dist/jsx/report/QueryReportScreen.mjs.map +1 -1
- package/dist/jsx/report/QueryReportScreen.native.js +34 -24
- package/dist/jsx/report/QueryReportScreen.native.js.map +1 -1
- package/dist/jsx/report/queryReportColumns.mjs +1 -103
- package/dist/jsx/report/queryReportColumns.mjs.map +1 -1
- package/dist/jsx/report/queryReportColumns.native.js +2 -129
- package/dist/jsx/report/queryReportColumns.native.js.map +1 -1
- package/dist/jsx/report/queryReportFilterBar.mjs +1 -2
- package/dist/jsx/report/queryReportFilterBar.mjs.map +1 -1
- package/dist/jsx/report/queryReportFilterBar.native.js +4 -5
- package/dist/jsx/report/queryReportFilterBar.native.js.map +1 -1
- package/dist/jsx/report/queryReportUrlState.mjs +1 -1
- package/dist/jsx/report/queryReportUrlState.native.js +2 -2
- package/dist/jsx/report/queryReportUrlState.native.js.map +1 -1
- package/dist/jsx/report/report-grid.mjs +1 -425
- package/dist/jsx/report/report-grid.mjs.map +1 -1
- package/dist/jsx/report/report-grid.native.js +1 -479
- package/dist/jsx/report/report-grid.native.js.map +1 -1
- package/dist/jsx/report/report-toolbar.mjs +2 -228
- package/dist/jsx/report/report-toolbar.mjs.map +1 -1
- package/dist/jsx/report/report-toolbar.native.js +1 -274
- package/dist/jsx/report/report-toolbar.native.js.map +1 -1
- package/dist/jsx/report/reportShapes.mjs +2 -373
- package/dist/jsx/report/reportShapes.mjs.map +1 -1
- package/dist/jsx/report/reportShapes.native.js +12 -501
- package/dist/jsx/report/reportShapes.native.js.map +1 -1
- package/dist/jsx/report/reportViewModel.mjs +2 -342
- package/dist/jsx/report/reportViewModel.mjs.map +1 -1
- package/dist/jsx/report/reportViewModel.native.js +19 -627
- package/dist/jsx/report/reportViewModel.native.js.map +1 -1
- package/dist/jsx/report/savedReports.mjs +1 -105
- package/dist/jsx/report/savedReports.mjs.map +1 -1
- package/dist/jsx/report/savedReports.native.js +1 -132
- package/dist/jsx/report/savedReports.native.js.map +1 -1
- package/dist/jsx/report/useQueryReport.mjs +2 -210
- package/dist/jsx/report/useQueryReport.mjs.map +1 -1
- package/dist/jsx/report/useQueryReport.native.js +11 -244
- package/dist/jsx/report/useQueryReport.native.js.map +1 -1
- package/dist/jsx/shared/deskLinks.native.js.map +1 -1
- package/dist/jsx/shared/listNavContext.native.js.map +1 -1
- package/dist/jsx/shared/measures.mjs +1 -3
- package/dist/jsx/shared/measures.mjs.map +1 -1
- package/dist/jsx/shared/measures.native.js +3 -5
- package/dist/jsx/shared/measures.native.js.map +1 -1
- package/dist/jsx/shared/types.native.js.map +1 -1
- package/dist/jsx/shared/useDocinfo.native.js.map +1 -1
- package/dist/jsx/shared/useDoctypeMeta.native.js.map +1 -1
- package/dist/jsx/shared/useFrappeApp.native.js.map +1 -1
- package/dist/jsx/shared/useRecentVisit.native.js.map +1 -1
- package/dist/jsx/shared/useSessionUserId.native.js.map +1 -1
- package/dist/jsx/shared/useSlugTarget.native.js.map +1 -1
- package/dist/jsx/shared/useUserRoles.native.js.map +1 -1
- package/dist/jsx/shell/BackofficeShell.native.js +1 -1
- package/dist/jsx/shell/BackofficeShell.native.js.map +1 -1
- package/dist/jsx/shell/HomeRedirect.native.js +1 -1
- package/dist/jsx/shell/HomeRedirect.native.js.map +1 -1
- package/dist/jsx/shell/NotFoundScreen.native.js +1 -1
- package/dist/jsx/shell/NotFoundScreen.native.js.map +1 -1
- package/dist/jsx/shell/SlugScreen.native.js +1 -1
- package/dist/jsx/shell/SlugScreen.native.js.map +1 -1
- package/dist/jsx/shell/WorkspaceSidebar.native.js +1 -1
- package/dist/jsx/shell/WorkspaceSidebar.native.js.map +1 -1
- package/dist/jsx/shell/useWorkspaces.native.js.map +1 -1
- package/dist/jsx/shell/workspaceIcons.native.js.map +1 -1
- package/dist/jsx/views/CalendarView.native.js +1 -1
- package/dist/jsx/views/CalendarView.native.js.map +1 -1
- package/dist/jsx/views/DashboardView.native.js +1 -1
- package/dist/jsx/views/DashboardView.native.js.map +1 -1
- package/dist/jsx/views/DoctypeViewScreen.native.js.map +1 -1
- package/dist/jsx/views/ImageView.native.js +1 -1
- package/dist/jsx/views/ImageView.native.js.map +1 -1
- package/dist/jsx/views/KanbanView.native.js +1 -1
- package/dist/jsx/views/KanbanView.native.js.map +1 -1
- package/dist/jsx/views/ReportView.mjs +3 -256
- package/dist/jsx/views/ReportView.mjs.map +1 -1
- package/dist/jsx/views/ReportView.native.js +3 -382
- package/dist/jsx/views/ReportView.native.js.map +1 -1
- package/dist/jsx/views/TreeView.native.js +1 -1
- package/dist/jsx/views/TreeView.native.js.map +1 -1
- package/dist/jsx/views/ViewHeader.native.js +1 -1
- package/dist/jsx/views/ViewHeader.native.js.map +1 -1
- package/dist/jsx/views/ViewStates.native.js +1 -1
- package/dist/jsx/views/ViewStates.native.js.map +1 -1
- package/dist/jsx/views/ViewSwitcherMenu.native.js +1 -1
- package/dist/jsx/views/ViewSwitcherMenu.native.js.map +1 -1
- package/dist/jsx/views/calendar-field-selector.native.js +1 -1
- package/dist/jsx/views/calendar-field-selector.native.js.map +1 -1
- package/dist/jsx/views/connection.native.js.map +1 -1
- package/dist/jsx/views/dashboard-data.native.js.map +1 -1
- package/dist/jsx/views/deskViewConfigs.native.js.map +1 -1
- package/dist/jsx/views/kanban-board-controls.native.js +1 -1
- package/dist/jsx/views/kanban-board-controls.native.js.map +1 -1
- package/dist/jsx/views/kanban-field-picker.native.js +1 -1
- package/dist/jsx/views/kanban-field-picker.native.js.map +1 -1
- package/dist/jsx/views/kanbanBoardOps.native.js.map +1 -1
- package/dist/jsx/views/report-controls.mjs +3 -3
- package/dist/jsx/views/report-controls.mjs.map +1 -1
- package/dist/jsx/views/report-controls.native.js +7 -7
- package/dist/jsx/views/report-controls.native.js.map +1 -1
- package/dist/jsx/views/viewAvailability.native.js.map +1 -1
- package/dist/jsx/views/viewMeta.native.js.map +1 -1
- package/dist/jsx/workspace/WorkspaceChartBlock.native.js +1 -1
- package/dist/jsx/workspace/WorkspaceChartBlock.native.js.map +1 -1
- package/dist/jsx/workspace/WorkspaceGrid.native.js.map +1 -1
- package/dist/jsx/workspace/WorkspaceLinkCard.native.js +1 -1
- package/dist/jsx/workspace/WorkspaceLinkCard.native.js.map +1 -1
- package/dist/jsx/workspace/WorkspaceLinkDirectory.native.js +1 -1
- package/dist/jsx/workspace/WorkspaceLinkDirectory.native.js.map +1 -1
- package/dist/jsx/workspace/WorkspaceNumberCard.native.js +1 -1
- package/dist/jsx/workspace/WorkspaceNumberCard.native.js.map +1 -1
- package/dist/jsx/workspace/WorkspaceQuickList.native.js +1 -1
- package/dist/jsx/workspace/WorkspaceQuickList.native.js.map +1 -1
- package/dist/jsx/workspace/WorkspaceRecents.native.js +1 -1
- package/dist/jsx/workspace/WorkspaceRecents.native.js.map +1 -1
- package/dist/jsx/workspace/WorkspaceScreen.native.js +1 -1
- package/dist/jsx/workspace/WorkspaceScreen.native.js.map +1 -1
- package/dist/jsx/workspace/WorkspaceShortcut.native.js +1 -1
- package/dist/jsx/workspace/WorkspaceShortcut.native.js.map +1 -1
- package/dist/jsx/workspace/parseContent.native.js.map +1 -1
- package/dist/jsx/workspace/types.native.js.map +1 -1
- package/dist/jsx/workspace/useDashboardChart.native.js.map +1 -1
- package/dist/jsx/workspace/useWorkspaceDoc.native.js.map +1 -1
- package/package.json +12 -12
- package/src/backofficeScreens.designLaw.spec.ts +0 -5
- package/src/desk/DeskSurface.tsx +4 -7
- package/src/form/DocFormScreen.chrome.spec.ts +77 -0
- package/src/form/DocFormScreen.guest.screen.spec.tsx +175 -0
- package/src/form/DocFormScreen.rights.spec.tsx +7 -3
- package/src/form/DocFormScreen.tsx +214 -315
- package/src/i18n/en.ts +1 -0
- package/src/list/ListBulkActionsBar.rights.spec.tsx +134 -0
- package/src/list/ListBulkActionsBar.screen.spec.tsx +7 -1
- package/src/list/ListBulkActionsBar.tsx +76 -57
- package/src/list/ListFilterBar.screen.spec.tsx +14 -13
- package/src/list/sidebar-section.tsx +11 -3
- package/src/report/DoctypeReportView.tsx +28 -550
- package/src/report/QueryReportScreen.spec.tsx +75 -1
- package/src/report/QueryReportScreen.tsx +38 -22
- package/src/report/queryReportColumns.tsx +4 -123
- package/src/report/queryReportFilterBar.tsx +3 -5
- package/src/report/queryReportUrlState.ts +1 -1
- package/src/report/report-grid.tsx +4 -529
- package/src/report/report-toolbar.tsx +4 -308
- package/src/report/reportShapes.ts +25 -613
- package/src/report/reportShim.spec.ts +162 -0
- package/src/report/reportViewModel.ts +32 -605
- package/src/report/savedReports.ts +4 -161
- package/src/report/useQueryReport.ts +9 -347
- package/src/shared/measures.ts +3 -11
- package/src/views/ReportView.screen.spec.tsx +25 -20
- package/src/views/ReportView.tsx +7 -439
- package/src/views/report-controls.tsx +12 -20
- package/types/desk/DeskSurface.d.ts.map +1 -1
- package/types/form/DocFormScreen.d.ts +2 -2
- package/types/form/DocFormScreen.d.ts.map +1 -1
- package/types/i18n/en.d.ts +1 -0
- package/types/i18n/en.d.ts.map +1 -1
- package/types/list/ListBulkActionsBar.d.ts.map +1 -1
- package/types/list/sidebar-section.d.ts.map +1 -1
- package/types/report/DoctypeReportView.d.ts.map +1 -1
- package/types/report/QueryReportScreen.d.ts +1 -1
- package/types/report/QueryReportScreen.d.ts.map +1 -1
- package/types/report/queryReportColumns.d.ts +2 -11
- package/types/report/queryReportColumns.d.ts.map +1 -1
- package/types/report/queryReportFilterBar.d.ts +1 -1
- package/types/report/queryReportFilterBar.d.ts.map +1 -1
- package/types/report/queryReportUrlState.d.ts +1 -1
- package/types/report/queryReportUrlState.d.ts.map +1 -1
- package/types/report/report-grid.d.ts +2 -19
- package/types/report/report-grid.d.ts.map +1 -1
- package/types/report/report-toolbar.d.ts +2 -29
- package/types/report/report-toolbar.d.ts.map +1 -1
- package/types/report/reportShapes.d.ts +2 -115
- package/types/report/reportShapes.d.ts.map +1 -1
- package/types/report/reportViewModel.d.ts +2 -135
- package/types/report/reportViewModel.d.ts.map +1 -1
- package/types/report/savedReports.d.ts +2 -18
- package/types/report/savedReports.d.ts.map +1 -1
- package/types/report/useQueryReport.d.ts +2 -35
- package/types/report/useQueryReport.d.ts.map +1 -1
- package/types/shared/measures.d.ts +1 -2
- package/types/shared/measures.d.ts.map +1 -1
- package/types/views/ReportView.d.ts +3 -22
- package/types/views/ReportView.d.ts.map +1 -1
- package/types/views/report-controls.d.ts +2 -5
- package/types/views/report-controls.d.ts.map +1 -1
- package/src/report/report-grid.spec.tsx +0 -175
- package/src/report/report-toolbar.spec.tsx +0 -90
- package/src/report/reportShapes.spec.ts +0 -391
- package/src/report/reportViewModel.spec.ts +0 -393
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["fieldKind","selectOptionsFromField","_type_of","obj","Symbol","constructor","VALUELESS_FIELDTYPES","Set","REPORT_NUMERIC_FIELDTYPES","WIDE_FIELDTYPES","REPORT_PAGE_SIZES","DEFAULT_REPORT_PAGE_SIZE","defaultColumnWidth","fieldtype","has","columnAlign","toColumnDef","field","String","fieldname","label","kind","options","width","align","standardReportColumns","reportColumnsFromMeta","meta","_ref","out","seen","push","push2","column","add","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","fields","iterator","_step","next","done","value","startsWith","err","return","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","standard","defaultReportFieldnames","pickable","pickable2","field2","report_hide","status","find","title_field","image_field","flagged","filter","in_list_view","in_standard_filter","field1","includes","split","resolveSelectedColumns","all","fieldnames","byName","Map","map","column2","get","COMPARISON_PREFIXES","CHECK_TRUE","CHECK_FALSE","columnFilterTuple","raw","text","trim","lowered","toLowerCase","match","option","prefix","slice","length","columnFilterTuples","columns","filters","tuple","parseReportFiltersParam","candidates","decoded","decodeURIComponent","unused","candidate","parsed","JSON","parse","Array","isArray","BACKTICK_FIELD_RE","toDeskFieldExpr","doctype","parseDeskOrderBy","orderBy","expr","direction","backticked","replace","order","toDeskReportSettings","config","_config_sort","_config_pageSize","sort","param","operator","order_by","add_totals_row","addTotals","page_length","pageSize","column_widths","group_by","groupBy","aggregate_function","aggregate_on","fromDeskReportSettings","json","entry","fieldDoctype","entry1","filterDoctype","groupByRaw","groupByExpr","groupByMatch","isNullish","compareCellValues","a","b","left","right","orderReportRows","rows","sorted","grouped","ordered","name","buildGridRows","orderedRows","pageStart","page","previousGroup","counts","row","_row_groupBy","_counts_get","groupKey","set","forEach","row2","index","_row_groupBy2","groupKey2","_counts_get2","key","count","computeTotals","reduce","sum","Number","escapeCsvCell","test","buildReportCsv","lines","join"],"sources":["reportViewModel.native.js"],"sourcesContent":["import { fieldKind, selectOptionsFromField } from \"@multiplatform.one/frappe-ui\";\nfunction _type_of(obj) {\n \"@swc/helpers - typeof\";\n return obj && typeof Symbol !== \"undefined\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n}\nvar VALUELESS_FIELDTYPES = /* @__PURE__ */ new Set([\n \"Section Break\",\n \"Column Break\",\n \"Tab Break\",\n \"HTML\",\n \"Table\",\n \"Table MultiSelect\",\n \"Button\",\n \"Image\",\n \"Fold\",\n \"Heading\"\n]);\nvar REPORT_NUMERIC_FIELDTYPES = /* @__PURE__ */ new Set([\n \"Int\",\n \"Float\",\n \"Currency\",\n \"Percent\",\n \"Rating\",\n \"Duration\"\n]);\nvar WIDE_FIELDTYPES = /* @__PURE__ */ new Set([\n \"Small Text\",\n \"Text\",\n \"Long Text\",\n \"Text Editor\",\n \"Markdown Editor\",\n \"Code\",\n \"JSON\"\n]);\nvar REPORT_PAGE_SIZES = [\n 20,\n 100,\n 500\n];\nvar DEFAULT_REPORT_PAGE_SIZE = REPORT_PAGE_SIZES[0];\nfunction defaultColumnWidth(fieldtype) {\n if (fieldtype === \"Check\") return 90;\n if (REPORT_NUMERIC_FIELDTYPES.has(fieldtype)) return 110;\n if (fieldtype === \"Date\") return 120;\n if (fieldtype === \"Datetime\") return 165;\n if (WIDE_FIELDTYPES.has(fieldtype)) return 240;\n return 160;\n}\nfunction columnAlign(fieldtype) {\n if (fieldtype === \"Check\") return \"center\";\n return REPORT_NUMERIC_FIELDTYPES.has(fieldtype) ? \"right\" : \"left\";\n}\nfunction toColumnDef(field) {\n var fieldtype = String(field.fieldtype);\n return {\n fieldname: field.fieldname,\n label: field.label || field.fieldname,\n fieldtype,\n kind: fieldKind(fieldtype),\n options: field.options,\n width: defaultColumnWidth(fieldtype),\n align: columnAlign(fieldtype)\n };\n}\nfunction standardReportColumns() {\n return [\n {\n fieldname: \"name\",\n label: \"ID\",\n fieldtype: \"Data\",\n kind: \"text\",\n width: 160,\n align: \"left\"\n },\n {\n fieldname: \"owner\",\n label: \"Created By\",\n fieldtype: \"Link\",\n kind: \"link\",\n options: \"User\",\n width: 160,\n align: \"left\"\n },\n {\n fieldname: \"creation\",\n label: \"Created On\",\n fieldtype: \"Datetime\",\n kind: \"date\",\n width: 165,\n align: \"left\"\n },\n {\n fieldname: \"modified\",\n label: \"Last Updated On\",\n fieldtype: \"Datetime\",\n kind: \"date\",\n width: 165,\n align: \"left\"\n },\n {\n fieldname: \"modified_by\",\n label: \"Last Updated By\",\n fieldtype: \"Link\",\n kind: \"link\",\n options: \"User\",\n width: 160,\n align: \"left\"\n }\n ];\n}\nfunction reportColumnsFromMeta(meta) {\n var _ref;\n var out = [];\n var seen = /* @__PURE__ */ new Set();\n var push = function push2(column) {\n if (!column.fieldname || seen.has(column.fieldname)) return;\n seen.add(column.fieldname);\n out.push(column);\n };\n push(standardReportColumns()[0]);\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = ((_ref = meta === null || meta === void 0 ? void 0 : meta.fields) !== null && _ref !== void 0 ? _ref : [])[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var field = _step.value;\n var fieldtype = String(field.fieldtype);\n if (VALUELESS_FIELDTYPES.has(fieldtype) || fieldtype.startsWith(\"Table\")) continue;\n push(toColumnDef(field));\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 var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = standardReportColumns()[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var standard = _step1.value;\n push(standard);\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n return out;\n}\nfunction defaultReportFieldnames(meta) {\n var _ref;\n var out = [];\n var seen = /* @__PURE__ */ new Set();\n var push = function push2(fieldname) {\n if (!fieldname || seen.has(fieldname)) return;\n seen.add(fieldname);\n out.push(fieldname);\n };\n var pickable = function pickable2(field2) {\n var fieldtype = String(field2.fieldtype);\n return !VALUELESS_FIELDTYPES.has(fieldtype) && !fieldtype.startsWith(\"Table\") && field2.report_hide !== 1;\n };\n var fields = (_ref = meta === null || meta === void 0 ? void 0 : meta.fields) !== null && _ref !== void 0 ? _ref : [];\n push(\"name\");\n var status = fields.find(function(field2) {\n return field2.fieldname === \"status\";\n });\n if (status && pickable(status)) push(\"status\");\n push(meta === null || meta === void 0 ? void 0 : meta.title_field);\n push(meta === null || meta === void 0 ? void 0 : meta.image_field);\n var flagged = fields.filter(function(field2) {\n return pickable(field2) && (field2.in_list_view === 1 || field2.in_standard_filter === 1);\n });\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = flagged[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var field = _step.value;\n push(field.fieldname);\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 var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = flagged[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var field1 = _step1.value;\n if (String(field1.fieldtype) !== \"Currency\" || !field1.options) continue;\n push(field1.options.includes(\":\") ? field1.options.split(\":\")[1] : field1.options);\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n push(\"modified\");\n return out;\n}\nfunction resolveSelectedColumns(all, fieldnames) {\n var byName = new Map(all.map(function(column2) {\n return [\n column2.fieldname,\n column2\n ];\n }));\n var out = [];\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = fieldnames[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var fieldname = _step.value;\n var column = byName.get(fieldname);\n if (column) out.push(column);\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 out;\n}\nvar COMPARISON_PREFIXES = [\n \">=\",\n \"<=\",\n \"!=\",\n \">\",\n \"<\",\n \"=\"\n];\nvar CHECK_TRUE = /* @__PURE__ */ new Set([\n \"1\",\n \"true\",\n \"yes\",\n \"y\",\n \"\\u2713\"\n]);\nvar CHECK_FALSE = /* @__PURE__ */ new Set([\n \"0\",\n \"false\",\n \"no\",\n \"n\"\n]);\nfunction columnFilterTuple(column, raw) {\n var text = raw.trim();\n if (!text) return null;\n switch (column.kind) {\n case \"check\": {\n var lowered = text.toLowerCase();\n if (CHECK_TRUE.has(lowered)) return [\n column.fieldname,\n \"=\",\n 1\n ];\n if (CHECK_FALSE.has(lowered)) return [\n column.fieldname,\n \"=\",\n 0\n ];\n return null;\n }\n case \"select\": {\n var match = selectOptionsFromField(column.options).find(function(option) {\n return option.value.toLowerCase() === text.toLowerCase();\n });\n if (match) return [\n column.fieldname,\n \"=\",\n match.value\n ];\n return [\n column.fieldname,\n \"like\",\n text.includes(\"%\") ? text : `%${text}%`\n ];\n }\n case \"number\":\n case \"date\": {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = COMPARISON_PREFIXES[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var prefix = _step.value;\n if (text.startsWith(prefix)) {\n var value = text.slice(prefix.length).trim();\n return value ? [\n column.fieldname,\n prefix,\n value\n ] : null;\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 [\n column.fieldname,\n \"=\",\n text\n ];\n }\n default:\n return [\n column.fieldname,\n \"like\",\n text.includes(\"%\") ? text : `%${text}%`\n ];\n }\n}\nfunction columnFilterTuples(columns, filters) {\n var out = [];\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = columns[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var column = _step.value;\n var raw = filters[column.fieldname];\n if (raw === void 0) continue;\n var tuple = columnFilterTuple(column, raw);\n if (tuple) out.push(tuple);\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 out;\n}\nfunction parseReportFiltersParam(raw) {\n if (typeof raw !== \"string\" || !raw) return void 0;\n var candidates = [\n raw\n ];\n try {\n var decoded = decodeURIComponent(raw);\n if (decoded !== raw) candidates.push(decoded);\n } catch (unused) {\n }\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = candidates[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var candidate = _step.value;\n try {\n var parsed = JSON.parse(candidate);\n if (!Array.isArray(parsed)) continue;\n var filters = [];\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = parsed[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var tuple = _step1.value;\n if (Array.isArray(tuple) && tuple.length === 3 && typeof tuple[0] === \"string\" && typeof tuple[1] === \"string\") {\n filters.push([\n tuple[0],\n tuple[1],\n tuple[2]\n ]);\n }\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n if (filters.length > 0) return filters;\n } catch (unused) {\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 void 0;\n}\nvar BACKTICK_FIELD_RE = /`tab([^`]+)`\\.`([^`]+)`/;\nfunction toDeskFieldExpr(doctype, fieldname) {\n return `\\`tab${doctype}\\`.\\`${fieldname}\\``;\n}\nfunction parseDeskOrderBy(orderBy) {\n if (typeof orderBy !== \"string\" || !orderBy.trim()) return void 0;\n var [expr, direction] = orderBy.trim().split(/\\s+/);\n var backticked = expr.match(BACKTICK_FIELD_RE);\n var field = backticked ? backticked[2] : expr.replace(/`/g, \"\");\n if (!field) return void 0;\n return {\n field,\n order: (direction === null || direction === void 0 ? void 0 : direction.toLowerCase()) === \"asc\" ? \"asc\" : \"desc\"\n };\n}\nfunction toDeskReportSettings(doctype, config) {\n var _config_sort, _config_pageSize;\n var sort = (_config_sort = config.sort) !== null && _config_sort !== void 0 ? _config_sort : {\n field: \"modified\",\n order: \"desc\"\n };\n return {\n fields: config.fieldnames.map(function(fieldname) {\n return [\n fieldname,\n doctype\n ];\n }),\n filters: config.filters.map(function(param) {\n var [fieldname, operator, value] = param;\n return [\n doctype,\n fieldname,\n operator,\n value\n ];\n }),\n order_by: `${toDeskFieldExpr(doctype, sort.field)} ${sort.order}`,\n add_totals_row: config.addTotals ? 1 : 0,\n page_length: (_config_pageSize = config.pageSize) !== null && _config_pageSize !== void 0 ? _config_pageSize : DEFAULT_REPORT_PAGE_SIZE,\n column_widths: {},\n group_by: config.groupBy ? {\n group_by: toDeskFieldExpr(doctype, config.groupBy),\n aggregate_function: \"count\",\n aggregate_on: null\n } : null\n };\n}\nfunction fromDeskReportSettings(doctype, json) {\n if (!json || (typeof json === \"undefined\" ? \"undefined\" : _type_of(json)) !== \"object\") return void 0;\n var raw = json;\n var fieldnames = [];\n if (Array.isArray(raw.fields)) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = raw.fields[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var entry = _step.value;\n if (typeof entry === \"string\") {\n fieldnames.push(entry);\n } else if (Array.isArray(entry) && typeof entry[0] === \"string\") {\n var fieldDoctype = typeof entry[1] === \"string\" ? entry[1] : doctype;\n if (fieldDoctype === doctype) fieldnames.push(entry[0]);\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 }\n var filters = [];\n if (Array.isArray(raw.filters)) {\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = raw.filters[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var entry1 = _step1.value;\n if (!Array.isArray(entry1)) continue;\n if (entry1.length === 4) {\n var [filterDoctype, fieldname, operator, value] = entry1;\n if (filterDoctype === doctype && typeof fieldname === \"string\" && typeof operator === \"string\") {\n filters.push([\n fieldname,\n operator,\n value\n ]);\n }\n } else if (entry1.length === 3 && typeof entry1[0] === \"string\" && typeof entry1[1] === \"string\") {\n filters.push([\n entry1[0],\n entry1[1],\n entry1[2]\n ]);\n }\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n }\n var groupByRaw = raw.group_by;\n var groupByExpr = typeof (groupByRaw === null || groupByRaw === void 0 ? void 0 : groupByRaw.group_by) === \"string\" ? groupByRaw.group_by : void 0;\n var groupByMatch = groupByExpr === null || groupByExpr === void 0 ? void 0 : groupByExpr.match(BACKTICK_FIELD_RE);\n return {\n fieldnames,\n filters,\n sort: parseDeskOrderBy(raw.order_by),\n pageSize: typeof raw.page_length === \"number\" && raw.page_length > 0 ? raw.page_length : void 0,\n groupBy: groupByMatch ? groupByMatch[2] : null,\n addTotals: raw.add_totals_row === 1\n };\n}\nfunction isNullish(value) {\n return value === null || value === void 0;\n}\nfunction compareCellValues(a, b) {\n if (isNullish(a) && isNullish(b)) return 0;\n if (isNullish(a)) return 1;\n if (isNullish(b)) return -1;\n if (typeof a === \"number\" && typeof b === \"number\") return a - b;\n var left = String(a);\n var right = String(b);\n return left < right ? -1 : left > right ? 1 : 0;\n}\nfunction orderReportRows(rows, sort, groupBy) {\n var direction = sort.order === \"asc\" ? 1 : -1;\n var sorted = [\n ...rows\n ];\n sorted.sort(function(a, b) {\n if (groupBy) {\n var grouped = compareCellValues(a[groupBy], b[groupBy]);\n if (grouped !== 0) return grouped;\n }\n var left = a[sort.field];\n var right = b[sort.field];\n var ordered = isNullish(left) || isNullish(right) ? compareCellValues(left, right) : direction * compareCellValues(left, right);\n return ordered || compareCellValues(a.name, b.name);\n });\n return sorted;\n}\nfunction buildGridRows(orderedRows, pageStart, pageSize, groupBy) {\n var page = orderedRows.slice(pageStart, pageStart + pageSize);\n var out = [];\n var previousGroup;\n var counts = /* @__PURE__ */ new Map();\n if (groupBy) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = orderedRows[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var row = _step.value;\n var _row_groupBy, _counts_get;\n var groupKey = String((_row_groupBy = row[groupBy]) !== null && _row_groupBy !== void 0 ? _row_groupBy : \"\");\n counts.set(groupKey, ((_counts_get = counts.get(groupKey)) !== null && _counts_get !== void 0 ? _counts_get : 0) + 1);\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 page.forEach(function(row2, index) {\n if (groupBy) {\n var _row_groupBy2;\n var groupKey2 = String((_row_groupBy2 = row2[groupBy]) !== null && _row_groupBy2 !== void 0 ? _row_groupBy2 : \"\");\n if (previousGroup === void 0 || groupKey2 !== previousGroup) {\n var _counts_get2;\n previousGroup = groupKey2;\n out.push({\n kind: \"group\",\n key: `group:${groupKey2}:${pageStart + index}`,\n value: row2[groupBy],\n count: (_counts_get2 = counts.get(groupKey2)) !== null && _counts_get2 !== void 0 ? _counts_get2 : 0\n });\n }\n }\n out.push({\n kind: \"row\",\n key: row2.name,\n row: row2,\n index: pageStart + index + 1\n });\n });\n return out;\n}\nfunction computeTotals(columns, rows) {\n if (rows.length === 0) return [];\n return columns.filter(function(column) {\n return REPORT_NUMERIC_FIELDTYPES.has(column.fieldtype);\n }).map(function(column) {\n return {\n fieldname: column.fieldname,\n fieldtype: column.fieldtype,\n value: rows.reduce(function(sum, row) {\n return sum + (Number(row[column.fieldname]) || 0);\n }, 0)\n };\n });\n}\nfunction escapeCsvCell(value) {\n if (value === null || value === void 0) return \"\";\n var text = String(value);\n return /[\",\\n]/.test(text) ? `\"${text.replace(/\"/g, '\"\"')}\"` : text;\n}\nfunction buildReportCsv(columns, rows) {\n var lines = [\n columns.map(function(column) {\n return escapeCsvCell(column.label);\n }).join(\",\"),\n ...rows.map(function(row) {\n return columns.map(function(column) {\n return escapeCsvCell(row[column.fieldname]);\n }).join(\",\");\n })\n ];\n return lines.join(\"\\n\");\n}\nexport {\n DEFAULT_REPORT_PAGE_SIZE,\n REPORT_NUMERIC_FIELDTYPES,\n REPORT_PAGE_SIZES,\n buildGridRows,\n buildReportCsv,\n columnAlign,\n columnFilterTuple,\n columnFilterTuples,\n compareCellValues,\n computeTotals,\n defaultColumnWidth,\n defaultReportFieldnames,\n fromDeskReportSettings,\n orderReportRows,\n parseDeskOrderBy,\n parseReportFiltersParam,\n reportColumnsFromMeta,\n resolveSelectedColumns,\n toDeskReportSettings\n};\n//# sourceMappingURL=reportViewModel.js.map\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["buildReportGridRows","buildReportCsv","reportColumnAlign","reportColumnFilterTuple","reportColumnFilterTuples","compareReportCellValues","computeReportTotals","DEFAULT_REPORT_PAGE_SIZE","defaultReportColumnWidth","defaultReportFieldnames","fromDeskReportSettings","orderReportRows","parseDeskOrderBy","parseReportFiltersParam","REPORT_NUMERIC_FIELDTYPES","REPORT_PAGE_SIZES","reportColumnsFromMeta","resolveReportColumns","toDeskReportSettings","buildGridRows","columnAlign","columnFilterTuple","columnFilterTuples","compareCellValues","computeTotals","defaultColumnWidth","resolveSelectedColumns"],"sources":["../../../src/report/reportViewModel.ts"],"sourcesContent":[null],"mappings":"AAGA,SAAAA,mBAAA,EAAAC,cAAA,EAAAC,iBAAA,EAAAC,uBAAA,EAAAC,wBAAA,EAAAC,uBAAA,EAAAC,mBAAA,EAAAC,wBAAA,EAAAC,wBAAA,EAAAC,uBAAA,EAAAC,sBAAA,EAAAC,eAAA,EAAAC,gBAAA,EAAAC,uBAAA,EAAAC,yBAAA,EAAAC,iBAAA,EAAAC,qBAAA,EAAAC,oBAAA,EAAAC,oBAAA;AAAA,SAEEX,wBAAA,EACqBO,yBAAA,EACMC,iBAAA,EACCf,mBAAA,IAAAmB,aAAA,EACDlB,cAAA,EACJC,iBAAA,IAAAkB,WAAA,EACvBjB,uBAAA,IAAAkB,iBAAA,EAC4BjB,wBAAA,IAAAkB,kBAAA,EAC5BjB,uBAAA,IAAAkB,iBAAA,EACAjB,mBAAA,IAAAkB,aAAA,EACAhB,wBAAA,IAAAiB,kBAAA,EACAhB,uBAAA,EACAC,sBAAA,EACAC,eAAA,EACAC,gBAAA,EACAC,uBAAA,EACwBG,qBAAA,EACxBC,oBAAA,IAAAS,sBAAA,EAAAR,oBACK","ignoreList":[]}
|
|
@@ -1,107 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
3
|
-
import { useFrappeApp } from "../shared/useFrappeApp.mjs";
|
|
4
|
-
import { toDeskReportSettings, fromDeskReportSettings } from "./reportViewModel.mjs";
|
|
5
|
-
function useSavedReports(doctype) {
|
|
6
|
-
const app = useFrappeApp();
|
|
7
|
-
const config = useFrappeConfig();
|
|
8
|
-
const fixtureMode = Boolean(config?.fixtures);
|
|
9
|
-
const [reports, setReports] = useState([]);
|
|
10
|
-
const [loading, setLoading] = useState(false);
|
|
11
|
-
const [generation, setGeneration] = useState(0);
|
|
12
|
-
const memoryConfigs = useRef(/* @__PURE__ */new Map());
|
|
13
|
-
useEffect(() => {
|
|
14
|
-
memoryConfigs.current = /* @__PURE__ */new Map();
|
|
15
|
-
setReports([]);
|
|
16
|
-
}, [doctype]);
|
|
17
|
-
useEffect(() => {
|
|
18
|
-
if (!app || fixtureMode) return;
|
|
19
|
-
let cancelled = false;
|
|
20
|
-
setLoading(true);
|
|
21
|
-
app.call().get("frappe.client.get_list", {
|
|
22
|
-
doctype: "Report",
|
|
23
|
-
filters: JSON.stringify([["ref_doctype", "=", doctype], ["report_type", "=", "Report Builder"], ["disabled", "=", 0]]),
|
|
24
|
-
fields: JSON.stringify(["name", "report_name", "json"]),
|
|
25
|
-
limit_page_length: 0,
|
|
26
|
-
order_by: "report_name asc"
|
|
27
|
-
}).then(res => {
|
|
28
|
-
if (cancelled) return;
|
|
29
|
-
const rows = res.payload?.message ?? [];
|
|
30
|
-
setReports(rows.map(row => ({
|
|
31
|
-
name: row.name,
|
|
32
|
-
reportName: row.report_name || row.name,
|
|
33
|
-
json: row.json
|
|
34
|
-
})));
|
|
35
|
-
setLoading(false);
|
|
36
|
-
}).catch(() => {
|
|
37
|
-
if (cancelled) return;
|
|
38
|
-
setReports([]);
|
|
39
|
-
setLoading(false);
|
|
40
|
-
});
|
|
41
|
-
return () => {
|
|
42
|
-
cancelled = true;
|
|
43
|
-
};
|
|
44
|
-
}, [app, fixtureMode, doctype, generation]);
|
|
45
|
-
const load = useCallback(async name => {
|
|
46
|
-
if (fixtureMode) return memoryConfigs.current.get(name);
|
|
47
|
-
const summary = reports.find(report => report.name === name);
|
|
48
|
-
let json = summary?.json;
|
|
49
|
-
if (json === void 0 && app) {
|
|
50
|
-
const res = await app.call().get("frappe.client.get_value", {
|
|
51
|
-
doctype: "Report",
|
|
52
|
-
filters: JSON.stringify({
|
|
53
|
-
name
|
|
54
|
-
}),
|
|
55
|
-
fieldname: JSON.stringify(["json"])
|
|
56
|
-
});
|
|
57
|
-
json = res.payload?.message?.json;
|
|
58
|
-
}
|
|
59
|
-
if (!json) return void 0;
|
|
60
|
-
try {
|
|
61
|
-
return fromDeskReportSettings(doctype, JSON.parse(json));
|
|
62
|
-
} catch {
|
|
63
|
-
return void 0;
|
|
64
|
-
}
|
|
65
|
-
}, [app, fixtureMode, reports, doctype]);
|
|
66
|
-
const save = useCallback(async (name, viewConfig) => {
|
|
67
|
-
const trimmed = name.trim();
|
|
68
|
-
if (!trimmed) throw new Error("Report name is required");
|
|
69
|
-
if (fixtureMode || !app) {
|
|
70
|
-
memoryConfigs.current.set(trimmed, viewConfig);
|
|
71
|
-
setReports(previous => [...previous.filter(report => report.name !== trimmed), {
|
|
72
|
-
name: trimmed,
|
|
73
|
-
reportName: trimmed
|
|
74
|
-
}]);
|
|
75
|
-
return trimmed;
|
|
76
|
-
}
|
|
77
|
-
const res = await app.call().post("frappe.desk.reportview.save_report", {
|
|
78
|
-
name: trimmed,
|
|
79
|
-
doctype,
|
|
80
|
-
report_settings: JSON.stringify(toDeskReportSettings(doctype, viewConfig))
|
|
81
|
-
});
|
|
82
|
-
setGeneration(value => value + 1);
|
|
83
|
-
return res.payload?.message ?? trimmed;
|
|
84
|
-
}, [app, fixtureMode, doctype]);
|
|
85
|
-
const remove = useCallback(async name => {
|
|
86
|
-
if (fixtureMode || !app) {
|
|
87
|
-
memoryConfigs.current.delete(name);
|
|
88
|
-
setReports(previous => previous.filter(report => report.name !== name));
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
await app.call().post("frappe.desk.reportview.delete_report", {
|
|
92
|
-
name
|
|
93
|
-
});
|
|
94
|
-
setGeneration(value => value + 1);
|
|
95
|
-
}, [app, fixtureMode, doctype]);
|
|
96
|
-
const refresh = useCallback(() => setGeneration(value => value + 1), []);
|
|
97
|
-
return useMemo(() => ({
|
|
98
|
-
reports,
|
|
99
|
-
loading,
|
|
100
|
-
load,
|
|
101
|
-
save,
|
|
102
|
-
remove,
|
|
103
|
-
refresh
|
|
104
|
-
}), [reports, loading, load, save, remove, refresh]);
|
|
105
|
-
}
|
|
1
|
+
import { useSavedReports } from "@multiplatform.one/frappe-ui";
|
|
106
2
|
export { useSavedReports };
|
|
107
3
|
//# sourceMappingURL=savedReports.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["useSavedReports"],"sources":["../../../src/report/savedReports.ts"],"sourcesContent":[null],"mappings":"AAEA,SAASA,eAAA,QAAuB","ignoreList":[]}
|
|
@@ -1,134 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
3
|
-
import { useFrappeApp } from "../shared/useFrappeApp.native.js";
|
|
4
|
-
import { toDeskReportSettings, fromDeskReportSettings } from "./reportViewModel.native.js";
|
|
5
|
-
function useSavedReports(doctype) {
|
|
6
|
-
var app = useFrappeApp();
|
|
7
|
-
var config = useFrappeConfig();
|
|
8
|
-
var fixtureMode = Boolean(config === null || config === void 0 ? void 0 : config.fixtures);
|
|
9
|
-
var [reports, setReports] = useState([]);
|
|
10
|
-
var [loading, setLoading] = useState(false);
|
|
11
|
-
var [generation, setGeneration] = useState(0);
|
|
12
|
-
var memoryConfigs = useRef(/* @__PURE__ */new Map());
|
|
13
|
-
useEffect(function () {
|
|
14
|
-
memoryConfigs.current = /* @__PURE__ */new Map();
|
|
15
|
-
setReports([]);
|
|
16
|
-
}, [doctype]);
|
|
17
|
-
useEffect(function () {
|
|
18
|
-
if (!app || fixtureMode) return;
|
|
19
|
-
var cancelled = false;
|
|
20
|
-
setLoading(true);
|
|
21
|
-
app.call().get("frappe.client.get_list", {
|
|
22
|
-
doctype: "Report",
|
|
23
|
-
filters: JSON.stringify([["ref_doctype", "=", doctype], ["report_type", "=", "Report Builder"], ["disabled", "=", 0]]),
|
|
24
|
-
fields: JSON.stringify(["name", "report_name", "json"]),
|
|
25
|
-
limit_page_length: 0,
|
|
26
|
-
order_by: "report_name asc"
|
|
27
|
-
}).then(function (res) {
|
|
28
|
-
var _ref;
|
|
29
|
-
var _res_payload;
|
|
30
|
-
if (cancelled) return;
|
|
31
|
-
var rows = (_ref = (_res_payload = res.payload) === null || _res_payload === void 0 ? void 0 : _res_payload.message) !== null && _ref !== void 0 ? _ref : [];
|
|
32
|
-
setReports(rows.map(function (row) {
|
|
33
|
-
return {
|
|
34
|
-
name: row.name,
|
|
35
|
-
reportName: row.report_name || row.name,
|
|
36
|
-
json: row.json
|
|
37
|
-
};
|
|
38
|
-
}));
|
|
39
|
-
setLoading(false);
|
|
40
|
-
}).catch(function () {
|
|
41
|
-
if (cancelled) return;
|
|
42
|
-
setReports([]);
|
|
43
|
-
setLoading(false);
|
|
44
|
-
});
|
|
45
|
-
return function () {
|
|
46
|
-
cancelled = true;
|
|
47
|
-
};
|
|
48
|
-
}, [app, fixtureMode, doctype, generation]);
|
|
49
|
-
var load = useCallback(async function (name) {
|
|
50
|
-
if (fixtureMode) return memoryConfigs.current.get(name);
|
|
51
|
-
var summary = reports.find(function (report) {
|
|
52
|
-
return report.name === name;
|
|
53
|
-
});
|
|
54
|
-
var json = summary === null || summary === void 0 ? void 0 : summary.json;
|
|
55
|
-
if (json === void 0 && app) {
|
|
56
|
-
var _res_payload_message, _res_payload;
|
|
57
|
-
var res = await app.call().get("frappe.client.get_value", {
|
|
58
|
-
doctype: "Report",
|
|
59
|
-
filters: JSON.stringify({
|
|
60
|
-
name
|
|
61
|
-
}),
|
|
62
|
-
fieldname: JSON.stringify(["json"])
|
|
63
|
-
});
|
|
64
|
-
json = (_res_payload = res.payload) === null || _res_payload === void 0 ? void 0 : (_res_payload_message = _res_payload.message) === null || _res_payload_message === void 0 ? void 0 : _res_payload_message.json;
|
|
65
|
-
}
|
|
66
|
-
if (!json) return void 0;
|
|
67
|
-
try {
|
|
68
|
-
return fromDeskReportSettings(doctype, JSON.parse(json));
|
|
69
|
-
} catch (unused) {
|
|
70
|
-
return void 0;
|
|
71
|
-
}
|
|
72
|
-
}, [app, fixtureMode, reports, doctype]);
|
|
73
|
-
var save = useCallback(async function (name, viewConfig) {
|
|
74
|
-
var _ref;
|
|
75
|
-
var _res_payload;
|
|
76
|
-
var trimmed = name.trim();
|
|
77
|
-
if (!trimmed) throw new Error("Report name is required");
|
|
78
|
-
if (fixtureMode || !app) {
|
|
79
|
-
memoryConfigs.current.set(trimmed, viewConfig);
|
|
80
|
-
setReports(function (previous) {
|
|
81
|
-
return [...previous.filter(function (report) {
|
|
82
|
-
return report.name !== trimmed;
|
|
83
|
-
}), {
|
|
84
|
-
name: trimmed,
|
|
85
|
-
reportName: trimmed
|
|
86
|
-
}];
|
|
87
|
-
});
|
|
88
|
-
return trimmed;
|
|
89
|
-
}
|
|
90
|
-
var res = await app.call().post("frappe.desk.reportview.save_report", {
|
|
91
|
-
name: trimmed,
|
|
92
|
-
doctype,
|
|
93
|
-
report_settings: JSON.stringify(toDeskReportSettings(doctype, viewConfig))
|
|
94
|
-
});
|
|
95
|
-
setGeneration(function (value) {
|
|
96
|
-
return value + 1;
|
|
97
|
-
});
|
|
98
|
-
return (_ref = (_res_payload = res.payload) === null || _res_payload === void 0 ? void 0 : _res_payload.message) !== null && _ref !== void 0 ? _ref : trimmed;
|
|
99
|
-
}, [app, fixtureMode, doctype]);
|
|
100
|
-
var remove = useCallback(async function (name) {
|
|
101
|
-
if (fixtureMode || !app) {
|
|
102
|
-
memoryConfigs.current.delete(name);
|
|
103
|
-
setReports(function (previous) {
|
|
104
|
-
return previous.filter(function (report) {
|
|
105
|
-
return report.name !== name;
|
|
106
|
-
});
|
|
107
|
-
});
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
await app.call().post("frappe.desk.reportview.delete_report", {
|
|
111
|
-
name
|
|
112
|
-
});
|
|
113
|
-
setGeneration(function (value) {
|
|
114
|
-
return value + 1;
|
|
115
|
-
});
|
|
116
|
-
}, [app, fixtureMode, doctype]);
|
|
117
|
-
var refresh = useCallback(function () {
|
|
118
|
-
return setGeneration(function (value) {
|
|
119
|
-
return value + 1;
|
|
120
|
-
});
|
|
121
|
-
}, []);
|
|
122
|
-
return useMemo(function () {
|
|
123
|
-
return {
|
|
124
|
-
reports,
|
|
125
|
-
loading,
|
|
126
|
-
load,
|
|
127
|
-
save,
|
|
128
|
-
remove,
|
|
129
|
-
refresh
|
|
130
|
-
};
|
|
131
|
-
}, [reports, loading, load, save, remove, refresh]);
|
|
132
|
-
}
|
|
1
|
+
import { useSavedReports } from "@multiplatform.one/frappe-ui";
|
|
133
2
|
export { useSavedReports };
|
|
134
3
|
//# sourceMappingURL=savedReports.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useFrappeConfig","useCallback","useEffect","useMemo","useRef","useState","useFrappeApp","toDeskReportSettings","fromDeskReportSettings","useSavedReports","doctype","app","config","fixtureMode","Boolean","fixtures","reports","setReports","loading","setLoading","generation","setGeneration","memoryConfigs","Map","current","cancelled","call","get","filters","JSON","stringify","fields","limit_page_length","order_by","then","res","_ref","_res_payload","rows","payload","message","map","row","name","reportName","report_name","json","catch","load","summary","find","report","_res_payload_message","fieldname","parse","unused","save","viewConfig","trimmed","trim","Error","set","previous","filter","post","report_settings","value","remove","delete","refresh"],"sources":["savedReports.native.js"],"sourcesContent":["import { useFrappeConfig } from \"@multiplatform.one/frappe-ui\";\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useFrappeApp } from \"../shared/useFrappeApp\";\nimport { toDeskReportSettings, fromDeskReportSettings } from \"./reportViewModel\";\nfunction useSavedReports(doctype) {\n var app = useFrappeApp();\n var config = useFrappeConfig();\n var fixtureMode = Boolean(config === null || config === void 0 ? void 0 : config.fixtures);\n var [reports, setReports] = useState([]);\n var [loading, setLoading] = useState(false);\n var [generation, setGeneration] = useState(0);\n var memoryConfigs = useRef(/* @__PURE__ */ new Map());\n useEffect(function() {\n memoryConfigs.current = /* @__PURE__ */ new Map();\n setReports([]);\n }, [\n doctype\n ]);\n useEffect(function() {\n if (!app || fixtureMode) return;\n var cancelled = false;\n setLoading(true);\n app.call().get(\"frappe.client.get_list\", {\n doctype: \"Report\",\n filters: JSON.stringify([\n [\n \"ref_doctype\",\n \"=\",\n doctype\n ],\n [\n \"report_type\",\n \"=\",\n \"Report Builder\"\n ],\n [\n \"disabled\",\n \"=\",\n 0\n ]\n ]),\n fields: JSON.stringify([\n \"name\",\n \"report_name\",\n \"json\"\n ]),\n limit_page_length: 0,\n order_by: \"report_name asc\"\n }).then(function(res) {\n var _ref;\n var _res_payload;\n if (cancelled) return;\n var rows = (_ref = (_res_payload = res.payload) === null || _res_payload === void 0 ? void 0 : _res_payload.message) !== null && _ref !== void 0 ? _ref : [];\n setReports(rows.map(function(row) {\n return {\n name: row.name,\n reportName: row.report_name || row.name,\n json: row.json\n };\n }));\n setLoading(false);\n }).catch(function() {\n if (cancelled) return;\n setReports([]);\n setLoading(false);\n });\n return function() {\n cancelled = true;\n };\n }, [\n app,\n fixtureMode,\n doctype,\n generation\n ]);\n var load = useCallback(async function(name) {\n if (fixtureMode) return memoryConfigs.current.get(name);\n var summary = reports.find(function(report) {\n return report.name === name;\n });\n var json = summary === null || summary === void 0 ? void 0 : summary.json;\n if (json === void 0 && app) {\n var _res_payload_message, _res_payload;\n var res = await app.call().get(\"frappe.client.get_value\", {\n doctype: \"Report\",\n filters: JSON.stringify({\n name\n }),\n fieldname: JSON.stringify([\n \"json\"\n ])\n });\n json = (_res_payload = res.payload) === null || _res_payload === void 0 ? void 0 : (_res_payload_message = _res_payload.message) === null || _res_payload_message === void 0 ? void 0 : _res_payload_message.json;\n }\n if (!json) return void 0;\n try {\n return fromDeskReportSettings(doctype, JSON.parse(json));\n } catch (unused) {\n return void 0;\n }\n }, [\n app,\n fixtureMode,\n reports,\n doctype\n ]);\n var save = useCallback(async function(name, viewConfig) {\n var _ref;\n var _res_payload;\n var trimmed = name.trim();\n if (!trimmed) throw new Error(\"Report name is required\");\n if (fixtureMode || !app) {\n memoryConfigs.current.set(trimmed, viewConfig);\n setReports(function(previous) {\n return [\n ...previous.filter(function(report) {\n return report.name !== trimmed;\n }),\n {\n name: trimmed,\n reportName: trimmed\n }\n ];\n });\n return trimmed;\n }\n var res = await app.call().post(\"frappe.desk.reportview.save_report\", {\n name: trimmed,\n doctype,\n report_settings: JSON.stringify(toDeskReportSettings(doctype, viewConfig))\n });\n setGeneration(function(value) {\n return value + 1;\n });\n return (_ref = (_res_payload = res.payload) === null || _res_payload === void 0 ? void 0 : _res_payload.message) !== null && _ref !== void 0 ? _ref : trimmed;\n }, [\n app,\n fixtureMode,\n doctype\n ]);\n var remove = useCallback(async function(name) {\n if (fixtureMode || !app) {\n memoryConfigs.current.delete(name);\n setReports(function(previous) {\n return previous.filter(function(report) {\n return report.name !== name;\n });\n });\n return;\n }\n await app.call().post(\"frappe.desk.reportview.delete_report\", {\n name\n });\n setGeneration(function(value) {\n return value + 1;\n });\n }, [\n app,\n fixtureMode,\n doctype\n ]);\n var refresh = useCallback(function() {\n return setGeneration(function(value) {\n return value + 1;\n });\n }, []);\n return useMemo(function() {\n return {\n reports,\n loading,\n load,\n save,\n remove,\n refresh\n };\n }, [\n reports,\n loading,\n load,\n save,\n remove,\n refresh\n ]);\n}\nexport {\n useSavedReports\n};\n//# sourceMappingURL=savedReports.js.map\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useSavedReports"],"sources":["../../../src/report/savedReports.ts"],"sourcesContent":[null],"mappings":"AAEA,SAASA,eAAA,QAAuB","ignoreList":[]}
|
|
@@ -1,211 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
import { buildRunFilters, defaultFilterValues, extractScriptFilters, humanizeFrappeError, isEmptyFilterValue, normalizeFilterMeta, normalizeQueryReportColumns, normalizeQueryReportRows } from "./reportShapes.mjs";
|
|
4
|
-
import { buildRunFilters as buildRunFilters2, compactQueryReportFilters, defaultFilterValues as defaultFilterValues2, extractScriptFilters as extractScriptFilters2, isEmptyFilterValue as isEmptyFilterValue2, normalizeQueryReportColumns as normalizeQueryReportColumns2, normalizeQueryReportRows as normalizeQueryReportRows2, scrubFieldname, stripHtml } from "./reportShapes.mjs";
|
|
5
|
-
const RUN_METHOD = "frappe.desk.query_report.run";
|
|
6
|
-
const SCRIPT_METHOD = "frappe.desk.query_report.get_script";
|
|
7
|
-
async function fetchReportMeta(app, reportName) {
|
|
8
|
-
const res = await app.call().get("frappe.client.get", {
|
|
9
|
-
doctype: "Report",
|
|
10
|
-
name: reportName
|
|
11
|
-
});
|
|
12
|
-
const doc = res.payload?.message;
|
|
13
|
-
if (!doc) throw new Error(`Report "${reportName}" not found`);
|
|
14
|
-
return doc;
|
|
15
|
-
}
|
|
16
|
-
async function fetchReportScript(app, reportName) {
|
|
17
|
-
const res = await app.call().get(SCRIPT_METHOD, {
|
|
18
|
-
report_name: reportName
|
|
19
|
-
});
|
|
20
|
-
const script = res.payload?.message?.script;
|
|
21
|
-
return typeof script === "string" ? script : void 0;
|
|
22
|
-
}
|
|
23
|
-
function useQueryReport(reportName, options = {}) {
|
|
24
|
-
const {
|
|
25
|
-
fixture
|
|
26
|
-
} = options;
|
|
27
|
-
const app = useFrappeApp();
|
|
28
|
-
const initialFiltersRef = useRef(options.initialFilters);
|
|
29
|
-
initialFiltersRef.current = options.initialFilters;
|
|
30
|
-
const [meta, setMeta] = useState(void 0);
|
|
31
|
-
const [script, setScript] = useState(void 0);
|
|
32
|
-
const [sourcesSettled, setSourcesSettled] = useState(false);
|
|
33
|
-
const [filters, setFiltersState] = useState(() => ({
|
|
34
|
-
...initialFiltersRef.current
|
|
35
|
-
}));
|
|
36
|
-
const [columns, setColumns] = useState([]);
|
|
37
|
-
const [rows, setRows] = useState([]);
|
|
38
|
-
const [loading, setLoading] = useState(true);
|
|
39
|
-
const [running, setRunning] = useState(false);
|
|
40
|
-
const [error, setError] = useState(void 0);
|
|
41
|
-
const [serverMessage, setServerMessage] = useState(void 0);
|
|
42
|
-
const [executionTime, setExecutionTime] = useState(void 0);
|
|
43
|
-
const [generation, setGeneration] = useState(0);
|
|
44
|
-
const seededFor = useRef(void 0);
|
|
45
|
-
const lastReport = useRef(reportName);
|
|
46
|
-
useEffect(() => {
|
|
47
|
-
if (lastReport.current === reportName) return;
|
|
48
|
-
lastReport.current = reportName;
|
|
49
|
-
setFiltersState({
|
|
50
|
-
...initialFiltersRef.current
|
|
51
|
-
});
|
|
52
|
-
setMeta(void 0);
|
|
53
|
-
setScript(void 0);
|
|
54
|
-
setSourcesSettled(false);
|
|
55
|
-
setColumns([]);
|
|
56
|
-
setRows([]);
|
|
57
|
-
setError(void 0);
|
|
58
|
-
setServerMessage(void 0);
|
|
59
|
-
setExecutionTime(void 0);
|
|
60
|
-
setLoading(true);
|
|
61
|
-
}, [reportName]);
|
|
62
|
-
useEffect(() => {
|
|
63
|
-
if (fixture) return;
|
|
64
|
-
if (!app) {
|
|
65
|
-
setSourcesSettled(true);
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
let cancelled = false;
|
|
69
|
-
setSourcesSettled(false);
|
|
70
|
-
Promise.allSettled([fetchReportMeta(app, reportName), fetchReportScript(app, reportName)]).then(([metaResult, scriptResult]) => {
|
|
71
|
-
if (cancelled) return;
|
|
72
|
-
const doc = metaResult.status === "fulfilled" ? metaResult.value : void 0;
|
|
73
|
-
const scriptText = scriptResult.status === "fulfilled" ? scriptResult.value : void 0;
|
|
74
|
-
if (doc) setMeta(doc);
|
|
75
|
-
if (scriptText) setScript(scriptText);
|
|
76
|
-
if (seededFor.current !== reportName) {
|
|
77
|
-
seededFor.current = reportName;
|
|
78
|
-
const extraction = extractScriptFilters(scriptText);
|
|
79
|
-
const merged = extraction.declared ? extraction.filters : normalizeFilterMeta(doc?.filters);
|
|
80
|
-
const defaults = defaultFilterValues(merged);
|
|
81
|
-
if (Object.keys(defaults).length > 0) setFiltersState(previous => ({
|
|
82
|
-
...defaults,
|
|
83
|
-
...previous
|
|
84
|
-
}));
|
|
85
|
-
}
|
|
86
|
-
setSourcesSettled(true);
|
|
87
|
-
});
|
|
88
|
-
return () => {
|
|
89
|
-
cancelled = true;
|
|
90
|
-
};
|
|
91
|
-
}, [app, fixture, reportName]);
|
|
92
|
-
const scriptExtraction = useMemo(() => extractScriptFilters(fixture ? fixture.script : script), [fixture, script]);
|
|
93
|
-
const docFilterMeta = useMemo(() => normalizeFilterMeta(fixture ? fixture.meta?.filters : meta?.filters), [fixture, meta]);
|
|
94
|
-
const filterMeta = useMemo(() => scriptExtraction.declared ? scriptExtraction.filters : docFilterMeta, [scriptExtraction, docFilterMeta]);
|
|
95
|
-
const scriptFilterGap = scriptExtraction.declaredCount > scriptExtraction.filters.length;
|
|
96
|
-
useEffect(() => {
|
|
97
|
-
if (!fixture) return;
|
|
98
|
-
if (seededFor.current === reportName) return;
|
|
99
|
-
seededFor.current = reportName;
|
|
100
|
-
const defaults = defaultFilterValues(filterMeta);
|
|
101
|
-
if (Object.keys(defaults).length > 0) setFiltersState(previous => ({
|
|
102
|
-
...defaults,
|
|
103
|
-
...previous
|
|
104
|
-
}));
|
|
105
|
-
}, [fixture, reportName, filterMeta]);
|
|
106
|
-
const missingRequired = useMemo(() => filterMeta.filter(filter => filter.mandatory === 1 && isEmptyFilterValue(filters[filter.fieldname])), [filterMeta, filters]);
|
|
107
|
-
const hasMissingRequired = missingRequired.length > 0;
|
|
108
|
-
const metaDisabled = (fixture ? fixture.meta?.disabled : meta?.disabled) === 1;
|
|
109
|
-
useEffect(() => {
|
|
110
|
-
if (fixture) return;
|
|
111
|
-
if (!sourcesSettled) return;
|
|
112
|
-
if (metaDisabled) {
|
|
113
|
-
setLoading(false);
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
116
|
-
if (hasMissingRequired) {
|
|
117
|
-
setColumns([]);
|
|
118
|
-
setRows([]);
|
|
119
|
-
setError(void 0);
|
|
120
|
-
setLoading(false);
|
|
121
|
-
return;
|
|
122
|
-
}
|
|
123
|
-
if (!app) {
|
|
124
|
-
setError(new Error("No Frappe connection configured"));
|
|
125
|
-
setLoading(false);
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
128
|
-
let cancelled = false;
|
|
129
|
-
setRunning(true);
|
|
130
|
-
app.call().post(RUN_METHOD, {
|
|
131
|
-
report_name: reportName,
|
|
132
|
-
filters: buildRunFilters(filterMeta, filters),
|
|
133
|
-
ignore_prepared_report: 1
|
|
134
|
-
}).then(res => {
|
|
135
|
-
if (cancelled) return;
|
|
136
|
-
const message = res.payload?.message;
|
|
137
|
-
const nextColumns = normalizeQueryReportColumns(message?.columns);
|
|
138
|
-
setColumns(nextColumns);
|
|
139
|
-
setRows(normalizeQueryReportRows(message?.result, nextColumns));
|
|
140
|
-
setServerMessage(typeof message?.message === "string" ? message.message : void 0);
|
|
141
|
-
setExecutionTime(typeof message?.execution_time === "number" ? message.execution_time : void 0);
|
|
142
|
-
setError(void 0);
|
|
143
|
-
}).catch(err => {
|
|
144
|
-
if (cancelled) return;
|
|
145
|
-
setColumns([]);
|
|
146
|
-
setRows([]);
|
|
147
|
-
setError(humanizeFrappeError(err));
|
|
148
|
-
}).finally(() => {
|
|
149
|
-
if (cancelled) return;
|
|
150
|
-
setRunning(false);
|
|
151
|
-
setLoading(false);
|
|
152
|
-
});
|
|
153
|
-
return () => {
|
|
154
|
-
cancelled = true;
|
|
155
|
-
};
|
|
156
|
-
}, [app, fixture, reportName, filters, filterMeta, generation, sourcesSettled, metaDisabled, hasMissingRequired]);
|
|
157
|
-
const setFilters = useCallback(next => {
|
|
158
|
-
setFiltersState(next);
|
|
159
|
-
}, []);
|
|
160
|
-
const reload = useCallback(() => {
|
|
161
|
-
setGeneration(previous => previous + 1);
|
|
162
|
-
}, []);
|
|
163
|
-
const fixtureResult = useMemo(() => {
|
|
164
|
-
if (!fixture) return void 0;
|
|
165
|
-
const fixtureColumns = normalizeQueryReportColumns(fixture.columns);
|
|
166
|
-
return {
|
|
167
|
-
columns: fixtureColumns,
|
|
168
|
-
rows: normalizeQueryReportRows(fixture.rows, fixtureColumns),
|
|
169
|
-
meta: fixture.meta ? {
|
|
170
|
-
name: reportName,
|
|
171
|
-
...fixture.meta
|
|
172
|
-
} : void 0
|
|
173
|
-
};
|
|
174
|
-
}, [fixture, reportName]);
|
|
175
|
-
if (fixtureResult) {
|
|
176
|
-
return {
|
|
177
|
-
meta: fixtureResult.meta,
|
|
178
|
-
columns: fixtureResult.columns,
|
|
179
|
-
rows: hasMissingRequired ? [] : fixtureResult.rows,
|
|
180
|
-
loading: false,
|
|
181
|
-
running: false,
|
|
182
|
-
error: void 0,
|
|
183
|
-
serverMessage: fixture?.message,
|
|
184
|
-
executionTime: void 0,
|
|
185
|
-
filterMeta,
|
|
186
|
-
scriptFilterGap,
|
|
187
|
-
missingRequired,
|
|
188
|
-
filters,
|
|
189
|
-
setFilters,
|
|
190
|
-
reload
|
|
191
|
-
};
|
|
192
|
-
}
|
|
193
|
-
return {
|
|
194
|
-
meta,
|
|
195
|
-
columns,
|
|
196
|
-
rows,
|
|
197
|
-
loading,
|
|
198
|
-
running,
|
|
199
|
-
error,
|
|
200
|
-
serverMessage,
|
|
201
|
-
executionTime,
|
|
202
|
-
filterMeta,
|
|
203
|
-
scriptFilterGap,
|
|
204
|
-
missingRequired,
|
|
205
|
-
filters,
|
|
206
|
-
setFilters,
|
|
207
|
-
reload
|
|
208
|
-
};
|
|
209
|
-
}
|
|
210
|
-
export { buildRunFilters2 as buildRunFilters, compactQueryReportFilters, defaultFilterValues2 as defaultFilterValues, extractScriptFilters2 as extractScriptFilters, isEmptyFilterValue2 as isEmptyFilterValue, normalizeQueryReportColumns2 as normalizeQueryReportColumns, normalizeQueryReportRows2 as normalizeQueryReportRows, scrubFieldname, stripHtml, useQueryReport };
|
|
1
|
+
import { buildRunFilters, compactQueryReportFilters, defaultFilterValues, extractScriptFilters, isEmptyFilterValue, normalizeQueryReportColumns, normalizeQueryReportRows, scrubFieldname, stripReportHtml, useQueryReport } from "@multiplatform.one/frappe-ui";
|
|
2
|
+
export { buildRunFilters, compactQueryReportFilters, defaultFilterValues, extractScriptFilters, isEmptyFilterValue, normalizeQueryReportColumns, normalizeQueryReportRows, scrubFieldname, stripReportHtml as stripHtml, useQueryReport };
|
|
211
3
|
//# sourceMappingURL=useQueryReport.mjs.map
|