@objectstack/console 17.5.0 → 17.6.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 +378 -0
- package/dist/.objectstack-injection.json +2 -2
- package/dist/.objectui-sha +1 -1
- package/dist/assets/{ActionResultDialog-CLdIyOW6.js → ActionResultDialog-4kHDGnT3.js} +3 -3
- package/dist/assets/{AiPendingActionsPage-OKYz66yR.js → AiPendingActionsPage-JjOddm0h.js} +1 -1
- package/dist/assets/{ApiConsolePage-CcrKovu8.js → ApiConsolePage-BgS26lbp.js} +1 -1
- package/dist/assets/AppDocsIndex-BDoH5ECM.js +1 -0
- package/dist/assets/{AppManagementPage-D_xz8cTZ.js → AppManagementPage-CCgKmNTj.js} +1 -1
- package/dist/assets/ApprovalsInboxPage-C6S1vk0X.js +1 -0
- package/dist/assets/AuditLogPage-v2dKXMuk.js +1 -0
- package/dist/assets/BookPage-DwFMcTSN.js +1 -0
- package/dist/assets/{ComponentNavView-BxsixSU9.js → ComponentNavView-B5g9c6fx.js} +1 -1
- package/dist/assets/{CreateViewDialog-xyKlpLEW.js → CreateViewDialog-D3l-tYHM.js} +1 -1
- package/dist/assets/DashboardView-BOcovpPd.js +1 -0
- package/dist/assets/DocPage-B6AkH5WI.js +1 -0
- package/dist/assets/{DocsIndex-B2zw_HAp.js → DocsIndex-DwW2QsYY.js} +1 -1
- package/dist/assets/{DocsLayout-DezZ8x7_.js → DocsLayout-D63StSgd.js} +1 -1
- package/dist/assets/DocsSlug-CP9fcabi.js +1 -0
- package/dist/assets/ExpressionProvider-CrL6jhVq.js +1 -0
- package/dist/assets/{FlowRunsPage-CvY3nJMF.js → FlowRunsPage-CxdaiUyk.js} +1 -1
- package/dist/assets/{IntegrationsPage-2leVkVDH.js → IntegrationsPage-DvG0x0Nb.js} +2 -2
- package/dist/assets/{InterfaceListPage-BdECC_i3.js → InterfaceListPage-C4wPYohR.js} +1 -1
- package/dist/assets/{MarketplaceInstalledPage-EPPHSitW.js → MarketplaceInstalledPage-B7KETQG2.js} +1 -1
- package/dist/assets/MarketplacePackagePage-CfgKDpNH.js +4 -0
- package/dist/assets/{MarketplacePage-BnQKykgv.js → MarketplacePage-DNEyU5AE.js} +1 -1
- package/dist/assets/{MetadataInspector-BWxLkr0O.js → MetadataInspector-EP0I3-Kq.js} +1 -1
- package/dist/assets/{ObjectDataPage-BIzp65Mo.js → ObjectDataPage-CykEm9MD.js} +1 -1
- package/dist/assets/PageView-C6u86tni.js +1 -0
- package/dist/assets/{ProfilePage-D2qGgxPK.js → ProfilePage-C3SjXMzi.js} +1 -1
- package/dist/assets/{PublicFormsPage-DlE6tck_.js → PublicFormsPage-D3uCTR-8.js} +1 -1
- package/dist/assets/RecordDetailView-DgR_zhP4.js +3 -0
- package/dist/assets/RecordFormPage-kiJI-ieF.js +1 -0
- package/dist/assets/ReportDefaultInspector-BIinF0EQ.js +1 -0
- package/dist/assets/{ReportView-GIdKJdOt.js → ReportView-BREO-ADE.js} +1 -1
- package/dist/assets/{RuntimeDraftBar-BbMdi3Kp.js → RuntimeDraftBar-BCWfd2yS.js} +1 -1
- package/dist/assets/SchemaForm-C4uMMZ13.js +3 -0
- package/dist/assets/SearchResultsPage-C6Hw_Lpn.js +1 -0
- package/dist/assets/{SettingsHub-BGKIj-Zq.js → SettingsHub-DP1mrzEN.js} +1 -1
- package/dist/assets/SettingsView-u7mc6pcc.js +1 -0
- package/dist/assets/{SkeletonDetail-C8fMI-Mu.js → SkeletonDetail-DIwlbHTr.js} +1 -1
- package/dist/assets/{af-BfSmLD34.js → af-DPUgkQl0.js} +1 -1
- package/dist/assets/ai-DPBykF2N.js +3 -0
- package/dist/assets/{app-shell-eager-leaves-CDVclng4.js → app-shell-eager-leaves-Cf2bM6uT.js} +1 -1
- package/dist/assets/{ar-B9ttrM75.js → ar-B-6GTIRU.js} +1 -1
- package/dist/assets/{ar-DZ-C1rn-cyl.js → ar-DZ-wEl298ti.js} +1 -1
- package/dist/assets/{ar-EG-BaDxKP_o.js → ar-EG-YBT90_S0.js} +1 -1
- package/dist/assets/{ar-MA-DbxNEcmd.js → ar-MA-3uT-EYh6.js} +1 -1
- package/dist/assets/{ar-SA-DeC5LXcX.js → ar-SA-SiQsjhhc.js} +1 -1
- package/dist/assets/{ar-TN-C9KpTFJz.js → ar-TN-CfzXjKzS.js} +1 -1
- package/dist/assets/{az-cMerDwRO.js → az-BqAfcNza.js} +1 -1
- package/dist/assets/{be-ZTSbszQh.js → be-CQgWXa9_.js} +1 -1
- package/dist/assets/{be-tarask-BXZEUrgX.js → be-tarask-BmNg0Sir.js} +1 -1
- package/dist/assets/{bg-BDogpmn5.js → bg-D3evgRuS.js} +1 -1
- package/dist/assets/{bn-Cz04uxmh.js → bn-uItkARwm.js} +1 -1
- package/dist/assets/{bs-CpFnCl-j.js → bs-DueReOpO.js} +1 -1
- package/dist/assets/{ca-CHC4M52Z.js → ca-Cr3AHktR.js} +1 -1
- package/dist/assets/{ckb-Dxw-RNm8.js → ckb-CTi5BET7.js} +1 -1
- package/dist/assets/contracts-DieHW666.js +1 -0
- package/dist/assets/{createDerive-DvA_JGNq.js → createDerive-CjN1i5vn.js} +1 -1
- package/dist/assets/{cs-DsFaJ5Z7.js → cs-43mFX9jr.js} +1 -1
- package/dist/assets/{cy-FH4JFDTs.js → cy-BBSkg3F8.js} +1 -1
- package/dist/assets/{da-D1pVjaAq.js → da-C5oA5qcs.js} +1 -1
- package/dist/assets/data-adapter-Cymvlczj.js +1 -0
- package/dist/assets/{de-AT-DUMQCisj.js → de-AT-CApxwJzu.js} +1 -1
- package/dist/assets/{de-DKrxSvnP.js → de-CPtbLlAf.js} +1 -1
- package/dist/assets/default-inspector-registry-Bs6GBn00.js +1 -0
- package/dist/assets/dist-BF-ssUpn.js +14 -0
- package/dist/assets/{el-l3-bHySV.js → el-Dto2xBQU.js} +1 -1
- package/dist/assets/en-AU-FVwCiDJO.js +1 -0
- package/dist/assets/{en-CA-DGH5NF0a.js → en-CA-DKuJPN1U.js} +1 -1
- package/dist/assets/en-GB-DQ_y5VbJ.js +1 -0
- package/dist/assets/en-IE-DaXOhsZW.js +1 -0
- package/dist/assets/en-IN-CnRZnAom.js +1 -0
- package/dist/assets/en-NZ-CBZLEToK.js +1 -0
- package/dist/assets/en-ZA-BE59v0wZ.js +1 -0
- package/dist/assets/{eo-CL6CXHZx.js → eo-BL8JXIWd.js} +1 -1
- package/dist/assets/{es-BIJ0rksI.js → es-BnoaNxsu.js} +1 -1
- package/dist/assets/{et-BGgMzjm1.js → et-tPYLNenO.js} +1 -1
- package/dist/assets/{eu-CqvAoRrX.js → eu-CUBG6bT0.js} +1 -1
- package/dist/assets/{fa-IR-DNz3oA1-.js → fa-IR-Rr2d9xSs.js} +1 -1
- package/dist/assets/{fi-DNSfKWuW.js → fi-B0NVIZsV.js} +1 -1
- package/dist/assets/{formatLong-CHb9WA3O.js → formatLong-1-gt9bpo.js} +1 -1
- package/dist/assets/{fr-DYRJCirJ.js → fr-BbhHek8e.js} +1 -1
- package/dist/assets/{fr-CA-CotiswPx.js → fr-CA-CBDvLXFg.js} +1 -1
- package/dist/assets/{fr-CH-CpiEYWpc.js → fr-CH-WPNmwPn7.js} +1 -1
- package/dist/assets/framework-DFR4HNtj.js +35 -0
- package/dist/assets/{fy-B69yM3FE.js → fy-DvOBbvEF.js} +1 -1
- package/dist/assets/{gd-BAy8AsX6.js → gd-BQPiTPX5.js} +1 -1
- package/dist/assets/getIcon-Cfwf-Egt.js +1 -0
- package/dist/assets/{gl-soLn_weL.js → gl-BJCXK8uO.js} +1 -1
- package/dist/assets/{gu-B19Yo9yC.js → gu-CctPRz3V.js} +1 -1
- package/dist/assets/{he-DYTPo33p.js → he-CVFMk6p2.js} +1 -1
- package/dist/assets/{hi-D2dIK7Oy.js → hi-Ba30-RwS.js} +1 -1
- package/dist/assets/{highlighted-body-OFNGDK62-CExufvVt.js → highlighted-body-OFNGDK62-BQ57IrBV.js} +1 -1
- package/dist/assets/{hr-BV-VOPMu.js → hr-BZUqTbZs.js} +1 -1
- package/dist/assets/{ht-C7MM4qkS.js → ht-BLe05tPx.js} +1 -1
- package/dist/assets/{hu-Rha1m2Ym.js → hu-2CQ_Mkww.js} +1 -1
- package/dist/assets/{hy-CiTNgbdV.js → hy-CclcPG4H.js} +1 -1
- package/dist/assets/i18n-BnUsCaSC.js +17 -0
- package/dist/assets/i18n-locale-ar-92O_xtDZ.js +4 -0
- package/dist/assets/i18n-locale-de-T5ic3yH9.js +4 -0
- package/dist/assets/i18n-locale-en-rxr7WJYl.js +4 -0
- package/dist/assets/i18n-locale-es-D_WOifJ_.js +4 -0
- package/dist/assets/i18n-locale-fr-3cvyjMkp.js +4 -0
- package/dist/assets/i18n-locale-ja-DXlIkB8I.js +4 -0
- package/dist/assets/i18n-locale-ko-DngRpS45.js +4 -0
- package/dist/assets/i18n-locale-pt-BkPaFCqZ.js +4 -0
- package/dist/assets/i18n-locale-ru-E5wLh-y6.js +4 -0
- package/dist/assets/i18n-locale-zh-BL4_Yand.js +4 -0
- package/dist/assets/{i18n-runtime-CTgAQF4N.js → i18n-runtime-97_bDVjP.js} +1 -1
- package/dist/assets/{id-Cijsfjt-.js → id-6JLB8s-f.js} +1 -1
- package/dist/assets/index-Cadlh4t_.css +2 -0
- package/dist/assets/index-D98sa5GF.js +20 -0
- package/dist/assets/{infrastructure-BHSync5f.js → infrastructure-Cc34lEqb.js} +2 -2
- package/dist/assets/integration-CeAF4JFT.js +1 -0
- package/dist/assets/{is-xS1WTyeC.js → is-to0CWzm1.js} +1 -1
- package/dist/assets/isSameWeek-DBXaA1Gd.js +1 -0
- package/dist/assets/{it-CH-l516ZNXj.js → it-CH-DhdfjP5Z.js} +1 -1
- package/dist/assets/{it-C2i_c9sd.js → it-ea0B8Ujp.js} +1 -1
- package/dist/assets/{ja-D9_ewLny.js → ja-B1bzkgDW.js} +1 -1
- package/dist/assets/{ja-Hira-D_6ExgHw.js → ja-Hira-CMrY5hXO.js} +1 -1
- package/dist/assets/{ka-BYHGyees.js → ka-DKSXLnXP.js} +1 -1
- package/dist/assets/{kk-CbTFtuqb.js → kk-DHwMv8Dn.js} +1 -1
- package/dist/assets/{km-Dr2gwhIn.js → km-tpLG1xNr.js} +1 -1
- package/dist/assets/{kn-CprH8JD7.js → kn-MLreVnHA.js} +1 -1
- package/dist/assets/{ko-CsFS2u5i.js → ko-CI0DBazn.js} +1 -1
- package/dist/assets/{lb-CbFKN7Ob.js → lb-CmL572Xe.js} +1 -1
- package/dist/assets/{lt-Bq0xkLp0.js → lt-DRtUOLdw.js} +1 -1
- package/dist/assets/{lv-Cj6vg6Qo.js → lv-COSHgkOP.js} +1 -1
- package/dist/assets/{match-C_jFGO9e.js → match-B-ergJQb.js} +1 -1
- package/dist/assets/{match-CiPp9BME.js → match-BQoOW8Cj.js} +1 -1
- package/dist/assets/{match-Co4ivumx.js → match-dfBS0YSQ.js} +1 -1
- package/dist/assets/mermaid-GHXKKRXX-Bb17TtNP.js +1 -0
- package/dist/assets/metadata-admin-CABUxbJl.js +9 -0
- package/dist/assets/{mk-MXFM99YL.js → mk-B0IH_YL_.js} +1 -1
- package/dist/assets/{mn-D5Q9B6Jt.js → mn-P-QdQ2n3.js} +1 -1
- package/dist/assets/{ms-CCzPRldx.js → ms-CtyEOINy.js} +1 -1
- package/dist/assets/{mt-mjJpN6xW.js → mt-DfuZ2HRm.js} +1 -1
- package/dist/assets/{nb-BIlNqdEb.js → nb-2Hp-5Tnt.js} +1 -1
- package/dist/assets/{nl-BE-FwXjQsmV.js → nl-BE-mmxbfNoR.js} +1 -1
- package/dist/assets/{nl-D2uBtIxG.js → nl-CZ_nLREz.js} +1 -1
- package/dist/assets/{nn-B0loJ7SV.js → nn-ccWhYsNa.js} +1 -1
- package/dist/assets/{oc-U7-yH1sO.js → oc-z504BFRV.js} +1 -1
- package/dist/assets/{pl-mTy0JYgi.js → pl-DeQ7ASt-.js} +1 -1
- package/dist/assets/plugin-calendar-Cn5HaZU8.js +1 -0
- package/dist/assets/plugin-charts-B6RcFWbo.js +7 -0
- package/dist/assets/plugin-chatbot-Ck47EhDX.js +122 -0
- package/dist/assets/plugin-dashboard-DjEx8e5Y.js +6 -0
- package/dist/assets/plugin-form-CLDvL0up.js +1 -0
- package/dist/assets/plugin-gantt-CrVrxVdi.js +63 -0
- package/dist/assets/plugin-grid-D2rmQEW_.js +11 -0
- package/dist/assets/plugin-kanban-BUNHFfIC.js +1 -0
- package/dist/assets/plugin-map-y-7RQQC5.js +1 -0
- package/dist/assets/{plugin-markdown-D1nTQc1T.js → plugin-markdown-BOkHcir_.js} +1 -1
- package/dist/assets/plugin-report-mT3jpna0.js +59 -0
- package/dist/assets/plugin-timeline-B1EF83D3.js +1 -0
- package/dist/assets/plugin-tree-MTHUt3_S.js +1 -0
- package/dist/assets/plugin-view-DHJI-ahf.js +1 -0
- package/dist/assets/plugins-views-CfkgqD30.js +3 -0
- package/dist/assets/{pt-BR-2KtO5Js1.js → pt-BR-D80_lPYF.js} +1 -1
- package/dist/assets/{pt-Bet5OOQf.js → pt-CJJ1RmXd.js} +1 -1
- package/dist/assets/{ro-37U6sgzi.js → ro-EuFb2TCj.js} +1 -1
- package/dist/assets/{ru-CyuAY-5E.js → ru-CMaVQScp.js} +1 -1
- package/dist/assets/{runtime-metadata-persistence-afAW-MeD.js → runtime-metadata-persistence-ClOTznqa.js} +1 -1
- package/dist/assets/{se-DeJabuC6.js → se-DsfdKLdF.js} +1 -1
- package/dist/assets/{sk-DWEpjfkR.js → sk-BNV9omI8.js} +1 -1
- package/dist/assets/{sl-4oSvNhIR.js → sl-DJS_nINU.js} +1 -1
- package/dist/assets/{sq-BjkBCaXW.js → sq-HEgjcbHe.js} +1 -1
- package/dist/assets/{sr-Dxm1DsRS.js → sr-CO0CFu4X.js} +1 -1
- package/dist/assets/{sr-Latn-Dawg6oP2.js → sr-Latn-eE1Idzey.js} +1 -1
- package/dist/assets/{src-C8NYjdVm.js → src-BU7L2v4J.js} +1 -1
- package/dist/assets/src-BUtIBFDA.js +1 -0
- package/dist/assets/src-C0eXlKtx.js +16 -0
- package/dist/assets/{studioEntry-nXQP3iL0.js → studioEntry-WeMfaSGn.js} +1 -1
- package/dist/assets/{submitRedirect-jK-cEIbP.js → submitRedirect-C2lfZSHt.js} +1 -1
- package/dist/assets/{sv-CROOGJGz.js → sv-5uTzgQT3.js} +1 -1
- package/dist/assets/{ta-BZnTmFI_.js → ta-BzgdkBZG.js} +1 -1
- package/dist/assets/{te-BN0v0x5t.js → te-Ct_pl7ZJ.js} +1 -1
- package/dist/assets/{th-CBjKhp_U.js → th-DouAlk0-.js} +1 -1
- package/dist/assets/{tr-x0Ne4N4H.js → tr-3XNBsI40.js} +1 -1
- package/dist/assets/types-zod-DXpXw10W.js +1 -0
- package/dist/assets/{ug-sgzNhsKo.js → ug-B9n24h9G.js} +1 -1
- package/dist/assets/ui-components-D6cEVg0T.js +37 -0
- package/dist/assets/ui-layout-DgVDuPEM.js +1 -0
- package/dist/assets/{uk-o_DQ5VHJ.js → uk-DCAenByf.js} +1 -1
- package/dist/assets/use-book-data-CwRldFxP.js +1 -0
- package/dist/assets/{useActionModal-CSvbHkQ7.js → useActionModal-Blp4rhOk.js} +1 -1
- package/dist/assets/useCanAuthorMetadata-BxCMgFRf.js +1 -0
- package/dist/assets/useNavSelDeepLink-67Y4qCNO.js +1 -0
- package/dist/assets/useNavTargetLabel-BOJncjIb.js +1 -0
- package/dist/assets/{useOpenRecordList-B5-qaFUx.js → useOpenRecordList-BrwJFojQ.js} +1 -1
- package/dist/assets/{usePackageL10n-CMx66am-.js → usePackageL10n-Ci9uVkRZ.js} +1 -1
- package/dist/assets/{useSettingsLabel-Kkr2q0Oo.js → useSettingsLabel-CeMnMWsh.js} +1 -1
- package/dist/assets/{uz-Cyrl-DbtkQtz_.js → uz-Cyrl-JSeHEqu-.js} +1 -1
- package/dist/assets/{uz-Be41d4jl.js → uz-DT3s9bZS.js} +1 -1
- package/dist/assets/vendor-objectstack-DFqu45yM.js +138 -0
- package/dist/assets/{vi-84mZmklk.js → vi-D2p-h6bY.js} +1 -1
- package/dist/assets/{zh-CN-DD1reegJ.js → zh-CN-DHOKqAit.js} +1 -1
- package/dist/assets/{zh-HK-B05u30WI.js → zh-HK-D4iIPY7I.js} +1 -1
- package/dist/assets/{zh-TW-Bb-WimPD.js → zh-TW-gORQ_tZh.js} +1 -1
- package/dist/chunk-membership.json +100 -90
- package/dist/eager-closure.json +110 -110
- package/dist/index.html +4 -4
- package/dist/sdui.manifest.json +520 -60
- package/package.json +1 -1
- package/dist/assets/AppDocsIndex-F4zDq2zz.js +0 -1
- package/dist/assets/ApprovalsInboxPage-DrEUmaDb.js +0 -1
- package/dist/assets/AuditLogPage-CoghqsZb.js +0 -1
- package/dist/assets/DashboardView-CGC-_Om8.js +0 -1
- package/dist/assets/DocPage-CIZE5kdj.js +0 -1
- package/dist/assets/DocsSlug-DXdFdwlS.js +0 -1
- package/dist/assets/ExpressionProvider-DZfMwyMs.js +0 -1
- package/dist/assets/MarketplacePackagePage-C7NOu2Ir.js +0 -4
- package/dist/assets/PageView-CVLgCRSF.js +0 -1
- package/dist/assets/RecordDetailView-DQKydU7X.js +0 -3
- package/dist/assets/RecordFormPage-BTjwxJIA.js +0 -1
- package/dist/assets/ReportDefaultInspector-DdsQAkd7.js +0 -1
- package/dist/assets/SchemaForm-C8X1ve4p.js +0 -3
- package/dist/assets/SearchResultsPage-Jwhqsdyo.js +0 -1
- package/dist/assets/SettingsView-D8SMKdrc.js +0 -1
- package/dist/assets/appRoute-DbnWDEa1.js +0 -1
- package/dist/assets/data-adapter-DMbe6Njk.js +0 -1
- package/dist/assets/default-inspector-registry-CpL3fFhl.js +0 -1
- package/dist/assets/dist-BXrEV1ag.js +0 -13
- package/dist/assets/en-AU-C6x7mDhH.js +0 -1
- package/dist/assets/en-GB-0-nho2eK.js +0 -1
- package/dist/assets/en-IE-2fC3BkfV.js +0 -1
- package/dist/assets/en-IN-C1QcFhxn.js +0 -1
- package/dist/assets/en-NZ-C80ptZT7.js +0 -1
- package/dist/assets/en-ZA-ByZDrjeb.js +0 -1
- package/dist/assets/framework-DcWkeiND.js +0 -35
- package/dist/assets/getIcon-BEVyC4y3.js +0 -1
- package/dist/assets/i18n-CEKxYdmD.js +0 -9
- package/dist/assets/i18n-locale-ar-DN7sl3GF.js +0 -4
- package/dist/assets/i18n-locale-de-C40JErvb.js +0 -4
- package/dist/assets/i18n-locale-en-CITPDIHy.js +0 -4
- package/dist/assets/i18n-locale-es-C8DdWN6c.js +0 -4
- package/dist/assets/i18n-locale-fr-COIdEZZl.js +0 -4
- package/dist/assets/i18n-locale-ja-DYF_rU_s.js +0 -4
- package/dist/assets/i18n-locale-ko-B-ODYAtX.js +0 -4
- package/dist/assets/i18n-locale-pt-CK1SyBIm.js +0 -4
- package/dist/assets/i18n-locale-ru-jLzvShMO.js +0 -4
- package/dist/assets/i18n-locale-zh-Bf9Gbbvl.js +0 -4
- package/dist/assets/index-CLyvpiGc.css +0 -2
- package/dist/assets/index-CfnfGw5W.js +0 -20
- package/dist/assets/isSameWeek-DWYeNyh8.js +0 -1
- package/dist/assets/mermaid-GHXKKRXX-DVLc_uym.js +0 -1
- package/dist/assets/metadata-admin-CybaOCdO.js +0 -9
- package/dist/assets/nav-selection-Dzm_mA3C.js +0 -1
- package/dist/assets/plugin-calendar-CKRBcML7.js +0 -1
- package/dist/assets/plugin-charts-DGTJxXCB.js +0 -7
- package/dist/assets/plugin-chatbot-DwtwNA-y.js +0 -122
- package/dist/assets/plugin-dashboard-C1AYKmGX.js +0 -6
- package/dist/assets/plugin-form-CV8ZY04-.js +0 -1
- package/dist/assets/plugin-gantt-BRIb2_8G.js +0 -63
- package/dist/assets/plugin-grid-C9h7mRVv.js +0 -11
- package/dist/assets/plugin-kanban-BcJ0Dhys.js +0 -1
- package/dist/assets/plugin-map-D24ZUOUj.js +0 -1
- package/dist/assets/plugin-report-BfGintAq.js +0 -59
- package/dist/assets/plugin-timeline-CbBRq_qt.js +0 -1
- package/dist/assets/plugin-tree-BNX2A5J5.js +0 -1
- package/dist/assets/plugin-view-DzWQWYyH.js +0 -1
- package/dist/assets/plugins-views-DraK4xz0.js +0 -3
- package/dist/assets/src-B8lv0plz.js +0 -18
- package/dist/assets/src-DoDvT77T.js +0 -1
- package/dist/assets/types-zod-Y2RwUUeJ.js +0 -1
- package/dist/assets/ui-components-BTB1NkUW.js +0 -37
- package/dist/assets/ui-layout-bZfafwJa.js +0 -1
- package/dist/assets/use-book-data-C3eyZJSG.js +0 -1
- package/dist/assets/vendor-objectstack-XuWC71M9.js +0 -266
- package/dist/assets/vendor-zod-CHLW1iCr.js +0 -64
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import{o as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{h as n,t as r,v as i}from"./vendor-react-BggL7APJ.js";import{An as a,Ar as o,Dn as s,Mn as c,Nn as l,Nr as u,Pr as d,dt as f,kn as p,kr as ee,mt as te,pt as m,vi as ne}from"./ui-components-BTB1NkUW.js";import{$n as re,An as ie,Dn as h,Dt as ae,Hn as g,In as oe,Jn as _,Ln as v,Lt as y,Mn as se,Nn as b,Pn as x,Qn as ce,R as le,Rn as ue,Tn as de,Ui as S,Un as fe,Wi as pe,Xn as me,Yn as he,Zn as ge,_n as _e,dn as ve,ft as ye,g as be,ht as xe,ji as Se,jn as Ce,kn as we,kt as Te,l as Ee,qi as De,vn as Oe,wn as ke,xn as Ae}from"./framework-DcWkeiND.js";import{A as je,C as Me,D as C,E as Ne,O as Pe,S as Fe,T as Ie,_ as w,a as Le,b as Re,c as ze,d as Be,f as T,g as Ve,h as He,i as Ue,j as We,k as E,l as Ge,m as Ke,n as qe,o as Je,p as D,r as O,s as Ye,t as Xe,u as k,v as Ze,w as Qe,x as $e,y as et}from"./vendor-charts-CHNpuhlO.js";import{g as A,m as tt,o as j,p as nt,t as rt,w as M}from"./i18n-runtime-CTgAQF4N.js";import{t as N}from"./vendor-icon-arrow-up-right-BQsRTUUI.js";import{t as P}from"./vendor-icon-circle-alert-D1XTr_X9.js";import{t as F}from"./vendor-icon-inbox-ByVQ4l4S.js";var I=e(i(),1),L=r(),R=(...e)=>e.filter(Boolean).join(` `),z={light:``,dark:`.dark`},B=I.createContext(null),V=280;function H(){let e=I.useContext(B);if(!e)throw Error(`useChart must be used within a <ChartContainer />`);return e}function U({id:e,className:t,children:n,config:r,disableSettleRemount:i,style:a,...o}){let s=I.useId(),c=`chart-${e||s.replace(/:/g,``)}`,l=I.useRef(null),[u,d]=I.useState(0);I.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:V},...p?{}:{minWidth:0},...a};return(0,L.jsx)(B.Provider,{value:{config:r},children:(0,L.jsxs)(`div`,{ref:l,"data-slot":`chart`,"data-chart":c,className:R(`block w-full h-[350px] text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground`,t),style:ee,...o,children:[(0,L.jsx)(it,{id:c,config:r}),(0,L.jsx)(We,{width:`100%`,height:`100%`,...f?{}:{minHeight:V},children:n},u)]})})}var it=({id:e,config:t})=>{let n=Object.entries(t).filter(([,e])=>e.theme||e.color);return n.length?(0,L.jsx)(`style`,{dangerouslySetInnerHTML:{__html:Object.entries(z).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},W=E;function at({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}=H(),ee=rt(),te=I.useMemo(()=>{if(i||!t?.length)return null;let[e]=t,n=`${f||e?.dataKey||e?.name||`value`}`,r=G(p,e,n),a=!f&&typeof o==`string`?p[o]?.label||o:r?.label;return s?(0,L.jsx)(`div`,{className:R(`font-medium`,c),children:s(a,t)}):a?(0,L.jsx)(`div`,{className:R(`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,L.jsxs)(`div`,{className:R(`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:te,(0,L.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=G(p,e,n),o=u||e.payload.fill||e.color;return(0,L.jsx)(`div`,{className:R(`[&>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,L.jsxs)(L.Fragment,{children:[i?.icon?(0,L.jsx)(i.icon,{}):!a&&(0,L.jsx)(`div`,{className:R(`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,L.jsxs)(`div`,{className:R(`flex flex-1 justify-between leading-none`,m?`items-end`:`items-center`),children:[(0,L.jsxs)(`div`,{className:`grid gap-1.5`,children:[m?te:null,(0,L.jsx)(`span`,{className:`text-muted-foreground`,children:i?.label||e.name})]}),e.value&&(0,L.jsx)(`span`,{className:`text-foreground font-mono font-medium tabular-nums`,children:e.value.toLocaleString(ee)})]})]})},e.dataKey)})})]})}var ot=je;function st({className:e,hideIcon:t=!1,payload:n,verticalAlign:r=`bottom`,nameKey:i}){let{config:a}=H();return n?.length?(0,L.jsx)(`div`,{className:R(`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=G(a,e,n);return(0,L.jsxs)(`div`,{className:R(`[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3`),children:[r?.icon&&!t?(0,L.jsx)(r.icon,{}):(0,L.jsx)(`div`,{className:`h-2 w-2 shrink-0 rounded-[2px] bg-(--color-bg)`,style:{"--color-bg":e.color}}),r?.label??e.value]},e.value)})}):null}function G(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 ct(e){return e?.[0]?.dataKey||`value`}function lt(e,t,n){if(!e)return null;let r=e.payload??e,i=r?.[t];if(i==null)return null;let a=ct(n);return{category:String(i),series:a,value:typeof r?.[a]==`number`?r[a]:void 0}}function ut(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:ct(t),value:typeof r==`number`?r:void 0}}function dt(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:ct(t),value:typeof n?.value==`number`?n.value:void 0}}var ft=new Set([`bar`,`column`,`horizontal-bar`,`line`,`area`,`pie`,`donut`,`funnel`,`radar`,`scatter`,`treemap`,`sankey`,`combo`]),pt=new Set([`gauge`,`solid-gauge`,`metric`,`kpi`,`bullet`]),mt=new Set([`table`,`pivot`]),ht=new Set([...ft,...pt,...mt]),gt=new Map([[`chart:bar`,`bar`],[`pie-chart`,`pie`],[`donut-chart`,`donut`],[`radar-chart`,`radar`],[`scatter-chart`,`scatter`]]),_t=`plugin-charts:`;function vt(e){if(!e)return;let t=e.startsWith(_t)?e.slice(14):e;return gt.get(t)}var 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,t){if(typeof e==`string`||K(e))return j(e,t)||void 0}function yt(e,t){if(!K(e))return;let n={},r=q(e.field);r&&(n.field=r);let i=q(e.format);i&&(n.format=i);let a=J(e.min);a!==void 0&&(n.min=a);let o=J(e.max);o!==void 0&&(n.max=o);let s=J(e.stepSize);s!==void 0&&s>0&&(n.stepSize=s),typeof e.showGridLines==`boolean`&&(n.showGridLines=e.showGridLines),typeof e.logarithmic==`boolean`&&(n.logarithmic=e.logarithmic);let c=q(e.position);(c===`left`||c===`right`||c===`top`||c===`bottom`)&&(n.position=c);let l=Y(e.title,t);return l&&(n.title=l),n}function bt(e,t){if(!K(e)){let t=q(e);return t?{dataKey:t}:void 0}let n=q(e.dataKey)??q(e.name);if(!n)return;let r={dataKey:n},i=Y(e.label,t);i&&(r.label=i);let a=q(e.chartType)??q(e.type);(a===`bar`||a===`line`||a===`area`)&&(r.chartType=a);let o=q(e.variant);(o===`comparison`||o===`current`||o===`primary`)&&(r.variant=o);let s=J(e.opacity);s!==void 0&&(r.opacity=s);let c=q(e.dashArray);c&&(r.dashArray=c);let l=q(e.stack);l&&(r.stack=l);let u=q(e.yAxis);(u===`left`||u===`right`)&&(r.yAxis=u);let d=q(e.color);return d&&(r.color=d),r}function xt(e,t){let n=t===`horizontal-bar`,r=t===`scatter`?1:2,i=(e??[]).slice(0,r),a=[],o=e=>n?e===`bottom`?`left`:e===`top`?`right`:void 0:e===`left`||e===`right`?e:void 0,s=e=>e===`left`?`right`:`left`,c=i.map(e=>o(e.position)),l=[];if(i.length===1)l.push(c[0]??`left`);else if(i.length===2){let[e,t]=c;e&&t?l.push(e,e===t?s(e):t):e?l.push(e,s(e)):t?l.push(s(t),t):l.push(`left`,`right`)}i.forEach((e,t)=>{e.position&&(c[t]?c[t]!==l[t]&&a.push({index:t,position:e.position,reason:`taken`,drawn:l[t]}):a.push({index:t,position:e.position,reason:`side`,drawn:l[t]}))});let u=r===1?l[0]:`right`,d={slotOf:l,notes:a,undrawn:(e??[]).slice(i.length).map((e,t)=>({index:i.length+t,boundTo:u}))};return l.forEach((e,t)=>{d[e]=t}),d}function St(e,t){if(!K(e))return{};let n={},r=q(e.type),i=q(e.chartType)??q(e.specType)??(r&&ht.has(r)?r:void 0)??vt(r);i&&ft.has(i)&&(n.chartType=i);let a=e.xAxis,o=yt(a,t);o&&Object.keys(o).some(e=>e!==`field`)&&(n.xAxis=o);let s=q(e.xAxisKey)??o?.field??q(a);s&&(n.xAxisKey=s);let c=(Array.isArray(e.yAxis)?e.yAxis:e.yAxis===void 0?[]:[e.yAxis]).map(e=>yt(e,t)??(q(e)?{field:q(e)}:void 0)).filter(e=>!!e);c.length&&(n.yAxes=c);let l=(Array.isArray(e.series)?e.series:Array.isArray(e.categories)?e.categories:void 0)?.map(e=>bt(e,t)).filter(e=>!!e);if(!l?.length){let e=xt(c,i),t=[...e.slotOf,...e.undrawn.map(e=>e.boundTo)],n=c.map((e,n)=>({a:e,slot:t[n],i:n})).filter(({a:e})=>e.field).map(({a:e,slot:t,i:n})=>({dataKey:e.field,...e.title?{label:e.title}:{},...t===`right`||n>0?{yAxis:t}:{}}));n.length&&(l=n)}l?.length&&(n.series=l),typeof e.showLegend==`boolean`&&(n.showLegend=e.showLegend),typeof e.showDataLabels==`boolean`&&(n.showDataLabels=e.showDataLabels);let u=Y(e.title,t);u&&(n.title=u);let d=Y(e.subtitle,t);d&&(n.subtitle=d);let f=Y(e.description,t);f&&(n.description=f);let p=J(e.height);return p!==void 0&&p>0&&(n.height=p),Array.isArray(e.annotations)&&e.annotations.length&&(n.annotations=e.annotations.filter(K)),K(e.interaction)&&(n.interaction=e.interaction),n}function Ct(e){if(e===`bar`||e===`column`)return`bar`;if(e===`line`)return`line`;if(e===`area`)return`area`}function wt(e,t){if(e===`combo`)return`combo`;let n=Ct(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 Tt(e,t){if(!e)return;let n=e.includes(`%`),r=/^([$£€¥₹])/.exec(e),i=e.includes(`,`),a=/\.(0+)/.exec(e)?.[1].length??0,o={$:`USD`,"£":`GBP`,"€":`EUR`,"¥":`CNY`,"₹":`INR`};if(!n&&!r&&!i&&a===0)return;let s={minimumFractionDigits:a,maximumFractionDigits:a,useGrouping:i};return n?s.style=`percent`:r&&(s.style=`currency`,s.currency=o[r[1]]??`USD`),e=>{let n=typeof e==`number`?e:Number(e);if(!Number.isFinite(n))return e==null?``:String(e);try{return new Intl.NumberFormat(t,s).format(n)}catch{return String(n)}}}var Et=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>Et)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 Ot(e){if(!e)return;let{min:t,max:n}=e;if(t!==void 0||n!==void 0)return[t??`auto`,n??`auto`]}var kt=t({default:()=>jn}),At=`hsl(var(--primary))`,jt={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=>jt[e]||e,Mt=(e,t)=>{let n=e?.variant===`comparison`,r=t===`area`||t===`radar`,i=typeof e?.opacity==`number`?e.opacity:void 0;return{strokeOpacity:i??(n?t===`line`?.5:r?.6:void 0:void 0),fillOpacity:i??(n?t===`bar`?.4:r?.2:.5:void 0),strokeDasharray:e?.dashArray??(n&&(t===`line`||r)?`4 4`:void 0)}},Nt=(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)}},Pt=e=>{if(e&&typeof e==`object`&&`nativeEvent`in e)return e.nativeEvent},Ft=e=>{for(let t=e.length-1;t>=0;--t){let n=Pt(e[t]);if(n!==void 0)return n}},It=(e,t)=>{if(e==null)return;let n=t.find(t=>String(t.dataKey)===e);return typeof n?.label==`string`?n.label:void 0},Lt=new Set([`bar`,`horizontal-bar`,`line`,`area`,`pie`,`donut`,`radar`,`funnel`,`combo`]),Rt=5,zt=12,Bt=Math.ceil(Math.sqrt(400/Math.PI)),Vt={left:Bt,right:Bt},Ht={top:Bt,bottom:Bt},Ut={angle:-90,position:`insideLeft`},Wt={position:`insideBottom`,offset:-4},Gt={position:`insideTop`,offset:-4};function Kt(e){return e===`top`?Gt:Wt}var qt={angle:90,position:`insideRight`};function Jt(e){return e===`right`?qt:Ut}function Yt(e,t){return e?t?e===`left`||e===`right`?{down:e}:{refused:e}:e===`top`||e===`bottom`?{across:e}:{refused:e}:{}}function Xt(e,t){return e?(0,L.jsxs)(`p`,{role:`note`,"data-chart-note":`x-axis-position`,className:`px-1 text-xs text-muted-foreground`,children:[(0,L.jsx)(`code`,{className:`font-mono`,children:`xAxis.position`}),` is`,` `,(0,L.jsx)(`code`,{className:`font-mono`,children:e}),` —`,` `,t?(0,L.jsx)(L.Fragment,{children:`this chart's categories run down its side, so its x axis sits on the left or the right. It is drawn on the left.`}):(0,L.jsx)(L.Fragment,{children:`this chart's x axis runs across it, so it sits at the top or the bottom. It is drawn at the bottom.`})]}):null}function Zt(e,t){return t?e===`left`?`bottom`:`top`:e}function Z(e){return e===`left`||e===`right`?`on the ${e}`:`at the ${e}`}var Qt={},$t={yAxisId:`left`},en={xAxisId:`left`};function tn(e,t){return e?t?en:$t:Qt}function nn(e,t){if(e.notes.length===0)return null;let n=t?`this chart's value axes run across it, so each sits at the bottom or the top.`:`this chart's value axes run up its side, so each sits on the left or the right.`;return an(...e.notes.map(e=>{let r=Z(Zt(e.drawn,t));return(0,L.jsxs)(`p`,{role:`note`,"data-chart-note":`y-axis-position`,className:`px-1 text-xs text-muted-foreground`,children:[(0,L.jsx)(`code`,{className:`font-mono`,children:`yAxis[${e.index}].position`}),` is`,` `,(0,L.jsx)(`code`,{className:`font-mono`,children:e.position}),` —`,` `,e.reason===`side`?(0,L.jsxs)(L.Fragment,{children:[n,` It is drawn `,r,`.`]}):(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`code`,{className:`font-mono`,children:`yAxis[0]`}),` already sits `,Z(e.position),`, so this axis is drawn `,r,`.`]})]},e.index)}))}function rn(e,t,n){if(e.undrawn.length===0)return null;let r=e.slotOf.length===1,i=n?`one at the bottom and one at the top`:`one on each side`;return an(...e.undrawn.map(a=>{let o=e[a.boundTo];if(r)return(0,L.jsxs)(`p`,{role:`note`,"data-chart-note":`y-axis-undrawn`,className:`px-1 text-xs text-muted-foreground`,children:[(0,L.jsx)(`code`,{className:`font-mono`,children:`yAxis[${a.index}]`}),` is not drawn — this chart draws one value axis`,o===void 0?null:(0,L.jsxs)(L.Fragment,{children:[`, `,(0,L.jsx)(`code`,{className:`font-mono`,children:`yAxis[${o}]`})]}),`.`]},a.index);let s=t?.[a.index]?.field;return(0,L.jsxs)(`p`,{role:`note`,"data-chart-note":`y-axis-undrawn`,className:`px-1 text-xs text-muted-foreground`,children:[(0,L.jsx)(`code`,{className:`font-mono`,children:`yAxis[${a.index}]`}),` is not drawn — this chart draws at most two value axes, `,i,`.`,s?(0,L.jsxs)(L.Fragment,{children:[` `,`When the chart declares neither `,(0,L.jsx)(`code`,{className:`font-mono`,children:`series`}),` nor`,` `,(0,L.jsx)(`code`,{className:`font-mono`,children:`categories`}),`, its field `,(0,L.jsx)(`code`,{className:`font-mono`,children:s}),` is plotted against the axis `,Z(Zt(a.boundTo,n)),o===void 0?null:(0,L.jsxs)(L.Fragment,{children:[`, `,(0,L.jsx)(`code`,{className:`font-mono`,children:`yAxis[${o}]`})]}),`.`]}):null]},a.index)}))}function an(...e){let t=e.filter(e=>e!=null&&e!==!1);return t.length<=1?t[0]??null:(0,L.jsx)(L.Fragment,{children:t.map((e,t)=>(0,L.jsx)(I.Fragment,{children:e},t))})}function on(e,t,n){if(!e)return{};let r=Ot(e),i=Dt(e,t);return{...i?{ticks:i}:{},...r?{domain:r}:{},...r?{allowDataOverflow:!0}:{},...e.logarithmic?{scale:`log`,domain:r??[1,`auto`]}:{},...e.title?{label:{value:e.title,...n}}:{}}}function sn(e){let{x:t,y:n,width:r,height:i,name:a,fill:o}=e;return r<=0||i<=0?null:(0,L.jsxs)(`g`,{children:[(0,L.jsx)(`rect`,{x:t,y:n,width:r,height:i,fill:o,stroke:`hsl(var(--background))`,strokeWidth:2}),r>48&&i>18?(0,L.jsx)(`text`,{x:t+6,y:n+18,fill:`#fff`,fontSize:12,className:`pointer-events-none`,children:a}):null]})}function cn({title:e,subtitle:t,children:n}){return!e&&!t?(0,L.jsx)(L.Fragment,{children:n}):(0,L.jsxs)(`div`,{className:`flex h-full w-full flex-col`,children:[(0,L.jsxs)(`div`,{className:`mb-2 shrink-0`,children:[e?(0,L.jsx)(`div`,{className:`text-sm font-medium leading-tight text-foreground`,children:e}):null,t?(0,L.jsx)(`div`,{className:`text-xs leading-tight text-muted-foreground`,children:t}):null]}),(0,L.jsx)(`div`,{className:`min-h-0 flex-1`,children:n})]})}function ln({note:e,children:t}){return e?(0,L.jsxs)(`div`,{className:`flex h-full w-full flex-col`,children:[(0,L.jsx)(`div`,{className:`min-h-0 flex-1`,children:t}),(0,L.jsx)(`div`,{className:`mt-1 shrink-0`,children:e})]}):(0,L.jsx)(L.Fragment,{children:t})}function un(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 dn({dataKey:e,className:t}){return(0,L.jsxs)(Q,{code:`no-positive-magnitude`,className:t,children:[`This chart has nothing to size: no row's`,` `,(0,L.jsx)(`code`,{className:`font-mono`,children:e}),` is above zero.`]})}function fn(e,t,n){let r=t-e;return r<=0?null:(0,L.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,L.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 pn(e){return e!=null&&Number.isFinite(Number(e))}function mn(e,t,n){let r=0;for(let i of e){let e=i;pn(e?.[t])&&pn(e?.[n])&&(r+=1)}return{plottable:r,total:e.length}}function hn({xKey:e,yKey:t,className:n}){return(0,L.jsxs)(Q,{code:`no-plottable-points`,className:n,children:[`This chart has nothing to place: no row carries a number for both`,` `,(0,L.jsx)(`code`,{className:`font-mono`,children:e}),` and`,` `,(0,L.jsx)(`code`,{className:`font-mono`,children:t}),`.`]})}function gn(e){return typeof e==`boolean`?!1:Array.isArray(e)?_n(e[0])&&_n(e[1]):_n(e)}function _n(e){return typeof e==`number`||e instanceof Number||typeof e==`string`||e instanceof Date?Number.isFinite(Number(e)):!1}function vn(e){let t=e=>typeof e==`number`&&Number.isFinite(e);return t(e?.min)&&t(e?.max)||t(e?.stepSize)}function yn(e,t){return e.some(e=>gn(e?.[t]))}function bn(e,t,n){let r=t[n];if(!r?.stack)return`none`;let i=wt(e,t),a=i===`combo`?r.chartType||Ct(e)||(n===0?`bar`:`line`):i;return a===`line`?`none`:a===`area`?`area`:`bar`}function xn({keys:e,total:t,className:n}){return(0,L.jsxs)(Q,{code:`no-numeric-value`,className:n,children:[`This chart has no scale to draw on:`,` `,t===1?`its only row has no`:`none of the ${t} rows has a`,` numeric value for`,` `,e.map((e,t)=>(0,L.jsxs)(I.Fragment,{children:[t>0?` or `:``,(0,L.jsx)(`code`,{className:`font-mono`,children:e})]},`${t}-${e}`)),`.`]})}function Sn({seriesKeys:e,className:t}){let n=A();return(0,L.jsxs)(Q,{code:`scatter-multi-series`,className:t,children:[n(`chart.scatterOneMeasure`,`A scatter plots one measure. Keep exactly one series:`),` `,e.map((e,t)=>(0,L.jsxs)(I.Fragment,{children:[t>0?`, `:``,(0,L.jsx)(`code`,{className:`font-mono`,children:e})]},`${t}-${e}`))]})}function Cn(e,t,n,r){let i=t-e;return i<=0?null:(0,L.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,L.jsx)(`code`,{className:`font-mono`,children:n}),` and`,` `,(0,L.jsx)(`code`,{className:`font-mono`,children:r}),` — this chart plots by position, so`,` `,i===1?`that point is`:`those points are`,` not drawn.`]})}function wn({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:te,subtitle:m,description:ne,height:re,annotations:ie,interaction:h}){let ae=e===`column`?`bar`:e,g=wt(ae,i),oe=Ct(ae),_=Array.isArray(t)?t:[],v=rt(),y=u===!1?{isAnimationActive:!1}:{},b={...u===!1?{disableSettleRemount:!0}:{},...re?{style:{height:re}}:{},...ne?{role:`img`,"aria-label":ne}:{}},[x,ce]=I.useState(!1),le=I.useRef(null),ue=I.useCallback(e=>(...t)=>{let n=Ft(t);n!==void 0&&(le.current={gesture:n,dataKey:String(e.dataKey)})},[]),de=l?e=>({onClick:ue(e)}):()=>({}),S=I.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=le.current;le.current=null;let c=Pt(t),u=s!=null&&c!==void 0&&s.gesture===c;if(n&&!u)return;let d=u?s.dataKey:Nt(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:It(d,i),value:typeof f==`number`?f:void 0})},[l,_,i]),fe=I.useCallback((e,t)=>{S(e,t,!1)},[S]),pe=I.useCallback((e,t)=>{S(e,t,!0)},[S]),me=I.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:It(n,i),value:typeof e.payload?.[n]==`number`?e.payload[n]:void 0})},[l,r,i]),he=l?{onClick:fe,style:{cursor:`pointer`}}:{},ge=l?{onClick:pe}:{},ye=l?e=>({...de(e),cursor:`pointer`}):()=>({}),be=l?{onClick:me,style:{cursor:`pointer`}}:{},xe=I.useCallback((e,t,n)=>s&&s[e==null?``:String(e)]||n[t%n.length],[s]),Se=I.useCallback(e=>{if(!l)return;let t=lt(e,r,i);t&&l(t)},[l,r,i]),Ce=I.useCallback(e=>{if(!l)return;let t=ut(e,i);t&&l(t)},[l,i]),Te=I.useCallback(e=>{if(!l)return;let t=dt(e,i);t&&l(t)},[l,i]),Ee=l?{onClick:Se,cursor:`pointer`}:{},De=l?{onClick:Ce,style:{cursor:`pointer`}}:{},ke=l?{onClick:Te,style:{cursor:`pointer`}}:{};I.useEffect(()=>{let e=()=>ce(window.innerWidth<640);return e(),window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[]);let Ae={bar:k,"horizontal-bar":k,line:Be,area:Ue,pie:Ge,donut:Ge,radar:Je,scatter:Le,funnel:Xe,combo:O,treemap:k,sankey:k}[g]||k,je=I.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=Oe(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(v,{month:`short`,day:`numeric`}):e.toLocaleDateString(v,{month:`short`,year:`numeric`})}catch{return _e(i)?ve(e):e.toISOString().slice(0,10)}}}return x&&i.length>8?i.slice(0,8)+`…`:i},[_,r,x,n,v]),We=I.useMemo(()=>_.some(e=>String(e[r]||``).length>5),[_,r]),A=_.length>0&&_.length<=Rt,tt=(A||!x)&&We,j=()=>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))`],nt=I.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(v,{notation:`compact`,maximumFractionDigits:1}).format(t)}catch{return String(t)}},[v]),M=f?.[0],N=g===`horizontal-bar`,P=xt(f,g),F=P.left===void 0?void 0:f?.[P.left],R=P.right===void 0?void 0:f?.[P.right],z=!!F&&!!R,B=g===`combo`||z,V=P.slotOf[0]??`left`,H=an(nn(P,N),rn(P,f,N)),it=e=>z?e.yAxis===`right`?R:F:M,G=I.useMemo(()=>Tt(d?.format,v)??je,[d?.format,v,je]),ct=I.useMemo(()=>!A||!tt?G:e=>{let t=String(G(e)??``);return t.length>zt?`${t.slice(0,11)}…`:t},[A,tt,G]),ht=I.useMemo(()=>Tt(M?.format,v)??nt,[M?.format,v,nt]),gt=I.useMemo(()=>Tt(F?.format,v)??nt,[F?.format,v,nt]),_t=I.useMemo(()=>Tt(R?.format,v)??nt,[R?.format,v,nt]),vt=I.useCallback(e=>{let t=i.filter(t=>!z||(t.yAxis===`right`?`right`:`left`)===e).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,z]),K=I.useCallback((e,t=`left`,n)=>on(e,vt(t),n??Jt(t)),[vt]),q=M?.showGridLines!==!1,J={vertical:d?.showGridLines===!0,horizontal:q},{across:Y,down:yt,refused:bt}=Yt(d?.position,N),St=Xt(bt,N),Et=p!==!1,Dt=I.useMemo(()=>{if(!Array.isArray(ie)||ie.length===0)return null;let e={solid:void 0,dashed:`4 4`,dotted:`1 4`},t=tn(B,N);return ie.map((n,r)=>{let i=n?.axis===`x`,a=X(String(n?.color||`hsl(var(--muted-foreground))`)),o=e[String(n?.style??`dashed`)],s=typeof n?.label==`string`?n.label:void 0,c=s?{label:{value:s,position:`insideTopRight`,fill:a,fontSize:11}}:{};if(n?.type===`region`){let e=i?{x1:n.value,x2:n.endValue}:{y1:n.value,y2:n.endValue};return(0,L.jsx)(et,{...e,...t,fill:a,fillOpacity:.12,stroke:a,strokeOpacity:.35,...c},`ann-${r}`)}return(0,L.jsx)(Re,{...i?{x:n?.value}:{y:n?.value},...t,stroke:a,strokeDasharray:o,...c},`ann-${r}`)})},[ie,B,N]),Ot=h?.tooltips!==!1,kt=h?.brush===!0?(0,L.jsx)($e,{dataKey:r,height:24,travellerWidth:8,stroke:`hsl(var(--muted-foreground))`}):null,jt=e=>ee?(0,L.jsx)(C,{position:`top`,className:`fill-foreground`,fontSize:11,...e?{formatter:e}:{}}):null,Lt=I.useMemo(()=>({tickLine:!1,tickMargin:10,axisLine:!1,...A?{interval:0}:{interval:`preserveStartEnd`,minTickGap:0},tickFormatter:ct,...Y?{orientation:Y}:{},...d?.title?{label:{value:d.title,...Kt(Y)}}:{},...tt&&{angle:Y===`top`?35:-35,textAnchor:`end`,height:60}}),[A,tt,ct,d?.title,Y]);if(g&&pt.has(g)){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,L.jsx)(`div`,{className:a,"data-testid":`advanced-chart-single-value`,children:(0,L.jsxs)(`div`,{className:`flex flex-col gap-1 py-4`,children:[(0,L.jsx)(`span`,{className:`text-3xl font-semibold tabular-nums`,children:Number.isFinite(r)?new Intl.NumberFormat(v).format(r):String(t??`—`)}),(0,L.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:String(o)})]})})}if(g&&mt.has(g))return(0,L.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 “`,g,`” is tabular — render it with the data-table / pivot components; a chart block draws series charts.`]});if(g&&!ft.has(g))return(0,L.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 “`,g,`” is not a spec chart type — nothing was drawn.`]});if(g===`pie`||g===`donut`){let e=g===`donut`?`52%`:0,t=j(),o=i[0]?.dataKey||`value`,s=un(_,o);if(s.total>0&&s.sizable===0)return(0,L.jsx)(dn,{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:xe(i,n,t)})});let l=(0,L.jsx)(U,{config:c,className:a,...b,children:(0,L.jsxs)(Ge,{children:[(0,L.jsx)(W,{cursor:!1,content:(0,L.jsx)(at,{hideLabel:!0})}),(0,L.jsx)(Me,{data:_,dataKey:o,nameKey:r||`name`,innerRadius:e,strokeWidth:5,paddingAngle:2,outerRadius:`85%`,...y,...be,children:_.map((e,n)=>{let i=xe(e?.[r],n,t);return(0,L.jsx)(Pe,{fill:X(i)},`cell-${n}`)})}),Et?(0,L.jsx)(ot,{verticalAlign:`bottom`,wrapperStyle:{fontSize:x?`11px`:`12px`,paddingTop:`8px`},content:(0,L.jsx)(st,{nameKey:r,className:`flex-wrap`})}):null]})});return(0,L.jsx)(ln,{note:fn(s.sizable,s.total,o),children:l})}if(g===`funnel`){let e=i[0]?.dataKey||`value`,t=j(),o=un(_,e);if(o.total>0&&o.sizable===0)return(0,L.jsx)(dn,{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=we(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,L.jsx)(U,{config:n,className:a,...b,children:(0,L.jsxs)(Xe,{children:[(0,L.jsx)(W,{content:(0,L.jsx)(at,{})}),(0,L.jsxs)(qe,{dataKey:e,data:f,nameKey:r,...y,...u,children:[(0,L.jsx)(C,{position:`right`,fill:`hsl(var(--foreground))`,stroke:`none`,dataKey:r}),f.map((e,n)=>(0,L.jsx)(Pe,{fill:X(t[n%t.length])},`funnel-cell-${n}`))]})]})});return(0,L.jsx)(ln,{note:fn(o.sizable,o.total,e),children:p})}if(g===`treemap`){let e=i[0]?.dataKey||`value`,t=j(),o=un(_,e);if(o.total>0&&o.sizable===0)return(0,L.jsx)(dn,{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,L.jsx)(U,{config:n,className:a,...b,children:(0,L.jsx)(ze,{data:s,dataKey:`size`,nameKey:`name`,...y,content:(0,L.jsx)(sn,{}),...De,children:(0,L.jsx)(E,{})})});return(0,L.jsx)(ln,{note:fn(o.sizable,o.total,e),children:c})}if(g===`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,L.jsx)(`div`,{className:a}):(0,L.jsxs)(Q,{code:`no-positive-flow`,className:a,children:[`This chart has no flow to draw: no row's`,` `,(0,L.jsx)(`code`,{className:`font-mono`,children:e}),` is above zero.`]});let l=_.length-o.length;return(0,L.jsx)(ln,{note:l>0?(0,L.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,L.jsx)(`code`,{className:`font-mono`,children:e}),` above zero, which a flow cannot draw.`]}):null,children:(0,L.jsx)(U,{config:n,className:a,...b,children:(0,L.jsx)(Ye,{data:{nodes:s,links:c},nodePadding:24,link:{stroke:`hsl(var(--muted-foreground))`,strokeOpacity:.25},node:{fill:`hsl(var(--chart-1))`},...ke,children:(0,L.jsx)(E,{})})})})}if(g===`radar`)return(0,L.jsx)(U,{config:n,className:a,...b,children:(0,L.jsxs)(Je,{data:_,children:[(0,L.jsx)(Ne,{}),(0,L.jsx)(Qe,{dataKey:r}),(0,L.jsx)(Ie,{}),(0,L.jsx)(W,{content:(0,L.jsx)(at,{})}),(0,L.jsx)(ot,{content:(0,L.jsx)(st,{}),...x&&{verticalAlign:`bottom`,wrapperStyle:{fontSize:`11px`,paddingTop:`8px`}}}),i.map(e=>{let t=X(n[e.dataKey]?.color||At),r=Mt(e,`radar`);return(0,L.jsx)(Fe,{dataKey:e.dataKey,stroke:t,fill:t,fillOpacity:r.fillOpacity??.6,strokeOpacity:r.strokeOpacity,strokeDasharray:r.strokeDasharray,...y},e.dataKey)})]})});if(g===`scatter`){if(i.length>1)return(0,L.jsx)(Sn,{seriesKeys:i.map(e=>String(e.dataKey)),className:a});let e=i[0]?.dataKey||`value`,t=mn(_,r,e),o=_.map(e=>Number(e?.[r])).filter(e=>Number.isFinite(e)),s=Tt(d?.format,v);if(t.total>0&&t.plottable===0)return(0,L.jsx)(hn,{xKey:r,yKey:e,className:a});if(t.total>0){let n=[[r,d],[e,f?.[0]]].filter(([e,t])=>!vn(t)&&!yn(_,e)).map(([e])=>e).filter((e,t,n)=>n.indexOf(e)===t);if(n.length>0)return(0,L.jsx)(xn,{keys:n,total:t.total,className:a})}return(0,L.jsx)(ln,{note:an(Cn(t.plottable,t.total,r,e),St,H),children:(0,L.jsx)(U,{config:n,className:a,...b,children:(0,L.jsxs)(Le,{children:[(0,L.jsx)(Ze,{...J}),(0,L.jsx)(D,{type:`number`,dataKey:r,name:String(n[r]?.label||r),tickLine:!1,axisLine:!1,minTickGap:x?32:48,padding:Vt,...s?{tickFormatter:s}:{},...Y?{orientation:Y}:{},...on(d,o,Kt(Y))}),(0,L.jsx)(T,{type:`number`,dataKey:e,name:String(n[i[0]?.dataKey]?.label||i[0]?.dataKey),tickLine:!1,axisLine:!1,tickFormatter:ht,width:48,padding:Ht,...V===`right`?{orientation:`right`}:{},...K(M,V)}),(0,L.jsx)(W,{content:(0,L.jsx)(at,{})}),(0,L.jsx)(ot,{content:(0,L.jsx)(st,{nameKey:e}),...x&&{verticalAlign:`bottom`,wrapperStyle:{fontSize:`11px`,paddingTop:`8px`}}}),i.map((e,t)=>{let r=j(),i=X(n[e.dataKey]?.color||r[t%r.length]),a=Mt(e,`scatter`);return(0,L.jsx)(Ke,{name:n[e.dataKey]?.label||e.dataKey,data:_,fill:i,fillOpacity:a.fillOpacity,strokeOpacity:a.strokeOpacity,strokeDasharray:a.strokeDasharray,...y,...Ee},e.dataKey)})]})})})}if(g===`combo`)return(0,L.jsx)(cn,{title:te,subtitle:m,children:(0,L.jsx)(ln,{note:an(St,H),children:(0,L.jsx)(U,{config:n,className:a,...b,children:(0,L.jsxs)(O,{data:_,...ge,children:[(0,L.jsx)(Ze,{...J,...tn(B,N)}),(0,L.jsx)(D,{dataKey:r,...Lt}),(0,L.jsx)(T,{yAxisId:`left`,tickLine:!1,axisLine:!1,tickFormatter:gt,width:48,...K(F,`left`)}),(0,L.jsx)(T,{yAxisId:`right`,orientation:`right`,tickLine:!1,axisLine:!1,tickFormatter:_t,width:48,...K(R,`right`)}),Ot?(0,L.jsx)(W,{content:(0,L.jsx)(at,{})}):null,Et?(0,L.jsx)(ot,{content:(0,L.jsx)(st,{}),...x&&{verticalAlign:`bottom`,wrapperStyle:{fontSize:`11px`,paddingTop:`8px`}}}):null,Dt,kt,i.map((e,t)=>{let r=X(n[e.dataKey]?.color||At),i=e.chartType||oe||(t===0?`bar`:`line`),a=e.yAxis===`right`||e.yAxis===`left`?e.yAxis:oe||i===`bar`?`left`:`right`,o=Mt(e,i),s=e.stack?{stackId:String(e.stack)}:{},c=Tt((a===`right`?R:F)?.format,v);return i===`line`?(0,L.jsx)(w,{yAxisId:a,type:`monotone`,dataKey:e.dataKey,stroke:r,strokeWidth:2,dot:!1,strokeOpacity:o.strokeOpacity,strokeDasharray:o.strokeDasharray,...y,...ye(e),children:jt(c)},e.dataKey):i===`area`?(0,L.jsx)(Ve,{yAxisId:a,type:`monotone`,dataKey:e.dataKey,fill:r,stroke:r,fillOpacity:o.fillOpacity??.4,strokeOpacity:o.strokeOpacity,strokeDasharray:o.strokeDasharray,...s,...y,...ye(e),children:jt(c)},e.dataKey):(0,L.jsx)(He,{yAxisId:a,dataKey:e.dataKey,fill:r,radius:4,fillOpacity:o.fillOpacity,strokeOpacity:o.strokeOpacity,strokeDasharray:o.strokeDasharray,...s,...y,...ye(e),children:jt(c)},e.dataKey)})]})})})});let Bt=g===`horizontal-bar`,Ut=j(),qt=s?Object.values(s).map(e=>X(String(e))):[],Zt=Array.from(new Set([...Ut,...qt,...i.map((e,t)=>X(n[e.dataKey]?.color||Ut[t%Ut.length]||At))])),Z=e=>`g`+e.replace(/[^a-zA-Z0-9]/g,``);return(0,L.jsx)(cn,{title:te,subtitle:m,children:(0,L.jsx)(ln,{note:an(St,H),children:(0,L.jsx)(U,{config:n,className:a,...b,children:(0,L.jsxs)(Ae,{data:_,layout:Bt?`vertical`:`horizontal`,...he,children:[(0,L.jsx)(`defs`,{children:Zt.map(e=>(0,L.jsxs)(I.Fragment,{children:[(0,L.jsxs)(`linearGradient`,{id:`bg-${Z(e)}`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,L.jsx)(`stop`,{offset:`0%`,style:{stopColor:e},stopOpacity:.95}),(0,L.jsx)(`stop`,{offset:`100%`,style:{stopColor:e},stopOpacity:.5})]}),(0,L.jsxs)(`linearGradient`,{id:`ag-${Z(e)}`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,L.jsx)(`stop`,{offset:`0%`,style:{stopColor:e},stopOpacity:.5}),(0,L.jsx)(`stop`,{offset:`95%`,style:{stopColor:e},stopOpacity:.05})]})]},Z(e)))}),(0,L.jsx)(Ze,{...J,...tn(B,N)}),Bt?(0,L.jsxs)(L.Fragment,{children:[z?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(D,{xAxisId:`left`,type:`number`,tickLine:!1,axisLine:!1,tickFormatter:gt,...K(F,`left`,Wt)}),(0,L.jsx)(D,{xAxisId:`right`,orientation:`top`,type:`number`,tickLine:!1,axisLine:!1,tickFormatter:_t,...K(R,`right`,Gt)})]}):(0,L.jsx)(D,{type:`number`,tickLine:!1,axisLine:!1,tickFormatter:ht,...V===`right`?{orientation:`top`}:{},...K(M,V,Kt(V===`right`?`top`:`bottom`))}),(0,L.jsx)(T,{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,...yt?{orientation:yt}:{},...d?.title?{label:{value:d.title,...Jt(yt)}}:{}})]}):(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(D,{dataKey:r,...Lt}),z?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(T,{yAxisId:`left`,tickLine:!1,axisLine:!1,tickFormatter:gt,width:48,...K(F,`left`)}),(0,L.jsx)(T,{yAxisId:`right`,orientation:`right`,tickLine:!1,axisLine:!1,tickFormatter:_t,width:48,...K(R,`right`)})]}):(0,L.jsx)(T,{tickLine:!1,axisLine:!1,tickFormatter:ht,width:48,...V===`right`?{orientation:`right`}:{},...K(M,V)})]}),Ot?(0,L.jsx)(W,{content:(0,L.jsx)(at,{})}):null,Et?(0,L.jsx)(ot,{content:(0,L.jsx)(st,{}),...x&&{verticalAlign:`bottom`,wrapperStyle:{fontSize:`11px`,paddingTop:`8px`}}}):null,Dt,kt,i.map((e,t)=>{let a=j(),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]||At),u=e.yAxis===`right`?`right`:`left`,d=z?Bt?{xAxisId:u}:{yAxisId:u}:{},f=e.stack?{stackId:String(e.stack)}:{},p=Tt(it(e)?.format,v);if(g===`bar`||g===`horizontal-bar`){let t=i.filter(e=>e.variant!==`comparison`).length===1&&!o&&i.length===1&&_.length>1,n=Mt(e,`bar`);return(0,L.jsxs)(He,{dataKey:e.dataKey,fill:`url(#bg-${Z(l)})`,radius:4,fillOpacity:n.fillOpacity,strokeOpacity:n.strokeOpacity,strokeDasharray:n.strokeDasharray,...f,...d,...y,...de(e),children:[t&&_.map((e,t)=>(0,L.jsx)(Pe,{fill:`url(#bg-${Z(X(xe(e?.[r],t,a)))})`},`cell-${t}`)),jt(p)]},e.dataKey)}if(g===`line`){let t=Mt(e,`line`);return(0,L.jsx)(w,{type:`monotone`,dataKey:e.dataKey,stroke:l,strokeWidth:2,dot:!1,strokeOpacity:t.strokeOpacity,strokeDasharray:t.strokeDasharray,...d,...y,...de(e),children:jt(p)},e.dataKey)}if(g===`area`){let t=Mt(e,`area`);return(0,L.jsx)(Ve,{type:`monotone`,dataKey:e.dataKey,fill:`url(#ag-${Z(l)})`,stroke:l,strokeWidth:2,fillOpacity:t.fillOpacity??1,strokeOpacity:t.strokeOpacity,strokeDasharray:t.strokeDasharray,...f,...d,...y,...de(e),children:jt(p)},e.dataKey)}return null})]})})})})}function Tn(e){let t=e.chartType===`column`?`bar`:e.chartType??`bar`,n=Array.isArray(e.data)?e.data:[],r=e.xAxisKey??`name`;return Lt.has(t)&&n.length>0&&!n.some(e=>typeof e==`object`&&!!e&&r in e)}var En=new Set([`bar`,`horizontal-bar`,`line`,`area`,`combo`]);function Dn(e){let t=e.chartType===`column`?`bar`:e.chartType??`bar`,n=Array.isArray(e.data)?e.data:[];return!En.has(t)||n.length===0?null:e.series===void 0?`undeclared`:Array.isArray(e.series)&&e.series.length===0?`empty`:null}function On(e){let t=e.chartType===`column`?`bar`:e.chartType??`bar`,n=Array.isArray(e.data)?e.data:[],r=Array.isArray(e.series)?e.series:[];if(!En.has(t)||n.length===0||r.length===0)return null;let i=Array.from(new Set(r.map(e=>String(e.dataKey))));if(!i.every(e=>n.some(t=>typeof t==`object`&&!!t&&Object.prototype.hasOwnProperty.call(t,e))))return null;let a=Array.isArray(e.yAxes)?e.yAxes:[],o=xt(a,t),s=o.left===void 0?void 0:a[o.left],c=o.right===void 0?void 0:a[o.right],l=!!s&&!!c,u=e=>vn(s)||(!l||e.yAxis!==`left`)&&vn(c);return r.some((e,i)=>bn(t,r,i)!==`none`||u(e)||yn(n,String(e.dataKey)))?null:i}function kn(e){let t=e.chartType===`column`?`bar`:e.chartType??`bar`,n=Array.isArray(e.data)?e.data:[],r=Array.isArray(e.series)?e.series:[];if(!En.has(t)||n.length===0||r.length===0)return null;let i=Array.from(new Set(r.map(e=>e.dataKey)));return i.every(e=>typeof e==`string`&&/^[^.[]+$/.test(e)&&!n.some(t=>typeof t==`object`&&!!t&&e in t))?i:null}function An({keys:e,className:t}){return(0,L.jsxs)(Q,{code:`missing-series-key`,className:t,children:[`This chart cannot plot its series: no row has a`,` `,e.map((e,t)=>(0,L.jsxs)(I.Fragment,{children:[t>0?` or `:``,(0,L.jsx)(`code`,{className:`font-mono`,children:e})]},`${t}-${e}`)),` `,`field.`]})}function Q({code:e,className:t,children:n}){return(0,L.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,L.jsx)(`span`,{children:n})})}function jn(e){let t=Tn(e),n=t?null:Dn(e),r=t||n?null:kn(e),i=t||n||r?null:On(e),a=e.xAxisKey??`name`,o=I.useMemo(()=>Object.keys((Array.isArray(e.data)?e.data[0]:void 0)??{}),[e.data]),s=r?JSON.stringify(r):null,c=JSON.stringify(o);return I.useEffect(()=>{t&&console.warn(`[chart] no row has the category key "${a}" — rendering an explanatory placeholder instead of an empty axis. Row keys: ${JSON.stringify(o)}. A dataset query must PROJECT the dimension it groups by (framework#4033).`)},[t,a,o]),I.useEffect(()=>{if(n){if(n===`undeclared`){console.warn(`[chart] no series binding was declared for the category axis "${a}" — rendering an explanatory placeholder instead of an empty frame. Row keys: ${JSON.stringify(o)}. A bar / line / area / combo chart draws only the columns its \`series\` (or \`categories\`, or a y-axis \`field\`) names (objectui#4695).`);return}console.warn(`[chart] no series to plot against the category axis "${a}" — rendering an explanatory placeholder instead of an empty frame. Row keys: ${JSON.stringify(o)}. 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,a,o]),I.useEffect(()=>{s&&console.warn(`[chart] no row has the series key(s) ${s} — rendering an explanatory placeholder instead of an empty frame. Row keys: ${c}. A series \`dataKey\` must name a column the rows carry (objectui#10396).`)},[s,c]),t?(0,L.jsxs)(Q,{code:`missing-category-key`,className:e.className,children:[`This chart cannot plot its category axis: no row has a`,` `,(0,L.jsx)(`code`,{className:`font-mono`,children:a}),` field.`]}):n===`undeclared`?(0,L.jsxs)(Q,{code:`no-plottable-series`,className:e.className,children:[`This chart cannot plot any series: none was declared to draw against its`,` `,(0,L.jsx)(`code`,{className:`font-mono`,children:a}),` axis.`]}):n===`empty`?(0,L.jsxs)(Q,{code:`no-plottable-series`,className:e.className,children:[`This chart cannot plot any series: no measure or group reached its`,` `,(0,L.jsx)(`code`,{className:`font-mono`,children:a}),` axis.`]}):r?(0,L.jsx)(An,{keys:r,className:e.className}):i?(0,L.jsx)(xn,{keys:i,total:Array.isArray(e.data)?e.data.length:0,className:e.className}):(0,L.jsx)(wn,{...e})}var Mn=t({default:()=>Fn});function Nn(e,t=14){return e.length>t?`${e.slice(0,t-1)}…`:e}function Pn({x:e,y:t,payload:n}){let r=String(n?.value??``),i=Nn(r);return(0,L.jsx)(`g`,{transform:`translate(${e},${t})`,children:(0,L.jsxs)(`text`,{dy:10,textAnchor:`end`,transform:`rotate(-32)`,fill:`hsl(var(--muted-foreground))`,fontSize:11,fontFamily:`monospace`,children:[r!==i&&(0,L.jsx)(`title`,{children:r}),i]})})}function Fn({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,L.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,L.jsx)(We,{width:`100%`,height:r,children:(0,L.jsxs)(k,{data:e,margin:{top:10,right:10,left:10,bottom:s?24:5},children:[(0,L.jsxs)(`defs`,{children:[(0,L.jsxs)(`linearGradient`,{id:`barGradient`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,L.jsx)(`stop`,{offset:`0%`,stopColor:a,stopOpacity:1}),(0,L.jsx)(`stop`,{offset:`90%`,stopColor:a,stopOpacity:.6}),(0,L.jsx)(`stop`,{offset:`100%`,stopColor:a,stopOpacity:.3})]}),(0,L.jsxs)(`filter`,{id:`glow`,height:`130%`,children:[(0,L.jsx)(`feGaussianBlur`,{in:`SourceAlpha`,stdDeviation:`3`,result:`blur`}),(0,L.jsx)(`feOffset`,{in:`blur`,dx:`0`,dy:`0`,result:`offsetBlur`}),(0,L.jsx)(`feFlood`,{floodColor:a,floodOpacity:`0.5`,result:`offsetColor`}),(0,L.jsx)(`feComposite`,{in:`offsetColor`,in2:`offsetBlur`,operator:`in`,result:`offsetBlur`}),(0,L.jsxs)(`feMerge`,{children:[(0,L.jsx)(`feMergeNode`,{in:`offsetBlur`}),(0,L.jsx)(`feMergeNode`,{in:`SourceGraphic`})]})]})]}),(0,L.jsx)(Ze,{strokeDasharray:`3 3`,stroke:`hsl(var(--border))`,vertical:!1}),(0,L.jsx)(D,{dataKey:n,tick:s?(0,L.jsx)(Pn,{}):{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,L.jsx)(T,{tick:{fill:`hsl(var(--muted-foreground))`,fontSize:12,fontFamily:`monospace`},tickLine:!1,axisLine:!1}),(0,L.jsx)(E,{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,L.jsx)(je,{wrapperStyle:{paddingTop:`20px`,fontFamily:`monospace`}}),(0,L.jsx)(He,{dataKey:t,fill:`url(#barGradient)`,radius:[4,4,0,0],filter:`url(#glow)`,animationDuration:1500})]})})})}var In=I.lazy(()=>n(()=>Promise.resolve().then(()=>Mn),void 0,import.meta.url)),Ln=I.lazy(()=>n(()=>Promise.resolve().then(()=>kt),void 0,import.meta.url)),Rn=({schema:e})=>(0,L.jsx)(I.Suspense,{fallback:(0,L.jsx)(s,{className:`w-full h-48 sm:h-64 md:h-80 lg:h-[400px]`}),children:(0,L.jsx)(In,{data:e.data,dataKey:e.dataKey,xAxisKey:e.xAxisKey,height:e.height,className:e.className,color:e.color})}),$=({schema:e,onChartClick:t})=>{let{language:n}=M(),r=I.useMemo(()=>{let t=St(e,n),r=Array.isArray(e.series)?e.series:void 0,i=t.series??r,a=e.xAxisKey??t.xAxisKey,o=e.config;if(!o&&i){let t=e.colors||[`hsl(var(--chart-1))`,`hsl(var(--chart-2))`,`hsl(var(--chart-3))`],n={};i.forEach((e,r)=>{n[e.dataKey]={label:e.label||e.dataKey,color:e.color||t[r%t.length]}}),o=n}return{chartType:e.chartType??t.chartType,data:Array.isArray(e.data)?e.data:[],config:o,xAxisKey:a,series:i,className:e.className,spec:t}},[e,n]);return(0,L.jsx)(I.Suspense,{fallback:(0,L.jsx)(s,{className:`w-full h-48 sm:h-64 md:h-80 lg:h-[400px]`}),children:(0,L.jsx)(Ln,{chartType:r.chartType,data:r.data,config:r.config,xAxisKey:r.xAxisKey,series:r.series,className:r.className,colors:Array.isArray(e.colors)?e.colors:void 0,categoryColors:e.categoryColors,categoryOrder:e.categoryOrder,isAnimationActive:e.isAnimationActive,onChartClick:t,xAxis:r.spec.xAxis,yAxes:r.spec.yAxes,showLegend:r.spec.showLegend,showDataLabels:r.spec.showDataLabels,title:r.spec.title,subtitle:r.spec.subtitle,description:r.spec.description,height:r.spec.height??e.height,annotations:r.spec.annotations,interaction:r.spec.interaction})})};function zn(e){return h(e,e.function||`count`)}var Bn=[`aggregate.groupBy`,`xAxisKey`,`xAxis.field`];function Vn(e){let t=e?.aggregate?.groupBy;if(t&&typeof t==`object`&&!Array.isArray(t)){let e=t.field;return typeof e==`string`&&e?e:void 0}return typeof t==`string`&&t?t:St(e).xAxisKey}var Hn=`__comparison`;function Un(e){let t=e?.groupBy;return t&&typeof t==`object`&&!Array.isArray(t)?t.alias||t.field:typeof t==`string`?t:void 0}function Wn(e,t){let{field:n,function:r,groupBy:i}=t,a=zn(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 Gn(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:y(i);return{...e,[t]:a(i,s),[o]:r}})}let c=s.type;if(c===`select`||c===`picklist`||c===`dropdown`){let n=s.options||[];if(n.length===0)return e.map(e=>{let n=e[t],r=String(n??``),i=y(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]||y(i);return{...e,[t]:a(i,s),[o]:n}})}if(c===`lookup`||c===`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=Se(c),u=s.displayField||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(c===`date`||c===`datetime`||c===`date_time`||c===`timestamp`||c===`time`)return e.map(e=>({...e,[o]:e[t]}));let l=/^\d{4}-\d{2}-\d{2}/;return e.map(e=>{let n=e[t],r=String(n??``);return{...e,[t]:l.test(r)?r:y(r),[o]:n}})}var Kn=e=>{let{schema:t}=e,n=e.onSegmentClick,r=(0,I.useContext)(ae),i=e.dataSource||r?.dataSource,s=r?.apiFetch,h=Te(t.bind),{fieldOptionLabel:y}=nt(),[se,S]=(0,I.useState)([]),[pe,_e]=(0,I.useState)(null),[ve,we]=(0,I.useState)(void 0),[Ee,Oe]=(0,I.useState)(()=>!(Array.isArray(t.data)&&t.data.length>0)&&(!!t.objectName||!!t.dataset)),[je,Me]=(0,I.useState)(null),[C,Ne]=(0,I.useState)(null),[Pe,Fe]=(0,I.useState)(null),{openRecordList:Ie}=le(),w=A(),{t:Le,language:Re}=M(),ze=(0,I.useMemo)(()=>t.aggregate?JSON.stringify(t.aggregate):``,[t.aggregate]),Be=(0,I.useMemo)(()=>t.filter?JSON.stringify(t.filter):``,[t.filter]),T=(0,I.useMemo)(()=>t.compareTo?JSON.stringify(t.compareTo):``,[t.compareTo]),Ve=(0,I.useMemo)(()=>t.dataset?JSON.stringify({d:t.dataset,dim:t.dimensions??[],val:t.values??[]}):``,[t.dataset,t.dimensions,t.values]);(0,I.useEffect)(()=>{let e=!1;return(async()=>{try{let n=s??fetch,r={headers:{accept:`application/json`},credentials:`include`},i=t.objectName,a,o=null;if(i)a=Vn(t);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||Fe(null);return}let c=async e=>{let t=await(await n(`/api/v1/meta/object/${encodeURIComponent(e)}`,r)).json().catch(()=>null);return t?.item??t?.data??t},l={};if(t.dataset&&Array.isArray(t.dimensions))for(let e of t.dimensions)l[e]=(o?.dimensions||[]).find(t=>t?.name===e)?.field??e;let u=await oe(c,i,[a,...Object.values(l)]);e||Fe({metaByPath:u,colorPath:a,fieldByDim:t.dataset&&Array.isArray(t.dimensions)?l:null})}catch{e||Fe(null)}})(),()=>{e=!0}},[t.objectName,t.dataset,Ve,ze,t.xAxisKey,s]);let{fieldOptionColors:He,dimensionLabels:Ue}=(0,I.useMemo)(()=>{if(!Pe)return{fieldOptionColors:null,dimensionLabels:null};let{metaByPath:e,colorPath:t,fieldByDim:n}=Pe,r=v(e[t]?.options,x(e[t],y)),i=b(e,n?Object.entries(n).map(([e,t])=>({dim:e,path:t})):null,y);return{fieldOptionColors:Ce(r),dimensionLabels:i}},[Pe,y]),We=(0,I.useCallback)(async(e,n)=>{if(t.aggregate&&typeof e.aggregate==`function`){let r=t.aggregate.groupBy;if(ke(r)){let i=await e.aggregate(t.objectName,de(t.aggregate,r,n));return Array.isArray(i)?i:[]}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=Se(r),a=Un(t.aggregate);return t.aggregate&&a&&i.length>0&&(i=Wn(i,{...t.aggregate,groupBy:a})),i}return[]},[t.objectName,ze]),E=ye(),Ge=(0,I.useCallback)(async(e,n)=>{if(!e||!t.objectName&&!t.dataset){n.current&&Oe(!1);return}n.current&&(Oe(!0),Me(null));try{if(t.dataset&&typeof e.queryDataset==`function`){let r=he(t.filter,E),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&&(S(Array.isArray(i?.rows)?i.rows:[]),_e(Array.isArray(i?.fields)?i.fields:null),we(typeof i?.object==`string`&&i.object?i.object:void 0));return}let r=he(t.filter,E),i=t.compareTo,a=!!i&&!Ae(t.chartType),o=a?_(fe(t.filter,i),E):null,[s,c]=await Promise.all([We(e,r),o?We(e,o):Promise.resolve([])]),l=s,u=Un(t.aggregate)||t.xAxisKey;if(a&&c.length>0&&t.aggregate){let e=t.aggregate.field,n=t.aggregate.function,r=zn(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}${Hn}`,o=u;if(o&&l.some(e=>e[o]!=null)&&c.some(e=>e[o]!=null)){let e=new Map;for(let t of c){let n=String(t[o]??``);e.set(n,i(t))}l=l.map(t=>{let n=String(t[o]??``),r=e.get(n);return r==null?t:{...t,[a]:r}});let t=new Set(l.map(e=>String(e[o]??``)));for(let e of c){let n=String(e[o]??``);t.has(n)||l.push({[o]:n,[a]:i(e)})}}else{let e=Math.max(l.length,c.length),t=[];for(let n=0;n<e;n++){let e=l[n]||{},r=c[n];t.push(r?{...e,[a]:i(r)}:e)}l=t}}if(u&&t.objectName&&typeof e.getObjectSchema==`function`){let n=t.objectName;try{let t=await e.getObjectSchema(n);l=await Gn(l,u,t,e,(e,t)=>y(n,u,e,t))}catch{}}n.current&&S(l)}catch(e){console.error(`[ObjectChart] Fetch error:`,e),n.current&&Me(e instanceof Error?e.message:`Failed to load chart data`)}finally{n.current&&Oe(!1)}},[t.objectName,Ve,ze,Be,T,t.xAxisKey,t.chartType,We,E,y]),Ke=!!(t.objectName||t.dataset)&&!h&&!t.data,qe=be(Ke?t.dataset?ve:t.objectName:void 0);(0,I.useEffect)(()=>{let e={current:!0};return Ke?Ge(i,e):e.current&&Oe(!1),()=>{e.current=!1}},[t.objectName,Ve,i,h,t.data,Be,ze,T,Ge,qe]);let Je=h||t.data||se,D=Array.isArray(Je)?Je:[],O=t.drillDown,Ye=Un(t.aggregate)||t.xAxisKey,Xe=(0,I.useMemo)(()=>{if(!Ye)return new Map;let e=new Map,t=`__raw_${Ye}`;for(let n of D){let r=n?.[Ye];if(r==null)continue;let i=t in(n||{})?n[t]:r;e.set(String(r),i)}return e},[D,Ye]),k=(0,I.useMemo)(()=>{if(C)try{return{ok:!0,filter:me(t.filter,ge(O,C,{groupByField:Ye}))}}catch(e){if(!(e instanceof De))throw e;return{ok:!1,refusal:e}}},[C,O,Ye,Be]),Ze=k?.ok?k.filter:void 0,Qe=k?.ok===!1,$e=k?.ok===!1?k.refusal.message:void 0;(0,I.useEffect)(()=>{$e&&console.warn(`[ObjectChart] drill-down refused — the drilled list cannot be scoped: ${$e}`)},[$e]);let et=!n&&!!C&&!Qe&&!!t.objectName&&O?.target===`navigate`&&!!Ie;(0,I.useEffect)(()=>{et&&(Ie(t.objectName,Ze),Ne(null))},[et]);let rt=t.compareTo,R=t.aggregate?zn(t.aggregate):void 0,z=R?`${R}${Hn}`:void 0,B=!!rt&&!Ae(t.chartType)&&!!z&&D.some(e=>e[z]!=null),V=(0,I.useMemo)(()=>{let e=Array.isArray(t.series)?t.series:null;if(!B)return e;let n=e||[{dataKey:R}],r={vsLastWeek:`Previous week`,vsLastMonth:`Previous month`,vsLastQuarter:`Previous quarter`,vsLastYear:`Previous year`,vsYesterday:`Yesterday`,vsPreviousPeriod:`Previous period`}[g(rt,t.filter)]||`Previous period`;return[...n.map(e=>({...e,variant:e.variant||`current`})),{dataKey:z,label:r,variant:`comparison`}]},[B,t.series,R,z,t.filter,rt]),H=t.dataset?ie(ue(D,Ue),t.dimensions,t.values,pe,{nullCategoryLabel:w(`chart.nullCategory`,`(None)`),builtinAggregateLabels:tt(w)}):null,U=!!h||Array.isArray(t.data),it=!!t.objectName&&!t.dataset&&!U,W=it&&!St(t,Re).xAxisKey?Un(t.aggregate):void 0,at=H?{...t,data:H.data,xAxisKey:H.xAxisKey,series:H.series}:{...t,data:D,...W?{xAxisKey:W}:{},...V?{series:V}:{}},ot=t.colors&&!Array.isArray(t.colors)&&typeof t.colors==`object`?t.colors:null,st=Array.isArray(t.colors)?t.colors:void 0,G=He||ot?{...He||{},...ot||{}}:void 0,ct={...at,colors:st,...G?{categoryColors:G}:{}};if(it&&!Vn(t))return(0,L.jsxs)(`div`,{className:`p-4 text-destructive `+(t.className||``),"data-testid":`chart-missing-category-axis`,role:`alert`,children:[w(`chart.unconfigured.noCategoryAxis`,`Chart category axis required — an object-bound chart will not invent one. Declare one of:`),` `,Bn.map((e,t)=>(0,L.jsxs)(I.Fragment,{children:[t>0?`, `:``,(0,L.jsx)(`code`,{className:`font-mono`,children:e})]},e))]});if(Ee&&D.length===0)return(0,L.jsxs)(`div`,{className:`p-2 `+(t.className||``),"data-testid":`chart-loading`,role:`status`,"aria-busy":`true`,"aria-live":`polite`,children:[(0,L.jsx)(`span`,{className:`sr-only`,children:`Loading chart data…`}),(0,L.jsx)(te,{className:`h-full`})]});if(je)return(0,L.jsxs)(`div`,{className:`flex flex-col items-center justify-center gap-2 p-4 `+(t.className||``),"data-testid":`chart-error`,role:`alert`,children:[(0,L.jsx)(P,{className:`h-6 w-6 text-destructive opacity-60`}),(0,L.jsx)(`p`,{className:`text-xs text-destructive font-medium`,children:`Failed to load chart data`}),(0,L.jsx)(`p`,{className:`text-xs text-muted-foreground max-w-xs text-center`,children:je})]});if(!i&&t.objectName&&D.length===0)return(0,L.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,L.jsx)(f,{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,L.jsx)(F,{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,L.jsxs)(`p`,{className:`text-xs text-muted-foreground/80`,"data-testid":`chart-empty-source`,children:[(0,L.jsx)(`span`,{children:w(`dashboard.empty.sourceLabel`,`Source:`)}),` `,(0,L.jsx)(`span`,{className:`font-mono`,children:t.dataset||t.objectName})]})});let lt=ce(O)?e=>{let t=e.category,n=t!=null&&Xe.has(String(t))?Xe.get(String(t)):t;Ne({...e,category:n,categoryLabel:t,scope:`cell`})}:void 0,ut=n??lt,dt=!n&&C&&!Qe&&t.objectName&&!et?(()=>{let e=Ze??{},n=re(O,C,j(t.title,Re)||`Details`),r=O?.target??`drawer`,s={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`}},f=(0,L.jsx)(`div`,{className:`overflow-auto`,"data-testid":`chart-drill-body`,children:(0,L.jsx)(xe,{schema:s,dataSource:i})}),te=Ie&&t.objectName?(0,L.jsxs)(ne,{type:`button`,variant:`ghost`,size:`sm`,"data-testid":`drill-open-in-list`,onClick:()=>{Ie(t.objectName,e),Ne(null)},children:[w(`dashboard.openInList`,`Open in list`),(0,L.jsx)(N,{className:`ml-1 h-3.5 w-3.5`})]}):null;return r===`dialog`?(0,L.jsx)(ee,{open:!0,onOpenChange:e=>!e&&Ne(null),children:(0,L.jsxs)(o,{className:`max-w-4xl`,children:[(0,L.jsxs)(u,{className:`flex-row items-center justify-between gap-4 pr-8`,children:[(0,L.jsx)(d,{children:n}),te]}),f]})}):(0,L.jsx)(p,{open:!0,onOpenChange:e=>!e&&Ne(null),children:(0,L.jsxs)(a,{side:`right`,className:`w-full sm:max-w-2xl md:max-w-3xl lg:max-w-4xl flex flex-col`,children:[(0,L.jsxs)(c,{className:`flex-row items-center justify-between gap-4 pr-8`,children:[(0,L.jsx)(l,{children:n}),te]}),(0,L.jsx)(`div`,{className:`flex-1 overflow-hidden mt-2`,children:f})]})})})():null;return(0,L.jsxs)(`div`,{className:`relative h-full`,children:[(0,L.jsx)(m,{active:Ee&&D.length>0,ariaLabel:Le(`chart.refreshing`)}),(0,L.jsx)($,{...e,schema:ct,onChartClick:ut}),dt]})},qn={filter:!0},Jn=pe(e=>(0,L.jsx)(Ee,{schema:e.schema,mapping:qn,dataSource:e.dataSource,testId:`object-chart`,errorTitle:`This chart’s data source could not be resolved`,children:t=>(0,L.jsx)(Kn,{...e,schema:t})}));S.register(`object-chart`,Jn,{namespace:`plugin-charts`,label:`Object Chart`,category:`view`,inputs:[{name:`objectName`,type:`string`,required:!0},{name:`data`,type:`array`,description:`Optional static data`},{name:`filter`,type:`array`},{name:`aggregate`,type:`object`,description:`Aggregation config: { field, function, groupBy }`},{name:`drillDown`,type:`object`,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 Yn=t({ChartBarRenderer:()=>Rn,ChartRenderer:()=>$,ObjectChart:()=>Kn,ObjectChartBlock:()=>Jn,chartComponents:()=>Xn,normalizeChartSchema:()=>St}),Xn={"bar-chart":Rn,chart:$};S.register(`bar-chart`,Rn,{namespace:`plugin-charts`,label:`Bar Chart`,category:`plugin`,inputs:[{name:`data`,type:`array`,required:!0},{name:`dataKey`,type:`string`},{name:`xAxisKey`,type:`string`},{name:`height`,type:`number`},{name:`color`,type:`color`}],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`}}),S.register(`chart`,Jn,{namespace:`view`,category:`view`,label:`Chart`,skipFallback:!0,inputs:[{name:`objectName`,type:`string`,required:!0},{name:`type`,type:`string`},{name:`categoryField`,type:`string`},{name:`valueField`,type:`string`}]}),S.register(`chart`,$,{namespace:`plugin-charts`,label:`Chart`,category:`plugin`,inputs:[{name:`chartType`,type:`enum`,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`}]},{name:`data`,type:`code`,required:!0},{name:`config`,type:`code`},{name:`xAxisKey`,type:`string`},{name:`series`,type:`code`,required:!0},{name:`className`,type:`string`}],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`}]}}),S.register(`chart:bar`,$,{namespace:`plugin-charts`,label:`Bar Chart (Alias)`,category:`plugin`}),S.register(`pie-chart`,$,{namespace:`plugin-charts`,label:`Pie Chart`,category:`plugin`}),S.register(`donut-chart`,$,{namespace:`plugin-charts`,label:`Donut Chart`,category:`plugin`}),S.register(`radar-chart`,$,{namespace:`plugin-charts`,label:`Radar Chart`,category:`plugin`}),S.register(`scatter-chart`,$,{namespace:`plugin-charts`,label:`Scatter Chart`,category:`plugin`});export{Yn as t};
|