@object-ui/plugin-dashboard 2.0.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +5 -5
- package/CHANGELOG.md +20 -0
- package/dist/index.js +2122 -2042
- package/dist/index.umd.cjs +4 -4
- package/dist/src/DashboardGridLayout.d.ts +2 -0
- package/dist/src/DashboardGridLayout.d.ts.map +1 -1
- package/dist/src/DashboardRenderer.d.ts +6 -3
- package/dist/src/DashboardRenderer.d.ts.map +1 -1
- package/dist/src/DashboardRenderer.stories.d.ts +24 -0
- package/dist/src/DashboardRenderer.stories.d.ts.map +1 -0
- package/dist/src/index.d.ts +1 -5
- package/dist/src/index.d.ts.map +1 -1
- package/package.json +10 -10
- package/src/DashboardGridLayout.tsx +59 -6
- package/src/DashboardRenderer.stories.tsx +173 -0
- package/src/DashboardRenderer.tsx +161 -99
- package/src/__tests__/DashboardRenderer.autoRefresh.test.tsx +124 -0
package/dist/index.umd.cjs
CHANGED
|
@@ -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,
|
|
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,E,rt,V,Re,Cr,Gt){"use strict";function Er(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=Er(E),Pr=Er(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,s){var l=null;if(s!==void 0&&(l=""+s),o.key!==void 0&&(l=""+o.key),"key"in o){s={};for(var d in o)d!=="key"&&(s[d]=o[d])}else s=o;return o=s.ref,{$$typeof:e,type:n,key:l,ref:o!==void 0?o:null,props:s}}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(f){if(f==null)return null;if(typeof f=="function")return f.$$typeof===q?null:f.displayName||f.name||null;if(typeof f=="string")return f;switch(f){case a:return"Fragment";case g:return"Profiler";case i:return"StrictMode";case w:return"Suspense";case p:return"SuspenseList";case H:return"Activity"}if(typeof f=="object")switch(typeof f.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),f.$$typeof){case y:return"Portal";case S:return f.displayName||"Context";case b:return(f._context.displayName||"Context")+".Consumer";case u:var j=f.render;return f=f.displayName,f||(f=j.displayName||j.name||"",f=f!==""?"ForwardRef("+f+")":"ForwardRef"),f;case x:return j=f.displayName||null,j!==null?j:e(f.type)||"Memo";case R:j=f._payload,f=f._init;try{return e(f(j))}catch{}}return null}function t(f){return""+f}function r(f){try{t(f);var j=!1}catch{j=!0}if(j){j=console;var k=j.error,z=typeof Symbol=="function"&&Symbol.toStringTag&&f[Symbol.toStringTag]||f.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(f)}}function n(f){if(f===a)return"<>";if(typeof f=="object"&&f!==null&&f.$$typeof===R)return"<...>";try{var j=e(f);return j?"<"+j+">":"<...>"}catch{return"<...>"}}function o(){var f=J.A;return f===null?null:f.getOwner()}function s(){return Error("react-stack-top-frame")}function l(f){if(A.call(f,"key")){var j=Object.getOwnPropertyDescriptor(f,"key").get;if(j&&j.isReactWarning)return!1}return f.key!==void 0}function d(f,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(f,"key",{get:k,configurable:!0})}function c(){var f=e(this.type);return K[f]||(K[f]=!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.")),f=this.props.ref,f!==void 0?f:null}function v(f,j,k,z,X,I){var M=k.ref;return f={$$typeof:D,type:f,key:j,props:k,_owner:z},(M!==void 0?M:null)!==null?Object.defineProperty(f,"ref",{enumerable:!1,get:c}):Object.defineProperty(f,"ref",{enumerable:!1,value:null}),f._store={},Object.defineProperty(f._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(f,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(f,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:X}),Object.defineProperty(f,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:I}),Object.freeze&&(Object.freeze(f.props),Object.freeze(f)),f}function m(f,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(f);var W=Object.keys(j).filter(function($){return $!=="key"});z=0<W.length?"{key: someKey, "+W.join(": ..., ")+": ...}":"{key: someKey}",O[M+z]||(W=0<W.length?"{"+W.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} />`,M,T,W,T),P[T+M]=!0)}if(T=null,k!==void 0&&(r(k),T=""+k),l(j)&&(r(j.key),T=""+j.key),"key"in j){k={};for(var N in j)N!=="key"&&(k[N]=j[N])}else k=j;return T&&u(k,typeof f=="function"?f.displayName||f.name||"Unknown":f),v(f,T,k,o(),X,I)}function p(f){w(f)?f._store&&(f._store.validated=1):typeof f=="object"&&f!==null&&f.$$typeof===R&&(f._payload.status==="fulfilled"?w(f._payload.value)&&f._payload.value._store&&(f._payload.value._store.validated=1):f._store&&(f._store.validated=1))}function w(f){return typeof f=="object"&&f!==null&&f.$$typeof===_}var O=C,_=Symbol.for("react.transitional.element"),c=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),s=Symbol.for("react.strict_mode"),h=Symbol.for("react.profiler"),y=Symbol.for("react.consumer"),S=Symbol.for("react.context"),b=Symbol.for("react.forward_ref"),E=Symbol.for("react.suspense"),g=Symbol.for("react.suspense_list"),x=Symbol.for("react.memo"),R=Symbol.for("react.lazy"),Y=Symbol.for("react.activity"),q=Symbol.for("react.client.reference"),V=O.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,A=Object.prototype.hasOwnProperty,$=Array.isArray,K=console.createTask?console.createTask:function(){return null};O={react_stack_bottom_frame:function(f){return f()}};var U,J={},le=O.react_stack_bottom_frame.bind(O,i)(),me=K(n(i)),P={};ct.Fragment=a,ct.jsx=function(f,j,k){var M=1e4>V.recentlyCreatedOwnerStacks++;return m(f,j,k,!1,M?Error("react-stack-top-frame"):le,M?K(n(f)):me)},ct.jsxs=function(f,j,k){var M=1e4>V.recentlyCreatedOwnerStacks++;return m(f,j,k,!0,M?Error("react-stack-top-frame"):le,M?K(n(f)):me)}})()),ct}var _r;function In(){return _r||(_r=1,process.env.NODE_ENV==="production"?St.exports=Nn():St.exports=An()),St.exports}var z=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,...n},o)=>{const i=e.columns||4,l=e.gap||4;return z.jsx("div",{ref:o,className:Q.cn("grid auto-rows-min",t),style:{gridTemplateColumns:`repeat(${i}, minmax(0, 1fr))`,gap:`${l*.25}rem`},...n,children:e.widgets?.map(u=>{const v=(()=>{if(u.component)return u.component;const p=u.type;if(p==="bar"||p==="line"||p==="area"||p==="pie"||p==="donut"){const w=Array.isArray(u.data)?u.data:u.data?.items||[],O=u.options||{},_=O.xField||"name",c=O.yField||"value";return{type:"chart",chartType:p,data:w,xAxisKey:_,series:[{dataKey:c}],colors:Ln,className:"h-[300px]"}}return p==="table"?{type:"data-table",...u.options,data:u.data?.items||[],searchable:!1,pagination:!1,className:"border-0"}:{...u,...u.options||{}}})();return u.type==="metric"?z.jsx("div",{className:"h-full w-full",style:u.layout?{gridColumn:`span ${u.layout.w}`,gridRow:`span ${u.layout.h}`}:void 0,children:z.jsx(wt.SchemaRenderer,{schema:v,className:"h-full w-full"})},u.id||u.title):z.jsxs(Q.Card,{className:Q.cn("overflow-hidden border-border/50 shadow-sm transition-all hover:shadow-md","bg-card/50 backdrop-blur-sm"),style:u.layout?{gridColumn:`span ${u.layout.w}`,gridRow:`span ${u.layout.h}`}:void 0,children:[u.title&&z.jsx(Q.CardHeader,{className:"pb-2 border-b border-border/40 bg-muted/20",children:z.jsx(Q.CardTitle,{className:"text-base font-medium tracking-tight truncate",title:u.title,children:u.title})}),z.jsx(Q.CardContent,{className:"p-0",children:z.jsx("div",{className:Q.cn("h-full w-full",(u.title,"p-4")),children:z.jsx(wt.SchemaRenderer,{schema:v})})})]},u.id||u.title)})})});function rt(e){const{margin:t,containerPadding:r,containerWidth:n,cols:o}=e;return(n-t[0]*(o-1)-r[0]*2)/o}function nt(e,t,r){return Number.isFinite(e)?Math.round(t*e+Math.max(0,e-1)*r):e}function ft(e,t,r,n,o,i,l){const{margin:u,containerPadding:d,rowHeight:v}=e,m=rt(e);let p,w,O,_;if(l?(p=Math.round(l.width),w=Math.round(l.height)):(p=nt(n,m,u[0]),w=nt(o,v,u[1])),i?(O=Math.round(i.top),_=Math.round(i.left)):l?(O=Math.round(l.top),_=Math.round(l.left)):(O=Math.round((v+u[1])*r+d[1]),_=Math.round((m+u[0])*t+d[0])),!i&&!l){if(Number.isFinite(n)){const a=Math.round((m+u[0])*(t+n)+d[0])-_-p;a!==u[0]&&(p+=a-u[0])}if(Number.isFinite(o)){const a=Math.round((v+u[1])*(r+o)+d[1])-O-w;a!==u[1]&&(w+=a-u[1])}}return{top:O,left:_,width:p,height:w}}function Wn(e,t,r,n,o){const{margin:i,containerPadding:l,cols:u,rowHeight:d,maxRows:v}=e,m=rt(e);let p=Math.round((r-l[0])/(m+i[0])),w=Math.round((t-l[1])/(d+i[1]));return p=Et(p,0,u-n),w=Et(w,0,v-o),{x:p,y:w}}function Ct(e,t,r){const{margin:n,containerPadding:o,rowHeight:i}=e,l=rt(e),u=Math.round((r-o[0])/(l+n[0])),d=Math.round((t-o[1])/(i+n[1]));return{x:u,y:d}}function qn(e,t,r){const{margin:n,rowHeight:o}=e,i=rt(e),l=Math.max(1,Math.round((t+n[0])/(i+n[0]))),u=Math.max(1,Math.round((r+n[1])/(o+n[1])));return{w:l,h:u}}function Et(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 Ke(e,t){for(let r=0;r<e.length;r++){const n=e[r];if(n!==void 0&&Jt(n,t))return n}}function Dr(e,t){return e.filter(r=>Jt(r,t))}function Hn(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 Ze(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 Qe(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 $e(e){const t=new Array(e.length);for(let r=0;r<e.length;r++){const n=e[r];n!==void 0&&(t[r]=Qe(n))}return t}function Yn(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 $n(e,t,r){let n=Ze(e,t);return n?(n=r(Qe(n)),[Yn(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(;Ke(r,o);)o.y++}return e}function et(e,t,r,n,o,i,l,u,d){if(t.static&&t.isDraggable!==!0)return[...e];if(t.y===n&&t.x===r)return[...e];const v=t.x,m=t.y;typeof r=="number"&&(t.x=r),typeof n=="number"&&(t.y=n),t.moved=!0;let p=Hn(e,l);(l==="vertical"&&typeof n=="number"?m>=n:l==="horizontal"&&typeof r=="number"&&v>=r)&&(p=p.reverse());const O=Dr(p,t),_=O.length>0;if(_&&d)return $e(e);if(_&&i)return t.x=v,t.y=m,t.moved=!1,e;let c=[...e];for(let a=0;a<O.length;a++){const s=O[a];s!==void 0&&(s.moved||(s.static?c=Tr(c,s,t,o,l):c=Tr(c,t,s,o,l)))}return c}function Tr(e,t,r,n,o,i){const l=o==="horizontal",u=o==="vertical",d=t.static;if(n){n=!1;const p={x:l?Math.max(t.x-r.w,0):r.x,y:u?Math.max(t.y-r.h,0):r.y,w:r.w,h:r.h,i:"-1"},w=Ke(e,p),O=w!==void 0&&w.y+w.h>t.y,_=w!==void 0&&t.x+t.w>w.x;if(!w)return et(e,r,l?p.x:void 0,u?p.y:void 0,n,d,o);if(O&&u)return et(e,r,void 0,r.y+1,n,d,o);if(O&&o===null)return t.y=r.y,r.y=r.y+r.h,[...e];if(_&&l)return et(e,t,r.x,void 0,n,d,o)}const v=l?r.x+1:void 0,m=u?r.y+1:void 0;return v===void 0&&m===void 0?[...e]:et(e,r,v,m,n,d,o)}function ot(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:ot(t,0,Math.max(0,n-e.w)),y:ot(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,u=n==="n"||n==="nw"||n==="ne"?e.y+e.h:i-e.y;return{w:ot(t,1,Math.max(1,l)),h:ot(r,1,Math.max(1,u))}}},Fn={name:"minMaxSize",constrainSize(e,t,r){return{w:ot(t,e.minW??1,e.maxW??1/0),h:ot(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 u of e)u.constrainSize&&(l=u.constrainSize(t,l.w,l.h,o,i));if(t.constraints)for(const u of t.constraints)u.constrainSize&&(l=u.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 _t(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:_t(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:_t(n),left:0}:{height:o,width:i,top:_t(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:_t(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(d=>d.i===t.i),u=o??Ot(e).length>0;for(let d=l+1;d<e.length;d++){const v=e[d];if(v!==void 0&&!v.static){if(!u&&v.y>t.y+t.h)break;Jt(t,v)&&nr(e,v,r+t[i],n,u)}}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&&!Ke(e,t);)t.y--;let o;for(;(o=Ke(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&&!Ke(e,t);)t.x--;let o;for(;(o=Ke(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&&!Ke(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 u=o[l];if(u===void 0)continue;let d=Qe(u);d.static||(d=lo(r,d,o,n),n=Math.max(n,d.y+d.h),r.push(d));const v=e.indexOf(u);i[v]=d,d.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 u=Qe(l);u.static||(u=uo(r,u,t,n),r.push(u));const d=e.indexOf(l);o[d]=u,u.moved=!1}return o}},Lr={type:null,allowOverlap:!1,compact(e,t){return $e(e)}},co={...Ar,allowOverlap:!0,compact(e,t){return $e(e)}},fo={...Ir,allowOverlap:!0,compact(e,t){return $e(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 Hr(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 $e(l);let u=e[n];const d=Wr(t),v=d.slice(d.indexOf(r));for(let O=0;O<v.length;O++){const _=v[O];if(_===void 0)continue;const c=e[_];if(c){u=c;break}}const m=$e(u||[]),p=Zt(m,{cols:o});return(typeof i=="object"&&i!==null?i:or(i)).compact(p,o)}function Dt(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 Yr(e){return function(r,n,o,i,l,u,d){return e(r,n,d)}}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),u=i.get(n);if(l&&u)return l===n&&u===r;i.set(r,n),i.set(n,r);var d=e(r,n,o,i);return i.delete(r),i.delete(n),d}}function $r(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,u=e.createIsNestedEqual,d=u(v);function v(m,p,w){if(m===p)return!0;if(!m||!p||typeof m!="object"||typeof p!="object")return m!==m&&p!==p;if(Br(m)&&Br(p))return o(m,p,d,w);var O=Array.isArray(m),_=Array.isArray(p);if(O||_)return O===_&&t(m,p,d,w);var c=Xr.call(m);return c!==Xr.call(p)?!1:c===mo?r(m,p,d,w):c===yo?i(m,p,d,w):c===vo?n(m,p,d,w):c===wo?l(m,p,d,w):c===xo||c===ho?Fr(m)||Fr(p)?!1:o(m,p,d,w):c===go||c===bo||c===So?Tt(m.valueOf(),p.valueOf()):!1}return v}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 Co=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(u,d){if(o){var v=!1,m=0;t.forEach(function(p,w){!v&&!i[m]&&(v=r(d,w,l,m,e,t,n)&&r(u,p,d,w,e,t,n))&&(i[m]=!0),m++}),l++,o=v}}),o}var Eo=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 u=!!e.$$typeof,d=!!t.$$typeof;if((u||d)&&u!==d)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,u){if(o){var d=!1,v=0;t.forEach(function(m,p){!d&&!i[v]&&(d=r(l,m,u,p,e,t,n))&&(i[v]=!0),v++}),o=d}}),o}var _o=jt(Zr),Qr=Object.freeze({areArraysEqual:Ur,areDatesEqual:Gr,areMapsEqual:Vr,areObjectsEqual:Jr,areRegExpsEqual:Kr,areSetsEqual:Zr,createIsNestedEqual:Yr}),en=Object.freeze({areArraysEqual:Co,areDatesEqual:Gr,areMapsEqual:Eo,areObjectsEqual:Ro,areRegExpsEqual:Kr,areSetsEqual:_o,createIsNestedEqual:Yr}),Do=Mt(Qr);function We(e,t){return Do(e,t,void 0)}Mt($r(Qr,{createIsNestedEqual:function(){return Tt}})),Mt(en),Mt($r(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),u=C.useRef(null),d=C.useRef(null),v=C.useCallback(()=>{const m=u.current;if(m){const p=m.offsetWidth;o(p),i||l(!0)}},[i]);return C.useEffect(()=>{const m=u.current;if(m)return v(),typeof ResizeObserver<"u"&&(d.current=new ResizeObserver(p=>{const w=p[0];if(w){const O=w.contentRect.width;o(O)}}),d.current.observe(m)),()=>{d.current&&(d.current.disconnect(),d.current=null)}},[v]),{width:n,mounted:i,containerRef:u,measureWidth:v}}var dt={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,u=e?Symbol.for("react.context"):60110,d=e?Symbol.for("react.async_mode"):60111,v=e?Symbol.for("react.concurrent_mode"):60111,m=e?Symbol.for("react.forward_ref"):60112,p=e?Symbol.for("react.suspense"):60113,w=e?Symbol.for("react.suspense_list"):60120,O=e?Symbol.for("react.memo"):60115,_=e?Symbol.for("react.lazy"):60116,c=e?Symbol.for("react.block"):60121,a=e?Symbol.for("react.fundamental"):60117,s=e?Symbol.for("react.responder"):60118,h=e?Symbol.for("react.scope"):60119;function y(b){if(typeof b=="object"&&b!==null){var E=b.$$typeof;switch(E){case t:switch(b=b.type,b){case d:case v:case n:case i:case o:case p:return b;default:switch(b=b&&b.$$typeof,b){case u:case m:case _:case O:case l:return b;default:return E}}case r:return E}}}function S(b){return y(b)===v}return ee.AsyncMode=d,ee.ConcurrentMode=v,ee.ContextConsumer=u,ee.ContextProvider=l,ee.Element=t,ee.ForwardRef=m,ee.Fragment=n,ee.Lazy=_,ee.Memo=O,ee.Portal=r,ee.Profiler=i,ee.StrictMode=o,ee.Suspense=p,ee.isAsyncMode=function(b){return S(b)||y(b)===d},ee.isConcurrentMode=S,ee.isContextConsumer=function(b){return y(b)===u},ee.isContextProvider=function(b){return y(b)===l},ee.isElement=function(b){return typeof b=="object"&&b!==null&&b.$$typeof===t},ee.isForwardRef=function(b){return y(b)===m},ee.isFragment=function(b){return y(b)===n},ee.isLazy=function(b){return y(b)===_},ee.isMemo=function(b){return y(b)===O},ee.isPortal=function(b){return y(b)===r},ee.isProfiler=function(b){return y(b)===i},ee.isStrictMode=function(b){return y(b)===o},ee.isSuspense=function(b){return y(b)===p},ee.isValidElementType=function(b){return typeof b=="string"||typeof b=="function"||b===n||b===v||b===i||b===o||b===p||b===w||typeof b=="object"&&b!==null&&(b.$$typeof===_||b.$$typeof===O||b.$$typeof===l||b.$$typeof===u||b.$$typeof===m||b.$$typeof===a||b.$$typeof===s||b.$$typeof===h||b.$$typeof===c)},ee.typeOf=y,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,u=e?Symbol.for("react.context"):60110,d=e?Symbol.for("react.async_mode"):60111,v=e?Symbol.for("react.concurrent_mode"):60111,m=e?Symbol.for("react.forward_ref"):60112,p=e?Symbol.for("react.suspense"):60113,w=e?Symbol.for("react.suspense_list"):60120,O=e?Symbol.for("react.memo"):60115,_=e?Symbol.for("react.lazy"):60116,c=e?Symbol.for("react.block"):60121,a=e?Symbol.for("react.fundamental"):60117,s=e?Symbol.for("react.responder"):60118,h=e?Symbol.for("react.scope"):60119;function y(D){return typeof D=="string"||typeof D=="function"||D===n||D===v||D===i||D===o||D===p||D===w||typeof D=="object"&&D!==null&&(D.$$typeof===_||D.$$typeof===O||D.$$typeof===l||D.$$typeof===u||D.$$typeof===m||D.$$typeof===a||D.$$typeof===s||D.$$typeof===h||D.$$typeof===c)}function S(D){if(typeof D=="object"&&D!==null){var ae=D.$$typeof;switch(ae){case t:var De=D.type;switch(De){case d:case v:case n:case i:case o:case p:return De;default:var Re=De&&De.$$typeof;switch(Re){case u:case m:case _:case O:case l:return Re;default:return ae}}case r:return ae}}}var b=d,E=v,g=u,x=l,R=t,Y=m,q=n,V=_,A=O,$=r,K=i,U=o,J=p,le=!1;function me(D){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.")),P(D)||S(D)===d}function P(D){return S(D)===v}function f(D){return S(D)===u}function j(D){return S(D)===l}function k(D){return typeof D=="object"&&D!==null&&D.$$typeof===t}function M(D){return S(D)===m}function X(D){return S(D)===n}function I(D){return S(D)===_}function T(D){return S(D)===O}function W(D){return S(D)===r}function N(D){return S(D)===i}function H(D){return S(D)===o}function F(D){return S(D)===p}te.AsyncMode=b,te.ConcurrentMode=E,te.ContextConsumer=g,te.ContextProvider=x,te.Element=R,te.ForwardRef=Y,te.Fragment=q,te.Lazy=V,te.Memo=A,te.Portal=$,te.Profiler=K,te.StrictMode=U,te.Suspense=J,te.isAsyncMode=me,te.isConcurrentMode=P,te.isContextConsumer=f,te.isContextProvider=j,te.isElement=k,te.isForwardRef=M,te.isFragment=X,te.isLazy=I,te.isMemo=T,te.isPortal=W,te.isProfiler=N,te.isStrictMode=H,te.isSuspense=F,te.isValidElementType=y,te.typeOf=S})()),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={},u=0;u<10;u++)l["_"+String.fromCharCode(u)]=u;var d=Object.getOwnPropertyNames(l).map(function(m){return l[m]});if(d.join("")!=="0123456789")return!1;var v={};return"abcdefghijklmnopqrst".split("").forEach(function(m){v[m]=m}),Object.keys(Object.assign({},v)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}return ir=o()?Object.assign:function(i,l){for(var u,d=n(i),v,m=1;m<arguments.length;m++){u=Object(arguments[m]);for(var p in u)t.call(u,p)&&(d[p]=u[p]);if(e){v=e(u);for(var w=0;w<v.length;w++)r.call(u,v[w])&&(d[v[w]]=u[v[w]])}}return d},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,u,d,v){if(process.env.NODE_ENV!=="production"){for(var m in i)if(n(i,m)){var p;try{if(typeof i[m]!="function"){var w=Error((d||"React class")+": "+u+" 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 w.name="Invariant Violation",w}p=i[m](l,m,d,u,null,t)}catch(_){p=_}if(p&&!(p instanceof Error)&&e((d||"React class")+": type specification of "+u+" `"+m+"` is invalid; the type checker function must return `null` or an `Error` but returned a "+typeof p+". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."),p instanceof Error&&!(p.message in r)){r[p.message]=!0;var O=v?v():"";e("Failed "+u+" type: "+p.message+(O??""))}}}}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(u){var d="Warning: "+u;typeof console<"u"&&console.error(d);try{throw new Error(d)}catch{}});function l(){return null}return dr=function(u,d){var v=typeof Symbol=="function"&&Symbol.iterator,m="@@iterator";function p(P){var f=P&&(v&&P[v]||P[m]);if(typeof f=="function")return f}var w="<<anonymous>>",O={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:h(),arrayOf:y,element:S(),elementType:b(),instanceOf:E,node:Y(),objectOf:x,oneOf:g,oneOfType:R,shape:V,exact:A};function _(P,f){return P===f?P!==0||1/P===1/f:P!==P&&f!==f}function c(P,f){this.message=P,this.data=f&&typeof f=="object"?f:{},this.stack=""}c.prototype=Error.prototype;function a(P){if(process.env.NODE_ENV!=="production")var f={},j=0;function k(X,I,T,W,N,H,F){if(W=W||w,H=H||T,F!==r){if(d){var D=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 D.name="Invariant Violation",D}else if(process.env.NODE_ENV!=="production"&&typeof console<"u"){var ae=W+":"+T;!f[ae]&&j<3&&(i("You are manually calling a React.PropTypes validation function for the `"+H+"` prop on `"+W+"`. 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."),f[ae]=!0,j++)}}return I[T]==null?X?I[T]===null?new c("The "+N+" `"+H+"` is marked as required "+("in `"+W+"`, but its value is `null`.")):new c("The "+N+" `"+H+"` is marked as required in "+("`"+W+"`, but its value is `undefined`.")):null:P(I,T,W,N,H)}var M=k.bind(null,!1);return M.isRequired=k.bind(null,!0),M}function s(P){function f(j,k,M,X,I,T){var W=j[k],N=U(W);if(N!==P){var H=J(W);return new c("Invalid "+X+" `"+I+"` of type "+("`"+H+"` supplied to `"+M+"`, expected ")+("`"+P+"`."),{expectedType:P})}return null}return a(f)}function h(){return a(l)}function y(P){function f(j,k,M,X,I){if(typeof P!="function")return new c("Property `"+I+"` of component `"+M+"` has invalid PropType notation inside arrayOf.");var T=j[k];if(!Array.isArray(T)){var W=U(T);return new c("Invalid "+X+" `"+I+"` of type "+("`"+W+"` supplied to `"+M+"`, expected an array."))}for(var N=0;N<T.length;N++){var H=P(T,N,M,X,I+"["+N+"]",r);if(H instanceof Error)return H}return null}return a(f)}function S(){function P(f,j,k,M,X){var I=f[j];if(!u(I)){var T=U(I);return new c("Invalid "+M+" `"+X+"` of type "+("`"+T+"` supplied to `"+k+"`, expected a single ReactElement."))}return null}return a(P)}function b(){function P(f,j,k,M,X){var I=f[j];if(!e.isValidElementType(I)){var T=U(I);return new c("Invalid "+M+" `"+X+"` of type "+("`"+T+"` supplied to `"+k+"`, expected a single ReactElement type."))}return null}return a(P)}function E(P){function f(j,k,M,X,I){if(!(j[k]instanceof P)){var T=P.name||w,W=me(j[k]);return new c("Invalid "+X+" `"+I+"` of type "+("`"+W+"` supplied to `"+M+"`, expected ")+("instance of `"+T+"`."))}return null}return a(f)}function g(P){if(!Array.isArray(P))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 f(j,k,M,X,I){for(var T=j[k],W=0;W<P.length;W++)if(_(T,P[W]))return null;var N=JSON.stringify(P,function(F,D){var ae=J(D);return ae==="symbol"?String(D):D});return new c("Invalid "+X+" `"+I+"` of value `"+String(T)+"` "+("supplied to `"+M+"`, expected one of "+N+"."))}return a(f)}function x(P){function f(j,k,M,X,I){if(typeof P!="function")return new c("Property `"+I+"` of component `"+M+"` has invalid PropType notation inside objectOf.");var T=j[k],W=U(T);if(W!=="object")return new c("Invalid "+X+" `"+I+"` of type "+("`"+W+"` supplied to `"+M+"`, expected an object."));for(var N in T)if(n(T,N)){var H=P(T,N,M,X,I+"."+N,r);if(H instanceof Error)return H}return null}return a(f)}function R(P){if(!Array.isArray(P))return process.env.NODE_ENV!=="production"&&i("Invalid argument supplied to oneOfType, expected an instance of array."),l;for(var f=0;f<P.length;f++){var j=P[f];if(typeof j!="function")return i("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+le(j)+" at index "+f+"."),l}function k(M,X,I,T,W){for(var N=[],H=0;H<P.length;H++){var F=P[H],D=F(M,X,I,T,W,r);if(D==null)return null;D.data&&n(D.data,"expectedType")&&N.push(D.data.expectedType)}var ae=N.length>0?", expected one of type ["+N.join(", ")+"]":"";return new c("Invalid "+T+" `"+W+"` supplied to "+("`"+I+"`"+ae+"."))}return a(k)}function Y(){function P(f,j,k,M,X){return $(f[j])?null:new c("Invalid "+M+" `"+X+"` supplied to "+("`"+k+"`, expected a ReactNode."))}return a(P)}function q(P,f,j,k,M){return new c((P||"React class")+": "+f+" type `"+j+"."+k+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+M+"`.")}function V(P){function f(j,k,M,X,I){var T=j[k],W=U(T);if(W!=="object")return new c("Invalid "+X+" `"+I+"` of type `"+W+"` "+("supplied to `"+M+"`, expected `object`."));for(var N in P){var H=P[N];if(typeof H!="function")return q(M,X,I,N,J(H));var F=H(T,N,M,X,I+"."+N,r);if(F)return F}return null}return a(f)}function A(P){function f(j,k,M,X,I){var T=j[k],W=U(T);if(W!=="object")return new c("Invalid "+X+" `"+I+"` of type `"+W+"` "+("supplied to `"+M+"`, expected `object`."));var N=t({},j[k],P);for(var H in N){var F=P[H];if(n(P,H)&&typeof F!="function")return q(M,X,I,H,J(F));if(!F)return new c("Invalid "+X+" `"+I+"` key `"+H+"` supplied to `"+M+"`.\nBad object: "+JSON.stringify(j[k],null," ")+`
|
|
7
|
-
Valid keys: `+JSON.stringify(Object.keys(
|
|
6
|
+
<%s key={someKey} {...props} />`,z,M,W,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&&d(k,typeof f=="function"?f.displayName||f.name||"Unknown":f),v(f,M,k,o(),X,I)}function h(f){C(f)?f._store&&(f._store.validated=1):typeof f=="object"&&f!==null&&f.$$typeof===R&&(f._payload.status==="fulfilled"?C(f._payload.value)&&f._payload.value._store&&(f._payload.value._store.validated=1):f._store&&(f._store.validated=1))}function C(f){return typeof f=="object"&&f!==null&&f.$$typeof===D}var P=E,D=Symbol.for("react.transitional.element"),y=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),g=Symbol.for("react.profiler"),b=Symbol.for("react.consumer"),S=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),w=Symbol.for("react.suspense"),p=Symbol.for("react.suspense_list"),x=Symbol.for("react.memo"),R=Symbol.for("react.lazy"),H=Symbol.for("react.activity"),q=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(f){return f()}};var U,K={},le=P.react_stack_bottom_frame.bind(P,s)(),me=Z(n(s)),O={};ft.Fragment=a,ft.jsx=function(f,j,k){var z=1e4>J.recentlyCreatedOwnerStacks++;return m(f,j,k,!1,z?Error("react-stack-top-frame"):le,z?Z(n(f)):me)},ft.jsxs=function(f,j,k){var z=1e4>J.recentlyCreatedOwnerStacks++;return m(f,j,k,!0,z?Error("react-stack-top-frame"):le,z?Z(n(f)):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=E.forwardRef(({schema:e,className:t,dataSource:r,onRefresh:n,...o},s)=>{const l=e.columns||4,d=e.gap||4,[c,v]=E.useState(!1),[m,h]=E.useState(!1),C=E.useRef(null);E.useEffect(()=>{const a=()=>h(window.innerWidth<640);return a(),window.addEventListener("resize",a),()=>window.removeEventListener("resize",a)},[]);const P=E.useCallback(()=>{n&&(v(!0),n(),setTimeout(()=>v(!1),600))},[n]);E.useEffect(()=>{if(!(!e.refreshInterval||e.refreshInterval<=0||!n))return C.current=setInterval(P,e.refreshInterval*1e3),()=>{C.current&&clearInterval(C.current)}},[e.refreshInterval,n,P]);const D=a=>{const g=(()=>{if(a.component)return a.component;const S=a.type;if(S==="bar"||S==="line"||S==="area"||S==="pie"||S==="donut"){const u=Array.isArray(a.data)?a.data:a.data?.items||[],w=a.options||{},p=w.xField||"name",x=w.yField||"value";return{type:"chart",chartType:S,data:u,xAxisKey:p,series:[{dataKey:x}],colors:Ln,className:"h-[200px] sm:h-[250px] md:h-[300px]"}}return S==="table"?{type:"data-table",...a.options,data:a.data?.items||[],searchable:!1,pagination:!1,className:"border-0"}:{...a,...a.options||{}}})();return a.type==="metric"?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:g,className:"h-full w-full"})},a.id||a.title):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:g})})})]},a.id||a.title)},y=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:c,"aria-label":"Refresh dashboard",children:[T.jsx(Re.RefreshCw,{className:V.cn("h-4 w-4 mr-2",c&&"animate-spin")}),c?"Refreshing…":"Refresh All"]})});return m?T.jsxs("div",{ref:s,className:V.cn("flex flex-col",t),...o,children:[y,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=>D(a))})]}):T.jsxs("div",{ref:s,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:`${d*.25}rem`},...o,children:[y,e.widgets?.map(a=>D(a))]})});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,s,l){const{margin:d,containerPadding:c,rowHeight:v}=e,m=nt(e);let h,C,P,D;if(l?(h=Math.round(l.width),C=Math.round(l.height)):(h=ot(n,m,d[0]),C=ot(o,v,d[1])),s?(P=Math.round(s.top),D=Math.round(s.left)):l?(P=Math.round(l.top),D=Math.round(l.left)):(P=Math.round((v+d[1])*r+c[1]),D=Math.round((m+d[0])*t+c[0])),!s&&!l){if(Number.isFinite(n)){const a=Math.round((m+d[0])*(t+n)+c[0])-D-h;a!==d[0]&&(h+=a-d[0])}if(Number.isFinite(o)){const a=Math.round((v+d[1])*(r+o)+c[1])-P-C;a!==d[1]&&(C+=a-d[1])}}return{top:P,left:D,width:h,height:C}}function Wn(e,t,r,n,o){const{margin:s,containerPadding:l,cols:d,rowHeight:c,maxRows:v}=e,m=nt(e);let h=Math.round((r-l[0])/(m+s[0])),C=Math.round((t-l[1])/(c+s[1]));return h=Et(h,0,d-n),C=Et(C,0,v-o),{x:h,y:C}}function Ct(e,t,r){const{margin:n,containerPadding:o,rowHeight:s}=e,l=nt(e),d=Math.round((r-o[0])/(l+n[0])),c=Math.round((t-o[1])/(s+n[1]));return{x:d,y:c}}function qn(e,t,r){const{margin:n,rowHeight:o}=e,s=nt(e),l=Math.max(1,Math.round((t+n[0])/(s+n[0]))),d=Math.max(1,Math.round((r+n[1])/(o+n[1])));return{w:l,h:d}}function Et(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,s,l,d,c){if(t.static&&t.isDraggable!==!0)return[...e];if(t.y===n&&t.x===r)return[...e];const v=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"&&v>=r)&&(h=h.reverse());const P=_r(h,t),D=P.length>0;if(D&&c)return Be(e);if(D&&s)return t.x=v,t.y=m,t.moved=!1,e;let y=[...e];for(let a=0;a<P.length;a++){const i=P[a];i!==void 0&&(i.moved||(i.static?y=Tr(y,i,t,o,l):y=Tr(y,t,i,o,l)))}return y}function Tr(e,t,r,n,o,s){const l=o==="horizontal",d=o==="vertical",c=t.static;if(n){n=!1;const h={x:l?Math.max(t.x-r.w,0):r.x,y:d?Math.max(t.y-r.h,0):r.y,w:r.w,h:r.h,i:"-1"},C=Ze(e,h),P=C!==void 0&&C.y+C.h>t.y,D=C!==void 0&&t.x+t.w>C.x;if(!C)return tt(e,r,l?h.x:void 0,d?h.y:void 0,n,c,o);if(P&&d)return tt(e,r,void 0,r.y+1,n,c,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,c,o)}const v=l?r.x+1:void 0,m=d?r.y+1:void 0;return v===void 0&&m===void 0?[...e]:tt(e,r,v,m,n,c,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:s}){const l=n==="w"||n==="nw"||n==="sw"?e.x+e.w:o-e.x,d=n==="n"||n==="nw"||n==="ne"?e.y+e.h:s-e.y;return{w:at(t,1,Math.max(1,l)),h:at(r,1,Math.max(1,d))}}},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 s={x:r,y:n};for(const l of e)l.constrainPosition&&(s=l.constrainPosition(t,s.x,s.y,o));if(t.constraints)for(const l of t.constraints)l.constrainPosition&&(s=l.constrainPosition(t,s.x,s.y,o));return s}function Xn(e,t,r,n,o,s){let l={w:r,h:n};for(const d of e)d.constrainSize&&(l=d.constrainSize(t,l.w,l.h,o,s));if(t.constraints)for(const d of t.constraints)d.constrainSize&&(l=d.constrainSize(t,l.w,l.h,o,s));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:s}=t,l=e.top-(o-e.height);return{left:n,width:s,height:Nr(l,e.height,o),top:Dt(l)}},er=(e,t,r)=>{const{top:n,left:o,height:s,width:l}=t;return{top:n,height:s,width:Gn(e.left,e.width,l,r),left:Vn(o)}},tr=(e,t,r)=>{const{top:n,height:o,width:s}=t,l=e.left+e.width-s;return l<0?{height:o,width:e.left+e.width,top:Dt(n),left:0}:{height:o,width:s,top:Dt(n),left:l}},rr=(e,t,r)=>{const{top:n,left:o,height:s,width:l}=t;return{width:l,left:o,height:Nr(n,e.height,s),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 s=n==="x"?"w":"h";t[n]+=1;const l=e.findIndex(c=>c.i===t.i),d=o??Ot(e).length>0;for(let c=l+1;c<e.length;c++){const v=e[c];if(v!==void 0&&!v.static){if(!d&&v.y>t.y+t.h)break;Jt(t,v)&&nr(e,v,r+t[s],n,d)}}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),s=new Array(e.length);for(let l=0;l<o.length;l++){const d=o[l];if(d===void 0)continue;let c=et(d);c.static||(c=lo(r,c,o,n),n=Math.max(n,c.y+c.h),r.push(c));const v=e.indexOf(d);s[v]=c,c.moved=!1}return s}},Ir={type:"horizontal",allowOverlap:!1,compact(e,t){const r=Ot(e),n=jr(e),o=new Array(e.length);for(let s=0;s<n.length;s++){const l=n[s];if(l===void 0)continue;let d=et(l);d.static||(d=uo(r,d,t,n),r.push(d));const c=e.indexOf(l);o[c]=d,d.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 s=r[o];if(s===void 0)continue;const l=e[s];t>l&&(n=s)}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,s){const l=e[r];if(l)return Be(l);let d=e[n];const c=Wr(t),v=c.slice(c.indexOf(r));for(let P=0;P<v.length;P++){const D=v[P];if(D===void 0)continue;const y=e[D];if(y){d=y;break}}const m=Be(d||[]),h=Zt(m,{cols:o});return(typeof s=="object"&&s!==null?s:or(s)).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 s of o){const l=r[s];if(l!==void 0)return l}return[10,10]}function Hr(e){return function(r,n,o,s,l,d,c){return e(r,n,c)}}function jt(e){return function(r,n,o,s){if(!r||!n||typeof r!="object"||typeof n!="object")return e(r,n,o,s);var l=s.get(r),d=s.get(n);if(l&&d)return l===n&&d===r;s.set(r,n),s.set(n,r);var c=e(r,n,o,s);return s.delete(r),s.delete(n),c}}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,s=e.areRegExpsEqual,l=e.areSetsEqual,d=e.createIsNestedEqual,c=d(v);function v(m,h,C){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,c,C);var P=Array.isArray(m),D=Array.isArray(h);if(P||D)return P===D&&t(m,h,c,C);var y=Xr.call(m);return y!==Xr.call(h)?!1:y===mo?r(m,h,c,C):y===yo?s(m,h,c,C):y===vo?n(m,h,c,C):y===wo?l(m,h,c,C):y===xo||y===ho?Fr(m)||Fr(h)?!1:o(m,h,c,C):y===go||y===bo||y===So?Tt(m.valueOf(),h.valueOf()):!1}return v}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 Co=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 s={},l=0;return e.forEach(function(d,c){if(o){var v=!1,m=0;t.forEach(function(h,C){!v&&!s[m]&&(v=r(c,C,l,m,e,t,n)&&r(d,h,c,C,e,t,n))&&(s[m]=!0),m++}),l++,o=v}}),o}var Eo=jt(Vr),Po="_owner",Oo=Object.prototype.hasOwnProperty;function Jr(e,t,r,n){var o=Object.keys(e),s=o.length;if(Object.keys(t).length!==s)return!1;for(var l;s-- >0;){if(l=o[s],l===Po){var d=!!e.$$typeof,c=!!t.$$typeof;if((d||c)&&d!==c)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 s={};return e.forEach(function(l,d){if(o){var c=!1,v=0;t.forEach(function(m,h){!c&&!s[v]&&(c=r(l,m,d,h,e,t,n))&&(s[v]=!0),v++}),o=c}}),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:Co,areDatesEqual:Gr,areMapsEqual:Eo,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]=E.useState(r),[s,l]=E.useState(!t),d=E.useRef(null),c=E.useRef(null),v=E.useCallback(()=>{const m=d.current;if(m){const h=m.offsetWidth;o(h),s||l(!0)}},[s]);return E.useEffect(()=>{const m=d.current;if(m)return v(),typeof ResizeObserver<"u"&&(c.current=new ResizeObserver(h=>{const C=h[0];if(C){const P=C.contentRect.width;o(P)}}),c.current.observe(m)),()=>{c.current&&(c.current.disconnect(),c.current=null)}},[v]),{width:n,mounted:s,containerRef:d,measureWidth:v}}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,s=e?Symbol.for("react.profiler"):60114,l=e?Symbol.for("react.provider"):60109,d=e?Symbol.for("react.context"):60110,c=e?Symbol.for("react.async_mode"):60111,v=e?Symbol.for("react.concurrent_mode"):60111,m=e?Symbol.for("react.forward_ref"):60112,h=e?Symbol.for("react.suspense"):60113,C=e?Symbol.for("react.suspense_list"):60120,P=e?Symbol.for("react.memo"):60115,D=e?Symbol.for("react.lazy"):60116,y=e?Symbol.for("react.block"):60121,a=e?Symbol.for("react.fundamental"):60117,i=e?Symbol.for("react.responder"):60118,g=e?Symbol.for("react.scope"):60119;function b(u){if(typeof u=="object"&&u!==null){var w=u.$$typeof;switch(w){case t:switch(u=u.type,u){case c:case v:case n:case s:case o:case h:return u;default:switch(u=u&&u.$$typeof,u){case d:case m:case D:case P:case l:return u;default:return w}}case r:return w}}}function S(u){return b(u)===v}return ee.AsyncMode=c,ee.ConcurrentMode=v,ee.ContextConsumer=d,ee.ContextProvider=l,ee.Element=t,ee.ForwardRef=m,ee.Fragment=n,ee.Lazy=D,ee.Memo=P,ee.Portal=r,ee.Profiler=s,ee.StrictMode=o,ee.Suspense=h,ee.isAsyncMode=function(u){return S(u)||b(u)===c},ee.isConcurrentMode=S,ee.isContextConsumer=function(u){return b(u)===d},ee.isContextProvider=function(u){return b(u)===l},ee.isElement=function(u){return typeof u=="object"&&u!==null&&u.$$typeof===t},ee.isForwardRef=function(u){return b(u)===m},ee.isFragment=function(u){return b(u)===n},ee.isLazy=function(u){return b(u)===D},ee.isMemo=function(u){return b(u)===P},ee.isPortal=function(u){return b(u)===r},ee.isProfiler=function(u){return b(u)===s},ee.isStrictMode=function(u){return b(u)===o},ee.isSuspense=function(u){return b(u)===h},ee.isValidElementType=function(u){return typeof u=="string"||typeof u=="function"||u===n||u===v||u===s||u===o||u===h||u===C||typeof u=="object"&&u!==null&&(u.$$typeof===D||u.$$typeof===P||u.$$typeof===l||u.$$typeof===d||u.$$typeof===m||u.$$typeof===a||u.$$typeof===i||u.$$typeof===g||u.$$typeof===y)},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,s=e?Symbol.for("react.profiler"):60114,l=e?Symbol.for("react.provider"):60109,d=e?Symbol.for("react.context"):60110,c=e?Symbol.for("react.async_mode"):60111,v=e?Symbol.for("react.concurrent_mode"):60111,m=e?Symbol.for("react.forward_ref"):60112,h=e?Symbol.for("react.suspense"):60113,C=e?Symbol.for("react.suspense_list"):60120,P=e?Symbol.for("react.memo"):60115,D=e?Symbol.for("react.lazy"):60116,y=e?Symbol.for("react.block"):60121,a=e?Symbol.for("react.fundamental"):60117,i=e?Symbol.for("react.responder"):60118,g=e?Symbol.for("react.scope"):60119;function b(_){return typeof _=="string"||typeof _=="function"||_===n||_===v||_===s||_===o||_===h||_===C||typeof _=="object"&&_!==null&&(_.$$typeof===D||_.$$typeof===P||_.$$typeof===l||_.$$typeof===d||_.$$typeof===m||_.$$typeof===a||_.$$typeof===i||_.$$typeof===g||_.$$typeof===y)}function S(_){if(typeof _=="object"&&_!==null){var ae=_.$$typeof;switch(ae){case t:var je=_.type;switch(je){case c:case v:case n:case s:case o:case h:return je;default:var De=je&&je.$$typeof;switch(De){case d:case m:case D:case P:case l:return De;default:return ae}}case r:return ae}}}var u=c,w=v,p=d,x=l,R=t,H=m,q=n,J=D,A=P,Y=r,Z=s,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(_)||S(_)===c}function O(_){return S(_)===v}function f(_){return S(_)===d}function j(_){return S(_)===l}function k(_){return typeof _=="object"&&_!==null&&_.$$typeof===t}function z(_){return S(_)===m}function X(_){return S(_)===n}function I(_){return S(_)===D}function M(_){return S(_)===P}function W(_){return S(_)===r}function N(_){return S(_)===s}function $(_){return S(_)===o}function F(_){return S(_)===h}te.AsyncMode=u,te.ConcurrentMode=w,te.ContextConsumer=p,te.ContextProvider=x,te.Element=R,te.ForwardRef=H,te.Fragment=q,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=f,te.isContextProvider=j,te.isElement=k,te.isForwardRef=z,te.isFragment=X,te.isLazy=I,te.isMemo=M,te.isPortal=W,te.isProfiler=N,te.isStrictMode=$,te.isSuspense=F,te.isValidElementType=b,te.typeOf=S})()),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(s){if(s==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(s)}function o(){try{if(!Object.assign)return!1;var s=new String("abc");if(s[5]="de",Object.getOwnPropertyNames(s)[0]==="5")return!1;for(var l={},d=0;d<10;d++)l["_"+String.fromCharCode(d)]=d;var c=Object.getOwnPropertyNames(l).map(function(m){return l[m]});if(c.join("")!=="0123456789")return!1;var v={};return"abcdefghijklmnopqrst".split("").forEach(function(m){v[m]=m}),Object.keys(Object.assign({},v)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}return ir=o()?Object.assign:function(s,l){for(var d,c=n(s),v,m=1;m<arguments.length;m++){d=Object(arguments[m]);for(var h in d)t.call(d,h)&&(c[h]=d[h]);if(e){v=e(d);for(var C=0;C<v.length;C++)r.call(d,v[C])&&(c[v[C]]=d[v[C]])}}return c},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(s){var l="Warning: "+s;typeof console<"u"&&console.error(l);try{throw new Error(l)}catch{}}}function o(s,l,d,c,v){if(process.env.NODE_ENV!=="production"){for(var m in s)if(n(s,m)){var h;try{if(typeof s[m]!="function"){var C=Error((c||"React class")+": "+d+" type `"+m+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof s[m]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw C.name="Invariant Violation",C}h=s[m](l,m,c,d,null,t)}catch(D){h=D}if(h&&!(h instanceof Error)&&e((c||"React class")+": type specification of "+d+" `"+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=v?v():"";e("Failed "+d+" 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(),s=function(){};process.env.NODE_ENV!=="production"&&(s=function(d){var c="Warning: "+d;typeof console<"u"&&console.error(c);try{throw new Error(c)}catch{}});function l(){return null}return dr=function(d,c){var v=typeof Symbol=="function"&&Symbol.iterator,m="@@iterator";function h(O){var f=O&&(v&&O[v]||O[m]);if(typeof f=="function")return f}var C="<<anonymous>>",P={array:i("array"),bigint:i("bigint"),bool:i("boolean"),func:i("function"),number:i("number"),object:i("object"),string:i("string"),symbol:i("symbol"),any:g(),arrayOf:b,element:S(),elementType:u(),instanceOf:w,node:H(),objectOf:x,oneOf:p,oneOfType:R,shape:J,exact:A};function D(O,f){return O===f?O!==0||1/O===1/f:O!==O&&f!==f}function y(O,f){this.message=O,this.data=f&&typeof f=="object"?f:{},this.stack=""}y.prototype=Error.prototype;function a(O){if(process.env.NODE_ENV!=="production")var f={},j=0;function k(X,I,M,W,N,$,F){if(W=W||C,$=$||M,F!==r){if(c){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=W+":"+M;!f[ae]&&j<3&&(s("You are manually calling a React.PropTypes validation function for the `"+$+"` prop on `"+W+"`. 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."),f[ae]=!0,j++)}}return I[M]==null?X?I[M]===null?new y("The "+N+" `"+$+"` is marked as required "+("in `"+W+"`, but its value is `null`.")):new y("The "+N+" `"+$+"` is marked as required in "+("`"+W+"`, but its value is `undefined`.")):null:O(I,M,W,N,$)}var z=k.bind(null,!1);return z.isRequired=k.bind(null,!0),z}function i(O){function f(j,k,z,X,I,M){var W=j[k],N=U(W);if(N!==O){var $=K(W);return new y("Invalid "+X+" `"+I+"` of type "+("`"+$+"` supplied to `"+z+"`, expected ")+("`"+O+"`."),{expectedType:O})}return null}return a(f)}function g(){return a(l)}function b(O){function f(j,k,z,X,I){if(typeof O!="function")return new y("Property `"+I+"` of component `"+z+"` has invalid PropType notation inside arrayOf.");var M=j[k];if(!Array.isArray(M)){var W=U(M);return new y("Invalid "+X+" `"+I+"` of type "+("`"+W+"` supplied to `"+z+"`, expected an array."))}for(var N=0;N<M.length;N++){var $=O(M,N,z,X,I+"["+N+"]",r);if($ instanceof Error)return $}return null}return a(f)}function S(){function O(f,j,k,z,X){var I=f[j];if(!d(I)){var M=U(I);return new y("Invalid "+z+" `"+X+"` of type "+("`"+M+"` supplied to `"+k+"`, expected a single ReactElement."))}return null}return a(O)}function u(){function O(f,j,k,z,X){var I=f[j];if(!e.isValidElementType(I)){var M=U(I);return new y("Invalid "+z+" `"+X+"` of type "+("`"+M+"` supplied to `"+k+"`, expected a single ReactElement type."))}return null}return a(O)}function w(O){function f(j,k,z,X,I){if(!(j[k]instanceof O)){var M=O.name||C,W=me(j[k]);return new y("Invalid "+X+" `"+I+"` of type "+("`"+W+"` supplied to `"+z+"`, expected ")+("instance of `"+M+"`."))}return null}return a(f)}function p(O){if(!Array.isArray(O))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.")),l;function f(j,k,z,X,I){for(var M=j[k],W=0;W<O.length;W++)if(D(M,O[W]))return null;var N=JSON.stringify(O,function(F,_){var ae=K(_);return ae==="symbol"?String(_):_});return new y("Invalid "+X+" `"+I+"` of value `"+String(M)+"` "+("supplied to `"+z+"`, expected one of "+N+"."))}return a(f)}function x(O){function f(j,k,z,X,I){if(typeof O!="function")return new y("Property `"+I+"` of component `"+z+"` has invalid PropType notation inside objectOf.");var M=j[k],W=U(M);if(W!=="object")return new y("Invalid "+X+" `"+I+"` of type "+("`"+W+"` supplied to `"+z+"`, expected an object."));for(var N in M)if(n(M,N)){var $=O(M,N,z,X,I+"."+N,r);if($ instanceof Error)return $}return null}return a(f)}function R(O){if(!Array.isArray(O))return process.env.NODE_ENV!=="production"&&s("Invalid argument supplied to oneOfType, expected an instance of array."),l;for(var f=0;f<O.length;f++){var j=O[f];if(typeof j!="function")return s("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+le(j)+" at index "+f+"."),l}function k(z,X,I,M,W){for(var N=[],$=0;$<O.length;$++){var F=O[$],_=F(z,X,I,M,W,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 y("Invalid "+M+" `"+W+"` supplied to "+("`"+I+"`"+ae+"."))}return a(k)}function H(){function O(f,j,k,z,X){return Y(f[j])?null:new y("Invalid "+z+" `"+X+"` supplied to "+("`"+k+"`, expected a ReactNode."))}return a(O)}function q(O,f,j,k,z){return new y((O||"React class")+": "+f+" type `"+j+"."+k+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+z+"`.")}function J(O){function f(j,k,z,X,I){var M=j[k],W=U(M);if(W!=="object")return new y("Invalid "+X+" `"+I+"` of type `"+W+"` "+("supplied to `"+z+"`, expected `object`."));for(var N in O){var $=O[N];if(typeof $!="function")return q(z,X,I,N,K($));var F=$(M,N,z,X,I+"."+N,r);if(F)return F}return null}return a(f)}function A(O){function f(j,k,z,X,I){var M=j[k],W=U(M);if(W!=="object")return new y("Invalid "+X+" `"+I+"` of type `"+W+"` "+("supplied to `"+z+"`, expected `object`."));var N=t({},j[k],O);for(var $ in N){var F=O[$];if(n(O,$)&&typeof F!="function")return q(z,X,I,$,K(F));if(!F)return new y("Invalid "+X+" `"+I+"` key `"+$+"` supplied to `"+z+"`.\nBad object: "+JSON.stringify(j[k],null," ")+`
|
|
7
|
+
Valid keys: `+JSON.stringify(Object.keys(O),null," "));var _=F(M,$,z,X,I+"."+$,r);if(_)return _}return null}return a(f)}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||d(O))return!0;var f=h(O);if(f){var j=f.call(O),k;if(f!==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,f){return O==="symbol"?!0:f?f["@@toStringTag"]==="Symbol"||typeof Symbol=="function"&&f instanceof Symbol:!1}function U(O){var f=typeof O;return Array.isArray(O)?"array":O instanceof RegExp?"object":Z(f,O)?"symbol":f}function K(O){if(typeof O>"u"||O===null)return""+O;var f=U(O);if(f==="object"){if(O instanceof Date)return"date";if(O instanceof RegExp)return"regexp"}return f}function le(O){var f=K(O);switch(f){case"array":case"object":return"an "+f;case"boolean":case"date":case"regexp":return"a "+f;default:return f}}function me(O){return!O.constructor||!O.constructor.name?C: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,d,c,v,m,h){if(h!==e){var C=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 C.name="Invariant Violation",C}}n.isRequired=n;function o(){return n}var s={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 s.PropTypes=s,s},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(s,l){for(let d=0,c=s.length;d<c;d++)if(l.apply(l,[s[d],d,s]))return s[d]}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 o(s,l,d){if(s[l])return new Error(`Invalid prop ${l} passed to ${d} - 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 s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"transform";if(typeof window>"u")return"";const l=window.document?.documentElement?.style;if(!l||s in l)return"";for(let d=0;d<e.length;d++)if(r(s,e[d])in l)return e[d];return""}function r(s,l){return l?`${l}${o(s)}`:s}function n(s,l){return l?`-${l.toLowerCase()}-${s}`:s}function o(s){let l="",d=!0;for(let c=0;c<s.length;c++)d?(l+=s[c].toUpperCase(),d=!1):s[c]==="-"?d=!0:l+=s[c];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=u,ge.addEvent=l,ge.addUserSelectStyles=g,ge.createCSSTransform=P,ge.createSVGTransform=D,ge.getTouch=a,ge.getTouchIdentifier=i,ge.getTranslation=y,ge.innerHeight=m,ge.innerWidth=h,ge.matchesSelector=o,ge.matchesSelectorAndParentsTo=s,ge.offsetXYFromParent=C,ge.outerHeight=c,ge.outerWidth=v,ge.removeClassName=w,ge.removeEvent=d,ge.scheduleRemoveUserSelectStyles=b;var e=At(),t=r(Io());function r(p,x){if(typeof WeakMap=="function")var R=new WeakMap,H=new WeakMap;return(r=function(q,J){if(!J&&q&&q.__esModule)return q;var A,Y,Z={__proto__:null,default:q};if(q===null||typeof q!="object"&&typeof q!="function")return Z;if(A=J?H:R){if(A.has(q))return A.get(q);A.set(q,Z)}for(const U in q)U!=="default"&&{}.hasOwnProperty.call(q,U)&&((Y=(A=Object.defineProperty)&&Object.getOwnPropertyDescriptor(q,U))&&(Y.get||Y.set)?A(Z,U,Y):Z[U]=q[U]);return Z})(p,x)}let n="";function o(p,x){return n||(n=(0,e.findInArray)(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(R){return(0,e.isFunction)(p[R])})),(0,e.isFunction)(p[n])?p[n](x):!1}function s(p,x,R){let H=p;do{if(o(H,x))return!0;if(H===R)return!1;H=H.parentNode}while(H);return!1}function l(p,x,R,H){if(!p)return;const q={capture:!0,...H};p.addEventListener?p.addEventListener(x,R,q):p.attachEvent?p.attachEvent("on"+x,R):p["on"+x]=R}function d(p,x,R,H){if(!p)return;const q={capture:!0,...H};p.removeEventListener?p.removeEventListener(x,R,q):p.detachEvent?p.detachEvent("on"+x,R):p["on"+x]=null}function c(p){let x=p.clientHeight;const R=p.ownerDocument.defaultView.getComputedStyle(p);return x+=(0,e.int)(R.borderTopWidth),x+=(0,e.int)(R.borderBottomWidth),x}function v(p){let x=p.clientWidth;const R=p.ownerDocument.defaultView.getComputedStyle(p);return x+=(0,e.int)(R.borderLeftWidth),x+=(0,e.int)(R.borderRightWidth),x}function m(p){let x=p.clientHeight;const R=p.ownerDocument.defaultView.getComputedStyle(p);return x-=(0,e.int)(R.paddingTop),x-=(0,e.int)(R.paddingBottom),x}function h(p){let x=p.clientWidth;const R=p.ownerDocument.defaultView.getComputedStyle(p);return x-=(0,e.int)(R.paddingLeft),x-=(0,e.int)(R.paddingRight),x}function C(p,x,R){const q=x===x.ownerDocument.body?{left:0,top:0}:x.getBoundingClientRect(),J=(p.clientX+x.scrollLeft-q.left)/R,A=(p.clientY+x.scrollTop-q.top)/R;return{x:J,y:A}}function P(p,x){const R=y(p,x,"px");return{[(0,t.browserPrefixToKey)("transform",t.default)]:R}}function D(p,x){return y(p,x,"")}function y(p,x,R){let{x:H,y:q}=p,J=`translate(${H}${R},${q}${R})`;if(x){const A=`${typeof x.x=="string"?x.x:x.x+R}`,Y=`${typeof x.y=="string"?x.y:x.y+R}`;J=`translate(${A}, ${Y})`+J}return J}function a(p,x){return p.targetTouches&&(0,e.findInArray)(p.targetTouches,R=>x===R.identifier)||p.changedTouches&&(0,e.findInArray)(p.changedTouches,R=>x===R.identifier)}function i(p){if(p.targetTouches&&p.targetTouches[0])return p.targetTouches[0].identifier;if(p.changedTouches&&p.changedTouches[0])return p.changedTouches[0].identifier}function g(p){if(!p)return;let x=p.getElementById("react-draggable-style-el");x||(x=p.createElement("style"),x.type="text/css",x.id="react-draggable-style-el",x.innerHTML=`.react-draggable-transparent-selection *::-moz-selection {all: inherit;}
|
|
8
8
|
`,x.innerHTML+=`.react-draggable-transparent-selection *::selection {all: inherit;}
|
|
9
|
-
`,g.getElementsByTagName("head")[0].appendChild(x)),g.body&&b(g.body,"react-draggable-transparent-selection")}function y(g){window.requestAnimationFrame?window.requestAnimationFrame(()=>{S(g)}):S(g)}function S(g){if(g)try{if(g.body&&E(g.body,"react-draggable-transparent-selection"),g.selection)g.selection.empty();else{const x=(g.defaultView||window).getSelection();x&&x.type!=="Caret"&&x.removeAllRanges()}}catch{}}function b(g,x){g.classList?g.classList.add(x):g.className.match(new RegExp(`(?:^|\\s)${x}(?!\\S)`))||(g.className+=` ${x}`)}function E(g,x){g.classList?g.classList.remove(x):g.className=g.className.replace(new RegExp(`(?:^|\\s)${x}(?!\\S)`,"g"),"")}return ge}var Ae={},yn;function vn(){if(yn)return Ae;yn=1,Object.defineProperty(Ae,"__esModule",{value:!0}),Ae.canDragX=o,Ae.canDragY=i,Ae.createCoreData=u,Ae.createDraggableData=d,Ae.getBoundPosition=r,Ae.getControlPosition=l,Ae.snapToGrid=n;var e=At(),t=hr();function r(p,w,O){if(!p.props.bounds)return[w,O];let{bounds:_}=p.props;_=typeof _=="string"?_:v(_);const c=m(p);if(typeof _=="string"){const{ownerDocument:a}=c,s=a.defaultView;let h;if(_==="parent"?h=c.parentNode:h=c.getRootNode().querySelector(_),!(h instanceof s.HTMLElement))throw new Error('Bounds selector "'+_+'" could not find an element.');const y=h,S=s.getComputedStyle(c),b=s.getComputedStyle(y);_={left:-c.offsetLeft+(0,e.int)(b.paddingLeft)+(0,e.int)(S.marginLeft),top:-c.offsetTop+(0,e.int)(b.paddingTop)+(0,e.int)(S.marginTop),right:(0,t.innerWidth)(y)-(0,t.outerWidth)(c)-c.offsetLeft+(0,e.int)(b.paddingRight)-(0,e.int)(S.marginRight),bottom:(0,t.innerHeight)(y)-(0,t.outerHeight)(c)-c.offsetTop+(0,e.int)(b.paddingBottom)-(0,e.int)(S.marginBottom)}}return(0,e.isNum)(_.right)&&(w=Math.min(w,_.right)),(0,e.isNum)(_.bottom)&&(O=Math.min(O,_.bottom)),(0,e.isNum)(_.left)&&(w=Math.max(w,_.left)),(0,e.isNum)(_.top)&&(O=Math.max(O,_.top)),[w,O]}function n(p,w,O){const _=Math.round(w/p[0])*p[0],c=Math.round(O/p[1])*p[1];return[_,c]}function o(p){return p.props.axis==="both"||p.props.axis==="x"}function i(p){return p.props.axis==="both"||p.props.axis==="y"}function l(p,w,O){const _=typeof w=="number"?(0,t.getTouch)(p,w):null;if(typeof w=="number"&&!_)return null;const c=m(O),a=O.props.offsetParent||c.offsetParent||c.ownerDocument.body;return(0,t.offsetXYFromParent)(_||p,a,O.props.scale)}function u(p,w,O){const _=!(0,e.isNum)(p.lastX),c=m(p);return _?{node:c,deltaX:0,deltaY:0,lastX:w,lastY:O,x:w,y:O}:{node:c,deltaX:w-p.lastX,deltaY:O-p.lastY,lastX:p.lastX,lastY:p.lastY,x:w,y:O}}function d(p,w){const O=p.props.scale;return{node:w.node,x:p.state.x+w.deltaX/O,y:p.state.y+w.deltaY/O,deltaX:w.deltaX/O,deltaY:w.deltaY/O,lastX:p.state.x,lastY:p.state.y}}function v(p){return{left:p.left,top:p.top,right:p.right,bottom:p.bottom}}function m(p){const w=p.findDOMNode();if(!w)throw new Error("<DraggableCore>: Unmounted during event!");return w}return Ae}var pt={},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 pt;wn=1,Object.defineProperty(pt,"__esModule",{value:!0}),pt.default=void 0;var e=d(C),t=u(Nt()),r=u(Cr),n=hr(),o=vn(),i=At(),l=u(xn());function u(c){return c&&c.__esModule?c:{default:c}}function d(c,a){if(typeof WeakMap=="function")var s=new WeakMap,h=new WeakMap;return(d=function(y,S){if(!S&&y&&y.__esModule)return y;var b,E,g={__proto__:null,default:y};if(y===null||typeof y!="object"&&typeof y!="function")return g;if(b=S?h:s){if(b.has(y))return b.get(y);b.set(y,g)}for(const x in y)x!=="default"&&{}.hasOwnProperty.call(y,x)&&((E=(b=Object.defineProperty)&&Object.getOwnPropertyDescriptor(y,x))&&(E.get||E.set)?b(g,x,E):g[x]=y[x]);return g})(c,a)}function v(c,a,s){return(a=m(a))in c?Object.defineProperty(c,a,{value:s,enumerable:!0,configurable:!0,writable:!0}):c[a]=s,c}function m(c){var a=p(c,"string");return typeof a=="symbol"?a:a+""}function p(c,a){if(typeof c!="object"||!c)return c;var s=c[Symbol.toPrimitive];if(s!==void 0){var h=s.call(c,a);if(typeof h!="object")return h;throw new TypeError("@@toPrimitive must return a primitive value.")}return(a==="string"?String:Number)(c)}const w={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}};let O=w.mouse,_=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",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:h}=s;if(this.props.disabled||!(a.target instanceof h.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 y=(0,n.getTouchIdentifier)(a);this.touchIdentifier=y;const S=(0,o.getControlPosition)(a,y,this);if(S==null)return;const{x:b,y:E}=S,g=(0,o.createCoreData)(this,b,E);(0,l.default)("DraggableCore: handleDragStart: %j",g),(0,l.default)("calling",this.props.onStart),!(this.props.onStart(a,g)===!1||this.mounted===!1)&&(this.props.enableUserSelectHack&&(0,n.addUserSelectStyles)(h),this.dragging=!0,this.lastX=b,this.lastY=E,(0,n.addEvent)(h,O.move,this.handleDrag),(0,n.addEvent)(h,O.stop,this.handleDragStop))}),v(this,"handleDrag",a=>{const s=(0,o.getControlPosition)(a,this.touchIdentifier,this);if(s==null)return;let{x:h,y}=s;if(Array.isArray(this.props.grid)){let E=h-this.lastX,g=y-this.lastY;if([E,g]=(0,o.snapToGrid)(this.props.grid,E,g),!E&&!g)return;h=this.lastX+E,y=this.lastY+g}const S=(0,o.createCoreData)(this,h,y);if((0,l.default)("DraggableCore: handleDrag: %j",S),this.props.onDrag(a,S)===!1||this.mounted===!1){try{this.handleDragStop(new MouseEvent("mouseup"))}catch{const g=document.createEvent("MouseEvents");g.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),this.handleDragStop(g)}return}this.lastX=h,this.lastY=y}),v(this,"handleDragStop",a=>{if(!this.dragging)return;const s=(0,o.getControlPosition)(a,this.touchIdentifier,this);if(s==null)return;let{x:h,y}=s;if(Array.isArray(this.props.grid)){let g=h-this.lastX||0,x=y-this.lastY||0;[g,x]=(0,o.snapToGrid)(this.props.grid,g,x),h=this.lastX+g,y=this.lastY+x}const S=(0,o.createCoreData)(this,h,y);if(this.props.onStop(a,S)===!1||this.mounted===!1)return!1;const E=this.findDOMNode();E&&this.props.enableUserSelectHack&&(0,n.scheduleRemoveUserSelectStyles)(E.ownerDocument),(0,l.default)("DraggableCore: handleDragStop: %j",S),this.dragging=!1,this.lastX=NaN,this.lastY=NaN,E&&((0,l.default)("DraggableCore: Removing handlers"),(0,n.removeEvent)(E.ownerDocument,O.move,this.handleDrag),(0,n.removeEvent)(E.ownerDocument,O.stop,this.handleDragStop))}),v(this,"onMouseDown",a=>(O=w.mouse,this.handleDragStart(a))),v(this,"onMouseUp",a=>(O=w.mouse,this.handleDragStop(a))),v(this,"onTouchStart",a=>(O=w.touch,this.handleDragStart(a))),v(this,"onTouchEnd",a=>(O=w.touch,this.handleDragStop(a)))}componentDidMount(){this.mounted=!0;const a=this.findDOMNode();a&&(0,n.addEvent)(a,w.touch.start,this.onTouchStart,{passive:!1})}componentWillUnmount(){this.mounted=!1;const a=this.findDOMNode();if(a){const{ownerDocument:s}=a;(0,n.removeEvent)(s,w.mouse.move,this.handleDrag),(0,n.removeEvent)(s,w.touch.move,this.handleDrag),(0,n.removeEvent)(s,w.mouse.stop,this.handleDragStop),(0,n.removeEvent)(s,w.touch.stop,this.handleDragStop),(0,n.removeEvent)(a,w.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 pt.default=_,v(_,"displayName","DraggableCore"),v(_,"propTypes",{allowAnyClick:t.default.bool,allowMobileScroll:t.default.bool,children:t.default.node.isRequired,disabled:t.default.bool,enableUserSelectHack:t.default.bool,offsetParent:function(c,a){if(c[a]&&c[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}),v(_,"defaultProps",{allowAnyClick:!1,allowMobileScroll:!1,disabled:!1,enableUserSelectHack:!0,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){},scale:1}),pt}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 d.default}}),e.default=void 0;var t=p(C),r=m(Nt()),n=m(Cr),o=Gt,i=hr(),l=vn(),u=At(),d=m(Lo()),v=m(xn());function m(s){return s&&s.__esModule?s:{default:s}}function p(s,h){if(typeof WeakMap=="function")var y=new WeakMap,S=new WeakMap;return(p=function(b,E){if(!E&&b&&b.__esModule)return b;var g,x,R={__proto__:null,default:b};if(b===null||typeof b!="object"&&typeof b!="function")return R;if(g=E?S:y){if(g.has(b))return g.get(b);g.set(b,R)}for(const Y in b)Y!=="default"&&{}.hasOwnProperty.call(b,Y)&&((x=(g=Object.defineProperty)&&Object.getOwnPropertyDescriptor(b,Y))&&(x.get||x.set)?g(R,Y,x):R[Y]=b[Y]);return R})(s,h)}function w(){return w=Object.assign?Object.assign.bind():function(s){for(var h=1;h<arguments.length;h++){var y=arguments[h];for(var S in y)({}).hasOwnProperty.call(y,S)&&(s[S]=y[S])}return s},w.apply(null,arguments)}function O(s,h,y){return(h=_(h))in s?Object.defineProperty(s,h,{value:y,enumerable:!0,configurable:!0,writable:!0}):s[h]=y,s}function _(s){var h=c(s,"string");return typeof h=="symbol"?h:h+""}function c(s,h){if(typeof s!="object"||!s)return s;var y=s[Symbol.toPrimitive];if(y!==void 0){var S=y.call(s,h);if(typeof S!="object")return S;throw new TypeError("@@toPrimitive must return a primitive value.")}return(h==="string"?String:Number)(s)}class a extends t.Component{static getDerivedStateFromProps(h,y){let{position:S}=h,{prevPropsPosition:b}=y;return S&&(!b||S.x!==b.x||S.y!==b.y)?((0,v.default)("Draggable: getDerivedStateFromProps %j",{position:S,prevPropsPosition:b}),{x:S.x,y:S.y,prevPropsPosition:{...S}}):null}constructor(h){super(h),O(this,"onDragStart",(y,S)=>{if((0,v.default)("Draggable: onDragStart: %j",S),this.props.onStart(y,(0,l.createDraggableData)(this,S))===!1)return!1;this.setState({dragging:!0,dragged:!0})}),O(this,"onDrag",(y,S)=>{if(!this.state.dragging)return!1;(0,v.default)("Draggable: onDrag: %j",S);const b=(0,l.createDraggableData)(this,S),E={x:b.x,y:b.y,slackX:0,slackY:0};if(this.props.bounds){const{x,y:R}=E;E.x+=this.state.slackX,E.y+=this.state.slackY;const[Y,q]=(0,l.getBoundPosition)(this,E.x,E.y);E.x=Y,E.y=q,E.slackX=this.state.slackX+(x-E.x),E.slackY=this.state.slackY+(R-E.y),b.x=E.x,b.y=E.y,b.deltaX=E.x-this.state.x,b.deltaY=E.y-this.state.y}if(this.props.onDrag(y,b)===!1)return!1;this.setState(E)}),O(this,"onDragStop",(y,S)=>{if(!this.state.dragging||this.props.onStop(y,(0,l.createDraggableData)(this,S))===!1)return!1;(0,v.default)("Draggable: onDragStop: %j",S);const E={dragging:!1,slackX:0,slackY:0};if(!!this.props.position){const{x,y:R}=this.props.position;E.x=x,E.y=R}this.setState(E)}),this.state={dragging:!1,dragged:!1,x:h.position?h.position.x:h.defaultPosition.x,y:h.position?h.position.y:h.defaultPosition.y,prevPropsPosition:{...h.position},slackX:0,slackY:0,isElementSVG:!1},h.position&&!(h.onDrag||h.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:h,bounds:y,children:S,defaultPosition:b,defaultClassName:E,defaultClassNameDragging:g,defaultClassNameDragged:x,position:R,positionOffset:Y,scale:q,...V}=this.props;let A={},$=null;const U=!!!R||this.state.dragging,J=R||b,le={x:(0,l.canDragX)(this)&&U?this.state.x:J.x,y:(0,l.canDragY)(this)&&U?this.state.y:J.y};this.state.isElementSVG?$=(0,i.createSVGTransform)(le,Y):A=(0,i.createCSSTransform)(le,Y);const me=(0,o.clsx)(S.props.className||"",E,{[g]:this.state.dragging,[x]:this.state.dragged});return t.createElement(d.default,w({},V,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),t.cloneElement(t.Children.only(S),{className:me,style:{...S.props.style,...A},transform:$}))}}e.default=a,O(a,"displayName","Draggable"),O(a,"propTypes",{...d.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:u.dontSetMe,style:u.dontSetMe,transform:u.dontSetMe}),O(a,"defaultProps",{...d.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 Cn;function gr(){if(Cn)return dt.exports;Cn=1;const{default:e,DraggableCore:t}=Wo();return dt.exports=e,dt.exports.default=e,dt.exports.DraggableCore=t,dt.exports}var qo=gr(),ht={exports:{}},gt={},Lt={},En;function Ho(){if(En)return Lt;En=1,Lt.__esModule=!0,Lt.cloneElement=u;var e=t(C);function t(d){return d&&d.__esModule?d:{default:d}}function r(d,v){var m=Object.keys(d);if(Object.getOwnPropertySymbols){var p=Object.getOwnPropertySymbols(d);v&&(p=p.filter(function(w){return Object.getOwnPropertyDescriptor(d,w).enumerable})),m.push.apply(m,p)}return m}function n(d){for(var v=1;v<arguments.length;v++){var m=arguments[v]!=null?arguments[v]:{};v%2?r(Object(m),!0).forEach(function(p){o(d,p,m[p])}):Object.getOwnPropertyDescriptors?Object.defineProperties(d,Object.getOwnPropertyDescriptors(m)):r(Object(m)).forEach(function(p){Object.defineProperty(d,p,Object.getOwnPropertyDescriptor(m,p))})}return d}function o(d,v,m){return(v=i(v))in d?Object.defineProperty(d,v,{value:m,enumerable:!0,configurable:!0,writable:!0}):d[v]=m,d}function i(d){var v=l(d,"string");return typeof v=="symbol"?v:v+""}function l(d,v){if(typeof d!="object"||!d)return d;var m=d[Symbol.toPrimitive];if(m!==void 0){var p=m.call(d,v);if(typeof p!="object")return p;throw new TypeError("@@toPrimitive must return a primitive value.")}return(v==="string"?String:Number)(d)}function u(d,v){return v.style&&d.props.style&&(v.style=n(n({},d.props.style),v.style)),v.className&&d.props.className&&(v.className=`${d.props.className} ${v.className}`),e.default.cloneElement(d,v)}return Lt}var mt={},Pn;function On(){if(Pn)return mt;Pn=1,mt.__esModule=!0,mt.resizableProps=void 0;var e=t(Nt());gr();function t(r){return r&&r.__esModule?r:{default:r}}return mt.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)}},mt}var Rn;function _n(){if(Rn)return gt;Rn=1,gt.__esModule=!0,gt.default=void 0;var e=i(C),t=gr(),r=Ho(),n=On();const o=["children","className","draggableOpts","width","height","handle","handleSize","lockAspectRatio","axis","minConstraints","maxConstraints","onResize","onResizeStop","onResizeStart","resizeHandles","transformScale"];function i(c,a){if(typeof WeakMap=="function")var s=new WeakMap,h=new WeakMap;return(i=function(y,S){if(!S&&y&&y.__esModule)return y;var b,E,g={__proto__:null,default:y};if(y===null||typeof y!="object"&&typeof y!="function")return g;if(b=S?h:s){if(b.has(y))return b.get(y);b.set(y,g)}for(const x in y)x!=="default"&&{}.hasOwnProperty.call(y,x)&&((E=(b=Object.defineProperty)&&Object.getOwnPropertyDescriptor(y,x))&&(E.get||E.set)?b(g,x,E):g[x]=y[x]);return g})(c,a)}function l(){return l=Object.assign?Object.assign.bind():function(c){for(var a=1;a<arguments.length;a++){var s=arguments[a];for(var h in s)({}).hasOwnProperty.call(s,h)&&(c[h]=s[h])}return c},l.apply(null,arguments)}function u(c,a){if(c==null)return{};var s,h,y=d(c,a);if(Object.getOwnPropertySymbols){var S=Object.getOwnPropertySymbols(c);for(h=0;h<S.length;h++)s=S[h],a.indexOf(s)===-1&&{}.propertyIsEnumerable.call(c,s)&&(y[s]=c[s])}return y}function d(c,a){if(c==null)return{};var s={};for(var h in c)if({}.hasOwnProperty.call(c,h)){if(a.indexOf(h)!==-1)continue;s[h]=c[h]}return s}function v(c,a){var s=Object.keys(c);if(Object.getOwnPropertySymbols){var h=Object.getOwnPropertySymbols(c);a&&(h=h.filter(function(y){return Object.getOwnPropertyDescriptor(c,y).enumerable})),s.push.apply(s,h)}return s}function m(c){for(var a=1;a<arguments.length;a++){var s=arguments[a]!=null?arguments[a]:{};a%2?v(Object(s),!0).forEach(function(h){p(c,h,s[h])}):Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(s)):v(Object(s)).forEach(function(h){Object.defineProperty(c,h,Object.getOwnPropertyDescriptor(s,h))})}return c}function p(c,a,s){return(a=w(a))in c?Object.defineProperty(c,a,{value:s,enumerable:!0,configurable:!0,writable:!0}):c[a]=s,c}function w(c){var a=O(c,"string");return typeof a=="symbol"?a:a+""}function O(c,a){if(typeof c!="object"||!c)return c;var s=c[Symbol.toPrimitive];if(s!==void 0){var h=s.call(c,a);if(typeof h!="object")return h;throw new TypeError("@@toPrimitive must return a primitive value.")}return(a==="string"?String:Number)(c)}let _=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:h,maxConstraints:y,lockAspectRatio:S}=this.props;if(!h&&!y&&!S)return[a,s];if(S){const R=this.props.width/this.props.height,Y=a-this.props.width,q=s-this.props.height;Math.abs(Y)>Math.abs(q*R)?s=a/R:a=s*R}const[b,E]=[a,s];let[g,x]=this.slack||[0,0];return a+=g,s+=x,h&&(a=Math.max(h[0],a),s=Math.max(h[1],s)),y&&(a=Math.min(y[0],a),s=Math.min(y[1],s)),this.slack=[g+(b-a),x+(E-s)],[a,s]}resizeHandler(a,s){return(h,y)=>{let{node:S,deltaX:b,deltaY:E}=y;a==="onResizeStart"&&this.resetData();const g=(this.props.axis==="both"||this.props.axis==="x")&&s!=="n"&&s!=="s",x=(this.props.axis==="both"||this.props.axis==="y")&&s!=="e"&&s!=="w";if(!g&&!x)return;const R=s[0],Y=s[s.length-1],q=S.getBoundingClientRect();if(this.lastHandleRect!=null){if(Y==="w"){const J=q.left-this.lastHandleRect.left;b+=J}if(R==="n"){const J=q.top-this.lastHandleRect.top;E+=J}}this.lastHandleRect=q,Y==="w"&&(b=-b),R==="n"&&(E=-E);let V=this.props.width+(g?b/this.props.transformScale:0),A=this.props.height+(x?E/this.props.transformScale:0);[V,A]=this.runConstraints(V,A),a==="onResizeStop"&&this.lastSize&&({width:V,height:A}=this.lastSize);const $=V!==this.props.width||A!==this.props.height;a!=="onResizeStop"&&(this.lastSize={width:V,height:A});const K=typeof this.props[a]=="function"?this.props[a]:null;K&&!(a==="onResize"&&!$)&&(h.persist?.(),K(h,{node:S,size:{width:V,height:A},handle:s})),a==="onResizeStop"&&this.resetData()}}renderResizeHandle(a,s){const{handle:h}=this.props;if(!h)return e.createElement("span",{className:`react-resizable-handle react-resizable-handle-${a}`,ref:s});if(typeof h=="function")return h(a,s);const y=typeof h.type=="string",S=m({ref:s},y?{}:{handleAxis:a});return e.cloneElement(h,S)}render(){const a=this.props,{children:s,className:h,draggableOpts:y,width:S,height:b,handle:E,handleSize:g,lockAspectRatio:x,axis:R,minConstraints:Y,maxConstraints:q,onResize:V,onResizeStop:A,onResizeStart:$,resizeHandles:K,transformScale:U}=a,J=u(a,o);return(0,r.cloneElement)(s,m(m({},J),{},{className:`${h?`${h} `:""}react-resizable`,children:[...e.Children.toArray(s.props.children),...K.map(le=>{const me=this.handleRefs[le]??(this.handleRefs[le]=e.createRef());return e.createElement(t.DraggableCore,l({},y,{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 gt.default=_,_.propTypes=n.resizableProps,_.defaultProps={axis:"both",handleSize:[20,20],lockAspectRatio:!1,minConstraints:[20,20],maxConstraints:[1/0,1/0],resizeHandles:["se"],transformScale:1},gt}var yt={},Dn;function Yo(){if(Dn)return yt;Dn=1,yt.__esModule=!0,yt.default=void 0;var e=l(C),t=i(Nt()),r=i(_n()),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 h=new WeakMap,y=new WeakMap;return(l=function(S,b){if(!b&&S&&S.__esModule)return S;var E,g,x={__proto__:null,default:S};if(S===null||typeof S!="object"&&typeof S!="function")return x;if(E=b?y:h){if(E.has(S))return E.get(S);E.set(S,x)}for(const R in S)R!=="default"&&{}.hasOwnProperty.call(S,R)&&((g=(E=Object.defineProperty)&&Object.getOwnPropertyDescriptor(S,R))&&(g.get||g.set)?E(x,R,g):x[R]=S[R]);return x})(a,s)}function u(){return u=Object.assign?Object.assign.bind():function(a){for(var s=1;s<arguments.length;s++){var h=arguments[s];for(var y in h)({}).hasOwnProperty.call(h,y)&&(a[y]=h[y])}return a},u.apply(null,arguments)}function d(a,s){var h=Object.keys(a);if(Object.getOwnPropertySymbols){var y=Object.getOwnPropertySymbols(a);s&&(y=y.filter(function(S){return Object.getOwnPropertyDescriptor(a,S).enumerable})),h.push.apply(h,y)}return h}function v(a){for(var s=1;s<arguments.length;s++){var h=arguments[s]!=null?arguments[s]:{};s%2?d(Object(h),!0).forEach(function(y){m(a,y,h[y])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(h)):d(Object(h)).forEach(function(y){Object.defineProperty(a,y,Object.getOwnPropertyDescriptor(h,y))})}return a}function m(a,s,h){return(s=p(s))in a?Object.defineProperty(a,s,{value:h,enumerable:!0,configurable:!0,writable:!0}):a[s]=h,a}function p(a){var s=w(a,"string");return typeof s=="symbol"?s:s+""}function w(a,s){if(typeof a!="object"||!a)return a;var h=a[Symbol.toPrimitive];if(h!==void 0){var y=h.call(a,s);if(typeof y!="object")return y;throw new TypeError("@@toPrimitive must return a primitive value.")}return(s==="string"?String:Number)(a)}function O(a,s){if(a==null)return{};var h,y,S=_(a,s);if(Object.getOwnPropertySymbols){var b=Object.getOwnPropertySymbols(a);for(y=0;y<b.length;y++)h=b[y],s.indexOf(h)===-1&&{}.propertyIsEnumerable.call(a,h)&&(S[h]=a[h])}return S}function _(a,s){if(a==null)return{};var h={};for(var y in a)if({}.hasOwnProperty.call(a,y)){if(s.indexOf(y)!==-1)continue;h[y]=a[y]}return h}let c=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,h)=>{const{size:y}=h;this.props.onResize?(s.persist?.(),this.setState(y,()=>this.props.onResize&&this.props.onResize(s,h))):this.setState(y)}}static getDerivedStateFromProps(s,h){return h.propsWidth!==s.width||h.propsHeight!==s.height?{width:s.width,height:s.height,propsWidth:s.width,propsHeight:s.height}:null}render(){const s=this.props,{handle:h,handleSize:y,onResize:S,onResizeStart:b,onResizeStop:E,draggableOpts:g,minConstraints:x,maxConstraints:R,lockAspectRatio:Y,axis:q,width:V,height:A,resizeHandles:$,style:K,transformScale:U}=s,J=O(s,o);return e.createElement(r.default,{axis:q,draggableOpts:g,handle:h,handleSize:y,height:this.state.height,lockAspectRatio:Y,maxConstraints:R,minConstraints:x,onResizeStart:b,onResize:this.onResize,onResizeStop:E,resizeHandles:$,transformScale:U,width:this.state.width},e.createElement("div",u({},J,{style:v(v({},K),{},{width:this.state.width+"px",height:this.state.height+"px"})})))}};return yt.default=c,c.propTypes=v(v({},n.resizableProps),{},{children:t.default.element}),yt}var jn;function $o(){return jn||(jn=1,ht.exports=function(){throw new Error("Don't instantiate Resizable directly! Use require('react-resizable').Resizable")},ht.exports.Resizable=_n().default,ht.exports.ResizableBox=Yo().default),ht.exports}var Bo=$o();function Tn(e){const{children:t,cols:r,containerWidth:n,margin:o,containerPadding:i,rowHeight:l,maxRows:u,isDraggable:d,isResizable:v,isBounded:m,static:p,useCSSTransforms:w=!0,usePercentages:O=!1,transformScale:_=1,positionStrategy:c,dragThreshold:a=0,droppingPosition:s,className:h="",style:y,handle:S="",cancel:b="",x:E,y:g,w:x,h:R,minW:Y=1,maxW:q=1/0,minH:V=1,maxH:A=1/0,i:$,resizeHandles:K,resizeHandle:U,constraints:J=Mr,layoutItem:le,layout:me=[],onDragStart:P,onDrag:f,onDragStop:j,onResizeStart:k,onResize:M,onResizeStop:X}=e,[I,T]=C.useState(!1),[W,N]=C.useState(!1),H=C.useRef(null),F=C.useRef({left:0,top:0}),D=C.useRef({top:0,left:0,width:0,height:0}),ae=C.useRef(void 0),De=C.useRef(me);De.current=me;const Re=C.useRef(null),ye=C.useRef(null),Ce=C.useRef(!1),at=C.useRef({x:0,y:0}),de=C.useRef(!1),ue=C.useMemo(()=>({cols:r,containerPadding:i,containerWidth:n,margin:o,maxRows:u,rowHeight:l}),[r,i,n,o,u,l]),Ee=C.useMemo(()=>({cols:r,maxRows:u,containerWidth:n,containerHeight:0,rowHeight:l,margin:o,layout:[]}),[r,u,n,l,o]),we=C.useCallback(()=>({...Ee,layout:De.current}),[Ee]),ke=C.useMemo(()=>le??{i:$,x:E,y:g,w:x,h:R,minW:Y,maxW:q,minH:V,maxH:A},[le,$,E,g,x,R,Y,q,V,A]),Wt=C.useCallback(re=>{if(c?.calcStyle)return c.calcStyle(re);if(w)return zr(re);const ne=Un(re);return O?{...ne,left:kr(re.left/n),width:kr(re.width/n)}:ne},[c,w,O,n]),Ie=C.useCallback((re,{node:ne})=>{if(!P)return;const{offsetParent:he}=ne;if(!he)return;const se=he.getBoundingClientRect(),ve=ne.getBoundingClientRect(),Pe=ve.left/_,_e=se.left/_,Oe=ve.top/_,Me=se.top/_;let ze;if(c?.calcDragPosition){const G=re;ze=c.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;at.current={x:G.clientX,y:G.clientY},Ce.current=!0,de.current=!1,T(!0);return}T(!0);const Ve=Ct(ue,ze.top,ze.left),{x:Je,y:L}=Rt(J,ke,Ve.x,Ve.y,we());P($,Je,L,{e:re,node:ne,newPosition:ze})},[P,_,ue,c,a,J,ke,we,$]),st=C.useCallback((re,{node:ne,deltaX:he,deltaY:se})=>{if(!f||!I)return;const ve=re;if(Ce.current&&!de.current){const Je=ve.clientX-at.current.x,L=ve.clientY-at.current.y;if(Math.hypot(Je,L)<a)return;if(de.current=!0,Ce.current=!1,P){const B=Ct(ue,F.current.top,F.current.left),{x:Z,y:ie}=Rt(J,ke,B.x,B.y,we());P($,Z,ie,{e:re,node:ne,newPosition:F.current})}}let Pe=F.current.top+se,_e=F.current.left+he;if(m){const{offsetParent:Je}=ne;if(Je){const L=Je.clientHeight-nt(R,l,o[1]);Pe=Et(Pe,0,L);const G=rt(ue),B=n-nt(x,G,o[0]);_e=Et(_e,0,B)}}const Oe={top:Pe,left:_e};F.current=Oe;const Me=Ct(ue,Pe,_e),{x:ze,y:Ve}=Rt(J,ke,Me.x,Me.y,we());f($,ze,Ve,{e:re,node:ne,newPosition:Oe})},[f,P,I,a,m,R,l,o,ue,n,x,$,J,ke,we]),Xe=C.useCallback((re,{node:ne})=>{if(!j||!I)return;const he=Ce.current;if(Ce.current=!1,de.current=!1,at.current={x:0,y:0},he){T(!1),F.current={left:0,top:0};return}const{left:se,top:ve}=F.current,Pe={top:ve,left:se};T(!1),F.current={left:0,top:0};const _e=Ct(ue,ve,se),{x:Oe,y:Me}=Rt(J,ke,_e.x,_e.y,we());j($,Oe,Me,{e:re,node:ne,newPosition:Pe})},[j,I,ue,J,ke,we,$]);Re.current=Ie,ye.current=st;const Ne=C.useCallback((re,{node:ne,size:he,handle:se},ve,Pe)=>{const _e=Pe==="onResizeStart"?k:Pe==="onResize"?M:X;if(!_e)return;let Oe;ne?Oe=to(se,ve,he,n):Oe={...he,top:ve.top,left:ve.left},D.current=Oe;const Me=qn(ue,Oe.width,Oe.height),{w:ze,h:Ve}=Xn(J,ke,Me.w,Me.h,se,we());_e($,ze,Ve,{e:re.nativeEvent,node:ne,size:Oe,handle:se})},[k,M,X,n,ue,$,J,ke,we]),it=C.useCallback((re,ne)=>{N(!0);const he=ft(ue,E,g,x,R),se={...ne,handle:ne.handle};Ne(re,se,he,"onResizeStart")},[Ne,ue,E,g,x,R]),lt=C.useCallback((re,ne)=>{const he=ft(ue,E,g,x,R),se={...ne,handle:ne.handle};Ne(re,se,he,"onResize")},[Ne,ue,E,g,x,R]),Ue=C.useCallback((re,ne)=>{N(!1),D.current={top:0,left:0,width:0,height:0};const he=ft(ue,E,g,x,R),se={...ne,handle:ne.handle};Ne(re,se,he,"onResizeStop")},[Ne,ue,E,g,x,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};Re.current?.(s.e,se)}ae.current=s},[s,I,$]);const Le=ft(ue,E,g,x,R,I?F.current:null,W?D.current:null),vt=C.Children.only(t),bt=ft(ue,0,0,1,1),qt=[bt.width,bt.height],Ht=[1/0,1/0],je=vt.props,xr=je.className,Yt=je.style;let Ge=C.cloneElement(vt,{ref:H,className:Gt("react-grid-item",xr,h,{static:p,resizing:W,"react-draggable":d,"react-draggable-dragging":I,dropping:!!s,cssTransforms:w}),style:{...y,...Yt,...Wt(Le)}});const $t=U;return Ge=z.jsx(Bo.Resizable,{draggableOpts:{disabled:!v},className:v?void 0:"react-resizable-hide",width:Le.width,height:Le.height,minConstraints:qt,maxConstraints:Ht,onResizeStart:it,onResize:lt,onResizeStop:Ue,transformScale:_,resizeHandles:K,handle:$t,children:Ge}),Ge=z.jsx(qo.DraggableCore,{disabled:!d,onStart:Ie,onDrag:st,onStop:Xe,handle:S,cancel:".react-resizable-handle"+(b?","+b:""),scale:_,nodeRef:H,children:Ge}),Ge}var qe=()=>{},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,u=>{if(!C.isValidElement(u)||u.key===null)return;const d=String(u.key);i.add(d);const v=e.find(m=>m.i===d);if(v)o.push(Qe(v));else{const p=u.props["data-grid"];p?o.push({i:d,x:p.x??0,y:p.y??0,w:p.w??1,h:p.h??1,minW:p.minW,maxW:p.maxW,minH:p.minH,maxH:p.maxH,static:p.static,isDraggable:p.isDraggable,isResizable:p.isResizable,resizeHandles:p.resizeHandles,isBounded:p.isBounded}):o.push({i:d,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:u=no,compactor:d,constraints:v=Mr,layout:m=[],droppingItem:p,autoSize:w=!0,className:O="",style:_={},innerRef:c,onLayoutChange:a=qe,onDragStart:s=qe,onDrag:h=qe,onDragStop:y=qe,onResizeStart:S=qe,onResize:b=qe,onResizeStop:E=qe,onDrop:g=qe,onDropDragOver:x=qe}=e,R=C.useMemo(()=>({...oo,...n}),[n]),Y=C.useMemo(()=>({...ao,...o}),[o]),q=C.useMemo(()=>({...so,...i}),[i]),V=C.useMemo(()=>({...io,...l}),[l]),{cols:A,rowHeight:$,maxRows:K,margin:U,containerPadding:J}=R,{enabled:le,bounded:me,handle:P,cancel:f,threshold:j}=Y,{enabled:k,handles:M,handleComponent:X}=q,{enabled:I,defaultItem:T,onDragOver:W}=V,N=d??or("vertical"),H=N.type,F=N.allowOverlap,D=N.preventCollision??!1,ae=C.useMemo(()=>p??{i:"__dropping-elem__",...T},[p,T]),De=u.type==="transform",Re=u.scale,ye=J??U,[Ce,at]=C.useState(!1),[de,ue]=C.useState(()=>kn(m,t,A,N)),[Ee,we]=C.useState(null),[ke,Wt]=C.useState(!1),[Ie,st]=C.useState(null),[Xe,Ne]=C.useState(),it=C.useRef(null),lt=C.useRef(null),Ue=C.useRef(null),Le=C.useRef(0),vt=C.useRef(de),bt=C.useRef(m),qt=C.useRef(t),Ht=C.useRef(H),je=C.useRef(de);je.current=de,C.useEffect(()=>{at(!0),We(de,m)||a(de)},[]),C.useEffect(()=>{if(Ee||Ie)return;const L=!We(m,bt.current),G=!Fo(t,qt.current),B=H!==Ht.current;if(L||G||B){const ie=kn(L?m:de,t,A,N);We(ie,de)||ue(ie)}bt.current=m,qt.current=t,Ht.current=H},[m,t,A,H,N,Ee,Ie,de]),C.useEffect(()=>{if(!Ee&&!We(de,vt.current)){vt.current=de;const L=de.filter(G=>G.i!==ae.i);a(L)}},[de,Ee,a,ae.i]);const xr=C.useMemo(()=>{if(!w)return;const L=Pt(de),G=ye[1];return L*$+(L-1)*U[1]+G*2+"px"},[w,de,$,U,ye]),Yt=C.useCallback((L,G,B,Z)=>{const ie=je.current,oe=Ze(ie,L);if(!oe)return;const ce={w:oe.w,h:oe.h,x:oe.x,y:oe.y,i:L};it.current=Qe(oe),Ue.current=ie,we(ce),s(ie,oe,oe,null,Z.e,Z.node)},[s]),Ge=C.useCallback((L,G,B,Z)=>{const ie=je.current,oe=it.current,ce=Ze(ie,L);if(!ce)return;const be={w:ce.w,h:ce.h,x:ce.x,y:ce.y,i:L},fe=et(ie,ce,G,B,!0,D,H,A,F);h(fe,oe,ce,be,Z.e,Z.node),ue(N.compact(fe,A)),we(be)},[D,H,A,F,N,h]),$t=C.useCallback((L,G,B,Z)=>{if(!Ee)return;const ie=je.current,oe=it.current,ce=Ze(ie,L);if(!ce)return;const be=et(ie,ce,G,B,!0,D,H,A,F),fe=N.compact(be,A);y(fe,oe,ce,null,Z.e,Z.node);const Se=Ue.current;it.current=null,Ue.current=null,we(null),ue(fe),Se&&!We(Se,fe)&&a(fe)},[Ee,D,H,A,F,N,y,a]),re=C.useCallback((L,G,B,Z)=>{const ie=je.current,oe=Ze(ie,L);oe&&(lt.current=Qe(oe),Ue.current=ie,Wt(!0),S(ie,oe,oe,null,Z.e,Z.node))},[S]),ne=C.useCallback((L,G,B,Z)=>{const ie=je.current,oe=lt.current,{handle:ce}=Z;let be=!1,fe,Se;const[Bt,He]=$n(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),D&&!F&&Dr(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 xt=Bt;be&&fe!==void 0&&Se!==void 0&&(xt=et(Bt,He,fe,Se,!0,D,H,A,F));const Ft={w:He.w,h:He.h,x:He.x,y:He.y,i:L,static:!0};b(xt,oe,He,Ft,Z.e,Z.node),ue(N.compact(xt,A)),we(Ft)},[D,H,A,F,N,b]),he=C.useCallback((L,G,B,Z)=>{const ie=je.current,oe=lt.current,ce=Ze(ie,L),be=N.compact(ie,A);E(be,oe,ce??null,null,Z.e,Z.node);const fe=Ue.current;lt.current=null,Ue.current=null,we(null),Wt(!1),ue(be),fe&&!We(fe,be)&&a(be)},[A,N,E,a]),se=C.useCallback(()=>{const L=je.current;if(!L.some(Z=>Z.i===ae.i)){st(null),we(null),Ne(void 0);return}const B=N.compact(L.filter(Z=>Z.i!==ae.i),A);ue(B),st(null),we(null),Ne(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=W?W(L.nativeEvent):x(L);if(G===!1)return Ie&&se(),!1;const{dragOffsetX:B=0,dragOffsetY:Z=0,...ie}=G??{},oe={...ae,...ie},ce=L.currentTarget.getBoundingClientRect(),be={cols:A,margin:U,maxRows:K,rowHeight:$,containerWidth:r,containerPadding:ye},fe=rt(be),Se=nt(oe.w,fe,U[0]),Bt=nt(oe.h,$,U[1]),He=Se/2,xt=Bt/2,Ft=L.clientX-ce.left+B-He,pe=L.clientY-ce.top+Z-xt,wr=Math.max(0,Ft),Xt=Math.max(0,pe),Ut={left:wr/Re,top:Xt/Re,e:L.nativeEvent};if(Ie)Xe&&(Xe.left!==Ut.left||Xe.top!==Ut.top)&&Ne(Ut);else{const Sr=Wn(be,Xt,wr,oe.w,oe.h);st(z.jsx("div",{},oe.i)),Ne(Ut),ue([...je.current,{...oe,x:Sr.x,y:Sr.y,static:!1,isDraggable:!0}])}},[Ie,Xe,ae,W,x,se,Re,A,U,K,$,r,ye]),Pe=C.useCallback(L=>{L.preventDefault(),L.stopPropagation(),Le.current--,Le.current<0&&(Le.current=0),Le.current===0&&se()},[se]),_e=C.useCallback(L=>{L.preventDefault(),L.stopPropagation(),Le.current++},[]),Oe=C.useCallback(L=>{L.preventDefault(),L.stopPropagation();const G=je.current,B=G.find(Z=>Z.i===ae.i);Le.current=0,se(),g(G,B,L.nativeEvent)},[ae.i,se,g]),Me=C.useCallback((L,G)=>{if(!L||!L.key)return null;const B=Ze(de,String(L.key));if(!B)return null;const Z=typeof B.isDraggable=="boolean"?B.isDraggable:!B.static&&le,ie=typeof B.isResizable=="boolean"?B.isResizable:!B.static&&k,oe=B.resizeHandles||[...M],ce=Z&&me&&B.isBounded!==!1,be=X;return z.jsx(Tn,{containerWidth:r,cols:A,margin:U,containerPadding:ye,maxRows:K,rowHeight:$,cancel:f,handle:P,onDragStart:Yt,onDrag:Ge,onDragStop:$t,onResizeStart:re,onResize:ne,onResizeStop:he,isDraggable:Z,isResizable:ie,isBounded:ce,useCSSTransforms:De&&Ce,usePercentages:!Ce,transformScale:Re,positionStrategy:u,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?Xe:void 0,resizeHandles:oe,resizeHandle:be,constraints:v,layoutItem:B,layout:de,children:L},B.i)},[de,r,A,U,ye,K,$,f,P,Yt,Ge,$t,re,ne,he,le,k,me,De,Ce,Re,u,j,Xe,M,X,v]),ze=()=>Ee?z.jsx(Tn,{w:Ee.w,h:Ee.h,x:Ee.x,y:Ee.y,i:Ee.i,className:`react-grid-placeholder ${ke?"placeholder-resizing":""}`,containerWidth:r,cols:A,margin:U,containerPadding:ye,maxRows:K,rowHeight:$,isDraggable:!1,isResizable:!1,isBounded:!1,useCSSTransforms:De,transformScale:Re,constraints:v,layout:de,children:z.jsx("div",{})}):null,Ve=Gt(Mn,O),Je={height:xr,..._};return z.jsxs("div",{ref:c,className:Ve,style:Je,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&&Ie&&Me(Ie,!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 u=String(l.key),d=e.find(v=>v.i===u);if(d)o.push({...d,i:u});else{const m=l.props["data-grid"];m?o.push({i:u,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:u,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:u=150,maxRows:d=1/0,margin:v=[10,10],containerPadding:m=null,compactor:p,onBreakpointChange:w=mr,onLayoutChange:O=mr,onWidthChange:_=mr,...c}=e,a=p??or("vertical"),s=a.type,h=a.allowOverlap,y=C.useMemo(()=>n??qr(o,r),[]),S=C.useMemo(()=>Hr(y,i),[y,i]),b=C.useMemo(()=>ar(l,o,y,y,S,s),[]),[E,g]=C.useState(y),[x,R]=C.useState(S),[Y,q]=C.useState(b),[V,A]=C.useState(l),$=C.useRef(r),K=C.useRef(n),U=C.useRef(o),J=C.useRef(i),le=C.useRef(l),me=C.useRef(s),P=C.useRef(V);C.useEffect(()=>{P.current=V},[V]);const f=C.useMemo(()=>We(l,le.current)?null:ar(l,o,E,E,x,a),[l,o,E,x,a]),j=f??Y;C.useEffect(()=>{f!==null&&(q(f),A(l),P.current=l,le.current=l)},[f,l]),C.useEffect(()=>{if(s!==me.current){const T=a.compact($e(j),x),W={...P.current,[E]:T};q(T),A(W),P.current=W,O(T,W),me.current=s}},[s,a,j,x,h,E,O]),C.useEffect(()=>{const T=r!==$.current,W=n!==K.current,N=!We(o,U.current),H=!We(i,J.current);if(T||W||N||H){const F=n??qr(o,r),D=Hr(F,i),ae=E;if(ae!==F||N||H){const ye={...P.current};ye[ae]||(ye[ae]=$e(Y));let Ce=ar(ye,o,F,ae,D,a);Ce=Vo(Ce,t,D,a),ye[F]=Ce,g(F),R(D),q(Ce),A(ye),P.current=ye,w(F,D),O(Ce,ye)}const De=Dt(v,F),Re=m?Dt(m,F):null;_(r,De,D,Re),$.current=r,K.current=n,U.current=o,J.current=i}},[r,n,o,i,E,x,Y,t,a,s,h,v,m,w,O,_]);const k=C.useCallback(T=>{const N={...P.current,[E]:T};q(T),A(N),P.current=N,O(T,N)},[E,O]),M=C.useMemo(()=>Dt(v,E),[v,E]),X=C.useMemo(()=>m===null?null:Dt(m,E),[m,E]),I=C.useMemo(()=>({cols:x,rowHeight:u,maxRows:d,margin:M,containerPadding:X}),[x,u,d,M,X]);return z.jsx(Xo,{...c,width:r,gridConfig:I,compactor:a,onLayoutChange:k,layout:j,children:t})}const Ko=["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"})=>{const{width:o,containerRef:i,mounted:l}=jo(),[u,d]=tt.useState(!1),[v,m]=tt.useState(()=>{if(typeof window<"u"&&n){const c=localStorage.getItem(n);if(c)try{return JSON.parse(c)}catch(a){console.error("Failed to parse saved layout:",a)}}return{lg:e.widgets?.map((c,a)=>({i:c.id||`widget-${a}`,x:c.layout?.x||a%4*3,y:c.layout?.y||Math.floor(a/4)*4,w:c.layout?.w||3,h:c.layout?.h||4}))||[]}}),p=tt.useCallback((c,a)=>{m(a),r?.(c)},[r]),w=tt.useCallback(()=>{typeof window<"u"&&n&&localStorage.setItem(n,JSON.stringify(v)),d(!1)},[v,n]),O=tt.useCallback(()=>{const c={lg:e.widgets?.map((a,s)=>({i:a.id||`widget-${s}`,x:a.layout?.x||s%4*3,y:a.layout?.y||Math.floor(s/4)*4,w:a.layout?.w||3,h:a.layout?.h||4}))||[]};m(c),typeof window<"u"&&n&&localStorage.removeItem(n)},[e.widgets,n]),_=tt.useCallback(c=>{if(c.component)return c.component;const a=c.type;if(a==="bar"||a==="line"||a==="area"||a==="pie"||a==="donut"){const s=Array.isArray(c.data)?c.data:c.data?.items||[],h=c.options||{},y=h.xField||"name",S=h.yField||"value";return{type:"chart",chartType:a,data:s,xAxisKey:y,series:[{dataKey:S}],colors:Ko,className:"h-full"}}return a==="table"?{type:"data-table",...c.options,data:c.data?.items||[],searchable:!1,pagination:!1,className:"border-0"}:c},[]);return z.jsxs("div",{ref:i,className:Q.cn("w-full",t),"data-testid":"grid-layout",children:[z.jsxs("div",{className:"mb-4 flex items-center justify-between",children:[z.jsx("h2",{className:"text-2xl font-bold",children:e.title||"Dashboard"}),z.jsx("div",{className:"flex gap-2",children:u?z.jsxs(z.Fragment,{children:[z.jsxs(Q.Button,{onClick:w,size:"sm",variant:"default",children:[z.jsx(Te.Save,{className:"h-4 w-4 mr-2"}),"Save Layout"]}),z.jsxs(Q.Button,{onClick:O,size:"sm",variant:"outline",children:[z.jsx(Te.X,{className:"h-4 w-4 mr-2"}),"Reset"]}),z.jsx(Q.Button,{onClick:()=>d(!1),size:"sm",variant:"ghost",children:"Cancel"})]}):z.jsxs(Q.Button,{onClick:()=>d(!0),size:"sm",variant:"outline",children:[z.jsx(Te.Edit,{className:"h-4 w-4 mr-2"}),"Edit Layout"]})})]}),l&&z.jsx(Jo,{className:"layout",width:o,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:p,children:e.widgets?.map((c,a)=>{const s=c.id||`widget-${a}`,h=_(c),y=c.type==="metric";return z.jsx("div",{className:"h-full",children:y?z.jsxs("div",{className:"h-full w-full relative",children:[u&&z.jsx("div",{className:"drag-handle absolute top-2 right-2 z-10 cursor-move p-1 bg-background/80 rounded border border-border",children:z.jsx(Te.GripVertical,{className:"h-4 w-4"})}),z.jsx(wt.SchemaRenderer,{schema:h,className:"h-full w-full"})]}):z.jsxs(Q.Card,{className:Q.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&&z.jsxs(Q.CardHeader,{className:"pb-2 border-b border-border/40 bg-muted/20 flex flex-row items-center justify-between",children:[z.jsx(Q.CardTitle,{className:"text-base font-medium tracking-tight truncate",title:c.title,children:c.title}),u&&z.jsx("div",{className:"drag-handle cursor-move p-1 hover:bg-muted/40 rounded",children:z.jsx(Te.GripVertical,{className:"h-4 w-4"})})]}),z.jsx(Q.CardContent,{className:"p-0 h-full",children:z.jsx("div",{className:Q.cn("h-full w-full overflow-auto p-4"),children:z.jsx(wt.SchemaRenderer,{schema:h})})})]})},s)})})]})},vr=({label:e,value:t,trend:r,icon:n,className:o,description:i,...l})=>{const u=C.useMemo(()=>{if(typeof n=="string"){const d=Pr[n];return d?z.jsx(d,{className:"h-4 w-4 text-muted-foreground"}):null}return n},[n]);return z.jsxs(Q.Card,{className:Q.cn("h-full",o),...l,children:[z.jsxs(Q.CardHeader,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[z.jsx(Q.CardTitle,{className:"text-sm font-medium",children:e}),u&&z.jsx("div",{className:"h-4 w-4 text-muted-foreground",children:u})]}),z.jsxs(Q.CardContent,{children:[z.jsx("div",{className:"text-2xl font-bold",children:t}),(r||i)&&z.jsxs("p",{className:"text-xs text-muted-foreground flex items-center mt-1",children:[r&&z.jsxs("span",{className:Q.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"&&z.jsx(Te.ArrowUpIcon,{className:"h-3 w-3 mr-1"}),r.direction==="down"&&z.jsx(Te.ArrowDownIcon,{className:"h-3 w-3 mr-1"}),r.direction==="neutral"&&z.jsx(Te.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,...u})=>{const d=r&&Pr[r];return z.jsxs(Q.Card,{className:Q.cn("h-full",l),...u,children:[z.jsxs(Q.CardHeader,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[z.jsx(Q.CardTitle,{className:"text-sm font-medium",children:e}),d&&z.jsx(d,{className:"h-4 w-4 text-muted-foreground"})]}),z.jsxs(Q.CardContent,{children:[z.jsx("div",{className:"text-2xl font-bold",children:t}),(n||o||i)&&z.jsxs("p",{className:"text-xs text-muted-foreground flex items-center mt-1",children:[n&&o&&z.jsxs("span",{className:Q.cn("flex items-center mr-2",n==="up"&&"text-green-500",n==="down"&&"text-red-500",n==="neutral"&&"text-yellow-500"),children:[n==="up"&&z.jsx(Te.ArrowUpIcon,{className:"h-3 w-3 mr-1"}),n==="down"&&z.jsx(Te.ArrowDownIcon,{className:"h-3 w-3 mr-1"}),n==="neutral"&&z.jsx(Te.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 Zo={DashboardRenderer:Vt,DashboardGridLayout:yr,MetricWidget:vr,MetricCard:br};xe.DashboardGridLayout=yr,xe.DashboardRenderer=Vt,xe.MetricCard=br,xe.MetricWidget=vr,xe.dashboardComponents=Zo,Object.defineProperty(xe,Symbol.toStringTag,{value:"Module"})}));
|
|
9
|
+
`,p.getElementsByTagName("head")[0].appendChild(x)),p.body&&u(p.body,"react-draggable-transparent-selection")}function b(p){window.requestAnimationFrame?window.requestAnimationFrame(()=>{S(p)}):S(p)}function S(p){if(p)try{if(p.body&&w(p.body,"react-draggable-transparent-selection"),p.selection)p.selection.empty();else{const x=(p.defaultView||window).getSelection();x&&x.type!=="Caret"&&x.removeAllRanges()}}catch{}}function u(p,x){p.classList?p.classList.add(x):p.className.match(new RegExp(`(?:^|\\s)${x}(?!\\S)`))||(p.className+=` ${x}`)}function w(p,x){p.classList?p.classList.remove(x):p.className=p.className.replace(new RegExp(`(?:^|\\s)${x}(?!\\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=s,Ie.createCoreData=d,Ie.createDraggableData=c,Ie.getBoundPosition=r,Ie.getControlPosition=l,Ie.snapToGrid=n;var e=At(),t=hr();function r(h,C,P){if(!h.props.bounds)return[C,P];let{bounds:D}=h.props;D=typeof D=="string"?D:v(D);const y=m(h);if(typeof D=="string"){const{ownerDocument:a}=y,i=a.defaultView;let g;if(D==="parent"?g=y.parentNode:g=y.getRootNode().querySelector(D),!(g instanceof i.HTMLElement))throw new Error('Bounds selector "'+D+'" could not find an element.');const b=g,S=i.getComputedStyle(y),u=i.getComputedStyle(b);D={left:-y.offsetLeft+(0,e.int)(u.paddingLeft)+(0,e.int)(S.marginLeft),top:-y.offsetTop+(0,e.int)(u.paddingTop)+(0,e.int)(S.marginTop),right:(0,t.innerWidth)(b)-(0,t.outerWidth)(y)-y.offsetLeft+(0,e.int)(u.paddingRight)-(0,e.int)(S.marginRight),bottom:(0,t.innerHeight)(b)-(0,t.outerHeight)(y)-y.offsetTop+(0,e.int)(u.paddingBottom)-(0,e.int)(S.marginBottom)}}return(0,e.isNum)(D.right)&&(C=Math.min(C,D.right)),(0,e.isNum)(D.bottom)&&(P=Math.min(P,D.bottom)),(0,e.isNum)(D.left)&&(C=Math.max(C,D.left)),(0,e.isNum)(D.top)&&(P=Math.max(P,D.top)),[C,P]}function n(h,C,P){const D=Math.round(C/h[0])*h[0],y=Math.round(P/h[1])*h[1];return[D,y]}function o(h){return h.props.axis==="both"||h.props.axis==="x"}function s(h){return h.props.axis==="both"||h.props.axis==="y"}function l(h,C,P){const D=typeof C=="number"?(0,t.getTouch)(h,C):null;if(typeof C=="number"&&!D)return null;const y=m(P),a=P.props.offsetParent||y.offsetParent||y.ownerDocument.body;return(0,t.offsetXYFromParent)(D||h,a,P.props.scale)}function d(h,C,P){const D=!(0,e.isNum)(h.lastX),y=m(h);return D?{node:y,deltaX:0,deltaY:0,lastX:C,lastY:P,x:C,y:P}:{node:y,deltaX:C-h.lastX,deltaY:P-h.lastY,lastX:h.lastX,lastY:h.lastY,x:C,y:P}}function c(h,C){const P=h.props.scale;return{node:C.node,x:h.state.x+C.deltaX/P,y:h.state.y+C.deltaY/P,deltaX:C.deltaX/P,deltaY:C.deltaY/P,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 m(h){const C=h.findDOMNode();if(!C)throw new Error("<DraggableCore>: Unmounted during event!");return C}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=c(E),t=d(Nt()),r=d(Cr),n=hr(),o=vn(),s=At(),l=d(xn());function d(y){return y&&y.__esModule?y:{default:y}}function c(y,a){if(typeof WeakMap=="function")var i=new WeakMap,g=new WeakMap;return(c=function(b,S){if(!S&&b&&b.__esModule)return b;var u,w,p={__proto__:null,default:b};if(b===null||typeof b!="object"&&typeof b!="function")return p;if(u=S?g:i){if(u.has(b))return u.get(b);u.set(b,p)}for(const x in b)x!=="default"&&{}.hasOwnProperty.call(b,x)&&((w=(u=Object.defineProperty)&&Object.getOwnPropertyDescriptor(b,x))&&(w.get||w.set)?u(p,x,w):p[x]=b[x]);return p})(y,a)}function v(y,a,i){return(a=m(a))in y?Object.defineProperty(y,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):y[a]=i,y}function m(y){var a=h(y,"string");return typeof a=="symbol"?a:a+""}function h(y,a){if(typeof y!="object"||!y)return y;var i=y[Symbol.toPrimitive];if(i!==void 0){var g=i.call(y,a);if(typeof g!="object")return g;throw new TypeError("@@toPrimitive must return a primitive value.")}return(a==="string"?String:Number)(y)}const C={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}};let P=C.mouse,D=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",a=>{if(this.props.onMouseDown(a),!this.props.allowAnyClick&&typeof a.button=="number"&&a.button!==0)return!1;const i=this.findDOMNode();if(!i||!i.ownerDocument||!i.ownerDocument.body)throw new Error("<DraggableCore> not mounted on DragStart!");const{ownerDocument:g}=i;if(this.props.disabled||!(a.target instanceof g.defaultView.Node)||this.props.handle&&!(0,n.matchesSelectorAndParentsTo)(a.target,this.props.handle,i)||this.props.cancel&&(0,n.matchesSelectorAndParentsTo)(a.target,this.props.cancel,i))return;a.type==="touchstart"&&!this.props.allowMobileScroll&&a.preventDefault();const b=(0,n.getTouchIdentifier)(a);this.touchIdentifier=b;const S=(0,o.getControlPosition)(a,b,this);if(S==null)return;const{x:u,y:w}=S,p=(0,o.createCoreData)(this,u,w);(0,l.default)("DraggableCore: handleDragStart: %j",p),(0,l.default)("calling",this.props.onStart),!(this.props.onStart(a,p)===!1||this.mounted===!1)&&(this.props.enableUserSelectHack&&(0,n.addUserSelectStyles)(g),this.dragging=!0,this.lastX=u,this.lastY=w,(0,n.addEvent)(g,P.move,this.handleDrag),(0,n.addEvent)(g,P.stop,this.handleDragStop))}),v(this,"handleDrag",a=>{const i=(0,o.getControlPosition)(a,this.touchIdentifier,this);if(i==null)return;let{x:g,y:b}=i;if(Array.isArray(this.props.grid)){let w=g-this.lastX,p=b-this.lastY;if([w,p]=(0,o.snapToGrid)(this.props.grid,w,p),!w&&!p)return;g=this.lastX+w,b=this.lastY+p}const S=(0,o.createCoreData)(this,g,b);if((0,l.default)("DraggableCore: handleDrag: %j",S),this.props.onDrag(a,S)===!1||this.mounted===!1){try{this.handleDragStop(new MouseEvent("mouseup"))}catch{const p=document.createEvent("MouseEvents");p.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),this.handleDragStop(p)}return}this.lastX=g,this.lastY=b}),v(this,"handleDragStop",a=>{if(!this.dragging)return;const i=(0,o.getControlPosition)(a,this.touchIdentifier,this);if(i==null)return;let{x:g,y:b}=i;if(Array.isArray(this.props.grid)){let p=g-this.lastX||0,x=b-this.lastY||0;[p,x]=(0,o.snapToGrid)(this.props.grid,p,x),g=this.lastX+p,b=this.lastY+x}const S=(0,o.createCoreData)(this,g,b);if(this.props.onStop(a,S)===!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",S),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))}),v(this,"onMouseDown",a=>(P=C.mouse,this.handleDragStart(a))),v(this,"onMouseUp",a=>(P=C.mouse,this.handleDragStop(a))),v(this,"onTouchStart",a=>(P=C.touch,this.handleDragStart(a))),v(this,"onTouchEnd",a=>(P=C.touch,this.handleDragStop(a)))}componentDidMount(){this.mounted=!0;const a=this.findDOMNode();a&&(0,n.addEvent)(a,C.touch.start,this.onTouchStart,{passive:!1})}componentWillUnmount(){this.mounted=!1;const a=this.findDOMNode();if(a){const{ownerDocument:i}=a;(0,n.removeEvent)(i,C.mouse.move,this.handleDrag),(0,n.removeEvent)(i,C.touch.move,this.handleDrag),(0,n.removeEvent)(i,C.mouse.stop,this.handleDragStop),(0,n.removeEvent)(i,C.touch.stop,this.handleDragStop),(0,n.removeEvent)(a,C.touch.start,this.onTouchStart,{passive:!1}),this.props.enableUserSelectHack&&(0,n.scheduleRemoveUserSelectStyles)(i)}}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,v(D,"displayName","DraggableCore"),v(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(y,a){if(y[a]&&y[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:s.dontSetMe,style:s.dontSetMe,transform:s.dontSetMe}),v(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 c.default}}),e.default=void 0;var t=h(E),r=m(Nt()),n=m(Cr),o=Gt,s=hr(),l=vn(),d=At(),c=m(Lo()),v=m(xn());function m(i){return i&&i.__esModule?i:{default:i}}function h(i,g){if(typeof WeakMap=="function")var b=new WeakMap,S=new WeakMap;return(h=function(u,w){if(!w&&u&&u.__esModule)return u;var p,x,R={__proto__:null,default:u};if(u===null||typeof u!="object"&&typeof u!="function")return R;if(p=w?S:b){if(p.has(u))return p.get(u);p.set(u,R)}for(const H in u)H!=="default"&&{}.hasOwnProperty.call(u,H)&&((x=(p=Object.defineProperty)&&Object.getOwnPropertyDescriptor(u,H))&&(x.get||x.set)?p(R,H,x):R[H]=u[H]);return R})(i,g)}function C(){return C=Object.assign?Object.assign.bind():function(i){for(var g=1;g<arguments.length;g++){var b=arguments[g];for(var S in b)({}).hasOwnProperty.call(b,S)&&(i[S]=b[S])}return i},C.apply(null,arguments)}function P(i,g,b){return(g=D(g))in i?Object.defineProperty(i,g,{value:b,enumerable:!0,configurable:!0,writable:!0}):i[g]=b,i}function D(i){var g=y(i,"string");return typeof g=="symbol"?g:g+""}function y(i,g){if(typeof i!="object"||!i)return i;var b=i[Symbol.toPrimitive];if(b!==void 0){var S=b.call(i,g);if(typeof S!="object")return S;throw new TypeError("@@toPrimitive must return a primitive value.")}return(g==="string"?String:Number)(i)}class a extends t.Component{static getDerivedStateFromProps(g,b){let{position:S}=g,{prevPropsPosition:u}=b;return S&&(!u||S.x!==u.x||S.y!==u.y)?((0,v.default)("Draggable: getDerivedStateFromProps %j",{position:S,prevPropsPosition:u}),{x:S.x,y:S.y,prevPropsPosition:{...S}}):null}constructor(g){super(g),P(this,"onDragStart",(b,S)=>{if((0,v.default)("Draggable: onDragStart: %j",S),this.props.onStart(b,(0,l.createDraggableData)(this,S))===!1)return!1;this.setState({dragging:!0,dragged:!0})}),P(this,"onDrag",(b,S)=>{if(!this.state.dragging)return!1;(0,v.default)("Draggable: onDrag: %j",S);const u=(0,l.createDraggableData)(this,S),w={x:u.x,y:u.y,slackX:0,slackY:0};if(this.props.bounds){const{x,y:R}=w;w.x+=this.state.slackX,w.y+=this.state.slackY;const[H,q]=(0,l.getBoundPosition)(this,w.x,w.y);w.x=H,w.y=q,w.slackX=this.state.slackX+(x-w.x),w.slackY=this.state.slackY+(R-w.y),u.x=w.x,u.y=w.y,u.deltaX=w.x-this.state.x,u.deltaY=w.y-this.state.y}if(this.props.onDrag(b,u)===!1)return!1;this.setState(w)}),P(this,"onDragStop",(b,S)=>{if(!this.state.dragging||this.props.onStop(b,(0,l.createDraggableData)(this,S))===!1)return!1;(0,v.default)("Draggable: onDragStop: %j",S);const w={dragging:!1,slackX:0,slackY:0};if(!!this.props.position){const{x,y:R}=this.props.position;w.x=x,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:S,defaultPosition:u,defaultClassName:w,defaultClassNameDragging:p,defaultClassNameDragged:x,position:R,positionOffset:H,scale:q,...J}=this.props;let A={},Y=null;const U=!!!R||this.state.dragging,K=R||u,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,s.createSVGTransform)(le,H):A=(0,s.createCSSTransform)(le,H);const me=(0,o.clsx)(S.props.className||"",w,{[p]:this.state.dragging,[x]:this.state.dragged});return t.createElement(c.default,C({},J,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),t.cloneElement(t.Children.only(S),{className:me,style:{...S.props.style,...A},transform:Y}))}}e.default=a,P(a,"displayName","Draggable"),P(a,"propTypes",{...c.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:d.dontSetMe,style:d.dontSetMe,transform:d.dontSetMe}),P(a,"defaultProps",{...c.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 Cn;function gr(){if(Cn)return pt.exports;Cn=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={},En;function $o(){if(En)return Lt;En=1,Lt.__esModule=!0,Lt.cloneElement=d;var e=t(E);function t(c){return c&&c.__esModule?c:{default:c}}function r(c,v){var m=Object.keys(c);if(Object.getOwnPropertySymbols){var h=Object.getOwnPropertySymbols(c);v&&(h=h.filter(function(C){return Object.getOwnPropertyDescriptor(c,C).enumerable})),m.push.apply(m,h)}return m}function n(c){for(var v=1;v<arguments.length;v++){var m=arguments[v]!=null?arguments[v]:{};v%2?r(Object(m),!0).forEach(function(h){o(c,h,m[h])}):Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(m)):r(Object(m)).forEach(function(h){Object.defineProperty(c,h,Object.getOwnPropertyDescriptor(m,h))})}return c}function o(c,v,m){return(v=s(v))in c?Object.defineProperty(c,v,{value:m,enumerable:!0,configurable:!0,writable:!0}):c[v]=m,c}function s(c){var v=l(c,"string");return typeof v=="symbol"?v:v+""}function l(c,v){if(typeof c!="object"||!c)return c;var m=c[Symbol.toPrimitive];if(m!==void 0){var h=m.call(c,v);if(typeof h!="object")return h;throw new TypeError("@@toPrimitive must return a primitive value.")}return(v==="string"?String:Number)(c)}function d(c,v){return v.style&&c.props.style&&(v.style=n(n({},c.props.style),v.style)),v.className&&c.props.className&&(v.className=`${c.props.className} ${v.className}`),e.default.cloneElement(c,v)}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[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),o=0;o<r;o++)n[o]=arguments[o];const[s]=n;return s.axis==="both"||s.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=s(E),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 s(y,a){if(typeof WeakMap=="function")var i=new WeakMap,g=new WeakMap;return(s=function(b,S){if(!S&&b&&b.__esModule)return b;var u,w,p={__proto__:null,default:b};if(b===null||typeof b!="object"&&typeof b!="function")return p;if(u=S?g:i){if(u.has(b))return u.get(b);u.set(b,p)}for(const x in b)x!=="default"&&{}.hasOwnProperty.call(b,x)&&((w=(u=Object.defineProperty)&&Object.getOwnPropertyDescriptor(b,x))&&(w.get||w.set)?u(p,x,w):p[x]=b[x]);return p})(y,a)}function l(){return l=Object.assign?Object.assign.bind():function(y){for(var a=1;a<arguments.length;a++){var i=arguments[a];for(var g in i)({}).hasOwnProperty.call(i,g)&&(y[g]=i[g])}return y},l.apply(null,arguments)}function d(y,a){if(y==null)return{};var i,g,b=c(y,a);if(Object.getOwnPropertySymbols){var S=Object.getOwnPropertySymbols(y);for(g=0;g<S.length;g++)i=S[g],a.indexOf(i)===-1&&{}.propertyIsEnumerable.call(y,i)&&(b[i]=y[i])}return b}function c(y,a){if(y==null)return{};var i={};for(var g in y)if({}.hasOwnProperty.call(y,g)){if(a.indexOf(g)!==-1)continue;i[g]=y[g]}return i}function v(y,a){var i=Object.keys(y);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(y);a&&(g=g.filter(function(b){return Object.getOwnPropertyDescriptor(y,b).enumerable})),i.push.apply(i,g)}return i}function m(y){for(var a=1;a<arguments.length;a++){var i=arguments[a]!=null?arguments[a]:{};a%2?v(Object(i),!0).forEach(function(g){h(y,g,i[g])}):Object.getOwnPropertyDescriptors?Object.defineProperties(y,Object.getOwnPropertyDescriptors(i)):v(Object(i)).forEach(function(g){Object.defineProperty(y,g,Object.getOwnPropertyDescriptor(i,g))})}return y}function h(y,a,i){return(a=C(a))in y?Object.defineProperty(y,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):y[a]=i,y}function C(y){var a=P(y,"string");return typeof a=="symbol"?a:a+""}function P(y,a){if(typeof y!="object"||!y)return y;var i=y[Symbol.toPrimitive];if(i!==void 0){var g=i.call(y,a);if(typeof g!="object")return g;throw new TypeError("@@toPrimitive must return a primitive value.")}return(a==="string"?String:Number)(y)}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,i){const{minConstraints:g,maxConstraints:b,lockAspectRatio:S}=this.props;if(!g&&!b&&!S)return[a,i];if(S){const R=this.props.width/this.props.height,H=a-this.props.width,q=i-this.props.height;Math.abs(H)>Math.abs(q*R)?i=a/R:a=i*R}const[u,w]=[a,i];let[p,x]=this.slack||[0,0];return a+=p,i+=x,g&&(a=Math.max(g[0],a),i=Math.max(g[1],i)),b&&(a=Math.min(b[0],a),i=Math.min(b[1],i)),this.slack=[p+(u-a),x+(w-i)],[a,i]}resizeHandler(a,i){return(g,b)=>{let{node:S,deltaX:u,deltaY:w}=b;a==="onResizeStart"&&this.resetData();const p=(this.props.axis==="both"||this.props.axis==="x")&&i!=="n"&&i!=="s",x=(this.props.axis==="both"||this.props.axis==="y")&&i!=="e"&&i!=="w";if(!p&&!x)return;const R=i[0],H=i[i.length-1],q=S.getBoundingClientRect();if(this.lastHandleRect!=null){if(H==="w"){const K=q.left-this.lastHandleRect.left;u+=K}if(R==="n"){const K=q.top-this.lastHandleRect.top;w+=K}}this.lastHandleRect=q,H==="w"&&(u=-u),R==="n"&&(w=-w);let J=this.props.width+(p?u/this.props.transformScale:0),A=this.props.height+(x?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:S,size:{width:J,height:A},handle:i})),a==="onResizeStop"&&this.resetData()}}renderResizeHandle(a,i){const{handle:g}=this.props;if(!g)return e.createElement("span",{className:`react-resizable-handle react-resizable-handle-${a}`,ref:i});if(typeof g=="function")return g(a,i);const b=typeof g.type=="string",S=m({ref:i},b?{}:{handleAxis:a});return e.cloneElement(g,S)}render(){const a=this.props,{children:i,className:g,draggableOpts:b,width:S,height:u,handle:w,handleSize:p,lockAspectRatio:x,axis:R,minConstraints:H,maxConstraints:q,onResize:J,onResizeStop:A,onResizeStart:Y,resizeHandles:Z,transformScale:U}=a,K=d(a,o);return(0,r.cloneElement)(i,m(m({},K),{},{className:`${g?`${g} `:""}react-resizable`,children:[...e.Children.toArray(i.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(E),t=s(Nt()),r=s(Dn()),n=On();const o=["handle","handleSize","onResize","onResizeStart","onResizeStop","draggableOpts","minConstraints","maxConstraints","lockAspectRatio","axis","width","height","resizeHandles","style","transformScale"];function s(a){return a&&a.__esModule?a:{default:a}}function l(a,i){if(typeof WeakMap=="function")var g=new WeakMap,b=new WeakMap;return(l=function(S,u){if(!u&&S&&S.__esModule)return S;var w,p,x={__proto__:null,default:S};if(S===null||typeof S!="object"&&typeof S!="function")return x;if(w=u?b:g){if(w.has(S))return w.get(S);w.set(S,x)}for(const R in S)R!=="default"&&{}.hasOwnProperty.call(S,R)&&((p=(w=Object.defineProperty)&&Object.getOwnPropertyDescriptor(S,R))&&(p.get||p.set)?w(x,R,p):x[R]=S[R]);return x})(a,i)}function d(){return d=Object.assign?Object.assign.bind():function(a){for(var i=1;i<arguments.length;i++){var g=arguments[i];for(var b in g)({}).hasOwnProperty.call(g,b)&&(a[b]=g[b])}return a},d.apply(null,arguments)}function c(a,i){var g=Object.keys(a);if(Object.getOwnPropertySymbols){var b=Object.getOwnPropertySymbols(a);i&&(b=b.filter(function(S){return Object.getOwnPropertyDescriptor(a,S).enumerable})),g.push.apply(g,b)}return g}function v(a){for(var i=1;i<arguments.length;i++){var g=arguments[i]!=null?arguments[i]:{};i%2?c(Object(g),!0).forEach(function(b){m(a,b,g[b])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(g)):c(Object(g)).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(g,b))})}return a}function m(a,i,g){return(i=h(i))in a?Object.defineProperty(a,i,{value:g,enumerable:!0,configurable:!0,writable:!0}):a[i]=g,a}function h(a){var i=C(a,"string");return typeof i=="symbol"?i:i+""}function C(a,i){if(typeof a!="object"||!a)return a;var g=a[Symbol.toPrimitive];if(g!==void 0){var b=g.call(a,i);if(typeof b!="object")return b;throw new TypeError("@@toPrimitive must return a primitive value.")}return(i==="string"?String:Number)(a)}function P(a,i){if(a==null)return{};var g,b,S=D(a,i);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(a);for(b=0;b<u.length;b++)g=u[b],i.indexOf(g)===-1&&{}.propertyIsEnumerable.call(a,g)&&(S[g]=a[g])}return S}function D(a,i){if(a==null)return{};var g={};for(var b in a)if({}.hasOwnProperty.call(a,b)){if(i.indexOf(b)!==-1)continue;g[b]=a[b]}return g}let y=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=(i,g)=>{const{size:b}=g;this.props.onResize?(i.persist?.(),this.setState(b,()=>this.props.onResize&&this.props.onResize(i,g))):this.setState(b)}}static getDerivedStateFromProps(i,g){return g.propsWidth!==i.width||g.propsHeight!==i.height?{width:i.width,height:i.height,propsWidth:i.width,propsHeight:i.height}:null}render(){const i=this.props,{handle:g,handleSize:b,onResize:S,onResizeStart:u,onResizeStop:w,draggableOpts:p,minConstraints:x,maxConstraints:R,lockAspectRatio:H,axis:q,width:J,height:A,resizeHandles:Y,style:Z,transformScale:U}=i,K=P(i,o);return e.createElement(r.default,{axis:q,draggableOpts:p,handle:g,handleSize:b,height:this.state.height,lockAspectRatio:H,maxConstraints:R,minConstraints:x,onResizeStart:u,onResize:this.onResize,onResizeStop:w,resizeHandles:Y,transformScale:U,width:this.state.width},e.createElement("div",d({},K,{style:v(v({},Z),{},{width:this.state.width+"px",height:this.state.height+"px"})})))}};return vt.default=y,y.propTypes=v(v({},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:s,rowHeight:l,maxRows:d,isDraggable:c,isResizable:v,isBounded:m,static:h,useCSSTransforms:C=!0,usePercentages:P=!1,transformScale:D=1,positionStrategy:y,dragThreshold:a=0,droppingPosition:i,className:g="",style:b,handle:S="",cancel:u="",x:w,y:p,w:x,h:R,minW:H=1,maxW:q=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:f,onDragStop:j,onResizeStart:k,onResize:z,onResizeStop:X}=e,[I,M]=E.useState(!1),[W,N]=E.useState(!1),$=E.useRef(null),F=E.useRef({left:0,top:0}),_=E.useRef({top:0,left:0,width:0,height:0}),ae=E.useRef(void 0),je=E.useRef(me);je.current=me;const De=E.useRef(null),ye=E.useRef(null),Ce=E.useRef(!1),st=E.useRef({x:0,y:0}),de=E.useRef(!1),ue=E.useMemo(()=>({cols:r,containerPadding:s,containerWidth:n,margin:o,maxRows:d,rowHeight:l}),[r,s,n,o,d,l]),Ee=E.useMemo(()=>({cols:r,maxRows:d,containerWidth:n,containerHeight:0,rowHeight:l,margin:o,layout:[]}),[r,d,n,l,o]),we=E.useCallback(()=>({...Ee,layout:je.current}),[Ee]),Ne=E.useMemo(()=>le??{i:Y,x:w,y:p,w:x,h:R,minW:H,maxW:q,minH:J,maxH:A},[le,Y,w,p,x,R,H,q,J,A]),Wt=E.useCallback(re=>{if(y?.calcStyle)return y.calcStyle(re);if(C)return zr(re);const ne=Un(re);return P?{...ne,left:kr(re.left/n),width:kr(re.width/n)}:ne},[y,C,P,n]),Le=E.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(y?.calcDragPosition){const G=re;ze=y.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},Ce.current=!0,de.current=!1,M(!0);return}M(!0);const Je=Ct(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,y,a,K,Ne,we,Y]),it=E.useCallback((re,{node:ne,deltaX:he,deltaY:se})=>{if(!f||!I)return;const ve=re;if(Ce.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,Ce.current=!1,O){const B=Ct(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=Et(Pe,0,L);const G=nt(ue),B=n-ot(x,G,o[0]);_e=Et(_e,0,B)}}const Oe={top:Pe,left:_e};F.current=Oe;const Me=Ct(ue,Pe,_e),{x:ze,y:Je}=Rt(K,Ne,Me.x,Me.y,we());f(Y,ze,Je,{e:re,node:ne,newPosition:Oe})},[f,O,I,a,m,R,l,o,ue,n,x,Y,K,Ne,we]),Ue=E.useCallback((re,{node:ne})=>{if(!j||!I)return;const he=Ce.current;if(Ce.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=Ct(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=E.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=E.useCallback((re,ne)=>{N(!0);const he=dt(ue,w,p,x,R),se={...ne,handle:ne.handle};Ae(re,se,he,"onResizeStart")},[Ae,ue,w,p,x,R]),ut=E.useCallback((re,ne)=>{const he=dt(ue,w,p,x,R),se={...ne,handle:ne.handle};Ae(re,se,he,"onResize")},[Ae,ue,w,p,x,R]),Ge=E.useCallback((re,ne)=>{N(!1),_.current={top:0,left:0,width:0,height:0};const he=dt(ue,w,p,x,R),se={...ne,handle:ne.handle};Ae(re,se,he,"onResizeStop")},[Ae,ue,w,p,x,R]);E.useEffect(()=>{if(!i)return;const re=$.current;if(!re)return;const ne=ae.current||{left:0,top:0},he=I&&(i.left!==ne.left||i.top!==ne.top);if(I){if(he){const se=i.left-F.current.left,ve=i.top-F.current.top,Pe={node:re,deltaX:se,deltaY:ve,lastX:F.current.left,lastY:F.current.top,x:i.left,y:i.top};ye.current?.(i.e,Pe)}}else{const se={node:re,deltaX:i.left,deltaY:i.top,lastX:0,lastY:0,x:i.left,y:i.top};De.current?.(i.e,se)}ae.current=i},[i,I,Y]);const We=dt(ue,w,p,x,R,I?F.current:null,W?_.current:null),bt=E.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=E.cloneElement(bt,{ref:$,className:Gt("react-grid-item",xr,g,{static:h,resizing:W,"react-draggable":c,"react-draggable-dragging":I,dropping:!!i,cssTransforms:C}),style:{...b,...Ht,...Wt(We)}});const Yt=U;return Ve=T.jsx(Bo.Resizable,{draggableOpts:{disabled:!v},className:v?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:!c,onStart:Le,onDrag:it,onStop:Ue,handle:S,cancel:".react-resizable-handle"+(u?","+u:""),scale:D,nodeRef:$,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=E.Children.toArray(e),n=E.Children.toArray(t);if(r.length!==n.length)return!1;for(let o=0;o<r.length;o++){const s=r[o],l=n[o];if(s?.key!==l?.key)return!1}return!0}function kn(e,t,r,n){const o=[],s=new Set;E.Children.forEach(t,d=>{if(!E.isValidElement(d)||d.key===null)return;const c=String(d.key);s.add(c);const v=e.find(m=>m.i===c);if(v)o.push(et(v));else{const h=d.props["data-grid"];h?o.push({i:c,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:c,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:s,dropConfig:l,positionStrategy:d=no,compactor:c,constraints:v=Mr,layout:m=[],droppingItem:h,autoSize:C=!0,className:P="",style:D={},innerRef:y,onLayoutChange:a=$e,onDragStart:i=$e,onDrag:g=$e,onDragStop:b=$e,onResizeStart:S=$e,onResize:u=$e,onResizeStop:w=$e,onDrop:p=$e,onDropDragOver:x=$e}=e,R=E.useMemo(()=>({...oo,...n}),[n]),H=E.useMemo(()=>({...ao,...o}),[o]),q=E.useMemo(()=>({...so,...s}),[s]),J=E.useMemo(()=>({...io,...l}),[l]),{cols:A,rowHeight:Y,maxRows:Z,margin:U,containerPadding:K}=R,{enabled:le,bounded:me,handle:O,cancel:f,threshold:j}=H,{enabled:k,handles:z,handleComponent:X}=q,{enabled:I,defaultItem:M,onDragOver:W}=J,N=c??or("vertical"),$=N.type,F=N.allowOverlap,_=N.preventCollision??!1,ae=E.useMemo(()=>h??{i:"__dropping-elem__",...M},[h,M]),je=d.type==="transform",De=d.scale,ye=K??U,[Ce,st]=E.useState(!1),[de,ue]=E.useState(()=>kn(m,t,A,N)),[Ee,we]=E.useState(null),[Ne,Wt]=E.useState(!1),[Le,it]=E.useState(null),[Ue,Ae]=E.useState(),lt=E.useRef(null),ut=E.useRef(null),Ge=E.useRef(null),We=E.useRef(0),bt=E.useRef(de),xt=E.useRef(m),qt=E.useRef(t),$t=E.useRef($),Te=E.useRef(de);Te.current=de,E.useEffect(()=>{st(!0),qe(de,m)||a(de)},[]),E.useEffect(()=>{if(Ee||Le)return;const L=!qe(m,xt.current),G=!Fo(t,qt.current),B=$!==$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=$},[m,t,A,$,N,Ee,Le,de]),E.useEffect(()=>{if(!Ee&&!qe(de,bt.current)){bt.current=de;const L=de.filter(G=>G.i!==ae.i);a(L)}},[de,Ee,a,ae.i]);const xr=E.useMemo(()=>{if(!C)return;const L=Pt(de),G=ye[1];return L*Y+(L-1)*U[1]+G*2+"px"},[C,de,Y,U,ye]),Ht=E.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),i(ie,oe,oe,null,Q.e,Q.node)},[i]),Ve=E.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,_,$,A,F);g(fe,oe,ce,be,Q.e,Q.node),ue(N.compact(fe,A)),we(be)},[_,$,A,F,N,g]),Yt=E.useCallback((L,G,B,Q)=>{if(!Ee)return;const ie=Te.current,oe=lt.current,ce=Qe(ie,L);if(!ce)return;const be=tt(ie,ce,G,B,!0,_,$,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)},[Ee,_,$,A,F,N,b,a]),re=E.useCallback((L,G,B,Q)=>{const ie=Te.current,oe=Qe(ie,L);oe&&(ut.current=et(oe),Ge.current=ie,Wt(!0),S(ie,oe,oe,null,Q.e,Q.node))},[S]),ne=E.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,_,$,A,F));const Ft={w:He.w,h:He.h,x:He.x,y:He.y,i:L,static:!0};u(wt,oe,He,Ft,Q.e,Q.node),ue(N.compact(wt,A)),we(Ft)},[_,$,A,F,N,u]),he=E.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=E.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=E.useCallback(L=>{if(L.preventDefault(),L.stopPropagation(),zn&&!L.nativeEvent.target?.classList.contains(Mn))return!1;const G=W?W(L.nativeEvent):x(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,W,x,se,De,A,U,Z,Y,r,ye]),Pe=E.useCallback(L=>{L.preventDefault(),L.stopPropagation(),We.current--,We.current<0&&(We.current=0),We.current===0&&se()},[se]),_e=E.useCallback(L=>{L.preventDefault(),L.stopPropagation(),We.current++},[]),Oe=E.useCallback(L=>{L.preventDefault(),L.stopPropagation();const G=Te.current,B=G.find(Q=>Q.i===ae.i);We.current=0,se(),p(G,B,L.nativeEvent)},[ae.i,se,p]),Me=E.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:f,handle:O,onDragStart:Ht,onDrag:Ve,onDragStop:Yt,onResizeStart:re,onResize:ne,onResizeStop:he,isDraggable:Q,isResizable:ie,isBounded:ce,useCSSTransforms:je&&Ce,usePercentages:!Ce,transformScale:De,positionStrategy:d,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:v,layoutItem:B,layout:de,children:L},B.i)},[de,r,A,U,ye,Z,Y,f,O,Ht,Ve,Yt,re,ne,he,le,k,me,je,Ce,De,d,j,Ue,z,X,v]),ze=()=>Ee?T.jsx(Tn,{w:Ee.w,h:Ee.h,x:Ee.x,y:Ee.y,i:Ee.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:v,layout:de,children:T.jsx("div",{})}):null,Je=Gt(Mn,P),Ke={height:xr,...D};return T.jsxs("div",{ref:y,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:[E.Children.map(t,L=>E.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=[];E.Children.forEach(t,l=>{if(!E.isValidElement(l)||l.key===null)return;const d=String(l.key),c=e.find(v=>v.i===d);if(c)o.push({...c,i:d});else{const m=l.props["data-grid"];m?o.push({i:d,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:d,x:0,y:Pt(o),w:1,h:1})}});const s=Zt(o,{cols:r});return n.compact(s,r)}function Jo(e){const{children:t,width:r,breakpoint:n,breakpoints:o=Uo,cols:s=Go,layouts:l={},rowHeight:d=150,maxRows:c=1/0,margin:v=[10,10],containerPadding:m=null,compactor:h,onBreakpointChange:C=mr,onLayoutChange:P=mr,onWidthChange:D=mr,...y}=e,a=h??or("vertical"),i=a.type,g=a.allowOverlap,b=E.useMemo(()=>n??qr(o,r),[]),S=E.useMemo(()=>$r(b,s),[b,s]),u=E.useMemo(()=>ar(l,o,b,b,S,i),[]),[w,p]=E.useState(b),[x,R]=E.useState(S),[H,q]=E.useState(u),[J,A]=E.useState(l),Y=E.useRef(r),Z=E.useRef(n),U=E.useRef(o),K=E.useRef(s),le=E.useRef(l),me=E.useRef(i),O=E.useRef(J);E.useEffect(()=>{O.current=J},[J]);const f=E.useMemo(()=>qe(l,le.current)?null:ar(l,o,w,w,x,a),[l,o,w,x,a]),j=f??H;E.useEffect(()=>{f!==null&&(q(f),A(l),O.current=l,le.current=l)},[f,l]),E.useEffect(()=>{if(i!==me.current){const M=a.compact(Be(j),x),W={...O.current,[w]:M};q(M),A(W),O.current=W,P(M,W),me.current=i}},[i,a,j,x,g,w,P]),E.useEffect(()=>{const M=r!==Y.current,W=n!==Z.current,N=!qe(o,U.current),$=!qe(s,K.current);if(M||W||N||$){const F=n??qr(o,r),_=$r(F,s),ae=w;if(ae!==F||N||$){const ye={...O.current};ye[ae]||(ye[ae]=Be(H));let Ce=ar(ye,o,F,ae,_,a);Ce=Vo(Ce,t,_,a),ye[F]=Ce,p(F),R(_),q(Ce),A(ye),O.current=ye,C(F,_),P(Ce,ye)}const je=_t(v,F),De=m?_t(m,F):null;D(r,je,_,De),Y.current=r,Z.current=n,U.current=o,K.current=s}},[r,n,o,s,w,x,H,t,a,i,g,v,m,C,P,D]);const k=E.useCallback(M=>{const N={...O.current,[w]:M};q(M),A(N),O.current=N,P(M,N)},[w,P]),z=E.useMemo(()=>_t(v,w),[v,w]),X=E.useMemo(()=>m===null?null:_t(m,w),[m,w]),I=E.useMemo(()=>({cols:x,rowHeight:d,maxRows:c,margin:z,containerPadding:X}),[x,d,c,z,X]);return T.jsx(Xo,{...y,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:s,containerRef:l,mounted:d}=jo(),[c,v]=ke.useState(!1),[m,h]=ke.useState(!1),C=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[y,a]=ke.useState(()=>{if(typeof window<"u"&&n){const u=localStorage.getItem(n);if(u)try{return JSON.parse(u)}catch(w){console.error("Failed to parse saved layout:",w)}}return{lg:e.widgets?.map((u,w)=>({i:u.id||`widget-${w}`,x:u.layout?.x||w%4*3,y:u.layout?.y||Math.floor(w/4)*4,w:u.layout?.w||3,h:u.layout?.h||4}))||[]}}),i=ke.useCallback((u,w)=>{a(w),r?.(u)},[r]),g=ke.useCallback(()=>{typeof window<"u"&&n&&localStorage.setItem(n,JSON.stringify(y)),v(!1)},[y,n]),b=ke.useCallback(()=>{const u={lg:e.widgets?.map((w,p)=>({i:w.id||`widget-${p}`,x:w.layout?.x||p%4*3,y:w.layout?.y||Math.floor(p/4)*4,w:w.layout?.w||3,h:w.layout?.h||4}))||[]};a(u),typeof window<"u"&&n&&localStorage.removeItem(n)},[e.widgets,n]),S=ke.useCallback(u=>{if(u.component)return u.component;const w=u.type;if(w==="bar"||w==="line"||w==="area"||w==="pie"||w==="donut"){const p=Array.isArray(u.data)?u.data:u.data?.items||[],x=u.options||{},R=x.xField||"name",H=x.yField||"value";return{type:"chart",chartType:w,data:p,xAxisKey:R,series:[{dataKey:H}],colors:Zo,className:"h-full"}}return w==="table"?{type:"data-table",...u.options,data:u.data?.items||[],searchable:!1,pagination:!1,className:"border-0"}:u},[]);return T.jsxs("div",{ref:l,className:V.cn("w-full",t),"data-testid":"grid-layout",children:[C&&T.jsx(Ko,{editMode:c}),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:c?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:()=>v(!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:()=>v(!0),size:"sm",variant:"outline",children:[T.jsx(Re.Edit,{className:"h-4 w-4 mr-2"}),"Edit Layout"]})]})})]}),d&&T.jsx(Jo,{className:"layout",width:s,layouts:y,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:c,handle:".drag-handle"},resizeConfig:{enabled:c},onLayoutChange:i,children:e.widgets?.map((u,w)=>{const p=u.id||`widget-${w}`,x=S(u),R=u.type==="metric";return T.jsx("div",{className:"h-full",children:R?T.jsxs("div",{className:"h-full w-full relative",children:[c&&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:x,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",c&&"ring-2 ring-primary/20"),children:[u.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:u.title,children:u.title}),c&&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:x})})})]})},p)})})]})},vr=({label:e,value:t,trend:r,icon:n,className:o,description:s,...l})=>{const d=E.useMemo(()=>{if(typeof n=="string"){const c=Pr[n];return c?T.jsx(c,{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}),d&&T.jsx("div",{className:"h-4 w-4 text-muted-foreground",children:d})]}),T.jsxs(V.CardContent,{children:[T.jsx("div",{className:"text-2xl font-bold",children:t}),(r||s)&&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,"%"]}),s||r?.label]})]})]})},br=({title:e,value:t,icon:r,trend:n,trendValue:o,description:s,className:l,...d})=>{const c=r&&Pr[r];return T.jsxs(V.Card,{className:V.cn("h-full",l),...d,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}),c&&T.jsx(c,{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||s)&&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]}),s]})]})]})};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,6 +6,8 @@ export interface DashboardGridLayoutProps {
|
|
|
6
6
|
className?: string;
|
|
7
7
|
onLayoutChange?: (layout: RGLLayout[]) => void;
|
|
8
8
|
persistLayoutKey?: string;
|
|
9
|
+
/** Callback invoked when dashboard refresh is triggered (manual or auto) */
|
|
10
|
+
onRefresh?: () => void;
|
|
9
11
|
}
|
|
10
12
|
export declare const DashboardGridLayout: React.FC<DashboardGridLayoutProps>;
|
|
11
13
|
//# sourceMappingURL=DashboardGridLayout.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardGridLayout.d.ts","sourceRoot":"","sources":["../../src/DashboardGridLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAA2C,KAAK,UAAU,IAAI,SAAS,EAAuC,MAAM,mBAAmB,CAAC;AAC/I,OAAO,kCAAkC,CAAC;AAI1C,OAAO,KAAK,EAAE,eAAe,EAAyB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"DashboardGridLayout.d.ts","sourceRoot":"","sources":["../../src/DashboardGridLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAA2C,KAAK,UAAU,IAAI,SAAS,EAAuC,MAAM,mBAAmB,CAAC;AAC/I,OAAO,kCAAkC,CAAC;AAI1C,OAAO,KAAK,EAAE,eAAe,EAAyB,MAAM,kBAAkB,CAAC;AA0B/E,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;IAC/C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CA8NlE,CAAC"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { DashboardSchema } from '../../types/src';
|
|
2
|
-
export
|
|
3
|
-
[key: string]: any;
|
|
2
|
+
export interface DashboardRendererProps {
|
|
4
3
|
schema: DashboardSchema;
|
|
5
4
|
className?: string;
|
|
6
|
-
|
|
5
|
+
/** Callback invoked when dashboard refresh is triggered (manual or auto) */
|
|
6
|
+
onRefresh?: () => void;
|
|
7
|
+
[key: string]: any;
|
|
8
|
+
}
|
|
9
|
+
export declare const DashboardRenderer: import('react').ForwardRefExoticComponent<Omit<DashboardRendererProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
7
10
|
//# sourceMappingURL=DashboardRenderer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardRenderer.d.ts","sourceRoot":"","sources":["../../src/DashboardRenderer.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAyB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"DashboardRenderer.d.ts","sourceRoot":"","sources":["../../src/DashboardRenderer.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAyB,MAAM,kBAAkB,CAAC;AAe/E,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,eAAO,MAAM,iBAAiB,gIAuK7B,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { StoryObj } from '@storybook/react';
|
|
2
|
+
declare const meta: {
|
|
3
|
+
title: string;
|
|
4
|
+
component: import('react').ForwardRefExoticComponent<Omit<{
|
|
5
|
+
schema: import('../../core/src').SchemaNode;
|
|
6
|
+
} & Record<string, any>, "ref"> & import('react').RefAttributes<any>>;
|
|
7
|
+
parameters: {
|
|
8
|
+
layout: string;
|
|
9
|
+
};
|
|
10
|
+
tags: string[];
|
|
11
|
+
argTypes: {
|
|
12
|
+
schema: {
|
|
13
|
+
table: {
|
|
14
|
+
disable: true;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
export default meta;
|
|
20
|
+
type Story = StoryObj<typeof meta>;
|
|
21
|
+
export declare const Default: Story;
|
|
22
|
+
export declare const WithMetricCards: Story;
|
|
23
|
+
export declare const WithChartsAndMetrics: Story;
|
|
24
|
+
//# sourceMappingURL=DashboardRenderer.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DashboardRenderer.stories.d.ts","sourceRoot":"","sources":["../../src/DashboardRenderer.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAIvD,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;CAUW,CAAC;AAEtB,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAInC,eAAO,MAAM,OAAO,EAAE,KAiCrB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAgD7B,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAkElC,CAAC"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -4,11 +4,7 @@ import { MetricWidget } from './MetricWidget';
|
|
|
4
4
|
import { MetricCard } from './MetricCard';
|
|
5
5
|
export { DashboardRenderer, DashboardGridLayout, MetricWidget, MetricCard };
|
|
6
6
|
export declare const dashboardComponents: {
|
|
7
|
-
DashboardRenderer: import('react').ForwardRefExoticComponent<Omit<
|
|
8
|
-
[key: string]: any;
|
|
9
|
-
schema: import('../../types/src').DashboardSchema;
|
|
10
|
-
className?: string;
|
|
11
|
-
}, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
7
|
+
DashboardRenderer: import('react').ForwardRefExoticComponent<Omit<import('./DashboardRenderer').DashboardRendererProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
12
8
|
DashboardGridLayout: import('react').FC<import('./DashboardGridLayout').DashboardGridLayoutProps>;
|
|
13
9
|
MetricWidget: ({ label, value, trend, icon, className, description, ...props }: import('./MetricWidget').MetricWidgetProps) => import("react/jsx-runtime").JSX.Element;
|
|
14
10
|
MetricCard: import('react').FC<import('./MetricCard').MetricCardProps>;
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AAwF5E,eAAO,MAAM,mBAAmB
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AAwF5E,eAAO,MAAM,mBAAmB;;;;;CAK/B,CAAC"}
|