dhx-react-suite 1.1.2 → 1.1.4

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.
@@ -1,4 +1,4 @@
1
- (function(W,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("react/jsx-runtime"),require("react"),require("recharts")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","react","recharts"],e):(W=typeof globalThis<"u"?globalThis:W||self,e(W.DhxReactSuite={},W.ReactJSXRuntime,W.React,W.Recharts))})(this,function(W,e,u,Y){"use strict";const t={primary:"#0288d1",primaryDk:"#01579b",primaryLt:"#e1f5fe",success:"#43a047",danger:"#e53935",warning:"#fb8c00",bg:"#f5f7fa",surface:"#ffffff",border:"#dde3ea",borderDk:"#b0bec5",text:"#3d4a5c",textSec:"#6b7a8d",textMut:"#9aa5b1",shadow:"0 2px 8px rgba(0,0,0,.10)",shadowLg:"0 8px 28px rgba(0,0,0,.14)",r:"4px",rMd:"8px",font:"'Segoe UI', system-ui, -apple-system, sans-serif"},we="dhx-react-styles";function j(){if(typeof document>"u"||document.getElementById(we))return;const r=document.createElement("style");r.id=we,r.textContent=`
1
+ (function(B,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("react/jsx-runtime"),require("react"),require("recharts")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","react","recharts"],e):(B=typeof globalThis<"u"?globalThis:B||self,e(B.DhxReactSuite={},B.ReactJSXRuntime,B.React,B.Recharts))})(this,function(B,e,u,K){"use strict";const t={primary:"#0288d1",primaryDk:"#01579b",primaryLt:"#e1f5fe",success:"#43a047",danger:"#e53935",warning:"#fb8c00",bg:"#f5f7fa",surface:"#ffffff",border:"#dde3ea",borderDk:"#b0bec5",text:"#3d4a5c",textSec:"#6b7a8d",textMut:"#9aa5b1",shadow:"0 2px 8px rgba(0,0,0,.10)",shadowLg:"0 8px 28px rgba(0,0,0,.14)",r:"4px",rMd:"8px",font:"'Segoe UI', system-ui, -apple-system, sans-serif"},we="dhx-react-styles";function V(){if(typeof document>"u"||document.getElementById(we))return;const r=document.createElement("style");r.id=we,r.textContent=`
2
2
  *,*::before,*::after{box-sizing:border-box}
3
3
  .dhx{font-family:${t.font};font-size:14px;color:${t.text}}
4
4
  .dhx *{box-sizing:border-box}
@@ -38,5 +38,5 @@
38
38
  .dhx-tag-success{background:#e8f5e9;color:#1b5e20}
39
39
  .dhx-tag-danger{background:#ffebee;color:#b71c1c}
40
40
  .dhx-tag-warning{background:#fff3e0;color:#e65100}
41
- `,document.head.appendChild(r)}const Ne={sm:{height:24,padding:"0 8px",fontSize:12},md:{},lg:{height:38,padding:"0 18px",fontSize:14}};function We({children:r,variant:s="primary",size:p="md",icon:h,disabled:x,onClick:a,style:g,className:i=""}){return u.useEffect(j,[]),e.jsxs("button",{className:`dhx dhx-btn dhx-btn-${s} ${i}`,style:{...Ne[p],...g},disabled:x,onClick:a,children:[h&&e.jsx("span",{style:{fontSize:16},children:h}),r]})}function U(r,s){u.useEffect(()=>{const p=h=>{r.current&&!r.current.contains(h.target)&&s(h)};return document.addEventListener("mousedown",p),()=>document.removeEventListener("mousedown",p)},[r,s])}function me(r){const s=u.useRef(!1),p=u.useRef({x:0,y:0,ox:0,oy:0});return u.useCallback((h,x=0,a=0)=>{s.current=!0,p.current={x:h.clientX,y:h.clientY,ox:x,oy:a};const g=v=>{if(!s.current)return;const{x:M,y:n,ox:l,oy:d}=p.current;r(l+v.clientX-M,d+v.clientY-n)},i=()=>{s.current=!1,document.removeEventListener("mousemove",g),document.removeEventListener("mouseup",i)};document.addEventListener("mousemove",g),document.addEventListener("mouseup",i),h.preventDefault()},[r])}function R({items:r,onSelect:s,style:p}){const[h,x]=u.useState(null);return e.jsx("div",{className:"dhx dhx-anim-fade",style:{position:"absolute",top:"calc(100% + 4px)",left:0,minWidth:180,background:t.surface,border:`1px solid ${t.border}`,borderRadius:t.r,boxShadow:t.shadowLg,zIndex:200,padding:"4px 0",...p},children:r.map((a,g)=>{var v,M;if(a.type==="separator")return e.jsx("div",{style:{height:1,background:t.border,margin:"4px 0"}},g);const i=h===g;return e.jsxs("div",{style:{position:"relative"},onMouseEnter:()=>x(g),onMouseLeave:()=>x(null),children:[e.jsxs("div",{onClick:()=>{var n;return!a.disabled&&!((n=a.items)!=null&&n.length)&&s(a)},style:{display:"flex",alignItems:"center",gap:8,padding:"8px 14px",cursor:a.disabled?"not-allowed":"pointer",fontSize:13,color:a.disabled?t.textMut:t.text,background:i&&!a.disabled?t.bg:"transparent",opacity:a.disabled?.5:1},children:[a.icon&&e.jsx("span",{style:{fontSize:15,width:18,textAlign:"center"},children:a.icon}),e.jsx("span",{style:{flex:1},children:a.value||a.id}),a.hotkey&&e.jsx("span",{style:{fontSize:11,color:t.textMut},children:a.hotkey}),(v=a.items)!=null&&v.length?e.jsx("span",{style:{fontSize:10,color:t.textMut},children:"▶"}):null]}),i&&((M=a.items)!=null&&M.length)?e.jsx(R,{items:a.items,onSelect:s,style:{position:"absolute",left:"100%",top:-4}}):null]},a.id||g)})})}function Ae({items:r=[],label:s="Menu",onSelect:p,style:h}){const[x,a]=u.useState(!1),g=u.useRef(null);return u.useEffect(j,[]),U(g,u.useCallback(()=>a(!1),[])),e.jsxs("div",{ref:g,className:"dhx",style:{position:"relative",display:"inline-block",...h},children:[e.jsxs("button",{className:"dhx dhx-btn dhx-btn-secondary",onClick:()=>a(i=>!i),children:[s," ",e.jsx("span",{style:{fontSize:10},children:x?"▲":"▼"})]}),x&&e.jsx(R,{items:r,onSelect:i=>{p==null||p(i),a(!1)}})]})}function Be({items:r=[],onSelect:s,children:p}){const[h,x]=u.useState(null),a=u.useRef(null);u.useEffect(j,[]),U(a,u.useCallback(()=>x(null),[]));const g=i=>{i.preventDefault(),x({x:i.clientX,y:i.clientY})};return e.jsxs("div",{ref:a,onContextMenu:g,style:{position:"relative",display:"contents"},children:[p,h&&e.jsx("div",{style:{position:"fixed",left:h.x,top:h.y,zIndex:9999},children:e.jsx(R,{items:r,onSelect:i=>{s==null||s(i),x(null)}})})]})}function Me({count:r}){return e.jsx("span",{style:{position:"absolute",top:2,right:2,minWidth:16,height:16,background:t.danger,color:"#fff",borderRadius:8,fontSize:10,fontWeight:700,display:"flex",alignItems:"center",justifyContent:"center",padding:"0 3px",lineHeight:1,pointerEvents:"none"},children:r})}function He({items:r=[],onAction:s,style:p}){const[h,x]=u.useState(null),[a,g]=u.useState(()=>{const n={};return r.forEach(l=>{l.id&&(l.twoState||l.group)&&l.active&&(n[l.id]=!0)}),n}),i=u.useRef(null);u.useEffect(j,[]),U(i,u.useCallback(()=>x(null),[]));const v=(n,l)=>{var d,y;if(!n.disabled){if(n.twoState&&n.id&&g(o=>({...o,[n.id]:!o[n.id]})),n.group&&n.id&&g(o=>{const b={...o};return r.forEach(S=>{S.group===n.group&&S.id&&(b[S.id]=!1)}),b[n.id]=!0,b}),(d=n.items)!=null&&d.length){x(o=>o===l?null:l);return}(y=n.onClick)==null||y.call(n,n.id||""),s==null||s(n.id||"")}},M=(n,l)=>{var b,S;if(n.hidden)return null;if(n.type==="separator")return e.jsx("div",{style:{width:1,background:t.border,margin:"6px 4px",alignSelf:"stretch"}},l);if(n.type==="spacer")return e.jsx("div",{style:{flex:1}},l);if(n.type==="input")return e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[n.label&&e.jsx("span",{style:{fontSize:12,color:t.textSec,fontWeight:500},children:n.label}),e.jsxs("div",{style:{position:"relative",display:"flex",alignItems:"center"},children:[n.icon&&e.jsx("span",{style:{position:"absolute",left:8,color:t.textMut,fontSize:15,pointerEvents:"none",zIndex:1},children:n.icon}),e.jsx("input",{className:"dhx dhx-input",style:{width:n.width||140,height:28,paddingLeft:n.icon?30:void 0},placeholder:n.placeholder,defaultValue:n.value,onChange:z=>{var C;return(C=n.onChange)==null?void 0:C.call(n,z.target.value)}})]})]},l);if(n.type==="select")return e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[n.label&&e.jsx("span",{style:{fontSize:12,color:t.textSec,fontWeight:500},children:n.label}),e.jsx("select",{className:"dhx dhx-input",style:{width:n.width||100,height:28,cursor:"pointer"},defaultValue:n.value,onChange:z=>{var C;return(C=n.onChange)==null?void 0:C.call(n,z.target.value)},children:(b=n.options)==null?void 0:b.map(z=>e.jsx("option",{value:z.value,children:z.label},z.value))})]},l);if(n.type==="imageButton")return e.jsxs("button",{title:n.tooltip,disabled:n.disabled,style:{position:"relative",width:32,height:32,padding:2,border:"none",borderRadius:"50%",overflow:"hidden",cursor:n.disabled?"not-allowed":"pointer",background:"transparent",flexShrink:0},onClick:()=>v(n,l),children:[n.src&&e.jsx("img",{src:n.src,alt:n.value||"",style:{width:"100%",height:"100%",objectFit:"cover",borderRadius:"50%"}}),n.count!==void 0&&e.jsx(Me,{count:n.count})]},l);const d=!!(n.id&&a[n.id]),y=n.value??n.text,o=!!((S=n.items)!=null&&S.length);return e.jsxs("div",{style:{position:"relative"},children:[e.jsxs("button",{className:"dhx dhx-btn dhx-btn-ghost",title:n.tooltip,disabled:n.disabled,style:{height:32,gap:4,position:"relative",background:d?t.primaryLt:"transparent",color:d?t.primary:n.disabled?t.textMut:t.text,opacity:n.disabled?.55:1,cursor:n.disabled?"not-allowed":"pointer"},onClick:()=>v(n,l),children:[n.icon&&e.jsx("span",{style:{fontSize:16},children:n.icon}),y&&e.jsx("span",{style:{fontSize:13},children:y}),o&&e.jsx("span",{style:{fontSize:9,opacity:.55,marginLeft:2},children:"▼"}),n.count!==void 0&&e.jsx(Me,{count:n.count})]}),o&&h===l&&e.jsx(R,{items:n.items,onSelect:()=>x(null),style:{top:"100%",left:0}})]},l)};return e.jsx("div",{ref:i,className:"dhx",style:{display:"flex",alignItems:"center",gap:2,padding:"4px 8px",background:t.surface,borderBottom:`1px solid ${t.border}`,minHeight:44,flexWrap:"wrap",...p},children:r.map(M)})}function Pe({items:r=[],width:s=240,collapsed:p,onSelect:h,header:x,footer:a,style:g}){const[i,v]=u.useState(p??!1),[M,n]=u.useState(null),[l,d]=u.useState({});u.useEffect(j,[]);const y=i?56:s,o=S=>{n(S.id),h==null||h(S)},b=(S,z=0)=>{var k;if(S.type==="separator")return e.jsx("div",{style:{height:1,background:t.border,margin:"6px 8px"}},S.id);if(S.type==="customHTML")return e.jsx("div",{style:{padding:"8px 12px"},dangerouslySetInnerHTML:{__html:S.html||""}},S.id);const C=(((k=S.items)==null?void 0:k.length)??0)>0,I=l[S.id],f=M===S.id;return e.jsxs("div",{children:[e.jsxs("div",{onClick:()=>{C&&d(N=>({...N,[S.id]:!N[S.id]})),o(S)},style:{display:"flex",alignItems:"center",gap:10,padding:`8px ${i?"0px":`${12+z*16}px`}`,cursor:"pointer",borderRadius:t.r,margin:"1px 6px",justifyContent:i?"center":"flex-start",transition:"all .15s",background:f?t.primaryLt:"transparent",color:f?t.primary:t.text,userSelect:"none"},onMouseEnter:N=>!f&&(N.currentTarget.style.background=t.bg),onMouseLeave:N=>!f&&(N.currentTarget.style.background="transparent"),children:[S.icon&&e.jsx("span",{style:{fontSize:18,minWidth:22,textAlign:"center"},children:S.icon}),!i&&e.jsx("span",{style:{flex:1,fontSize:13,fontWeight:f?600:400},children:S.value}),!i&&S.count!==void 0&&e.jsx("span",{style:{background:t.primary,color:"#fff",borderRadius:10,padding:"1px 6px",fontSize:11,fontWeight:700},children:S.count}),!i&&C&&e.jsx("span",{style:{fontSize:12,color:t.textMut,transition:"transform .15s",transform:I?"rotate(90deg)":"rotate(0deg)"},children:"▶"})]}),C&&I&&!i&&S.items.map(N=>b(N,z+1))]},S.id)};return e.jsxs("div",{className:"dhx",style:{width:y,minWidth:y,background:t.surface,borderRight:`1px solid ${t.border}`,display:"flex",flexDirection:"column",transition:"width .2s ease",overflow:"hidden",...g},children:[x&&!i&&e.jsx("div",{style:{padding:"12px 14px",borderBottom:`1px solid ${t.border}`,fontWeight:700,fontSize:15},children:x}),e.jsx("button",{onClick:()=>v(S=>!S),style:{margin:"8px 6px",background:"transparent",border:"none",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:i?"center":"flex-end",padding:"4px 6px",borderRadius:t.r,color:t.textSec},children:e.jsx("span",{style:{fontSize:18},children:i?"☰":"✕"})}),e.jsx("div",{className:"dhx-scroll",style:{flex:1,overflowY:"auto",overflowX:"hidden"},children:r.map(S=>b(S))}),a&&!i&&e.jsx("div",{style:{padding:"10px 14px",borderTop:`1px solid ${t.border}`},children:a})]})}function je({config:r}){const[s,p]=u.useState(!1),h={position:"relative",background:t.surface,border:`1px solid ${t.border}`,borderRadius:t.r,overflow:"hidden",...r.width?{width:r.width,minWidth:r.width}:{flex:1},...r.height?{height:r.height,minHeight:r.height}:{minHeight:40},...s?{flex:"0 0 auto"}:{}};return e.jsxs("div",{style:h,children:[r.header&&e.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"6px 12px",background:t.bg,borderBottom:`1px solid ${t.border}`,fontSize:12,fontWeight:600,color:t.textSec,userSelect:"none"},children:[e.jsx("span",{children:r.header}),r.collapsable&&e.jsx("button",{onClick:()=>p(x=>!x),style:{background:"none",border:"none",cursor:"pointer",color:t.textMut,fontSize:16,lineHeight:1},children:s?"▼":"▲"})]}),!s&&e.jsxs("div",{style:{padding:r.padding||0,height:r.header?"calc(100% - 33px)":"100%",overflow:"auto"},children:[r.html?e.jsx("div",{dangerouslySetInnerHTML:{__html:r.html}}):r.content,(r.rows||r.cols)&&e.jsx(ze,{rows:r.rows,cols:r.cols,style:{height:"100%"}})]})]})}function ze({rows:r,cols:s,type:p="line",style:h,children:x}){u.useEffect(j,[]);const a=p==="space"?12:p==="wide"?8:1,g=r||s,i=!!r;return g?e.jsx("div",{className:"dhx",style:{display:"flex",flexDirection:i?"column":"row",gap:a,width:"100%",height:"100%",...h},children:g.map((v,M)=>e.jsx(je,{config:v},v.id||M))}):e.jsx("div",{className:"dhx",style:{width:"100%",height:"100%",...h},children:x})}function Oe({views:r=[],mode:s="top",tabAlign:p="left",closable:h=[],disabled:x=[],defaultActive:a,onBeforeChange:g,onChange:i,style:v}){var f;const[M,n]=u.useState(a||((f=r[0])==null?void 0:f.id)),[l,d]=u.useState(r.map(k=>k.id));u.useEffect(j,[]);const y=(k,N)=>{k.stopPropagation(),d(c=>c.filter(D=>D!==N)),M===N&&n(l.find(c=>c!==N)??"")},o=k=>{x.includes(k)||g&&g(k)===!1||(n(k),i==null||i(k))},b=s==="left"||s==="right",S=r.filter(k=>l.includes(k.id)),z=e.jsx("div",{style:{display:"flex",flexDirection:b?"column":"row",justifyContent:p==="center"?"center":p==="right"?"flex-end":"flex-start",background:t.surface,borderBottom:!b&&s!=="bottom"?`2px solid ${t.border}`:"none",borderTop:s==="bottom"?`2px solid ${t.border}`:"none",borderRight:s==="left"?`2px solid ${t.border}`:"none",borderLeft:s==="right"?`2px solid ${t.border}`:"none",overflowX:"auto",flexShrink:0},children:S.map(k=>{const N=M===k.id,c=x.includes(k.id),D=s==="bottom"?{borderTop:`2px solid ${t.primary}`,color:t.primary,fontWeight:600}:b?{color:t.primary,fontWeight:600,background:t.primaryLt,[s==="left"?"borderRight":"borderLeft"]:`2px solid ${t.primary}`}:{borderBottom:`2px solid ${t.primary}`,color:t.primary,fontWeight:600};return e.jsxs("div",{onClick:()=>o(k.id),style:{display:"flex",alignItems:"center",gap:6,padding:"10px 16px",cursor:c?"not-allowed":"pointer",whiteSpace:"nowrap",fontSize:13,transition:"color .15s",userSelect:"none",minWidth:b?120:"auto",...N?D:{color:c?t.textMut:t.textSec}},children:[k.icon&&e.jsx("span",{style:{fontSize:16},children:k.icon}),e.jsx("span",{children:k.tab}),h.includes(k.id)&&e.jsx("span",{onClick:w=>y(w,k.id),style:{marginLeft:4,opacity:.6,fontSize:12,cursor:"pointer"},children:"✕"})]},k.id)})}),C=S.find(k=>k.id===M),I=e.jsxs("div",{className:"dhx-scroll",style:{flex:1,overflow:"auto"},children:[C==null?void 0:C.content,(C==null?void 0:C.html)&&e.jsx("div",{dangerouslySetInnerHTML:{__html:C.html},style:{padding:16}})]});return e.jsxs("div",{className:"dhx",style:{display:"flex",flexDirection:s==="top"?"column":s==="bottom"?"column-reverse":s==="left"?"row":"row-reverse",width:"100%",height:"100%",background:t.surface,border:`1px solid ${t.border}`,borderRadius:t.r,overflow:"hidden",...v},children:[z,I]})}const Q=`1px solid ${t.border}`;function Ye({active:r,dir:s}){return e.jsxs("span",{style:{display:"inline-flex",flexDirection:"column",gap:1,flexShrink:0,marginLeft:4},children:[e.jsx("svg",{width:"7",height:"4",viewBox:"0 0 7 4",children:e.jsx("path",{d:"M3.5 0L7 4H0z",fill:r&&s==="asc"?t.primary:t.borderDk})}),e.jsx("svg",{width:"7",height:"4",viewBox:"0 0 7 4",children:e.jsx("path",{d:"M3.5 4L0 0H7z",fill:r&&s==="desc"?t.primary:t.borderDk})})]})}function Fe({columns:r,data:s=[],height:p=400,rowHeight:h=40,sortable:x=!0,resizable:a=!0,editable:g=!1,stripe:i=!1,autoWidth:v=!1,keyNavigation:M=!1,selection:n,multiselect:l,onSelect:d,onChange:y,style:o}){const[b,S]=u.useState(null),[z,C]=u.useState("asc"),[I,f]=u.useState({}),[k,N]=u.useState(new Set),[c,D]=u.useState(-1),[w,B]=u.useState(()=>r.map(m=>m.width??m.minWidth??150)),[V,J]=u.useState(null),[Z,le]=u.useState(""),[oe,ae]=u.useState({}),E=u.useRef(null),[P,F]=u.useState(0);u.useEffect(j,[]),u.useEffect(()=>{if(!v||!E.current)return;const m=new ResizeObserver(()=>{var $;return F((($=E.current)==null?void 0:$.offsetWidth)??0)});return m.observe(E.current),()=>m.disconnect()},[v]);const X=u.useMemo(()=>{if(!v||P===0)return w;const m=w.reduce((L,T)=>L+T,0);if(P<=m)return w;const $=(P-m)/r.length;return w.map(L=>L+$)},[v,P,w,r.length]),K=u.useMemo(()=>{let m=s.map(($,L)=>{const T=String($.id??L);return oe[T]?{...$,...oe[T]}:$}).filter($=>Object.entries(I).every(([L,T])=>!T||String($[L]??"").toLowerCase().includes(T.toLowerCase())));return b&&(m=[...m].sort(($,L)=>{const T=$[b],O=L[b];if(T==null)return 1;if(O==null)return-1;const H=T<O?-1:T>O?1:0;return z==="asc"?H:-H})),m},[s,b,z,I,oe]),G=u.useMemo(()=>{const m={};return r.forEach($=>{var L;if((L=$.footer)!=null&&L.some(T=>T.summary)){const T=K.map(H=>Number(H[$.id])).filter(H=>!isNaN(H)),O=T.reduce((H,te)=>H+te,0);m[$.id]={sum:O,avg:T.length?O/T.length:0,count:K.length,min:T.length?Math.min(...T):0,max:T.length?Math.max(...T):0}}}),m},[K,r]),q=u.useMemo(()=>{const m={};return r.filter($=>$.filterType==="select").forEach($=>{m[$.id]=[...new Set(s.map(L=>String(L[$.id]??"")))].sort()}),m},[s,r]),ie=r.some(m=>m.filterable),de=r.some(m=>{var $;return($=m.footer)==null?void 0:$.length}),ve=X.reduce((m,$)=>m+$,0),se=(m,$)=>m.id??$,ce=m=>{!x||m.sortable===!1||(C($=>b===m.id&&$==="asc"?"desc":"asc"),S(m.id))},A=(m,$)=>{if(!n)return;const L=se(m,$);D($),N(T=>{const O=l?new Set(T):new Set;return O.has(L)?O.delete(L):O.add(L),O}),d==null||d(m)},ee=()=>{if(!V)return;const{key:m,colId:$}=V;ae(T=>({...T,[String(m)]:{...T[String(m)]||{},[$]:Z}}));const L=K.find((T,O)=>se(T,O)===m);L&&(y==null||y(L,$,Z)),J(null)},ct=m=>{if(V&&m.key==="Escape"){J(null);return}if(!(!M||!n)){if(m.key==="ArrowDown"){m.preventDefault();const $=Math.min(c+1,K.length-1);$>=0&&A(K[$],$)}else if(m.key==="ArrowUp"){m.preventDefault();const $=Math.max(c-1,0);$>=0&&A(K[$],$)}}},pt=(m,$)=>{m.preventDefault(),m.stopPropagation();const L=m.clientX,T=w[$],O=te=>B(ke=>{const re=[...ke];return re[$]=Math.max(r[$].minWidth||50,T+te.clientX-L),re}),H=()=>{document.removeEventListener("mousemove",O),document.removeEventListener("mouseup",H)};document.addEventListener("mousemove",O),document.addEventListener("mouseup",H)},Se=(m,$,L,T)=>({width:m,minWidth:m,flexShrink:0,boxSizing:"border-box",padding:"0 12px",height:T,display:"flex",alignItems:"center",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:13,textAlign:$.align,justifyContent:$.align==="center"?"center":$.align==="right"?"flex-end":"flex-start",borderLeft:L?"none":Q});return e.jsx("div",{ref:E,className:"dhx",tabIndex:M?0:void 0,onKeyDown:ct,style:{width:"100%",height:p,display:"flex",flexDirection:"column",border:Q,borderRadius:t.r,overflow:"hidden",outline:"none",...o},children:e.jsx("div",{style:{overflowX:"auto",flex:1,display:"flex",flexDirection:"column",minHeight:0},children:e.jsxs("div",{style:{minWidth:ve,display:"flex",flexDirection:"column",height:"100%"},children:[e.jsx("div",{style:{display:"flex",background:t.bg,borderBottom:Q,flexShrink:0,position:"sticky",top:0,zIndex:2},children:r.map((m,$)=>{var L;return e.jsxs("div",{onClick:()=>ce(m),style:{...Se(X[$],m,$===0,40),position:"relative",fontWeight:500,color:t.text,cursor:x&&m.sortable!==!1?"pointer":"default",userSelect:"none"},children:[e.jsx("span",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:Array.isArray(m.header)?(L=m.header[0])==null?void 0:L.text:m.header||m.id}),x&&m.sortable!==!1&&e.jsx(Ye,{active:b===m.id,dir:z}),a&&m.resizable!==!1&&$<r.length-1&&e.jsx("div",{onMouseDown:T=>pt(T,$),onClick:T=>T.stopPropagation(),style:{position:"absolute",right:0,top:0,bottom:0,width:4,cursor:"col-resize",zIndex:1},onMouseEnter:T=>T.currentTarget.style.background=t.primary+"55",onMouseLeave:T=>T.currentTarget.style.background="transparent"})]},m.id)})}),ie&&e.jsx("div",{style:{display:"flex",borderBottom:Q,background:t.surface,flexShrink:0},children:r.map((m,$)=>e.jsx("div",{style:{width:X[$],minWidth:X[$],flexShrink:0,padding:"4px 6px",boxSizing:"border-box",borderLeft:$===0?"none":Q},children:m.filterable&&m.filterType==="select"?e.jsxs("select",{className:"dhx dhx-input",style:{height:26,fontSize:12,padding:"0 4px"},value:I[m.id]||"",onChange:L=>f(T=>({...T,[m.id]:L.target.value})),children:[e.jsx("option",{value:"",children:"All"}),(q[m.id]||[]).map(L=>e.jsx("option",{value:L,children:L},L))]}):m.filterable?e.jsx("input",{className:"dhx dhx-input",style:{height:26,fontSize:12},placeholder:"Filter...",value:I[m.id]||"",onChange:L=>f(T=>({...T,[m.id]:L.target.value}))}):null},m.id))}),e.jsxs("div",{className:"dhx-scroll",style:{flex:1,overflowY:"auto",minHeight:0},children:[K.map((m,$)=>{const L=se(m,$),T=k.has(L),O=T?t.primaryLt:i&&$%2!==0?t.bg:t.surface;return e.jsx("div",{style:{display:"flex",height:h,borderBottom:Q,flexShrink:0,background:O,transition:"background .1s",cursor:n?"pointer":"default"},onMouseEnter:H=>!T&&(H.currentTarget.style.background=t.primaryLt+"80"),onMouseLeave:H=>!T&&(H.currentTarget.style.background=O),children:r.map((H,te)=>{const ke=(V==null?void 0:V.key)===L&&(V==null?void 0:V.colId)===H.id,re=m[H.id],ht=H.template?H.template(re,m):String(re??"");return e.jsx("div",{onClick:()=>{A(m,$),g&&H.editable!==!1&&(J({key:L,colId:H.id}),le(String(re??"")))},style:Se(X[te],H,te===0,h),children:ke?e.jsx("input",{autoFocus:!0,value:Z,onChange:ne=>le(ne.target.value),onBlur:ee,onKeyDown:ne=>{ne.key==="Enter"&&ee(),ne.key==="Escape"&&J(null)},onClick:ne=>ne.stopPropagation(),style:{width:"100%",border:"none",outline:`2px solid ${t.primary}`,borderRadius:2,fontSize:13,padding:"2px 4px",background:t.surface,color:t.text}}):ht},H.id)})},String(L))}),K.length===0&&e.jsx("div",{style:{textAlign:"center",padding:40,color:t.textMut,fontSize:13},children:"No data"})]}),de&&e.jsx("div",{style:{display:"flex",borderTop:Q,background:t.bg,flexShrink:0},children:r.map((m,$)=>{var H;const L=(H=m.footer)==null?void 0:H[0],T=G[m.id]??{sum:0,avg:0,count:0,min:0,max:0};let O="";return L&&(typeof L.text=="function"?O=L.text(T):L.text?O=L.text:L.summary&&(O=String(Math.round(T[L.summary]*100)/100))),e.jsx("div",{style:{...Se(X[$],m,$===0,40),fontWeight:600,color:t.text},children:O},m.id)})})]})})})}const _=["#0288d1","#43a047","#f57c00","#e53935","#8e24aa","#00838f","#ef6c00","#2e7d32"];function Ke({type:r="bar",data:s=[],series:p=[],scales:h={},legend:x,height:a=280,style:g}){var b,S,z,C,I;u.useEffect(j,[]);const i=((b=h.bottom)==null?void 0:b.text)||s[0]&&Object.keys(s[0])[0]||"x",v=e.jsx(Y.Tooltip,{contentStyle:{fontSize:12,borderRadius:t.r,border:`1px solid ${t.border}`}}),M=x?e.jsx(Y.Legend,{iconSize:10,wrapperStyle:{fontSize:12},verticalAlign:x.valign,align:x.halign}):null,n=e.jsx(Y.CartesianGrid,{strokeDasharray:"3 3",stroke:t.border}),l=e.jsx(Y.XAxis,{dataKey:i,tick:{fontSize:11,fill:t.textSec},axisLine:{stroke:t.border},tickLine:!1}),d=e.jsx(Y.YAxis,{tick:{fontSize:11,fill:t.textSec},axisLine:!1,tickLine:!1,domain:[((S=h.left)==null?void 0:S.min)??"auto",((z=h.left)==null?void 0:z.max)??"auto"]}),y={data:s,margin:{top:10,right:20,left:0,bottom:0}};let o;if(r==="bar")o=e.jsxs(Y.BarChart,{...y,children:[n,l,d,v,M,p.map((f,k)=>e.jsx(Y.Bar,{dataKey:f.value||f.id,name:f.label||f.id,fill:f.fill||_[k%_.length],radius:[3,3,0,0]},f.id))]});else if(r==="line")o=e.jsxs(Y.LineChart,{...y,children:[n,l,d,v,M,p.map((f,k)=>e.jsx(Y.Line,{type:"monotone",dataKey:f.value||f.id,name:f.label||f.id,stroke:f.color||_[k%_.length],strokeWidth:2,dot:{r:3,fill:f.color||_[k%_.length]}},f.id))]});else if(r==="area")o=e.jsxs(Y.AreaChart,{...y,children:[n,l,d,v,M,p.map((f,k)=>e.jsx(Y.Area,{type:"monotone",dataKey:f.value||f.id,name:f.label||f.id,stroke:f.color||_[k%_.length],fill:(f.fill||_[k%_.length])+"33",strokeWidth:2},f.id))]});else if(r==="pie"||r==="donut"){const f=s[0]||{},k=Object.keys(f).find(c=>typeof f[c]=="number")||"value",N=Object.keys(f).find(c=>typeof f[c]=="string")||"x";o=e.jsxs(Y.PieChart,{children:[e.jsx(Y.Pie,{data:s,cx:"50%",cy:"50%",outerRadius:r==="donut"?"70%":"80%",innerRadius:r==="donut"?"40%":0,dataKey:k,nameKey:N,label:({name:c,percent:D})=>`${c??""} ${((D??0)*100).toFixed(0)}%`,labelLine:!0,paddingAngle:2,children:s.map((c,D)=>e.jsx(Y.Cell,{fill:_[D%_.length]},D))}),v,M]})}else r==="radar"?o=e.jsxs(Y.RadarChart,{...y,cx:"50%",cy:"50%",children:[e.jsx(Y.PolarGrid,{}),e.jsx(Y.PolarAngleAxis,{dataKey:i,tick:{fontSize:11}}),p.map((f,k)=>e.jsx(Y.Radar,{dataKey:f.value||f.id,name:f.label||f.id,stroke:f.color||_[k],fill:(f.fill||_[k])+"44"},f.id)),v,M]}):r==="scatter"&&(o=e.jsxs(Y.ScatterChart,{...y,children:[n,e.jsx(Y.XAxis,{dataKey:((C=p[0])==null?void 0:C.xValue)||"x",type:"number",tick:{fontSize:11,fill:t.textSec}}),e.jsx(Y.YAxis,{dataKey:((I=p[0])==null?void 0:I.yValue)||"y",tick:{fontSize:11,fill:t.textSec}}),v,p.map((f,k)=>e.jsx(Y.Scatter,{data:f.data||s,name:f.label||f.id,fill:f.color||_[k]},f.id))]}));return e.jsx("div",{className:"dhx",style:{width:"100%",height:a,padding:12,background:t.surface,borderRadius:t.rMd,...g},children:e.jsx(Y.ResponsiveContainer,{width:"100%",height:"100%",children:o})})}const Ve=["January","February","March","April","May","June","July","August","September","October","November","December"],Xe=["Su","Mo","Tu","We","Th","Fr","Sa"];function _e({value:r,range:s=!1,timepicker:p=!1,onChange:h,style:x}){const a=new Date,g=r?new Date(Array.isArray(r)?r[0]:r):a,[i,v]=u.useState(g),[M,n]=u.useState(r??(s?[null,null]:null)),[l,d]=u.useState(null),[y,o]=u.useState({h:0,m:0});u.useEffect(j,[]);const b=i.getFullYear(),S=i.getMonth(),z=new Date(b,S,1).getDay(),C=new Date(b,S+1,0).getDate(),I=[];for(let c=0;c<z;c++)I.push(null);for(let c=1;c<=C;c++)I.push(new Date(b,S,c));const f=c=>c.toDateString()===a.toDateString(),k=c=>{if(!M)return!1;if(s&&Array.isArray(M)){const[D,w]=M;if(!D)return!1;const B=c.getTime();return w?B>=D.getTime()&&B<=w.getTime():c.toDateString()===D.toDateString()}return c.toDateString()===M.toDateString()},N=c=>{if(s){const[D,w]=Array.isArray(M)?M:[null,null];if(!D||w)n([c,null]);else{const B=c<D?[c,D]:[D,c];n(B),h==null||h(B)}}else n(c),h==null||h(c)};return e.jsxs("div",{className:"dhx",style:{background:t.surface,border:`1px solid ${t.border}`,borderRadius:t.rMd,padding:16,display:"inline-block",boxShadow:t.shadow,...x},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:12},children:[e.jsx("button",{onClick:()=>v(c=>new Date(c.getFullYear(),c.getMonth()-1,1)),className:"dhx dhx-btn dhx-btn-ghost",style:{height:28,padding:"0 8px",fontSize:16},children:"‹"}),e.jsxs("div",{style:{fontWeight:700,fontSize:14},children:[Ve[S]," ",b]}),e.jsx("button",{onClick:()=>v(c=>new Date(c.getFullYear(),c.getMonth()+1,1)),className:"dhx dhx-btn dhx-btn-ghost",style:{height:28,padding:"0 8px",fontSize:16},children:"›"})]}),e.jsxs("div",{style:{display:"grid",gridTemplateColumns:"repeat(7, 32px)",gap:2},children:[Xe.map(c=>e.jsx("div",{style:{textAlign:"center",fontSize:11,fontWeight:600,color:t.textMut,paddingBottom:4},children:c},c)),I.map((c,D)=>{const w=c?k(c):!1,B=c&&l&&c.toDateString()===l.toDateString();return e.jsx("div",{onClick:()=>c&&N(c),onMouseEnter:()=>c&&d(c),onMouseLeave:()=>d(null),style:{width:32,height:32,display:"flex",alignItems:"center",justifyContent:"center",borderRadius:t.r,cursor:c?"pointer":"default",fontSize:12,fontWeight:c&&f(c)?700:400,background:w?t.primary:B?t.bg:"transparent",color:w?"#fff":c&&f(c)?t.primary:c?t.text:"transparent",border:c&&f(c)&&!w?`1px solid ${t.primary}`:"1px solid transparent",transition:"all .1s"},children:c==null?void 0:c.getDate()},D)})]}),p&&e.jsxs("div",{style:{borderTop:`1px solid ${t.border}`,marginTop:12,paddingTop:12,display:"flex",alignItems:"center",justifyContent:"center",gap:8},children:[e.jsx("input",{type:"number",min:0,max:23,value:y.h,onChange:c=>o(D=>({...D,h:+c.target.value})),className:"dhx dhx-input",style:{width:50,textAlign:"center"}}),e.jsx("span",{style:{fontWeight:700,color:t.textSec},children:":"}),e.jsx("input",{type:"number",min:0,max:59,value:y.m,onChange:c=>o(D=>({...D,m:+c.target.value})),className:"dhx dhx-input",style:{width:50,textAlign:"center"}})]})]})}function $e({value:r,onChange:s,timeFormat:p=12,controls:h=!1,minuteStep:x=5,style:a}){const[g,i]=u.useState((r==null?void 0:r.h)??(p===24?0:12)),[v,M]=u.useState((r==null?void 0:r.m)??0),[n,l]=u.useState((r==null?void 0:r.ampm)??"AM"),[d,y]=u.useState(null);u.useEffect(j,[]);const o=p===24?Array.from({length:24},(f,k)=>k):Array.from({length:12},(f,k)=>k+1),b=Array.from({length:Math.ceil(60/x)},(f,k)=>k*x),S=(f,k,N)=>{const c=p===24?{h:f,m:k}:{h:f,m:k,ampm:N};h?y(c):s==null||s(c)},z=()=>{y(null),i((r==null?void 0:r.h)??(p===24?0:12)),M((r==null?void 0:r.m)??0),l((r==null?void 0:r.ampm)??"AM")},C={display:"flex",flexDirection:"column",alignItems:"center",gap:4},I=f=>({height:32,display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",fontSize:13,fontWeight:f?700:400,background:f?t.primaryLt:"transparent",color:f?t.primary:t.text});return e.jsxs("div",{className:"dhx",style:{background:t.surface,border:`1px solid ${t.border}`,borderRadius:t.rMd,padding:16,display:"inline-block",boxShadow:t.shadow,...a},children:[e.jsxs("div",{style:{display:"flex",gap:8,alignItems:"stretch"},children:[e.jsxs("div",{style:C,children:[e.jsx("span",{style:{fontSize:11,fontWeight:600,color:t.textMut},children:"Hours"}),e.jsx("div",{className:"dhx-scroll",style:{height:160,overflowY:"auto",width:48,border:`1px solid ${t.border}`,borderRadius:t.r},children:o.map(f=>e.jsx("div",{onClick:()=>{i(f),S(f,v,n)},style:I(g===f),onMouseEnter:k=>g!==f&&(k.currentTarget.style.background=t.bg),onMouseLeave:k=>g!==f&&(k.currentTarget.style.background="transparent"),children:String(f).padStart(2,"0")},f))})]}),e.jsxs("div",{style:C,children:[e.jsx("span",{style:{fontSize:11,fontWeight:600,color:t.textMut},children:"Minutes"}),e.jsx("div",{className:"dhx-scroll",style:{height:160,overflowY:"auto",width:48,border:`1px solid ${t.border}`,borderRadius:t.r},children:b.map(f=>e.jsx("div",{onClick:()=>{M(f),S(g,f,n)},style:I(v===f),onMouseEnter:k=>v!==f&&(k.currentTarget.style.background=t.bg),onMouseLeave:k=>v!==f&&(k.currentTarget.style.background="transparent"),children:String(f).padStart(2,"0")},f))})]}),p===12&&e.jsxs("div",{style:C,children:[e.jsx("span",{style:{fontSize:11,fontWeight:600,color:t.textMut},children:"AM/PM"}),e.jsx("div",{style:{display:"flex",flexDirection:"column",border:`1px solid ${t.border}`,borderRadius:t.r,overflow:"hidden"},children:["AM","PM"].map(f=>e.jsx("div",{onClick:()=>{l(f),S(g,v,f)},style:{height:40,display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",padding:"0 12px",fontSize:13,fontWeight:n===f?700:400,background:n===f?t.primary:t.surface,color:n===f?"#fff":t.text},children:f},f))})]})]}),e.jsxs("div",{style:{textAlign:"center",marginTop:12,fontSize:22,fontWeight:700,color:t.primary,letterSpacing:2},children:[String(g).padStart(2,"0"),":",String(v).padStart(2,"0"),p===12?` ${n}`:""]}),h&&e.jsxs("div",{style:{display:"flex",gap:8,justifyContent:"flex-end",marginTop:12},children:[e.jsx("button",{className:"dhx dhx-btn dhx-btn-secondary",onClick:z,children:"Cancel"}),e.jsx("button",{className:"dhx dhx-btn dhx-btn-primary",onClick:()=>d&&(s==null?void 0:s(d)),children:"Apply"})]})]})}const qe=({open:r})=>e.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",style:{flexShrink:0,transition:"transform .15s",transform:r?"rotate(180deg)":"rotate(0deg)"},children:e.jsx("path",{d:"M2 4l4 4 4-4",stroke:t.textMut,strokeWidth:"1.5",fill:"none",strokeLinecap:"round",strokeLinejoin:"round"})});function pe({data:r=[],value:s,placeholder:p="Select or type...",multiselection:h=!1,label:x,onChange:a,style:g}){var N;const[i,v]=u.useState(!1),[M,n]=u.useState(""),[l,d]=u.useState(h?s?[].concat(s):[]:s||null),y=u.useRef(null),o=u.useRef(null);u.useEffect(j,[]),U(y,u.useCallback(()=>{v(!1),n("")},[]));const b=u.useMemo(()=>r.filter(c=>!M||c.value.toLowerCase().includes(M.toLowerCase())),[r,M]),S=c=>h?(l||[]).includes(c):l===c,z=c=>{const D=c.id||c.value;if(h){const w=S(D)?l.filter(B=>B!==D):[...l||[],D];d(w),a==null||a(w)}else d(D),n(""),v(!1),a==null||a(D)},C=c=>{const D=l.filter(w=>w!==c);d(D),a==null||a(D)},I=()=>{v(!0),setTimeout(()=>{var c;return(c=o.current)==null?void 0:c.focus()},0)},f=((N=r.find(c=>(c.id||c.value)===l))==null?void 0:N.value)||"",k=h?l||[]:[];return e.jsxs("div",{ref:y,className:"dhx",style:{position:"relative",...g},children:[x&&e.jsx("label",{className:"dhx dhx-label",children:x}),e.jsxs("div",{onClick:I,style:{display:"flex",alignItems:"center",flexWrap:h?"wrap":"nowrap",border:`1px solid ${i?t.primary:t.border}`,borderRadius:t.r,minHeight:34,padding:"4px 8px",cursor:"text",background:t.surface,gap:4,transition:"border-color .15s",boxShadow:i?`0 0 0 3px ${t.primary}22`:"none"},children:[h&&e.jsxs(e.Fragment,{children:[k.map(c=>{var D;return e.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:4,background:t.primary,color:"#fff",borderRadius:12,padding:"2px 10px 2px 8px",fontSize:12,lineHeight:1.5,whiteSpace:"nowrap"},children:[((D=r.find(w=>(w.id||w.value)===c))==null?void 0:D.value)||c,e.jsx("span",{onClick:w=>{w.stopPropagation(),C(c)},style:{cursor:"pointer",fontSize:15,lineHeight:1,opacity:.75,marginLeft:2},children:"×"})]},c)}),e.jsx("input",{ref:o,value:M,onChange:c=>{n(c.target.value),v(!0)},onFocus:()=>v(!0),onClick:c=>c.stopPropagation(),placeholder:k.length?"":p,style:{flex:1,minWidth:60,border:"none",outline:"none",fontSize:13,background:"transparent",color:t.text,padding:0}})]}),!h&&e.jsx("input",{ref:o,value:i?M:f,onChange:c=>{n(c.target.value),v(!0)},onFocus:()=>{v(!0),n("")},onClick:c=>c.stopPropagation(),placeholder:p,style:{flex:1,border:"none",outline:"none",fontSize:13,background:"transparent",color:t.text,padding:0}}),e.jsx(qe,{open:i})]}),i&&e.jsx("div",{className:"dhx dhx-anim-fade",style:{position:"absolute",top:"calc(100% + 4px)",left:0,right:0,background:t.surface,border:`1px solid ${t.border}`,borderRadius:t.r,boxShadow:t.shadowLg,zIndex:100},children:e.jsxs("div",{className:"dhx-scroll",style:{maxHeight:220,overflowY:"auto"},children:[b.map(c=>{const D=c.id||c.value,w=S(D);return e.jsxs("div",{onClick:()=>z(c),style:{padding:"8px 12px",cursor:"pointer",display:"flex",alignItems:"center",gap:8,fontSize:13,background:w?t.primaryLt:"transparent",color:w?t.primary:t.text},onMouseEnter:B=>!w&&(B.currentTarget.style.background=t.bg),onMouseLeave:B=>!w&&(B.currentTarget.style.background="transparent"),children:[h&&e.jsx("span",{style:{width:14,height:14,flexShrink:0,border:`2px solid ${w?t.primary:t.borderDk}`,borderRadius:3,display:"flex",alignItems:"center",justifyContent:"center",background:w?t.primary:"transparent"},children:w&&e.jsx("span",{style:{color:"#fff",fontSize:9,lineHeight:1},children:"✓"})}),e.jsx("span",{style:{flex:1},children:c.value}),!h&&w&&e.jsx("span",{style:{color:t.primary,fontSize:12,fontWeight:700},children:"✓"}),c.count!==void 0&&e.jsxs("span",{style:{fontSize:11,color:t.textMut},children:["(",c.count,")"]})]},D)}),b.length===0&&e.jsx("div",{style:{padding:16,textAlign:"center",color:t.textMut,fontSize:13},children:"No matches"})]})})]})}function he({min:r=0,max:s=100,step:p=1,value:h,range:x=!1,label:a,tick:g,disabled:i=!1,onChange:v,style:M}){const[n,l]=u.useState(h??(x?[r,s]:r));u.useEffect(j,[]);const d=(z,C)=>{if(!i)if(x){const I=[...n];I[z]=C,l(I),v==null||v(I)}else l(C),v==null||v(C)},y=z=>(z-r)/(s-r)*100,o=x?n:[n],b=x?{left:`${y(o[0])}%`,width:`${y(o[1])-y(o[0])}%`}:{left:0,width:`${y(o[0])}%`},S=i?t.border:t.primary;return e.jsxs("div",{className:"dhx",style:{width:"100%",opacity:i?.5:1,...M},children:[a&&e.jsx("label",{className:"dhx dhx-label",children:a}),e.jsx("div",{style:{position:"relative",height:36,display:"flex",alignItems:"center"},children:e.jsxs("div",{style:{position:"relative",flex:1,height:4,background:t.border,borderRadius:2},children:[e.jsx("div",{style:{position:"absolute",...b,height:"100%",background:S,borderRadius:2}}),o.map((z,C)=>e.jsx("input",{type:"range",min:r,max:s,step:p,value:z,disabled:i,onChange:I=>{const f=+I.target.value;x&&C===0&&f>=n[1]||x&&C===1&&f<=n[0]||d(C,f)},style:{position:"absolute",width:"100%",height:"100%",opacity:0,cursor:i?"not-allowed":"pointer",top:0,left:0,margin:0}},C)),o.map((z,C)=>e.jsx("div",{style:{position:"absolute",left:`${y(z)}%`,top:"50%",transform:"translate(-50%, -50%)",width:16,height:16,borderRadius:"50%",background:t.surface,border:`2px solid ${S}`,boxShadow:"0 1px 4px rgba(0,0,0,.2)",pointerEvents:"none"},children:e.jsx("div",{style:{position:"absolute",bottom:"calc(100% + 6px)",left:"50%",transform:"translateX(-50%)",background:i?t.textMut:t.primaryDk,color:"#fff",padding:"2px 6px",borderRadius:t.r,fontSize:11,fontWeight:700,whiteSpace:"nowrap"},children:z})},C))]})}),g&&e.jsx("div",{style:{display:"flex",justifyContent:"space-between",marginTop:2},children:[r,Math.round((s+r)/2),s].map(z=>e.jsx("span",{style:{fontSize:10,color:t.textMut},children:z},z))})]})}const Ge=["#f44336","#e91e63","#9c27b0","#673ab7","#3f51b5","#2196f3","#03a9f4","#00bcd4","#009688","#4caf50","#8bc34a","#cddc39","#ffeb3b","#ffc107","#ff9800","#ff5722","#795548","#607d8b","#9e9e9e","#000000","#ffffff","#0288d1","#01579b","#43a047","#e53935","#f57c00"];function fe(r){const s=parseInt(r.slice(1,3),16)/255,p=parseInt(r.slice(3,5),16)/255,h=parseInt(r.slice(5,7),16)/255,x=Math.max(s,p,h),a=Math.min(s,p,h);let g=0,i=0;const v=(x+a)/2;if(x!==a){const M=x-a;i=v>.5?M/(2-x-a):M/(x+a),g=x===s?((p-h)/M+(p<h?6:0))/6:x===p?((h-s)/M+2)/6:((s-p)/M+4)/6}return[Math.round(g*360),Math.round(i*100),Math.round(v*100)]}function Ce(r,s,p){s/=100,p/=100;const h=s*Math.min(p,1-p),x=a=>{const g=(a+r/30)%12,i=p-h*Math.max(Math.min(g-3,9-g,1),-1);return Math.round(255*i).toString(16).padStart(2,"0")};return"#"+x(0)+x(8)+x(4)}function Je({value:r="#0288d1",onChange:s,style:p}){const[h,x]=u.useState(()=>fe(r)),a=Ce(...h);u.useEffect(j,[]);const g=i=>{x(i),s==null||s(Ce(...i))};return e.jsxs("div",{className:"dhx",style:{background:t.surface,border:`1px solid ${t.border}`,borderRadius:t.rMd,padding:16,display:"inline-block",boxShadow:t.shadow,...p},children:[e.jsx("div",{style:{width:200,height:120,borderRadius:t.r,marginBottom:12,background:`linear-gradient(to bottom, transparent, black), linear-gradient(to right, white, hsl(${h[0]},100%,50%))`,cursor:"crosshair"}}),[["Hue",0,360,h[0]],["Saturation",0,100,h[1]],["Lightness",0,100,h[2]]].map(([i,v,M,n],l)=>e.jsxs("div",{style:{marginBottom:l<2?8:12},children:[e.jsxs("div",{className:"dhx dhx-label",children:[i,l>0?` (${n}%)`:""]}),e.jsx("input",{type:"range",min:v,max:M,value:n,onChange:d=>{const y=[...h];y[l]=+d.target.value,g(y)},style:{width:"100%",accentColor:t.primary}})]},i)),e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:12},children:[e.jsx("div",{style:{width:36,height:36,borderRadius:t.r,background:a,border:`1px solid ${t.border}`,flexShrink:0}}),e.jsx("input",{className:"dhx dhx-input",style:{flex:1,fontFamily:"monospace",fontSize:12},value:a,onChange:i=>{try{g(fe(i.target.value)),s==null||s(i.target.value)}catch{}}})]}),e.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(13, 1fr)",gap:3},children:Ge.map(i=>e.jsx("div",{onClick:()=>{x(fe(i)),s==null||s(i)},style:{width:14,height:14,borderRadius:2,background:i,cursor:"pointer",border:a===i?`2px solid ${t.text}`:"1px solid rgba(0,0,0,.15)",transition:"transform .1s"},onMouseEnter:v=>v.currentTarget.style.transform="scale(1.3)",onMouseLeave:v=>v.currentTarget.style.transform="scale(1)"},i))})]})}function Ue({trigger:r,children:s,placement:p="bottom-start",style:h}){const[x,a]=u.useState(!1),[g,i]=u.useState({top:"100%",left:0}),v=u.useRef(null),M=u.useRef(null);u.useEffect(j,[]),U(v,u.useCallback(()=>a(!1),[]));const n=()=>{a(l=>{if(!l&&M.current){const d=M.current.getBoundingClientRect(),y={"bottom-start":{top:d.height+4,left:0},"bottom-end":{top:d.height+4,right:0,left:"auto"},"top-start":{bottom:d.height+4,top:"auto",left:0}};i(y[p]||y["bottom-start"])}return!l})};return e.jsxs("div",{ref:v,className:"dhx",style:{position:"relative",display:"inline-block"},children:[e.jsx("div",{ref:M,onClick:n,children:r}),x&&e.jsx("div",{className:"dhx dhx-anim-fade",style:{position:"absolute",...g,zIndex:200,background:t.surface,border:`1px solid ${t.border}`,borderRadius:t.rMd,boxShadow:t.shadowLg,...h},children:s})]})}function Qe({title:r,children:s,width:p=480,height:h,closable:x=!0,movable:a=!0,modal:g=!1,defaultOpen:i=!0,footer:v,onClose:M,style:n}){const[l,d]=u.useState(i),[y,o]=u.useState({x:0,y:0});u.useEffect(j,[]);const b=me(u.useCallback((z,C)=>a&&o({x:z,y:C}),[a])),S=()=>{d(!1),M==null||M()};return l?e.jsxs(e.Fragment,{children:[g&&e.jsx("div",{style:{position:"fixed",inset:0,background:"rgba(0,0,0,.45)",zIndex:900},onClick:x?S:void 0}),e.jsxs("div",{className:"dhx",style:{position:g?"fixed":"absolute",left:"50%",top:"50%",transform:`translate(calc(-50% + ${y.x}px), calc(-50% + ${y.y}px))`,width:p,...h?{height:h}:{},background:t.surface,borderRadius:t.rMd,boxShadow:t.shadowLg,zIndex:901,display:"flex",flexDirection:"column",overflow:"hidden",...n},children:[e.jsxs("div",{onMouseDown:z=>b(z,y.x,y.y),style:{display:"flex",alignItems:"center",padding:"12px 16px",borderBottom:`1px solid ${t.border}`,cursor:a?"grab":"default",background:t.bg,gap:8,userSelect:"none"},children:[e.jsx("span",{style:{flex:1,fontWeight:700,fontSize:15},children:r}),x&&e.jsx("button",{onClick:S,style:{background:"none",border:"none",cursor:"pointer",width:28,height:28,borderRadius:t.r,display:"flex",alignItems:"center",justifyContent:"center",fontSize:18,color:t.textSec},onMouseEnter:z=>z.currentTarget.style.background=t.border,onMouseLeave:z=>z.currentTarget.style.background="none",children:"×"})]}),e.jsx("div",{className:"dhx-scroll",style:{flex:1,minHeight:0,padding:20,overflowY:"auto"},children:s}),v&&e.jsx("div",{style:{padding:"12px 16px",borderTop:`1px solid ${t.border}`,display:"flex",justifyContent:"flex-end",gap:8,background:t.bg},children:v})]})]}):null}const ue=u.createContext(null),Ze={success:"✓",error:"✕",warning:"⚠",info:"ℹ"},De={success:t.success,error:t.danger,warning:t.warning,info:t.primary};function Re({children:r}){const[s,p]=u.useState([]);u.useEffect(j,[]);const h=u.useCallback(g=>p(i=>i.filter(v=>v.id!==g)),[]),x=u.useCallback(g=>{const i=Date.now();return p(v=>[...v,{id:i,...g}]),g.duration!==0&&setTimeout(()=>h(i),g.duration||4e3),i},[h]),a={message:x,alert:(g,i)=>x({type:"info",title:g,...i}),confirm:(g,i,v)=>x({type:"warning",title:g,confirm:i,...v})};return e.jsxs(ue.Provider,{value:a,children:[r,e.jsx("div",{style:{position:"fixed",top:20,right:20,zIndex:9999,display:"flex",flexDirection:"column",gap:8,pointerEvents:"none"},children:s.map(g=>{const i=g.type||"info";return e.jsxs("div",{style:{background:t.surface,border:`1px solid ${t.border}`,borderLeft:`4px solid ${De[i]}`,borderRadius:t.r,boxShadow:t.shadowLg,padding:"12px 16px",minWidth:280,maxWidth:380,pointerEvents:"all",display:"flex",gap:10,alignItems:"flex-start",animation:"dhx-toast .3s ease"},children:[e.jsx("span",{style:{fontSize:18,color:De[i],lineHeight:1},children:Ze[i]}),e.jsxs("div",{style:{flex:1},children:[g.title&&e.jsx("div",{style:{fontWeight:600,fontSize:13,marginBottom:g.text?3:0},children:g.title}),g.text&&e.jsx("div",{style:{fontSize:12,color:t.textSec,lineHeight:1.5},children:g.text}),g.confirm&&e.jsxs("div",{style:{display:"flex",gap:6,marginTop:8},children:[e.jsx("button",{className:"dhx dhx-btn dhx-btn-primary",style:{height:26,fontSize:12},onClick:()=>{g.confirm(!0),h(g.id)},children:"Confirm"}),e.jsx("button",{className:"dhx dhx-btn dhx-btn-secondary",style:{height:26,fontSize:12},onClick:()=>{g.confirm(!1),h(g.id)},children:"Cancel"})]})]}),e.jsx("button",{onClick:()=>h(g.id),style:{background:"none",border:"none",cursor:"pointer",color:t.textMut,fontSize:14,lineHeight:1,padding:0},children:"×"})]},g.id)})})]})}function et(){const r=u.useContext(ue);if(!r)throw new Error("useMessage must be used inside <MessageProvider>");return r}function tt({data:r=[],template:s,keyNavigation:p=!0,multiselection:h=!1,editable:x=!1,height:a=400,onSelect:g,onEdit:i,style:v}){const[M,n]=u.useState(new Set),[l,d]=u.useState(null),[y,o]=u.useState(""),[b,S]=u.useState(null);u.useEffect(j,[]);const z=(I,f)=>{const k=I.id??f;n(N=>{const c=h?new Set(N):new Set;return c.has(k)?c.delete(k):c.add(k),c}),S(f),g==null||g(I)},C=(I,f)=>{i==null||i({...I,value:y},f),d(null)};return e.jsxs("div",{className:"dhx dhx-scroll",style:{height:a,overflowY:"auto",border:`1px solid ${t.border}`,borderRadius:t.r,background:t.surface,...v},tabIndex:0,onKeyDown:I=>{p&&(I.key==="ArrowDown"&&S(f=>Math.min((f??-1)+1,r.length-1)),I.key==="ArrowUp"&&S(f=>Math.max((f??1)-1,0)))},children:[r.map((I,f)=>{const k=I.id??f,N=M.has(k),c=b===f;return e.jsx("div",{onClick:()=>z(I,f),onDoubleClick:()=>x&&(d(f),o(String(I.value||""))),style:{display:"flex",alignItems:"center",padding:"0 12px",height:40,cursor:"pointer",fontSize:13,borderBottom:`1px solid ${t.border}`,background:N?t.primaryLt:c?t.bg:t.surface,color:N?t.primary:t.text,outline:c?`2px solid ${t.primary}44`:"none",transition:"background .1s"},children:l===f?e.jsx("input",{autoFocus:!0,className:"dhx dhx-input",style:{height:28,flex:1},value:y,onChange:D=>o(D.target.value),onBlur:()=>C(I,f),onKeyDown:D=>{D.key==="Enter"&&C(I,f),D.key==="Escape"&&d(null)},onClick:D=>D.stopPropagation()}):s?e.jsx("div",{dangerouslySetInnerHTML:{__html:s(I)},style:{flex:1}}):e.jsx("span",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:String(I.value??"")})},String(k))}),r.length===0&&e.jsx("div",{style:{padding:24,textAlign:"center",color:t.textMut},children:"No items"})]})}function rt({data:r=[],template:s,itemsInRow:p=3,gap:h=12,multiselection:x=!1,onSelect:a,style:g}){const[i,v]=u.useState(new Set);u.useEffect(j,[]);const M=n=>{const l=n.id??String(n.title);v(d=>{const y=x?new Set(d):new Set;return y.has(l)?y.delete(l):y.add(l),y}),a==null||a(n)};return e.jsx("div",{className:"dhx",style:{display:"grid",gridTemplateColumns:`repeat(${p}, 1fr)`,gap:h,padding:h,...g},children:r.map((n,l)=>{const d=n.id??l,y=i.has(d);return e.jsx("div",{onClick:()=>M(n),style:{background:t.surface,border:`2px solid ${y?t.primary:t.border}`,borderRadius:t.rMd,overflow:"hidden",cursor:"pointer",transition:"all .15s",boxShadow:y?`0 0 0 3px ${t.primary}33`:t.shadow,transform:y?"translateY(-2px)":"none"},onMouseEnter:o=>{o.currentTarget.style.boxShadow=t.shadowLg,o.currentTarget.style.transform="translateY(-2px)"},onMouseLeave:o=>{o.currentTarget.style.boxShadow=y?`0 0 0 3px ${t.primary}33`:t.shadow,o.currentTarget.style.transform=y?"translateY(-2px)":"none"},children:s?e.jsx("div",{dangerouslySetInnerHTML:{__html:s(n)}}):e.jsxs("div",{style:{padding:16},children:[n.img&&e.jsx("img",{src:n.img,alt:n.title||"",style:{width:"100%",borderRadius:t.r,marginBottom:8,display:"block"}}),e.jsx("div",{style:{fontWeight:600,fontSize:14,marginBottom:4},children:n.title||n.value}),n.subtitle&&e.jsx("div",{style:{fontSize:12,color:t.textSec},children:n.subtitle})]})},String(d))})})}function ge(r){return r.map(s=>({...s,items:s.items?ge(s.items):void 0}))}function xe(r,s={}){return r.forEach(p=>{p.opened&&(s[p.id]=!0),p.items&&xe(p.items,s)}),s}function Ee(r,s){let p=null;return[r.filter(x=>x.id===s?(p=x,!1):!0).map(x=>{if(x.items){const[a,g]=Ee(x.items,s);return g&&(p=g),{...x,items:a}}return x}),p]}function ye(r,s,p,h){if(h==="inside")return r.map(a=>a.id===s?{...a,items:[...a.items||[],p]}:a.items?{...a,items:ye(a.items,s,p,h)}:a);if(r.some(a=>a.id===s)){const a=[];for(const g of r)g.id===s?h==="before"?(a.push(p),a.push(g)):(a.push(g),a.push(p)):a.push(g);return a}return r.map(a=>a.items?{...a,items:ye(a.items,s,p,h)}:a)}function nt(r,s,p){function h(x){var a,g;if(x.id===s){const i=v=>{var M;return v.id===p||(((M=v.items)==null?void 0:M.some(i))??!1)};return((a=x.items)==null?void 0:a.some(i))??!1}return((g=x.items)==null?void 0:g.some(h))??!1}return r.some(h)}function Ie(r,s,p){return r.map(h=>h.id===s?{...h,value:p}:{...h,items:h.items?Ie(h.items,s,p):void 0})}function ot(r,s){var a;let p=0,h=0;const x=g=>{var i;p++,s[g.id]&&h++,(i=g.items)==null||i.forEach(x)};return(a=r.items)==null||a.forEach(x),{total:p,checkedCount:h}}function st({data:r=[],checkbox:s=!1,editable:p=!1,dragMode:h,tooltip:x,onSelect:a,onCheck:g,onChange:i,style:v}){const[M,n]=u.useState(()=>ge(r)),[l,d]=u.useState(()=>xe(r)),[y,o]=u.useState(null),[b,S]=u.useState({}),[z,C]=u.useState(null),[I,f]=u.useState(""),[k,N]=u.useState(null),[c,D]=u.useState(null);u.useEffect(j,[]),u.useEffect(()=>{n(ge(r)),d(E=>({...xe(r),...E}))},[r]);const w=E=>d(P=>({...P,[E]:!P[E]})),B=(E,P)=>{S(F=>({...F,[E]:P})),g==null||g(E,P)},V=()=>{if(!z)return;const E=z,P=I;C(null),n(F=>{const X=Ie(F,E,P);return i==null||i(X),X})},J=(E,P)=>{E.dataTransfer.effectAllowed="move",N(P)},Z=(E,P)=>{if(!k||k===P||nt(M,k,P))return;E.preventDefault();const F=E.currentTarget.getBoundingClientRect(),X=E.clientY-F.top,K=F.height,G=X<K*.25?"before":X>K*.75?"after":"inside";D(q=>(q==null?void 0:q.id)===P&&(q==null?void 0:q.pos)===G?q:{id:P,pos:G})},le=(E,P)=>{if(E.preventDefault(),!k||!c||k===P){D(null),N(null);return}n(F=>{const[X,K]=Ee(F,k);if(!K)return F;const G=ye(X,P,K,c.pos);return i==null||i(G),G}),c.pos==="inside"&&d(F=>({...F,[P]:!0})),D(null),N(null)},oe=()=>{N(null),D(null)},ae=(E,P=0)=>{var ce;const F=(((ce=E.items)==null?void 0:ce.length)??0)>0,X=l[E.id],K=y===E.id,G=k===E.id,q=(c==null?void 0:c.id)===E.id;let ie=!!b[E.id],de=!1;if(s&&F){const{total:A,checkedCount:ee}=ot(E,b);ee>0&&ee<A?de=!0:A>0&&ee===A&&(ie=!0)}const ve=q&&c.pos!=="inside"?{boxShadow:c.pos==="before"?`inset 0 2px 0 0 ${t.primary}`:`inset 0 -2px 0 0 ${t.primary}`}:{},se=q&&c.pos==="inside"||K?t.primaryLt:"transparent";return e.jsxs("div",{style:{opacity:G?.4:1},children:[e.jsxs("div",{draggable:!!h,onDragStart:h?A=>J(A,E.id):void 0,onDragOver:h?A=>Z(A,E.id):void 0,onDrop:h?A=>le(A,E.id):void 0,onDragEnd:h?oe:void 0,title:x==null?void 0:x(E),onClick:()=>{o(E.id),a==null||a(E),F&&w(E.id)},onDoubleClick:()=>{p&&(C(E.id),f(E.value||""))},style:{display:"flex",alignItems:"center",gap:4,padding:`5px 8px 5px ${12+P*18}px`,cursor:h?"grab":"pointer",borderRadius:t.r,margin:"1px 4px",background:se,color:K?t.primary:t.text,userSelect:"none",fontSize:13,...ve},onMouseEnter:A=>!K&&!q&&(A.currentTarget.style.background=t.bg),onMouseLeave:A=>!K&&!q&&(A.currentTarget.style.background="transparent"),children:[e.jsx("span",{style:{width:16,textAlign:"center",fontSize:11,color:t.textMut,flexShrink:0},onClick:A=>{A.stopPropagation(),F&&w(E.id)},children:F?X?"▾":"▸":""}),e.jsx("span",{style:{fontSize:15,flexShrink:0},children:F?X?"📂":"📁":"📄"}),s&&e.jsx("input",{ref:A=>{A&&(A.indeterminate=de)},type:"checkbox",checked:ie,onChange:A=>{A.stopPropagation(),B(E.id,A.target.checked)},style:{cursor:"pointer",accentColor:t.primary,flexShrink:0},onClick:A=>A.stopPropagation()}),z===E.id?e.jsx("input",{autoFocus:!0,className:"dhx dhx-input",style:{height:24,fontSize:12,flex:1},value:I,onChange:A=>f(A.target.value),onBlur:V,onKeyDown:A=>{A.key==="Enter"&&V(),A.key==="Escape"&&C(null)},onClick:A=>A.stopPropagation()}):e.jsx("span",{style:{flex:1},children:E.value}),E.count!==void 0&&e.jsxs("span",{style:{fontSize:11,color:t.textMut},children:["(",E.count,")"]})]}),F&&X&&e.jsx("div",{children:E.items.map(A=>ae(A,P+1))})]},E.id)};return e.jsx("div",{className:"dhx dhx-scroll",style:{overflowY:"auto",...v},onDragOver:h?E=>E.preventDefault():void 0,onDrop:h?E=>{E.preventDefault(),D(null),N(null)}:void 0,children:M.map(E=>ae(E))})}function lt({total:r,pageSize:s=10,page:p,onChange:h,style:x}){const[a,g]=u.useState(p||1),i=Math.ceil(r/s);u.useEffect(j,[]);const v=n=>{const l=Math.min(Math.max(1,n),i);g(l),h==null||h(l)},M=u.useMemo(()=>{const n=[];for(let d=Math.max(1,a-2);d<=Math.min(i,a+2);d++)n.push(d);return n[0]>1&&(n[0]>2&&n.unshift("..."),n.unshift(1)),n[n.length-1]<i&&(n[n.length-1]<i-1&&n.push("..."),n.push(i)),n},[a,i]);return e.jsxs("div",{className:"dhx",style:{display:"flex",alignItems:"center",gap:4,padding:"8px 12px",...x},children:[e.jsxs("span",{style:{fontSize:12,color:t.textSec,marginRight:8},children:[(a-1)*s+1,"–",Math.min(a*s,r)," of ",r]}),[["«",1],["‹",a-1]].map(([n,l])=>e.jsx("button",{className:"dhx dhx-btn dhx-btn-ghost",style:{height:30,padding:"0 8px",fontSize:14},disabled:a===1,onClick:()=>v(l),children:n},n)),M.map((n,l)=>e.jsx("button",{onClick:()=>typeof n=="number"&&v(n),className:`dhx dhx-btn ${n===a?"dhx-btn-primary":"dhx-btn-ghost"}`,style:{height:30,minWidth:30,padding:"0 8px",fontSize:13},disabled:n==="...",children:n},l)),[["›",a+1],["»",i]].map(([n,l])=>e.jsx("button",{className:"dhx dhx-btn dhx-btn-ghost",style:{height:30,padding:"0 8px",fontSize:14},disabled:a===i,onClick:()=>v(l),children:n},n))]})}function at({config:r={},defaultValues:s={},onSubmit:p,style:h}){const[x,a]=u.useState(s),[g,i]=u.useState({}),[v,M]=u.useState(null);u.useEffect(j,[]);const n=(o,b)=>{a(S=>({...S,[o]:b})),i(S=>({...S,[o]:null}))},l=()=>{const o={};return(r.rows||[]).flat().forEach(b=>{b&&typeof b=="object"&&"name"in b&&b.required&&!x[b.name]&&(o[b.name]=`${b.label||b.name} is required`)}),i(o),Object.keys(o).length===0},d=o=>{const b=x[o.name]??o.value??"",S=g[o.name],z=o.labelWidth??r.labelWidth,C=z!==void 0||o.labelPosition==="left";if(o.type==="fieldset")return e.jsxs("fieldset",{style:{border:`1px solid ${t.border}`,borderRadius:t.r,padding:"12px 16px",marginBottom:14},children:[e.jsx("legend",{style:{fontSize:12,fontWeight:700,color:t.textSec,padding:"0 6px"},children:o.label}),(o.rows||[]).map(w=>d(w))]},o.name);if(o.type==="spacer")return e.jsx("div",{style:{height:o.height||16}},o.name);const I=z?{minWidth:z,width:z,flexShrink:0,paddingTop:8,boxSizing:"border-box"}:{},f=o.label?e.jsxs("label",{className:"dhx dhx-label",style:{display:"flex",gap:4,...I},children:[o.label,o.required&&e.jsx("span",{style:{color:t.danger},children:"*"})]},"lbl"):null,k=S?e.jsx("div",{style:{fontSize:11,color:t.danger,marginTop:3},children:S}):null,N=o.helpMessage?e.jsxs("div",{style:{fontSize:11,color:t.textMut,marginTop:3},children:["ⓘ ",o.helpMessage]}):null,c={key:o.name,className:"dhx-form-group"},D=w=>C?e.jsxs("div",{...c,style:{display:"flex",alignItems:"flex-start",gap:8},children:[f,e.jsxs("div",{style:{flex:1,minWidth:0},children:[w,k,N]})]}):e.jsxs("div",{...c,children:[f,w,k,N]});if(!o.type||o.type==="input")return D(e.jsxs("div",{className:"dhx-input-wrap",children:[o.icon&&e.jsx("span",{className:"dhx-input-icon",children:o.icon}),e.jsx("input",{className:`dhx dhx-input${o.icon?" dhx-input--with-icon":""}`,style:{borderColor:S?t.danger:void 0},type:o.inputType||"text",placeholder:o.placeholder,value:b,onChange:w=>n(o.name,w.target.value),disabled:o.disabled})]}));if(o.type==="textarea")return D(e.jsx("textarea",{className:"dhx dhx-input",style:{height:80,resize:"vertical",padding:"8px 10px"},placeholder:o.placeholder,value:b,onChange:w=>n(o.name,w.target.value)}));if(o.type==="select")return D(e.jsxs("select",{className:"dhx dhx-input",value:b,onChange:w=>n(o.name,w.target.value),style:{cursor:"pointer"},children:[e.jsx("option",{value:"",children:"— Select —"}),(o.options||[]).map(w=>e.jsx("option",{value:w.value,children:w.label||w.value},w.value))]}));if(o.type==="datepicker")return D(e.jsx("input",{type:"date",className:"dhx dhx-input",value:b,onChange:w=>n(o.name,w.target.value)}));if(o.type==="timepicker"){const w=x[o.name]??{h:12,m:0,ampm:"AM"},B=!!x[o.name],V=B?`${String(w.h).padStart(2,"0")}:${String(w.m).padStart(2,"0")}${w.ampm?" "+w.ampm:""}`:o.placeholder||"Click to select",J=e.jsxs("div",{style:{position:"relative"},children:[e.jsxs("div",{className:"dhx dhx-input",style:{cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"space-between"},onClick:()=>M(v===o.name?null:o.name),children:[e.jsx("span",{style:{color:B?t.text:t.textMut},children:V}),e.jsx("span",{style:{fontSize:13,color:t.textSec},children:"🕐"})]}),v===o.name&&e.jsx("div",{style:{position:"absolute",zIndex:100,top:"calc(100% + 4px)",left:0},children:e.jsx($e,{value:w,controls:!0,onChange:Z=>{n(o.name,Z),M(null)}})})]});return D(J)}if(o.type==="colorpicker")return D(e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[e.jsx("input",{type:"color",value:b||"#000000",onChange:w=>n(o.name,w.target.value),style:{width:36,height:36,padding:2,border:`1px solid ${t.border}`,borderRadius:t.r,cursor:"pointer",background:"none"}}),e.jsx("span",{style:{fontSize:12,color:t.textSec,fontFamily:"monospace"},children:b||"#000000"})]}));if(o.type==="text")return D(e.jsx("p",{style:{margin:"6px 0",fontSize:13,color:t.text},children:o.value}));if(o.type==="checkbox")return e.jsxs("div",{...c,children:[C?e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[z&&e.jsx("div",{style:{width:z,flexShrink:0}}),e.jsxs("label",{style:{display:"flex",alignItems:"center",gap:8,cursor:"pointer"},children:[e.jsx("input",{type:"checkbox",checked:!!b,onChange:w=>n(o.name,w.target.checked),style:{width:16,height:16,accentColor:t.primary,cursor:"pointer"}}),e.jsx("span",{style:{fontSize:13},children:o.label})]})]}):e.jsxs("label",{style:{display:"flex",alignItems:"center",gap:8,cursor:"pointer"},children:[e.jsx("input",{type:"checkbox",checked:!!b,onChange:w=>n(o.name,w.target.checked),style:{width:16,height:16,accentColor:t.primary,cursor:"pointer"}}),e.jsx("span",{style:{fontSize:13},children:o.label})]}),N]});if(o.type==="radio"){const w=(o.options||[]).map(B=>e.jsxs("label",{style:{display:"flex",alignItems:"center",gap:6,cursor:"pointer",fontSize:13},children:[e.jsx("input",{type:"radio",name:o.name,value:B.value,checked:b===B.value,onChange:()=>n(o.name,B.value),style:{accentColor:t.primary,cursor:"pointer"}}),B.label||B.value]},B.value));return D(e.jsx("div",{style:{display:"flex",gap:16,flexWrap:"wrap",paddingTop:8},children:w}))}if(o.type==="slider")return C?e.jsxs("div",{...c,style:{display:"flex",alignItems:"flex-start",gap:8},children:[f,e.jsxs("div",{style:{flex:1},children:[e.jsx(he,{min:o.min,max:o.max,step:o.step,value:b||o.min,range:o.range,onChange:w=>n(o.name,w)}),N]})]}):e.jsxs("div",{...c,children:[e.jsx(he,{label:o.label,min:o.min,max:o.max,step:o.step,value:b||o.min,range:o.range,onChange:w=>n(o.name,w)}),N]});if(o.type==="combo")return C?e.jsxs("div",{...c,style:{display:"flex",alignItems:"flex-start",gap:8},children:[f,e.jsxs("div",{style:{flex:1},children:[e.jsx(pe,{data:o.data||[],multiselection:o.multiselection,placeholder:o.placeholder||"Select...",value:b||(o.multiselection?[]:null),onChange:w=>n(o.name,w)}),k,N]})]}):e.jsxs("div",{...c,children:[e.jsx(pe,{label:o.label,data:o.data||[],multiselection:o.multiselection,placeholder:o.placeholder||"Select...",value:b||(o.multiselection?[]:null),onChange:w=>n(o.name,w)}),k,N]});if(o.type==="toggle"){const w=!!b,B=w?o.icon:o.offIcon||o.icon,V=w?o.text||o.label:o.offText||o.text||o.label;return e.jsxs("div",{...c,children:[C&&z&&e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[e.jsx("div",{style:{width:z,flexShrink:0}}),e.jsxs("label",{style:{display:"flex",alignItems:"center",gap:8,cursor:"pointer"},children:[e.jsx(Te,{on:w,onClick:()=>n(o.name,!b)}),B&&e.jsx("span",{style:{fontSize:16},children:B}),V&&e.jsx("span",{style:{fontSize:13},children:V})]})]}),!C&&e.jsxs("label",{style:{display:"flex",alignItems:"center",gap:10,cursor:"pointer"},children:[e.jsx(Te,{on:w,onClick:()=>n(o.name,!b)}),B&&e.jsx("span",{style:{fontSize:16},children:B}),V&&e.jsx("span",{style:{fontSize:13},children:V})]}),N]})}return null},y=o=>o.map((b,S)=>Array.isArray(b)?e.jsx("div",{style:{display:"flex",gap:12,alignItems:"flex-start"},children:b.map(d)},S):d(b));return e.jsxs("div",{className:"dhx",style:{padding:r.padding||0,width:r.width||"100%",...h},children:[y(r.rows||[]),(r.buttons||p)&&e.jsxs("div",{style:{display:"flex",gap:8,justifyContent:r.buttonAlign||"flex-start",marginTop:8},children:[e.jsx("button",{className:"dhx dhx-btn dhx-btn-primary",onClick:()=>l()&&(p==null?void 0:p(x)),children:r.submitText||"Submit"}),r.resetButton!==!1&&e.jsx("button",{className:"dhx dhx-btn dhx-btn-secondary",onClick:()=>{a(s),i({})},children:r.resetText||"Reset"})]})]})}function Te({on:r,onClick:s}){return e.jsxs("div",{style:{position:"relative",width:40,height:22,flexShrink:0},onClick:s,children:[e.jsx("div",{style:{width:40,height:22,borderRadius:11,background:r?t.primary:t.border,transition:"background 0.2s"}}),e.jsx("div",{style:{position:"absolute",top:3,left:r?21:3,width:16,height:16,borderRadius:"50%",background:"#fff",transition:"left 0.2s",boxShadow:"0 1px 3px rgba(0,0,0,.3)"}})]})}function be(r){const s=[];for(const p of r)p.type==="block"?s.push(...be(p.items||[])):s.push(p);return s}function it({items:r=[],onAction:s,style:p}){u.useEffect(j,[]);const[h,x]=u.useState(()=>{const l={};for(const d of be(r))d.id&&(l[d.id]=!!d.active);return l}),a=be(r),g=l=>{var d;if(!l.disabled){if(l.id)if(l.group){const y=a.filter(o=>o.group===l.group&&o.id);x(o=>{const b={...o};for(const S of y)b[S.id]=!1;return b[l.id]=!0,b})}else l.twoState&&x(y=>({...y,[l.id]:!y[l.id]}));(d=l.onClick)==null||d.call(l,l),l.id&&(s==null||s(l.id,l))}},i=(l,d)=>{var S;if(l.hidden)return null;const y=l.value??l.text,o=l.size==="auto",b=l.id!==void 0?h[l.id]??!!l.active:!!l.active;return l.type==="separator"||l.type==="sep"?e.jsx("div",{style:{width:1,background:t.border,margin:"4px 2px",alignSelf:"stretch"}},d):l.type==="input"?e.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"flex-start",justifyContent:"center",padding:"2px 4px",gap:2},children:[l.label&&e.jsx("span",{style:{fontSize:10,color:t.textMut},children:l.label}),e.jsxs("div",{style:{position:"relative",display:"flex",alignItems:"center"},children:[l.icon&&e.jsx("span",{style:{position:"absolute",left:6,fontSize:13,color:t.textMut,pointerEvents:"none",zIndex:1},children:l.icon}),e.jsx("input",{className:"dhx dhx-input",style:{width:l.width||110,height:26,fontSize:12,paddingLeft:l.icon?24:void 0},placeholder:l.placeholder,defaultValue:l.value,onChange:z=>{var C;return(C=l.onChange)==null?void 0:C.call(l,z.target.value)}})]})]},d):l.type==="selectButton"?e.jsx("select",{className:"dhx dhx-input",style:{height:26,fontSize:12,cursor:"pointer",margin:2,width:l.width},defaultValue:l.value,onChange:z=>{var C;return(C=l.onChange)==null?void 0:C.call(l,z.target.value)},children:(S=l.items)==null?void 0:S.map(z=>e.jsx("option",{value:z.value,children:z.value},z.value))},d):e.jsxs("button",{title:l.tooltip,disabled:l.disabled,className:"dhx dhx-btn dhx-btn-ghost",style:{flexDirection:o?"column":"row",alignSelf:o?"stretch":"center",justifyContent:"center",minHeight:o?48:26,padding:o?"6px 10px":"0 8px",gap:o?4:5,position:"relative",background:b?t.primaryLt:"transparent",color:b?t.primary:l.disabled?t.textMut:t.text,opacity:l.disabled?.55:1,cursor:l.disabled?"not-allowed":"pointer"},onClick:()=>g(l),children:[l.icon&&e.jsx("span",{style:{fontSize:o?22:15,lineHeight:1,flexShrink:0},children:l.icon}),y&&e.jsx("span",{style:{fontSize:10,maxWidth:o?64:void 0,textAlign:o?"center":"left",lineHeight:1.2,whiteSpace:o?"normal":"nowrap"},children:y}),l.count!==void 0&&e.jsx("span",{style:{position:"absolute",top:2,right:2,minWidth:14,height:14,background:t.danger,color:"#fff",borderRadius:7,fontSize:9,fontWeight:700,display:"flex",alignItems:"center",justifyContent:"center",padding:"0 2px",pointerEvents:"none"},children:l.count})]},d)},v=(l,d)=>{var y;return e.jsx("div",{style:{display:"flex",flexDirection:l.direction==="col"?"column":"row",alignItems:l.direction==="col"?"flex-start":"center",gap:2},children:(y=l.items)==null?void 0:y.map((o,b)=>o.type==="block"?v(o,`${d}-${b}`):i(o,`${d}-${b}`))},d)},M=(l,d)=>{var o;const y=l.title||l.label;return e.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"stretch",borderRight:`1px solid ${t.border}`,padding:"4px 6px 0",minWidth:40},children:[e.jsx("div",{style:{display:"flex",flexDirection:l.direction==="col"?"column":"row",alignItems:l.direction==="col"?"stretch":"center",gap:2,flex:1},children:(o=l.items)==null?void 0:o.map((b,S)=>b.type==="block"?v(b,S):i(b,S))}),y&&e.jsx("div",{style:{fontSize:10,color:t.textMut,textAlign:"center",padding:"3px 0 4px",marginTop:2,borderTop:`1px solid ${t.border}`},children:y})]},d)},n=(l,d)=>l.type==="block"?M(l,d):i(l,d);return e.jsx("div",{className:"dhx",style:{display:"flex",alignItems:"stretch",background:t.surface,borderBottom:`1px solid ${t.border}`,overflowX:"auto",gap:0,minHeight:72,...p},children:r.map(n)})}function Le({count:r}){return e.jsx("span",{style:{position:"absolute",top:3,right:3,minWidth:16,height:16,background:t.danger,color:"#fff",borderRadius:8,fontSize:10,fontWeight:700,display:"flex",alignItems:"center",justifyContent:"center",padding:"0 3px",lineHeight:1,pointerEvents:"none"},children:r})}function dt({logo:r,items:s=[],vertical:p=!1,onAction:h,style:x}){const[a,g]=u.useState(null),[i,v]=u.useState(()=>{const d={};return s.forEach(y=>{y.id&&y.twoState&&y.active&&(d[y.id]=!0)}),d}),M=u.useRef(null);u.useEffect(j,[]),U(M,u.useCallback(()=>g(null),[]));const n=(d,y)=>{var o,b;if(!d.disabled){if(d.twoState&&d.id&&v(S=>({...S,[d.id]:!S[d.id]})),(o=d.items)!=null&&o.length){g(S=>S===y?null:y);return}(b=d.onClick)==null||b.call(d,d.id||""),h==null||h(d.id||"")}},l=(d,y)=>{var z;if(d.hidden)return null;if(d.type==="separator")return e.jsx("div",{style:{[p?"height":"width"]:1,background:t.border,margin:p?"4px 8px":"0 6px",alignSelf:"stretch"}},y);if(d.type==="spacer")return e.jsx("div",{style:{flex:1}},y);if(d.type==="input")return e.jsxs("div",{style:{position:"relative",display:"flex",alignItems:"center",margin:"0 4px"},children:[d.icon&&e.jsx("span",{style:{position:"absolute",left:8,color:t.textMut,fontSize:15,pointerEvents:"none",zIndex:1},children:d.icon}),e.jsx("input",{className:"dhx dhx-input",style:{width:d.width||200,height:28,paddingLeft:d.icon?30:void 0},placeholder:d.placeholder,onChange:C=>{var I;return(I=d.onChange)==null?void 0:I.call(d,C.target.value)}})]},y);if(d.type==="imageButton")return e.jsxs("button",{title:d.tooltip,disabled:d.disabled,style:{position:"relative",width:36,height:36,padding:2,border:"none",borderRadius:"50%",overflow:"hidden",cursor:d.disabled?"not-allowed":"pointer",background:"transparent",flexShrink:0},onClick:()=>n(d,y),children:[d.src&&e.jsx("img",{src:d.src,alt:d.value||"",style:{width:"100%",height:"100%",objectFit:"cover",borderRadius:"50%"}}),d.count!==void 0&&e.jsx(Le,{count:d.count})]},y);const o=!!(d.twoState&&d.id&&i[d.id]),b=!!((z=d.items)!=null&&z.length),S={position:"relative",height:p?40:36,gap:6,background:o?t.primaryLt:"transparent",color:o?t.primary:d.disabled?t.textMut:t.text,opacity:d.disabled?.55:1,cursor:d.disabled?"not-allowed":"pointer",...p?{width:"100%",justifyContent:"flex-start",padding:"0 16px",borderRadius:0}:{}};return e.jsxs("div",{style:{position:"relative"},children:[e.jsxs("button",{className:"dhx dhx-btn dhx-btn-ghost",title:d.tooltip,disabled:d.disabled,style:S,onClick:()=>n(d,y),children:[d.icon&&e.jsx("span",{style:{fontSize:16,flexShrink:0},children:d.icon}),d.value&&e.jsx("span",{style:{fontSize:13},children:d.value}),b&&e.jsx("span",{style:{fontSize:9,opacity:.55,marginLeft:2},children:"▼"}),d.count!==void 0&&e.jsx(Le,{count:d.count})]}),b&&a===y&&e.jsx(R,{items:d.items,onSelect:()=>g(null),style:p?{left:"100%",top:0}:{top:"100%"}})]},y)};return e.jsxs("nav",{ref:M,className:"dhx",style:{display:"flex",flexDirection:p?"column":"row",alignItems:p?"stretch":"center",background:t.surface,borderBottom:p?"none":`1px solid ${t.border}`,borderRight:p?`1px solid ${t.border}`:"none",padding:p?"8px 0":"0 12px",minHeight:p?void 0:48,gap:2,...x},children:[r&&e.jsx("div",{style:{color:t.text,fontWeight:800,fontSize:16,padding:p?"8px 16px 12px":"0 12px 0 4px",borderBottom:p?`1px solid ${t.border}`:"none",borderRight:p?"none":`1px solid ${t.border}`,marginRight:p?0:8,marginBottom:p?4:0,flexShrink:0},children:r}),s.map(l)]})}W.Button=We,W.Calendar=_e,W.Chart=Ke,W.Colorpicker=Je,W.Combobox=pe,W.ContextMenu=Be,W.DataView=rt,W.Form=at,W.Grid=Fe,W.Layout=ze,W.List=tt,W.Menu=Ae,W.MenuDropdown=R,W.MessageContext=ue,W.MessageProvider=Re,W.Navbar=dt,W.Pagination=lt,W.Popup=Ue,W.Ribbon=it,W.Sidebar=Pe,W.Slider=he,W.Tabbar=Oe,W.Timepicker=$e,W.Toolbar=He,W.Tree=st,W.Window=Qe,W.tokens=t,W.useClickOutside=U,W.useDrag=me,W.useMessage=et,Object.defineProperty(W,Symbol.toStringTag,{value:"Module"})});
41
+ `,document.head.appendChild(r)}const Ne={sm:{height:24,padding:"0 8px",fontSize:12},md:{},lg:{height:38,padding:"0 18px",fontSize:14}};function We({children:r,variant:s="primary",size:p="md",icon:i,disabled:x,onClick:a,style:f,className:d=""}){return u.useEffect(V,[]),e.jsxs("button",{className:`dhx dhx-btn dhx-btn-${s} ${d}`,style:{...Ne[p],...f},disabled:x,onClick:a,children:[i&&e.jsx("span",{style:{fontSize:16},children:i}),r]})}function te(r,s){u.useEffect(()=>{const p=i=>{r.current&&!r.current.contains(i.target)&&s(i)};return document.addEventListener("mousedown",p),()=>document.removeEventListener("mousedown",p)},[r,s])}function me(r){const s=u.useRef(!1),p=u.useRef({x:0,y:0,ox:0,oy:0});return u.useCallback((i,x=0,a=0)=>{s.current=!0,p.current={x:i.clientX,y:i.clientY,ox:x,oy:a};const f=y=>{if(!s.current)return;const{x:m,y:n,ox:l,oy:c}=p.current;r(l+y.clientX-m,c+y.clientY-n)},d=()=>{s.current=!1,document.removeEventListener("mousemove",f),document.removeEventListener("mouseup",d)};document.addEventListener("mousemove",f),document.addEventListener("mouseup",d),i.preventDefault()},[r])}function ie({items:r,onSelect:s,style:p}){const[i,x]=u.useState(null);return e.jsx("div",{className:"dhx dhx-anim-fade",style:{position:"absolute",top:"calc(100% + 4px)",left:0,minWidth:180,background:t.surface,border:`1px solid ${t.border}`,borderRadius:t.r,boxShadow:t.shadowLg,zIndex:200,padding:"4px 0",...p},children:r.map((a,f)=>{var y,m;if(a.type==="separator")return e.jsx("div",{style:{height:1,background:t.border,margin:"4px 0"}},f);const d=i===f;return e.jsxs("div",{style:{position:"relative"},onMouseEnter:()=>x(f),onMouseLeave:()=>x(null),children:[e.jsxs("div",{onClick:()=>{var n;return!a.disabled&&!((n=a.items)!=null&&n.length)&&s(a)},style:{display:"flex",alignItems:"center",gap:8,padding:"8px 14px",cursor:a.disabled?"not-allowed":"pointer",fontSize:13,color:a.disabled?t.textMut:t.text,background:d&&!a.disabled?t.bg:"transparent",opacity:a.disabled?.5:1},children:[a.icon&&e.jsx("span",{style:{fontSize:15,width:18,textAlign:"center"},children:a.icon}),e.jsx("span",{style:{flex:1},children:a.value||a.id}),a.hotkey&&e.jsx("span",{style:{fontSize:11,color:t.textMut},children:a.hotkey}),(y=a.items)!=null&&y.length?e.jsx("span",{style:{fontSize:10,color:t.textMut},children:"▶"}):null]}),d&&((m=a.items)!=null&&m.length)?e.jsx(ie,{items:a.items,onSelect:s,style:{position:"absolute",left:"100%",top:-4}}):null]},a.id||f)})})}function Ae({items:r=[],label:s="Menu",onSelect:p,style:i}){const[x,a]=u.useState(!1),f=u.useRef(null);return u.useEffect(V,[]),te(f,u.useCallback(()=>a(!1),[])),e.jsxs("div",{ref:f,className:"dhx",style:{position:"relative",display:"inline-block",...i},children:[e.jsxs("button",{className:"dhx dhx-btn dhx-btn-secondary",onClick:()=>a(d=>!d),children:[s," ",e.jsx("span",{style:{fontSize:10},children:x?"▲":"▼"})]}),x&&e.jsx(ie,{items:r,onSelect:d=>{p==null||p(d),a(!1)}})]})}function Be({items:r=[],onSelect:s,children:p}){const[i,x]=u.useState(null),a=u.useRef(null);u.useEffect(V,[]),te(a,u.useCallback(()=>x(null),[]));const f=d=>{d.preventDefault(),x({x:d.clientX,y:d.clientY})};return e.jsxs("div",{ref:a,onContextMenu:f,style:{position:"relative",display:"contents"},children:[p,i&&e.jsx("div",{style:{position:"fixed",left:i.x,top:i.y,zIndex:9999},children:e.jsx(ie,{items:r,onSelect:d=>{s==null||s(d),x(null)}})})]})}function Me({count:r}){return e.jsx("span",{style:{position:"absolute",top:2,right:2,minWidth:16,height:16,background:t.danger,color:"#fff",borderRadius:8,fontSize:10,fontWeight:700,display:"flex",alignItems:"center",justifyContent:"center",padding:"0 3px",lineHeight:1,pointerEvents:"none"},children:r})}function He({items:r=[],onAction:s,style:p}){const[i,x]=u.useState(null),[a,f]=u.useState(()=>{const n={};return r.forEach(l=>{l.id&&(l.twoState||l.group)&&l.active&&(n[l.id]=!0)}),n}),d=u.useRef(null);u.useEffect(V,[]),te(d,u.useCallback(()=>x(null),[]));const y=(n,l)=>{var c,b;if(!n.disabled){if(n.twoState&&n.id&&f(o=>({...o,[n.id]:!o[n.id]})),n.group&&n.id&&f(o=>{const g={...o};return r.forEach(v=>{v.group===n.group&&v.id&&(g[v.id]=!1)}),g[n.id]=!0,g}),(c=n.items)!=null&&c.length){x(o=>o===l?null:l);return}(b=n.onClick)==null||b.call(n,n.id||""),s==null||s(n.id||"")}},m=(n,l)=>{var g,v;if(n.hidden)return null;if(n.type==="separator")return e.jsx("div",{style:{width:1,background:t.border,margin:"6px 4px",alignSelf:"stretch"}},l);if(n.type==="spacer")return e.jsx("div",{style:{flex:1}},l);if(n.type==="input")return e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[n.label&&e.jsx("span",{style:{fontSize:12,color:t.textSec,fontWeight:500},children:n.label}),e.jsxs("div",{style:{position:"relative",display:"flex",alignItems:"center"},children:[n.icon&&e.jsx("span",{style:{position:"absolute",left:8,color:t.textMut,fontSize:15,pointerEvents:"none",zIndex:1},children:n.icon}),e.jsx("input",{className:"dhx dhx-input",style:{width:n.width||140,height:28,paddingLeft:n.icon?30:void 0},placeholder:n.placeholder,defaultValue:n.value,onChange:$=>{var D;return(D=n.onChange)==null?void 0:D.call(n,$.target.value)}})]})]},l);if(n.type==="select")return e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[n.label&&e.jsx("span",{style:{fontSize:12,color:t.textSec,fontWeight:500},children:n.label}),e.jsx("select",{className:"dhx dhx-input",style:{width:n.width||100,height:28,cursor:"pointer"},defaultValue:n.value,onChange:$=>{var D;return(D=n.onChange)==null?void 0:D.call(n,$.target.value)},children:(g=n.options)==null?void 0:g.map($=>e.jsx("option",{value:$.value,children:$.label},$.value))})]},l);if(n.type==="imageButton")return e.jsxs("button",{title:n.tooltip,disabled:n.disabled,style:{position:"relative",width:32,height:32,padding:2,border:"none",borderRadius:"50%",overflow:"hidden",cursor:n.disabled?"not-allowed":"pointer",background:"transparent",flexShrink:0},onClick:()=>y(n,l),children:[n.src&&e.jsx("img",{src:n.src,alt:n.value||"",style:{width:"100%",height:"100%",objectFit:"cover",borderRadius:"50%"}}),n.count!==void 0&&e.jsx(Me,{count:n.count})]},l);const c=!!(n.id&&a[n.id]),b=n.value??n.text,o=!!((v=n.items)!=null&&v.length);return e.jsxs("div",{style:{position:"relative"},children:[e.jsxs("button",{className:"dhx dhx-btn dhx-btn-ghost",title:n.tooltip,disabled:n.disabled,style:{height:32,gap:4,position:"relative",background:c?t.primaryLt:"transparent",color:c?t.primary:n.disabled?t.textMut:t.text,opacity:n.disabled?.55:1,cursor:n.disabled?"not-allowed":"pointer"},onClick:()=>y(n,l),children:[n.icon&&e.jsx("span",{style:{fontSize:16},children:n.icon}),b&&e.jsx("span",{style:{fontSize:13},children:b}),o&&e.jsx("span",{style:{fontSize:9,opacity:.55,marginLeft:2},children:"▼"}),n.count!==void 0&&e.jsx(Me,{count:n.count})]}),o&&i===l&&e.jsx(ie,{items:n.items,onSelect:()=>x(null),style:{top:"100%",left:0}})]},l)};return e.jsx("div",{ref:d,className:"dhx",style:{display:"flex",alignItems:"center",gap:2,padding:"4px 8px",background:t.surface,borderBottom:`1px solid ${t.border}`,minHeight:44,flexWrap:"wrap",...p},children:r.map(m)})}function Pe({items:r=[],width:s=240,collapsed:p,onSelect:i,header:x,footer:a,style:f}){const[d,y]=u.useState(p??!1),[m,n]=u.useState(null),[l,c]=u.useState({});u.useEffect(V,[]);const b=d?56:s,o=v=>{n(v.id),i==null||i(v)},g=(v,$=0)=>{var z;if(v.type==="separator")return e.jsx("div",{style:{height:1,background:t.border,margin:"6px 8px"}},v.id);if(v.type==="customHTML")return e.jsx("div",{style:{padding:"8px 12px"},dangerouslySetInnerHTML:{__html:v.html||""}},v.id);const D=(((z=v.items)==null?void 0:z.length)??0)>0,I=l[v.id],k=m===v.id;return e.jsxs("div",{children:[e.jsxs("div",{onClick:()=>{D&&c(W=>({...W,[v.id]:!W[v.id]})),o(v)},style:{display:"flex",alignItems:"center",gap:10,padding:`8px ${d?"0px":`${12+$*16}px`}`,cursor:"pointer",borderRadius:t.r,margin:"1px 6px",justifyContent:d?"center":"flex-start",transition:"all .15s",background:k?t.primaryLt:"transparent",color:k?t.primary:t.text,userSelect:"none"},onMouseEnter:W=>!k&&(W.currentTarget.style.background=t.bg),onMouseLeave:W=>!k&&(W.currentTarget.style.background="transparent"),children:[v.icon&&e.jsx("span",{style:{fontSize:18,minWidth:22,textAlign:"center"},children:v.icon}),!d&&e.jsx("span",{style:{flex:1,fontSize:13,fontWeight:k?600:400},children:v.value}),!d&&v.count!==void 0&&e.jsx("span",{style:{background:t.primary,color:"#fff",borderRadius:10,padding:"1px 6px",fontSize:11,fontWeight:700},children:v.count}),!d&&D&&e.jsx("span",{style:{fontSize:12,color:t.textMut,transition:"transform .15s",transform:I?"rotate(90deg)":"rotate(0deg)"},children:"▶"})]}),D&&I&&!d&&v.items.map(W=>g(W,$+1))]},v.id)};return e.jsxs("div",{className:"dhx",style:{width:b,minWidth:b,background:t.surface,borderRight:`1px solid ${t.border}`,display:"flex",flexDirection:"column",transition:"width .2s ease",overflow:"hidden",...f},children:[x&&!d&&e.jsx("div",{style:{padding:"12px 14px",borderBottom:`1px solid ${t.border}`,fontWeight:700,fontSize:15},children:x}),e.jsx("button",{onClick:()=>y(v=>!v),style:{margin:"8px 6px",background:"transparent",border:"none",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:d?"center":"flex-end",padding:"4px 6px",borderRadius:t.r,color:t.textSec},children:e.jsx("span",{style:{fontSize:18},children:d?"☰":"✕"})}),e.jsx("div",{className:"dhx-scroll",style:{flex:1,overflowY:"auto",overflowX:"hidden"},children:r.map(v=>g(v))}),a&&!d&&e.jsx("div",{style:{padding:"10px 14px",borderTop:`1px solid ${t.border}`},children:a})]})}function je({config:r}){const[s,p]=u.useState(!1),i={position:"relative",background:t.surface,border:`1px solid ${t.border}`,borderRadius:t.r,overflow:"hidden",...r.width?{width:r.width,minWidth:r.width}:{flex:1},...r.height?{height:r.height,minHeight:r.height}:{minHeight:40},...s?{flex:"0 0 auto"}:{}};return e.jsxs("div",{style:i,children:[r.header&&e.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"6px 12px",background:t.bg,borderBottom:`1px solid ${t.border}`,fontSize:12,fontWeight:600,color:t.textSec,userSelect:"none"},children:[e.jsx("span",{children:r.header}),r.collapsable&&e.jsx("button",{onClick:()=>p(x=>!x),style:{background:"none",border:"none",cursor:"pointer",color:t.textMut,fontSize:16,lineHeight:1},children:s?"▼":"▲"})]}),!s&&e.jsxs("div",{style:{padding:r.padding||0,height:r.header?"calc(100% - 33px)":"100%",overflow:"auto"},children:[r.html?e.jsx("div",{dangerouslySetInnerHTML:{__html:r.html}}):r.content,(r.rows||r.cols)&&e.jsx(ze,{rows:r.rows,cols:r.cols,style:{height:"100%"}})]})]})}function ze({rows:r,cols:s,type:p="line",style:i,children:x}){u.useEffect(V,[]);const a=p==="space"?12:p==="wide"?8:1,f=r||s,d=!!r;return f?e.jsx("div",{className:"dhx",style:{display:"flex",flexDirection:d?"column":"row",gap:a,width:"100%",height:"100%",...i},children:f.map((y,m)=>e.jsx(je,{config:y},y.id||m))}):e.jsx("div",{className:"dhx",style:{width:"100%",height:"100%",...i},children:x})}function Oe({views:r=[],mode:s="top",tabAlign:p="left",closable:i=[],disabled:x=[],defaultActive:a,onBeforeChange:f,onChange:d,style:y}){var k;const[m,n]=u.useState(a||((k=r[0])==null?void 0:k.id)),[l,c]=u.useState(r.map(z=>z.id));u.useEffect(V,[]);const b=(z,W)=>{z.stopPropagation(),c(h=>h.filter(E=>E!==W)),m===W&&n(l.find(h=>h!==W)??"")},o=z=>{x.includes(z)||f&&f(z)===!1||(n(z),d==null||d(z))},g=s==="left"||s==="right",v=r.filter(z=>l.includes(z.id)),$=e.jsx("div",{style:{display:"flex",flexDirection:g?"column":"row",justifyContent:p==="center"?"center":p==="right"?"flex-end":"flex-start",background:t.surface,borderBottom:!g&&s!=="bottom"?`2px solid ${t.border}`:"none",borderTop:s==="bottom"?`2px solid ${t.border}`:"none",borderRight:s==="left"?`2px solid ${t.border}`:"none",borderLeft:s==="right"?`2px solid ${t.border}`:"none",overflowX:"auto",flexShrink:0},children:v.map(z=>{const W=m===z.id,h=x.includes(z.id),E=s==="bottom"?{borderTop:`2px solid ${t.primary}`,color:t.primary,fontWeight:600}:g?{color:t.primary,fontWeight:600,background:t.primaryLt,[s==="left"?"borderRight":"borderLeft"]:`2px solid ${t.primary}`}:{borderBottom:`2px solid ${t.primary}`,color:t.primary,fontWeight:600};return e.jsxs("div",{onClick:()=>o(z.id),style:{display:"flex",alignItems:"center",gap:6,padding:"10px 16px",cursor:h?"not-allowed":"pointer",whiteSpace:"nowrap",fontSize:13,transition:"color .15s",userSelect:"none",minWidth:g?120:"auto",...W?E:{color:h?t.textMut:t.textSec}},children:[z.icon&&e.jsx("span",{style:{fontSize:16},children:z.icon}),e.jsx("span",{children:z.tab}),i.includes(z.id)&&e.jsx("span",{onClick:S=>b(S,z.id),style:{marginLeft:4,opacity:.6,fontSize:12,cursor:"pointer"},children:"✕"})]},z.id)})}),D=v.find(z=>z.id===m),I=e.jsxs("div",{className:"dhx-scroll",style:{flex:1,overflow:"auto"},children:[D==null?void 0:D.content,(D==null?void 0:D.html)&&e.jsx("div",{dangerouslySetInnerHTML:{__html:D.html},style:{padding:16}})]});return e.jsxs("div",{className:"dhx",style:{display:"flex",flexDirection:s==="top"?"column":s==="bottom"?"column-reverse":s==="left"?"row":"row-reverse",width:"100%",height:"100%",background:t.surface,border:`1px solid ${t.border}`,borderRadius:t.r,overflow:"hidden",...y},children:[$,I]})}const re=`1px solid ${t.border}`;function Ye({active:r,dir:s}){return e.jsxs("span",{style:{display:"inline-flex",flexDirection:"column",gap:1,flexShrink:0,marginLeft:4},children:[e.jsx("svg",{width:"7",height:"4",viewBox:"0 0 7 4",children:e.jsx("path",{d:"M3.5 0L7 4H0z",fill:r&&s==="asc"?t.primary:t.borderDk})}),e.jsx("svg",{width:"7",height:"4",viewBox:"0 0 7 4",children:e.jsx("path",{d:"M3.5 4L0 0H7z",fill:r&&s==="desc"?t.primary:t.borderDk})})]})}function Fe({columns:r,data:s=[],height:p=400,rowHeight:i=40,sortable:x=!0,resizable:a=!0,editable:f=!1,stripe:d=!1,autoWidth:y=!1,keyNavigation:m=!1,selection:n,multiselect:l,onSelect:c,onChange:b,style:o}){const[g,v]=u.useState(null),[$,D]=u.useState("asc"),[I,k]=u.useState({}),[z,W]=u.useState(new Set),[h,E]=u.useState(-1),[S,P]=u.useState(()=>r.map(w=>w.width??w.minWidth??150)),[_,J]=u.useState(null),[Q,ne]=u.useState(""),[Z,L]=u.useState({}),M=u.useRef(null),[A,j]=u.useState(0);u.useEffect(V,[]),u.useEffect(()=>{if(!y||!M.current)return;const w=new ResizeObserver(()=>{var C;return j(((C=M.current)==null?void 0:C.offsetWidth)??0)});return w.observe(M.current),()=>w.disconnect()},[y]);const Y=u.useMemo(()=>{if(!y||A===0)return S;const w=S.reduce((N,T)=>N+T,0);if(A<=w)return S;const C=(A-w)/r.length;return S.map(N=>N+C)},[y,A,S,r.length]),O=u.useMemo(()=>{let w=s.map((C,N)=>{const T=String(C.id??N);return Z[T]?{...C,...Z[T]}:C}).filter(C=>Object.entries(I).every(([N,T])=>!T||String(C[N]??"").toLowerCase().includes(T.toLowerCase())));return g&&(w=[...w].sort((C,N)=>{const T=C[g],X=N[g];if(T==null)return 1;if(X==null)return-1;const F=T<X?-1:T>X?1:0;return $==="asc"?F:-F})),w},[s,g,$,I,Z]),U=u.useMemo(()=>{const w={};return r.forEach(C=>{var N;if((N=C.footer)!=null&&N.some(T=>T.summary)){const T=O.map(F=>Number(F[C.id])).filter(F=>!isNaN(F)),X=T.reduce((F,de)=>F+de,0);w[C.id]={sum:X,avg:T.length?X/T.length:0,count:O.length,min:T.length?Math.min(...T):0,max:T.length?Math.max(...T):0}}}),w},[O,r]),q=u.useMemo(()=>{const w={};return r.filter(C=>C.filterType==="select").forEach(C=>{w[C.id]=[...new Set(s.map(N=>String(N[C.id]??"")))].sort()}),w},[s,r]),oe=r.some(w=>w.filterable),R=r.some(w=>{var C;return(C=w.footer)==null?void 0:C.length}),se=Y.reduce((w,C)=>w+C,0),le=(w,C)=>w.id??C,ae=w=>{!x||w.sortable===!1||(D(C=>g===w.id&&C==="asc"?"desc":"asc"),v(w.id))},H=(w,C)=>{if(!n)return;const N=le(w,C);E(C),W(T=>{const X=l?new Set(T):new Set;return X.has(N)?X.delete(N):X.add(N),X}),c==null||c(w)},ee=()=>{if(!_)return;const{key:w,colId:C}=_;L(T=>({...T,[String(w)]:{...T[String(w)]||{},[C]:Q}}));const N=O.find((T,X)=>le(T,X)===w);N&&(b==null||b(N,C,Q)),J(null)},pt=w=>{if(_&&w.key==="Escape"){J(null);return}if(!(!m||!n)){if(w.key==="ArrowDown"){w.preventDefault();const C=Math.min(h+1,O.length-1);C>=0&&H(O[C],C)}else if(w.key==="ArrowUp"){w.preventDefault();const C=Math.max(h-1,0);C>=0&&H(O[C],C)}}},ht=(w,C)=>{w.preventDefault(),w.stopPropagation();const N=w.clientX,T=S[C],X=de=>P(ke=>{const ce=[...ke];return ce[C]=Math.max(r[C].minWidth||50,T+de.clientX-N),ce}),F=()=>{document.removeEventListener("mousemove",X),document.removeEventListener("mouseup",F)};document.addEventListener("mousemove",X),document.addEventListener("mouseup",F)},Se=(w,C,N,T)=>({width:w,minWidth:w,flexShrink:0,boxSizing:"border-box",padding:"0 12px",height:T,display:"flex",alignItems:"center",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:13,textAlign:C.align,justifyContent:C.align==="center"?"center":C.align==="right"?"flex-end":"flex-start",borderLeft:N?"none":re});return e.jsx("div",{ref:M,className:"dhx",tabIndex:m?0:void 0,onKeyDown:pt,style:{width:"100%",height:p,display:"flex",flexDirection:"column",border:re,borderRadius:t.r,overflow:"hidden",outline:"none",...o},children:e.jsx("div",{style:{overflowX:"auto",flex:1,display:"flex",flexDirection:"column",minHeight:0},children:e.jsxs("div",{style:{minWidth:se,display:"flex",flexDirection:"column",height:"100%"},children:[e.jsx("div",{style:{display:"flex",background:t.bg,borderBottom:re,flexShrink:0,position:"sticky",top:0,zIndex:2},children:r.map((w,C)=>{var N;return e.jsxs("div",{onClick:()=>ae(w),style:{...Se(Y[C],w,C===0,40),position:"relative",fontWeight:500,color:t.text,cursor:x&&w.sortable!==!1?"pointer":"default",userSelect:"none"},children:[e.jsx("span",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:Array.isArray(w.header)?(N=w.header[0])==null?void 0:N.text:w.header||w.id}),x&&w.sortable!==!1&&e.jsx(Ye,{active:g===w.id,dir:$}),a&&w.resizable!==!1&&C<r.length-1&&e.jsx("div",{onMouseDown:T=>ht(T,C),onClick:T=>T.stopPropagation(),style:{position:"absolute",right:0,top:0,bottom:0,width:4,cursor:"col-resize",zIndex:1},onMouseEnter:T=>T.currentTarget.style.background=t.primary+"55",onMouseLeave:T=>T.currentTarget.style.background="transparent"})]},w.id)})}),oe&&e.jsx("div",{style:{display:"flex",borderBottom:re,background:t.surface,flexShrink:0},children:r.map((w,C)=>e.jsx("div",{style:{width:Y[C],minWidth:Y[C],flexShrink:0,padding:"4px 6px",boxSizing:"border-box",borderLeft:C===0?"none":re},children:w.filterable&&w.filterType==="select"?e.jsxs("select",{className:"dhx dhx-input",style:{height:26,fontSize:12,padding:"0 4px"},value:I[w.id]||"",onChange:N=>k(T=>({...T,[w.id]:N.target.value})),children:[e.jsx("option",{value:"",children:"All"}),(q[w.id]||[]).map(N=>e.jsx("option",{value:N,children:N},N))]}):w.filterable?e.jsx("input",{className:"dhx dhx-input",style:{height:26,fontSize:12},placeholder:"Filter...",value:I[w.id]||"",onChange:N=>k(T=>({...T,[w.id]:N.target.value}))}):null},w.id))}),e.jsxs("div",{className:"dhx-scroll",style:{flex:1,overflowY:"auto",minHeight:0},children:[O.map((w,C)=>{const N=le(w,C),T=z.has(N),X=T?t.primaryLt:d&&C%2!==0?t.bg:t.surface;return e.jsx("div",{style:{display:"flex",height:i,borderBottom:re,flexShrink:0,background:X,transition:"background .1s",cursor:n?"pointer":"default"},onMouseEnter:F=>!T&&(F.currentTarget.style.background=t.primaryLt+"80"),onMouseLeave:F=>!T&&(F.currentTarget.style.background=X),children:r.map((F,de)=>{const ke=(_==null?void 0:_.key)===N&&(_==null?void 0:_.colId)===F.id,ce=w[F.id],ft=F.template?F.template(ce,w):String(ce??"");return e.jsx("div",{onClick:()=>{H(w,C),f&&F.editable!==!1&&(J({key:N,colId:F.id}),ne(String(ce??"")))},style:Se(Y[de],F,de===0,i),children:ke?e.jsx("input",{autoFocus:!0,value:Q,onChange:pe=>ne(pe.target.value),onBlur:ee,onKeyDown:pe=>{pe.key==="Enter"&&ee(),pe.key==="Escape"&&J(null)},onClick:pe=>pe.stopPropagation(),style:{width:"100%",border:"none",outline:`2px solid ${t.primary}`,borderRadius:2,fontSize:13,padding:"2px 4px",background:t.surface,color:t.text}}):ft},F.id)})},String(N))}),O.length===0&&e.jsx("div",{style:{textAlign:"center",padding:40,color:t.textMut,fontSize:13},children:"No data"})]}),R&&e.jsx("div",{style:{display:"flex",borderTop:re,background:t.bg,flexShrink:0},children:r.map((w,C)=>{var F;const N=(F=w.footer)==null?void 0:F[0],T=U[w.id]??{sum:0,avg:0,count:0,min:0,max:0};let X="";return N&&(typeof N.text=="function"?X=N.text(T):N.text?X=N.text:N.summary&&(X=String(Math.round(T[N.summary]*100)/100))),e.jsx("div",{style:{...Se(Y[C],w,C===0,40),fontWeight:600,color:t.text},children:X},w.id)})})]})})})}const G=["#0288d1","#43a047","#f57c00","#e53935","#8e24aa","#00838f","#ef6c00","#2e7d32"];function Ke(r,s,p){const i=r.filter(a=>!a.parent),x=r.filter(a=>!!a.parent);return i.map(a=>({name:a[p],children:x.filter(f=>f.parent===a.id).map(f=>({name:f[p],value:Number(f[s]??0)}))}))}function Ve({type:r="bar",data:s=[],series:p=[],scales:i={},legend:x,height:a=280,style:f}){var v,$,D,I,k,z,W,h,E,S,P,_,J,Q,ne,Z;u.useEffect(V,[]);const d=((v=i.bottom)==null?void 0:v.text)||s[0]&&Object.keys(s[0])[0]||"x",y=e.jsx(K.Tooltip,{contentStyle:{fontSize:12,borderRadius:t.r,border:`1px solid ${t.border}`}}),m=x?e.jsx(K.Legend,{iconSize:10,wrapperStyle:{fontSize:12},verticalAlign:x.valign==="bottom"?"bottom":x.valign==="middle"?"middle":"top",align:x.halign??"center"}):null,n=e.jsx(K.CartesianGrid,{strokeDasharray:"3 3",stroke:t.border}),l=e.jsx(K.XAxis,{dataKey:d,tick:{fontSize:11,fill:t.textSec},axisLine:{stroke:t.border},tickLine:!1,label:($=i.bottom)!=null&&$.title?{value:i.bottom.title,position:"insideBottom",offset:-4,fontSize:11}:void 0}),c=e.jsx(K.YAxis,{tick:{fontSize:11,fill:t.textSec},axisLine:!1,tickLine:!1,domain:[((D=i.left)==null?void 0:D.min)??"auto",((I=i.left)==null?void 0:I.max)??"auto"],tickCount:(k=i.left)==null?void 0:k.maxTicks,label:(z=i.left)!=null&&z.title?{value:i.left.title,angle:-90,position:"insideLeft",fontSize:11}:void 0}),b={top:10,right:20,left:0,bottom:(W=i.bottom)!=null&&W.title?20:0},o={data:s,margin:b};let g;if(r==="bar")g=e.jsxs(K.BarChart,{...o,children:[n,l,c,y,m,p.map((L,M)=>e.jsx(K.Bar,{dataKey:L.value||L.id||"",name:L.label||L.id,fill:L.fill||L.color||G[M%G.length],radius:[3,3,0,0]},L.id??M))]});else if(r==="line")g=e.jsxs(K.LineChart,{...o,children:[n,l,c,y,m,p.map((L,M)=>{const A=L.color||G[M%G.length];return e.jsx(K.Line,{type:"monotone",dataKey:L.value||L.id||"",name:L.label||L.id,stroke:A,strokeWidth:L.strokeWidth??2,dot:{r:3,fill:A}},L.id??M)})]});else if(r==="area")g=e.jsxs(K.AreaChart,{...o,children:[n,l,c,y,m,p.map((L,M)=>{const A=L.color||G[M%G.length];return e.jsx(K.Area,{type:"monotone",dataKey:L.value||L.id||"",name:L.label||L.id,stroke:A,fill:(L.fill||A)+"33",strokeWidth:L.strokeWidth??2},L.id??M)})]});else if(r==="pie"||r==="donut"){const L=p[0]||{},M=L.value||"value",A=L.text||"name",j=L.color&&s[0]&&L.color in s[0]?L.color:null;g=e.jsxs(K.PieChart,{children:[e.jsx(K.Pie,{data:s,cx:"50%",cy:"50%",outerRadius:r==="donut"?"70%":"80%",innerRadius:r==="donut"?"40%":0,dataKey:M,nameKey:A,stroke:L.stroke||"none",strokeWidth:L.strokeWidth??0,label:({name:Y,percent:O})=>`${Y??""} ${((O??0)*100).toFixed(0)}%`,labelLine:!0,paddingAngle:2,children:s.map((Y,O)=>e.jsx(K.Cell,{fill:j?Y[j]:G[O%G.length]},O))}),y,m]})}else if(r==="radar"){const L=((h=i.radial)==null?void 0:h.value)||d;g=e.jsxs(K.RadarChart,{...o,cx:"50%",cy:"50%",children:[e.jsx(K.PolarGrid,{}),e.jsx(K.PolarAngleAxis,{dataKey:L,tick:{fontSize:11}}),e.jsx(K.PolarRadiusAxis,{tick:{fontSize:9,fill:t.textMut},axisLine:!1}),p.map((M,A)=>{const j=M.color||M.pointColor||G[A%G.length];return e.jsx(K.Radar,{dataKey:M.value||M.id||"",name:M.label||M.id,stroke:j,fill:j+"44"},M.id??A)}),y,m]})}else if(r==="scatter")g=e.jsxs(K.ScatterChart,{margin:b,children:[n,e.jsx(K.XAxis,{type:"number",dataKey:"x",name:((E=i.bottom)==null?void 0:E.title)||"x",tick:{fontSize:11,fill:t.textSec},tickLine:!1,domain:[((S=i.bottom)==null?void 0:S.min)??"auto",((P=i.bottom)==null?void 0:P.max)??"auto"],label:(_=i.bottom)!=null&&_.title?{value:i.bottom.title,position:"insideBottom",offset:-4,fontSize:11}:void 0}),e.jsx(K.YAxis,{type:"number",dataKey:"y",name:((J=i.left)==null?void 0:J.title)||"y",tick:{fontSize:11,fill:t.textSec},tickLine:!1,axisLine:!1,domain:[((Q=i.left)==null?void 0:Q.min)??"auto",((ne=i.left)==null?void 0:ne.max)??"auto"],label:(Z=i.left)!=null&&Z.title?{value:i.left.title,angle:-90,position:"insideLeft",fontSize:11}:void 0}),y,m,p.map((L,M)=>{const A=L.value||"x",j=L.valueY||"y",Y=(L.data||s).map(O=>({x:O[A],y:O[j]}));return e.jsx(K.Scatter,{data:Y,name:L.label||L.id,fill:L.color||G[M%G.length]},L.id??M)})]});else if(r==="treeMap"){const L=p[0]||{},M=L.value||"value",A=L.text||"name",j=Ke(s,M,A),Y=L.stroke||t.surface,O=L.strokeWidth??2;g=e.jsx(K.Treemap,{data:j,dataKey:"value",aspectRatio:4/3,stroke:Y,content:U=>{const{x:q,y:oe,width:R,height:se,depth:le,index:ae,name:H}=U;if(le===0)return null;const ee=G[ae%G.length];return e.jsxs("g",{children:[e.jsx("rect",{x:q,y:oe,width:R,height:se,fill:ee,stroke:Y,strokeWidth:O,style:{borderRadius:3}}),R>40&&se>20&&e.jsx("text",{x:q+R/2,y:oe+se/2,textAnchor:"middle",dominantBaseline:"middle",fill:"#fff",fontSize:11,pointerEvents:"none",children:H})]})}})}return e.jsx("div",{className:"dhx",style:{width:"100%",height:a,padding:12,background:t.surface,borderRadius:t.rMd,...f},children:e.jsx(K.ResponsiveContainer,{width:"100%",height:"100%",children:g})})}const Xe=["January","February","March","April","May","June","July","August","September","October","November","December"],_e=["Su","Mo","Tu","We","Th","Fr","Sa"];function qe({value:r,range:s=!1,timepicker:p=!1,onChange:i,style:x}){const a=new Date,f=r?new Date(Array.isArray(r)?r[0]:r):a,[d,y]=u.useState(f),[m,n]=u.useState(r??(s?[null,null]:null)),[l,c]=u.useState(null),[b,o]=u.useState({h:0,m:0});u.useEffect(V,[]);const g=d.getFullYear(),v=d.getMonth(),$=new Date(g,v,1).getDay(),D=new Date(g,v+1,0).getDate(),I=[];for(let h=0;h<$;h++)I.push(null);for(let h=1;h<=D;h++)I.push(new Date(g,v,h));const k=h=>h.toDateString()===a.toDateString(),z=h=>{if(!m)return!1;if(s&&Array.isArray(m)){const[E,S]=m;if(!E)return!1;const P=h.getTime();return S?P>=E.getTime()&&P<=S.getTime():h.toDateString()===E.toDateString()}return h.toDateString()===m.toDateString()},W=h=>{if(s){const[E,S]=Array.isArray(m)?m:[null,null];if(!E||S)n([h,null]);else{const P=h<E?[h,E]:[E,h];n(P),i==null||i(P)}}else n(h),i==null||i(h)};return e.jsxs("div",{className:"dhx",style:{background:t.surface,border:`1px solid ${t.border}`,borderRadius:t.rMd,padding:16,display:"inline-block",boxShadow:t.shadow,...x},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:12},children:[e.jsx("button",{onClick:()=>y(h=>new Date(h.getFullYear(),h.getMonth()-1,1)),className:"dhx dhx-btn dhx-btn-ghost",style:{height:28,padding:"0 8px",fontSize:16},children:"‹"}),e.jsxs("div",{style:{fontWeight:700,fontSize:14},children:[Xe[v]," ",g]}),e.jsx("button",{onClick:()=>y(h=>new Date(h.getFullYear(),h.getMonth()+1,1)),className:"dhx dhx-btn dhx-btn-ghost",style:{height:28,padding:"0 8px",fontSize:16},children:"›"})]}),e.jsxs("div",{style:{display:"grid",gridTemplateColumns:"repeat(7, 32px)",gap:2},children:[_e.map(h=>e.jsx("div",{style:{textAlign:"center",fontSize:11,fontWeight:600,color:t.textMut,paddingBottom:4},children:h},h)),I.map((h,E)=>{const S=h?z(h):!1,P=h&&l&&h.toDateString()===l.toDateString();return e.jsx("div",{onClick:()=>h&&W(h),onMouseEnter:()=>h&&c(h),onMouseLeave:()=>c(null),style:{width:32,height:32,display:"flex",alignItems:"center",justifyContent:"center",borderRadius:t.r,cursor:h?"pointer":"default",fontSize:12,fontWeight:h&&k(h)?700:400,background:S?t.primary:P?t.bg:"transparent",color:S?"#fff":h&&k(h)?t.primary:h?t.text:"transparent",border:h&&k(h)&&!S?`1px solid ${t.primary}`:"1px solid transparent",transition:"all .1s"},children:h==null?void 0:h.getDate()},E)})]}),p&&e.jsxs("div",{style:{borderTop:`1px solid ${t.border}`,marginTop:12,paddingTop:12,display:"flex",alignItems:"center",justifyContent:"center",gap:8},children:[e.jsx("input",{type:"number",min:0,max:23,value:b.h,onChange:h=>o(E=>({...E,h:+h.target.value})),className:"dhx dhx-input",style:{width:50,textAlign:"center"}}),e.jsx("span",{style:{fontWeight:700,color:t.textSec},children:":"}),e.jsx("input",{type:"number",min:0,max:59,value:b.m,onChange:h=>o(E=>({...E,m:+h.target.value})),className:"dhx dhx-input",style:{width:50,textAlign:"center"}})]})]})}function $e({value:r,onChange:s,timeFormat:p=12,controls:i=!1,minuteStep:x=5,style:a}){const[f,d]=u.useState((r==null?void 0:r.h)??(p===24?0:12)),[y,m]=u.useState((r==null?void 0:r.m)??0),[n,l]=u.useState((r==null?void 0:r.ampm)??"AM"),[c,b]=u.useState(null);u.useEffect(V,[]);const o=p===24?Array.from({length:24},(k,z)=>z):Array.from({length:12},(k,z)=>z+1),g=Array.from({length:Math.ceil(60/x)},(k,z)=>z*x),v=(k,z,W)=>{const h=p===24?{h:k,m:z}:{h:k,m:z,ampm:W};i?b(h):s==null||s(h)},$=()=>{b(null),d((r==null?void 0:r.h)??(p===24?0:12)),m((r==null?void 0:r.m)??0),l((r==null?void 0:r.ampm)??"AM")},D={display:"flex",flexDirection:"column",alignItems:"center",gap:4},I=k=>({height:32,display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",fontSize:13,fontWeight:k?700:400,background:k?t.primaryLt:"transparent",color:k?t.primary:t.text});return e.jsxs("div",{className:"dhx",style:{background:t.surface,border:`1px solid ${t.border}`,borderRadius:t.rMd,padding:16,display:"inline-block",boxShadow:t.shadow,...a},children:[e.jsxs("div",{style:{display:"flex",gap:8,alignItems:"stretch"},children:[e.jsxs("div",{style:D,children:[e.jsx("span",{style:{fontSize:11,fontWeight:600,color:t.textMut},children:"Hours"}),e.jsx("div",{className:"dhx-scroll",style:{height:160,overflowY:"auto",width:48,border:`1px solid ${t.border}`,borderRadius:t.r},children:o.map(k=>e.jsx("div",{onClick:()=>{d(k),v(k,y,n)},style:I(f===k),onMouseEnter:z=>f!==k&&(z.currentTarget.style.background=t.bg),onMouseLeave:z=>f!==k&&(z.currentTarget.style.background="transparent"),children:String(k).padStart(2,"0")},k))})]}),e.jsxs("div",{style:D,children:[e.jsx("span",{style:{fontSize:11,fontWeight:600,color:t.textMut},children:"Minutes"}),e.jsx("div",{className:"dhx-scroll",style:{height:160,overflowY:"auto",width:48,border:`1px solid ${t.border}`,borderRadius:t.r},children:g.map(k=>e.jsx("div",{onClick:()=>{m(k),v(f,k,n)},style:I(y===k),onMouseEnter:z=>y!==k&&(z.currentTarget.style.background=t.bg),onMouseLeave:z=>y!==k&&(z.currentTarget.style.background="transparent"),children:String(k).padStart(2,"0")},k))})]}),p===12&&e.jsxs("div",{style:D,children:[e.jsx("span",{style:{fontSize:11,fontWeight:600,color:t.textMut},children:"AM/PM"}),e.jsx("div",{style:{display:"flex",flexDirection:"column",border:`1px solid ${t.border}`,borderRadius:t.r,overflow:"hidden"},children:["AM","PM"].map(k=>e.jsx("div",{onClick:()=>{l(k),v(f,y,k)},style:{height:40,display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",padding:"0 12px",fontSize:13,fontWeight:n===k?700:400,background:n===k?t.primary:t.surface,color:n===k?"#fff":t.text},children:k},k))})]})]}),e.jsxs("div",{style:{textAlign:"center",marginTop:12,fontSize:22,fontWeight:700,color:t.primary,letterSpacing:2},children:[String(f).padStart(2,"0"),":",String(y).padStart(2,"0"),p===12?` ${n}`:""]}),i&&e.jsxs("div",{style:{display:"flex",gap:8,justifyContent:"flex-end",marginTop:12},children:[e.jsx("button",{className:"dhx dhx-btn dhx-btn-secondary",onClick:$,children:"Cancel"}),e.jsx("button",{className:"dhx dhx-btn dhx-btn-primary",onClick:()=>c&&(s==null?void 0:s(c)),children:"Apply"})]})]})}const Ge=({open:r})=>e.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",style:{flexShrink:0,transition:"transform .15s",transform:r?"rotate(180deg)":"rotate(0deg)"},children:e.jsx("path",{d:"M2 4l4 4 4-4",stroke:t.textMut,strokeWidth:"1.5",fill:"none",strokeLinecap:"round",strokeLinejoin:"round"})});function he({data:r=[],value:s,placeholder:p="Select or type...",multiselection:i=!1,label:x,onChange:a,style:f}){var W;const[d,y]=u.useState(!1),[m,n]=u.useState(""),[l,c]=u.useState(i?s?[].concat(s):[]:s||null),b=u.useRef(null),o=u.useRef(null);u.useEffect(V,[]),te(b,u.useCallback(()=>{y(!1),n("")},[]));const g=u.useMemo(()=>r.filter(h=>!m||h.value.toLowerCase().includes(m.toLowerCase())),[r,m]),v=h=>i?(l||[]).includes(h):l===h,$=h=>{const E=h.id||h.value;if(i){const S=v(E)?l.filter(P=>P!==E):[...l||[],E];c(S),a==null||a(S)}else c(E),n(""),y(!1),a==null||a(E)},D=h=>{const E=l.filter(S=>S!==h);c(E),a==null||a(E)},I=()=>{y(!0),setTimeout(()=>{var h;return(h=o.current)==null?void 0:h.focus()},0)},k=((W=r.find(h=>(h.id||h.value)===l))==null?void 0:W.value)||"",z=i?l||[]:[];return e.jsxs("div",{ref:b,className:"dhx",style:{position:"relative",...f},children:[x&&e.jsx("label",{className:"dhx dhx-label",children:x}),e.jsxs("div",{onClick:I,style:{display:"flex",alignItems:"center",flexWrap:i?"wrap":"nowrap",border:`1px solid ${d?t.primary:t.border}`,borderRadius:t.r,minHeight:34,padding:"4px 8px",cursor:"text",background:t.surface,gap:4,transition:"border-color .15s",boxShadow:d?`0 0 0 3px ${t.primary}22`:"none"},children:[i&&e.jsxs(e.Fragment,{children:[z.map(h=>{var E;return e.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:4,background:t.primary,color:"#fff",borderRadius:12,padding:"2px 10px 2px 8px",fontSize:12,lineHeight:1.5,whiteSpace:"nowrap"},children:[((E=r.find(S=>(S.id||S.value)===h))==null?void 0:E.value)||h,e.jsx("span",{onClick:S=>{S.stopPropagation(),D(h)},style:{cursor:"pointer",fontSize:15,lineHeight:1,opacity:.75,marginLeft:2},children:"×"})]},h)}),e.jsx("input",{ref:o,value:m,onChange:h=>{n(h.target.value),y(!0)},onFocus:()=>y(!0),onClick:h=>h.stopPropagation(),placeholder:z.length?"":p,style:{flex:1,minWidth:60,border:"none",outline:"none",fontSize:13,background:"transparent",color:t.text,padding:0}})]}),!i&&e.jsx("input",{ref:o,value:d?m:k,onChange:h=>{n(h.target.value),y(!0)},onFocus:()=>{y(!0),n("")},onClick:h=>h.stopPropagation(),placeholder:p,style:{flex:1,border:"none",outline:"none",fontSize:13,background:"transparent",color:t.text,padding:0}}),e.jsx(Ge,{open:d})]}),d&&e.jsx("div",{className:"dhx dhx-anim-fade",style:{position:"absolute",top:"calc(100% + 4px)",left:0,right:0,background:t.surface,border:`1px solid ${t.border}`,borderRadius:t.r,boxShadow:t.shadowLg,zIndex:100},children:e.jsxs("div",{className:"dhx-scroll",style:{maxHeight:220,overflowY:"auto"},children:[g.map(h=>{const E=h.id||h.value,S=v(E);return e.jsxs("div",{onClick:()=>$(h),style:{padding:"8px 12px",cursor:"pointer",display:"flex",alignItems:"center",gap:8,fontSize:13,background:S?t.primaryLt:"transparent",color:S?t.primary:t.text},onMouseEnter:P=>!S&&(P.currentTarget.style.background=t.bg),onMouseLeave:P=>!S&&(P.currentTarget.style.background="transparent"),children:[i&&e.jsx("span",{style:{width:14,height:14,flexShrink:0,border:`2px solid ${S?t.primary:t.borderDk}`,borderRadius:3,display:"flex",alignItems:"center",justifyContent:"center",background:S?t.primary:"transparent"},children:S&&e.jsx("span",{style:{color:"#fff",fontSize:9,lineHeight:1},children:"✓"})}),e.jsx("span",{style:{flex:1},children:h.value}),!i&&S&&e.jsx("span",{style:{color:t.primary,fontSize:12,fontWeight:700},children:"✓"}),h.count!==void 0&&e.jsxs("span",{style:{fontSize:11,color:t.textMut},children:["(",h.count,")"]})]},E)}),g.length===0&&e.jsx("div",{style:{padding:16,textAlign:"center",color:t.textMut,fontSize:13},children:"No matches"})]})})]})}function fe({min:r=0,max:s=100,step:p=1,value:i,range:x=!1,label:a,tick:f,disabled:d=!1,onChange:y,style:m}){const[n,l]=u.useState(i??(x?[r,s]:r));u.useEffect(V,[]);const c=($,D)=>{if(!d)if(x){const I=[...n];I[$]=D,l(I),y==null||y(I)}else l(D),y==null||y(D)},b=$=>($-r)/(s-r)*100,o=x?n:[n],g=x?{left:`${b(o[0])}%`,width:`${b(o[1])-b(o[0])}%`}:{left:0,width:`${b(o[0])}%`},v=d?t.border:t.primary;return e.jsxs("div",{className:"dhx",style:{width:"100%",opacity:d?.5:1,...m},children:[a&&e.jsx("label",{className:"dhx dhx-label",children:a}),e.jsx("div",{style:{position:"relative",height:36,display:"flex",alignItems:"center"},children:e.jsxs("div",{style:{position:"relative",flex:1,height:4,background:t.border,borderRadius:2},children:[e.jsx("div",{style:{position:"absolute",...g,height:"100%",background:v,borderRadius:2}}),o.map(($,D)=>e.jsx("input",{type:"range",min:r,max:s,step:p,value:$,disabled:d,onChange:I=>{const k=+I.target.value;x&&D===0&&k>=n[1]||x&&D===1&&k<=n[0]||c(D,k)},style:{position:"absolute",width:"100%",height:"100%",opacity:0,cursor:d?"not-allowed":"pointer",top:0,left:0,margin:0}},D)),o.map(($,D)=>e.jsx("div",{style:{position:"absolute",left:`${b($)}%`,top:"50%",transform:"translate(-50%, -50%)",width:16,height:16,borderRadius:"50%",background:t.surface,border:`2px solid ${v}`,boxShadow:"0 1px 4px rgba(0,0,0,.2)",pointerEvents:"none"},children:e.jsx("div",{style:{position:"absolute",bottom:"calc(100% + 6px)",left:"50%",transform:"translateX(-50%)",background:d?t.textMut:t.primaryDk,color:"#fff",padding:"2px 6px",borderRadius:t.r,fontSize:11,fontWeight:700,whiteSpace:"nowrap"},children:$})},D))]})}),f&&e.jsx("div",{style:{display:"flex",justifyContent:"space-between",marginTop:2},children:[r,Math.round((s+r)/2),s].map($=>e.jsx("span",{style:{fontSize:10,color:t.textMut},children:$},$))})]})}const Je=["#f44336","#e91e63","#9c27b0","#673ab7","#3f51b5","#2196f3","#03a9f4","#00bcd4","#009688","#4caf50","#8bc34a","#cddc39","#ffeb3b","#ffc107","#ff9800","#ff5722","#795548","#607d8b","#9e9e9e","#000000","#ffffff","#0288d1","#01579b","#43a047","#e53935","#f57c00"];function ue(r){const s=parseInt(r.slice(1,3),16)/255,p=parseInt(r.slice(3,5),16)/255,i=parseInt(r.slice(5,7),16)/255,x=Math.max(s,p,i),a=Math.min(s,p,i);let f=0,d=0;const y=(x+a)/2;if(x!==a){const m=x-a;d=y>.5?m/(2-x-a):m/(x+a),f=x===s?((p-i)/m+(p<i?6:0))/6:x===p?((i-s)/m+2)/6:((s-p)/m+4)/6}return[Math.round(f*360),Math.round(d*100),Math.round(y*100)]}function Ce(r,s,p){s/=100,p/=100;const i=s*Math.min(p,1-p),x=a=>{const f=(a+r/30)%12,d=p-i*Math.max(Math.min(f-3,9-f,1),-1);return Math.round(255*d).toString(16).padStart(2,"0")};return"#"+x(0)+x(8)+x(4)}function Ue({value:r="#0288d1",onChange:s,style:p}){const[i,x]=u.useState(()=>ue(r)),a=Ce(...i);u.useEffect(V,[]);const f=d=>{x(d),s==null||s(Ce(...d))};return e.jsxs("div",{className:"dhx",style:{background:t.surface,border:`1px solid ${t.border}`,borderRadius:t.rMd,padding:16,display:"inline-block",boxShadow:t.shadow,...p},children:[e.jsx("div",{style:{width:200,height:120,borderRadius:t.r,marginBottom:12,background:`linear-gradient(to bottom, transparent, black), linear-gradient(to right, white, hsl(${i[0]},100%,50%))`,cursor:"crosshair"}}),[["Hue",0,360,i[0]],["Saturation",0,100,i[1]],["Lightness",0,100,i[2]]].map(([d,y,m,n],l)=>e.jsxs("div",{style:{marginBottom:l<2?8:12},children:[e.jsxs("div",{className:"dhx dhx-label",children:[d,l>0?` (${n}%)`:""]}),e.jsx("input",{type:"range",min:y,max:m,value:n,onChange:c=>{const b=[...i];b[l]=+c.target.value,f(b)},style:{width:"100%",accentColor:t.primary}})]},d)),e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:12},children:[e.jsx("div",{style:{width:36,height:36,borderRadius:t.r,background:a,border:`1px solid ${t.border}`,flexShrink:0}}),e.jsx("input",{className:"dhx dhx-input",style:{flex:1,fontFamily:"monospace",fontSize:12},value:a,onChange:d=>{try{f(ue(d.target.value)),s==null||s(d.target.value)}catch{}}})]}),e.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(13, 1fr)",gap:3},children:Je.map(d=>e.jsx("div",{onClick:()=>{x(ue(d)),s==null||s(d)},style:{width:14,height:14,borderRadius:2,background:d,cursor:"pointer",border:a===d?`2px solid ${t.text}`:"1px solid rgba(0,0,0,.15)",transition:"transform .1s"},onMouseEnter:y=>y.currentTarget.style.transform="scale(1.3)",onMouseLeave:y=>y.currentTarget.style.transform="scale(1)"},d))})]})}function Qe({trigger:r,children:s,placement:p="bottom-start",style:i}){const[x,a]=u.useState(!1),[f,d]=u.useState({top:"100%",left:0}),y=u.useRef(null),m=u.useRef(null);u.useEffect(V,[]),te(y,u.useCallback(()=>a(!1),[]));const n=()=>{a(l=>{if(!l&&m.current){const c=m.current.getBoundingClientRect(),b={"bottom-start":{top:c.height+4,left:0},"bottom-end":{top:c.height+4,right:0,left:"auto"},"top-start":{bottom:c.height+4,top:"auto",left:0}};d(b[p]||b["bottom-start"])}return!l})};return e.jsxs("div",{ref:y,className:"dhx",style:{position:"relative",display:"inline-block"},children:[e.jsx("div",{ref:m,onClick:n,children:r}),x&&e.jsx("div",{className:"dhx dhx-anim-fade",style:{position:"absolute",...f,zIndex:200,background:t.surface,border:`1px solid ${t.border}`,borderRadius:t.rMd,boxShadow:t.shadowLg,...i},children:s})]})}function Ze({title:r,children:s,width:p=480,height:i,closable:x=!0,movable:a=!0,modal:f=!1,defaultOpen:d=!0,footer:y,onClose:m,style:n}){const[l,c]=u.useState(d),[b,o]=u.useState({x:0,y:0});u.useEffect(V,[]);const g=me(u.useCallback(($,D)=>a&&o({x:$,y:D}),[a])),v=()=>{c(!1),m==null||m()};return l?e.jsxs(e.Fragment,{children:[f&&e.jsx("div",{style:{position:"fixed",inset:0,background:"rgba(0,0,0,.45)",zIndex:900},onClick:x?v:void 0}),e.jsxs("div",{className:"dhx",style:{position:f?"fixed":"absolute",left:"50%",top:"50%",transform:`translate(calc(-50% + ${b.x}px), calc(-50% + ${b.y}px))`,width:p,...i?{height:i}:{},background:t.surface,borderRadius:t.rMd,boxShadow:t.shadowLg,zIndex:901,display:"flex",flexDirection:"column",overflow:"hidden",...n},children:[e.jsxs("div",{onMouseDown:$=>g($,b.x,b.y),style:{display:"flex",alignItems:"center",padding:"12px 16px",borderBottom:`1px solid ${t.border}`,cursor:a?"grab":"default",background:t.bg,gap:8,userSelect:"none"},children:[e.jsx("span",{style:{flex:1,fontWeight:700,fontSize:15},children:r}),x&&e.jsx("button",{onClick:v,style:{background:"none",border:"none",cursor:"pointer",width:28,height:28,borderRadius:t.r,display:"flex",alignItems:"center",justifyContent:"center",fontSize:18,color:t.textSec},onMouseEnter:$=>$.currentTarget.style.background=t.border,onMouseLeave:$=>$.currentTarget.style.background="none",children:"×"})]}),e.jsx("div",{className:"dhx-scroll",style:{flex:1,minHeight:0,padding:20,overflowY:"auto"},children:s}),y&&e.jsx("div",{style:{padding:"12px 16px",borderTop:`1px solid ${t.border}`,display:"flex",justifyContent:"flex-end",gap:8,background:t.bg},children:y})]})]}):null}const xe=u.createContext(null),Re={success:"✓",error:"✕",warning:"⚠",info:"ℹ"},De={success:t.success,error:t.danger,warning:t.warning,info:t.primary};function et({children:r}){const[s,p]=u.useState([]);u.useEffect(V,[]);const i=u.useCallback(f=>p(d=>d.filter(y=>y.id!==f)),[]),x=u.useCallback(f=>{const d=Date.now();return p(y=>[...y,{id:d,...f}]),f.duration!==0&&setTimeout(()=>i(d),f.duration||4e3),d},[i]),a={message:x,alert:(f,d)=>x({type:"info",title:f,...d}),confirm:(f,d,y)=>x({type:"warning",title:f,confirm:d,...y})};return e.jsxs(xe.Provider,{value:a,children:[r,e.jsx("div",{style:{position:"fixed",top:20,right:20,zIndex:9999,display:"flex",flexDirection:"column",gap:8,pointerEvents:"none"},children:s.map(f=>{const d=f.type||"info";return e.jsxs("div",{style:{background:t.surface,border:`1px solid ${t.border}`,borderLeft:`4px solid ${De[d]}`,borderRadius:t.r,boxShadow:t.shadowLg,padding:"12px 16px",minWidth:280,maxWidth:380,pointerEvents:"all",display:"flex",gap:10,alignItems:"flex-start",animation:"dhx-toast .3s ease"},children:[e.jsx("span",{style:{fontSize:18,color:De[d],lineHeight:1},children:Re[d]}),e.jsxs("div",{style:{flex:1},children:[f.title&&e.jsx("div",{style:{fontWeight:600,fontSize:13,marginBottom:f.text?3:0},children:f.title}),f.text&&e.jsx("div",{style:{fontSize:12,color:t.textSec,lineHeight:1.5},children:f.text}),f.confirm&&e.jsxs("div",{style:{display:"flex",gap:6,marginTop:8},children:[e.jsx("button",{className:"dhx dhx-btn dhx-btn-primary",style:{height:26,fontSize:12},onClick:()=>{f.confirm(!0),i(f.id)},children:"Confirm"}),e.jsx("button",{className:"dhx dhx-btn dhx-btn-secondary",style:{height:26,fontSize:12},onClick:()=>{f.confirm(!1),i(f.id)},children:"Cancel"})]})]}),e.jsx("button",{onClick:()=>i(f.id),style:{background:"none",border:"none",cursor:"pointer",color:t.textMut,fontSize:14,lineHeight:1,padding:0},children:"×"})]},f.id)})})]})}function tt(){const r=u.useContext(xe);if(!r)throw new Error("useMessage must be used inside <MessageProvider>");return r}function rt({data:r=[],template:s,keyNavigation:p=!0,multiselection:i=!1,editable:x=!1,height:a=400,onSelect:f,onEdit:d,style:y}){const[m,n]=u.useState(new Set),[l,c]=u.useState(null),[b,o]=u.useState(""),[g,v]=u.useState(null);u.useEffect(V,[]);const $=(I,k)=>{const z=I.id??k;n(W=>{const h=i?new Set(W):new Set;return h.has(z)?h.delete(z):h.add(z),h}),v(k),f==null||f(I)},D=(I,k)=>{d==null||d({...I,value:b},k),c(null)};return e.jsxs("div",{className:"dhx dhx-scroll",style:{height:a,overflowY:"auto",border:`1px solid ${t.border}`,borderRadius:t.r,background:t.surface,...y},tabIndex:0,onKeyDown:I=>{p&&(I.key==="ArrowDown"&&v(k=>Math.min((k??-1)+1,r.length-1)),I.key==="ArrowUp"&&v(k=>Math.max((k??1)-1,0)))},children:[r.map((I,k)=>{const z=I.id??k,W=m.has(z),h=g===k;return e.jsx("div",{onClick:()=>$(I,k),onDoubleClick:()=>x&&(c(k),o(String(I.value||""))),style:{display:"flex",alignItems:"center",padding:"0 12px",height:40,cursor:"pointer",fontSize:13,borderBottom:`1px solid ${t.border}`,background:W?t.primaryLt:h?t.bg:t.surface,color:W?t.primary:t.text,outline:h?`2px solid ${t.primary}44`:"none",transition:"background .1s"},children:l===k?e.jsx("input",{autoFocus:!0,className:"dhx dhx-input",style:{height:28,flex:1},value:b,onChange:E=>o(E.target.value),onBlur:()=>D(I,k),onKeyDown:E=>{E.key==="Enter"&&D(I,k),E.key==="Escape"&&c(null)},onClick:E=>E.stopPropagation()}):s?e.jsx("div",{dangerouslySetInnerHTML:{__html:s(I)},style:{flex:1}}):e.jsx("span",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:String(I.value??"")})},String(z))}),r.length===0&&e.jsx("div",{style:{padding:24,textAlign:"center",color:t.textMut},children:"No items"})]})}function nt({data:r=[],template:s,itemsInRow:p=3,gap:i=12,multiselection:x=!1,onSelect:a,style:f}){const[d,y]=u.useState(new Set);u.useEffect(V,[]);const m=n=>{const l=n.id??String(n.title);y(c=>{const b=x?new Set(c):new Set;return b.has(l)?b.delete(l):b.add(l),b}),a==null||a(n)};return e.jsx("div",{className:"dhx",style:{display:"grid",gridTemplateColumns:`repeat(${p}, 1fr)`,gap:i,padding:i,...f},children:r.map((n,l)=>{const c=n.id??l,b=d.has(c);return e.jsx("div",{onClick:()=>m(n),style:{background:t.surface,border:`2px solid ${b?t.primary:t.border}`,borderRadius:t.rMd,overflow:"hidden",cursor:"pointer",transition:"all .15s",boxShadow:b?`0 0 0 3px ${t.primary}33`:t.shadow,transform:b?"translateY(-2px)":"none"},onMouseEnter:o=>{o.currentTarget.style.boxShadow=t.shadowLg,o.currentTarget.style.transform="translateY(-2px)"},onMouseLeave:o=>{o.currentTarget.style.boxShadow=b?`0 0 0 3px ${t.primary}33`:t.shadow,o.currentTarget.style.transform=b?"translateY(-2px)":"none"},children:s?e.jsx("div",{dangerouslySetInnerHTML:{__html:s(n)}}):e.jsxs("div",{style:{padding:16},children:[n.img&&e.jsx("img",{src:n.img,alt:n.title||"",style:{width:"100%",borderRadius:t.r,marginBottom:8,display:"block"}}),e.jsx("div",{style:{fontWeight:600,fontSize:14,marginBottom:4},children:n.title||n.value}),n.subtitle&&e.jsx("div",{style:{fontSize:12,color:t.textSec},children:n.subtitle})]})},String(c))})})}function ge(r){return r.map(s=>({...s,items:s.items?ge(s.items):void 0}))}function ye(r,s={}){return r.forEach(p=>{p.opened&&(s[p.id]=!0),p.items&&ye(p.items,s)}),s}function Ee(r,s){let p=null;return[r.filter(x=>x.id===s?(p=x,!1):!0).map(x=>{if(x.items){const[a,f]=Ee(x.items,s);return f&&(p=f),{...x,items:a}}return x}),p]}function be(r,s,p,i){if(i==="inside")return r.map(a=>a.id===s?{...a,items:[...a.items||[],p]}:a.items?{...a,items:be(a.items,s,p,i)}:a);if(r.some(a=>a.id===s)){const a=[];for(const f of r)f.id===s?i==="before"?(a.push(p),a.push(f)):(a.push(f),a.push(p)):a.push(f);return a}return r.map(a=>a.items?{...a,items:be(a.items,s,p,i)}:a)}function ot(r,s,p){function i(x){var a,f;if(x.id===s){const d=y=>{var m;return y.id===p||(((m=y.items)==null?void 0:m.some(d))??!1)};return((a=x.items)==null?void 0:a.some(d))??!1}return((f=x.items)==null?void 0:f.some(i))??!1}return r.some(i)}function Le(r,s,p){return r.map(i=>i.id===s?{...i,value:p}:{...i,items:i.items?Le(i.items,s,p):void 0})}function st(r,s){var a;let p=0,i=0;const x=f=>{var d;p++,s[f.id]&&i++,(d=f.items)==null||d.forEach(x)};return(a=r.items)==null||a.forEach(x),{total:p,checkedCount:i}}function lt({data:r=[],checkbox:s=!1,editable:p=!1,dragMode:i,tooltip:x,onSelect:a,onCheck:f,onChange:d,style:y}){const[m,n]=u.useState(()=>ge(r)),[l,c]=u.useState(()=>ye(r)),[b,o]=u.useState(null),[g,v]=u.useState({}),[$,D]=u.useState(null),[I,k]=u.useState(""),[z,W]=u.useState(null),[h,E]=u.useState(null);u.useEffect(V,[]),u.useEffect(()=>{n(ge(r)),c(M=>({...ye(r),...M}))},[r]);const S=M=>c(A=>({...A,[M]:!A[M]})),P=(M,A)=>{v(j=>({...j,[M]:A})),f==null||f(M,A)},_=()=>{if(!$)return;const M=$,A=I;D(null),n(j=>{const Y=Le(j,M,A);return d==null||d(Y),Y})},J=(M,A)=>{M.dataTransfer.effectAllowed="move",W(A)},Q=(M,A)=>{if(!z||z===A||ot(m,z,A))return;M.preventDefault();const j=M.currentTarget.getBoundingClientRect(),Y=M.clientY-j.top,O=j.height,U=Y<O*.25?"before":Y>O*.75?"after":"inside";E(q=>(q==null?void 0:q.id)===A&&(q==null?void 0:q.pos)===U?q:{id:A,pos:U})},ne=(M,A)=>{if(M.preventDefault(),!z||!h||z===A){E(null),W(null);return}n(j=>{const[Y,O]=Ee(j,z);if(!O)return j;const U=be(Y,A,O,h.pos);return d==null||d(U),U}),h.pos==="inside"&&c(j=>({...j,[A]:!0})),E(null),W(null)},Z=()=>{W(null),E(null)},L=(M,A=0)=>{var ae;const j=(((ae=M.items)==null?void 0:ae.length)??0)>0,Y=l[M.id],O=b===M.id,U=z===M.id,q=(h==null?void 0:h.id)===M.id;let oe=!!g[M.id],R=!1;if(s&&j){const{total:H,checkedCount:ee}=st(M,g);ee>0&&ee<H?R=!0:H>0&&ee===H&&(oe=!0)}const se=q&&h.pos!=="inside"?{boxShadow:h.pos==="before"?`inset 0 2px 0 0 ${t.primary}`:`inset 0 -2px 0 0 ${t.primary}`}:{},le=q&&h.pos==="inside"||O?t.primaryLt:"transparent";return e.jsxs("div",{style:{opacity:U?.4:1},children:[e.jsxs("div",{draggable:!!i,onDragStart:i?H=>J(H,M.id):void 0,onDragOver:i?H=>Q(H,M.id):void 0,onDrop:i?H=>ne(H,M.id):void 0,onDragEnd:i?Z:void 0,title:x==null?void 0:x(M),onClick:()=>{o(M.id),a==null||a(M),j&&S(M.id)},onDoubleClick:()=>{p&&(D(M.id),k(M.value||""))},style:{display:"flex",alignItems:"center",gap:4,padding:`5px 8px 5px ${12+A*18}px`,cursor:i?"grab":"pointer",borderRadius:t.r,margin:"1px 4px",background:le,color:O?t.primary:t.text,userSelect:"none",fontSize:13,...se},onMouseEnter:H=>!O&&!q&&(H.currentTarget.style.background=t.bg),onMouseLeave:H=>!O&&!q&&(H.currentTarget.style.background="transparent"),children:[e.jsx("span",{style:{width:16,textAlign:"center",fontSize:11,color:t.textMut,flexShrink:0},onClick:H=>{H.stopPropagation(),j&&S(M.id)},children:j?Y?"▾":"▸":""}),e.jsx("span",{style:{fontSize:15,flexShrink:0},children:j?Y?"📂":"📁":"📄"}),s&&e.jsx("input",{ref:H=>{H&&(H.indeterminate=R)},type:"checkbox",checked:oe,onChange:H=>{H.stopPropagation(),P(M.id,H.target.checked)},style:{cursor:"pointer",accentColor:t.primary,flexShrink:0},onClick:H=>H.stopPropagation()}),$===M.id?e.jsx("input",{autoFocus:!0,className:"dhx dhx-input",style:{height:24,fontSize:12,flex:1},value:I,onChange:H=>k(H.target.value),onBlur:_,onKeyDown:H=>{H.key==="Enter"&&_(),H.key==="Escape"&&D(null)},onClick:H=>H.stopPropagation()}):e.jsx("span",{style:{flex:1},children:M.value}),M.count!==void 0&&e.jsxs("span",{style:{fontSize:11,color:t.textMut},children:["(",M.count,")"]})]}),j&&Y&&e.jsx("div",{children:M.items.map(H=>L(H,A+1))})]},M.id)};return e.jsx("div",{className:"dhx dhx-scroll",style:{overflowY:"auto",...y},onDragOver:i?M=>M.preventDefault():void 0,onDrop:i?M=>{M.preventDefault(),E(null),W(null)}:void 0,children:m.map(M=>L(M))})}function it({total:r,pageSize:s=10,page:p,onChange:i,style:x}){const[a,f]=u.useState(p||1),d=Math.ceil(r/s);u.useEffect(V,[]);const y=n=>{const l=Math.min(Math.max(1,n),d);f(l),i==null||i(l)},m=u.useMemo(()=>{const n=[];for(let c=Math.max(1,a-2);c<=Math.min(d,a+2);c++)n.push(c);return n[0]>1&&(n[0]>2&&n.unshift("..."),n.unshift(1)),n[n.length-1]<d&&(n[n.length-1]<d-1&&n.push("..."),n.push(d)),n},[a,d]);return e.jsxs("div",{className:"dhx",style:{display:"flex",alignItems:"center",gap:4,padding:"8px 12px",...x},children:[e.jsxs("span",{style:{fontSize:12,color:t.textSec,marginRight:8},children:[(a-1)*s+1,"–",Math.min(a*s,r)," of ",r]}),[["«",1],["‹",a-1]].map(([n,l])=>e.jsx("button",{className:"dhx dhx-btn dhx-btn-ghost",style:{height:30,padding:"0 8px",fontSize:14},disabled:a===1,onClick:()=>y(l),children:n},n)),m.map((n,l)=>e.jsx("button",{onClick:()=>typeof n=="number"&&y(n),className:`dhx dhx-btn ${n===a?"dhx-btn-primary":"dhx-btn-ghost"}`,style:{height:30,minWidth:30,padding:"0 8px",fontSize:13},disabled:n==="...",children:n},l)),[["›",a+1],["»",d]].map(([n,l])=>e.jsx("button",{className:"dhx dhx-btn dhx-btn-ghost",style:{height:30,padding:"0 8px",fontSize:14},disabled:a===d,onClick:()=>y(l),children:n},n))]})}function at({config:r={},defaultValues:s={},onSubmit:p,style:i}){const[x,a]=u.useState(s),[f,d]=u.useState({}),[y,m]=u.useState(null);u.useEffect(V,[]);const n=(o,g)=>{a(v=>({...v,[o]:g})),d(v=>({...v,[o]:null}))},l=()=>{const o={};return(r.rows||[]).flat().forEach(g=>{g&&typeof g=="object"&&"name"in g&&g.required&&!x[g.name]&&(o[g.name]=`${g.label||g.name} is required`)}),d(o),Object.keys(o).length===0},c=o=>{const g=x[o.name]??o.value??"",v=f[o.name],$=o.labelWidth??r.labelWidth,D=$!==void 0||o.labelPosition==="left";if(o.type==="fieldset")return e.jsxs("fieldset",{style:{border:`1px solid ${t.border}`,borderRadius:t.r,padding:"12px 16px",marginBottom:14},children:[e.jsx("legend",{style:{fontSize:12,fontWeight:700,color:t.textSec,padding:"0 6px"},children:o.label}),(o.rows||[]).map(S=>c(S))]},o.name);if(o.type==="spacer")return e.jsx("div",{style:{height:o.height||16}},o.name);const I=$?{minWidth:$,width:$,flexShrink:0,paddingTop:8,boxSizing:"border-box"}:{},k=o.label?e.jsxs("label",{className:"dhx dhx-label",style:{display:"flex",gap:4,...I},children:[o.label,o.required&&e.jsx("span",{style:{color:t.danger},children:"*"})]},"lbl"):null,z=v?e.jsx("div",{style:{fontSize:11,color:t.danger,marginTop:3},children:v}):null,W=o.helpMessage?e.jsxs("div",{style:{fontSize:11,color:t.textMut,marginTop:3},children:["ⓘ ",o.helpMessage]}):null,h={key:o.name,className:"dhx-form-group"},E=S=>D?e.jsxs("div",{...h,style:{display:"flex",alignItems:"flex-start",gap:8},children:[k,e.jsxs("div",{style:{flex:1,minWidth:0},children:[S,z,W]})]}):e.jsxs("div",{...h,children:[k,S,z,W]});if(!o.type||o.type==="input")return E(e.jsxs("div",{className:"dhx-input-wrap",children:[o.icon&&e.jsx("span",{className:"dhx-input-icon",children:o.icon}),e.jsx("input",{className:`dhx dhx-input${o.icon?" dhx-input--with-icon":""}`,style:{borderColor:v?t.danger:void 0},type:o.inputType||"text",placeholder:o.placeholder,value:g,onChange:S=>n(o.name,S.target.value),disabled:o.disabled})]}));if(o.type==="textarea")return E(e.jsx("textarea",{className:"dhx dhx-input",style:{height:80,resize:"vertical",padding:"8px 10px"},placeholder:o.placeholder,value:g,onChange:S=>n(o.name,S.target.value)}));if(o.type==="select")return E(e.jsxs("select",{className:"dhx dhx-input",value:g,onChange:S=>n(o.name,S.target.value),style:{cursor:"pointer"},children:[e.jsx("option",{value:"",children:"— Select —"}),(o.options||[]).map(S=>e.jsx("option",{value:S.value,children:S.label||S.value},S.value))]}));if(o.type==="datepicker")return E(e.jsx("input",{type:"date",className:"dhx dhx-input",value:g,onChange:S=>n(o.name,S.target.value)}));if(o.type==="timepicker"){const S=x[o.name]??{h:12,m:0,ampm:"AM"},P=!!x[o.name],_=P?`${String(S.h).padStart(2,"0")}:${String(S.m).padStart(2,"0")}${S.ampm?" "+S.ampm:""}`:o.placeholder||"Click to select",J=e.jsxs("div",{style:{position:"relative"},children:[e.jsxs("div",{className:"dhx dhx-input",style:{cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"space-between"},onClick:()=>m(y===o.name?null:o.name),children:[e.jsx("span",{style:{color:P?t.text:t.textMut},children:_}),e.jsx("span",{style:{fontSize:13,color:t.textSec},children:"🕐"})]}),y===o.name&&e.jsx("div",{style:{position:"absolute",zIndex:100,top:"calc(100% + 4px)",left:0},children:e.jsx($e,{value:S,controls:!0,onChange:Q=>{n(o.name,Q),m(null)}})})]});return E(J)}if(o.type==="colorpicker")return E(e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[e.jsx("input",{type:"color",value:g||"#000000",onChange:S=>n(o.name,S.target.value),style:{width:36,height:36,padding:2,border:`1px solid ${t.border}`,borderRadius:t.r,cursor:"pointer",background:"none"}}),e.jsx("span",{style:{fontSize:12,color:t.textSec,fontFamily:"monospace"},children:g||"#000000"})]}));if(o.type==="text")return E(e.jsx("p",{style:{margin:"6px 0",fontSize:13,color:t.text},children:o.value}));if(o.type==="checkbox")return e.jsxs("div",{...h,children:[D?e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[$&&e.jsx("div",{style:{width:$,flexShrink:0}}),e.jsxs("label",{style:{display:"flex",alignItems:"center",gap:8,cursor:"pointer"},children:[e.jsx("input",{type:"checkbox",checked:!!g,onChange:S=>n(o.name,S.target.checked),style:{width:16,height:16,accentColor:t.primary,cursor:"pointer"}}),e.jsx("span",{style:{fontSize:13},children:o.label})]})]}):e.jsxs("label",{style:{display:"flex",alignItems:"center",gap:8,cursor:"pointer"},children:[e.jsx("input",{type:"checkbox",checked:!!g,onChange:S=>n(o.name,S.target.checked),style:{width:16,height:16,accentColor:t.primary,cursor:"pointer"}}),e.jsx("span",{style:{fontSize:13},children:o.label})]}),W]});if(o.type==="radio"){const S=(o.options||[]).map(P=>e.jsxs("label",{style:{display:"flex",alignItems:"center",gap:6,cursor:"pointer",fontSize:13},children:[e.jsx("input",{type:"radio",name:o.name,value:P.value,checked:g===P.value,onChange:()=>n(o.name,P.value),style:{accentColor:t.primary,cursor:"pointer"}}),P.label||P.value]},P.value));return E(e.jsx("div",{style:{display:"flex",gap:16,flexWrap:"wrap",paddingTop:8},children:S}))}if(o.type==="slider")return D?e.jsxs("div",{...h,style:{display:"flex",alignItems:"flex-start",gap:8},children:[k,e.jsxs("div",{style:{flex:1},children:[e.jsx(fe,{min:o.min,max:o.max,step:o.step,value:g||o.min,range:o.range,onChange:S=>n(o.name,S)}),W]})]}):e.jsxs("div",{...h,children:[e.jsx(fe,{label:o.label,min:o.min,max:o.max,step:o.step,value:g||o.min,range:o.range,onChange:S=>n(o.name,S)}),W]});if(o.type==="combo")return D?e.jsxs("div",{...h,style:{display:"flex",alignItems:"flex-start",gap:8},children:[k,e.jsxs("div",{style:{flex:1},children:[e.jsx(he,{data:o.data||[],multiselection:o.multiselection,placeholder:o.placeholder||"Select...",value:g||(o.multiselection?[]:null),onChange:S=>n(o.name,S)}),z,W]})]}):e.jsxs("div",{...h,children:[e.jsx(he,{label:o.label,data:o.data||[],multiselection:o.multiselection,placeholder:o.placeholder||"Select...",value:g||(o.multiselection?[]:null),onChange:S=>n(o.name,S)}),z,W]});if(o.type==="toggle"){const S=!!g,P=S?o.icon:o.offIcon||o.icon,_=S?o.text||o.label:o.offText||o.text||o.label;return e.jsxs("div",{...h,children:[D&&$&&e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[e.jsx("div",{style:{width:$,flexShrink:0}}),e.jsxs("label",{style:{display:"flex",alignItems:"center",gap:8,cursor:"pointer"},children:[e.jsx(Ie,{on:S,onClick:()=>n(o.name,!g)}),P&&e.jsx("span",{style:{fontSize:16},children:P}),_&&e.jsx("span",{style:{fontSize:13},children:_})]})]}),!D&&e.jsxs("label",{style:{display:"flex",alignItems:"center",gap:10,cursor:"pointer"},children:[e.jsx(Ie,{on:S,onClick:()=>n(o.name,!g)}),P&&e.jsx("span",{style:{fontSize:16},children:P}),_&&e.jsx("span",{style:{fontSize:13},children:_})]}),W]})}return null},b=o=>o.map((g,v)=>Array.isArray(g)?e.jsx("div",{style:{display:"flex",gap:12,alignItems:"flex-start"},children:g.map(c)},v):c(g));return e.jsxs("div",{className:"dhx",style:{padding:r.padding||0,width:r.width||"100%",...i},children:[b(r.rows||[]),(r.buttons||p)&&e.jsxs("div",{style:{display:"flex",gap:8,justifyContent:r.buttonAlign||"flex-start",marginTop:8},children:[e.jsx("button",{className:"dhx dhx-btn dhx-btn-primary",onClick:()=>l()&&(p==null?void 0:p(x)),children:r.submitText||"Submit"}),r.resetButton!==!1&&e.jsx("button",{className:"dhx dhx-btn dhx-btn-secondary",onClick:()=>{a(s),d({})},children:r.resetText||"Reset"})]})]})}function Ie({on:r,onClick:s}){return e.jsxs("div",{style:{position:"relative",width:40,height:22,flexShrink:0},onClick:s,children:[e.jsx("div",{style:{width:40,height:22,borderRadius:11,background:r?t.primary:t.border,transition:"background 0.2s"}}),e.jsx("div",{style:{position:"absolute",top:3,left:r?21:3,width:16,height:16,borderRadius:"50%",background:"#fff",transition:"left 0.2s",boxShadow:"0 1px 3px rgba(0,0,0,.3)"}})]})}function ve(r){const s=[];for(const p of r)p.type==="block"?s.push(...ve(p.items||[])):s.push(p);return s}function dt({items:r=[],onAction:s,style:p}){u.useEffect(V,[]);const[i,x]=u.useState(()=>{const l={};for(const c of ve(r))c.id&&(l[c.id]=!!c.active);return l}),a=ve(r),f=l=>{var c;if(!l.disabled){if(l.id)if(l.group){const b=a.filter(o=>o.group===l.group&&o.id);x(o=>{const g={...o};for(const v of b)g[v.id]=!1;return g[l.id]=!0,g})}else l.twoState&&x(b=>({...b,[l.id]:!b[l.id]}));(c=l.onClick)==null||c.call(l,l),l.id&&(s==null||s(l.id,l))}},d=(l,c)=>{var v;if(l.hidden)return null;const b=l.value??l.text,o=l.size==="auto",g=l.id!==void 0?i[l.id]??!!l.active:!!l.active;return l.type==="separator"||l.type==="sep"?e.jsx("div",{style:{width:1,background:t.border,margin:"4px 2px",alignSelf:"stretch"}},c):l.type==="input"?e.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"flex-start",justifyContent:"center",padding:"2px 4px",gap:2},children:[l.label&&e.jsx("span",{style:{fontSize:10,color:t.textMut},children:l.label}),e.jsxs("div",{style:{position:"relative",display:"flex",alignItems:"center"},children:[l.icon&&e.jsx("span",{style:{position:"absolute",left:6,fontSize:13,color:t.textMut,pointerEvents:"none",zIndex:1},children:l.icon}),e.jsx("input",{className:"dhx dhx-input",style:{width:l.width||110,height:26,fontSize:12,paddingLeft:l.icon?24:void 0},placeholder:l.placeholder,defaultValue:l.value,onChange:$=>{var D;return(D=l.onChange)==null?void 0:D.call(l,$.target.value)}})]})]},c):l.type==="selectButton"?e.jsx("select",{className:"dhx dhx-input",style:{height:26,fontSize:12,cursor:"pointer",margin:2,width:l.width},defaultValue:l.value,onChange:$=>{var D;return(D=l.onChange)==null?void 0:D.call(l,$.target.value)},children:(v=l.items)==null?void 0:v.map($=>e.jsx("option",{value:$.value,children:$.value},$.value))},c):e.jsxs("button",{title:l.tooltip,disabled:l.disabled,className:"dhx dhx-btn dhx-btn-ghost",style:{flexDirection:o?"column":"row",alignSelf:o?"stretch":"center",justifyContent:"center",minHeight:o?48:26,padding:o?"6px 10px":"0 8px",gap:o?4:5,position:"relative",background:g?t.primaryLt:"transparent",color:g?t.primary:l.disabled?t.textMut:t.text,opacity:l.disabled?.55:1,cursor:l.disabled?"not-allowed":"pointer"},onClick:()=>f(l),children:[l.icon&&e.jsx("span",{style:{fontSize:o?22:15,lineHeight:1,flexShrink:0},children:l.icon}),b&&e.jsx("span",{style:{fontSize:10,maxWidth:o?64:void 0,textAlign:o?"center":"left",lineHeight:1.2,whiteSpace:o?"normal":"nowrap"},children:b}),l.count!==void 0&&e.jsx("span",{style:{position:"absolute",top:2,right:2,minWidth:14,height:14,background:t.danger,color:"#fff",borderRadius:7,fontSize:9,fontWeight:700,display:"flex",alignItems:"center",justifyContent:"center",padding:"0 2px",pointerEvents:"none"},children:l.count})]},c)},y=(l,c)=>{var b;return e.jsx("div",{style:{display:"flex",flexDirection:l.direction==="col"?"column":"row",alignItems:l.direction==="col"?"flex-start":"center",gap:2},children:(b=l.items)==null?void 0:b.map((o,g)=>o.type==="block"?y(o,`${c}-${g}`):d(o,`${c}-${g}`))},c)},m=(l,c)=>{var o;const b=l.title||l.label;return e.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"stretch",borderRight:`1px solid ${t.border}`,padding:"4px 6px 0",minWidth:40},children:[e.jsx("div",{style:{display:"flex",flexDirection:l.direction==="col"?"column":"row",alignItems:l.direction==="col"?"stretch":"center",gap:2,flex:1},children:(o=l.items)==null?void 0:o.map((g,v)=>g.type==="block"?y(g,v):d(g,v))}),b&&e.jsx("div",{style:{fontSize:10,color:t.textMut,textAlign:"center",padding:"3px 0 4px",marginTop:2,borderTop:`1px solid ${t.border}`},children:b})]},c)},n=(l,c)=>l.type==="block"?m(l,c):d(l,c);return e.jsx("div",{className:"dhx",style:{display:"flex",alignItems:"stretch",background:t.surface,borderBottom:`1px solid ${t.border}`,overflowX:"auto",gap:0,minHeight:72,...p},children:r.map(n)})}function Te({count:r}){return e.jsx("span",{style:{position:"absolute",top:3,right:3,minWidth:16,height:16,background:t.danger,color:"#fff",borderRadius:8,fontSize:10,fontWeight:700,display:"flex",alignItems:"center",justifyContent:"center",padding:"0 3px",lineHeight:1,pointerEvents:"none"},children:r})}function ct({logo:r,items:s=[],vertical:p=!1,onAction:i,style:x}){const[a,f]=u.useState(null),[d,y]=u.useState(()=>{const c={};return s.forEach(b=>{b.id&&b.twoState&&b.active&&(c[b.id]=!0)}),c}),m=u.useRef(null);u.useEffect(V,[]),te(m,u.useCallback(()=>f(null),[]));const n=(c,b)=>{var o,g;if(!c.disabled){if(c.twoState&&c.id&&y(v=>({...v,[c.id]:!v[c.id]})),(o=c.items)!=null&&o.length){f(v=>v===b?null:b);return}(g=c.onClick)==null||g.call(c,c.id||""),i==null||i(c.id||"")}},l=(c,b)=>{var $;if(c.hidden)return null;if(c.type==="separator")return e.jsx("div",{style:{[p?"height":"width"]:1,background:t.border,margin:p?"4px 8px":"0 6px",alignSelf:"stretch"}},b);if(c.type==="spacer")return e.jsx("div",{style:{flex:1}},b);if(c.type==="input")return e.jsxs("div",{style:{position:"relative",display:"flex",alignItems:"center",margin:"0 4px"},children:[c.icon&&e.jsx("span",{style:{position:"absolute",left:8,color:t.textMut,fontSize:15,pointerEvents:"none",zIndex:1},children:c.icon}),e.jsx("input",{className:"dhx dhx-input",style:{width:c.width||200,height:28,paddingLeft:c.icon?30:void 0},placeholder:c.placeholder,onChange:D=>{var I;return(I=c.onChange)==null?void 0:I.call(c,D.target.value)}})]},b);if(c.type==="imageButton")return e.jsxs("button",{title:c.tooltip,disabled:c.disabled,style:{position:"relative",width:36,height:36,padding:2,border:"none",borderRadius:"50%",overflow:"hidden",cursor:c.disabled?"not-allowed":"pointer",background:"transparent",flexShrink:0},onClick:()=>n(c,b),children:[c.src&&e.jsx("img",{src:c.src,alt:c.value||"",style:{width:"100%",height:"100%",objectFit:"cover",borderRadius:"50%"}}),c.count!==void 0&&e.jsx(Te,{count:c.count})]},b);const o=!!(c.twoState&&c.id&&d[c.id]),g=!!(($=c.items)!=null&&$.length),v={position:"relative",height:p?40:36,gap:6,background:o?t.primaryLt:"transparent",color:o?t.primary:c.disabled?t.textMut:t.text,opacity:c.disabled?.55:1,cursor:c.disabled?"not-allowed":"pointer",...p?{width:"100%",justifyContent:"flex-start",padding:"0 16px",borderRadius:0}:{}};return e.jsxs("div",{style:{position:"relative"},children:[e.jsxs("button",{className:"dhx dhx-btn dhx-btn-ghost",title:c.tooltip,disabled:c.disabled,style:v,onClick:()=>n(c,b),children:[c.icon&&e.jsx("span",{style:{fontSize:16,flexShrink:0},children:c.icon}),c.value&&e.jsx("span",{style:{fontSize:13},children:c.value}),g&&e.jsx("span",{style:{fontSize:9,opacity:.55,marginLeft:2},children:"▼"}),c.count!==void 0&&e.jsx(Te,{count:c.count})]}),g&&a===b&&e.jsx(ie,{items:c.items,onSelect:()=>f(null),style:p?{left:"100%",top:0}:{top:"100%"}})]},b)};return e.jsxs("nav",{ref:m,className:"dhx",style:{display:"flex",flexDirection:p?"column":"row",alignItems:p?"stretch":"center",background:t.surface,borderBottom:p?"none":`1px solid ${t.border}`,borderRight:p?`1px solid ${t.border}`:"none",padding:p?"8px 0":"0 12px",minHeight:p?void 0:48,gap:2,...x},children:[r&&e.jsx("div",{style:{color:t.text,fontWeight:800,fontSize:16,padding:p?"8px 16px 12px":"0 12px 0 4px",borderBottom:p?`1px solid ${t.border}`:"none",borderRight:p?"none":`1px solid ${t.border}`,marginRight:p?0:8,marginBottom:p?4:0,flexShrink:0},children:r}),s.map(l)]})}B.Button=We,B.Calendar=qe,B.Chart=Ve,B.Colorpicker=Ue,B.Combobox=he,B.ContextMenu=Be,B.DataView=nt,B.Form=at,B.Grid=Fe,B.Layout=ze,B.List=rt,B.Menu=Ae,B.MenuDropdown=ie,B.MessageContext=xe,B.MessageProvider=et,B.Navbar=ct,B.Pagination=it,B.Popup=Qe,B.Ribbon=dt,B.Sidebar=Pe,B.Slider=fe,B.Tabbar=Oe,B.Timepicker=$e,B.Toolbar=He,B.Tree=lt,B.Window=Ze,B.tokens=t,B.useClickOutside=te,B.useDrag=me,B.useMessage=tt,Object.defineProperty(B,Symbol.toStringTag,{value:"Module"})});
42
42
  //# sourceMappingURL=dhx-react-suite.umd.cjs.map