@memberjunction/ng-dashboards 6.2.0-edge.4 → 6.2.0-edge.5

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.
Files changed (87) hide show
  1. package/dist/AI/components/vectors/sensitive-fields.d.ts +53 -0
  2. package/dist/AI/components/vectors/sensitive-fields.d.ts.map +1 -0
  3. package/dist/AI/components/vectors/sensitive-fields.js +226 -0
  4. package/dist/AI/components/vectors/sensitive-fields.js.map +1 -0
  5. package/dist/AI/components/vectors/vector-document-rules.d.ts +126 -0
  6. package/dist/AI/components/vectors/vector-document-rules.d.ts.map +1 -0
  7. package/dist/AI/components/vectors/vector-document-rules.js +168 -0
  8. package/dist/AI/components/vectors/vector-document-rules.js.map +1 -0
  9. package/dist/AI/components/vectors/vector-management-resource.component.d.ts +49 -0
  10. package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
  11. package/dist/AI/components/vectors/vector-management-resource.component.js +428 -230
  12. package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
  13. package/dist/Communication/communication-agent-context.d.ts +11 -1
  14. package/dist/Communication/communication-agent-context.d.ts.map +1 -1
  15. package/dist/Communication/communication-agent-context.js +15 -0
  16. package/dist/Communication/communication-agent-context.js.map +1 -1
  17. package/dist/Communication/communication-dashboard.component.d.ts.map +1 -1
  18. package/dist/Communication/communication-dashboard.component.js +5 -0
  19. package/dist/Communication/communication-dashboard.component.js.map +1 -1
  20. package/dist/Communication/communication-providers-resource.component.d.ts +27 -1
  21. package/dist/Communication/communication-providers-resource.component.d.ts.map +1 -1
  22. package/dist/Communication/communication-providers-resource.component.js +722 -78
  23. package/dist/Communication/communication-providers-resource.component.js.map +1 -1
  24. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +25 -0
  25. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
  26. package/dist/DataExplorer/data-explorer-dashboard.component.js +74 -5
  27. package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
  28. package/dist/DevTools/app-state-inspector.component.d.ts.map +1 -1
  29. package/dist/DevTools/app-state-inspector.component.js +1 -0
  30. package/dist/DevTools/app-state-inspector.component.js.map +1 -1
  31. package/dist/DevTools/class-registry.component.d.ts.map +1 -1
  32. package/dist/DevTools/class-registry.component.js +1 -0
  33. package/dist/DevTools/class-registry.component.js.map +1 -1
  34. package/dist/DevTools/event-monitor.component.d.ts.map +1 -1
  35. package/dist/DevTools/event-monitor.component.js +2 -0
  36. package/dist/DevTools/event-monitor.component.js.map +1 -1
  37. package/dist/DevTools/graphql-console.component.d.ts.map +1 -1
  38. package/dist/DevTools/graphql-console.component.js.map +1 -1
  39. package/dist/DevTools/grid-width-lab.component.d.ts.map +1 -1
  40. package/dist/DevTools/grid-width-lab.component.js +1 -0
  41. package/dist/DevTools/grid-width-lab.component.js.map +1 -1
  42. package/dist/DevTools/layout-inspector.component.d.ts.map +1 -1
  43. package/dist/DevTools/layout-inspector.component.js +1 -0
  44. package/dist/DevTools/layout-inspector.component.js.map +1 -1
  45. package/dist/DevTools/lazy-module-status.component.d.ts.map +1 -1
  46. package/dist/DevTools/lazy-module-status.component.js +1 -0
  47. package/dist/DevTools/lazy-module-status.component.js.map +1 -1
  48. package/dist/DevTools/settings-explorer.component.d.ts.map +1 -1
  49. package/dist/DevTools/settings-explorer.component.js +1 -0
  50. package/dist/DevTools/settings-explorer.component.js.map +1 -1
  51. package/dist/DevTools/tab-strip-lab.component.d.ts.map +1 -1
  52. package/dist/DevTools/tab-strip-lab.component.js +1 -0
  53. package/dist/DevTools/tab-strip-lab.component.js.map +1 -1
  54. package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts +5 -0
  55. package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts.map +1 -1
  56. package/dist/EntityAdmin/entity-admin-dashboard.component.js +8 -5
  57. package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
  58. package/dist/Integration/components/overview/overview.component.js +2 -2
  59. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +2 -2
  60. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
  61. package/dist/KnowledgeHub/components/feature-pipelines/feature-pipeline.engine.d.ts +11 -1
  62. package/dist/KnowledgeHub/components/feature-pipelines/feature-pipeline.engine.d.ts.map +1 -1
  63. package/dist/KnowledgeHub/components/feature-pipelines/feature-pipeline.engine.js +24 -2
  64. package/dist/KnowledgeHub/components/feature-pipelines/feature-pipeline.engine.js.map +1 -1
  65. package/dist/KnowledgeHub/components/feature-pipelines/feature-pipelines-resource.component.d.ts +16 -2
  66. package/dist/KnowledgeHub/components/feature-pipelines/feature-pipelines-resource.component.d.ts.map +1 -1
  67. package/dist/KnowledgeHub/components/feature-pipelines/feature-pipelines-resource.component.js +87 -33
  68. package/dist/KnowledgeHub/components/feature-pipelines/feature-pipelines-resource.component.js.map +1 -1
  69. package/dist/LoginStudio/login-studio-inspector.component.d.ts +130 -0
  70. package/dist/LoginStudio/login-studio-inspector.component.d.ts.map +1 -0
  71. package/dist/LoginStudio/login-studio-inspector.component.js +781 -0
  72. package/dist/LoginStudio/login-studio-inspector.component.js.map +1 -0
  73. package/dist/LoginStudio/login-studio-resource.component.d.ts +153 -0
  74. package/dist/LoginStudio/login-studio-resource.component.d.ts.map +1 -0
  75. package/dist/LoginStudio/login-studio-resource.component.js +857 -0
  76. package/dist/LoginStudio/login-studio-resource.component.js.map +1 -0
  77. package/dist/Workflows/components/workflow-runs-resource.component.js +4 -4
  78. package/dist/Workflows/components/workflow-runs-resource.component.js.map +1 -1
  79. package/dist/core-dashboards.module.d.ts +2 -1
  80. package/dist/core-dashboards.module.d.ts.map +1 -1
  81. package/dist/core-dashboards.module.js +11 -3
  82. package/dist/core-dashboards.module.js.map +1 -1
  83. package/dist/public-api.d.ts +1 -0
  84. package/dist/public-api.d.ts.map +1 -1
  85. package/dist/public-api.js +1 -0
  86. package/dist/public-api.js.map +1 -1
  87. package/package.json +72 -69
