@multiplatform.one/backoffice 7.28.1 → 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.
Files changed (269) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/desk/DeskSurface.native.js.map +1 -1
  3. package/dist/cjs/form/DocFormScreen.cjs +167 -224
  4. package/dist/cjs/form/DocFormScreen.native.js +182 -259
  5. package/dist/cjs/form/DocFormScreen.native.js.map +1 -1
  6. package/dist/cjs/i18n/en.cjs +1 -0
  7. package/dist/cjs/i18n/en.native.js +1 -0
  8. package/dist/cjs/i18n/en.native.js.map +1 -1
  9. package/dist/cjs/list/ListBulkActionsBar.cjs +30 -18
  10. package/dist/cjs/list/ListBulkActionsBar.native.js +43 -31
  11. package/dist/cjs/list/ListBulkActionsBar.native.js.map +1 -1
  12. package/dist/cjs/list/sidebar-section.cjs +15 -7
  13. package/dist/cjs/list/sidebar-section.native.js +16 -7
  14. package/dist/cjs/list/sidebar-section.native.js.map +1 -1
  15. package/dist/cjs/report/DoctypeReportView.cjs +20 -374
  16. package/dist/cjs/report/DoctypeReportView.native.js +23 -455
  17. package/dist/cjs/report/DoctypeReportView.native.js.map +1 -1
  18. package/dist/cjs/report/QueryReportScreen.cjs +33 -23
  19. package/dist/cjs/report/QueryReportScreen.native.js +33 -23
  20. package/dist/cjs/report/QueryReportScreen.native.js.map +1 -1
  21. package/dist/cjs/report/queryReportColumns.cjs +3 -105
  22. package/dist/cjs/report/queryReportColumns.native.js +2 -129
  23. package/dist/cjs/report/queryReportColumns.native.js.map +1 -1
  24. package/dist/cjs/report/queryReportFilterBar.cjs +3 -4
  25. package/dist/cjs/report/queryReportFilterBar.native.js +3 -4
  26. package/dist/cjs/report/queryReportFilterBar.native.js.map +1 -1
  27. package/dist/cjs/report/queryReportUrlState.cjs +2 -2
  28. package/dist/cjs/report/queryReportUrlState.native.js +2 -2
  29. package/dist/cjs/report/queryReportUrlState.native.js.map +1 -1
  30. package/dist/cjs/report/report-grid.cjs +2 -426
  31. package/dist/cjs/report/report-grid.native.js +1 -479
  32. package/dist/cjs/report/report-grid.native.js.map +1 -1
  33. package/dist/cjs/report/report-toolbar.cjs +2 -228
  34. package/dist/cjs/report/report-toolbar.native.js +1 -274
  35. package/dist/cjs/report/report-toolbar.native.js.map +1 -1
  36. package/dist/cjs/report/reportShapes.cjs +12 -383
  37. package/dist/cjs/report/reportShapes.native.js +12 -501
  38. package/dist/cjs/report/reportShapes.native.js.map +1 -1
  39. package/dist/cjs/report/reportViewModel.cjs +20 -360
  40. package/dist/cjs/report/reportViewModel.native.js +19 -627
  41. package/dist/cjs/report/reportViewModel.native.js.map +1 -1
  42. package/dist/cjs/report/savedReports.cjs +2 -106
  43. package/dist/cjs/report/savedReports.native.js +1 -132
  44. package/dist/cjs/report/savedReports.native.js.map +1 -1
  45. package/dist/cjs/report/useQueryReport.cjs +11 -219
  46. package/dist/cjs/report/useQueryReport.native.js +11 -244
  47. package/dist/cjs/report/useQueryReport.native.js.map +1 -1
  48. package/dist/cjs/shared/measures.cjs +3 -5
  49. package/dist/cjs/shared/measures.native.js +3 -5
  50. package/dist/cjs/shared/measures.native.js.map +1 -1
  51. package/dist/cjs/views/ReportView.cjs +3 -256
  52. package/dist/cjs/views/ReportView.native.js +3 -382
  53. package/dist/cjs/views/ReportView.native.js.map +1 -1
  54. package/dist/cjs/views/report-controls.cjs +6 -6
  55. package/dist/cjs/views/report-controls.native.js +6 -6
  56. package/dist/cjs/views/report-controls.native.js.map +1 -1
  57. package/dist/esm/desk/DeskSurface.mjs.map +1 -1
  58. package/dist/esm/desk/DeskSurface.native.js.map +1 -1
  59. package/dist/esm/form/DocFormScreen.mjs +169 -226
  60. package/dist/esm/form/DocFormScreen.mjs.map +1 -1
  61. package/dist/esm/form/DocFormScreen.native.js +184 -261
  62. package/dist/esm/form/DocFormScreen.native.js.map +1 -1
  63. package/dist/esm/i18n/en.mjs +1 -0
  64. package/dist/esm/i18n/en.mjs.map +1 -1
  65. package/dist/esm/i18n/en.native.js +1 -0
  66. package/dist/esm/i18n/en.native.js.map +1 -1
  67. package/dist/esm/list/ListBulkActionsBar.mjs +31 -19
  68. package/dist/esm/list/ListBulkActionsBar.mjs.map +1 -1
  69. package/dist/esm/list/ListBulkActionsBar.native.js +37 -25
  70. package/dist/esm/list/ListBulkActionsBar.native.js.map +1 -1
  71. package/dist/esm/list/sidebar-section.mjs +16 -8
  72. package/dist/esm/list/sidebar-section.mjs.map +1 -1
  73. package/dist/esm/list/sidebar-section.native.js +17 -8
  74. package/dist/esm/list/sidebar-section.native.js.map +1 -1
  75. package/dist/esm/report/DoctypeReportView.mjs +21 -375
  76. package/dist/esm/report/DoctypeReportView.mjs.map +1 -1
  77. package/dist/esm/report/DoctypeReportView.native.js +24 -456
  78. package/dist/esm/report/DoctypeReportView.native.js.map +1 -1
  79. package/dist/esm/report/QueryReportScreen.mjs +26 -16
  80. package/dist/esm/report/QueryReportScreen.mjs.map +1 -1
  81. package/dist/esm/report/QueryReportScreen.native.js +26 -16
  82. package/dist/esm/report/QueryReportScreen.native.js.map +1 -1
  83. package/dist/esm/report/queryReportColumns.mjs +1 -103
  84. package/dist/esm/report/queryReportColumns.mjs.map +1 -1
  85. package/dist/esm/report/queryReportColumns.native.js +1 -117
  86. package/dist/esm/report/queryReportColumns.native.js.map +1 -1
  87. package/dist/esm/report/queryReportFilterBar.mjs +1 -2
  88. package/dist/esm/report/queryReportFilterBar.mjs.map +1 -1
  89. package/dist/esm/report/queryReportFilterBar.native.js +1 -2
  90. package/dist/esm/report/queryReportFilterBar.native.js.map +1 -1
  91. package/dist/esm/report/queryReportUrlState.mjs +1 -1
  92. package/dist/esm/report/queryReportUrlState.native.js +1 -1
  93. package/dist/esm/report/report-grid.mjs +1 -425
  94. package/dist/esm/report/report-grid.mjs.map +1 -1
  95. package/dist/esm/report/report-grid.native.js +1 -468
  96. package/dist/esm/report/report-grid.native.js.map +1 -1
  97. package/dist/esm/report/report-toolbar.mjs +2 -228
  98. package/dist/esm/report/report-toolbar.mjs.map +1 -1
  99. package/dist/esm/report/report-toolbar.native.js +2 -264
  100. package/dist/esm/report/report-toolbar.native.js.map +1 -1
  101. package/dist/esm/report/reportShapes.mjs +2 -373
  102. package/dist/esm/report/reportShapes.mjs.map +1 -1
  103. package/dist/esm/report/reportShapes.native.js +2 -491
  104. package/dist/esm/report/reportShapes.native.js.map +1 -1
  105. package/dist/esm/report/reportViewModel.mjs +2 -342
  106. package/dist/esm/report/reportViewModel.mjs.map +1 -1
  107. package/dist/esm/report/reportViewModel.native.js +2 -610
  108. package/dist/esm/report/reportViewModel.native.js.map +1 -1
  109. package/dist/esm/report/savedReports.mjs +1 -105
  110. package/dist/esm/report/savedReports.mjs.map +1 -1
  111. package/dist/esm/report/savedReports.native.js +1 -132
  112. package/dist/esm/report/savedReports.native.js.map +1 -1
  113. package/dist/esm/report/useQueryReport.mjs +2 -210
  114. package/dist/esm/report/useQueryReport.mjs.map +1 -1
  115. package/dist/esm/report/useQueryReport.native.js +2 -235
  116. package/dist/esm/report/useQueryReport.native.js.map +1 -1
  117. package/dist/esm/shared/measures.mjs +1 -3
  118. package/dist/esm/shared/measures.mjs.map +1 -1
  119. package/dist/esm/shared/measures.native.js +1 -3
  120. package/dist/esm/shared/measures.native.js.map +1 -1
  121. package/dist/esm/views/ReportView.mjs +3 -256
  122. package/dist/esm/views/ReportView.mjs.map +1 -1
  123. package/dist/esm/views/ReportView.native.js +3 -382
  124. package/dist/esm/views/ReportView.native.js.map +1 -1
  125. package/dist/esm/views/report-controls.mjs +3 -3
  126. package/dist/esm/views/report-controls.mjs.map +1 -1
  127. package/dist/esm/views/report-controls.native.js +3 -3
  128. package/dist/esm/views/report-controls.native.js.map +1 -1
  129. package/dist/jsx/desk/DeskSurface.mjs.map +1 -1
  130. package/dist/jsx/desk/DeskSurface.native.js.map +1 -1
  131. package/dist/jsx/form/DocFormScreen.mjs +169 -226
  132. package/dist/jsx/form/DocFormScreen.mjs.map +1 -1
  133. package/dist/jsx/form/DocFormScreen.native.js +182 -259
  134. package/dist/jsx/form/DocFormScreen.native.js.map +1 -1
  135. package/dist/jsx/i18n/en.mjs +1 -0
  136. package/dist/jsx/i18n/en.mjs.map +1 -1
  137. package/dist/jsx/i18n/en.native.js +1 -0
  138. package/dist/jsx/i18n/en.native.js.map +1 -1
  139. package/dist/jsx/list/ListBulkActionsBar.mjs +31 -19
  140. package/dist/jsx/list/ListBulkActionsBar.mjs.map +1 -1
  141. package/dist/jsx/list/ListBulkActionsBar.native.js +43 -31
  142. package/dist/jsx/list/ListBulkActionsBar.native.js.map +1 -1
  143. package/dist/jsx/list/sidebar-section.mjs +16 -8
  144. package/dist/jsx/list/sidebar-section.mjs.map +1 -1
  145. package/dist/jsx/list/sidebar-section.native.js +16 -7
  146. package/dist/jsx/list/sidebar-section.native.js.map +1 -1
  147. package/dist/jsx/report/DoctypeReportView.mjs +21 -375
  148. package/dist/jsx/report/DoctypeReportView.mjs.map +1 -1
  149. package/dist/jsx/report/DoctypeReportView.native.js +23 -455
  150. package/dist/jsx/report/DoctypeReportView.native.js.map +1 -1
  151. package/dist/jsx/report/QueryReportScreen.mjs +26 -16
  152. package/dist/jsx/report/QueryReportScreen.mjs.map +1 -1
  153. package/dist/jsx/report/QueryReportScreen.native.js +33 -23
  154. package/dist/jsx/report/QueryReportScreen.native.js.map +1 -1
  155. package/dist/jsx/report/queryReportColumns.mjs +1 -103
  156. package/dist/jsx/report/queryReportColumns.mjs.map +1 -1
  157. package/dist/jsx/report/queryReportColumns.native.js +2 -129
  158. package/dist/jsx/report/queryReportColumns.native.js.map +1 -1
  159. package/dist/jsx/report/queryReportFilterBar.mjs +1 -2
  160. package/dist/jsx/report/queryReportFilterBar.mjs.map +1 -1
  161. package/dist/jsx/report/queryReportFilterBar.native.js +3 -4
  162. package/dist/jsx/report/queryReportFilterBar.native.js.map +1 -1
  163. package/dist/jsx/report/queryReportUrlState.mjs +1 -1
  164. package/dist/jsx/report/queryReportUrlState.native.js +2 -2
  165. package/dist/jsx/report/queryReportUrlState.native.js.map +1 -1
  166. package/dist/jsx/report/report-grid.mjs +1 -425
  167. package/dist/jsx/report/report-grid.mjs.map +1 -1
  168. package/dist/jsx/report/report-grid.native.js +1 -479
  169. package/dist/jsx/report/report-grid.native.js.map +1 -1
  170. package/dist/jsx/report/report-toolbar.mjs +2 -228
  171. package/dist/jsx/report/report-toolbar.mjs.map +1 -1
  172. package/dist/jsx/report/report-toolbar.native.js +1 -274
  173. package/dist/jsx/report/report-toolbar.native.js.map +1 -1
  174. package/dist/jsx/report/reportShapes.mjs +2 -373
  175. package/dist/jsx/report/reportShapes.mjs.map +1 -1
  176. package/dist/jsx/report/reportShapes.native.js +12 -501
  177. package/dist/jsx/report/reportShapes.native.js.map +1 -1
  178. package/dist/jsx/report/reportViewModel.mjs +2 -342
  179. package/dist/jsx/report/reportViewModel.mjs.map +1 -1
  180. package/dist/jsx/report/reportViewModel.native.js +19 -627
  181. package/dist/jsx/report/reportViewModel.native.js.map +1 -1
  182. package/dist/jsx/report/savedReports.mjs +1 -105
  183. package/dist/jsx/report/savedReports.mjs.map +1 -1
  184. package/dist/jsx/report/savedReports.native.js +1 -132
  185. package/dist/jsx/report/savedReports.native.js.map +1 -1
  186. package/dist/jsx/report/useQueryReport.mjs +2 -210
  187. package/dist/jsx/report/useQueryReport.mjs.map +1 -1
  188. package/dist/jsx/report/useQueryReport.native.js +11 -244
  189. package/dist/jsx/report/useQueryReport.native.js.map +1 -1
  190. package/dist/jsx/shared/measures.mjs +1 -3
  191. package/dist/jsx/shared/measures.mjs.map +1 -1
  192. package/dist/jsx/shared/measures.native.js +3 -5
  193. package/dist/jsx/shared/measures.native.js.map +1 -1
  194. package/dist/jsx/views/ReportView.mjs +3 -256
  195. package/dist/jsx/views/ReportView.mjs.map +1 -1
  196. package/dist/jsx/views/ReportView.native.js +3 -382
  197. package/dist/jsx/views/ReportView.native.js.map +1 -1
  198. package/dist/jsx/views/report-controls.mjs +3 -3
  199. package/dist/jsx/views/report-controls.mjs.map +1 -1
  200. package/dist/jsx/views/report-controls.native.js +6 -6
  201. package/dist/jsx/views/report-controls.native.js.map +1 -1
  202. package/package.json +12 -12
  203. package/src/backofficeScreens.designLaw.spec.ts +0 -5
  204. package/src/desk/DeskSurface.tsx +4 -7
  205. package/src/form/DocFormScreen.chrome.spec.ts +77 -0
  206. package/src/form/DocFormScreen.guest.screen.spec.tsx +175 -0
  207. package/src/form/DocFormScreen.rights.spec.tsx +7 -3
  208. package/src/form/DocFormScreen.tsx +214 -315
  209. package/src/i18n/en.ts +1 -0
  210. package/src/list/ListBulkActionsBar.rights.spec.tsx +134 -0
  211. package/src/list/ListBulkActionsBar.screen.spec.tsx +7 -1
  212. package/src/list/ListBulkActionsBar.tsx +76 -57
  213. package/src/list/ListFilterBar.screen.spec.tsx +14 -13
  214. package/src/list/sidebar-section.tsx +11 -3
  215. package/src/report/DoctypeReportView.tsx +28 -550
  216. package/src/report/QueryReportScreen.spec.tsx +75 -1
  217. package/src/report/QueryReportScreen.tsx +38 -22
  218. package/src/report/queryReportColumns.tsx +4 -123
  219. package/src/report/queryReportFilterBar.tsx +3 -5
  220. package/src/report/queryReportUrlState.ts +1 -1
  221. package/src/report/report-grid.tsx +4 -529
  222. package/src/report/report-toolbar.tsx +4 -308
  223. package/src/report/reportShapes.ts +25 -613
  224. package/src/report/reportShim.spec.ts +162 -0
  225. package/src/report/reportViewModel.ts +32 -605
  226. package/src/report/savedReports.ts +4 -161
  227. package/src/report/useQueryReport.ts +9 -347
  228. package/src/shared/measures.ts +3 -11
  229. package/src/views/ReportView.screen.spec.tsx +25 -20
  230. package/src/views/ReportView.tsx +7 -439
  231. package/src/views/report-controls.tsx +12 -20
  232. package/types/desk/DeskSurface.d.ts.map +1 -1
  233. package/types/form/DocFormScreen.d.ts +2 -2
  234. package/types/form/DocFormScreen.d.ts.map +1 -1
  235. package/types/i18n/en.d.ts +1 -0
  236. package/types/i18n/en.d.ts.map +1 -1
  237. package/types/list/ListBulkActionsBar.d.ts.map +1 -1
  238. package/types/list/sidebar-section.d.ts.map +1 -1
  239. package/types/report/DoctypeReportView.d.ts.map +1 -1
  240. package/types/report/QueryReportScreen.d.ts +1 -1
  241. package/types/report/QueryReportScreen.d.ts.map +1 -1
  242. package/types/report/queryReportColumns.d.ts +2 -11
  243. package/types/report/queryReportColumns.d.ts.map +1 -1
  244. package/types/report/queryReportFilterBar.d.ts +1 -1
  245. package/types/report/queryReportFilterBar.d.ts.map +1 -1
  246. package/types/report/queryReportUrlState.d.ts +1 -1
  247. package/types/report/queryReportUrlState.d.ts.map +1 -1
  248. package/types/report/report-grid.d.ts +2 -19
  249. package/types/report/report-grid.d.ts.map +1 -1
  250. package/types/report/report-toolbar.d.ts +2 -29
  251. package/types/report/report-toolbar.d.ts.map +1 -1
  252. package/types/report/reportShapes.d.ts +2 -115
  253. package/types/report/reportShapes.d.ts.map +1 -1
  254. package/types/report/reportViewModel.d.ts +2 -135
  255. package/types/report/reportViewModel.d.ts.map +1 -1
  256. package/types/report/savedReports.d.ts +2 -18
  257. package/types/report/savedReports.d.ts.map +1 -1
  258. package/types/report/useQueryReport.d.ts +2 -35
  259. package/types/report/useQueryReport.d.ts.map +1 -1
  260. package/types/shared/measures.d.ts +1 -2
  261. package/types/shared/measures.d.ts.map +1 -1
  262. package/types/views/ReportView.d.ts +3 -22
  263. package/types/views/ReportView.d.ts.map +1 -1
  264. package/types/views/report-controls.d.ts +2 -5
  265. package/types/views/report-controls.d.ts.map +1 -1
  266. package/src/report/report-grid.spec.tsx +0 -175
  267. package/src/report/report-toolbar.spec.tsx +0 -90
  268. package/src/report/reportShapes.spec.ts +0 -391
  269. package/src/report/reportViewModel.spec.ts +0 -393
