@multiplatform.one/frappe-ui 7.28.1 → 7.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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,444 @@
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 queryReport_exports = {};
24
+ __export(queryReport_exports, {
25
+ buildRunFilters: () => buildRunFilters,
26
+ compactFilterValues: () => compactFilterValues,
27
+ compactQueryReportFilters: () => compactQueryReportFilters,
28
+ defaultFilterValues: () => defaultFilterValues,
29
+ extractScriptFilters: () => extractScriptFilters,
30
+ humanizeFrappeError: () => humanizeFrappeError,
31
+ isEmptyFilterValue: () => isEmptyFilterValue,
32
+ normalizeFilterMeta: () => normalizeFilterMeta,
33
+ normalizeQueryReportColumns: () => normalizeQueryReportColumns,
34
+ normalizeQueryReportPayload: () => normalizeQueryReportPayload,
35
+ normalizeQueryReportRows: () => normalizeQueryReportRows,
36
+ normalizeReportColumn: () => normalizeReportColumn,
37
+ normalizeReportPayload: () => normalizeReportPayload,
38
+ normalizeReportRows: () => normalizeReportRows,
39
+ scrubFieldname: () => scrubFieldname,
40
+ stripHtml: () => stripHtml
41
+ });
42
+ module.exports = __toCommonJS(queryReport_exports);
43
+ var import_frappe = require("@multiplatform.one/frappe");
44
+ function scrubFieldname(label) {
45
+ return label.replace(/ /g, "_").replace(/-/g, "_").toLowerCase();
46
+ }
47
+ function stripHtml(value) {
48
+ if (!value.includes("<") && !value.includes("&")) return value;
49
+ return value.replace(/<[^>]*>/g, "").replace(/&nbsp;/g, " ").replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&quot;/g, '"').replace(/&#39;/g, "'").replace(/\s+/g, " ").trim();
50
+ }
51
+ function parseWidth(raw) {
52
+ if (typeof raw === "number") return raw > 0 ? raw : void 0;
53
+ if (typeof raw === "string" && raw) {
54
+ const parsed = Number.parseInt(raw, 10);
55
+ if (!Number.isNaN(parsed) && parsed > 0) return parsed;
56
+ }
57
+ return void 0;
58
+ }
59
+ function parsePrecision(raw) {
60
+ const parsed = typeof raw === "string" && raw ? Number(raw) : raw;
61
+ return typeof parsed === "number" && Number.isInteger(parsed) && parsed >= 0 ? parsed : void 0;
62
+ }
63
+ function normalizeQueryReportColumns(raw) {
64
+ const used = /* @__PURE__ */new Set();
65
+ const columns = [];
66
+ (raw ?? []).forEach((entry, index) => {
67
+ let label = "";
68
+ let fieldname = "";
69
+ let fieldtype = "";
70
+ let options;
71
+ let width;
72
+ let precision;
73
+ if (typeof entry === "string") {
74
+ const [labelPart = "", typePart = "", widthPart = ""] = entry.split(":");
75
+ label = labelPart.trim();
76
+ const [typeBit = "", optionsBit = ""] = typePart.split("/");
77
+ fieldtype = typeBit.trim();
78
+ options = optionsBit.trim() || void 0;
79
+ width = parseWidth(widthPart.trim());
80
+ } else if (entry && typeof entry === "object") {
81
+ const column = entry;
82
+ label = typeof column.label === "string" ? column.label : "";
83
+ fieldname = typeof column.fieldname === "string" ? column.fieldname : "";
84
+ fieldtype = typeof column.fieldtype === "string" ? column.fieldtype : "";
85
+ options = typeof column.options === "string" && column.options ? column.options : void 0;
86
+ width = parseWidth(column.width);
87
+ precision = parsePrecision(column.precision);
88
+ } else {
89
+ return;
90
+ }
91
+ let id = fieldname || scrubFieldname(label) || `col_${index}`;
92
+ if (used.has(id)) id = `${id}_${index}`;
93
+ used.add(id);
94
+ columns.push({
95
+ fieldname: id,
96
+ label: label || id,
97
+ fieldtype,
98
+ options,
99
+ width,
100
+ precision
101
+ });
102
+ });
103
+ return columns;
104
+ }
105
+ function normalizeQueryReportRows(raw, columns) {
106
+ const rows = [];
107
+ for (const entry of raw ?? []) {
108
+ if (Array.isArray(entry)) {
109
+ const row = {};
110
+ columns.forEach((column, index) => {
111
+ row[column.fieldname] = entry[index];
112
+ });
113
+ rows.push(row);
114
+ } else if (entry && typeof entry === "object") {
115
+ rows.push(entry);
116
+ }
117
+ }
118
+ return rows;
119
+ }
120
+ function coerceFlag(raw) {
121
+ return raw === 1 || raw === "1" || raw === true ? 1 : 0;
122
+ }
123
+ function coerceFilterMetaEntry(row) {
124
+ const fieldname = typeof row.fieldname === "string" && row.fieldname ? row.fieldname : typeof row.label === "string" && row.label ? scrubFieldname(row.label) : "";
125
+ if (!fieldname) return void 0;
126
+ let defaultValue;
127
+ if (typeof row.default === "string" && row.default !== "") defaultValue = row.default;else if (typeof row.default === "number") defaultValue = row.default;else if (typeof row.default === "boolean") defaultValue = row.default ? 1 : 0;
128
+ return {
129
+ fieldname,
130
+ label: typeof row.label === "string" ? row.label : void 0,
131
+ fieldtype: typeof row.fieldtype === "string" ? row.fieldtype : void 0,
132
+ options: typeof row.options === "string" ? row.options : Array.isArray(row.options) && row.options.every(entry => typeof entry === "string") ? row.options.join("\n") : void 0,
133
+ default: defaultValue,
134
+ mandatory: coerceFlag(row.mandatory) || coerceFlag(row.reqd) ? 1 : 0,
135
+ wildcard_filter: coerceFlag(row.wildcard_filter),
136
+ hidden: coerceFlag(row.hidden),
137
+ read_only: coerceFlag(row.read_only) || coerceFlag(row.readOnly) ? 1 : 0
138
+ };
139
+ }
140
+ function normalizeFilterMeta(raw) {
141
+ if (!Array.isArray(raw)) return [];
142
+ const filters = [];
143
+ for (const entry of raw) {
144
+ if (!entry || typeof entry !== "object") continue;
145
+ const meta = coerceFilterMetaEntry(entry);
146
+ if (meta) filters.push(meta);
147
+ }
148
+ return filters;
149
+ }
150
+ function isEmptyFilterValue(value) {
151
+ return value === void 0 || value === null || value === "";
152
+ }
153
+ function compactFilterValues(values) {
154
+ const out = {};
155
+ for (const [fieldname, value] of Object.entries(values ?? {})) {
156
+ if (!isEmptyFilterValue(value)) out[fieldname] = value;
157
+ }
158
+ return out;
159
+ }
160
+ function normalizeQueryReportPayload(raw) {
161
+ const columns = normalizeQueryReportColumns(raw.columns);
162
+ const rows = normalizeQueryReportRows(raw.result, columns);
163
+ const message = Array.isArray(raw.message) ? raw.message.filter(Boolean).join(" ") : raw.message ?? void 0;
164
+ return {
165
+ columns,
166
+ rows,
167
+ message: message || void 0,
168
+ addTotalRow: Boolean(raw.add_total_row) && !raw.skip_total_row,
169
+ filters: raw.filters,
170
+ raw
171
+ };
172
+ }
173
+ function compactQueryReportFilters(filterMeta, values) {
174
+ const declared = {};
175
+ for (const filter of filterMeta) declared[filter.fieldname] = values[filter.fieldname];
176
+ return compactFilterValues(declared);
177
+ }
178
+ function defaultFilterValues(filterMeta) {
179
+ const defaults = {};
180
+ for (const filter of filterMeta) {
181
+ if (filter.default !== void 0 && filter.default !== "") defaults[filter.fieldname] = filter.default;
182
+ }
183
+ return defaults;
184
+ }
185
+ function buildRunFilters(filterMeta, filters) {
186
+ const metaByField = new Map(filterMeta.map(filter => [filter.fieldname, filter]));
187
+ const out = {};
188
+ for (const [fieldname, rawValue] of Object.entries(filters)) {
189
+ let value = rawValue === true ? 1 : rawValue;
190
+ if (isEmptyFilterValue(value) || value === false || value === 0) continue;
191
+ const meta = metaByField.get(fieldname);
192
+ if (meta?.wildcard_filter === 1 && typeof value === "string" && !value.includes("%")) value = `%${value}%`;
193
+ if (meta?.fieldtype !== void 0 && NUMERIC_FILTER_FIELDTYPES.has(meta.fieldtype) && typeof value === "string" && value.trim() !== "" && Number.isFinite(Number(value))) value = Number(value);
194
+ out[fieldname] = value;
195
+ }
196
+ return out;
197
+ }
198
+ const EMPTY_EXTRACTION = {
199
+ declared: false,
200
+ declaredCount: 0,
201
+ filters: []
202
+ };
203
+ const RENDERABLE_FILTER_FIELDTYPES = /* @__PURE__ */new Set(["Data", "Small Text", "Text", "Int", "Float", "Currency", "Percent", "Date", "Datetime", "Time", "Check", "Select", "Link"]);
204
+ const NUMERIC_FILTER_FIELDTYPES = /* @__PURE__ */new Set(["Int", "Float", "Currency", "Percent"]);
205
+ function scanStringEnd(text, start) {
206
+ const quote = text[start];
207
+ let index = start + 1;
208
+ while (index < text.length) {
209
+ const ch = text[index];
210
+ if (ch === "\\") {
211
+ index += 2;
212
+ continue;
213
+ }
214
+ if (ch === quote) return index + 1;
215
+ index += 1;
216
+ }
217
+ return index;
218
+ }
219
+ function scanCommentEnd(text, start) {
220
+ const next = text[start + 1];
221
+ if (next === "/") {
222
+ const newline = text.indexOf("\n", start);
223
+ return newline === -1 ? text.length : newline + 1;
224
+ }
225
+ if (next === "*") {
226
+ const end = text.indexOf("*/", start + 2);
227
+ return end === -1 ? text.length : end + 2;
228
+ }
229
+ return start + 1;
230
+ }
231
+ function matchBracket(text, open) {
232
+ const openCh = text[open];
233
+ const closeCh = openCh === "[" ? "]" : openCh === "{" ? "}" : openCh === "(" ? ")" : "";
234
+ if (!closeCh) return -1;
235
+ let depth = 0;
236
+ let index = open;
237
+ while (index < text.length) {
238
+ const ch = text[index];
239
+ if (ch === "'" || ch === '"' || ch === "`") {
240
+ index = scanStringEnd(text, index);
241
+ continue;
242
+ }
243
+ if (ch === "/") {
244
+ index = scanCommentEnd(text, index);
245
+ continue;
246
+ }
247
+ if (ch === openCh) depth += 1;else if (ch === closeCh) {
248
+ depth -= 1;
249
+ if (depth === 0) return index;
250
+ }
251
+ index += 1;
252
+ }
253
+ return -1;
254
+ }
255
+ function unescapeStringBody(body) {
256
+ return body.replace(/\\(.)/g, (_, ch) => ch === "n" ? "\n" : ch === "t" ? " " : ch === "r" ? "\r" : ch);
257
+ }
258
+ function interpretScriptValue(raw) {
259
+ const value = raw.trim();
260
+ if (!value) return void 0;
261
+ const first = value[0];
262
+ if (first === "'" || first === '"' || first === "`") {
263
+ const end = scanStringEnd(value, 0);
264
+ if (end !== value.length) return void 0;
265
+ const body = value.slice(1, -1);
266
+ if (first === "`" && body.includes("${")) return void 0;
267
+ return unescapeStringBody(body);
268
+ }
269
+ if (/^__\s*\(/.test(value)) {
270
+ const parenIndex = value.indexOf("(");
271
+ const rest = value.slice(parenIndex + 1).trim();
272
+ const quote = rest[0];
273
+ if (quote !== "'" && quote !== '"' && quote !== "`") return void 0;
274
+ const quoteIndex = value.indexOf(quote, parenIndex);
275
+ const end = scanStringEnd(value, quoteIndex);
276
+ return unescapeStringBody(value.slice(quoteIndex + 1, end - 1));
277
+ }
278
+ if (/^-?\d+(\.\d+)?$/.test(value)) return Number(value);
279
+ if (value === "true") return true;
280
+ if (value === "false") return false;
281
+ if (first === "[") {
282
+ const close = matchBracket(value, 0);
283
+ if (close !== value.length - 1) return void 0;
284
+ const entries = [];
285
+ let index = 1;
286
+ while (index < close) {
287
+ const ch = value[index];
288
+ if (ch === "'" || ch === '"' || ch === "`") {
289
+ const end = scanStringEnd(value, index);
290
+ const body = value.slice(index + 1, end - 1);
291
+ if (ch === "`" && body.includes("${")) return void 0;
292
+ entries.push(unescapeStringBody(body));
293
+ index = end;
294
+ continue;
295
+ }
296
+ if (ch === "/" && (value[index + 1] === "/" || value[index + 1] === "*")) {
297
+ index = scanCommentEnd(value, index);
298
+ continue;
299
+ }
300
+ if (ch === "," || ch === " " || ch === " " || ch === "\n" || ch === "\r") {
301
+ index += 1;
302
+ continue;
303
+ }
304
+ return void 0;
305
+ }
306
+ return entries;
307
+ }
308
+ return void 0;
309
+ }
310
+ function parseScriptObject(source) {
311
+ const record = {};
312
+ let index = 1;
313
+ const end = source.length - 1;
314
+ while (index < end) {
315
+ const ch = source[index];
316
+ if (ch === "/" && (source[index + 1] === "/" || source[index + 1] === "*")) {
317
+ index = scanCommentEnd(source, index);
318
+ continue;
319
+ }
320
+ if (/\s|,/.test(ch)) {
321
+ index += 1;
322
+ continue;
323
+ }
324
+ let key = "";
325
+ if (ch === "'" || ch === '"') {
326
+ const keyEnd = scanStringEnd(source, index);
327
+ key = source.slice(index + 1, keyEnd - 1);
328
+ index = keyEnd;
329
+ } else {
330
+ const keyMatch = source.slice(index, index + 64).match(/^[A-Za-z_$][\w$]*/);
331
+ if (!keyMatch) break;
332
+ key = keyMatch[0];
333
+ index += key.length;
334
+ }
335
+ while (index < end && /\s/.test(source[index])) index += 1;
336
+ if (source[index] !== ":") break;
337
+ index += 1;
338
+ let valueRaw = "";
339
+ while (index < end) {
340
+ const valueCh = source[index];
341
+ if (valueCh === "'" || valueCh === '"' || valueCh === "`") {
342
+ const stringEnd = scanStringEnd(source, index);
343
+ valueRaw += source.slice(index, stringEnd);
344
+ index = stringEnd;
345
+ continue;
346
+ }
347
+ if (valueCh === "/" && (source[index + 1] === "/" || source[index + 1] === "*")) {
348
+ index = scanCommentEnd(source, index);
349
+ continue;
350
+ }
351
+ if (valueCh === "{" || valueCh === "[" || valueCh === "(") {
352
+ const close = matchBracket(source, index);
353
+ if (close === -1) return record;
354
+ valueRaw += source.slice(index, close + 1);
355
+ index = close + 1;
356
+ continue;
357
+ }
358
+ if (valueCh === ",") {
359
+ index += 1;
360
+ break;
361
+ }
362
+ valueRaw += valueCh;
363
+ index += 1;
364
+ }
365
+ const interpreted = interpretScriptValue(valueRaw);
366
+ if (interpreted !== void 0) record[key] = interpreted;
367
+ }
368
+ return record;
369
+ }
370
+ function extractScriptFilters(script) {
371
+ if (!script) return EMPTY_EXTRACTION;
372
+ const keyMatch = script.match(/\bfilters\s*:\s*\[/);
373
+ if (!keyMatch || keyMatch.index === void 0) return EMPTY_EXTRACTION;
374
+ const openBracket = keyMatch.index + keyMatch[0].length - 1;
375
+ const closeBracket = matchBracket(script, openBracket);
376
+ if (closeBracket === -1) return EMPTY_EXTRACTION;
377
+ const filters = [];
378
+ let declaredCount = 0;
379
+ let index = openBracket + 1;
380
+ while (index < closeBracket) {
381
+ const ch = script[index];
382
+ if (ch === "{") {
383
+ const close = matchBracket(script, index);
384
+ if (close === -1 || close > closeBracket) break;
385
+ declaredCount += 1;
386
+ const record = parseScriptObject(script.slice(index, close + 1));
387
+ const meta = coerceFilterMetaEntry(record);
388
+ const fieldtype = meta?.fieldtype ?? "Data";
389
+ const needsOptions = fieldtype === "Select" || fieldtype === "Link";
390
+ if (meta && RENDERABLE_FILTER_FIELDTYPES.has(fieldtype) && (!needsOptions || (meta.options ?? "") !== "")) filters.push({
391
+ ...meta,
392
+ fieldtype
393
+ });
394
+ index = close + 1;
395
+ continue;
396
+ }
397
+ if (ch === "'" || ch === '"' || ch === "`") {
398
+ index = scanStringEnd(script, index);
399
+ continue;
400
+ }
401
+ if (ch === "/" && (script[index + 1] === "/" || script[index + 1] === "*")) {
402
+ index = scanCommentEnd(script, index);
403
+ continue;
404
+ }
405
+ index += 1;
406
+ }
407
+ return {
408
+ declared: true,
409
+ declaredCount,
410
+ filters
411
+ };
412
+ }
413
+ function decodeServerMessages(raw) {
414
+ if (typeof raw !== "string" || !raw.startsWith("[")) return void 0;
415
+ const lines = (0, import_frappe.readServerMessages)(raw);
416
+ return lines.length > 0 ? lines.join("\n") : void 0;
417
+ }
418
+ function humanizeFrappeError(err) {
419
+ if (err instanceof Error) {
420
+ const source = err;
421
+ const data = source.data;
422
+ const decoded = decodeServerMessages(data?._server_messages) ?? decodeServerMessages(err.message);
423
+ if (!decoded) return err;
424
+ const humanized = new Error(decoded);
425
+ if (source.status !== void 0) humanized.status = source.status;
426
+ const excType = source.exc_type ?? data?.exc_type;
427
+ if (excType !== void 0) humanized.exc_type = excType;
428
+ if (source.data !== void 0) humanized.data = source.data;
429
+ if (err.stack) humanized.stack = err.stack;
430
+ return humanized;
431
+ }
432
+ return new Error(String(err));
433
+ }
434
+ const normalizeReportPayload = normalizeQueryReportPayload;
435
+ function normalizeReportColumn(column) {
436
+ return normalizeQueryReportColumns([column])[0] ?? {
437
+ fieldname: "col_0",
438
+ label: "col_0",
439
+ fieldtype: ""
440
+ };
441
+ }
442
+ function normalizeReportRows(columns, result) {
443
+ return normalizeQueryReportRows(result, columns);
444
+ }