@object-ui/plugin-dashboard 3.0.3 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/.turbo/turbo-build.log +40 -7
  2. package/dist/index.js +3848 -2635
  3. package/dist/index.umd.cjs +5 -5
  4. package/dist/src/DashboardConfigPanel.d.ts +28 -0
  5. package/dist/src/DashboardConfigPanel.d.ts.map +1 -0
  6. package/dist/src/DashboardConfigPanel.stories.d.ts +14 -0
  7. package/dist/src/DashboardConfigPanel.stories.d.ts.map +1 -0
  8. package/dist/src/DashboardGridLayout.d.ts.map +1 -1
  9. package/dist/src/DashboardRenderer.d.ts +14 -0
  10. package/dist/src/DashboardRenderer.d.ts.map +1 -1
  11. package/dist/src/DashboardWithConfig.d.ts +32 -0
  12. package/dist/src/DashboardWithConfig.d.ts.map +1 -0
  13. package/dist/src/MetricCard.d.ts +8 -2
  14. package/dist/src/MetricCard.d.ts.map +1 -1
  15. package/dist/src/MetricWidget.d.ts +12 -3
  16. package/dist/src/MetricWidget.d.ts.map +1 -1
  17. package/dist/src/ObjectDataTable.d.ts +39 -0
  18. package/dist/src/ObjectDataTable.d.ts.map +1 -0
  19. package/dist/src/ObjectPivotTable.d.ts +29 -0
  20. package/dist/src/ObjectPivotTable.d.ts.map +1 -0
  21. package/dist/src/PivotTable.d.ts +14 -0
  22. package/dist/src/PivotTable.d.ts.map +1 -0
  23. package/dist/src/WidgetConfigPanel.d.ts +43 -0
  24. package/dist/src/WidgetConfigPanel.d.ts.map +1 -0
  25. package/dist/src/index.d.ts +13 -1
  26. package/dist/src/index.d.ts.map +1 -1
  27. package/dist/src/utils.d.ts +14 -0
  28. package/dist/src/utils.d.ts.map +1 -0
  29. package/package.json +7 -7
  30. package/src/DashboardConfigPanel.stories.tsx +164 -0
  31. package/src/DashboardConfigPanel.tsx +158 -0
  32. package/src/DashboardGridLayout.tsx +101 -3
  33. package/src/DashboardRenderer.tsx +269 -28
  34. package/src/DashboardWithConfig.tsx +211 -0
  35. package/src/MetricCard.tsx +11 -4
  36. package/src/MetricWidget.tsx +18 -11
  37. package/src/ObjectDataTable.tsx +191 -0
  38. package/src/ObjectPivotTable.tsx +160 -0
  39. package/src/PivotTable.tsx +262 -0
  40. package/src/WidgetConfigPanel.tsx +540 -0
  41. package/src/__tests__/DashboardConfigPanel.test.tsx +206 -0
  42. package/src/__tests__/DashboardRenderer.designMode.test.tsx +386 -0
  43. package/src/__tests__/DashboardRenderer.header.test.tsx +114 -0
  44. package/src/__tests__/DashboardRenderer.mobile.test.tsx +214 -0
  45. package/src/__tests__/DashboardRenderer.widgetData.test.tsx +1022 -0
  46. package/src/__tests__/DashboardWithConfig.test.tsx +276 -0
  47. package/src/__tests__/MetricCard.test.tsx +23 -0
  48. package/src/__tests__/ObjectDataTable.test.tsx +122 -0
  49. package/src/__tests__/ObjectPivotTable.test.tsx +192 -0
  50. package/src/__tests__/PivotTable.test.tsx +162 -0
  51. package/src/__tests__/WidgetConfigPanel.test.tsx +492 -0
  52. package/src/__tests__/ensureWidgetIds.test.tsx +103 -0
  53. package/src/index.tsx +107 -1
  54. package/src/utils.ts +17 -0
