@multiplatform.one/frappe-ui 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.
Files changed (618) hide show
  1. package/dist/cjs/ChartCard.native.js.map +1 -1
  2. package/dist/cjs/FileBrowser/AttachLibrary.native.js.map +1 -1
  3. package/dist/cjs/FileBrowser/folderTree.native.js.map +1 -1
  4. package/dist/cjs/FileBrowser/index.cjs +20 -3
  5. package/dist/cjs/FileBrowser/index.native.js +20 -3
  6. package/dist/cjs/FileBrowser/index.native.js.map +1 -1
  7. package/dist/cjs/FileBrowser/types.native.js.map +1 -1
  8. package/dist/cjs/FileBrowser/viewPersistence.native.js.map +1 -1
  9. package/dist/cjs/FormSidebar.native.js.map +1 -1
  10. package/dist/cjs/FrappeAssignment.native.js.map +1 -1
  11. package/dist/cjs/FrappeCalendar.cjs +3 -2
  12. package/dist/cjs/FrappeCalendar.native.js +3 -2
  13. package/dist/cjs/FrappeCalendar.native.js.map +1 -1
  14. package/dist/cjs/FrappeChartCard.native.js.map +1 -1
  15. package/dist/cjs/FrappeConnectionIndicator.native.js.map +1 -1
  16. package/dist/cjs/FrappeDashboard.native.js.map +1 -1
  17. package/dist/cjs/FrappeForm.cjs +148 -464
  18. package/dist/cjs/FrappeForm.native.js +153 -634
  19. package/dist/cjs/FrappeForm.native.js.map +1 -1
  20. package/dist/cjs/FrappeFormActions.native.js.map +1 -1
  21. package/dist/cjs/FrappeFormConnections.native.js.map +1 -1
  22. package/dist/cjs/FrappeGantt.native.js.map +1 -1
  23. package/dist/cjs/FrappeImageView.native.js.map +1 -1
  24. package/dist/cjs/FrappeInsights.native.js.map +1 -1
  25. package/dist/cjs/FrappeKPICard.native.js.map +1 -1
  26. package/dist/cjs/FrappeKanban.native.js.map +1 -1
  27. package/dist/cjs/FrappeLikedBy.native.js.map +1 -1
  28. package/dist/cjs/FrappeList.native.js.map +1 -1
  29. package/dist/cjs/FrappeListView.cjs +5 -27
  30. package/dist/cjs/FrappeListView.native.js +11 -32
  31. package/dist/cjs/FrappeListView.native.js.map +1 -1
  32. package/dist/cjs/FrappeNotConfigured.native.js.map +1 -1
  33. package/dist/cjs/FrappeProvider.native.js.map +1 -1
  34. package/dist/cjs/FrappeReconnectIndicator.native.js.map +1 -1
  35. package/dist/cjs/FrappeRecordView.native.js.map +1 -1
  36. package/dist/cjs/FrappeReportBuilder.cjs +523 -309
  37. package/dist/cjs/FrappeReportBuilder.native.js +658 -353
  38. package/dist/cjs/FrappeReportBuilder.native.js.map +1 -1
  39. package/dist/cjs/FrappeReportView.cjs +35 -234
  40. package/dist/cjs/FrappeReportView.native.js +42 -286
  41. package/dist/cjs/FrappeReportView.native.js.map +1 -1
  42. package/dist/cjs/FrappeRowsReader.native.js.map +1 -1
  43. package/dist/cjs/FrappeTable.native.js.map +1 -1
  44. package/dist/cjs/FrappeTreeView.native.js.map +1 -1
  45. package/dist/cjs/SyncErrorNotice.native.js.map +1 -1
  46. package/dist/cjs/commentActions.native.js.map +1 -1
  47. package/dist/cjs/components/attachments.native.js.map +1 -1
  48. package/dist/cjs/components/tags.native.js.map +1 -1
  49. package/dist/cjs/components/timeline.native.js.map +1 -1
  50. package/dist/cjs/dependsOn.cjs +2 -2
  51. package/dist/cjs/dependsOn.native.js +1 -2
  52. package/dist/cjs/dependsOn.native.js.map +1 -1
  53. package/dist/cjs/desk/DeskFormPage.native.js.map +1 -1
  54. package/dist/cjs/desk/DeskFormSidebar.native.js.map +1 -1
  55. package/dist/cjs/desk/DeskListPage.native.js.map +1 -1
  56. package/dist/cjs/desk/DeskShell.native.js.map +1 -1
  57. package/dist/cjs/desk/DeskSidebar.native.js.map +1 -1
  58. package/dist/cjs/desk/awesomebar.native.js.map +1 -1
  59. package/dist/cjs/fieldOverrides.native.js.map +1 -1
  60. package/dist/cjs/fieldRegistry.native.js +31 -31
  61. package/dist/cjs/fieldRegistry.native.js.map +1 -1
  62. package/dist/cjs/fields/Barcode/index.native.js.map +1 -1
  63. package/dist/cjs/fields/Check/index.native.js.map +1 -1
  64. package/dist/cjs/fields/CodeEditor/index.native.js.map +1 -1
  65. package/dist/cjs/fields/Color/index.native.js.map +1 -1
  66. package/dist/cjs/fields/Data/index.native.js.map +1 -1
  67. package/dist/cjs/fields/Date/sheetKeyboard.native.js.map +1 -1
  68. package/dist/cjs/fields/Date/types.native.js.map +1 -1
  69. package/dist/cjs/fields/Date/wire.native.js.map +1 -1
  70. package/dist/cjs/fields/DateRange/index.native.js.map +1 -1
  71. package/dist/cjs/fields/Duration/index.native.js.map +1 -1
  72. package/dist/cjs/fields/DynamicLink.native.js.map +1 -1
  73. package/dist/cjs/fields/FileUpload.native.js.map +1 -1
  74. package/dist/cjs/fields/FileUploadField/index.native.js.map +1 -1
  75. package/dist/cjs/fields/Geolocation/index.native.js.map +1 -1
  76. package/dist/cjs/fields/HTML/index.native.js.map +1 -1
  77. package/dist/cjs/fields/Heading/index.native.js.map +1 -1
  78. package/dist/cjs/fields/Icon/index.native.js.map +1 -1
  79. package/dist/cjs/fields/Link.native.js.map +1 -1
  80. package/dist/cjs/fields/LinkTree.native.js.map +1 -1
  81. package/dist/cjs/fields/LongText/index.native.js.map +1 -1
  82. package/dist/cjs/fields/MentionInput/index.native.js.map +1 -1
  83. package/dist/cjs/fields/Numeric/index.native.js.map +1 -1
  84. package/dist/cjs/fields/OTPInput/index.native.js.map +1 -1
  85. package/dist/cjs/fields/Password/index.native.js.map +1 -1
  86. package/dist/cjs/fields/Phone/index.native.js.map +1 -1
  87. package/dist/cjs/fields/Progress/index.native.js.map +1 -1
  88. package/dist/cjs/fields/RadioGroup/index.native.js.map +1 -1
  89. package/dist/cjs/fields/Rating/index.native.js.map +1 -1
  90. package/dist/cjs/fields/ReadOnly/index.native.js.map +1 -1
  91. package/dist/cjs/fields/Select/index.native.js.map +1 -1
  92. package/dist/cjs/fields/Signature/index.native.js.map +1 -1
  93. package/dist/cjs/fields/Slider/index.native.js.map +1 -1
  94. package/dist/cjs/fields/SmallText/index.native.js.map +1 -1
  95. package/dist/cjs/fields/Switch/index.native.js.map +1 -1
  96. package/dist/cjs/fields/TableMultiSelect.native.js.map +1 -1
  97. package/dist/cjs/fields/TextEditor/types.native.js.map +1 -1
  98. package/dist/cjs/fields/TimePicker/index.native.js.map +1 -1
  99. package/dist/cjs/fields/ToggleGroup/index.native.js.map +1 -1
  100. package/dist/cjs/fields/shared/EditorPreviewPanes.cjs +2 -2
  101. package/dist/cjs/fields/shared/EditorPreviewPanes.native.js +2 -2
  102. package/dist/cjs/fields/shared/EditorPreviewPanes.native.js.map +1 -1
  103. package/dist/cjs/filterFields.native.js.map +1 -1
  104. package/dist/cjs/formEngine/createPrefill.native.js.map +1 -1
  105. package/dist/cjs/formEngine/dirtyTracking.native.js.map +1 -1
  106. package/dist/cjs/formEngine/docLifecycle.native.js.map +1 -1
  107. package/dist/cjs/formEngine/docPermissions.cjs +20 -0
  108. package/dist/cjs/formEngine/docPermissions.native.js +69 -0
  109. package/dist/cjs/formEngine/docPermissions.native.js.map +1 -1
  110. package/dist/cjs/formEngine/doctypeMeta.native.js.map +1 -1
  111. package/dist/cjs/formEngine/fetchFrom.native.js.map +1 -1
  112. package/dist/cjs/formEngine/fieldPermissions.native.js.map +1 -1
  113. package/dist/cjs/formEngine/formActions.native.js.map +1 -1
  114. package/dist/cjs/formEngine/formLayout.native.js.map +1 -1
  115. package/dist/cjs/formEngine/index.cjs +2 -0
  116. package/dist/cjs/formEngine/index.native.js +2 -0
  117. package/dist/cjs/formEngine/index.native.js.map +1 -1
  118. package/dist/cjs/formEngine/useAmendedAs.native.js.map +1 -1
  119. package/dist/cjs/formEngine/useDocRights.native.js.map +1 -1
  120. package/dist/cjs/formEngine/useFormEngine.native.js.map +1 -1
  121. package/dist/cjs/formEngine/useSessionRoles.native.js.map +1 -1
  122. package/dist/cjs/frappeConnections.native.js.map +1 -1
  123. package/dist/cjs/frappeEventColor.native.js.map +1 -1
  124. package/dist/cjs/frappeNavigation.native.js.map +1 -1
  125. package/dist/cjs/frappeStoryTarget.native.js.map +1 -1
  126. package/dist/cjs/frappeUsers.native.js.map +1 -1
  127. package/dist/cjs/index.cjs +67 -7
  128. package/dist/cjs/index.native.js +101 -41
  129. package/dist/cjs/index.native.js.map +1 -1
  130. package/dist/cjs/insights/InsightsFacetTags.native.js.map +1 -1
  131. package/dist/cjs/insights/InsightsKpiBand.native.js.map +1 -1
  132. package/dist/cjs/insights/InsightsLeaders.native.js.map +1 -1
  133. package/dist/cjs/insights/InsightsRecords.native.js.map +1 -1
  134. package/dist/cjs/insights/InsightsTable.native.js.map +1 -1
  135. package/dist/cjs/insights/insightsData.native.js.map +1 -1
  136. package/dist/cjs/insights/insightsRecord.native.js.map +1 -1
  137. package/dist/cjs/list/FacetBadge.native.js.map +1 -1
  138. package/dist/cjs/list/FacetRail.native.js.map +1 -1
  139. package/dist/cjs/list/ImageWell.native.js.map +1 -1
  140. package/dist/cjs/list/ListControls.native.js.map +1 -1
  141. package/dist/cjs/list/ListToastHost.native.js.map +1 -1
  142. package/dist/cjs/list/RangeFilter.native.js.map +1 -1
  143. package/dist/cjs/list/ShufflePanel.native.js.map +1 -1
  144. package/dist/cjs/list/facetReading.native.js.map +1 -1
  145. package/dist/cjs/list/favorites.native.js.map +1 -1
  146. package/dist/cjs/list/listColumns.native.js.map +1 -1
  147. package/dist/cjs/list/listFields.native.js.map +1 -1
  148. package/dist/cjs/list/listFormat.native.js.map +1 -1
  149. package/dist/cjs/list/listState.native.js.map +1 -1
  150. package/dist/cjs/list/recordLook.native.js.map +1 -1
  151. package/dist/cjs/list/statusColors.native.js.map +1 -1
  152. package/dist/cjs/list/useListControls.native.js.map +1 -1
  153. package/dist/cjs/liveErrors.cjs +8 -2
  154. package/dist/cjs/liveErrors.native.js +8 -2
  155. package/dist/cjs/liveErrors.native.js.map +1 -1
  156. package/dist/cjs/measures.cjs +31 -0
  157. package/dist/cjs/measures.native.js +34 -0
  158. package/dist/cjs/measures.native.js.map +1 -0
  159. package/dist/cjs/record/RecordBars.native.js.map +1 -1
  160. package/dist/cjs/record/RecordGallery.native.js.map +1 -1
  161. package/dist/cjs/record/RecordHero.native.js.map +1 -1
  162. package/dist/cjs/record/RecordPage.native.js.map +1 -1
  163. package/dist/cjs/record/RecordPager.native.js.map +1 -1
  164. package/dist/cjs/record/RecordRows.native.js.map +1 -1
  165. package/dist/cjs/record/recordData.native.js.map +1 -1
  166. package/dist/cjs/record/recordSections.native.js.map +1 -1
  167. package/dist/cjs/recordShape.cjs +103 -0
  168. package/dist/cjs/recordShape.native.js +115 -0
  169. package/dist/cjs/recordShape.native.js.map +1 -0
  170. package/dist/cjs/report/ReportGrid.cjs +453 -0
  171. package/dist/cjs/report/ReportGrid.native.js +510 -0
  172. package/dist/cjs/report/ReportGrid.native.js.map +1 -0
  173. package/dist/cjs/report/ReportViewToolbar.cjs +253 -0
  174. package/dist/cjs/report/ReportViewToolbar.native.js +303 -0
  175. package/dist/cjs/report/ReportViewToolbar.native.js.map +1 -0
  176. package/dist/cjs/report/queryReport.cjs +444 -0
  177. package/dist/cjs/report/queryReport.native.js +588 -0
  178. package/dist/cjs/report/queryReport.native.js.map +1 -0
  179. package/dist/cjs/report/queryReportColumns.cjs +131 -0
  180. package/dist/cjs/report/queryReportColumns.native.js +159 -0
  181. package/dist/cjs/report/queryReportColumns.native.js.map +1 -0
  182. package/dist/cjs/report/reportViewModel.cjs +386 -0
  183. package/dist/cjs/report/reportViewModel.native.js +657 -0
  184. package/dist/cjs/report/reportViewModel.native.js.map +1 -0
  185. package/dist/cjs/report/savedReports.cjs +137 -0
  186. package/dist/cjs/report/savedReports.native.js +169 -0
  187. package/dist/cjs/report/savedReports.native.js.map +1 -0
  188. package/dist/cjs/report/useFrappeReport.cjs +184 -0
  189. package/dist/cjs/report/useFrappeReport.native.js +214 -0
  190. package/dist/cjs/report/useFrappeReport.native.js.map +1 -0
  191. package/dist/cjs/report/useQueryReport.cjs +201 -0
  192. package/dist/cjs/report/useQueryReport.native.js +233 -0
  193. package/dist/cjs/report/useQueryReport.native.js.map +1 -0
  194. package/dist/cjs/resolveControl.native.js.map +1 -1
  195. package/dist/cjs/schemaForm/SchemaWizard.native.js.map +1 -1
  196. package/dist/cjs/schemaForm/applyFieldOrder.native.js.map +1 -1
  197. package/dist/cjs/schemaForm/index.native.js +1 -1
  198. package/dist/cjs/schemaForm/index.native.js.map +1 -1
  199. package/dist/cjs/shared/devWarn.native.js.map +1 -1
  200. package/dist/cjs/shared/useKeyboardInset.native.js.map +1 -1
  201. package/dist/cjs/syncError.native.js.map +1 -1
  202. package/dist/cjs/useConnectionFilters.native.js.map +1 -1
  203. package/dist/cjs/useFrappeAggregate.native.js.map +1 -1
  204. package/dist/cjs/useFrappeFacets.native.js.map +1 -1
  205. package/dist/cjs/useFrappeForm.cjs +558 -0
  206. package/dist/cjs/useFrappeForm.native.js +714 -0
  207. package/dist/cjs/useFrappeForm.native.js.map +1 -0
  208. package/dist/cjs/useFrappePagination.native.js.map +1 -1
  209. package/dist/cjs/useFrappeRows.native.js.map +1 -1
  210. package/dist/esm/ChartCard.native.js.map +1 -1
  211. package/dist/esm/FileBrowser/AttachLibrary.native.js.map +1 -1
  212. package/dist/esm/FileBrowser/folderTree.native.js.map +1 -1
  213. package/dist/esm/FileBrowser/index.mjs +20 -3
  214. package/dist/esm/FileBrowser/index.mjs.map +1 -1
  215. package/dist/esm/FileBrowser/index.native.js +20 -3
  216. package/dist/esm/FileBrowser/index.native.js.map +1 -1
  217. package/dist/esm/FileBrowser/types.native.js.map +1 -1
  218. package/dist/esm/FileBrowser/viewPersistence.native.js.map +1 -1
  219. package/dist/esm/FormSidebar.native.js.map +1 -1
  220. package/dist/esm/FrappeAssignment.native.js.map +1 -1
  221. package/dist/esm/FrappeCalendar.mjs +4 -3
  222. package/dist/esm/FrappeCalendar.mjs.map +1 -1
  223. package/dist/esm/FrappeCalendar.native.js +4 -3
  224. package/dist/esm/FrappeCalendar.native.js.map +1 -1
  225. package/dist/esm/FrappeChartCard.native.js.map +1 -1
  226. package/dist/esm/FrappeConnectionIndicator.native.js.map +1 -1
  227. package/dist/esm/FrappeDashboard.native.js.map +1 -1
  228. package/dist/esm/FrappeForm.mjs +151 -467
  229. package/dist/esm/FrappeForm.mjs.map +1 -1
  230. package/dist/esm/FrappeForm.native.js +155 -636
  231. package/dist/esm/FrappeForm.native.js.map +1 -1
  232. package/dist/esm/FrappeFormActions.native.js.map +1 -1
  233. package/dist/esm/FrappeFormConnections.native.js.map +1 -1
  234. package/dist/esm/FrappeGantt.native.js.map +1 -1
  235. package/dist/esm/FrappeImageView.native.js.map +1 -1
  236. package/dist/esm/FrappeInsights.native.js.map +1 -1
  237. package/dist/esm/FrappeKPICard.native.js.map +1 -1
  238. package/dist/esm/FrappeKanban.native.js.map +1 -1
  239. package/dist/esm/FrappeLikedBy.native.js.map +1 -1
  240. package/dist/esm/FrappeList.native.js.map +1 -1
  241. package/dist/esm/FrappeListView.mjs +6 -28
  242. package/dist/esm/FrappeListView.mjs.map +1 -1
  243. package/dist/esm/FrappeListView.native.js +12 -33
  244. package/dist/esm/FrappeListView.native.js.map +1 -1
  245. package/dist/esm/FrappeNotConfigured.native.js.map +1 -1
  246. package/dist/esm/FrappeProvider.native.js.map +1 -1
  247. package/dist/esm/FrappeReconnectIndicator.native.js.map +1 -1
  248. package/dist/esm/FrappeRecordView.native.js.map +1 -1
  249. package/dist/esm/FrappeReportBuilder.mjs +526 -312
  250. package/dist/esm/FrappeReportBuilder.mjs.map +1 -1
  251. package/dist/esm/FrappeReportBuilder.native.js +661 -356
  252. package/dist/esm/FrappeReportBuilder.native.js.map +1 -1
  253. package/dist/esm/FrappeReportView.mjs +30 -229
  254. package/dist/esm/FrappeReportView.mjs.map +1 -1
  255. package/dist/esm/FrappeReportView.native.js +34 -278
  256. package/dist/esm/FrappeReportView.native.js.map +1 -1
  257. package/dist/esm/FrappeRowsReader.native.js.map +1 -1
  258. package/dist/esm/FrappeTable.native.js.map +1 -1
  259. package/dist/esm/FrappeTreeView.native.js.map +1 -1
  260. package/dist/esm/SyncErrorNotice.native.js.map +1 -1
  261. package/dist/esm/commentActions.native.js.map +1 -1
  262. package/dist/esm/components/attachments.native.js.map +1 -1
  263. package/dist/esm/components/tags.native.js.map +1 -1
  264. package/dist/esm/components/timeline.native.js.map +1 -1
  265. package/dist/esm/dependsOn.mjs +2 -2
  266. package/dist/esm/dependsOn.mjs.map +1 -1
  267. package/dist/esm/dependsOn.native.js +1 -2
  268. package/dist/esm/dependsOn.native.js.map +1 -1
  269. package/dist/esm/desk/DeskFormPage.native.js.map +1 -1
  270. package/dist/esm/desk/DeskFormSidebar.native.js.map +1 -1
  271. package/dist/esm/desk/DeskListPage.native.js.map +1 -1
  272. package/dist/esm/desk/DeskShell.native.js.map +1 -1
  273. package/dist/esm/desk/DeskSidebar.native.js.map +1 -1
  274. package/dist/esm/desk/awesomebar.native.js.map +1 -1
  275. package/dist/esm/fieldOverrides.native.js.map +1 -1
  276. package/dist/esm/fieldRegistry.native.js.map +1 -1
  277. package/dist/esm/fields/Barcode/index.native.js.map +1 -1
  278. package/dist/esm/fields/Check/index.native.js.map +1 -1
  279. package/dist/esm/fields/CodeEditor/index.native.js.map +1 -1
  280. package/dist/esm/fields/Color/index.native.js.map +1 -1
  281. package/dist/esm/fields/Data/index.native.js.map +1 -1
  282. package/dist/esm/fields/Date/sheetKeyboard.native.js.map +1 -1
  283. package/dist/esm/fields/Date/types.native.js.map +1 -1
  284. package/dist/esm/fields/Date/wire.native.js.map +1 -1
  285. package/dist/esm/fields/DateRange/index.native.js.map +1 -1
  286. package/dist/esm/fields/Duration/index.native.js.map +1 -1
  287. package/dist/esm/fields/DynamicLink.native.js.map +1 -1
  288. package/dist/esm/fields/FileUpload.native.js.map +1 -1
  289. package/dist/esm/fields/FileUploadField/index.native.js.map +1 -1
  290. package/dist/esm/fields/Geolocation/index.native.js.map +1 -1
  291. package/dist/esm/fields/HTML/index.native.js.map +1 -1
  292. package/dist/esm/fields/Heading/index.native.js.map +1 -1
  293. package/dist/esm/fields/Icon/index.native.js.map +1 -1
  294. package/dist/esm/fields/Link.native.js.map +1 -1
  295. package/dist/esm/fields/LinkTree.native.js.map +1 -1
  296. package/dist/esm/fields/LongText/index.native.js.map +1 -1
  297. package/dist/esm/fields/MentionInput/index.native.js.map +1 -1
  298. package/dist/esm/fields/Numeric/index.native.js.map +1 -1
  299. package/dist/esm/fields/OTPInput/index.native.js.map +1 -1
  300. package/dist/esm/fields/Password/index.native.js.map +1 -1
  301. package/dist/esm/fields/Phone/index.native.js.map +1 -1
  302. package/dist/esm/fields/Progress/index.native.js.map +1 -1
  303. package/dist/esm/fields/RadioGroup/index.native.js.map +1 -1
  304. package/dist/esm/fields/Rating/index.native.js.map +1 -1
  305. package/dist/esm/fields/ReadOnly/index.native.js.map +1 -1
  306. package/dist/esm/fields/Select/index.native.js.map +1 -1
  307. package/dist/esm/fields/Signature/index.native.js.map +1 -1
  308. package/dist/esm/fields/Slider/index.native.js.map +1 -1
  309. package/dist/esm/fields/SmallText/index.native.js.map +1 -1
  310. package/dist/esm/fields/Switch/index.native.js.map +1 -1
  311. package/dist/esm/fields/TableMultiSelect.native.js.map +1 -1
  312. package/dist/esm/fields/TextEditor/types.native.js.map +1 -1
  313. package/dist/esm/fields/TimePicker/index.native.js.map +1 -1
  314. package/dist/esm/fields/ToggleGroup/index.native.js.map +1 -1
  315. package/dist/esm/fields/shared/EditorPreviewPanes.mjs +2 -2
  316. package/dist/esm/fields/shared/EditorPreviewPanes.mjs.map +1 -1
  317. package/dist/esm/fields/shared/EditorPreviewPanes.native.js +2 -2
  318. package/dist/esm/fields/shared/EditorPreviewPanes.native.js.map +1 -1
  319. package/dist/esm/filterFields.native.js.map +1 -1
  320. package/dist/esm/formEngine/createPrefill.native.js.map +1 -1
  321. package/dist/esm/formEngine/dirtyTracking.native.js.map +1 -1
  322. package/dist/esm/formEngine/docLifecycle.native.js.map +1 -1
  323. package/dist/esm/formEngine/docPermissions.mjs +19 -1
  324. package/dist/esm/formEngine/docPermissions.mjs.map +1 -1
  325. package/dist/esm/formEngine/docPermissions.native.js +68 -1
  326. package/dist/esm/formEngine/docPermissions.native.js.map +1 -1
  327. package/dist/esm/formEngine/doctypeMeta.native.js.map +1 -1
  328. package/dist/esm/formEngine/fetchFrom.native.js.map +1 -1
  329. package/dist/esm/formEngine/fieldPermissions.native.js.map +1 -1
  330. package/dist/esm/formEngine/formActions.native.js.map +1 -1
  331. package/dist/esm/formEngine/formLayout.native.js.map +1 -1
  332. package/dist/esm/formEngine/index.mjs +2 -2
  333. package/dist/esm/formEngine/index.mjs.map +1 -1
  334. package/dist/esm/formEngine/index.native.js +2 -2
  335. package/dist/esm/formEngine/index.native.js.map +1 -1
  336. package/dist/esm/formEngine/useAmendedAs.native.js.map +1 -1
  337. package/dist/esm/formEngine/useDocRights.native.js.map +1 -1
  338. package/dist/esm/formEngine/useFormEngine.native.js.map +1 -1
  339. package/dist/esm/formEngine/useSessionRoles.native.js.map +1 -1
  340. package/dist/esm/frappeConnections.native.js.map +1 -1
  341. package/dist/esm/frappeEventColor.native.js.map +1 -1
  342. package/dist/esm/frappeNavigation.native.js.map +1 -1
  343. package/dist/esm/frappeStoryTarget.native.js.map +1 -1
  344. package/dist/esm/frappeUsers.native.js.map +1 -1
  345. package/dist/esm/index.mjs +16 -4
  346. package/dist/esm/index.mjs.map +1 -1
  347. package/dist/esm/index.native.js +16 -4
  348. package/dist/esm/index.native.js.map +1 -1
  349. package/dist/esm/insights/InsightsFacetTags.native.js.map +1 -1
  350. package/dist/esm/insights/InsightsKpiBand.native.js.map +1 -1
  351. package/dist/esm/insights/InsightsLeaders.native.js.map +1 -1
  352. package/dist/esm/insights/InsightsRecords.native.js.map +1 -1
  353. package/dist/esm/insights/InsightsTable.native.js.map +1 -1
  354. package/dist/esm/insights/insightsData.native.js.map +1 -1
  355. package/dist/esm/insights/insightsRecord.native.js.map +1 -1
  356. package/dist/esm/list/FacetBadge.native.js.map +1 -1
  357. package/dist/esm/list/FacetRail.native.js.map +1 -1
  358. package/dist/esm/list/ImageWell.native.js.map +1 -1
  359. package/dist/esm/list/ListControls.native.js.map +1 -1
  360. package/dist/esm/list/ListToastHost.native.js.map +1 -1
  361. package/dist/esm/list/RangeFilter.native.js.map +1 -1
  362. package/dist/esm/list/ShufflePanel.native.js.map +1 -1
  363. package/dist/esm/list/facetReading.native.js.map +1 -1
  364. package/dist/esm/list/favorites.native.js.map +1 -1
  365. package/dist/esm/list/listColumns.native.js.map +1 -1
  366. package/dist/esm/list/listFields.native.js.map +1 -1
  367. package/dist/esm/list/listFormat.native.js.map +1 -1
  368. package/dist/esm/list/listState.native.js.map +1 -1
  369. package/dist/esm/list/recordLook.native.js.map +1 -1
  370. package/dist/esm/list/statusColors.native.js.map +1 -1
  371. package/dist/esm/list/useListControls.native.js.map +1 -1
  372. package/dist/esm/liveErrors.mjs +8 -3
  373. package/dist/esm/liveErrors.mjs.map +1 -1
  374. package/dist/esm/liveErrors.native.js +8 -3
  375. package/dist/esm/liveErrors.native.js.map +1 -1
  376. package/dist/esm/measures.mjs +5 -0
  377. package/dist/esm/measures.mjs.map +1 -0
  378. package/dist/esm/measures.native.js +5 -0
  379. package/dist/esm/measures.native.js.map +1 -0
  380. package/dist/esm/record/RecordBars.native.js.map +1 -1
  381. package/dist/esm/record/RecordGallery.native.js.map +1 -1
  382. package/dist/esm/record/RecordHero.native.js.map +1 -1
  383. package/dist/esm/record/RecordPage.native.js.map +1 -1
  384. package/dist/esm/record/RecordPager.native.js.map +1 -1
  385. package/dist/esm/record/RecordRows.native.js.map +1 -1
  386. package/dist/esm/record/recordData.native.js.map +1 -1
  387. package/dist/esm/record/recordSections.native.js.map +1 -1
  388. package/dist/esm/recordShape.mjs +74 -0
  389. package/dist/esm/recordShape.mjs.map +1 -0
  390. package/dist/esm/recordShape.native.js +83 -0
  391. package/dist/esm/recordShape.native.js.map +1 -0
  392. package/dist/esm/report/ReportGrid.mjs +428 -0
  393. package/dist/esm/report/ReportGrid.mjs.map +1 -0
  394. package/dist/esm/report/ReportGrid.native.js +471 -0
  395. package/dist/esm/report/ReportGrid.native.js.map +1 -0
  396. package/dist/esm/report/ReportViewToolbar.mjs +228 -0
  397. package/dist/esm/report/ReportViewToolbar.mjs.map +1 -0
  398. package/dist/esm/report/ReportViewToolbar.native.js +264 -0
  399. package/dist/esm/report/ReportViewToolbar.native.js.map +1 -0
  400. package/dist/esm/report/queryReport.mjs +404 -0
  401. package/dist/esm/report/queryReport.mjs.map +1 -0
  402. package/dist/esm/report/queryReport.native.js +545 -0
  403. package/dist/esm/report/queryReport.native.js.map +1 -0
  404. package/dist/esm/report/queryReportColumns.mjs +105 -0
  405. package/dist/esm/report/queryReportColumns.mjs.map +1 -0
  406. package/dist/esm/report/queryReportColumns.native.js +119 -0
  407. package/dist/esm/report/queryReportColumns.native.js.map +1 -0
  408. package/dist/esm/report/reportViewModel.mjs +343 -0
  409. package/dist/esm/report/reportViewModel.mjs.map +1 -0
  410. package/dist/esm/report/reportViewModel.native.js +611 -0
  411. package/dist/esm/report/reportViewModel.native.js.map +1 -0
  412. package/dist/esm/report/savedReports.mjs +112 -0
  413. package/dist/esm/report/savedReports.mjs.map +1 -0
  414. package/dist/esm/report/savedReports.native.js +141 -0
  415. package/dist/esm/report/savedReports.native.js.map +1 -0
  416. package/dist/esm/report/useFrappeReport.mjs +158 -0
  417. package/dist/esm/report/useFrappeReport.mjs.map +1 -0
  418. package/dist/esm/report/useFrappeReport.native.js +185 -0
  419. package/dist/esm/report/useFrappeReport.native.js.map +1 -0
  420. package/dist/esm/report/useQueryReport.mjs +176 -0
  421. package/dist/esm/report/useQueryReport.mjs.map +1 -0
  422. package/dist/esm/report/useQueryReport.native.js +205 -0
  423. package/dist/esm/report/useQueryReport.native.js.map +1 -0
  424. package/dist/esm/resolveControl.native.js.map +1 -1
  425. package/dist/esm/schemaForm/SchemaWizard.native.js.map +1 -1
  426. package/dist/esm/schemaForm/applyFieldOrder.native.js.map +1 -1
  427. package/dist/esm/schemaForm/index.native.js.map +1 -1
  428. package/dist/esm/shared/devWarn.native.js.map +1 -1
  429. package/dist/esm/shared/useKeyboardInset.native.js.map +1 -1
  430. package/dist/esm/syncError.native.js.map +1 -1
  431. package/dist/esm/useConnectionFilters.native.js.map +1 -1
  432. package/dist/esm/useFrappeAggregate.native.js.map +1 -1
  433. package/dist/esm/useFrappeFacets.native.js.map +1 -1
  434. package/dist/esm/useFrappeForm.mjs +533 -0
  435. package/dist/esm/useFrappeForm.mjs.map +1 -0
  436. package/dist/esm/useFrappeForm.native.js +686 -0
  437. package/dist/esm/useFrappeForm.native.js.map +1 -0
  438. package/dist/esm/useFrappePagination.native.js.map +1 -1
  439. package/dist/esm/useFrappeRows.native.js.map +1 -1
  440. package/dist/jsx/FileBrowser/index.mjs +20 -3
  441. package/dist/jsx/FileBrowser/index.mjs.map +1 -1
  442. package/dist/jsx/FileBrowser/index.native.js +20 -3
  443. package/dist/jsx/FileBrowser/index.native.js.map +1 -1
  444. package/dist/jsx/FrappeCalendar.mjs +4 -3
  445. package/dist/jsx/FrappeCalendar.mjs.map +1 -1
  446. package/dist/jsx/FrappeCalendar.native.js +3 -2
  447. package/dist/jsx/FrappeCalendar.native.js.map +1 -1
  448. package/dist/jsx/FrappeForm.mjs +151 -467
  449. package/dist/jsx/FrappeForm.mjs.map +1 -1
  450. package/dist/jsx/FrappeForm.native.js +152 -633
  451. package/dist/jsx/FrappeForm.native.js.map +1 -1
  452. package/dist/jsx/FrappeListView.mjs +6 -28
  453. package/dist/jsx/FrappeListView.mjs.map +1 -1
  454. package/dist/jsx/FrappeListView.native.js +11 -32
  455. package/dist/jsx/FrappeListView.native.js.map +1 -1
  456. package/dist/jsx/FrappeReportBuilder.mjs +526 -312
  457. package/dist/jsx/FrappeReportBuilder.mjs.map +1 -1
  458. package/dist/jsx/FrappeReportBuilder.native.js +658 -353
  459. package/dist/jsx/FrappeReportBuilder.native.js.map +1 -1
  460. package/dist/jsx/FrappeReportView.mjs +30 -229
  461. package/dist/jsx/FrappeReportView.mjs.map +1 -1
  462. package/dist/jsx/FrappeReportView.native.js +39 -283
  463. package/dist/jsx/FrappeReportView.native.js.map +1 -1
  464. package/dist/jsx/dependsOn.mjs +2 -2
  465. package/dist/jsx/dependsOn.mjs.map +1 -1
  466. package/dist/jsx/dependsOn.native.js +1 -2
  467. package/dist/jsx/dependsOn.native.js.map +1 -1
  468. package/dist/jsx/fields/shared/EditorPreviewPanes.mjs +2 -2
  469. package/dist/jsx/fields/shared/EditorPreviewPanes.mjs.map +1 -1
  470. package/dist/jsx/fields/shared/EditorPreviewPanes.native.js +2 -2
  471. package/dist/jsx/fields/shared/EditorPreviewPanes.native.js.map +1 -1
  472. package/dist/jsx/formEngine/docPermissions.mjs +19 -1
  473. package/dist/jsx/formEngine/docPermissions.mjs.map +1 -1
  474. package/dist/jsx/formEngine/docPermissions.native.js +69 -0
  475. package/dist/jsx/formEngine/docPermissions.native.js.map +1 -1
  476. package/dist/jsx/formEngine/index.mjs +2 -2
  477. package/dist/jsx/formEngine/index.mjs.map +1 -1
  478. package/dist/jsx/formEngine/index.native.js +2 -0
  479. package/dist/jsx/formEngine/index.native.js.map +1 -1
  480. package/dist/jsx/index.js +16 -4
  481. package/dist/jsx/index.js.map +1 -1
  482. package/dist/jsx/index.mjs +16 -4
  483. package/dist/jsx/index.mjs.map +1 -1
  484. package/dist/jsx/index.native.js +67 -7
  485. package/dist/jsx/index.native.js.map +1 -1
  486. package/dist/jsx/liveErrors.mjs +8 -3
  487. package/dist/jsx/liveErrors.mjs.map +1 -1
  488. package/dist/jsx/liveErrors.native.js +8 -2
  489. package/dist/jsx/liveErrors.native.js.map +1 -1
  490. package/dist/jsx/measures.mjs +5 -0
  491. package/dist/jsx/measures.mjs.map +1 -0
  492. package/dist/jsx/measures.native.js +34 -0
  493. package/dist/jsx/measures.native.js.map +1 -0
  494. package/dist/jsx/recordShape.mjs +74 -0
  495. package/dist/jsx/recordShape.mjs.map +1 -0
  496. package/dist/jsx/recordShape.native.js +115 -0
  497. package/dist/jsx/recordShape.native.js.map +1 -0
  498. package/dist/jsx/report/ReportGrid.mjs +428 -0
  499. package/dist/jsx/report/ReportGrid.mjs.map +1 -0
  500. package/dist/jsx/report/ReportGrid.native.js +510 -0
  501. package/dist/jsx/report/ReportGrid.native.js.map +1 -0
  502. package/dist/jsx/report/ReportViewToolbar.mjs +228 -0
  503. package/dist/jsx/report/ReportViewToolbar.mjs.map +1 -0
  504. package/dist/jsx/report/ReportViewToolbar.native.js +303 -0
  505. package/dist/jsx/report/ReportViewToolbar.native.js.map +1 -0
  506. package/dist/jsx/report/queryReport.mjs +404 -0
  507. package/dist/jsx/report/queryReport.mjs.map +1 -0
  508. package/dist/jsx/report/queryReport.native.js +588 -0
  509. package/dist/jsx/report/queryReport.native.js.map +1 -0
  510. package/dist/jsx/report/queryReportColumns.mjs +105 -0
  511. package/dist/jsx/report/queryReportColumns.mjs.map +1 -0
  512. package/dist/jsx/report/queryReportColumns.native.js +159 -0
  513. package/dist/jsx/report/queryReportColumns.native.js.map +1 -0
  514. package/dist/jsx/report/reportViewModel.mjs +343 -0
  515. package/dist/jsx/report/reportViewModel.mjs.map +1 -0
  516. package/dist/jsx/report/reportViewModel.native.js +657 -0
  517. package/dist/jsx/report/reportViewModel.native.js.map +1 -0
  518. package/dist/jsx/report/savedReports.mjs +112 -0
  519. package/dist/jsx/report/savedReports.mjs.map +1 -0
  520. package/dist/jsx/report/savedReports.native.js +169 -0
  521. package/dist/jsx/report/savedReports.native.js.map +1 -0
  522. package/dist/jsx/report/useFrappeReport.mjs +158 -0
  523. package/dist/jsx/report/useFrappeReport.mjs.map +1 -0
  524. package/dist/jsx/report/useFrappeReport.native.js +214 -0
  525. package/dist/jsx/report/useFrappeReport.native.js.map +1 -0
  526. package/dist/jsx/report/useQueryReport.mjs +176 -0
  527. package/dist/jsx/report/useQueryReport.mjs.map +1 -0
  528. package/dist/jsx/report/useQueryReport.native.js +233 -0
  529. package/dist/jsx/report/useQueryReport.native.js.map +1 -0
  530. package/dist/jsx/useFrappeForm.mjs +533 -0
  531. package/dist/jsx/useFrappeForm.mjs.map +1 -0
  532. package/dist/jsx/useFrappeForm.native.js +714 -0
  533. package/dist/jsx/useFrappeForm.native.js.map +1 -0
  534. package/package.json +16 -16
  535. package/src/FileBrowser/FileBrowser.spec.tsx +21 -0
  536. package/src/FileBrowser/FileBrowser.stories.tsx +27 -0
  537. package/src/FileBrowser/index.tsx +25 -2
  538. package/src/FrappeCalendar.tsx +8 -2
  539. package/src/FrappeForm.stories.tsx +52 -0
  540. package/src/FrappeForm.tsx +176 -565
  541. package/src/FrappeListView.cards.stories.tsx +3 -6
  542. package/src/FrappeListView.tsx +15 -55
  543. package/src/FrappeReportBuilder.stories.tsx +34 -7
  544. package/src/FrappeReportBuilder.tsx +790 -380
  545. package/src/FrappeReportView.spec.tsx +10 -6
  546. package/src/FrappeReportView.stories.tsx +20 -1
  547. package/src/FrappeReportView.tsx +89 -415
  548. package/src/dependsOn.ts +4 -1
  549. package/src/fields/shared/EditorPreviewPanes.tsx +2 -2
  550. package/src/formEngine/docPermissions.spec.ts +36 -1
  551. package/src/formEngine/docPermissions.ts +34 -0
  552. package/src/formEngine/index.ts +8 -1
  553. package/src/frappeRemainder.designLaw.spec.ts +9 -1
  554. package/src/frappeRoutes.spec.tsx +9 -0
  555. package/src/frappeViews.designLaw.spec.ts +15 -2
  556. package/src/guestFallback.spec.tsx +236 -0
  557. package/src/index.ts +117 -16
  558. package/src/liveErrors.spec.ts +10 -0
  559. package/src/liveErrors.ts +16 -3
  560. package/src/measures.ts +11 -0
  561. package/src/recordShape.spec.ts +100 -0
  562. package/src/recordShape.ts +133 -0
  563. package/src/report/ReportGrid.spec.tsx +175 -0
  564. package/src/report/ReportGrid.tsx +530 -0
  565. package/src/report/ReportViewToolbar.spec.tsx +90 -0
  566. package/src/report/ReportViewToolbar.tsx +314 -0
  567. package/src/report/queryReport.spec.ts +483 -0
  568. package/src/report/queryReport.ts +722 -0
  569. package/src/report/queryReportColumns.tsx +123 -0
  570. package/src/report/reportViewModel.spec.ts +393 -0
  571. package/src/report/reportViewModel.ts +617 -0
  572. package/src/report/savedReports.ts +172 -0
  573. package/src/report/seam.spec.ts +216 -0
  574. package/src/report/useFrappeReport.ts +241 -0
  575. package/src/report/useQueryReport.spec.tsx +131 -0
  576. package/src/report/useQueryReport.ts +309 -0
  577. package/src/useFrappeForm.spec.tsx +209 -0
  578. package/src/useFrappeForm.ts +778 -0
  579. package/types/FileBrowser/index.d.ts.map +1 -1
  580. package/types/FrappeCalendar.d.ts.map +1 -1
  581. package/types/FrappeForm.d.ts +21 -1
  582. package/types/FrappeForm.d.ts.map +1 -1
  583. package/types/FrappeListView.d.ts.map +1 -1
  584. package/types/FrappeReportBuilder.d.ts +66 -16
  585. package/types/FrappeReportBuilder.d.ts.map +1 -1
  586. package/types/FrappeReportView.d.ts +9 -127
  587. package/types/FrappeReportView.d.ts.map +1 -1
  588. package/types/dependsOn.d.ts.map +1 -1
  589. package/types/formEngine/docPermissions.d.ts +14 -0
  590. package/types/formEngine/docPermissions.d.ts.map +1 -1
  591. package/types/formEngine/index.d.ts +1 -1
  592. package/types/formEngine/index.d.ts.map +1 -1
  593. package/types/index.d.ts +15 -3
  594. package/types/index.d.ts.map +1 -1
  595. package/types/liveErrors.d.ts +9 -1
  596. package/types/liveErrors.d.ts.map +1 -1
  597. package/types/measures.d.ts +3 -0
  598. package/types/measures.d.ts.map +1 -0
  599. package/types/recordShape.d.ts +45 -0
  600. package/types/recordShape.d.ts.map +1 -0
  601. package/types/report/ReportGrid.d.ts +20 -0
  602. package/types/report/ReportGrid.d.ts.map +1 -0
  603. package/types/report/ReportViewToolbar.d.ts +31 -0
  604. package/types/report/ReportViewToolbar.d.ts.map +1 -0
  605. package/types/report/queryReport.d.ts +181 -0
  606. package/types/report/queryReport.d.ts.map +1 -0
  607. package/types/report/queryReportColumns.d.ts +12 -0
  608. package/types/report/queryReportColumns.d.ts.map +1 -0
  609. package/types/report/reportViewModel.d.ts +146 -0
  610. package/types/report/reportViewModel.d.ts.map +1 -0
  611. package/types/report/savedReports.d.ts +27 -0
  612. package/types/report/savedReports.d.ts.map +1 -0
  613. package/types/report/useFrappeReport.d.ts +60 -0
  614. package/types/report/useFrappeReport.d.ts.map +1 -0
  615. package/types/report/useQueryReport.d.ts +37 -0
  616. package/types/report/useQueryReport.d.ts.map +1 -0
  617. package/types/useFrappeForm.d.ts +142 -0
  618. package/types/useFrappeForm.d.ts.map +1 -0
