@memberjunction/ng-dashboards 5.38.0 → 5.40.0
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/README.md +14 -7
- package/dist/AI/components/agents/agent-configuration.component.js +199 -198
- package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
- package/dist/AI/components/analytics/ai-analytics-resource.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/ai-analytics-resource.component.js +20 -17
- package/dist/AI/components/analytics/ai-analytics-resource.component.js.map +1 -1
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts +15 -0
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.js +166 -58
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.js.map +1 -1
- package/dist/AI/components/analytics/executive-summary/executive-summary.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/executive-summary/executive-summary.component.js +2 -1
- package/dist/AI/components/analytics/executive-summary/executive-summary.component.js.map +1 -1
- package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts +1 -0
- package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/model-performance/model-performance.component.js +55 -36
- package/dist/AI/components/analytics/model-performance/model-performance.component.js.map +1 -1
- package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.d.ts +9 -1
- package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js +158 -117
- package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js.map +1 -1
- package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.d.ts +1 -0
- package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js +22 -8
- package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js.map +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts +217 -860
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +1717 -7802
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
- package/dist/AI/components/autotagging/components/classify-item-drilldown.component.d.ts +56 -0
- package/dist/AI/components/autotagging/components/classify-item-drilldown.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/components/classify-item-drilldown.component.js +423 -0
- package/dist/AI/components/autotagging/components/classify-item-drilldown.component.js.map +1 -0
- package/dist/AI/components/autotagging/components/classify-item-grid.component.d.ts +70 -0
- package/dist/AI/components/autotagging/components/classify-item-grid.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/components/classify-item-grid.component.js +308 -0
- package/dist/AI/components/autotagging/components/classify-item-grid.component.js.map +1 -0
- package/dist/AI/components/autotagging/components/classify-org-context-editor.component.d.ts +29 -0
- package/dist/AI/components/autotagging/components/classify-org-context-editor.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/components/classify-org-context-editor.component.js +186 -0
- package/dist/AI/components/autotagging/components/classify-org-context-editor.component.js.map +1 -0
- package/dist/AI/components/autotagging/components/classify-overview-analytics.component.d.ts +69 -0
- package/dist/AI/components/autotagging/components/classify-overview-analytics.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/components/classify-overview-analytics.component.js +278 -0
- package/dist/AI/components/autotagging/components/classify-overview-analytics.component.js.map +1 -0
- package/dist/AI/components/autotagging/components/classify-seed-taxonomy.component.d.ts +73 -0
- package/dist/AI/components/autotagging/components/classify-seed-taxonomy.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/components/classify-seed-taxonomy.component.js +393 -0
- package/dist/AI/components/autotagging/components/classify-seed-taxonomy.component.js.map +1 -0
- package/dist/AI/components/autotagging/dialogs/classify-setup-wizard.component.d.ts +122 -0
- package/dist/AI/components/autotagging/dialogs/classify-setup-wizard.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/dialogs/classify-setup-wizard.component.js +908 -0
- package/dist/AI/components/autotagging/dialogs/classify-setup-wizard.component.js.map +1 -0
- package/dist/AI/components/autotagging/dialogs/dry-run-preview.dialog.component.d.ts +87 -0
- package/dist/AI/components/autotagging/dialogs/dry-run-preview.dialog.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/dialogs/dry-run-preview.dialog.component.js +475 -0
- package/dist/AI/components/autotagging/dialogs/dry-run-preview.dialog.component.js.map +1 -0
- package/dist/AI/components/autotagging/dialogs/item-detail.dialog.component.d.ts +29 -0
- package/dist/AI/components/autotagging/dialogs/item-detail.dialog.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/dialogs/item-detail.dialog.component.js +208 -0
- package/dist/AI/components/autotagging/dialogs/item-detail.dialog.component.js.map +1 -0
- package/dist/AI/components/autotagging/dialogs/no-content-type-warning.dialog.component.d.ts +21 -0
- package/dist/AI/components/autotagging/dialogs/no-content-type-warning.dialog.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/dialogs/no-content-type-warning.dialog.component.js +70 -0
- package/dist/AI/components/autotagging/dialogs/no-content-type-warning.dialog.component.js.map +1 -0
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.d.ts +333 -0
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js +2125 -0
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js.map +1 -0
- package/dist/AI/components/autotagging/shared/classify.dryrun.d.ts +61 -0
- package/dist/AI/components/autotagging/shared/classify.dryrun.d.ts.map +1 -0
- package/dist/AI/components/autotagging/shared/classify.dryrun.js +78 -0
- package/dist/AI/components/autotagging/shared/classify.dryrun.js.map +1 -0
- package/dist/AI/components/autotagging/shared/classify.format.d.ts +58 -0
- package/dist/AI/components/autotagging/shared/classify.format.d.ts.map +1 -0
- package/dist/AI/components/autotagging/shared/classify.format.js +260 -0
- package/dist/AI/components/autotagging/shared/classify.format.js.map +1 -0
- package/dist/AI/components/autotagging/shared/classify.types.d.ts +319 -0
- package/dist/AI/components/autotagging/shared/classify.types.d.ts.map +1 -0
- package/dist/AI/components/autotagging/shared/classify.types.js +6 -0
- package/dist/AI/components/autotagging/shared/classify.types.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/health-tab.component.d.ts +103 -0
- package/dist/AI/components/autotagging/tabs/health-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/health-tab.component.js +571 -0
- package/dist/AI/components/autotagging/tabs/health-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/history-tab.component.d.ts +77 -0
- package/dist/AI/components/autotagging/tabs/history-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/history-tab.component.js +519 -0
- package/dist/AI/components/autotagging/tabs/history-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/inbox-tab.component.d.ts +107 -0
- package/dist/AI/components/autotagging/tabs/inbox-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/inbox-tab.component.js +719 -0
- package/dist/AI/components/autotagging/tabs/inbox-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/pipeline-tab.component.d.ts +131 -0
- package/dist/AI/components/autotagging/tabs/pipeline-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/pipeline-tab.component.js +813 -0
- package/dist/AI/components/autotagging/tabs/pipeline-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/sources-tab.component.d.ts +177 -0
- package/dist/AI/components/autotagging/tabs/sources-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/sources-tab.component.js +1465 -0
- package/dist/AI/components/autotagging/tabs/sources-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/tags-tab.component.d.ts +78 -0
- package/dist/AI/components/autotagging/tabs/tags-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/tags-tab.component.js +492 -0
- package/dist/AI/components/autotagging/tabs/tags-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/taxonomy-tab.component.d.ts +397 -0
- package/dist/AI/components/autotagging/tabs/taxonomy-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/taxonomy-tab.component.js +3490 -0
- package/dist/AI/components/autotagging/tabs/taxonomy-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/types-tab.component.d.ts +56 -0
- package/dist/AI/components/autotagging/tabs/types-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/types-tab.component.js +271 -0
- package/dist/AI/components/autotagging/tabs/types-tab.component.js.map +1 -0
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +3 -0
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +306 -290
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
- package/dist/AI/components/execution-monitoring.component.js +1 -1
- package/dist/AI/components/execution-monitoring.component.js.map +1 -1
- package/dist/AI/components/models/model-management.component.js +209 -208
- package/dist/AI/components/models/model-management.component.js.map +1 -1
- package/dist/AI/components/prompts/prompt-management.component.js +130 -128
- package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
- package/dist/AI/components/requests/agent-requests-resource.component.js +61 -61
- package/dist/AI/components/requests/agent-requests-resource.component.js.map +1 -1
- package/dist/AI/components/system/system-configuration.component.js +17 -17
- package/dist/AI/components/system/system-configuration.component.js.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.d.ts +1 -0
- package/dist/AI/components/tags/tags-resource.component.d.ts.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.js +578 -538
- package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts +3 -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 +331 -303
- package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
- package/dist/AI/services/ai-instrumentation.service.d.ts +5 -0
- package/dist/AI/services/ai-instrumentation.service.d.ts.map +1 -1
- package/dist/AI/services/ai-instrumentation.service.js +14 -2
- package/dist/AI/services/ai-instrumentation.service.js.map +1 -1
- package/dist/AI/services/cache-metrics.d.ts +50 -0
- package/dist/AI/services/cache-metrics.d.ts.map +1 -0
- package/dist/AI/services/cache-metrics.js +43 -0
- package/dist/AI/services/cache-metrics.js.map +1 -0
- package/dist/APIKeys/api-applications-panel.component.js +2 -2
- package/dist/APIKeys/api-key-create-dialog.component.js +2 -2
- package/dist/APIKeys/api-key-edit-panel.component.js +2 -2
- package/dist/APIKeys/api-keys-resource.component.js +132 -131
- package/dist/APIKeys/api-keys-resource.component.js.map +1 -1
- package/dist/Actions/components/actions-overview.component.js +141 -141
- package/dist/Actions/components/actions-overview.component.js.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.js +15 -15
- package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.d.ts +0 -5
- package/dist/Actions/components/explorer/action-explorer.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.js +139 -212
- package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
- package/dist/Admin/admin-data-schema.component.js +2 -2
- package/dist/Admin/admin-data-schema.component.js.map +1 -1
- package/dist/Admin/admin-dev-tools-resource.component.js +2 -2
- package/dist/Admin/admin-dev-tools-resource.component.js.map +1 -1
- package/dist/Admin/admin-identity-access.component.js +2 -2
- package/dist/Admin/admin-identity-access.component.js.map +1 -1
- package/dist/Admin/admin-monitoring.component.js +2 -2
- package/dist/Admin/admin-monitoring.component.js.map +1 -1
- package/dist/ApplicationRoles/application-roles-resource.component.js +54 -49
- package/dist/ApplicationRoles/application-roles-resource.component.js.map +1 -1
- package/dist/Communication/communication-logs-resource.component.d.ts +6 -0
- package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-logs-resource.component.js +72 -50
- package/dist/Communication/communication-logs-resource.component.js.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.js +103 -102
- package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
- package/dist/Communication/communication-providers-resource.component.js +52 -51
- package/dist/Communication/communication-providers-resource.component.js.map +1 -1
- package/dist/Communication/communication-runs-resource.component.js +39 -38
- package/dist/Communication/communication-runs-resource.component.js.map +1 -1
- package/dist/Communication/communication-templates-resource.component.d.ts +6 -0
- package/dist/Communication/communication-templates-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-templates-resource.component.js +92 -89
- package/dist/Communication/communication-templates-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-audit-resource.component.js +136 -135
- package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-categories-resource.component.js +155 -152
- package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-list-resource.component.js +119 -118
- package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-overview-resource.component.js +129 -128
- package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-types-resource.component.js +107 -106
- package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +31 -340
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.js +468 -1958
- package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
- package/dist/DataExplorer/data-explorer-resource.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-resource.component.js +10 -0
- package/dist/DataExplorer/data-explorer-resource.component.js.map +1 -1
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js +1 -1
- package/dist/DatabaseDesigner/components/entity-list.component.js +115 -114
- package/dist/DatabaseDesigner/components/entity-list.component.js.map +1 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts +5 -6
- package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts.map +1 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.js +4 -5
- package/dist/DatabaseDesigner/database-designer-dashboards.module.js.map +1 -1
- package/dist/DevTools/app-state-inspector.component.js +18 -17
- package/dist/DevTools/app-state-inspector.component.js.map +1 -1
- package/dist/DevTools/class-registry.component.js +88 -85
- package/dist/DevTools/class-registry.component.js.map +1 -1
- package/dist/DevTools/event-monitor.component.js +155 -150
- package/dist/DevTools/event-monitor.component.js.map +1 -1
- package/dist/DevTools/graphql-console.component.js +245 -243
- package/dist/DevTools/graphql-console.component.js.map +1 -1
- package/dist/DevTools/layout-inspector.component.js +18 -17
- package/dist/DevTools/layout-inspector.component.js.map +1 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.js +20 -19
- package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
- package/dist/Home/home-dashboard.component.js +2 -2
- package/dist/Integration/components/activity/activity.component.d.ts.map +1 -1
- package/dist/Integration/components/activity/activity.component.js +236 -229
- package/dist/Integration/components/activity/activity.component.js.map +1 -1
- package/dist/Integration/components/connections/connections.component.js +390 -389
- package/dist/Integration/components/connections/connections.component.js.map +1 -1
- package/dist/Integration/components/overview/overview.component.js +2 -2
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +14 -11
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts +27 -2
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +244 -119
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +293 -291
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js +62 -61
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.d.ts +65 -0
- package/dist/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.d.ts.map +1 -0
- package/dist/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.js +176 -0
- package/dist/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.js.map +1 -0
- package/dist/KnowledgeHub/components/visualize/tag-cloud/tag-cloud.component.d.ts +81 -0
- package/dist/KnowledgeHub/components/visualize/tag-cloud/tag-cloud.component.d.ts.map +1 -0
- package/dist/KnowledgeHub/components/visualize/tag-cloud/tag-cloud.component.js +308 -0
- package/dist/KnowledgeHub/components/visualize/tag-cloud/tag-cloud.component.js.map +1 -0
- package/dist/KnowledgeHub/components/visualize/visualize-resource.component.d.ts +85 -0
- package/dist/KnowledgeHub/components/visualize/visualize-resource.component.d.ts.map +1 -0
- package/dist/KnowledgeHub/components/visualize/visualize-resource.component.js +362 -0
- package/dist/KnowledgeHub/components/visualize/visualize-resource.component.js.map +1 -0
- package/dist/KnowledgeHub/index.d.ts +3 -0
- package/dist/KnowledgeHub/index.d.ts.map +1 -1
- package/dist/KnowledgeHub/index.js +3 -0
- package/dist/KnowledgeHub/index.js.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.d.ts +6 -2
- package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.js +525 -566
- package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-categories-resource.component.js +135 -134
- package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.js +199 -198
- package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
- package/dist/MCP/components/mcp-server-dialog.component.js +2 -2
- package/dist/MCP/mcp-dashboard.component.js +443 -438
- package/dist/MCP/mcp-dashboard.component.js.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.js +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-activity.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-activity.component.js +146 -147
- package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs.component.js +76 -75
- package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-overview.component.js +97 -96
- package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
- package/dist/Scheduling/scheduling-dashboard.component.js +24 -22
- package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
- package/dist/Scheduling/services/scheduling-instrumentation.service.d.ts +2 -0
- package/dist/Scheduling/services/scheduling-instrumentation.service.d.ts.map +1 -1
- package/dist/Scheduling/services/scheduling-instrumentation.service.js +1 -0
- package/dist/Scheduling/services/scheduling-instrumentation.service.js.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab-resource.component.js +1 -1
- package/dist/Testing/components/testing-explorer.component.d.ts +14 -4
- package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-explorer.component.js +436 -427
- package/dist/Testing/components/testing-explorer.component.js.map +1 -1
- package/dist/Testing/components/testing-runs-resource.component.js +1 -1
- package/dist/Testing/components/testing-runs.component.js +116 -115
- package/dist/Testing/components/testing-runs.component.js.map +1 -1
- package/dist/Testing/testing-dashboard.component.js +6 -7
- package/dist/Testing/testing-dashboard.component.js.map +1 -1
- package/dist/VersionHistory/components/labels-resource.component.js +173 -172
- package/dist/VersionHistory/components/labels-resource.component.js.map +1 -1
- package/dist/VersionHistory/components/restore-resource.component.d.ts +6 -0
- package/dist/VersionHistory/components/restore-resource.component.d.ts.map +1 -1
- package/dist/VersionHistory/components/restore-resource.component.js +116 -92
- package/dist/VersionHistory/components/restore-resource.component.js.map +1 -1
- package/dist/ai-dashboards.module.d.ts +57 -35
- package/dist/ai-dashboards.module.d.ts.map +1 -1
- package/dist/ai-dashboards.module.js +80 -1
- package/dist/ai-dashboards.module.js.map +1 -1
- package/dist/communication-dashboards.module.d.ts +1 -1
- package/dist/communication-dashboards.module.d.ts.map +1 -1
- package/dist/communication-dashboards.module.js +7 -1
- package/dist/communication-dashboards.module.js.map +1 -1
- package/dist/data-explorer-dashboards.module.d.ts +12 -14
- package/dist/data-explorer-dashboards.module.d.ts.map +1 -1
- package/dist/data-explorer-dashboards.module.js +5 -14
- 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 +3 -0
- package/dist/public-api.js.map +1 -1
- package/dist/testing-dashboards.module.d.ts +4 -5
- package/dist/testing-dashboards.module.d.ts.map +1 -1
- package/dist/testing-dashboards.module.js +7 -5
- package/dist/testing-dashboards.module.js.map +1 -1
- package/package.json +57 -54
- package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.d.ts +0 -79
- package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.d.ts.map +0 -1
- package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js +0 -195
- package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js.map +0 -1
- package/dist/DataExplorer/components/view-selector/view-selector.component.d.ts +0 -226
- package/dist/DataExplorer/components/view-selector/view-selector.component.d.ts.map +0 -1
- package/dist/DataExplorer/components/view-selector/view-selector.component.js +0 -861
- package/dist/DataExplorer/components/view-selector/view-selector.component.js.map +0 -1
|
@@ -13,22 +13,26 @@ import * as i1 from "@angular/forms";
|
|
|
13
13
|
import * as i2 from "@memberjunction/ng-ui-components";
|
|
14
14
|
import * as i3 from "@angular/common";
|
|
15
15
|
function EventMonitorComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
16
|
-
i0.ɵɵelement(0, "i",
|
|
17
|
-
i0.ɵɵ
|
|
16
|
+
i0.ɵɵelement(0, "i", 35);
|
|
17
|
+
i0.ɵɵelementStart(1, "span", 6);
|
|
18
|
+
i0.ɵɵtext(2, "Resume");
|
|
19
|
+
i0.ɵɵelementEnd();
|
|
18
20
|
} }
|
|
19
21
|
function EventMonitorComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
20
|
-
i0.ɵɵelement(0, "i",
|
|
21
|
-
i0.ɵɵ
|
|
22
|
+
i0.ɵɵelement(0, "i", 36);
|
|
23
|
+
i0.ɵɵelementStart(1, "span", 6);
|
|
24
|
+
i0.ɵɵtext(2, "Pause");
|
|
25
|
+
i0.ɵɵelementEnd();
|
|
22
26
|
} }
|
|
23
|
-
function
|
|
27
|
+
function EventMonitorComponent_Conditional_46_Template(rf, ctx) { if (rf & 1) {
|
|
24
28
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
25
|
-
i0.ɵɵelementStart(0, "button",
|
|
26
|
-
i0.ɵɵlistener("click", function
|
|
27
|
-
i0.ɵɵelement(1, "i",
|
|
29
|
+
i0.ɵɵelementStart(0, "button", 37);
|
|
30
|
+
i0.ɵɵlistener("click", function EventMonitorComponent_Conditional_46_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.Filter = ""); });
|
|
31
|
+
i0.ɵɵelement(1, "i", 38);
|
|
28
32
|
i0.ɵɵelementEnd();
|
|
29
33
|
} }
|
|
30
|
-
function
|
|
31
|
-
i0.ɵɵelementStart(0, "option",
|
|
34
|
+
function EventMonitorComponent_For_54_Template(rf, ctx) { if (rf & 1) {
|
|
35
|
+
i0.ɵɵelementStart(0, "option", 23);
|
|
32
36
|
i0.ɵɵtext(1);
|
|
33
37
|
i0.ɵɵelementEnd();
|
|
34
38
|
} if (rf & 2) {
|
|
@@ -37,8 +41,8 @@ function EventMonitorComponent_For_53_Template(rf, ctx) { if (rf & 1) {
|
|
|
37
41
|
i0.ɵɵadvance();
|
|
38
42
|
i0.ɵɵtextInterpolate(t_r3);
|
|
39
43
|
} }
|
|
40
|
-
function
|
|
41
|
-
i0.ɵɵelementStart(0, "option",
|
|
44
|
+
function EventMonitorComponent_For_62_Template(rf, ctx) { if (rf & 1) {
|
|
45
|
+
i0.ɵɵelementStart(0, "option", 23);
|
|
42
46
|
i0.ɵɵtext(1);
|
|
43
47
|
i0.ɵɵelementEnd();
|
|
44
48
|
} if (rf & 2) {
|
|
@@ -47,8 +51,8 @@ function EventMonitorComponent_For_61_Template(rf, ctx) { if (rf & 1) {
|
|
|
47
51
|
i0.ɵɵadvance();
|
|
48
52
|
i0.ɵɵtextInterpolate(c_r4);
|
|
49
53
|
} }
|
|
50
|
-
function
|
|
51
|
-
i0.ɵɵelementStart(0, "option",
|
|
54
|
+
function EventMonitorComponent_Conditional_63_For_7_Template(rf, ctx) { if (rf & 1) {
|
|
55
|
+
i0.ɵɵelementStart(0, "option", 23);
|
|
52
56
|
i0.ɵɵtext(1);
|
|
53
57
|
i0.ɵɵelementEnd();
|
|
54
58
|
} if (rf & 2) {
|
|
@@ -57,18 +61,18 @@ function EventMonitorComponent_Conditional_62_For_7_Template(rf, ctx) { if (rf &
|
|
|
57
61
|
i0.ɵɵadvance();
|
|
58
62
|
i0.ɵɵtextInterpolate(c_r6);
|
|
59
63
|
} }
|
|
60
|
-
function
|
|
64
|
+
function EventMonitorComponent_Conditional_63_Template(rf, ctx) { if (rf & 1) {
|
|
61
65
|
const _r5 = i0.ɵɵgetCurrentView();
|
|
62
|
-
i0.ɵɵelementStart(0, "div",
|
|
66
|
+
i0.ɵɵelementStart(0, "div", 19)(1, "label", 20);
|
|
63
67
|
i0.ɵɵtext(2, "Code");
|
|
64
68
|
i0.ɵɵelementEnd();
|
|
65
|
-
i0.ɵɵelementStart(3, "select",
|
|
66
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
67
|
-
i0.ɵɵlistener("ngModelChange", function
|
|
68
|
-
i0.ɵɵelementStart(4, "option",
|
|
69
|
+
i0.ɵɵelementStart(3, "select", 21);
|
|
70
|
+
i0.ɵɵtwoWayListener("ngModelChange", function EventMonitorComponent_Conditional_63_Template_select_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.CodeFilter, $event) || (ctx_r1.CodeFilter = $event); return i0.ɵɵresetView($event); });
|
|
71
|
+
i0.ɵɵlistener("ngModelChange", function EventMonitorComponent_Conditional_63_Template_select_ngModelChange_3_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.PersistPrefs()); });
|
|
72
|
+
i0.ɵɵelementStart(4, "option", 22);
|
|
69
73
|
i0.ɵɵtext(5);
|
|
70
74
|
i0.ɵɵelementEnd();
|
|
71
|
-
i0.ɵɵrepeaterCreate(6,
|
|
75
|
+
i0.ɵɵrepeaterCreate(6, EventMonitorComponent_Conditional_63_For_7_Template, 2, 2, "option", 23, i0.ɵɵrepeaterTrackByIdentity);
|
|
72
76
|
i0.ɵɵelementEnd()();
|
|
73
77
|
} if (rf & 2) {
|
|
74
78
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
@@ -79,53 +83,53 @@ function EventMonitorComponent_Conditional_62_Template(rf, ctx) { if (rf & 1) {
|
|
|
79
83
|
i0.ɵɵadvance();
|
|
80
84
|
i0.ɵɵrepeater(ctx_r1.KnownCodes);
|
|
81
85
|
} }
|
|
82
|
-
function
|
|
86
|
+
function EventMonitorComponent_Conditional_64_Template(rf, ctx) { if (rf & 1) {
|
|
83
87
|
const _r7 = i0.ɵɵgetCurrentView();
|
|
84
|
-
i0.ɵɵelementStart(0, "button",
|
|
85
|
-
i0.ɵɵlistener("click", function
|
|
86
|
-
i0.ɵɵelement(1, "i",
|
|
88
|
+
i0.ɵɵelementStart(0, "button", 39);
|
|
89
|
+
i0.ɵɵlistener("click", function EventMonitorComponent_Conditional_64_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.ClearFilters()); });
|
|
90
|
+
i0.ɵɵelement(1, "i", 38);
|
|
87
91
|
i0.ɵɵtext(2, " Clear filters ");
|
|
88
92
|
i0.ɵɵelementEnd();
|
|
89
93
|
} }
|
|
90
|
-
function
|
|
91
|
-
i0.ɵɵelement(0, "i",
|
|
94
|
+
function EventMonitorComponent_Conditional_69_Template(rf, ctx) { if (rf & 1) {
|
|
95
|
+
i0.ɵɵelement(0, "i", 40);
|
|
92
96
|
} if (rf & 2) {
|
|
93
97
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
94
98
|
i0.ɵɵclassProp("fa-arrow-down", ctx_r1.SortDir === "desc")("fa-arrow-up", ctx_r1.SortDir === "asc");
|
|
95
99
|
} }
|
|
96
|
-
function
|
|
97
|
-
i0.ɵɵelement(0, "i",
|
|
100
|
+
function EventMonitorComponent_Conditional_72_Template(rf, ctx) { if (rf & 1) {
|
|
101
|
+
i0.ɵɵelement(0, "i", 40);
|
|
98
102
|
} if (rf & 2) {
|
|
99
103
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
100
104
|
i0.ɵɵclassProp("fa-arrow-down", ctx_r1.SortDir === "desc")("fa-arrow-up", ctx_r1.SortDir === "asc");
|
|
101
105
|
} }
|
|
102
|
-
function
|
|
103
|
-
i0.ɵɵelement(0, "i",
|
|
106
|
+
function EventMonitorComponent_Conditional_75_Template(rf, ctx) { if (rf & 1) {
|
|
107
|
+
i0.ɵɵelement(0, "i", 40);
|
|
104
108
|
} if (rf & 2) {
|
|
105
109
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
106
110
|
i0.ɵɵclassProp("fa-arrow-down", ctx_r1.SortDir === "desc")("fa-arrow-up", ctx_r1.SortDir === "asc");
|
|
107
111
|
} }
|
|
108
|
-
function
|
|
109
|
-
i0.ɵɵelement(0, "i",
|
|
112
|
+
function EventMonitorComponent_Conditional_78_Template(rf, ctx) { if (rf & 1) {
|
|
113
|
+
i0.ɵɵelement(0, "i", 40);
|
|
110
114
|
} if (rf & 2) {
|
|
111
115
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
112
116
|
i0.ɵɵclassProp("fa-arrow-down", ctx_r1.SortDir === "desc")("fa-arrow-up", ctx_r1.SortDir === "asc");
|
|
113
117
|
} }
|
|
114
|
-
function
|
|
115
|
-
i0.ɵɵelement(0, "i",
|
|
116
|
-
i0.ɵɵelementStart(1, "div",
|
|
118
|
+
function EventMonitorComponent_Conditional_82_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
119
|
+
i0.ɵɵelement(0, "i", 41);
|
|
120
|
+
i0.ɵɵelementStart(1, "div", 42);
|
|
117
121
|
i0.ɵɵtext(2, "Listening for events\u2026");
|
|
118
122
|
i0.ɵɵelementEnd();
|
|
119
|
-
i0.ɵɵelementStart(3, "div",
|
|
123
|
+
i0.ɵɵelementStart(3, "div", 43);
|
|
120
124
|
i0.ɵɵtext(4, "Trigger an action \u2014 saves, navigation, AI events all show up here.");
|
|
121
125
|
i0.ɵɵelementEnd();
|
|
122
126
|
} }
|
|
123
|
-
function
|
|
124
|
-
i0.ɵɵelement(0, "i",
|
|
125
|
-
i0.ɵɵelementStart(1, "div",
|
|
127
|
+
function EventMonitorComponent_Conditional_82_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
128
|
+
i0.ɵɵelement(0, "i", 44);
|
|
129
|
+
i0.ɵɵelementStart(1, "div", 42);
|
|
126
130
|
i0.ɵɵtext(2, "Capture is paused");
|
|
127
131
|
i0.ɵɵelementEnd();
|
|
128
|
-
i0.ɵɵelementStart(3, "div",
|
|
132
|
+
i0.ɵɵelementStart(3, "div", 43);
|
|
129
133
|
i0.ɵɵtext(4);
|
|
130
134
|
i0.ɵɵelementEnd();
|
|
131
135
|
} if (rf & 2) {
|
|
@@ -133,12 +137,12 @@ function EventMonitorComponent_Conditional_81_Conditional_2_Template(rf, ctx) {
|
|
|
133
137
|
i0.ɵɵadvance(4);
|
|
134
138
|
i0.ɵɵtextInterpolate1("", ctx_r1.Stats.captured, " events fired since you paused. Click Resume to start collecting again.");
|
|
135
139
|
} }
|
|
136
|
-
function
|
|
137
|
-
i0.ɵɵelement(0, "i",
|
|
138
|
-
i0.ɵɵelementStart(1, "div",
|
|
140
|
+
function EventMonitorComponent_Conditional_82_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
141
|
+
i0.ɵɵelement(0, "i", 45);
|
|
142
|
+
i0.ɵɵelementStart(1, "div", 42);
|
|
139
143
|
i0.ɵɵtext(2, "No events match your filter");
|
|
140
144
|
i0.ɵɵelementEnd();
|
|
141
|
-
i0.ɵɵelementStart(3, "div",
|
|
145
|
+
i0.ɵɵelementStart(3, "div", 43);
|
|
142
146
|
i0.ɵɵtext(4);
|
|
143
147
|
i0.ɵɵelementEnd();
|
|
144
148
|
} if (rf & 2) {
|
|
@@ -146,17 +150,17 @@ function EventMonitorComponent_Conditional_81_Conditional_3_Template(rf, ctx) {
|
|
|
146
150
|
i0.ɵɵadvance(4);
|
|
147
151
|
i0.ɵɵtextInterpolate1("", ctx_r1.Stats.kept, " events in buffer \u00B7 clear filters to see them.");
|
|
148
152
|
} }
|
|
149
|
-
function
|
|
150
|
-
i0.ɵɵelementStart(0, "div",
|
|
151
|
-
i0.ɵɵconditionalCreate(1,
|
|
153
|
+
function EventMonitorComponent_Conditional_82_Template(rf, ctx) { if (rf & 1) {
|
|
154
|
+
i0.ɵɵelementStart(0, "div", 34);
|
|
155
|
+
i0.ɵɵconditionalCreate(1, EventMonitorComponent_Conditional_82_Conditional_1_Template, 5, 0)(2, EventMonitorComponent_Conditional_82_Conditional_2_Template, 5, 1)(3, EventMonitorComponent_Conditional_82_Conditional_3_Template, 5, 1);
|
|
152
156
|
i0.ɵɵelementEnd();
|
|
153
157
|
} if (rf & 2) {
|
|
154
158
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
155
159
|
i0.ɵɵadvance();
|
|
156
160
|
i0.ɵɵconditional(ctx_r1.Stats.captured === 0 ? 1 : ctx_r1.Paused ? 2 : 3);
|
|
157
161
|
} }
|
|
158
|
-
function
|
|
159
|
-
i0.ɵɵelementStart(0, "pre",
|
|
162
|
+
function EventMonitorComponent_Conditional_83_For_1_Conditional_16_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
163
|
+
i0.ɵɵelementStart(0, "pre", 57)(1, "code");
|
|
160
164
|
i0.ɵɵtext(2);
|
|
161
165
|
i0.ɵɵpipe(3, "json");
|
|
162
166
|
i0.ɵɵelementEnd()();
|
|
@@ -165,45 +169,45 @@ function EventMonitorComponent_Conditional_82_For_1_Conditional_16_Conditional_0
|
|
|
165
169
|
i0.ɵɵadvance(2);
|
|
166
170
|
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 1, evt_r9.args));
|
|
167
171
|
} }
|
|
168
|
-
function
|
|
169
|
-
i0.ɵɵelementStart(0, "div",
|
|
170
|
-
i0.ɵɵelement(1, "i",
|
|
172
|
+
function EventMonitorComponent_Conditional_83_For_1_Conditional_16_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
173
|
+
i0.ɵɵelementStart(0, "div", 58);
|
|
174
|
+
i0.ɵɵelement(1, "i", 59);
|
|
171
175
|
i0.ɵɵelementStart(2, "span");
|
|
172
176
|
i0.ɵɵtext(3, "This event has no payload.");
|
|
173
177
|
i0.ɵɵelementEnd()();
|
|
174
178
|
} }
|
|
175
|
-
function
|
|
176
|
-
i0.ɵɵconditionalCreate(0,
|
|
179
|
+
function EventMonitorComponent_Conditional_83_For_1_Conditional_16_Template(rf, ctx) { if (rf & 1) {
|
|
180
|
+
i0.ɵɵconditionalCreate(0, EventMonitorComponent_Conditional_83_For_1_Conditional_16_Conditional_0_Template, 4, 3, "pre", 57)(1, EventMonitorComponent_Conditional_83_For_1_Conditional_16_Conditional_1_Template, 4, 0, "div", 58);
|
|
177
181
|
} if (rf & 2) {
|
|
178
182
|
const evt_r9 = i0.ɵɵnextContext().$implicit;
|
|
179
183
|
i0.ɵɵconditional(evt_r9.hasPayload ? 0 : 1);
|
|
180
184
|
} }
|
|
181
|
-
function
|
|
185
|
+
function EventMonitorComponent_Conditional_83_For_1_Template(rf, ctx) { if (rf & 1) {
|
|
182
186
|
const _r8 = i0.ɵɵgetCurrentView();
|
|
183
|
-
i0.ɵɵelementStart(0, "div",
|
|
184
|
-
i0.ɵɵlistener("click", function
|
|
185
|
-
i0.ɵɵelement(2, "i",
|
|
186
|
-
i0.ɵɵelementStart(3, "span",
|
|
187
|
+
i0.ɵɵelementStart(0, "div", 47)(1, "div", 48);
|
|
188
|
+
i0.ɵɵlistener("click", function EventMonitorComponent_Conditional_83_For_1_Template_div_click_1_listener() { const evt_r9 = i0.ɵɵrestoreView(_r8).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.ToggleRow(evt_r9)); });
|
|
189
|
+
i0.ɵɵelement(2, "i", 49);
|
|
190
|
+
i0.ɵɵelementStart(3, "span", 50);
|
|
187
191
|
i0.ɵɵtext(4);
|
|
188
192
|
i0.ɵɵpipe(5, "date");
|
|
189
193
|
i0.ɵɵelementEnd();
|
|
190
|
-
i0.ɵɵelementStart(6, "span",
|
|
194
|
+
i0.ɵɵelementStart(6, "span", 51);
|
|
191
195
|
i0.ɵɵtext(7);
|
|
192
196
|
i0.ɵɵelementEnd();
|
|
193
|
-
i0.ɵɵelementStart(8, "span",
|
|
197
|
+
i0.ɵɵelementStart(8, "span", 52);
|
|
194
198
|
i0.ɵɵtext(9);
|
|
195
199
|
i0.ɵɵelementEnd();
|
|
196
|
-
i0.ɵɵelementStart(10, "span",
|
|
200
|
+
i0.ɵɵelementStart(10, "span", 53);
|
|
197
201
|
i0.ɵɵtext(11);
|
|
198
202
|
i0.ɵɵelementEnd();
|
|
199
|
-
i0.ɵɵelementStart(12, "span",
|
|
203
|
+
i0.ɵɵelementStart(12, "span", 54);
|
|
200
204
|
i0.ɵɵtext(13);
|
|
201
205
|
i0.ɵɵelementEnd();
|
|
202
|
-
i0.ɵɵelementStart(14, "button",
|
|
203
|
-
i0.ɵɵlistener("click", function
|
|
204
|
-
i0.ɵɵelement(15, "i",
|
|
206
|
+
i0.ɵɵelementStart(14, "button", 55);
|
|
207
|
+
i0.ɵɵlistener("click", function EventMonitorComponent_Conditional_83_For_1_Template_button_click_14_listener($event) { const evt_r9 = i0.ɵɵrestoreView(_r8).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); $event.stopPropagation(); return i0.ɵɵresetView(ctx_r1.OnCopyRow(evt_r9)); });
|
|
208
|
+
i0.ɵɵelement(15, "i", 56);
|
|
205
209
|
i0.ɵɵelementEnd()();
|
|
206
|
-
i0.ɵɵconditionalCreate(16,
|
|
210
|
+
i0.ɵɵconditionalCreate(16, EventMonitorComponent_Conditional_83_For_1_Conditional_16_Template, 2, 1);
|
|
207
211
|
i0.ɵɵelementEnd();
|
|
208
212
|
} if (rf & 2) {
|
|
209
213
|
const evt_r9 = ctx.$implicit;
|
|
@@ -229,8 +233,8 @@ function EventMonitorComponent_Conditional_82_For_1_Template(rf, ctx) { if (rf &
|
|
|
229
233
|
i0.ɵɵadvance(3);
|
|
230
234
|
i0.ɵɵconditional(evt_r9.expanded ? 16 : -1);
|
|
231
235
|
} }
|
|
232
|
-
function
|
|
233
|
-
i0.ɵɵrepeaterCreate(0,
|
|
236
|
+
function EventMonitorComponent_Conditional_83_Template(rf, ctx) { if (rf & 1) {
|
|
237
|
+
i0.ɵɵrepeaterCreate(0, EventMonitorComponent_Conditional_83_For_1_Template, 17, 17, "div", 46, i0.ɵɵcomponentInstance().TrackBySeq, true);
|
|
234
238
|
} if (rf & 2) {
|
|
235
239
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
236
240
|
i0.ɵɵrepeater(ctx_r1.FilteredEvents);
|
|
@@ -476,114 +480,115 @@ let EventMonitorComponent = class EventMonitorComponent extends BaseResourceComp
|
|
|
476
480
|
return String(args);
|
|
477
481
|
}
|
|
478
482
|
static ɵfac = function EventMonitorComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || EventMonitorComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
|
|
479
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: EventMonitorComponent, selectors: [["mj-event-monitor"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls:
|
|
483
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: EventMonitorComponent, selectors: [["mj-event-monitor"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 84, vars: 32, consts: [[1, "mj-inspector", "mj-inspector--solo"], ["Role", "region", "AriaLabel", "Event monitor", "Title", "Event Monitor", "Subtitle", "Live tail of MJGlobal events with filter and pause"], ["actions", ""], ["mjButton", "", "variant", "secondary", "size", "sm", 3, "click", "title"], ["mjButton", "", "variant", "secondary", "size", "sm", "title", "Clear all captured events", 3, "click"], ["aria-hidden", "true", 1, "fa-solid", "fa-broom"], [1, "mj-action-label"], [1, "em-stats"], [1, "em-stat"], [1, "em-pulse"], [1, "em-stat-value"], [1, "em-stat-label"], [1, "em-stat", "em-stat--right"], [1, "em-stat-value", "em-stat-value--small"], [1, "em-toolbar"], [1, "em-search-wrap"], [1, "fa-solid", "fa-search", "em-search-icon"], ["type", "search", "placeholder", "Filter by type, component, payload\u2026", 1, "em-search", 3, "ngModelChange", "ngModel"], ["title", "Clear", 1, "em-search-clear"], [1, "em-select-wrap"], [1, "em-select-label"], [1, "em-select", 3, "ngModelChange", "ngModel"], ["value", ""], [3, "value"], ["type", "button", "title", "Clear all filters", 1, "em-clear-filters"], [1, "em-list"], [1, "em-table-head"], ["type", "button", 1, "em-th", "em-th--time", 3, "click"], [1, "fa-solid", 3, "fa-arrow-down", "fa-arrow-up"], ["type", "button", 1, "em-th", "em-th--type", 3, "click"], ["type", "button", 1, "em-th", "em-th--code", 3, "click"], ["type", "button", 1, "em-th", "em-th--component", 3, "click"], [1, "em-th", "em-th--summary"], [1, "em-th", "em-th--actions"], [1, "em-empty"], ["aria-hidden", "true", 1, "fa-solid", "fa-play"], ["aria-hidden", "true", 1, "fa-solid", "fa-pause"], ["title", "Clear", 1, "em-search-clear", 3, "click"], [1, "fa-solid", "fa-xmark"], ["type", "button", "title", "Clear all filters", 1, "em-clear-filters", 3, "click"], [1, "fa-solid"], [1, "fa-solid", "fa-radio", "em-empty-icon"], [1, "em-empty-title"], [1, "em-empty-sub"], [1, "fa-solid", "fa-pause", "em-empty-icon"], [1, "fa-solid", "fa-filter", "em-empty-icon"], [1, "em-row", 3, "em-row--expanded"], [1, "em-row"], [1, "em-row-head", 3, "click"], [1, "em-row-chev", "fa-solid", "fa-chevron-right"], [1, "em-row-time"], [1, "em-row-type"], [1, "em-row-code"], [1, "em-row-component", 3, "title"], [1, "em-row-summary"], ["type", "button", "title", "Copy as JSON", 1, "em-row-copy", 3, "click"], [1, "fa-solid", "fa-clipboard"], [1, "em-row-payload"], [1, "em-row-no-payload"], [1, "fa-regular", "fa-circle"]], template: function EventMonitorComponent_Template(rf, ctx) { if (rf & 1) {
|
|
480
484
|
i0.ɵɵelementStart(0, "div", 0)(1, "mj-page-header-interior", 1)(2, "div", 2)(3, "button", 3);
|
|
481
485
|
i0.ɵɵlistener("click", function EventMonitorComponent_Template_button_click_3_listener() { return ctx.TogglePause(); });
|
|
482
|
-
i0.ɵɵconditionalCreate(4, EventMonitorComponent_Conditional_4_Template,
|
|
486
|
+
i0.ɵɵconditionalCreate(4, EventMonitorComponent_Conditional_4_Template, 3, 0)(5, EventMonitorComponent_Conditional_5_Template, 3, 0);
|
|
483
487
|
i0.ɵɵelementEnd();
|
|
484
488
|
i0.ɵɵelementStart(6, "button", 4);
|
|
485
489
|
i0.ɵɵlistener("click", function EventMonitorComponent_Template_button_click_6_listener() { return ctx.Clear(); });
|
|
486
490
|
i0.ɵɵelement(7, "i", 5);
|
|
487
|
-
i0.ɵɵ
|
|
488
|
-
i0.ɵɵ
|
|
489
|
-
i0.ɵɵ
|
|
490
|
-
i0.ɵɵ
|
|
491
|
-
i0.ɵɵ
|
|
492
|
-
i0.ɵɵ
|
|
491
|
+
i0.ɵɵelementStart(8, "span", 6);
|
|
492
|
+
i0.ɵɵtext(9, "Clear");
|
|
493
|
+
i0.ɵɵelementEnd()()()();
|
|
494
|
+
i0.ɵɵelementStart(10, "div", 7)(11, "div", 8);
|
|
495
|
+
i0.ɵɵelement(12, "i", 9);
|
|
496
|
+
i0.ɵɵelementStart(13, "div")(14, "div", 10);
|
|
497
|
+
i0.ɵɵtext(15);
|
|
493
498
|
i0.ɵɵelementEnd();
|
|
494
|
-
i0.ɵɵelementStart(
|
|
495
|
-
i0.ɵɵtext(
|
|
499
|
+
i0.ɵɵelementStart(16, "div", 11);
|
|
500
|
+
i0.ɵɵtext(17);
|
|
496
501
|
i0.ɵɵelementEnd()()();
|
|
497
|
-
i0.ɵɵelementStart(
|
|
498
|
-
i0.ɵɵtext(
|
|
502
|
+
i0.ɵɵelementStart(18, "div", 8)(19, "div")(20, "div", 10);
|
|
503
|
+
i0.ɵɵtext(21);
|
|
499
504
|
i0.ɵɵelementEnd();
|
|
500
|
-
i0.ɵɵelementStart(
|
|
501
|
-
i0.ɵɵtext(
|
|
505
|
+
i0.ɵɵelementStart(22, "div", 11);
|
|
506
|
+
i0.ɵɵtext(23, "Total captured");
|
|
502
507
|
i0.ɵɵelementEnd()()();
|
|
503
|
-
i0.ɵɵelementStart(
|
|
504
|
-
i0.ɵɵtext(
|
|
508
|
+
i0.ɵɵelementStart(24, "div", 8)(25, "div")(26, "div", 10);
|
|
509
|
+
i0.ɵɵtext(27);
|
|
505
510
|
i0.ɵɵelementEnd();
|
|
506
|
-
i0.ɵɵelementStart(
|
|
507
|
-
i0.ɵɵtext(
|
|
511
|
+
i0.ɵɵelementStart(28, "div", 11);
|
|
512
|
+
i0.ɵɵtext(29, "In buffer");
|
|
508
513
|
i0.ɵɵelementEnd()()();
|
|
509
|
-
i0.ɵɵelementStart(
|
|
510
|
-
i0.ɵɵtext(
|
|
514
|
+
i0.ɵɵelementStart(30, "div", 8)(31, "div")(32, "div", 10);
|
|
515
|
+
i0.ɵɵtext(33);
|
|
511
516
|
i0.ɵɵelementEnd();
|
|
512
|
-
i0.ɵɵelementStart(
|
|
513
|
-
i0.ɵɵtext(
|
|
517
|
+
i0.ɵɵelementStart(34, "div", 11);
|
|
518
|
+
i0.ɵɵtext(35, "Last second");
|
|
514
519
|
i0.ɵɵelementEnd()()();
|
|
515
|
-
i0.ɵɵelementStart(
|
|
516
|
-
i0.ɵɵtext(
|
|
520
|
+
i0.ɵɵelementStart(36, "div", 12)(37, "div")(38, "div", 13);
|
|
521
|
+
i0.ɵɵtext(39);
|
|
517
522
|
i0.ɵɵelementEnd();
|
|
518
|
-
i0.ɵɵelementStart(
|
|
519
|
-
i0.ɵɵtext(
|
|
523
|
+
i0.ɵɵelementStart(40, "div", 11);
|
|
524
|
+
i0.ɵɵtext(41, "Watching for");
|
|
520
525
|
i0.ɵɵelementEnd()()()();
|
|
521
|
-
i0.ɵɵelementStart(
|
|
522
|
-
i0.ɵɵelement(
|
|
523
|
-
i0.ɵɵelementStart(
|
|
524
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
525
|
-
i0.ɵɵlistener("ngModelChange", function
|
|
526
|
+
i0.ɵɵelementStart(42, "div", 14)(43, "div", 15);
|
|
527
|
+
i0.ɵɵelement(44, "i", 16);
|
|
528
|
+
i0.ɵɵelementStart(45, "input", 17);
|
|
529
|
+
i0.ɵɵtwoWayListener("ngModelChange", function EventMonitorComponent_Template_input_ngModelChange_45_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.Filter, $event) || (ctx.Filter = $event); return $event; });
|
|
530
|
+
i0.ɵɵlistener("ngModelChange", function EventMonitorComponent_Template_input_ngModelChange_45_listener() { return ctx.PersistPrefs(); });
|
|
526
531
|
i0.ɵɵelementEnd();
|
|
527
|
-
i0.ɵɵconditionalCreate(
|
|
532
|
+
i0.ɵɵconditionalCreate(46, EventMonitorComponent_Conditional_46_Template, 2, 0, "button", 18);
|
|
528
533
|
i0.ɵɵelementEnd();
|
|
529
|
-
i0.ɵɵelementStart(
|
|
530
|
-
i0.ɵɵtext(
|
|
534
|
+
i0.ɵɵelementStart(47, "div", 19)(48, "label", 20);
|
|
535
|
+
i0.ɵɵtext(49, "Type");
|
|
531
536
|
i0.ɵɵelementEnd();
|
|
532
|
-
i0.ɵɵelementStart(
|
|
533
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
534
|
-
i0.ɵɵlistener("ngModelChange", function
|
|
535
|
-
i0.ɵɵelementStart(
|
|
536
|
-
i0.ɵɵtext(
|
|
537
|
+
i0.ɵɵelementStart(50, "select", 21);
|
|
538
|
+
i0.ɵɵtwoWayListener("ngModelChange", function EventMonitorComponent_Template_select_ngModelChange_50_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.TypeFilter, $event) || (ctx.TypeFilter = $event); return $event; });
|
|
539
|
+
i0.ɵɵlistener("ngModelChange", function EventMonitorComponent_Template_select_ngModelChange_50_listener() { return ctx.PersistPrefs(); });
|
|
540
|
+
i0.ɵɵelementStart(51, "option", 22);
|
|
541
|
+
i0.ɵɵtext(52);
|
|
537
542
|
i0.ɵɵelementEnd();
|
|
538
|
-
i0.ɵɵrepeaterCreate(
|
|
543
|
+
i0.ɵɵrepeaterCreate(53, EventMonitorComponent_For_54_Template, 2, 2, "option", 23, i0.ɵɵrepeaterTrackByIdentity);
|
|
539
544
|
i0.ɵɵelementEnd()();
|
|
540
|
-
i0.ɵɵelementStart(
|
|
541
|
-
i0.ɵɵtext(
|
|
545
|
+
i0.ɵɵelementStart(55, "div", 19)(56, "label", 20);
|
|
546
|
+
i0.ɵɵtext(57, "Component");
|
|
542
547
|
i0.ɵɵelementEnd();
|
|
543
|
-
i0.ɵɵelementStart(
|
|
544
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
545
|
-
i0.ɵɵlistener("ngModelChange", function
|
|
546
|
-
i0.ɵɵelementStart(
|
|
547
|
-
i0.ɵɵtext(
|
|
548
|
+
i0.ɵɵelementStart(58, "select", 21);
|
|
549
|
+
i0.ɵɵtwoWayListener("ngModelChange", function EventMonitorComponent_Template_select_ngModelChange_58_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.ComponentFilter, $event) || (ctx.ComponentFilter = $event); return $event; });
|
|
550
|
+
i0.ɵɵlistener("ngModelChange", function EventMonitorComponent_Template_select_ngModelChange_58_listener() { return ctx.PersistPrefs(); });
|
|
551
|
+
i0.ɵɵelementStart(59, "option", 22);
|
|
552
|
+
i0.ɵɵtext(60);
|
|
548
553
|
i0.ɵɵelementEnd();
|
|
549
|
-
i0.ɵɵrepeaterCreate(
|
|
554
|
+
i0.ɵɵrepeaterCreate(61, EventMonitorComponent_For_62_Template, 2, 2, "option", 23, i0.ɵɵrepeaterTrackByIdentity);
|
|
550
555
|
i0.ɵɵelementEnd()();
|
|
551
|
-
i0.ɵɵconditionalCreate(
|
|
552
|
-
i0.ɵɵconditionalCreate(
|
|
556
|
+
i0.ɵɵconditionalCreate(63, EventMonitorComponent_Conditional_63_Template, 8, 2, "div", 19);
|
|
557
|
+
i0.ɵɵconditionalCreate(64, EventMonitorComponent_Conditional_64_Template, 3, 0, "button", 24);
|
|
553
558
|
i0.ɵɵelementEnd();
|
|
554
|
-
i0.ɵɵelementStart(
|
|
555
|
-
i0.ɵɵlistener("click", function
|
|
556
|
-
i0.ɵɵtext(
|
|
557
|
-
i0.ɵɵconditionalCreate(
|
|
559
|
+
i0.ɵɵelementStart(65, "div", 25)(66, "div", 26)(67, "button", 27);
|
|
560
|
+
i0.ɵɵlistener("click", function EventMonitorComponent_Template_button_click_67_listener() { return ctx.OnSortClick("time"); });
|
|
561
|
+
i0.ɵɵtext(68, " Time ");
|
|
562
|
+
i0.ɵɵconditionalCreate(69, EventMonitorComponent_Conditional_69_Template, 1, 4, "i", 28);
|
|
558
563
|
i0.ɵɵelementEnd();
|
|
559
|
-
i0.ɵɵelementStart(
|
|
560
|
-
i0.ɵɵlistener("click", function
|
|
561
|
-
i0.ɵɵtext(
|
|
562
|
-
i0.ɵɵconditionalCreate(
|
|
564
|
+
i0.ɵɵelementStart(70, "button", 29);
|
|
565
|
+
i0.ɵɵlistener("click", function EventMonitorComponent_Template_button_click_70_listener() { return ctx.OnSortClick("type"); });
|
|
566
|
+
i0.ɵɵtext(71, " Type ");
|
|
567
|
+
i0.ɵɵconditionalCreate(72, EventMonitorComponent_Conditional_72_Template, 1, 4, "i", 28);
|
|
563
568
|
i0.ɵɵelementEnd();
|
|
564
|
-
i0.ɵɵelementStart(
|
|
565
|
-
i0.ɵɵlistener("click", function
|
|
566
|
-
i0.ɵɵtext(
|
|
567
|
-
i0.ɵɵconditionalCreate(
|
|
569
|
+
i0.ɵɵelementStart(73, "button", 30);
|
|
570
|
+
i0.ɵɵlistener("click", function EventMonitorComponent_Template_button_click_73_listener() { return ctx.OnSortClick("eventCode"); });
|
|
571
|
+
i0.ɵɵtext(74, " Code ");
|
|
572
|
+
i0.ɵɵconditionalCreate(75, EventMonitorComponent_Conditional_75_Template, 1, 4, "i", 28);
|
|
568
573
|
i0.ɵɵelementEnd();
|
|
569
|
-
i0.ɵɵelementStart(
|
|
570
|
-
i0.ɵɵlistener("click", function
|
|
571
|
-
i0.ɵɵtext(
|
|
572
|
-
i0.ɵɵconditionalCreate(
|
|
574
|
+
i0.ɵɵelementStart(76, "button", 31);
|
|
575
|
+
i0.ɵɵlistener("click", function EventMonitorComponent_Template_button_click_76_listener() { return ctx.OnSortClick("component"); });
|
|
576
|
+
i0.ɵɵtext(77, " Component ");
|
|
577
|
+
i0.ɵɵconditionalCreate(78, EventMonitorComponent_Conditional_78_Template, 1, 4, "i", 28);
|
|
573
578
|
i0.ɵɵelementEnd();
|
|
574
|
-
i0.ɵɵelementStart(
|
|
575
|
-
i0.ɵɵtext(
|
|
579
|
+
i0.ɵɵelementStart(79, "span", 32);
|
|
580
|
+
i0.ɵɵtext(80, "Summary");
|
|
576
581
|
i0.ɵɵelementEnd();
|
|
577
|
-
i0.ɵɵelement(
|
|
582
|
+
i0.ɵɵelement(81, "span", 33);
|
|
578
583
|
i0.ɵɵelementEnd();
|
|
579
|
-
i0.ɵɵconditionalCreate(
|
|
584
|
+
i0.ɵɵconditionalCreate(82, EventMonitorComponent_Conditional_82_Template, 4, 1, "div", 34)(83, EventMonitorComponent_Conditional_83_Template, 2, 0);
|
|
580
585
|
i0.ɵɵelementEnd()();
|
|
581
586
|
} if (rf & 2) {
|
|
582
587
|
i0.ɵɵadvance(3);
|
|
583
588
|
i0.ɵɵproperty("title", ctx.Paused ? "Resume capture" : "Pause capture");
|
|
584
589
|
i0.ɵɵadvance();
|
|
585
590
|
i0.ɵɵconditional(ctx.Paused ? 4 : 5);
|
|
586
|
-
i0.ɵɵadvance(
|
|
591
|
+
i0.ɵɵadvance(8);
|
|
587
592
|
i0.ɵɵclassProp("em-pulse--paused", ctx.Paused);
|
|
588
593
|
i0.ɵɵadvance(3);
|
|
589
594
|
i0.ɵɵtextInterpolate(ctx.Paused ? "PAUSED" : "LIVE");
|
|
@@ -600,7 +605,7 @@ let EventMonitorComponent = class EventMonitorComponent extends BaseResourceComp
|
|
|
600
605
|
i0.ɵɵadvance(6);
|
|
601
606
|
i0.ɵɵtwoWayProperty("ngModel", ctx.Filter);
|
|
602
607
|
i0.ɵɵadvance();
|
|
603
|
-
i0.ɵɵconditional(ctx.Filter ?
|
|
608
|
+
i0.ɵɵconditional(ctx.Filter ? 46 : -1);
|
|
604
609
|
i0.ɵɵadvance(4);
|
|
605
610
|
i0.ɵɵtwoWayProperty("ngModel", ctx.TypeFilter);
|
|
606
611
|
i0.ɵɵadvance(2);
|
|
@@ -614,27 +619,27 @@ let EventMonitorComponent = class EventMonitorComponent extends BaseResourceComp
|
|
|
614
619
|
i0.ɵɵadvance();
|
|
615
620
|
i0.ɵɵrepeater(ctx.KnownComponents);
|
|
616
621
|
i0.ɵɵadvance(2);
|
|
617
|
-
i0.ɵɵconditional(ctx.KnownCodes.length > 0 ?
|
|
622
|
+
i0.ɵɵconditional(ctx.KnownCodes.length > 0 ? 63 : -1);
|
|
618
623
|
i0.ɵɵadvance();
|
|
619
|
-
i0.ɵɵconditional(ctx.HasActiveFilters ?
|
|
624
|
+
i0.ɵɵconditional(ctx.HasActiveFilters ? 64 : -1);
|
|
620
625
|
i0.ɵɵadvance(3);
|
|
621
626
|
i0.ɵɵclassProp("em-th--sorted", ctx.SortField === "time");
|
|
622
627
|
i0.ɵɵadvance(2);
|
|
623
|
-
i0.ɵɵconditional(ctx.SortField === "time" ?
|
|
628
|
+
i0.ɵɵconditional(ctx.SortField === "time" ? 69 : -1);
|
|
624
629
|
i0.ɵɵadvance();
|
|
625
630
|
i0.ɵɵclassProp("em-th--sorted", ctx.SortField === "type");
|
|
626
631
|
i0.ɵɵadvance(2);
|
|
627
|
-
i0.ɵɵconditional(ctx.SortField === "type" ?
|
|
632
|
+
i0.ɵɵconditional(ctx.SortField === "type" ? 72 : -1);
|
|
628
633
|
i0.ɵɵadvance();
|
|
629
634
|
i0.ɵɵclassProp("em-th--sorted", ctx.SortField === "eventCode");
|
|
630
635
|
i0.ɵɵadvance(2);
|
|
631
|
-
i0.ɵɵconditional(ctx.SortField === "eventCode" ?
|
|
636
|
+
i0.ɵɵconditional(ctx.SortField === "eventCode" ? 75 : -1);
|
|
632
637
|
i0.ɵɵadvance();
|
|
633
638
|
i0.ɵɵclassProp("em-th--sorted", ctx.SortField === "component");
|
|
634
639
|
i0.ɵɵadvance(2);
|
|
635
|
-
i0.ɵɵconditional(ctx.SortField === "component" ?
|
|
640
|
+
i0.ɵɵconditional(ctx.SortField === "component" ? 78 : -1);
|
|
636
641
|
i0.ɵɵadvance(4);
|
|
637
|
-
i0.ɵɵconditional(ctx.FilteredEvents.length === 0 ?
|
|
642
|
+
i0.ɵɵconditional(ctx.FilteredEvents.length === 0 ? 82 : 83);
|
|
638
643
|
} }, dependencies: [i1.NgSelectOption, i1.ɵNgSelectMultipleOption, i1.DefaultValueAccessor, i1.SelectControlValueAccessor, i1.NgControlStatus, i1.NgModel, i2.MJButtonDirective, i2.MJPageHeaderInteriorComponent, i3.JsonPipe, i3.DatePipe], styles: ["[_nghost-%COMP%] { display: block; height: 100%; }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.mj-inspector[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n background: var(--mj-bg-page);\n color: var(--mj-text-primary);\n font-family: inherit;\n}\n\n\n\n.mj-inspector__content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-page);\n}\n.mj-inspector__content-head[_ngcontent-%COMP%] {\n padding: 12px 20px;\n border-bottom: 1px solid var(--mj-border-subtle);\n display: flex;\n align-items: center;\n justify-content: space-between;\n background: var(--mj-bg-surface-card);\n}\n.mj-inspector__content-title[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n.mj-inspector__content-meta[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n.mj-inspector__editor[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n.mj-inspector__editor[_ngcontent-%COMP%] mj-code-editor[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n display: block;\n}\n\n\n\n.mj-inspector__empty[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--mj-text-muted);\n font-size: 13px;\n}", ".mj-inspector--solo[_ngcontent-%COMP%] { background: var(--mj-bg-page); }\n\n\n\n.em-stats[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n padding: 14px 20px;\n border-bottom: 1px solid var(--mj-border-subtle);\n background: var(--mj-bg-surface);\n align-items: center;\n}\n.em-stat[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 8px 14px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-subtle);\n border-radius: 10px;\n min-width: 130px;\n}\n.em-stat--right[_ngcontent-%COMP%] { margin-left: auto; }\n.em-stat-value[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 700;\n color: var(--mj-text-primary);\n letter-spacing: -0.3px;\n line-height: 1;\n}\n.em-stat-value--small[_ngcontent-%COMP%] { font-size: 13px; }\n.em-stat-label[_ngcontent-%COMP%] {\n font-size: 10px;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n font-weight: 600;\n letter-spacing: 0.5px;\n margin-top: 4px;\n}\n\n\n\n.em-pulse[_ngcontent-%COMP%] {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n background: var(--mj-status-success);\n box-shadow: 0 0 0 0 var(--mj-status-success);\n animation: _ngcontent-%COMP%_em-pulse-anim 1.6s ease-out infinite;\n}\n.em-pulse--paused[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n box-shadow: none;\n animation: none;\n}\n@keyframes _ngcontent-%COMP%_em-pulse-anim {\n 0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--mj-status-success) 70%, transparent); }\n 70% { box-shadow: 0 0 0 8px color-mix(in srgb, var(--mj-status-success) 0%, transparent); }\n 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--mj-status-success) 0%, transparent); }\n}\n@media (prefers-reduced-motion: reduce) { .em-pulse[_ngcontent-%COMP%] { animation: none; } }\n\n\n\n.em-toolbar[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-end;\n gap: 10px;\n padding: 10px 20px;\n border-bottom: 1px solid var(--mj-border-subtle);\n background: var(--mj-bg-surface);\n flex-wrap: wrap;\n}\n.em-search-wrap[_ngcontent-%COMP%] {\n position: relative;\n width: 280px;\n flex-shrink: 0;\n}\n.em-select-wrap[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 3px;\n min-width: 0;\n}\n.em-select-label[_ngcontent-%COMP%] {\n font-size: 9.5px;\n font-weight: 700;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n.em-select[_ngcontent-%COMP%] {\n padding: 6px 10px;\n border: 1px solid var(--mj-border-default);\n border-radius: 7px;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n font-size: 12px;\n font-family: inherit;\n cursor: pointer;\n min-width: 160px;\n max-width: 240px;\n}\n.em-select[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n.em-clear-filters[_ngcontent-%COMP%] {\n align-self: flex-end;\n padding: 6px 12px;\n background: transparent;\n border: 1px solid color-mix(in srgb, var(--mj-status-warning) 30%, var(--mj-border-default));\n color: color-mix(in srgb, var(--mj-status-warning) 70%, var(--mj-text-primary));\n border-radius: 7px;\n font-size: 11.5px;\n font-weight: 500;\n cursor: pointer;\n font-family: inherit;\n margin-left: auto;\n display: inline-flex;\n align-items: center;\n gap: 5px;\n}\n.em-clear-filters[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-status-warning) 8%, transparent);\n}\n.em-search-icon[_ngcontent-%COMP%] {\n position: absolute;\n left: 12px;\n top: 50%;\n transform: translateY(-50%);\n color: var(--mj-text-muted);\n font-size: 12px;\n pointer-events: none;\n}\n.em-search[_ngcontent-%COMP%] {\n width: 100%;\n padding: 7px 32px 7px 32px;\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n font-size: 12.5px;\n font-family: inherit;\n}\n.em-search[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n.em-search-clear[_ngcontent-%COMP%] {\n position: absolute;\n right: 8px; top: 50%;\n transform: translateY(-50%);\n background: transparent;\n border: none;\n color: var(--mj-text-muted);\n cursor: pointer;\n width: 22px; height: 22px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 11px;\n}\n.em-search-clear[_ngcontent-%COMP%]:hover { background: var(--mj-bg-surface-hover); color: var(--mj-text-primary); }\n\n\n\n.em-table-head[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 110px 160px 140px 200px 1fr 32px;\n gap: 12px;\n padding: 8px 20px;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-subtle);\n position: sticky;\n top: 0;\n z-index: 1;\n align-items: center;\n}\n.em-th[_ngcontent-%COMP%] {\n font-size: 10px;\n font-weight: 700;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n background: transparent;\n border: none;\n cursor: pointer;\n font-family: inherit;\n text-align: left;\n padding: 4px 0;\n display: inline-flex;\n align-items: center;\n gap: 5px;\n transition: color 0.12s;\n}\n.em-th[_ngcontent-%COMP%]:hover { color: var(--mj-text-primary); }\n.em-th--sorted[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n.em-th--sorted[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 9px; }\n.em-th--summary[_ngcontent-%COMP%], \n.em-th--actions[_ngcontent-%COMP%] {\n cursor: default;\n}\n.em-th--summary[_ngcontent-%COMP%]:hover, \n.em-th--actions[_ngcontent-%COMP%]:hover { color: var(--mj-text-muted); }\n\n\n\n.em-list[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n background: var(--mj-bg-page);\n}\n.em-row[_ngcontent-%COMP%] {\n border-bottom: 1px solid var(--mj-border-subtle);\n background: var(--mj-bg-surface);\n transition: background 0.1s;\n animation: _ngcontent-%COMP%_em-row-in 0.25s ease-out;\n}\n@keyframes _ngcontent-%COMP%_em-row-in {\n from { opacity: 0; transform: translateY(-3px); }\n to { opacity: 1; transform: translateY(0); }\n}\n@media (prefers-reduced-motion: reduce) { .em-row[_ngcontent-%COMP%] { animation: none; } }\n.em-row[_ngcontent-%COMP%]:hover { background: var(--mj-bg-surface-hover); }\n.em-row--expanded[_ngcontent-%COMP%] { background: color-mix(in srgb, var(--mj-brand-primary) 4%, var(--mj-bg-surface)); }\n.em-row--expanded[_ngcontent-%COMP%]:hover { background: color-mix(in srgb, var(--mj-brand-primary) 6%, var(--mj-bg-surface)); }\n\n.em-row-head[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 12px 96px 160px 140px 200px 1fr 32px;\n gap: 12px;\n padding: 8px 20px;\n cursor: pointer;\n font-size: 12.5px;\n align-items: center;\n}\n.em-row-chev[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 10px;\n width: 12px;\n flex-shrink: 0;\n transition: transform 0.15s;\n justify-self: start;\n}\n.em-row-chev--down[_ngcontent-%COMP%] { transform: rotate(90deg); }\n.em-row-time[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-family: 'SF Mono', Menlo, Consolas, monospace;\n font-size: 11px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.em-row-type[_ngcontent-%COMP%] {\n font-family: 'SF Mono', Menlo, Consolas, monospace;\n font-weight: 700;\n font-size: 11px;\n padding: 2px 8px;\n border-radius: 4px;\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, transparent);\n color: var(--mj-brand-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n justify-self: start;\n}\n.em-row-type[data-type=\"LoggedIn\"][_ngcontent-%COMP%] { background: color-mix(in srgb, var(--mj-status-success) 14%, transparent); color: color-mix(in srgb, var(--mj-status-success) 70%, var(--mj-text-primary)); }\n.em-row-type[data-type=\"LoggedOut\"][_ngcontent-%COMP%], \n.em-row-type[data-type=\"LoginFailed\"][_ngcontent-%COMP%], \n.em-row-type[data-type=\"LogoutFailed\"][_ngcontent-%COMP%] { background: color-mix(in srgb, var(--mj-status-error) 14%, transparent); color: color-mix(in srgb, var(--mj-status-error) 70%, var(--mj-text-primary)); }\n.em-row-type[data-type=\"DisplaySimpleNotificationRequest\"][_ngcontent-%COMP%] { background: color-mix(in srgb, var(--mj-status-warning) 14%, transparent); color: color-mix(in srgb, var(--mj-status-warning) 70%, var(--mj-text-primary)); }\n.em-row-type[data-type=\"ManualResizeRequest\"][_ngcontent-%COMP%] { background: color-mix(in srgb, #7c3aed 12%, transparent); color: #5b21b6; }\n\n.em-row-code[_ngcontent-%COMP%] {\n font-family: 'SF Mono', Menlo, Consolas, monospace;\n font-size: 11px;\n color: var(--mj-text-secondary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.em-row-component[_ngcontent-%COMP%] {\n font-size: 11.5px;\n color: var(--mj-text-secondary);\n font-family: 'SF Mono', Menlo, Consolas, monospace;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.em-row-summary[_ngcontent-%COMP%] {\n font-family: 'SF Mono', Menlo, Consolas, monospace;\n font-size: 11.5px;\n color: var(--mj-text-muted);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n min-width: 0;\n}\n.em-row-summary--empty[_ngcontent-%COMP%] { font-style: italic; opacity: 0.6; }\n\n.em-row-no-payload[_ngcontent-%COMP%] {\n margin: 0 20px 12px 50px;\n background: var(--mj-bg-surface-sunken);\n border: 1px dashed var(--mj-border-default);\n border-radius: 8px;\n padding: 14px 18px;\n color: var(--mj-text-muted);\n font-size: 12px;\n display: flex;\n align-items: center;\n gap: 10px;\n}\n.em-row-no-payload[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 14px; }\n.em-row-copy[_ngcontent-%COMP%] {\n background: transparent;\n border: 1px solid transparent;\n color: var(--mj-text-muted);\n cursor: pointer;\n padding: 4px 8px;\n border-radius: 5px;\n font-size: 11px;\n opacity: 0;\n transition: all 0.12s;\n}\n.em-row[_ngcontent-%COMP%]:hover .em-row-copy[_ngcontent-%COMP%] { opacity: 1; }\n.em-row-copy[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.em-row-payload[_ngcontent-%COMP%] {\n margin: 0 20px 12px 50px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-subtle);\n border-radius: 8px;\n padding: 12px 14px;\n font-family: 'SF Mono', Menlo, Consolas, monospace;\n font-size: 11.5px;\n color: var(--mj-text-primary);\n overflow: auto;\n max-height: 280px;\n}\n.em-row-payload[_ngcontent-%COMP%] code[_ngcontent-%COMP%] { white-space: pre-wrap; word-break: break-word; }\n\n\n\n.em-empty[_ngcontent-%COMP%] {\n padding: 80px 40px;\n text-align: center;\n color: var(--mj-text-muted);\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 12px;\n}\n.em-empty-icon[_ngcontent-%COMP%] {\n font-size: 36px;\n opacity: 0.4;\n color: var(--mj-brand-primary);\n}\n.em-empty-title[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n.em-empty-sub[_ngcontent-%COMP%] {\n font-size: 12.5px;\n max-width: 380px;\n line-height: 1.5;\n}\n\n@media (max-width: 800px) {\n .em-stats[_ngcontent-%COMP%] { flex-wrap: wrap; }\n .em-stat--right[_ngcontent-%COMP%] { margin-left: 0; }\n .em-row-component[_ngcontent-%COMP%] { display: none; }\n .em-row-time[_ngcontent-%COMP%] { min-width: 70px; }\n .em-row-payload[_ngcontent-%COMP%] { margin-left: 20px; }\n}"] });
|
|
639
644
|
};
|
|
640
645
|
EventMonitorComponent = __decorate([
|
|
@@ -643,7 +648,7 @@ EventMonitorComponent = __decorate([
|
|
|
643
648
|
export { EventMonitorComponent };
|
|
644
649
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EventMonitorComponent, [{
|
|
645
650
|
type: Component,
|
|
646
|
-
args: [{ standalone: false, selector: 'mj-event-monitor', template: "<div class=\"mj-inspector mj-inspector--solo\">\n <mj-page-header-interior\n Role=\"region\"\n AriaLabel=\"Event monitor\"\n Title=\"Event Monitor\"\n Subtitle=\"Live tail of MJGlobal events with filter and pause\">\n <div actions>\n <button mjButton\n variant=\"secondary\"\n size=\"sm\"\n (click)=\"TogglePause()\"\n [title]=\"Paused ? 'Resume capture' : 'Pause capture'\">\n @if (Paused) {\n <i class=\"fa-solid fa-play\" aria-hidden=\"true\"></i> Resume\n } @else {\n <i class=\"fa-solid fa-pause\" aria-hidden=\"true\"></i> Pause\n }\n </button>\n <button mjButton variant=\"secondary\" size=\"sm\" (click)=\"Clear()\" title=\"Clear all captured events\">\n <i class=\"fa-solid fa-broom\" aria-hidden=\"true\"></i> Clear\n </button>\n </div>\n </mj-page-header-interior>\n\n <div class=\"em-stats\">\n <div class=\"em-stat\">\n <i class=\"em-pulse\" [class.em-pulse--paused]=\"Paused\"></i>\n <div>\n <div class=\"em-stat-value\">{{ Paused ? 'PAUSED' : 'LIVE' }}</div>\n <div class=\"em-stat-label\">{{ Paused ? 'Capture suspended' : 'Capturing events' }}</div>\n </div>\n </div>\n <div class=\"em-stat\">\n <div>\n <div class=\"em-stat-value\">{{ Stats.captured }}</div>\n <div class=\"em-stat-label\">Total captured</div>\n </div>\n </div>\n <div class=\"em-stat\">\n <div>\n <div class=\"em-stat-value\">{{ Stats.kept }} / {{ MaxEvents }}</div>\n <div class=\"em-stat-label\">In buffer</div>\n </div>\n </div>\n <div class=\"em-stat\">\n <div>\n <div class=\"em-stat-value\">{{ Stats.perSecond }}/s</div>\n <div class=\"em-stat-label\">Last second</div>\n </div>\n </div>\n <div class=\"em-stat em-stat--right\">\n <div>\n <div class=\"em-stat-value em-stat-value--small\">{{ UptimeLabel }}</div>\n <div class=\"em-stat-label\">Watching for</div>\n </div>\n </div>\n </div>\n\n <div class=\"em-toolbar\">\n <div class=\"em-search-wrap\">\n <i class=\"fa-solid fa-search em-search-icon\"></i>\n <input type=\"search\"\n class=\"em-search\"\n placeholder=\"Filter by type, component, payload\u2026\"\n [(ngModel)]=\"Filter\"\n (ngModelChange)=\"PersistPrefs()\" />\n @if (Filter) {\n <button class=\"em-search-clear\" (click)=\"Filter = ''\" title=\"Clear\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n }\n </div>\n\n <div class=\"em-select-wrap\">\n <label class=\"em-select-label\">Type</label>\n <select class=\"em-select\" [(ngModel)]=\"TypeFilter\" (ngModelChange)=\"PersistPrefs()\">\n <option value=\"\">All types ({{ KnownTypes.length }})</option>\n @for (t of KnownTypes; track t) {\n <option [value]=\"t\">{{ t }}</option>\n }\n </select>\n </div>\n\n <div class=\"em-select-wrap\">\n <label class=\"em-select-label\">Component</label>\n <select class=\"em-select\" [(ngModel)]=\"ComponentFilter\" (ngModelChange)=\"PersistPrefs()\">\n <option value=\"\">All components ({{ KnownComponents.length }})</option>\n @for (c of KnownComponents; track c) {\n <option [value]=\"c\">{{ c }}</option>\n }\n </select>\n </div>\n\n @if (KnownCodes.length > 0) {\n <div class=\"em-select-wrap\">\n <label class=\"em-select-label\">Code</label>\n <select class=\"em-select\" [(ngModel)]=\"CodeFilter\" (ngModelChange)=\"PersistPrefs()\">\n <option value=\"\">All codes ({{ KnownCodes.length }})</option>\n @for (c of KnownCodes; track c) {\n <option [value]=\"c\">{{ c }}</option>\n }\n </select>\n </div>\n }\n\n @if (HasActiveFilters) {\n <button class=\"em-clear-filters\" type=\"button\" (click)=\"ClearFilters()\" title=\"Clear all filters\">\n <i class=\"fa-solid fa-xmark\"></i> Clear filters\n </button>\n }\n </div>\n\n <div class=\"em-list\">\n <div class=\"em-table-head\">\n <button type=\"button\"\n class=\"em-th em-th--time\"\n [class.em-th--sorted]=\"SortField === 'time'\"\n (click)=\"OnSortClick('time')\">\n Time\n @if (SortField === 'time') {\n <i class=\"fa-solid\" [class.fa-arrow-down]=\"SortDir === 'desc'\" [class.fa-arrow-up]=\"SortDir === 'asc'\"></i>\n }\n </button>\n <button type=\"button\"\n class=\"em-th em-th--type\"\n [class.em-th--sorted]=\"SortField === 'type'\"\n (click)=\"OnSortClick('type')\">\n Type\n @if (SortField === 'type') {\n <i class=\"fa-solid\" [class.fa-arrow-down]=\"SortDir === 'desc'\" [class.fa-arrow-up]=\"SortDir === 'asc'\"></i>\n }\n </button>\n <button type=\"button\"\n class=\"em-th em-th--code\"\n [class.em-th--sorted]=\"SortField === 'eventCode'\"\n (click)=\"OnSortClick('eventCode')\">\n Code\n @if (SortField === 'eventCode') {\n <i class=\"fa-solid\" [class.fa-arrow-down]=\"SortDir === 'desc'\" [class.fa-arrow-up]=\"SortDir === 'asc'\"></i>\n }\n </button>\n <button type=\"button\"\n class=\"em-th em-th--component\"\n [class.em-th--sorted]=\"SortField === 'component'\"\n (click)=\"OnSortClick('component')\">\n Component\n @if (SortField === 'component') {\n <i class=\"fa-solid\" [class.fa-arrow-down]=\"SortDir === 'desc'\" [class.fa-arrow-up]=\"SortDir === 'asc'\"></i>\n }\n </button>\n <span class=\"em-th em-th--summary\">Summary</span>\n <span class=\"em-th em-th--actions\"></span>\n </div>\n\n @if (FilteredEvents.length === 0) {\n <div class=\"em-empty\">\n @if (Stats.captured === 0) {\n <i class=\"fa-solid fa-radio em-empty-icon\"></i>\n <div class=\"em-empty-title\">Listening for events\u2026</div>\n <div class=\"em-empty-sub\">Trigger an action \u2014 saves, navigation, AI events all show up here.</div>\n } @else if (Paused) {\n <i class=\"fa-solid fa-pause em-empty-icon\"></i>\n <div class=\"em-empty-title\">Capture is paused</div>\n <div class=\"em-empty-sub\">{{ Stats.captured }} events fired since you paused. Click Resume to start collecting again.</div>\n } @else {\n <i class=\"fa-solid fa-filter em-empty-icon\"></i>\n <div class=\"em-empty-title\">No events match your filter</div>\n <div class=\"em-empty-sub\">{{ Stats.kept }} events in buffer \u00B7 clear filters to see them.</div>\n }\n </div>\n } @else {\n @for (evt of FilteredEvents; track TrackBySeq($index, evt)) {\n <div class=\"em-row\" [class.em-row--expanded]=\"evt.expanded\">\n <div class=\"em-row-head\" (click)=\"ToggleRow(evt)\">\n <i class=\"em-row-chev fa-solid fa-chevron-right\"\n [class.em-row-chev--down]=\"evt.expanded\"></i>\n <span class=\"em-row-time\">{{ evt.timestamp | date:'HH:mm:ss.SSS' }}</span>\n <span class=\"em-row-type\" [attr.data-type]=\"evt.type\">{{ evt.type }}</span>\n <span class=\"em-row-code\">{{ evt.eventCode || '\u2014' }}</span>\n <span class=\"em-row-component\" [title]=\"evt.componentName\">{{ evt.componentName }}</span>\n <span class=\"em-row-summary\" [class.em-row-summary--empty]=\"!evt.hasPayload\">{{ evt.summary }}</span>\n <button class=\"em-row-copy\"\n type=\"button\"\n (click)=\"$event.stopPropagation(); OnCopyRow(evt)\"\n title=\"Copy as JSON\">\n <i class=\"fa-solid fa-clipboard\"></i>\n </button>\n </div>\n @if (evt.expanded) {\n @if (evt.hasPayload) {\n <pre class=\"em-row-payload\"><code>{{ evt.args | json }}</code></pre>\n } @else {\n <div class=\"em-row-no-payload\">\n <i class=\"fa-regular fa-circle\"></i>\n <span>This event has no payload.</span>\n </div>\n }\n }\n </div>\n }\n }\n </div>\n</div>\n", styles: [":host { display: block; height: 100%; }\n\n/*\n Inspector shell \u2014 each Dev Tools sub-page wraps its body in .mj-inspector. The\n chrome (title icon, title, subtitle, action buttons) was previously rendered\n via .mj-inspector__header*, but that's been replaced by <mj-page-header-interior>\n in every inspector template. Action buttons now use the mjButton directive\n (variant=\"secondary\" / \"success\") so they inherit global button styling. App\n State + Layout inspectors used to carry an inner left rail (.mj-inspector__body\n + __sidebar + __nav-item) for L2 sections; that rail was retired 2026-05-19 in\n favor of <mj-tab-nav> projected into the chrome's [toolbar] slot, matching\n SystemDiagnostics and the API Keys tab strip. All inspectors are now \"solo\"\n mode (no sidebar).\n*/\n.mj-inspector {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n background: var(--mj-bg-page);\n color: var(--mj-text-primary);\n font-family: inherit;\n}\n\n/* Content area */\n.mj-inspector__content {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-page);\n}\n.mj-inspector__content-head {\n padding: 12px 20px;\n border-bottom: 1px solid var(--mj-border-subtle);\n display: flex;\n align-items: center;\n justify-content: space-between;\n background: var(--mj-bg-surface-card);\n}\n.mj-inspector__content-title {\n margin: 0;\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n.mj-inspector__content-meta {\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n.mj-inspector__editor {\n flex: 1;\n min-height: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n.mj-inspector__editor mj-code-editor {\n flex: 1;\n min-height: 0;\n display: block;\n}\n\n/* Empty state */\n.mj-inspector__empty {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--mj-text-muted);\n font-size: 13px;\n}\n\n", ".mj-inspector--solo { background: var(--mj-bg-page); }\n\n/* Stats row */\n.em-stats {\n display: flex;\n gap: 16px;\n padding: 14px 20px;\n border-bottom: 1px solid var(--mj-border-subtle);\n background: var(--mj-bg-surface);\n align-items: center;\n}\n.em-stat {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 8px 14px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-subtle);\n border-radius: 10px;\n min-width: 130px;\n}\n.em-stat--right { margin-left: auto; }\n.em-stat-value {\n font-size: 16px;\n font-weight: 700;\n color: var(--mj-text-primary);\n letter-spacing: -0.3px;\n line-height: 1;\n}\n.em-stat-value--small { font-size: 13px; }\n.em-stat-label {\n font-size: 10px;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n font-weight: 600;\n letter-spacing: 0.5px;\n margin-top: 4px;\n}\n\n/* Live pulse */\n.em-pulse {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n background: var(--mj-status-success);\n box-shadow: 0 0 0 0 var(--mj-status-success);\n animation: em-pulse-anim 1.6s ease-out infinite;\n}\n.em-pulse--paused {\n background: var(--mj-status-warning);\n box-shadow: none;\n animation: none;\n}\n@keyframes em-pulse-anim {\n 0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--mj-status-success) 70%, transparent); }\n 70% { box-shadow: 0 0 0 8px color-mix(in srgb, var(--mj-status-success) 0%, transparent); }\n 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--mj-status-success) 0%, transparent); }\n}\n@media (prefers-reduced-motion: reduce) { .em-pulse { animation: none; } }\n\n/* Toolbar */\n.em-toolbar {\n display: flex;\n align-items: flex-end;\n gap: 10px;\n padding: 10px 20px;\n border-bottom: 1px solid var(--mj-border-subtle);\n background: var(--mj-bg-surface);\n flex-wrap: wrap;\n}\n.em-search-wrap {\n position: relative;\n width: 280px;\n flex-shrink: 0;\n}\n.em-select-wrap {\n display: flex;\n flex-direction: column;\n gap: 3px;\n min-width: 0;\n}\n.em-select-label {\n font-size: 9.5px;\n font-weight: 700;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n.em-select {\n padding: 6px 10px;\n border: 1px solid var(--mj-border-default);\n border-radius: 7px;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n font-size: 12px;\n font-family: inherit;\n cursor: pointer;\n min-width: 160px;\n max-width: 240px;\n}\n.em-select:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n.em-clear-filters {\n align-self: flex-end;\n padding: 6px 12px;\n background: transparent;\n border: 1px solid color-mix(in srgb, var(--mj-status-warning) 30%, var(--mj-border-default));\n color: color-mix(in srgb, var(--mj-status-warning) 70%, var(--mj-text-primary));\n border-radius: 7px;\n font-size: 11.5px;\n font-weight: 500;\n cursor: pointer;\n font-family: inherit;\n margin-left: auto;\n display: inline-flex;\n align-items: center;\n gap: 5px;\n}\n.em-clear-filters:hover {\n background: color-mix(in srgb, var(--mj-status-warning) 8%, transparent);\n}\n.em-search-icon {\n position: absolute;\n left: 12px;\n top: 50%;\n transform: translateY(-50%);\n color: var(--mj-text-muted);\n font-size: 12px;\n pointer-events: none;\n}\n.em-search {\n width: 100%;\n padding: 7px 32px 7px 32px;\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n font-size: 12.5px;\n font-family: inherit;\n}\n.em-search:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n.em-search-clear {\n position: absolute;\n right: 8px; top: 50%;\n transform: translateY(-50%);\n background: transparent;\n border: none;\n color: var(--mj-text-muted);\n cursor: pointer;\n width: 22px; height: 22px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 11px;\n}\n.em-search-clear:hover { background: var(--mj-bg-surface-hover); color: var(--mj-text-primary); }\n\n/* Table head with sortable columns */\n.em-table-head {\n display: grid;\n grid-template-columns: 110px 160px 140px 200px 1fr 32px;\n gap: 12px;\n padding: 8px 20px;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-subtle);\n position: sticky;\n top: 0;\n z-index: 1;\n align-items: center;\n}\n.em-th {\n font-size: 10px;\n font-weight: 700;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n background: transparent;\n border: none;\n cursor: pointer;\n font-family: inherit;\n text-align: left;\n padding: 4px 0;\n display: inline-flex;\n align-items: center;\n gap: 5px;\n transition: color 0.12s;\n}\n.em-th:hover { color: var(--mj-text-primary); }\n.em-th--sorted {\n color: var(--mj-brand-primary);\n}\n.em-th--sorted i { font-size: 9px; }\n.em-th--summary,\n.em-th--actions {\n cursor: default;\n}\n.em-th--summary:hover,\n.em-th--actions:hover { color: var(--mj-text-muted); }\n\n/* List */\n.em-list {\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n background: var(--mj-bg-page);\n}\n.em-row {\n border-bottom: 1px solid var(--mj-border-subtle);\n background: var(--mj-bg-surface);\n transition: background 0.1s;\n animation: em-row-in 0.25s ease-out;\n}\n@keyframes em-row-in {\n from { opacity: 0; transform: translateY(-3px); }\n to { opacity: 1; transform: translateY(0); }\n}\n@media (prefers-reduced-motion: reduce) { .em-row { animation: none; } }\n.em-row:hover { background: var(--mj-bg-surface-hover); }\n.em-row--expanded { background: color-mix(in srgb, var(--mj-brand-primary) 4%, var(--mj-bg-surface)); }\n.em-row--expanded:hover { background: color-mix(in srgb, var(--mj-brand-primary) 6%, var(--mj-bg-surface)); }\n\n.em-row-head {\n display: grid;\n grid-template-columns: 12px 96px 160px 140px 200px 1fr 32px;\n gap: 12px;\n padding: 8px 20px;\n cursor: pointer;\n font-size: 12.5px;\n align-items: center;\n}\n.em-row-chev {\n color: var(--mj-text-muted);\n font-size: 10px;\n width: 12px;\n flex-shrink: 0;\n transition: transform 0.15s;\n justify-self: start;\n}\n.em-row-chev--down { transform: rotate(90deg); }\n.em-row-time {\n color: var(--mj-text-muted);\n font-family: 'SF Mono', Menlo, Consolas, monospace;\n font-size: 11px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.em-row-type {\n font-family: 'SF Mono', Menlo, Consolas, monospace;\n font-weight: 700;\n font-size: 11px;\n padding: 2px 8px;\n border-radius: 4px;\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, transparent);\n color: var(--mj-brand-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n justify-self: start;\n}\n.em-row-type[data-type=\"LoggedIn\"] { background: color-mix(in srgb, var(--mj-status-success) 14%, transparent); color: color-mix(in srgb, var(--mj-status-success) 70%, var(--mj-text-primary)); }\n.em-row-type[data-type=\"LoggedOut\"],\n.em-row-type[data-type=\"LoginFailed\"],\n.em-row-type[data-type=\"LogoutFailed\"] { background: color-mix(in srgb, var(--mj-status-error) 14%, transparent); color: color-mix(in srgb, var(--mj-status-error) 70%, var(--mj-text-primary)); }\n.em-row-type[data-type=\"DisplaySimpleNotificationRequest\"] { background: color-mix(in srgb, var(--mj-status-warning) 14%, transparent); color: color-mix(in srgb, var(--mj-status-warning) 70%, var(--mj-text-primary)); }\n.em-row-type[data-type=\"ManualResizeRequest\"] { background: color-mix(in srgb, #7c3aed 12%, transparent); color: #5b21b6; }\n\n.em-row-code {\n font-family: 'SF Mono', Menlo, Consolas, monospace;\n font-size: 11px;\n color: var(--mj-text-secondary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.em-row-component {\n font-size: 11.5px;\n color: var(--mj-text-secondary);\n font-family: 'SF Mono', Menlo, Consolas, monospace;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.em-row-summary {\n font-family: 'SF Mono', Menlo, Consolas, monospace;\n font-size: 11.5px;\n color: var(--mj-text-muted);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n min-width: 0;\n}\n.em-row-summary--empty { font-style: italic; opacity: 0.6; }\n\n.em-row-no-payload {\n margin: 0 20px 12px 50px;\n background: var(--mj-bg-surface-sunken);\n border: 1px dashed var(--mj-border-default);\n border-radius: 8px;\n padding: 14px 18px;\n color: var(--mj-text-muted);\n font-size: 12px;\n display: flex;\n align-items: center;\n gap: 10px;\n}\n.em-row-no-payload i { font-size: 14px; }\n.em-row-copy {\n background: transparent;\n border: 1px solid transparent;\n color: var(--mj-text-muted);\n cursor: pointer;\n padding: 4px 8px;\n border-radius: 5px;\n font-size: 11px;\n opacity: 0;\n transition: all 0.12s;\n}\n.em-row:hover .em-row-copy { opacity: 1; }\n.em-row-copy:hover {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.em-row-payload {\n margin: 0 20px 12px 50px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-subtle);\n border-radius: 8px;\n padding: 12px 14px;\n font-family: 'SF Mono', Menlo, Consolas, monospace;\n font-size: 11.5px;\n color: var(--mj-text-primary);\n overflow: auto;\n max-height: 280px;\n}\n.em-row-payload code { white-space: pre-wrap; word-break: break-word; }\n\n/* Empty state */\n.em-empty {\n padding: 80px 40px;\n text-align: center;\n color: var(--mj-text-muted);\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 12px;\n}\n.em-empty-icon {\n font-size: 36px;\n opacity: 0.4;\n color: var(--mj-brand-primary);\n}\n.em-empty-title {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n.em-empty-sub {\n font-size: 12.5px;\n max-width: 380px;\n line-height: 1.5;\n}\n\n@media (max-width: 800px) {\n .em-stats { flex-wrap: wrap; }\n .em-stat--right { margin-left: 0; }\n .em-row-component { display: none; }\n .em-row-time { min-width: 70px; }\n .em-row-payload { margin-left: 20px; }\n}\n"] }]
|
|
651
|
+
args: [{ standalone: false, selector: 'mj-event-monitor', template: "<div class=\"mj-inspector mj-inspector--solo\">\n <mj-page-header-interior\n Role=\"region\"\n AriaLabel=\"Event monitor\"\n Title=\"Event Monitor\"\n Subtitle=\"Live tail of MJGlobal events with filter and pause\">\n <div actions>\n <button mjButton\n variant=\"secondary\"\n size=\"sm\"\n (click)=\"TogglePause()\"\n [title]=\"Paused ? 'Resume capture' : 'Pause capture'\">\n @if (Paused) {\n <i class=\"fa-solid fa-play\" aria-hidden=\"true\"></i> <span class=\"mj-action-label\">Resume</span>\n } @else {\n <i class=\"fa-solid fa-pause\" aria-hidden=\"true\"></i> <span class=\"mj-action-label\">Pause</span>\n }\n </button>\n <button mjButton variant=\"secondary\" size=\"sm\" (click)=\"Clear()\" title=\"Clear all captured events\">\n <i class=\"fa-solid fa-broom\" aria-hidden=\"true\"></i> <span class=\"mj-action-label\">Clear</span>\n </button>\n </div>\n </mj-page-header-interior>\n\n <div class=\"em-stats\">\n <div class=\"em-stat\">\n <i class=\"em-pulse\" [class.em-pulse--paused]=\"Paused\"></i>\n <div>\n <div class=\"em-stat-value\">{{ Paused ? 'PAUSED' : 'LIVE' }}</div>\n <div class=\"em-stat-label\">{{ Paused ? 'Capture suspended' : 'Capturing events' }}</div>\n </div>\n </div>\n <div class=\"em-stat\">\n <div>\n <div class=\"em-stat-value\">{{ Stats.captured }}</div>\n <div class=\"em-stat-label\">Total captured</div>\n </div>\n </div>\n <div class=\"em-stat\">\n <div>\n <div class=\"em-stat-value\">{{ Stats.kept }} / {{ MaxEvents }}</div>\n <div class=\"em-stat-label\">In buffer</div>\n </div>\n </div>\n <div class=\"em-stat\">\n <div>\n <div class=\"em-stat-value\">{{ Stats.perSecond }}/s</div>\n <div class=\"em-stat-label\">Last second</div>\n </div>\n </div>\n <div class=\"em-stat em-stat--right\">\n <div>\n <div class=\"em-stat-value em-stat-value--small\">{{ UptimeLabel }}</div>\n <div class=\"em-stat-label\">Watching for</div>\n </div>\n </div>\n </div>\n\n <div class=\"em-toolbar\">\n <div class=\"em-search-wrap\">\n <i class=\"fa-solid fa-search em-search-icon\"></i>\n <input type=\"search\"\n class=\"em-search\"\n placeholder=\"Filter by type, component, payload\u2026\"\n [(ngModel)]=\"Filter\"\n (ngModelChange)=\"PersistPrefs()\" />\n @if (Filter) {\n <button class=\"em-search-clear\" (click)=\"Filter = ''\" title=\"Clear\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n }\n </div>\n\n <div class=\"em-select-wrap\">\n <label class=\"em-select-label\">Type</label>\n <select class=\"em-select\" [(ngModel)]=\"TypeFilter\" (ngModelChange)=\"PersistPrefs()\">\n <option value=\"\">All types ({{ KnownTypes.length }})</option>\n @for (t of KnownTypes; track t) {\n <option [value]=\"t\">{{ t }}</option>\n }\n </select>\n </div>\n\n <div class=\"em-select-wrap\">\n <label class=\"em-select-label\">Component</label>\n <select class=\"em-select\" [(ngModel)]=\"ComponentFilter\" (ngModelChange)=\"PersistPrefs()\">\n <option value=\"\">All components ({{ KnownComponents.length }})</option>\n @for (c of KnownComponents; track c) {\n <option [value]=\"c\">{{ c }}</option>\n }\n </select>\n </div>\n\n @if (KnownCodes.length > 0) {\n <div class=\"em-select-wrap\">\n <label class=\"em-select-label\">Code</label>\n <select class=\"em-select\" [(ngModel)]=\"CodeFilter\" (ngModelChange)=\"PersistPrefs()\">\n <option value=\"\">All codes ({{ KnownCodes.length }})</option>\n @for (c of KnownCodes; track c) {\n <option [value]=\"c\">{{ c }}</option>\n }\n </select>\n </div>\n }\n\n @if (HasActiveFilters) {\n <button class=\"em-clear-filters\" type=\"button\" (click)=\"ClearFilters()\" title=\"Clear all filters\">\n <i class=\"fa-solid fa-xmark\"></i> Clear filters\n </button>\n }\n </div>\n\n <div class=\"em-list\">\n <div class=\"em-table-head\">\n <button type=\"button\"\n class=\"em-th em-th--time\"\n [class.em-th--sorted]=\"SortField === 'time'\"\n (click)=\"OnSortClick('time')\">\n Time\n @if (SortField === 'time') {\n <i class=\"fa-solid\" [class.fa-arrow-down]=\"SortDir === 'desc'\" [class.fa-arrow-up]=\"SortDir === 'asc'\"></i>\n }\n </button>\n <button type=\"button\"\n class=\"em-th em-th--type\"\n [class.em-th--sorted]=\"SortField === 'type'\"\n (click)=\"OnSortClick('type')\">\n Type\n @if (SortField === 'type') {\n <i class=\"fa-solid\" [class.fa-arrow-down]=\"SortDir === 'desc'\" [class.fa-arrow-up]=\"SortDir === 'asc'\"></i>\n }\n </button>\n <button type=\"button\"\n class=\"em-th em-th--code\"\n [class.em-th--sorted]=\"SortField === 'eventCode'\"\n (click)=\"OnSortClick('eventCode')\">\n Code\n @if (SortField === 'eventCode') {\n <i class=\"fa-solid\" [class.fa-arrow-down]=\"SortDir === 'desc'\" [class.fa-arrow-up]=\"SortDir === 'asc'\"></i>\n }\n </button>\n <button type=\"button\"\n class=\"em-th em-th--component\"\n [class.em-th--sorted]=\"SortField === 'component'\"\n (click)=\"OnSortClick('component')\">\n Component\n @if (SortField === 'component') {\n <i class=\"fa-solid\" [class.fa-arrow-down]=\"SortDir === 'desc'\" [class.fa-arrow-up]=\"SortDir === 'asc'\"></i>\n }\n </button>\n <span class=\"em-th em-th--summary\">Summary</span>\n <span class=\"em-th em-th--actions\"></span>\n </div>\n\n @if (FilteredEvents.length === 0) {\n <div class=\"em-empty\">\n @if (Stats.captured === 0) {\n <i class=\"fa-solid fa-radio em-empty-icon\"></i>\n <div class=\"em-empty-title\">Listening for events\u2026</div>\n <div class=\"em-empty-sub\">Trigger an action \u2014 saves, navigation, AI events all show up here.</div>\n } @else if (Paused) {\n <i class=\"fa-solid fa-pause em-empty-icon\"></i>\n <div class=\"em-empty-title\">Capture is paused</div>\n <div class=\"em-empty-sub\">{{ Stats.captured }} events fired since you paused. Click Resume to start collecting again.</div>\n } @else {\n <i class=\"fa-solid fa-filter em-empty-icon\"></i>\n <div class=\"em-empty-title\">No events match your filter</div>\n <div class=\"em-empty-sub\">{{ Stats.kept }} events in buffer \u00B7 clear filters to see them.</div>\n }\n </div>\n } @else {\n @for (evt of FilteredEvents; track TrackBySeq($index, evt)) {\n <div class=\"em-row\" [class.em-row--expanded]=\"evt.expanded\">\n <div class=\"em-row-head\" (click)=\"ToggleRow(evt)\">\n <i class=\"em-row-chev fa-solid fa-chevron-right\"\n [class.em-row-chev--down]=\"evt.expanded\"></i>\n <span class=\"em-row-time\">{{ evt.timestamp | date:'HH:mm:ss.SSS' }}</span>\n <span class=\"em-row-type\" [attr.data-type]=\"evt.type\">{{ evt.type }}</span>\n <span class=\"em-row-code\">{{ evt.eventCode || '\u2014' }}</span>\n <span class=\"em-row-component\" [title]=\"evt.componentName\">{{ evt.componentName }}</span>\n <span class=\"em-row-summary\" [class.em-row-summary--empty]=\"!evt.hasPayload\">{{ evt.summary }}</span>\n <button class=\"em-row-copy\"\n type=\"button\"\n (click)=\"$event.stopPropagation(); OnCopyRow(evt)\"\n title=\"Copy as JSON\">\n <i class=\"fa-solid fa-clipboard\"></i>\n </button>\n </div>\n @if (evt.expanded) {\n @if (evt.hasPayload) {\n <pre class=\"em-row-payload\"><code>{{ evt.args | json }}</code></pre>\n } @else {\n <div class=\"em-row-no-payload\">\n <i class=\"fa-regular fa-circle\"></i>\n <span>This event has no payload.</span>\n </div>\n }\n }\n </div>\n }\n }\n </div>\n</div>\n", styles: [":host { display: block; height: 100%; }\n\n/*\n Inspector shell \u2014 each Dev Tools sub-page wraps its body in .mj-inspector. The\n chrome (title icon, title, subtitle, action buttons) was previously rendered\n via .mj-inspector__header*, but that's been replaced by <mj-page-header-interior>\n in every inspector template. Action buttons now use the mjButton directive\n (variant=\"secondary\" / \"success\") so they inherit global button styling. App\n State + Layout inspectors used to carry an inner left rail (.mj-inspector__body\n + __sidebar + __nav-item) for L2 sections; that rail was retired 2026-05-19 in\n favor of <mj-tab-nav> projected into the chrome's [toolbar] slot, matching\n SystemDiagnostics and the API Keys tab strip. All inspectors are now \"solo\"\n mode (no sidebar).\n*/\n.mj-inspector {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n background: var(--mj-bg-page);\n color: var(--mj-text-primary);\n font-family: inherit;\n}\n\n/* Content area */\n.mj-inspector__content {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-page);\n}\n.mj-inspector__content-head {\n padding: 12px 20px;\n border-bottom: 1px solid var(--mj-border-subtle);\n display: flex;\n align-items: center;\n justify-content: space-between;\n background: var(--mj-bg-surface-card);\n}\n.mj-inspector__content-title {\n margin: 0;\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n.mj-inspector__content-meta {\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n.mj-inspector__editor {\n flex: 1;\n min-height: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n.mj-inspector__editor mj-code-editor {\n flex: 1;\n min-height: 0;\n display: block;\n}\n\n/* Empty state */\n.mj-inspector__empty {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--mj-text-muted);\n font-size: 13px;\n}\n\n", ".mj-inspector--solo { background: var(--mj-bg-page); }\n\n/* Stats row */\n.em-stats {\n display: flex;\n gap: 16px;\n padding: 14px 20px;\n border-bottom: 1px solid var(--mj-border-subtle);\n background: var(--mj-bg-surface);\n align-items: center;\n}\n.em-stat {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 8px 14px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-subtle);\n border-radius: 10px;\n min-width: 130px;\n}\n.em-stat--right { margin-left: auto; }\n.em-stat-value {\n font-size: 16px;\n font-weight: 700;\n color: var(--mj-text-primary);\n letter-spacing: -0.3px;\n line-height: 1;\n}\n.em-stat-value--small { font-size: 13px; }\n.em-stat-label {\n font-size: 10px;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n font-weight: 600;\n letter-spacing: 0.5px;\n margin-top: 4px;\n}\n\n/* Live pulse */\n.em-pulse {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n background: var(--mj-status-success);\n box-shadow: 0 0 0 0 var(--mj-status-success);\n animation: em-pulse-anim 1.6s ease-out infinite;\n}\n.em-pulse--paused {\n background: var(--mj-status-warning);\n box-shadow: none;\n animation: none;\n}\n@keyframes em-pulse-anim {\n 0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--mj-status-success) 70%, transparent); }\n 70% { box-shadow: 0 0 0 8px color-mix(in srgb, var(--mj-status-success) 0%, transparent); }\n 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--mj-status-success) 0%, transparent); }\n}\n@media (prefers-reduced-motion: reduce) { .em-pulse { animation: none; } }\n\n/* Toolbar */\n.em-toolbar {\n display: flex;\n align-items: flex-end;\n gap: 10px;\n padding: 10px 20px;\n border-bottom: 1px solid var(--mj-border-subtle);\n background: var(--mj-bg-surface);\n flex-wrap: wrap;\n}\n.em-search-wrap {\n position: relative;\n width: 280px;\n flex-shrink: 0;\n}\n.em-select-wrap {\n display: flex;\n flex-direction: column;\n gap: 3px;\n min-width: 0;\n}\n.em-select-label {\n font-size: 9.5px;\n font-weight: 700;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n.em-select {\n padding: 6px 10px;\n border: 1px solid var(--mj-border-default);\n border-radius: 7px;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n font-size: 12px;\n font-family: inherit;\n cursor: pointer;\n min-width: 160px;\n max-width: 240px;\n}\n.em-select:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n.em-clear-filters {\n align-self: flex-end;\n padding: 6px 12px;\n background: transparent;\n border: 1px solid color-mix(in srgb, var(--mj-status-warning) 30%, var(--mj-border-default));\n color: color-mix(in srgb, var(--mj-status-warning) 70%, var(--mj-text-primary));\n border-radius: 7px;\n font-size: 11.5px;\n font-weight: 500;\n cursor: pointer;\n font-family: inherit;\n margin-left: auto;\n display: inline-flex;\n align-items: center;\n gap: 5px;\n}\n.em-clear-filters:hover {\n background: color-mix(in srgb, var(--mj-status-warning) 8%, transparent);\n}\n.em-search-icon {\n position: absolute;\n left: 12px;\n top: 50%;\n transform: translateY(-50%);\n color: var(--mj-text-muted);\n font-size: 12px;\n pointer-events: none;\n}\n.em-search {\n width: 100%;\n padding: 7px 32px 7px 32px;\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n font-size: 12.5px;\n font-family: inherit;\n}\n.em-search:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n.em-search-clear {\n position: absolute;\n right: 8px; top: 50%;\n transform: translateY(-50%);\n background: transparent;\n border: none;\n color: var(--mj-text-muted);\n cursor: pointer;\n width: 22px; height: 22px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 11px;\n}\n.em-search-clear:hover { background: var(--mj-bg-surface-hover); color: var(--mj-text-primary); }\n\n/* Table head with sortable columns */\n.em-table-head {\n display: grid;\n grid-template-columns: 110px 160px 140px 200px 1fr 32px;\n gap: 12px;\n padding: 8px 20px;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-subtle);\n position: sticky;\n top: 0;\n z-index: 1;\n align-items: center;\n}\n.em-th {\n font-size: 10px;\n font-weight: 700;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n background: transparent;\n border: none;\n cursor: pointer;\n font-family: inherit;\n text-align: left;\n padding: 4px 0;\n display: inline-flex;\n align-items: center;\n gap: 5px;\n transition: color 0.12s;\n}\n.em-th:hover { color: var(--mj-text-primary); }\n.em-th--sorted {\n color: var(--mj-brand-primary);\n}\n.em-th--sorted i { font-size: 9px; }\n.em-th--summary,\n.em-th--actions {\n cursor: default;\n}\n.em-th--summary:hover,\n.em-th--actions:hover { color: var(--mj-text-muted); }\n\n/* List */\n.em-list {\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n background: var(--mj-bg-page);\n}\n.em-row {\n border-bottom: 1px solid var(--mj-border-subtle);\n background: var(--mj-bg-surface);\n transition: background 0.1s;\n animation: em-row-in 0.25s ease-out;\n}\n@keyframes em-row-in {\n from { opacity: 0; transform: translateY(-3px); }\n to { opacity: 1; transform: translateY(0); }\n}\n@media (prefers-reduced-motion: reduce) { .em-row { animation: none; } }\n.em-row:hover { background: var(--mj-bg-surface-hover); }\n.em-row--expanded { background: color-mix(in srgb, var(--mj-brand-primary) 4%, var(--mj-bg-surface)); }\n.em-row--expanded:hover { background: color-mix(in srgb, var(--mj-brand-primary) 6%, var(--mj-bg-surface)); }\n\n.em-row-head {\n display: grid;\n grid-template-columns: 12px 96px 160px 140px 200px 1fr 32px;\n gap: 12px;\n padding: 8px 20px;\n cursor: pointer;\n font-size: 12.5px;\n align-items: center;\n}\n.em-row-chev {\n color: var(--mj-text-muted);\n font-size: 10px;\n width: 12px;\n flex-shrink: 0;\n transition: transform 0.15s;\n justify-self: start;\n}\n.em-row-chev--down { transform: rotate(90deg); }\n.em-row-time {\n color: var(--mj-text-muted);\n font-family: 'SF Mono', Menlo, Consolas, monospace;\n font-size: 11px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.em-row-type {\n font-family: 'SF Mono', Menlo, Consolas, monospace;\n font-weight: 700;\n font-size: 11px;\n padding: 2px 8px;\n border-radius: 4px;\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, transparent);\n color: var(--mj-brand-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n justify-self: start;\n}\n.em-row-type[data-type=\"LoggedIn\"] { background: color-mix(in srgb, var(--mj-status-success) 14%, transparent); color: color-mix(in srgb, var(--mj-status-success) 70%, var(--mj-text-primary)); }\n.em-row-type[data-type=\"LoggedOut\"],\n.em-row-type[data-type=\"LoginFailed\"],\n.em-row-type[data-type=\"LogoutFailed\"] { background: color-mix(in srgb, var(--mj-status-error) 14%, transparent); color: color-mix(in srgb, var(--mj-status-error) 70%, var(--mj-text-primary)); }\n.em-row-type[data-type=\"DisplaySimpleNotificationRequest\"] { background: color-mix(in srgb, var(--mj-status-warning) 14%, transparent); color: color-mix(in srgb, var(--mj-status-warning) 70%, var(--mj-text-primary)); }\n.em-row-type[data-type=\"ManualResizeRequest\"] { background: color-mix(in srgb, #7c3aed 12%, transparent); color: #5b21b6; }\n\n.em-row-code {\n font-family: 'SF Mono', Menlo, Consolas, monospace;\n font-size: 11px;\n color: var(--mj-text-secondary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.em-row-component {\n font-size: 11.5px;\n color: var(--mj-text-secondary);\n font-family: 'SF Mono', Menlo, Consolas, monospace;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.em-row-summary {\n font-family: 'SF Mono', Menlo, Consolas, monospace;\n font-size: 11.5px;\n color: var(--mj-text-muted);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n min-width: 0;\n}\n.em-row-summary--empty { font-style: italic; opacity: 0.6; }\n\n.em-row-no-payload {\n margin: 0 20px 12px 50px;\n background: var(--mj-bg-surface-sunken);\n border: 1px dashed var(--mj-border-default);\n border-radius: 8px;\n padding: 14px 18px;\n color: var(--mj-text-muted);\n font-size: 12px;\n display: flex;\n align-items: center;\n gap: 10px;\n}\n.em-row-no-payload i { font-size: 14px; }\n.em-row-copy {\n background: transparent;\n border: 1px solid transparent;\n color: var(--mj-text-muted);\n cursor: pointer;\n padding: 4px 8px;\n border-radius: 5px;\n font-size: 11px;\n opacity: 0;\n transition: all 0.12s;\n}\n.em-row:hover .em-row-copy { opacity: 1; }\n.em-row-copy:hover {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.em-row-payload {\n margin: 0 20px 12px 50px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-subtle);\n border-radius: 8px;\n padding: 12px 14px;\n font-family: 'SF Mono', Menlo, Consolas, monospace;\n font-size: 11.5px;\n color: var(--mj-text-primary);\n overflow: auto;\n max-height: 280px;\n}\n.em-row-payload code { white-space: pre-wrap; word-break: break-word; }\n\n/* Empty state */\n.em-empty {\n padding: 80px 40px;\n text-align: center;\n color: var(--mj-text-muted);\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 12px;\n}\n.em-empty-icon {\n font-size: 36px;\n opacity: 0.4;\n color: var(--mj-brand-primary);\n}\n.em-empty-title {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n.em-empty-sub {\n font-size: 12.5px;\n max-width: 380px;\n line-height: 1.5;\n}\n\n@media (max-width: 800px) {\n .em-stats { flex-wrap: wrap; }\n .em-stat--right { margin-left: 0; }\n .em-row-component { display: none; }\n .em-row-time { min-width: 70px; }\n .em-row-payload { margin-left: 20px; }\n}\n"] }]
|
|
647
652
|
}], () => [{ type: i0.ChangeDetectorRef }], null); })();
|
|
648
653
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EventMonitorComponent, { className: "EventMonitorComponent", filePath: "src/DevTools/event-monitor.component.ts", lineNumber: 44 }); })();
|
|
649
654
|
//# sourceMappingURL=event-monitor.component.js.map
|