@@ -1,9 +1,9 @@
1
- (function(xe,Ye){typeof exports=="object"&&typeof module<"u"?Ye(exports,require("@object-ui/core"),require("react"),require("@object-ui/react"),require("@object-ui/components"),require("lucide-react"),require("react-dom"),require("clsx")):typeof define=="function"&&define.amd?define(["exports","@object-ui/core","react","@object-ui/react","@object-ui/components","lucide-react","react-dom","clsx"],Ye):(xe=typeof globalThis<"u"?globalThis:xe||self,Ye(xe.ObjectUIPluginDashboard={},xe.ObjectUICore,xe.React,xe.ObjectUIReact,xe.ObjectUIComponents,xe.LucideIcons,xe.ReactDOM,xe.clsx))})(this,(function(xe,Ye,C,rt,V,Re,Er,Gt){"use strict";function Cr(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const ke=Cr(C),Pr=Cr(Re);var St={exports:{}},ct={};var Or;function Nn(){if(Or)return ct;Or=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function r(n,o,i){var l=null;if(i!==void 0&&(l=""+i),o.key!==void 0&&(l=""+o.key),"key"in o){i={};for(var p in o)p!=="key"&&(i[p]=o[p])}else i=o;return o=i.ref,{$$typeof:e,type:n,key:l,ref:o!==void 0?o:null,props:i}}return ct.Fragment=t,ct.jsx=r,ct.jsxs=r,ct}var ft={};var Rr;function An(){return Rr||(Rr=1,process.env.NODE_ENV!=="production"&&(function(){function e(d){if(d==null)return null;if(typeof d=="function")return d.$$typeof===W?null:d.displayName||d.name||null;if(typeof d=="string")return d;switch(d){case a:return"Fragment";case g:return"Profiler";case s:return"StrictMode";case w:return"Suspense";case f:return"SuspenseList";case q:return"Activity"}if(typeof d=="object")switch(typeof d.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),d.$$typeof){case v:return"Portal";case E:return d.displayName||"Context";case b:return(d._context.displayName||"Context")+".Consumer";case c:var j=d.render;return d=d.displayName,d||(d=j.displayName||j.name||"",d=d!==""?"ForwardRef("+d+")":"ForwardRef"),d;case y:return j=d.displayName||null,j!==null?j:e(d.type)||"Memo";case R:j=d._payload,d=d._init;try{return e(d(j))}catch{}}return null}function t(d){return""+d}function r(d){try{t(d);var j=!1}catch{j=!0}if(j){j=console;var k=j.error,z=typeof Symbol=="function"&&Symbol.toStringTag&&d[Symbol.toStringTag]||d.constructor.name||"Object";return k.call(j,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",z),t(d)}}function n(d){if(d===a)return"<>";if(typeof d=="object"&&d!==null&&d.$$typeof===R)return"<...>";try{var j=e(d);return j?"<"+j+">":"<...>"}catch{return"<...>"}}function o(){var d=J.A;return d===null?null:d.getOwner()}function i(){return Error("react-stack-top-frame")}function l(d){if(A.call(d,"key")){var j=Object.getOwnPropertyDescriptor(d,"key").get;if(j&&j.isReactWarning)return!1}return d.key!==void 0}function p(d,j){function k(){U||(U=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",j))}k.isReactWarning=!0,Object.defineProperty(d,"key",{get:k,configurable:!0})}function u(){var d=e(this.type);return K[d]||(K[d]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),d=this.props.ref,d!==void 0?d:null}function x(d,j,k,z,X,I){var M=k.ref;return d={$$typeof:D,type:d,key:j,props:k,_owner:z},(M!==void 0?M:null)!==null?Object.defineProperty(d,"ref",{enumerable:!1,get:u}):Object.defineProperty(d,"ref",{enumerable:!1,value:null}),d._store={},Object.defineProperty(d._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(d,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(d,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:X}),Object.defineProperty(d,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:I}),Object.freeze&&(Object.freeze(d.props),Object.freeze(d)),d}function m(d,j,k,z,X,I){var M=j.children;if(M!==void 0)if(z)if(Y(M)){for(z=0;z<M.length;z++)h(M[z]);Object.freeze&&Object.freeze(M)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else h(M);if(A.call(j,"key")){M=e(d);var $=Object.keys(j).filter(function(H){return H!=="key"});z=0<$.length?"{key: someKey, "+$.join(": ..., ")+": ...}":"{key: someKey}",O[M+z]||($=0<$.length?"{"+$.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
1
+ (function(de,_e){typeof exports=="object"&&typeof module<"u"?_e(exports,require("@object-ui/core"),require("react"),require("@object-ui/react"),require("@object-ui/components"),require("lucide-react"),require("react-dom"),require("clsx")):typeof define=="function"&&define.amd?define(["exports","@object-ui/core","react","@object-ui/react","@object-ui/components","lucide-react","react-dom","clsx"],_e):(de=typeof globalThis<"u"?globalThis:de||self,_e(de.ObjectUIPluginDashboard={},de.ObjectUICore,de.React,de.ObjectUIReact,de.ObjectUIComponents,de.LucideIcons,de.ReactDOM,de.clsx))})(this,(function(de,_e,C,ze,W,je,Ar,er){"use strict";function zr(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const De=zr(C),Lr=zr(je);var Ct={exports:{}},ft={};var Wr;function ea(){if(Wr)return ft;Wr=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function r(n,a,s){var o=null;if(s!==void 0&&(o=""+s),a.key!==void 0&&(o=""+a.key),"key"in a){s={};for(var f in a)f!=="key"&&(s[f]=a[f])}else s=a;return a=s.ref,{$$typeof:e,type:n,key:o,ref:a!==void 0?a:null,props:s}}return ft.Fragment=t,ft.jsx=r,ft.jsxs=r,ft}var dt={};var Ir;function ta(){return Ir||(Ir=1,process.env.NODE_ENV!=="production"&&(function(){function e(y){if(y==null)return null;if(typeof y=="function")return y.$$typeof===P?null:y.displayName||y.name||null;if(typeof y=="string")return y;switch(y){case i:return"Fragment";case b:return"Profiler";case l:return"StrictMode";case w:return"Suspense";case d:return"SuspenseList";case F:return"Activity"}if(typeof y=="object")switch(typeof y.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),y.$$typeof){case x:return"Portal";case E:return y.displayName||"Context";case S:return(y._context.displayName||"Context")+".Consumer";case c:var _=y.render;return y=y.displayName,y||(y=_.displayName||_.name||"",y=y!==""?"ForwardRef("+y+")":"ForwardRef"),y;case m:return _=y.displayName||null,_!==null?_:e(y.type)||"Memo";case D:_=y._payload,y=y._init;try{return e(y(_))}catch{}}return null}function t(y){return""+y}function r(y){try{t(y);var _=!1}catch{_=!0}if(_){_=console;var I=_.error,k=typeof Symbol=="function"&&Symbol.toStringTag&&y[Symbol.toStringTag]||y.constructor.name||"Object";return I.call(_,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",k),t(y)}}function n(y){if(y===i)return"<>";if(typeof y=="object"&&y!==null&&y.$$typeof===D)return"<...>";try{var _=e(y);return _?"<"+_+">":"<...>"}catch{return"<...>"}}function a(){var y=q.A;return y===null?null:y.getOwner()}function s(){return Error("react-stack-top-frame")}function o(y){if(z.call(y,"key")){var _=Object.getOwnPropertyDescriptor(y,"key").get;if(_&&_.isReactWarning)return!1}return y.key!==void 0}function f(y,_){function I(){U||(U=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",_))}I.isReactWarning=!0,Object.defineProperty(y,"key",{get:I,configurable:!0})}function u(){var y=e(this.type);return J[y]||(J[y]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),y=this.props.ref,y!==void 0?y:null}function v(y,_,I,k,Y,M){var A=I.ref;return y={$$typeof:R,type:y,key:_,props:I,_owner:k},(A!==void 0?A:null)!==null?Object.defineProperty(y,"ref",{enumerable:!1,get:u}):Object.defineProperty(y,"ref",{enumerable:!1,value:null}),y._store={},Object.defineProperty(y._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(y,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(y,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:Y}),Object.defineProperty(y,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:M}),Object.freeze&&(Object.freeze(y.props),Object.freeze(y)),y}function g(y,_,I,k,Y,M){var A=_.children;if(A!==void 0)if(k)if(L(A)){for(k=0;k<A.length;k++)h(A[k]);Object.freeze&&Object.freeze(A)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else h(A);if(z.call(_,"key")){A=e(y);var H=Object.keys(_).filter(function(B){return B!=="key"});k=0<H.length?"{key: someKey, "+H.join(": ..., ")+": ...}":"{key: someKey}",T[A+k]||(H=0<H.length?"{"+H.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
2
2
  let props = %s;
3
3
  <%s {...props} />
4
4
  React keys must be passed directly to JSX without using spread:
5
5
  let props = %s;
6
- <%s key={someKey} {...props} />`,z,M,$,M),O[M+z]=!0)}if(M=null,k!==void 0&&(r(k),M=""+k),l(j)&&(r(j.key),M=""+j.key),"key"in j){k={};for(var N in j)N!=="key"&&(k[N]=j[N])}else k=j;return M&&p(k,typeof d=="function"?d.displayName||d.name||"Unknown":d),x(d,M,k,o(),X,I)}function h(d){S(d)?d._store&&(d._store.validated=1):typeof d=="object"&&d!==null&&d.$$typeof===R&&(d._payload.status==="fulfilled"?S(d._payload.value)&&d._payload.value._store&&(d._payload.value._store.validated=1):d._store&&(d._store.validated=1))}function S(d){return typeof d=="object"&&d!==null&&d.$$typeof===D}var P=C,D=Symbol.for("react.transitional.element"),v=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),s=Symbol.for("react.strict_mode"),g=Symbol.for("react.profiler"),b=Symbol.for("react.consumer"),E=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),w=Symbol.for("react.suspense"),f=Symbol.for("react.suspense_list"),y=Symbol.for("react.memo"),R=Symbol.for("react.lazy"),q=Symbol.for("react.activity"),W=Symbol.for("react.client.reference"),J=P.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,A=Object.prototype.hasOwnProperty,Y=Array.isArray,Z=console.createTask?console.createTask:function(){return null};P={react_stack_bottom_frame:function(d){return d()}};var U,K={},le=P.react_stack_bottom_frame.bind(P,i)(),me=Z(n(i)),O={};ft.Fragment=a,ft.jsx=function(d,j,k){var z=1e4>J.recentlyCreatedOwnerStacks++;return m(d,j,k,!1,z?Error("react-stack-top-frame"):le,z?Z(n(d)):me)},ft.jsxs=function(d,j,k){var z=1e4>J.recentlyCreatedOwnerStacks++;return m(d,j,k,!0,z?Error("react-stack-top-frame"):le,z?Z(n(d)):me)}})()),ft}var Dr;function In(){return Dr||(Dr=1,process.env.NODE_ENV==="production"?St.exports=Nn():St.exports=An()),St.exports}var T=In();const Ln=["hsl(var(--chart-1))","hsl(var(--chart-2))","hsl(var(--chart-3))","hsl(var(--chart-4))","hsl(var(--chart-5))"],Vt=C.forwardRef(({schema:e,className:t,dataSource:r,onRefresh:n,...o},i)=>{const l=e.columns||4,p=e.gap||4,[u,x]=C.useState(!1),[m,h]=C.useState(!1),S=C.useRef(null);C.useEffect(()=>{const a=()=>h(window.innerWidth<640);return a(),window.addEventListener("resize",a),()=>window.removeEventListener("resize",a)},[]);const P=C.useCallback(()=>{n&&(x(!0),n(),setTimeout(()=>x(!1),600))},[n]);C.useEffect(()=>{if(!(!e.refreshInterval||e.refreshInterval<=0||!n))return S.current=setInterval(P,e.refreshInterval*1e3),()=>{S.current&&clearInterval(S.current)}},[e.refreshInterval,n,P]);const D=(a,s)=>{const b=(()=>{if(a.component)return a.component;const w=a.type,f=a.options||{};if(w==="bar"||w==="line"||w==="area"||w==="pie"||w==="donut"){const y=a.data||f.data,R=Array.isArray(y)?y:y?.items||[],q=f.xField||"name",W=f.yField||"value";return{type:"chart",chartType:w,data:R,xAxisKey:q,series:[{dataKey:W}],colors:Ln,className:"h-[200px] sm:h-[250px] md:h-[300px]"}}if(w==="table"){const y=a.data||f.data;return{type:"data-table",...f,data:y?.items||[],searchable:!1,pagination:!1,className:"border-0"}}return{...a,...f}})(),E=a.type==="metric",c=a.id||a.title||`widget-${s}`;return E?T.jsx("div",{className:V.cn("h-full w-full",m&&"w-[85vw] shrink-0 snap-center"),style:!m&&a.layout?{gridColumn:`span ${a.layout.w}`,gridRow:`span ${a.layout.h}`}:void 0,children:T.jsx(rt.SchemaRenderer,{schema:b,className:"h-full w-full"})},c):T.jsxs(V.Card,{className:V.cn("overflow-hidden border-border/50 shadow-sm transition-all hover:shadow-md","bg-card/50 backdrop-blur-sm",m&&"w-[85vw] shrink-0 snap-center"),style:!m&&a.layout?{gridColumn:`span ${a.layout.w}`,gridRow:`span ${a.layout.h}`}:void 0,children:[a.title&&T.jsx(V.CardHeader,{className:"pb-2 border-b border-border/40 bg-muted/20 px-3 sm:px-6",children:T.jsx(V.CardTitle,{className:"text-sm sm:text-base font-medium tracking-tight truncate",title:a.title,children:a.title})}),T.jsx(V.CardContent,{className:"p-0",children:T.jsx("div",{className:V.cn("h-full w-full","p-3 sm:p-4 md:p-6"),children:T.jsx(rt.SchemaRenderer,{schema:b})})})]},c)},v=n&&T.jsx("div",{className:V.cn(m?"flex justify-end mb-2":"col-span-full flex justify-end mb-2"),children:T.jsxs(V.Button,{variant:"outline",size:"sm",onClick:P,disabled:u,"aria-label":"Refresh dashboard",children:[T.jsx(Re.RefreshCw,{className:V.cn("h-4 w-4 mr-2",u&&"animate-spin")}),u?"Refreshing…":"Refresh All"]})});return m?T.jsxs("div",{ref:i,className:V.cn("flex flex-col",t),...o,children:[v,T.jsx("div",{className:"flex overflow-x-auto snap-x snap-mandatory gap-3 pb-4 [-webkit-overflow-scrolling:touch]",style:{scrollPaddingLeft:"0.75rem"},children:e.widgets?.map((a,s)=>D(a,s))})]}):T.jsxs("div",{ref:i,className:V.cn("grid auto-rows-min","grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4",t),style:{...l>4&&{gridTemplateColumns:`repeat(${l}, minmax(0, 1fr))`},gap:`${p*.25}rem`},...o,children:[v,e.widgets?.map((a,s)=>D(a,s))]})});function nt(e){const{margin:t,containerPadding:r,containerWidth:n,cols:o}=e;return(n-t[0]*(o-1)-r[0]*2)/o}function ot(e,t,r){return Number.isFinite(e)?Math.round(t*e+Math.max(0,e-1)*r):e}function dt(e,t,r,n,o,i,l){const{margin:p,containerPadding:u,rowHeight:x}=e,m=nt(e);let h,S,P,D;if(l?(h=Math.round(l.width),S=Math.round(l.height)):(h=ot(n,m,p[0]),S=ot(o,x,p[1])),i?(P=Math.round(i.top),D=Math.round(i.left)):l?(P=Math.round(l.top),D=Math.round(l.left)):(P=Math.round((x+p[1])*r+u[1]),D=Math.round((m+p[0])*t+u[0])),!i&&!l){if(Number.isFinite(n)){const a=Math.round((m+p[0])*(t+n)+u[0])-D-h;a!==p[0]&&(h+=a-p[0])}if(Number.isFinite(o)){const a=Math.round((x+p[1])*(r+o)+u[1])-P-S;a!==p[1]&&(S+=a-p[1])}}return{top:P,left:D,width:h,height:S}}function Wn(e,t,r,n,o){const{margin:i,containerPadding:l,cols:p,rowHeight:u,maxRows:x}=e,m=nt(e);let h=Math.round((r-l[0])/(m+i[0])),S=Math.round((t-l[1])/(u+i[1]));return h=Ct(h,0,p-n),S=Ct(S,0,x-o),{x:h,y:S}}function Et(e,t,r){const{margin:n,containerPadding:o,rowHeight:i}=e,l=nt(e),p=Math.round((r-o[0])/(l+n[0])),u=Math.round((t-o[1])/(i+n[1]));return{x:p,y:u}}function qn(e,t,r){const{margin:n,rowHeight:o}=e,i=nt(e),l=Math.max(1,Math.round((t+n[0])/(i+n[0]))),p=Math.max(1,Math.round((r+n[1])/(o+n[1])));return{w:l,h:p}}function Ct(e,t,r){return Math.max(Math.min(e,r),t)}function Jt(e,t){return!(e.i===t.i||e.x+e.w<=t.x||e.x>=t.x+t.w||e.y+e.h<=t.y||e.y>=t.y+t.h)}function Ze(e,t){for(let r=0;r<e.length;r++){const n=e[r];if(n!==void 0&&Jt(n,t))return n}}function _r(e,t){return e.filter(r=>Jt(r,t))}function $n(e,t){return t==="horizontal"?jr(e):t==="vertical"||t==="wrap"?Kt(e):[...e]}function Kt(e){return[...e].sort((t,r)=>t.y!==r.y?t.y-r.y:t.x-r.x)}function jr(e){return[...e].sort((t,r)=>t.x!==r.x?t.x-r.x:t.y-r.y)}function Pt(e){let t=0;for(let r=0;r<e.length;r++){const n=e[r];if(n!==void 0){const o=n.y+n.h;o>t&&(t=o)}}return t}function Qe(e,t){for(let r=0;r<e.length;r++){const n=e[r];if(n!==void 0&&n.i===t)return n}}function Ot(e){return e.filter(t=>t.static===!0)}function et(e){return{i:e.i,x:e.x,y:e.y,w:e.w,h:e.h,minW:e.minW,maxW:e.maxW,minH:e.minH,maxH:e.maxH,moved:!!e.moved,static:!!e.static,isDraggable:e.isDraggable,isResizable:e.isResizable,resizeHandles:e.resizeHandles,constraints:e.constraints,isBounded:e.isBounded}}function Be(e){const t=new Array(e.length);for(let r=0;r<e.length;r++){const n=e[r];n!==void 0&&(t[r]=et(n))}return t}function Hn(e,t){const r=new Array(e.length);for(let n=0;n<e.length;n++){const o=e[n];o!==void 0&&(t.i===o.i?r[n]=t:r[n]=o)}return r}function Yn(e,t,r){let n=Qe(e,t);return n?(n=r(et(n)),[Hn(e,n),n]):[[...e],null]}function Zt(e,t){const r=Ot(e);for(let n=0;n<e.length;n++){const o=e[n];if(o!==void 0)if(o.x+o.w>t.cols&&(o.x=t.cols-o.w),o.x<0&&(o.x=0,o.w=t.cols),!o.static)r.push(o);else for(;Ze(r,o);)o.y++}return e}function tt(e,t,r,n,o,i,l,p,u){if(t.static&&t.isDraggable!==!0)return[...e];if(t.y===n&&t.x===r)return[...e];const x=t.x,m=t.y;typeof r=="number"&&(t.x=r),typeof n=="number"&&(t.y=n),t.moved=!0;let h=$n(e,l);(l==="vertical"&&typeof n=="number"?m>=n:l==="horizontal"&&typeof r=="number"&&x>=r)&&(h=h.reverse());const P=_r(h,t),D=P.length>0;if(D&&u)return Be(e);if(D&&i)return t.x=x,t.y=m,t.moved=!1,e;let v=[...e];for(let a=0;a<P.length;a++){const s=P[a];s!==void 0&&(s.moved||(s.static?v=Tr(v,s,t,o,l):v=Tr(v,t,s,o,l)))}return v}function Tr(e,t,r,n,o,i){const l=o==="horizontal",p=o==="vertical",u=t.static;if(n){n=!1;const h={x:l?Math.max(t.x-r.w,0):r.x,y:p?Math.max(t.y-r.h,0):r.y,w:r.w,h:r.h,i:"-1"},S=Ze(e,h),P=S!==void 0&&S.y+S.h>t.y,D=S!==void 0&&t.x+t.w>S.x;if(!S)return tt(e,r,l?h.x:void 0,p?h.y:void 0,n,u,o);if(P&&p)return tt(e,r,void 0,r.y+1,n,u,o);if(P&&o===null)return t.y=r.y,r.y=r.y+r.h,[...e];if(D&&l)return tt(e,t,r.x,void 0,n,u,o)}const x=l?r.x+1:void 0,m=p?r.y+1:void 0;return x===void 0&&m===void 0?[...e]:tt(e,r,x,m,n,u,o)}function at(e,t,r){return Math.max(t,Math.min(r,e))}var Bn={name:"gridBounds",constrainPosition(e,t,r,{cols:n,maxRows:o}){return{x:at(t,0,Math.max(0,n-e.w)),y:at(r,0,Math.max(0,o-e.h))}},constrainSize(e,t,r,n,{cols:o,maxRows:i}){const l=n==="w"||n==="nw"||n==="sw"?e.x+e.w:o-e.x,p=n==="n"||n==="nw"||n==="ne"?e.y+e.h:i-e.y;return{w:at(t,1,Math.max(1,l)),h:at(r,1,Math.max(1,p))}}},Fn={name:"minMaxSize",constrainSize(e,t,r){return{w:at(t,e.minW??1,e.maxW??1/0),h:at(r,e.minH??1,e.maxH??1/0)}}},Mr=[Bn,Fn];function Rt(e,t,r,n,o){let i={x:r,y:n};for(const l of e)l.constrainPosition&&(i=l.constrainPosition(t,i.x,i.y,o));if(t.constraints)for(const l of t.constraints)l.constrainPosition&&(i=l.constrainPosition(t,i.x,i.y,o));return i}function Xn(e,t,r,n,o,i){let l={w:r,h:n};for(const p of e)p.constrainSize&&(l=p.constrainSize(t,l.w,l.h,o,i));if(t.constraints)for(const p of t.constraints)p.constrainSize&&(l=p.constrainSize(t,l.w,l.h,o,i));return l}function zr({top:e,left:t,width:r,height:n}){const o=`translate(${t}px,${e}px)`;return{transform:o,WebkitTransform:o,MozTransform:o,msTransform:o,OTransform:o,width:`${r}px`,height:`${n}px`,position:"absolute"}}function Un({top:e,left:t,width:r,height:n}){return{top:`${e}px`,left:`${t}px`,width:`${r}px`,height:`${n}px`,position:"absolute"}}function kr(e){return e*100+"%"}function Gn(e,t,r,n){return e+r>n?t:r}function Nr(e,t,r){return e<0?t:r}function Vn(e){return Math.max(0,e)}function Dt(e){return Math.max(0,e)}var Qt=(e,t,r)=>{const{left:n,height:o,width:i}=t,l=e.top-(o-e.height);return{left:n,width:i,height:Nr(l,e.height,o),top:Dt(l)}},er=(e,t,r)=>{const{top:n,left:o,height:i,width:l}=t;return{top:n,height:i,width:Gn(e.left,e.width,l,r),left:Vn(o)}},tr=(e,t,r)=>{const{top:n,height:o,width:i}=t,l=e.left+e.width-i;return l<0?{height:o,width:e.left+e.width,top:Dt(n),left:0}:{height:o,width:i,top:Dt(n),left:l}},rr=(e,t,r)=>{const{top:n,left:o,height:i,width:l}=t;return{width:l,left:o,height:Nr(n,e.height,i),top:Dt(n)}},Jn=(e,t,r)=>Qt(e,er(e,t,r)),Kn=(e,t,r)=>Qt(e,tr(e,t)),Zn=(e,t,r)=>rr(e,er(e,t,r)),Qn=(e,t,r)=>rr(e,tr(e,t)),eo={n:Qt,ne:Jn,e:er,se:Zn,s:rr,sw:Qn,w:tr,nw:Kn};function to(e,t,r,n){const o=eo[e];return o?o(t,{...t,...r},n):r}var ro={type:"transform",scale:1,calcStyle(e){return zr(e)}},no=ro,oo={cols:12,rowHeight:150,margin:[10,10],containerPadding:null,maxRows:1/0},ao={enabled:!0,bounded:!1,threshold:3},so={enabled:!0,handles:["se"]},io={enabled:!1,defaultItem:{w:1,h:1}};function nr(e,t,r,n,o){const i=n==="x"?"w":"h";t[n]+=1;const l=e.findIndex(u=>u.i===t.i),p=o??Ot(e).length>0;for(let u=l+1;u<e.length;u++){const x=e[u];if(x!==void 0&&!x.static){if(!p&&x.y>t.y+t.h)break;Jt(t,x)&&nr(e,x,r+t[i],n,p)}}t[n]=r}function lo(e,t,r,n){for(t.x=Math.max(t.x,0),t.y=Math.max(t.y,0),t.y=Math.min(n,t.y);t.y>0&&!Ze(e,t);)t.y--;let o;for(;(o=Ze(e,t))!==void 0;)nr(r,t,o.y+o.h,"y");return t.y=Math.max(t.y,0),t}function uo(e,t,r,n){for(t.x=Math.max(t.x,0),t.y=Math.max(t.y,0);t.x>0&&!Ze(e,t);)t.x--;let o;for(;(o=Ze(e,t))!==void 0;)if(nr(n,t,o.x+o.w,"x"),t.x+t.w>r)for(t.x=r-t.w,t.y++;t.x>0&&!Ze(e,t);)t.x--;return t.x=Math.max(t.x,0),t}var Ar={type:"vertical",allowOverlap:!1,compact(e,t){const r=Ot(e);let n=Pt(r);const o=Kt(e),i=new Array(e.length);for(let l=0;l<o.length;l++){const p=o[l];if(p===void 0)continue;let u=et(p);u.static||(u=lo(r,u,o,n),n=Math.max(n,u.y+u.h),r.push(u));const x=e.indexOf(p);i[x]=u,u.moved=!1}return i}},Ir={type:"horizontal",allowOverlap:!1,compact(e,t){const r=Ot(e),n=jr(e),o=new Array(e.length);for(let i=0;i<n.length;i++){const l=n[i];if(l===void 0)continue;let p=et(l);p.static||(p=uo(r,p,t,n),r.push(p));const u=e.indexOf(l);o[u]=p,p.moved=!1}return o}},Lr={type:null,allowOverlap:!1,compact(e,t){return Be(e)}},co={...Ar,allowOverlap:!0,compact(e,t){return Be(e)}},fo={...Ir,allowOverlap:!0,compact(e,t){return Be(e)}},po={...Lr,allowOverlap:!0};function or(e,t=!1,r=!1){let n;return t?e==="vertical"?n=co:e==="horizontal"?n=fo:n=po:e==="vertical"?n=Ar:e==="horizontal"?n=Ir:n=Lr,r?{...n,preventCollision:r}:n}function Wr(e){return Object.keys(e).sort((r,n)=>e[r]-e[n])}function qr(e,t){const r=Wr(e);let n=r[0];if(n===void 0)throw new Error("No breakpoints defined");for(let o=1;o<r.length;o++){const i=r[o];if(i===void 0)continue;const l=e[i];t>l&&(n=i)}return n}function $r(e,t){const r=t[e];if(r===void 0)throw new Error(`ResponsiveReactGridLayout: \`cols\` entry for breakpoint ${String(e)} is missing!`);return r}function ar(e,t,r,n,o,i){const l=e[r];if(l)return Be(l);let p=e[n];const u=Wr(t),x=u.slice(u.indexOf(r));for(let P=0;P<x.length;P++){const D=x[P];if(D===void 0)continue;const v=e[D];if(v){p=v;break}}const m=Be(p||[]),h=Zt(m,{cols:o});return(typeof i=="object"&&i!==null?i:or(i)).compact(h,o)}function _t(e,t){if(Array.isArray(e))return e;const r=e,n=r[t];if(n!==void 0)return n;const o=Object.keys(r);for(const i of o){const l=r[i];if(l!==void 0)return l}return[10,10]}function Hr(e){return function(r,n,o,i,l,p,u){return e(r,n,u)}}function jt(e){return function(r,n,o,i){if(!r||!n||typeof r!="object"||typeof n!="object")return e(r,n,o,i);var l=i.get(r),p=i.get(n);if(l&&p)return l===n&&p===r;i.set(r,n),i.set(n,r);var u=e(r,n,o,i);return i.delete(r),i.delete(n),u}}function Yr(e,t){var r={};for(var n in e)r[n]=e[n];for(var n in t)r[n]=t[n];return r}function Br(e){return e.constructor===Object||e.constructor==null}function Fr(e){return typeof e.then=="function"}function Tt(e,t){return e===t||e!==e&&t!==t}var ho="[object Arguments]",go="[object Boolean]",mo="[object Date]",yo="[object RegExp]",vo="[object Map]",bo="[object Number]",xo="[object Object]",wo="[object Set]",So="[object String]",Xr=Object.prototype.toString;function Mt(e){var t=e.areArraysEqual,r=e.areDatesEqual,n=e.areMapsEqual,o=e.areObjectsEqual,i=e.areRegExpsEqual,l=e.areSetsEqual,p=e.createIsNestedEqual,u=p(x);function x(m,h,S){if(m===h)return!0;if(!m||!h||typeof m!="object"||typeof h!="object")return m!==m&&h!==h;if(Br(m)&&Br(h))return o(m,h,u,S);var P=Array.isArray(m),D=Array.isArray(h);if(P||D)return P===D&&t(m,h,u,S);var v=Xr.call(m);return v!==Xr.call(h)?!1:v===mo?r(m,h,u,S):v===yo?i(m,h,u,S):v===vo?n(m,h,u,S):v===wo?l(m,h,u,S):v===xo||v===ho?Fr(m)||Fr(h)?!1:o(m,h,u,S):v===go||v===bo||v===So?Tt(m.valueOf(),h.valueOf()):!1}return x}function Ur(e,t,r,n){var o=e.length;if(t.length!==o)return!1;for(;o-- >0;)if(!r(e[o],t[o],o,o,e,t,n))return!1;return!0}var Eo=jt(Ur);function Gr(e,t){return Tt(e.valueOf(),t.valueOf())}function Vr(e,t,r,n){var o=e.size===t.size;if(!o)return!1;if(!e.size)return!0;var i={},l=0;return e.forEach(function(p,u){if(o){var x=!1,m=0;t.forEach(function(h,S){!x&&!i[m]&&(x=r(u,S,l,m,e,t,n)&&r(p,h,u,S,e,t,n))&&(i[m]=!0),m++}),l++,o=x}}),o}var Co=jt(Vr),Po="_owner",Oo=Object.prototype.hasOwnProperty;function Jr(e,t,r,n){var o=Object.keys(e),i=o.length;if(Object.keys(t).length!==i)return!1;for(var l;i-- >0;){if(l=o[i],l===Po){var p=!!e.$$typeof,u=!!t.$$typeof;if((p||u)&&p!==u)return!1}if(!Oo.call(t,l)||!r(e[l],t[l],l,l,e,t,n))return!1}return!0}var Ro=jt(Jr);function Kr(e,t){return e.source===t.source&&e.flags===t.flags}function Zr(e,t,r,n){var o=e.size===t.size;if(!o)return!1;if(!e.size)return!0;var i={};return e.forEach(function(l,p){if(o){var u=!1,x=0;t.forEach(function(m,h){!u&&!i[x]&&(u=r(l,m,p,h,e,t,n))&&(i[x]=!0),x++}),o=u}}),o}var Do=jt(Zr),Qr=Object.freeze({areArraysEqual:Ur,areDatesEqual:Gr,areMapsEqual:Vr,areObjectsEqual:Jr,areRegExpsEqual:Kr,areSetsEqual:Zr,createIsNestedEqual:Hr}),en=Object.freeze({areArraysEqual:Eo,areDatesEqual:Gr,areMapsEqual:Co,areObjectsEqual:Ro,areRegExpsEqual:Kr,areSetsEqual:Do,createIsNestedEqual:Hr}),_o=Mt(Qr);function qe(e,t){return _o(e,t,void 0)}Mt(Yr(Qr,{createIsNestedEqual:function(){return Tt}})),Mt(en),Mt(Yr(en,{createIsNestedEqual:function(){return Tt}}));function jo(e={}){const{measureBeforeMount:t=!1,initialWidth:r=1280}=e,[n,o]=C.useState(r),[i,l]=C.useState(!t),p=C.useRef(null),u=C.useRef(null),x=C.useCallback(()=>{const m=p.current;if(m){const h=m.offsetWidth;o(h),i||l(!0)}},[i]);return C.useEffect(()=>{const m=p.current;if(m)return x(),typeof ResizeObserver<"u"&&(u.current=new ResizeObserver(h=>{const S=h[0];if(S){const P=S.contentRect.width;o(P)}}),u.current.observe(m)),()=>{u.current&&(u.current.disconnect(),u.current=null)}},[x]),{width:n,mounted:i,containerRef:p,measureWidth:x}}var pt={exports:{}},sr={},zt={exports:{}},kt={exports:{}},ee={};var tn;function To(){if(tn)return ee;tn=1;var e=typeof Symbol=="function"&&Symbol.for,t=e?Symbol.for("react.element"):60103,r=e?Symbol.for("react.portal"):60106,n=e?Symbol.for("react.fragment"):60107,o=e?Symbol.for("react.strict_mode"):60108,i=e?Symbol.for("react.profiler"):60114,l=e?Symbol.for("react.provider"):60109,p=e?Symbol.for("react.context"):60110,u=e?Symbol.for("react.async_mode"):60111,x=e?Symbol.for("react.concurrent_mode"):60111,m=e?Symbol.for("react.forward_ref"):60112,h=e?Symbol.for("react.suspense"):60113,S=e?Symbol.for("react.suspense_list"):60120,P=e?Symbol.for("react.memo"):60115,D=e?Symbol.for("react.lazy"):60116,v=e?Symbol.for("react.block"):60121,a=e?Symbol.for("react.fundamental"):60117,s=e?Symbol.for("react.responder"):60118,g=e?Symbol.for("react.scope"):60119;function b(c){if(typeof c=="object"&&c!==null){var w=c.$$typeof;switch(w){case t:switch(c=c.type,c){case u:case x:case n:case i:case o:case h:return c;default:switch(c=c&&c.$$typeof,c){case p:case m:case D:case P:case l:return c;default:return w}}case r:return w}}}function E(c){return b(c)===x}return ee.AsyncMode=u,ee.ConcurrentMode=x,ee.ContextConsumer=p,ee.ContextProvider=l,ee.Element=t,ee.ForwardRef=m,ee.Fragment=n,ee.Lazy=D,ee.Memo=P,ee.Portal=r,ee.Profiler=i,ee.StrictMode=o,ee.Suspense=h,ee.isAsyncMode=function(c){return E(c)||b(c)===u},ee.isConcurrentMode=E,ee.isContextConsumer=function(c){return b(c)===p},ee.isContextProvider=function(c){return b(c)===l},ee.isElement=function(c){return typeof c=="object"&&c!==null&&c.$$typeof===t},ee.isForwardRef=function(c){return b(c)===m},ee.isFragment=function(c){return b(c)===n},ee.isLazy=function(c){return b(c)===D},ee.isMemo=function(c){return b(c)===P},ee.isPortal=function(c){return b(c)===r},ee.isProfiler=function(c){return b(c)===i},ee.isStrictMode=function(c){return b(c)===o},ee.isSuspense=function(c){return b(c)===h},ee.isValidElementType=function(c){return typeof c=="string"||typeof c=="function"||c===n||c===x||c===i||c===o||c===h||c===S||typeof c=="object"&&c!==null&&(c.$$typeof===D||c.$$typeof===P||c.$$typeof===l||c.$$typeof===p||c.$$typeof===m||c.$$typeof===a||c.$$typeof===s||c.$$typeof===g||c.$$typeof===v)},ee.typeOf=b,ee}var te={};var rn;function Mo(){return rn||(rn=1,process.env.NODE_ENV!=="production"&&(function(){var e=typeof Symbol=="function"&&Symbol.for,t=e?Symbol.for("react.element"):60103,r=e?Symbol.for("react.portal"):60106,n=e?Symbol.for("react.fragment"):60107,o=e?Symbol.for("react.strict_mode"):60108,i=e?Symbol.for("react.profiler"):60114,l=e?Symbol.for("react.provider"):60109,p=e?Symbol.for("react.context"):60110,u=e?Symbol.for("react.async_mode"):60111,x=e?Symbol.for("react.concurrent_mode"):60111,m=e?Symbol.for("react.forward_ref"):60112,h=e?Symbol.for("react.suspense"):60113,S=e?Symbol.for("react.suspense_list"):60120,P=e?Symbol.for("react.memo"):60115,D=e?Symbol.for("react.lazy"):60116,v=e?Symbol.for("react.block"):60121,a=e?Symbol.for("react.fundamental"):60117,s=e?Symbol.for("react.responder"):60118,g=e?Symbol.for("react.scope"):60119;function b(_){return typeof _=="string"||typeof _=="function"||_===n||_===x||_===i||_===o||_===h||_===S||typeof _=="object"&&_!==null&&(_.$$typeof===D||_.$$typeof===P||_.$$typeof===l||_.$$typeof===p||_.$$typeof===m||_.$$typeof===a||_.$$typeof===s||_.$$typeof===g||_.$$typeof===v)}function E(_){if(typeof _=="object"&&_!==null){var ae=_.$$typeof;switch(ae){case t:var je=_.type;switch(je){case u:case x:case n:case i:case o:case h:return je;default:var De=je&&je.$$typeof;switch(De){case p:case m:case D:case P:case l:return De;default:return ae}}case r:return ae}}}var c=u,w=x,f=p,y=l,R=t,q=m,W=n,J=D,A=P,Y=r,Z=i,U=o,K=h,le=!1;function me(_){return le||(le=!0,console.warn("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.")),O(_)||E(_)===u}function O(_){return E(_)===x}function d(_){return E(_)===p}function j(_){return E(_)===l}function k(_){return typeof _=="object"&&_!==null&&_.$$typeof===t}function z(_){return E(_)===m}function X(_){return E(_)===n}function I(_){return E(_)===D}function M(_){return E(_)===P}function $(_){return E(_)===r}function N(_){return E(_)===i}function H(_){return E(_)===o}function F(_){return E(_)===h}te.AsyncMode=c,te.ConcurrentMode=w,te.ContextConsumer=f,te.ContextProvider=y,te.Element=R,te.ForwardRef=q,te.Fragment=W,te.Lazy=J,te.Memo=A,te.Portal=Y,te.Profiler=Z,te.StrictMode=U,te.Suspense=K,te.isAsyncMode=me,te.isConcurrentMode=O,te.isContextConsumer=d,te.isContextProvider=j,te.isElement=k,te.isForwardRef=z,te.isFragment=X,te.isLazy=I,te.isMemo=M,te.isPortal=$,te.isProfiler=N,te.isStrictMode=H,te.isSuspense=F,te.isValidElementType=b,te.typeOf=E})()),te}var nn;function on(){return nn||(nn=1,process.env.NODE_ENV==="production"?kt.exports=To():kt.exports=Mo()),kt.exports}var ir,an;function zo(){if(an)return ir;an=1;var e=Object.getOwnPropertySymbols,t=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function n(i){if(i==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(i)}function o(){try{if(!Object.assign)return!1;var i=new String("abc");if(i[5]="de",Object.getOwnPropertyNames(i)[0]==="5")return!1;for(var l={},p=0;p<10;p++)l["_"+String.fromCharCode(p)]=p;var u=Object.getOwnPropertyNames(l).map(function(m){return l[m]});if(u.join("")!=="0123456789")return!1;var x={};return"abcdefghijklmnopqrst".split("").forEach(function(m){x[m]=m}),Object.keys(Object.assign({},x)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}return ir=o()?Object.assign:function(i,l){for(var p,u=n(i),x,m=1;m<arguments.length;m++){p=Object(arguments[m]);for(var h in p)t.call(p,h)&&(u[h]=p[h]);if(e){x=e(p);for(var S=0;S<x.length;S++)r.call(p,x[S])&&(u[x[S]]=p[x[S]])}}return u},ir}var lr,sn;function ur(){if(sn)return lr;sn=1;var e="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return lr=e,lr}var cr,ln;function un(){return ln||(ln=1,cr=Function.call.bind(Object.prototype.hasOwnProperty)),cr}var fr,cn;function ko(){if(cn)return fr;cn=1;var e=function(){};if(process.env.NODE_ENV!=="production"){var t=ur(),r={},n=un();e=function(i){var l="Warning: "+i;typeof console<"u"&&console.error(l);try{throw new Error(l)}catch{}}}function o(i,l,p,u,x){if(process.env.NODE_ENV!=="production"){for(var m in i)if(n(i,m)){var h;try{if(typeof i[m]!="function"){var S=Error((u||"React class")+": "+p+" type `"+m+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof i[m]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw S.name="Invariant Violation",S}h=i[m](l,m,u,p,null,t)}catch(D){h=D}if(h&&!(h instanceof Error)&&e((u||"React class")+": type specification of "+p+" `"+m+"` is invalid; the type checker function must return `null` or an `Error` but returned a "+typeof h+". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."),h instanceof Error&&!(h.message in r)){r[h.message]=!0;var P=x?x():"";e("Failed "+p+" type: "+h.message+(P??""))}}}}return o.resetWarningCache=function(){process.env.NODE_ENV!=="production"&&(r={})},fr=o,fr}var dr,fn;function No(){if(fn)return dr;fn=1;var e=on(),t=zo(),r=ur(),n=un(),o=ko(),i=function(){};process.env.NODE_ENV!=="production"&&(i=function(p){var u="Warning: "+p;typeof console<"u"&&console.error(u);try{throw new Error(u)}catch{}});function l(){return null}return dr=function(p,u){var x=typeof Symbol=="function"&&Symbol.iterator,m="@@iterator";function h(O){var d=O&&(x&&O[x]||O[m]);if(typeof d=="function")return d}var S="<<anonymous>>",P={array:s("array"),bigint:s("bigint"),bool:s("boolean"),func:s("function"),number:s("number"),object:s("object"),string:s("string"),symbol:s("symbol"),any:g(),arrayOf:b,element:E(),elementType:c(),instanceOf:w,node:q(),objectOf:y,oneOf:f,oneOfType:R,shape:J,exact:A};function D(O,d){return O===d?O!==0||1/O===1/d:O!==O&&d!==d}function v(O,d){this.message=O,this.data=d&&typeof d=="object"?d:{},this.stack=""}v.prototype=Error.prototype;function a(O){if(process.env.NODE_ENV!=="production")var d={},j=0;function k(X,I,M,$,N,H,F){if($=$||S,H=H||M,F!==r){if(u){var _=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw _.name="Invariant Violation",_}else if(process.env.NODE_ENV!=="production"&&typeof console<"u"){var ae=$+":"+M;!d[ae]&&j<3&&(i("You are manually calling a React.PropTypes validation function for the `"+H+"` prop on `"+$+"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."),d[ae]=!0,j++)}}return I[M]==null?X?I[M]===null?new v("The "+N+" `"+H+"` is marked as required "+("in `"+$+"`, but its value is `null`.")):new v("The "+N+" `"+H+"` is marked as required in "+("`"+$+"`, but its value is `undefined`.")):null:O(I,M,$,N,H)}var z=k.bind(null,!1);return z.isRequired=k.bind(null,!0),z}function s(O){function d(j,k,z,X,I,M){var $=j[k],N=U($);if(N!==O){var H=K($);return new v("Invalid "+X+" `"+I+"` of type "+("`"+H+"` supplied to `"+z+"`, expected ")+("`"+O+"`."),{expectedType:O})}return null}return a(d)}function g(){return a(l)}function b(O){function d(j,k,z,X,I){if(typeof O!="function")return new v("Property `"+I+"` of component `"+z+"` has invalid PropType notation inside arrayOf.");var M=j[k];if(!Array.isArray(M)){var $=U(M);return new v("Invalid "+X+" `"+I+"` of type "+("`"+$+"` supplied to `"+z+"`, expected an array."))}for(var N=0;N<M.length;N++){var H=O(M,N,z,X,I+"["+N+"]",r);if(H instanceof Error)return H}return null}return a(d)}function E(){function O(d,j,k,z,X){var I=d[j];if(!p(I)){var M=U(I);return new v("Invalid "+z+" `"+X+"` of type "+("`"+M+"` supplied to `"+k+"`, expected a single ReactElement."))}return null}return a(O)}function c(){function O(d,j,k,z,X){var I=d[j];if(!e.isValidElementType(I)){var M=U(I);return new v("Invalid "+z+" `"+X+"` of type "+("`"+M+"` supplied to `"+k+"`, expected a single ReactElement type."))}return null}return a(O)}function w(O){function d(j,k,z,X,I){if(!(j[k]instanceof O)){var M=O.name||S,$=me(j[k]);return new v("Invalid "+X+" `"+I+"` of type "+("`"+$+"` supplied to `"+z+"`, expected ")+("instance of `"+M+"`."))}return null}return a(d)}function f(O){if(!Array.isArray(O))return process.env.NODE_ENV!=="production"&&(arguments.length>1?i("Invalid arguments supplied to oneOf, expected an array, got "+arguments.length+" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z])."):i("Invalid argument supplied to oneOf, expected an array.")),l;function d(j,k,z,X,I){for(var M=j[k],$=0;$<O.length;$++)if(D(M,O[$]))return null;var N=JSON.stringify(O,function(F,_){var ae=K(_);return ae==="symbol"?String(_):_});return new v("Invalid "+X+" `"+I+"` of value `"+String(M)+"` "+("supplied to `"+z+"`, expected one of "+N+"."))}return a(d)}function y(O){function d(j,k,z,X,I){if(typeof O!="function")return new v("Property `"+I+"` of component `"+z+"` has invalid PropType notation inside objectOf.");var M=j[k],$=U(M);if($!=="object")return new v("Invalid "+X+" `"+I+"` of type "+("`"+$+"` supplied to `"+z+"`, expected an object."));for(var N in M)if(n(M,N)){var H=O(M,N,z,X,I+"."+N,r);if(H instanceof Error)return H}return null}return a(d)}function R(O){if(!Array.isArray(O))return process.env.NODE_ENV!=="production"&&i("Invalid argument supplied to oneOfType, expected an instance of array."),l;for(var d=0;d<O.length;d++){var j=O[d];if(typeof j!="function")return i("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+le(j)+" at index "+d+"."),l}function k(z,X,I,M,$){for(var N=[],H=0;H<O.length;H++){var F=O[H],_=F(z,X,I,M,$,r);if(_==null)return null;_.data&&n(_.data,"expectedType")&&N.push(_.data.expectedType)}var ae=N.length>0?", expected one of type ["+N.join(", ")+"]":"";return new v("Invalid "+M+" `"+$+"` supplied to "+("`"+I+"`"+ae+"."))}return a(k)}function q(){function O(d,j,k,z,X){return Y(d[j])?null:new v("Invalid "+z+" `"+X+"` supplied to "+("`"+k+"`, expected a ReactNode."))}return a(O)}function W(O,d,j,k,z){return new v((O||"React class")+": "+d+" type `"+j+"."+k+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+z+"`.")}function J(O){function d(j,k,z,X,I){var M=j[k],$=U(M);if($!=="object")return new v("Invalid "+X+" `"+I+"` of type `"+$+"` "+("supplied to `"+z+"`, expected `object`."));for(var N in O){var H=O[N];if(typeof H!="function")return W(z,X,I,N,K(H));var F=H(M,N,z,X,I+"."+N,r);if(F)return F}return null}return a(d)}function A(O){function d(j,k,z,X,I){var M=j[k],$=U(M);if($!=="object")return new v("Invalid "+X+" `"+I+"` of type `"+$+"` "+("supplied to `"+z+"`, expected `object`."));var N=t({},j[k],O);for(var H in N){var F=O[H];if(n(O,H)&&typeof F!="function")return W(z,X,I,H,K(F));if(!F)return new v("Invalid "+X+" `"+I+"` key `"+H+"` supplied to `"+z+"`.\nBad object: "+JSON.stringify(j[k],null," ")+`
7
- Valid keys: `+JSON.stringify(Object.keys(O),null," "));var _=F(M,H,z,X,I+"."+H,r);if(_)return _}return null}return a(d)}function Y(O){switch(typeof O){case"number":case"string":case"undefined":return!0;case"boolean":return!O;case"object":if(Array.isArray(O))return O.every(Y);if(O===null||p(O))return!0;var d=h(O);if(d){var j=d.call(O),k;if(d!==O.entries){for(;!(k=j.next()).done;)if(!Y(k.value))return!1}else for(;!(k=j.next()).done;){var z=k.value;if(z&&!Y(z[1]))return!1}}else return!1;return!0;default:return!1}}function Z(O,d){return O==="symbol"?!0:d?d["@@toStringTag"]==="Symbol"||typeof Symbol=="function"&&d instanceof Symbol:!1}function U(O){var d=typeof O;return Array.isArray(O)?"array":O instanceof RegExp?"object":Z(d,O)?"symbol":d}function K(O){if(typeof O>"u"||O===null)return""+O;var d=U(O);if(d==="object"){if(O instanceof Date)return"date";if(O instanceof RegExp)return"regexp"}return d}function le(O){var d=K(O);switch(d){case"array":case"object":return"an "+d;case"boolean":case"date":case"regexp":return"a "+d;default:return d}}function me(O){return!O.constructor||!O.constructor.name?S:O.constructor.name}return P.checkPropTypes=o,P.resetWarningCache=o.resetWarningCache,P.PropTypes=P,P},dr}var pr,dn;function Ao(){if(dn)return pr;dn=1;var e=ur();function t(){}function r(){}return r.resetWarningCache=t,pr=function(){function n(l,p,u,x,m,h){if(h!==e){var S=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw S.name="Invariant Violation",S}}n.isRequired=n;function o(){return n}var i={array:n,bigint:n,bool:n,func:n,number:n,object:n,string:n,symbol:n,any:n,arrayOf:o,element:n,elementType:n,instanceOf:o,node:n,objectOf:o,oneOf:o,oneOfType:o,shape:o,exact:o,checkPropTypes:r,resetWarningCache:t};return i.PropTypes=i,i},pr}var pn;function Nt(){if(pn)return zt.exports;if(pn=1,process.env.NODE_ENV!=="production"){var e=on(),t=!0;zt.exports=No()(e.isElement,t)}else zt.exports=Ao()();return zt.exports}var ge={},Fe={},hn;function At(){if(hn)return Fe;hn=1,Object.defineProperty(Fe,"__esModule",{value:!0}),Fe.dontSetMe=o,Fe.findInArray=e,Fe.int=n,Fe.isFunction=t,Fe.isNum=r;function e(i,l){for(let p=0,u=i.length;p<u;p++)if(l.apply(l,[i[p],p,i]))return i[p]}function t(i){return typeof i=="function"||Object.prototype.toString.call(i)==="[object Function]"}function r(i){return typeof i=="number"&&!isNaN(i)}function n(i){return parseInt(i,10)}function o(i,l,p){if(i[l])return new Error(`Invalid prop ${l} passed to ${p} - do not set this, set it on the child.`)}return Fe}var Xe={},gn;function Io(){if(gn)return Xe;gn=1,Object.defineProperty(Xe,"__esModule",{value:!0}),Xe.browserPrefixToKey=r,Xe.browserPrefixToStyle=n,Xe.default=void 0,Xe.getPrefix=t;const e=["Moz","Webkit","O","ms"];function t(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"transform";if(typeof window>"u")return"";const l=window.document?.documentElement?.style;if(!l||i in l)return"";for(let p=0;p<e.length;p++)if(r(i,e[p])in l)return e[p];return""}function r(i,l){return l?`${l}${o(i)}`:i}function n(i,l){return l?`-${l.toLowerCase()}-${i}`:i}function o(i){let l="",p=!0;for(let u=0;u<i.length;u++)p?(l+=i[u].toUpperCase(),p=!1):i[u]==="-"?p=!0:l+=i[u];return l}return Xe.default=t(),Xe}var mn;function hr(){if(mn)return ge;mn=1,Object.defineProperty(ge,"__esModule",{value:!0}),ge.addClassName=c,ge.addEvent=l,ge.addUserSelectStyles=g,ge.createCSSTransform=P,ge.createSVGTransform=D,ge.getTouch=a,ge.getTouchIdentifier=s,ge.getTranslation=v,ge.innerHeight=m,ge.innerWidth=h,ge.matchesSelector=o,ge.matchesSelectorAndParentsTo=i,ge.offsetXYFromParent=S,ge.outerHeight=u,ge.outerWidth=x,ge.removeClassName=w,ge.removeEvent=p,ge.scheduleRemoveUserSelectStyles=b;var e=At(),t=r(Io());function r(f,y){if(typeof WeakMap=="function")var R=new WeakMap,q=new WeakMap;return(r=function(W,J){if(!J&&W&&W.__esModule)return W;var A,Y,Z={__proto__:null,default:W};if(W===null||typeof W!="object"&&typeof W!="function")return Z;if(A=J?q:R){if(A.has(W))return A.get(W);A.set(W,Z)}for(const U in W)U!=="default"&&{}.hasOwnProperty.call(W,U)&&((Y=(A=Object.defineProperty)&&Object.getOwnPropertyDescriptor(W,U))&&(Y.get||Y.set)?A(Z,U,Y):Z[U]=W[U]);return Z})(f,y)}let n="";function o(f,y){return n||(n=(0,e.findInArray)(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(R){return(0,e.isFunction)(f[R])})),(0,e.isFunction)(f[n])?f[n](y):!1}function i(f,y,R){let q=f;do{if(o(q,y))return!0;if(q===R)return!1;q=q.parentNode}while(q);return!1}function l(f,y,R,q){if(!f)return;const W={capture:!0,...q};f.addEventListener?f.addEventListener(y,R,W):f.attachEvent?f.attachEvent("on"+y,R):f["on"+y]=R}function p(f,y,R,q){if(!f)return;const W={capture:!0,...q};f.removeEventListener?f.removeEventListener(y,R,W):f.detachEvent?f.detachEvent("on"+y,R):f["on"+y]=null}function u(f){let y=f.clientHeight;const R=f.ownerDocument.defaultView.getComputedStyle(f);return y+=(0,e.int)(R.borderTopWidth),y+=(0,e.int)(R.borderBottomWidth),y}function x(f){let y=f.clientWidth;const R=f.ownerDocument.defaultView.getComputedStyle(f);return y+=(0,e.int)(R.borderLeftWidth),y+=(0,e.int)(R.borderRightWidth),y}function m(f){let y=f.clientHeight;const R=f.ownerDocument.defaultView.getComputedStyle(f);return y-=(0,e.int)(R.paddingTop),y-=(0,e.int)(R.paddingBottom),y}function h(f){let y=f.clientWidth;const R=f.ownerDocument.defaultView.getComputedStyle(f);return y-=(0,e.int)(R.paddingLeft),y-=(0,e.int)(R.paddingRight),y}function S(f,y,R){const W=y===y.ownerDocument.body?{left:0,top:0}:y.getBoundingClientRect(),J=(f.clientX+y.scrollLeft-W.left)/R,A=(f.clientY+y.scrollTop-W.top)/R;return{x:J,y:A}}function P(f,y){const R=v(f,y,"px");return{[(0,t.browserPrefixToKey)("transform",t.default)]:R}}function D(f,y){return v(f,y,"")}function v(f,y,R){let{x:q,y:W}=f,J=`translate(${q}${R},${W}${R})`;if(y){const A=`${typeof y.x=="string"?y.x:y.x+R}`,Y=`${typeof y.y=="string"?y.y:y.y+R}`;J=`translate(${A}, ${Y})`+J}return J}function a(f,y){return f.targetTouches&&(0,e.findInArray)(f.targetTouches,R=>y===R.identifier)||f.changedTouches&&(0,e.findInArray)(f.changedTouches,R=>y===R.identifier)}function s(f){if(f.targetTouches&&f.targetTouches[0])return f.targetTouches[0].identifier;if(f.changedTouches&&f.changedTouches[0])return f.changedTouches[0].identifier}function g(f){if(!f)return;let y=f.getElementById("react-draggable-style-el");y||(y=f.createElement("style"),y.type="text/css",y.id="react-draggable-style-el",y.innerHTML=`.react-draggable-transparent-selection *::-moz-selection {all: inherit;}
8
- `,y.innerHTML+=`.react-draggable-transparent-selection *::selection {all: inherit;}
9
- `,f.getElementsByTagName("head")[0].appendChild(y)),f.body&&c(f.body,"react-draggable-transparent-selection")}function b(f){window.requestAnimationFrame?window.requestAnimationFrame(()=>{E(f)}):E(f)}function E(f){if(f)try{if(f.body&&w(f.body,"react-draggable-transparent-selection"),f.selection)f.selection.empty();else{const y=(f.defaultView||window).getSelection();y&&y.type!=="Caret"&&y.removeAllRanges()}}catch{}}function c(f,y){f.classList?f.classList.add(y):f.className.match(new RegExp(`(?:^|\\s)${y}(?!\\S)`))||(f.className+=` ${y}`)}function w(f,y){f.classList?f.classList.remove(y):f.className=f.className.replace(new RegExp(`(?:^|\\s)${y}(?!\\S)`,"g"),"")}return ge}var Ie={},yn;function vn(){if(yn)return Ie;yn=1,Object.defineProperty(Ie,"__esModule",{value:!0}),Ie.canDragX=o,Ie.canDragY=i,Ie.createCoreData=p,Ie.createDraggableData=u,Ie.getBoundPosition=r,Ie.getControlPosition=l,Ie.snapToGrid=n;var e=At(),t=hr();function r(h,S,P){if(!h.props.bounds)return[S,P];let{bounds:D}=h.props;D=typeof D=="string"?D:x(D);const v=m(h);if(typeof D=="string"){const{ownerDocument:a}=v,s=a.defaultView;let g;if(D==="parent"?g=v.parentNode:g=v.getRootNode().querySelector(D),!(g instanceof s.HTMLElement))throw new Error('Bounds selector "'+D+'" could not find an element.');const b=g,E=s.getComputedStyle(v),c=s.getComputedStyle(b);D={left:-v.offsetLeft+(0,e.int)(c.paddingLeft)+(0,e.int)(E.marginLeft),top:-v.offsetTop+(0,e.int)(c.paddingTop)+(0,e.int)(E.marginTop),right:(0,t.innerWidth)(b)-(0,t.outerWidth)(v)-v.offsetLeft+(0,e.int)(c.paddingRight)-(0,e.int)(E.marginRight),bottom:(0,t.innerHeight)(b)-(0,t.outerHeight)(v)-v.offsetTop+(0,e.int)(c.paddingBottom)-(0,e.int)(E.marginBottom)}}return(0,e.isNum)(D.right)&&(S=Math.min(S,D.right)),(0,e.isNum)(D.bottom)&&(P=Math.min(P,D.bottom)),(0,e.isNum)(D.left)&&(S=Math.max(S,D.left)),(0,e.isNum)(D.top)&&(P=Math.max(P,D.top)),[S,P]}function n(h,S,P){const D=Math.round(S/h[0])*h[0],v=Math.round(P/h[1])*h[1];return[D,v]}function o(h){return h.props.axis==="both"||h.props.axis==="x"}function i(h){return h.props.axis==="both"||h.props.axis==="y"}function l(h,S,P){const D=typeof S=="number"?(0,t.getTouch)(h,S):null;if(typeof S=="number"&&!D)return null;const v=m(P),a=P.props.offsetParent||v.offsetParent||v.ownerDocument.body;return(0,t.offsetXYFromParent)(D||h,a,P.props.scale)}function p(h,S,P){const D=!(0,e.isNum)(h.lastX),v=m(h);return D?{node:v,deltaX:0,deltaY:0,lastX:S,lastY:P,x:S,y:P}:{node:v,deltaX:S-h.lastX,deltaY:P-h.lastY,lastX:h.lastX,lastY:h.lastY,x:S,y:P}}function u(h,S){const P=h.props.scale;return{node:S.node,x:h.state.x+S.deltaX/P,y:h.state.y+S.deltaY/P,deltaX:S.deltaX/P,deltaY:S.deltaY/P,lastX:h.state.x,lastY:h.state.y}}function x(h){return{left:h.left,top:h.top,right:h.right,bottom:h.bottom}}function m(h){const S=h.findDOMNode();if(!S)throw new Error("<DraggableCore>: Unmounted during event!");return S}return Ie}var ht={},It={},bn;function xn(){if(bn)return It;bn=1,Object.defineProperty(It,"__esModule",{value:!0}),It.default=e;function e(){}return It}var wn;function Lo(){if(wn)return ht;wn=1,Object.defineProperty(ht,"__esModule",{value:!0}),ht.default=void 0;var e=u(C),t=p(Nt()),r=p(Er),n=hr(),o=vn(),i=At(),l=p(xn());function p(v){return v&&v.__esModule?v:{default:v}}function u(v,a){if(typeof WeakMap=="function")var s=new WeakMap,g=new WeakMap;return(u=function(b,E){if(!E&&b&&b.__esModule)return b;var c,w,f={__proto__:null,default:b};if(b===null||typeof b!="object"&&typeof b!="function")return f;if(c=E?g:s){if(c.has(b))return c.get(b);c.set(b,f)}for(const y in b)y!=="default"&&{}.hasOwnProperty.call(b,y)&&((w=(c=Object.defineProperty)&&Object.getOwnPropertyDescriptor(b,y))&&(w.get||w.set)?c(f,y,w):f[y]=b[y]);return f})(v,a)}function x(v,a,s){return(a=m(a))in v?Object.defineProperty(v,a,{value:s,enumerable:!0,configurable:!0,writable:!0}):v[a]=s,v}function m(v){var a=h(v,"string");return typeof a=="symbol"?a:a+""}function h(v,a){if(typeof v!="object"||!v)return v;var s=v[Symbol.toPrimitive];if(s!==void 0){var g=s.call(v,a);if(typeof g!="object")return g;throw new TypeError("@@toPrimitive must return a primitive value.")}return(a==="string"?String:Number)(v)}const S={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}};let P=S.mouse,D=class extends e.Component{constructor(){super(...arguments),x(this,"dragging",!1),x(this,"lastX",NaN),x(this,"lastY",NaN),x(this,"touchIdentifier",null),x(this,"mounted",!1),x(this,"handleDragStart",a=>{if(this.props.onMouseDown(a),!this.props.allowAnyClick&&typeof a.button=="number"&&a.button!==0)return!1;const s=this.findDOMNode();if(!s||!s.ownerDocument||!s.ownerDocument.body)throw new Error("<DraggableCore> not mounted on DragStart!");const{ownerDocument:g}=s;if(this.props.disabled||!(a.target instanceof g.defaultView.Node)||this.props.handle&&!(0,n.matchesSelectorAndParentsTo)(a.target,this.props.handle,s)||this.props.cancel&&(0,n.matchesSelectorAndParentsTo)(a.target,this.props.cancel,s))return;a.type==="touchstart"&&!this.props.allowMobileScroll&&a.preventDefault();const b=(0,n.getTouchIdentifier)(a);this.touchIdentifier=b;const E=(0,o.getControlPosition)(a,b,this);if(E==null)return;const{x:c,y:w}=E,f=(0,o.createCoreData)(this,c,w);(0,l.default)("DraggableCore: handleDragStart: %j",f),(0,l.default)("calling",this.props.onStart),!(this.props.onStart(a,f)===!1||this.mounted===!1)&&(this.props.enableUserSelectHack&&(0,n.addUserSelectStyles)(g),this.dragging=!0,this.lastX=c,this.lastY=w,(0,n.addEvent)(g,P.move,this.handleDrag),(0,n.addEvent)(g,P.stop,this.handleDragStop))}),x(this,"handleDrag",a=>{const s=(0,o.getControlPosition)(a,this.touchIdentifier,this);if(s==null)return;let{x:g,y:b}=s;if(Array.isArray(this.props.grid)){let w=g-this.lastX,f=b-this.lastY;if([w,f]=(0,o.snapToGrid)(this.props.grid,w,f),!w&&!f)return;g=this.lastX+w,b=this.lastY+f}const E=(0,o.createCoreData)(this,g,b);if((0,l.default)("DraggableCore: handleDrag: %j",E),this.props.onDrag(a,E)===!1||this.mounted===!1){try{this.handleDragStop(new MouseEvent("mouseup"))}catch{const f=document.createEvent("MouseEvents");f.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),this.handleDragStop(f)}return}this.lastX=g,this.lastY=b}),x(this,"handleDragStop",a=>{if(!this.dragging)return;const s=(0,o.getControlPosition)(a,this.touchIdentifier,this);if(s==null)return;let{x:g,y:b}=s;if(Array.isArray(this.props.grid)){let f=g-this.lastX||0,y=b-this.lastY||0;[f,y]=(0,o.snapToGrid)(this.props.grid,f,y),g=this.lastX+f,b=this.lastY+y}const E=(0,o.createCoreData)(this,g,b);if(this.props.onStop(a,E)===!1||this.mounted===!1)return!1;const w=this.findDOMNode();w&&this.props.enableUserSelectHack&&(0,n.scheduleRemoveUserSelectStyles)(w.ownerDocument),(0,l.default)("DraggableCore: handleDragStop: %j",E),this.dragging=!1,this.lastX=NaN,this.lastY=NaN,w&&((0,l.default)("DraggableCore: Removing handlers"),(0,n.removeEvent)(w.ownerDocument,P.move,this.handleDrag),(0,n.removeEvent)(w.ownerDocument,P.stop,this.handleDragStop))}),x(this,"onMouseDown",a=>(P=S.mouse,this.handleDragStart(a))),x(this,"onMouseUp",a=>(P=S.mouse,this.handleDragStop(a))),x(this,"onTouchStart",a=>(P=S.touch,this.handleDragStart(a))),x(this,"onTouchEnd",a=>(P=S.touch,this.handleDragStop(a)))}componentDidMount(){this.mounted=!0;const a=this.findDOMNode();a&&(0,n.addEvent)(a,S.touch.start,this.onTouchStart,{passive:!1})}componentWillUnmount(){this.mounted=!1;const a=this.findDOMNode();if(a){const{ownerDocument:s}=a;(0,n.removeEvent)(s,S.mouse.move,this.handleDrag),(0,n.removeEvent)(s,S.touch.move,this.handleDrag),(0,n.removeEvent)(s,S.mouse.stop,this.handleDragStop),(0,n.removeEvent)(s,S.touch.stop,this.handleDragStop),(0,n.removeEvent)(a,S.touch.start,this.onTouchStart,{passive:!1}),this.props.enableUserSelectHack&&(0,n.scheduleRemoveUserSelectStyles)(s)}}findDOMNode(){return this.props?.nodeRef?this.props?.nodeRef?.current:r.default.findDOMNode(this)}render(){return e.cloneElement(e.Children.only(this.props.children),{onMouseDown:this.onMouseDown,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}};return ht.default=D,x(D,"displayName","DraggableCore"),x(D,"propTypes",{allowAnyClick:t.default.bool,allowMobileScroll:t.default.bool,children:t.default.node.isRequired,disabled:t.default.bool,enableUserSelectHack:t.default.bool,offsetParent:function(v,a){if(v[a]&&v[a].nodeType!==1)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:t.default.arrayOf(t.default.number),handle:t.default.string,cancel:t.default.string,nodeRef:t.default.object,onStart:t.default.func,onDrag:t.default.func,onStop:t.default.func,onMouseDown:t.default.func,scale:t.default.number,className:i.dontSetMe,style:i.dontSetMe,transform:i.dontSetMe}),x(D,"defaultProps",{allowAnyClick:!1,allowMobileScroll:!1,disabled:!1,enableUserSelectHack:!0,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){},scale:1}),ht}var Sn;function Wo(){return Sn||(Sn=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"DraggableCore",{enumerable:!0,get:function(){return u.default}}),e.default=void 0;var t=h(C),r=m(Nt()),n=m(Er),o=Gt,i=hr(),l=vn(),p=At(),u=m(Lo()),x=m(xn());function m(s){return s&&s.__esModule?s:{default:s}}function h(s,g){if(typeof WeakMap=="function")var b=new WeakMap,E=new WeakMap;return(h=function(c,w){if(!w&&c&&c.__esModule)return c;var f,y,R={__proto__:null,default:c};if(c===null||typeof c!="object"&&typeof c!="function")return R;if(f=w?E:b){if(f.has(c))return f.get(c);f.set(c,R)}for(const q in c)q!=="default"&&{}.hasOwnProperty.call(c,q)&&((y=(f=Object.defineProperty)&&Object.getOwnPropertyDescriptor(c,q))&&(y.get||y.set)?f(R,q,y):R[q]=c[q]);return R})(s,g)}function S(){return S=Object.assign?Object.assign.bind():function(s){for(var g=1;g<arguments.length;g++){var b=arguments[g];for(var E in b)({}).hasOwnProperty.call(b,E)&&(s[E]=b[E])}return s},S.apply(null,arguments)}function P(s,g,b){return(g=D(g))in s?Object.defineProperty(s,g,{value:b,enumerable:!0,configurable:!0,writable:!0}):s[g]=b,s}function D(s){var g=v(s,"string");return typeof g=="symbol"?g:g+""}function v(s,g){if(typeof s!="object"||!s)return s;var b=s[Symbol.toPrimitive];if(b!==void 0){var E=b.call(s,g);if(typeof E!="object")return E;throw new TypeError("@@toPrimitive must return a primitive value.")}return(g==="string"?String:Number)(s)}class a extends t.Component{static getDerivedStateFromProps(g,b){let{position:E}=g,{prevPropsPosition:c}=b;return E&&(!c||E.x!==c.x||E.y!==c.y)?((0,x.default)("Draggable: getDerivedStateFromProps %j",{position:E,prevPropsPosition:c}),{x:E.x,y:E.y,prevPropsPosition:{...E}}):null}constructor(g){super(g),P(this,"onDragStart",(b,E)=>{if((0,x.default)("Draggable: onDragStart: %j",E),this.props.onStart(b,(0,l.createDraggableData)(this,E))===!1)return!1;this.setState({dragging:!0,dragged:!0})}),P(this,"onDrag",(b,E)=>{if(!this.state.dragging)return!1;(0,x.default)("Draggable: onDrag: %j",E);const c=(0,l.createDraggableData)(this,E),w={x:c.x,y:c.y,slackX:0,slackY:0};if(this.props.bounds){const{x:y,y:R}=w;w.x+=this.state.slackX,w.y+=this.state.slackY;const[q,W]=(0,l.getBoundPosition)(this,w.x,w.y);w.x=q,w.y=W,w.slackX=this.state.slackX+(y-w.x),w.slackY=this.state.slackY+(R-w.y),c.x=w.x,c.y=w.y,c.deltaX=w.x-this.state.x,c.deltaY=w.y-this.state.y}if(this.props.onDrag(b,c)===!1)return!1;this.setState(w)}),P(this,"onDragStop",(b,E)=>{if(!this.state.dragging||this.props.onStop(b,(0,l.createDraggableData)(this,E))===!1)return!1;(0,x.default)("Draggable: onDragStop: %j",E);const w={dragging:!1,slackX:0,slackY:0};if(!!this.props.position){const{x:y,y:R}=this.props.position;w.x=y,w.y=R}this.setState(w)}),this.state={dragging:!1,dragged:!1,x:g.position?g.position.x:g.defaultPosition.x,y:g.position?g.position.y:g.defaultPosition.y,prevPropsPosition:{...g.position},slackX:0,slackY:0,isElementSVG:!1},g.position&&!(g.onDrag||g.onStop)&&console.warn("A `position` was applied to this <Draggable>, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}componentDidMount(){typeof window.SVGElement<"u"&&this.findDOMNode()instanceof window.SVGElement&&this.setState({isElementSVG:!0})}componentWillUnmount(){this.state.dragging&&this.setState({dragging:!1})}findDOMNode(){return this.props?.nodeRef?.current??n.default.findDOMNode(this)}render(){const{axis:g,bounds:b,children:E,defaultPosition:c,defaultClassName:w,defaultClassNameDragging:f,defaultClassNameDragged:y,position:R,positionOffset:q,scale:W,...J}=this.props;let A={},Y=null;const U=!!!R||this.state.dragging,K=R||c,le={x:(0,l.canDragX)(this)&&U?this.state.x:K.x,y:(0,l.canDragY)(this)&&U?this.state.y:K.y};this.state.isElementSVG?Y=(0,i.createSVGTransform)(le,q):A=(0,i.createCSSTransform)(le,q);const me=(0,o.clsx)(E.props.className||"",w,{[f]:this.state.dragging,[y]:this.state.dragged});return t.createElement(u.default,S({},J,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),t.cloneElement(t.Children.only(E),{className:me,style:{...E.props.style,...A},transform:Y}))}}e.default=a,P(a,"displayName","Draggable"),P(a,"propTypes",{...u.default.propTypes,axis:r.default.oneOf(["both","x","y","none"]),bounds:r.default.oneOfType([r.default.shape({left:r.default.number,right:r.default.number,top:r.default.number,bottom:r.default.number}),r.default.string,r.default.oneOf([!1])]),defaultClassName:r.default.string,defaultClassNameDragging:r.default.string,defaultClassNameDragged:r.default.string,defaultPosition:r.default.shape({x:r.default.number,y:r.default.number}),positionOffset:r.default.shape({x:r.default.oneOfType([r.default.number,r.default.string]),y:r.default.oneOfType([r.default.number,r.default.string])}),position:r.default.shape({x:r.default.number,y:r.default.number}),className:p.dontSetMe,style:p.dontSetMe,transform:p.dontSetMe}),P(a,"defaultProps",{...u.default.defaultProps,axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},scale:1})})(sr)),sr}var En;function gr(){if(En)return pt.exports;En=1;const{default:e,DraggableCore:t}=Wo();return pt.exports=e,pt.exports.default=e,pt.exports.DraggableCore=t,pt.exports}var qo=gr(),gt={exports:{}},mt={},Lt={},Cn;function $o(){if(Cn)return Lt;Cn=1,Lt.__esModule=!0,Lt.cloneElement=p;var e=t(C);function t(u){return u&&u.__esModule?u:{default:u}}function r(u,x){var m=Object.keys(u);if(Object.getOwnPropertySymbols){var h=Object.getOwnPropertySymbols(u);x&&(h=h.filter(function(S){return Object.getOwnPropertyDescriptor(u,S).enumerable})),m.push.apply(m,h)}return m}function n(u){for(var x=1;x<arguments.length;x++){var m=arguments[x]!=null?arguments[x]:{};x%2?r(Object(m),!0).forEach(function(h){o(u,h,m[h])}):Object.getOwnPropertyDescriptors?Object.defineProperties(u,Object.getOwnPropertyDescriptors(m)):r(Object(m)).forEach(function(h){Object.defineProperty(u,h,Object.getOwnPropertyDescriptor(m,h))})}return u}function o(u,x,m){return(x=i(x))in u?Object.defineProperty(u,x,{value:m,enumerable:!0,configurable:!0,writable:!0}):u[x]=m,u}function i(u){var x=l(u,"string");return typeof x=="symbol"?x:x+""}function l(u,x){if(typeof u!="object"||!u)return u;var m=u[Symbol.toPrimitive];if(m!==void 0){var h=m.call(u,x);if(typeof h!="object")return h;throw new TypeError("@@toPrimitive must return a primitive value.")}return(x==="string"?String:Number)(u)}function p(u,x){return x.style&&u.props.style&&(x.style=n(n({},u.props.style),x.style)),x.className&&u.props.className&&(x.className=`${u.props.className} ${x.className}`),e.default.cloneElement(u,x)}return Lt}var yt={},Pn;function On(){if(Pn)return yt;Pn=1,yt.__esModule=!0,yt.resizableProps=void 0;var e=t(Nt());gr();function t(r){return r&&r.__esModule?r:{default:r}}return yt.resizableProps={axis:e.default.oneOf(["both","x","y","none"]),className:e.default.string,children:e.default.element.isRequired,draggableOpts:e.default.shape({allowAnyClick:e.default.bool,cancel:e.default.string,children:e.default.node,disabled:e.default.bool,enableUserSelectHack:e.default.bool,offsetParent:typeof Element<"u"?e.default.instanceOf(Element):e.default.any,grid:e.default.arrayOf(e.default.number),handle:e.default.string,nodeRef:e.default.object,onStart:e.default.func,onDrag:e.default.func,onStop:e.default.func,onMouseDown:e.default.func,scale:e.default.number}),height:function(){for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];const[i]=n;return i.axis==="both"||i.axis==="y"?e.default.number.isRequired(...n):e.default.number(...n)},handle:e.default.oneOfType([e.default.node,e.default.func]),handleSize:e.default.arrayOf(e.default.number),lockAspectRatio:e.default.bool,maxConstraints:e.default.arrayOf(e.default.number),minConstraints:e.default.arrayOf(e.default.number),onResizeStop:e.default.func,onResizeStart:e.default.func,onResize:e.default.func,resizeHandles:e.default.arrayOf(e.default.oneOf(["s","w","e","n","sw","nw","se","ne"])),transformScale:e.default.number,width:function(){for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];const[i]=n;return i.axis==="both"||i.axis==="x"?e.default.number.isRequired(...n):e.default.number(...n)}},yt}var Rn;function Dn(){if(Rn)return mt;Rn=1,mt.__esModule=!0,mt.default=void 0;var e=i(C),t=gr(),r=$o(),n=On();const o=["children","className","draggableOpts","width","height","handle","handleSize","lockAspectRatio","axis","minConstraints","maxConstraints","onResize","onResizeStop","onResizeStart","resizeHandles","transformScale"];function i(v,a){if(typeof WeakMap=="function")var s=new WeakMap,g=new WeakMap;return(i=function(b,E){if(!E&&b&&b.__esModule)return b;var c,w,f={__proto__:null,default:b};if(b===null||typeof b!="object"&&typeof b!="function")return f;if(c=E?g:s){if(c.has(b))return c.get(b);c.set(b,f)}for(const y in b)y!=="default"&&{}.hasOwnProperty.call(b,y)&&((w=(c=Object.defineProperty)&&Object.getOwnPropertyDescriptor(b,y))&&(w.get||w.set)?c(f,y,w):f[y]=b[y]);return f})(v,a)}function l(){return l=Object.assign?Object.assign.bind():function(v){for(var a=1;a<arguments.length;a++){var s=arguments[a];for(var g in s)({}).hasOwnProperty.call(s,g)&&(v[g]=s[g])}return v},l.apply(null,arguments)}function p(v,a){if(v==null)return{};var s,g,b=u(v,a);if(Object.getOwnPropertySymbols){var E=Object.getOwnPropertySymbols(v);for(g=0;g<E.length;g++)s=E[g],a.indexOf(s)===-1&&{}.propertyIsEnumerable.call(v,s)&&(b[s]=v[s])}return b}function u(v,a){if(v==null)return{};var s={};for(var g in v)if({}.hasOwnProperty.call(v,g)){if(a.indexOf(g)!==-1)continue;s[g]=v[g]}return s}function x(v,a){var s=Object.keys(v);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(v);a&&(g=g.filter(function(b){return Object.getOwnPropertyDescriptor(v,b).enumerable})),s.push.apply(s,g)}return s}function m(v){for(var a=1;a<arguments.length;a++){var s=arguments[a]!=null?arguments[a]:{};a%2?x(Object(s),!0).forEach(function(g){h(v,g,s[g])}):Object.getOwnPropertyDescriptors?Object.defineProperties(v,Object.getOwnPropertyDescriptors(s)):x(Object(s)).forEach(function(g){Object.defineProperty(v,g,Object.getOwnPropertyDescriptor(s,g))})}return v}function h(v,a,s){return(a=S(a))in v?Object.defineProperty(v,a,{value:s,enumerable:!0,configurable:!0,writable:!0}):v[a]=s,v}function S(v){var a=P(v,"string");return typeof a=="symbol"?a:a+""}function P(v,a){if(typeof v!="object"||!v)return v;var s=v[Symbol.toPrimitive];if(s!==void 0){var g=s.call(v,a);if(typeof g!="object")return g;throw new TypeError("@@toPrimitive must return a primitive value.")}return(a==="string"?String:Number)(v)}let D=class extends e.Component{constructor(){super(...arguments),this.handleRefs={},this.lastHandleRect=null,this.slack=null,this.lastSize=null}componentWillUnmount(){this.resetData()}resetData(){this.lastHandleRect=this.slack=this.lastSize=null}runConstraints(a,s){const{minConstraints:g,maxConstraints:b,lockAspectRatio:E}=this.props;if(!g&&!b&&!E)return[a,s];if(E){const R=this.props.width/this.props.height,q=a-this.props.width,W=s-this.props.height;Math.abs(q)>Math.abs(W*R)?s=a/R:a=s*R}const[c,w]=[a,s];let[f,y]=this.slack||[0,0];return a+=f,s+=y,g&&(a=Math.max(g[0],a),s=Math.max(g[1],s)),b&&(a=Math.min(b[0],a),s=Math.min(b[1],s)),this.slack=[f+(c-a),y+(w-s)],[a,s]}resizeHandler(a,s){return(g,b)=>{let{node:E,deltaX:c,deltaY:w}=b;a==="onResizeStart"&&this.resetData();const f=(this.props.axis==="both"||this.props.axis==="x")&&s!=="n"&&s!=="s",y=(this.props.axis==="both"||this.props.axis==="y")&&s!=="e"&&s!=="w";if(!f&&!y)return;const R=s[0],q=s[s.length-1],W=E.getBoundingClientRect();if(this.lastHandleRect!=null){if(q==="w"){const K=W.left-this.lastHandleRect.left;c+=K}if(R==="n"){const K=W.top-this.lastHandleRect.top;w+=K}}this.lastHandleRect=W,q==="w"&&(c=-c),R==="n"&&(w=-w);let J=this.props.width+(f?c/this.props.transformScale:0),A=this.props.height+(y?w/this.props.transformScale:0);[J,A]=this.runConstraints(J,A),a==="onResizeStop"&&this.lastSize&&({width:J,height:A}=this.lastSize);const Y=J!==this.props.width||A!==this.props.height;a!=="onResizeStop"&&(this.lastSize={width:J,height:A});const Z=typeof this.props[a]=="function"?this.props[a]:null;Z&&!(a==="onResize"&&!Y)&&(g.persist?.(),Z(g,{node:E,size:{width:J,height:A},handle:s})),a==="onResizeStop"&&this.resetData()}}renderResizeHandle(a,s){const{handle:g}=this.props;if(!g)return e.createElement("span",{className:`react-resizable-handle react-resizable-handle-${a}`,ref:s});if(typeof g=="function")return g(a,s);const b=typeof g.type=="string",E=m({ref:s},b?{}:{handleAxis:a});return e.cloneElement(g,E)}render(){const a=this.props,{children:s,className:g,draggableOpts:b,width:E,height:c,handle:w,handleSize:f,lockAspectRatio:y,axis:R,minConstraints:q,maxConstraints:W,onResize:J,onResizeStop:A,onResizeStart:Y,resizeHandles:Z,transformScale:U}=a,K=p(a,o);return(0,r.cloneElement)(s,m(m({},K),{},{className:`${g?`${g} `:""}react-resizable`,children:[...e.Children.toArray(s.props.children),...Z.map(le=>{const me=this.handleRefs[le]??(this.handleRefs[le]=e.createRef());return e.createElement(t.DraggableCore,l({},b,{nodeRef:me,key:`resizableHandle-${le}`,onStop:this.resizeHandler("onResizeStop",le),onStart:this.resizeHandler("onResizeStart",le),onDrag:this.resizeHandler("onResize",le)}),this.renderResizeHandle(le,me))})]}))}};return mt.default=D,D.propTypes=n.resizableProps,D.defaultProps={axis:"both",handleSize:[20,20],lockAspectRatio:!1,minConstraints:[20,20],maxConstraints:[1/0,1/0],resizeHandles:["se"],transformScale:1},mt}var vt={},_n;function Ho(){if(_n)return vt;_n=1,vt.__esModule=!0,vt.default=void 0;var e=l(C),t=i(Nt()),r=i(Dn()),n=On();const o=["handle","handleSize","onResize","onResizeStart","onResizeStop","draggableOpts","minConstraints","maxConstraints","lockAspectRatio","axis","width","height","resizeHandles","style","transformScale"];function i(a){return a&&a.__esModule?a:{default:a}}function l(a,s){if(typeof WeakMap=="function")var g=new WeakMap,b=new WeakMap;return(l=function(E,c){if(!c&&E&&E.__esModule)return E;var w,f,y={__proto__:null,default:E};if(E===null||typeof E!="object"&&typeof E!="function")return y;if(w=c?b:g){if(w.has(E))return w.get(E);w.set(E,y)}for(const R in E)R!=="default"&&{}.hasOwnProperty.call(E,R)&&((f=(w=Object.defineProperty)&&Object.getOwnPropertyDescriptor(E,R))&&(f.get||f.set)?w(y,R,f):y[R]=E[R]);return y})(a,s)}function p(){return p=Object.assign?Object.assign.bind():function(a){for(var s=1;s<arguments.length;s++){var g=arguments[s];for(var b in g)({}).hasOwnProperty.call(g,b)&&(a[b]=g[b])}return a},p.apply(null,arguments)}function u(a,s){var g=Object.keys(a);if(Object.getOwnPropertySymbols){var b=Object.getOwnPropertySymbols(a);s&&(b=b.filter(function(E){return Object.getOwnPropertyDescriptor(a,E).enumerable})),g.push.apply(g,b)}return g}function x(a){for(var s=1;s<arguments.length;s++){var g=arguments[s]!=null?arguments[s]:{};s%2?u(Object(g),!0).forEach(function(b){m(a,b,g[b])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(g)):u(Object(g)).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(g,b))})}return a}function m(a,s,g){return(s=h(s))in a?Object.defineProperty(a,s,{value:g,enumerable:!0,configurable:!0,writable:!0}):a[s]=g,a}function h(a){var s=S(a,"string");return typeof s=="symbol"?s:s+""}function S(a,s){if(typeof a!="object"||!a)return a;var g=a[Symbol.toPrimitive];if(g!==void 0){var b=g.call(a,s);if(typeof b!="object")return b;throw new TypeError("@@toPrimitive must return a primitive value.")}return(s==="string"?String:Number)(a)}function P(a,s){if(a==null)return{};var g,b,E=D(a,s);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(a);for(b=0;b<c.length;b++)g=c[b],s.indexOf(g)===-1&&{}.propertyIsEnumerable.call(a,g)&&(E[g]=a[g])}return E}function D(a,s){if(a==null)return{};var g={};for(var b in a)if({}.hasOwnProperty.call(a,b)){if(s.indexOf(b)!==-1)continue;g[b]=a[b]}return g}let v=class extends e.Component{constructor(){super(...arguments),this.state={width:this.props.width,height:this.props.height,propsWidth:this.props.width,propsHeight:this.props.height},this.onResize=(s,g)=>{const{size:b}=g;this.props.onResize?(s.persist?.(),this.setState(b,()=>this.props.onResize&&this.props.onResize(s,g))):this.setState(b)}}static getDerivedStateFromProps(s,g){return g.propsWidth!==s.width||g.propsHeight!==s.height?{width:s.width,height:s.height,propsWidth:s.width,propsHeight:s.height}:null}render(){const s=this.props,{handle:g,handleSize:b,onResize:E,onResizeStart:c,onResizeStop:w,draggableOpts:f,minConstraints:y,maxConstraints:R,lockAspectRatio:q,axis:W,width:J,height:A,resizeHandles:Y,style:Z,transformScale:U}=s,K=P(s,o);return e.createElement(r.default,{axis:W,draggableOpts:f,handle:g,handleSize:b,height:this.state.height,lockAspectRatio:q,maxConstraints:R,minConstraints:y,onResizeStart:c,onResize:this.onResize,onResizeStop:w,resizeHandles:Y,transformScale:U,width:this.state.width},e.createElement("div",p({},K,{style:x(x({},Z),{},{width:this.state.width+"px",height:this.state.height+"px"})})))}};return vt.default=v,v.propTypes=x(x({},n.resizableProps),{},{children:t.default.element}),vt}var jn;function Yo(){return jn||(jn=1,gt.exports=function(){throw new Error("Don't instantiate Resizable directly! Use require('react-resizable').Resizable")},gt.exports.Resizable=Dn().default,gt.exports.ResizableBox=Ho().default),gt.exports}var Bo=Yo();function Tn(e){const{children:t,cols:r,containerWidth:n,margin:o,containerPadding:i,rowHeight:l,maxRows:p,isDraggable:u,isResizable:x,isBounded:m,static:h,useCSSTransforms:S=!0,usePercentages:P=!1,transformScale:D=1,positionStrategy:v,dragThreshold:a=0,droppingPosition:s,className:g="",style:b,handle:E="",cancel:c="",x:w,y:f,w:y,h:R,minW:q=1,maxW:W=1/0,minH:J=1,maxH:A=1/0,i:Y,resizeHandles:Z,resizeHandle:U,constraints:K=Mr,layoutItem:le,layout:me=[],onDragStart:O,onDrag:d,onDragStop:j,onResizeStart:k,onResize:z,onResizeStop:X}=e,[I,M]=C.useState(!1),[$,N]=C.useState(!1),H=C.useRef(null),F=C.useRef({left:0,top:0}),_=C.useRef({top:0,left:0,width:0,height:0}),ae=C.useRef(void 0),je=C.useRef(me);je.current=me;const De=C.useRef(null),ye=C.useRef(null),Ee=C.useRef(!1),st=C.useRef({x:0,y:0}),de=C.useRef(!1),ue=C.useMemo(()=>({cols:r,containerPadding:i,containerWidth:n,margin:o,maxRows:p,rowHeight:l}),[r,i,n,o,p,l]),Ce=C.useMemo(()=>({cols:r,maxRows:p,containerWidth:n,containerHeight:0,rowHeight:l,margin:o,layout:[]}),[r,p,n,l,o]),we=C.useCallback(()=>({...Ce,layout:je.current}),[Ce]),Ne=C.useMemo(()=>le??{i:Y,x:w,y:f,w:y,h:R,minW:q,maxW:W,minH:J,maxH:A},[le,Y,w,f,y,R,q,W,J,A]),Wt=C.useCallback(re=>{if(v?.calcStyle)return v.calcStyle(re);if(S)return zr(re);const ne=Un(re);return P?{...ne,left:kr(re.left/n),width:kr(re.width/n)}:ne},[v,S,P,n]),Le=C.useCallback((re,{node:ne})=>{if(!O)return;const{offsetParent:he}=ne;if(!he)return;const se=he.getBoundingClientRect(),ve=ne.getBoundingClientRect(),Pe=ve.left/D,_e=se.left/D,Oe=ve.top/D,Me=se.top/D;let ze;if(v?.calcDragPosition){const G=re;ze=v.calcDragPosition(G.clientX,G.clientY,G.clientX-ve.left,G.clientY-ve.top)}else ze={left:Pe-_e+he.scrollLeft,top:Oe-Me+he.scrollTop};if(F.current=ze,a>0){const G=re;st.current={x:G.clientX,y:G.clientY},Ee.current=!0,de.current=!1,M(!0);return}M(!0);const Je=Et(ue,ze.top,ze.left),{x:Ke,y:L}=Rt(K,Ne,Je.x,Je.y,we());O(Y,Ke,L,{e:re,node:ne,newPosition:ze})},[O,D,ue,v,a,K,Ne,we,Y]),it=C.useCallback((re,{node:ne,deltaX:he,deltaY:se})=>{if(!d||!I)return;const ve=re;if(Ee.current&&!de.current){const Ke=ve.clientX-st.current.x,L=ve.clientY-st.current.y;if(Math.hypot(Ke,L)<a)return;if(de.current=!0,Ee.current=!1,O){const B=Et(ue,F.current.top,F.current.left),{x:Q,y:ie}=Rt(K,Ne,B.x,B.y,we());O(Y,Q,ie,{e:re,node:ne,newPosition:F.current})}}let Pe=F.current.top+se,_e=F.current.left+he;if(m){const{offsetParent:Ke}=ne;if(Ke){const L=Ke.clientHeight-ot(R,l,o[1]);Pe=Ct(Pe,0,L);const G=nt(ue),B=n-ot(y,G,o[0]);_e=Ct(_e,0,B)}}const Oe={top:Pe,left:_e};F.current=Oe;const Me=Et(ue,Pe,_e),{x:ze,y:Je}=Rt(K,Ne,Me.x,Me.y,we());d(Y,ze,Je,{e:re,node:ne,newPosition:Oe})},[d,O,I,a,m,R,l,o,ue,n,y,Y,K,Ne,we]),Ue=C.useCallback((re,{node:ne})=>{if(!j||!I)return;const he=Ee.current;if(Ee.current=!1,de.current=!1,st.current={x:0,y:0},he){M(!1),F.current={left:0,top:0};return}const{left:se,top:ve}=F.current,Pe={top:ve,left:se};M(!1),F.current={left:0,top:0};const _e=Et(ue,ve,se),{x:Oe,y:Me}=Rt(K,Ne,_e.x,_e.y,we());j(Y,Oe,Me,{e:re,node:ne,newPosition:Pe})},[j,I,ue,K,Ne,we,Y]);De.current=Le,ye.current=it;const Ae=C.useCallback((re,{node:ne,size:he,handle:se},ve,Pe)=>{const _e=Pe==="onResizeStart"?k:Pe==="onResize"?z:X;if(!_e)return;let Oe;ne?Oe=to(se,ve,he,n):Oe={...he,top:ve.top,left:ve.left},_.current=Oe;const Me=qn(ue,Oe.width,Oe.height),{w:ze,h:Je}=Xn(K,Ne,Me.w,Me.h,se,we());_e(Y,ze,Je,{e:re.nativeEvent,node:ne,size:Oe,handle:se})},[k,z,X,n,ue,Y,K,Ne,we]),lt=C.useCallback((re,ne)=>{N(!0);const he=dt(ue,w,f,y,R),se={...ne,handle:ne.handle};Ae(re,se,he,"onResizeStart")},[Ae,ue,w,f,y,R]),ut=C.useCallback((re,ne)=>{const he=dt(ue,w,f,y,R),se={...ne,handle:ne.handle};Ae(re,se,he,"onResize")},[Ae,ue,w,f,y,R]),Ge=C.useCallback((re,ne)=>{N(!1),_.current={top:0,left:0,width:0,height:0};const he=dt(ue,w,f,y,R),se={...ne,handle:ne.handle};Ae(re,se,he,"onResizeStop")},[Ae,ue,w,f,y,R]);C.useEffect(()=>{if(!s)return;const re=H.current;if(!re)return;const ne=ae.current||{left:0,top:0},he=I&&(s.left!==ne.left||s.top!==ne.top);if(I){if(he){const se=s.left-F.current.left,ve=s.top-F.current.top,Pe={node:re,deltaX:se,deltaY:ve,lastX:F.current.left,lastY:F.current.top,x:s.left,y:s.top};ye.current?.(s.e,Pe)}}else{const se={node:re,deltaX:s.left,deltaY:s.top,lastX:0,lastY:0,x:s.left,y:s.top};De.current?.(s.e,se)}ae.current=s},[s,I,Y]);const We=dt(ue,w,f,y,R,I?F.current:null,$?_.current:null),bt=C.Children.only(t),xt=dt(ue,0,0,1,1),qt=[xt.width,xt.height],$t=[1/0,1/0],Te=bt.props,xr=Te.className,Ht=Te.style;let Ve=C.cloneElement(bt,{ref:H,className:Gt("react-grid-item",xr,g,{static:h,resizing:$,"react-draggable":u,"react-draggable-dragging":I,dropping:!!s,cssTransforms:S}),style:{...b,...Ht,...Wt(We)}});const Yt=U;return Ve=T.jsx(Bo.Resizable,{draggableOpts:{disabled:!x},className:x?void 0:"react-resizable-hide",width:We.width,height:We.height,minConstraints:qt,maxConstraints:$t,onResizeStart:lt,onResize:ut,onResizeStop:Ge,transformScale:D,resizeHandles:Z,handle:Yt,children:Ve}),Ve=T.jsx(qo.DraggableCore,{disabled:!u,onStart:Le,onDrag:it,onStop:Ue,handle:E,cancel:".react-resizable-handle"+(c?","+c:""),scale:D,nodeRef:H,children:Ve}),Ve}var $e=()=>{},Mn="react-grid-layout",zn=!1;try{zn=/firefox/i.test(navigator.userAgent)}catch{}function Fo(e,t){const r=C.Children.toArray(e),n=C.Children.toArray(t);if(r.length!==n.length)return!1;for(let o=0;o<r.length;o++){const i=r[o],l=n[o];if(i?.key!==l?.key)return!1}return!0}function kn(e,t,r,n){const o=[],i=new Set;C.Children.forEach(t,p=>{if(!C.isValidElement(p)||p.key===null)return;const u=String(p.key);i.add(u);const x=e.find(m=>m.i===u);if(x)o.push(et(x));else{const h=p.props["data-grid"];h?o.push({i:u,x:h.x??0,y:h.y??0,w:h.w??1,h:h.h??1,minW:h.minW,maxW:h.maxW,minH:h.minH,maxH:h.maxH,static:h.static,isDraggable:h.isDraggable,isResizable:h.isResizable,resizeHandles:h.resizeHandles,isBounded:h.isBounded}):o.push({i:u,x:0,y:Pt(o),w:1,h:1})}});const l=Zt(o,{cols:r});return n.compact(l,r)}function Xo(e){const{children:t,width:r,gridConfig:n,dragConfig:o,resizeConfig:i,dropConfig:l,positionStrategy:p=no,compactor:u,constraints:x=Mr,layout:m=[],droppingItem:h,autoSize:S=!0,className:P="",style:D={},innerRef:v,onLayoutChange:a=$e,onDragStart:s=$e,onDrag:g=$e,onDragStop:b=$e,onResizeStart:E=$e,onResize:c=$e,onResizeStop:w=$e,onDrop:f=$e,onDropDragOver:y=$e}=e,R=C.useMemo(()=>({...oo,...n}),[n]),q=C.useMemo(()=>({...ao,...o}),[o]),W=C.useMemo(()=>({...so,...i}),[i]),J=C.useMemo(()=>({...io,...l}),[l]),{cols:A,rowHeight:Y,maxRows:Z,margin:U,containerPadding:K}=R,{enabled:le,bounded:me,handle:O,cancel:d,threshold:j}=q,{enabled:k,handles:z,handleComponent:X}=W,{enabled:I,defaultItem:M,onDragOver:$}=J,N=u??or("vertical"),H=N.type,F=N.allowOverlap,_=N.preventCollision??!1,ae=C.useMemo(()=>h??{i:"__dropping-elem__",...M},[h,M]),je=p.type==="transform",De=p.scale,ye=K??U,[Ee,st]=C.useState(!1),[de,ue]=C.useState(()=>kn(m,t,A,N)),[Ce,we]=C.useState(null),[Ne,Wt]=C.useState(!1),[Le,it]=C.useState(null),[Ue,Ae]=C.useState(),lt=C.useRef(null),ut=C.useRef(null),Ge=C.useRef(null),We=C.useRef(0),bt=C.useRef(de),xt=C.useRef(m),qt=C.useRef(t),$t=C.useRef(H),Te=C.useRef(de);Te.current=de,C.useEffect(()=>{st(!0),qe(de,m)||a(de)},[]),C.useEffect(()=>{if(Ce||Le)return;const L=!qe(m,xt.current),G=!Fo(t,qt.current),B=H!==$t.current;if(L||G||B){const ie=kn(L?m:de,t,A,N);qe(ie,de)||ue(ie)}xt.current=m,qt.current=t,$t.current=H},[m,t,A,H,N,Ce,Le,de]),C.useEffect(()=>{if(!Ce&&!qe(de,bt.current)){bt.current=de;const L=de.filter(G=>G.i!==ae.i);a(L)}},[de,Ce,a,ae.i]);const xr=C.useMemo(()=>{if(!S)return;const L=Pt(de),G=ye[1];return L*Y+(L-1)*U[1]+G*2+"px"},[S,de,Y,U,ye]),Ht=C.useCallback((L,G,B,Q)=>{const ie=Te.current,oe=Qe(ie,L);if(!oe)return;const ce={w:oe.w,h:oe.h,x:oe.x,y:oe.y,i:L};lt.current=et(oe),Ge.current=ie,we(ce),s(ie,oe,oe,null,Q.e,Q.node)},[s]),Ve=C.useCallback((L,G,B,Q)=>{const ie=Te.current,oe=lt.current,ce=Qe(ie,L);if(!ce)return;const be={w:ce.w,h:ce.h,x:ce.x,y:ce.y,i:L},fe=tt(ie,ce,G,B,!0,_,H,A,F);g(fe,oe,ce,be,Q.e,Q.node),ue(N.compact(fe,A)),we(be)},[_,H,A,F,N,g]),Yt=C.useCallback((L,G,B,Q)=>{if(!Ce)return;const ie=Te.current,oe=lt.current,ce=Qe(ie,L);if(!ce)return;const be=tt(ie,ce,G,B,!0,_,H,A,F),fe=N.compact(be,A);b(fe,oe,ce,null,Q.e,Q.node);const Se=Ge.current;lt.current=null,Ge.current=null,we(null),ue(fe),Se&&!qe(Se,fe)&&a(fe)},[Ce,_,H,A,F,N,b,a]),re=C.useCallback((L,G,B,Q)=>{const ie=Te.current,oe=Qe(ie,L);oe&&(ut.current=et(oe),Ge.current=ie,Wt(!0),E(ie,oe,oe,null,Q.e,Q.node))},[E]),ne=C.useCallback((L,G,B,Q)=>{const ie=Te.current,oe=ut.current,{handle:ce}=Q;let be=!1,fe,Se;const[Bt,He]=Yn(ie,L,pe=>(fe=pe.x,Se=pe.y,["sw","w","nw","n","ne"].includes(ce)&&(["sw","nw","w"].includes(ce)&&(fe=pe.x+(pe.w-G),G=pe.x!==fe&&fe<0?pe.w:G,fe=fe<0?0:fe),["ne","n","nw"].includes(ce)&&(Se=pe.y+(pe.h-B),B=pe.y!==Se&&Se<0?pe.h:B,Se=Se<0?0:Se),be=!0),_&&!F&&_r(ie,{...pe,w:G,h:B,x:fe??pe.x,y:Se??pe.y}).filter(Xt=>Xt.i!==pe.i).length>0&&(Se=pe.y,B=pe.h,fe=pe.x,G=pe.w,be=!1),pe.w=G,pe.h=B,pe));if(!He)return;let wt=Bt;be&&fe!==void 0&&Se!==void 0&&(wt=tt(Bt,He,fe,Se,!0,_,H,A,F));const Ft={w:He.w,h:He.h,x:He.x,y:He.y,i:L,static:!0};c(wt,oe,He,Ft,Q.e,Q.node),ue(N.compact(wt,A)),we(Ft)},[_,H,A,F,N,c]),he=C.useCallback((L,G,B,Q)=>{const ie=Te.current,oe=ut.current,ce=Qe(ie,L),be=N.compact(ie,A);w(be,oe,ce??null,null,Q.e,Q.node);const fe=Ge.current;ut.current=null,Ge.current=null,we(null),Wt(!1),ue(be),fe&&!qe(fe,be)&&a(be)},[A,N,w,a]),se=C.useCallback(()=>{const L=Te.current;if(!L.some(Q=>Q.i===ae.i)){it(null),we(null),Ae(void 0);return}const B=N.compact(L.filter(Q=>Q.i!==ae.i),A);ue(B),it(null),we(null),Ae(void 0)},[ae.i,A,N]),ve=C.useCallback(L=>{if(L.preventDefault(),L.stopPropagation(),zn&&!L.nativeEvent.target?.classList.contains(Mn))return!1;const G=$?$(L.nativeEvent):y(L);if(G===!1)return Le&&se(),!1;const{dragOffsetX:B=0,dragOffsetY:Q=0,...ie}=G??{},oe={...ae,...ie},ce=L.currentTarget.getBoundingClientRect(),be={cols:A,margin:U,maxRows:Z,rowHeight:Y,containerWidth:r,containerPadding:ye},fe=nt(be),Se=ot(oe.w,fe,U[0]),Bt=ot(oe.h,Y,U[1]),He=Se/2,wt=Bt/2,Ft=L.clientX-ce.left+B-He,pe=L.clientY-ce.top+Q-wt,wr=Math.max(0,Ft),Xt=Math.max(0,pe),Ut={left:wr/De,top:Xt/De,e:L.nativeEvent};if(Le)Ue&&(Ue.left!==Ut.left||Ue.top!==Ut.top)&&Ae(Ut);else{const Sr=Wn(be,Xt,wr,oe.w,oe.h);it(T.jsx("div",{},oe.i)),Ae(Ut),ue([...Te.current,{...oe,x:Sr.x,y:Sr.y,static:!1,isDraggable:!0}])}},[Le,Ue,ae,$,y,se,De,A,U,Z,Y,r,ye]),Pe=C.useCallback(L=>{L.preventDefault(),L.stopPropagation(),We.current--,We.current<0&&(We.current=0),We.current===0&&se()},[se]),_e=C.useCallback(L=>{L.preventDefault(),L.stopPropagation(),We.current++},[]),Oe=C.useCallback(L=>{L.preventDefault(),L.stopPropagation();const G=Te.current,B=G.find(Q=>Q.i===ae.i);We.current=0,se(),f(G,B,L.nativeEvent)},[ae.i,se,f]),Me=C.useCallback((L,G)=>{if(!L||!L.key)return null;const B=Qe(de,String(L.key));if(!B)return null;const Q=typeof B.isDraggable=="boolean"?B.isDraggable:!B.static&&le,ie=typeof B.isResizable=="boolean"?B.isResizable:!B.static&&k,oe=B.resizeHandles||[...z],ce=Q&&me&&B.isBounded!==!1,be=X;return T.jsx(Tn,{containerWidth:r,cols:A,margin:U,containerPadding:ye,maxRows:Z,rowHeight:Y,cancel:d,handle:O,onDragStart:Ht,onDrag:Ve,onDragStop:Yt,onResizeStart:re,onResize:ne,onResizeStop:he,isDraggable:Q,isResizable:ie,isBounded:ce,useCSSTransforms:je&&Ee,usePercentages:!Ee,transformScale:De,positionStrategy:p,dragThreshold:j,w:B.w,h:B.h,x:B.x,y:B.y,i:B.i,minH:B.minH,minW:B.minW,maxH:B.maxH,maxW:B.maxW,static:B.static,droppingPosition:G?Ue:void 0,resizeHandles:oe,resizeHandle:be,constraints:x,layoutItem:B,layout:de,children:L},B.i)},[de,r,A,U,ye,Z,Y,d,O,Ht,Ve,Yt,re,ne,he,le,k,me,je,Ee,De,p,j,Ue,z,X,x]),ze=()=>Ce?T.jsx(Tn,{w:Ce.w,h:Ce.h,x:Ce.x,y:Ce.y,i:Ce.i,className:`react-grid-placeholder ${Ne?"placeholder-resizing":""}`,containerWidth:r,cols:A,margin:U,containerPadding:ye,maxRows:Z,rowHeight:Y,isDraggable:!1,isResizable:!1,isBounded:!1,useCSSTransforms:je,transformScale:De,constraints:x,layout:de,children:T.jsx("div",{})}):null,Je=Gt(Mn,P),Ke={height:xr,...D};return T.jsxs("div",{ref:v,className:Je,style:Ke,onDrop:I?Oe:void 0,onDragLeave:I?Pe:void 0,onDragEnter:I?_e:void 0,onDragOver:I?ve:void 0,children:[C.Children.map(t,L=>C.isValidElement(L)?Me(L):null),I&&Le&&Me(Le,!0),ze()]})}var Uo={lg:1200,md:996,sm:768,xs:480,xxs:0},Go={lg:12,md:10,sm:6,xs:4,xxs:2},mr=()=>{};function Vo(e,t,r,n){const o=[];C.Children.forEach(t,l=>{if(!C.isValidElement(l)||l.key===null)return;const p=String(l.key),u=e.find(x=>x.i===p);if(u)o.push({...u,i:p});else{const m=l.props["data-grid"];m?o.push({i:p,x:m.x??0,y:m.y??0,w:m.w??1,h:m.h??1,minW:m.minW,maxW:m.maxW,minH:m.minH,maxH:m.maxH,static:m.static,isDraggable:m.isDraggable,isResizable:m.isResizable,resizeHandles:m.resizeHandles,isBounded:m.isBounded}):o.push({i:p,x:0,y:Pt(o),w:1,h:1})}});const i=Zt(o,{cols:r});return n.compact(i,r)}function Jo(e){const{children:t,width:r,breakpoint:n,breakpoints:o=Uo,cols:i=Go,layouts:l={},rowHeight:p=150,maxRows:u=1/0,margin:x=[10,10],containerPadding:m=null,compactor:h,onBreakpointChange:S=mr,onLayoutChange:P=mr,onWidthChange:D=mr,...v}=e,a=h??or("vertical"),s=a.type,g=a.allowOverlap,b=C.useMemo(()=>n??qr(o,r),[]),E=C.useMemo(()=>$r(b,i),[b,i]),c=C.useMemo(()=>ar(l,o,b,b,E,s),[]),[w,f]=C.useState(b),[y,R]=C.useState(E),[q,W]=C.useState(c),[J,A]=C.useState(l),Y=C.useRef(r),Z=C.useRef(n),U=C.useRef(o),K=C.useRef(i),le=C.useRef(l),me=C.useRef(s),O=C.useRef(J);C.useEffect(()=>{O.current=J},[J]);const d=C.useMemo(()=>qe(l,le.current)?null:ar(l,o,w,w,y,a),[l,o,w,y,a]),j=d??q;C.useEffect(()=>{d!==null&&(W(d),A(l),O.current=l,le.current=l)},[d,l]),C.useEffect(()=>{if(s!==me.current){const M=a.compact(Be(j),y),$={...O.current,[w]:M};W(M),A($),O.current=$,P(M,$),me.current=s}},[s,a,j,y,g,w,P]),C.useEffect(()=>{const M=r!==Y.current,$=n!==Z.current,N=!qe(o,U.current),H=!qe(i,K.current);if(M||$||N||H){const F=n??qr(o,r),_=$r(F,i),ae=w;if(ae!==F||N||H){const ye={...O.current};ye[ae]||(ye[ae]=Be(q));let Ee=ar(ye,o,F,ae,_,a);Ee=Vo(Ee,t,_,a),ye[F]=Ee,f(F),R(_),W(Ee),A(ye),O.current=ye,S(F,_),P(Ee,ye)}const je=_t(x,F),De=m?_t(m,F):null;D(r,je,_,De),Y.current=r,Z.current=n,U.current=o,K.current=i}},[r,n,o,i,w,y,q,t,a,s,g,x,m,S,P,D]);const k=C.useCallback(M=>{const N={...O.current,[w]:M};W(M),A(N),O.current=N,P(M,N)},[w,P]),z=C.useMemo(()=>_t(x,w),[x,w]),X=C.useMemo(()=>m===null?null:_t(m,w),[m,w]),I=C.useMemo(()=>({cols:y,rowHeight:p,maxRows:u,margin:z,containerPadding:X}),[y,p,u,z,X]);return T.jsx(Xo,{...v,width:r,gridConfig:I,compactor:a,onLayoutChange:k,layout:j,children:t})}function Ko({editMode:e}){const t=rt.useDnd();return ke.useEffect(()=>{if(e)return t.startDrag({id:"dashboard-layout",type:"dashboard-widget",data:{}}),()=>{t.endDrag()};t.endDrag("dashboard")},[e,t]),null}const Zo=["hsl(var(--chart-1))","hsl(var(--chart-2))","hsl(var(--chart-3))","hsl(var(--chart-4))","hsl(var(--chart-5))"],yr=({schema:e,className:t,onLayoutChange:r,persistLayoutKey:n="dashboard-layout",onRefresh:o})=>{const{width:i,containerRef:l,mounted:p}=jo(),[u,x]=ke.useState(!1),[m,h]=ke.useState(!1),S=rt.useHasDndProvider(),P=ke.useRef(null),D=ke.useCallback(()=>{o&&(h(!0),o(),setTimeout(()=>h(!1),600))},[o]);ke.useEffect(()=>{if(!(!e.refreshInterval||e.refreshInterval<=0||!o))return P.current=setInterval(D,e.refreshInterval*1e3),()=>{P.current&&clearInterval(P.current)}},[e.refreshInterval,o,D]);const[v,a]=ke.useState(()=>{if(typeof window<"u"&&n){const c=localStorage.getItem(n);if(c)try{return JSON.parse(c)}catch(w){console.error("Failed to parse saved layout:",w)}}return{lg:e.widgets?.map((c,w)=>({i:c.id||`widget-${w}`,x:c.layout?.x||w%4*3,y:c.layout?.y||Math.floor(w/4)*4,w:c.layout?.w||3,h:c.layout?.h||4}))||[]}}),s=ke.useCallback((c,w)=>{a(w),r?.(c)},[r]),g=ke.useCallback(()=>{typeof window<"u"&&n&&localStorage.setItem(n,JSON.stringify(v)),x(!1)},[v,n]),b=ke.useCallback(()=>{const c={lg:e.widgets?.map((w,f)=>({i:w.id||`widget-${f}`,x:w.layout?.x||f%4*3,y:w.layout?.y||Math.floor(f/4)*4,w:w.layout?.w||3,h:w.layout?.h||4}))||[]};a(c),typeof window<"u"&&n&&localStorage.removeItem(n)},[e.widgets,n]),E=ke.useCallback(c=>{if(c.component)return c.component;const w=c.type,f=c.options||{};if(w==="bar"||w==="line"||w==="area"||w==="pie"||w==="donut"){const y=c.data||f.data,R=Array.isArray(y)?y:y?.items||[],q=f.xField||"name",W=f.yField||"value";return{type:"chart",chartType:w,data:R,xAxisKey:q,series:[{dataKey:W}],colors:Zo,className:"h-full"}}if(w==="table"){const y=c.data||f.data;return{type:"data-table",...f,data:y?.items||[],searchable:!1,pagination:!1,className:"border-0"}}return{...c,...f}},[]);return T.jsxs("div",{ref:l,className:V.cn("w-full",t),"data-testid":"grid-layout",children:[S&&T.jsx(Ko,{editMode:u}),T.jsxs("div",{className:"mb-4 flex items-center justify-between",children:[T.jsx("h2",{className:"text-2xl font-bold",children:e.title||"Dashboard"}),T.jsx("div",{className:"flex gap-2",children:u?T.jsxs(T.Fragment,{children:[T.jsxs(V.Button,{onClick:g,size:"sm",variant:"default",children:[T.jsx(Re.Save,{className:"h-4 w-4 mr-2"}),"Save Layout"]}),T.jsxs(V.Button,{onClick:b,size:"sm",variant:"outline",children:[T.jsx(Re.X,{className:"h-4 w-4 mr-2"}),"Reset"]}),T.jsx(V.Button,{onClick:()=>x(!1),size:"sm",variant:"ghost",children:"Cancel"})]}):T.jsxs(T.Fragment,{children:[o&&T.jsxs(V.Button,{onClick:D,size:"sm",variant:"outline",disabled:m,"aria-label":"Refresh dashboard",children:[T.jsx(Re.RefreshCw,{className:V.cn("h-4 w-4 mr-2",m&&"animate-spin")}),m?"Refreshing…":"Refresh All"]}),T.jsxs(V.Button,{onClick:()=>x(!0),size:"sm",variant:"outline",children:[T.jsx(Re.Edit,{className:"h-4 w-4 mr-2"}),"Edit Layout"]})]})})]}),p&&T.jsx(Jo,{className:"layout",width:i,layouts:v,breakpoints:{lg:1200,md:996,sm:768,xs:480,xxs:0},cols:{lg:12,md:10,sm:6,xs:4,xxs:2},rowHeight:60,dragConfig:{enabled:u,handle:".drag-handle"},resizeConfig:{enabled:u},onLayoutChange:s,children:e.widgets?.map((c,w)=>{const f=c.id||`widget-${w}`,y=E(c),R=c.type==="metric";return T.jsx("div",{className:"h-full",children:R?T.jsxs("div",{className:"h-full w-full relative",children:[u&&T.jsx("div",{className:"drag-handle absolute top-2 right-2 z-10 cursor-move p-1 bg-background/80 rounded border border-border",children:T.jsx(Re.GripVertical,{className:"h-4 w-4"})}),T.jsx(rt.SchemaRenderer,{schema:y,className:"h-full w-full"})]}):T.jsxs(V.Card,{className:V.cn("h-full overflow-hidden border-border/50 shadow-sm transition-all","bg-card/50 backdrop-blur-sm",u&&"ring-2 ring-primary/20"),children:[c.title&&T.jsxs(V.CardHeader,{className:"pb-2 border-b border-border/40 bg-muted/20 flex flex-row items-center justify-between",children:[T.jsx(V.CardTitle,{className:"text-base font-medium tracking-tight truncate",title:c.title,children:c.title}),u&&T.jsx("div",{className:"drag-handle cursor-move p-1 hover:bg-muted/40 rounded",children:T.jsx(Re.GripVertical,{className:"h-4 w-4"})})]}),T.jsx(V.CardContent,{className:"p-0 h-full",children:T.jsx("div",{className:V.cn("h-full w-full overflow-auto p-4"),children:T.jsx(rt.SchemaRenderer,{schema:y})})})]})},f)})})]})},vr=({label:e,value:t,trend:r,icon:n,className:o,description:i,...l})=>{const p=C.useMemo(()=>{if(typeof n=="string"){const u=Pr[n];return u?T.jsx(u,{className:"h-4 w-4 text-muted-foreground"}):null}return n},[n]);return T.jsxs(V.Card,{className:V.cn("h-full",o),...l,children:[T.jsxs(V.CardHeader,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[T.jsx(V.CardTitle,{className:"text-sm font-medium",children:e}),p&&T.jsx("div",{className:"h-4 w-4 text-muted-foreground",children:p})]}),T.jsxs(V.CardContent,{children:[T.jsx("div",{className:"text-2xl font-bold",children:t}),(r||i)&&T.jsxs("p",{className:"text-xs text-muted-foreground flex items-center mt-1",children:[r&&T.jsxs("span",{className:V.cn("flex items-center mr-2",r.direction==="up"&&"text-green-500",r.direction==="down"&&"text-red-500",r.direction==="neutral"&&"text-yellow-500"),children:[r.direction==="up"&&T.jsx(Re.ArrowUpIcon,{className:"h-3 w-3 mr-1"}),r.direction==="down"&&T.jsx(Re.ArrowDownIcon,{className:"h-3 w-3 mr-1"}),r.direction==="neutral"&&T.jsx(Re.MinusIcon,{className:"h-3 w-3 mr-1"}),r.value,"%"]}),i||r?.label]})]})]})},br=({title:e,value:t,icon:r,trend:n,trendValue:o,description:i,className:l,...p})=>{const u=r&&Pr[r];return T.jsxs(V.Card,{className:V.cn("h-full",l),...p,children:[T.jsxs(V.CardHeader,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[T.jsx(V.CardTitle,{className:"text-sm font-medium",children:e}),u&&T.jsx(u,{className:"h-4 w-4 text-muted-foreground"})]}),T.jsxs(V.CardContent,{children:[T.jsx("div",{className:"text-2xl font-bold",children:t}),(n||o||i)&&T.jsxs("p",{className:"text-xs text-muted-foreground flex items-center mt-1",children:[n&&o&&T.jsxs("span",{className:V.cn("flex items-center mr-2",n==="up"&&"text-green-500",n==="down"&&"text-red-500",n==="neutral"&&"text-yellow-500"),children:[n==="up"&&T.jsx(Re.ArrowUpIcon,{className:"h-3 w-3 mr-1"}),n==="down"&&T.jsx(Re.ArrowDownIcon,{className:"h-3 w-3 mr-1"}),n==="neutral"&&T.jsx(Re.MinusIcon,{className:"h-3 w-3 mr-1"}),o]}),i]})]})]})};Ye.ComponentRegistry.register("dashboard",Vt,{namespace:"view",label:"Dashboard",category:"Complex",icon:"layout-dashboard",inputs:[{name:"columns",type:"number",label:"Columns",defaultValue:3},{name:"gap",type:"number",label:"Gap",defaultValue:4},{name:"className",type:"string",label:"CSS Class"}],defaultProps:{columns:3,widgets:[]}}),Ye.ComponentRegistry.register("metric",vr,{namespace:"plugin-dashboard",label:"Metric Widget",category:"Dashboard",inputs:[{name:"label",type:"string",label:"Label"},{name:"value",type:"string",label:"Value"}]}),Ye.ComponentRegistry.register("metric-card",br,{namespace:"plugin-dashboard",label:"Metric Card",category:"Dashboard",inputs:[{name:"title",type:"string",label:"Title"},{name:"value",type:"string",label:"Value",required:!0},{name:"icon",type:"string",label:"Icon (Lucide name)"},{name:"trend",type:"enum",label:"Trend",enum:[{label:"Up",value:"up"},{label:"Down",value:"down"},{label:"Neutral",value:"neutral"}]},{name:"trendValue",type:"string",label:"Trend Value (e.g., +12%)"},{name:"description",type:"string",label:"Description"}],defaultProps:{title:"Metric",value:"0"}}),Ye.ComponentRegistry.register("dashboard-grid",yr,{namespace:"plugin-dashboard",label:"Dashboard Grid (Editable)",category:"Complex",icon:"layout-grid",inputs:[{name:"title",type:"string",label:"Title"},{name:"persistLayoutKey",type:"string",label:"Layout Storage Key",defaultValue:"dashboard-layout"},{name:"className",type:"string",label:"CSS Class"}],defaultProps:{title:"Dashboard",widgets:[],persistLayoutKey:"dashboard-layout"}});const Qo={DashboardRenderer:Vt,DashboardGridLayout:yr,MetricWidget:vr,MetricCard:br};xe.DashboardGridLayout=yr,xe.DashboardRenderer=Vt,xe.MetricCard=br,xe.MetricWidget=vr,xe.dashboardComponents=Qo,Object.defineProperty(xe,Symbol.toStringTag,{value:"Module"})}));
6
+ <%s key={someKey} {...props} />`,k,A,H,A),T[A+k]=!0)}if(A=null,I!==void 0&&(r(I),A=""+I),o(_)&&(r(_.key),A=""+_.key),"key"in _){I={};for(var $ in _)$!=="key"&&(I[$]=_[$])}else I=_;return A&&f(I,typeof y=="function"?y.displayName||y.name||"Unknown":y),v(y,A,I,a(),Y,M)}function h(y){j(y)?y._store&&(y._store.validated=1):typeof y=="object"&&y!==null&&y.$$typeof===D&&(y._payload.status==="fulfilled"?j(y._payload.value)&&y._payload.value._store&&(y._payload.value._store.validated=1):y._store&&(y._store.validated=1))}function j(y){return typeof y=="object"&&y!==null&&y.$$typeof===R}var O=C,R=Symbol.for("react.transitional.element"),x=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),l=Symbol.for("react.strict_mode"),b=Symbol.for("react.profiler"),S=Symbol.for("react.consumer"),E=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),w=Symbol.for("react.suspense"),d=Symbol.for("react.suspense_list"),m=Symbol.for("react.memo"),D=Symbol.for("react.lazy"),F=Symbol.for("react.activity"),P=Symbol.for("react.client.reference"),q=O.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,z=Object.prototype.hasOwnProperty,L=Array.isArray,X=console.createTask?console.createTask:function(){return null};O={react_stack_bottom_frame:function(y){return y()}};var U,J={},Q=O.react_stack_bottom_frame.bind(O,s)(),pe=X(n(s)),T={};dt.Fragment=i,dt.jsx=function(y,_,I){var k=1e4>q.recentlyCreatedOwnerStacks++;return g(y,_,I,!1,k?Error("react-stack-top-frame"):Q,k?X(n(y)):pe)},dt.jsxs=function(y,_,I){var k=1e4>q.recentlyCreatedOwnerStacks++;return g(y,_,I,!0,k?Error("react-stack-top-frame"):Q,k?X(n(y)):pe)}})()),dt}var Fr;function ra(){return Fr||(Fr=1,process.env.NODE_ENV==="production"?Ct.exports=ea():Ct.exports=ta()),Ct.exports}var p=ra();function nt(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)&&e.provider==="object"}function Et(e){if(e!=null)return typeof e=="string"?e:e.defaultValue||e.key}const tr=["hsl(var(--chart-1))","hsl(var(--chart-2))","hsl(var(--chart-3))","hsl(var(--chart-4))","hsl(var(--chart-5))"],Pt=C.forwardRef(({schema:e,className:t,dataSource:r,onRefresh:n,recordCount:a,userActions:s,designMode:o,selectedWidgetId:f,onWidgetClick:u,...v},g)=>{const h=e.columns||4,j=e.gap||4,[O,R]=C.useState(!1),[x,i]=C.useState(!1),l=C.useRef(null);C.useEffect(()=>{const P=()=>i(window.innerWidth<768);return P(),window.addEventListener("resize",P),()=>window.removeEventListener("resize",P)},[]);const b=C.useCallback(()=>{n&&(R(!0),n(),setTimeout(()=>R(!1),600))},[n]);C.useEffect(()=>{if(!(!e.refreshInterval||e.refreshInterval<=0||!n))return l.current=setInterval(b,e.refreshInterval*1e3),()=>{l.current&&clearInterval(l.current)}},[e.refreshInterval,n,b]);const S=C.useCallback((P,q)=>{!o||!u||!q||(P.stopPropagation(),u(q))},[o,u]),E=C.useCallback((P,q,z)=>{if(!o||!u)return;const L=e.widgets||[];if(P.key==="Enter"||P.key===" ")P.preventDefault(),u(q??null);else if(P.key==="ArrowRight"||P.key==="ArrowDown"){P.preventDefault();const X=z+1<L.length?L[z+1]:null;X?.id&&u(X.id)}else if(P.key==="ArrowLeft"||P.key==="ArrowUp"){P.preventDefault();const X=z-1>=0?L[z-1]:null;X?.id&&u(X.id)}else P.key==="Escape"&&(P.preventDefault(),u(null))},[o,u,e.widgets]),c=C.useCallback(P=>{!o||!u||P.target===P.currentTarget&&u(null)},[o,u]),w=(P,q,z)=>{const L=P.layout?{...P.layout,w:Math.min(P.layout.w,h)}:void 0,U=(()=>{if(P.component)return P.component;const k=P.type,Y=P.options||{};if(k==="bar"||k==="line"||k==="area"||k==="pie"||k==="donut"||k==="scatter"){const M=P.data||Y.data,A=P.categoryField||Y.xField||"name",H=P.valueField||Y.yField||"value";if(nt(M)){const B=M.aggregate,G=B?{field:P.valueField||B.field,function:P.aggregate||B.function,groupBy:P.categoryField||B.groupBy}:void 0,N=G?.field||H;return{type:"object-chart",chartType:k,objectName:P.object||M.object,aggregate:G,xAxisKey:A,series:[{dataKey:N}],colors:tr,className:"h-[200px] sm:h-[250px] md:h-[300px]"}}if(!M&&P.object){const B=P.aggregate?{field:P.valueField||"value",function:P.aggregate,groupBy:P.categoryField||"name"}:void 0;return{type:"object-chart",chartType:k,objectName:P.object,aggregate:B,xAxisKey:A,series:[{dataKey:P.valueField||"value"}],colors:tr,className:"h-[200px] sm:h-[250px] md:h-[300px]"}}const $=Array.isArray(M)?M:M?.items||[];return{type:"chart",chartType:k,data:$,xAxisKey:A,series:[{dataKey:H}],colors:tr,className:"h-[200px] sm:h-[250px] md:h-[300px]"}}if(k==="table"){const M=P.data||Y.data;if(nt(M)){const{data:A,...H}=Y;return{type:"object-data-table",...H,objectName:P.object||M.object,dataProvider:M,filter:M.filter||P.filter,searchable:P.searchable??!1,pagination:P.pagination??!1,className:"border-0"}}return!M&&P.object?{type:"object-data-table",...Y,objectName:P.object,filter:P.filter,searchable:P.searchable??!1,pagination:P.pagination??!1,className:"border-0"}:{type:"data-table",...Y,data:M?.items||[],searchable:!1,pagination:!1,className:"border-0"}}if(k==="pivot"){const M=P.data||Y.data;if(nt(M)){const{data:A,...H}=Y;return{type:"object-pivot",...H,objectName:P.object||M.object,dataProvider:M,filter:M.filter||P.filter}}return!M&&P.object?{type:"object-pivot",...Y,objectName:P.object,filter:P.filter}:{type:"pivot",...Y,data:Array.isArray(M)?M:M?.items||[]}}return{...P,...Y}})(),J=P.type==="metric",Q=Et(P.title),pe=Et(P.description),T=P.id||Q||`widget-${q}`,y=o&&f===P.id,_=o?{"data-testid":`dashboard-preview-widget-${P.id}`,"data-widget-id":P.id,role:"button",tabIndex:0,"aria-selected":y,"aria-label":`Widget: ${Q||`Widget ${q+1}`}`,onClick:k=>S(k,P.id),onKeyDown:k=>E(k,P.id,q)}:{},I=o?W.cn("cursor-pointer rounded-lg transition-all outline-none","focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",y?"ring-2 ring-primary shadow-md bg-primary/5 dark:bg-primary/10":"hover:ring-2 hover:ring-primary/40 hover:shadow-sm"):void 0;return J?p.jsxs("div",{className:W.cn("h-full w-full",o&&"relative",I),style:!x&&L?{gridColumn:`span ${L.w}`,gridRow:`span ${L.h}`}:void 0,..._,children:[p.jsx(ze.SchemaRenderer,{schema:U,className:W.cn("h-full w-full",o&&"pointer-events-none")}),o&&p.jsx("div",{className:"absolute inset-0 z-10","aria-hidden":"true","data-testid":"widget-click-overlay"})]},T):p.jsxs(W.Card,{className:W.cn("overflow-hidden border-border/50 shadow-sm transition-all hover:shadow-md","bg-card/50 backdrop-blur-sm",z&&"w-full",o&&"relative",I),style:!x&&L?{gridColumn:`span ${L.w}`,gridRow:`span ${L.h}`}:void 0,..._,children:[Q&&p.jsxs(W.CardHeader,{className:"pb-2 border-b border-border/40 bg-muted/20 px-3 sm:px-6",children:[p.jsx(W.CardTitle,{className:"text-sm sm:text-base font-medium tracking-tight truncate",title:Q,children:Q}),pe&&p.jsx("p",{className:"text-xs text-muted-foreground mt-0.5 line-clamp-2",children:pe})]}),p.jsx(W.CardContent,{className:"p-0",children:p.jsx("div",{className:W.cn("h-full w-full","p-3 sm:p-4 md:p-6",o&&"pointer-events-none"),children:p.jsx(ze.SchemaRenderer,{schema:U})})}),o&&p.jsx("div",{className:"absolute inset-0 z-10","aria-hidden":"true","data-testid":"widget-click-overlay"})]},T)},d=e.header&&p.jsxs("div",{className:"col-span-full mb-4",children:[e.header.showTitle!==!1&&e.title&&p.jsx("h2",{className:"text-lg font-semibold tracking-tight",children:Et(e.title)}),e.header.showDescription!==!1&&e.description&&p.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:Et(e.description)}),e.header.actions&&e.header.actions.length>0&&p.jsx("div",{className:"flex gap-2 mt-3",children:e.header.actions.map((P,q)=>p.jsx(W.Button,{variant:"outline",size:"sm",children:P.label},q))})]}),m=a!==void 0&&p.jsxs("span",{className:"text-xs text-muted-foreground",children:[a.toLocaleString()," records"]}),D=s?JSON.stringify(s):void 0,F=n&&p.jsxs("div",{className:W.cn("flex items-center justify-end gap-3 mb-2",!x&&"col-span-full"),children:[m,p.jsxs(W.Button,{variant:"outline",size:"sm",onClick:b,disabled:O,"aria-label":"Refresh dashboard",children:[p.jsx(je.RefreshCw,{className:W.cn("h-4 w-4 mr-2",O&&"animate-spin")}),O?"Refreshing…":"Refresh All"]})]});if(x){const P=e.widgets?.filter(z=>z.type==="metric")||[],q=e.widgets?.filter(z=>z.type!=="metric")||[];return p.jsxs("div",{ref:g,className:W.cn("flex flex-col gap-4 px-4",t),"data-user-actions":D,onClick:c,...v,children:[d,F,P.length>0&&p.jsx("div",{className:"grid grid-cols-2 gap-3",onClick:c,children:P.map((z,L)=>w(z,L))}),q.length>0&&p.jsx("div",{className:"flex flex-col gap-4",onClick:c,children:q.map((z,L)=>w(z,L,!0))})]})}return p.jsxs("div",{ref:g,className:W.cn("grid auto-rows-min","grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4",t),style:{...h>4&&{gridTemplateColumns:`repeat(${h}, minmax(0, 1fr))`},gap:`${j*.25}rem`},"data-user-actions":D,onClick:c,...v,children:[d,F,e.widgets?.map((P,q)=>w(P,q))]})});function at(e){const{margin:t,containerPadding:r,containerWidth:n,cols:a}=e;return(n-t[0]*(a-1)-r[0]*2)/a}function ot(e,t,r){return Number.isFinite(e)?Math.round(t*e+Math.max(0,e-1)*r):e}function pt(e,t,r,n,a,s,o){const{margin:f,containerPadding:u,rowHeight:v}=e,g=at(e);let h,j,O,R;if(o?(h=Math.round(o.width),j=Math.round(o.height)):(h=ot(n,g,f[0]),j=ot(a,v,f[1])),s?(O=Math.round(s.top),R=Math.round(s.left)):o?(O=Math.round(o.top),R=Math.round(o.left)):(O=Math.round((v+f[1])*r+u[1]),R=Math.round((g+f[0])*t+u[0])),!s&&!o){if(Number.isFinite(n)){const i=Math.round((g+f[0])*(t+n)+u[0])-R-h;i!==f[0]&&(h+=i-f[0])}if(Number.isFinite(a)){const i=Math.round((v+f[1])*(r+a)+u[1])-O-j;i!==f[1]&&(j+=i-f[1])}}return{top:O,left:R,width:h,height:j}}function na(e,t,r,n,a){const{margin:s,containerPadding:o,cols:f,rowHeight:u,maxRows:v}=e,g=at(e);let h=Math.round((r-o[0])/(g+s[0])),j=Math.round((t-o[1])/(u+s[1]));return h=Dt(h,0,f-n),j=Dt(j,0,v-a),{x:h,y:j}}function Ot(e,t,r){const{margin:n,containerPadding:a,rowHeight:s}=e,o=at(e),f=Math.round((r-a[0])/(o+n[0])),u=Math.round((t-a[1])/(s+n[1]));return{x:f,y:u}}function aa(e,t,r){const{margin:n,rowHeight:a}=e,s=at(e),o=Math.max(1,Math.round((t+n[0])/(s+n[0]))),f=Math.max(1,Math.round((r+n[1])/(a+n[1])));return{w:o,h:f}}function Dt(e,t,r){return Math.max(Math.min(e,r),t)}function rr(e,t){return!(e.i===t.i||e.x+e.w<=t.x||e.x>=t.x+t.w||e.y+e.h<=t.y||e.y>=t.y+t.h)}function Qe(e,t){for(let r=0;r<e.length;r++){const n=e[r];if(n!==void 0&&rr(n,t))return n}}function qr(e,t){return e.filter(r=>rr(r,t))}function oa(e,t){return t==="horizontal"?$r(e):t==="vertical"||t==="wrap"?nr(e):[...e]}function nr(e){return[...e].sort((t,r)=>t.y!==r.y?t.y-r.y:t.x-r.x)}function $r(e){return[...e].sort((t,r)=>t.x!==r.x?t.x-r.x:t.y-r.y)}function Tt(e){let t=0;for(let r=0;r<e.length;r++){const n=e[r];if(n!==void 0){const a=n.y+n.h;a>t&&(t=a)}}return t}function et(e,t){for(let r=0;r<e.length;r++){const n=e[r];if(n!==void 0&&n.i===t)return n}}function Rt(e){return e.filter(t=>t.static===!0)}function tt(e){return{i:e.i,x:e.x,y:e.y,w:e.w,h:e.h,minW:e.minW,maxW:e.maxW,minH:e.minH,maxH:e.maxH,moved:!!e.moved,static:!!e.static,isDraggable:e.isDraggable,isResizable:e.isResizable,resizeHandles:e.resizeHandles,constraints:e.constraints,isBounded:e.isBounded}}function Be(e){const t=new Array(e.length);for(let r=0;r<e.length;r++){const n=e[r];n!==void 0&&(t[r]=tt(n))}return t}function sa(e,t){const r=new Array(e.length);for(let n=0;n<e.length;n++){const a=e[n];a!==void 0&&(t.i===a.i?r[n]=t:r[n]=a)}return r}function ia(e,t,r){let n=et(e,t);return n?(n=r(tt(n)),[sa(e,n),n]):[[...e],null]}function ar(e,t){const r=Rt(e);for(let n=0;n<e.length;n++){const a=e[n];if(a!==void 0)if(a.x+a.w>t.cols&&(a.x=t.cols-a.w),a.x<0&&(a.x=0,a.w=t.cols),!a.static)r.push(a);else for(;Qe(r,a);)a.y++}return e}function rt(e,t,r,n,a,s,o,f,u){if(t.static&&t.isDraggable!==!0)return[...e];if(t.y===n&&t.x===r)return[...e];const v=t.x,g=t.y;typeof r=="number"&&(t.x=r),typeof n=="number"&&(t.y=n),t.moved=!0;let h=oa(e,o);(o==="vertical"&&typeof n=="number"?g>=n:o==="horizontal"&&typeof r=="number"&&v>=r)&&(h=h.reverse());const O=qr(h,t),R=O.length>0;if(R&&u)return Be(e);if(R&&s)return t.x=v,t.y=g,t.moved=!1,e;let x=[...e];for(let i=0;i<O.length;i++){const l=O[i];l!==void 0&&(l.moved||(l.static?x=Hr(x,l,t,a,o):x=Hr(x,t,l,a,o)))}return x}function Hr(e,t,r,n,a,s){const o=a==="horizontal",f=a==="vertical",u=t.static;if(n){n=!1;const h={x:o?Math.max(t.x-r.w,0):r.x,y:f?Math.max(t.y-r.h,0):r.y,w:r.w,h:r.h,i:"-1"},j=Qe(e,h),O=j!==void 0&&j.y+j.h>t.y,R=j!==void 0&&t.x+t.w>j.x;if(!j)return rt(e,r,o?h.x:void 0,f?h.y:void 0,n,u,a);if(O&&f)return rt(e,r,void 0,r.y+1,n,u,a);if(O&&a===null)return t.y=r.y,r.y=r.y+r.h,[...e];if(R&&o)return rt(e,t,r.x,void 0,n,u,a)}const v=o?r.x+1:void 0,g=f?r.y+1:void 0;return v===void 0&&g===void 0?[...e]:rt(e,r,v,g,n,u,a)}function st(e,t,r){return Math.max(t,Math.min(r,e))}var la={name:"gridBounds",constrainPosition(e,t,r,{cols:n,maxRows:a}){return{x:st(t,0,Math.max(0,n-e.w)),y:st(r,0,Math.max(0,a-e.h))}},constrainSize(e,t,r,n,{cols:a,maxRows:s}){const o=n==="w"||n==="nw"||n==="sw"?e.x+e.w:a-e.x,f=n==="n"||n==="nw"||n==="ne"?e.y+e.h:s-e.y;return{w:st(t,1,Math.max(1,o)),h:st(r,1,Math.max(1,f))}}},ua={name:"minMaxSize",constrainSize(e,t,r){return{w:st(t,e.minW??1,e.maxW??1/0),h:st(r,e.minH??1,e.maxH??1/0)}}},Yr=[la,ua];function _t(e,t,r,n,a){let s={x:r,y:n};for(const o of e)o.constrainPosition&&(s=o.constrainPosition(t,s.x,s.y,a));if(t.constraints)for(const o of t.constraints)o.constrainPosition&&(s=o.constrainPosition(t,s.x,s.y,a));return s}function ca(e,t,r,n,a,s){let o={w:r,h:n};for(const f of e)f.constrainSize&&(o=f.constrainSize(t,o.w,o.h,a,s));if(t.constraints)for(const f of t.constraints)f.constrainSize&&(o=f.constrainSize(t,o.w,o.h,a,s));return o}function Br({top:e,left:t,width:r,height:n}){const a=`translate(${t}px,${e}px)`;return{transform:a,WebkitTransform:a,MozTransform:a,msTransform:a,OTransform:a,width:`${r}px`,height:`${n}px`,position:"absolute"}}function fa({top:e,left:t,width:r,height:n}){return{top:`${e}px`,left:`${t}px`,width:`${r}px`,height:`${n}px`,position:"absolute"}}function Vr(e){return e*100+"%"}function da(e,t,r,n){return e+r>n?t:r}function Ur(e,t,r){return e<0?t:r}function pa(e){return Math.max(0,e)}function Nt(e){return Math.max(0,e)}var or=(e,t,r)=>{const{left:n,height:a,width:s}=t,o=e.top-(a-e.height);return{left:n,width:s,height:Ur(o,e.height,a),top:Nt(o)}},sr=(e,t,r)=>{const{top:n,left:a,height:s,width:o}=t;return{top:n,height:s,width:da(e.left,e.width,o,r),left:pa(a)}},ir=(e,t,r)=>{const{top:n,height:a,width:s}=t,o=e.left+e.width-s;return o<0?{height:a,width:e.left+e.width,top:Nt(n),left:0}:{height:a,width:s,top:Nt(n),left:o}},lr=(e,t,r)=>{const{top:n,left:a,height:s,width:o}=t;return{width:o,left:a,height:Ur(n,e.height,s),top:Nt(n)}},ha=(e,t,r)=>or(e,sr(e,t,r)),ga=(e,t,r)=>or(e,ir(e,t)),ma=(e,t,r)=>lr(e,sr(e,t,r)),ya=(e,t,r)=>lr(e,ir(e,t)),ba={n:or,ne:ha,e:sr,se:ma,s:lr,sw:ya,w:ir,nw:ga};function va(e,t,r,n){const a=ba[e];return a?a(t,{...t,...r},n):r}var xa={type:"transform",scale:1,calcStyle(e){return Br(e)}},wa=xa,Sa={cols:12,rowHeight:150,margin:[10,10],containerPadding:null,maxRows:1/0},ja={enabled:!0,bounded:!1,threshold:3},Ca={enabled:!0,handles:["se"]},Ea={enabled:!1,defaultItem:{w:1,h:1}};function ur(e,t,r,n,a){const s=n==="x"?"w":"h";t[n]+=1;const o=e.findIndex(u=>u.i===t.i),f=a??Rt(e).length>0;for(let u=o+1;u<e.length;u++){const v=e[u];if(v!==void 0&&!v.static){if(!f&&v.y>t.y+t.h)break;rr(t,v)&&ur(e,v,r+t[s],n,f)}}t[n]=r}function Pa(e,t,r,n){for(t.x=Math.max(t.x,0),t.y=Math.max(t.y,0),t.y=Math.min(n,t.y);t.y>0&&!Qe(e,t);)t.y--;let a;for(;(a=Qe(e,t))!==void 0;)ur(r,t,a.y+a.h,"y");return t.y=Math.max(t.y,0),t}function Oa(e,t,r,n){for(t.x=Math.max(t.x,0),t.y=Math.max(t.y,0);t.x>0&&!Qe(e,t);)t.x--;let a;for(;(a=Qe(e,t))!==void 0;)if(ur(n,t,a.x+a.w,"x"),t.x+t.w>r)for(t.x=r-t.w,t.y++;t.x>0&&!Qe(e,t);)t.x--;return t.x=Math.max(t.x,0),t}var Xr={type:"vertical",allowOverlap:!1,compact(e,t){const r=Rt(e);let n=Tt(r);const a=nr(e),s=new Array(e.length);for(let o=0;o<a.length;o++){const f=a[o];if(f===void 0)continue;let u=tt(f);u.static||(u=Pa(r,u,a,n),n=Math.max(n,u.y+u.h),r.push(u));const v=e.indexOf(f);s[v]=u,u.moved=!1}return s}},Gr={type:"horizontal",allowOverlap:!1,compact(e,t){const r=Rt(e),n=$r(e),a=new Array(e.length);for(let s=0;s<n.length;s++){const o=n[s];if(o===void 0)continue;let f=tt(o);f.static||(f=Oa(r,f,t,n),r.push(f));const u=e.indexOf(o);a[u]=f,f.moved=!1}return a}},Kr={type:null,allowOverlap:!1,compact(e,t){return Be(e)}},Da={...Xr,allowOverlap:!0,compact(e,t){return Be(e)}},Ta={...Gr,allowOverlap:!0,compact(e,t){return Be(e)}},Ra={...Kr,allowOverlap:!0};function cr(e,t=!1,r=!1){let n;return t?e==="vertical"?n=Da:e==="horizontal"?n=Ta:n=Ra:e==="vertical"?n=Xr:e==="horizontal"?n=Gr:n=Kr,r?{...n,preventCollision:r}:n}function Jr(e){return Object.keys(e).sort((r,n)=>e[r]-e[n])}function Zr(e,t){const r=Jr(e);let n=r[0];if(n===void 0)throw new Error("No breakpoints defined");for(let a=1;a<r.length;a++){const s=r[a];if(s===void 0)continue;const o=e[s];t>o&&(n=s)}return n}function Qr(e,t){const r=t[e];if(r===void 0)throw new Error(`ResponsiveReactGridLayout: \`cols\` entry for breakpoint ${String(e)} is missing!`);return r}function fr(e,t,r,n,a,s){const o=e[r];if(o)return Be(o);let f=e[n];const u=Jr(t),v=u.slice(u.indexOf(r));for(let O=0;O<v.length;O++){const R=v[O];if(R===void 0)continue;const x=e[R];if(x){f=x;break}}const g=Be(f||[]),h=ar(g,{cols:a});return(typeof s=="object"&&s!==null?s:cr(s)).compact(h,a)}function kt(e,t){if(Array.isArray(e))return e;const r=e,n=r[t];if(n!==void 0)return n;const a=Object.keys(r);for(const s of a){const o=r[s];if(o!==void 0)return o}return[10,10]}function en(e){return function(r,n,a,s,o,f,u){return e(r,n,u)}}function Mt(e){return function(r,n,a,s){if(!r||!n||typeof r!="object"||typeof n!="object")return e(r,n,a,s);var o=s.get(r),f=s.get(n);if(o&&f)return o===n&&f===r;s.set(r,n),s.set(n,r);var u=e(r,n,a,s);return s.delete(r),s.delete(n),u}}function tn(e,t){var r={};for(var n in e)r[n]=e[n];for(var n in t)r[n]=t[n];return r}function rn(e){return e.constructor===Object||e.constructor==null}function nn(e){return typeof e.then=="function"}function At(e,t){return e===t||e!==e&&t!==t}var _a="[object Arguments]",Na="[object Boolean]",ka="[object Date]",Ma="[object RegExp]",Aa="[object Map]",za="[object Number]",La="[object Object]",Wa="[object Set]",Ia="[object String]",an=Object.prototype.toString;function zt(e){var t=e.areArraysEqual,r=e.areDatesEqual,n=e.areMapsEqual,a=e.areObjectsEqual,s=e.areRegExpsEqual,o=e.areSetsEqual,f=e.createIsNestedEqual,u=f(v);function v(g,h,j){if(g===h)return!0;if(!g||!h||typeof g!="object"||typeof h!="object")return g!==g&&h!==h;if(rn(g)&&rn(h))return a(g,h,u,j);var O=Array.isArray(g),R=Array.isArray(h);if(O||R)return O===R&&t(g,h,u,j);var x=an.call(g);return x!==an.call(h)?!1:x===ka?r(g,h,u,j):x===Ma?s(g,h,u,j):x===Aa?n(g,h,u,j):x===Wa?o(g,h,u,j):x===La||x===_a?nn(g)||nn(h)?!1:a(g,h,u,j):x===Na||x===za||x===Ia?At(g.valueOf(),h.valueOf()):!1}return v}function on(e,t,r,n){var a=e.length;if(t.length!==a)return!1;for(;a-- >0;)if(!r(e[a],t[a],a,a,e,t,n))return!1;return!0}var Fa=Mt(on);function sn(e,t){return At(e.valueOf(),t.valueOf())}function ln(e,t,r,n){var a=e.size===t.size;if(!a)return!1;if(!e.size)return!0;var s={},o=0;return e.forEach(function(f,u){if(a){var v=!1,g=0;t.forEach(function(h,j){!v&&!s[g]&&(v=r(u,j,o,g,e,t,n)&&r(f,h,u,j,e,t,n))&&(s[g]=!0),g++}),o++,a=v}}),a}var qa=Mt(ln),$a="_owner",Ha=Object.prototype.hasOwnProperty;function un(e,t,r,n){var a=Object.keys(e),s=a.length;if(Object.keys(t).length!==s)return!1;for(var o;s-- >0;){if(o=a[s],o===$a){var f=!!e.$$typeof,u=!!t.$$typeof;if((f||u)&&f!==u)return!1}if(!Ha.call(t,o)||!r(e[o],t[o],o,o,e,t,n))return!1}return!0}var Ya=Mt(un);function cn(e,t){return e.source===t.source&&e.flags===t.flags}function fn(e,t,r,n){var a=e.size===t.size;if(!a)return!1;if(!e.size)return!0;var s={};return e.forEach(function(o,f){if(a){var u=!1,v=0;t.forEach(function(g,h){!u&&!s[v]&&(u=r(o,g,f,h,e,t,n))&&(s[v]=!0),v++}),a=u}}),a}var Ba=Mt(fn),dn=Object.freeze({areArraysEqual:on,areDatesEqual:sn,areMapsEqual:ln,areObjectsEqual:un,areRegExpsEqual:cn,areSetsEqual:fn,createIsNestedEqual:en}),pn=Object.freeze({areArraysEqual:Fa,areDatesEqual:sn,areMapsEqual:qa,areObjectsEqual:Ya,areRegExpsEqual:cn,areSetsEqual:Ba,createIsNestedEqual:en}),Va=zt(dn);function $e(e,t){return Va(e,t,void 0)}zt(tn(dn,{createIsNestedEqual:function(){return At}})),zt(pn),zt(tn(pn,{createIsNestedEqual:function(){return At}}));function Ua(e={}){const{measureBeforeMount:t=!1,initialWidth:r=1280}=e,[n,a]=C.useState(r),[s,o]=C.useState(!t),f=C.useRef(null),u=C.useRef(null),v=C.useCallback(()=>{const g=f.current;if(g){const h=g.offsetWidth;a(h),s||o(!0)}},[s]);return C.useEffect(()=>{const g=f.current;if(g)return v(),typeof ResizeObserver<"u"&&(u.current=new ResizeObserver(h=>{const j=h[0];if(j){const O=j.contentRect.width;a(O)}}),u.current.observe(g)),()=>{u.current&&(u.current.disconnect(),u.current=null)}},[v]),{width:n,mounted:s,containerRef:f,measureWidth:v}}var ht={exports:{}},dr={},Lt={exports:{}},Wt={exports:{}},te={};var hn;function Xa(){if(hn)return te;hn=1;var e=typeof Symbol=="function"&&Symbol.for,t=e?Symbol.for("react.element"):60103,r=e?Symbol.for("react.portal"):60106,n=e?Symbol.for("react.fragment"):60107,a=e?Symbol.for("react.strict_mode"):60108,s=e?Symbol.for("react.profiler"):60114,o=e?Symbol.for("react.provider"):60109,f=e?Symbol.for("react.context"):60110,u=e?Symbol.for("react.async_mode"):60111,v=e?Symbol.for("react.concurrent_mode"):60111,g=e?Symbol.for("react.forward_ref"):60112,h=e?Symbol.for("react.suspense"):60113,j=e?Symbol.for("react.suspense_list"):60120,O=e?Symbol.for("react.memo"):60115,R=e?Symbol.for("react.lazy"):60116,x=e?Symbol.for("react.block"):60121,i=e?Symbol.for("react.fundamental"):60117,l=e?Symbol.for("react.responder"):60118,b=e?Symbol.for("react.scope"):60119;function S(c){if(typeof c=="object"&&c!==null){var w=c.$$typeof;switch(w){case t:switch(c=c.type,c){case u:case v:case n:case s:case a:case h:return c;default:switch(c=c&&c.$$typeof,c){case f:case g:case R:case O:case o:return c;default:return w}}case r:return w}}}function E(c){return S(c)===v}return te.AsyncMode=u,te.ConcurrentMode=v,te.ContextConsumer=f,te.ContextProvider=o,te.Element=t,te.ForwardRef=g,te.Fragment=n,te.Lazy=R,te.Memo=O,te.Portal=r,te.Profiler=s,te.StrictMode=a,te.Suspense=h,te.isAsyncMode=function(c){return E(c)||S(c)===u},te.isConcurrentMode=E,te.isContextConsumer=function(c){return S(c)===f},te.isContextProvider=function(c){return S(c)===o},te.isElement=function(c){return typeof c=="object"&&c!==null&&c.$$typeof===t},te.isForwardRef=function(c){return S(c)===g},te.isFragment=function(c){return S(c)===n},te.isLazy=function(c){return S(c)===R},te.isMemo=function(c){return S(c)===O},te.isPortal=function(c){return S(c)===r},te.isProfiler=function(c){return S(c)===s},te.isStrictMode=function(c){return S(c)===a},te.isSuspense=function(c){return S(c)===h},te.isValidElementType=function(c){return typeof c=="string"||typeof c=="function"||c===n||c===v||c===s||c===a||c===h||c===j||typeof c=="object"&&c!==null&&(c.$$typeof===R||c.$$typeof===O||c.$$typeof===o||c.$$typeof===f||c.$$typeof===g||c.$$typeof===i||c.$$typeof===l||c.$$typeof===b||c.$$typeof===x)},te.typeOf=S,te}var re={};var gn;function Ga(){return gn||(gn=1,process.env.NODE_ENV!=="production"&&(function(){var e=typeof Symbol=="function"&&Symbol.for,t=e?Symbol.for("react.element"):60103,r=e?Symbol.for("react.portal"):60106,n=e?Symbol.for("react.fragment"):60107,a=e?Symbol.for("react.strict_mode"):60108,s=e?Symbol.for("react.profiler"):60114,o=e?Symbol.for("react.provider"):60109,f=e?Symbol.for("react.context"):60110,u=e?Symbol.for("react.async_mode"):60111,v=e?Symbol.for("react.concurrent_mode"):60111,g=e?Symbol.for("react.forward_ref"):60112,h=e?Symbol.for("react.suspense"):60113,j=e?Symbol.for("react.suspense_list"):60120,O=e?Symbol.for("react.memo"):60115,R=e?Symbol.for("react.lazy"):60116,x=e?Symbol.for("react.block"):60121,i=e?Symbol.for("react.fundamental"):60117,l=e?Symbol.for("react.responder"):60118,b=e?Symbol.for("react.scope"):60119;function S(N){return typeof N=="string"||typeof N=="function"||N===n||N===v||N===s||N===a||N===h||N===j||typeof N=="object"&&N!==null&&(N.$$typeof===R||N.$$typeof===O||N.$$typeof===o||N.$$typeof===f||N.$$typeof===g||N.$$typeof===i||N.$$typeof===l||N.$$typeof===b||N.$$typeof===x)}function E(N){if(typeof N=="object"&&N!==null){var se=N.$$typeof;switch(se){case t:var Ne=N.type;switch(Ne){case u:case v:case n:case s:case a:case h:return Ne;default:var Te=Ne&&Ne.$$typeof;switch(Te){case f:case g:case R:case O:case o:return Te;default:return se}}case r:return se}}}var c=u,w=v,d=f,m=o,D=t,F=g,P=n,q=R,z=O,L=r,X=s,U=a,J=h,Q=!1;function pe(N){return Q||(Q=!0,console.warn("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.")),T(N)||E(N)===u}function T(N){return E(N)===v}function y(N){return E(N)===f}function _(N){return E(N)===o}function I(N){return typeof N=="object"&&N!==null&&N.$$typeof===t}function k(N){return E(N)===g}function Y(N){return E(N)===n}function M(N){return E(N)===R}function A(N){return E(N)===O}function H(N){return E(N)===r}function $(N){return E(N)===s}function B(N){return E(N)===a}function G(N){return E(N)===h}re.AsyncMode=c,re.ConcurrentMode=w,re.ContextConsumer=d,re.ContextProvider=m,re.Element=D,re.ForwardRef=F,re.Fragment=P,re.Lazy=q,re.Memo=z,re.Portal=L,re.Profiler=X,re.StrictMode=U,re.Suspense=J,re.isAsyncMode=pe,re.isConcurrentMode=T,re.isContextConsumer=y,re.isContextProvider=_,re.isElement=I,re.isForwardRef=k,re.isFragment=Y,re.isLazy=M,re.isMemo=A,re.isPortal=H,re.isProfiler=$,re.isStrictMode=B,re.isSuspense=G,re.isValidElementType=S,re.typeOf=E})()),re}var mn;function yn(){return mn||(mn=1,process.env.NODE_ENV==="production"?Wt.exports=Xa():Wt.exports=Ga()),Wt.exports}var pr,bn;function Ka(){if(bn)return pr;bn=1;var e=Object.getOwnPropertySymbols,t=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function n(s){if(s==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(s)}function a(){try{if(!Object.assign)return!1;var s=new String("abc");if(s[5]="de",Object.getOwnPropertyNames(s)[0]==="5")return!1;for(var o={},f=0;f<10;f++)o["_"+String.fromCharCode(f)]=f;var u=Object.getOwnPropertyNames(o).map(function(g){return o[g]});if(u.join("")!=="0123456789")return!1;var v={};return"abcdefghijklmnopqrst".split("").forEach(function(g){v[g]=g}),Object.keys(Object.assign({},v)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}return pr=a()?Object.assign:function(s,o){for(var f,u=n(s),v,g=1;g<arguments.length;g++){f=Object(arguments[g]);for(var h in f)t.call(f,h)&&(u[h]=f[h]);if(e){v=e(f);for(var j=0;j<v.length;j++)r.call(f,v[j])&&(u[v[j]]=f[v[j]])}}return u},pr}var hr,vn;function gr(){if(vn)return hr;vn=1;var e="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return hr=e,hr}var mr,xn;function wn(){return xn||(xn=1,mr=Function.call.bind(Object.prototype.hasOwnProperty)),mr}var yr,Sn;function Ja(){if(Sn)return yr;Sn=1;var e=function(){};if(process.env.NODE_ENV!=="production"){var t=gr(),r={},n=wn();e=function(s){var o="Warning: "+s;typeof console<"u"&&console.error(o);try{throw new Error(o)}catch{}}}function a(s,o,f,u,v){if(process.env.NODE_ENV!=="production"){for(var g in s)if(n(s,g)){var h;try{if(typeof s[g]!="function"){var j=Error((u||"React class")+": "+f+" type `"+g+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof s[g]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw j.name="Invariant Violation",j}h=s[g](o,g,u,f,null,t)}catch(R){h=R}if(h&&!(h instanceof Error)&&e((u||"React class")+": type specification of "+f+" `"+g+"` is invalid; the type checker function must return `null` or an `Error` but returned a "+typeof h+". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."),h instanceof Error&&!(h.message in r)){r[h.message]=!0;var O=v?v():"";e("Failed "+f+" type: "+h.message+(O??""))}}}}return a.resetWarningCache=function(){process.env.NODE_ENV!=="production"&&(r={})},yr=a,yr}var br,jn;function Za(){if(jn)return br;jn=1;var e=yn(),t=Ka(),r=gr(),n=wn(),a=Ja(),s=function(){};process.env.NODE_ENV!=="production"&&(s=function(f){var u="Warning: "+f;typeof console<"u"&&console.error(u);try{throw new Error(u)}catch{}});function o(){return null}return br=function(f,u){var v=typeof Symbol=="function"&&Symbol.iterator,g="@@iterator";function h(T){var y=T&&(v&&T[v]||T[g]);if(typeof y=="function")return y}var j="<<anonymous>>",O={array:l("array"),bigint:l("bigint"),bool:l("boolean"),func:l("function"),number:l("number"),object:l("object"),string:l("string"),symbol:l("symbol"),any:b(),arrayOf:S,element:E(),elementType:c(),instanceOf:w,node:F(),objectOf:m,oneOf:d,oneOfType:D,shape:q,exact:z};function R(T,y){return T===y?T!==0||1/T===1/y:T!==T&&y!==y}function x(T,y){this.message=T,this.data=y&&typeof y=="object"?y:{},this.stack=""}x.prototype=Error.prototype;function i(T){if(process.env.NODE_ENV!=="production")var y={},_=0;function I(Y,M,A,H,$,B,G){if(H=H||j,B=B||A,G!==r){if(u){var N=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw N.name="Invariant Violation",N}else if(process.env.NODE_ENV!=="production"&&typeof console<"u"){var se=H+":"+A;!y[se]&&_<3&&(s("You are manually calling a React.PropTypes validation function for the `"+B+"` prop on `"+H+"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."),y[se]=!0,_++)}}return M[A]==null?Y?M[A]===null?new x("The "+$+" `"+B+"` is marked as required "+("in `"+H+"`, but its value is `null`.")):new x("The "+$+" `"+B+"` is marked as required in "+("`"+H+"`, but its value is `undefined`.")):null:T(M,A,H,$,B)}var k=I.bind(null,!1);return k.isRequired=I.bind(null,!0),k}function l(T){function y(_,I,k,Y,M,A){var H=_[I],$=U(H);if($!==T){var B=J(H);return new x("Invalid "+Y+" `"+M+"` of type "+("`"+B+"` supplied to `"+k+"`, expected ")+("`"+T+"`."),{expectedType:T})}return null}return i(y)}function b(){return i(o)}function S(T){function y(_,I,k,Y,M){if(typeof T!="function")return new x("Property `"+M+"` of component `"+k+"` has invalid PropType notation inside arrayOf.");var A=_[I];if(!Array.isArray(A)){var H=U(A);return new x("Invalid "+Y+" `"+M+"` of type "+("`"+H+"` supplied to `"+k+"`, expected an array."))}for(var $=0;$<A.length;$++){var B=T(A,$,k,Y,M+"["+$+"]",r);if(B instanceof Error)return B}return null}return i(y)}function E(){function T(y,_,I,k,Y){var M=y[_];if(!f(M)){var A=U(M);return new x("Invalid "+k+" `"+Y+"` of type "+("`"+A+"` supplied to `"+I+"`, expected a single ReactElement."))}return null}return i(T)}function c(){function T(y,_,I,k,Y){var M=y[_];if(!e.isValidElementType(M)){var A=U(M);return new x("Invalid "+k+" `"+Y+"` of type "+("`"+A+"` supplied to `"+I+"`, expected a single ReactElement type."))}return null}return i(T)}function w(T){function y(_,I,k,Y,M){if(!(_[I]instanceof T)){var A=T.name||j,H=pe(_[I]);return new x("Invalid "+Y+" `"+M+"` of type "+("`"+H+"` supplied to `"+k+"`, expected ")+("instance of `"+A+"`."))}return null}return i(y)}function d(T){if(!Array.isArray(T))return process.env.NODE_ENV!=="production"&&(arguments.length>1?s("Invalid arguments supplied to oneOf, expected an array, got "+arguments.length+" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z])."):s("Invalid argument supplied to oneOf, expected an array.")),o;function y(_,I,k,Y,M){for(var A=_[I],H=0;H<T.length;H++)if(R(A,T[H]))return null;var $=JSON.stringify(T,function(G,N){var se=J(N);return se==="symbol"?String(N):N});return new x("Invalid "+Y+" `"+M+"` of value `"+String(A)+"` "+("supplied to `"+k+"`, expected one of "+$+"."))}return i(y)}function m(T){function y(_,I,k,Y,M){if(typeof T!="function")return new x("Property `"+M+"` of component `"+k+"` has invalid PropType notation inside objectOf.");var A=_[I],H=U(A);if(H!=="object")return new x("Invalid "+Y+" `"+M+"` of type "+("`"+H+"` supplied to `"+k+"`, expected an object."));for(var $ in A)if(n(A,$)){var B=T(A,$,k,Y,M+"."+$,r);if(B instanceof Error)return B}return null}return i(y)}function D(T){if(!Array.isArray(T))return process.env.NODE_ENV!=="production"&&s("Invalid argument supplied to oneOfType, expected an instance of array."),o;for(var y=0;y<T.length;y++){var _=T[y];if(typeof _!="function")return s("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+Q(_)+" at index "+y+"."),o}function I(k,Y,M,A,H){for(var $=[],B=0;B<T.length;B++){var G=T[B],N=G(k,Y,M,A,H,r);if(N==null)return null;N.data&&n(N.data,"expectedType")&&$.push(N.data.expectedType)}var se=$.length>0?", expected one of type ["+$.join(", ")+"]":"";return new x("Invalid "+A+" `"+H+"` supplied to "+("`"+M+"`"+se+"."))}return i(I)}function F(){function T(y,_,I,k,Y){return L(y[_])?null:new x("Invalid "+k+" `"+Y+"` supplied to "+("`"+I+"`, expected a ReactNode."))}return i(T)}function P(T,y,_,I,k){return new x((T||"React class")+": "+y+" type `"+_+"."+I+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+k+"`.")}function q(T){function y(_,I,k,Y,M){var A=_[I],H=U(A);if(H!=="object")return new x("Invalid "+Y+" `"+M+"` of type `"+H+"` "+("supplied to `"+k+"`, expected `object`."));for(var $ in T){var B=T[$];if(typeof B!="function")return P(k,Y,M,$,J(B));var G=B(A,$,k,Y,M+"."+$,r);if(G)return G}return null}return i(y)}function z(T){function y(_,I,k,Y,M){var A=_[I],H=U(A);if(H!=="object")return new x("Invalid "+Y+" `"+M+"` of type `"+H+"` "+("supplied to `"+k+"`, expected `object`."));var $=t({},_[I],T);for(var B in $){var G=T[B];if(n(T,B)&&typeof G!="function")return P(k,Y,M,B,J(G));if(!G)return new x("Invalid "+Y+" `"+M+"` key `"+B+"` supplied to `"+k+"`.\nBad object: "+JSON.stringify(_[I],null," ")+`
7
+ Valid keys: `+JSON.stringify(Object.keys(T),null," "));var N=G(A,B,k,Y,M+"."+B,r);if(N)return N}return null}return i(y)}function L(T){switch(typeof T){case"number":case"string":case"undefined":return!0;case"boolean":return!T;case"object":if(Array.isArray(T))return T.every(L);if(T===null||f(T))return!0;var y=h(T);if(y){var _=y.call(T),I;if(y!==T.entries){for(;!(I=_.next()).done;)if(!L(I.value))return!1}else for(;!(I=_.next()).done;){var k=I.value;if(k&&!L(k[1]))return!1}}else return!1;return!0;default:return!1}}function X(T,y){return T==="symbol"?!0:y?y["@@toStringTag"]==="Symbol"||typeof Symbol=="function"&&y instanceof Symbol:!1}function U(T){var y=typeof T;return Array.isArray(T)?"array":T instanceof RegExp?"object":X(y,T)?"symbol":y}function J(T){if(typeof T>"u"||T===null)return""+T;var y=U(T);if(y==="object"){if(T instanceof Date)return"date";if(T instanceof RegExp)return"regexp"}return y}function Q(T){var y=J(T);switch(y){case"array":case"object":return"an "+y;case"boolean":case"date":case"regexp":return"a "+y;default:return y}}function pe(T){return!T.constructor||!T.constructor.name?j:T.constructor.name}return O.checkPropTypes=a,O.resetWarningCache=a.resetWarningCache,O.PropTypes=O,O},br}var vr,Cn;function Qa(){if(Cn)return vr;Cn=1;var e=gr();function t(){}function r(){}return r.resetWarningCache=t,vr=function(){function n(o,f,u,v,g,h){if(h!==e){var j=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw j.name="Invariant Violation",j}}n.isRequired=n;function a(){return n}var s={array:n,bigint:n,bool:n,func:n,number:n,object:n,string:n,symbol:n,any:n,arrayOf:a,element:n,elementType:n,instanceOf:a,node:n,objectOf:a,oneOf:a,oneOfType:a,shape:a,exact:a,checkPropTypes:r,resetWarningCache:t};return s.PropTypes=s,s},vr}var En;function It(){if(En)return Lt.exports;if(En=1,process.env.NODE_ENV!=="production"){var e=yn(),t=!0;Lt.exports=Za()(e.isElement,t)}else Lt.exports=Qa()();return Lt.exports}var ye={},Ve={},Pn;function Ft(){if(Pn)return Ve;Pn=1,Object.defineProperty(Ve,"__esModule",{value:!0}),Ve.dontSetMe=a,Ve.findInArray=e,Ve.int=n,Ve.isFunction=t,Ve.isNum=r;function e(s,o){for(let f=0,u=s.length;f<u;f++)if(o.apply(o,[s[f],f,s]))return s[f]}function t(s){return typeof s=="function"||Object.prototype.toString.call(s)==="[object Function]"}function r(s){return typeof s=="number"&&!isNaN(s)}function n(s){return parseInt(s,10)}function a(s,o,f){if(s[o])return new Error(`Invalid prop ${o} passed to ${f} - do not set this, set it on the child.`)}return Ve}var Ue={},On;function eo(){if(On)return Ue;On=1,Object.defineProperty(Ue,"__esModule",{value:!0}),Ue.browserPrefixToKey=r,Ue.browserPrefixToStyle=n,Ue.default=void 0,Ue.getPrefix=t;const e=["Moz","Webkit","O","ms"];function t(){let s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"transform";if(typeof window>"u")return"";const o=window.document?.documentElement?.style;if(!o||s in o)return"";for(let f=0;f<e.length;f++)if(r(s,e[f])in o)return e[f];return""}function r(s,o){return o?`${o}${a(s)}`:s}function n(s,o){return o?`-${o.toLowerCase()}-${s}`:s}function a(s){let o="",f=!0;for(let u=0;u<s.length;u++)f?(o+=s[u].toUpperCase(),f=!1):s[u]==="-"?f=!0:o+=s[u];return o}return Ue.default=t(),Ue}var Dn;function xr(){if(Dn)return ye;Dn=1,Object.defineProperty(ye,"__esModule",{value:!0}),ye.addClassName=c,ye.addEvent=o,ye.addUserSelectStyles=b,ye.createCSSTransform=O,ye.createSVGTransform=R,ye.getTouch=i,ye.getTouchIdentifier=l,ye.getTranslation=x,ye.innerHeight=g,ye.innerWidth=h,ye.matchesSelector=a,ye.matchesSelectorAndParentsTo=s,ye.offsetXYFromParent=j,ye.outerHeight=u,ye.outerWidth=v,ye.removeClassName=w,ye.removeEvent=f,ye.scheduleRemoveUserSelectStyles=S;var e=Ft(),t=r(eo());function r(d,m){if(typeof WeakMap=="function")var D=new WeakMap,F=new WeakMap;return(r=function(P,q){if(!q&&P&&P.__esModule)return P;var z,L,X={__proto__:null,default:P};if(P===null||typeof P!="object"&&typeof P!="function")return X;if(z=q?F:D){if(z.has(P))return z.get(P);z.set(P,X)}for(const U in P)U!=="default"&&{}.hasOwnProperty.call(P,U)&&((L=(z=Object.defineProperty)&&Object.getOwnPropertyDescriptor(P,U))&&(L.get||L.set)?z(X,U,L):X[U]=P[U]);return X})(d,m)}let n="";function a(d,m){return n||(n=(0,e.findInArray)(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(D){return(0,e.isFunction)(d[D])})),(0,e.isFunction)(d[n])?d[n](m):!1}function s(d,m,D){let F=d;do{if(a(F,m))return!0;if(F===D)return!1;F=F.parentNode}while(F);return!1}function o(d,m,D,F){if(!d)return;const P={capture:!0,...F};d.addEventListener?d.addEventListener(m,D,P):d.attachEvent?d.attachEvent("on"+m,D):d["on"+m]=D}function f(d,m,D,F){if(!d)return;const P={capture:!0,...F};d.removeEventListener?d.removeEventListener(m,D,P):d.detachEvent?d.detachEvent("on"+m,D):d["on"+m]=null}function u(d){let m=d.clientHeight;const D=d.ownerDocument.defaultView.getComputedStyle(d);return m+=(0,e.int)(D.borderTopWidth),m+=(0,e.int)(D.borderBottomWidth),m}function v(d){let m=d.clientWidth;const D=d.ownerDocument.defaultView.getComputedStyle(d);return m+=(0,e.int)(D.borderLeftWidth),m+=(0,e.int)(D.borderRightWidth),m}function g(d){let m=d.clientHeight;const D=d.ownerDocument.defaultView.getComputedStyle(d);return m-=(0,e.int)(D.paddingTop),m-=(0,e.int)(D.paddingBottom),m}function h(d){let m=d.clientWidth;const D=d.ownerDocument.defaultView.getComputedStyle(d);return m-=(0,e.int)(D.paddingLeft),m-=(0,e.int)(D.paddingRight),m}function j(d,m,D){const P=m===m.ownerDocument.body?{left:0,top:0}:m.getBoundingClientRect(),q=(d.clientX+m.scrollLeft-P.left)/D,z=(d.clientY+m.scrollTop-P.top)/D;return{x:q,y:z}}function O(d,m){const D=x(d,m,"px");return{[(0,t.browserPrefixToKey)("transform",t.default)]:D}}function R(d,m){return x(d,m,"")}function x(d,m,D){let{x:F,y:P}=d,q=`translate(${F}${D},${P}${D})`;if(m){const z=`${typeof m.x=="string"?m.x:m.x+D}`,L=`${typeof m.y=="string"?m.y:m.y+D}`;q=`translate(${z}, ${L})`+q}return q}function i(d,m){return d.targetTouches&&(0,e.findInArray)(d.targetTouches,D=>m===D.identifier)||d.changedTouches&&(0,e.findInArray)(d.changedTouches,D=>m===D.identifier)}function l(d){if(d.targetTouches&&d.targetTouches[0])return d.targetTouches[0].identifier;if(d.changedTouches&&d.changedTouches[0])return d.changedTouches[0].identifier}function b(d){if(!d)return;let m=d.getElementById("react-draggable-style-el");m||(m=d.createElement("style"),m.type="text/css",m.id="react-draggable-style-el",m.innerHTML=`.react-draggable-transparent-selection *::-moz-selection {all: inherit;}
8
+ `,m.innerHTML+=`.react-draggable-transparent-selection *::selection {all: inherit;}
9
+ `,d.getElementsByTagName("head")[0].appendChild(m)),d.body&&c(d.body,"react-draggable-transparent-selection")}function S(d){window.requestAnimationFrame?window.requestAnimationFrame(()=>{E(d)}):E(d)}function E(d){if(d)try{if(d.body&&w(d.body,"react-draggable-transparent-selection"),d.selection)d.selection.empty();else{const m=(d.defaultView||window).getSelection();m&&m.type!=="Caret"&&m.removeAllRanges()}}catch{}}function c(d,m){d.classList?d.classList.add(m):d.className.match(new RegExp(`(?:^|\\s)${m}(?!\\S)`))||(d.className+=` ${m}`)}function w(d,m){d.classList?d.classList.remove(m):d.className=d.className.replace(new RegExp(`(?:^|\\s)${m}(?!\\S)`,"g"),"")}return ye}var Ie={},Tn;function Rn(){if(Tn)return Ie;Tn=1,Object.defineProperty(Ie,"__esModule",{value:!0}),Ie.canDragX=a,Ie.canDragY=s,Ie.createCoreData=f,Ie.createDraggableData=u,Ie.getBoundPosition=r,Ie.getControlPosition=o,Ie.snapToGrid=n;var e=Ft(),t=xr();function r(h,j,O){if(!h.props.bounds)return[j,O];let{bounds:R}=h.props;R=typeof R=="string"?R:v(R);const x=g(h);if(typeof R=="string"){const{ownerDocument:i}=x,l=i.defaultView;let b;if(R==="parent"?b=x.parentNode:b=x.getRootNode().querySelector(R),!(b instanceof l.HTMLElement))throw new Error('Bounds selector "'+R+'" could not find an element.');const S=b,E=l.getComputedStyle(x),c=l.getComputedStyle(S);R={left:-x.offsetLeft+(0,e.int)(c.paddingLeft)+(0,e.int)(E.marginLeft),top:-x.offsetTop+(0,e.int)(c.paddingTop)+(0,e.int)(E.marginTop),right:(0,t.innerWidth)(S)-(0,t.outerWidth)(x)-x.offsetLeft+(0,e.int)(c.paddingRight)-(0,e.int)(E.marginRight),bottom:(0,t.innerHeight)(S)-(0,t.outerHeight)(x)-x.offsetTop+(0,e.int)(c.paddingBottom)-(0,e.int)(E.marginBottom)}}return(0,e.isNum)(R.right)&&(j=Math.min(j,R.right)),(0,e.isNum)(R.bottom)&&(O=Math.min(O,R.bottom)),(0,e.isNum)(R.left)&&(j=Math.max(j,R.left)),(0,e.isNum)(R.top)&&(O=Math.max(O,R.top)),[j,O]}function n(h,j,O){const R=Math.round(j/h[0])*h[0],x=Math.round(O/h[1])*h[1];return[R,x]}function a(h){return h.props.axis==="both"||h.props.axis==="x"}function s(h){return h.props.axis==="both"||h.props.axis==="y"}function o(h,j,O){const R=typeof j=="number"?(0,t.getTouch)(h,j):null;if(typeof j=="number"&&!R)return null;const x=g(O),i=O.props.offsetParent||x.offsetParent||x.ownerDocument.body;return(0,t.offsetXYFromParent)(R||h,i,O.props.scale)}function f(h,j,O){const R=!(0,e.isNum)(h.lastX),x=g(h);return R?{node:x,deltaX:0,deltaY:0,lastX:j,lastY:O,x:j,y:O}:{node:x,deltaX:j-h.lastX,deltaY:O-h.lastY,lastX:h.lastX,lastY:h.lastY,x:j,y:O}}function u(h,j){const O=h.props.scale;return{node:j.node,x:h.state.x+j.deltaX/O,y:h.state.y+j.deltaY/O,deltaX:j.deltaX/O,deltaY:j.deltaY/O,lastX:h.state.x,lastY:h.state.y}}function v(h){return{left:h.left,top:h.top,right:h.right,bottom:h.bottom}}function g(h){const j=h.findDOMNode();if(!j)throw new Error("<DraggableCore>: Unmounted during event!");return j}return Ie}var gt={},qt={},_n;function Nn(){if(_n)return qt;_n=1,Object.defineProperty(qt,"__esModule",{value:!0}),qt.default=e;function e(){}return qt}var kn;function to(){if(kn)return gt;kn=1,Object.defineProperty(gt,"__esModule",{value:!0}),gt.default=void 0;var e=u(C),t=f(It()),r=f(Ar),n=xr(),a=Rn(),s=Ft(),o=f(Nn());function f(x){return x&&x.__esModule?x:{default:x}}function u(x,i){if(typeof WeakMap=="function")var l=new WeakMap,b=new WeakMap;return(u=function(S,E){if(!E&&S&&S.__esModule)return S;var c,w,d={__proto__:null,default:S};if(S===null||typeof S!="object"&&typeof S!="function")return d;if(c=E?b:l){if(c.has(S))return c.get(S);c.set(S,d)}for(const m in S)m!=="default"&&{}.hasOwnProperty.call(S,m)&&((w=(c=Object.defineProperty)&&Object.getOwnPropertyDescriptor(S,m))&&(w.get||w.set)?c(d,m,w):d[m]=S[m]);return d})(x,i)}function v(x,i,l){return(i=g(i))in x?Object.defineProperty(x,i,{value:l,enumerable:!0,configurable:!0,writable:!0}):x[i]=l,x}function g(x){var i=h(x,"string");return typeof i=="symbol"?i:i+""}function h(x,i){if(typeof x!="object"||!x)return x;var l=x[Symbol.toPrimitive];if(l!==void 0){var b=l.call(x,i);if(typeof b!="object")return b;throw new TypeError("@@toPrimitive must return a primitive value.")}return(i==="string"?String:Number)(x)}const j={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}};let O=j.mouse,R=class extends e.Component{constructor(){super(...arguments),v(this,"dragging",!1),v(this,"lastX",NaN),v(this,"lastY",NaN),v(this,"touchIdentifier",null),v(this,"mounted",!1),v(this,"handleDragStart",i=>{if(this.props.onMouseDown(i),!this.props.allowAnyClick&&typeof i.button=="number"&&i.button!==0)return!1;const l=this.findDOMNode();if(!l||!l.ownerDocument||!l.ownerDocument.body)throw new Error("<DraggableCore> not mounted on DragStart!");const{ownerDocument:b}=l;if(this.props.disabled||!(i.target instanceof b.defaultView.Node)||this.props.handle&&!(0,n.matchesSelectorAndParentsTo)(i.target,this.props.handle,l)||this.props.cancel&&(0,n.matchesSelectorAndParentsTo)(i.target,this.props.cancel,l))return;i.type==="touchstart"&&!this.props.allowMobileScroll&&i.preventDefault();const S=(0,n.getTouchIdentifier)(i);this.touchIdentifier=S;const E=(0,a.getControlPosition)(i,S,this);if(E==null)return;const{x:c,y:w}=E,d=(0,a.createCoreData)(this,c,w);(0,o.default)("DraggableCore: handleDragStart: %j",d),(0,o.default)("calling",this.props.onStart),!(this.props.onStart(i,d)===!1||this.mounted===!1)&&(this.props.enableUserSelectHack&&(0,n.addUserSelectStyles)(b),this.dragging=!0,this.lastX=c,this.lastY=w,(0,n.addEvent)(b,O.move,this.handleDrag),(0,n.addEvent)(b,O.stop,this.handleDragStop))}),v(this,"handleDrag",i=>{const l=(0,a.getControlPosition)(i,this.touchIdentifier,this);if(l==null)return;let{x:b,y:S}=l;if(Array.isArray(this.props.grid)){let w=b-this.lastX,d=S-this.lastY;if([w,d]=(0,a.snapToGrid)(this.props.grid,w,d),!w&&!d)return;b=this.lastX+w,S=this.lastY+d}const E=(0,a.createCoreData)(this,b,S);if((0,o.default)("DraggableCore: handleDrag: %j",E),this.props.onDrag(i,E)===!1||this.mounted===!1){try{this.handleDragStop(new MouseEvent("mouseup"))}catch{const d=document.createEvent("MouseEvents");d.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),this.handleDragStop(d)}return}this.lastX=b,this.lastY=S}),v(this,"handleDragStop",i=>{if(!this.dragging)return;const l=(0,a.getControlPosition)(i,this.touchIdentifier,this);if(l==null)return;let{x:b,y:S}=l;if(Array.isArray(this.props.grid)){let d=b-this.lastX||0,m=S-this.lastY||0;[d,m]=(0,a.snapToGrid)(this.props.grid,d,m),b=this.lastX+d,S=this.lastY+m}const E=(0,a.createCoreData)(this,b,S);if(this.props.onStop(i,E)===!1||this.mounted===!1)return!1;const w=this.findDOMNode();w&&this.props.enableUserSelectHack&&(0,n.scheduleRemoveUserSelectStyles)(w.ownerDocument),(0,o.default)("DraggableCore: handleDragStop: %j",E),this.dragging=!1,this.lastX=NaN,this.lastY=NaN,w&&((0,o.default)("DraggableCore: Removing handlers"),(0,n.removeEvent)(w.ownerDocument,O.move,this.handleDrag),(0,n.removeEvent)(w.ownerDocument,O.stop,this.handleDragStop))}),v(this,"onMouseDown",i=>(O=j.mouse,this.handleDragStart(i))),v(this,"onMouseUp",i=>(O=j.mouse,this.handleDragStop(i))),v(this,"onTouchStart",i=>(O=j.touch,this.handleDragStart(i))),v(this,"onTouchEnd",i=>(O=j.touch,this.handleDragStop(i)))}componentDidMount(){this.mounted=!0;const i=this.findDOMNode();i&&(0,n.addEvent)(i,j.touch.start,this.onTouchStart,{passive:!1})}componentWillUnmount(){this.mounted=!1;const i=this.findDOMNode();if(i){const{ownerDocument:l}=i;(0,n.removeEvent)(l,j.mouse.move,this.handleDrag),(0,n.removeEvent)(l,j.touch.move,this.handleDrag),(0,n.removeEvent)(l,j.mouse.stop,this.handleDragStop),(0,n.removeEvent)(l,j.touch.stop,this.handleDragStop),(0,n.removeEvent)(i,j.touch.start,this.onTouchStart,{passive:!1}),this.props.enableUserSelectHack&&(0,n.scheduleRemoveUserSelectStyles)(l)}}findDOMNode(){return this.props?.nodeRef?this.props?.nodeRef?.current:r.default.findDOMNode(this)}render(){return e.cloneElement(e.Children.only(this.props.children),{onMouseDown:this.onMouseDown,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}};return gt.default=R,v(R,"displayName","DraggableCore"),v(R,"propTypes",{allowAnyClick:t.default.bool,allowMobileScroll:t.default.bool,children:t.default.node.isRequired,disabled:t.default.bool,enableUserSelectHack:t.default.bool,offsetParent:function(x,i){if(x[i]&&x[i].nodeType!==1)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:t.default.arrayOf(t.default.number),handle:t.default.string,cancel:t.default.string,nodeRef:t.default.object,onStart:t.default.func,onDrag:t.default.func,onStop:t.default.func,onMouseDown:t.default.func,scale:t.default.number,className:s.dontSetMe,style:s.dontSetMe,transform:s.dontSetMe}),v(R,"defaultProps",{allowAnyClick:!1,allowMobileScroll:!1,disabled:!1,enableUserSelectHack:!0,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){},scale:1}),gt}var Mn;function ro(){return Mn||(Mn=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"DraggableCore",{enumerable:!0,get:function(){return u.default}}),e.default=void 0;var t=h(C),r=g(It()),n=g(Ar),a=er,s=xr(),o=Rn(),f=Ft(),u=g(to()),v=g(Nn());function g(l){return l&&l.__esModule?l:{default:l}}function h(l,b){if(typeof WeakMap=="function")var S=new WeakMap,E=new WeakMap;return(h=function(c,w){if(!w&&c&&c.__esModule)return c;var d,m,D={__proto__:null,default:c};if(c===null||typeof c!="object"&&typeof c!="function")return D;if(d=w?E:S){if(d.has(c))return d.get(c);d.set(c,D)}for(const F in c)F!=="default"&&{}.hasOwnProperty.call(c,F)&&((m=(d=Object.defineProperty)&&Object.getOwnPropertyDescriptor(c,F))&&(m.get||m.set)?d(D,F,m):D[F]=c[F]);return D})(l,b)}function j(){return j=Object.assign?Object.assign.bind():function(l){for(var b=1;b<arguments.length;b++){var S=arguments[b];for(var E in S)({}).hasOwnProperty.call(S,E)&&(l[E]=S[E])}return l},j.apply(null,arguments)}function O(l,b,S){return(b=R(b))in l?Object.defineProperty(l,b,{value:S,enumerable:!0,configurable:!0,writable:!0}):l[b]=S,l}function R(l){var b=x(l,"string");return typeof b=="symbol"?b:b+""}function x(l,b){if(typeof l!="object"||!l)return l;var S=l[Symbol.toPrimitive];if(S!==void 0){var E=S.call(l,b);if(typeof E!="object")return E;throw new TypeError("@@toPrimitive must return a primitive value.")}return(b==="string"?String:Number)(l)}class i extends t.Component{static getDerivedStateFromProps(b,S){let{position:E}=b,{prevPropsPosition:c}=S;return E&&(!c||E.x!==c.x||E.y!==c.y)?((0,v.default)("Draggable: getDerivedStateFromProps %j",{position:E,prevPropsPosition:c}),{x:E.x,y:E.y,prevPropsPosition:{...E}}):null}constructor(b){super(b),O(this,"onDragStart",(S,E)=>{if((0,v.default)("Draggable: onDragStart: %j",E),this.props.onStart(S,(0,o.createDraggableData)(this,E))===!1)return!1;this.setState({dragging:!0,dragged:!0})}),O(this,"onDrag",(S,E)=>{if(!this.state.dragging)return!1;(0,v.default)("Draggable: onDrag: %j",E);const c=(0,o.createDraggableData)(this,E),w={x:c.x,y:c.y,slackX:0,slackY:0};if(this.props.bounds){const{x:m,y:D}=w;w.x+=this.state.slackX,w.y+=this.state.slackY;const[F,P]=(0,o.getBoundPosition)(this,w.x,w.y);w.x=F,w.y=P,w.slackX=this.state.slackX+(m-w.x),w.slackY=this.state.slackY+(D-w.y),c.x=w.x,c.y=w.y,c.deltaX=w.x-this.state.x,c.deltaY=w.y-this.state.y}if(this.props.onDrag(S,c)===!1)return!1;this.setState(w)}),O(this,"onDragStop",(S,E)=>{if(!this.state.dragging||this.props.onStop(S,(0,o.createDraggableData)(this,E))===!1)return!1;(0,v.default)("Draggable: onDragStop: %j",E);const w={dragging:!1,slackX:0,slackY:0};if(!!this.props.position){const{x:m,y:D}=this.props.position;w.x=m,w.y=D}this.setState(w)}),this.state={dragging:!1,dragged:!1,x:b.position?b.position.x:b.defaultPosition.x,y:b.position?b.position.y:b.defaultPosition.y,prevPropsPosition:{...b.position},slackX:0,slackY:0,isElementSVG:!1},b.position&&!(b.onDrag||b.onStop)&&console.warn("A `position` was applied to this <Draggable>, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}componentDidMount(){typeof window.SVGElement<"u"&&this.findDOMNode()instanceof window.SVGElement&&this.setState({isElementSVG:!0})}componentWillUnmount(){this.state.dragging&&this.setState({dragging:!1})}findDOMNode(){return this.props?.nodeRef?.current??n.default.findDOMNode(this)}render(){const{axis:b,bounds:S,children:E,defaultPosition:c,defaultClassName:w,defaultClassNameDragging:d,defaultClassNameDragged:m,position:D,positionOffset:F,scale:P,...q}=this.props;let z={},L=null;const U=!!!D||this.state.dragging,J=D||c,Q={x:(0,o.canDragX)(this)&&U?this.state.x:J.x,y:(0,o.canDragY)(this)&&U?this.state.y:J.y};this.state.isElementSVG?L=(0,s.createSVGTransform)(Q,F):z=(0,s.createCSSTransform)(Q,F);const pe=(0,a.clsx)(E.props.className||"",w,{[d]:this.state.dragging,[m]:this.state.dragged});return t.createElement(u.default,j({},q,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),t.cloneElement(t.Children.only(E),{className:pe,style:{...E.props.style,...z},transform:L}))}}e.default=i,O(i,"displayName","Draggable"),O(i,"propTypes",{...u.default.propTypes,axis:r.default.oneOf(["both","x","y","none"]),bounds:r.default.oneOfType([r.default.shape({left:r.default.number,right:r.default.number,top:r.default.number,bottom:r.default.number}),r.default.string,r.default.oneOf([!1])]),defaultClassName:r.default.string,defaultClassNameDragging:r.default.string,defaultClassNameDragged:r.default.string,defaultPosition:r.default.shape({x:r.default.number,y:r.default.number}),positionOffset:r.default.shape({x:r.default.oneOfType([r.default.number,r.default.string]),y:r.default.oneOfType([r.default.number,r.default.string])}),position:r.default.shape({x:r.default.number,y:r.default.number}),className:f.dontSetMe,style:f.dontSetMe,transform:f.dontSetMe}),O(i,"defaultProps",{...u.default.defaultProps,axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},scale:1})})(dr)),dr}var An;function wr(){if(An)return ht.exports;An=1;const{default:e,DraggableCore:t}=ro();return ht.exports=e,ht.exports.default=e,ht.exports.DraggableCore=t,ht.exports}var no=wr(),mt={exports:{}},yt={},$t={},zn;function ao(){if(zn)return $t;zn=1,$t.__esModule=!0,$t.cloneElement=f;var e=t(C);function t(u){return u&&u.__esModule?u:{default:u}}function r(u,v){var g=Object.keys(u);if(Object.getOwnPropertySymbols){var h=Object.getOwnPropertySymbols(u);v&&(h=h.filter(function(j){return Object.getOwnPropertyDescriptor(u,j).enumerable})),g.push.apply(g,h)}return g}function n(u){for(var v=1;v<arguments.length;v++){var g=arguments[v]!=null?arguments[v]:{};v%2?r(Object(g),!0).forEach(function(h){a(u,h,g[h])}):Object.getOwnPropertyDescriptors?Object.defineProperties(u,Object.getOwnPropertyDescriptors(g)):r(Object(g)).forEach(function(h){Object.defineProperty(u,h,Object.getOwnPropertyDescriptor(g,h))})}return u}function a(u,v,g){return(v=s(v))in u?Object.defineProperty(u,v,{value:g,enumerable:!0,configurable:!0,writable:!0}):u[v]=g,u}function s(u){var v=o(u,"string");return typeof v=="symbol"?v:v+""}function o(u,v){if(typeof u!="object"||!u)return u;var g=u[Symbol.toPrimitive];if(g!==void 0){var h=g.call(u,v);if(typeof h!="object")return h;throw new TypeError("@@toPrimitive must return a primitive value.")}return(v==="string"?String:Number)(u)}function f(u,v){return v.style&&u.props.style&&(v.style=n(n({},u.props.style),v.style)),v.className&&u.props.className&&(v.className=`${u.props.className} ${v.className}`),e.default.cloneElement(u,v)}return $t}var bt={},Ln;function Wn(){if(Ln)return bt;Ln=1,bt.__esModule=!0,bt.resizableProps=void 0;var e=t(It());wr();function t(r){return r&&r.__esModule?r:{default:r}}return bt.resizableProps={axis:e.default.oneOf(["both","x","y","none"]),className:e.default.string,children:e.default.element.isRequired,draggableOpts:e.default.shape({allowAnyClick:e.default.bool,cancel:e.default.string,children:e.default.node,disabled:e.default.bool,enableUserSelectHack:e.default.bool,offsetParent:typeof Element<"u"?e.default.instanceOf(Element):e.default.any,grid:e.default.arrayOf(e.default.number),handle:e.default.string,nodeRef:e.default.object,onStart:e.default.func,onDrag:e.default.func,onStop:e.default.func,onMouseDown:e.default.func,scale:e.default.number}),height:function(){for(var r=arguments.length,n=new Array(r),a=0;a<r;a++)n[a]=arguments[a];const[s]=n;return s.axis==="both"||s.axis==="y"?e.default.number.isRequired(...n):e.default.number(...n)},handle:e.default.oneOfType([e.default.node,e.default.func]),handleSize:e.default.arrayOf(e.default.number),lockAspectRatio:e.default.bool,maxConstraints:e.default.arrayOf(e.default.number),minConstraints:e.default.arrayOf(e.default.number),onResizeStop:e.default.func,onResizeStart:e.default.func,onResize:e.default.func,resizeHandles:e.default.arrayOf(e.default.oneOf(["s","w","e","n","sw","nw","se","ne"])),transformScale:e.default.number,width:function(){for(var r=arguments.length,n=new Array(r),a=0;a<r;a++)n[a]=arguments[a];const[s]=n;return s.axis==="both"||s.axis==="x"?e.default.number.isRequired(...n):e.default.number(...n)}},bt}var In;function Fn(){if(In)return yt;In=1,yt.__esModule=!0,yt.default=void 0;var e=s(C),t=wr(),r=ao(),n=Wn();const a=["children","className","draggableOpts","width","height","handle","handleSize","lockAspectRatio","axis","minConstraints","maxConstraints","onResize","onResizeStop","onResizeStart","resizeHandles","transformScale"];function s(x,i){if(typeof WeakMap=="function")var l=new WeakMap,b=new WeakMap;return(s=function(S,E){if(!E&&S&&S.__esModule)return S;var c,w,d={__proto__:null,default:S};if(S===null||typeof S!="object"&&typeof S!="function")return d;if(c=E?b:l){if(c.has(S))return c.get(S);c.set(S,d)}for(const m in S)m!=="default"&&{}.hasOwnProperty.call(S,m)&&((w=(c=Object.defineProperty)&&Object.getOwnPropertyDescriptor(S,m))&&(w.get||w.set)?c(d,m,w):d[m]=S[m]);return d})(x,i)}function o(){return o=Object.assign?Object.assign.bind():function(x){for(var i=1;i<arguments.length;i++){var l=arguments[i];for(var b in l)({}).hasOwnProperty.call(l,b)&&(x[b]=l[b])}return x},o.apply(null,arguments)}function f(x,i){if(x==null)return{};var l,b,S=u(x,i);if(Object.getOwnPropertySymbols){var E=Object.getOwnPropertySymbols(x);for(b=0;b<E.length;b++)l=E[b],i.indexOf(l)===-1&&{}.propertyIsEnumerable.call(x,l)&&(S[l]=x[l])}return S}function u(x,i){if(x==null)return{};var l={};for(var b in x)if({}.hasOwnProperty.call(x,b)){if(i.indexOf(b)!==-1)continue;l[b]=x[b]}return l}function v(x,i){var l=Object.keys(x);if(Object.getOwnPropertySymbols){var b=Object.getOwnPropertySymbols(x);i&&(b=b.filter(function(S){return Object.getOwnPropertyDescriptor(x,S).enumerable})),l.push.apply(l,b)}return l}function g(x){for(var i=1;i<arguments.length;i++){var l=arguments[i]!=null?arguments[i]:{};i%2?v(Object(l),!0).forEach(function(b){h(x,b,l[b])}):Object.getOwnPropertyDescriptors?Object.defineProperties(x,Object.getOwnPropertyDescriptors(l)):v(Object(l)).forEach(function(b){Object.defineProperty(x,b,Object.getOwnPropertyDescriptor(l,b))})}return x}function h(x,i,l){return(i=j(i))in x?Object.defineProperty(x,i,{value:l,enumerable:!0,configurable:!0,writable:!0}):x[i]=l,x}function j(x){var i=O(x,"string");return typeof i=="symbol"?i:i+""}function O(x,i){if(typeof x!="object"||!x)return x;var l=x[Symbol.toPrimitive];if(l!==void 0){var b=l.call(x,i);if(typeof b!="object")return b;throw new TypeError("@@toPrimitive must return a primitive value.")}return(i==="string"?String:Number)(x)}let R=class extends e.Component{constructor(){super(...arguments),this.handleRefs={},this.lastHandleRect=null,this.slack=null,this.lastSize=null}componentWillUnmount(){this.resetData()}resetData(){this.lastHandleRect=this.slack=this.lastSize=null}runConstraints(i,l){const{minConstraints:b,maxConstraints:S,lockAspectRatio:E}=this.props;if(!b&&!S&&!E)return[i,l];if(E){const D=this.props.width/this.props.height,F=i-this.props.width,P=l-this.props.height;Math.abs(F)>Math.abs(P*D)?l=i/D:i=l*D}const[c,w]=[i,l];let[d,m]=this.slack||[0,0];return i+=d,l+=m,b&&(i=Math.max(b[0],i),l=Math.max(b[1],l)),S&&(i=Math.min(S[0],i),l=Math.min(S[1],l)),this.slack=[d+(c-i),m+(w-l)],[i,l]}resizeHandler(i,l){return(b,S)=>{let{node:E,deltaX:c,deltaY:w}=S;i==="onResizeStart"&&this.resetData();const d=(this.props.axis==="both"||this.props.axis==="x")&&l!=="n"&&l!=="s",m=(this.props.axis==="both"||this.props.axis==="y")&&l!=="e"&&l!=="w";if(!d&&!m)return;const D=l[0],F=l[l.length-1],P=E.getBoundingClientRect();if(this.lastHandleRect!=null){if(F==="w"){const J=P.left-this.lastHandleRect.left;c+=J}if(D==="n"){const J=P.top-this.lastHandleRect.top;w+=J}}this.lastHandleRect=P,F==="w"&&(c=-c),D==="n"&&(w=-w);let q=this.props.width+(d?c/this.props.transformScale:0),z=this.props.height+(m?w/this.props.transformScale:0);[q,z]=this.runConstraints(q,z),i==="onResizeStop"&&this.lastSize&&({width:q,height:z}=this.lastSize);const L=q!==this.props.width||z!==this.props.height;i!=="onResizeStop"&&(this.lastSize={width:q,height:z});const X=typeof this.props[i]=="function"?this.props[i]:null;X&&!(i==="onResize"&&!L)&&(b.persist?.(),X(b,{node:E,size:{width:q,height:z},handle:l})),i==="onResizeStop"&&this.resetData()}}renderResizeHandle(i,l){const{handle:b}=this.props;if(!b)return e.createElement("span",{className:`react-resizable-handle react-resizable-handle-${i}`,ref:l});if(typeof b=="function")return b(i,l);const S=typeof b.type=="string",E=g({ref:l},S?{}:{handleAxis:i});return e.cloneElement(b,E)}render(){const i=this.props,{children:l,className:b,draggableOpts:S,width:E,height:c,handle:w,handleSize:d,lockAspectRatio:m,axis:D,minConstraints:F,maxConstraints:P,onResize:q,onResizeStop:z,onResizeStart:L,resizeHandles:X,transformScale:U}=i,J=f(i,a);return(0,r.cloneElement)(l,g(g({},J),{},{className:`${b?`${b} `:""}react-resizable`,children:[...e.Children.toArray(l.props.children),...X.map(Q=>{const pe=this.handleRefs[Q]??(this.handleRefs[Q]=e.createRef());return e.createElement(t.DraggableCore,o({},S,{nodeRef:pe,key:`resizableHandle-${Q}`,onStop:this.resizeHandler("onResizeStop",Q),onStart:this.resizeHandler("onResizeStart",Q),onDrag:this.resizeHandler("onResize",Q)}),this.renderResizeHandle(Q,pe))})]}))}};return yt.default=R,R.propTypes=n.resizableProps,R.defaultProps={axis:"both",handleSize:[20,20],lockAspectRatio:!1,minConstraints:[20,20],maxConstraints:[1/0,1/0],resizeHandles:["se"],transformScale:1},yt}var vt={},qn;function oo(){if(qn)return vt;qn=1,vt.__esModule=!0,vt.default=void 0;var e=o(C),t=s(It()),r=s(Fn()),n=Wn();const a=["handle","handleSize","onResize","onResizeStart","onResizeStop","draggableOpts","minConstraints","maxConstraints","lockAspectRatio","axis","width","height","resizeHandles","style","transformScale"];function s(i){return i&&i.__esModule?i:{default:i}}function o(i,l){if(typeof WeakMap=="function")var b=new WeakMap,S=new WeakMap;return(o=function(E,c){if(!c&&E&&E.__esModule)return E;var w,d,m={__proto__:null,default:E};if(E===null||typeof E!="object"&&typeof E!="function")return m;if(w=c?S:b){if(w.has(E))return w.get(E);w.set(E,m)}for(const D in E)D!=="default"&&{}.hasOwnProperty.call(E,D)&&((d=(w=Object.defineProperty)&&Object.getOwnPropertyDescriptor(E,D))&&(d.get||d.set)?w(m,D,d):m[D]=E[D]);return m})(i,l)}function f(){return f=Object.assign?Object.assign.bind():function(i){for(var l=1;l<arguments.length;l++){var b=arguments[l];for(var S in b)({}).hasOwnProperty.call(b,S)&&(i[S]=b[S])}return i},f.apply(null,arguments)}function u(i,l){var b=Object.keys(i);if(Object.getOwnPropertySymbols){var S=Object.getOwnPropertySymbols(i);l&&(S=S.filter(function(E){return Object.getOwnPropertyDescriptor(i,E).enumerable})),b.push.apply(b,S)}return b}function v(i){for(var l=1;l<arguments.length;l++){var b=arguments[l]!=null?arguments[l]:{};l%2?u(Object(b),!0).forEach(function(S){g(i,S,b[S])}):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(b)):u(Object(b)).forEach(function(S){Object.defineProperty(i,S,Object.getOwnPropertyDescriptor(b,S))})}return i}function g(i,l,b){return(l=h(l))in i?Object.defineProperty(i,l,{value:b,enumerable:!0,configurable:!0,writable:!0}):i[l]=b,i}function h(i){var l=j(i,"string");return typeof l=="symbol"?l:l+""}function j(i,l){if(typeof i!="object"||!i)return i;var b=i[Symbol.toPrimitive];if(b!==void 0){var S=b.call(i,l);if(typeof S!="object")return S;throw new TypeError("@@toPrimitive must return a primitive value.")}return(l==="string"?String:Number)(i)}function O(i,l){if(i==null)return{};var b,S,E=R(i,l);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(i);for(S=0;S<c.length;S++)b=c[S],l.indexOf(b)===-1&&{}.propertyIsEnumerable.call(i,b)&&(E[b]=i[b])}return E}function R(i,l){if(i==null)return{};var b={};for(var S in i)if({}.hasOwnProperty.call(i,S)){if(l.indexOf(S)!==-1)continue;b[S]=i[S]}return b}let x=class extends e.Component{constructor(){super(...arguments),this.state={width:this.props.width,height:this.props.height,propsWidth:this.props.width,propsHeight:this.props.height},this.onResize=(l,b)=>{const{size:S}=b;this.props.onResize?(l.persist?.(),this.setState(S,()=>this.props.onResize&&this.props.onResize(l,b))):this.setState(S)}}static getDerivedStateFromProps(l,b){return b.propsWidth!==l.width||b.propsHeight!==l.height?{width:l.width,height:l.height,propsWidth:l.width,propsHeight:l.height}:null}render(){const l=this.props,{handle:b,handleSize:S,onResize:E,onResizeStart:c,onResizeStop:w,draggableOpts:d,minConstraints:m,maxConstraints:D,lockAspectRatio:F,axis:P,width:q,height:z,resizeHandles:L,style:X,transformScale:U}=l,J=O(l,a);return e.createElement(r.default,{axis:P,draggableOpts:d,handle:b,handleSize:S,height:this.state.height,lockAspectRatio:F,maxConstraints:D,minConstraints:m,onResizeStart:c,onResize:this.onResize,onResizeStop:w,resizeHandles:L,transformScale:U,width:this.state.width},e.createElement("div",f({},J,{style:v(v({},X),{},{width:this.state.width+"px",height:this.state.height+"px"})})))}};return vt.default=x,x.propTypes=v(v({},n.resizableProps),{},{children:t.default.element}),vt}var $n;function so(){return $n||($n=1,mt.exports=function(){throw new Error("Don't instantiate Resizable directly! Use require('react-resizable').Resizable")},mt.exports.Resizable=Fn().default,mt.exports.ResizableBox=oo().default),mt.exports}var io=so();function Hn(e){const{children:t,cols:r,containerWidth:n,margin:a,containerPadding:s,rowHeight:o,maxRows:f,isDraggable:u,isResizable:v,isBounded:g,static:h,useCSSTransforms:j=!0,usePercentages:O=!1,transformScale:R=1,positionStrategy:x,dragThreshold:i=0,droppingPosition:l,className:b="",style:S,handle:E="",cancel:c="",x:w,y:d,w:m,h:D,minW:F=1,maxW:P=1/0,minH:q=1,maxH:z=1/0,i:L,resizeHandles:X,resizeHandle:U,constraints:J=Yr,layoutItem:Q,layout:pe=[],onDragStart:T,onDrag:y,onDragStop:_,onResizeStart:I,onResize:k,onResizeStop:Y}=e,[M,A]=C.useState(!1),[H,$]=C.useState(!1),B=C.useRef(null),G=C.useRef({left:0,top:0}),N=C.useRef({top:0,left:0,width:0,height:0}),se=C.useRef(void 0),Ne=C.useRef(pe);Ne.current=pe;const Te=C.useRef(null),be=C.useRef(null),Ce=C.useRef(!1),it=C.useRef({x:0,y:0}),he=C.useRef(!1),ue=C.useMemo(()=>({cols:r,containerPadding:s,containerWidth:n,margin:a,maxRows:f,rowHeight:o}),[r,s,n,a,f,o]),Ee=C.useMemo(()=>({cols:r,maxRows:f,containerWidth:n,containerHeight:0,rowHeight:o,margin:a,layout:[]}),[r,f,n,o,a]),we=C.useCallback(()=>({...Ee,layout:Ne.current}),[Ee]),Le=C.useMemo(()=>Q??{i:L,x:w,y:d,w:m,h:D,minW:F,maxW:P,minH:q,maxH:z},[Q,L,w,d,m,D,F,P,q,z]),Bt=C.useCallback(ne=>{if(x?.calcStyle)return x.calcStyle(ne);if(j)return Br(ne);const ae=fa(ne);return O?{...ae,left:Vr(ne.left/n),width:Vr(ne.width/n)}:ae},[x,j,O,n]),Fe=C.useCallback((ne,{node:ae})=>{if(!T)return;const{offsetParent:me}=ae;if(!me)return;const ie=me.getBoundingClientRect(),ve=ae.getBoundingClientRect(),Pe=ve.left/R,Re=ie.left/R,Oe=ve.top/R,Me=ie.top/R;let Ae;if(x?.calcDragPosition){const Z=ne;Ae=x.calcDragPosition(Z.clientX,Z.clientY,Z.clientX-ve.left,Z.clientY-ve.top)}else Ae={left:Pe-Re+me.scrollLeft,top:Oe-Me+me.scrollTop};if(G.current=Ae,i>0){const Z=ne;it.current={x:Z.clientX,y:Z.clientY},Ce.current=!0,he.current=!1,A(!0);return}A(!0);const Je=Ot(ue,Ae.top,Ae.left),{x:Ze,y:V}=_t(J,Le,Je.x,Je.y,we());T(L,Ze,V,{e:ne,node:ae,newPosition:Ae})},[T,R,ue,x,i,J,Le,we,L]),lt=C.useCallback((ne,{node:ae,deltaX:me,deltaY:ie})=>{if(!y||!M)return;const ve=ne;if(Ce.current&&!he.current){const Ze=ve.clientX-it.current.x,V=ve.clientY-it.current.y;if(Math.hypot(Ze,V)<i)return;if(he.current=!0,Ce.current=!1,T){const K=Ot(ue,G.current.top,G.current.left),{x:ee,y:le}=_t(J,Le,K.x,K.y,we());T(L,ee,le,{e:ne,node:ae,newPosition:G.current})}}let Pe=G.current.top+ie,Re=G.current.left+me;if(g){const{offsetParent:Ze}=ae;if(Ze){const V=Ze.clientHeight-ot(D,o,a[1]);Pe=Dt(Pe,0,V);const Z=at(ue),K=n-ot(m,Z,a[0]);Re=Dt(Re,0,K)}}const Oe={top:Pe,left:Re};G.current=Oe;const Me=Ot(ue,Pe,Re),{x:Ae,y:Je}=_t(J,Le,Me.x,Me.y,we());y(L,Ae,Je,{e:ne,node:ae,newPosition:Oe})},[y,T,M,i,g,D,o,a,ue,n,m,L,J,Le,we]),Xe=C.useCallback((ne,{node:ae})=>{if(!_||!M)return;const me=Ce.current;if(Ce.current=!1,he.current=!1,it.current={x:0,y:0},me){A(!1),G.current={left:0,top:0};return}const{left:ie,top:ve}=G.current,Pe={top:ve,left:ie};A(!1),G.current={left:0,top:0};const Re=Ot(ue,ve,ie),{x:Oe,y:Me}=_t(J,Le,Re.x,Re.y,we());_(L,Oe,Me,{e:ne,node:ae,newPosition:Pe})},[_,M,ue,J,Le,we,L]);Te.current=Fe,be.current=lt;const We=C.useCallback((ne,{node:ae,size:me,handle:ie},ve,Pe)=>{const Re=Pe==="onResizeStart"?I:Pe==="onResize"?k:Y;if(!Re)return;let Oe;ae?Oe=va(ie,ve,me,n):Oe={...me,top:ve.top,left:ve.left},N.current=Oe;const Me=aa(ue,Oe.width,Oe.height),{w:Ae,h:Je}=ca(J,Le,Me.w,Me.h,ie,we());Re(L,Ae,Je,{e:ne.nativeEvent,node:ae,size:Oe,handle:ie})},[I,k,Y,n,ue,L,J,Le,we]),ut=C.useCallback((ne,ae)=>{$(!0);const me=pt(ue,w,d,m,D),ie={...ae,handle:ae.handle};We(ne,ie,me,"onResizeStart")},[We,ue,w,d,m,D]),ct=C.useCallback((ne,ae)=>{const me=pt(ue,w,d,m,D),ie={...ae,handle:ae.handle};We(ne,ie,me,"onResize")},[We,ue,w,d,m,D]),Ge=C.useCallback((ne,ae)=>{$(!1),N.current={top:0,left:0,width:0,height:0};const me=pt(ue,w,d,m,D),ie={...ae,handle:ae.handle};We(ne,ie,me,"onResizeStop")},[We,ue,w,d,m,D]);C.useEffect(()=>{if(!l)return;const ne=B.current;if(!ne)return;const ae=se.current||{left:0,top:0},me=M&&(l.left!==ae.left||l.top!==ae.top);if(M){if(me){const ie=l.left-G.current.left,ve=l.top-G.current.top,Pe={node:ne,deltaX:ie,deltaY:ve,lastX:G.current.left,lastY:G.current.top,x:l.left,y:l.top};be.current?.(l.e,Pe)}}else{const ie={node:ne,deltaX:l.left,deltaY:l.top,lastX:0,lastY:0,x:l.left,y:l.top};Te.current?.(l.e,ie)}se.current=l},[l,M,L]);const qe=pt(ue,w,d,m,D,M?G.current:null,H?N.current:null),wt=C.Children.only(t),St=pt(ue,0,0,1,1),Vt=[St.width,St.height],Ut=[1/0,1/0],ke=wt.props,Nr=ke.className,Xt=ke.style;let Ke=C.cloneElement(wt,{ref:B,className:er("react-grid-item",Nr,b,{static:h,resizing:H,"react-draggable":u,"react-draggable-dragging":M,dropping:!!l,cssTransforms:j}),style:{...S,...Xt,...Bt(qe)}});const Gt=U;return Ke=p.jsx(io.Resizable,{draggableOpts:{disabled:!v},className:v?void 0:"react-resizable-hide",width:qe.width,height:qe.height,minConstraints:Vt,maxConstraints:Ut,onResizeStart:ut,onResize:ct,onResizeStop:Ge,transformScale:R,resizeHandles:X,handle:Gt,children:Ke}),Ke=p.jsx(no.DraggableCore,{disabled:!u,onStart:Fe,onDrag:lt,onStop:Xe,handle:E,cancel:".react-resizable-handle"+(c?","+c:""),scale:R,nodeRef:B,children:Ke}),Ke}var He=()=>{},Yn="react-grid-layout",Bn=!1;try{Bn=/firefox/i.test(navigator.userAgent)}catch{}function lo(e,t){const r=C.Children.toArray(e),n=C.Children.toArray(t);if(r.length!==n.length)return!1;for(let a=0;a<r.length;a++){const s=r[a],o=n[a];if(s?.key!==o?.key)return!1}return!0}function Vn(e,t,r,n){const a=[],s=new Set;C.Children.forEach(t,f=>{if(!C.isValidElement(f)||f.key===null)return;const u=String(f.key);s.add(u);const v=e.find(g=>g.i===u);if(v)a.push(tt(v));else{const h=f.props["data-grid"];h?a.push({i:u,x:h.x??0,y:h.y??0,w:h.w??1,h:h.h??1,minW:h.minW,maxW:h.maxW,minH:h.minH,maxH:h.maxH,static:h.static,isDraggable:h.isDraggable,isResizable:h.isResizable,resizeHandles:h.resizeHandles,isBounded:h.isBounded}):a.push({i:u,x:0,y:Tt(a),w:1,h:1})}});const o=ar(a,{cols:r});return n.compact(o,r)}function uo(e){const{children:t,width:r,gridConfig:n,dragConfig:a,resizeConfig:s,dropConfig:o,positionStrategy:f=wa,compactor:u,constraints:v=Yr,layout:g=[],droppingItem:h,autoSize:j=!0,className:O="",style:R={},innerRef:x,onLayoutChange:i=He,onDragStart:l=He,onDrag:b=He,onDragStop:S=He,onResizeStart:E=He,onResize:c=He,onResizeStop:w=He,onDrop:d=He,onDropDragOver:m=He}=e,D=C.useMemo(()=>({...Sa,...n}),[n]),F=C.useMemo(()=>({...ja,...a}),[a]),P=C.useMemo(()=>({...Ca,...s}),[s]),q=C.useMemo(()=>({...Ea,...o}),[o]),{cols:z,rowHeight:L,maxRows:X,margin:U,containerPadding:J}=D,{enabled:Q,bounded:pe,handle:T,cancel:y,threshold:_}=F,{enabled:I,handles:k,handleComponent:Y}=P,{enabled:M,defaultItem:A,onDragOver:H}=q,$=u??cr("vertical"),B=$.type,G=$.allowOverlap,N=$.preventCollision??!1,se=C.useMemo(()=>h??{i:"__dropping-elem__",...A},[h,A]),Ne=f.type==="transform",Te=f.scale,be=J??U,[Ce,it]=C.useState(!1),[he,ue]=C.useState(()=>Vn(g,t,z,$)),[Ee,we]=C.useState(null),[Le,Bt]=C.useState(!1),[Fe,lt]=C.useState(null),[Xe,We]=C.useState(),ut=C.useRef(null),ct=C.useRef(null),Ge=C.useRef(null),qe=C.useRef(0),wt=C.useRef(he),St=C.useRef(g),Vt=C.useRef(t),Ut=C.useRef(B),ke=C.useRef(he);ke.current=he,C.useEffect(()=>{it(!0),$e(he,g)||i(he)},[]),C.useEffect(()=>{if(Ee||Fe)return;const V=!$e(g,St.current),Z=!lo(t,Vt.current),K=B!==Ut.current;if(V||Z||K){const le=Vn(V?g:he,t,z,$);$e(le,he)||ue(le)}St.current=g,Vt.current=t,Ut.current=B},[g,t,z,B,$,Ee,Fe,he]),C.useEffect(()=>{if(!Ee&&!$e(he,wt.current)){wt.current=he;const V=he.filter(Z=>Z.i!==se.i);i(V)}},[he,Ee,i,se.i]);const Nr=C.useMemo(()=>{if(!j)return;const V=Tt(he),Z=be[1];return V*L+(V-1)*U[1]+Z*2+"px"},[j,he,L,U,be]),Xt=C.useCallback((V,Z,K,ee)=>{const le=ke.current,oe=et(le,V);if(!oe)return;const ce={w:oe.w,h:oe.h,x:oe.x,y:oe.y,i:V};ut.current=tt(oe),Ge.current=le,we(ce),l(le,oe,oe,null,ee.e,ee.node)},[l]),Ke=C.useCallback((V,Z,K,ee)=>{const le=ke.current,oe=ut.current,ce=et(le,V);if(!ce)return;const xe={w:ce.w,h:ce.h,x:ce.x,y:ce.y,i:V},fe=rt(le,ce,Z,K,!0,N,B,z,G);b(fe,oe,ce,xe,ee.e,ee.node),ue($.compact(fe,z)),we(xe)},[N,B,z,G,$,b]),Gt=C.useCallback((V,Z,K,ee)=>{if(!Ee)return;const le=ke.current,oe=ut.current,ce=et(le,V);if(!ce)return;const xe=rt(le,ce,Z,K,!0,N,B,z,G),fe=$.compact(xe,z);S(fe,oe,ce,null,ee.e,ee.node);const Se=Ge.current;ut.current=null,Ge.current=null,we(null),ue(fe),Se&&!$e(Se,fe)&&i(fe)},[Ee,N,B,z,G,$,S,i]),ne=C.useCallback((V,Z,K,ee)=>{const le=ke.current,oe=et(le,V);oe&&(ct.current=tt(oe),Ge.current=le,Bt(!0),E(le,oe,oe,null,ee.e,ee.node))},[E]),ae=C.useCallback((V,Z,K,ee)=>{const le=ke.current,oe=ct.current,{handle:ce}=ee;let xe=!1,fe,Se;const[Kt,Ye]=ia(le,V,ge=>(fe=ge.x,Se=ge.y,["sw","w","nw","n","ne"].includes(ce)&&(["sw","nw","w"].includes(ce)&&(fe=ge.x+(ge.w-Z),Z=ge.x!==fe&&fe<0?ge.w:Z,fe=fe<0?0:fe),["ne","n","nw"].includes(ce)&&(Se=ge.y+(ge.h-K),K=ge.y!==Se&&Se<0?ge.h:K,Se=Se<0?0:Se),xe=!0),N&&!G&&qr(le,{...ge,w:Z,h:K,x:fe??ge.x,y:Se??ge.y}).filter(Zt=>Zt.i!==ge.i).length>0&&(Se=ge.y,K=ge.h,fe=ge.x,Z=ge.w,xe=!1),ge.w=Z,ge.h=K,ge));if(!Ye)return;let jt=Kt;xe&&fe!==void 0&&Se!==void 0&&(jt=rt(Kt,Ye,fe,Se,!0,N,B,z,G));const Jt={w:Ye.w,h:Ye.h,x:Ye.x,y:Ye.y,i:V,static:!0};c(jt,oe,Ye,Jt,ee.e,ee.node),ue($.compact(jt,z)),we(Jt)},[N,B,z,G,$,c]),me=C.useCallback((V,Z,K,ee)=>{const le=ke.current,oe=ct.current,ce=et(le,V),xe=$.compact(le,z);w(xe,oe,ce??null,null,ee.e,ee.node);const fe=Ge.current;ct.current=null,Ge.current=null,we(null),Bt(!1),ue(xe),fe&&!$e(fe,xe)&&i(xe)},[z,$,w,i]),ie=C.useCallback(()=>{const V=ke.current;if(!V.some(ee=>ee.i===se.i)){lt(null),we(null),We(void 0);return}const K=$.compact(V.filter(ee=>ee.i!==se.i),z);ue(K),lt(null),we(null),We(void 0)},[se.i,z,$]),ve=C.useCallback(V=>{if(V.preventDefault(),V.stopPropagation(),Bn&&!V.nativeEvent.target?.classList.contains(Yn))return!1;const Z=H?H(V.nativeEvent):m(V);if(Z===!1)return Fe&&ie(),!1;const{dragOffsetX:K=0,dragOffsetY:ee=0,...le}=Z??{},oe={...se,...le},ce=V.currentTarget.getBoundingClientRect(),xe={cols:z,margin:U,maxRows:X,rowHeight:L,containerWidth:r,containerPadding:be},fe=at(xe),Se=ot(oe.w,fe,U[0]),Kt=ot(oe.h,L,U[1]),Ye=Se/2,jt=Kt/2,Jt=V.clientX-ce.left+K-Ye,ge=V.clientY-ce.top+ee-jt,kr=Math.max(0,Jt),Zt=Math.max(0,ge),Qt={left:kr/Te,top:Zt/Te,e:V.nativeEvent};if(Fe)Xe&&(Xe.left!==Qt.left||Xe.top!==Qt.top)&&We(Qt);else{const Mr=na(xe,Zt,kr,oe.w,oe.h);lt(p.jsx("div",{},oe.i)),We(Qt),ue([...ke.current,{...oe,x:Mr.x,y:Mr.y,static:!1,isDraggable:!0}])}},[Fe,Xe,se,H,m,ie,Te,z,U,X,L,r,be]),Pe=C.useCallback(V=>{V.preventDefault(),V.stopPropagation(),qe.current--,qe.current<0&&(qe.current=0),qe.current===0&&ie()},[ie]),Re=C.useCallback(V=>{V.preventDefault(),V.stopPropagation(),qe.current++},[]),Oe=C.useCallback(V=>{V.preventDefault(),V.stopPropagation();const Z=ke.current,K=Z.find(ee=>ee.i===se.i);qe.current=0,ie(),d(Z,K,V.nativeEvent)},[se.i,ie,d]),Me=C.useCallback((V,Z)=>{if(!V||!V.key)return null;const K=et(he,String(V.key));if(!K)return null;const ee=typeof K.isDraggable=="boolean"?K.isDraggable:!K.static&&Q,le=typeof K.isResizable=="boolean"?K.isResizable:!K.static&&I,oe=K.resizeHandles||[...k],ce=ee&&pe&&K.isBounded!==!1,xe=Y;return p.jsx(Hn,{containerWidth:r,cols:z,margin:U,containerPadding:be,maxRows:X,rowHeight:L,cancel:y,handle:T,onDragStart:Xt,onDrag:Ke,onDragStop:Gt,onResizeStart:ne,onResize:ae,onResizeStop:me,isDraggable:ee,isResizable:le,isBounded:ce,useCSSTransforms:Ne&&Ce,usePercentages:!Ce,transformScale:Te,positionStrategy:f,dragThreshold:_,w:K.w,h:K.h,x:K.x,y:K.y,i:K.i,minH:K.minH,minW:K.minW,maxH:K.maxH,maxW:K.maxW,static:K.static,droppingPosition:Z?Xe:void 0,resizeHandles:oe,resizeHandle:xe,constraints:v,layoutItem:K,layout:he,children:V},K.i)},[he,r,z,U,be,X,L,y,T,Xt,Ke,Gt,ne,ae,me,Q,I,pe,Ne,Ce,Te,f,_,Xe,k,Y,v]),Ae=()=>Ee?p.jsx(Hn,{w:Ee.w,h:Ee.h,x:Ee.x,y:Ee.y,i:Ee.i,className:`react-grid-placeholder ${Le?"placeholder-resizing":""}`,containerWidth:r,cols:z,margin:U,containerPadding:be,maxRows:X,rowHeight:L,isDraggable:!1,isResizable:!1,isBounded:!1,useCSSTransforms:Ne,transformScale:Te,constraints:v,layout:he,children:p.jsx("div",{})}):null,Je=er(Yn,O),Ze={height:Nr,...R};return p.jsxs("div",{ref:x,className:Je,style:Ze,onDrop:M?Oe:void 0,onDragLeave:M?Pe:void 0,onDragEnter:M?Re:void 0,onDragOver:M?ve:void 0,children:[C.Children.map(t,V=>C.isValidElement(V)?Me(V):null),M&&Fe&&Me(Fe,!0),Ae()]})}var co={lg:1200,md:996,sm:768,xs:480,xxs:0},fo={lg:12,md:10,sm:6,xs:4,xxs:2},Sr=()=>{};function po(e,t,r,n){const a=[];C.Children.forEach(t,o=>{if(!C.isValidElement(o)||o.key===null)return;const f=String(o.key),u=e.find(v=>v.i===f);if(u)a.push({...u,i:f});else{const g=o.props["data-grid"];g?a.push({i:f,x:g.x??0,y:g.y??0,w:g.w??1,h:g.h??1,minW:g.minW,maxW:g.maxW,minH:g.minH,maxH:g.maxH,static:g.static,isDraggable:g.isDraggable,isResizable:g.isResizable,resizeHandles:g.resizeHandles,isBounded:g.isBounded}):a.push({i:f,x:0,y:Tt(a),w:1,h:1})}});const s=ar(a,{cols:r});return n.compact(s,r)}function ho(e){const{children:t,width:r,breakpoint:n,breakpoints:a=co,cols:s=fo,layouts:o={},rowHeight:f=150,maxRows:u=1/0,margin:v=[10,10],containerPadding:g=null,compactor:h,onBreakpointChange:j=Sr,onLayoutChange:O=Sr,onWidthChange:R=Sr,...x}=e,i=h??cr("vertical"),l=i.type,b=i.allowOverlap,S=C.useMemo(()=>n??Zr(a,r),[]),E=C.useMemo(()=>Qr(S,s),[S,s]),c=C.useMemo(()=>fr(o,a,S,S,E,l),[]),[w,d]=C.useState(S),[m,D]=C.useState(E),[F,P]=C.useState(c),[q,z]=C.useState(o),L=C.useRef(r),X=C.useRef(n),U=C.useRef(a),J=C.useRef(s),Q=C.useRef(o),pe=C.useRef(l),T=C.useRef(q);C.useEffect(()=>{T.current=q},[q]);const y=C.useMemo(()=>$e(o,Q.current)?null:fr(o,a,w,w,m,i),[o,a,w,m,i]),_=y??F;C.useEffect(()=>{y!==null&&(P(y),z(o),T.current=o,Q.current=o)},[y,o]),C.useEffect(()=>{if(l!==pe.current){const A=i.compact(Be(_),m),H={...T.current,[w]:A};P(A),z(H),T.current=H,O(A,H),pe.current=l}},[l,i,_,m,b,w,O]),C.useEffect(()=>{const A=r!==L.current,H=n!==X.current,$=!$e(a,U.current),B=!$e(s,J.current);if(A||H||$||B){const G=n??Zr(a,r),N=Qr(G,s),se=w;if(se!==G||$||B){const be={...T.current};be[se]||(be[se]=Be(F));let Ce=fr(be,a,G,se,N,i);Ce=po(Ce,t,N,i),be[G]=Ce,d(G),D(N),P(Ce),z(be),T.current=be,j(G,N),O(Ce,be)}const Ne=kt(v,G),Te=g?kt(g,G):null;R(r,Ne,N,Te),L.current=r,X.current=n,U.current=a,J.current=s}},[r,n,a,s,w,m,F,t,i,l,b,v,g,j,O,R]);const I=C.useCallback(A=>{const $={...T.current,[w]:A};P(A),z($),T.current=$,O(A,$)},[w,O]),k=C.useMemo(()=>kt(v,w),[v,w]),Y=C.useMemo(()=>g===null?null:kt(g,w),[g,w]),M=C.useMemo(()=>({cols:m,rowHeight:f,maxRows:u,margin:k,containerPadding:Y}),[m,f,u,k,Y]);return p.jsx(uo,{...x,width:r,gridConfig:M,compactor:i,onLayoutChange:I,layout:_,children:t})}function go({editMode:e}){const t=ze.useDnd();return De.useEffect(()=>{if(e)return t.startDrag({id:"dashboard-layout",type:"dashboard-widget",data:{}}),()=>{t.endDrag()};t.endDrag("dashboard")},[e,t]),null}const jr=["hsl(var(--chart-1))","hsl(var(--chart-2))","hsl(var(--chart-3))","hsl(var(--chart-4))","hsl(var(--chart-5))"],Cr=({schema:e,className:t,onLayoutChange:r,persistLayoutKey:n="dashboard-layout",onRefresh:a})=>{const{width:s,containerRef:o,mounted:f}=Ua(),[u,v]=De.useState(!1),[g,h]=De.useState(!1),j=ze.useHasDndProvider(),O=De.useRef(null),R=De.useCallback(()=>{a&&(h(!0),a(),setTimeout(()=>h(!1),600))},[a]);De.useEffect(()=>{if(!(!e.refreshInterval||e.refreshInterval<=0||!a))return O.current=setInterval(R,e.refreshInterval*1e3),()=>{O.current&&clearInterval(O.current)}},[e.refreshInterval,a,R]);const[x,i]=De.useState(()=>{if(typeof window<"u"&&n){const c=localStorage.getItem(n);if(c)try{return JSON.parse(c)}catch(w){console.error("Failed to parse saved layout:",w)}}return{lg:e.widgets?.map((c,w)=>({i:c.id||`widget-${w}`,x:c.layout?.x||w%4*3,y:c.layout?.y||Math.floor(w/4)*4,w:c.layout?.w||3,h:c.layout?.h||4}))||[]}}),l=De.useCallback((c,w)=>{i(w),r?.(c)},[r]),b=De.useCallback(()=>{typeof window<"u"&&n&&localStorage.setItem(n,JSON.stringify(x)),v(!1)},[x,n]),S=De.useCallback(()=>{const c={lg:e.widgets?.map((w,d)=>({i:w.id||`widget-${d}`,x:w.layout?.x||d%4*3,y:w.layout?.y||Math.floor(d/4)*4,w:w.layout?.w||3,h:w.layout?.h||4}))||[]};i(c),typeof window<"u"&&n&&localStorage.removeItem(n)},[e.widgets,n]),E=De.useCallback(c=>{if(c.component)return c.component;const w=c.type,d=c.options||{};if(w==="bar"||w==="line"||w==="area"||w==="pie"||w==="donut"||w==="scatter"){const m=c.data||d.data,D=c.categoryField||d.xField||"name",F=c.valueField||d.yField||"value";if(nt(m)){const q=m.aggregate,z=q?{field:c.valueField||q.field,function:c.aggregate||q.function,groupBy:c.categoryField||q.groupBy}:void 0,L=z?.field||F;return{type:"object-chart",chartType:w,objectName:c.object||m.object,aggregate:z,xAxisKey:D,series:[{dataKey:L}],colors:jr,className:"h-full"}}if(!m&&c.object){const q=c.aggregate?{field:c.valueField||"value",function:c.aggregate,groupBy:c.categoryField||"name"}:void 0;return{type:"object-chart",chartType:w,objectName:c.object,aggregate:q,xAxisKey:D,series:[{dataKey:c.valueField||"value"}],colors:jr,className:"h-full"}}const P=Array.isArray(m)?m:m?.items||[];return{type:"chart",chartType:w,data:P,xAxisKey:D,series:[{dataKey:F}],colors:jr,className:"h-full"}}if(w==="table"){const m=c.data||d.data;if(nt(m)){const{data:D,...F}=d;return{type:"data-table",...F,objectName:c.object||m.object,dataProvider:m,data:[],searchable:!1,pagination:!1,className:"border-0"}}return!m&&c.object?{type:"data-table",...d,objectName:c.object,data:[],searchable:!1,pagination:!1,className:"border-0"}:{type:"data-table",...d,data:m?.items||[],searchable:!1,pagination:!1,className:"border-0"}}if(w==="pivot"){const m=c.data||d.data;if(nt(m)){const{data:D,...F}=d;return{type:"pivot",...F,objectName:c.object||m.object,dataProvider:m,data:[]}}return{type:"pivot",...d,data:Array.isArray(m)?m:m?.items||[]}}return{...c,...d}},[]);return p.jsxs("div",{ref:o,className:W.cn("w-full",t),"data-testid":"grid-layout",children:[j&&p.jsx(go,{editMode:u}),p.jsxs("div",{className:"mb-4 flex items-center justify-between",children:[p.jsx("h2",{className:"text-2xl font-bold",children:e.title||"Dashboard"}),p.jsx("div",{className:"flex gap-2",children:u?p.jsxs(p.Fragment,{children:[p.jsxs(W.Button,{onClick:b,size:"sm",variant:"default",children:[p.jsx(je.Save,{className:"h-4 w-4 mr-2"}),"Save Layout"]}),p.jsxs(W.Button,{onClick:S,size:"sm",variant:"outline",children:[p.jsx(je.X,{className:"h-4 w-4 mr-2"}),"Reset"]}),p.jsx(W.Button,{onClick:()=>v(!1),size:"sm",variant:"ghost",children:"Cancel"})]}):p.jsxs(p.Fragment,{children:[a&&p.jsxs(W.Button,{onClick:R,size:"sm",variant:"outline",disabled:g,"aria-label":"Refresh dashboard",children:[p.jsx(je.RefreshCw,{className:W.cn("h-4 w-4 mr-2",g&&"animate-spin")}),g?"Refreshing…":"Refresh All"]}),p.jsxs(W.Button,{onClick:()=>v(!0),size:"sm",variant:"outline",children:[p.jsx(je.Edit,{className:"h-4 w-4 mr-2"}),"Edit Layout"]})]})})]}),f&&p.jsx(ho,{className:"layout",width:s,layouts:x,breakpoints:{lg:1200,md:996,sm:768,xs:480,xxs:0},cols:{lg:12,md:10,sm:6,xs:4,xxs:2},rowHeight:60,dragConfig:{enabled:u,handle:".drag-handle"},resizeConfig:{enabled:u},onLayoutChange:l,children:e.widgets?.map((c,w)=>{const d=c.id||`widget-${w}`,m=E(c),D=c.type==="metric";return p.jsx("div",{className:"h-full",children:D?p.jsxs("div",{className:"h-full w-full relative",children:[u&&p.jsx("div",{className:"drag-handle absolute top-2 right-2 z-10 cursor-move p-1 bg-background/80 rounded border border-border",children:p.jsx(je.GripVertical,{className:"h-4 w-4"})}),p.jsx(ze.SchemaRenderer,{schema:m,className:"h-full w-full"})]}):p.jsxs(W.Card,{className:W.cn("h-full overflow-hidden border-border/50 shadow-sm transition-all","bg-card/50 backdrop-blur-sm",u&&"ring-2 ring-primary/20"),children:[c.title&&p.jsxs(W.CardHeader,{className:"pb-2 border-b border-border/40 bg-muted/20 flex flex-row items-center justify-between",children:[p.jsx(W.CardTitle,{className:"text-base font-medium tracking-tight truncate",title:c.title,children:c.title}),u&&p.jsx("div",{className:"drag-handle cursor-move p-1 hover:bg-muted/40 rounded",children:p.jsx(je.GripVertical,{className:"h-4 w-4"})})]}),p.jsx(W.CardContent,{className:"p-0 h-full",children:p.jsx("div",{className:W.cn("h-full w-full overflow-auto p-4"),children:p.jsx(ze.SchemaRenderer,{schema:m})})})]})},d)})})]})};function Er(e){if(e!=null)return typeof e=="string"?e:e.defaultValue||e.key}const Pr=({label:e,value:t,trend:r,icon:n,className:a,description:s,...o})=>{const f=C.useMemo(()=>{if(typeof n=="string"){const u=Lr[n];return u?p.jsx(u,{className:"h-4 w-4 text-muted-foreground"}):null}return n},[n]);return p.jsxs(W.Card,{className:W.cn("h-full overflow-hidden",a),...o,children:[p.jsxs(W.CardHeader,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[p.jsx(W.CardTitle,{className:"text-sm font-medium truncate",children:Er(e)}),f&&p.jsx("div",{className:"h-4 w-4 text-muted-foreground shrink-0",children:f})]}),p.jsxs(W.CardContent,{children:[p.jsx("div",{className:"text-2xl font-bold truncate",children:t}),(r||s)&&p.jsxs("p",{className:"text-xs text-muted-foreground flex items-center mt-1 truncate",children:[r&&p.jsxs("span",{className:W.cn("flex items-center mr-2 shrink-0",r.direction==="up"&&"text-green-500",r.direction==="down"&&"text-red-500",r.direction==="neutral"&&"text-yellow-500"),children:[r.direction==="up"&&p.jsx(je.ArrowUpIcon,{className:"h-3 w-3 mr-1"}),r.direction==="down"&&p.jsx(je.ArrowDownIcon,{className:"h-3 w-3 mr-1"}),r.direction==="neutral"&&p.jsx(je.MinusIcon,{className:"h-3 w-3 mr-1"}),r.value,"%"]}),p.jsx("span",{className:"truncate",children:Er(s)||Er(r?.label)})]})]})]})};function Un(e){if(e!=null)return typeof e=="string"?e:e.defaultValue||e.key}const Or=({title:e,value:t,icon:r,trend:n,trendValue:a,description:s,className:o,...f})=>{const u=r&&Lr[r];return p.jsxs(W.Card,{className:W.cn("h-full",o),...f,children:[p.jsxs(W.CardHeader,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[p.jsx(W.CardTitle,{className:"text-sm font-medium",children:Un(e)}),u&&p.jsx(u,{className:"h-4 w-4 text-muted-foreground"})]}),p.jsxs(W.CardContent,{children:[p.jsx("div",{className:"text-2xl font-bold",children:t}),(n||a||s)&&p.jsxs("p",{className:"text-xs text-muted-foreground flex items-center mt-1",children:[n&&a&&p.jsxs("span",{className:W.cn("flex items-center mr-2",n==="up"&&"text-green-500",n==="down"&&"text-red-500",n==="neutral"&&"text-yellow-500"),children:[n==="up"&&p.jsx(je.ArrowUpIcon,{className:"h-3 w-3 mr-1"}),n==="down"&&p.jsx(je.ArrowDownIcon,{className:"h-3 w-3 mr-1"}),n==="neutral"&&p.jsx(je.MinusIcon,{className:"h-3 w-3 mr-1"}),a]}),Un(s)]})]})]})};function mo(e,t){if(!t)return String(e);let r="",n="",a=!1,s,o=t;const f=o.match(/^([^0-9.,#]*)/);if(f&&f[1]){const g=f[1];r=g.replace(",",""),g.includes(",")&&(a=!0),o=o.slice(f[1].length)}o.includes(",")&&(a=!0,o=o.replace(/,/g,""));const u=o.match(/\.(\d+)f?/);u&&(s=Number(u[1]),o=o.slice(u[0].length)),n=o.replace(/[0-9#.f]/g,"");const v=s!==void 0?e.toFixed(s):String(e);if(a){const[g,h]=v.split("."),j=g.replace(/\B(?=(\d{3})+(?!\d))/g,",");return r+(h!==void 0?`${j}.${h}`:j)+n}return r+v+n}function Ht(e,t){if(e.length===0)return 0;switch(t){case"sum":return e.reduce((r,n)=>r+n,0);case"count":return e.length;case"avg":return e.reduce((r,n)=>r+n,0)/e.length;case"min":return Math.min(...e);case"max":return Math.max(...e);default:return e.reduce((r,n)=>r+n,0)}}const Yt=({schema:e,className:t})=>{const{title:r,rowField:n,columnField:a,valueField:s,aggregation:o="sum",data:f=[],showRowTotals:u=!1,showColumnTotals:v=!1,format:g,columnColors:h}=e,j=Array.isArray(f)?f:[],{rowKeys:O,colKeys:R,matrix:x,rowTotals:i,colTotals:l,grandTotal:b}=C.useMemo(()=>{const E=new Map,c=new Map,w={};for(const L of j){const X=String(L[n]??""),U=String(L[a]??""),J=Number(L[s])||0;E.set(X,!0),c.set(U,!0),w[X]||(w[X]={}),w[X][U]||(w[X][U]=[]),w[X][U].push(J)}const d=Array.from(E.keys()),m=Array.from(c.keys()),D={},F={},P={};for(const L of d){D[L]={};const X=[];for(const U of m){const J=w[L]?.[U]??[],Q=Ht(J,o);D[L][U]=Q,X.push(...J),!P[U]&&P[U]}F[L]=Ht(X,o)}for(const L of m){const X=[];for(const U of d){const J=w[U]?.[L]??[];X.push(...J)}P[L]=Ht(X,o)}const q=[];for(const L of j)q.push(Number(L[s])||0);const z=Ht(q,o);return{rowKeys:d,colKeys:m,matrix:D,rowTotals:F,colTotals:P,grandTotal:z}},[j,n,a,s,o]),S=E=>mo(E,g);return j.length===0?p.jsxs("div",{className:W.cn("overflow-auto",t),children:[r&&p.jsx("h3",{className:"text-sm font-semibold mb-2",children:r}),p.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-muted-foreground","data-testid":"pivot-empty-state",children:[p.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",className:"h-8 w-8 mb-2 opacity-40",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[p.jsx("rect",{x:"3",y:"3",width:"7",height:"7"}),p.jsx("rect",{x:"14",y:"3",width:"7",height:"7"}),p.jsx("rect",{x:"3",y:"14",width:"7",height:"7"}),p.jsx("rect",{x:"14",y:"14",width:"7",height:"7"})]}),p.jsx("p",{className:"text-xs",children:"No data available"})]})]}):p.jsxs("div",{className:W.cn("overflow-auto",t),children:[r&&p.jsx("h3",{className:"text-sm font-semibold mb-2",children:r}),p.jsxs("table",{className:"w-full text-sm border-collapse",role:"table",children:[p.jsx("thead",{children:p.jsxs("tr",{className:"border-b border-border",children:[p.jsx("th",{className:"text-left p-2 font-medium text-muted-foreground",children:n}),R.map(E=>p.jsx("th",{className:W.cn("text-right p-2 font-medium",h?.[E]??"text-muted-foreground"),children:E},E)),u&&p.jsx("th",{className:"text-right p-2 font-semibold text-muted-foreground bg-muted/20",children:"Total"})]})}),p.jsx("tbody",{children:O.map(E=>p.jsxs("tr",{className:"border-b border-border/50 hover:bg-muted/30",children:[p.jsx("td",{className:"p-2 font-medium",children:E}),R.map(c=>p.jsx("td",{className:W.cn("text-right p-2 tabular-nums",h?.[c]),children:S(x[E]?.[c]??0)},c)),u&&p.jsx("td",{className:"text-right p-2 font-semibold tabular-nums bg-muted/20",children:S(i[E]??0)})]},E))}),v&&p.jsx("tfoot",{children:p.jsxs("tr",{className:"border-t-2 border-border font-semibold bg-muted/40",children:[p.jsx("td",{className:"p-2",children:"Total"}),R.map(E=>p.jsx("td",{className:"text-right p-2 tabular-nums",children:S(l[E]??0)},E)),u&&p.jsx("td",{className:"text-right p-2 tabular-nums font-bold",children:S(b)})]})})]})]})},Dr=({schema:e,dataSource:t,className:r})=>{const n=C.useContext(ze.SchemaRendererContext),a=t||n?.dataSource,s=ze.useDataScope(e.bind),[o,f]=C.useState([]),[u,v]=C.useState(!1),[g,h]=C.useState(null);C.useEffect(()=>{let x=!0;const i=async()=>{if(!(!a||!e.objectName)){x&&(v(!0),h(null));try{let l;if(typeof a.find=="function"){const b=await a.find(e.objectName,{$filter:e.filter});l=_e.extractRecords(b)}else return;x&&f(l)}catch(l){console.error("[ObjectPivotTable] Fetch error:",l),x&&h(l instanceof Error?l.message:"Failed to load data")}finally{x&&v(!1)}}};return e.objectName&&!s&&(!e.data||e.data.length===0)&&i(),()=>{x=!1}},[e.objectName,a,s,e.data,e.filter]);const j=s||e.data||o,O=Array.isArray(j)?j:[];if(u&&O.length===0)return p.jsxs("div",{className:W.cn("overflow-auto",r),"data-testid":"pivot-loading",children:[e.title&&p.jsx("h3",{className:"text-sm font-semibold mb-2",children:e.title}),p.jsxs("div",{className:"space-y-2 p-2",children:[p.jsxs("div",{className:"flex gap-2",children:[p.jsx(W.Skeleton,{className:"h-6 w-24"}),p.jsx(W.Skeleton,{className:"h-6 w-20"}),p.jsx(W.Skeleton,{className:"h-6 w-20"}),p.jsx(W.Skeleton,{className:"h-6 w-20"})]}),[1,2,3].map(x=>p.jsxs("div",{className:"flex gap-2",children:[p.jsx(W.Skeleton,{className:"h-5 w-24"}),p.jsx(W.Skeleton,{className:"h-5 w-20"}),p.jsx(W.Skeleton,{className:"h-5 w-20"}),p.jsx(W.Skeleton,{className:"h-5 w-20"})]},x))]})]});if(g)return p.jsxs("div",{className:W.cn("overflow-auto",r),"data-testid":"pivot-error",children:[e.title&&p.jsx("h3",{className:"text-sm font-semibold mb-2",children:e.title}),p.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-destructive","data-testid":"pivot-error-message",children:[p.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",className:"h-8 w-8 mb-2 opacity-60",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[p.jsx("circle",{cx:"12",cy:"12",r:"10"}),p.jsx("line",{x1:"12",y1:"8",x2:"12",y2:"12"}),p.jsx("line",{x1:"12",y1:"16",x2:"12.01",y2:"16"})]}),p.jsx("p",{className:"text-xs",children:g})]})]});if(!a&&e.objectName&&O.length===0)return p.jsxs("div",{className:W.cn("overflow-auto",r),children:[e.title&&p.jsx("h3",{className:"text-sm font-semibold mb-2",children:e.title}),p.jsx("div",{className:"flex flex-col items-center justify-center py-8 text-muted-foreground",children:p.jsxs("p",{className:"text-xs",children:["No data source available for “",e.objectName,"”"]})})]});const R={...e,data:O};return p.jsx(Yt,{schema:R,className:r})},Tr=({schema:e,dataSource:t,className:r})=>{const n=C.useContext(ze.SchemaRendererContext),a=t||n?.dataSource,s=ze.useDataScope(e.bind),[o,f]=C.useState([]),[u,v]=C.useState(!1),[g,h]=C.useState(null);C.useEffect(()=>{let i=!0;const l=async()=>{if(!(!a||!e.objectName)){i&&(v(!0),h(null));try{let b;if(typeof a.find=="function"){const S=await a.find(e.objectName,{$filter:e.filter});b=_e.extractRecords(S)}else return;i&&f(b)}catch(b){console.error("[ObjectDataTable] Fetch error:",b),i&&h(b instanceof Error?b.message:"Failed to load data")}finally{i&&v(!1)}}};return e.objectName&&!s&&(!e.data||e.data.length===0)&&l(),()=>{i=!1}},[e.objectName,a,s,e.data,e.filter]);const j=s||e.data||o,O=Array.isArray(j)?j:[],R=C.useMemo(()=>e.columns&&e.columns.length>0?e.columns:O.length===0?[]:Object.keys(O[0]).filter(l=>!l.startsWith("_")).map(l=>({header:l.charAt(0).toUpperCase()+l.slice(1).replace(/([A-Z])/g," $1"),accessorKey:l})),[e.columns,O]);if(u&&O.length===0)return p.jsx("div",{className:W.cn("overflow-auto",r),"data-testid":"table-loading",children:p.jsxs("div",{className:"space-y-2 p-2",children:[p.jsxs("div",{className:"flex gap-2",children:[p.jsx(W.Skeleton,{className:"h-6 w-1/4"}),p.jsx(W.Skeleton,{className:"h-6 w-1/4"}),p.jsx(W.Skeleton,{className:"h-6 w-1/4"}),p.jsx(W.Skeleton,{className:"h-6 w-1/4"})]}),[1,2,3,4].map(i=>p.jsxs("div",{className:"flex gap-2",children:[p.jsx(W.Skeleton,{className:"h-5 w-1/4"}),p.jsx(W.Skeleton,{className:"h-5 w-1/4"}),p.jsx(W.Skeleton,{className:"h-5 w-1/4"}),p.jsx(W.Skeleton,{className:"h-5 w-1/4"})]},i))]})});if(g)return p.jsx("div",{className:W.cn("overflow-auto",r),"data-testid":"table-error",children:p.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-destructive","data-testid":"table-error-message",children:[p.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",className:"h-8 w-8 mb-2 opacity-60",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[p.jsx("circle",{cx:"12",cy:"12",r:"10"}),p.jsx("line",{x1:"12",y1:"8",x2:"12",y2:"12"}),p.jsx("line",{x1:"12",y1:"16",x2:"12.01",y2:"16"})]}),p.jsx("p",{className:"text-xs",children:g})]})});if(!a&&e.objectName&&O.length===0)return p.jsx("div",{className:W.cn("overflow-auto",r),children:p.jsx("div",{className:"flex flex-col items-center justify-center py-8 text-muted-foreground",children:p.jsxs("p",{className:"text-xs",children:["No data source available for “",e.objectName,"”"]})})});if(O.length===0)return p.jsx("div",{className:W.cn("overflow-auto",r),"data-testid":"table-empty-state",children:p.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-muted-foreground",children:[p.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",className:"h-8 w-8 mb-2 opacity-40",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[p.jsx("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",ry:"2"}),p.jsx("line",{x1:"3",y1:"9",x2:"21",y2:"9"}),p.jsx("line",{x1:"9",y1:"21",x2:"9",y2:"9"})]}),p.jsx("p",{className:"text-xs",children:"No data available"})]})});const x={...e,type:"data-table",data:O,columns:R};return p.jsx(ze.SchemaRenderer,{schema:x,className:r})},yo={breadcrumb:["Dashboard","Configuration"],sections:[{key:"layout",title:"Layout",fields:[{key:"columns",label:"Columns",type:"slider",defaultValue:3,min:1,max:12,step:1},{key:"gap",label:"Gap",type:"slider",defaultValue:4,min:0,max:16,step:1},{key:"rowHeight",label:"Row height",type:"input",defaultValue:"120",placeholder:"e.g. 120"}]},{key:"data",title:"Data",collapsible:!0,fields:[{key:"refreshInterval",label:"Refresh interval",type:"select",defaultValue:"0",options:[{value:"0",label:"Manual"},{value:"30",label:"30s"},{value:"60",label:"1 min"},{value:"300",label:"5 min"}]}]},{key:"appearance",title:"Appearance",collapsible:!0,defaultCollapsed:!0,fields:[{key:"title",label:"Title",type:"input",placeholder:"Dashboard title"},{key:"showDescription",label:"Show description",type:"switch",defaultValue:!0},{key:"theme",label:"Theme",type:"select",defaultValue:"auto",options:[{value:"light",label:"Light"},{value:"dark",label:"Dark"},{value:"auto",label:"Auto"}]}]}]};function Rr({open:e,onClose:t,config:r,onSave:n,onFieldChange:a}){const{draft:s,isDirty:o,updateField:f,discard:u}=W.useConfigDraft(r,{onUpdate:a});return p.jsx(W.ConfigPanelRenderer,{open:e,onClose:t,schema:yo,draft:s,isDirty:o,onFieldChange:f,onSave:()=>n(s),onDiscard:u})}const bo=[{value:"metric",label:"Metric"},{value:"bar",label:"Bar Chart"},{value:"line",label:"Line Chart"},{value:"pie",label:"Pie Chart"},{value:"donut",label:"Donut Chart"},{value:"area",label:"Area Chart"},{value:"scatter",label:"Scatter Plot"},{value:"table",label:"Table"},{value:"pivot",label:"Pivot Table"},{value:"list",label:"List"},{value:"custom",label:"Custom"}],vo=[{value:"default",label:"Default"},{value:"blue",label:"Blue"},{value:"teal",label:"Teal"},{value:"orange",label:"Orange"},{value:"purple",label:"Purple"},{value:"success",label:"Success"},{value:"warning",label:"Warning"},{value:"danger",label:"Danger"}],Xn=[{value:"count",label:"Count"},{value:"sum",label:"Sum"},{value:"avg",label:"Average"},{value:"min",label:"Min"},{value:"max",label:"Max"}],xo=["bar","line","area","pie","donut","scatter"];function Gn(e){return!!e&&xo.includes(e)}const Kn=[{value:"group",label:"Group"},{value:"value",label:"Value"}],Jn=[{value:"asc",label:"↑"},{value:"desc",label:"↓"}];function xt(e,t,r,n){return{key:e,label:t,type:"custom",render:(a,s,o)=>p.jsx(W.ConfigRow,{label:t,children:p.jsx("div",{"data-testid":`config-field-${e}`,children:p.jsx(W.Combobox,{options:n??[],value:a??"",onValueChange:s,placeholder:r,searchPlaceholder:"Search fields…",emptyText:"No fields found.",className:"h-7 w-32 text-xs",disabled:!o.object})})})}}function wo(e,t,r){const n=e&&e.length>0,a=n?{key:"object",label:"Data source",type:"custom",render:(j,O)=>p.jsx(W.ConfigRow,{label:"Data source",children:p.jsx("div",{"data-testid":"config-field-object",children:p.jsx(W.Combobox,{options:e,value:j??"",onValueChange:O,placeholder:"Select object…",searchPlaceholder:"Search objects…",emptyText:"No objects found.",className:"h-7 w-32 text-xs"})})})}:{key:"object",label:"Data source",type:"input",placeholder:"Object name"},s=n?xt("categoryField","Category field","Select field…",t):{key:"categoryField",label:"Category field",type:"input",placeholder:"e.g. status"},o=n?xt("valueField","Value field","Select field…",t):{key:"valueField",label:"Value field",type:"input",placeholder:"e.g. amount"},f=n?xt("rowField","Field","Select row field…",t):{key:"rowField",label:"Field",type:"input",placeholder:"e.g. owner"},u=n?xt("columnField","Field","Select column field…",t):{key:"columnField",label:"Field",type:"input",placeholder:"e.g. stage"},v=n?xt("pivotValueField","Field","Select value field…",t):{key:"pivotValueField",label:"Field",type:"input",placeholder:"e.g. amount"};return{breadcrumb:["Dashboard",{pivot:"Pivot table",table:"Table"}[r??""]??(Gn(r)?"Chart":"Widget")],sections:[{key:"general",title:"General",fields:[{key:"title",label:"Title",type:"input",placeholder:"Widget title"},{key:"description",label:"Description",type:"input",placeholder:"Widget description"},{key:"type",label:"Widget type",type:"select",options:bo,defaultValue:"metric"}]},{key:"data",title:"Data Binding",collapsible:!0,visibleWhen:j=>j.type!=="pivot",fields:[a,s,o,{key:"aggregate",label:"Aggregation",type:"select",options:Xn,defaultValue:"count"}]},{key:"pivot-data",title:"Data",collapsible:!0,visibleWhen:j=>j.type==="pivot",fields:[a]},{key:"pivot-rows",title:"Rows",collapsible:!0,visibleWhen:j=>j.type==="pivot",fields:[f,{key:"rowSortBy",label:"Sort by",type:"icon-group",options:Kn,defaultValue:"group"},{key:"rowSortOrder",label:"Sort order",type:"icon-group",options:Jn,defaultValue:"asc"},{key:"showRowLabels",label:"Show label",type:"switch",defaultValue:!0},{key:"showRowTotals",label:"Show totals",type:"switch",defaultValue:!1}]},{key:"pivot-columns",title:"Columns",collapsible:!0,visibleWhen:j=>j.type==="pivot",fields:[u,{key:"columnSortBy",label:"Sort by",type:"icon-group",options:Kn,defaultValue:"group"},{key:"columnSortOrder",label:"Sort order",type:"icon-group",options:Jn,defaultValue:"asc"},{key:"showColumnLabels",label:"Show label",type:"switch",defaultValue:!0},{key:"showColumnTotals",label:"Show totals",type:"switch",defaultValue:!1}]},{key:"pivot-values",title:"Values",collapsible:!0,visibleWhen:j=>j.type==="pivot",fields:[v,{key:"aggregation",label:"Aggregation",type:"select",options:Xn,defaultValue:"sum"},{key:"format",label:"Number format",type:"input",placeholder:"e.g. $,.2f"}]},{key:"chart-axis",title:"Axis & Series",collapsible:!0,visibleWhen:j=>Gn(j.type),fields:[{key:"xAxisLabel",label:"X-axis label",type:"input",placeholder:"e.g. Month"},{key:"yAxisLabel",label:"Y-axis label",type:"input",placeholder:"e.g. Revenue"},{key:"showLegend",label:"Show legend",type:"switch",defaultValue:!0}]},{key:"table-columns",title:"Columns",collapsible:!0,visibleWhen:j=>j.type==="table",fields:[{key:"searchable",label:"Searchable",type:"switch",defaultValue:!1},{key:"pagination",label:"Pagination",type:"switch",defaultValue:!1}]},{key:"layout",title:"Layout",collapsible:!0,fields:[{key:"layoutW",label:"Width (columns)",type:"slider",min:1,max:12,step:1,defaultValue:1},{key:"layoutH",label:"Height (rows)",type:"slider",min:1,max:6,step:1,defaultValue:1}]},{key:"appearance",title:"Appearance",collapsible:!0,defaultCollapsed:!0,fields:[{key:"colorVariant",label:"Color variant",type:"select",options:vo,defaultValue:"default"},{key:"actionUrl",label:"Action URL",type:"input",placeholder:"https://..."}]}]}}function Zn(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="object"){const t=e;return t.defaultValue||t.key||""}return String(e)}function _r({open:e,onClose:t,config:r,onSave:n,onFieldChange:a,headerExtra:s,availableObjects:o,availableFields:f}){const u=De.useMemo(()=>({...r,title:typeof r.title=="object"?Zn(r.title):r.title,description:typeof r.description=="object"?Zn(r.description):r.description}),[r]),{draft:v,isDirty:g,updateField:h,discard:j}=W.useConfigDraft(u,{onUpdate:a}),O=De.useMemo(()=>wo(o,f,v.type),[o,f,v.type]);return p.jsx(W.ConfigPanelRenderer,{open:e,onClose:t,schema:O,draft:v,isDirty:g,onFieldChange:h,onSave:()=>n(v),onDiscard:j,headerExtra:s})}function Qn({schema:e,config:t,onConfigSave:r,onWidgetSave:n,onRefresh:a,recordCount:s,defaultConfigOpen:o=!1,className:f}){const[u,v]=C.useState(o),[g,h]=C.useState(null),[j,O]=C.useState(e),[R,x]=C.useState(0);C.useEffect(()=>{O(e),x(w=>w+1)},[e]);const i=De.useMemo(()=>{if(!g||!j.widgets)return null;const w=j.widgets.find(d=>(d.id||d.title)===g);return w?{id:w.id??"",title:w.title??"",description:w.description??"",type:w.type??"",object:w.object??"",categoryField:w.categoryField??"",valueField:w.valueField??"",aggregate:w.aggregate??"",colorVariant:w.colorVariant??"default",actionUrl:w.actionUrl??"",layoutW:w.layout?.w??1,layoutH:w.layout?.h??1}:null},[g,R]),l=C.useCallback(w=>{h(w),v(!0)},[]),b=C.useCallback(()=>{h(null)},[]),S=C.useCallback((w,d)=>{g&&O(m=>m.widgets?{...m,widgets:m.widgets.map(D=>(D.id||D.title)!==g?D:w==="layoutW"?{...D,layout:{...D.layout||{},w:d}}:w==="layoutH"?{...D,layout:{...D.layout||{},h:d}}:{...D,[w]:d})}:m)},[g]),E=C.useCallback(w=>{g&&n&&n(g,w),h(null),x(d=>d+1)},[g,n]),c=C.useCallback(()=>{v(w=>!w),h(null)},[]);return p.jsxs("div",{className:W.cn("flex h-full w-full",f),"data-testid":"dashboard-with-config",children:[p.jsxs("div",{className:"flex-1 min-w-0 overflow-auto relative",children:[p.jsx("div",{className:"absolute top-2 right-2 z-10",children:p.jsxs(W.Button,{size:"sm",variant:u?"default":"outline",onClick:c,"data-testid":"dashboard-config-toggle",children:[p.jsx(je.Settings,{className:"h-3.5 w-3.5 mr-1"}),"Settings"]})}),p.jsx(Pt,{schema:j,onRefresh:a,recordCount:s,designMode:u,selectedWidgetId:g,onWidgetClick:l})]}),u&&p.jsx("div",{className:"relative shrink-0",children:g&&i?p.jsx(_r,{open:!0,onClose:b,config:i,onSave:E,onFieldChange:S}):p.jsx(Rr,{open:!0,onClose:()=>v(!1),config:t,onSave:r})})]})}_e.ComponentRegistry.register("dashboard",Pt,{namespace:"view",label:"Dashboard",category:"Complex",icon:"layout-dashboard",inputs:[{name:"columns",type:"number",label:"Columns",defaultValue:3},{name:"gap",type:"number",label:"Gap",defaultValue:4},{name:"className",type:"string",label:"CSS Class"}],defaultProps:{columns:3,widgets:[]}}),_e.ComponentRegistry.register("metric",Pr,{namespace:"plugin-dashboard",label:"Metric Widget",category:"Dashboard",inputs:[{name:"label",type:"string",label:"Label"},{name:"value",type:"string",label:"Value"}]}),_e.ComponentRegistry.register("metric-card",Or,{namespace:"plugin-dashboard",label:"Metric Card",category:"Dashboard",inputs:[{name:"title",type:"string",label:"Title"},{name:"value",type:"string",label:"Value",required:!0},{name:"icon",type:"string",label:"Icon (Lucide name)"},{name:"trend",type:"enum",label:"Trend",enum:[{label:"Up",value:"up"},{label:"Down",value:"down"},{label:"Neutral",value:"neutral"}]},{name:"trendValue",type:"string",label:"Trend Value (e.g., +12%)"},{name:"description",type:"string",label:"Description"}],defaultProps:{title:"Metric",value:"0"}}),_e.ComponentRegistry.register("pivot",Yt,{namespace:"plugin-dashboard",label:"Pivot Table",category:"Dashboard",icon:"table-2",inputs:[{name:"title",type:"string",label:"Title"},{name:"rowField",type:"string",label:"Row Field",required:!0},{name:"columnField",type:"string",label:"Column Field",required:!0},{name:"valueField",type:"string",label:"Value Field",required:!0},{name:"aggregation",type:"enum",label:"Aggregation",enum:[{label:"Sum",value:"sum"},{label:"Count",value:"count"},{label:"Average",value:"avg"},{label:"Min",value:"min"},{label:"Max",value:"max"}]},{name:"showRowTotals",type:"boolean",label:"Show Row Totals"},{name:"showColumnTotals",type:"boolean",label:"Show Column Totals"},{name:"format",type:"string",label:"Number Format"}],defaultProps:{rowField:"",columnField:"",valueField:"",aggregation:"sum",data:[]}}),_e.ComponentRegistry.register("object-pivot",Dr,{namespace:"plugin-dashboard",label:"Object Pivot Table",category:"Dashboard",icon:"table-2",inputs:[{name:"objectName",type:"string",label:"Object Name",required:!0},{name:"title",type:"string",label:"Title"},{name:"rowField",type:"string",label:"Row Field",required:!0},{name:"columnField",type:"string",label:"Column Field",required:!0},{name:"valueField",type:"string",label:"Value Field",required:!0},{name:"aggregation",type:"enum",label:"Aggregation",enum:[{label:"Sum",value:"sum"},{label:"Count",value:"count"},{label:"Average",value:"avg"},{label:"Min",value:"min"},{label:"Max",value:"max"}]},{name:"showRowTotals",type:"boolean",label:"Show Row Totals"},{name:"showColumnTotals",type:"boolean",label:"Show Column Totals"},{name:"filter",type:"array",label:"Filter"},{name:"format",type:"string",label:"Number Format"}],defaultProps:{rowField:"",columnField:"",valueField:"",aggregation:"sum"}}),_e.ComponentRegistry.register("dashboard-grid",Cr,{namespace:"plugin-dashboard",label:"Dashboard Grid (Editable)",category:"Complex",icon:"layout-grid",inputs:[{name:"title",type:"string",label:"Title"},{name:"persistLayoutKey",type:"string",label:"Layout Storage Key",defaultValue:"dashboard-layout"},{name:"className",type:"string",label:"CSS Class"}],defaultProps:{title:"Dashboard",widgets:[],persistLayoutKey:"dashboard-layout"}}),_e.ComponentRegistry.register("object-data-table",Tr,{namespace:"plugin-dashboard",label:"Object Data Table",category:"Dashboard",icon:"table",inputs:[{name:"objectName",type:"string",label:"Object Name",required:!0},{name:"columns",type:"array",label:"Columns"},{name:"filter",type:"array",label:"Filter"},{name:"searchable",type:"boolean",label:"Searchable"},{name:"pagination",type:"boolean",label:"Pagination"}],defaultProps:{searchable:!1,pagination:!1}});const So={DashboardRenderer:Pt,DashboardGridLayout:Cr,MetricWidget:Pr,MetricCard:Or,PivotTable:Yt,ObjectPivotTable:Dr,ObjectDataTable:Tr,DashboardConfigPanel:Rr,WidgetConfigPanel:_r,DashboardWithConfig:Qn};de.DashboardConfigPanel=Rr,de.DashboardGridLayout=Cr,de.DashboardRenderer=Pt,de.DashboardWithConfig=Qn,de.MetricCard=Or,de.MetricWidget=Pr,de.ObjectDataTable=Tr,de.ObjectPivotTable=Dr,de.PivotTable=Yt,de.WidgetConfigPanel=_r,de.dashboardComponents=So,Object.defineProperty(de,Symbol.toStringTag,{value:"Module"})}));