@@ -1 +1 @@
1
- {"version":3,"file":"communication-providers-resource.component.js","sourceRoot":"","sources":["../../src/Communication/communication-providers-resource.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';\nimport { ResourceData, MJCommunicationProviderEntity, MJCommunicationLogEntity } from '@memberjunction/core-entities';\nimport { RegisterClass } from '@memberjunction/global';\nimport { BaseResourceComponent, NavigationService } from '@memberjunction/ng-shared';\nimport { Metadata, RunView, CompositeKey } from '@memberjunction/core';\n\ninterface ProviderCardData {\n Entity: MJCommunicationProviderEntity;\n SentCount: number;\n SuccessRate: number;\n FailedCount: number;\n IconClass: string;\n LogoClass: string;\n}\n@RegisterClass(BaseResourceComponent, 'CommunicationProvidersResource')\n@Component({\n standalone: false,\n selector: 'mj-communication-providers-resource',\n template: `\n <mj-page-layout>\n <mj-page-header\n Title=\"Providers\"\n Icon=\"fa-solid fa-server\"\n Subtitle=\"Manage your messaging service integrations\">\n <div actions>\n <button mjButton variant=\"primary\" size=\"sm\" (click)=\"addNewProvider()\">\n <i class=\"fa-solid fa-plus\"></i> <span class=\"action-btn-label\">Add Provider</span>\n </button>\n </div>\n </mj-page-header>\n\n <mj-page-body>\n @if (isLoading) {\n <div class=\"loading-state\">\n <mj-loading text=\"Loading providers...\"></mj-loading>\n </div>\n }\n \n @if (!isLoading) {\n <div class=\"providers-grid\">\n @for (card of providerCards; track card) {\n <div class=\"provider-card\" [class.disabled]=\"card.Entity.Status === 'Disabled'\">\n <div class=\"provider-card-header\">\n <div class=\"provider-card-logo\" [ngClass]=\"card.LogoClass\">\n <i [class]=\"card.IconClass\"></i>\n </div>\n <div class=\"provider-card-title\">\n <div class=\"provider-card-name\">{{card.Entity.Name}}</div>\n <div class=\"provider-card-desc\">{{card.Entity.Description || 'No description'}}</div>\n </div>\n <span class=\"provider-card-status\" [ngClass]=\"card.Entity.Status.toLowerCase()\">\n {{card.Entity.Status}}\n </span>\n </div>\n <div class=\"provider-card-body\">\n <div class=\"provider-capabilities\">\n <span class=\"capability-chip\" [class.supported]=\"card.Entity.SupportsSending\" [class.unsupported]=\"!card.Entity.SupportsSending\">\n <i [class]=\"card.Entity.SupportsSending ? 'fa-solid fa-check' : 'fa-solid fa-xmark'\"></i> Sending\n </span>\n <span class=\"capability-chip\" [class.supported]=\"card.Entity.SupportsReceiving\" [class.unsupported]=\"!card.Entity.SupportsReceiving\">\n <i [class]=\"card.Entity.SupportsReceiving ? 'fa-solid fa-check' : 'fa-solid fa-xmark'\"></i> Receiving\n </span>\n @if (card.Entity.SupportsScheduledSending) {\n <span class=\"capability-chip supported\">\n <i class=\"fa-solid fa-check\"></i> Scheduled\n </span>\n }\n @if (card.Entity.SupportsDrafts) {\n <span class=\"capability-chip supported\">\n <i class=\"fa-solid fa-check\"></i> Drafts\n </span>\n }\n @if (card.Entity.SupportsForwarding) {\n <span class=\"capability-chip supported\">\n <i class=\"fa-solid fa-check\"></i> Forward\n </span>\n }\n @if (card.Entity.SupportsReplying) {\n <span class=\"capability-chip supported\">\n <i class=\"fa-solid fa-check\"></i> Reply\n </span>\n }\n </div>\n <div class=\"provider-card-stats\">\n <div class=\"provider-stat\">\n <div class=\"provider-stat-value\">{{card.SentCount}}</div>\n <div class=\"provider-stat-label\">Sent (24h)</div>\n </div>\n <div class=\"provider-stat\">\n <div class=\"provider-stat-value\">{{card.SuccessRate}}%</div>\n <div class=\"provider-stat-label\">Success</div>\n </div>\n <div class=\"provider-stat\">\n <div class=\"provider-stat-value\">{{card.FailedCount}}</div>\n <div class=\"provider-stat-label\">Failed</div>\n </div>\n </div>\n </div>\n <div class=\"provider-card-footer\">\n <button (click)=\"configureProvider(card.Entity)\">\n <i class=\"fa-solid fa-gear\"></i> Configure\n </button>\n <button (click)=\"viewProviderLogs(card.Entity)\">\n <i class=\"fa-solid fa-chart-line\"></i> Analytics\n </button>\n </div>\n </div>\n }\n </div>\n }\n </mj-page-body>\n </mj-page-layout>\n `,\n styles: [`\n .loading-state {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 80px 0;\n }\n\n /* GRID */\n .providers-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));\n gap: 16px;\n }\n .provider-card {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n overflow: hidden;\n transition: all 0.15s ease;\n }\n .provider-card:hover {\n box-shadow: 0 2px 8px var(--mj-shadow-md);\n border-color: var(--mj-border-strong);\n }\n .provider-card.disabled { opacity: 0.65; }\n\n .provider-card-header {\n display: flex;\n align-items: center;\n gap: 14px;\n padding: 20px 20px 16px;\n }\n .provider-card-logo {\n width: 48px; height: 48px;\n border-radius: 12px;\n display: flex; align-items: center; justify-content: center;\n font-size: 22px; flex-shrink: 0;\n background: var(--mj-bg-surface-sunken);\n }\n .provider-card-logo.sendgrid {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n }\n .provider-card-logo.twilio {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n }\n .provider-card-logo.gmail {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n }\n .provider-card-logo.msgraph {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n }\n\n .provider-card-title { flex: 1; min-width: 0; }\n .provider-card-name {\n font-size: 15px; font-weight: 700;\n color: var(--mj-text-primary);\n white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\n }\n .provider-card-desc {\n font-size: 12px;\n color: var(--mj-text-muted);\n margin-top: 2px;\n }\n .provider-card-status {\n font-size: 10px; font-weight: 700;\n text-transform: uppercase; letter-spacing: 0.5px;\n padding: 3px 10px; border-radius: 10px;\n flex-shrink: 0;\n }\n .provider-card-status.active {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n .provider-card-status.disabled {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n }\n\n .provider-card-body { padding: 0 20px 16px; }\n\n .provider-capabilities {\n display: flex; flex-wrap: wrap;\n gap: 6px; margin-bottom: 16px;\n }\n .capability-chip {\n display: inline-flex; align-items: center;\n gap: 4px; padding: 4px 10px;\n border-radius: 12px; font-size: 11px; font-weight: 500;\n }\n .capability-chip.supported {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n .capability-chip.unsupported {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n text-decoration: line-through;\n }\n\n .provider-card-stats {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 12px; padding: 12px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 8px;\n }\n .provider-stat { text-align: center; }\n .provider-stat-value {\n font-size: 16px; font-weight: 800;\n color: var(--mj-text-primary);\n }\n .provider-stat-label {\n font-size: 10px;\n color: var(--mj-text-muted);\n text-transform: uppercase; letter-spacing: 0.3px;\n }\n\n .provider-card-footer {\n display: flex;\n border-top: 1px solid var(--mj-border-default);\n }\n .provider-card-footer button {\n flex: 1; padding: 12px;\n border: none; background: transparent;\n font-size: 12px; font-weight: 600;\n color: var(--mj-brand-primary);\n cursor: pointer; transition: background 0.15s;\n font-family: inherit;\n display: flex; align-items: center;\n justify-content: center; gap: 6px;\n }\n .provider-card-footer button:hover {\n background: var(--mj-bg-surface-sunken);\n }\n .provider-card-footer button + button {\n border-left: 1px solid var(--mj-border-default);\n }\n `]\n})\nexport class CommunicationProvidersResourceComponent extends BaseResourceComponent implements OnInit, OnDestroy {\n public isLoading = false;\n public ProviderCards: ProviderCardData[] = [];\n\n /** @deprecated Use {@link ProviderCards}. */\n public get providerCards(): ProviderCardData[] {\n return this.ProviderCards;\n }\n /** @deprecated Use {@link ProviderCards}. */\n public set providerCards(value: ProviderCardData[]) {\n this.ProviderCards = value;\n }\n\n constructor(private cdr: ChangeDetectorRef, private navService: NavigationService) {\n super();\n }\n\n async ngOnInit(): Promise<void> {\n super.ngOnInit();\n await this.loadData();\n this.NotifyLoadComplete();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n\n public async loadData(): Promise<void> {\n try {\n this.isLoading = true;\n this.cdr.detectChanges();\n\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const yesterday = new Date();\n yesterday.setDate(yesterday.getDate() - 1);\n const yesterdayIso = yesterday.toISOString();\n\n const [providersResult, logsResult] = await Promise.all([\n rv.RunView<MJCommunicationProviderEntity>({\n EntityName: 'MJ: Communication Providers',\n OrderBy: 'Name ASC',\n ResultType: 'entity_object'\n }),\n rv.RunView<MJCommunicationLogEntity>({\n EntityName: 'MJ: Communication Logs',\n ExtraFilter: `MessageDate >= '${yesterdayIso}'`,\n ResultType: 'entity_object'\n })\n ]);\n\n if (providersResult.Success) {\n const logs = logsResult.Success ? logsResult.Results : [];\n this.ProviderCards = providersResult.Results.map(p => this.buildProviderCard(p, logs));\n }\n } catch (error) {\n console.error('Error loading providers:', error);\n } finally {\n this.isLoading = false;\n this.cdr.detectChanges();\n }\n }\n\n private buildProviderCard(provider: MJCommunicationProviderEntity, logs: MJCommunicationLogEntity[]): ProviderCardData {\n const providerLogs = logs.filter(l => l.CommunicationProvider === provider.Name);\n const sent = providerLogs.length;\n const failed = providerLogs.filter(l => l.Status === 'Failed').length;\n const rate = sent > 0 ? parseFloat(((sent - failed) / sent * 100).toFixed(1)) : 100;\n\n return {\n Entity: provider,\n SentCount: sent,\n SuccessRate: rate,\n FailedCount: failed,\n IconClass: this.getProviderIcon(provider.Name),\n LogoClass: this.getProviderLogoClass(provider.Name)\n };\n }\n\n private getProviderIcon(name: string): string {\n const n = name.toLowerCase();\n if (n.includes('sendgrid')) return 'fa-solid fa-envelope';\n if (n.includes('twilio')) return 'fa-solid fa-comment-sms';\n if (n.includes('gmail') || n.includes('google')) return 'fa-brands fa-google';\n if (n.includes('microsoft') || n.includes('graph') || n.includes('outlook')) return 'fa-brands fa-microsoft';\n if (n.includes('aws') || n.includes('ses')) return 'fa-brands fa-aws';\n if (n.includes('slack')) return 'fa-brands fa-slack';\n return 'fa-solid fa-server';\n }\n\n private getProviderLogoClass(name: string): string {\n const n = name.toLowerCase();\n if (n.includes('sendgrid')) return 'sendgrid';\n if (n.includes('twilio')) return 'twilio';\n if (n.includes('gmail') || n.includes('google')) return 'gmail';\n if (n.includes('microsoft') || n.includes('graph') || n.includes('outlook')) return 'msgraph';\n return '';\n }\n\n public ConfigureProvider(provider: MJCommunicationProviderEntity): void {\n const pk = new CompositeKey();\n pk.LoadFromEntityInfoAndRecord(this.ProviderToUse.Entities.find(e => e.Name === 'MJ: Communication Providers')!, provider);\n this.navService.OpenEntityRecord('MJ: Communication Providers', pk);\n }\n\n /** @deprecated Use {@link ConfigureProvider}. */\n public configureProvider(provider: MJCommunicationProviderEntity): void {\n return this.ConfigureProvider(provider);\n }\n\n public ViewProviderLogs(provider: MJCommunicationProviderEntity): void {\n console.log('View analytics for provider:', provider.Name);\n }\n\n /** @deprecated Use {@link ViewProviderLogs}. */\n public viewProviderLogs(provider: MJCommunicationProviderEntity): void {\n return this.ViewProviderLogs(provider);\n }\n\n public AddNewProvider(): void {\n this.navService.OpenEntityRecord('MJ: Communication Providers', new CompositeKey());\n }\n\n /** @deprecated Use {@link AddNewProvider}. */\n public addNewProvider(): void {\n return this.AddNewProvider();\n }\n\n async GetResourceDisplayName(data: ResourceData): Promise<string> {\n return 'Providers';\n }\n\n async GetResourceIconClass(data: ResourceData): Promise<string> {\n return 'fa-solid fa-server';\n }\n}\n"]}
1
+ {"version":3,"file":"communication-providers-resource.component.js","sourceRoot":"","sources":["../../src/Communication/communication-providers-resource.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';\nimport {\n ResourceData,\n MJCommunicationProviderEntity,\n MJCommunicationLogEntity,\n MJAIBridgeAgentIdentityEntity,\n} from '@memberjunction/core-entities';\nimport { RegisterClass } from '@memberjunction/global';\nimport { BaseResourceComponent, NavigationService } from '@memberjunction/ng-shared';\nimport { RunView, CompositeKey } from '@memberjunction/core';\n\ntype ProviderEnterpriseScopeMode = MJCommunicationProviderEntity['EnterpriseScopeMode'];\n\ninterface EnterpriseScopeOption {\n Value: ProviderEnterpriseScopeMode;\n Label: string;\n Summary: string;\n}\n\ninterface ProviderCardData {\n Entity: MJCommunicationProviderEntity;\n SentCount: number;\n SuccessRate: number;\n FailedCount: number;\n IconClass: string;\n LogoClass: string;\n ScopeLabel: string;\n ScopeBadgeClass: string;\n}\n\n@RegisterClass(BaseResourceComponent, 'CommunicationProvidersResource')\n@Component({\n standalone: false,\n selector: 'mj-communication-providers-resource',\n template: `\n <mj-page-layout>\n <mj-page-header\n Title=\"Providers & Enterprise Mailbox Governance\"\n Icon=\"fa-solid fa-server\"\n Subtitle=\"Manage messaging & calendar providers, enterprise mailbox scope boundaries, and dedicated Agent Utility Mailboxes\">\n <div actions>\n <button mjButton variant=\"secondary\" size=\"sm\" (click)=\"AddNewAgentIdentity()\">\n <i class=\"fa-solid fa-robot\"></i> <span class=\"action-btn-label\">Add Utility Mailbox</span>\n </button>\n <button mjButton variant=\"primary\" size=\"sm\" (click)=\"addNewProvider()\">\n <i class=\"fa-solid fa-plus\"></i> <span class=\"action-btn-label\">Add Provider</span>\n </button>\n </div>\n </mj-page-header>\n\n <mj-page-body>\n @if (isLoading) {\n <div class=\"loading-state\">\n <mj-loading text=\"Loading providers and mailbox governance...\"></mj-loading>\n </div>\n }\n\n @if (!isLoading) {\n <!-- PROVIDERS GRID -->\n <div class=\"section-heading\">\n <div class=\"section-heading-title\">\n <i class=\"fa-solid fa-plug\"></i> Configured Communication & Calendar Providers\n </div>\n <div class=\"section-heading-sub\">\n Enterprise credentials default to <strong>Utility Mailboxes Only</strong> so agents cannot read or send from arbitrary user inboxes unless explicitly scoped.\n </div>\n </div>\n\n <div class=\"providers-grid\">\n @for (card of providerCards; track card.Entity.ID) {\n <div class=\"provider-card\" [class.disabled]=\"card.Entity.Status === 'Disabled'\">\n <div class=\"provider-card-header\">\n <div class=\"provider-card-logo\" [ngClass]=\"card.LogoClass\">\n <i [class]=\"card.IconClass\"></i>\n </div>\n <div class=\"provider-card-title\">\n <div class=\"provider-card-name\">{{card.Entity.Name}}</div>\n <div class=\"provider-card-desc\">{{card.Entity.Description || 'No description'}}</div>\n </div>\n <span class=\"provider-card-status\" [ngClass]=\"card.Entity.Status.toLowerCase()\">\n {{card.Entity.Status}}\n </span>\n </div>\n <div class=\"provider-card-body\">\n <div class=\"provider-capabilities\">\n <span class=\"capability-chip\" [class.supported]=\"card.Entity.SupportsSending\" [class.unsupported]=\"!card.Entity.SupportsSending\">\n <i [class]=\"card.Entity.SupportsSending ? 'fa-solid fa-check' : 'fa-solid fa-xmark'\"></i> Sending\n </span>\n <span class=\"capability-chip\" [class.supported]=\"card.Entity.SupportsReceiving\" [class.unsupported]=\"!card.Entity.SupportsReceiving\">\n <i [class]=\"card.Entity.SupportsReceiving ? 'fa-solid fa-check' : 'fa-solid fa-xmark'\"></i> Receiving\n </span>\n <span class=\"capability-chip\" [class.supported]=\"card.Entity.SupportsCalendar\" [class.unsupported]=\"!card.Entity.SupportsCalendar\">\n <i [class]=\"card.Entity.SupportsCalendar ? 'fa-regular fa-calendar-check' : 'fa-solid fa-xmark'\"></i> Calendar\n </span>\n <span class=\"capability-chip\" [class.supported]=\"card.Entity.SupportsFreeBusy\" [class.unsupported]=\"!card.Entity.SupportsFreeBusy\">\n <i [class]=\"card.Entity.SupportsFreeBusy ? 'fa-solid fa-user-clock' : 'fa-solid fa-xmark'\"></i> Free/Busy\n </span>\n @if (card.Entity.SupportsScheduledSending) {\n <span class=\"capability-chip supported\">\n <i class=\"fa-solid fa-check\"></i> Scheduled\n </span>\n }\n @if (card.Entity.SupportsDrafts) {\n <span class=\"capability-chip supported\">\n <i class=\"fa-solid fa-check\"></i> Drafts\n </span>\n }\n @if (card.Entity.SupportsForwarding) {\n <span class=\"capability-chip supported\">\n <i class=\"fa-solid fa-check\"></i> Forward\n </span>\n }\n @if (card.Entity.SupportsReplying) {\n <span class=\"capability-chip supported\">\n <i class=\"fa-solid fa-check\"></i> Reply\n </span>\n }\n </div>\n\n <!-- ENTERPRISE GOVERNANCE SUMMARY BANNER -->\n <div class=\"governance-banner\">\n <div class=\"governance-row\">\n <span class=\"governance-label\"><i class=\"fa-solid fa-shield-halved\"></i> Mailbox Scope</span>\n <span class=\"scope-badge\" [ngClass]=\"card.ScopeBadgeClass\">{{card.ScopeLabel}}</span>\n </div>\n <div class=\"governance-row\">\n <span class=\"governance-label\"><i class=\"fa-solid fa-globe\"></i> Allowed Domains</span>\n <span class=\"governance-domains\">{{card.Entity.AllowedEmailDomains || 'All domains (unrestricted)'}}</span>\n </div>\n </div>\n\n <div class=\"provider-card-stats\">\n <div class=\"provider-stat\">\n <div class=\"provider-stat-value\">{{card.SentCount}}</div>\n <div class=\"provider-stat-label\">Sent (24h)</div>\n </div>\n <div class=\"provider-stat\">\n <div class=\"provider-stat-value\">{{card.SuccessRate}}%</div>\n <div class=\"provider-stat-label\">Success</div>\n </div>\n <div class=\"provider-stat\">\n <div class=\"provider-stat-value\">{{card.FailedCount}}</div>\n <div class=\"provider-stat-label\">Failed</div>\n </div>\n </div>\n </div>\n <div class=\"provider-card-footer\">\n <button (click)=\"OpenGovernanceModal(card.Entity)\">\n <i class=\"fa-solid fa-shield-halved\"></i> Enterprise Scope\n </button>\n <button (click)=\"configureProvider(card.Entity)\">\n <i class=\"fa-solid fa-gear\"></i> Record\n </button>\n <button (click)=\"viewProviderLogs(card.Entity)\">\n <i class=\"fa-solid fa-chart-line\"></i> Analytics\n </button>\n </div>\n </div>\n }\n </div>\n\n <!-- AGENT UTILITY MAILBOXES SECTION (MJ: AI Bridge Agent Identities) -->\n <div class=\"section-heading utility-mailboxes-heading\">\n <div class=\"section-heading-title\">\n <i class=\"fa-solid fa-envelope-circle-check\"></i> Agent Utility Mailboxes (MJ: AI Bridge Agent Identities)\n </div>\n <div class=\"section-heading-sub\">\n Dedicated agent and shared utility email identities that Chief of Staff and other AI agents can use in <code>UtilityMailboxesOnly</code> or <code>SendAsAgent</code> mode without exposing personal employee inboxes.\n </div>\n </div>\n\n @if (AgentUtilityMailboxes.length === 0) {\n <div class=\"utility-empty-card\">\n <div class=\"utility-empty-icon\"><i class=\"fa-solid fa-inbox\"></i></div>\n <div class=\"utility-empty-title\">No Agent Utility Mailboxes Registered</div>\n <div class=\"utility-empty-desc\">\n Register shared or per-user agent email addresses (e.g., <code>cos-exec&#64;company.com</code> or <code>sage&#64;company.com</code>) in <strong>MJ: AI Bridge Agent Identities</strong> so agents can send briefings and calendar invites safely when <code>EnterpriseScopeMode</code> is set to <code>UtilityMailboxesOnly</code>.\n </div>\n <button mjButton variant=\"secondary\" size=\"sm\" (click)=\"AddNewAgentIdentity()\">\n <i class=\"fa-solid fa-plus\"></i> Register Utility Mailbox\n </button>\n </div>\n } @else {\n <div class=\"utility-mailboxes-grid\">\n @for (identity of AgentUtilityMailboxes; track identity.ID) {\n <div class=\"utility-mailbox-card\" [class.inactive]=\"!identity.IsActive\">\n <div class=\"utility-mailbox-header\">\n <div class=\"utility-mailbox-icon\">\n <i class=\"fa-solid fa-at\"></i>\n </div>\n <div class=\"utility-mailbox-info\">\n <div class=\"utility-mailbox-title\">{{identity.DisplayName || identity.IdentityValue}}</div>\n <div class=\"utility-mailbox-address\">{{identity.IdentityValue}}</div>\n </div>\n <span class=\"provider-card-status\" [class.active]=\"identity.IsActive\" [class.disabled]=\"!identity.IsActive\">\n {{identity.IsActive ? 'Active' : 'Inactive'}}\n </span>\n </div>\n <div class=\"utility-mailbox-meta\">\n <div class=\"utility-meta-row\">\n <span class=\"utility-meta-label\">Agent:</span>\n <span class=\"utility-meta-val\">{{identity.Agent || 'Unassigned'}}</span>\n </div>\n <div class=\"utility-meta-row\">\n <span class=\"utility-meta-label\">Owner Scope:</span>\n <span class=\"utility-meta-val\">{{identity.User ? ('Dedicated: ' + identity.User) : 'Shared Org Utility Mailbox'}}</span>\n </div>\n <div class=\"utility-meta-row\">\n <span class=\"utility-meta-label\">Bridge Provider:</span>\n <span class=\"utility-meta-val\">{{identity.Provider}}</span>\n </div>\n </div>\n <div class=\"utility-mailbox-footer\">\n <button (click)=\"OpenAgentIdentity(identity)\">\n <i class=\"fa-solid fa-arrow-up-right-from-square\"></i> Open Identity Record\n </button>\n </div>\n </div>\n }\n </div>\n }\n\n <!-- ENTERPRISE GOVERNANCE EDITOR MODAL -->\n @if (ActiveGovernanceProvider) {\n <div class=\"governance-modal-backdrop\" (click)=\"CloseGovernanceModal()\">\n <div class=\"governance-modal\" (click)=\"$event.stopPropagation()\">\n <div class=\"governance-modal-header\">\n <div>\n <div class=\"governance-modal-title\">\n <i class=\"fa-solid fa-shield-halved\"></i> Enterprise Mailbox Governance — {{ActiveGovernanceProvider.Name}}\n </div>\n <div class=\"governance-modal-subtitle\">\n Configure which mailboxes and calendar scopes AI agents (including Chief of Staff) can access through this provider.\n </div>\n </div>\n <button class=\"modal-close-btn\" (click)=\"CloseGovernanceModal()\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </div>\n\n <div class=\"governance-modal-body\">\n <div class=\"form-group\">\n <label class=\"form-label\">Enterprise Mailbox Scope Mode (<code>EnterpriseScopeMode</code>)</label>\n <div class=\"scope-options-list\">\n @for (opt of ScopeOptions; track opt.Value) {\n <label class=\"scope-option-card\" [class.selected]=\"DraftEnterpriseScopeMode === opt.Value\">\n <input\n type=\"radio\"\n name=\"enterpriseScopeMode\"\n [value]=\"opt.Value\"\n [checked]=\"DraftEnterpriseScopeMode === opt.Value\"\n (change)=\"OnScopeModeChange(opt.Value)\" />\n <div class=\"scope-option-content\">\n <div class=\"scope-option-title\">{{opt.Label}} (<code>{{opt.Value}}</code>)</div>\n <div class=\"scope-option-desc\">{{opt.Summary}}</div>\n </div>\n </label>\n }\n </div>\n </div>\n\n <div class=\"form-group\">\n <label class=\"form-label\">Allowed Email Domains (<code>AllowedEmailDomains</code>)</label>\n <input\n type=\"text\"\n class=\"form-input\"\n placeholder=\"e.g. bluecypress.io, memberjunction.org (leave blank for any domain)\"\n [(ngModel)]=\"DraftAllowedEmailDomains\" />\n <div class=\"form-hint\">\n Comma-separated list of corporate email domains permitted for user-scoped inbox &amp; calendar access. Users signed in with an email outside these domains will be blocked by the server-side security gate.\n </div>\n </div>\n\n <div class=\"form-group\">\n <label class=\"form-label\">Calendar &amp; Scheduling Capabilities</label>\n <div class=\"checkbox-row\">\n <label class=\"checkbox-item\">\n <input type=\"checkbox\" [(ngModel)]=\"DraftSupportsCalendar\" />\n <span><strong>Supports Calendar Events</strong> (<code>SupportsCalendar</code> — read/create/update/respond/cancel events)</span>\n </label>\n <label class=\"checkbox-item\">\n <input type=\"checkbox\" [(ngModel)]=\"DraftSupportsFreeBusy\" />\n <span><strong>Supports Free/Busy &amp; Meeting Time Finder</strong> (<code>SupportsFreeBusy</code> — schedule availability &amp; slot calculation)</span>\n </label>\n </div>\n </div>\n\n @if (GovernanceSaveError) {\n <div class=\"governance-alert error\">\n <i class=\"fa-solid fa-triangle-exclamation\"></i> {{GovernanceSaveError}}\n </div>\n }\n @if (GovernanceSaveMessage) {\n <div class=\"governance-alert success\">\n <i class=\"fa-solid fa-circle-check\"></i> {{GovernanceSaveMessage}}\n </div>\n }\n </div>\n\n <div class=\"governance-modal-footer\">\n <button mjButton variant=\"secondary\" size=\"sm\" (click)=\"CloseGovernanceModal()\" [disabled]=\"IsSavingGovernance\">\n Cancel\n </button>\n <button mjButton variant=\"primary\" size=\"sm\" (click)=\"SaveGovernanceConfig()\" [disabled]=\"IsSavingGovernance\">\n <i class=\"fa-solid fa-floppy-disk\"></i> {{IsSavingGovernance ? 'Saving...' : 'Save Governance Settings'}}\n </button>\n </div>\n </div>\n </div>\n }\n }\n </mj-page-body>\n </mj-page-layout>\n `,\n styles: [`\n .loading-state {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 80px 0;\n }\n\n .section-heading {\n margin-bottom: 14px;\n }\n .utility-mailboxes-heading {\n margin-top: 32px;\n }\n .section-heading-title {\n font-size: 15px;\n font-weight: 700;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .section-heading-sub {\n font-size: 12px;\n color: var(--mj-text-muted);\n margin-top: 4px;\n }\n\n /* GRID */\n .providers-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));\n gap: 16px;\n }\n .provider-card {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n overflow: hidden;\n transition: all 0.15s ease;\n }\n .provider-card:hover {\n box-shadow: 0 2px 8px var(--mj-shadow-md);\n border-color: var(--mj-border-strong);\n }\n .provider-card.disabled { opacity: 0.65; }\n\n .provider-card-header {\n display: flex;\n align-items: center;\n gap: 14px;\n padding: 20px 20px 16px;\n }\n .provider-card-logo {\n width: 48px; height: 48px;\n border-radius: 12px;\n display: flex; align-items: center; justify-content: center;\n font-size: 22px; flex-shrink: 0;\n background: var(--mj-bg-surface-sunken);\n }\n .provider-card-logo.sendgrid {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n }\n .provider-card-logo.twilio {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n }\n .provider-card-logo.gmail {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n }\n .provider-card-logo.msgraph {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n }\n\n .provider-card-title { flex: 1; min-width: 0; }\n .provider-card-name {\n font-size: 15px; font-weight: 700;\n color: var(--mj-text-primary);\n white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\n }\n .provider-card-desc {\n font-size: 12px;\n color: var(--mj-text-muted);\n margin-top: 2px;\n }\n .provider-card-status {\n font-size: 10px; font-weight: 700;\n text-transform: uppercase; letter-spacing: 0.5px;\n padding: 3px 10px; border-radius: 10px;\n flex-shrink: 0;\n }\n .provider-card-status.active {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n .provider-card-status.disabled {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n }\n\n .provider-card-body { padding: 0 20px 16px; }\n\n .provider-capabilities {\n display: flex; flex-wrap: wrap;\n gap: 6px; margin-bottom: 12px;\n }\n .capability-chip {\n display: inline-flex; align-items: center;\n gap: 4px; padding: 4px 10px;\n border-radius: 12px; font-size: 11px; font-weight: 500;\n }\n .capability-chip.supported {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n .capability-chip.unsupported {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n text-decoration: line-through;\n }\n\n /* GOVERNANCE BANNER */\n .governance-banner {\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 10px 12px;\n margin-bottom: 12px;\n display: flex;\n flex-direction: column;\n gap: 6px;\n }\n .governance-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n font-size: 11px;\n }\n .governance-label {\n color: var(--mj-text-muted);\n font-weight: 600;\n display: inline-flex;\n align-items: center;\n gap: 5px;\n }\n .governance-domains {\n color: var(--mj-text-primary);\n font-weight: 500;\n text-align: right;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 200px;\n }\n .scope-badge {\n font-size: 10px;\n font-weight: 700;\n padding: 2px 8px;\n border-radius: 8px;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n }\n .scope-badge.utility {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n }\n .scope-badge.group {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n .scope-badge.tenant {\n background: color-mix(in srgb, var(--mj-status-warning) 18%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n }\n\n .provider-card-stats {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 12px; padding: 12px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 8px;\n }\n .provider-stat { text-align: center; }\n .provider-stat-value {\n font-size: 16px; font-weight: 800;\n color: var(--mj-text-primary);\n }\n .provider-stat-label {\n font-size: 10px;\n color: var(--mj-text-muted);\n text-transform: uppercase; letter-spacing: 0.3px;\n }\n\n .provider-card-footer {\n display: flex;\n border-top: 1px solid var(--mj-border-default);\n }\n .provider-card-footer button {\n flex: 1; padding: 12px 8px;\n border: none; background: transparent;\n font-size: 12px; font-weight: 600;\n color: var(--mj-brand-primary);\n cursor: pointer; transition: background 0.15s;\n font-family: inherit;\n display: flex; align-items: center;\n justify-content: center; gap: 6px;\n }\n .provider-card-footer button:hover {\n background: var(--mj-bg-surface-sunken);\n }\n .provider-card-footer button + button {\n border-left: 1px solid var(--mj-border-default);\n }\n\n /* UTILITY MAILBOXES */\n .utility-empty-card {\n background: var(--mj-bg-surface-card);\n border: 1px dashed var(--mj-border-default);\n border-radius: 12px;\n padding: 28px 24px;\n text-align: center;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 10px;\n }\n .utility-empty-icon {\n font-size: 26px;\n color: var(--mj-text-muted);\n }\n .utility-empty-title {\n font-size: 14px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n .utility-empty-desc {\n font-size: 12px;\n color: var(--mj-text-muted);\n max-width: 620px;\n line-height: 1.5;\n }\n .utility-mailboxes-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));\n gap: 14px;\n }\n .utility-mailbox-card {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n overflow: hidden;\n }\n .utility-mailbox-card.inactive {\n opacity: 0.65;\n }\n .utility-mailbox-header {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n }\n .utility-mailbox-icon {\n width: 38px; height: 38px;\n border-radius: 10px;\n display: flex; align-items: center; justify-content: center;\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n font-size: 16px;\n }\n .utility-mailbox-info {\n flex: 1;\n min-width: 0;\n }\n .utility-mailbox-title {\n font-size: 14px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n .utility-mailbox-address {\n font-size: 12px;\n color: var(--mj-text-muted);\n }\n .utility-mailbox-meta {\n padding: 0 16px 14px;\n display: flex;\n flex-direction: column;\n gap: 4px;\n }\n .utility-meta-row {\n display: flex;\n justify-content: space-between;\n font-size: 11px;\n }\n .utility-meta-label {\n color: var(--mj-text-muted);\n }\n .utility-meta-val {\n color: var(--mj-text-primary);\n font-weight: 600;\n }\n .utility-mailbox-footer {\n border-top: 1px solid var(--mj-border-default);\n }\n .utility-mailbox-footer button {\n width: 100%;\n padding: 10px;\n border: none;\n background: transparent;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-brand-primary);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n }\n .utility-mailbox-footer button:hover {\n background: var(--mj-bg-surface-sunken);\n }\n\n /* MODAL */\n .governance-modal-backdrop {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n padding: 20px;\n }\n .governance-modal {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 14px;\n width: 100%;\n max-width: 640px;\n box-shadow: 0 12px 32px var(--mj-shadow-lg);\n overflow: hidden;\n }\n .governance-modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 12px;\n padding: 20px 24px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n }\n .governance-modal-title {\n font-size: 16px;\n font-weight: 700;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .governance-modal-subtitle {\n font-size: 12px;\n color: var(--mj-text-muted);\n margin-top: 4px;\n }\n .modal-close-btn {\n border: none;\n background: transparent;\n color: var(--mj-text-muted);\n cursor: pointer;\n font-size: 16px;\n padding: 4px 8px;\n }\n .governance-modal-body {\n padding: 20px 24px;\n display: flex;\n flex-direction: column;\n gap: 18px;\n }\n .form-group {\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n .form-label {\n font-size: 12px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n .scope-options-list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n .scope-option-card {\n display: flex;\n align-items: flex-start;\n gap: 10px;\n padding: 12px;\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n cursor: pointer;\n background: var(--mj-bg-surface);\n }\n .scope-option-card.selected {\n border-color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n }\n .scope-option-title {\n font-size: 13px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n .scope-option-desc {\n font-size: 11px;\n color: var(--mj-text-muted);\n margin-top: 2px;\n line-height: 1.4;\n }\n .form-input {\n padding: 9px 12px;\n border-radius: 8px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n font-size: 13px;\n font-family: inherit;\n }\n .form-hint {\n font-size: 11px;\n color: var(--mj-text-muted);\n line-height: 1.4;\n }\n .checkbox-row {\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n .checkbox-item {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 12px;\n color: var(--mj-text-primary);\n cursor: pointer;\n }\n .governance-alert {\n padding: 10px 12px;\n border-radius: 8px;\n font-size: 12px;\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .governance-alert.error {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n }\n .governance-alert.success {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n .governance-modal-footer {\n display: flex;\n justify-content: flex-end;\n gap: 10px;\n padding: 14px 24px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-sunken);\n }\n `]\n})\nexport class CommunicationProvidersResourceComponent extends BaseResourceComponent implements OnInit, OnDestroy {\n public isLoading = false;\n public ProviderCards: ProviderCardData[] = [];\n public AgentUtilityMailboxes: MJAIBridgeAgentIdentityEntity[] = [];\n\n public readonly ScopeOptions: EnterpriseScopeOption[] = [\n {\n Value: 'UtilityMailboxesOnly',\n Label: 'Utility Mailboxes Only (Recommended Default)',\n Summary: 'Enterprise credentials only access dedicated Agent Utility Mailboxes registered in MJ: AI Bridge Agent Identities. Personal user inbox & calendar access is blocked at the server gate.',\n },\n {\n Value: 'SecurityGroupScoped',\n Label: 'Security Group / ApplicationAccessPolicy Scoped',\n Summary: 'Enterprise credentials are restricted by an Exchange Online ApplicationAccessPolicy or Google Workspace OU/Group. Live preflight verification (VerifyMailboxAccess) confirms each user mailbox before enabling personal inbox/calendar tools.',\n },\n {\n Value: 'TenantWide',\n Label: 'Tenant-Wide App Access',\n Summary: 'Enterprise app credentials can access any corporate mailbox matching AllowedEmailDomains (pinned strictly on the server to ContextUser.Email).',\n },\n ];\n\n public ActiveGovernanceProvider: MJCommunicationProviderEntity | null = null;\n public DraftEnterpriseScopeMode: ProviderEnterpriseScopeMode = 'UtilityMailboxesOnly';\n public DraftAllowedEmailDomains = '';\n public DraftSupportsCalendar = false;\n public DraftSupportsFreeBusy = false;\n public IsSavingGovernance = false;\n public GovernanceSaveMessage = '';\n public GovernanceSaveError = '';\n\n /** @deprecated Use {@link ProviderCards}. */\n public get providerCards(): ProviderCardData[] {\n return this.ProviderCards;\n }\n /** @deprecated Use {@link ProviderCards}. */\n public set providerCards(value: ProviderCardData[]) {\n this.ProviderCards = value;\n }\n\n constructor(private cdr: ChangeDetectorRef, private navService: NavigationService) {\n super();\n }\n\n async ngOnInit(): Promise<void> {\n super.ngOnInit();\n await this.loadData();\n this.NotifyLoadComplete();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n\n public async loadData(): Promise<void> {\n try {\n this.isLoading = true;\n this.cdr.detectChanges();\n\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const yesterday = new Date();\n yesterday.setDate(yesterday.getDate() - 1);\n const yesterdayIso = yesterday.toISOString();\n\n const [providersResult, logsResult, identitiesResult] = await Promise.all([\n rv.RunView<MJCommunicationProviderEntity>({\n EntityName: 'MJ: Communication Providers',\n OrderBy: 'Name ASC',\n ResultType: 'entity_object'\n }),\n rv.RunView<MJCommunicationLogEntity>({\n EntityName: 'MJ: Communication Logs',\n ExtraFilter: `MessageDate >= '${yesterdayIso}'`,\n ResultType: 'entity_object'\n }),\n rv.RunView<MJAIBridgeAgentIdentityEntity>({\n EntityName: 'MJ: AI Bridge Agent Identities',\n ExtraFilter: `IdentityType = 'Email'`,\n OrderBy: 'DisplayName ASC, IdentityValue ASC',\n ResultType: 'entity_object'\n }),\n ]);\n\n if (providersResult.Success) {\n const logs = logsResult.Success ? logsResult.Results : [];\n this.ProviderCards = providersResult.Results.map(p => this.buildProviderCard(p, logs));\n }\n if (identitiesResult.Success) {\n this.AgentUtilityMailboxes = identitiesResult.Results;\n }\n } catch (error) {\n console.error('Error loading providers:', error);\n } finally {\n this.isLoading = false;\n this.cdr.detectChanges();\n }\n }\n\n private buildProviderCard(provider: MJCommunicationProviderEntity, logs: MJCommunicationLogEntity[]): ProviderCardData {\n const providerLogs = logs.filter(l => l.CommunicationProvider === provider.Name);\n const sent = providerLogs.length;\n const failed = providerLogs.filter(l => l.Status === 'Failed').length;\n const rate = sent > 0 ? parseFloat(((sent - failed) / sent * 100).toFixed(1)) : 100;\n\n return {\n Entity: provider,\n SentCount: sent,\n SuccessRate: rate,\n FailedCount: failed,\n IconClass: this.getProviderIcon(provider.Name),\n LogoClass: this.getProviderLogoClass(provider.Name),\n ScopeLabel: this.getScopeLabel(provider.EnterpriseScopeMode),\n ScopeBadgeClass: this.getScopeBadgeClass(provider.EnterpriseScopeMode),\n };\n }\n\n private getScopeLabel(mode: ProviderEnterpriseScopeMode): string {\n switch (mode) {\n case 'UtilityMailboxesOnly':\n return 'Utility Mailboxes Only';\n case 'SecurityGroupScoped':\n return 'Security Group Scoped';\n case 'TenantWide':\n return 'Tenant-Wide';\n default:\n return mode;\n }\n }\n\n private getScopeBadgeClass(mode: ProviderEnterpriseScopeMode): string {\n switch (mode) {\n case 'UtilityMailboxesOnly':\n return 'utility';\n case 'SecurityGroupScoped':\n return 'group';\n case 'TenantWide':\n return 'tenant';\n default:\n return 'utility';\n }\n }\n\n private getProviderIcon(name: string): string {\n const n = name.toLowerCase();\n if (n.includes('sendgrid')) return 'fa-solid fa-envelope';\n if (n.includes('twilio')) return 'fa-solid fa-comment-sms';\n if (n.includes('gmail') || n.includes('google')) return 'fa-brands fa-google';\n if (n.includes('microsoft') || n.includes('graph') || n.includes('outlook')) return 'fa-brands fa-microsoft';\n if (n.includes('aws') || n.includes('ses')) return 'fa-brands fa-aws';\n if (n.includes('slack')) return 'fa-brands fa-slack';\n return 'fa-solid fa-server';\n }\n\n private getProviderLogoClass(name: string): string {\n const n = name.toLowerCase();\n if (n.includes('sendgrid')) return 'sendgrid';\n if (n.includes('twilio')) return 'twilio';\n if (n.includes('gmail') || n.includes('google')) return 'gmail';\n if (n.includes('microsoft') || n.includes('graph') || n.includes('outlook')) return 'msgraph';\n return '';\n }\n\n public OpenGovernanceModal(provider: MJCommunicationProviderEntity): void {\n this.ActiveGovernanceProvider = provider;\n this.DraftEnterpriseScopeMode = provider.EnterpriseScopeMode || 'UtilityMailboxesOnly';\n this.DraftAllowedEmailDomains = provider.AllowedEmailDomains || '';\n this.DraftSupportsCalendar = provider.SupportsCalendar;\n this.DraftSupportsFreeBusy = provider.SupportsFreeBusy;\n this.GovernanceSaveMessage = '';\n this.GovernanceSaveError = '';\n this.cdr.detectChanges();\n }\n\n public CloseGovernanceModal(): void {\n this.ActiveGovernanceProvider = null;\n this.GovernanceSaveMessage = '';\n this.GovernanceSaveError = '';\n this.cdr.detectChanges();\n }\n\n public OnScopeModeChange(mode: ProviderEnterpriseScopeMode): void {\n this.DraftEnterpriseScopeMode = mode;\n this.cdr.detectChanges();\n }\n\n public async SaveGovernanceConfig(): Promise<void> {\n if (!this.ActiveGovernanceProvider) {\n return;\n }\n try {\n this.IsSavingGovernance = true;\n this.GovernanceSaveMessage = '';\n this.GovernanceSaveError = '';\n this.cdr.detectChanges();\n\n this.ActiveGovernanceProvider.EnterpriseScopeMode = this.DraftEnterpriseScopeMode;\n const trimmedDomains = this.DraftAllowedEmailDomains.trim();\n this.ActiveGovernanceProvider.AllowedEmailDomains = trimmedDomains.length > 0 ? trimmedDomains : null;\n this.ActiveGovernanceProvider.SupportsCalendar = this.DraftSupportsCalendar;\n this.ActiveGovernanceProvider.SupportsFreeBusy = this.DraftSupportsFreeBusy;\n\n const saved = await this.ActiveGovernanceProvider.Save();\n if (saved) {\n this.GovernanceSaveMessage = 'Enterprise governance and calendar capabilities saved.';\n await this.loadData();\n } else {\n const msg = this.ActiveGovernanceProvider.LatestResult?.Message || 'Failed to save provider settings.';\n this.GovernanceSaveError = msg;\n }\n } catch (err) {\n this.GovernanceSaveError = err instanceof Error ? err.message : String(err);\n } finally {\n this.IsSavingGovernance = false;\n this.cdr.detectChanges();\n }\n }\n\n public ConfigureProvider(provider: MJCommunicationProviderEntity): void {\n const pk = new CompositeKey();\n pk.LoadFromEntityInfoAndRecord(this.ProviderToUse.Entities.find(e => e.Name === 'MJ: Communication Providers')!, provider);\n this.navService.OpenEntityRecord('MJ: Communication Providers', pk);\n }\n\n /** @deprecated Use {@link ConfigureProvider}. */\n public configureProvider(provider: MJCommunicationProviderEntity): void {\n return this.ConfigureProvider(provider);\n }\n\n public ViewProviderLogs(provider: MJCommunicationProviderEntity): void {\n console.log('View analytics for provider:', provider.Name);\n }\n\n /** @deprecated Use {@link ViewProviderLogs}. */\n public viewProviderLogs(provider: MJCommunicationProviderEntity): void {\n return this.ViewProviderLogs(provider);\n }\n\n public AddNewProvider(): void {\n this.navService.OpenEntityRecord('MJ: Communication Providers', new CompositeKey());\n }\n\n /** @deprecated Use {@link AddNewProvider}. */\n public addNewProvider(): void {\n return this.AddNewProvider();\n }\n\n public AddNewAgentIdentity(): void {\n this.navService.OpenEntityRecord('MJ: AI Bridge Agent Identities', new CompositeKey());\n }\n\n public OpenAgentIdentity(identity: MJAIBridgeAgentIdentityEntity): void {\n const entityInfo = this.ProviderToUse.Entities.find(e => e.Name === 'MJ: AI Bridge Agent Identities');\n if (!entityInfo) {\n return;\n }\n const pk = new CompositeKey();\n pk.LoadFromEntityInfoAndRecord(entityInfo, identity);\n this.navService.OpenEntityRecord('MJ: AI Bridge Agent Identities', pk);\n }\n\n async GetResourceDisplayName(data: ResourceData): Promise<string> {\n return 'Providers';\n }\n\n async GetResourceIconClass(data: ResourceData): Promise<string> {\n return 'fa-solid fa-server';\n }\n}\n\n"]}
@@ -1,6 +1,7 @@
1
1
  import { OnInit, OnDestroy, AfterViewInit, ChangeDetectorRef, EventEmitter, OnChanges, SimpleChanges, ElementRef, NgZone } from '@angular/core';
