unleash-server 8.0.1 → 8.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/addons/addon.d.ts +10 -2
- package/dist/lib/addons/addon.d.ts.map +1 -1
- package/dist/lib/addons/addon.js +104 -6
- package/dist/lib/addons/addon.js.map +1 -1
- package/dist/lib/addons/datadog-definition.js +1 -1
- package/dist/lib/addons/datadog-definition.js.map +1 -1
- package/dist/lib/addons/datadog.test.js +2 -0
- package/dist/lib/addons/datadog.test.js.map +1 -1
- package/dist/lib/addons/index.d.ts.map +1 -1
- package/dist/lib/addons/index.js +2 -0
- package/dist/lib/addons/index.js.map +1 -1
- package/dist/lib/addons/new-relic.d.ts.map +1 -1
- package/dist/lib/addons/new-relic.js +0 -1
- package/dist/lib/addons/new-relic.js.map +1 -1
- package/dist/lib/addons/new-relic.test.js +0 -1
- package/dist/lib/addons/new-relic.test.js.map +1 -1
- package/dist/lib/addons/slack.test.js +1 -2
- package/dist/lib/addons/slack.test.js.map +1 -1
- package/dist/lib/addons/teams-definition.d.ts.map +1 -1
- package/dist/lib/addons/teams-definition.js +1 -0
- package/dist/lib/addons/teams-definition.js.map +1 -1
- package/dist/lib/addons/teams-workflow-definition.d.ts +4 -0
- package/dist/lib/addons/teams-workflow-definition.d.ts.map +1 -0
- package/dist/lib/addons/teams-workflow-definition.js +66 -0
- package/dist/lib/addons/teams-workflow-definition.js.map +1 -0
- package/dist/lib/addons/teams-workflow.d.ts +15 -0
- package/dist/lib/addons/teams-workflow.d.ts.map +1 -0
- package/dist/lib/addons/teams-workflow.js +110 -0
- package/dist/lib/addons/teams-workflow.js.map +1 -0
- package/dist/lib/addons/teams-workflow.test.d.ts +2 -0
- package/dist/lib/addons/teams-workflow.test.d.ts.map +1 -0
- package/dist/lib/addons/teams-workflow.test.js +202 -0
- package/dist/lib/addons/teams-workflow.test.js.map +1 -0
- package/dist/lib/addons/teams.d.ts.map +1 -1
- package/dist/lib/addons/teams.js +0 -1
- package/dist/lib/addons/teams.js.map +1 -1
- package/dist/lib/addons/teams.test.js +0 -1
- package/dist/lib/addons/teams.test.js.map +1 -1
- package/dist/lib/addons/validate-url.d.ts +18 -0
- package/dist/lib/addons/validate-url.d.ts.map +1 -0
- package/dist/lib/addons/validate-url.js +93 -0
- package/dist/lib/addons/validate-url.js.map +1 -0
- package/dist/lib/addons/validate-url.test.d.ts +2 -0
- package/dist/lib/addons/validate-url.test.d.ts.map +1 -0
- package/dist/lib/addons/validate-url.test.js +199 -0
- package/dist/lib/addons/validate-url.test.js.map +1 -0
- package/dist/lib/create-config.d.ts.map +1 -1
- package/dist/lib/create-config.js +7 -0
- package/dist/lib/create-config.js.map +1 -1
- package/dist/lib/error/bad-data-error.d.ts.map +1 -1
- package/dist/lib/error/bad-data-error.js +10 -2
- package/dist/lib/error/bad-data-error.js.map +1 -1
- package/dist/lib/error/unleash-error.test.js +23 -0
- package/dist/lib/error/unleash-error.test.js.map +1 -1
- package/dist/lib/features/frontend-api/frontend-api-service.d.ts.map +1 -1
- package/dist/lib/features/frontend-api/frontend-api-service.js +17 -20
- package/dist/lib/features/frontend-api/frontend-api-service.js.map +1 -1
- package/dist/lib/features/metrics/integrations/integration-metrics.d.ts +1 -1
- package/dist/lib/features/metrics/integrations/integration-metrics.d.ts.map +1 -1
- package/dist/lib/features/metrics/integrations/integration-metrics.js +2 -0
- package/dist/lib/features/metrics/integrations/integration-metrics.js.map +1 -1
- package/dist/lib/middleware/secure-headers.d.ts.map +1 -1
- package/dist/lib/middleware/secure-headers.js +20 -1
- package/dist/lib/middleware/secure-headers.js.map +1 -1
- package/dist/lib/openapi/spec/addon-create-update-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/addon-create-update-schema.js +1 -1
- package/dist/lib/openapi/spec/addons-schema.d.ts +15 -0
- package/dist/lib/openapi/spec/addons-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/addons-schema.js +51 -0
- package/dist/lib/openapi/spec/addons-schema.js.map +1 -1
- package/dist/lib/openapi/spec/profile-schema.d.ts +6 -1
- package/dist/lib/openapi/spec/profile-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/profile-schema.js +13 -1
- package/dist/lib/openapi/spec/profile-schema.js.map +1 -1
- package/dist/lib/openapi/spec/profile-schema.test.js +1 -0
- package/dist/lib/openapi/spec/profile-schema.test.js.map +1 -1
- package/dist/lib/routes/admin-api/addon.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/addon.js +6 -2
- package/dist/lib/routes/admin-api/addon.js.map +1 -1
- package/dist/lib/routes/admin-api/user/user.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/user/user.js +3 -1
- package/dist/lib/routes/admin-api/user/user.js.map +1 -1
- package/dist/lib/routes/admin-api/user/user.test.js +32 -7
- package/dist/lib/routes/admin-api/user/user.test.js.map +1 -1
- package/dist/lib/routes/util.d.ts.map +1 -1
- package/dist/lib/routes/util.js +8 -1
- package/dist/lib/routes/util.js.map +1 -1
- package/dist/lib/routes/util.test.d.ts +2 -0
- package/dist/lib/routes/util.test.d.ts.map +1 -0
- package/dist/lib/routes/util.test.js +18 -0
- package/dist/lib/routes/util.test.js.map +1 -0
- package/dist/lib/schema/html-input.d.ts +4 -0
- package/dist/lib/schema/html-input.d.ts.map +1 -0
- package/dist/lib/schema/html-input.js +38 -0
- package/dist/lib/schema/html-input.js.map +1 -0
- package/dist/lib/schema/html-input.test.d.ts +2 -0
- package/dist/lib/schema/html-input.test.d.ts.map +1 -0
- package/dist/lib/schema/html-input.test.js +98 -0
- package/dist/lib/schema/html-input.test.js.map +1 -0
- package/dist/lib/server-impl.d.ts +2 -1
- package/dist/lib/server-impl.d.ts.map +1 -1
- package/dist/lib/server-impl.js +2 -1
- package/dist/lib/server-impl.js.map +1 -1
- package/dist/lib/services/addon-service.d.ts +8 -1
- package/dist/lib/services/addon-service.d.ts.map +1 -1
- package/dist/lib/services/addon-service.js +24 -1
- package/dist/lib/services/addon-service.js.map +1 -1
- package/dist/lib/services/addon-service.test.js +75 -8
- package/dist/lib/services/addon-service.test.js.map +1 -1
- package/dist/lib/services/project-schema.d.ts +1 -2
- package/dist/lib/services/project-schema.d.ts.map +1 -1
- package/dist/lib/services/project-schema.js +4 -2
- package/dist/lib/services/project-schema.js.map +1 -1
- package/dist/lib/services/user-service.d.ts +1 -0
- package/dist/lib/services/user-service.d.ts.map +1 -1
- package/dist/lib/services/user-service.js +7 -0
- package/dist/lib/services/user-service.js.map +1 -1
- package/dist/lib/types/experimental.d.ts +1 -1
- package/dist/lib/types/experimental.d.ts.map +1 -1
- package/dist/lib/types/experimental.js +21 -0
- package/dist/lib/types/experimental.js.map +1 -1
- package/dist/lib/types/model.d.ts +2 -0
- package/dist/lib/types/model.d.ts.map +1 -1
- package/dist/lib/types/model.js.map +1 -1
- package/dist/lib/types/option.d.ts +4 -0
- package/dist/lib/types/option.d.ts.map +1 -1
- package/dist/lib/ui-config/ui-config-service.d.ts.map +1 -1
- package/dist/lib/ui-config/ui-config-service.js +4 -2
- package/dist/lib/ui-config/ui-config-service.js.map +1 -1
- package/dist/lib/ui-config/ui-config.test.js +21 -2
- package/dist/lib/ui-config/ui-config.test.js.map +1 -1
- package/dist/lib/util/anonymise.d.ts +1 -0
- package/dist/lib/util/anonymise.d.ts.map +1 -1
- package/dist/lib/util/anonymise.js +3 -0
- package/dist/lib/util/anonymise.js.map +1 -1
- package/dist/lib/util/anonymise.test.js +4 -1
- package/dist/lib/util/anonymise.test.js.map +1 -1
- package/dist/migrations/20260617115403-update-flag-descriptions.d.ts +3 -0
- package/dist/migrations/20260617115403-update-flag-descriptions.d.ts.map +1 -0
- package/dist/migrations/20260617115403-update-flag-descriptions.js +38 -0
- package/dist/migrations/20260617115403-update-flag-descriptions.js.map +1 -0
- package/dist/migrations/20260624120000-servicenow-change-references.d.ts +3 -0
- package/dist/migrations/20260624120000-servicenow-change-references.d.ts.map +1 -0
- package/dist/migrations/20260624120000-servicenow-change-references.js +22 -0
- package/dist/migrations/20260624120000-servicenow-change-references.js.map +1 -0
- package/dist/server-dev.js +5 -1
- package/dist/server-dev.js.map +1 -1
- package/dist/test/e2e/api/admin/addon.e2e.test.js +2 -1
- package/dist/test/e2e/api/admin/addon.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/addon-service.e2e.test.js +2 -0
- package/dist/test/e2e/services/addon-service.e2e.test.js.map +1 -1
- package/frontend/build/index.html +2 -2
- package/frontend/build/static/{AdvancedPlayground-BEYkf6Xg.js → AdvancedPlayground-DdeMb-6I.js} +2 -2
- package/frontend/build/static/{BackendConnections-DdvotR_8.js → BackendConnections-kgR0xyIH.js} +1 -1
- package/frontend/build/static/DialogWithAside-DzCSDyWo.js +1110 -0
- package/frontend/build/static/{EnterpriseEdge-DN23kaQp.js → EnterpriseEdge-CjslqYDM.js} +4 -4
- package/frontend/build/static/{FeatureMetricsChart-CmVkRuwG.js → FeatureMetricsChart-B4WryxcW.js} +2 -2
- package/frontend/build/static/FeatureStaleDialog-EzReRTI5.js +8 -0
- package/frontend/build/static/FeatureViewLazyExport-8eQKTvdS.js +10 -0
- package/frontend/build/static/{FlagMetricsChart-ZjHSwulg.js → FlagMetricsChart-hNQuwOxW.js} +2 -2
- package/frontend/build/static/{FrontendNetworkTrafficUsage-BmLOJdK9.js → FrontendNetworkTrafficUsage-pcr83PWo.js} +1 -1
- package/frontend/build/static/GridLayoutWrapper-B_YyjZ7l.js +5 -0
- package/frontend/build/static/{ImpactMetricsPage-D1CETZR_.js → ImpactMetricsPage-DGH_S9oz.js} +1 -1
- package/frontend/build/static/ImpactViewsPage-DZqKPFvE.js +1 -0
- package/frontend/build/static/{LazyAdminExport-BvtR_me3.js → LazyAdminExport-B1ReAViz.js} +15 -15
- package/frontend/build/static/LazyProjectExport-BMVcGpNI.js +46 -0
- package/frontend/build/static/LifecycleChartComponent-BeoRUO9q.js +2 -0
- package/frontend/build/static/{LineChartComponent-d80f3Tky.js → LineChartComponent-BbCMbJ-m.js} +1 -1
- package/frontend/build/static/{MarkCompletedDialogue-CtzRfovJ.js → MarkCompletedDialogue-CcXyp8UE.js} +1 -1
- package/frontend/build/static/{NetworkOverview-D1UOxIaf.js → NetworkOverview-0mBnFAZX.js} +1 -1
- package/frontend/build/static/{NetworkTraffic-CLnhub6c.js → NetworkTraffic-DmG5Iv25.js} +1 -1
- package/frontend/build/static/{NetworkTrafficUsage-PgI0lqze.js → NetworkTrafficUsage-DccaVLYs.js} +1 -1
- package/frontend/build/static/OnboardingProgress-Bp9sZ-ZM.js +1 -0
- package/frontend/build/static/{PercentageDonut-C6I2UOES.js → PercentageDonut-DBDGNJlh.js} +1 -1
- package/frontend/build/static/PermissionButton-B-IfzChn.js +1 -0
- package/frontend/build/static/ReactJSONEditor-DeBI7JPg.js +4 -0
- package/frontend/build/static/RoleCell-DhYvu4YH.js +1 -0
- package/frontend/build/static/Safeguard-DErU6fSK.js +1 -0
- package/frontend/build/static/{SelectSdk-D2NaTubs.js → SelectSdk-Dr_pzQgX.js} +1 -1
- package/frontend/build/static/StoriesPage-frGP1Bfr.js +2 -0
- package/frontend/build/static/{aggregateFeatureMetrics-DBivHCcj.js → aggregateFeatureMetrics-B-67HaIZ.js} +1 -1
- package/frontend/build/static/chartjs-plugin-annotation.esm-DP4wCpdA.js +1 -0
- package/frontend/build/static/differenceInSeconds-DMZGQwjK.js +1 -0
- package/frontend/build/static/endOfMonth-CkSR_DAx.js +1 -0
- package/frontend/build/static/esm-DdgY1Q5s.js +12 -0
- package/frontend/build/static/formatDistanceToNow-CyouiCIY.js +1 -0
- package/frontend/build/static/index-C04TEs4k.js +290 -0
- package/frontend/build/static/{metricsFormatters-BEX2qb8Y.js → metricsFormatters-DhX-aU17.js} +1 -1
- package/frontend/build/static/networkTrafficUsageHighlightPlugin-DlOtHZg3.js +1 -0
- package/frontend/build/static/parse-Chj4PyAg.js +1 -0
- package/frontend/build/static/startOfHour-P0Sr6h8e.js +1 -0
- package/frontend/build/static/themeStyles-DGVpwkcv.js +1 -0
- package/frontend/build/static/{useConditionallyHiddenColumns-DTDzRlyO.js → useConditionallyHiddenColumns-C5q9zdfJ.js} +1 -1
- package/frontend/build/static/useCustomEvent-Dj2V5RVb.js +1 -0
- package/frontend/build/static/{useGroupedImpactMetricsData-CK8Pz2an.js → useGroupedImpactMetricsData-CW9qnV2y.js} +1 -1
- package/frontend/build/static/{useInstanceTrafficMetrics-CIpyIGYi.js → useInstanceTrafficMetrics-CRCDB4TX.js} +1 -1
- package/frontend/package.json +9 -7
- package/package.json +11 -9
- package/frontend/build/static/ChatOutlined-jZlhx14o.js +0 -1
- package/frontend/build/static/CloudCircle-BjnxUYAO.js +0 -1
- package/frontend/build/static/DialogWithAside-BvaGTcqO.js +0 -1106
- package/frontend/build/static/FeatureStaleDialog-BkyjUGR9.js +0 -8
- package/frontend/build/static/FeatureViewLazyExport-C5FggFea.js +0 -10
- package/frontend/build/static/GridLayoutWrapper-D93wkNEo.js +0 -3
- package/frontend/build/static/ImpactViewsPage-DeBga4lU.js +0 -1
- package/frontend/build/static/LazyProjectExport-BkOu6pHf.js +0 -46
- package/frontend/build/static/LifecycleChartComponent-BYvIFr7Q.js +0 -2
- package/frontend/build/static/PermissionButton-BIeM26DH.js +0 -1
- package/frontend/build/static/ReactJSONEditor-C-paZV5Q.js +0 -4
- package/frontend/build/static/RoleCell-BCPNstXC.js +0 -1
- package/frontend/build/static/Safeguard-9zs64Bna.js +0 -1
- package/frontend/build/static/StoriesPage-5lbMiQlA.js +0 -1
- package/frontend/build/static/chartjs-plugin-annotation.esm-BxKcCGhA.js +0 -1
- package/frontend/build/static/esm-CFWP4-MJ.js +0 -15
- package/frontend/build/static/index-BJ2iUk24.js +0 -289
- package/frontend/build/static/networkTrafficUsageHighlightPlugin-DVWh8Lrd.js +0 -1
- package/frontend/build/static/parse-BhYjTMCL.js +0 -1
- package/frontend/build/static/startOfHour-KiLZtdEa.js +0 -1
- package/frontend/build/static/themeStyles-BPY8RNQO.js +0 -1
- package/frontend/build/static/useCustomEvent-CwoY8S5F.js +0 -1
- /package/frontend/build/static/{connect-DbjGV9Hl.png → cr-DbjGV9Hl.png} +0 -0
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{a as e,i as t,n,o as r,r as i,t as a}from"./react-GZhdek4G.js";import{p as o}from"./Grow-BIbmvKVy.js";import{c as s}from"./chunk-QUQL4437-Dr42NpoL.js";import{O as c,t as l}from"./useTheme-CQqAmDLr.js";import{t as u}from"./jsx-runtime-BnvnyDTF.js";import{v as d}from"./createSimplePaletteValueFilter-BRAMrHWJ.js";import{t as f}from"./useMediaQuery-DGx8zAkf.js";import{T as p,b as m,r as h,t as g}from"./TextField-oipjeg6n.js";import{n as _}from"./ConditionallyRender---uTpMBn.js";import{t as v}from"./Alert-_bLyWbvx.js";import{t as y}from"./Typography-BTdLWIUX.js";import{t as b}from"./Box-BQsxfFmC.js";import{t as x}from"./Button-CebB8EPB.js";import{t as S}from"./Dialog-C-xQxqWX.js";import{t as C}from"./FormControlLabel-F5gDLixN.js";import{n as w,o as T}from"./TooltipResolver-4A1YhwBy.js";import{n as E}from"./formatPath-j72gcKwy.js";import{U as D}from"./PermissionButton-BIeM26DH.js";import{n as O,o as k}from"./useCustomEvent-CwoY8S5F.js";import{r as A}from"./FileCopy-B8HZEA83.js";import{n as j,t as M}from"./useApiGetter-7FP8Avm4.js";import{i as N,n as P}from"./metricsFormatters-BEX2qb8Y.js";import{A as F,Gs as I,N as L,O as R,P as z,j as B,qa as ee,to as V,us as te}from"./index-BJ2iUk24.js";var H=u(),ne=({formData:e,actions:t,metrics:n,loading:r,labelsFilter:i})=>{let{pathname:a}=s(),o=a.includes(`/impact-metrics`)?`impact-metrics-page`:`flag-impact-metrics-accordion`;return(0,H.jsxs)(b,{children:[(0,H.jsxs)(b,{sx:e=>({display:`flex`,flexDirection:`column`,gap:e.spacing(3)}),children:[(0,H.jsx)(R,{value:e.metricName,valueSource:e.source,onChange:t.handleSeriesChange,options:n,loading:r,entryPoint:o}),i,e.metricName?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(B,{value:e.timeRange,onChange:t.setTimeRange,children:[(0,H.jsx)(h,{value:`hour`,children:`Last hour`}),(0,H.jsx)(h,{value:`day`,children:`Last 24 hours`}),(0,H.jsx)(h,{value:`week`,children:`Last 7 days`}),(0,H.jsx)(h,{value:`month`,children:`Last 30 days`})]}),(0,H.jsx)(F,{value:e.aggregationMode,onChange:t.setAggregationMode,metricType:e.metricType})]}):null]}),e.metricName?(0,H.jsx)(C,{sx:e=>({margin:e.spacing(1.5,0)}),control:(0,H.jsx)(I,{checked:e.yAxisMin===`zero`,onChange:e=>t.setYAxisMin(e.target.checked?`zero`:`auto`)}),label:`Begin at zero`}):null]})},U=r(a(),1),re=({open:e,initialConfig:t})=>{let[n,r]=(0,U.useState)(t?.title||``),[i,a]=(0,U.useState)(t?.metricName||``),[o,s]=(0,U.useState)(t?.timeRange||`day`),[c,l]=(0,U.useState)(t?.yAxisMin||`auto`),[u,d]=(0,U.useState)(t?.labelSelectors||{}),[f,p]=(0,U.useState)(t?.aggregationMode||P(N(i))),[m,h]=(0,U.useState)(t?.source),{data:{labels:g}}=z(i?{metricName:i,range:o,aggregationMode:f,source:m,mode:`edit`}:void 0);(0,U.useEffect)(()=>{e&&t?(r(t.title||``),a(t.metricName),s(t.timeRange),l(t.yAxisMin),d(t.labelSelectors),p(t.aggregationMode||P(N(t.metricName))),h(t.source)):e&&!t&&(r(``),a(``),s(`day`),l(`auto`),d({}),p(`count`),h(void 0))},[e,t]);let _=e=>{a(e.metricName),h(e.source),d({});let t=N(e.metricName);t!==`unknown`&&p(P(t))},v=()=>({title:n||void 0,metricName:i,timeRange:o,yAxisMin:c,labelSelectors:u,aggregationMode:f,source:m}),y=i.length>0,b=N(i,g?.metric_type);return(0,U.useEffect)(()=>{i!==t?.metricName&&b!==`unknown`&&p(P(b))},[i,b]),{formData:{title:n,metricName:i,metricType:b,timeRange:o,yAxisMin:c,aggregationMode:f,labelSelectors:u,source:m},actions:{setTitle:r,setMetricName:a,setTimeRange:s,setYAxisMin:l,setAggregationMode:p,setLabelSelectors:d,handleSeriesChange:_,getConfigToSave:v},isValid:y,currentAvailableLabels:g}},ie=()=>{let e=`api/admin/impact-metrics/config`,{data:t,refetch:n,loading:r,error:i}=j(E(e),()=>M(E(e),`impactMetricsConfig`));return{configs:t?.configs||[],refetch:n,loading:r,error:i}},ae=e=>{let t=e?`api/admin/projects/${e.projectId}/features/${e.featureName}/impact-metrics/config`:`api/admin/impact-metrics/config`,{makeRequest:n,createRequest:r,errors:i,loading:a}=w({propagateErrors:!0});return{createImpactMetric:(0,U.useCallback)(async e=>{let i=r(t,{method:`POST`,body:JSON.stringify(e)},`updateImpactMetric`);return n(i.caller,i.id)},[n,r]),deleteImpactMetric:(0,U.useCallback)(async e=>{let i=r(`${t}/${e}`,{method:`DELETE`},`deleteImpactMetric`);return n(i.caller,i.id)},[n,r,t]),errors:i,loading:a}},oe=()=>{let{configs:e,loading:t,error:n,refetch:r}=ie(),{layout:i,charts:a}=(0,U.useMemo)(()=>({layout:e.map((e,t)=>{let n=t%2,r=Math.floor(t/2);return{i:e.id,x:n*6,y:r*2,w:6,h:2,minW:4,minH:2,maxW:12,maxH:8}}),charts:e}),[e]),{createImpactMetric:o,deleteImpactMetric:s,loading:c,errors:l}=ae(),u=(0,U.useCallback)(async e=>{await o(e),r()},[o,r]),d=(0,U.useCallback)(async(e,t)=>{await o({...t,id:e}),r()},[e,o,r]),f=(0,U.useCallback)(async e=>{await s(e),r()},[e,s,r]);return{charts:a,layout:i,loading:t||c,error:n||Object.keys(l).length>0?l:void 0,addChart:u,updateChart:d,deleteChart:f}},se=({labelKey:e,options:t,value:n,onChange:r})=>{let i=n.includes(`*`),a=`autocomplete-${e}`,o=t.length>=1e3;return(0,H.jsx)(m,{multiple:!0,disableCloseOnSelect:!0,id:a,options:[`*`,...t],value:i?t:n,getOptionLabel:e=>e===`*`?`(Select all)`:e,onChange:(e,t,n,a)=>{if(a?.option===`*`){r(i?[]:[`*`]);return}r(t.filter(e=>e!==`*`))},renderOption:(e,t,{selected:n})=>{let{key:r,...a}=e;return(0,H.jsxs)(`li`,{...a,children:[(0,H.jsx)(I,{size:`small`,checked:t===`*`?i:n,style:{marginRight:8}}),t===`*`?(0,H.jsx)(y,{component:`span`,sx:{color:`text.secondary`},children:`Select all`}):t]},r||t)},renderValue:(e,t)=>{let n=e.slice(-5),r=e.length-5;return(0,H.jsxs)(H.Fragment,{children:[n.map((e,n)=>{let{key:r,...i}=t({index:n});return(0,U.createElement)(p,{...i,key:r,label:e,size:`small`})}),r>0?(0,H.jsxs)(y,{component:`span`,sx:{color:`text.secondary`},children:[` `,`(+`,r,`)`]}):null]})},renderInput:t=>(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(g,{...t,label:e,placeholder:i?void 0:`Select values…`,variant:`outlined`,size:`small`}),o&&(0,H.jsx)(v,{severity:`warning`,sx:e=>({padding:e.spacing(1,2),marginTop:e.spacing(1)}),children:`Maximum of 1000 values loaded due to performance.`})]})})},ce=d(b)(({theme:e})=>({display:`flex`,flexDirection:`column`,gap:e.spacing(1),width:`100%`})),le=d(b)(({theme:e})=>({width:`100%`,display:`flex`,alignItems:`center`,gap:e.spacing(1)})),ue=d(b)(({theme:e})=>({display:`grid`,gridTemplateColumns:`repeat(auto-fill, minmax(250px, 1fr))`,gap:e.spacing(2),flexGrow:1})),de=d(b)({display:`flex`,flexDirection:`column`,flexGrow:1}),fe=d(y)({lineHeight:1.5,height:`24px`}),pe=d(p)(({theme:e})=>({position:`relative`,height:`20px`,margin:e.spacing(-1,0)})),me=({title:e,labels:t,labelSelectors:n,onLabelChange:r,onAllToggle:i,onChange:a})=>{let o=t.map(([e])=>e),s=o.some(e=>n[e]);return(0,H.jsxs)(ce,{children:[(0,H.jsxs)(le,{children:[(0,H.jsx)(fe,{variant:`subtitle2`,children:e}),s&&(0,H.jsx)(pe,{label:`Clear all`,size:`small`,variant:`outlined`,onClick:()=>{let e={};Object.entries(n).forEach(([t,n])=>{o.includes(t)||(e[t]=n)}),a(e)}})]}),(0,H.jsx)(ue,{children:t.map(([e,t])=>(0,H.jsx)(de,{children:(0,H.jsx)(se,{labelKey:e,options:t,value:n[e]||[],onChange:t=>r(e,t),handleAllToggle:i})},e))})]})},he=[`environment`,`appName`,`origin`],ge=({labelSelectors:e,onChange:t,availableLabels:n})=>{let r=(n,r)=>{let i={...e};r.length===0?delete i[n]:i[n]=r,t(i)},i=(n,r)=>{let i={...e};r?i[n]=[`*`]:delete i[n],t(i)};if(!n||Object.keys(n).length===0)return null;let a=Object.entries(n).filter(([e])=>he.includes(e)).sort(),o=Object.entries(n).filter(([e])=>!he.includes(e)&&e!==`type`&&e!==`metric_type`).sort();return(0,H.jsxs)(b,{sx:{display:`flex`,gap:2,flexWrap:`wrap`},children:[a.length>0&&(0,H.jsx)(me,{title:`Filter by labels`,labels:a,labelSelectors:e,onLabelChange:r,onAllToggle:i,onChange:t}),o.length>0&&(0,H.jsx)(me,{title:`Other filters`,labels:o,labelSelectors:e,onLabelChange:r,onAllToggle:i,onChange:t})]})},_e=d(S)(({theme:e})=>({"& .MuiDialog-paper":{borderRadius:e.shape.borderRadiusLarge,maxWidth:e.spacing(170),width:`100%`,backgroundColor:`transparent`},padding:0,"& .MuiPaper-root > section":{overflowX:`hidden`}})),ve=d(`form`)({display:`flex`,flexDirection:`column`,height:`100%`}),ye=d(`h1`)(({theme:e})=>({fontWeight:`normal`,fontSize:e.typography.h1.fontSize,margin:0})),be=d(`div`)(({theme:e})=>({display:`flex`,flexDirection:`column`,gap:e.spacing(3),padding:e.spacing(6),flexGrow:1,minHeight:600})),xe=d(`div`)(({theme:e})=>({display:`flex`,gap:e.spacing(3),justifyContent:`flex-end`,padding:e.spacing(4,6),borderTop:`1px solid ${e.palette.divider}`})),Se=d(y)(({theme:e})=>({fontWeight:e.typography.fontWeightBold,color:e.palette.common.white,marginBottom:e.spacing(1)})),Ce=d(`a`)(({theme:e})=>({color:e.palette.common.white,display:`flex`,alignItems:`center`,gap:e.spacing(1),marginTop:e.spacing(1.5),textDecoration:`underline`,"&:hover":{textDecoration:`none`}})),we=d(y)(({theme:e})=>({fontWeight:e.typography.fontWeightBold,color:e.palette.common.white,marginBottom:e.spacing(1.5)})),Te=d(b)(({theme:e})=>({borderRadius:e.shape.borderRadiusLarge,overflow:`hidden`,backgroundColor:e.palette.background.paper,padding:e.spacing(2)})),Ee=({open:e,onClose:t,onSave:n,initialConfig:r,metrics:i,loading:a=!1})=>{let{formData:o,actions:s,isValid:c,currentAvailableLabels:u}=re({open:e,initialConfig:r}),d=f(l().breakpoints.down(`lg`)),{trackEvent:p}=T(),m=()=>{c&&(n(s.getConfigToSave()),p(`impact-metrics`,{props:{eventType:`chart added`}}),t())};return(0,H.jsx)(_e,{open:e,onClose:t,children:(0,H.jsx)(O,{compact:!0,disablePadding:!0,description:(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(Se,{children:`Did you know?`}),`Impact metrics let you track how your feature rollouts affect key outcomes like error rates, latency, and adoption — directly inside Unleash.`,(0,H.jsxs)(Ce,{href:`https://docs.getunleash.io/concepts/impact-metrics`,target:`_blank`,rel:`noopener noreferrer`,onClick:()=>{p(`impact-metrics`,{props:{eventType:`sidebar docs clicked`}})},children:[(0,H.jsx)(A,{fontSize:`small`}),`Learn how to use impact metrics`]}),(0,H.jsxs)(b,{sx:{mt:3},children:[(0,H.jsx)(we,{children:`Preview chart`}),(0,H.jsx)(Te,{children:(0,H.jsx)(L,{metricName:o.metricName,timeRange:o.timeRange,labelSelectors:o.labelSelectors,yAxisMin:o.yAxisMin,aggregationMode:o.aggregationMode,source:o.source,isPreview:!0},d?`small`:`large`)})]})]}),showLink:!1,sidebarWidth:`55%`,children:(0,H.jsxs)(ve,{onSubmit:e=>{e.preventDefault(),m()},children:[(0,H.jsxs)(be,{children:[(0,H.jsx)(ye,{children:r?`Edit impact metric`:`Add impact metric`}),(0,H.jsx)(g,{label:`Chart Title (optional)`,value:o.title,onChange:e=>s.setTitle(e.target.value),fullWidth:!0,variant:`outlined`,size:`small`}),(0,H.jsx)(ne,{formData:o,actions:s,metrics:i,loading:a,labelsFilter:u?(0,H.jsx)(ge,{labelSelectors:o.labelSelectors,onChange:s.setLabelSelectors,availableLabels:u}):null})]}),(0,H.jsxs)(xe,{children:[(0,H.jsx)(x,{onClick:t,children:`Cancel`}),(0,H.jsx)(x,{variant:`contained`,type:`submit`,disabled:!c,children:r?`Update`:`Add impact metric`})]})]})})})},De=e=>{let t=[];e.displayName&&t.push(`${e.displayName}`),t.push(`last ${e.timeRange}`),t.push(e.aggregationMode);let n=Object.keys(e.labelSelectors).length;return n>0&&t.push(`${n} filter${n>1?`s`:``}`),t.join(` • `)},Oe=d(_)(({theme:e})=>({borderRadius:`${e.shape.borderRadiusMedium}px`,boxShadow:`none`,display:`flex`,flexDirection:`column`,height:`100%`})),ke=d(b)({flex:1,display:`flex`,flexDirection:`column`,minHeight:0}),Ae=d(b)(({theme:e})=>({position:`relative`,minWidth:0,flexGrow:1,height:`100%`,display:`flex`,flexDirection:`column`,margin:`auto 0`,padding:e.spacing(3)})),je=d(b)(({theme:e})=>({display:`flex`,gap:e.spacing(1),alignItems:`center`,padding:e.spacing(1.5,2),borderBottom:`1px solid ${e.palette.divider}`})),Me=d(b)(({theme:e})=>({display:`flex`,flexDirection:`column`,justifyContent:`flex-end`,flexGrow:1,overflow:`hidden`,textOverflow:`ellipsis`})),Ne=d(b)(({theme:e})=>({marginLeft:`auto`,display:`flex`,alignItems:`center`,gap:e.spacing(.5)})),Pe=d(te)(({theme:e})=>({alignSelf:`start`,color:e.palette.primary.main,marginTop:e.spacing(.25)})),Fe=({config:e,onEdit:t,onDelete:n,permission:r=D,projectId:i,dragHandle:a,icon:o})=>(0,H.jsxs)(Oe,{children:[(0,H.jsxs)(je,{children:[a,e.mode===`read`?(0,H.jsx)(Pe,{}):null,(0,H.jsxs)(Me,{children:[e.title&&(0,H.jsx)(y,{variant:`h3`,children:e.title}),(0,H.jsx)(y,{variant:`body2`,sx:{color:`text.secondary`},children:De(e)})]}),o,e.mode!==`read`&&(0,H.jsxs)(Ne,{children:[(0,H.jsx)(V,{onClick:()=>t(e),permission:r,projectId:i,tooltipProps:{title:`Edit chart`},children:(0,H.jsx)(k,{})}),(0,H.jsx)(V,{onClick:()=>n(e.id),permission:r,projectId:i,tooltipProps:{title:`Remove chart`},children:(0,H.jsx)(ee,{})})]})]}),(0,H.jsx)(ke,{children:(0,H.jsx)(Ae,{children:(0,H.jsx)(L,{metricName:e.metricName,timeRange:e.timeRange,labelSelectors:e.labelSelectors,yAxisMin:e.yAxisMin,aggregationMode:e.aggregationMode,source:e.source,aspectRatio:1.5,overrideOptions:{maintainAspectRatio:!1},emptyDataDescription:`Send impact metrics using Unleash SDK for this series to view the chart.`})})})]}),W=n(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?r(e):typeof define==`function`&&define.amd?define([`exports`],r):(n=typeof globalThis<`u`?globalThis:n||self,r(n[`fast-equals`]={}))})(e,(function(e){function t(e){return function(t,n,r,i,a,o,s){return e(t,n,s)}}function n(e){return function(t,n,r,i){if(!t||!n||typeof t!=`object`||typeof n!=`object`)return e(t,n,r,i);var a=i.get(t),o=i.get(n);if(a&&o)return a===n&&o===t;i.set(t,n),i.set(n,t);var s=e(t,n,r,i);return i.delete(t),i.delete(n),s}}function r(e,t){var n={};for(var r in e)n[r]=e[r];for(var r in t)n[r]=t[r];return n}function i(e){return e.constructor===Object||e.constructor==null}function a(e){return typeof e.then==`function`}function o(e,t){return e===t||e!==e&&t!==t}var s=`[object Arguments]`,c=`[object Boolean]`,l=`[object Date]`,u=`[object RegExp]`,d=`[object Map]`,f=`[object Number]`,p=`[object Object]`,m=`[object Set]`,h=`[object String]`,g=Object.prototype.toString;function _(e){var t=e.areArraysEqual,n=e.areDatesEqual,r=e.areMapsEqual,_=e.areObjectsEqual,v=e.areRegExpsEqual,y=e.areSetsEqual,b=e.createIsNestedEqual,x=b(S);function S(e,b,S){if(e===b)return!0;if(!e||!b||typeof e!=`object`||typeof b!=`object`)return e!==e&&b!==b;if(i(e)&&i(b))return _(e,b,x,S);var C=Array.isArray(e),w=Array.isArray(b);if(C||w)return C===w&&t(e,b,x,S);var T=g.call(e);return T===g.call(b)?T===l?n(e,b,x,S):T===u?v(e,b,x,S):T===d?r(e,b,x,S):T===m?y(e,b,x,S):T===p||T===s?a(e)||a(b)?!1:_(e,b,x,S):T===c||T===f||T===h?o(e.valueOf(),b.valueOf()):!1:!1}return S}function v(e,t,n,r){var i=e.length;if(t.length!==i)return!1;for(;i-- >0;)if(!n(e[i],t[i],i,i,e,t,r))return!1;return!0}var y=n(v);function b(e,t){return o(e.valueOf(),t.valueOf())}function x(e,t,n,r){var i=e.size===t.size;if(!i)return!1;if(!e.size)return!0;var a={},o=0;return e.forEach(function(s,c){if(i){var l=!1,u=0;t.forEach(function(i,d){!l&&!a[u]&&(l=n(c,d,o,u,e,t,r)&&n(s,i,c,d,e,t,r))&&(a[u]=!0),u++}),o++,i=l}}),i}var S=n(x),C=`_owner`,w=Object.prototype.hasOwnProperty;function T(e,t,n,r){var i=Object.keys(e),a=i.length;if(Object.keys(t).length!==a)return!1;for(var o;a-- >0;){if(o=i[a],o===C){var s=!!e.$$typeof,c=!!t.$$typeof;if((s||c)&&s!==c)return!1}if(!w.call(t,o)||!n(e[o],t[o],o,o,e,t,r))return!1}return!0}var E=n(T);function D(e,t){return e.source===t.source&&e.flags===t.flags}function O(e,t,n,r){var i=e.size===t.size;if(!i)return!1;if(!e.size)return!0;var a={};return e.forEach(function(o,s){if(i){var c=!1,l=0;t.forEach(function(i,u){!c&&!a[l]&&(c=n(o,i,s,u,e,t,r))&&(a[l]=!0),l++}),i=c}}),i}var k=n(O),A=Object.freeze({areArraysEqual:v,areDatesEqual:b,areMapsEqual:x,areObjectsEqual:T,areRegExpsEqual:D,areSetsEqual:O,createIsNestedEqual:t}),j=Object.freeze({areArraysEqual:y,areDatesEqual:b,areMapsEqual:S,areObjectsEqual:E,areRegExpsEqual:D,areSetsEqual:k,createIsNestedEqual:t}),M=_(A);function N(e,t){return M(e,t,void 0)}var P=_(r(A,{createIsNestedEqual:function(){return o}}));function F(e,t){return P(e,t,void 0)}var I=_(j);function L(e,t){return I(e,t,new WeakMap)}var R=_(r(j,{createIsNestedEqual:function(){return o}}));function z(e,t){return R(e,t,new WeakMap)}function B(e){return _(r(A,e(A)))}function ee(e){var t=_(r(j,e(j)));return(function(e,n,r){return r===void 0&&(r=new WeakMap),t(e,n,r)})}e.circularDeepEqual=L,e.circularShallowEqual=z,e.createCustomCircularEqual=ee,e.createCustomEqual=B,e.deepEqual=N,e.sameValueZeroEqual=o,e.shallowEqual=F,Object.defineProperty(e,"__esModule",{value:!0})}))})),G=n(((e,t)=>{function n(e){var t,r,i=``;if(typeof e==`string`||typeof e==`number`)i+=e;else if(typeof e==`object`)if(Array.isArray(e)){var a=e.length;for(t=0;t<a;t++)e[t]&&(r=n(e[t]))&&(i&&(i+=` `),i+=r)}else for(r in e)e[r]&&(i&&(i+=` `),i+=r);return i}function r(){for(var e,t,r=0,i=``,a=arguments.length;r<a;r++)(e=arguments[r])&&(t=n(e))&&(i&&(i+=` `),i+=t);return i}t.exports=r,t.exports.clsx=r})),Ie=n(((e,t)=>{t.exports=function(e,t,n){return e===t?!0:e.className===t.className&&n(e.style,t.style)&&e.width===t.width&&e.autoSize===t.autoSize&&e.cols===t.cols&&e.draggableCancel===t.draggableCancel&&e.draggableHandle===t.draggableHandle&&n(e.verticalCompact,t.verticalCompact)&&n(e.compactType,t.compactType)&&n(e.layout,t.layout)&&n(e.margin,t.margin)&&n(e.containerPadding,t.containerPadding)&&e.rowHeight===t.rowHeight&&e.maxRows===t.maxRows&&e.isBounded===t.isBounded&&e.isDraggable===t.isDraggable&&e.isResizable===t.isResizable&&e.allowOverlap===t.allowOverlap&&e.preventCollision===t.preventCollision&&e.useCSSTransforms===t.useCSSTransforms&&e.transformScale===t.transformScale&&e.isDroppable===t.isDroppable&&n(e.resizeHandles,t.resizeHandles)&&n(e.resizeHandle,t.resizeHandle)&&e.onLayoutChange===t.onLayoutChange&&e.onDragStart===t.onDragStart&&e.onDrag===t.onDrag&&e.onDragStop===t.onDragStop&&e.onResizeStart===t.onResizeStart&&e.onResize===t.onResize&&e.onResizeStop===t.onResizeStop&&e.onDrop===t.onDrop&&n(e.droppingItem,t.droppingItem)&&n(e.innerRef,t.innerRef)}})),K=n((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.bottom=u,e.childrenEqual=h,e.cloneLayout=d,e.cloneLayoutItem=m,e.collides=_,e.compact=v,e.compactItem=x,e.compactType=re,e.correctBounds=S,e.fastPositionEqual=g,e.fastRGLPropsEqual=void 0,e.getAllCollisions=T,e.getFirstCollision=w,e.getLayoutItem=C,e.getStatics=E,e.modifyLayout=f,e.moveElement=D,e.moveElementAwayFromCollision=O,e.noop=void 0,e.perc=k,e.resizeItemInDirection=z,e.setTopLeft=ee,e.setTransform=B,e.sortLayoutItems=V,e.sortLayoutItemsByColRow=H,e.sortLayoutItemsByRowCol=te,e.synchronizeLayoutWithChildren=ne,e.validateLayout=U,e.withLayoutItem=p;var t=W(),n=r(a());function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?i(Object(n),!0).forEach(function(t){s(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function s(e,t,n){return(t=c(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e){var t=l(e,`string`);return typeof t==`symbol`?t:t+``}function l(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function u(e){let t=0,n;for(let r=0,i=e.length;r<i;r++)n=e[r].y+e[r].h,n>t&&(t=n);return t}function d(e){let t=Array(e.length);for(let n=0,r=e.length;n<r;n++)t[n]=m(e[n]);return t}function f(e,t){let n=Array(e.length);for(let r=0,i=e.length;r<i;r++)t.i===e[r].i?n[r]=t:n[r]=e[r];return n}function p(e,t,n){let r=C(e,t);return r?(r=n(m(r)),e=f(e,r),[e,r]):[e,null]}function m(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 h(e,r){return(0,t.deepEqual)(n.default.Children.map(e,e=>e?.key),n.default.Children.map(r,e=>e?.key))&&(0,t.deepEqual)(n.default.Children.map(e,e=>e?.props[`data-grid`]),n.default.Children.map(r,e=>e?.props[`data-grid`]))}e.fastRGLPropsEqual=Ie();function g(e,t){return e.left===t.left&&e.top===t.top&&e.width===t.width&&e.height===t.height}function _(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 v(e,t,n,r){let i=E(e),a=u(i),o=V(e,t),s=Array(e.length);for(let c=0,l=o.length;c<l;c++){let l=m(o[c]);l.static||(l=x(i,l,t,n,o,r,a),a=Math.max(a,l.y+l.h),i.push(l)),s[e.indexOf(o[c])]=l,l.moved=!1}return s}var y={x:`w`,y:`h`};function b(e,t,n,r){let i=y[r];t[r]+=1;let a=e.map(e=>e.i).indexOf(t.i);for(let o=a+1;o<e.length;o++){let a=e[o];if(!a.static){if(a.y>t.y+t.h)break;_(t,a)&&b(e,a,n+t[i],r)}}t[r]=n}function x(e,t,n,r,i,a,o){let s=n===`vertical`,c=n===`horizontal`;if(s)for(typeof o==`number`?t.y=Math.min(o,t.y):t.y=Math.min(u(e),t.y);t.y>0&&!w(e,t);)t.y--;else if(c)for(;t.x>0&&!w(e,t);)t.x--;let l;for(;(l=w(e,t))&&!(n===null&&a);)if(c?b(i,t,l.x+l.w,`x`):b(i,t,l.y+l.h,`y`),c&&t.x+t.w>r)for(t.x=r-t.w,t.y++;t.x>0&&!w(e,t);)t.x--;return t.y=Math.max(t.y,0),t.x=Math.max(t.x,0),t}function S(e,t){let n=E(e);for(let r=0,i=e.length;r<i;r++){let i=e[r];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)n.push(i);else for(;w(n,i);)i.y++}return e}function C(e,t){for(let n=0,r=e.length;n<r;n++)if(e[n].i===t)return e[n]}function w(e,t){for(let n=0,r=e.length;n<r;n++)if(_(e[n],t))return e[n]}function T(e,t){return e.filter(e=>_(e,t))}function E(e){return e.filter(e=>e.static)}function D(e,t,n,r,i,a,o,s,c){if(t.static&&t.isDraggable!==!0||t.y===r&&t.x===n)return e;`${t.i}${String(n)}${String(r)}${t.x}${t.y}`;let l=t.x,u=t.y;typeof n==`number`&&(t.x=n),typeof r==`number`&&(t.y=r),t.moved=!0;let f=V(e,o);(o===`vertical`&&typeof r==`number`?u>=r:o===`horizontal`&&typeof n==`number`&&l>=n)&&(f=f.reverse());let p=T(f,t),m=p.length>0;if(m&&c)return d(e);if(m&&a)return`${t.i}`,t.x=l,t.y=u,t.moved=!1,e;for(let n=0,r=p.length;n<r;n++){let r=p[n];`${t.i}${t.x}${t.y}${r.i}${r.x}${r.y}`,!r.moved&&(e=r.static?O(e,r,t,i,o,s):O(e,t,r,i,o,s))}return e}function O(e,t,n,r,i,a){let o=i===`horizontal`,s=i===`vertical`,c=t.static;if(r){r=!1;let l={x:o?Math.max(t.x-n.w,0):n.x,y:s?Math.max(t.y-n.h,0):n.y,w:n.w,h:n.h,i:`-1`},u=w(e,l),d=u&&u.y+u.h>t.y,f=u&&t.x+t.w>u.x;if(!u)return`${n.i}${l.x}${l.y}`,D(e,n,o?l.x:void 0,s?l.y:void 0,r,c,i,a);if(d&&s)return D(e,n,void 0,n.y+1,r,c,i,a);if(d&&i==null)return t.y=n.y,n.y+=n.h,e;if(f&&o)return D(e,t,n.x,void 0,r,c,i,a)}let l=o?n.x+1:void 0,u=s?n.y+1:void 0;return l==null&&u==null?e:D(e,n,o?n.x+1:void 0,s?n.y+1:void 0,r,c,i,a)}function k(e){return e*100+`%`}var A=(e,t,n,r)=>e+n>r?t:n,j=(e,t,n)=>e<0?t:n,M=e=>Math.max(0,e),N=e=>Math.max(0,e),P=(e,t,n)=>{let{left:r,height:i,width:a}=t,o=e.top-(i-e.height);return{left:r,width:a,height:j(o,e.height,i),top:N(o)}},F=(e,t,n)=>{let{top:r,left:i,height:a,width:o}=t;return{top:r,height:a,width:A(e.left,e.width,o,n),left:M(i)}},I=(e,t,n)=>{let{top:r,height:i,width:a}=t,o=e.left-(a-e.width);return{height:i,width:o<0?e.width:A(e.left,e.width,a,n),top:N(r),left:M(o)}},L=(e,t,n)=>{let{top:r,left:i,height:a,width:o}=t;return{width:o,left:i,height:j(r,e.height,a),top:N(r)}},R={n:P,ne:function(){return P(arguments.length<=0?void 0:arguments[0],F(...arguments),arguments.length<=2?void 0:arguments[2])},e:F,se:function(){return L(arguments.length<=0?void 0:arguments[0],F(...arguments),arguments.length<=2?void 0:arguments[2])},s:L,sw:function(){return L(arguments.length<=0?void 0:arguments[0],I(...arguments),arguments.length<=2?void 0:arguments[2])},w:I,nw:function(){return P(arguments.length<=0?void 0:arguments[0],I(...arguments),arguments.length<=2?void 0:arguments[2])}};function z(e,t,n,r){let i=R[e];return i?i(t,o(o({},t),n),r):n}function B(e){let{top:t,left:n,width:r,height:i}=e,a=`translate(${n}px,${t}px)`;return{transform:a,WebkitTransform:a,MozTransform:a,msTransform:a,OTransform:a,width:`${r}px`,height:`${i}px`,position:`absolute`}}function ee(e){let{top:t,left:n,width:r,height:i}=e;return{top:`${t}px`,left:`${n}px`,width:`${r}px`,height:`${i}px`,position:`absolute`}}function V(e,t){return t===`horizontal`?H(e):t===`vertical`?te(e):e}function te(e){return e.slice(0).sort(function(e,t){return e.y>t.y||e.y===t.y&&e.x>t.x?1:e.y===t.y&&e.x===t.x?0:-1})}function H(e){return e.slice(0).sort(function(e,t){return e.x>t.x||e.x===t.x&&e.y>t.y?1:-1})}function ne(e,t,r,i,a){e||=[];let s=[];n.default.Children.forEach(t,t=>{if(t?.key==null)return;let n=C(e,String(t.key)),r=t.props[`data-grid`];n&&r==null?s.push(m(n)):r?s.push(m(o(o({},r),{},{i:t.key}))):s.push(m({w:1,h:1,x:0,y:u(s),i:String(t.key)}))});let c=S(s,{cols:r});return a?c:v(c,i,r)}function U(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`Layout`,n=[`x`,`y`,`w`,`h`];if(!Array.isArray(e))throw Error(t+` must be an array!`);for(let r=0,i=e.length;r<i;r++){let i=e[r];for(let e=0;e<n.length;e++){let a=n[e],o=i[a];if(typeof o!=`number`||Number.isNaN(o))throw Error(`ReactGridLayout: ${t}[${r}].${a} must be a number! Received: ${o} (${typeof o})`)}if(i.i!==void 0&&typeof i.i!=`string`)throw Error(`ReactGridLayout: ${t}[${r}].i must be a string! Received: ${i.i} (${typeof i.i})`)}}function re(e){let{verticalCompact:t,compactType:n}=e||{};return t===!1?null:n}e.noop=()=>{}})),q=n((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.calcGridColWidth=t,e.calcGridItemPosition=r,e.calcGridItemWHPx=n,e.calcWH=a,e.calcXY=i,e.clamp=o;function t(e){let{margin:t,containerPadding:n,containerWidth:r,cols:i}=e;return(r-t[0]*(i-1)-n[0]*2)/i}function n(e,t,n){return Number.isFinite(e)?Math.round(t*e+Math.max(0,e-1)*n):e}function r(e,r,i,a,o,s){let{margin:c,containerPadding:l,rowHeight:u}=e,d=t(e),f={};return s&&s.resizing?(f.width=Math.round(s.resizing.width),f.height=Math.round(s.resizing.height)):(f.width=n(a,d,c[0]),f.height=n(o,u,c[1])),s&&s.dragging?(f.top=Math.round(s.dragging.top),f.left=Math.round(s.dragging.left)):s&&s.resizing&&typeof s.resizing.top==`number`&&typeof s.resizing.left==`number`?(f.top=Math.round(s.resizing.top),f.left=Math.round(s.resizing.left)):(f.top=Math.round((u+c[1])*i+l[1]),f.left=Math.round((d+c[0])*r+l[0])),f}function i(e,n,r,i,a){let{margin:s,containerPadding:c,cols:l,rowHeight:u,maxRows:d}=e,f=t(e),p=Math.round((r-c[0])/(f+s[0])),m=Math.round((n-c[1])/(u+s[1]));return p=o(p,0,l-i),m=o(m,0,d-a),{x:p,y:m}}function a(e,n,r,i,a,s){let{margin:c,maxRows:l,cols:u,rowHeight:d}=e,f=t(e),p=Math.round((n+c[0])/(f+c[0])),m=Math.round((r+c[1])/(d+c[1])),h=o(p,0,u-i),g=o(m,0,l-a);return[`sw`,`w`,`nw`].indexOf(s)!==-1&&(h=o(p,0,u)),[`nw`,`n`,`ne`].indexOf(s)!==-1&&(g=o(m,0,l)),{w:h,h:g}}function o(e,t,n){return Math.max(Math.min(e,n),t)}})),J=n((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.dontSetMe=a,e.findInArray=t,e.int=i,e.isFunction=n,e.isNum=r;function t(e,t){for(let n=0,r=e.length;n<r;n++)if(t.apply(t,[e[n],n,e]))return e[n]}function n(e){return typeof e==`function`||Object.prototype.toString.call(e)===`[object Function]`}function r(e){return typeof e==`number`&&!isNaN(e)}function i(e){return parseInt(e,10)}function a(e,t,n){if(e[t])return Error(`Invalid prop ${t} passed to ${n} - do not set this, set it on the child.`)}})),Le=n((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.browserPrefixToKey=r,e.browserPrefixToStyle=i,e.default=void 0,e.getPrefix=n;var t=[`Moz`,`Webkit`,`O`,`ms`];function n(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:`transform`;if(typeof window>`u`)return``;let n=window.document?.documentElement?.style;if(!n||e in n)return``;for(let i=0;i<t.length;i++)if(r(e,t[i])in n)return t[i];return``}function r(e,t){return t?`${t}${a(e)}`:e}function i(e,t){return t?`-${t.toLowerCase()}-${e}`:e}function a(e){let t=``,n=!0;for(let r=0;r<e.length;r++)n?(t+=e[r].toUpperCase(),n=!1):e[r]===`-`?n=!0:t+=e[r];return t}e.default=n()})),Re=n((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.addClassName=S,e.addEvent=s,e.addUserSelectStyles=y,e.createCSSTransform=m,e.createSVGTransform=h,e.getTouch=_,e.getTouchIdentifier=v,e.getTranslation=g,e.innerHeight=d,e.innerWidth=f,e.matchesSelector=a,e.matchesSelectorAndParentsTo=o,e.offsetXYFromParent=p,e.outerHeight=l,e.outerWidth=u,e.removeClassName=C,e.removeEvent=c,e.scheduleRemoveUserSelectStyles=b;var t=J(),n=r(Le());function r(e,t){if(typeof WeakMap==`function`)var n=new WeakMap,i=new WeakMap;return(r=function(e,t){if(!t&&e&&e.__esModule)return e;var r,a,o={__proto__:null,default:e};if(e===null||typeof e!=`object`&&typeof e!=`function`)return o;if(r=t?i:n){if(r.has(e))return r.get(e);r.set(e,o)}for(let t in e)t!=="default"&&{}.hasOwnProperty.call(e,t)&&((a=(r=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?r(o,t,a):o[t]=e[t]);return o})(e,t)}var i=``;function a(e,n){return i||=(0,t.findInArray)([`matches`,`webkitMatchesSelector`,`mozMatchesSelector`,`msMatchesSelector`,`oMatchesSelector`],function(n){return(0,t.isFunction)(e[n])}),(0,t.isFunction)(e[i])?e[i](n):!1}function o(e,t,n){let r=e;do{if(a(r,t))return!0;if(r===n)return!1;r=r.parentNode}while(r);return!1}function s(e,t,n,r){if(!e)return;let i={capture:!0,...r};e.addEventListener?e.addEventListener(t,n,i):e.attachEvent?e.attachEvent(`on`+t,n):e[`on`+t]=n}function c(e,t,n,r){if(!e)return;let i={capture:!0,...r};e.removeEventListener?e.removeEventListener(t,n,i):e.detachEvent?e.detachEvent(`on`+t,n):e[`on`+t]=null}function l(e){let n=e.clientHeight,r=e.ownerDocument.defaultView.getComputedStyle(e);return n+=(0,t.int)(r.borderTopWidth),n+=(0,t.int)(r.borderBottomWidth),n}function u(e){let n=e.clientWidth,r=e.ownerDocument.defaultView.getComputedStyle(e);return n+=(0,t.int)(r.borderLeftWidth),n+=(0,t.int)(r.borderRightWidth),n}function d(e){let n=e.clientHeight,r=e.ownerDocument.defaultView.getComputedStyle(e);return n-=(0,t.int)(r.paddingTop),n-=(0,t.int)(r.paddingBottom),n}function f(e){let n=e.clientWidth,r=e.ownerDocument.defaultView.getComputedStyle(e);return n-=(0,t.int)(r.paddingLeft),n-=(0,t.int)(r.paddingRight),n}function p(e,t,n){let r=t===t.ownerDocument.body?{left:0,top:0}:t.getBoundingClientRect();return{x:(e.clientX+t.scrollLeft-r.left)/n,y:(e.clientY+t.scrollTop-r.top)/n}}function m(e,t){let r=g(e,t,`px`);return{[(0,n.browserPrefixToKey)(`transform`,n.default)]:r}}function h(e,t){return g(e,t,``)}function g(e,t,n){let{x:r,y:i}=e,a=`translate(${r}${n},${i}${n})`;return t&&(a=`translate(${`${typeof t.x==`string`?t.x:t.x+n}`}, ${`${typeof t.y==`string`?t.y:t.y+n}`})`+a),a}function _(e,n){return e.targetTouches&&(0,t.findInArray)(e.targetTouches,e=>n===e.identifier)||e.changedTouches&&(0,t.findInArray)(e.changedTouches,e=>n===e.identifier)}function v(e){if(e.targetTouches&&e.targetTouches[0])return e.targetTouches[0].identifier;if(e.changedTouches&&e.changedTouches[0])return e.changedTouches[0].identifier}function y(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&&S(e.body,`react-draggable-transparent-selection`)}function b(e){window.requestAnimationFrame?window.requestAnimationFrame(()=>{x(e)}):x(e)}function x(e){if(e)try{if(e.body&&C(e.body,`react-draggable-transparent-selection`),e.selection)e.selection.empty();else{let t=(e.defaultView||window).getSelection();t&&t.type!==`Caret`&&t.removeAllRanges()}}catch{}}function S(e,t){e.classList?e.classList.add(t):e.className.match(RegExp(`(?:^|\\s)${t}(?!\\S)`))||(e.className+=` ${t}`)}function C(e,t){e.classList?e.classList.remove(t):e.className=e.className.replace(RegExp(`(?:^|\\s)${t}(?!\\S)`,`g`),``)}})),ze=n((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.canDragX=a,e.canDragY=o,e.createCoreData=c,e.createDraggableData=l,e.getBoundPosition=r,e.getControlPosition=s,e.snapToGrid=i;var t=J(),n=Re();function r(e,r,i){if(!e.props.bounds)return[r,i];let{bounds:a}=e.props;a=typeof a==`string`?a:u(a);let o=d(e);if(typeof a==`string`){let{ownerDocument:e}=o,r=e.defaultView,i;if(i=a===`parent`?o.parentNode:o.getRootNode().querySelector(a),!(i instanceof r.HTMLElement))throw Error(`Bounds selector "`+a+`" could not find an element.`);let s=i,c=r.getComputedStyle(o),l=r.getComputedStyle(s);a={left:-o.offsetLeft+(0,t.int)(l.paddingLeft)+(0,t.int)(c.marginLeft),top:-o.offsetTop+(0,t.int)(l.paddingTop)+(0,t.int)(c.marginTop),right:(0,n.innerWidth)(s)-(0,n.outerWidth)(o)-o.offsetLeft+(0,t.int)(l.paddingRight)-(0,t.int)(c.marginRight),bottom:(0,n.innerHeight)(s)-(0,n.outerHeight)(o)-o.offsetTop+(0,t.int)(l.paddingBottom)-(0,t.int)(c.marginBottom)}}return(0,t.isNum)(a.right)&&(r=Math.min(r,a.right)),(0,t.isNum)(a.bottom)&&(i=Math.min(i,a.bottom)),(0,t.isNum)(a.left)&&(r=Math.max(r,a.left)),(0,t.isNum)(a.top)&&(i=Math.max(i,a.top)),[r,i]}function i(e,t,n){return[Math.round(t/e[0])*e[0],Math.round(n/e[1])*e[1]]}function a(e){return e.props.axis===`both`||e.props.axis===`x`}function o(e){return e.props.axis===`both`||e.props.axis===`y`}function s(e,t,r){let i=typeof t==`number`?(0,n.getTouch)(e,t):null;if(typeof t==`number`&&!i)return null;let a=d(r),o=r.props.offsetParent||a.offsetParent||a.ownerDocument.body;return(0,n.offsetXYFromParent)(i||e,o,r.props.scale)}function c(e,n,r){let i=!(0,t.isNum)(e.lastX),a=d(e);return i?{node:a,deltaX:0,deltaY:0,lastX:n,lastY:r,x:n,y:r}:{node:a,deltaX:n-e.lastX,deltaY:r-e.lastY,lastX:e.lastX,lastY:e.lastY,x:n,y:r}}function l(e,t){let n=e.props.scale;return{node:t.node,x:e.state.x+t.deltaX/n,y:e.state.y+t.deltaY/n,deltaX:t.deltaX/n,deltaY:t.deltaY/n,lastX:e.state.x,lastY:e.state.y}}function u(e){return{left:e.left,top:e.top,right:e.right,bottom:e.bottom}}function d(e){let t=e.findDOMNode();if(!t)throw Error(`<DraggableCore>: Unmounted during event!`);return t}})),Be=n((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=t;function t(){}})),Ve=n((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=f(a()),n=d(c()),r=d(o()),i=Re(),s=ze(),l=J(),u=d(Be());function d(e){return e&&e.__esModule?e:{default:e}}function f(e,t){if(typeof WeakMap==`function`)var n=new WeakMap,r=new WeakMap;return(f=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(e===null||typeof e!=`object`&&typeof e!=`function`)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(let t in e)t!=="default"&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}function p(e,t,n){return(t=m(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function m(e){var t=h(e,`string`);return typeof t==`symbol`?t:t+``}function h(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var g={touch:{start:`touchstart`,move:`touchmove`,stop:`touchend`},mouse:{start:`mousedown`,move:`mousemove`,stop:`mouseup`}},_=g.mouse,v=class extends t.Component{constructor(){super(...arguments),p(this,`dragging`,!1),p(this,`lastX`,NaN),p(this,`lastY`,NaN),p(this,`touchIdentifier`,null),p(this,`mounted`,!1),p(this,`handleDragStart`,e=>{if(this.props.onMouseDown(e),!this.props.allowAnyClick&&typeof e.button==`number`&&e.button!==0)return!1;let t=this.findDOMNode();if(!t||!t.ownerDocument||!t.ownerDocument.body)throw Error(`<DraggableCore> not mounted on DragStart!`);let{ownerDocument:n}=t;if(this.props.disabled||!(e.target instanceof n.defaultView.Node)||this.props.handle&&!(0,i.matchesSelectorAndParentsTo)(e.target,this.props.handle,t)||this.props.cancel&&(0,i.matchesSelectorAndParentsTo)(e.target,this.props.cancel,t))return;e.type===`touchstart`&&!this.props.allowMobileScroll&&e.preventDefault();let r=(0,i.getTouchIdentifier)(e);this.touchIdentifier=r;let a=(0,s.getControlPosition)(e,r,this);if(a==null)return;let{x:o,y:c}=a,l=(0,s.createCoreData)(this,o,c);(0,u.default)(`DraggableCore: handleDragStart: %j`,l),(0,u.default)(`calling`,this.props.onStart),!(this.props.onStart(e,l)===!1||this.mounted===!1)&&(this.props.enableUserSelectHack&&(0,i.addUserSelectStyles)(n),this.dragging=!0,this.lastX=o,this.lastY=c,(0,i.addEvent)(n,_.move,this.handleDrag),(0,i.addEvent)(n,_.stop,this.handleDragStop))}),p(this,`handleDrag`,e=>{let t=(0,s.getControlPosition)(e,this.touchIdentifier,this);if(t==null)return;let{x:n,y:r}=t;if(Array.isArray(this.props.grid)){let e=n-this.lastX,t=r-this.lastY;if([e,t]=(0,s.snapToGrid)(this.props.grid,e,t),!e&&!t)return;n=this.lastX+e,r=this.lastY+t}let i=(0,s.createCoreData)(this,n,r);if((0,u.default)(`DraggableCore: handleDrag: %j`,i),this.props.onDrag(e,i)===!1||this.mounted===!1){try{this.handleDragStop(new MouseEvent(`mouseup`))}catch{let e=document.createEvent(`MouseEvents`);e.initMouseEvent(`mouseup`,!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),this.handleDragStop(e)}return}this.lastX=n,this.lastY=r}),p(this,`handleDragStop`,e=>{if(!this.dragging)return;let t=(0,s.getControlPosition)(e,this.touchIdentifier,this);if(t==null)return;let{x:n,y:r}=t;if(Array.isArray(this.props.grid)){let e=n-this.lastX||0,t=r-this.lastY||0;[e,t]=(0,s.snapToGrid)(this.props.grid,e,t),n=this.lastX+e,r=this.lastY+t}let a=(0,s.createCoreData)(this,n,r);if(this.props.onStop(e,a)===!1||this.mounted===!1)return!1;let o=this.findDOMNode();o&&this.props.enableUserSelectHack&&(0,i.scheduleRemoveUserSelectStyles)(o.ownerDocument),(0,u.default)(`DraggableCore: handleDragStop: %j`,a),this.dragging=!1,this.lastX=NaN,this.lastY=NaN,o&&((0,u.default)(`DraggableCore: Removing handlers`),(0,i.removeEvent)(o.ownerDocument,_.move,this.handleDrag),(0,i.removeEvent)(o.ownerDocument,_.stop,this.handleDragStop))}),p(this,`onMouseDown`,e=>(_=g.mouse,this.handleDragStart(e))),p(this,`onMouseUp`,e=>(_=g.mouse,this.handleDragStop(e))),p(this,`onTouchStart`,e=>(_=g.touch,this.handleDragStart(e))),p(this,`onTouchEnd`,e=>(_=g.touch,this.handleDragStop(e)))}componentDidMount(){this.mounted=!0;let e=this.findDOMNode();e&&(0,i.addEvent)(e,g.touch.start,this.onTouchStart,{passive:!1})}componentWillUnmount(){this.mounted=!1;let e=this.findDOMNode();if(e){let{ownerDocument:t}=e;(0,i.removeEvent)(t,g.mouse.move,this.handleDrag),(0,i.removeEvent)(t,g.touch.move,this.handleDrag),(0,i.removeEvent)(t,g.mouse.stop,this.handleDragStop),(0,i.removeEvent)(t,g.touch.stop,this.handleDragStop),(0,i.removeEvent)(e,g.touch.start,this.onTouchStart,{passive:!1}),this.props.enableUserSelectHack&&(0,i.scheduleRemoveUserSelectStyles)(t)}}findDOMNode(){return this.props?.nodeRef?this.props?.nodeRef?.current:r.default.findDOMNode(this)}render(){return t.cloneElement(t.Children.only(this.props.children),{onMouseDown:this.onMouseDown,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}};e.default=v,p(v,`displayName`,`DraggableCore`),p(v,`propTypes`,{allowAnyClick:n.default.bool,allowMobileScroll:n.default.bool,children:n.default.node.isRequired,disabled:n.default.bool,enableUserSelectHack:n.default.bool,offsetParent:function(e,t){if(e[t]&&e[t].nodeType!==1)throw Error(`Draggable's offsetParent must be a DOM Node.`)},grid:n.default.arrayOf(n.default.number),handle:n.default.string,cancel:n.default.string,nodeRef:n.default.object,onStart:n.default.func,onDrag:n.default.func,onStop:n.default.func,onMouseDown:n.default.func,scale:n.default.number,className:l.dontSetMe,style:l.dontSetMe,transform:l.dontSetMe}),p(v,`defaultProps`,{allowAnyClick:!1,allowMobileScroll:!1,disabled:!1,enableUserSelectHack:!0,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){},scale:1})})),He=n((e=>{Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"DraggableCore",{enumerable:!0,get:function(){return d.default}}),e.default=void 0;var t=m(a()),n=p(c()),r=p(o()),i=G(),s=Re(),l=ze(),u=J(),d=p(Ve()),f=p(Be());function p(e){return e&&e.__esModule?e:{default:e}}function m(e,t){if(typeof WeakMap==`function`)var n=new WeakMap,r=new WeakMap;return(m=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(e===null||typeof e!=`object`&&typeof e!=`function`)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(let t in e)t!=="default"&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}function h(){return h=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},h.apply(null,arguments)}function g(e,t,n){return(t=_(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _(e){var t=v(e,`string`);return typeof t==`symbol`?t:t+``}function v(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var y=class extends t.Component{static getDerivedStateFromProps(e,t){let{position:n}=e,{prevPropsPosition:r}=t;return n&&(!r||n.x!==r.x||n.y!==r.y)?((0,f.default)(`Draggable: getDerivedStateFromProps %j`,{position:n,prevPropsPosition:r}),{x:n.x,y:n.y,prevPropsPosition:{...n}}):null}constructor(e){super(e),g(this,`onDragStart`,(e,t)=>{if((0,f.default)(`Draggable: onDragStart: %j`,t),this.props.onStart(e,(0,l.createDraggableData)(this,t))===!1)return!1;this.setState({dragging:!0,dragged:!0})}),g(this,`onDrag`,(e,t)=>{if(!this.state.dragging)return!1;(0,f.default)(`Draggable: onDrag: %j`,t);let n=(0,l.createDraggableData)(this,t),r={x:n.x,y:n.y,slackX:0,slackY:0};if(this.props.bounds){let{x:e,y:t}=r;r.x+=this.state.slackX,r.y+=this.state.slackY;let[i,a]=(0,l.getBoundPosition)(this,r.x,r.y);r.x=i,r.y=a,r.slackX=this.state.slackX+(e-r.x),r.slackY=this.state.slackY+(t-r.y),n.x=r.x,n.y=r.y,n.deltaX=r.x-this.state.x,n.deltaY=r.y-this.state.y}if(this.props.onDrag(e,n)===!1)return!1;this.setState(r)}),g(this,`onDragStop`,(e,t)=>{if(!this.state.dragging||this.props.onStop(e,(0,l.createDraggableData)(this,t))===!1)return!1;(0,f.default)(`Draggable: onDragStop: %j`,t);let n={dragging:!1,slackX:0,slackY:0};if(this.props.position){let{x:e,y:t}=this.props.position;n.x=e,n.y=t}this.setState(n)}),this.state={dragging:!1,dragged:!1,x:e.position?e.position.x:e.defaultPosition.x,y:e.position?e.position.y:e.defaultPosition.y,prevPropsPosition:{...e.position},slackX:0,slackY:0,isElementSVG:!1},e.position&&!(e.onDrag||e.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(){window.SVGElement!==void 0&&this.findDOMNode()instanceof window.SVGElement&&this.setState({isElementSVG:!0})}componentWillUnmount(){this.state.dragging&&this.setState({dragging:!1})}findDOMNode(){return this.props?.nodeRef?.current??r.default.findDOMNode(this)}render(){let{axis:e,bounds:n,children:r,defaultPosition:a,defaultClassName:o,defaultClassNameDragging:c,defaultClassNameDragged:u,position:f,positionOffset:p,scale:m,...g}=this.props,_={},v=null,y=!f||this.state.dragging,b=f||a,x={x:(0,l.canDragX)(this)&&y?this.state.x:b.x,y:(0,l.canDragY)(this)&&y?this.state.y:b.y};this.state.isElementSVG?v=(0,s.createSVGTransform)(x,p):_=(0,s.createCSSTransform)(x,p);let S=(0,i.clsx)(r.props.className||``,o,{[c]:this.state.dragging,[u]:this.state.dragged});return t.createElement(d.default,h({},g,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),t.cloneElement(t.Children.only(r),{className:S,style:{...r.props.style,..._},transform:v}))}};e.default=y,g(y,`displayName`,`Draggable`),g(y,`propTypes`,{...d.default.propTypes,axis:n.default.oneOf([`both`,`x`,`y`,`none`]),bounds:n.default.oneOfType([n.default.shape({left:n.default.number,right:n.default.number,top:n.default.number,bottom:n.default.number}),n.default.string,n.default.oneOf([!1])]),defaultClassName:n.default.string,defaultClassNameDragging:n.default.string,defaultClassNameDragged:n.default.string,defaultPosition:n.default.shape({x:n.default.number,y:n.default.number}),positionOffset:n.default.shape({x:n.default.oneOfType([n.default.number,n.default.string]),y:n.default.oneOfType([n.default.number,n.default.string])}),position:n.default.shape({x:n.default.number,y:n.default.number}),className:u.dontSetMe,style:u.dontSetMe,transform:u.dontSetMe}),g(y,`defaultProps`,{...d.default.defaultProps,axis:`both`,bounds:!1,defaultClassName:`react-draggable`,defaultClassNameDragging:`react-draggable-dragging`,defaultClassNameDragged:`react-draggable-dragged`,defaultPosition:{x:0,y:0},scale:1})})),Ue=n(((e,t)=>{var{default:n,DraggableCore:r}=He();t.exports=n,t.exports.default=n,t.exports.DraggableCore=r})),We=n((e=>{e.__esModule=!0,e.cloneElement=l;var t=n(a());function n(e){return e&&e.__esModule?e:{default:e}}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?r(Object(n),!0).forEach(function(t){o(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function o(e,t,n){return(t=s(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e){var t=c(e,`string`);return typeof t==`symbol`?t:t+``}function c(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function l(e,n){return n.style&&e.props.style&&(n.style=i(i({},e.props.style),n.style)),n.className&&e.props.className&&(n.className=`${e.props.className} ${n.className}`),t.default.cloneElement(e,n)}})),Ge=n((e=>{e.__esModule=!0,e.resizableProps=void 0;var t=n(c());Ue();function n(e){return e&&e.__esModule?e:{default:e}}e.resizableProps={axis:t.default.oneOf([`both`,`x`,`y`,`none`]),className:t.default.string,children:t.default.element.isRequired,draggableOpts:t.default.shape({allowAnyClick:t.default.bool,cancel:t.default.string,children:t.default.node,disabled:t.default.bool,enableUserSelectHack:t.default.bool,offsetParent:typeof Element<`u`?t.default.instanceOf(Element):t.default.any,grid:t.default.arrayOf(t.default.number),handle:t.default.string,nodeRef:t.default.object,onStart:t.default.func,onDrag:t.default.func,onStop:t.default.func,onMouseDown:t.default.func,scale:t.default.number}),height:function(){var e=[...arguments];let[n]=e;return n.axis===`both`||n.axis===`y`?t.default.number.isRequired(...e):t.default.number(...e)},handle:t.default.oneOfType([t.default.node,t.default.func]),handleSize:t.default.arrayOf(t.default.number),lockAspectRatio:t.default.bool,maxConstraints:t.default.arrayOf(t.default.number),minConstraints:t.default.arrayOf(t.default.number),onResizeStop:t.default.func,onResizeStart:t.default.func,onResize:t.default.func,resizeHandles:t.default.arrayOf(t.default.oneOf([`s`,`w`,`e`,`n`,`sw`,`nw`,`se`,`ne`])),transformScale:t.default.number,width:function(){var e=[...arguments];let[n]=e;return n.axis===`both`||n.axis===`x`?t.default.number.isRequired(...e):t.default.number(...e)}}})),Ke=n((e=>{e.__esModule=!0,e.default=void 0;var t=s(a()),n=Ue(),r=We(),i=Ge(),o=[`children`,`className`,`draggableOpts`,`width`,`height`,`handle`,`handleSize`,`lockAspectRatio`,`axis`,`minConstraints`,`maxConstraints`,`onResize`,`onResizeStop`,`onResizeStart`,`resizeHandles`,`transformScale`];function s(e,t){if(typeof WeakMap==`function`)var n=new WeakMap,r=new WeakMap;return(s=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(e===null||typeof e!=`object`&&typeof e!=`function`)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(let t in e)t!=="default"&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c.apply(null,arguments)}function l(e,t){if(e==null)return{};var n,r,i=u(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function u(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function f(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?d(Object(n),!0).forEach(function(t){p(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):d(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function p(e,t,n){return(t=m(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function m(e){var t=h(e,`string`);return typeof t==`symbol`?t:t+``}function h(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var g=class extends t.Component{constructor(){super(...arguments),this.handleRefs={},this.lastHandleRect=null,this.slack=null,this.lastSize=null}componentWillUnmount(){this.resetData()}resetData(){this.lastHandleRect=this.slack=this.lastSize=null}runConstraints(e,t){let{minConstraints:n,maxConstraints:r,lockAspectRatio:i}=this.props;if(!n&&!r&&!i)return[e,t];if(i){let n=this.props.width/this.props.height,r=e-this.props.width,i=t-this.props.height;Math.abs(r)>Math.abs(i*n)?t=e/n:e=t*n}let[a,o]=[e,t],[s,c]=this.slack||[0,0];return e+=s,t+=c,n&&(e=Math.max(n[0],e),t=Math.max(n[1],t)),r&&(e=Math.min(r[0],e),t=Math.min(r[1],t)),this.slack=[s+(a-e),c+(o-t)],[e,t]}resizeHandler(e,t){return(n,r)=>{let{node:i,deltaX:a,deltaY:o}=r;e===`onResizeStart`&&this.resetData();let s=(this.props.axis===`both`||this.props.axis===`x`)&&t!==`n`&&t!==`s`,c=(this.props.axis===`both`||this.props.axis===`y`)&&t!==`e`&&t!==`w`;if(!s&&!c)return;let l=t[0],u=t[t.length-1],d=i.getBoundingClientRect();if(this.lastHandleRect!=null){if(u===`w`){let e=d.left-this.lastHandleRect.left;a+=e}if(l===`n`){let e=d.top-this.lastHandleRect.top;o+=e}}this.lastHandleRect=d,u===`w`&&(a=-a),l===`n`&&(o=-o);let f=this.props.width+(s?a/this.props.transformScale:0),p=this.props.height+(c?o/this.props.transformScale:0);[f,p]=this.runConstraints(f,p),e===`onResizeStop`&&this.lastSize&&({width:f,height:p}=this.lastSize);let m=f!==this.props.width||p!==this.props.height;e!==`onResizeStop`&&(this.lastSize={width:f,height:p});let h=typeof this.props[e]==`function`?this.props[e]:null;h&&!(e===`onResize`&&!m)&&(n.persist?.(),h(n,{node:i,size:{width:f,height:p},handle:t})),e===`onResizeStop`&&this.resetData()}}renderResizeHandle(e,n){let{handle:r}=this.props;if(!r)return t.createElement(`span`,{className:`react-resizable-handle react-resizable-handle-${e}`,ref:n});if(typeof r==`function`)return r(e,n);let i=typeof r.type==`string`,a=f({ref:n},i?{}:{handleAxis:e});return t.cloneElement(r,a)}render(){let e=this.props,{children:i,className:a,draggableOpts:s,width:u,height:d,handle:p,handleSize:m,lockAspectRatio:h,axis:g,minConstraints:_,maxConstraints:v,onResize:y,onResizeStop:b,onResizeStart:x,resizeHandles:S,transformScale:C}=e,w=l(e,o);return(0,r.cloneElement)(i,f(f({},w),{},{className:`${a?`${a} `:``}react-resizable`,children:[...t.Children.toArray(i.props.children),...S.map(e=>{let r=this.handleRefs[e]??(this.handleRefs[e]=t.createRef());return t.createElement(n.DraggableCore,c({},s,{nodeRef:r,key:`resizableHandle-${e}`,onStop:this.resizeHandler(`onResizeStop`,e),onStart:this.resizeHandler(`onResizeStart`,e),onDrag:this.resizeHandler(`onResize`,e)}),this.renderResizeHandle(e,r))})]}))}};e.default=g,g.propTypes=i.resizableProps,g.defaultProps={axis:`both`,handleSize:[20,20],lockAspectRatio:!1,minConstraints:[20,20],maxConstraints:[1/0,1/0],resizeHandles:[`se`],transformScale:1}})),qe=n((e=>{e.__esModule=!0,e.default=void 0;var t=l(a()),n=s(c()),r=s(Ke()),i=Ge(),o=[`handle`,`handleSize`,`onResize`,`onResizeStart`,`onResizeStop`,`draggableOpts`,`minConstraints`,`maxConstraints`,`lockAspectRatio`,`axis`,`width`,`height`,`resizeHandles`,`style`,`transformScale`];function s(e){return e&&e.__esModule?e:{default:e}}function l(e,t){if(typeof WeakMap==`function`)var n=new WeakMap,r=new WeakMap;return(l=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(e===null||typeof e!=`object`&&typeof e!=`function`)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(let t in e)t!=="default"&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},u.apply(null,arguments)}function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function f(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?d(Object(n),!0).forEach(function(t){p(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):d(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function p(e,t,n){return(t=m(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function m(e){var t=h(e,`string`);return typeof t==`symbol`?t:t+``}function h(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function g(e,t){if(e==null)return{};var n,r,i=_(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function _(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var v=class extends t.Component{constructor(){super(...arguments),this.state={width:this.props.width,height:this.props.height,propsWidth:this.props.width,propsHeight:this.props.height},this.onResize=(e,t)=>{let{size:n}=t;this.props.onResize?(e.persist?.(),this.setState(n,()=>this.props.onResize&&this.props.onResize(e,t))):this.setState(n)}}static getDerivedStateFromProps(e,t){return t.propsWidth!==e.width||t.propsHeight!==e.height?{width:e.width,height:e.height,propsWidth:e.width,propsHeight:e.height}:null}render(){let e=this.props,{handle:n,handleSize:i,onResize:a,onResizeStart:s,onResizeStop:c,draggableOpts:l,minConstraints:d,maxConstraints:p,lockAspectRatio:m,axis:h,width:_,height:v,resizeHandles:y,style:b,transformScale:x}=e,S=g(e,o);return t.createElement(r.default,{axis:h,draggableOpts:l,handle:n,handleSize:i,height:this.state.height,lockAspectRatio:m,maxConstraints:p,minConstraints:d,onResizeStart:s,onResize:this.onResize,onResizeStop:c,resizeHandles:y,transformScale:x,width:this.state.width},t.createElement(`div`,u({},S,{style:f(f({},b),{},{width:this.state.width+`px`,height:this.state.height+`px`})})))}};e.default=v,v.propTypes=f(f({},i.resizableProps),{},{children:n.default.element})})),Je=n(((e,t)=>{t.exports=function(){throw Error(`Don't instantiate Resizable directly! Use require('react-resizable').Resizable`)},t.exports.Resizable=Ke().default,t.exports.ResizableBox=qe().default})),Ye=n((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.resizeHandleType=e.resizeHandleAxesType=e.default=void 0;var t=r(c()),n=r(a());function r(e){return e&&e.__esModule?e:{default:e}}var i=e.resizeHandleAxesType=t.default.arrayOf(t.default.oneOf([`s`,`w`,`e`,`n`,`sw`,`nw`,`se`,`ne`])),o=e.resizeHandleType=t.default.oneOfType([t.default.node,t.default.func]);e.default={className:t.default.string,style:t.default.object,width:t.default.number,autoSize:t.default.bool,cols:t.default.number,draggableCancel:t.default.string,draggableHandle:t.default.string,verticalCompact:function(e){e.verticalCompact},compactType:t.default.oneOf([`vertical`,`horizontal`]),layout:function(e){var t=e.layout;t!==void 0&&K().validateLayout(t,`layout`)},margin:t.default.arrayOf(t.default.number),containerPadding:t.default.arrayOf(t.default.number),rowHeight:t.default.number,maxRows:t.default.number,isBounded:t.default.bool,isDraggable:t.default.bool,isResizable:t.default.bool,allowOverlap:t.default.bool,preventCollision:t.default.bool,useCSSTransforms:t.default.bool,transformScale:t.default.number,isDroppable:t.default.bool,resizeHandles:i,resizeHandle:o,onLayoutChange:t.default.func,onDragStart:t.default.func,onDrag:t.default.func,onDragStop:t.default.func,onResizeStart:t.default.func,onResize:t.default.func,onResizeStop:t.default.func,onDrop:t.default.func,droppingItem:t.default.shape({i:t.default.string.isRequired,w:t.default.number.isRequired,h:t.default.number.isRequired}),children:function(e,t){let r=e[t],i={};n.default.Children.forEach(r,function(e){if(e?.key!=null){if(i[e.key])throw Error(`Duplicate child key "`+e.key+`" found! This will cause problems in ReactGridLayout.`);i[e.key]=!0}})},innerRef:t.default.any}})),Xe=n((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=p(a()),n=o(),r=p(c()),i=Ue(),s=Je(),l=K(),u=q(),d=Ye(),f=p(G());function p(e){return e&&e.__esModule?e:{default:e}}function m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function h(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?m(Object(n),!0).forEach(function(t){g(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):m(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function g(e,t,n){return(t=_(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _(e){var t=v(e,`string`);return typeof t==`symbol`?t:t+``}function v(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var y=class extends t.default.Component{constructor(){super(...arguments),g(this,`state`,{resizing:null,dragging:null,className:``}),g(this,`elementRef`,t.default.createRef()),g(this,`onDragStart`,(e,t)=>{let{node:n}=t,{onDragStart:r,transformScale:i}=this.props;if(!r)return;let a={top:0,left:0},{offsetParent:o}=n;if(!o)return;let s=o.getBoundingClientRect(),c=n.getBoundingClientRect(),l=c.left/i,d=s.left/i,f=c.top/i,p=s.top/i;a.left=l-d+o.scrollLeft,a.top=f-p+o.scrollTop,this.setState({dragging:a});let{x:m,y:h}=(0,u.calcXY)(this.getPositionParams(),a.top,a.left,this.props.w,this.props.h);return r.call(this,this.props.i,m,h,{e,node:n,newPosition:a})}),g(this,`onDrag`,(e,t,r)=>{let{node:i,deltaX:a,deltaY:o}=t,{onDrag:s}=this.props;if(!s)return;if(!this.state.dragging)throw Error(`onDrag called before onDragStart.`);let c=this.state.dragging.top+o,l=this.state.dragging.left+a,{isBounded:d,i:f,w:p,h:m,containerWidth:h}=this.props,g=this.getPositionParams();if(d){let{offsetParent:e}=i;if(e){let{margin:t,rowHeight:n}=this.props,r=e.clientHeight-(0,u.calcGridItemWHPx)(m,n,t[1]);c=(0,u.clamp)(c,0,r);let i=(0,u.calcGridColWidth)(g),a=h-(0,u.calcGridItemWHPx)(p,i,t[0]);l=(0,u.clamp)(l,0,a)}}let _={top:c,left:l};r?this.setState({dragging:_}):(0,n.flushSync)(()=>{this.setState({dragging:_})});let{x:v,y}=(0,u.calcXY)(g,c,l,p,m);return s.call(this,f,v,y,{e,node:i,newPosition:_})}),g(this,`onDragStop`,(e,t)=>{let{node:n}=t,{onDragStop:r}=this.props;if(!r)return;if(!this.state.dragging)throw Error(`onDragEnd called before onDragStart.`);let{w:i,h:a,i:o}=this.props,{left:s,top:c}=this.state.dragging,l={top:c,left:s};this.setState({dragging:null});let{x:d,y:f}=(0,u.calcXY)(this.getPositionParams(),c,s,i,a);return r.call(this,o,d,f,{e,node:n,newPosition:l})}),g(this,`onResizeStop`,(e,t,n)=>this.onResizeHandler(e,t,n,`onResizeStop`)),g(this,`onResizeStart`,(e,t,n)=>this.onResizeHandler(e,t,n,`onResizeStart`)),g(this,`onResize`,(e,t,n)=>this.onResizeHandler(e,t,n,`onResize`))}shouldComponentUpdate(e,t){if(this.props.children!==e.children||this.props.droppingPosition!==e.droppingPosition)return!0;let n=(0,u.calcGridItemPosition)(this.getPositionParams(this.props),this.props.x,this.props.y,this.props.w,this.props.h,this.state),r=(0,u.calcGridItemPosition)(this.getPositionParams(e),e.x,e.y,e.w,e.h,t);return!(0,l.fastPositionEqual)(n,r)||this.props.useCSSTransforms!==e.useCSSTransforms}componentDidMount(){this.moveDroppingItem({})}componentDidUpdate(e){this.moveDroppingItem(e)}moveDroppingItem(e){let{droppingPosition:t}=this.props;if(!t)return;let n=this.elementRef.current;if(!n)return;let r=e.droppingPosition||{left:0,top:0},{dragging:i}=this.state,a=i&&t.left!==r.left||t.top!==r.top;if(!i)this.onDragStart(t.e,{node:n,deltaX:t.left,deltaY:t.top});else if(a){let e=t.left-i.left,r=t.top-i.top;this.onDrag(t.e,{node:n,deltaX:e,deltaY:r},!0)}}getPositionParams(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.props;return{cols:e.cols,containerPadding:e.containerPadding,containerWidth:e.containerWidth,margin:e.margin,maxRows:e.maxRows,rowHeight:e.rowHeight}}createStyle(e){let{usePercentages:t,containerWidth:n,useCSSTransforms:r}=this.props,i;return r?i=(0,l.setTransform)(e):(i=(0,l.setTopLeft)(e),t&&(i.left=(0,l.perc)(e.left/n),i.width=(0,l.perc)(e.width/n))),i}mixinDraggable(e,n){return t.default.createElement(i.DraggableCore,{disabled:!n,onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop,handle:this.props.handle,cancel:`.react-resizable-handle`+(this.props.cancel?`,`+this.props.cancel:``),scale:this.props.transformScale,nodeRef:this.elementRef},e)}curryResizeHandler(e,t){return(n,r)=>t(n,r,e)}mixinResizable(e,n,r){let{cols:i,minW:a,minH:o,maxW:c,maxH:l,transformScale:d,resizeHandles:f,resizeHandle:p}=this.props,m=this.getPositionParams(),h=(0,u.calcGridItemPosition)(m,0,0,i,0).width,g=(0,u.calcGridItemPosition)(m,0,0,a,o),_=(0,u.calcGridItemPosition)(m,0,0,c,l),v=[g.width,g.height],y=[Math.min(_.width,h),Math.min(_.height,1/0)];return t.default.createElement(s.Resizable,{draggableOpts:{disabled:!r},className:r?void 0:`react-resizable-hide`,width:n.width,height:n.height,minConstraints:v,maxConstraints:y,onResizeStop:this.curryResizeHandler(n,this.onResizeStop),onResizeStart:this.curryResizeHandler(n,this.onResizeStart),onResize:this.curryResizeHandler(n,this.onResize),transformScale:d,resizeHandles:f,handle:p},e)}onResizeHandler(e,t,r,i){let{node:a,size:o,handle:s}=t,c=this.props[i];if(!c)return;let{x:d,y:f,i:p,maxH:m,minH:h,containerWidth:g}=this.props,{minW:_,maxW:v}=this.props,y=o;a&&(y=(0,l.resizeItemInDirection)(s,r,o,g),(0,n.flushSync)(()=>{this.setState({resizing:i===`onResizeStop`?null:y})}));let{w:b,h:x}=(0,u.calcWH)(this.getPositionParams(),y.width,y.height,d,f,s);b=(0,u.clamp)(b,Math.max(_,1),v),x=(0,u.clamp)(x,h,m),c.call(this,p,b,x,{e,node:a,size:y,handle:s})}render(){let{x:e,y:n,w:r,h:i,isDraggable:a,isResizable:o,droppingPosition:s,useCSSTransforms:c}=this.props,l=(0,u.calcGridItemPosition)(this.getPositionParams(),e,n,r,i,this.state),d=t.default.Children.only(this.props.children),p=t.default.cloneElement(d,{ref:this.elementRef,className:(0,f.default)(`react-grid-item`,d.props.className,this.props.className,{static:this.props.static,resizing:!!this.state.resizing,"react-draggable":a,"react-draggable-dragging":!!this.state.dragging,dropping:!!s,cssTransforms:c}),style:h(h(h({},this.props.style),d.props.style),this.createStyle(l))});return p=this.mixinResizable(p,l,o),p=this.mixinDraggable(p,a),p}};e.default=y,g(y,`propTypes`,{children:r.default.element,cols:r.default.number.isRequired,containerWidth:r.default.number.isRequired,rowHeight:r.default.number.isRequired,margin:r.default.array.isRequired,maxRows:r.default.number.isRequired,containerPadding:r.default.array.isRequired,x:r.default.number.isRequired,y:r.default.number.isRequired,w:r.default.number.isRequired,h:r.default.number.isRequired,minW:function(e,t){let n=e[t];if(typeof n!=`number`)return Error(`minWidth not Number`);if(n>e.w||n>e.maxW)return Error(`minWidth larger than item width/maxWidth`)},maxW:function(e,t){let n=e[t];if(typeof n!=`number`)return Error(`maxWidth not Number`);if(n<e.w||n<e.minW)return Error(`maxWidth smaller than item width/minWidth`)},minH:function(e,t){let n=e[t];if(typeof n!=`number`)return Error(`minHeight not Number`);if(n>e.h||n>e.maxH)return Error(`minHeight larger than item height/maxHeight`)},maxH:function(e,t){let n=e[t];if(typeof n!=`number`)return Error(`maxHeight not Number`);if(n<e.h||n<e.minH)return Error(`maxHeight smaller than item height/minHeight`)},i:r.default.string.isRequired,resizeHandles:d.resizeHandleAxesType,resizeHandle:d.resizeHandleType,onDragStop:r.default.func,onDragStart:r.default.func,onDrag:r.default.func,onResizeStop:r.default.func,onResizeStart:r.default.func,onResize:r.default.func,isDraggable:r.default.bool.isRequired,isResizable:r.default.bool.isRequired,isBounded:r.default.bool.isRequired,static:r.default.bool,useCSSTransforms:r.default.bool.isRequired,transformScale:r.default.number,className:r.default.string,handle:r.default.string,cancel:r.default.string,droppingPosition:r.default.shape({e:r.default.object.isRequired,left:r.default.number.isRequired,top:r.default.number.isRequired})}),g(y,`defaultProps`,{className:``,cancel:``,handle:``,minH:1,minW:1,maxH:1/0,maxW:1/0,transformScale:1})})),Ze=n((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=u(a()),n=W(),r=l(G()),i=K(),o=q(),s=l(Xe()),c=l(Ye());function l(e){return e&&e.__esModule?e:{default:e}}function u(e,t){if(typeof WeakMap==`function`)var n=new WeakMap,r=new WeakMap;return(u=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(e===null||typeof e!=`object`&&typeof e!=`function`)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(let t in e)t!=="default"&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function f(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?d(Object(n),!0).forEach(function(t){p(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):d(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function p(e,t,n){return(t=m(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function m(e){var t=h(e,`string`);return typeof t==`symbol`?t:t+``}function h(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var g=`react-grid-layout`,_=!1;try{_=/firefox/i.test(navigator.userAgent)}catch{}var v=class extends t.Component{constructor(){super(...arguments),p(this,`state`,{activeDrag:null,layout:(0,i.synchronizeLayoutWithChildren)(this.props.layout,this.props.children,this.props.cols,(0,i.compactType)(this.props),this.props.allowOverlap),mounted:!1,oldDragItem:null,oldLayout:null,oldResizeItem:null,resizing:!1,droppingDOMNode:null,children:[]}),p(this,`dragEnterCounter`,0),p(this,`onDragStart`,(e,t,n,r)=>{let{e:a,node:o}=r,{layout:s}=this.state,c=(0,i.getLayoutItem)(s,e);if(!c)return;let l={w:c.w,h:c.h,x:c.x,y:c.y,placeholder:!0,i:e};return this.setState({oldDragItem:(0,i.cloneLayoutItem)(c),oldLayout:s,activeDrag:l}),this.props.onDragStart(s,c,c,null,a,o)}),p(this,`onDrag`,(e,t,n,r)=>{let{e:a,node:o}=r,{oldDragItem:s}=this.state,{layout:c}=this.state,{cols:l,allowOverlap:u,preventCollision:d}=this.props,f=(0,i.getLayoutItem)(c,e);if(!f)return;let p={w:f.w,h:f.h,x:f.x,y:f.y,placeholder:!0,i:e};c=(0,i.moveElement)(c,f,t,n,!0,d,(0,i.compactType)(this.props),l,u),this.props.onDrag(c,s,f,p,a,o),this.setState({layout:u?c:(0,i.compact)(c,(0,i.compactType)(this.props),l),activeDrag:p})}),p(this,`onDragStop`,(e,t,n,r)=>{let{e:a,node:o}=r;if(!this.state.activeDrag)return;let{oldDragItem:s}=this.state,{layout:c}=this.state,{cols:l,preventCollision:u,allowOverlap:d}=this.props,f=(0,i.getLayoutItem)(c,e);if(!f)return;c=(0,i.moveElement)(c,f,t,n,!0,u,(0,i.compactType)(this.props),l,d);let p=d?c:(0,i.compact)(c,(0,i.compactType)(this.props),l);this.props.onDragStop(p,s,f,null,a,o);let{oldLayout:m}=this.state;this.setState({activeDrag:null,layout:p,oldDragItem:null,oldLayout:null}),this.onLayoutMaybeChanged(p,m)}),p(this,`onResizeStart`,(e,t,n,r)=>{let{e:a,node:o}=r,{layout:s}=this.state,c=(0,i.getLayoutItem)(s,e);c&&(this.setState({oldResizeItem:(0,i.cloneLayoutItem)(c),oldLayout:this.state.layout,resizing:!0}),this.props.onResizeStart(s,c,c,null,a,o))}),p(this,`onResize`,(e,t,n,r)=>{let{e:a,node:o,size:s,handle:c}=r,{oldResizeItem:l}=this.state,{layout:u}=this.state,{cols:d,preventCollision:p,allowOverlap:m}=this.props,h=!1,g,_,v,[y,b]=(0,i.withLayoutItem)(u,e,e=>{let r;return _=e.x,v=e.y,[`sw`,`w`,`nw`,`n`,`ne`].indexOf(c)!==-1&&([`sw`,`nw`,`w`].indexOf(c)!==-1&&(_=e.x+(e.w-t),t=e.x!==_&&_<0?e.w:t,_=_<0?0:_),[`ne`,`n`,`nw`].indexOf(c)!==-1&&(v=e.y+(e.h-n),n=e.y!==v&&v<0?e.h:n,v=v<0?0:v),h=!0),p&&!m&&(r=(0,i.getAllCollisions)(u,f(f({},e),{},{w:t,h:n,x:_,y:v})).filter(t=>t.i!==e.i).length>0,r&&(v=e.y,n=e.h,_=e.x,t=e.w,h=!1)),e.w=t,e.h=n,e});if(!b)return;g=y,h&&(g=(0,i.moveElement)(y,b,_,v,!0,this.props.preventCollision,(0,i.compactType)(this.props),d,m));let x={w:b.w,h:b.h,x:b.x,y:b.y,static:!0,i:e};this.props.onResize(g,l,b,x,a,o),this.setState({layout:m?g:(0,i.compact)(g,(0,i.compactType)(this.props),d),activeDrag:x})}),p(this,`onResizeStop`,(e,t,n,r)=>{let{e:a,node:o}=r,{layout:s,oldResizeItem:c}=this.state,{cols:l,allowOverlap:u}=this.props,d=(0,i.getLayoutItem)(s,e),f=u?s:(0,i.compact)(s,(0,i.compactType)(this.props),l);this.props.onResizeStop(f,c,d,null,a,o);let{oldLayout:p}=this.state;this.setState({activeDrag:null,layout:f,oldResizeItem:null,oldLayout:null,resizing:!1}),this.onLayoutMaybeChanged(f,p)}),p(this,`onDragOver`,e=>{var n;if(e.preventDefault(),e.stopPropagation(),_&&!((n=e.nativeEvent.target)!=null&&n.classList.contains(g)))return!1;let{droppingItem:r,onDropDragOver:i,margin:a,cols:s,rowHeight:c,maxRows:l,width:u,containerPadding:d,transformScale:p}=this.props,m=i?.(e);if(m===!1)return this.state.droppingDOMNode&&this.removeDroppingPlaceholder(),!1;let h=f(f({},r),m),{layout:v}=this.state,y=e.currentTarget.getBoundingClientRect(),b=e.clientX-y.left,x=e.clientY-y.top,S={left:b/p,top:x/p,e};if(!this.state.droppingDOMNode){let e={cols:s,margin:a,maxRows:l,rowHeight:c,containerWidth:u,containerPadding:d||a},n=(0,o.calcXY)(e,x,b,h.w,h.h);this.setState({droppingDOMNode:t.createElement(`div`,{key:h.i}),droppingPosition:S,layout:[...v,f(f({},h),{},{x:n.x,y:n.y,static:!1,isDraggable:!0})]})}else if(this.state.droppingPosition){let{left:e,top:t}=this.state.droppingPosition;(e!=b||t!=x)&&this.setState({droppingPosition:S})}}),p(this,`removeDroppingPlaceholder`,()=>{let{droppingItem:e,cols:t}=this.props,{layout:n}=this.state,r=(0,i.compact)(n.filter(t=>t.i!==e.i),(0,i.compactType)(this.props),t,this.props.allowOverlap);this.setState({layout:r,droppingDOMNode:null,activeDrag:null,droppingPosition:void 0})}),p(this,`onDragLeave`,e=>{e.preventDefault(),e.stopPropagation(),this.dragEnterCounter--,this.dragEnterCounter===0&&this.removeDroppingPlaceholder()}),p(this,`onDragEnter`,e=>{e.preventDefault(),e.stopPropagation(),this.dragEnterCounter++}),p(this,`onDrop`,e=>{e.preventDefault(),e.stopPropagation();let{droppingItem:t}=this.props,{layout:n}=this.state,r=n.find(e=>e.i===t.i);this.dragEnterCounter=0,this.removeDroppingPlaceholder(),this.props.onDrop(n,r,e)})}componentDidMount(){this.setState({mounted:!0}),this.onLayoutMaybeChanged(this.state.layout,this.props.layout)}static getDerivedStateFromProps(e,t){let r;return t.activeDrag?null:(!(0,n.deepEqual)(e.layout,t.propsLayout)||e.compactType!==t.compactType?r=e.layout:(0,i.childrenEqual)(e.children,t.children)||(r=t.layout),r?{layout:(0,i.synchronizeLayoutWithChildren)(r,e.children,e.cols,(0,i.compactType)(e),e.allowOverlap),compactType:e.compactType,children:e.children,propsLayout:e.layout}:null)}shouldComponentUpdate(e,t){return this.props.children!==e.children||!(0,i.fastRGLPropsEqual)(this.props,e,n.deepEqual)||this.state.activeDrag!==t.activeDrag||this.state.mounted!==t.mounted||this.state.droppingPosition!==t.droppingPosition}componentDidUpdate(e,t){if(!this.state.activeDrag){let e=this.state.layout,n=t.layout;this.onLayoutMaybeChanged(e,n)}}containerHeight(){if(!this.props.autoSize)return;let e=(0,i.bottom)(this.state.layout),t=this.props.containerPadding?this.props.containerPadding[1]:this.props.margin[1];return e*this.props.rowHeight+(e-1)*this.props.margin[1]+t*2+`px`}onLayoutMaybeChanged(e,t){t||=this.state.layout,(0,n.deepEqual)(t,e)||this.props.onLayoutChange(e)}placeholder(){let{activeDrag:e}=this.state;if(!e)return null;let{width:n,cols:r,margin:i,containerPadding:a,rowHeight:o,maxRows:c,useCSSTransforms:l,transformScale:u}=this.props;return t.createElement(s.default,{w:e.w,h:e.h,x:e.x,y:e.y,i:e.i,className:`react-grid-placeholder ${this.state.resizing?`placeholder-resizing`:``}`,containerWidth:n,cols:r,margin:i,containerPadding:a||i,maxRows:c,rowHeight:o,isDraggable:!1,isResizable:!1,isBounded:!1,useCSSTransforms:l,transformScale:u},t.createElement(`div`,null))}processGridItem(e,n){if(!e||!e.key)return;let r=(0,i.getLayoutItem)(this.state.layout,String(e.key));if(!r)return null;let{width:a,cols:o,margin:c,containerPadding:l,rowHeight:u,maxRows:d,isDraggable:f,isResizable:p,isBounded:m,useCSSTransforms:h,transformScale:g,draggableCancel:_,draggableHandle:v,resizeHandles:y,resizeHandle:b}=this.props,{mounted:x,droppingPosition:S}=this.state,C=typeof r.isDraggable==`boolean`?r.isDraggable:!r.static&&f,w=typeof r.isResizable==`boolean`?r.isResizable:!r.static&&p,T=r.resizeHandles||y,E=C&&m&&r.isBounded!==!1;return t.createElement(s.default,{containerWidth:a,cols:o,margin:c,containerPadding:l||c,maxRows:d,rowHeight:u,cancel:_,handle:v,onDragStop:this.onDragStop,onDragStart:this.onDragStart,onDrag:this.onDrag,onResizeStart:this.onResizeStart,onResize:this.onResize,onResizeStop:this.onResizeStop,isDraggable:C,isResizable:w,isBounded:E,useCSSTransforms:h&&x,usePercentages:!x,transformScale:g,w:r.w,h:r.h,x:r.x,y:r.y,i:r.i,minH:r.minH,minW:r.minW,maxH:r.maxH,maxW:r.maxW,static:r.static,droppingPosition:n?S:void 0,resizeHandles:T,resizeHandle:b},e)}render(){let{className:e,style:n,isDroppable:a,innerRef:o}=this.props,s=(0,r.default)(g,e),c=f({height:this.containerHeight()},n);return t.createElement(`div`,{ref:o,className:s,style:c,onDrop:a?this.onDrop:i.noop,onDragLeave:a?this.onDragLeave:i.noop,onDragEnter:a?this.onDragEnter:i.noop,onDragOver:a?this.onDragOver:i.noop},t.Children.map(this.props.children,e=>this.processGridItem(e)),a&&this.state.droppingDOMNode&&this.processGridItem(this.state.droppingDOMNode,!0),this.placeholder())}};e.default=v,p(v,`displayName`,`ReactGridLayout`),p(v,`propTypes`,c.default),p(v,`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:i.noop,onDragStart:i.noop,onDrag:i.noop,onDragStop:i.noop,onResizeStart:i.noop,onResize:i.noop,onResizeStop:i.noop,onDrop:i.noop,onDropDragOver:i.noop})})),Qe=n((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.findOrGenerateResponsiveLayout=i,e.getBreakpointFromWidth=n,e.getColsFromBreakpoint=r,e.sortBreakpoints=a;var t=K();function n(e,t){let n=a(e),r=n[0];for(let i=1,a=n.length;i<a;i++){let a=n[i];t>e[a]&&(r=a)}return r}function r(e,t){if(!t[e])throw Error("ResponsiveReactGridLayout: `cols` entry for breakpoint "+e+` is missing!`);return t[e]}function i(e,n,r,i,o,s){if(e[r])return(0,t.cloneLayout)(e[r]);let c=e[i],l=a(n),u=l.slice(l.indexOf(r));for(let t=0,n=u.length;t<n;t++){let n=u[t];if(e[n]){c=e[n];break}}return c=(0,t.cloneLayout)(c||[]),(0,t.compact)((0,t.correctBounds)(c,{cols:o}),s,o)}function a(e){return Object.keys(e).sort(function(t,n){return e[t]-e[n]})}})),$e=n((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=d(a()),n=u(c()),r=W(),i=K(),o=Qe(),s=u(Ze()),l=[`breakpoint`,`breakpoints`,`cols`,`layouts`,`margin`,`containerPadding`,`onBreakpointChange`,`onLayoutChange`,`onWidthChange`];function u(e){return e&&e.__esModule?e:{default:e}}function d(e,t){if(typeof WeakMap==`function`)var n=new WeakMap,r=new WeakMap;return(d=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(e===null||typeof e!=`object`&&typeof e!=`function`)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(let t in e)t!=="default"&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}function f(){return f=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(null,arguments)}function p(e,t){if(e==null)return{};var n,r,i=m(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function m(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function h(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function g(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?h(Object(n),!0).forEach(function(t){_(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):h(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function _(e,t,n){return(t=v(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function v(e){var t=y(e,`string`);return typeof t==`symbol`?t:t+``}function y(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var b=e=>Object.prototype.toString.call(e);function x(e,t){return e==null?null:Array.isArray(e)?e:e[t]}var S=class extends t.Component{constructor(){super(...arguments),_(this,`state`,this.generateInitialState()),_(this,`onLayoutChange`,e=>{this.props.onLayoutChange(e,g(g({},this.props.layouts),{},{[this.state.breakpoint]:e}))})}generateInitialState(){let{width:e,breakpoints:t,layouts:n,cols:r}=this.props,i=(0,o.getBreakpointFromWidth)(t,e),a=(0,o.getColsFromBreakpoint)(i,r),s=this.props.verticalCompact===!1?null:this.props.compactType;return{layout:(0,o.findOrGenerateResponsiveLayout)(n,t,i,i,a,s),breakpoint:i,cols:a}}static getDerivedStateFromProps(e,t){if(!(0,r.deepEqual)(e.layouts,t.layouts)){let{breakpoint:n,cols:r}=t;return{layout:(0,o.findOrGenerateResponsiveLayout)(e.layouts,e.breakpoints,n,n,r,e.compactType),layouts:e.layouts}}return null}componentDidUpdate(e){(this.props.width!=e.width||this.props.breakpoint!==e.breakpoint||!(0,r.deepEqual)(this.props.breakpoints,e.breakpoints)||!(0,r.deepEqual)(this.props.cols,e.cols))&&this.onWidthChange(e)}onWidthChange(e){let{breakpoints:t,cols:n,layouts:r,compactType:a}=this.props,s=this.props.breakpoint||(0,o.getBreakpointFromWidth)(this.props.breakpoints,this.props.width),c=this.state.breakpoint,l=(0,o.getColsFromBreakpoint)(s,n),u=g({},r);if(c!==s||e.breakpoints!==t||e.cols!==n){c in u||(u[c]=(0,i.cloneLayout)(this.state.layout));let e=(0,o.findOrGenerateResponsiveLayout)(u,t,s,c,l,a);e=(0,i.synchronizeLayoutWithChildren)(e,this.props.children,l,a,this.props.allowOverlap),u[s]=e,this.props.onBreakpointChange(s,l),this.props.onLayoutChange(e,u),this.setState({breakpoint:s,layout:e,cols:l})}let d=x(this.props.margin,s),f=x(this.props.containerPadding,s);this.props.onWidthChange(this.props.width,d,l,f)}render(){let e=this.props,{breakpoint:n,breakpoints:r,cols:i,layouts:a,margin:o,containerPadding:c,onBreakpointChange:u,onLayoutChange:d,onWidthChange:m}=e,h=p(e,l);return t.createElement(s.default,f({},h,{margin:x(o,this.state.breakpoint),containerPadding:x(c,this.state.breakpoint),onLayoutChange:this.onLayoutChange,layout:this.state.layout,cols:this.state.cols}))}};e.default=S,_(S,`propTypes`,{breakpoint:n.default.string,breakpoints:n.default.object,allowOverlap:n.default.bool,cols:n.default.object,margin:n.default.oneOfType([n.default.array,n.default.object]),containerPadding:n.default.oneOfType([n.default.array,n.default.object]),layouts(e,t){if(b(e[t])!==`[object Object]`)throw Error(`Layout property must be an object. Received: `+b(e[t]));Object.keys(e[t]).forEach(t=>{if(!(t in e.breakpoints))throw Error(`Each key in layouts must align with a key in breakpoints.`);(0,i.validateLayout)(e.layouts[t],`layouts.`+t)})},width:n.default.number.isRequired,onBreakpointChange:n.default.func,onLayoutChange:n.default.func,onWidthChange:n.default.func}),_(S,`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:i.noop,onLayoutChange:i.noop,onWidthChange:i.noop})})),et=t({default:()=>wt});function tt(e,t){var n=!1,r=!1,i=0;function a(){n&&(n=!1,e()),r&&s()}function o(){ut(a)}function s(){var e=Date.now();if(n){if(e-i<dt)return;r=!0}else n=!0,r=!1,setTimeout(o,t);i=e}return s}function Y(e){return parseFloat(e)||0}function nt(e){return[...arguments].slice(1).reduce(function(t,n){var r=e[`border-`+n+`-width`];return t+Y(r)},0)}function rt(e){for(var t=[`top`,`right`,`bottom`,`left`],n={},r=0,i=t;r<i.length;r++){var a=i[r],o=e[`padding-`+a];n[a]=Y(o)}return n}function it(e){var t=e.getBBox();return X(0,0,t.width,t.height)}function at(e){var t=e.clientWidth,n=e.clientHeight;if(!t&&!n)return _t;var r=$(e).getComputedStyle(e),i=rt(r),a=i.left+i.right,o=i.top+i.bottom,s=Y(r.width),c=Y(r.height);if(r.boxSizing===`border-box`&&(Math.round(s+a)!==t&&(s-=nt(r,`left`,`right`)+a),Math.round(c+o)!==n&&(c-=nt(r,`top`,`bottom`)+o)),!ot(e)){var l=Math.round(s+a)-t,u=Math.round(c+o)-n;Math.abs(l)!==1&&(s-=l),Math.abs(u)!==1&&(c-=u)}return X(i.left,i.top,s,c)}function ot(e){return e===$(e).document.documentElement}function st(e){return Z?vt(e)?it(e):at(e):_t}function ct(e){var t=e.x,n=e.y,r=e.width,i=e.height,a=Object.create((typeof DOMRectReadOnly<`u`?DOMRectReadOnly:Object).prototype);return gt(a,{x:t,y:n,width:r,height:i,top:n,right:t+r,bottom:i+n,left:t}),a}function X(e,t,n,r){return{x:e,y:t,width:n,height:r}}var lt,Z,Q,ut,dt,ft,pt,mt,ht,gt,$,_t,vt,yt,bt,xt,St,Ct,wt,Tt=i((()=>{lt=(function(){if(typeof Map<`u`)return Map;function e(e,t){var n=-1;return e.some(function(e,r){return e[0]===t?(n=r,!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(t){var n=e(this.__entries__,t),r=this.__entries__[n];return r&&r[1]},t.prototype.set=function(t,n){var r=e(this.__entries__,t);~r?this.__entries__[r][1]=n:this.__entries__.push([t,n])},t.prototype.delete=function(t){var n=this.__entries__,r=e(n,t);~r&&n.splice(r,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){t===void 0&&(t=null);for(var n=0,r=this.__entries__;n<r.length;n++){var i=r[n];e.call(t,i[1],i[0])}},t}()})(),Z=typeof window<`u`&&typeof document<`u`&&window.document===document,Q=(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`)()})(),ut=(function(){return typeof requestAnimationFrame==`function`?requestAnimationFrame.bind(Q):function(e){return setTimeout(function(){return e(Date.now())},1e3/60)}})(),dt=2,ft=20,pt=[`top`,`right`,`bottom`,`left`,`width`,`height`,`size`,`weight`],mt=typeof MutationObserver<`u`,ht=function(){function e(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=tt(this.refresh.bind(this),ft)}return e.prototype.addObserver=function(e){~this.observers_.indexOf(e)||this.observers_.push(e),this.connected_||this.connect_()},e.prototype.removeObserver=function(e){var t=this.observers_,n=t.indexOf(e);~n&&t.splice(n,1),!t.length&&this.connected_&&this.disconnect_()},e.prototype.refresh=function(){this.updateObservers_()&&this.refresh()},e.prototype.updateObservers_=function(){var e=this.observers_.filter(function(e){return e.gatherActive(),e.hasActive()});return e.forEach(function(e){return e.broadcastActive()}),e.length>0},e.prototype.connect_=function(){!Z||this.connected_||(document.addEventListener(`transitionend`,this.onTransitionEnd_),window.addEventListener(`resize`,this.refresh),mt?(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(){!Z||!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(e){var t=e.propertyName,n=t===void 0?``:t;pt.some(function(e){return!!~n.indexOf(e)})&&this.refresh()},e.getInstance=function(){return this.instance_||=new e,this.instance_},e.instance_=null,e}(),gt=(function(e,t){for(var n=0,r=Object.keys(t);n<r.length;n++){var i=r[n];Object.defineProperty(e,i,{value:t[i],enumerable:!1,writable:!1,configurable:!0})}return e}),$=(function(e){return e&&e.ownerDocument&&e.ownerDocument.defaultView||Q}),_t=X(0,0,0,0),vt=(function(){return typeof SVGGraphicsElement<`u`?function(e){return e instanceof $(e).SVGGraphicsElement}:function(e){return e instanceof $(e).SVGElement&&typeof e.getBBox==`function`}})(),yt=function(){function e(e){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=X(0,0,0,0),this.target=e}return e.prototype.isActive=function(){var e=st(this.target);return this.contentRect_=e,e.width!==this.broadcastWidth||e.height!==this.broadcastHeight},e.prototype.broadcastRect=function(){var e=this.contentRect_;return this.broadcastWidth=e.width,this.broadcastHeight=e.height,e},e}(),bt=function(){function e(e,t){var n=ct(t);gt(this,{target:e,contentRect:n})}return e}(),xt=function(){function e(e,t,n){if(this.activeObservations_=[],this.observations_=new lt,typeof e!=`function`)throw TypeError(`The callback provided as parameter 1 is not a function.`);this.callback_=e,this.controller_=t,this.callbackCtx_=n}return e.prototype.observe=function(e){if(!arguments.length)throw TypeError(`1 argument required, but only 0 present.`);if(!(typeof Element>`u`||!(Element instanceof Object))){if(!(e instanceof $(e).Element))throw TypeError(`parameter 1 is not of type "Element".`);var t=this.observations_;t.has(e)||(t.set(e,new yt(e)),this.controller_.addObserver(this),this.controller_.refresh())}},e.prototype.unobserve=function(e){if(!arguments.length)throw TypeError(`1 argument required, but only 0 present.`);if(!(typeof Element>`u`||!(Element instanceof Object))){if(!(e instanceof $(e).Element))throw TypeError(`parameter 1 is not of type "Element".`);var t=this.observations_;t.has(e)&&(t.delete(e),t.size||this.controller_.removeObserver(this))}},e.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},e.prototype.gatherActive=function(){var e=this;this.clearActive(),this.observations_.forEach(function(t){t.isActive()&&e.activeObservations_.push(t)})},e.prototype.broadcastActive=function(){if(this.hasActive()){var e=this.callbackCtx_,t=this.activeObservations_.map(function(e){return new bt(e.target,e.broadcastRect())});this.callback_.call(e,t,e),this.clearActive()}},e.prototype.clearActive=function(){this.activeObservations_.splice(0)},e.prototype.hasActive=function(){return this.activeObservations_.length>0},e}(),St=typeof WeakMap<`u`?new WeakMap:new lt,Ct=function(){function e(t){if(!(this instanceof e))throw TypeError(`Cannot call a class as a function.`);if(!arguments.length)throw TypeError(`1 argument required, but only 0 present.`);var n=new xt(t,ht.getInstance(),this);St.set(this,n)}return e}(),[`observe`,`unobserve`,`disconnect`].forEach(function(e){Ct.prototype[e]=function(){var t;return(t=St.get(this))[e].apply(t,arguments)}}),wt=(function(){return Q.ResizeObserver===void 0?Ct:Q.ResizeObserver})()})),Et=n((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=v;var n=u(a()),r=l(c()),i=l((Tt(),e(et))),o=l(G()),s=[`measureBeforeMount`];function l(e){return e&&e.__esModule?e:{default:e}}function u(e,t){if(typeof WeakMap==`function`)var n=new WeakMap,r=new WeakMap;return(u=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(e===null||typeof e!=`object`&&typeof e!=`function`)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(let t in e)t!=="default"&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},d.apply(null,arguments)}function f(e,t){if(e==null)return{};var n,r,i=p(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function p(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function m(e,t,n){return(t=h(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function h(e){var t=g(e,`string`);return typeof t==`symbol`?t:t+``}function g(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var _=`react-grid-layout`;function v(e){var t;return t=class extends n.Component{constructor(){super(...arguments),m(this,`state`,{width:1280}),m(this,`elementRef`,n.createRef()),m(this,`mounted`,!1),m(this,`resizeObserver`,void 0)}componentDidMount(){this.mounted=!0,this.resizeObserver=new i.default(e=>{if(this.elementRef.current instanceof HTMLElement){let t=e[0].contentRect.width;this.setState({width:t})}});let e=this.elementRef.current;e instanceof HTMLElement&&this.resizeObserver.observe(e)}componentWillUnmount(){this.mounted=!1;let e=this.elementRef.current;e instanceof HTMLElement&&this.resizeObserver.unobserve(e),this.resizeObserver.disconnect()}render(){let t=this.props,{measureBeforeMount:r}=t,i=f(t,s);return r&&!this.mounted?n.createElement(`div`,{className:(0,o.default)(this.props.className,_),style:this.props.style,ref:this.elementRef}):n.createElement(e,d({innerRef:this.elementRef},i,this.state))}},m(t,`defaultProps`,{measureBeforeMount:!1}),m(t,`propTypes`,{measureBeforeMount:r.default.bool}),t}})),Dt=r(n(((e,t)=>{t.exports=Ze().default,t.exports.utils=K(),t.exports.calculateUtils=q(),t.exports.Responsive=$e().default,t.exports.Responsive.utils=Qe(),t.exports.WidthProvider=Et().default}))(),1),Ot=(0,Dt.WidthProvider)(Dt.default),kt=d(`div`)(({theme:e})=>({"& .react-grid-item":{borderRadius:`${e.shape.borderRadiusMedium}px`},"& .grid-item-drag-handle":{[e.breakpoints.down(`md`)]:{display:`none`}}})),At=d(`div`)(({theme:e})=>({border:`1px solid ${e.palette.divider}`})),jt=({items:e,onLayoutChange:t,cols:n={lg:12,md:12,sm:6,xs:4,xxs:2},rowHeight:r=180})=>{let i=l(),a=f(i.breakpoints.down(`md`)),o=(0,U.useMemo)(()=>{if(a){let t=0;return e.map(e=>{let r={i:e.id,x:0,y:t,w:n.xs,h:e.h??4,minW:n.xs,minH:e.minH??3,maxW:n.xs,maxH:e.maxH??8,static:!1};return t+=r.h,r})}return e.map((e,t)=>({i:e.id,x:e.x??t%Math.floor(n.lg/(e.w??4))*(e.w??4),y:e.y??Math.floor(t/Math.floor(n.lg/(e.w??4)))*(e.h??4),w:e.w??4,h:e.h??4,minW:e.minW??4,minH:e.minH??3,maxW:e.maxW??12,maxH:e.maxH??8,static:e.static??!1}))},[e,n,a]),s=(0,U.useMemo)(()=>e.map(e=>(0,H.jsx)(At,{children:e.component},e.id)),[e]),c=(0,U.useCallback)(e=>{a||t?.(e)},[t,a]);return(0,H.jsx)(kt,{children:(0,H.jsx)(Ot,{className:`impact-metrics-grid`,layout:o,cols:a?n.xs:n.lg,rowHeight:r,margin:[Number.parseInt(i.spacing(2),10),Number.parseInt(i.spacing(2),10)],containerPadding:[0,0],isDraggable:!1,isResizable:!1,onLayoutChange:c,resizeHandles:[`se`],draggableHandle:`.grid-item-drag-handle`,compactType:a?null:`vertical`,preventCollision:!1,useCSSTransforms:!0,autoSize:!0,allowOverlap:!1,children:s})})};export{ae as a,oe as i,Fe as n,Ee as r,jt as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e,t}from"./react-GZhdek4G.js";import{r as n}from"./chunk-QUQL4437-Dr42NpoL.js";import{t as r}from"./useTheme-CQqAmDLr.js";import{t as i}from"./jsx-runtime-BnvnyDTF.js";import{v as a}from"./createSimplePaletteValueFilter-BRAMrHWJ.js";import{t as o}from"./Tooltip-BaILXXti.js";import{b as s,i as c,r as l,t as u}from"./TextField-oipjeg6n.js";import{g as d}from"./Popover-CUTnSn2h.js";import{t as f}from"./Radio-DL8ja0ll.js";import{i as p}from"./CircularProgress-C_LUU3DK.js";import{n as m}from"./ConditionallyRender---uTpMBn.js";import{r as h,t as g}from"./Alert-_bLyWbvx.js";import{t as _}from"./Typography-BTdLWIUX.js";import{t as v}from"./Box-BQsxfFmC.js";import{t as y}from"./Button-CebB8EPB.js";import{t as ee}from"./Divider-CsdWvu5F.js";import{t as b}from"./FormControlLabel-F5gDLixN.js";import{t as te}from"./Link-CfIScd2f.js";import{a as ne,i as x,n as S,o as re,r as ie,t as ae}from"./useEnvironments-CTguhgy0.js";import{r as C,t as oe}from"./PageContent-c0NDm5oD.js";import{i as w,n as T,t as E}from"./metricsFormatters-BEX2qb8Y.js";import{Fs as D,Go as O,Gs as se,Is as k,Lo as ce,M as le,Ms as ue,Ns as de,Ra as fe,To as A,U as pe,Uo as j,es as M,fo as me,hs as he,jr as ge,mo as N,no as _e,qa as ve,ss as ye,va as be,za as xe,zi as P,zo as F}from"./index-BJ2iUk24.js";import{a as I,i as Se,n as Ce,o as L,r as we,t as Te}from"./useGroupedImpactMetricsData-CK8Pz2an.js";import{t as Ee}from"./impact-metrics-icon-6dt-ye-h.js";var R=e(t(),1),z=e=>{let t=e>0?`+`:e<0?`−`:``,n=Math.abs(e);return`${t}${n>=10||Number.isInteger(n)?`${Math.round(n)}`:n.toFixed(1)}%`},B=2,V=(e,t,n,r,i)=>n===t?(r+i)/2:r+(e-t)/(n-t)*(i-r),De=e=>{let t=e.data.filter(([,e])=>Number.isFinite(e));if(t.length<2)return null;let n=t.map(([e])=>e),r=t.map(([,e])=>e),i=n[0],a=n[n.length-1],o=Math.min(...r),s=Math.max(...r),c=B,l=64-B,u=e=>V(e,i,a,0,320),d=e=>V(e,o,s,l,c),f=t.map(([e,t],n)=>`${n===0?`M`:`L`} ${u(e).toFixed(1)} ${d(t).toFixed(1)}`).join(` `),p=u(i).toFixed(1);return{line:f,area:`${f} L ${u(a).toFixed(1)} 64 L ${p} 64 Z`}},H=i(),Oe=a(v)(({theme:e})=>({position:`relative`,display:`flex`,flexDirection:`column`,flex:1,justifyContent:`center`,gap:e.spacing(.5),margin:e.spacing(-3,-3,-3,-3),padding:e.spacing(4,3,4,3),borderTopRightRadius:e.shape.borderRadiusMedium,background:e.mode===`dark`?`linear-gradient(135deg, ${e.palette.background.alternative} 0%, ${e.palette.action.alternative} 100%)`:`linear-gradient(135deg, ${e.palette.primary.main} 0%, ${e.palette.primary.dark} 100%)`,color:e.palette.common.white,overflow:`hidden`,[e.breakpoints.down(`lg`)]:{margin:e.spacing(-2.5,-2,-2.5,-2),padding:e.spacing(3.5,2,3.5,2),borderTopRightRadius:0}})),ke=a(v)(({theme:e})=>({display:`grid`,gridTemplateColumns:`minmax(0, 1fr) minmax(140px, 0.6fr)`,gap:e.spacing(2.5),alignItems:`stretch`,[e.breakpoints.down(`md`)]:{gridTemplateColumns:`1fr`,gap:e.spacing(1.5),alignItems:`center`}})),Ae=a(v)(({theme:e})=>({display:`flex`,flexDirection:`column`,gap:e.spacing(.5),minWidth:0})),je=a(v)(({theme:e})=>({width:`100%`,minHeight:64,display:`flex`,alignItems:`stretch`,[e.breakpoints.down(`md`)]:{height:64*.7,minHeight:`unset`}})),Me=a(v)(({theme:e})=>({display:`inline-flex`,alignItems:`center`,gap:e.spacing(.75),color:e.palette.common.white})),Ne=a(_)(({theme:e})=>({fontSize:e.fontSizes.smallerBody,fontWeight:e.typography.fontWeightBold,color:e.palette.common.white,textTransform:`uppercase`,letterSpacing:`0.08em`})),Pe=a(_)(({theme:e})=>({fontSize:e.fontSizes.smallBody,fontWeight:e.typography.fontWeightBold,color:e.palette.common.white,lineHeight:1.3,display:`-webkit-box`,WebkitLineClamp:2,WebkitBoxOrient:`vertical`,overflow:`hidden`,overflowWrap:`anywhere`})),Fe=a(v)(({theme:e})=>({display:`flex`,alignItems:`baseline`,gap:e.spacing(1),marginTop:e.spacing(1.5)})),Ie=a(_)(({theme:e})=>({fontSize:e.typography.h2.fontSize,fontWeight:700,color:e.palette.common.white,lineHeight:1})),Le=a(v)(({theme:e})=>({display:`inline-flex`,alignItems:`center`,gap:e.spacing(.5),fontSize:e.fontSizes.smallBody})),Re=a(_)(()=>({color:`rgba(255, 255, 255, 0.75)`,fontSize:`0.75rem`})),ze=a(`svg`)({width:`100%`,height:`100%`,display:`block`}),Be=e=>e===null||e===0?`flat`:e>0?`up`:`down`,U=e=>`${e>0?`+`:e<0?`−`:``}${E(Math.abs(e))}`,Ve=({goalMetricLabel:e,summary:t,series:n,timeLabel:i})=>{let a=r(),o=(0,R.useId)(),s=Be(t.deltaAbs),c=n?De(n):null,l=t.mode===`latest`&&t.deltaAbs!==null&&t.deltaAbs!==0,u=a.palette.common.white,d=a.palette.common.white,f=s===`up`?L:s===`down`?N:I,p=t.mode===`cumulative`?`Total over ${i.toLowerCase()}`:`vs. start of ${i.toLowerCase()}`;return(0,H.jsxs)(Oe,{children:[(0,H.jsxs)(Me,{children:[(0,H.jsx)(ye,{sx:{fontSize:16}}),(0,H.jsx)(Ne,{children:`Goal`})]}),(0,H.jsxs)(ke,{children:[(0,H.jsxs)(Ae,{children:[(0,H.jsx)(Pe,{title:e,children:e}),(0,H.jsxs)(Fe,{children:[(0,H.jsx)(Ie,{children:E(t.current)}),l&&t.deltaAbs!==null?(0,H.jsxs)(Le,{sx:{color:u},children:[(0,H.jsx)(f,{sx:{fontSize:16}}),(0,H.jsx)(_,{component:`span`,sx:{fontSize:`inherit`,fontWeight:600,color:`inherit`},children:t.deltaPct===null?U(t.deltaAbs):`${z(t.deltaPct)} (${U(t.deltaAbs)})`})]}):null]}),(0,H.jsx)(Re,{variant:`caption`,children:p})]}),c?(0,H.jsx)(je,{children:(0,H.jsxs)(ze,{viewBox:`0 0 320 64`,preserveAspectRatio:`none`,role:`img`,"aria-label":`${e} trend sparkline`,children:[(0,H.jsx)(`defs`,{children:(0,H.jsxs)(`linearGradient`,{id:o,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,H.jsx)(`stop`,{offset:`0%`,stopColor:d,stopOpacity:.35}),(0,H.jsx)(`stop`,{offset:`100%`,stopColor:d,stopOpacity:0})]})}),(0,H.jsx)(`path`,{d:c.area,fill:`url(#${o})`,stroke:`none`}),(0,H.jsx)(`path`,{d:c.line,fill:`none`,stroke:d,strokeWidth:1.5,strokeLinejoin:`round`,strokeLinecap:`round`,vectorEffect:`non-scaling-stroke`})]})}):null]})]})},He=a(v)(({theme:e})=>({borderRadius:e.shape.borderRadiusMedium,border:`1px solid ${e.palette.divider}`,backgroundColor:e.palette.background.paper,color:`inherit`})),Ue=a(v)(({theme:e})=>({display:`flex`,flexDirection:`row`,[e.breakpoints.down(`lg`)]:{flexDirection:`column`}})),We=a(v)({flex:2,minWidth:0,display:`flex`,flexDirection:`column`}),Ge=a(v)(({theme:e})=>({flex:1,display:`flex`,flexDirection:`column`,backgroundColor:e.palette.background.elevation1,borderTopRightRadius:e.shape.borderRadiusMedium,borderBottomRightRadius:e.shape.borderRadiusMedium,[e.breakpoints.down(`lg`)]:{borderTopRightRadius:0,borderBottomLeftRadius:e.shape.borderRadiusMedium}})),Ke=a(v)(({theme:e})=>({display:`flex`,flexDirection:`column`,padding:e.spacing(1.5,3,0,3),minWidth:0,[e.breakpoints.down(`lg`)]:{padding:e.spacing(1.5,2,0,2)}})),qe=a(v)(({theme:e})=>({display:`flex`,alignItems:`flex-end`,padding:e.spacing(3,3,0,3),minWidth:0,[e.breakpoints.down(`lg`)]:{padding:e.spacing(2.5,2,0,2)}})),Je=a(_)(({theme:e})=>({fontSize:e.fontSizes.smallBody,fontWeight:e.typography.fontWeightBold,color:e.palette.text.primary})),Ye=a(_)(({theme:e})=>({fontSize:e.fontSizes.smallerBody,color:e.palette.text.secondary})),Xe=a(_)(({theme:e})=>({fontSize:e.fontSizes.smallerBody,fontWeight:e.typography.fontWeightBold,color:e.palette.text.secondary,textTransform:`uppercase`,letterSpacing:`0.06em`})),Ze=a(v,{shouldForwardProp:e=>e!==`heightSpacing`})(({theme:e,heightSpacing:t})=>({display:`flex`,minWidth:0,flex:1,minHeight:e.spacing(t.base),padding:e.spacing(1.5,3),"& > *":{minWidth:0,flex:1},[e.breakpoints.down(`lg`)]:{minHeight:e.spacing(t.lg),padding:e.spacing(1.5,2)},[e.breakpoints.down(`sm`)]:{minHeight:e.spacing(t.sm)}})),Qe=a(v)(({theme:e})=>({flex:1,minWidth:0,display:`flex`,flexDirection:`column`,justifyContent:`center`,padding:e.spacing(1.5,3,3,3),[e.breakpoints.down(`lg`)]:{padding:e.spacing(1.5,2,2.5,2)}})),$e=a(v)(({theme:e})=>({flex:1,display:`flex`,flexDirection:`column`,padding:e.spacing(3,3,3,3),borderBottom:`1px solid ${e.palette.divider}`,[e.breakpoints.down(`lg`)]:{padding:e.spacing(2.5,2,2.5,2)}})),et=a(v)(({theme:e})=>({flex:1,display:`flex`,flexDirection:`column`,padding:e.spacing(2,2.5,1.25,2.5),borderBottom:`1px solid ${e.palette.divider}`,[e.breakpoints.down(`lg`)]:{padding:e.spacing(1.5,2,1,2)}})),tt=new Set([`count`,`sum`]),nt=({title:e,subtitle:t,timeRange:n,aggregationMode:r,stepSeries:i,stepTotals:a,featureEvents:o,start:s,end:c,loading:l,chartHeightSpacing:u,totalsHeaderSlot:d,totalsMiddleSlot:f,totalsLabel:p})=>{let m=r&&!tt.has(r)?`Last recorded value`:`Totals`;return(0,H.jsx)(He,{children:(0,H.jsxs)(Ue,{children:[(0,H.jsxs)(We,{children:[(0,H.jsxs)(Ke,{children:[(0,H.jsx)(Je,{children:e}),(0,H.jsx)(Ye,{children:t})]}),(0,H.jsx)(Ze,{heightSpacing:u,children:(0,H.jsx)(Ce,{stepSeries:i,timeRange:n,start:s,end:c,loading:l,featureEvents:o})})]}),(0,H.jsxs)(Ge,{children:[(0,H.jsx)($e,{children:d}),f?(0,H.jsx)(et,{children:f}):null,(0,H.jsx)(qe,{children:(0,H.jsx)(Xe,{children:p??m})}),(0,H.jsx)(Qe,{children:(0,H.jsx)(Se,{steps:a})})]})]})})},rt=[`initial`,`pre-live`,`live`,`completed`,`archived`,`unknown`],it=e=>e.lifecycleStage??`unknown`,at=a(`div`)(({theme:e})=>({display:`flex`,alignItems:`baseline`,gap:e.spacing(1),marginBottom:e.spacing(1.5)})),ot=a(_)(({theme:e})=>({fontSize:e.fontSizes.bodySize,fontWeight:e.typography.fontWeightBold,color:e.palette.text.primary})),st=a(_)(({theme:e})=>({fontSize:e.fontSizes.smallerBody,color:e.palette.text.secondary})),ct=a(ie)({"& th:first-of-type":{borderBottomLeftRadius:0},"& th:last-of-type":{borderBottomRightRadius:0}}),lt=a(m)(({theme:e})=>({borderRadius:e.shape.borderRadiusLarge,boxShadow:`none`,border:`1px solid ${e.palette.divider}`,overflow:`hidden`})),ut=a(S)(({theme:e})=>({backgroundColor:e.palette.background.elevation1})),dt=a(x)(({theme:e})=>({padding:e.spacing(.75,2),color:e.palette.text.secondary,fontSize:e.fontSizes.smallerBody,fontWeight:e.typography.fontWeightBold,letterSpacing:`0.04em`,textTransform:`uppercase`})),ft=a(`button`)(({theme:e})=>({all:`unset`,display:`flex`,alignItems:`center`,gap:e.spacing(.75),cursor:`pointer`,"&:focus-visible":{outline:`2px solid ${e.palette.primary.main}`,outlineOffset:2,borderRadius:e.shape.borderRadius}})),pt=a(v)(({theme:e})=>({display:`inline-flex`,alignItems:`center`,color:e.palette.text.disabled,"& svg":{fontSize:16}})),W=a(v)({display:`inline-flex`,alignItems:`center`,"& svg":{height:18,width:`auto`,display:`block`}}),mt=a(`span`)(({theme:e})=>({color:e.palette.text.disabled,fontWeight:e.typography.fontWeightRegular,textTransform:`none`,letterSpacing:0,marginLeft:e.spacing(.25)})),ht=a(v)(({theme:e})=>({display:`inline-flex`,alignItems:`center`,gap:e.spacing(1),color:e.palette.text.primary,fontWeight:e.typography.fontWeightMedium})),gt=a(te)(({theme:e})=>({fontWeight:e.typography.fontWeightBold})),_t=a(v)(({theme:e})=>({display:`inline-flex`,alignItems:`center`,gap:e.spacing(.75)})),vt=a(`span`)(({theme:e})=>({color:e.palette.text.disabled})),yt=({stage:e})=>(0,H.jsxs)(_t,{children:[(0,H.jsx)(W,{children:(0,H.jsx)(F,{stage:{name:e}})}),(0,H.jsx)(`span`,{children:ce(e)})]}),bt=({groupKey:e,count:t,collapsed:n,onToggle:r})=>(0,H.jsx)(ut,{children:(0,H.jsx)(dt,{colSpan:4,children:(0,H.jsxs)(ft,{type:`button`,"aria-expanded":!n,onClick:r,children:[(0,H.jsx)(pt,{children:n?(0,H.jsx)(xe,{}):(0,H.jsx)(he,{})}),e===`unknown`?(0,H.jsx)(`span`,{children:`Not found`}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(W,{children:(0,H.jsx)(F,{stage:{name:e}})}),(0,H.jsx)(`span`,{children:ce(e)})]}),(0,H.jsx)(mt,{children:t})]})})}),xt=({feature:e})=>(0,H.jsxs)(S,{children:[(0,H.jsx)(x,{children:(0,H.jsx)(ht,{children:e.project?(0,H.jsx)(gt,{component:n,to:`/projects/${e.project}/features/${e.name}`,underline:`hover`,children:e.name}):(0,H.jsx)(`span`,{children:e.name})})}),(0,H.jsx)(x,{children:e.project}),(0,H.jsx)(x,{sx:{textTransform:`capitalize`},children:e.type}),(0,H.jsx)(x,{children:e.lifecycleStage?(0,H.jsx)(yt,{stage:e.lifecycleStage}):(0,H.jsx)(vt,{children:`—`})})]}),St=({features:e})=>{let[t,n]=(0,R.useState)({}),r=(0,R.useMemo)(()=>rt.map(t=>({key:t,entries:e.filter(e=>it(e)===t)})).filter(e=>e.entries.length>0),[e]);if(e.length===0)return null;let i=e=>n(t=>({...t,[e]:!t[e]}));return(0,H.jsxs)(v,{children:[(0,H.jsxs)(at,{children:[(0,H.jsx)(ot,{children:`Followed features`}),(0,H.jsx)(st,{children:`${e.length} total`})]}),(0,H.jsx)(lt,{children:(0,H.jsxs)(re,{children:[(0,H.jsx)(ct,{children:(0,H.jsxs)(S,{children:[(0,H.jsx)(x,{children:`Name`}),(0,H.jsx)(x,{children:`Project`}),(0,H.jsx)(x,{children:`Type`}),(0,H.jsx)(x,{children:`Lifecycle stage`})]})}),(0,H.jsx)(ne,{children:r.map(({key:e,entries:n})=>(0,H.jsxs)(R.Fragment,{children:[(0,H.jsx)(bt,{groupKey:e,count:n.length,collapsed:!!t[e],onToggle:()=>i(e)}),t[e]?null:n.map(e=>(0,H.jsx)(xt,{feature:e},e.name))]},e))})]})})]})},Ct=1,G={hour:5*6e4,day:60*6e4,week:360*6e4,month:180*6e4,threeMonths:10080*6e4,sixMonths:10080*6e4},wt=({events:e,goalSeries:t,aggregationMode:n,visibleWindow:r,timeRange:i})=>{if(!Tt(t)||!Et(r))return[];let a=Dt(e);return Nt(Mt(a.map((e,o)=>Ot(e,{previousFlip:a[o-1],nextFlip:a[o+1],goalSeries:t,aggregationMode:n,visibleWindow:r,timeRange:i})).filter(jt)))},Tt=e=>!!(e&&e.data.length>0),Et=e=>e!==null&&Number.isFinite(e.minMs)&&Number.isFinite(e.maxMs),Dt=e=>e.filter(e=>!!e.featureName).sort((e,t)=>e.timestamp-t.timestamp).map(e=>({featureName:e.featureName,atSec:e.timestamp/1e3,event:e})),Ot=(e,t)=>{let n=kt(e,t);if(n<=0)return{featureName:e.featureName,deltaPct:null};let r=K(e.atSec-n,e.atSec,t),i=K(e.atSec,e.atSec+n,t),a=q(r,t),o=q(i,t);return a===null||o===null||a===0?{featureName:e.featureName,deltaPct:null}:{featureName:e.featureName,deltaPct:(o-a)/a*100,detail:{event:e.event,halfWindowMs:n*1e3,before:a,after:o,deltaAbs:o-a,preSeries:r,postSeries:i}}},kt=(e,{previousFlip:t,nextFlip:n,visibleWindow:r,timeRange:i})=>{let a=G[i]/1e3,o=t?(e.atSec-t.atSec)/2:1/0,s=n?(n.atSec-e.atSec)/2:1/0,c=e.atSec-r.minMs/1e3,l=r.maxMs/1e3-e.atSec;return Math.min(a,o,s,c,l)},At=new Set([`count`,`sum`]),K=(e,t,{goalSeries:n})=>n.data.filter(([n,r])=>n>=e&&n<t&&Number.isFinite(r)),q=(e,{aggregationMode:t})=>{if(e.length===0)return null;let n=e.reduce((e,[,t])=>e+t,0);return At.has(t)?n:n/e.length},jt=e=>e.deltaPct!==null,Mt=e=>{let t=new Map;for(let n of e){let e=t.get(n.featureName);(e===void 0||Math.abs(n.deltaPct)>=Math.abs(e.deltaPct))&&t.set(n.featureName,n)}return[...t.values()]},Nt=e=>e.map(({featureName:e,deltaPct:t,detail:n})=>({featureName:e,deltaPct:t,tone:Pt(t),detail:n})).sort((e,t)=>Math.abs(t.deltaPct)-Math.abs(e.deltaPct)||e.featureName.localeCompare(t.featureName)),Pt=e=>Math.abs(e)<Ct?`flat`:e>0?`up`:`down`,Ft=e=>{let t=Math.round(e/(60*1e3));if(t<60)return`${t}m`;let n=Math.round(e/(3600*1e3));return n<24?`${n}h`:`${Math.round(e/(1440*60*1e3))}d`},It=4,Lt={up:L,down:N,flat:I},Rt=a(v)(({theme:e})=>({display:`flex`,flexDirection:`column`,gap:e.spacing(.75),flex:1})),zt=a(v)(({theme:e})=>({display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:e.spacing(1)})),Bt=a(_)(({theme:e})=>({fontSize:e.fontSizes.smallerBody,fontWeight:e.typography.fontWeightBold,color:e.palette.text.secondary,textTransform:`uppercase`,letterSpacing:`0.06em`})),Vt=a(_)(({theme:e})=>({fontSize:e.fontSizes.smallerBody,fontWeight:600,color:e.palette.text.secondary,cursor:`default`})),Ht=a(v)(({theme:e})=>({display:`flex`,flexDirection:`column`,gap:e.spacing(.25)})),Ut=a(v)(({theme:e})=>({display:`grid`,gridTemplateColumns:`1fr auto`,alignItems:`center`,gap:e.spacing(1),padding:e.spacing(.5,.75),borderRadius:e.shape.borderRadius})),Wt=a(v)(({theme:e})=>({fontSize:e.typography.body2.fontSize,fontWeight:500,color:e.palette.text.primary,whiteSpace:`nowrap`,overflow:`hidden`,textOverflow:`ellipsis`,minWidth:0})),Gt=a(`span`,{shouldForwardProp:e=>e!==`tone`})(({theme:e,tone:t})=>({display:`inline-flex`,alignItems:`center`,gap:2,fontSize:e.typography.body2.fontSize,fontWeight:700,fontVariantNumeric:`tabular-nums`,whiteSpace:`nowrap`,color:t===`up`?e.palette.success.main:t===`down`?e.palette.error.main:e.palette.text.secondary})),Kt=a(_)(({theme:e})=>({fontSize:e.fontSizes.smallerBody,color:e.palette.text.secondary,textAlign:`right`,paddingRight:e.spacing(.75)})),qt=a(_)(({theme:e})=>({fontSize:e.fontSizes.smallerBody,color:e.palette.text.secondary,fontStyle:`italic`,flex:1,display:`flex`,alignItems:`center`,justifyContent:`center`,textAlign:`center`,minHeight:e.spacing(8)})),Jt=({impacts:e,timeRange:t})=>{let n=e.slice(0,It),r=e.length-n.length,i=`±${Ft(G[t])}`;return(0,H.jsxs)(Rt,{children:[(0,H.jsxs)(zt,{children:[(0,H.jsx)(Bt,{children:`Top movers`}),(0,H.jsx)(o,{arrow:!0,placement:`top`,title:`Goal change in the ${i} window before vs. after each flag's most significant change`,children:(0,H.jsx)(Vt,{children:i})})]}),n.length===0?(0,H.jsx)(qt,{children:`No measurable flag changes in this window.`}):(0,H.jsxs)(Ht,{children:[n.map(e=>{let t=Lt[e.tone];return(0,H.jsxs)(Ut,{children:[(0,H.jsx)(Wt,{title:e.featureName,children:e.featureName}),(0,H.jsxs)(Gt,{tone:e.tone,children:[(0,H.jsx)(t,{sx:{fontSize:14}}),z(e.deltaPct)]})]},e.featureName)}),r>0?(0,H.jsxs)(Kt,{children:[`+`,r,` more`]}):null]})]})},Yt=p((0,H.jsx)(`path`,{d:`m14.06 9.02.92.92L5.92 19H5v-.92zM17.66 3c-.25 0-.51.1-.7.29l-1.83 1.83 3.75 3.75 1.83-1.83c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.2-.2-.45-.29-.71-.29m-3.6 3.19L3 17.25V21h3.75L17.81 9.94z`}),`EditOutlined`),Xt=p((0,H.jsx)(`path`,{d:`M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2m0 16H8V7h11z`}),`ContentCopyOutlined`),Zt=a(`div`)(({theme:e})=>({display:`flex`,alignItems:`center`,gap:e.spacing(2),borderBottom:`1px solid ${e.palette.divider}`})),Qt=a(ue)({flex:1,minWidth:0,"& .MuiTabs-flexContainer":{gap:4}}),$t=a(de)(({theme:e})=>({textTransform:`none`,fontSize:e.fontSizes.smallBody,fontWeight:e.typography.fontWeightMedium,minHeight:e.spacing(5.5),padding:e.spacing(.5,1,.5,2),"& .tab-actions":{opacity:.4,marginLeft:e.spacing(.5)},"&:hover .tab-actions, &.Mui-selected .tab-actions":{opacity:1}})),en=a(v)({display:`flex`,alignItems:`center`,gap:4}),tn=a(y)(({theme:e})=>({textTransform:`none`,whiteSpace:`nowrap`,flexShrink:0,marginLeft:e.spacing(1),marginBottom:e.spacing(.5)})),nn=({views:e,activeViewId:t,onSelect:n,onCreate:r,onEdit:i,onDuplicate:a,onDelete:o})=>{let[s,u]=(0,R.useState)(null),[d,f]=(0,R.useState)(null),p=(e,t)=>{e.stopPropagation(),u(e.currentTarget),f(t)},m=()=>{u(null),f(null)},g=e.find(e=>e.id===d)??null;return(0,H.jsxs)(Zt,{children:[(0,H.jsx)(Qt,{value:t??!1,onChange:(e,t)=>n(t),variant:`scrollable`,scrollButtons:`auto`,children:e.map(e=>(0,H.jsx)($t,{value:e.id,label:(0,H.jsxs)(en,{children:[(0,H.jsx)(`span`,{children:e.title}),(0,H.jsx)(h,{component:`span`,className:`tab-actions`,size:`small`,"aria-label":`${e.title} actions`,onClick:t=>p(t,e.id),children:(0,H.jsx)(fe,{fontSize:`small`})})]})},e.id))}),(0,H.jsx)(tn,{variant:`outlined`,startIcon:(0,H.jsx)(_e,{}),onClick:r,children:`New view`}),(0,H.jsxs)(c,{anchorEl:s,open:!!s,onClose:m,children:[(0,H.jsxs)(l,{onClick:()=>{g&&i(g),m()},children:[(0,H.jsx)(k,{children:(0,H.jsx)(Yt,{fontSize:`small`})}),(0,H.jsx)(D,{children:`Edit`})]}),(0,H.jsxs)(l,{onClick:()=>{g&&a(g),m()},children:[(0,H.jsx)(k,{children:(0,H.jsx)(Xt,{fontSize:`small`})}),(0,H.jsx)(D,{children:`Duplicate`})]}),(0,H.jsxs)(l,{onClick:()=>{g&&o(g),m()},children:[(0,H.jsx)(k,{children:(0,H.jsx)(pe,{fontSize:`small`})}),(0,H.jsx)(D,{children:`Delete`})]})]})]})},rn=`50`,an=({option:e})=>(0,H.jsxs)(v,{sx:{display:`flex`,flexDirection:`column`},children:[(0,H.jsx)(_,{variant:`body2`,children:e.name}),e.project?(0,H.jsx)(_,{variant:`caption`,sx:{color:`text.secondary`},children:e.project}):null]}),on=({value:e,onChange:t,disabled:n})=>{let[r,i]=(0,R.useState)(``),[a,o]=(0,R.useState)(``),[c,l]=(0,R.useState)(!1),f=(0,R.useMemo)(()=>d(e=>{o(e)},250),[]),p=(0,R.useCallback)(({children:e,...t})=>(0,H.jsxs)(m,{...t,children:[(0,H.jsx)(b,{sx:{px:2,py:1},onMouseDown:e=>e.preventDefault(),control:(0,H.jsx)(se,{size:`small`,checked:c,onChange:(e,t)=>l(t)}),label:(0,H.jsx)(_,{variant:`body2`,children:`Search archived features`})}),(0,H.jsx)(ee,{}),e]}),[c]),{features:h,loading:g}=A({query:a||void 0,limit:rn,archived:c?`IS:true`:void 0}),y=h.map(({name:e,project:t})=>({name:e,project:t}));return(0,H.jsx)(s,{multiple:!0,disableCloseOnSelect:!0,disabled:n,loading:g,options:y,value:e.map(e=>y.find(t=>t.name===e)??{name:e,project:``}),inputValue:r,slots:{paper:p},onInputChange:(e,t,n)=>{n===`input`&&(i(t),f(t))},onChange:(e,n)=>{t(n.map(e=>e.name))},isOptionEqualToValue:(e,t)=>e.name===t.name,getOptionLabel:e=>e.name,renderOption:(e,t)=>(0,R.createElement)(v,{component:`li`,...e,key:t.name},(0,H.jsx)(an,{option:t})),renderInput:t=>(0,H.jsx)(u,{...t,label:`Features to follow`,placeholder:e.length===0?`Search for features…`:`Add another feature…`,size:`small`,variant:`outlined`,helperText:`Toggle events for these features will be drawn over the chart.`})})},J={hour:`Last hour`,day:`Last 24 hours`,week:`Last 7 days`,month:`Last 30 days`,threeMonths:`Last 3 months`,sixMonths:`Last 6 months`},sn=Object.entries(J).map(([e,t])=>({key:e,label:t})),Y=`production`,cn=`month`,X=`count`,Z=a(`div`)(({theme:e})=>({display:`flex`,flexDirection:`column`,gap:e.spacing(.5),flex:1,minWidth:220})),ln=a(_)(({theme:e})=>({fontSize:e.fontSizes.smallBody,fontWeight:e.typography.fontWeightBold,color:e.palette.text.primary})),Q=a(_)(({theme:e})=>({fontSize:e.fontSizes.smallerBody,color:e.palette.text.secondary})),un=a(`div`)(({theme:e})=>({display:`flex`,alignItems:`center`,gap:e.spacing(2),padding:e.spacing(2,2.5),borderRadius:e.shape.borderRadius,border:`1px solid ${e.palette.divider}`,backgroundColor:e.palette.background.elevation1})),dn=a(`div`)(({theme:e})=>({flex:1,minWidth:0,display:`flex`,flexDirection:`column`,gap:e.spacing(.5)})),fn=a(u)(({theme:e})=>({maxWidth:e.spacing(30)})),pn=a(_)(({theme:e})=>({fontSize:e.fontSizes.smallerBody,color:e.palette.text.secondary,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`})),mn=[{key:`count`,label:`Count`},{key:`rps`,label:`Rate per second`},{key:`sum`,label:`Sum`},{key:`avg`,label:`Average`},{key:`p50`,label:`50th percentile`},{key:`p95`,label:`95th percentile`},{key:`p99`,label:`99th percentile`}],hn=(e,t)=>{let n=w(e.name);return{id:P(),metricName:e.name,displayName:e.displayName||e.name,aggregationMode:T(n),labelSelectors:{},source:e.source,title:void 0,yAxisMin:`auto`,timeRange:t}},gn=e=>({name:e.metricName,displayName:e.displayName,help:``,source:e.source===`external`?`external`:`internal`}),_n=e=>{let t=w(e);return t===`unknown`?`Metric type could not be inferred.`:`${t.charAt(0).toUpperCase()}${t.slice(1)} metric`},vn=({option:e})=>(0,H.jsxs)(v,{sx:{display:`flex`,flexDirection:`column`},children:[(0,H.jsx)(_,{variant:`body2`,children:e.displayName||e.name}),e.help?(0,H.jsx)(_,{variant:`caption`,sx:{color:`text.secondary`},children:e.help}):null]}),yn=({metric:e,onSelectGoal:t,onRename:n,onRemove:r})=>{let i=e.displayName||e.metricName;return(0,H.jsxs)(un,{children:[(0,H.jsx)(b,{sx:{mr:0},"aria-label":`Mark ${i} as the goal`,control:(0,H.jsx)(f,{size:`small`,checked:!!e.goal,onChange:()=>t(e.id)}),label:(0,H.jsx)(_,{variant:`caption`,sx:{color:`text.secondary`},children:`Goal`}),labelPlacement:`bottom`}),(0,H.jsxs)(dn,{children:[(0,H.jsx)(fn,{label:`Display name`,value:e.displayName??``,onChange:t=>n(e.id,t.target.value),placeholder:e.metricName,size:`small`,variant:`outlined`,fullWidth:!0}),(0,H.jsxs)(pn,{title:e.metricName,children:[e.metricName,` · `,_n(e.metricName)]})]}),(0,H.jsx)(o,{title:`Remove metric`,arrow:!0,children:(0,H.jsx)(h,{size:`small`,"aria-label":`Remove ${i}`,onClick:()=>r(e.id),children:(0,H.jsx)(ve,{fontSize:`small`})})})]})},bn=e=>(e.find(e=>e.goal)??e[0])?.aggregationMode??X,xn=e=>e?{title:e.title,featureNames:e.featureNames,metrics:e.metrics,timeRange:e.timeRange,aggregationMode:bn(e.metrics),environment:e.environment}:{title:``,featureNames:[],metrics:[],timeRange:cn,aggregationMode:X,environment:Y},$=(e,t)=>e.map(e=>({...e,...t})),Sn=(e,t)=>e.metrics.length===0&&t.length>0?T(w(t[0].name)):e.aggregationMode,Cn=(e,t)=>{let n=new Map(e.metrics.map(e=>[e.metricName,e]));return t.map(t=>n.get(t.name)??hn(t,e.timeRange))},wn=(e,t)=>{switch(t.type){case`reset`:return t.form;case`setTitle`:return{...e,title:t.title};case`setFeatureNames`:return{...e,featureNames:t.featureNames};case`setEnvironment`:return{...e,environment:t.environment};case`setTimeRange`:return{...e,timeRange:t.timeRange,metrics:$(e.metrics,{timeRange:t.timeRange})};case`setAggregation`:return{...e,aggregationMode:t.aggregationMode,metrics:$(e.metrics,{aggregationMode:t.aggregationMode})};case`setMetrics`:{let n=Sn(e,t.options),r=Cn(e,t.options);return{...e,aggregationMode:n,metrics:$(r,{aggregationMode:n})}}case`setGoal`:return{...e,metrics:e.metrics.map(e=>({...e,goal:e.id===t.id}))};case`renameMetric`:return{...e,metrics:e.metrics.map(e=>e.id===t.id?{...e,displayName:t.displayName}:e)};case`removeMetric`:return{...e,metrics:e.metrics.filter(e=>e.id!==t.id)}}},Tn=({open:e,initialView:t,onClose:n,onSave:r})=>{let{metricOptions:i,loading:a}=le(),{environments:o,loading:c}=ae(),[l,d]=(0,R.useReducer)(wn,t,xn);(0,R.useEffect)(()=>{e&&d({type:`reset`,form:xn(t)})},[e,t]);let f=l.metrics.map(e=>i.find(t=>t.name===e.metricName)??gn(e)),p=o.length>0?o.map(e=>({key:e.name,label:e.name})):[{key:Y,label:Y}],m=l.title.trim().length>0&&l.metrics.length>0;return(0,H.jsx)(O,{open:e,onClose:n,onClick:()=>{m&&r({title:l.title.trim(),featureNames:l.featureNames,metrics:l.metrics,timeRange:l.timeRange,environment:l.environment})},title:t?`Edit view`:`Create a new view`,primaryButtonText:t?`Save changes`:`Create view`,secondaryButtonText:`Cancel`,disabledPrimaryButton:!m,maxWidth:`md`,fullWidth:!0,children:(0,H.jsxs)(v,{sx:{display:`flex`,flexDirection:`column`,gap:3,pt:1},children:[(0,H.jsx)(u,{label:`View title`,value:l.title,onChange:e=>d({type:`setTitle`,title:e.target.value}),placeholder:`e.g. Checkout funnel`,size:`small`,autoFocus:!0,required:!0}),(0,H.jsxs)(Z,{children:[(0,H.jsx)(ln,{children:`Metrics`}),(0,H.jsx)(s,{multiple:!0,disableCloseOnSelect:!0,loading:a,options:i,value:f,onChange:(e,t)=>d({type:`setMetrics`,options:t}),isOptionEqualToValue:(e,t)=>e.name===t.name,getOptionLabel:e=>e.displayName||e.name,groupBy:e=>e.source===`external`?`External metrics`:`Internal metrics`,renderOption:(e,t)=>(0,R.createElement)(v,{component:`li`,...e,key:`${t.source}__${t.name}`},(0,H.jsx)(vn,{option:t})),renderInput:e=>(0,H.jsx)(u,{...e,placeholder:l.metrics.length===0?`Pick one or more metrics…`:`Add another metric…`,size:`small`,variant:`outlined`})}),(0,H.jsx)(Q,{children:`All selected metrics are drawn together on a single chart.`}),l.metrics.length>0?(0,H.jsx)(v,{sx:{display:`flex`,flexDirection:`column`,gap:1,mt:.5},children:l.metrics.map(e=>(0,H.jsx)(yn,{metric:e,onSelectGoal:e=>d({type:`setGoal`,id:e}),onRename:(e,t)=>d({type:`renameMetric`,id:e,displayName:t}),onRemove:e=>d({type:`removeMetric`,id:e})},e.id))}):null]}),(0,H.jsx)(on,{value:l.featureNames,onChange:e=>d({type:`setFeatureNames`,featureNames:e})}),(0,H.jsxs)(v,{sx:{display:`flex`,gap:2,flexWrap:`wrap`},children:[(0,H.jsxs)(Z,{children:[(0,H.jsx)(j,{id:`view-aggregation`,labelId:`view-aggregation-label`,label:`Aggregation`,value:l.aggregationMode,options:mn,onChange:e=>d({type:`setAggregation`,aggregationMode:e})}),(0,H.jsx)(Q,{children:`Applied to all metrics in this view.`})]}),(0,H.jsx)(Z,{children:(0,H.jsx)(j,{id:`view-time-range`,labelId:`view-time-range-label`,label:`Time range`,value:l.timeRange,options:sn,onChange:e=>d({type:`setTimeRange`,timeRange:e})})}),(0,H.jsxs)(Z,{children:[(0,H.jsx)(j,{id:`view-environment`,labelId:`view-environment-label`,label:`Environment`,value:l.environment,options:p,disabled:c,onChange:e=>d({type:`setEnvironment`,environment:e})}),(0,H.jsx)(Q,{children:`Toggle events from this environment are drawn over the chart.`})]})]})]})})},En=`https://docs.getunleash.io/reference/impact-metrics`,Dn=a(v)(({theme:e})=>({display:`flex`,flexDirection:`column`,alignItems:`center`,padding:e.spacing(6,4)})),On=a(v)(({theme:e})=>({marginBottom:e.spacing(3)})),kn=a(v)(({theme:e})=>({textAlign:`center`,maxWidth:520,marginBottom:e.spacing(3)})),An=a(v)(({theme:e})=>({display:`flex`,gap:e.spacing(2),alignItems:`center`,marginBottom:e.spacing(4)})),jn=a(g)(({theme:e})=>({maxWidth:520,backgroundColor:e.palette.info.light,marginTop:e.spacing(4),color:e.palette.info.dark,"& .MuiAlert-icon":{color:e.palette.info.main}})),Mn=({onCreate:e})=>(0,H.jsx)(oe,{header:(0,H.jsx)(C,{title:`Impact views`}),children:(0,H.jsxs)(Dn,{children:[(0,H.jsx)(On,{children:(0,H.jsx)(Ee,{})}),(0,H.jsxs)(kn,{children:[(0,H.jsx)(_,{variant:`h3`,component:`h2`,sx:{mb:1.5},children:`Start telling a story with your metrics`}),(0,H.jsx)(_,{sx:{color:`text.secondary`},children:`A view combines the features you want to follow with the impact metrics that matter to you. Toggle events for each feature are drawn over the chart so you can see exactly when a rollout moved the needle.`})]}),(0,H.jsxs)(An,{children:[(0,H.jsx)(y,{variant:`text`,href:En,target:`_blank`,rel:`noopener noreferrer`,children:`Read the docs`}),(0,H.jsx)(y,{variant:`contained`,startIcon:(0,H.jsx)(_e,{}),onClick:e,children:`Create your first view`})]}),(0,H.jsxs)(jn,{severity:`info`,icon:(0,H.jsx)(be,{}),children:[(0,H.jsx)(`strong`,{children:`Tip:`}),` Views are stored locally in your browser — only you can see them in this iteration.`]})]})}),Nn=new Set([`count`,`sum`]),Pn=e=>{for(let[,t]of e)if(Number.isFinite(t))return t;return 0},Fn=e=>{for(let t=e.length-1;t>=0;--t){let n=e[t][1];if(Number.isFinite(n))return n}return 0},In=(e,t,n)=>{if(Nn.has(t))return{current:n,mode:`cumulative`,deltaAbs:null,deltaPct:null};if(!e||e.data.length===0)return{current:0,mode:`latest`,deltaAbs:0,deltaPct:null};let r=Fn(e.data),i=Pn(e.data),a=r-i;return{current:r,mode:`latest`,deltaAbs:a,deltaPct:i===0?null:a/i*100}},Ln=e=>{let t=e.join(`,`),{features:n,loading:r}=A({query:t,limit:`100`}),{features:i,loading:a}=A({query:t,limit:`100`,archived:`IS:true`});return{features:(0,R.useMemo)(()=>{let t=new Set(e),r=(e,n)=>e.filter(e=>t.has(e.name)).map(e=>({name:e.name,project:e.project,type:e.type,lifecycleStage:e.lifecycle?.stage??n}));return[...r(n,null),...r(i,`archived`)]},[n,i,e]),loading:r||a}},Rn=`IS_ANY_OF:feature-environment-enabled,feature-environment-disabled`,zn=(e,t)=>{let{events:n,loading:r}=ge({feature:`IS_ANY_OF:${e.join(`,`)}`,type:Rn,environment:`IS:${t}`,limit:`1000`},{refreshInterval:3e4});return{featureEvents:(0,R.useMemo)(()=>n.map(e=>({id:e.id,timestamp:new Date(e.createdAt).getTime(),type:e.type,label:e.label??e.type,createdBy:e.createdBy,featureName:e.featureName??``,environment:t})),[n,t]),loading:r}},Bn=e=>{let{stepSeries:t,stepTotals:n,start:r,end:i,loading:a}=Te(e.metrics),{features:o,loading:s}=Ln(e.featureNames),{featureEvents:c,loading:l}=zn(e.featureNames,e.environment),u=e.metrics.findIndex(e=>e.goal),d=u>=0?e.metrics[u]:void 0,f=u>=0?t[u]:void 0,p=d?In(f,d.aggregationMode,n[u]?.value??0):void 0,m=d?wt({events:c,goalSeries:f,aggregationMode:d.aggregationMode,visibleWindow:we(r,i),timeRange:e.timeRange}):[];return{goalSummary:p,goalSeries:f,goalLabel:d?.title||d?.displayName||e.title,flagImpacts:m,stepSeries:t,stepTotals:n,start:r,end:i,featureEvents:c,resolvedFeatures:o,loading:a||s||l}},Vn=`impact-metric-views:list`,Hn=`impact-metric-views:active-id`,Un=[],Wn=()=>{let[e,t]=M(Vn,Un),[n,r]=M(Hn,``),i=e.some(e=>e.id===n),a=n&&i?n:e[0]?.id??null;return{views:e,activeView:e.find(e=>e.id===a)??null,activeViewId:a,setActiveViewId:(0,R.useCallback)(e=>{r(e??``)},[r]),addView:(0,R.useCallback)(e=>{let n=Date.now(),i={...e,id:P(),createdAt:n,updatedAt:n};return t(e=>[...e,i]),r(i.id),i},[t,r]),updateView:(0,R.useCallback)((e,n)=>{t(t=>t.map(t=>t.id===e?{...t,...n,updatedAt:Date.now()}:t))},[t]),deleteView:(0,R.useCallback)(e=>{t(t=>t.filter(t=>t.id!==e)),n===e&&r(``)},[t,n,r]),duplicateView:(0,R.useCallback)(n=>{let i=e.find(e=>e.id===n);if(!i)return null;let a=Date.now(),o={...i,id:P(),title:`${i.title} (copy)`,createdAt:a,updatedAt:a};return t(e=>[...e,o]),r(o.id),o},[e,t,r])}},Gn=({view:e})=>{let t=Bn(e),n=J[e.timeRange];return(0,H.jsxs)(v,{sx:{display:`flex`,flexDirection:`column`,gap:3},children:[(0,H.jsx)(nt,{title:t.goalLabel,subtitle:`Goal · ${n}`,timeRange:e.timeRange,aggregationMode:e.metrics[0]?.aggregationMode,stepSeries:t.stepSeries,stepTotals:t.stepTotals,featureEvents:t.featureEvents,start:t.start,end:t.end,loading:t.loading,chartHeightSpacing:{base:48,lg:40,sm:32},totalsLabel:`Signals`,totalsHeaderSlot:t.goalSummary?(0,H.jsx)(Ve,{goalMetricLabel:t.goalLabel,summary:t.goalSummary,series:t.goalSeries,timeLabel:n}):null,totalsMiddleSlot:(0,H.jsx)(Jt,{impacts:t.flagImpacts,timeRange:e.timeRange})}),(0,H.jsx)(St,{features:t.resolvedFeatures})]})},Kn=()=>{let{views:e,activeView:t,activeViewId:n,setActiveViewId:r,addView:i,updateView:a,deleteView:o,duplicateView:s}=Wn(),[c,l]=(0,R.useState)({type:`closed`}),[u,d]=(0,R.useState)(null),f=()=>l({type:`create`}),p=e=>l({type:`edit`,view:e}),m=()=>l({type:`closed`});return(0,H.jsxs)(v,{sx:{pt:3,mt:-4},children:[e.length===0?(0,H.jsx)(Mn,{onCreate:f}):(0,H.jsxs)(v,{sx:{display:`flex`,flexDirection:`column`,gap:3},children:[(0,H.jsx)(C,{title:`Impact views`,actions:(0,H.jsx)(me,{color:`info`,children:`Internal beta`})}),(0,H.jsx)(nn,{views:e,activeViewId:n,onSelect:r,onCreate:f,onEdit:p,onDuplicate:e=>s(e.id),onDelete:d}),t?(0,H.jsx)(Gn,{view:t}):null]}),(0,H.jsx)(Tn,{open:c.type!==`closed`,initialView:c.type===`edit`?c.view:null,onClose:m,onSave:e=>{c.type===`edit`?a(c.view.id,e):i(e),m()}}),(0,H.jsx)(O,{open:u!==null,title:u?`Delete "${u.title}"?`:`Delete view?`,primaryButtonText:`Delete`,secondaryButtonText:`Cancel`,onClick:()=>{u&&o(u.id),d(null)},onClose:()=>d(null)})]})};export{Kn as ImpactViewsPage};
|