@open-mercato/core 0.6.8-develop.7099.1.7ba2771d06 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +1 -1
- package/dist/helpers/integration/api.js +1 -13
- package/dist/helpers/integration/api.js.map +2 -2
- package/dist/helpers/integration/communicationChannelsFixtures.js +0 -19
- package/dist/helpers/integration/communicationChannelsFixtures.js.map +2 -2
- package/dist/modules/api_keys/api/keys/route.js +1 -1
- package/dist/modules/api_keys/api/keys/route.js.map +2 -2
- package/dist/modules/api_keys/backend/api-keys/page.js +1 -3
- package/dist/modules/api_keys/backend/api-keys/page.js.map +2 -2
- package/dist/modules/attachments/api/route.js +2 -2
- package/dist/modules/attachments/api/route.js.map +2 -2
- package/dist/modules/attachments/components/AttachmentLibrary.js +0 -2
- package/dist/modules/attachments/components/AttachmentLibrary.js.map +2 -2
- package/dist/modules/attachments/di.js +1 -11
- package/dist/modules/attachments/di.js.map +2 -2
- package/dist/modules/attachments/index.js.map +1 -1
- package/dist/modules/attachments/lib/scoped-upload-service.js +2 -15
- package/dist/modules/attachments/lib/scoped-upload-service.js.map +2 -2
- package/dist/modules/attachments/lib/upload-limits.js +2 -6
- package/dist/modules/attachments/lib/upload-limits.js.map +2 -2
- package/dist/modules/audit_logs/backend/audit-logs/page.js +0 -6
- package/dist/modules/audit_logs/backend/audit-logs/page.js.map +2 -2
- package/dist/modules/audit_logs/lib/display-helpers.js +11 -19
- package/dist/modules/audit_logs/lib/display-helpers.js.map +2 -2
- package/dist/modules/audit_logs/services/actionLogService.js +12 -57
- package/dist/modules/audit_logs/services/actionLogService.js.map +3 -3
- package/dist/modules/auth/acl.js +5 -30
- package/dist/modules/auth/acl.js.map +2 -2
- package/dist/modules/auth/api/feature-check.js +2 -8
- package/dist/modules/auth/api/feature-check.js.map +2 -2
- package/dist/modules/auth/api/login.js +20 -4
- package/dist/modules/auth/api/login.js.map +2 -2
- package/dist/modules/auth/api/roles/acl/route.js +33 -28
- package/dist/modules/auth/api/roles/acl/route.js.map +2 -2
- package/dist/modules/auth/api/routeError.js +11 -0
- package/dist/modules/auth/api/routeError.js.map +7 -0
- package/dist/modules/auth/api/session/refresh.js +1 -25
- package/dist/modules/auth/api/session/refresh.js.map +2 -2
- package/dist/modules/auth/api/users/acl/route.js +73 -102
- package/dist/modules/auth/api/users/acl/route.js.map +2 -2
- package/dist/modules/auth/backend/roles/[id]/edit/page.meta.js +1 -5
- package/dist/modules/auth/backend/roles/[id]/edit/page.meta.js.map +2 -2
- package/dist/modules/auth/backend/roles/page.js +1 -3
- package/dist/modules/auth/backend/roles/page.js.map +2 -2
- package/dist/modules/auth/backend/users/[id]/edit/page.meta.js +1 -5
- package/dist/modules/auth/backend/users/[id]/edit/page.meta.js.map +2 -2
- package/dist/modules/auth/backend/users/page.js +1 -2
- package/dist/modules/auth/backend/users/page.js.map +2 -2
- package/dist/modules/auth/components/AclEditor.js +30 -39
- package/dist/modules/auth/components/AclEditor.js.map +2 -2
- package/dist/modules/auth/data/entities.js.map +2 -2
- package/dist/modules/auth/data/validators.js +1 -5
- package/dist/modules/auth/data/validators.js.map +2 -2
- package/dist/modules/auth/di.js +9 -35
- package/dist/modules/auth/di.js.map +2 -2
- package/dist/modules/auth/frontend/reset/[token]/page.js +0 -46
- package/dist/modules/auth/frontend/reset/[token]/page.js.map +2 -2
- package/dist/modules/auth/lib/grantChecks.js.map +2 -2
- package/dist/modules/auth/services/authService.js +2 -16
- package/dist/modules/auth/services/authService.js.map +2 -2
- package/dist/modules/auth/services/rbacService.js +24 -67
- package/dist/modules/auth/services/rbacService.js.map +3 -3
- package/dist/modules/business_rules/backend/logs/page.js +1 -3
- package/dist/modules/business_rules/backend/logs/page.js.map +2 -2
- package/dist/modules/business_rules/backend/rules/[id]/page.meta.js +6 -1
- package/dist/modules/business_rules/backend/rules/[id]/page.meta.js.map +2 -2
- package/dist/modules/business_rules/backend/rules/create/page.meta.js +5 -1
- package/dist/modules/business_rules/backend/rules/create/page.meta.js.map +2 -2
- package/dist/modules/business_rules/backend/rules/page.js +1 -3
- package/dist/modules/business_rules/backend/rules/page.js.map +2 -2
- package/dist/modules/business_rules/backend/sets/[id]/page.meta.js +6 -1
- package/dist/modules/business_rules/backend/sets/[id]/page.meta.js.map +2 -2
- package/dist/modules/business_rules/backend/sets/create/page.meta.js +5 -1
- package/dist/modules/business_rules/backend/sets/create/page.meta.js.map +2 -2
- package/dist/modules/business_rules/backend/sets/page.js +1 -3
- package/dist/modules/business_rules/backend/sets/page.js.map +2 -2
- package/dist/modules/business_rules/lib/expression-evaluator.js +9 -9
- package/dist/modules/business_rules/lib/expression-evaluator.js.map +2 -2
- package/dist/modules/business_rules/lib/rule-evaluator.js +9 -10
- package/dist/modules/business_rules/lib/rule-evaluator.js.map +2 -2
- package/dist/modules/catalog/ai-agents.js +1 -1
- package/dist/modules/catalog/ai-agents.js.map +1 -1
- package/dist/modules/catalog/ai-tools/merchandising-pack.js +2 -2
- package/dist/modules/catalog/ai-tools/merchandising-pack.js.map +2 -2
- package/dist/modules/catalog/backend/catalog/products/MerchandisingAssistantSheet.js +2 -5
- package/dist/modules/catalog/backend/catalog/products/MerchandisingAssistantSheet.js.map +2 -2
- package/dist/modules/catalog/components/categories/CategoriesDataTable.js +0 -2
- package/dist/modules/catalog/components/categories/CategoriesDataTable.js.map +2 -2
- package/dist/modules/catalog/components/products/ProductsDataTable.js +1 -7
- package/dist/modules/catalog/components/products/ProductsDataTable.js.map +2 -2
- package/dist/modules/catalog/widgets/injection/merchandising-assistant-trigger/widget.client.js +0 -2
- package/dist/modules/catalog/widgets/injection/merchandising-assistant-trigger/widget.client.js.map +2 -2
- package/dist/modules/communication_channels/api/post/channels/[id]/test-send/route.js +1 -9
- package/dist/modules/communication_channels/api/post/channels/[id]/test-send/route.js.map +2 -2
- package/dist/modules/communication_channels/api/post/test-seed/route.js +10 -95
- package/dist/modules/communication_channels/api/post/test-seed/route.js.map +2 -2
- package/dist/modules/communication_channels/backend/communication_channels/channels/page.js +0 -3
- package/dist/modules/communication_channels/backend/communication_channels/channels/page.js.map +2 -2
- package/dist/modules/communication_channels/commands/ingest-inbound-message.js +1 -14
- package/dist/modules/communication_channels/commands/ingest-inbound-message.js.map +2 -2
- package/dist/modules/communication_channels/di.js +1 -7
- package/dist/modules/communication_channels/di.js.map +2 -2
- package/dist/modules/communication_channels/lib/email-capabilities.js +1 -4
- package/dist/modules/communication_channels/lib/email-capabilities.js.map +2 -2
- package/dist/modules/communication_channels/lib/test-seed.js +2 -41
- package/dist/modules/communication_channels/lib/test-seed.js.map +2 -2
- package/dist/modules/configs/lib/system-status.js +0 -9
- package/dist/modules/configs/lib/system-status.js.map +2 -2
- package/dist/modules/currencies/backend/currencies/page.js +1 -3
- package/dist/modules/currencies/backend/currencies/page.js.map +2 -2
- package/dist/modules/currencies/backend/exchange-rates/page.js +1 -3
- package/dist/modules/currencies/backend/exchange-rates/page.js.map +2 -2
- package/dist/modules/customer_accounts/api/admin/domain-mappings.js +0 -9
- package/dist/modules/customer_accounts/api/admin/domain-mappings.js.map +2 -2
- package/dist/modules/customer_accounts/backend/customer_accounts/roles/page.js +1 -3
- package/dist/modules/customer_accounts/backend/customer_accounts/roles/page.js.map +2 -2
- package/dist/modules/customer_accounts/backend/customer_accounts/settings/CustomerAccountsSettingsPageClient.js +84 -0
- package/dist/modules/customer_accounts/backend/customer_accounts/settings/CustomerAccountsSettingsPageClient.js.map +7 -0
- package/dist/modules/customer_accounts/backend/customer_accounts/settings/page.js +7 -81
- package/dist/modules/customer_accounts/backend/customer_accounts/settings/page.js.map +2 -2
- package/dist/modules/customer_accounts/backend/customer_accounts/users/PortalUsersPageClient.js +523 -0
- package/dist/modules/customer_accounts/backend/customer_accounts/users/PortalUsersPageClient.js.map +7 -0
- package/dist/modules/customer_accounts/backend/customer_accounts/users/[id]/PortalUserDetailPageClient.js +731 -0
- package/dist/modules/customer_accounts/backend/customer_accounts/users/[id]/PortalUserDetailPageClient.js.map +7 -0
- package/dist/modules/customer_accounts/backend/customer_accounts/users/[id]/page.js +7 -727
- package/dist/modules/customer_accounts/backend/customer_accounts/users/[id]/page.js.map +2 -2
- package/dist/modules/customer_accounts/backend/customer_accounts/users/page.js +7 -521
- package/dist/modules/customer_accounts/backend/customer_accounts/users/page.js.map +2 -2
- package/dist/modules/customer_accounts/extension-points.js +1 -1
- package/dist/modules/customer_accounts/extension-points.js.map +2 -2
- package/dist/modules/customer_accounts/lib/portalUrl.js +69 -0
- package/dist/modules/customer_accounts/lib/portalUrl.js.map +7 -0
- package/dist/modules/customer_accounts/services/domainMappingService.js +0 -10
- package/dist/modules/customer_accounts/services/domainMappingService.js.map +2 -2
- package/dist/modules/customers/ai-tools/companies-pack.js +1 -4
- package/dist/modules/customers/ai-tools/companies-pack.js.map +2 -2
- package/dist/modules/customers/ai-tools/deal-analyzer-pack.js +2 -13
- package/dist/modules/customers/ai-tools/deal-analyzer-pack.js.map +2 -2
- package/dist/modules/customers/ai-tools/deals-pack.js +6 -52
- package/dist/modules/customers/ai-tools/deals-pack.js.map +2 -2
- package/dist/modules/customers/ai-tools/people-pack.js +1 -4
- package/dist/modules/customers/ai-tools/people-pack.js.map +2 -2
- package/dist/modules/customers/api/activities/route.js +6 -48
- package/dist/modules/customers/api/activities/route.js.map +2 -2
- package/dist/modules/customers/api/companies/[id]/people/route.js +64 -20
- package/dist/modules/customers/api/companies/[id]/people/route.js.map +2 -2
- package/dist/modules/customers/api/companies/[id]/route.js +94 -17
- package/dist/modules/customers/api/companies/[id]/route.js.map +2 -2
- package/dist/modules/customers/api/dashboard/widgets/customer-todos/route.js +5 -8
- package/dist/modules/customers/api/dashboard/widgets/customer-todos/route.js.map +2 -2
- package/dist/modules/customers/api/deals/[id]/companies/route.js +1 -1
- package/dist/modules/customers/api/deals/[id]/companies/route.js.map +2 -2
- package/dist/modules/customers/api/deals/[id]/people/route.js +1 -1
- package/dist/modules/customers/api/deals/[id]/people/route.js.map +2 -2
- package/dist/modules/customers/api/deals/[id]/route.js +25 -8
- package/dist/modules/customers/api/deals/[id]/route.js.map +2 -2
- package/dist/modules/customers/api/deals/[id]/stats/route.js +22 -3
- package/dist/modules/customers/api/deals/[id]/stats/route.js.map +2 -2
- package/dist/modules/customers/api/deals/aggregate/route.js +4 -11
- package/dist/modules/customers/api/deals/aggregate/route.js.map +2 -2
- package/dist/modules/customers/api/deals/map/route.js +1 -2
- package/dist/modules/customers/api/deals/map/route.js.map +2 -2
- package/dist/modules/customers/api/deals/route.js +1 -38
- package/dist/modules/customers/api/deals/route.js.map +2 -2
- package/dist/modules/customers/api/entity-roles-factory.js +4 -4
- package/dist/modules/customers/api/entity-roles-factory.js.map +2 -2
- package/dist/modules/customers/api/interactions/route.js +1 -3
- package/dist/modules/customers/api/interactions/route.js.map +2 -2
- package/dist/modules/customers/api/interactions/tasks/route.js +4 -27
- package/dist/modules/customers/api/interactions/tasks/route.js.map +2 -2
- package/dist/modules/customers/api/people/[id]/companies/[linkId]/route.js +3 -4
- package/dist/modules/customers/api/people/[id]/companies/[linkId]/route.js.map +2 -2
- package/dist/modules/customers/api/people/[id]/companies/context.js +1 -1
- package/dist/modules/customers/api/people/[id]/companies/context.js.map +2 -2
- package/dist/modules/customers/api/people/[id]/companies/enriched/route.js +1 -1
- package/dist/modules/customers/api/people/[id]/companies/enriched/route.js.map +2 -2
- package/dist/modules/customers/api/people/[id]/route.js +10 -11
- package/dist/modules/customers/api/people/[id]/route.js.map +2 -2
- package/dist/modules/customers/api/people/check-phone/route.js +9 -51
- package/dist/modules/customers/api/people/check-phone/route.js.map +2 -2
- package/dist/modules/customers/api/todos/route.js +5 -30
- package/dist/modules/customers/api/todos/route.js.map +2 -2
- package/dist/modules/customers/backend/customers/companies/page.js +4 -6
- package/dist/modules/customers/backend/customers/companies/page.js.map +2 -2
- package/dist/modules/customers/backend/customers/deals/[id]/page.js +1 -6
- package/dist/modules/customers/backend/customers/deals/[id]/page.js.map +2 -2
- package/dist/modules/customers/backend/customers/deals/page.js +4 -7
- package/dist/modules/customers/backend/customers/deals/page.js.map +2 -2
- package/dist/modules/customers/backend/customers/deals/pipeline/components/Lane.js +13 -4
- package/dist/modules/customers/backend/customers/deals/pipeline/components/Lane.js.map +2 -2
- package/dist/modules/customers/backend/customers/deals/pipeline/components/StatusFilterPopover.js +14 -85
- package/dist/modules/customers/backend/customers/deals/pipeline/components/StatusFilterPopover.js.map +2 -2
- package/dist/modules/customers/backend/customers/people/page.js +4 -6
- package/dist/modules/customers/backend/customers/people/page.js.map +2 -2
- package/dist/modules/customers/backend/hooks/useEmailDuplicateCheck.js +3 -9
- package/dist/modules/customers/backend/hooks/useEmailDuplicateCheck.js.map +2 -2
- package/dist/modules/customers/commands/deals.js +34 -21
- package/dist/modules/customers/commands/deals.js.map +2 -2
- package/dist/modules/customers/commands/interactions.js.map +1 -1
- package/dist/modules/customers/commands/personCompanyLinks.js +2 -131
- package/dist/modules/customers/commands/personCompanyLinks.js.map +2 -2
- package/dist/modules/customers/components/CustomerTodosTable.js +0 -1
- package/dist/modules/customers/components/CustomerTodosTable.js.map +2 -2
- package/dist/modules/customers/components/DealsKpiStrip.js +6 -7
- package/dist/modules/customers/components/DealsKpiStrip.js.map +2 -2
- package/dist/modules/customers/components/calendar/AgendaList.js +2 -2
- package/dist/modules/customers/components/calendar/AgendaList.js.map +2 -2
- package/dist/modules/customers/components/calendar/CalendarEventEditor.js +1 -1
- package/dist/modules/customers/components/calendar/CalendarEventEditor.js.map +2 -2
- package/dist/modules/customers/components/calendar/CalendarScreen.js +1 -1
- package/dist/modules/customers/components/calendar/CalendarScreen.js.map +2 -2
- package/dist/modules/customers/components/calendar/CalendarSettingsModal.js +1 -1
- package/dist/modules/customers/components/calendar/CalendarSettingsModal.js.map +2 -2
- package/dist/modules/customers/components/calendar/EventBlock.js +1 -1
- package/dist/modules/customers/components/calendar/EventBlock.js.map +2 -2
- package/dist/modules/customers/components/calendar/EventPeekPopover.js +2 -3
- package/dist/modules/customers/components/calendar/EventPeekPopover.js.map +2 -2
- package/dist/modules/customers/components/calendar/editor/PeopleField.js +5 -40
- package/dist/modules/customers/components/calendar/editor/PeopleField.js.map +2 -2
- package/dist/modules/customers/components/calendar/editor/hooks.js +1 -2
- package/dist/modules/customers/components/calendar/editor/hooks.js.map +2 -2
- package/dist/modules/customers/components/calendar/types.js +1 -1
- package/dist/modules/customers/components/calendar/types.js.map +2 -2
- package/dist/modules/customers/components/detail/AssignRoleDialog.js +33 -28
- package/dist/modules/customers/components/detail/AssignRoleDialog.js.map +2 -2
- package/dist/modules/customers/components/detail/CompanyKpiBar.js +4 -5
- package/dist/modules/customers/components/detail/CompanyKpiBar.js.map +2 -2
- package/dist/modules/customers/components/detail/CompanyPeopleSection.js +1 -3
- package/dist/modules/customers/components/detail/CompanyPeopleSection.js.map +2 -2
- package/dist/modules/customers/components/detail/DealForm.js +7 -19
- package/dist/modules/customers/components/detail/DealForm.js.map +2 -2
- package/dist/modules/customers/components/detail/DealsSection.js +5 -6
- package/dist/modules/customers/components/detail/DealsSection.js.map +2 -2
- package/dist/modules/customers/components/detail/EntityTagsDialog.js +11 -35
- package/dist/modules/customers/components/detail/EntityTagsDialog.js.map +2 -2
- package/dist/modules/customers/components/detail/PersonCompaniesSection.js +1 -3
- package/dist/modules/customers/components/detail/PersonCompaniesSection.js.map +2 -2
- package/dist/modules/customers/components/detail/hooks/usePersonTasks.js +13 -19
- package/dist/modules/customers/components/detail/hooks/usePersonTasks.js.map +2 -2
- package/dist/modules/customers/components/detail/schedule/ParticipantsField.js +4 -4
- package/dist/modules/customers/components/detail/schedule/ParticipantsField.js.map +2 -2
- package/dist/modules/customers/components/detail/schedule/useScheduleFormState.js +3 -3
- package/dist/modules/customers/components/detail/schedule/useScheduleFormState.js.map +2 -2
- package/dist/modules/customers/components/detail/utils.js +5 -5
- package/dist/modules/customers/components/detail/utils.js.map +2 -2
- package/dist/modules/customers/data/entities.js.map +1 -1
- package/dist/modules/customers/data/validators.js +3 -32
- package/dist/modules/customers/data/validators.js.map +2 -2
- package/dist/modules/customers/events.js +0 -5
- package/dist/modules/customers/events.js.map +2 -2
- package/dist/modules/customers/lib/calendar/conflicts.js +2 -8
- package/dist/modules/customers/lib/calendar/conflicts.js.map +2 -2
- package/dist/modules/customers/lib/calendar/editorPayload.js +2 -3
- package/dist/modules/customers/lib/calendar/editorPayload.js.map +2 -2
- package/dist/modules/customers/lib/calendar/mapItem.js +3 -8
- package/dist/modules/customers/lib/calendar/mapItem.js.map +2 -2
- package/dist/modules/customers/lib/dealStatus.js +0 -30
- package/dist/modules/customers/lib/dealStatus.js.map +2 -2
- package/dist/modules/customers/lib/findPeopleByAddresses.js +0 -1
- package/dist/modules/customers/lib/findPeopleByAddresses.js.map +2 -2
- package/dist/modules/customers/lib/personCompanies.js +2 -100
- package/dist/modules/customers/lib/personCompanies.js.map +2 -2
- package/dist/modules/customers/lib/todoCompatibility.js +0 -12
- package/dist/modules/customers/lib/todoCompatibility.js.map +2 -2
- package/dist/modules/dashboards/lib/widgetScope.js +1 -6
- package/dist/modules/dashboards/lib/widgetScope.js.map +2 -2
- package/dist/modules/data_sync/backend/data-sync/page.js +1 -3
- package/dist/modules/data_sync/backend/data-sync/page.js.map +2 -2
- package/dist/modules/data_sync/lib/sync-engine.js +6 -72
- package/dist/modules/data_sync/lib/sync-engine.js.map +2 -2
- package/dist/modules/data_sync/workers/sync-export.js +1 -5
- package/dist/modules/data_sync/workers/sync-export.js.map +2 -2
- package/dist/modules/data_sync/workers/sync-import.js +1 -5
- package/dist/modules/data_sync/workers/sync-import.js.map +2 -2
- package/dist/modules/devices/api/admin/devices/[id]/route.js +32 -5
- package/dist/modules/devices/api/admin/devices/[id]/route.js.map +2 -2
- package/dist/modules/devices/api/admin/devices/route.js +1 -14
- package/dist/modules/devices/api/admin/devices/route.js.map +2 -2
- package/dist/modules/devices/api/deviceList.js +12 -99
- package/dist/modules/devices/api/deviceList.js.map +2 -2
- package/dist/modules/devices/api/openapi.js +1 -3
- package/dist/modules/devices/api/openapi.js.map +2 -2
- package/dist/modules/devices/api/route.js +1 -9
- package/dist/modules/devices/api/route.js.map +2 -2
- package/dist/modules/devices/backend/devices/[id]/page.js +8 -8
- package/dist/modules/devices/backend/devices/[id]/page.js.map +2 -2
- package/dist/modules/devices/backend/devices/page.js +13 -15
- package/dist/modules/devices/backend/devices/page.js.map +2 -2
- package/dist/modules/directory/backend/directory/organizations/page.js +1 -2
- package/dist/modules/directory/backend/directory/organizations/page.js.map +2 -2
- package/dist/modules/directory/backend/directory/tenants/page.js +1 -2
- package/dist/modules/directory/backend/directory/tenants/page.js.map +2 -2
- package/dist/modules/directory/di.js +0 -9
- package/dist/modules/directory/di.js.map +2 -2
- package/dist/modules/directory/utils/organizationScope.js.map +2 -2
- package/dist/modules/entities/api/records.js +2 -4
- package/dist/modules/entities/api/records.js.map +2 -2
- package/dist/modules/entities/backend/entities/user/[entityId]/records/page.js +1 -3
- package/dist/modules/entities/backend/entities/user/[entityId]/records/page.js.map +2 -2
- package/dist/modules/eudr/api/plots/route.js +1 -5
- package/dist/modules/eudr/api/plots/route.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/evidence-submissions/[id]/page.meta.js +3 -1
- package/dist/modules/eudr/backend/eudr/evidence-submissions/[id]/page.meta.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/evidence-submissions/create/page.meta.js +1 -0
- package/dist/modules/eudr/backend/eudr/evidence-submissions/create/page.meta.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/evidence-submissions/page.js +0 -3
- package/dist/modules/eudr/backend/eudr/evidence-submissions/page.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/evidence-submissions/page.meta.js +4 -1
- package/dist/modules/eudr/backend/eudr/evidence-submissions/page.meta.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/page.meta.js +2 -2
- package/dist/modules/eudr/backend/eudr/page.meta.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/plots/[id]/page.js +8 -2
- package/dist/modules/eudr/backend/eudr/plots/[id]/page.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/plots/[id]/page.meta.js +3 -1
- package/dist/modules/eudr/backend/eudr/plots/[id]/page.meta.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/plots/create/page.js +8 -2
- package/dist/modules/eudr/backend/eudr/plots/create/page.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/plots/create/page.meta.js +1 -0
- package/dist/modules/eudr/backend/eudr/plots/create/page.meta.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/plots/page.js +0 -3
- package/dist/modules/eudr/backend/eudr/plots/page.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/plots/page.meta.js +4 -1
- package/dist/modules/eudr/backend/eudr/plots/page.meta.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/product-mappings/[id]/page.meta.js +3 -1
- package/dist/modules/eudr/backend/eudr/product-mappings/[id]/page.meta.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/product-mappings/create/page.meta.js +1 -0
- package/dist/modules/eudr/backend/eudr/product-mappings/create/page.meta.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/product-mappings/page.js +0 -3
- package/dist/modules/eudr/backend/eudr/product-mappings/page.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/product-mappings/page.meta.js +4 -1
- package/dist/modules/eudr/backend/eudr/product-mappings/page.meta.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/risk-assessments/[id]/page.meta.js +3 -1
- package/dist/modules/eudr/backend/eudr/risk-assessments/[id]/page.meta.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/risk-assessments/create/page.meta.js +1 -0
- package/dist/modules/eudr/backend/eudr/risk-assessments/create/page.meta.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/risk-assessments/page.js +0 -3
- package/dist/modules/eudr/backend/eudr/risk-assessments/page.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/risk-assessments/page.meta.js +4 -1
- package/dist/modules/eudr/backend/eudr/risk-assessments/page.meta.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/statements/[id]/page.js +2 -0
- package/dist/modules/eudr/backend/eudr/statements/[id]/page.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/statements/[id]/page.meta.js +3 -1
- package/dist/modules/eudr/backend/eudr/statements/[id]/page.meta.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/statements/create/page.meta.js +1 -0
- package/dist/modules/eudr/backend/eudr/statements/create/page.meta.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/statements/page.js +30 -28
- package/dist/modules/eudr/backend/eudr/statements/page.js.map +2 -2
- package/dist/modules/eudr/backend/eudr/statements/page.meta.js +4 -1
- package/dist/modules/eudr/backend/eudr/statements/page.meta.js.map +2 -2
- package/dist/modules/eudr/commands/statements.js +8 -3
- package/dist/modules/eudr/commands/statements.js.map +2 -2
- package/dist/modules/eudr/components/crudErrorI18n.js +21 -1
- package/dist/modules/eudr/components/crudErrorI18n.js.map +2 -2
- package/dist/modules/eudr/components/formConfig.js +6 -2
- package/dist/modules/eudr/components/formConfig.js.map +2 -2
- package/dist/modules/eudr/data/validators.js +1 -4
- package/dist/modules/eudr/data/validators.js.map +2 -2
- package/dist/modules/eudr/lib/statement-lifecycle.js +9 -1
- package/dist/modules/eudr/lib/statement-lifecycle.js.map +2 -2
- package/dist/modules/feature_toggles/components/FeatureTogglesTable.js +0 -1
- package/dist/modules/feature_toggles/components/FeatureTogglesTable.js.map +2 -2
- package/dist/modules/feature_toggles/components/OverridesTable.js +0 -1
- package/dist/modules/feature_toggles/components/OverridesTable.js.map +2 -2
- package/dist/modules/feature_toggles/defaults.json +8 -0
- package/dist/modules/inbox_ops/backend/inbox-ops/log/page.js +0 -3
- package/dist/modules/inbox_ops/backend/inbox-ops/log/page.js.map +2 -2
- package/dist/modules/inbox_ops/backend/inbox-ops/page.js +0 -3
- package/dist/modules/inbox_ops/backend/inbox-ops/page.js.map +2 -2
- package/dist/modules/inbox_ops/lib/htmlToPlainText.js +12 -1
- package/dist/modules/inbox_ops/lib/htmlToPlainText.js.map +2 -2
- package/dist/modules/integrations/api/[id]/credentials/route.js +1 -6
- package/dist/modules/integrations/api/[id]/credentials/route.js.map +2 -2
- package/dist/modules/integrations/backend/integrations/[id]/page.js +29 -38
- package/dist/modules/integrations/backend/integrations/[id]/page.js.map +2 -2
- package/dist/modules/integrations/backend/integrations/bundle/[id]/page.js +9 -36
- package/dist/modules/integrations/backend/integrations/bundle/[id]/page.js.map +2 -2
- package/dist/modules/integrations/data/validators.js +3 -11
- package/dist/modules/integrations/data/validators.js.map +2 -2
- package/dist/modules/integrations/lib/credentials-masking.js +2 -6
- package/dist/modules/integrations/lib/credentials-masking.js.map +2 -2
- package/dist/modules/messages/api/[id]/route.js +1 -29
- package/dist/modules/messages/api/[id]/route.js.map +2 -2
- package/dist/modules/messages/api/openapi.js +2 -17
- package/dist/modules/messages/api/openapi.js.map +2 -2
- package/dist/modules/messages/api/route.js +2 -17
- package/dist/modules/messages/api/route.js.map +2 -2
- package/dist/modules/messages/components/MessagesInboxPageClient.js +14 -7
- package/dist/modules/messages/components/MessagesInboxPageClient.js.map +2 -2
- package/dist/modules/messages/components/inboxFilters.js +0 -15
- package/dist/modules/messages/components/inboxFilters.js.map +2 -2
- package/dist/modules/messages/components/message-detail/hooks/useMessageDetailsConversation.js +1 -11
- package/dist/modules/messages/components/message-detail/hooks/useMessageDetailsConversation.js.map +2 -2
- package/dist/modules/messages/components/message-detail/panels/MessageHeader.js +1 -3
- package/dist/modules/messages/components/message-detail/panels/MessageHeader.js.map +2 -2
- package/dist/modules/messages/components/message-detail/panels/thread-panel.js +1 -2
- package/dist/modules/messages/components/message-detail/panels/thread-panel.js.map +2 -2
- package/dist/modules/messages/components/messageListLabels.js +2 -14
- package/dist/modules/messages/components/messageListLabels.js.map +2 -2
- package/dist/modules/messages/data/validators.js +4 -18
- package/dist/modules/messages/data/validators.js.map +2 -2
- package/dist/modules/payment_gateways/api/webhook/[provider]/route.js +6 -4
- package/dist/modules/payment_gateways/api/webhook/[provider]/route.js.map +2 -2
- package/dist/modules/payment_gateways/backend/payment-gateways/page.js +1 -3
- package/dist/modules/payment_gateways/backend/payment-gateways/page.js.map +2 -2
- package/dist/modules/payment_gateways/lib/webhook-processor.js +0 -7
- package/dist/modules/payment_gateways/lib/webhook-processor.js.map +2 -2
- package/dist/modules/planner/backend/planner/availability-rulesets/page.js +0 -3
- package/dist/modules/planner/backend/planner/availability-rulesets/page.js.map +2 -2
- package/dist/modules/push_notifications/backend/push_notifications/page.js +1 -3
- package/dist/modules/push_notifications/backend/push_notifications/page.js.map +2 -2
- package/dist/modules/push_notifications/backend/push_notifications/send/page.js +1 -1
- package/dist/modules/push_notifications/backend/push_notifications/send/page.js.map +2 -2
- package/dist/modules/query_index/lib/engine.js +51 -150
- package/dist/modules/query_index/lib/engine.js.map +2 -2
- package/dist/modules/query_index/lib/search-tokens.js +3 -79
- package/dist/modules/query_index/lib/search-tokens.js.map +2 -2
- package/dist/modules/resources/backend/resources/resource-types/page.js +1 -3
- package/dist/modules/resources/backend/resources/resource-types/page.js.map +2 -2
- package/dist/modules/resources/backend/resources/resources/page.js +1 -3
- package/dist/modules/resources/backend/resources/resources/page.js.map +2 -2
- package/dist/modules/sales/backend/sales/channels/offers/page.js +0 -3
- package/dist/modules/sales/backend/sales/channels/offers/page.js.map +2 -2
- package/dist/modules/sales/backend/sales/channels/page.js +0 -3
- package/dist/modules/sales/backend/sales/channels/page.js.map +2 -2
- package/dist/modules/sales/backend/sales/documents/[id]/page.js +8 -10
- package/dist/modules/sales/backend/sales/documents/[id]/page.js.map +2 -2
- package/dist/modules/sales/commands/documents.js +1 -79
- package/dist/modules/sales/commands/documents.js.map +2 -2
- package/dist/modules/sales/components/PriceWithCurrency.js +5 -7
- package/dist/modules/sales/components/PriceWithCurrency.js.map +2 -2
- package/dist/modules/sales/components/channels/SalesChannelOffersPanel.js +0 -3
- package/dist/modules/sales/components/channels/SalesChannelOffersPanel.js.map +2 -2
- package/dist/modules/sales/components/documents/AdjustmentsSection.js +6 -8
- package/dist/modules/sales/components/documents/AdjustmentsSection.js.map +2 -2
- package/dist/modules/sales/components/documents/ItemsSection.js +22 -51
- package/dist/modules/sales/components/documents/ItemsSection.js.map +2 -2
- package/dist/modules/sales/components/documents/LineItemDialog.js +19 -84
- package/dist/modules/sales/components/documents/LineItemDialog.js.map +2 -2
- package/dist/modules/sales/components/documents/PaymentsSection.js +9 -23
- package/dist/modules/sales/components/documents/PaymentsSection.js.map +2 -2
- package/dist/modules/sales/components/documents/ReturnsSection.js +6 -8
- package/dist/modules/sales/components/documents/ReturnsSection.js.map +2 -2
- package/dist/modules/sales/components/documents/SalesDocumentsTable.js +14 -68
- package/dist/modules/sales/components/documents/SalesDocumentsTable.js.map +2 -2
- package/dist/modules/sales/components/documents/SalesOrderDraftLines.js +5 -6
- package/dist/modules/sales/components/documents/SalesOrderDraftLines.js.map +2 -2
- package/dist/modules/sales/components/documents/ShipmentDialog.js +4 -5
- package/dist/modules/sales/components/documents/ShipmentDialog.js.map +2 -2
- package/dist/modules/sales/components/documents/ShipmentsSection.js +6 -8
- package/dist/modules/sales/components/documents/ShipmentsSection.js.map +2 -2
- package/dist/modules/sales/components/documents/lineItemUtils.js +2 -2
- package/dist/modules/sales/components/documents/lineItemUtils.js.map +2 -2
- package/dist/modules/sales/data/entities.js +2 -8
- package/dist/modules/sales/data/entities.js.map +2 -2
- package/dist/modules/sales/extension-points.js +0 -1
- package/dist/modules/sales/extension-points.js.map +2 -2
- package/dist/modules/sales/setup.js +0 -2
- package/dist/modules/sales/setup.js.map +2 -2
- package/dist/modules/sales/widgets/injection/document-history/widget.client.js +44 -2
- package/dist/modules/sales/widgets/injection/document-history/widget.client.js.map +2 -2
- package/dist/modules/sales/widgets/injection/payment-gateway-status-column/widget.js +2 -10
- package/dist/modules/sales/widgets/injection/payment-gateway-status-column/widget.js.map +2 -2
- package/dist/modules/sales/widgets/injection-table.js +7 -4
- package/dist/modules/sales/widgets/injection-table.js.map +2 -2
- package/dist/modules/staff/backend/staff/leave-requests/page.js +0 -3
- package/dist/modules/staff/backend/staff/leave-requests/page.js.map +2 -2
- package/dist/modules/staff/backend/staff/my-leave-requests/page.js +0 -3
- package/dist/modules/staff/backend/staff/my-leave-requests/page.js.map +2 -2
- package/dist/modules/staff/backend/staff/team-members/page.js +0 -3
- package/dist/modules/staff/backend/staff/team-members/page.js.map +2 -2
- package/dist/modules/staff/backend/staff/team-roles/page.js +0 -3
- package/dist/modules/staff/backend/staff/team-roles/page.js.map +2 -2
- package/dist/modules/staff/backend/staff/teams/[id]/edit/page.js +0 -3
- package/dist/modules/staff/backend/staff/teams/[id]/edit/page.js.map +2 -2
- package/dist/modules/staff/backend/staff/teams/page.js +0 -3
- package/dist/modules/staff/backend/staff/teams/page.js.map +2 -2
- package/dist/modules/staff/backend/staff/timesheets/page.js +18 -29
- package/dist/modules/staff/backend/staff/timesheets/page.js.map +2 -2
- package/dist/modules/staff/backend/staff/timesheets/projects/page.js +0 -3
- package/dist/modules/staff/backend/staff/timesheets/projects/page.js.map +2 -2
- package/dist/modules/sync_excel/lib/adapters/customers.js +0 -1
- package/dist/modules/sync_excel/lib/adapters/customers.js.map +2 -2
- package/dist/modules/warranty_claims/api/assignees/route.js +3 -3
- package/dist/modules/warranty_claims/api/assignees/route.js.map +2 -2
- package/dist/modules/warranty_claims/api/portal/attachments/route.js +2 -2
- package/dist/modules/warranty_claims/api/portal/attachments/route.js.map +2 -2
- package/dist/modules/warranty_claims/api/portal/claims/route.js +9 -12
- package/dist/modules/warranty_claims/api/portal/claims/route.js.map +2 -2
- package/dist/modules/warranty_claims/backend/page.js +0 -3
- package/dist/modules/warranty_claims/backend/page.js.map +2 -2
- package/dist/modules/warranty_claims/backend/warranty_claims/registrations/page.js +0 -3
- package/dist/modules/warranty_claims/backend/warranty_claims/registrations/page.js.map +2 -2
- package/dist/modules/warranty_claims/backend/warranty_claims/troubleshooting-guides/page.js +0 -3
- package/dist/modules/warranty_claims/backend/warranty_claims/troubleshooting-guides/page.js.map +2 -2
- package/dist/modules/warranty_claims/backend/warranty_claims/vendor-policies/page.js +0 -3
- package/dist/modules/warranty_claims/backend/warranty_claims/vendor-policies/page.js.map +2 -2
- package/dist/modules/warranty_claims/frontend/[orgSlug]/portal/claims/page.js +0 -3
- package/dist/modules/warranty_claims/frontend/[orgSlug]/portal/claims/page.js.map +2 -2
- package/dist/modules/wms/api/warehouses/route.js +9 -13
- package/dist/modules/wms/api/warehouses/route.js.map +2 -2
- package/dist/modules/wms/api/zones/route.js +2 -15
- package/dist/modules/wms/api/zones/route.js.map +2 -2
- package/dist/modules/wms/commands/configuration.js +9 -121
- package/dist/modules/wms/commands/configuration.js.map +2 -2
- package/dist/modules/wms/commands/inventory-actions.js +0 -3
- package/dist/modules/wms/commands/inventory-actions.js.map +2 -2
- package/dist/modules/wms/commands/shared.js +1 -9
- package/dist/modules/wms/commands/shared.js.map +2 -2
- package/dist/modules/wms/components/backend/WmsConfigurationPage.js +111 -76
- package/dist/modules/wms/components/backend/WmsConfigurationPage.js.map +3 -3
- package/dist/modules/wms/components/backend/WmsInventoryConsolePage.js +0 -1
- package/dist/modules/wms/components/backend/WmsInventoryConsolePage.js.map +2 -2
- package/dist/modules/wms/components/backend/WmsLocationDetailPage.js +20 -16
- package/dist/modules/wms/components/backend/WmsLocationDetailPage.js.map +2 -2
- package/dist/modules/wms/components/backend/WmsLotDetailPage.js +10 -6
- package/dist/modules/wms/components/backend/WmsLotDetailPage.js.map +2 -2
- package/dist/modules/wms/components/backend/WmsLotsListPage.js +0 -1
- package/dist/modules/wms/components/backend/WmsLotsListPage.js.map +2 -2
- package/dist/modules/wms/components/backend/WmsOperationalDashboardPage.js +11 -7
- package/dist/modules/wms/components/backend/WmsOperationalDashboardPage.js.map +2 -2
- package/dist/modules/wms/components/backend/WmsSkuDetailPage.js +10 -6
- package/dist/modules/wms/components/backend/WmsSkuDetailPage.js.map +2 -2
- package/dist/modules/wms/components/backend/inventoryMutationLoaders.js +20 -27
- package/dist/modules/wms/components/backend/inventoryMutationLoaders.js.map +2 -2
- package/dist/modules/workflows/backend/definitions/page.js +1 -3
- package/dist/modules/workflows/backend/definitions/page.js.map +2 -2
- package/dist/modules/workflows/backend/events/page.js +1 -3
- package/dist/modules/workflows/backend/events/page.js.map +2 -2
- package/dist/modules/workflows/backend/instances/page.js +1 -3
- package/dist/modules/workflows/backend/instances/page.js.map +2 -2
- package/dist/modules/workflows/backend/tasks/page.js +1 -3
- package/dist/modules/workflows/backend/tasks/page.js.map +2 -2
- package/dist/modules/workflows/lib/activity-executor.js +0 -4
- package/dist/modules/workflows/lib/activity-executor.js.map +2 -2
- package/package.json +10 -9
- package/src/helpers/integration/api.ts +1 -33
- package/src/helpers/integration/communicationChannelsFixtures.ts +1 -69
- package/src/modules/api_keys/api/keys/route.ts +1 -3
- package/src/modules/api_keys/backend/api-keys/page.tsx +1 -4
- package/src/modules/attachments/AGENTS.md +0 -15
- package/src/modules/attachments/api/route.ts +2 -2
- package/src/modules/attachments/components/AttachmentLibrary.tsx +0 -3
- package/src/modules/attachments/di.ts +0 -16
- package/src/modules/attachments/i18n/de.json +0 -5
- package/src/modules/attachments/i18n/en.json +0 -5
- package/src/modules/attachments/i18n/es.json +0 -5
- package/src/modules/attachments/i18n/ko.json +0 -5
- package/src/modules/attachments/i18n/pl.json +0 -5
- package/src/modules/attachments/index.ts +0 -10
- package/src/modules/attachments/lib/scoped-upload-service.ts +0 -46
- package/src/modules/attachments/lib/upload-limits.ts +2 -6
- package/src/modules/audit_logs/backend/audit-logs/page.tsx +0 -8
- package/src/modules/audit_logs/lib/display-helpers.tsx +32 -42
- package/src/modules/audit_logs/services/actionLogService.ts +11 -74
- package/src/modules/auth/acl.ts +6 -30
- package/src/modules/auth/api/feature-check.ts +3 -10
- package/src/modules/auth/api/login.ts +24 -9
- package/src/modules/auth/api/roles/acl/route.ts +39 -42
- package/src/modules/auth/api/routeError.ts +30 -0
- package/src/modules/auth/api/session/refresh.ts +1 -32
- package/src/modules/auth/api/users/acl/route.ts +101 -185
- package/src/modules/auth/backend/roles/[id]/edit/page.meta.ts +2 -5
- package/src/modules/auth/backend/roles/page.tsx +2 -4
- package/src/modules/auth/backend/users/[id]/edit/page.meta.ts +2 -5
- package/src/modules/auth/backend/users/page.tsx +2 -3
- package/src/modules/auth/components/AclEditor.tsx +33 -63
- package/src/modules/auth/data/entities.ts +1 -4
- package/src/modules/auth/data/validators.ts +0 -5
- package/src/modules/auth/di.ts +16 -46
- package/src/modules/auth/frontend/reset/[token]/page.tsx +0 -74
- package/src/modules/auth/i18n/de.json +0 -389
- package/src/modules/auth/i18n/en.json +0 -389
- package/src/modules/auth/i18n/es.json +0 -389
- package/src/modules/auth/i18n/ko.json +0 -389
- package/src/modules/auth/i18n/pl.json +2 -391
- package/src/modules/auth/lib/grantChecks.ts +0 -6
- package/src/modules/auth/services/authService.ts +2 -18
- package/src/modules/auth/services/rbacService.ts +24 -110
- package/src/modules/business_rules/backend/logs/page.tsx +1 -4
- package/src/modules/business_rules/backend/rules/[id]/page.meta.ts +5 -0
- package/src/modules/business_rules/backend/rules/create/page.meta.ts +5 -1
- package/src/modules/business_rules/backend/rules/page.tsx +1 -4
- package/src/modules/business_rules/backend/sets/[id]/page.meta.ts +5 -0
- package/src/modules/business_rules/backend/sets/create/page.meta.ts +5 -1
- package/src/modules/business_rules/backend/sets/page.tsx +1 -4
- package/src/modules/business_rules/lib/expression-evaluator.ts +9 -9
- package/src/modules/business_rules/lib/rule-evaluator.ts +9 -10
- package/src/modules/catalog/ai-agents.ts +1 -1
- package/src/modules/catalog/ai-tools/merchandising-pack.ts +2 -2
- package/src/modules/catalog/backend/catalog/products/MerchandisingAssistantSheet.tsx +5 -12
- package/src/modules/catalog/components/categories/CategoriesDataTable.tsx +0 -3
- package/src/modules/catalog/components/products/ProductsDataTable.tsx +0 -7
- package/src/modules/catalog/i18n/de.json +0 -1
- package/src/modules/catalog/i18n/en.json +0 -1
- package/src/modules/catalog/i18n/es.json +0 -1
- package/src/modules/catalog/i18n/ko.json +0 -1
- package/src/modules/catalog/i18n/pl.json +0 -1
- package/src/modules/catalog/widgets/injection/merchandising-assistant-trigger/widget.client.tsx +0 -4
- package/src/modules/communication_channels/api/post/channels/[id]/test-send/route.ts +1 -17
- package/src/modules/communication_channels/api/post/test-seed/route.ts +16 -155
- package/src/modules/communication_channels/backend/communication_channels/channels/page.tsx +0 -4
- package/src/modules/communication_channels/commands/ingest-inbound-message.ts +1 -38
- package/src/modules/communication_channels/di.ts +0 -7
- package/src/modules/communication_channels/lib/adapter.ts +0 -14
- package/src/modules/communication_channels/lib/email-capabilities.ts +0 -4
- package/src/modules/communication_channels/lib/test-seed.ts +4 -64
- package/src/modules/configs/i18n/de.json +0 -2
- package/src/modules/configs/i18n/en.json +0 -2
- package/src/modules/configs/i18n/es.json +0 -2
- package/src/modules/configs/i18n/ko.json +0 -2
- package/src/modules/configs/i18n/pl.json +0 -2
- package/src/modules/configs/lib/system-status.ts +0 -9
- package/src/modules/currencies/backend/currencies/page.tsx +1 -4
- package/src/modules/currencies/backend/exchange-rates/page.tsx +1 -4
- package/src/modules/customer_accounts/api/admin/domain-mappings.ts +0 -7
- package/src/modules/customer_accounts/backend/customer_accounts/roles/page.tsx +1 -4
- package/src/modules/customer_accounts/backend/customer_accounts/settings/CustomerAccountsSettingsPageClient.tsx +138 -0
- package/src/modules/customer_accounts/backend/customer_accounts/settings/page.tsx +8 -132
- package/src/modules/customer_accounts/backend/customer_accounts/users/PortalUsersPageClient.tsx +598 -0
- package/src/modules/customer_accounts/backend/customer_accounts/users/[id]/PortalUserDetailPageClient.tsx +838 -0
- package/src/modules/customer_accounts/backend/customer_accounts/users/[id]/page.tsx +6 -838
- package/src/modules/customer_accounts/backend/customer_accounts/users/page.tsx +6 -590
- package/src/modules/customer_accounts/extension-points.ts +1 -1
- package/src/modules/customer_accounts/lib/portalUrl.ts +112 -0
- package/src/modules/customer_accounts/services/domainMappingService.ts +0 -10
- package/src/modules/customers/ai-tools/companies-pack.ts +1 -4
- package/src/modules/customers/ai-tools/deal-analyzer-pack.ts +2 -17
- package/src/modules/customers/ai-tools/deals-pack.ts +1 -66
- package/src/modules/customers/ai-tools/people-pack.ts +1 -4
- package/src/modules/customers/api/activities/route.ts +0 -45
- package/src/modules/customers/api/companies/[id]/people/route.ts +73 -24
- package/src/modules/customers/api/companies/[id]/route.ts +107 -24
- package/src/modules/customers/api/dashboard/widgets/customer-todos/route.ts +8 -16
- package/src/modules/customers/api/deals/[id]/companies/route.ts +1 -4
- package/src/modules/customers/api/deals/[id]/people/route.ts +1 -4
- package/src/modules/customers/api/deals/[id]/route.ts +28 -17
- package/src/modules/customers/api/deals/[id]/stats/route.ts +25 -10
- package/src/modules/customers/api/deals/aggregate/route.ts +4 -14
- package/src/modules/customers/api/deals/map/route.ts +0 -1
- package/src/modules/customers/api/deals/route.ts +1 -50
- package/src/modules/customers/api/entity-roles-factory.ts +4 -8
- package/src/modules/customers/api/interactions/route.ts +2 -8
- package/src/modules/customers/api/interactions/tasks/route.ts +1 -24
- package/src/modules/customers/api/people/[id]/companies/[linkId]/route.ts +4 -12
- package/src/modules/customers/api/people/[id]/companies/context.ts +1 -4
- package/src/modules/customers/api/people/[id]/companies/enriched/route.ts +1 -4
- package/src/modules/customers/api/people/[id]/route.ts +11 -16
- package/src/modules/customers/api/people/check-phone/route.ts +10 -75
- package/src/modules/customers/api/todos/route.ts +2 -27
- package/src/modules/customers/backend/customers/companies/page.tsx +4 -7
- package/src/modules/customers/backend/customers/deals/[id]/page.tsx +2 -7
- package/src/modules/customers/backend/customers/deals/page.tsx +4 -10
- package/src/modules/customers/backend/customers/deals/pipeline/components/Lane.tsx +14 -5
- package/src/modules/customers/backend/customers/deals/pipeline/components/StatusFilterPopover.tsx +27 -109
- package/src/modules/customers/backend/customers/people/page.tsx +4 -7
- package/src/modules/customers/backend/hooks/useEmailDuplicateCheck.ts +4 -12
- package/src/modules/customers/commands/deals.ts +59 -34
- package/src/modules/customers/commands/interactions.ts +1 -1
- package/src/modules/customers/commands/personCompanyLinks.ts +8 -224
- package/src/modules/customers/components/CustomerTodosTable.tsx +0 -2
- package/src/modules/customers/components/DealsKpiStrip.tsx +7 -7
- package/src/modules/customers/components/calendar/AgendaList.tsx +3 -3
- package/src/modules/customers/components/calendar/CalendarEventEditor.tsx +1 -1
- package/src/modules/customers/components/calendar/CalendarScreen.tsx +1 -1
- package/src/modules/customers/components/calendar/CalendarSettingsModal.tsx +1 -1
- package/src/modules/customers/components/calendar/EventBlock.tsx +2 -2
- package/src/modules/customers/components/calendar/EventPeekPopover.tsx +2 -4
- package/src/modules/customers/components/calendar/editor/PeopleField.tsx +5 -61
- package/src/modules/customers/components/calendar/editor/hooks.ts +1 -7
- package/src/modules/customers/components/calendar/types.ts +2 -2
- package/src/modules/customers/components/detail/AssignRoleDialog.tsx +12 -7
- package/src/modules/customers/components/detail/CompanyKpiBar.tsx +4 -5
- package/src/modules/customers/components/detail/CompanyPeopleSection.tsx +1 -8
- package/src/modules/customers/components/detail/DealForm.tsx +2 -22
- package/src/modules/customers/components/detail/DealsSection.tsx +5 -11
- package/src/modules/customers/components/detail/EntityTagsDialog.tsx +12 -58
- package/src/modules/customers/components/detail/PersonCompaniesSection.tsx +1 -8
- package/src/modules/customers/components/detail/hooks/usePersonTasks.ts +14 -23
- package/src/modules/customers/components/detail/schedule/ParticipantsField.tsx +5 -5
- package/src/modules/customers/components/detail/schedule/useScheduleFormState.ts +5 -5
- package/src/modules/customers/components/detail/types.ts +1 -1
- package/src/modules/customers/components/detail/utils.ts +5 -15
- package/src/modules/customers/data/entities.ts +1 -1
- package/src/modules/customers/data/validators.ts +9 -50
- package/src/modules/customers/events.ts +0 -5
- package/src/modules/customers/i18n/de.json +1 -9
- package/src/modules/customers/i18n/en.json +1 -9
- package/src/modules/customers/i18n/es.json +1 -9
- package/src/modules/customers/i18n/ko.json +1 -9
- package/src/modules/customers/i18n/pl.json +1 -9
- package/src/modules/customers/lib/calendar/conflicts.ts +2 -10
- package/src/modules/customers/lib/calendar/editorPayload.ts +3 -4
- package/src/modules/customers/lib/calendar/mapItem.ts +3 -8
- package/src/modules/customers/lib/dealStatus.ts +0 -42
- package/src/modules/customers/lib/findPeopleByAddresses.ts +6 -8
- package/src/modules/customers/lib/personCompanies.ts +1 -136
- package/src/modules/customers/lib/todoCompatibility.ts +1 -19
- package/src/modules/dashboards/i18n/es.json +4 -4
- package/src/modules/dashboards/i18n/pl.json +7 -7
- package/src/modules/dashboards/lib/widgetScope.ts +0 -6
- package/src/modules/data_sync/AGENTS.md +1 -1
- package/src/modules/data_sync/backend/data-sync/page.tsx +1 -4
- package/src/modules/data_sync/lib/adapter.ts +0 -36
- package/src/modules/data_sync/lib/sync-engine.ts +5 -113
- package/src/modules/data_sync/workers/sync-export.ts +0 -4
- package/src/modules/data_sync/workers/sync-import.ts +0 -4
- package/src/modules/devices/AGENTS.md +0 -8
- package/src/modules/devices/api/admin/devices/[id]/route.ts +34 -5
- package/src/modules/devices/api/admin/devices/route.ts +1 -14
- package/src/modules/devices/api/deviceList.ts +11 -135
- package/src/modules/devices/api/openapi.ts +1 -9
- package/src/modules/devices/api/route.ts +1 -9
- package/src/modules/devices/backend/devices/[id]/page.tsx +15 -15
- package/src/modules/devices/backend/devices/page.tsx +21 -24
- package/src/modules/directory/backend/directory/organizations/page.tsx +1 -3
- package/src/modules/directory/backend/directory/tenants/page.tsx +1 -3
- package/src/modules/directory/di.ts +2 -14
- package/src/modules/directory/utils/organizationScope.ts +15 -4
- package/src/modules/entities/api/records.ts +0 -2
- package/src/modules/entities/backend/entities/user/[entityId]/records/page.tsx +1 -4
- package/src/modules/eudr/api/plots/route.ts +0 -4
- package/src/modules/eudr/backend/eudr/evidence-submissions/[id]/page.meta.ts +2 -0
- package/src/modules/eudr/backend/eudr/evidence-submissions/create/page.meta.ts +1 -0
- package/src/modules/eudr/backend/eudr/evidence-submissions/page.meta.ts +4 -1
- package/src/modules/eudr/backend/eudr/evidence-submissions/page.tsx +0 -4
- package/src/modules/eudr/backend/eudr/page.meta.ts +2 -2
- package/src/modules/eudr/backend/eudr/plots/[id]/page.meta.ts +2 -0
- package/src/modules/eudr/backend/eudr/plots/[id]/page.tsx +8 -2
- package/src/modules/eudr/backend/eudr/plots/create/page.meta.ts +1 -0
- package/src/modules/eudr/backend/eudr/plots/create/page.tsx +8 -2
- package/src/modules/eudr/backend/eudr/plots/page.meta.ts +4 -1
- package/src/modules/eudr/backend/eudr/plots/page.tsx +0 -4
- package/src/modules/eudr/backend/eudr/product-mappings/[id]/page.meta.ts +2 -0
- package/src/modules/eudr/backend/eudr/product-mappings/create/page.meta.ts +1 -0
- package/src/modules/eudr/backend/eudr/product-mappings/page.meta.ts +4 -1
- package/src/modules/eudr/backend/eudr/product-mappings/page.tsx +0 -4
- package/src/modules/eudr/backend/eudr/risk-assessments/[id]/page.meta.ts +2 -0
- package/src/modules/eudr/backend/eudr/risk-assessments/create/page.meta.ts +1 -0
- package/src/modules/eudr/backend/eudr/risk-assessments/page.meta.ts +4 -1
- package/src/modules/eudr/backend/eudr/risk-assessments/page.tsx +0 -4
- package/src/modules/eudr/backend/eudr/statements/[id]/page.meta.ts +2 -0
- package/src/modules/eudr/backend/eudr/statements/[id]/page.tsx +2 -0
- package/src/modules/eudr/backend/eudr/statements/create/page.meta.ts +1 -0
- package/src/modules/eudr/backend/eudr/statements/page.meta.ts +4 -1
- package/src/modules/eudr/backend/eudr/statements/page.tsx +32 -30
- package/src/modules/eudr/commands/statements.ts +7 -2
- package/src/modules/eudr/components/crudErrorI18n.ts +31 -0
- package/src/modules/eudr/components/formConfig.tsx +9 -1
- package/src/modules/eudr/data/validators.ts +1 -16
- package/src/modules/eudr/i18n/de.json +3 -2
- package/src/modules/eudr/i18n/en.json +3 -2
- package/src/modules/eudr/i18n/es.json +3 -2
- package/src/modules/eudr/i18n/ko.json +3 -2
- package/src/modules/eudr/i18n/pl.json +3 -2
- package/src/modules/eudr/lib/statement-lifecycle.ts +8 -0
- package/src/modules/feature_toggles/components/FeatureTogglesTable.tsx +1 -2
- package/src/modules/feature_toggles/components/OverridesTable.tsx +1 -2
- package/src/modules/feature_toggles/defaults.json +8 -0
- package/src/modules/inbox_ops/backend/inbox-ops/log/page.tsx +0 -4
- package/src/modules/inbox_ops/backend/inbox-ops/page.tsx +0 -4
- package/src/modules/inbox_ops/lib/htmlToPlainText.ts +17 -1
- package/src/modules/integrations/api/[id]/credentials/route.ts +4 -6
- package/src/modules/integrations/backend/integrations/[id]/page.tsx +31 -61
- package/src/modules/integrations/backend/integrations/bundle/[id]/page.tsx +9 -44
- package/src/modules/integrations/data/validators.ts +2 -12
- package/src/modules/integrations/i18n/de.json +0 -1
- package/src/modules/integrations/i18n/en.json +0 -1
- package/src/modules/integrations/i18n/es.json +0 -1
- package/src/modules/integrations/i18n/ko.json +0 -1
- package/src/modules/integrations/i18n/pl.json +0 -1
- package/src/modules/integrations/lib/credentials-masking.ts +6 -10
- package/src/modules/messages/api/[id]/route.ts +1 -55
- package/src/modules/messages/api/openapi.ts +0 -20
- package/src/modules/messages/api/route.ts +2 -31
- package/src/modules/messages/components/MessagesInboxPageClient.tsx +16 -9
- package/src/modules/messages/components/inboxFilters.ts +0 -36
- package/src/modules/messages/components/message-detail/hooks/useMessageDetailsConversation.ts +1 -14
- package/src/modules/messages/components/message-detail/panels/MessageHeader.tsx +1 -3
- package/src/modules/messages/components/message-detail/panels/thread-panel.tsx +1 -2
- package/src/modules/messages/components/message-detail/types.ts +0 -3
- package/src/modules/messages/components/messageListLabels.ts +3 -52
- package/src/modules/messages/data/validators.ts +4 -43
- package/src/modules/payment_gateways/api/webhook/[provider]/route.ts +6 -4
- package/src/modules/payment_gateways/backend/payment-gateways/page.tsx +1 -4
- package/src/modules/payment_gateways/lib/webhook-processor.ts +0 -11
- package/src/modules/planner/backend/planner/availability-rulesets/page.tsx +0 -4
- package/src/modules/push_notifications/backend/push_notifications/page.tsx +1 -4
- package/src/modules/push_notifications/backend/push_notifications/send/page.tsx +4 -4
- package/src/modules/query_index/lib/engine.ts +61 -249
- package/src/modules/query_index/lib/search-tokens.ts +3 -135
- package/src/modules/resources/backend/resources/resource-types/page.tsx +1 -4
- package/src/modules/resources/backend/resources/resources/page.tsx +1 -4
- package/src/modules/sales/backend/sales/channels/offers/page.tsx +0 -4
- package/src/modules/sales/backend/sales/channels/page.tsx +0 -4
- package/src/modules/sales/backend/sales/documents/[id]/page.tsx +8 -14
- package/src/modules/sales/commands/documents.ts +0 -93
- package/src/modules/sales/components/PriceWithCurrency.tsx +5 -17
- package/src/modules/sales/components/channels/SalesChannelOffersPanel.tsx +0 -4
- package/src/modules/sales/components/documents/AdjustmentsSection.tsx +5 -6
- package/src/modules/sales/components/documents/ItemsSection.tsx +18 -56
- package/src/modules/sales/components/documents/LineItemDialog.tsx +21 -138
- package/src/modules/sales/components/documents/PaymentsSection.tsx +9 -20
- package/src/modules/sales/components/documents/ReturnsSection.tsx +5 -6
- package/src/modules/sales/components/documents/SalesDocumentsTable.tsx +14 -106
- package/src/modules/sales/components/documents/SalesOrderDraftLines.tsx +5 -6
- package/src/modules/sales/components/documents/ShipmentDialog.tsx +4 -5
- package/src/modules/sales/components/documents/ShipmentsSection.tsx +5 -6
- package/src/modules/sales/components/documents/lineItemUtils.ts +2 -7
- package/src/modules/sales/data/entities.ts +0 -6
- package/src/modules/sales/extension-points.ts +0 -1
- package/src/modules/sales/i18n/de.json +37 -8
- package/src/modules/sales/i18n/en.json +37 -8
- package/src/modules/sales/i18n/es.json +37 -8
- package/src/modules/sales/i18n/ko.json +37 -8
- package/src/modules/sales/i18n/pl.json +37 -8
- package/src/modules/sales/migrations/.snapshot-open-mercato.json +0 -60
- package/src/modules/sales/setup.ts +0 -2
- package/src/modules/sales/widgets/injection/document-history/widget.client.tsx +42 -2
- package/src/modules/sales/widgets/injection/payment-gateway-status-column/widget.ts +1 -9
- package/src/modules/sales/widgets/injection-table.ts +7 -4
- package/src/modules/staff/backend/staff/leave-requests/page.tsx +0 -4
- package/src/modules/staff/backend/staff/my-leave-requests/page.tsx +0 -4
- package/src/modules/staff/backend/staff/team-members/page.tsx +0 -6
- package/src/modules/staff/backend/staff/team-roles/page.tsx +0 -4
- package/src/modules/staff/backend/staff/teams/[id]/edit/page.tsx +0 -4
- package/src/modules/staff/backend/staff/teams/page.tsx +0 -4
- package/src/modules/staff/backend/staff/timesheets/page.tsx +1 -12
- package/src/modules/staff/backend/staff/timesheets/projects/page.tsx +0 -4
- package/src/modules/sync_excel/lib/adapters/customers.ts +0 -5
- package/src/modules/warranty_claims/api/assignees/route.ts +3 -3
- package/src/modules/warranty_claims/api/portal/attachments/route.ts +2 -2
- package/src/modules/warranty_claims/api/portal/claims/route.ts +9 -12
- package/src/modules/warranty_claims/backend/page.tsx +0 -4
- package/src/modules/warranty_claims/backend/warranty_claims/registrations/page.tsx +0 -4
- package/src/modules/warranty_claims/backend/warranty_claims/troubleshooting-guides/page.tsx +0 -4
- package/src/modules/warranty_claims/backend/warranty_claims/vendor-policies/page.tsx +0 -4
- package/src/modules/warranty_claims/frontend/[orgSlug]/portal/claims/page.tsx +0 -4
- package/src/modules/wms/api/warehouses/route.ts +9 -13
- package/src/modules/wms/api/zones/route.ts +0 -16
- package/src/modules/wms/commands/configuration.ts +10 -159
- package/src/modules/wms/commands/inventory-actions.ts +0 -3
- package/src/modules/wms/commands/shared.ts +0 -17
- package/src/modules/wms/components/backend/WmsConfigurationPage.tsx +141 -95
- package/src/modules/wms/components/backend/WmsInventoryConsolePage.tsx +0 -2
- package/src/modules/wms/components/backend/WmsLocationDetailPage.tsx +30 -26
- package/src/modules/wms/components/backend/WmsLotDetailPage.tsx +21 -17
- package/src/modules/wms/components/backend/WmsLotsListPage.tsx +0 -2
- package/src/modules/wms/components/backend/WmsOperationalDashboardPage.tsx +17 -13
- package/src/modules/wms/components/backend/WmsSkuDetailPage.tsx +16 -12
- package/src/modules/wms/components/backend/inventoryMutationLoaders.ts +20 -36
- package/src/modules/wms/i18n/de.json +0 -2
- package/src/modules/wms/i18n/en.json +0 -2
- package/src/modules/wms/i18n/es.json +0 -2
- package/src/modules/wms/i18n/ko.json +0 -2
- package/src/modules/wms/i18n/pl.json +0 -2
- package/src/modules/workflows/backend/definitions/page.tsx +1 -4
- package/src/modules/workflows/backend/events/page.tsx +1 -4
- package/src/modules/workflows/backend/instances/page.tsx +1 -4
- package/src/modules/workflows/backend/tasks/page.tsx +1 -4
- package/src/modules/workflows/lib/activity-executor.ts +0 -9
- package/dist/modules/api_keys/di.js +0 -9
- package/dist/modules/api_keys/di.js.map +0 -7
- package/dist/modules/api_keys/services/principalService.js +0 -31
- package/dist/modules/api_keys/services/principalService.js.map +0 -7
- package/dist/modules/attachments/lib/attachment-service.js +0 -313
- package/dist/modules/attachments/lib/attachment-service.js.map +0 -7
- package/dist/modules/auth/api/reset/validate.js +0 -55
- package/dist/modules/auth/api/reset/validate.js.map +0 -7
- package/dist/modules/auth/commands/acl.js +0 -254
- package/dist/modules/auth/commands/acl.js.map +0 -7
- package/dist/modules/auth/services/principalService.js +0 -200
- package/dist/modules/auth/services/principalService.js.map +0 -7
- package/dist/modules/auth/services/roleOrganizationScope.js +0 -41
- package/dist/modules/auth/services/roleOrganizationScope.js.map +0 -7
- package/dist/modules/communication_channels/lib/outbound-recipient.js +0 -33
- package/dist/modules/communication_channels/lib/outbound-recipient.js.map +0 -7
- package/dist/modules/communication_channels/lib/resolve-channel-type.js +0 -51
- package/dist/modules/communication_channels/lib/resolve-channel-type.js.map +0 -7
- package/dist/modules/customers/backend/customers/deals/pipeline/components/toneClasses.js +0 -18
- package/dist/modules/customers/backend/customers/deals/pipeline/components/toneClasses.js.map +0 -7
- package/dist/modules/customers/lib/calendar/participantIdentity.js +0 -9
- package/dist/modules/customers/lib/calendar/participantIdentity.js.map +0 -7
- package/dist/modules/customers/lib/closureStage.js +0 -45
- package/dist/modules/customers/lib/closureStage.js.map +0 -7
- package/dist/modules/customers/lib/detailReadAccess.js +0 -12
- package/dist/modules/customers/lib/detailReadAccess.js.map +0 -7
- package/dist/modules/data_sync/lib/abandoned-run.js +0 -19
- package/dist/modules/data_sync/lib/abandoned-run.js.map +0 -7
- package/dist/modules/devices/api/deviceSerialization.js +0 -46
- package/dist/modules/devices/api/deviceSerialization.js.map +0 -7
- package/dist/modules/directory/services/organizationHierarchyService.js +0 -29
- package/dist/modules/directory/services/organizationHierarchyService.js.map +0 -7
- package/dist/modules/directory/services/organizationScopeService.js +0 -56
- package/dist/modules/directory/services/organizationScopeService.js.map +0 -7
- package/dist/modules/integrations/backend/integrations/credential-secret-fields.js +0 -55
- package/dist/modules/integrations/backend/integrations/credential-secret-fields.js.map +0 -7
- package/dist/modules/messages/lib/channel-sender-identity.js +0 -26
- package/dist/modules/messages/lib/channel-sender-identity.js.map +0 -7
- package/dist/modules/messages/lib/composeSourceChannelType.js +0 -41
- package/dist/modules/messages/lib/composeSourceChannelType.js.map +0 -7
- package/dist/modules/query_index/lib/search-entity-policy.js +0 -14
- package/dist/modules/query_index/lib/search-entity-policy.js.map +0 -7
- package/dist/modules/sales/components/documents/lineItemShipmentLock.js +0 -54
- package/dist/modules/sales/components/documents/lineItemShipmentLock.js.map +0 -7
- package/dist/modules/sales/lib/salesChannelsToggleSeed.js +0 -33
- package/dist/modules/sales/lib/salesChannelsToggleSeed.js.map +0 -7
- package/dist/modules/sales/migrations/Migration20260821120000_sales_notes_addresses_context_idx.js +0 -32
- package/dist/modules/sales/migrations/Migration20260821120000_sales_notes_addresses_context_idx.js.map +0 -7
- package/dist/modules/wms/api/warehouseSearch.js +0 -21
- package/dist/modules/wms/api/warehouseSearch.js.map +0 -7
- package/dist/modules/wms/components/backend/WarehouseEditDialog.js +0 -158
- package/dist/modules/wms/components/backend/WarehouseEditDialog.js.map +0 -7
- package/dist/modules/wms/components/backend/warehouseFormOptions.js +0 -66
- package/dist/modules/wms/components/backend/warehouseFormOptions.js.map +0 -7
- package/src/modules/api_keys/di.ts +0 -7
- package/src/modules/api_keys/services/principalService.ts +0 -33
- package/src/modules/attachments/lib/attachment-service.ts +0 -468
- package/src/modules/auth/api/reset/validate.ts +0 -57
- package/src/modules/auth/commands/acl.ts +0 -495
- package/src/modules/auth/services/principalService.ts +0 -266
- package/src/modules/auth/services/roleOrganizationScope.ts +0 -70
- package/src/modules/communication_channels/lib/outbound-recipient.ts +0 -71
- package/src/modules/communication_channels/lib/resolve-channel-type.ts +0 -99
- package/src/modules/customers/backend/customers/deals/pipeline/components/toneClasses.ts +0 -21
- package/src/modules/customers/lib/calendar/participantIdentity.ts +0 -17
- package/src/modules/customers/lib/closureStage.ts +0 -76
- package/src/modules/customers/lib/detailReadAccess.ts +0 -35
- package/src/modules/data_sync/lib/abandoned-run.ts +0 -56
- package/src/modules/devices/api/deviceSerialization.ts +0 -50
- package/src/modules/directory/services/organizationHierarchyService.ts +0 -34
- package/src/modules/directory/services/organizationScopeService.ts +0 -85
- package/src/modules/integrations/backend/integrations/credential-secret-fields.ts +0 -84
- package/src/modules/messages/lib/channel-sender-identity.ts +0 -55
- package/src/modules/messages/lib/composeSourceChannelType.ts +0 -95
- package/src/modules/query_index/lib/search-entity-policy.ts +0 -46
- package/src/modules/sales/components/documents/lineItemShipmentLock.ts +0 -74
- package/src/modules/sales/lib/salesChannelsToggleSeed.ts +0 -42
- package/src/modules/sales/migrations/Migration20260821120000_sales_notes_addresses_context_idx.ts +0 -87
- package/src/modules/wms/api/warehouseSearch.ts +0 -23
- package/src/modules/wms/components/backend/WarehouseEditDialog.tsx +0 -216
- package/src/modules/wms/components/backend/warehouseFormOptions.ts +0 -72
|
@@ -93,6 +93,8 @@ export default function EditEudrPlotPage({ params }: { params?: { id?: string }
|
|
|
93
93
|
const [loading, setLoading] = React.useState(true)
|
|
94
94
|
const [error, setError] = React.useState<string | null>(null)
|
|
95
95
|
const [notFound, setNotFound] = React.useState(false)
|
|
96
|
+
const [geometryDraft, setGeometryDraft] = React.useState<string | null>(null)
|
|
97
|
+
const areaRequired = !isPolygonGeometry(geometryDraft ?? formatGeometry(record?.geometry))
|
|
96
98
|
|
|
97
99
|
React.useEffect(() => {
|
|
98
100
|
let cancelled = false
|
|
@@ -197,7 +199,10 @@ export default function EditEudrPlotPage({ params }: { params?: { id?: string }
|
|
|
197
199
|
<GeometryInput
|
|
198
200
|
id={id}
|
|
199
201
|
value={typeof value === 'string' ? value : ''}
|
|
200
|
-
onChange={(nextValue) =>
|
|
202
|
+
onChange={(nextValue) => {
|
|
203
|
+
setValue(nextValue)
|
|
204
|
+
setGeometryDraft(nextValue)
|
|
205
|
+
}}
|
|
201
206
|
disabled={disabled}
|
|
202
207
|
areaHa={typeof values?.areaHa === 'string' || typeof values?.areaHa === 'number' ? String(values.areaHa) : ''}
|
|
203
208
|
/>
|
|
@@ -208,6 +213,7 @@ export default function EditEudrPlotPage({ params }: { params?: { id?: string }
|
|
|
208
213
|
layout: 'half',
|
|
209
214
|
label: translate('eudr.plots.form.areaHa'),
|
|
210
215
|
type: 'custom',
|
|
216
|
+
required: areaRequired,
|
|
211
217
|
description: translate('eudr.plots.form.areaHaHelp'),
|
|
212
218
|
component: ({ id, value, setValue, values, disabled }) => {
|
|
213
219
|
const polygonGeometry = isPolygonGeometry(values?.geometry)
|
|
@@ -241,7 +247,7 @@ export default function EditEudrPlotPage({ params }: { params?: { id?: string }
|
|
|
241
247
|
/>
|
|
242
248
|
),
|
|
243
249
|
},
|
|
244
|
-
], [translate])
|
|
250
|
+
], [translate, areaRequired])
|
|
245
251
|
|
|
246
252
|
const groups = React.useMemo<CrudFormGroup[]>(() => [
|
|
247
253
|
{
|
|
@@ -7,6 +7,7 @@ export 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
|
],
|
|
@@ -50,6 +50,8 @@ function isCompanySnapshot(value: unknown): value is CompanySnapshot {
|
|
|
50
50
|
export default function CreateEudrPlotPage() {
|
|
51
51
|
const translate = useT()
|
|
52
52
|
const router = useRouter()
|
|
53
|
+
const [geometryDraft, setGeometryDraft] = React.useState('')
|
|
54
|
+
const areaRequired = !isPolygonGeometry(geometryDraft)
|
|
53
55
|
|
|
54
56
|
const fields = React.useMemo<CrudField[]>(() => [
|
|
55
57
|
{
|
|
@@ -113,7 +115,10 @@ export default function CreateEudrPlotPage() {
|
|
|
113
115
|
<GeometryInput
|
|
114
116
|
id={id}
|
|
115
117
|
value={typeof value === 'string' ? value : ''}
|
|
116
|
-
onChange={(nextValue) =>
|
|
118
|
+
onChange={(nextValue) => {
|
|
119
|
+
setValue(nextValue)
|
|
120
|
+
setGeometryDraft(nextValue)
|
|
121
|
+
}}
|
|
117
122
|
disabled={disabled}
|
|
118
123
|
areaHa={typeof values?.areaHa === 'string' || typeof values?.areaHa === 'number' ? String(values.areaHa) : ''}
|
|
119
124
|
/>
|
|
@@ -124,6 +129,7 @@ export default function CreateEudrPlotPage() {
|
|
|
124
129
|
layout: 'half',
|
|
125
130
|
label: translate('eudr.plots.form.areaHa'),
|
|
126
131
|
type: 'custom',
|
|
132
|
+
required: areaRequired,
|
|
127
133
|
description: translate('eudr.plots.form.areaHaHelp'),
|
|
128
134
|
component: ({ id, value, setValue, values, disabled }) => {
|
|
129
135
|
const polygonGeometry = isPolygonGeometry(values?.geometry)
|
|
@@ -158,7 +164,7 @@ export default function CreateEudrPlotPage() {
|
|
|
158
164
|
/>
|
|
159
165
|
),
|
|
160
166
|
},
|
|
161
|
-
], [translate])
|
|
167
|
+
], [translate, areaRequired])
|
|
162
168
|
|
|
163
169
|
const groups = React.useMemo<CrudFormGroup[]>(() => [
|
|
164
170
|
{
|
|
@@ -8,5 +8,8 @@ export const metadata = {
|
|
|
8
8
|
pagePriority: 10,
|
|
9
9
|
pageOrder: 20,
|
|
10
10
|
icon: 'map',
|
|
11
|
-
breadcrumb: [
|
|
11
|
+
breadcrumb: [
|
|
12
|
+
{ label: 'EUDR', labelKey: 'eudr.nav.module', href: '/backend/eudr' },
|
|
13
|
+
{ label: 'Plots', labelKey: 'eudr.nav.plots' },
|
|
14
|
+
],
|
|
12
15
|
}
|
|
@@ -44,7 +44,6 @@ type PlotListResponse = {
|
|
|
44
44
|
items: PlotRow[]
|
|
45
45
|
total: number
|
|
46
46
|
totalPages: number
|
|
47
|
-
totalIsCapped?: boolean
|
|
48
47
|
}
|
|
49
48
|
|
|
50
49
|
type CompanyOptionResponse = {
|
|
@@ -103,7 +102,6 @@ export default function EudrPlotsPage() {
|
|
|
103
102
|
const [pageSize, setPageSize] = React.useState(20)
|
|
104
103
|
const [total, setTotal] = React.useState(0)
|
|
105
104
|
const [totalPages, setTotalPages] = React.useState(1)
|
|
106
|
-
const [totalIsCapped, setTotalIsCapped] = React.useState(false)
|
|
107
105
|
const [search, setSearch] = React.useState('')
|
|
108
106
|
const [sorting, setSorting] = React.useState<SortingState>([])
|
|
109
107
|
const [filters, setFilters] = React.useState<FilterValues>({})
|
|
@@ -166,7 +164,6 @@ export default function EudrPlotsPage() {
|
|
|
166
164
|
setRows(Array.isArray(payload.items) ? payload.items : [])
|
|
167
165
|
setTotal(typeof payload.total === 'number' ? payload.total : 0)
|
|
168
166
|
setTotalPages(typeof payload.totalPages === 'number' ? payload.totalPages : 1)
|
|
169
|
-
setTotalIsCapped(payload?.totalIsCapped === true)
|
|
170
167
|
} catch {
|
|
171
168
|
if (!cancelled) flash(translate('eudr.plots.list.loadError'), 'error')
|
|
172
169
|
} finally {
|
|
@@ -422,7 +419,6 @@ export default function EudrPlotsPage() {
|
|
|
422
419
|
pageSize,
|
|
423
420
|
total,
|
|
424
421
|
totalPages,
|
|
425
|
-
totalIsCapped,
|
|
426
422
|
onPageChange: setPage,
|
|
427
423
|
pageSizeOptions: [20, 50, 100],
|
|
428
424
|
onPageSizeChange: (nextPageSize) => {
|
|
@@ -7,6 +7,8 @@ export 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' },
|
|
12
|
+
{ label: 'Edit product mapping', labelKey: 'eudr.productMappings.edit.title' },
|
|
11
13
|
],
|
|
12
14
|
}
|
|
@@ -7,6 +7,7 @@ export 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
|
],
|
|
@@ -8,5 +8,8 @@ export const metadata = {
|
|
|
8
8
|
pagePriority: 10,
|
|
9
9
|
pageOrder: 10,
|
|
10
10
|
icon: 'package',
|
|
11
|
-
breadcrumb: [
|
|
11
|
+
breadcrumb: [
|
|
12
|
+
{ label: 'EUDR', labelKey: 'eudr.nav.module', href: '/backend/eudr' },
|
|
13
|
+
{ label: 'Product mappings', labelKey: 'eudr.nav.mappings' },
|
|
14
|
+
],
|
|
12
15
|
}
|
|
@@ -40,7 +40,6 @@ type ProductMappingsResponse = {
|
|
|
40
40
|
items: ProductMappingRow[]
|
|
41
41
|
total: number
|
|
42
42
|
totalPages: number
|
|
43
|
-
totalIsCapped?: boolean
|
|
44
43
|
}
|
|
45
44
|
|
|
46
45
|
function formatDateTime(value: string | null | undefined, emptyLabel: string, locale: string): string {
|
|
@@ -72,7 +71,6 @@ export default function EudrProductMappingsPage() {
|
|
|
72
71
|
const [pageSize, setPageSize] = React.useState(20)
|
|
73
72
|
const [total, setTotal] = React.useState(0)
|
|
74
73
|
const [totalPages, setTotalPages] = React.useState(1)
|
|
75
|
-
const [totalIsCapped, setTotalIsCapped] = React.useState(false)
|
|
76
74
|
const [search, setSearch] = React.useState('')
|
|
77
75
|
const [sorting, setSorting] = React.useState<SortingState>([])
|
|
78
76
|
const [filters, setFilters] = React.useState<FilterValues>({})
|
|
@@ -129,7 +127,6 @@ export default function EudrProductMappingsPage() {
|
|
|
129
127
|
setRows(Array.isArray(payload.items) ? payload.items : [])
|
|
130
128
|
setTotal(typeof payload.total === 'number' ? payload.total : 0)
|
|
131
129
|
setTotalPages(typeof payload.totalPages === 'number' ? payload.totalPages : 1)
|
|
132
|
-
setTotalIsCapped(payload?.totalIsCapped === true)
|
|
133
130
|
} catch {
|
|
134
131
|
if (!cancelled) flash(translate('eudr.productMappings.list.loadError'), 'error')
|
|
135
132
|
} finally {
|
|
@@ -324,7 +321,6 @@ export default function EudrProductMappingsPage() {
|
|
|
324
321
|
pageSize,
|
|
325
322
|
total,
|
|
326
323
|
totalPages,
|
|
327
|
-
totalIsCapped,
|
|
328
324
|
onPageChange: setPage,
|
|
329
325
|
pageSizeOptions: [20, 50, 100],
|
|
330
326
|
onPageSizeChange: (nextPageSize) => {
|
|
@@ -7,6 +7,8 @@ export 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' },
|
|
12
|
+
{ label: 'Edit risk assessment', labelKey: 'eudr.riskAssessments.edit.title' },
|
|
11
13
|
],
|
|
12
14
|
}
|
|
@@ -7,6 +7,7 @@ export 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
|
],
|
|
@@ -8,5 +8,8 @@ export const metadata = {
|
|
|
8
8
|
pagePriority: 10,
|
|
9
9
|
pageOrder: 40,
|
|
10
10
|
icon: 'shield-alert',
|
|
11
|
-
breadcrumb: [
|
|
11
|
+
breadcrumb: [
|
|
12
|
+
{ label: 'EUDR', labelKey: 'eudr.nav.module', href: '/backend/eudr' },
|
|
13
|
+
{ label: 'Risk assessments', labelKey: 'eudr.nav.riskAssessments' },
|
|
14
|
+
],
|
|
12
15
|
}
|
|
@@ -47,7 +47,6 @@ type RiskAssessmentsResponse = {
|
|
|
47
47
|
items: RiskAssessmentRow[]
|
|
48
48
|
total: number
|
|
49
49
|
totalPages: number
|
|
50
|
-
totalIsCapped?: boolean
|
|
51
50
|
}
|
|
52
51
|
|
|
53
52
|
type MutationContext = {
|
|
@@ -106,7 +105,6 @@ export default function EudrRiskAssessmentsPage() {
|
|
|
106
105
|
const [pageSize, setPageSize] = React.useState(20)
|
|
107
106
|
const [total, setTotal] = React.useState(0)
|
|
108
107
|
const [totalPages, setTotalPages] = React.useState(1)
|
|
109
|
-
const [totalIsCapped, setTotalIsCapped] = React.useState(false)
|
|
110
108
|
const [sorting, setSorting] = React.useState<SortingState>([{ id: 'assessedAt', desc: true }])
|
|
111
109
|
const [filters, setFilters] = React.useState<FilterValues>({})
|
|
112
110
|
const [search, setSearch] = React.useState('')
|
|
@@ -160,7 +158,6 @@ export default function EudrRiskAssessmentsPage() {
|
|
|
160
158
|
setRows(Array.isArray(payload.items) ? payload.items : [])
|
|
161
159
|
setTotal(typeof payload.total === 'number' ? payload.total : 0)
|
|
162
160
|
setTotalPages(typeof payload.totalPages === 'number' ? payload.totalPages : 1)
|
|
163
|
-
setTotalIsCapped(payload?.totalIsCapped === true)
|
|
164
161
|
} catch {
|
|
165
162
|
if (!cancelled) flash(translate('eudr.riskAssessments.list.loadError'), 'error')
|
|
166
163
|
} finally {
|
|
@@ -368,7 +365,6 @@ export default function EudrRiskAssessmentsPage() {
|
|
|
368
365
|
pageSize,
|
|
369
366
|
total,
|
|
370
367
|
totalPages,
|
|
371
|
-
totalIsCapped,
|
|
372
368
|
onPageChange: setPage,
|
|
373
369
|
pageSizeOptions: [20, 50, 100],
|
|
374
370
|
onPageSizeChange: (nextPageSize) => {
|
|
@@ -7,6 +7,8 @@ export 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' },
|
|
12
|
+
{ label: 'Edit statement', labelKey: 'eudr.statements.edit.title' },
|
|
11
13
|
],
|
|
12
14
|
}
|
|
@@ -29,6 +29,7 @@ import {
|
|
|
29
29
|
type ReferencedStatementValue,
|
|
30
30
|
translateEudrCrudError,
|
|
31
31
|
} from '../../../../components/formConfig'
|
|
32
|
+
import { canDeleteStatement } from '../../../../lib/statement-lifecycle'
|
|
32
33
|
import { StatementLifecycleBar } from '../../../../components/StatementLifecycleBar'
|
|
33
34
|
import { StatementReadinessChecklist } from '../../../../components/StatementReadinessChecklist'
|
|
34
35
|
import { StatementRiskSection, type StatementLatestRisk } from '../../../../components/StatementRiskSection'
|
|
@@ -644,6 +645,7 @@ export default function EditEudrStatementPage({ params }: { params?: { id?: stri
|
|
|
644
645
|
backHref="/backend/eudr/statements"
|
|
645
646
|
cancelHref="/backend/eudr/statements"
|
|
646
647
|
deleteRedirect="/backend/eudr/statements"
|
|
648
|
+
deleteVisible={canDeleteStatement(record.status)}
|
|
647
649
|
submitLabel={translate('eudr.statements.form.submitUpdate')}
|
|
648
650
|
fields={fields}
|
|
649
651
|
groups={groups}
|
|
@@ -7,6 +7,7 @@ export 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
|
],
|
|
@@ -8,5 +8,8 @@ export const metadata = {
|
|
|
8
8
|
pagePriority: 10,
|
|
9
9
|
pageOrder: 30,
|
|
10
10
|
icon: 'file-text',
|
|
11
|
-
breadcrumb: [
|
|
11
|
+
breadcrumb: [
|
|
12
|
+
{ label: 'EUDR', labelKey: 'eudr.nav.module', href: '/backend/eudr' },
|
|
13
|
+
{ label: 'Statements', labelKey: 'eudr.nav.statements' },
|
|
14
|
+
],
|
|
12
15
|
}
|
|
@@ -6,7 +6,7 @@ import { useRouter } from 'next/navigation'
|
|
|
6
6
|
import { Page, PageBody } from '@open-mercato/ui/backend/Page'
|
|
7
7
|
import { DataTable } from '@open-mercato/ui/backend/DataTable'
|
|
8
8
|
import { ListEmptyState } from '@open-mercato/ui/backend/filters/ListEmptyState'
|
|
9
|
-
import { RowActions } from '@open-mercato/ui/backend/RowActions'
|
|
9
|
+
import { RowActions, type RowActionItem } from '@open-mercato/ui/backend/RowActions'
|
|
10
10
|
import type { FilterDef, FilterValues } from '@open-mercato/ui/backend/FilterBar'
|
|
11
11
|
import { apiCall, withScopedApiRequestHeaders } from '@open-mercato/ui/backend/utils/apiCall'
|
|
12
12
|
import { buildOptimisticLockHeader } from '@open-mercato/ui/backend/utils/optimisticLock'
|
|
@@ -22,7 +22,8 @@ import type { LegacyColumnDef as ColumnDef } from '@tanstack/react-table/legacy'
|
|
|
22
22
|
import { useOrganizationScopeVersion } from '@open-mercato/shared/lib/frontend/useOrganizationScope'
|
|
23
23
|
import { useLocale, useT } from '@open-mercato/shared/lib/i18n/context'
|
|
24
24
|
import type { EudrActivityType, EudrCommodity, EudrRiskConclusion, EudrRiskTier, EudrStatementStatus } from '../../../data/validators'
|
|
25
|
-
import { commodityOptions, statementStatusOptions, statusBadgeVariant } from '../../../components/formConfig'
|
|
25
|
+
import { commodityOptions, statementStatusOptions, statusBadgeVariant, translateEudrErrorMessage } from '../../../components/formConfig'
|
|
26
|
+
import { canDeleteStatement } from '../../../lib/statement-lifecycle'
|
|
26
27
|
import {
|
|
27
28
|
riskConclusionBadgeVariant,
|
|
28
29
|
riskTierBadgeVariant,
|
|
@@ -52,7 +53,6 @@ type StatementsResponse = {
|
|
|
52
53
|
items: StatementRow[]
|
|
53
54
|
total: number
|
|
54
55
|
totalPages: number
|
|
55
|
-
totalIsCapped?: boolean
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
function formatDateTime(value: string | null | undefined, emptyLabel: string, locale: string): string {
|
|
@@ -79,7 +79,6 @@ export default function EudrStatementsPage() {
|
|
|
79
79
|
const [pageSize, setPageSize] = React.useState(20)
|
|
80
80
|
const [total, setTotal] = React.useState(0)
|
|
81
81
|
const [totalPages, setTotalPages] = React.useState(1)
|
|
82
|
-
const [totalIsCapped, setTotalIsCapped] = React.useState(false)
|
|
83
82
|
const [search, setSearch] = React.useState('')
|
|
84
83
|
const [sorting, setSorting] = React.useState<SortingState>([])
|
|
85
84
|
const [filters, setFilters] = React.useState<FilterValues>({})
|
|
@@ -135,7 +134,6 @@ export default function EudrStatementsPage() {
|
|
|
135
134
|
setRows(Array.isArray(payload.items) ? payload.items : [])
|
|
136
135
|
setTotal(typeof payload.total === 'number' ? payload.total : 0)
|
|
137
136
|
setTotalPages(typeof payload.totalPages === 'number' ? payload.totalPages : 1)
|
|
138
|
-
setTotalIsCapped(payload?.totalIsCapped === true)
|
|
139
137
|
} catch {
|
|
140
138
|
if (!cancelled) flash(translate('eudr.statements.list.loadError'), 'error')
|
|
141
139
|
} finally {
|
|
@@ -189,7 +187,11 @@ export default function EudrStatementsPage() {
|
|
|
189
187
|
refreshRows()
|
|
190
188
|
} catch (error) {
|
|
191
189
|
if (surfaceRecordConflict(error, translate, { onRefresh: refreshRows })) return
|
|
192
|
-
flash(
|
|
190
|
+
flash(
|
|
191
|
+
translateEudrErrorMessage(error, translate, translate('eudr.statements.list.deleteError')),
|
|
192
|
+
'error',
|
|
193
|
+
)
|
|
194
|
+
refreshRows()
|
|
193
195
|
}
|
|
194
196
|
}, [confirm, mutationContextId, refreshRows, retryLastMutation, runMutation, translate])
|
|
195
197
|
|
|
@@ -312,30 +314,31 @@ export default function EudrStatementsPage() {
|
|
|
312
314
|
</Link>
|
|
313
315
|
</Button>
|
|
314
316
|
)}
|
|
315
|
-
rowActions={(row) =>
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
317
|
+
rowActions={(row) => {
|
|
318
|
+
const items: RowActionItem[] = [
|
|
319
|
+
{
|
|
320
|
+
id: 'edit',
|
|
321
|
+
label: translate('eudr.statements.list.actions.edit'),
|
|
322
|
+
href: `/backend/eudr/statements/${row.id}`,
|
|
323
|
+
},
|
|
324
|
+
{
|
|
325
|
+
id: 'duplicate',
|
|
326
|
+
label: translate('eudr.statements.duplicateAction'),
|
|
327
|
+
href: `/backend/eudr/statements/create?duplicateFrom=${encodeURIComponent(row.id)}`,
|
|
328
|
+
},
|
|
329
|
+
]
|
|
330
|
+
if (canDeleteStatement(row.status)) {
|
|
331
|
+
items.push({
|
|
332
|
+
id: 'delete',
|
|
333
|
+
label: translate('eudr.statements.list.actions.delete'),
|
|
334
|
+
destructive: true,
|
|
335
|
+
onSelect: () => {
|
|
336
|
+
void handleDelete(row)
|
|
335
337
|
},
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
338
|
+
})
|
|
339
|
+
}
|
|
340
|
+
return <RowActions items={items} />
|
|
341
|
+
}}
|
|
339
342
|
onRowClick={(row) => router.push(`/backend/eudr/statements/${row.id}`)}
|
|
340
343
|
rowClickActionIds={['edit']}
|
|
341
344
|
emptyState={(
|
|
@@ -357,7 +360,6 @@ export default function EudrStatementsPage() {
|
|
|
357
360
|
pageSize,
|
|
358
361
|
total,
|
|
359
362
|
totalPages,
|
|
360
|
-
totalIsCapped,
|
|
361
363
|
onPageChange: setPage,
|
|
362
364
|
pageSizeOptions: [20, 50, 100],
|
|
363
365
|
onPageSizeChange: (nextPageSize) => {
|
|
@@ -43,9 +43,11 @@ import {
|
|
|
43
43
|
} from '../data/validators'
|
|
44
44
|
import {
|
|
45
45
|
EUDR_AMEND_GUARDED_FIELDS,
|
|
46
|
+
canDeleteStatement,
|
|
46
47
|
canTransition,
|
|
47
48
|
evaluateSubmissionGate,
|
|
48
49
|
isAmendWindowOpen,
|
|
50
|
+
isStatementReadOnly,
|
|
49
51
|
type GateAssessmentView,
|
|
50
52
|
type GateSubmissionView,
|
|
51
53
|
} from '../lib/statement-lifecycle'
|
|
@@ -495,7 +497,7 @@ async function validateStatementUpdate(
|
|
|
495
497
|
}
|
|
496
498
|
|
|
497
499
|
const hasBaseChanges = hasStatementFieldChanges(record, parsed)
|
|
498
|
-
if (record.status
|
|
500
|
+
if (isStatementReadOnly(record.status) && (hasBaseChanges || Object.keys(custom).length > 0)) {
|
|
499
501
|
throw new CrudHttpError(400, { error: 'eudr.errors.archivedReadOnly' })
|
|
500
502
|
}
|
|
501
503
|
|
|
@@ -580,6 +582,9 @@ const createStatementCommand: CommandHandler<ScopedStatementCreateInput, Stateme
|
|
|
580
582
|
if (parsed.status !== undefined && parsed.status !== 'draft') {
|
|
581
583
|
throw new CrudHttpError(400, { error: 'eudr.errors.invalidTransition' })
|
|
582
584
|
}
|
|
585
|
+
if (parsed.referenceIssuedAt !== undefined) {
|
|
586
|
+
throw new CrudHttpError(400, { error: 'eudr.errors.referenceIssuedAtImmutable' })
|
|
587
|
+
}
|
|
583
588
|
|
|
584
589
|
const entityManager = (ctx.container.resolve('em') as EntityManager).fork()
|
|
585
590
|
let record!: EudrDueDiligenceStatement
|
|
@@ -841,7 +846,7 @@ const deleteStatementCommand: CommandHandler<{ body?: Record<string, unknown>; q
|
|
|
841
846
|
if (!record) throw new CrudHttpError(404, { error: 'EUDR due diligence statement not found' })
|
|
842
847
|
ensureTenantScope(ctx, record.tenantId)
|
|
843
848
|
ensureOrganizationScope(ctx, record.organizationId)
|
|
844
|
-
if (record.status
|
|
849
|
+
if (isStatementStatus(record.status) && !canDeleteStatement(record.status)) {
|
|
845
850
|
throw new CrudHttpError(400, { error: 'eudr.errors.archivedReadOnly' })
|
|
846
851
|
}
|
|
847
852
|
if (record.status === 'available') {
|
|
@@ -15,6 +15,37 @@ function translateEudrErrorToken(token: string, translate: Translator): string {
|
|
|
15
15
|
return translated === trimmed ? token : translated
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
+
function readEudrErrorToken(err: unknown): string | null {
|
|
19
|
+
if (err == null || typeof err !== 'object') return null
|
|
20
|
+
const candidates = [
|
|
21
|
+
(err as { error?: unknown }).error,
|
|
22
|
+
(err as { message?: unknown }).message,
|
|
23
|
+
]
|
|
24
|
+
for (const candidate of candidates) {
|
|
25
|
+
if (typeof candidate !== 'string') continue
|
|
26
|
+
const trimmed = candidate.trim()
|
|
27
|
+
if (EUDR_ERROR_KEY_PATTERN.test(trimmed)) return trimmed
|
|
28
|
+
}
|
|
29
|
+
return null
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Resolves the user-facing message for a rejected EUDR mutation, preferring the
|
|
34
|
+
* server's `eudr.errors.*` token over the caller's generic copy so the reason
|
|
35
|
+
* survives to the user. Falls back to `fallbackMessage` when the rejection
|
|
36
|
+
* carries no known token (network errors, 5xx, unmapped tokens).
|
|
37
|
+
*/
|
|
38
|
+
export function translateEudrErrorMessage(
|
|
39
|
+
err: unknown,
|
|
40
|
+
translate: Translator,
|
|
41
|
+
fallbackMessage: string,
|
|
42
|
+
): string {
|
|
43
|
+
const token = readEudrErrorToken(err)
|
|
44
|
+
if (!token) return fallbackMessage
|
|
45
|
+
const translated = translate(token)
|
|
46
|
+
return translated === token ? fallbackMessage : translated
|
|
47
|
+
}
|
|
48
|
+
|
|
18
49
|
export function translateEudrCrudError(err: unknown, translate: Translator): unknown {
|
|
19
50
|
if (!(err instanceof Error)) return err
|
|
20
51
|
const rawMessage = typeof err.message === 'string' ? err.message : ''
|
|
@@ -247,8 +247,16 @@ export function LookupSelectField<Snapshot extends Record<string, unknown>>({
|
|
|
247
247
|
}
|
|
248
248
|
}, [loadSelectedOption, selectedOption, selectedValue, translate])
|
|
249
249
|
|
|
250
|
+
// A snapshot is a denormalization captured when the user picks a record, so resolving the
|
|
251
|
+
// value an edit form was hydrated with must not re-emit it. Doing so overwrites the stored
|
|
252
|
+
// snapshot with a freshly fetched one, which makes an untouched CrudForm look dirty and
|
|
253
|
+
// raises the "You have unsaved changes" prompt on the way out.
|
|
254
|
+
const hydratedValueRef = React.useRef<string | null>(selectedValue)
|
|
255
|
+
|
|
250
256
|
React.useEffect(() => {
|
|
251
257
|
if (!onSnapshot || !selectedOption || selectedOption.unavailable) return
|
|
258
|
+
if (hydratedValueRef.current === selectedOption.value) return
|
|
259
|
+
hydratedValueRef.current = null
|
|
252
260
|
onSnapshot(selectedOption.snapshot ?? null)
|
|
253
261
|
}, [onSnapshot, selectedOption])
|
|
254
262
|
|
|
@@ -592,7 +600,7 @@ export function parseGeolocationInput(raw: string, translate: Translator): Recor
|
|
|
592
600
|
return parsed
|
|
593
601
|
}
|
|
594
602
|
|
|
595
|
-
export { translateEudrCrudError } from './crudErrorI18n'
|
|
603
|
+
export { translateEudrCrudError, translateEudrErrorMessage } from './crudErrorI18n'
|
|
596
604
|
|
|
597
605
|
let referencedStatementRowKeySeq = 0
|
|
598
606
|
|
|
@@ -46,11 +46,6 @@ export const GEOJSON_TYPES = ['Feature', 'FeatureCollection', 'Point', 'Polygon'
|
|
|
46
46
|
|
|
47
47
|
const uuid = () => z.string().uuid()
|
|
48
48
|
const geoJsonSizeLimit = 1_048_576
|
|
49
|
-
// Two conventions for server-managed fields on these entities: fields listed below
|
|
50
|
-
// are never advertised as create inputs, so a client sending a real value is rejected
|
|
51
|
-
// (`rejectServerComputedFields` tolerates a null/undefined no-op echo). A field that
|
|
52
|
-
// WAS advertised in the create schema — statements' `referenceIssuedAt` — is instead
|
|
53
|
-
// dropped from the create schema, so it is stripped rather than rejected (#5508).
|
|
54
49
|
const serverComputedSubmissionFields = ['completenessScore', 'missingFields'] as const
|
|
55
50
|
const serverComputedPlotFields = ['validationWarnings', 'computedArea'] as const
|
|
56
51
|
const serverComputedRiskAssessmentFields = ['countryRisks', 'overallTier', 'isSimplified', 'assessedByName'] as const
|
|
@@ -69,16 +64,12 @@ const orderSnapshotSchema = z.object({
|
|
|
69
64
|
orderNumber: z.string().max(255).optional().nullable(),
|
|
70
65
|
})
|
|
71
66
|
|
|
72
|
-
// A whole-object POST echoes server-computed fields back with their no-op value
|
|
73
|
-
// (a fresh draft's `submittedAt` is null), so tolerate a null/undefined echo and
|
|
74
|
-
// reject only a meaningful attempt to set server-owned state (#5508).
|
|
75
67
|
function rejectServerComputedFields(fields: readonly string[]): z.ZodType<unknown> {
|
|
76
68
|
return z.unknown().superRefine((input, context) => {
|
|
77
69
|
if (input === null || typeof input !== 'object' || Array.isArray(input)) return
|
|
78
70
|
const record = input as Record<string, unknown>
|
|
79
71
|
for (const field of fields) {
|
|
80
72
|
if (!(field in record)) continue
|
|
81
|
-
if (record[field] === null || record[field] === undefined) continue
|
|
82
73
|
context.addIssue({
|
|
83
74
|
code: z.ZodIssueCode.custom,
|
|
84
75
|
path: [field],
|
|
@@ -342,13 +333,7 @@ const statementBaseSchema = z.object({
|
|
|
342
333
|
notes: z.string().max(5000).optional().nullable(),
|
|
343
334
|
})
|
|
344
335
|
|
|
345
|
-
|
|
346
|
-
// transition) and is never a create input, so it is dropped from the create
|
|
347
|
-
// schema. A whole-object POST that echoes it (null or a value) is accepted and
|
|
348
|
-
// the field ignored, instead of a self-contradictory 400 (#5508).
|
|
349
|
-
export const statementCreateSchema = rejectServerComputedFields(serverComputedStatementFields).pipe(
|
|
350
|
-
statementBaseSchema.omit({ referenceIssuedAt: true }),
|
|
351
|
-
)
|
|
336
|
+
export const statementCreateSchema = rejectServerComputedFields(serverComputedStatementFields).pipe(statementBaseSchema)
|
|
352
337
|
|
|
353
338
|
export const statementUpdateSchema = rejectServerComputedFields(serverComputedStatementFields).pipe(
|
|
354
339
|
z
|
|
@@ -239,7 +239,7 @@
|
|
|
239
239
|
"eudr.lifecycle.amendWindowClosed": "Änderungsfenster geschlossen",
|
|
240
240
|
"eudr.lifecycle.amendWindowRemaining": "Verbleibendes Änderungsfenster: {hours} Std. {minutes} Min.",
|
|
241
241
|
"eudr.lifecycle.confirmArchive": "Erklärung archivieren?",
|
|
242
|
-
"eudr.lifecycle.confirmArchiveBody": "Die Erklärung wird archiviert.",
|
|
242
|
+
"eudr.lifecycle.confirmArchiveBody": "Die Erklärung wird archiviert. Archivierte Erklärungen sind schreibgeschützt und können nicht bearbeitet, wiederhergestellt oder gelöscht werden.",
|
|
243
243
|
"eudr.lifecycle.confirmMarkAvailable": "Erklärung als verfügbar markieren?",
|
|
244
244
|
"eudr.lifecycle.confirmMarkAvailableBody": "Referenzdetails sind erforderlich, bevor die Erklärung verfügbar wird.",
|
|
245
245
|
"eudr.lifecycle.confirmReturnToDraft": "Erklärung in Entwurf zurücksetzen?",
|
|
@@ -313,7 +313,8 @@
|
|
|
313
313
|
"eudr.mitigation_actions.update": "EUDR-Minderungsmaßnahme aktualisieren",
|
|
314
314
|
"eudr.nav.group": "Compliance",
|
|
315
315
|
"eudr.nav.mappings": "Produktzuordnungen",
|
|
316
|
-
"eudr.nav.
|
|
316
|
+
"eudr.nav.module": "EUDR",
|
|
317
|
+
"eudr.nav.overview": "EUDR-Übersicht",
|
|
317
318
|
"eudr.nav.plots": "Parzellen",
|
|
318
319
|
"eudr.nav.riskAssessments": "Risikobewertungen",
|
|
319
320
|
"eudr.nav.statements": "Erklärungen",
|
|
@@ -239,7 +239,7 @@
|
|
|
239
239
|
"eudr.lifecycle.amendWindowClosed": "Amend window closed",
|
|
240
240
|
"eudr.lifecycle.amendWindowRemaining": "Amend window remaining: {hours} h {minutes} min",
|
|
241
241
|
"eudr.lifecycle.confirmArchive": "Archive statement?",
|
|
242
|
-
"eudr.lifecycle.confirmArchiveBody": "The statement will be archived.",
|
|
242
|
+
"eudr.lifecycle.confirmArchiveBody": "The statement will be archived. Archived statements are read-only and cannot be edited, restored, or deleted.",
|
|
243
243
|
"eudr.lifecycle.confirmMarkAvailable": "Mark statement available?",
|
|
244
244
|
"eudr.lifecycle.confirmMarkAvailableBody": "Reference details are required before the statement becomes available.",
|
|
245
245
|
"eudr.lifecycle.confirmReturnToDraft": "Return statement to draft?",
|
|
@@ -313,7 +313,8 @@
|
|
|
313
313
|
"eudr.mitigation_actions.update": "Update EUDR mitigation action",
|
|
314
314
|
"eudr.nav.group": "Compliance",
|
|
315
315
|
"eudr.nav.mappings": "Product mappings",
|
|
316
|
-
"eudr.nav.
|
|
316
|
+
"eudr.nav.module": "EUDR",
|
|
317
|
+
"eudr.nav.overview": "EUDR Overview",
|
|
317
318
|
"eudr.nav.plots": "Plots",
|
|
318
319
|
"eudr.nav.riskAssessments": "Risk assessments",
|
|
319
320
|
"eudr.nav.statements": "Statements",
|
|
@@ -239,7 +239,7 @@
|
|
|
239
239
|
"eudr.lifecycle.amendWindowClosed": "Ventana de modificación cerrada",
|
|
240
240
|
"eudr.lifecycle.amendWindowRemaining": "Ventana de modificación restante: {hours} h {minutes} min",
|
|
241
241
|
"eudr.lifecycle.confirmArchive": "¿Archivar declaración?",
|
|
242
|
-
"eudr.lifecycle.confirmArchiveBody": "La declaración se archivará.",
|
|
242
|
+
"eudr.lifecycle.confirmArchiveBody": "La declaración se archivará. Las declaraciones archivadas son de solo lectura y no se pueden editar, restaurar ni eliminar.",
|
|
243
243
|
"eudr.lifecycle.confirmMarkAvailable": "¿Marcar declaración como disponible?",
|
|
244
244
|
"eudr.lifecycle.confirmMarkAvailableBody": "Los detalles de referencia son obligatorios antes de que la declaración esté disponible.",
|
|
245
245
|
"eudr.lifecycle.confirmReturnToDraft": "¿Volver la declaración a borrador?",
|
|
@@ -313,7 +313,8 @@
|
|
|
313
313
|
"eudr.mitigation_actions.update": "Actualizar acción de mitigación EUDR",
|
|
314
314
|
"eudr.nav.group": "Cumplimiento",
|
|
315
315
|
"eudr.nav.mappings": "Asignaciones de producto",
|
|
316
|
-
"eudr.nav.
|
|
316
|
+
"eudr.nav.module": "EUDR",
|
|
317
|
+
"eudr.nav.overview": "Resumen EUDR",
|
|
317
318
|
"eudr.nav.plots": "Parcelas",
|
|
318
319
|
"eudr.nav.riskAssessments": "Evaluaciones de riesgo",
|
|
319
320
|
"eudr.nav.statements": "Declaraciones",
|