{"version":3,"file":"MyFormSubmissions.mjs","names":["React","useCallback","useMemo","useTranslation","useHistory","SearchMethodUdpGrid","ConfigService","useUser","useTenant","MY_SUBMISSIONS_GRID_ID","SUBMISSION_STATUS","IN_PROGRESS","SUBMITTED","CREATED","makeFormatRelative","t","value","then","Date","getTime","Number","isNaN","diffSec","Math","round","now","defaultValue","count","floor","toLocaleDateString","lastActivity","data","formSubmission_LastModifiedOn","formSubmission_SubmittedOn","formSubmission_InitialCreatedOn","isSubmitted","formSubmission_Status","MyFormSubmissions","t0","$","_c","generic1","t1","generic2","t2","generic3","t3","undefined","history","t4","formatRelative","user","tenant","userId","id","tenantId","activeTenant","t5","t6","searchField","searchOperator","searchValue","t7","t8","t9","t10","t11","t12","t13","Symbol","for","sortColumn","sortDirection","t14","requestUrl","productV1ApiUrl","customSearchObject","eagerLoad","filterElements","orderElements","searchMethodConfig","t15","submissionId","formSubmission_Id","formId","formSubmission_FormId","push","openSubmission","t16","t17","headerName","field","flex","minWidth","t18","t19","maxWidth","valueFormatter","_temp","t20","t21","getStatusConfig","p_0","p","label","color","t22","cellRenderer","cellRendererParams","t23","t24","p_1","t25","t26","p_2","t27","_e","p_4","t28","actionList","getTitle","getIconName","_temp2","handleOnClick","t29","columnDefs","t30","t31","title","gridHeaderConfig","t32","name","gridFunctions","t33","pagination","gridOptions","t34","p_3"],"sources":["../../../../src/udp/pages/MyFormSubmissions/MyFormSubmissions.jsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from 'react-router-dom';\nimport { SearchMethodUdpGrid } from '../../../UI/templates/newGrid';\nimport { ConfigService } from '../../../configService';\nimport { useUser } from '../../../utilities/auth/useUser';\nimport { useTenant } from '../../../utilities/tenant/useTenant';\n\n/**\n * User-facing \"My form submissions\" page.\n *\n * The user-centered counterpart to the admin submission grid\n * (UdpFormsSubmissionGridManagerPage). Server-side search scoped to the current\n * user's own submissions across every form in the active tenant. Mirrors the\n * legacy responder grid (UdpFormsSubmissionGrid with isManagerMode=false): the\n * `formSubmission_unityUserId = user.id` filter is the same view convention.\n *\n * The row action routes to `/forms/:formId/submissions/:submissionId`, which the\n * renderer self-gates — an in-progress submission you own opens editable\n * (continue/resume); a Submitted one opens read-only. See\n * udp-question-form-renderer `isReadOnly`.\n *\n * Note: the per-user filter is a view convenience, NOT a security boundary — the\n * `/UdpFormWithSubmissionsView/search` endpoint scopes by tenant + auth only and\n * trusts the client filter. Same posture as legacy.\n */\n\n// Saved-views persistence id for this grid surface (distinct from the\n// admin manager/responder grid ids).\nconst MY_SUBMISSIONS_GRID_ID = 'A1F2C3D4-5E6F-4789-9ABC-DEF012345678';\n\n// UdpFormSubmission status enum (numeric, as returned by the backend view).\nconst SUBMISSION_STATUS = {\n  IN_PROGRESS: 1,\n  SUBMITTED: 2,\n  CREATED: 3,\n};\n\n// Relative \"when\" formatting — matches the overview page's recent-submissions grid.\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('formSubmissions.my.time.justNow', { defaultValue: 'just now' });\n  if (diffSec < 3600)\n    return t('formSubmissions.my.time.minutesAgo', {\n      defaultValue: '{{count}}m ago',\n      count: Math.floor(diffSec / 60)\n    });\n  if (diffSec < 86400)\n    return t('formSubmissions.my.time.hoursAgo', {\n      defaultValue: '{{count}}h ago',\n      count: Math.floor(diffSec / 3600)\n    });\n  if (diffSec < 86400 * 30)\n    return t('formSubmissions.my.time.daysAgo', {\n      defaultValue: '{{count}}d ago',\n      count: Math.floor(diffSec / 86400)\n    });\n  return new Date(value).toLocaleDateString();\n};\n\nconst lastActivity = (data) =>\n  data?.formSubmission_LastModifiedOn ??\n  data?.formSubmission_SubmittedOn ??\n  data?.formSubmission_InitialCreatedOn ??\n  null;\n\nconst isSubmitted = (data) =>\n  Number(data?.formSubmission_Status) === SUBMISSION_STATUS.SUBMITTED;\n\nexport const MyFormSubmissions = ({\n  generic1 = undefined,\n  generic2 = undefined,\n  generic3 = undefined\n}) => {\n  const { t } = useTranslation();\n  const history = useHistory();\n  const formatRelative = useMemo(() => makeFormatRelative(t), [t]);\n  const user = useUser();\n  const tenant = useTenant();\n\n  const userId = user?.userId ?? user?.id ?? null;\n  const tenantId = tenant?.activeTenant?.tenantId ?? null;\n\n  const searchMethodConfig = useMemo(\n    () => ({\n      requestUrl: `${ConfigService.productV1ApiUrl}/UdpFormWithSubmissionsView/search`,\n      customSearchObject: {\n        eagerLoad: false,\n        filterElements: [\n          {\n            searchField: 'formSubmission_unityUserId',\n            searchOperator: '=',\n            searchValue: userId || '',\n          },\n          {\n            searchField: 'form_tenantId',\n            searchOperator: '=',\n            searchValue: tenantId || '',\n          },\n          // Optional host scoping on the submission's generic columns — same\n          // fields/operator as the legacy responder grid, and an explicit ''\n          // is a real filter value there too (hence `!== undefined`).\n          ...(generic1 !== undefined\n            ? [{ searchField: 'formSubmission_generic1', searchOperator: '=', searchValue: generic1 }]\n            : []),\n          ...(generic2 !== undefined\n            ? [{ searchField: 'formSubmission_generic2', searchOperator: '=', searchValue: generic2 }]\n            : []),\n          ...(generic3 !== undefined\n            ? [{ searchField: 'formSubmission_generic3', searchOperator: '=', searchValue: generic3 }]\n            : []),\n        ],\n        orderElements: [\n          { sortColumn: 'formSubmission_LastModifiedOn', sortDirection: 'DESC' },\n        ],\n      },\n    }),\n    [userId, tenantId, generic1, generic2, generic3],\n  );\n\n  const openSubmission = useCallback(\n    (data) => {\n      const submissionId = data?.formSubmission_Id;\n      const formId = data?.formSubmission_FormId;\n      if (!submissionId || !formId) return;\n      history.push(`/forms/${formId}/submissions/${submissionId}`);\n    },\n    [history],\n  );\n\n  const columnDefs = useMemo(\n    () => [\n      { headerName: t('formSubmissions.my.grid.columns.form', { defaultValue: 'Form' }), field: 'form_Name', flex: 2, minWidth: 200 },\n      {\n        headerName: t('formSubmissions.my.grid.columns.version', { defaultValue: 'Version' }),\n        field: 'formSubmission_FormVersion',\n        maxWidth: 120,\n        valueFormatter: (p) => (p.value != null ? `v${p.value}` : ''),\n      },\n      {\n        headerName: t('formSubmissions.my.grid.columns.status', { defaultValue: 'Status' }),\n        field: 'formSubmission_Status',\n        maxWidth: 160,\n        cellRenderer: 'statusRenderer',\n        cellRendererParams: {\n          getStatusConfig: (p) => {\n            switch (Number(p.data?.formSubmission_Status)) {\n              case SUBMISSION_STATUS.SUBMITTED:\n                return {\n                  label: t('formSubmissions.my.status.submitted', { defaultValue: 'Submitted' }),\n                  color: 'success'\n                };\n              case SUBMISSION_STATUS.IN_PROGRESS:\n                return {\n                  label: t('formSubmissions.my.status.inProgress', { defaultValue: 'In progress' }),\n                  color: 'warning'\n                };\n              case SUBMISSION_STATUS.CREATED:\n                return {\n                  label: t('formSubmissions.my.status.created', { defaultValue: 'Created' }),\n                  color: 'info'\n                };\n              default:\n                return null;\n            }\n          },\n        },\n      },\n      {\n        headerName: t('formSubmissions.my.grid.columns.lastUpdated', { defaultValue: 'Last updated' }),\n        field: 'formSubmission_LastModifiedOn',\n        minWidth: 140,\n        valueFormatter: (p) => formatRelative(lastActivity(p.data)),\n      },\n      {\n        field: 'actions',\n        cellRenderer: 'actionsRenderer',\n        cellRendererParams: {\n          actionList: [\n            {\n              id: 1,\n              // The renderer opens editable for an owned in-progress draft and\n              // read-only for a Submitted one — surface that in the affordance.\n              getTitle: (p) =>\n                isSubmitted(p?.data)\n                  ? t('formSubmissions.my.actions.viewSubmission', {\n                      defaultValue: 'View submission'\n                    })\n                  : t('formSubmissions.my.actions.continueSubmission', {\n                      defaultValue: 'Continue submission'\n                    }),\n              getIconName: (p) => (isSubmitted(p?.data) ? 'eye' : 'edit'),\n              handleOnClick: (_e, p) => openSubmission(p?.data),\n            },\n          ],\n        },\n      },\n    ],\n    [openSubmission, formatRelative, t],\n  );\n\n  const gridHeaderConfig = useMemo(\n    () => ({\n      title: t('formSubmissions.my.title', { defaultValue: 'My form submissions' }),\n    }),\n    [t],\n  );\n\n  const gridFunctions = useMemo(\n    () => [\n      { name: 'agGridRefreshData' },\n      { name: 'agGridHideShowColumns' },\n      { name: 'agGridExport' },\n      // { name: 'openSavedViews' },\n    ],\n    [],\n  );\n\n  const gridOptions = useMemo(() => ({ pagination: true }), []);\n\n  return (\n    <SearchMethodUdpGrid\n      searchMethodConfig={searchMethodConfig}\n      columnDefs={columnDefs}\n      gridHeaderConfig={gridHeaderConfig}\n      gridFunctions={gridFunctions}\n      gridOptions={gridOptions}\n      gridId={MY_SUBMISSIONS_GRID_ID}\n    />\n  );\n};\n\nexport default MyFormSubmissions;\n"],"mappings":"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"}