@objectstack/console 17.3.0 → 17.4.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 (188) hide show
  1. package/CHANGELOG.md +87 -0
  2. package/dist/.objectui-sha +1 -1
  3. package/dist/assets/{ActionResultDialog-CQwenjVA.js → ActionResultDialog-Bsr2GS71.js} +1 -1
  4. package/dist/assets/{AiPendingActionsPage-7gZ8zlOy.js → AiPendingActionsPage-DB-UVcdM.js} +1 -1
  5. package/dist/assets/{ApiConsolePage-DUF0ysH7.js → ApiConsolePage-Bzqo2owc.js} +1 -1
  6. package/dist/assets/{AppDocsIndex-CP_AVG4X.js → AppDocsIndex-KhVqdZ-P.js} +1 -1
  7. package/dist/assets/{AppManagementPage-BJktnoa5.js → AppManagementPage-CsZ0LMQn.js} +1 -1
  8. package/dist/assets/{ApprovalsInboxPage-DlnxY-uy.js → ApprovalsInboxPage-D_LOnhJ7.js} +1 -1
  9. package/dist/assets/{AuditLogPage-DIJPRjji.js → AuditLogPage-B9eqwuzl.js} +1 -1
  10. package/dist/assets/{ComponentNavView-C84QByT7.js → ComponentNavView-DeokLfkW.js} +1 -1
  11. package/dist/assets/{CreateViewDialog-Zbd9Cagm.js → CreateViewDialog-BMdQ4ZYy.js} +1 -1
  12. package/dist/assets/{DashboardView-UyKHklBx.js → DashboardView-DHZboRi8.js} +1 -1
  13. package/dist/assets/{DeveloperHubPage-BRyNdrCJ.js → DeveloperHubPage-C_VYirN0.js} +1 -1
  14. package/dist/assets/{DocPage-Bx8ZXCYt.js → DocPage-_9x-3Dbi.js} +1 -1
  15. package/dist/assets/{DocShell-Ipy_IDvh.js → DocShell-D4dSPfBz.js} +1 -1
  16. package/dist/assets/{DocsIndex-CmY-7OQR.js → DocsIndex-CJVRa_hE.js} +1 -1
  17. package/dist/assets/{DocsLayout-BNsSvaz2.js → DocsLayout-C-tYgUZv.js} +1 -1
  18. package/dist/assets/{DocsSlug-Cb_NMM1k.js → DocsSlug-DmyGpfEy.js} +1 -1
  19. package/dist/assets/{ExpressionProvider-DqGWVuxV.js → ExpressionProvider-B6z09kM6.js} +1 -1
  20. package/dist/assets/{FlowRunsPage-B6ustUgi.js → FlowRunsPage-OjGJi-JU.js} +1 -1
  21. package/dist/assets/{IntegrationsPage-chOxmiyU.js → IntegrationsPage-CrDMDe62.js} +1 -1
  22. package/dist/assets/{InterfaceListPage-DVETnQm5.js → InterfaceListPage-P3y6hqTX.js} +1 -1
  23. package/dist/assets/{MarketplaceInstalledPage-DA5pjhAz.js → MarketplaceInstalledPage-CQek7WnV.js} +1 -1
  24. package/dist/assets/{MarketplacePackagePage-dCIVHBFi.js → MarketplacePackagePage-DL2ivKSc.js} +1 -1
  25. package/dist/assets/{MarketplacePage-wJb6g1p7.js → MarketplacePage-B-6EokyB.js} +1 -1
  26. package/dist/assets/{MetadataInspector-Cu-n1FYz.js → MetadataInspector-IQGUoLyp.js} +1 -1
  27. package/dist/assets/{ObjectDataPage-CP-YSZYQ.js → ObjectDataPage-Bmc3RQhM.js} +1 -1
  28. package/dist/assets/{PageView-B1_ibRuM.js → PageView-DzUZqB_h.js} +1 -1
  29. package/dist/assets/{ProfilePage-DEr5iZVB.js → ProfilePage-NklCqPxc.js} +1 -1
  30. package/dist/assets/{PublicFormsPage-CBcKQbNl.js → PublicFormsPage-CItIvcLQ.js} +1 -1
  31. package/dist/assets/RecordDetailView-XWxuegfV.js +3 -0
  32. package/dist/assets/{RecordFormPage-CGQlYWDk.js → RecordFormPage-B-yrhs7J.js} +1 -1
  33. package/dist/assets/{ReportDefaultInspector-R_p6YStL.js → ReportDefaultInspector-D5Kro5_t.js} +1 -1
  34. package/dist/assets/{ReportView-BTMrtcGH.js → ReportView-COpZ8PQT.js} +1 -1
  35. package/dist/assets/{RuntimeDraftBar-agGU39FL.js → RuntimeDraftBar-CSVtuByp.js} +1 -1
  36. package/dist/assets/{SchemaForm-DJbupOno.js → SchemaForm-DIsxxOZF.js} +1 -1
  37. package/dist/assets/{SearchResultsPage-CHhZUc6L.js → SearchResultsPage-B2r6kgni.js} +1 -1
  38. package/dist/assets/{SettingsHub-BGLR_gS7.js → SettingsHub-DQz2HDtZ.js} +1 -1
  39. package/dist/assets/{SettingsView-Bq-7Zkzs.js → SettingsView-BfOEalDW.js} +1 -1
  40. package/dist/assets/{SkeletonDetail-B4-UKxai.js → SkeletonDetail-DMOa5zcl.js} +1 -1
  41. package/dist/assets/{SystemHubPage-CVZVag1e.js → SystemHubPage-DM2VRSIP.js} +1 -1
  42. package/dist/assets/{abnfDiagram-VCTEODGH-DUS5D5dU.js → abnfDiagram-VCTEODGH-DaPlU6Hz.js} +1 -1
  43. package/dist/assets/{app-shell-eager-leaves-BB0oaPx6.js → app-shell-eager-leaves-wjbiJgVZ.js} +1 -1
  44. package/dist/assets/architectureDiagram-5GKGNRK7-Cq014PwG.js +36 -0
  45. package/dist/assets/{blockDiagram-OSKFZWR5-Bz2hnVmp.js → blockDiagram-OSKFZWR5-vtlcoeZc.js} +1 -1
  46. package/dist/assets/{c4Diagram-7LVT6UL2-DU3u1Y6c.js → c4Diagram-7LVT6UL2-BrdwRG2M.js} +1 -1
  47. package/dist/assets/channel-D2IgUFnY.js +1 -0
  48. package/dist/assets/{chunk-3NF5O7KM-B8Q7HUio.js → chunk-3NF5O7KM-CjWAf_Jo.js} +1 -1
  49. package/dist/assets/{chunk-4HAMMTFA-BPKwX4iB.js → chunk-4HAMMTFA-BtV_msXT.js} +1 -1
  50. package/dist/assets/chunk-75Z2AOVW-DdRL9yNr.js +2 -0
  51. package/dist/assets/chunk-CLGD4ZFX-De9kMAXh.js +1 -0
  52. package/dist/assets/{chunk-DU6HZSFF-BkY4hAzc.js → chunk-DU6HZSFF-DqjylQO-.js} +1 -1
  53. package/dist/assets/chunk-F27PBJKO-tEB_K-iD.js +1 -0
  54. package/dist/assets/{chunk-GMAD6QVW-DZo_NykZ.js → chunk-GMAD6QVW-BMzd_HHM.js} +1 -1
  55. package/dist/assets/{chunk-GVQU2GXP-9ELY9S6X.js → chunk-GVQU2GXP-B1p1nHC0.js} +1 -1
  56. package/dist/assets/{chunk-H2I77ZZE-vCr_buP7.js → chunk-H2I77ZZE-ioXC4dHO.js} +1 -1
  57. package/dist/assets/{chunk-HLEWEB6X-iPkY2ESt.js → chunk-HLEWEB6X-zZ3ZMup3.js} +1 -1
  58. package/dist/assets/chunk-L3NEJ4N5-DePXufTQ.js +1 -0
  59. package/dist/assets/{chunk-LQGUR6SS-iVI0GACK.js → chunk-LQGUR6SS-BUWUp_dz.js} +1 -1
  60. package/dist/assets/{chunk-OSK3NFVY-DcRwXCQD.js → chunk-OSK3NFVY-L7nTUJKT.js} +2 -2
  61. package/dist/assets/{chunk-P2QGCYS3-nx2-dM5t.js → chunk-P2QGCYS3-BG-i3rdI.js} +1 -1
  62. package/dist/assets/{chunk-POPQ4Y6H-BxLOacOG.js → chunk-POPQ4Y6H-DLEB8EqK.js} +1 -1
  63. package/dist/assets/{chunk-PWAF6VOD-2mst9kZu.js → chunk-PWAF6VOD-Be_prJjm.js} +1 -1
  64. package/dist/assets/{chunk-SVP7TREG-C3BMpr4x.js → chunk-SVP7TREG-BdJpxJji.js} +1 -1
  65. package/dist/assets/chunk-XXDRQBXY-CEXsCcSu.js +1 -0
  66. package/dist/assets/{chunk-ZLD2IHE6-ZFqtFJbj.js → chunk-ZLD2IHE6-BLIPZykR.js} +1 -1
  67. package/dist/assets/classDiagram-CYGNFDIV-BielDdJQ.js +1 -0
  68. package/dist/assets/classDiagram-v2-TLXNO2FR-BielDdJQ.js +1 -0
  69. package/dist/assets/cose-bilkent-JH36ORCC-CnLWv9XE.js +1 -0
  70. package/dist/assets/{createDerive-Best2JCj.js → createDerive-DtfnFzGm.js} +1 -1
  71. package/dist/assets/{cynefinDiagram-5FMLGOSQ-Lnly8IJd.js → cynefinDiagram-5FMLGOSQ-Do1SZz4I.js} +1 -1
  72. package/dist/assets/{dagre-OS7QT2EB-CdXLxmTK.js → dagre-OS7QT2EB-CqmZ9Y9O.js} +1 -1
  73. package/dist/assets/data-adapter-1YRpH3h_.js +5 -0
  74. package/dist/assets/{default-inspector-registry-DeEG98bO.js → default-inspector-registry-CmSpNwTr.js} +1 -1
  75. package/dist/assets/{diagram-S7CK7UJ4-DE8I3gxQ.js → diagram-S7CK7UJ4-CMpcDWop.js} +1 -1
  76. package/dist/assets/{diagram-UQ7AKVKN-D2xQpbEq.js → diagram-UQ7AKVKN-DLK_4yej.js} +1 -1
  77. package/dist/assets/{diagram-VSXAHHWV-DnttDSlO.js → diagram-VSXAHHWV-MAILxw0S.js} +1 -1
  78. package/dist/assets/diagram-VX7I27RA-DGiXGVX7.js +24 -0
  79. package/dist/assets/{diagram-Z3DM3KII-BgB9f0Nv.js → diagram-Z3DM3KII-BywboeGI.js} +1 -1
  80. package/dist/assets/dist-B88JFSFg.js +5 -0
  81. package/dist/assets/{ebnfDiagram-PWID7BFC-32WvKbS2.js → ebnfDiagram-PWID7BFC-DdMLbnuP.js} +1 -1
  82. package/dist/assets/{erDiagram-2YWLMYGG-Dwf8uAdl.js → erDiagram-2YWLMYGG-O6raGx2P.js} +1 -1
  83. package/dist/assets/flowDiagram-T62WH6J4-CkAxOnqU.js +1 -0
  84. package/dist/assets/framework-DFE_Mws9.js +36 -0
  85. package/dist/assets/{ganttDiagram-EL5Y4UJY-DqYIE0Cu.js → ganttDiagram-EL5Y4UJY-Dijdjc50.js} +2 -2
  86. package/dist/assets/{getIcon-CgyYxSEC.js → getIcon-B4Pp7Q-0.js} +1 -1
  87. package/dist/assets/gitGraphDiagram-WWUBYQGX-Cfl4OIGG.js +106 -0
  88. package/dist/assets/{highlighted-body-OFNGDK62-BxO9mjPI.js → highlighted-body-OFNGDK62-BlqGRgbU.js} +1 -1
  89. package/dist/assets/{i18n-Cfqor-xb.js → i18n-DGcOKnTh.js} +1 -1
  90. package/dist/assets/{i18n-locales-Bz4c8KXc.js → i18n-locales-BBA090ve.js} +10 -10
  91. package/dist/assets/index-C5Fu9Kda.css +2 -0
  92. package/dist/assets/index-ClPLLRzK.js +20 -0
  93. package/dist/assets/{infoDiagram-FKFFQAWI-Cr1-5_Am.js → infoDiagram-FKFFQAWI-oOVNWlVA.js} +1 -1
  94. package/dist/assets/{infrastructure-CIpDEFyQ.js → infrastructure-B4zG1jNa.js} +2 -2
  95. package/dist/assets/{ishikawaDiagram-5VMMS53U-Bsjx7BsE.js → ishikawaDiagram-5VMMS53U-BUfTfup1.js} +1 -1
  96. package/dist/assets/{journeyDiagram-EYS64GPL-1scn5Z5c.js → journeyDiagram-EYS64GPL-4fyU8Ui9.js} +2 -2
  97. package/dist/assets/{kanban-definition-UXKFOSKX-DjLQAv5U.js → kanban-definition-UXKFOSKX-qwquHo2y.js} +1 -1
  98. package/dist/assets/mermaid-GHXKKRXX-_UhQGe8N.js +1 -0
  99. package/dist/assets/{mermaid.core-pW40dd4u.js → mermaid.core-RfBGJVq5.js} +2 -2
  100. package/dist/assets/{metadata-admin-pawEBYI9.js → metadata-admin-Bo-vWW2Z.js} +3 -3
  101. package/dist/assets/{mindmap-definition-THT77NOG-CUcYMB9H.js → mindmap-definition-THT77NOG-cOVHgGB_.js} +1 -1
  102. package/dist/assets/{pegDiagram-XKGWAZYB-CT1r3sRa.js → pegDiagram-XKGWAZYB-DQikOuPL.js} +1 -1
  103. package/dist/assets/{pieDiagram-E7YTZNPT-CSi-V1LQ.js → pieDiagram-E7YTZNPT-Cu9wPXiv.js} +2 -2
  104. package/dist/assets/plugin-calendar-DqlnPeWE.js +1 -0
  105. package/dist/assets/plugin-charts-hJ5C1pY-.js +7 -0
  106. package/dist/assets/{plugin-chatbot-BGnkLzFS.js → plugin-chatbot-BeSLDg4N.js} +5 -5
  107. package/dist/assets/plugin-dashboard-d1o52lHr.js +6 -0
  108. package/dist/assets/{plugin-form-_fjHxKTV.js → plugin-form-D8x_rH5w.js} +1 -1
  109. package/dist/assets/plugin-gantt-B2GTMGPH.js +63 -0
  110. package/dist/assets/plugin-grid-DGXy_yQF.js +9 -0
  111. package/dist/assets/{plugin-kanban-DA0eW6yj.js → plugin-kanban-CVf6Nj3e.js} +1 -1
  112. package/dist/assets/plugin-map-hkbw1bGS.js +1 -0
  113. package/dist/assets/{plugin-markdown-B7zwZHmn.js → plugin-markdown-Bdb2UThR.js} +4 -4
  114. package/dist/assets/plugin-report-CelulaB7.js +59 -0
  115. package/dist/assets/{plugin-timeline-B6rsNNAK.js → plugin-timeline-DTcJ-hts.js} +1 -1
  116. package/dist/assets/plugin-tree-Bk5vG9la.js +1 -0
  117. package/dist/assets/{plugin-view-5qxxRyZZ.js → plugin-view-CKs41t7o.js} +1 -1
  118. package/dist/assets/plugins-views-DZmsFOak.js +4 -0
  119. package/dist/assets/{quadrantDiagram-AXDQQJYC-DUJ_94hm.js → quadrantDiagram-AXDQQJYC-DqTU6p89.js} +3 -3
  120. package/dist/assets/{railroadDiagram-O6MQD6OU-CEyfAhzM.js → railroadDiagram-O6MQD6OU-CHGgIBKb.js} +1 -1
  121. package/dist/assets/{requirementDiagram-IS5BZ75X-CAK7hvBg.js → requirementDiagram-IS5BZ75X-B20mHS5h.js} +1 -1
  122. package/dist/assets/{runtime-metadata-persistence-DYPxFzHI.js → runtime-metadata-persistence-DzS2YaNb.js} +1 -1
  123. package/dist/assets/{sankeyDiagram-P5KCCOFB-DgYJh7uz.js → sankeyDiagram-P5KCCOFB-oqGY91Cw.js} +3 -3
  124. package/dist/assets/{sequenceDiagram-WJ2MYXX4-DsQerPtC.js → sequenceDiagram-WJ2MYXX4-CVMm7Aid.js} +1 -1
  125. package/dist/assets/{src-CVJP2nIc.js → src-D7tZqf12.js} +1 -1
  126. package/dist/assets/{src-_DxAIBqo.js → src-DCXZnd2l.js} +1 -1
  127. package/dist/assets/{src-S6pzKItc.js → src-DEMdKbQy.js} +1 -1
  128. package/dist/assets/src-hcMLuWxG.js +17 -0
  129. package/dist/assets/stateDiagram-XQSTLZYL-3oM7IdVe.js +1 -0
  130. package/dist/assets/stateDiagram-v2-IH3M54BS-BznjPAgb.js +1 -0
  131. package/dist/assets/studioEntry-BUFsLXCL.js +1 -0
  132. package/dist/assets/{submitRedirect-UXd9NsjL.js → submitRedirect-7ExeC4kw.js} +1 -1
  133. package/dist/assets/{swimlanes-V6O3JKXN-BiKyiEJr.js → swimlanes-V6O3JKXN-Djgbrkmh.js} +1 -1
  134. package/dist/assets/swimlanesDiagram-JKAHXJPX-DHJJ3qZq.js +8 -0
  135. package/dist/assets/{timeline-definition-24CTP7MA-CW5rY3PX.js → timeline-definition-24CTP7MA-k2lbfDvL.js} +2 -2
  136. package/dist/assets/ui-components-CMHDBJEm.js +37 -0
  137. package/dist/assets/{ui-layout-UUTFXV6S.js → ui-layout-Jk_qY9Ni.js} +1 -1
  138. package/dist/assets/{use-book-data-qUZAxIs0.js → use-book-data-CM73PGvc.js} +1 -1
  139. package/dist/assets/{useActionModal-CkM-zGdy.js → useActionModal-D_iilsul.js} +1 -1
  140. package/dist/assets/{usePackageL10n-F9isJ9pn.js → usePackageL10n-BfPqgsRL.js} +1 -1
  141. package/dist/assets/{useSettingsLabel-CSZBfUiw.js → useSettingsLabel-CW2sBbmj.js} +1 -1
  142. package/dist/assets/vendor-charts-BBlPrtHS.js +67 -0
  143. package/dist/assets/{vendor-i18n-C1AQDWux.js → vendor-i18n-CzBLXLJU.js} +1 -1
  144. package/dist/assets/vendor-objectstack-BU0HrnMy.js +270 -0
  145. package/dist/assets/{vendor-zod-r9lyeyrU.js → vendor-zod-Bwe8XZZa.js} +3 -3
  146. package/dist/assets/{vennDiagram-4TSXK5OY-C79cMc25.js → vennDiagram-4TSXK5OY-zweM554s.js} +1 -1
  147. package/dist/assets/{wardleyDiagram-VM6X3IG4-BAO0_jUk.js → wardleyDiagram-VM6X3IG4-Dg9r6Ajz.js} +1 -1
  148. package/dist/assets/{xychartDiagram-S5SC5T6Z-BIRd7YRo.js → xychartDiagram-S5SC5T6Z-CraplxeN.js} +2 -2
  149. package/dist/eager-closure.json +87 -87
  150. package/dist/index.html +4 -4
  151. package/package.json +1 -1
  152. package/dist/assets/RecordDetailView-A8bbPnkK.js +0 -3
  153. package/dist/assets/architectureDiagram-5GKGNRK7-mGW8P1lC.js +0 -36
  154. package/dist/assets/channel-FD4s9EIH.js +0 -1
  155. package/dist/assets/chunk-75Z2AOVW-CkSdnmiC.js +0 -2
  156. package/dist/assets/chunk-CLGD4ZFX-BTkDISwp.js +0 -1
  157. package/dist/assets/chunk-F27PBJKO-DUKg0YWV.js +0 -1
  158. package/dist/assets/chunk-L3NEJ4N5-Bzz35TZJ.js +0 -1
  159. package/dist/assets/chunk-XXDRQBXY-iNC8aYmk.js +0 -1
  160. package/dist/assets/classDiagram-CYGNFDIV-D5Pd2TCl.js +0 -1
  161. package/dist/assets/classDiagram-v2-TLXNO2FR-D5Pd2TCl.js +0 -1
  162. package/dist/assets/cose-bilkent-JH36ORCC-CPQv9aQH.js +0 -1
  163. package/dist/assets/data-adapter-DL25qpAe.js +0 -5
  164. package/dist/assets/diagram-VX7I27RA-BSEwkn7K.js +0 -24
  165. package/dist/assets/dist-BpPy7hlB.js +0 -5
  166. package/dist/assets/flowDiagram-T62WH6J4-CqVSNJ8T.js +0 -1
  167. package/dist/assets/framework-BfSv4Kb0.js +0 -36
  168. package/dist/assets/gitGraphDiagram-WWUBYQGX-D1dYmoGu.js +0 -106
  169. package/dist/assets/index-BU-FzlQ6.js +0 -20
  170. package/dist/assets/index-_VyGO4ms.css +0 -2
  171. package/dist/assets/mermaid-GHXKKRXX-NzEcDxBh.js +0 -1
  172. package/dist/assets/plugin-calendar-BwiiCIjv.js +0 -1
  173. package/dist/assets/plugin-charts-CDGkx7z5.js +0 -7
  174. package/dist/assets/plugin-dashboard-Bj4ldCX6.js +0 -6
  175. package/dist/assets/plugin-gantt-zR8DkpEg.js +0 -63
  176. package/dist/assets/plugin-grid-kkbz4uec.js +0 -9
  177. package/dist/assets/plugin-map-DukneTNg.js +0 -1
  178. package/dist/assets/plugin-report-DaPtlsJr.js +0 -59
  179. package/dist/assets/plugin-tree-DauauLFc.js +0 -1
  180. package/dist/assets/plugins-views-iYcMmImr.js +0 -4
  181. package/dist/assets/src-JX1BkhmR.js +0 -17
  182. package/dist/assets/stateDiagram-XQSTLZYL-BJndPKik.js +0 -1
  183. package/dist/assets/stateDiagram-v2-IH3M54BS-Bi94bTLl.js +0 -1
  184. package/dist/assets/studioEntry-C6G8U-LG.js +0 -1
  185. package/dist/assets/swimlanesDiagram-JKAHXJPX-DKIR852g.js +0 -8
  186. package/dist/assets/ui-components-D2lrjG-t.js +0 -43
  187. package/dist/assets/vendor-charts-CY9WhhzX.js +0 -67
  188. package/dist/assets/vendor-objectstack-BeKUVjuj.js +0 -270
