@multiplatform.one/backoffice 7.28.1 → 7.29.0

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