@@ -39,81 +39,24 @@ __export(DoctypeReportView_exports, {
39
39
  });
40
40
  module.exports = __toCommonJS(DoctypeReportView_exports);
41
41
  var import_jsx_runtime = require("react/jsx-runtime");
42
- var import_components = require("@multiplatform.one/components");
43
- var import_forms = require("@multiplatform.one/forms");
44
- var import_frappe = require("@multiplatform.one/frappe");
45
- var import_platform = require("@multiplatform.one/platform");
46
- var import_store = require("@multiplatform.one/store");
47
- var import_table = require("@multiplatform.one/table");
42
+ var import_frappe_ui = require("@multiplatform.one/frappe-ui");
48
43
  var import_react = __toESM(require("react"));
49
- var import_react_i18next = require("react-i18next");
50
44
  var import_BackofficeProvider = require("../config/BackofficeProvider.native.js");
51
- var import_i18n = require("../i18n/index.native.js");
52
45
  var import_scope = require("../desk/scope.native.js");
53
- var import_useDoctypeMeta = require("../shared/useDoctypeMeta.native.js");
54
- var import_connection = require("../views/connection.native.js");
55
46
  var import_ViewStates = require("../views/ViewStates.native.js");
56
- var import_report_grid = require("./report-grid.native.js");
57
- var import_report_toolbar = require("./report-toolbar.native.js");
58
- var import_savedReports = require("./savedReports.native.js");
59
- var import_reportViewModel = require("./reportViewModel.native.js");
60
- function _instanceof(left, right) {
61
- "@swc/helpers - instanceof";
62
-
63
- if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
64
- return !!right[Symbol.hasInstance](left);
65
- } else {
66
- return left instanceof right;
67
- }
68
- }
69
- var EMPTY_FILTERS = [];
70
- var COLUMN_FILTER_DEBOUNCE_MS = 350;
71
- function columnsStorageKey(doctype) {
72
- return `backoffice.report.columns.${doctype}`;
73
- }
74
- async function readStoredColumns(doctype) {
75
- try {
76
- var raw = await Promise.resolve(import_store.storage.getItem(columnsStorageKey(doctype)));
77
- if (!raw) return void 0;
78
- var parsed = JSON.parse(raw);
79
- if (Array.isArray(parsed) && parsed.every(function (entry) {
80
- return typeof entry === "string";
81
- })) {
82
- return parsed;
83
- }
84
- } catch (unused) {}
85
- return void 0;
86
- }
87
- function persistStoredColumns(doctype, fieldnames) {
88
- try {
89
- void Promise.resolve(import_store.storage.setItem(columnsStorageKey(doctype), JSON.stringify(fieldnames)));
90
- } catch (unused) {}
91
- }
92
47
  function DoctypeReportView(param) {
93
48
  var {
94
49
  doctype,
95
50
  filtersParam,
96
51
  initialFilters
97
52
  } = param;
98
- var _ref, _ref1, _ref2;
99
53
  var _params_report;
100
- var {
101
- t
102
- } = (0, import_react_i18next.useTranslation)(import_i18n.BACKOFFICE_I18N_NAMESPACE);
103
54
  var deskScope = (0, import_scope.useDeskScope)();
104
55
  var navigator = (0, import_BackofficeProvider.useBackofficeNavigator)();
105
56
  var paths = (0, import_BackofficeProvider.useBackofficePaths)();
106
57
  var {
107
58
  params
108
59
  } = (0, import_BackofficeProvider.useBackofficeLocation)();
109
- var connection = (0, import_connection.useViewConnection)();
110
- var fixtureMode = Boolean(connection === null || connection === void 0 ? void 0 : connection.fixtures);
111
- var {
112
- meta,
113
- loading: metaLoading,
114
- error: metaError
115
- } = (0, import_useDoctypeMeta.useDoctypeMeta)(doctype);
116
- var savedReports = (0, import_savedReports.useSavedReports)(doctype);
117
60
  var rawReportParam = typeof params.report === "string" ? params.report : (_params_report = params.report) === null || _params_report === void 0 ? void 0 : _params_report[0];
118
61
  var currentReport = (0, import_react.useMemo)(function () {
119
62
  if (!rawReportParam) return null;
@@ -123,412 +66,37 @@ function DoctypeReportView(param) {
123
66
  return rawReportParam;
124
67
  }
125
68
  }, [rawReportParam]);
126
- var allColumns = (0, import_react.useMemo)(function () {
127
- return (0, import_reportViewModel.reportColumnsFromMeta)(meta);
128
- }, [meta]);
129
- var defaultFieldnames = (0, import_react.useMemo)(function () {
130
- return (0, import_reportViewModel.defaultReportFieldnames)(meta);
131
- }, [meta]);
132
- var [storedColumns, setStoredColumns] = (0, import_react.useState)(void 0);
133
- var [selectedOverride, setSelectedOverride] = (0, import_react.useState)(null);
134
- (0, import_react.useEffect)(function () {
135
- if (fixtureMode) return;
136
- var cancelled = false;
137
- void readStoredColumns(doctype).then(function (stored) {
138
- if (!cancelled) setStoredColumns(stored);
139
- });
140
- return function () {
141
- cancelled = true;
142
- };
143
- }, [doctype, fixtureMode]);
144
- var selectedFieldnames = (_ref = selectedOverride !== null && selectedOverride !== void 0 ? selectedOverride : storedColumns) !== null && _ref !== void 0 ? _ref : defaultFieldnames;
145
- var selectedColumns = (0, import_react.useMemo)(function () {
146
- return (0, import_reportViewModel.resolveSelectedColumns)(allColumns, selectedFieldnames);
147
- }, [allColumns, selectedFieldnames]);
148
69
  var urlFilters = (0, import_react.useMemo)(function () {
149
- return (0, import_reportViewModel.parseReportFiltersParam)(filtersParam);
70
+ return (0, import_frappe_ui.parseReportFiltersParam)(filtersParam);
150
71
  }, [filtersParam]);
151
- var [filtersCleared, setFiltersCleared] = (0, import_react.useState)(false);
152
- var [reportFilters, setReportFilters] = (0, import_react.useState)(null);
153
- var baseFilters = filtersCleared ? EMPTY_FILTERS : (_ref1 = (_ref2 = reportFilters !== null && reportFilters !== void 0 ? reportFilters : urlFilters) !== null && _ref2 !== void 0 ? _ref2 : initialFilters) !== null && _ref1 !== void 0 ? _ref1 : EMPTY_FILTERS;
154
- var [filterDrafts, setFilterDrafts] = (0, import_react.useState)({});
155
- var [committedFilters, setCommittedFilters] = (0, import_react.useState)({});
156
- (0, import_react.useEffect)(function () {
157
- var handle = setTimeout(function () {
158
- setCommittedFilters(function (previous) {
159
- return JSON.stringify(previous) === JSON.stringify(filterDrafts) ? previous : filterDrafts;
160
- });
161
- }, COLUMN_FILTER_DEBOUNCE_MS);
162
- return function () {
163
- return clearTimeout(handle);
164
- };
165
- }, [filterDrafts]);
166
- var columnTuples = (0, import_react.useMemo)(function () {
167
- return (0, import_reportViewModel.columnFilterTuples)(selectedColumns, committedFilters);
168
- }, [selectedColumns, committedFilters]);
169
- var effectiveFilters = (0, import_react.useMemo)(function () {
170
- return [...deskScope, ...baseFilters, ...columnTuples];
171
- }, [deskScope, baseFilters, columnTuples]);
172
- var metaSort = (0, import_react.useMemo)(function () {
173
- return {
174
- field: ((meta === null || meta === void 0 ? void 0 : meta.sort_field) || "modified").split(" ")[0],
175
- order: ((meta === null || meta === void 0 ? void 0 : meta.sort_order) || "DESC").toLowerCase() === "asc" ? "asc" : "desc"
176
- };
177
- }, [meta === null || meta === void 0 ? void 0 : meta.sort_field, meta === null || meta === void 0 ? void 0 : meta.sort_order]);
178
- var [sortOverride, setSortOverride] = (0, import_react.useState)(null);
179
- var sort = sortOverride !== null && sortOverride !== void 0 ? sortOverride : metaSort;
180
- var [groupBy, setGroupBy] = (0, import_react.useState)(null);
181
- var [pageSize, setPageSize] = (0, import_react.useState)(import_reportViewModel.DEFAULT_REPORT_PAGE_SIZE);
182
- var [page, setPage] = (0, import_react.useState)(0);
183
- (0, import_react.useEffect)(function () {
184
- setSelectedOverride(null);
185
- setStoredColumns(void 0);
186
- setSortOverride(null);
187
- setGroupBy(null);
188
- setPage(0);
189
- setPageSize(import_reportViewModel.DEFAULT_REPORT_PAGE_SIZE);
190
- setFilterDrafts({});
191
- setCommittedFilters({});
192
- setFiltersCleared(false);
193
- setReportFilters(null);
194
- }, [doctype]);
195
- (0, import_react.useEffect)(function () {
196
- return setFiltersCleared(false);
197
- }, [filtersParam]);
198
- var filtersKey = (0, import_react.useMemo)(function () {
199
- return JSON.stringify(effectiveFilters);
200
- }, [effectiveFilters]);
201
- (0, import_react.useEffect)(function () {
202
- setPage(0);
203
- }, [filtersKey, pageSize, groupBy]);
204
- (0, import_react.useEffect)(function () {
205
- if (!currentReport) {
206
- setReportFilters(null);
207
- return;
208
- }
209
- var cancelled = false;
210
- void savedReports.load(currentReport).then(function (config) {
211
- var _config_groupBy;
212
- if (cancelled || !config) return;
213
- setSelectedOverride(config.fieldnames.length > 0 ? config.fieldnames : null);
214
- setReportFilters(config.filters);
215
- setFilterDrafts({});
216
- setCommittedFilters({});
217
- setFiltersCleared(false);
218
- if (config.sort) setSortOverride(config.sort);
219
- if (config.pageSize && import_reportViewModel.REPORT_PAGE_SIZES.some(function (size) {
220
- return size === config.pageSize;
221
- })) {
222
- setPageSize(config.pageSize);
223
- }
224
- setGroupBy((_config_groupBy = config.groupBy) !== null && _config_groupBy !== void 0 ? _config_groupBy : null);
225
- });
226
- return function () {
227
- cancelled = true;
228
- };
229
- },
230
- // savedReports.load changes identity with its report list; reloading the
231
- // config on list refreshes would clobber in-progress edits — key on the
232
- // selected report (and doctype via load's closure) only.
233
- // eslint-disable-next-line react-hooks/exhaustive-deps
234
- [currentReport, doctype]);
235
- var handleToggleColumn = (0, import_react.useCallback)(function (fieldname) {
236
- setSelectedOverride(function (previous) {
237
- var _ref3;
238
- var current = (_ref3 = previous !== null && previous !== void 0 ? previous : storedColumns) !== null && _ref3 !== void 0 ? _ref3 : defaultFieldnames;
239
- var next = current.includes(fieldname) ? current.length === 1 ? current : current.filter(function (entry) {
240
- return entry !== fieldname;
241
- }) : [...current, fieldname];
242
- if (!fixtureMode && !currentReport) persistStoredColumns(doctype, next);
243
- return next;
244
- });
245
- }, [storedColumns, defaultFieldnames, fixtureMode, currentReport, doctype]);
246
- var handleResetColumns = (0, import_react.useCallback)(function () {
247
- setSelectedOverride(defaultFieldnames);
248
- setStoredColumns(void 0);
249
- if (!fixtureMode) persistStoredColumns(doctype, defaultFieldnames);
250
- }, [defaultFieldnames, fixtureMode, doctype]);
251
- var fetchFields = (0, import_react.useMemo)(function () {
252
- var fields = /* @__PURE__ */new Set(["name", sort.field]);
253
- var _iteratorNormalCompletion = true,
254
- _didIteratorError = false,
255
- _iteratorError = void 0;
256
- try {
257
- for (var _iterator = selectedColumns[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
258
- var column = _step.value;
259
- fields.add(column.fieldname);
260
- }
261
- } catch (err) {
262
- _didIteratorError = true;
263
- _iteratorError = err;
264
- } finally {
265
- try {
266
- if (!_iteratorNormalCompletion && _iterator.return != null) {
267
- _iterator.return();
268
- }
269
- } finally {
270
- if (_didIteratorError) {
271
- throw _iteratorError;
272
- }
273
- }
274
- }
275
- if (groupBy) fields.add(groupBy);
276
- return [...fields];
277
- }, [selectedColumns, sort.field, groupBy]);
278
- var [syncError, setSyncError] = (0, import_react.useState)(null);
279
- var handleSyncError = (0, import_react.useCallback)(function (error) {
280
- setSyncError(_instanceof(error, Error) ? error : new Error(String(error)));
281
- }, []);
282
- var [retryGen, setRetryGen] = (0, import_react.useState)(0);
283
- var collectionConfig = (0, import_react.useMemo)(function () {
284
- return connection && meta && retryGen >= 0 ? connection : void 0;
285
- }, [connection, meta, retryGen]);
286
- var collection = (0, import_frappe.useFrappeCollection)(collectionConfig, doctype, {
287
- fields: fetchFields,
288
- filters: effectiveFilters,
289
- orderBy: {
290
- field: sort.field,
291
- order: sort.order === "asc" ? import_frappe.Order.Asc : import_frappe.Order.Desc
292
- },
293
- onSyncError: handleSyncError
294
- });
295
- (0, import_react.useEffect)(function () {
296
- return setSyncError(null);
297
- }, [collection]);
298
- var {
299
- data: rowsData,
300
- isLoading: rowsLoading
301
- } = (0, import_frappe.useLiveQuery)(function (q) {
302
- return collection ? q.from({
303
- _report: collection
304
- }) : null;
305
- }, [collection]);
306
- var orderedRows = (0, import_react.useMemo)(function () {
307
- return (0, import_reportViewModel.orderReportRows)(rowsData !== null && rowsData !== void 0 ? rowsData : [], sort, groupBy);
308
- }, [rowsData, sort, groupBy]);
309
- var total = orderedRows.length;
310
- var pageCount = Math.max(1, Math.ceil(total / pageSize));
311
- var effectivePage = Math.min(page, pageCount - 1);
312
- var gridRows = (0, import_react.useMemo)(function () {
313
- return (0, import_reportViewModel.buildGridRows)(orderedRows, effectivePage * pageSize, pageSize, groupBy);
314
- }, [orderedRows, effectivePage, pageSize, groupBy]);
315
- var totals = (0, import_react.useMemo)(function () {
316
- return (0, import_reportViewModel.computeTotals)(selectedColumns, orderedRows);
317
- }, [selectedColumns, orderedRows]);
318
- var groupByColumn = groupBy ? allColumns.find(function (column) {
319
- return column.fieldname === groupBy;
320
- }) : void 0;
321
- var handleOpenRow = (0, import_react.useCallback)(function (name) {
322
- return navigator.navigate(paths.form(doctype, name));
323
- }, [navigator, paths, doctype]);
324
- var handleOpenLink = (0, import_react.useCallback)(function (targetDoctype, name) {
72
+ var openForm = (0, import_react.useCallback)(function (targetDoctype, name) {
325
73
  return navigator.navigate(paths.form(targetDoctype, name));
326
74
  }, [navigator, paths]);
327
- var handleSelectReport = (0, import_react.useCallback)(function (name) {
75
+ var selectReport = (0, import_react.useCallback)(function (name) {
328
76
  var base = paths.view(doctype, "report");
329
77
  navigator.replace(name ? `${base}?report=${encodeURIComponent(name)}` : base);
330
- if (!name) {
331
- setReportFilters(null);
332
- setSelectedOverride(null);
333
- setSortOverride(null);
334
- setGroupBy(null);
335
- }
336
78
  }, [navigator, paths, doctype]);
337
- var handleClearBaseFilters = (0, import_react.useCallback)(function () {
338
- setFiltersCleared(true);
339
- if (urlFilters && !reportFilters) navigator.replace(paths.view(doctype, "report"));
340
- }, [urlFilters, reportFilters, navigator, paths, doctype]);
341
- var handleSaveReport = (0, import_react.useCallback)(function (name) {
342
- void savedReports.save(name, {
343
- fieldnames: [...selectedFieldnames],
344
- filters: effectiveFilters,
345
- sort,
346
- pageSize,
347
- groupBy,
348
- addTotals: totals.length > 0
349
- }).then(function (savedName) {
350
- (0, import_components.notify)({
351
- severity: "success",
352
- scope: "page",
353
- body: t("report.saveDone", {
354
- defaultValue: "Saved report \u201C{{name}}\u201D",
355
- name: savedName
356
- })
357
- });
358
- if (savedName !== currentReport) handleSelectReport(savedName);
359
- }).catch(function (error) {
360
- (0, import_components.notify)({
361
- severity: "error",
362
- scope: "page",
363
- body: _instanceof(error, Error) ? error.message : t("report.saveFailed", "Could not save the report")
364
- });
365
- });
366
- }, [savedReports, selectedFieldnames, effectiveFilters, sort, pageSize, groupBy, totals.length, currentReport, handleSelectReport, t]);
367
- var handleDeleteReport = (0, import_react.useCallback)(function (name) {
368
- void savedReports.remove(name).then(function () {
369
- (0, import_components.notify)({
370
- severity: "success",
371
- scope: "page",
372
- body: t("report.deleteDone", {
373
- defaultValue: "Deleted report \u201C{{name}}\u201D",
374
- name
375
- })
376
- });
377
- if (name === currentReport) handleSelectReport(null);
378
- }).catch(function (error) {
379
- (0, import_components.notify)({
380
- severity: "error",
381
- scope: "page",
382
- body: _instanceof(error, Error) ? error.message : t("report.deleteFailed", "Could not delete the report")
383
- });
384
- });
385
- }, [savedReports, currentReport, handleSelectReport, t]);
386
- var handleExport = (0, import_react.useCallback)(function () {
387
- if (!import_components.isWeb) {
388
- (0, import_components.notify)({
389
- severity: "warning",
390
- scope: "page",
391
- body: t("report.exportUnsupported", "CSV export needs a browser download \u2014 not available on this platform yet")
79
+ var clearUrlFilters = (0, import_react.useCallback)(function () {
80
+ if (urlFilters) navigator.replace(paths.view(doctype, "report"));
81
+ }, [urlFilters, navigator, paths, doctype]);
82
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_frappe_ui.FrappeReportBuilder, {
83
+ doctype,
84
+ filters: urlFilters !== null && urlFilters !== void 0 ? urlFilters : initialFilters,
85
+ scopeFilters: deskScope,
86
+ onClearFilters: clearUrlFilters,
87
+ report: currentReport,
88
+ onReportChange: selectReport,
89
+ onOpenRow: function onOpenRow(name) {
90
+ return openForm(doctype, name);
91
+ },
92
+ onOpenLink: openForm,
93
+ loading: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_ViewStates.ViewLoading, {}),
94
+ error: function error(error) {
95
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_ViewStates.ViewError, {
96
+ doctype,
97
+ error
392
98
  });
393
- return;
394
99
  }
395
- (0, import_platform.downloadBlob)(new Blob([(0, import_reportViewModel.buildReportCsv)(selectedColumns, orderedRows)], {
396
- type: "text/csv;charset=utf-8;"
397
- }), `${doctype}_report.csv`);
398
- (0, import_components.notify)({
399
- severity: "success",
400
- scope: "page",
401
- body: t("report.exportDone", {
402
- count: orderedRows.length,
403
- defaultValue_one: "Exported {{count}} row to CSV",
404
- defaultValue_other: "Exported {{count}} rows to CSV"
405
- })
406
- });
407
- }, [selectedColumns, orderedRows, doctype, t]);
408
- var handleColumnFilterChange = (0, import_react.useCallback)(function (fieldname, value) {
409
- setFilterDrafts(function (previous) {
410
- if (value === "") {
411
- if (!(fieldname in previous)) return previous;
412
- var {
413
- [fieldname]: _dropped,
414
- ...rest
415
- } = previous;
416
- return rest;
417
- }
418
- return {
419
- ...previous,
420
- [fieldname]: value
421
- };
422
- });
423
- }, []);
424
- var handleClearColumnFilters = (0, import_react.useCallback)(function () {
425
- setFilterDrafts({});
426
- setCommittedFilters({});
427
- }, []);
428
- var activeColumnFilterCount = columnTuples.length;
429
- if (metaLoading && !meta) return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_ViewStates.ViewLoading, {});
430
- if (metaError && !meta) return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_ViewStates.ViewError, {
431
- doctype,
432
- error: metaError
433
- });
434
- var body;
435
- if (syncError) {
436
- body = /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.EmptyState, {
437
- intent: "error",
438
- title: t("report.loadFailed", "Couldn't load report rows"),
439
- description: syncError.message,
440
- action: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
441
- size: "$3",
442
- onPress: function onPress() {
443
- setSyncError(null);
444
- setRetryGen(function (generation) {
445
- return generation + 1;
446
- });
447
- },
448
- children: t("report.retry", "Retry")
449
- })
450
- });
451
- } else if (rowsLoading && total === 0) {
452
- body = /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_ViewStates.ViewLoading, {});
453
- } else if (total === 0) {
454
- var hasFilters = effectiveFilters.length > 0;
455
- body = /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.EmptyState, {
456
- title: t("report.emptyTitle", "No results"),
457
- description: hasFilters ? t("report.emptyFiltered", "No rows match the current filters") : t("report.emptyDescription", {
458
- defaultValue: "There are no {{doctype}} records yet",
459
- doctype
460
- }),
461
- action: hasFilters ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
462
- size: "$3",
463
- onPress: function onPress() {
464
- handleClearColumnFilters();
465
- handleClearBaseFilters();
466
- },
467
- children: t("report.clearAllFilters", "Clear all filters")
468
- }) : void 0
469
- });
470
- } else {
471
- body = /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_report_grid.ReportGrid, {
472
- columns: selectedColumns,
473
- rows: gridRows,
474
- sort,
475
- onSortChange: setSortOverride,
476
- columnFilters: filterDrafts,
477
- onColumnFilterChange: handleColumnFilterChange,
478
- onOpenRow: handleOpenRow,
479
- onOpenLink: handleOpenLink,
480
- totals,
481
- groupByColumn
482
- });
483
- }
484
- var content = /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_components.YStack, {
485
- flex: 1,
486
- minWidth: 0,
487
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_report_toolbar.ReportToolbar, {
488
- columns: allColumns,
489
- selected: selectedFieldnames,
490
- onToggleColumn: handleToggleColumn,
491
- onResetColumns: handleResetColumns,
492
- groupBy,
493
- onGroupByChange: setGroupBy,
494
- baseFilters,
495
- onClearBaseFilters: baseFilters.length > 0 ? handleClearBaseFilters : void 0,
496
- columnFilterCount: activeColumnFilterCount,
497
- onClearColumnFilters: handleClearColumnFilters,
498
- savedReports: savedReports.reports,
499
- currentReport,
500
- onSelectReport: handleSelectReport,
501
- onSaveReport: handleSaveReport,
502
- onDeleteReport: handleDeleteReport,
503
- onExport: handleExport,
504
- exportDisabled: total === 0
505
- }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.YStack, {
506
- flex: 1,
507
- minWidth: 0,
508
- paddingHorizontal: "$3",
509
- children: body
510
- }), total > 0 && !syncError && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.YStack, {
511
- paddingHorizontal: "$3",
512
- paddingVertical: "$2",
513
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table.DataTablePagination, {
514
- pagination: {
515
- pageIndex: effectivePage,
516
- pageSize,
517
- totalCount: total,
518
- totalPages: pageCount
519
- },
520
- onPaginationChange: function onPaginationChange(next) {
521
- setPage(next.pageIndex);
522
- setPageSize(next.pageSize);
523
- },
524
- pageSizeOptions: [...import_reportViewModel.REPORT_PAGE_SIZES],
525
- compact: true
526
- })
527
- })]
528
- });
529
- return import_components.isWeb ? content : /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.ScrollView, {
530
- flex: 1,
531
- children: content
532
100
  });
