@multiplatform.one/frappe-ui 7.28.1 → 7.29.1

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 (325) hide show
  1. package/dist/cjs/FrappeCalendar.cjs +3 -2
  2. package/dist/cjs/FrappeCalendar.native.js +3 -2
  3. package/dist/cjs/FrappeCalendar.native.js.map +1 -1
  4. package/dist/cjs/FrappeForm.cjs +148 -464
  5. package/dist/cjs/FrappeForm.native.js +152 -633
  6. package/dist/cjs/FrappeForm.native.js.map +1 -1
  7. package/dist/cjs/FrappeListView.cjs +5 -27
  8. package/dist/cjs/FrappeListView.native.js +11 -32
  9. package/dist/cjs/FrappeListView.native.js.map +1 -1
  10. package/dist/cjs/FrappeReportBuilder.cjs +523 -309
  11. package/dist/cjs/FrappeReportBuilder.native.js +658 -353
  12. package/dist/cjs/FrappeReportBuilder.native.js.map +1 -1
  13. package/dist/cjs/FrappeReportView.cjs +35 -234
  14. package/dist/cjs/FrappeReportView.native.js +39 -283
  15. package/dist/cjs/FrappeReportView.native.js.map +1 -1
  16. package/dist/cjs/dependsOn.cjs +2 -2
  17. package/dist/cjs/dependsOn.native.js +1 -2
  18. package/dist/cjs/dependsOn.native.js.map +1 -1
  19. package/dist/cjs/fields/shared/EditorPreviewPanes.cjs +2 -2
  20. package/dist/cjs/fields/shared/EditorPreviewPanes.native.js +2 -2
  21. package/dist/cjs/fields/shared/EditorPreviewPanes.native.js.map +1 -1
  22. package/dist/cjs/formEngine/docPermissions.cjs +20 -0
  23. package/dist/cjs/formEngine/docPermissions.native.js +69 -0
  24. package/dist/cjs/formEngine/docPermissions.native.js.map +1 -1
  25. package/dist/cjs/formEngine/index.cjs +2 -0
  26. package/dist/cjs/formEngine/index.native.js +2 -0
  27. package/dist/cjs/formEngine/index.native.js.map +1 -1
  28. package/dist/cjs/index.cjs +67 -7
  29. package/dist/cjs/index.native.js +67 -7
  30. package/dist/cjs/index.native.js.map +1 -1
  31. package/dist/cjs/liveErrors.cjs +8 -2
  32. package/dist/cjs/liveErrors.native.js +8 -2
  33. package/dist/cjs/liveErrors.native.js.map +1 -1
  34. package/dist/cjs/measures.cjs +31 -0
  35. package/dist/cjs/measures.native.js +34 -0
  36. package/dist/cjs/measures.native.js.map +1 -0
  37. package/dist/cjs/recordShape.cjs +103 -0
  38. package/dist/cjs/recordShape.native.js +115 -0
  39. package/dist/cjs/recordShape.native.js.map +1 -0
  40. package/dist/cjs/report/ReportGrid.cjs +453 -0
  41. package/dist/cjs/report/ReportGrid.native.js +510 -0
  42. package/dist/cjs/report/ReportGrid.native.js.map +1 -0
  43. package/dist/cjs/report/ReportViewToolbar.cjs +253 -0
  44. package/dist/cjs/report/ReportViewToolbar.native.js +303 -0
  45. package/dist/cjs/report/ReportViewToolbar.native.js.map +1 -0
  46. package/dist/cjs/report/queryReport.cjs +444 -0
  47. package/dist/cjs/report/queryReport.native.js +588 -0
  48. package/dist/cjs/report/queryReport.native.js.map +1 -0
  49. package/dist/cjs/report/queryReportColumns.cjs +131 -0
  50. package/dist/cjs/report/queryReportColumns.native.js +159 -0
  51. package/dist/cjs/report/queryReportColumns.native.js.map +1 -0
  52. package/dist/cjs/report/reportViewModel.cjs +386 -0
  53. package/dist/cjs/report/reportViewModel.native.js +657 -0
  54. package/dist/cjs/report/reportViewModel.native.js.map +1 -0
  55. package/dist/cjs/report/savedReports.cjs +137 -0
  56. package/dist/cjs/report/savedReports.native.js +169 -0
  57. package/dist/cjs/report/savedReports.native.js.map +1 -0
  58. package/dist/cjs/report/useFrappeReport.cjs +184 -0
  59. package/dist/cjs/report/useFrappeReport.native.js +214 -0
  60. package/dist/cjs/report/useFrappeReport.native.js.map +1 -0
  61. package/dist/cjs/report/useQueryReport.cjs +201 -0
  62. package/dist/cjs/report/useQueryReport.native.js +233 -0
  63. package/dist/cjs/report/useQueryReport.native.js.map +1 -0
  64. package/dist/cjs/useFrappeForm.cjs +558 -0
  65. package/dist/cjs/useFrappeForm.native.js +714 -0
  66. package/dist/cjs/useFrappeForm.native.js.map +1 -0
  67. package/dist/esm/FrappeCalendar.mjs +4 -3
  68. package/dist/esm/FrappeCalendar.mjs.map +1 -1
  69. package/dist/esm/FrappeCalendar.native.js +4 -3
  70. package/dist/esm/FrappeCalendar.native.js.map +1 -1
  71. package/dist/esm/FrappeForm.mjs +151 -467
  72. package/dist/esm/FrappeForm.mjs.map +1 -1
  73. package/dist/esm/FrappeForm.native.js +155 -636
  74. package/dist/esm/FrappeForm.native.js.map +1 -1
  75. package/dist/esm/FrappeListView.mjs +6 -28
  76. package/dist/esm/FrappeListView.mjs.map +1 -1
  77. package/dist/esm/FrappeListView.native.js +12 -33
  78. package/dist/esm/FrappeListView.native.js.map +1 -1
  79. package/dist/esm/FrappeReportBuilder.mjs +526 -312
  80. package/dist/esm/FrappeReportBuilder.mjs.map +1 -1
  81. package/dist/esm/FrappeReportBuilder.native.js +661 -356
  82. package/dist/esm/FrappeReportBuilder.native.js.map +1 -1
  83. package/dist/esm/FrappeReportView.mjs +30 -229
  84. package/dist/esm/FrappeReportView.mjs.map +1 -1
  85. package/dist/esm/FrappeReportView.native.js +34 -278
  86. package/dist/esm/FrappeReportView.native.js.map +1 -1
  87. package/dist/esm/dependsOn.mjs +2 -2
  88. package/dist/esm/dependsOn.mjs.map +1 -1
  89. package/dist/esm/dependsOn.native.js +1 -2
  90. package/dist/esm/dependsOn.native.js.map +1 -1
  91. package/dist/esm/fields/shared/EditorPreviewPanes.mjs +2 -2
  92. package/dist/esm/fields/shared/EditorPreviewPanes.mjs.map +1 -1
  93. package/dist/esm/fields/shared/EditorPreviewPanes.native.js +2 -2
  94. package/dist/esm/fields/shared/EditorPreviewPanes.native.js.map +1 -1
  95. package/dist/esm/formEngine/docPermissions.mjs +19 -1
  96. package/dist/esm/formEngine/docPermissions.mjs.map +1 -1
  97. package/dist/esm/formEngine/docPermissions.native.js +68 -1
  98. package/dist/esm/formEngine/docPermissions.native.js.map +1 -1
  99. package/dist/esm/formEngine/index.mjs +2 -2
  100. package/dist/esm/formEngine/index.mjs.map +1 -1
  101. package/dist/esm/formEngine/index.native.js +2 -2
  102. package/dist/esm/formEngine/index.native.js.map +1 -1
  103. package/dist/esm/index.mjs +16 -4
  104. package/dist/esm/index.mjs.map +1 -1
  105. package/dist/esm/index.native.js +16 -4
  106. package/dist/esm/index.native.js.map +1 -1
  107. package/dist/esm/liveErrors.mjs +8 -3
  108. package/dist/esm/liveErrors.mjs.map +1 -1
  109. package/dist/esm/liveErrors.native.js +8 -3
  110. package/dist/esm/liveErrors.native.js.map +1 -1
  111. package/dist/esm/measures.mjs +5 -0
  112. package/dist/esm/measures.mjs.map +1 -0
  113. package/dist/esm/measures.native.js +5 -0
  114. package/dist/esm/measures.native.js.map +1 -0
  115. package/dist/esm/recordShape.mjs +74 -0
  116. package/dist/esm/recordShape.mjs.map +1 -0
  117. package/dist/esm/recordShape.native.js +83 -0
  118. package/dist/esm/recordShape.native.js.map +1 -0
  119. package/dist/esm/report/ReportGrid.mjs +428 -0
  120. package/dist/esm/report/ReportGrid.mjs.map +1 -0
  121. package/dist/esm/report/ReportGrid.native.js +471 -0
  122. package/dist/esm/report/ReportGrid.native.js.map +1 -0
  123. package/dist/esm/report/ReportViewToolbar.mjs +228 -0
  124. package/dist/esm/report/ReportViewToolbar.mjs.map +1 -0
  125. package/dist/esm/report/ReportViewToolbar.native.js +264 -0
  126. package/dist/esm/report/ReportViewToolbar.native.js.map +1 -0
  127. package/dist/esm/report/queryReport.mjs +404 -0
  128. package/dist/esm/report/queryReport.mjs.map +1 -0
  129. package/dist/esm/report/queryReport.native.js +545 -0
  130. package/dist/esm/report/queryReport.native.js.map +1 -0
  131. package/dist/esm/report/queryReportColumns.mjs +105 -0
  132. package/dist/esm/report/queryReportColumns.mjs.map +1 -0
  133. package/dist/esm/report/queryReportColumns.native.js +119 -0
  134. package/dist/esm/report/queryReportColumns.native.js.map +1 -0
  135. package/dist/esm/report/reportViewModel.mjs +343 -0
  136. package/dist/esm/report/reportViewModel.mjs.map +1 -0
  137. package/dist/esm/report/reportViewModel.native.js +611 -0
  138. package/dist/esm/report/reportViewModel.native.js.map +1 -0
  139. package/dist/esm/report/savedReports.mjs +112 -0
  140. package/dist/esm/report/savedReports.mjs.map +1 -0
  141. package/dist/esm/report/savedReports.native.js +141 -0
  142. package/dist/esm/report/savedReports.native.js.map +1 -0
  143. package/dist/esm/report/useFrappeReport.mjs +158 -0
  144. package/dist/esm/report/useFrappeReport.mjs.map +1 -0
  145. package/dist/esm/report/useFrappeReport.native.js +185 -0
  146. package/dist/esm/report/useFrappeReport.native.js.map +1 -0
  147. package/dist/esm/report/useQueryReport.mjs +176 -0
  148. package/dist/esm/report/useQueryReport.mjs.map +1 -0
  149. package/dist/esm/report/useQueryReport.native.js +205 -0
  150. package/dist/esm/report/useQueryReport.native.js.map +1 -0
  151. package/dist/esm/useFrappeForm.mjs +533 -0
  152. package/dist/esm/useFrappeForm.mjs.map +1 -0
  153. package/dist/esm/useFrappeForm.native.js +686 -0
  154. package/dist/esm/useFrappeForm.native.js.map +1 -0
  155. package/dist/jsx/FrappeCalendar.mjs +4 -3
  156. package/dist/jsx/FrappeCalendar.mjs.map +1 -1
  157. package/dist/jsx/FrappeCalendar.native.js +3 -2
  158. package/dist/jsx/FrappeCalendar.native.js.map +1 -1
  159. package/dist/jsx/FrappeForm.mjs +151 -467
  160. package/dist/jsx/FrappeForm.mjs.map +1 -1
  161. package/dist/jsx/FrappeForm.native.js +152 -633
  162. package/dist/jsx/FrappeForm.native.js.map +1 -1
  163. package/dist/jsx/FrappeListView.mjs +6 -28
  164. package/dist/jsx/FrappeListView.mjs.map +1 -1
  165. package/dist/jsx/FrappeListView.native.js +11 -32
  166. package/dist/jsx/FrappeListView.native.js.map +1 -1
  167. package/dist/jsx/FrappeReportBuilder.mjs +526 -312
  168. package/dist/jsx/FrappeReportBuilder.mjs.map +1 -1
  169. package/dist/jsx/FrappeReportBuilder.native.js +658 -353
  170. package/dist/jsx/FrappeReportBuilder.native.js.map +1 -1
  171. package/dist/jsx/FrappeReportView.mjs +30 -229
  172. package/dist/jsx/FrappeReportView.mjs.map +1 -1
  173. package/dist/jsx/FrappeReportView.native.js +39 -283
  174. package/dist/jsx/FrappeReportView.native.js.map +1 -1
  175. package/dist/jsx/dependsOn.mjs +2 -2
  176. package/dist/jsx/dependsOn.mjs.map +1 -1
  177. package/dist/jsx/dependsOn.native.js +1 -2
  178. package/dist/jsx/dependsOn.native.js.map +1 -1
  179. package/dist/jsx/fields/shared/EditorPreviewPanes.mjs +2 -2
  180. package/dist/jsx/fields/shared/EditorPreviewPanes.mjs.map +1 -1
  181. package/dist/jsx/fields/shared/EditorPreviewPanes.native.js +2 -2
  182. package/dist/jsx/fields/shared/EditorPreviewPanes.native.js.map +1 -1
  183. package/dist/jsx/formEngine/docPermissions.mjs +19 -1
  184. package/dist/jsx/formEngine/docPermissions.mjs.map +1 -1
  185. package/dist/jsx/formEngine/docPermissions.native.js +69 -0
  186. package/dist/jsx/formEngine/docPermissions.native.js.map +1 -1
  187. package/dist/jsx/formEngine/index.mjs +2 -2
  188. package/dist/jsx/formEngine/index.mjs.map +1 -1
  189. package/dist/jsx/formEngine/index.native.js +2 -0
  190. package/dist/jsx/formEngine/index.native.js.map +1 -1
  191. package/dist/jsx/index.js +16 -4
  192. package/dist/jsx/index.js.map +1 -1
  193. package/dist/jsx/index.mjs +16 -4
  194. package/dist/jsx/index.mjs.map +1 -1
  195. package/dist/jsx/index.native.js +67 -7
  196. package/dist/jsx/index.native.js.map +1 -1
  197. package/dist/jsx/liveErrors.mjs +8 -3
  198. package/dist/jsx/liveErrors.mjs.map +1 -1
  199. package/dist/jsx/liveErrors.native.js +8 -2
  200. package/dist/jsx/liveErrors.native.js.map +1 -1
  201. package/dist/jsx/measures.mjs +5 -0
  202. package/dist/jsx/measures.mjs.map +1 -0
  203. package/dist/jsx/measures.native.js +34 -0
  204. package/dist/jsx/measures.native.js.map +1 -0
  205. package/dist/jsx/recordShape.mjs +74 -0
  206. package/dist/jsx/recordShape.mjs.map +1 -0
  207. package/dist/jsx/recordShape.native.js +115 -0
  208. package/dist/jsx/recordShape.native.js.map +1 -0
  209. package/dist/jsx/report/ReportGrid.mjs +428 -0
  210. package/dist/jsx/report/ReportGrid.mjs.map +1 -0
  211. package/dist/jsx/report/ReportGrid.native.js +510 -0
  212. package/dist/jsx/report/ReportGrid.native.js.map +1 -0
  213. package/dist/jsx/report/ReportViewToolbar.mjs +228 -0
  214. package/dist/jsx/report/ReportViewToolbar.mjs.map +1 -0
  215. package/dist/jsx/report/ReportViewToolbar.native.js +303 -0
  216. package/dist/jsx/report/ReportViewToolbar.native.js.map +1 -0
  217. package/dist/jsx/report/queryReport.mjs +404 -0
  218. package/dist/jsx/report/queryReport.mjs.map +1 -0
  219. package/dist/jsx/report/queryReport.native.js +588 -0
  220. package/dist/jsx/report/queryReport.native.js.map +1 -0
  221. package/dist/jsx/report/queryReportColumns.mjs +105 -0
  222. package/dist/jsx/report/queryReportColumns.mjs.map +1 -0
  223. package/dist/jsx/report/queryReportColumns.native.js +159 -0
  224. package/dist/jsx/report/queryReportColumns.native.js.map +1 -0
  225. package/dist/jsx/report/reportViewModel.mjs +343 -0
  226. package/dist/jsx/report/reportViewModel.mjs.map +1 -0
  227. package/dist/jsx/report/reportViewModel.native.js +657 -0
  228. package/dist/jsx/report/reportViewModel.native.js.map +1 -0
  229. package/dist/jsx/report/savedReports.mjs +112 -0
  230. package/dist/jsx/report/savedReports.mjs.map +1 -0
  231. package/dist/jsx/report/savedReports.native.js +169 -0
  232. package/dist/jsx/report/savedReports.native.js.map +1 -0
  233. package/dist/jsx/report/useFrappeReport.mjs +158 -0
  234. package/dist/jsx/report/useFrappeReport.mjs.map +1 -0
  235. package/dist/jsx/report/useFrappeReport.native.js +214 -0
  236. package/dist/jsx/report/useFrappeReport.native.js.map +1 -0
  237. package/dist/jsx/report/useQueryReport.mjs +176 -0
  238. package/dist/jsx/report/useQueryReport.mjs.map +1 -0
  239. package/dist/jsx/report/useQueryReport.native.js +233 -0
  240. package/dist/jsx/report/useQueryReport.native.js.map +1 -0
  241. package/dist/jsx/useFrappeForm.mjs +533 -0
  242. package/dist/jsx/useFrappeForm.mjs.map +1 -0
  243. package/dist/jsx/useFrappeForm.native.js +714 -0
  244. package/dist/jsx/useFrappeForm.native.js.map +1 -0
  245. package/package.json +16 -16
  246. package/src/FrappeCalendar.tsx +8 -2
  247. package/src/FrappeForm.stories.tsx +52 -0
  248. package/src/FrappeForm.tsx +176 -565
  249. package/src/FrappeListView.cards.stories.tsx +3 -6
  250. package/src/FrappeListView.tsx +15 -55
  251. package/src/FrappeReportBuilder.stories.tsx +34 -7
  252. package/src/FrappeReportBuilder.tsx +790 -380
  253. package/src/FrappeReportView.spec.tsx +10 -6
  254. package/src/FrappeReportView.stories.tsx +20 -1
  255. package/src/FrappeReportView.tsx +89 -415
  256. package/src/dependsOn.ts +4 -1
  257. package/src/fields/shared/EditorPreviewPanes.tsx +2 -2
  258. package/src/formEngine/docPermissions.spec.ts +36 -1
  259. package/src/formEngine/docPermissions.ts +34 -0
  260. package/src/formEngine/index.ts +8 -1
  261. package/src/frappeRemainder.designLaw.spec.ts +9 -1
  262. package/src/frappeRoutes.spec.tsx +9 -0
  263. package/src/frappeViews.designLaw.spec.ts +15 -2
  264. package/src/guestFallback.spec.tsx +236 -0
  265. package/src/index.ts +117 -16
  266. package/src/liveErrors.spec.ts +10 -0
  267. package/src/liveErrors.ts +16 -3
  268. package/src/measures.ts +11 -0
  269. package/src/recordShape.spec.ts +100 -0
  270. package/src/recordShape.ts +133 -0
  271. package/src/report/ReportGrid.spec.tsx +175 -0
  272. package/src/report/ReportGrid.tsx +530 -0
  273. package/src/report/ReportViewToolbar.spec.tsx +90 -0
  274. package/src/report/ReportViewToolbar.tsx +314 -0
  275. package/src/report/queryReport.spec.ts +483 -0
  276. package/src/report/queryReport.ts +722 -0
  277. package/src/report/queryReportColumns.tsx +123 -0
  278. package/src/report/reportViewModel.spec.ts +393 -0
  279. package/src/report/reportViewModel.ts +617 -0
  280. package/src/report/savedReports.ts +172 -0
  281. package/src/report/seam.spec.ts +216 -0
  282. package/src/report/useFrappeReport.ts +241 -0
  283. package/src/report/useQueryReport.spec.tsx +131 -0
  284. package/src/report/useQueryReport.ts +309 -0
  285. package/src/useFrappeForm.spec.tsx +209 -0
  286. package/src/useFrappeForm.ts +778 -0
  287. package/types/FrappeCalendar.d.ts.map +1 -1
  288. package/types/FrappeForm.d.ts +21 -1
  289. package/types/FrappeForm.d.ts.map +1 -1
  290. package/types/FrappeListView.d.ts.map +1 -1
  291. package/types/FrappeReportBuilder.d.ts +66 -16
  292. package/types/FrappeReportBuilder.d.ts.map +1 -1
  293. package/types/FrappeReportView.d.ts +9 -127
  294. package/types/FrappeReportView.d.ts.map +1 -1
  295. package/types/dependsOn.d.ts.map +1 -1
  296. package/types/formEngine/docPermissions.d.ts +14 -0
  297. package/types/formEngine/docPermissions.d.ts.map +1 -1
  298. package/types/formEngine/index.d.ts +1 -1
  299. package/types/formEngine/index.d.ts.map +1 -1
  300. package/types/index.d.ts +15 -3
  301. package/types/index.d.ts.map +1 -1
  302. package/types/liveErrors.d.ts +9 -1
  303. package/types/liveErrors.d.ts.map +1 -1
  304. package/types/measures.d.ts +3 -0
  305. package/types/measures.d.ts.map +1 -0
  306. package/types/recordShape.d.ts +45 -0
  307. package/types/recordShape.d.ts.map +1 -0
  308. package/types/report/ReportGrid.d.ts +20 -0
  309. package/types/report/ReportGrid.d.ts.map +1 -0
  310. package/types/report/ReportViewToolbar.d.ts +31 -0
  311. package/types/report/ReportViewToolbar.d.ts.map +1 -0
  312. package/types/report/queryReport.d.ts +181 -0
  313. package/types/report/queryReport.d.ts.map +1 -0
  314. package/types/report/queryReportColumns.d.ts +12 -0
  315. package/types/report/queryReportColumns.d.ts.map +1 -0
  316. package/types/report/reportViewModel.d.ts +146 -0
  317. package/types/report/reportViewModel.d.ts.map +1 -0
  318. package/types/report/savedReports.d.ts +27 -0
  319. package/types/report/savedReports.d.ts.map +1 -0
  320. package/types/report/useFrappeReport.d.ts +60 -0
  321. package/types/report/useFrappeReport.d.ts.map +1 -0
  322. package/types/report/useQueryReport.d.ts +37 -0
  323. package/types/report/useQueryReport.d.ts.map +1 -0
  324. package/types/useFrappeForm.d.ts +142 -0
  325. package/types/useFrappeForm.d.ts.map +1 -0