2
2
  import { Subject } from 'rxjs';
3
3
  import { BaseDashboard } from '@memberjunction/ng-shared';
4
+ import type { DeletedRecordRef } from '@memberjunction/ng-shared';
4
5
  import { RecentAccessService } from '@memberjunction/ng-shared-generic';
5
6
  import { EntityInfo } from '@memberjunction/core';
6
7
  import { ResourceData } from '@memberjunction/core-entities';
@@ -680,6 +681,21 @@ export declare class DataExplorerDashboardComponent extends BaseDashboard implem
680
681
  OnDetailPanelClosed(): void;
681
682
  /** @deprecated Use {@link OnDetailPanelClosed}. */
682
683
  onDetailPanelClosed(): void;
684
+ /**
685
+ * Keep the preview and the grid honest when records are deleted — from a form in another tab,
686
+ * a custom form, or any other `BaseEntity.Delete()`; and, for the grid, by another session.
687
+ */
688
+ private listenForRecordDeletes;
689
+ /**
690
+ * A record was deleted. A delete in this session closes the preview if it shows that record,
691
+ * and the record is remembered so a replayed `record=` param can't reopen it. A delete by
692
+ * another session leaves the preview alone — the user may be reading it — as record tabs do.
693
+ * Either way, a grid showing that entity reloads in place, keeping the user's page and sort.
694
+ */
695
+ OnRecordDeleted(deleted: DeletedRecordRef): void;
696
+ private deletedRecordKey;
697
+ /** True when this session deleted the record a URL / deep-link key names. */
698
+ private wasDeletedInSession;
683
699
  /**
684
700
  * Handle opening a record in full view (from detail panel)
685
701
  * Uses detailPanelEntity since the panel may be showing a different entity than the grid
@@ -772,6 +788,15 @@ export declare class DataExplorerDashboardComponent extends BaseDashboard implem
772
788
  private applyDeepLink;
773
789
  /** Record ID to select once data loads (from deep link) */
