@memberjunction/ng-dashboards 3.4.0 → 4.1.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 +102 -339
- package/dist/AI/components/agents/agent-configuration.component.d.ts +12 -5
- package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
- package/dist/AI/components/agents/agent-configuration.component.js +103 -44
- package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
- package/dist/AI/components/agents/agent-editor.component.d.ts +14 -5
- package/dist/AI/components/agents/agent-editor.component.d.ts.map +1 -1
- package/dist/AI/components/agents/agent-editor.component.js +149 -211
- package/dist/AI/components/agents/agent-editor.component.js.map +1 -1
- package/dist/AI/components/agents/agent-filter-panel.component.d.ts.map +1 -1
- package/dist/AI/components/agents/agent-filter-panel.component.js +4 -4
- package/dist/AI/components/agents/agent-filter-panel.component.js.map +1 -1
- package/dist/AI/components/charts/performance-heatmap.component.d.ts.map +1 -1
- package/dist/AI/components/charts/performance-heatmap.component.js +4 -6
- package/dist/AI/components/charts/performance-heatmap.component.js.map +1 -1
- package/dist/AI/components/charts/time-series-chart.component.d.ts.map +1 -1
- package/dist/AI/components/charts/time-series-chart.component.js +6 -7
- package/dist/AI/components/charts/time-series-chart.component.js.map +1 -1
- package/dist/AI/components/execution-monitoring.component.d.ts +0 -4
- package/dist/AI/components/execution-monitoring.component.d.ts.map +1 -1
- package/dist/AI/components/execution-monitoring.component.js +33 -37
- package/dist/AI/components/execution-monitoring.component.js.map +1 -1
- package/dist/AI/components/models/model-management.component.d.ts +3 -6
- package/dist/AI/components/models/model-management.component.d.ts.map +1 -1
- package/dist/AI/components/models/model-management.component.js +34 -27
- package/dist/AI/components/models/model-management.component.js.map +1 -1
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts.map +1 -1
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js +22 -17
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js.map +1 -1
- package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts.map +1 -1
- package/dist/AI/components/prompts/prompt-filter-panel.component.js +4 -4
- package/dist/AI/components/prompts/prompt-filter-panel.component.js.map +1 -1
- package/dist/AI/components/prompts/prompt-management.component.d.ts +3 -6
- package/dist/AI/components/prompts/prompt-management.component.d.ts.map +1 -1
- package/dist/AI/components/prompts/prompt-management.component.js +34 -32
- package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
- package/dist/AI/components/prompts/prompt-version-control.component.d.ts.map +1 -1
- package/dist/AI/components/prompts/prompt-version-control.component.js +33 -28
- package/dist/AI/components/prompts/prompt-version-control.component.js.map +1 -1
- package/dist/AI/components/system/system-config-filter-panel.component.d.ts.map +1 -1
- package/dist/AI/components/system/system-config-filter-panel.component.js +4 -4
- package/dist/AI/components/system/system-config-filter-panel.component.js.map +1 -1
- package/dist/AI/components/system/system-configuration.component.d.ts +0 -4
- package/dist/AI/components/system/system-configuration.component.d.ts.map +1 -1
- package/dist/AI/components/system/system-configuration.component.js +26 -27
- package/dist/AI/components/system/system-configuration.component.js.map +1 -1
- package/dist/AI/components/widgets/kpi-card.component.d.ts.map +1 -1
- package/dist/AI/components/widgets/kpi-card.component.js +52 -42
- package/dist/AI/components/widgets/kpi-card.component.js.map +1 -1
- package/dist/AI/components/widgets/live-execution-widget.component.d.ts.map +1 -1
- package/dist/AI/components/widgets/live-execution-widget.component.js +7 -7
- package/dist/AI/components/widgets/live-execution-widget.component.js.map +1 -1
- package/dist/APIKeys/api-applications-panel.component.d.ts +0 -2
- package/dist/APIKeys/api-applications-panel.component.d.ts.map +1 -1
- package/dist/APIKeys/api-applications-panel.component.js +193 -189
- package/dist/APIKeys/api-applications-panel.component.js.map +1 -1
- package/dist/APIKeys/api-key-create-dialog.component.d.ts +0 -2
- package/dist/APIKeys/api-key-create-dialog.component.d.ts.map +1 -1
- package/dist/APIKeys/api-key-create-dialog.component.js +175 -180
- package/dist/APIKeys/api-key-create-dialog.component.js.map +1 -1
- package/dist/APIKeys/api-key-edit-panel.component.d.ts +0 -2
- package/dist/APIKeys/api-key-edit-panel.component.d.ts.map +1 -1
- package/dist/APIKeys/api-key-edit-panel.component.js +231 -225
- package/dist/APIKeys/api-key-edit-panel.component.js.map +1 -1
- package/dist/APIKeys/api-key-list.component.d.ts +0 -2
- package/dist/APIKeys/api-key-list.component.d.ts.map +1 -1
- package/dist/APIKeys/api-key-list.component.js +113 -114
- package/dist/APIKeys/api-key-list.component.js.map +1 -1
- package/dist/APIKeys/api-keys-resource.component.d.ts +0 -2
- package/dist/APIKeys/api-keys-resource.component.d.ts.map +1 -1
- package/dist/APIKeys/api-keys-resource.component.js +294 -302
- package/dist/APIKeys/api-keys-resource.component.js.map +1 -1
- package/dist/APIKeys/api-scopes-panel.component.d.ts +0 -2
- package/dist/APIKeys/api-scopes-panel.component.d.ts.map +1 -1
- package/dist/APIKeys/api-scopes-panel.component.js +151 -155
- package/dist/APIKeys/api-scopes-panel.component.js.map +1 -1
- package/dist/APIKeys/api-usage-panel.component.d.ts +0 -2
- package/dist/APIKeys/api-usage-panel.component.d.ts.map +1 -1
- package/dist/APIKeys/api-usage-panel.component.js +237 -234
- package/dist/APIKeys/api-usage-panel.component.js.map +1 -1
- package/dist/Actions/components/actions-list-view.component.d.ts.map +1 -1
- package/dist/Actions/components/actions-list-view.component.js +15 -14
- package/dist/Actions/components/actions-list-view.component.js.map +1 -1
- package/dist/Actions/components/actions-overview.component.d.ts +3 -6
- package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
- package/dist/Actions/components/actions-overview.component.js +17 -19
- package/dist/Actions/components/actions-overview.component.js.map +1 -1
- package/dist/Actions/components/categories-list-view.component.d.ts.map +1 -1
- package/dist/Actions/components/categories-list-view.component.js +6 -6
- package/dist/Actions/components/categories-list-view.component.js.map +1 -1
- package/dist/Actions/components/code-management.component.d.ts +0 -4
- package/dist/Actions/components/code-management.component.d.ts.map +1 -1
- package/dist/Actions/components/code-management.component.js +3 -9
- package/dist/Actions/components/code-management.component.js.map +1 -1
- package/dist/Actions/components/entity-integration.component.d.ts +0 -4
- package/dist/Actions/components/entity-integration.component.d.ts.map +1 -1
- package/dist/Actions/components/entity-integration.component.js +3 -9
- package/dist/Actions/components/entity-integration.component.js.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.d.ts +3 -6
- package/dist/Actions/components/execution-monitoring.component.d.ts.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.js +13 -16
- package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
- package/dist/Actions/components/executions-list-view.component.d.ts.map +1 -1
- package/dist/Actions/components/executions-list-view.component.js +3 -3
- package/dist/Actions/components/executions-list-view.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-breadcrumb.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-breadcrumb.component.js +6 -6
- package/dist/Actions/components/explorer/action-breadcrumb.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-card.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-card.component.js +11 -10
- package/dist/Actions/components/explorer/action-card.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.d.ts +0 -4
- package/dist/Actions/components/explorer/action-explorer.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.js +10 -14
- package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-list-item.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-list-item.component.js +8 -8
- package/dist/Actions/components/explorer/action-list-item.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-toolbar.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-toolbar.component.js +15 -14
- package/dist/Actions/components/explorer/action-toolbar.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-tree-panel.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-tree-panel.component.js +11 -10
- package/dist/Actions/components/explorer/action-tree-panel.component.js.map +1 -1
- package/dist/Actions/components/explorer/index.d.ts +0 -1
- package/dist/Actions/components/explorer/index.d.ts.map +1 -1
- package/dist/Actions/components/explorer/index.js +0 -4
- package/dist/Actions/components/explorer/index.js.map +1 -1
- package/dist/Actions/components/explorer/new-action-panel.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/new-action-panel.component.js +10 -10
- package/dist/Actions/components/explorer/new-action-panel.component.js.map +1 -1
- package/dist/Actions/components/explorer/new-category-panel.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/new-category-panel.component.js +8 -8
- package/dist/Actions/components/explorer/new-category-panel.component.js.map +1 -1
- package/dist/Actions/components/scheduled-actions.component.d.ts +0 -4
- package/dist/Actions/components/scheduled-actions.component.d.ts.map +1 -1
- package/dist/Actions/components/scheduled-actions.component.js +3 -9
- package/dist/Actions/components/scheduled-actions.component.js.map +1 -1
- package/dist/Actions/components/security-permissions.component.d.ts +0 -4
- package/dist/Actions/components/security-permissions.component.d.ts.map +1 -1
- package/dist/Actions/components/security-permissions.component.js +3 -9
- package/dist/Actions/components/security-permissions.component.js.map +1 -1
- package/dist/Actions/index.d.ts +0 -7
- package/dist/Actions/index.d.ts.map +1 -1
- package/dist/Actions/index.js +0 -8
- package/dist/Actions/index.js.map +1 -1
- package/dist/Communication/communication-dashboard.component.d.ts +0 -1
- package/dist/Communication/communication-dashboard.component.d.ts.map +1 -1
- package/dist/Communication/communication-dashboard.component.js +38 -51
- package/dist/Communication/communication-dashboard.component.js.map +1 -1
- package/dist/Communication/communication-logs-resource.component.d.ts +0 -4
- package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-logs-resource.component.js +112 -108
- package/dist/Communication/communication-logs-resource.component.js.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.d.ts +0 -4
- package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.js +210 -201
- package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
- package/dist/Communication/communication-providers-resource.component.d.ts +0 -4
- package/dist/Communication/communication-providers-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-providers-resource.component.js +136 -124
- package/dist/Communication/communication-providers-resource.component.js.map +1 -1
- package/dist/Communication/communication-runs-resource.component.d.ts +0 -4
- package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-runs-resource.component.js +91 -88
- package/dist/Communication/communication-runs-resource.component.js.map +1 -1
- package/dist/Communication/communication-templates-resource.component.d.ts +0 -4
- package/dist/Communication/communication-templates-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-templates-resource.component.js +139 -122
- package/dist/Communication/communication-templates-resource.component.js.map +1 -1
- package/dist/ComponentStudio/component-studio-dashboard.component.d.ts +0 -4
- package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
- package/dist/ComponentStudio/component-studio-dashboard.component.js +21 -20
- package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
- package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js +11 -12
- package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js.map +1 -1
- package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/artifact-load-dialog.component.js +25 -22
- package/dist/ComponentStudio/components/artifact-load-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.js +16 -16
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/components/browser/component-browser.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/browser/component-browser.component.js +23 -21
- package/dist/ComponentStudio/components/browser/component-browser.component.js.map +1 -1
- package/dist/ComponentStudio/components/editors/code-editor-panel.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/editors/code-editor-panel.component.js +10 -10
- package/dist/ComponentStudio/components/editors/code-editor-panel.component.js.map +1 -1
- package/dist/ComponentStudio/components/editors/data-requirements-editor.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js +13 -13
- package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js.map +1 -1
- package/dist/ComponentStudio/components/editors/requirements-editor.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/editors/requirements-editor.component.js +7 -7
- package/dist/ComponentStudio/components/editors/requirements-editor.component.js.map +1 -1
- package/dist/ComponentStudio/components/editors/spec-editor.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/editors/spec-editor.component.js +5 -5
- package/dist/ComponentStudio/components/editors/spec-editor.component.js.map +1 -1
- package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js +4 -4
- package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js +9 -9
- package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/components/text-import-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/text-import-dialog.component.js +4 -4
- package/dist/ComponentStudio/components/text-import-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/components/workspace/component-preview.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/workspace/component-preview.component.js +10 -9
- package/dist/ComponentStudio/components/workspace/component-preview.component.js.map +1 -1
- package/dist/ComponentStudio/components/workspace/editor-tabs.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/workspace/editor-tabs.component.js +4 -4
- package/dist/ComponentStudio/components/workspace/editor-tabs.component.js.map +1 -1
- package/dist/Credentials/components/credentials-audit-resource.component.d.ts +0 -1
- package/dist/Credentials/components/credentials-audit-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-audit-resource.component.js +200 -196
- package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-categories-resource.component.d.ts +0 -1
- package/dist/Credentials/components/credentials-categories-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-categories-resource.component.js +195 -190
- package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-list-resource.component.d.ts +0 -1
- package/dist/Credentials/components/credentials-list-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-list-resource.component.js +251 -240
- package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-overview-resource.component.d.ts +0 -1
- package/dist/Credentials/components/credentials-overview-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-overview-resource.component.js +228 -226
- package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-types-resource.component.d.ts +0 -1
- package/dist/Credentials/components/credentials-types-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-types-resource.component.js +214 -210
- package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
- package/dist/Credentials/credentials-dashboard.component.d.ts +0 -1
- package/dist/Credentials/credentials-dashboard.component.d.ts.map +1 -1
- package/dist/Credentials/credentials-dashboard.component.js +31 -44
- package/dist/Credentials/credentials-dashboard.component.js.map +1 -1
- package/dist/Credentials/pipes/group-by.pipe.d.ts.map +1 -1
- package/dist/Credentials/pipes/group-by.pipe.js +2 -1
- package/dist/Credentials/pipes/group-by.pipe.js.map +1 -1
- package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts +0 -1
- package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts.map +1 -1
- package/dist/DashboardBrowser/dashboard-browser-resource.component.js +73 -80
- package/dist/DashboardBrowser/dashboard-browser-resource.component.js.map +1 -1
- package/dist/DashboardBrowser/dashboard-share-dialog.component.d.ts.map +1 -1
- package/dist/DashboardBrowser/dashboard-share-dialog.component.js +46 -45
- package/dist/DashboardBrowser/dashboard-share-dialog.component.js.map +1 -1
- package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.d.ts.map +1 -1
- package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js +7 -7
- package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js.map +1 -1
- package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.d.ts.map +1 -1
- package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js +15 -15
- package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js.map +1 -1
- package/dist/DataExplorer/components/view-selector/view-selector.component.d.ts.map +1 -1
- package/dist/DataExplorer/components/view-selector/view-selector.component.js +17 -11
- package/dist/DataExplorer/components/view-selector/view-selector.component.js.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +2 -4
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.js +83 -64
- package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
- package/dist/DataExplorer/data-explorer-resource.component.d.ts +0 -1
- package/dist/DataExplorer/data-explorer-resource.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-resource.component.js +3 -6
- package/dist/DataExplorer/data-explorer-resource.component.js.map +1 -1
- package/dist/DataExplorer/index.d.ts +2 -2
- package/dist/DataExplorer/index.d.ts.map +1 -1
- package/dist/DataExplorer/index.js +2 -2
- package/dist/DataExplorer/index.js.map +1 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts +0 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts.map +1 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.js +6 -7
- package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
- package/dist/Home/home-application.d.ts +109 -27
- package/dist/Home/home-application.d.ts.map +1 -1
- package/dist/Home/home-application.js +351 -75
- package/dist/Home/home-application.js.map +1 -1
- package/dist/Home/home-dashboard.component.d.ts +48 -12
- package/dist/Home/home-dashboard.component.d.ts.map +1 -1
- package/dist/Home/home-dashboard.component.js +267 -187
- package/dist/Home/home-dashboard.component.js.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.d.ts +0 -1
- package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.js +761 -685
- package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-categories-resource.component.d.ts +0 -1
- package/dist/Lists/components/lists-categories-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-categories-resource.component.js +340 -316
- package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.d.ts +0 -1
- package/dist/Lists/components/lists-my-lists-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.js +530 -482
- package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-operations-resource.component.d.ts +0 -1
- package/dist/Lists/components/lists-operations-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-operations-resource.component.js +508 -455
- package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
- package/dist/Lists/components/venn-diagram/venn-diagram.component.d.ts.map +1 -1
- package/dist/Lists/components/venn-diagram/venn-diagram.component.js +44 -39
- package/dist/Lists/components/venn-diagram/venn-diagram.component.js.map +1 -1
- package/dist/Lists/index.d.ts +0 -1
- package/dist/Lists/index.d.ts.map +1 -1
- package/dist/Lists/index.js +0 -11
- package/dist/Lists/index.js.map +1 -1
- package/dist/MCP/components/mcp-connection-dialog.component.d.ts +0 -4
- package/dist/MCP/components/mcp-connection-dialog.component.d.ts.map +1 -1
- package/dist/MCP/components/mcp-connection-dialog.component.js +33 -39
- package/dist/MCP/components/mcp-connection-dialog.component.js.map +1 -1
- package/dist/MCP/components/mcp-log-detail-panel.component.d.ts +0 -4
- package/dist/MCP/components/mcp-log-detail-panel.component.d.ts.map +1 -1
- package/dist/MCP/components/mcp-log-detail-panel.component.js +42 -44
- package/dist/MCP/components/mcp-log-detail-panel.component.js.map +1 -1
- package/dist/MCP/components/mcp-server-dialog.component.d.ts +3 -4
- package/dist/MCP/components/mcp-server-dialog.component.d.ts.map +1 -1
- package/dist/MCP/components/mcp-server-dialog.component.js +186 -77
- package/dist/MCP/components/mcp-server-dialog.component.js.map +1 -1
- package/dist/MCP/components/mcp-test-tool-dialog.component.d.ts +0 -4
- package/dist/MCP/components/mcp-test-tool-dialog.component.d.ts.map +1 -1
- package/dist/MCP/components/mcp-test-tool-dialog.component.js +187 -187
- package/dist/MCP/components/mcp-test-tool-dialog.component.js.map +1 -1
- package/dist/MCP/index.d.ts +5 -5
- package/dist/MCP/index.d.ts.map +1 -1
- package/dist/MCP/index.js +5 -5
- package/dist/MCP/index.js.map +1 -1
- package/dist/MCP/mcp-dashboard.component.d.ts +65 -7
- package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
- package/dist/MCP/mcp-dashboard.component.js +976 -697
- package/dist/MCP/mcp-dashboard.component.js.map +1 -1
- package/dist/MCP/mcp-filter-panel.component.d.ts +54 -0
- package/dist/MCP/mcp-filter-panel.component.d.ts.map +1 -0
- package/dist/MCP/mcp-filter-panel.component.js +288 -0
- package/dist/MCP/mcp-filter-panel.component.js.map +1 -0
- package/dist/MCP/mcp-resource.component.d.ts +11 -5
- package/dist/MCP/mcp-resource.component.d.ts.map +1 -1
- package/dist/MCP/mcp-resource.component.js +8 -9
- package/dist/MCP/mcp-resource.component.js.map +1 -1
- package/dist/MCP/mcp.module.d.ts +16 -19
- package/dist/MCP/mcp.module.d.ts.map +1 -1
- package/dist/MCP/mcp.module.js +17 -26
- package/dist/MCP/mcp.module.js.map +1 -1
- package/dist/MCP/services/mcp-tools.service.d.ts +10 -4
- package/dist/MCP/services/mcp-tools.service.d.ts.map +1 -1
- package/dist/MCP/services/mcp-tools.service.js +5 -6
- package/dist/MCP/services/mcp-tools.service.js.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.d.ts +0 -1
- package/dist/QueryBrowser/query-browser-resource.component.d.ts.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.js +79 -88
- package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
- package/dist/Scheduling/components/job-slideout.component.d.ts.map +1 -1
- package/dist/Scheduling/components/job-slideout.component.js +117 -116
- package/dist/Scheduling/components/job-slideout.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts +0 -4
- package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-activity-resource.component.js +3 -9
- package/dist/Scheduling/components/scheduling-activity-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 +134 -134
- package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts +0 -4
- package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs-resource.component.js +3 -9
- package/dist/Scheduling/components/scheduling-jobs-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs.component.js +102 -97
- package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts +0 -4
- package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-overview-resource.component.js +3 -9
- package/dist/Scheduling/components/scheduling-overview-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-overview.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-overview.component.js +127 -122
- package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
- package/dist/Scheduling/scheduling-dashboard.component.d.ts +0 -1
- package/dist/Scheduling/scheduling-dashboard.component.d.ts.map +1 -1
- package/dist/Scheduling/scheduling-dashboard.component.js +35 -43
- package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
- package/dist/SystemDiagnostics/system-diagnostics.component.d.ts +0 -4
- package/dist/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -1
- package/dist/SystemDiagnostics/system-diagnostics.component.js +1552 -1534
- package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
- package/dist/Testing/components/testing-analytics-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-analytics-resource.component.js +3 -3
- package/dist/Testing/components/testing-analytics-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-analytics.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-analytics.component.js +30 -30
- package/dist/Testing/components/testing-analytics.component.js.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab-resource.component.js +3 -3
- package/dist/Testing/components/testing-dashboard-tab-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab.component.js +7 -7
- package/dist/Testing/components/testing-dashboard-tab.component.js.map +1 -1
- package/dist/Testing/components/testing-explorer-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-explorer-resource.component.js +3 -3
- package/dist/Testing/components/testing-explorer-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-explorer.component.js +42 -35
- package/dist/Testing/components/testing-explorer.component.js.map +1 -1
- package/dist/Testing/components/testing-review-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-review-resource.component.js +3 -3
- package/dist/Testing/components/testing-review-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-review.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-review.component.js +16 -16
- package/dist/Testing/components/testing-review.component.js.map +1 -1
- package/dist/Testing/components/testing-runs-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-runs-resource.component.js +3 -3
- package/dist/Testing/components/testing-runs-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-runs.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-runs.component.js +15 -15
- package/dist/Testing/components/testing-runs.component.js.map +1 -1
- package/dist/Testing/components/widgets/oracle-breakdown-table.component.d.ts.map +1 -1
- package/dist/Testing/components/widgets/oracle-breakdown-table.component.js +73 -61
- package/dist/Testing/components/widgets/oracle-breakdown-table.component.js.map +1 -1
- package/dist/Testing/components/widgets/suite-tree.component.d.ts.map +1 -1
- package/dist/Testing/components/widgets/suite-tree.component.js +34 -31
- package/dist/Testing/components/widgets/suite-tree.component.js.map +1 -1
- package/dist/Testing/components/widgets/test-run-detail-panel.component.d.ts.map +1 -1
- package/dist/Testing/components/widgets/test-run-detail-panel.component.js +180 -171
- package/dist/Testing/components/widgets/test-run-detail-panel.component.js.map +1 -1
- package/dist/Testing/testing-dashboard.component.d.ts +0 -1
- package/dist/Testing/testing-dashboard.component.d.ts.map +1 -1
- package/dist/Testing/testing-dashboard.component.js +9 -8
- package/dist/Testing/testing-dashboard.component.js.map +1 -1
- package/dist/VersionHistory/components/diff-resource.component.d.ts +119 -0
- package/dist/VersionHistory/components/diff-resource.component.d.ts.map +1 -0
- package/dist/VersionHistory/components/diff-resource.component.js +1162 -0
- package/dist/VersionHistory/components/diff-resource.component.js.map +1 -0
- package/dist/VersionHistory/components/graph-resource.component.d.ts +67 -0
- package/dist/VersionHistory/components/graph-resource.component.d.ts.map +1 -0
- package/dist/VersionHistory/components/graph-resource.component.js +521 -0
- package/dist/VersionHistory/components/graph-resource.component.js.map +1 -0
- package/dist/VersionHistory/components/index.d.ts +5 -0
- package/dist/VersionHistory/components/index.d.ts.map +1 -0
- package/dist/VersionHistory/components/index.js +5 -0
- package/dist/VersionHistory/components/index.js.map +1 -0
- package/dist/VersionHistory/components/labels-resource.component.d.ts +89 -0
- package/dist/VersionHistory/components/labels-resource.component.d.ts.map +1 -0
- package/dist/VersionHistory/components/labels-resource.component.js +968 -0
- package/dist/VersionHistory/components/labels-resource.component.js.map +1 -0
- package/dist/VersionHistory/components/restore-resource.component.d.ts +40 -0
- package/dist/VersionHistory/components/restore-resource.component.d.ts.map +1 -0
- package/dist/VersionHistory/components/restore-resource.component.js +472 -0
- package/dist/VersionHistory/components/restore-resource.component.js.map +1 -0
- package/dist/VersionHistory/index.d.ts +2 -0
- package/dist/VersionHistory/index.d.ts.map +1 -0
- package/dist/VersionHistory/index.js +2 -0
- package/dist/VersionHistory/index.js.map +1 -0
- package/dist/module.d.ts +42 -36
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +41 -7
- package/dist/module.js.map +1 -1
- package/dist/public-api.d.ts +20 -19
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +22 -120
- package/dist/public-api.js.map +1 -1
- package/dist/shared/pipes/highlight-search.pipe.d.ts.map +1 -1
- package/dist/shared/pipes/highlight-search.pipe.js +2 -1
- package/dist/shared/pipes/highlight-search.pipe.js.map +1 -1
- package/package.json +64 -62
|
@@ -9,8 +9,8 @@ import * as i1 from "../services/scheduling-instrumentation.service";
|
|
|
9
9
|
import * as i2 from "@angular/common";
|
|
10
10
|
import * as i3 from "@angular/forms";
|
|
11
11
|
import * as i4 from "@memberjunction/ng-shared-generic";
|
|
12
|
-
function
|
|
13
|
-
i0.ɵɵelementStart(0, "option",
|
|
12
|
+
function SchedulingActivityComponent_For_10_Template(rf, ctx) { if (rf & 1) {
|
|
13
|
+
i0.ɵɵelementStart(0, "option", 8);
|
|
14
14
|
i0.ɵɵtext(1);
|
|
15
15
|
i0.ɵɵelementEnd();
|
|
16
16
|
} if (rf & 2) {
|
|
@@ -19,8 +19,8 @@ function SchedulingActivityComponent_option_9_Template(rf, ctx) { if (rf & 1) {
|
|
|
19
19
|
i0.ɵɵadvance();
|
|
20
20
|
i0.ɵɵtextInterpolate(s_r1);
|
|
21
21
|
} }
|
|
22
|
-
function
|
|
23
|
-
i0.ɵɵelementStart(0, "option",
|
|
22
|
+
function SchedulingActivityComponent_For_15_Template(rf, ctx) { if (rf & 1) {
|
|
23
|
+
i0.ɵɵelementStart(0, "option", 8);
|
|
24
24
|
i0.ɵɵtext(1);
|
|
25
25
|
i0.ɵɵelementEnd();
|
|
26
26
|
} if (rf & 2) {
|
|
@@ -29,10 +29,10 @@ function SchedulingActivityComponent_option_13_Template(rf, ctx) { if (rf & 1) {
|
|
|
29
29
|
i0.ɵɵadvance();
|
|
30
30
|
i0.ɵɵtextInterpolate(name_r2);
|
|
31
31
|
} }
|
|
32
|
-
function
|
|
32
|
+
function SchedulingActivityComponent_For_19_Template(rf, ctx) { if (rf & 1) {
|
|
33
33
|
const _r3 = i0.ɵɵgetCurrentView();
|
|
34
|
-
i0.ɵɵelementStart(0, "button",
|
|
35
|
-
i0.ɵɵlistener("click", function
|
|
34
|
+
i0.ɵɵelementStart(0, "button", 16);
|
|
35
|
+
i0.ɵɵlistener("click", function SchedulingActivityComponent_For_19_Template_button_click_0_listener() { const range_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.OnTimeRangeChange(range_r4.value)); });
|
|
36
36
|
i0.ɵɵtext(1);
|
|
37
37
|
i0.ɵɵelementEnd();
|
|
38
38
|
} if (rf & 2) {
|
|
@@ -42,35 +42,35 @@ function SchedulingActivityComponent_button_16_Template(rf, ctx) { if (rf & 1) {
|
|
|
42
42
|
i0.ɵɵadvance();
|
|
43
43
|
i0.ɵɵtextInterpolate1(" ", range_r4.label, " ");
|
|
44
44
|
} }
|
|
45
|
-
function
|
|
46
|
-
i0.ɵɵelementStart(0, "div",
|
|
47
|
-
i0.ɵɵelement(1, "mj-loading",
|
|
45
|
+
function SchedulingActivityComponent_Conditional_23_Template(rf, ctx) { if (rf & 1) {
|
|
46
|
+
i0.ɵɵelementStart(0, "div", 14);
|
|
47
|
+
i0.ɵɵelement(1, "mj-loading", 17);
|
|
48
48
|
i0.ɵɵelementEnd();
|
|
49
49
|
} }
|
|
50
|
-
function
|
|
51
|
-
i0.ɵɵelementStart(0, "div",
|
|
50
|
+
function SchedulingActivityComponent_Conditional_24_Conditional_1_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
51
|
+
i0.ɵɵelementStart(0, "div", 27)(1, "div", 28);
|
|
52
52
|
i0.ɵɵelement(2, "i");
|
|
53
53
|
i0.ɵɵelementEnd();
|
|
54
|
-
i0.ɵɵelementStart(3, "div",
|
|
54
|
+
i0.ɵɵelementStart(3, "div", 29)(4, "div", 30);
|
|
55
55
|
i0.ɵɵtext(5);
|
|
56
56
|
i0.ɵɵelementEnd();
|
|
57
|
-
i0.ɵɵelementStart(6, "div",
|
|
57
|
+
i0.ɵɵelementStart(6, "div", 31)(7, "span");
|
|
58
58
|
i0.ɵɵtext(8);
|
|
59
59
|
i0.ɵɵelementEnd();
|
|
60
|
-
i0.ɵɵelementStart(9, "span",
|
|
60
|
+
i0.ɵɵelementStart(9, "span", 32);
|
|
61
61
|
i0.ɵɵtext(10, "\u00B7");
|
|
62
62
|
i0.ɵɵelementEnd();
|
|
63
63
|
i0.ɵɵelementStart(11, "span");
|
|
64
64
|
i0.ɵɵtext(12);
|
|
65
65
|
i0.ɵɵelementEnd();
|
|
66
|
-
i0.ɵɵelementStart(13, "span",
|
|
66
|
+
i0.ɵɵelementStart(13, "span", 32);
|
|
67
67
|
i0.ɵɵtext(14, "\u00B7");
|
|
68
68
|
i0.ɵɵelementEnd();
|
|
69
69
|
i0.ɵɵelementStart(15, "span");
|
|
70
70
|
i0.ɵɵtext(16);
|
|
71
71
|
i0.ɵɵelementEnd()()();
|
|
72
|
-
i0.ɵɵelementStart(17, "div",
|
|
73
|
-
i0.ɵɵelement(18, "div",
|
|
72
|
+
i0.ɵɵelementStart(17, "div", 33);
|
|
73
|
+
i0.ɵɵelement(18, "div", 34);
|
|
74
74
|
i0.ɵɵelementEnd()();
|
|
75
75
|
} if (rf & 2) {
|
|
76
76
|
const type_r6 = ctx.$implicit;
|
|
@@ -90,83 +90,83 @@ function SchedulingActivityComponent_div_21_div_1_div_1_Template(rf, ctx) { if (
|
|
|
90
90
|
i0.ɵɵadvance(2);
|
|
91
91
|
i0.ɵɵstyleProp("width", type_r6.successRate * 100 + "%")("background", ctx_r4.GetSuccessRateColor(type_r6.successRate));
|
|
92
92
|
} }
|
|
93
|
-
function
|
|
94
|
-
i0.ɵɵelementStart(0, "div",
|
|
95
|
-
i0.ɵɵ
|
|
93
|
+
function SchedulingActivityComponent_Conditional_24_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
94
|
+
i0.ɵɵelementStart(0, "div", 18);
|
|
95
|
+
i0.ɵɵrepeaterCreate(1, SchedulingActivityComponent_Conditional_24_Conditional_1_For_2_Template, 19, 12, "div", 27, i0.ɵɵrepeaterTrackByIdentity);
|
|
96
96
|
i0.ɵɵelementEnd();
|
|
97
97
|
} if (rf & 2) {
|
|
98
98
|
const ctx_r4 = i0.ɵɵnextContext(2);
|
|
99
99
|
i0.ɵɵadvance();
|
|
100
|
-
i0.ɵɵ
|
|
100
|
+
i0.ɵɵrepeater(ctx_r4.JobTypes);
|
|
101
101
|
} }
|
|
102
|
-
function
|
|
103
|
-
i0.ɵɵelement(0, "div",
|
|
102
|
+
function SchedulingActivityComponent_Conditional_24_Conditional_2_For_10_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
103
|
+
i0.ɵɵelement(0, "div", 47);
|
|
104
104
|
} if (rf & 2) {
|
|
105
105
|
const trend_r7 = i0.ɵɵnextContext().$implicit;
|
|
106
106
|
const ctx_r4 = i0.ɵɵnextContext(3);
|
|
107
107
|
i0.ɵɵstyleProp("height", ctx_r4.GetBarHeight(trend_r7.failures));
|
|
108
108
|
i0.ɵɵproperty("title", trend_r7.failures + " failed");
|
|
109
109
|
} }
|
|
110
|
-
function
|
|
111
|
-
i0.ɵɵelementStart(0, "div",
|
|
112
|
-
i0.ɵɵelement(2, "div",
|
|
113
|
-
i0.ɵɵ
|
|
110
|
+
function SchedulingActivityComponent_Conditional_24_Conditional_2_For_10_Template(rf, ctx) { if (rf & 1) {
|
|
111
|
+
i0.ɵɵelementStart(0, "div", 38)(1, "div", 43);
|
|
112
|
+
i0.ɵɵelement(2, "div", 44);
|
|
113
|
+
i0.ɵɵconditionalCreate(3, SchedulingActivityComponent_Conditional_24_Conditional_2_For_10_Conditional_3_Template, 1, 3, "div", 45);
|
|
114
114
|
i0.ɵɵelementEnd();
|
|
115
|
-
i0.ɵɵelementStart(4, "div",
|
|
115
|
+
i0.ɵɵelementStart(4, "div", 46);
|
|
116
116
|
i0.ɵɵtext(5);
|
|
117
117
|
i0.ɵɵelementEnd()();
|
|
118
118
|
} if (rf & 2) {
|
|
119
119
|
const trend_r7 = ctx.$implicit;
|
|
120
|
-
const
|
|
120
|
+
const ɵ$index_105_r8 = ctx.$index;
|
|
121
121
|
const ctx_r4 = i0.ɵɵnextContext(3);
|
|
122
122
|
i0.ɵɵadvance(2);
|
|
123
123
|
i0.ɵɵstyleProp("height", ctx_r4.GetBarHeight(trend_r7.successes));
|
|
124
124
|
i0.ɵɵproperty("title", trend_r7.successes + " successful");
|
|
125
125
|
i0.ɵɵadvance();
|
|
126
|
-
i0.ɵɵ
|
|
126
|
+
i0.ɵɵconditional(trend_r7.failures > 0 ? 3 : -1);
|
|
127
127
|
i0.ɵɵadvance();
|
|
128
|
-
i0.ɵɵclassProp("hidden-label", !ctx_r4.ShouldShowLabel(
|
|
128
|
+
i0.ɵɵclassProp("hidden-label", !ctx_r4.ShouldShowLabel(ɵ$index_105_r8));
|
|
129
129
|
i0.ɵɵadvance();
|
|
130
130
|
i0.ɵɵtextInterpolate(ctx_r4.FormatChartLabel(trend_r7.timestamp));
|
|
131
131
|
} }
|
|
132
|
-
function
|
|
133
|
-
i0.ɵɵelementStart(0, "div",
|
|
134
|
-
i0.ɵɵelement(3, "i",
|
|
132
|
+
function SchedulingActivityComponent_Conditional_24_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
133
|
+
i0.ɵɵelementStart(0, "div", 19)(1, "div", 20)(2, "div", 21);
|
|
134
|
+
i0.ɵɵelement(3, "i", 35);
|
|
135
135
|
i0.ɵɵtext(4, " Execution Trends ");
|
|
136
136
|
i0.ɵɵelementEnd();
|
|
137
|
-
i0.ɵɵelementStart(5, "span",
|
|
137
|
+
i0.ɵɵelementStart(5, "span", 23);
|
|
138
138
|
i0.ɵɵtext(6);
|
|
139
139
|
i0.ɵɵelementEnd()();
|
|
140
|
-
i0.ɵɵelementStart(7, "div",
|
|
141
|
-
i0.ɵɵ
|
|
140
|
+
i0.ɵɵelementStart(7, "div", 36)(8, "div", 37);
|
|
141
|
+
i0.ɵɵrepeaterCreate(9, SchedulingActivityComponent_Conditional_24_Conditional_2_For_10_Template, 6, 7, "div", 38, i0.ɵɵrepeaterTrackByIdentity);
|
|
142
142
|
i0.ɵɵelementEnd();
|
|
143
|
-
i0.ɵɵelementStart(
|
|
144
|
-
i0.ɵɵelement(
|
|
145
|
-
i0.ɵɵtext(
|
|
143
|
+
i0.ɵɵelementStart(11, "div", 39)(12, "span", 40);
|
|
144
|
+
i0.ɵɵelement(13, "span", 41);
|
|
145
|
+
i0.ɵɵtext(14, " Successful");
|
|
146
146
|
i0.ɵɵelementEnd();
|
|
147
|
-
i0.ɵɵelementStart(
|
|
148
|
-
i0.ɵɵelement(
|
|
149
|
-
i0.ɵɵtext(
|
|
147
|
+
i0.ɵɵelementStart(15, "span", 40);
|
|
148
|
+
i0.ɵɵelement(16, "span", 42);
|
|
149
|
+
i0.ɵɵtext(17, " Failed");
|
|
150
150
|
i0.ɵɵelementEnd()()()();
|
|
151
151
|
} if (rf & 2) {
|
|
152
152
|
const ctx_r4 = i0.ɵɵnextContext(2);
|
|
153
153
|
i0.ɵɵadvance(6);
|
|
154
154
|
i0.ɵɵtextInterpolate1("", ctx_r4.FilteredExecutions.length, " executions");
|
|
155
155
|
i0.ɵɵadvance(3);
|
|
156
|
-
i0.ɵɵ
|
|
156
|
+
i0.ɵɵrepeater(ctx_r4.Trends);
|
|
157
157
|
} }
|
|
158
|
-
function
|
|
159
|
-
i0.ɵɵelementStart(0, "div",
|
|
160
|
-
i0.ɵɵelement(1, "i",
|
|
158
|
+
function SchedulingActivityComponent_Conditional_24_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
159
|
+
i0.ɵɵelementStart(0, "div", 25);
|
|
160
|
+
i0.ɵɵelement(1, "i", 48);
|
|
161
161
|
i0.ɵɵelementStart(2, "span");
|
|
162
162
|
i0.ɵɵtext(3, "No executions found for this time range");
|
|
163
163
|
i0.ɵɵelementEnd()();
|
|
164
164
|
} }
|
|
165
|
-
function
|
|
166
|
-
i0.ɵɵelementStart(0, "div",
|
|
165
|
+
function SchedulingActivityComponent_Conditional_24_Conditional_12_For_16_Conditional_15_Conditional_31_Template(rf, ctx) { if (rf & 1) {
|
|
166
|
+
i0.ɵɵelementStart(0, "div", 59)(1, "span", 60);
|
|
167
167
|
i0.ɵɵtext(2, "Error");
|
|
168
168
|
i0.ɵɵelementEnd();
|
|
169
|
-
i0.ɵɵelementStart(3, "span",
|
|
169
|
+
i0.ɵɵelementStart(3, "span", 67);
|
|
170
170
|
i0.ɵɵtext(4);
|
|
171
171
|
i0.ɵɵelementEnd()();
|
|
172
172
|
} if (rf & 2) {
|
|
@@ -174,49 +174,49 @@ function SchedulingActivityComponent_div_21_table_12_ng_container_15_tr_16_div_3
|
|
|
174
174
|
i0.ɵɵadvance(4);
|
|
175
175
|
i0.ɵɵtextInterpolate(exec_r10.errorMessage);
|
|
176
176
|
} }
|
|
177
|
-
function
|
|
177
|
+
function SchedulingActivityComponent_Conditional_24_Conditional_12_For_16_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
178
178
|
const _r11 = i0.ɵɵgetCurrentView();
|
|
179
|
-
i0.ɵɵelementStart(0, "tr",
|
|
179
|
+
i0.ɵɵelementStart(0, "tr", 56)(1, "td")(2, "div", 57)(3, "div", 58)(4, "div", 59)(5, "span", 60);
|
|
180
180
|
i0.ɵɵtext(6, "Job Name");
|
|
181
181
|
i0.ɵɵelementEnd();
|
|
182
|
-
i0.ɵɵelementStart(7, "span",
|
|
182
|
+
i0.ɵɵelementStart(7, "span", 61);
|
|
183
183
|
i0.ɵɵtext(8);
|
|
184
184
|
i0.ɵɵelementEnd()();
|
|
185
|
-
i0.ɵɵelementStart(9, "div",
|
|
185
|
+
i0.ɵɵelementStart(9, "div", 59)(10, "span", 60);
|
|
186
186
|
i0.ɵɵtext(11, "Started");
|
|
187
187
|
i0.ɵɵelementEnd();
|
|
188
|
-
i0.ɵɵelementStart(12, "span",
|
|
188
|
+
i0.ɵɵelementStart(12, "span", 61);
|
|
189
189
|
i0.ɵɵtext(13);
|
|
190
190
|
i0.ɵɵelementEnd()();
|
|
191
|
-
i0.ɵɵelementStart(14, "div",
|
|
191
|
+
i0.ɵɵelementStart(14, "div", 59)(15, "span", 60);
|
|
192
192
|
i0.ɵɵtext(16, "Completed");
|
|
193
193
|
i0.ɵɵelementEnd();
|
|
194
|
-
i0.ɵɵelementStart(17, "span",
|
|
194
|
+
i0.ɵɵelementStart(17, "span", 61);
|
|
195
195
|
i0.ɵɵtext(18);
|
|
196
196
|
i0.ɵɵelementEnd()();
|
|
197
|
-
i0.ɵɵelementStart(19, "div",
|
|
197
|
+
i0.ɵɵelementStart(19, "div", 59)(20, "span", 60);
|
|
198
198
|
i0.ɵɵtext(21, "Duration");
|
|
199
199
|
i0.ɵɵelementEnd();
|
|
200
|
-
i0.ɵɵelementStart(22, "span",
|
|
200
|
+
i0.ɵɵelementStart(22, "span", 61);
|
|
201
201
|
i0.ɵɵtext(23);
|
|
202
202
|
i0.ɵɵelementEnd()();
|
|
203
|
-
i0.ɵɵelementStart(24, "div",
|
|
203
|
+
i0.ɵɵelementStart(24, "div", 59)(25, "span", 60);
|
|
204
204
|
i0.ɵɵtext(26, "Status");
|
|
205
205
|
i0.ɵɵelementEnd();
|
|
206
|
-
i0.ɵɵelementStart(27, "span",
|
|
206
|
+
i0.ɵɵelementStart(27, "span", 61)(28, "span", 52);
|
|
207
207
|
i0.ɵɵelement(29, "i");
|
|
208
208
|
i0.ɵɵtext(30);
|
|
209
209
|
i0.ɵɵelementEnd()()();
|
|
210
|
-
i0.ɵɵ
|
|
210
|
+
i0.ɵɵconditionalCreate(31, SchedulingActivityComponent_Conditional_24_Conditional_12_For_16_Conditional_15_Conditional_31_Template, 5, 1, "div", 59);
|
|
211
211
|
i0.ɵɵelementEnd();
|
|
212
|
-
i0.ɵɵelementStart(32, "div",
|
|
213
|
-
i0.ɵɵlistener("click", function
|
|
214
|
-
i0.ɵɵelement(34, "i",
|
|
212
|
+
i0.ɵɵelementStart(32, "div", 62)(33, "button", 63);
|
|
213
|
+
i0.ɵɵlistener("click", function SchedulingActivityComponent_Conditional_24_Conditional_12_For_16_Conditional_15_Template_button_click_33_listener($event) { i0.ɵɵrestoreView(_r11); const exec_r10 = i0.ɵɵnextContext().$implicit; const ctx_r4 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r4.OpenExecutionRecord(exec_r10, $event)); });
|
|
214
|
+
i0.ɵɵelement(34, "i", 64);
|
|
215
215
|
i0.ɵɵtext(35, " Open Run Record ");
|
|
216
216
|
i0.ɵɵelementEnd();
|
|
217
|
-
i0.ɵɵelementStart(36, "button",
|
|
218
|
-
i0.ɵɵlistener("click", function
|
|
219
|
-
i0.ɵɵelement(37, "i",
|
|
217
|
+
i0.ɵɵelementStart(36, "button", 65);
|
|
218
|
+
i0.ɵɵlistener("click", function SchedulingActivityComponent_Conditional_24_Conditional_12_For_16_Conditional_15_Template_button_click_36_listener($event) { i0.ɵɵrestoreView(_r11); const exec_r10 = i0.ɵɵnextContext().$implicit; const ctx_r4 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r4.OpenJobRecord(exec_r10, $event)); });
|
|
219
|
+
i0.ɵɵelement(37, "i", 66);
|
|
220
220
|
i0.ɵɵtext(38, " Open Job ");
|
|
221
221
|
i0.ɵɵelementEnd()()()()();
|
|
222
222
|
} if (rf & 2) {
|
|
@@ -239,38 +239,35 @@ function SchedulingActivityComponent_div_21_table_12_ng_container_15_tr_16_Templ
|
|
|
239
239
|
i0.ɵɵadvance();
|
|
240
240
|
i0.ɵɵtextInterpolate1(" ", exec_r10.status, " ");
|
|
241
241
|
i0.ɵɵadvance();
|
|
242
|
-
i0.ɵɵ
|
|
242
|
+
i0.ɵɵconditional(exec_r10.errorMessage ? 31 : -1);
|
|
243
243
|
} }
|
|
244
|
-
function
|
|
244
|
+
function SchedulingActivityComponent_Conditional_24_Conditional_12_For_16_Template(rf, ctx) { if (rf & 1) {
|
|
245
245
|
const _r9 = i0.ɵɵgetCurrentView();
|
|
246
|
-
i0.ɵɵ
|
|
247
|
-
i0.ɵɵ
|
|
248
|
-
i0.ɵɵ
|
|
249
|
-
i0.ɵɵ
|
|
250
|
-
i0.ɵɵ
|
|
251
|
-
i0.ɵɵ
|
|
252
|
-
i0.ɵɵ
|
|
253
|
-
i0.ɵɵ
|
|
254
|
-
i0.ɵɵtext(7);
|
|
246
|
+
i0.ɵɵelementStart(0, "tr", 50);
|
|
247
|
+
i0.ɵɵlistener("click", function SchedulingActivityComponent_Conditional_24_Conditional_12_For_16_Template_tr_click_0_listener() { const exec_r10 = i0.ɵɵrestoreView(_r9).$implicit; const ctx_r4 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r4.ToggleExpand(exec_r10)); });
|
|
248
|
+
i0.ɵɵelementStart(1, "td", 49);
|
|
249
|
+
i0.ɵɵelement(2, "i", 51);
|
|
250
|
+
i0.ɵɵelementEnd();
|
|
251
|
+
i0.ɵɵelementStart(3, "td")(4, "span", 52);
|
|
252
|
+
i0.ɵɵelement(5, "i");
|
|
253
|
+
i0.ɵɵtext(6);
|
|
255
254
|
i0.ɵɵelementEnd()();
|
|
256
|
-
i0.ɵɵelementStart(
|
|
257
|
-
i0.ɵɵtext(
|
|
255
|
+
i0.ɵɵelementStart(7, "td", 53);
|
|
256
|
+
i0.ɵɵtext(8);
|
|
258
257
|
i0.ɵɵelementEnd();
|
|
259
|
-
i0.ɵɵelementStart(
|
|
260
|
-
i0.ɵɵtext(
|
|
258
|
+
i0.ɵɵelementStart(9, "td", 54);
|
|
259
|
+
i0.ɵɵtext(10);
|
|
261
260
|
i0.ɵɵelementEnd();
|
|
262
|
-
i0.ɵɵelementStart(
|
|
263
|
-
i0.ɵɵtext(
|
|
261
|
+
i0.ɵɵelementStart(11, "td", 54);
|
|
262
|
+
i0.ɵɵtext(12);
|
|
264
263
|
i0.ɵɵelementEnd();
|
|
265
|
-
i0.ɵɵelementStart(
|
|
266
|
-
i0.ɵɵtext(
|
|
264
|
+
i0.ɵɵelementStart(13, "td", 55);
|
|
265
|
+
i0.ɵɵtext(14);
|
|
267
266
|
i0.ɵɵelementEnd()();
|
|
268
|
-
i0.ɵɵ
|
|
269
|
-
i0.ɵɵelementContainerEnd();
|
|
267
|
+
i0.ɵɵconditionalCreate(15, SchedulingActivityComponent_Conditional_24_Conditional_12_For_16_Conditional_15_Template, 39, 10, "tr", 56);
|
|
270
268
|
} if (rf & 2) {
|
|
271
269
|
const exec_r10 = ctx.$implicit;
|
|
272
270
|
const ctx_r4 = i0.ɵɵnextContext(3);
|
|
273
|
-
i0.ɵɵadvance();
|
|
274
271
|
i0.ɵɵclassProp("expanded", ctx_r4.IsExpanded(exec_r10));
|
|
275
272
|
i0.ɵɵadvance(2);
|
|
276
273
|
i0.ɵɵclassProp("rotated", ctx_r4.IsExpanded(exec_r10));
|
|
@@ -289,11 +286,11 @@ function SchedulingActivityComponent_div_21_table_12_ng_container_15_Template(rf
|
|
|
289
286
|
i0.ɵɵadvance(2);
|
|
290
287
|
i0.ɵɵtextInterpolate(ctx_r4.TruncateError(exec_r10.errorMessage));
|
|
291
288
|
i0.ɵɵadvance();
|
|
292
|
-
i0.ɵɵ
|
|
289
|
+
i0.ɵɵconditional(ctx_r4.IsExpanded(exec_r10) ? 15 : -1);
|
|
293
290
|
} }
|
|
294
|
-
function
|
|
295
|
-
i0.ɵɵelementStart(0, "table",
|
|
296
|
-
i0.ɵɵelement(3, "th",
|
|
291
|
+
function SchedulingActivityComponent_Conditional_24_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
292
|
+
i0.ɵɵelementStart(0, "table", 26)(1, "thead")(2, "tr");
|
|
293
|
+
i0.ɵɵelement(3, "th", 49);
|
|
297
294
|
i0.ɵɵelementStart(4, "th");
|
|
298
295
|
i0.ɵɵtext(5, "Status");
|
|
299
296
|
i0.ɵɵelementEnd();
|
|
@@ -310,38 +307,40 @@ function SchedulingActivityComponent_div_21_table_12_Template(rf, ctx) { if (rf
|
|
|
310
307
|
i0.ɵɵtext(13, "Error");
|
|
311
308
|
i0.ɵɵelementEnd()()();
|
|
312
309
|
i0.ɵɵelementStart(14, "tbody");
|
|
313
|
-
i0.ɵɵ
|
|
310
|
+
i0.ɵɵrepeaterCreate(15, SchedulingActivityComponent_Conditional_24_Conditional_12_For_16_Template, 16, 13, null, null, i0.ɵɵrepeaterTrackByIdentity);
|
|
314
311
|
i0.ɵɵelementEnd()();
|
|
315
312
|
} if (rf & 2) {
|
|
316
313
|
const ctx_r4 = i0.ɵɵnextContext(2);
|
|
317
314
|
i0.ɵɵadvance(15);
|
|
318
|
-
i0.ɵɵ
|
|
315
|
+
i0.ɵɵrepeater(ctx_r4.FilteredExecutions);
|
|
319
316
|
} }
|
|
320
|
-
function
|
|
321
|
-
i0.ɵɵelementStart(0, "div",
|
|
322
|
-
i0.ɵɵ
|
|
323
|
-
i0.ɵɵ
|
|
324
|
-
i0.ɵɵ
|
|
317
|
+
function SchedulingActivityComponent_Conditional_24_Template(rf, ctx) { if (rf & 1) {
|
|
318
|
+
i0.ɵɵelementStart(0, "div", 15);
|
|
319
|
+
i0.ɵɵconditionalCreate(1, SchedulingActivityComponent_Conditional_24_Conditional_1_Template, 3, 0, "div", 18);
|
|
320
|
+
i0.ɵɵconditionalCreate(2, SchedulingActivityComponent_Conditional_24_Conditional_2_Template, 18, 1, "div", 19);
|
|
321
|
+
i0.ɵɵelementStart(3, "div", 19)(4, "div", 20)(5, "div", 21);
|
|
322
|
+
i0.ɵɵelement(6, "i", 22);
|
|
325
323
|
i0.ɵɵtext(7, " Execution History ");
|
|
326
324
|
i0.ɵɵelementEnd();
|
|
327
|
-
i0.ɵɵelementStart(8, "span",
|
|
325
|
+
i0.ɵɵelementStart(8, "span", 23);
|
|
328
326
|
i0.ɵɵtext(9);
|
|
329
327
|
i0.ɵɵelementEnd()();
|
|
330
|
-
i0.ɵɵelementStart(10, "div",
|
|
331
|
-
i0.ɵɵ
|
|
328
|
+
i0.ɵɵelementStart(10, "div", 24);
|
|
329
|
+
i0.ɵɵconditionalCreate(11, SchedulingActivityComponent_Conditional_24_Conditional_11_Template, 4, 0, "div", 25);
|
|
330
|
+
i0.ɵɵconditionalCreate(12, SchedulingActivityComponent_Conditional_24_Conditional_12_Template, 17, 0, "table", 26);
|
|
332
331
|
i0.ɵɵelementEnd()()();
|
|
333
332
|
} if (rf & 2) {
|
|
334
333
|
const ctx_r4 = i0.ɵɵnextContext();
|
|
335
334
|
i0.ɵɵadvance();
|
|
336
|
-
i0.ɵɵ
|
|
335
|
+
i0.ɵɵconditional(ctx_r4.JobTypes.length > 0 ? 1 : -1);
|
|
337
336
|
i0.ɵɵadvance();
|
|
338
|
-
i0.ɵɵ
|
|
337
|
+
i0.ɵɵconditional(ctx_r4.Trends.length > 0 ? 2 : -1);
|
|
339
338
|
i0.ɵɵadvance(7);
|
|
340
|
-
i0.ɵɵtextInterpolate2("", ctx_r4.FilteredExecutions.length, " of ", ctx_r4.Executions.length
|
|
339
|
+
i0.ɵɵtextInterpolate2("", ctx_r4.FilteredExecutions.length, " of ", ctx_r4.Executions.length);
|
|
341
340
|
i0.ɵɵadvance(2);
|
|
342
|
-
i0.ɵɵ
|
|
341
|
+
i0.ɵɵconditional(ctx_r4.FilteredExecutions.length === 0 ? 11 : -1);
|
|
343
342
|
i0.ɵɵadvance();
|
|
344
|
-
i0.ɵɵ
|
|
343
|
+
i0.ɵɵconditional(ctx_r4.FilteredExecutions.length > 0 ? 12 : -1);
|
|
345
344
|
} }
|
|
346
345
|
export class SchedulingActivityComponent {
|
|
347
346
|
schedulingService;
|
|
@@ -653,7 +652,7 @@ export class SchedulingActivityComponent {
|
|
|
653
652
|
this.settingsPersistSubject.next();
|
|
654
653
|
}
|
|
655
654
|
static ɵfac = function SchedulingActivityComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SchedulingActivityComponent)(i0.ɵɵdirectiveInject(i1.SchedulingInstrumentationService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
|
|
656
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SchedulingActivityComponent, selectors: [["app-scheduling-activity"]], inputs: { initialState: "initialState" }, outputs: { stateChange: "stateChange" }, decls:
|
|
655
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SchedulingActivityComponent, selectors: [["app-scheduling-activity"]], inputs: { initialState: "initialState" }, outputs: { stateChange: "stateChange" }, standalone: false, decls: 25, vars: 5, consts: [[1, "activity-container"], [1, "activity-toolbar"], [1, "toolbar-left"], [1, "search-box"], [1, "fa-solid", "fa-search"], ["type", "text", "placeholder", "Search executions...", 3, "input", "value"], [1, "filter-select", 3, "change", "value"], ["value", ""], [3, "value"], [1, "toolbar-right"], [1, "time-range-group"], [1, "range-btn", 3, "active"], [1, "control-btn", 3, "click"], [1, "fa-solid", "fa-arrows-rotate"], [1, "loading-container"], [1, "activity-content"], [1, "range-btn", 3, "click"], ["text", "Loading activity...", "size", "medium"], [1, "type-cards-row"], [1, "panel"], [1, "panel-header"], [1, "panel-title"], [1, "fa-solid", "fa-clock-rotate-left"], [1, "result-count"], [1, "panel-body", "table-container"], [1, "empty-state-small"], [1, "data-table"], [1, "type-card"], [1, "type-card-icon"], [1, "type-card-info"], [1, "type-card-name"], [1, "type-card-stats"], [1, "dot"], [1, "type-card-bar"], [1, "type-bar-fill"], [1, "fa-solid", "fa-chart-bar"], [1, "panel-body", "chart-container"], [1, "trend-chart"], [1, "chart-column"], [1, "chart-legend"], [1, "legend-item"], [1, "legend-dot", "success"], [1, "legend-dot", "failure"], [1, "bars-wrapper"], [1, "bar", "success-bar", 3, "title"], [1, "bar", "failure-bar", 3, "height", "title"], [1, "chart-label"], [1, "bar", "failure-bar", 3, "title"], [1, "fa-solid", "fa-inbox"], [1, "col-expand"], [1, "exec-row", 3, "click"], [1, "fa-solid", "fa-chevron-right", "expand-icon"], [1, "exec-status-badge", 3, "ngClass"], [1, "cell-name"], [1, "cell-meta"], [1, "cell-error"], [1, "exec-detail-row"], [1, "exec-detail-content"], [1, "exec-detail-grid"], [1, "detail-item"], [1, "detail-label"], [1, "detail-value"], [1, "exec-detail-actions"], [1, "detail-action-btn", 3, "click"], [1, "fa-solid", "fa-arrow-up-right-from-square"], [1, "detail-action-btn", "secondary", 3, "click"], [1, "fa-solid", "fa-briefcase"], [1, "detail-value", "error-text"]], template: function SchedulingActivityComponent_Template(rf, ctx) { if (rf & 1) {
|
|
657
656
|
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3);
|
|
658
657
|
i0.ɵɵelement(4, "i", 4);
|
|
659
658
|
i0.ɵɵelementStart(5, "input", 5);
|
|
@@ -664,24 +663,25 @@ export class SchedulingActivityComponent {
|
|
|
664
663
|
i0.ɵɵelementStart(7, "option", 7);
|
|
665
664
|
i0.ɵɵtext(8, "All Statuses");
|
|
666
665
|
i0.ɵɵelementEnd();
|
|
667
|
-
i0.ɵɵ
|
|
666
|
+
i0.ɵɵrepeaterCreate(9, SchedulingActivityComponent_For_10_Template, 2, 2, "option", 8, i0.ɵɵrepeaterTrackByIdentity);
|
|
668
667
|
i0.ɵɵelementEnd();
|
|
669
|
-
i0.ɵɵelementStart(
|
|
670
|
-
i0.ɵɵlistener("change", function
|
|
671
|
-
i0.ɵɵelementStart(
|
|
672
|
-
i0.ɵɵtext(
|
|
668
|
+
i0.ɵɵelementStart(11, "select", 6);
|
|
669
|
+
i0.ɵɵlistener("change", function SchedulingActivityComponent_Template_select_change_11_listener($event) { return ctx.OnJobNameFilterChange($event.target.value); });
|
|
670
|
+
i0.ɵɵelementStart(12, "option", 7);
|
|
671
|
+
i0.ɵɵtext(13, "All Jobs");
|
|
673
672
|
i0.ɵɵelementEnd();
|
|
674
|
-
i0.ɵɵ
|
|
673
|
+
i0.ɵɵrepeaterCreate(14, SchedulingActivityComponent_For_15_Template, 2, 2, "option", 8, i0.ɵɵrepeaterTrackByIdentity);
|
|
675
674
|
i0.ɵɵelementEnd()();
|
|
676
|
-
i0.ɵɵelementStart(
|
|
677
|
-
i0.ɵɵ
|
|
675
|
+
i0.ɵɵelementStart(16, "div", 9)(17, "div", 10);
|
|
676
|
+
i0.ɵɵrepeaterCreate(18, SchedulingActivityComponent_For_19_Template, 2, 3, "button", 11, i0.ɵɵrepeaterTrackByIdentity);
|
|
678
677
|
i0.ɵɵelementEnd();
|
|
679
|
-
i0.ɵɵelementStart(
|
|
680
|
-
i0.ɵɵlistener("click", function
|
|
681
|
-
i0.ɵɵelement(
|
|
682
|
-
i0.ɵɵtext(
|
|
678
|
+
i0.ɵɵelementStart(20, "button", 12);
|
|
679
|
+
i0.ɵɵlistener("click", function SchedulingActivityComponent_Template_button_click_20_listener() { return ctx.Refresh(); });
|
|
680
|
+
i0.ɵɵelement(21, "i", 13);
|
|
681
|
+
i0.ɵɵtext(22, " Refresh ");
|
|
683
682
|
i0.ɵɵelementEnd()()();
|
|
684
|
-
i0.ɵɵ
|
|
683
|
+
i0.ɵɵconditionalCreate(23, SchedulingActivityComponent_Conditional_23_Template, 2, 0, "div", 14);
|
|
684
|
+
i0.ɵɵconditionalCreate(24, SchedulingActivityComponent_Conditional_24_Template, 13, 6, "div", 15);
|
|
685
685
|
i0.ɵɵelementEnd();
|
|
686
686
|
} if (rf & 2) {
|
|
687
687
|
i0.ɵɵadvance(5);
|
|
@@ -689,26 +689,26 @@ export class SchedulingActivityComponent {
|
|
|
689
689
|
i0.ɵɵadvance();
|
|
690
690
|
i0.ɵɵproperty("value", ctx.StatusFilter);
|
|
691
691
|
i0.ɵɵadvance(3);
|
|
692
|
-
i0.ɵɵ
|
|
693
|
-
i0.ɵɵadvance();
|
|
692
|
+
i0.ɵɵrepeater(ctx.StatusOptions.slice(1));
|
|
693
|
+
i0.ɵɵadvance(2);
|
|
694
694
|
i0.ɵɵproperty("value", ctx.JobNameFilter);
|
|
695
695
|
i0.ɵɵadvance(3);
|
|
696
|
-
i0.ɵɵ
|
|
697
|
-
i0.ɵɵadvance(3);
|
|
698
|
-
i0.ɵɵproperty("ngForOf", ctx.TimeRanges);
|
|
696
|
+
i0.ɵɵrepeater(ctx.UniqueJobNames);
|
|
699
697
|
i0.ɵɵadvance(4);
|
|
700
|
-
i0.ɵɵ
|
|
698
|
+
i0.ɵɵrepeater(ctx.TimeRanges);
|
|
699
|
+
i0.ɵɵadvance(5);
|
|
700
|
+
i0.ɵɵconditional(ctx.IsLoading ? 23 : -1);
|
|
701
701
|
i0.ɵɵadvance();
|
|
702
|
-
i0.ɵɵ
|
|
703
|
-
} }, dependencies: [i2.NgClass, i2.NgForOf, i2.NgIf, i3.NgSelectOption, i3.ɵNgSelectMultipleOption, i4.LoadingComponent], styles: [".activity-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 20px;\n}\n\n\n\n.activity-toolbar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 12px;\n}\n\n.toolbar-left[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.toolbar-right[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.search-box[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 14px;\n background: white;\n border: 1px solid #e5e7eb;\n border-radius: 10px;\n min-width: 220px;\n transition: border-color 0.2s;\n}\n\n.search-box[_ngcontent-%COMP%]:focus-within {\n border-color: #0076b6;\n box-shadow: 0 0 0 3px rgba(0, 118, 182, 0.1);\n}\n\n.search-box[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: #94a3b8; font-size: 0.85rem; }\n\n.search-box[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n border: none; outline: none; background: transparent;\n font-size: 0.85rem; color: #0f172a; width: 100%;\n}\n\n.filter-select[_ngcontent-%COMP%] {\n padding: 8px 14px;\n background: white;\n border: 1px solid #e5e7eb;\n border-radius: 10px;\n font-size: 0.85rem;\n color: #475569;\n cursor: pointer;\n outline: none;\n}\n\n.time-range-group[_ngcontent-%COMP%] {\n display: flex;\n background: white;\n border: 1px solid #e5e7eb;\n border-radius: 10px;\n overflow: hidden;\n}\n\n.range-btn[_ngcontent-%COMP%] {\n padding: 8px 14px;\n border: none;\n background: transparent;\n font-size: 0.8rem;\n font-weight: 500;\n color: #64748b;\n cursor: pointer;\n transition: all 0.2s;\n border-right: 1px solid #e5e7eb;\n}\n\n.range-btn[_ngcontent-%COMP%]:last-child { border-right: none; }\n\n.range-btn[_ngcontent-%COMP%]:hover { background: #f3f4f6; }\n\n.range-btn.active[_ngcontent-%COMP%] {\n background: #0076b6;\n color: white;\n}\n\n.control-btn[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 8px 16px;\n background: white;\n border: 1px solid #e5e7eb;\n border-radius: 10px;\n cursor: pointer;\n font-size: 0.8rem;\n font-weight: 500;\n color: #475569;\n transition: all 0.2s ease;\n}\n\n.control-btn[_ngcontent-%COMP%]:hover {\n background: #f3f4f6;\n border-color: #999;\n}\n\n.result-count[_ngcontent-%COMP%] {\n font-size: 0.8rem;\n color: #94a3b8;\n white-space: nowrap;\n}\n\n.loading-container[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n align-items: center;\n min-height: 300px;\n}\n\n\n\n.type-cards-row[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.type-card[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 14px;\n padding: 16px 20px;\n background: white;\n border-radius: 14px;\n border: 1px solid #e2e8f0;\n box-shadow: 0 1px 3px rgba(0,0,0,0.05);\n flex: 1;\n min-width: 240px;\n transition: all 0.2s ease;\n}\n\n.type-card[_ngcontent-%COMP%]:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 12px rgba(0,0,0,0.08);\n}\n\n.type-card-icon[_ngcontent-%COMP%] {\n width: 44px;\n height: 44px;\n border-radius: 12px;\n background: linear-gradient(135deg, #0076b6, #005a8c);\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 1.1rem;\n flex-shrink: 0;\n}\n\n.type-card-info[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.type-card-name[_ngcontent-%COMP%] {\n font-weight: 700;\n color: #0f172a;\n font-size: 0.9rem;\n}\n\n.type-card-stats[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n color: #64748b;\n margin-top: 2px;\n}\n\n.type-card-stats[_ngcontent-%COMP%] .dot[_ngcontent-%COMP%] {\n margin: 0 4px;\n}\n\n.type-card-bar[_ngcontent-%COMP%] {\n width: 60px;\n height: 6px;\n background: #f1f5f9;\n border-radius: 3px;\n overflow: hidden;\n}\n\n.type-bar-fill[_ngcontent-%COMP%] {\n height: 100%;\n border-radius: 3px;\n transition: width 0.5s;\n}\n\n\n\n.panel[_ngcontent-%COMP%] {\n background: white;\n border-radius: 16px;\n border: 1px solid #e2e8f0;\n box-shadow: 0 1px 3px rgba(0,0,0,0.05);\n overflow: hidden;\n}\n\n.panel-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n background: #f9fafb;\n border-bottom: 1px solid #e5e7eb;\n}\n\n.panel-title[_ngcontent-%COMP%] {\n font-size: 0.95rem;\n font-weight: 700;\n color: #0f172a;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.panel-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: #0076b6; }\n\n.panel-body[_ngcontent-%COMP%] {\n padding: 20px;\n}\n\n.chart-container[_ngcontent-%COMP%] {\n padding: 20px;\n}\n\n.table-container[_ngcontent-%COMP%] {\n padding: 0;\n max-height: 600px;\n overflow-y: auto;\n}\n\n\n\n.trend-chart[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n height: 220px;\n align-items: flex-end;\n padding-bottom: 50px;\n overflow-x: auto;\n}\n\n.chart-column[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n flex: 1;\n min-width: 24px;\n max-width: 40px;\n height: 100%;\n}\n\n.bars-wrapper[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 1px;\n flex: 1;\n justify-content: flex-end;\n width: 100%;\n}\n\n.bar[_ngcontent-%COMP%] {\n width: 100%;\n border-radius: 3px 3px 0 0;\n min-height: 2px;\n transition: height 0.3s;\n}\n\n.success-bar[_ngcontent-%COMP%] {\n background: linear-gradient(180deg, #34d399, #10b981);\n}\n\n.failure-bar[_ngcontent-%COMP%] {\n background: linear-gradient(180deg, #f87171, #ef4444);\n border-radius: 0;\n}\n\n.chart-label[_ngcontent-%COMP%] {\n font-size: 0.6rem;\n color: #94a3b8;\n margin-top: 6px;\n white-space: nowrap;\n text-align: center;\n transform: rotate(-45deg);\n transform-origin: top center;\n height: 40px;\n overflow: visible;\n}\n\n.chart-label.hidden-label[_ngcontent-%COMP%] {\n visibility: hidden;\n}\n\n.chart-legend[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n gap: 20px;\n margin-top: 12px;\n}\n\n.legend-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 0.75rem;\n color: #64748b;\n}\n\n.legend-dot[_ngcontent-%COMP%] {\n width: 10px;\n height: 10px;\n border-radius: 3px;\n}\n\n.legend-dot.success[_ngcontent-%COMP%] { background: #10b981; }\n.legend-dot.failure[_ngcontent-%COMP%] { background: #ef4444; }\n\n\n\n.data-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n}\n\n.data-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n text-align: left;\n font-size: 0.7rem;\n font-weight: 700;\n color: #94a3b8;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n padding: 12px 16px;\n border-bottom: 1px solid #e5e7eb;\n position: sticky;\n top: 0;\n background: #f9fafb;\n z-index: 1;\n}\n\n.data-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 10px 16px;\n font-size: 0.85rem;\n border-bottom: 1px solid #f1f5f9;\n}\n\n.data-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover {\n background: #f8fafc;\n}\n\n.cell-name[_ngcontent-%COMP%] { font-weight: 600; color: #0f172a; }\n.cell-meta[_ngcontent-%COMP%] { color: #64748b; }\n.cell-error[_ngcontent-%COMP%] { color: #ef4444; font-size: 0.8rem; max-width: 300px; }\n\n.exec-status-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n font-size: 0.7rem;\n font-weight: 600;\n padding: 3px 10px;\n border-radius: 12px;\n white-space: nowrap;\n}\n\n.exec-status-badge.status-running[_ngcontent-%COMP%] { background: #dbeafe; color: #1d4ed8; }\n.exec-status-badge.status-success[_ngcontent-%COMP%] { background: #dcfce7; color: #166534; }\n.exec-status-badge.status-error[_ngcontent-%COMP%] { background: #fee2e2; color: #991b1b; }\n.exec-status-badge.status-warning[_ngcontent-%COMP%] { background: #fef3c7; color: #92400e; }\n\n\n\n.col-expand[_ngcontent-%COMP%] {\n width: 32px;\n text-align: center;\n}\n\n.expand-icon[_ngcontent-%COMP%] {\n font-size: 0.7rem;\n color: #94a3b8;\n transition: transform 0.2s ease;\n}\n\n.expand-icon.rotated[_ngcontent-%COMP%] {\n transform: rotate(90deg);\n}\n\n.exec-row[_ngcontent-%COMP%] {\n cursor: pointer;\n transition: background 0.15s;\n}\n\n.exec-row[_ngcontent-%COMP%]:hover {\n background: #f1f5f9;\n}\n\n.exec-row.expanded[_ngcontent-%COMP%] {\n background: #f8fafc;\n border-bottom-color: transparent;\n}\n\n.exec-detail-row[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 0 !important;\n border-bottom: 1px solid #e2e8f0;\n}\n\n.exec-detail-content[_ngcontent-%COMP%] {\n padding: 16px 20px 16px 48px;\n background: #f8fafc;\n border-top: 1px solid #f1f5f9;\n}\n\n.exec-detail-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));\n gap: 12px 24px;\n margin-bottom: 14px;\n}\n\n.detail-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.detail-label[_ngcontent-%COMP%] {\n font-size: 0.7rem;\n font-weight: 600;\n color: #94a3b8;\n text-transform: uppercase;\n letter-spacing: 0.03em;\n}\n\n.detail-value[_ngcontent-%COMP%] {\n font-size: 0.85rem;\n color: #0f172a;\n}\n\n.detail-value.error-text[_ngcontent-%COMP%] {\n color: #ef4444;\n font-size: 0.8rem;\n word-break: break-word;\n}\n\n.exec-detail-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n padding-top: 10px;\n border-top: 1px solid #e5e7eb;\n}\n\n.detail-action-btn[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 14px;\n background: #0076b6;\n color: white;\n border: none;\n border-radius: 8px;\n font-size: 0.8rem;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n}\n\n.detail-action-btn[_ngcontent-%COMP%]:hover {\n background: #005a8c;\n}\n\n.detail-action-btn.secondary[_ngcontent-%COMP%] {\n background: white;\n color: #475569;\n border: 1px solid #e2e8f0;\n}\n\n.detail-action-btn.secondary[_ngcontent-%COMP%]:hover {\n background: #f1f5f9;\n border-color: #cbd5e1;\n}\n\n.empty-state-small[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n padding: 48px 16px;\n color: #94a3b8;\n}\n\n.empty-state-small[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 2rem; color: #cbd5e1; }\n.empty-state-small[_ngcontent-%COMP%] span[_ngcontent-%COMP%] { font-size: 0.85rem; }\n\n\n\n@media (max-width: 1024px) {\n .type-cards-row[_ngcontent-%COMP%] {\n flex-direction: column;\n }\n .type-card[_ngcontent-%COMP%] {\n min-width: auto;\n }\n}\n\n@media (max-width: 768px) {\n .activity-toolbar[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n }\n .toolbar-right[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n justify-content: space-between;\n }\n .search-box[_ngcontent-%COMP%] {\n min-width: auto;\n flex: 1;\n }\n .trend-chart[_ngcontent-%COMP%] {\n height: 120px;\n }\n .data-table[_ngcontent-%COMP%] {\n font-size: 0.8rem;\n }\n}"], changeDetection: 0 });
|
|
702
|
+
i0.ɵɵconditional(!ctx.IsLoading ? 24 : -1);
|
|
703
|
+
} }, dependencies: [i2.NgClass, i3.NgSelectOption, i3.ɵNgSelectMultipleOption, i4.LoadingComponent], styles: [".activity-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 20px;\n}\n\n\n\n.activity-toolbar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 12px;\n}\n\n.toolbar-left[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.toolbar-right[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.search-box[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 14px;\n background: white;\n border: 1px solid #e5e7eb;\n border-radius: 10px;\n min-width: 220px;\n transition: border-color 0.2s;\n}\n\n.search-box[_ngcontent-%COMP%]:focus-within {\n border-color: #0076b6;\n box-shadow: 0 0 0 3px rgba(0, 118, 182, 0.1);\n}\n\n.search-box[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: #94a3b8; font-size: 0.85rem; }\n\n.search-box[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n border: none; outline: none; background: transparent;\n font-size: 0.85rem; color: #0f172a; width: 100%;\n}\n\n.filter-select[_ngcontent-%COMP%] {\n padding: 8px 14px;\n background: white;\n border: 1px solid #e5e7eb;\n border-radius: 10px;\n font-size: 0.85rem;\n color: #475569;\n cursor: pointer;\n outline: none;\n}\n\n.time-range-group[_ngcontent-%COMP%] {\n display: flex;\n background: white;\n border: 1px solid #e5e7eb;\n border-radius: 10px;\n overflow: hidden;\n}\n\n.range-btn[_ngcontent-%COMP%] {\n padding: 8px 14px;\n border: none;\n background: transparent;\n font-size: 0.8rem;\n font-weight: 500;\n color: #64748b;\n cursor: pointer;\n transition: all 0.2s;\n border-right: 1px solid #e5e7eb;\n}\n\n.range-btn[_ngcontent-%COMP%]:last-child { border-right: none; }\n\n.range-btn[_ngcontent-%COMP%]:hover { background: #f3f4f6; }\n\n.range-btn.active[_ngcontent-%COMP%] {\n background: #0076b6;\n color: white;\n}\n\n.control-btn[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 8px 16px;\n background: white;\n border: 1px solid #e5e7eb;\n border-radius: 10px;\n cursor: pointer;\n font-size: 0.8rem;\n font-weight: 500;\n color: #475569;\n transition: all 0.2s ease;\n}\n\n.control-btn[_ngcontent-%COMP%]:hover {\n background: #f3f4f6;\n border-color: #999;\n}\n\n.result-count[_ngcontent-%COMP%] {\n font-size: 0.8rem;\n color: #94a3b8;\n white-space: nowrap;\n}\n\n.loading-container[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n align-items: center;\n min-height: 300px;\n}\n\n\n\n.type-cards-row[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.type-card[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 14px;\n padding: 16px 20px;\n background: white;\n border-radius: 14px;\n border: 1px solid #e2e8f0;\n box-shadow: 0 1px 3px rgba(0,0,0,0.05);\n flex: 1;\n min-width: 240px;\n transition: all 0.2s ease;\n}\n\n.type-card[_ngcontent-%COMP%]:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 12px rgba(0,0,0,0.08);\n}\n\n.type-card-icon[_ngcontent-%COMP%] {\n width: 44px;\n height: 44px;\n border-radius: 12px;\n background: linear-gradient(135deg, #0076b6, #005a8c);\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 1.1rem;\n flex-shrink: 0;\n}\n\n.type-card-info[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.type-card-name[_ngcontent-%COMP%] {\n font-weight: 700;\n color: #0f172a;\n font-size: 0.9rem;\n}\n\n.type-card-stats[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n color: #64748b;\n margin-top: 2px;\n}\n\n.type-card-stats[_ngcontent-%COMP%] .dot[_ngcontent-%COMP%] {\n margin: 0 4px;\n}\n\n.type-card-bar[_ngcontent-%COMP%] {\n width: 60px;\n height: 6px;\n background: #f1f5f9;\n border-radius: 3px;\n overflow: hidden;\n}\n\n.type-bar-fill[_ngcontent-%COMP%] {\n height: 100%;\n border-radius: 3px;\n transition: width 0.5s;\n}\n\n\n\n.panel[_ngcontent-%COMP%] {\n background: white;\n border-radius: 16px;\n border: 1px solid #e2e8f0;\n box-shadow: 0 1px 3px rgba(0,0,0,0.05);\n overflow: hidden;\n}\n\n.panel-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n background: #f9fafb;\n border-bottom: 1px solid #e5e7eb;\n}\n\n.panel-title[_ngcontent-%COMP%] {\n font-size: 0.95rem;\n font-weight: 700;\n color: #0f172a;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.panel-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: #0076b6; }\n\n.panel-body[_ngcontent-%COMP%] {\n padding: 20px;\n}\n\n.chart-container[_ngcontent-%COMP%] {\n padding: 20px;\n}\n\n.table-container[_ngcontent-%COMP%] {\n padding: 0;\n max-height: 600px;\n overflow-y: auto;\n}\n\n\n\n.trend-chart[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n height: 220px;\n align-items: flex-end;\n padding-bottom: 50px;\n overflow-x: auto;\n}\n\n.chart-column[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n flex: 1;\n min-width: 24px;\n max-width: 40px;\n height: 100%;\n}\n\n.bars-wrapper[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 1px;\n flex: 1;\n justify-content: flex-end;\n width: 100%;\n}\n\n.bar[_ngcontent-%COMP%] {\n width: 100%;\n border-radius: 3px 3px 0 0;\n min-height: 2px;\n transition: height 0.3s;\n}\n\n.success-bar[_ngcontent-%COMP%] {\n background: linear-gradient(180deg, #34d399, #10b981);\n}\n\n.failure-bar[_ngcontent-%COMP%] {\n background: linear-gradient(180deg, #f87171, #ef4444);\n border-radius: 0;\n}\n\n.chart-label[_ngcontent-%COMP%] {\n font-size: 0.6rem;\n color: #94a3b8;\n margin-top: 6px;\n white-space: nowrap;\n text-align: center;\n transform: rotate(-45deg);\n transform-origin: top center;\n height: 40px;\n overflow: visible;\n}\n\n.chart-label.hidden-label[_ngcontent-%COMP%] {\n visibility: hidden;\n}\n\n.chart-legend[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n gap: 20px;\n margin-top: 12px;\n}\n\n.legend-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 0.75rem;\n color: #64748b;\n}\n\n.legend-dot[_ngcontent-%COMP%] {\n width: 10px;\n height: 10px;\n border-radius: 3px;\n}\n\n.legend-dot.success[_ngcontent-%COMP%] { background: #10b981; }\n.legend-dot.failure[_ngcontent-%COMP%] { background: #ef4444; }\n\n\n\n.data-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n}\n\n.data-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n text-align: left;\n font-size: 0.7rem;\n font-weight: 700;\n color: #94a3b8;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n padding: 12px 16px;\n border-bottom: 1px solid #e5e7eb;\n position: sticky;\n top: 0;\n background: #f9fafb;\n z-index: 1;\n}\n\n.data-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 10px 16px;\n font-size: 0.85rem;\n border-bottom: 1px solid #f1f5f9;\n}\n\n.data-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover {\n background: #f8fafc;\n}\n\n.cell-name[_ngcontent-%COMP%] { font-weight: 600; color: #0f172a; }\n.cell-meta[_ngcontent-%COMP%] { color: #64748b; }\n.cell-error[_ngcontent-%COMP%] { color: #ef4444; font-size: 0.8rem; max-width: 300px; }\n\n.exec-status-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n font-size: 0.7rem;\n font-weight: 600;\n padding: 3px 10px;\n border-radius: 12px;\n white-space: nowrap;\n}\n\n.exec-status-badge.status-running[_ngcontent-%COMP%] { background: #dbeafe; color: #1d4ed8; }\n.exec-status-badge.status-success[_ngcontent-%COMP%] { background: #dcfce7; color: #166534; }\n.exec-status-badge.status-error[_ngcontent-%COMP%] { background: #fee2e2; color: #991b1b; }\n.exec-status-badge.status-warning[_ngcontent-%COMP%] { background: #fef3c7; color: #92400e; }\n\n\n\n.col-expand[_ngcontent-%COMP%] {\n width: 32px;\n text-align: center;\n}\n\n.expand-icon[_ngcontent-%COMP%] {\n font-size: 0.7rem;\n color: #94a3b8;\n transition: transform 0.2s ease;\n}\n\n.expand-icon.rotated[_ngcontent-%COMP%] {\n transform: rotate(90deg);\n}\n\n.exec-row[_ngcontent-%COMP%] {\n cursor: pointer;\n transition: background 0.15s;\n}\n\n.exec-row[_ngcontent-%COMP%]:hover {\n background: #f1f5f9;\n}\n\n.exec-row.expanded[_ngcontent-%COMP%] {\n background: #f8fafc;\n border-bottom-color: transparent;\n}\n\n.exec-detail-row[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 0 !important;\n border-bottom: 1px solid #e2e8f0;\n}\n\n.exec-detail-content[_ngcontent-%COMP%] {\n padding: 16px 20px 16px 48px;\n background: #f8fafc;\n border-top: 1px solid #f1f5f9;\n}\n\n.exec-detail-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));\n gap: 12px 24px;\n margin-bottom: 14px;\n}\n\n.detail-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.detail-label[_ngcontent-%COMP%] {\n font-size: 0.7rem;\n font-weight: 600;\n color: #94a3b8;\n text-transform: uppercase;\n letter-spacing: 0.03em;\n}\n\n.detail-value[_ngcontent-%COMP%] {\n font-size: 0.85rem;\n color: #0f172a;\n}\n\n.detail-value.error-text[_ngcontent-%COMP%] {\n color: #ef4444;\n font-size: 0.8rem;\n word-break: break-word;\n}\n\n.exec-detail-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n padding-top: 10px;\n border-top: 1px solid #e5e7eb;\n}\n\n.detail-action-btn[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 14px;\n background: #0076b6;\n color: white;\n border: none;\n border-radius: 8px;\n font-size: 0.8rem;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n}\n\n.detail-action-btn[_ngcontent-%COMP%]:hover {\n background: #005a8c;\n}\n\n.detail-action-btn.secondary[_ngcontent-%COMP%] {\n background: white;\n color: #475569;\n border: 1px solid #e2e8f0;\n}\n\n.detail-action-btn.secondary[_ngcontent-%COMP%]:hover {\n background: #f1f5f9;\n border-color: #cbd5e1;\n}\n\n.empty-state-small[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n padding: 48px 16px;\n color: #94a3b8;\n}\n\n.empty-state-small[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 2rem; color: #cbd5e1; }\n.empty-state-small[_ngcontent-%COMP%] span[_ngcontent-%COMP%] { font-size: 0.85rem; }\n\n\n\n@media (max-width: 1024px) {\n .type-cards-row[_ngcontent-%COMP%] {\n flex-direction: column;\n }\n .type-card[_ngcontent-%COMP%] {\n min-width: auto;\n }\n}\n\n@media (max-width: 768px) {\n .activity-toolbar[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n }\n .toolbar-right[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n justify-content: space-between;\n }\n .search-box[_ngcontent-%COMP%] {\n min-width: auto;\n flex: 1;\n }\n .trend-chart[_ngcontent-%COMP%] {\n height: 120px;\n }\n .data-table[_ngcontent-%COMP%] {\n font-size: 0.8rem;\n }\n}"], changeDetection: 0 });
|
|
704
704
|
}
|
|
705
705
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SchedulingActivityComponent, [{
|
|
706
706
|
type: Component,
|
|
707
|
-
args: [{ selector: 'app-scheduling-activity', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"activity-container\">\n <!-- Toolbar -->\n <div class=\"activity-toolbar\">\n <div class=\"toolbar-left\">\n <div class=\"search-box\">\n <i class=\"fa-solid fa-search\"></i>\n <input type=\"text\" placeholder=\"Search executions...\"\n [value]=\"SearchTerm\"\n (input)=\"OnSearchChange($any($event.target).value)\" />\n </div>\n <select class=\"filter-select\" [value]=\"StatusFilter\" (change)=\"OnStatusFilterChange($any($event.target).value)\">\n <option value=\"\">All Statuses</option>\n <option *ngFor=\"let s of StatusOptions.slice(1)\" [value]=\"s\">{{s}}</option>\n </select>\n <select class=\"filter-select\" [value]=\"JobNameFilter\" (change)=\"OnJobNameFilterChange($any($event.target).value)\">\n <option value=\"\">All Jobs</option>\n <option *ngFor=\"let name of UniqueJobNames\" [value]=\"name\">{{name}}</option>\n </select>\n </div>\n <div class=\"toolbar-right\">\n <div class=\"time-range-group\">\n <button *ngFor=\"let range of TimeRanges\"\n class=\"range-btn\"\n [class.active]=\"SelectedTimeRange === range.value\"\n (click)=\"OnTimeRangeChange(range.value)\">\n {{range.label}}\n </button>\n </div>\n <button class=\"control-btn\" (click)=\"Refresh()\">\n <i class=\"fa-solid fa-arrows-rotate\"></i> Refresh\n </button>\n </div>\n </div>\n\n <!-- Loading -->\n <div *ngIf=\"IsLoading\" class=\"loading-container\">\n <mj-loading text=\"Loading activity...\" size=\"medium\"></mj-loading>\n </div>\n\n <div *ngIf=\"!IsLoading\" class=\"activity-content\">\n <!-- Job Type Summary Cards -->\n <div class=\"type-cards-row\" *ngIf=\"JobTypes.length > 0\">\n <div *ngFor=\"let type of JobTypes\" class=\"type-card\">\n <div class=\"type-card-icon\">\n <i [class]=\"GetTypeIcon(type.typeName)\"></i>\n </div>\n <div class=\"type-card-info\">\n <div class=\"type-card-name\">{{type.typeName}}</div>\n <div class=\"type-card-stats\">\n <span>{{type.activeJobsCount}} active</span>\n <span class=\"dot\">·</span>\n <span>{{type.totalRuns}} runs</span>\n <span class=\"dot\">·</span>\n <span [style.color]=\"GetSuccessRateColor(type.successRate)\">\n {{FormatPercentage(type.successRate)}}\n </span>\n </div>\n </div>\n <div class=\"type-card-bar\">\n <div class=\"type-bar-fill\"\n [style.width]=\"(type.successRate * 100) + '%'\"\n [style.background]=\"GetSuccessRateColor(type.successRate)\">\n </div>\n </div>\n </div>\n </div>\n\n <!-- Execution Trends Chart -->\n <div class=\"panel\" *ngIf=\"Trends.length > 0\">\n <div class=\"panel-header\">\n <div class=\"panel-title\">\n <i class=\"fa-solid fa-chart-bar\"></i> Execution Trends\n </div>\n <span class=\"result-count\">{{FilteredExecutions.length}} executions</span>\n </div>\n <div class=\"panel-body chart-container\">\n <div class=\"trend-chart\">\n <div *ngFor=\"let trend of Trends; let i = index\" class=\"chart-column\">\n <div class=\"bars-wrapper\">\n <div class=\"bar success-bar\"\n [style.height]=\"GetBarHeight(trend.successes)\"\n [title]=\"trend.successes + ' successful'\">\n </div>\n <div class=\"bar failure-bar\"\n *ngIf=\"trend.failures > 0\"\n [style.height]=\"GetBarHeight(trend.failures)\"\n [title]=\"trend.failures + ' failed'\">\n </div>\n </div>\n <div class=\"chart-label\" [class.hidden-label]=\"!ShouldShowLabel(i)\" >{{FormatChartLabel(trend.timestamp)}}</div>\n </div>\n </div>\n <div class=\"chart-legend\">\n <span class=\"legend-item\"><span class=\"legend-dot success\"></span> Successful</span>\n <span class=\"legend-item\"><span class=\"legend-dot failure\"></span> Failed</span>\n </div>\n </div>\n </div>\n\n <!-- Execution History Table -->\n <div class=\"panel\">\n <div class=\"panel-header\">\n <div class=\"panel-title\">\n <i class=\"fa-solid fa-clock-rotate-left\"></i> Execution History\n </div>\n <span class=\"result-count\">{{FilteredExecutions.length}} of {{Executions.length}}</span>\n </div>\n <div class=\"panel-body table-container\">\n <div *ngIf=\"FilteredExecutions.length === 0\" class=\"empty-state-small\">\n <i class=\"fa-solid fa-inbox\"></i>\n <span>No executions found for this time range</span>\n </div>\n <table *ngIf=\"FilteredExecutions.length > 0\" class=\"data-table\">\n <thead>\n <tr>\n <th class=\"col-expand\"></th>\n <th>Status</th>\n <th>Job Name</th>\n <th>Started</th>\n <th>Duration</th>\n <th>Error</th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let exec of FilteredExecutions\">\n <tr class=\"exec-row\" [class.expanded]=\"IsExpanded(exec)\" (click)=\"ToggleExpand(exec)\">\n <td class=\"col-expand\">\n <i class=\"fa-solid fa-chevron-right expand-icon\"\n [class.rotated]=\"IsExpanded(exec)\"></i>\n </td>\n <td>\n <span class=\"exec-status-badge\" [ngClass]=\"GetStatusClass(exec.status)\">\n <i [class]=\"GetStatusIcon(exec.status)\"></i>\n {{exec.status}}\n </span>\n </td>\n <td class=\"cell-name\">{{exec.jobName}}</td>\n <td class=\"cell-meta\">{{FormatDateTime(exec.startedAt)}}</td>\n <td class=\"cell-meta\">{{FormatDuration(exec.duration)}}</td>\n <td class=\"cell-error\">{{TruncateError(exec.errorMessage)}}</td>\n </tr>\n <tr *ngIf=\"IsExpanded(exec)\" class=\"exec-detail-row\">\n <td [attr.colspan]=\"6\">\n <div class=\"exec-detail-content\">\n <div class=\"exec-detail-grid\">\n <div class=\"detail-item\">\n <span class=\"detail-label\">Job Name</span>\n <span class=\"detail-value\">{{exec.jobName}}</span>\n </div>\n <div class=\"detail-item\">\n <span class=\"detail-label\">Started</span>\n <span class=\"detail-value\">{{FormatDateTime(exec.startedAt)}}</span>\n </div>\n <div class=\"detail-item\">\n <span class=\"detail-label\">Completed</span>\n <span class=\"detail-value\">{{exec.completedAt ? FormatDateTime(exec.completedAt) : '-'}}</span>\n </div>\n <div class=\"detail-item\">\n <span class=\"detail-label\">Duration</span>\n <span class=\"detail-value\">{{FormatDuration(exec.duration)}}</span>\n </div>\n <div class=\"detail-item\">\n <span class=\"detail-label\">Status</span>\n <span class=\"detail-value\">\n <span class=\"exec-status-badge\" [ngClass]=\"GetStatusClass(exec.status)\">\n <i [class]=\"GetStatusIcon(exec.status)\"></i>\n {{exec.status}}\n </span>\n </span>\n </div>\n <div class=\"detail-item\" *ngIf=\"exec.errorMessage\">\n <span class=\"detail-label\">Error</span>\n <span class=\"detail-value error-text\">{{exec.errorMessage}}</span>\n </div>\n </div>\n <div class=\"exec-detail-actions\">\n <button class=\"detail-action-btn\" (click)=\"OpenExecutionRecord(exec, $event)\">\n <i class=\"fa-solid fa-arrow-up-right-from-square\"></i> Open Run Record\n </button>\n <button class=\"detail-action-btn secondary\" (click)=\"OpenJobRecord(exec, $event)\">\n <i class=\"fa-solid fa-briefcase\"></i> Open Job\n </button>\n </div>\n </div>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </div>\n </div>\n </div>\n</div>\n", styles: [".activity-container {\n display: flex;\n flex-direction: column;\n gap: 20px;\n}\n\n/* \u2500\u2500 Toolbar \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.activity-toolbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 12px;\n}\n\n.toolbar-left {\n display: flex;\n gap: 8px;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.toolbar-right {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.search-box {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 14px;\n background: white;\n border: 1px solid #e5e7eb;\n border-radius: 10px;\n min-width: 220px;\n transition: border-color 0.2s;\n}\n\n.search-box:focus-within {\n border-color: #0076b6;\n box-shadow: 0 0 0 3px rgba(0, 118, 182, 0.1);\n}\n\n.search-box i { color: #94a3b8; font-size: 0.85rem; }\n\n.search-box input {\n border: none; outline: none; background: transparent;\n font-size: 0.85rem; color: #0f172a; width: 100%;\n}\n\n.filter-select {\n padding: 8px 14px;\n background: white;\n border: 1px solid #e5e7eb;\n border-radius: 10px;\n font-size: 0.85rem;\n color: #475569;\n cursor: pointer;\n outline: none;\n}\n\n.time-range-group {\n display: flex;\n background: white;\n border: 1px solid #e5e7eb;\n border-radius: 10px;\n overflow: hidden;\n}\n\n.range-btn {\n padding: 8px 14px;\n border: none;\n background: transparent;\n font-size: 0.8rem;\n font-weight: 500;\n color: #64748b;\n cursor: pointer;\n transition: all 0.2s;\n border-right: 1px solid #e5e7eb;\n}\n\n.range-btn:last-child { border-right: none; }\n\n.range-btn:hover { background: #f3f4f6; }\n\n.range-btn.active {\n background: #0076b6;\n color: white;\n}\n\n.control-btn {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 8px 16px;\n background: white;\n border: 1px solid #e5e7eb;\n border-radius: 10px;\n cursor: pointer;\n font-size: 0.8rem;\n font-weight: 500;\n color: #475569;\n transition: all 0.2s ease;\n}\n\n.control-btn:hover {\n background: #f3f4f6;\n border-color: #999;\n}\n\n.result-count {\n font-size: 0.8rem;\n color: #94a3b8;\n white-space: nowrap;\n}\n\n.loading-container {\n display: flex;\n justify-content: center;\n align-items: center;\n min-height: 300px;\n}\n\n/* \u2500\u2500 Type Summary Cards \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.type-cards-row {\n display: flex;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.type-card {\n display: flex;\n align-items: center;\n gap: 14px;\n padding: 16px 20px;\n background: white;\n border-radius: 14px;\n border: 1px solid #e2e8f0;\n box-shadow: 0 1px 3px rgba(0,0,0,0.05);\n flex: 1;\n min-width: 240px;\n transition: all 0.2s ease;\n}\n\n.type-card:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 12px rgba(0,0,0,0.08);\n}\n\n.type-card-icon {\n width: 44px;\n height: 44px;\n border-radius: 12px;\n background: linear-gradient(135deg, #0076b6, #005a8c);\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 1.1rem;\n flex-shrink: 0;\n}\n\n.type-card-info {\n flex: 1;\n}\n\n.type-card-name {\n font-weight: 700;\n color: #0f172a;\n font-size: 0.9rem;\n}\n\n.type-card-stats {\n font-size: 0.75rem;\n color: #64748b;\n margin-top: 2px;\n}\n\n.type-card-stats .dot {\n margin: 0 4px;\n}\n\n.type-card-bar {\n width: 60px;\n height: 6px;\n background: #f1f5f9;\n border-radius: 3px;\n overflow: hidden;\n}\n\n.type-bar-fill {\n height: 100%;\n border-radius: 3px;\n transition: width 0.5s;\n}\n\n/* \u2500\u2500 Panels \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.panel {\n background: white;\n border-radius: 16px;\n border: 1px solid #e2e8f0;\n box-shadow: 0 1px 3px rgba(0,0,0,0.05);\n overflow: hidden;\n}\n\n.panel-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n background: #f9fafb;\n border-bottom: 1px solid #e5e7eb;\n}\n\n.panel-title {\n font-size: 0.95rem;\n font-weight: 700;\n color: #0f172a;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.panel-title i { color: #0076b6; }\n\n.panel-body {\n padding: 20px;\n}\n\n.chart-container {\n padding: 20px;\n}\n\n.table-container {\n padding: 0;\n max-height: 600px;\n overflow-y: auto;\n}\n\n/* \u2500\u2500 Trend Chart \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.trend-chart {\n display: flex;\n gap: 4px;\n height: 220px;\n align-items: flex-end;\n padding-bottom: 50px;\n overflow-x: auto;\n}\n\n.chart-column {\n display: flex;\n flex-direction: column;\n align-items: center;\n flex: 1;\n min-width: 24px;\n max-width: 40px;\n height: 100%;\n}\n\n.bars-wrapper {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 1px;\n flex: 1;\n justify-content: flex-end;\n width: 100%;\n}\n\n.bar {\n width: 100%;\n border-radius: 3px 3px 0 0;\n min-height: 2px;\n transition: height 0.3s;\n}\n\n.success-bar {\n background: linear-gradient(180deg, #34d399, #10b981);\n}\n\n.failure-bar {\n background: linear-gradient(180deg, #f87171, #ef4444);\n border-radius: 0;\n}\n\n.chart-label {\n font-size: 0.6rem;\n color: #94a3b8;\n margin-top: 6px;\n white-space: nowrap;\n text-align: center;\n transform: rotate(-45deg);\n transform-origin: top center;\n height: 40px;\n overflow: visible;\n}\n\n.chart-label.hidden-label {\n visibility: hidden;\n}\n\n.chart-legend {\n display: flex;\n justify-content: center;\n gap: 20px;\n margin-top: 12px;\n}\n\n.legend-item {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 0.75rem;\n color: #64748b;\n}\n\n.legend-dot {\n width: 10px;\n height: 10px;\n border-radius: 3px;\n}\n\n.legend-dot.success { background: #10b981; }\n.legend-dot.failure { background: #ef4444; }\n\n/* \u2500\u2500 Data Table \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.data-table {\n width: 100%;\n border-collapse: collapse;\n}\n\n.data-table th {\n text-align: left;\n font-size: 0.7rem;\n font-weight: 700;\n color: #94a3b8;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n padding: 12px 16px;\n border-bottom: 1px solid #e5e7eb;\n position: sticky;\n top: 0;\n background: #f9fafb;\n z-index: 1;\n}\n\n.data-table td {\n padding: 10px 16px;\n font-size: 0.85rem;\n border-bottom: 1px solid #f1f5f9;\n}\n\n.data-table tbody tr:hover {\n background: #f8fafc;\n}\n\n.cell-name { font-weight: 600; color: #0f172a; }\n.cell-meta { color: #64748b; }\n.cell-error { color: #ef4444; font-size: 0.8rem; max-width: 300px; }\n\n.exec-status-badge {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n font-size: 0.7rem;\n font-weight: 600;\n padding: 3px 10px;\n border-radius: 12px;\n white-space: nowrap;\n}\n\n.exec-status-badge.status-running { background: #dbeafe; color: #1d4ed8; }\n.exec-status-badge.status-success { background: #dcfce7; color: #166534; }\n.exec-status-badge.status-error { background: #fee2e2; color: #991b1b; }\n.exec-status-badge.status-warning { background: #fef3c7; color: #92400e; }\n\n/* \u2500\u2500 Expandable Rows \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.col-expand {\n width: 32px;\n text-align: center;\n}\n\n.expand-icon {\n font-size: 0.7rem;\n color: #94a3b8;\n transition: transform 0.2s ease;\n}\n\n.expand-icon.rotated {\n transform: rotate(90deg);\n}\n\n.exec-row {\n cursor: pointer;\n transition: background 0.15s;\n}\n\n.exec-row:hover {\n background: #f1f5f9;\n}\n\n.exec-row.expanded {\n background: #f8fafc;\n border-bottom-color: transparent;\n}\n\n.exec-detail-row td {\n padding: 0 !important;\n border-bottom: 1px solid #e2e8f0;\n}\n\n.exec-detail-content {\n padding: 16px 20px 16px 48px;\n background: #f8fafc;\n border-top: 1px solid #f1f5f9;\n}\n\n.exec-detail-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));\n gap: 12px 24px;\n margin-bottom: 14px;\n}\n\n.detail-item {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.detail-label {\n font-size: 0.7rem;\n font-weight: 600;\n color: #94a3b8;\n text-transform: uppercase;\n letter-spacing: 0.03em;\n}\n\n.detail-value {\n font-size: 0.85rem;\n color: #0f172a;\n}\n\n.detail-value.error-text {\n color: #ef4444;\n font-size: 0.8rem;\n word-break: break-word;\n}\n\n.exec-detail-actions {\n display: flex;\n gap: 8px;\n padding-top: 10px;\n border-top: 1px solid #e5e7eb;\n}\n\n.detail-action-btn {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 14px;\n background: #0076b6;\n color: white;\n border: none;\n border-radius: 8px;\n font-size: 0.8rem;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n}\n\n.detail-action-btn:hover {\n background: #005a8c;\n}\n\n.detail-action-btn.secondary {\n background: white;\n color: #475569;\n border: 1px solid #e2e8f0;\n}\n\n.detail-action-btn.secondary:hover {\n background: #f1f5f9;\n border-color: #cbd5e1;\n}\n\n.empty-state-small {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n padding: 48px 16px;\n color: #94a3b8;\n}\n\n.empty-state-small i { font-size: 2rem; color: #cbd5e1; }\n.empty-state-small span { font-size: 0.85rem; }\n\n/* \u2500\u2500 Responsive \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@media (max-width: 1024px) {\n .type-cards-row {\n flex-direction: column;\n }\n .type-card {\n min-width: auto;\n }\n}\n\n@media (max-width: 768px) {\n .activity-toolbar {\n flex-direction: column;\n align-items: stretch;\n }\n .toolbar-right {\n flex-wrap: wrap;\n justify-content: space-between;\n }\n .search-box {\n min-width: auto;\n flex: 1;\n }\n .trend-chart {\n height: 120px;\n }\n .data-table {\n font-size: 0.8rem;\n }\n}\n"] }]
|
|
707
|
+
args: [{ standalone: false, selector: 'app-scheduling-activity', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"activity-container\">\n <!-- Toolbar -->\n <div class=\"activity-toolbar\">\n <div class=\"toolbar-left\">\n <div class=\"search-box\">\n <i class=\"fa-solid fa-search\"></i>\n <input type=\"text\" placeholder=\"Search executions...\"\n [value]=\"SearchTerm\"\n (input)=\"OnSearchChange($any($event.target).value)\" />\n </div>\n <select class=\"filter-select\" [value]=\"StatusFilter\" (change)=\"OnStatusFilterChange($any($event.target).value)\">\n <option value=\"\">All Statuses</option>\n @for (s of StatusOptions.slice(1); track s) {\n <option [value]=\"s\">{{s}}</option>\n }\n </select>\n <select class=\"filter-select\" [value]=\"JobNameFilter\" (change)=\"OnJobNameFilterChange($any($event.target).value)\">\n <option value=\"\">All Jobs</option>\n @for (name of UniqueJobNames; track name) {\n <option [value]=\"name\">{{name}}</option>\n }\n </select>\n </div>\n <div class=\"toolbar-right\">\n <div class=\"time-range-group\">\n @for (range of TimeRanges; track range) {\n <button\n class=\"range-btn\"\n [class.active]=\"SelectedTimeRange === range.value\"\n (click)=\"OnTimeRangeChange(range.value)\">\n {{range.label}}\n </button>\n }\n </div>\n <button class=\"control-btn\" (click)=\"Refresh()\">\n <i class=\"fa-solid fa-arrows-rotate\"></i> Refresh\n </button>\n </div>\n </div>\n\n <!-- Loading -->\n @if (IsLoading) {\n <div class=\"loading-container\">\n <mj-loading text=\"Loading activity...\" size=\"medium\"></mj-loading>\n </div>\n }\n\n @if (!IsLoading) {\n <div class=\"activity-content\">\n <!-- Job Type Summary Cards -->\n @if (JobTypes.length > 0) {\n <div class=\"type-cards-row\">\n @for (type of JobTypes; track type) {\n <div class=\"type-card\">\n <div class=\"type-card-icon\">\n <i [class]=\"GetTypeIcon(type.typeName)\"></i>\n </div>\n <div class=\"type-card-info\">\n <div class=\"type-card-name\">{{type.typeName}}</div>\n <div class=\"type-card-stats\">\n <span>{{type.activeJobsCount}} active</span>\n <span class=\"dot\">·</span>\n <span>{{type.totalRuns}} runs</span>\n <span class=\"dot\">·</span>\n <span [style.color]=\"GetSuccessRateColor(type.successRate)\">\n {{FormatPercentage(type.successRate)}}\n </span>\n </div>\n </div>\n <div class=\"type-card-bar\">\n <div class=\"type-bar-fill\"\n [style.width]=\"(type.successRate * 100) + '%'\"\n [style.background]=\"GetSuccessRateColor(type.successRate)\">\n </div>\n </div>\n </div>\n }\n </div>\n }\n <!-- Execution Trends Chart -->\n @if (Trends.length > 0) {\n <div class=\"panel\">\n <div class=\"panel-header\">\n <div class=\"panel-title\">\n <i class=\"fa-solid fa-chart-bar\"></i> Execution Trends\n </div>\n <span class=\"result-count\">{{FilteredExecutions.length}} executions</span>\n </div>\n <div class=\"panel-body chart-container\">\n <div class=\"trend-chart\">\n @for (trend of Trends; track trend; let i = $index) {\n <div class=\"chart-column\">\n <div class=\"bars-wrapper\">\n <div class=\"bar success-bar\"\n [style.height]=\"GetBarHeight(trend.successes)\"\n [title]=\"trend.successes + ' successful'\">\n </div>\n @if (trend.failures > 0) {\n <div class=\"bar failure-bar\"\n [style.height]=\"GetBarHeight(trend.failures)\"\n [title]=\"trend.failures + ' failed'\">\n </div>\n }\n </div>\n <div class=\"chart-label\" [class.hidden-label]=\"!ShouldShowLabel(i)\" >{{FormatChartLabel(trend.timestamp)}}</div>\n </div>\n }\n </div>\n <div class=\"chart-legend\">\n <span class=\"legend-item\"><span class=\"legend-dot success\"></span> Successful</span>\n <span class=\"legend-item\"><span class=\"legend-dot failure\"></span> Failed</span>\n </div>\n </div>\n </div>\n }\n <!-- Execution History Table -->\n <div class=\"panel\">\n <div class=\"panel-header\">\n <div class=\"panel-title\">\n <i class=\"fa-solid fa-clock-rotate-left\"></i> Execution History\n </div>\n <span class=\"result-count\">{{FilteredExecutions.length}} of {{Executions.length}}</span>\n </div>\n <div class=\"panel-body table-container\">\n @if (FilteredExecutions.length === 0) {\n <div class=\"empty-state-small\">\n <i class=\"fa-solid fa-inbox\"></i>\n <span>No executions found for this time range</span>\n </div>\n }\n @if (FilteredExecutions.length > 0) {\n <table class=\"data-table\">\n <thead>\n <tr>\n <th class=\"col-expand\"></th>\n <th>Status</th>\n <th>Job Name</th>\n <th>Started</th>\n <th>Duration</th>\n <th>Error</th>\n </tr>\n </thead>\n <tbody>\n @for (exec of FilteredExecutions; track exec) {\n <tr class=\"exec-row\" [class.expanded]=\"IsExpanded(exec)\" (click)=\"ToggleExpand(exec)\">\n <td class=\"col-expand\">\n <i class=\"fa-solid fa-chevron-right expand-icon\"\n [class.rotated]=\"IsExpanded(exec)\"></i>\n </td>\n <td>\n <span class=\"exec-status-badge\" [ngClass]=\"GetStatusClass(exec.status)\">\n <i [class]=\"GetStatusIcon(exec.status)\"></i>\n {{exec.status}}\n </span>\n </td>\n <td class=\"cell-name\">{{exec.jobName}}</td>\n <td class=\"cell-meta\">{{FormatDateTime(exec.startedAt)}}</td>\n <td class=\"cell-meta\">{{FormatDuration(exec.duration)}}</td>\n <td class=\"cell-error\">{{TruncateError(exec.errorMessage)}}</td>\n </tr>\n @if (IsExpanded(exec)) {\n <tr class=\"exec-detail-row\">\n <td [attr.colspan]=\"6\">\n <div class=\"exec-detail-content\">\n <div class=\"exec-detail-grid\">\n <div class=\"detail-item\">\n <span class=\"detail-label\">Job Name</span>\n <span class=\"detail-value\">{{exec.jobName}}</span>\n </div>\n <div class=\"detail-item\">\n <span class=\"detail-label\">Started</span>\n <span class=\"detail-value\">{{FormatDateTime(exec.startedAt)}}</span>\n </div>\n <div class=\"detail-item\">\n <span class=\"detail-label\">Completed</span>\n <span class=\"detail-value\">{{exec.completedAt ? FormatDateTime(exec.completedAt) : '-'}}</span>\n </div>\n <div class=\"detail-item\">\n <span class=\"detail-label\">Duration</span>\n <span class=\"detail-value\">{{FormatDuration(exec.duration)}}</span>\n </div>\n <div class=\"detail-item\">\n <span class=\"detail-label\">Status</span>\n <span class=\"detail-value\">\n <span class=\"exec-status-badge\" [ngClass]=\"GetStatusClass(exec.status)\">\n <i [class]=\"GetStatusIcon(exec.status)\"></i>\n {{exec.status}}\n </span>\n </span>\n </div>\n @if (exec.errorMessage) {\n <div class=\"detail-item\">\n <span class=\"detail-label\">Error</span>\n <span class=\"detail-value error-text\">{{exec.errorMessage}}</span>\n </div>\n }\n </div>\n <div class=\"exec-detail-actions\">\n <button class=\"detail-action-btn\" (click)=\"OpenExecutionRecord(exec, $event)\">\n <i class=\"fa-solid fa-arrow-up-right-from-square\"></i> Open Run Record\n </button>\n <button class=\"detail-action-btn secondary\" (click)=\"OpenJobRecord(exec, $event)\">\n <i class=\"fa-solid fa-briefcase\"></i> Open Job\n </button>\n </div>\n </div>\n </td>\n </tr>\n }\n }\n </tbody>\n </table>\n }\n </div>\n </div>\n </div>\n }\n</div>\n", styles: [".activity-container {\n display: flex;\n flex-direction: column;\n gap: 20px;\n}\n\n/* \u2500\u2500 Toolbar \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.activity-toolbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 12px;\n}\n\n.toolbar-left {\n display: flex;\n gap: 8px;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.toolbar-right {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.search-box {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 14px;\n background: white;\n border: 1px solid #e5e7eb;\n border-radius: 10px;\n min-width: 220px;\n transition: border-color 0.2s;\n}\n\n.search-box:focus-within {\n border-color: #0076b6;\n box-shadow: 0 0 0 3px rgba(0, 118, 182, 0.1);\n}\n\n.search-box i { color: #94a3b8; font-size: 0.85rem; }\n\n.search-box input {\n border: none; outline: none; background: transparent;\n font-size: 0.85rem; color: #0f172a; width: 100%;\n}\n\n.filter-select {\n padding: 8px 14px;\n background: white;\n border: 1px solid #e5e7eb;\n border-radius: 10px;\n font-size: 0.85rem;\n color: #475569;\n cursor: pointer;\n outline: none;\n}\n\n.time-range-group {\n display: flex;\n background: white;\n border: 1px solid #e5e7eb;\n border-radius: 10px;\n overflow: hidden;\n}\n\n.range-btn {\n padding: 8px 14px;\n border: none;\n background: transparent;\n font-size: 0.8rem;\n font-weight: 500;\n color: #64748b;\n cursor: pointer;\n transition: all 0.2s;\n border-right: 1px solid #e5e7eb;\n}\n\n.range-btn:last-child { border-right: none; }\n\n.range-btn:hover { background: #f3f4f6; }\n\n.range-btn.active {\n background: #0076b6;\n color: white;\n}\n\n.control-btn {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 8px 16px;\n background: white;\n border: 1px solid #e5e7eb;\n border-radius: 10px;\n cursor: pointer;\n font-size: 0.8rem;\n font-weight: 500;\n color: #475569;\n transition: all 0.2s ease;\n}\n\n.control-btn:hover {\n background: #f3f4f6;\n border-color: #999;\n}\n\n.result-count {\n font-size: 0.8rem;\n color: #94a3b8;\n white-space: nowrap;\n}\n\n.loading-container {\n display: flex;\n justify-content: center;\n align-items: center;\n min-height: 300px;\n}\n\n/* \u2500\u2500 Type Summary Cards \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.type-cards-row {\n display: flex;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.type-card {\n display: flex;\n align-items: center;\n gap: 14px;\n padding: 16px 20px;\n background: white;\n border-radius: 14px;\n border: 1px solid #e2e8f0;\n box-shadow: 0 1px 3px rgba(0,0,0,0.05);\n flex: 1;\n min-width: 240px;\n transition: all 0.2s ease;\n}\n\n.type-card:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 12px rgba(0,0,0,0.08);\n}\n\n.type-card-icon {\n width: 44px;\n height: 44px;\n border-radius: 12px;\n background: linear-gradient(135deg, #0076b6, #005a8c);\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 1.1rem;\n flex-shrink: 0;\n}\n\n.type-card-info {\n flex: 1;\n}\n\n.type-card-name {\n font-weight: 700;\n color: #0f172a;\n font-size: 0.9rem;\n}\n\n.type-card-stats {\n font-size: 0.75rem;\n color: #64748b;\n margin-top: 2px;\n}\n\n.type-card-stats .dot {\n margin: 0 4px;\n}\n\n.type-card-bar {\n width: 60px;\n height: 6px;\n background: #f1f5f9;\n border-radius: 3px;\n overflow: hidden;\n}\n\n.type-bar-fill {\n height: 100%;\n border-radius: 3px;\n transition: width 0.5s;\n}\n\n/* \u2500\u2500 Panels \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.panel {\n background: white;\n border-radius: 16px;\n border: 1px solid #e2e8f0;\n box-shadow: 0 1px 3px rgba(0,0,0,0.05);\n overflow: hidden;\n}\n\n.panel-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n background: #f9fafb;\n border-bottom: 1px solid #e5e7eb;\n}\n\n.panel-title {\n font-size: 0.95rem;\n font-weight: 700;\n color: #0f172a;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.panel-title i { color: #0076b6; }\n\n.panel-body {\n padding: 20px;\n}\n\n.chart-container {\n padding: 20px;\n}\n\n.table-container {\n padding: 0;\n max-height: 600px;\n overflow-y: auto;\n}\n\n/* \u2500\u2500 Trend Chart \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.trend-chart {\n display: flex;\n gap: 4px;\n height: 220px;\n align-items: flex-end;\n padding-bottom: 50px;\n overflow-x: auto;\n}\n\n.chart-column {\n display: flex;\n flex-direction: column;\n align-items: center;\n flex: 1;\n min-width: 24px;\n max-width: 40px;\n height: 100%;\n}\n\n.bars-wrapper {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 1px;\n flex: 1;\n justify-content: flex-end;\n width: 100%;\n}\n\n.bar {\n width: 100%;\n border-radius: 3px 3px 0 0;\n min-height: 2px;\n transition: height 0.3s;\n}\n\n.success-bar {\n background: linear-gradient(180deg, #34d399, #10b981);\n}\n\n.failure-bar {\n background: linear-gradient(180deg, #f87171, #ef4444);\n border-radius: 0;\n}\n\n.chart-label {\n font-size: 0.6rem;\n color: #94a3b8;\n margin-top: 6px;\n white-space: nowrap;\n text-align: center;\n transform: rotate(-45deg);\n transform-origin: top center;\n height: 40px;\n overflow: visible;\n}\n\n.chart-label.hidden-label {\n visibility: hidden;\n}\n\n.chart-legend {\n display: flex;\n justify-content: center;\n gap: 20px;\n margin-top: 12px;\n}\n\n.legend-item {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 0.75rem;\n color: #64748b;\n}\n\n.legend-dot {\n width: 10px;\n height: 10px;\n border-radius: 3px;\n}\n\n.legend-dot.success { background: #10b981; }\n.legend-dot.failure { background: #ef4444; }\n\n/* \u2500\u2500 Data Table \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.data-table {\n width: 100%;\n border-collapse: collapse;\n}\n\n.data-table th {\n text-align: left;\n font-size: 0.7rem;\n font-weight: 700;\n color: #94a3b8;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n padding: 12px 16px;\n border-bottom: 1px solid #e5e7eb;\n position: sticky;\n top: 0;\n background: #f9fafb;\n z-index: 1;\n}\n\n.data-table td {\n padding: 10px 16px;\n font-size: 0.85rem;\n border-bottom: 1px solid #f1f5f9;\n}\n\n.data-table tbody tr:hover {\n background: #f8fafc;\n}\n\n.cell-name { font-weight: 600; color: #0f172a; }\n.cell-meta { color: #64748b; }\n.cell-error { color: #ef4444; font-size: 0.8rem; max-width: 300px; }\n\n.exec-status-badge {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n font-size: 0.7rem;\n font-weight: 600;\n padding: 3px 10px;\n border-radius: 12px;\n white-space: nowrap;\n}\n\n.exec-status-badge.status-running { background: #dbeafe; color: #1d4ed8; }\n.exec-status-badge.status-success { background: #dcfce7; color: #166534; }\n.exec-status-badge.status-error { background: #fee2e2; color: #991b1b; }\n.exec-status-badge.status-warning { background: #fef3c7; color: #92400e; }\n\n/* \u2500\u2500 Expandable Rows \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.col-expand {\n width: 32px;\n text-align: center;\n}\n\n.expand-icon {\n font-size: 0.7rem;\n color: #94a3b8;\n transition: transform 0.2s ease;\n}\n\n.expand-icon.rotated {\n transform: rotate(90deg);\n}\n\n.exec-row {\n cursor: pointer;\n transition: background 0.15s;\n}\n\n.exec-row:hover {\n background: #f1f5f9;\n}\n\n.exec-row.expanded {\n background: #f8fafc;\n border-bottom-color: transparent;\n}\n\n.exec-detail-row td {\n padding: 0 !important;\n border-bottom: 1px solid #e2e8f0;\n}\n\n.exec-detail-content {\n padding: 16px 20px 16px 48px;\n background: #f8fafc;\n border-top: 1px solid #f1f5f9;\n}\n\n.exec-detail-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));\n gap: 12px 24px;\n margin-bottom: 14px;\n}\n\n.detail-item {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.detail-label {\n font-size: 0.7rem;\n font-weight: 600;\n color: #94a3b8;\n text-transform: uppercase;\n letter-spacing: 0.03em;\n}\n\n.detail-value {\n font-size: 0.85rem;\n color: #0f172a;\n}\n\n.detail-value.error-text {\n color: #ef4444;\n font-size: 0.8rem;\n word-break: break-word;\n}\n\n.exec-detail-actions {\n display: flex;\n gap: 8px;\n padding-top: 10px;\n border-top: 1px solid #e5e7eb;\n}\n\n.detail-action-btn {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 14px;\n background: #0076b6;\n color: white;\n border: none;\n border-radius: 8px;\n font-size: 0.8rem;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n}\n\n.detail-action-btn:hover {\n background: #005a8c;\n}\n\n.detail-action-btn.secondary {\n background: white;\n color: #475569;\n border: 1px solid #e2e8f0;\n}\n\n.detail-action-btn.secondary:hover {\n background: #f1f5f9;\n border-color: #cbd5e1;\n}\n\n.empty-state-small {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n padding: 48px 16px;\n color: #94a3b8;\n}\n\n.empty-state-small i { font-size: 2rem; color: #cbd5e1; }\n.empty-state-small span { font-size: 0.85rem; }\n\n/* \u2500\u2500 Responsive \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@media (max-width: 1024px) {\n .type-cards-row {\n flex-direction: column;\n }\n .type-card {\n min-width: auto;\n }\n}\n\n@media (max-width: 768px) {\n .activity-toolbar {\n flex-direction: column;\n align-items: stretch;\n }\n .toolbar-right {\n flex-wrap: wrap;\n justify-content: space-between;\n }\n .search-box {\n min-width: auto;\n flex: 1;\n }\n .trend-chart {\n height: 120px;\n }\n .data-table {\n font-size: 0.8rem;\n }\n}\n"] }]
|
|
708
708
|
}], () => [{ type: i1.SchedulingInstrumentationService }, { type: i0.ChangeDetectorRef }], { initialState: [{
|
|
709
709
|
type: Input
|
|
710
710
|
}], stateChange: [{
|
|
711
711
|
type: Output
|
|
712
712
|
}] }); })();
|
|
713
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SchedulingActivityComponent, { className: "SchedulingActivityComponent", filePath: "src/Scheduling/components/scheduling-activity.component.ts", lineNumber:
|
|
713
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SchedulingActivityComponent, { className: "SchedulingActivityComponent", filePath: "src/Scheduling/components/scheduling-activity.component.ts", lineNumber: 23 }); })();
|
|
714
714
|
//# sourceMappingURL=scheduling-activity.component.js.map
|