@open-mercato/core 0.6.8-develop.7101.1.bd9356828a → 0.7.1-develop.7102.1.b41f7e3e51

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.
Files changed (159) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/dist/modules/auth/api/login.js +19 -0
  3. package/dist/modules/auth/api/login.js.map +2 -2
  4. package/dist/modules/auth/api/routeError.js +11 -0
  5. package/dist/modules/auth/api/routeError.js.map +7 -0
  6. package/dist/modules/auth/api/users/acl/route.js +23 -7
  7. package/dist/modules/auth/api/users/acl/route.js.map +2 -2
  8. package/dist/modules/business_rules/backend/rules/[id]/page.meta.js +6 -1
  9. package/dist/modules/business_rules/backend/rules/[id]/page.meta.js.map +2 -2
  10. package/dist/modules/business_rules/backend/rules/create/page.meta.js +5 -1
  11. package/dist/modules/business_rules/backend/rules/create/page.meta.js.map +2 -2
  12. package/dist/modules/business_rules/backend/sets/[id]/page.meta.js +6 -1
  13. package/dist/modules/business_rules/backend/sets/[id]/page.meta.js.map +2 -2
  14. package/dist/modules/business_rules/backend/sets/create/page.meta.js +5 -1
  15. package/dist/modules/business_rules/backend/sets/create/page.meta.js.map +2 -2
  16. package/dist/modules/customer_accounts/backend/customer_accounts/settings/CustomerAccountsSettingsPageClient.js +84 -0
  17. package/dist/modules/customer_accounts/backend/customer_accounts/settings/CustomerAccountsSettingsPageClient.js.map +7 -0
  18. package/dist/modules/customer_accounts/backend/customer_accounts/settings/page.js +7 -81
  19. package/dist/modules/customer_accounts/backend/customer_accounts/settings/page.js.map +2 -2
  20. package/dist/modules/customer_accounts/backend/customer_accounts/users/PortalUsersPageClient.js +525 -0
  21. package/dist/modules/customer_accounts/backend/customer_accounts/users/PortalUsersPageClient.js.map +7 -0
  22. package/dist/modules/customer_accounts/backend/customer_accounts/users/[id]/PortalUserDetailPageClient.js +731 -0
  23. package/dist/modules/customer_accounts/backend/customer_accounts/users/[id]/PortalUserDetailPageClient.js.map +7 -0
  24. package/dist/modules/customer_accounts/backend/customer_accounts/users/[id]/page.js +7 -727
  25. package/dist/modules/customer_accounts/backend/customer_accounts/users/[id]/page.js.map +2 -2
  26. package/dist/modules/customer_accounts/backend/customer_accounts/users/page.js +7 -521
  27. package/dist/modules/customer_accounts/backend/customer_accounts/users/page.js.map +2 -2
  28. package/dist/modules/customer_accounts/extension-points.js +1 -1
  29. package/dist/modules/customer_accounts/extension-points.js.map +2 -2
  30. package/dist/modules/customer_accounts/lib/portalUrl.js +69 -0
  31. package/dist/modules/customer_accounts/lib/portalUrl.js.map +7 -0
  32. package/dist/modules/customers/backend/customers/companies/page.js +2 -2
  33. package/dist/modules/customers/backend/customers/companies/page.js.map +2 -2
  34. package/dist/modules/customers/backend/customers/deals/page.js +2 -2
  35. package/dist/modules/customers/backend/customers/deals/page.js.map +2 -2
  36. package/dist/modules/customers/backend/customers/people/page.js +2 -2
  37. package/dist/modules/customers/backend/customers/people/page.js.map +2 -2
  38. package/dist/modules/customers/components/detail/AssignRoleDialog.js +33 -28
  39. package/dist/modules/customers/components/detail/AssignRoleDialog.js.map +2 -2
  40. package/dist/modules/eudr/backend/eudr/evidence-submissions/[id]/page.meta.js +3 -1
  41. package/dist/modules/eudr/backend/eudr/evidence-submissions/[id]/page.meta.js.map +2 -2
  42. package/dist/modules/eudr/backend/eudr/evidence-submissions/create/page.meta.js +1 -0
  43. package/dist/modules/eudr/backend/eudr/evidence-submissions/create/page.meta.js.map +2 -2
  44. package/dist/modules/eudr/backend/eudr/evidence-submissions/page.meta.js +4 -1
  45. package/dist/modules/eudr/backend/eudr/evidence-submissions/page.meta.js.map +2 -2
  46. package/dist/modules/eudr/backend/eudr/page.meta.js +2 -2
  47. package/dist/modules/eudr/backend/eudr/page.meta.js.map +2 -2
  48. package/dist/modules/eudr/backend/eudr/plots/[id]/page.js +8 -2
  49. package/dist/modules/eudr/backend/eudr/plots/[id]/page.js.map +2 -2
  50. package/dist/modules/eudr/backend/eudr/plots/[id]/page.meta.js +3 -1
  51. package/dist/modules/eudr/backend/eudr/plots/[id]/page.meta.js.map +2 -2
  52. package/dist/modules/eudr/backend/eudr/plots/create/page.js +8 -2
  53. package/dist/modules/eudr/backend/eudr/plots/create/page.js.map +2 -2
  54. package/dist/modules/eudr/backend/eudr/plots/create/page.meta.js +1 -0
  55. package/dist/modules/eudr/backend/eudr/plots/create/page.meta.js.map +2 -2
  56. package/dist/modules/eudr/backend/eudr/plots/page.meta.js +4 -1
  57. package/dist/modules/eudr/backend/eudr/plots/page.meta.js.map +2 -2
  58. package/dist/modules/eudr/backend/eudr/product-mappings/[id]/page.meta.js +3 -1
  59. package/dist/modules/eudr/backend/eudr/product-mappings/[id]/page.meta.js.map +2 -2
  60. package/dist/modules/eudr/backend/eudr/product-mappings/create/page.meta.js +1 -0
  61. package/dist/modules/eudr/backend/eudr/product-mappings/create/page.meta.js.map +2 -2
  62. package/dist/modules/eudr/backend/eudr/product-mappings/page.meta.js +4 -1
  63. package/dist/modules/eudr/backend/eudr/product-mappings/page.meta.js.map +2 -2
  64. package/dist/modules/eudr/backend/eudr/risk-assessments/[id]/page.meta.js +3 -1
  65. package/dist/modules/eudr/backend/eudr/risk-assessments/[id]/page.meta.js.map +2 -2
  66. package/dist/modules/eudr/backend/eudr/risk-assessments/create/page.meta.js +1 -0
  67. package/dist/modules/eudr/backend/eudr/risk-assessments/create/page.meta.js.map +2 -2
  68. package/dist/modules/eudr/backend/eudr/risk-assessments/page.meta.js +4 -1
  69. package/dist/modules/eudr/backend/eudr/risk-assessments/page.meta.js.map +2 -2
  70. package/dist/modules/eudr/backend/eudr/statements/[id]/page.js +2 -0
  71. package/dist/modules/eudr/backend/eudr/statements/[id]/page.js.map +2 -2
  72. package/dist/modules/eudr/backend/eudr/statements/[id]/page.meta.js +3 -1
  73. package/dist/modules/eudr/backend/eudr/statements/[id]/page.meta.js.map +2 -2
  74. package/dist/modules/eudr/backend/eudr/statements/create/page.meta.js +1 -0
  75. package/dist/modules/eudr/backend/eudr/statements/create/page.meta.js.map +2 -2
  76. package/dist/modules/eudr/backend/eudr/statements/page.js +30 -25
  77. package/dist/modules/eudr/backend/eudr/statements/page.js.map +2 -2
  78. package/dist/modules/eudr/backend/eudr/statements/page.meta.js +4 -1
  79. package/dist/modules/eudr/backend/eudr/statements/page.meta.js.map +2 -2
  80. package/dist/modules/eudr/commands/statements.js +5 -3
  81. package/dist/modules/eudr/commands/statements.js.map +2 -2
  82. package/dist/modules/eudr/components/crudErrorI18n.js +21 -1
  83. package/dist/modules/eudr/components/crudErrorI18n.js.map +2 -2
  84. package/dist/modules/eudr/components/formConfig.js +6 -2
  85. package/dist/modules/eudr/components/formConfig.js.map +2 -2
  86. package/dist/modules/eudr/lib/statement-lifecycle.js +9 -1
  87. package/dist/modules/eudr/lib/statement-lifecycle.js.map +2 -2
  88. package/dist/modules/sales/components/documents/LineItemDialog.js +1 -1
  89. package/dist/modules/sales/components/documents/LineItemDialog.js.map +1 -1
  90. package/dist/modules/sales/widgets/injection/document-history/widget.client.js +44 -2
  91. package/dist/modules/sales/widgets/injection/document-history/widget.client.js.map +2 -2
  92. package/dist/modules/wms/components/backend/WmsLocationDetailPage.js +20 -16
  93. package/dist/modules/wms/components/backend/WmsLocationDetailPage.js.map +2 -2
  94. package/dist/modules/wms/components/backend/WmsLotDetailPage.js +10 -6
  95. package/dist/modules/wms/components/backend/WmsLotDetailPage.js.map +2 -2
  96. package/dist/modules/wms/components/backend/WmsOperationalDashboardPage.js +11 -7
  97. package/dist/modules/wms/components/backend/WmsOperationalDashboardPage.js.map +2 -2
  98. package/dist/modules/wms/components/backend/WmsSkuDetailPage.js +10 -6
  99. package/dist/modules/wms/components/backend/WmsSkuDetailPage.js.map +2 -2
  100. package/package.json +8 -8
  101. package/src/modules/auth/api/login.ts +23 -0
  102. package/src/modules/auth/api/routeError.ts +30 -0
  103. package/src/modules/auth/api/users/acl/route.ts +49 -9
  104. package/src/modules/business_rules/backend/rules/[id]/page.meta.ts +5 -0
  105. package/src/modules/business_rules/backend/rules/create/page.meta.ts +5 -1
  106. package/src/modules/business_rules/backend/sets/[id]/page.meta.ts +5 -0
  107. package/src/modules/business_rules/backend/sets/create/page.meta.ts +5 -1
  108. package/src/modules/customer_accounts/backend/customer_accounts/settings/CustomerAccountsSettingsPageClient.tsx +138 -0
  109. package/src/modules/customer_accounts/backend/customer_accounts/settings/page.tsx +8 -132
  110. package/src/modules/customer_accounts/backend/customer_accounts/users/PortalUsersPageClient.tsx +601 -0
  111. package/src/modules/customer_accounts/backend/customer_accounts/users/[id]/PortalUserDetailPageClient.tsx +838 -0
  112. package/src/modules/customer_accounts/backend/customer_accounts/users/[id]/page.tsx +6 -838
  113. package/src/modules/customer_accounts/backend/customer_accounts/users/page.tsx +6 -590
  114. package/src/modules/customer_accounts/extension-points.ts +1 -1
  115. package/src/modules/customer_accounts/lib/portalUrl.ts +112 -0
  116. package/src/modules/customers/backend/customers/companies/page.tsx +2 -2
  117. package/src/modules/customers/backend/customers/deals/page.tsx +2 -2
  118. package/src/modules/customers/backend/customers/people/page.tsx +2 -2
  119. package/src/modules/customers/components/detail/AssignRoleDialog.tsx +12 -7
  120. package/src/modules/eudr/backend/eudr/evidence-submissions/[id]/page.meta.ts +2 -0
  121. package/src/modules/eudr/backend/eudr/evidence-submissions/create/page.meta.ts +1 -0
  122. package/src/modules/eudr/backend/eudr/evidence-submissions/page.meta.ts +4 -1
  123. package/src/modules/eudr/backend/eudr/page.meta.ts +2 -2
  124. package/src/modules/eudr/backend/eudr/plots/[id]/page.meta.ts +2 -0
  125. package/src/modules/eudr/backend/eudr/plots/[id]/page.tsx +8 -2
  126. package/src/modules/eudr/backend/eudr/plots/create/page.meta.ts +1 -0
  127. package/src/modules/eudr/backend/eudr/plots/create/page.tsx +8 -2
  128. package/src/modules/eudr/backend/eudr/plots/page.meta.ts +4 -1
  129. package/src/modules/eudr/backend/eudr/product-mappings/[id]/page.meta.ts +2 -0
  130. package/src/modules/eudr/backend/eudr/product-mappings/create/page.meta.ts +1 -0
  131. package/src/modules/eudr/backend/eudr/product-mappings/page.meta.ts +4 -1
  132. package/src/modules/eudr/backend/eudr/risk-assessments/[id]/page.meta.ts +2 -0
  133. package/src/modules/eudr/backend/eudr/risk-assessments/create/page.meta.ts +1 -0
  134. package/src/modules/eudr/backend/eudr/risk-assessments/page.meta.ts +4 -1
  135. package/src/modules/eudr/backend/eudr/statements/[id]/page.meta.ts +2 -0
  136. package/src/modules/eudr/backend/eudr/statements/[id]/page.tsx +2 -0
  137. package/src/modules/eudr/backend/eudr/statements/create/page.meta.ts +1 -0
  138. package/src/modules/eudr/backend/eudr/statements/page.meta.ts +4 -1
  139. package/src/modules/eudr/backend/eudr/statements/page.tsx +32 -26
  140. package/src/modules/eudr/commands/statements.ts +4 -2
  141. package/src/modules/eudr/components/crudErrorI18n.ts +31 -0
  142. package/src/modules/eudr/components/formConfig.tsx +9 -1
  143. package/src/modules/eudr/i18n/de.json +3 -2
  144. package/src/modules/eudr/i18n/en.json +3 -2
  145. package/src/modules/eudr/i18n/es.json +3 -2
  146. package/src/modules/eudr/i18n/ko.json +3 -2
  147. package/src/modules/eudr/i18n/pl.json +3 -2
  148. package/src/modules/eudr/lib/statement-lifecycle.ts +8 -0
  149. package/src/modules/sales/components/documents/LineItemDialog.tsx +1 -1
  150. package/src/modules/sales/i18n/de.json +37 -0
  151. package/src/modules/sales/i18n/en.json +37 -0
  152. package/src/modules/sales/i18n/es.json +37 -0
  153. package/src/modules/sales/i18n/ko.json +37 -0
  154. package/src/modules/sales/i18n/pl.json +37 -0
  155. package/src/modules/sales/widgets/injection/document-history/widget.client.tsx +42 -2
  156. package/src/modules/wms/components/backend/WmsLocationDetailPage.tsx +30 -26
  157. package/src/modules/wms/components/backend/WmsLotDetailPage.tsx +21 -17
  158. package/src/modules/wms/components/backend/WmsOperationalDashboardPage.tsx +17 -13
  159. package/src/modules/wms/components/backend/WmsSkuDetailPage.tsx +16 -12
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../src/modules/eudr/backend/eudr/plots/create/page.tsx"],
4
- "sourcesContent": ["\"use client\"\n\nimport * as React from 'react'\nimport { useRouter } from 'next/navigation'\nimport { useT } from '@open-mercato/shared/lib/i18n/context'\nimport { Page, PageBody } from '@open-mercato/ui/backend/Page'\nimport { CrudForm, type CrudField, type CrudFormGroup } from '@open-mercato/ui/backend/CrudForm'\nimport { createCrud } from '@open-mercato/ui/backend/utils/crud'\nimport { createCrudFormError } from '@open-mercato/ui/backend/utils/serverErrors'\nimport { flash } from '@open-mercato/ui/backend/FlashMessages'\nimport { Input } from '@open-mercato/ui/primitives/input'\nimport { Switch } from '@open-mercato/ui/primitives/switch'\nimport {\n CompanySelectField,\n CountrySelectField,\n translateEudrCrudError,\n type CompanySnapshot,\n} from '../../../../components/formConfig'\nimport {\n assertPointAreaWithinLimit,\n isPolygonGeometry,\n parsePlotAreaInput,\n parsePlotGeometryForSubmit,\n} from '../../../../components/plotForm'\nimport { GeometryInput } from '../../../../components/GeometryInput'\n\ntype PlotFormValues = {\n supplierEntityId: string\n supplierSnapshot: CompanySnapshot | null\n name: string\n externalId: string\n description: string\n originCountry: string\n geometry: string\n areaHa: string\n producerName: string\n isActive: boolean\n} & Record<string, unknown>\n\nfunction optionalText(value: unknown): string | null {\n if (typeof value !== 'string') return null\n const trimmed = value.trim()\n return trimmed.length ? trimmed : null\n}\n\nfunction isCompanySnapshot(value: unknown): value is CompanySnapshot {\n return value !== null && typeof value === 'object' && !Array.isArray(value)\n}\n\nexport default function CreateEudrPlotPage() {\n const translate = useT()\n const router = useRouter()\n\n const fields = React.useMemo<CrudField[]>(() => [\n {\n id: 'supplierEntityId',\n layout: 'half',\n label: translate('eudr.plots.form.supplier'),\n type: 'custom',\n required: true,\n component: ({ id, value, setValue, setFormValue }) => (\n <CompanySelectField\n id={id}\n value={typeof value === 'string' ? value : null}\n onChange={(nextValue) => setValue(nextValue ?? '')}\n onSnapshot={(snapshot) => setFormValue?.('supplierSnapshot', snapshot)}\n placeholder={translate('eudr.evidenceSubmissions.form.supplierPlaceholder')}\n loadError={translate('eudr.evidenceSubmissions.form.supplierLoadError')}\n />\n ),\n },\n {\n id: 'name',\n layout: 'half',\n label: translate('eudr.plots.form.name'),\n type: 'text',\n required: true,\n },\n {\n id: 'externalId',\n layout: 'half',\n label: translate('eudr.plots.form.externalId'),\n type: 'text',\n },\n {\n id: 'description',\n label: translate('eudr.plots.form.description'),\n type: 'textarea',\n rows: 4,\n },\n {\n id: 'originCountry',\n layout: 'half',\n label: translate('eudr.plots.form.originCountry'),\n type: 'custom',\n required: true,\n component: ({ id, value, setValue, disabled }) => (\n <CountrySelectField\n id={id}\n value={typeof value === 'string' ? value : null}\n onChange={(nextValue) => setValue(nextValue ?? '')}\n disabled={disabled}\n placeholder={translate('eudr.plots.form.originCountryPlaceholder')}\n />\n ),\n },\n {\n id: 'geometry',\n label: translate('eudr.plots.form.geometry'),\n type: 'custom',\n required: true,\n component: ({ id, value, setValue, values, disabled }) => (\n <GeometryInput\n id={id}\n value={typeof value === 'string' ? value : ''}\n onChange={(nextValue) => setValue(nextValue)}\n disabled={disabled}\n areaHa={typeof values?.areaHa === 'string' || typeof values?.areaHa === 'number' ? String(values.areaHa) : ''}\n />\n ),\n },\n {\n id: 'areaHa',\n layout: 'half',\n label: translate('eudr.plots.form.areaHa'),\n type: 'custom',\n description: translate('eudr.plots.form.areaHaHelp'),\n component: ({ id, value, setValue, values, disabled }) => {\n const polygonGeometry = isPolygonGeometry(values?.geometry)\n return (\n <Input\n id={id}\n type=\"number\"\n min=\"0\"\n step=\"0.0001\"\n value={typeof value === 'string' || typeof value === 'number' ? String(value) : ''}\n disabled={disabled || polygonGeometry}\n onChange={(event) => setValue(event.target.value)}\n />\n )\n },\n },\n {\n id: 'producerName',\n label: translate('eudr.plots.form.producerName'),\n type: 'text',\n },\n {\n id: 'isActive',\n label: translate('eudr.plots.form.isActive'),\n type: 'custom',\n defaultValue: true,\n component: ({ value, setValue, disabled }) => (\n <Switch\n checked={value !== false}\n disabled={disabled}\n onCheckedChange={setValue}\n />\n ),\n },\n ], [translate])\n\n const groups = React.useMemo<CrudFormGroup[]>(() => [\n {\n id: 'details',\n title: translate('eudr.plots.form.details'),\n column: 1,\n fields: [\n 'supplierEntityId',\n 'name',\n 'externalId',\n 'originCountry',\n ],\n },\n {\n id: 'geometry',\n title: translate('eudr.plots.form.geometry'),\n column: 1,\n fields: [\n 'geometry',\n 'areaHa',\n ],\n },\n {\n id: 'attributes',\n title: translate('eudr.common.attributes'),\n column: 2,\n fields: [\n 'producerName',\n 'isActive',\n ],\n },\n {\n id: 'notes',\n title: translate('eudr.common.notes'),\n column: 2,\n fields: [\n 'description',\n ],\n },\n ], [translate])\n\n return (\n <Page>\n <PageBody>\n <CrudForm<PlotFormValues>\n title={translate('eudr.plots.create.title')}\n backHref=\"/backend/eudr/plots\"\n cancelHref=\"/backend/eudr/plots\"\n submitLabel={translate('eudr.plots.form.submitCreate')}\n fields={fields}\n groups={groups}\n initialValues={{\n supplierEntityId: '',\n supplierSnapshot: null,\n name: '',\n externalId: '',\n description: '',\n originCountry: '',\n geometry: '',\n areaHa: '',\n producerName: '',\n isActive: true,\n }}\n onSubmit={async (values) => {\n const supplierEntityId = optionalText(values.supplierEntityId)\n if (!supplierEntityId) {\n const message = translate('eudr.plots.form.supplierRequired')\n throw createCrudFormError(message, { supplierEntityId: message })\n }\n const name = optionalText(values.name)\n if (!name) {\n const message = translate('eudr.plots.form.nameRequired')\n throw createCrudFormError(message, { name: message })\n }\n const originCountry = optionalText(values.originCountry)\n if (!originCountry) {\n const message = translate('eudr.plots.form.originCountryRequired')\n throw createCrudFormError(message, { originCountry: message })\n }\n const { geometry, plotType } = parsePlotGeometryForSubmit(values.geometry, translate)\n const areaHa = isPolygonGeometry(values.geometry) ? null : parsePlotAreaInput(values.areaHa, translate)\n assertPointAreaWithinLimit(plotType, areaHa, translate)\n await createCrud('eudr/plots', {\n supplierEntityId,\n supplierSnapshot: isCompanySnapshot(values.supplierSnapshot) ? values.supplierSnapshot : null,\n name,\n externalId: optionalText(values.externalId),\n description: optionalText(values.description),\n originCountry: originCountry.toUpperCase(),\n geometry,\n areaHa,\n producerName: optionalText(values.producerName),\n isActive: values.isActive !== false,\n }, {\n errorMessage: translate('eudr.plots.form.createError'),\n }).catch((err) => {\n throw translateEudrCrudError(err, translate)\n })\n flash(translate('eudr.plots.form.createSuccess'), 'success')\n router.push('/backend/eudr/plots')\n }}\n />\n </PageBody>\n </Page>\n )\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["\"use client\"\n\nimport * as React from 'react'\nimport { useRouter } from 'next/navigation'\nimport { useT } from '@open-mercato/shared/lib/i18n/context'\nimport { Page, PageBody } from '@open-mercato/ui/backend/Page'\nimport { CrudForm, type CrudField, type CrudFormGroup } from '@open-mercato/ui/backend/CrudForm'\nimport { createCrud } from '@open-mercato/ui/backend/utils/crud'\nimport { createCrudFormError } from '@open-mercato/ui/backend/utils/serverErrors'\nimport { flash } from '@open-mercato/ui/backend/FlashMessages'\nimport { Input } from '@open-mercato/ui/primitives/input'\nimport { Switch } from '@open-mercato/ui/primitives/switch'\nimport {\n CompanySelectField,\n CountrySelectField,\n translateEudrCrudError,\n type CompanySnapshot,\n} from '../../../../components/formConfig'\nimport {\n assertPointAreaWithinLimit,\n isPolygonGeometry,\n parsePlotAreaInput,\n parsePlotGeometryForSubmit,\n} from '../../../../components/plotForm'\nimport { GeometryInput } from '../../../../components/GeometryInput'\n\ntype PlotFormValues = {\n supplierEntityId: string\n supplierSnapshot: CompanySnapshot | null\n name: string\n externalId: string\n description: string\n originCountry: string\n geometry: string\n areaHa: string\n producerName: string\n isActive: boolean\n} & Record<string, unknown>\n\nfunction optionalText(value: unknown): string | null {\n if (typeof value !== 'string') return null\n const trimmed = value.trim()\n return trimmed.length ? trimmed : null\n}\n\nfunction isCompanySnapshot(value: unknown): value is CompanySnapshot {\n return value !== null && typeof value === 'object' && !Array.isArray(value)\n}\n\nexport default function CreateEudrPlotPage() {\n const translate = useT()\n const router = useRouter()\n const [geometryDraft, setGeometryDraft] = React.useState('')\n const areaRequired = !isPolygonGeometry(geometryDraft)\n\n const fields = React.useMemo<CrudField[]>(() => [\n {\n id: 'supplierEntityId',\n layout: 'half',\n label: translate('eudr.plots.form.supplier'),\n type: 'custom',\n required: true,\n component: ({ id, value, setValue, setFormValue }) => (\n <CompanySelectField\n id={id}\n value={typeof value === 'string' ? value : null}\n onChange={(nextValue) => setValue(nextValue ?? '')}\n onSnapshot={(snapshot) => setFormValue?.('supplierSnapshot', snapshot)}\n placeholder={translate('eudr.evidenceSubmissions.form.supplierPlaceholder')}\n loadError={translate('eudr.evidenceSubmissions.form.supplierLoadError')}\n />\n ),\n },\n {\n id: 'name',\n layout: 'half',\n label: translate('eudr.plots.form.name'),\n type: 'text',\n required: true,\n },\n {\n id: 'externalId',\n layout: 'half',\n label: translate('eudr.plots.form.externalId'),\n type: 'text',\n },\n {\n id: 'description',\n label: translate('eudr.plots.form.description'),\n type: 'textarea',\n rows: 4,\n },\n {\n id: 'originCountry',\n layout: 'half',\n label: translate('eudr.plots.form.originCountry'),\n type: 'custom',\n required: true,\n component: ({ id, value, setValue, disabled }) => (\n <CountrySelectField\n id={id}\n value={typeof value === 'string' ? value : null}\n onChange={(nextValue) => setValue(nextValue ?? '')}\n disabled={disabled}\n placeholder={translate('eudr.plots.form.originCountryPlaceholder')}\n />\n ),\n },\n {\n id: 'geometry',\n label: translate('eudr.plots.form.geometry'),\n type: 'custom',\n required: true,\n component: ({ id, value, setValue, values, disabled }) => (\n <GeometryInput\n id={id}\n value={typeof value === 'string' ? value : ''}\n onChange={(nextValue) => {\n setValue(nextValue)\n setGeometryDraft(nextValue)\n }}\n disabled={disabled}\n areaHa={typeof values?.areaHa === 'string' || typeof values?.areaHa === 'number' ? String(values.areaHa) : ''}\n />\n ),\n },\n {\n id: 'areaHa',\n layout: 'half',\n label: translate('eudr.plots.form.areaHa'),\n type: 'custom',\n required: areaRequired,\n description: translate('eudr.plots.form.areaHaHelp'),\n component: ({ id, value, setValue, values, disabled }) => {\n const polygonGeometry = isPolygonGeometry(values?.geometry)\n return (\n <Input\n id={id}\n type=\"number\"\n min=\"0\"\n step=\"0.0001\"\n value={typeof value === 'string' || typeof value === 'number' ? String(value) : ''}\n disabled={disabled || polygonGeometry}\n onChange={(event) => setValue(event.target.value)}\n />\n )\n },\n },\n {\n id: 'producerName',\n label: translate('eudr.plots.form.producerName'),\n type: 'text',\n },\n {\n id: 'isActive',\n label: translate('eudr.plots.form.isActive'),\n type: 'custom',\n defaultValue: true,\n component: ({ value, setValue, disabled }) => (\n <Switch\n checked={value !== false}\n disabled={disabled}\n onCheckedChange={setValue}\n />\n ),\n },\n ], [translate, areaRequired])\n\n const groups = React.useMemo<CrudFormGroup[]>(() => [\n {\n id: 'details',\n title: translate('eudr.plots.form.details'),\n column: 1,\n fields: [\n 'supplierEntityId',\n 'name',\n 'externalId',\n 'originCountry',\n ],\n },\n {\n id: 'geometry',\n title: translate('eudr.plots.form.geometry'),\n column: 1,\n fields: [\n 'geometry',\n 'areaHa',\n ],\n },\n {\n id: 'attributes',\n title: translate('eudr.common.attributes'),\n column: 2,\n fields: [\n 'producerName',\n 'isActive',\n ],\n },\n {\n id: 'notes',\n title: translate('eudr.common.notes'),\n column: 2,\n fields: [\n 'description',\n ],\n },\n ], [translate])\n\n return (\n <Page>\n <PageBody>\n <CrudForm<PlotFormValues>\n title={translate('eudr.plots.create.title')}\n backHref=\"/backend/eudr/plots\"\n cancelHref=\"/backend/eudr/plots\"\n submitLabel={translate('eudr.plots.form.submitCreate')}\n fields={fields}\n groups={groups}\n initialValues={{\n supplierEntityId: '',\n supplierSnapshot: null,\n name: '',\n externalId: '',\n description: '',\n originCountry: '',\n geometry: '',\n areaHa: '',\n producerName: '',\n isActive: true,\n }}\n onSubmit={async (values) => {\n const supplierEntityId = optionalText(values.supplierEntityId)\n if (!supplierEntityId) {\n const message = translate('eudr.plots.form.supplierRequired')\n throw createCrudFormError(message, { supplierEntityId: message })\n }\n const name = optionalText(values.name)\n if (!name) {\n const message = translate('eudr.plots.form.nameRequired')\n throw createCrudFormError(message, { name: message })\n }\n const originCountry = optionalText(values.originCountry)\n if (!originCountry) {\n const message = translate('eudr.plots.form.originCountryRequired')\n throw createCrudFormError(message, { originCountry: message })\n }\n const { geometry, plotType } = parsePlotGeometryForSubmit(values.geometry, translate)\n const areaHa = isPolygonGeometry(values.geometry) ? null : parsePlotAreaInput(values.areaHa, translate)\n assertPointAreaWithinLimit(plotType, areaHa, translate)\n await createCrud('eudr/plots', {\n supplierEntityId,\n supplierSnapshot: isCompanySnapshot(values.supplierSnapshot) ? values.supplierSnapshot : null,\n name,\n externalId: optionalText(values.externalId),\n description: optionalText(values.description),\n originCountry: originCountry.toUpperCase(),\n geometry,\n areaHa,\n producerName: optionalText(values.producerName),\n isActive: values.isActive !== false,\n }, {\n errorMessage: translate('eudr.plots.form.createError'),\n }).catch((err) => {\n throw translateEudrCrudError(err, translate)\n })\n flash(translate('eudr.plots.form.createSuccess'), 'success')\n router.push('/backend/eudr/plots')\n }}\n />\n </PageBody>\n </Page>\n )\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -7,6 +7,7 @@ const metadata = {
7
7
  pageGroupKey: "eudr.nav.group",
8
8
  navHidden: true,
9
9
  breadcrumb: [
10
+ { label: "EUDR", labelKey: "eudr.nav.module", href: "/backend/eudr" },
10
11
  { label: "Plots", labelKey: "eudr.nav.plots", href: "/backend/eudr/plots" },
11
12
  { label: "Create", labelKey: "eudr.plots.create.title" }
12
13
  ]
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../src/modules/eudr/backend/eudr/plots/create/page.meta.ts"],
4
- "sourcesContent": ["export const metadata = {\n requireAuth: true,\n requireFeatures: ['eudr.plots.manage'],\n pageTitle: 'Create plot',\n pageTitleKey: 'eudr.plots.create.title',\n pageGroup: 'Compliance',\n pageGroupKey: 'eudr.nav.group',\n navHidden: true,\n breadcrumb: [\n { label: 'Plots', labelKey: 'eudr.nav.plots', href: '/backend/eudr/plots' },\n { label: 'Create', labelKey: 'eudr.plots.create.title' },\n ],\n}\n"],
5
- "mappings": "AAAO,MAAM,WAAW;AAAA,EACtB,aAAa;AAAA,EACb,iBAAiB,CAAC,mBAAmB;AAAA,EACrC,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,YAAY;AAAA,IACV,EAAE,OAAO,SAAS,UAAU,kBAAkB,MAAM,sBAAsB;AAAA,IAC1E,EAAE,OAAO,UAAU,UAAU,0BAA0B;AAAA,EACzD;AACF;",
4
+ "sourcesContent": ["export const metadata = {\n requireAuth: true,\n requireFeatures: ['eudr.plots.manage'],\n pageTitle: 'Create plot',\n pageTitleKey: 'eudr.plots.create.title',\n pageGroup: 'Compliance',\n pageGroupKey: 'eudr.nav.group',\n navHidden: true,\n breadcrumb: [\n { label: 'EUDR', labelKey: 'eudr.nav.module', href: '/backend/eudr' },\n { label: 'Plots', labelKey: 'eudr.nav.plots', href: '/backend/eudr/plots' },\n { label: 'Create', labelKey: 'eudr.plots.create.title' },\n ],\n}\n"],
5
+ "mappings": "AAAO,MAAM,WAAW;AAAA,EACtB,aAAa;AAAA,EACb,iBAAiB,CAAC,mBAAmB;AAAA,EACrC,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,YAAY;AAAA,IACV,EAAE,OAAO,QAAQ,UAAU,mBAAmB,MAAM,gBAAgB;AAAA,IACpE,EAAE,OAAO,SAAS,UAAU,kBAAkB,MAAM,sBAAsB;AAAA,IAC1E,EAAE,OAAO,UAAU,UAAU,0BAA0B;AAAA,EACzD;AACF;",
6
6
  "names": []
7
7
  }