774
790
  private pendingRecordSelection;
791
+ /**
792
+ * Records deleted in this session, as `entity::id` keys (see {@link deletedRecordKey}). Leaving a
793
+ * deleted record's tab returns here by replaying the query params captured when it was opened —
794
+ * `record=<its id>` included — so every path that would re-select a record from a key checks this
795
+ * first, or the preview reopens on a record that no longer exists.
796
+ */
797
+ private deletedRecordKeys;
798
+ /** Grid reloads asked for by deletes, debounced so a burst of deletes reloads once. */
799
+ private gridRefreshOnDelete$;
775
800
  /**
776
801
  * Handle breadcrumb click - navigate to that level
777
802
  */
@@ -1 +1 @@
1
- {"version":3,"file":"data-explorer-dashboard.component.d.ts","sourceRoot":"","sources":["../../src/DataExplorer/data-explorer-dashboard.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-explorer-dashboard.component.d.ts","sourceRoot":"","sources":["../../src/DataExplorer/data-explorer-dashboard.component.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ import { Component, Input, Output, EventEmitter, HostListener, ViewChild, inject
9
9
  import { trigger, transition, style, animate } from '@angular/animations';
10
10
  import { Subject } from 'rxjs';
11
11
  import { takeUntil, debounceTime } from 'rxjs/operators';
12
- import { BaseDashboard } from '@memberjunction/ng-shared';
12
+ import { BaseDashboard, GetDeletedRecordFromEvent, RecordIdentityMatches, NormalizeRecordIdForMatch } from '@memberjunction/ng-shared';
13
13
  import { ApplicationManager } from '@memberjunction/ng-base-application';
14
14
  import { MJNotificationService } from '@memberjunction/ng-notifications';
15
15
  import { IndexByUUID, RegisterClass, UUIDMap, UUIDsEqual } from '@memberjunction/global';
@@ -1226,6 +1226,8 @@ let DataExplorerDashboardComponent = class DataExplorerDashboardComponent extend
1226
1226
  }
1227
1227
  async ngOnInit() {
1228
1228
  super.ngOnInit();
1229
+ // Wired before the async setup below, so a delete during a slow load isn't missed.
1230
+ this.listenForRecordDeletes();
1229
1231
  try {
1230
1232
  // Ensure UserInfoEngine is configured before we try to access user settings
1231
1233
  // This prevents race conditions where we try to load default view settings
@@ -2466,6 +2468,12 @@ let DataExplorerDashboardComponent = class DataExplorerDashboardComponent extend
2466
2468
  if (this.pendingRecordSelection && this.SelectedEntity) {
2467
2469
  const recordId = this.pendingRecordSelection;
2468
2470
  this.pendingRecordSelection = null; // Clear it so we don't keep trying
2471
+ if (this.wasDeletedInSession(this.SelectedEntity, recordId)) {
2472
+ // A replayed key for a record deleted in this session — nothing to select.
2473
+ this.StateService.closeDetailPanel();
2474
+ this.cdr.detectChanges();
2475
+ return;
2476
+ }
2469
2477
  // Try to find the record by primary key or concatenated string
2470
2478
  const entity = this.SelectedEntity;
2471
2479
  const record = event.records.find(r => {
@@ -2484,7 +2492,8 @@ let DataExplorerDashboardComponent = class DataExplorerDashboardComponent extend
2484
2492
  }
2485
2493
  }
2486
2494
  // Restore selected record if we have a persisted selectedRecordId
2487
- else if (this.State.selectedRecordId && this.State.detailPanelOpen && !this.SelectedRecord && this.SelectedEntity) {
2495
+ else if (this.State.selectedRecordId && this.State.detailPanelOpen && !this.SelectedRecord && this.SelectedEntity
2496
+ && !this.wasDeletedInSession(this.SelectedEntity, this.State.selectedRecordId)) {
2488
2497
  const entity = this.SelectedEntity;
2489
2498
  const record = event.records.find(r => buildPkString(r, entity) === this.State.selectedRecordId);
2490
2499
  if (record) {
@@ -2525,6 +2534,51 @@ let DataExplorerDashboardComponent = class DataExplorerDashboardComponent extend
2525
2534
  onDetailPanelClosed() {
2526
2535
  return this.OnDetailPanelClosed();
2527
2536
  }
2537
+ /**
2538
+ * Keep the preview and the grid honest when records are deleted — from a form in another tab,
2539
+ * a custom form, or any other `BaseEntity.Delete()`; and, for the grid, by another session.
2540
+ */
2541
+ listenForRecordDeletes() {
2542
+ MJGlobal.Instance.GetEventListener()
2543
+ .pipe(takeUntil(this.destroy$))
2544
+ .subscribe(event => {
2545
+ // Read the key now: right after raising 'delete' the entity is reset and its key is gone.
2546
+ const deleted = GetDeletedRecordFromEvent(event);
2547
+ if (deleted) {
2548
+ this.OnRecordDeleted(deleted);
2549
+ }
2550
+ });
2551
+ this.gridRefreshOnDelete$
2552
+ .pipe(debounceTime(300), takeUntil(this.destroy$))
2553
+ .subscribe(() => this.ViewWorkspaceRef?.RefreshInPlace());
2554
+ }
2555
+ /**
2556
+ * A record was deleted. A delete in this session closes the preview if it shows that record,
2557
+ * and the record is remembered so a replayed `record=` param can't reopen it. A delete by
2558
+ * another session leaves the preview alone — the user may be reading it — as record tabs do.
2559
+ * Either way, a grid showing that entity reloads in place, keeping the user's page and sort.
2560
+ */
2561
+ OnRecordDeleted(deleted) {
2562
+ if (!deleted.Remote) {
2563
+ this.deletedRecordKeys.add(this.deletedRecordKey(deleted.EntityName, deleted.RecordId));
2564
+ const panelEntity = this.DetailPanelEntity;
2565
+ if (this.SelectedRecord && panelEntity &&
2566
+ RecordIdentityMatches(panelEntity.Name, buildPkString(this.SelectedRecord, panelEntity), deleted)) {
2567
+ this.OnDetailPanelClosed();
2568
+ this.cdr.detectChanges();
2569
+ }
2570
+ }
2571
+ if (this.SelectedEntity?.Name.trim().toLowerCase() === deleted.EntityName.trim().toLowerCase()) {
2572
+ this.gridRefreshOnDelete$.next();
2573
+ }
2574
+ }
2575
+ deletedRecordKey(entityName, recordId) {
2576
+ return `${entityName.trim().toLowerCase()}::${NormalizeRecordIdForMatch(recordId)}`;
2577
+ }
2578
+ /** True when this session deleted the record a URL / deep-link key names. */
2579
+ wasDeletedInSession(entity, recordKey) {
2580
+ return !!entity && this.deletedRecordKeys.has(this.deletedRecordKey(entity.Name, recordKey));
2581
+ }
2528
2582
  /**
2529
2583
  * Handle opening a record in full view (from detail panel)
2530
2584
  * Uses detailPanelEntity since the panel may be showing a different entity than the grid
@@ -2761,6 +2815,15 @@ let DataExplorerDashboardComponent = class DataExplorerDashboardComponent extend
2761
2815
  }
2762
2816
  /** Record ID to select once data loads (from deep link) */
2763
2817
  pendingRecordSelection = null;
2818
+ /**
2819
+ * Records deleted in this session, as `entity::id` keys (see {@link deletedRecordKey}). Leaving a
2820
+ * deleted record's tab returns here by replaying the query params captured when it was opened —
2821
+ * `record=<its id>` included — so every path that would re-select a record from a key checks this
2822
+ * first, or the preview reopens on a record that no longer exists.
2823
+ */
2824
+ deletedRecordKeys = new Set();
2825
+ /** Grid reloads asked for by deletes, debounced so a burst of deletes reloads once. */
2826
+ gridRefreshOnDelete$ = new Subject();
2764
2827
  // ========================================
2765
2828
  // BREADCRUMB NAVIGATION
2766
2829
  // ========================================
@@ -2962,8 +3025,14 @@ let DataExplorerDashboardComponent = class DataExplorerDashboardComponent extend
2962
3025
  this.LiveFilterText = '';
2963
3026
  this.DebouncedFilterText = '';
2964
3027
  }
2965
- // Handle record selection
2966
- if (urlState.record && !entityChanged && this.isSelectedRecord(urlState.record)) {
3028
+ // Handle record selection. A key for a record deleted in this session (replayed when its
3029
+ // tab closes and returns here) is treated as no record.
3030
+ if (urlState.record && this.wasDeletedInSession(entity, urlState.record)) {
3031
+ this.SelectedRecord = null;
3032
+ this.DetailPanelEntity = null;
3033
+ this.StateService.closeDetailPanel();
3034
+ }
3035
+ else if (urlState.record && !entityChanged && this.isSelectedRecord(urlState.record)) {
2967
3036
  // Already showing this record — nothing to re-resolve
2968
3037
  }
2969
3038
  else if (urlState.record) {
@@ -3495,5 +3564,5 @@ export { DataExplorerDashboardComponent };
3495
3564
  type: HostListener,
3496
3565
  args: ['document:keydown', ['$event']]
3497
3566
  }] }); })();
3498
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DataExplorerDashboardComponent, { className: "DataExplorerDashboardComponent", filePath: "src/DataExplorer/data-explorer-dashboard.component.ts", lineNumber: 67 }); })();
3567
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DataExplorerDashboardComponent, { className: "DataExplorerDashboardComponent", filePath: "src/DataExplorer/data-explorer-dashboard.component.ts", lineNumber: 68 }); })();
3499
3568
  //# sourceMappingURL=data-explorer-dashboard.component.js.map