@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
|
@@ -14,7 +14,6 @@ import {
|
|
|
14
14
|
import { useT } from '@open-mercato/shared/lib/i18n/context'
|
|
15
15
|
import { createTranslatorWithFallback } from '@open-mercato/shared/lib/i18n/translate'
|
|
16
16
|
import { useAppEvent } from '@open-mercato/ui/backend/injection/useAppEvent'
|
|
17
|
-
import type { AppEventPayload } from '@open-mercato/shared/modules/widgets/injection'
|
|
18
17
|
import type { SectionAction, TabEmptyStateConfig, Translator } from './types'
|
|
19
18
|
import { CreatePersonDialog } from './CreatePersonDialog'
|
|
20
19
|
import { PersonCard } from './PersonCard'
|
|
@@ -323,19 +322,13 @@ export function CompanyPeopleSection({
|
|
|
323
322
|
void loadVisiblePeople()
|
|
324
323
|
}, [loadVisiblePeople])
|
|
325
324
|
|
|
326
|
-
|
|
325
|
+
useAppEvent('customers.person_company_link.deleted', (event) => {
|
|
327
326
|
const payload = event.payload as { companyEntityId?: string | null } | null | undefined
|
|
328
327
|
if (payload && payload.companyEntityId === companyId) {
|
|
329
328
|
void loadVisiblePeople()
|
|
330
329
|
}
|
|
331
330
|
}, [companyId, loadVisiblePeople])
|
|
332
331
|
|
|
333
|
-
useAppEvent('customers.person_company_link.deleted', reloadOnCompanyDetach, [reloadOnCompanyDetach])
|
|
334
|
-
// Legacy profile-only assignments have no link row, so their detach broadcasts this sibling
|
|
335
|
-
// event instead of `customers.person_company_link.deleted` (#5114). Without it, other viewers
|
|
336
|
-
// of the same company keep listing a person who is already gone.
|
|
337
|
-
useAppEvent('customers.person.company_assignment.detached', reloadOnCompanyDetach, [reloadOnCompanyDetach])
|
|
338
|
-
|
|
339
332
|
React.useEffect(() => {
|
|
340
333
|
setListPage(1)
|
|
341
334
|
}, [searchQuery, sortMode])
|
|
@@ -102,12 +102,6 @@ type EntityMultiSelectProps = {
|
|
|
102
102
|
fetchByIds: (ids: string[]) => Promise<EntityOption[]>
|
|
103
103
|
disabled?: boolean
|
|
104
104
|
autoFocus?: boolean
|
|
105
|
-
/**
|
|
106
|
-
* Minimum trimmed query length before a lookup request is issued. Defaults to
|
|
107
|
-
* `1`, so a blank input never queries the address book (issue #5118). Set `0`
|
|
108
|
-
* to opt back into prefetching an unfiltered first page on mount.
|
|
109
|
-
*/
|
|
110
|
-
minQueryLength?: number
|
|
111
105
|
}
|
|
112
106
|
|
|
113
107
|
const DEAL_ENTITY_IDS = [E.customers.customer_deal]
|
|
@@ -359,7 +353,6 @@ function EntityMultiSelect({
|
|
|
359
353
|
fetchByIds,
|
|
360
354
|
disabled = false,
|
|
361
355
|
autoFocus = false,
|
|
362
|
-
minQueryLength = 1,
|
|
363
356
|
}: EntityMultiSelectProps) {
|
|
364
357
|
const [input, setInput] = React.useState('')
|
|
365
358
|
const [suggestions, setSuggestions] = React.useState<EntityOption[]>([])
|
|
@@ -408,18 +401,11 @@ function EntityMultiSelect({
|
|
|
408
401
|
setLoading(false)
|
|
409
402
|
return
|
|
410
403
|
}
|
|
411
|
-
const term = input.trim()
|
|
412
|
-
if (term.length < minQueryLength) {
|
|
413
|
-
setSuggestions([])
|
|
414
|
-
setLoading(false)
|
|
415
|
-
setError(null)
|
|
416
|
-
return
|
|
417
|
-
}
|
|
418
404
|
let cancelled = false
|
|
419
405
|
const handler = window.setTimeout(async () => {
|
|
420
406
|
setLoading(true)
|
|
421
407
|
try {
|
|
422
|
-
const results = await search(
|
|
408
|
+
const results = await search(input.trim())
|
|
423
409
|
if (cancelled) return
|
|
424
410
|
setSuggestions(results)
|
|
425
411
|
setCache((prev) => {
|
|
@@ -443,7 +429,7 @@ function EntityMultiSelect({
|
|
|
443
429
|
cancelled = true
|
|
444
430
|
window.clearTimeout(handler)
|
|
445
431
|
}
|
|
446
|
-
}, [disabled, errorLabel, input,
|
|
432
|
+
}, [disabled, errorLabel, input, search])
|
|
447
433
|
|
|
448
434
|
const filteredSuggestions = React.useMemo(
|
|
449
435
|
() => suggestions.filter((option) => !normalizedValue.includes(option.id)),
|
|
@@ -674,14 +660,12 @@ export function DealPeopleSelector({
|
|
|
674
660
|
options = [],
|
|
675
661
|
disabled = false,
|
|
676
662
|
autoFocus = false,
|
|
677
|
-
minQueryLength,
|
|
678
663
|
}: {
|
|
679
664
|
value: string[]
|
|
680
665
|
onChange: (next: string[]) => void
|
|
681
666
|
options?: EntityOption[]
|
|
682
667
|
disabled?: boolean
|
|
683
668
|
autoFocus?: boolean
|
|
684
|
-
minQueryLength?: number
|
|
685
669
|
}) {
|
|
686
670
|
const t = useT()
|
|
687
671
|
const { searchPeople, fetchPeopleByIds } = useDealAssociationLookups()
|
|
@@ -701,7 +685,6 @@ export function DealPeopleSelector({
|
|
|
701
685
|
fetchByIds={fetchPeopleByIds}
|
|
702
686
|
disabled={disabled}
|
|
703
687
|
autoFocus={autoFocus}
|
|
704
|
-
minQueryLength={minQueryLength}
|
|
705
688
|
/>
|
|
706
689
|
)
|
|
707
690
|
}
|
|
@@ -711,13 +694,11 @@ export function DealCompaniesSelector({
|
|
|
711
694
|
onChange,
|
|
712
695
|
options = [],
|
|
713
696
|
disabled = false,
|
|
714
|
-
minQueryLength,
|
|
715
697
|
}: {
|
|
716
698
|
value: string[]
|
|
717
699
|
onChange: (next: string[]) => void
|
|
718
700
|
options?: EntityOption[]
|
|
719
701
|
disabled?: boolean
|
|
720
|
-
minQueryLength?: number
|
|
721
702
|
}) {
|
|
722
703
|
const t = useT()
|
|
723
704
|
const { searchCompanies, fetchCompaniesByIds } = useDealAssociationLookups()
|
|
@@ -736,7 +717,6 @@ export function DealCompaniesSelector({
|
|
|
736
717
|
search={searchCompanies}
|
|
737
718
|
fetchByIds={fetchCompaniesByIds}
|
|
738
719
|
disabled={disabled}
|
|
739
|
-
minQueryLength={minQueryLength}
|
|
740
720
|
/>
|
|
741
721
|
)
|
|
742
722
|
}
|
|
@@ -12,7 +12,7 @@ import { LinkEntityDialog } from '../linking/LinkEntityDialog'
|
|
|
12
12
|
import { createDealLinkAdapter } from '../linking/adapters/dealAdapter'
|
|
13
13
|
import { LoadingMessage, TabEmptyState } from '@open-mercato/ui/backend/detail'
|
|
14
14
|
import { useOrganizationScopeVersion } from '@open-mercato/shared/lib/frontend/useOrganizationScope'
|
|
15
|
-
import { useT
|
|
15
|
+
import { useT } from '@open-mercato/shared/lib/i18n/context'
|
|
16
16
|
import { hasMoreFromPage } from '@open-mercato/shared/lib/pagination/load-more'
|
|
17
17
|
import { useConfirmDialog } from '@open-mercato/ui/backend/confirm-dialog'
|
|
18
18
|
import { E } from '#generated/entities.ids.generated'
|
|
@@ -275,14 +275,9 @@ function normalizeDeal(deal: Partial<DealSummary> & { id: string; title?: string
|
|
|
275
275
|
}
|
|
276
276
|
}
|
|
277
277
|
|
|
278
|
-
function formatValueLabel(
|
|
279
|
-
amount: number | null,
|
|
280
|
-
currency: string | null,
|
|
281
|
-
emptyLabel: string,
|
|
282
|
-
locale?: string,
|
|
283
|
-
): string {
|
|
278
|
+
function formatValueLabel(amount: number | null, currency: string | null, emptyLabel: string): string {
|
|
284
279
|
if (typeof amount === 'number') {
|
|
285
|
-
const formatter = new Intl.NumberFormat(
|
|
280
|
+
const formatter = new Intl.NumberFormat(undefined, {
|
|
286
281
|
style: currency ? 'currency' : 'decimal',
|
|
287
282
|
currency: currency ?? undefined,
|
|
288
283
|
maximumFractionDigits: 2,
|
|
@@ -322,7 +317,6 @@ export function DealsSection({
|
|
|
322
317
|
runGuardedMutation,
|
|
323
318
|
}: DealsSectionProps) {
|
|
324
319
|
const tHook = useT()
|
|
325
|
-
const locale = useLocale()
|
|
326
320
|
const { confirm, ConfirmDialogElement } = useConfirmDialog()
|
|
327
321
|
const fallbackTranslator = React.useMemo<Translator>(() => createTranslatorWithFallback(tHook), [tHook])
|
|
328
322
|
const t: Translator = React.useMemo(() => translator ?? fallbackTranslator, [translator, fallbackTranslator])
|
|
@@ -969,8 +963,8 @@ export function DealsSection({
|
|
|
969
963
|
) : null}
|
|
970
964
|
<div className="space-y-4">
|
|
971
965
|
{sortedDeals.map((deal) => {
|
|
972
|
-
const valueLabel = formatValueLabel(deal.valueAmount, deal.valueCurrency ?? null, emptyLabel
|
|
973
|
-
const expectedLabel = deal.expectedCloseAt ? formatDate(deal.expectedCloseAt
|
|
966
|
+
const valueLabel = formatValueLabel(deal.valueAmount, deal.valueCurrency ?? null, emptyLabel)
|
|
967
|
+
const expectedLabel = deal.expectedCloseAt ? formatDate(deal.expectedCloseAt) ?? emptyLabel : emptyLabel
|
|
974
968
|
const probabilityLabel =
|
|
975
969
|
typeof deal.probability === 'number' ? `${deal.probability}%` : emptyLabel
|
|
976
970
|
const isUnlinkPending = pendingAction?.kind === 'remove' && pendingAction.id === deal.id
|
|
@@ -6,7 +6,6 @@ import { EmptyState } from '@open-mercato/ui/primitives/empty-state'
|
|
|
6
6
|
import { VisuallyHidden } from '@radix-ui/react-visually-hidden'
|
|
7
7
|
import { useT } from '@open-mercato/shared/lib/i18n/context'
|
|
8
8
|
import { cn, slugifyTagLabel } from '@open-mercato/shared/lib/utils'
|
|
9
|
-
import { hasMoreFromPage } from '@open-mercato/shared/lib/pagination/load-more'
|
|
10
9
|
import { apiCall, apiCallOrThrow, readApiResultOrThrow } from '@open-mercato/ui/backend/utils/apiCall'
|
|
11
10
|
import { flash } from '@open-mercato/ui/backend/FlashMessages'
|
|
12
11
|
import { useGuardedMutation } from '@open-mercato/ui/backend/injection/useGuardedMutation'
|
|
@@ -389,19 +388,8 @@ export function EntityTagsDialog({
|
|
|
389
388
|
const [creatingKind, setCreatingKind] = React.useState<string | null>(null)
|
|
390
389
|
const [manageTagsOpen, setManageTagsOpen] = React.useState(false)
|
|
391
390
|
const [activeCategoryPage, setActiveCategoryPage] = React.useState(1)
|
|
392
|
-
|
|
393
|
-
// `hasMoreFromPage`. Like the page number it belongs to whichever category is
|
|
394
|
-
// active: the fetch effect below rewrites it on every category, search and
|
|
395
|
-
// page change, and the reset effect clears it alongside the page so a
|
|
396
|
-
// category with more entries never leaves the affordance behind on one
|
|
397
|
-
// without.
|
|
398
|
-
const [activeCategoryHasMore, setActiveCategoryHasMore] = React.useState(false)
|
|
391
|
+
const [activeCategoryTotalPages, setActiveCategoryTotalPages] = React.useState(1)
|
|
399
392
|
const [activeCategoryLoading, setActiveCategoryLoading] = React.useState(false)
|
|
400
|
-
// A transport failure is not an end-of-list signal: it leaves the affordance
|
|
401
|
-
// in place and turns the next click into a retry of the page that failed,
|
|
402
|
-
// rather than advancing past it.
|
|
403
|
-
const [activeCategoryLoadFailed, setActiveCategoryLoadFailed] = React.useState(false)
|
|
404
|
-
const [activeCategoryReloadToken, setActiveCategoryReloadToken] = React.useState(0)
|
|
405
393
|
const creationInFlightRef = React.useRef<string | null>(null)
|
|
406
394
|
const mutationContextId = React.useMemo(
|
|
407
395
|
() => `customer-tags:${entityType}:${entityId}`,
|
|
@@ -725,15 +713,12 @@ export function EntityTagsDialog({
|
|
|
725
713
|
React.useEffect(() => {
|
|
726
714
|
if (!open) return
|
|
727
715
|
setActiveCategoryPage(1)
|
|
728
|
-
setActiveCategoryHasMore(false)
|
|
729
|
-
setActiveCategoryLoadFailed(false)
|
|
730
716
|
}, [activeCategoryKind, open, searchValue])
|
|
731
717
|
|
|
732
718
|
React.useEffect(() => {
|
|
733
719
|
if (!open || !activeCategoryKindValue || (activeCategorySource !== 'tags' && activeCategorySource !== 'labels')) {
|
|
734
720
|
setActiveCategoryLoading(false)
|
|
735
|
-
|
|
736
|
-
setActiveCategoryLoadFailed(false)
|
|
721
|
+
setActiveCategoryTotalPages(1)
|
|
737
722
|
return
|
|
738
723
|
}
|
|
739
724
|
|
|
@@ -767,36 +752,16 @@ export function EntityTagsDialog({
|
|
|
767
752
|
}))
|
|
768
753
|
|
|
769
754
|
setActiveCategoryLoading(true)
|
|
770
|
-
void apiCall<{ items?: Array<DictEntry | LabelItem>;
|
|
755
|
+
void apiCall<{ items?: Array<DictEntry | LabelItem>; totalPages?: number }>(endpoint, {
|
|
771
756
|
cache: 'no-store',
|
|
772
757
|
headers: { 'x-om-unauthorized-redirect': '0' },
|
|
773
758
|
})
|
|
774
759
|
.then((response) => {
|
|
775
|
-
if (cancelled) return
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
}
|
|
780
|
-
setActiveCategoryLoadFailed(false)
|
|
781
|
-
const servedEntries = Array.isArray(response.result?.items) ? response.result.items : []
|
|
782
|
-
const fetchedEntries = mapEntries(servedEntries)
|
|
783
|
-
// The two sources paginate differently. `/api/customers/tags` is a
|
|
784
|
-
// query-engine list, so a page past the end comes back empty and the
|
|
785
|
-
// served count alone terminates the sequence. `/api/customers/labels`
|
|
786
|
-
// clamps the requested page to the last one and re-serves it in full
|
|
787
|
-
// forever, so short-page termination needs the second half of the
|
|
788
|
-
// helper's obligation 2: take an echoed page below the one asked for as
|
|
789
|
-
// the end of the list. Same guard as `AttachmentsSection`, whose
|
|
790
|
-
// endpoint clamps the same way.
|
|
791
|
-
const returnedPage =
|
|
792
|
-
typeof response.result?.page === 'number' ? response.result.page : activeCategoryPage
|
|
793
|
-
const servedRequestedPage = returnedPage >= activeCategoryPage
|
|
794
|
-
// Measured on what the endpoint served, before `mergeOptions` folds the
|
|
795
|
-
// page into the entries already on screen.
|
|
796
|
-
setActiveCategoryHasMore(
|
|
797
|
-
servedRequestedPage && hasMoreFromPage(servedEntries.length, REMOTE_CATEGORY_PAGE_SIZE),
|
|
760
|
+
if (!response.ok || cancelled) return
|
|
761
|
+
const fetchedEntries = mapEntries(Array.isArray(response.result?.items) ? response.result.items : [])
|
|
762
|
+
setActiveCategoryTotalPages(
|
|
763
|
+
typeof response.result?.totalPages === 'number' ? response.result.totalPages : 1,
|
|
798
764
|
)
|
|
799
|
-
if (!servedRequestedPage) return
|
|
800
765
|
updateCategoryEntries(activeCategoryKindValue, (currentEntries) =>
|
|
801
766
|
activeCategoryPage <= 1
|
|
802
767
|
? mergeOptions(seedEntries, fetchedEntries)
|
|
@@ -805,10 +770,8 @@ export function EntityTagsDialog({
|
|
|
805
770
|
})
|
|
806
771
|
.catch(() => {
|
|
807
772
|
if (cancelled) return
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
updateCategoryEntries(activeCategoryKindValue, () => seedEntries)
|
|
811
|
-
}
|
|
773
|
+
setActiveCategoryTotalPages(1)
|
|
774
|
+
updateCategoryEntries(activeCategoryKindValue, () => seedEntries)
|
|
812
775
|
})
|
|
813
776
|
.finally(() => {
|
|
814
777
|
if (!cancelled) {
|
|
@@ -822,7 +785,6 @@ export function EntityTagsDialog({
|
|
|
822
785
|
}, [
|
|
823
786
|
activeCategoryKindValue,
|
|
824
787
|
activeCategoryPage,
|
|
825
|
-
activeCategoryReloadToken,
|
|
826
788
|
activeCategorySource,
|
|
827
789
|
entityId,
|
|
828
790
|
entityOrganizationId,
|
|
@@ -1288,23 +1250,15 @@ export function EntityTagsDialog({
|
|
|
1288
1250
|
{t('customers.personTags.loading', 'Loading...')}
|
|
1289
1251
|
</div>
|
|
1290
1252
|
) : null}
|
|
1291
|
-
{(activeCategory.source === 'tags' || activeCategory.source === 'labels') &&
|
|
1253
|
+
{(activeCategory.source === 'tags' || activeCategory.source === 'labels') && activeCategoryPage < activeCategoryTotalPages ? (
|
|
1292
1254
|
<Button
|
|
1293
1255
|
type="button"
|
|
1294
1256
|
variant="outline"
|
|
1295
1257
|
size="sm"
|
|
1296
1258
|
className="rounded-lg px-3 text-xs"
|
|
1297
|
-
onClick={() =>
|
|
1298
|
-
if (activeCategoryLoadFailed) {
|
|
1299
|
-
setActiveCategoryReloadToken((current) => current + 1)
|
|
1300
|
-
return
|
|
1301
|
-
}
|
|
1302
|
-
setActiveCategoryPage((current) => current + 1)
|
|
1303
|
-
}}
|
|
1259
|
+
onClick={() => setActiveCategoryPage((current) => current + 1)}
|
|
1304
1260
|
>
|
|
1305
|
-
{
|
|
1306
|
-
? t('customers.personTags.retry', 'Retry')
|
|
1307
|
-
: t('customers.activities.loadMore', 'Load more')}
|
|
1261
|
+
{t('customers.activities.loadMore', 'Load more')}
|
|
1308
1262
|
</Button>
|
|
1309
1263
|
) : null}
|
|
1310
1264
|
</div>
|
|
@@ -10,7 +10,6 @@ import { Button } from '@open-mercato/ui/primitives/button'
|
|
|
10
10
|
import { Input } from '@open-mercato/ui/primitives/input'
|
|
11
11
|
import { useConfirmDialog } from '@open-mercato/ui/backend/confirm-dialog'
|
|
12
12
|
import { useAppEvent } from '@open-mercato/ui/backend/injection/useAppEvent'
|
|
13
|
-
import type { AppEventPayload } from '@open-mercato/shared/modules/widgets/injection'
|
|
14
13
|
import { CompanyCard, type EnrichedCompanyData } from './CompanyCard'
|
|
15
14
|
import { useCustomerDictionary } from './hooks/useCustomerDictionary'
|
|
16
15
|
import { LinkEntityDialog, type LinkEntityOption } from '../linking/LinkEntityDialog'
|
|
@@ -370,19 +369,13 @@ export function PersonCompaniesSection({
|
|
|
370
369
|
[_personName, confirm, loadData, onChanged, personId, runWriteMutation, t, unlinkingId],
|
|
371
370
|
)
|
|
372
371
|
|
|
373
|
-
|
|
372
|
+
useAppEvent('customers.person_company_link.deleted', (event) => {
|
|
374
373
|
const payload = event.payload as { personEntityId?: string | null } | null | undefined
|
|
375
374
|
if (payload && payload.personEntityId === personId) {
|
|
376
375
|
void loadData({ showLoading: false })
|
|
377
376
|
}
|
|
378
377
|
}, [personId, loadData])
|
|
379
378
|
|
|
380
|
-
useAppEvent('customers.person_company_link.deleted', reloadOnPersonDetach, [reloadOnPersonDetach])
|
|
381
|
-
// Legacy profile-only assignments have no link row, so their detach broadcasts this sibling
|
|
382
|
-
// event instead of `customers.person_company_link.deleted` (#5114). Without it, other viewers
|
|
383
|
-
// of the same person keep listing a company that is already detached.
|
|
384
|
-
useAppEvent('customers.person.company_assignment.detached', reloadOnPersonDetach, [reloadOnPersonDetach])
|
|
385
|
-
|
|
386
379
|
return (
|
|
387
380
|
<>
|
|
388
381
|
<div className="space-y-4">
|
|
@@ -7,7 +7,6 @@ import { resolveTodoApiPath } from '../utils'
|
|
|
7
7
|
import type { TodoLinkSummary } from '../types'
|
|
8
8
|
import { generateTempId } from '@open-mercato/core/modules/customers/lib/detailHelpers'
|
|
9
9
|
import { parseBooleanToken } from '@open-mercato/shared/lib/boolean'
|
|
10
|
-
import { hasMoreFromPage } from '@open-mercato/shared/lib/pagination/load-more'
|
|
11
10
|
import { CUSTOMER_INTERACTION_TASK_SOURCE } from '../../../lib/interactionCompatibility'
|
|
12
11
|
|
|
13
12
|
const DEFAULT_TODO_SOURCE = CUSTOMER_INTERACTION_TASK_SOURCE
|
|
@@ -30,15 +29,12 @@ type CustomerTodoRow = {
|
|
|
30
29
|
createdAt: string
|
|
31
30
|
}
|
|
32
31
|
|
|
33
|
-
// `/api/customers/todos` also reports `totalPages`, deliberately left out of
|
|
34
|
-
// this type: the load-more affordance terminates on a short page instead — see
|
|
35
|
-
// `hasMoreFromPage`. `total` stays because it feeds the section's count badge,
|
|
36
|
-
// where an under-report is cosmetic rather than a way to strand rows.
|
|
37
32
|
type CustomerTodosResponse = {
|
|
38
33
|
items: CustomerTodoRow[]
|
|
39
34
|
total: number
|
|
40
35
|
page: number
|
|
41
36
|
pageSize: number
|
|
37
|
+
totalPages: number
|
|
42
38
|
}
|
|
43
39
|
|
|
44
40
|
export type TaskFormPayload = {
|
|
@@ -176,9 +172,9 @@ export function usePersonTasks({
|
|
|
176
172
|
pageSize = 20,
|
|
177
173
|
}: UsePersonTasksOptions): UsePersonTasksResult {
|
|
178
174
|
const [tasks, setTasks] = React.useState<TodoLinkSummary[]>(initialTasks)
|
|
179
|
-
const [pageInfo, setPageInfo] = React.useState<{ page: number;
|
|
175
|
+
const [pageInfo, setPageInfo] = React.useState<{ page: number; totalPages: number; total: number }>({
|
|
180
176
|
page: 1,
|
|
181
|
-
|
|
177
|
+
totalPages: 1,
|
|
182
178
|
total: initialTasks.length,
|
|
183
179
|
})
|
|
184
180
|
const [isInitialLoading, setIsInitialLoading] = React.useState<boolean>(() => Boolean(entityId))
|
|
@@ -191,18 +187,12 @@ export function usePersonTasks({
|
|
|
191
187
|
const mapped = Array.isArray(payload.items) ? payload.items.map(mapRowToSummary) : []
|
|
192
188
|
setPageInfo({
|
|
193
189
|
page: payload.page ?? 1,
|
|
194
|
-
|
|
195
|
-
// `hasMoreFromPage`. `mapRowToSummary` is a 1:1 map and the `mergeUnique`
|
|
196
|
-
// dedupe happens after this, so `mapped.length` is what the server served.
|
|
197
|
-
// Measured against the page size the server echoed rather than the one
|
|
198
|
-
// requested, so a page size the endpoint narrows server-side cannot make a
|
|
199
|
-
// full page read as short and silently end the sequence.
|
|
200
|
-
hasMore: hasMoreFromPage(mapped.length, payload.pageSize ?? pageSize),
|
|
190
|
+
totalPages: payload.totalPages ?? 0,
|
|
201
191
|
total: payload.total ?? mapped.length,
|
|
202
192
|
})
|
|
203
193
|
setError(null)
|
|
204
194
|
return mapped
|
|
205
|
-
}, [
|
|
195
|
+
}, [])
|
|
206
196
|
|
|
207
197
|
const fetchPage = React.useCallback(
|
|
208
198
|
async (page: number): Promise<CustomerTodosResponse> => {
|
|
@@ -212,6 +202,7 @@ export function usePersonTasks({
|
|
|
212
202
|
total: 0,
|
|
213
203
|
page: 1,
|
|
214
204
|
pageSize,
|
|
205
|
+
totalPages: 1,
|
|
215
206
|
}
|
|
216
207
|
}
|
|
217
208
|
const params = new URLSearchParams({
|
|
@@ -231,7 +222,7 @@ export function usePersonTasks({
|
|
|
231
222
|
const refresh = React.useCallback(async () => {
|
|
232
223
|
if (!entityId) {
|
|
233
224
|
setTasks([])
|
|
234
|
-
setPageInfo({ page: 1,
|
|
225
|
+
setPageInfo({ page: 1, totalPages: 1, total: 0 })
|
|
235
226
|
return
|
|
236
227
|
}
|
|
237
228
|
setIsInitialLoading(true)
|
|
@@ -251,7 +242,7 @@ export function usePersonTasks({
|
|
|
251
242
|
const loadMore = React.useCallback(async () => {
|
|
252
243
|
if (!entityId) return
|
|
253
244
|
if (isLoadingMore) return
|
|
254
|
-
if (
|
|
245
|
+
if (pageInfo.page >= pageInfo.totalPages) return
|
|
255
246
|
setIsLoadingMore(true)
|
|
256
247
|
try {
|
|
257
248
|
const payload = await fetchPage(pageInfo.page + 1)
|
|
@@ -264,12 +255,12 @@ export function usePersonTasks({
|
|
|
264
255
|
} finally {
|
|
265
256
|
setIsLoadingMore(false)
|
|
266
257
|
}
|
|
267
|
-
}, [entityId, fetchPage, isLoadingMore, mapResponse, pageInfo.
|
|
258
|
+
}, [entityId, fetchPage, isLoadingMore, mapResponse, pageInfo.page, pageInfo.totalPages])
|
|
268
259
|
|
|
269
260
|
React.useEffect(() => {
|
|
270
261
|
if (!entityId) {
|
|
271
262
|
setTasks([])
|
|
272
|
-
setPageInfo({ page: 1,
|
|
263
|
+
setPageInfo({ page: 1, totalPages: 1, total: 0 })
|
|
273
264
|
setError(null)
|
|
274
265
|
setIsInitialLoading(false)
|
|
275
266
|
return
|
|
@@ -277,7 +268,7 @@ export function usePersonTasks({
|
|
|
277
268
|
setTasks(initialTasks)
|
|
278
269
|
setPageInfo({
|
|
279
270
|
page: 1,
|
|
280
|
-
|
|
271
|
+
totalPages: 1,
|
|
281
272
|
total: initialTasks.length,
|
|
282
273
|
})
|
|
283
274
|
setError(null)
|
|
@@ -351,7 +342,7 @@ export function usePersonTasks({
|
|
|
351
342
|
setTasks((prev) => [newTask, ...prev])
|
|
352
343
|
setPageInfo((prev) => ({
|
|
353
344
|
page: 1,
|
|
354
|
-
|
|
345
|
+
totalPages: prev.totalPages,
|
|
355
346
|
total: prev.total + 1,
|
|
356
347
|
}))
|
|
357
348
|
await refresh()
|
|
@@ -475,7 +466,7 @@ export function usePersonTasks({
|
|
|
475
466
|
setTasks((prev) => prev.filter((item) => item.id !== task.id))
|
|
476
467
|
setPageInfo((prev) => ({
|
|
477
468
|
page: prev.page,
|
|
478
|
-
|
|
469
|
+
totalPages: prev.totalPages,
|
|
479
470
|
total: Math.max(0, prev.total - 1),
|
|
480
471
|
}))
|
|
481
472
|
} finally {
|
|
@@ -485,7 +476,7 @@ export function usePersonTasks({
|
|
|
485
476
|
[],
|
|
486
477
|
)
|
|
487
478
|
|
|
488
|
-
const hasMore = entityId != null && pageInfo.
|
|
479
|
+
const hasMore = entityId != null && pageInfo.page < pageInfo.totalPages
|
|
489
480
|
|
|
490
481
|
return {
|
|
491
482
|
tasks,
|
|
@@ -173,7 +173,7 @@ interface ParticipantsFieldProps {
|
|
|
173
173
|
activityType: ActivityType
|
|
174
174
|
participants: Participant[]
|
|
175
175
|
setParticipants: React.Dispatch<React.SetStateAction<Participant[]>>
|
|
176
|
-
removeParticipant: (
|
|
176
|
+
removeParticipant: (userId: string) => void
|
|
177
177
|
guestPermissions: { canInviteOthers: boolean; canModify: boolean; canSeeList: boolean }
|
|
178
178
|
setGuestPermissions: React.Dispatch<React.SetStateAction<{ canInviteOthers: boolean; canModify: boolean; canSeeList: boolean }>>
|
|
179
179
|
}
|
|
@@ -205,19 +205,19 @@ export function ParticipantsField({
|
|
|
205
205
|
{sectionLabel}
|
|
206
206
|
</label>
|
|
207
207
|
<div className="mt-2.5 flex flex-wrap content-center items-center gap-2 rounded-lg border border-border bg-background px-3 py-2.5">
|
|
208
|
-
{participants.map((p
|
|
209
|
-
<div key={p.userId
|
|
208
|
+
{participants.map((p) => (
|
|
209
|
+
<div key={p.userId} className="inline-flex items-center gap-1.5 rounded-full border border-border bg-muted px-2.5 py-1.5">
|
|
210
210
|
<span className={cn('inline-flex size-5 items-center justify-center rounded-full text-xs font-bold text-white', p.color ?? 'bg-primary')}>
|
|
211
211
|
{p.name.charAt(0).toUpperCase()}
|
|
212
212
|
</span>
|
|
213
213
|
<span className="text-xs text-foreground">{p.name}</span>
|
|
214
|
-
<IconButton type="button" variant="ghost" size="sm" onClick={() => removeParticipant(
|
|
214
|
+
<IconButton type="button" variant="ghost" size="sm" onClick={() => removeParticipant(p.userId)} className="h-auto text-muted-foreground hover:text-foreground p-0" aria-label={t('customers.schedule.removeParticipant', 'Remove participant')}>
|
|
215
215
|
<X className="size-3" />
|
|
216
216
|
</IconButton>
|
|
217
217
|
</div>
|
|
218
218
|
))}
|
|
219
219
|
<ParticipantSearchPopover
|
|
220
|
-
existingIds={new Set(participants.map((p) => p.userId)
|
|
220
|
+
existingIds={new Set(participants.map((p) => p.userId))}
|
|
221
221
|
onAdd={(p) => setParticipants((prev) => [...prev, { ...p, status: 'pending' as RsvpStatus }])}
|
|
222
222
|
onAddMany={(nextParticipants) => {
|
|
223
223
|
setParticipants((prev) => [
|
|
@@ -4,7 +4,7 @@ import type { ActivityType } from './fieldConfig'
|
|
|
4
4
|
export type RsvpStatus = 'pending' | 'accepted' | 'declined' | 'tentative'
|
|
5
5
|
|
|
6
6
|
export type Participant = {
|
|
7
|
-
userId
|
|
7
|
+
userId: string
|
|
8
8
|
name: string
|
|
9
9
|
email?: string
|
|
10
10
|
color?: string
|
|
@@ -36,7 +36,7 @@ export type ScheduleActivityEditData = {
|
|
|
36
36
|
allDay?: boolean | null
|
|
37
37
|
recurrenceRule?: string | null
|
|
38
38
|
recurrenceEnd?: string | null
|
|
39
|
-
participants?: Array<{ userId
|
|
39
|
+
participants?: Array<{ userId: string; name?: string; email?: string; status?: string }> | null
|
|
40
40
|
reminderMinutes?: number | null
|
|
41
41
|
visibility?: string | null
|
|
42
42
|
linkedEntities?: Array<{ id: string; type: string; label: string }> | null
|
|
@@ -136,7 +136,7 @@ export function useScheduleFormState({ open, editData }: UseScheduleFormStatePar
|
|
|
136
136
|
Array.isArray(editData.participants)
|
|
137
137
|
? editData.participants.map((p, i) => ({
|
|
138
138
|
userId: p.userId,
|
|
139
|
-
name: p.name ?? p.
|
|
139
|
+
name: p.name ?? p.userId,
|
|
140
140
|
email: p.email,
|
|
141
141
|
color: PARTICIPANT_COLORS[i % PARTICIPANT_COLORS.length],
|
|
142
142
|
status: (p.status ?? 'pending') as RsvpStatus,
|
|
@@ -219,8 +219,8 @@ export function useScheduleFormState({ open, editData }: UseScheduleFormStatePar
|
|
|
219
219
|
setReminderMinutes(DEFAULT_REMINDER_MINUTES[activityType])
|
|
220
220
|
}, [activityType, editData, open])
|
|
221
221
|
|
|
222
|
-
const removeParticipant = React.useCallback((
|
|
223
|
-
setParticipants((prev) => prev.filter((
|
|
222
|
+
const removeParticipant = React.useCallback((userId: string) => {
|
|
223
|
+
setParticipants((prev) => prev.filter((p) => p.userId !== userId))
|
|
224
224
|
}, [])
|
|
225
225
|
|
|
226
226
|
const toggleRecurrenceDay = React.useCallback((index: number) => {
|
|
@@ -144,7 +144,7 @@ export type InteractionSummary = {
|
|
|
144
144
|
authorEmail?: string | null
|
|
145
145
|
dealTitle?: string | null
|
|
146
146
|
customValues?: Record<string, unknown> | null
|
|
147
|
-
participants?: Array<{ userId
|
|
147
|
+
participants?: Array<{ userId: string; name?: string; email?: string; status?: string }> | null
|
|
148
148
|
reminderMinutes?: number | null
|
|
149
149
|
visibility?: string | null
|
|
150
150
|
linkedEntities?: Array<{ id: string; type: string; label: string }> | null
|
|
@@ -5,16 +5,11 @@ import type { CustomerDictionaryKind } from '../../lib/dictionaries'
|
|
|
5
5
|
import { CUSTOMER_INTERACTION_TASK_SOURCE, CUSTOMER_INTERACTION_TASK_TYPE } from '../../lib/interactionCompatibility'
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
* Pass `locale` to format in the application locale (`useLocale()` in client components).
|
|
10
|
-
* Omitting it keeps the runtime default, which varies per machine and is therefore not
|
|
11
|
-
* assertable in tests.
|
|
12
|
-
*/
|
|
13
|
-
export function formatDate(value?: string | null, locale?: string): string | null {
|
|
8
|
+
export function formatDate(value?: string | null): string | null {
|
|
14
9
|
if (!value) return null
|
|
15
10
|
const date = new Date(value)
|
|
16
11
|
if (Number.isNaN(date.getTime())) return null
|
|
17
|
-
return date.toLocaleDateString(
|
|
12
|
+
return date.toLocaleDateString()
|
|
18
13
|
}
|
|
19
14
|
|
|
20
15
|
export function formatTemplate(template: string, params?: Record<string, string | number>): string {
|
|
@@ -153,20 +148,15 @@ export function createDictionarySelectLabels(
|
|
|
153
148
|
}
|
|
154
149
|
}
|
|
155
150
|
|
|
156
|
-
|
|
157
|
-
* Pass `locale` to format in the application locale (`useLocale()` in client components).
|
|
158
|
-
* Omitting it keeps the runtime default, which varies per machine and is therefore not
|
|
159
|
-
* assertable in tests.
|
|
160
|
-
*/
|
|
161
|
-
export function formatCurrency(amount: number, currency?: string | null, locale?: string): string {
|
|
151
|
+
export function formatCurrency(amount: number, currency?: string | null): string {
|
|
162
152
|
try {
|
|
163
|
-
return new Intl.NumberFormat(
|
|
153
|
+
return new Intl.NumberFormat(undefined, {
|
|
164
154
|
style: 'currency',
|
|
165
155
|
currency: currency || 'PLN',
|
|
166
156
|
maximumFractionDigits: 0,
|
|
167
157
|
}).format(amount)
|
|
168
158
|
} catch {
|
|
169
|
-
return `${amount.toLocaleString(
|
|
159
|
+
return `${amount.toLocaleString()} ${currency || 'PLN'}`
|
|
170
160
|
}
|
|
171
161
|
}
|
|
172
162
|
|
|
@@ -650,7 +650,7 @@ export class CustomerInteraction {
|
|
|
650
650
|
recurrenceEnd?: Date | null
|
|
651
651
|
|
|
652
652
|
@Property({ name: 'participants', type: 'jsonb', nullable: true })
|
|
653
|
-
participants?: Array<{ userId
|
|
653
|
+
participants?: Array<{ userId: string; name?: string; email?: string; status?: string }> | null
|
|
654
654
|
|
|
655
655
|
@Property({ name: 'reminder_minutes', type: 'int', nullable: true })
|
|
656
656
|
reminderMinutes?: number | null
|