@@ -8,7 +8,10 @@ const metadata = {
8
8
  pagePriority: 10,
9
9
  pageOrder: 20,
10
10
  icon: "map",
11
- breadcrumb: [{ label: "Plots", labelKey: "eudr.nav.plots" }]
11
+ breadcrumb: [
12
+ { label: "EUDR", labelKey: "eudr.nav.module", href: "/backend/eudr" },
13
+ { label: "Plots", labelKey: "eudr.nav.plots" }
14
+ ]
12
15
  };
13
16
  export {
14
17
  metadata
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/modules/eudr/backend/eudr/plots/page.meta.ts"],
4
- "sourcesContent": ["export const metadata = {\n requireAuth: true,\n requireFeatures: ['eudr.plots.view'],\n pageTitle: 'Plots',\n pageTitleKey: 'eudr.nav.plots',\n pageGroup: 'Compliance',\n pageGroupKey: 'eudr.nav.group',\n pagePriority: 10,\n pageOrder: 20,\n icon: 'map',\n breadcrumb: [{ label: 'Plots', labelKey: 'eudr.nav.plots' }],\n}\n"],
5
- "mappings": "AAAO,MAAM,WAAW;AAAA,EACtB,aAAa;AAAA,EACb,iBAAiB,CAAC,iBAAiB;AAAA,EACnC,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,cAAc;AAAA,EACd,cAAc;AAAA,EACd,WAAW;AAAA,EACX,MAAM;AAAA,EACN,YAAY,CAAC,EAAE,OAAO,SAAS,UAAU,iBAAiB,CAAC;AAC7D;",
4
+ "sourcesContent": ["export const metadata = {\n requireAuth: true,\n requireFeatures: ['eudr.plots.view'],\n pageTitle: 'Plots',\n pageTitleKey: 'eudr.nav.plots',\n pageGroup: 'Compliance',\n pageGroupKey: 'eudr.nav.group',\n pagePriority: 10,\n pageOrder: 20,\n icon: 'map',\n breadcrumb: [\n { label: 'EUDR', labelKey: 'eudr.nav.module', href: '/backend/eudr' },\n { label: 'Plots', labelKey: 'eudr.nav.plots' },\n ],\n}\n"],
5
+ "mappings": "AAAO,MAAM,WAAW;AAAA,EACtB,aAAa;AAAA,EACb,iBAAiB,CAAC,iBAAiB;AAAA,EACnC,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,cAAc;AAAA,EACd,cAAc;AAAA,EACd,WAAW;AAAA,EACX,MAAM;AAAA,EACN,YAAY;AAAA,IACV,EAAE,OAAO,QAAQ,UAAU,mBAAmB,MAAM,gBAAgB;AAAA,IACpE,EAAE,OAAO,SAAS,UAAU,iBAAiB;AAAA,EAC/C;AACF;",
6
6
  "names": []
7
7
  }