533
101
  }
534
102
  //# sourceMappingURL=DoctypeReportView.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["__create","Object","create","__defProp","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__getProtoOf","getPrototypeOf","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toESM","mod","isNodeMode","__esModule","value","__toCommonJS","DoctypeReportView_exports","DoctypeReportView","module","exports","import_jsx_runtime","require","import_components","import_forms","import_frappe","import_platform","import_store","import_table","import_react","import_react_i18next","import_BackofficeProvider","import_i18n","import_scope","import_useDoctypeMeta","import_connection","import_ViewStates","import_report_grid","import_report_toolbar","import_savedReports","import_reportViewModel","_instanceof","left","right","Symbol","hasInstance","EMPTY_FILTERS","COLUMN_FILTER_DEBOUNCE_MS","columnsStorageKey","doctype","readStoredColumns","raw","Promise","resolve","storage","getItem","parsed","JSON","parse","Array","isArray","every","entry","unused","persistStoredColumns","fieldnames","setItem","stringify","param","filtersParam","initialFilters","_ref","_ref1","_ref2","_params_report","t","useTranslation","BACKOFFICE_I18N_NAMESPACE","deskScope","useDeskScope","navigator","useBackofficeNavigator","paths","useBackofficePaths","params","useBackofficeLocation","connection","useViewConnection","fixtureMode","Boolean","fixtures","meta","loading","metaLoading","error","metaError","useDoctypeMeta","savedReports","useSavedReports","rawReportParam","report","currentReport","useMemo","decodeURIComponent","allColumns","reportColumnsFromMeta","defaultFieldnames","defaultReportFieldnames","storedColumns","setStoredColumns","useState","selectedOverride","setSelectedOverride","useEffect","cancelled","then","stored","selectedFieldnames","selectedColumns","resolveSelectedColumns","urlFilters","parseReportFiltersParam","filtersCleared","setFiltersCleared","reportFilters","setReportFilters","baseFilters","filterDrafts","setFilterDrafts","committedFilters","setCommittedFilters","handle","setTimeout","previous","clearTimeout","columnTuples","columnFilterTuples","effectiveFilters","metaSort","field","sort_field","split","order","sort_order","toLowerCase","sortOverride","setSortOverride","sort","groupBy","setGroupBy","pageSize","setPageSize","DEFAULT_REPORT_PAGE_SIZE","page","setPage","filtersKey","load","config","_config_groupBy","length","filters","REPORT_PAGE_SIZES","some","size","handleToggleColumn","useCallback","fieldname","_ref3","current","next","includes","filter","handleResetColumns","fetchFields","fields","Set","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","done","column","add","err","return","syncError","setSyncError","handleSyncError","Error","String","retryGen","setRetryGen","collectionConfig","collection","useFrappeCollection","orderBy","Order","Asc","Desc","onSyncError","data","rowsData","isLoading","rowsLoading","useLiveQuery","q","_report","orderedRows","orderReportRows","total","pageCount","Math","max","ceil","effectivePage","min","gridRows","buildGridRows","totals","computeTotals","groupByColumn","find","handleOpenRow","navigate","form","handleOpenLink","targetDoctype","handleSelectReport","base","view","replace","encodeURIComponent","handleClearBaseFilters","handleSaveReport","save","addTotals","savedName","notify","severity","scope","body","defaultValue","catch","message","handleDeleteReport","remove"],"sources":["../../../src/report/DoctypeReportView.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__create","Object","create","__defProp","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__getProtoOf","getPrototypeOf","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toESM","mod","isNodeMode","__esModule","value","__toCommonJS","DoctypeReportView_exports","DoctypeReportView","module","exports","import_jsx_runtime","require","import_frappe_ui","import_react","import_BackofficeProvider","import_scope","import_ViewStates","param","doctype","filtersParam","initialFilters","_params_report","deskScope","useDeskScope","navigator","useBackofficeNavigator","paths","useBackofficePaths","params","useBackofficeLocation","rawReportParam","report","currentReport","useMemo","decodeURIComponent","unused","urlFilters","parseReportFiltersParam"],"sources":["../../../src/report/DoctypeReportView.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -6,12 +6,11 @@ import { DownloadSimpleIcon } from "@phosphor-icons/react";