@@ -1,59 +0,0 @@
1
- import{o as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{b as n,r}from"./vendor-react-CsWFRkED.js";import{Mt as i,Qr as a,Qt as o,Sn as s,T as c,Xt as l,Yt as u,Zt as d,_n as f,_r as p,an as m,cn as h,dn as g,fn as _,gn as v,hn as y,ht as b,ln as x,mt as S,on as C,rn as ee,vn as w,vr as T,w as E,yn as D}from"./framework-BfSv4Kb0.js";import{a as O,d as te,f as k,m as A,t as j,y as ne}from"./i18n-locales-Bz4c8KXc.js";import{Ar as M,Mr as N,Ni as P,Or as F,Os as I,Pr as re,Xr as L,f as ie,g as ae,gn as R,jr as z,kr as B,va as oe,vo as se,wa as ce,yi as le}from"./ui-components-D2lrjG-t.js";var V=e(n(),1),H=r(),ue=({schema:e})=>{let{title:t,description:n,data:r,columns:i}=e;e.chart?.type;let o=!!e.chart;return(0,H.jsxs)(F,{className:`h-full flex flex-col ${e.className||``}`,children:[(0,H.jsxs)(z,{children:[t&&(0,H.jsx)(N,{children:t}),n&&(0,H.jsx)(M,{children:n})]}),(0,H.jsxs)(B,{className:`flex-1 overflow-auto space-y-4`,children:[o&&(()=>{let t=e.chart?.type,n=t?a.get(t):null;return n||=a.get(`chart`),n?(0,H.jsx)(`div`,{className:`min-h-[300px] border rounded-lg p-4 bg-background/50`,children:(0,H.jsx)(n,{schema:{...e.chart,data:e.chart.data||r}})}):(0,H.jsxs)(`div`,{className:`min-h-[100px] border rounded-md p-4 bg-muted/20 text-muted-foreground flex items-center justify-center`,children:[`Unknown component type: `,t||`chart`]})})(),r&&r.length>0&&(0,H.jsx)(`div`,{className:`border rounded-lg`,children:(()=>{let e=a.get(`grid`)||a.get(`table`);return e?(0,H.jsx)(e,{schema:{type:`grid`,rowData:r,columnDefs:i,domLayout:`autoHeight`}}):(0,H.jsx)(`div`,{className:`overflow-x-auto`,children:(0,H.jsxs)(`table`,{className:`w-full text-sm text-left`,children:[(0,H.jsx)(`thead`,{className:`text-xs uppercase bg-muted`,children:(0,H.jsx)(`tr`,{children:i?.map(e=>(0,H.jsx)(`th`,{className:`px-6 py-3`,children:e.headerName||e.label||e.field},e.field))})}),(0,H.jsx)(`tbody`,{children:r.map((e,t)=>(0,H.jsx)(`tr`,{className:`bg-background border-b`,children:i?.map(t=>(0,H.jsx)(`td`,{className:`px-6 py-4`,children:e[t.field]},t.field))},t))})]})})})()})]})]})};function de(e,t,n){let r=e.fields||[],i=r.map(e=>e.label||e.name),a=t.map(e=>r.map(t=>{let n=e[t.name];return n=he(n),typeof n==`string`&&(n.includes(`,`)||n.includes(`"`)||n.includes(`
2
- `))?`"${n.replace(/"/g,`""`)}"`:n??``}));K([...n?.includeHeaders===!1?[]:[i.join(`,`)],...a.map(e=>e.join(`,`))].join(`
3
- `),n?.filename||`${e.title||`report`}.csv`,`text/csv`)}function fe(e,t,n){let r={title:e.title,description:e.description,generatedAt:new Date().toISOString(),data:t};K(JSON.stringify(r,null,2),n?.filename||`${e.title||`report`}.json`,`application/json`)}function U(e,t,n){let r=e.fields||[],i=_e(n?.orientation),a=ge(n?.pageSize);K(`<!DOCTYPE html>
4
- <html>
5
- <head>
6
- <meta charset="utf-8">
7
- <title>${G(e.title||`Report`)}</title>
8
- <style>
9
- @page { size: ${a} ${i}; margin: 20mm; }
10
- body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; color: #333; }
11
- h1 { font-size: 24px; margin-bottom: 8px; }
12
- .description { color: #666; margin-bottom: 24px; }
13
- .meta { color: #999; font-size: 12px; margin-bottom: 16px; }
14
- table { width: 100%; border-collapse: collapse; margin-top: 16px; }
15
- th { background: #f5f5f5; text-align: left; padding: 8px 12px; border: 1px solid #ddd; font-weight: 600; }
16
- td { padding: 8px 12px; border: 1px solid #ddd; }
17
- tr:nth-child(even) { background: #fafafa; }
18
- </style>
19
- </head>
20
- <body>
21
- <h1>${G(e.title||`Report`)}</h1>
22
- ${e.description?`<p class="description">${G(e.description)}</p>`:``}
23
- <p class="meta">Generated: ${new Date().toLocaleString()}</p>
24
- <table>
25
- <thead><tr>${r.map(e=>`<th>${G(e.label||e.name)}</th>`).join(``)}</tr></thead>
26
- <tbody>${t.map(e=>`<tr>${r.map(t=>`<td>${G(String(e[t.name]??``))}</td>`).join(``)}</tr>`).join(``)}</tbody>
27
- </table>
28
- </body>
29
- </html>`,n?.filename||`${e.title||`report`}.html`,`text/html`)}function pe(e,t,n){let r=e.fields||[],i=_e(n?.orientation),a=ge(n?.pageSize),o=window.open(``,`_blank`);if(!o){U(e,t,{...n,format:`html`,filename:n?.filename?.replace(/\.pdf$/,`.html`)||`${e.title||`report`}.html`});return}o.document.write(`<!DOCTYPE html>
30
- <html>
31
- <head>
32
- <meta charset="utf-8">
33
- <title>${G(e.title||`Report`)}</title>
34
- <style>
35
- @page { size: ${a} ${i}; margin: 20mm; }
36
- @media print { .no-print { display: none; } }
37
- body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; color: #333; }
38
- h1 { font-size: 24px; margin-bottom: 8px; }
39
- .description { color: #666; margin-bottom: 24px; }
40
- .meta { color: #999; font-size: 12px; margin-bottom: 16px; }
41
- table { width: 100%; border-collapse: collapse; margin-top: 16px; }
42
- th { background: #f5f5f5; text-align: left; padding: 8px 12px; border: 1px solid #ddd; font-weight: 600; }
43
- td { padding: 8px 12px; border: 1px solid #ddd; }
44
- tr:nth-child(even) { background: #fafafa; }
45
- </style>
46
- </head>
47
- <body>
48
- <h1>${G(e.title||`Report`)}</h1>
49
- ${e.description?`<p class="description">${G(e.description)}</p>`:``}
50
- <p class="meta">Generated: ${new Date().toLocaleString()}</p>
51
- <table>
52
- <thead><tr>${r.map(e=>`<th>${G(e.label||e.name)}</th>`).join(``)}</tr></thead>
53
- <tbody>${t.map(e=>`<tr>${r.map(t=>`<td>${G(String(e[t.name]??``))}</td>`).join(``)}</tr>`).join(``)}</tbody>
54
- </table>
55
- </body>
56
- </html>`),o.document.close(),o.onload=()=>{o.print()}}function me(e,t,n){let r=e.fields||[],i=r.map(e=>e.label||e.name),a=t.map(e=>r.map(t=>{let n=e[t.name];return n=he(n),typeof n==`string`&&(n.includes(`,`)||n.includes(`"`)||n.includes(`
57
- `)||n.includes(` `))?`"${n.replace(/"/g,`""`)}"`:n??``}));K(``+[...n?.includeHeaders===!1?[]:[i.join(` `)],...a.map(e=>e.join(` `))].join(`
58
- `),n?.filename||`${e.title||`report`}.tsv`,`text/tab-separated-values`)}function W(e,t,n,r){switch(e){case`csv`:de(t,n,r);break;case`json`:fe(t,n,r);break;case`html`:U(t,n,r);break;case`pdf`:pe(t,n,r);break;case`excel`:me(t,n,r);break;default:console.warn(`Unsupported export format: ${e}`)}}function G(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#039;`)}function he(e){if(typeof e==`string`&&e.length>0){let t=e.charAt(0);if(t===`=`||t===`+`||t===`-`||t===`@`||t===`|`)return`\t${e}`}return e}function ge(e){return[`A4`,`A3`,`Letter`,`Legal`].includes(e||``)?e:`A4`}function _e(e){return e===`landscape`?`landscape`:`portrait`}function K(e,t,n){let r=new Blob([e],{type:`${n};charset=utf-8`}),i=URL.createObjectURL(r),a=document.createElement(`a`);a.href=i,a.download=t,document.body.appendChild(a),a.click(),document.body.removeChild(a),URL.revokeObjectURL(i)}function q(e,t){if(e==null||e===``)return``;let n=t?.type,r=t?.format;if(n===`date`||r===`date`||ve(e))return ye(e);if(n===`number`||typeof e==`number`){let t=typeof e==`number`?e:Number(e);return isNaN(t)?String(e):r===`currency`||r===`currency_cny`?`¥${t.toLocaleString(`en-US`,{minimumFractionDigits:0,maximumFractionDigits:0})}`:r===`currency_usd`?`$${t.toLocaleString(`en-US`,{minimumFractionDigits:0,maximumFractionDigits:0})}`:r===`percent`?`${t.toLocaleString(`en-US`,{minimumFractionDigits:1,maximumFractionDigits:1})}%`:t.toLocaleString(`en-US`)}return String(e)}function ve(e){return typeof e==`string`&&/^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2})?/.test(e)}function ye(e){try{let t=new Date(e);return isNaN(t.getTime())?String(e):`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,`0`)}-${String(t.getDate()).padStart(2,`0`)}`}catch{return String(e)}}function be(e,t){if(!t||t.length===0||!e||e.length===0)return null;let n=t[0],r=n.field,i=new Map;for(let t of e){let e=String(t[r]??`(empty)`);i.has(e)||i.set(e,[]),i.get(e).push(t)}let a=[];for(let[e,t]of i)a.push({key:e,label:`${n.label||r}: ${e}`,rows:t});let o=n.sort===`desc`?-1:1;return a.sort((e,t)=>e.key.localeCompare(t.key)*o),a}function xe(e,t,n){if(!e)return 0;let r=e.map(e=>Number(e[t])||0);switch(n){case`count`:return e.length;case`sum`:return r.reduce((e,t)=>e+t,0);case`avg`:return r.length>0?(r.reduce((e,t)=>e+t,0)/r.length).toFixed(2):0;case`min`:return r.length>0?Math.min(...r):0;case`max`:return r.length>0?Math.max(...r):0;case`distinct`:return new Set(e.map(e=>e[t])).size;default:return``}}var J=({schema:e,onRefresh:t})=>{let{report:n,data:r,showToolbar:i=!0,allowExport:a=!0,allowPrint:o=!0,loading:s=!1}=e,c=A(),l=e=>{if(!n){console.warn(`ReportViewer: Cannot export, no report defined`);return}W(e,n,r||[],n.exportConfigs?.[e])},u=c(`common.printDialogHint`,`Opens your browser’s print dialog (not a PDF export)`),d=()=>{window.print()},f=()=>{t?.()},p=(e,t)=>xe(r,e,t),m=(e,t)=>{let r=n?.conditionalFormatting;if(!(!r||!Array.isArray(r)))for(let n of r){if(n.field!==e)continue;let r=String(t??``),i=String(n.value??``),a=!1;switch(n.operator){case`equals`:a=r===i;break;case`not_equals`:a=r!==i;break;case`contains`:a=r.includes(i);break;case`greater_than`:a=Number(t)>Number(n.value);break;case`less_than`:a=Number(t)<Number(n.value)}if(a){let e={};return n.backgroundColor&&(e.backgroundColor=n.backgroundColor),n.textColor&&(e.color=n.textColor),e}}},h=(e,t)=>{if(e==null||e===``)return``;if(t.renderAs===`badge`&&(!t.type||t.type===`string`||t.type===`text`)){let n=t.colorMap?.[String(e)]||``;return(0,H.jsx)(re,{className:n,children:String(e)})}if(t.aggregation)return q(e,t);if(t.type){let n={...t};t.colorMap&&!n.options&&(n.options=Object.entries(t.colorMap).map(([e,t])=>({value:e,label:e,color:t})));let r=ie(ae(n));return(0,H.jsx)(r,{value:e,field:n})}return q(e,t)};return n?(0,H.jsxs)(`div`,{className:`space-y-4`,children:[i&&(0,H.jsxs)(`div`,{className:`flex items-center justify-between gap-2 p-4 bg-card rounded-lg border`,children:[(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`h2`,{className:`text-lg font-semibold`,children:n.title}),n.description&&(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:n.description})]}),(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,"data-print-hide":!0,children:[n.refreshInterval&&(0,H.jsxs)(L,{variant:`outline`,size:`sm`,onClick:f,children:[(0,H.jsx)(oe,{className:`h-4 w-4 mr-2`}),`Refresh`]}),o&&(0,H.jsxs)(L,{variant:`outline`,size:`sm`,onClick:d,"aria-label":`Print: ${u}`,title:u,children:[(0,H.jsx)(ce,{className:`h-4 w-4 mr-2`}),`Print`]}),a&&n.showExportButtons&&(0,H.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,H.jsxs)(L,{variant:`outline`,size:`sm`,onClick:()=>l(`pdf`),children:[(0,H.jsx)(I,{className:`h-4 w-4 mr-2`}),`PDF`]}),(0,H.jsxs)(L,{variant:`outline`,size:`sm`,onClick:()=>l(`excel`),children:[(0,H.jsx)(I,{className:`h-4 w-4 mr-2`}),`Excel`]}),(0,H.jsxs)(L,{variant:`outline`,size:`sm`,onClick:()=>l(`csv`),children:[(0,H.jsx)(I,{className:`h-4 w-4 mr-2`}),`CSV`]})]})]})]}),(0,H.jsxs)(F,{children:[(0,H.jsxs)(z,{children:[!i&&n.title&&(0,H.jsx)(N,{children:n.title}),!i&&n.description&&(0,H.jsx)(M,{children:n.description})]}),(0,H.jsxs)(B,{className:`space-y-6`,children:[s&&(0,H.jsxs)(`div`,{className:`space-y-6`,children:[(0,H.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-3 gap-4`,children:[1,2,3].map(e=>(0,H.jsx)(F,{children:(0,H.jsxs)(B,{className:`p-4 space-y-2`,children:[(0,H.jsx)(R,{className:`h-4 w-20`}),(0,H.jsx)(R,{className:`h-8 w-28`})]})},e))}),(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsx)(R,{className:`h-10 w-full`}),[1,2,3,4,5].map(e=>(0,H.jsx)(R,{className:`h-8 w-full`},e))]})]}),!s&&n.sections?.map((e,t)=>e.visible===!1?null:(0,H.jsxs)(`div`,{className:`space-y-2`,children:[e.title&&e.type!==`header`&&(0,H.jsx)(`h3`,{className:`text-lg font-semibold border-b pb-2`,children:e.title}),e.type===`header`&&e.title&&(0,H.jsx)(`div`,{className:`text-2xl font-bold py-4`,children:e.title}),e.type===`summary`&&(0,H.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-3 gap-4`,children:n.fields?.filter(e=>e.showInSummary).map((e,t)=>(0,H.jsx)(F,{children:(0,H.jsxs)(B,{className:`p-4`,children:[(0,H.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:e.label||e.name}),(0,H.jsx)(`div`,{className:`text-2xl font-bold`,children:q(p(e.name,e.aggregation),e)})]})},t))}),e.type===`table`&&(0,H.jsx)(`div`,{className:`border rounded-lg overflow-x-auto`,children:(0,H.jsxs)(`table`,{className:`w-full text-sm min-w-[600px]`,children:[(0,H.jsx)(`thead`,{className:`bg-muted`,children:(0,H.jsx)(`tr`,{children:e.columns?.map((e,t)=>(0,H.jsx)(`th`,{className:`px-4 py-2 font-medium ${e.type===`number`?`text-right`:`text-left`}`,children:e.label||e.name},t))})}),(0,H.jsx)(`tbody`,{children:(()=>{let t=be(r||[],n.groupBy||[]);return t?t.map(t=>(0,H.jsxs)(V.Fragment,{children:[(0,H.jsx)(`tr`,{className:`bg-muted/60`,children:(0,H.jsxs)(`td`,{colSpan:e.columns?.length||1,className:`px-4 py-2 font-semibold text-sm`,children:[t.label,` (`,t.rows.length,`)`]})}),t.rows.map((t,n)=>(0,H.jsx)(`tr`,{className:`border-t hover:bg-muted/50 even:bg-muted/20`,children:e.columns?.map((e,n)=>(0,H.jsx)(`td`,{className:`px-4 py-2 ${e.type===`number`?`text-right tabular-nums`:``}`,style:m(e.name,t[e.name]),children:h(t[e.name],e)},n))},n))]},t.key)):r?.map((t,n)=>(0,H.jsx)(`tr`,{className:`border-t hover:bg-muted/50 even:bg-muted/20`,children:e.columns?.map((e,n)=>(0,H.jsx)(`td`,{className:`px-4 py-2 ${e.type===`number`?`text-right tabular-nums`:``}`,style:m(e.name,t[e.name]),children:h(t[e.name],e)},n))},n))})()})]})}),e.type===`text`&&e.text&&(0,H.jsx)(`div`,{className:`prose max-w-none`,children:(0,H.jsx)(`p`,{children:e.text})}),e.type===`page-break`&&(0,H.jsx)(`div`,{className:`border-t-2 border-dashed my-8 print:page-break-after-always`}),Array.isArray(e.content)?e.content.map((e,t)=>(0,H.jsx)(b,{schema:S(e)},t)):e.content&&(0,H.jsx)(b,{schema:S(e.content)})]},t)),!n.sections&&r&&r.length>0&&(0,H.jsx)(`div`,{className:`border rounded-lg overflow-x-auto`,children:(0,H.jsxs)(`table`,{className:`w-full text-sm min-w-[600px]`,children:[(0,H.jsx)(`thead`,{className:`bg-muted`,children:(0,H.jsx)(`tr`,{children:n.fields?.map((e,t)=>(0,H.jsx)(`th`,{className:`px-4 py-2 font-medium ${e.type===`number`?`text-right`:`text-left`}`,children:e.label||e.name},t))})}),(0,H.jsx)(`tbody`,{children:r.map((e,t)=>(0,H.jsx)(`tr`,{className:`border-t hover:bg-muted/50 even:bg-muted/20`,children:n.fields?.map((t,n)=>(0,H.jsx)(`td`,{className:`px-4 py-2 ${t.type===`number`?`text-right tabular-nums`:``}`,style:m(t.name,e[t.name]),children:h(e[t.name],t)},n))},t))})]})})]})]})]}):(0,H.jsx)(F,{children:(0,H.jsx)(B,{className:`p-8 text-center text-muted-foreground`,children:`No report to display`})})};function Se(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.dataset==`string`&&t.dataset.length>0||t.type===`joined`&&Array.isArray(t.blocks)&&t.blocks.some(e=>typeof e?.dataset==`string`)}var Ce=new Set,we=()=>!1;function Te(e,t){if(!we())return;let n=e.filter;if(n===void 0)return;let r=`${t}:${n&&typeof n==`object`?Object.keys(n).sort().join(`,`):String(n)}`;Ce.has(r)||(Ce.add(r),console.warn(`[ObjectUI] ${t} carries \`filter\`, which is not an authorable key. Did you mean \`filter\` → \`runtimeFilter\`? NO filter was applied — it renders UNFILTERED, showing rows the report was scoped to exclude. \`ReportSchema\` (\`@objectstack/spec\`) is strict and rejects \`filter\`, so this document did not come through the validated path; the renderer no longer reads it either. Fix the producer: rename \`filter\` to \`runtimeFilter\`. (objectui#5137)`))}function Ee(e){return`Report \`${e.name??`(unnamed)`}\``}function De(e,t){return e?typeof e==`string`?e:typeof e==`object`&&typeof e.default==`string`?e.default:t:t}function Y(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`&&!!e):[]}function Oe(e){if(!Array.isArray(e))return;let t={};for(let n of e){let e=n&&typeof n==`object`?n.by:void 0;typeof e!=`string`||!e||(t[e]=n.direction===`desc`?`desc`:`asc`)}return Object.keys(t).length>0?t:void 0}function ke(e,t,n){if(!e)return;let r=new Set([...t,...n]),i={};for(let[t,n]of Object.entries(e))r.has(t)&&(i[t]=n);return Object.keys(i).length>0?i:void 0}function X(e,t,n,r,i,a,o){let[s,c]=V.useState({status:`idle`,rows:[]}),l=ke(o,t,n),u=JSON.stringify(r??null),d=JSON.stringify(a??null),f=JSON.stringify(l??null),p=`${e}|${t.join(`,`)}|${n.join(`,`)}|${u}|${d}|${f}`;return V.useEffect(()=>{let o=i;if(!o||typeof o.queryDataset!=`function`){c({status:`error`,rows:[],error:`This data source does not support dataset queries.`});return}if(!e||n.length===0){c({status:`idle`,rows:[]});return}let s=!1;return c({status:`loading`,rows:[]}),o.queryDataset(e,{dimensions:t,measures:n,...r&&Object.keys(r).length>0?{runtimeFilter:r}:{},...a?{totals:{groupings:a}}:{},...l?{order:l}:{}}).then(e=>{s||c({status:`ok`,rows:Array.isArray(e?.rows)?e.rows:[],fields:Array.isArray(e?.fields)?e.fields:[],object:e?.object,dimensionFields:e?.dimensionFields,drillRawRows:Array.isArray(e?.drillRawRows)?e.drillRawRows:void 0,drillRanges:Array.isArray(e?.drillRanges)?e.drillRanges:void 0,totals:Array.isArray(e?.totals)?e.totals:void 0})}).catch(e=>{s||c({status:`error`,rows:[],error:String(e?.message??e)})}),()=>{s=!0}},[p]),s}function Ae({dataset:e}){return(0,H.jsxs)(`div`,{className:`flex items-center justify-center rounded-md border border-dashed bg-muted/20 p-4 text-xs text-muted-foreground`,children:[`This report binds the “`,e,`” dataset — choose at least one measure (values) to render.`]})}function Z({status:e,error:t}){return e===`error`?(0,H.jsxs)(`div`,{role:`alert`,className:`flex items-start gap-2 rounded-md border border-destructive/40 bg-destructive/5 px-3 py-2 text-xs text-destructive`,children:[(0,H.jsx)(le,{className:`h-3.5 w-3.5 mt-0.5 shrink-0`}),(0,H.jsx)(`span`,{className:`break-words`,children:t})]}):(0,H.jsxs)(`div`,{className:`flex items-center gap-2 p-4 text-xs text-muted-foreground`,children:[(0,H.jsx)(se,{className:`h-4 w-4 animate-spin`}),` Running report…`]})}function je(){return(0,H.jsxs)(`div`,{className:`flex flex-col items-center justify-center gap-2 rounded-md border border-dashed bg-muted/20 p-6 text-xs text-muted-foreground`,children:[(0,H.jsx)(P,{className:`h-6 w-6`}),` The dataset returned no rows for this report’s scope.`]})}var Me=`cursor-pointer hover:bg-accent/40`;function Ne({dataset:e,rows:t,values:n,runtimeFilter:r,dataSource:i,onDrill:a,order:s,withTotals:c}){let f=X(e,t,n,r,i,c&&t.length>0?[[]]:void 0,s),{fieldLabel:p}=te(),m=A(),h=j(),g=E(f.object,f.dimensionFields,t);if(n.length===0)return(0,H.jsx)(Ae,{dataset:e});if(f.status===`loading`||f.status===`idle`)return(0,H.jsx)(Z,{status:f.status});if(f.status===`error`)return(0,H.jsx)(Z,{status:`error`,error:f.error});if(f.rows.length===0)return(0,H.jsx)(je,{});let _=!!a&&t.length>0,y=f.dimensionFields?t.filter(e=>e in f.dimensionFields):[],b=(n,i)=>{let o={};for(let e of t)o[e]=n[e];let s=f.drillRanges?.[i],c=!!s&&Object.keys(s).length>0,l=f.object&&(y.length>0||c)?u(f.drillRawRows?.[i],y,f.dimensionFields??{},r,s):void 0;a({dataset:e,groupKey:o,runtimeFilter:r,object:f.object,objectFilter:l})},{measureField:x,headerLabel:S}=l(f.fields,f.object,p),C=[...t,...n],ee=v(f.rows,g),w=c?f.totals?.find(e=>Array.isArray(e.dimensions)&&e.dimensions.length===0)?.rows?.[0]:void 0,T=m(`report.total`,`Total`);return(0,H.jsx)(`div`,{className:`overflow-auto max-h-[70vh] rounded-md border`,children:(0,H.jsxs)(`table`,{className:`w-full text-xs`,children:[(0,H.jsx)(`thead`,{className:`bg-muted/40`,children:(0,H.jsx)(`tr`,{children:C.map(e=>(0,H.jsx)(`th`,{className:`px-2 py-1.5 text-left font-medium whitespace-nowrap`,children:S(e)},e))})}),(0,H.jsxs)(`tbody`,{children:[ee.map((e,t)=>(0,H.jsx)(`tr`,{className:`border-t${_?` ${Me}`:``}`,"data-testid":_?`dataset-drill-row`:void 0,onClick:_?()=>b(f.rows[t],t):void 0,children:C.map(t=>(0,H.jsx)(`td`,{className:`px-2 py-1 tabular-nums whitespace-nowrap`,children:n.includes(t)?o(e[t],x(t)?.format,x(t)?.currency,x(t)?.percentScale,h):d(e[t],h)},t))},t)),w&&(0,H.jsxs)(`tr`,{className:`border-t bg-muted/30 font-medium`,"data-testid":`dataset-report-total-row`,children:[t.length>0&&(0,H.jsx)(`td`,{colSpan:t.length,className:`px-2 py-1 whitespace-nowrap`,children:T}),n.map(e=>(0,H.jsx)(`td`,{className:`px-2 py-1 tabular-nums whitespace-nowrap`,children:o(w[e],x(e)?.format,x(e)?.currency,x(e)?.percentScale,h)},e))]})]})]})})}function Pe(e){switch(e){case`summary`:return`summary`;case`matrix`:return`matrix`;case`joined`:return`joined`;default:return`tabular`}}function Fe(e){switch(e){case`bar`:case`column`:case`horizontal-bar`:case`line`:case`area`:case`pie`:case`donut`:case`funnel`:case`scatter`:case`treemap`:case`sankey`:case`radar`:case`combo`:return{kind:`series`,chartType:e};case`gauge`:case`solid-gauge`:case`metric`:case`kpi`:case`bullet`:return{kind:`single_value`};case`table`:case`pivot`:return{kind:`tabular`};default:return{kind:`unsupported`,type:String(e)}}}function Ie(e){let[,t]=V.useReducer(e=>e+1,0);return V.useEffect(()=>{if(a.get(e))return;let n=typeof a.subscribe==`function`?a.subscribe(()=>{a.get(e)&&t()}):void 0,r=a.loadLazy?.(e);return r&&typeof r.then==`function`&&r.then(()=>t()).catch(()=>{}),n},[e]),a.get(e)}function Le(e,t,n){if(!(!Array.isArray(e)||!t))for(let r of e){if(!r||typeof r!=`object`)continue;let{name:e,label:i}=r;if(e===t)return O(i,n)||void 0}}function Re({dataset:e,chart:t,runtimeFilter:n,dataSource:r,order:i}){let a=typeof t.xAxis==`string`?t.xAxis:``,s=typeof t.yAxis==`string`?t.yAxis:``,u=Fe(t.type),d=u.kind===`series`||u.kind===`single_value`,f=X(e,u.kind===`series`&&a?[a]:[],d&&s?[s]:[],n,r,void 0,i),p=Ie(`chart`),{fieldLabel:b,fieldOptionLabel:S}=te(),w=A(),T=j(),{language:E}=ne(),D=V.useMemo(()=>a?[a]:[],[a]),O=c(f.object,f.dimensionFields,D),{categoryColors:M,dimensionLabels:N,categoryOrder:P}=V.useMemo(()=>{if(!O)return{categoryColors:null,dimensionLabels:null,categoryOrder:null};let{metaByPath:e,relabel:t}=O,n=t[0]?.path,r=n?e[n]:void 0,i=n?y(r?.options,_(r,S)):void 0;return{categoryColors:x(i),dimensionLabels:g(e,t,S),categoryOrder:C(i)}},[O,S]),F=typeof t.title==`string`?t.title:void 0;if(u.kind===`tabular`)return null;if(u.kind===`unsupported`)return(0,H.jsxs)(`div`,{className:`rounded-md border border-dashed bg-muted/20 px-3 py-2 text-xs text-muted-foreground`,"data-testid":`dataset-report-chart-unsupported`,children:[`Chart type “`,u.type,`” is not a spec chart type — the grouped table below carries this report’s numbers.`]});if(u.kind===`series`&&!a||!s)return null;if(f.status===`loading`||f.status===`idle`)return(0,H.jsxs)(`div`,{className:`flex items-center gap-2 p-4 text-xs text-muted-foreground`,children:[(0,H.jsx)(se,{className:`h-4 w-4 animate-spin`}),` Loading chart…`]});if(f.status===`error`||f.rows.length===0)return null;let{measureField:I,headerLabel:re}=l(f.fields,f.object,b),L=Le(t.series,s,E)??re(s);if(u.kind===`single_value`){let e=I(s);return(0,H.jsxs)(`div`,{className:`rounded-md border bg-card p-3`,"data-testid":`dataset-report-metric`,children:[F?(0,H.jsx)(`h3`,{className:`mb-2 text-sm font-semibold`,children:F}):null,(0,H.jsxs)(`div`,{className:`flex flex-col gap-0.5 py-2`,children:[(0,H.jsx)(`span`,{className:`text-2xl font-semibold tabular-nums`,children:o(f.rows[0]?.[s],e?.format,e?.currency,e?.percentScale,T)}),(0,H.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:L})]})]})}if(!p)return null;let{data:ie,xAxisKey:ae,series:R}=h(v(f.rows,N),[a],[s],f.fields,{nullCategoryLabel:w(`chart.nullCategory`,`(None)`),builtinAggregateLabels:k(w)}),z=m(R,t.series).map(e=>e.dataKey===s?{...e,label:L}:e),{title:B,...oe}=ee(t,M);return(0,H.jsxs)(`div`,{className:`rounded-md border bg-card p-3`,"data-testid":`dataset-report-chart`,children:[F?(0,H.jsx)(`h3`,{className:`mb-2 text-sm font-semibold`,children:F}):null,(0,H.jsx)(p,{schema:{chartType:u.chartType,data:ie,xAxisKey:ae,series:z,height:280,isAnimationActive:!1,...oe,...P?{categoryOrder:P}:{}}})]})}function Q(e,t){return f(e.map(e=>D(t[e])))}function ze(e,t,n){return e.map(e=>d(t[e],n)).join(` / `)}function Be({dataset:e,rows:t,columnsAcross:n,values:r,runtimeFilter:i,dataSource:a,onDrill:s,order:c}){let f=X(e,[...t,...n],r,i,a,[t,n,[]],c),p=A(),{fieldLabel:m}=te(),h=j(),g=E(f.object,f.dimensionFields,[...t,...n]),_=V.useMemo(()=>{if(f.status!==`ok`)return null;let e=[],r=[],i=new Set,a=new Set,o=new Map;return v(f.rows,g).forEach((s,c)=>{let l=f.rows[c],u=Q(t,s),d=Q(n,s);if(!i.has(u)){i.add(u);let n={},r={};for(let e of t)n[e]=l[e],r[e]=s[e];e.push({id:u,label:ze(t,s,h),key:n,display:r})}if(!a.has(d)){a.add(d);let e={},t={};for(let r of n)e[r]=l[r],t[r]=s[r];r.push({id:d,label:ze(n,s,h),key:e,display:t})}o.set(w(u,d),{row:l,index:c})}),{rowHeaders:e,colHeaders:r,cells:o}},[f,t,n,g,h]);if(r.length===0)return(0,H.jsx)(Ae,{dataset:e});if(f.status===`loading`||f.status===`idle`)return(0,H.jsx)(Z,{status:f.status});if(f.status===`error`)return(0,H.jsx)(Z,{status:`error`,error:f.error});if(!_||_.rowHeaders.length===0)return(0,H.jsx)(je,{});let{measureField:y,headerLabel:b}=l(f.fields,f.object,m),x=p(`report.total`,`Total`),S=!!s,C=f.dimensionFields?[...t,...n].filter(e=>e in f.dimensionFields):[],ee=(t,n,r)=>{let a=f.drillRanges?.[r],o=!!a&&Object.keys(a).length>0,c=f.object&&(C.length>0||o)?u(f.drillRawRows?.[r],C,f.dimensionFields??{},i,a):void 0;s({dataset:e,groupKey:{...t,...n},runtimeFilter:i,object:f.object,objectFilter:c})},T=_.colHeaders.flatMap(e=>r.map(t=>({col:e,measure:t,header:r.length===1?e.label:`${e.label} · ${b(t)}`}))),D=e=>{let t=f.totals?.find(t=>Array.isArray(t.dimensions)&&t.dimensions.join(`,`)===e.join(`,`))?.rows;return t&&v(t,g)},O=new Map;for(let e of D(t)??[])O.set(Q(t,e),e);let k=new Map;for(let e of D(n)??[])k.set(Q(n,e),e);let ne=D([])?.[0],M=O.size>0,N=k.size>0;return(0,H.jsx)(`div`,{className:`overflow-auto max-h-[70vh] rounded-md border`,"data-testid":`dataset-matrix`,children:(0,H.jsxs)(`table`,{className:`w-full text-xs`,children:[(0,H.jsx)(`thead`,{className:`bg-muted/40`,children:(0,H.jsxs)(`tr`,{children:[t.map(e=>(0,H.jsx)(`th`,{className:`px-2 py-1.5 text-left font-medium whitespace-nowrap`,children:b(e)},e)),T.map(e=>(0,H.jsx)(`th`,{className:`px-2 py-1.5 text-right font-medium whitespace-nowrap`,children:e.header},`${e.col.id}-${e.measure}`)),M&&r.map(e=>(0,H.jsx)(`th`,{className:`px-2 py-1.5 text-right font-medium whitespace-nowrap`,"data-testid":`matrix-total-col-header`,children:r.length===1?x:`${x} · ${b(e)}`},`total-${e}`))]})}),(0,H.jsxs)(`tbody`,{children:[_.rowHeaders.map(e=>(0,H.jsxs)(`tr`,{className:`border-t`,children:[t.map(t=>(0,H.jsx)(`td`,{className:`px-2 py-1 whitespace-nowrap font-medium`,children:d(e.display[t],h)},t)),T.map(t=>{let n=_.cells.get(w(e.id,t.col.id)),r=n?.row[t.measure],i=S&&n!=null;return(0,H.jsx)(`td`,{className:`px-2 py-1 text-right tabular-nums whitespace-nowrap${i?` ${Me}`:``}`,"data-testid":i?`dataset-drill-cell`:void 0,onClick:i?()=>ee(e.key,t.col.key,n.index):void 0,children:o(r,y(t.measure)?.format,y(t.measure)?.currency,y(t.measure)?.percentScale,h)},`${t.col.id}-${t.measure}`)}),M&&r.map(t=>(0,H.jsx)(`td`,{className:`px-2 py-1 text-right tabular-nums whitespace-nowrap font-medium`,"data-testid":`matrix-row-total`,children:o(O.get(e.id)?.[t],y(t)?.format,y(t)?.currency,y(t)?.percentScale,h)},`total-${t}`))]},e.id)),N&&(0,H.jsxs)(`tr`,{className:`border-t bg-muted/30 font-medium`,"data-testid":`matrix-total-row`,children:[t.length>0&&(0,H.jsx)(`td`,{colSpan:t.length,className:`px-2 py-1 whitespace-nowrap`,children:x}),T.map(e=>(0,H.jsx)(`td`,{className:`px-2 py-1 text-right tabular-nums whitespace-nowrap`,children:o(k.get(e.col.id)?.[e.measure],y(e.measure)?.format,y(e.measure)?.currency,y(e.measure)?.percentScale,h)},`${e.col.id}-${e.measure}`)),M&&r.map(e=>(0,H.jsx)(`td`,{className:`px-2 py-1 text-right tabular-nums whitespace-nowrap`,"data-testid":`matrix-grand-total`,children:o(ne?.[e],y(e)?.format,y(e)?.currency,y(e)?.percentScale,h)},`grand-${e}`))]})]})]})})}var Ve=({report:e,dataSource:t,runtimeFilter:n,onDrill:r,className:i})=>{let a=Ee(e);Te(e,a);let o=s(e.runtimeFilter,n),c=e.drilldown===!1?void 0:r,l=Pe(e.type);if(l===`joined`&&Array.isArray(e.blocks))return(0,H.jsx)(`div`,{className:i,"data-testid":`dataset-joined-report`,"data-report-name":e.name,style:{display:`flex`,flexDirection:`column`,gap:24},children:e.blocks.map((e,n)=>{Te(e,`${a} block \`${e.name??n}\``);let r=s(o,e.runtimeFilter),i=Y(e.columns),l=Oe(e.order),u=Pe(e.type),d=u===`matrix`&&i.length>0?(0,H.jsx)(Be,{dataset:String(e.dataset??``),rows:Y(e.rows),columnsAcross:i,values:Y(e.values),runtimeFilter:r,dataSource:t,onDrill:c,order:l}):(0,H.jsx)(Ne,{dataset:String(e.dataset??``),rows:Y(e.rows),values:Y(e.values),runtimeFilter:r,dataSource:t,onDrill:c,order:l,withTotals:u===`summary`||u===`matrix`});return(0,H.jsxs)(`section`,{"data-testid":`dataset-report-block`,"data-block-id":e.name??`block-${n}`,className:`flex flex-col gap-2 rounded-lg border bg-card p-4`,children:[(0,H.jsxs)(`header`,{className:`flex flex-col gap-0.5`,children:[(0,H.jsx)(`h3`,{className:`text-sm font-semibold`,children:De(e.label,e.name??`Block ${n+1}`)}),e.description?(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:De(e.description,``)}):null]}),d]},e.name??`block-${n}`)})});let u=Y(e.columns),d=Oe(e.order);if(l===`matrix`&&u.length>0)return(0,H.jsx)(`div`,{className:i,"data-testid":`dataset-report`,"data-report-name":e.name,children:(0,H.jsx)(Be,{dataset:String(e.dataset??``),rows:Y(e.rows),columnsAcross:u,values:Y(e.values),runtimeFilter:o,dataSource:t,onDrill:c,order:d})});let f=e.chart&&typeof e.chart==`object`&&e.chart.type?e.chart:null;return(0,H.jsxs)(`div`,{className:`${i??``} flex flex-col gap-3`,"data-testid":`dataset-report`,"data-report-name":e.name,"data-report-presentation":l,children:[f?(0,H.jsx)(Re,{dataset:String(e.dataset??``),chart:f,runtimeFilter:o,dataSource:t,order:d}):null,(0,H.jsx)(Ne,{dataset:String(e.dataset??``),rows:Y(e.rows),values:Y(e.values),runtimeFilter:o,dataSource:t,onDrill:c,order:d,withTotals:l===`summary`||l===`matrix`})]})},$=e=>{let{dataSource:t,rows:n,runtimeFilter:r,onDrill:a,className:o}=e,s=V.useContext(i),c=t??s?.dataSource,l=e.schema;if(l&&typeof l==`object`&&l.type===`spec-report`&&l.report&&typeof l.report==`object`&&(l=l.report),Se(l))return(0,H.jsx)(Ve,{report:l,dataSource:c,runtimeFilter:r,onDrill:a,className:o});if(p(l)){let e={type:`report-viewer`,report:T(l),data:n??[],showToolbar:!1};return(0,H.jsx)(`div`,{className:o,"data-testid":`report-presentation-bridge`,children:(0,H.jsx)(J,{schema:e})})}return(0,H.jsx)(ue,{schema:l})};async function He(e,t){let{dataSource:n,resource:r,queryParams:i,format:a,exportConfig:o}=t,s=a||e.defaultExportFormat||`pdf`;try{let t=(await n.find(r,i)).data||[];return W(s,e,t,{format:s,...e.exportConfigs?.[s],...o}),{success:!0,recordCount:t.length,format:s}}catch(e){return{success:!1,recordCount:0,format:s,error:e.message}}}function Ue(e,t,n={}){let{columns:r,filename:i,includeAggregationRow:a=!1}=n,o=r||(e.fields||[]).map(Ge),s=o.map(e=>e.header),c=t.map((e,t)=>o.map(n=>{if(n.formula)return n.formula.replace(/\{ROW\}/g,String(t+2));let r=e[n.name];return Ke(r,n.numberFormat)}));if(a&&t.length>0){let n=o.map((n,r)=>{let i=(e.fields||[]).find(e=>e.name===n.name);if(i?.aggregation){let e=Je(r),n=t.length+1;switch(i.aggregation){case`sum`:return`=SUM(${e}2:${e}${n})`;case`avg`:return`=AVERAGE(${e}2:${e}${n})`;case`count`:return`=COUNTA(${e}2:${e}${n})`;case`min`:return`=MIN(${e}2:${e}${n})`;case`max`:return`=MAX(${e}2:${e}${n})`;default:return``}}return``});c.push(n)}Xe(``+[s.join(` `),...c.map(e=>e.join(` `))].join(`
59
- `),i||`${e.title||`report`}.tsv`,`text/tab-separated-values`)}function We(e,t,n,r){return async()=>{let i=e.schedule;if(!i?.enabled)return[];let a=i.formats||[e.defaultExportFormat||`pdf`],o=[];for(let r of a){let i=await He(e,{dataSource:t,resource:n,format:r});o.push(i)}return r(e,i),o}}function Ge(e){return{name:e.name,header:e.label||e.name}}function Ke(e,t){return e==null?``:typeof e==`number`&&t?e.toLocaleString(`en-US`,qe(t)):Ye(String(e))}function qe(e){if(e.includes(`%`))return{style:`percent`,minimumFractionDigits:0};let t=(e.match(/0/g)||[]).length;return{minimumFractionDigits:Math.max(0,t-1),maximumFractionDigits:Math.max(0,t-1)}}function Je(e){let t=``,n=e;for(;n>=0;)t=String.fromCharCode(n%26+65)+t,n=Math.floor(n/26)-1;return t}function Ye(e){if(e.length>0){let t=e.charAt(0);if(t===`=`||t===`+`||t===`-`||t===`@`||t===`|`)return`'${e}`}return e}function Xe(e,t,n){let r=new Blob([e],{type:`${n};charset=utf-8`}),i=URL.createObjectURL(r),a=document.createElement(`a`);a.href=i,a.download=t,document.body.appendChild(a),a.click(),document.body.removeChild(a),URL.revokeObjectURL(i)}var Ze=t({DatasetReportRenderer:()=>Ve,LegacyReportRenderer:()=>ue,ReportRenderer:()=>$,ReportViewer:()=>J,createScheduleTrigger:()=>We,exportAsCSV:()=>de,exportAsExcel:()=>me,exportAsHTML:()=>U,exportAsJSON:()=>fe,exportAsPDF:()=>pe,exportExcelWithFormulas:()=>Ue,exportReport:()=>W,exportWithLiveData:()=>He,formatValue:()=>q,isDatasetReport:()=>Se,mergeFilters:()=>s});a.register(`report`,$,{namespace:`plugin-report`,label:`Report`,category:`Report`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`description`,type:`string`,label:`Description`},{name:`chart`,type:`code`,label:`Chart Configuration`}]}),a.register(`spec-report`,$,{namespace:`plugin-report`,label:`Spec Report`,category:`Report`,inputs:[{name:`dataset`,type:`string`,label:`Dataset`},{name:`type`,type:`string`,label:`Report Type`}]}),a.register(`report-viewer`,J,{namespace:`plugin-report`,label:`Report Viewer`,category:`Report`,inputs:[{name:`report`,type:`code`,label:`Report Definition`},{name:`showToolbar`,type:`boolean`,label:`Show Toolbar`}]});export{Ze as t};
@@ -1 +0,0 @@
1
- import{o as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{b as n,r}from"./vendor-react-CsWFRkED.js";import{Ft as i,Ir as a,It as o,Lr as s,Qr as c,a as l,i as u,ir as d,o as f,r as p,ut as m,x as h,zr as g}from"./framework-BfSv4Kb0.js";import{d as _,p as v}from"./i18n-locales-Bz4c8KXc.js";import{dt as y,hc as b,il as x,pc as S}from"./ui-components-D2lrjG-t.js";var C=e(n(),1),w=r(),T=v({"detail.recordDetail":`Record Detail`},`detail.recordDetail`);function E(e){return e.data?e.data:e.staticData?{provider:`value`,items:e.staticData}:e.objectName?{provider:`object`,object:e.objectName}:null}function D(e){return g(e)||(e&&typeof e==`object`?e.key:void 0)||void 0}function O(e){let t=e.tree||e.filter?.tree||{},n=Array.isArray(e.fields)?e.fields:Array.isArray(t.fields)?t.fields:[];return{parentField:D(e.parentField??t.parentField),labelField:D(e.labelField??t.labelField??e.titleField)??`name`,fields:n.map(D).filter(e=>!!e),defaultExpandedDepth:e.defaultExpandedDepth??t.defaultExpandedDepth}}function k(e,t){let n=e?.fields;if(!n||typeof n!=`object`)return;let r;for(let[e,i]of Object.entries(n)){if(i?.type===`tree`)return e;let n=i?.reference;!r&&(i?.type===`lookup`||i?.type===`master_detail`)&&n&&t&&n===t&&(r=e)}return r}function A(e){let t=e?.id??e?._id;return t==null?void 0:String(t)}function j(e,t){if(!t)return;let n=e?.[t];if(n!=null){if(typeof n==`object`){let e=n.id??n._id;return e==null?void 0:String(e)}return String(n)}}function M(e,t){let n=new Map,r=[];for(let t of e){let e=A(t);e!=null&&(n.set(e,{id:e,record:t,depth:0,children:[]}),r.push(e))}let i=[];for(let e of r){let r=n.get(e),a=j(r.record,t),o=a==null?void 0:n.get(a);o&&o!==r?o.children.push(r):i.push(r)}let a=(e,t)=>{for(let n of e)n.depth=t,a(n.children,t+1)};return a(i,0),i}function N(e,t){let n=[],r=e=>{for(let i of e)n.push(i),i.children.length>0&&t.has(i.id)&&r(i.children)};return r(e),n}function P(e,t){let n=new Set,r=e=>{for(let i of e)i.children.length!==0&&(t==null||i.depth<t)&&(n.add(i.id),r(i.children))};return r(e),n}function F(e,t){if(e==null)return``;let n=Array.isArray(t?.fieldDef?.options)?t.fieldDef.options:null;if(n&&n.length>0){let r=t.objectName?t.translateOptions(t.objectName,t.fieldName,n):n,i=e=>{let t=r.find(t=>t?.value===e);if(t)return String(t.label??e);let n=String(e).toLowerCase(),i=r.find(e=>String(e?.value).toLowerCase()===n);return i?String(i.label??e):o(String(e))};return Array.isArray(e)?e.filter(e=>e!=null).map(i).join(`, `):i(e)}return typeof e==`object`&&s(t?.fieldDef)?d(void 0,e):String(typeof e==`object`?e.name??e.label??e.id??e._id??``:e)}var I=({schema:e,dataSource:t,className:n,onRowClick:r,...i})=>{let[o,s]=(0,C.useState)([]),[c,d]=(0,C.useState)({truncated:!1}),[g,v]=(0,C.useState)(!0),[D,A]=(0,C.useState)(null),j=(0,C.useMemo)(()=>E(e),[e]),I=(j?.provider===`object`?j.object:e.objectName)??``,{ready:L,def:R}=h(I,t),z=j?.provider,B=j?.provider===`object`?j.object:void 0,V=j?.provider===`value`?j.items:void 0;(0,C.useEffect)(()=>{let n=!1;return(async()=>{try{if(v(!0),A(null),z===`object`&&t&&typeof t.find==`function`){if(!L)return;let r=a(R?.fields),i=await t.find(B,{$filter:e.filter,$top:u,...r.length>0?{$expand:r}:{}}),o=f(i);n||(s(o.rows),d({truncated:o.truncated,total:o.total}),v(!1));return}let r=i.data??e.data;if(Array.isArray(r)){n||(s(r),d({truncated:!1}),v(!1));return}if(z===`value`){n||(s(V??[]),d({truncated:!1}),v(!1));return}n||(s([]),v(!1))}catch(e){n||(A(e),v(!1))}})(),()=>{n=!0}},[z,B,V,t,e.filter,R,L,i.data]);let H=(0,C.useMemo)(()=>O(e),[e]),U=(0,C.useMemo)(()=>H.parentField??k(R,e.objectName),[H.parentField,R,e.objectName]),W=(0,C.useMemo)(()=>M(o,U),[o,U]),[G,K]=(0,C.useState)(new Set);(0,C.useEffect)(()=>{K(P(W,H.defaultExpandedDepth))},[W,H.defaultExpandedDepth]);let q=e=>K(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n}),J=(0,C.useMemo)(()=>N(W,G),[W,G]),Y=_(),X=(j?.provider===`object`?j.object:void 0)??e.objectName,Z=e=>{let t=R?.fields?.[e]?.label||e.replace(/_/g,` `).replace(/\b\w/g,e=>e.toUpperCase());return X?Y.fieldLabel(X,e,t):t},Q=e=>({fieldDef:R?.fields?.[e],fieldName:e,objectName:X,translateOptions:Y.translateOptions}),$=m({navigation:e.navigation,objectName:e.objectName,onRowClick:r}),{t:ee}=T();return D?(0,w.jsx)(`div`,{className:x(`flex items-center justify-center h-40 text-destructive`,n),children:(0,w.jsxs)(`p`,{children:[`Failed to load tree: `,D.message]})}):g?(0,w.jsx)(`div`,{className:x(`flex items-center justify-center h-40 text-muted-foreground`,n),children:(0,w.jsx)(`p`,{children:`Loading…`})}):o.length===0?(0,w.jsx)(`div`,{className:x(`flex items-center justify-center h-40 text-muted-foreground`,n),children:(0,w.jsx)(`p`,{children:`No records`})}):(0,w.jsxs)(`div`,{className:x(`w-full overflow-auto`,n),"data-testid":`object-tree`,children:[(0,w.jsxs)(`table`,{className:`w-full border-collapse text-sm`,children:[(0,w.jsx)(`thead`,{children:(0,w.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,w.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:Z(H.labelField)}),H.fields.filter(e=>e!==H.labelField).map(e=>(0,w.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:Z(e)},e))]})}),(0,w.jsx)(`tbody`,{children:J.map(e=>{let t=e.children.length>0,n=G.has(e.id);return(0,w.jsxs)(`tr`,{className:`border-b hover:bg-accent/50 cursor-pointer`,"data-testid":`object-tree-row`,"data-depth":e.depth,onClick:t=>$.handleClick(e.record,t),children:[(0,w.jsx)(`td`,{className:`px-3 py-2`,children:(0,w.jsxs)(`div`,{className:`flex items-center gap-1`,style:{paddingLeft:`${e.depth*20}px`},children:[t?(0,w.jsx)(`button`,{type:`button`,"aria-label":n?`Collapse`:`Expand`,className:`flex h-5 w-5 items-center justify-center rounded-sm text-muted-foreground hover:bg-muted`,onClick:t=>{t.stopPropagation(),q(e.id)},children:n?(0,w.jsx)(b,{className:`h-4 w-4`}):(0,w.jsx)(S,{className:`h-4 w-4`})}):(0,w.jsx)(`span`,{className:`inline-block h-5 w-5`}),(0,w.jsx)(`span`,{className:`truncate`,children:F(e.record[H.labelField],Q(H.labelField))||`—`})]})}),H.fields.filter(e=>e!==H.labelField).map(t=>(0,w.jsx)(`td`,{className:`px-3 py-2 text-muted-foreground`,children:F(e.record[t],Q(t))},t))]},e.id)})})]}),(0,w.jsx)(l,{drawn:p,total:c.total,truncated:c.truncated}),$.isOverlay&&(0,w.jsx)(y,{...$,title:ee(`detail.recordDetail`),children:e=>(0,w.jsx)(`div`,{className:`space-y-3`,children:Object.entries(e).map(([e,t])=>(0,w.jsxs)(`div`,{className:`flex flex-col`,children:[(0,w.jsx)(`span`,{className:`text-xs font-medium text-muted-foreground uppercase tracking-wide`,children:e.replace(/_/g,` `)}),(0,w.jsx)(`span`,{className:`text-sm`,children:F(t,Q(e))||`—`})]},e))})})]})},L=t({ObjectTree:()=>I,ObjectTreeRenderer:()=>R}),R=({schema:e,...t})=>{let{dataSource:n}=i()||{};return(0,w.jsx)(I,{schema:e,dataSource:n,...t})},z=[{name:`objectName`,type:`string`,label:`Object Name`,required:!0},{name:`tree`,type:`object`,label:`Tree Config`,description:`parentField, labelField, fields, defaultExpandedDepth`}];c.register(`object-tree`,R,{namespace:`plugin-tree`,label:`Object Tree`,category:`view`,inputs:z}),c.register(`tree`,R,{namespace:`view`,label:`Tree View`,category:`view`,inputs:z});export{L as t};