unleash-server 7.6.1 → 7.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta.d.ts.map +1 -1
- package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta.js +29 -17
- package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta.js.map +1 -1
- package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta.test.js +99 -0
- package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta.test.js.map +1 -1
- package/dist/lib/features/feature-search/feature.search.e2e.test.js +1 -1
- package/dist/lib/features/feature-search/feature.search.e2e.test.js.map +1 -1
- package/dist/lib/openapi/spec/feature-search-query-parameters.d.ts +1 -1
- package/dist/lib/openapi/spec/feature-search-query-parameters.d.ts.map +1 -1
- package/dist/lib/openapi/spec/feature-search-query-parameters.js.map +1 -1
- package/dist/lib/routes/logout.d.ts +0 -1
- package/dist/lib/routes/logout.d.ts.map +1 -1
- package/dist/lib/routes/logout.js +1 -5
- package/dist/lib/routes/logout.js.map +1 -1
- package/dist/lib/routes/logout.test.js +4 -4
- package/dist/lib/routes/logout.test.js.map +1 -1
- package/dist/lib/services/user-service.d.ts.map +1 -1
- package/dist/lib/services/user-service.js +0 -4
- package/dist/lib/services/user-service.js.map +1 -1
- package/dist/lib/types/experimental.d.ts +1 -1
- package/dist/lib/types/experimental.d.ts.map +1 -1
- package/dist/lib/types/experimental.js +2 -4
- package/dist/lib/types/experimental.js.map +1 -1
- package/dist/server-dev.js +1 -1
- package/dist/server-dev.js.map +1 -1
- package/frontend/build/index.html +1 -1
- package/frontend/build/static/{AdvancedPlayground-CJ7eG--B.js → AdvancedPlayground-BTPrG6RW.js} +1 -1
- package/frontend/build/static/{BackendConnections-C9C9tzVe.js → BackendConnections-CRh8Vxoe.js} +1 -1
- package/frontend/build/static/{CreateProject-C2o4HAPI.js → CreateProject-DEMalH1j.js} +1 -1
- package/frontend/build/static/{EnterpriseEdge-wEksSFXY.js → EnterpriseEdge-Cp-pGMa0.js} +1 -1
- package/frontend/build/static/{FeatureMetricsChart-Dg3LuBck.js → FeatureMetricsChart-DQOE71LA.js} +2 -2
- package/frontend/build/static/FeatureStaleDialog-B6BfnDiQ.js +689 -0
- package/frontend/build/static/{FeatureViewLazyExport-0rEqFrgo.js → FeatureViewLazyExport-BkNTNFqK.js} +3 -3
- package/frontend/build/static/{FlagMetricsChart-DbKM-kaT.js → FlagMetricsChart-zYDF9bet.js} +1 -1
- package/frontend/build/static/FrontendNetworkTrafficUsage-CbxdFXH7.js +1 -0
- package/frontend/build/static/GridLayoutWrapper-Cq6Bzm36.js +3 -0
- package/frontend/build/static/{ImpactMetricsPage-BDLs7Gss.js → ImpactMetricsPage-CFYXYXPb.js} +1 -1
- package/frontend/build/static/LazyAdminExport-ByTh4iFa.js +38 -0
- package/frontend/build/static/{LazyProjectExport-B5ifELrF.js → LazyProjectExport-K12Xy3w9.js} +19 -701
- package/frontend/build/static/{LifecycleChartComponent-CJWEy-Ub.js → LifecycleChartComponent-DHvlFNd2.js} +1 -1
- package/frontend/build/static/LineChartComponent-BlhKm3cw.js +1 -0
- package/frontend/build/static/{MarkCompletedDialogue-C86IfCH-.js → MarkCompletedDialogue-apmlFjVY.js} +1 -1
- package/frontend/build/static/{NetworkOverview-Cjz8v1WC.js → NetworkOverview-BiLOuQ4c.js} +1 -1
- package/frontend/build/static/{NetworkPrometheusAPIWarning-qXY7ao0F.js → NetworkPrometheusAPIWarning-CYo3j2Tj.js} +1 -1
- package/frontend/build/static/{NetworkTraffic-BBEsgALR.js → NetworkTraffic-DONL5oIx.js} +1 -1
- package/frontend/build/static/{NetworkTrafficUsage-a6syIscc.js → NetworkTrafficUsage-DjQiYq0S.js} +1 -1
- package/frontend/build/static/{PercentageDonut-CC9h07JZ.js → PercentageDonut-CA9hYg3v.js} +1 -1
- package/frontend/build/static/{ReactJSONEditor-B-T6_DlA.js → ReactJSONEditor-9cJL1vJY.js} +1 -1
- package/frontend/build/static/{RoleCell-4trKLU2Y.js → RoleCell-ZzU5Oqy8.js} +1 -1
- package/frontend/build/static/Safeguard-DY1N4aPz.js +1 -0
- package/frontend/build/static/{aggregateFeatureMetrics-CAg4DbsF.js → aggregateFeatureMetrics-D6bHft_C.js} +1 -1
- package/frontend/build/static/{formatTickValue-BxmGFWwJ.js → formatTickValue-BcLsqREh.js} +1 -1
- package/frontend/build/static/{index-Cikp5fMR.js → index-CoLhlfXP.js} +131 -135
- package/frontend/build/static/{networkTrafficUsageHighlightPlugin-mvUd1fv5.js → networkTrafficUsageHighlightPlugin-CqEM-cK_.js} +1 -1
- package/frontend/build/static/{useApiTokens-BHKIbW5c.js → useApiTokens-ClWvohC9.js} +1 -1
- package/frontend/package.json +2 -2
- package/package.json +3 -3
- package/frontend/build/static/FeatureStaleDialog-DmUpnOZe.js +0 -7
- package/frontend/build/static/FrontendNetworkTrafficUsage-DkvZ1uov.js +0 -1
- package/frontend/build/static/GridLayoutWrapper-Dwn6EwoE.js +0 -3
- package/frontend/build/static/LazyAdminExport-CE3juyvl.js +0 -38
- package/frontend/build/static/LineChartComponent-tPwau2Yw.js +0 -1
- package/frontend/build/static/Safeguard-DArPoSLG.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{E as _,j as i,F as z,e9 as j,hE as k,e8 as N,r as d,e6 as P,B as W,j8 as J,s as u,i as H,J as G,gr as O,gQ as D,fO as Q,fU as V,ea as R,cp as B,b6 as L,b8 as T,e4 as Y,eb as K,cQ as X,b as Z,bp as tt,ln as et}from"./index-Cikp5fMR.js";import{f as b,T as ot,a as p,p as f,b as g,d as at,c as rt,u as nt,e as st,g as lt,h as ct}from"./LazyAdminExport-CE3juyvl.js";import{f as it}from"./formatTickValue-BxmGFWwJ.js";var y={},ut=z;Object.defineProperty(y,"__esModule",{value:!0});var I=y.default=void 0,dt=ut(_()),pt=i,gt=(0,dt.default)((0,pt.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");I=y.default=gt;const M=(t,e,r=!0)=>{const o=t.getFullYear(),a=t.getMonth(),s=b(t),n=N(t);return{key:s,year:o,month:a,dayCount:n,shortLabel:t.toLocaleString("en-US",{month:"short"}),label:e||t.toLocaleString("en-US",{month:"long",year:"numeric"}),selectable:r}},ht=t=>{const e=[M(t,"Current month")],r=j(t);for(let o=1;o<12;o++){const a=k(r,o);e.push(M(a,void 0,a>=ot))}return e},C=ht(p),mt=Object.fromEntries(C.map(t=>[t.key,t])),$="15rem",x=t=>t.spacing(3),q=u("button",{shouldForwardProp:t=>t!=="selected"})(({theme:t,selected:e})=>({cursor:"pointer",border:"none",backgroundColor:e?t.palette.secondary.light:"inherit",fontSize:t.typography.body1.fontSize,padding:t.spacing(.5),borderRadius:t.shape.borderRadius,color:t.palette.text.primary,transition:"background-color 0.2s ease",":focus-visible":{outline:`2px solid ${t.palette.primary.main}`},":hover:not(:disabled)":{backgroundColor:t.palette.action.hover}})),bt=u(q)(({theme:t})=>({":disabled":{cursor:"default",color:t.palette.text.disabled}})),ft=u(q)(({theme:t})=>({width:"100%",paddingBlock:t.spacing(1),textAlign:"left",borderRadius:0,paddingInline:x(t)})),yt=u(H)(({theme:t})=>({whiteSpace:"nowrap",width:$,justifyContent:"space-between",fontWeight:"normal",color:t.palette.text.primary,borderColor:t.palette.divider,":focus-within":{borderColor:t.palette.primary.main},":hover":{borderColor:t.palette.text.disabled,backgroundColor:"inherit"},transition:"border-color 0.1s ease"})),Ct=u("article")(({theme:t})=>({width:$,paddingBlock:t.spacing(2),display:"flex",flexFlow:"column",gap:t.spacing(2)})),xt=u("article")(({theme:t})=>({paddingInline:x(t)})),St=u("hgroup")(({theme:t})=>({h3:{margin:0,fontSize:t.typography.h3.fontSize},p:{color:t.palette.text.secondary,fontSize:t.typography.body2.fontSize}})),vt=u("ul")(({theme:t})=>({listStyle:"none",padding:0,display:"grid",gridTemplateColumns:"repeat(4, 1fr)",rowGap:t.spacing(1)})),Dt=u("article")(({theme:t})=>({display:"flex",width:"100%",flexFlow:"column",gap:t.spacing(.5)})),Rt=u("p")(({theme:t})=>({paddingInline:x(t),fontSize:t.typography.body2.fontSize,margin:0,color:t.palette.text.secondary,fontWeight:"bold"})),Mt=u("ul")(({theme:t})=>({listStyle:"none",margin:0,padding:0,width:"100%",li:{width:"100%"}})),wt=u(G)(({theme:t})=>({"& .MuiPaper-root":{borderRadius:t.shape.borderRadiusLarge,border:`1px solid ${t.palette.divider}`}})),_t=({selectedPeriod:t,setPeriod:e})=>{const r=[3,6,12].map(l=>({value:l,label:`Last ${l} months`})),[o,a]=d.useState(!1),s=d.useRef(null),n=l=>{e(l),a(!1)},c=t.grouping==="daily"?t.month===P(new Date,"yyyy-MM")?"Current month":f(t.month).toLocaleDateString("en-US",{month:"long",year:"numeric"}):`Last ${t.monthsBack} months`;return i.jsxs(W,{ref:s,children:[i.jsx(yt,{endIcon:o?i.jsx(I,{}):i.jsx(J,{}),variant:"outlined",disableRipple:!0,onClick:()=>a(!0),children:c}),i.jsxs(wt,{open:o,anchorEl:s.current,onClose:()=>a(!1),anchorOrigin:{vertical:"bottom",horizontal:"center"},transformOrigin:{vertical:"top",horizontal:"center"},children:[i.jsxs(Ct,{children:[i.jsxs(xt,{children:[i.jsxs(St,{children:[i.jsx("h3",{children:"Select month"}),i.jsx("p",{children:"Last 12 months"})]}),i.jsx(vt,{children:C.map(l=>i.jsx("li",{children:i.jsx(bt,{selected:t.grouping==="daily"&&l.key===t.month,disabled:!l.selectable,onClick:()=>{n({grouping:"daily",month:l.key})},children:l.shortLabel})},l.label))})]}),i.jsxs(Dt,{children:[i.jsx(Rt,{children:"Range"}),i.jsx(Mt,{children:r.map(l=>i.jsx("li",{children:i.jsxs(ft,{selected:t.grouping==="monthly"&&l.value===t.monthsBack,type:"button",onClick:()=>{n({grouping:"monthly",monthsBack:l.value})},children:["Last ",l.value," months"]})},l.label))})]})]})," "]})]})},h={"/api/admin":{label:"Admin",color:"#6D66D9",order:1},"/api/frontend":{label:"Frontend",color:"#A39EFF",order:2},"/api/client":{label:"Server",color:"#D8D6FF",order:3}},jt=(t,e)=>{const{newRecord:r,labels:o}=S(t);return{datasets:t.apiData.filter(s=>!0).sort((s,n)=>h[s.apiPath].order-h[n.apiPath].order).map(s=>{const n=r();for(const l of Object.values(s.dataPoints))n[l.period]=l.trafficTypes[0].count;const c=h[s.apiPath];return{label:c.label,data:Object.values(n),backgroundColor:c.color,hoverBackgroundColor:c.color}}),labels:o}},kt=t=>{const{newRecord:e,labels:r}=S(t);return{datasets:t.apiData.map(a=>{const s=e();for(const c of Object.values(a.dataPoints)){const l=c.connections;s[c.period]=l}const n={label:"Connections",color:"#6D66D9"};return{label:n.label,data:Object.values(s),backgroundColor:n.color,hoverBackgroundColor:n.color}}),labels:r}},Pt=t=>{const{newRecord:e,labels:r}=S(t);return{datasets:t.apiData.map(a=>{const s=e();for(const c of Object.values(a.dataPoints)){const l=c.requests;s[c.period]=l}const n={label:"Frontend requests",color:"#A39EFF"};return{label:n.label,data:Object.values(s),backgroundColor:n.color,hoverBackgroundColor:n.color}}),labels:r}},S=t=>{if(t.grouping==="monthly"){const e=g(t.dateRange.from),r=g(t.dateRange.to),o=Math.abs(O(r,e))+1,a={};for(let n=0;n<o;n++)a[b(D(e,n))]=0;const s=Array.from({length:o}).map((n,c)=>c===o-1?"Current month":b(D(e,c)));return{newRecord:()=>({...a}),labels:s}}else{const e=g(t.dateRange.from),r=g(t.dateRange.to),o=Math.abs(Q(r,e))+1,a={};for(let n=0;n<o;n++)a[at(V(e,n))]=0;const s=Array.from({length:o}).map((n,c)=>(c+1).toString());return{newRecord:()=>({...a}),labels:s}}},[Ot,...Bt]=Object.values(h).map(t=>t.label.toLowerCase()).toReversed(),w=`${Bt.toReversed().join(", ")}, and ${Ot}`,zt=t=>t.grouping==="daily"?`A bar chart showing daily traffic usage for ${new Date(t.month).toLocaleDateString("en-US",{month:"long",year:"numeric"})}. Each date shows ${w} requests.`:`A bar chart showing monthly total traffic usage for the current month and the preceding ${t.monthsBack} months. Each month shows ${w} requests.`,v=(t,e=new Date)=>{const r=o=>P(o,"yyyy-MM-dd");if(t.grouping==="daily"){const o=f(t.month),a=r(o),s=r(R(o));return{from:a,to:s}}else{const o=r(j(k(e,t.monthsBack))),a=r(R(e));return{from:o,to:a}}},Lt=t=>{if(t.grouping==="daily")return 0;const e=Math.abs(O(new Date(t.dateRange.to),new Date(t.dateRange.from))),r=t.apiData.map(o=>o.dataPoints.filter(({period:a})=>a!==rt).reduce((a,s)=>a+s.trafficTypes[0].count,0)).reduce((o,a)=>o+a,0);return Math.round(r/e)},Tt=(t,{from:e,to:r})=>{const o=`api/admin/metrics/connection?grouping=${t}&from=${e}&to=${r}`,{data:a,error:s,mutate:n}=B(L(o),It);return d.useMemo(()=>({refetch:()=>n(),result:a?{state:"success",data:a}:s?{state:"error",error:s}:{state:"loading"}}),[a,s,n])},It=t=>fetch(t).then(T("Metered Connections Metrics")).then(e=>e.json()),$t=(t,{from:e,to:r})=>{const o=`api/admin/metrics/request?grouping=${t}&from=${e}&to=${r}`,{data:a,error:s,mutate:n}=B(L(o),qt);return d.useMemo(()=>({refetch:()=>n(),result:a?{state:"success",data:a}:s?{state:"error",error:s}:{state:"loading"}}),[a,s,n])},qt=t=>fetch(t).then(T("Consumption Requests Metrics")).then(e=>e.json()),Nt=(t,e,r)=>{const{result:o}=nt(e.grouping,v(e,p)),{instanceStatus:a}=Y(),{instancePrices:s}=K(),n=(a==null?void 0:a.billing)==="pay-as-you-go"?s.payg.traffic:s.pro.traffic;return d.useMemo(()=>{if(o.state!=="success")return{chartData:{datasets:[],labels:[]},usageTotal:0,overageCost:0,estimatedMonthlyCost:0,requestSummaryUsage:0};const l=o.data,A=jt(l),m=st(l),E=ct(m,t,n),F=lt(l.apiData,t,p,n),U=e.grouping==="daily"?m:Lt(l);return{chartData:A,usageTotal:m,overageCost:E,estimatedMonthlyCost:F,requestSummaryUsage:U}},[JSON.stringify(o),t,JSON.stringify(e),n])},Wt=t=>{const{result:e}=Tt(t.grouping,v(t,p));return d.useMemo(()=>{if(e.state!=="success")return{chartData:{datasets:[],labels:[]}};const o=e.data;return{chartData:kt(o)}},[JSON.stringify(e),JSON.stringify(t)])},Jt=t=>{const{result:e}=$t(t.grouping,v(t,p));return d.useMemo(()=>{if(e.state!=="success")return{chartData:{datasets:[],labels:[]}};const o=e.data;return{chartData:Pt(o)}},[JSON.stringify(e),JSON.stringify(t)])},Ht=u(X)(({theme:t})=>({display:"grid",gap:t.spacing(5)})),Gt=u("div")(({theme:t})=>({display:"flex",flexFlow:"row wrap",justifyContent:"space-between",gap:t.spacing(2,4),alignItems:"start"})),Qt=u("span")(({theme:t})=>({fontWeight:"bold"})),At=(t,e,r,o)=>({plugins:{annotation:{clip:!1,annotations:{line:{type:"line",borderDash:[5,5],yMin:r?r/30:0,yMax:r?r/30:0,borderColor:"gray",borderWidth:1,display:!!r&&!!o,label:{backgroundColor:"rgba(192, 192, 192, 0.8)",color:"black",padding:{top:10,bottom:10,left:10,right:10},content:"Average daily requests included in your plan",display:!!r}}}},legend:{position:"bottom",labels:{color:t.palette.text.primary,pointStyle:"circle",usePointStyle:!0,boxHeight:6,padding:15,boxPadding:5}},tooltip:{backgroundColor:t.palette.background.paper,titleColor:t.palette.text.primary,bodyColor:t.palette.text.primary,bodySpacing:6,padding:{top:20,bottom:20,left:30,right:30},borderColor:"rgba(0, 0, 0, 0.05)",borderWidth:3,usePointStyle:!0,caretSize:0,boxPadding:10,callbacks:{title:e}}},responsive:!0,scales:{x:{stacked:!0,ticks:{color:t.palette.text.secondary},grid:{display:!1}},y:{stacked:!0,ticks:{color:t.palette.text.secondary,maxTicksLimit:5,callback:it},grid:{drawBorder:!1}}},elements:{bar:{borderRadius:5}},interaction:{mode:"index",intersect:!1}}),Vt=t=>{const e=Z(),{locationSettings:r}=tt(),[o,a]=d.useState({grouping:"daily",month:C[0].key}),s=d.useMemo(()=>At(e,n=>{if(o.grouping==="daily"){const c=mt[o.month];return new Date(c.year,c.month,Number.parseInt(n[0].label,10)).toLocaleDateString((r==null?void 0:r.locale)??"en-US",{month:"long",day:"numeric",year:"numeric"})}else{const c=f(n[0].label);return Number.isNaN(c.getTime())?"Current month to date":c.toLocaleDateString((r==null?void 0:r.locale)??"en-US",{month:"long",year:"numeric"})}},t,o.grouping==="daily"),[e,o,t]);return{chartDataSelection:o,setChartDataSelection:a,options:s}},Yt=et({bottomOverflow:34});export{Qt as B,_t as P,Ht as S,Gt as T,Nt as a,Wt as b,Jt as c,zt as g,Yt as n,Vt as u};
|
|
1
|
+
import{E as _,j as i,F as z,ea as k,hF as j,e9 as N,r as d,e7 as P,B as W,iT as J,s as u,i as H,J as G,gs as O,gR as D,fP as V,fV as Y,eb as R,cp as B,b6 as L,b8 as T,e5 as K,ec as Q,cR as X,b as Z,bp as tt,ln as et}from"./index-CoLhlfXP.js";import{f as b,T as ot,a as p,p as f,b as g,d as at,c as rt,u as nt,e as st,g as lt,h as ct}from"./LazyAdminExport-ByTh4iFa.js";import{f as it}from"./formatTickValue-BcLsqREh.js";var y={},ut=z;Object.defineProperty(y,"__esModule",{value:!0});var I=y.default=void 0,dt=ut(_()),pt=i,gt=(0,dt.default)((0,pt.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");I=y.default=gt;const M=(t,e,r=!0)=>{const o=t.getFullYear(),a=t.getMonth(),s=b(t),n=N(t);return{key:s,year:o,month:a,dayCount:n,shortLabel:t.toLocaleString("en-US",{month:"short"}),label:e||t.toLocaleString("en-US",{month:"long",year:"numeric"}),selectable:r}},ht=t=>{const e=[M(t,"Current month")],r=k(t);for(let o=1;o<12;o++){const a=j(r,o);e.push(M(a,void 0,a>=ot))}return e},C=ht(p),mt=Object.fromEntries(C.map(t=>[t.key,t])),$="15rem",x=t=>t.spacing(3),q=u("button",{shouldForwardProp:t=>t!=="selected"})(({theme:t,selected:e})=>({cursor:"pointer",border:"none",backgroundColor:e?t.palette.secondary.light:"inherit",fontSize:t.typography.body1.fontSize,padding:t.spacing(.5),borderRadius:t.shape.borderRadius,color:t.palette.text.primary,transition:"background-color 0.2s ease",":focus-visible":{outline:`2px solid ${t.palette.primary.main}`},":hover:not(:disabled)":{backgroundColor:t.palette.action.hover}})),bt=u(q)(({theme:t})=>({":disabled":{cursor:"default",color:t.palette.text.disabled}})),ft=u(q)(({theme:t})=>({width:"100%",paddingBlock:t.spacing(1),textAlign:"left",borderRadius:0,paddingInline:x(t)})),yt=u(H)(({theme:t})=>({whiteSpace:"nowrap",width:$,justifyContent:"space-between",fontWeight:"normal",color:t.palette.text.primary,borderColor:t.palette.divider,":focus-within":{borderColor:t.palette.primary.main},":hover":{borderColor:t.palette.text.disabled,backgroundColor:"inherit"},transition:"border-color 0.1s ease"})),Ct=u("article")(({theme:t})=>({width:$,paddingBlock:t.spacing(2),display:"flex",flexFlow:"column",gap:t.spacing(2)})),xt=u("article")(({theme:t})=>({paddingInline:x(t)})),St=u("hgroup")(({theme:t})=>({h3:{margin:0,fontSize:t.typography.h3.fontSize},p:{color:t.palette.text.secondary,fontSize:t.typography.body2.fontSize}})),vt=u("ul")(({theme:t})=>({listStyle:"none",padding:0,display:"grid",gridTemplateColumns:"repeat(4, 1fr)",rowGap:t.spacing(1)})),Dt=u("article")(({theme:t})=>({display:"flex",width:"100%",flexFlow:"column",gap:t.spacing(.5)})),Rt=u("p")(({theme:t})=>({paddingInline:x(t),fontSize:t.typography.body2.fontSize,margin:0,color:t.palette.text.secondary,fontWeight:"bold"})),Mt=u("ul")(({theme:t})=>({listStyle:"none",margin:0,padding:0,width:"100%",li:{width:"100%"}})),wt=u(G)(({theme:t})=>({"& .MuiPaper-root":{borderRadius:t.shape.borderRadiusLarge,border:`1px solid ${t.palette.divider}`}})),_t=({selectedPeriod:t,setPeriod:e})=>{const r=[3,6,12].map(l=>({value:l,label:`Last ${l} months`})),[o,a]=d.useState(!1),s=d.useRef(null),n=l=>{e(l),a(!1)},c=t.grouping==="daily"?t.month===P(new Date,"yyyy-MM")?"Current month":f(t.month).toLocaleDateString("en-US",{month:"long",year:"numeric"}):`Last ${t.monthsBack} months`;return i.jsxs(W,{ref:s,children:[i.jsx(yt,{endIcon:o?i.jsx(I,{}):i.jsx(J,{}),variant:"outlined",disableRipple:!0,onClick:()=>a(!0),children:c}),i.jsxs(wt,{open:o,anchorEl:s.current,onClose:()=>a(!1),anchorOrigin:{vertical:"bottom",horizontal:"center"},transformOrigin:{vertical:"top",horizontal:"center"},children:[i.jsxs(Ct,{children:[i.jsxs(xt,{children:[i.jsxs(St,{children:[i.jsx("h3",{children:"Select month"}),i.jsx("p",{children:"Last 12 months"})]}),i.jsx(vt,{children:C.map(l=>i.jsx("li",{children:i.jsx(bt,{selected:t.grouping==="daily"&&l.key===t.month,disabled:!l.selectable,onClick:()=>{n({grouping:"daily",month:l.key})},children:l.shortLabel})},l.label))})]}),i.jsxs(Dt,{children:[i.jsx(Rt,{children:"Range"}),i.jsx(Mt,{children:r.map(l=>i.jsx("li",{children:i.jsxs(ft,{selected:t.grouping==="monthly"&&l.value===t.monthsBack,type:"button",onClick:()=>{n({grouping:"monthly",monthsBack:l.value})},children:["Last ",l.value," months"]})},l.label))})]})]})," "]})]})},h={"/api/admin":{label:"Admin",color:"#6D66D9",order:1},"/api/frontend":{label:"Frontend",color:"#A39EFF",order:2},"/api/client":{label:"Server",color:"#D8D6FF",order:3}},kt=(t,e)=>{const{newRecord:r,labels:o}=S(t);return{datasets:t.apiData.filter(s=>!0).sort((s,n)=>h[s.apiPath].order-h[n.apiPath].order).map(s=>{const n=r();for(const l of Object.values(s.dataPoints))n[l.period]=l.trafficTypes[0].count;const c=h[s.apiPath];return{label:c.label,data:Object.values(n),backgroundColor:c.color,hoverBackgroundColor:c.color}}),labels:o}},jt=t=>{const{newRecord:e,labels:r}=S(t);return{datasets:t.apiData.map(a=>{const s=e();for(const c of Object.values(a.dataPoints)){const l=c.connections;s[c.period]=l}const n={label:"Connections",color:"#6D66D9"};return{label:n.label,data:Object.values(s),backgroundColor:n.color,hoverBackgroundColor:n.color}}),labels:r}},Pt=t=>{const{newRecord:e,labels:r}=S(t);return{datasets:t.apiData.map(a=>{const s=e();for(const c of Object.values(a.dataPoints)){const l=c.requests;s[c.period]=l}const n={label:"Frontend requests",color:"#A39EFF"};return{label:n.label,data:Object.values(s),backgroundColor:n.color,hoverBackgroundColor:n.color}}),labels:r}},S=t=>{if(t.grouping==="monthly"){const e=g(t.dateRange.from),r=g(t.dateRange.to),o=Math.abs(O(r,e))+1,a={};for(let n=0;n<o;n++)a[b(D(e,n))]=0;const s=Array.from({length:o}).map((n,c)=>c===o-1?"Current month":b(D(e,c)));return{newRecord:()=>({...a}),labels:s}}else{const e=g(t.dateRange.from),r=g(t.dateRange.to),o=Math.abs(V(r,e))+1,a={};for(let n=0;n<o;n++)a[at(Y(e,n))]=0;const s=Array.from({length:o}).map((n,c)=>(c+1).toString());return{newRecord:()=>({...a}),labels:s}}},[Ot,...Bt]=Object.values(h).map(t=>t.label.toLowerCase()).toReversed(),w=`${Bt.toReversed().join(", ")}, and ${Ot}`,zt=t=>t.grouping==="daily"?`A bar chart showing daily traffic usage for ${new Date(t.month).toLocaleDateString("en-US",{month:"long",year:"numeric"})}. Each date shows ${w} requests.`:`A bar chart showing monthly total traffic usage for the current month and the preceding ${t.monthsBack} months. Each month shows ${w} requests.`,v=(t,e=new Date)=>{const r=o=>P(o,"yyyy-MM-dd");if(t.grouping==="daily"){const o=f(t.month),a=r(o),s=r(R(o));return{from:a,to:s}}else{const o=r(k(j(e,t.monthsBack))),a=r(R(e));return{from:o,to:a}}},Lt=t=>{if(t.grouping==="daily")return 0;const e=Math.abs(O(new Date(t.dateRange.to),new Date(t.dateRange.from))),r=t.apiData.map(o=>o.dataPoints.filter(({period:a})=>a!==rt).reduce((a,s)=>a+s.trafficTypes[0].count,0)).reduce((o,a)=>o+a,0);return Math.round(r/e)},Tt=(t,{from:e,to:r})=>{const o=`api/admin/metrics/connection?grouping=${t}&from=${e}&to=${r}`,{data:a,error:s,mutate:n}=B(L(o),It);return d.useMemo(()=>({refetch:()=>n(),result:a?{state:"success",data:a}:s?{state:"error",error:s}:{state:"loading"}}),[a,s,n])},It=t=>fetch(t).then(T("Metered Connections Metrics")).then(e=>e.json()),$t=(t,{from:e,to:r})=>{const o=`api/admin/metrics/request?grouping=${t}&from=${e}&to=${r}`,{data:a,error:s,mutate:n}=B(L(o),qt);return d.useMemo(()=>({refetch:()=>n(),result:a?{state:"success",data:a}:s?{state:"error",error:s}:{state:"loading"}}),[a,s,n])},qt=t=>fetch(t).then(T("Consumption Requests Metrics")).then(e=>e.json()),Nt=(t,e,r)=>{const{result:o}=nt(e.grouping,v(e,p)),{instanceStatus:a}=K(),{instancePrices:s}=Q(),n=(a==null?void 0:a.billing)==="pay-as-you-go"?s.payg.traffic:s.pro.traffic;return d.useMemo(()=>{if(o.state!=="success")return{chartData:{datasets:[],labels:[]},usageTotal:0,overageCost:0,estimatedMonthlyCost:0,requestSummaryUsage:0};const l=o.data,F=kt(l),m=st(l),A=ct(m,t,n),E=lt(l.apiData,t,p,n),U=e.grouping==="daily"?m:Lt(l);return{chartData:F,usageTotal:m,overageCost:A,estimatedMonthlyCost:E,requestSummaryUsage:U}},[JSON.stringify(o),t,JSON.stringify(e),n])},Wt=t=>{const{result:e}=Tt(t.grouping,v(t,p));return d.useMemo(()=>{if(e.state!=="success")return{chartData:{datasets:[],labels:[]}};const o=e.data;return{chartData:jt(o)}},[JSON.stringify(e),JSON.stringify(t)])},Jt=t=>{const{result:e}=$t(t.grouping,v(t,p));return d.useMemo(()=>{if(e.state!=="success")return{chartData:{datasets:[],labels:[]}};const o=e.data;return{chartData:Pt(o)}},[JSON.stringify(e),JSON.stringify(t)])},Ht=u(X)(({theme:t})=>({display:"grid",gap:t.spacing(5)})),Gt=u("div")(({theme:t})=>({display:"flex",flexFlow:"row wrap",justifyContent:"space-between",gap:t.spacing(2,4),alignItems:"start"})),Vt=u("span")(({theme:t})=>({fontWeight:"bold"})),Ft=(t,e,r,o)=>({plugins:{annotation:{clip:!1,annotations:{line:{type:"line",borderDash:[5,5],yMin:r?r/30:0,yMax:r?r/30:0,borderColor:"gray",borderWidth:1,display:!!r&&!!o,label:{backgroundColor:"rgba(192, 192, 192, 0.8)",color:"black",padding:{top:10,bottom:10,left:10,right:10},content:"Average daily requests included in your plan",display:!!r}}}},legend:{position:"bottom",labels:{color:t.palette.text.primary,pointStyle:"circle",usePointStyle:!0,boxHeight:6,padding:15,boxPadding:5}},tooltip:{backgroundColor:t.palette.background.paper,titleColor:t.palette.text.primary,bodyColor:t.palette.text.primary,bodySpacing:6,padding:{top:20,bottom:20,left:30,right:30},borderColor:"rgba(0, 0, 0, 0.05)",borderWidth:3,usePointStyle:!0,caretSize:0,boxPadding:10,callbacks:{title:e}}},responsive:!0,scales:{x:{stacked:!0,ticks:{color:t.palette.text.secondary},grid:{display:!1}},y:{stacked:!0,ticks:{color:t.palette.text.secondary,maxTicksLimit:5,callback:it},grid:{drawBorder:!1}}},elements:{bar:{borderRadius:5}},interaction:{mode:"index",intersect:!1}}),Yt=t=>{const e=Z(),{locationSettings:r}=tt(),[o,a]=d.useState({grouping:"daily",month:C[0].key}),s=d.useMemo(()=>Ft(e,n=>{if(o.grouping==="daily"){const c=mt[o.month];return new Date(c.year,c.month,Number.parseInt(n[0].label,10)).toLocaleDateString((r==null?void 0:r.locale)??"en-US",{month:"long",day:"numeric",year:"numeric"})}else{const c=f(n[0].label);return Number.isNaN(c.getTime())?"Current month to date":c.toLocaleDateString((r==null?void 0:r.locale)??"en-US",{month:"long",year:"numeric"})}},t,o.grouping==="daily"),[e,o,t]);return{chartDataSelection:o,setChartDataSelection:a,options:s}},Kt=et({bottomOverflow:34});export{Vt as B,_t as P,Ht as S,Gt as T,Nt as a,Wt as b,Jt as c,zt as g,Kt as n,Yt as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b6 as p,cp as i,r as n,b8 as u}from"./index-
|
|
1
|
+
import{b6 as p,cp as i,r as n,b8 as u}from"./index-CoLhlfXP.js";const k=(s={})=>{const a=p("api/admin/api-tokens"),{data:t,error:e,mutate:o}=i(a,h,s),r=n.useMemo(()=>t??[],[t]),c=n.useCallback(()=>{o().catch(console.warn)},[o]);return{tokens:r,error:e,loading:!e&&!t,refetch:c}},h=async s=>(await(await fetch(s).then(u("Api tokens"))).json()).tokens;export{k as u};
|
package/frontend/package.json
CHANGED
|
@@ -76,8 +76,8 @@
|
|
|
76
76
|
"@types/react-table": "7.7.20",
|
|
77
77
|
"@types/react-test-renderer": "18.3.1",
|
|
78
78
|
"@types/semver": "7.7.1",
|
|
79
|
-
"@uiw/codemirror-theme-duotone": "4.25.
|
|
80
|
-
"@uiw/react-codemirror": "4.25.
|
|
79
|
+
"@uiw/codemirror-theme-duotone": "4.25.9",
|
|
80
|
+
"@uiw/react-codemirror": "4.25.9",
|
|
81
81
|
"@unleash/proxy-client-react": "^5.1.0-beta.2",
|
|
82
82
|
"@vitejs/plugin-react": "4.7.0",
|
|
83
83
|
"cartesian": "^1.0.1",
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "unleash-server",
|
|
3
3
|
"type": "module",
|
|
4
4
|
"description": "Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.",
|
|
5
|
-
"version": "7.6.
|
|
5
|
+
"version": "7.6.2",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"unleash",
|
|
8
8
|
"feature flag",
|
|
@@ -130,7 +130,7 @@
|
|
|
130
130
|
"serve-favicon": "^2.5.1",
|
|
131
131
|
"slug": "^11.0.1",
|
|
132
132
|
"stoppable": "^1.1.0",
|
|
133
|
-
"tldts": "7.0.
|
|
133
|
+
"tldts": "7.0.28",
|
|
134
134
|
"ts-toolbelt": "^9.6.0",
|
|
135
135
|
"type-is": "^2.0.1",
|
|
136
136
|
"ulidx": "^2.4.1",
|
|
@@ -152,7 +152,7 @@
|
|
|
152
152
|
"@types/memoizee": "0.4.12",
|
|
153
153
|
"@types/murmurhash3js": "^3.0.7",
|
|
154
154
|
"@types/mustache": "^4.2.6",
|
|
155
|
-
"@types/node": "22.19.
|
|
155
|
+
"@types/node": "22.19.17",
|
|
156
156
|
"@types/nodemailer": "^7.0.11",
|
|
157
157
|
"@types/owasp-password-strength-test": "1.3.2",
|
|
158
158
|
"@types/pg": "8.18.0",
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import{E as B,j as t,F as U,A as L,l as M,C as P,m as K,n as W,bf as Q,kF as X,o as Z,b as ee,T as E,s as w,u as te,b7 as se,r as v,b6 as N,b8 as V,ba as ae,c0 as z,aN as G,by as ne,hP as re,bA as oe,f as R,bB as le,b9 as ie,bq as ce,ao as de,kG as ue,bG as pe,kH as he,b5 as D,kI as ge,jR as me,jH as fe,i as be,h as k,kJ as ve,cp as ye,aQ as je,aR as Se,aO as Te,aU as H,be as q,bc as J,kK as xe,kL as Ee,kM as Ce,jF as ke,kN as Re,B as Ae,an as Ie,cq as Oe,fU as De,hg as Pe}from"./index-Cikp5fMR.js";var _={},we=U;Object.defineProperty(_,"__esModule",{value:!0});var Y=_.default=void 0,_e=we(B()),$e=t,Fe=(0,_e.default)((0,$e.jsx)("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"}),"IndeterminateCheckBox");Y=_.default=Fe;const qe=X(),pt=({options:e,selectedOptions:a,indeterminateOptions:s,tagType:i,existingTags:d,disabled:l=!1,onChange:r})=>{const c=t.jsx(Z,{fontSize:"small"}),u=p=>p.inputValue?p.inputValue:p.title,g=({key:p,...h},o,{selected:b})=>{const S=(s==null?void 0:s.some(j=>j.title===o.title))??!1;return t.jsxs("li",{...h,children:[t.jsx(P,{condition:!!o.inputValue,show:t.jsx(Q,{sx:{mr:j=>j.spacing(.5)}}),elseShow:t.jsx(K,{icon:c,checkedIcon:t.jsx(W,{fontSize:"small"}),indeterminateIcon:t.jsx(Y,{fontSize:"small"}),sx:{mr:j=>j.spacing(.5)},checked:b&&!S,indeterminate:S})}),o.title]},p)},f=(p,h)=>{const o=h.inputValue.trim(),b=qe(p,{...h,inputValue:o}),S=p.some(j=>o===j.title);return o.length>=2&&!S&&b.push({inputValue:o,title:`Create new value "${o}"`}),b};return t.jsx(L,{multiple:!0,id:"checkboxes-tag",sx:{marginTop:p=>p.spacing(2),width:500},disableCloseOnSelect:!0,options:e,value:a,isOptionEqualToValue:(p,h)=>h.inputValue&&h.inputValue!==""?p.title===h.inputValue:p.title===h.title,getOptionLabel:u,renderOption:g,filterOptions:f,ListboxProps:{style:{maxHeight:200,overflow:"auto"}},onChange:r,renderInput:p=>t.jsx(M,{...p,label:"Select values",placeholder:"Select values"}),disabled:l})},Be=w("li")({flexDirection:"column"}),ht=({options:e,value:a,disabled:s=!1,onChange:i})=>{const d=ee();return t.jsx(L,{disablePortal:!0,disabled:s,id:"tag-type-select",sx:{marginTop:l=>l.spacing(2),width:500},options:e,disableClearable:!0,value:a,getOptionLabel:l=>l.name,renderOption:({key:l,...r},c)=>t.jsxs(Be,{...r,style:{alignItems:"flex-start",gap:d.spacing(.5)},children:[t.jsx(E,{variant:"body1",children:c.name}),t.jsx(E,{variant:"caption",children:c.description})]},l),renderInput:l=>t.jsx(M,{...l,label:"Tag type",value:a}),onChange:i,ListboxProps:{style:{maxHeight:200,overflow:"auto"}}})},gt=()=>{const{makeRequest:e,createRequest:a,errors:s,loading:i}=te({propagateErrors:!0});return{createTag:async r=>{const u=a("api/admin/tags",{method:"POST",body:JSON.stringify(r)});return e(u.caller,u.id)},bulkUpdateTags:async(r,c)=>{const u=`api/admin/projects/${c}/tags`,g=a(u,{method:"PUT",body:JSON.stringify(r)});return e(g.caller,g.id)},errors:s,loading:i}},mt=(e,a={})=>{const s=async()=>{const g=N(`api/admin/tags/${e}`);return(await fetch(g,{method:"GET"}).then(V("Tags"))).json()},i=`api/admin/tags/${e}`,{data:d,error:l}=se(!!e,{tags:[]},i,s,a),[r,c]=v.useState(!l&&!d),u=()=>{ae(i)};return v.useEffect(()=>{c(!l&&!d)},[d,l]),{tags:(d==null?void 0:d.tags)||[],error:l,loading:r,refetch:u}},Ue=(e,a)=>{var r,c;const{project:s,refetch:i}=z(e),d={name:"flexibleRollout",constraints:[],parameters:{rollout:"100",stickiness:s.defaultStickiness||"default",groupId:""}},l=(c=(r=s.environments)==null?void 0:r.find(u=>u.environment===a))==null?void 0:c.defaultStrategy;return{defaultStrategyFallback:d,strategy:l,refetch:i}},ft=()=>{const e=G("projectId"),a=ne("environmentId"),{refetch:s}=z(e),{defaultStrategyFallback:i,strategy:d,refetch:l}=Ue(e,a),[r,c]=v.useState(d||i),{updateDefaultStrategy:u,loading:g}=re(),{strategyDefinition:f}=oe(r.name),{setToastData:p,setToastApiError:h}=R(),o=le(),{uiConfig:b}=ie(),{unleashUrl:S}=b,j=ce(),{trackEvent:A}=de(),I=ue(r.constraints);if(!f)return null;const T=Le(r),n=async()=>{const C=`/projects/${e}/settings/default-strategy`;try{await u(e,a,T),A("default_strategy",{props:{action:"edit",hasTitle:!!T.title}}),s(),p({text:"Default Strategy updated",type:"success"}),await l(),j(C)}catch(F){h(k(F))}};return t.jsx(pe,{modal:!0,disablePadding:!0,description:Ne,documentationLink:Ve,documentationLinkLabel:ze,formatApiCode:()=>Me(e,a,T,f,S),children:t.jsxs(he,{strategy:r,setStrategy:c,strategyDefinition:f,errors:o,groupIdTooltip:"Defaults to the feature flag name if not set.",onSubmit:n,children:[t.jsx(D,{permission:[me,fe],projectId:e,environmentId:a,variant:"contained",color:"primary",type:"submit",disabled:g||!I||o.hasFormErrors(),"data-testid":ge,children:"Save strategy"}),t.jsx(be,{type:"button",onClick:()=>j(`/projects/${e}/settings/default-strategy`),children:"Cancel"})]})})},Le=e=>({name:e.name,title:e.title,constraints:e.constraints??[],parameters:Object.fromEntries(Object.entries(e.parameters??{}).filter(([,a])=>a!==void 0).map(([a,s])=>[a,String(s)])),variants:e.variants??[],segments:e.segments??[],disabled:e.disabled??!1}),Me=(e,a,s,i,d)=>{if(!d)return"";const l={...s,parameters:ve(s.parameters??{},i)},r=`${d}/api/admin/projects/${e}/environments/${a}/default-strategy`,c=JSON.stringify(l,void 0,2);return`curl --location --request POST '${r}' \\
|
|
2
|
-
--header 'Authorization: INSERT_API_KEY' \\
|
|
3
|
-
--header 'Content-Type: application/json' \\
|
|
4
|
-
--data-raw '${c}'`},Ne=`
|
|
5
|
-
An activation strategy will only run when a feature flag is enabled and provides a way to control who will get access to the feature.
|
|
6
|
-
If any of a feature flag's activation strategies returns true, the user will get access.
|
|
7
|
-
`,Ve="https://docs.getunleash.io/concepts/projects#project-default-strategy",ze="Default strategy documentation",bt=e=>{const{data:a,error:s,mutate:i}=ye(N(`api/admin/environments/project/${e}`),Ge),d=v.useMemo(()=>a||[],[a]),l=v.useCallback(async()=>{await i()},[i]);return{environments:d,refetchEnvironments:l,loading:!s&&!a,error:s}},Ge=async e=>(await fetch(e).then(V("Environments")).then(s=>s.json())).environments.sort((s,i)=>s.sortOrder-i.sortOrder),He=e=>{const{setToastData:a,setToastApiError:s}=R(),{addChange:i}=je(),{refetch:d}=Se(e),[l,r]=v.useState(!1),[c,u]=v.useState({isOpen:!1}),g=v.useCallback((h,o,b,S)=>{u({featureName:h,environment:o,enabled:b,shouldActivateDisabledStrategies:S,isOpen:!0})},[]),f=v.useCallback(()=>{u(h=>({...h,isOpen:!1}))},[]),p=v.useCallback(async()=>{try{r(!0),await i(e,c.environment,{feature:c.featureName,action:"updateEnabled",payload:{enabled:!!c.enabled,shouldActivateDisabledStrategies:!!c.shouldActivateDisabledStrategies}}),d(),u(h=>({...h,isOpen:!1})),a({type:"success",text:"Changes added to draft"})}catch(h){s(k(h)),u(o=>({...o,isOpen:!1}))}finally{r(!1)}},[i]);return{pending:l,onChangeRequestToggle:g,onChangeRequestToggleClose:f,onChangeRequestToggleConfirm:p,changeRequestDialogDetails:c}},Je=({enabled:e,featureName:a,environment:s})=>t.jsxs(E,{"data-testid":"update-enabled-message",children:[t.jsx("strong",{children:e?"Enable":"Disable"})," feature flag"," ",t.jsx("strong",{children:a})," in ",t.jsx("strong",{children:s})]}),Ye=w("ul")(({theme:e})=>({margin:e.spacing(1),paddingLeft:e.spacing(2)})),Ke=({isOpen:e,onAddDefaultStrategy:a,onActivateDisabledStrategies:s,onClose:i,environment:d,featureId:l})=>{var f,p,h;const r=G("projectId"),{feature:c}=Te(r,l),u=(h=(p=(f=c.environments)==null?void 0:f.find(({name:o})=>o===d))==null?void 0:p.strategies)==null?void 0:h.filter(({disabled:o})=>o).length,g=u?u===1?"1 disabled strategy":`${u} disabled strategies`:"disabled strategies";return t.jsxs(H,{open:e,secondaryButtonText:"Cancel",permissionButton:t.jsxs(t.Fragment,{children:[t.jsx(D,{type:"button",variant:"outlined",permission:q,projectId:r,environmentId:d,onClick:a,children:"Add default strategy"}),t.jsx(D,{type:"button",variant:"outlined",permission:q,projectId:r,environmentId:d,onClick:s,children:"Enable all strategies"})]}),onClose:i,title:`Enable feature flag in ${d}`,fullWidth:!0,children:[t.jsx(E,{sx:{mb:o=>o.spacing(3)},children:"A feature flag cannot be enabled without an enabled strategy."}),t.jsx(E,{children:"To enable this feature flag you can choose to:"}),t.jsxs(Ye,{children:[t.jsx("li",{children:t.jsx(E,{children:t.jsx("strong",{children:"Add the default strategy"})})}),t.jsx("li",{children:t.jsxs(E,{children:[t.jsx("strong",{children:"Enable all the disabled strategies"})," ","(this feature flag has ",g,")"]})})]})]})},We=e=>{const a=s=>{s<e.length&&e[s](()=>a(s+1))};a(0)},vt=e=>{const{toggleFeatureEnvironmentOn:a,toggleFeatureEnvironmentOff:s}=J(),{setToastData:i,setToastApiError:d}=R(),[l,r]=v.useState({open:!1,label:"",loading:!1,onClose:()=>{},onClick:()=>{}}),[c,u]=v.useState({isOpen:!1,environment:"",featureId:"",onClose:()=>{},onActivateDisabledStrategies:()=>{},onAddDefaultStrategy:()=>{}}),{pending:g,onChangeRequestToggle:f,onChangeRequestToggleClose:p,onChangeRequestToggleConfirm:h,changeRequestDialogDetails:o}=He(e),[b,S]=v.useState(),j=v.useCallback(async(T,n)=>{let C=!1;return We([y=>{if(n.isChangeRequestEnabled||!Ce(n.environmentType||""))return y();r({open:!0,label:`${T?"Enable":"Disable"} Environment`,loading:!1,onClose:()=>{var m;r(x=>({...x,open:!1})),(m=n.onRollback)==null||m.call(n)},onClick:()=>{r(m=>({...m,open:!1,loading:!0})),y()}})},y=>{if(T===!1||!n.hasStrategies||n.hasEnabledStrategies||n.hasReleasePlans)return y();u({isOpen:!0,environment:n.environmentName,featureId:n.featureId,onClose:()=>{var m;u(x=>({...x,isOpen:!1})),(m=n.onRollback)==null||m.call(n)},onActivateDisabledStrategies:()=>{u(m=>({...m,isOpen:!1})),C=!0,y()},onAddDefaultStrategy:()=>{u(m=>({...m,isOpen:!1})),y()}})},y=>{if(!n.isChangeRequestEnabled)return y();S(()=>{var m;S(void 0),(m=n.onRollback)==null||m.call(n)}),f(n.featureId,n.environmentName,T,C)},async y=>{var m,x;if(T!==!1)return y();try{await s(n.projectId,n.featureId,n.environmentName),i({type:"success",text:`Disabled in ${n.environmentName}`}),(m=n.onSuccess)==null||m.call(n)}catch(O){d(k(O)),(x=n.onRollback)==null||x.call(n)}},async y=>{var m,x;if(T!==!0)return y();try{await a(n.projectId,n.featureId,n.environmentName,C),i({type:"success",text:`Enabled in ${n.environmentName}`}),(m=n.onSuccess)==null||m.call(n)}catch(O){d(k(O)),(x=n.onRollback)==null||x.call(n)}}])},[r]),A=c.featureId.length!==0,I=t.jsxs(t.Fragment,{children:[t.jsx(xe,{...l}),t.jsx(P,{condition:A,show:t.jsx(Ke,{...c})}),t.jsx(Ee,{isOpen:o.isOpen,onClose:()=>{b==null||b(),p()},environment:o==null?void 0:o.environment,disabled:g,onConfirm:()=>{b==null||b(),h()},messageComponent:t.jsx(Je,{enabled:o==null?void 0:o.enabled,featureName:o==null?void 0:o.featureName,environment:o.environment})})]});return{onToggle:j,modals:I}},Qe=e=>{const[a,s]=v.useState(e),i=v.useCallback(()=>s(e),[e]);return v.useEffect(()=>{s(e)},[e]),[a,s,i]},Xe=w(Ae)(()=>({mx:"auto",...Ie})),yt=({projectId:e,featureId:a,environmentName:s,value:i,onToggle:d})=>{const[l,r,c]=Qe(i),u=()=>{r(!l),requestAnimationFrame(()=>{d(!l,c)})},g=`${a}-${s}`;return t.jsx(t.Fragment,{children:t.jsx(Xe,{"data-testid":`TOGGLE-${g}`,children:t.jsx(ke,{tooltip:l?`Disable flag in ${s}`:`Enable flag in ${s}`,checked:i,environmentId:s,projectId:e,permission:Re,inputProps:{"aria-label":s},onClick:u,"data-testid":"permission-switch",disabled:i!==l})},g)})};var $={},Ze=U;Object.defineProperty($,"__esModule",{value:!0});var et=$.default=void 0,tt=Ze(B()),st=t,at=(0,tt.default)((0,st.jsx)("path",{d:"M16 11h-1V3c0-1.1-.9-2-2-2h-2c-1.1 0-2 .9-2 2v8H8c-2.76 0-5 2.24-5 5v7h18v-7c0-2.76-2.24-5-5-5zm3 10h-2v-3c0-.55-.45-1-1-1s-1 .45-1 1v3h-2v-3c0-.55-.45-1-1-1s-1 .45-1 1v3H9v-3c0-.55-.45-1-1-1s-1 .45-1 1v3H5v-5c0-1.65 1.35-3 3-3h8c1.65 0 3 1.35 3 3v5z"}),"CleaningServices");et=$.default=at;const nt="flag-reminders:v1",rt=50,ot=7,jt=({days:e=ot,maxReminders:a=rt}={})=>{const[s,i]=Oe(nt,{});return{shouldShowReminder:r=>{const c=s[r];return!c||Pe(new Date,new Date(c))},snoozeReminder:(r,c=e)=>{const u=De(new Date,c).getTime();i(g=>{const f={...g,[r]:u},p=Object.entries(f);if(p.length>a){p.sort((o,b)=>o[1]-b[1]);const h=p.slice(p.length-a);return Object.fromEntries(h)}return f})}}},St=({isStale:e,isOpen:a,projectId:s,featureId:i,onClose:d})=>{const{setToastData:l,setToastApiError:r}=R(),{patchFeatureToggle:c}=J(),u=t.jsx(E,{children:"Setting a flag to stale marks it for cleanup"}),g=t.jsx(E,{children:"Setting a flag to active marks it as in active use"}),f=e?"active":"stale",p=async h=>{h.stopPropagation();try{await c(s,i,[{op:"replace",path:"/stale",value:!e}]),d()}catch(o){r(k(o))}l(e?{type:"success",text:"The flag is no longer marked as stale"}:{type:"success",text:"The flag has been marked as stale"})};return t.jsx(H,{open:a,secondaryButtonText:"Cancel",primaryButtonText:`Flip to ${f}`,title:`Set feature state to ${f}`,onClick:p,onClose:d,children:t.jsx(P,{condition:e,show:g,elseShow:u})})};export{ft as E,yt as F,ht as T,mt as a,pt as b,Ue as c,bt as d,vt as e,jt as f,et as g,St as h,gt as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{cy as n,b9 as l,j as e,C as c,B as d,Q as a,l1 as g,dr as h,ds as p,dt as f,l2 as u,l3 as m,l4 as x,l5 as j}from"./index-Cikp5fMR.js";import{a as S}from"./formatTickValue-BxmGFWwJ.js";import{u as C,c as w,S as y,T as P,P as T,n as b,g as B}from"./networkTrafficUsageHighlightPlugin-mvUd1fv5.js";import"./LazyAdminExport-CE3juyvl.js";import"./RoleCell-4trKLU2Y.js";import"./useApiTokens-BHKIbW5c.js";import"./PercentageDonut-CC9h07JZ.js";const q=()=>{n("Network - Frontend Traffic Usage");const{isOss:s}=l(),{chartDataSelection:t,setChartDataSelection:r,options:i}=C(),{chartData:o}=w(t);return e.jsx(c,{condition:s(),show:e.jsx(a,{severity:"warning",children:"Not enabled."}),elseShow:e.jsx(e.Fragment,{children:e.jsxs(y,{children:[e.jsxs(P,{children:[e.jsx(d,{children:e.jsx(a,{severity:"info",icon:!1,children:"Frontend traffic is determined by the total SDK requests to the Frontend API"})}),e.jsx(T,{selectedPeriod:t,setPeriod:r})]}),e.jsx(g,{data:o,plugins:[b],options:i,"aria-label":B(t)})]})})})};h.register(S,p,f,u,m,x,j);export{q as default};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{j as h,B as Z,kR as En,kS as zn,aX as Ge,kT as Cn,dW as Mn,m as Er,r as T,kU as Fe,kV as Ye,dx as Tn,dl as Ln,dm as kn,b6 as sr,u as Hn,A as Wn,l as zr,Q as Nn,t as Cr,T as Oe,s as H,b as Mr,ai as Tr,ao as $n,bG as qn,i as ar,c8 as An,kW as In,dz as Lr,cW as lr,ej as Bn,aZ as Gn,a$ as Fn,aA as Yn,dA as Xn,kX as Un,kt as kr,kY as Vn,kZ as kt,k_ as he,g as Kn}from"./index-Cikp5fMR.js";const Zn=({formData:t,actions:e,metricSeries:r,loading:n,labelsFilter:o})=>h.jsxs(Z,{children:[h.jsxs(Z,{sx:i=>({display:"flex",flexDirection:"column",gap:i.spacing(3)}),children:[h.jsx(En,{value:t.metricName,onChange:e.handleSeriesChange,options:r,loading:n}),o,t.metricName?h.jsxs(h.Fragment,{children:[h.jsxs(zn,{value:t.timeRange,onChange:e.setTimeRange,children:[h.jsx(Ge,{value:"hour",children:"Last hour"}),h.jsx(Ge,{value:"day",children:"Last 24 hours"}),h.jsx(Ge,{value:"week",children:"Last 7 days"}),h.jsx(Ge,{value:"month",children:"Last 30 days"})]}),h.jsx(Cn,{value:t.aggregationMode,onChange:e.setAggregationMode,metricType:t.metricType})]}):null]}),t.metricName?h.jsx(Mn,{sx:i=>({margin:i.spacing(1.5,0)}),control:h.jsx(Er,{checked:t.yAxisMin==="zero",onChange:i=>e.setYAxisMin(i.target.checked?"zero":"auto")}),label:"Begin at zero"}):null]}),Jn=({open:t,initialConfig:e})=>{const[r,n]=T.useState((e==null?void 0:e.title)||""),[o,i]=T.useState((e==null?void 0:e.metricName)||""),[s,u]=T.useState((e==null?void 0:e.timeRange)||"day"),[a,l]=T.useState((e==null?void 0:e.yAxisMin)||"auto"),[c,d]=T.useState((e==null?void 0:e.labelSelectors)||{}),[f,p]=T.useState((e==null?void 0:e.aggregationMode)||Fe(Ye(o))),[w,D]=T.useState(e==null?void 0:e.source),{data:{labels:S}}=Tn(o?{series:o,range:s,aggregationMode:f,source:w}:void 0);T.useEffect(()=>{t&&e?(n(e.title||""),i(e.metricName),u(e.timeRange),l(e.yAxisMin),d(e.labelSelectors),p(e.aggregationMode||Fe(Ye(e.metricName))),D(e.source)):t&&!e&&(n(""),i(""),u("day"),l("auto"),d({}),p("count"),D(void 0))},[t,e]);const g=y=>{i(y.metricName),D(y.source),d({});const j=Ye(y.metricName);j!=="unknown"&&p(Fe(j))},b=()=>({title:r||void 0,metricName:o,timeRange:s,yAxisMin:a,labelSelectors:c,aggregationMode:f,source:w}),m=o.length>0,x=Ye(o,S==null?void 0:S.metric_type);return T.useEffect(()=>{o!==(e==null?void 0:e.metricName)&&x!=="unknown"&&p(Fe(x))},[o,x]),{formData:{title:r,metricName:o,metricType:x,timeRange:s,yAxisMin:a,aggregationMode:f,labelSelectors:c,source:w},actions:{setTitle:n,setMetricName:i,setTimeRange:u,setYAxisMin:l,setAggregationMode:p,setLabelSelectors:d,handleSeriesChange:g,getConfigToSave:b},isValid:m,currentAvailableLabels:S}},Qn=()=>{const t="api/admin/impact-metrics/config",{data:e,refetch:r,loading:n,error:o}=Ln(sr(t),()=>kn(sr(t),"impactMetricsConfig"));return{configs:(e==null?void 0:e.configs)||[],refetch:r,loading:n,error:o}},eo=t=>{const e=t?`api/admin/projects/${t.projectId}/features/${t.featureName}/impact-metrics/config`:"api/admin/impact-metrics/config",{makeRequest:r,createRequest:n,errors:o,loading:i}=Hn({propagateErrors:!0}),s=T.useCallback(async a=>{const l=n(e,{method:"POST",body:JSON.stringify(a)},"updateImpactMetric");return r(l.caller,l.id)},[r,n]),u=T.useCallback(async a=>{const l=n(`${e}/${a}`,{method:"DELETE"},"deleteImpactMetric");return r(l.caller,l.id)},[r,n,e]);return{createImpactMetric:s,deleteImpactMetric:u,errors:o,loading:i}},de="*",aa=()=>{const{configs:t,loading:e,error:r,refetch:n}=Qn(),{layout:o,charts:i}=T.useMemo(()=>({layout:t.map((p,w)=>{const D=w%2,S=Math.floor(w/2);return{i:p.id,x:D*6,y:S*2,w:6,h:2,minW:4,minH:2,maxW:12,maxH:8}}),charts:t}),[t]),{createImpactMetric:s,deleteImpactMetric:u,loading:a,errors:l}=eo(),c=T.useCallback(async p=>{await s(p),n()},[s,n]),d=T.useCallback(async(p,w)=>{await s({...w,id:p}),n()},[t,s,n]),f=T.useCallback(async p=>{await u(p),n()},[t,u,n]);return{charts:i,layout:o,loading:e||a,error:r||Object.keys(l).length>0?l:void 0,addChart:c,updateChart:d,deleteChart:f}},to=({labelKey:t,options:e,value:r,onChange:n})=>{const o=r.includes(de),i=`autocomplete-${t}`,s=e.length>=1e3,u=[de,...e];return h.jsx(Wn,{multiple:!0,disableCloseOnSelect:!0,id:i,options:u,value:o?e:r,getOptionLabel:a=>a===de?"(Select all)":a,onChange:(a,l,c,d)=>{if((d==null?void 0:d.option)===de){n(o?[]:[de]);return}n(l.filter(f=>f!==de))},renderOption:(a,l,{selected:c})=>{const{key:d,...f}=a;return h.jsxs("li",{...f,children:[h.jsx(Er,{size:"small",checked:l===de?o:c,style:{marginRight:8}}),l===de?h.jsx(Oe,{component:"span",sx:{color:"text.secondary"},children:"Select all"}):l]},d||l)},renderTags:(a,l)=>{const d=a.slice(-5),f=a.length-5;return h.jsxs(h.Fragment,{children:[d.map((p,w)=>{const{key:D,...S}=l({index:w});return T.createElement(Cr,{...S,key:D,label:p,size:"small"})}),f>0?h.jsxs(Oe,{component:"span",sx:{color:"text.secondary"},children:[" ","(+",f,")"]}):null]})},renderInput:a=>h.jsxs(h.Fragment,{children:[h.jsx(zr,{...a,label:t,placeholder:o?void 0:"Select values…",variant:"outlined",size:"small",inputProps:{...a.inputProps}}),s&&h.jsx(Nn,{severity:"warning",sx:l=>({padding:l.spacing(1,2),marginTop:l.spacing(1)}),children:"Maximum of 1000 values loaded due to performance."})]})})},ro=H(Z)(({theme:t})=>({display:"flex",flexDirection:"column",gap:t.spacing(1),width:"100%"})),no=H(Z)(({theme:t})=>({width:"100%",display:"flex",alignItems:"center",gap:t.spacing(1)})),oo=H(Z)(({theme:t})=>({display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(250px, 1fr))",gap:t.spacing(2),flexGrow:1})),io=H(Z)({display:"flex",flexDirection:"column",flexGrow:1}),so=H(Oe)({lineHeight:1.5,height:"24px"}),ao=H(Cr)(({theme:t})=>({position:"relative",height:"20px",margin:t.spacing(-1,0)})),ur=({title:t,labels:e,labelSelectors:r,onLabelChange:n,onAllToggle:o,onChange:i})=>{const s=e.map(([l])=>l),u=s.some(l=>r[l]),a=()=>{const l={};Object.entries(r).forEach(([c,d])=>{s.includes(c)||(l[c]=d)}),i(l)};return h.jsxs(ro,{children:[h.jsxs(no,{children:[h.jsx(so,{variant:"subtitle2",children:t}),u&&h.jsx(ao,{label:"Clear all",size:"small",variant:"outlined",onClick:a})]}),h.jsx(oo,{children:e.map(([l,c])=>{const d=r[l]||[];return h.jsx(io,{children:h.jsx(to,{labelKey:l,options:c,value:d,onChange:f=>n(l,f),handleAllToggle:o})},l)})})]})},cr=["environment","appName","origin"],lo=({labelSelectors:t,onChange:e,availableLabels:r})=>{const n=(u,a)=>{const l={...t};a.length===0?delete l[u]:l[u]=a,e(l)},o=(u,a)=>{const l={...t};a?l[u]=["*"]:delete l[u],e(l)};if(!r||Object.keys(r).length===0)return null;const i=Object.entries(r).filter(([u])=>cr.includes(u)).sort(),s=Object.entries(r).filter(([u])=>!cr.includes(u)&&u!=="type"&&u!=="metric_type").sort();return h.jsxs(Z,{sx:{display:"flex",gap:2,flexWrap:"wrap"},children:[i.length>0&&h.jsx(ur,{title:"Filter by labels",labels:i,labelSelectors:t,onLabelChange:n,onAllToggle:o,onChange:e}),s.length>0&&h.jsx(ur,{title:"Other filters",labels:s,labelSelectors:t,onLabelChange:n,onAllToggle:o,onChange:e})]})},uo=H(An)(({theme:t})=>({"& .MuiDialog-paper":{borderRadius:t.shape.borderRadiusLarge,maxWidth:t.spacing(170),width:"100%",backgroundColor:"transparent"},padding:0,"& .MuiPaper-root > section":{overflowX:"hidden"}})),co=H("form")({display:"flex",flexDirection:"column",height:"100%"}),fo=H("h1")(({theme:t})=>({fontWeight:"normal",fontSize:t.typography.h1.fontSize,margin:0})),po=H("div")(({theme:t})=>({display:"flex",flexDirection:"column",gap:t.spacing(3),padding:t.spacing(6),flexGrow:1,minHeight:600})),ho=H("div")(({theme:t})=>({display:"flex",gap:t.spacing(3),justifyContent:"flex-end",padding:t.spacing(4,6),borderTop:`1px solid ${t.palette.divider}`})),go=H(Oe)(({theme:t})=>({fontWeight:t.typography.fontWeightBold,color:t.palette.common.white,marginBottom:t.spacing(1)})),mo=H("a")(({theme:t})=>({color:t.palette.common.white,display:"flex",alignItems:"center",gap:t.spacing(1),marginTop:t.spacing(1.5),textDecoration:"underline","&:hover":{textDecoration:"none"}})),yo=H(Oe)(({theme:t})=>({fontWeight:t.typography.fontWeightBold,color:t.palette.common.white,marginBottom:t.spacing(1.5)})),vo=H(Z)(({theme:t})=>({borderRadius:t.shape.borderRadiusLarge,overflow:"hidden",backgroundColor:t.palette.background.paper,padding:t.spacing(2)})),la=({open:t,onClose:e,onSave:r,onDocsClicked:n,initialConfig:o,metricSeries:i,loading:s=!1})=>{const{formData:u,actions:a,isValid:l,currentAvailableLabels:c}=Jn({open:t,initialConfig:o}),d=Mr(),f=Tr(d.breakpoints.down("lg")),{trackEvent:p}=$n(),w=()=>{l&&(r(a.getConfigToSave()),p("impact-metrics",{props:{eventType:"chart added"}}),e())},D=h.jsxs(h.Fragment,{children:[h.jsx(go,{children:"Did you know?"}),"Impact metrics let you track how your feature rollouts affect key outcomes like error rates, latency, and adoption — directly inside Unleash.",h.jsxs(mo,{href:"https://docs.getunleash.io/reference/impact-metrics",target:"_blank",rel:"noopener noreferrer",onClick:()=>{p("impact-metrics",{props:{eventType:"sidebar docs clicked"}}),n==null||n()},children:[h.jsx(In,{fontSize:"small"}),"Learn how to use impact metrics"]}),h.jsxs(Z,{sx:{mt:3},children:[h.jsx(yo,{children:"Preview chart"}),h.jsx(vo,{children:h.jsx(Lr,{metricName:u.metricName,timeRange:u.timeRange,labelSelectors:u.labelSelectors,yAxisMin:u.yAxisMin,aggregationMode:u.aggregationMode,source:u.source,isPreview:!0},f?"small":"large")})]})]});return h.jsx(uo,{open:t,onClose:e,children:h.jsx(qn,{compact:!0,disablePadding:!0,description:D,showLink:!1,sidebarWidth:"55%",children:h.jsxs(co,{onSubmit:S=>{S.preventDefault(),w()},children:[h.jsxs(po,{children:[h.jsx(fo,{children:o?"Edit impact metric":"Add impact metric"}),h.jsx(zr,{label:"Chart Title (optional)",value:u.title,onChange:S=>a.setTitle(S.target.value),fullWidth:!0,variant:"outlined",size:"small"}),h.jsx(Zn,{formData:u,actions:a,metricSeries:i,loading:s,labelsFilter:c?h.jsx(lo,{labelSelectors:u.labelSelectors,onChange:a.setLabelSelectors,availableLabels:c}):null})]}),h.jsxs(ho,{children:[h.jsx(ar,{onClick:e,children:"Cancel"}),h.jsx(ar,{variant:"contained",type:"submit",disabled:!l,children:o?"Update":"Add impact metric"})]})]})})})},bo=t=>{const e=[];t.displayName&&e.push(`${t.displayName}`),e.push(`last ${t.timeRange}`),e.push(t.aggregationMode);const r=Object.keys(t.labelSelectors).length;return r>0&&e.push(`${r} filter${r>1?"s":""}`),e.join(" • ")},wo=H(Yn)(({theme:t})=>({borderRadius:`${t.shape.borderRadiusMedium}px`,boxShadow:"none",display:"flex",flexDirection:"column",height:"100%"})),So=H(Z)({flex:1,display:"flex",flexDirection:"column",minHeight:0}),xo=H(Z)(({theme:t})=>({position:"relative",minWidth:0,flexGrow:1,height:"100%",display:"flex",flexDirection:"column",margin:"auto 0",padding:t.spacing(3)})),Oo=H(Z)(({theme:t})=>({display:"flex",gap:t.spacing(1),alignItems:"center",padding:t.spacing(1.5,2),borderBottom:`1px solid ${t.palette.divider}`})),Do=H(Z)(({theme:t})=>({display:"flex",flexDirection:"column",justifyContent:"flex-end",flexGrow:1,overflow:"hidden",textOverflow:"ellipsis"})),_o=H(Z)(({theme:t})=>({marginLeft:"auto",display:"flex",alignItems:"center",gap:t.spacing(.5)})),Ro=H(Xn)(({theme:t})=>({alignSelf:"start",color:t.palette.primary.main,marginTop:t.spacing(.25)})),ua=({config:t,onEdit:e,onDelete:r,permission:n=Bn,projectId:o,dragHandle:i,icon:s})=>h.jsxs(wo,{children:[h.jsxs(Oo,{children:[i,t.mode==="read"?h.jsx(Ro,{}):null,h.jsxs(Do,{children:[t.title&&h.jsx(Oe,{variant:"h3",children:t.title}),h.jsx(Oe,{variant:"body2",color:"text.secondary",children:bo(t)})]}),s,t.mode!=="read"&&h.jsxs(_o,{children:[h.jsx(lr,{onClick:()=>e(t),permission:n,projectId:o,tooltipProps:{title:"Edit chart"},children:h.jsx(Gn,{})}),h.jsx(lr,{onClick:()=>r(t.id),permission:n,projectId:o,tooltipProps:{title:"Remove chart"},children:h.jsx(Fn,{})})]})]}),h.jsx(So,{children:h.jsx(xo,{children:h.jsx(Lr,{metricName:t.metricName,timeRange:t.timeRange,labelSelectors:t.labelSelectors,yAxisMin:t.yAxisMin,aggregationMode:t.aggregationMode,source:t.source,aspectRatio:1.5,overrideOptions:{maintainAspectRatio:!1},emptyDataDescription:"Send impact metrics using Unleash SDK for this series to view the chart."})})})]});var Hr={exports:{}},qe={},Rt={exports:{}};(function(t,e){(function(r,n){n(e)})(Un,function(r){function n(v){return function(L,C,M,N,B,te,$){return v(L,C,$)}}function o(v){return function(L,C,M,N){if(!L||!C||typeof L!="object"||typeof C!="object")return v(L,C,M,N);var B=N.get(L),te=N.get(C);if(B&&te)return B===C&&te===L;N.set(L,C),N.set(C,L);var $=v(L,C,M,N);return N.delete(L),N.delete(C),$}}function i(v,_){var L={};for(var C in v)L[C]=v[C];for(var C in _)L[C]=_[C];return L}function s(v){return v.constructor===Object||v.constructor==null}function u(v){return typeof v.then=="function"}function a(v,_){return v===_||v!==v&&_!==_}var l="[object Arguments]",c="[object Boolean]",d="[object Date]",f="[object RegExp]",p="[object Map]",w="[object Number]",D="[object Object]",S="[object Set]",g="[object String]",b=Object.prototype.toString;function m(v){var _=v.areArraysEqual,L=v.areDatesEqual,C=v.areMapsEqual,M=v.areObjectsEqual,N=v.areRegExpsEqual,B=v.areSetsEqual,te=v.createIsNestedEqual,$=te(oe);function oe(k,q,ie){if(k===q)return!0;if(!k||!q||typeof k!="object"||typeof q!="object")return k!==k&&q!==q;if(s(k)&&s(q))return M(k,q,$,ie);var or=Array.isArray(k),ir=Array.isArray(q);if(or||ir)return or===ir&&_(k,q,$,ie);var se=b.call(k);return se!==b.call(q)?!1:se===d?L(k,q,$,ie):se===f?N(k,q,$,ie):se===p?C(k,q,$,ie):se===S?B(k,q,$,ie):se===D||se===l?u(k)||u(q)?!1:M(k,q,$,ie):se===c||se===w||se===g?a(k.valueOf(),q.valueOf()):!1}return oe}function x(v,_,L,C){var M=v.length;if(_.length!==M)return!1;for(;M-- >0;)if(!L(v[M],_[M],M,M,v,_,C))return!1;return!0}var y=o(x);function j(v,_){return a(v.valueOf(),_.valueOf())}function A(v,_,L,C){var M=v.size===_.size;if(!M)return!1;if(!v.size)return!0;var N={},B=0;return v.forEach(function(te,$){if(M){var oe=!1,k=0;_.forEach(function(q,ie){!oe&&!N[k]&&(oe=L($,ie,B,k,v,_,C)&&L(te,q,$,ie,v,_,C))&&(N[k]=!0),k++}),B++,M=oe}}),M}var I=o(A),V="_owner",J=Object.prototype.hasOwnProperty;function Te(v,_,L,C){var M=Object.keys(v),N=M.length;if(Object.keys(_).length!==N)return!1;for(var B;N-- >0;){if(B=M[N],B===V){var te=!!v.$$typeof,$=!!_.$$typeof;if((te||$)&&te!==$)return!1}if(!J.call(_,B)||!L(v[B],_[B],B,B,v,_,C))return!1}return!0}var gt=o(Te);function Le(v,_){return v.source===_.source&&v.flags===_.flags}function ke(v,_,L,C){var M=v.size===_.size;if(!M)return!1;if(!v.size)return!0;var N={};return v.forEach(function(B,te){if(M){var $=!1,oe=0;_.forEach(function(k,q){!$&&!N[oe]&&($=L(B,k,te,q,v,_,C))&&(N[oe]=!0),oe++}),M=$}}),M}var nr=o(ke),ge=Object.freeze({areArraysEqual:x,areDatesEqual:j,areMapsEqual:A,areObjectsEqual:Te,areRegExpsEqual:Le,areSetsEqual:ke,createIsNestedEqual:n}),me=Object.freeze({areArraysEqual:y,areDatesEqual:j,areMapsEqual:I,areObjectsEqual:gt,areRegExpsEqual:Le,areSetsEqual:nr,createIsNestedEqual:n}),Be=m(ge);function mt(v,_){return Be(v,_,void 0)}var Sn=m(i(ge,{createIsNestedEqual:function(){return a}}));function xn(v,_){return Sn(v,_,void 0)}var On=m(me);function Dn(v,_){return On(v,_,new WeakMap)}var _n=m(i(me,{createIsNestedEqual:function(){return a}}));function Rn(v,_){return _n(v,_,new WeakMap)}function Pn(v){return m(i(ge,v(ge)))}function jn(v){var _=m(i(me,v(me)));return function(L,C,M){return M===void 0&&(M=new WeakMap),_(L,C,M)}}r.circularDeepEqual=Dn,r.circularShallowEqual=Rn,r.createCustomCircularEqual=jn,r.createCustomEqual=Pn,r.deepEqual=mt,r.sameValueZeroEqual=a,r.shallowEqual=xn,Object.defineProperty(r,"__esModule",{value:!0})})})(Rt,Rt.exports);var Ht=Rt.exports;const tt=kr(Vn);var E={},Po=function(e,r,n){return e===r?!0:e.className===r.className&&n(e.style,r.style)&&e.width===r.width&&e.autoSize===r.autoSize&&e.cols===r.cols&&e.draggableCancel===r.draggableCancel&&e.draggableHandle===r.draggableHandle&&n(e.verticalCompact,r.verticalCompact)&&n(e.compactType,r.compactType)&&n(e.layout,r.layout)&&n(e.margin,r.margin)&&n(e.containerPadding,r.containerPadding)&&e.rowHeight===r.rowHeight&&e.maxRows===r.maxRows&&e.isBounded===r.isBounded&&e.isDraggable===r.isDraggable&&e.isResizable===r.isResizable&&e.allowOverlap===r.allowOverlap&&e.preventCollision===r.preventCollision&&e.useCSSTransforms===r.useCSSTransforms&&e.transformScale===r.transformScale&&e.isDroppable===r.isDroppable&&n(e.resizeHandles,r.resizeHandles)&&n(e.resizeHandle,r.resizeHandle)&&e.onLayoutChange===r.onLayoutChange&&e.onDragStart===r.onDragStart&&e.onDrag===r.onDrag&&e.onDragStop===r.onDragStop&&e.onResizeStart===r.onResizeStart&&e.onResize===r.onResize&&e.onResizeStop===r.onResizeStop&&e.onDrop===r.onDrop&&n(e.droppingItem,r.droppingItem)&&n(e.innerRef,r.innerRef)};Object.defineProperty(E,"__esModule",{value:!0});E.bottom=rt;E.childrenEqual=To;E.cloneLayout=Wr;E.cloneLayoutItem=xe;E.collides=nt;E.compact=$r;E.compactItem=qr;E.compactType=Xo;E.correctBounds=Ar;E.fastPositionEqual=Lo;E.fastRGLPropsEqual=void 0;E.getAllCollisions=Ir;E.getFirstCollision=we;E.getLayoutItem=Wt;E.getStatics=Nt;E.modifyLayout=Nr;E.moveElement=Ne;E.moveElementAwayFromCollision=jt;E.noop=void 0;E.perc=Ho;E.resizeItemInDirection=Io;E.setTopLeft=Go;E.setTransform=Bo;E.sortLayoutItems=Gt;E.sortLayoutItemsByColRow=Xr;E.sortLayoutItemsByRowCol=Yr;E.synchronizeLayoutWithChildren=Fo;E.validateLayout=Yo;E.withLayoutItem=Mo;var dr=Ht,We=jo(T);function jo(t){return t&&t.__esModule?t:{default:t}}function fr(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function Ze(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?fr(Object(r),!0).forEach(function(n){Eo(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):fr(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function Eo(t,e,r){return(e=zo(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function zo(t){var e=Co(t,"string");return typeof e=="symbol"?e:e+""}function Co(t,e){if(typeof t!="object"||!t)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function rt(t){let e=0,r;for(let n=0,o=t.length;n<o;n++)r=t[n].y+t[n].h,r>e&&(e=r);return e}function Wr(t){const e=Array(t.length);for(let r=0,n=t.length;r<n;r++)e[r]=xe(t[r]);return e}function Nr(t,e){const r=Array(t.length);for(let n=0,o=t.length;n<o;n++)e.i===t[n].i?r[n]=e:r[n]=t[n];return r}function Mo(t,e,r){let n=Wt(t,e);return n?(n=r(xe(n)),t=Nr(t,n),[t,n]):[t,null]}function xe(t){return{w:t.w,h:t.h,x:t.x,y:t.y,i:t.i,minW:t.minW,maxW:t.maxW,minH:t.minH,maxH:t.maxH,moved:!!t.moved,static:!!t.static,isDraggable:t.isDraggable,isResizable:t.isResizable,resizeHandles:t.resizeHandles,isBounded:t.isBounded}}function To(t,e){return(0,dr.deepEqual)(We.default.Children.map(t,r=>r==null?void 0:r.key),We.default.Children.map(e,r=>r==null?void 0:r.key))&&(0,dr.deepEqual)(We.default.Children.map(t,r=>r==null?void 0:r.props["data-grid"]),We.default.Children.map(e,r=>r==null?void 0:r.props["data-grid"]))}E.fastRGLPropsEqual=Po;function Lo(t,e){return t.left===e.left&&t.top===e.top&&t.width===e.width&&t.height===e.height}function nt(t,e){return!(t.i===e.i||t.x+t.w<=e.x||t.x>=e.x+e.w||t.y+t.h<=e.y||t.y>=e.y+e.h)}function $r(t,e,r,n){const o=Nt(t);let i=rt(o);const s=Gt(t,e),u=Array(t.length);for(let a=0,l=s.length;a<l;a++){let c=xe(s[a]);c.static||(c=qr(o,c,e,r,s,n,i),i=Math.max(i,c.y+c.h),o.push(c)),u[t.indexOf(s[a])]=c,c.moved=!1}return u}const ko={x:"w",y:"h"};function Pt(t,e,r,n){const o=ko[n];e[n]+=1;const i=t.map(s=>s.i).indexOf(e.i);for(let s=i+1;s<t.length;s++){const u=t[s];if(!u.static){if(u.y>e.y+e.h)break;nt(e,u)&&Pt(t,u,r+e[o],n)}}e[n]=r}function qr(t,e,r,n,o,i,s){const u=r==="vertical",a=r==="horizontal";if(u)for(typeof s=="number"?e.y=Math.min(s,e.y):e.y=Math.min(rt(t),e.y);e.y>0&&!we(t,e);)e.y--;else if(a)for(;e.x>0&&!we(t,e);)e.x--;let l;for(;(l=we(t,e))&&!(r===null&&i);)if(a?Pt(o,e,l.x+l.w,"x"):Pt(o,e,l.y+l.h,"y"),a&&e.x+e.w>n)for(e.x=n-e.w,e.y++;e.x>0&&!we(t,e);)e.x--;return e.y=Math.max(e.y,0),e.x=Math.max(e.x,0),e}function Ar(t,e){const r=Nt(t);for(let n=0,o=t.length;n<o;n++){const i=t[n];if(i.x+i.w>e.cols&&(i.x=e.cols-i.w),i.x<0&&(i.x=0,i.w=e.cols),!i.static)r.push(i);else for(;we(r,i);)i.y++}return t}function Wt(t,e){for(let r=0,n=t.length;r<n;r++)if(t[r].i===e)return t[r]}function we(t,e){for(let r=0,n=t.length;r<n;r++)if(nt(t[r],e))return t[r]}function Ir(t,e){return t.filter(r=>nt(r,e))}function Nt(t){return t.filter(e=>e.static)}function Ne(t,e,r,n,o,i,s,u,a){if(e.static&&e.isDraggable!==!0||e.y===n&&e.x===r)return t;"Moving element ".concat(e.i," to [").concat(String(r),",").concat(String(n),"] from [").concat(e.x,",").concat(e.y,"]");const l=e.x,c=e.y;typeof r=="number"&&(e.x=r),typeof n=="number"&&(e.y=n),e.moved=!0;let d=Gt(t,s);(s==="vertical"&&typeof n=="number"?c>=n:s==="horizontal"&&typeof r=="number"?l>=r:!1)&&(d=d.reverse());const p=Ir(d,e),w=p.length>0;if(w&&a)return Wr(t);if(w&&i)return"Collision prevented on ".concat(e.i,", reverting."),e.x=l,e.y=c,e.moved=!1,t;for(let D=0,S=p.length;D<S;D++){const g=p[D];"Resolving collision between ".concat(e.i," at [").concat(e.x,",").concat(e.y,"] and ").concat(g.i," at [").concat(g.x,",").concat(g.y,"]"),!g.moved&&(g.static?t=jt(t,g,e,o,s):t=jt(t,e,g,o,s))}return t}function jt(t,e,r,n,o,i){const s=o==="horizontal",u=o==="vertical",a=e.static;if(n){n=!1;const d={x:s?Math.max(e.x-r.w,0):r.x,y:u?Math.max(e.y-r.h,0):r.y,w:r.w,h:r.h,i:"-1"},f=we(t,d),p=f&&f.y+f.h>e.y,w=f&&e.x+e.w>f.x;if(f){if(p&&u)return Ne(t,r,void 0,r.y+1,n,a,o);if(p&&o==null)return e.y=r.y,r.y=r.y+r.h,t;if(w&&s)return Ne(t,e,r.x,void 0,n,a,o)}else return"Doing reverse collision on ".concat(r.i," up to [").concat(d.x,",").concat(d.y,"]."),Ne(t,r,s?d.x:void 0,u?d.y:void 0,n,a,o)}const l=s?r.x+1:void 0,c=u?r.y+1:void 0;return l==null&&c==null?t:Ne(t,r,s?r.x+1:void 0,u?r.y+1:void 0,n,a,o)}function Ho(t){return t*100+"%"}const Br=(t,e,r,n)=>t+r>n?e:r,Gr=(t,e,r)=>t<0?e:r,Fr=t=>Math.max(0,t),$t=t=>Math.max(0,t),qt=(t,e,r)=>{let{left:n,height:o,width:i}=e;const s=t.top-(o-t.height);return{left:n,width:i,height:Gr(s,t.height,o),top:$t(s)}},At=(t,e,r)=>{let{top:n,left:o,height:i,width:s}=e;return{top:n,height:i,width:Br(t.left,t.width,s,r),left:Fr(o)}},It=(t,e,r)=>{let{top:n,height:o,width:i}=e;const s=t.left-(i-t.width);return{height:o,width:s<0?t.width:Br(t.left,t.width,i,r),top:$t(n),left:Fr(s)}},Bt=(t,e,r)=>{let{top:n,left:o,height:i,width:s}=e;return{width:s,left:o,height:Gr(n,t.height,i),top:$t(n)}},Wo=function(){return qt(arguments.length<=0?void 0:arguments[0],At(...arguments))},No=function(){return qt(arguments.length<=0?void 0:arguments[0],It(...arguments))},$o=function(){return Bt(arguments.length<=0?void 0:arguments[0],At(...arguments))},qo=function(){return Bt(arguments.length<=0?void 0:arguments[0],It(...arguments))},Ao={n:qt,ne:Wo,e:At,se:$o,s:Bt,sw:qo,w:It,nw:No};function Io(t,e,r,n){const o=Ao[t];return o?o(e,Ze(Ze({},e),r),n):r}function Bo(t){let{top:e,left:r,width:n,height:o}=t;const i="translate(".concat(r,"px,").concat(e,"px)");return{transform:i,WebkitTransform:i,MozTransform:i,msTransform:i,OTransform:i,width:"".concat(n,"px"),height:"".concat(o,"px"),position:"absolute"}}function Go(t){let{top:e,left:r,width:n,height:o}=t;return{top:"".concat(e,"px"),left:"".concat(r,"px"),width:"".concat(n,"px"),height:"".concat(o,"px"),position:"absolute"}}function Gt(t,e){return e==="horizontal"?Xr(t):e==="vertical"?Yr(t):t}function Yr(t){return t.slice(0).sort(function(e,r){return e.y>r.y||e.y===r.y&&e.x>r.x?1:e.y===r.y&&e.x===r.x?0:-1})}function Xr(t){return t.slice(0).sort(function(e,r){return e.x>r.x||e.x===r.x&&e.y>r.y?1:-1})}function Fo(t,e,r,n,o){t=t||[];const i=[];We.default.Children.forEach(e,u=>{if((u==null?void 0:u.key)==null)return;const a=Wt(t,String(u.key)),l=u.props["data-grid"];a&&l==null?i.push(xe(a)):l?i.push(xe(Ze(Ze({},l),{},{i:u.key}))):i.push(xe({w:1,h:1,x:0,y:rt(i),i:String(u.key)}))});const s=Ar(i,{cols:r});return o?s:$r(s,n,r)}function Yo(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"Layout";const r=["x","y","w","h"];if(!Array.isArray(t))throw new Error(e+" must be an array!");for(let n=0,o=t.length;n<o;n++){const i=t[n];for(let s=0;s<r.length;s++){const u=r[s],a=i[u];if(typeof a!="number"||Number.isNaN(a))throw new Error("ReactGridLayout: ".concat(e,"[").concat(n,"].").concat(u," must be a number! Received: ").concat(a," (").concat(typeof a,")"))}if(typeof i.i<"u"&&typeof i.i!="string")throw new Error("ReactGridLayout: ".concat(e,"[").concat(n,"].i must be a string! Received: ").concat(i.i," (").concat(typeof i.i,")"))}}function Xo(t){const{verticalCompact:e,compactType:r}=t||{};return e===!1?null:r}const Uo=()=>{};E.noop=Uo;var ae={};Object.defineProperty(ae,"__esModule",{value:!0});ae.calcGridColWidth=ot;ae.calcGridItemPosition=Vo;ae.calcGridItemWHPx=Et;ae.calcWH=Zo;ae.calcXY=Ko;ae.clamp=Se;function ot(t){const{margin:e,containerPadding:r,containerWidth:n,cols:o}=t;return(n-e[0]*(o-1)-r[0]*2)/o}function Et(t,e,r){return Number.isFinite(t)?Math.round(e*t+Math.max(0,t-1)*r):t}function Vo(t,e,r,n,o,i){const{margin:s,containerPadding:u,rowHeight:a}=t,l=ot(t),c={};return i&&i.resizing?(c.width=Math.round(i.resizing.width),c.height=Math.round(i.resizing.height)):(c.width=Et(n,l,s[0]),c.height=Et(o,a,s[1])),i&&i.dragging?(c.top=Math.round(i.dragging.top),c.left=Math.round(i.dragging.left)):i&&i.resizing&&typeof i.resizing.top=="number"&&typeof i.resizing.left=="number"?(c.top=Math.round(i.resizing.top),c.left=Math.round(i.resizing.left)):(c.top=Math.round((a+s[1])*r+u[1]),c.left=Math.round((l+s[0])*e+u[0])),c}function Ko(t,e,r,n,o){const{margin:i,containerPadding:s,cols:u,rowHeight:a,maxRows:l}=t,c=ot(t);let d=Math.round((r-s[0])/(c+i[0])),f=Math.round((e-s[1])/(a+i[1]));return d=Se(d,0,u-n),f=Se(f,0,l-o),{x:d,y:f}}function Zo(t,e,r,n,o,i){const{margin:s,maxRows:u,cols:a,rowHeight:l}=t,c=ot(t);let d=Math.round((e+s[0])/(c+s[0])),f=Math.round((r+s[1])/(l+s[1])),p=Se(d,0,a-n),w=Se(f,0,u-o);return["sw","w","nw"].indexOf(i)!==-1&&(p=Se(d,0,a)),["nw","n","ne"].indexOf(i)!==-1&&(w=Se(f,0,u)),{w:p,h:w}}function Se(t,e,r){return Math.max(Math.min(t,r),e)}var it={},st={exports:{}},Ur={},W={},le={};Object.defineProperty(le,"__esModule",{value:!0});le.dontSetMe=ri;le.findInArray=Jo;le.int=ti;le.isFunction=Qo;le.isNum=ei;function Jo(t,e){for(let r=0,n=t.length;r<n;r++)if(e.apply(e,[t[r],r,t]))return t[r]}function Qo(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Function]"}function ei(t){return typeof t=="number"&&!isNaN(t)}function ti(t){return parseInt(t,10)}function ri(t,e,r){if(t[e])return new Error(`Invalid prop ${e} passed to ${r} - do not set this, set it on the child.`)}var De={};Object.defineProperty(De,"__esModule",{value:!0});De.browserPrefixToKey=Kr;De.browserPrefixToStyle=ni;De.default=void 0;De.getPrefix=Vr;const yt=["Moz","Webkit","O","ms"];function Vr(){var r,n;let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"transform";if(typeof window>"u")return"";const e=(n=(r=window.document)==null?void 0:r.documentElement)==null?void 0:n.style;if(!e||t in e)return"";for(let o=0;o<yt.length;o++)if(Kr(t,yt[o])in e)return yt[o];return""}function Kr(t,e){return e?`${e}${oi(t)}`:t}function ni(t,e){return e?`-${e.toLowerCase()}-${t}`:t}function oi(t){let e="",r=!0;for(let n=0;n<t.length;n++)r?(e+=t[n].toUpperCase(),r=!1):t[n]==="-"?r=!0:e+=t[n];return e}De.default=Vr();Object.defineProperty(W,"__esModule",{value:!0});W.addClassName=Qr;W.addEvent=si;W.addUserSelectStyles=yi;W.createCSSTransform=pi;W.createSVGTransform=hi;W.getTouch=gi;W.getTouchIdentifier=mi;W.getTranslation=Ft;W.innerHeight=ci;W.innerWidth=di;W.matchesSelector=Jr;W.matchesSelectorAndParentsTo=ii;W.offsetXYFromParent=fi;W.outerHeight=li;W.outerWidth=ui;W.removeClassName=en;W.removeEvent=ai;W.scheduleRemoveUserSelectStyles=vi;var ee=le,pr=Zr(De);function Zr(t,e){if(typeof WeakMap=="function")var r=new WeakMap,n=new WeakMap;return(Zr=function(o,i){if(!i&&o&&o.__esModule)return o;var s,u,a={__proto__:null,default:o};if(o===null||typeof o!="object"&&typeof o!="function")return a;if(s=i?n:r){if(s.has(o))return s.get(o);s.set(o,a)}for(const l in o)l!=="default"&&{}.hasOwnProperty.call(o,l)&&((u=(s=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,l))&&(u.get||u.set)?s(a,l,u):a[l]=o[l]);return a})(t,e)}let Xe="";function Jr(t,e){return Xe||(Xe=(0,ee.findInArray)(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(r){return(0,ee.isFunction)(t[r])})),(0,ee.isFunction)(t[Xe])?t[Xe](e):!1}function ii(t,e,r){let n=t;do{if(Jr(n,e))return!0;if(n===r)return!1;n=n.parentNode}while(n);return!1}function si(t,e,r,n){if(!t)return;const o={capture:!0,...n};t.addEventListener?t.addEventListener(e,r,o):t.attachEvent?t.attachEvent("on"+e,r):t["on"+e]=r}function ai(t,e,r,n){if(!t)return;const o={capture:!0,...n};t.removeEventListener?t.removeEventListener(e,r,o):t.detachEvent?t.detachEvent("on"+e,r):t["on"+e]=null}function li(t){let e=t.clientHeight;const r=t.ownerDocument.defaultView.getComputedStyle(t);return e+=(0,ee.int)(r.borderTopWidth),e+=(0,ee.int)(r.borderBottomWidth),e}function ui(t){let e=t.clientWidth;const r=t.ownerDocument.defaultView.getComputedStyle(t);return e+=(0,ee.int)(r.borderLeftWidth),e+=(0,ee.int)(r.borderRightWidth),e}function ci(t){let e=t.clientHeight;const r=t.ownerDocument.defaultView.getComputedStyle(t);return e-=(0,ee.int)(r.paddingTop),e-=(0,ee.int)(r.paddingBottom),e}function di(t){let e=t.clientWidth;const r=t.ownerDocument.defaultView.getComputedStyle(t);return e-=(0,ee.int)(r.paddingLeft),e-=(0,ee.int)(r.paddingRight),e}function fi(t,e,r){const o=e===e.ownerDocument.body?{left:0,top:0}:e.getBoundingClientRect(),i=(t.clientX+e.scrollLeft-o.left)/r,s=(t.clientY+e.scrollTop-o.top)/r;return{x:i,y:s}}function pi(t,e){const r=Ft(t,e,"px");return{[(0,pr.browserPrefixToKey)("transform",pr.default)]:r}}function hi(t,e){return Ft(t,e,"")}function Ft(t,e,r){let{x:n,y:o}=t,i=`translate(${n}${r},${o}${r})`;if(e){const s=`${typeof e.x=="string"?e.x:e.x+r}`,u=`${typeof e.y=="string"?e.y:e.y+r}`;i=`translate(${s}, ${u})`+i}return i}function gi(t,e){return t.targetTouches&&(0,ee.findInArray)(t.targetTouches,r=>e===r.identifier)||t.changedTouches&&(0,ee.findInArray)(t.changedTouches,r=>e===r.identifier)}function mi(t){if(t.targetTouches&&t.targetTouches[0])return t.targetTouches[0].identifier;if(t.changedTouches&&t.changedTouches[0])return t.changedTouches[0].identifier}function yi(t){if(!t)return;let e=t.getElementById("react-draggable-style-el");e||(e=t.createElement("style"),e.type="text/css",e.id="react-draggable-style-el",e.innerHTML=`.react-draggable-transparent-selection *::-moz-selection {all: inherit;}
|
|
2
|
-
`,e.innerHTML+=`.react-draggable-transparent-selection *::selection {all: inherit;}
|
|
3
|
-
`,t.getElementsByTagName("head")[0].appendChild(e)),t.body&&Qr(t.body,"react-draggable-transparent-selection")}function vi(t){window.requestAnimationFrame?window.requestAnimationFrame(()=>{hr(t)}):hr(t)}function hr(t){if(t)try{if(t.body&&en(t.body,"react-draggable-transparent-selection"),t.selection)t.selection.empty();else{const e=(t.defaultView||window).getSelection();e&&e.type!=="Caret"&&e.removeAllRanges()}}catch{}}function Qr(t,e){t.classList?t.classList.add(e):t.className.match(new RegExp(`(?:^|\\s)${e}(?!\\S)`))||(t.className+=` ${e}`)}function en(t,e){t.classList?t.classList.remove(e):t.className=t.className.replace(new RegExp(`(?:^|\\s)${e}(?!\\S)`,"g"),"")}var ue={};Object.defineProperty(ue,"__esModule",{value:!0});ue.canDragX=Si;ue.canDragY=xi;ue.createCoreData=Di;ue.createDraggableData=_i;ue.getBoundPosition=bi;ue.getControlPosition=Oi;ue.snapToGrid=wi;var Q=le,ze=W;function bi(t,e,r){if(!t.props.bounds)return[e,r];let{bounds:n}=t.props;n=typeof n=="string"?n:Ri(n);const o=Yt(t);if(typeof n=="string"){const{ownerDocument:i}=o,s=i.defaultView;let u;if(n==="parent"?u=o.parentNode:u=o.getRootNode().querySelector(n),!(u instanceof s.HTMLElement))throw new Error('Bounds selector "'+n+'" could not find an element.');const a=u,l=s.getComputedStyle(o),c=s.getComputedStyle(a);n={left:-o.offsetLeft+(0,Q.int)(c.paddingLeft)+(0,Q.int)(l.marginLeft),top:-o.offsetTop+(0,Q.int)(c.paddingTop)+(0,Q.int)(l.marginTop),right:(0,ze.innerWidth)(a)-(0,ze.outerWidth)(o)-o.offsetLeft+(0,Q.int)(c.paddingRight)-(0,Q.int)(l.marginRight),bottom:(0,ze.innerHeight)(a)-(0,ze.outerHeight)(o)-o.offsetTop+(0,Q.int)(c.paddingBottom)-(0,Q.int)(l.marginBottom)}}return(0,Q.isNum)(n.right)&&(e=Math.min(e,n.right)),(0,Q.isNum)(n.bottom)&&(r=Math.min(r,n.bottom)),(0,Q.isNum)(n.left)&&(e=Math.max(e,n.left)),(0,Q.isNum)(n.top)&&(r=Math.max(r,n.top)),[e,r]}function wi(t,e,r){const n=Math.round(e/t[0])*t[0],o=Math.round(r/t[1])*t[1];return[n,o]}function Si(t){return t.props.axis==="both"||t.props.axis==="x"}function xi(t){return t.props.axis==="both"||t.props.axis==="y"}function Oi(t,e,r){const n=typeof e=="number"?(0,ze.getTouch)(t,e):null;if(typeof e=="number"&&!n)return null;const o=Yt(r),i=r.props.offsetParent||o.offsetParent||o.ownerDocument.body;return(0,ze.offsetXYFromParent)(n||t,i,r.props.scale)}function Di(t,e,r){const n=!(0,Q.isNum)(t.lastX),o=Yt(t);return n?{node:o,deltaX:0,deltaY:0,lastX:e,lastY:r,x:e,y:r}:{node:o,deltaX:e-t.lastX,deltaY:r-t.lastY,lastX:t.lastX,lastY:t.lastY,x:e,y:r}}function _i(t,e){const r=t.props.scale;return{node:e.node,x:t.state.x+e.deltaX/r,y:t.state.y+e.deltaY/r,deltaX:e.deltaX/r,deltaY:e.deltaY/r,lastX:t.state.x,lastY:t.state.y}}function Ri(t){return{left:t.left,top:t.top,right:t.right,bottom:t.bottom}}function Yt(t){const e=t.findDOMNode();if(!e)throw new Error("<DraggableCore>: Unmounted during event!");return e}var at={},lt={};Object.defineProperty(lt,"__esModule",{value:!0});lt.default=Pi;function Pi(){}Object.defineProperty(at,"__esModule",{value:!0});at.default=void 0;var vt=tn(T),X=Xt(he),ji=Xt(kt),Y=W,fe=ue,bt=le,He=Xt(lt);function Xt(t){return t&&t.__esModule?t:{default:t}}function tn(t,e){if(typeof WeakMap=="function")var r=new WeakMap,n=new WeakMap;return(tn=function(o,i){if(!i&&o&&o.__esModule)return o;var s,u,a={__proto__:null,default:o};if(o===null||typeof o!="object"&&typeof o!="function")return a;if(s=i?n:r){if(s.has(o))return s.get(o);s.set(o,a)}for(const l in o)l!=="default"&&{}.hasOwnProperty.call(o,l)&&((u=(s=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,l))&&(u.get||u.set)?s(a,l,u):a[l]=o[l]);return a})(t,e)}function U(t,e,r){return(e=Ei(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Ei(t){var e=zi(t,"string");return typeof e=="symbol"?e:e+""}function zi(t,e){if(typeof t!="object"||!t)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}const re={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}};let pe=re.mouse,ut=class extends vt.Component{constructor(){super(...arguments),U(this,"dragging",!1),U(this,"lastX",NaN),U(this,"lastY",NaN),U(this,"touchIdentifier",null),U(this,"mounted",!1),U(this,"handleDragStart",e=>{if(this.props.onMouseDown(e),!this.props.allowAnyClick&&typeof e.button=="number"&&e.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||!(e.target instanceof n.defaultView.Node)||this.props.handle&&!(0,Y.matchesSelectorAndParentsTo)(e.target,this.props.handle,r)||this.props.cancel&&(0,Y.matchesSelectorAndParentsTo)(e.target,this.props.cancel,r))return;e.type==="touchstart"&&!this.props.allowMobileScroll&&e.preventDefault();const o=(0,Y.getTouchIdentifier)(e);this.touchIdentifier=o;const i=(0,fe.getControlPosition)(e,o,this);if(i==null)return;const{x:s,y:u}=i,a=(0,fe.createCoreData)(this,s,u);(0,He.default)("DraggableCore: handleDragStart: %j",a),(0,He.default)("calling",this.props.onStart),!(this.props.onStart(e,a)===!1||this.mounted===!1)&&(this.props.enableUserSelectHack&&(0,Y.addUserSelectStyles)(n),this.dragging=!0,this.lastX=s,this.lastY=u,(0,Y.addEvent)(n,pe.move,this.handleDrag),(0,Y.addEvent)(n,pe.stop,this.handleDragStop))}),U(this,"handleDrag",e=>{const r=(0,fe.getControlPosition)(e,this.touchIdentifier,this);if(r==null)return;let{x:n,y:o}=r;if(Array.isArray(this.props.grid)){let u=n-this.lastX,a=o-this.lastY;if([u,a]=(0,fe.snapToGrid)(this.props.grid,u,a),!u&&!a)return;n=this.lastX+u,o=this.lastY+a}const i=(0,fe.createCoreData)(this,n,o);if((0,He.default)("DraggableCore: handleDrag: %j",i),this.props.onDrag(e,i)===!1||this.mounted===!1){try{this.handleDragStop(new MouseEvent("mouseup"))}catch{const a=document.createEvent("MouseEvents");a.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),this.handleDragStop(a)}return}this.lastX=n,this.lastY=o}),U(this,"handleDragStop",e=>{if(!this.dragging)return;const r=(0,fe.getControlPosition)(e,this.touchIdentifier,this);if(r==null)return;let{x:n,y:o}=r;if(Array.isArray(this.props.grid)){let a=n-this.lastX||0,l=o-this.lastY||0;[a,l]=(0,fe.snapToGrid)(this.props.grid,a,l),n=this.lastX+a,o=this.lastY+l}const i=(0,fe.createCoreData)(this,n,o);if(this.props.onStop(e,i)===!1||this.mounted===!1)return!1;const u=this.findDOMNode();u&&this.props.enableUserSelectHack&&(0,Y.scheduleRemoveUserSelectStyles)(u.ownerDocument),(0,He.default)("DraggableCore: handleDragStop: %j",i),this.dragging=!1,this.lastX=NaN,this.lastY=NaN,u&&((0,He.default)("DraggableCore: Removing handlers"),(0,Y.removeEvent)(u.ownerDocument,pe.move,this.handleDrag),(0,Y.removeEvent)(u.ownerDocument,pe.stop,this.handleDragStop))}),U(this,"onMouseDown",e=>(pe=re.mouse,this.handleDragStart(e))),U(this,"onMouseUp",e=>(pe=re.mouse,this.handleDragStop(e))),U(this,"onTouchStart",e=>(pe=re.touch,this.handleDragStart(e))),U(this,"onTouchEnd",e=>(pe=re.touch,this.handleDragStop(e)))}componentDidMount(){this.mounted=!0;const e=this.findDOMNode();e&&(0,Y.addEvent)(e,re.touch.start,this.onTouchStart,{passive:!1})}componentWillUnmount(){this.mounted=!1;const e=this.findDOMNode();if(e){const{ownerDocument:r}=e;(0,Y.removeEvent)(r,re.mouse.move,this.handleDrag),(0,Y.removeEvent)(r,re.touch.move,this.handleDrag),(0,Y.removeEvent)(r,re.mouse.stop,this.handleDragStop),(0,Y.removeEvent)(r,re.touch.stop,this.handleDragStop),(0,Y.removeEvent)(e,re.touch.start,this.onTouchStart,{passive:!1}),this.props.enableUserSelectHack&&(0,Y.scheduleRemoveUserSelectStyles)(r)}}findDOMNode(){var e,r,n;return(e=this.props)!=null&&e.nodeRef?(n=(r=this.props)==null?void 0:r.nodeRef)==null?void 0:n.current:ji.default.findDOMNode(this)}render(){return vt.cloneElement(vt.Children.only(this.props.children),{onMouseDown:this.onMouseDown,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}};at.default=ut;U(ut,"displayName","DraggableCore");U(ut,"propTypes",{allowAnyClick:X.default.bool,allowMobileScroll:X.default.bool,children:X.default.node.isRequired,disabled:X.default.bool,enableUserSelectHack:X.default.bool,offsetParent:function(t,e){if(t[e]&&t[e].nodeType!==1)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:X.default.arrayOf(X.default.number),handle:X.default.string,cancel:X.default.string,nodeRef:X.default.object,onStart:X.default.func,onDrag:X.default.func,onStop:X.default.func,onMouseDown:X.default.func,scale:X.default.number,className:bt.dontSetMe,style:bt.dontSetMe,transform:bt.dontSetMe});U(ut,"defaultProps",{allowAnyClick:!1,allowMobileScroll:!1,disabled:!1,enableUserSelectHack:!0,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){},scale:1});(function(t){Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"DraggableCore",{enumerable:!0,get:function(){return a.default}}),t.default=void 0;var e=d(T),r=c(he),n=c(kt),o=tt,i=W,s=ue,u=le,a=c(at),l=c(lt);function c(g){return g&&g.__esModule?g:{default:g}}function d(g,b){if(typeof WeakMap=="function")var m=new WeakMap,x=new WeakMap;return(d=function(y,j){if(!j&&y&&y.__esModule)return y;var A,I,V={__proto__:null,default:y};if(y===null||typeof y!="object"&&typeof y!="function")return V;if(A=j?x:m){if(A.has(y))return A.get(y);A.set(y,V)}for(const J in y)J!=="default"&&{}.hasOwnProperty.call(y,J)&&((I=(A=Object.defineProperty)&&Object.getOwnPropertyDescriptor(y,J))&&(I.get||I.set)?A(V,J,I):V[J]=y[J]);return V})(g,b)}function f(){return f=Object.assign?Object.assign.bind():function(g){for(var b=1;b<arguments.length;b++){var m=arguments[b];for(var x in m)({}).hasOwnProperty.call(m,x)&&(g[x]=m[x])}return g},f.apply(null,arguments)}function p(g,b,m){return(b=w(b))in g?Object.defineProperty(g,b,{value:m,enumerable:!0,configurable:!0,writable:!0}):g[b]=m,g}function w(g){var b=D(g,"string");return typeof b=="symbol"?b:b+""}function D(g,b){if(typeof g!="object"||!g)return g;var m=g[Symbol.toPrimitive];if(m!==void 0){var x=m.call(g,b);if(typeof x!="object")return x;throw new TypeError("@@toPrimitive must return a primitive value.")}return(b==="string"?String:Number)(g)}class S extends e.Component{static getDerivedStateFromProps(b,m){let{position:x}=b,{prevPropsPosition:y}=m;return x&&(!y||x.x!==y.x||x.y!==y.y)?((0,l.default)("Draggable: getDerivedStateFromProps %j",{position:x,prevPropsPosition:y}),{x:x.x,y:x.y,prevPropsPosition:{...x}}):null}constructor(b){super(b),p(this,"onDragStart",(m,x)=>{if((0,l.default)("Draggable: onDragStart: %j",x),this.props.onStart(m,(0,s.createDraggableData)(this,x))===!1)return!1;this.setState({dragging:!0,dragged:!0})}),p(this,"onDrag",(m,x)=>{if(!this.state.dragging)return!1;(0,l.default)("Draggable: onDrag: %j",x);const y=(0,s.createDraggableData)(this,x),j={x:y.x,y:y.y,slackX:0,slackY:0};if(this.props.bounds){const{x:I,y:V}=j;j.x+=this.state.slackX,j.y+=this.state.slackY;const[J,Te]=(0,s.getBoundPosition)(this,j.x,j.y);j.x=J,j.y=Te,j.slackX=this.state.slackX+(I-j.x),j.slackY=this.state.slackY+(V-j.y),y.x=j.x,y.y=j.y,y.deltaX=j.x-this.state.x,y.deltaY=j.y-this.state.y}if(this.props.onDrag(m,y)===!1)return!1;this.setState(j)}),p(this,"onDragStop",(m,x)=>{if(!this.state.dragging||this.props.onStop(m,(0,s.createDraggableData)(this,x))===!1)return!1;(0,l.default)("Draggable: onDragStop: %j",x);const j={dragging:!1,slackX:0,slackY:0};if(!!this.props.position){const{x:I,y:V}=this.props.position;j.x=I,j.y=V}this.setState(j)}),this.state={dragging:!1,dragged:!1,x:b.position?b.position.x:b.defaultPosition.x,y:b.position?b.position.y:b.defaultPosition.y,prevPropsPosition:{...b.position},slackX:0,slackY:0,isElementSVG:!1},b.position&&!(b.onDrag||b.onStop)&&console.warn("A `position` was applied to this <Draggable>, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}componentDidMount(){typeof window.SVGElement<"u"&&this.findDOMNode()instanceof window.SVGElement&&this.setState({isElementSVG:!0})}componentWillUnmount(){this.state.dragging&&this.setState({dragging:!1})}findDOMNode(){var b,m;return((m=(b=this.props)==null?void 0:b.nodeRef)==null?void 0:m.current)??n.default.findDOMNode(this)}render(){const{axis:b,bounds:m,children:x,defaultPosition:y,defaultClassName:j,defaultClassNameDragging:A,defaultClassNameDragged:I,position:V,positionOffset:J,scale:Te,...gt}=this.props;let Le={},ke=null;const ge=!!!V||this.state.dragging,me=V||y,Be={x:(0,s.canDragX)(this)&&ge?this.state.x:me.x,y:(0,s.canDragY)(this)&&ge?this.state.y:me.y};this.state.isElementSVG?ke=(0,i.createSVGTransform)(Be,J):Le=(0,i.createCSSTransform)(Be,J);const mt=(0,o.clsx)(x.props.className||"",j,{[A]:this.state.dragging,[I]:this.state.dragged});return e.createElement(a.default,f({},gt,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),e.cloneElement(e.Children.only(x),{className:mt,style:{...x.props.style,...Le},transform:ke}))}}t.default=S,p(S,"displayName","Draggable"),p(S,"propTypes",{...a.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}),p(S,"defaultProps",{...a.default.defaultProps,axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},scale:1})})(Ur);const{default:rn,DraggableCore:Ci}=Ur;st.exports=rn;st.exports.default=rn;st.exports.DraggableCore=Ci;var nn=st.exports,ct={exports:{}},Ae={},Ut={};Ut.__esModule=!0;Ut.cloneElement=Wi;var Mi=Ti(T);function Ti(t){return t&&t.__esModule?t:{default:t}}function gr(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function mr(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?gr(Object(r),!0).forEach(function(n){Li(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):gr(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function Li(t,e,r){return(e=ki(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function ki(t){var e=Hi(t,"string");return typeof e=="symbol"?e:e+""}function Hi(t,e){if(typeof t!="object"||!t)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function Wi(t,e){return e.style&&t.props.style&&(e.style=mr(mr({},t.props.style),e.style)),e.className&&t.props.className&&(e.className=`${t.props.className} ${e.className}`),Mi.default.cloneElement(t,e)}var Ie={};Ie.__esModule=!0;Ie.resizableProps=void 0;var R=Ni(he);function Ni(t){return t&&t.__esModule?t:{default:t}}Ie.resizableProps={axis:R.default.oneOf(["both","x","y","none"]),className:R.default.string,children:R.default.element.isRequired,draggableOpts:R.default.shape({allowAnyClick:R.default.bool,cancel:R.default.string,children:R.default.node,disabled:R.default.bool,enableUserSelectHack:R.default.bool,offsetParent:typeof Element<"u"?R.default.instanceOf(Element):R.default.any,grid:R.default.arrayOf(R.default.number),handle:R.default.string,nodeRef:R.default.object,onStart:R.default.func,onDrag:R.default.func,onStop:R.default.func,onMouseDown:R.default.func,scale:R.default.number}),height:function(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];const[n]=e;return n.axis==="both"||n.axis==="y"?R.default.number.isRequired(...e):R.default.number(...e)},handle:R.default.oneOfType([R.default.node,R.default.func]),handleSize:R.default.arrayOf(R.default.number),lockAspectRatio:R.default.bool,maxConstraints:R.default.arrayOf(R.default.number),minConstraints:R.default.arrayOf(R.default.number),onResizeStop:R.default.func,onResizeStart:R.default.func,onResize:R.default.func,resizeHandles:R.default.arrayOf(R.default.oneOf(["s","w","e","n","sw","nw","se","ne"])),transformScale:R.default.number,width:function(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];const[n]=e;return n.axis==="both"||n.axis==="x"?R.default.number.isRequired(...e):R.default.number(...e)}};Ae.__esModule=!0;Ae.default=void 0;var Re=on(T),$i=nn,qi=Ut,Ai=Ie;const Ii=["children","className","draggableOpts","width","height","handle","handleSize","lockAspectRatio","axis","minConstraints","maxConstraints","onResize","onResizeStop","onResizeStart","resizeHandles","transformScale"];function on(t,e){if(typeof WeakMap=="function")var r=new WeakMap,n=new WeakMap;return(on=function(o,i){if(!i&&o&&o.__esModule)return o;var s,u,a={__proto__:null,default:o};if(o===null||typeof o!="object"&&typeof o!="function")return a;if(s=i?n:r){if(s.has(o))return s.get(o);s.set(o,a)}for(const l in o)l!=="default"&&{}.hasOwnProperty.call(o,l)&&((u=(s=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,l))&&(u.get||u.set)?s(a,l,u):a[l]=o[l]);return a})(t,e)}function zt(){return zt=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)({}).hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},zt.apply(null,arguments)}function Bi(t,e){if(t==null)return{};var r,n,o=Gi(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)r=i[n],e.indexOf(r)===-1&&{}.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}function Gi(t,e){if(t==null)return{};var r={};for(var n in t)if({}.hasOwnProperty.call(t,n)){if(e.indexOf(n)!==-1)continue;r[n]=t[n]}return r}function yr(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function wt(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?yr(Object(r),!0).forEach(function(n){Fi(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):yr(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function Fi(t,e,r){return(e=Yi(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Yi(t){var e=Xi(t,"string");return typeof e=="symbol"?e:e+""}function Xi(t,e){if(typeof t!="object"||!t)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}class Vt extends Re.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(e,r){const{minConstraints:n,maxConstraints:o,lockAspectRatio:i}=this.props;if(!n&&!o&&!i)return[e,r];if(i){const c=this.props.width/this.props.height,d=e-this.props.width,f=r-this.props.height;Math.abs(d)>Math.abs(f*c)?r=e/c:e=r*c}const[s,u]=[e,r];let[a,l]=this.slack||[0,0];return e+=a,r+=l,n&&(e=Math.max(n[0],e),r=Math.max(n[1],r)),o&&(e=Math.min(o[0],e),r=Math.min(o[1],r)),this.slack=[a+(s-e),l+(u-r)],[e,r]}resizeHandler(e,r){return(n,o)=>{var b;let{node:i,deltaX:s,deltaY:u}=o;e==="onResizeStart"&&this.resetData();const a=(this.props.axis==="both"||this.props.axis==="x")&&r!=="n"&&r!=="s",l=(this.props.axis==="both"||this.props.axis==="y")&&r!=="e"&&r!=="w";if(!a&&!l)return;const c=r[0],d=r[r.length-1],f=i.getBoundingClientRect();if(this.lastHandleRect!=null){if(d==="w"){const m=f.left-this.lastHandleRect.left;s+=m}if(c==="n"){const m=f.top-this.lastHandleRect.top;u+=m}}this.lastHandleRect=f,d==="w"&&(s=-s),c==="n"&&(u=-u);let p=this.props.width+(a?s/this.props.transformScale:0),w=this.props.height+(l?u/this.props.transformScale:0);[p,w]=this.runConstraints(p,w),e==="onResizeStop"&&this.lastSize&&({width:p,height:w}=this.lastSize);const D=p!==this.props.width||w!==this.props.height;e!=="onResizeStop"&&(this.lastSize={width:p,height:w});const S=typeof this.props[e]=="function"?this.props[e]:null;S&&!(e==="onResize"&&!D)&&((b=n.persist)==null||b.call(n),S(n,{node:i,size:{width:p,height:w},handle:r})),e==="onResizeStop"&&this.resetData()}}renderResizeHandle(e,r){const{handle:n}=this.props;if(!n)return Re.createElement("span",{className:`react-resizable-handle react-resizable-handle-${e}`,ref:r});if(typeof n=="function")return n(e,r);const o=typeof n.type=="string",i=wt({ref:r},o?{}:{handleAxis:e});return Re.cloneElement(n,i)}render(){const e=this.props,{children:r,className:n,draggableOpts:o,width:i,height:s,handle:u,handleSize:a,lockAspectRatio:l,axis:c,minConstraints:d,maxConstraints:f,onResize:p,onResizeStop:w,onResizeStart:D,resizeHandles:S,transformScale:g}=e,b=Bi(e,Ii);return(0,qi.cloneElement)(r,wt(wt({},b),{},{className:`${n?`${n} `:""}react-resizable`,children:[...Re.Children.toArray(r.props.children),...S.map(m=>{const x=this.handleRefs[m]??(this.handleRefs[m]=Re.createRef());return Re.createElement($i.DraggableCore,zt({},o,{nodeRef:x,key:`resizableHandle-${m}`,onStop:this.resizeHandler("onResizeStop",m),onStart:this.resizeHandler("onResizeStart",m),onDrag:this.resizeHandler("onResize",m)}),this.renderResizeHandle(m,x))})]}))}}Ae.default=Vt;Vt.propTypes=Ai.resizableProps;Vt.defaultProps={axis:"both",handleSize:[20,20],lockAspectRatio:!1,minConstraints:[20,20],maxConstraints:[1/0,1/0],resizeHandles:["se"],transformScale:1};var dt={};dt.__esModule=!0;dt.default=void 0;var St=an(T),Ui=sn(he),Vi=sn(Ae),Ki=Ie;const Zi=["handle","handleSize","onResize","onResizeStart","onResizeStop","draggableOpts","minConstraints","maxConstraints","lockAspectRatio","axis","width","height","resizeHandles","style","transformScale"];function sn(t){return t&&t.__esModule?t:{default:t}}function an(t,e){if(typeof WeakMap=="function")var r=new WeakMap,n=new WeakMap;return(an=function(o,i){if(!i&&o&&o.__esModule)return o;var s,u,a={__proto__:null,default:o};if(o===null||typeof o!="object"&&typeof o!="function")return a;if(s=i?n:r){if(s.has(o))return s.get(o);s.set(o,a)}for(const l in o)l!=="default"&&{}.hasOwnProperty.call(o,l)&&((u=(s=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,l))&&(u.get||u.set)?s(a,l,u):a[l]=o[l]);return a})(t,e)}function Ct(){return Ct=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)({}).hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Ct.apply(null,arguments)}function vr(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function Je(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?vr(Object(r),!0).forEach(function(n){Ji(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):vr(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function Ji(t,e,r){return(e=Qi(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Qi(t){var e=es(t,"string");return typeof e=="symbol"?e:e+""}function es(t,e){if(typeof t!="object"||!t)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function ts(t,e){if(t==null)return{};var r,n,o=rs(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)r=i[n],e.indexOf(r)===-1&&{}.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}function rs(t,e){if(t==null)return{};var r={};for(var n in t)if({}.hasOwnProperty.call(t,n)){if(e.indexOf(n)!==-1)continue;r[n]=t[n]}return r}class ln extends St.Component{constructor(){super(...arguments),this.state={width:this.props.width,height:this.props.height,propsWidth:this.props.width,propsHeight:this.props.height},this.onResize=(e,r)=>{var o;const{size:n}=r;this.props.onResize?((o=e.persist)==null||o.call(e),this.setState(n,()=>this.props.onResize&&this.props.onResize(e,r))):this.setState(n)}}static getDerivedStateFromProps(e,r){return r.propsWidth!==e.width||r.propsHeight!==e.height?{width:e.width,height:e.height,propsWidth:e.width,propsHeight:e.height}:null}render(){const e=this.props,{handle:r,handleSize:n,onResize:o,onResizeStart:i,onResizeStop:s,draggableOpts:u,minConstraints:a,maxConstraints:l,lockAspectRatio:c,axis:d,width:f,height:p,resizeHandles:w,style:D,transformScale:S}=e,g=ts(e,Zi);return St.createElement(Vi.default,{axis:d,draggableOpts:u,handle:r,handleSize:n,height:this.state.height,lockAspectRatio:c,maxConstraints:l,minConstraints:a,onResizeStart:i,onResize:this.onResize,onResizeStop:s,resizeHandles:w,transformScale:S,width:this.state.width},St.createElement("div",Ct({},g,{style:Je(Je({},D),{},{width:this.state.width+"px",height:this.state.height+"px"})})))}}dt.default=ln;ln.propTypes=Je(Je({},Ki.resizableProps),{},{children:Ui.default.element});ct.exports=function(){throw new Error("Don't instantiate Resizable directly! Use require('react-resizable').Resizable")};ct.exports.Resizable=Ae.default;ct.exports.ResizableBox=dt.default;var ns=ct.exports,ce={};Object.defineProperty(ce,"__esModule",{value:!0});ce.resizeHandleType=ce.resizeHandleAxesType=ce.default=void 0;var P=un(he),os=un(T);function un(t){return t&&t.__esModule?t:{default:t}}const is=ce.resizeHandleAxesType=P.default.arrayOf(P.default.oneOf(["s","w","e","n","sw","nw","se","ne"])),ss=ce.resizeHandleType=P.default.oneOfType([P.default.node,P.default.func]);ce.default={className:P.default.string,style:P.default.object,width:P.default.number,autoSize:P.default.bool,cols:P.default.number,draggableCancel:P.default.string,draggableHandle:P.default.string,verticalCompact:function(t){t.verticalCompact},compactType:P.default.oneOf(["vertical","horizontal"]),layout:function(t){var e=t.layout;e!==void 0&&E.validateLayout(e,"layout")},margin:P.default.arrayOf(P.default.number),containerPadding:P.default.arrayOf(P.default.number),rowHeight:P.default.number,maxRows:P.default.number,isBounded:P.default.bool,isDraggable:P.default.bool,isResizable:P.default.bool,allowOverlap:P.default.bool,preventCollision:P.default.bool,useCSSTransforms:P.default.bool,transformScale:P.default.number,isDroppable:P.default.bool,resizeHandles:is,resizeHandle:ss,onLayoutChange:P.default.func,onDragStart:P.default.func,onDrag:P.default.func,onDragStop:P.default.func,onResizeStart:P.default.func,onResize:P.default.func,onResizeStop:P.default.func,onDrop:P.default.func,droppingItem:P.default.shape({i:P.default.string.isRequired,w:P.default.number.isRequired,h:P.default.number.isRequired}),children:function(t,e){const r=t[e],n={};os.default.Children.forEach(r,function(o){if((o==null?void 0:o.key)!=null){if(n[o.key])throw new Error('Duplicate child key "'+o.key+'" found! This will cause problems in ReactGridLayout.');n[o.key]=!0}})},innerRef:P.default.any};Object.defineProperty(it,"__esModule",{value:!0});it.default=void 0;var Pe=Kt(T),br=kt,z=Kt(he),as=nn,ls=ns,je=E,G=ae,wr=ce,us=Kt(tt);function Kt(t){return t&&t.__esModule?t:{default:t}}function Sr(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function xt(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?Sr(Object(r),!0).forEach(function(n){ne(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):Sr(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function ne(t,e,r){return(e=cs(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function cs(t){var e=ds(t,"string");return typeof e=="symbol"?e:e+""}function ds(t,e){if(typeof t!="object"||!t)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}class Zt extends Pe.default.Component{constructor(){super(...arguments),ne(this,"state",{resizing:null,dragging:null,className:""}),ne(this,"elementRef",Pe.default.createRef()),ne(this,"onDragStart",(e,r)=>{let{node:n}=r;const{onDragStart:o,transformScale:i}=this.props;if(!o)return;const s={top:0,left:0},{offsetParent:u}=n;if(!u)return;const a=u.getBoundingClientRect(),l=n.getBoundingClientRect(),c=l.left/i,d=a.left/i,f=l.top/i,p=a.top/i;s.left=c-d+u.scrollLeft,s.top=f-p+u.scrollTop,this.setState({dragging:s});const{x:w,y:D}=(0,G.calcXY)(this.getPositionParams(),s.top,s.left,this.props.w,this.props.h);return o.call(this,this.props.i,w,D,{e,node:n,newPosition:s})}),ne(this,"onDrag",(e,r,n)=>{let{node:o,deltaX:i,deltaY:s}=r;const{onDrag:u}=this.props;if(!u)return;if(!this.state.dragging)throw new Error("onDrag called before onDragStart.");let a=this.state.dragging.top+s,l=this.state.dragging.left+i;const{isBounded:c,i:d,w:f,h:p,containerWidth:w}=this.props,D=this.getPositionParams();if(c){const{offsetParent:m}=o;if(m){const{margin:x,rowHeight:y}=this.props,j=m.clientHeight-(0,G.calcGridItemWHPx)(p,y,x[1]);a=(0,G.clamp)(a,0,j);const A=(0,G.calcGridColWidth)(D),I=w-(0,G.calcGridItemWHPx)(f,A,x[0]);l=(0,G.clamp)(l,0,I)}}const S={top:a,left:l};n?this.setState({dragging:S}):(0,br.flushSync)(()=>{this.setState({dragging:S})});const{x:g,y:b}=(0,G.calcXY)(D,a,l,f,p);return u.call(this,d,g,b,{e,node:o,newPosition:S})}),ne(this,"onDragStop",(e,r)=>{let{node:n}=r;const{onDragStop:o}=this.props;if(!o)return;if(!this.state.dragging)throw new Error("onDragEnd called before onDragStart.");const{w:i,h:s,i:u}=this.props,{left:a,top:l}=this.state.dragging,c={top:l,left:a};this.setState({dragging:null});const{x:d,y:f}=(0,G.calcXY)(this.getPositionParams(),l,a,i,s);return o.call(this,u,d,f,{e,node:n,newPosition:c})}),ne(this,"onResizeStop",(e,r,n)=>this.onResizeHandler(e,r,n,"onResizeStop")),ne(this,"onResizeStart",(e,r,n)=>this.onResizeHandler(e,r,n,"onResizeStart")),ne(this,"onResize",(e,r,n)=>this.onResizeHandler(e,r,n,"onResize"))}shouldComponentUpdate(e,r){if(this.props.children!==e.children||this.props.droppingPosition!==e.droppingPosition)return!0;const n=(0,G.calcGridItemPosition)(this.getPositionParams(this.props),this.props.x,this.props.y,this.props.w,this.props.h,this.state),o=(0,G.calcGridItemPosition)(this.getPositionParams(e),e.x,e.y,e.w,e.h,r);return!(0,je.fastPositionEqual)(n,o)||this.props.useCSSTransforms!==e.useCSSTransforms}componentDidMount(){this.moveDroppingItem({})}componentDidUpdate(e){this.moveDroppingItem(e)}moveDroppingItem(e){const{droppingPosition:r}=this.props;if(!r)return;const n=this.elementRef.current;if(!n)return;const o=e.droppingPosition||{left:0,top:0},{dragging:i}=this.state,s=i&&r.left!==o.left||r.top!==o.top;if(!i)this.onDragStart(r.e,{node:n,deltaX:r.left,deltaY:r.top});else if(s){const u=r.left-i.left,a=r.top-i.top;this.onDrag(r.e,{node:n,deltaX:u,deltaY:a},!0)}}getPositionParams(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.props;return{cols:e.cols,containerPadding:e.containerPadding,containerWidth:e.containerWidth,margin:e.margin,maxRows:e.maxRows,rowHeight:e.rowHeight}}createStyle(e){const{usePercentages:r,containerWidth:n,useCSSTransforms:o}=this.props;let i;return o?i=(0,je.setTransform)(e):(i=(0,je.setTopLeft)(e),r&&(i.left=(0,je.perc)(e.left/n),i.width=(0,je.perc)(e.width/n))),i}mixinDraggable(e,r){return Pe.default.createElement(as.DraggableCore,{disabled:!r,onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop,handle:this.props.handle,cancel:".react-resizable-handle"+(this.props.cancel?","+this.props.cancel:""),scale:this.props.transformScale,nodeRef:this.elementRef},e)}curryResizeHandler(e,r){return(n,o)=>r(n,o,e)}mixinResizable(e,r,n){const{cols:o,minW:i,minH:s,maxW:u,maxH:a,transformScale:l,resizeHandles:c,resizeHandle:d}=this.props,f=this.getPositionParams(),p=(0,G.calcGridItemPosition)(f,0,0,o,0).width,w=(0,G.calcGridItemPosition)(f,0,0,i,s),D=(0,G.calcGridItemPosition)(f,0,0,u,a),S=[w.width,w.height],g=[Math.min(D.width,p),Math.min(D.height,1/0)];return Pe.default.createElement(ls.Resizable,{draggableOpts:{disabled:!n},className:n?void 0:"react-resizable-hide",width:r.width,height:r.height,minConstraints:S,maxConstraints:g,onResizeStop:this.curryResizeHandler(r,this.onResizeStop),onResizeStart:this.curryResizeHandler(r,this.onResizeStart),onResize:this.curryResizeHandler(r,this.onResize),transformScale:l,resizeHandles:c,handle:d},e)}onResizeHandler(e,r,n,o){let{node:i,size:s,handle:u}=r;const a=this.props[o];if(!a)return;const{x:l,y:c,i:d,maxH:f,minH:p,containerWidth:w}=this.props,{minW:D,maxW:S}=this.props;let g=s;i&&(g=(0,je.resizeItemInDirection)(u,n,s,w),(0,br.flushSync)(()=>{this.setState({resizing:o==="onResizeStop"?null:g})}));let{w:b,h:m}=(0,G.calcWH)(this.getPositionParams(),g.width,g.height,l,c,u);b=(0,G.clamp)(b,Math.max(D,1),S),m=(0,G.clamp)(m,p,f),a.call(this,d,b,m,{e,node:i,size:g,handle:u})}render(){const{x:e,y:r,w:n,h:o,isDraggable:i,isResizable:s,droppingPosition:u,useCSSTransforms:a}=this.props,l=(0,G.calcGridItemPosition)(this.getPositionParams(),e,r,n,o,this.state),c=Pe.default.Children.only(this.props.children);let d=Pe.default.cloneElement(c,{ref:this.elementRef,className:(0,us.default)("react-grid-item",c.props.className,this.props.className,{static:this.props.static,resizing:!!this.state.resizing,"react-draggable":i,"react-draggable-dragging":!!this.state.dragging,dropping:!!u,cssTransforms:a}),style:xt(xt(xt({},this.props.style),c.props.style),this.createStyle(l))});return d=this.mixinResizable(d,l,s),d=this.mixinDraggable(d,i),d}}it.default=Zt;ne(Zt,"propTypes",{children:z.default.element,cols:z.default.number.isRequired,containerWidth:z.default.number.isRequired,rowHeight:z.default.number.isRequired,margin:z.default.array.isRequired,maxRows:z.default.number.isRequired,containerPadding:z.default.array.isRequired,x:z.default.number.isRequired,y:z.default.number.isRequired,w:z.default.number.isRequired,h:z.default.number.isRequired,minW:function(t,e){const r=t[e];if(typeof r!="number")return new Error("minWidth not Number");if(r>t.w||r>t.maxW)return new Error("minWidth larger than item width/maxWidth")},maxW:function(t,e){const r=t[e];if(typeof r!="number")return new Error("maxWidth not Number");if(r<t.w||r<t.minW)return new Error("maxWidth smaller than item width/minWidth")},minH:function(t,e){const r=t[e];if(typeof r!="number")return new Error("minHeight not Number");if(r>t.h||r>t.maxH)return new Error("minHeight larger than item height/maxHeight")},maxH:function(t,e){const r=t[e];if(typeof r!="number")return new Error("maxHeight not Number");if(r<t.h||r<t.minH)return new Error("maxHeight smaller than item height/minHeight")},i:z.default.string.isRequired,resizeHandles:wr.resizeHandleAxesType,resizeHandle:wr.resizeHandleType,onDragStop:z.default.func,onDragStart:z.default.func,onDrag:z.default.func,onResizeStop:z.default.func,onResizeStart:z.default.func,onResize:z.default.func,isDraggable:z.default.bool.isRequired,isResizable:z.default.bool.isRequired,isBounded:z.default.bool.isRequired,static:z.default.bool,useCSSTransforms:z.default.bool.isRequired,transformScale:z.default.number,className:z.default.string,handle:z.default.string,cancel:z.default.string,droppingPosition:z.default.shape({e:z.default.object.isRequired,left:z.default.number.isRequired,top:z.default.number.isRequired})});ne(Zt,"defaultProps",{className:"",cancel:"",handle:"",minH:1,minW:1,maxH:1/0,maxW:1/0,transformScale:1});Object.defineProperty(qe,"__esModule",{value:!0});qe.default=void 0;var ye=cn(T),Ot=Ht,fs=Jt(tt),O=E,ps=ae,xr=Jt(it),hs=Jt(ce);function Jt(t){return t&&t.__esModule?t:{default:t}}function cn(t,e){if(typeof WeakMap=="function")var r=new WeakMap,n=new WeakMap;return(cn=function(o,i){if(!i&&o&&o.__esModule)return o;var s,u,a={__proto__:null,default:o};if(o===null||typeof o!="object"&&typeof o!="function")return a;if(s=i?n:r){if(s.has(o))return s.get(o);s.set(o,a)}for(const l in o)l!=="default"&&{}.hasOwnProperty.call(o,l)&&((u=(s=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,l))&&(u.get||u.set)?s(a,l,u):a[l]=o[l]);return a})(t,e)}function Or(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function ve(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?Or(Object(r),!0).forEach(function(n){F(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):Or(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function F(t,e,r){return(e=gs(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function gs(t){var e=ms(t,"string");return typeof e=="symbol"?e:e+""}function ms(t,e){if(typeof t!="object"||!t)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}const Dr="react-grid-layout";let dn=!1;try{dn=/firefox/i.test(navigator.userAgent)}catch{}class ft extends ye.Component{constructor(){super(...arguments),F(this,"state",{activeDrag:null,layout:(0,O.synchronizeLayoutWithChildren)(this.props.layout,this.props.children,this.props.cols,(0,O.compactType)(this.props),this.props.allowOverlap),mounted:!1,oldDragItem:null,oldLayout:null,oldResizeItem:null,resizing:!1,droppingDOMNode:null,children:[]}),F(this,"dragEnterCounter",0),F(this,"onDragStart",(e,r,n,o)=>{let{e:i,node:s}=o;const{layout:u}=this.state,a=(0,O.getLayoutItem)(u,e);if(!a)return;const l={w:a.w,h:a.h,x:a.x,y:a.y,placeholder:!0,i:e};return this.setState({oldDragItem:(0,O.cloneLayoutItem)(a),oldLayout:u,activeDrag:l}),this.props.onDragStart(u,a,a,null,i,s)}),F(this,"onDrag",(e,r,n,o)=>{let{e:i,node:s}=o;const{oldDragItem:u}=this.state;let{layout:a}=this.state;const{cols:l,allowOverlap:c,preventCollision:d}=this.props,f=(0,O.getLayoutItem)(a,e);if(!f)return;const p={w:f.w,h:f.h,x:f.x,y:f.y,placeholder:!0,i:e};a=(0,O.moveElement)(a,f,r,n,!0,d,(0,O.compactType)(this.props),l,c),this.props.onDrag(a,u,f,p,i,s),this.setState({layout:c?a:(0,O.compact)(a,(0,O.compactType)(this.props),l),activeDrag:p})}),F(this,"onDragStop",(e,r,n,o)=>{let{e:i,node:s}=o;if(!this.state.activeDrag)return;const{oldDragItem:u}=this.state;let{layout:a}=this.state;const{cols:l,preventCollision:c,allowOverlap:d}=this.props,f=(0,O.getLayoutItem)(a,e);if(!f)return;a=(0,O.moveElement)(a,f,r,n,!0,c,(0,O.compactType)(this.props),l,d);const w=d?a:(0,O.compact)(a,(0,O.compactType)(this.props),l);this.props.onDragStop(w,u,f,null,i,s);const{oldLayout:D}=this.state;this.setState({activeDrag:null,layout:w,oldDragItem:null,oldLayout:null}),this.onLayoutMaybeChanged(w,D)}),F(this,"onResizeStart",(e,r,n,o)=>{let{e:i,node:s}=o;const{layout:u}=this.state,a=(0,O.getLayoutItem)(u,e);a&&(this.setState({oldResizeItem:(0,O.cloneLayoutItem)(a),oldLayout:this.state.layout,resizing:!0}),this.props.onResizeStart(u,a,a,null,i,s))}),F(this,"onResize",(e,r,n,o)=>{let{e:i,node:s,size:u,handle:a}=o;const{oldResizeItem:l}=this.state,{layout:c}=this.state,{cols:d,preventCollision:f,allowOverlap:p}=this.props;let w=!1,D,S,g;const[b,m]=(0,O.withLayoutItem)(c,e,y=>{let j;return S=y.x,g=y.y,["sw","w","nw","n","ne"].indexOf(a)!==-1&&(["sw","nw","w"].indexOf(a)!==-1&&(S=y.x+(y.w-r),r=y.x!==S&&S<0?y.w:r,S=S<0?0:S),["ne","n","nw"].indexOf(a)!==-1&&(g=y.y+(y.h-n),n=y.y!==g&&g<0?y.h:n,g=g<0?0:g),w=!0),f&&!p&&(j=(0,O.getAllCollisions)(c,ve(ve({},y),{},{w:r,h:n,x:S,y:g})).filter(I=>I.i!==y.i).length>0,j&&(g=y.y,n=y.h,S=y.x,r=y.w,w=!1)),y.w=r,y.h=n,y});if(!m)return;D=b,w&&(D=(0,O.moveElement)(b,m,S,g,!0,this.props.preventCollision,(0,O.compactType)(this.props),d,p));const x={w:m.w,h:m.h,x:m.x,y:m.y,static:!0,i:e};this.props.onResize(D,l,m,x,i,s),this.setState({layout:p?D:(0,O.compact)(D,(0,O.compactType)(this.props),d),activeDrag:x})}),F(this,"onResizeStop",(e,r,n,o)=>{let{e:i,node:s}=o;const{layout:u,oldResizeItem:a}=this.state,{cols:l,allowOverlap:c}=this.props,d=(0,O.getLayoutItem)(u,e),f=c?u:(0,O.compact)(u,(0,O.compactType)(this.props),l);this.props.onResizeStop(f,a,d,null,i,s);const{oldLayout:p}=this.state;this.setState({activeDrag:null,layout:f,oldResizeItem:null,oldLayout:null,resizing:!1}),this.onLayoutMaybeChanged(f,p)}),F(this,"onDragOver",e=>{var r;if(e.preventDefault(),e.stopPropagation(),dn&&!((r=e.nativeEvent.target)!==null&&r!==void 0&&r.classList.contains(Dr)))return!1;const{droppingItem:n,onDropDragOver:o,margin:i,cols:s,rowHeight:u,maxRows:a,width:l,containerPadding:c,transformScale:d}=this.props,f=o==null?void 0:o(e);if(f===!1)return this.state.droppingDOMNode&&this.removeDroppingPlaceholder(),!1;const p=ve(ve({},n),f),{layout:w}=this.state,D=e.currentTarget.getBoundingClientRect(),S=e.clientX-D.left,g=e.clientY-D.top,b={left:S/d,top:g/d,e};if(this.state.droppingDOMNode){if(this.state.droppingPosition){const{left:m,top:x}=this.state.droppingPosition;(m!=S||x!=g)&&this.setState({droppingPosition:b})}}else{const m={cols:s,margin:i,maxRows:a,rowHeight:u,containerWidth:l,containerPadding:c||i},x=(0,ps.calcXY)(m,g,S,p.w,p.h);this.setState({droppingDOMNode:ye.createElement("div",{key:p.i}),droppingPosition:b,layout:[...w,ve(ve({},p),{},{x:x.x,y:x.y,static:!1,isDraggable:!0})]})}}),F(this,"removeDroppingPlaceholder",()=>{const{droppingItem:e,cols:r}=this.props,{layout:n}=this.state,o=(0,O.compact)(n.filter(i=>i.i!==e.i),(0,O.compactType)(this.props),r,this.props.allowOverlap);this.setState({layout:o,droppingDOMNode:null,activeDrag:null,droppingPosition:void 0})}),F(this,"onDragLeave",e=>{e.preventDefault(),e.stopPropagation(),this.dragEnterCounter--,this.dragEnterCounter===0&&this.removeDroppingPlaceholder()}),F(this,"onDragEnter",e=>{e.preventDefault(),e.stopPropagation(),this.dragEnterCounter++}),F(this,"onDrop",e=>{e.preventDefault(),e.stopPropagation();const{droppingItem:r}=this.props,{layout:n}=this.state,o=n.find(i=>i.i===r.i);this.dragEnterCounter=0,this.removeDroppingPlaceholder(),this.props.onDrop(n,o,e)})}componentDidMount(){this.setState({mounted:!0}),this.onLayoutMaybeChanged(this.state.layout,this.props.layout)}static getDerivedStateFromProps(e,r){let n;return r.activeDrag?null:(!(0,Ot.deepEqual)(e.layout,r.propsLayout)||e.compactType!==r.compactType?n=e.layout:(0,O.childrenEqual)(e.children,r.children)||(n=r.layout),n?{layout:(0,O.synchronizeLayoutWithChildren)(n,e.children,e.cols,(0,O.compactType)(e),e.allowOverlap),compactType:e.compactType,children:e.children,propsLayout:e.layout}:null)}shouldComponentUpdate(e,r){return this.props.children!==e.children||!(0,O.fastRGLPropsEqual)(this.props,e,Ot.deepEqual)||this.state.activeDrag!==r.activeDrag||this.state.mounted!==r.mounted||this.state.droppingPosition!==r.droppingPosition}componentDidUpdate(e,r){if(!this.state.activeDrag){const n=this.state.layout,o=r.layout;this.onLayoutMaybeChanged(n,o)}}containerHeight(){if(!this.props.autoSize)return;const e=(0,O.bottom)(this.state.layout),r=this.props.containerPadding?this.props.containerPadding[1]:this.props.margin[1];return e*this.props.rowHeight+(e-1)*this.props.margin[1]+r*2+"px"}onLayoutMaybeChanged(e,r){r||(r=this.state.layout),(0,Ot.deepEqual)(r,e)||this.props.onLayoutChange(e)}placeholder(){const{activeDrag:e}=this.state;if(!e)return null;const{width:r,cols:n,margin:o,containerPadding:i,rowHeight:s,maxRows:u,useCSSTransforms:a,transformScale:l}=this.props;return ye.createElement(xr.default,{w:e.w,h:e.h,x:e.x,y:e.y,i:e.i,className:"react-grid-placeholder ".concat(this.state.resizing?"placeholder-resizing":""),containerWidth:r,cols:n,margin:o,containerPadding:i||o,maxRows:u,rowHeight:s,isDraggable:!1,isResizable:!1,isBounded:!1,useCSSTransforms:a,transformScale:l},ye.createElement("div",null))}processGridItem(e,r){if(!e||!e.key)return;const n=(0,O.getLayoutItem)(this.state.layout,String(e.key));if(!n)return null;const{width:o,cols:i,margin:s,containerPadding:u,rowHeight:a,maxRows:l,isDraggable:c,isResizable:d,isBounded:f,useCSSTransforms:p,transformScale:w,draggableCancel:D,draggableHandle:S,resizeHandles:g,resizeHandle:b}=this.props,{mounted:m,droppingPosition:x}=this.state,y=typeof n.isDraggable=="boolean"?n.isDraggable:!n.static&&c,j=typeof n.isResizable=="boolean"?n.isResizable:!n.static&&d,A=n.resizeHandles||g,I=y&&f&&n.isBounded!==!1;return ye.createElement(xr.default,{containerWidth:o,cols:i,margin:s,containerPadding:u||s,maxRows:l,rowHeight:a,cancel:D,handle:S,onDragStop:this.onDragStop,onDragStart:this.onDragStart,onDrag:this.onDrag,onResizeStart:this.onResizeStart,onResize:this.onResize,onResizeStop:this.onResizeStop,isDraggable:y,isResizable:j,isBounded:I,useCSSTransforms:p&&m,usePercentages:!m,transformScale:w,w:n.w,h:n.h,x:n.x,y:n.y,i:n.i,minH:n.minH,minW:n.minW,maxH:n.maxH,maxW:n.maxW,static:n.static,droppingPosition:r?x:void 0,resizeHandles:A,resizeHandle:b},e)}render(){const{className:e,style:r,isDroppable:n,innerRef:o}=this.props,i=(0,fs.default)(Dr,e),s=ve({height:this.containerHeight()},r);return ye.createElement("div",{ref:o,className:i,style:s,onDrop:n?this.onDrop:O.noop,onDragLeave:n?this.onDragLeave:O.noop,onDragEnter:n?this.onDragEnter:O.noop,onDragOver:n?this.onDragOver:O.noop},ye.Children.map(this.props.children,u=>this.processGridItem(u)),n&&this.state.droppingDOMNode&&this.processGridItem(this.state.droppingDOMNode,!0),this.placeholder())}}qe.default=ft;F(ft,"displayName","ReactGridLayout");F(ft,"propTypes",hs.default);F(ft,"defaultProps",{autoSize:!0,cols:12,className:"",style:{},draggableHandle:"",draggableCancel:"",containerPadding:null,rowHeight:150,maxRows:1/0,layout:[],margin:[10,10],isBounded:!1,isDraggable:!0,isResizable:!0,allowOverlap:!1,isDroppable:!1,useCSSTransforms:!0,transformScale:1,verticalCompact:!0,compactType:"vertical",preventCollision:!1,droppingItem:{i:"__dropping-elem__",h:1,w:1},resizeHandles:["se"],onLayoutChange:O.noop,onDragStart:O.noop,onDrag:O.noop,onDragStop:O.noop,onResizeStart:O.noop,onResize:O.noop,onResizeStop:O.noop,onDrop:O.noop,onDropDragOver:O.noop});var pt={},_e={};Object.defineProperty(_e,"__esModule",{value:!0});_e.findOrGenerateResponsiveLayout=bs;_e.getBreakpointFromWidth=ys;_e.getColsFromBreakpoint=vs;_e.sortBreakpoints=Qt;var Ue=E;function ys(t,e){const r=Qt(t);let n=r[0];for(let o=1,i=r.length;o<i;o++){const s=r[o];e>t[s]&&(n=s)}return n}function vs(t,e){if(!e[t])throw new Error("ResponsiveReactGridLayout: `cols` entry for breakpoint "+t+" is missing!");return e[t]}function bs(t,e,r,n,o,i){if(t[r])return(0,Ue.cloneLayout)(t[r]);let s=t[n];const u=Qt(e),a=u.slice(u.indexOf(r));for(let l=0,c=a.length;l<c;l++){const d=a[l];if(t[d]){s=t[d];break}}return s=(0,Ue.cloneLayout)(s||[]),(0,Ue.compact)((0,Ue.correctBounds)(s,{cols:o}),i,o)}function Qt(t){return Object.keys(t).sort(function(r,n){return t[r]-t[n]})}Object.defineProperty(pt,"__esModule",{value:!0});pt.default=void 0;var _r=pn(T),K=fn(he),Dt=Ht,Ce=E,be=_e,ws=fn(qe);const Ss=["breakpoint","breakpoints","cols","layouts","margin","containerPadding","onBreakpointChange","onLayoutChange","onWidthChange"];function fn(t){return t&&t.__esModule?t:{default:t}}function pn(t,e){if(typeof WeakMap=="function")var r=new WeakMap,n=new WeakMap;return(pn=function(o,i){if(!i&&o&&o.__esModule)return o;var s,u,a={__proto__:null,default:o};if(o===null||typeof o!="object"&&typeof o!="function")return a;if(s=i?n:r){if(s.has(o))return s.get(o);s.set(o,a)}for(const l in o)l!=="default"&&{}.hasOwnProperty.call(o,l)&&((u=(s=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,l))&&(u.get||u.set)?s(a,l,u):a[l]=o[l]);return a})(t,e)}function Mt(){return Mt=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)({}).hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Mt.apply(null,arguments)}function xs(t,e){if(t==null)return{};var r,n,o=Os(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)r=i[n],e.indexOf(r)===-1&&{}.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}function Os(t,e){if(t==null)return{};var r={};for(var n in t)if({}.hasOwnProperty.call(t,n)){if(e.indexOf(n)!==-1)continue;r[n]=t[n]}return r}function Rr(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function _t(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?Rr(Object(r),!0).forEach(function(n){$e(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):Rr(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function $e(t,e,r){return(e=Ds(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Ds(t){var e=_s(t,"string");return typeof e=="symbol"?e:e+""}function _s(t,e){if(typeof t!="object"||!t)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}const Pr=t=>Object.prototype.toString.call(t);function Ve(t,e){return t==null?null:Array.isArray(t)?t:t[e]}class er extends _r.Component{constructor(){super(...arguments),$e(this,"state",this.generateInitialState()),$e(this,"onLayoutChange",e=>{this.props.onLayoutChange(e,_t(_t({},this.props.layouts),{},{[this.state.breakpoint]:e}))})}generateInitialState(){const{width:e,breakpoints:r,layouts:n,cols:o}=this.props,i=(0,be.getBreakpointFromWidth)(r,e),s=(0,be.getColsFromBreakpoint)(i,o),u=this.props.verticalCompact===!1?null:this.props.compactType;return{layout:(0,be.findOrGenerateResponsiveLayout)(n,r,i,i,s,u),breakpoint:i,cols:s}}static getDerivedStateFromProps(e,r){if(!(0,Dt.deepEqual)(e.layouts,r.layouts)){const{breakpoint:n,cols:o}=r;return{layout:(0,be.findOrGenerateResponsiveLayout)(e.layouts,e.breakpoints,n,n,o,e.compactType),layouts:e.layouts}}return null}componentDidUpdate(e){(this.props.width!=e.width||this.props.breakpoint!==e.breakpoint||!(0,Dt.deepEqual)(this.props.breakpoints,e.breakpoints)||!(0,Dt.deepEqual)(this.props.cols,e.cols))&&this.onWidthChange(e)}onWidthChange(e){const{breakpoints:r,cols:n,layouts:o,compactType:i}=this.props,s=this.props.breakpoint||(0,be.getBreakpointFromWidth)(this.props.breakpoints,this.props.width),u=this.state.breakpoint,a=(0,be.getColsFromBreakpoint)(s,n),l=_t({},o);if(u!==s||e.breakpoints!==r||e.cols!==n){u in l||(l[u]=(0,Ce.cloneLayout)(this.state.layout));let f=(0,be.findOrGenerateResponsiveLayout)(l,r,s,u,a,i);f=(0,Ce.synchronizeLayoutWithChildren)(f,this.props.children,a,i,this.props.allowOverlap),l[s]=f,this.props.onBreakpointChange(s,a),this.props.onLayoutChange(f,l),this.setState({breakpoint:s,layout:f,cols:a})}const c=Ve(this.props.margin,s),d=Ve(this.props.containerPadding,s);this.props.onWidthChange(this.props.width,c,a,d)}render(){const e=this.props,{breakpoint:r,breakpoints:n,cols:o,layouts:i,margin:s,containerPadding:u,onBreakpointChange:a,onLayoutChange:l,onWidthChange:c}=e,d=xs(e,Ss);return _r.createElement(ws.default,Mt({},d,{margin:Ve(s,this.state.breakpoint),containerPadding:Ve(u,this.state.breakpoint),onLayoutChange:this.onLayoutChange,layout:this.state.layout,cols:this.state.cols}))}}pt.default=er;$e(er,"propTypes",{breakpoint:K.default.string,breakpoints:K.default.object,allowOverlap:K.default.bool,cols:K.default.object,margin:K.default.oneOfType([K.default.array,K.default.object]),containerPadding:K.default.oneOfType([K.default.array,K.default.object]),layouts(t,e){if(Pr(t[e])!=="[object Object]")throw new Error("Layout property must be an object. Received: "+Pr(t[e]));Object.keys(t[e]).forEach(r=>{if(!(r in t.breakpoints))throw new Error("Each key in layouts must align with a key in breakpoints.");(0,Ce.validateLayout)(t.layouts[r],"layouts."+r)})},width:K.default.number.isRequired,onBreakpointChange:K.default.func,onLayoutChange:K.default.func,onWidthChange:K.default.func});$e(er,"defaultProps",{breakpoints:{lg:1200,md:996,sm:768,xs:480,xxs:0},cols:{lg:12,md:10,sm:6,xs:4,xxs:2},containerPadding:{lg:null,md:null,sm:null,xs:null,xxs:null},layouts:{},margin:[10,10],allowOverlap:!1,onBreakpointChange:Ce.noop,onLayoutChange:Ce.noop,onWidthChange:Ce.noop});var tr={},hn=function(){if(typeof Map<"u")return Map;function t(e,r){var n=-1;return e.some(function(o,i){return o[0]===r?(n=i,!0):!1}),n}return function(){function e(){this.__entries__=[]}return Object.defineProperty(e.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),e.prototype.get=function(r){var n=t(this.__entries__,r),o=this.__entries__[n];return o&&o[1]},e.prototype.set=function(r,n){var o=t(this.__entries__,r);~o?this.__entries__[o][1]=n:this.__entries__.push([r,n])},e.prototype.delete=function(r){var n=this.__entries__,o=t(n,r);~o&&n.splice(o,1)},e.prototype.has=function(r){return!!~t(this.__entries__,r)},e.prototype.clear=function(){this.__entries__.splice(0)},e.prototype.forEach=function(r,n){n===void 0&&(n=null);for(var o=0,i=this.__entries__;o<i.length;o++){var s=i[o];r.call(n,s[1],s[0])}},e}()}(),Tt=typeof window<"u"&&typeof document<"u"&&window.document===document,Qe=function(){return typeof global<"u"&&global.Math===Math?global:typeof self<"u"&&self.Math===Math?self:typeof window<"u"&&window.Math===Math?window:Function("return this")()}(),Rs=function(){return typeof requestAnimationFrame=="function"?requestAnimationFrame.bind(Qe):function(t){return setTimeout(function(){return t(Date.now())},1e3/60)}}(),Ps=2;function js(t,e){var r=!1,n=!1,o=0;function i(){r&&(r=!1,t()),n&&u()}function s(){Rs(i)}function u(){var a=Date.now();if(r){if(a-o<Ps)return;n=!0}else r=!0,n=!1,setTimeout(s,e);o=a}return u}var Es=20,zs=["top","right","bottom","left","width","height","size","weight"],Cs=typeof MutationObserver<"u",Ms=function(){function t(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=js(this.refresh.bind(this),Es)}return t.prototype.addObserver=function(e){~this.observers_.indexOf(e)||this.observers_.push(e),this.connected_||this.connect_()},t.prototype.removeObserver=function(e){var r=this.observers_,n=r.indexOf(e);~n&&r.splice(n,1),!r.length&&this.connected_&&this.disconnect_()},t.prototype.refresh=function(){var e=this.updateObservers_();e&&this.refresh()},t.prototype.updateObservers_=function(){var e=this.observers_.filter(function(r){return r.gatherActive(),r.hasActive()});return e.forEach(function(r){return r.broadcastActive()}),e.length>0},t.prototype.connect_=function(){!Tt||this.connected_||(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),Cs?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},t.prototype.disconnect_=function(){!Tt||!this.connected_||(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},t.prototype.onTransitionEnd_=function(e){var r=e.propertyName,n=r===void 0?"":r,o=zs.some(function(i){return!!~n.indexOf(i)});o&&this.refresh()},t.getInstance=function(){return this.instance_||(this.instance_=new t),this.instance_},t.instance_=null,t}(),gn=function(t,e){for(var r=0,n=Object.keys(e);r<n.length;r++){var o=n[r];Object.defineProperty(t,o,{value:e[o],enumerable:!1,writable:!1,configurable:!0})}return t},Me=function(t){var e=t&&t.ownerDocument&&t.ownerDocument.defaultView;return e||Qe},mn=ht(0,0,0,0);function et(t){return parseFloat(t)||0}function jr(t){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];return e.reduce(function(n,o){var i=t["border-"+o+"-width"];return n+et(i)},0)}function Ts(t){for(var e=["top","right","bottom","left"],r={},n=0,o=e;n<o.length;n++){var i=o[n],s=t["padding-"+i];r[i]=et(s)}return r}function Ls(t){var e=t.getBBox();return ht(0,0,e.width,e.height)}function ks(t){var e=t.clientWidth,r=t.clientHeight;if(!e&&!r)return mn;var n=Me(t).getComputedStyle(t),o=Ts(n),i=o.left+o.right,s=o.top+o.bottom,u=et(n.width),a=et(n.height);if(n.boxSizing==="border-box"&&(Math.round(u+i)!==e&&(u-=jr(n,"left","right")+i),Math.round(a+s)!==r&&(a-=jr(n,"top","bottom")+s)),!Ws(t)){var l=Math.round(u+i)-e,c=Math.round(a+s)-r;Math.abs(l)!==1&&(u-=l),Math.abs(c)!==1&&(a-=c)}return ht(o.left,o.top,u,a)}var Hs=function(){return typeof SVGGraphicsElement<"u"?function(t){return t instanceof Me(t).SVGGraphicsElement}:function(t){return t instanceof Me(t).SVGElement&&typeof t.getBBox=="function"}}();function Ws(t){return t===Me(t).document.documentElement}function Ns(t){return Tt?Hs(t)?Ls(t):ks(t):mn}function $s(t){var e=t.x,r=t.y,n=t.width,o=t.height,i=typeof DOMRectReadOnly<"u"?DOMRectReadOnly:Object,s=Object.create(i.prototype);return gn(s,{x:e,y:r,width:n,height:o,top:r,right:e+n,bottom:o+r,left:e}),s}function ht(t,e,r,n){return{x:t,y:e,width:r,height:n}}var qs=function(){function t(e){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=ht(0,0,0,0),this.target=e}return t.prototype.isActive=function(){var e=Ns(this.target);return this.contentRect_=e,e.width!==this.broadcastWidth||e.height!==this.broadcastHeight},t.prototype.broadcastRect=function(){var e=this.contentRect_;return this.broadcastWidth=e.width,this.broadcastHeight=e.height,e},t}(),As=function(){function t(e,r){var n=$s(r);gn(this,{target:e,contentRect:n})}return t}(),Is=function(){function t(e,r,n){if(this.activeObservations_=[],this.observations_=new hn,typeof e!="function")throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=e,this.controller_=r,this.callbackCtx_=n}return t.prototype.observe=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if(!(typeof Element>"u"||!(Element instanceof Object))){if(!(e instanceof Me(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var r=this.observations_;r.has(e)||(r.set(e,new qs(e)),this.controller_.addObserver(this),this.controller_.refresh())}},t.prototype.unobserve=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if(!(typeof Element>"u"||!(Element instanceof Object))){if(!(e instanceof Me(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var r=this.observations_;r.has(e)&&(r.delete(e),r.size||this.controller_.removeObserver(this))}},t.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},t.prototype.gatherActive=function(){var e=this;this.clearActive(),this.observations_.forEach(function(r){r.isActive()&&e.activeObservations_.push(r)})},t.prototype.broadcastActive=function(){if(this.hasActive()){var e=this.callbackCtx_,r=this.activeObservations_.map(function(n){return new As(n.target,n.broadcastRect())});this.callback_.call(e,r,e),this.clearActive()}},t.prototype.clearActive=function(){this.activeObservations_.splice(0)},t.prototype.hasActive=function(){return this.activeObservations_.length>0},t}(),yn=typeof WeakMap<"u"?new WeakMap:new hn,vn=function(){function t(e){if(!(this instanceof t))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var r=Ms.getInstance(),n=new Is(e,r,this);yn.set(this,n)}return t}();["observe","unobserve","disconnect"].forEach(function(t){vn.prototype[t]=function(){var e;return(e=yn.get(this))[t].apply(e,arguments)}});var Bs=function(){return typeof Qe.ResizeObserver<"u"?Qe.ResizeObserver:vn}();const Gs=Object.freeze(Object.defineProperty({__proto__:null,default:Bs},Symbol.toStringTag,{value:"Module"})),Fs=kr(Gs);Object.defineProperty(tr,"__esModule",{value:!0});tr.default=ta;var Ke=bn(T),Ys=rr(he),Xs=rr(Fs),Us=rr(tt);const Vs=["measureBeforeMount"];function rr(t){return t&&t.__esModule?t:{default:t}}function bn(t,e){if(typeof WeakMap=="function")var r=new WeakMap,n=new WeakMap;return(bn=function(o,i){if(!i&&o&&o.__esModule)return o;var s,u,a={__proto__:null,default:o};if(o===null||typeof o!="object"&&typeof o!="function")return a;if(s=i?n:r){if(s.has(o))return s.get(o);s.set(o,a)}for(const l in o)l!=="default"&&{}.hasOwnProperty.call(o,l)&&((u=(s=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,l))&&(u.get||u.set)?s(a,l,u):a[l]=o[l]);return a})(t,e)}function Lt(){return Lt=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)({}).hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Lt.apply(null,arguments)}function Ks(t,e){if(t==null)return{};var r,n,o=Zs(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)r=i[n],e.indexOf(r)===-1&&{}.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}function Zs(t,e){if(t==null)return{};var r={};for(var n in t)if({}.hasOwnProperty.call(t,n)){if(e.indexOf(n)!==-1)continue;r[n]=t[n]}return r}function Ee(t,e,r){return(e=Js(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Js(t){var e=Qs(t,"string");return typeof e=="symbol"?e:e+""}function Qs(t,e){if(typeof t!="object"||!t)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}const ea="react-grid-layout";function ta(t){var e;return e=class extends Ke.Component{constructor(){super(...arguments),Ee(this,"state",{width:1280}),Ee(this,"elementRef",Ke.createRef()),Ee(this,"mounted",!1),Ee(this,"resizeObserver",void 0)}componentDidMount(){this.mounted=!0,this.resizeObserver=new Xs.default(o=>{if(this.elementRef.current instanceof HTMLElement){const s=o[0].contentRect.width;this.setState({width:s})}});const n=this.elementRef.current;n instanceof HTMLElement&&this.resizeObserver.observe(n)}componentWillUnmount(){this.mounted=!1;const n=this.elementRef.current;n instanceof HTMLElement&&this.resizeObserver.unobserve(n),this.resizeObserver.disconnect()}render(){const n=this.props,{measureBeforeMount:o}=n,i=Ks(n,Vs);return o&&!this.mounted?Ke.createElement("div",{className:(0,Us.default)(this.props.className,ea),style:this.props.style,ref:this.elementRef}):Ke.createElement(t,Lt({innerRef:this.elementRef},i,this.state))}},Ee(e,"defaultProps",{measureBeforeMount:!1}),Ee(e,"propTypes",{measureBeforeMount:Ys.default.bool}),e}(function(t){t.exports=qe.default,t.exports.utils=E,t.exports.calculateUtils=ae,t.exports.Responsive=pt.default,t.exports.Responsive.utils=_e,t.exports.WidthProvider=tr.default})(Hr);var wn=Hr.exports;const ra=Kn(wn),na=wn.WidthProvider(ra),oa=H("div")(({theme:t})=>({"& .react-grid-item":{borderRadius:`${t.shape.borderRadiusMedium}px`},"& .grid-item-drag-handle":{[t.breakpoints.down("md")]:{display:"none"}}})),ia=H("div")(({theme:t})=>({border:`1px solid ${t.palette.divider}`})),fa=({items:t,onLayoutChange:e,cols:r={lg:12,md:12,sm:6,xs:4,xxs:2},rowHeight:n=180})=>{const o=Mr(),i=Tr(o.breakpoints.down("md")),s=T.useMemo(()=>{if(i){let l=0;return t.map(c=>{const d={i:c.id,x:0,y:l,w:r.xs,h:c.h??4,minW:r.xs,minH:c.minH??3,maxW:r.xs,maxH:c.maxH??8,static:!1};return l+=d.h,d})}return t.map((l,c)=>({i:l.id,x:l.x??c%Math.floor(r.lg/(l.w??4))*(l.w??4),y:l.y??Math.floor(c/Math.floor(r.lg/(l.w??4)))*(l.h??4),w:l.w??4,h:l.h??4,minW:l.minW??4,minH:l.minH??3,maxW:l.maxW??12,maxH:l.maxH??8,static:l.static??!1}))},[t,r,i]),u=T.useMemo(()=>t.map(l=>h.jsx(ia,{children:l.component},l.id)),[t]),a=T.useCallback(l=>{i||e==null||e(l)},[e,i]);return h.jsx(oa,{children:h.jsx(na,{className:"impact-metrics-grid",layout:s,cols:i?r.xs:r.lg,rowHeight:n,margin:[Number.parseInt(o.spacing(2),10),Number.parseInt(o.spacing(2),10)],containerPadding:[0,0],isDraggable:!1,isResizable:!1,onLayoutChange:a,resizeHandles:["se"],draggableHandle:".grid-item-drag-handle",compactType:i?null:"vertical",preventCollision:!1,useCSSTransforms:!0,autoSize:!0,allowOverlap:!1,children:u})})};export{ua as C,fa as G,la as a,aa as b,eo as u};
|