@@ -7,7 +7,9 @@ const metadata = {
7
7
  pageGroupKey: "eudr.nav.group",
8
8
  navHidden: true,
9
9
  breadcrumb: [
10
- { label: "Product mappings", labelKey: "eudr.nav.mappings", href: "/backend/eudr/product-mappings" }
10
+ { label: "EUDR", labelKey: "eudr.nav.module", href: "/backend/eudr" },
11
+ { label: "Product mappings", labelKey: "eudr.nav.mappings", href: "/backend/eudr/product-mappings" },
12
+ { label: "Edit product mapping", labelKey: "eudr.productMappings.edit.title" }
11
13
  ]
12
14
  };
13
15
  export {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../src/modules/eudr/backend/eudr/product-mappings/%5Bid%5D/page.meta.ts"],
4
- "sourcesContent": ["export const metadata = {\n requireAuth: true,\n requireFeatures: ['eudr.mappings.manage'],\n pageTitle: 'Edit product mapping',\n pageTitleKey: 'eudr.productMappings.edit.title',\n pageGroup: 'Compliance',\n pageGroupKey: 'eudr.nav.group',\n navHidden: true,\n breadcrumb: [\n { label: 'Product mappings', labelKey: 'eudr.nav.mappings', href: '/backend/eudr/product-mappings' },\n ],\n}\n"],
5
- "mappings": "AAAO,MAAM,WAAW;AAAA,EACtB,aAAa;AAAA,EACb,iBAAiB,CAAC,sBAAsB;AAAA,EACxC,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,YAAY;AAAA,IACV,EAAE,OAAO,oBAAoB,UAAU,qBAAqB,MAAM,iCAAiC;AAAA,EACrG;AACF;",
4
+ "sourcesContent": ["export const metadata = {\n requireAuth: true,\n requireFeatures: ['eudr.mappings.manage'],\n pageTitle: 'Edit product mapping',\n pageTitleKey: 'eudr.productMappings.edit.title',\n pageGroup: 'Compliance',\n pageGroupKey: 'eudr.nav.group',\n navHidden: true,\n breadcrumb: [\n { label: 'EUDR', labelKey: 'eudr.nav.module', href: '/backend/eudr' },\n { label: 'Product mappings', labelKey: 'eudr.nav.mappings', href: '/backend/eudr/product-mappings' },\n { label: 'Edit product mapping', labelKey: 'eudr.productMappings.edit.title' },\n ],\n}\n"],
5
+ "mappings": "AAAO,MAAM,WAAW;AAAA,EACtB,aAAa;AAAA,EACb,iBAAiB,CAAC,sBAAsB;AAAA,EACxC,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,YAAY;AAAA,IACV,EAAE,OAAO,QAAQ,UAAU,mBAAmB,MAAM,gBAAgB;AAAA,IACpE,EAAE,OAAO,oBAAoB,UAAU,qBAAqB,MAAM,iCAAiC;AAAA,IACnG,EAAE,OAAO,wBAAwB,UAAU,kCAAkC;AAAA,EAC/E;AACF;",
6
6
  "names": []
7
7
  }
@@ -7,6 +7,7 @@ const metadata = {
7
7
  pageGroupKey: "eudr.nav.group",
8
8
  navHidden: true,
9
9
  breadcrumb: [
10
+ { label: "EUDR", labelKey: "eudr.nav.module", href: "/backend/eudr" },
10
11
  { label: "Product mappings", labelKey: "eudr.nav.mappings", href: "/backend/eudr/product-mappings" },
11
12
  { label: "Create", labelKey: "eudr.productMappings.create.title" }
12
13
  ]
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../src/modules/eudr/backend/eudr/product-mappings/create/page.meta.ts"],
4
- "sourcesContent": ["export const metadata = {\n requireAuth: true,\n requireFeatures: ['eudr.mappings.manage'],\n pageTitle: 'Create product mapping',\n pageTitleKey: 'eudr.productMappings.create.title',\n pageGroup: 'Compliance',\n pageGroupKey: 'eudr.nav.group',\n navHidden: true,\n breadcrumb: [\n { label: 'Product mappings', labelKey: 'eudr.nav.mappings', href: '/backend/eudr/product-mappings' },\n { label: 'Create', labelKey: 'eudr.productMappings.create.title' },\n ],\n}\n"],
5
- "mappings": "AAAO,MAAM,WAAW;AAAA,EACtB,aAAa;AAAA,EACb,iBAAiB,CAAC,sBAAsB;AAAA,EACxC,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,YAAY;AAAA,IACV,EAAE,OAAO,oBAAoB,UAAU,qBAAqB,MAAM,iCAAiC;AAAA,IACnG,EAAE,OAAO,UAAU,UAAU,oCAAoC;AAAA,EACnE;AACF;",
4
+ "sourcesContent": ["export const metadata = {\n requireAuth: true,\n requireFeatures: ['eudr.mappings.manage'],\n pageTitle: 'Create product mapping',\n pageTitleKey: 'eudr.productMappings.create.title',\n pageGroup: 'Compliance',\n pageGroupKey: 'eudr.nav.group',\n navHidden: true,\n breadcrumb: [\n { label: 'EUDR', labelKey: 'eudr.nav.module', href: '/backend/eudr' },\n { label: 'Product mappings', labelKey: 'eudr.nav.mappings', href: '/backend/eudr/product-mappings' },\n { label: 'Create', labelKey: 'eudr.productMappings.create.title' },\n ],\n}\n"],
5
+ "mappings": "AAAO,MAAM,WAAW;AAAA,EACtB,aAAa;AAAA,EACb,iBAAiB,CAAC,sBAAsB;AAAA,EACxC,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,YAAY;AAAA,IACV,EAAE,OAAO,QAAQ,UAAU,mBAAmB,MAAM,gBAAgB;AAAA,IACpE,EAAE,OAAO,oBAAoB,UAAU,qBAAqB,MAAM,iCAAiC;AAAA,IACnG,EAAE,OAAO,UAAU,UAAU,oCAAoC;AAAA,EACnE;AACF;",
6
6
  "names": []
7
7
  }
@@ -8,7 +8,10 @@ const metadata = {
8
8
  pagePriority: 10,
9
9
  pageOrder: 10,
10
10
  icon: "package",
11
- breadcrumb: [{ label: "Product mappings", labelKey: "eudr.nav.mappings" }]
11
+ breadcrumb: [
12
+ { label: "EUDR", labelKey: "eudr.nav.module", href: "/backend/eudr" },
13
+ { label: "Product mappings", labelKey: "eudr.nav.mappings" }
14
+ ]
12
15
  };
13
16
  export {
14
17
  metadata
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/modules/eudr/backend/eudr/product-mappings/page.meta.ts"],
4
- "sourcesContent": ["export const metadata = {\n requireAuth: true,\n requireFeatures: ['eudr.mappings.view'],\n pageTitle: 'Product mappings',\n pageTitleKey: 'eudr.nav.mappings',\n pageGroup: 'Compliance',\n pageGroupKey: 'eudr.nav.group',\n pagePriority: 10,\n pageOrder: 10,\n icon: 'package',\n breadcrumb: [{ label: 'Product mappings', labelKey: 'eudr.nav.mappings' }],\n}\n"],
5
- "mappings": "AAAO,MAAM,WAAW;AAAA,EACtB,aAAa;AAAA,EACb,iBAAiB,CAAC,oBAAoB;AAAA,EACtC,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,cAAc;AAAA,EACd,cAAc;AAAA,EACd,WAAW;AAAA,EACX,MAAM;AAAA,EACN,YAAY,CAAC,EAAE,OAAO,oBAAoB,UAAU,oBAAoB,CAAC;AAC3E;",
4
+ "sourcesContent": ["export const metadata = {\n requireAuth: true,\n requireFeatures: ['eudr.mappings.view'],\n pageTitle: 'Product mappings',\n pageTitleKey: 'eudr.nav.mappings',\n pageGroup: 'Compliance',\n pageGroupKey: 'eudr.nav.group',\n pagePriority: 10,\n pageOrder: 10,\n icon: 'package',\n breadcrumb: [\n { label: 'EUDR', labelKey: 'eudr.nav.module', href: '/backend/eudr' },\n { label: 'Product mappings', labelKey: 'eudr.nav.mappings' },\n ],\n}\n"],
5
+ "mappings": "AAAO,MAAM,WAAW;AAAA,EACtB,aAAa;AAAA,EACb,iBAAiB,CAAC,oBAAoB;AAAA,EACtC,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,cAAc;AAAA,EACd,cAAc;AAAA,EACd,WAAW;AAAA,EACX,MAAM;AAAA,EACN,YAAY;AAAA,IACV,EAAE,OAAO,QAAQ,UAAU,mBAAmB,MAAM,gBAAgB;AAAA,IACpE,EAAE,OAAO,oBAAoB,UAAU,oBAAoB;AAAA,EAC7D;AACF;",
6
6
  "names": []
7
7
  }
@@ -7,7 +7,9 @@ const metadata = {
7
7
  pageGroupKey: "eudr.nav.group",
8
8
  navHidden: true,
9
9
  breadcrumb: [
10
- { label: "Risk assessments", labelKey: "eudr.nav.riskAssessments", href: "/backend/eudr/risk-assessments" }
10
+ { label: "EUDR", labelKey: "eudr.nav.module", href: "/backend/eudr" },
11
+ { label: "Risk assessments", labelKey: "eudr.nav.riskAssessments", href: "/backend/eudr/risk-assessments" },
12
+ { label: "Edit risk assessment", labelKey: "eudr.riskAssessments.edit.title" }
11
13
  ]
12
14
  };
13
15
  export {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../src/modules/eudr/backend/eudr/risk-assessments/%5Bid%5D/page.meta.ts"],
4
- "sourcesContent": ["export const metadata = {\n requireAuth: true,\n requireFeatures: ['eudr.risk.manage'],\n pageTitle: 'Edit risk assessment',\n pageTitleKey: 'eudr.riskAssessments.edit.title',\n pageGroup: 'Compliance',\n pageGroupKey: 'eudr.nav.group',\n navHidden: true,\n breadcrumb: [\n { label: 'Risk assessments', labelKey: 'eudr.nav.riskAssessments', href: '/backend/eudr/risk-assessments' },\n ],\n}\n"],
5
- "mappings": "AAAO,MAAM,WAAW;AAAA,EACtB,aAAa;AAAA,EACb,iBAAiB,CAAC,kBAAkB;AAAA,EACpC,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,YAAY;AAAA,IACV,EAAE,OAAO,oBAAoB,UAAU,4BAA4B,MAAM,iCAAiC;AAAA,EAC5G;AACF;",
4
+ "sourcesContent": ["export const metadata = {\n requireAuth: true,\n requireFeatures: ['eudr.risk.manage'],\n pageTitle: 'Edit risk assessment',\n pageTitleKey: 'eudr.riskAssessments.edit.title',\n pageGroup: 'Compliance',\n pageGroupKey: 'eudr.nav.group',\n navHidden: true,\n breadcrumb: [\n { label: 'EUDR', labelKey: 'eudr.nav.module', href: '/backend/eudr' },\n { label: 'Risk assessments', labelKey: 'eudr.nav.riskAssessments', href: '/backend/eudr/risk-assessments' },\n { label: 'Edit risk assessment', labelKey: 'eudr.riskAssessments.edit.title' },\n ],\n}\n"],
5
+ "mappings": "AAAO,MAAM,WAAW;AAAA,EACtB,aAAa;AAAA,EACb,iBAAiB,CAAC,kBAAkB;AAAA,EACpC,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,YAAY;AAAA,IACV,EAAE,OAAO,QAAQ,UAAU,mBAAmB,MAAM,gBAAgB;AAAA,IACpE,EAAE,OAAO,oBAAoB,UAAU,4BAA4B,MAAM,iCAAiC;AAAA,IAC1G,EAAE,OAAO,wBAAwB,UAAU,kCAAkC;AAAA,EAC/E;AACF;",
6
6
  "names": []
7
7
  }
@@ -7,6 +7,7 @@ const metadata = {
7
7
  pageGroupKey: "eudr.nav.group",
8
8
  navHidden: true,
9
9
  breadcrumb: [
10
+ { label: "EUDR", labelKey: "eudr.nav.module", href: "/backend/eudr" },
10
11
  { label: "Risk assessments", labelKey: "eudr.nav.riskAssessments", href: "/backend/eudr/risk-assessments" },
11
12
  { label: "Create", labelKey: "eudr.riskAssessments.create.title" }
12
13
  ]
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../src/modules/eudr/backend/eudr/risk-assessments/create/page.meta.ts"],
4
- "sourcesContent": ["export const metadata = {\n requireAuth: true,\n requireFeatures: ['eudr.risk.manage'],\n pageTitle: 'Create risk assessment',\n pageTitleKey: 'eudr.riskAssessments.create.title',\n pageGroup: 'Compliance',\n pageGroupKey: 'eudr.nav.group',\n navHidden: true,\n breadcrumb: [\n { label: 'Risk assessments', labelKey: 'eudr.nav.riskAssessments', href: '/backend/eudr/risk-assessments' },\n { label: 'Create', labelKey: 'eudr.riskAssessments.create.title' },\n ],\n}\n"],
5
- "mappings": "AAAO,MAAM,WAAW;AAAA,EACtB,aAAa;AAAA,EACb,iBAAiB,CAAC,kBAAkB;AAAA,EACpC,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,YAAY;AAAA,IACV,EAAE,OAAO,oBAAoB,UAAU,4BAA4B,MAAM,iCAAiC;AAAA,IAC1G,EAAE,OAAO,UAAU,UAAU,oCAAoC;AAAA,EACnE;AACF;",
4
+ "sourcesContent": ["export const metadata = {\n requireAuth: true,\n requireFeatures: ['eudr.risk.manage'],\n pageTitle: 'Create risk assessment',\n pageTitleKey: 'eudr.riskAssessments.create.title',\n pageGroup: 'Compliance',\n pageGroupKey: 'eudr.nav.group',\n navHidden: true,\n breadcrumb: [\n { label: 'EUDR', labelKey: 'eudr.nav.module', href: '/backend/eudr' },\n { label: 'Risk assessments', labelKey: 'eudr.nav.riskAssessments', href: '/backend/eudr/risk-assessments' },\n { label: 'Create', labelKey: 'eudr.riskAssessments.create.title' },\n ],\n}\n"],
5
+ "mappings": "AAAO,MAAM,WAAW;AAAA,EACtB,aAAa;AAAA,EACb,iBAAiB,CAAC,kBAAkB;AAAA,EACpC,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,YAAY;AAAA,IACV,EAAE,OAAO,QAAQ,UAAU,mBAAmB,MAAM,gBAAgB;AAAA,IACpE,EAAE,OAAO,oBAAoB,UAAU,4BAA4B,MAAM,iCAAiC;AAAA,IAC1G,EAAE,OAAO,UAAU,UAAU,oCAAoC;AAAA,EACnE;AACF;",
6
6
  "names": []
7
7
  }
@@ -8,7 +8,10 @@ const metadata = {
8
8
  pagePriority: 10,
9
9
  pageOrder: 40,
10
10
  icon: "shield-alert",
11
- breadcrumb: [{ label: "Risk assessments", labelKey: "eudr.nav.riskAssessments" }]
11
+ breadcrumb: [
12
+ { label: "EUDR", labelKey: "eudr.nav.module", href: "/backend/eudr" },
13
+ { label: "Risk assessments", labelKey: "eudr.nav.riskAssessments" }
14
+ ]
12
15
  };
