UNPKG

unleash-server

Version:

Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.

3 lines 99.5 kB
import{iN as kn,iO as Wn,iP as Nn,fo as Tt,b9 as Te,fp as Lt,j as f,A as jr,r as z,B as G,T as ue,en as cr,l as Ht,F as Mr,I as Tr,S as Lr,M as me,dW as Hr,m as $r,t as kr,b as $t,iQ as An,fn as In,V as qn,iR as dr,s as re,al as Wr,c4 as Bn,hP as Gn,c9 as Fn,E as Un,c5 as Yn,i as Ve,G as Xn,H as Vn,aE as Nr,D as fr,b1 as Kn,b3 as Zn,iS as Jn,iT as Ar,iU as Qn,iV as ye,iW as kt,g as ea,u as ta,e as ra,h as ht,aD as na,bh as pr}from"./index-CBxzHo9v.js";function hr(e){kn(1,arguments);var t=Nn(e);return Wn(t*1e3)}const aa=()=>{const e="api/admin/impact-metrics/metadata",{data:t,refetch:r,loading:n,error:a}=Tt(Te(e),()=>Lt(Te(e),"Impact metrics metadata"));return{metadata:t,refetch:r,loading:n,error:a}},oa=({value:e,onChange:t,options:r,loading:n=!1})=>f.jsx(jr,{options:r,getOptionLabel:a=>a.displayName,value:r.find(a=>a.name===e)||null,onChange:(a,o)=>t((o==null?void 0:o.name)||""),disabled:n,renderOption:(a,o,{inputValue:s})=>z.createElement(G,{component:"li",...a,key:o.name},f.jsxs(G,{sx:{display:"flex",flexDirection:"column"},children:[f.jsx(ue,{variant:"body2",children:f.jsx(cr,{search:s,children:o.displayName})}),f.jsx(ue,{variant:"caption",color:"text.secondary",children:f.jsx(cr,{search:s,children:o.help})})]})),renderInput:a=>f.jsx(Ht,{...a,label:"Data series",placeholder:"Search for a metric…",variant:"outlined",size:"small",required:!0}),noOptionsText:"No metrics available",sx:{minWidth:300}}),sa=({value:e,onChange:t})=>f.jsxs(Mr,{variant:"outlined",size:"small",sx:{minWidth:200},children:[f.jsx(Tr,{id:"range-select-label",children:"Time"}),f.jsxs(Lr,{labelId:"range-select-label",value:e,onChange:r=>t(r.target.value),label:"Time Range",children:[f.jsx(me,{value:"hour",children:"Last hour"}),f.jsx(me,{value:"day",children:"Last 24 hours"}),f.jsx(me,{value:"week",children:"Last 7 days"}),f.jsx(me,{value:"month",children:"Last 30 days"})]})]}),ia=({value:e,onChange:t,seriesType:r})=>r==="unknown"?null:f.jsxs(Mr,{variant:"outlined",size:"small",sx:{minWidth:200},children:[f.jsx(Tr,{id:"mode-select-label",children:"Mode"}),f.jsx(Lr,{labelId:"mode-select-label",value:e,onChange:n=>t(n.target.value),label:"Mode",children:r==="counter"?[f.jsx(me,{value:"rps",children:"Rate per second"},"rps"),f.jsx(me,{value:"count",children:"Count"},"count")]:[f.jsx(me,{value:"avg",children:"Average"},"avg"),f.jsx(me,{value:"sum",children:"Sum"},"sum")]})]}),gr=e=>{switch(e){case"hour":return"minute";case"day":return"hour";case"week":return"day";case"month":return"week";default:return"day"}},la=e=>{switch(e){case"hour":return"HH:mm";case"day":return"HH:mm";case"week":return"MMM dd";case"month":return"MMM dd";default:return"MMM dd"}},mr=e=>{const{__name__:t,...r}=e,n=Object.entries(r).filter(([a,o])=>a!=="__name__"&&o).map(([a,o])=>`${a}=${o}`).join(", ");return!t&&!n?"Series":t?n?`${t} (${n})`:t:n},ua=e=>e>=1e6?`${(e/1e6).toFixed(0)}M`:e>=1e3?`${(e/1e3).toFixed(0)}k`:e.toString(),Xe=e=>e.startsWith("unleash_counter_")?"counter":e.startsWith("unleash_gauge_")?"gauge":"unknown",ca=({formData:e,actions:t,metricSeries:r,loading:n})=>f.jsxs(G,{children:[f.jsxs(G,{sx:a=>({display:"flex",flexDirection:"column",gap:a.spacing(3)}),children:[f.jsx(ue,{variant:"body2",color:"text.secondary",children:"Select a custom metric to see its value over time. This can help you understand the impact of your feature rollout on key outcomes, such as system performance, usage patterns or error rates."}),f.jsx(oa,{value:e.selectedSeries,onChange:t.handleSeriesChange,options:r,loading:n}),e.selectedSeries?f.jsxs(f.Fragment,{children:[f.jsx(sa,{value:e.selectedRange,onChange:t.setSelectedRange}),f.jsx(ia,{value:e.aggregationMode,onChange:t.setAggregationMode,seriesType:Xe(e.selectedSeries)})]}):null]}),e.selectedSeries?f.jsx(Hr,{sx:a=>({margin:a.spacing(1.5,0)}),control:f.jsx($r,{checked:e.beginAtZero,onChange:a=>t.setBeginAtZero(a.target.checked)}),label:"Begin at zero"}):null]}),Ir=e=>{const t=!!(e!=null&&e.series&&(e!=null&&e.range)),n=(()=>{if(!e)return"";const i=new URLSearchParams({series:e.series,range:e.range});if(e.aggregationMode!==void 0&&i.append("aggregationMode",e.aggregationMode),e.labels&&Object.keys(e.labels).length>0){const u=Object.entries(e.labels).reduce((c,[d,p])=>(p.length>0&&(c[d]=p),c),{});Object.keys(u).length>0&&i.append("labels",JSON.stringify(u))}return`api/admin/impact-metrics/?${i.toString()}`})(),{data:a,refetch:o,loading:s,error:l}=Tt(t?Te(n):null,t?()=>Lt(Te(n),"Impact metrics data"):()=>Promise.resolve([]),{refreshInterval:30*1e3,revalidateOnFocus:!0});return{data:a||{series:[],labels:{}},refetch:o,loading:t?s:!1,error:l}},da=({open:e,initialConfig:t})=>{const[r,n]=z.useState((t==null?void 0:t.title)||""),[a,o]=z.useState((t==null?void 0:t.selectedSeries)||""),[s,l]=z.useState((t==null?void 0:t.selectedRange)||"day"),[i,u]=z.useState((t==null?void 0:t.beginAtZero)||!1),[c,d]=z.useState((t==null?void 0:t.selectedLabels)||{}),[p,h]=z.useState(((t==null?void 0:t.aggregationMode)||Xe(a))==="counter"?"count":"avg"),{data:{labels:w}}=Ir(a?{series:a,range:s,aggregationMode:p}:void 0);z.useEffect(()=>{e&&t?(n(t.title||""),o(t.selectedSeries),l(t.selectedRange),u(t.beginAtZero),d(t.selectedLabels),h(t.aggregationMode||(Xe(t.selectedSeries)==="counter"?"count":"avg"))):e&&!t&&(n(""),o(""),l("day"),u(!1),d({}),h("count"))},[e,t]);const S=v=>{o(v),d({});const y=Xe(v);y==="counter"?h("count"):y==="gauge"&&h("avg")},D=()=>({title:r||void 0,selectedSeries:a,selectedRange:s,beginAtZero:i,selectedLabels:c,aggregationMode:p}),g=a.length>0;return{formData:{title:r,selectedSeries:a,selectedRange:s,beginAtZero:i,aggregationMode:p,selectedLabels:c},actions:{setTitle:n,setSelectedSeries:o,setSelectedRange:l,setBeginAtZero:u,setAggregationMode:h,setSelectedLabels:d,handleSeriesChange:S,getConfigToSave:D},isValid:g,currentAvailableLabels:w}},fa=({labelKey:e,options:t,value:r,onChange:n})=>{const a=r.includes("*"),o=`autocomplete-${e}`,s=`select-all-${e}`;return f.jsxs(f.Fragment,{children:[f.jsx(Hr,{sx:l=>({marginLeft:l.spacing(0)}),control:f.jsx($r,{id:s,size:"small",checked:a,onChange:l=>n(l.target.checked?["*"]:[]),inputProps:{"aria-describedby":o,"aria-label":`Select all ${e} options`}}),label:f.jsx(G,{component:"span",sx:l=>({fontSize:l.fontSizes.smallBody}),children:"Select all"})}),f.jsx(jr,{multiple:!0,id:o,options:t,value:a?t:r,onChange:(l,i)=>{n(i)},disabled:a,renderTags:(l,i)=>l.map((u,c)=>{const{key:d,...p}=i({index:c});return z.createElement(kr,{...p,key:d,label:u,size:"small"})}),renderInput:l=>f.jsx(Ht,{...l,label:e,placeholder:a?void 0:"Select values…",variant:"outlined",size:"small",inputProps:{...l.inputProps,"aria-describedby":a?`${s}-description`:void 0}})})]})},pa=({selectedLabels:e,onChange:t,availableLabels:r})=>{const n=(s,l)=>{const i={...e};l.length===0?delete i[s]:i[s]=l,t(i)},a=(s,l)=>{const i={...e};l?i[s]=["*"]:delete i[s],t(i)},o=()=>{t({})};return!r||Object.keys(r).length===0?null:f.jsxs(G,{sx:{display:"flex",gap:2,flexWrap:"wrap"},children:[f.jsxs(G,{sx:{display:"flex",alignItems:"center",gap:1,width:"100%"},children:[f.jsx(ue,{variant:"subtitle2",children:"Filter by labels"}),Object.keys(e).length>0&&f.jsx(kr,{label:"Clear all",size:"small",variant:"outlined",onClick:o})]}),f.jsx(G,{sx:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(300px, 1fr))",gap:2,flexGrow:1},children:Object.entries(r).map(([s,l])=>{const i=e[s]||[];return f.jsx(G,{sx:{display:"flex",flexDirection:"column",flexGrow:1},children:f.jsx(fa,{labelKey:s,options:l,value:i,onChange:u=>n(s,u),handleAllToggle:a})},s)})})]})},ha=(e,t)=>{if(!t||t.length===0||e<=0)return 0;let r=0;for(let n=0;n<t.length;n++){const a=t.charCodeAt(n);r=(r<<5)-r+a,r=r&r}return Math.abs(r)%e},ga=(e,t)=>{const r=$t(),n=r.palette.charts.series,a=ha(n.length,t);return z.useMemo(()=>{if(!e||e.length===0)return{labels:[],datasets:[{data:[],borderColor:r.palette.primary.main,backgroundColor:r.palette.primary.light}]};if(e.length===1){const o=e[0],s=o.data.map(([i])=>new Date(i*1e3)),l=o.data.map(([,i])=>i);return{labels:s,datasets:[{data:l,borderColor:r.palette.primary.main,backgroundColor:r.palette.primary.light,label:mr(o.metric)}]}}else{const o=new Set;if(e.forEach(u=>{u.data.forEach(([c])=>{o.add(c)})}),o.size===0)return{labels:[],datasets:[]};const s=Array.from(o).sort((u,c)=>u-c),l=s.map(u=>new Date(u*1e3)),i=e.map((u,c)=>{const d=mr(u.metric),p=n[(c+a)%n.length],h=new Map(u.data),w=s.map(S=>h.get(S)??null);return{label:d,data:w,borderColor:p,backgroundColor:p,fill:!1}});return{labels:l,datasets:i}}},[e,r])},qr=({selectedSeries:e,selectedRange:t,selectedLabels:r,beginAtZero:n,aggregationMode:a,aspectRatio:o,overrideOptions:s={},errorTitle:l="Failed to load impact metrics.",emptyDataDescription:i="Send impact metrics using Unleash SDK and select data series to view the chart.",noSeriesPlaceholder:u,isPreview:c})=>{const{data:{start:d,end:p,series:h,debug:w},loading:S,error:D}=Ir(e?{series:e,range:t,aggregationMode:a,labels:Object.keys(r).length>0?r:void 0}:void 0),g=An({fill:!0,type:"constant"}),v=ga(h,w==null?void 0:w.query),y=!!D,x=S,m=!e||x||y,O=z.useMemo(()=>!x&&(!h||h.length===0||!v.datasets.some(K=>K.data.length>1)),[v,x,h]),H=d?hr(Number.parseInt(d,10)):void 0,$=p?hr(Number.parseInt(p,10)):void 0,j=e?f.jsx(dr,{description:i}):u||f.jsx(dr,{title:"Select a metric series to view the chart.",description:""}),W=Object.keys(r).length>0,F=O?j:x,ve=m?s:{...s,scales:{x:{type:"time",min:H==null?void 0:H.getTime(),max:$==null?void 0:$.getTime(),time:{unit:gr(t),displayFormats:{[gr(t)]:la(t)},tooltipFormat:"PPpp"},ticks:{maxRotation:45,minRotation:45,maxTicksLimit:8}},y:{beginAtZero:n,title:{display:a==="rps",text:a==="rps"?"Rate per second":""},ticks:{precision:0,callback:K=>typeof K=="number"?`${ua(K)}${a==="rps"?"/s":""}`:K}}},plugins:{legend:{display:h&&(W||h.length>1),position:"bottom",labels:{usePointStyle:!0,boxWidth:8,padding:12}}},animations:{x:{duration:0},y:{duration:0}}};return f.jsxs(f.Fragment,{children:[f.jsx(G,{sx:c?{}:{height:"100%",width:"100%","& > div":{height:"100% !important",width:"100% !important"}},children:f.jsx(In,{data:O||x?g:v,aspectRatio:o,overrideOptions:ve,cover:y?f.jsx(qn,{severity:"error",children:l}):F})}),c&&(w!=null&&w.query)?f.jsx(G,{sx:K=>({margin:K.spacing(2),padding:K.spacing(2),background:K.palette.background.elevation1}),children:f.jsx(ue,{variant:"caption",color:"text.secondary",sx:{wordBreak:"break-all"},children:f.jsx("code",{children:w.query})})}):null]})},ma=re(G)(({theme:e})=>({display:"flex",flexDirection:"column",gap:e.spacing(3),[e.breakpoints.down("lg")]:{flex:"none"},[e.breakpoints.up("lg")]:{flex:"0 0 400px"}})),ya=re(G)(({theme:e})=>({flex:1,display:"flex",flexDirection:"column",gap:e.spacing(2),[e.breakpoints.down("lg")]:{minHeight:"300px"},[e.breakpoints.up("lg")]:{minHeight:"400px"}})),va=({open:e,onClose:t,onSave:r,initialConfig:n,metricSeries:a,loading:o=!1})=>{const{formData:s,actions:l,isValid:i,currentAvailableLabels:u}=da({open:e,initialConfig:n}),c=$t(),d=Wr(c.breakpoints.down("lg")),p=()=>{i&&(r(l.getConfigToSave()),t())};return f.jsxs(Bn,{open:e,onClose:t,maxWidth:"lg",fullWidth:!0,sx:{"& .MuiDialog-paper":{minHeight:"600px",maxHeight:"90vh"}},children:[f.jsx(Gn,{children:n?"Edit Chart":"Add New Chart"}),f.jsxs(Fn,{children:[f.jsxs(G,{sx:h=>({display:"flex",flexDirection:{xs:"column",lg:"row"},gap:h.spacing(3),pt:h.spacing(1),height:"100%"}),children:[f.jsxs(ma,{children:[f.jsx(Ht,{label:"Chart Title (optional)",value:s.title,onChange:h=>l.setTitle(h.target.value),fullWidth:!0,variant:"outlined",size:"small"}),f.jsx(ca,{formData:s,actions:l,metricSeries:a,loading:o})]}),f.jsx(ya,{children:f.jsx(G,{sx:h=>({padding:h.spacing(1)}),children:f.jsx(qr,{selectedSeries:s.selectedSeries,selectedRange:s.selectedRange,selectedLabels:s.selectedLabels,beginAtZero:s.beginAtZero,aggregationMode:s.aggregationMode,isPreview:!0},d?"small":"large")})})]}),u?f.jsx(pa,{selectedLabels:s.selectedLabels,onChange:l.setSelectedLabels,availableLabels:u}):null]}),f.jsx(Un,{}),f.jsxs(Yn,{sx:h=>({margin:h.spacing(2,3,3)}),children:[f.jsx(Ve,{onClick:t,children:"Cancel"}),f.jsx(Ve,{onClick:p,variant:"contained",disabled:!i,children:n?"Update":"Add Chart"})]})]})};var Wt={},ba=Vn;Object.defineProperty(Wt,"__esModule",{value:!0});var Br=Wt.default=void 0,wa=ba(Xn()),xa=f,Sa=(0,wa.default)((0,xa.jsx)("path",{d:"M20 9H4v2h16V9zM4 15h16v-2H4v2z"}),"DragHandle");Br=Wt.default=Sa;const Da=e=>{const t=[];e.displayName&&t.push(`${e.displayName}`),t.push(`last ${e.selectedRange}`),e.aggregationMode==="rps"?t.push("rate per second"):e.aggregationMode==="count"?t.push("count"):e.aggregationMode==="avg"?t.push("average"):e.aggregationMode==="sum"&&t.push("sum");const r=Object.keys(e.selectedLabels).length;return r>0&&t.push(`${r} filter${r>1?"s":""}`),t.join(" • ")},Ra=re(Nr)(({theme:e})=>({borderRadius:`${e.shape.borderRadiusMedium}px`,boxShadow:"none",display:"flex",flexDirection:"column",height:"100%"})),_a=re(G)({flex:1,display:"flex",flexDirection:"column",minHeight:0}),Oa=re(G)(({theme:e})=>({position:"relative",minWidth:0,flexGrow:1,height:"100%",display:"flex",flexDirection:"column",margin:"auto 0",padding:e.spacing(3)})),Pa=re(G)(({theme:e})=>({display:"flex",gap:e.spacing(2),alignItems:"center",padding:e.spacing(1.5,2),borderBottom:`1px solid ${e.palette.divider}`})),Ea=re(G)(({theme:e})=>({display:"flex",alignItems:"center",cursor:"move",padding:e.spacing(.5),borderRadius:e.shape.borderRadius,color:e.palette.text.secondary,"&:hover":{backgroundColor:e.palette.action.hover,color:e.palette.text.primary}})),Ca=re(G)(({theme:e})=>({display:"flex",flexDirection:"column",justifyContent:"flex-end",flexGrow:1,overflow:"hidden",textOverflow:"ellipsis"})),za=re(G)(({theme:e})=>({marginLeft:"auto",display:"flex",alignItems:"center",gap:e.spacing(.5)})),ja=({config:e,onEdit:t,onDelete:r})=>f.jsxs(Ra,{children:[f.jsxs(Pa,{children:[f.jsx(Ea,{className:"grid-item-drag-handle",children:f.jsx(Br,{fontSize:"small"})}),f.jsxs(Ca,{children:[e.title&&f.jsx(ue,{variant:"h6",children:e.title}),f.jsx(ue,{variant:"body2",color:"text.secondary",children:Da(e)})]}),f.jsxs(za,{children:[f.jsx(fr,{onClick:()=>t(e),children:f.jsx(Kn,{})}),f.jsx(fr,{onClick:()=>r(e.id),children:f.jsx(Zn,{})})]})]}),f.jsx(_a,{children:f.jsx(Oa,{children:f.jsx(qr,{selectedSeries:e.selectedSeries,selectedRange:e.selectedRange,selectedLabels:e.selectedLabels,beginAtZero:e.beginAtZero,aggregationMode:e.aggregationMode,aspectRatio:1.5,overrideOptions:{maintainAspectRatio:!1},emptyDataDescription:"Send impact metrics using Unleash SDK for this series to view the chart."})})})]});var Gr={exports:{}},Ae={},St={exports:{}};(function(e,t){(function(r,n){n(t)})(Jn,function(r){function n(b){return function(k,T,L,I,U,ne,q){return b(k,T,q)}}function a(b){return function(k,T,L,I){if(!k||!T||typeof k!="object"||typeof T!="object")return b(k,T,L,I);var U=I.get(k),ne=I.get(T);if(U&&ne)return U===T&&ne===k;I.set(k,T),I.set(T,k);var q=b(k,T,L,I);return I.delete(k),I.delete(T),q}}function o(b,_){var k={};for(var T in b)k[T]=b[T];for(var T in _)k[T]=_[T];return k}function s(b){return b.constructor===Object||b.constructor==null}function l(b){return typeof b.then=="function"}function i(b,_){return b===_||b!==b&&_!==_}var u="[object Arguments]",c="[object Boolean]",d="[object Date]",p="[object RegExp]",h="[object Map]",w="[object Number]",S="[object Object]",D="[object Set]",g="[object String]",v=Object.prototype.toString;function y(b){var _=b.areArraysEqual,k=b.areDatesEqual,T=b.areMapsEqual,L=b.areObjectsEqual,I=b.areRegExpsEqual,U=b.areSetsEqual,ne=b.createIsNestedEqual,q=ne(oe);function oe(N,B,se){if(N===B)return!0;if(!N||!B||typeof N!="object"||typeof B!="object")return N!==N&&B!==B;if(s(N)&&s(B))return L(N,B,q,se);var lr=Array.isArray(N),ur=Array.isArray(B);if(lr||ur)return lr===ur&&_(N,B,q,se);var ie=v.call(N);return ie!==v.call(B)?!1:ie===d?k(N,B,q,se):ie===p?I(N,B,q,se):ie===h?T(N,B,q,se):ie===D?U(N,B,q,se):ie===S||ie===u?l(N)||l(B)?!1:L(N,B,q,se):ie===c||ie===w||ie===g?i(N.valueOf(),B.valueOf()):!1}return oe}function x(b,_,k,T){var L=b.length;if(_.length!==L)return!1;for(;L-- >0;)if(!k(b[L],_[L],L,L,b,_,T))return!1;return!0}var m=a(x);function O(b,_){return i(b.valueOf(),_.valueOf())}function H(b,_,k,T){var L=b.size===_.size;if(!L)return!1;if(!b.size)return!0;var I={},U=0;return b.forEach(function(ne,q){if(L){var oe=!1,N=0;_.forEach(function(B,se){!oe&&!I[N]&&(oe=k(q,se,U,N,b,_,T)&&k(ne,B,q,se,b,_,T))&&(I[N]=!0),N++}),U++,L=oe}}),L}var $=a(H),j="_owner",W=Object.prototype.hasOwnProperty;function F(b,_,k,T){var L=Object.keys(b),I=L.length;if(Object.keys(_).length!==I)return!1;for(var U;I-- >0;){if(U=L[I],U===j){var ne=!!b.$$typeof,q=!!_.$$typeof;if((ne||q)&&ne!==q)return!1}if(!W.call(_,U)||!k(b[U],_[U],U,U,b,_,T))return!1}return!0}var ve=a(F);function K(b,_){return b.source===_.source&&b.flags===_.flags}function He(b,_,k,T){var L=b.size===_.size;if(!L)return!1;if(!b.size)return!0;var I={};return b.forEach(function(U,ne){if(L){var q=!1,oe=0;_.forEach(function(N,B){!q&&!I[oe]&&(q=k(U,N,ne,B,b,_,T))&&(I[oe]=!0),oe++}),L=q}}),L}var ir=a(He),be=Object.freeze({areArraysEqual:x,areDatesEqual:O,areMapsEqual:H,areObjectsEqual:F,areRegExpsEqual:K,areSetsEqual:He,createIsNestedEqual:n}),we=Object.freeze({areArraysEqual:m,areDatesEqual:O,areMapsEqual:$,areObjectsEqual:ve,areRegExpsEqual:K,areSetsEqual:ir,createIsNestedEqual:n}),Be=y(be);function pt(b,_){return Be(b,_,void 0)}var Cn=y(o(be,{createIsNestedEqual:function(){return i}}));function zn(b,_){return Cn(b,_,void 0)}var jn=y(we);function Mn(b,_){return jn(b,_,new WeakMap)}var Tn=y(o(we,{createIsNestedEqual:function(){return i}}));function Ln(b,_){return Tn(b,_,new WeakMap)}function Hn(b){return y(o(be,b(be)))}function $n(b){var _=y(o(we,b(we)));return function(k,T,L){return L===void 0&&(L=new WeakMap),_(k,T,L)}}r.circularDeepEqual=Mn,r.circularShallowEqual=Ln,r.createCustomCircularEqual=$n,r.createCustomEqual=Hn,r.deepEqual=pt,r.sameValueZeroEqual=i,r.shallowEqual=zn,Object.defineProperty(r,"__esModule",{value:!0})})})(St,St.exports);var Nt=St.exports;const et=Ar(Qn);var C={},Ma=function(t,r,n){return t===r?!0:t.className===r.className&&n(t.style,r.style)&&t.width===r.width&&t.autoSize===r.autoSize&&t.cols===r.cols&&t.draggableCancel===r.draggableCancel&&t.draggableHandle===r.draggableHandle&&n(t.verticalCompact,r.verticalCompact)&&n(t.compactType,r.compactType)&&n(t.layout,r.layout)&&n(t.margin,r.margin)&&n(t.containerPadding,r.containerPadding)&&t.rowHeight===r.rowHeight&&t.maxRows===r.maxRows&&t.isBounded===r.isBounded&&t.isDraggable===r.isDraggable&&t.isResizable===r.isResizable&&t.allowOverlap===r.allowOverlap&&t.preventCollision===r.preventCollision&&t.useCSSTransforms===r.useCSSTransforms&&t.transformScale===r.transformScale&&t.isDroppable===r.isDroppable&&n(t.resizeHandles,r.resizeHandles)&&n(t.resizeHandle,r.resizeHandle)&&t.onLayoutChange===r.onLayoutChange&&t.onDragStart===r.onDragStart&&t.onDrag===r.onDrag&&t.onDragStop===r.onDragStop&&t.onResizeStart===r.onResizeStart&&t.onResize===r.onResize&&t.onResizeStop===r.onResizeStop&&t.onDrop===r.onDrop&&n(t.droppingItem,r.droppingItem)&&n(t.innerRef,r.innerRef)};Object.defineProperty(C,"__esModule",{value:!0});C.bottom=At;C.childrenEqual=Ha;C.cloneLayout=Fr;C.cloneLayoutItem=_e;C.collides=tt;C.compact=Yr;C.compactItem=Xr;C.compactType=Va;C.correctBounds=Vr;C.fastPositionEqual=$a;C.fastRGLPropsEqual=void 0;C.getAllCollisions=Kr;C.getFirstCollision=De;C.getLayoutItem=It;C.getStatics=qt;C.modifyLayout=Ur;C.moveElement=Ne;C.moveElementAwayFromCollision=Rt;C.noop=void 0;C.perc=Wa;C.resizeItemInDirection=Ga;C.setTopLeft=Ua;C.setTransform=Fa;C.sortLayoutItems=Xt;C.sortLayoutItemsByColRow=tn;C.sortLayoutItemsByRowCol=en;C.synchronizeLayoutWithChildren=Ya;C.validateLayout=Xa;C.withLayoutItem=La;var yr=Nt,We=Ta(z);function Ta(e){return e&&e.__esModule?e:{default:e}}function At(e){let t=0,r;for(let n=0,a=e.length;n<a;n++)r=e[n].y+e[n].h,r>t&&(t=r);return t}function Fr(e){const t=Array(e.length);for(let r=0,n=e.length;r<n;r++)t[r]=_e(e[r]);return t}function Ur(e,t){const r=Array(e.length);for(let n=0,a=e.length;n<a;n++)t.i===e[n].i?r[n]=t:r[n]=e[n];return r}function La(e,t,r){let n=It(e,t);return n?(n=r(_e(n)),e=Ur(e,n),[e,n]):[e,null]}function _e(e){return{w:e.w,h:e.h,x:e.x,y:e.y,i:e.i,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,isBounded:e.isBounded}}function Ha(e,t){return(0,yr.deepEqual)(We.default.Children.map(e,r=>r==null?void 0:r.key),We.default.Children.map(t,r=>r==null?void 0:r.key))&&(0,yr.deepEqual)(We.default.Children.map(e,r=>r==null?void 0:r.props["data-grid"]),We.default.Children.map(t,r=>r==null?void 0:r.props["data-grid"]))}C.fastRGLPropsEqual=Ma;function $a(e,t){return e.left===t.left&&e.top===t.top&&e.width===t.width&&e.height===t.height}function tt(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 Yr(e,t,r,n){const a=qt(e),o=Xt(e,t),s=Array(e.length);for(let l=0,i=o.length;l<i;l++){let u=_e(o[l]);u.static||(u=Xr(a,u,t,r,o,n),a.push(u)),s[e.indexOf(o[l])]=u,u.moved=!1}return s}const ka={x:"w",y:"h"};function Dt(e,t,r,n){const a=ka[n];t[n]+=1;const o=e.map(s=>s.i).indexOf(t.i);for(let s=o+1;s<e.length;s++){const l=e[s];if(!l.static){if(l.y>t.y+t.h)break;tt(t,l)&&Dt(e,l,r+t[a],n)}}t[n]=r}function Xr(e,t,r,n,a,o){const s=r==="vertical",l=r==="horizontal";if(s)for(t.y=Math.min(At(e),t.y);t.y>0&&!De(e,t);)t.y--;else if(l)for(;t.x>0&&!De(e,t);)t.x--;let i;for(;(i=De(e,t))&&!(r===null&&o);)if(l?Dt(a,t,i.x+i.w,"x"):Dt(a,t,i.y+i.h,"y"),l&&t.x+t.w>n)for(t.x=n-t.w,t.y++;t.x>0&&!De(e,t);)t.x--;return t.y=Math.max(t.y,0),t.x=Math.max(t.x,0),t}function Vr(e,t){const r=qt(e);for(let n=0,a=e.length;n<a;n++){const o=e[n];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(;De(r,o);)o.y++}return e}function It(e,t){for(let r=0,n=e.length;r<n;r++)if(e[r].i===t)return e[r]}function De(e,t){for(let r=0,n=e.length;r<n;r++)if(tt(e[r],t))return e[r]}function Kr(e,t){return e.filter(r=>tt(r,t))}function qt(e){return e.filter(t=>t.static)}function Ne(e,t,r,n,a,o,s,l,i){if(t.static&&t.isDraggable!==!0||t.y===n&&t.x===r)return e;`${t.i}${String(r)}${String(n)}${t.x}${t.y}`;const u=t.x,c=t.y;typeof r=="number"&&(t.x=r),typeof n=="number"&&(t.y=n),t.moved=!0;let d=Xt(e,s);(s==="vertical"&&typeof n=="number"?c>=n:s==="horizontal"&&typeof r=="number"?u>=r:!1)&&(d=d.reverse());const h=Kr(d,t),w=h.length>0;if(w&&i)return Fr(e);if(w&&o)return`${t.i}`,t.x=u,t.y=c,t.moved=!1,e;for(let S=0,D=h.length;S<D;S++){const g=h[S];`${t.i}${t.x}${t.y}${g.i}${g.x}${g.y}`,!g.moved&&(g.static?e=Rt(e,g,t,a,s):e=Rt(e,t,g,a,s))}return e}function Rt(e,t,r,n,a,o){const s=a==="horizontal",l=a==="vertical",i=t.static;if(n){n=!1;const d={x:s?Math.max(t.x-r.w,0):r.x,y:l?Math.max(t.y-r.h,0):r.y,w:r.w,h:r.h,i:"-1"},p=De(e,d),h=p&&p.y+p.h>t.y,w=p&&t.x+t.w>p.x;if(p){if(h&&l)return Ne(e,r,void 0,t.y+1,n,i,a);if(h&&a==null)return t.y=r.y,r.y=r.y+r.h,e;if(w&&s)return Ne(e,t,r.x,void 0,n,i,a)}else return`${r.i}${d.x}${d.y}`,Ne(e,r,s?d.x:void 0,l?d.y:void 0,n,i,a)}const u=s?r.x+1:void 0,c=l?r.y+1:void 0;return u==null&&c==null?e:Ne(e,r,s?r.x+1:void 0,l?r.y+1:void 0,n,i,a)}function Wa(e){return e*100+"%"}const Zr=(e,t,r,n)=>e+r>n?t:r,Jr=(e,t,r)=>e<0?t:r,Qr=e=>Math.max(0,e),Bt=e=>Math.max(0,e),Gt=(e,t,r)=>{let{left:n,height:a,width:o}=t;const s=e.top-(a-e.height);return{left:n,width:o,height:Jr(s,e.height,a),top:Bt(s)}},Ft=(e,t,r)=>{let{top:n,left:a,height:o,width:s}=t;return{top:n,height:o,width:Zr(e.left,e.width,s,r),left:Qr(a)}},Ut=(e,t,r)=>{let{top:n,height:a,width:o}=t;const s=e.left-(o-e.width);return{height:a,width:s<0?e.width:Zr(e.left,e.width,o,r),top:Bt(n),left:Qr(s)}},Yt=(e,t,r)=>{let{top:n,left:a,height:o,width:s}=t;return{width:s,left:a,height:Jr(n,e.height,o),top:Bt(n)}},Na=function(){return Gt(arguments.length<=0?void 0:arguments[0],Ft(...arguments))},Aa=function(){return Gt(arguments.length<=0?void 0:arguments[0],Ut(...arguments))},Ia=function(){return Yt(arguments.length<=0?void 0:arguments[0],Ft(...arguments))},qa=function(){return Yt(arguments.length<=0?void 0:arguments[0],Ut(...arguments))},Ba={n:Gt,ne:Na,e:Ft,se:Ia,s:Yt,sw:qa,w:Ut,nw:Aa};function Ga(e,t,r,n){const a=Ba[e];return a?a(t,{...t,...r},n):r}function Fa(e){let{top:t,left:r,width:n,height:a}=e;const o=`translate(${r}px,${t}px)`;return{transform:o,WebkitTransform:o,MozTransform:o,msTransform:o,OTransform:o,width:`${n}px`,height:`${a}px`,position:"absolute"}}function Ua(e){let{top:t,left:r,width:n,height:a}=e;return{top:`${t}px`,left:`${r}px`,width:`${n}px`,height:`${a}px`,position:"absolute"}}function Xt(e,t){return t==="horizontal"?tn(e):t==="vertical"?en(e):e}function en(e){return e.slice(0).sort(function(t,r){return t.y>r.y||t.y===r.y&&t.x>r.x?1:t.y===r.y&&t.x===r.x?0:-1})}function tn(e){return e.slice(0).sort(function(t,r){return t.x>r.x||t.x===r.x&&t.y>r.y?1:-1})}function Ya(e,t,r,n,a){e=e||[];const o=[];We.default.Children.forEach(t,l=>{if((l==null?void 0:l.key)==null)return;const i=It(e,String(l.key)),u=l.props["data-grid"];i&&u==null?o.push(_e(i)):u?o.push(_e({...u,i:l.key})):o.push(_e({w:1,h:1,x:0,y:At(o),i:String(l.key)}))});const s=Vr(o,{cols:r});return a?s:Yr(s,n,r)}function Xa(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"Layout";const r=["x","y","w","h"];if(!Array.isArray(e))throw new Error(t+" must be an array!");for(let n=0,a=e.length;n<a;n++){const o=e[n];for(let s=0;s<r.length;s++){const l=r[s],i=o[l];if(typeof i!="number"||Number.isNaN(i))throw new Error(`ReactGridLayout: ${t}[${n}].${l} must be a number! Received: ${i} (${typeof i})`)}if(typeof o.i<"u"&&typeof o.i!="string")throw new Error(`ReactGridLayout: ${t}[${n}].i must be a string! Received: ${o.i} (${typeof o.i})`)}}function Va(e){const{verticalCompact:t,compactType:r}=e||{};return t===!1?null:r}const Ka=()=>{};C.noop=Ka;var ce={};Object.defineProperty(ce,"__esModule",{value:!0});ce.calcGridColWidth=rt;ce.calcGridItemPosition=Za;ce.calcGridItemWHPx=_t;ce.calcWH=Qa;ce.calcXY=Ja;ce.clamp=Re;function rt(e){const{margin:t,containerPadding:r,containerWidth:n,cols:a}=e;return(n-t[0]*(a-1)-r[0]*2)/a}function _t(e,t,r){return Number.isFinite(e)?Math.round(t*e+Math.max(0,e-1)*r):e}function Za(e,t,r,n,a,o){const{margin:s,containerPadding:l,rowHeight:i}=e,u=rt(e),c={};return o&&o.resizing?(c.width=Math.round(o.resizing.width),c.height=Math.round(o.resizing.height)):(c.width=_t(n,u,s[0]),c.height=_t(a,i,s[1])),o&&o.dragging?(c.top=Math.round(o.dragging.top),c.left=Math.round(o.dragging.left)):o&&o.resizing&&typeof o.resizing.top=="number"&&typeof o.resizing.left=="number"?(c.top=Math.round(o.resizing.top),c.left=Math.round(o.resizing.left)):(c.top=Math.round((i+s[1])*r+l[1]),c.left=Math.round((u+s[0])*t+l[0])),c}function Ja(e,t,r,n,a){const{margin:o,containerPadding:s,cols:l,rowHeight:i,maxRows:u}=e,c=rt(e);let d=Math.round((r-s[0])/(c+o[0])),p=Math.round((t-s[1])/(i+o[1]));return d=Re(d,0,l-n),p=Re(p,0,u-a),{x:d,y:p}}function Qa(e,t,r,n,a,o){const{margin:s,maxRows:l,cols:i,rowHeight:u}=e,c=rt(e);let d=Math.round((t+s[0])/(c+s[0])),p=Math.round((r+s[1])/(u+s[1])),h=Re(d,0,i-n),w=Re(p,0,l-a);return["sw","w","nw"].indexOf(o)!==-1&&(h=Re(d,0,i)),["nw","n","ne"].indexOf(o)!==-1&&(w=Re(p,0,l)),{w:h,h:w}}function Re(e,t,r){return Math.max(Math.min(e,r),t)}var nt={},at={exports:{}},rn={},A={},de={};Object.defineProperty(de,"__esModule",{value:!0});de.dontSetMe=ao;de.findInArray=eo;de.int=no;de.isFunction=to;de.isNum=ro;function eo(e,t){for(let r=0,n=e.length;r<n;r++)if(t.apply(t,[e[r],r,e]))return e[r]}function to(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Function]"}function ro(e){return typeof e=="number"&&!isNaN(e)}function no(e){return parseInt(e,10)}function ao(e,t,r){if(e[t])return new Error(`Invalid prop ${t} passed to ${r} - do not set this, set it on the child.`)}var Oe={};Object.defineProperty(Oe,"__esModule",{value:!0});Oe.browserPrefixToKey=an;Oe.browserPrefixToStyle=oo;Oe.default=void 0;Oe.getPrefix=nn;const gt=["Moz","Webkit","O","ms"];function nn(){var r,n;let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"transform";if(typeof window>"u")return"";const t=(n=(r=window.document)==null?void 0:r.documentElement)==null?void 0:n.style;if(!t||e in t)return"";for(let a=0;a<gt.length;a++)if(an(e,gt[a])in t)return gt[a];return""}function an(e,t){return t?`${t}${so(e)}`:e}function oo(e,t){return t?`-${t.toLowerCase()}-${e}`:e}function so(e){let t="",r=!0;for(let n=0;n<e.length;n++)r?(t+=e[n].toUpperCase(),r=!1):e[n]==="-"?r=!0:t+=e[n];return t}Oe.default=nn();Object.defineProperty(A,"__esModule",{value:!0});A.addClassName=ln;A.addEvent=lo;A.addUserSelectStyles=wo;A.createCSSTransform=mo;A.createSVGTransform=yo;A.getTouch=vo;A.getTouchIdentifier=bo;A.getTranslation=Vt;A.innerHeight=po;A.innerWidth=ho;A.matchesSelector=sn;A.matchesSelectorAndParentsTo=io;A.offsetXYFromParent=go;A.outerHeight=co;A.outerWidth=fo;A.removeClassName=un;A.removeEvent=uo;A.scheduleRemoveUserSelectStyles=xo;var te=de,vr=on(Oe);function on(e,t){if(typeof WeakMap=="function")var r=new WeakMap,n=new WeakMap;return(on=function(a,o){if(!o&&a&&a.__esModule)return a;var s,l,i={__proto__:null,default:a};if(a===null||typeof a!="object"&&typeof a!="function")return i;if(s=o?n:r){if(s.has(a))return s.get(a);s.set(a,i)}for(const u in a)u!=="default"&&{}.hasOwnProperty.call(a,u)&&((l=(s=Object.defineProperty)&&Object.getOwnPropertyDescriptor(a,u))&&(l.get||l.set)?s(i,u,l):i[u]=a[u]);return i})(e,t)}let Ge="";function sn(e,t){return Ge||(Ge=(0,te.findInArray)(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(r){return(0,te.isFunction)(e[r])})),(0,te.isFunction)(e[Ge])?e[Ge](t):!1}function io(e,t,r){let n=e;do{if(sn(n,t))return!0;if(n===r)return!1;n=n.parentNode}while(n);return!1}function lo(e,t,r,n){if(!e)return;const a={capture:!0,...n};e.addEventListener?e.addEventListener(t,r,a):e.attachEvent?e.attachEvent("on"+t,r):e["on"+t]=r}function uo(e,t,r,n){if(!e)return;const a={capture:!0,...n};e.removeEventListener?e.removeEventListener(t,r,a):e.detachEvent?e.detachEvent("on"+t,r):e["on"+t]=null}function co(e){let t=e.clientHeight;const r=e.ownerDocument.defaultView.getComputedStyle(e);return t+=(0,te.int)(r.borderTopWidth),t+=(0,te.int)(r.borderBottomWidth),t}function fo(e){let t=e.clientWidth;const r=e.ownerDocument.defaultView.getComputedStyle(e);return t+=(0,te.int)(r.borderLeftWidth),t+=(0,te.int)(r.borderRightWidth),t}function po(e){let t=e.clientHeight;const r=e.ownerDocument.defaultView.getComputedStyle(e);return t-=(0,te.int)(r.paddingTop),t-=(0,te.int)(r.paddingBottom),t}function ho(e){let t=e.clientWidth;const r=e.ownerDocument.defaultView.getComputedStyle(e);return t-=(0,te.int)(r.paddingLeft),t-=(0,te.int)(r.paddingRight),t}function go(e,t,r){const a=t===t.ownerDocument.body?{left:0,top:0}:t.getBoundingClientRect(),o=(e.clientX+t.scrollLeft-a.left)/r,s=(e.clientY+t.scrollTop-a.top)/r;return{x:o,y:s}}function mo(e,t){const r=Vt(e,t,"px");return{[(0,vr.browserPrefixToKey)("transform",vr.default)]:r}}function yo(e,t){return Vt(e,t,"")}function Vt(e,t,r){let{x:n,y:a}=e,o=`translate(${n}${r},${a}${r})`;if(t){const s=`${typeof t.x=="string"?t.x:t.x+r}`,l=`${typeof t.y=="string"?t.y:t.y+r}`;o=`translate(${s}, ${l})`+o}return o}function vo(e,t){return e.targetTouches&&(0,te.findInArray)(e.targetTouches,r=>t===r.identifier)||e.changedTouches&&(0,te.findInArray)(e.changedTouches,r=>t===r.identifier)}function bo(e){if(e.targetTouches&&e.targetTouches[0])return e.targetTouches[0].identifier;if(e.changedTouches&&e.changedTouches[0])return e.changedTouches[0].identifier}function wo(e){if(!e)return;let t=e.getElementById("react-draggable-style-el");t||(t=e.createElement("style"),t.type="text/css",t.id="react-draggable-style-el",t.innerHTML=`.react-draggable-transparent-selection *::-moz-selection {all: inherit;} `,t.innerHTML+=`.react-draggable-transparent-selection *::selection {all: inherit;} `,e.getElementsByTagName("head")[0].appendChild(t)),e.body&&ln(e.body,"react-draggable-transparent-selection")}function xo(e){window.requestAnimationFrame?window.requestAnimationFrame(()=>{br(e)}):br(e)}function br(e){if(e)try{if(e.body&&un(e.body,"react-draggable-transparent-selection"),e.selection)e.selection.empty();else{const t=(e.defaultView||window).getSelection();t&&t.type!=="Caret"&&t.removeAllRanges()}}catch{}}function ln(e,t){e.classList?e.classList.add(t):e.className.match(new RegExp(`(?:^|\\s)${t}(?!\\S)`))||(e.className+=` ${t}`)}function un(e,t){e.classList?e.classList.remove(t):e.className=e.className.replace(new RegExp(`(?:^|\\s)${t}(?!\\S)`,"g"),"")}var fe={};Object.defineProperty(fe,"__esModule",{value:!0});fe.canDragX=Ro;fe.canDragY=_o;fe.createCoreData=Po;fe.createDraggableData=Eo;fe.getBoundPosition=So;fe.getControlPosition=Oo;fe.snapToGrid=Do;var ee=de,je=A;function So(e,t,r){if(!e.props.bounds)return[t,r];let{bounds:n}=e.props;n=typeof n=="string"?n:Co(n);const a=Kt(e);if(typeof n=="string"){const{ownerDocument:o}=a,s=o.defaultView;let l;if(n==="parent"?l=a.parentNode:l=a.getRootNode().querySelector(n),!(l instanceof s.HTMLElement))throw new Error('Bounds selector "'+n+'" could not find an element.');const i=l,u=s.getComputedStyle(a),c=s.getComputedStyle(i);n={left:-a.offsetLeft+(0,ee.int)(c.paddingLeft)+(0,ee.int)(u.marginLeft),top:-a.offsetTop+(0,ee.int)(c.paddingTop)+(0,ee.int)(u.marginTop),right:(0,je.innerWidth)(i)-(0,je.outerWidth)(a)-a.offsetLeft+(0,ee.int)(c.paddingRight)-(0,ee.int)(u.marginRight),bottom:(0,je.innerHeight)(i)-(0,je.outerHeight)(a)-a.offsetTop+(0,ee.int)(c.paddingBottom)-(0,ee.int)(u.marginBottom)}}return(0,ee.isNum)(n.right)&&(t=Math.min(t,n.right)),(0,ee.isNum)(n.bottom)&&(r=Math.min(r,n.bottom)),(0,ee.isNum)(n.left)&&(t=Math.max(t,n.left)),(0,ee.isNum)(n.top)&&(r=Math.max(r,n.top)),[t,r]}function Do(e,t,r){const n=Math.round(t/e[0])*e[0],a=Math.round(r/e[1])*e[1];return[n,a]}function Ro(e){return e.props.axis==="both"||e.props.axis==="x"}function _o(e){return e.props.axis==="both"||e.props.axis==="y"}function Oo(e,t,r){const n=typeof t=="number"?(0,je.getTouch)(e,t):null;if(typeof t=="number"&&!n)return null;const a=Kt(r),o=r.props.offsetParent||a.offsetParent||a.ownerDocument.body;return(0,je.offsetXYFromParent)(n||e,o,r.props.scale)}function Po(e,t,r){const n=!(0,ee.isNum)(e.lastX),a=Kt(e);return n?{node:a,deltaX:0,deltaY:0,lastX:t,lastY:r,x:t,y:r}:{node:a,deltaX:t-e.lastX,deltaY:r-e.lastY,lastX:e.lastX,lastY:e.lastY,x:t,y:r}}function Eo(e,t){const r=e.props.scale;return{node:t.node,x:e.state.x+t.deltaX/r,y:e.state.y+t.deltaY/r,deltaX:t.deltaX/r,deltaY:t.deltaY/r,lastX:e.state.x,lastY:e.state.y}}function Co(e){return{left:e.left,top:e.top,right:e.right,bottom:e.bottom}}function Kt(e){const t=e.findDOMNode();if(!t)throw new Error("<DraggableCore>: Unmounted during event!");return t}var ot={},st={};Object.defineProperty(st,"__esModule",{value:!0});st.default=zo;function zo(){}Object.defineProperty(ot,"__esModule",{value:!0});ot.default=void 0;var mt=cn(z),Z=Zt(ye),jo=Zt(kt),X=A,he=fe,yt=de,$e=Zt(st);function Zt(e){return e&&e.__esModule?e:{default:e}}function cn(e,t){if(typeof WeakMap=="function")var r=new WeakMap,n=new WeakMap;return(cn=function(a,o){if(!o&&a&&a.__esModule)return a;var s,l,i={__proto__:null,default:a};if(a===null||typeof a!="object"&&typeof a!="function")return i;if(s=o?n:r){if(s.has(a))return s.get(a);s.set(a,i)}for(const u in a)u!=="default"&&{}.hasOwnProperty.call(a,u)&&((l=(s=Object.defineProperty)&&Object.getOwnPropertyDescriptor(a,u))&&(l.get||l.set)?s(i,u,l):i[u]=a[u]);return i})(e,t)}function J(e,t,r){return(t=Mo(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Mo(e){var t=To(e,"string");return typeof t=="symbol"?t:t+""}function To(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}const ae={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}};let ge=ae.mouse,it=class extends mt.Component{constructor(){super(...arguments),J(this,"dragging",!1),J(this,"lastX",NaN),J(this,"lastY",NaN),J(this,"touchIdentifier",null),J(this,"mounted",!1),J(this,"handleDragStart",t=>{if(this.props.onMouseDown(t),!this.props.allowAnyClick&&typeof t.button=="number"&&t.button!==0)return!1;const r=this.findDOMNode();if(!r||!r.ownerDocument||!r.ownerDocument.body)throw new Error("<DraggableCore> not mounted on DragStart!");const{ownerDocument:n}=r;if(this.props.disabled||!(t.target instanceof n.defaultView.Node)||this.props.handle&&!(0,X.matchesSelectorAndParentsTo)(t.target,this.props.handle,r)||this.props.cancel&&(0,X.matchesSelectorAndParentsTo)(t.target,this.props.cancel,r))return;t.type==="touchstart"&&!this.props.allowMobileScroll&&t.preventDefault();const a=(0,X.getTouchIdentifier)(t);this.touchIdentifier=a;const o=(0,he.getControlPosition)(t,a,this);if(o==null)return;const{x:s,y:l}=o,i=(0,he.createCoreData)(this,s,l);(0,$e.default)("DraggableCore: handleDragStart: %j",i),(0,$e.default)("calling",this.props.onStart),!(this.props.onStart(t,i)===!1||this.mounted===!1)&&(this.props.enableUserSelectHack&&(0,X.addUserSelectStyles)(n),this.dragging=!0,this.lastX=s,this.lastY=l,(0,X.addEvent)(n,ge.move,this.handleDrag),(0,X.addEvent)(n,ge.stop,this.handleDragStop))}),J(this,"handleDrag",t=>{const r=(0,he.getControlPosition)(t,this.touchIdentifier,this);if(r==null)return;let{x:n,y:a}=r;if(Array.isArray(this.props.grid)){let l=n-this.lastX,i=a-this.lastY;if([l,i]=(0,he.snapToGrid)(this.props.grid,l,i),!l&&!i)return;n=this.lastX+l,a=this.lastY+i}const o=(0,he.createCoreData)(this,n,a);if((0,$e.default)("DraggableCore: handleDrag: %j",o),this.props.onDrag(t,o)===!1||this.mounted===!1){try{this.handleDragStop(new MouseEvent("mouseup"))}catch{const i=document.createEvent("MouseEvents");i.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),this.handleDragStop(i)}return}this.lastX=n,this.lastY=a}),J(this,"handleDragStop",t=>{if(!this.dragging)return;const r=(0,he.getControlPosition)(t,this.touchIdentifier,this);if(r==null)return;let{x:n,y:a}=r;if(Array.isArray(this.props.grid)){let i=n-this.lastX||0,u=a-this.lastY||0;[i,u]=(0,he.snapToGrid)(this.props.grid,i,u),n=this.lastX+i,a=this.lastY+u}const o=(0,he.createCoreData)(this,n,a);if(this.props.onStop(t,o)===!1||this.mounted===!1)return!1;const l=this.findDOMNode();l&&this.props.enableUserSelectHack&&(0,X.scheduleRemoveUserSelectStyles)(l.ownerDocument),(0,$e.default)("DraggableCore: handleDragStop: %j",o),this.dragging=!1,this.lastX=NaN,this.lastY=NaN,l&&((0,$e.default)("DraggableCore: Removing handlers"),(0,X.removeEvent)(l.ownerDocument,ge.move,this.handleDrag),(0,X.removeEvent)(l.ownerDocument,ge.stop,this.handleDragStop))}),J(this,"onMouseDown",t=>(ge=ae.mouse,this.handleDragStart(t))),J(this,"onMouseUp",t=>(ge=ae.mouse,this.handleDragStop(t))),J(this,"onTouchStart",t=>(ge=ae.touch,this.handleDragStart(t))),J(this,"onTouchEnd",t=>(ge=ae.touch,this.handleDragStop(t)))}componentDidMount(){this.mounted=!0;const t=this.findDOMNode();t&&(0,X.addEvent)(t,ae.touch.start,this.onTouchStart,{passive:!1})}componentWillUnmount(){this.mounted=!1;const t=this.findDOMNode();if(t){const{ownerDocument:r}=t;(0,X.removeEvent)(r,ae.mouse.move,this.handleDrag),(0,X.removeEvent)(r,ae.touch.move,this.handleDrag),(0,X.removeEvent)(r,ae.mouse.stop,this.handleDragStop),(0,X.removeEvent)(r,ae.touch.stop,this.handleDragStop),(0,X.removeEvent)(t,ae.touch.start,this.onTouchStart,{passive:!1}),this.props.enableUserSelectHack&&(0,X.scheduleRemoveUserSelectStyles)(r)}}findDOMNode(){var t,r,n;return(t=this.props)!=null&&t.nodeRef?(n=(r=this.props)==null?void 0:r.nodeRef)==null?void 0:n.current:jo.default.findDOMNode(this)}render(){return mt.cloneElement(mt.Children.only(this.props.children),{onMouseDown:this.onMouseDown,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}};ot.default=it;J(it,"displayName","DraggableCore");J(it,"propTypes",{allowAnyClick:Z.default.bool,allowMobileScroll:Z.default.bool,children:Z.default.node.isRequired,disabled:Z.default.bool,enableUserSelectHack:Z.default.bool,offsetParent:function(e,t){if(e[t]&&e[t].nodeType!==1)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:Z.default.arrayOf(Z.default.number),handle:Z.default.string,cancel:Z.default.string,nodeRef:Z.default.object,onStart:Z.default.func,onDrag:Z.default.func,onStop:Z.default.func,onMouseDown:Z.default.func,scale:Z.default.number,className:yt.dontSetMe,style:yt.dontSetMe,transform:yt.dontSetMe});J(it,"defaultProps",{allowAnyClick:!1,allowMobileScroll:!1,disabled:!1,enableUserSelectHack:!0,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){},scale:1});(function(e){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"DraggableCore",{enumerable:!0,get:function(){return i.default}}),e.default=void 0;var t=d(z),r=c(ye),n=c(kt),a=et,o=A,s=fe,l=de,i=c(ot),u=c(st);function c(g){return g&&g.__esModule?g:{default:g}}function d(g,v){if(typeof WeakMap=="function")var y=new WeakMap,x=new WeakMap;return(d=function(m,O){if(!O&&m&&m.__esModule)return m;var H,$,j={__proto__:null,default:m};if(m===null||typeof m!="object"&&typeof m!="function")return j;if(H=O?x:y){if(H.has(m))return H.get(m);H.set(m,j)}for(const W in m)W!=="default"&&{}.hasOwnProperty.call(m,W)&&(($=(H=Object.defineProperty)&&Object.getOwnPropertyDescriptor(m,W))&&($.get||$.set)?H(j,W,$):j[W]=m[W]);return j})(g,v)}function p(){return p=Object.assign?Object.assign.bind():function(g){for(var v=1;v<arguments.length;v++){var y=arguments[v];for(var x in y)({}).hasOwnProperty.call(y,x)&&(g[x]=y[x])}return g},p.apply(null,arguments)}function h(g,v,y){return(v=w(v))in g?Object.defineProperty(g,v,{value:y,enumerable:!0,configurable:!0,writable:!0}):g[v]=y,g}function w(g){var v=S(g,"string");return typeof v=="symbol"?v:v+""}function S(g,v){if(typeof g!="object"||!g)return g;var y=g[Symbol.toPrimitive];if(y!==void 0){var x=y.call(g,v||"default");if(typeof x!="object")return x;throw new TypeError("@@toPrimitive must return a primitive value.")}return(v==="string"?String:Number)(g)}class D extends t.Component{static getDerivedStateFromProps(v,y){let{position:x}=v,{prevPropsPosition:m}=y;return x&&(!m||x.x!==m.x||x.y!==m.y)?((0,u.default)("Draggable: getDerivedStateFromProps %j",{position:x,prevPropsPosition:m}),{x:x.x,y:x.y,prevPropsPosition:{...x}}):null}constructor(v){super(v),h(this,"onDragStart",(y,x)=>{if((0,u.default)("Draggable: onDragStart: %j",x),this.props.onStart(y,(0,s.createDraggableData)(this,x))===!1)return!1;this.setState({dragging:!0,dragged:!0})}),h(this,"onDrag",(y,x)=>{if(!this.state.dragging)return!1;(0,u.default)("Draggable: onDrag: %j",x);const m=(0,s.createDraggableData)(this,x),O={x:m.x,y:m.y,slackX:0,slackY:0};if(this.props.bounds){const{x:$,y:j}=O;O.x+=this.state.slackX,O.y+=this.state.slackY;const[W,F]=(0,s.getBoundPosition)(this,O.x,O.y);O.x=W,O.y=F,O.slackX=this.state.slackX+($-O.x),O.slackY=this.state.slackY+(j-O.y),m.x=O.x,m.y=O.y,m.deltaX=O.x-this.state.x,m.deltaY=O.y-this.state.y}if(this.props.onDrag(y,m)===!1)return!1;this.setState(O)}),h(this,"onDragStop",(y,x)=>{if(!this.state.dragging||this.props.onStop(y,(0,s.createDraggableData)(this,x))===!1)return!1;(0,u.default)("Draggable: onDragStop: %j",x);const O={dragging:!1,slackX:0,slackY:0};if(!!this.props.position){const{x:$,y:j}=this.props.position;O.x=$,O.y=j}this.setState(O)}),this.state={dragging:!1,dragged:!1,x:v.position?v.position.x:v.defaultPosition.x,y:v.position?v.position.y:v.defaultPosition.y,prevPropsPosition:{...v.position},slackX:0,slackY:0,isElementSVG:!1},v.position&&!(v.onDrag||v.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(){var v,y;return((y=(v=this.props)==null?void 0:v.nodeRef)==null?void 0:y.current)??n.default.findDOMNode(this)}render(){const{axis:v,bounds:y,children:x,defaultPosition:m,defaultClassName:O,defaultClassNameDragging:H,defaultClassNameDragged:$,position:j,positionOffset:W,scale:F,...ve}=this.props;let K={},He=null;const be=!!!j||this.state.dragging,we=j||m,Be={x:(0,s.canDragX)(this)&&be?this.state.x:we.x,y:(0,s.canDragY)(this)&&be?this.state.y:we.y};this.state.isElementSVG?He=(0,o.createSVGTransform)(Be,W):K=(0,o.createCSSTransform)(Be,W);const pt=(0,a.clsx)(x.props.className||"",O,{[H]:this.state.dragging,[$]:this.state.dragged});return t.createElement(i.default,p({},ve,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),t.cloneElement(t.Children.only(x),{className:pt,style:{...x.props.style,...K},transform:He}))}}e.default=D,h(D,"displayName","Draggable"),h(D,"propTypes",{...i.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:l.dontSetMe,style:l.dontSetMe,transform:l.dontSetMe}),h(D,"defaultProps",{...i.default.defaultProps,axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},scale:1})})(rn);const{default:dn,DraggableCore:Lo}=rn;at.exports=dn;at.exports.default=dn;at.exports.DraggableCore=Lo;var fn=at.exports,lt={exports:{}},Ie={},Jt={};Jt.__esModule=!0;Jt.cloneElement=Ao;var Ho=$o(z);function $o(e){return e&&e.__esModule?e:{default:e}}function wr(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function xr(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?wr(Object(r),!0).forEach(function(n){ko(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):wr(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function ko(e,t,r){return t=Wo(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Wo(e){var t=No(e,"string");return typeof t=="symbol"?t:String(t)}function No(e,t){if(typeof e!="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Ao(e,t){return t.style&&e.props.style&&(t.style=xr(xr({},e.props.style),t.style)),t.className&&e.props.className&&(t.className=e.props.className+" "+t.className),Ho.default.cloneElement(e,t)}var qe={};qe.__esModule=!0;qe.resizableProps=void 0;var P=Io(ye);function Io(e){return e&&e.__esModule?e:{default:e}}var qo={axis:P.default.oneOf(["both","x","y","none"]),className:P.default.string,children:P.default.element.isRequired,draggableOpts:P.default.shape({allowAnyClick:P.default.bool,cancel:P.default.string,children:P.default.node,disabled:P.default.bool,enableUserSelectHack:P.default.bool,offsetParent:P.default.node,grid:P.default.arrayOf(P.default.number),handle:P.default.string,nodeRef:P.default.object,onStart:P.default.func,onDrag:P.default.func,onStop:P.default.func,onMouseDown:P.default.func,scale:P.default.number}),height:function(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];var a=r[0];if(a.axis==="both"||a.axis==="y"){var o;return(o=P.default.number).isRequired.apply(o,r)}return P.default.number.apply(P.default,r)},handle:P.default.oneOfType([P.default.node,P.default.func]),handleSize:P.default.arrayOf(P.default.number),lockAspectRatio:P.default.bool,maxConstraints:P.default.arrayOf(P.default.number),minConstraints:P.default.arrayOf(P.default.number),onResizeStop:P.default.func,onResizeStart:P.default.func,onResize:P.default.func,resizeHandles:P.default.arrayOf(P.default.oneOf(["s","w","e","n","sw","nw","se","ne"])),transformScale:P.default.number,width:function(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];var a=r[0];if(a.axis==="both"||a.axis==="x"){var o;return(o=P.default.number).isRequired.apply(o,r)}return P.default.number.apply(P.default,r)}};qe.resizableProps=qo;Ie.__esModule=!0;Ie.default=void 0;var ke=Yo(z),Bo=fn,Go=Jt,Fo=qe,Uo=["children","className","draggableOpts","width","height","handle","handleSize","lockAspectRatio","axis","minConstraints","maxConstraints","onResize","onResizeStop","onResizeStart","resizeHandles","transformScale"];function pn(e){if(typeof WeakMap!="function")return null;var t=new WeakMap,r=new WeakMap;return(pn=function(a){return a?r:t})(e)}function Yo(e,t){if(e&&e.__esModule)return e;if(e===null||typeof e!="object"&&typeof e!="function")return{default:e};var r=pn(t);if(r&&r.has(e))return r.get(e);var n={},a=Object.defineProperty&&Object.getOwnPropertyDes