@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,148 @@
|
|
|
1
|
+
import { createRequestContainer } from "@open-mercato/shared/lib/di/container";
|
|
2
|
+
import { findOneWithDecryption } from "@open-mercato/shared/lib/encryption/find";
|
|
3
|
+
import { resolveTranslations } from "@open-mercato/shared/lib/i18n/server";
|
|
4
|
+
import { StaffLeaveRequest, StaffTeam, StaffTeamMember } from "../data/entities.js";
|
|
5
|
+
function mapStatus(status) {
|
|
6
|
+
if (status === "approved") {
|
|
7
|
+
return { label: "Approved", color: "green" };
|
|
8
|
+
}
|
|
9
|
+
if (status === "rejected") {
|
|
10
|
+
return { label: "Rejected", color: "red" };
|
|
11
|
+
}
|
|
12
|
+
return { label: "Pending", color: "amber" };
|
|
13
|
+
}
|
|
14
|
+
function formatDate(value) {
|
|
15
|
+
return value.toISOString().slice(0, 10);
|
|
16
|
+
}
|
|
17
|
+
async function loadLeaveRequestPreview(entityId, ctx) {
|
|
18
|
+
const { t } = await resolveTranslations();
|
|
19
|
+
const defaultTitle = t("staff.messageObjects.leaveRequest.title");
|
|
20
|
+
if (!ctx.organizationId) {
|
|
21
|
+
return {
|
|
22
|
+
title: defaultTitle,
|
|
23
|
+
subtitle: entityId
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
const { resolve } = await createRequestContainer();
|
|
27
|
+
const em = resolve("em");
|
|
28
|
+
const request = await findOneWithDecryption(
|
|
29
|
+
em,
|
|
30
|
+
StaffLeaveRequest,
|
|
31
|
+
{
|
|
32
|
+
id: entityId,
|
|
33
|
+
tenantId: ctx.tenantId,
|
|
34
|
+
organizationId: ctx.organizationId,
|
|
35
|
+
deletedAt: null
|
|
36
|
+
},
|
|
37
|
+
void 0,
|
|
38
|
+
{ tenantId: ctx.tenantId, organizationId: ctx.organizationId }
|
|
39
|
+
);
|
|
40
|
+
if (!request) {
|
|
41
|
+
return {
|
|
42
|
+
title: defaultTitle,
|
|
43
|
+
subtitle: entityId,
|
|
44
|
+
status: t("staff.messageObjects.notFound"),
|
|
45
|
+
statusColor: "gray"
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
const status = mapStatus(request.status);
|
|
49
|
+
const memberName = typeof request.member?.displayName === "string" ? request.member.displayName : null;
|
|
50
|
+
const subtitle = memberName ? `${memberName} - ${formatDate(request.startDate)} to ${formatDate(request.endDate)}` : `${formatDate(request.startDate)} to ${formatDate(request.endDate)}`;
|
|
51
|
+
return {
|
|
52
|
+
title: "Leave request",
|
|
53
|
+
subtitle,
|
|
54
|
+
status: status.label,
|
|
55
|
+
statusColor: status.color,
|
|
56
|
+
metadata: {
|
|
57
|
+
"Start date": formatDate(request.startDate),
|
|
58
|
+
"End date": formatDate(request.endDate),
|
|
59
|
+
Timezone: request.timezone
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
async function loadTeamPreview(entityId, ctx) {
|
|
64
|
+
const { t } = await resolveTranslations();
|
|
65
|
+
const defaultTitle = t("staff.messageObjects.team.title");
|
|
66
|
+
if (!ctx.organizationId) {
|
|
67
|
+
return {
|
|
68
|
+
title: defaultTitle,
|
|
69
|
+
subtitle: entityId
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
const { resolve } = await createRequestContainer();
|
|
73
|
+
const em = resolve("em");
|
|
74
|
+
const team = await findOneWithDecryption(
|
|
75
|
+
em,
|
|
76
|
+
StaffTeam,
|
|
77
|
+
{
|
|
78
|
+
id: entityId,
|
|
79
|
+
tenantId: ctx.tenantId,
|
|
80
|
+
organizationId: ctx.organizationId,
|
|
81
|
+
deletedAt: null
|
|
82
|
+
},
|
|
83
|
+
void 0,
|
|
84
|
+
{ tenantId: ctx.tenantId, organizationId: ctx.organizationId }
|
|
85
|
+
);
|
|
86
|
+
if (!team) {
|
|
87
|
+
return {
|
|
88
|
+
title: defaultTitle,
|
|
89
|
+
subtitle: entityId,
|
|
90
|
+
status: t("staff.messageObjects.notFound"),
|
|
91
|
+
statusColor: "gray"
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
return {
|
|
95
|
+
title: team.name,
|
|
96
|
+
subtitle: team.description ?? entityId,
|
|
97
|
+
status: team.isActive ? "Active" : "Inactive",
|
|
98
|
+
statusColor: team.isActive ? "green" : "gray"
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
async function loadTeamMemberPreview(entityId, ctx) {
|
|
102
|
+
const { t } = await resolveTranslations();
|
|
103
|
+
const defaultTitle = t("staff.messageObjects.teamMember.title");
|
|
104
|
+
if (!ctx.organizationId) {
|
|
105
|
+
return {
|
|
106
|
+
title: defaultTitle,
|
|
107
|
+
subtitle: entityId
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
const { resolve } = await createRequestContainer();
|
|
111
|
+
const em = resolve("em");
|
|
112
|
+
const member = await findOneWithDecryption(
|
|
113
|
+
em,
|
|
114
|
+
StaffTeamMember,
|
|
115
|
+
{
|
|
116
|
+
id: entityId,
|
|
117
|
+
tenantId: ctx.tenantId,
|
|
118
|
+
organizationId: ctx.organizationId,
|
|
119
|
+
deletedAt: null
|
|
120
|
+
},
|
|
121
|
+
void 0,
|
|
122
|
+
{ tenantId: ctx.tenantId, organizationId: ctx.organizationId }
|
|
123
|
+
);
|
|
124
|
+
if (!member) {
|
|
125
|
+
return {
|
|
126
|
+
title: defaultTitle,
|
|
127
|
+
subtitle: entityId,
|
|
128
|
+
status: t("staff.messageObjects.notFound"),
|
|
129
|
+
statusColor: "gray"
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
const tags = Array.isArray(member.tags) ? member.tags : [];
|
|
133
|
+
const metadata = {};
|
|
134
|
+
if (tags.length > 0) metadata.Tags = tags.slice(0, 5).join(", ");
|
|
135
|
+
return {
|
|
136
|
+
title: member.displayName,
|
|
137
|
+
subtitle: member.description ?? entityId,
|
|
138
|
+
status: member.isActive ? "Active" : "Inactive",
|
|
139
|
+
statusColor: member.isActive ? "green" : "gray",
|
|
140
|
+
metadata: Object.keys(metadata).length > 0 ? metadata : void 0
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
export {
|
|
144
|
+
loadLeaveRequestPreview,
|
|
145
|
+
loadTeamMemberPreview,
|
|
146
|
+
loadTeamPreview
|
|
147
|
+
};
|
|
148
|
+
//# sourceMappingURL=messageObjectPreviews.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/modules/staff/lib/messageObjectPreviews.ts"],
|
|
4
|
+
"sourcesContent": ["import { createRequestContainer } from '@open-mercato/shared/lib/di/container'\nimport { findOneWithDecryption } from '@open-mercato/shared/lib/encryption/find'\nimport { resolveTranslations } from '@open-mercato/shared/lib/i18n/server'\nimport type { ObjectPreviewData } from '@open-mercato/shared/modules/messages/types'\nimport type { EntityManager } from '@mikro-orm/postgresql'\nimport { StaffLeaveRequest, StaffTeam, StaffTeamMember } from '../data/entities'\n\ntype PreviewContext = {\n tenantId: string\n organizationId?: string | null\n}\n\nfunction mapStatus(status: string): { label: string; color: string } {\n if (status === 'approved') {\n return { label: 'Approved', color: 'green' }\n }\n if (status === 'rejected') {\n return { label: 'Rejected', color: 'red' }\n }\n return { label: 'Pending', color: 'amber' }\n}\n\nfunction formatDate(value: Date): string {\n return value.toISOString().slice(0, 10)\n}\n\nexport async function loadLeaveRequestPreview(\n entityId: string,\n ctx: PreviewContext,\n): Promise<ObjectPreviewData> {\n const { t } = await resolveTranslations()\n const defaultTitle = t('staff.messageObjects.leaveRequest.title')\n\n if (!ctx.organizationId) {\n return {\n title: defaultTitle,\n subtitle: entityId,\n }\n }\n\n const { resolve } = await createRequestContainer()\n const em = resolve('em') as EntityManager\n\n const request = await findOneWithDecryption(\n em,\n StaffLeaveRequest,\n {\n id: entityId,\n tenantId: ctx.tenantId,\n organizationId: ctx.organizationId,\n deletedAt: null,\n },\n undefined,\n { tenantId: ctx.tenantId, organizationId: ctx.organizationId },\n )\n\n if (!request) {\n return {\n title: defaultTitle,\n subtitle: entityId,\n status: t('staff.messageObjects.notFound'),\n statusColor: 'gray',\n }\n }\n\n const status = mapStatus(request.status)\n const memberName = typeof request.member?.displayName === 'string' ? request.member.displayName : null\n const subtitle = memberName\n ? `${memberName} - ${formatDate(request.startDate)} to ${formatDate(request.endDate)}`\n : `${formatDate(request.startDate)} to ${formatDate(request.endDate)}`\n\n return {\n title: 'Leave request',\n subtitle,\n status: status.label,\n statusColor: status.color,\n metadata: {\n 'Start date': formatDate(request.startDate),\n 'End date': formatDate(request.endDate),\n Timezone: request.timezone,\n },\n }\n}\n\nexport async function loadTeamPreview(\n entityId: string,\n ctx: PreviewContext,\n): Promise<ObjectPreviewData> {\n const { t } = await resolveTranslations()\n const defaultTitle = t('staff.messageObjects.team.title')\n\n if (!ctx.organizationId) {\n return {\n title: defaultTitle,\n subtitle: entityId,\n }\n }\n\n const { resolve } = await createRequestContainer()\n const em = resolve('em') as EntityManager\n\n const team = await findOneWithDecryption(\n em,\n StaffTeam,\n {\n id: entityId,\n tenantId: ctx.tenantId,\n organizationId: ctx.organizationId,\n deletedAt: null,\n },\n undefined,\n { tenantId: ctx.tenantId, organizationId: ctx.organizationId },\n )\n\n if (!team) {\n return {\n title: defaultTitle,\n subtitle: entityId,\n status: t('staff.messageObjects.notFound'),\n statusColor: 'gray',\n }\n }\n\n return {\n title: team.name,\n subtitle: team.description ?? entityId,\n status: team.isActive ? 'Active' : 'Inactive',\n statusColor: team.isActive ? 'green' : 'gray',\n }\n}\n\nexport async function loadTeamMemberPreview(\n entityId: string,\n ctx: PreviewContext,\n): Promise<ObjectPreviewData> {\n const { t } = await resolveTranslations()\n const defaultTitle = t('staff.messageObjects.teamMember.title')\n\n if (!ctx.organizationId) {\n return {\n title: defaultTitle,\n subtitle: entityId,\n }\n }\n\n const { resolve } = await createRequestContainer()\n const em = resolve('em') as EntityManager\n\n const member = await findOneWithDecryption(\n em,\n StaffTeamMember,\n {\n id: entityId,\n tenantId: ctx.tenantId,\n organizationId: ctx.organizationId,\n deletedAt: null,\n },\n undefined,\n { tenantId: ctx.tenantId, organizationId: ctx.organizationId },\n )\n\n if (!member) {\n return {\n title: defaultTitle,\n subtitle: entityId,\n status: t('staff.messageObjects.notFound'),\n statusColor: 'gray',\n }\n }\n\n const tags = Array.isArray(member.tags) ? member.tags : []\n const metadata: Record<string, string> = {}\n if (tags.length > 0) metadata.Tags = tags.slice(0, 5).join(', ')\n\n return {\n title: member.displayName,\n subtitle: member.description ?? entityId,\n status: member.isActive ? 'Active' : 'Inactive',\n statusColor: member.isActive ? 'green' : 'gray',\n metadata: Object.keys(metadata).length > 0 ? metadata : undefined,\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { LeaveRequestDetail } from "./components/LeaveRequestDetail.js";
|
|
2
|
+
import { LeaveRequestPreview } from "./components/LeaveRequestPreview.js";
|
|
3
|
+
import { StaffMessageObjectDetail } from "./widgets/messages/StaffMessageObjectDetail.js";
|
|
4
|
+
import { StaffMessageObjectPreview } from "./widgets/messages/StaffMessageObjectPreview.js";
|
|
5
|
+
const messageObjectTypes = [
|
|
6
|
+
{
|
|
7
|
+
module: "staff",
|
|
8
|
+
entityType: "leave_request",
|
|
9
|
+
messageTypes: ["default", "messages.defaultWithObjects", "staff.leave_request_approval", "staff.leave_request_status"],
|
|
10
|
+
entityId: "staff:staff_leave_request",
|
|
11
|
+
optionLabelField: "id",
|
|
12
|
+
optionSubtitleField: "status",
|
|
13
|
+
labelKey: "staff.leaveRequests.page.title",
|
|
14
|
+
icon: "calendar-clock",
|
|
15
|
+
PreviewComponent: LeaveRequestPreview,
|
|
16
|
+
DetailComponent: LeaveRequestDetail,
|
|
17
|
+
actions: [
|
|
18
|
+
{
|
|
19
|
+
id: "approve",
|
|
20
|
+
labelKey: "staff.notifications.leaveRequest.actions.approve",
|
|
21
|
+
variant: "default",
|
|
22
|
+
commandId: "staff.leave-requests.accept",
|
|
23
|
+
icon: "check"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
id: "reject",
|
|
27
|
+
labelKey: "staff.notifications.leaveRequest.actions.reject",
|
|
28
|
+
variant: "destructive",
|
|
29
|
+
commandId: "staff.leave-requests.reject",
|
|
30
|
+
icon: "x"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
id: "view",
|
|
34
|
+
labelKey: "common.view",
|
|
35
|
+
variant: "outline",
|
|
36
|
+
href: "/backend/staff/leave-requests/{entityId}",
|
|
37
|
+
icon: "external-link",
|
|
38
|
+
isTerminal: false
|
|
39
|
+
}
|
|
40
|
+
],
|
|
41
|
+
loadPreview: async (entityId, ctx) => {
|
|
42
|
+
if (typeof window !== "undefined") {
|
|
43
|
+
return {
|
|
44
|
+
title: "Leave request",
|
|
45
|
+
subtitle: entityId
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
const { loadLeaveRequestPreview } = await import("./lib/messageObjectPreviews.js");
|
|
49
|
+
return loadLeaveRequestPreview(entityId, ctx);
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
module: "staff",
|
|
54
|
+
entityType: "team",
|
|
55
|
+
messageTypes: ["default", "messages.defaultWithObjects"],
|
|
56
|
+
entityId: "staff:staff_team",
|
|
57
|
+
optionLabelField: "name",
|
|
58
|
+
optionSubtitleField: "description",
|
|
59
|
+
labelKey: "staff.teams.page.title",
|
|
60
|
+
icon: "users",
|
|
61
|
+
PreviewComponent: StaffMessageObjectPreview,
|
|
62
|
+
DetailComponent: StaffMessageObjectDetail,
|
|
63
|
+
actions: [],
|
|
64
|
+
loadPreview: async (entityId, ctx) => {
|
|
65
|
+
if (typeof window !== "undefined") {
|
|
66
|
+
return {
|
|
67
|
+
title: "Team",
|
|
68
|
+
subtitle: entityId
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
const { loadTeamPreview } = await import("./lib/messageObjectPreviews.js");
|
|
72
|
+
return loadTeamPreview(entityId, ctx);
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
module: "staff",
|
|
77
|
+
entityType: "team_member",
|
|
78
|
+
messageTypes: ["default", "messages.defaultWithObjects"],
|
|
79
|
+
entityId: "staff:staff_team_member",
|
|
80
|
+
optionLabelField: "displayName",
|
|
81
|
+
optionSubtitleField: "email",
|
|
82
|
+
labelKey: "staff.teamMembers.page.title",
|
|
83
|
+
icon: "user-round",
|
|
84
|
+
PreviewComponent: StaffMessageObjectPreview,
|
|
85
|
+
DetailComponent: StaffMessageObjectDetail,
|
|
86
|
+
actions: [],
|
|
87
|
+
loadPreview: async (entityId, ctx) => {
|
|
88
|
+
if (typeof window !== "undefined") {
|
|
89
|
+
return {
|
|
90
|
+
title: "Team member",
|
|
91
|
+
subtitle: entityId
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
const { loadTeamMemberPreview } = await import("./lib/messageObjectPreviews.js");
|
|
95
|
+
return loadTeamMemberPreview(entityId, ctx);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
];
|
|
99
|
+
var message_objects_default = messageObjectTypes;
|
|
100
|
+
export {
|
|
101
|
+
message_objects_default as default,
|
|
102
|
+
messageObjectTypes
|
|
103
|
+
};
|
|
104
|
+
//# sourceMappingURL=message-objects.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/modules/staff/message-objects.ts"],
|
|
4
|
+
"sourcesContent": ["import type { MessageObjectTypeDefinition } from '@open-mercato/shared/modules/messages/types'\nimport { LeaveRequestDetail } from './components/LeaveRequestDetail'\nimport { LeaveRequestPreview } from './components/LeaveRequestPreview'\nimport { StaffMessageObjectDetail } from './widgets/messages/StaffMessageObjectDetail'\nimport { StaffMessageObjectPreview } from './widgets/messages/StaffMessageObjectPreview'\n\nexport const messageObjectTypes: MessageObjectTypeDefinition[] = [\n {\n module: 'staff',\n entityType: 'leave_request',\n messageTypes: ['default', 'messages.defaultWithObjects', 'staff.leave_request_approval', 'staff.leave_request_status'],\n entityId: 'staff:staff_leave_request',\n optionLabelField: 'id',\n optionSubtitleField: 'status',\n labelKey: 'staff.leaveRequests.page.title',\n icon: 'calendar-clock',\n PreviewComponent: LeaveRequestPreview,\n DetailComponent: LeaveRequestDetail,\n actions: [\n {\n id: 'approve',\n labelKey: 'staff.notifications.leaveRequest.actions.approve',\n variant: 'default',\n commandId: 'staff.leave-requests.accept',\n icon: 'check',\n },\n {\n id: 'reject',\n labelKey: 'staff.notifications.leaveRequest.actions.reject',\n variant: 'destructive',\n commandId: 'staff.leave-requests.reject',\n icon: 'x',\n },\n {\n id: 'view',\n labelKey: 'common.view',\n variant: 'outline',\n href: '/backend/staff/leave-requests/{entityId}',\n icon: 'external-link',\n isTerminal: false,\n },\n ],\n loadPreview: async (entityId, ctx) => {\n if (typeof window !== 'undefined') {\n return {\n title: 'Leave request',\n subtitle: entityId,\n }\n }\n const { loadLeaveRequestPreview } = await import('./lib/messageObjectPreviews')\n return loadLeaveRequestPreview(entityId, ctx)\n },\n },\n {\n module: 'staff',\n entityType: 'team',\n messageTypes: ['default', 'messages.defaultWithObjects'],\n entityId: 'staff:staff_team',\n optionLabelField: 'name',\n optionSubtitleField: 'description',\n labelKey: 'staff.teams.page.title',\n icon: 'users',\n PreviewComponent: StaffMessageObjectPreview,\n DetailComponent: StaffMessageObjectDetail,\n actions: [],\n loadPreview: async (entityId, ctx) => {\n if (typeof window !== 'undefined') {\n return {\n title: 'Team',\n subtitle: entityId,\n }\n }\n const { loadTeamPreview } = await import('./lib/messageObjectPreviews')\n return loadTeamPreview(entityId, ctx)\n },\n },\n {\n module: 'staff',\n entityType: 'team_member',\n messageTypes: ['default', 'messages.defaultWithObjects'],\n entityId: 'staff:staff_team_member',\n optionLabelField: 'displayName',\n optionSubtitleField: 'email',\n labelKey: 'staff.teamMembers.page.title',\n icon: 'user-round',\n PreviewComponent: StaffMessageObjectPreview,\n DetailComponent: StaffMessageObjectDetail,\n actions: [],\n loadPreview: async (entityId, ctx) => {\n if (typeof window !== 'undefined') {\n return {\n title: 'Team member',\n subtitle: entityId,\n }\n }\n const { loadTeamMemberPreview } = await import('./lib/messageObjectPreviews')\n return loadTeamMemberPreview(entityId, ctx)\n },\n },\n]\n\nexport default messageObjectTypes\n"],
|
|
5
|
+
"mappings": "AACA,SAAS,0BAA0B;AACnC,SAAS,2BAA2B;AACpC,SAAS,gCAAgC;AACzC,SAAS,iCAAiC;AAEnC,MAAM,qBAAoD;AAAA,EAC/D;AAAA,IACE,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,cAAc,CAAC,WAAW,+BAA+B,gCAAgC,4BAA4B;AAAA,IACrH,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,qBAAqB;AAAA,IACrB,UAAU;AAAA,IACV,MAAM;AAAA,IACN,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,SAAS;AAAA,MACP;AAAA,QACE,IAAI;AAAA,QACJ,UAAU;AAAA,QACV,SAAS;AAAA,QACT,WAAW;AAAA,QACX,MAAM;AAAA,MACR;AAAA,MACA;AAAA,QACE,IAAI;AAAA,QACJ,UAAU;AAAA,QACV,SAAS;AAAA,QACT,WAAW;AAAA,QACX,MAAM;AAAA,MACR;AAAA,MACA;AAAA,QACE,IAAI;AAAA,QACJ,UAAU;AAAA,QACV,SAAS;AAAA,QACT,MAAM;AAAA,QACN,MAAM;AAAA,QACN,YAAY;AAAA,MACd;AAAA,IACF;AAAA,IACA,aAAa,OAAO,UAAU,QAAQ;AACpC,UAAI,OAAO,WAAW,aAAa;AACjC,eAAO;AAAA,UACL,OAAO;AAAA,UACP,UAAU;AAAA,QACZ;AAAA,MACF;AACA,YAAM,EAAE,wBAAwB,IAAI,MAAM,OAAO,6BAA6B;AAC9E,aAAO,wBAAwB,UAAU,GAAG;AAAA,IAC9C;AAAA,EACF;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,cAAc,CAAC,WAAW,6BAA6B;AAAA,IACvD,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,qBAAqB;AAAA,IACrB,UAAU;AAAA,IACV,MAAM;AAAA,IACN,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,SAAS,CAAC;AAAA,IACV,aAAa,OAAO,UAAU,QAAQ;AACpC,UAAI,OAAO,WAAW,aAAa;AACjC,eAAO;AAAA,UACL,OAAO;AAAA,UACP,UAAU;AAAA,QACZ;AAAA,MACF;AACA,YAAM,EAAE,gBAAgB,IAAI,MAAM,OAAO,6BAA6B;AACtE,aAAO,gBAAgB,UAAU,GAAG;AAAA,IACtC;AAAA,EACF;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,cAAc,CAAC,WAAW,6BAA6B;AAAA,IACvD,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,qBAAqB;AAAA,IACrB,UAAU;AAAA,IACV,MAAM;AAAA,IACN,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,SAAS,CAAC;AAAA,IACV,aAAa,OAAO,UAAU,QAAQ;AACpC,UAAI,OAAO,WAAW,aAAa;AACjC,eAAO;AAAA,UACL,OAAO;AAAA,UACP,UAAU;AAAA,QACZ;AAAA,MACF;AACA,YAAM,EAAE,sBAAsB,IAAI,MAAM,OAAO,6BAA6B;AAC5E,aAAO,sBAAsB,UAAU,GAAG;AAAA,IAC5C;AAAA,EACF;AACF;AAEA,IAAO,0BAAQ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
const messageTypes = [
|
|
2
|
+
{
|
|
3
|
+
type: "staff.leave_request_approval",
|
|
4
|
+
module: "staff",
|
|
5
|
+
labelKey: "staff.messages.leaveRequestApproval",
|
|
6
|
+
icon: "calendar-clock",
|
|
7
|
+
color: "amber",
|
|
8
|
+
ui: {
|
|
9
|
+
listItemComponent: "messages.default.listItem",
|
|
10
|
+
contentComponent: "messages.default.content",
|
|
11
|
+
actionsComponent: "messages.default.actions"
|
|
12
|
+
},
|
|
13
|
+
allowReply: true,
|
|
14
|
+
allowForward: true,
|
|
15
|
+
actionsExpireAfterHours: 168
|
|
16
|
+
}
|
|
17
|
+
];
|
|
18
|
+
var message_types_default = messageTypes;
|
|
19
|
+
export {
|
|
20
|
+
message_types_default as default,
|
|
21
|
+
messageTypes
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=message-types.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/modules/staff/message-types.ts"],
|
|
4
|
+
"sourcesContent": ["import type { MessageTypeDefinition } from '@open-mercato/shared/modules/messages/types'\n\nexport const messageTypes: MessageTypeDefinition[] = [\n {\n type: 'staff.leave_request_approval',\n module: 'staff',\n labelKey: 'staff.messages.leaveRequestApproval',\n icon: 'calendar-clock',\n color: 'amber',\n ui: {\n listItemComponent: 'messages.default.listItem',\n contentComponent: 'messages.default.content',\n actionsComponent: 'messages.default.actions',\n },\n allowReply: true,\n allowForward: true,\n actionsExpireAfterHours: 168,\n }\n]\n\nexport default messageTypes\n"],
|
|
5
|
+
"mappings": "AAEO,MAAM,eAAwC;AAAA,EACnD;AAAA,IACE,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,MAAM;AAAA,IACN,OAAO;AAAA,IACP,IAAI;AAAA,MACF,mBAAmB;AAAA,MACnB,kBAAkB;AAAA,MAClB,kBAAkB;AAAA,IACpB;AAAA,IACA,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,yBAAyB;AAAA,EAC3B;AACF;AAEA,IAAO,wBAAQ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { useT } from "@open-mercato/shared/lib/i18n/context";
|
|
5
|
+
import { Button } from "@open-mercato/ui/primitives/button";
|
|
6
|
+
import { StaffMessageObjectPreview } from "./StaffMessageObjectPreview.js";
|
|
7
|
+
function StaffMessageObjectDetail(props) {
|
|
8
|
+
const t = useT();
|
|
9
|
+
const [executingActionId, setExecutingActionId] = React.useState(null);
|
|
10
|
+
return /* @__PURE__ */ jsxs("div", { className: "space-y-3 rounded border p-3", children: [
|
|
11
|
+
/* @__PURE__ */ jsx(
|
|
12
|
+
StaffMessageObjectPreview,
|
|
13
|
+
{
|
|
14
|
+
entityId: props.entityId,
|
|
15
|
+
entityModule: props.entityModule,
|
|
16
|
+
entityType: props.entityType,
|
|
17
|
+
snapshot: props.snapshot,
|
|
18
|
+
previewData: props.previewData,
|
|
19
|
+
actionRequired: props.actionRequired,
|
|
20
|
+
actionType: props.actionType,
|
|
21
|
+
actionLabel: props.actionLabel
|
|
22
|
+
}
|
|
23
|
+
),
|
|
24
|
+
props.actions.length > 0 ? /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-2", children: props.actions.map((action) => /* @__PURE__ */ jsx(
|
|
25
|
+
Button,
|
|
26
|
+
{
|
|
27
|
+
type: "button",
|
|
28
|
+
size: "sm",
|
|
29
|
+
variant: action.variant ?? "default",
|
|
30
|
+
disabled: executingActionId !== null,
|
|
31
|
+
onClick: async () => {
|
|
32
|
+
if (executingActionId) return;
|
|
33
|
+
setExecutingActionId(action.id);
|
|
34
|
+
try {
|
|
35
|
+
await props.onAction(action.id, { id: props.entityId });
|
|
36
|
+
} finally {
|
|
37
|
+
setExecutingActionId(null);
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
children: executingActionId === action.id ? t("messages.actions.executing", "Executing...") : t(action.labelKey ?? action.id, action.id)
|
|
41
|
+
},
|
|
42
|
+
action.id
|
|
43
|
+
)) }) : null
|
|
44
|
+
] });
|
|
45
|
+
}
|
|
46
|
+
var StaffMessageObjectDetail_default = StaffMessageObjectDetail;
|
|
47
|
+
export {
|
|
48
|
+
StaffMessageObjectDetail,
|
|
49
|
+
StaffMessageObjectDetail_default as default
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=StaffMessageObjectDetail.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/modules/staff/widgets/messages/StaffMessageObjectDetail.tsx"],
|
|
4
|
+
"sourcesContent": ["\"use client\"\n\nimport * as React from 'react'\nimport { useT } from '@open-mercato/shared/lib/i18n/context'\nimport type { ObjectDetailProps } from '@open-mercato/shared/modules/messages/types'\nimport { Button } from '@open-mercato/ui/primitives/button'\nimport { StaffMessageObjectPreview } from './StaffMessageObjectPreview'\n\nexport function StaffMessageObjectDetail(props: ObjectDetailProps) {\n const t = useT()\n const [executingActionId, setExecutingActionId] = React.useState<string | null>(null)\n\n return (\n <div className=\"space-y-3 rounded border p-3\">\n <StaffMessageObjectPreview\n entityId={props.entityId}\n entityModule={props.entityModule}\n entityType={props.entityType}\n snapshot={props.snapshot}\n previewData={props.previewData}\n actionRequired={props.actionRequired}\n actionType={props.actionType}\n actionLabel={props.actionLabel}\n />\n\n {props.actions.length > 0 ? (\n <div className=\"flex flex-wrap gap-2\">\n {props.actions.map((action) => (\n <Button\n key={action.id}\n type=\"button\"\n size=\"sm\"\n variant={action.variant ?? 'default'}\n disabled={executingActionId !== null}\n onClick={async () => {\n if (executingActionId) return\n setExecutingActionId(action.id)\n try {\n await props.onAction(action.id, { id: props.entityId })\n } finally {\n setExecutingActionId(null)\n }\n }}\n >\n {executingActionId === action.id\n ? t('messages.actions.executing', 'Executing...')\n : t(action.labelKey ?? action.id, action.id)}\n </Button>\n ))}\n </div>\n ) : null}\n </div>\n )\n}\n\nexport default StaffMessageObjectDetail\n\n"],
|
|
5
|
+
"mappings": ";AAaI,SACE,KADF;AAXJ,YAAY,WAAW;AACvB,SAAS,YAAY;AAErB,SAAS,cAAc;AACvB,SAAS,iCAAiC;AAEnC,SAAS,yBAAyB,OAA0B;AACjE,QAAM,IAAI,KAAK;AACf,QAAM,CAAC,mBAAmB,oBAAoB,IAAI,MAAM,SAAwB,IAAI;AAEpF,SACE,qBAAC,SAAI,WAAU,gCACb;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,UAAU,MAAM;AAAA,QAChB,cAAc,MAAM;AAAA,QACpB,YAAY,MAAM;AAAA,QAClB,UAAU,MAAM;AAAA,QAChB,aAAa,MAAM;AAAA,QACnB,gBAAgB,MAAM;AAAA,QACtB,YAAY,MAAM;AAAA,QAClB,aAAa,MAAM;AAAA;AAAA,IACrB;AAAA,IAEC,MAAM,QAAQ,SAAS,IACtB,oBAAC,SAAI,WAAU,wBACZ,gBAAM,QAAQ,IAAI,CAAC,WAClB;AAAA,MAAC;AAAA;AAAA,QAEC,MAAK;AAAA,QACL,MAAK;AAAA,QACL,SAAS,OAAO,WAAW;AAAA,QAC3B,UAAU,sBAAsB;AAAA,QAChC,SAAS,YAAY;AACnB,cAAI,kBAAmB;AACvB,+BAAqB,OAAO,EAAE;AAC9B,cAAI;AACF,kBAAM,MAAM,SAAS,OAAO,IAAI,EAAE,IAAI,MAAM,SAAS,CAAC;AAAA,UACxD,UAAE;AACA,iCAAqB,IAAI;AAAA,UAC3B;AAAA,QACF;AAAA,QAEC,gCAAsB,OAAO,KAC1B,EAAE,8BAA8B,cAAc,IAC9C,EAAE,OAAO,YAAY,OAAO,IAAI,OAAO,EAAE;AAAA;AAAA,MAjBxC,OAAO;AAAA,IAkBd,CACD,GACH,IACE;AAAA,KACN;AAEJ;AAEA,IAAO,mCAAQ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { UserRound, Users } from "lucide-react";
|
|
4
|
+
import { useT } from "@open-mercato/shared/lib/i18n/context";
|
|
5
|
+
import { Badge } from "@open-mercato/ui/primitives/badge";
|
|
6
|
+
function StaffMessageObjectPreview({
|
|
7
|
+
entityType,
|
|
8
|
+
entityId,
|
|
9
|
+
previewData,
|
|
10
|
+
actionRequired,
|
|
11
|
+
actionLabel
|
|
12
|
+
}) {
|
|
13
|
+
const t = useT();
|
|
14
|
+
const isTeam = entityType === "team";
|
|
15
|
+
const Icon = isTeam ? Users : UserRound;
|
|
16
|
+
const fallbackTitle = isTeam ? t("staff.teams.page.title", "Teams") : t("staff.teamMembers.page.title", "Team members");
|
|
17
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3 rounded-md border bg-muted/20 p-3", children: [
|
|
18
|
+
/* @__PURE__ */ jsx(Icon, { className: "mt-0.5 h-4 w-4 text-muted-foreground" }),
|
|
19
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1 space-y-1", children: [
|
|
20
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
21
|
+
/* @__PURE__ */ jsx("p", { className: "truncate text-sm font-medium", children: previewData?.title || fallbackTitle }),
|
|
22
|
+
actionRequired ? /* @__PURE__ */ jsx(Badge, { variant: "secondary", className: "text-xs", children: actionLabel || t("messages.composer.objectActionRequired", "Action required") }) : null
|
|
23
|
+
] }),
|
|
24
|
+
/* @__PURE__ */ jsx("p", { className: "truncate text-xs text-muted-foreground", children: previewData?.subtitle || entityId }),
|
|
25
|
+
previewData?.status ? /* @__PURE__ */ jsx(Badge, { variant: "outline", className: "text-xs", children: previewData.status }) : null
|
|
26
|
+
] })
|
|
27
|
+
] });
|
|
28
|
+
}
|
|
29
|
+
var StaffMessageObjectPreview_default = StaffMessageObjectPreview;
|
|
30
|
+
export {
|
|
31
|
+
StaffMessageObjectPreview,
|
|
32
|
+
StaffMessageObjectPreview_default as default
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=StaffMessageObjectPreview.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/modules/staff/widgets/messages/StaffMessageObjectPreview.tsx"],
|
|
4
|
+
"sourcesContent": ["\"use client\"\n\nimport { UserRound, Users } from 'lucide-react'\nimport { useT } from '@open-mercato/shared/lib/i18n/context'\nimport type { ObjectPreviewProps } from '@open-mercato/shared/modules/messages/types'\nimport { Badge } from '@open-mercato/ui/primitives/badge'\n\nexport function StaffMessageObjectPreview({\n entityType,\n entityId,\n previewData,\n actionRequired,\n actionLabel,\n}: ObjectPreviewProps) {\n const t = useT()\n const isTeam = entityType === 'team'\n const Icon = isTeam ? Users : UserRound\n const fallbackTitle = isTeam\n ? t('staff.teams.page.title', 'Teams')\n : t('staff.teamMembers.page.title', 'Team members')\n\n return (\n <div className=\"flex items-start gap-3 rounded-md border bg-muted/20 p-3\">\n <Icon className=\"mt-0.5 h-4 w-4 text-muted-foreground\" />\n <div className=\"min-w-0 flex-1 space-y-1\">\n <div className=\"flex items-center gap-2\">\n <p className=\"truncate text-sm font-medium\">{previewData?.title || fallbackTitle}</p>\n {actionRequired ? (\n <Badge variant=\"secondary\" className=\"text-xs\">\n {actionLabel || t('messages.composer.objectActionRequired', 'Action required')}\n </Badge>\n ) : null}\n </div>\n <p className=\"truncate text-xs text-muted-foreground\">{previewData?.subtitle || entityId}</p>\n {previewData?.status ? (\n <Badge variant=\"outline\" className=\"text-xs\">{previewData.status}</Badge>\n ) : null}\n </div>\n </div>\n )\n}\n\nexport default StaffMessageObjectPreview\n\n"],
|
|
5
|
+
"mappings": ";AAuBM,cAEE,YAFF;AArBN,SAAS,WAAW,aAAa;AACjC,SAAS,YAAY;AAErB,SAAS,aAAa;AAEf,SAAS,0BAA0B;AAAA,EACxC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAuB;AACrB,QAAM,IAAI,KAAK;AACf,QAAM,SAAS,eAAe;AAC9B,QAAM,OAAO,SAAS,QAAQ;AAC9B,QAAM,gBAAgB,SAClB,EAAE,0BAA0B,OAAO,IACnC,EAAE,gCAAgC,cAAc;AAEpD,SACE,qBAAC,SAAI,WAAU,4DACb;AAAA,wBAAC,QAAK,WAAU,wCAAuC;AAAA,IACvD,qBAAC,SAAI,WAAU,4BACb;AAAA,2BAAC,SAAI,WAAU,2BACb;AAAA,4BAAC,OAAE,WAAU,gCAAgC,uBAAa,SAAS,eAAc;AAAA,QAChF,iBACC,oBAAC,SAAM,SAAQ,aAAY,WAAU,WAClC,yBAAe,EAAE,0CAA0C,iBAAiB,GAC/E,IACE;AAAA,SACN;AAAA,MACA,oBAAC,OAAE,WAAU,0CAA0C,uBAAa,YAAY,UAAS;AAAA,MACxF,aAAa,SACZ,oBAAC,SAAM,SAAQ,WAAU,WAAU,WAAW,sBAAY,QAAO,IAC/D;AAAA,OACN;AAAA,KACF;AAEJ;AAEA,IAAO,oCAAQ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/modules/staff/widgets/messages/index.ts"],
|
|
4
|
+
"sourcesContent": ["export { StaffMessageObjectDetail } from './StaffMessageObjectDetail'\nexport { StaffMessageObjectPreview } from './StaffMessageObjectPreview'\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,gCAAgC;AACzC,SAAS,iCAAiC;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -859,13 +859,13 @@ function VisualEditorPage() {
|
|
|
859
859
|
] }),
|
|
860
860
|
/* @__PURE__ */ jsxs(Alert, { variant: "info", className: "mt-6", children: [
|
|
861
861
|
/* @__PURE__ */ jsx(Info, { className: "size-4" }),
|
|
862
|
-
/* @__PURE__ */ jsx(AlertTitle, { className: "text-xs", children: "How to use:" }),
|
|
862
|
+
/* @__PURE__ */ jsx(AlertTitle, { className: "text-xs", children: t("workflows.visualEditor.howToUse", "How to use:") }),
|
|
863
863
|
/* @__PURE__ */ jsx("div", { className: "mt-2", children: /* @__PURE__ */ jsxs("ul", { className: "list-inside list-disc space-y-1 text-xs", children: [
|
|
864
|
-
/* @__PURE__ */ jsx("li", { children: "Click step types to add them" }),
|
|
865
|
-
/* @__PURE__ */ jsx("li", { children: "Drag steps to position them" }),
|
|
866
|
-
/* @__PURE__ */ jsx("li", { children: "Connect steps by dragging from handles" }),
|
|
867
|
-
/* @__PURE__ */ jsx("li", { children: "Click steps and transitions to edit them" }),
|
|
868
|
-
/* @__PURE__ */ jsx("li", { children: "Validate before saving" })
|
|
864
|
+
/* @__PURE__ */ jsx("li", { children: t("workflows.visualEditor.hint.addSteps", "Click step types to add them") }),
|
|
865
|
+
/* @__PURE__ */ jsx("li", { children: t("workflows.visualEditor.hint.dragSteps", "Drag steps to position them") }),
|
|
866
|
+
/* @__PURE__ */ jsx("li", { children: t("workflows.visualEditor.hint.connectSteps", "Connect steps by dragging from handles") }),
|
|
867
|
+
/* @__PURE__ */ jsx("li", { children: t("workflows.visualEditor.hint.editSteps", "Click steps and transitions to edit them") }),
|
|
868
|
+
/* @__PURE__ */ jsx("li", { children: t("workflows.visualEditor.hint.validate", "Validate before saving") })
|
|
869
869
|
] }) })
|
|
870
870
|
] })
|
|
871
871
|
] }) }),
|