@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.
- package/CHANGELOG.md +87 -0
- package/dist/.objectui-sha +1 -1
- package/dist/assets/{ActionResultDialog-CQwenjVA.js → ActionResultDialog-Bsr2GS71.js} +1 -1
- package/dist/assets/{AiPendingActionsPage-7gZ8zlOy.js → AiPendingActionsPage-DB-UVcdM.js} +1 -1
- package/dist/assets/{ApiConsolePage-DUF0ysH7.js → ApiConsolePage-Bzqo2owc.js} +1 -1
- package/dist/assets/{AppDocsIndex-CP_AVG4X.js → AppDocsIndex-KhVqdZ-P.js} +1 -1
- package/dist/assets/{AppManagementPage-BJktnoa5.js → AppManagementPage-CsZ0LMQn.js} +1 -1
- package/dist/assets/{ApprovalsInboxPage-DlnxY-uy.js → ApprovalsInboxPage-D_LOnhJ7.js} +1 -1
- package/dist/assets/{AuditLogPage-DIJPRjji.js → AuditLogPage-B9eqwuzl.js} +1 -1
- package/dist/assets/{ComponentNavView-C84QByT7.js → ComponentNavView-DeokLfkW.js} +1 -1
- package/dist/assets/{CreateViewDialog-Zbd9Cagm.js → CreateViewDialog-BMdQ4ZYy.js} +1 -1
- package/dist/assets/{DashboardView-UyKHklBx.js → DashboardView-DHZboRi8.js} +1 -1
- package/dist/assets/{DeveloperHubPage-BRyNdrCJ.js → DeveloperHubPage-C_VYirN0.js} +1 -1
- package/dist/assets/{DocPage-Bx8ZXCYt.js → DocPage-_9x-3Dbi.js} +1 -1
- package/dist/assets/{DocShell-Ipy_IDvh.js → DocShell-D4dSPfBz.js} +1 -1
- package/dist/assets/{DocsIndex-CmY-7OQR.js → DocsIndex-CJVRa_hE.js} +1 -1
- package/dist/assets/{DocsLayout-BNsSvaz2.js → DocsLayout-C-tYgUZv.js} +1 -1
- package/dist/assets/{DocsSlug-Cb_NMM1k.js → DocsSlug-DmyGpfEy.js} +1 -1
- package/dist/assets/{ExpressionProvider-DqGWVuxV.js → ExpressionProvider-B6z09kM6.js} +1 -1
- package/dist/assets/{FlowRunsPage-B6ustUgi.js → FlowRunsPage-OjGJi-JU.js} +1 -1
- package/dist/assets/{IntegrationsPage-chOxmiyU.js → IntegrationsPage-CrDMDe62.js} +1 -1
- package/dist/assets/{InterfaceListPage-DVETnQm5.js → InterfaceListPage-P3y6hqTX.js} +1 -1
- package/dist/assets/{MarketplaceInstalledPage-DA5pjhAz.js → MarketplaceInstalledPage-CQek7WnV.js} +1 -1
- package/dist/assets/{MarketplacePackagePage-dCIVHBFi.js → MarketplacePackagePage-DL2ivKSc.js} +1 -1
- package/dist/assets/{MarketplacePage-wJb6g1p7.js → MarketplacePage-B-6EokyB.js} +1 -1
- package/dist/assets/{MetadataInspector-Cu-n1FYz.js → MetadataInspector-IQGUoLyp.js} +1 -1
- package/dist/assets/{ObjectDataPage-CP-YSZYQ.js → ObjectDataPage-Bmc3RQhM.js} +1 -1
- package/dist/assets/{PageView-B1_ibRuM.js → PageView-DzUZqB_h.js} +1 -1
- package/dist/assets/{ProfilePage-DEr5iZVB.js → ProfilePage-NklCqPxc.js} +1 -1
- package/dist/assets/{PublicFormsPage-CBcKQbNl.js → PublicFormsPage-CItIvcLQ.js} +1 -1
- package/dist/assets/RecordDetailView-XWxuegfV.js +3 -0
- package/dist/assets/{RecordFormPage-CGQlYWDk.js → RecordFormPage-B-yrhs7J.js} +1 -1
- package/dist/assets/{ReportDefaultInspector-R_p6YStL.js → ReportDefaultInspector-D5Kro5_t.js} +1 -1
- package/dist/assets/{ReportView-BTMrtcGH.js → ReportView-COpZ8PQT.js} +1 -1
- package/dist/assets/{RuntimeDraftBar-agGU39FL.js → RuntimeDraftBar-CSVtuByp.js} +1 -1
- package/dist/assets/{SchemaForm-DJbupOno.js → SchemaForm-DIsxxOZF.js} +1 -1
- package/dist/assets/{SearchResultsPage-CHhZUc6L.js → SearchResultsPage-B2r6kgni.js} +1 -1
- package/dist/assets/{SettingsHub-BGLR_gS7.js → SettingsHub-DQz2HDtZ.js} +1 -1
- package/dist/assets/{SettingsView-Bq-7Zkzs.js → SettingsView-BfOEalDW.js} +1 -1
- package/dist/assets/{SkeletonDetail-B4-UKxai.js → SkeletonDetail-DMOa5zcl.js} +1 -1
- package/dist/assets/{SystemHubPage-CVZVag1e.js → SystemHubPage-DM2VRSIP.js} +1 -1
- package/dist/assets/{abnfDiagram-VCTEODGH-DUS5D5dU.js → abnfDiagram-VCTEODGH-DaPlU6Hz.js} +1 -1
- package/dist/assets/{app-shell-eager-leaves-BB0oaPx6.js → app-shell-eager-leaves-wjbiJgVZ.js} +1 -1
- package/dist/assets/architectureDiagram-5GKGNRK7-Cq014PwG.js +36 -0
- package/dist/assets/{blockDiagram-OSKFZWR5-Bz2hnVmp.js → blockDiagram-OSKFZWR5-vtlcoeZc.js} +1 -1
- package/dist/assets/{c4Diagram-7LVT6UL2-DU3u1Y6c.js → c4Diagram-7LVT6UL2-BrdwRG2M.js} +1 -1
- package/dist/assets/channel-D2IgUFnY.js +1 -0
- package/dist/assets/{chunk-3NF5O7KM-B8Q7HUio.js → chunk-3NF5O7KM-CjWAf_Jo.js} +1 -1
- package/dist/assets/{chunk-4HAMMTFA-BPKwX4iB.js → chunk-4HAMMTFA-BtV_msXT.js} +1 -1
- package/dist/assets/chunk-75Z2AOVW-DdRL9yNr.js +2 -0
- package/dist/assets/chunk-CLGD4ZFX-De9kMAXh.js +1 -0
- package/dist/assets/{chunk-DU6HZSFF-BkY4hAzc.js → chunk-DU6HZSFF-DqjylQO-.js} +1 -1
- package/dist/assets/chunk-F27PBJKO-tEB_K-iD.js +1 -0
- package/dist/assets/{chunk-GMAD6QVW-DZo_NykZ.js → chunk-GMAD6QVW-BMzd_HHM.js} +1 -1
- package/dist/assets/{chunk-GVQU2GXP-9ELY9S6X.js → chunk-GVQU2GXP-B1p1nHC0.js} +1 -1
- package/dist/assets/{chunk-H2I77ZZE-vCr_buP7.js → chunk-H2I77ZZE-ioXC4dHO.js} +1 -1
- package/dist/assets/{chunk-HLEWEB6X-iPkY2ESt.js → chunk-HLEWEB6X-zZ3ZMup3.js} +1 -1
- package/dist/assets/chunk-L3NEJ4N5-DePXufTQ.js +1 -0
- package/dist/assets/{chunk-LQGUR6SS-iVI0GACK.js → chunk-LQGUR6SS-BUWUp_dz.js} +1 -1
- package/dist/assets/{chunk-OSK3NFVY-DcRwXCQD.js → chunk-OSK3NFVY-L7nTUJKT.js} +2 -2
- package/dist/assets/{chunk-P2QGCYS3-nx2-dM5t.js → chunk-P2QGCYS3-BG-i3rdI.js} +1 -1
- package/dist/assets/{chunk-POPQ4Y6H-BxLOacOG.js → chunk-POPQ4Y6H-DLEB8EqK.js} +1 -1
- package/dist/assets/{chunk-PWAF6VOD-2mst9kZu.js → chunk-PWAF6VOD-Be_prJjm.js} +1 -1
- package/dist/assets/{chunk-SVP7TREG-C3BMpr4x.js → chunk-SVP7TREG-BdJpxJji.js} +1 -1
- package/dist/assets/chunk-XXDRQBXY-CEXsCcSu.js +1 -0
- package/dist/assets/{chunk-ZLD2IHE6-ZFqtFJbj.js → chunk-ZLD2IHE6-BLIPZykR.js} +1 -1
- package/dist/assets/classDiagram-CYGNFDIV-BielDdJQ.js +1 -0
- package/dist/assets/classDiagram-v2-TLXNO2FR-BielDdJQ.js +1 -0
- package/dist/assets/cose-bilkent-JH36ORCC-CnLWv9XE.js +1 -0
- package/dist/assets/{createDerive-Best2JCj.js → createDerive-DtfnFzGm.js} +1 -1
- package/dist/assets/{cynefinDiagram-5FMLGOSQ-Lnly8IJd.js → cynefinDiagram-5FMLGOSQ-Do1SZz4I.js} +1 -1
- package/dist/assets/{dagre-OS7QT2EB-CdXLxmTK.js → dagre-OS7QT2EB-CqmZ9Y9O.js} +1 -1
- package/dist/assets/data-adapter-1YRpH3h_.js +5 -0
- package/dist/assets/{default-inspector-registry-DeEG98bO.js → default-inspector-registry-CmSpNwTr.js} +1 -1
- package/dist/assets/{diagram-S7CK7UJ4-DE8I3gxQ.js → diagram-S7CK7UJ4-CMpcDWop.js} +1 -1
- package/dist/assets/{diagram-UQ7AKVKN-D2xQpbEq.js → diagram-UQ7AKVKN-DLK_4yej.js} +1 -1
- package/dist/assets/{diagram-VSXAHHWV-DnttDSlO.js → diagram-VSXAHHWV-MAILxw0S.js} +1 -1
- package/dist/assets/diagram-VX7I27RA-DGiXGVX7.js +24 -0
- package/dist/assets/{diagram-Z3DM3KII-BgB9f0Nv.js → diagram-Z3DM3KII-BywboeGI.js} +1 -1
- package/dist/assets/dist-B88JFSFg.js +5 -0
- package/dist/assets/{ebnfDiagram-PWID7BFC-32WvKbS2.js → ebnfDiagram-PWID7BFC-DdMLbnuP.js} +1 -1
- package/dist/assets/{erDiagram-2YWLMYGG-Dwf8uAdl.js → erDiagram-2YWLMYGG-O6raGx2P.js} +1 -1
- package/dist/assets/flowDiagram-T62WH6J4-CkAxOnqU.js +1 -0
- package/dist/assets/framework-DFE_Mws9.js +36 -0
- package/dist/assets/{ganttDiagram-EL5Y4UJY-DqYIE0Cu.js → ganttDiagram-EL5Y4UJY-Dijdjc50.js} +2 -2
- package/dist/assets/{getIcon-CgyYxSEC.js → getIcon-B4Pp7Q-0.js} +1 -1
- package/dist/assets/gitGraphDiagram-WWUBYQGX-Cfl4OIGG.js +106 -0
- package/dist/assets/{highlighted-body-OFNGDK62-BxO9mjPI.js → highlighted-body-OFNGDK62-BlqGRgbU.js} +1 -1
- package/dist/assets/{i18n-Cfqor-xb.js → i18n-DGcOKnTh.js} +1 -1
- package/dist/assets/{i18n-locales-Bz4c8KXc.js → i18n-locales-BBA090ve.js} +10 -10
- package/dist/assets/index-C5Fu9Kda.css +2 -0
- package/dist/assets/index-ClPLLRzK.js +20 -0
- package/dist/assets/{infoDiagram-FKFFQAWI-Cr1-5_Am.js → infoDiagram-FKFFQAWI-oOVNWlVA.js} +1 -1
- package/dist/assets/{infrastructure-CIpDEFyQ.js → infrastructure-B4zG1jNa.js} +2 -2
- package/dist/assets/{ishikawaDiagram-5VMMS53U-Bsjx7BsE.js → ishikawaDiagram-5VMMS53U-BUfTfup1.js} +1 -1
- package/dist/assets/{journeyDiagram-EYS64GPL-1scn5Z5c.js → journeyDiagram-EYS64GPL-4fyU8Ui9.js} +2 -2
- package/dist/assets/{kanban-definition-UXKFOSKX-DjLQAv5U.js → kanban-definition-UXKFOSKX-qwquHo2y.js} +1 -1
- package/dist/assets/mermaid-GHXKKRXX-_UhQGe8N.js +1 -0
- package/dist/assets/{mermaid.core-pW40dd4u.js → mermaid.core-RfBGJVq5.js} +2 -2
- package/dist/assets/{metadata-admin-pawEBYI9.js → metadata-admin-Bo-vWW2Z.js} +3 -3
- package/dist/assets/{mindmap-definition-THT77NOG-CUcYMB9H.js → mindmap-definition-THT77NOG-cOVHgGB_.js} +1 -1
- package/dist/assets/{pegDiagram-XKGWAZYB-CT1r3sRa.js → pegDiagram-XKGWAZYB-DQikOuPL.js} +1 -1
- package/dist/assets/{pieDiagram-E7YTZNPT-CSi-V1LQ.js → pieDiagram-E7YTZNPT-Cu9wPXiv.js} +2 -2
- package/dist/assets/plugin-calendar-DqlnPeWE.js +1 -0
- package/dist/assets/plugin-charts-hJ5C1pY-.js +7 -0
- package/dist/assets/{plugin-chatbot-BGnkLzFS.js → plugin-chatbot-BeSLDg4N.js} +5 -5
- package/dist/assets/plugin-dashboard-d1o52lHr.js +6 -0
- package/dist/assets/{plugin-form-_fjHxKTV.js → plugin-form-D8x_rH5w.js} +1 -1
- package/dist/assets/plugin-gantt-B2GTMGPH.js +63 -0
- package/dist/assets/plugin-grid-DGXy_yQF.js +9 -0
- package/dist/assets/{plugin-kanban-DA0eW6yj.js → plugin-kanban-CVf6Nj3e.js} +1 -1
- package/dist/assets/plugin-map-hkbw1bGS.js +1 -0
- package/dist/assets/{plugin-markdown-B7zwZHmn.js → plugin-markdown-Bdb2UThR.js} +4 -4
- package/dist/assets/plugin-report-CelulaB7.js +59 -0
- package/dist/assets/{plugin-timeline-B6rsNNAK.js → plugin-timeline-DTcJ-hts.js} +1 -1
- package/dist/assets/plugin-tree-Bk5vG9la.js +1 -0
- package/dist/assets/{plugin-view-5qxxRyZZ.js → plugin-view-CKs41t7o.js} +1 -1
- package/dist/assets/plugins-views-DZmsFOak.js +4 -0
- package/dist/assets/{quadrantDiagram-AXDQQJYC-DUJ_94hm.js → quadrantDiagram-AXDQQJYC-DqTU6p89.js} +3 -3
- package/dist/assets/{railroadDiagram-O6MQD6OU-CEyfAhzM.js → railroadDiagram-O6MQD6OU-CHGgIBKb.js} +1 -1
- package/dist/assets/{requirementDiagram-IS5BZ75X-CAK7hvBg.js → requirementDiagram-IS5BZ75X-B20mHS5h.js} +1 -1
- package/dist/assets/{runtime-metadata-persistence-DYPxFzHI.js → runtime-metadata-persistence-DzS2YaNb.js} +1 -1
- package/dist/assets/{sankeyDiagram-P5KCCOFB-DgYJh7uz.js → sankeyDiagram-P5KCCOFB-oqGY91Cw.js} +3 -3
- package/dist/assets/{sequenceDiagram-WJ2MYXX4-DsQerPtC.js → sequenceDiagram-WJ2MYXX4-CVMm7Aid.js} +1 -1
- package/dist/assets/{src-CVJP2nIc.js → src-D7tZqf12.js} +1 -1
- package/dist/assets/{src-_DxAIBqo.js → src-DCXZnd2l.js} +1 -1
- package/dist/assets/{src-S6pzKItc.js → src-DEMdKbQy.js} +1 -1
- package/dist/assets/src-hcMLuWxG.js +17 -0
- package/dist/assets/stateDiagram-XQSTLZYL-3oM7IdVe.js +1 -0
- package/dist/assets/stateDiagram-v2-IH3M54BS-BznjPAgb.js +1 -0
- package/dist/assets/studioEntry-BUFsLXCL.js +1 -0
- package/dist/assets/{submitRedirect-UXd9NsjL.js → submitRedirect-7ExeC4kw.js} +1 -1
- package/dist/assets/{swimlanes-V6O3JKXN-BiKyiEJr.js → swimlanes-V6O3JKXN-Djgbrkmh.js} +1 -1
- package/dist/assets/swimlanesDiagram-JKAHXJPX-DHJJ3qZq.js +8 -0
- package/dist/assets/{timeline-definition-24CTP7MA-CW5rY3PX.js → timeline-definition-24CTP7MA-k2lbfDvL.js} +2 -2
- package/dist/assets/ui-components-CMHDBJEm.js +37 -0
- package/dist/assets/{ui-layout-UUTFXV6S.js → ui-layout-Jk_qY9Ni.js} +1 -1
- package/dist/assets/{use-book-data-qUZAxIs0.js → use-book-data-CM73PGvc.js} +1 -1
- package/dist/assets/{useActionModal-CkM-zGdy.js → useActionModal-D_iilsul.js} +1 -1
- package/dist/assets/{usePackageL10n-F9isJ9pn.js → usePackageL10n-BfPqgsRL.js} +1 -1
- package/dist/assets/{useSettingsLabel-CSZBfUiw.js → useSettingsLabel-CW2sBbmj.js} +1 -1
- package/dist/assets/vendor-charts-BBlPrtHS.js +67 -0
- package/dist/assets/{vendor-i18n-C1AQDWux.js → vendor-i18n-CzBLXLJU.js} +1 -1
- package/dist/assets/vendor-objectstack-BU0HrnMy.js +270 -0
- package/dist/assets/{vendor-zod-r9lyeyrU.js → vendor-zod-Bwe8XZZa.js} +3 -3
- package/dist/assets/{vennDiagram-4TSXK5OY-C79cMc25.js → vennDiagram-4TSXK5OY-zweM554s.js} +1 -1
- package/dist/assets/{wardleyDiagram-VM6X3IG4-BAO0_jUk.js → wardleyDiagram-VM6X3IG4-Dg9r6Ajz.js} +1 -1
- package/dist/assets/{xychartDiagram-S5SC5T6Z-BIRd7YRo.js → xychartDiagram-S5SC5T6Z-CraplxeN.js} +2 -2
- package/dist/eager-closure.json +87 -87
- package/dist/index.html +4 -4
- package/package.json +1 -1
- package/dist/assets/RecordDetailView-A8bbPnkK.js +0 -3
- package/dist/assets/architectureDiagram-5GKGNRK7-mGW8P1lC.js +0 -36
- package/dist/assets/channel-FD4s9EIH.js +0 -1
- package/dist/assets/chunk-75Z2AOVW-CkSdnmiC.js +0 -2
- package/dist/assets/chunk-CLGD4ZFX-BTkDISwp.js +0 -1
- package/dist/assets/chunk-F27PBJKO-DUKg0YWV.js +0 -1
- package/dist/assets/chunk-L3NEJ4N5-Bzz35TZJ.js +0 -1
- package/dist/assets/chunk-XXDRQBXY-iNC8aYmk.js +0 -1
- package/dist/assets/classDiagram-CYGNFDIV-D5Pd2TCl.js +0 -1
- package/dist/assets/classDiagram-v2-TLXNO2FR-D5Pd2TCl.js +0 -1
- package/dist/assets/cose-bilkent-JH36ORCC-CPQv9aQH.js +0 -1
- package/dist/assets/data-adapter-DL25qpAe.js +0 -5
- package/dist/assets/diagram-VX7I27RA-BSEwkn7K.js +0 -24
- package/dist/assets/dist-BpPy7hlB.js +0 -5
- package/dist/assets/flowDiagram-T62WH6J4-CqVSNJ8T.js +0 -1
- package/dist/assets/framework-BfSv4Kb0.js +0 -36
- package/dist/assets/gitGraphDiagram-WWUBYQGX-D1dYmoGu.js +0 -106
- package/dist/assets/index-BU-FzlQ6.js +0 -20
- package/dist/assets/index-_VyGO4ms.css +0 -2
- package/dist/assets/mermaid-GHXKKRXX-NzEcDxBh.js +0 -1
- package/dist/assets/plugin-calendar-BwiiCIjv.js +0 -1
- package/dist/assets/plugin-charts-CDGkx7z5.js +0 -7
- package/dist/assets/plugin-dashboard-Bj4ldCX6.js +0 -6
- package/dist/assets/plugin-gantt-zR8DkpEg.js +0 -63
- package/dist/assets/plugin-grid-kkbz4uec.js +0 -9
- package/dist/assets/plugin-map-DukneTNg.js +0 -1
- package/dist/assets/plugin-report-DaPtlsJr.js +0 -59
- package/dist/assets/plugin-tree-DauauLFc.js +0 -1
- package/dist/assets/plugins-views-iYcMmImr.js +0 -4
- package/dist/assets/src-JX1BkhmR.js +0 -17
- package/dist/assets/stateDiagram-XQSTLZYL-BJndPKik.js +0 -1
- package/dist/assets/stateDiagram-v2-IH3M54BS-Bi94bTLl.js +0 -1
- package/dist/assets/studioEntry-C6G8U-LG.js +0 -1
- package/dist/assets/swimlanesDiagram-JKAHXJPX-DKIR852g.js +0 -8
- package/dist/assets/ui-components-D2lrjG-t.js +0 -43
- package/dist/assets/vendor-charts-CY9WhhzX.js +0 -67
- package/dist/assets/vendor-objectstack-BeKUVjuj.js +0 -270
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{t}from"./src-
|
|
1
|
+
import{n as e}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{t}from"./src-D7tZqf12.js";import{b as n,et as r,f as i,k as a,rt as o,tt as s,x as c,z as l}from"./chunk-DU6HZSFF-DqjylQO-.js";import"./chunk-PWAF6VOD-Be_prJjm.js";import"./chunk-75Z2AOVW-DdRL9yNr.js";import"./chunk-GMAD6QVW-BMzd_HHM.js";import"./chunk-P2QGCYS3-BG-i3rdI.js";import"./chunk-4HAMMTFA-BtV_msXT.js";import"./chunk-GVQU2GXP-B1p1nHC0.js";import"./chunk-OSK3NFVY-L7nTUJKT.js";import{t as u}from"./chunk-XXDRQBXY-CEXsCcSu.js";import{t as d}from"./chunk-POPQ4Y6H-DLEB8EqK.js";import"./chunk-L3NEJ4N5-DePXufTQ.js";import{r as f,t as p}from"./chunk-LQGUR6SS-BUWUp_dz.js";var m=[];for(let e=0;e<256;++e)m.push((e+256).toString(16).slice(1));function h(e,t=0){return(m[e[t+0]]+m[e[t+1]]+m[e[t+2]]+m[e[t+3]]+`-`+m[e[t+4]]+m[e[t+5]]+`-`+m[e[t+6]]+m[e[t+7]]+`-`+m[e[t+8]]+m[e[t+9]]+`-`+m[e[t+10]]+m[e[t+11]]+m[e[t+12]]+m[e[t+13]]+m[e[t+14]]+m[e[t+15]]).toLowerCase()}var g,_=new Uint8Array(16);function v(){if(!g){if(typeof crypto>`u`||!crypto.getRandomValues)throw Error(`crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported`);g=crypto.getRandomValues.bind(crypto)}return g(_)}var y={randomUUID:typeof crypto<`u`&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function b(e,t,n){if(y.randomUUID&&!t&&!e)return y.randomUUID();e||={};let r=e.random??e.rng?.()??v();if(r.length<16)throw Error(`Random bytes length must be >= 16`);if(r[6]=r[6]&15|64,r[8]=r[8]&63|128,t){if(n||=0,n<0||n+16>t.length)throw RangeError(`UUID byte range ${n}:${n+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[n+e]=r[e];return t}return h(r)}var x=(function(){var t=e(function(e,t,n,r){for(n||={},r=e.length;r--;n[e[r]]=t);return n},`o`),n=[1,4],r=[1,13],i=[1,12],a=[1,15],o=[1,16],s=[1,20],c=[1,19],l=[6,7,8],u=[1,26],d=[1,24],f=[1,25],p=[6,7,11],m=[1,6,13,15,16,19,22],h=[1,33],g=[1,34],_=[1,6,7,11,13,15,16,19,22],v={trace:e(function(){},`trace`),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,MINDMAP:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,ICON:15,CLASS:16,nodeWithId:17,nodeWithoutId:18,NODE_DSTART:19,NODE_DESCR:20,NODE_DEND:21,NODE_ID:22,$accept:0,$end:1},terminals_:{2:`error`,6:`SPACELINE`,7:`NL`,8:`MINDMAP`,11:`EOF`,13:`SPACELIST`,15:`ICON`,16:`CLASS`,19:`NODE_DSTART`,20:`NODE_DESCR`,21:`NODE_DEND`,22:`NODE_ID`},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[18,3],[17,1],[17,4]],performAction:e(function(e,t,n,r,i,a,o){var s=a.length-1;switch(i){case 6:case 7:return r;case 8:r.getLogger().trace(`Stop NL `);break;case 9:r.getLogger().trace(`Stop EOF `);break;case 11:r.getLogger().trace(`Stop NL2 `);break;case 12:r.getLogger().trace(`Stop EOF2 `);break;case 15:r.getLogger().info(`Node: `,a[s].id),r.addNode(a[s-1].length,a[s].id,a[s].descr,a[s].type);break;case 16:r.getLogger().trace(`Icon: `,a[s]),r.decorateNode({icon:a[s]});break;case 17:case 21:r.decorateNode({class:a[s]});break;case 18:r.getLogger().trace(`SPACELIST`);break;case 19:r.getLogger().trace(`Node: `,a[s].id),r.addNode(0,a[s].id,a[s].descr,a[s].type);break;case 20:r.decorateNode({icon:a[s]});break;case 25:r.getLogger().trace(`node found ..`,a[s-2]),this.$={id:a[s-1],descr:a[s-1],type:r.getType(a[s-2],a[s])};break;case 26:this.$={id:a[s],descr:a[s],type:r.nodeType.DEFAULT};break;case 27:r.getLogger().trace(`node found ..`,a[s-3]),this.$={id:a[s-3],descr:a[s-1],type:r.getType(a[s-2],a[s])}}},`anonymous`),table:[{3:1,4:2,5:3,6:[1,5],8:n},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:n},{6:r,7:[1,10],9:9,12:11,13:i,14:14,15:a,16:o,17:17,18:18,19:s,22:c},t(l,[2,3]),{1:[2,2]},t(l,[2,4]),t(l,[2,5]),{1:[2,6],6:r,12:21,13:i,14:14,15:a,16:o,17:17,18:18,19:s,22:c},{6:r,9:22,12:11,13:i,14:14,15:a,16:o,17:17,18:18,19:s,22:c},{6:u,7:d,10:23,11:f},t(p,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:s,22:c}),t(p,[2,18]),t(p,[2,19]),t(p,[2,20]),t(p,[2,21]),t(p,[2,23]),t(p,[2,24]),t(p,[2,26],{19:[1,30]}),{20:[1,31]},{6:u,7:d,10:32,11:f},{1:[2,7],6:r,12:21,13:i,14:14,15:a,16:o,17:17,18:18,19:s,22:c},t(m,[2,14],{7:h,11:g}),t(_,[2,8]),t(_,[2,9]),t(_,[2,10]),t(p,[2,15]),t(p,[2,16]),t(p,[2,17]),{20:[1,35]},{21:[1,36]},t(m,[2,13],{7:h,11:g}),t(_,[2,11]),t(_,[2,12]),{21:[1,37]},t(p,[2,25]),t(p,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:e(function(e,t){if(t.recoverable)this.trace(e);else{var n=Error(e);throw n.hash=t,n}},`parseError`),parse:e(function(t){var n=this,r=[0],i=[],a=[null],o=[],s=this.table,c=``,l=0,u=0,d=0,f=2,p=1,m=o.slice.call(arguments,1),h=Object.create(this.lexer),g={yy:{}};for(var _ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,_)&&(g.yy[_]=this.yy[_]);h.setInput(t,g.yy),g.yy.lexer=h,g.yy.parser=this,h.yylloc===void 0&&(h.yylloc={});var v=h.yylloc;o.push(v);var y=h.options&&h.options.ranges;this.parseError=typeof g.yy.parseError==`function`?g.yy.parseError:Object.getPrototypeOf(this).parseError;function b(e){r.length-=2*e,a.length-=e,o.length-=e}e(b,`popStack`);function x(){var e=i.pop()||h.lex()||p;return typeof e!=`number`&&(e instanceof Array&&(i=e,e=i.pop()),e=n.symbols_[e]||e),e}e(x,`lex`);for(var S,C,w,T,E,D={},O,k,A,j;;){if(w=r[r.length-1],this.defaultActions[w]?T=this.defaultActions[w]:(S??=x(),T=s[w]&&s[w][S]),T===void 0||!T.length||!T[0]){var M=``;for(O in j=[],s[w])this.terminals_[O]&&O>f&&j.push(`'`+this.terminals_[O]+`'`);M=h.showPosition?`Parse error on line `+(l+1)+`:
|
|
2
2
|
`+h.showPosition()+`
|
|
3
3
|
Expecting `+j.join(`, `)+`, got '`+(this.terminals_[S]||S)+`'`:`Parse error on line `+(l+1)+`: Unexpected `+(S==p?`end of input`:`'`+(this.terminals_[S]||S)+`'`),this.parseError(M,{text:h.match,token:this.terminals_[S]||S,line:h.yylineno,loc:v,expected:j})}if(T[0]instanceof Array&&T.length>1)throw Error(`Parse Error: multiple actions possible at state: `+w+`, token: `+S);switch(T[0]){case 1:r.push(S),a.push(h.yytext),o.push(h.yylloc),r.push(T[1]),S=null,C?(S=C,C=null):(u=h.yyleng,c=h.yytext,l=h.yylineno,v=h.yylloc,d>0&&d--);break;case 2:if(k=this.productions_[T[1]][1],D.$=a[a.length-k],D._$={first_line:o[o.length-(k||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(k||1)].first_column,last_column:o[o.length-1].last_column},y&&(D._$.range=[o[o.length-(k||1)].range[0],o[o.length-1].range[1]]),E=this.performAction.apply(D,[c,u,l,g.yy,T[1],a,o].concat(m)),E!==void 0)return E;k&&(r=r.slice(0,-1*k*2),a=a.slice(0,-1*k),o=o.slice(0,-1*k)),r.push(this.productions_[T[1]][0]),a.push(D.$),o.push(D._$),A=s[r[r.length-2]][r[r.length-1]],r.push(A);break;case 3:return!0}}return!0},`parse`)};v.lexer=(function(){return{EOF:1,parseError:e(function(e,t){if(this.yy.parser)this.yy.parser.parseError(e,t);else throw Error(e)},`parseError`),setInput:e(function(e,t){return this.yy=t||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=``,this.conditionStack=[`INITIAL`],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},`setInput`),input:e(function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},`input`),unput:e(function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},`unput`),more:e(function(){return this._more=!0,this},`more`),reject:e(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError(`Lexical error on line `+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
|
|
4
4
|
`+this.showPosition(),{text:``,token:null,line:this.yylineno});return this},`reject`),less:e(function(e){this.unput(this.match.slice(e))},`less`),pastInput:e(function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?`...`:``)+e.substr(-20).replace(/\n/g,``)},`pastInput`),upcomingInput:e(function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?`...`:``)).replace(/\n/g,``)},`upcomingInput`),showPosition:e(function(){var e=this.pastInput(),t=Array(e.length+1).join(`-`);return e+this.upcomingInput()+`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./chunk-747NJXEK-Bdie6H1T.js";import{n as t}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{t as n}from"./src-
|
|
1
|
+
import{n as e}from"./chunk-747NJXEK-Bdie6H1T.js";import{n as t}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{t as n}from"./src-D7tZqf12.js";import"./chunk-DU6HZSFF-DqjylQO-.js";import"./chunk-CLGD4ZFX-De9kMAXh.js";import{n as r,r as i,t as a}from"./chunk-SVP7TREG-BdJpxJji.js";import{t as o}from"./chunk-JWPE2WC7-DVXcaiue.js";import{t as s}from"./mermaid-parser.core-DUt1FNlO.js";var c=e().RailroadPeg.parser.LangiumParser,l=t(e=>{let t=e.alternatives.map(u);return t.length===1?t[0]:{type:`choice`,alternatives:t}},`transformOrderedChoice`),u=t(e=>{let t=e.elements.map(d);return t.length===1?t[0]:{type:`sequence`,elements:t}},`transformSequence`),d=t(e=>{let t=p(e.suffix);return e.operator?{type:`special`,text:e.operator===`&`?`&${f(t)}`:`!${f(t)}`}:t},`transformPrefix`),f=t(e=>{switch(e.type){case`terminal`:return`"${e.value}"`;case`nonterminal`:return e.name;case`special`:return e.text;default:return`(...)`}},`nodeToLabel`),p=t(e=>{let t=m(e.primary);if(!e.operator)return t;switch(e.operator){case`?`:return{type:`optional`,element:t};case`*`:return{type:`repetition`,element:t,min:0,max:1/0};case`+`:return{type:`repetition`,element:t,min:1,max:1/0};default:throw Error(`Unsupported PEG suffix operator: ${e.operator}`)}},`transformSuffix`),m=t(e=>{switch(e.$type){case`PegLiteral`:return{type:`terminal`,value:e.value};case`PegIdentifier`:return{type:`nonterminal`,name:e.name};case`PegGroup`:return l(e.element);case`PegAny`:return{type:`special`,text:e.dot};default:throw Error(`Unsupported PEG primary node: ${e.$type}`)}},`transformPrimary`),h=t(e=>({name:e.name,definition:l(e.definition)}),`transformRule`),g=t(e=>{o(e,a),e.title&&a.setTitle(e.title),e.rules.map(e=>a.addRule(h(e)))},`populateDb`),_={parser:{parse:t(e=>{a.clear(),n.debug(`[PEG Parser] Starting Langium parse`);let t=c.parse(e);if(t.lexerErrors.length>0||t.parserErrors.length>0)throw new s(t);let r=t.value;n.debug(`[PEG Parser] Parsed rules:`,r.rules.length),g(r),n.debug(`[PEG Parser] Parse complete`)},`parse`),parser:{yy:a}},db:a,renderer:i,styles:r};export{_ as diagram};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{Et as e,it as t,st as n}from"./vendor-charts-BBlPrtHS.js";import{n as r}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{t as i}from"./src-D7tZqf12.js";import{H as a,K as o,U as s,a as c,c as l,f as u,v as d,w as f,x as p,y as m}from"./chunk-DU6HZSFF-DqjylQO-.js";import{t as h}from"./chunk-CLGD4ZFX-De9kMAXh.js";import{t as g}from"./chunk-JWPE2WC7-DVXcaiue.js";import{n as _}from"./mermaid-parser.core-DUt1FNlO.js";import{i as v,p as y}from"./chunk-75Z2AOVW-DdRL9yNr.js";var b=u.pie,x={sections:new Map,showData:!1,config:b},S=x.sections,C=x.showData,w=structuredClone(b),T={getConfig:r(()=>structuredClone(w),`getConfig`),clear:r(()=>{S=new Map,C=x.showData,c()},`clear`),setDiagramTitle:o,getDiagramTitle:f,setAccTitle:s,getAccTitle:m,setAccDescription:a,getAccDescription:d,addSection:r(({label:e,value:t})=>{if(t<0)throw Error(`"${e}" has invalid value: ${t}. Negative values are not allowed in pie charts. All slice values must be >= 0.`);S.has(e)||(S.set(e,t),i.debug(`added new section: ${e}, with value: ${t}`))},`addSection`),getSections:r(()=>S,`getSections`),setShowData:r(e=>{C=e},`setShowData`),getShowData:r(()=>C,`getShowData`)},E=r((e,t)=>{g(e,t),t.setShowData(e.showData),e.sections.map(t.addSection)},`populateDb`),D={parse:r(async e=>{let t=await _(`pie`,e);i.debug(t),E(t,T)},`parse`)},O=r(e=>`
|
|
2
2
|
.pieCircle{
|
|
3
3
|
stroke: ${e.pieStrokeColor};
|
|
4
4
|
stroke-width : ${e.pieStrokeWidth};
|
|
@@ -36,4 +36,4 @@ import{Ft as e,Mt as t,ct as n}from"./vendor-charts-CY9WhhzX.js";import{n as r}f
|
|
|
36
36
|
font-size: ${e.pieLegendTextSize};
|
|
37
37
|
}
|
|
38
38
|
`,`getStyles`),k=r(e=>{let n=[...e.values()].reduce((e,t)=>e+t,0),r=[...e.entries()].map(([e,t])=>({label:e,value:t})).filter(e=>e.value/n*100>=1);return t().value(e=>e.value).sort(null)(r)},`createPieArcs`),A={parser:D,db:T,renderer:{draw:r((t,r,a,o)=>{i.debug(`rendering pie chart
|
|
39
|
-
`+t);let s=o.db,c=p(),u=v(s.getConfig(),c.pie),d=h(r),f=d.append(`g`);f.attr(`transform`,`translate(225,225)`);let{themeVariables:m}=c,[g]=y(m.pieOuterStrokeWidth);g??=2;let _=u.legendPosition,b=u.textPosition,x=u.donutHole>0&&u.donutHole<=.9?u.donutHole:0,S=
|
|
39
|
+
`+t);let s=o.db,c=p(),u=v(s.getConfig(),c.pie),d=h(r),f=d.append(`g`);f.attr(`transform`,`translate(225,225)`);let{themeVariables:m}=c,[g]=y(m.pieOuterStrokeWidth);g??=2;let _=u.legendPosition,b=u.textPosition,x=u.donutHole>0&&u.donutHole<=.9?u.donutHole:0,S=n().innerRadius(x*185).outerRadius(185),C=n().innerRadius(185*b).outerRadius(185*b),w=f.append(`g`);w.append(`circle`).attr(`cx`,0).attr(`cy`,0).attr(`r`,185+g/2).attr(`class`,`pieOuterCircle`);let T=s.getSections(),E=k(T),D=[m.pie1,m.pie2,m.pie3,m.pie4,m.pie5,m.pie6,m.pie7,m.pie8,m.pie9,m.pie10,m.pie11,m.pie12],O=0;T.forEach(e=>{O+=e});let A=E.filter(e=>(e.data.value/O*100).toFixed(0)!==`0`),j=e(D).domain([...T.keys()]);w.selectAll(`mySlices`).data(A).enter().append(`path`).attr(`d`,S).attr(`fill`,e=>j(e.data.label)).attr(`class`,e=>{let t=`pieCircle`;return u.highlightSlice===`hover`?t+=` highlightedOnHover`:u.highlightSlice===e.data.label&&(t+=` highlighted`),t}),w.selectAll(`mySlices`).data(A).enter().append(`text`).text(e=>(e.data.value/O*100).toFixed(0)+`%`).attr(`transform`,e=>`translate(`+C.centroid(e)+`)`).style(`text-anchor`,`middle`).attr(`class`,`slice`);let M=f.append(`text`).text(s.getDiagramTitle()).attr(`x`,0).attr(`y`,-200).attr(`class`,`pieTitleText`),N=[...T.entries()].map(([e,t])=>({label:e,value:t})),P=f.selectAll(`.legend`).data(N).enter().append(`g`).attr(`class`,`legend`);P.append(`rect`).attr(`width`,18).attr(`height`,18).style(`fill`,e=>j(e.label)).style(`stroke`,e=>j(e.label)),P.append(`text`).attr(`x`,22).attr(`y`,14).text(e=>s.getShowData()?`${e.label} [${e.value}]`:e.label);let F=Math.max(...P.selectAll(`text`).nodes().map(e=>e?.getBoundingClientRect().width??0)),I=450,L=490,R=N.length*22;switch(_){case`center`:P.attr(`transform`,(e,t)=>{let n=22*N.length/2,r=-F/2-22,i=t*22-n;return`translate(`+r+`,`+i+`)`});break;case`top`:I+=R,P.attr(`transform`,(e,t)=>`translate(${-F/2-22}, ${t*22-185})`),w.attr(`transform`,()=>`translate(0, ${R+22})`);break;case`bottom`:I+=R,P.attr(`transform`,(e,t)=>{let n=-F/2-22,r=t*22- -207;return`translate(`+n+`,`+r+`)`});break;case`left`:L+=22+F,P.attr(`transform`,(e,t)=>{let n=22*N.length/2;return`translate(-207,`+(t*22-n)+`)`}),w.attr(`transform`,()=>`translate(${F+18+4}, 0)`);break;default:L+=22+F,P.attr(`transform`,(e,t)=>{let n=22*N.length/2;return`translate(216,`+(t*22-n)+`)`})}let z=M.node()?.getBoundingClientRect().width??0,B=225-z/2,V=225+z/2,H=Math.min(0,B),U=Math.max(L,V)-H;d.attr(`viewBox`,`${H} 0 ${U} ${I}`),l(d,I,U,u.useMaxWidth)},`draw`)},styles:O};export{A as diagram};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{b as n,r}from"./vendor-react-CsWFRkED.js";import{n as i}from"./infrastructure-B4zG1jNa.js";import{Ft as a,Lt as o,Rt as s,Xt as c,a as l,c as u,d,i as f,ni as p,o as m,p as h,r as g,rr as _,sr as ee,ti as v,u as y,ut as b,x,zr as S}from"./framework-DFE_Mws9.js";import{m as C,p as w,y as T}from"./i18n-locales-BBA090ve.js";import{Bn as te,Cr as ne,Da as E,Dc as D,Dn as O,En as k,Fn as re,In as ie,Nn as A,Nr as j,On as M,Pn as ae,Sr as oe,Tn as N,Xr as P,_n as se,br as ce,il as F,mc as le,pc as ue,vr as de,wn as fe,xr as pe,yr as me}from"./ui-components-CMHDBJEm.js";import{r as he}from"./vendor-ui-utils-BFw4cGI6.js";import{s as ge}from"./plugin-grid-DGXy_yQF.js";import{o as _e,s as ve}from"./plugins-views-DZmsFOak.js";var I=e(n(),1),L=r(),ye=`bg-blue-100 text-blue-900 border border-blue-200`,R=new Date,be=[`bg-blue-100 text-blue-900 border border-blue-200`,`bg-emerald-100 text-emerald-900 border border-emerald-200`,`bg-amber-100 text-amber-900 border border-amber-200`,`bg-rose-100 text-rose-900 border border-rose-200`,`bg-violet-100 text-violet-900 border border-violet-200`,`bg-cyan-100 text-cyan-900 border border-cyan-200`,`bg-orange-100 text-orange-900 border border-orange-200`,`bg-fuchsia-100 text-fuchsia-900 border border-fuchsia-200`],xe=/^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i,z=/(^|\s)(bg|text|from|to|via)-/;function Se(e){if(!e)return{className:ye};if(xe.test(e))return{className:`text-white`,inlineColor:e};if(z.test(e))return{className:e};let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n)|0;return{className:be[Math.abs(t)%be.length]}}var B=w({"calendar.today":`Today`,"calendar.month":`Month`,"calendar.week":`Week`,"calendar.day":`Day`,"calendar.newEvent":`New event`,"calendar.moreEvents":`+{{count}} more`,"calendar.allDay":`All Day`},`calendar.today`);function Ce({events:e=[],view:t=`month`,currentDate:n=R,locale:r=`default`,onEventClick:i,onDateClick:a,onViewChange:o,onNavigate:s,onAddClick:c,onEventDrop:l,onTimeRangeSelect:u,slotMinutes:d=30,className:f}){let[p,m]=I.useState(t),[h,g]=I.useState(n),{t:_,language:ee}=B(),v=r==="default"?ee:r;I.useEffect(()=>{g(n)},[n]),I.useEffect(()=>{m(t)},[t]);let y=I.useRef(o);y.current=o,I.useEffect(()=>{let e=window.matchMedia(`(max-width: 639px)`),t=e=>{e.matches&&(m(`day`),y.current?.(`day`))};return t(e),e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]);let b=()=>{let e=new Date(h);p===`month`?e.setMonth(e.getMonth()-1):p===`week`?e.setDate(e.getDate()-7):e.setDate(e.getDate()-1),g(e),s?.(e)},x=()=>{let e=new Date(h);p===`month`?e.setMonth(e.getMonth()+1):p===`week`?e.setDate(e.getDate()+7):e.setDate(e.getDate()+1),g(e),s?.(e)},S=()=>{let e=new Date;g(e),s?.(e)},C=e=>{m(e),o?.(e)},w=()=>{if(p===`month`)return h.toLocaleDateString(v,{month:`long`,year:`numeric`});if(p===`week`){let e=V(h),t=new Date(e);return t.setDate(t.getDate()+6),`${e.toLocaleDateString(v,{month:`short`,day:`numeric`})} - ${t.toLocaleDateString(v,{month:`short`,day:`numeric`,year:`numeric`})}`}return h.toLocaleDateString(v,{weekday:`long`,month:`long`,day:`numeric`,year:`numeric`})},T=I.useRef(0);return(0,L.jsxs)(`div`,{role:`region`,"aria-label":`Calendar`,className:F(`flex flex-col h-full bg-background min-w-0 overflow-hidden`,f),children:[(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2 p-2 sm:p-4 border-b min-w-0`,children:[(0,L.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,L.jsxs)(`div`,{className:`flex items-center bg-muted/50 rounded-lg p-1 gap-1`,children:[(0,L.jsx)(P,{variant:`ghost`,size:`sm`,onClick:S,className:`h-8`,"aria-label":`Go to today`,children:_(`calendar.today`)}),(0,L.jsx)(`div`,{className:`h-4 w-px bg-border mx-1`}),(0,L.jsx)(P,{variant:`ghost`,size:`icon`,"aria-label":`Previous period`,onClick:b,className:`h-8 w-8`,children:(0,L.jsx)(le,{className:`h-4 w-4`})}),(0,L.jsx)(P,{variant:`ghost`,size:`icon`,"aria-label":`Next period`,onClick:x,className:`h-8 w-8`,children:(0,L.jsx)(ue,{className:`h-4 w-4`})})]}),(0,L.jsxs)(A,{children:[(0,L.jsx)(re,{asChild:!0,children:(0,L.jsxs)(P,{variant:`ghost`,"aria-label":`Current date: ${w()}`,className:F(`text-base sm:text-xl font-semibold h-auto px-2 sm:px-3 py-1 hover:bg-muted/50 transition-colors`,`flex items-center gap-2`),children:[(0,L.jsx)(D,{className:`h-5 w-5 text-muted-foreground`}),(0,L.jsx)(`span`,{children:w()})]})}),(0,L.jsx)(ae,{className:`w-auto p-0`,align:`start`,children:(0,L.jsx)(j,{mode:`single`,selected:h,onSelect:e=>{e&&(g(e),s?.(e))},autoFocus:!0,startMonth:new Date(2e3,0),endMonth:new Date(2050,11)})})]})]}),(0,L.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,L.jsxs)(fe,{value:p,onValueChange:C,children:[(0,L.jsx)(O,{className:`w-32 bg-background`,children:(0,L.jsx)(M,{})}),(0,L.jsxs)(N,{children:[(0,L.jsx)(k,{value:`day`,children:_(`calendar.day`)}),(0,L.jsx)(k,{value:`week`,children:_(`calendar.week`)}),(0,L.jsx)(k,{value:`month`,children:_(`calendar.month`)})]})]}),c&&(0,L.jsxs)(P,{onClick:c,size:`sm`,className:`gap-1`,children:[(0,L.jsx)(E,{className:`h-4 w-4`}),_(`calendar.newEvent`)]})]})]}),(0,L.jsxs)(`div`,{className:`flex-1 overflow-auto`,onTouchStart:e=>{T.current=e.touches[0].clientX},onTouchEnd:e=>{let t=T.current-e.changedTouches[0].clientX;if(Math.abs(t)>50){let e=new Date(h);p===`day`?e.setDate(e.getDate()+(t>0?1:-1)):p===`week`?e.setDate(e.getDate()+(t>0?7:-7)):e.setMonth(e.getMonth()+(t>0?1:-1)),g(e),s?.(e)}},children:[p===`month`&&(0,L.jsx)(Ee,{date:h,events:e,locale:v,onEventClick:i,onDateClick:a,onEventDrop:l}),p===`week`&&(0,L.jsx)(Oe,{mode:`week`,date:h,events:e,locale:v,slotMinutes:d,onEventClick:i,onEventDrop:l,onTimeRangeSelect:u}),p===`day`&&(0,L.jsx)(Oe,{mode:`day`,date:h,events:e,locale:v,slotMinutes:d,onEventClick:i,onEventDrop:l,onTimeRangeSelect:u})]})]})}function V(e){let t=new Date(e),n=t.getDay(),r=t.getDate()-n;return t.setDate(r),t}function we(e){let t=e.getFullYear(),n=e.getMonth(),r=new Date(t,n,1),i=new Date(t,n+1,0),a=r.getDay(),o=[];for(let e=a-1;e>=0;e--){let t=new Date(r.getTime());t.setDate(t.getDate()-(e+1)),o.push(t)}for(let e=1;e<=i.getDate();e++)o.push(new Date(t,n,e));let s=42-o.length;for(let e=1;e<=s;e++){let t=new Date(i.getTime());t.setDate(t.getDate()+e),o.push(t)}return o}function Te(e,t){return e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}function Ee({date:e,events:t,locale:n=`default`,onEventClick:r,onDateClick:i,onEventDrop:a}){let o=I.useMemo(()=>we(e),[e.getFullYear(),e.getMonth()]),s=I.useMemo(()=>new Date,[]),{t:c}=B(),l=I.useMemo(()=>{let e=new Date(2024,0,7);return Array.from({length:7},(t,r)=>{let i=new Date(e);return i.setDate(i.getDate()+r),i.toLocaleDateString(n,{weekday:`short`})})},[n]),[u,d]=I.useState(null),[f,p]=I.useState(null),m=I.useMemo(()=>{let e=new Map;for(let n of t){let t=new Date(n.start),r=n.end?new Date(n.end):new Date(t);t.setHours(0,0,0,0),r.setHours(0,0,0,0);let i=new Date(t);for(;i<=r;){let a=`${i.getFullYear()}-${i.getMonth()}-${i.getDate()}`,o=i.getTime()===t.getTime(),s=i.getTime()===r.getTime(),c=o||s||i.getDay()===0,l=e.get(a),u={event:n,isTitleDay:c,isSpanStart:o,isSpanEnd:s};l?l.push(u):e.set(a,[u]),i.setDate(i.getDate()+1)}}return e},[t]),h=(e,t,n=`move`,r)=>{d(t.id),e.dataTransfer.effectAllowed=`move`;let i={id:t.id,mode:n,...r?{sourceDay:`${r.getFullYear()}-${r.getMonth()}-${r.getDate()}`}:{}};e.dataTransfer.setData(`text/plain`,JSON.stringify(i)),n===`resize-end`&&e.stopPropagation()},g=()=>{d(null),p(null)},_=(e,t)=>{e.preventDefault(),e.dataTransfer.dropEffect=`move`,p(t)},ee=e=>{e.currentTarget.contains(e.relatedTarget)||p(null)},v=(e,n)=>{if(e.preventDefault(),p(null),d(null),!a)return;let r=e.dataTransfer.getData(`text/plain`),i;try{i=JSON.parse(r)}catch{i={id:r,mode:`move`}}let o=t.find(e=>String(e.id)===String(i.id));if(!o)return;let s=new Date(n);if(s.setHours(0,0,0,0),i.mode===`resize-end`){let e=o.end?new Date(o.end):new Date(o.start),t=new Date(e);if(t.setHours(0,0,0,0),s.getTime()===t.getTime())return;let n=new Date(o.start);if(n.setHours(0,0,0,0),s.getTime()<n.getTime())return;let r=new Date(s);r.setHours(e.getHours(),e.getMinutes(),e.getSeconds(),0),a(o,new Date(o.start),r);return}let c=new Date(o.start),l;if(i.sourceDay){let[e,t,n]=i.sourceDay.split(`-`).map(e=>parseInt(e,10));l=new Date(e,t,n)}else l=new Date(c);l.setHours(0,0,0,0);let u=s.getTime()-l.getTime();if(u===0)return;let f=new Date(c.getTime()+u),m;o.end&&(m=new Date(new Date(o.end).getTime()+u)),a(o,f,m)};return(0,L.jsxs)(`div`,{className:`flex flex-col h-full`,children:[(0,L.jsx)(`div`,{role:`row`,className:`grid grid-cols-7 border-b`,children:l.map(e=>(0,L.jsx)(`div`,{role:`columnheader`,className:`p-2 text-center text-sm font-medium text-muted-foreground border-r last:border-r-0`,children:e},e))}),(0,L.jsx)(`div`,{role:`grid`,"aria-label":`Calendar grid`,className:`grid grid-cols-7 flex-1 auto-rows-fr`,children:o.map((t,n)=>{let o=`${t.getFullYear()}-${t.getMonth()}-${t.getDate()}`,l=m.get(o)||[],d=t.getMonth()===e.getMonth(),p=Te(t,s);return(0,L.jsxs)(`div`,{role:`gridcell`,"aria-label":`${t.toLocaleDateString(`default`,{weekday:`long`,month:`long`,day:`numeric`,year:`numeric`})}${l.length>0?`, ${l.length} event${l.length>1?`s`:``}`:``}`,className:F(`border-b border-r last:border-r-0 p-2 min-h-[100px] cursor-pointer hover:bg-accent/50`,!d&&`bg-muted/50 text-muted-foreground opacity-50`,f===n&&`ring-2 ring-primary`),onClick:()=>i?.(t),onDragOver:e=>_(e,n),onDragLeave:ee,onDrop:e=>v(e,t),children:[(0,L.jsx)(`div`,{className:F(`text-sm font-medium mb-2`,p&&`inline-flex items-center justify-center rounded-full bg-primary text-primary-foreground h-6 w-6`),...p?{"aria-current":`date`}:{},children:t.getDate()}),(0,L.jsxs)(`div`,{className:`space-y-0.5`,children:[l.slice(0,4).map(({event:e,isTitleDay:n,isSpanStart:i,isSpanEnd:o},s)=>{let c=!n,{className:l,inlineColor:d}=Se(e.color),f=!!a&&o;return(0,L.jsxs)(`div`,{role:`button`,title:e.title,"aria-label":e.title,draggable:!!a,onDragStart:n=>h(n,e,`move`,t),onDragEnd:g,className:F(`relative text-xs hover:opacity-80 truncate`,a?`cursor-move`:`cursor-pointer`,c?`h-1.5`:`px-2 py-0.5`,i?`rounded-l`:`rounded-l-none`,o?`rounded-r`:`rounded-r-none`,!o&&`-mr-2`,l,u===e.id&&`opacity-50`),style:d?{backgroundColor:d}:void 0,onClick:t=>{t.stopPropagation(),r?.(e)},children:[c?``:e.title,f&&(0,L.jsx)(`span`,{role:`separator`,"aria-label":`Resize event end`,title:`Drag to change end date`,draggable:!0,onDragStart:n=>h(n,e,`resize-end`,t),onDragEnd:g,onClick:e=>e.stopPropagation(),className:`absolute inset-y-0 right-0 w-2 cursor-ew-resize bg-black/25 hover:bg-black/50 rounded-r`})]},`${e.id}-${s}`)}),l.length>4&&(0,L.jsx)(`div`,{className:`text-xs text-muted-foreground px-2`,children:c(`calendar.moreEvents`,{count:l.length-4})})]})]},n)})})]})}var H=48;function U(e){let t=new Date(e);return t.setHours(0,0,0,0),t}function De(e){return e.getHours()*60+e.getMinutes()}function W(e){return`${e.getFullYear()}-${e.getMonth()}-${e.getDate()}`}function Oe({mode:e,date:t,events:n,locale:r=`default`,slotMinutes:i=30,onEventClick:a,onEventDrop:o,onTimeRangeSelect:s}){let{t:c}=B(),l=H*i/60,u=1152,d=I.useMemo(()=>{if(e===`day`)return[U(t)];let n=V(t);return Array.from({length:7},(e,t)=>{let r=new Date(n);return r.setDate(n.getDate()+t),U(r)})},[e,t.getFullYear(),t.getMonth(),t.getDate()]),f=I.useMemo(()=>new Date,[]),p=I.useCallback(e=>{if(e.allDay)return!0;let t=new Date(e.start),n=e.end?new Date(e.end):new Date(t),r=t.getHours()===0&&t.getMinutes()===0&&t.getSeconds()===0,i=n.getHours()===0&&n.getMinutes()===0&&n.getSeconds()===0,a=n.getTime()-t.getTime();return!!(r&&i||a>=864e5)},[]),{allDayEvents:m,timedEvents:h}=I.useMemo(()=>{let e=[],t=[];for(let r of n)p(r)?e.push(r):t.push(r);return{allDayEvents:e,timedEvents:t}},[n,p]),g=I.useMemo(()=>{let e=new Map;for(let t of d)e.set(W(t),[]);for(let t of m){let n=U(new Date(t.start)),r=t.end?new Date(t.end):new Date(t.start),i=U(r);r.getHours()===0&&r.getMinutes()===0&&r.getSeconds()===0&&r.getTime()>n.getTime()&&(i=new Date(i),i.setDate(i.getDate()-1));for(let r of d){let a=U(r);a<n||a>i||e.get(W(r)).push({event:t,isStart:a.getTime()===n.getTime(),isEnd:a.getTime()===i.getTime()})}}return e},[d,m]),_=I.useMemo(()=>{let e=new Map;for(let t of d)e.set(W(t),[]);for(let t of h){let n=new Date(t.start),r=t.end?new Date(t.end):new Date(n.getTime()+36e5);for(let i of d){let a=U(i),o=new Date(a);if(o.setDate(o.getDate()+1),r<=a||n>=o)continue;let s=n<a?a:n,c=r>o?o:r,l=De(s),u=c.getTime()===o.getTime()?1440:De(c);e.get(W(i)).push({event:t,startMin:l,endMin:Math.max(u,l+15),isStart:s.getTime()===n.getTime(),isEnd:c.getTime()===r.getTime()})}}return e},[d,h]),ee=I.useMemo(()=>{let e=new Map;for(let[t,n]of _){let r=[...n].sort((e,t)=>e.startMin-t.startMin||e.endMin-t.endMin),i=[],a=[],o=[];for(let e of r){let t=0;for(;i[t]&&i[t].endMin>e.startMin;)t++;i[t]={endMin:e.endMin},a.push({entry:e,col:t})}for(let e=0;e<a.length;e++){let t=a[e],n=t.col;for(let r=0;r<a.length;r++){if(r===e)continue;let i=a[r];i.entry.startMin<t.entry.endMin&&i.entry.endMin>t.entry.startMin&&i.col>n&&(n=i.col)}o.push({...t.entry,col:t.col,cols:n+1})}e.set(t,o)}return e},[_]),v=I.useRef(null),y=I.useRef([]),[b,x]=I.useState(null),S=I.useRef(null);S.current=b;let C=I.useRef(!1),w=I.useCallback((e,t)=>{let n=y.current[t];if(!n)return 0;let r=(e-n.getBoundingClientRect().top+n.scrollTop)/H*60,a=Math.round(r/i)*i;return Math.max(0,Math.min(1440,a))},[i]),T=I.useCallback(e=>{for(let t=0;t<y.current.length;t++){let n=y.current[t];if(!n)continue;let r=n.getBoundingClientRect();if(e>=r.left&&e<=r.right)return t}return-1},[]);I.useEffect(()=>{if(!b)return;let e=e=>{let t=b.kind===`select`||b.kind===`move`?T(e.clientX):b.dayIndex,n=t<0?b.dayIndex??0:t,r=w(e.clientY,n);x(e=>e&&(e.kind===`select`?{...e,dayIndex:n>=0?n:e.dayIndex,headMinutes:r}:e.kind===`move`?{...e,dayIndex:n,minutes:r}:{...e,minutes:r}))},t=e=>{let t=S.current;if(!t){x(null);return}try{if(t.kind===`select`&&s){let e=Math.min(t.anchorMinutes,t.headMinutes),n=Math.max(t.anchorMinutes,t.headMinutes),r=e,a=n===e?Math.min(1440,e+i):n,o=d[t.dayIndex]??d[0],c=new Date(o);c.setHours(0,Math.round(r),0,0);let l=new Date(o);l.setHours(0,Math.round(a),0,0),C.current=!0,s(c,l)}else if(t.kind===`move`&&o){let e=n.find(e=>String(e.id)===String(t.eventId));if(e){let n=t.dayIndex<0?0:t.dayIndex,r=t.minutes-t.grabMinuteOffset,a=Math.max(0,Math.min(1440-t.durationMin,Math.round(r/i)*i)),s=d[n]??d[0],c=new Date(s);c.setHours(0,a,0,0);let l=new Date(c.getTime()+t.durationMin*60*1e3);C.current=!0,o(e,c,l)}}else if(t.kind===`resize-top`&&o){let e=n.find(e=>String(e.id)===String(t.eventId));if(e){let n=d[t.dayIndex]??d[0],r=Math.min(t.anchorEndMin-i,Math.max(0,t.minutes)),a=new Date(n);a.setHours(0,r,0,0);let s=new Date(n);s.setHours(0,t.anchorEndMin,0,0),C.current=!0,o(e,a,s)}}else if(t.kind===`resize-bottom`&&o){let e=n.find(e=>String(e.id)===String(t.eventId));if(e){let n=d[t.dayIndex]??d[0],r=Math.max(t.anchorStartMin+i,Math.min(1440,t.minutes)),a=new Date(n);a.setHours(0,t.anchorStartMin,0,0);let s=new Date(n);s.setHours(0,r,0,0),C.current=!0,o(e,a,s)}}}finally{x(null),setTimeout(()=>{C.current=!1},50)}};return window.addEventListener(`pointermove`,e),window.addEventListener(`pointerup`,t),()=>{window.removeEventListener(`pointermove`,e),window.removeEventListener(`pointerup`,t)}},[b,d,n,i,o,s,T,w]);let te=I.useMemo(()=>d.map(e=>({weekday:e.toLocaleDateString(r,{weekday:`short`}),day:e.getDate(),month:e.toLocaleDateString(r,{month:`short`}),isToday:Te(e,f)})),[d,r,f]),ne=I.useMemo(()=>Array.from({length:24},(e,t)=>new Date(2024,0,1,t,0).toLocaleTimeString(r,{hour:`numeric`})),[r]),E=(e,t,n,r)=>{if(!o||e.button!==0)return;e.stopPropagation(),e.preventDefault();let i=w(e.clientY,n);x(r===`body`?{kind:`move`,eventId:t.event.id,grabMinuteOffset:Math.max(0,i-t.startMin),durationMin:t.endMin-t.startMin,dayIndex:n,minutes:i}:r===`top`?{kind:`resize-top`,eventId:t.event.id,anchorEndMin:t.endMin,dayIndex:n,minutes:i}:{kind:`resize-bottom`,eventId:t.event.id,anchorStartMin:t.startMin,dayIndex:n,minutes:i})},D=(e,t)=>{if(!s||e.button!==0)return;e.preventDefault();let n=w(e.clientY,t);x({kind:`select`,dayIndex:t,anchorMinutes:n,headMinutes:n})},O=e=>{if(!b)return null;if(b.kind===`select`&&b.dayIndex===e){let t=Math.min(b.anchorMinutes,b.headMinutes),n=Math.max(b.anchorMinutes,b.headMinutes),i=t/60*H,a=Math.max(l,(n-t)/60*H);return(0,L.jsx)(`div`,{className:`absolute left-1 right-1 rounded bg-primary/30 border border-primary pointer-events-none z-10`,style:{top:i,height:a},"aria-hidden":!0,children:(0,L.jsx)(`div`,{className:`px-2 py-0.5 text-xs font-medium text-primary`,children:G(d[e],t,n,r)})})}if(b.kind===`move`&&b.dayIndex===e){let t=b.minutes-b.grabMinuteOffset,n=Math.max(0,Math.min(1440-b.durationMin,Math.round(t/i)*i)),a=n/60*H,o=b.durationMin/60*H;return(0,L.jsx)(`div`,{className:`absolute left-1 right-1 rounded border-2 border-dashed border-primary bg-primary/10 pointer-events-none z-10`,style:{top:a,height:o},"aria-hidden":!0,children:(0,L.jsx)(`div`,{className:`px-2 py-0.5 text-xs font-medium text-primary`,children:G(d[e],n,n+b.durationMin,r)})})}if((b.kind===`resize-top`||b.kind===`resize-bottom`)&&b.dayIndex===e){let t,n;b.kind===`resize-top`?(t=Math.min(b.anchorEndMin-i,Math.max(0,b.minutes)),n=b.anchorEndMin):(t=b.anchorStartMin,n=Math.max(b.anchorStartMin+i,Math.min(1440,b.minutes)));let a=t/60*H,o=(n-t)/60*H;return(0,L.jsx)(`div`,{className:`absolute left-1 right-1 rounded border-2 border-dashed border-primary bg-primary/10 pointer-events-none z-10`,style:{top:a,height:o},"aria-hidden":!0,children:(0,L.jsx)(`div`,{className:`px-2 py-0.5 text-xs font-medium text-primary`,children:G(d[e],t,n,r)})})}return null};return(0,L.jsxs)(`div`,{className:`flex flex-col h-full`,ref:v,children:[(0,L.jsxs)(`div`,{className:`flex border-b sticky top-0 bg-background z-20`,children:[(0,L.jsx)(`div`,{className:`w-14 shrink-0 border-r`,"aria-hidden":!0}),te.map((e,t)=>(0,L.jsxs)(`div`,{role:`columnheader`,className:F(`flex-1 p-2 text-center text-sm border-r last:border-r-0`,e.isToday&&`bg-primary/5`),children:[(0,L.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:e.weekday}),(0,L.jsx)(`div`,{className:F(`font-medium`,e.isToday&&`inline-flex items-center justify-center rounded-full bg-primary text-primary-foreground h-6 w-6 mx-auto`),children:e.day})]},t))]}),m.length>0&&(0,L.jsxs)(`div`,{className:`flex border-b bg-muted/20 max-h-[140px] overflow-y-auto`,children:[(0,L.jsx)(`div`,{className:`w-14 shrink-0 border-r flex items-start justify-end pr-1 pt-1 text-[10px] text-muted-foreground sticky left-0 bg-muted/20`,children:c(`calendar.allDay`)}),d.map(e=>{let t=W(e),n=g.get(t)??[];return(0,L.jsx)(`div`,{className:`flex-1 border-r last:border-r-0 min-h-[28px] p-0.5 space-y-0.5`,children:n.map(({event:e,isStart:t,isEnd:n},r)=>{let{className:i,inlineColor:o}=Se(e.color);return(0,L.jsx)(`div`,{role:`button`,title:e.title,onClick:t=>{t.stopPropagation(),a?.(e)},className:F(`text-[11px] px-2 py-0.5 truncate cursor-pointer hover:opacity-80`,t?`rounded-l`:`rounded-l-none -ml-0.5`,n?`rounded-r`:`rounded-r-none -mr-0.5`,i),style:o?{backgroundColor:o}:void 0,children:t?e.title:`\xA0`},`${e.id}-${r}`)})},t)})]}),(0,L.jsx)(`div`,{className:`flex-1 overflow-auto`,children:(0,L.jsxs)(`div`,{className:`flex`,style:{height:u},children:[(0,L.jsx)(`div`,{className:`w-14 shrink-0 border-r relative`,children:ne.map((e,t)=>(0,L.jsx)(`div`,{className:`absolute right-1 text-[10px] text-muted-foreground -translate-y-1/2`,style:{top:t*H},children:t===0?``:e},t))}),d.map((e,t)=>{let n=W(e),s=ee.get(n)??[];return(0,L.jsxs)(`div`,{ref:e=>{y.current[t]=e},className:`flex-1 border-r last:border-r-0 relative select-none`,style:{height:u},onPointerDown:e=>D(e,t),"aria-label":e.toLocaleDateString(r,{weekday:`long`,month:`long`,day:`numeric`,year:`numeric`}),children:[Array.from({length:24},(e,t)=>(0,L.jsx)(`div`,{className:`absolute left-0 right-0 border-t border-muted/60 pointer-events-none`,style:{top:t*H}},t)),i<60&&Array.from({length:Math.floor(1440/i)},(e,t)=>{let n=t*i;return n%60==0?null:(0,L.jsx)(`div`,{className:`absolute left-0 right-0 border-t border-dashed border-muted/30 pointer-events-none`,style:{top:n/60*H}},t)}),s.map(n=>{let i=n.startMin/60*H,s=Math.max(l,(n.endMin-n.startMin)/60*H),c=100/n.cols,u=n.col*c,{className:d,inlineColor:f}=Se(n.event.color),p=b&&b.eventId===n.event.id;return(0,L.jsxs)(`div`,{role:`button`,tabIndex:0,title:n.event.title,"aria-label":n.event.title,onPointerDown:e=>E(e,n,t,`body`),onClick:e=>{if(C.current){e.stopPropagation();return}e.stopPropagation(),a?.(n.event)},className:F(`absolute rounded text-xs px-2 py-1 overflow-hidden shadow-sm`,o?`cursor-move`:`cursor-pointer`,d,p&&`opacity-40`),style:{top:i,height:s,left:`calc(${u}% + 2px)`,width:`calc(${c}% - 4px)`,...f?{backgroundColor:f}:{}},children:[(0,L.jsx)(`div`,{className:`font-medium truncate`,children:n.event.title}),(0,L.jsx)(`div`,{className:`text-[10px] opacity-80 truncate`,children:G(e,n.startMin,n.endMin,r)}),o&&n.isStart&&(0,L.jsx)(`div`,{onPointerDown:e=>E(e,n,t,`top`),className:`absolute top-0 left-0 right-0 h-1.5 cursor-ns-resize`,"aria-label":`Resize start`}),o&&n.isEnd&&(0,L.jsx)(`div`,{onPointerDown:e=>E(e,n,t,`bottom`),className:`absolute bottom-0 left-0 right-0 h-1.5 cursor-ns-resize`,"aria-label":`Resize end`})]},`${n.event.id}-${n.startMin}`)}),O(t)]},n)})]})})]})}function G(e,t,n,r){let i=new Date(e);i.setHours(0,Math.round(t),0,0);let a=new Date(e);a.setHours(0,Math.round(n),0,0);let o=e=>e.toLocaleTimeString(r,{hour:`numeric`,minute:`2-digit`});return`${o(i)} – ${o(a)}`}function ke(e){return`filter`in e&&e.filter&&typeof e.filter==`object`&&`calendar`in e.filter?e.filter.calendar:e.calendar?e.calendar:e.startDateField||e.dateField?{startDateField:e.startDateField||e.dateField,endDateField:e.endDateField||e.endField,titleField:e.titleField,colorField:e.colorField,allDayField:e.allDayField}:null}var K=({schema:e,dataSource:t,className:n,data:r,loading:a,onEventClick:p,onRowClick:h,onDateClick:v,onNavigate:w,onViewChange:E,onEventDrop:D,locale:O})=>{let k=C(),{t:re}=T(),A=Array.isArray(r),[j,M]=(0,I.useState)(A?r:[]),[ae,N]=(0,I.useState)(A?a??!1:!0),[le,fe]=(0,I.useState)(null),[ye,R]=(0,I.useState)({truncated:!1}),[be,xe]=(0,I.useState)(new Date),[z,Se]=(0,I.useState)(!1),B=se(),V=e.defaultView,[we,Te]=(0,I.useState)(()=>{let e=V===`day`||!V;return typeof window<`u`&&window.innerWidth<768&&e?`month`:V||`month`});(0,I.useEffect)(()=>{B&&we===`day`&&(V===`day`||!V)&&Te(`month`)},[B]);let[Ee,H]=(0,I.useState)(0);(0,I.useEffect)(()=>{if(!A&&!(!t?.onMutation||!e.objectName))return t.onMutation(t=>{t.resource===e.objectName&&H(e=>e+1)})},[t,e.objectName,A]);let U=(0,I.useCallback)(async()=>{H(e=>e+1)},[]),{ref:De,isRefreshing:W,pullDistance:Oe}=ge({onRefresh:U,enabled:!!t&&!!e.objectName}),G=(0,I.useMemo)(()=>o(e),[e.data,e.staticData,e.objectName]),K=(0,I.useMemo)(()=>ke(e),[e.filter,e.calendar,e.dateField,e.endField,e.titleField,e.colorField]),Ae=G?.provider===`value`,q=G?.provider,je=G?.provider===`value`?G.items:void 0,J=s(e,G),{ready:Me,def:Y}=x(J??``,Ae?void 0:t),Ne=i();(0,I.useEffect)(()=>{A&&(M(r),R({truncated:!1}))},[r,A]),(0,I.useEffect)(()=>{A&&a!==void 0&&N(a)},[a,A]),(0,I.useEffect)(()=>{if(A||q===`object`&&!Me)return;let n=!0;return(async()=>{try{if(!n)return;if(N(!0),Ae&&q===`value`){n&&(M(je),R({truncated:!1}),N(!1));return}if(!t||typeof t.find!=`function`)throw Error(`DataSource required for object/api providers`);if(q===`object`){let r=J,i=S(Y?.fields),a=Ne?.isLoaded?i.filter(e=>Ne.checkField(r,e,`read`)):i,o=await t.find(r,{$filter:e.filter,$orderby:_(e.sort),$top:f,...a.length>0?{$expand:a}:{}}),s=m(o);n&&(M(s.rows),R({truncated:s.truncated,total:s.total}))}else q===`api`&&(console.warn(`API provider not yet implemented for ObjectCalendar`),n&&M([]));n&&N(!1)}catch(e){console.error(`[ObjectCalendar] Error fetching data:`,e),n&&(fe(e),N(!1))}})(),()=>{n=!1}},[A,q,J,je,t,Ae,e.filter,e.sort,Ee,Me,Y,Ne]);let{events:Pe,unscheduledRecords:Fe}=(0,I.useMemo)(()=>{if(!K||!j.length)return{events:[],unscheduledRecords:[]};let{startDateField:e,endDateField:t,titleField:n,colorField:r}=K,i=c(Y?.fields?.[r??``]),a=e=>{if(n){let t=e[n],r=typeof t==`string`?t.trim():t;if(r)return String(r)}return ee(Y,e)},o=[],s=[];return j.forEach((n,c)=>{let l=n[e],u=t?n[t]:null,d=a(n),f=r?n[r]:void 0,p=i(f)??f,m=n.id||n._id||`event-${c}`;if(!l){s.push({id:m,title:d});return}let h=new Date(l);isNaN(h.getTime())||o.push({id:m,title:d,start:h,end:u?new Date(u):void 0,color:p,allDay:!u,data:n})}),{events:o,unscheduledRecords:s}},[j,K,Y]);(0,I.useCallback)(()=>{v?.(new Date)},[v]);let X=e.navigation??{mode:`drawer`},Ie=X.mode===`drawer`||X.mode===`modal`||X.mode===`split`||X.mode===`popover`,Z=b({navigation:X,objectName:J??e.objectName,onRowClick:Ie?void 0:h}),Le=(0,I.useCallback)(async(n,r,i)=>{if(!K)return;let{startDateField:a,endDateField:o}=K,s=n?.id??n?._id;if(!s||!e.objectName||!t?.update)return;let c={[a]:r.toISOString()};o&&i&&(c[o]=i.toISOString());let l=j;M(e=>e.map(e=>(e?.id??e?._id)===s?{...e,...c}:e));try{await t.update(e.objectName,s,c)}catch(e){M(l),console.error(`[ObjectCalendar] Failed to persist drag-and-drop reschedule:`,e),he.error(u(e)??(d(e)?k(`errors.unauthorized`,`You are not authorized to perform this action.`):y(e)??k(`table.saveFailed`,`Save failed`)))}},[K,e.objectName,t,j,k]),[Q,$]=(0,I.useState)(null),Re=(0,I.useCallback)(n=>{!K||!e.objectName||!t?.create||$({start:n,title:``,submitting:!1})},[K,e.objectName,t]),ze=(0,I.useCallback)((n,r)=>{!K||!e.objectName||!t?.create||$({start:n,end:r,title:``,submitting:!1})},[K,e.objectName,t]),Be=(0,I.useCallback)(async()=>{if(!Q||!K)return;let n=Q.title.trim();if(!n){$(e=>e&&{...e,error:`Title is required`});return}if(!e.objectName||!t?.create)return;$(e=>e&&{...e,submitting:!0,error:void 0});let{startDateField:r,endDateField:i,titleField:a}=K,o={[a||`name`]:n,[r]:Q.start.toISOString()};i&&(o[i]=(Q.end??Q.start).toISOString());let s=Y?.fields;if(s&&typeof s==`object`){let e=Array.isArray(s)?s.map(e=>[e.name??e.apiName,e]):Object.entries(s);for(let[t,n]of e){if(!t||t in o||!n?.required)continue;if(n.defaultValue!==void 0&&n.defaultValue!==null){o[t]=n.defaultValue;continue}let e=n.type;if(e===`select`||e===`picklist`||e===`status`){let e=(n.options||n.choices||[])[0];e!==void 0&&(o[t]=typeof e==`object`?e.value??e.id:e)}else e===`boolean`||e===`checkbox`?o[t]=!1:(e===`number`||e===`integer`||e===`decimal`||e===`currency`||e===`percent`)&&(o[t]=0)}}try{let n=await t.create(e.objectName,o),r=(n&&(n.record||n.data||n))??null;r&&(r.id!==void 0||r._id!==void 0)&&M(e=>[...e,r]),$(null)}catch(e){let t=e?.message||String(e);$(e=>e&&{...e,submitting:!1,error:t}),console.error(`[ObjectCalendar] Quick-create failed:`,e)}},[Q,K,e.objectName,t,Y]);return ae?(0,L.jsx)(`div`,{className:n,children:(0,L.jsx)(`div`,{className:`flex items-center justify-center h-96`,children:(0,L.jsx)(`div`,{className:`text-muted-foreground`,children:`Loading calendar...`})})}):le?(0,L.jsx)(`div`,{className:n,children:(0,L.jsx)(`div`,{className:`flex items-center justify-center h-96`,children:(0,L.jsxs)(`div`,{className:`text-destructive`,children:[`Error: `,le.message]})})}):K?(0,L.jsxs)(`div`,{ref:De,className:n,children:[Oe>0&&(0,L.jsx)(`div`,{className:`flex items-center justify-center text-xs text-muted-foreground`,style:{height:Oe},children:W?`Refreshing…`:`Pull to refresh`}),(0,L.jsx)(`div`,{className:`bg-background h-[calc(100vh-120px)] sm:h-[calc(100vh-160px)] md:h-[calc(100vh-200px)] min-h-[400px] sm:min-h-[600px]`,children:(0,L.jsx)(Ce,{events:Pe,currentDate:be,view:we,locale:O,onEventClick:e=>{Z.handleClick(e.data),Ie||p?.(e.data)},onDateClick:e=>{v?v(e):Re(e)},onNavigate:e=>{xe(e),w?.(e)},onViewChange:e=>{Te(e),E?.(e)},onAddClick:void 0,onEventDrop:(e,t,n)=>{D?D(e.data,t,n):Le(e.data,t,n)},onTimeRangeSelect:ze})}),(0,L.jsx)(l,{drawn:g,total:ye.total,truncated:ye.truncated}),Fe.length>0&&(0,L.jsxs)(`div`,{className:`mt-2 border-t pt-2`,"data-calendar-unscheduled":``,children:[(0,L.jsxs)(`button`,{type:`button`,className:`flex items-center gap-1 text-sm text-muted-foreground hover:text-foreground`,"aria-expanded":z,onClick:()=>Se(e=>!e),children:[(0,L.jsx)(ue,{"aria-hidden":`true`,className:F(`h-4 w-4 transition-transform`,z&&`rotate-90`)}),re(`calendar.unscheduled`,{count:Fe.length,defaultValue:`Unscheduled ({{count}})`})]}),z&&(0,L.jsx)(`ul`,{className:`mt-1 space-y-1 pl-6`,"data-calendar-unscheduled-list":``,children:Fe.map(e=>(0,L.jsx)(`li`,{className:`truncate text-sm`,children:e.title},e.id))})]}),(0,L.jsx)(de,{open:!!Q,onOpenChange:e=>{e||$(null)},children:(0,L.jsxs)(me,{className:`sm:max-w-md`,children:[(0,L.jsxs)(oe,{children:[(0,L.jsx)(ne,{children:`New event`}),(0,L.jsx)(ce,{children:Q&&(()=>{let e=Q.end&&Q.end.getTime()!==Q.start.getTime(),t=Q.start.toLocaleDateString(O,{year:`numeric`,month:`long`,day:`numeric`});if(e){let e=e=>e.toLocaleTimeString(O,{hour:`numeric`,minute:`2-digit`});return(0,L.jsxs)(L.Fragment,{children:[t,` · `,e(Q.start),` – `,e(Q.end)]})}return(0,L.jsxs)(L.Fragment,{children:[`On `,t]})})()})]}),(0,L.jsxs)(`div`,{className:`space-y-2`,children:[(0,L.jsx)(te,{htmlFor:`quick-create-title`,children:`Title`}),(0,L.jsx)(ie,{id:`quick-create-title`,autoFocus:!0,value:Q?.title??``,onChange:e=>$(t=>t&&{...t,title:e.target.value,error:void 0}),onKeyDown:e=>{e.key===`Enter`&&!Q?.submitting&&(e.preventDefault(),Be())},placeholder:`What's this event about?`,disabled:Q?.submitting}),Q?.error&&(0,L.jsx)(`p`,{className:`text-sm text-destructive`,children:Q.error})]}),(0,L.jsxs)(pe,{children:[(0,L.jsx)(P,{variant:`outline`,onClick:()=>$(null),disabled:Q?.submitting,children:`Cancel`}),(0,L.jsx)(P,{onClick:()=>void Be(),disabled:Q?.submitting||!Q?.title.trim(),children:Q?.submitting?`Creating…`:`Create`})]})]})}),Z.isOverlay&&Z.isOpen&&Z.selectedRecord&&(()=>{let n=s(e,G),r=Z.selectedRecord,i=r.id??r._id;if(!n||i==null)return null;let a=K?.titleField?String(r[K.titleField]??`Event Details`):`Event Details`;return(0,L.jsx)(_e,{open:!0,onClose:Z.close,title:a,record:r,objectName:n,recordId:i,dataSource:t,objectSchema:Y,width:Z.width,fullPageHref:ve(n,i)??void 0,onFieldSave:async(e,r)=>{t?.update&&(await t.update(n,String(i),{[e]:r}),M(t=>t.map(t=>String(t.id??t._id)===String(i)?{...t,[e]:r}:t)))},onDelete:async()=>{t?.delete&&(await t.delete(n,String(i)),M(e=>e.filter(e=>String(e.id??e._id)!==String(i))))}})})()]}):(0,L.jsx)(`div`,{className:n,children:(0,L.jsx)(`div`,{className:`flex items-center justify-center h-96`,children:(0,L.jsx)(`div`,{className:`text-muted-foreground`,children:`Calendar configuration required. Please specify startDateField and titleField.`})})})},Ae=[`onEventClick`,`onDateClick`,`onViewChange`,`onNavigate`,`onAddClick`,`onEventDrop`,`onTimeRangeSelect`];function q(e){let t={};for(let n of Ae){let r=e[n];typeof r==`function`&&(t[n]=r)}return t}var je=[`month`,`week`,`day`];function J(e){return je.includes(e)?e:void 0}function Me(e){if(typeof e==`string`){try{Intl.getCanonicalLocales(e)}catch{return}return e}}function Y(e){return typeof e==`number`&&Number.isFinite(e)&&e>0?e:void 0}function Ne(e){if(e instanceof Date)return e;if(typeof e!=`string`)return;let t=new Date(e);return Number.isNaN(t.getTime())?void 0:t}function Pe(e){return e===!0}v.register(`calendar-view`,({schema:e,className:t,onAction:n,events:r,currentDate:i,view:a,allowCreate:o,...s})=>{let c=I.useMemo(()=>!e.data||!Array.isArray(e.data)?[]:e.data.map((t,n)=>{let r=e.titleField||`title`,i=e.startDateField||`start`,a=e.endDateField||`end`,o=e.colorField||`color`,s=e.allDayField||`allDay`;return{id:t.id||t._id||n,title:t[r]||`Untitled Event`,start:new Date(t[i]),end:t[a]?new Date(t[a]):void 0,allDay:t[s],color:t[o],data:t}}),[e.data,e.titleField,e.startDateField,e.endDateField,e.colorField,e.allDayField]),l=I.useMemo(()=>Ne(i),[i]),u=J(a),d=Pe(o),f=q(s),p=Me(s.locale),m=Y(s.slotMinutes),h=typeof n==`function`?n:void 0,g=e=>{h?.({type:`event-click`,payload:e})},_=()=>{h?.({type:`create`,payload:{}})};return(0,L.jsx)(Ce,{className:t,events:c,currentDate:l,view:u,locale:p,slotMinutes:m,...f,onEventClick:f.onEventClick??g,onAddClick:f.onAddClick??(d?_:void 0)})},{namespace:`plugin-calendar`,label:`Calendar View`,inputs:[{name:`data`,type:`array`,label:`Data`,description:`Array of record objects to display as events`},{name:`titleField`,type:`string`,label:`Title Field`,defaultValue:`title`,description:`Field name to use for event title`},{name:`startDateField`,type:`string`,label:`Start Date Field`,defaultValue:`start`,description:`Field name for event start date`},{name:`endDateField`,type:`string`,label:`End Date Field`,defaultValue:`end`,description:`Field name for event end date (optional)`},{name:`allDayField`,type:`string`,label:`All Day Field`,defaultValue:`allDay`,description:`Field name for all-day flag`},{name:`colorField`,type:`string`,label:`Color Field`,defaultValue:`color`,description:`Field name for event color`},{name:`view`,type:`enum`,enum:[`month`,`week`,`day`],defaultValue:`month`,label:`View Mode`,description:`Calendar view mode (month, week, or day)`},{name:`currentDate`,type:`string`,label:`Current Date`,description:`ISO date string for initial calendar date`},{name:`allowCreate`,type:`boolean`,label:`Allow Create`,defaultValue:!1,description:`Allow creating events by clicking on dates`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{view:`month`,titleField:`title`,startDateField:`start`,endDateField:`end`,allDayField:`allDay`,colorField:`color`,allowCreate:!1,data:[{id:1,title:`Team Meeting`,start:new Date(new Date().setHours(10,0,0,0)).toISOString(),end:new Date(new Date().setHours(11,0,0,0)).toISOString(),color:`#3b82f6`,allDay:!1},{id:2,title:`Project Deadline`,start:new Date(new Date().setDate(new Date().getDate()+3)).toISOString(),color:`#ef4444`,allDay:!0},{id:3,title:`Conference`,start:new Date(new Date().setDate(new Date().getDate()+7)).toISOString(),end:new Date(new Date().setDate(new Date().getDate()+9)).toISOString(),color:`#10b981`,allDay:!0}],className:`h-[600px] border rounded-lg`}});var Fe=t({CalendarView:()=>Ce,ObjectCalendar:()=>K,ObjectCalendarRenderer:()=>ze}),X={filter:!0,sort:!0},Ie=[`onEventClick`,`onRowClick`,`onDateClick`,`onEdit`,`onDelete`,`onNavigate`,`onViewChange`,`onEventDrop`];function Z(e){let t={};for(let n of Ie){let r=e[n];typeof r==`function`&&(t[n]=r)}return t}function Le(e){if(typeof e==`string`){try{Intl.getCanonicalLocales(e)}catch{return}return e}}function Q(e){return Array.isArray(e)?e:void 0}function $(e){return typeof e==`boolean`?e:void 0}function Re(e){return e&&typeof e.find==`function`?e:void 0}var ze=p(({schema:e,className:t,...n})=>{let{dataSource:r}=a()||{},i=Z(n),o=Le(n.locale),s=Q(n.data),c=$(n.loading),l=Re(n.dataSource);return(0,L.jsx)(h,{schema:e,mapping:X,dataSource:r,testId:`object-calendar`,errorTitle:`This calendar’s data source could not be resolved`,children:e=>(0,L.jsx)(K,{schema:e,dataSource:l??r,className:t,data:s,loading:c,locale:o,...i})})});v.register(`object-calendar`,ze,{namespace:`plugin-calendar`,label:`Object Calendar`,category:`view`,inputs:[{name:`objectName`,type:`string`,label:`Object Name`,required:!0},{name:`calendar`,type:`object`,label:`Calendar Config`,description:`startDateField, endDateField, titleField, colorField`}]}),v.register(`calendar`,ze,{namespace:`view`,label:`Calendar View`,category:`view`,inputs:[{name:`objectName`,type:`string`,label:`Object Name`,required:!0},{name:`calendar`,type:`object`,label:`Calendar Config`,description:`startDateField, endDateField, titleField, colorField`}]});export{Fe as t};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import{o as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{_ as n,b as r,r as i}from"./vendor-react-CsWFRkED.js";import{An as a,B as o,Cn as s,It as c,Mn as l,Mt as u,Nn as d,Pt as f,Ur as p,_n as ee,dn as m,fn as te,hn as ne,ht as re,jn as ie,kn as ae,mn as oe,ni as h,p as g,pn as se,pt as _,ti as v,un as ce,vn as y,wn as b,yn as le}from"./framework-DFE_Mws9.js";import{A as ue,C as de,D as fe,E as pe,M as x,O as S,S as C,T as me,_ as he,a as ge,b as w,c as _e,d as ve,f as ye,g as be,h as xe,i as Se,j as Ce,k as we,l as T,m as E,n as Te,o as D,p as O,r as k,s as Ee,t as De,u as A,v as Oe,w as ke,x as Ae,y as j}from"./vendor-charts-BBlPrtHS.js";import{d as je,f as Me,m as Ne}from"./i18n-locales-BBA090ve.js";import{Cr as Pe,Jc as Fe,Lo as Ie,Sn as Le,Sr as Re,Xr as ze,gn as M,it as Be,ot as Ve,sc as He,st as Ue,vn as We,vr as Ge,xn as Ke,yn as qe,yr as Je}from"./ui-components-CMHDBJEm.js";var N=e(r(),1),P=i(),F=(...e)=>e.filter(Boolean).join(` `),I={light:``,dark:`.dark`},L=N.createContext(null),R=280;function z(){let e=N.useContext(L);if(!e)throw Error(`useChart must be used within a <ChartContainer />`);return e}function B({id:e,className:t,children:n,config:r,disableSettleRemount:i,style:a,...o}){let s=N.useId(),c=`chart-${e||s.replace(/:/g,``)}`,l=N.useRef(null),[u,d]=N.useState(0);N.useEffect(()=>{if(i)return;let e=l.current;if(e==null||typeof ResizeObserver>`u`)return;let t=!1,n,r=new ResizeObserver(e=>{if(t)return;let i=e[0]?.contentRect;i==null||i.width<=0||i.height<=0||(n!=null&&clearTimeout(n),n=setTimeout(()=>{t=!0,r.disconnect(),d(e=>e+1)},80))});return r.observe(e),()=>{t=!0,n!=null&&clearTimeout(n),r.disconnect()}},[i]);let f=a?.height!=null||a?.minHeight!=null,p=a?.width!=null||a?.minWidth!=null,ee={...f?{}:{minHeight:R},...p?{}:{minWidth:0},...a};return(0,P.jsx)(L.Provider,{value:{config:r},children:(0,P.jsxs)(`div`,{ref:l,"data-slot":`chart`,"data-chart":c,className:F(`block w-full h-[350px] text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground`,t),style:ee,...o,children:[(0,P.jsx)(V,{id:c,config:r}),(0,P.jsx)(x,{width:`100%`,height:`100%`,...f?{}:{minHeight:R},children:n},u)]})})}var V=({id:e,config:t})=>{let n=Object.entries(t).filter(([,e])=>e.theme||e.color);return n.length?(0,P.jsx)(`style`,{dangerouslySetInnerHTML:{__html:Object.entries(I).map(([t,r])=>`
|
|
2
|
+
${r} [data-chart=${e}] {
|
|
3
|
+
${n.map(([e,n])=>{let r=n.theme?.[t]||n.color;return r?` --color-${e}: ${r};`:null}).join(`
|
|
4
|
+
`)}
|
|
5
|
+
}
|
|
6
|
+
`).join(`
|
|
7
|
+
`)}}):null},H=ue;function U({active:e,payload:t,className:n,indicator:r=`dot`,hideLabel:i=!1,hideIndicator:a=!1,label:o,labelFormatter:s,labelClassName:c,formatter:l,color:u,nameKey:d,labelKey:f}){let{config:p}=z(),ee=N.useMemo(()=>{if(i||!t?.length)return null;let[e]=t,n=`${f||e?.dataKey||e?.name||`value`}`,r=W(p,e,n),a=!f&&typeof o==`string`?p[o]?.label||o:r?.label;return s?(0,P.jsx)(`div`,{className:F(`font-medium`,c),children:s(a,t)}):a?(0,P.jsx)(`div`,{className:F(`font-medium`,c),children:a}):null},[o,s,t,i,c,p,f]);if(!e||!t?.length)return null;let m=t.length===1&&r!==`dot`;return(0,P.jsxs)(`div`,{className:F(`border-border/50 bg-background grid min-w-[8rem] items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl`,n),children:[m?null:ee,(0,P.jsx)(`div`,{className:`grid gap-1.5`,children:t.filter(e=>e.type!==`none`).map((e,t)=>{let n=`${d||e.name||e.dataKey||`value`}`,i=W(p,e,n),o=u||e.payload.fill||e.color;return(0,P.jsx)(`div`,{className:F(`[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5`,r===`dot`?`items-center`:``),children:l&&e?.value!==void 0&&e.name?l(e.value,e.name,e,t,e.payload):(0,P.jsxs)(P.Fragment,{children:[i?.icon?(0,P.jsx)(i.icon,{}):!a&&(0,P.jsx)(`div`,{className:F(`shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)`,r===`dot`?`h-2.5 w-2.5`:``,r===`line`?`w-1`:``,r===`dashed`?`w-0 border-[1.5px] border-dashed bg-transparent`:``,m&&r===`dashed`?`my-0.5`:``),style:{"--color-bg":o,"--color-border":o}}),(0,P.jsxs)(`div`,{className:F(`flex flex-1 justify-between leading-none`,m?`items-end`:`items-center`),children:[(0,P.jsxs)(`div`,{className:`grid gap-1.5`,children:[m?ee:null,(0,P.jsx)(`span`,{className:`text-muted-foreground`,children:i?.label||e.name})]}),e.value&&(0,P.jsx)(`span`,{className:`text-foreground font-mono font-medium tabular-nums`,children:e.value.toLocaleString()})]})]})},e.dataKey)})})]})}var Ye=Ce;function Xe({className:e,hideIcon:t=!1,payload:n,verticalAlign:r=`bottom`,nameKey:i}){let{config:a}=z();return n?.length?(0,P.jsx)(`div`,{className:F(`flex items-center justify-center gap-4`,r===`top`?`pb-3`:`pt-3`,e),children:n.filter(e=>e.type!==`none`).map(e=>{let n=`${i||e.dataKey||`value`}`,r=W(a,e,n);return(0,P.jsxs)(`div`,{className:F(`[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3`),children:[r?.icon&&!t?(0,P.jsx)(r.icon,{}):(0,P.jsx)(`div`,{className:`h-2 w-2 shrink-0 rounded-[2px]`,style:{backgroundColor:e.color}}),r?.label??e.value]},e.value)})}):null}function W(e,t,n){if(typeof t!=`object`||!t)return;let r=`payload`in t&&typeof t.payload==`object`&&t.payload!==null?t.payload:void 0,i=n;return r&&n in r&&typeof r[n]==`string`?i=r[n]:n in t&&typeof t[n]==`string`&&(i=t[n]),i in e?e[i]:e[n]}function G(e){return e?.[0]?.dataKey||`value`}function Ze(e,t,n){if(!e)return null;let r=e.payload??e,i=r?.[t];if(i==null)return null;let a=G(n);return{category:String(i),series:a,value:typeof r?.[a]==`number`?r[a]:void 0}}function Qe(e,t){if(!e)return null;let n=e.name??e.payload?.name??e.root?.name;if(n==null)return null;let r=e.value??e.size??e.payload?.size;return{category:String(n),series:G(t),value:typeof r==`number`?r:void 0}}function $e(e,t){if(!e)return null;let n=e.payload??e,r=n?.name;return r==null||n?.depth===0?null:{category:String(r),series:G(t),value:typeof n?.value==`number`?n.value:void 0}}var et=new Set([`bar`,`column`,`horizontal-bar`,`line`,`area`,`pie`,`donut`,`funnel`,`radar`,`scatter`,`treemap`,`sankey`,`combo`]),tt=new Set([`gauge`,`solid-gauge`,`metric`,`kpi`,`bullet`]),nt=new Set([`table`,`pivot`]),rt=new Set([...et,...tt,...nt]),K=e=>!!e&&typeof e==`object`&&!Array.isArray(e),q=e=>typeof e==`string`&&e?e:void 0,J=e=>typeof e==`number`&&Number.isFinite(e)?e:void 0;function Y(e){let t=q(e);if(t)return t;if(K(e))return Object.values(e).find(e=>typeof e==`string`&&e)}function it(e){if(!K(e))return;let t={},n=q(e.field);n&&(t.field=n);let r=q(e.format);r&&(t.format=r);let i=J(e.min);i!==void 0&&(t.min=i);let a=J(e.max);a!==void 0&&(t.max=a);let o=J(e.stepSize);o!==void 0&&o>0&&(t.stepSize=o),typeof e.showGridLines==`boolean`&&(t.showGridLines=e.showGridLines),typeof e.logarithmic==`boolean`&&(t.logarithmic=e.logarithmic);let s=q(e.position);(s===`left`||s===`right`||s===`top`||s===`bottom`)&&(t.position=s);let c=Y(e.title);return c&&(t.title=c),t}function at(e){if(!K(e)){let t=q(e);return t?{dataKey:t}:void 0}let t=q(e.dataKey)??q(e.name);if(!t)return;let n={dataKey:t},r=Y(e.label);r&&(n.label=r);let i=q(e.chartType)??q(e.type);(i===`bar`||i===`line`||i===`area`)&&(n.chartType=i);let a=q(e.variant);(a===`comparison`||a===`current`||a===`primary`)&&(n.variant=a);let o=J(e.opacity);o!==void 0&&(n.opacity=o);let s=q(e.dashArray);s&&(n.dashArray=s);let c=q(e.stack);c&&(n.stack=c);let l=q(e.yAxis);(l===`left`||l===`right`)&&(n.yAxis=l);let u=q(e.color);return u&&(n.color=u),n}function ot(e){if(!K(e))return{};let t={},n=q(e.type),r=q(e.chartType)??q(e.specType)??(n&&rt.has(n)?n:void 0);r&&et.has(r)&&(t.chartType=r);let i=e.xAxis,a=it(i);a&&(a.format||a.title||a.showGridLines!==void 0)&&(t.xAxis=a);let o=q(e.xAxisKey)??a?.field??q(i);o&&(t.xAxisKey=o);let s=(Array.isArray(e.yAxis)?e.yAxis:e.yAxis===void 0?[]:[e.yAxis]).map(e=>it(e)??(q(e)?{field:q(e)}:void 0)).filter(e=>!!e);s.length&&(t.yAxes=s);let c=(Array.isArray(e.series)?e.series:Array.isArray(e.categories)?e.categories:void 0)?.map(at).filter(e=>!!e);if(!c?.length){let e=s.filter(e=>e.field).map((e,t)=>({dataKey:e.field,...e.title?{label:e.title}:{},...t>0||e.position===`right`?{yAxis:`right`}:{}}));e.length&&(c=e)}c?.length&&(t.series=c),typeof e.showLegend==`boolean`&&(t.showLegend=e.showLegend),typeof e.showDataLabels==`boolean`&&(t.showDataLabels=e.showDataLabels);let l=Y(e.title);l&&(t.title=l);let u=Y(e.subtitle);u&&(t.subtitle=u);let d=Y(e.description);d&&(t.description=d);let f=J(e.height);return f!==void 0&&f>0&&(t.height=f),Array.isArray(e.annotations)&&e.annotations.length&&(t.annotations=e.annotations.filter(K)),K(e.interaction)&&(t.interaction=e.interaction),t}function st(e){if(e===`bar`||e===`column`)return`bar`;if(e===`line`)return`line`;if(e===`area`)return`area`}function ct(e,t){if(e===`combo`)return`combo`;let n=st(e);if(!n||!t||t.length<2)return e;let r=t.map(e=>e.chartType??n);return new Set(r).size>1?`combo`:e}function lt(e){if(!e)return;let t=e.includes(`%`),n=/^([$£€¥₹])/.exec(e),r=e.includes(`,`),i=/\.(0+)/.exec(e)?.[1].length??0,a={$:`USD`,"£":`GBP`,"€":`EUR`,"¥":`CNY`,"₹":`INR`};if(!t&&!n&&!r&&i===0)return;let o={minimumFractionDigits:i,maximumFractionDigits:i,useGrouping:r};return t?o.style=`percent`:n&&(o.style=`currency`,o.currency=a[n[1]]??`USD`),e=>{let t=typeof e==`number`?e:Number(e);if(!Number.isFinite(t))return e==null?``:String(e);try{return new Intl.NumberFormat(void 0,o).format(t)}catch{return String(t)}}}var ut=200;function dt(e,t){let n=e?.stepSize;if(!n||n<=0)return;let r=t.filter(e=>Number.isFinite(e)),i=r.length?Math.min(...r):void 0,a=r.length?Math.max(...r):void 0,o=e.min??Math.min(0,i??0),s=e.max??a;if(s===void 0||!Number.isFinite(o)||!Number.isFinite(s)||s<o)return;let c=Math.floor(o/n)*n,l=e.max===void 0?Math.ceil(s/n)*n:e.max,u=Math.floor((l-c)/n+1e-9)+1;if(u<1||u>ut)return;let d=[];for(let e=0;e<u;e++)d.push(Number((c+e*n).toPrecision(12)));return e.max!==void 0&&d[d.length-1]<e.max&&d.push(e.max),d}function ft(e){if(!e)return;let{min:t,max:n}=e;if(t!==void 0||n!==void 0)return[t??`auto`,n??`auto`]}var pt=t({default:()=>Q}),mt=`hsl(var(--primary))`,ht={slate:`#64748b`,gray:`#6b7280`,zinc:`#71717a`,neutral:`#737373`,stone:`#78716c`,red:`#ef4444`,orange:`#f97316`,amber:`#f59e0b`,yellow:`#eab308`,lime:`#84cc16`,green:`#22c55e`,emerald:`#10b981`,teal:`#14b8a6`,cyan:`#06b6d4`,sky:`#0ea5e9`,blue:`#3b82f6`,indigo:`#6366f1`,violet:`#8b5cf6`,purple:`#a855f7`,fuchsia:`#d946ef`,pink:`#ec4899`,rose:`#f43f5e`},X=e=>ht[e]||e,gt=(e,t)=>e?.variant===`comparison`?{strokeOpacity:typeof e.opacity==`number`?e.opacity:t===`line`||t===`scatter`?.5:.6,fillOpacity:typeof e.opacity==`number`?e.opacity:t===`bar`?.4:t===`area`?.2:.5,strokeDasharray:e.dashArray??(t===`line`||t===`area`?`4 4`:void 0)}:null,_t=(e,t)=>{if(typeof e==`string`||typeof e==`number`){let t=String(e);if(t!==``)return t}if(t.length===1){let e=t[0]?.dataKey;if(e!=null&&String(e)!==``)return String(e)}},vt=e=>{if(e&&typeof e==`object`&&`nativeEvent`in e)return e.nativeEvent},yt=e=>{for(let t=e.length-1;t>=0;--t){let n=vt(e[t]);if(n!==void 0)return n}},bt=(e,t)=>{if(e==null)return;let n=t.find(t=>String(t.dataKey)===e);return typeof n?.label==`string`?n.label:void 0},Z=new Set([`bar`,`horizontal-bar`,`line`,`area`,`pie`,`donut`,`radar`,`funnel`,`combo`]),xt=5,St=12;function Ct(e){let{x:t,y:n,width:r,height:i,name:a,fill:o}=e;return r<=0||i<=0?null:(0,P.jsxs)(`g`,{children:[(0,P.jsx)(`rect`,{x:t,y:n,width:r,height:i,fill:o,stroke:`hsl(var(--background))`,strokeWidth:2}),r>48&&i>18?(0,P.jsx)(`text`,{x:t+6,y:n+18,fill:`#fff`,fontSize:12,className:`pointer-events-none`,children:a}):null]})}function wt({title:e,subtitle:t,children:n}){return!e&&!t?(0,P.jsx)(P.Fragment,{children:n}):(0,P.jsxs)(`div`,{className:`flex h-full w-full flex-col`,children:[(0,P.jsxs)(`div`,{className:`mb-2 shrink-0`,children:[e?(0,P.jsx)(`div`,{className:`text-sm font-medium leading-tight text-foreground`,children:e}):null,t?(0,P.jsx)(`div`,{className:`text-xs leading-tight text-muted-foreground`,children:t}):null]}),(0,P.jsx)(`div`,{className:`min-h-0 flex-1`,children:n})]})}function Tt({note:e,children:t}){return e?(0,P.jsxs)(`div`,{className:`flex h-full w-full flex-col`,children:[(0,P.jsx)(`div`,{className:`min-h-0 flex-1`,children:t}),(0,P.jsx)(`div`,{className:`mt-1 shrink-0`,children:e})]}):(0,P.jsx)(P.Fragment,{children:t})}function Et(e,t){let n=0;for(let r of e){let e=Number(r?.[t]);Number.isFinite(e)&&e>0&&(n+=1)}return{sizable:n,total:e.length}}function Dt({dataKey:e,className:t}){return(0,P.jsxs)(Rt,{code:`no-positive-magnitude`,className:t,children:[`This chart has nothing to size: no row's`,` `,(0,P.jsx)(`code`,{className:`font-mono`,children:e}),` is above zero.`]})}function Ot(e,t,n){let r=t-e;return r<=0?null:(0,P.jsxs)(`p`,{role:`note`,"data-chart-note":`unsized-rows`,className:`px-1 text-xs text-muted-foreground`,children:[r,` of `,t,` rows `,r===1?`has`:`have`,` no`,` `,(0,P.jsx)(`code`,{className:`font-mono`,children:n}),` above zero — this chart sizes by value, so`,` `,r===1?`that row is`:`those rows are`,` not drawn to scale.`]})}function kt(e){return e!=null&&Number.isFinite(Number(e))}function At(e,t,n){let r=0;for(let i of e){let e=i;kt(e?.[t])&&kt(e?.[n])&&(r+=1)}return{plottable:r,total:e.length}}function jt({xKey:e,yKey:t,className:n}){return(0,P.jsxs)(Rt,{code:`no-plottable-points`,className:n,children:[`This chart has nothing to place: no row carries a number for both`,` `,(0,P.jsx)(`code`,{className:`font-mono`,children:e}),` and`,` `,(0,P.jsx)(`code`,{className:`font-mono`,children:t}),`.`]})}function Mt({seriesKeys:e,className:t}){let n=Ne();return(0,P.jsxs)(Rt,{code:`scatter-multi-series`,className:t,children:[n(`chart.scatterOneMeasure`,`A scatter plots one measure. Keep exactly one series:`),` `,e.map((e,t)=>(0,P.jsxs)(N.Fragment,{children:[t>0?`, `:``,(0,P.jsx)(`code`,{className:`font-mono`,children:e})]},`${t}-${e}`))]})}function Nt(e,t,n,r){let i=t-e;return i<=0?null:(0,P.jsxs)(`p`,{role:`note`,"data-chart-note":`unplotted-points`,className:`px-1 text-xs text-muted-foreground`,children:[i,` of `,t,` rows `,i===1?`has`:`have`,` no number for both`,` `,(0,P.jsx)(`code`,{className:`font-mono`,children:n}),` and`,` `,(0,P.jsx)(`code`,{className:`font-mono`,children:r}),` — this chart plots by position, so`,` `,i===1?`that point is`:`those points are`,` not drawn.`]})}function Pt({chartType:e=`bar`,data:t=[],config:n={},xAxisKey:r=`name`,series:i=[],className:a=``,colors:o,categoryColors:s,categoryOrder:c,onChartClick:l,isAnimationActive:u,xAxis:d,yAxes:f,showLegend:p,showDataLabels:ee,title:m,subtitle:te,description:ne,height:re,annotations:ie,interaction:ae}){let oe=e===`column`?`bar`:e,h=ct(oe,i),g=st(oe),_=Array.isArray(t)?t:[],v=u===!1?{isAnimationActive:!1}:{},y={...u===!1?{disableSettleRemount:!0}:{},...re?{style:{height:re}}:{},...ne?{role:`img`,"aria-label":ne}:{}},[b,le]=N.useState(!1),x=N.useRef(null),Ce=N.useCallback(e=>(...t)=>{let n=yt(t);n!==void 0&&(x.current={gesture:n,dataKey:String(e.dataKey)})},[]),je=l?e=>({onClick:Ce(e)}):()=>({}),Me=N.useCallback((e,t,n)=>{if(!l||!e)return;let r=e.activeTooltipIndex??e.activeIndex,a=r==null?NaN:Number(r),o=Number.isInteger(a)&&a>=0?_[a]:void 0,s=x.current;x.current=null;let c=vt(t),u=s!=null&&c!==void 0&&s.gesture===c;if(n&&!u)return;let d=u?s.dataKey:_t(e.activeDataKey,i),f=d!=null&&o?o[d]:void 0;l({category:e.activeLabel==null?void 0:String(e.activeLabel),categoryId:se(o),series:d,seriesLabel:bt(d,i),value:typeof f==`number`?f:void 0})},[l,_,i]),Ne=N.useCallback((e,t)=>{Me(e,t,!1)},[Me]),Pe=N.useCallback((e,t)=>{Me(e,t,!0)},[Me]),Fe=N.useCallback(e=>{if(!l||!e)return;let t=e.payload?.[r],n=i[0]?.dataKey||`value`;l({category:t==null?void 0:String(t),categoryId:se(e.payload),series:n,seriesLabel:bt(n,i),value:typeof e.payload?.[n]==`number`?e.payload[n]:void 0})},[l,r,i]),Ie=l?{onClick:Ne,style:{cursor:`pointer`}}:{},Le=l?{onClick:Pe}:{},Re=l?e=>({...je(e),cursor:`pointer`}):()=>({}),ze=l?{onClick:Fe,style:{cursor:`pointer`}}:{},M=N.useCallback((e,t,n)=>s&&s[e==null?``:String(e)]||n[t%n.length],[s]),Be=N.useCallback(e=>{if(!l)return;let t=Ze(e,r,i);t&&l(t)},[l,r,i]),Ve=N.useCallback(e=>{if(!l)return;let t=Qe(e,i);t&&l(t)},[l,i]),He=N.useCallback(e=>{if(!l)return;let t=$e(e,i);t&&l(t)},[l,i]),Ue=l?{onClick:Be,cursor:`pointer`}:{},We=l?{onClick:Ve,style:{cursor:`pointer`}}:{},Ge=l?{onClick:He,style:{cursor:`pointer`}}:{};N.useEffect(()=>{let e=()=>le(window.innerWidth<640);return e(),window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[]);let Ke={bar:A,"horizontal-bar":A,line:ve,area:Se,pie:T,donut:T,radar:D,scatter:ge,funnel:De,combo:k,treemap:A,sankey:A}[h]||A,qe=N.useCallback(e=>{if(e==null||e===``)return``;let t=n?.[String(e)]?.label;if(t!=null)return String(t);let i=typeof e==`string`?e:String(e);if(/^\d{4}-\d{2}-\d{2}/.test(i)){let e=new Date(i);if(!Number.isNaN(e.getTime())){let t=(_.length>1?Math.abs(new Date(String(_[_.length-1][r]??``)).getTime()-new Date(String(_[0][r]??``)).getTime()):0)/864e5;try{return t<=62?e.toLocaleDateString(void 0,{month:`short`,day:`numeric`}):e.toLocaleDateString(void 0,{month:`short`,year:`numeric`})}catch{return e.toISOString().slice(0,10)}}}return b&&i.length>8?i.slice(0,8)+`…`:i},[_,r,b,n]),Je=N.useMemo(()=>_.some(e=>String(e[r]||``).length>5),[_,r]),F=_.length>0&&_.length<=xt,I=(F||!b)&&Je,L=()=>Array.isArray(o)&&o.length>0?o:[`hsl(var(--chart-1))`,`hsl(var(--chart-2))`,`hsl(var(--chart-3))`,`hsl(var(--chart-4))`,`hsl(var(--chart-5))`],R=N.useCallback(e=>{if(e==null||e===``)return``;let t=typeof e==`number`?e:Number(e);if(!Number.isFinite(t))return String(e);try{return new Intl.NumberFormat(void 0,{notation:`compact`,maximumFractionDigits:1}).format(t)}catch{return String(t)}},[]),z=f?.[0],V=f&&f.length>1?f[1]:z?.position===`right`?z:void 0,W=!!f&&f.length>1,G=N.useMemo(()=>lt(d?.format)??qe,[d?.format,qe]),rt=N.useMemo(()=>!F||!I?G:e=>{let t=String(G(e)??``);return t.length>St?`${t.slice(0,11)}…`:t},[F,I,G]),K=N.useMemo(()=>lt(z?.format)??R,[z?.format,R]),q=N.useMemo(()=>lt(V?.format)??R,[V?.format,R]),J=N.useCallback(e=>{let t=i.filter(t=>W?(t.yAxis===`right`?`right`:`left`)===e:e===`left`).map(e=>e.dataKey),n=[];for(let e of _)for(let r of t){let t=Number(e?.[r]);Number.isFinite(t)&&n.push(t)}return n},[_,i,W]),Y=N.useCallback((e,t=`left`)=>{if(!e)return{};let n=ft(e),r=dt(e,J(t));return{...r?{ticks:r}:{},...n?{domain:n}:{},...n?{allowDataOverflow:!0}:{},...e.logarithmic?{scale:`log`,domain:n??[1,`auto`]}:{},...e.title?{label:{value:e.title,angle:-90,position:`insideLeft`}}:{}}},[J]),it=z?.showGridLines!==!1,at={vertical:d?.showGridLines===!0,horizontal:it},ot=p!==!1,ut=N.useMemo(()=>{if(!Array.isArray(ie)||ie.length===0)return null;let e={solid:void 0,dashed:`4 4`,dotted:`1 4`};return ie.map((t,n)=>{let r=t?.axis===`x`,i=X(String(t?.color||`hsl(var(--muted-foreground))`)),a=e[String(t?.style??`dashed`)],o=typeof t?.label==`string`?t.label:void 0,s=o?{label:{value:o,position:`insideTopRight`,fill:i,fontSize:11}}:{};if(t?.type===`region`){let e=r?{x1:t.value,x2:t.endValue}:{y1:t.value,y2:t.endValue};return(0,P.jsx)(w,{...e,...W&&!r?{yAxisId:`left`}:{},fill:i,fillOpacity:.12,stroke:i,strokeOpacity:.35,...s},`ann-${n}`)}return(0,P.jsx)(Ae,{...r?{x:t?.value}:{y:t?.value},...W&&!r?{yAxisId:`left`}:{},stroke:i,strokeDasharray:a,...s},`ann-${n}`)})},[ie,W]),pt=ae?.tooltips!==!1,ht=ae?.brush===!0?(0,P.jsx)(C,{dataKey:r,height:24,travellerWidth:8,stroke:`hsl(var(--muted-foreground))`}):null,Z=e=>ee?(0,P.jsx)(S,{position:`top`,className:`fill-foreground`,fontSize:11,...e?{formatter:e}:{}}):null,kt=N.useMemo(()=>({tickLine:!1,tickMargin:10,axisLine:!1,...F?{interval:0}:{interval:`preserveStartEnd`,minTickGap:b?32:48},tickFormatter:rt,...d?.title?{label:{value:d.title,position:`insideBottom`,offset:-4}}:{},...I&&{angle:-35,textAnchor:`end`,height:60}}),[b,F,I,rt,d?.title]);if(h&&tt.has(h)){let e=i[0]?.dataKey||`value`,t=_[0]?.[e],r=typeof t==`number`?t:Number(t),o=i[0]?.label??n?.[e]?.label??e;return(0,P.jsx)(`div`,{className:a,"data-testid":`advanced-chart-single-value`,children:(0,P.jsxs)(`div`,{className:`flex flex-col gap-1 py-4`,children:[(0,P.jsx)(`span`,{className:`text-3xl font-semibold tabular-nums`,children:Number.isFinite(r)?new Intl.NumberFormat().format(r):String(t??`—`)}),(0,P.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:String(o)})]})})}if(h&&nt.has(h))return(0,P.jsxs)(`div`,{className:`rounded-md border border-dashed bg-muted/20 px-3 py-2 text-xs text-muted-foreground ${a??``}`,"data-testid":`advanced-chart-tabular-notice`,role:`note`,children:[`Chart type “`,h,`” is tabular — render it with the data-table / pivot components; a chart block draws series charts.`]});if(h&&!et.has(h))return(0,P.jsxs)(`div`,{className:`rounded-md border border-dashed bg-muted/20 px-3 py-2 text-xs text-muted-foreground ${a??``}`,"data-testid":`advanced-chart-unknown-type`,role:`note`,children:[`Chart type “`,h,`” is not a spec chart type — nothing was drawn.`]});if(h===`pie`||h===`donut`){let e=h===`donut`?`52%`:0,t=L(),o=i[0]?.dataKey||`value`,s=Et(_,o);if(s.total>0&&s.sizable===0)return(0,P.jsx)(Dt,{dataKey:o,className:a});let c={...n};_.forEach((e,n)=>{let i=e?.[r];if(i==null||i===``)return;let a=String(i);c[a]||(c[a]={label:a,color:M(i,n,t)})});let l=(0,P.jsx)(B,{config:c,className:a,...y,children:(0,P.jsxs)(T,{children:[(0,P.jsx)(H,{cursor:!1,content:(0,P.jsx)(U,{hideLabel:!0})}),(0,P.jsx)(ke,{data:_,dataKey:o,nameKey:r||`name`,innerRadius:e,strokeWidth:5,paddingAngle:2,outerRadius:`85%`,...v,...ze,children:_.map((e,n)=>{let i=M(e?.[r],n,t);return(0,P.jsx)(we,{fill:X(i)},`cell-${n}`)})}),ot?(0,P.jsx)(Ye,{verticalAlign:`bottom`,wrapperStyle:{fontSize:b?`11px`:`12px`,paddingTop:`8px`},content:(0,P.jsx)(Xe,{nameKey:r,className:`flex-wrap`})}):null]})});return(0,P.jsx)(Tt,{note:Ot(s.sizable,s.total,o),children:l})}if(h===`funnel`){let e=i[0]?.dataKey||`value`,t=L(),o=Et(_,e);if(o.total>0&&o.sizable===0)return(0,P.jsx)(Dt,{dataKey:e,className:a});let s=l?t=>{t&&l({category:t?.payload?.[r]??t?.[r],categoryId:se(t?.payload)??se(t),value:t?.payload?.[e]??t?.[e]})}:void 0,u=s?{onClick:s,style:{cursor:`pointer`}}:{},d=ce(c),f=d?[..._].sort((e,t)=>(d.get(String(e?.[r]??``))??2**53-1)-(d.get(String(t?.[r]??``))??2**53-1)):[..._].sort((t,n)=>{let r=Number(t?.[e]??0);return Number(n?.[e]??0)-r}),p=(0,P.jsx)(B,{config:n,className:a,...y,children:(0,P.jsxs)(De,{children:[(0,P.jsx)(H,{content:(0,P.jsx)(U,{})}),(0,P.jsxs)(Te,{dataKey:e,data:f,nameKey:r,...v,...u,children:[(0,P.jsx)(S,{position:`right`,fill:`hsl(var(--foreground))`,stroke:`none`,dataKey:r}),f.map((e,n)=>(0,P.jsx)(we,{fill:X(t[n%t.length])},`funnel-cell-${n}`))]})]})});return(0,P.jsx)(Tt,{note:Ot(o.sizable,o.total,e),children:p})}if(h===`treemap`){let e=i[0]?.dataKey||`value`,t=L(),o=Et(_,e);if(o.total>0&&o.sizable===0)return(0,P.jsx)(Dt,{dataKey:e,className:a});let s=_.map((n,i)=>({name:String(n?.[r]??``),size:Number(n?.[e])||0,fill:X(t[i%t.length])})),c=(0,P.jsx)(B,{config:n,className:a,...y,children:(0,P.jsx)(_e,{data:s,dataKey:`size`,nameKey:`name`,...v,content:(0,P.jsx)(Ct,{}),...We,children:(0,P.jsx)(ue,{})})});return(0,P.jsx)(Tt,{note:Ot(o.sizable,o.total,e),children:c})}if(h===`sankey`){let e=i[0]?.dataKey||`value`,t=i[0]?.label||e,o=_.filter(t=>(Number(t?.[e])||0)>0),s=[{name:t},...o.map(e=>({name:String(e?.[r]??``)}))],c=o.map((t,n)=>({source:0,target:n+1,value:Number(t?.[e])||0}));if(c.length===0)return _.length===0?(0,P.jsx)(`div`,{className:a}):(0,P.jsxs)(Rt,{code:`no-positive-flow`,className:a,children:[`This chart has no flow to draw: no row's`,` `,(0,P.jsx)(`code`,{className:`font-mono`,children:e}),` is above zero.`]});let l=_.length-o.length;return(0,P.jsx)(Tt,{note:l>0?(0,P.jsxs)(`p`,{role:`note`,"data-chart-note":`omitted-rows`,className:`px-1 text-xs text-muted-foreground`,children:[`Showing `,o.length,` of `,_.length,` rows — `,l,` `,l===1?`row has`:`rows have`,` no`,` `,(0,P.jsx)(`code`,{className:`font-mono`,children:e}),` above zero, which a flow cannot draw.`]}):null,children:(0,P.jsx)(B,{config:n,className:a,...y,children:(0,P.jsx)(Ee,{data:{nodes:s,links:c},nodePadding:24,link:{stroke:`hsl(var(--muted-foreground))`,strokeOpacity:.25},node:{fill:`hsl(var(--chart-1))`},...Ge,children:(0,P.jsx)(ue,{})})})})}if(h===`radar`)return(0,P.jsx)(B,{config:n,className:a,...y,children:(0,P.jsxs)(D,{data:_,children:[(0,P.jsx)(fe,{}),(0,P.jsx)(me,{dataKey:r}),(0,P.jsx)(pe,{}),(0,P.jsx)(H,{content:(0,P.jsx)(U,{})}),(0,P.jsx)(Ye,{content:(0,P.jsx)(Xe,{}),...b&&{verticalAlign:`bottom`,wrapperStyle:{fontSize:`11px`,paddingTop:`8px`}}}),i.map(e=>{let t=X(n[e.dataKey]?.color||mt);return(0,P.jsx)(de,{dataKey:e.dataKey,stroke:t,fill:t,fillOpacity:.6,...v},e.dataKey)})]})});if(h===`scatter`){if(i.length>1)return(0,P.jsx)(Mt,{seriesKeys:i.map(e=>String(e.dataKey)),className:a});let e=i[0]?.dataKey||`value`,t=At(_,r,e);return t.total>0&&t.plottable===0?(0,P.jsx)(jt,{xKey:r,yKey:e,className:a}):(0,P.jsx)(Tt,{note:Nt(t.plottable,t.total,r,e),children:(0,P.jsx)(B,{config:n,className:a,...y,children:(0,P.jsxs)(ge,{children:[(0,P.jsx)(j,{vertical:!1}),(0,P.jsx)(E,{type:`number`,dataKey:r,name:String(n[r]?.label||r),tickLine:!1,axisLine:!1,minTickGap:b?32:48}),(0,P.jsx)(O,{type:`number`,dataKey:e,name:String(n[i[0]?.dataKey]?.label||i[0]?.dataKey),tickLine:!1,axisLine:!1,tickFormatter:R,width:48}),(0,P.jsx)(ye,{type:`number`,range:[60,400]}),(0,P.jsx)(H,{content:(0,P.jsx)(U,{})}),(0,P.jsx)(Ye,{content:(0,P.jsx)(Xe,{nameKey:e}),...b&&{verticalAlign:`bottom`,wrapperStyle:{fontSize:`11px`,paddingTop:`8px`}}}),i.map((e,t)=>{let r=L(),i=X(n[e.dataKey]?.color||r[t%r.length]),a=gt(e,`scatter`);return(0,P.jsx)(xe,{name:n[e.dataKey]?.label||e.dataKey,data:_,fill:i,fillOpacity:a?.fillOpacity,...v,...Ue},e.dataKey)})]})})})}if(h===`combo`)return(0,P.jsx)(wt,{title:m,subtitle:te,children:(0,P.jsx)(B,{config:n,className:a,...y,children:(0,P.jsxs)(k,{data:_,...Le,children:[(0,P.jsx)(j,{...at}),(0,P.jsx)(E,{dataKey:r,...kt}),(0,P.jsx)(O,{yAxisId:`left`,tickLine:!1,axisLine:!1,tickFormatter:K,width:48,...Y(z)}),(0,P.jsx)(O,{yAxisId:`right`,orientation:`right`,tickLine:!1,axisLine:!1,tickFormatter:q,width:48,...Y(V,`right`)}),pt?(0,P.jsx)(H,{content:(0,P.jsx)(U,{})}):null,ot?(0,P.jsx)(Ye,{content:(0,P.jsx)(Xe,{}),...b&&{verticalAlign:`bottom`,wrapperStyle:{fontSize:`11px`,paddingTop:`8px`}}}):null,ut,ht,i.map((e,t)=>{let r=X(n[e.dataKey]?.color||mt),i=e.chartType||g||(t===0?`bar`:`line`),a=e.yAxis===`right`||e.yAxis===`left`?e.yAxis:g||i===`bar`?`left`:`right`,o=gt(e,i),s=e.stack?{stackId:String(e.stack)}:{},c=lt((a===`right`?V:z)?.format);return i===`line`?(0,P.jsx)(Oe,{yAxisId:a,type:`monotone`,dataKey:e.dataKey,stroke:r,strokeWidth:2,dot:!1,strokeOpacity:o?.strokeOpacity,strokeDasharray:o?.strokeDasharray,...v,...Re(e),children:Z(c)},e.dataKey):i===`area`?(0,P.jsx)(he,{yAxisId:a,type:`monotone`,dataKey:e.dataKey,fill:r,stroke:r,fillOpacity:o?.fillOpacity??.4,strokeOpacity:o?.strokeOpacity,strokeDasharray:o?.strokeDasharray,...s,...v,...Re(e),children:Z(c)},e.dataKey):(0,P.jsx)(be,{yAxisId:a,dataKey:e.dataKey,fill:r,radius:4,fillOpacity:o?.fillOpacity,...s,...v,...Re(e),children:Z(c)},e.dataKey)})]})})});let Pt=h===`horizontal-bar`,Ft=L(),It=s?Object.values(s).map(e=>X(String(e))):[],Lt=Array.from(new Set([...Ft,...It,...i.map((e,t)=>X(n[e.dataKey]?.color||Ft[t%Ft.length]||mt))])),Q=e=>`g`+e.replace(/[^a-zA-Z0-9]/g,``);return(0,P.jsx)(wt,{title:m,subtitle:te,children:(0,P.jsx)(B,{config:n,className:a,...y,children:(0,P.jsxs)(Ke,{data:_,layout:Pt?`vertical`:`horizontal`,...Ie,children:[(0,P.jsx)(`defs`,{children:Lt.map(e=>(0,P.jsxs)(N.Fragment,{children:[(0,P.jsxs)(`linearGradient`,{id:`bg-${Q(e)}`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,P.jsx)(`stop`,{offset:`0%`,style:{stopColor:e},stopOpacity:.95}),(0,P.jsx)(`stop`,{offset:`100%`,style:{stopColor:e},stopOpacity:.5})]}),(0,P.jsxs)(`linearGradient`,{id:`ag-${Q(e)}`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,P.jsx)(`stop`,{offset:`0%`,style:{stopColor:e},stopOpacity:.5}),(0,P.jsx)(`stop`,{offset:`95%`,style:{stopColor:e},stopOpacity:.05})]})]},Q(e)))}),(0,P.jsx)(j,{...at}),Pt?(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(E,{type:`number`,tickLine:!1,axisLine:!1,tickFormatter:K,...Y(z)}),(0,P.jsx)(O,{type:`category`,dataKey:r,tickLine:!1,axisLine:!1,width:Math.min(140,Math.max(60,Math.max(..._.map(e=>String(e[r]??``).length))*7)),tickFormatter:G})]}):(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(E,{dataKey:r,...kt}),(0,P.jsx)(O,{...W?{yAxisId:`left`}:{},tickLine:!1,axisLine:!1,tickFormatter:K,width:48,...Y(z)}),W?(0,P.jsx)(O,{yAxisId:`right`,orientation:`right`,tickLine:!1,axisLine:!1,tickFormatter:q,width:48,...Y(V,`right`)}):null]}),pt?(0,P.jsx)(H,{content:(0,P.jsx)(U,{})}):null,ot?(0,P.jsx)(Ye,{content:(0,P.jsx)(Xe,{}),...b&&{verticalAlign:`bottom`,wrapperStyle:{fontSize:`11px`,paddingTop:`8px`}}}):null,ut,ht,i.map((e,t)=>{let a=L(),o=e.variant===`comparison`,s=o?i.slice(0,t).find(e=>e.variant!==`comparison`)||i[0]:e,c=o?i.indexOf(s):t,l=X(n[s.dataKey]?.color||a[c%a.length]||mt),u=W?{yAxisId:e.yAxis===`right`?`right`:`left`}:{},d=e.stack?{stackId:String(e.stack)}:{},f=lt((e.yAxis===`right`?V:z)?.format);if(h===`bar`||h===`horizontal-bar`){let t=i.filter(e=>e.variant!==`comparison`).length===1&&!o&&i.length===1&&_.length>1,n=gt(e,`bar`);return(0,P.jsxs)(be,{dataKey:e.dataKey,fill:`url(#bg-${Q(l)})`,radius:4,fillOpacity:n?.fillOpacity,...d,...u,...v,...je(e),children:[t&&_.map((e,t)=>(0,P.jsx)(we,{fill:`url(#bg-${Q(X(M(e?.[r],t,a)))})`},`cell-${t}`)),Z(f)]},e.dataKey)}if(h===`line`){let t=gt(e,`line`);return(0,P.jsx)(Oe,{type:`monotone`,dataKey:e.dataKey,stroke:l,strokeWidth:2,dot:!1,strokeOpacity:t?.strokeOpacity,strokeDasharray:t?.strokeDasharray,...u,...v,...je(e),children:Z(f)},e.dataKey)}if(h===`area`){let t=gt(e,`area`);return(0,P.jsx)(he,{type:`monotone`,dataKey:e.dataKey,fill:`url(#ag-${Q(l)})`,stroke:l,strokeWidth:2,fillOpacity:t?.fillOpacity??1,strokeOpacity:t?.strokeOpacity,strokeDasharray:t?.strokeDasharray,...d,...u,...v,...je(e),children:Z(f)},e.dataKey)}return null})]})})})}function Ft(e){let t=e.chartType===`column`?`bar`:e.chartType??`bar`,n=Array.isArray(e.data)?e.data:[],r=e.xAxisKey??`name`;return Z.has(t)&&n.length>0&&!n.some(e=>typeof e==`object`&&!!e&&r in e)}var It=new Set([`bar`,`horizontal-bar`,`line`,`area`,`combo`]);function Lt(e){let t=e.chartType===`column`?`bar`:e.chartType??`bar`,n=Array.isArray(e.data)?e.data:[];return It.has(t)&&n.length>0&&Array.isArray(e.series)&&e.series.length===0}function Rt({code:e,className:t,children:n}){return(0,P.jsx)(`div`,{className:`flex h-full min-h-[120px] w-full items-center justify-center p-4 text-center text-sm text-muted-foreground ${t??``}`,role:`status`,"data-chart-error":e,children:(0,P.jsx)(`span`,{children:n})})}function Q(e){let t=Ft(e),n=!t&&Lt(e),r=e.xAxisKey??`name`,i=N.useMemo(()=>Object.keys((Array.isArray(e.data)?e.data[0]:void 0)??{}),[e.data]);return N.useEffect(()=>{t&&console.warn(`[chart] no row has the category key "${r}" — rendering an explanatory placeholder instead of an empty axis. Row keys: ${JSON.stringify(i)}. A dataset query must PROJECT the dimension it groups by (framework#4033).`)},[t,r,i]),N.useEffect(()=>{n&&console.warn(`[chart] no series to plot against the category axis "${r}" — rendering an explanatory placeholder instead of an empty frame. Row keys: ${JSON.stringify(i)}. A grouped chart's SECOND dimension must be PROJECTED by the dataset query, and a chart with no measure selected has nothing to draw either (objectui#4683, framework#4033).`)},[n,r,i]),t?(0,P.jsxs)(Rt,{code:`missing-category-key`,className:e.className,children:[`This chart cannot plot its category axis: no row has a`,` `,(0,P.jsx)(`code`,{className:`font-mono`,children:r}),` field.`]}):n?(0,P.jsxs)(Rt,{code:`no-plottable-series`,className:e.className,children:[`This chart cannot plot any series: no measure or group reached its`,` `,(0,P.jsx)(`code`,{className:`font-mono`,children:r}),` axis.`]}):(0,P.jsx)(Pt,{...e})}var zt=t({default:()=>Ht});function Bt(e,t=14){return e.length>t?`${e.slice(0,t-1)}…`:e}function Vt({x:e,y:t,payload:n}){let r=String(n?.value??``),i=Bt(r);return(0,P.jsx)(`g`,{transform:`translate(${e},${t})`,children:(0,P.jsxs)(`text`,{dy:10,textAnchor:`end`,transform:`rotate(-32)`,fill:`hsl(var(--muted-foreground))`,fontSize:11,fontFamily:`monospace`,children:[r!==i&&(0,P.jsx)(`title`,{children:r}),i]})})}function Ht({data:e=[],dataKey:t=`value`,xAxisKey:n=`name`,height:r=400,className:i=``,color:a=`hsl(var(--primary))`}){let o=e.map(e=>String(e?.[n]??``)),s=o.length>4||o.some(e=>e.length>8);return(0,P.jsx)(`div`,{className:`p-2 sm:p-3 md:p-4 rounded-xl border border-border bg-card/40 backdrop-blur-sm shadow-lg shadow-background/5 ${i}`,children:(0,P.jsx)(x,{width:`100%`,height:r,children:(0,P.jsxs)(A,{data:e,margin:{top:10,right:10,left:10,bottom:s?24:5},children:[(0,P.jsxs)(`defs`,{children:[(0,P.jsxs)(`linearGradient`,{id:`barGradient`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,P.jsx)(`stop`,{offset:`0%`,stopColor:a,stopOpacity:1}),(0,P.jsx)(`stop`,{offset:`90%`,stopColor:a,stopOpacity:.6}),(0,P.jsx)(`stop`,{offset:`100%`,stopColor:a,stopOpacity:.3})]}),(0,P.jsxs)(`filter`,{id:`glow`,height:`130%`,children:[(0,P.jsx)(`feGaussianBlur`,{in:`SourceAlpha`,stdDeviation:`3`,result:`blur`}),(0,P.jsx)(`feOffset`,{in:`blur`,dx:`0`,dy:`0`,result:`offsetBlur`}),(0,P.jsx)(`feFlood`,{floodColor:a,floodOpacity:`0.5`,result:`offsetColor`}),(0,P.jsx)(`feComposite`,{in:`offsetColor`,in2:`offsetBlur`,operator:`in`,result:`offsetBlur`}),(0,P.jsxs)(`feMerge`,{children:[(0,P.jsx)(`feMergeNode`,{in:`offsetBlur`}),(0,P.jsx)(`feMergeNode`,{in:`SourceGraphic`})]})]})]}),(0,P.jsx)(j,{strokeDasharray:`3 3`,stroke:`hsl(var(--border))`,vertical:!1}),(0,P.jsx)(E,{dataKey:n,tick:s?(0,P.jsx)(Vt,{}):{fill:`hsl(var(--muted-foreground))`,fontSize:12,fontFamily:`monospace`},tickLine:!1,axisLine:{stroke:`hsl(var(--border))`},interval:0,height:s?56:void 0,dy:s?void 0:10}),(0,P.jsx)(O,{tick:{fill:`hsl(var(--muted-foreground))`,fontSize:12,fontFamily:`monospace`},tickLine:!1,axisLine:!1}),(0,P.jsx)(ue,{cursor:{fill:`hsl(var(--muted))`,opacity:.2},contentStyle:{backgroundColor:`hsl(var(--popover))`,borderColor:`hsl(var(--border))`,color:`hsl(var(--popover-foreground))`,borderRadius:`8px`,fontFamily:`monospace`,boxShadow:`0 4px 6px -1px rgb(0 0 0 / 0.1)`},itemStyle:{color:`hsl(var(--primary))`}}),(0,P.jsx)(Ce,{wrapperStyle:{paddingTop:`20px`,fontFamily:`monospace`}}),(0,P.jsx)(be,{dataKey:t,fill:`url(#barGradient)`,radius:[4,4,0,0],filter:`url(#glow)`,animationDuration:1500})]})})})}var Ut=N.lazy(()=>n(()=>Promise.resolve().then(()=>zt),void 0,import.meta.url)),Wt=N.lazy(()=>n(()=>Promise.resolve().then(()=>pt),void 0,import.meta.url)),Gt=({schema:e})=>(0,P.jsx)(N.Suspense,{fallback:(0,P.jsx)(M,{className:`w-full h-48 sm:h-64 md:h-80 lg:h-[400px]`}),children:(0,P.jsx)(Ut,{data:e.data,dataKey:e.dataKey,xAxisKey:e.xAxisKey,height:e.height,className:e.className,color:e.color})}),$=({schema:e,onChartClick:t})=>{let n=N.useMemo(()=>{let t=ot(e),n=Array.isArray(e.series)?e.series:void 0,r=(n?.length&&n.every(e=>!!e&&typeof e==`object`&&`dataKey`in e)?n:t.series)??n,i=e.xAxisKey??t.xAxisKey,a=e.config;if(i||(e.index?i=e.index:e.category&&(i=e.category)),r||(e.categories?r=e.categories.map(e=>({dataKey:e})):e.value&&(r=[{dataKey:e.value}])),!a&&r){let t=e.colors||[`hsl(var(--chart-1))`,`hsl(var(--chart-2))`,`hsl(var(--chart-3))`],n={};r.forEach((e,r)=>{n[e.dataKey]={label:e.label||e.dataKey,color:e.color||t[r%t.length]}}),a=n}return{chartType:e.chartType??t.chartType,data:Array.isArray(e.data)?e.data:[],config:a,xAxisKey:i,series:r,className:e.className,spec:t}},[e]);return(0,P.jsx)(N.Suspense,{fallback:(0,P.jsx)(M,{className:`w-full h-48 sm:h-64 md:h-80 lg:h-[400px]`}),children:(0,P.jsx)(Wt,{chartType:n.chartType,data:n.data,config:n.config,xAxisKey:n.xAxisKey,series:n.series,className:n.className,colors:Array.isArray(e.colors)?e.colors:void 0,categoryColors:e.categoryColors,categoryOrder:e.categoryOrder,isAnimationActive:e.isAnimationActive,onChartClick:t,xAxis:n.spec.xAxis,yAxes:n.spec.yAxes,showLegend:n.spec.showLegend,showDataLabels:n.spec.showDataLabels,title:n.spec.title,subtitle:n.spec.subtitle,description:n.spec.description,height:n.spec.height??e.height,annotations:n.spec.annotations,interaction:n.spec.interaction})})};function Kt(e){return e.field||e.function||`count`}var qt=`__comparison`;function Jt(e,t){let{field:n,function:r,groupBy:i}=t,a=Kt(t),o={};for(let t of e){let e=String(t[i]??`Unknown`);o[e]||(o[e]=[]),o[e].push(t)}return Object.entries(o).map(([e,t])=>{let o=n?t.map(e=>Number(e[n])||0):[],s;switch(r){case`count`:s=t.length;break;case`avg`:s=o.length>0?o.reduce((e,t)=>e+t,0)/o.length:0;break;case`min`:s=o.length>0?Math.min(...o):0;break;case`max`:s=o.length>0?Math.max(...o):0;break;default:s=o.reduce((e,t)=>e+t,0)}return{[i]:e,[a]:s}})}async function Yt(e,t,n,r,i){if(!e.length||!t)return e;let a=i||((e,t)=>t),o=`__raw_${t}`,s=n?.fields?.[t];if(!s){let n=/^\d{4}-\d{2}-\d{2}/;return e.map(e=>{let r=e[t],i=String(r??``),s=n.test(i)?i:c(i);return{...e,[t]:a(i,s),[o]:r}})}let l=s.type;if(l===`select`||l===`picklist`||l===`dropdown`){let n=s.options||[];if(n.length===0)return e.map(e=>{let n=e[t],r=String(n??``),i=c(r);return{...e,[t]:a(r,i),[o]:n}});let r={};for(let e of n)typeof e==`string`?r[e]=e:e&&typeof e==`object`&&(r[String(e.value)]=e.label||String(e.value));return e.map(e=>{let n=e[t],i=String(n??``),s=r[i]||c(i);return{...e,[t]:a(i,s),[o]:n}})}if(l===`lookup`||l===`master_detail`){let n=s.reference;if(!n||!r||typeof r.find!=`function`)return e.map(e=>({...e,[o]:e[t]}));let i=[...new Set(e.map(e=>e[t]).filter(e=>e!=null))];if(i.length===0)return e.map(e=>({...e,[o]:e[t]}));let a=s.id_field||`id`;try{let c=await r.find(n,{$filter:{[a]:{$in:i}},$top:i.length}),l=p(c),u=s.reference_field||s.display_field||`name`,d={};for(let e of l){let t=String(e[a]??e.id??e._id??``),n=e[u]||e.name||e.label||e.title||t;t&&(d[t]=String(n))}return e.map(e=>{let n=e[t],r=String(n??``);return{...e,[t]:d[r]||r,[o]:n}})}catch(n){return console.warn(`[ObjectChart] Failed to resolve lookup labels:`,n),e.map(e=>({...e,[o]:e[t]}))}}if(l===`date`||l===`datetime`||l===`date_time`||l===`timestamp`||l===`time`)return e.map(e=>({...e,[o]:e[t]}));let u=/^\d{4}-\d{2}-\d{2}/;return e.map(e=>{let n=e[t],r=String(n??``);return{...e,[t]:u.test(r)?r:c(r),[o]:n}})}var Xt=e=>{let{schema:t}=e,n=e.onSegmentClick,r=(0,N.useContext)(u),i=e.dataSource||r?.dataSource,c=r?.apiFetch,h=f(t.bind),{fieldOptionLabel:g}=je(),[se,v]=(0,N.useState)([]),[ce,ue]=(0,N.useState)(null),[de,fe]=(0,N.useState)(()=>!(Array.isArray(t.data)&&t.data.length>0)&&(!!t.objectName||!!t.dataset)),[pe,x]=(0,N.useState)(null),[S,C]=(0,N.useState)(null),[me,he]=(0,N.useState)(null),{openRecordList:ge}=o(),w=Ne(),_e=(0,N.useMemo)(()=>t.aggregate?JSON.stringify(t.aggregate):``,[t.aggregate]),ve=(0,N.useMemo)(()=>t.filter?JSON.stringify(t.filter):``,[t.filter]),ye=(0,N.useMemo)(()=>t.compareTo?JSON.stringify(t.compareTo):``,[t.compareTo]),be=(0,N.useMemo)(()=>t.dataset?JSON.stringify({d:t.dataset,dim:t.dimensions??[],val:t.values??[]}):``,[t.dataset,t.dimensions,t.values]),xe=e=>e!==`pie`&&e!==`donut`&&e!==`funnel`&&e!==`scatter`;(0,N.useEffect)(()=>{let e=!1;return(async()=>{try{let n=c??fetch,r={headers:{accept:`application/json`},credentials:`include`},i=t.objectName,a,o=null,s=t.aggregate?.groupBy;if(i)a=s&&typeof s==`object`&&!Array.isArray(s)?s.field:typeof s==`string`?s:t.xAxisKey;else if(t.dataset){let e=Array.isArray(t.dimensions)&&t.dimensions.length?t.dimensions[0]:void 0,s=await(await n(`/api/v1/meta/dataset/${encodeURIComponent(t.dataset)}`,r)).json().catch(()=>null);o=s?.item??s?.data??s,i=o?.object,a=((o?.dimensions||[]).find(t=>t?.name===e)??(o?.dimensions||[])[0])?.field??e}if(!i||!a){e||he(null);return}let l=async e=>{let t=await(await n(`/api/v1/meta/object/${encodeURIComponent(e)}`,r)).json().catch(()=>null);return t?.item??t?.data??t},u={};if(t.dataset&&Array.isArray(t.dimensions))for(let e of t.dimensions)u[e]=(o?.dimensions||[]).find(t=>t?.name===e)?.field??e;let d=await ee(l,i,[a,...Object.values(u)]);e||he({metaByPath:d,colorPath:a,fieldByDim:t.dataset&&Array.isArray(t.dimensions)?u:null})}catch{e||he(null)}})(),()=>{e=!0}},[t.objectName,t.dataset,be,_e,t.xAxisKey,c]);let{fieldOptionColors:Se,dimensionLabels:Ce}=(0,N.useMemo)(()=>{if(!me)return{fieldOptionColors:null,dimensionLabels:null};let{metaByPath:e,colorPath:t,fieldByDim:n}=me,r=y(e[t]?.options,ne(e[t],g)),i=oe(e,n?Object.entries(n).map(([e,t])=>({dim:e,path:t})):null,g);return{fieldOptionColors:te(r),dimensionLabels:i}},[me,g]),we=(0,N.useCallback)(async(e,n)=>{if(t.aggregate&&typeof e.aggregate==`function`){let r=t.aggregate.groupBy;if(r&&typeof r==`object`&&!Array.isArray(r)){let i=t.aggregate.field,a=t.aggregate.function,o={function:a,alias:Kt(t.aggregate)};a!==`count`&&i&&(o.field=i);let s=await e.aggregate(t.objectName,{groupBy:[r],aggregations:[o],where:n});return Array.isArray(s)?s:[]}let i=await e.aggregate(t.objectName,{field:t.aggregate.field,function:t.aggregate.function,groupBy:r,filter:n});return Array.isArray(i)?i:[]}if(typeof e.find==`function`){let r=await e.find(t.objectName,{$filter:n}),i=p(r);return t.aggregate&&i.length>0&&(i=Jt(i,t.aggregate)),i}return[]},[t.objectName,_e]),T=_(),E=(0,N.useCallback)(async(e,n)=>{if(!e||!t.objectName&&!t.dataset){n.current&&fe(!1);return}n.current&&(fe(!0),x(null));try{if(t.dataset&&typeof e.queryDataset==`function`){let r=a(t.filter,T),i=await e.queryDataset(t.dataset,{dimensions:Array.isArray(t.dimensions)?t.dimensions:[],measures:Array.isArray(t.values)?t.values:[],...r?{runtimeFilter:r}:{}});n.current&&(v(Array.isArray(i?.rows)?i.rows:[]),ue(Array.isArray(i?.fields)?i.fields:null));return}let r=a(t.filter,T),i=t.compareTo,o=!!i&&xe(t.chartType),s=o?ae(b(t.filter,i),T):null,[c,l]=await Promise.all([we(e,r),s?we(e,s):Promise.resolve([])]),u=c,d=t.aggregate?.groupBy,f=d&&typeof d==`object`&&!Array.isArray(d)?d.alias||d.field:d||t.xAxisKey;if(o&&l.length>0&&t.aggregate){let e=t.aggregate.field,n=t.aggregate.function,r=Kt(t.aggregate),i=t=>{if(t==null)return null;if(e){let r=`${e}_${n}`;if(r in t)return Number(t[r]);if(n===`count`&&`${e}_count`in t)return Number(t[`${e}_count`])}return r in t?Number(t[r]):`value`in t?Number(t.value):`count`in t?Number(t.count):null},a=`${r}${qt}`,o=f;if(o&&u.some(e=>e[o]!=null)&&l.some(e=>e[o]!=null)){let e=new Map;for(let t of l){let n=String(t[o]??``);e.set(n,i(t))}u=u.map(t=>{let n=String(t[o]??``),r=e.get(n);return r==null?t:{...t,[a]:r}});let t=new Set(u.map(e=>String(e[o]??``)));for(let e of l){let n=String(e[o]??``);t.has(n)||u.push({[o]:n,[a]:i(e)})}}else{let e=Math.max(u.length,l.length),t=[];for(let n=0;n<e;n++){let e=u[n]||{},r=l[n];t.push(r?{...e,[a]:i(r)}:e)}u=t}}if(f&&typeof e.getObjectSchema==`function`)try{let n=await e.getObjectSchema(t.objectName);u=await Yt(u,f,n,e,(e,n)=>g(t.objectName,f,e,n))}catch{}n.current&&v(u)}catch(e){console.error(`[ObjectChart] Fetch error:`,e),n.current&&x(e instanceof Error?e.message:`Failed to load chart data`)}finally{n.current&&fe(!1)}},[t.objectName,be,_e,ve,ye,t.xAxisKey,t.chartType,we,T,g]);(0,N.useEffect)(()=>{let e={current:!0};return(t.objectName||t.dataset)&&!h&&!t.data?E(i,e):e.current&&fe(!1),()=>{e.current=!1}},[t.objectName,be,i,h,t.data,ve,_e,ye,E]);let Te=h||t.data||se,D=Array.isArray(Te)?Te:[],O=t.drillDown,k=t.aggregate?.groupBy||t.xAxisKey,Ee=(0,N.useMemo)(()=>{if(!k)return new Map;let e=new Map,t=`__raw_${k}`;for(let n of D){let r=n?.[k];if(r==null)continue;let i=t in(n||{})?n[t]:r;e.set(String(r),i)}return e},[D,k]),De=(0,N.useMemo)(()=>{if(S)return{...t.filter||{},...ie(O,S,{groupByField:k})}},[S,O,k,ve]),A=!n&&!!S&&!!t.objectName&&O?.target===`navigate`&&!!ge;(0,N.useEffect)(()=>{A&&(ge(t.objectName,De),C(null))},[A]);let Oe=t.compareTo,ke=t.aggregate?Kt(t.aggregate):void 0,Ae=ke?`${ke}${qt}`:void 0,j=!!Oe&&xe(t.chartType)&&!!Ae&&D.some(e=>e[Ae]!=null),M=(0,N.useMemo)(()=>{let e=Array.isArray(t.series)?t.series:null;if(!j)return e;let n=e||[{dataKey:ke}],r={vsLastWeek:`Previous week`,vsLastMonth:`Previous month`,vsLastQuarter:`Previous quarter`,vsLastYear:`Previous year`,vsYesterday:`Yesterday`,vsPreviousPeriod:`Previous period`}[s(Oe,t.filter)]||`Previous period`;return[...n.map(e=>({...e,variant:e.variant||`current`})),{dataKey:Ae,label:r,variant:`comparison`}]},[j,t.series,ke,Ae,t.filter,Oe]),F=t.dataset?m(le(D,Ce),t.dimensions,t.values,ce,{nullCategoryLabel:w(`chart.nullCategory`,`(None)`),builtinAggregateLabels:Me(w)}):null,I=F?{...t,data:F.data,xAxisKey:F.xAxisKey,series:F.series}:{...t,data:D,...M?{series:M}:{}},L=t.colors&&!Array.isArray(t.colors)&&typeof t.colors==`object`?t.colors:null,R=Array.isArray(t.colors)?t.colors:void 0,z=Se||L?{...Se||{},...L||{}}:void 0,B={...I,colors:R,...z?{categoryColors:z}:{}};if(de&&D.length===0)return(0,P.jsxs)(`div`,{className:`p-2 `+(t.className||``),"data-testid":`chart-loading`,role:`status`,"aria-busy":`true`,"aria-live":`polite`,children:[(0,P.jsx)(`span`,{className:`sr-only`,children:`Loading chart data…`}),(0,P.jsx)(Ue,{className:`h-full`})]});if(pe)return(0,P.jsxs)(`div`,{className:`flex flex-col items-center justify-center gap-2 p-4 `+(t.className||``),"data-testid":`chart-error`,role:`alert`,children:[(0,P.jsx)(He,{className:`h-6 w-6 text-destructive opacity-60`}),(0,P.jsx)(`p`,{className:`text-xs text-destructive font-medium`,children:`Failed to load chart data`}),(0,P.jsx)(`p`,{className:`text-xs text-muted-foreground max-w-xs text-center`,children:pe})]});if(!i&&t.objectName&&D.length===0)return(0,P.jsxs)(`div`,{className:`flex items-center justify-center text-muted-foreground text-sm p-4 `+(t.className||``),"data-testid":`chart-no-datasource`,children:[`No data source available for “`,t.objectName,`”`]});if((t.objectName||t.dataset)&&!h&&!t.data&&D.length===0)return(0,P.jsx)(Be,{role:`status`,"data-testid":`chart-empty-state`,className:`h-full w-full gap-2 p-4 [&>h3]:text-sm [&>h3]:font-medium [&>p]:text-xs `+(t.className||``),icon:(0,P.jsx)(Ie,{className:`h-5 w-5 text-muted-foreground/70`}),iconWrapperClassName:`flex size-9 items-center justify-center rounded-lg bg-muted`,title:w(`dashboard.empty.title`,`No data yet`),description:w(`dashboard.empty.message`,`This widget loaded successfully and its query returned no records yet.`),children:(0,P.jsxs)(`p`,{className:`text-xs text-muted-foreground/80`,"data-testid":`chart-empty-source`,children:[(0,P.jsx)(`span`,{children:w(`dashboard.empty.sourceLabel`,`Source:`)}),` `,(0,P.jsx)(`span`,{className:`font-mono`,children:t.dataset||t.objectName})]})});let V=l(O)?e=>{let t=e.category,n=t!=null&&Ee.has(String(t))?Ee.get(String(t)):t;C({...e,category:n,categoryLabel:t,scope:`cell`})}:void 0,H=n??V,U=!n&&S&&t.objectName&&!A?(()=>{let e=De??{},n=d(O,S,t.title||`Details`),r=O?.target??`drawer`,a={type:`object-data-table`,objectName:t.objectName,filter:e,pagination:!0,pageSize:O?.maxRows,columns:O?.columns?.map(e=>({accessorKey:e,header:e})),drillDown:{enabled:!0,mode:`record`,target:`dialog`}},o=(0,P.jsx)(`div`,{className:`overflow-auto`,"data-testid":`chart-drill-body`,children:(0,P.jsx)(re,{schema:a,dataSource:i})}),s=ge&&t.objectName?(0,P.jsxs)(ze,{type:`button`,variant:`ghost`,size:`sm`,"data-testid":`drill-open-in-list`,onClick:()=>{ge(t.objectName,e),C(null)},children:[w(`dashboard.openInList`,`Open in list`),(0,P.jsx)(Fe,{className:`ml-1 h-3.5 w-3.5`})]}):null;return r===`dialog`?(0,P.jsx)(Ge,{open:!0,onOpenChange:e=>!e&&C(null),children:(0,P.jsxs)(Je,{className:`max-w-4xl`,children:[(0,P.jsxs)(Re,{className:`flex-row items-center justify-between gap-4 pr-8`,children:[(0,P.jsx)(Pe,{children:n}),s]}),o]})}):(0,P.jsx)(We,{open:!0,onOpenChange:e=>!e&&C(null),children:(0,P.jsxs)(qe,{side:`right`,className:`w-full sm:max-w-2xl md:max-w-3xl lg:max-w-4xl flex flex-col`,children:[(0,P.jsxs)(Ke,{className:`flex-row items-center justify-between gap-4 pr-8`,children:[(0,P.jsx)(Le,{children:n}),s]}),(0,P.jsx)(`div`,{className:`flex-1 overflow-hidden mt-2`,children:o})]})})})():null;return(0,P.jsxs)(`div`,{className:`relative h-full`,children:[(0,P.jsx)(Ve,{active:de&&D.length>0}),(0,P.jsx)($,{...e,schema:B,onChartClick:H}),U]})},Zt={filter:!0},Qt=h(e=>(0,P.jsx)(g,{schema:e.schema,mapping:Zt,dataSource:e.dataSource,testId:`object-chart`,errorTitle:`This chart’s data source could not be resolved`,children:t=>(0,P.jsx)(Xt,{...e,schema:t})}));v.register(`object-chart`,Qt,{namespace:`plugin-charts`,label:`Object Chart`,category:`view`,inputs:[{name:`objectName`,type:`string`,label:`Object Name`,required:!0},{name:`data`,type:`array`,label:`Data`,description:`Optional static data`},{name:`filter`,type:`array`,label:`Filter`},{name:`aggregate`,type:`object`,label:`Aggregate`,description:`Aggregation config: { field, function, groupBy }`},{name:`drillDown`,type:`object`,label:`Drill-down`,description:`Segment drill config: { enabled?, filter?, title?, target?: 'drawer' | 'dialog', columns?, maxRows? }. Present = on; {} is enough. Clicking a segment opens the underlying records filtered by the clicked category.`}]});var $t=t({ChartBarRenderer:()=>Gt,ChartRenderer:()=>$,ObjectChart:()=>Xt,ObjectChartBlock:()=>Qt,chartComponents:()=>en,normalizeChartSchema:()=>ot}),en={"bar-chart":Gt,chart:$};v.register(`bar-chart`,Gt,{namespace:`plugin-charts`,label:`Bar Chart`,category:`plugin`,inputs:[{name:`data`,type:`array`,label:`Data`,required:!0},{name:`dataKey`,type:`string`,label:`Data Key`,defaultValue:`value`},{name:`xAxisKey`,type:`string`,label:`X-Axis Key`,defaultValue:`name`},{name:`height`,type:`number`,label:`Height`,defaultValue:400},{name:`color`,type:`color`,label:`Color`,defaultValue:`#8884d8`}],defaultProps:{data:[{name:`Jan`,value:400},{name:`Feb`,value:300},{name:`Mar`,value:600},{name:`Apr`,value:800},{name:`May`,value:500}],dataKey:`value`,xAxisKey:`name`,height:400,color:`#8884d8`}}),v.register(`chart`,Qt,{namespace:`view`,category:`view`,label:`Chart`,skipFallback:!0,inputs:[{name:`objectName`,type:`string`,label:`Object Name`,required:!0},{name:`type`,type:`string`,label:`Chart Type`},{name:`categoryField`,type:`string`,label:`Category Field`},{name:`valueField`,type:`string`,label:`Value Field`}]}),v.register(`chart`,$,{namespace:`plugin-charts`,label:`Chart`,category:`plugin`,inputs:[{name:`chartType`,type:`enum`,label:`Chart Type`,enum:[{label:`Bar`,value:`bar`},{label:`Line`,value:`line`},{label:`Area`,value:`area`},{label:`Pie`,value:`pie`},{label:`Donut`,value:`donut`},{label:`Radar`,value:`radar`},{label:`Scatter`,value:`scatter`}],defaultValue:`bar`},{name:`data`,type:`code`,label:`Data (JSON)`,required:!0},{name:`config`,type:`code`,label:`Config (JSON)`},{name:`xAxisKey`,type:`string`,label:`X Axis Key`,defaultValue:`name`},{name:`series`,type:`code`,label:`Series (JSON Array)`,required:!0},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{chartType:`bar`,data:[{name:`Jan`,sales:400,revenue:240},{name:`Feb`,sales:300,revenue:139},{name:`Mar`,sales:600,revenue:380},{name:`Apr`,sales:800,revenue:430},{name:`May`,sales:500,revenue:220}],config:{sales:{label:`Sales`,color:`#8884d8`},revenue:{label:`Revenue`,color:`#82ca9d`}},xAxisKey:`name`,series:[{dataKey:`sales`},{dataKey:`revenue`}]}}),v.register(`chart:bar`,$,{namespace:`plugin-charts`,label:`Bar Chart (Alias)`,category:`plugin`,defaultProps:{chartType:`bar`}}),v.register(`pie-chart`,$,{namespace:`plugin-charts`,label:`Pie Chart`,category:`plugin`,defaultProps:{chartType:`pie`}}),v.register(`donut-chart`,$,{namespace:`plugin-charts`,label:`Donut Chart`,category:`plugin`,defaultProps:{chartType:`donut`}}),v.register(`radar-chart`,$,{namespace:`plugin-charts`,label:`Radar Chart`,category:`plugin`,defaultProps:{chartType:`radar`}}),v.register(`scatter-chart`,$,{namespace:`plugin-charts`,label:`Scatter Chart`,category:`plugin`,defaultProps:{chartType:`scatter`}});export{$t as t};
|