@memberjunction/ng-dashboards 6.2.0-edge.3 → 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/analytics/realtime/realtime-transcripts-data.d.ts +4 -3
- package/dist/AI/components/analytics/realtime/realtime-transcripts-data.d.ts.map +1 -1
- package/dist/AI/components/analytics/realtime/realtime-transcripts-data.js +8 -5
- package/dist/AI/components/analytics/realtime/realtime-transcripts-data.js.map +1 -1
- package/dist/AI/components/duplicates/compare-value.component.d.ts +67 -0
- package/dist/AI/components/duplicates/compare-value.component.d.ts.map +1 -0
- package/dist/AI/components/duplicates/compare-value.component.js +168 -0
- package/dist/AI/components/duplicates/compare-value.component.js.map +1 -0
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +49 -3
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +287 -169
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-run-scope.d.ts +77 -0
- package/dist/AI/components/duplicates/duplicate-detection-run-scope.d.ts.map +1 -0
- package/dist/AI/components/duplicates/duplicate-detection-run-scope.js +116 -0
- package/dist/AI/components/duplicates/duplicate-detection-run-scope.js.map +1 -0
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts +1 -0
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts.map +1 -1
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js +16 -4
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.d.ts +2 -0
- package/dist/AI/components/tags/tags-resource.component.d.ts.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.js +12 -6
- package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
- 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-index-auto.d.ts +29 -0
- package/dist/AI/components/vectors/vector-index-auto.d.ts.map +1 -0
- package/dist/AI/components/vectors/vector-index-auto.js +59 -0
- package/dist/AI/components/vectors/vector-index-auto.js.map +1 -0
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts +58 -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 +493 -250
- package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
- package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
- package/dist/Actions/components/actions-overview.component.js +7 -3
- package/dist/Actions/components/actions-overview.component.js.map +1 -1
- package/dist/Actions/components/categories-list-view.component.d.ts.map +1 -1
- package/dist/Actions/components/categories-list-view.component.js +3 -2
- package/dist/Actions/components/categories-list-view.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/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
- package/dist/ComponentStudio/component-studio-dashboard.component.js +1 -0
- package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
- package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.d.ts +0 -3
- package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js +5 -14
- package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js.map +1 -1
- package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/artifact-load-dialog.component.js +1 -0
- package/dist/ComponentStudio/components/artifact-load-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.js +1 -0
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.js.map +1 -1
- package/dist/Credentials/components/credentials-list-resource.component.d.ts +2 -0
- package/dist/Credentials/components/credentials-list-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-list-resource.component.js +12 -10
- package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
- package/dist/DashboardBrowser/dashboard-browser-agent-context.d.ts +14 -43
- package/dist/DashboardBrowser/dashboard-browser-agent-context.d.ts.map +1 -1
- package/dist/DashboardBrowser/dashboard-browser-agent-context.js +6 -29
- package/dist/DashboardBrowser/dashboard-browser-agent-context.js.map +1 -1
- package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts +174 -321
- package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts.map +1 -1
- package/dist/DashboardBrowser/dashboard-browser-resource.component.js +522 -1195
- package/dist/DashboardBrowser/dashboard-browser-resource.component.js.map +1 -1
- package/dist/DashboardBrowser/dashboard-library-filter.d.ts +116 -0
- package/dist/DashboardBrowser/dashboard-library-filter.d.ts.map +1 -0
- package/dist/DashboardBrowser/dashboard-library-filter.js +277 -0
- package/dist/DashboardBrowser/dashboard-library-filter.js.map +1 -0
- package/dist/DashboardBrowser/dashboard-share-dialog.component.d.ts +1 -1
- package/dist/DashboardBrowser/dashboard-share-dialog.component.js.map +1 -1
- package/dist/DashboardBrowser/dashboards-agent-tools.d.ts +26 -0
- package/dist/DashboardBrowser/dashboards-agent-tools.d.ts.map +1 -0
- package/dist/DashboardBrowser/dashboards-agent-tools.js +32 -0
- package/dist/DashboardBrowser/dashboards-agent-tools.js.map +1 -0
- package/dist/DashboardBrowser/dashboards-categories-resource.component.d.ts +58 -0
- package/dist/DashboardBrowser/dashboards-categories-resource.component.d.ts.map +1 -0
- package/dist/DashboardBrowser/dashboards-categories-resource.component.js +391 -0
- package/dist/DashboardBrowser/dashboards-categories-resource.component.js.map +1 -0
- package/dist/DashboardBrowser/dashboards-categories.helpers.d.ts +37 -0
- package/dist/DashboardBrowser/dashboards-categories.helpers.d.ts.map +1 -0
- package/dist/DashboardBrowser/dashboards-categories.helpers.js +68 -0
- package/dist/DashboardBrowser/dashboards-categories.helpers.js.map +1 -0
- package/dist/DashboardEditor/dashboard-editor.component.d.ts +295 -0
- package/dist/DashboardEditor/dashboard-editor.component.d.ts.map +1 -0
- package/dist/DashboardEditor/dashboard-editor.component.js +1022 -0
- package/dist/DashboardEditor/dashboard-editor.component.js.map +1 -0
- package/dist/DashboardEditor/dashboard-editor.types.d.ts +23 -0
- package/dist/DashboardEditor/dashboard-editor.types.d.ts.map +1 -0
- package/dist/DashboardEditor/dashboard-editor.types.js +3 -0
- package/dist/DashboardEditor/dashboard-editor.types.js.map +1 -0
- package/dist/DashboardEditor/dashboard-viewer-factory.d.ts +11 -0
- package/dist/DashboardEditor/dashboard-viewer-factory.d.ts.map +1 -0
- package/dist/DashboardEditor/dashboard-viewer-factory.js +17 -0
- package/dist/DashboardEditor/dashboard-viewer-factory.js.map +1 -0
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +51 -0
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.js +375 -223
- package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
- package/dist/DataExplorer/services/explorer-state.service.d.ts +1 -1
- package/dist/DataExplorer/services/explorer-state.service.js +2 -5
- package/dist/DataExplorer/services/explorer-state.service.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/FormBuilder/form-builder-resource.component.d.ts +0 -14
- package/dist/FormBuilder/form-builder-resource.component.d.ts.map +1 -1
- package/dist/FormBuilder/form-builder-resource.component.js +7 -29
- package/dist/FormBuilder/form-builder-resource.component.js.map +1 -1
- package/dist/Home/home-agent-context.d.ts +29 -10
- package/dist/Home/home-agent-context.d.ts.map +1 -1
- package/dist/Home/home-agent-context.js +50 -24
- package/dist/Home/home-agent-context.js.map +1 -1
- package/dist/Home/home-dashboard-switcher.component.d.ts +95 -0
- package/dist/Home/home-dashboard-switcher.component.d.ts.map +1 -0
- package/dist/Home/home-dashboard-switcher.component.js +442 -0
- package/dist/Home/home-dashboard-switcher.component.js.map +1 -0
- package/dist/Home/home-dashboard.component.d.ts +330 -17
- package/dist/Home/home-dashboard.component.d.ts.map +1 -1
- package/dist/Home/home-dashboard.component.js +1702 -1014
- package/dist/Home/home-dashboard.component.js.map +1 -1
- package/dist/Home/home-menus.d.ts +38 -0
- package/dist/Home/home-menus.d.ts.map +1 -0
- package/dist/Home/home-menus.js +53 -0
- package/dist/Home/home-menus.js.map +1 -0
- package/dist/Home/home-pinned-dashboards.d.ts +33 -0
- package/dist/Home/home-pinned-dashboards.d.ts.map +1 -0
- package/dist/Home/home-pinned-dashboards.js +76 -0
- package/dist/Home/home-pinned-dashboards.js.map +1 -0
- 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/PredictiveStudio/components/ps-production.component.d.ts +5 -1
- package/dist/PredictiveStudio/components/ps-production.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/components/ps-production.component.js +64 -41
- package/dist/PredictiveStudio/components/ps-production.component.js.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.d.ts.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.js +3 -2
- package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
- package/dist/RealtimeRecordings/realtime-recordings-dashboard.component.js +2 -2
- package/dist/RealtimeRecordings/realtime-recordings-dashboard.component.js.map +1 -1
- package/dist/TelephonyOperations/telephony-operations-dashboard.component.d.ts +1 -0
- package/dist/TelephonyOperations/telephony-operations-dashboard.component.d.ts.map +1 -1
- package/dist/TelephonyOperations/telephony-operations-dashboard.component.js +7 -0
- package/dist/TelephonyOperations/telephony-operations-dashboard.component.js.map +1 -1
- package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-explorer.component.js +7 -7
- package/dist/Testing/components/testing-explorer.component.js.map +1 -1
- 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/ai-dashboards.module.d.ts +21 -20
- package/dist/ai-dashboards.module.d.ts.map +1 -1
- package/dist/ai-dashboards.module.js +4 -1
- package/dist/ai-dashboards.module.js.map +1 -1
- package/dist/core-dashboards.module.d.ts +70 -62
- package/dist/core-dashboards.module.d.ts.map +1 -1
- package/dist/core-dashboards.module.js +33 -5
- package/dist/core-dashboards.module.js.map +1 -1
- package/dist/data-explorer-dashboards.module.d.ts +1 -1
- package/dist/data-explorer-dashboards.module.d.ts.map +1 -1
- package/dist/data-explorer-dashboards.module.js +3 -1
- package/dist/data-explorer-dashboards.module.js.map +1 -1
- package/dist/public-api.d.ts +3 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +4 -0
- package/dist/public-api.js.map +1 -1
- package/dist/shared/dashboard-library-changes.d.ts +23 -0
- package/dist/shared/dashboard-library-changes.d.ts.map +1 -0
- package/dist/shared/dashboard-library-changes.js +26 -0
- package/dist/shared/dashboard-library-changes.js.map +1 -0
- package/dist/shared/dashboard-owner-names.d.ts +17 -0
- package/dist/shared/dashboard-owner-names.d.ts.map +1 -0
- package/dist/shared/dashboard-owner-names.js +65 -0
- package/dist/shared/dashboard-owner-names.js.map +1 -0
- package/dist/shared/dashboard-recents.d.ts +34 -0
- package/dist/shared/dashboard-recents.d.ts.map +1 -0
- package/dist/shared/dashboard-recents.js +87 -0
- package/dist/shared/dashboard-recents.js.map +1 -0
- package/dist/shared/dashboards-app-install.d.ts +59 -0
- package/dist/shared/dashboards-app-install.d.ts.map +1 -0
- package/dist/shared/dashboards-app-install.js +97 -0
- package/dist/shared/dashboards-app-install.js.map +1 -0
- package/dist/shared/dashboards-app.helpers.d.ts +42 -0
- package/dist/shared/dashboards-app.helpers.d.ts.map +1 -0
- package/dist/shared/dashboards-app.helpers.js +143 -0
- package/dist/shared/dashboards-app.helpers.js.map +1 -0
- package/package.json +73 -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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-studio-dashboard.component.d.ts","sourceRoot":"","sources":["../../src/ComponentStudio/component-studio-dashboard.component.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"component-studio-dashboard.component.d.ts","sourceRoot":"","sources":["../../src/ComponentStudio/component-studio-dashboard.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -1248,6 +1248,7 @@ let ComponentStudioDashboardComponent = class ComponentStudioDashboardComponent
|
|
|
1248
1248
|
version.ArtifactID = artifact.ID;
|
|
1249
1249
|
version.UserID = this.metadata.CurrentUser.ID;
|
|
1250
1250
|
const rv = RunView.FromMetadataProvider(this.ProviderToUse);
|
|
1251
|
+
// conversation-scope: artifact-wide read, no conversation path applies
|
|
1251
1252
|
const versionsResult = await rv.RunView({
|
|
1252
1253
|
EntityName: 'MJ: Artifact Versions',
|
|
1253
1254
|
ExtraFilter: `ArtifactID = '${artifact.ID}'`,
|