6
6
  import { useCallback, useEffect, useMemo, useRef } from "react";
7
7
  import { useTranslation } from "react-i18next";
8
8
  import { useBackofficeLocation, useBackofficeNavigator, useBackofficePaths } from "../config/BackofficeProvider.mjs";
9
+ import { buildQueryReportColumns, buildQueryReportCsv, defaultFilterValues, isEmptyFilterValue, scrubFieldname, stripReportHtml as stripHtml, useQueryReport } from "@multiplatform.one/frappe-ui";
9
10
  import { BACKOFFICE_I18N_NAMESPACE } from "../i18n/index.mjs";
10
- import { buildQueryReportColumns, buildQueryReportCsv } from "./queryReportColumns.mjs";
11
11
  import { QueryReportFilterBar, queryReportFilterLabel } from "./queryReportFilterBar.mjs";
12
12
  import { parseQueryReportFiltersParam, serializeQueryReportFiltersParam } from "./queryReportUrlState.mjs";
13
- import { defaultFilterValues, isEmptyFilterValue, scrubFieldname, stripHtml, useQueryReport } from "./useQueryReport.mjs";
14
- import { jsx, jsxs } from "react/jsx-runtime";
13
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
15
14
  const PAGE_SIZES = [20, 100, 500];
16
15
  function QueryReportScreen({
17
16
  reportName,
@@ -139,6 +138,15 @@ function QueryReportScreen({
139
138
  }),
140
139
  description: t("queryReport.disabledDescription", "Enable the report from its Report document to run it")
141
140
  });
