unleash-server 7.1.2 → 7.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/lib/db/feature-environment-store.d.ts.map +1 -1
- package/dist/lib/db/feature-environment-store.js +59 -4
- package/dist/lib/db/feature-environment-store.js.map +1 -1
- package/dist/lib/db/index.js +1 -1
- package/dist/lib/db/index.js.map +1 -1
- package/dist/lib/features/client-feature-toggles/client-feature-toggle.controller.d.ts.map +1 -1
- package/dist/lib/features/client-feature-toggles/client-feature-toggle.controller.js +1 -2
- package/dist/lib/features/client-feature-toggles/client-feature-toggle.controller.js.map +1 -1
- package/dist/lib/features/feature-lifecycle/createFeatureLifecycle.js +1 -1
- package/dist/lib/features/feature-lifecycle/createFeatureLifecycle.js.map +1 -1
- package/dist/lib/features/feature-lifecycle/fake-feature-lifecycle-store.d.ts +0 -1
- package/dist/lib/features/feature-lifecycle/fake-feature-lifecycle-store.d.ts.map +1 -1
- package/dist/lib/features/feature-lifecycle/fake-feature-lifecycle-store.js +0 -1
- package/dist/lib/features/feature-lifecycle/fake-feature-lifecycle-store.js.map +1 -1
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-service.d.ts +12 -0
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-service.d.ts.map +1 -1
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-service.js +86 -5
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-service.js.map +1 -1
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-store-type.d.ts +0 -1
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-store-type.d.ts.map +1 -1
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-store.d.ts +3 -2
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-store.d.ts.map +1 -1
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-store.js +22 -18
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-store.js.map +1 -1
- package/dist/lib/features/feature-lifecycle/feature-lifecycle.e2e.test.js +0 -41
- package/dist/lib/features/feature-lifecycle/feature-lifecycle.e2e.test.js.map +1 -1
- package/dist/lib/features/instance-stats/createInstanceStatsService.d.ts.map +1 -1
- package/dist/lib/features/instance-stats/createInstanceStatsService.js +14 -0
- package/dist/lib/features/instance-stats/createInstanceStatsService.js.map +1 -1
- package/dist/lib/features/instance-stats/instance-stats-service.d.ts +7 -1
- package/dist/lib/features/instance-stats/instance-stats-service.d.ts.map +1 -1
- package/dist/lib/features/instance-stats/instance-stats-service.js +25 -3
- package/dist/lib/features/instance-stats/instance-stats-service.js.map +1 -1
- package/dist/lib/features/metrics/client-metrics/metrics-service-v2.d.ts.map +1 -1
- package/dist/lib/features/metrics/client-metrics/metrics-service-v2.js +6 -8
- package/dist/lib/features/metrics/client-metrics/metrics-service-v2.js.map +1 -1
- package/dist/lib/features/metrics/unknown-flags/fake-unknown-flags-store.d.ts +3 -2
- package/dist/lib/features/metrics/unknown-flags/fake-unknown-flags-store.d.ts.map +1 -1
- package/dist/lib/features/metrics/unknown-flags/fake-unknown-flags-store.js +33 -2
- package/dist/lib/features/metrics/unknown-flags/fake-unknown-flags-store.js.map +1 -1
- package/dist/lib/features/metrics/unknown-flags/unknown-flags-controller.d.ts +0 -1
- package/dist/lib/features/metrics/unknown-flags/unknown-flags-controller.d.ts.map +1 -1
- package/dist/lib/features/metrics/unknown-flags/unknown-flags-controller.js +2 -7
- package/dist/lib/features/metrics/unknown-flags/unknown-flags-controller.js.map +1 -1
- package/dist/lib/features/metrics/unknown-flags/unknown-flags-service.d.ts +2 -3
- package/dist/lib/features/metrics/unknown-flags/unknown-flags-service.d.ts.map +1 -1
- package/dist/lib/features/metrics/unknown-flags/unknown-flags-service.js +0 -9
- package/dist/lib/features/metrics/unknown-flags/unknown-flags-service.js.map +1 -1
- package/dist/lib/features/metrics/unknown-flags/unknown-flags-store.d.ts +23 -6
- package/dist/lib/features/metrics/unknown-flags/unknown-flags-store.d.ts.map +1 -1
- package/dist/lib/features/metrics/unknown-flags/unknown-flags-store.js +53 -22
- package/dist/lib/features/metrics/unknown-flags/unknown-flags-store.js.map +1 -1
- package/dist/lib/features/metrics/unknown-flags/unknown-flags.e2e.test.js +178 -13
- package/dist/lib/features/metrics/unknown-flags/unknown-flags.e2e.test.js.map +1 -1
- package/dist/lib/metrics.d.ts.map +1 -1
- package/dist/lib/metrics.js +8 -1
- package/dist/lib/metrics.js.map +1 -1
- package/dist/lib/metrics.test.js +1 -1
- package/dist/lib/metrics.test.js.map +1 -1
- package/dist/lib/openapi/spec/instance-admin-stats-schema.d.ts +12 -0
- package/dist/lib/openapi/spec/instance-admin-stats-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/instance-admin-stats-schema.js +12 -0
- package/dist/lib/openapi/spec/instance-admin-stats-schema.js.map +1 -1
- package/dist/lib/openapi/spec/unknown-flag-schema.d.ts +41 -13
- package/dist/lib/openapi/spec/unknown-flag-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/unknown-flag-schema.js +41 -13
- package/dist/lib/openapi/spec/unknown-flag-schema.js.map +1 -1
- package/dist/lib/openapi/spec/unknown-flags-response-schema.d.ts +41 -13
- package/dist/lib/openapi/spec/unknown-flags-response-schema.d.ts.map +1 -1
- package/dist/lib/openapi/util/openapi-tags.d.ts +12 -0
- package/dist/lib/openapi/util/openapi-tags.d.ts.map +1 -1
- package/dist/lib/openapi/util/openapi-tags.js +8 -0
- package/dist/lib/openapi/util/openapi-tags.js.map +1 -1
- package/dist/lib/routes/admin-api/instance-admin.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/instance-admin.js +2 -0
- package/dist/lib/routes/admin-api/instance-admin.js.map +1 -1
- package/dist/lib/services/version-service.d.ts +2 -0
- package/dist/lib/services/version-service.d.ts.map +1 -1
- package/dist/lib/services/version-service.js.map +1 -1
- package/dist/lib/services/version-service.test.js +2 -0
- package/dist/lib/services/version-service.test.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 +5 -6
- package/dist/lib/types/experimental.js.map +1 -1
- package/dist/lib/util/flag-resolver.js +1 -1
- package/dist/lib/util/flag-resolver.js.map +1 -1
- package/dist/migrations/20250827135502-add-impact-metrics.d.ts +3 -0
- package/dist/migrations/20250827135502-add-impact-metrics.d.ts.map +1 -0
- package/dist/migrations/20250827135502-add-impact-metrics.js +17 -0
- package/dist/migrations/20250827135502-add-impact-metrics.js.map +1 -0
- package/dist/server-dev.js +0 -1
- package/dist/server-dev.js.map +1 -1
- package/dist/test/e2e/api/client/feature.optimal304.e2e.test.js +5 -55
- package/dist/test/e2e/api/client/feature.optimal304.e2e.test.js.map +1 -1
- package/dist/test/fixtures/store.d.ts.map +1 -1
- package/dist/test/fixtures/store.js +9 -3
- package/dist/test/fixtures/store.js.map +1 -1
- package/frontend/build/index.html +1 -1
- package/frontend/build/static/{AdvancedPlayground-B0LcQjSq.js → AdvancedPlayground-CUkOz1YF.js} +1 -1
- package/frontend/build/static/BackendConnections-Bi1Fsohi.js +1 -0
- package/frontend/build/static/ChartItem-Ci-KFL7s.js +1 -0
- package/frontend/build/static/{CreateProject-DZvVBgoz.js → CreateProject-COHPsP3X.js} +1 -1
- package/frontend/build/static/FeatureMetricsChart-ClbKeGOa.js +2 -0
- package/frontend/build/static/{FeatureStaleDialog-DVfc6Zev.js → FeatureStaleDialog-DZvKjxPB.js} +1 -1
- package/frontend/build/static/FeatureViewLazyExport-yCIrczZt.js +10 -0
- package/frontend/build/static/{FlagMetricsChart-KwZ-mKU9.js → FlagMetricsChart-D0GI-ltv.js} +1 -1
- package/frontend/build/static/FrontendNetworkTrafficUsage-DlRkx8CV.js +1 -0
- package/frontend/build/static/ImpactMetricsPage-BYcbHNWC.js +3 -0
- package/frontend/build/static/{LazyAdminExport-wSkT6Q_Q.js → LazyAdminExport-BjSYZTvt.js} +13 -13
- package/frontend/build/static/{LazyProjectExport-C_vNLeeV.js → LazyProjectExport-9mNkV9Jq.js} +35 -35
- package/frontend/build/static/{LifecycleChartComponent-UVUnlH1F.js → LifecycleChartComponent-BigwXcU3.js} +1 -1
- package/frontend/build/static/LineChartComponent-CPcDsiNa.js +1 -0
- package/frontend/build/static/{MarkCompletedDialogue-B_AGQYev.js → MarkCompletedDialogue-CS-kM4vW.js} +1 -1
- package/frontend/build/static/{NetworkConnectedEdges-CMsd-TLX.js → NetworkConnectedEdges-C2nfTRKM.js} +1 -1
- package/frontend/build/static/{NetworkOverview-DzENszED.js → NetworkOverview-BKozpi8w.js} +1 -1
- package/frontend/build/static/{NetworkPrometheusAPIWarning-CJgVOfZ7.js → NetworkPrometheusAPIWarning-wqCXwcem.js} +1 -1
- package/frontend/build/static/{NetworkTraffic-CT2bUjpm.js → NetworkTraffic-Co7oakIE.js} +1 -1
- package/frontend/build/static/NetworkTrafficUsage-DNDJZGXi.js +1 -0
- package/frontend/build/static/{ReactJSONEditor-D3PnsuLS.js → ReactJSONEditor-BDMT4-_1.js} +1 -1
- package/frontend/build/static/{RoleCell-Rw6ESv3h.js → RoleCell-COtuTPWk.js} +1 -1
- package/frontend/build/static/{aggregateFeatureMetrics-CnyHYbJe.js → aggregateFeatureMetrics-ClblY5Ev.js} +1 -1
- package/frontend/build/static/{formatTickValue-BWf1DDmZ.js → formatTickValue-DojfJagm.js} +2 -2
- package/frontend/build/static/{index-B913vdKQ.js → index-CqYZiU1N.js} +123 -119
- package/frontend/build/static/networkTrafficUsageHighlightPlugin-BMMmh5e_.js +1 -0
- package/frontend/build/static/{useApiTokens-B4D233gG.js → useApiTokens-B6vbGXUF.js} +1 -1
- package/package.json +2 -2
- package/frontend/build/static/BackendConnections-BoB5aVu0.js +0 -1
- package/frontend/build/static/ChartConfigModal-UXmDDHMG.js +0 -1
- package/frontend/build/static/FeatureMetricsChart-CJrYipPB.js +0 -2
- package/frontend/build/static/FeatureViewLazyExport-QxXBDMPE.js +0 -10
- package/frontend/build/static/FrontendNetworkTrafficUsage-cNhACiBn.js +0 -1
- package/frontend/build/static/ImpactMetricsPage-z-qzeiDA.js +0 -3
- package/frontend/build/static/LineChartComponent-AVQQxQpp.js +0 -1
- package/frontend/build/static/NetworkTrafficUsage-BnYZbvlJ.js +0 -1
- package/frontend/build/static/useChartDataSelection-BEqlLU2R.js +0 -1
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{G as mn,H as yn,j as C,s as re,aE as wr,B as Ce,T as We,D as rr,b1 as vn,b3 as bn,iR as wn,iS as Sr,iT as Sn,r as L,iU as pe,iV as Ct,g as xn,b as Rn,al as Dn,fm as _n,fn as On,b9 as nr,u as Pn,e as En,h as ct,aD as Cn,i as or,bh as ir}from"./index-B913vdKQ.js";import{I as zn,u as Mn,C as jn}from"./ChartConfigModal-UXmDDHMG.js";var zt={},Tn=yn;Object.defineProperty(zt,"__esModule",{value:!0});var xr=zt.default=void 0,Hn=Tn(mn()),$n=C,Ln=(0,Hn.default)((0,$n.jsx)("path",{d:"M20 9H4v2h16V9zM4 15h16v-2H4v2z"}),"DragHandle");xr=zt.default=Ln;const Wn=e=>{const t=[];e.displayName&&t.push(`${e.displayName}`),t.push(`last ${e.selectedRange}`),e.aggregationMode==="rps"?t.push("rate per second"):e.aggregationMode==="count"?t.push("count"):e.aggregationMode==="avg"?t.push("average"):e.aggregationMode==="sum"&&t.push("sum");const r=Object.keys(e.selectedLabels).length;return r>0&&t.push(`${r} filter${r>1?"s":""}`),t.join(" • ")},Nn=re(wr)(({theme:e})=>({borderRadius:`${e.shape.borderRadiusMedium}px`,boxShadow:"none",display:"flex",flexDirection:"column",height:"100%"})),qn=re(Ce)({flex:1,display:"flex",flexDirection:"column",minHeight:0}),kn=re(Ce)(({theme:e})=>({position:"relative",minWidth:0,flexGrow:1,height:"100%",display:"flex",flexDirection:"column",margin:"auto 0",padding:e.spacing(3)})),In=re(Ce)(({theme:e})=>({display:"flex",gap:e.spacing(2),alignItems:"center",padding:e.spacing(1.5,2),borderBottom:`1px solid ${e.palette.divider}`})),An=re(Ce)(({theme:e})=>({display:"flex",alignItems:"center",cursor:"move",padding:e.spacing(.5),borderRadius:e.shape.borderRadius,color:e.palette.text.secondary,"&:hover":{backgroundColor:e.palette.action.hover,color:e.palette.text.primary}})),Bn=re(Ce)(({theme:e})=>({display:"flex",flexDirection:"column",justifyContent:"flex-end",flexGrow:1,overflow:"hidden",textOverflow:"ellipsis"})),Gn=re(Ce)(({theme:e})=>({marginLeft:"auto",display:"flex",alignItems:"center",gap:e.spacing(.5)})),Yn=({config:e,onEdit:t,onDelete:r})=>C.jsxs(Nn,{children:[C.jsxs(In,{children:[C.jsx(An,{className:"grid-item-drag-handle",children:C.jsx(xr,{fontSize:"small"})}),C.jsxs(Bn,{children:[e.title&&C.jsx(We,{variant:"h6",children:e.title}),C.jsx(We,{variant:"body2",color:"text.secondary",children:Wn(e)})]}),C.jsxs(Gn,{children:[C.jsx(rr,{onClick:()=>t(e),children:C.jsx(vn,{})}),C.jsx(rr,{onClick:()=>r(e.id),children:C.jsx(bn,{})})]})]}),C.jsx(qn,{children:C.jsx(kn,{children:C.jsx(zn,{selectedSeries:e.selectedSeries,selectedRange:e.selectedRange,selectedLabels:e.selectedLabels,beginAtZero:e.beginAtZero,aggregationMode:e.aggregationMode,aspectRatio:1.5,overrideOptions:{maintainAspectRatio:!1},emptyDataDescription:"Send impact metrics using Unleash SDK for this series to view the chart."})})})]});var Rr={exports:{}},Ne={},vt={exports:{}};(function(e,t){(function(r,n){n(t)})(wn,function(r){function n(m){return function(H,M,j,I,Y,ee,A){return m(H,M,A)}}function o(m){return function(H,M,j,I){if(!H||!M||typeof H!="object"||typeof M!="object")return m(H,M,j,I);var Y=I.get(H),ee=I.get(M);if(Y&&ee)return Y===M&&ee===H;I.set(H,M),I.set(M,H);var A=m(H,M,j,I);return I.delete(H),I.delete(M),A}}function i(m,D){var H={};for(var M in m)H[M]=m[M];for(var M in D)H[M]=D[M];return H}function a(m){return m.constructor===Object||m.constructor==null}function l(m){return typeof m.then=="function"}function s(m,D){return m===D||m!==m&&D!==D}var u="[object Arguments]",c="[object Boolean]",d="[object Date]",f="[object RegExp]",g="[object Map]",w="[object Number]",S="[object Object]",R="[object Set]",p="[object String]",v=Object.prototype.toString;function y(m){var D=m.areArraysEqual,H=m.areDatesEqual,M=m.areMapsEqual,j=m.areObjectsEqual,I=m.areRegExpsEqual,Y=m.areSetsEqual,ee=m.createIsNestedEqual,A=ee(ne);function ne(N,B,oe){if(N===B)return!0;if(!N||!B||typeof N!="object"||typeof B!="object")return N!==N&&B!==B;if(a(N)&&a(B))return j(N,B,A,oe);var er=Array.isArray(N),tr=Array.isArray(B);if(er||tr)return er===tr&&D(N,B,A,oe);var ie=v.call(N);return ie!==v.call(B)?!1:ie===d?H(N,B,A,oe):ie===f?I(N,B,A,oe):ie===g?M(N,B,A,oe):ie===R?Y(N,B,A,oe):ie===S||ie===u?l(N)||l(B)?!1:j(N,B,A,oe):ie===c||ie===w||ie===p?s(N.valueOf(),B.valueOf()):!1}return ne}function b(m,D,H,M){var j=m.length;if(D.length!==j)return!1;for(;j-- >0;)if(!H(m[j],D[j],j,j,m,D,M))return!1;return!0}var h=o(b);function P(m,D){return s(m.valueOf(),D.valueOf())}function $(m,D,H,M){var j=m.size===D.size;if(!j)return!1;if(!m.size)return!0;var I={},Y=0;return m.forEach(function(ee,A){if(j){var ne=!1,N=0;D.forEach(function(B,oe){!ne&&!I[N]&&(ne=H(A,oe,Y,N,m,D,M)&&H(ee,B,A,oe,m,D,M))&&(I[N]=!0),N++}),Y++,j=ne}}),j}var W=o($),T="_owner",q=Object.prototype.hasOwnProperty;function G(m,D,H,M){var j=Object.keys(m),I=j.length;if(Object.keys(D).length!==I)return!1;for(var Y;I-- >0;){if(Y=j[I],Y===T){var ee=!!m.$$typeof,A=!!D.$$typeof;if((ee||A)&&ee!==A)return!1}if(!q.call(D,Y)||!H(m[Y],D[Y],Y,Y,m,D,M))return!1}return!0}var ze=o(G);function Me(m,D){return m.source===D.source&&m.flags===D.flags}function je(m,D,H,M){var j=m.size===D.size;if(!j)return!1;if(!m.size)return!0;var I={};return m.forEach(function(Y,ee){if(j){var A=!1,ne=0;D.forEach(function(N,B){!A&&!I[ne]&&(A=H(Y,N,ee,B,m,D,M))&&(I[ne]=!0),ne++}),j=A}}),j}var Qt=o(je),he=Object.freeze({areArraysEqual:b,areDatesEqual:P,areMapsEqual:$,areObjectsEqual:G,areRegExpsEqual:Me,areSetsEqual:je,createIsNestedEqual:n}),ge=Object.freeze({areArraysEqual:h,areDatesEqual:P,areMapsEqual:W,areObjectsEqual:ze,areRegExpsEqual:Me,areSetsEqual:Qt,createIsNestedEqual:n}),Ie=y(he);function ut(m,D){return Ie(m,D,void 0)}var ln=y(i(he,{createIsNestedEqual:function(){return s}}));function un(m,D){return ln(m,D,void 0)}var cn=y(ge);function dn(m,D){return cn(m,D,new WeakMap)}var fn=y(i(ge,{createIsNestedEqual:function(){return s}}));function pn(m,D){return fn(m,D,new WeakMap)}function hn(m){return y(i(he,m(he)))}function gn(m){var D=y(i(ge,m(ge)));return function(H,M,j){return j===void 0&&(j=new WeakMap),D(H,M,j)}}r.circularDeepEqual=dn,r.circularShallowEqual=pn,r.createCustomCircularEqual=gn,r.createCustomEqual=hn,r.deepEqual=ut,r.sameValueZeroEqual=s,r.shallowEqual=un,Object.defineProperty(r,"__esModule",{value:!0})})})(vt,vt.exports);var Mt=vt.exports;const Ke=Sr(Sn);var E={},Xn=function(t,r,n){return t===r?!0:t.className===r.className&&n(t.style,r.style)&&t.width===r.width&&t.autoSize===r.autoSize&&t.cols===r.cols&&t.draggableCancel===r.draggableCancel&&t.draggableHandle===r.draggableHandle&&n(t.verticalCompact,r.verticalCompact)&&n(t.compactType,r.compactType)&&n(t.layout,r.layout)&&n(t.margin,r.margin)&&n(t.containerPadding,r.containerPadding)&&t.rowHeight===r.rowHeight&&t.maxRows===r.maxRows&&t.isBounded===r.isBounded&&t.isDraggable===r.isDraggable&&t.isResizable===r.isResizable&&t.allowOverlap===r.allowOverlap&&t.preventCollision===r.preventCollision&&t.useCSSTransforms===r.useCSSTransforms&&t.transformScale===r.transformScale&&t.isDroppable===r.isDroppable&&n(t.resizeHandles,r.resizeHandles)&&n(t.resizeHandle,r.resizeHandle)&&t.onLayoutChange===r.onLayoutChange&&t.onDragStart===r.onDragStart&&t.onDrag===r.onDrag&&t.onDragStop===r.onDragStop&&t.onResizeStart===r.onResizeStart&&t.onResize===r.onResize&&t.onResizeStop===r.onResizeStop&&t.onDrop===r.onDrop&&n(t.droppingItem,r.droppingItem)&&n(t.innerRef,r.innerRef)};Object.defineProperty(E,"__esModule",{value:!0});E.bottom=jt;E.childrenEqual=Vn;E.cloneLayout=Dr;E.cloneLayoutItem=we;E.collides=Ze;E.compact=Or;E.compactItem=Pr;E.compactType=uo;E.correctBounds=Er;E.fastPositionEqual=Kn;E.fastRGLPropsEqual=void 0;E.getAllCollisions=Cr;E.getFirstCollision=ve;E.getLayoutItem=Tt;E.getStatics=Ht;E.modifyLayout=_r;E.moveElement=Le;E.moveElementAwayFromCollision=wt;E.noop=void 0;E.perc=Jn;E.resizeItemInDirection=oo;E.setTopLeft=ao;E.setTransform=io;E.sortLayoutItems=kt;E.sortLayoutItemsByColRow=Hr;E.sortLayoutItemsByRowCol=Tr;E.synchronizeLayoutWithChildren=so;E.validateLayout=lo;E.withLayoutItem=Un;var ar=Mt,$e=Fn(L);function Fn(e){return e&&e.__esModule?e:{default:e}}function jt(e){let t=0,r;for(let n=0,o=e.length;n<o;n++)r=e[n].y+e[n].h,r>t&&(t=r);return t}function Dr(e){const t=Array(e.length);for(let r=0,n=e.length;r<n;r++)t[r]=we(e[r]);return t}function _r(e,t){const r=Array(e.length);for(let n=0,o=e.length;n<o;n++)t.i===e[n].i?r[n]=t:r[n]=e[n];return r}function Un(e,t,r){let n=Tt(e,t);return n?(n=r(we(n)),e=_r(e,n),[e,n]):[e,null]}function we(e){return{w:e.w,h:e.h,x:e.x,y:e.y,i:e.i,minW:e.minW,maxW:e.maxW,minH:e.minH,maxH:e.maxH,moved:!!e.moved,static:!!e.static,isDraggable:e.isDraggable,isResizable:e.isResizable,resizeHandles:e.resizeHandles,isBounded:e.isBounded}}function Vn(e,t){return(0,ar.deepEqual)($e.default.Children.map(e,r=>r==null?void 0:r.key),$e.default.Children.map(t,r=>r==null?void 0:r.key))&&(0,ar.deepEqual)($e.default.Children.map(e,r=>r==null?void 0:r.props["data-grid"]),$e.default.Children.map(t,r=>r==null?void 0:r.props["data-grid"]))}E.fastRGLPropsEqual=Xn;function Kn(e,t){return e.left===t.left&&e.top===t.top&&e.width===t.width&&e.height===t.height}function Ze(e,t){return!(e.i===t.i||e.x+e.w<=t.x||e.x>=t.x+t.w||e.y+e.h<=t.y||e.y>=t.y+t.h)}function Or(e,t,r,n){const o=Ht(e),i=kt(e,t),a=Array(e.length);for(let l=0,s=i.length;l<s;l++){let u=we(i[l]);u.static||(u=Pr(o,u,t,r,i,n),o.push(u)),a[e.indexOf(i[l])]=u,u.moved=!1}return a}const Zn={x:"w",y:"h"};function bt(e,t,r,n){const o=Zn[n];t[n]+=1;const i=e.map(a=>a.i).indexOf(t.i);for(let a=i+1;a<e.length;a++){const l=e[a];if(!l.static){if(l.y>t.y+t.h)break;Ze(t,l)&&bt(e,l,r+t[o],n)}}t[n]=r}function Pr(e,t,r,n,o,i){const a=r==="vertical",l=r==="horizontal";if(a)for(t.y=Math.min(jt(e),t.y);t.y>0&&!ve(e,t);)t.y--;else if(l)for(;t.x>0&&!ve(e,t);)t.x--;let s;for(;(s=ve(e,t))&&!(r===null&&i);)if(l?bt(o,t,s.x+s.w,"x"):bt(o,t,s.y+s.h,"y"),l&&t.x+t.w>n)for(t.x=n-t.w,t.y++;t.x>0&&!ve(e,t);)t.x--;return t.y=Math.max(t.y,0),t.x=Math.max(t.x,0),t}function Er(e,t){const r=Ht(e);for(let n=0,o=e.length;n<o;n++){const i=e[n];if(i.x+i.w>t.cols&&(i.x=t.cols-i.w),i.x<0&&(i.x=0,i.w=t.cols),!i.static)r.push(i);else for(;ve(r,i);)i.y++}return e}function Tt(e,t){for(let r=0,n=e.length;r<n;r++)if(e[r].i===t)return e[r]}function ve(e,t){for(let r=0,n=e.length;r<n;r++)if(Ze(e[r],t))return e[r]}function Cr(e,t){return e.filter(r=>Ze(r,t))}function Ht(e){return e.filter(t=>t.static)}function Le(e,t,r,n,o,i,a,l,s){if(t.static&&t.isDraggable!==!0||t.y===n&&t.x===r)return e;`${t.i}${String(r)}${String(n)}${t.x}${t.y}`;const u=t.x,c=t.y;typeof r=="number"&&(t.x=r),typeof n=="number"&&(t.y=n),t.moved=!0;let d=kt(e,a);(a==="vertical"&&typeof n=="number"?c>=n:a==="horizontal"&&typeof r=="number"?u>=r:!1)&&(d=d.reverse());const g=Cr(d,t),w=g.length>0;if(w&&s)return Dr(e);if(w&&i)return`${t.i}`,t.x=u,t.y=c,t.moved=!1,e;for(let S=0,R=g.length;S<R;S++){const p=g[S];`${t.i}${t.x}${t.y}${p.i}${p.x}${p.y}`,!p.moved&&(p.static?e=wt(e,p,t,o,a):e=wt(e,t,p,o,a))}return e}function wt(e,t,r,n,o,i){const a=o==="horizontal",l=o==="vertical",s=t.static;if(n){n=!1;const d={x:a?Math.max(t.x-r.w,0):r.x,y:l?Math.max(t.y-r.h,0):r.y,w:r.w,h:r.h,i:"-1"},f=ve(e,d),g=f&&f.y+f.h>t.y,w=f&&t.x+t.w>f.x;if(f){if(g&&l)return Le(e,r,void 0,t.y+1,n,s,o);if(g&&o==null)return t.y=r.y,r.y=r.y+r.h,e;if(w&&a)return Le(e,t,r.x,void 0,n,s,o)}else return`${r.i}${d.x}${d.y}`,Le(e,r,a?d.x:void 0,l?d.y:void 0,n,s,o)}const u=a?r.x+1:void 0,c=l?r.y+1:void 0;return u==null&&c==null?e:Le(e,r,a?r.x+1:void 0,l?r.y+1:void 0,n,s,o)}function Jn(e){return e*100+"%"}const zr=(e,t,r,n)=>e+r>n?t:r,Mr=(e,t,r)=>e<0?t:r,jr=e=>Math.max(0,e),$t=e=>Math.max(0,e),Lt=(e,t,r)=>{let{left:n,height:o,width:i}=t;const a=e.top-(o-e.height);return{left:n,width:i,height:Mr(a,e.height,o),top:$t(a)}},Wt=(e,t,r)=>{let{top:n,left:o,height:i,width:a}=t;return{top:n,height:i,width:zr(e.left,e.width,a,r),left:jr(o)}},Nt=(e,t,r)=>{let{top:n,height:o,width:i}=t;const a=e.left-(i-e.width);return{height:o,width:a<0?e.width:zr(e.left,e.width,i,r),top:$t(n),left:jr(a)}},qt=(e,t,r)=>{let{top:n,left:o,height:i,width:a}=t;return{width:a,left:o,height:Mr(n,e.height,i),top:$t(n)}},Qn=function(){return Lt(arguments.length<=0?void 0:arguments[0],Wt(...arguments))},eo=function(){return Lt(arguments.length<=0?void 0:arguments[0],Nt(...arguments))},to=function(){return qt(arguments.length<=0?void 0:arguments[0],Wt(...arguments))},ro=function(){return qt(arguments.length<=0?void 0:arguments[0],Nt(...arguments))},no={n:Lt,ne:Qn,e:Wt,se:to,s:qt,sw:ro,w:Nt,nw:eo};function oo(e,t,r,n){const o=no[e];return o?o(t,{...t,...r},n):r}function io(e){let{top:t,left:r,width:n,height:o}=e;const i=`translate(${r}px,${t}px)`;return{transform:i,WebkitTransform:i,MozTransform:i,msTransform:i,OTransform:i,width:`${n}px`,height:`${o}px`,position:"absolute"}}function ao(e){let{top:t,left:r,width:n,height:o}=e;return{top:`${t}px`,left:`${r}px`,width:`${n}px`,height:`${o}px`,position:"absolute"}}function kt(e,t){return t==="horizontal"?Hr(e):t==="vertical"?Tr(e):e}function Tr(e){return e.slice(0).sort(function(t,r){return t.y>r.y||t.y===r.y&&t.x>r.x?1:t.y===r.y&&t.x===r.x?0:-1})}function Hr(e){return e.slice(0).sort(function(t,r){return t.x>r.x||t.x===r.x&&t.y>r.y?1:-1})}function so(e,t,r,n,o){e=e||[];const i=[];$e.default.Children.forEach(t,l=>{if((l==null?void 0:l.key)==null)return;const s=Tt(e,String(l.key)),u=l.props["data-grid"];s&&u==null?i.push(we(s)):u?i.push(we({...u,i:l.key})):i.push(we({w:1,h:1,x:0,y:jt(i),i:String(l.key)}))});const a=Er(i,{cols:r});return o?a:Or(a,n,r)}function lo(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"Layout";const r=["x","y","w","h"];if(!Array.isArray(e))throw new Error(t+" must be an array!");for(let n=0,o=e.length;n<o;n++){const i=e[n];for(let a=0;a<r.length;a++){const l=r[a],s=i[l];if(typeof s!="number"||Number.isNaN(s))throw new Error(`ReactGridLayout: ${t}[${n}].${l} must be a number! Received: ${s} (${typeof s})`)}if(typeof i.i<"u"&&typeof i.i!="string")throw new Error(`ReactGridLayout: ${t}[${n}].i must be a string! Received: ${i.i} (${typeof i.i})`)}}function uo(e){const{verticalCompact:t,compactType:r}=e||{};return t===!1?null:r}const co=()=>{};E.noop=co;var se={};Object.defineProperty(se,"__esModule",{value:!0});se.calcGridColWidth=Je;se.calcGridItemPosition=fo;se.calcGridItemWHPx=St;se.calcWH=ho;se.calcXY=po;se.clamp=be;function Je(e){const{margin:t,containerPadding:r,containerWidth:n,cols:o}=e;return(n-t[0]*(o-1)-r[0]*2)/o}function St(e,t,r){return Number.isFinite(e)?Math.round(t*e+Math.max(0,e-1)*r):e}function fo(e,t,r,n,o,i){const{margin:a,containerPadding:l,rowHeight:s}=e,u=Je(e),c={};return i&&i.resizing?(c.width=Math.round(i.resizing.width),c.height=Math.round(i.resizing.height)):(c.width=St(n,u,a[0]),c.height=St(o,s,a[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((s+a[1])*r+l[1]),c.left=Math.round((u+a[0])*t+l[0])),c}function po(e,t,r,n,o){const{margin:i,containerPadding:a,cols:l,rowHeight:s,maxRows:u}=e,c=Je(e);let d=Math.round((r-a[0])/(c+i[0])),f=Math.round((t-a[1])/(s+i[1]));return d=be(d,0,l-n),f=be(f,0,u-o),{x:d,y:f}}function ho(e,t,r,n,o,i){const{margin:a,maxRows:l,cols:s,rowHeight:u}=e,c=Je(e);let d=Math.round((t+a[0])/(c+a[0])),f=Math.round((r+a[1])/(u+a[1])),g=be(d,0,s-n),w=be(f,0,l-o);return["sw","w","nw"].indexOf(i)!==-1&&(g=be(d,0,s)),["nw","n","ne"].indexOf(i)!==-1&&(w=be(f,0,l)),{w:g,h:w}}function be(e,t,r){return Math.max(Math.min(e,r),t)}var Qe={},et={exports:{}},$r={},k={},le={};Object.defineProperty(le,"__esModule",{value:!0});le.dontSetMe=bo;le.findInArray=go;le.int=vo;le.isFunction=mo;le.isNum=yo;function go(e,t){for(let r=0,n=e.length;r<n;r++)if(t.apply(t,[e[r],r,e]))return e[r]}function mo(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Function]"}function yo(e){return typeof e=="number"&&!isNaN(e)}function vo(e){return parseInt(e,10)}function bo(e,t,r){if(e[t])return new Error(`Invalid prop ${t} passed to ${r} - do not set this, set it on the child.`)}var Se={};Object.defineProperty(Se,"__esModule",{value:!0});Se.browserPrefixToKey=Wr;Se.browserPrefixToStyle=wo;Se.default=void 0;Se.getPrefix=Lr;const dt=["Moz","Webkit","O","ms"];function Lr(){var r,n;let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"transform";if(typeof window>"u")return"";const t=(n=(r=window.document)==null?void 0:r.documentElement)==null?void 0:n.style;if(!t||e in t)return"";for(let o=0;o<dt.length;o++)if(Wr(e,dt[o])in t)return dt[o];return""}function Wr(e,t){return t?`${t}${So(e)}`:e}function wo(e,t){return t?`-${t.toLowerCase()}-${e}`:e}function So(e){let t="",r=!0;for(let n=0;n<e.length;n++)r?(t+=e[n].toUpperCase(),r=!1):e[n]==="-"?r=!0:t+=e[n];return t}Se.default=Lr();Object.defineProperty(k,"__esModule",{value:!0});k.addClassName=kr;k.addEvent=Ro;k.addUserSelectStyles=Ho;k.createCSSTransform=zo;k.createSVGTransform=Mo;k.getTouch=jo;k.getTouchIdentifier=To;k.getTranslation=It;k.innerHeight=Po;k.innerWidth=Eo;k.matchesSelector=qr;k.matchesSelectorAndParentsTo=xo;k.offsetXYFromParent=Co;k.outerHeight=_o;k.outerWidth=Oo;k.removeClassName=Ir;k.removeEvent=Do;k.scheduleRemoveUserSelectStyles=$o;var Q=le,sr=Nr(Se);function Nr(e,t){if(typeof WeakMap=="function")var r=new WeakMap,n=new WeakMap;return(Nr=function(o,i){if(!i&&o&&o.__esModule)return o;var a,l,s={__proto__:null,default:o};if(o===null||typeof o!="object"&&typeof o!="function")return s;if(a=i?n:r){if(a.has(o))return a.get(o);a.set(o,s)}for(const u in o)u!=="default"&&{}.hasOwnProperty.call(o,u)&&((l=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,u))&&(l.get||l.set)?a(s,u,l):s[u]=o[u]);return s})(e,t)}let Ae="";function qr(e,t){return Ae||(Ae=(0,Q.findInArray)(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(r){return(0,Q.isFunction)(e[r])})),(0,Q.isFunction)(e[Ae])?e[Ae](t):!1}function xo(e,t,r){let n=e;do{if(qr(n,t))return!0;if(n===r)return!1;n=n.parentNode}while(n);return!1}function Ro(e,t,r,n){if(!e)return;const o={capture:!0,...n};e.addEventListener?e.addEventListener(t,r,o):e.attachEvent?e.attachEvent("on"+t,r):e["on"+t]=r}function Do(e,t,r,n){if(!e)return;const o={capture:!0,...n};e.removeEventListener?e.removeEventListener(t,r,o):e.detachEvent?e.detachEvent("on"+t,r):e["on"+t]=null}function _o(e){let t=e.clientHeight;const r=e.ownerDocument.defaultView.getComputedStyle(e);return t+=(0,Q.int)(r.borderTopWidth),t+=(0,Q.int)(r.borderBottomWidth),t}function Oo(e){let t=e.clientWidth;const r=e.ownerDocument.defaultView.getComputedStyle(e);return t+=(0,Q.int)(r.borderLeftWidth),t+=(0,Q.int)(r.borderRightWidth),t}function Po(e){let t=e.clientHeight;const r=e.ownerDocument.defaultView.getComputedStyle(e);return t-=(0,Q.int)(r.paddingTop),t-=(0,Q.int)(r.paddingBottom),t}function Eo(e){let t=e.clientWidth;const r=e.ownerDocument.defaultView.getComputedStyle(e);return t-=(0,Q.int)(r.paddingLeft),t-=(0,Q.int)(r.paddingRight),t}function Co(e,t,r){const o=t===t.ownerDocument.body?{left:0,top:0}:t.getBoundingClientRect(),i=(e.clientX+t.scrollLeft-o.left)/r,a=(e.clientY+t.scrollTop-o.top)/r;return{x:i,y:a}}function zo(e,t){const r=It(e,t,"px");return{[(0,sr.browserPrefixToKey)("transform",sr.default)]:r}}function Mo(e,t){return It(e,t,"")}function It(e,t,r){let{x:n,y:o}=e,i=`translate(${n}${r},${o}${r})`;if(t){const a=`${typeof t.x=="string"?t.x:t.x+r}`,l=`${typeof t.y=="string"?t.y:t.y+r}`;i=`translate(${a}, ${l})`+i}return i}function jo(e,t){return e.targetTouches&&(0,Q.findInArray)(e.targetTouches,r=>t===r.identifier)||e.changedTouches&&(0,Q.findInArray)(e.changedTouches,r=>t===r.identifier)}function To(e){if(e.targetTouches&&e.targetTouches[0])return e.targetTouches[0].identifier;if(e.changedTouches&&e.changedTouches[0])return e.changedTouches[0].identifier}function Ho(e){if(!e)return;let t=e.getElementById("react-draggable-style-el");t||(t=e.createElement("style"),t.type="text/css",t.id="react-draggable-style-el",t.innerHTML=`.react-draggable-transparent-selection *::-moz-selection {all: inherit;}
|
|
2
|
-
`,t.innerHTML+=`.react-draggable-transparent-selection *::selection {all: inherit;}
|
|
3
|
-
`,e.getElementsByTagName("head")[0].appendChild(t)),e.body&&kr(e.body,"react-draggable-transparent-selection")}function $o(e){window.requestAnimationFrame?window.requestAnimationFrame(()=>{lr(e)}):lr(e)}function lr(e){if(e)try{if(e.body&&Ir(e.body,"react-draggable-transparent-selection"),e.selection)e.selection.empty();else{const t=(e.defaultView||window).getSelection();t&&t.type!=="Caret"&&t.removeAllRanges()}}catch{}}function kr(e,t){e.classList?e.classList.add(t):e.className.match(new RegExp(`(?:^|\\s)${t}(?!\\S)`))||(e.className+=` ${t}`)}function Ir(e,t){e.classList?e.classList.remove(t):e.className=e.className.replace(new RegExp(`(?:^|\\s)${t}(?!\\S)`,"g"),"")}var ue={};Object.defineProperty(ue,"__esModule",{value:!0});ue.canDragX=No;ue.canDragY=qo;ue.createCoreData=Io;ue.createDraggableData=Ao;ue.getBoundPosition=Lo;ue.getControlPosition=ko;ue.snapToGrid=Wo;var J=le,Oe=k;function Lo(e,t,r){if(!e.props.bounds)return[t,r];let{bounds:n}=e.props;n=typeof n=="string"?n:Bo(n);const o=At(e);if(typeof n=="string"){const{ownerDocument:i}=o,a=i.defaultView;let l;if(n==="parent"?l=o.parentNode:l=o.getRootNode().querySelector(n),!(l instanceof a.HTMLElement))throw new Error('Bounds selector "'+n+'" could not find an element.');const s=l,u=a.getComputedStyle(o),c=a.getComputedStyle(s);n={left:-o.offsetLeft+(0,J.int)(c.paddingLeft)+(0,J.int)(u.marginLeft),top:-o.offsetTop+(0,J.int)(c.paddingTop)+(0,J.int)(u.marginTop),right:(0,Oe.innerWidth)(s)-(0,Oe.outerWidth)(o)-o.offsetLeft+(0,J.int)(c.paddingRight)-(0,J.int)(u.marginRight),bottom:(0,Oe.innerHeight)(s)-(0,Oe.outerHeight)(o)-o.offsetTop+(0,J.int)(c.paddingBottom)-(0,J.int)(u.marginBottom)}}return(0,J.isNum)(n.right)&&(t=Math.min(t,n.right)),(0,J.isNum)(n.bottom)&&(r=Math.min(r,n.bottom)),(0,J.isNum)(n.left)&&(t=Math.max(t,n.left)),(0,J.isNum)(n.top)&&(r=Math.max(r,n.top)),[t,r]}function Wo(e,t,r){const n=Math.round(t/e[0])*e[0],o=Math.round(r/e[1])*e[1];return[n,o]}function No(e){return e.props.axis==="both"||e.props.axis==="x"}function qo(e){return e.props.axis==="both"||e.props.axis==="y"}function ko(e,t,r){const n=typeof t=="number"?(0,Oe.getTouch)(e,t):null;if(typeof t=="number"&&!n)return null;const o=At(r),i=r.props.offsetParent||o.offsetParent||o.ownerDocument.body;return(0,Oe.offsetXYFromParent)(n||e,i,r.props.scale)}function Io(e,t,r){const n=!(0,J.isNum)(e.lastX),o=At(e);return n?{node:o,deltaX:0,deltaY:0,lastX:t,lastY:r,x:t,y:r}:{node:o,deltaX:t-e.lastX,deltaY:r-e.lastY,lastX:e.lastX,lastY:e.lastY,x:t,y:r}}function Ao(e,t){const r=e.props.scale;return{node:t.node,x:e.state.x+t.deltaX/r,y:e.state.y+t.deltaY/r,deltaX:t.deltaX/r,deltaY:t.deltaY/r,lastX:e.state.x,lastY:e.state.y}}function Bo(e){return{left:e.left,top:e.top,right:e.right,bottom:e.bottom}}function At(e){const t=e.findDOMNode();if(!t)throw new Error("<DraggableCore>: Unmounted during event!");return t}var tt={},rt={};Object.defineProperty(rt,"__esModule",{value:!0});rt.default=Go;function Go(){}Object.defineProperty(tt,"__esModule",{value:!0});tt.default=void 0;var ft=Ar(L),V=Bt(pe),Yo=Bt(Ct),F=k,de=ue,pt=le,Te=Bt(rt);function Bt(e){return e&&e.__esModule?e:{default:e}}function Ar(e,t){if(typeof WeakMap=="function")var r=new WeakMap,n=new WeakMap;return(Ar=function(o,i){if(!i&&o&&o.__esModule)return o;var a,l,s={__proto__:null,default:o};if(o===null||typeof o!="object"&&typeof o!="function")return s;if(a=i?n:r){if(a.has(o))return a.get(o);a.set(o,s)}for(const u in o)u!=="default"&&{}.hasOwnProperty.call(o,u)&&((l=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,u))&&(l.get||l.set)?a(s,u,l):s[u]=o[u]);return s})(e,t)}function K(e,t,r){return(t=Xo(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Xo(e){var t=Fo(e,"string");return typeof t=="symbol"?t:t+""}function Fo(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}const te={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}};let fe=te.mouse,nt=class extends ft.Component{constructor(){super(...arguments),K(this,"dragging",!1),K(this,"lastX",NaN),K(this,"lastY",NaN),K(this,"touchIdentifier",null),K(this,"mounted",!1),K(this,"handleDragStart",t=>{if(this.props.onMouseDown(t),!this.props.allowAnyClick&&typeof t.button=="number"&&t.button!==0)return!1;const r=this.findDOMNode();if(!r||!r.ownerDocument||!r.ownerDocument.body)throw new Error("<DraggableCore> not mounted on DragStart!");const{ownerDocument:n}=r;if(this.props.disabled||!(t.target instanceof n.defaultView.Node)||this.props.handle&&!(0,F.matchesSelectorAndParentsTo)(t.target,this.props.handle,r)||this.props.cancel&&(0,F.matchesSelectorAndParentsTo)(t.target,this.props.cancel,r))return;t.type==="touchstart"&&!this.props.allowMobileScroll&&t.preventDefault();const o=(0,F.getTouchIdentifier)(t);this.touchIdentifier=o;const i=(0,de.getControlPosition)(t,o,this);if(i==null)return;const{x:a,y:l}=i,s=(0,de.createCoreData)(this,a,l);(0,Te.default)("DraggableCore: handleDragStart: %j",s),(0,Te.default)("calling",this.props.onStart),!(this.props.onStart(t,s)===!1||this.mounted===!1)&&(this.props.enableUserSelectHack&&(0,F.addUserSelectStyles)(n),this.dragging=!0,this.lastX=a,this.lastY=l,(0,F.addEvent)(n,fe.move,this.handleDrag),(0,F.addEvent)(n,fe.stop,this.handleDragStop))}),K(this,"handleDrag",t=>{const r=(0,de.getControlPosition)(t,this.touchIdentifier,this);if(r==null)return;let{x:n,y:o}=r;if(Array.isArray(this.props.grid)){let l=n-this.lastX,s=o-this.lastY;if([l,s]=(0,de.snapToGrid)(this.props.grid,l,s),!l&&!s)return;n=this.lastX+l,o=this.lastY+s}const i=(0,de.createCoreData)(this,n,o);if((0,Te.default)("DraggableCore: handleDrag: %j",i),this.props.onDrag(t,i)===!1||this.mounted===!1){try{this.handleDragStop(new MouseEvent("mouseup"))}catch{const s=document.createEvent("MouseEvents");s.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),this.handleDragStop(s)}return}this.lastX=n,this.lastY=o}),K(this,"handleDragStop",t=>{if(!this.dragging)return;const r=(0,de.getControlPosition)(t,this.touchIdentifier,this);if(r==null)return;let{x:n,y:o}=r;if(Array.isArray(this.props.grid)){let s=n-this.lastX||0,u=o-this.lastY||0;[s,u]=(0,de.snapToGrid)(this.props.grid,s,u),n=this.lastX+s,o=this.lastY+u}const i=(0,de.createCoreData)(this,n,o);if(this.props.onStop(t,i)===!1||this.mounted===!1)return!1;const l=this.findDOMNode();l&&this.props.enableUserSelectHack&&(0,F.scheduleRemoveUserSelectStyles)(l.ownerDocument),(0,Te.default)("DraggableCore: handleDragStop: %j",i),this.dragging=!1,this.lastX=NaN,this.lastY=NaN,l&&((0,Te.default)("DraggableCore: Removing handlers"),(0,F.removeEvent)(l.ownerDocument,fe.move,this.handleDrag),(0,F.removeEvent)(l.ownerDocument,fe.stop,this.handleDragStop))}),K(this,"onMouseDown",t=>(fe=te.mouse,this.handleDragStart(t))),K(this,"onMouseUp",t=>(fe=te.mouse,this.handleDragStop(t))),K(this,"onTouchStart",t=>(fe=te.touch,this.handleDragStart(t))),K(this,"onTouchEnd",t=>(fe=te.touch,this.handleDragStop(t)))}componentDidMount(){this.mounted=!0;const t=this.findDOMNode();t&&(0,F.addEvent)(t,te.touch.start,this.onTouchStart,{passive:!1})}componentWillUnmount(){this.mounted=!1;const t=this.findDOMNode();if(t){const{ownerDocument:r}=t;(0,F.removeEvent)(r,te.mouse.move,this.handleDrag),(0,F.removeEvent)(r,te.touch.move,this.handleDrag),(0,F.removeEvent)(r,te.mouse.stop,this.handleDragStop),(0,F.removeEvent)(r,te.touch.stop,this.handleDragStop),(0,F.removeEvent)(t,te.touch.start,this.onTouchStart,{passive:!1}),this.props.enableUserSelectHack&&(0,F.scheduleRemoveUserSelectStyles)(r)}}findDOMNode(){var t,r,n;return(t=this.props)!=null&&t.nodeRef?(n=(r=this.props)==null?void 0:r.nodeRef)==null?void 0:n.current:Yo.default.findDOMNode(this)}render(){return ft.cloneElement(ft.Children.only(this.props.children),{onMouseDown:this.onMouseDown,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}};tt.default=nt;K(nt,"displayName","DraggableCore");K(nt,"propTypes",{allowAnyClick:V.default.bool,allowMobileScroll:V.default.bool,children:V.default.node.isRequired,disabled:V.default.bool,enableUserSelectHack:V.default.bool,offsetParent:function(e,t){if(e[t]&&e[t].nodeType!==1)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:V.default.arrayOf(V.default.number),handle:V.default.string,cancel:V.default.string,nodeRef:V.default.object,onStart:V.default.func,onDrag:V.default.func,onStop:V.default.func,onMouseDown:V.default.func,scale:V.default.number,className:pt.dontSetMe,style:pt.dontSetMe,transform:pt.dontSetMe});K(nt,"defaultProps",{allowAnyClick:!1,allowMobileScroll:!1,disabled:!1,enableUserSelectHack:!0,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){},scale:1});(function(e){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"DraggableCore",{enumerable:!0,get:function(){return s.default}}),e.default=void 0;var t=d(L),r=c(pe),n=c(Ct),o=Ke,i=k,a=ue,l=le,s=c(tt),u=c(rt);function c(p){return p&&p.__esModule?p:{default:p}}function d(p,v){if(typeof WeakMap=="function")var y=new WeakMap,b=new WeakMap;return(d=function(h,P){if(!P&&h&&h.__esModule)return h;var $,W,T={__proto__:null,default:h};if(h===null||typeof h!="object"&&typeof h!="function")return T;if($=P?b:y){if($.has(h))return $.get(h);$.set(h,T)}for(const q in h)q!=="default"&&{}.hasOwnProperty.call(h,q)&&((W=($=Object.defineProperty)&&Object.getOwnPropertyDescriptor(h,q))&&(W.get||W.set)?$(T,q,W):T[q]=h[q]);return T})(p,v)}function f(){return f=Object.assign?Object.assign.bind():function(p){for(var v=1;v<arguments.length;v++){var y=arguments[v];for(var b in y)({}).hasOwnProperty.call(y,b)&&(p[b]=y[b])}return p},f.apply(null,arguments)}function g(p,v,y){return(v=w(v))in p?Object.defineProperty(p,v,{value:y,enumerable:!0,configurable:!0,writable:!0}):p[v]=y,p}function w(p){var v=S(p,"string");return typeof v=="symbol"?v:v+""}function S(p,v){if(typeof p!="object"||!p)return p;var y=p[Symbol.toPrimitive];if(y!==void 0){var b=y.call(p,v||"default");if(typeof b!="object")return b;throw new TypeError("@@toPrimitive must return a primitive value.")}return(v==="string"?String:Number)(p)}class R extends t.Component{static getDerivedStateFromProps(v,y){let{position:b}=v,{prevPropsPosition:h}=y;return b&&(!h||b.x!==h.x||b.y!==h.y)?((0,u.default)("Draggable: getDerivedStateFromProps %j",{position:b,prevPropsPosition:h}),{x:b.x,y:b.y,prevPropsPosition:{...b}}):null}constructor(v){super(v),g(this,"onDragStart",(y,b)=>{if((0,u.default)("Draggable: onDragStart: %j",b),this.props.onStart(y,(0,a.createDraggableData)(this,b))===!1)return!1;this.setState({dragging:!0,dragged:!0})}),g(this,"onDrag",(y,b)=>{if(!this.state.dragging)return!1;(0,u.default)("Draggable: onDrag: %j",b);const h=(0,a.createDraggableData)(this,b),P={x:h.x,y:h.y,slackX:0,slackY:0};if(this.props.bounds){const{x:W,y:T}=P;P.x+=this.state.slackX,P.y+=this.state.slackY;const[q,G]=(0,a.getBoundPosition)(this,P.x,P.y);P.x=q,P.y=G,P.slackX=this.state.slackX+(W-P.x),P.slackY=this.state.slackY+(T-P.y),h.x=P.x,h.y=P.y,h.deltaX=P.x-this.state.x,h.deltaY=P.y-this.state.y}if(this.props.onDrag(y,h)===!1)return!1;this.setState(P)}),g(this,"onDragStop",(y,b)=>{if(!this.state.dragging||this.props.onStop(y,(0,a.createDraggableData)(this,b))===!1)return!1;(0,u.default)("Draggable: onDragStop: %j",b);const P={dragging:!1,slackX:0,slackY:0};if(!!this.props.position){const{x:W,y:T}=this.props.position;P.x=W,P.y=T}this.setState(P)}),this.state={dragging:!1,dragged:!1,x:v.position?v.position.x:v.defaultPosition.x,y:v.position?v.position.y:v.defaultPosition.y,prevPropsPosition:{...v.position},slackX:0,slackY:0,isElementSVG:!1},v.position&&!(v.onDrag||v.onStop)&&console.warn("A `position` was applied to this <Draggable>, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}componentDidMount(){typeof window.SVGElement<"u"&&this.findDOMNode()instanceof window.SVGElement&&this.setState({isElementSVG:!0})}componentWillUnmount(){this.state.dragging&&this.setState({dragging:!1})}findDOMNode(){var v,y;return((y=(v=this.props)==null?void 0:v.nodeRef)==null?void 0:y.current)??n.default.findDOMNode(this)}render(){const{axis:v,bounds:y,children:b,defaultPosition:h,defaultClassName:P,defaultClassNameDragging:$,defaultClassNameDragged:W,position:T,positionOffset:q,scale:G,...ze}=this.props;let Me={},je=null;const he=!!!T||this.state.dragging,ge=T||h,Ie={x:(0,a.canDragX)(this)&&he?this.state.x:ge.x,y:(0,a.canDragY)(this)&&he?this.state.y:ge.y};this.state.isElementSVG?je=(0,i.createSVGTransform)(Ie,q):Me=(0,i.createCSSTransform)(Ie,q);const ut=(0,o.clsx)(b.props.className||"",P,{[$]:this.state.dragging,[W]:this.state.dragged});return t.createElement(s.default,f({},ze,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),t.cloneElement(t.Children.only(b),{className:ut,style:{...b.props.style,...Me},transform:je}))}}e.default=R,g(R,"displayName","Draggable"),g(R,"propTypes",{...s.default.propTypes,axis:r.default.oneOf(["both","x","y","none"]),bounds:r.default.oneOfType([r.default.shape({left:r.default.number,right:r.default.number,top:r.default.number,bottom:r.default.number}),r.default.string,r.default.oneOf([!1])]),defaultClassName:r.default.string,defaultClassNameDragging:r.default.string,defaultClassNameDragged:r.default.string,defaultPosition:r.default.shape({x:r.default.number,y:r.default.number}),positionOffset:r.default.shape({x:r.default.oneOfType([r.default.number,r.default.string]),y:r.default.oneOfType([r.default.number,r.default.string])}),position:r.default.shape({x:r.default.number,y:r.default.number}),className:l.dontSetMe,style:l.dontSetMe,transform:l.dontSetMe}),g(R,"defaultProps",{...s.default.defaultProps,axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},scale:1})})($r);const{default:Br,DraggableCore:Uo}=$r;et.exports=Br;et.exports.default=Br;et.exports.DraggableCore=Uo;var Gr=et.exports,ot={exports:{}},qe={},Gt={};Gt.__esModule=!0;Gt.cloneElement=ei;var Vo=Ko(L);function Ko(e){return e&&e.__esModule?e:{default:e}}function ur(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function cr(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?ur(Object(r),!0).forEach(function(n){Zo(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ur(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Zo(e,t,r){return t=Jo(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Jo(e){var t=Qo(e,"string");return typeof t=="symbol"?t:String(t)}function Qo(e,t){if(typeof e!="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function ei(e,t){return t.style&&e.props.style&&(t.style=cr(cr({},e.props.style),t.style)),t.className&&e.props.className&&(t.className=e.props.className+" "+t.className),Vo.default.cloneElement(e,t)}var ke={};ke.__esModule=!0;ke.resizableProps=void 0;var _=ti(pe);function ti(e){return e&&e.__esModule?e:{default:e}}var ri={axis:_.default.oneOf(["both","x","y","none"]),className:_.default.string,children:_.default.element.isRequired,draggableOpts:_.default.shape({allowAnyClick:_.default.bool,cancel:_.default.string,children:_.default.node,disabled:_.default.bool,enableUserSelectHack:_.default.bool,offsetParent:_.default.node,grid:_.default.arrayOf(_.default.number),handle:_.default.string,nodeRef:_.default.object,onStart:_.default.func,onDrag:_.default.func,onStop:_.default.func,onMouseDown:_.default.func,scale:_.default.number}),height:function(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];var o=r[0];if(o.axis==="both"||o.axis==="y"){var i;return(i=_.default.number).isRequired.apply(i,r)}return _.default.number.apply(_.default,r)},handle:_.default.oneOfType([_.default.node,_.default.func]),handleSize:_.default.arrayOf(_.default.number),lockAspectRatio:_.default.bool,maxConstraints:_.default.arrayOf(_.default.number),minConstraints:_.default.arrayOf(_.default.number),onResizeStop:_.default.func,onResizeStart:_.default.func,onResize:_.default.func,resizeHandles:_.default.arrayOf(_.default.oneOf(["s","w","e","n","sw","nw","se","ne"])),transformScale:_.default.number,width:function(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];var o=r[0];if(o.axis==="both"||o.axis==="x"){var i;return(i=_.default.number).isRequired.apply(i,r)}return _.default.number.apply(_.default,r)}};ke.resizableProps=ri;qe.__esModule=!0;qe.default=void 0;var He=si(L),ni=Gr,oi=Gt,ii=ke,ai=["children","className","draggableOpts","width","height","handle","handleSize","lockAspectRatio","axis","minConstraints","maxConstraints","onResize","onResizeStop","onResizeStart","resizeHandles","transformScale"];function Yr(e){if(typeof WeakMap!="function")return null;var t=new WeakMap,r=new WeakMap;return(Yr=function(o){return o?r:t})(e)}function si(e,t){if(e&&e.__esModule)return e;if(e===null||typeof e!="object"&&typeof e!="function")return{default:e};var r=Yr(t);if(r&&r.has(e))return r.get(e);var n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if(i!=="default"&&Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(n,i,a):n[i]=e[i]}return n.default=e,r&&r.set(e,n),n}function xt(){return xt=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},xt.apply(this,arguments)}function li(e,t){if(e==null)return{};var r={},n=Object.keys(e),o,i;for(i=0;i<n.length;i++)o=n[i],!(t.indexOf(o)>=0)&&(r[o]=e[o]);return r}function dr(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function ht(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?dr(Object(r),!0).forEach(function(n){ui(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):dr(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function ui(e,t,r){return t=ci(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ci(e){var t=di(e,"string");return typeof t=="symbol"?t:String(t)}function di(e,t){if(typeof e!="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function fi(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,Rt(e,t)}function Rt(e,t){return Rt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,o){return n.__proto__=o,n},Rt(e,t)}var Yt=function(e){fi(t,e);function t(){for(var n,o=arguments.length,i=new Array(o),a=0;a<o;a++)i[a]=arguments[a];return n=e.call.apply(e,[this].concat(i))||this,n.handleRefs={},n.lastHandleRect=null,n.slack=null,n}var r=t.prototype;return r.componentWillUnmount=function(){this.resetData()},r.resetData=function(){this.lastHandleRect=this.slack=null},r.runConstraints=function(o,i){var a=this.props,l=a.minConstraints,s=a.maxConstraints,u=a.lockAspectRatio;if(!l&&!s&&!u)return[o,i];if(u){var c=this.props.width/this.props.height,d=o-this.props.width,f=i-this.props.height;Math.abs(d)>Math.abs(f*c)?i=o/c:o=i*c}var g=o,w=i,S=this.slack||[0,0],R=S[0],p=S[1];return o+=R,i+=p,l&&(o=Math.max(l[0],o),i=Math.max(l[1],i)),s&&(o=Math.min(s[0],o),i=Math.min(s[1],i)),this.slack=[R+(g-o),p+(w-i)],[o,i]},r.resizeHandler=function(o,i){var a=this;return function(l,s){var u=s.node,c=s.deltaX,d=s.deltaY;o==="onResizeStart"&&a.resetData();var f=(a.props.axis==="both"||a.props.axis==="x")&&i!=="n"&&i!=="s",g=(a.props.axis==="both"||a.props.axis==="y")&&i!=="e"&&i!=="w";if(!(!f&&!g)){var w=i[0],S=i[i.length-1],R=u.getBoundingClientRect();if(a.lastHandleRect!=null){if(S==="w"){var p=R.left-a.lastHandleRect.left;c+=p}if(w==="n"){var v=R.top-a.lastHandleRect.top;d+=v}}a.lastHandleRect=R,S==="w"&&(c=-c),w==="n"&&(d=-d);var y=a.props.width+(f?c/a.props.transformScale:0),b=a.props.height+(g?d/a.props.transformScale:0),h=a.runConstraints(y,b);y=h[0],b=h[1];var P=y!==a.props.width||b!==a.props.height,$=typeof a.props[o]=="function"?a.props[o]:null,W=o==="onResize"&&!P;$&&!W&&(l.persist==null||l.persist(),$(l,{node:u,size:{width:y,height:b},handle:i})),o==="onResizeStop"&&a.resetData()}}},r.renderResizeHandle=function(o,i){var a=this.props.handle;if(!a)return He.createElement("span",{className:"react-resizable-handle react-resizable-handle-"+o,ref:i});if(typeof a=="function")return a(o,i);var l=typeof a.type=="string",s=ht({ref:i},l?{}:{handleAxis:o});return He.cloneElement(a,s)},r.render=function(){var o=this,i=this.props,a=i.children,l=i.className,s=i.draggableOpts;i.width,i.height,i.handle,i.handleSize,i.lockAspectRatio,i.axis,i.minConstraints,i.maxConstraints,i.onResize,i.onResizeStop,i.onResizeStart;var u=i.resizeHandles;i.transformScale;var c=li(i,ai);return(0,oi.cloneElement)(a,ht(ht({},c),{},{className:(l?l+" ":"")+"react-resizable",children:[].concat(a.props.children,u.map(function(d){var f,g=(f=o.handleRefs[d])!=null?f:o.handleRefs[d]=He.createRef();return He.createElement(ni.DraggableCore,xt({},s,{nodeRef:g,key:"resizableHandle-"+d,onStop:o.resizeHandler("onResizeStop",d),onStart:o.resizeHandler("onResizeStart",d),onDrag:o.resizeHandler("onResize",d)}),o.renderResizeHandle(d,g))}))}))},t}(He.Component);qe.default=Yt;Yt.propTypes=ii.resizableProps;Yt.defaultProps={axis:"both",handleSize:[20,20],lockAspectRatio:!1,minConstraints:[20,20],maxConstraints:[1/0,1/0],resizeHandles:["se"],transformScale:1};var it={};it.__esModule=!0;it.default=void 0;var gt=yi(L),pi=Xr(pe),hi=Xr(qe),gi=ke,mi=["handle","handleSize","onResize","onResizeStart","onResizeStop","draggableOpts","minConstraints","maxConstraints","lockAspectRatio","axis","width","height","resizeHandles","style","transformScale"];function Xr(e){return e&&e.__esModule?e:{default:e}}function Fr(e){if(typeof WeakMap!="function")return null;var t=new WeakMap,r=new WeakMap;return(Fr=function(o){return o?r:t})(e)}function yi(e,t){if(e&&e.__esModule)return e;if(e===null||typeof e!="object"&&typeof e!="function")return{default:e};var r=Fr(t);if(r&&r.has(e))return r.get(e);var n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if(i!=="default"&&Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(n,i,a):n[i]=e[i]}return n.default=e,r&&r.set(e,n),n}function Dt(){return Dt=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Dt.apply(this,arguments)}function fr(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Xe(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?fr(Object(r),!0).forEach(function(n){vi(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):fr(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function vi(e,t,r){return t=bi(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function bi(e){var t=wi(e,"string");return typeof t=="symbol"?t:String(t)}function wi(e,t){if(typeof e!="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Si(e,t){if(e==null)return{};var r={},n=Object.keys(e),o,i;for(i=0;i<n.length;i++)o=n[i],!(t.indexOf(o)>=0)&&(r[o]=e[o]);return r}function xi(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,_t(e,t)}function _t(e,t){return _t=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,o){return n.__proto__=o,n},_t(e,t)}var Ur=function(e){xi(t,e);function t(){for(var n,o=arguments.length,i=new Array(o),a=0;a<o;a++)i[a]=arguments[a];return n=e.call.apply(e,[this].concat(i))||this,n.state={width:n.props.width,height:n.props.height,propsWidth:n.props.width,propsHeight:n.props.height},n.onResize=function(l,s){var u=s.size;n.props.onResize?(l.persist==null||l.persist(),n.setState(u,function(){return n.props.onResize&&n.props.onResize(l,s)})):n.setState(u)},n}t.getDerivedStateFromProps=function(o,i){return i.propsWidth!==o.width||i.propsHeight!==o.height?{width:o.width,height:o.height,propsWidth:o.width,propsHeight:o.height}:null};var r=t.prototype;return r.render=function(){var o=this.props,i=o.handle,a=o.handleSize;o.onResize;var l=o.onResizeStart,s=o.onResizeStop,u=o.draggableOpts,c=o.minConstraints,d=o.maxConstraints,f=o.lockAspectRatio,g=o.axis;o.width,o.height;var w=o.resizeHandles,S=o.style,R=o.transformScale,p=Si(o,mi);return gt.createElement(hi.default,{axis:g,draggableOpts:u,handle:i,handleSize:a,height:this.state.height,lockAspectRatio:f,maxConstraints:d,minConstraints:c,onResizeStart:l,onResize:this.onResize,onResizeStop:s,resizeHandles:w,transformScale:R,width:this.state.width},gt.createElement("div",Dt({},p,{style:Xe(Xe({},S),{},{width:this.state.width+"px",height:this.state.height+"px"})})))},t}(gt.Component);it.default=Ur;Ur.propTypes=Xe(Xe({},gi.resizableProps),{},{children:pi.default.element});ot.exports=function(){throw new Error("Don't instantiate Resizable directly! Use require('react-resizable').Resizable")};ot.exports.Resizable=qe.default;ot.exports.ResizableBox=it.default;var Ri=ot.exports,ce={};Object.defineProperty(ce,"__esModule",{value:!0});ce.resizeHandleType=ce.resizeHandleAxesType=ce.default=void 0;var O=Vr(pe),Di=Vr(L);function Vr(e){return e&&e.__esModule?e:{default:e}}const _i=ce.resizeHandleAxesType=O.default.arrayOf(O.default.oneOf(["s","w","e","n","sw","nw","se","ne"])),Oi=ce.resizeHandleType=O.default.oneOfType([O.default.node,O.default.func]);ce.default={className:O.default.string,style:O.default.object,width:O.default.number,autoSize:O.default.bool,cols:O.default.number,draggableCancel:O.default.string,draggableHandle:O.default.string,verticalCompact:function(e){e.verticalCompact},compactType:O.default.oneOf(["vertical","horizontal"]),layout:function(e){var t=e.layout;t!==void 0&&E.validateLayout(t,"layout")},margin:O.default.arrayOf(O.default.number),containerPadding:O.default.arrayOf(O.default.number),rowHeight:O.default.number,maxRows:O.default.number,isBounded:O.default.bool,isDraggable:O.default.bool,isResizable:O.default.bool,allowOverlap:O.default.bool,preventCollision:O.default.bool,useCSSTransforms:O.default.bool,transformScale:O.default.number,isDroppable:O.default.bool,resizeHandles:_i,resizeHandle:Oi,onLayoutChange:O.default.func,onDragStart:O.default.func,onDrag:O.default.func,onDragStop:O.default.func,onResizeStart:O.default.func,onResize:O.default.func,onResizeStop:O.default.func,onDrop:O.default.func,droppingItem:O.default.shape({i:O.default.string.isRequired,w:O.default.number.isRequired,h:O.default.number.isRequired}),children:function(e,t){const r=e[t],n={};Di.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:O.default.any};Object.defineProperty(Qe,"__esModule",{value:!0});Qe.default=void 0;var Re=Xt(L),pr=Ct,z=Xt(pe),Pi=Gr,Ei=Ri,De=E,X=se,hr=ce,Ci=Xt(Ke);function Xt(e){return e&&e.__esModule?e:{default:e}}function ae(e,t,r){return(t=zi(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function zi(e){var t=Mi(e,"string");return typeof t=="symbol"?t:t+""}function Mi(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}class Ft extends Re.default.Component{constructor(){super(...arguments),ae(this,"state",{resizing:null,dragging:null,className:""}),ae(this,"elementRef",Re.default.createRef()),ae(this,"onDragStart",(t,r)=>{let{node:n}=r;const{onDragStart:o,transformScale:i}=this.props;if(!o)return;const a={top:0,left:0},{offsetParent:l}=n;if(!l)return;const s=l.getBoundingClientRect(),u=n.getBoundingClientRect(),c=u.left/i,d=s.left/i,f=u.top/i,g=s.top/i;a.left=c-d+l.scrollLeft,a.top=f-g+l.scrollTop,this.setState({dragging:a});const{x:w,y:S}=(0,X.calcXY)(this.getPositionParams(),a.top,a.left,this.props.w,this.props.h);return o.call(this,this.props.i,w,S,{e:t,node:n,newPosition:a})}),ae(this,"onDrag",(t,r,n)=>{let{node:o,deltaX:i,deltaY:a}=r;const{onDrag:l}=this.props;if(!l)return;if(!this.state.dragging)throw new Error("onDrag called before onDragStart.");let s=this.state.dragging.top+a,u=this.state.dragging.left+i;const{isBounded:c,i:d,w:f,h:g,containerWidth:w}=this.props,S=this.getPositionParams();if(c){const{offsetParent:y}=o;if(y){const{margin:b,rowHeight:h}=this.props,P=y.clientHeight-(0,X.calcGridItemWHPx)(g,h,b[1]);s=(0,X.clamp)(s,0,P);const $=(0,X.calcGridColWidth)(S),W=w-(0,X.calcGridItemWHPx)(f,$,b[0]);u=(0,X.clamp)(u,0,W)}}const R={top:s,left:u};n?this.setState({dragging:R}):(0,pr.flushSync)(()=>{this.setState({dragging:R})});const{x:p,y:v}=(0,X.calcXY)(S,s,u,f,g);return l.call(this,d,p,v,{e:t,node:o,newPosition:R})}),ae(this,"onDragStop",(t,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:a,i:l}=this.props,{left:s,top:u}=this.state.dragging,c={top:u,left:s};this.setState({dragging:null});const{x:d,y:f}=(0,X.calcXY)(this.getPositionParams(),u,s,i,a);return o.call(this,l,d,f,{e:t,node:n,newPosition:c})}),ae(this,"onResizeStop",(t,r,n)=>this.onResizeHandler(t,r,n,"onResizeStop")),ae(this,"onResizeStart",(t,r,n)=>this.onResizeHandler(t,r,n,"onResizeStart")),ae(this,"onResize",(t,r,n)=>this.onResizeHandler(t,r,n,"onResize"))}shouldComponentUpdate(t,r){if(this.props.children!==t.children||this.props.droppingPosition!==t.droppingPosition)return!0;const n=(0,X.calcGridItemPosition)(this.getPositionParams(this.props),this.props.x,this.props.y,this.props.w,this.props.h,this.state),o=(0,X.calcGridItemPosition)(this.getPositionParams(t),t.x,t.y,t.w,t.h,r);return!(0,De.fastPositionEqual)(n,o)||this.props.useCSSTransforms!==t.useCSSTransforms}componentDidMount(){this.moveDroppingItem({})}componentDidUpdate(t){this.moveDroppingItem(t)}moveDroppingItem(t){const{droppingPosition:r}=this.props;if(!r)return;const n=this.elementRef.current;if(!n)return;const o=t.droppingPosition||{left:0,top:0},{dragging:i}=this.state,a=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(a){const l=r.left-i.left,s=r.top-i.top;this.onDrag(r.e,{node:n,deltaX:l,deltaY:s},!0)}}getPositionParams(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.props;return{cols:t.cols,containerPadding:t.containerPadding,containerWidth:t.containerWidth,margin:t.margin,maxRows:t.maxRows,rowHeight:t.rowHeight}}createStyle(t){const{usePercentages:r,containerWidth:n,useCSSTransforms:o}=this.props;let i;return o?i=(0,De.setTransform)(t):(i=(0,De.setTopLeft)(t),r&&(i.left=(0,De.perc)(t.left/n),i.width=(0,De.perc)(t.width/n))),i}mixinDraggable(t,r){return Re.default.createElement(Pi.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},t)}curryResizeHandler(t,r){return(n,o)=>r(n,o,t)}mixinResizable(t,r,n){const{cols:o,minW:i,minH:a,maxW:l,maxH:s,transformScale:u,resizeHandles:c,resizeHandle:d}=this.props,f=this.getPositionParams(),g=(0,X.calcGridItemPosition)(f,0,0,o,0).width,w=(0,X.calcGridItemPosition)(f,0,0,i,a),S=(0,X.calcGridItemPosition)(f,0,0,l,s),R=[w.width,w.height],p=[Math.min(S.width,g),Math.min(S.height,1/0)];return Re.default.createElement(Ei.Resizable,{draggableOpts:{disabled:!n},className:n?void 0:"react-resizable-hide",width:r.width,height:r.height,minConstraints:R,maxConstraints:p,onResizeStop:this.curryResizeHandler(r,this.onResizeStop),onResizeStart:this.curryResizeHandler(r,this.onResizeStart),onResize:this.curryResizeHandler(r,this.onResize),transformScale:u,resizeHandles:c,handle:d},t)}onResizeHandler(t,r,n,o){let{node:i,size:a,handle:l}=r;const s=this.props[o];if(!s)return;const{x:u,y:c,i:d,maxH:f,minH:g,containerWidth:w}=this.props,{minW:S,maxW:R}=this.props;let p=a;i&&(p=(0,De.resizeItemInDirection)(l,n,a,w),(0,pr.flushSync)(()=>{this.setState({resizing:o==="onResizeStop"?null:p})}));let{w:v,h:y}=(0,X.calcWH)(this.getPositionParams(),p.width,p.height,u,c,l);v=(0,X.clamp)(v,Math.max(S,1),R),y=(0,X.clamp)(y,g,f),s.call(this,d,v,y,{e:t,node:i,size:p,handle:l})}render(){const{x:t,y:r,w:n,h:o,isDraggable:i,isResizable:a,droppingPosition:l,useCSSTransforms:s}=this.props,u=(0,X.calcGridItemPosition)(this.getPositionParams(),t,r,n,o,this.state),c=Re.default.Children.only(this.props.children);let d=Re.default.cloneElement(c,{ref:this.elementRef,className:(0,Ci.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:!!l,cssTransforms:s}),style:{...this.props.style,...c.props.style,...this.createStyle(u)}});return d=this.mixinResizable(d,u,a),d=this.mixinDraggable(d,i),d}}Qe.default=Ft;ae(Ft,"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(e,t){const r=e[t];if(typeof r!="number")return new Error("minWidth not Number");if(r>e.w||r>e.maxW)return new Error("minWidth larger than item width/maxWidth")},maxW:function(e,t){const r=e[t];if(typeof r!="number")return new Error("maxWidth not Number");if(r<e.w||r<e.minW)return new Error("maxWidth smaller than item width/minWidth")},minH:function(e,t){const r=e[t];if(typeof r!="number")return new Error("minHeight not Number");if(r>e.h||r>e.maxH)return new Error("minHeight larger than item height/maxHeight")},maxH:function(e,t){const r=e[t];if(typeof r!="number")return new Error("maxHeight not Number");if(r<e.h||r<e.minH)return new Error("maxHeight smaller than item height/minHeight")},i:z.default.string.isRequired,resizeHandles:hr.resizeHandleAxesType,resizeHandle:hr.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})});ae(Ft,"defaultProps",{className:"",cancel:"",handle:"",minH:1,minW:1,maxH:1/0,maxW:1/0,transformScale:1});Object.defineProperty(Ne,"__esModule",{value:!0});Ne.default=void 0;var me=Kr(L),mt=Mt,ji=Ut(Ke),x=E,Ti=se,gr=Ut(Qe),Hi=Ut(ce);function Ut(e){return e&&e.__esModule?e:{default:e}}function Kr(e,t){if(typeof WeakMap=="function")var r=new WeakMap,n=new WeakMap;return(Kr=function(o,i){if(!i&&o&&o.__esModule)return o;var a,l,s={__proto__:null,default:o};if(o===null||typeof o!="object"&&typeof o!="function")return s;if(a=i?n:r){if(a.has(o))return a.get(o);a.set(o,s)}for(const u in o)u!=="default"&&{}.hasOwnProperty.call(o,u)&&((l=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,u))&&(l.get||l.set)?a(s,u,l):s[u]=o[u]);return s})(e,t)}function U(e,t,r){return(t=$i(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function $i(e){var t=Li(e,"string");return typeof t=="symbol"?t:t+""}function Li(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}const mr="react-grid-layout";let Zr=!1;try{Zr=/firefox/i.test(navigator.userAgent)}catch{}class at extends me.Component{constructor(){super(...arguments),U(this,"state",{activeDrag:null,layout:(0,x.synchronizeLayoutWithChildren)(this.props.layout,this.props.children,this.props.cols,(0,x.compactType)(this.props),this.props.allowOverlap),mounted:!1,oldDragItem:null,oldLayout:null,oldResizeItem:null,resizing:!1,droppingDOMNode:null,children:[]}),U(this,"dragEnterCounter",0),U(this,"onDragStart",(t,r,n,o)=>{let{e:i,node:a}=o;const{layout:l}=this.state,s=(0,x.getLayoutItem)(l,t);if(!s)return;const u={w:s.w,h:s.h,x:s.x,y:s.y,placeholder:!0,i:t};return this.setState({oldDragItem:(0,x.cloneLayoutItem)(s),oldLayout:l,activeDrag:u}),this.props.onDragStart(l,s,s,null,i,a)}),U(this,"onDrag",(t,r,n,o)=>{let{e:i,node:a}=o;const{oldDragItem:l}=this.state;let{layout:s}=this.state;const{cols:u,allowOverlap:c,preventCollision:d}=this.props,f=(0,x.getLayoutItem)(s,t);if(!f)return;const g={w:f.w,h:f.h,x:f.x,y:f.y,placeholder:!0,i:t};s=(0,x.moveElement)(s,f,r,n,!0,d,(0,x.compactType)(this.props),u,c),this.props.onDrag(s,l,f,g,i,a),this.setState({layout:c?s:(0,x.compact)(s,(0,x.compactType)(this.props),u),activeDrag:g})}),U(this,"onDragStop",(t,r,n,o)=>{let{e:i,node:a}=o;if(!this.state.activeDrag)return;const{oldDragItem:l}=this.state;let{layout:s}=this.state;const{cols:u,preventCollision:c,allowOverlap:d}=this.props,f=(0,x.getLayoutItem)(s,t);if(!f)return;s=(0,x.moveElement)(s,f,r,n,!0,c,(0,x.compactType)(this.props),u,d);const w=d?s:(0,x.compact)(s,(0,x.compactType)(this.props),u);this.props.onDragStop(w,l,f,null,i,a);const{oldLayout:S}=this.state;this.setState({activeDrag:null,layout:w,oldDragItem:null,oldLayout:null}),this.onLayoutMaybeChanged(w,S)}),U(this,"onResizeStart",(t,r,n,o)=>{let{e:i,node:a}=o;const{layout:l}=this.state,s=(0,x.getLayoutItem)(l,t);s&&(this.setState({oldResizeItem:(0,x.cloneLayoutItem)(s),oldLayout:this.state.layout,resizing:!0}),this.props.onResizeStart(l,s,s,null,i,a))}),U(this,"onResize",(t,r,n,o)=>{let{e:i,node:a,size:l,handle:s}=o;const{oldResizeItem:u}=this.state,{layout:c}=this.state,{cols:d,preventCollision:f,allowOverlap:g}=this.props;let w=!1,S,R,p;const[v,y]=(0,x.withLayoutItem)(c,t,h=>{let P;return R=h.x,p=h.y,["sw","w","nw","n","ne"].indexOf(s)!==-1&&(["sw","nw","w"].indexOf(s)!==-1&&(R=h.x+(h.w-r),r=h.x!==R&&R<0?h.w:r,R=R<0?0:R),["ne","n","nw"].indexOf(s)!==-1&&(p=h.y+(h.h-n),n=h.y!==p&&p<0?h.h:n,p=p<0?0:p),w=!0),f&&!g&&(P=(0,x.getAllCollisions)(c,{...h,w:r,h:n,x:R,y:p}).filter(W=>W.i!==h.i).length>0,P&&(p=h.y,n=h.h,R=h.x,r=h.w,w=!1)),h.w=r,h.h=n,h});if(!y)return;S=v,w&&(S=(0,x.moveElement)(v,y,R,p,!0,this.props.preventCollision,(0,x.compactType)(this.props),d,g));const b={w:y.w,h:y.h,x:y.x,y:y.y,static:!0,i:t};this.props.onResize(S,u,y,b,i,a),this.setState({layout:g?S:(0,x.compact)(S,(0,x.compactType)(this.props),d),activeDrag:b})}),U(this,"onResizeStop",(t,r,n,o)=>{let{e:i,node:a}=o;const{layout:l,oldResizeItem:s}=this.state,{cols:u,allowOverlap:c}=this.props,d=(0,x.getLayoutItem)(l,t),f=c?l:(0,x.compact)(l,(0,x.compactType)(this.props),u);this.props.onResizeStop(f,s,d,null,i,a);const{oldLayout:g}=this.state;this.setState({activeDrag:null,layout:f,oldResizeItem:null,oldLayout:null,resizing:!1}),this.onLayoutMaybeChanged(f,g)}),U(this,"onDragOver",t=>{var v;if(t.preventDefault(),t.stopPropagation(),Zr&&!((v=t.nativeEvent.target)!=null&&v.classList.contains(mr)))return!1;const{droppingItem:r,onDropDragOver:n,margin:o,cols:i,rowHeight:a,maxRows:l,width:s,containerPadding:u,transformScale:c}=this.props,d=n==null?void 0:n(t);if(d===!1)return this.state.droppingDOMNode&&this.removeDroppingPlaceholder(),!1;const f={...r,...d},{layout:g}=this.state,w=t.currentTarget.getBoundingClientRect(),S=t.clientX-w.left,R=t.clientY-w.top,p={left:S/c,top:R/c,e:t};if(this.state.droppingDOMNode){if(this.state.droppingPosition){const{left:y,top:b}=this.state.droppingPosition;(y!=S||b!=R)&&this.setState({droppingPosition:p})}}else{const y={cols:i,margin:o,maxRows:l,rowHeight:a,containerWidth:s,containerPadding:u||o},b=(0,Ti.calcXY)(y,R,S,f.w,f.h);this.setState({droppingDOMNode:me.createElement("div",{key:f.i}),droppingPosition:p,layout:[...g,{...f,x:b.x,y:b.y,static:!1,isDraggable:!0}]})}}),U(this,"removeDroppingPlaceholder",()=>{const{droppingItem:t,cols:r}=this.props,{layout:n}=this.state,o=(0,x.compact)(n.filter(i=>i.i!==t.i),(0,x.compactType)(this.props),r,this.props.allowOverlap);this.setState({layout:o,droppingDOMNode:null,activeDrag:null,droppingPosition:void 0})}),U(this,"onDragLeave",t=>{t.preventDefault(),t.stopPropagation(),this.dragEnterCounter--,this.dragEnterCounter===0&&this.removeDroppingPlaceholder()}),U(this,"onDragEnter",t=>{t.preventDefault(),t.stopPropagation(),this.dragEnterCounter++}),U(this,"onDrop",t=>{t.preventDefault(),t.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,t)})}componentDidMount(){this.setState({mounted:!0}),this.onLayoutMaybeChanged(this.state.layout,this.props.layout)}static getDerivedStateFromProps(t,r){let n;return r.activeDrag?null:(!(0,mt.deepEqual)(t.layout,r.propsLayout)||t.compactType!==r.compactType?n=t.layout:(0,x.childrenEqual)(t.children,r.children)||(n=r.layout),n?{layout:(0,x.synchronizeLayoutWithChildren)(n,t.children,t.cols,(0,x.compactType)(t),t.allowOverlap),compactType:t.compactType,children:t.children,propsLayout:t.layout}:null)}shouldComponentUpdate(t,r){return this.props.children!==t.children||!(0,x.fastRGLPropsEqual)(this.props,t,mt.deepEqual)||this.state.activeDrag!==r.activeDrag||this.state.mounted!==r.mounted||this.state.droppingPosition!==r.droppingPosition}componentDidUpdate(t,r){if(!this.state.activeDrag){const n=this.state.layout,o=r.layout;this.onLayoutMaybeChanged(n,o)}}containerHeight(){if(!this.props.autoSize)return;const t=(0,x.bottom)(this.state.layout),r=this.props.containerPadding?this.props.containerPadding[1]:this.props.margin[1];return t*this.props.rowHeight+(t-1)*this.props.margin[1]+r*2+"px"}onLayoutMaybeChanged(t,r){r||(r=this.state.layout),(0,mt.deepEqual)(r,t)||this.props.onLayoutChange(t)}placeholder(){const{activeDrag:t}=this.state;if(!t)return null;const{width:r,cols:n,margin:o,containerPadding:i,rowHeight:a,maxRows:l,useCSSTransforms:s,transformScale:u}=this.props;return me.createElement(gr.default,{w:t.w,h:t.h,x:t.x,y:t.y,i:t.i,className:`react-grid-placeholder ${this.state.resizing?"placeholder-resizing":""}`,containerWidth:r,cols:n,margin:o,containerPadding:i||o,maxRows:l,rowHeight:a,isDraggable:!1,isResizable:!1,isBounded:!1,useCSSTransforms:s,transformScale:u},me.createElement("div",null))}processGridItem(t,r){if(!t||!t.key)return;const n=(0,x.getLayoutItem)(this.state.layout,String(t.key));if(!n)return null;const{width:o,cols:i,margin:a,containerPadding:l,rowHeight:s,maxRows:u,isDraggable:c,isResizable:d,isBounded:f,useCSSTransforms:g,transformScale:w,draggableCancel:S,draggableHandle:R,resizeHandles:p,resizeHandle:v}=this.props,{mounted:y,droppingPosition:b}=this.state,h=typeof n.isDraggable=="boolean"?n.isDraggable:!n.static&&c,P=typeof n.isResizable=="boolean"?n.isResizable:!n.static&&d,$=n.resizeHandles||p,W=h&&f&&n.isBounded!==!1;return me.createElement(gr.default,{containerWidth:o,cols:i,margin:a,containerPadding:l||a,maxRows:u,rowHeight:s,cancel:S,handle:R,onDragStop:this.onDragStop,onDragStart:this.onDragStart,onDrag:this.onDrag,onResizeStart:this.onResizeStart,onResize:this.onResize,onResizeStop:this.onResizeStop,isDraggable:h,isResizable:P,isBounded:W,useCSSTransforms:g&&y,usePercentages:!y,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?b:void 0,resizeHandles:$,resizeHandle:v},t)}render(){const{className:t,style:r,isDroppable:n,innerRef:o}=this.props,i=(0,ji.default)(mr,t),a={height:this.containerHeight(),...r};return me.createElement("div",{ref:o,className:i,style:a,onDrop:n?this.onDrop:x.noop,onDragLeave:n?this.onDragLeave:x.noop,onDragEnter:n?this.onDragEnter:x.noop,onDragOver:n?this.onDragOver:x.noop},me.Children.map(this.props.children,l=>this.processGridItem(l)),n&&this.state.droppingDOMNode&&this.processGridItem(this.state.droppingDOMNode,!0),this.placeholder())}}Ne.default=at;U(at,"displayName","ReactGridLayout");U(at,"propTypes",Hi.default);U(at,"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:x.noop,onDragStart:x.noop,onDrag:x.noop,onDragStop:x.noop,onResizeStart:x.noop,onResize:x.noop,onResizeStop:x.noop,onDrop:x.noop,onDropDragOver:x.noop});var st={},xe={};Object.defineProperty(xe,"__esModule",{value:!0});xe.findOrGenerateResponsiveLayout=qi;xe.getBreakpointFromWidth=Wi;xe.getColsFromBreakpoint=Ni;xe.sortBreakpoints=Vt;var Be=E;function Wi(e,t){const r=Vt(e);let n=r[0];for(let o=1,i=r.length;o<i;o++){const a=r[o];t>e[a]&&(n=a)}return n}function Ni(e,t){if(!t[e])throw new Error("ResponsiveReactGridLayout: `cols` entry for breakpoint "+e+" is missing!");return t[e]}function qi(e,t,r,n,o,i){if(e[r])return(0,Be.cloneLayout)(e[r]);let a=e[n];const l=Vt(t),s=l.slice(l.indexOf(r));for(let u=0,c=s.length;u<c;u++){const d=s[u];if(e[d]){a=e[d];break}}return a=(0,Be.cloneLayout)(a||[]),(0,Be.compact)((0,Be.correctBounds)(a,{cols:o}),i,o)}function Vt(e){return Object.keys(e).sort(function(r,n){return e[r]-e[n]})}Object.defineProperty(st,"__esModule",{value:!0});st.default=void 0;var yr=Qr(L),Z=Jr(pe),yt=Mt,Pe=E,ye=xe,ki=Jr(Ne);function Jr(e){return e&&e.__esModule?e:{default:e}}function Qr(e,t){if(typeof WeakMap=="function")var r=new WeakMap,n=new WeakMap;return(Qr=function(o,i){if(!i&&o&&o.__esModule)return o;var a,l,s={__proto__:null,default:o};if(o===null||typeof o!="object"&&typeof o!="function")return s;if(a=i?n:r){if(a.has(o))return a.get(o);a.set(o,s)}for(const u in o)u!=="default"&&{}.hasOwnProperty.call(o,u)&&((l=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,u))&&(l.get||l.set)?a(s,u,l):s[u]=o[u]);return s})(e,t)}function Ot(){return Ot=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Ot.apply(null,arguments)}function Fe(e,t,r){return(t=Ii(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ii(e){var t=Ai(e,"string");return typeof t=="symbol"?t:t+""}function Ai(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}const vr=e=>Object.prototype.toString.call(e);function Ge(e,t){return e==null?null:Array.isArray(e)?e:e[t]}class Kt extends yr.Component{constructor(){super(...arguments),Fe(this,"state",this.generateInitialState()),Fe(this,"onLayoutChange",t=>{this.props.onLayoutChange(t,{...this.props.layouts,[this.state.breakpoint]:t})})}generateInitialState(){const{width:t,breakpoints:r,layouts:n,cols:o}=this.props,i=(0,ye.getBreakpointFromWidth)(r,t),a=(0,ye.getColsFromBreakpoint)(i,o),l=this.props.verticalCompact===!1?null:this.props.compactType;return{layout:(0,ye.findOrGenerateResponsiveLayout)(n,r,i,i,a,l),breakpoint:i,cols:a}}static getDerivedStateFromProps(t,r){if(!(0,yt.deepEqual)(t.layouts,r.layouts)){const{breakpoint:n,cols:o}=r;return{layout:(0,ye.findOrGenerateResponsiveLayout)(t.layouts,t.breakpoints,n,n,o,t.compactType),layouts:t.layouts}}return null}componentDidUpdate(t){(this.props.width!=t.width||this.props.breakpoint!==t.breakpoint||!(0,yt.deepEqual)(this.props.breakpoints,t.breakpoints)||!(0,yt.deepEqual)(this.props.cols,t.cols))&&this.onWidthChange(t)}onWidthChange(t){const{breakpoints:r,cols:n,layouts:o,compactType:i}=this.props,a=this.props.breakpoint||(0,ye.getBreakpointFromWidth)(this.props.breakpoints,this.props.width),l=this.state.breakpoint,s=(0,ye.getColsFromBreakpoint)(a,n),u={...o};if(l!==a||t.breakpoints!==r||t.cols!==n){l in u||(u[l]=(0,Pe.cloneLayout)(this.state.layout));let f=(0,ye.findOrGenerateResponsiveLayout)(u,r,a,l,s,i);f=(0,Pe.synchronizeLayoutWithChildren)(f,this.props.children,s,i,this.props.allowOverlap),u[a]=f,this.props.onBreakpointChange(a,s),this.props.onLayoutChange(f,u),this.setState({breakpoint:a,layout:f,cols:s})}const c=Ge(this.props.margin,a),d=Ge(this.props.containerPadding,a);this.props.onWidthChange(this.props.width,c,s,d)}render(){const{breakpoint:t,breakpoints:r,cols:n,layouts:o,margin:i,containerPadding:a,onBreakpointChange:l,onLayoutChange:s,onWidthChange:u,...c}=this.props;return yr.createElement(ki.default,Ot({},c,{margin:Ge(i,this.state.breakpoint),containerPadding:Ge(a,this.state.breakpoint),onLayoutChange:this.onLayoutChange,layout:this.state.layout,cols:this.state.cols}))}}st.default=Kt;Fe(Kt,"propTypes",{breakpoint:Z.default.string,breakpoints:Z.default.object,allowOverlap:Z.default.bool,cols:Z.default.object,margin:Z.default.oneOfType([Z.default.array,Z.default.object]),containerPadding:Z.default.oneOfType([Z.default.array,Z.default.object]),layouts(e,t){if(vr(e[t])!=="[object Object]")throw new Error("Layout property must be an object. Received: "+vr(e[t]));Object.keys(e[t]).forEach(r=>{if(!(r in e.breakpoints))throw new Error("Each key in layouts must align with a key in breakpoints.");(0,Pe.validateLayout)(e.layouts[r],"layouts."+r)})},width:Z.default.number.isRequired,onBreakpointChange:Z.default.func,onLayoutChange:Z.default.func,onWidthChange:Z.default.func});Fe(Kt,"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:Pe.noop,onLayoutChange:Pe.noop,onWidthChange:Pe.noop});var Zt={},en=function(){if(typeof Map<"u")return Map;function e(t,r){var n=-1;return t.some(function(o,i){return o[0]===r?(n=i,!0):!1}),n}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(r){var n=e(this.__entries__,r),o=this.__entries__[n];return o&&o[1]},t.prototype.set=function(r,n){var o=e(this.__entries__,r);~o?this.__entries__[o][1]=n:this.__entries__.push([r,n])},t.prototype.delete=function(r){var n=this.__entries__,o=e(n,r);~o&&n.splice(o,1)},t.prototype.has=function(r){return!!~e(this.__entries__,r)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(r,n){n===void 0&&(n=null);for(var o=0,i=this.__entries__;o<i.length;o++){var a=i[o];r.call(n,a[1],a[0])}},t}()}(),Pt=typeof window<"u"&&typeof document<"u"&&window.document===document,Ue=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")()}(),Bi=function(){return typeof requestAnimationFrame=="function"?requestAnimationFrame.bind(Ue):function(e){return setTimeout(function(){return e(Date.now())},1e3/60)}}(),Gi=2;function Yi(e,t){var r=!1,n=!1,o=0;function i(){r&&(r=!1,e()),n&&l()}function a(){Bi(i)}function l(){var s=Date.now();if(r){if(s-o<Gi)return;n=!0}else r=!0,n=!1,setTimeout(a,t);o=s}return l}var Xi=20,Fi=["top","right","bottom","left","width","height","size","weight"],Ui=typeof MutationObserver<"u",Vi=function(){function e(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=Yi(this.refresh.bind(this),Xi)}return e.prototype.addObserver=function(t){~this.observers_.indexOf(t)||this.observers_.push(t),this.connected_||this.connect_()},e.prototype.removeObserver=function(t){var r=this.observers_,n=r.indexOf(t);~n&&r.splice(n,1),!r.length&&this.connected_&&this.disconnect_()},e.prototype.refresh=function(){var t=this.updateObservers_();t&&this.refresh()},e.prototype.updateObservers_=function(){var t=this.observers_.filter(function(r){return r.gatherActive(),r.hasActive()});return t.forEach(function(r){return r.broadcastActive()}),t.length>0},e.prototype.connect_=function(){!Pt||this.connected_||(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),Ui?(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)},e.prototype.disconnect_=function(){!Pt||!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)},e.prototype.onTransitionEnd_=function(t){var r=t.propertyName,n=r===void 0?"":r,o=Fi.some(function(i){return!!~n.indexOf(i)});o&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),tn=function(e,t){for(var r=0,n=Object.keys(t);r<n.length;r++){var o=n[r];Object.defineProperty(e,o,{value:t[o],enumerable:!1,writable:!1,configurable:!0})}return e},Ee=function(e){var t=e&&e.ownerDocument&&e.ownerDocument.defaultView;return t||Ue},rn=lt(0,0,0,0);function Ve(e){return parseFloat(e)||0}function br(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return t.reduce(function(n,o){var i=e["border-"+o+"-width"];return n+Ve(i)},0)}function Ki(e){for(var t=["top","right","bottom","left"],r={},n=0,o=t;n<o.length;n++){var i=o[n],a=e["padding-"+i];r[i]=Ve(a)}return r}function Zi(e){var t=e.getBBox();return lt(0,0,t.width,t.height)}function Ji(e){var t=e.clientWidth,r=e.clientHeight;if(!t&&!r)return rn;var n=Ee(e).getComputedStyle(e),o=Ki(n),i=o.left+o.right,a=o.top+o.bottom,l=Ve(n.width),s=Ve(n.height);if(n.boxSizing==="border-box"&&(Math.round(l+i)!==t&&(l-=br(n,"left","right")+i),Math.round(s+a)!==r&&(s-=br(n,"top","bottom")+a)),!ea(e)){var u=Math.round(l+i)-t,c=Math.round(s+a)-r;Math.abs(u)!==1&&(l-=u),Math.abs(c)!==1&&(s-=c)}return lt(o.left,o.top,l,s)}var Qi=function(){return typeof SVGGraphicsElement<"u"?function(e){return e instanceof Ee(e).SVGGraphicsElement}:function(e){return e instanceof Ee(e).SVGElement&&typeof e.getBBox=="function"}}();function ea(e){return e===Ee(e).document.documentElement}function ta(e){return Pt?Qi(e)?Zi(e):Ji(e):rn}function ra(e){var t=e.x,r=e.y,n=e.width,o=e.height,i=typeof DOMRectReadOnly<"u"?DOMRectReadOnly:Object,a=Object.create(i.prototype);return tn(a,{x:t,y:r,width:n,height:o,top:r,right:t+n,bottom:o+r,left:t}),a}function lt(e,t,r,n){return{x:e,y:t,width:r,height:n}}var na=function(){function e(t){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=lt(0,0,0,0),this.target=t}return e.prototype.isActive=function(){var t=ta(this.target);return this.contentRect_=t,t.width!==this.broadcastWidth||t.height!==this.broadcastHeight},e.prototype.broadcastRect=function(){var t=this.contentRect_;return this.broadcastWidth=t.width,this.broadcastHeight=t.height,t},e}(),oa=function(){function e(t,r){var n=ra(r);tn(this,{target:t,contentRect:n})}return e}(),ia=function(){function e(t,r,n){if(this.activeObservations_=[],this.observations_=new en,typeof t!="function")throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=t,this.controller_=r,this.callbackCtx_=n}return e.prototype.observe=function(t){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if(!(typeof Element>"u"||!(Element instanceof Object))){if(!(t instanceof Ee(t).Element))throw new TypeError('parameter 1 is not of type "Element".');var r=this.observations_;r.has(t)||(r.set(t,new na(t)),this.controller_.addObserver(this),this.controller_.refresh())}},e.prototype.unobserve=function(t){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if(!(typeof Element>"u"||!(Element instanceof Object))){if(!(t instanceof Ee(t).Element))throw new TypeError('parameter 1 is not of type "Element".');var r=this.observations_;r.has(t)&&(r.delete(t),r.size||this.controller_.removeObserver(this))}},e.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},e.prototype.gatherActive=function(){var t=this;this.clearActive(),this.observations_.forEach(function(r){r.isActive()&&t.activeObservations_.push(r)})},e.prototype.broadcastActive=function(){if(this.hasActive()){var t=this.callbackCtx_,r=this.activeObservations_.map(function(n){return new oa(n.target,n.broadcastRect())});this.callback_.call(t,r,t),this.clearActive()}},e.prototype.clearActive=function(){this.activeObservations_.splice(0)},e.prototype.hasActive=function(){return this.activeObservations_.length>0},e}(),nn=typeof WeakMap<"u"?new WeakMap:new en,on=function(){function e(t){if(!(this instanceof e))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=Vi.getInstance(),n=new ia(t,r,this);nn.set(this,n)}return e}();["observe","unobserve","disconnect"].forEach(function(e){on.prototype[e]=function(){var t;return(t=nn.get(this))[e].apply(t,arguments)}});var aa=function(){return typeof Ue.ResizeObserver<"u"?Ue.ResizeObserver:on}();const sa=Object.freeze(Object.defineProperty({__proto__:null,default:aa},Symbol.toStringTag,{value:"Module"})),la=Sr(sa);Object.defineProperty(Zt,"__esModule",{value:!0});Zt.default=ga;var Ye=an(L),ua=Jt(pe),ca=Jt(la),da=Jt(Ke);function Jt(e){return e&&e.__esModule?e:{default:e}}function an(e,t){if(typeof WeakMap=="function")var r=new WeakMap,n=new WeakMap;return(an=function(o,i){if(!i&&o&&o.__esModule)return o;var a,l,s={__proto__:null,default:o};if(o===null||typeof o!="object"&&typeof o!="function")return s;if(a=i?n:r){if(a.has(o))return a.get(o);a.set(o,s)}for(const u in o)u!=="default"&&{}.hasOwnProperty.call(o,u)&&((l=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,u))&&(l.get||l.set)?a(s,u,l):s[u]=o[u]);return s})(e,t)}function Et(){return Et=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Et.apply(null,arguments)}function _e(e,t,r){return(t=fa(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function fa(e){var t=pa(e,"string");return typeof t=="symbol"?t:t+""}function pa(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}const ha="react-grid-layout";function ga(e){var t;return t=class extends Ye.Component{constructor(){super(...arguments),_e(this,"state",{width:1280}),_e(this,"elementRef",Ye.createRef()),_e(this,"mounted",!1),_e(this,"resizeObserver",void 0)}componentDidMount(){this.mounted=!0,this.resizeObserver=new ca.default(o=>{if(this.elementRef.current instanceof HTMLElement){const a=o[0].contentRect.width;this.setState({width:a})}});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{measureBeforeMount:n,...o}=this.props;return n&&!this.mounted?Ye.createElement("div",{className:(0,da.default)(this.props.className,ha),style:this.props.style,ref:this.elementRef}):Ye.createElement(e,Et({innerRef:this.elementRef},o,this.state))}},_e(t,"defaultProps",{measureBeforeMount:!1}),_e(t,"propTypes",{measureBeforeMount:ua.default.bool}),t}(function(e){e.exports=Ne.default,e.exports.utils=E,e.exports.calculateUtils=se,e.exports.Responsive=st.default,e.exports.Responsive.utils=xe,e.exports.WidthProvider=Zt.default})(Rr);var sn=Rr.exports;const ma=xn(sn),ya=sn.WidthProvider(ma),va=re("div")(({theme:e})=>({"& .react-grid-item":{borderRadius:`${e.shape.borderRadiusMedium}px`},"& .grid-item-drag-handle":{[e.breakpoints.down("md")]:{display:"none"}}})),ba=({items:e,onLayoutChange:t,cols:r={lg:12,md:12,sm:6,xs:4,xxs:2},rowHeight:n=180})=>{const o=Rn(),i=Dn(o.breakpoints.down("md")),a=L.useMemo(()=>{if(i){let u=0;return e.map(c=>{const d={i:c.id,x:0,y:u,w:r.xs,h:c.h??4,minW:r.xs,minH:c.minH??3,maxW:r.xs,maxH:c.maxH??8,static:!1};return u+=d.h,d})}return e.map((u,c)=>({i:u.id,x:u.x??c%Math.floor(r.lg/(u.w??4))*(u.w??4),y:u.y??Math.floor(c/Math.floor(r.lg/(u.w??4)))*(u.h??4),w:u.w??4,h:u.h??4,minW:u.minW??4,minH:u.minH??3,maxW:u.maxW??12,maxH:u.maxH??8,static:u.static??!1}))},[e,r,i]),l=L.useMemo(()=>e.map(u=>C.jsx("div",{children:u.component},u.id)),[e]),s=L.useCallback(u=>{i||t==null||t(u)},[t,i]);return C.jsx(va,{children:C.jsx(ya,{className:"impact-metrics-grid",layout:a,cols:i?r.xs:r.lg,rowHeight:n,margin:[Number.parseInt(o.spacing(2)),Number.parseInt(o.spacing(2))],containerPadding:[0,0],isDraggable:!i,isResizable:!i,onLayoutChange:s,resizeHandles:["se"],draggableHandle:".grid-item-drag-handle",compactType:i?null:"vertical",preventCollision:!1,useCSSTransforms:!0,autoSize:!0,allowOverlap:!1,children:l})})},wa=()=>{const e="api/admin/impact-metrics/settings",{data:t,refetch:r,loading:n,error:o}=_n(nr(e),()=>On(nr(e),"Impact metrics settings"));return{settings:t||{charts:[],layout:[]},refetch:r,loading:n,error:o}},Sa=()=>{const{makeRequest:e,createRequest:t,errors:r,loading:n}=Pn({propagateErrors:!0});return{updateSettings:L.useCallback(async i=>{const l=t("api/admin/impact-metrics/settings",{method:"PUT",body:JSON.stringify(i)},"updateImpactMetricsSettings");return e(l.caller,l.id)},[e,t]),errors:r,loading:n}},xa=()=>{const{settings:e,loading:t,error:r,refetch:n}=wa(),{updateSettings:o,loading:i,errors:a}=Sa(),l=L.useCallback(async d=>{const f={...d,id:`chart-${Date.now()}-${Math.random().toString(36).substr(2,9)}`},g=e.layout.length>0?Math.max(...e.layout.map(S=>S.y+S.h)):0,w={charts:[...e.charts,f],layout:[...e.layout,{i:f.id,x:0,y:g,w:6,h:4,minW:4,minH:2,maxW:12,maxH:8}]};await o(w),n()},[e,o,n]),s=L.useCallback(async(d,f)=>{const w={charts:e.charts.map(S=>S.id===d?{...S,...f}:S),layout:e.layout};await o(w),n()},[e,o,n]),u=L.useCallback(async d=>{const f={charts:e.charts.filter(g=>g.id!==d),layout:e.layout.filter(g=>g.i!==d)};await o(f),n()},[e,o,n]),c=L.useCallback(async d=>{const f={charts:e.charts,layout:d};await o(f),n()},[e,o,n]);return{charts:e.charts||[],layout:e.layout||[],loading:t||i,error:r||Object.keys(a).length>0?a:void 0,addChart:l,updateChart:s,deleteChart:u,updateLayout:c}},Ra=re(wr)(({theme:e})=>({textAlign:"center",padding:e.spacing(8),backgroundColor:e.palette.background.default,borderRadius:`${e.shape.borderRadiusMedium}px`,boxShadow:"none"})),Da=()=>{const[e,t]=L.useState(!1),[r,n]=L.useState(),{setToastApiError:o}=En(),{charts:i,layout:a,loading:l,error:s,addChart:u,updateChart:c,deleteChart:d,updateLayout:f}=xa(),{metadata:g,loading:w,error:S}=Mn(),R=L.useMemo(()=>g!=null&&g.series?Object.entries(g.series).map(([T,q])=>({name:T,...q})):[],[g]),p=()=>{n(void 0),t(!0)},v=T=>{n(T),t(!0)},y=async T=>{try{r?await c(r.id,T):await u(T),t(!1)}catch(q){o(ct(q))}},b=L.useCallback(async T=>{try{await f(T)}catch(q){o(ct(q))}},[f,o]),h=L.useCallback(async T=>{try{await d(T)}catch(q){o(ct(q))}},[d]),P=L.useMemo(()=>i.map((T,q)=>{const G=a==null?void 0:a.find(ze=>ze.i===T.id);return{id:T.id,component:C.jsx(Yn,{config:T,onEdit:v,onDelete:h}),w:(G==null?void 0:G.w)??6,h:(G==null?void 0:G.h)??4,x:G==null?void 0:G.x,y:G==null?void 0:G.y,minW:4,minH:2,maxW:12,maxH:8}}),[i,a,v,h]),$=S||s,W=w||l;return C.jsxs(C.Fragment,{children:[C.jsx(Cn,{title:"Impact Metrics",titleElement:C.jsx(We,{variant:"h1",component:"span",children:"Impact Metrics"}),actions:C.jsx(or,{variant:"contained",startIcon:C.jsx(ir,{}),onClick:p,disabled:W||!!$,children:"Add Chart"})}),i.length===0&&!W&&!$?C.jsxs(Ra,{children:[C.jsx(We,{variant:"h6",gutterBottom:!0,children:"No charts configured"}),C.jsx(We,{variant:"body2",color:"text.secondary",sx:{mb:3},children:"Add your first impact metrics chart to start tracking performance with a beautiful drag-and-drop grid layout"}),C.jsx(or,{variant:"contained",startIcon:C.jsx(ir,{}),onClick:p,disabled:W||!!$,children:"Add Chart"})]}):i.length>0?C.jsx(ba,{items:P,onLayoutChange:b}):null,C.jsx(jn,{open:e,onClose:()=>t(!1),onSave:y,initialConfig:r,metricSeries:R,loading:w||l})]})},_a=re("div")(({theme:e})=>({paddingTop:e.spacing(2)})),Oa=re("div")(({theme:e})=>({display:"flex",flexDirection:"column",gap:e.spacing(4),paddingBottom:e.spacing(4)})),Ma=()=>C.jsx(_a,{children:C.jsx(Oa,{children:C.jsx(Da,{})})});export{Ma as ImpactMetricsPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{jo as g,s as p,b as u,bs as y,r as c,j as r,jp as b,C as j,jq as S,jr as C,i$ as m,j0 as f,j1 as w,ji as L,js as v,jl as A,j4 as I,j5 as R,jm as h,jn as k}from"./index-B913vdKQ.js";const z={position:"bottom",labels:{boxWidth:12,padding:30,generateLabels:t=>{var s;const a=t.data.datasets,{labels:{usePointStyle:e,pointStyle:o,textAlign:n,color:i}}=((s=t==null?void 0:t.legend)==null?void 0:s.options)||{labels:{}};return t._getSortedDatasetMetas().map(l=>{const d=l.controller.getStyle(e?0:void 0);return{text:a[l.index].label,fillStyle:d.borderColor,fontColor:i,hidden:!l.visible,lineWidth:0,borderRadius:6,strokeStyle:d.borderColor,pointStyle:o||d.pointStyle,textAlign:n||d.textAlign,datasetIndex:l.index}})}}},T=(t,a,e,o)=>({responsive:!0,...o?{animation:{duration:0}}:{},plugins:{legend:{...z,display:!o},tooltip:{enabled:!1,position:"nearest",external:g(e)}},locale:a.locale,interaction:{intersect:!1,axis:"xy",mode:"nearest"},elements:{point:{radius:0,hitRadius:15}},color:t.palette.text.secondary,scales:{y:{beginAtZero:!0,type:"linear",grid:{color:t.palette.divider,borderColor:t.palette.divider},ticks:{color:t.palette.text.secondary,display:!o,precision:0}},x:{type:"time",time:{unit:"week",tooltipFormat:"PPP"},grid:{color:"transparent",borderColor:"transparent"},ticks:{color:t.palette.text.secondary,display:!o,source:"data",maxRotation:90,minRotation:23.5}}}}),E=p("div")(({theme:t})=>({position:"relative"})),P=p("div")(({theme:t})=>({position:"absolute",inset:0,display:"flex",zIndex:t.zIndex.appBar,"&::before":{zIndex:t.zIndex.fab,content:'""',position:"absolute",inset:0,backgroundColor:t.palette.background.paper,opacity:.8}})),_=p("div")(({theme:t})=>({zIndex:t.zIndex.modal,margin:"auto",color:t.palette.text.secondary,textAlign:"center"})),B={id:"customLine",afterDraw:t=>{var e;if((e=t.tooltip)!=null&&e.opacity&&t.tooltip.x){const o=t.tooltip.caretX,n=t.scales.y,i=t.ctx;i.save();const s=i.createLinearGradient(o,n.top,o,n.bottom);s.addColorStop(0,"rgba(129, 122, 254, 0)"),s.addColorStop(1,"rgba(129, 122, 254, 0.12)"),i.fillStyle=s,i.fillRect(o-26/2,n.top,26,n.bottom-n.top),i.restore()}}};function D(t){return k.all(t.filter(a=>a))}const W=({data:t,aspectRatio:a=2.5,cover:e,overrideOptions:o,TooltipComponent:n})=>{const i=u(),{locationSettings:s}=y(),[l,d]=c.useState(null),x=c.useMemo(()=>D([T(i,s,d,!!e),o??{}]),[i,s,d,o,e]);return r.jsxs(E,{children:[r.jsx(b,{options:x,data:t,plugins:[B],height:100,width:100*a},e?"cover":"chart"),r.jsx(j,{condition:!e,show:n?r.jsx(S,{tooltip:l,children:r.jsx(n,{tooltip:l})}):r.jsx(C,{tooltip:l}),elseShow:r.jsx(P,{children:r.jsx(_,{children:e!==!0?e:" "})})})]})};m.register(f,w,L,v,A,I,R,h);export{W as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as c,bs as E,j as e,N as d,c0 as v,jx as f,bc as y,b9 as B,ci as q,r as A,bb as I,cS as F,cc as P,C as p,V as x,L as j,j6 as _,i$ as M,j0 as N,j1 as $,j2 as k,j3 as z,j4 as H,j5 as O}from"./index-B913vdKQ.js";import{a as W}from"./formatTickValue-BWf1DDmZ.js";import{u as Y,a as G,B as V,S as J,T as K,P as Q,c as X,g as Z}from"./useChartDataSelection-BEqlLU2R.js";import{p as ee,c as l}from"./LazyAdminExport-wSkT6Q_Q.js";import"./RoleCell-Rw6ESv3h.js";import"./useApiTokens-B4D233gG.js";const S=c("article")(({theme:s})=>({minWidth:"200px",border:`2px solid ${s.palette.divider}`,borderRadius:s.shape.borderRadiusLarge,padding:s.spacing(3),display:"flex",flexDirection:"column",gap:s.spacing(2)})),T=c("h3")(({theme:s})=>({margin:0,fontSize:s.typography.body1.fontSize})),w=c("dl")(({theme:s})=>({display:"flex",flexDirection:"column",gap:s.spacing(2.5),padding:0,margin:0})),a=c("div")(({theme:s})=>({display:"flex",flexFlow:"row wrap",justifyContent:"space-between",gap:s.spacing(1,3),fontSize:s.typography.body2.fontSize,color:s.palette.text.secondary,"& dd":{margin:0,color:s.palette.text.primary}})),se=s=>{const r=t=>t.toLocaleString("en-US",{month:"short",year:"numeric"});if(s.grouping==="monthly"){const t=new Date,n=f(t,s.monthsBack),o=f(t,1);return`Average requests from ${r(n)} to ${r(o)}`}return`Requests used in ${r(ee(s.month))}`},te=({period:s,usageTotal:r,includedTraffic:t,purchasedTraffic:n,currentMonth:o})=>{const{locationSettings:i}=E();return e.jsxs(S,{children:[e.jsx(T,{children:"Number of requests to Unleash"}),e.jsxs(w,{children:[e.jsxs(a,{children:[e.jsx("dt",{children:se(s)}),e.jsx("dd",{children:e.jsxs(d,{color:t>0?r<=t?"success":"error":"neutral",children:[r.toLocaleString(i.locale??"en-US")," ","requests"]})})]}),t>0&&e.jsxs(a,{children:[e.jsx("dt",{children:"Included in your plan"}),e.jsxs("dd",{children:[t.toLocaleString("en-US")," requests"]})]}),n>0&&o&&e.jsxs(a,{children:[e.jsx("dt",{children:"Additional traffic purchased"}),e.jsxs("dd",{children:[n.toLocaleString("en-US")," requests"]})]}),t>0&&o&&e.jsxs(a,{children:[e.jsx("dt",{children:"Total traffic available"}),e.jsxs("dd",{children:[(t+n).toLocaleString("en-US")," ","requests"]})]})]})]})},ne=({overages:s,overageCost:r,estimatedMonthlyCost:t})=>e.jsxs(S,{children:[e.jsx(T,{children:"Accrued traffic charges"}),e.jsxs(w,{children:[e.jsxs(a,{children:[e.jsxs("dt",{children:["Request overages this month (",e.jsx(v,{href:"https://www.getunleash.io/pricing",children:"pricing"}),")"]}),e.jsxs("dd",{children:[s.toLocaleString()," requests"]})]}),e.jsxs(a,{children:[e.jsx("dt",{children:"Accrued traffic charges"}),e.jsx("dd",{children:e.jsxs(d,{color:"secondary",children:[r," USD"]})})]}),t>0&&e.jsxs(a,{children:[e.jsx("dt",{children:"Estimated charges based on current usage"}),e.jsx("dd",{children:e.jsxs(d,{color:"secondary",children:[t," USD"]})})]})]})]}),re=53,oe=259,m=1e6,ae=(s,r)=>!s||r==="pay-as-you-go"?re:oe;function ie(s,r,t){return s===void 0?ae(r,t):s}function ce(s){return s===void 0?0:s}const le=()=>{const{isEnterprise:s,uiConfig:r}=y(),t=B("/api/instance/trafficBundles"),{data:n,error:o,mutate:i}=q(t,de);return{trafficBundles:A.useMemo(()=>({includedTraffic:ie(n==null?void 0:n.includedTraffic,s(),r.billing)*m,purchasedTraffic:ce(n==null?void 0:n.purchasedTraffic)*m}),[n]),loading:!o&&!n,refetch:i}},de=s=>fetch(s).then(I("configuration")).then(r=>r.json()),ue=c("div")(({theme:s})=>({display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(200px, max-content))",flex:1,gap:s.spacing(2,4)})),me=()=>{F("Network - Data Usage");const s=P("estimateTrafficDataCost"),{isOss:r}=y(),{trafficBundles:t}=le(),n=t.includedTraffic+t.purchasedTraffic,{chartDataSelection:o,setChartDataSelection:i,options:u}=Y(n),{chartData:C,usageTotal:h,overageCost:g,estimatedMonthlyCost:b,requestSummaryUsage:L}=G(n,o),U=o.grouping==="daily"&&o.month===l&&n>0&&h-n>0&&s,D=o.grouping==="daily"&&o.month===l,R=(o.grouping==="monthly"||o.month===l)&&n>0&&g>0;return e.jsx(p,{condition:r(),show:e.jsx(x,{severity:"warning",children:"Not enabled."}),elseShow:e.jsxs(e.Fragment,{children:[e.jsx(p,{condition:R,show:e.jsxs(x,{severity:"warning",sx:{mb:4},children:[e.jsx(V,{children:"Heads up!"})," You are currently consuming more requests than your plan includes and will be billed according to our terms. Please see"," ",e.jsx(j,{to:"https://www.getunleash.io/pricing",children:"this page"})," ","for more information. In order to reduce your traffic consumption, you may configure an"," ",e.jsx(j,{to:"https://docs.getunleash.io/reference/unleash-edge",children:"Unleash Edge instance"})," ","in your own datacenter."]})}),e.jsxs(J,{children:[e.jsxs(K,{children:[e.jsxs(ue,{children:[e.jsx(te,{period:o,usageTotal:L,includedTraffic:t.includedTraffic,purchasedTraffic:t.purchasedTraffic,currentMonth:D}),U&&e.jsx(ne,{overageCost:g,overages:h-n,estimatedMonthlyCost:b})]}),e.jsx(Q,{selectedPeriod:o,setPeriod:i})]}),e.jsx(_,{data:C,plugins:[X()],options:u,"aria-label":Z(o)})]})]})})};M.register(W,N,$,k,z,H,O);export{me as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{G as U,H as N,j as c,e6 as L,jx as P,e4 as W,s as d,i as G,J,r as u,e3 as B,B as H,ha as V,jy as O,jz as M,jA as X,fL as Y,e7 as w,ci as I,b9 as A,bb as T,e1 as K,d6 as Q,b as Z,bs as tt}from"./index-B913vdKQ.js";import{a as g,f,T as et,p as C,b,d as ot,c as at,u as rt,B as nt,e as st,g as lt,h as it}from"./LazyAdminExport-wSkT6Q_Q.js";import{f as ct}from"./formatTickValue-BWf1DDmZ.js";const zt=(t=34)=>({id:"customLine",beforeDraw:e=>{var r,o,a,n;if((r=e.tooltip)!=null&&r.opacity&&e.tooltip.x){const s=e.tooltip.caretX,l=e.scales.y,i=e.ctx;i.save();const p=i.createLinearGradient(s,l.top,s,l.bottom+34);p.addColorStop(0,"rgba(129, 122, 254, 0)"),p.addColorStop(1,"rgba(129, 122, 254, 0.12)"),i.fillStyle=p;const h=e.width/(((o=e.data.labels)==null?void 0:o.length)??1)*(((n=(a=e.options.datasets)==null?void 0:a.bar)==null?void 0:n.categoryPercentage)??1);i.roundRect(s-h/2,l.top,h,l.bottom-l.top+t,5),i.fill(),i.restore()}}});var x={},dt=N;Object.defineProperty(x,"__esModule",{value:!0});var $=x.default=void 0,ut=dt(U()),pt=c,gt=(0,ut.default)((0,pt.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");$=x.default=gt;const j=(t,e,r=!0)=>{const o=t.getFullYear(),a=t.getMonth(),n=f(t),s=W(t);return{key:n,year:o,month:a,dayCount:s,shortLabel:t.toLocaleString("en-US",{month:"short"}),label:e||t.toLocaleString("en-US",{month:"long",year:"numeric"}),selectable:r}},ht=t=>{const e=[j(t,"Current month")],r=L(t);for(let o=1;o<12;o++){const a=P(r,o);e.push(j(a,void 0,a>=et))}return e},S=ht(g),bt=Object.fromEntries(S.map(t=>[t.key,t])),q="15rem",v=t=>t.spacing(3),F=d("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}})),mt=d(F)(({theme:t})=>({":disabled":{cursor:"default",color:t.palette.text.disabled}})),yt=d(F)(({theme:t})=>({width:"100%",paddingBlock:t.spacing(1),textAlign:"left",borderRadius:0,paddingInline:v(t)})),ft=d(G)(({theme:t})=>({whiteSpace:"nowrap",width:q,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=d("article")(({theme:t})=>({width:q,paddingBlock:t.spacing(2),display:"flex",flexFlow:"column",gap:t.spacing(2)})),xt=d("article")(({theme:t})=>({paddingInline:v(t)})),St=d("hgroup")(({theme:t})=>({h3:{margin:0,fontSize:t.typography.h3.fontSize},p:{color:t.palette.text.secondary,fontSize:t.typography.body2.fontSize}})),vt=d("ul")(({theme:t})=>({listStyle:"none",padding:0,display:"grid",gridTemplateColumns:"repeat(4, 1fr)",rowGap:t.spacing(1)})),Dt=d("article")(({theme:t})=>({display:"flex",width:"100%",flexFlow:"column",gap:t.spacing(.5)})),Rt=d("p")(({theme:t})=>({paddingInline:v(t),fontSize:t.typography.body2.fontSize,margin:0,color:t.palette.text.secondary,fontWeight:"bold"})),Mt=d("ul")(({theme:t})=>({listStyle:"none",margin:0,padding:0,width:"100%",li:{width:"100%"}})),wt=d(J)(({theme:t})=>({"& .MuiPaper-root":{borderRadius:t.shape.borderRadiusLarge,border:`1px solid ${t.palette.divider}`}})),Ut=({selectedPeriod:t,setPeriod:e})=>{const r=[3,6,12].map(i=>({value:i,label:`Last ${i} months`})),[o,a]=u.useState(!1),n=u.useRef(null),s=i=>{e(i),a(!1)},l=t.grouping==="daily"?t.month===B(new Date,"yyyy-MM")?"Current month":C(t.month).toLocaleDateString("en-US",{month:"long",year:"numeric"}):`Last ${t.monthsBack} months`;return c.jsxs(H,{ref:n,children:[c.jsx(ft,{endIcon:o?c.jsx($,{}):c.jsx(V,{}),variant:"outlined",disableRipple:!0,onClick:()=>a(!0),children:l}),c.jsxs(wt,{open:o,anchorEl:n.current,onClose:()=>a(!1),anchorOrigin:{vertical:"bottom",horizontal:"center"},transformOrigin:{vertical:"top",horizontal:"center"},children:[c.jsxs(Ct,{children:[c.jsxs(xt,{children:[c.jsxs(St,{children:[c.jsx("h3",{children:"Select month"}),c.jsx("p",{children:"Last 12 months"})]}),c.jsx(vt,{children:S.map(i=>c.jsx("li",{children:c.jsx(mt,{selected:t.grouping==="daily"&&i.key===t.month,disabled:!i.selectable,onClick:()=>{s({grouping:"daily",month:i.key})},children:i.shortLabel})},i.label))})]}),c.jsxs(Dt,{children:[c.jsx(Rt,{children:"Range"}),c.jsx(Mt,{children:r.map(i=>c.jsx("li",{children:c.jsxs(yt,{selected:t.grouping==="monthly"&&i.value===t.monthsBack,type:"button",onClick:()=>{s({grouping:"monthly",monthsBack:i.value})},children:["Last ",i.value," months"]})},i.label))})]})]})," "]})]})},m={"/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}=D(t);return{datasets:t.apiData.filter(n=>!0).sort((n,s)=>m[n.apiPath].order-m[s.apiPath].order).map(n=>{const s=r();for(const i of Object.values(n.dataPoints))s[i.period]=i.trafficTypes[0].count;const l=m[n.apiPath];return{label:l.label,data:Object.values(s),backgroundColor:l.color,hoverBackgroundColor:l.color}}),labels:o}},kt=t=>{const{newRecord:e,labels:r}=D(t);return{datasets:t.apiData.map(a=>{const n=e();for(const l of Object.values(a.dataPoints)){const i=l.connections;n[l.period]=i}const s={label:"Connections",color:"#6D66D9",order:1};return{label:s.label,data:Object.values(n),backgroundColor:s.color,hoverBackgroundColor:s.color}}),labels:r}},Lt=t=>{const{newRecord:e,labels:r}=D(t);return{datasets:t.apiData.map(a=>{const n=e();for(const l of Object.values(a.dataPoints)){const i=l.requests;n[l.period]=i}const s={label:"Frontend requests",color:"#A39EFF",order:1};return{label:s.label,data:Object.values(n),backgroundColor:s.color,hoverBackgroundColor:s.color}}),labels:r}},D=t=>{if(t.grouping==="monthly"){const e=b(t.dateRange.from),r=b(t.dateRange.to),o=Math.abs(O(r,e))+1,a={};for(let s=0;s<o;s++)a[f(M(e,s))]=0;const n=Array.from({length:o}).map((s,l)=>l===o-1?"Current month":f(M(e,l)));return{newRecord:()=>({...a}),labels:n}}else{const e=b(t.dateRange.from),r=b(t.dateRange.to),o=Math.abs(X(r,e))+1,a={};for(let s=0;s<o;s++)a[ot(Y(e,s))]=0;const n=Array.from({length:o}).map((s,l)=>(l+1).toString());return{newRecord:()=>({...a}),labels:n}}},[Pt,...Bt]=Object.values(m).map(t=>t.label.toLowerCase()).toReversed(),k=`${Bt.toReversed().join(", ")}, and ${Pt}`,Nt=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 ${k} requests.`:`A bar chart showing monthly total traffic usage for the current month and the preceding ${t.monthsBack} months. Each month shows ${k} requests.`,R=(t,e=new Date)=>{const r=o=>B(o,"yyyy-MM-dd");if(t.grouping==="daily"){const o=C(t.month),a=r(o),n=r(w(o));return{from:a,to:n}}else{const o=r(L(P(e,t.monthsBack))),a=r(w(e));return{from:o,to:a}}},Ot=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!==at).reduce((a,n)=>a+n.trafficTypes[0].count,0)).reduce((o,a)=>o+a,0);return Math.round(r/e)},It=(t,{from:e,to:r})=>{const o=`api/admin/metrics/connection?grouping=${t}&from=${e}&to=${r}`,{data:a,error:n,mutate:s}=I(A(o),At);return u.useMemo(()=>({refetch:()=>s(),result:a?{state:"success",data:a}:n?{state:"error",error:n}:{state:"loading"}}),[a,n,s])},At=t=>fetch(t).then(T("Metered Connections Metrics")).then(e=>e.json()),Tt=(t,{from:e,to:r})=>{const o=`api/admin/metrics/request?grouping=${t}&from=${e}&to=${r}`,{data:a,error:n,mutate:s}=I(A(o),$t);return u.useMemo(()=>({refetch:()=>s(),result:a?{state:"success",data:a}:n?{state:"error",error:n}:{state:"loading"}}),[a,n,s])},$t=t=>fetch(t).then(T("Consumption Requests Metrics")).then(e=>e.json()),Wt=(t,e,r)=>{var l,i;const{result:o}=rt(e.grouping,R(e,g)),{instanceStatus:a}=K(),n=((i=(l=a==null?void 0:a.prices)==null?void 0:l[(a==null?void 0:a.billing)==="pay-as-you-go"?"payg":"pro"])==null?void 0:i.traffic)??nt;return u.useMemo(()=>{if(o.state!=="success")return{chartData:{datasets:[],labels:[]},usageTotal:0,overageCost:0,estimatedMonthlyCost:0,requestSummaryUsage:0};const p=o.data,h=jt(p),y=st(p),E=lt(y,t,n),_=it(p.apiData,t,g,n),z=e.grouping==="daily"?y:Ot(p);return{chartData:h,usageTotal:y,overageCost:E,estimatedMonthlyCost:_,requestSummaryUsage:z}},[JSON.stringify(o),t,JSON.stringify(e),n])},Gt=t=>{const{result:e}=It(t.grouping,R(t,g));return u.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}=Tt(t.grouping,R(t,g));return u.useMemo(()=>{if(e.state!=="success")return{chartData:{datasets:[],labels:[]}};const o=e.data;return{chartData:Lt(o)}},[JSON.stringify(e),JSON.stringify(t)])},Ht=d(Q)(({theme:t})=>({display:"grid",gap:t.spacing(5)})),Vt=d("div")(({theme:t})=>({display:"flex",flexFlow:"row wrap",justifyContent:"space-between",gap:t.spacing(2,4),alignItems:"start"})),Xt=d("span")(({theme:t})=>({fontWeight:"bold"})),qt=(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:ct},grid:{drawBorder:!1}}},elements:{bar:{borderRadius:5}},interaction:{mode:"index",intersect:!1}}),Yt=t=>{const e=Z(),{locationSettings:r}=tt(),[o,a]=u.useState({grouping:"daily",month:S[0].key}),n=u.useMemo(()=>qt(e,s=>{if(o.grouping==="daily"){const l=bt[o.month];return new Date(l.year,l.month,Number.parseInt(s[0].label)).toLocaleDateString((r==null?void 0:r.locale)??"en-US",{month:"long",day:"numeric",year:"numeric"})}else{const l=C(s[0].label);return Number.isNaN(l.getTime())?"Current month to date":l.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:n}};export{Xt as B,Ut as P,Ht as S,Vt as T,Wt as a,Gt as b,zt as c,Jt as d,Nt as g,Yt as u};
|