@@ -1,6 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { AsyncDebouncer, CallModule, HttpClient } from "@multiplatform.one/frappe";
3
- import { AsyncBoundary } from "@multiplatform.one/components";
2
+ import { AsyncBoundary, EmptyState } from "@multiplatform.one/components";
4
3
  import { Button, DatePicker, Spinner, formCommonColors } from "@multiplatform.one/forms";
5
4
  import { DataTable, DataTableExport, getDefaultColumnAlign } from "@multiplatform.one/table";
6
5
  import { formatCalendarDate, useResolvedKnobs } from "@multiplatform.one/theme";
@@ -12,98 +11,12 @@ import { useFrappeConfig } from "./FrappeProvider.native.js";
12
11
  import { Check } from "./fields/Check/index.native.js";
13
12
  import { Data } from "./fields/Data/index.native.js";
14
13
  import { Select } from "./fields/Select/index.native.js";
15
- import { toLiveLoadError } from "./liveErrors.native.js";
16
- function _instanceof(left, right) {
17
- "@swc/helpers - instanceof";
18
-
19
- if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
20
- return !!right[Symbol.hasInstance](left);
21
- } else {
22
- return left instanceof right;
23
- }
24
- }
14
+ import { isPermissionError, refusalReason, toLiveLoadError } from "./liveErrors.native.js";
15
+ import { humanizeFrappeError, normalizeFilterMeta, scrubFieldname } from "./report/queryReport.native.js";
16
+ import { useFrappeReport } from "./report/useFrappeReport.native.js";
17
+ import { compactFilterValues, normalizeReportColumn, normalizeReportPayload, normalizeReportRows, scrubFieldname as scrubFieldname2 } from "./report/queryReport.native.js";
18
+ import { useFrappeReport as useFrappeReport2 } from "./report/useFrappeReport.native.js";
25
19
  var ReportDataTable = DataTable;