141
+ } else if (report.error && report.refused) {
142
+ body = /* @__PURE__ */jsx(EmptyState, {
143
+ testID: "frappe-report-not-permitted",
144
+ title: t("queryReport.notPermitted", {
145
+ defaultValue: `You can't run "{{report}}"`,
146
+ report: title
147
+ }),
148
+ description: report.error.message
149
+ });
142
150
  } else if (report.error) {
143
151
  body = /* @__PURE__ */jsxs(YStack, {
144
152
  flex: 1,
@@ -218,19 +226,21 @@ function QueryReportScreen({
218
226
  alignItems: "center",
219
227
  children: [report.running && !report.loading ? /* @__PURE__ */jsx(Spinner, {
220
228
  size: "small"
221
- }) : null, /* @__PURE__ */jsx(Button, {
222
- size: "$2",
223
- chromeless: true,
224
- onPress: report.reload,
225
- disabled: report.loading,
226
- children: t("queryReport.refresh", "Refresh")
227
- }), /* @__PURE__ */jsx(Button, {
228
- size: "$2",
229
- chromeless: true,
230
- icon: DownloadSimpleIcon,
231
- onPress: handleExport,
232
- disabled: report.loading || report.rows.length === 0,
233
- children: t("queryReport.exportCsv", "Export CSV")
229
+ }) : null, report.refused ? null : /* @__PURE__ */jsxs(Fragment, {
230
+ children: [/* @__PURE__ */jsx(Button, {
231
+ size: "$2",
232
+ chromeless: true,
233
+ onPress: report.reload,
234
+ disabled: report.loading,
235
+ children: t("queryReport.refresh", "Refresh")
236
+ }), /* @__PURE__ */jsx(Button, {
237
+ size: "$2",
238
+ chromeless: true,
239
+ icon: DownloadSimpleIcon,
240
+ onPress: handleExport,
241
+ disabled: report.loading || report.rows.length === 0,
242
+ children: t("queryReport.exportCsv", "Export CSV")
243
+ })]
234
244
  })]
235
245
  })
236
246
  }), report.serverMessage ? /* @__PURE__ */jsx(Text, {