13
16
  export {
14
17
  metadata
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/modules/eudr/backend/eudr/risk-assessments/page.meta.ts"],
4
- "sourcesContent": ["export const metadata = {\n requireAuth: true,\n requireFeatures: ['eudr.risk.view'],\n pageTitle: 'Risk assessments',\n pageTitleKey: 'eudr.nav.riskAssessments',\n pageGroup: 'Compliance',\n pageGroupKey: 'eudr.nav.group',\n pagePriority: 10,\n pageOrder: 40,\n icon: 'shield-alert',\n breadcrumb: [{ label: 'Risk assessments', labelKey: 'eudr.nav.riskAssessments' }],\n}\n"],
5
- "mappings": "AAAO,MAAM,WAAW;AAAA,EACtB,aAAa;AAAA,EACb,iBAAiB,CAAC,gBAAgB;AAAA,EAClC,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,cAAc;AAAA,EACd,cAAc;AAAA,EACd,WAAW;AAAA,EACX,MAAM;AAAA,EACN,YAAY,CAAC,EAAE,OAAO,oBAAoB,UAAU,2BAA2B,CAAC;AAClF;",
4
+ "sourcesContent": ["export const metadata = {\n requireAuth: true,\n requireFeatures: ['eudr.risk.view'],\n pageTitle: 'Risk assessments',\n pageTitleKey: 'eudr.nav.riskAssessments',\n pageGroup: 'Compliance',\n pageGroupKey: 'eudr.nav.group',\n pagePriority: 10,\n pageOrder: 40,\n icon: 'shield-alert',\n breadcrumb: [\n { label: 'EUDR', labelKey: 'eudr.nav.module', href: '/backend/eudr' },\n { label: 'Risk assessments', labelKey: 'eudr.nav.riskAssessments' },\n ],\n}\n"],
5
+ "mappings": "AAAO,MAAM,WAAW;AAAA,EACtB,aAAa;AAAA,EACb,iBAAiB,CAAC,gBAAgB;AAAA,EAClC,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,cAAc;AAAA,EACd,cAAc;AAAA,EACd,WAAW;AAAA,EACX,MAAM;AAAA,EACN,YAAY;AAAA,IACV,EAAE,OAAO,QAAQ,UAAU,mBAAmB,MAAM,gBAAgB;AAAA,IACpE,EAAE,OAAO,oBAAoB,UAAU,2BAA2B;AAAA,EACpE;AACF;",
6
6
  "names": []
7
7
  }
@@ -25,6 +25,7 @@ import {
25
25
  statusBadgeVariant,
26
26
  translateEudrCrudError
27
27
  } from "../../../../components/formConfig.js";
28
+ import { canDeleteStatement } from "../../../../lib/statement-lifecycle.js";
28
29
  import { StatementLifecycleBar } from "../../../../components/StatementLifecycleBar.js";
29
30
  import { StatementReadinessChecklist } from "../../../../components/StatementReadinessChecklist.js";
30
31
  import { StatementRiskSection } from "../../../../components/StatementRiskSection.js";
