@open-mercato/core 0.6.8-develop.7100.1.fbf66fca35 → 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/api/users/route.js +5 -13
- package/dist/modules/auth/api/users/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/acl.js +1 -9
- package/dist/modules/devices/acl.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 +26 -10
- package/dist/modules/devices/backend/devices/[id]/page.js.map +2 -2
- package/dist/modules/devices/backend/devices/create/page.js +1 -17
- package/dist/modules/devices/backend/devices/create/page.js.map +2 -2
- package/dist/modules/devices/backend/devices/page.js +34 -28
- package/dist/modules/devices/backend/devices/page.js.map +2 -2
- package/dist/modules/devices/setup.js +2 -6
- package/dist/modules/devices/setup.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/api/users/route.ts +5 -18
- 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 +1 -20
- package/src/modules/devices/acl.ts +1 -9
- 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 +32 -18
- package/src/modules/devices/backend/devices/create/page.tsx +1 -17
- package/src/modules/devices/backend/devices/page.tsx +45 -44
- package/src/modules/devices/i18n/de.json +2 -3
- package/src/modules/devices/i18n/en.json +2 -3
- package/src/modules/devices/i18n/es.json +2 -3
- package/src/modules/devices/i18n/ko.json +2 -3
- package/src/modules/devices/i18n/pl.json +2 -3
- package/src/modules/devices/setup.ts +2 -6
- 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/lib/userIdFilter.js +0 -16
- package/dist/modules/auth/lib/userIdFilter.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/devices/backend/devices/useDeviceUserLabels.js +0 -34
- package/dist/modules/devices/backend/devices/useDeviceUserLabels.js.map +0 -7
- package/dist/modules/devices/backend/devices/userOptions.js +0 -52
- package/dist/modules/devices/backend/devices/userOptions.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/lib/userIdFilter.ts +0 -31
- 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/devices/backend/devices/useDeviceUserLabels.ts +0 -45
- package/src/modules/devices/backend/devices/userOptions.ts +0 -99
- 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
|
@@ -55,7 +55,6 @@ type ApiDocument = {
|
|
|
55
55
|
customerEntityId?: string | null
|
|
56
56
|
customerSnapshot?: Record<string, unknown> | null
|
|
57
57
|
channelId?: string | null
|
|
58
|
-
channelName?: string | null
|
|
59
58
|
lineItemCount?: number | null
|
|
60
59
|
grandTotalNetAmount?: number | null
|
|
61
60
|
grandTotalGrossAmount?: number | null
|
|
@@ -71,7 +70,6 @@ type DocumentsResponse = {
|
|
|
71
70
|
items?: Array<Record<string, unknown>>
|
|
72
71
|
total?: number
|
|
73
72
|
totalPages?: number
|
|
74
|
-
totalIsCapped?: boolean
|
|
75
73
|
}
|
|
76
74
|
|
|
77
75
|
type SalesDocumentRow = {
|
|
@@ -81,7 +79,6 @@ type SalesDocumentRow = {
|
|
|
81
79
|
customerName?: string | null
|
|
82
80
|
customerEmail?: string | null
|
|
83
81
|
channelId?: string | null
|
|
84
|
-
channelName?: string | null
|
|
85
82
|
lineItemCount?: number | null
|
|
86
83
|
totalNet?: number | null
|
|
87
84
|
totalGross?: number | null
|
|
@@ -92,20 +89,6 @@ type SalesDocumentRow = {
|
|
|
92
89
|
|
|
93
90
|
const PAGE_SIZE = 20
|
|
94
91
|
|
|
95
|
-
// Not a uuid on purpose: the API drops non-uuid entries from channelIds, so a leak of this sentinel
|
|
96
|
-
// into the id list narrows the filter instead of erroring.
|
|
97
|
-
const UNASSIGNED_CHANNEL_VALUE = '__unassigned__'
|
|
98
|
-
|
|
99
|
-
// Perspectives persist filterValues, so snapshots saved while this filter was a single-value select
|
|
100
|
-
// hold a bare string. Without this the multi-select would read it as an unknown shape and silently
|
|
101
|
-
// clear the user's saved filter.
|
|
102
|
-
function normalizeChannelSelection(value: unknown): string[] {
|
|
103
|
-
const raw = Array.isArray(value) ? value : typeof value === 'string' ? [value] : []
|
|
104
|
-
return raw
|
|
105
|
-
.map((entry) => (typeof entry === 'string' ? entry.trim() : String(entry || '').trim()))
|
|
106
|
-
.filter((entry) => entry.length > 0)
|
|
107
|
-
}
|
|
108
|
-
|
|
109
92
|
function resolveCustomerName(snapshot: CustomerSnapshot | null | undefined, fallback?: string | null) {
|
|
110
93
|
if (!snapshot) return fallback ?? null
|
|
111
94
|
const base = snapshot.customer?.displayName ?? null
|
|
@@ -174,7 +157,6 @@ export function SalesDocumentsTable({ kind }: { kind: SalesDocumentKind }) {
|
|
|
174
157
|
const [page, setPage] = React.useState(1)
|
|
175
158
|
const [total, setTotal] = React.useState(0)
|
|
176
159
|
const [totalPages, setTotalPages] = React.useState(1)
|
|
177
|
-
const [totalIsCapped, setTotalIsCapped] = React.useState(false)
|
|
178
160
|
const [sorting, setSorting] = React.useState<SortingState>([{ id: 'createdAt', desc: true }])
|
|
179
161
|
const [search, setSearch] = React.useState('')
|
|
180
162
|
const [filterValues, setFilterValues] = React.useState<FilterValues>({})
|
|
@@ -196,7 +178,9 @@ export function SalesDocumentsTable({ kind }: { kind: SalesDocumentKind }) {
|
|
|
196
178
|
'Review documents with customer context, totals, and channels.'
|
|
197
179
|
)
|
|
198
180
|
|
|
199
|
-
const
|
|
181
|
+
const fetchChannelOptions = React.useCallback(async (query?: string): Promise<FilterOption[]> => {
|
|
182
|
+
const params = new URLSearchParams({ page: '1', pageSize: '50' })
|
|
183
|
+
if (query && query.trim()) params.set('search', query.trim())
|
|
200
184
|
try {
|
|
201
185
|
const call = await apiCall<{ items?: unknown[] }>(`/api/sales/channels?${params.toString()}`)
|
|
202
186
|
if (!call.ok) return []
|
|
@@ -214,32 +198,6 @@ export function SalesDocumentsTable({ kind }: { kind: SalesDocumentKind }) {
|
|
|
214
198
|
}
|
|
215
199
|
}, [])
|
|
216
200
|
|
|
217
|
-
const fetchChannelOptions = React.useCallback(
|
|
218
|
-
(query?: string) => {
|
|
219
|
-
const params = new URLSearchParams({ page: '1', pageSize: '50' })
|
|
220
|
-
if (query && query.trim()) params.set('search', query.trim())
|
|
221
|
-
return fetchChannelOptionsBy(params)
|
|
222
|
-
},
|
|
223
|
-
[fetchChannelOptionsBy]
|
|
224
|
-
)
|
|
225
|
-
|
|
226
|
-
// A selected channel outside the first options page — restored from a perspective, or simply the
|
|
227
|
-
// 51st channel — would otherwise render as a bare uuid in the filter chip and the selected tag,
|
|
228
|
-
// which is the same defect this change removes from the column. The route supports `ids=`, so
|
|
229
|
-
// fetch exactly the selected ones and merge them in. See
|
|
230
|
-
// `.ai/lessons/async-edit-selects-must-be-hydrated-as-value-plus.md`.
|
|
231
|
-
const seedChannelOptionsForIds = React.useCallback(
|
|
232
|
-
async (ids: string[]) => {
|
|
233
|
-
const missing = ids.filter((id) => id !== UNASSIGNED_CHANNEL_VALUE)
|
|
234
|
-
if (!missing.length) return
|
|
235
|
-
const params = new URLSearchParams({ page: '1', pageSize: String(missing.length) })
|
|
236
|
-
params.set('ids', missing.join(','))
|
|
237
|
-
const opts = await fetchChannelOptionsBy(params)
|
|
238
|
-
if (opts.length) setChannelOptions((prev) => mergeOptions(prev, opts))
|
|
239
|
-
},
|
|
240
|
-
[fetchChannelOptionsBy]
|
|
241
|
-
)
|
|
242
|
-
|
|
243
201
|
const fetchTagOptions = React.useCallback(async (query?: string): Promise<FilterOption[]> => {
|
|
244
202
|
const params = new URLSearchParams({ page: '1', pageSize: '50' })
|
|
245
203
|
if (query && query.trim()) params.set('search', query.trim())
|
|
@@ -320,32 +278,6 @@ export function SalesDocumentsTable({ kind }: { kind: SalesDocumentKind }) {
|
|
|
320
278
|
[fetchChannelOptions]
|
|
321
279
|
)
|
|
322
280
|
|
|
323
|
-
const unassignedChannelOption = React.useMemo<FilterOption>(
|
|
324
|
-
() => ({
|
|
325
|
-
value: UNASSIGNED_CHANNEL_VALUE,
|
|
326
|
-
label: t('sales.documents.list.filters.channelUnassigned', '(No channel)'),
|
|
327
|
-
}),
|
|
328
|
-
[t]
|
|
329
|
-
)
|
|
330
|
-
|
|
331
|
-
// The sentinel is offered alongside the real channels so "these channels or unassigned" is one
|
|
332
|
-
// selection. It is stripped back out when the query is built — the API takes it as a separate
|
|
333
|
-
// channelIdsEmpty flag, not as an id.
|
|
334
|
-
const channelFilterOptions = React.useMemo<FilterOption[]>(
|
|
335
|
-
() => [unassignedChannelOption, ...channelOptions],
|
|
336
|
-
[channelOptions, unassignedChannelOption]
|
|
337
|
-
)
|
|
338
|
-
|
|
339
|
-
const loadChannelFilterOptions = React.useCallback(
|
|
340
|
-
async (query?: string) => {
|
|
341
|
-
const opts = await loadChannelOptions(query)
|
|
342
|
-
// Only offer the sentinel when the user is browsing rather than searching — typing "web"
|
|
343
|
-
// should not suggest "(No channel)".
|
|
344
|
-
return query && query.trim() ? opts : [unassignedChannelOption, ...opts]
|
|
345
|
-
},
|
|
346
|
-
[loadChannelOptions, unassignedChannelOption]
|
|
347
|
-
)
|
|
348
|
-
|
|
349
281
|
const loadTagOptions = React.useCallback(
|
|
350
282
|
async (query?: string) => {
|
|
351
283
|
const opts = await fetchTagOptions(query)
|
|
@@ -375,14 +307,9 @@ export function SalesDocumentsTable({ kind }: { kind: SalesDocumentKind }) {
|
|
|
375
307
|
...(channelsEnabled ? [{
|
|
376
308
|
id: 'channelId',
|
|
377
309
|
label: t('sales.documents.list.filters.channel', 'Channel'),
|
|
378
|
-
type: '
|
|
379
|
-
options:
|
|
380
|
-
loadOptions:
|
|
381
|
-
placeholder: t('sales.documents.list.filters.channelPlaceholder', 'Search channels'),
|
|
382
|
-
formatValue: (val: string) =>
|
|
383
|
-
val === UNASSIGNED_CHANNEL_VALUE
|
|
384
|
-
? t('sales.documents.list.filters.channelUnassigned', '(No channel)')
|
|
385
|
-
: channelOptions.find((opt) => opt.value === val)?.label ?? val,
|
|
310
|
+
type: 'select',
|
|
311
|
+
options: channelOptions,
|
|
312
|
+
loadOptions: loadChannelOptions,
|
|
386
313
|
} satisfies FilterDef] : []),
|
|
387
314
|
{
|
|
388
315
|
id: 'date',
|
|
@@ -440,7 +367,7 @@ export function SalesDocumentsTable({ kind }: { kind: SalesDocumentKind }) {
|
|
|
440
367
|
formatValue: (val: string) => tagOptions.find((o) => o.value === val)?.label ?? val,
|
|
441
368
|
formatDescription: (val: string) => tagOptions.find((o) => o.value === val)?.description ?? null,
|
|
442
369
|
},
|
|
443
|
-
], [channelsEnabled,
|
|
370
|
+
], [channelsEnabled, channelOptions, loadChannelOptions, customerOptions, loadCustomerOptions, loadTagOptions, tagOptions, t])
|
|
444
371
|
|
|
445
372
|
const queryParams = React.useMemo(() => {
|
|
446
373
|
const params = new URLSearchParams()
|
|
@@ -452,10 +379,8 @@ export function SalesDocumentsTable({ kind }: { kind: SalesDocumentKind }) {
|
|
|
452
379
|
params.set('sortField', sort.id)
|
|
453
380
|
params.set('sortDir', sort.desc ? 'desc' : 'asc')
|
|
454
381
|
}
|
|
455
|
-
const
|
|
456
|
-
|
|
457
|
-
if (channelIds.length > 0) params.set('channelIds', channelIds.join(','))
|
|
458
|
-
if (channelSelection.includes(UNASSIGNED_CHANNEL_VALUE)) params.set('channelIdsEmpty', 'true')
|
|
382
|
+
const channelId = typeof filterValues.channelId === 'string' ? filterValues.channelId : ''
|
|
383
|
+
if (channelId) params.set('channelId', channelId)
|
|
459
384
|
const customerIds = Array.isArray(filterValues.customerId)
|
|
460
385
|
? filterValues.customerId
|
|
461
386
|
.map((value) => (typeof value === 'string' ? value.trim() : String(value || '').trim()))
|
|
@@ -544,7 +469,6 @@ export function SalesDocumentsTable({ kind }: { kind: SalesDocumentKind }) {
|
|
|
544
469
|
customerName,
|
|
545
470
|
customerEmail,
|
|
546
471
|
channelId: doc.channelId ?? null,
|
|
547
|
-
channelName: doc.channelName ?? null,
|
|
548
472
|
lineItemCount: doc.lineItemCount ?? null,
|
|
549
473
|
totalNet,
|
|
550
474
|
totalGross,
|
|
@@ -566,7 +490,6 @@ export function SalesDocumentsTable({ kind }: { kind: SalesDocumentKind }) {
|
|
|
566
490
|
setRows([])
|
|
567
491
|
setTotal(0)
|
|
568
492
|
setTotalPages(1)
|
|
569
|
-
setTotalIsCapped(false)
|
|
570
493
|
return
|
|
571
494
|
}
|
|
572
495
|
const payload = call.result ?? {}
|
|
@@ -578,7 +501,6 @@ export function SalesDocumentsTable({ kind }: { kind: SalesDocumentKind }) {
|
|
|
578
501
|
? payload.totalPages
|
|
579
502
|
: Math.max(1, Math.ceil(count / PAGE_SIZE))
|
|
580
503
|
setTotalPages(pages)
|
|
581
|
-
setTotalIsCapped(payload.totalIsCapped === true)
|
|
582
504
|
setCacheStatus(call.cacheStatus ?? null)
|
|
583
505
|
} catch (err) {
|
|
584
506
|
logger.error('sales.documents.list', { err })
|
|
@@ -592,22 +514,10 @@ export function SalesDocumentsTable({ kind }: { kind: SalesDocumentKind }) {
|
|
|
592
514
|
void loadDocuments()
|
|
593
515
|
}, [loadDocuments, reloadToken, scopeVersion])
|
|
594
516
|
|
|
595
|
-
// Normalize at the hydration boundary, not only where the query string is built: a perspective
|
|
596
|
-
// saved while this filter was a single-value select restores `channelId` as a bare string, and
|
|
597
|
-
// the `tags` control renders nothing for a non-array value. Storing the normalized shape keeps
|
|
598
|
-
// the control, the active-filter chip and the query builder all reading one shape — otherwise the
|
|
599
|
-
// list is filtered while the field looks empty, and the next channel the user picks replaces the
|
|
600
|
-
// restored one instead of joining it.
|
|
601
517
|
const handleFiltersApply = React.useCallback((values: FilterValues) => {
|
|
602
|
-
|
|
603
|
-
setFilterValues(values)
|
|
604
|
-
} else {
|
|
605
|
-
const channelSelection = normalizeChannelSelection(values.channelId)
|
|
606
|
-
setFilterValues({ ...values, channelId: channelSelection })
|
|
607
|
-
void seedChannelOptionsForIds(channelSelection)
|
|
608
|
-
}
|
|
518
|
+
setFilterValues(values)
|
|
609
519
|
setPage(1)
|
|
610
|
-
}, [
|
|
520
|
+
}, [])
|
|
611
521
|
|
|
612
522
|
const handleFiltersClear = React.useCallback(() => {
|
|
613
523
|
setFilterValues({})
|
|
@@ -715,10 +625,9 @@ export function SalesDocumentsTable({ kind }: { kind: SalesDocumentKind }) {
|
|
|
715
625
|
cell: ({ row }) => {
|
|
716
626
|
const channelId = row.original.channelId
|
|
717
627
|
if (!channelId) return <span className="text-xs text-muted-foreground">{t('sales.documents.list.table.unassigned', 'Unassigned')}</span>
|
|
718
|
-
|
|
719
|
-
// The uuid remains only for a channel the list response could not resolve.
|
|
628
|
+
const channel = channelOptions.find((opt) => opt.value === channelId)
|
|
720
629
|
return (
|
|
721
|
-
<span className="text-sm">{
|
|
630
|
+
<span className="text-sm">{channel?.label ?? channelId}</span>
|
|
722
631
|
)
|
|
723
632
|
},
|
|
724
633
|
enableSorting: false,
|
|
@@ -756,7 +665,7 @@ export function SalesDocumentsTable({ kind }: { kind: SalesDocumentKind }) {
|
|
|
756
665
|
? <span className="text-xs text-muted-foreground">{new Date(row.original.date).toLocaleString()}</span>
|
|
757
666
|
: <span className="text-xs text-muted-foreground">—</span>,
|
|
758
667
|
},
|
|
759
|
-
], [channelsEnabled, kind, statusMap, t])
|
|
668
|
+
], [channelsEnabled, channelOptions, kind, statusMap, t])
|
|
760
669
|
|
|
761
670
|
const emptyLabel = kind === 'order'
|
|
762
671
|
? t('sales.documents.list.table.emptyOrders', 'No orders yet.')
|
|
@@ -804,7 +713,6 @@ export function SalesDocumentsTable({ kind }: { kind: SalesDocumentKind }) {
|
|
|
804
713
|
pageSize: PAGE_SIZE,
|
|
805
714
|
total,
|
|
806
715
|
totalPages,
|
|
807
|
-
totalIsCapped,
|
|
808
716
|
onPageChange: setPage,
|
|
809
717
|
cacheStatus,
|
|
810
718
|
}}
|
|
@@ -7,7 +7,7 @@ import { DataTable } from '@open-mercato/ui/backend/DataTable'
|
|
|
7
7
|
import { RowActions } from '@open-mercato/ui/backend/RowActions'
|
|
8
8
|
import { EmptyState } from '@open-mercato/ui/primitives/empty-state'
|
|
9
9
|
import { Button } from '@open-mercato/ui/primitives/button'
|
|
10
|
-
import {
|
|
10
|
+
import { useT } from '@open-mercato/shared/lib/i18n/context'
|
|
11
11
|
import { LineItemDialog } from './LineItemDialog'
|
|
12
12
|
import type { SalesLineRecord } from './lineItemTypes'
|
|
13
13
|
import { formatMoney, normalizeNumber } from './lineItemUtils'
|
|
@@ -93,7 +93,6 @@ export function SalesOrderDraftLines({
|
|
|
93
93
|
onChange,
|
|
94
94
|
}: SalesOrderDraftLinesProps) {
|
|
95
95
|
const t = useT()
|
|
96
|
-
const locale = useLocale()
|
|
97
96
|
const [dialogOpen, setDialogOpen] = React.useState(false)
|
|
98
97
|
const [editing, setEditing] = React.useState<SalesOrderLineDraft | null>(null)
|
|
99
98
|
|
|
@@ -113,14 +112,14 @@ export function SalesOrderDraftLines({
|
|
|
113
112
|
{
|
|
114
113
|
id: 'unitPrice',
|
|
115
114
|
header: t('sales.documents.items.table.unit', 'Unit price'),
|
|
116
|
-
cell: ({ row }) => formatMoney(row.original.record.unitPriceGross, row.original.record.currencyCode ?? currencyCode ?? undefined
|
|
115
|
+
cell: ({ row }) => formatMoney(row.original.record.unitPriceGross, row.original.record.currencyCode ?? currencyCode ?? undefined),
|
|
117
116
|
},
|
|
118
117
|
{
|
|
119
118
|
id: 'total',
|
|
120
119
|
header: t('sales.documents.items.table.total', 'Total'),
|
|
121
|
-
cell: ({ row }) => formatMoney(row.original.record.totalGross, row.original.record.currencyCode ?? currencyCode ?? undefined
|
|
120
|
+
cell: ({ row }) => formatMoney(row.original.record.totalGross, row.original.record.currencyCode ?? currencyCode ?? undefined),
|
|
122
121
|
},
|
|
123
|
-
], [currencyCode,
|
|
122
|
+
], [currencyCode, t])
|
|
124
123
|
|
|
125
124
|
const openCreate = React.useCallback(() => {
|
|
126
125
|
setEditing(null)
|
|
@@ -162,7 +161,7 @@ export function SalesOrderDraftLines({
|
|
|
162
161
|
{t('sales.documents.items.add', 'Add item')}
|
|
163
162
|
</Button>
|
|
164
163
|
</div>
|
|
165
|
-
{error ? <p className="text-sm text-
|
|
164
|
+
{error ? <p className="text-sm text-destructive" role="alert">{error}</p> : null}
|
|
166
165
|
<DataTable
|
|
167
166
|
columns={columns}
|
|
168
167
|
data={lines}
|
|
@@ -20,7 +20,7 @@ import { flash } from '@open-mercato/ui/backend/FlashMessages'
|
|
|
20
20
|
import { cn } from '@open-mercato/shared/lib/utils'
|
|
21
21
|
import { E } from '#generated/entities.ids.generated'
|
|
22
22
|
import { emitSalesDocumentTotalsRefresh } from '@open-mercato/core/modules/sales/lib/frontend/documentTotalsEvents'
|
|
23
|
-
import { useT
|
|
23
|
+
import { useT } from '@open-mercato/shared/lib/i18n/context'
|
|
24
24
|
import { formatMoney, normalizeNumber } from './lineItemUtils'
|
|
25
25
|
import type { OrderLine, ShipmentRow } from './shipmentTypes'
|
|
26
26
|
import { formatAddressString, type AddressFormatStrategy, type AddressValue } from '@open-mercato/core/modules/customers/utils/addressFormat'
|
|
@@ -290,7 +290,6 @@ export function ShipmentDialog({
|
|
|
290
290
|
onAddComment,
|
|
291
291
|
}: ShipmentDialogProps) {
|
|
292
292
|
const t = useT()
|
|
293
|
-
const locale = useLocale()
|
|
294
293
|
const [formResetKey, setFormResetKey] = React.useState(0)
|
|
295
294
|
const [shippingMethods, setShippingMethods] = React.useState<ShippingMethodOption[]>([])
|
|
296
295
|
const [shippingMethodLoading, setShippingMethodLoading] = React.useState(false)
|
|
@@ -541,21 +540,21 @@ export function ShipmentDialog({
|
|
|
541
540
|
if (option.avgPrice !== null) {
|
|
542
541
|
parts.push(
|
|
543
542
|
t('sales.documents.shipments.shippingMethodAvg', 'Avg {{price}}', {
|
|
544
|
-
price: formatMoney(option.avgPrice, currency ?? null
|
|
543
|
+
price: formatMoney(option.avgPrice, currency ?? null),
|
|
545
544
|
}),
|
|
546
545
|
)
|
|
547
546
|
}
|
|
548
547
|
if (option.minPrice !== null) {
|
|
549
548
|
parts.push(
|
|
550
549
|
t('sales.documents.shipments.shippingMethodMin', 'Min {{price}}', {
|
|
551
|
-
price: formatMoney(option.minPrice, currency ?? null
|
|
550
|
+
price: formatMoney(option.minPrice, currency ?? null),
|
|
552
551
|
}),
|
|
553
552
|
)
|
|
554
553
|
}
|
|
555
554
|
if (parts.length === 0) return undefined
|
|
556
555
|
return parts.join(' · ')
|
|
557
556
|
},
|
|
558
|
-
[currencyCode,
|
|
557
|
+
[currencyCode, t],
|
|
559
558
|
)
|
|
560
559
|
|
|
561
560
|
const mapShippingMethod = React.useCallback(
|
|
@@ -10,7 +10,7 @@ import { apiCall, withScopedApiRequestHeaders } from '@open-mercato/ui/backend/u
|
|
|
10
10
|
import { buildOptimisticLockHeader } from '@open-mercato/ui/backend/utils/optimisticLock'
|
|
11
11
|
import { deleteCrud } from '@open-mercato/ui/backend/utils/crud'
|
|
12
12
|
import { useOrganizationScopeDetail } from '@open-mercato/shared/lib/frontend/useOrganizationScope'
|
|
13
|
-
import { useT
|
|
13
|
+
import { useT } from '@open-mercato/shared/lib/i18n/context'
|
|
14
14
|
import { useConfirmDialog } from '@open-mercato/ui/backend/confirm-dialog'
|
|
15
15
|
import {
|
|
16
16
|
emitSalesDocumentTotalsRefresh,
|
|
@@ -41,11 +41,11 @@ type SalesShipmentsSectionProps = {
|
|
|
41
41
|
onAddComment?: (body: string) => Promise<void>
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
function formatDisplayDate(value: string | null | undefined): string | null {
|
|
45
45
|
if (!value) return null
|
|
46
46
|
const date = new Date(value)
|
|
47
47
|
if (Number.isNaN(date.getTime())) return null
|
|
48
|
-
return new Intl.DateTimeFormat(
|
|
48
|
+
return new Intl.DateTimeFormat(undefined, { dateStyle: 'medium' }).format(date)
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
const formatShipmentAddress = (metadata?: Record<string, unknown> | null): string | null => {
|
|
@@ -123,7 +123,6 @@ export function SalesShipmentsSection({
|
|
|
123
123
|
onAddComment,
|
|
124
124
|
}: SalesShipmentsSectionProps) {
|
|
125
125
|
const t = useT()
|
|
126
|
-
const locale = useLocale()
|
|
127
126
|
const { organizationId, tenantId } = useOrganizationScopeDetail()
|
|
128
127
|
const { confirm, ConfirmDialogElement } = useConfirmDialog()
|
|
129
128
|
const resolvedOrganizationId = organizationIdProp ?? organizationId ?? null
|
|
@@ -487,8 +486,8 @@ export function SalesShipmentsSection({
|
|
|
487
486
|
) : (
|
|
488
487
|
<div className="grid gap-3 md:grid-cols-2">
|
|
489
488
|
{shipments.map((shipment) => {
|
|
490
|
-
const shippedAt = formatDisplayDate(shipment.shippedAt
|
|
491
|
-
const deliveredAt = formatDisplayDate(shipment.deliveredAt
|
|
489
|
+
const shippedAt = formatDisplayDate(shipment.shippedAt)
|
|
490
|
+
const deliveredAt = formatDisplayDate(shipment.deliveredAt)
|
|
492
491
|
const addressSummary = formatShipmentAddress(shipment.metadata)
|
|
493
492
|
const statusLabel =
|
|
494
493
|
shipment.statusLabel ??
|
|
@@ -9,14 +9,9 @@ export function normalizeNumber(value: unknown, fallback = 0): number {
|
|
|
9
9
|
return fallback
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
* Pass `locale` to format in the application locale (`useLocale()` in client components).
|
|
14
|
-
* Omitting it keeps the runtime default, which varies per machine and is therefore not
|
|
15
|
-
* assertable in tests.
|
|
16
|
-
*/
|
|
17
|
-
export function formatMoney(value: number, currency: string | null | undefined, locale?: string): string {
|
|
12
|
+
export function formatMoney(value: number, currency: string | null | undefined): string {
|
|
18
13
|
if (!currency) return value.toFixed(2)
|
|
19
|
-
return new Intl.NumberFormat(
|
|
14
|
+
return new Intl.NumberFormat(undefined, { style: 'currency', currency }).format(value)
|
|
20
15
|
}
|
|
21
16
|
|
|
22
17
|
export type LineDiscountDisplay = {
|
|
@@ -1790,9 +1790,6 @@ export class SalesPaymentAllocation {
|
|
|
1790
1790
|
|
|
1791
1791
|
@Entity({ tableName: 'sales_notes' })
|
|
1792
1792
|
@Index({ name: 'sales_notes_scope_idx', properties: ['organizationId', 'tenantId'] })
|
|
1793
|
-
@Index({ name: 'sales_notes_context_idx', properties: ['contextId'] })
|
|
1794
|
-
@Index({ name: 'sales_notes_order_idx', properties: ['order'] })
|
|
1795
|
-
@Index({ name: 'sales_notes_quote_idx', properties: ['quote'] })
|
|
1796
1793
|
export class SalesNote {
|
|
1797
1794
|
@PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })
|
|
1798
1795
|
id!: string
|
|
@@ -1839,9 +1836,6 @@ export class SalesNote {
|
|
|
1839
1836
|
|
|
1840
1837
|
@Entity({ tableName: 'sales_document_addresses' })
|
|
1841
1838
|
@Index({ name: 'sales_document_addresses_scope_idx', properties: ['organizationId', 'tenantId'] })
|
|
1842
|
-
@Index({ name: 'sales_document_addresses_document_idx', properties: ['documentId'] })
|
|
1843
|
-
@Index({ name: 'sales_document_addresses_order_idx', properties: ['order'] })
|
|
1844
|
-
@Index({ name: 'sales_document_addresses_quote_idx', properties: ['quote'] })
|
|
1845
1839
|
export class SalesDocumentAddress {
|
|
1846
1840
|
@PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })
|
|
1847
1841
|
id!: string
|
|
@@ -5,7 +5,6 @@ export const extensionPoints = defineModuleExtensionPoints({
|
|
|
5
5
|
hosts: {
|
|
6
6
|
ordersTable: dataTableExtensionHost({ tableId: 'sales.orders', source: 'components/documents/SalesDocumentsTable.tsx' }),
|
|
7
7
|
quotesTable: dataTableExtensionHost({ tableId: 'sales.quotes', source: 'components/documents/SalesDocumentsTable.tsx' }),
|
|
8
|
-
paymentsTable: dataTableExtensionHost({ tableId: 'sales.payments', source: 'components/documents/PaymentsSection.tsx' }),
|
|
9
8
|
orderItemColumns: injectionExtensionHost({
|
|
10
9
|
family: 'detail',
|
|
11
10
|
spotId: 'data-table:sales.order.items:columns',
|
|
@@ -932,22 +932,59 @@
|
|
|
932
932
|
"sales.documents.history.changedFields": "Geänderte Felder: {fields}",
|
|
933
933
|
"sales.documents.history.empty": "Noch keine Verlaufseinträge.",
|
|
934
934
|
"sales.documents.history.error": "Verlauf konnte nicht geladen werden.",
|
|
935
|
+
"sales.documents.history.fields.adjustments": "Anpassungen",
|
|
936
|
+
"sales.documents.history.fields.billingAddress": "Rechnungsadresse",
|
|
937
|
+
"sales.documents.history.fields.channel": "Kanal",
|
|
935
938
|
"sales.documents.history.fields.comment": "Kommentar",
|
|
939
|
+
"sales.documents.history.fields.comments": "Kommentare",
|
|
936
940
|
"sales.documents.history.fields.configuration": "Konfiguration",
|
|
937
941
|
"sales.documents.history.fields.currency": "Währung",
|
|
938
942
|
"sales.documents.history.fields.customFields": "Benutzerdefinierte Felder",
|
|
943
|
+
"sales.documents.history.fields.customer": "Kunde",
|
|
944
|
+
"sales.documents.history.fields.customerContact": "Kundenkontakt",
|
|
945
|
+
"sales.documents.history.fields.customerReference": "Kundenreferenz",
|
|
946
|
+
"sales.documents.history.fields.customerSnapshot": "Kundendaten",
|
|
947
|
+
"sales.documents.history.fields.deliveryWindow": "Lieferfenster",
|
|
939
948
|
"sales.documents.history.fields.description": "Beschreibung",
|
|
940
949
|
"sales.documents.history.fields.discountAmount": "Rabattbetrag",
|
|
941
950
|
"sales.documents.history.fields.discountPercent": "Rabattprozentsatz",
|
|
951
|
+
"sales.documents.history.fields.discountTotal": "Rabattsumme",
|
|
952
|
+
"sales.documents.history.fields.dueAt": "Fälligkeitsdatum",
|
|
953
|
+
"sales.documents.history.fields.exchangeRate": "Wechselkurs",
|
|
954
|
+
"sales.documents.history.fields.expectedDeliveryAt": "Voraussichtliche Lieferung",
|
|
955
|
+
"sales.documents.history.fields.externalReference": "Externe Referenz",
|
|
956
|
+
"sales.documents.history.fields.fulfillmentStatus": "Erfüllungsstatus",
|
|
957
|
+
"sales.documents.history.fields.grandTotalGross": "Gesamtsumme brutto",
|
|
958
|
+
"sales.documents.history.fields.grandTotalNet": "Gesamtsumme netto",
|
|
959
|
+
"sales.documents.history.fields.internalNotes": "Interne Notizen",
|
|
960
|
+
"sales.documents.history.fields.lineItemCount": "Anzahl Positionen",
|
|
961
|
+
"sales.documents.history.fields.metadata": "Metadaten",
|
|
942
962
|
"sales.documents.history.fields.name": "Name",
|
|
963
|
+
"sales.documents.history.fields.outstanding": "Offener Betrag",
|
|
964
|
+
"sales.documents.history.fields.paidTotal": "Bezahlt gesamt",
|
|
965
|
+
"sales.documents.history.fields.paymentMethod": "Zahlungsart",
|
|
966
|
+
"sales.documents.history.fields.paymentStatus": "Zahlungsstatus",
|
|
967
|
+
"sales.documents.history.fields.placedAt": "Bestelldatum",
|
|
943
968
|
"sales.documents.history.fields.product": "Produkt",
|
|
944
969
|
"sales.documents.history.fields.promotionCode": "Aktionscode",
|
|
945
970
|
"sales.documents.history.fields.quantity": "Menge",
|
|
946
971
|
"sales.documents.history.fields.quantityUnit": "Mengeneinheit",
|
|
972
|
+
"sales.documents.history.fields.refundedTotal": "Erstattet gesamt",
|
|
973
|
+
"sales.documents.history.fields.shippingAddress": "Lieferadresse",
|
|
974
|
+
"sales.documents.history.fields.shippingGross": "Versand brutto",
|
|
975
|
+
"sales.documents.history.fields.shippingMethod": "Versandart",
|
|
976
|
+
"sales.documents.history.fields.shippingNet": "Versand netto",
|
|
947
977
|
"sales.documents.history.fields.status": "Status",
|
|
978
|
+
"sales.documents.history.fields.subtotalGross": "Zwischensumme brutto",
|
|
979
|
+
"sales.documents.history.fields.subtotalNet": "Zwischensumme netto",
|
|
980
|
+
"sales.documents.history.fields.surchargeTotal": "Zuschlagssumme",
|
|
981
|
+
"sales.documents.history.fields.taxInfo": "Steuerdetails",
|
|
948
982
|
"sales.documents.history.fields.taxRate": "Steuerklasse",
|
|
983
|
+
"sales.documents.history.fields.taxTotal": "Steuersumme",
|
|
984
|
+
"sales.documents.history.fields.totals": "Summen",
|
|
949
985
|
"sales.documents.history.fields.unitPriceGross": "Bruttostückpreis",
|
|
950
986
|
"sales.documents.history.fields.unitPriceNet": "Nettostückpreis",
|
|
987
|
+
"sales.documents.history.fields.validUntil": "Gültig bis",
|
|
951
988
|
"sales.documents.history.fields.variant": "Variante",
|
|
952
989
|
"sales.documents.history.filter.actions": "Aktionen",
|
|
953
990
|
"sales.documents.history.filter.all": "Alle",
|
|
@@ -979,7 +1016,6 @@
|
|
|
979
1016
|
"sales.documents.items.errorProductRequired": "Wähle ein Produkt aus, um fortzufahren.",
|
|
980
1017
|
"sales.documents.items.errorQuantity": "Die Menge muss größer als 0 sein.",
|
|
981
1018
|
"sales.documents.items.errorQuantityBelowShipped": "Die Menge kann nicht unter die bereits versandten {{shipped}} gesenkt werden.",
|
|
982
|
-
"sales.documents.items.errorQuantityShipmentsUnknown": "Die Menge kann erst gesenkt werden, wenn die Sendungen dieses Auftrags geladen wurden. Öffnen Sie den Auftrag erneut, um es noch einmal zu versuchen.",
|
|
983
1019
|
"sales.documents.items.errorSave": "Position konnte nicht gespeichert werden.",
|
|
984
1020
|
"sales.documents.items.errorScope": "Organisation und Mandant sind erforderlich.",
|
|
985
1021
|
"sales.documents.items.errorUnitPrice": "Der Stückpreis muss größer als 0 sein.",
|
|
@@ -1023,8 +1059,6 @@
|
|
|
1023
1059
|
"sales.documents.items.save": "Änderungen speichern",
|
|
1024
1060
|
"sales.documents.items.selectedProduct": "Ausgewählt {{id}}",
|
|
1025
1061
|
"sales.documents.items.selectedVariant": "Ausgewählt {{id}}",
|
|
1026
|
-
"sales.documents.items.shippedLineLockPending": "Die Preisangaben sind gesperrt, bis die Sendungen dieses Auftrags geladen wurden. Öffnen Sie den Auftrag erneut, um es noch einmal zu versuchen — Name und eine Erhöhung der Menge können weiterhin bearbeitet werden.",
|
|
1027
|
-
"sales.documents.items.shippedLineLocked": "Die Preisangaben dieser Position sind gesperrt, da bereits Artikel versandt wurden. Name und Menge können weiterhin bearbeitet werden.",
|
|
1028
1062
|
"sales.documents.items.status": "Status",
|
|
1029
1063
|
"sales.documents.items.statusEmpty": "Kein Status",
|
|
1030
1064
|
"sales.documents.items.statusLoading": "Status werden geladen…",
|
|
@@ -1059,8 +1093,6 @@
|
|
|
1059
1093
|
"sales.documents.items.variantSearch": "Variante suchen",
|
|
1060
1094
|
"sales.documents.list.errors.load": "Dokumente konnten nicht geladen werden.",
|
|
1061
1095
|
"sales.documents.list.filters.channel": "Kanal",
|
|
1062
|
-
"sales.documents.list.filters.channelPlaceholder": "Kanäle suchen",
|
|
1063
|
-
"sales.documents.list.filters.channelUnassigned": "(Kein Kanal)",
|
|
1064
1096
|
"sales.documents.list.filters.customer": "Kunden-ID",
|
|
1065
1097
|
"sales.documents.list.filters.customerPlaceholder": "Kunden-ID",
|
|
1066
1098
|
"sales.documents.list.filters.date": "Datum",
|
|
@@ -1289,16 +1321,13 @@
|
|
|
1289
1321
|
"sales.quotes.email.subject": "Angebot {quoteNumber}",
|
|
1290
1322
|
"sales.quotes.email.total": "Gesamt: {amount} {currency}",
|
|
1291
1323
|
"sales.quotes.email.validUntil": "Gültig bis: {date}",
|
|
1292
|
-
"sales.quotes.exchange_rate_unsupported": "Der Wechselkurs ist für Angebote nicht verfügbar.",
|
|
1293
1324
|
"sales.quotes.form.general": "Allgemein",
|
|
1294
1325
|
"sales.quotes.form.lines": "Positionen",
|
|
1295
1326
|
"sales.quotes.form.notes": "Notizen",
|
|
1296
|
-
"sales.quotes.fulfillment_status_unsupported": "Der Fulfillment-Status ist für Angebote nicht verfügbar.",
|
|
1297
1327
|
"sales.quotes.internal_notes_unsupported": "Interne Notizen sind für Angebote nicht verfügbar.",
|
|
1298
1328
|
"sales.quotes.lines.delete": "Angebotsposition löschen",
|
|
1299
1329
|
"sales.quotes.lines.upsert": "Angebotsposition aktualisieren",
|
|
1300
1330
|
"sales.quotes.list.title": "Angebote",
|
|
1301
|
-
"sales.quotes.payment_status_unsupported": "Der Zahlungsstatus ist für Angebote nicht verfügbar.",
|
|
1302
1331
|
"sales.quotes.public.acceptButton": "Angebot annehmen",
|
|
1303
1332
|
"sales.quotes.public.acceptFailed": "Angebot konnte nicht angenommen werden.",
|
|
1304
1333
|
"sales.quotes.public.acceptedMessage": "Auftrag erstellt: {{orderNumber}}",
|
|
@@ -932,22 +932,59 @@
|
|
|
932
932
|
"sales.documents.history.changedFields": "Changed fields: {fields}",
|
|
933
933
|
"sales.documents.history.empty": "No history entries yet.",
|
|
934
934
|
"sales.documents.history.error": "Failed to load history.",
|
|
935
|
+
"sales.documents.history.fields.adjustments": "Adjustments",
|
|
936
|
+
"sales.documents.history.fields.billingAddress": "Billing address",
|
|
937
|
+
"sales.documents.history.fields.channel": "Channel",
|
|
935
938
|
"sales.documents.history.fields.comment": "Comment",
|
|
939
|
+
"sales.documents.history.fields.comments": "Comments",
|
|
936
940
|
"sales.documents.history.fields.configuration": "Configuration",
|
|
937
941
|
"sales.documents.history.fields.currency": "Currency",
|
|
938
942
|
"sales.documents.history.fields.customFields": "Custom fields",
|
|
943
|
+
"sales.documents.history.fields.customer": "Customer",
|
|
944
|
+
"sales.documents.history.fields.customerContact": "Customer contact",
|
|
945
|
+
"sales.documents.history.fields.customerReference": "Customer reference",
|
|
946
|
+
"sales.documents.history.fields.customerSnapshot": "Customer details",
|
|
947
|
+
"sales.documents.history.fields.deliveryWindow": "Delivery window",
|
|
939
948
|
"sales.documents.history.fields.description": "Description",
|
|
940
949
|
"sales.documents.history.fields.discountAmount": "Discount amount",
|
|
941
950
|
"sales.documents.history.fields.discountPercent": "Discount percent",
|
|
951
|
+
"sales.documents.history.fields.discountTotal": "Discount total",
|
|
952
|
+
"sales.documents.history.fields.dueAt": "Due at",
|
|
953
|
+
"sales.documents.history.fields.exchangeRate": "Exchange rate",
|
|
954
|
+
"sales.documents.history.fields.expectedDeliveryAt": "Expected delivery",
|
|
955
|
+
"sales.documents.history.fields.externalReference": "External reference",
|
|
956
|
+
"sales.documents.history.fields.fulfillmentStatus": "Fulfillment status",
|
|
957
|
+
"sales.documents.history.fields.grandTotalGross": "Gross grand total",
|
|
958
|
+
"sales.documents.history.fields.grandTotalNet": "Net grand total",
|
|
959
|
+
"sales.documents.history.fields.internalNotes": "Internal notes",
|
|
960
|
+
"sales.documents.history.fields.lineItemCount": "Line item count",
|
|
961
|
+
"sales.documents.history.fields.metadata": "Metadata",
|
|
942
962
|
"sales.documents.history.fields.name": "Name",
|
|
963
|
+
"sales.documents.history.fields.outstanding": "Outstanding amount",
|
|
964
|
+
"sales.documents.history.fields.paidTotal": "Paid total",
|
|
965
|
+
"sales.documents.history.fields.paymentMethod": "Payment method",
|
|
966
|
+
"sales.documents.history.fields.paymentStatus": "Payment status",
|
|
967
|
+
"sales.documents.history.fields.placedAt": "Placed at",
|
|
943
968
|
"sales.documents.history.fields.product": "Product",
|
|
944
969
|
"sales.documents.history.fields.promotionCode": "Promotion code",
|
|
945
970
|
"sales.documents.history.fields.quantity": "Quantity",
|
|
946
971
|
"sales.documents.history.fields.quantityUnit": "Quantity unit",
|
|
972
|
+
"sales.documents.history.fields.refundedTotal": "Refunded total",
|
|
973
|
+
"sales.documents.history.fields.shippingAddress": "Shipping address",
|
|
974
|
+
"sales.documents.history.fields.shippingGross": "Gross shipping",
|
|
975
|
+
"sales.documents.history.fields.shippingMethod": "Shipping method",
|
|
976
|
+
"sales.documents.history.fields.shippingNet": "Net shipping",
|
|
947
977
|
"sales.documents.history.fields.status": "Status",
|
|
978
|
+
"sales.documents.history.fields.subtotalGross": "Gross subtotal",
|
|
979
|
+
"sales.documents.history.fields.subtotalNet": "Net subtotal",
|
|
980
|
+
"sales.documents.history.fields.surchargeTotal": "Surcharge total",
|
|
981
|
+
"sales.documents.history.fields.taxInfo": "Tax details",
|
|
948
982
|
"sales.documents.history.fields.taxRate": "Tax class",
|
|
983
|
+
"sales.documents.history.fields.taxTotal": "Tax total",
|
|
984
|
+
"sales.documents.history.fields.totals": "Totals",
|
|
949
985
|
"sales.documents.history.fields.unitPriceGross": "Gross unit price",
|
|
950
986
|
"sales.documents.history.fields.unitPriceNet": "Net unit price",
|
|
987
|
+
"sales.documents.history.fields.validUntil": "Valid until",
|
|
951
988
|
"sales.documents.history.fields.variant": "Variant",
|
|
952
989
|
"sales.documents.history.filter.actions": "Actions",
|
|
953
990
|
"sales.documents.history.filter.all": "All",
|
|
@@ -979,7 +1016,6 @@
|
|
|
979
1016
|
"sales.documents.items.errorProductRequired": "Select a product to continue.",
|
|
980
1017
|
"sales.documents.items.errorQuantity": "Quantity must be greater than 0.",
|
|
981
1018
|
"sales.documents.items.errorQuantityBelowShipped": "You cannot lower the quantity below the {{shipped}} already shipped.",
|
|
982
|
-
"sales.documents.items.errorQuantityShipmentsUnknown": "The quantity cannot be lowered until this order's shipments have been read. Reopen the order to try again.",
|
|
983
1019
|
"sales.documents.items.errorSave": "Failed to save line.",
|
|
984
1020
|
"sales.documents.items.errorScope": "Organization and tenant are required.",
|
|
985
1021
|
"sales.documents.items.errorUnitPrice": "Unit price must be greater than 0.",
|
|
@@ -1023,8 +1059,6 @@
|
|
|
1023
1059
|
"sales.documents.items.save": "Save changes",
|
|
1024
1060
|
"sales.documents.items.selectedProduct": "Selected {{id}}",
|
|
1025
1061
|
"sales.documents.items.selectedVariant": "Selected {{id}}",
|
|
1026
|
-
"sales.documents.items.shippedLineLockPending": "Pricing is locked until this order's shipments have been read. Reopen the order to try again — you can still edit the name and raise the quantity.",
|
|
1027
|
-
"sales.documents.items.shippedLineLocked": "Pricing is locked on this line because it already has shipped items. You can still edit the name and quantity.",
|
|
1028
1062
|
"sales.documents.items.status": "Status",
|
|
1029
1063
|
"sales.documents.items.statusEmpty": "No status",
|
|
1030
1064
|
"sales.documents.items.statusLoading": "Loading statuses…",
|
|
@@ -1059,8 +1093,6 @@
|
|
|
1059
1093
|
"sales.documents.items.variantSearch": "Search variant",
|
|
1060
1094
|
"sales.documents.list.errors.load": "Failed to load documents.",
|
|
1061
1095
|
"sales.documents.list.filters.channel": "Channel",
|
|
1062
|
-
"sales.documents.list.filters.channelPlaceholder": "Search channels",
|
|
1063
|
-
"sales.documents.list.filters.channelUnassigned": "(No channel)",
|
|
1064
1096
|
"sales.documents.list.filters.customer": "Customer id",
|
|
1065
1097
|
"sales.documents.list.filters.customerPlaceholder": "Customer id",
|
|
1066
1098
|
"sales.documents.list.filters.date": "Date",
|
|
@@ -1289,16 +1321,13 @@
|
|
|
1289
1321
|
"sales.quotes.email.subject": "Quote {quoteNumber}",
|
|
1290
1322
|
"sales.quotes.email.total": "Total: {amount} {currency}",
|
|
1291
1323
|
"sales.quotes.email.validUntil": "Valid until: {date}",
|
|
1292
|
-
"sales.quotes.exchange_rate_unsupported": "Exchange rate is not available on quotes.",
|
|
1293
1324
|
"sales.quotes.form.general": "General",
|
|
1294
1325
|
"sales.quotes.form.lines": "Line Items",
|
|
1295
1326
|
"sales.quotes.form.notes": "Notes",
|
|
1296
|
-
"sales.quotes.fulfillment_status_unsupported": "Fulfillment status is not available on quotes.",
|
|
1297
1327
|
"sales.quotes.internal_notes_unsupported": "Internal notes are not available on quotes.",
|
|
1298
1328
|
"sales.quotes.lines.delete": "Delete quote line",
|
|
1299
1329
|
"sales.quotes.lines.upsert": "Update quote line",
|
|
1300
1330
|
"sales.quotes.list.title": "Quotes",
|
|
1301
|
-
"sales.quotes.payment_status_unsupported": "Payment status is not available on quotes.",
|
|
1302
1331
|
"sales.quotes.public.acceptButton": "Accept quote",
|
|
1303
1332
|
"sales.quotes.public.acceptFailed": "Failed to accept quote.",
|
|
1304
1333
|
"sales.quotes.public.acceptedMessage": "Order created: {{orderNumber}}",
|