@@ -0,0 +1,137 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: true
9
+ });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
14
+ get: () => from[key],
15
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
+ });
17
+ }
18
+ return to;
19
+ };
20
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
+ value: true
22
+ }), mod);
23
+ var savedReports_exports = {};
24
+ __export(savedReports_exports, {
25
+ useSavedReports: () => useSavedReports
26
+ });
27
+ module.exports = __toCommonJS(savedReports_exports);
28
+ var import_react = require("react");
29
+ var import_FrappeProvider = require("../FrappeProvider.cjs");
30
+ var import_reportViewModel = require("./reportViewModel.cjs");
31
+ var import_useFrappeReport = require("./useFrappeReport.cjs");
32
+ function useSavedReports(doctype, connection) {
33
+ const config = (0, import_FrappeProvider.useFrappeConfig)();
34
+ const baseURL = connection ? connection.baseURL : config?.baseURL;
35
+ const auth = connection ? connection.auth : config?.auth;
36
+ const fixtureMode = Boolean(connection ? connection.fixtures : config?.fixtures);
37
+ const call = (0, import_react.useMemo)(() => baseURL ? (0, import_useFrappeReport.reportCall)({
38
+ baseURL,
39
+ auth
40
+ }) : void 0, [baseURL, auth]);
41
+ const [reports, setReports] = (0, import_react.useState)([]);
42
+ const [loading, setLoading] = (0, import_react.useState)(false);
43
+ const [generation, setGeneration] = (0, import_react.useState)(0);
44
+ const memoryConfigs = (0, import_react.useRef)(/* @__PURE__ */new Map());
45
+ (0, import_react.useEffect)(() => {
46
+ memoryConfigs.current = /* @__PURE__ */new Map();
47
+ setReports([]);
48
+ }, [doctype]);
49
+ (0, import_react.useEffect)(() => {
50
+ if (!call || fixtureMode) return;
51
+ let cancelled = false;
52
+ setLoading(true);
53
+ call.get("frappe.client.get_list", {
54
+ doctype: "Report",
55
+ filters: JSON.stringify([["ref_doctype", "=", doctype], ["report_type", "=", "Report Builder"], ["disabled", "=", 0]]),
56
+ fields: JSON.stringify(["name", "report_name", "json"]),
57
+ limit_page_length: 0,
58
+ order_by: "report_name asc"
59
+ }).then(res => {
60
+ if (cancelled) return;
61
+ const rows = res.payload?.message ?? [];
62
+ setReports(rows.map(row => ({
63
+ name: row.name,
64
+ reportName: row.report_name || row.name,
65
+ json: row.json
66
+ })));
67
+ setLoading(false);
68
+ }).catch(() => {
69
+ if (cancelled) return;
70
+ setReports([]);
71
+ setLoading(false);
72
+ });
73
+ return () => {
74
+ cancelled = true;
75
+ };
76
+ }, [call, fixtureMode, doctype, generation]);
77
+ const load = (0, import_react.useCallback)(async name => {
78
+ if (fixtureMode) return memoryConfigs.current.get(name);
79
+ const summary = reports.find(report => report.name === name);
80
+ let json = summary?.json;
81
+ if (json === void 0 && call) {
82
+ const res = await call.get("frappe.client.get_value", {
83
+ doctype: "Report",
84
+ filters: JSON.stringify({
85
+ name
86
+ }),
87
+ fieldname: JSON.stringify(["json"])
88
+ });
89
+ json = res.payload?.message?.json;
90
+ }
91
+ if (!json) return void 0;
92
+ try {
93
+ return (0, import_reportViewModel.fromDeskReportSettings)(doctype, JSON.parse(json));
94
+ } catch {
95
+ return void 0;
96
+ }
97
+ }, [call, fixtureMode, reports, doctype]);
98
+ const save = (0, import_react.useCallback)(async (name, viewConfig) => {
99
+ const trimmed = name.trim();
100
+ if (!trimmed) throw new Error("Report name is required");
101
+ if (fixtureMode || !call) {
102
+ memoryConfigs.current.set(trimmed, viewConfig);
103
+ setReports(previous => [...previous.filter(report => report.name !== trimmed), {
104
+ name: trimmed,
105
+ reportName: trimmed
106
+ }]);
107
+ return trimmed;
108
+ }
109
+ const res = await call.post("frappe.desk.reportview.save_report", {
110
+ name: trimmed,
111
+ doctype,
112
+ report_settings: JSON.stringify((0, import_reportViewModel.toDeskReportSettings)(doctype, viewConfig))
113
+ });
114
+ setGeneration(value => value + 1);
115
+ return res.payload?.message ?? trimmed;
116
+ }, [call, fixtureMode, doctype]);
117
+ const remove = (0, import_react.useCallback)(async name => {
118
+ if (fixtureMode || !call) {
119
+ memoryConfigs.current.delete(name);
120
+ setReports(previous => previous.filter(report => report.name !== name));
121
+ return;
122
+ }
123
+ await call.post("frappe.desk.reportview.delete_report", {
124
+ name
125
+ });
126
+ setGeneration(value => value + 1);
127
+ }, [call, fixtureMode]);
128
+ const refresh = (0, import_react.useCallback)(() => setGeneration(value => value + 1), []);
129
+ return (0, import_react.useMemo)(() => ({
130
+ reports,
131
+ loading,
132
+ load,
133
+ save,
134
+ remove,
135
+ refresh
136
+ }), [reports, loading, load, save, remove, refresh]);
137
+ }
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
+ get: () => from[key],
17
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
+ });
19
+ }
20
+ return to;
21
+ };
22
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
23
+ value: true
24
+ }), mod);
25
+ var savedReports_exports = {};
26
+ __export(savedReports_exports, {
27
+ useSavedReports: () => useSavedReports
28
+ });
29
+ module.exports = __toCommonJS(savedReports_exports);
30
+ var import_react = require("react");
31
+ var import_FrappeProvider = require("../FrappeProvider.native.js");
32
+ var import_reportViewModel = require("./reportViewModel.native.js");
33
+ var import_useFrappeReport = require("./useFrappeReport.native.js");
34
+ function useSavedReports(doctype, connection) {
35
+ var config = (0, import_FrappeProvider.useFrappeConfig)();
36
+ var baseURL = connection ? connection.baseURL : config === null || config === void 0 ? void 0 : config.baseURL;
37
+ var auth = connection ? connection.auth : config === null || config === void 0 ? void 0 : config.auth;
38
+ var fixtureMode = Boolean(connection ? connection.fixtures : config === null || config === void 0 ? void 0 : config.fixtures);
39
+ var call = (0, import_react.useMemo)(function () {
40
+ return baseURL ? (0, import_useFrappeReport.reportCall)({
41
+ baseURL,
42
+ auth
43
+ }) : void 0;
44
+ }, [baseURL, auth]);
45
+ var [reports, setReports] = (0, import_react.useState)([]);
46
+ var [loading, setLoading] = (0, import_react.useState)(false);
47
+ var [generation, setGeneration] = (0, import_react.useState)(0);
48
+ var memoryConfigs = (0, import_react.useRef)(/* @__PURE__ */new Map());
49
+ (0, import_react.useEffect)(function () {
50
+ memoryConfigs.current = /* @__PURE__ */new Map();
51
+ setReports([]);
52
+ }, [doctype]);
53
+ (0, import_react.useEffect)(function () {
54
+ if (!call || fixtureMode) return;
55
+ var cancelled = false;
56
+ setLoading(true);
57
+ call.get("frappe.client.get_list", {
58
+ doctype: "Report",
59
+ filters: JSON.stringify([["ref_doctype", "=", doctype], ["report_type", "=", "Report Builder"], ["disabled", "=", 0]]),
60
+ fields: JSON.stringify(["name", "report_name", "json"]),
61
+ limit_page_length: 0,
62
+ order_by: "report_name asc"
63
+ }).then(function (res) {
64
+ var _ref;
65
+ var _res_payload;
66
+ if (cancelled) return;
67
+ var rows = (_ref = (_res_payload = res.payload) === null || _res_payload === void 0 ? void 0 : _res_payload.message) !== null && _ref !== void 0 ? _ref : [];
68
+ setReports(rows.map(function (row) {
69
+ return {
70
+ name: row.name,
71
+ reportName: row.report_name || row.name,
72
+ json: row.json
73
+ };
74
+ }));
75
+ setLoading(false);
76
+ }).catch(function () {
77
+ if (cancelled) return;
78
+ setReports([]);
79
+ setLoading(false);
80
+ });
81
+ return function () {
82
+ cancelled = true;
83
+ };
84
+ }, [call, fixtureMode, doctype, generation]);
85
+ var load = (0, import_react.useCallback)(async function (name) {
86
+ if (fixtureMode) return memoryConfigs.current.get(name);
87
+ var summary = reports.find(function (report) {
88
+ return report.name === name;
89
+ });
90
+ var json = summary === null || summary === void 0 ? void 0 : summary.json;
91
+ if (json === void 0 && call) {
92
+ var _res_payload_message, _res_payload;
93
+ var res = await call.get("frappe.client.get_value", {
94
+ doctype: "Report",
95
+ filters: JSON.stringify({
96
+ name
97
+ }),
98
+ fieldname: JSON.stringify(["json"])
99
+ });
100
+ 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;
101
+ }
102
+ if (!json) return void 0;
103
+ try {
104
+ return (0, import_reportViewModel.fromDeskReportSettings)(doctype, JSON.parse(json));
105
+ } catch (unused) {
106
+ return void 0;
107
+ }
108
+ }, [call, fixtureMode, reports, doctype]);
109
+ var save = (0, import_react.useCallback)(async function (name, viewConfig) {
110
+ var _ref;
111
+ var _res_payload;
112
+ var trimmed = name.trim();
113
+ if (!trimmed) throw new Error("Report name is required");
114
+ if (fixtureMode || !call) {
115
+ memoryConfigs.current.set(trimmed, viewConfig);
116
+ setReports(function (previous) {
117
+ return [...previous.filter(function (report) {
118
+ return report.name !== trimmed;
119
+ }), {
120
+ name: trimmed,
121
+ reportName: trimmed
122
+ }];
123
+ });
124
+ return trimmed;
125
+ }
126
+ var res = await call.post("frappe.desk.reportview.save_report", {
127
+ name: trimmed,
128
+ doctype,
129
+ report_settings: JSON.stringify((0, import_reportViewModel.toDeskReportSettings)(doctype, viewConfig))
130
+ });
131
+ setGeneration(function (value) {
132
+ return value + 1;
133
+ });
134
+ return (_ref = (_res_payload = res.payload) === null || _res_payload === void 0 ? void 0 : _res_payload.message) !== null && _ref !== void 0 ? _ref : trimmed;
135
+ }, [call, fixtureMode, doctype]);
136
+ var remove = (0, import_react.useCallback)(async function (name) {
137
+ if (fixtureMode || !call) {
138
+ memoryConfigs.current.delete(name);
139
+ setReports(function (previous) {
140
+ return previous.filter(function (report) {
141
+ return report.name !== name;
142
+ });
143
+ });
144
+ return;
145
+ }
146
+ await call.post("frappe.desk.reportview.delete_report", {
147
+ name
148
+ });
149
+ setGeneration(function (value) {
150
+ return value + 1;
151
+ });
152
+ }, [call, fixtureMode]);
153
+ var refresh = (0, import_react.useCallback)(function () {
154
+ return setGeneration(function (value) {
155
+ return value + 1;
156
+ });
157
+ }, []);
158
+ return (0, import_react.useMemo)(function () {
159
+ return {
160
+ reports,
161
+ loading,
162
+ load,
163
+ save,
164
+ remove,
165
+ refresh
166
+ };
167
+ }, [reports, loading, load, save, remove, refresh]);
168
+ }
169
+ //# sourceMappingURL=savedReports.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","savedReports_exports","__export","useSavedReports","module","exports","import_react","require","import_FrappeProvider","import_reportViewModel","import_useFrappeReport","doctype","connection","config","useFrappeConfig","baseURL","auth","fixtureMode","Boolean","fixtures","call","useMemo","reportCall","reports","setReports","useState","loading","setLoading","generation","setGeneration","memoryConfigs","useRef","Map","useEffect","current","cancelled","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","useCallback","summary","find","report","_res_payload_message","fieldname","fromDeskReportSettings","parse","unused"],"sources":["../../../src/report/savedReports.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,184 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: true
9
+ });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
14
+ get: () => from[key],
15
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
+ });
17
+ }
18
+ return to;
19
+ };
20
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
+ value: true
22
+ }), mod);
23
+ var useFrappeReport_exports = {};
24
+ __export(useFrappeReport_exports, {
25
+ reportCall: () => reportCall,
26
+ useFrappeReport: () => useFrappeReport
27
+ });
28
+ module.exports = __toCommonJS(useFrappeReport_exports);
29
+ var import_frappe = require("@multiplatform.one/frappe");
30
+ var import_react = require("react");
31
+ var import_queryReport = require("./queryReport.cjs");
32
+ const callCache = /* @__PURE__ */new Map();
33
+ function reportCall(connection) {
34
+ const key = `${connection.baseURL}:${connection.auth?.useToken ? "t" : ""}:${connection.auth?.token ?? ""}:${connection.auth?.type ?? ""}`;
35
+ let call = callCache.get(key);
36
+ if (!call) {
37
+ const authConfig = connection.auth ? {
38
+ useToken: connection.auth.useToken,
39
+ token: connection.auth.token,
40
+ type: connection.auth.type
41
+ } : void 0;
42
+ call = new import_frappe.CallModule(new import_frappe.HttpClient(connection.baseURL, authConfig));
43
+ callCache.set(key, call);
44
+ }
45
+ return call;
46
+ }
47
+ const DEFAULT_DEBOUNCE_MS = 400;
48
+ function useFrappeReport(connection, {
49
+ reportName,
50
+ filters,
51
+ fixture,
52
+ fetchFilterDefs = false,
53
+ ignorePreparedReport = false,
54
+ debounceMs = DEFAULT_DEBOUNCE_MS,
55
+ enabled = true
56
+ }) {
57
+ const isEnabled = enabled && !!reportName && (!!connection || !!fixture);
58
+ const [payload, setPayload] = (0, import_react.useState)(void 0);
59
+ const [scriptFilters, setScriptFilters] = (0, import_react.useState)(void 0);
60
+ const [isLoading, setIsLoading] = (0, import_react.useState)(isEnabled);
61
+ const [isFetching, setIsFetching] = (0, import_react.useState)(false);
62
+ const [error, setError] = (0, import_react.useState)(void 0);
63
+ const compactedFilters = (0, import_react.useMemo)(() => (0, import_queryReport.compactFilterValues)(filters), [filters]);
64
+ const filtersKey = JSON.stringify(compactedFilters);
65
+ const runKey = JSON.stringify([connection?.baseURL, !!fixture, reportName, filtersKey, ignorePreparedReport]);
66
+ const fetchSeq = (0, import_react.useRef)(0);
67
+ const argsRef = (0, import_react.useRef)({
68
+ reportName,
69
+ filters: compactedFilters,
70
+ fixture,
71
+ ignorePreparedReport
72
+ });
73
+ argsRef.current = {
74
+ reportName,
75
+ filters: compactedFilters,
76
+ fixture,
77
+ ignorePreparedReport
78
+ };
79
+ const connectionRef = (0, import_react.useRef)(connection);
80
+ connectionRef.current = connection;
81
+ const runFetch = (0, import_react.useCallback)(async () => {
82
+ const {
83
+ reportName: name,
84
+ filters: values,
85
+ fixture: fx,
86
+ ignorePreparedReport: skipPrepared
87
+ } = argsRef.current;
88
+ const conn = connectionRef.current;
89
+ if (!name || !conn && !fx) return;
90
+ const seq = ++fetchSeq.current;
91
+ setIsFetching(true);
92
+ try {
93
+ let raw;
94
+ if (fx) {
95
+ raw = typeof fx === "function" ? await fx({
96
+ reportName: name,
97
+ filters: values
98
+ }) : fx;
99
+ } else if (conn) {
100
+ const res = await reportCall(conn).post("frappe.desk.query_report.run", {
101
+ report_name: name,
102
+ filters: values,
103
+ ignore_prepared_report: skipPrepared ? 1 : 0,
104
+ // Desk parity: only let the server substitute saved custom
105
+ // filters when the caller sent no filter values at all.
106
+ are_default_filters: Object.keys(values).length ? 0 : 1
107
+ });
108
+ raw = res.payload.message;
109
+ }
110
+ if (seq !== fetchSeq.current) return;
111
+ setPayload((0, import_queryReport.normalizeQueryReportPayload)(raw ?? {}));
112
+ setError(void 0);
113
+ } catch (err) {
114
+ if (seq !== fetchSeq.current) return;
115
+ setError(err instanceof Error ? err : new Error(String(err)));
116
+ } finally {
117
+ if (seq === fetchSeq.current) {
118
+ setIsLoading(false);
119
+ setIsFetching(false);
120
+ }
121
+ }
122
+ }, []);
123
+ const debouncerRef = (0, import_react.useRef)(void 0);
124
+ if (!debouncerRef.current) {
125
+ debouncerRef.current = new import_frappe.AsyncDebouncer(() => runFetch(), {
126
+ wait: debounceMs
127
+ });
128
+ }
129
+ (0, import_react.useEffect)(() => {
130
+ debouncerRef.current?.setOptions({
131
+ wait: debounceMs
132
+ });
133
+ }, [debounceMs]);
134
+ (0, import_react.useEffect)(() => () => debouncerRef.current?.cancel(), []);
135
+ const lastRunKeyRef = (0, import_react.useRef)(void 0);
136
+ const lastReportRef = (0, import_react.useRef)(void 0);
137
+ (0, import_react.useEffect)(() => {
138
+ if (!isEnabled || lastRunKeyRef.current === runKey) return;
139
+ lastRunKeyRef.current = runKey;
140
+ const reportChanged = lastReportRef.current !== argsRef.current.reportName;
141
+ lastReportRef.current = argsRef.current.reportName;
142
+ setError(void 0);
143
+ if (reportChanged) {
144
+ setIsLoading(true);
145
+ debouncerRef.current?.cancel();
146
+ void runFetch();
147
+ } else if (debounceMs <= 0) {
148
+ void runFetch();
149
+ } else {
150
+ void debouncerRef.current?.maybeExecute();
151
+ }
152
+ }, [isEnabled, runKey, debounceMs, runFetch]);
153
+ (0, import_react.useEffect)(() => {
154
+ if (!isEnabled || !fetchFilterDefs || fixture || !connection) {
155
+ return;
156
+ }
157
+ let cancelled = false;
158
+ void (async () => {
159
+ try {
160
+ const res = await reportCall(connection).get("frappe.desk.query_report.get_script", {
161
+ report_name: reportName
162
+ });
163
+ if (!cancelled) setScriptFilters(res.payload.message?.filters ?? []);
164
+ } catch {
165
+ if (!cancelled) setScriptFilters([]);
166
+ }
167
+ })();
168
+ return () => {
169
+ cancelled = true;
170
+ };
171
+ }, [isEnabled, fetchFilterDefs, fixture, connection, reportName]);
172
+ const refresh = (0, import_react.useCallback)(() => {
173
+ debouncerRef.current?.cancel();
174
+ void runFetch();
175
+ }, [runFetch]);
176
+ return {
177
+ payload,
178
+ scriptFilters,
179
+ isLoading,
180
+ isFetching,
181
+ error,
182
+ refresh
183
+ };
184
+ }