@@ -509,6 +510,7 @@ function EditEudrStatementPage({ params }) {
509
510
  backHref: "/backend/eudr/statements",
510
511
  cancelHref: "/backend/eudr/statements",
511
512
  deleteRedirect: "/backend/eudr/statements",
513
+ deleteVisible: canDeleteStatement(record.status),
512
514
  submitLabel: translate("eudr.statements.form.submitUpdate"),
513
515
  fields,
514
516
  groups,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../src/modules/eudr/backend/eudr/statements/%5Bid%5D/page.tsx"],
4
- "sourcesContent": ["\"use client\"\n\nimport * as React from 'react'\nimport Link from 'next/link'\nimport { useRouter } from 'next/navigation'\nimport { Copy, Download } from 'lucide-react'\nimport { Page, PageBody } from '@open-mercato/ui/backend/Page'\nimport { CrudForm, type CrudField, type CrudFormGroup } from '@open-mercato/ui/backend/CrudForm'\nimport { DataTable } from '@open-mercato/ui/backend/DataTable'\nimport { deleteCrud, updateCrud } from '@open-mercato/ui/backend/utils/crud'\nimport { createCrudFormError } from '@open-mercato/ui/backend/utils/serverErrors'\nimport { apiCall } from '@open-mercato/ui/backend/utils/apiCall'\nimport { ErrorMessage, LoadingMessage, RecordNotFoundState } from '@open-mercato/ui/backend/detail'\nimport { flash } from '@open-mercato/ui/backend/FlashMessages'\nimport { Button } from '@open-mercato/ui/primitives/button'\nimport { EmptyState } from '@open-mercato/ui/primitives/empty-state'\nimport { StatusBadge } from '@open-mercato/ui/primitives/status-badge'\nimport { useT } from '@open-mercato/shared/lib/i18n/context'\nimport type { LegacyColumnDef as ColumnDef } from '@tanstack/react-table/legacy'\nimport {\n OrderSelectField,\n ReferencedStatementsField,\n actorRoleOptions,\n activityTypeOptions,\n commodityOptions,\n statusBadgeVariant,\n type CompanySnapshot,\n type OrderSnapshot,\n type ReferencedStatementValue,\n translateEudrCrudError,\n} from '../../../../components/formConfig'\nimport { StatementLifecycleBar } from '../../../../components/StatementLifecycleBar'\nimport { StatementReadinessChecklist } from '../../../../components/StatementReadinessChecklist'\nimport { StatementRiskSection, type StatementLatestRisk } from '../../../../components/StatementRiskSection'\nimport { PlotMapPreview } from '../../../../components/PlotMapPreview'\nimport type {\n EudrActivityType,\n EudrActorRole,\n EudrCommodity,\n EudrStatementStatus,\n EudrSubmissionStatus,\n} from '../../../../data/validators'\nimport { hasMissingSpecies } from '../../../../lib/species'\n\ntype StatementRecord = {\n id: string\n title: string\n commodity: EudrCommodity\n referenceNumber: string | null\n verificationNumber: string | null\n status: EudrStatementStatus\n activityType: EudrActivityType | null\n actorRole: EudrActorRole | null\n referencedStatements: ReferencedStatementValue[]\n quantityKg: number | string | null\n supplementaryUnit: string | null\n supplementaryQuantity: number | string | null\n orderId: string | null\n submittedAt: string | null\n referenceIssuedAt: string | null\n orderSnapshot: OrderSnapshot | null\n notes: string | null\n latestRisk: StatementLatestRisk\n createdAt: string\n updatedAt: string\n}\n\ntype StatementDetailResponse = {\n items?: StatementRecord[]\n}\n\ntype StatementFormValues = {\n id: string\n title: string\n commodity: string\n referenceNumber: string\n verificationNumber: string\n activityType: string\n actorRole: string\n referencedStatements: ReferencedStatementValue[]\n quantityKg: string\n supplementaryUnit: string\n supplementaryQuantity: string\n orderId: string\n orderSnapshot: OrderSnapshot | null\n notes: string\n updatedAt: string\n} & Record<string, unknown>\n\ntype LinkedSubmissionRow = {\n id: string\n supplierEntityId: string\n supplierSnapshot: CompanySnapshot | null\n commodity: EudrCommodity\n productMappingId: string | null\n status: EudrSubmissionStatus\n completenessScore: number\n plotIds?: string[]\n}\n\ntype LinkedSubmissionsResponse = {\n items?: LinkedSubmissionRow[]\n}\n\ntype ProductMappingRow = {\n commodity: EudrCommodity\n speciesScientificName?: string | null\n speciesCommonName?: string | null\n}\n\ntype ProductMappingsResponse = {\n items?: ProductMappingRow[]\n}\n\ntype PlotRow = {\n id: string\n geometry: unknown\n}\n\ntype PlotsResponse = {\n items?: PlotRow[]\n}\n\nfunction optionalText(value: unknown): string | null {\n if (typeof value !== 'string') return null\n const trimmed = value.trim()\n return trimmed.length ? trimmed : null\n}\n\nfunction optionalNumber(value: unknown, translate: ReturnType<typeof useT>): number | null {\n const text = optionalText(value)\n if (!text) return null\n const parsedNumber = Number(text)\n if (!Number.isFinite(parsedNumber)) {\n const message = translate('eudr.statements.form.quantityKgInvalid')\n throw createCrudFormError(message, { quantityKg: message })\n }\n return parsedNumber\n}\n\nfunction optionalSupplementaryNumber(value: unknown, translate: ReturnType<typeof useT>): number | null {\n const text = optionalText(value)\n if (!text) return null\n const parsedNumber = Number(text)\n if (!Number.isFinite(parsedNumber)) {\n const message = translate('eudr.statements.form.supplementaryQuantityInvalid')\n throw createCrudFormError(message, { supplementaryQuantity: message })\n }\n return parsedNumber\n}\n\nfunction isOrderSnapshot(value: unknown): value is OrderSnapshot {\n return value !== null && typeof value === 'object' && !Array.isArray(value)\n}\n\nfunction normalizeReferencedStatements(value: unknown): ReferencedStatementValue[] {\n if (!Array.isArray(value)) return []\n return value\n .map((entry) => {\n if (entry === null || typeof entry !== 'object' || Array.isArray(entry)) return null\n const record = entry as Record<string, unknown>\n const referenceNumber = optionalText(record.referenceNumber)\n if (!referenceNumber) return null\n const verificationNumber = optionalText(record.verificationNumber)\n return verificationNumber ? { referenceNumber, verificationNumber } : { referenceNumber }\n })\n .filter((entry): entry is ReferencedStatementValue => entry !== null)\n}\n\nfunction getRouteId(params?: { id?: string }): string | null {\n const rawId = params?.id\n return typeof rawId === 'string' && rawId.trim().length ? rawId : null\n}\n\nfunction formatQuantityKg(value: number | string | null): string {\n if (value === null || value === undefined) return ''\n return String(value)\n}\n\nfunction formatOptionalNumber(value: number | string | null): string {\n if (value === null || value === undefined) return ''\n return String(value)\n}\n\nfunction supplierLabel(row: LinkedSubmissionRow, unavailableLabel: string): string {\n return row.supplierSnapshot?.displayName || unavailableLabel\n}\n\nexport default function EditEudrStatementPage({ params }: { params?: { id?: string } }) {\n const translate = useT()\n const router = useRouter()\n const statementId = React.useMemo(() => getRouteId(params), [params])\n const [record, setRecord] = React.useState<StatementRecord | null>(null)\n const [loading, setLoading] = React.useState(true)\n const [error, setError] = React.useState<string | null>(null)\n const [notFound, setNotFound] = React.useState(false)\n const [submissionRows, setSubmissionRows] = React.useState<LinkedSubmissionRow[]>([])\n const [submissionsLoading, setSubmissionsLoading] = React.useState(false)\n const [submissionsError, setSubmissionsError] = React.useState<string | null>(null)\n const [speciesMissing, setSpeciesMissing] = React.useState(false)\n const [plotFeatures, setPlotFeatures] = React.useState<unknown[]>([])\n const [plotsLoading, setPlotsLoading] = React.useState(false)\n const [exportingFormat, setExportingFormat] = React.useState<'json' | 'geojson' | null>(null)\n const [reloadToken, setReloadToken] = React.useState(0)\n\n React.useEffect(() => {\n let cancelled = false\n async function loadRecord() {\n if (!statementId) {\n setNotFound(true)\n setLoading(false)\n return\n }\n setLoading(true)\n setError(null)\n setNotFound(false)\n try {\n const call = await apiCall<StatementDetailResponse>(\n `/api/eudr/statements?id=${encodeURIComponent(statementId)}`,\n undefined,\n { fallback: { items: [] } },\n )\n if (!call.ok) {\n if (!cancelled) setError(translate('eudr.statements.form.loadError'))\n return\n }\n const items = Array.isArray(call.result?.items) ? call.result.items : []\n if (cancelled) return\n if (items.length === 0) {\n setNotFound(true)\n setRecord(null)\n return\n }\n setRecord(items[0])\n } catch {\n if (!cancelled) setError(translate('eudr.statements.form.loadError'))\n } finally {\n if (!cancelled) setLoading(false)\n }\n }\n loadRecord()\n return () => {\n cancelled = true\n }\n }, [reloadToken, statementId, translate])\n\n React.useEffect(() => {\n let cancelled = false\n async function loadSubmissions() {\n if (!statementId) return\n setSubmissionsLoading(true)\n setSubmissionsError(null)\n try {\n const call = await apiCall<LinkedSubmissionsResponse>(\n `/api/eudr/evidence-submissions?statementId=${encodeURIComponent(statementId)}&pageSize=100`,\n undefined,\n { fallback: { items: [] } },\n )\n if (!call.ok) {\n if (!cancelled) setSubmissionsError(translate('eudr.statements.detail.loadSubmissionsError'))\n return\n }\n if (!cancelled) setSubmissionRows(Array.isArray(call.result?.items) ? call.result.items : [])\n } catch {\n if (!cancelled) setSubmissionsError(translate('eudr.statements.detail.loadSubmissionsError'))\n } finally {\n if (!cancelled) setSubmissionsLoading(false)\n }\n }\n loadSubmissions()\n return () => {\n cancelled = true\n }\n }, [statementId, translate])\n\n React.useEffect(() => {\n const productMappingIds = Array.from(\n new Set(\n submissionRows\n .map((submission) => submission.productMappingId)\n .filter((mappingId): mappingId is string => typeof mappingId === 'string' && mappingId.length > 0),\n ),\n )\n if (!productMappingIds.length) {\n setSpeciesMissing(false)\n return\n }\n setSpeciesMissing(false)\n let cancelled = false\n async function loadProductMappings() {\n try {\n const call = await apiCall<ProductMappingsResponse>(\n `/api/eudr/product-mappings?ids=${encodeURIComponent(productMappingIds.join(','))}&pageSize=100`,\n {\n headers: {\n 'x-om-forbidden-redirect': '0',\n 'x-om-unauthorized-redirect': '0',\n },\n },\n { fallback: { items: [] } },\n )\n if (!cancelled) {\n const mappings = call.ok && Array.isArray(call.result?.items) ? call.result.items : []\n setSpeciesMissing(mappings.some((mapping) => hasMissingSpecies(mapping)))\n }\n } catch {\n if (!cancelled) setSpeciesMissing(false)\n }\n }\n void loadProductMappings()\n return () => {\n cancelled = true\n }\n }, [submissionRows])\n\n React.useEffect(() => {\n const plotIds = Array.from(\n new Set(\n submissionRows\n .flatMap((submission) => Array.isArray(submission.plotIds) ? submission.plotIds : [])\n .filter((plotId): plotId is string => typeof plotId === 'string' && plotId.trim().length > 0),\n ),\n )\n if (!plotIds.length) {\n setPlotFeatures([])\n setPlotsLoading(false)\n return\n }\n let cancelled = false\n async function loadPlots() {\n setPlotsLoading(true)\n try {\n const call = await apiCall<PlotsResponse>(\n `/api/eudr/plots?ids=${encodeURIComponent(plotIds.join(','))}&pageSize=100`,\n {\n headers: {\n 'x-om-forbidden-redirect': '0',\n 'x-om-unauthorized-redirect': '0',\n },\n },\n { fallback: { items: [] } },\n )\n if (!call.ok) {\n if (!cancelled) setPlotFeatures([])\n return\n }\n const features = (Array.isArray(call.result?.items) ? call.result.items : [])\n .map((plot) => plot.geometry)\n .filter((geometry) => geometry !== null && geometry !== undefined)\n if (!cancelled) setPlotFeatures(features)\n } catch {\n if (!cancelled) setPlotFeatures([])\n } finally {\n if (!cancelled) setPlotsLoading(false)\n }\n }\n loadPlots()\n return () => {\n cancelled = true\n }\n }, [submissionRows])\n\n const refreshRecord = React.useCallback(() => {\n setReloadToken((currentToken) => currentToken + 1)\n }, [])\n\n const fields = React.useMemo<CrudField[]>(() => [\n {\n id: 'title',\n label: translate('eudr.statements.form.title'),\n type: 'text',\n required: true,\n },\n {\n id: 'commodity',\n layout: 'half',\n label: translate('eudr.statements.form.commodity'),\n type: 'select',\n required: true,\n options: commodityOptions(translate),\n },\n {\n id: 'activityType',\n layout: 'half',\n label: translate('eudr.statements.form.activityType'),\n type: 'select',\n options: activityTypeOptions(translate),\n },\n {\n id: 'actorRole',\n layout: 'half',\n label: translate('eudr.statements.form.actorRole'),\n type: 'select',\n options: actorRoleOptions(translate),\n },\n {\n id: 'referenceNumber',\n label: translate('eudr.statements.form.referenceNumber'),\n type: 'text',\n },\n {\n id: 'verificationNumber',\n label: translate('eudr.statements.form.verificationNumber'),\n type: 'text',\n },\n {\n id: 'quantityKg',\n layout: 'half',\n label: translate('eudr.statements.form.quantityKg'),\n type: 'text',\n },\n {\n id: 'supplementaryUnit',\n layout: 'half',\n label: translate('eudr.statements.form.supplementaryUnit'),\n type: 'text',\n },\n {\n id: 'supplementaryQuantity',\n layout: 'half',\n label: translate('eudr.statements.form.supplementaryQuantity'),\n type: 'text',\n },\n {\n id: 'orderId',\n label: translate('eudr.statements.form.order'),\n type: 'custom',\n component: ({ id, value, setValue, setFormValue }) => (\n <OrderSelectField\n id={id}\n value={typeof value === 'string' ? value : null}\n onChange={(nextValue) => setValue(nextValue ?? '')}\n onSnapshot={(snapshot) => setFormValue?.('orderSnapshot', snapshot)}\n placeholder={translate('eudr.statements.form.orderPlaceholder')}\n emptyLabel={translate('eudr.common.empty')}\n loadError={translate('eudr.statements.form.orderLoadError')}\n />\n ),\n },\n {\n id: 'referencedStatements',\n label: translate('eudr.statements.form.referencedStatements'),\n type: 'custom',\n component: ({ id, value, setValue, disabled }) => (\n <ReferencedStatementsField\n id={id}\n value={value}\n onChange={(nextValue) => setValue(nextValue)}\n disabled={disabled}\n />\n ),\n },\n {\n id: 'notes',\n label: translate('eudr.statements.form.notes'),\n type: 'textarea',\n },\n ], [translate])\n\n const groups = React.useMemo<CrudFormGroup[]>(() => [\n {\n id: 'details',\n title: translate('eudr.statements.form.details'),\n column: 1,\n fields: [\n 'title',\n 'commodity',\n 'activityType',\n 'actorRole',\n ],\n },\n {\n id: 'quantities',\n title: translate('eudr.statements.form.quantities'),\n column: 1,\n fields: [\n 'quantityKg',\n 'supplementaryUnit',\n 'supplementaryQuantity',\n ],\n },\n {\n id: 'referenced',\n title: translate('eudr.statements.form.referencedStatements'),\n column: 1,\n fields: [\n 'referencedStatements',\n ],\n },\n {\n id: 'registration',\n title: translate('eudr.statements.form.registration'),\n column: 2,\n fields: [\n 'referenceNumber',\n 'verificationNumber',\n ],\n },\n {\n id: 'order',\n title: translate('eudr.statements.form.order'),\n column: 2,\n fields: [\n 'orderId',\n ],\n },\n {\n id: 'notes',\n title: translate('eudr.common.notes'),\n column: 2,\n fields: [\n 'notes',\n ],\n },\n ], [translate])\n\n const submissionColumns = React.useMemo<ColumnDef<LinkedSubmissionRow>[]>(() => [\n {\n accessorKey: 'supplierEntityId',\n header: translate('eudr.statements.detail.columns.supplier'),\n cell: ({ row }) => supplierLabel(row.original, translate('eudr.common.recordUnavailable')),\n },\n {\n accessorKey: 'status',\n header: translate('eudr.statements.detail.columns.status'),\n cell: ({ row }) => (\n <StatusBadge variant={statusBadgeVariant(row.original.status)} dot>\n {translate(`eudr.submissionStatus.${row.original.status}`)}\n </StatusBadge>\n ),\n },\n {\n accessorKey: 'completenessScore',\n header: translate('eudr.statements.detail.columns.completeness'),\n cell: ({ row }) => `${row.original.completenessScore}%`,\n },\n ], [translate])\n\n const initialValues = React.useMemo<StatementFormValues | null>(() => {\n if (!record) return null\n return {\n id: record.id,\n title: record.title,\n commodity: record.commodity,\n referenceNumber: record.referenceNumber ?? '',\n verificationNumber: record.verificationNumber ?? '',\n activityType: record.activityType ?? '',\n actorRole: record.actorRole ?? '',\n referencedStatements: Array.isArray(record.referencedStatements) ? record.referencedStatements : [],\n quantityKg: formatQuantityKg(record.quantityKg),\n supplementaryUnit: record.supplementaryUnit ?? '',\n supplementaryQuantity: formatOptionalNumber(record.supplementaryQuantity),\n orderId: record.orderId ?? '',\n orderSnapshot: record.orderSnapshot,\n notes: record.notes ?? '',\n updatedAt: record.updatedAt,\n }\n }, [record])\n\n const handleExport = React.useCallback(async (format: 'json' | 'geojson') => {\n if (!statementId) return\n setExportingFormat(format)\n try {\n const suffix = format === 'geojson' ? '?format=geojson' : ''\n const call = await apiCall<unknown>(`/api/eudr/statements/${encodeURIComponent(statementId)}/export${suffix}`)\n if (!call.ok) throw new Error('[internal] eudr statement export failed')\n const blob = new Blob([JSON.stringify(call.result ?? {}, null, 2)], {\n type: format === 'geojson' ? 'application/geo+json' : 'application/json',\n })\n const objectUrl = URL.createObjectURL(blob)\n const link = document.createElement('a')\n link.href = objectUrl\n link.download = format === 'geojson' ? `eudr-dds-${statementId}.geojson` : `eudr-dds-${statementId}.json`\n document.body.appendChild(link)\n link.click()\n link.remove()\n URL.revokeObjectURL(objectUrl)\n } catch {\n flash(translate('eudr.statements.detail.exportError'), 'error')\n } finally {\n setExportingFormat(null)\n }\n }, [statementId, translate])\n\n if (loading) {\n return (\n <Page>\n <PageBody>\n <LoadingMessage label={translate('eudr.statements.form.loading')} />\n </PageBody>\n </Page>\n )\n }\n\n if (notFound) {\n return (\n <Page>\n <PageBody>\n <RecordNotFoundState\n label={translate('eudr.statements.form.notFound')}\n backHref=\"/backend/eudr/statements\"\n backLabel={translate('eudr.statements.form.backToList')}\n />\n </PageBody>\n </Page>\n )\n }\n\n if (error || !record || !initialValues) {\n return (\n <Page>\n <PageBody>\n <ErrorMessage label={error ?? translate('eudr.statements.form.loadError')} />\n </PageBody>\n </Page>\n )\n }\n\n return (\n <Page>\n <PageBody>\n <StatementLifecycleBar\n statement={{\n id: record.id,\n status: record.status,\n referenceNumber: record.referenceNumber,\n verificationNumber: record.verificationNumber,\n referenceIssuedAt: record.referenceIssuedAt,\n submittedAt: record.submittedAt,\n updatedAt: record.updatedAt,\n }}\n speciesMissing={speciesMissing}\n onChanged={refreshRecord}\n />\n\n <StatementReadinessChecklist\n statementId={record.id}\n status={record.status}\n updatedAt={record.updatedAt}\n />\n\n <CrudForm<StatementFormValues>\n title={translate('eudr.statements.edit.title')}\n backHref=\"/backend/eudr/statements\"\n cancelHref=\"/backend/eudr/statements\"\n deleteRedirect=\"/backend/eudr/statements\"\n submitLabel={translate('eudr.statements.form.submitUpdate')}\n fields={fields}\n groups={groups}\n initialValues={initialValues}\n extraActions={(\n <Button\n type=\"button\"\n variant=\"outline\"\n onClick={() => router.push(\n `/backend/eudr/statements/create?duplicateFrom=${encodeURIComponent(record.id)}`,\n )}\n >\n <Copy className=\"mr-2 h-4 w-4\" aria-hidden />\n {translate('eudr.statements.duplicateAction')}\n </Button>\n )}\n onSubmit={async (values) => {\n const title = optionalText(values.title)\n if (!title) {\n const message = translate('eudr.statements.form.titleRequired')\n throw createCrudFormError(message, { title: message })\n }\n const commodity = optionalText(values.commodity)\n if (!commodity) {\n const message = translate('eudr.statements.form.commodityRequired')\n throw createCrudFormError(message, { commodity: message })\n }\n await updateCrud('eudr/statements', {\n id: record.id,\n title,\n commodity,\n referenceNumber: optionalText(values.referenceNumber),\n verificationNumber: optionalText(values.verificationNumber),\n activityType: optionalText(values.activityType),\n actorRole: optionalText(values.actorRole),\n referencedStatements: normalizeReferencedStatements(values.referencedStatements),\n quantityKg: optionalNumber(values.quantityKg, translate),\n supplementaryUnit: optionalText(values.supplementaryUnit),\n supplementaryQuantity: optionalSupplementaryNumber(values.supplementaryQuantity, translate),\n orderId: optionalText(values.orderId),\n orderSnapshot: isOrderSnapshot(values.orderSnapshot) ? values.orderSnapshot : null,\n notes: optionalText(values.notes),\n }, {\n errorMessage: translate('eudr.statements.form.updateError'),\n }).catch((err) => {\n throw translateEudrCrudError(err, translate)\n })\n flash(translate('eudr.statements.form.updateSuccess'), 'success')\n router.push('/backend/eudr/statements')\n }}\n onDelete={async () => {\n await deleteCrud('eudr/statements', record.id, {\n errorMessage: translate('eudr.statements.form.deleteError'),\n }).catch((err) => {\n throw translateEudrCrudError(err, translate)\n })\n }}\n />\n\n <StatementRiskSection\n statementId={record.id}\n latestRisk={record.latestRisk}\n />\n\n <section className=\"space-y-3\">\n <h2 className=\"text-lg font-semibold\">{translate('eudr.statements.detail.submissions')}</h2>\n <DataTable<LinkedSubmissionRow>\n title={translate('eudr.statements.detail.submissionsTableTitle')}\n columns={submissionColumns}\n data={submissionRows}\n isLoading={submissionsLoading}\n error={submissionsError}\n emptyState={(\n <EmptyState\n size=\"sm\"\n variant=\"subtle\"\n title={translate('eudr.statements.detail.submissionsEmpty')}\n description={translate('eudr.statements.detail.submissionsEmptyHint')}\n actions={(\n <Button asChild type=\"button\" variant=\"outline\">\n <Link href={`/backend/eudr/evidence-submissions/create?statementId=${encodeURIComponent(record.id)}`}>\n {translate('eudr.statements.detail.createSubmission')}\n </Link>\n </Button>\n )}\n />\n )}\n perspective={{ tableId: 'eudr.statements.detail.submissions' }}\n disableRowClick\n />\n </section>\n\n {plotFeatures.length > 0 ? (\n <section className=\"space-y-3\">\n <div className=\"flex items-center justify-between gap-3\">\n <h2 className=\"text-lg font-semibold\">{translate('eudr.statements.detail.plotMap')}</h2>\n {plotsLoading ? (\n <span className=\"text-sm text-muted-foreground\">{translate('eudr.statements.detail.plotMapLoading')}</span>\n ) : null}\n </div>\n <PlotMapPreview features={plotFeatures} />\n </section>\n ) : null}\n\n <section className=\"space-y-3 rounded-lg border border-border bg-card p-4\">\n <h2 className=\"text-lg font-semibold\">{translate('eudr.statements.detail.exports')}</h2>\n <div className=\"flex flex-wrap items-center gap-2\">\n <Button\n type=\"button\"\n variant=\"outline\"\n onClick={() => void handleExport('json')}\n disabled={exportingFormat !== null}\n >\n <Download className=\"mr-2 h-4 w-4\" aria-hidden />\n {translate('eudr.statements.detail.export')}\n </Button>\n <Button\n type=\"button\"\n variant=\"outline\"\n onClick={() => void handleExport('geojson')}\n disabled={exportingFormat !== null}\n >\n <Download className=\"mr-2 h-4 w-4\" aria-hidden />\n {translate('eudr.statements.detail.exportGeoJson')}\n </Button>\n </div>\n </section>\n </PageBody>\n </Page>\n )\n}\n"],
5
- "mappings": ";AA4aQ,cA+NI,YA/NJ;AA1aR,YAAY,WAAW;AACvB,OAAO,UAAU;AACjB,SAAS,iBAAiB;AAC1B,SAAS,MAAM,gBAAgB;AAC/B,SAAS,MAAM,gBAAgB;AAC/B,SAAS,gBAAoD;AAC7D,SAAS,iBAAiB;AAC1B,SAAS,YAAY,kBAAkB;AACvC,SAAS,2BAA2B;AACpC,SAAS,eAAe;AACxB,SAAS,cAAc,gBAAgB,2BAA2B;AAClE,SAAS,aAAa;AACtB,SAAS,cAAc;AACvB,SAAS,kBAAkB;AAC3B,SAAS,mBAAmB;AAC5B,SAAS,YAAY;AAErB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAIA;AAAA,OACK;AACP,SAAS,6BAA6B;AACtC,SAAS,mCAAmC;AAC5C,SAAS,4BAAsD;AAC/D,SAAS,sBAAsB;AAQ/B,SAAS,yBAAyB;AAiFlC,SAAS,aAAa,OAA+B;AACnD,MAAI,OAAO,UAAU,SAAU,QAAO;AACtC,QAAM,UAAU,MAAM,KAAK;AAC3B,SAAO,QAAQ,SAAS,UAAU;AACpC;AAEA,SAAS,eAAe,OAAgB,WAAmD;AACzF,QAAM,OAAO,aAAa,KAAK;AAC/B,MAAI,CAAC,KAAM,QAAO;AAClB,QAAM,eAAe,OAAO,IAAI;AAChC,MAAI,CAAC,OAAO,SAAS,YAAY,GAAG;AAClC,UAAM,UAAU,UAAU,wCAAwC;AAClE,UAAM,oBAAoB,SAAS,EAAE,YAAY,QAAQ,CAAC;AAAA,EAC5D;AACA,SAAO;AACT;AAEA,SAAS,4BAA4B,OAAgB,WAAmD;AACtG,QAAM,OAAO,aAAa,KAAK;AAC/B,MAAI,CAAC,KAAM,QAAO;AAClB,QAAM,eAAe,OAAO,IAAI;AAChC,MAAI,CAAC,OAAO,SAAS,YAAY,GAAG;AAClC,UAAM,UAAU,UAAU,mDAAmD;AAC7E,UAAM,oBAAoB,SAAS,EAAE,uBAAuB,QAAQ,CAAC;AAAA,EACvE;AACA,SAAO;AACT;AAEA,SAAS,gBAAgB,OAAwC;AAC/D,SAAO,UAAU,QAAQ,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,KAAK;AAC5E;AAEA,SAAS,8BAA8B,OAA4C;AACjF,MAAI,CAAC,MAAM,QAAQ,KAAK,EAAG,QAAO,CAAC;AACnC,SAAO,MACJ,IAAI,CAAC,UAAU;AACd,QAAI,UAAU,QAAQ,OAAO,UAAU,YAAY,MAAM,QAAQ,KAAK,EAAG,QAAO;AAChF,UAAM,SAAS;AACf,UAAM,kBAAkB,aAAa,OAAO,eAAe;AAC3D,QAAI,CAAC,gBAAiB,QAAO;AAC7B,UAAM,qBAAqB,aAAa,OAAO,kBAAkB;AACjE,WAAO,qBAAqB,EAAE,iBAAiB,mBAAmB,IAAI,EAAE,gBAAgB;AAAA,EAC1F,CAAC,EACA,OAAO,CAAC,UAA6C,UAAU,IAAI;AACxE;AAEA,SAAS,WAAW,QAAyC;AAC3D,QAAM,QAAQ,QAAQ;AACtB,SAAO,OAAO,UAAU,YAAY,MAAM,KAAK,EAAE,SAAS,QAAQ;AACpE;AAEA,SAAS,iBAAiB,OAAuC;AAC/D,MAAI,UAAU,QAAQ,UAAU,OAAW,QAAO;AAClD,SAAO,OAAO,KAAK;AACrB;AAEA,SAAS,qBAAqB,OAAuC;AACnE,MAAI,UAAU,QAAQ,UAAU,OAAW,QAAO;AAClD,SAAO,OAAO,KAAK;AACrB;AAEA,SAAS,cAAc,KAA0B,kBAAkC;AACjF,SAAO,IAAI,kBAAkB,eAAe;AAC9C;AAEe,SAAR,sBAAuC,EAAE,OAAO,GAAiC;AACtF,QAAM,YAAY,KAAK;AACvB,QAAM,SAAS,UAAU;AACzB,QAAM,cAAc,MAAM,QAAQ,MAAM,WAAW,MAAM,GAAG,CAAC,MAAM,CAAC;AACpE,QAAM,CAAC,QAAQ,SAAS,IAAI,MAAM,SAAiC,IAAI;AACvE,QAAM,CAAC,SAAS,UAAU,IAAI,MAAM,SAAS,IAAI;AACjD,QAAM,CAAC,OAAO,QAAQ,IAAI,MAAM,SAAwB,IAAI;AAC5D,QAAM,CAAC,UAAU,WAAW,IAAI,MAAM,SAAS,KAAK;AACpD,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,MAAM,SAAgC,CAAC,CAAC;AACpF,QAAM,CAAC,oBAAoB,qBAAqB,IAAI,MAAM,SAAS,KAAK;AACxE,QAAM,CAAC,kBAAkB,mBAAmB,IAAI,MAAM,SAAwB,IAAI;AAClF,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,MAAM,SAAS,KAAK;AAChE,QAAM,CAAC,cAAc,eAAe,IAAI,MAAM,SAAoB,CAAC,CAAC;AACpE,QAAM,CAAC,cAAc,eAAe,IAAI,MAAM,SAAS,KAAK;AAC5D,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,MAAM,SAAoC,IAAI;AAC5F,QAAM,CAAC,aAAa,cAAc,IAAI,MAAM,SAAS,CAAC;AAEtD,QAAM,UAAU,MAAM;AACpB,QAAI,YAAY;AAChB,mBAAe,aAAa;AAC1B,UAAI,CAAC,aAAa;AAChB,oBAAY,IAAI;AAChB,mBAAW,KAAK;AAChB;AAAA,MACF;AACA,iBAAW,IAAI;AACf,eAAS,IAAI;AACb,kBAAY,KAAK;AACjB,UAAI;AACF,cAAM,OAAO,MAAM;AAAA,UACjB,2BAA2B,mBAAmB,WAAW,CAAC;AAAA,UAC1D;AAAA,UACA,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,EAAE;AAAA,QAC5B;AACA,YAAI,CAAC,KAAK,IAAI;AACZ,cAAI,CAAC,UAAW,UAAS,UAAU,gCAAgC,CAAC;AACpE;AAAA,QACF;AACA,cAAM,QAAQ,MAAM,QAAQ,KAAK,QAAQ,KAAK,IAAI,KAAK,OAAO,QAAQ,CAAC;AACvE,YAAI,UAAW;AACf,YAAI,MAAM,WAAW,GAAG;AACtB,sBAAY,IAAI;AAChB,oBAAU,IAAI;AACd;AAAA,QACF;AACA,kBAAU,MAAM,CAAC,CAAC;AAAA,MACpB,QAAQ;AACN,YAAI,CAAC,UAAW,UAAS,UAAU,gCAAgC,CAAC;AAAA,MACtE,UAAE;AACA,YAAI,CAAC,UAAW,YAAW,KAAK;AAAA,MAClC;AAAA,IACF;AACA,eAAW;AACX,WAAO,MAAM;AACX,kBAAY;AAAA,IACd;AAAA,EACF,GAAG,CAAC,aAAa,aAAa,SAAS,CAAC;AAExC,QAAM,UAAU,MAAM;AACpB,QAAI,YAAY;AAChB,mBAAe,kBAAkB;AAC/B,UAAI,CAAC,YAAa;AAClB,4BAAsB,IAAI;AAC1B,0BAAoB,IAAI;AACxB,UAAI;AACF,cAAM,OAAO,MAAM;AAAA,UACjB,8CAA8C,mBAAmB,WAAW,CAAC;AAAA,UAC7E;AAAA,UACA,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,EAAE;AAAA,QAC5B;AACA,YAAI,CAAC,KAAK,IAAI;AACZ,cAAI,CAAC,UAAW,qBAAoB,UAAU,6CAA6C,CAAC;AAC5F;AAAA,QACF;AACA,YAAI,CAAC,UAAW,mBAAkB,MAAM,QAAQ,KAAK,QAAQ,KAAK,IAAI,KAAK,OAAO,QAAQ,CAAC,CAAC;AAAA,MAC9F,QAAQ;AACN,YAAI,CAAC,UAAW,qBAAoB,UAAU,6CAA6C,CAAC;AAAA,MAC9F,UAAE;AACA,YAAI,CAAC,UAAW,uBAAsB,KAAK;AAAA,MAC7C;AAAA,IACF;AACA,oBAAgB;AAChB,WAAO,MAAM;AACX,kBAAY;AAAA,IACd;AAAA,EACF,GAAG,CAAC,aAAa,SAAS,CAAC;AAE3B,QAAM,UAAU,MAAM;AACpB,UAAM,oBAAoB,MAAM;AAAA,MAC9B,IAAI;AAAA,QACF,eACG,IAAI,CAAC,eAAe,WAAW,gBAAgB,EAC/C,OAAO,CAAC,cAAmC,OAAO,cAAc,YAAY,UAAU,SAAS,CAAC;AAAA,MACrG;AAAA,IACF;AACA,QAAI,CAAC,kBAAkB,QAAQ;AAC7B,wBAAkB,KAAK;AACvB;AAAA,IACF;AACA,sBAAkB,KAAK;AACvB,QAAI,YAAY;AAChB,mBAAe,sBAAsB;AACnC,UAAI;AACF,cAAM,OAAO,MAAM;AAAA,UACjB,kCAAkC,mBAAmB,kBAAkB,KAAK,GAAG,CAAC,CAAC;AAAA,UACjF;AAAA,YACE,SAAS;AAAA,cACP,2BAA2B;AAAA,cAC3B,8BAA8B;AAAA,YAChC;AAAA,UACF;AAAA,UACA,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,EAAE;AAAA,QAC5B;AACA,YAAI,CAAC,WAAW;AACd,gBAAM,WAAW,KAAK,MAAM,MAAM,QAAQ,KAAK,QAAQ,KAAK,IAAI,KAAK,OAAO,QAAQ,CAAC;AACrF,4BAAkB,SAAS,KAAK,CAAC,YAAY,kBAAkB,OAAO,CAAC,CAAC;AAAA,QAC1E;AAAA,MACF,QAAQ;AACN,YAAI,CAAC,UAAW,mBAAkB,KAAK;AAAA,MACzC;AAAA,IACF;AACA,SAAK,oBAAoB;AACzB,WAAO,MAAM;AACX,kBAAY;AAAA,IACd;AAAA,EACF,GAAG,CAAC,cAAc,CAAC;AAEnB,QAAM,UAAU,MAAM;AACpB,UAAM,UAAU,MAAM;AAAA,MACpB,IAAI;AAAA,QACF,eACG,QAAQ,CAAC,eAAe,MAAM,QAAQ,WAAW,OAAO,IAAI,WAAW,UAAU,CAAC,CAAC,EACnF,OAAO,CAAC,WAA6B,OAAO,WAAW,YAAY,OAAO,KAAK,EAAE,SAAS,CAAC;AAAA,MAChG;AAAA,IACF;AACA,QAAI,CAAC,QAAQ,QAAQ;AACnB,sBAAgB,CAAC,CAAC;AAClB,sBAAgB,KAAK;AACrB;AAAA,IACF;AACA,QAAI,YAAY;AAChB,mBAAe,YAAY;AACzB,sBAAgB,IAAI;AACpB,UAAI;AACF,cAAM,OAAO,MAAM;AAAA,UACjB,uBAAuB,mBAAmB,QAAQ,KAAK,GAAG,CAAC,CAAC;AAAA,UAC5D;AAAA,YACE,SAAS;AAAA,cACP,2BAA2B;AAAA,cAC3B,8BAA8B;AAAA,YAChC;AAAA,UACF;AAAA,UACA,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,EAAE;AAAA,QAC5B;AACA,YAAI,CAAC,KAAK,IAAI;AACZ,cAAI,CAAC,UAAW,iBAAgB,CAAC,CAAC;AAClC;AAAA,QACF;AACA,cAAM,YAAY,MAAM,QAAQ,KAAK,QAAQ,KAAK,IAAI,KAAK,OAAO,QAAQ,CAAC,GACxE,IAAI,CAAC,SAAS,KAAK,QAAQ,EAC3B,OAAO,CAAC,aAAa,aAAa,QAAQ,aAAa,MAAS;AACnE,YAAI,CAAC,UAAW,iBAAgB,QAAQ;AAAA,MAC1C,QAAQ;AACN,YAAI,CAAC,UAAW,iBAAgB,CAAC,CAAC;AAAA,MACpC,UAAE;AACA,YAAI,CAAC,UAAW,iBAAgB,KAAK;AAAA,MACvC;AAAA,IACF;AACA,cAAU;AACV,WAAO,MAAM;AACX,kBAAY;AAAA,IACd;AAAA,EACF,GAAG,CAAC,cAAc,CAAC;AAEnB,QAAM,gBAAgB,MAAM,YAAY,MAAM;AAC5C,mBAAe,CAAC,iBAAiB,eAAe,CAAC;AAAA,EACnD,GAAG,CAAC,CAAC;AAEL,QAAM,SAAS,MAAM,QAAqB,MAAM;AAAA,IAC9C;AAAA,MACE,IAAI;AAAA,MACJ,OAAO,UAAU,4BAA4B;AAAA,MAC7C,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,OAAO,UAAU,gCAAgC;AAAA,MACjD,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS,iBAAiB,SAAS;AAAA,IACrC;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,OAAO,UAAU,mCAAmC;AAAA,MACpD,MAAM;AAAA,MACN,SAAS,oBAAoB,SAAS;AAAA,IACxC;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,OAAO,UAAU,gCAAgC;AAAA,MACjD,MAAM;AAAA,MACN,SAAS,iBAAiB,SAAS;AAAA,IACrC;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,OAAO,UAAU,sCAAsC;AAAA,MACvD,MAAM;AAAA,IACR;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,OAAO,UAAU,yCAAyC;AAAA,MAC1D,MAAM;AAAA,IACR;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,OAAO,UAAU,iCAAiC;AAAA,MAClD,MAAM;AAAA,IACR;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,OAAO,UAAU,wCAAwC;AAAA,MACzD,MAAM;AAAA,IACR;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,OAAO,UAAU,4CAA4C;AAAA,MAC7D,MAAM;AAAA,IACR;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,OAAO,UAAU,4BAA4B;AAAA,MAC7C,MAAM;AAAA,MACN,WAAW,CAAC,EAAE,IAAI,OAAO,UAAU,aAAa,MAC9C;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,OAAO,OAAO,UAAU,WAAW,QAAQ;AAAA,UAC3C,UAAU,CAAC,cAAc,SAAS,aAAa,EAAE;AAAA,UACjD,YAAY,CAAC,aAAa,eAAe,iBAAiB,QAAQ;AAAA,UAClE,aAAa,UAAU,uCAAuC;AAAA,UAC9D,YAAY,UAAU,mBAAmB;AAAA,UACzC,WAAW,UAAU,qCAAqC;AAAA;AAAA,MAC5D;AAAA,IAEJ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,OAAO,UAAU,2CAA2C;AAAA,MAC5D,MAAM;AAAA,MACN,WAAW,CAAC,EAAE,IAAI,OAAO,UAAU,SAAS,MAC1C;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA,UAAU,CAAC,cAAc,SAAS,SAAS;AAAA,UAC3C;AAAA;AAAA,MACF;AAAA,IAEJ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,OAAO,UAAU,4BAA4B;AAAA,MAC7C,MAAM;AAAA,IACR;AAAA,EACF,GAAG,CAAC,SAAS,CAAC;AAEd,QAAM,SAAS,MAAM,QAAyB,MAAM;AAAA,IAClD;AAAA,MACE,IAAI;AAAA,MACJ,OAAO,UAAU,8BAA8B;AAAA,MAC/C,QAAQ;AAAA,MACR,QAAQ;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,OAAO,UAAU,iCAAiC;AAAA,MAClD,QAAQ;AAAA,MACR,QAAQ;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,OAAO,UAAU,2CAA2C;AAAA,MAC5D,QAAQ;AAAA,MACR,QAAQ;AAAA,QACN;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,OAAO,UAAU,mCAAmC;AAAA,MACpD,QAAQ;AAAA,MACR,QAAQ;AAAA,QACN;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,OAAO,UAAU,4BAA4B;AAAA,MAC7C,QAAQ;AAAA,MACR,QAAQ;AAAA,QACN;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,OAAO,UAAU,mBAAmB;AAAA,MACpC,QAAQ;AAAA,MACR,QAAQ;AAAA,QACN;AAAA,MACF;AAAA,IACF;AAAA,EACF,GAAG,CAAC,SAAS,CAAC;AAEd,QAAM,oBAAoB,MAAM,QAA0C,MAAM;AAAA,IAC9E;AAAA,MACE,aAAa;AAAA,MACb,QAAQ,UAAU,yCAAyC;AAAA,MAC3D,MAAM,CAAC,EAAE,IAAI,MAAM,cAAc,IAAI,UAAU,UAAU,+BAA+B,CAAC;AAAA,IAC3F;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,QAAQ,UAAU,uCAAuC;AAAA,MACzD,MAAM,CAAC,EAAE,IAAI,MACX,oBAAC,eAAY,SAAS,mBAAmB,IAAI,SAAS,MAAM,GAAG,KAAG,MAC/D,oBAAU,yBAAyB,IAAI,SAAS,MAAM,EAAE,GAC3D;AAAA,IAEJ;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,QAAQ,UAAU,6CAA6C;AAAA,MAC/D,MAAM,CAAC,EAAE,IAAI,MAAM,GAAG,IAAI,SAAS,iBAAiB;AAAA,IACtD;AAAA,EACF,GAAG,CAAC,SAAS,CAAC;AAEd,QAAM,gBAAgB,MAAM,QAAoC,MAAM;AACpE,QAAI,CAAC,OAAQ,QAAO;AACpB,WAAO;AAAA,MACL,IAAI,OAAO;AAAA,MACX,OAAO,OAAO;AAAA,MACd,WAAW,OAAO;AAAA,MAClB,iBAAiB,OAAO,mBAAmB;AAAA,MAC3C,oBAAoB,OAAO,sBAAsB;AAAA,MACjD,cAAc,OAAO,gBAAgB;AAAA,MACrC,WAAW,OAAO,aAAa;AAAA,MAC/B,sBAAsB,MAAM,QAAQ,OAAO,oBAAoB,IAAI,OAAO,uBAAuB,CAAC;AAAA,MAClG,YAAY,iBAAiB,OAAO,UAAU;AAAA,MAC9C,mBAAmB,OAAO,qBAAqB;AAAA,MAC/C,uBAAuB,qBAAqB,OAAO,qBAAqB;AAAA,MACxE,SAAS,OAAO,WAAW;AAAA,MAC3B,eAAe,OAAO;AAAA,MACtB,OAAO,OAAO,SAAS;AAAA,MACvB,WAAW,OAAO;AAAA,IACpB;AAAA,EACF,GAAG,CAAC,MAAM,CAAC;AAEX,QAAM,eAAe,MAAM,YAAY,OAAO,WAA+B;AAC3E,QAAI,CAAC,YAAa;AAClB,uBAAmB,MAAM;AACzB,QAAI;AACF,YAAM,SAAS,WAAW,YAAY,oBAAoB;AAC1D,YAAM,OAAO,MAAM,QAAiB,wBAAwB,mBAAmB,WAAW,CAAC,UAAU,MAAM,EAAE;AAC7G,UAAI,CAAC,KAAK,GAAI,OAAM,IAAI,MAAM,yCAAyC;AACvE,YAAM,OAAO,IAAI,KAAK,CAAC,KAAK,UAAU,KAAK,UAAU,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG;AAAA,QAClE,MAAM,WAAW,YAAY,yBAAyB;AAAA,MACxD,CAAC;AACD,YAAM,YAAY,IAAI,gBAAgB,IAAI;AAC1C,YAAM,OAAO,SAAS,cAAc,GAAG;AACvC,WAAK,OAAO;AACZ,WAAK,WAAW,WAAW,YAAY,YAAY,WAAW,aAAa,YAAY,WAAW;AAClG,eAAS,KAAK,YAAY,IAAI;AAC9B,WAAK,MAAM;AACX,WAAK,OAAO;AACZ,UAAI,gBAAgB,SAAS;AAAA,IAC/B,QAAQ;AACN,YAAM,UAAU,oCAAoC,GAAG,OAAO;AAAA,IAChE,UAAE;AACA,yBAAmB,IAAI;AAAA,IACzB;AAAA,EACF,GAAG,CAAC,aAAa,SAAS,CAAC;AAE3B,MAAI,SAAS;AACX,WACE,oBAAC,QACC,8BAAC,YACC,8BAAC,kBAAe,OAAO,UAAU,8BAA8B,GAAG,GACpE,GACF;AAAA,EAEJ;AAEA,MAAI,UAAU;AACZ,WACE,oBAAC,QACC,8BAAC,YACC;AAAA,MAAC;AAAA;AAAA,QACC,OAAO,UAAU,+BAA+B;AAAA,QAChD,UAAS;AAAA,QACT,WAAW,UAAU,iCAAiC;AAAA;AAAA,IACxD,GACF,GACF;AAAA,EAEJ;AAEA,MAAI,SAAS,CAAC,UAAU,CAAC,eAAe;AACtC,WACE,oBAAC,QACC,8BAAC,YACC,8BAAC,gBAAa,OAAO,SAAS,UAAU,gCAAgC,GAAG,GAC7E,GACF;AAAA,EAEJ;AAEA,SACE,oBAAC,QACC,+BAAC,YACC;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT,IAAI,OAAO;AAAA,UACX,QAAQ,OAAO;AAAA,UACf,iBAAiB,OAAO;AAAA,UACxB,oBAAoB,OAAO;AAAA,UAC3B,mBAAmB,OAAO;AAAA,UAC1B,aAAa,OAAO;AAAA,UACpB,WAAW,OAAO;AAAA,QACpB;AAAA,QACA;AAAA,QACA,WAAW;AAAA;AAAA,IACb;AAAA,IAEA;AAAA,MAAC;AAAA;AAAA,QACC,aAAa,OAAO;AAAA,QACpB,QAAQ,OAAO;AAAA,QACf,WAAW,OAAO;AAAA;AAAA,IACpB;AAAA,IAEA;AAAA,MAAC;AAAA;AAAA,QACC,OAAO,UAAU,4BAA4B;AAAA,QAC7C,UAAS;AAAA,QACT,YAAW;AAAA,QACX,gBAAe;AAAA,QACf,aAAa,UAAU,mCAAmC;AAAA,QAC1D;AAAA,QACA;AAAA,QACA;AAAA,QACA,cACE;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,SAAQ;AAAA,YACR,SAAS,MAAM,OAAO;AAAA,cACpB,iDAAiD,mBAAmB,OAAO,EAAE,CAAC;AAAA,YAChF;AAAA,YAEA;AAAA,kCAAC,QAAK,WAAU,gBAAe,eAAW,MAAC;AAAA,cAC1C,UAAU,iCAAiC;AAAA;AAAA;AAAA,QAC9C;AAAA,QAEF,UAAU,OAAO,WAAW;AAC1B,gBAAM,QAAQ,aAAa,OAAO,KAAK;AACvC,cAAI,CAAC,OAAO;AACV,kBAAM,UAAU,UAAU,oCAAoC;AAC9D,kBAAM,oBAAoB,SAAS,EAAE,OAAO,QAAQ,CAAC;AAAA,UACvD;AACA,gBAAM,YAAY,aAAa,OAAO,SAAS;AAC/C,cAAI,CAAC,WAAW;AACd,kBAAM,UAAU,UAAU,wCAAwC;AAClE,kBAAM,oBAAoB,SAAS,EAAE,WAAW,QAAQ,CAAC;AAAA,UAC3D;AACA,gBAAM,WAAW,mBAAmB;AAAA,YAClC,IAAI,OAAO;AAAA,YACX;AAAA,YACA;AAAA,YACA,iBAAiB,aAAa,OAAO,eAAe;AAAA,YACpD,oBAAoB,aAAa,OAAO,kBAAkB;AAAA,YAC1D,cAAc,aAAa,OAAO,YAAY;AAAA,YAC9C,WAAW,aAAa,OAAO,SAAS;AAAA,YACxC,sBAAsB,8BAA8B,OAAO,oBAAoB;AAAA,YAC/E,YAAY,eAAe,OAAO,YAAY,SAAS;AAAA,YACvD,mBAAmB,aAAa,OAAO,iBAAiB;AAAA,YACxD,uBAAuB,4BAA4B,OAAO,uBAAuB,SAAS;AAAA,YAC1F,SAAS,aAAa,OAAO,OAAO;AAAA,YACpC,eAAe,gBAAgB,OAAO,aAAa,IAAI,OAAO,gBAAgB;AAAA,YAC9E,OAAO,aAAa,OAAO,KAAK;AAAA,UAClC,GAAG;AAAA,YACD,cAAc,UAAU,kCAAkC;AAAA,UAC5D,CAAC,EAAE,MAAM,CAAC,QAAQ;AAChB,kBAAM,uBAAuB,KAAK,SAAS;AAAA,UAC7C,CAAC;AACD,gBAAM,UAAU,oCAAoC,GAAG,SAAS;AAChE,iBAAO,KAAK,0BAA0B;AAAA,QACxC;AAAA,QACA,UAAU,YAAY;AACpB,gBAAM,WAAW,mBAAmB,OAAO,IAAI;AAAA,YAC7C,cAAc,UAAU,kCAAkC;AAAA,UAC5D,CAAC,EAAE,MAAM,CAAC,QAAQ;AAChB,kBAAM,uBAAuB,KAAK,SAAS;AAAA,UAC7C,CAAC;AAAA,QACH;AAAA;AAAA,IACF;AAAA,IAEA;AAAA,MAAC;AAAA;AAAA,QACC,aAAa,OAAO;AAAA,QACpB,YAAY,OAAO;AAAA;AAAA,IACrB;AAAA,IAEA,qBAAC,aAAQ,WAAU,aACjB;AAAA,0BAAC,QAAG,WAAU,yBAAyB,oBAAU,oCAAoC,GAAE;AAAA,MACvF;AAAA,QAAC;AAAA;AAAA,UACC,OAAO,UAAU,8CAA8C;AAAA,UAC/D,SAAS;AAAA,UACT,MAAM;AAAA,UACN,WAAW;AAAA,UACX,OAAO;AAAA,UACP,YACE;AAAA,YAAC;AAAA;AAAA,cACC,MAAK;AAAA,cACL,SAAQ;AAAA,cACR,OAAO,UAAU,yCAAyC;AAAA,cAC1D,aAAa,UAAU,6CAA6C;AAAA,cACpE,SACE,oBAAC,UAAO,SAAO,MAAC,MAAK,UAAS,SAAQ,WACpC,8BAAC,QAAK,MAAM,yDAAyD,mBAAmB,OAAO,EAAE,CAAC,IAC/F,oBAAU,yCAAyC,GACtD,GACF;AAAA;AAAA,UAEJ;AAAA,UAEF,aAAa,EAAE,SAAS,qCAAqC;AAAA,UAC7D,iBAAe;AAAA;AAAA,MACjB;AAAA,OACF;AAAA,IAEC,aAAa,SAAS,IACrB,qBAAC,aAAQ,WAAU,aACjB;AAAA,2BAAC,SAAI,WAAU,2CACb;AAAA,4BAAC,QAAG,WAAU,yBAAyB,oBAAU,gCAAgC,GAAE;AAAA,QAClF,eACC,oBAAC,UAAK,WAAU,iCAAiC,oBAAU,uCAAuC,GAAE,IAClG;AAAA,SACN;AAAA,MACA,oBAAC,kBAAe,UAAU,cAAc;AAAA,OAC1C,IACE;AAAA,IAEJ,qBAAC,aAAQ,WAAU,yDACjB;AAAA,0BAAC,QAAG,WAAU,yBAAyB,oBAAU,gCAAgC,GAAE;AAAA,MACnF,qBAAC,SAAI,WAAU,qCACb;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,SAAQ;AAAA,YACR,SAAS,MAAM,KAAK,aAAa,MAAM;AAAA,YACvC,UAAU,oBAAoB;AAAA,YAE9B;AAAA,kCAAC,YAAS,WAAU,gBAAe,eAAW,MAAC;AAAA,cAC9C,UAAU,+BAA+B;AAAA;AAAA;AAAA,QAC5C;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,SAAQ;AAAA,YACR,SAAS,MAAM,KAAK,aAAa,SAAS;AAAA,YAC1C,UAAU,oBAAoB;AAAA,YAE9B;AAAA,kCAAC,YAAS,WAAU,gBAAe,eAAW,MAAC;AAAA,cAC9C,UAAU,sCAAsC;AAAA;AAAA;AAAA,QACnD;AAAA,SACF;AAAA,OACF;AAAA,KACF,GACF;AAEJ;",
4
+ "sourcesContent": ["\"use client\"\n\nimport * as React from 'react'\nimport Link from 'next/link'\nimport { useRouter } from 'next/navigation'\nimport { Copy, Download } from 'lucide-react'\nimport { Page, PageBody } from '@open-mercato/ui/backend/Page'\nimport { CrudForm, type CrudField, type CrudFormGroup } from '@open-mercato/ui/backend/CrudForm'\nimport { DataTable } from '@open-mercato/ui/backend/DataTable'\nimport { deleteCrud, updateCrud } from '@open-mercato/ui/backend/utils/crud'\nimport { createCrudFormError } from '@open-mercato/ui/backend/utils/serverErrors'\nimport { apiCall } from '@open-mercato/ui/backend/utils/apiCall'\nimport { ErrorMessage, LoadingMessage, RecordNotFoundState } from '@open-mercato/ui/backend/detail'\nimport { flash } from '@open-mercato/ui/backend/FlashMessages'\nimport { Button } from '@open-mercato/ui/primitives/button'\nimport { EmptyState } from '@open-mercato/ui/primitives/empty-state'\nimport { StatusBadge } from '@open-mercato/ui/primitives/status-badge'\nimport { useT } from '@open-mercato/shared/lib/i18n/context'\nimport type { LegacyColumnDef as ColumnDef } from '@tanstack/react-table/legacy'\nimport {\n OrderSelectField,\n ReferencedStatementsField,\n actorRoleOptions,\n activityTypeOptions,\n commodityOptions,\n statusBadgeVariant,\n type CompanySnapshot,\n type OrderSnapshot,\n type ReferencedStatementValue,\n translateEudrCrudError,\n} from '../../../../components/formConfig'\nimport { canDeleteStatement } from '../../../../lib/statement-lifecycle'\nimport { StatementLifecycleBar } from '../../../../components/StatementLifecycleBar'\nimport { StatementReadinessChecklist } from '../../../../components/StatementReadinessChecklist'\nimport { StatementRiskSection, type StatementLatestRisk } from '../../../../components/StatementRiskSection'\nimport { PlotMapPreview } from '../../../../components/PlotMapPreview'\nimport type {\n EudrActivityType,\n EudrActorRole,\n EudrCommodity,\n EudrStatementStatus,\n EudrSubmissionStatus,\n} from '../../../../data/validators'\nimport { hasMissingSpecies } from '../../../../lib/species'\n\ntype StatementRecord = {\n id: string\n title: string\n commodity: EudrCommodity\n referenceNumber: string | null\n verificationNumber: string | null\n status: EudrStatementStatus\n activityType: EudrActivityType | null\n actorRole: EudrActorRole | null\n referencedStatements: ReferencedStatementValue[]\n quantityKg: number | string | null\n supplementaryUnit: string | null\n supplementaryQuantity: number | string | null\n orderId: string | null\n submittedAt: string | null\n referenceIssuedAt: string | null\n orderSnapshot: OrderSnapshot | null\n notes: string | null\n latestRisk: StatementLatestRisk\n createdAt: string\n updatedAt: string\n}\n\ntype StatementDetailResponse = {\n items?: StatementRecord[]\n}\n\ntype StatementFormValues = {\n id: string\n title: string\n commodity: string\n referenceNumber: string\n verificationNumber: string\n activityType: string\n actorRole: string\n referencedStatements: ReferencedStatementValue[]\n quantityKg: string\n supplementaryUnit: string\n supplementaryQuantity: string\n orderId: string\n orderSnapshot: OrderSnapshot | null\n notes: string\n updatedAt: string\n} & Record<string, unknown>\n\ntype LinkedSubmissionRow = {\n id: string\n supplierEntityId: string\n supplierSnapshot: CompanySnapshot | null\n commodity: EudrCommodity\n productMappingId: string | null\n status: EudrSubmissionStatus\n completenessScore: number\n plotIds?: string[]\n}\n\ntype LinkedSubmissionsResponse = {\n items?: LinkedSubmissionRow[]\n}\n\ntype ProductMappingRow = {\n commodity: EudrCommodity\n speciesScientificName?: string | null\n speciesCommonName?: string | null\n}\n\ntype ProductMappingsResponse = {\n items?: ProductMappingRow[]\n}\n\ntype PlotRow = {\n id: string\n geometry: unknown\n}\n\ntype PlotsResponse = {\n items?: PlotRow[]\n}\n\nfunction optionalText(value: unknown): string | null {\n if (typeof value !== 'string') return null\n const trimmed = value.trim()\n return trimmed.length ? trimmed : null\n}\n\nfunction optionalNumber(value: unknown, translate: ReturnType<typeof useT>): number | null {\n const text = optionalText(value)\n if (!text) return null\n const parsedNumber = Number(text)\n if (!Number.isFinite(parsedNumber)) {\n const message = translate('eudr.statements.form.quantityKgInvalid')\n throw createCrudFormError(message, { quantityKg: message })\n }\n return parsedNumber\n}\n\nfunction optionalSupplementaryNumber(value: unknown, translate: ReturnType<typeof useT>): number | null {\n const text = optionalText(value)\n if (!text) return null\n const parsedNumber = Number(text)\n if (!Number.isFinite(parsedNumber)) {\n const message = translate('eudr.statements.form.supplementaryQuantityInvalid')\n throw createCrudFormError(message, { supplementaryQuantity: message })\n }\n return parsedNumber\n}\n\nfunction isOrderSnapshot(value: unknown): value is OrderSnapshot {\n return value !== null && typeof value === 'object' && !Array.isArray(value)\n}\n\nfunction normalizeReferencedStatements(value: unknown): ReferencedStatementValue[] {\n if (!Array.isArray(value)) return []\n return value\n .map((entry) => {\n if (entry === null || typeof entry !== 'object' || Array.isArray(entry)) return null\n const record = entry as Record<string, unknown>\n const referenceNumber = optionalText(record.referenceNumber)\n if (!referenceNumber) return null\n const verificationNumber = optionalText(record.verificationNumber)\n return verificationNumber ? { referenceNumber, verificationNumber } : { referenceNumber }\n })\n .filter((entry): entry is ReferencedStatementValue => entry !== null)\n}\n\nfunction getRouteId(params?: { id?: string }): string | null {\n const rawId = params?.id\n return typeof rawId === 'string' && rawId.trim().length ? rawId : null\n}\n\nfunction formatQuantityKg(value: number | string | null): string {\n if (value === null || value === undefined) return ''\n return String(value)\n}\n\nfunction formatOptionalNumber(value: number | string | null): string {\n if (value === null || value === undefined) return ''\n return String(value)\n}\n\nfunction supplierLabel(row: LinkedSubmissionRow, unavailableLabel: string): string {\n return row.supplierSnapshot?.displayName || unavailableLabel\n}\n\nexport default function EditEudrStatementPage({ params }: { params?: { id?: string } }) {\n const translate = useT()\n const router = useRouter()\n const statementId = React.useMemo(() => getRouteId(params), [params])\n const [record, setRecord] = React.useState<StatementRecord | null>(null)\n const [loading, setLoading] = React.useState(true)\n const [error, setError] = React.useState<string | null>(null)\n const [notFound, setNotFound] = React.useState(false)\n const [submissionRows, setSubmissionRows] = React.useState<LinkedSubmissionRow[]>([])\n const [submissionsLoading, setSubmissionsLoading] = React.useState(false)\n const [submissionsError, setSubmissionsError] = React.useState<string | null>(null)\n const [speciesMissing, setSpeciesMissing] = React.useState(false)\n const [plotFeatures, setPlotFeatures] = React.useState<unknown[]>([])\n const [plotsLoading, setPlotsLoading] = React.useState(false)\n const [exportingFormat, setExportingFormat] = React.useState<'json' | 'geojson' | null>(null)\n const [reloadToken, setReloadToken] = React.useState(0)\n\n React.useEffect(() => {\n let cancelled = false\n async function loadRecord() {\n if (!statementId) {\n setNotFound(true)\n setLoading(false)\n return\n }\n setLoading(true)\n setError(null)\n setNotFound(false)\n try {\n const call = await apiCall<StatementDetailResponse>(\n `/api/eudr/statements?id=${encodeURIComponent(statementId)}`,\n undefined,\n { fallback: { items: [] } },\n )\n if (!call.ok) {\n if (!cancelled) setError(translate('eudr.statements.form.loadError'))\n return\n }\n const items = Array.isArray(call.result?.items) ? call.result.items : []\n if (cancelled) return\n if (items.length === 0) {\n setNotFound(true)\n setRecord(null)\n return\n }\n setRecord(items[0])\n } catch {\n if (!cancelled) setError(translate('eudr.statements.form.loadError'))\n } finally {\n if (!cancelled) setLoading(false)\n }\n }\n loadRecord()\n return () => {\n cancelled = true\n }\n }, [reloadToken, statementId, translate])\n\n React.useEffect(() => {\n let cancelled = false\n async function loadSubmissions() {\n if (!statementId) return\n setSubmissionsLoading(true)\n setSubmissionsError(null)\n try {\n const call = await apiCall<LinkedSubmissionsResponse>(\n `/api/eudr/evidence-submissions?statementId=${encodeURIComponent(statementId)}&pageSize=100`,\n undefined,\n { fallback: { items: [] } },\n )\n if (!call.ok) {\n if (!cancelled) setSubmissionsError(translate('eudr.statements.detail.loadSubmissionsError'))\n return\n }\n if (!cancelled) setSubmissionRows(Array.isArray(call.result?.items) ? call.result.items : [])\n } catch {\n if (!cancelled) setSubmissionsError(translate('eudr.statements.detail.loadSubmissionsError'))\n } finally {\n if (!cancelled) setSubmissionsLoading(false)\n }\n }\n loadSubmissions()\n return () => {\n cancelled = true\n }\n }, [statementId, translate])\n\n React.useEffect(() => {\n const productMappingIds = Array.from(\n new Set(\n submissionRows\n .map((submission) => submission.productMappingId)\n .filter((mappingId): mappingId is string => typeof mappingId === 'string' && mappingId.length > 0),\n ),\n )\n if (!productMappingIds.length) {\n setSpeciesMissing(false)\n return\n }\n setSpeciesMissing(false)\n let cancelled = false\n async function loadProductMappings() {\n try {\n const call = await apiCall<ProductMappingsResponse>(\n `/api/eudr/product-mappings?ids=${encodeURIComponent(productMappingIds.join(','))}&pageSize=100`,\n {\n headers: {\n 'x-om-forbidden-redirect': '0',\n 'x-om-unauthorized-redirect': '0',\n },\n },\n { fallback: { items: [] } },\n )\n if (!cancelled) {\n const mappings = call.ok && Array.isArray(call.result?.items) ? call.result.items : []\n setSpeciesMissing(mappings.some((mapping) => hasMissingSpecies(mapping)))\n }\n } catch {\n if (!cancelled) setSpeciesMissing(false)\n }\n }\n void loadProductMappings()\n return () => {\n cancelled = true\n }\n }, [submissionRows])\n\n React.useEffect(() => {\n const plotIds = Array.from(\n new Set(\n submissionRows\n .flatMap((submission) => Array.isArray(submission.plotIds) ? submission.plotIds : [])\n .filter((plotId): plotId is string => typeof plotId === 'string' && plotId.trim().length > 0),\n ),\n )\n if (!plotIds.length) {\n setPlotFeatures([])\n setPlotsLoading(false)\n return\n }\n let cancelled = false\n async function loadPlots() {\n setPlotsLoading(true)\n try {\n const call = await apiCall<PlotsResponse>(\n `/api/eudr/plots?ids=${encodeURIComponent(plotIds.join(','))}&pageSize=100`,\n {\n headers: {\n 'x-om-forbidden-redirect': '0',\n 'x-om-unauthorized-redirect': '0',\n },\n },\n { fallback: { items: [] } },\n )\n if (!call.ok) {\n if (!cancelled) setPlotFeatures([])\n return\n }\n const features = (Array.isArray(call.result?.items) ? call.result.items : [])\n .map((plot) => plot.geometry)\n .filter((geometry) => geometry !== null && geometry !== undefined)\n if (!cancelled) setPlotFeatures(features)\n } catch {\n if (!cancelled) setPlotFeatures([])\n } finally {\n if (!cancelled) setPlotsLoading(false)\n }\n }\n loadPlots()\n return () => {\n cancelled = true\n }\n }, [submissionRows])\n\n const refreshRecord = React.useCallback(() => {\n setReloadToken((currentToken) => currentToken + 1)\n }, [])\n\n const fields = React.useMemo<CrudField[]>(() => [\n {\n id: 'title',\n label: translate('eudr.statements.form.title'),\n type: 'text',\n required: true,\n },\n {\n id: 'commodity',\n layout: 'half',\n label: translate('eudr.statements.form.commodity'),\n type: 'select',\n required: true,\n options: commodityOptions(translate),\n },\n {\n id: 'activityType',\n layout: 'half',\n label: translate('eudr.statements.form.activityType'),\n type: 'select',\n options: activityTypeOptions(translate),\n },\n {\n id: 'actorRole',\n layout: 'half',\n label: translate('eudr.statements.form.actorRole'),\n type: 'select',\n options: actorRoleOptions(translate),\n },\n {\n id: 'referenceNumber',\n label: translate('eudr.statements.form.referenceNumber'),\n type: 'text',\n },\n {\n id: 'verificationNumber',\n label: translate('eudr.statements.form.verificationNumber'),\n type: 'text',\n },\n {\n id: 'quantityKg',\n layout: 'half',\n label: translate('eudr.statements.form.quantityKg'),\n type: 'text',\n },\n {\n id: 'supplementaryUnit',\n layout: 'half',\n label: translate('eudr.statements.form.supplementaryUnit'),\n type: 'text',\n },\n {\n id: 'supplementaryQuantity',\n layout: 'half',\n label: translate('eudr.statements.form.supplementaryQuantity'),\n type: 'text',\n },\n {\n id: 'orderId',\n label: translate('eudr.statements.form.order'),\n type: 'custom',\n component: ({ id, value, setValue, setFormValue }) => (\n <OrderSelectField\n id={id}\n value={typeof value === 'string' ? value : null}\n onChange={(nextValue) => setValue(nextValue ?? '')}\n onSnapshot={(snapshot) => setFormValue?.('orderSnapshot', snapshot)}\n placeholder={translate('eudr.statements.form.orderPlaceholder')}\n emptyLabel={translate('eudr.common.empty')}\n loadError={translate('eudr.statements.form.orderLoadError')}\n />\n ),\n },\n {\n id: 'referencedStatements',\n label: translate('eudr.statements.form.referencedStatements'),\n type: 'custom',\n component: ({ id, value, setValue, disabled }) => (\n <ReferencedStatementsField\n id={id}\n value={value}\n onChange={(nextValue) => setValue(nextValue)}\n disabled={disabled}\n />\n ),\n },\n {\n id: 'notes',\n label: translate('eudr.statements.form.notes'),\n type: 'textarea',\n },\n ], [translate])\n\n const groups = React.useMemo<CrudFormGroup[]>(() => [\n {\n id: 'details',\n title: translate('eudr.statements.form.details'),\n column: 1,\n fields: [\n 'title',\n 'commodity',\n 'activityType',\n 'actorRole',\n ],\n },\n {\n id: 'quantities',\n title: translate('eudr.statements.form.quantities'),\n column: 1,\n fields: [\n 'quantityKg',\n 'supplementaryUnit',\n 'supplementaryQuantity',\n ],\n },\n {\n id: 'referenced',\n title: translate('eudr.statements.form.referencedStatements'),\n column: 1,\n fields: [\n 'referencedStatements',\n ],\n },\n {\n id: 'registration',\n title: translate('eudr.statements.form.registration'),\n column: 2,\n fields: [\n 'referenceNumber',\n 'verificationNumber',\n ],\n },\n {\n id: 'order',\n title: translate('eudr.statements.form.order'),\n column: 2,\n fields: [\n 'orderId',\n ],\n },\n {\n id: 'notes',\n title: translate('eudr.common.notes'),\n column: 2,\n fields: [\n 'notes',\n ],\n },\n ], [translate])\n\n const submissionColumns = React.useMemo<ColumnDef<LinkedSubmissionRow>[]>(() => [\n {\n accessorKey: 'supplierEntityId',\n header: translate('eudr.statements.detail.columns.supplier'),\n cell: ({ row }) => supplierLabel(row.original, translate('eudr.common.recordUnavailable')),\n },\n {\n accessorKey: 'status',\n header: translate('eudr.statements.detail.columns.status'),\n cell: ({ row }) => (\n <StatusBadge variant={statusBadgeVariant(row.original.status)} dot>\n {translate(`eudr.submissionStatus.${row.original.status}`)}\n </StatusBadge>\n ),\n },\n {\n accessorKey: 'completenessScore',\n header: translate('eudr.statements.detail.columns.completeness'),\n cell: ({ row }) => `${row.original.completenessScore}%`,\n },\n ], [translate])\n\n const initialValues = React.useMemo<StatementFormValues | null>(() => {\n if (!record) return null\n return {\n id: record.id,\n title: record.title,\n commodity: record.commodity,\n referenceNumber: record.referenceNumber ?? '',\n verificationNumber: record.verificationNumber ?? '',\n activityType: record.activityType ?? '',\n actorRole: record.actorRole ?? '',\n referencedStatements: Array.isArray(record.referencedStatements) ? record.referencedStatements : [],\n quantityKg: formatQuantityKg(record.quantityKg),\n supplementaryUnit: record.supplementaryUnit ?? '',\n supplementaryQuantity: formatOptionalNumber(record.supplementaryQuantity),\n orderId: record.orderId ?? '',\n orderSnapshot: record.orderSnapshot,\n notes: record.notes ?? '',\n updatedAt: record.updatedAt,\n }\n }, [record])\n\n const handleExport = React.useCallback(async (format: 'json' | 'geojson') => {\n if (!statementId) return\n setExportingFormat(format)\n try {\n const suffix = format === 'geojson' ? '?format=geojson' : ''\n const call = await apiCall<unknown>(`/api/eudr/statements/${encodeURIComponent(statementId)}/export${suffix}`)\n if (!call.ok) throw new Error('[internal] eudr statement export failed')\n const blob = new Blob([JSON.stringify(call.result ?? {}, null, 2)], {\n type: format === 'geojson' ? 'application/geo+json' : 'application/json',\n })\n const objectUrl = URL.createObjectURL(blob)\n const link = document.createElement('a')\n link.href = objectUrl\n link.download = format === 'geojson' ? `eudr-dds-${statementId}.geojson` : `eudr-dds-${statementId}.json`\n document.body.appendChild(link)\n link.click()\n link.remove()\n URL.revokeObjectURL(objectUrl)\n } catch {\n flash(translate('eudr.statements.detail.exportError'), 'error')\n } finally {\n setExportingFormat(null)\n }\n }, [statementId, translate])\n\n if (loading) {\n return (\n <Page>\n <PageBody>\n <LoadingMessage label={translate('eudr.statements.form.loading')} />\n </PageBody>\n </Page>\n )\n }\n\n if (notFound) {\n return (\n <Page>\n <PageBody>\n <RecordNotFoundState\n label={translate('eudr.statements.form.notFound')}\n backHref=\"/backend/eudr/statements\"\n backLabel={translate('eudr.statements.form.backToList')}\n />\n </PageBody>\n </Page>\n )\n }\n\n if (error || !record || !initialValues) {\n return (\n <Page>\n <PageBody>\n <ErrorMessage label={error ?? translate('eudr.statements.form.loadError')} />\n </PageBody>\n </Page>\n )\n }\n\n return (\n <Page>\n <PageBody>\n <StatementLifecycleBar\n statement={{\n id: record.id,\n status: record.status,\n referenceNumber: record.referenceNumber,\n verificationNumber: record.verificationNumber,\n referenceIssuedAt: record.referenceIssuedAt,\n submittedAt: record.submittedAt,\n updatedAt: record.updatedAt,\n }}\n speciesMissing={speciesMissing}\n onChanged={refreshRecord}\n />\n\n <StatementReadinessChecklist\n statementId={record.id}\n status={record.status}\n updatedAt={record.updatedAt}\n />\n\n <CrudForm<StatementFormValues>\n title={translate('eudr.statements.edit.title')}\n backHref=\"/backend/eudr/statements\"\n cancelHref=\"/backend/eudr/statements\"\n deleteRedirect=\"/backend/eudr/statements\"\n deleteVisible={canDeleteStatement(record.status)}\n submitLabel={translate('eudr.statements.form.submitUpdate')}\n fields={fields}\n groups={groups}\n initialValues={initialValues}\n extraActions={(\n <Button\n type=\"button\"\n variant=\"outline\"\n onClick={() => router.push(\n `/backend/eudr/statements/create?duplicateFrom=${encodeURIComponent(record.id)}`,\n )}\n >\n <Copy className=\"mr-2 h-4 w-4\" aria-hidden />\n {translate('eudr.statements.duplicateAction')}\n </Button>\n )}\n onSubmit={async (values) => {\n const title = optionalText(values.title)\n if (!title) {\n const message = translate('eudr.statements.form.titleRequired')\n throw createCrudFormError(message, { title: message })\n }\n const commodity = optionalText(values.commodity)\n if (!commodity) {\n const message = translate('eudr.statements.form.commodityRequired')\n throw createCrudFormError(message, { commodity: message })\n }\n await updateCrud('eudr/statements', {\n id: record.id,\n title,\n commodity,\n referenceNumber: optionalText(values.referenceNumber),\n verificationNumber: optionalText(values.verificationNumber),\n activityType: optionalText(values.activityType),\n actorRole: optionalText(values.actorRole),\n referencedStatements: normalizeReferencedStatements(values.referencedStatements),\n quantityKg: optionalNumber(values.quantityKg, translate),\n supplementaryUnit: optionalText(values.supplementaryUnit),\n supplementaryQuantity: optionalSupplementaryNumber(values.supplementaryQuantity, translate),\n orderId: optionalText(values.orderId),\n orderSnapshot: isOrderSnapshot(values.orderSnapshot) ? values.orderSnapshot : null,\n notes: optionalText(values.notes),\n }, {\n errorMessage: translate('eudr.statements.form.updateError'),\n }).catch((err) => {\n throw translateEudrCrudError(err, translate)\n })\n flash(translate('eudr.statements.form.updateSuccess'), 'success')\n router.push('/backend/eudr/statements')\n }}\n onDelete={async () => {\n await deleteCrud('eudr/statements', record.id, {\n errorMessage: translate('eudr.statements.form.deleteError'),\n }).catch((err) => {\n throw translateEudrCrudError(err, translate)\n })\n }}\n />\n\n <StatementRiskSection\n statementId={record.id}\n latestRisk={record.latestRisk}\n />\n\n <section className=\"space-y-3\">\n <h2 className=\"text-lg font-semibold\">{translate('eudr.statements.detail.submissions')}</h2>\n <DataTable<LinkedSubmissionRow>\n title={translate('eudr.statements.detail.submissionsTableTitle')}\n columns={submissionColumns}\n data={submissionRows}\n isLoading={submissionsLoading}\n error={submissionsError}\n emptyState={(\n <EmptyState\n size=\"sm\"\n variant=\"subtle\"\n title={translate('eudr.statements.detail.submissionsEmpty')}\n description={translate('eudr.statements.detail.submissionsEmptyHint')}\n actions={(\n <Button asChild type=\"button\" variant=\"outline\">\n <Link href={`/backend/eudr/evidence-submissions/create?statementId=${encodeURIComponent(record.id)}`}>\n {translate('eudr.statements.detail.createSubmission')}\n </Link>\n </Button>\n )}\n />\n )}\n perspective={{ tableId: 'eudr.statements.detail.submissions' }}\n disableRowClick\n />\n </section>\n\n {plotFeatures.length > 0 ? (\n <section className=\"space-y-3\">\n <div className=\"flex items-center justify-between gap-3\">\n <h2 className=\"text-lg font-semibold\">{translate('eudr.statements.detail.plotMap')}</h2>\n {plotsLoading ? (\n <span className=\"text-sm text-muted-foreground\">{translate('eudr.statements.detail.plotMapLoading')}</span>\n ) : null}\n </div>\n <PlotMapPreview features={plotFeatures} />\n </section>\n ) : null}\n\n <section className=\"space-y-3 rounded-lg border border-border bg-card p-4\">\n <h2 className=\"text-lg font-semibold\">{translate('eudr.statements.detail.exports')}</h2>\n <div className=\"flex flex-wrap items-center gap-2\">\n <Button\n type=\"button\"\n variant=\"outline\"\n onClick={() => void handleExport('json')}\n disabled={exportingFormat !== null}\n >\n <Download className=\"mr-2 h-4 w-4\" aria-hidden />\n {translate('eudr.statements.detail.export')}\n </Button>\n <Button\n type=\"button\"\n variant=\"outline\"\n onClick={() => void handleExport('geojson')}\n disabled={exportingFormat !== null}\n >\n <Download className=\"mr-2 h-4 w-4\" aria-hidden />\n {translate('eudr.statements.detail.exportGeoJson')}\n </Button>\n </div>\n </section>\n </PageBody>\n </Page>\n )\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -7,7 +7,9 @@ const metadata = {
7
7
  pageGroupKey: "eudr.nav.group",
8
8
  navHidden: true,
9
9
  breadcrumb: [
10
- { label: "Statements", labelKey: "eudr.nav.statements", href: "/backend/eudr/statements" }
10
+ { label: "EUDR", labelKey: "eudr.nav.module", href: "/backend/eudr" },
11
+ { label: "Statements", labelKey: "eudr.nav.statements", href: "/backend/eudr/statements" },
12
+ { label: "Edit statement", labelKey: "eudr.statements.edit.title" }
11
13
  ]
12
14
  };
13
15
  export {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../src/modules/eudr/backend/eudr/statements/%5Bid%5D/page.meta.ts"],
4
- "sourcesContent": ["export const metadata = {\n requireAuth: true,\n requireFeatures: ['eudr.statements.manage'],\n pageTitle: 'Edit statement',\n pageTitleKey: 'eudr.statements.edit.title',\n pageGroup: 'Compliance',\n pageGroupKey: 'eudr.nav.group',\n navHidden: true,\n breadcrumb: [\n { label: 'Statements', labelKey: 'eudr.nav.statements', href: '/backend/eudr/statements' },\n ],\n}\n"],
5
- "mappings": "AAAO,MAAM,WAAW;AAAA,EACtB,aAAa;AAAA,EACb,iBAAiB,CAAC,wBAAwB;AAAA,EAC1C,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,YAAY;AAAA,IACV,EAAE,OAAO,cAAc,UAAU,uBAAuB,MAAM,2BAA2B;AAAA,EAC3F;AACF;",
4
+ "sourcesContent": ["export const metadata = {\n requireAuth: true,\n requireFeatures: ['eudr.statements.manage'],\n pageTitle: 'Edit statement',\n pageTitleKey: 'eudr.statements.edit.title',\n pageGroup: 'Compliance',\n pageGroupKey: 'eudr.nav.group',\n navHidden: true,\n breadcrumb: [\n { label: 'EUDR', labelKey: 'eudr.nav.module', href: '/backend/eudr' },\n { label: 'Statements', labelKey: 'eudr.nav.statements', href: '/backend/eudr/statements' },\n { label: 'Edit statement', labelKey: 'eudr.statements.edit.title' },\n ],\n}\n"],
5
+ "mappings": "AAAO,MAAM,WAAW;AAAA,EACtB,aAAa;AAAA,EACb,iBAAiB,CAAC,wBAAwB;AAAA,EAC1C,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,YAAY;AAAA,IACV,EAAE,OAAO,QAAQ,UAAU,mBAAmB,MAAM,gBAAgB;AAAA,IACpE,EAAE,OAAO,cAAc,UAAU,uBAAuB,MAAM,2BAA2B;AAAA,IACzF,EAAE,OAAO,kBAAkB,UAAU,6BAA6B;AAAA,EACpE;AACF;",
6
6
  "names": []
7
7
  }
@@ -7,6 +7,7 @@ const metadata = {
7
7
  pageGroupKey: "eudr.nav.group",
8
8
  navHidden: true,
9
9
  breadcrumb: [
10
+ { label: "EUDR", labelKey: "eudr.nav.module", href: "/backend/eudr" },
10
11
  { label: "Statements", labelKey: "eudr.nav.statements", href: "/backend/eudr/statements" },
11
12
  { label: "Create", labelKey: "eudr.statements.create.title" }
12
13
  ]
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../src/modules/eudr/backend/eudr/statements/create/page.meta.ts"],
4
- "sourcesContent": ["export const metadata = {\n requireAuth: true,\n requireFeatures: ['eudr.statements.manage'],\n pageTitle: 'Create statement',\n pageTitleKey: 'eudr.statements.create.title',\n pageGroup: 'Compliance',\n pageGroupKey: 'eudr.nav.group',\n navHidden: true,\n breadcrumb: [\n { label: 'Statements', labelKey: 'eudr.nav.statements', href: '/backend/eudr/statements' },\n { label: 'Create', labelKey: 'eudr.statements.create.title' },\n ],\n}\n"],
5
- "mappings": "AAAO,MAAM,WAAW;AAAA,EACtB,aAAa;AAAA,EACb,iBAAiB,CAAC,wBAAwB;AAAA,EAC1C,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,YAAY;AAAA,IACV,EAAE,OAAO,cAAc,UAAU,uBAAuB,MAAM,2BAA2B;AAAA,IACzF,EAAE,OAAO,UAAU,UAAU,+BAA+B;AAAA,EAC9D;AACF;",
4
+ "sourcesContent": ["export const metadata = {\n requireAuth: true,\n requireFeatures: ['eudr.statements.manage'],\n pageTitle: 'Create statement',\n pageTitleKey: 'eudr.statements.create.title',\n pageGroup: 'Compliance',\n pageGroupKey: 'eudr.nav.group',\n navHidden: true,\n breadcrumb: [\n { label: 'EUDR', labelKey: 'eudr.nav.module', href: '/backend/eudr' },\n { label: 'Statements', labelKey: 'eudr.nav.statements', href: '/backend/eudr/statements' },\n { label: 'Create', labelKey: 'eudr.statements.create.title' },\n ],\n}\n"],
5
+ "mappings": "AAAO,MAAM,WAAW;AAAA,EACtB,aAAa;AAAA,EACb,iBAAiB,CAAC,wBAAwB;AAAA,EAC1C,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,YAAY;AAAA,IACV,EAAE,OAAO,QAAQ,UAAU,mBAAmB,MAAM,gBAAgB;AAAA,IACpE,EAAE,OAAO,cAAc,UAAU,uBAAuB,MAAM,2BAA2B;AAAA,IACzF,EAAE,OAAO,UAAU,UAAU,+BAA+B;AAAA,EAC9D;AACF;",
6
6
  "names": []
7
7
  }