@objectstack/console 7.3.0 → 7.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{AiPendingActionsPage-BbZbWYZF.js → AiPendingActionsPage-C2C3Ja_n.js} +1 -1
- package/dist/assets/{ApiConsolePage-CxtzVvxL.js → ApiConsolePage-ePJcxhf9.js} +1 -1
- package/dist/assets/{AppManagementPage-CFfnxT1t.js → AppManagementPage-CFHAXcEw.js} +1 -1
- package/dist/assets/ApprovalsInboxPage-DuHpUtLO.js +1 -0
- package/dist/assets/{AuditLogPage-D4FqYkQH.js → AuditLogPage-Dw6wpFTf.js} +1 -1
- package/dist/assets/{ComponentNavView-XiNMCGMg.js → ComponentNavView-DyNUAEnY.js} +1 -1
- package/dist/assets/{ConsoleFloatingChatbot-DQEWG5vB.js → ConsoleFloatingChatbot-vOXH4hva.js} +1 -1
- package/dist/assets/{DeveloperHubPage-lZkmDwEj.js → DeveloperHubPage-Di9VELMr.js} +1 -1
- package/dist/assets/FlowRunsPage-C2ElJEUw.js +1 -0
- package/dist/assets/{ProfilePage-BGOg1gVa.js → ProfilePage-DbEzcgM3.js} +1 -1
- package/dist/assets/PublicFormsPage-CFO_htk4.js +1 -0
- package/dist/assets/{RecentItemsProvider-Dt0K6V1V.js → RecentItemsProvider-VqVTd5Ra.js} +1 -1
- package/dist/assets/{SettingsHub-D_bBB6HI.js → SettingsHub-RgZdAo3g.js} +1 -1
- package/dist/assets/{SettingsView-CErPIsVb.js → SettingsView-C4bpsbjP.js} +1 -1
- package/dist/assets/{SystemHubPage-B3lD5VE8.js → SystemHubPage-DCtNkrqu.js} +1 -1
- package/dist/assets/{data-adapter-DD2mxtaH.js → data-adapter-BI1S6gix.js} +1 -1
- package/dist/assets/framework-Bsl5NTfe.js +34 -0
- package/dist/assets/{highlighted-body-OFNGDK62-_uUbA42F.js → highlighted-body-OFNGDK62-DolMghKp.js} +1 -1
- package/dist/assets/index-C2SC5SiS.css +2 -0
- package/dist/assets/index-D8443YMB.js +33 -0
- package/dist/assets/{infrastructure-IQKE4Vv8.js → infrastructure-CFhpdDcd.js} +1 -1
- package/dist/assets/mermaid-GHXKKRXX-qaGVEVOV.js +1 -0
- package/dist/assets/{plugin-calendar-CBSUjCse.js → plugin-calendar-CQDuOrA8.js} +1 -1
- package/dist/assets/plugin-charts-BDWqi8DX.js +7 -0
- package/dist/assets/plugin-chatbot-MXXPNrIm.js +120 -0
- package/dist/assets/plugin-dashboard-Do4xOja1.js +3 -0
- package/dist/assets/plugin-form-DGz9Ldoi.js +1 -0
- package/dist/assets/{plugin-gantt-BM_qU02_.js → plugin-gantt-Bv3kYo78.js} +1 -1
- package/dist/assets/plugin-grid-X6RP2gd8.js +6 -0
- package/dist/assets/plugin-kanban-BhsP-1E9.js +1 -0
- package/dist/assets/{plugin-map-D5wjaTuu.js → plugin-map-Bl9-aL25.js} +1 -1
- package/dist/assets/{plugin-markdown-BS1-ubYs.js → plugin-markdown-DSLEFWrT.js} +1 -1
- package/dist/assets/plugin-report-DcNaFUN2.js +59 -0
- package/dist/assets/{plugin-timeline-DHjoax2v.js → plugin-timeline-Bb7f-Qd7.js} +1 -1
- package/dist/assets/plugin-view-DoIbSHeI.js +1 -0
- package/dist/assets/plugins-views-BNDN6gD4.js +4 -0
- package/dist/assets/{src-DftmwA5L.js → src-AD-6EnzK.js} +1 -1
- package/dist/assets/{types-X_Rma6be.js → types-BYLUnF0C.js} +1 -1
- package/dist/assets/ui-components-D0tUqjB3.js +41 -0
- package/dist/assets/{ui-layout-Ciu790M0.js → ui-layout-C9W0Gcnt.js} +1 -1
- package/dist/assets/vendor-objectstack-D6pAOWWu.js +65 -0
- package/dist/index.html +4 -4
- package/package.json +1 -1
- package/dist/assets/ApprovalsInboxPage-BxQZcCfd.js +0 -1
- package/dist/assets/FlowRunsPage-RrJ1_Gcu.js +0 -1
- package/dist/assets/PublicFormsPage-IlBXTnnv.js +0 -1
- package/dist/assets/framework-DmN5Xd7Z.js +0 -34
- package/dist/assets/index-3n4YIBCx.js +0 -33
- package/dist/assets/index-DRnsSCuD.css +0 -2
- package/dist/assets/mermaid-GHXKKRXX-B0LJSQUI.js +0 -1
- package/dist/assets/plugin-charts-C1pPCTiC.js +0 -7
- package/dist/assets/plugin-chatbot-BHoielbC.js +0 -120
- package/dist/assets/plugin-dashboard-CrU-RT7P.js +0 -3
- package/dist/assets/plugin-form-YkI84B6S.js +0 -1
- package/dist/assets/plugin-grid-C__XZwVh.js +0 -6
- package/dist/assets/plugin-kanban-DpM0Y5w1.js +0 -1
- package/dist/assets/plugin-report-ClF2T8j-.js +0 -59
- package/dist/assets/plugin-view-DPiRuVYV.js +0 -1
- package/dist/assets/plugins-views-DKbDkBwY.js +0 -4
- package/dist/assets/ui-components-ClOuWOoQ.js +0 -41
- package/dist/assets/vendor-objectstack-B5adaLmw.js +0 -65
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as e}from"./plugin-chatbot-BHoielbC.js";export{e as Mermaid};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import{o as e,r as t}from"./rolldown-runtime-CMxvf4Kt.js";import{g as n,r,y as i}from"./vendor-react-CyVA1SE-.js";import{G as a,J as o,K as s,L as c,U as l,V as u,W as ee,ot as d,q as f,ut as p,z as m}from"./framework-DmN5Xd7Z.js";import{A as h,At as g,Bn as _,Fn as v,Ft as y,Gs as b,In as te,It as ne,Mt as re,Nt as ie,Qo as ae,zn as oe}from"./ui-components-ClOuWOoQ.js";import{C as x,E as S,S as se,T as C,_ as ce,a as w,b as T,c as E,d as D,f as O,g as k,h as A,i as j,l as M,m as N,n as P,o as F,p as I,r as le,s as L,t as R,u as z,v as ue,w as B,x as de,y as fe}from"./vendor-charts-Ba_-W-di.js";var V=e(i(),1),H=r(),U=(...e)=>e.filter(Boolean).join(` `),pe={light:``,dark:`.dark`},me=V.createContext(null);function he(){let e=V.useContext(me);if(!e)throw Error(`useChart must be used within a <ChartContainer />`);return e}function W({id:e,className:t,children:n,config:r,...i}){let a=V.useId(),o=`chart-${e||a.replace(/:/g,``)}`;return(0,H.jsx)(me.Provider,{value:{config:r},children:(0,H.jsxs)(`div`,{"data-slot":`chart`,"data-chart":o,className:U(`flex w-full h-[350px] justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground`,t),style:{minHeight:280,minWidth:0,...i.style},...i,children:[(0,H.jsx)(ge,{id:o,config:r}),(0,H.jsx)(S,{width:`100%`,height:`100%`,children:n})]})})}var ge=({id:e,config:t})=>{let n=Object.entries(t).filter(([,e])=>e.theme||e.color);return n.length?(0,H.jsx)(`style`,{dangerouslySetInnerHTML:{__html:Object.entries(pe).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},G=B;function K({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:ee,labelKey:d}){let{config:f}=he(),p=V.useMemo(()=>{if(i||!t?.length)return null;let[e]=t,n=_e(f,e,`${d||e?.dataKey||e?.name||`value`}`),r=!d&&typeof o==`string`?f[o]?.label||o:n?.label;return s?(0,H.jsx)(`div`,{className:U(`font-medium`,c),children:s(r,t)}):r?(0,H.jsx)(`div`,{className:U(`font-medium`,c),children:r}):null},[o,s,t,i,c,f,d]);if(!e||!t?.length)return null;let m=t.length===1&&r!==`dot`;return(0,H.jsxs)(`div`,{className:U(`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:p,(0,H.jsx)(`div`,{className:`grid gap-1.5`,children:t.filter(e=>e.type!==`none`).map((e,t)=>{let n=_e(f,e,`${ee||e.name||e.dataKey||`value`}`),i=u||e.payload.fill||e.color;return(0,H.jsx)(`div`,{className:U(`[&>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,H.jsxs)(H.Fragment,{children:[n?.icon?(0,H.jsx)(n.icon,{}):!a&&(0,H.jsx)(`div`,{className:U(`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":i,"--color-border":i}}),(0,H.jsxs)(`div`,{className:U(`flex flex-1 justify-between leading-none`,m?`items-end`:`items-center`),children:[(0,H.jsxs)(`div`,{className:`grid gap-1.5`,children:[m?p:null,(0,H.jsx)(`span`,{className:`text-muted-foreground`,children:n?.label||e.name})]}),e.value&&(0,H.jsx)(`span`,{className:`text-foreground font-mono font-medium tabular-nums`,children:e.value.toLocaleString()})]})]})},e.dataKey)})})]})}var q=C;function J({className:e,hideIcon:t=!1,payload:n,verticalAlign:r=`bottom`,nameKey:i}){let{config:a}=he();return n?.length?(0,H.jsx)(`div`,{className:U(`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=_e(a,e,`${i||e.dataKey||`value`}`);return(0,H.jsxs)(`div`,{className:U(`[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3`),children:[n?.icon&&!t?(0,H.jsx)(n.icon,{}):(0,H.jsx)(`div`,{className:`h-2 w-2 shrink-0 rounded-[2px]`,style:{backgroundColor:e.color}}),n?.label]},e.value)})}):null}function _e(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 n in t&&typeof t[n]==`string`?i=t[n]:r&&n in r&&typeof r[n]==`string`&&(i=r[n]),i in e?e[i]:e[n]}var ve=t({default:()=>xe}),ye=`hsl(var(--primary))`,be={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`},Y=e=>be[e]||e,X=(e,t)=>e?.variant===`comparison`?{strokeOpacity:typeof e.opacity==`number`?e.opacity:t===`line`||t===`scatter`?.5:.6,fillOpacity:typeof e.opacity==`number`?e.opacity:t===`bar`?.4:t===`area`?.2:.5,strokeDasharray:e.dashArray??(t===`line`||t===`area`?`4 4`:void 0)}:null;function xe({chartType:e=`bar`,data:t=[],config:n={},xAxisKey:r=`name`,series:i=[],className:a=``,onChartClick:o}){let s=e===`column`?`bar`:e,c=Array.isArray(t)?t:[],[l,u]=V.useState(!1),ee=V.useCallback(e=>{if(!o||!e)return;let t=Array.isArray(e.activePayload)?e.activePayload[0]:void 0;o({category:e.activeLabel==null?void 0:String(e.activeLabel),series:t?.dataKey?String(t.dataKey):void 0,value:typeof t?.value==`number`?t.value:void 0})},[o]),d=V.useCallback(e=>{if(!o||!e)return;let t=e.payload?.[r],n=i[0]?.dataKey||`value`;o({category:t==null?void 0:String(t),series:n,value:typeof e.payload?.[n]==`number`?e.payload[n]:void 0})},[o,r,i]),f=o?{onClick:ee,style:{cursor:`pointer`}}:{},p=o?{onClick:d,style:{cursor:`pointer`}}:{};V.useEffect(()=>{let e=()=>u(window.innerWidth<640);return e(),window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[]);let m={bar:L,"horizontal-bar":L,line:E,area:le,pie:F,donut:F,radar:w,scatter:j,funnel:R,combo:L}[s]||L,h=V.useCallback(e=>{if(e==null||e===``)return``;let t=typeof e==`string`?e:String(e);if(/^\d{4}-\d{2}-\d{2}/.test(t)){let e=new Date(t);if(!Number.isNaN(e.getTime())){let t=(c.length>1?Math.abs(new Date(String(c[c.length-1][r]??``)).getTime()-new Date(String(c[0][r]??``)).getTime()):0)/(1e3*60*60*24);try{return t<=62?e.toLocaleDateString(void 0,{month:`short`,day:`numeric`}):e.toLocaleDateString(void 0,{month:`short`,year:`numeric`})}catch{return e.toISOString().slice(0,10)}}}return l&&t.length>8?t.slice(0,8)+`…`:t},[c,r,l]),g=V.useMemo(()=>c.some(e=>String(e[r]||``).length>5),[c,r]),_=()=>[`hsl(var(--chart-1))`,`hsl(var(--chart-2))`,`hsl(var(--chart-3))`,`hsl(var(--chart-4))`,`hsl(var(--chart-5))`],v=V.useCallback(e=>{if(e==null||e===``)return``;let t=typeof e==`number`?e:Number(e);if(!Number.isFinite(t))return String(e);try{return new Intl.NumberFormat(void 0,{notation:`compact`,maximumFractionDigits:1}).format(t)}catch{return String(t)}},[]),y=V.useMemo(()=>({tickLine:!1,tickMargin:10,axisLine:!1,interval:`preserveStartEnd`,minTickGap:l?32:48,tickFormatter:h,...!l&&g&&{angle:-35,textAnchor:`end`,height:60}}),[l,g,h]);if(s===`pie`||s===`donut`){let e=s===`donut`?60:0,t=_(),o={...n};return c.forEach((e,n)=>{let i=e?.[r];if(i==null||i===``)return;let a=String(i);o[a]||(o[a]={label:a,color:t[n%t.length]})}),(0,H.jsx)(W,{config:o,className:a,children:(0,H.jsxs)(F,{children:[(0,H.jsx)(G,{cursor:!1,content:(0,H.jsx)(K,{hideLabel:!0})}),(0,H.jsx)(ue,{data:c,dataKey:i[0]?.dataKey||`value`,nameKey:r||`name`,innerRadius:e,strokeWidth:5,paddingAngle:2,outerRadius:80,...p,children:c.map((e,n)=>{let i=o[String(e[r])]?.color;return i||=t[n%t.length],(0,H.jsx)(x,{fill:Y(i)},`cell-${n}`)})}),(0,H.jsx)(q,{verticalAlign:`bottom`,wrapperStyle:{fontSize:l?`11px`:`12px`,paddingTop:`8px`},content:(0,H.jsx)(J,{nameKey:r,className:`flex-wrap`})})]})})}if(s===`funnel`){let e=i[0]?.dataKey||`value`,t=_(),s=o?t=>{t&&o({category:t?.payload?.[r]??t?.[r],value:t?.payload?.[e]??t?.[e]})}:void 0,l=s?{onClick:s,style:{cursor:`pointer`}}:{},u=[...c].sort((t,n)=>{let r=Number(t?.[e]??0);return Number(n?.[e]??0)-r});return(0,H.jsx)(W,{config:n,className:a,children:(0,H.jsxs)(R,{children:[(0,H.jsx)(G,{content:(0,H.jsx)(K,{})}),(0,H.jsxs)(P,{dataKey:e,data:u,nameKey:r,isAnimationActive:!0,...l,children:[(0,H.jsx)(se,{position:`right`,fill:`hsl(var(--foreground))`,stroke:`none`,dataKey:r}),u.map((e,n)=>(0,H.jsx)(x,{fill:Y(t[n%t.length])},`funnel-cell-${n}`))]})]})})}if(s===`radar`)return(0,H.jsx)(W,{config:n,className:a,children:(0,H.jsxs)(w,{data:c,children:[(0,H.jsx)(de,{}),(0,H.jsx)(fe,{dataKey:r}),(0,H.jsx)(T,{}),(0,H.jsx)(G,{content:(0,H.jsx)(K,{})}),(0,H.jsx)(q,{content:(0,H.jsx)(J,{}),...l&&{verticalAlign:`bottom`,wrapperStyle:{fontSize:`11px`,paddingTop:`8px`}}}),i.map(e=>{let t=Y(n[e.dataKey]?.color||ye);return(0,H.jsx)(ce,{dataKey:e.dataKey,stroke:t,fill:t,fillOpacity:.6},e.dataKey)})]})});if(s===`scatter`)return(0,H.jsx)(W,{config:n,className:a,children:(0,H.jsxs)(j,{children:[(0,H.jsx)(k,{vertical:!1}),(0,H.jsx)(D,{type:`number`,dataKey:r,name:String(n[r]?.label||r),tickLine:!1,axisLine:!1,minTickGap:l?32:48}),(0,H.jsx)(z,{type:`number`,dataKey:i[0]?.dataKey||`value`,name:String(n[i[0]?.dataKey]?.label||i[0]?.dataKey),tickLine:!1,axisLine:!1,tickFormatter:v,width:48}),(0,H.jsx)(M,{type:`number`,range:[60,400]}),(0,H.jsx)(G,{content:(0,H.jsx)(K,{})}),(0,H.jsx)(q,{content:(0,H.jsx)(J,{}),...l&&{verticalAlign:`bottom`,wrapperStyle:{fontSize:`11px`,paddingTop:`8px`}}}),i.map((e,t)=>{let r=_(),i=Y(n[e.dataKey]?.color||r[t%r.length]),a=X(e,`scatter`);return(0,H.jsx)(O,{name:n[e.dataKey]?.label||e.dataKey,data:c,fill:i,fillOpacity:a?.fillOpacity},e.dataKey)})]})});if(s===`combo`)return(0,H.jsx)(W,{config:n,className:a,children:(0,H.jsxs)(L,{data:c,children:[(0,H.jsx)(k,{vertical:!1}),(0,H.jsx)(D,{dataKey:r,...y}),(0,H.jsx)(z,{yAxisId:`left`,tickLine:!1,axisLine:!1,tickFormatter:v,width:48}),(0,H.jsx)(z,{yAxisId:`right`,orientation:`right`,tickLine:!1,axisLine:!1,tickFormatter:v,width:48}),(0,H.jsx)(G,{content:(0,H.jsx)(K,{})}),(0,H.jsx)(q,{content:(0,H.jsx)(J,{}),...l&&{verticalAlign:`bottom`,wrapperStyle:{fontSize:`11px`,paddingTop:`8px`}}}),i.map((e,t)=>{let r=Y(n[e.dataKey]?.color||ye),i=e.chartType||(t===0?`bar`:`line`),a=i===`bar`?`left`:`right`,o=X(e,i);return i===`line`?(0,H.jsx)(A,{yAxisId:a,type:`monotone`,dataKey:e.dataKey,stroke:r,strokeWidth:2,dot:!1,strokeOpacity:o?.strokeOpacity,strokeDasharray:o?.strokeDasharray},e.dataKey):i===`area`?(0,H.jsx)(N,{yAxisId:a,type:`monotone`,dataKey:e.dataKey,fill:r,stroke:r,fillOpacity:o?.fillOpacity??.4,strokeOpacity:o?.strokeOpacity,strokeDasharray:o?.strokeDasharray},e.dataKey):(0,H.jsx)(I,{yAxisId:a,dataKey:e.dataKey,fill:r,radius:4,fillOpacity:o?.fillOpacity},e.dataKey)})]})});let b=s===`horizontal-bar`;return(0,H.jsx)(W,{config:n,className:a,children:(0,H.jsxs)(m,{data:c,layout:b?`vertical`:`horizontal`,...f,children:[(0,H.jsx)(k,{vertical:!1}),b?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(D,{type:`number`,tickLine:!1,axisLine:!1,tickFormatter:v}),(0,H.jsx)(z,{type:`category`,dataKey:r,tickLine:!1,axisLine:!1,width:Math.min(140,Math.max(60,Math.max(...c.map(e=>String(e[r]??``).length))*7)),tickFormatter:h})]}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(D,{dataKey:r,...y}),(0,H.jsx)(z,{tickLine:!1,axisLine:!1,tickFormatter:v,width:48})]}),(0,H.jsx)(G,{content:(0,H.jsx)(K,{})}),(0,H.jsx)(q,{content:(0,H.jsx)(J,{}),...l&&{verticalAlign:`bottom`,wrapperStyle:{fontSize:`11px`,paddingTop:`8px`}}}),i.map((e,t)=>{let r=_(),a=e.variant===`comparison`,o=a?i.slice(0,t).find(e=>e.variant!==`comparison`)||i[0]:e,l=a?i.indexOf(o):t,u=Y(n[o.dataKey]?.color||r[l%r.length]||ye);if(s===`bar`||s===`horizontal-bar`){let t=i.filter(e=>e.variant!==`comparison`).length===1&&!a&&i.length===1&&c.length>1,n=X(e,`bar`);return(0,H.jsx)(I,{dataKey:e.dataKey,fill:u,radius:4,fillOpacity:n?.fillOpacity,children:t&&c.map((e,t)=>(0,H.jsx)(x,{fill:Y(r[t%r.length])},`cell-${t}`))},e.dataKey)}if(s===`line`){let t=X(e,`line`);return(0,H.jsx)(A,{type:`monotone`,dataKey:e.dataKey,stroke:u,strokeWidth:2,dot:!1,strokeOpacity:t?.strokeOpacity,strokeDasharray:t?.strokeDasharray},e.dataKey)}if(s===`area`){let t=X(e,`area`);return(0,H.jsx)(N,{type:`monotone`,dataKey:e.dataKey,fill:u,stroke:u,fillOpacity:t?.fillOpacity??.4,strokeOpacity:t?.strokeOpacity,strokeDasharray:t?.strokeDasharray},e.dataKey)}return null})]})})}var Se=t({default:()=>Ce});function Ce({data:e=[],dataKey:t=`value`,xAxisKey:n=`name`,height:r=400,className:i=``,color:a=`hsl(var(--primary))`}){return(0,H.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,H.jsx)(S,{width:`100%`,height:r,children:(0,H.jsxs)(L,{data:e,margin:{top:10,right:10,left:10,bottom:5},children:[(0,H.jsxs)(`defs`,{children:[(0,H.jsxs)(`linearGradient`,{id:`barGradient`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,H.jsx)(`stop`,{offset:`0%`,stopColor:a,stopOpacity:1}),(0,H.jsx)(`stop`,{offset:`90%`,stopColor:a,stopOpacity:.6}),(0,H.jsx)(`stop`,{offset:`100%`,stopColor:a,stopOpacity:.3})]}),(0,H.jsxs)(`filter`,{id:`glow`,height:`130%`,children:[(0,H.jsx)(`feGaussianBlur`,{in:`SourceAlpha`,stdDeviation:`3`,result:`blur`}),(0,H.jsx)(`feOffset`,{in:`blur`,dx:`0`,dy:`0`,result:`offsetBlur`}),(0,H.jsx)(`feFlood`,{floodColor:a,floodOpacity:`0.5`,result:`offsetColor`}),(0,H.jsx)(`feComposite`,{in:`offsetColor`,in2:`offsetBlur`,operator:`in`,result:`offsetBlur`}),(0,H.jsxs)(`feMerge`,{children:[(0,H.jsx)(`feMergeNode`,{in:`offsetBlur`}),(0,H.jsx)(`feMergeNode`,{in:`SourceGraphic`})]})]})]}),(0,H.jsx)(k,{strokeDasharray:`3 3`,stroke:`hsl(var(--border))`,vertical:!1}),(0,H.jsx)(D,{dataKey:n,tick:{fill:`hsl(var(--muted-foreground))`,fontSize:12,fontFamily:`monospace`},tickLine:!1,axisLine:{stroke:`hsl(var(--border))`},dy:10}),(0,H.jsx)(z,{tick:{fill:`hsl(var(--muted-foreground))`,fontSize:12,fontFamily:`monospace`},tickLine:!1,axisLine:!1}),(0,H.jsx)(B,{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,H.jsx)(C,{wrapperStyle:{paddingTop:`20px`,fontFamily:`monospace`}}),(0,H.jsx)(I,{dataKey:t,fill:`url(#barGradient)`,radius:[4,4,0,0],filter:`url(#glow)`,animationDuration:1500})]})})})}var we=V.lazy(()=>n(()=>Promise.resolve().then(()=>Se),void 0,import.meta.url)),Te=V.lazy(()=>n(()=>Promise.resolve().then(()=>ve),void 0,import.meta.url)),Ee=({schema:e})=>(0,H.jsx)(V.Suspense,{fallback:(0,H.jsx)(g,{className:`w-full h-48 sm:h-64 md:h-80 lg:h-[400px]`}),children:(0,H.jsx)(we,{data:e.data,dataKey:e.dataKey,xAxisKey:e.xAxisKey,height:e.height,className:e.className,color:e.color})}),Z=({schema:e,onChartClick:t})=>{let n=V.useMemo(()=>{let t=e.series,n=e.xAxisKey,r=e.config;if(n||(e.index?n=e.index:e.category&&(n=e.category)),t||(e.categories?t=e.categories.map(e=>({dataKey:e})):e.value&&(t=[{dataKey:e.value}])),!r&&t){let n=e.colors||[`hsl(var(--chart-1))`,`hsl(var(--chart-2))`,`hsl(var(--chart-3))`],i={};t.forEach((e,t)=>{i[e.dataKey]={label:e.label||e.dataKey,color:n[t%n.length]}}),r=i}return{chartType:e.chartType,data:Array.isArray(e.data)?e.data:[],config:r,xAxisKey:n,series:t,className:e.className}},[e]);return(0,H.jsx)(V.Suspense,{fallback:(0,H.jsx)(g,{className:`w-full h-48 sm:h-64 md:h-80 lg:h-[400px]`}),children:(0,H.jsx)(Te,{chartType:n.chartType,data:n.data,config:n.config,xAxisKey:n.xAxisKey,series:n.series,className:n.className,onChartClick:t})})};function Q(e){return e.replace(/[_-]/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}function De(e,t){let{field:n,function:r,groupBy:i}=t,a={};for(let t of e){let e=String(t[i]??`Unknown`);a[e]||(a[e]=[]),a[e].push(t)}return Object.entries(a).map(([e,t])=>{let a=t.map(e=>Number(e[n])||0),o;switch(r){case`count`:o=t.length;break;case`avg`:o=a.length>0?a.reduce((e,t)=>e+t,0)/a.length:0;break;case`min`:o=a.length>0?Math.min(...a):0;break;case`max`:o=a.length>0?Math.max(...a):0;break;default:o=a.reduce((e,t)=>e+t,0);break}return{[i]:e,[n]:o}})}async function Oe(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:Q(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=Q(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]||Q(i);return{...e,[t]:a(i,s),[o]:n}})}if(c===`lookup`||c===`master_detail`){let n=s.reference_to||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=d(await r.find(n,{$filter:{[a]:{$in:i}},$top:i.length})),l=s.reference_field||s.display_field||`name`,u={};for(let e of c){let t=String(e[a]??e.id??e._id??``),n=e[l]||e.name||e.label||e.title||t;t&&(u[t]=String(n))}return e.map(e=>{let n=e[t],r=String(n??``);return{...e,[t]:u[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:Q(r),[o]:n}})}var $=e=>{let{schema:t}=e,n=(0,V.useContext)(m),r=e.dataSource||n?.dataSource,i=u(t.bind),{fieldOptionLabel:p}=b(),g=(0,V.useRef)(p);(0,V.useEffect)(()=>{g.current=p},[p]);let[x,S]=(0,V.useState)([]),[se,C]=(0,V.useState)(()=>!(Array.isArray(t.data)&&t.data.length>0)&&!!t.objectName),[ce,w]=(0,V.useState)(null),[T,E]=(0,V.useState)(null),D=(0,V.useMemo)(()=>t.aggregate?JSON.stringify(t.aggregate):``,[t.aggregate]),O=(0,V.useMemo)(()=>t.filter?JSON.stringify(t.filter):``,[t.filter]),k=(0,V.useMemo)(()=>t.compareTo?JSON.stringify(t.compareTo):``,[t.compareTo]),A=e=>e!==`pie`&&e!==`donut`&&e!==`funnel`,j=(0,V.useCallback)(async(e,n)=>{if(t.aggregate&&typeof e.aggregate==`function`){let r=t.aggregate.groupBy;if(r&&typeof r==`object`&&!Array.isArray(r)){let i=t.aggregate.field,a=t.aggregate.function,o={function:a,alias:i||a};a!==`count`&&i&&(o.field=i);let s=await e.aggregate(t.objectName,{groupBy:[r],aggregations:[o],where:n});return Array.isArray(s)?s:[]}let i=await e.aggregate(t.objectName,{field:t.aggregate.field,function:t.aggregate.function,groupBy:r,filter:n});return Array.isArray(i)?i:[]}if(typeof e.find==`function`){let r=d(await e.find(t.objectName,{$filter:n}));return t.aggregate&&r.length>0&&(r=De(r,t.aggregate)),r}return[]},[t.objectName,D]),M=(0,V.useCallback)(async(e,n)=>{if(!e||!t.objectName){n.current&&C(!1);return}n.current&&(C(!0),w(null));try{let r=a(t.filter),i=t.compareTo,o=!!i&&A(t.chartType),s=o?ee(t.filter,i):null,[c,l]=await Promise.all([j(e,r),s?j(e,s):Promise.resolve([])]),u=c,d=t.aggregate?.groupBy,f=d&&typeof d==`object`&&!Array.isArray(d)?d.alias||d.field:d||t.xAxisKey;if(o&&l.length>0&&t.aggregate){let e=t.aggregate.field,n=t.aggregate.function,r=t=>{if(t==null)return null;let r=`${e}_${n}`;return r in t?Number(t[r]):n===`count`&&`${e}_count`in t?Number(t[`${e}_count`]):e in t?Number(t[e]):`value`in t?Number(t.value):`count`in t?Number(t.count):null},i=`${e}__comparison`,a=f;if(a&&u.some(e=>e[a]!=null)&&l.some(e=>e[a]!=null)){let e=new Map;for(let t of l){let n=String(t[a]??``);e.set(n,r(t))}u=u.map(t=>{let n=String(t[a]??``),r=e.get(n);return r==null?t:{...t,[i]:r}});let t=new Set(u.map(e=>String(e[a]??``)));for(let e of l){let n=String(e[a]??``);t.has(n)||u.push({[a]:n,[i]:r(e)})}}else{let e=Math.max(u.length,l.length),t=[];for(let n=0;n<e;n++){let e=u[n]||{},a=l[n];t.push(a?{...e,[i]:r(a)}:e)}u=t}}if(f&&typeof e.getObjectSchema==`function`)try{let n=await e.getObjectSchema(t.objectName);u=await Oe(u,f,n,e,(e,n)=>g.current(t.objectName,f,e,n))}catch{}n.current&&S(u)}catch(e){console.error(`[ObjectChart] Fetch error:`,e),n.current&&w(e instanceof Error?e.message:`Failed to load chart data`)}finally{n.current&&C(!1)}},[t.objectName,D,O,k,t.xAxisKey,t.chartType,j]);(0,V.useEffect)(()=>{let e={current:!0};return t.objectName&&!i&&!t.data?M(r,e):e.current&&C(!1),()=>{e.current=!1}},[t.objectName,r,i,t.data,O,D,k,M]);let N=i||t.data||x,P=Array.isArray(N)?N:[],F=t.drillDown,I=t.aggregate?.groupBy||t.xAxisKey,le=(0,V.useMemo)(()=>{if(!I)return new Map;let e=new Map,t=`__raw_${I}`;for(let n of P){let r=n?.[I];if(r==null)continue;let i=t in(n||{})?n[t]:r;e.set(String(r),i)}return e},[P,I]),L=t.compareTo,R=!!L&&A(t.chartType)&&!!t.aggregate&&P.some(e=>e[`${t.aggregate.field}__comparison`]!=null),z=(0,V.useMemo)(()=>{let e=Array.isArray(t.series)?t.series:null;if(!R)return e;let n=e||[{dataKey:t.aggregate.field}],r={vsLastWeek:`Previous week`,vsLastMonth:`Previous month`,vsLastQuarter:`Previous quarter`,vsLastYear:`Previous year`,vsYesterday:`Yesterday`,vsPreviousPeriod:`Previous period`}[l(L,t.filter)]||`Previous period`;return[...n.map(e=>({...e,variant:e.variant||`current`})),{dataKey:`${t.aggregate.field}__comparison`,label:r,variant:`comparison`}]},[R,t.series,t.aggregate,t.filter,L]),ue={...t,data:P,...z?{series:z}:{}};if(se&&P.length===0)return(0,H.jsx)(`div`,{className:`flex items-center justify-center text-muted-foreground text-sm p-4 `+(t.className||``),"data-testid":`chart-loading`,children:`Loading chart data…`});if(ce)return(0,H.jsxs)(`div`,{className:`flex flex-col items-center justify-center gap-2 p-4 `+(t.className||``),"data-testid":`chart-error`,role:`alert`,children:[(0,H.jsx)(ae,{className:`h-6 w-6 text-destructive opacity-60`}),(0,H.jsx)(`p`,{className:`text-xs text-destructive font-medium`,children:`Failed to load chart data`}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground max-w-xs text-center`,children:ce})]});if(!r&&t.objectName&&P.length===0)return(0,H.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,`”`]});let B=f(F)?e=>{let t=e.category,n=t!=null&&le.has(String(t))?le.get(String(t)):t;E({...e,category:n,categoryLabel:t,scope:`cell`})}:void 0,de=T&&t.objectName?(()=>{let e=s(F,T,{groupByField:I}),n={...t.filter||{},...e},i=o(F,T,t.title||`Details`),a=F?.target??`drawer`,l=(0,H.jsx)(`div`,{className:`overflow-auto`,"data-testid":`chart-drill-body`,children:(0,H.jsx)(c,{schema:{type:`object-data-table`,objectName:t.objectName,filter:n,pagination:!0,pageSize:F?.maxRows,columns:F?.columns?.map(e=>({accessorKey:e,header:e}))},dataSource:r})});return a===`dialog`?(0,H.jsx)(v,{open:!0,onOpenChange:e=>!e&&E(null),children:(0,H.jsxs)(te,{className:`max-w-4xl`,children:[(0,H.jsx)(oe,{children:(0,H.jsx)(_,{children:i})}),l]})}):(0,H.jsx)(re,{open:!0,onOpenChange:e=>!e&&E(null),children:(0,H.jsxs)(ie,{side:`right`,className:`w-full sm:max-w-2xl md:max-w-3xl lg:max-w-4xl flex flex-col`,children:[(0,H.jsx)(y,{children:(0,H.jsx)(ne,{children:i})}),(0,H.jsx)(`div`,{className:`flex-1 overflow-hidden mt-2`,children:l})]})})})():null;return(0,H.jsxs)(`div`,{className:`relative`,children:[(0,H.jsx)(h,{active:se&&P.length>0}),(0,H.jsx)(Z,{...e,schema:ue,onChartClick:B}),de]})};p.register(`object-chart`,$,{namespace:`plugin-charts`,label:`Object Chart`,category:`view`,inputs:[{name:`objectName`,type:`string`,label:`Object Name`,required:!0},{name:`data`,type:`array`,label:`Data`,description:`Optional static data`},{name:`filter`,type:`array`,label:`Filter`},{name:`aggregate`,type:`object`,label:`Aggregate`,description:`Aggregation config: { field, function, groupBy }`}]});var ke=t({ChartBarRenderer:()=>Ee,ChartRenderer:()=>Z,ObjectChart:()=>$,chartComponents:()=>Ae}),Ae={"bar-chart":Ee,chart:Z};p.register(`bar-chart`,Ee,{namespace:`plugin-charts`,label:`Bar Chart`,category:`plugin`,inputs:[{name:`data`,type:`array`,label:`Data`,required:!0},{name:`dataKey`,type:`string`,label:`Data Key`,defaultValue:`value`},{name:`xAxisKey`,type:`string`,label:`X-Axis Key`,defaultValue:`name`},{name:`height`,type:`number`,label:`Height`,defaultValue:400},{name:`color`,type:`color`,label:`Color`,defaultValue:`#8884d8`}],defaultProps:{data:[{name:`Jan`,value:400},{name:`Feb`,value:300},{name:`Mar`,value:600},{name:`Apr`,value:800},{name:`May`,value:500}],dataKey:`value`,xAxisKey:`name`,height:400,color:`#8884d8`}}),p.register(`chart`,$,{namespace:`view`,category:`view`,label:`Chart`,inputs:[{name:`objectName`,type:`string`,label:`Object Name`,required:!0},{name:`type`,type:`string`,label:`Chart Type`},{name:`categoryField`,type:`string`,label:`Category Field`},{name:`valueField`,type:`string`,label:`Value Field`}]}),p.register(`chart`,Z,{namespace:`plugin-charts`,label:`Chart`,category:`plugin`,inputs:[{name:`chartType`,type:`enum`,label:`Chart Type`,enum:[{label:`Bar`,value:`bar`},{label:`Line`,value:`line`},{label:`Area`,value:`area`},{label:`Pie`,value:`pie`},{label:`Donut`,value:`donut`},{label:`Radar`,value:`radar`},{label:`Scatter`,value:`scatter`}],defaultValue:`bar`},{name:`data`,type:`code`,label:`Data (JSON)`,required:!0},{name:`config`,type:`code`,label:`Config (JSON)`},{name:`xAxisKey`,type:`string`,label:`X Axis Key`,defaultValue:`name`},{name:`series`,type:`code`,label:`Series (JSON Array)`,required:!0},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{chartType:`bar`,data:[{name:`Jan`,sales:400,revenue:240},{name:`Feb`,sales:300,revenue:139},{name:`Mar`,sales:600,revenue:380},{name:`Apr`,sales:800,revenue:430},{name:`May`,sales:500,revenue:220}],config:{sales:{label:`Sales`,color:`#8884d8`},revenue:{label:`Revenue`,color:`#82ca9d`}},xAxisKey:`name`,series:[{dataKey:`sales`},{dataKey:`revenue`}]}}),p.register(`chart:bar`,Z,{namespace:`plugin-charts`,label:`Bar Chart (Alias)`,category:`plugin`,defaultProps:{chartType:`bar`}}),p.register(`pie-chart`,Z,{namespace:`plugin-charts`,label:`Pie Chart`,category:`plugin`,defaultProps:{chartType:`pie`}}),p.register(`donut-chart`,Z,{namespace:`plugin-charts`,label:`Donut Chart`,category:`plugin`,defaultProps:{chartType:`donut`}}),p.register(`radar-chart`,Z,{namespace:`plugin-charts`,label:`Radar Chart`,category:`plugin`,defaultProps:{chartType:`radar`}}),p.register(`scatter-chart`,Z,{namespace:`plugin-charts`,label:`Scatter Chart`,category:`plugin`,defaultProps:{chartType:`scatter`}});export{ke as t};
|