{"version":3,"file":"OverviewTab.mjs","names":["React","useMemo","useTranslation","UdpCard","UdpText","UdpFlexbox","UdpSpinner","UdpAgBarChart","UdpAgAreaChart","UdpAgLineChart","UdpAgDonutChart","ClientSideUdpGrid","SUBMISSION_STATUS","IN_PROGRESS","SUBMITTED","CREATED","WEEKS_IN_SPARKLINE","TOP_SUBMITTERS_LIMIT","RECENT_SUBMISSIONS_LIMIT","SUBMITTER_NAME_MAX","kpiRowStyle","display","flexWrap","gap","alignContent","kpiCardWrapStyle","flex","minWidth","kpiBodyStyle","padding","flexDirection","kpiHeaderRowStyle","alignItems","justifyContent","mutedStyle","color","SPARK_HEIGHT","analyticsRowStyle","analyticsCardWrapStyle","CHART_HEIGHT","chartFrameStyle","chartTitleStyle","chartSubStyle","emptyStateStyle","startOfWeek","input","d","Date","setHours","setDate","getDate","getDay","countSubmissionsThisWeek","submissions","sevenDaysAgo","now","filter","s","ts","formSubmission_InitialCreatedOn","getTime","length","weeklyCounts","counts","Array","fill","thisWeekMs","WEEK_MS","formSubmission_LastModifiedOn","back","Math","round","i","makeFormatRelative","t","value","then","Number","isNaN","diffSec","defaultValue","count","floor","toLocaleDateString","formatDateLong","undefined","year","month","day","truncate","max","slice","weekOverWeekChange","series","cur","prev","pct","isFinite","rounded","up","text","toFixed","initials","name","String","split","Boolean","map","p","join","toUpperCase","OverviewTab","t0","$","_c","versions","submissionsLoading","onOpenSubmission","onTabRequest","t1","formatRelative","t2","t3","t4","t5","statusLabels","total","t6","_temp","submittedCount","t7","_temp2","inProgressCount","t8","_temp3","createdCount","t9","_temp4","sort","pop","lastActivity","t10","submissionsThisWeek","t11","Set","_temp5","uniqueSubmitters","size","t12","stats","t13","t14","weekly","t15","t16","label","t17","t18","t19","t20","t21","statusDonutData","t22","byVersion","Map","s_4","v","formSubmission_FormVersion","set","get","versionSet","_temp6","keys","from","_temp7","_temp8","v_2","perVersion","t23","byUser","s_5","formSubmission_UserDisplayName","formSubmission_unityUserId","entries","_temp9","_temp0","topSubmitters","t24","recentSubmissions","t25","_temp1","t26","t27","Symbol","for","type","xKey","yKey","interpolation","x","y","t28","data","axes","totalSparkOptions","t29","toLocaleString","t30","fontSize","t31","t32","t33","angleKey","legendItemKey","innerRadiusRatio","innerLabels","t34","enabled","position","t35","legend","statusDonutOptions","t36","t37","t38","paddingInner","paddingOuter","t39","byVersionOptions","t40","t41","t42","direction","t43","topSubmittersOptions","t44","t45","t46","t47","recentStatusConfig","t48","t49","getName","_temp10","getInitials","_temp11","getValues","_temp12","shape","t50","headerName","field","cellRenderer","cellRendererParams","t51","t52","width","valueFormatter","_temp13","t53","t54","p_3","formSubmission_Status","t55","statusMappingConfig","getStatusValue","t56","t57","t58","p_4","formSubmission_SubmittedOn","t59","t60","t61","_e","p_5","t62","actionList","id","iconName","title","handleOnClick","t63","recentColumnDefs","t64","pagination","suppressCellFocus","defaultColDef","sortable","resizable","recentGridOptions","t65","t66","t67","t68","onClick","t69","secondaryActionButtons","recentGridHeaderConfig","t70","t71","t72","t73","key","change","sparkOptions","sparkType","loading","t74","t75","t76","t77","sub","t78","t79","t80","t81","t82","kpis","hasData","t83","_temp14","t84","t85","t86","t87","t88","t89","height","t90","t91","t92","t93","t94","t95","t96","t97","t98","t99","t100","t101","t102","t103","t104","t105","t106","t107","s_0","s_1","s_2","s_3","v_0","version","v_1","a","b","name_0","a_0","b_0","p_0","p_1","p_2","k","overflow"],"sources":["../../../../src/udp/pages/UdpQuestionFormOverviewPage/OverviewTab.jsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n  UdpCard,\n  UdpText,\n  UdpFlexbox,\n  UdpSpinner,\n} from '../../../UI/fluent-web-components';\nimport {\n  UdpAgBarChart,\n  UdpAgAreaChart,\n  UdpAgLineChart,\n  UdpAgDonutChart,\n} from '../../../UI/charts/ag';\nimport { ClientSideUdpGrid } from '../../../UI/templates/newGrid';\n\n// ----- constants -----\nconst SUBMISSION_STATUS = { IN_PROGRESS: 1, SUBMITTED: 2, CREATED: 3 };\nconst WEEKS_IN_SPARKLINE = 12;\nconst TOP_SUBMITTERS_LIMIT = 6;\nconst RECENT_SUBMISSIONS_LIMIT = 6;\nconst SUBMITTER_NAME_MAX = 22;\n\n// ----- styles -----\n// Flex-wrap KPI strip (NOT css-grid — an auto-fit grid defaults to\n// `align-content: stretch` and balloons its row tracks).\nconst kpiRowStyle = {\n  display: 'flex',\n  flexWrap: 'wrap',\n  gap: 16,\n  alignContent: 'flex-start',\n};\nconst kpiCardWrapStyle = { flex: '1 1 200px', minWidth: 0, display: 'flex' };\nconst kpiBodyStyle = { padding: '16px 16px 8px', display: 'flex', flexDirection: 'column', gap: 6 };\nconst kpiHeaderRowStyle = {\n  display: 'flex',\n  alignItems: 'center',\n  justifyContent: 'space-between',\n  gap: 8,\n};\nconst mutedStyle = { color: 'var(--colorNeutralForeground3)' };\nconst SPARK_HEIGHT = 48;\n// Analytics charts share one flex-wrap row of equal cards (consistent height,\n// graceful wrap on narrow viewports — same proven pattern as the KPI strip).\nconst analyticsRowStyle = {\n  display: 'flex',\n  flexWrap: 'wrap',\n  gap: 16,\n  alignItems: 'stretch',\n};\nconst analyticsCardWrapStyle = { flex: '1 1 280px', minWidth: 0 };\nconst CHART_HEIGHT = 240;\nconst chartFrameStyle = { padding: 16, display: 'flex', flexDirection: 'column', gap: 12 };\nconst chartTitleStyle = { display: 'block' };\nconst chartSubStyle = { display: 'block', color: 'var(--colorNeutralForeground3)' };\nconst emptyStateStyle = { color: 'var(--colorNeutralForeground3)' };\n\n// ----- helpers -----\nconst startOfWeek = (input) => {\n  const d = new Date(input);\n  d.setHours(0, 0, 0, 0);\n  d.setDate(d.getDate() - d.getDay()); // Sunday-anchored\n  return d;\n};\n// Time-anchored aggregations live at module level (like formatRelative above)\n// because the React Compiler rejects impure calls (Date.now) inside compiled\n// render code; the snapshot still refreshes whenever `submissions` changes.\nconst countSubmissionsThisWeek = (submissions) => {\n  const sevenDaysAgo = Date.now() - 7 * 86400 * 1000;\n  return submissions.filter((s) => {\n    const ts = s.formSubmission_InitialCreatedOn;\n    if (!ts) return false;\n    return new Date(ts).getTime() >= sevenDaysAgo;\n  }).length;\n};\nconst weeklyCounts = (submissions) => {\n  const counts = new Array(WEEKS_IN_SPARKLINE).fill(0);\n  const thisWeekMs = startOfWeek(Date.now()).getTime();\n  const WEEK_MS = 7 * 86400 * 1000;\n  for (const s of submissions) {\n    const ts = s.formSubmission_InitialCreatedOn || s.formSubmission_LastModifiedOn;\n    if (!ts) continue;\n    const back = Math.round((thisWeekMs - startOfWeek(ts).getTime()) / WEEK_MS);\n    if (back < 0 || back >= WEEKS_IN_SPARKLINE) continue;\n    const i = WEEKS_IN_SPARKLINE - 1 - back;\n    counts[i] += 1;\n  }\n  return counts;\n};\nconst makeFormatRelative = (t) => (value) => {\n  if (!value) return '—';\n  const then = new Date(value).getTime();\n  if (Number.isNaN(then)) return '—';\n  const diffSec = Math.round((Date.now() - then) / 1000);\n  if (diffSec < 60) return t('formOverview.time.justNow', { defaultValue: 'just now' });\n  if (diffSec < 3600)\n    return t('formOverview.time.minutesAgo', {\n      defaultValue: '{{count}}m ago',\n      count: Math.floor(diffSec / 60)\n    });\n  if (diffSec < 86400)\n    return t('formOverview.time.hoursAgo', {\n      defaultValue: '{{count}}h ago',\n      count: Math.floor(diffSec / 3600)\n    });\n  if (diffSec < 86400 * 30)\n    return t('formOverview.time.daysAgo', {\n      defaultValue: '{{count}}d ago',\n      count: Math.floor(diffSec / 86400)\n    });\n  return new Date(value).toLocaleDateString();\n};\nconst formatDateLong = (value) =>\n  value ? new Date(value).toLocaleDateString(undefined, { year: 'numeric', month: 'short', day: 'numeric' }) : '';\nconst truncate = (s, max) =>\n  s && s.length > max ? `${s.slice(0, max - 1)}…` : s;\n\n// Week-over-week relative change of the latest vs prior bucket. Returns null\n// when there's no prior baseline (so the card simply omits the change chip).\nconst weekOverWeekChange = (series) => {\n  if (!series || series.length < 2) return null;\n  const cur = series[series.length - 1];\n  const prev = series[series.length - 2];\n  if (prev === 0) return null;\n  const pct = ((cur - prev) / prev) * 100;\n  if (!Number.isFinite(pct)) return null;\n  const rounded = Math.round(pct * 10) / 10;\n  return { up: rounded >= 0, text: `${rounded >= 0 ? '+' : ''}${rounded.toFixed(1)}%` };\n};\n\nconst initials = (name) =>\n  String(name ?? '')\n    .split(/\\s+/)\n    .filter(Boolean)\n    .map((p) => p[0])\n    .join('')\n    .slice(0, 2)\n    .toUpperCase() || '—';\n\n// ----- the tab -----\nexport const OverviewTab = ({\n  submissions,\n  versions,\n  submissionsLoading,\n  onOpenSubmission,\n  onTabRequest,\n}) => {\n  const { t } = useTranslation();\n  const formatRelative = useMemo(() => makeFormatRelative(t), [t]);\n\n  // Map status numeric → label for the badges/donut, translated.\n  const statusLabels = useMemo(\n    () => ({\n      [SUBMISSION_STATUS.SUBMITTED]: t('formOverview.overview.statusSubmitted', {\n        defaultValue: 'Submitted'\n      }),\n      [SUBMISSION_STATUS.IN_PROGRESS]: t('formOverview.overview.statusInProgress', {\n        defaultValue: 'In progress'\n      }),\n      [SUBMISSION_STATUS.CREATED]: t('formOverview.overview.statusCreated', {\n        defaultValue: 'Created'\n      }),\n    }),\n    [t]\n  );\n\n  // --- aggregations ---\n\n  const stats = useMemo(() => {\n    const total = submissions.length;\n    const submittedCount = submissions.filter(\n      (s) => s.formSubmission_Status === SUBMISSION_STATUS.SUBMITTED,\n    ).length;\n    const inProgressCount = submissions.filter(\n      (s) => s.formSubmission_Status === SUBMISSION_STATUS.IN_PROGRESS,\n    ).length;\n    const createdCount = submissions.filter(\n      (s) => s.formSubmission_Status === SUBMISSION_STATUS.CREATED,\n    ).length;\n    const lastActivity =\n      submissions\n        .map(\n          (s) =>\n            s.formSubmission_LastModifiedOn ||\n            s.formSubmission_SubmittedOn ||\n            s.formSubmission_InitialCreatedOn,\n        )\n        .filter(Boolean)\n        .sort()\n        .pop() ?? null;\n\n    const submissionsThisWeek = countSubmissionsThisWeek(submissions);\n\n    // Distinct people who've submitted — keyed by user id, falling back to\n    // display name when the id is absent.\n    const uniqueSubmitters = new Set(\n      submissions.map(\n        (s) => s.formSubmission_unityUserId || s.formSubmission_UserDisplayName || '— unknown —',\n      ),\n    ).size;\n\n    return {\n      total,\n      submittedCount,\n      inProgressCount,\n      createdCount,\n      lastActivity,\n      submissionsThisWeek,\n      uniqueSubmitters,\n    };\n  }, [submissions]);\n\n  // 12-week weekly submission counts for the Total submissions sparkline\n  // (latest week last).\n  const weekly = useMemo(() => ({ counts: weeklyCounts(submissions) }), [submissions]);\n\n  const statusDonutData = useMemo(\n    () => [\n      { label: statusLabels[SUBMISSION_STATUS.SUBMITTED], count: stats.submittedCount },\n      { label: statusLabels[SUBMISSION_STATUS.IN_PROGRESS], count: stats.inProgressCount },\n      { label: statusLabels[SUBMISSION_STATUS.CREATED], count: stats.createdCount },\n    ],\n    [stats, statusLabels],\n  );\n\n  // Submission count per version — every version in the schema, even those\n  // with zero submissions, so the chart shows a complete picture.\n  const perVersion = useMemo(() => {\n    const byVersion = new Map();\n    for (const s of submissions) {\n      const v = s.formSubmission_FormVersion;\n      if (v == null) continue;\n      byVersion.set(v, (byVersion.get(v) || 0) + 1);\n    }\n    const versionSet = new Set([...versions.map((v) => v.version), ...byVersion.keys()]);\n    return Array.from(versionSet)\n      .filter((v) => v != null)\n      .sort((a, b) => a - b)\n      .map((v) => ({ label: `v${v}`, count: byVersion.get(v) ?? 0 }));\n  }, [submissions, versions]);\n\n  const topSubmitters = useMemo(() => {\n    const byUser = new Map();\n    for (const s of submissions) {\n      const name =\n        s.formSubmission_UserDisplayName ||\n        s.formSubmission_unityUserId ||\n        t('formOverview.overview.unknownSubmitter', { defaultValue: '— unknown —' });\n      byUser.set(name, (byUser.get(name) || 0) + 1);\n    }\n    return Array.from(byUser.entries())\n      .map(([name, count]) => ({ name: truncate(name, SUBMITTER_NAME_MAX), count }))\n      .sort((a, b) => b.count - a.count)\n      .slice(0, TOP_SUBMITTERS_LIMIT);\n  }, [submissions, t]);\n\n  const recentSubmissions = useMemo(\n    () => submissions.slice(0, RECENT_SUBMISSIONS_LIMIT),\n    [submissions],\n  );\n\n  // --- chart options (memoized; a new reference triggers chart.update()) ---\n\n  // Flush KPI sparklines (Pattern A) — bar for the volume metric, area for the\n  // rate metric. `chrome=\"flush\"` strips axes/legend and bleeds to the edges.\n  const totalSparkOptions = useMemo(\n    () => ({\n      data: weekly.counts.map((y, i) => ({ x: `${i}`, y })),\n      series: [{ type: 'area', xKey: 'x', yKey: 'y', interpolation: { type: 'smooth' } }],\n      axes: { x: { type: 'category' }, y: { type: 'number' } },\n    }),\n    [weekly],\n  );\n  // Status breakdown donut — polar series, running total in the hole.\n  const statusDonutOptions = useMemo(\n    () => ({\n      data: statusDonutData,\n      series: [\n        {\n          type: 'donut',\n          angleKey: 'count',\n          legendItemKey: 'label',\n          innerRadiusRatio: 0.7,\n          innerLabels: [\n            { text: stats.total.toLocaleString(), fontSize: 28 },\n            {\n              text:\n                stats.total === 1\n                  ? t('formOverview.overview.submissionOne', { defaultValue: 'submission' })\n                  : t('formOverview.overview.submissionOther', { defaultValue: 'submissions' }),\n              color: 'var(--colorNeutralForeground3)',\n            },\n          ],\n        },\n      ],\n      legend: { enabled: true, position: 'bottom' },\n    }),\n    [statusDonutData, stats.total, t],\n  );\n\n  // Submissions per version — vertical bar. Axis padding keeps a lone bar from\n  // ballooning to the full plot width when there's only one version.\n  const byVersionOptions = useMemo(\n    () => ({\n      data: perVersion,\n      series: [{ type: 'bar', xKey: 'label', yKey: 'count' }],\n      axes: {\n        x: { type: 'category', position: 'bottom', paddingInner: 0.4, paddingOuter: 0.35 },\n        y: { type: 'number', position: 'left' },\n      },\n      legend: { enabled: false },\n    }),\n    [perVersion],\n  );\n\n  // Top submitters — horizontal bar (ranking reads best horizontally). Same\n  // axis padding so a single submitter doesn't render as one thick slab.\n  const topSubmittersOptions = useMemo(\n    () => ({\n      data: topSubmitters,\n      series: [{ type: 'bar', direction: 'horizontal', xKey: 'name', yKey: 'count' }],\n      axes: {\n        x: { type: 'category', position: 'left', paddingInner: 0.4, paddingOuter: 0.35 },\n        y: { type: 'number', position: 'bottom' },\n      },\n      legend: { enabled: false },\n    }),\n    [topSubmitters],\n  );\n\n  // Recent-submissions preview grid.\n  const recentStatusConfig = useMemo(\n    () => ({\n      [statusLabels[SUBMISSION_STATUS.SUBMITTED]]: 'success',\n      [statusLabels[SUBMISSION_STATUS.IN_PROGRESS]]: 'warning',\n      [statusLabels[SUBMISSION_STATUS.CREATED]]: 'info',\n    }),\n    [statusLabels],\n  );\n\n  const recentColumnDefs = useMemo(\n    () => [\n      {\n        headerName: t('formOverview.overview.grid.columns.submitter', { defaultValue: 'Submitter' }),\n        field: 'formSubmission_UserDisplayName',\n        flex: 1,\n        minWidth: 180,\n        cellRenderer: 'avatarRenderer',\n        cellRendererParams: {\n          getName: (p) => p?.data?.formSubmission_UserDisplayName ?? '—',\n          getInitials: (p) => initials(p?.data?.formSubmission_UserDisplayName),\n          // Fluent auto-derives a stable, distinct colour per name.\n          color: 'colorful',\n          getValues: (p) => ({ title: p?.data?.formSubmission_UserDisplayName ?? '—' }),\n          size: 24,\n          shape: 'circular',\n        },\n      },\n      {\n        headerName: t('formOverview.grid.columns.version', { defaultValue: 'Version' }),\n        field: 'formSubmission_FormVersion',\n        width: 100,\n        valueFormatter: (p) => `v${p.value ?? '—'}`,\n      },\n      {\n        headerName: t('formOverview.grid.columns.status', { defaultValue: 'Status' }),\n        field: 'formSubmission_Status',\n        width: 140,\n        cellRenderer: 'statusRenderer',\n        cellRendererParams: {\n          statusMappingConfig: recentStatusConfig,\n          getStatusValue: (p) =>\n            statusLabels[p?.data?.formSubmission_Status] ?? '—',\n        },\n      },\n      {\n        headerName: t('formOverview.overview.grid.columns.when', { defaultValue: 'When' }),\n        field: 'formSubmission_LastModifiedOn',\n        width: 130,\n        valueFormatter: (p) =>\n          formatRelative(\n            p?.data?.formSubmission_LastModifiedOn ??\n              p?.data?.formSubmission_SubmittedOn,\n          ),\n      },\n      {\n        field: 'actions',\n        cellRenderer: 'actionsRenderer',\n        cellRendererParams: {\n          actionList: [\n            {\n              id: 1,\n              iconName: 'eye',\n              title: t('formOverview.actions.openSubmission', { defaultValue: 'Open submission' }),\n              handleOnClick: (_e, p) => onOpenSubmission?.(p?.data),\n            },\n          ],\n        },\n      },\n    ],\n    [recentStatusConfig, onOpenSubmission, statusLabels, formatRelative, t],\n  );\n\n  const recentGridOptions = useMemo(\n    () => ({\n      pagination: false,\n      suppressCellFocus: true,\n      defaultColDef: { sortable: false, resizable: false, filter: false },\n    }),\n    [],\n  );\n\n  const recentGridHeaderConfig = useMemo(\n    () => ({\n      title: t('formOverview.overview.recentSubmissions', { defaultValue: 'Recent submissions' }),\n      secondaryActionButtons: [\n        {\n          label: t('formOverview.overview.viewAll', { defaultValue: 'View all' }),\n          iconName: 'arrow-right',\n          onClick: () => onTabRequest?.('submissions'),\n        },\n      ],\n    }),\n    [onTabRequest, t],\n  );\n\n  // --- KPI strip ---\n  const kpis = [\n    {\n      key: 'submissions',\n      label: t('formOverview.kpi.totalSubmissions', { defaultValue: 'Total submissions' }),\n      value: stats.total.toLocaleString(),\n      change: weekOverWeekChange(weekly.counts),\n      sparkOptions: totalSparkOptions,\n      sparkType: 'area',\n      loading: submissionsLoading,\n    },\n    {\n      key: 'uniqueSubmitters',\n      label: t('formOverview.kpi.uniqueSubmitters', { defaultValue: 'Unique submitters' }),\n      value: stats.uniqueSubmitters.toLocaleString(),\n      sub:\n        stats.total === 1\n          ? t('formOverview.kpi.acrossSubmissionsOne', {\n              defaultValue: 'across {{count}} submission',\n              count: stats.total\n            })\n          : t('formOverview.kpi.acrossSubmissionsOther', {\n              defaultValue: 'across {{count}} submissions',\n              count: stats.total\n            }),\n      loading: submissionsLoading,\n    },\n    {\n      key: 'activity',\n      label: t('formOverview.kpi.lastActivity', { defaultValue: 'Last activity' }),\n      value: formatRelative(stats.lastActivity),\n      sub: stats.lastActivity ? formatDateLong(stats.lastActivity) : '—',\n      loading: submissionsLoading,\n    },\n  ];\n\n  const hasData = stats.total > 0;\n\n  return (\n    <UdpFlexbox direction='column' gap='md' wrap='nowrap'>\n      {/* KPI strip — the trend-bearing metric (Total submissions) is a flush\n          KPI card with a `chrome=\"flush\"` ag-charts sparkline; the rest are\n          plain numeric cards. */}\n      <div style={kpiRowStyle}>\n        {kpis.map((k) => (\n          <div key={k.key} style={kpiCardWrapStyle}>\n            <UdpCard variant='outlined' bodyPadding={false} height='100%' style={{ overflow: 'hidden' }}>\n              <div style={kpiBodyStyle}>\n                <div style={kpiHeaderRowStyle}>\n                  <UdpText variant='caption1' block style={mutedStyle}>\n                    {k.label}\n                  </UdpText>\n                  {k.change && (\n                    <UdpText\n                      variant='caption1'\n                      weight='semibold'\n                      block\n                      style={{\n                        color: k.change.up\n                          ? 'var(--colorPaletteGreenForeground1)'\n                          : 'var(--colorPaletteRedForeground1)',\n                      }}\n                    >\n                      {k.change.text}\n                    </UdpText>\n                  )}\n                </div>\n                {k.loading ? (\n                  <UdpSpinner size='small' />\n                ) : (\n                  <UdpText variant='title2' weight='bold' block>\n                    {String(k.value)}\n                  </UdpText>\n                )}\n                {!k.sparkOptions && k.sub && (\n                  <UdpText variant='caption1' block style={mutedStyle}>\n                    {k.sub}\n                  </UdpText>\n                )}\n              </div>\n              {k.sparkOptions && (\n                <div style={{ height: SPARK_HEIGHT }}>\n                  {k.sparkType === 'area' ? (\n                    <UdpAgAreaChart chrome='flush' chartOptions={k.sparkOptions} />\n                  ) : k.sparkType === 'line' ? (\n                    <UdpAgLineChart chrome='flush' chartOptions={k.sparkOptions} />\n                  ) : (\n                    <UdpAgBarChart chrome='flush' chartOptions={k.sparkOptions} />\n                  )}\n                </div>\n              )}\n            </UdpCard>\n          </div>\n        ))}\n      </div>\n\n      {/* Analytics row — three equal-height cards: status split, by version,\n          top submitters. Flex-wrap so they reflow on narrow viewports. */}\n      <div style={analyticsRowStyle}>\n        <div style={analyticsCardWrapStyle}>\n          <UdpCard variant='outlined'>\n            <div style={chartFrameStyle}>\n              <div>\n                <UdpText variant='subtitle2' weight='semibold' block style={chartTitleStyle}>\n                  {t('formOverview.overview.statusBreakdown', { defaultValue: 'Status breakdown' })}\n                </UdpText>\n                <UdpText variant='caption1' block style={chartSubStyle}>\n                  {stats.total === 1\n                    ? t('formOverview.overview.totalSubmissionsOne', {\n                        defaultValue: '{{count}} total submission',\n                        count: stats.total\n                      })\n                    : t('formOverview.overview.totalSubmissionsOther', {\n                        defaultValue: '{{count}} total submissions',\n                        count: stats.total\n                      })}\n                </UdpText>\n              </div>\n              {hasData ? (\n                <div style={{ height: CHART_HEIGHT, position: 'relative' }}>\n                  <UdpAgDonutChart shape='rounded' chartOptions={statusDonutOptions} customHeight='100%' />\n                </div>\n              ) : (\n                <UdpText variant='caption1' block style={emptyStateStyle}>\n                  {t('formOverview.overview.noSubmissionsYet', { defaultValue: 'No submissions yet.' })}\n                </UdpText>\n              )}\n            </div>\n          </UdpCard>\n        </div>\n\n        <div style={analyticsCardWrapStyle}>\n          <UdpCard variant='outlined'>\n            <div style={chartFrameStyle}>\n              <div>\n                <UdpText variant='subtitle2' weight='semibold' block style={chartTitleStyle}>\n                  {t('formOverview.overview.submissionsByVersion', { defaultValue: 'Submissions by version' })}\n                </UdpText>\n                <UdpText variant='caption1' block style={chartSubStyle}>\n                  {t('formOverview.overview.allVersions', { defaultValue: 'All versions' })}\n                </UdpText>\n              </div>\n              {hasData ? (\n                <div style={{ height: CHART_HEIGHT, position: 'relative' }}>\n                  <UdpAgBarChart shape='rounded' chartOptions={byVersionOptions} customHeight='100%' />\n                </div>\n              ) : (\n                <UdpText variant='caption1' block style={emptyStateStyle}>\n                  {t('formOverview.overview.noSubmissionsYet', { defaultValue: 'No submissions yet.' })}\n                </UdpText>\n              )}\n            </div>\n          </UdpCard>\n        </div>\n\n        <div style={analyticsCardWrapStyle}>\n          <UdpCard variant='outlined'>\n            <div style={chartFrameStyle}>\n              <div>\n                <UdpText variant='subtitle2' weight='semibold' block style={chartTitleStyle}>\n                  {t('formOverview.overview.topSubmitters', { defaultValue: 'Top submitters' })}\n                </UdpText>\n                <UdpText variant='caption1' block style={chartSubStyle}>\n                  {t('formOverview.overview.lifetimeAllVersions', { defaultValue: 'Lifetime, all versions' })}\n                </UdpText>\n              </div>\n              {topSubmitters.length === 0 ? (\n                <UdpText variant='caption1' block style={emptyStateStyle}>\n                  {t('formOverview.overview.noSubmittersYet', { defaultValue: 'No submitters yet.' })}\n                </UdpText>\n              ) : (\n                <div style={{ height: CHART_HEIGHT, position: 'relative' }}>\n                  <UdpAgBarChart shape='rounded' chartOptions={topSubmittersOptions} customHeight='100%' />\n                </div>\n              )}\n            </div>\n          </UdpCard>\n        </div>\n      </div>\n\n      {/* Recent submissions — full-width table with the grid's own header. */}\n      <UdpCard variant='outlined' bodyPadding={false}>\n        <ClientSideUdpGrid\n          rowData={recentSubmissions}\n          loading={submissionsLoading}\n          columnDefs={recentColumnDefs}\n          gridOptions={recentGridOptions}\n          gridHeaderConfig={recentGridHeaderConfig}\n          gridHeight='280px'\n        />\n      </UdpCard>\n    </UdpFlexbox>\n  );\n};\n"],"mappings":"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"}