@objectstack/console 17.0.0-rc.0 → 17.0.0-rc.1
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 +1096 -0
- package/README.md +8 -3
- package/dist/.objectui-sha +1 -1
- package/dist/assets/{AdapterProvider-ClCj6PTd.js → AdapterProvider-DCL4oNgv.js} +1 -1
- package/dist/assets/{AiPendingActionsPage-bedYcbz0.js → AiPendingActionsPage-BvvDIWEC.js} +1 -1
- package/dist/assets/{ApiConsolePage-DdUlsQNo.js → ApiConsolePage-Dvr5-g2X.js} +1 -1
- package/dist/assets/{AppDocsIndex-DySIC06n.js → AppDocsIndex-Ohwtpos8.js} +1 -1
- package/dist/assets/{AppManagementPage-8S-uDSdv.js → AppManagementPage-DhsvWTeZ.js} +1 -1
- package/dist/assets/ApprovalsInboxPage-BfaGtcxV.js +1 -0
- package/dist/assets/AuditLogPage-D_09WrLX.js +1 -0
- package/dist/assets/{ComponentNavView-BOxZS4Hn.js → ComponentNavView-C6J3w2IE.js} +1 -1
- package/dist/assets/CreateViewDialog-R7kwDoaF.js +1 -0
- package/dist/assets/{DashboardView-Co21jHAg.js → DashboardView-B-5HkqOl.js} +1 -1
- package/dist/assets/{DeveloperHubPage-B3CL_2_R.js → DeveloperHubPage-p9oQnZuU.js} +1 -1
- package/dist/assets/{DocShell-Bswx8gyj.js → DocShell-B8d7-ARz.js} +1 -1
- package/dist/assets/ExpressionProvider-BLhGrCBw.js +1 -0
- package/dist/assets/FlowRunsPage-DzZmtrDe.js +1 -0
- package/dist/assets/{IntegrationsPage-DwRFenrv.js → IntegrationsPage-DzBKAEgn.js} +2 -2
- package/dist/assets/InterfaceListPage-C_M0U8ns.js +1 -0
- package/dist/assets/{ManagedByBadge-BuKzVw4f.js → ManagedByBadge-DWtOXcFq.js} +1 -1
- package/dist/assets/MarketplaceAccessDenied-C4Yrv4Q7.js +1 -0
- package/dist/assets/{MarketplaceInstalledPage-zxinYFxx.js → MarketplaceInstalledPage-B6cbDzf8.js} +1 -1
- package/dist/assets/MarketplacePackagePage-D0dT7D3x.js +4 -0
- package/dist/assets/{MarketplacePage-C2tmfrC4.js → MarketplacePage-CtvxvBmw.js} +1 -1
- package/dist/assets/{MetadataInspector-BT_WB0Z2.js → MetadataInspector-9pMeoWpd.js} +1 -1
- package/dist/assets/{MetadataProvider-CaobQzBK.js → MetadataProvider-Y0oNNDXh.js} +1 -1
- package/dist/assets/ObjectDataPage-B8pGSNRJ.js +1 -0
- package/dist/assets/PageView-BBJl1RzL.js +1 -0
- package/dist/assets/ProfilePage-BL4aVTUO.js +1 -0
- package/dist/assets/PublicFormsPage-C-BWDI8O.js +1 -0
- package/dist/assets/RecordDetailView-BYYpDJSj.js +9 -0
- package/dist/assets/RecordFormPage-SLtEal-m.js +1 -0
- package/dist/assets/ReportDefaultInspector-B3KEMC9M.js +3 -0
- package/dist/assets/{ReportView-BPnukjAJ.js → ReportView-B3kMHgHe.js} +1 -1
- package/dist/assets/{SearchResultsPage-BrU2uBVw.js → SearchResultsPage-0eeyyaj-.js} +1 -1
- package/dist/assets/{SettingsHub-Be1x-xx5.js → SettingsHub-BVhaidAC.js} +1 -1
- package/dist/assets/SettingsView-D2klvVKS.js +1 -0
- package/dist/assets/{SystemHubPage-C7E2MVCX.js → SystemHubPage-CHcrvd-n.js} +1 -1
- package/dist/assets/{abnfDiagram-VRR7QNED-Hg1RYCKu.js → abnfDiagram-VRR7QNED-D2Rn6aHa.js} +1 -1
- package/dist/assets/{architectureDiagram-ZJ3FMSHR-DwfUOkLv.js → architectureDiagram-ZJ3FMSHR-DX6q2vGN.js} +1 -1
- package/dist/assets/{blockDiagram-677ZJIJ3-BDc1qSIS.js → blockDiagram-677ZJIJ3-T2IDNrvJ.js} +1 -1
- package/dist/assets/{c4Diagram-LMCZKHZV-B3uEgabN.js → c4Diagram-LMCZKHZV-B98pIIbx.js} +1 -1
- package/dist/assets/channel-BovwC1_7.js +1 -0
- package/dist/assets/{chunk-32BRIVSS-BX7QYsQG.js → chunk-32BRIVSS-CYNomNWc.js} +1 -1
- package/dist/assets/{chunk-52WLFC77-Cx4AaJIv.js → chunk-52WLFC77-DtGIB0uV.js} +2 -2
- package/dist/assets/{chunk-C7G6YPKG-HNW9cqtI.js → chunk-C7G6YPKG-yJXKQ2Sz.js} +1 -1
- package/dist/assets/{chunk-EX3LRPZG-CBmf4uVW.js → chunk-EX3LRPZG-BtAjfq6C.js} +1 -1
- package/dist/assets/{chunk-FWX5IMBZ-Dt6Lwztc.js → chunk-FWX5IMBZ-C4k19ShS.js} +1 -1
- package/dist/assets/{chunk-HOUHSVGY-BiLG0Jtx.js → chunk-HOUHSVGY-BuKclK6G.js} +1 -1
- package/dist/assets/{chunk-ICXQ74PX-V7Gv_S2c.js → chunk-ICXQ74PX-OP102czk.js} +1 -1
- package/dist/assets/{chunk-MOJQB5TN-zlBuobC7.js → chunk-MOJQB5TN-CToOzrGu.js} +1 -1
- package/dist/assets/{chunk-OGEWGWER-D9fNq6KM.js → chunk-OGEWGWER-9rMC3Zdz.js} +1 -1
- package/dist/assets/{chunk-PUDLZKDR-BufZGozB.js → chunk-PUDLZKDR-Bte-Y5BM.js} +1 -1
- package/dist/assets/{chunk-Q4XR5HBZ-C1v9xwSj.js → chunk-Q4XR5HBZ-B1-bRF4T.js} +1 -1
- package/dist/assets/{chunk-RYQCIY6F-Cuf3Er4p.js → chunk-RYQCIY6F-DX0uHAt-.js} +1 -1
- package/dist/assets/{chunk-V7JOEXUC-Bsulk3KW.js → chunk-V7JOEXUC-3Qai_qvf.js} +1 -1
- package/dist/assets/chunk-VAUOI2AC-B2LdZG5j.js +1 -0
- package/dist/assets/{chunk-VR4S4FIN-Cxz-AOSl.js → chunk-VR4S4FIN-C8tYB3zk.js} +1 -1
- package/dist/assets/{chunk-WYO6CB5R-BBCHPFWt.js → chunk-WYO6CB5R-chyhiVml.js} +1 -1
- package/dist/assets/chunk-XXDRQBXY-mZd7tFTQ.js +1 -0
- package/dist/assets/{chunk-ZGVPDNZ5-0VawavzG.js → chunk-ZGVPDNZ5-BHJQa9Yh.js} +1 -1
- package/dist/assets/classDiagram-OUVF2IWQ-opUQX7yT.js +1 -0
- package/dist/assets/classDiagram-v2-EOCWNBFH-opUQX7yT.js +1 -0
- package/dist/assets/{cose-bilkent-JH36ORCC-zGun_nYq.js → cose-bilkent-JH36ORCC-wNn6_7gi.js} +1 -1
- package/dist/assets/{createDerive-DGPok8w-.js → createDerive-DDuw-xzg.js} +1 -1
- package/dist/assets/{cynefinDiagram-TSTJHNR4-DAMk8Cyg.js → cynefinDiagram-TSTJHNR4-BpiN-sI9.js} +1 -1
- package/dist/assets/{dagre-VKFMJZFB-CcgN1PqH.js → dagre-VKFMJZFB-D4jpVOw8.js} +1 -1
- package/dist/assets/data-adapter-DJl5PvjF.js +17 -0
- package/dist/assets/{diagram-FQU43EPY-CQVlA0TA.js → diagram-FQU43EPY-DnGyLgYE.js} +1 -1
- package/dist/assets/{diagram-G47NLZAW-0UcUFyIH.js → diagram-G47NLZAW-BSDChPeN.js} +1 -1
- package/dist/assets/{diagram-NH7WQ7WH-B8E52D9k.js → diagram-NH7WQ7WH-Jir-M8yF.js} +1 -1
- package/dist/assets/{diagram-OA4YK3LP-CAJcB6Ez.js → diagram-OA4YK3LP-DG1np1W1.js} +1 -1
- package/dist/assets/{diagram-WEI45ONY-DWe95hfc.js → diagram-WEI45ONY-DRm_SlrH.js} +1 -1
- package/dist/assets/{ebnfDiagram-CCIWWBDH-vV-mO9pC.js → ebnfDiagram-CCIWWBDH-twfLoKY3.js} +1 -1
- package/dist/assets/{erDiagram-Q63AITRT-C37YlMu-.js → erDiagram-Q63AITRT-CABXVpgy.js} +1 -1
- package/dist/assets/flowDiagram-23GEKE2U-DxGbSmxA.js +1 -0
- package/dist/assets/framework-xOBpLspS.js +8 -0
- package/dist/assets/{ganttDiagram-NO4QXBWP-BbLQFz0H.js → ganttDiagram-NO4QXBWP-DRXGi_1T.js} +2 -2
- package/dist/assets/getIcon-yTDDbwhX.js +1 -0
- package/dist/assets/{gitGraphDiagram-IHSO6WYX-B4EJMjM2.js → gitGraphDiagram-IHSO6WYX-BtlNUS9M.js} +1 -1
- package/dist/assets/{highlighted-body-OFNGDK62-BURNftRE.js → highlighted-body-OFNGDK62-BNY8_Ou8.js} +1 -1
- package/dist/assets/{i18n-B4M18fi2.js → i18n-CWXRbuYk.js} +2 -2
- package/dist/assets/index-ByFHLPS0.js +2 -0
- package/dist/assets/index-QgmPkr95.css +2 -0
- package/dist/assets/{infoDiagram-FWYZ7A6U-ChMO4rou.js → infoDiagram-FWYZ7A6U-CrCNJ5GX.js} +1 -1
- package/dist/assets/infrastructure-EMqAhl6J.js +3 -0
- package/dist/assets/{ishikawaDiagram-FXEZZL3T-B5_tQUWs.js → ishikawaDiagram-FXEZZL3T-aBCt2dnS.js} +1 -1
- package/dist/assets/{journeyDiagram-5HDEW3XC-MxmpMgQO.js → journeyDiagram-5HDEW3XC-CQrIuFhF.js} +1 -1
- package/dist/assets/{kanban-definition-HUTT4EX6-x1u6yhTC.js → kanban-definition-HUTT4EX6-Bm4snCw1.js} +1 -1
- package/dist/assets/mermaid-GHXKKRXX-BN2PjcSK.js +1 -0
- package/dist/assets/{mermaid.core-Bo862wyf.js → mermaid.core-C5ZaZqXX.js} +2 -2
- package/dist/assets/metadata-admin-lW4yChcf.js +25 -0
- package/dist/assets/{mindmap-definition-LN4V7U3C-gv5cgZkr.js → mindmap-definition-LN4V7U3C-CzSOJVqY.js} +1 -1
- package/dist/assets/{pegDiagram-2B236MQR-BUvOaGez.js → pegDiagram-2B236MQR-DPkw74l3.js} +1 -1
- package/dist/assets/{pieDiagram-ENE6RG2P-CYsklKtm.js → pieDiagram-ENE6RG2P-Bnny8SeQ.js} +1 -1
- package/dist/assets/plugin-calendar-Dikj_A8Y.js +1 -0
- package/dist/assets/plugin-charts-_11K-vFF.js +7 -0
- package/dist/assets/plugin-chatbot-D5bVXJ_O.js +120 -0
- package/dist/assets/plugin-dashboard-QnlQx94Y.js +6 -0
- package/dist/assets/plugin-form-C8ibDrVW.js +1 -0
- package/dist/assets/plugin-gantt-ION4WU11.js +63 -0
- package/dist/assets/plugin-grid-BbCjdxhg.js +8 -0
- package/dist/assets/plugin-kanban-DMXe4mrr.js +1 -0
- package/dist/assets/plugin-map-ZzwBPooc.js +1 -0
- package/dist/assets/{plugin-markdown-CwKhoguC.js → plugin-markdown-DWlAZYfS.js} +1 -1
- package/dist/assets/plugin-report-4ufmhN37.js +59 -0
- package/dist/assets/plugin-timeline-CxuwO6Sj.js +1 -0
- package/dist/assets/plugin-tree-CqFsNYBt.js +1 -0
- package/dist/assets/plugin-view-BtrrVg8d.js +1 -0
- package/dist/assets/plugins-views-DuVwtJw-.js +4 -0
- package/dist/assets/{quadrantDiagram-ABIIQ3AL-DkdTo6wC.js → quadrantDiagram-ABIIQ3AL-DUB4EjfP.js} +1 -1
- package/dist/assets/{railroadDiagram-RFXS5EU6-CIvl_CtD.js → railroadDiagram-RFXS5EU6-DSfLwOL9.js} +1 -1
- package/dist/assets/{requirementDiagram-TGXJPOKE-BrmGcoHH.js → requirementDiagram-TGXJPOKE-BUoxthLY.js} +1 -1
- package/dist/assets/{runtime-metadata-persistence-C6n6ChsE.js → runtime-metadata-persistence-D0qPKjRP.js} +1 -1
- package/dist/assets/{sankeyDiagram-HTMAVEWB-DAhnVEku.js → sankeyDiagram-HTMAVEWB-CkjIusFl.js} +2 -2
- package/dist/assets/{sequenceDiagram-DBY2YBRQ-CmnHwkE8.js → sequenceDiagram-DBY2YBRQ-DlUPbsBe.js} +1 -1
- package/dist/assets/{skeletons-D3Ug_cFP.js → skeletons-DBVC-R2R.js} +1 -1
- package/dist/assets/{src-BGaMRjVN.js → src-CEjEbVE_.js} +1 -1
- package/dist/assets/src-CLs1ObAx.js +19 -0
- package/dist/assets/{src-DmkSCLdx.js → src-CQ-hf48v.js} +1 -1
- package/dist/assets/src-Cz3xMnYk.js +1 -0
- package/dist/assets/{src-BvgQ2BWs.js → src-DMTCYJgx.js} +1 -1
- package/dist/assets/{stateDiagram-2N3HPSRC-C4fJzxRx.js → stateDiagram-2N3HPSRC-vPDzyRlO.js} +1 -1
- package/dist/assets/stateDiagram-v2-6OUMAXLB-USH3Z7UN.js +1 -0
- package/dist/assets/{swimlanes-5IMT3BWC-DlIs3eSd.js → swimlanes-5IMT3BWC-mtpJqEnb.js} +1 -1
- package/dist/assets/swimlanesDiagram-G3AALYLV-CJNfyMoX.js +8 -0
- package/dist/assets/{timeline-definition-FHXFAJF6-B6xJ_8dh.js → timeline-definition-FHXFAJF6-vFc3MiyA.js} +1 -1
- package/dist/assets/ui-components-C5rSjsFE.js +72 -0
- package/dist/assets/{ui-layout-fGjoW3uv.js → ui-layout-D13CmhwI.js} +1 -1
- package/dist/assets/{use-book-data-BHNW-mtj.js → use-book-data-BJgo-RvZ.js} +1 -1
- package/dist/assets/useSettingsLabel-BJ1_MAmi.js +1 -0
- package/dist/assets/{vendor-charts-C9Rg4sGZ.js → vendor-charts-BbCFozUm.js} +3 -3
- package/dist/assets/{vendor-i18n-CJQUqRO0.js → vendor-i18n-ign3ofvT.js} +1 -1
- package/dist/assets/vendor-objectstack-ChpQDQzo.js +160 -0
- package/dist/assets/{vennDiagram-L72KCM5P-CL2kA9j_.js → vennDiagram-L72KCM5P-NYy-CpuJ.js} +1 -1
- package/dist/assets/{wardleyDiagram-EHGQE667-C2amdvDW.js → wardleyDiagram-EHGQE667-CB-LOOnu.js} +1 -1
- package/dist/assets/{xychartDiagram-FW5EYKEG-BgaF79Q6.js → xychartDiagram-FW5EYKEG-C04Hz7Q2.js} +2 -2
- package/dist/index.html +4 -4
- package/package.json +3 -2
- package/dist/assets/ApprovalsInboxPage-BezeS0Ba.js +0 -1
- package/dist/assets/AuditLogPage-BU6pDzCM.js +0 -1
- package/dist/assets/CreateViewDialog-CbODG8cr.js +0 -1
- package/dist/assets/ExpressionProvider-rrd8nTWz.js +0 -1
- package/dist/assets/FlowRunsPage-BUoUJIcB.js +0 -1
- package/dist/assets/InterfaceListPage-MefSdQ3L.js +0 -1
- package/dist/assets/MarketplaceAccessDenied-CXpRKhbs.js +0 -1
- package/dist/assets/MarketplacePackagePage-CfD4P1wE.js +0 -4
- package/dist/assets/ObjectDataPage-wTA2HFI2.js +0 -1
- package/dist/assets/PageView-C9Hwdfsl.js +0 -1
- package/dist/assets/ProfilePage-BQwxaOB7.js +0 -1
- package/dist/assets/PublicFormsPage-geV1om2C.js +0 -1
- package/dist/assets/RecordDetailView-BzGkapku.js +0 -9
- package/dist/assets/RecordFormPage-DBo0eZ72.js +0 -1
- package/dist/assets/ReportDefaultInspector-B7Nn-A6p.js +0 -3
- package/dist/assets/SettingsView-CrgWUS7G.js +0 -1
- package/dist/assets/channel-DWZQ9vnS.js +0 -1
- package/dist/assets/chunk-VAUOI2AC-C6BaCKWp.js +0 -1
- package/dist/assets/chunk-XXDRQBXY-DzukX8IV.js +0 -1
- package/dist/assets/classDiagram-OUVF2IWQ-DSs52z7w.js +0 -1
- package/dist/assets/classDiagram-v2-EOCWNBFH-DSs52z7w.js +0 -1
- package/dist/assets/data-adapter-ZwwuAvBG.js +0 -15
- package/dist/assets/flowDiagram-23GEKE2U-DkFOQ3_z.js +0 -1
- package/dist/assets/framework-DAbnem-u.js +0 -8
- package/dist/assets/getIcon-BLwvtaQI.js +0 -1
- package/dist/assets/index-BOGrThXK.css +0 -2
- package/dist/assets/index-C-dRvT9u.js +0 -2
- package/dist/assets/infrastructure-VRE-mbZZ.js +0 -3
- package/dist/assets/mermaid-GHXKKRXX-cZg7E0Lp.js +0 -1
- package/dist/assets/metadata-admin-CKjub8vw.js +0 -25
- package/dist/assets/plugin-calendar-DJdKEkjk.js +0 -1
- package/dist/assets/plugin-charts-DHSgUtpJ.js +0 -7
- package/dist/assets/plugin-chatbot-BjhIyyNM.js +0 -120
- package/dist/assets/plugin-dashboard-CjPCmbr_.js +0 -6
- package/dist/assets/plugin-form-BZooMe4v.js +0 -1
- package/dist/assets/plugin-gantt-C90gyywF.js +0 -63
- package/dist/assets/plugin-grid-UMSBKycd.js +0 -8
- package/dist/assets/plugin-kanban-CTnqV9IW.js +0 -1
- package/dist/assets/plugin-map-DjnC4ang.js +0 -1
- package/dist/assets/plugin-report-BgaatGo3.js +0 -59
- package/dist/assets/plugin-timeline-CqKcdOFC.js +0 -1
- package/dist/assets/plugin-tree-D73sSC3j.js +0 -1
- package/dist/assets/plugin-view-DG76zFsz.js +0 -1
- package/dist/assets/plugins-views-UwSroJxp.js +0 -4
- package/dist/assets/src-DTHo8Eqq.js +0 -1
- package/dist/assets/src-DjmHjms3.js +0 -19
- package/dist/assets/stateDiagram-v2-6OUMAXLB-CCWWu2-O.js +0 -1
- package/dist/assets/swimlanesDiagram-G3AALYLV-C8YV1J6I.js +0 -8
- package/dist/assets/ui-components-Xu43SW6A.js +0 -72
- package/dist/assets/useSettingsLabel-CgY3RtGh.js +0 -1
- package/dist/assets/vendor-objectstack-Bs6C4qGH.js +0 -122
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./ui-components-BL3SEdAz.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{o as e,r as t}from"./rolldown-runtime-DAXXjFlN.js";import{g as n,m as r,r as i,y as a}from"./vendor-react-20ydC9aZ.js";import{_ as o}from"./infrastructure-VRE-mbZZ.js";import{M as s,j as c,v as l}from"./framework-DAbnem-u.js";import{Bi as u,Br as d,Jc as f,Nr as p,Qa as m,ei as h,ha as g,nt as _,oc as v,ot as y,rt as b}from"./ui-components-Xu43SW6A.js";import"./AdapterProvider-ClCj6PTd.js";import"./MetadataProvider-CaobQzBK.js";import{r as x}from"./ExpressionProvider-rrd8nTWz.js";import{t as S}from"./preferLocal-CKqyhTP9.js";import{h as C,i as w,r as T}from"./i18n-B4M18fi2.js";import{o as E}from"./createDerive-DGPok8w-.js";import{n as D}from"./ReportDefaultInspector-B7Nn-A6p.js";import{n as O,t as k}from"./MetadataInspector-BT_WB0Z2.js";import{a as A,i as j,n as M,r as N}from"./runtime-metadata-persistence-C6n6ChsE.js";import{r as ee}from"./plugin-dashboard-CjPCmbr_.js";import{t as P}from"./useOpenRecordList-DJ-uAshJ.js";var F=e(a(),1),I=i();function L({type:e,name:t,metadataClient:n,dirty:r,onResume:i,onAfterChange:a,savedSignal:o}){let s=C(),[c,l]=(0,F.useState)(!1),[d,f]=(0,F.useState)(!1),g=(0,F.useRef)(null),_=(0,F.useCallback)(async()=>{if(!t||!n){l(!1);return}let r;try{r=await A(e,t,{metadataClient:n})}catch{l(!1);return}if(l(!!r),r&&i&&g.current!==t){g.current=t;try{i(r)}catch(e){console.error(`[RuntimeDraftBar] Resume draft failed:`,e)}}},[e,t,n,i]);(0,F.useEffect)(()=>{_()},[_]);let v=(0,F.useRef)(o);(0,F.useEffect)(()=>{o!==v.current&&(v.current=o,o&&l(!0))},[o]);let y=(0,F.useCallback)(async()=>{if(t){f(!0);try{await j(e,t,{metadataClient:n}),l(!1),a?.()}catch(e){console.error(`[RuntimeDraftBar] Publish failed:`,e)}finally{f(!1)}}},[e,t,n,a]),b=(0,F.useCallback)(async()=>{if(t&&!(typeof confirm==`function`&&!confirm(w(`engine.edit.discardDraftConfirm`,s,{type:e,name:t})))){f(!0);try{await M(e,t,{metadataClient:n}),l(!1),a?.()}catch(e){console.error(`[RuntimeDraftBar] Discard draft failed:`,e)}finally{f(!1)}}},[e,t,n,a,s]);return c?(0,I.jsxs)(`div`,{className:`mr-auto flex items-center gap-2`,"data-testid":`runtime-draft-bar`,children:[(0,I.jsxs)(`span`,{className:`text-xs text-amber-700 dark:text-amber-400`,title:T(`engine.edit.draftPending`,s),"data-testid":`runtime-draft-indicator`,children:[`● `,T(`engine.edit.draftPending`,s)]}),(0,I.jsx)(p,{variant:`ghost`,size:`sm`,onClick:b,disabled:d,className:`h-7 w-7 p-0 text-muted-foreground`,title:T(`engine.edit.discardDraft`,s),"aria-label":T(`engine.edit.discardDraft`,s),"data-testid":`runtime-draft-discard`,children:(0,I.jsx)(h,{className:`h-3.5 w-3.5`})}),(0,I.jsx)(p,{size:`sm`,onClick:y,disabled:d||r,className:`h-7 px-2 bg-emerald-600 hover:bg-emerald-700 text-emerald-50`,title:T(r?`engine.edit.publishBlockedDirty`:`engine.edit.publish`,s),"data-testid":`runtime-draft-publish`,children:d?(0,I.jsx)(m,{className:`h-3.5 w-3.5 animate-spin`}):(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(u,{className:`h-3.5 w-3.5 mr-1`}),T(`engine.edit.publish`,s)]})})]}):null}function R({open:e,onClose:t,config:n,onSave:r,onFieldChange:i,name:a,metadataClient:o,onAfterChange:s}){let{t:c}=f(),l=C(),[u,m]=(0,F.useState)(!1),h=(0,F.useMemo)(()=>({...n??{}}),[n]),[g,_]=(0,F.useState)(h),v=(0,F.useRef)(g),y=(0,F.useRef)(h);y.current!==h&&(y.current=h,v.current=h,_(h),m(!1));let b=(0,F.useCallback)(e=>{let t={...v.current,...e};if(v.current=t,_(t),m(!0),i)for(let[n,r]of Object.entries(e))i(n,r,t)},[i]),x=(0,F.useCallback)(()=>{r(v.current),m(!1),t()},[r,t]),S=(0,F.useCallback)(e=>{let t={...e};v.current=t,_(t),m(!1)},[]),w=(0,F.useCallback)(()=>{t()},[t]);return e?(0,I.jsxs)(`aside`,{className:`hidden sm:flex w-[440px] shrink-0 flex-col border-l bg-background h-full`,"data-testid":`report-config-panel`,role:`complementary`,"aria-label":c(`report.editor.title`,{defaultValue:`Edit report`}),children:[(0,I.jsxs)(`div`,{className:`flex items-center justify-between gap-2 border-b px-4 py-2.5 shrink-0`,children:[(0,I.jsx)(`div`,{className:`text-sm font-medium truncate`,children:c(`report.editor.title`,{defaultValue:`Edit report`})}),(0,I.jsx)(p,{variant:`ghost`,size:`sm`,onClick:t,className:`h-7 w-7 p-0`,"aria-label":c(`common.close`,{defaultValue:`Close`}),"data-testid":`report-config-close`,children:(0,I.jsx)(d,{className:`h-4 w-4`})})]}),(0,I.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto`,children:(0,I.jsx)(D,{type:`report`,name:typeof g.name==`string`?g.name:``,draft:g,readOnly:!1,locale:l,onPatch:b})}),(0,I.jsxs)(`div`,{"data-testid":`report-config-footer`,className:`flex items-center justify-end gap-2 border-t px-4 py-2.5 shrink-0`,children:[(0,I.jsx)(L,{type:`report`,name:a,metadataClient:o,dirty:u,onResume:S,onAfterChange:s}),(0,I.jsx)(p,{variant:`ghost`,size:`sm`,onClick:w,"data-testid":`report-config-discard`,children:c(`common.cancel`,{defaultValue:`Cancel`})}),(0,I.jsx)(p,{size:`sm`,onClick:x,"data-testid":`report-config-save`,children:c(`common.save`,{defaultValue:`Save`})})]})]}):null}var z=t({ReportView:()=>B}),te=(0,F.lazy)(()=>n(()=>import(`./plugin-report-BgaatGo3.js`).then(e=>e.t).then(e=>({default:e.ReportRenderer})),__vite__mapDeps([0]),import.meta.url)),ne=[{value:`month`,label:`Month`,type:`text`},{value:`revenue`,label:`Revenue`,type:`number`},{value:`count`,label:`Count`,type:`number`},{value:`region`,label:`Region`,type:`text`},{value:`product`,label:`Product`,type:`text`},{value:`source`,label:`Lead Source`,type:`text`},{value:`stage`,label:`Stage`,type:`text`},{value:`amount`,label:`Amount`,type:`number`}];function B({dataSource:e}){let{t}=f(),{reportName:n}=r(),{showDebug:i}=O();c();let a=E(),u=o(),[d,p]=(0,F.useState)(!1),[h,C]=(0,F.useState)(0),{reports:w,objects:T,loading:D,refresh:A}=s(),{app:j}=x(),M=S(w,n,j?._packageId),[L,z]=(0,F.useState)(M),[B,V]=(0,F.useState)(null),[H,U]=(0,F.useState)([]),W=P(),[G,K]=(0,F.useState)(null),q=(0,F.useCallback)(e=>{if(!e||!T?.length)return;let t=T.find(t=>t.name===e);if(!t?.fields)return;let n=t.fields;return Array.isArray(n)?n.map(e=>typeof e==`string`?{value:e,label:e,type:`text`}:{value:e.name,label:e.label||e.name,type:e.type||`text`}):Object.entries(n).map(([e,t])=>({value:e,label:t.label||e,type:t.type||`text`}))},[T]),J=(0,F.useCallback)(async({dataset:e,groupKey:t,object:n,objectFilter:r})=>{try{let i=Object.values(t).filter(e=>e!=null).map(e=>String(e)).join(` / `)||String(L?.label??L?.name??`Details`);if(n&&r){K({object:n,filter:r,title:i});return}let o=await a.get(`dataset`,e),s=typeof o?.object==`string`?o.object:void 0;if(!s)return;let c=Array.isArray(o?.dimensions)?o.dimensions:[],l=new Map(c.filter(e=>e?.name).map(e=>[e.name,e])),u=T?.find(e=>e.name===s)?.fields,d=e=>{if(Array.isArray(u))return u.find(t=>t?.name===e);if(u&&typeof u==`object`)return u[e]},f={};for(let[e,n]of Object.entries(t)){if(n==null)continue;let t=l.get(e);if(t?.dateGranularity)continue;let r=t?.field||e,i=d(r);if(i?.type===`lookup`||i?.type===`master_detail`)continue;let a=n;if(Array.isArray(i?.options)){let e=i.options.find(e=>e?.label===n||e?.value===n);e&&e.value!=null&&(a=e.value)}f[r]=a}K({object:s,filter:f,title:i})}catch(e){console.warn(`ReportView: drill failed`,e)}},[a,T,L]),Y=(0,F.useMemo)(()=>{let e=B||L,t=e?.objectName||e?.dataSource?.object||e?.dataSource?.resource;return q(t)??ne},[B,L,q]),X=(0,F.useCallback)(async e=>{try{a&&(await N(`report`,n,e,{metadataClient:a}),A().catch(()=>{}))}catch(e){console.warn(`[ReportView] Auto-save failed:`,e)}},[a,n,A]),re=(0,F.useCallback)(()=>{V(L),p(!0),C(e=>e+1)},[L]),ie=(0,F.useCallback)(()=>{p(!1)},[]),Z=(0,F.useMemo)(()=>B||L,[h]),ae=(0,F.useCallback)(e=>{V(e),X(e),C(e=>e+1)},[X]),oe=(0,F.useCallback)((e,t)=>{V(n=>({...n,[e]:t}))},[]);(0,F.useEffect)(()=>{z(M)},[M]),(0,F.useEffect)(()=>{d||V(null)},[M]);let Q=B||L,se=(0,F.useMemo)(()=>JSON.stringify(Q?.filters),[Q?.filters]),ce=(0,F.useMemo)(()=>JSON.stringify(Q?.dataSource),[Q?.dataSource]),le=(0,F.useMemo)(()=>JSON.stringify(Q?.data),[Q?.data]);if((0,F.useEffect)(()=>{if(!Q||!e){U([]);return}if(Q.data&&Array.isArray(Q.data)){U(Q.data);return}if(Q.dataSource){(async()=>{try{let t=Q.dataSource.object||Q.dataSource.resource;if(!t){console.warn(`ReportView: dataSource missing object/resource property`),U([]);return}let n=await e.find(t,{$filter:Q.dataSource.filter,$orderby:Q.dataSource.sort,$top:Q.dataSource.limit});U(n.data||[])}catch(e){console.error(`ReportView: Failed to load data from dataSource`,e),U([])}})();return}if(Q.objectName){(async()=>{try{let t=await e.find(Q.objectName,{$filter:Q.filters,$orderby:Q.sort,$top:Q.limit||100});U(t.data||[])}catch(e){console.error(`ReportView: Failed to load data from objectName`,e),U([])}})();return}U([])},[Q?.objectName,Q?.limit,se,ce,le,e]),D)return(0,I.jsx)(`div`,{className:`h-full flex items-center justify-center p-8`,children:(0,I.jsx)(m,{className:`h-8 w-8 animate-spin text-muted-foreground`})});if(!M||!L)return!D&&!M?(0,I.jsx)(`div`,{className:`h-full flex items-center justify-center p-8`,children:(0,I.jsxs)(_,{children:[(0,I.jsx)(`div`,{className:`mx-auto mb-4 flex h-12 w-12 items-center justify-center rounded-full bg-muted`,children:(0,I.jsx)(v,{className:`h-6 w-6 text-muted-foreground`})}),(0,I.jsx)(y,{children:t(`empty.reportNotFound`)}),(0,I.jsx)(b,{children:t(`empty.reportNotFoundDescription`,{name:n})})]})}):(0,I.jsx)(`div`,{className:`h-full flex items-center justify-center p-8`,children:(0,I.jsx)(m,{className:`h-8 w-8 animate-spin text-muted-foreground`})});let $=B||L;return(0,I.jsxs)(l,{value:{openRecordList:W},children:[(0,I.jsxs)(`div`,{className:`flex flex-col h-full overflow-hidden bg-background`,children:[(0,I.jsxs)(`div`,{className:`flex flex-col sm:flex-row justify-between sm:items-center gap-3 sm:gap-4 p-4 sm:p-6 border-b shrink-0`,children:[(0,I.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,I.jsx)(`h1`,{className:`text-lg sm:text-xl md:text-2xl font-bold tracking-tight truncate`,children:$.title||$.label||`Report Viewer`}),$.description&&(0,I.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1 line-clamp-2`,children:$.description})]}),(0,I.jsx)(`div`,{className:`shrink-0 flex items-center gap-1.5`,children:u&&(0,I.jsxs)(`button`,{type:`button`,onClick:re,className:`inline-flex items-center gap-1.5 rounded-md border border-input bg-background px-2.5 py-1.5 text-xs font-medium text-muted-foreground shadow-sm hover:bg-accent hover:text-accent-foreground`,"data-testid":`report-edit-button`,children:[(0,I.jsx)(g,{className:`h-3.5 w-3.5`}),t(`common.edit`)]})})]}),(0,I.jsxs)(`div`,{className:`flex-1 overflow-hidden flex flex-col sm:flex-row relative`,children:[(0,I.jsx)(`div`,{className:`flex-1 min-w-0 overflow-auto p-4 sm:p-6 lg:p-8 bg-muted/5`,children:(0,I.jsx)(`div`,{className:`w-full shadow-sm border rounded-lg sm:rounded-xl bg-background overflow-hidden min-h-150`,children:(0,I.jsx)(F.Suspense,{fallback:(0,I.jsx)(`div`,{className:`p-8 text-sm text-muted-foreground`,children:t(`common.loading`,{defaultValue:`Loading…`})}),children:(0,I.jsx)(`div`,{className:`p-4 sm:p-6`,children:(0,I.jsx)(te,{schema:$,dataSource:e,rows:H,onDrill:J})})})})}),(0,I.jsx)(R,{open:d&&u,onClose:ie,config:Z,onSave:ae,onFieldChange:oe,availableFields:Y,getFieldsForObject:q,name:n,metadataClient:a,onAfterChange:()=>A().catch(()=>{})}),(0,I.jsx)(k,{open:i,sections:[{title:`Report Configuration`,data:$}]})]})]}),(0,I.jsx)(ee,{open:!!G,onClose:()=>K(null),title:G?.title??``,objectName:G?.object??``,filter:G?.filter,dataSource:e})]})}export{L as n,z as t};
|
|
2
|
+
import{o as e,r as t}from"./rolldown-runtime-DAXXjFlN.js";import{g as n,m as r,r as i,y as a}from"./vendor-react-20ydC9aZ.js";import{g as o}from"./infrastructure-EMqAhl6J.js";import{N as s,P as c,b as l}from"./framework-xOBpLspS.js";import{Ca as u,Kr as d,ct as f,dt as p,hc as m,il as h,oi as g,qi as _,so as v,st as y,zr as b}from"./ui-components-C5rSjsFE.js";import"./AdapterProvider-DCL4oNgv.js";import"./MetadataProvider-Y0oNNDXh.js";import{r as x}from"./ExpressionProvider-BLhGrCBw.js";import{t as S}from"./preferLocal-CKqyhTP9.js";import{h as C,i as w,r as T}from"./i18n-CWXRbuYk.js";import{o as E}from"./createDerive-DDuw-xzg.js";import{n as D}from"./ReportDefaultInspector-B3KEMC9M.js";import{n as O,t as k}from"./MetadataInspector-9pMeoWpd.js";import{a as A,i as j,n as M,r as N}from"./runtime-metadata-persistence-D0qPKjRP.js";import{r as ee}from"./plugin-dashboard-QnlQx94Y.js";import{t as P}from"./useOpenRecordList-DJ-uAshJ.js";var F=e(a(),1),I=i();function L({type:e,name:t,metadataClient:n,dirty:r,onResume:i,onAfterChange:a,savedSignal:o}){let s=C(),[c,l]=(0,F.useState)(!1),[u,d]=(0,F.useState)(!1),f=(0,F.useRef)(null),p=(0,F.useCallback)(async()=>{if(!t||!n){l(!1);return}let r;try{r=await A(e,t,{metadataClient:n})}catch{l(!1);return}if(l(!!r),r&&i&&f.current!==t){f.current=t;try{i(r)}catch(e){console.error(`[RuntimeDraftBar] Resume draft failed:`,e)}}},[e,t,n,i]);(0,F.useEffect)(()=>{p()},[p]);let m=(0,F.useRef)(o);(0,F.useEffect)(()=>{o!==m.current&&(m.current=o,o&&l(!0))},[o]);let h=(0,F.useCallback)(async()=>{if(t){d(!0);try{await j(e,t,{metadataClient:n}),l(!1),a?.()}catch(e){console.error(`[RuntimeDraftBar] Publish failed:`,e)}finally{d(!1)}}},[e,t,n,a]),y=(0,F.useCallback)(async()=>{if(t&&!(typeof confirm==`function`&&!confirm(w(`engine.edit.discardDraftConfirm`,s,{type:e,name:t})))){d(!0);try{await M(e,t,{metadataClient:n}),l(!1),a?.()}catch(e){console.error(`[RuntimeDraftBar] Discard draft failed:`,e)}finally{d(!1)}}},[e,t,n,a,s]);return c?(0,I.jsxs)(`div`,{className:`mr-auto flex items-center gap-2`,"data-testid":`runtime-draft-bar`,children:[(0,I.jsxs)(`span`,{className:`text-xs text-amber-700 dark:text-amber-400`,title:T(`engine.edit.draftPending`,s),"data-testid":`runtime-draft-indicator`,children:[`● `,T(`engine.edit.draftPending`,s)]}),(0,I.jsx)(b,{variant:`ghost`,size:`sm`,onClick:y,disabled:u,className:`h-7 w-7 p-0 text-muted-foreground`,title:T(`engine.edit.discardDraft`,s),"aria-label":T(`engine.edit.discardDraft`,s),"data-testid":`runtime-draft-discard`,children:(0,I.jsx)(g,{className:`h-3.5 w-3.5`})}),(0,I.jsx)(b,{size:`sm`,onClick:h,disabled:u||r,className:`h-7 px-2 bg-emerald-600 hover:bg-emerald-700 text-emerald-50`,title:T(r?`engine.edit.publishBlockedDirty`:`engine.edit.publish`,s),"data-testid":`runtime-draft-publish`,children:u?(0,I.jsx)(v,{className:`h-3.5 w-3.5 animate-spin`}):(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(_,{className:`h-3.5 w-3.5 mr-1`}),T(`engine.edit.publish`,s)]})})]}):null}function R({open:e,onClose:t,config:n,onSave:r,onFieldChange:i,name:a,metadataClient:o,onAfterChange:s}){let{t:c}=h(),l=C(),[u,f]=(0,F.useState)(!1),p=(0,F.useMemo)(()=>({...n??{}}),[n]),[m,g]=(0,F.useState)(p),_=(0,F.useRef)(m),v=(0,F.useRef)(p);v.current!==p&&(v.current=p,_.current=p,g(p),f(!1));let y=(0,F.useCallback)(e=>{let t={..._.current,...e};if(_.current=t,g(t),f(!0),i)for(let[n,r]of Object.entries(e))i(n,r,t)},[i]),x=(0,F.useCallback)(()=>{r(_.current),f(!1),t()},[r,t]),S=(0,F.useCallback)(e=>{let t={...e};_.current=t,g(t),f(!1)},[]),w=(0,F.useCallback)(()=>{t()},[t]);return e?(0,I.jsxs)(`aside`,{className:`hidden sm:flex w-[440px] shrink-0 flex-col border-l bg-background h-full`,"data-testid":`report-config-panel`,role:`complementary`,"aria-label":c(`report.editor.title`,{defaultValue:`Edit report`}),children:[(0,I.jsxs)(`div`,{className:`flex items-center justify-between gap-2 border-b px-4 py-2.5 shrink-0`,children:[(0,I.jsx)(`div`,{className:`text-sm font-medium truncate`,children:c(`report.editor.title`,{defaultValue:`Edit report`})}),(0,I.jsx)(b,{variant:`ghost`,size:`sm`,onClick:t,className:`h-7 w-7 p-0`,"aria-label":c(`common.close`,{defaultValue:`Close`}),"data-testid":`report-config-close`,children:(0,I.jsx)(d,{className:`h-4 w-4`})})]}),(0,I.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto`,children:(0,I.jsx)(D,{type:`report`,name:typeof m.name==`string`?m.name:``,draft:m,readOnly:!1,locale:l,onPatch:y})}),(0,I.jsxs)(`div`,{"data-testid":`report-config-footer`,className:`flex items-center justify-end gap-2 border-t px-4 py-2.5 shrink-0`,children:[(0,I.jsx)(L,{type:`report`,name:a,metadataClient:o,dirty:u,onResume:S,onAfterChange:s}),(0,I.jsx)(b,{variant:`ghost`,size:`sm`,onClick:w,"data-testid":`report-config-discard`,children:c(`common.cancel`,{defaultValue:`Cancel`})}),(0,I.jsx)(b,{size:`sm`,onClick:x,"data-testid":`report-config-save`,children:c(`common.save`,{defaultValue:`Save`})})]})]}):null}var z=t({ReportView:()=>B}),te=(0,F.lazy)(()=>n(()=>import(`./plugin-report-4ufmhN37.js`).then(e=>e.t).then(e=>({default:e.ReportRenderer})),__vite__mapDeps([0]),import.meta.url)),ne=[{value:`month`,label:`Month`,type:`text`},{value:`revenue`,label:`Revenue`,type:`number`},{value:`count`,label:`Count`,type:`number`},{value:`region`,label:`Region`,type:`text`},{value:`product`,label:`Product`,type:`text`},{value:`source`,label:`Lead Source`,type:`text`},{value:`stage`,label:`Stage`,type:`text`},{value:`amount`,label:`Amount`,type:`number`}];function B({dataSource:e}){let{t}=h(),{reportName:n}=r(),{showDebug:i}=O();s();let a=E(),d=o(),[g,_]=(0,F.useState)(!1),[b,C]=(0,F.useState)(0),{reports:w,objects:T,loading:D,refresh:A}=c(),{app:j}=x(),M=S(w,n,j?._packageId),[L,z]=(0,F.useState)(M),[B,V]=(0,F.useState)(null),[H,U]=(0,F.useState)([]),W=P(),[G,K]=(0,F.useState)(null),q=(0,F.useCallback)(e=>{if(!e||!T?.length)return;let t=T.find(t=>t.name===e);if(!t?.fields)return;let n=t.fields;return Array.isArray(n)?n.map(e=>typeof e==`string`?{value:e,label:e,type:`text`}:{value:e.name,label:e.label||e.name,type:e.type||`text`}):Object.entries(n).map(([e,t])=>({value:e,label:t.label||e,type:t.type||`text`}))},[T]),J=(0,F.useCallback)(async({dataset:e,groupKey:t,object:n,objectFilter:r})=>{try{let i=Object.values(t).filter(e=>e!=null).map(e=>String(e)).join(` / `)||String(L?.label??L?.name??`Details`);if(n&&r){K({object:n,filter:r,title:i});return}let o=await a.get(`dataset`,e),s=typeof o?.object==`string`?o.object:void 0;if(!s)return;let c=Array.isArray(o?.dimensions)?o.dimensions:[],l=new Map(c.filter(e=>e?.name).map(e=>[e.name,e])),u=T?.find(e=>e.name===s)?.fields,d=e=>{if(Array.isArray(u))return u.find(t=>t?.name===e);if(u&&typeof u==`object`)return u[e]},f={};for(let[e,n]of Object.entries(t)){if(n==null)continue;let t=l.get(e);if(t?.dateGranularity)continue;let r=t?.field||e,i=d(r);if(i?.type===`lookup`||i?.type===`master_detail`)continue;let a=n;if(Array.isArray(i?.options)){let e=i.options.find(e=>e?.label===n||e?.value===n);e&&e.value!=null&&(a=e.value)}f[r]=a}K({object:s,filter:f,title:i})}catch(e){console.warn(`ReportView: drill failed`,e)}},[a,T,L]),Y=(0,F.useMemo)(()=>{let e=B||L,t=e?.objectName||e?.dataSource?.object||e?.dataSource?.resource;return q(t)??ne},[B,L,q]),X=(0,F.useCallback)(async e=>{try{a&&(await N(`report`,n,e,{metadataClient:a}),A().catch(()=>{}))}catch(e){console.warn(`[ReportView] Auto-save failed:`,e)}},[a,n,A]),re=(0,F.useCallback)(()=>{V(L),_(!0),C(e=>e+1)},[L]),ie=(0,F.useCallback)(()=>{_(!1)},[]),ae=(0,F.useMemo)(()=>B||L,[b]),Z=(0,F.useCallback)(e=>{V(e),X(e),C(e=>e+1)},[X]),oe=(0,F.useCallback)((e,t)=>{V(n=>({...n,[e]:t}))},[]);(0,F.useEffect)(()=>{z(M)},[M]),(0,F.useEffect)(()=>{g||V(null)},[M]);let Q=B||L,se=(0,F.useMemo)(()=>JSON.stringify(Q?.filters),[Q?.filters]),ce=(0,F.useMemo)(()=>JSON.stringify(Q?.dataSource),[Q?.dataSource]),le=(0,F.useMemo)(()=>JSON.stringify(Q?.data),[Q?.data]);if((0,F.useEffect)(()=>{if(!Q||!e){U([]);return}if(Q.data&&Array.isArray(Q.data)){U(Q.data);return}if(Q.dataSource){(async()=>{try{let t=Q.dataSource.object||Q.dataSource.resource;if(!t){console.warn(`ReportView: dataSource missing object/resource property`),U([]);return}let n=await e.find(t,{$filter:Q.dataSource.filter,$orderby:Q.dataSource.sort,$top:Q.dataSource.limit});U(n.data||[])}catch(e){console.error(`ReportView: Failed to load data from dataSource`,e),U([])}})();return}if(Q.objectName){(async()=>{try{let t=await e.find(Q.objectName,{$filter:Q.filters,$orderby:Q.sort,$top:Q.limit||100});U(t.data||[])}catch(e){console.error(`ReportView: Failed to load data from objectName`,e),U([])}})();return}U([])},[Q?.objectName,Q?.limit,se,ce,le,e]),D)return(0,I.jsx)(`div`,{className:`h-full flex items-center justify-center p-8`,children:(0,I.jsx)(v,{className:`h-8 w-8 animate-spin text-muted-foreground`})});if(!M||!L)return!D&&!M?(0,I.jsx)(`div`,{className:`h-full flex items-center justify-center p-8`,children:(0,I.jsxs)(y,{children:[(0,I.jsx)(`div`,{className:`mx-auto mb-4 flex h-12 w-12 items-center justify-center rounded-full bg-muted`,children:(0,I.jsx)(m,{className:`h-6 w-6 text-muted-foreground`})}),(0,I.jsx)(p,{children:t(`empty.reportNotFound`)}),(0,I.jsx)(f,{children:t(`empty.reportNotFoundDescription`,{name:n})})]})}):(0,I.jsx)(`div`,{className:`h-full flex items-center justify-center p-8`,children:(0,I.jsx)(v,{className:`h-8 w-8 animate-spin text-muted-foreground`})});let $=B||L;return(0,I.jsxs)(l,{value:{openRecordList:W},children:[(0,I.jsxs)(`div`,{className:`flex flex-col h-full overflow-hidden bg-background`,children:[(0,I.jsxs)(`div`,{className:`flex flex-col sm:flex-row justify-between sm:items-center gap-3 sm:gap-4 p-4 sm:p-6 border-b shrink-0`,children:[(0,I.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,I.jsx)(`h1`,{className:`text-lg sm:text-xl md:text-2xl font-bold tracking-tight truncate`,children:$.title||$.label||`Report Viewer`}),$.description&&(0,I.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1 line-clamp-2`,children:$.description})]}),(0,I.jsx)(`div`,{className:`shrink-0 flex items-center gap-1.5`,children:d&&(0,I.jsxs)(`button`,{type:`button`,onClick:re,className:`inline-flex items-center gap-1.5 rounded-md border border-input bg-background px-2.5 py-1.5 text-xs font-medium text-muted-foreground shadow-sm hover:bg-accent hover:text-accent-foreground`,"data-testid":`report-edit-button`,children:[(0,I.jsx)(u,{className:`h-3.5 w-3.5`}),t(`common.edit`)]})})]}),(0,I.jsxs)(`div`,{className:`flex-1 overflow-hidden flex flex-col sm:flex-row relative`,children:[(0,I.jsx)(`div`,{className:`flex-1 min-w-0 overflow-auto p-4 sm:p-6 lg:p-8 bg-muted/5`,children:(0,I.jsx)(`div`,{className:`w-full shadow-sm border rounded-lg sm:rounded-xl bg-background overflow-hidden min-h-150`,children:(0,I.jsx)(F.Suspense,{fallback:(0,I.jsx)(`div`,{className:`p-8 text-sm text-muted-foreground`,children:t(`common.loading`,{defaultValue:`Loading…`})}),children:(0,I.jsx)(`div`,{className:`p-4 sm:p-6`,children:(0,I.jsx)(te,{schema:$,dataSource:e,rows:H,onDrill:J})})})})}),(0,I.jsx)(R,{open:g&&d,onClose:ie,config:ae,onSave:Z,onFieldChange:oe,availableFields:Y,getFieldsForObject:q,name:n,metadataClient:a,onAfterChange:()=>A().catch(()=>{})}),(0,I.jsx)(k,{open:i,sections:[{title:`Report Configuration`,data:$}]})]})]}),(0,I.jsx)(ee,{open:!!G,onClose:()=>K(null),title:G?.title??``,objectName:G?.object??``,filter:G?.filter,dataSource:e})]})}export{L as n,z as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e,r as t}from"./rolldown-runtime-DAXXjFlN.js";import{a as n,h as r,m as i,r as a,y as o}from"./vendor-react-20ydC9aZ.js";import{
|
|
1
|
+
import{o as e,r as t}from"./rolldown-runtime-DAXXjFlN.js";import{a as n,h as r,m as i,r as a,y as o}from"./vendor-react-20ydC9aZ.js";import{_ as s}from"./infrastructure-EMqAhl6J.js";import{N as c,P as l,Tn as u,l as d}from"./framework-xOBpLspS.js";import{Cr as f,Cs as p,Ji as m,Tn as h,Vc as g,_r as _,hc as v,il as y,ns as b,vo as x,vr as S}from"./ui-components-C5rSjsFE.js";import"./AdapterProvider-DCL4oNgv.js";import"./MetadataProvider-Y0oNNDXh.js";import{n as C}from"./ui-layout-D13CmhwI.js";import{i as w,t as T}from"./utils-CFdPTF34.js";import{t as E}from"./getIcon-yTDDbwhX.js";var D=t({SearchResultsPage:()=>N}),O=e(o(),1),k=a();function A(e){let t=[];for(let n of e)n.type===`group`&&n.children?t.push(...A(n.children)):t.push(n);return t}var j={object:p,dashboard:x,page:b,report:v},M={object:`bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200`,dashboard:`bg-purple-100 text-purple-800 dark:bg-purple-900 dark:text-purple-200`,page:`bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200`,report:`bg-orange-100 text-orange-800 dark:bg-orange-900 dark:text-orange-200`};function N(){let{t:e}=y(),{appName:t}=i(),[a,o]=r(),[v,b]=(0,O.useState)(a.get(`q`)||``),{apps:x,objects:D}=l(),N=x||[],P=(0,O.useMemo)(()=>D||[],[D]),F=w(N,t)||N[0],I=`/apps/${t}`,{user:L,activeOrganization:R}=s(),z=c(),B=(0,O.useMemo)(()=>{if(!F)return[];let e=A(F.navigation||[]),t={currentUserId:L?.id??null,currentOrgId:R?.id??null};return e.map(e=>{let{href:n}=C(e,I,t);return{id:e.id,label:e.label||e.objectName||e.dashboardName||e.pageName||e.reportName||``,href:n,type:e.type,description:e.description}}).filter(e=>e.href!==`#`)},[F,I,L?.id]),V=(0,O.useMemo)(()=>{if(!v.trim())return B;let e=v.toLowerCase();return B.filter(t=>t.label.toLowerCase().includes(e)||t.type.toLowerCase().includes(e)||t.description&&t.description.toLowerCase().includes(e))},[B,v]),H=e=>{b(e),o(e?{q:e}:{})},U=(0,O.useMemo)(()=>{let e={};for(let t of V)(e[t.type]||=[]).push(t);return e},[V]),{results:W,isSearching:G}=d({query:v,objects:P,dataSource:z,objectNames:(0,O.useMemo)(()=>F?A(F.navigation||[]).filter(e=>e.type===`object`&&typeof e.objectName==`string`).map(e=>e.objectName):[],[F]),enabled:!!z&&v.trim().length>=2,topPerObject:5,maxObjectsQueried:12,getDisplayName:u}),K=(0,O.useMemo)(()=>{let e=new Map;for(let t of P)typeof t?.name==`string`&&e.set(t.name,t);return e},[P]),q=(0,O.useMemo)(()=>{let t=[],n=new Map;for(let r of W){let i=n.get(r.objectName);if(!i){let a=K.get(r.objectName);i={label:T(a?.label,e)||r.objectLabel,icon:a?.icon??r.icon,hits:[]},n.set(r.objectName,i),t.push(r.objectName)}i.hits.push(r)}return t.map(e=>({objectName:e,...n.get(e)}))},[W,K,e]),J=V.length+W.length,Y=J>0;return(0,k.jsxs)(`div`,{className:`flex flex-col gap-6 p-4 sm:p-6 max-w-4xl mx-auto`,children:[(0,k.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,k.jsxs)(n,{to:I,className:`flex items-center gap-1 text-sm text-muted-foreground hover:text-foreground transition-colors`,children:[(0,k.jsx)(g,{className:`h-4 w-4`}),e(`search.back`)]}),(0,k.jsx)(`h1`,{className:`text-xl font-semibold`,children:e(`search.title`)})]}),(0,k.jsxs)(`div`,{className:`relative`,children:[(0,k.jsx)(`label`,{htmlFor:`search-results-input`,className:`sr-only`,children:e(`search.placeholder`)}),(0,k.jsx)(m,{className:`absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground`,"aria-hidden":`true`}),(0,k.jsx)(h,{id:`search-results-input`,value:v,onChange:e=>H(e.target.value),placeholder:e(`search.placeholder`),className:`pl-10 h-11 text-base`,autoFocus:!0})]}),(0,k.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-muted-foreground`,children:[(0,k.jsx)(`span`,{children:v.trim()?e(J===1?`search.resultsCount`:`search.resultsCountPlural`,{count:J,query:v}):e(`search.itemsAvailable`,{count:B.length})}),G&&(0,k.jsx)(`span`,{"aria-hidden":!0,className:`inline-block h-1.5 w-1.5 rounded-full bg-primary motion-safe:animate-pulse`})]}),!Y&&!G?(0,k.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-12 text-center`,children:[(0,k.jsx)(m,{className:`h-12 w-12 text-muted-foreground/30 mb-4`}),(0,k.jsx)(`p`,{className:`text-lg font-medium text-muted-foreground`,children:e(`search.noResults`)}),(0,k.jsx)(`p`,{className:`text-sm text-muted-foreground/80 mt-1`,children:e(`search.noResultsHint`)})]}):(0,k.jsxs)(`div`,{className:`space-y-6`,children:[q.map(e=>(0,k.jsxs)(`div`,{children:[(0,k.jsxs)(`h2`,{className:`text-sm font-medium text-muted-foreground mb-2 flex items-center gap-1.5`,children:[(0,k.jsx)(E(e.icon),{className:`h-4 w-4`}),e.label,(0,k.jsx)(f,{variant:`secondary`,className:`ml-1 text-xs`,children:e.hits.length})]}),(0,k.jsx)(`div`,{className:`grid gap-2`,children:e.hits.map(e=>{let t=E(e.icon);return(0,k.jsx)(n,{to:`${I}/${e.objectName}/record/${e.recordId}`,className:`rounded-lg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2`,children:(0,k.jsx)(_,{className:`hover:bg-accent/50 transition-colors cursor-pointer`,children:(0,k.jsxs)(S,{className:`flex items-center gap-3 p-3`,children:[(0,k.jsx)(`div`,{className:`flex h-8 w-8 items-center justify-center rounded bg-primary/10 text-primary`,children:(0,k.jsx)(t,{className:`h-4 w-4`})}),(0,k.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,k.jsx)(`p`,{className:`text-sm font-medium truncate`,children:e.display}),e.subtitle&&(0,k.jsx)(`p`,{className:`text-xs text-muted-foreground truncate`,children:e.subtitle})]})]})})},`${e.objectName}:${e.recordId}`)})})]},`records:${e.objectName}`)),Object.entries(U).map(([t,r])=>{let i=j[t]||p,a=`search.type${t.charAt(0).toUpperCase()}${t.slice(1)}s`;return(0,k.jsxs)(`div`,{children:[(0,k.jsxs)(`h2`,{className:`text-sm font-medium text-muted-foreground mb-2 flex items-center gap-1.5`,children:[(0,k.jsx)(i,{className:`h-4 w-4`}),e(a),(0,k.jsx)(f,{variant:`secondary`,className:`ml-1 text-xs`,children:r.length})]}),(0,k.jsx)(`div`,{className:`grid gap-2`,children:r.map(t=>{let r=j[t.type]||p,i=`search.badge${t.type.charAt(0).toUpperCase()}${t.type.slice(1)}`;return(0,k.jsx)(n,{to:t.href,className:`rounded-lg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2`,children:(0,k.jsx)(_,{className:`hover:bg-accent/50 transition-colors cursor-pointer`,children:(0,k.jsxs)(S,{className:`flex items-center gap-3 p-3`,children:[(0,k.jsx)(`div`,{className:`flex h-8 w-8 items-center justify-center rounded ${M[t.type]||``}`,children:(0,k.jsx)(r,{className:`h-4 w-4`})}),(0,k.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,k.jsx)(`p`,{className:`text-sm font-medium truncate`,children:t.label}),t.description&&(0,k.jsx)(`p`,{className:`text-xs text-muted-foreground truncate`,children:t.description})]}),(0,k.jsx)(f,{variant:`outline`,className:`text-xs shrink-0`,children:e(i)})]})})},t.id)})})]},t)})]})]})}export{D as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{f as t,r as n,y as r}from"./vendor-react-20ydC9aZ.js";import{
|
|
1
|
+
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{f as t,r as n,y as r}from"./vendor-react-20ydC9aZ.js";import{Cr as i,Gi as a,_r as o,an as s,br as c,il as l,vr as u,xr as d,yr as f}from"./ui-components-C5rSjsFE.js";import{c as p,i as m,n as h,t as g}from"./useSettingsLabel-BJ1_MAmi.js";var _=e(r(),1),v=n();function y({m:e,onOpen:t}){let{t:n}=l(),r=g(e.namespace),s=e.icon?p(e.icon):a,m=h(e.label),_=r.title(m),y=r.description(e.description??void 0);return(0,v.jsxs)(o,{className:`cursor-pointer hover:border-primary/50 hover:shadow-sm transition-all`,onClick:t,children:[(0,v.jsxs)(c,{className:`pb-3`,children:[(0,v.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,v.jsx)(s,{className:`h-6 w-6 text-muted-foreground`}),e.beta?(0,v.jsx)(i,{variant:`secondary`,className:`text-[10px]`,children:n(`console.settingsHub.beta`)}):null]}),(0,v.jsx)(d,{className:`text-base mt-2`,children:_}),y?(0,v.jsx)(f,{className:`text-xs`,children:y}):null]}),(0,v.jsx)(u,{className:`pt-0`,children:(0,v.jsx)(`div`,{className:`text-[11px] text-muted-foreground`,children:n(`console.settingsHub.settingsCount`,{n:e.specifiers.length})})})]})}function b(){let e=t(),{t:n}=l(),[r,i]=(0,_.useState)(null),[c,d]=(0,_.useState)(null);(0,_.useEffect)(()=>{m().then(e=>i(e.manifests??[])).catch(e=>d(e?.message??n(`console.settingsHub.loadError`)))},[n]);let f=(0,_.useMemo)(()=>{if(!r)return null;let e=new Map;for(let t of[...r].sort((e,t)=>(e.order??999)-(t.order??999))){let n=t.category??`Other`,r=e.get(n)??[];r.push(t),e.set(n,r)}return e},[r]);return(0,v.jsxs)(`div`,{className:`p-6 max-w-6xl mx-auto`,children:[(0,v.jsxs)(`div`,{className:`flex items-center gap-3 mb-6`,children:[(0,v.jsx)(a,{className:`h-7 w-7 text-muted-foreground`}),(0,v.jsxs)(`div`,{children:[(0,v.jsx)(`h1`,{className:`text-2xl font-semibold tracking-tight`,children:n(`console.settingsHub.title`)}),(0,v.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:n(`console.settingsHub.subtitle`)})]})]}),c?(0,v.jsx)(o,{children:(0,v.jsx)(u,{className:`py-8 text-center text-sm text-destructive`,children:c})}):null,r?r.length===0?(0,v.jsx)(o,{children:(0,v.jsx)(u,{className:`py-12 text-center text-sm text-muted-foreground`,children:n(`console.settingsHub.empty`)})}):Array.from(f??[]).map(([t,r])=>(0,v.jsxs)(`section`,{className:`mb-8`,children:[(0,v.jsx)(`h2`,{className:`text-sm font-semibold tracking-wide uppercase text-muted-foreground mb-3`,children:n(`console.settingsHub.categories.${t}`,{defaultValue:t})}),(0,v.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4`,children:r.map(t=>(0,v.jsx)(y,{m:t,onOpen:()=>e(`/system/settings/${t.namespace}`)},t.namespace))})]},t)):(0,v.jsxs)(`div`,{className:`space-y-4`,children:[(0,v.jsx)(s,{className:`h-6 w-32`}),(0,v.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4`,children:Array.from({length:3}).map((e,t)=>(0,v.jsx)(s,{className:`h-32 w-full`},t))})]})]})}export{b as SettingsHub};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{f as t,m as n,r,y as i}from"./vendor-react-20ydC9aZ.js";import{n as a}from"./framework-xOBpLspS.js";import{Bt as o,Cr as s,Dr as c,Eo as l,Or as u,Ot as d,Tn as f,Vc as p,_n as m,_r as h,an as g,bn as _,fn as v,gn as y,gr as b,hn as x,ic as S,kn as C,kr as w,mn as T,na as E,oo as D,pn as O,so as k,vr as A,yn as j,zr as M,zt as N}from"./ui-components-C5rSjsFE.js";import{r as P}from"./vendor-ui-utils-CDPjN0GN.js";import{a as F,c as I,n as L,o as R,r as z,s as B,t as V}from"./useSettingsLabel-BJ1_MAmi.js";var H=e(i(),1),U=r();function W({reason:e,className:t}){return(0,U.jsxs)(s,{variant:`outline`,className:`gap-1 border-amber-300 bg-amber-50 text-amber-900 ${t??``}`,title:e??`Pinned by environment variable — cannot be edited from the UI.`,children:[(0,U.jsx)(D,{className:`h-3 w-3`}),`Locked by env`]})}function G({resolved:e,labels:t}){let n=e.cascadeChain;if(!n||n.length===0)return null;let r=n.find(e=>e.effective)??n[n.length-1],i=n.find(e=>e!==r&&e.value!==null&&e.value!==void 0),a=e=>t?.sourceLabel?.(e)??e;return r.scope!=="default"&&r.scope!==`user`&&r.scope!==`tenant`?(0,U.jsxs)(s,{variant:`outline`,className:`text-blue-700 border-blue-300 text-[10px]`,children:[`Inherited from `,a(r.scope)]}):i?(0,U.jsxs)(s,{variant:`outline`,className:`text-amber-700 border-amber-300 text-[10px]`,children:[`Overrides `,a(i.scope)]}):null}function K({spec:e,resolved:t,labelText:n,labels:r}){return(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsxs)(C,{className:`text-sm font-medium`,children:[n,e.required?(0,U.jsx)(`span`,{className:`ml-0.5 text-destructive`,children:`*`}):null]}),e.deprecated?(0,U.jsxs)(s,{variant:`outline`,className:`text-amber-700 border-amber-300`,children:[`Deprecated`,e.replacedBy?` → ${e.replacedBy}`:``]}):null,t?.locked?(0,U.jsx)(W,{reason:t.lockedReason}):null,t&&!t.locked?(0,U.jsx)(G,{resolved:t,labels:r}):null,t?.source&&t.source!=="default"&&!t.locked?(0,U.jsx)(`span`,{className:`text-[11px] text-muted-foreground`,children:r?.sourceLabel?.(t.source)??t.source}):null]})}function q({description:e}){return e?(0,U.jsx)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:e}):null}function J({id:e,message:t}){return(0,U.jsx)(`p`,{id:e,role:`alert`,className:`text-xs text-destructive mt-1`,children:t})}function Y(e){let{spec:t,resolved:n,value:r,onChange:i,onAction:a,locked:s,saving:p,labels:h,error:g}=e,E=(0,H.useId)(),D=!!(s||p),k=L(t.label),A=t.key&&h?h.fieldLabel(t.key,k):k,P=t.key&&h?h.fieldHelp(t.key,t.description):t.description;if(t.type===`group`){let e=t.id&&h?h.groupTitle(t.id,k):k,n=t.id&&h?h.groupDescription(t.id,t.description):t.description;return(0,U.jsxs)(`div`,{className:`pt-6 pb-2`,children:[(0,U.jsx)(`h3`,{className:`text-sm font-semibold tracking-tight text-foreground/90`,children:e}),n?(0,U.jsx)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:n}):null,(0,U.jsx)(v,{className:`mt-3`})]})}if(t.type===`info_banner`)return(0,U.jsxs)(c,{variant:t.bannerSeverity===`error`?`destructive`:`default`,className:`my-2`,children:[(0,U.jsx)(l,{className:`h-4 w-4`}),(0,U.jsx)(w,{children:k}),t.bannerText?(0,U.jsx)(u,{children:t.bannerText}):null]});if(t.type===`child_pane`)return(0,U.jsxs)(`a`,{href:`#/settings/${t.childNamespace}`,className:`flex items-center justify-between rounded-md border border-border bg-card px-4 py-3 hover:bg-accent transition-colors`,children:[(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`div`,{className:`text-sm font-medium`,children:k}),t.description?(0,U.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:t.description}):null]}),(0,U.jsx)(S,{className:`h-4 w-4 text-muted-foreground`})]});if(t.type===`title_value`)return(0,U.jsxs)(`div`,{className:`flex items-center justify-between py-2`,children:[(0,U.jsx)(K,{spec:t,resolved:n,labelText:A,labels:h}),(0,U.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:String(r??`—`)})]});if(t.type===`action_button`){let e=t.icon?I(t.icon):null,n=t.id??t.key??`test`,r=h?h.actionLabel(n,k):k;return(0,U.jsxs)(`div`,{className:`flex items-center justify-between py-3`,children:[(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`div`,{className:`text-sm font-medium`,children:r}),t.description?(0,U.jsx)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:t.description}):null]}),(0,U.jsxs)(M,{size:`sm`,variant:`secondary`,onClick:a,disabled:p,children:[e?(0,U.jsx)(e,{className:`h-4 w-4 mr-1.5`}):null,r]})]})}let F=`${E}-error`,R=e=>(0,U.jsxs)(`div`,{className:`space-y-1.5 py-2`,children:[(0,U.jsx)(K,{spec:t,resolved:n,labelText:A,labels:h}),g&&(0,H.isValidElement)(e)?(0,H.cloneElement)(e,{"aria-invalid":!0,"aria-describedby":F}):e,g?(0,U.jsx)(J,{id:F,message:g}):(0,U.jsx)(q,{description:P})]}),z=e=>{let n=typeof e.label==`string`?e.label:e.label?.defaultValue??String(e.value);return!t.key||!h?n:h.optionLabel(t.key,String(e.value),n)};switch(t.type){case`text`:case`email`:case`url`:case`phone`:return R((0,U.jsx)(f,{id:E,type:t.type===`email`?`email`:t.type===`url`?`url`:`text`,value:r??``,minLength:t.minLength,maxLength:t.maxLength,pattern:t.pattern,disabled:D,onChange:e=>i(e.target.value)}));case`password`:return R((0,U.jsx)(f,{id:E,type:`password`,autoComplete:`new-password`,placeholder:r?`••••••••`:``,disabled:D,onChange:e=>i(e.target.value)}));case`textarea`:return R((0,U.jsx)(d,{id:E,rows:t.rows??4,value:r??``,minLength:t.minLength,maxLength:t.maxLength,disabled:D,onChange:e=>i(e.target.value)}));case`number`:return R((0,U.jsx)(f,{id:E,type:`number`,value:r,min:t.min,max:t.max,step:t.step,disabled:D,onChange:e=>i(e.target.value===``?null:Number(e.target.value))}));case`toggle`:return(0,U.jsxs)(`div`,{className:`flex items-center justify-between py-3`,children:[(0,U.jsxs)(`div`,{children:[(0,U.jsx)(K,{spec:t,resolved:n,labelText:A,labels:h}),(0,U.jsx)(q,{description:P})]}),(0,U.jsx)(N,{id:E,checked:!!r,disabled:D,onCheckedChange:e=>i(e)})]});case`select`:return R((0,U.jsxs)(O,{value:r==null?void 0:String(r),onValueChange:e=>i(e),disabled:D,children:[(0,U.jsx)(y,{id:E,children:(0,U.jsx)(m,{placeholder:`Select…`})}),(0,U.jsx)(T,{children:t.options?.map(e=>(0,U.jsx)(x,{value:String(e.value),children:z(e)},String(e.value)))})]}));case`radio`:return R((0,U.jsx)(j,{value:r==null?void 0:String(r),onValueChange:e=>i(e),disabled:D,children:t.options?.map(e=>(0,U.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,U.jsx)(_,{value:String(e.value),id:`${E}-${e.value}`}),(0,U.jsx)(C,{htmlFor:`${E}-${e.value}`,className:`text-sm font-normal`,children:z(e)})]},String(e.value)))}));case`multiselect`:{let e=Array.isArray(r)?r:[];return R((0,U.jsx)(`div`,{className:`grid grid-cols-2 gap-2`,children:t.options?.map(t=>{let n=String(t.value);return(0,U.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,U.jsx)(b,{checked:e.map(String).includes(n),disabled:D,onCheckedChange:t=>{let r=new Set(e.map(String));t?r.add(n):r.delete(n),i(Array.from(r))}}),z(t)]},n)})}))}case`slider`:return R((0,U.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,U.jsx)(o,{value:[Number(r??t.min??0)],min:t.min??0,max:t.max??100,step:t.step??1,disabled:D,onValueChange:e=>i(e[0]),className:`flex-1`}),(0,U.jsx)(`span`,{className:`text-sm tabular-nums w-12 text-right`,children:String(r??t.min??0)})]}));case`color`:return R((0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(f,{id:E,type:`color`,value:r??`#000000`,disabled:D,onChange:e=>i(e.target.value),className:`w-16 h-9 p-1`}),(0,U.jsx)(f,{value:r??``,disabled:D,onChange:e=>i(e.target.value),className:`flex-1 font-mono text-sm`})]}));case`json`:return R((0,U.jsx)(d,{id:E,rows:t.rows??6,className:`font-mono text-xs`,value:typeof r==`string`?r:JSON.stringify(r??null,null,2),disabled:D,onChange:e=>i(e.target.value)}));default:return R((0,U.jsxs)(`div`,{className:`text-sm text-muted-foreground`,children:[`Unsupported specifier type: `,t.type]}))}}function X(e,t){if(!e)return!0;let n=e.trim().match(/^\$\{(.+)\}$/);if(!n)return!0;try{return!!Function(`data`,`with (data) { return (${n[1]}); }`)(t)}catch{return!0}}function Z(e,t){let{[t]:n,...r}=e;return r}function Q(){let e=n(),r=t(),i=e.namespace??``,[o,c]=(0,H.useState)(null),[l,u]=(0,H.useState)(!0),[d,f]=(0,H.useState)(!1),[m,_]=(0,H.useState)(null),[v,y]=(0,H.useState)({}),[b,x]=(0,H.useState)({}),S=(0,H.useCallback)(async()=>{u(!0),_(null);try{let e=await z(i);c(e),y({}),x({})}catch(e){_(e?.message??`Failed to load settings`)}finally{u(!1)}},[i]);(0,H.useEffect)(()=>{i&&S()},[i,S]);let C=(0,H.useMemo)(()=>{let e={};if(!o)return e;for(let[t,n]of Object.entries(o.values))e[t]=n.value;return{...e,...v}},[o,v]),w=(0,H.useMemo)(()=>Object.keys(v),[v]),T=V(i);if(!i)return(0,U.jsx)(`div`,{className:`p-6 text-muted-foreground`,children:`No namespace selected.`});if(l)return(0,U.jsxs)(`div`,{className:`p-6 space-y-3 max-w-3xl`,children:[(0,U.jsx)(g,{className:`h-8 w-1/3`}),(0,U.jsx)(g,{className:`h-4 w-2/3`}),(0,U.jsx)(g,{className:`h-32 w-full`}),(0,U.jsx)(g,{className:`h-32 w-full`})]});if(m)return(0,U.jsxs)(`div`,{className:`p-6 max-w-3xl`,children:[(0,U.jsxs)(M,{variant:`ghost`,size:`sm`,onClick:()=>r(-1),children:[(0,U.jsx)(p,{className:`h-4 w-4 mr-1`}),` Back`]}),(0,U.jsx)(h,{className:`mt-3`,children:(0,U.jsx)(A,{className:`py-8 text-center text-sm text-destructive`,children:m})})]});if(!o)return null;let{manifest:D,values:O}=o,j=D.icon?I(D.icon):null,N=T.title(L(D.label)),W=T.description(D.description),G=async()=>{if(w.length!==0){f(!0);try{let e=await B(i,v);c({...o,values:{...O,...e.values}}),y({}),x({}),P.success(`Settings saved`)}catch(e){let t=e?.payload?.error;if(t?.code===`SETTINGS_LOCKED`){let e=F(t);P.error(e?`Locked by environment: ${e}`:`Locked by environment`)}else{let n=a(t);n?.length&&x(Object.fromEntries(n.map(e=>[e.field,e.message]))),P.error(e?.message??`Save failed`)}}finally{f(!1)}}},K=async e=>{f(!0);try{let t=await R(i,e,v);t.ok?P.success(t.message??`Action succeeded`):P.error(t.message??`Action failed`)}catch(e){P.error(e?.message??`Action failed`)}finally{f(!1)}};return(0,U.jsxs)(`div`,{className:`p-6 max-w-3xl mx-auto pb-32`,children:[(0,U.jsxs)(M,{variant:`ghost`,size:`sm`,onClick:()=>r(`/system/settings`),children:[(0,U.jsx)(p,{className:`h-4 w-4 mr-1`}),` All settings`]}),(0,U.jsxs)(`div`,{className:`mt-3 flex items-start gap-3`,children:[j?(0,U.jsx)(j,{className:`h-7 w-7 mt-0.5 text-muted-foreground`}):null,(0,U.jsxs)(`div`,{className:`flex-1`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(`h1`,{className:`text-2xl font-semibold tracking-tight`,children:N}),D.beta?(0,U.jsx)(s,{variant:`secondary`,children:`Beta`}):null]}),W?(0,U.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1`,children:W}):null]})]}),D.helpText?(0,U.jsx)(`p`,{className:`text-sm text-muted-foreground mt-4 whitespace-pre-wrap`,children:D.helpText}):null,(0,U.jsx)(`div`,{className:`mt-6 divide-y`,children:D.specifiers.filter(e=>X(e.visible,C)).map((e,t)=>{let n=e.key,r=n?O[n]:void 0;return(0,U.jsx)(Y,{spec:e,resolved:r,value:n?n in v?v[n]:r?.value:void 0,onChange:e=>{n&&(y(t=>({...t,[n]:e})),x(e=>n in e?Z(e,n):e))},onAction:e.type===`action_button`?()=>K(e.id??n??`test`):void 0,locked:r?.locked,saving:d,labels:T,error:n?b[n]:void 0},(n??`_layout_${t}`)+t)})}),w.length>0?(0,U.jsx)(`div`,{className:`fixed bottom-0 inset-x-0 bg-background/95 backdrop-blur border-t shadow-lg z-40`,children:(0,U.jsxs)(`div`,{className:`max-w-3xl mx-auto px-6 py-3 flex items-center justify-between`,children:[(0,U.jsxs)(`div`,{className:`text-sm text-muted-foreground`,children:[w.length,` unsaved change`,w.length>1?`s`:``]}),(0,U.jsxs)(`div`,{className:`flex gap-2`,children:[(0,U.jsxs)(M,{variant:`ghost`,size:`sm`,onClick:()=>{y({}),x({})},disabled:d,children:[(0,U.jsx)(E,{className:`h-4 w-4 mr-1`}),` Discard`]}),(0,U.jsxs)(M,{onClick:G,disabled:d,children:[d?(0,U.jsx)(k,{className:`h-4 w-4 mr-1 animate-spin`}):null,`Save changes`]})]})]})}):null]})}export{Q as SettingsView};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{f as t,m as n,r,y as i}from"./vendor-react-20ydC9aZ.js";import{
|
|
1
|
+
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{f as t,m as n,r,y as i}from"./vendor-react-20ydC9aZ.js";import{g as a}from"./infrastructure-EMqAhl6J.js";import{N as o}from"./framework-xOBpLspS.js";import{Cr as s,Cs as c,Ec as l,Gi as u,So as d,Yi as f,_o as p,_r as m,br as h,ei as g,so as _,ti as v,vi as y,vr as b,wc as x,wi as S,xr as C,yc as w,yr as T,zi as E}from"./ui-components-C5rSjsFE.js";import"./src-CLs1ObAx.js";var D=e(i(),1),O=r();function k(){let e=t(),{appName:r}=n(),i=r?`/apps/${r}`:``,k=o(),A=a(),[j,M]=(0,D.useState)({users:null,orgs:null,positions:null,permissions:null,auditLogs:null}),[N,P]=(0,D.useState)(!0),F=(0,D.useCallback)(async()=>{if(k){P(!0);try{let[e,t,n,r,i]=await Promise.all([k.find(`sys_user`).catch(()=>({data:[]})),k.find(`sys_org`).catch(()=>({data:[]})),k.find(`sys_position`).catch(()=>({data:[]})),k.find(`sys_permission`).catch(()=>({data:[]})),k.find(`sys_audit_log`).catch(()=>({data:[]}))]);M({users:e.data?.length??0,orgs:t.data?.length??0,positions:n.data?.length??0,permissions:r.data?.length??0,auditLogs:i.data?.length??0})}catch{}finally{P(!1)}}},[k]);(0,D.useEffect)(()=>{F()},[F]);let I=[{title:`Applications`,description:`Manage all configured applications`,icon:p,href:`${i}/system/apps`,countLabel:``,count:null},{title:`Metadata`,description:`Browse and edit every metadata type the platform exposes`,icon:c,href:`${i}/component/metadata/directory`,countLabel:``,count:null},{title:`Datasources`,description:`Connect external databases and sync their tables in as objects`,icon:x,href:`${i}/component/metadata/resource?type=datasource`,countLabel:``,count:null}],L=[{title:`Users`,description:`Manage system users and accounts`,icon:g,href:`${i}/system/users`,countLabel:`users`,count:j.users},{title:`Organizations`,description:`Manage organizations and teams`,icon:w,href:`${i}/system/organizations`,countLabel:`organizations`,count:j.orgs},{title:`Positions`,description:`Configure positions and access levels`,icon:E,href:`${i}/system/positions`,countLabel:`positions`,count:j.positions},{title:`Permissions`,description:`Manage permission rules and assignments`,icon:d,href:`${i}/system/permissions`,countLabel:`permissions`,count:j.permissions},{title:`Audit Log`,description:`View system activity and changes`,icon:f,href:`${i}/system/audit-log`,countLabel:`entries`,count:j.auditLogs},{title:`AI Approvals`,description:`Review actions AI agents propose before they execute`,icon:l,href:`${i}/system/ai-approvals`,countLabel:``,count:null},{title:`App Marketplace`,description:`Browse and install approved apps from the ObjectStack catalog`,icon:S,href:`${i}/system/marketplace`,countLabel:``,count:null,adminOnly:!0},{title:`Settings`,description:`Configure mail, branding, feature flags, and more`,icon:u,href:`${i}/system/settings`,countLabel:``,count:null},{title:`Developer`,description:`API console, flow runs, and public form management`,icon:y,href:`${i}/developer`,countLabel:``,count:null},{title:`Profile`,description:`View and edit your account settings`,icon:v,href:`${i}/system/profile`,countLabel:``,count:null}],R=[...I,...L].filter(e=>!e.adminOnly||A);return(0,O.jsxs)(`div`,{className:`flex flex-col gap-6 p-4 sm:p-6`,children:[(0,O.jsxs)(`div`,{className:`min-w-0`,children:[(0,O.jsx)(`h1`,{className:`text-xl sm:text-2xl font-bold tracking-tight`,children:`System Settings`}),(0,O.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1`,children:`Manage applications, users, positions, permissions, and system configuration`})]}),N&&(0,O.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-muted-foreground`,role:`status`,"aria-live":`polite`,children:[(0,O.jsx)(_,{className:`h-4 w-4 animate-spin`,"aria-hidden":`true`}),`Loading statistics...`]}),(0,O.jsx)(`div`,{className:`grid gap-4 sm:grid-cols-2 lg:grid-cols-3`,children:R.map(t=>{let n=t.icon;return(0,O.jsxs)(m,{className:`cursor-pointer transition-colors hover:bg-accent/50`,onClick:()=>e(t.href),"data-testid":`hub-card-${t.title.toLowerCase().replace(/\s+/g,`-`)}`,role:`link`,tabIndex:0,"aria-label":`${t.title}: ${t.description}`,onKeyDown:n=>{(n.key===`Enter`||n.key===` `)&&(n.preventDefault(),e(t.href))},children:[(0,O.jsxs)(h,{className:`flex flex-row items-center gap-3 pb-2`,children:[(0,O.jsx)(`div`,{className:`flex h-10 w-10 shrink-0 items-center justify-center rounded-lg bg-primary/10 text-primary`,children:(0,O.jsx)(n,{className:`h-5 w-5`})}),(0,O.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,O.jsx)(C,{className:`text-base`,children:t.title}),(0,O.jsx)(T,{className:`text-xs`,children:t.description})]})]}),(0,O.jsx)(b,{className:`pt-0`,children:t.count!==null&&(0,O.jsxs)(s,{variant:`secondary`,children:[t.count,` `,t.countLabel]})})]},t.title)})})]})}export{k as SystemHubPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./chunk-5HE753X5-Cg3JdNF3.js";import{n as t}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{t as n}from"./src-
|
|
1
|
+
import{n as e}from"./chunk-5HE753X5-Cg3JdNF3.js";import{n as t}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{t as n}from"./src-DMTCYJgx.js";import"./chunk-WYO6CB5R-chyhiVml.js";import"./chunk-VAUOI2AC-B2LdZG5j.js";import{n as r,r as i,t as a}from"./chunk-MOJQB5TN-CToOzrGu.js";import{t as o}from"./chunk-JWPE2WC7-DVXcaiue.js";import{t as s}from"./mermaid-parser.core-BPoagdtX.js";var c=e().RailroadAbnf.parser.LangiumParser,l=t(e=>{let t=e.alternatives.map(u);return t.length===1?t[0]:{type:`choice`,alternatives:t}},`transformAlternation`),u=t(e=>{let t=e.elements.map(f);return t.length===1?t[0]:{type:`sequence`,elements:t}},`transformConcatenation`),d=t(e=>{if(e.includes(`*`)){let[t,n]=e.split(`*`);return{min:t?parseInt(t,10):0,max:n?parseInt(n,10):1/0}}let t=parseInt(e,10);return{min:t,max:t}},`parseRepeat`),f=t(e=>{let t=p(e.primary);if(!e.repeat)return t;let{min:n,max:r}=d(e.repeat);return n===0&&r===1?{type:`optional`,element:t}:{type:`repetition`,element:t,min:n,max:r}},`transformElement`),p=t(e=>{switch(e.$type){case`AbnfStringLiteral`:return{type:`terminal`,value:e.value};case`AbnfNumVal`:return{type:`terminal`,value:e.value};case`AbnfRuleName`:return{type:`nonterminal`,name:e.name};case`AbnfGroup`:return l(e.element);case`AbnfOptionalGroup`:return{type:`optional`,element:l(e.element)};default:throw Error(`Unsupported ABNF primary node: ${e.$type}`)}},`transformPrimary`),m=t(e=>({name:e.name,definition:l(e.definition)}),`transformRule`),h=t(e=>{o(e,a),e.title&&a.setTitle(e.title),e.rules.map(e=>a.addRule(m(e)))},`populateDb`),g={parser:{parse:t(e=>{a.clear(),n.debug(`[ABNF 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(`[ABNF Parser] Parsed rules:`,r.rules.length),h(r),n.debug(`[ABNF Parser] Parse complete`)},`parse`),parser:{yy:a}},db:a,renderer:i,styles:r};export{g as diagram};
|