@open-mercato/core 0.4.5-develop-754ef4d2f0 → 0.4.5-develop-9f9549ebc8
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/dist/generated/entities/message/index.js +65 -0
- package/dist/generated/entities/message/index.js.map +7 -0
- package/dist/generated/entities/message_access_token/index.js +19 -0
- package/dist/generated/entities/message_access_token/index.js.map +7 -0
- package/dist/generated/entities/message_confirmation/index.js +21 -0
- package/dist/generated/entities/message_confirmation/index.js.map +7 -0
- package/dist/generated/entities/message_object/index.js +23 -0
- package/dist/generated/entities/message_object/index.js.map +7 -0
- package/dist/generated/entities/message_recipient/index.js +31 -0
- package/dist/generated/entities/message_recipient/index.js.map +7 -0
- package/dist/generated/entities.ids.generated.js +8 -0
- package/dist/generated/entities.ids.generated.js.map +2 -2
- package/dist/generated/entity-fields-registry.js +10 -0
- package/dist/generated/entity-fields-registry.js.map +2 -2
- package/dist/modules/auth/components/AclEditor.js +4 -2
- package/dist/modules/auth/components/AclEditor.js.map +2 -2
- package/dist/modules/auth/frontend/reset.js +3 -3
- package/dist/modules/auth/frontend/reset.js.map +2 -2
- package/dist/modules/customers/backend/customers/deals/[id]/page.js +27 -8
- package/dist/modules/customers/backend/customers/deals/[id]/page.js.map +2 -2
- package/dist/modules/customers/lib/messageObjectPreviews.js +131 -0
- package/dist/modules/customers/lib/messageObjectPreviews.js.map +7 -0
- package/dist/modules/customers/message-objects.js +71 -0
- package/dist/modules/customers/message-objects.js.map +7 -0
- package/dist/modules/customers/widgets/messages/CustomerMessageObjectDetail.js +51 -0
- package/dist/modules/customers/widgets/messages/CustomerMessageObjectDetail.js.map +7 -0
- package/dist/modules/customers/widgets/messages/CustomerMessageObjectPreview.js +35 -0
- package/dist/modules/customers/widgets/messages/CustomerMessageObjectPreview.js.map +7 -0
- package/dist/modules/customers/widgets/messages/index.js +7 -0
- package/dist/modules/customers/widgets/messages/index.js.map +7 -0
- package/dist/modules/dashboards/components/WidgetVisibilityEditor.js +35 -6
- package/dist/modules/dashboards/components/WidgetVisibilityEditor.js.map +2 -2
- package/dist/modules/messages/acl.js +15 -0
- package/dist/modules/messages/acl.js.map +7 -0
- package/dist/modules/messages/api/[id]/actions/[actionId]/route.js +92 -0
- package/dist/modules/messages/api/[id]/actions/[actionId]/route.js.map +7 -0
- package/dist/modules/messages/api/[id]/archive/route.js +120 -0
- package/dist/modules/messages/api/[id]/archive/route.js.map +7 -0
- package/dist/modules/messages/api/[id]/attachments/route.js +195 -0
- package/dist/modules/messages/api/[id]/attachments/route.js.map +7 -0
- package/dist/modules/messages/api/[id]/confirmation/route.js +67 -0
- package/dist/modules/messages/api/[id]/confirmation/route.js.map +7 -0
- package/dist/modules/messages/api/[id]/conversation/archive/route.js +68 -0
- package/dist/modules/messages/api/[id]/conversation/archive/route.js.map +7 -0
- package/dist/modules/messages/api/[id]/conversation/read/route.js +68 -0
- package/dist/modules/messages/api/[id]/conversation/read/route.js.map +7 -0
- package/dist/modules/messages/api/[id]/conversation/route.js +68 -0
- package/dist/modules/messages/api/[id]/conversation/route.js.map +7 -0
- package/dist/modules/messages/api/[id]/forward/route.js +85 -0
- package/dist/modules/messages/api/[id]/forward/route.js.map +7 -0
- package/dist/modules/messages/api/[id]/forward-preview/route.js +70 -0
- package/dist/modules/messages/api/[id]/forward-preview/route.js.map +7 -0
- package/dist/modules/messages/api/[id]/read/route.js +120 -0
- package/dist/modules/messages/api/[id]/read/route.js.map +7 -0
- package/dist/modules/messages/api/[id]/reply/route.js +87 -0
- package/dist/modules/messages/api/[id]/reply/route.js.map +7 -0
- package/dist/modules/messages/api/[id]/route.js +350 -0
- package/dist/modules/messages/api/[id]/route.js.map +7 -0
- package/dist/modules/messages/api/object-types/route.js +54 -0
- package/dist/modules/messages/api/object-types/route.js.map +7 -0
- package/dist/modules/messages/api/openapi.js +261 -0
- package/dist/modules/messages/api/openapi.js.map +7 -0
- package/dist/modules/messages/api/route.js +262 -0
- package/dist/modules/messages/api/route.js.map +7 -0
- package/dist/modules/messages/api/token/[token]/route.js +99 -0
- package/dist/modules/messages/api/token/[token]/route.js.map +7 -0
- package/dist/modules/messages/api/types/route.js +40 -0
- package/dist/modules/messages/api/types/route.js.map +7 -0
- package/dist/modules/messages/api/unread-count/route.js +43 -0
- package/dist/modules/messages/api/unread-count/route.js.map +7 -0
- package/dist/modules/messages/backend/messages/[id]/page.js +10 -0
- package/dist/modules/messages/backend/messages/[id]/page.js.map +7 -0
- package/dist/modules/messages/backend/messages/[id]/page.meta.js +16 -0
- package/dist/modules/messages/backend/messages/[id]/page.meta.js.map +7 -0
- package/dist/modules/messages/backend/messages/compose/page.js +10 -0
- package/dist/modules/messages/backend/messages/compose/page.js.map +7 -0
- package/dist/modules/messages/backend/messages/compose/page.meta.js +17 -0
- package/dist/modules/messages/backend/messages/compose/page.meta.js.map +7 -0
- package/dist/modules/messages/backend/page.js +10 -0
- package/dist/modules/messages/backend/page.js.map +7 -0
- package/dist/modules/messages/backend/page.meta.js +33 -0
- package/dist/modules/messages/backend/page.meta.js.map +7 -0
- package/dist/modules/messages/commands/actions.js +265 -0
- package/dist/modules/messages/commands/actions.js.map +7 -0
- package/dist/modules/messages/commands/attachments.js +217 -0
- package/dist/modules/messages/commands/attachments.js.map +7 -0
- package/dist/modules/messages/commands/confirmations.js +151 -0
- package/dist/modules/messages/commands/confirmations.js.map +7 -0
- package/dist/modules/messages/commands/conversation.js +240 -0
- package/dist/modules/messages/commands/conversation.js.map +7 -0
- package/dist/modules/messages/commands/messages.js +748 -0
- package/dist/modules/messages/commands/messages.js.map +7 -0
- package/dist/modules/messages/commands/recipients.js +259 -0
- package/dist/modules/messages/commands/recipients.js.map +7 -0
- package/dist/modules/messages/commands/shared.js +258 -0
- package/dist/modules/messages/commands/shared.js.map +7 -0
- package/dist/modules/messages/commands/tokens.js +69 -0
- package/dist/modules/messages/commands/tokens.js.map +7 -0
- package/dist/modules/messages/components/ComposeMessagePageClient.js +24 -0
- package/dist/modules/messages/components/ComposeMessagePageClient.js.map +7 -0
- package/dist/modules/messages/components/MessageDetailPageClient.js +261 -0
- package/dist/modules/messages/components/MessageDetailPageClient.js.map +7 -0
- package/dist/modules/messages/components/MessagesInboxPageClient.js +390 -0
- package/dist/modules/messages/components/MessagesInboxPageClient.js.map +7 -0
- package/dist/modules/messages/components/confirmation/MessageConfirmationActions.js +31 -0
- package/dist/modules/messages/components/confirmation/MessageConfirmationActions.js.map +7 -0
- package/dist/modules/messages/components/confirmation/MessageConfirmationContent.js +69 -0
- package/dist/modules/messages/components/confirmation/MessageConfirmationContent.js.map +7 -0
- package/dist/modules/messages/components/defaults/DefaultMessageActions.js +31 -0
- package/dist/modules/messages/components/defaults/DefaultMessageActions.js.map +7 -0
- package/dist/modules/messages/components/defaults/DefaultMessageContent.js +19 -0
- package/dist/modules/messages/components/defaults/DefaultMessageContent.js.map +7 -0
- package/dist/modules/messages/components/defaults/DefaultMessageListItem.js +90 -0
- package/dist/modules/messages/components/defaults/DefaultMessageListItem.js.map +7 -0
- package/dist/modules/messages/components/defaults/MessageRecordObjectDetail.js +86 -0
- package/dist/modules/messages/components/defaults/MessageRecordObjectDetail.js.map +7 -0
- package/dist/modules/messages/components/defaults/MessageRecordObjectPreview.js +61 -0
- package/dist/modules/messages/components/defaults/MessageRecordObjectPreview.js.map +7 -0
- package/dist/modules/messages/components/message-detail/detail-panels.js +27 -0
- package/dist/modules/messages/components/message-detail/detail-panels.js.map +7 -0
- package/dist/modules/messages/components/message-detail/hooks/useMessageDetails.js +52 -0
- package/dist/modules/messages/components/message-detail/hooks/useMessageDetails.js.map +7 -0
- package/dist/modules/messages/components/message-detail/hooks/useMessageDetailsActions.js +289 -0
- package/dist/modules/messages/components/message-detail/hooks/useMessageDetailsActions.js.map +7 -0
- package/dist/modules/messages/components/message-detail/hooks/useMessageDetailsConversation.js +103 -0
- package/dist/modules/messages/components/message-detail/hooks/useMessageDetailsConversation.js.map +7 -0
- package/dist/modules/messages/components/message-detail/hooks/useMessageDetailsQueries.js +78 -0
- package/dist/modules/messages/components/message-detail/hooks/useMessageDetailsQueries.js.map +7 -0
- package/dist/modules/messages/components/message-detail/panels/MainMessageHeader.js +94 -0
- package/dist/modules/messages/components/message-detail/panels/MainMessageHeader.js.map +7 -0
- package/dist/modules/messages/components/message-detail/panels/MessageHeader.js +110 -0
- package/dist/modules/messages/components/message-detail/panels/MessageHeader.js.map +7 -0
- package/dist/modules/messages/components/message-detail/panels/MessageListComponent.js +58 -0
- package/dist/modules/messages/components/message-detail/panels/MessageListComponent.js.map +7 -0
- package/dist/modules/messages/components/message-detail/panels/actions-panel.js +51 -0
- package/dist/modules/messages/components/message-detail/panels/actions-panel.js.map +7 -0
- package/dist/modules/messages/components/message-detail/panels/attachments-panel.js +66 -0
- package/dist/modules/messages/components/message-detail/panels/attachments-panel.js.map +7 -0
- package/dist/modules/messages/components/message-detail/panels/body-panel.js +20 -0
- package/dist/modules/messages/components/message-detail/panels/body-panel.js.map +7 -0
- package/dist/modules/messages/components/message-detail/panels/composer-dialogs.js +36 -0
- package/dist/modules/messages/components/message-detail/panels/composer-dialogs.js.map +7 -0
- package/dist/modules/messages/components/message-detail/panels/dialogs.js +96 -0
- package/dist/modules/messages/components/message-detail/panels/dialogs.js.map +7 -0
- package/dist/modules/messages/components/message-detail/panels/index.js +25 -0
- package/dist/modules/messages/components/message-detail/panels/index.js.map +7 -0
- package/dist/modules/messages/components/message-detail/panels/meta-panel.js +14 -0
- package/dist/modules/messages/components/message-detail/panels/meta-panel.js.map +7 -0
- package/dist/modules/messages/components/message-detail/panels/objects-panel.js +51 -0
- package/dist/modules/messages/components/message-detail/panels/objects-panel.js.map +7 -0
- package/dist/modules/messages/components/message-detail/panels/thread-panel.js +54 -0
- package/dist/modules/messages/components/message-detail/panels/thread-panel.js.map +7 -0
- package/dist/modules/messages/components/message-detail/types.js +1 -0
- package/dist/modules/messages/components/message-detail/types.js.map +7 -0
- package/dist/modules/messages/components/message-detail/utils.js +54 -0
- package/dist/modules/messages/components/message-detail/utils.js.map +7 -0
- package/dist/modules/messages/components/utils/PriorityBadge.js +52 -0
- package/dist/modules/messages/components/utils/PriorityBadge.js.map +7 -0
- package/dist/modules/messages/components/utils/typeUiRegistry.js +77 -0
- package/dist/modules/messages/components/utils/typeUiRegistry.js.map +7 -0
- package/dist/modules/messages/data/entities.js +309 -0
- package/dist/modules/messages/data/entities.js.map +7 -0
- package/dist/modules/messages/data/validators.js +272 -0
- package/dist/modules/messages/data/validators.js.map +7 -0
- package/dist/modules/messages/emails/MessageEmail.js +108 -0
- package/dist/modules/messages/emails/MessageEmail.js.map +7 -0
- package/dist/modules/messages/events.js +24 -0
- package/dist/modules/messages/events.js.map +7 -0
- package/dist/modules/messages/frontend/messages/view/[token]/page.js +247 -0
- package/dist/modules/messages/frontend/messages/view/[token]/page.js.map +7 -0
- package/dist/modules/messages/frontend/messages/view/[token]/page.meta.js +9 -0
- package/dist/modules/messages/frontend/messages/view/[token]/page.meta.js.map +7 -0
- package/dist/modules/messages/index.js +21 -0
- package/dist/modules/messages/index.js.map +7 -0
- package/dist/modules/messages/lib/actions.js +141 -0
- package/dist/modules/messages/lib/actions.js.map +7 -0
- package/dist/modules/messages/lib/attachments.js +131 -0
- package/dist/modules/messages/lib/attachments.js.map +7 -0
- package/dist/modules/messages/lib/constants.js +7 -0
- package/dist/modules/messages/lib/constants.js.map +7 -0
- package/dist/modules/messages/lib/email-sender.js +201 -0
- package/dist/modules/messages/lib/email-sender.js.map +7 -0
- package/dist/modules/messages/lib/forwarding.js +179 -0
- package/dist/modules/messages/lib/forwarding.js.map +7 -0
- package/dist/modules/messages/lib/message-objects-registry.js +49 -0
- package/dist/modules/messages/lib/message-objects-registry.js.map +7 -0
- package/dist/modules/messages/lib/message-types-registry.js +41 -0
- package/dist/modules/messages/lib/message-types-registry.js.map +7 -0
- package/dist/modules/messages/lib/object-validation.js +20 -0
- package/dist/modules/messages/lib/object-validation.js.map +7 -0
- package/dist/modules/messages/lib/operationMetadata.js +21 -0
- package/dist/modules/messages/lib/operationMetadata.js.map +7 -0
- package/dist/modules/messages/lib/priorityUtils.js +61 -0
- package/dist/modules/messages/lib/priorityUtils.js.map +7 -0
- package/dist/modules/messages/lib/routeHelpers.js +44 -0
- package/dist/modules/messages/lib/routeHelpers.js.map +7 -0
- package/dist/modules/messages/message-objects.js +7 -0
- package/dist/modules/messages/message-objects.js.map +7 -0
- package/dist/modules/messages/message-types.js +67 -0
- package/dist/modules/messages/message-types.js.map +7 -0
- package/dist/modules/messages/migrations/Migration20260213181243.js +31 -0
- package/dist/modules/messages/migrations/Migration20260213181243.js.map +7 -0
- package/dist/modules/messages/migrations/Migration20260215165126.js +16 -0
- package/dist/modules/messages/migrations/Migration20260215165126.js.map +7 -0
- package/dist/modules/messages/notifications.js +27 -0
- package/dist/modules/messages/notifications.js.map +7 -0
- package/dist/modules/messages/setup.js +21 -0
- package/dist/modules/messages/setup.js.map +7 -0
- package/dist/modules/messages/subscribers/message-notification.js +108 -0
- package/dist/modules/messages/subscribers/message-notification.js.map +7 -0
- package/dist/modules/messages/workers/send-email.worker.js +253 -0
- package/dist/modules/messages/workers/send-email.worker.js.map +7 -0
- package/dist/modules/sales/backend/sales/documents/[id]/page.js +30 -11
- package/dist/modules/sales/backend/sales/documents/[id]/page.js.map +2 -2
- package/dist/modules/sales/commands/payments.js +12 -6
- package/dist/modules/sales/commands/payments.js.map +2 -2
- package/dist/modules/sales/lib/messageObjectPreviews.js +114 -0
- package/dist/modules/sales/lib/messageObjectPreviews.js.map +7 -0
- package/dist/modules/sales/message-objects.js +57 -0
- package/dist/modules/sales/message-objects.js.map +7 -0
- package/dist/modules/sales/widgets/messages/SalesDocumentMessageDetail.js +51 -0
- package/dist/modules/sales/widgets/messages/SalesDocumentMessageDetail.js.map +7 -0
- package/dist/modules/sales/widgets/messages/SalesDocumentMessagePreview.js +36 -0
- package/dist/modules/sales/widgets/messages/SalesDocumentMessagePreview.js.map +7 -0
- package/dist/modules/sales/widgets/messages/index.js +7 -0
- package/dist/modules/sales/widgets/messages/index.js.map +7 -0
- package/dist/modules/staff/backend/staff/leave-requests/[id]/page.js +55 -1
- package/dist/modules/staff/backend/staff/leave-requests/[id]/page.js.map +2 -2
- package/dist/modules/staff/backend/staff/my-leave-requests/[id]/page.js +60 -1
- package/dist/modules/staff/backend/staff/my-leave-requests/[id]/page.js.map +2 -2
- package/dist/modules/staff/backend/staff/team-members/[id]/page.js +2 -19
- package/dist/modules/staff/backend/staff/team-members/[id]/page.js.map +2 -2
- package/dist/modules/staff/components/LeaveRequestDetail.js +112 -0
- package/dist/modules/staff/components/LeaveRequestDetail.js.map +7 -0
- package/dist/modules/staff/components/LeaveRequestForm.js +3 -1
- package/dist/modules/staff/components/LeaveRequestForm.js.map +2 -2
- package/dist/modules/staff/components/LeaveRequestPreview.js +43 -0
- package/dist/modules/staff/components/LeaveRequestPreview.js.map +7 -0
- package/dist/modules/staff/lib/messageObjectPreviews.js +148 -0
- package/dist/modules/staff/lib/messageObjectPreviews.js.map +7 -0
- package/dist/modules/staff/message-objects.js +104 -0
- package/dist/modules/staff/message-objects.js.map +7 -0
- package/dist/modules/staff/message-types.js +23 -0
- package/dist/modules/staff/message-types.js.map +7 -0
- package/dist/modules/staff/widgets/messages/StaffMessageObjectDetail.js +51 -0
- package/dist/modules/staff/widgets/messages/StaffMessageObjectDetail.js.map +7 -0
- package/dist/modules/staff/widgets/messages/StaffMessageObjectPreview.js +34 -0
- package/dist/modules/staff/widgets/messages/StaffMessageObjectPreview.js.map +7 -0
- package/dist/modules/staff/widgets/messages/index.js +7 -0
- package/dist/modules/staff/widgets/messages/index.js.map +7 -0
- package/dist/modules/workflows/backend/definitions/visual-editor/page.js +6 -6
- package/dist/modules/workflows/backend/definitions/visual-editor/page.js.map +2 -2
- package/generated/entities/message/index.ts +31 -0
- package/generated/entities/message_access_token/index.ts +8 -0
- package/generated/entities/message_confirmation/index.ts +9 -0
- package/generated/entities/message_object/index.ts +10 -0
- package/generated/entities/message_recipient/index.ts +14 -0
- package/generated/entities.ids.generated.ts +8 -0
- package/generated/entity-fields-registry.ts +10 -0
- package/jest.setup.ts +5 -0
- package/package.json +2 -2
- package/src/modules/attachments/i18n/de.json +4 -0
- package/src/modules/attachments/i18n/en.json +4 -0
- package/src/modules/attachments/i18n/es.json +4 -0
- package/src/modules/attachments/i18n/pl.json +4 -0
- package/src/modules/auth/components/AclEditor.tsx +4 -2
- package/src/modules/auth/frontend/reset.tsx +3 -3
- package/src/modules/auth/i18n/de.json +5 -0
- package/src/modules/auth/i18n/en.json +5 -0
- package/src/modules/auth/i18n/es.json +5 -0
- package/src/modules/auth/i18n/pl.json +5 -0
- package/src/modules/catalog/i18n/de.json +21 -0
- package/src/modules/catalog/i18n/en.json +21 -0
- package/src/modules/catalog/i18n/es.json +21 -0
- package/src/modules/catalog/i18n/pl.json +21 -0
- package/src/modules/currencies/i18n/de.json +6 -0
- package/src/modules/currencies/i18n/en.json +6 -0
- package/src/modules/currencies/i18n/es.json +6 -0
- package/src/modules/currencies/i18n/pl.json +6 -0
- package/src/modules/customers/backend/customers/deals/[id]/page.tsx +20 -4
- package/src/modules/customers/i18n/de.json +26 -1
- package/src/modules/customers/i18n/en.json +25 -0
- package/src/modules/customers/i18n/es.json +25 -0
- package/src/modules/customers/i18n/pl.json +25 -0
- package/src/modules/customers/lib/messageObjectPreviews.ts +154 -0
- package/src/modules/customers/message-objects.ts +70 -0
- package/src/modules/customers/widgets/messages/CustomerMessageObjectDetail.tsx +57 -0
- package/src/modules/customers/widgets/messages/CustomerMessageObjectPreview.tsx +49 -0
- package/src/modules/customers/widgets/messages/index.ts +2 -0
- package/src/modules/dashboards/components/WidgetVisibilityEditor.tsx +41 -5
- package/src/modules/dashboards/i18n/de.json +5 -1
- package/src/modules/dashboards/i18n/en.json +5 -1
- package/src/modules/dashboards/i18n/es.json +5 -1
- package/src/modules/dashboards/i18n/pl.json +5 -1
- package/src/modules/dictionaries/i18n/de.json +14 -1
- package/src/modules/dictionaries/i18n/en.json +14 -1
- package/src/modules/dictionaries/i18n/es.json +14 -1
- package/src/modules/dictionaries/i18n/pl.json +14 -1
- package/src/modules/feature_toggles/i18n/de.json +3 -0
- package/src/modules/feature_toggles/i18n/en.json +3 -0
- package/src/modules/feature_toggles/i18n/es.json +3 -0
- package/src/modules/feature_toggles/i18n/pl.json +3 -0
- package/src/modules/messages/acl.ts +11 -0
- package/src/modules/messages/api/[id]/actions/[actionId]/route.ts +103 -0
- package/src/modules/messages/api/[id]/archive/route.ts +138 -0
- package/src/modules/messages/api/[id]/attachments/route.ts +217 -0
- package/src/modules/messages/api/[id]/confirmation/route.ts +73 -0
- package/src/modules/messages/api/[id]/conversation/archive/route.ts +69 -0
- package/src/modules/messages/api/[id]/conversation/read/route.ts +69 -0
- package/src/modules/messages/api/[id]/conversation/route.ts +69 -0
- package/src/modules/messages/api/[id]/forward/route.ts +87 -0
- package/src/modules/messages/api/[id]/forward-preview/route.ts +75 -0
- package/src/modules/messages/api/[id]/read/route.ts +138 -0
- package/src/modules/messages/api/[id]/reply/route.ts +89 -0
- package/src/modules/messages/api/[id]/route.ts +401 -0
- package/src/modules/messages/api/object-types/route.ts +54 -0
- package/src/modules/messages/api/openapi.ts +261 -0
- package/src/modules/messages/api/route.ts +374 -0
- package/src/modules/messages/api/token/[token]/route.ts +103 -0
- package/src/modules/messages/api/types/route.ts +39 -0
- package/src/modules/messages/api/unread-count/route.ts +55 -0
- package/src/modules/messages/backend/messages/[id]/page.meta.ts +12 -0
- package/src/modules/messages/backend/messages/[id]/page.tsx +12 -0
- package/src/modules/messages/backend/messages/compose/page.meta.ts +13 -0
- package/src/modules/messages/backend/messages/compose/page.tsx +12 -0
- package/src/modules/messages/backend/page.meta.ts +31 -0
- package/src/modules/messages/backend/page.tsx +12 -0
- package/src/modules/messages/commands/actions.ts +307 -0
- package/src/modules/messages/commands/attachments.ts +227 -0
- package/src/modules/messages/commands/confirmations.ts +183 -0
- package/src/modules/messages/commands/conversation.ts +292 -0
- package/src/modules/messages/commands/messages.ts +845 -0
- package/src/modules/messages/commands/recipients.ts +281 -0
- package/src/modules/messages/commands/shared.ts +350 -0
- package/src/modules/messages/commands/tokens.ts +80 -0
- package/src/modules/messages/components/ComposeMessagePageClient.tsx +23 -0
- package/src/modules/messages/components/MessageDetailPageClient.tsx +287 -0
- package/src/modules/messages/components/MessagesInboxPageClient.tsx +469 -0
- package/src/modules/messages/components/confirmation/MessageConfirmationActions.tsx +35 -0
- package/src/modules/messages/components/confirmation/MessageConfirmationContent.tsx +88 -0
- package/src/modules/messages/components/defaults/DefaultMessageActions.tsx +37 -0
- package/src/modules/messages/components/defaults/DefaultMessageContent.tsx +21 -0
- package/src/modules/messages/components/defaults/DefaultMessageListItem.tsx +102 -0
- package/src/modules/messages/components/defaults/MessageRecordObjectDetail.tsx +114 -0
- package/src/modules/messages/components/defaults/MessageRecordObjectPreview.tsx +74 -0
- package/src/modules/messages/components/message-detail/detail-panels.ts +13 -0
- package/src/modules/messages/components/message-detail/hooks/useMessageDetails.ts +56 -0
- package/src/modules/messages/components/message-detail/hooks/useMessageDetailsActions.ts +367 -0
- package/src/modules/messages/components/message-detail/hooks/useMessageDetailsConversation.ts +134 -0
- package/src/modules/messages/components/message-detail/hooks/useMessageDetailsQueries.ts +102 -0
- package/src/modules/messages/components/message-detail/panels/MainMessageHeader.tsx +108 -0
- package/src/modules/messages/components/message-detail/panels/MessageHeader.tsx +144 -0
- package/src/modules/messages/components/message-detail/panels/MessageListComponent.tsx +63 -0
- package/src/modules/messages/components/message-detail/panels/actions-panel.tsx +66 -0
- package/src/modules/messages/components/message-detail/panels/attachments-panel.tsx +86 -0
- package/src/modules/messages/components/message-detail/panels/body-panel.tsx +32 -0
- package/src/modules/messages/components/message-detail/panels/composer-dialogs.tsx +42 -0
- package/src/modules/messages/components/message-detail/panels/dialogs.tsx +107 -0
- package/src/modules/messages/components/message-detail/panels/index.ts +11 -0
- package/src/modules/messages/components/message-detail/panels/meta-panel.tsx +19 -0
- package/src/modules/messages/components/message-detail/panels/objects-panel.tsx +65 -0
- package/src/modules/messages/components/message-detail/panels/thread-panel.tsx +65 -0
- package/src/modules/messages/components/message-detail/types.ts +114 -0
- package/src/modules/messages/components/message-detail/utils.ts +62 -0
- package/src/modules/messages/components/utils/PriorityBadge.tsx +63 -0
- package/src/modules/messages/components/utils/typeUiRegistry.ts +106 -0
- package/src/modules/messages/data/entities.ts +284 -0
- package/src/modules/messages/data/validators.ts +297 -0
- package/src/modules/messages/emails/MessageEmail.tsx +143 -0
- package/src/modules/messages/events.ts +24 -0
- package/src/modules/messages/frontend/messages/view/[token]/page.meta.ts +5 -0
- package/src/modules/messages/frontend/messages/view/[token]/page.tsx +389 -0
- package/src/modules/messages/i18n/de.json +240 -0
- package/src/modules/messages/i18n/en.json +240 -0
- package/src/modules/messages/i18n/es.json +240 -0
- package/src/modules/messages/i18n/pl.json +240 -0
- package/src/modules/messages/index.ts +19 -0
- package/src/modules/messages/lib/actions.ts +204 -0
- package/src/modules/messages/lib/attachments.ts +197 -0
- package/src/modules/messages/lib/constants.ts +2 -0
- package/src/modules/messages/lib/email-sender.ts +255 -0
- package/src/modules/messages/lib/forwarding.ts +240 -0
- package/src/modules/messages/lib/message-objects-registry.ts +60 -0
- package/src/modules/messages/lib/message-types-registry.ts +48 -0
- package/src/modules/messages/lib/object-validation.ts +26 -0
- package/src/modules/messages/lib/operationMetadata.ts +43 -0
- package/src/modules/messages/lib/priorityUtils.ts +76 -0
- package/src/modules/messages/lib/routeHelpers.ts +65 -0
- package/src/modules/messages/message-objects.ts +5 -0
- package/src/modules/messages/message-types.ts +65 -0
- package/src/modules/messages/migrations/.snapshot-open-mercato.json +957 -0
- package/src/modules/messages/migrations/Migration20260213181243.ts +34 -0
- package/src/modules/messages/migrations/Migration20260215165126.ts +16 -0
- package/src/modules/messages/notifications.ts +25 -0
- package/src/modules/messages/setup.ts +19 -0
- package/src/modules/messages/subscribers/message-notification.ts +138 -0
- package/src/modules/messages/workers/send-email.worker.ts +321 -0
- package/src/modules/query_index/i18n/es.json +2 -2
- package/src/modules/resources/i18n/de.json +57 -0
- package/src/modules/resources/i18n/en.json +57 -0
- package/src/modules/resources/i18n/es.json +57 -0
- package/src/modules/resources/i18n/pl.json +57 -0
- package/src/modules/sales/backend/sales/documents/[id]/page.tsx +23 -7
- package/src/modules/sales/commands/payments.ts +12 -6
- package/src/modules/sales/i18n/de.json +26 -0
- package/src/modules/sales/i18n/en.json +26 -0
- package/src/modules/sales/i18n/es.json +26 -0
- package/src/modules/sales/i18n/pl.json +26 -0
- package/src/modules/sales/lib/messageObjectPreviews.ts +150 -0
- package/src/modules/sales/message-objects.ts +56 -0
- package/src/modules/sales/widgets/messages/SalesDocumentMessageDetail.tsx +57 -0
- package/src/modules/sales/widgets/messages/SalesDocumentMessagePreview.tsx +46 -0
- package/src/modules/sales/widgets/messages/index.ts +2 -0
- package/src/modules/staff/backend/staff/leave-requests/[id]/page.tsx +54 -0
- package/src/modules/staff/backend/staff/my-leave-requests/[id]/page.tsx +58 -0
- package/src/modules/staff/backend/staff/team-members/[id]/page.tsx +2 -32
- package/src/modules/staff/components/LeaveRequestDetail.tsx +135 -0
- package/src/modules/staff/components/LeaveRequestForm.tsx +3 -0
- package/src/modules/staff/components/LeaveRequestPreview.tsx +74 -0
- package/src/modules/staff/i18n/de.json +22 -0
- package/src/modules/staff/i18n/en.json +22 -0
- package/src/modules/staff/i18n/es.json +22 -0
- package/src/modules/staff/i18n/pl.json +22 -0
- package/src/modules/staff/lib/messageObjectPreviews.ts +182 -0
- package/src/modules/staff/message-objects.ts +102 -0
- package/src/modules/staff/message-types.ts +21 -0
- package/src/modules/staff/widgets/messages/StaffMessageObjectDetail.tsx +57 -0
- package/src/modules/staff/widgets/messages/StaffMessageObjectPreview.tsx +44 -0
- package/src/modules/staff/widgets/messages/index.ts +2 -0
- package/src/modules/workflows/backend/definitions/visual-editor/page.tsx +6 -6
- package/src/modules/workflows/i18n/de.json +41 -0
- package/src/modules/workflows/i18n/en.json +41 -0
- package/src/modules/workflows/i18n/es.json +41 -0
- package/src/modules/workflows/i18n/pl.json +41 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../src/modules/messages/components/message-detail/panels/meta-panel.tsx"],
|
|
4
|
+
"sourcesContent": ["\"use client\"\n\nimport { useT } from '@open-mercato/shared/lib/i18n/context'\nimport type { MessageDetail } from '../types'\n\nexport function MessageDetailMetaSection({ detail }: { detail: MessageDetail }) {\n const t = useT()\n\n return (\n <div className=\"grid gap-3 sm:grid-cols-2\">\n {detail.externalEmail ? (\n <div className=\"space-y-1 rounded border p-3 text-sm\">\n <p className=\"font-medium\">{t('messages.externalEmail', 'External email')}</p>\n <p>{detail.externalEmail}</p>\n </div>\n ) : null}\n </div>\n )\n}\n"],
|
|
5
|
+
"mappings": ";AAWQ,SACE,KADF;AATR,SAAS,YAAY;AAGd,SAAS,yBAAyB,EAAE,OAAO,GAA8B;AAC9E,QAAM,IAAI,KAAK;AAEf,SACE,oBAAC,SAAI,WAAU,6BACZ,iBAAO,gBACN,qBAAC,SAAI,WAAU,wCACb;AAAA,wBAAC,OAAE,WAAU,eAAe,YAAE,0BAA0B,gBAAgB,GAAE;AAAA,IAC1E,oBAAC,OAAG,iBAAO,eAAc;AAAA,KAC3B,IACE,MACN;AAEJ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useT } from "@open-mercato/shared/lib/i18n/context";
|
|
4
|
+
import {
|
|
5
|
+
getMessageUiComponentRegistry
|
|
6
|
+
} from "../../utils/typeUiRegistry.js";
|
|
7
|
+
import { toObjectAction } from "../utils.js";
|
|
8
|
+
function MessageDetailObjectsSection(props) {
|
|
9
|
+
const t = useT();
|
|
10
|
+
const messageUiRegistry = getMessageUiComponentRegistry();
|
|
11
|
+
if ((props.detail.objects ?? []).length === 0) return null;
|
|
12
|
+
return /* @__PURE__ */ jsxs("section", { className: "space-y-3 pl-4 py-2", children: [
|
|
13
|
+
/* @__PURE__ */ jsx("h2", { className: "text-base font-semibold", children: t("messages.attachedObjects", "Attached objects") }),
|
|
14
|
+
/* @__PURE__ */ jsx("div", { className: "space-y-2", children: (props.detail.objects ?? []).map((item) => {
|
|
15
|
+
const componentKey = `${item.entityModule}:${item.entityType}`;
|
|
16
|
+
const DetailComponent = messageUiRegistry.objectDetailComponents[componentKey] ?? null;
|
|
17
|
+
const objectActions = props.objectActionsByObjectId.get(item.id);
|
|
18
|
+
if (DetailComponent) {
|
|
19
|
+
const actions = objectActions ? Array.from(objectActions.entries()).map(([actionId, action]) => toObjectAction(actionId, action)) : [];
|
|
20
|
+
return /* @__PURE__ */ jsx(
|
|
21
|
+
DetailComponent,
|
|
22
|
+
{
|
|
23
|
+
entityId: item.entityId,
|
|
24
|
+
entityModule: item.entityModule,
|
|
25
|
+
entityType: item.entityType,
|
|
26
|
+
snapshot: item.snapshot ?? void 0,
|
|
27
|
+
previewData: item.preview ?? void 0,
|
|
28
|
+
actionRequired: item.actionRequired,
|
|
29
|
+
actionType: item.actionType ?? void 0,
|
|
30
|
+
actionLabel: item.actionLabel ?? void 0,
|
|
31
|
+
actionTaken: props.detail.actionTaken ?? null,
|
|
32
|
+
actionTakenAt: props.detail.actionTakenAt ? new Date(props.detail.actionTakenAt) : null,
|
|
33
|
+
actionTakenByUserId: props.detail.actionTakenByUserId ?? null,
|
|
34
|
+
actions,
|
|
35
|
+
onAction: async (actionId, payload) => {
|
|
36
|
+
const action = objectActions?.get(actionId);
|
|
37
|
+
if (!action) return;
|
|
38
|
+
await props.onExecuteAction(action, payload);
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
item.id
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
return null;
|
|
45
|
+
}) })
|
|
46
|
+
] });
|
|
47
|
+
}
|
|
48
|
+
export {
|
|
49
|
+
MessageDetailObjectsSection
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=objects-panel.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../src/modules/messages/components/message-detail/panels/objects-panel.tsx"],
|
|
4
|
+
"sourcesContent": ["\"use client\"\n\nimport type { MessageObjectAction } from '@open-mercato/shared/modules/messages/types'\nimport { useT } from '@open-mercato/shared/lib/i18n/context'\nimport {\n getMessageUiComponentRegistry,\n} from '../../utils/typeUiRegistry'\nimport type { MessageAction, MessageDetail } from '../types'\nimport { toObjectAction } from '../utils'\n\ntype ObjectsPanelProps = {\n detail: MessageDetail\n objectActionsByObjectId: Map<string, Map<string, MessageAction>>\n onExecuteAction: (action: MessageAction, payload?: Record<string, unknown>) => Promise<void>\n}\n\nexport function MessageDetailObjectsSection(props: ObjectsPanelProps) {\n const t = useT()\n const messageUiRegistry = getMessageUiComponentRegistry()\n\n if ((props.detail.objects ?? []).length === 0) return null\n\n return (\n <section className=\"space-y-3 pl-4 py-2\">\n <h2 className=\"text-base font-semibold\">{t('messages.attachedObjects', 'Attached objects')}</h2>\n <div className=\"space-y-2\">\n {(props.detail.objects ?? []).map((item) => {\n const componentKey = `${item.entityModule}:${item.entityType}`\n const DetailComponent = messageUiRegistry.objectDetailComponents[componentKey] ?? null\n const objectActions = props.objectActionsByObjectId.get(item.id)\n\n if (DetailComponent) {\n const actions: MessageObjectAction[] = objectActions\n ? Array.from(objectActions.entries()).map(([actionId, action]) => toObjectAction(actionId, action))\n : []\n\n return (\n <DetailComponent\n key={item.id}\n entityId={item.entityId}\n entityModule={item.entityModule}\n entityType={item.entityType}\n snapshot={item.snapshot ?? undefined}\n previewData={item.preview ?? undefined}\n actionRequired={item.actionRequired}\n actionType={item.actionType ?? undefined}\n actionLabel={item.actionLabel ?? undefined}\n actionTaken={props.detail.actionTaken ?? null}\n actionTakenAt={props.detail.actionTakenAt ? new Date(props.detail.actionTakenAt) : null}\n actionTakenByUserId={props.detail.actionTakenByUserId ?? null}\n actions={actions}\n onAction={async (actionId, payload) => {\n const action = objectActions?.get(actionId)\n if (!action) return\n await props.onExecuteAction(action, payload)\n }}\n />\n )\n }\n return null\n })}\n </div>\n </section>\n )\n}\n"],
|
|
5
|
+
"mappings": ";AAuBI,SACE,KADF;AApBJ,SAAS,YAAY;AACrB;AAAA,EACE;AAAA,OACK;AAEP,SAAS,sBAAsB;AAQxB,SAAS,4BAA4B,OAA0B;AACpE,QAAM,IAAI,KAAK;AACf,QAAM,oBAAoB,8BAA8B;AAExD,OAAK,MAAM,OAAO,WAAW,CAAC,GAAG,WAAW,EAAG,QAAO;AAEtD,SACE,qBAAC,aAAQ,WAAU,uBACjB;AAAA,wBAAC,QAAG,WAAU,2BAA2B,YAAE,4BAA4B,kBAAkB,GAAE;AAAA,IAC3F,oBAAC,SAAI,WAAU,aACX,iBAAM,OAAO,WAAW,CAAC,GAAG,IAAI,CAAC,SAAS;AAC1C,YAAM,eAAe,GAAG,KAAK,YAAY,IAAI,KAAK,UAAU;AAC5D,YAAM,kBAAkB,kBAAkB,uBAAuB,YAAY,KAAK;AAClF,YAAM,gBAAgB,MAAM,wBAAwB,IAAI,KAAK,EAAE;AAE/D,UAAI,iBAAiB;AACnB,cAAM,UAAiC,gBACnC,MAAM,KAAK,cAAc,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,UAAU,MAAM,MAAM,eAAe,UAAU,MAAM,CAAC,IAChG,CAAC;AAEL,eACE;AAAA,UAAC;AAAA;AAAA,YAEC,UAAU,KAAK;AAAA,YACf,cAAc,KAAK;AAAA,YACnB,YAAY,KAAK;AAAA,YACjB,UAAU,KAAK,YAAY;AAAA,YAC3B,aAAa,KAAK,WAAW;AAAA,YAC7B,gBAAgB,KAAK;AAAA,YACrB,YAAY,KAAK,cAAc;AAAA,YAC/B,aAAa,KAAK,eAAe;AAAA,YACjC,aAAa,MAAM,OAAO,eAAe;AAAA,YACzC,eAAe,MAAM,OAAO,gBAAgB,IAAI,KAAK,MAAM,OAAO,aAAa,IAAI;AAAA,YACnF,qBAAqB,MAAM,OAAO,uBAAuB;AAAA,YACzD;AAAA,YACA,UAAU,OAAO,UAAU,YAAY;AACrC,oBAAM,SAAS,eAAe,IAAI,QAAQ;AAC1C,kBAAI,CAAC,OAAQ;AACb,oBAAM,MAAM,gBAAgB,QAAQ,OAAO;AAAA,YAC7C;AAAA;AAAA,UAjBK,KAAK;AAAA,QAkBZ;AAAA,MAEJ;AACA,aAAO;AAAA,IACT,CAAC,GACH;AAAA,KACF;AAEJ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useT } from "@open-mercato/shared/lib/i18n/context";
|
|
4
|
+
import { MarkdownContent } from "@open-mercato/ui/backend/markdown/MarkdownContent";
|
|
5
|
+
import { getMessageUiComponentRegistry } from "../../utils/typeUiRegistry.js";
|
|
6
|
+
import { formatDateTime } from "../utils.js";
|
|
7
|
+
function MessageDetailThreadSection({ detail }) {
|
|
8
|
+
const t = useT();
|
|
9
|
+
const messageUiRegistry = getMessageUiComponentRegistry();
|
|
10
|
+
if ((detail.thread ?? []).length === 0) return null;
|
|
11
|
+
return /* @__PURE__ */ jsxs("section", { className: "space-y-3 border-l pl-4 py-2", children: [
|
|
12
|
+
/* @__PURE__ */ jsx("h2", { className: "text-base font-semibold", children: t("messages.detail.thread", "Thread") }),
|
|
13
|
+
/* @__PURE__ */ jsx("div", { className: "space-y-3", children: (detail.thread ?? []).map((threadItem) => /* @__PURE__ */ jsxs("article", { className: "rounded border p-3", children: [
|
|
14
|
+
/* @__PURE__ */ jsxs("p", { className: "text-xs text-muted-foreground", children: [
|
|
15
|
+
threadItem.senderName || threadItem.senderEmail || threadItem.senderUserId,
|
|
16
|
+
" \u2022 ",
|
|
17
|
+
formatDateTime(threadItem.sentAt)
|
|
18
|
+
] }),
|
|
19
|
+
/* @__PURE__ */ jsx("div", { className: "mt-2 max-h-[60vh] overflow-y-auto pr-1", children: /* @__PURE__ */ jsx(
|
|
20
|
+
MarkdownContent,
|
|
21
|
+
{
|
|
22
|
+
body: threadItem.body,
|
|
23
|
+
format: threadItem.bodyFormat ?? "text",
|
|
24
|
+
className: "text-sm whitespace-pre-wrap [&>*]:mb-2 [&>*:last-child]:mb-0 [&_ul]:ml-4 [&_ul]:list-disc [&_ol]:ml-4 [&_ol]:list-decimal [&_code]:rounded [&_code]:bg-muted [&_code]:px-1 [&_code]:py-0.5 [&_pre]:rounded-md [&_pre]:bg-muted [&_pre]:p-3 [&_pre]:text-xs"
|
|
25
|
+
}
|
|
26
|
+
) }),
|
|
27
|
+
(threadItem.objects ?? []).length > 0 && /* @__PURE__ */ jsxs("div", { className: "mt-3 space-y-2", children: [
|
|
28
|
+
/* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground font-medium", children: t("messages.attachedObjects", "Attached objects") }),
|
|
29
|
+
(threadItem.objects ?? []).map((obj) => {
|
|
30
|
+
const componentKey = `${obj.entityModule}:${obj.entityType}`;
|
|
31
|
+
const PreviewComponent = messageUiRegistry.objectPreviewComponents[componentKey] ?? messageUiRegistry.objectPreviewComponents["messages:default"];
|
|
32
|
+
if (!PreviewComponent) return null;
|
|
33
|
+
return /* @__PURE__ */ jsx("div", { className: "scale-95 origin-left", children: /* @__PURE__ */ jsx(
|
|
34
|
+
PreviewComponent,
|
|
35
|
+
{
|
|
36
|
+
entityId: obj.entityId,
|
|
37
|
+
entityModule: obj.entityModule,
|
|
38
|
+
entityType: obj.entityType,
|
|
39
|
+
snapshot: obj.snapshot ?? void 0,
|
|
40
|
+
previewData: obj.preview ?? void 0,
|
|
41
|
+
actionRequired: obj.actionRequired,
|
|
42
|
+
actionType: obj.actionType ?? void 0,
|
|
43
|
+
actionLabel: obj.actionLabel ?? void 0
|
|
44
|
+
}
|
|
45
|
+
) }, obj.id);
|
|
46
|
+
})
|
|
47
|
+
] })
|
|
48
|
+
] }, threadItem.id)) })
|
|
49
|
+
] });
|
|
50
|
+
}
|
|
51
|
+
export {
|
|
52
|
+
MessageDetailThreadSection
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=thread-panel.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../src/modules/messages/components/message-detail/panels/thread-panel.tsx"],
|
|
4
|
+
"sourcesContent": ["\"use client\"\n\nimport { useT } from '@open-mercato/shared/lib/i18n/context'\nimport { MarkdownContent } from '@open-mercato/ui/backend/markdown/MarkdownContent'\nimport { getMessageUiComponentRegistry } from '../../utils/typeUiRegistry'\nimport type { MessageDetail, MessageDetailObject } from '../types'\nimport { formatDateTime } from '../utils'\n\nexport function MessageDetailThreadSection({ detail }: { detail: MessageDetail }) {\n const t = useT()\n const messageUiRegistry = getMessageUiComponentRegistry()\n\n if ((detail.thread ?? []).length === 0) return null\n\n return (\n <section className=\"space-y-3 border-l pl-4 py-2\">\n <h2 className=\"text-base font-semibold\">{t('messages.detail.thread', 'Thread')}</h2>\n <div className=\"space-y-3\">\n {(detail.thread ?? []).map((threadItem) => (\n <article key={threadItem.id} className=\"rounded border p-3\">\n <p className=\"text-xs text-muted-foreground\">\n {(threadItem.senderName || threadItem.senderEmail || threadItem.senderUserId)} \u2022 {formatDateTime(threadItem.sentAt)}\n </p>\n <div className=\"mt-2 max-h-[60vh] overflow-y-auto pr-1\">\n <MarkdownContent\n body={threadItem.body}\n format={threadItem.bodyFormat ?? 'text'}\n className=\"text-sm whitespace-pre-wrap [&>*]:mb-2 [&>*:last-child]:mb-0 [&_ul]:ml-4 [&_ul]:list-disc [&_ol]:ml-4 [&_ol]:list-decimal [&_code]:rounded [&_code]:bg-muted [&_code]:px-1 [&_code]:py-0.5 [&_pre]:rounded-md [&_pre]:bg-muted [&_pre]:p-3 [&_pre]:text-xs\"\n />\n </div>\n\n {(threadItem.objects ?? []).length > 0 && (\n <div className=\"mt-3 space-y-2\">\n <p className=\"text-xs text-muted-foreground font-medium\">\n {t('messages.attachedObjects', 'Attached objects')}\n </p>\n {(threadItem.objects ?? []).map((obj: MessageDetailObject) => {\n const componentKey = `${obj.entityModule}:${obj.entityType}`\n const PreviewComponent = messageUiRegistry.objectPreviewComponents[componentKey]\n ?? messageUiRegistry.objectPreviewComponents['messages:default']\n if (!PreviewComponent) return null\n\n return (\n <div key={obj.id} className=\"scale-95 origin-left\">\n <PreviewComponent\n entityId={obj.entityId}\n entityModule={obj.entityModule}\n entityType={obj.entityType}\n snapshot={obj.snapshot ?? undefined}\n previewData={obj.preview ?? undefined}\n actionRequired={obj.actionRequired}\n actionType={obj.actionType ?? undefined}\n actionLabel={obj.actionLabel ?? undefined}\n />\n </div>\n )\n })}\n </div>\n )}\n </article>\n ))}\n </div>\n </section>\n )\n}\n"],
|
|
5
|
+
"mappings": ";AAgBM,cAIM,YAJN;AAdN,SAAS,YAAY;AACrB,SAAS,uBAAuB;AAChC,SAAS,qCAAqC;AAE9C,SAAS,sBAAsB;AAExB,SAAS,2BAA2B,EAAE,OAAO,GAA8B;AAChF,QAAM,IAAI,KAAK;AACf,QAAM,oBAAoB,8BAA8B;AAExD,OAAK,OAAO,UAAU,CAAC,GAAG,WAAW,EAAG,QAAO;AAE/C,SACE,qBAAC,aAAQ,WAAU,gCACjB;AAAA,wBAAC,QAAG,WAAU,2BAA2B,YAAE,0BAA0B,QAAQ,GAAE;AAAA,IAC/E,oBAAC,SAAI,WAAU,aACX,kBAAO,UAAU,CAAC,GAAG,IAAI,CAAC,eAC1B,qBAAC,aAA4B,WAAU,sBACrC;AAAA,2BAAC,OAAE,WAAU,iCACT;AAAA,mBAAW,cAAc,WAAW,eAAe,WAAW;AAAA,QAAc;AAAA,QAAI,eAAe,WAAW,MAAM;AAAA,SACpH;AAAA,MACA,oBAAC,SAAI,WAAU,0CACb;AAAA,QAAC;AAAA;AAAA,UACC,MAAM,WAAW;AAAA,UACjB,QAAQ,WAAW,cAAc;AAAA,UACjC,WAAU;AAAA;AAAA,MACZ,GACF;AAAA,OAEE,WAAW,WAAW,CAAC,GAAG,SAAS,KACnC,qBAAC,SAAI,WAAU,kBACb;AAAA,4BAAC,OAAE,WAAU,6CACV,YAAE,4BAA4B,kBAAkB,GACnD;AAAA,SACE,WAAW,WAAW,CAAC,GAAG,IAAI,CAAC,QAA6B;AAC5D,gBAAM,eAAe,GAAG,IAAI,YAAY,IAAI,IAAI,UAAU;AAC1D,gBAAM,mBAAmB,kBAAkB,wBAAwB,YAAY,KAC1E,kBAAkB,wBAAwB,kBAAkB;AACjE,cAAI,CAAC,iBAAkB,QAAO;AAE9B,iBACE,oBAAC,SAAiB,WAAU,wBAC1B;AAAA,YAAC;AAAA;AAAA,cACC,UAAU,IAAI;AAAA,cACd,cAAc,IAAI;AAAA,cAClB,YAAY,IAAI;AAAA,cAChB,UAAU,IAAI,YAAY;AAAA,cAC1B,aAAa,IAAI,WAAW;AAAA,cAC5B,gBAAgB,IAAI;AAAA,cACpB,YAAY,IAAI,cAAc;AAAA,cAC9B,aAAa,IAAI,eAAe;AAAA;AAAA,UAClC,KAVQ,IAAI,EAWd;AAAA,QAEJ,CAAC;AAAA,SACH;AAAA,SAtCU,WAAW,EAwCzB,CACD,GACH;AAAA,KACF;AAEJ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
function toErrorMessage(payload) {
|
|
2
|
+
if (!payload) return null;
|
|
3
|
+
if (typeof payload === "string") return payload;
|
|
4
|
+
if (Array.isArray(payload)) {
|
|
5
|
+
for (const item of payload) {
|
|
6
|
+
const nested = toErrorMessage(item);
|
|
7
|
+
if (nested) return nested;
|
|
8
|
+
}
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
if (typeof payload === "object") {
|
|
12
|
+
const record = payload;
|
|
13
|
+
return toErrorMessage(record.error) ?? toErrorMessage(record.message) ?? toErrorMessage(record.detail) ?? toErrorMessage(record.details) ?? null;
|
|
14
|
+
}
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
function formatDateTime(value) {
|
|
18
|
+
if (!value) return "\u2014";
|
|
19
|
+
const date = new Date(value);
|
|
20
|
+
if (Number.isNaN(date.getTime())) return "\u2014";
|
|
21
|
+
return date.toLocaleString();
|
|
22
|
+
}
|
|
23
|
+
function parseObjectActionId(value) {
|
|
24
|
+
if (!value.startsWith("object:")) return null;
|
|
25
|
+
const [, objectId, ...rest] = value.split(":");
|
|
26
|
+
if (!objectId || rest.length === 0) return null;
|
|
27
|
+
return { objectId, actionId: rest.join(":") };
|
|
28
|
+
}
|
|
29
|
+
function resolveObjectActionVariant(variant) {
|
|
30
|
+
if (variant === "default" || variant === "secondary" || variant === "destructive" || variant === "outline") {
|
|
31
|
+
return variant;
|
|
32
|
+
}
|
|
33
|
+
return void 0;
|
|
34
|
+
}
|
|
35
|
+
function toObjectAction(actionId, action) {
|
|
36
|
+
return {
|
|
37
|
+
id: actionId,
|
|
38
|
+
labelKey: action.labelKey ?? action.label ?? actionId,
|
|
39
|
+
variant: resolveObjectActionVariant(action.variant),
|
|
40
|
+
icon: action.icon,
|
|
41
|
+
commandId: action.commandId,
|
|
42
|
+
href: action.href,
|
|
43
|
+
isTerminal: action.isTerminal,
|
|
44
|
+
confirmRequired: action.confirmRequired,
|
|
45
|
+
confirmMessage: action.confirmMessage
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
export {
|
|
49
|
+
formatDateTime,
|
|
50
|
+
parseObjectActionId,
|
|
51
|
+
toErrorMessage,
|
|
52
|
+
toObjectAction
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/modules/messages/components/message-detail/utils.ts"],
|
|
4
|
+
"sourcesContent": ["import type { MessageObjectAction } from '@open-mercato/shared/modules/messages/types'\nimport type { MessageAction } from './types'\n\nexport function toErrorMessage(payload: unknown): string | null {\n if (!payload) return null\n if (typeof payload === 'string') return payload\n if (Array.isArray(payload)) {\n for (const item of payload) {\n const nested = toErrorMessage(item)\n if (nested) return nested\n }\n return null\n }\n if (typeof payload === 'object') {\n const record = payload as Record<string, unknown>\n return (\n toErrorMessage(record.error)\n ?? toErrorMessage(record.message)\n ?? toErrorMessage(record.detail)\n ?? toErrorMessage(record.details)\n ?? null\n )\n }\n return null\n}\n\nexport function formatDateTime(value: string | null | undefined): string {\n if (!value) return '\u2014'\n const date = new Date(value)\n if (Number.isNaN(date.getTime())) return '\u2014'\n return date.toLocaleString()\n}\n\nexport function parseObjectActionId(value: string): { objectId: string; actionId: string } | null {\n if (!value.startsWith('object:')) return null\n const [, objectId, ...rest] = value.split(':')\n if (!objectId || rest.length === 0) return null\n return { objectId, actionId: rest.join(':') }\n}\n\nfunction resolveObjectActionVariant(\n variant: MessageAction['variant'],\n): MessageObjectAction['variant'] | undefined {\n if (variant === 'default' || variant === 'secondary' || variant === 'destructive' || variant === 'outline') {\n return variant\n }\n return undefined\n}\n\nexport function toObjectAction(actionId: string, action: MessageAction): MessageObjectAction {\n return {\n id: actionId,\n labelKey: action.labelKey ?? action.label ?? actionId,\n variant: resolveObjectActionVariant(action.variant),\n icon: action.icon,\n commandId: action.commandId,\n href: action.href,\n isTerminal: action.isTerminal,\n confirmRequired: action.confirmRequired,\n confirmMessage: action.confirmMessage,\n }\n}\n"],
|
|
5
|
+
"mappings": "AAGO,SAAS,eAAe,SAAiC;AAC9D,MAAI,CAAC,QAAS,QAAO;AACrB,MAAI,OAAO,YAAY,SAAU,QAAO;AACxC,MAAI,MAAM,QAAQ,OAAO,GAAG;AAC1B,eAAW,QAAQ,SAAS;AAC1B,YAAM,SAAS,eAAe,IAAI;AAClC,UAAI,OAAQ,QAAO;AAAA,IACrB;AACA,WAAO;AAAA,EACT;AACA,MAAI,OAAO,YAAY,UAAU;AAC/B,UAAM,SAAS;AACf,WACE,eAAe,OAAO,KAAK,KACxB,eAAe,OAAO,OAAO,KAC7B,eAAe,OAAO,MAAM,KAC5B,eAAe,OAAO,OAAO,KAC7B;AAAA,EAEP;AACA,SAAO;AACT;AAEO,SAAS,eAAe,OAA0C;AACvE,MAAI,CAAC,MAAO,QAAO;AACnB,QAAM,OAAO,IAAI,KAAK,KAAK;AAC3B,MAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,EAAG,QAAO;AACzC,SAAO,KAAK,eAAe;AAC7B;AAEO,SAAS,oBAAoB,OAA8D;AAChG,MAAI,CAAC,MAAM,WAAW,SAAS,EAAG,QAAO;AACzC,QAAM,CAAC,EAAE,UAAU,GAAG,IAAI,IAAI,MAAM,MAAM,GAAG;AAC7C,MAAI,CAAC,YAAY,KAAK,WAAW,EAAG,QAAO;AAC3C,SAAO,EAAE,UAAU,UAAU,KAAK,KAAK,GAAG,EAAE;AAC9C;AAEA,SAAS,2BACP,SAC4C;AAC5C,MAAI,YAAY,aAAa,YAAY,eAAe,YAAY,iBAAiB,YAAY,WAAW;AAC1G,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAEO,SAAS,eAAe,UAAkB,QAA4C;AAC3F,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,UAAU,OAAO,YAAY,OAAO,SAAS;AAAA,IAC7C,SAAS,2BAA2B,OAAO,OAAO;AAAA,IAClD,MAAM,OAAO;AAAA,IACb,WAAW,OAAO;AAAA,IAClB,MAAM,OAAO;AAAA,IACb,YAAY,OAAO;AAAA,IACnB,iBAAiB,OAAO;AAAA,IACxB,gBAAgB,OAAO;AAAA,EACzB;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { ArrowDown, ArrowUp, Circle, TriangleAlert } from "lucide-react";
|
|
5
|
+
import { useT } from "@open-mercato/shared/lib/i18n/context";
|
|
6
|
+
import { cn } from "@open-mercato/shared/lib/utils";
|
|
7
|
+
import { SimpleTooltip, TooltipProvider } from "@open-mercato/ui/primitives/tooltip";
|
|
8
|
+
import {
|
|
9
|
+
getPriorityBadgeClassName,
|
|
10
|
+
getPriorityLabelKey,
|
|
11
|
+
getPriorityFallbackLabel
|
|
12
|
+
} from "../../lib/priorityUtils.js";
|
|
13
|
+
function PriorityBadge({ priority, className }) {
|
|
14
|
+
const t = useT();
|
|
15
|
+
const priorityTitle = t("messages.priority", "Priority");
|
|
16
|
+
const priorityLabel = React.useMemo(() => {
|
|
17
|
+
return t(getPriorityLabelKey(priority), getPriorityFallbackLabel(priority));
|
|
18
|
+
}, [priority, t]);
|
|
19
|
+
const tooltipText = `${priorityTitle}: ${priorityLabel}`;
|
|
20
|
+
const Icon = React.useMemo(() => {
|
|
21
|
+
switch (priority) {
|
|
22
|
+
case "low":
|
|
23
|
+
return ArrowDown;
|
|
24
|
+
case "high":
|
|
25
|
+
return ArrowUp;
|
|
26
|
+
case "urgent":
|
|
27
|
+
return TriangleAlert;
|
|
28
|
+
case "normal":
|
|
29
|
+
default:
|
|
30
|
+
return Circle;
|
|
31
|
+
}
|
|
32
|
+
}, [priority]);
|
|
33
|
+
return /* @__PURE__ */ jsx(TooltipProvider, { delayDuration: 250, children: /* @__PURE__ */ jsx(SimpleTooltip, { content: tooltipText, children: /* @__PURE__ */ jsx(
|
|
34
|
+
"span",
|
|
35
|
+
{
|
|
36
|
+
className: cn(
|
|
37
|
+
"inline-flex h-6 w-6 items-center justify-center rounded-md border",
|
|
38
|
+
getPriorityBadgeClassName(priority),
|
|
39
|
+
className
|
|
40
|
+
),
|
|
41
|
+
"aria-label": tooltipText,
|
|
42
|
+
title: tooltipText,
|
|
43
|
+
children: /* @__PURE__ */ jsx(Icon, { className: "h-3.5 w-3.5", "aria-hidden": "true" })
|
|
44
|
+
}
|
|
45
|
+
) }) });
|
|
46
|
+
}
|
|
47
|
+
var PriorityBadge_default = PriorityBadge;
|
|
48
|
+
export {
|
|
49
|
+
PriorityBadge,
|
|
50
|
+
PriorityBadge_default as default
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=PriorityBadge.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/modules/messages/components/utils/PriorityBadge.tsx"],
|
|
4
|
+
"sourcesContent": ["\"use client\"\n\nimport * as React from 'react'\nimport { ArrowDown, ArrowUp, Circle, TriangleAlert } from 'lucide-react'\nimport { useT } from '@open-mercato/shared/lib/i18n/context'\nimport { cn } from '@open-mercato/shared/lib/utils'\nimport { SimpleTooltip, TooltipProvider } from '@open-mercato/ui/primitives/tooltip'\nimport type { MessagePriority } from '../../lib/priorityUtils'\nimport {\n getPriorityBadgeClassName,\n getPriorityLabelKey,\n getPriorityFallbackLabel,\n} from '../../lib/priorityUtils'\n\nexport type PriorityBadgeProps = {\n priority: MessagePriority\n className?: string\n}\n\nexport function PriorityBadge({ priority, className }: PriorityBadgeProps) {\n const t = useT()\n const priorityTitle = t('messages.priority', 'Priority')\n\n const priorityLabel = React.useMemo(() => {\n return t(getPriorityLabelKey(priority), getPriorityFallbackLabel(priority))\n }, [priority, t])\n\n const tooltipText = `${priorityTitle}: ${priorityLabel}`\n\n const Icon = React.useMemo(() => {\n switch (priority) {\n case 'low':\n return ArrowDown\n case 'high':\n return ArrowUp\n case 'urgent':\n return TriangleAlert\n case 'normal':\n default:\n return Circle\n }\n }, [priority])\n\n return (\n <TooltipProvider delayDuration={250}>\n <SimpleTooltip content={tooltipText}>\n <span\n className={cn(\n 'inline-flex h-6 w-6 items-center justify-center rounded-md border',\n getPriorityBadgeClassName(priority),\n className,\n )}\n aria-label={tooltipText}\n title={tooltipText}\n >\n <Icon className=\"h-3.5 w-3.5\" aria-hidden=\"true\" />\n </span>\n </SimpleTooltip>\n </TooltipProvider>\n )\n}\n\nexport default PriorityBadge\n"],
|
|
5
|
+
"mappings": ";AAuDU;AArDV,YAAY,WAAW;AACvB,SAAS,WAAW,SAAS,QAAQ,qBAAqB;AAC1D,SAAS,YAAY;AACrB,SAAS,UAAU;AACnB,SAAS,eAAe,uBAAuB;AAE/C;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAOA,SAAS,cAAc,EAAE,UAAU,UAAU,GAAuB;AACzE,QAAM,IAAI,KAAK;AACf,QAAM,gBAAgB,EAAE,qBAAqB,UAAU;AAEvD,QAAM,gBAAgB,MAAM,QAAQ,MAAM;AACxC,WAAO,EAAE,oBAAoB,QAAQ,GAAG,yBAAyB,QAAQ,CAAC;AAAA,EAC5E,GAAG,CAAC,UAAU,CAAC,CAAC;AAEhB,QAAM,cAAc,GAAG,aAAa,KAAK,aAAa;AAEtD,QAAM,OAAO,MAAM,QAAQ,MAAM;AAC/B,YAAQ,UAAU;AAAA,MAChB,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AAAA,MACL;AACE,eAAO;AAAA,IACX;AAAA,EACF,GAAG,CAAC,QAAQ,CAAC;AAEb,SACE,oBAAC,mBAAgB,eAAe,KAC9B,8BAAC,iBAAc,SAAS,aACtB;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA,0BAA0B,QAAQ;AAAA,QAClC;AAAA,MACF;AAAA,MACA,cAAY;AAAA,MACZ,OAAO;AAAA,MAEP,8BAAC,QAAK,WAAU,eAAc,eAAY,QAAO;AAAA;AAAA,EACnD,GACF,GACF;AAEJ;AAEA,IAAO,wBAAQ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { MessageRecordObjectDetail } from "../defaults/MessageRecordObjectDetail.js";
|
|
3
|
+
import { MessageRecordObjectPreview } from "./../defaults/MessageRecordObjectPreview.js";
|
|
4
|
+
const listItemComponents = /* @__PURE__ */ new Map();
|
|
5
|
+
const contentComponents = /* @__PURE__ */ new Map();
|
|
6
|
+
const actionsComponents = /* @__PURE__ */ new Map();
|
|
7
|
+
const objectDetailComponents = /* @__PURE__ */ new Map();
|
|
8
|
+
const objectPreviewComponents = /* @__PURE__ */ new Map();
|
|
9
|
+
function getObjectDetailComponentKey(entityModule, entityType) {
|
|
10
|
+
return `${entityModule}:${entityType}`;
|
|
11
|
+
}
|
|
12
|
+
function configureMessageUiComponentRegistry(registry) {
|
|
13
|
+
listItemComponents.clear();
|
|
14
|
+
contentComponents.clear();
|
|
15
|
+
actionsComponents.clear();
|
|
16
|
+
objectDetailComponents.clear();
|
|
17
|
+
objectPreviewComponents.clear();
|
|
18
|
+
for (const [key, component] of Object.entries(registry.listItemComponents ?? {})) {
|
|
19
|
+
listItemComponents.set(key, component);
|
|
20
|
+
}
|
|
21
|
+
for (const [key, component] of Object.entries(registry.contentComponents ?? {})) {
|
|
22
|
+
contentComponents.set(key, component);
|
|
23
|
+
}
|
|
24
|
+
for (const [key, component] of Object.entries(registry.actionsComponents ?? {})) {
|
|
25
|
+
actionsComponents.set(key, component);
|
|
26
|
+
}
|
|
27
|
+
for (const [key, component] of Object.entries(registry.objectDetailComponents ?? {})) {
|
|
28
|
+
objectDetailComponents.set(key, component);
|
|
29
|
+
}
|
|
30
|
+
for (const [key, component] of Object.entries(registry.objectPreviewComponents ?? {})) {
|
|
31
|
+
objectPreviewComponents.set(key, component);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
function getMessageUiComponentRegistry() {
|
|
35
|
+
return {
|
|
36
|
+
listItemComponents: Object.fromEntries(listItemComponents.entries()),
|
|
37
|
+
contentComponents: Object.fromEntries(contentComponents.entries()),
|
|
38
|
+
actionsComponents: Object.fromEntries(actionsComponents.entries()),
|
|
39
|
+
objectDetailComponents: Object.fromEntries(objectDetailComponents.entries()),
|
|
40
|
+
objectPreviewComponents: Object.fromEntries(objectPreviewComponents.entries())
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
function getMessageUiComponentForListItem(key) {
|
|
44
|
+
if (!key) return null;
|
|
45
|
+
return listItemComponents.get(key) ?? null;
|
|
46
|
+
}
|
|
47
|
+
function getMessageUiComponentForContent(key) {
|
|
48
|
+
if (!key) return null;
|
|
49
|
+
return contentComponents.get(key) ?? null;
|
|
50
|
+
}
|
|
51
|
+
function getMessageUiComponentForActions(key) {
|
|
52
|
+
if (!key) return null;
|
|
53
|
+
return actionsComponents.get(key) ?? null;
|
|
54
|
+
}
|
|
55
|
+
function getMessageUiComponentForObjectDetail(entityModule, entityType) {
|
|
56
|
+
if (!entityModule || !entityType) return MessageRecordObjectDetail;
|
|
57
|
+
const key = getObjectDetailComponentKey(entityModule, entityType);
|
|
58
|
+
return objectDetailComponents.get(key) ?? MessageRecordObjectDetail;
|
|
59
|
+
}
|
|
60
|
+
function getMessageUiComponentForObjectPreview(entityModule, entityType) {
|
|
61
|
+
if (!entityModule || !entityType) {
|
|
62
|
+
return objectPreviewComponents.get("messages:default") ?? MessageRecordObjectPreview;
|
|
63
|
+
}
|
|
64
|
+
const key = getObjectDetailComponentKey(entityModule, entityType);
|
|
65
|
+
const component = objectPreviewComponents.get(key);
|
|
66
|
+
return component ?? objectPreviewComponents.get("messages:default") ?? MessageRecordObjectPreview;
|
|
67
|
+
}
|
|
68
|
+
export {
|
|
69
|
+
configureMessageUiComponentRegistry,
|
|
70
|
+
getMessageUiComponentForActions,
|
|
71
|
+
getMessageUiComponentForContent,
|
|
72
|
+
getMessageUiComponentForListItem,
|
|
73
|
+
getMessageUiComponentForObjectDetail,
|
|
74
|
+
getMessageUiComponentForObjectPreview,
|
|
75
|
+
getMessageUiComponentRegistry
|
|
76
|
+
};
|
|
77
|
+
//# sourceMappingURL=typeUiRegistry.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/modules/messages/components/utils/typeUiRegistry.ts"],
|
|
4
|
+
"sourcesContent": ["\"use client\"\n\nimport type { ComponentType } from 'react'\nimport type {\n MessageActionsProps,\n MessageContentProps,\n MessageListItemProps,\n ObjectPreviewProps,\n ObjectDetailProps,\n} from '@open-mercato/shared/modules/messages/types'\nimport { MessageRecordObjectDetail } from '../defaults/MessageRecordObjectDetail'\nimport { MessageRecordObjectPreview } from './../defaults/MessageRecordObjectPreview'\n\nexport type MessageUiComponentRegistry = {\n listItemComponents: Record<string, ComponentType<MessageListItemProps>>\n contentComponents: Record<string, ComponentType<MessageContentProps>>\n actionsComponents: Record<string, ComponentType<MessageActionsProps>>\n objectDetailComponents: Record<string, ComponentType<ObjectDetailProps>>\n objectPreviewComponents: Record<string, ComponentType<ObjectPreviewProps>>\n}\n\nconst listItemComponents = new Map<string, ComponentType<MessageListItemProps>>()\nconst contentComponents = new Map<string, ComponentType<MessageContentProps>>()\nconst actionsComponents = new Map<string, ComponentType<MessageActionsProps>>()\nconst objectDetailComponents = new Map<string, ComponentType<ObjectDetailProps>>()\nconst objectPreviewComponents = new Map<string, ComponentType<ObjectPreviewProps>>()\n\nfunction getObjectDetailComponentKey(entityModule: string, entityType: string): string {\n return `${entityModule}:${entityType}`\n}\n\nexport function configureMessageUiComponentRegistry(registry: MessageUiComponentRegistry): void {\n listItemComponents.clear()\n contentComponents.clear()\n actionsComponents.clear()\n objectDetailComponents.clear()\n objectPreviewComponents.clear()\n\n for (const [key, component] of Object.entries(registry.listItemComponents ?? {})) {\n listItemComponents.set(key, component)\n }\n for (const [key, component] of Object.entries(registry.contentComponents ?? {})) {\n contentComponents.set(key, component)\n }\n for (const [key, component] of Object.entries(registry.actionsComponents ?? {})) {\n actionsComponents.set(key, component)\n }\n for (const [key, component] of Object.entries(registry.objectDetailComponents ?? {})) {\n objectDetailComponents.set(key, component)\n }\n for (const [key, component] of Object.entries(registry.objectPreviewComponents ?? {})) {\n objectPreviewComponents.set(key, component)\n }\n}\n\nexport function getMessageUiComponentRegistry(): MessageUiComponentRegistry {\n return {\n listItemComponents: Object.fromEntries(listItemComponents.entries()),\n contentComponents: Object.fromEntries(contentComponents.entries()),\n actionsComponents: Object.fromEntries(actionsComponents.entries()),\n objectDetailComponents: Object.fromEntries(objectDetailComponents.entries()),\n objectPreviewComponents: Object.fromEntries(objectPreviewComponents.entries()),\n }\n}\n\nexport function getMessageUiComponentForListItem(\n key: string | null | undefined,\n): ComponentType<MessageListItemProps> | null {\n if (!key) return null\n return listItemComponents.get(key) ?? null\n}\n\nexport function getMessageUiComponentForContent(\n key: string | null | undefined,\n): ComponentType<MessageContentProps> | null {\n if (!key) return null\n return contentComponents.get(key) ?? null\n}\n\nexport function getMessageUiComponentForActions(\n key: string | null | undefined,\n): ComponentType<MessageActionsProps> | null {\n if (!key) return null\n return actionsComponents.get(key) ?? null\n}\n\nexport function getMessageUiComponentForObjectDetail(\n entityModule: string | null | undefined,\n entityType: string | null | undefined,\n): ComponentType<ObjectDetailProps> | null {\n if (!entityModule || !entityType) return MessageRecordObjectDetail\n const key = getObjectDetailComponentKey(entityModule, entityType)\n return objectDetailComponents.get(key) ?? MessageRecordObjectDetail\n}\n\nexport function getMessageUiComponentForObjectPreview(\n entityModule: string | null | undefined,\n entityType: string | null | undefined,\n): ComponentType<ObjectPreviewProps> | null {\n if (!entityModule || !entityType) {\n return objectPreviewComponents.get('messages:default') ?? MessageRecordObjectPreview\n }\n const key = getObjectDetailComponentKey(entityModule, entityType)\n const component = objectPreviewComponents.get(key)\n return component ?? objectPreviewComponents.get('messages:default') ?? MessageRecordObjectPreview\n}\n"],
|
|
5
|
+
"mappings": ";AAUA,SAAS,iCAAiC;AAC1C,SAAS,kCAAkC;AAU3C,MAAM,qBAAqB,oBAAI,IAAiD;AAChF,MAAM,oBAAoB,oBAAI,IAAgD;AAC9E,MAAM,oBAAoB,oBAAI,IAAgD;AAC9E,MAAM,yBAAyB,oBAAI,IAA8C;AACjF,MAAM,0BAA0B,oBAAI,IAA+C;AAEnF,SAAS,4BAA4B,cAAsB,YAA4B;AACrF,SAAO,GAAG,YAAY,IAAI,UAAU;AACtC;AAEO,SAAS,oCAAoC,UAA4C;AAC9F,qBAAmB,MAAM;AACzB,oBAAkB,MAAM;AACxB,oBAAkB,MAAM;AACxB,yBAAuB,MAAM;AAC7B,0BAAwB,MAAM;AAE9B,aAAW,CAAC,KAAK,SAAS,KAAK,OAAO,QAAQ,SAAS,sBAAsB,CAAC,CAAC,GAAG;AAChF,uBAAmB,IAAI,KAAK,SAAS;AAAA,EACvC;AACA,aAAW,CAAC,KAAK,SAAS,KAAK,OAAO,QAAQ,SAAS,qBAAqB,CAAC,CAAC,GAAG;AAC/E,sBAAkB,IAAI,KAAK,SAAS;AAAA,EACtC;AACA,aAAW,CAAC,KAAK,SAAS,KAAK,OAAO,QAAQ,SAAS,qBAAqB,CAAC,CAAC,GAAG;AAC/E,sBAAkB,IAAI,KAAK,SAAS;AAAA,EACtC;AACA,aAAW,CAAC,KAAK,SAAS,KAAK,OAAO,QAAQ,SAAS,0BAA0B,CAAC,CAAC,GAAG;AACpF,2BAAuB,IAAI,KAAK,SAAS;AAAA,EAC3C;AACA,aAAW,CAAC,KAAK,SAAS,KAAK,OAAO,QAAQ,SAAS,2BAA2B,CAAC,CAAC,GAAG;AACrF,4BAAwB,IAAI,KAAK,SAAS;AAAA,EAC5C;AACF;AAEO,SAAS,gCAA4D;AAC1E,SAAO;AAAA,IACL,oBAAoB,OAAO,YAAY,mBAAmB,QAAQ,CAAC;AAAA,IACnE,mBAAmB,OAAO,YAAY,kBAAkB,QAAQ,CAAC;AAAA,IACjE,mBAAmB,OAAO,YAAY,kBAAkB,QAAQ,CAAC;AAAA,IACjE,wBAAwB,OAAO,YAAY,uBAAuB,QAAQ,CAAC;AAAA,IAC3E,yBAAyB,OAAO,YAAY,wBAAwB,QAAQ,CAAC;AAAA,EAC/E;AACF;AAEO,SAAS,iCACd,KAC4C;AAC5C,MAAI,CAAC,IAAK,QAAO;AACjB,SAAO,mBAAmB,IAAI,GAAG,KAAK;AACxC;AAEO,SAAS,gCACd,KAC2C;AAC3C,MAAI,CAAC,IAAK,QAAO;AACjB,SAAO,kBAAkB,IAAI,GAAG,KAAK;AACvC;AAEO,SAAS,gCACd,KAC2C;AAC3C,MAAI,CAAC,IAAK,QAAO;AACjB,SAAO,kBAAkB,IAAI,GAAG,KAAK;AACvC;AAEO,SAAS,qCACd,cACA,YACyC;AACzC,MAAI,CAAC,gBAAgB,CAAC,WAAY,QAAO;AACzC,QAAM,MAAM,4BAA4B,cAAc,UAAU;AAChE,SAAO,uBAAuB,IAAI,GAAG,KAAK;AAC5C;AAEO,SAAS,sCACd,cACA,YAC0C;AAC1C,MAAI,CAAC,gBAAgB,CAAC,YAAY;AAChC,WAAO,wBAAwB,IAAI,kBAAkB,KAAK;AAAA,EAC5D;AACA,QAAM,MAAM,4BAA4B,cAAc,UAAU;AAChE,QAAM,YAAY,wBAAwB,IAAI,GAAG;AACjD,SAAO,aAAa,wBAAwB,IAAI,kBAAkB,KAAK;AACzE;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|