@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.
- package/dist/AI/components/vectors/sensitive-fields.d.ts +53 -0
- package/dist/AI/components/vectors/sensitive-fields.d.ts.map +1 -0
- package/dist/AI/components/vectors/sensitive-fields.js +226 -0
- package/dist/AI/components/vectors/sensitive-fields.js.map +1 -0
- package/dist/AI/components/vectors/vector-document-rules.d.ts +126 -0
- package/dist/AI/components/vectors/vector-document-rules.d.ts.map +1 -0
- package/dist/AI/components/vectors/vector-document-rules.js +168 -0
- package/dist/AI/components/vectors/vector-document-rules.js.map +1 -0
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts +49 -0
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.js +428 -230
- package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
- package/dist/Communication/communication-agent-context.d.ts +11 -1
- package/dist/Communication/communication-agent-context.d.ts.map +1 -1
- package/dist/Communication/communication-agent-context.js +15 -0
- package/dist/Communication/communication-agent-context.js.map +1 -1
- package/dist/Communication/communication-dashboard.component.d.ts.map +1 -1
- package/dist/Communication/communication-dashboard.component.js +5 -0
- package/dist/Communication/communication-dashboard.component.js.map +1 -1
- package/dist/Communication/communication-providers-resource.component.d.ts +27 -1
- package/dist/Communication/communication-providers-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-providers-resource.component.js +722 -78
- package/dist/Communication/communication-providers-resource.component.js.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +25 -0
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.js +74 -5
- package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
- package/dist/DevTools/app-state-inspector.component.d.ts.map +1 -1
- package/dist/DevTools/app-state-inspector.component.js +1 -0
- package/dist/DevTools/app-state-inspector.component.js.map +1 -1
- package/dist/DevTools/class-registry.component.d.ts.map +1 -1
- package/dist/DevTools/class-registry.component.js +1 -0
- package/dist/DevTools/class-registry.component.js.map +1 -1
- package/dist/DevTools/event-monitor.component.d.ts.map +1 -1
- package/dist/DevTools/event-monitor.component.js +2 -0
- package/dist/DevTools/event-monitor.component.js.map +1 -1
- package/dist/DevTools/graphql-console.component.d.ts.map +1 -1
- package/dist/DevTools/graphql-console.component.js.map +1 -1
- package/dist/DevTools/grid-width-lab.component.d.ts.map +1 -1
- package/dist/DevTools/grid-width-lab.component.js +1 -0
- package/dist/DevTools/grid-width-lab.component.js.map +1 -1
- package/dist/DevTools/layout-inspector.component.d.ts.map +1 -1
- package/dist/DevTools/layout-inspector.component.js +1 -0
- package/dist/DevTools/layout-inspector.component.js.map +1 -1
- package/dist/DevTools/lazy-module-status.component.d.ts.map +1 -1
- package/dist/DevTools/lazy-module-status.component.js +1 -0
- package/dist/DevTools/lazy-module-status.component.js.map +1 -1
- package/dist/DevTools/settings-explorer.component.d.ts.map +1 -1
- package/dist/DevTools/settings-explorer.component.js +1 -0
- package/dist/DevTools/settings-explorer.component.js.map +1 -1
- package/dist/DevTools/tab-strip-lab.component.d.ts.map +1 -1
- package/dist/DevTools/tab-strip-lab.component.js +1 -0
- package/dist/DevTools/tab-strip-lab.component.js.map +1 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts +5 -0
- package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts.map +1 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.js +8 -5
- package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
- package/dist/Integration/components/overview/overview.component.js +2 -2
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +2 -2
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipeline.engine.d.ts +11 -1
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipeline.engine.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipeline.engine.js +24 -2
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipeline.engine.js.map +1 -1
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipelines-resource.component.d.ts +16 -2
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipelines-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipelines-resource.component.js +87 -33
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipelines-resource.component.js.map +1 -1
- package/dist/LoginStudio/login-studio-inspector.component.d.ts +130 -0
- package/dist/LoginStudio/login-studio-inspector.component.d.ts.map +1 -0
- package/dist/LoginStudio/login-studio-inspector.component.js +781 -0
- package/dist/LoginStudio/login-studio-inspector.component.js.map +1 -0
- package/dist/LoginStudio/login-studio-resource.component.d.ts +153 -0
- package/dist/LoginStudio/login-studio-resource.component.d.ts.map +1 -0
- package/dist/LoginStudio/login-studio-resource.component.js +857 -0
- package/dist/LoginStudio/login-studio-resource.component.js.map +1 -0
- package/dist/Workflows/components/workflow-runs-resource.component.js +4 -4
- package/dist/Workflows/components/workflow-runs-resource.component.js.map +1 -1
- package/dist/core-dashboards.module.d.ts +2 -1
- package/dist/core-dashboards.module.d.ts.map +1 -1
- package/dist/core-dashboards.module.js +11 -3
- package/dist/core-dashboards.module.js.map +1 -1
- package/dist/public-api.d.ts +1 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +1 -0
- package/dist/public-api.js.map +1 -1
- 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@company.com</code> or <code>sage@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 & 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 & 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 & Meeting Time Finder</strong> (<code>SupportsFreeBusy</code> — schedule availability & 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
|
-
|
|
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:
|
|
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
|