26
- function scrubFieldname(label) {
27
- return label.trim().replace(/[\s-]+/g, "_").toLowerCase();
28
- }
29
- function normalizeReportColumn(col) {
30
- var _col_label, _col_label1;
31
- if (typeof col === "string") {
32
- var _parts_;
33
- var parts = col.split(":");
34
- var label = (_parts_ = parts[0]) !== null && _parts_ !== void 0 ? _parts_ : "";
35
- var out = {
36
- label,
37
- fieldname: scrubFieldname(label)
38
- };
39
- if (parts.length > 1 && parts[1]) {
40
- var [fieldtype, options] = parts[1].split("/");
41
- if (fieldtype) out.fieldtype = fieldtype;
42
- if (options) out.options = options;
43
- }
44
- if (parts.length === 3 && parts[2]) out.width = parts[2];
45
- return out;
46
- }
47
- return {
48
- ...col,
49
- fieldname: col.fieldname || scrubFieldname((_col_label = col.label) !== null && _col_label !== void 0 ? _col_label : ""),
50
- label: (_col_label1 = col.label) !== null && _col_label1 !== void 0 ? _col_label1 : col.fieldname
51
- };
52
- }
53
- function normalizeReportRows(columns, result) {
54
- if (!(result === null || result === void 0 ? void 0 : result.length)) return [];
55
- return result.map(function (row) {
56
- if (Array.isArray(row)) {
57
- var obj = {};
58
- columns.forEach(function (col, idx) {
59
- obj[col.fieldname] = row[idx];
60
- });
61
- return obj;
62
- }
63
- return row;
64
- });
65
- }
66
- function normalizeReportPayload(raw) {
67
- var _raw_columns, _raw_message;
68
- var columns = ((_raw_columns = raw.columns) !== null && _raw_columns !== void 0 ? _raw_columns : []).map(normalizeReportColumn);
69
- var rows = normalizeReportRows(columns, raw.result);
70
- var message = Array.isArray(raw.message) ? raw.message.filter(Boolean).join(" ") : (_raw_message = raw.message) !== null && _raw_message !== void 0 ? _raw_message : void 0;
71
- return {
72
- columns,
73
- rows,
74
- message: message || void 0,
75
- addTotalRow: Boolean(raw.add_total_row) && !raw.skip_total_row,
76
- filters: raw.filters,
77
- raw
78
- };
79
- }
80
- function compactFilterValues(values) {
81
- var out = {};
82
- var _iteratorNormalCompletion = true,
83
- _didIteratorError = false,
84
- _iteratorError = void 0;
85
- try {
86
- for (var _iterator = Object.entries(values !== null && values !== void 0 ? values : {})[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
87
- var [key, value] = _step.value;
88
- if (value === void 0 || value === null || value === "") continue;
89
- out[key] = value;
90
- }
91
- } catch (err) {
92
- _didIteratorError = true;
93
- _iteratorError = err;
94
- } finally {
95
- try {
96
- if (!_iteratorNormalCompletion && _iterator.return != null) {
97
- _iterator.return();
98
- }
99
- } finally {
100
- if (_didIteratorError) {
101
- throw _iteratorError;
102
- }
103
- }
104
- }
105
- return out;
106
- }
107
20
  function parseSelectOptions(options) {
108
21
  return (options !== null && options !== void 0 ? options : "").split("\n").map(function (opt) {
109
22
  return opt.trim();
@@ -211,177 +124,6 @@ function reportRowLabel(row) {
211
124
  function canDownloadFiles() {
212
125
  return typeof document !== "undefined" && typeof document.createElement === "function" && typeof Blob !== "undefined" && typeof URL !== "undefined" && typeof URL.createObjectURL === "function";
213
126
  }
214
- var callCache = /* @__PURE__ */new Map();
215
- function getCall(connection) {
216
- var _ref, _ref1;
217
- var _connection_auth, _connection_auth1, _connection_auth2;
218
- var key = `${connection.baseURL}:${((_connection_auth = connection.auth) === null || _connection_auth === void 0 ? void 0 : _connection_auth.useToken) ? "t" : ""}:${(_ref = (_connection_auth1 = connection.auth) === null || _connection_auth1 === void 0 ? void 0 : _connection_auth1.token) !== null && _ref !== void 0 ? _ref : ""}:${(_ref1 = (_connection_auth2 = connection.auth) === null || _connection_auth2 === void 0 ? void 0 : _connection_auth2.type) !== null && _ref1 !== void 0 ? _ref1 : ""}`;
219
- var call = callCache.get(key);
220
- if (!call) {
221
- var authConfig = connection.auth ? {
222
- useToken: connection.auth.useToken,
223
- token: connection.auth.token,
224
- type: connection.auth.type
225
- } : void 0;
226
- call = new CallModule(new HttpClient(connection.baseURL, authConfig));
227
- callCache.set(key, call);
228
- }
229
- return call;
230
- }
231
- var DEFAULT_DEBOUNCE_MS = 400;
232
- function useFrappeReport(connection, param) {
233
- var {
234
- reportName,
235
- filters,
236
- fixture,
237
- fetchFilterDefs = false,
238
- ignorePreparedReport = false,
239
- debounceMs = DEFAULT_DEBOUNCE_MS,
240
- enabled = true
241
- } = param;
242
- var isEnabled = enabled && !!reportName && (!!connection || !!fixture);
243
- var [payload, setPayload] = useState(void 0);
244
- var [scriptFilters, setScriptFilters] = useState(void 0);
245
- var [isLoading, setIsLoading] = useState(isEnabled);
246
- var [isFetching, setIsFetching] = useState(false);
247
- var [error, setError] = useState(void 0);
248
- var compactedFilters = useMemo(function () {
249
- return compactFilterValues(filters);
250
- }, [filters]);
251
- var filtersKey = JSON.stringify(compactedFilters);
252
- var runKey = JSON.stringify([connection === null || connection === void 0 ? void 0 : connection.baseURL, !!fixture, reportName, filtersKey, ignorePreparedReport]);
253
- var fetchSeq = useRef(0);
254
- var argsRef = useRef({
255
- reportName,
256
- filters: compactedFilters,
257
- fixture,
258
- ignorePreparedReport
259
- });
260
- argsRef.current = {
261
- reportName,
262
- filters: compactedFilters,
263
- fixture,
264
- ignorePreparedReport
265
- };
266
- var connectionRef = useRef(connection);
267
- connectionRef.current = connection;
268
- var runFetch = useCallback(async function () {
269
- var {
270
- reportName: name,
271
- filters: values,
272
- fixture: fx,
273
- ignorePreparedReport: skipPrepared
274
- } = argsRef.current;
275
- var conn = connectionRef.current;
276
- if (!name || !conn && !fx) return;
277
- var seq = ++fetchSeq.current;
278
- setIsFetching(true);
279
- try {
280
- var raw;
281
- if (fx) {
282
- raw = typeof fx === "function" ? await fx({
283
- reportName: name,
284
- filters: values
285
- }) : fx;
286
- } else if (conn) {
287
- var res = await getCall(conn).post("frappe.desk.query_report.run", {
288
- report_name: name,
289
- filters: values,
290
- ignore_prepared_report: skipPrepared ? 1 : 0,
291
- // Desk parity: only let the server substitute saved custom
292
- // filters when the caller sent no filter values at all.
293
- are_default_filters: Object.keys(values).length ? 0 : 1
294
- });
295
- raw = res.payload.message;
296
- }
297
- if (seq !== fetchSeq.current) return;
298
- setPayload(normalizeReportPayload(raw !== null && raw !== void 0 ? raw : {}));
299
- setError(void 0);
300
- } catch (err) {
301
- if (seq !== fetchSeq.current) return;
302
- setError(_instanceof(err, Error) ? err : new Error(String(err)));
303
- } finally {
304
- if (seq === fetchSeq.current) {
305
- setIsLoading(false);
306
- setIsFetching(false);
307
- }
308
- }
309
- }, []);
310
- var debouncerRef = useRef(void 0);
311
- if (!debouncerRef.current) {
312
- debouncerRef.current = new AsyncDebouncer(function () {
313
- return runFetch();
314
- }, {
315
- wait: debounceMs
316
- });
317
- }
318
- useEffect(function () {
319
- var _debouncerRef_current;
320
- (_debouncerRef_current = debouncerRef.current) === null || _debouncerRef_current === void 0 ? void 0 : _debouncerRef_current.setOptions({
321
- wait: debounceMs
322
- });
323
- }, [debounceMs]);
324
- useEffect(function () {
325
- return function () {
326
- var _debouncerRef_current;
327
- return (_debouncerRef_current = debouncerRef.current) === null || _debouncerRef_current === void 0 ? void 0 : _debouncerRef_current.cancel();
328
- };
329
- }, []);
330
- var lastRunKeyRef = useRef(void 0);
331
- var lastReportRef = useRef(void 0);
332
- useEffect(function () {
333
- if (!isEnabled || lastRunKeyRef.current === runKey) return;
334
- lastRunKeyRef.current = runKey;
335
- var reportChanged = lastReportRef.current !== argsRef.current.reportName;
336
- lastReportRef.current = argsRef.current.reportName;
337
- setError(void 0);
338
- if (reportChanged) {
339
- var _debouncerRef_current;
340
- setIsLoading(true);
341
- (_debouncerRef_current = debouncerRef.current) === null || _debouncerRef_current === void 0 ? void 0 : _debouncerRef_current.cancel();
342
- void runFetch();
343
- } else if (debounceMs <= 0) {
344
- void runFetch();
345
- } else {
346
- var _debouncerRef_current1;
347
- void ((_debouncerRef_current1 = debouncerRef.current) === null || _debouncerRef_current1 === void 0 ? void 0 : _debouncerRef_current1.maybeExecute());
348
- }
349
- }, [isEnabled, runKey, debounceMs, runFetch]);
350
- useEffect(function () {
351
- if (!isEnabled || !fetchFilterDefs || fixture || !connection) {
352
- return;
353
- }
354
- var cancelled = false;
355
- void async function () {
356
- try {
357
- var _ref;
358
- var _res_payload_message;
359
- var res = await getCall(connection).get("frappe.desk.query_report.get_script", {
360
- report_name: reportName
361
- });
362
- if (!cancelled) setScriptFilters((_ref = (_res_payload_message = res.payload.message) === null || _res_payload_message === void 0 ? void 0 : _res_payload_message.filters) !== null && _ref !== void 0 ? _ref : []);
363
- } catch (unused) {
364
- if (!cancelled) setScriptFilters([]);
365
- }
366
- }();
367
- return function () {
368
- cancelled = true;
369
- };
370
- }, [isEnabled, fetchFilterDefs, fixture, connection, reportName]);
371
- var refresh = useCallback(function () {
372
- var _debouncerRef_current;
373
- (_debouncerRef_current = debouncerRef.current) === null || _debouncerRef_current === void 0 ? void 0 : _debouncerRef_current.cancel();
374
- void runFetch();
375
- }, [runFetch]);
376
- return {
377
- payload,
378
- scriptFilters,
379
- isLoading,
380
- isFetching,
381
- error,
382
- refresh
383
- };
384
- }
385
127
  function ReportFilterField(param) {
386
128
  var {
387
129
  def,
@@ -391,6 +133,7 @@ function ReportFilterField(param) {
391
133
  var {
392
134
  t
393
135
  } = useTranslation();
136
+ var label = def.label || def.fieldname;
394
137
  switch (def.fieldtype) {
395
138
  case "Select":
396
139
  {
@@ -401,7 +144,7 @@ function ReportFilterField(param) {
401
144
  } : opt;
402
145
  });
403
146
  return /* @__PURE__ */_jsx(Select, {
404
- label: def.label,
147
+ label,
405
148
  compact: true,
406
149
  options,
407
150
  value: value == null ? "" : String(value),
@@ -411,7 +154,7 @@ function ReportFilterField(param) {
411
154
  case "Date":
412
155
  case "Datetime":
413
156
  return /* @__PURE__ */_jsx(DatePicker, {
414
- label: def.label,
157
+ label,
415
158
  compact: true,
416
159
  value: value == null ? null : String(value),
417
160
  onChange: function onChange1(date) {
@@ -420,7 +163,7 @@ function ReportFilterField(param) {
420
163
  });
421
164
  case "Check":
422
165
  return /* @__PURE__ */_jsx(Check, {
423
- label: def.label,
166
+ label,
424
167
  compact: true,
425
168
  value: Boolean(value),
426
169
  // Wire shape parity with desk: checkboxes travel as 1 / 0.
@@ -430,11 +173,11 @@ function ReportFilterField(param) {
430
173
  });
431
174
  default:
432
175
  return /* @__PURE__ */_jsx(Data, {
433
- label: def.label,
176
+ label,
434
177
  compact: true,
435
178
  value: value == null ? "" : String(value),
436
179
  onChange,
437
- placeholder: def.label
180
+ placeholder: label
438
181
  });
439
182
  }
440
183
  }
@@ -508,8 +251,13 @@ function FrappeReportView(param) {
508
251
  });
509
252
  var filterDefs = useMemo(function () {
510
253
  var _ref2, _ref1;
511
- return (_ref2 = (_ref1 = filterFields !== null && filterFields !== void 0 ? filterFields : payload === null || payload === void 0 ? void 0 : payload.filters) !== null && _ref1 !== void 0 ? _ref1 : scriptFilters) !== null && _ref2 !== void 0 ? _ref2 : [];
254
+ return normalizeFilterMeta((_ref2 = (_ref1 = filterFields !== null && filterFields !== void 0 ? filterFields : payload === null || payload === void 0 ? void 0 : payload.filters) !== null && _ref1 !== void 0 ? _ref1 : scriptFilters) !== null && _ref2 !== void 0 ? _ref2 : []);
512
255
  }, [filterFields, payload === null || payload === void 0 ? void 0 : payload.filters, scriptFilters]);
256
+ var shownFilterDefs = useMemo(function () {
257
+ return filterDefs.filter(function (def) {
258
+ return def.hidden !== 1;
259
+ });
260
+ }, [filterDefs]);
513
261
  var seededReportRef = useRef(void 0);
514
262
  useEffect(function () {
515
263
  if (isControlled || seededReportRef.current === reportName || !filterDefs.length) return;
@@ -522,7 +270,7 @@ function FrappeReportView(param) {
522
270
  try {
523
271
  for (var _iterator = filterDefs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
524
272
  var def = _step.value;
525
- if (def.default != null && def.default !== "" && prev[def.fieldname] == null) {
273
+ if (def.default !== void 0 && def.default !== "" && prev[def.fieldname] == null) {
526
274
  seeded[def.fieldname] = def.default;
527
275
  }
528
276
  }
@@ -563,13 +311,15 @@ function FrappeReportView(param) {
563
311
  });
564
312
  }, [payload === null || payload === void 0 ? void 0 : payload.columns]);
565
313
  var exportEnabled = showExport && canDownloadFiles();
566
- var hasToolbar = filterDefs.length > 0 || showRefresh || exportEnabled;
314
+ var refused = error !== void 0 && isPermissionError(error);
315
+ var refreshShown = showRefresh && !refused;
316
+ var hasToolbar = shownFilterDefs.length > 0 || refreshShown || exportEnabled;
567
317
  if (error && errorRenderer) {
568
318
  return /* @__PURE__ */_jsx(_Fragment, {
569
319
  children: errorRenderer(error)
570
320
  });
571
321
  }
572
- var normalizedError = error ? toLiveLoadError(error, {
322
+ var normalizedError = error && !refused ? toLiveLoadError(error, {
573
323
  permissionMessage: t("You do not have permission to run {{reportName}}", {
574
324
  reportName
575
325
  }),
@@ -577,7 +327,7 @@ function FrappeReportView(param) {
577
327
  reportName
578
328
  })
579
329
  }) : null;
580
- var boundaryState = normalizedError ? {
330
+ var boundaryState = refused ? null : normalizedError ? {
581
331
  error: normalizedError
582
332
  } : isLoading ? {
583
333
  loading: loading !== null && loading !== void 0 ? loading : true
@@ -595,7 +345,7 @@ function FrappeReportView(param) {
595
345
  ...knobProps.gap,
596
346
  alignItems: "flex-end",
597
347
  flexWrap: "wrap",
598
- children: [filterDefs.map(function (def) {
348
+ children: [shownFilterDefs.map(function (def) {
599
349
  return /* @__PURE__ */_jsx(YStack, {
600
350
  minWidth: 180,
601
351
  maxWidth: 280,
@@ -622,7 +372,7 @@ function FrappeReportView(param) {
622
372
  color: formCommonColors.muted,
623
373
  children: t("Updating...")
624
374
  })]
625
- }), showRefresh && /* @__PURE__ */_jsx(Button, {
375
+ }), refreshShown && /* @__PURE__ */_jsx(Button, {
626
376
  size: "$2",
627
377
  icon: ArrowClockwiseIcon,
628
378
  onPress: refresh,
@@ -655,7 +405,13 @@ function FrappeReportView(param) {
655
405
  ...knobProps.label,
656
406
  color: formCommonColors.muted,
657
407
  children: payload.message
658
- }), boundaryState ? /* @__PURE__ */_jsx(AsyncBoundary, {
408
+ }), refused ? /* @__PURE__ */_jsx(EmptyState, {
409
+ testID: "frappe-report-not-permitted",
410
+ title: t("You can't run {{reportName}}", {
411
+ reportName
412
+ }),
413
+ description: refusalReason(humanizeFrappeError(error))
414
+ }) : boundaryState ? /* @__PURE__ */_jsx(AsyncBoundary, {
659
415
  layout: "table",
660
416
  errorTitle: t("Error running {{reportName}}", {
661
417
  reportName
@@ -687,5 +443,5 @@ function FrappeReportView(param) {
687
443
  })]
688
444
  });
689
445
  }
690
- export { FrappeReportView, compactFilterValues, normalizeReportColumn, normalizeReportPayload, normalizeReportRows, reportColumnToDataTableColumn, reportFieldtypeToTableField, reportRowLabel, scrubFieldname, useFrappeReport };
446
+ export { FrappeReportView, compactFilterValues, normalizeReportColumn, normalizeReportPayload, normalizeReportRows, reportColumnToDataTableColumn, reportFieldtypeToTableField, reportRowLabel, scrubFieldname2 as scrubFieldname, useFrappeReport2 as useFrappeReport };
691
447
  //# sourceMappingURL=FrappeReportView.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","AsyncDebouncer","CallModule","HttpClient","AsyncBoundary","Button","DatePicker","Spinner","formCommonColors","DataTable","DataTableExport","getDefaultColumnAlign","formatCalendarDate","useResolvedKnobs","ArrowClockwiseIcon","useCallback","useEffect","useMemo","useRef","useState","useTranslation","Text","XStack","YStack","useFrappeConfig","Check","Data","Select","toLiveLoadError","_instanceof","left","right","Symbol","hasInstance","ReportDataTable","scrubFieldname","label","trim","replace","toLowerCase","normalizeReportColumn","col","_col_label","_col_label1","_parts_","parts","split","out","fieldname","length","fieldtype","options","width","normalizeReportRows","columns","result","map","row","Array","isArray","obj","forEach","idx","normalizeReportPayload","raw","_raw_columns","_raw_message","rows","message","filter","Boolean","join","addTotalRow","add_total_row","skip_total_row","filters","compactFilterValues","values","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Object","entries","iterator","_step","next","done","key","value","err","return","parseSelectOptions","opt","arr","indexOf","reportFieldtypeToTableField","column","field","fieldProps","precision","_column_precision","o","reportColumnToDataTableColumn","Number","id","accessorKey","header","isFinite","meta","align","reportRowLabel","_i","_iter","String","canDownloadFiles","document","createElement","Blob","URL","createObjectURL","callCache","Map","getCall","connection","_ref","_ref1","_connection_auth","_connection_auth1","_connection_auth2","baseURL","auth","useToken","token","type","call","get","authConfig","set","DEFAULT_DEBOUNCE_MS","useFrappeReport","param","reportName","fixture","fetchFilterDefs","ignorePreparedReport","debounceMs","enabled","isEnabled","payload","setPayload","scriptFilters","setScriptFilters","isLoading","setIsLoading","isFetching","setIsFetching","error","setError","compactedFilters","filtersKey","JSON","stringify","runKey","fetchSeq","argsRef","current","connectionRef","runFetch","name","fx","skipPrepared","conn","seq","res","post","report_name","ignore_prepared_report","are_default_filters","keys","Error","debouncerRef","wait","_debouncerRef_current","setOptions","cancel","lastRunKeyRef","lastReportRef","reportChanged","_debouncerRef_current1","maybeExecute","cancelled","_res_payload_message","unused","refresh","ReportFilterField","def","onChange","t","compact","onChange1","date","checked","placeholder","FrappeReportView","controlledFilters","defaultFilters","onFiltersChange","filterFields","onRowPress","showExport","showRefresh","loading","errorRenderer","tableProps","stackProps","knobProps","config","finalBaseURL","finalAuth","realtime","isControlled","internalFilters","setInternalFilters","filterValues","setFilterValue","filterDefs","_ref2","seededReportRef","prev","seeded","default","exportColumns","exportEnabled","hasToolbar","children","normalizedError","permissionMessage","genericMessage","boundaryState","empty","gap","flex","alignItems","flexWrap","minWidth","maxWidth","flexShrink","paddingBottom","size","color","muted","icon","onPress","data","filename","exportFormats","extension","mimeType","description","layout","errorTitle","emptyTitle","onRetry","readOnly","onRowPress1","rowLabel"],"sources":["FrappeReportView.native.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { AsyncDebouncer, CallModule, HttpClient } from \"@multiplatform.one/frappe\";\nimport { AsyncBoundary } from \"@multiplatform.one/components\";\nimport { Button, DatePicker, Spinner, formCommonColors } from \"@multiplatform.one/forms\";\nimport { DataTable, DataTableExport, getDefaultColumnAlign } from \"@multiplatform.one/table\";\nimport { formatCalendarDate, useResolvedKnobs } from \"@multiplatform.one/theme\";\nimport { ArrowClockwiseIcon } from \"@phosphor-icons/react\";\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Text, XStack, YStack } from \"tamagui\";\nimport { useFrappeConfig } from \"./FrappeProvider\";\nimport { Check } from \"./fields/Check\";\nimport { Data } from \"./fields/Data\";\nimport { Select } from \"./fields/Select\";\nimport { toLiveLoadError } from \"./liveErrors\";\nfunction _instanceof(left, right) {\n \"@swc/helpers - instanceof\";\n if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n return !!right[Symbol.hasInstance](left);\n } else {\n return left instanceof right;\n }\n}\nvar ReportDataTable = DataTable;\nfunction scrubFieldname(label) {\n return label.trim().replace(/[\\s-]+/g, \"_\").toLowerCase();\n}\nfunction normalizeReportColumn(col) {\n var _col_label, _col_label1;\n if (typeof col === \"string\") {\n var _parts_;\n var parts = col.split(\":\");\n var label = (_parts_ = parts[0]) !== null && _parts_ !== void 0 ? _parts_ : \"\";\n var out = {\n label,\n fieldname: scrubFieldname(label)\n };\n if (parts.length > 1 && parts[1]) {\n var [fieldtype, options] = parts[1].split(\"/\");\n if (fieldtype) out.fieldtype = fieldtype;\n if (options) out.options = options;\n }\n if (parts.length === 3 && parts[2]) out.width = parts[2];\n return out;\n }\n return {\n ...col,\n fieldname: col.fieldname || scrubFieldname((_col_label = col.label) !== null && _col_label !== void 0 ? _col_label : \"\"),\n label: (_col_label1 = col.label) !== null && _col_label1 !== void 0 ? _col_label1 : col.fieldname\n };\n}\nfunction normalizeReportRows(columns, result) {\n if (!(result === null || result === void 0 ? void 0 : result.length)) return [];\n return result.map(function(row) {\n if (Array.isArray(row)) {\n var obj = {};\n columns.forEach(function(col, idx) {\n obj[col.fieldname] = row[idx];\n });\n return obj;\n }\n return row;\n });\n}\nfunction normalizeReportPayload(raw) {\n var _raw_columns, _raw_message;\n var columns = ((_raw_columns = raw.columns) !== null && _raw_columns !== void 0 ? _raw_columns : []).map(normalizeReportColumn);\n var rows = normalizeReportRows(columns, raw.result);\n var message = Array.isArray(raw.message) ? raw.message.filter(Boolean).join(\" \") : (_raw_message = raw.message) !== null && _raw_message !== void 0 ? _raw_message : void 0;\n return {\n columns,\n rows,\n message: message || void 0,\n addTotalRow: Boolean(raw.add_total_row) && !raw.skip_total_row,\n filters: raw.filters,\n raw\n };\n}\nfunction compactFilterValues(values) {\n var out = {};\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = Object.entries(values !== null && values !== void 0 ? values : {})[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var [key, value] = _step.value;\n if (value === void 0 || value === null || value === \"\") continue;\n out[key] = value;\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 parseSelectOptions(options) {\n return (options !== null && options !== void 0 ? options : \"\").split(\"\\n\").map(function(opt) {\n return opt.trim();\n }).filter(function(opt, idx, arr) {\n return arr.indexOf(opt) === idx;\n }).map(function(opt) {\n return {\n label: opt,\n value: opt\n };\n });\n}\nfunction reportFieldtypeToTableField(column) {\n switch (column.fieldtype) {\n case \"Int\":\n return {\n field: \"stepper\",\n fieldProps: {\n precision: 0\n }\n };\n case \"Float\":\n case \"Currency\":\n case \"Percent\":\n var _column_precision;\n return {\n field: \"stepper\",\n fieldProps: {\n precision: (_column_precision = column.precision) !== null && _column_precision !== void 0 ? _column_precision : 2\n }\n };\n case \"Check\":\n return {\n field: \"checkbox\"\n };\n case \"Date\":\n return {\n field: \"datepicker\"\n };\n case \"Datetime\":\n return {\n field: \"datetimepicker\"\n };\n case \"Time\":\n return {\n field: \"timepicker\"\n };\n case \"Duration\":\n return {\n field: \"duration\"\n };\n case \"Select\": {\n var options = parseSelectOptions(column.options).filter(function(o) {\n return o.value !== \"\";\n });\n return {\n field: \"select\",\n fieldProps: options.length ? {\n options\n } : void 0\n };\n }\n default:\n return {\n field: \"input\"\n };\n }\n}\nfunction reportColumnToDataTableColumn(column) {\n var { field, fieldProps } = reportFieldtypeToTableField(column);\n var width = column.width != null ? Number(column.width) : void 0;\n return {\n id: column.fieldname,\n accessorKey: column.fieldname,\n header: column.label,\n ...width && Number.isFinite(width) ? {\n width\n } : {},\n field,\n ...fieldProps ? {\n fieldProps\n } : {},\n meta: {\n align: getDefaultColumnAlign({\n id: column.fieldname,\n field,\n fieldProps\n })\n }\n };\n}\nfunction reportRowLabel(row) {\n for (var _i = 0, _iter = [\n \"name\",\n \"title\"\n ]; _i < _iter.length; _i++) {\n var key = _iter[_i];\n var value = row[key];\n if (typeof value === \"string\" && value) return value;\n if (typeof value === \"number\") return String(value);\n }\n return \"\";\n}\nfunction canDownloadFiles() {\n return typeof document !== \"undefined\" && typeof document.createElement === \"function\" && typeof Blob !== \"undefined\" && typeof URL !== \"undefined\" && typeof URL.createObjectURL === \"function\";\n}\nvar callCache = /* @__PURE__ */ new Map();\nfunction getCall(connection) {\n var _ref, _ref1;\n var _connection_auth, _connection_auth1, _connection_auth2;\n var key = `${connection.baseURL}:${((_connection_auth = connection.auth) === null || _connection_auth === void 0 ? void 0 : _connection_auth.useToken) ? \"t\" : \"\"}:${(_ref = (_connection_auth1 = connection.auth) === null || _connection_auth1 === void 0 ? void 0 : _connection_auth1.token) !== null && _ref !== void 0 ? _ref : \"\"}:${(_ref1 = (_connection_auth2 = connection.auth) === null || _connection_auth2 === void 0 ? void 0 : _connection_auth2.type) !== null && _ref1 !== void 0 ? _ref1 : \"\"}`;\n var call = callCache.get(key);\n if (!call) {\n var authConfig = connection.auth ? {\n useToken: connection.auth.useToken,\n token: connection.auth.token,\n type: connection.auth.type\n } : void 0;\n call = new CallModule(new HttpClient(connection.baseURL, authConfig));\n callCache.set(key, call);\n }\n return call;\n}\nvar DEFAULT_DEBOUNCE_MS = 400;\nfunction useFrappeReport(connection, param) {\n var { reportName, filters, fixture, fetchFilterDefs = false, ignorePreparedReport = false, debounceMs = DEFAULT_DEBOUNCE_MS, enabled = true } = param;\n var isEnabled = enabled && !!reportName && (!!connection || !!fixture);\n var [payload, setPayload] = useState(void 0);\n var [scriptFilters, setScriptFilters] = useState(void 0);\n var [isLoading, setIsLoading] = useState(isEnabled);\n var [isFetching, setIsFetching] = useState(false);\n var [error, setError] = useState(void 0);\n var compactedFilters = useMemo(function() {\n return compactFilterValues(filters);\n }, [\n filters\n ]);\n var filtersKey = JSON.stringify(compactedFilters);\n var runKey = JSON.stringify([\n connection === null || connection === void 0 ? void 0 : connection.baseURL,\n !!fixture,\n reportName,\n filtersKey,\n ignorePreparedReport\n ]);\n var fetchSeq = useRef(0);\n var argsRef = useRef({\n reportName,\n filters: compactedFilters,\n fixture,\n ignorePreparedReport\n });\n argsRef.current = {\n reportName,\n filters: compactedFilters,\n fixture,\n ignorePreparedReport\n };\n var connectionRef = useRef(connection);\n connectionRef.current = connection;\n var runFetch = useCallback(async function() {\n var { reportName: name, filters: values, fixture: fx, ignorePreparedReport: skipPrepared } = argsRef.current;\n var conn = connectionRef.current;\n if (!name || !conn && !fx) return;\n var seq = ++fetchSeq.current;\n setIsFetching(true);\n try {\n var raw;\n if (fx) {\n raw = typeof fx === \"function\" ? await fx({\n reportName: name,\n filters: values\n }) : fx;\n } else if (conn) {\n var res = await getCall(conn).post(\"frappe.desk.query_report.run\", {\n report_name: name,\n filters: values,\n ignore_prepared_report: skipPrepared ? 1 : 0,\n // Desk parity: only let the server substitute saved custom\n // filters when the caller sent no filter values at all.\n are_default_filters: Object.keys(values).length ? 0 : 1\n });\n raw = res.payload.message;\n }\n if (seq !== fetchSeq.current) return;\n setPayload(normalizeReportPayload(raw !== null && raw !== void 0 ? raw : {}));\n setError(void 0);\n } catch (err) {\n if (seq !== fetchSeq.current) return;\n setError(_instanceof(err, Error) ? err : new Error(String(err)));\n } finally {\n if (seq === fetchSeq.current) {\n setIsLoading(false);\n setIsFetching(false);\n }\n }\n }, []);\n var debouncerRef = useRef(void 0);\n if (!debouncerRef.current) {\n debouncerRef.current = new AsyncDebouncer(function() {\n return runFetch();\n }, {\n wait: debounceMs\n });\n }\n useEffect(function() {\n var _debouncerRef_current;\n (_debouncerRef_current = debouncerRef.current) === null || _debouncerRef_current === void 0 ? void 0 : _debouncerRef_current.setOptions({\n wait: debounceMs\n });\n }, [\n debounceMs\n ]);\n useEffect(function() {\n return function() {\n var _debouncerRef_current;\n return (_debouncerRef_current = debouncerRef.current) === null || _debouncerRef_current === void 0 ? void 0 : _debouncerRef_current.cancel();\n };\n }, []);\n var lastRunKeyRef = useRef(void 0);\n var lastReportRef = useRef(void 0);\n useEffect(function() {\n if (!isEnabled || lastRunKeyRef.current === runKey) return;\n lastRunKeyRef.current = runKey;\n var reportChanged = lastReportRef.current !== argsRef.current.reportName;\n lastReportRef.current = argsRef.current.reportName;\n setError(void 0);\n if (reportChanged) {\n var _debouncerRef_current;\n setIsLoading(true);\n (_debouncerRef_current = debouncerRef.current) === null || _debouncerRef_current === void 0 ? void 0 : _debouncerRef_current.cancel();\n void runFetch();\n } else if (debounceMs <= 0) {\n void runFetch();\n } else {\n var _debouncerRef_current1;\n void ((_debouncerRef_current1 = debouncerRef.current) === null || _debouncerRef_current1 === void 0 ? void 0 : _debouncerRef_current1.maybeExecute());\n }\n }, [\n isEnabled,\n runKey,\n debounceMs,\n runFetch\n ]);\n useEffect(function() {\n if (!isEnabled || !fetchFilterDefs || fixture || !connection) {\n return;\n }\n var cancelled = false;\n void (async function() {\n try {\n var _ref;\n var _res_payload_message;\n var res = await getCall(connection).get(\"frappe.desk.query_report.get_script\", {\n report_name: reportName\n });\n if (!cancelled) setScriptFilters((_ref = (_res_payload_message = res.payload.message) === null || _res_payload_message === void 0 ? void 0 : _res_payload_message.filters) !== null && _ref !== void 0 ? _ref : []);\n } catch (unused) {\n if (!cancelled) setScriptFilters([]);\n }\n })();\n return function() {\n cancelled = true;\n };\n }, [\n isEnabled,\n fetchFilterDefs,\n fixture,\n connection,\n reportName\n ]);\n var refresh = useCallback(function() {\n var _debouncerRef_current;\n (_debouncerRef_current = debouncerRef.current) === null || _debouncerRef_current === void 0 ? void 0 : _debouncerRef_current.cancel();\n void runFetch();\n }, [\n runFetch\n ]);\n return {\n payload,\n scriptFilters,\n isLoading,\n isFetching,\n error,\n refresh\n };\n}\nfunction ReportFilterField(param) {\n var { def, value, onChange } = param;\n var { t } = useTranslation();\n switch (def.fieldtype) {\n case \"Select\": {\n var options = parseSelectOptions(def.options).map(function(opt) {\n return opt.value === \"\" ? {\n label: t(\"All\"),\n value: \"\"\n } : opt;\n });\n return /* @__PURE__ */ _jsx(Select, {\n label: def.label,\n compact: true,\n options,\n value: value == null ? \"\" : String(value),\n onChange\n });\n }\n case \"Date\":\n case \"Datetime\":\n return /* @__PURE__ */ _jsx(DatePicker, {\n label: def.label,\n compact: true,\n value: value == null ? null : String(value),\n onChange: function onChange1(date) {\n return onChange(date ? formatCalendarDate(date) : \"\");\n }\n });\n case \"Check\":\n return /* @__PURE__ */ _jsx(Check, {\n label: def.label,\n compact: true,\n value: Boolean(value),\n // Wire shape parity with desk: checkboxes travel as 1 / 0.\n onChange: function onChange1(checked) {\n return onChange(checked ? 1 : 0);\n }\n });\n default:\n return /* @__PURE__ */ _jsx(Data, {\n label: def.label,\n compact: true,\n value: value == null ? \"\" : String(value),\n onChange,\n placeholder: def.label\n });\n }\n}\nfunction FrappeReportView(param) {\n var { reportName, filters: controlledFilters, defaultFilters, onFiltersChange, filterFields, onRowPress, fixture, baseURL, auth, showExport = true, showRefresh = true, ignorePreparedReport = false, debounceMs, loading, error: errorRenderer, tableProps, ...stackProps } = param;\n var _ref;\n var { knobProps } = useResolvedKnobs();\n var { t } = useTranslation();\n var config = useFrappeConfig();\n var finalBaseURL = baseURL !== null && baseURL !== void 0 ? baseURL : config === null || config === void 0 ? void 0 : config.baseURL;\n var finalAuth = auth !== null && auth !== void 0 ? auth : config === null || config === void 0 ? void 0 : config.auth;\n if (!finalBaseURL && !fixture) {\n throw new Error(\"FrappeReportView requires baseURL prop or FrappeProvider with baseURL\");\n }\n var connection = useMemo(function() {\n return finalBaseURL ? {\n baseURL: finalBaseURL,\n realtime: config === null || config === void 0 ? void 0 : config.realtime,\n auth: finalAuth\n } : void 0;\n }, [\n finalBaseURL,\n config === null || config === void 0 ? void 0 : config.realtime,\n finalAuth\n ]);\n var isControlled = controlledFilters !== void 0;\n var [internalFilters, setInternalFilters] = useState(function() {\n return defaultFilters !== null && defaultFilters !== void 0 ? defaultFilters : {};\n });\n var filterValues = isControlled ? controlledFilters : internalFilters;\n var setFilterValue = useCallback(function(fieldname, value) {\n var next = {\n ...isControlled ? controlledFilters : internalFilters,\n [fieldname]: value\n };\n if (!isControlled) setInternalFilters(next);\n onFiltersChange === null || onFiltersChange === void 0 ? void 0 : onFiltersChange(next);\n }, [\n isControlled,\n controlledFilters,\n internalFilters,\n onFiltersChange\n ]);\n var { payload, scriptFilters, isLoading, isFetching, error, refresh } = useFrappeReport(connection, {\n reportName,\n filters: filterValues,\n fixture,\n fetchFilterDefs: !filterFields,\n ignorePreparedReport,\n debounceMs\n });\n var filterDefs = useMemo(function() {\n var _ref2, _ref1;\n return (_ref2 = (_ref1 = filterFields !== null && filterFields !== void 0 ? filterFields : payload === null || payload === void 0 ? void 0 : payload.filters) !== null && _ref1 !== void 0 ? _ref1 : scriptFilters) !== null && _ref2 !== void 0 ? _ref2 : [];\n }, [\n filterFields,\n payload === null || payload === void 0 ? void 0 : payload.filters,\n scriptFilters\n ]);\n var seededReportRef = useRef(void 0);\n useEffect(function() {\n if (isControlled || seededReportRef.current === reportName || !filterDefs.length) return;\n seededReportRef.current = reportName;\n setInternalFilters(function(prev) {\n var seeded = {};\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = filterDefs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var def = _step.value;\n if (def.default != null && def.default !== \"\" && prev[def.fieldname] == null) {\n seeded[def.fieldname] = def.default;\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 Object.keys(seeded).length ? {\n ...seeded,\n ...prev\n } : prev;\n });\n }, [\n isControlled,\n reportName,\n filterDefs\n ]);\n var rows = (_ref = payload === null || payload === void 0 ? void 0 : payload.rows) !== null && _ref !== void 0 ? _ref : [];\n var columns = useMemo(function() {\n var _ref2;\n return ((_ref2 = payload === null || payload === void 0 ? void 0 : payload.columns) !== null && _ref2 !== void 0 ? _ref2 : []).map(function(col) {\n return reportColumnToDataTableColumn(col);\n });\n }, [\n payload === null || payload === void 0 ? void 0 : payload.columns\n ]);\n var exportColumns = useMemo(function() {\n var _ref2;\n return ((_ref2 = payload === null || payload === void 0 ? void 0 : payload.columns) !== null && _ref2 !== void 0 ? _ref2 : []).map(function(col) {\n return {\n accessorKey: col.fieldname,\n header: col.label\n };\n });\n }, [\n payload === null || payload === void 0 ? void 0 : payload.columns\n ]);\n var exportEnabled = showExport && canDownloadFiles();\n var hasToolbar = filterDefs.length > 0 || showRefresh || exportEnabled;\n if (error && errorRenderer) {\n return /* @__PURE__ */ _jsx(_Fragment, {\n children: errorRenderer(error)\n });\n }\n var normalizedError = error ? toLiveLoadError(error, {\n permissionMessage: t(\"You do not have permission to run {{reportName}}\", {\n reportName\n }),\n genericMessage: t(\"Error running {{reportName}}\", {\n reportName\n })\n }) : null;\n var boundaryState = normalizedError ? {\n error: normalizedError\n } : isLoading ? {\n loading: loading !== null && loading !== void 0 ? loading : true\n } : rows.length === 0 ? {\n empty: true\n } : null;\n return /* @__PURE__ */ _jsxs(YStack, {\n ...knobProps.gap,\n flex: 1,\n ...stackProps,\n children: [\n /* Filter bar + actions — stays mounted across empty/error states so a\n bad filter can always be corrected. */\n hasToolbar && /* @__PURE__ */ _jsxs(XStack, {\n ...knobProps.gap,\n alignItems: \"flex-end\",\n flexWrap: \"wrap\",\n children: [\n filterDefs.map(function(def) {\n return /* @__PURE__ */ _jsx(YStack, {\n minWidth: 180,\n maxWidth: 280,\n flexShrink: 1,\n children: /* @__PURE__ */ _jsx(ReportFilterField, {\n def,\n value: filterValues[def.fieldname],\n onChange: function onChange(value) {\n return setFilterValue(def.fieldname, value);\n }\n })\n }, def.fieldname);\n }),\n /* @__PURE__ */ _jsx(XStack, {\n flex: 1\n }),\n isFetching && !isLoading && /* @__PURE__ */ _jsxs(XStack, {\n gap: \"$2\",\n alignItems: \"center\",\n paddingBottom: \"$2\",\n children: [\n /* @__PURE__ */ _jsx(Spinner, {\n size: \"small\",\n \"aria-label\": t(\"Updating\")\n }),\n /* @__PURE__ */ _jsx(Text, {\n ...knobProps.label,\n color: formCommonColors.muted,\n children: t(\"Updating...\")\n })\n ]\n }),\n showRefresh && /* @__PURE__ */ _jsx(Button, {\n size: \"$2\",\n icon: ArrowClockwiseIcon,\n onPress: refresh,\n \"aria-label\": t(\"Refresh report\"),\n children: t(\"Refresh\")\n }),\n exportEnabled && rows.length > 0 && /* @__PURE__ */ _jsx(DataTableExport, {\n data: rows,\n columns: exportColumns,\n filename: scrubFieldname(reportName),\n exportFormats: [\n {\n id: \"csv\",\n label: t(\"CSV\"),\n icon: null,\n extension: \"csv\",\n mimeType: \"text/csv\",\n description: t(\"Comma-separated values\"),\n enabled: true\n },\n {\n id: \"json\",\n label: t(\"JSON\"),\n icon: null,\n extension: \"json\",\n mimeType: \"application/json\",\n description: t(\"JavaScript object notation\"),\n enabled: true\n }\n ]\n })\n ]\n }),\n /* Server-side report message (already user-facing). */\n (payload === null || payload === void 0 ? void 0 : payload.message) && /* @__PURE__ */ _jsx(Text, {\n ...knobProps.label,\n color: formCommonColors.muted,\n children: payload.message\n }),\n boundaryState ? /* @__PURE__ */ _jsx(AsyncBoundary, {\n layout: \"table\",\n errorTitle: t(\"Error running {{reportName}}\", {\n reportName\n }),\n emptyTitle: t(\"No results for {{reportName}}\", {\n reportName\n }),\n onRetry: refresh,\n ...boundaryState\n }) : /* @__PURE__ */ _jsx(ReportDataTable, {\n data: rows,\n columns,\n readOnly: true,\n // onRowPress (the stable FrappeReportView prop) rides DataTable's\n // first-class row activation: whole-row press target, roving tab\n // stop (LC-49), Enter/Space activation (LC-50), inner interactive\n // controls win. The forwarded index keeps its full-row-set\n // meaning (DataTable reports page-local indexes). rowLabel names\n // each pressable row by report identity. Both spread BEFORE\n // {...tableProps} so an explicit consumer onRowPress/rowLabel\n // still ejects (consumer-last house rule).\n ...onRowPress ? {\n onRowPress: function onRowPress1(row) {\n return onRowPress(row, rows.indexOf(row));\n }\n } : {},\n rowLabel: reportRowLabel,\n ...tableProps\n })\n ]\n });\n}\nexport {\n FrappeReportView,\n compactFilterValues,\n normalizeReportColumn,\n normalizeReportPayload,\n normalizeReportRows,\n reportColumnToDataTableColumn,\n reportFieldtypeToTableField,\n reportRowLabel,\n scrubFieldname,\n useFrappeReport\n};\n//# sourceMappingURL=FrappeReportView.js.map\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","AsyncBoundary","EmptyState","Button","DatePicker","Spinner","formCommonColors","DataTable","DataTableExport","getDefaultColumnAlign","formatCalendarDate","useResolvedKnobs","ArrowClockwiseIcon","useCallback","useEffect","useMemo","useRef","useState","useTranslation","Text","XStack","YStack","useFrappeConfig","Check","Data","Select","isPermissionError","refusalReason","toLiveLoadError","humanizeFrappeError","normalizeFilterMeta","scrubFieldname","useFrappeReport","compactFilterValues","normalizeReportColumn","normalizeReportPayload","normalizeReportRows","scrubFieldname2","useFrappeReport2","ReportDataTable","parseSelectOptions","options","split","map","opt","trim","filter","idx","arr","indexOf","label","value","reportFieldtypeToTableField","column","fieldtype","field","fieldProps","precision","_column_precision","o","length","reportColumnToDataTableColumn","width","Number","id","fieldname","accessorKey","header","isFinite","meta","align","reportRowLabel","row","_i","_iter","key","String","canDownloadFiles","document","createElement","Blob","URL","createObjectURL","ReportFilterField","param","def","onChange","t","compact","onChange1","date","Boolean","checked","placeholder","FrappeReportView","reportName","filters","controlledFilters","defaultFilters","onFiltersChange","filterFields","onRowPress","fixture","baseURL","auth","showExport","showRefresh","ignorePreparedReport","debounceMs","loading","error","errorRenderer","tableProps","stackProps","_ref","knobProps","config","finalBaseURL","finalAuth","Error","connection","realtime","isControlled","internalFilters","setInternalFilters","filterValues","setFilterValue","next","payload","scriptFilters","isLoading","isFetching","refresh","fetchFilterDefs","filterDefs","_ref2","_ref1","shownFilterDefs","hidden","seededReportRef","current","prev","seeded","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","done","default","err","return","Object","keys","rows","columns","col","exportColumns","exportEnabled","refused","refreshShown","hasToolbar","children","normalizedError","permissionMessage","genericMessage","boundaryState","empty","gap","flex"],"sources":["../../src/FrappeReportView.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useFrappeRows","FrappeRowsReader","param","connection","doctype","options","onChange","rows","isLoading","error"],"sources":["FrappeRowsReader.native.js"],"sourcesContent":["import { useEffect } from \"react\";\nimport { useFrappeRows } from \"./useFrappeRows\";\nfunction FrappeRowsReader(param) {\n var { connection, doctype, options, onChange } = param;\n var { rows, isLoading, error } = useFrappeRows(connection, doctype, options);\n useEffect(function() {\n onChange({\n rows,\n isLoading,\n error\n });\n }, [\n rows,\n isLoading,\n error,\n onChange\n ]);\n return null;\n}\nexport {\n FrappeRowsReader\n};\n//# sourceMappingURL=FrappeRowsReader.js.map\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,OAAO;AACjC,SAASC,aAAa,QAAQ,2BAAiB;AAC/C,SAASC,gBAAgBA,CAACC,KAAK,EAAE;EAC/B,IAAI;IAAEC,UAAU;IAAEC,OAAO;IAAEC,OAAO;IAAEC;EAAS,CAAC,GAAGJ,KAAK;EACtD,IAAI;IAAEK,IAAI;IAAEC,SAAS;IAAEC;EAAM,CAAC,GAAGT,aAAa,CAACG,UAAU,EAAEC,OAAO,EAAEC,OAAO,CAAC;EAC5EN,SAAS,CAAC,YAAW;IACnBO,QAAQ,CAAC;MACPC,IAAI;MACJC,SAAS;MACTC;IACF,CAAC,CAAC;EACJ,CAAC,EAAE,CACDF,IAAI,EACJC,SAAS,EACTC,KAAK,EACLH,QAAQ,CACT,CAAC;EACF,OAAO,IAAI;AACb;AACA,SACEL,gBAAgB","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useFrappeRows","FrappeRowsReader","param","connection","doctype","options","onChange","rows","isLoading","error"],"sources":["../../src/FrappeRowsReader.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,QAAiB;AAC1B,SAAAC,aAAA;AAAA,SACEC,iBAAAC,KAAA;EAAA;IAGKC,UAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC;EAAA,IAAAJ,KAAA;EAqBA;IAAAK,IAAS;IAAAC,SAAA;IAAAC;EAAiE,IAAAT,aAAA,CAAAG,UAAA,EAAAC,OAAA,EAAAC,OAAA;EAC/EN,SAAA;IACAO,QAAA;MACAC,IAAA;MACAC,SAAA;MAC8BC;IAC9B;EACA,IACEF,IAAA,EACFC,SAAU,EACVC,KAAO,EACTH,QAAA,C","ignoreList":[]}