import { createElement, lazy } from "react"; import type { MailDevMailboxUiCapability, MailProfilesUiCapability, PlatformWebModule } from "@govoplan/core-webui"; import { MailProfilePolicyEditor, MailProfileScopeManager } from "./features/mail/MailProfileManagement"; import { validateMailPolicy } from "./features/mail/mailPolicyValidation"; import { mailCredentialReferenceSelectors } from "./features/mail/mailReferenceProviders"; import { generatedTranslations } from "./i18n/generatedTranslations"; import "./styles/mail-profiles.css"; const MailboxPage = lazy(() => import("./features/mail/MailboxPage")); const MailBouncePage = lazy(() => import("./features/mail/MailBouncePage")); const mailboxRead = ["mail:mailbox:read"]; const bounceRead = ["mail:bounce:read", "mail:bounce:manage"]; const translations = { en: generatedTranslations.en, de: generatedTranslations.de }; export const mailModule: PlatformWebModule = { id: "mail", label: "i18n:govoplan-mail.mail.92379cbb", version: "1.0.0", dependencies: ["access"], optionalDependencies: ["addresses", "audit", "notifications"], translations, viewSurfaces: [ { id: "mail.admin.system-servers", moduleId: "mail", kind: "section", label: "System mail servers", order: 70 }, { id: "mail.admin.tenant-servers", moduleId: "mail", kind: "section", label: "Tenant mail servers", order: 60 }, { id: "mail.admin.group-servers", moduleId: "mail", kind: "section", label: "Group mail servers", order: 20 }, { id: "mail.admin.user-servers", moduleId: "mail", kind: "section", label: "User mail servers", order: 20 }, { id: "mail.settings.profiles", moduleId: "mail", kind: "section", label: "Personal mail profiles", order: 10 } ], navItems: [{ to: "/mail", label: "i18n:govoplan-mail.mail.92379cbb", iconName: "mail", anyOf: mailboxRead, order: 50 }], routes: [ { path: "/mail", anyOf: mailboxRead, order: 50, render: ({ settings, auth }) => createElement(MailboxPage, { settings, auth }) }, { path: "/mail/bounces", anyOf: bounceRead, order: 51, render: ({ settings }) => createElement(MailBouncePage, { settings }) }], uiCapabilities: { "mail.profiles": { MailProfileScopeManager, MailProfilePolicyEditor, validateMailPolicy } satisfies MailProfilesUiCapability, "core.credentialReferenceSelectors": mailCredentialReferenceSelectors }, runtimeUiCapabilities: { "mail.devMailbox": { enabled: true, label: "i18n:govoplan-mail.development_mock_mailbox.1a379865" } satisfies MailDevMailboxUiCapability } }; export default mailModule;