@memberjunction/ng-dashboards 6.2.0-edge.5 → 6.2.0-edge.7
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 +35 -0
- package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js +2 -2
- package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js.map +1 -1
- package/dist/AI/components/analytics/realtime/realtime-management.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/realtime/realtime-management.component.js +3 -1
- package/dist/AI/components/analytics/realtime/realtime-management.component.js.map +1 -1
- package/dist/AI/components/analytics/realtime/realtime-overview.component.d.ts +1 -1
- package/dist/AI/components/analytics/realtime/realtime-overview.component.js +3 -3
- package/dist/AI/components/analytics/realtime/realtime-overview.component.js.map +1 -1
- package/dist/AI/components/analytics/realtime/realtime-session-data.d.ts +6 -4
- package/dist/AI/components/analytics/realtime/realtime-session-data.d.ts.map +1 -1
- package/dist/AI/components/analytics/realtime/realtime-session-data.js +8 -2
- package/dist/AI/components/analytics/realtime/realtime-session-data.js.map +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +21 -13
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
- package/dist/AI/components/autotagging/components/classify-item-grid.component.js +1 -1
- package/dist/AI/components/autotagging/components/classify-item-grid.component.js.map +1 -1
- package/dist/AI/components/autotagging/components/classify-org-context-editor.component.d.ts.map +1 -1
- package/dist/AI/components/autotagging/components/classify-org-context-editor.component.js +1 -0
- package/dist/AI/components/autotagging/components/classify-org-context-editor.component.js.map +1 -1
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.d.ts.map +1 -1
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js +1 -0
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js.map +1 -1
- package/dist/AI/components/autotagging/tabs/sources-tab.component.d.ts.map +1 -1
- package/dist/AI/components/autotagging/tabs/sources-tab.component.js +1 -0
- package/dist/AI/components/autotagging/tabs/sources-tab.component.js.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +7 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +210 -57
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-run-scope.d.ts +12 -11
- package/dist/AI/components/duplicates/duplicate-detection-run-scope.d.ts.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-run-scope.js +15 -15
- package/dist/AI/components/duplicates/duplicate-detection-run-scope.js.map +1 -1
- package/dist/AI/components/execution-monitoring.component.d.ts.map +1 -1
- package/dist/AI/components/execution-monitoring.component.js +28 -16
- package/dist/AI/components/execution-monitoring.component.js.map +1 -1
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts +1 -0
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts.map +1 -1
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js +32 -8
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.d.ts +1 -1
- package/dist/AI/components/tags/tags-resource.component.d.ts.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.js +18 -9
- package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
- package/dist/AI/components/vectors/sensitive-fields.d.ts +9 -4
- package/dist/AI/components/vectors/sensitive-fields.d.ts.map +1 -1
- package/dist/AI/components/vectors/sensitive-fields.js +39 -14
- package/dist/AI/components/vectors/sensitive-fields.js.map +1 -1
- package/dist/AI/components/vectors/vector-document-rules.d.ts +13 -0
- package/dist/AI/components/vectors/vector-document-rules.d.ts.map +1 -1
- package/dist/AI/components/vectors/vector-document-rules.js +14 -0
- package/dist/AI/components/vectors/vector-document-rules.js.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts +34 -14
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.js +134 -51
- package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
- package/dist/AI/components/vectors/vector-store-selection.d.ts +32 -0
- package/dist/AI/components/vectors/vector-store-selection.d.ts.map +1 -0
- package/dist/AI/components/vectors/vector-store-selection.js +57 -0
- package/dist/AI/components/vectors/vector-store-selection.js.map +1 -0
- package/dist/AI/services/ai-instrumentation.service.d.ts.map +1 -1
- package/dist/AI/services/ai-instrumentation.service.js +4 -2
- package/dist/AI/services/ai-instrumentation.service.js.map +1 -1
- package/dist/Actions/action-result-code.d.ts +80 -0
- package/dist/Actions/action-result-code.d.ts.map +1 -0
- package/dist/Actions/action-result-code.js +163 -0
- package/dist/Actions/action-result-code.js.map +1 -0
- package/dist/Actions/components/actions-overview.component.d.ts +8 -0
- package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
- package/dist/Actions/components/actions-overview.component.js +12 -9
- package/dist/Actions/components/actions-overview.component.js.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.d.ts +29 -9
- package/dist/Actions/components/execution-monitoring.component.d.ts.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.js +65 -42
- package/dist/Actions/components/execution-monitoring.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 +5 -4
- package/dist/Actions/components/explorer/action-card.component.js.map +1 -1
- package/dist/ChiefOfStaff/chief-of-staff-agent-context.d.ts +198 -0
- package/dist/ChiefOfStaff/chief-of-staff-agent-context.d.ts.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-agent-context.js +289 -0
- package/dist/ChiefOfStaff/chief-of-staff-agent-context.js.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-approvals.component.d.ts +29 -0
- package/dist/ChiefOfStaff/chief-of-staff-approvals.component.d.ts.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-approvals.component.js +666 -0
- package/dist/ChiefOfStaff/chief-of-staff-approvals.component.js.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-governance.component.d.ts +56 -0
- package/dist/ChiefOfStaff/chief-of-staff-governance.component.d.ts.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-governance.component.js +515 -0
- package/dist/ChiefOfStaff/chief-of-staff-governance.component.js.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-live-refresh.d.ts +14 -0
- package/dist/ChiefOfStaff/chief-of-staff-live-refresh.d.ts.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-live-refresh.js +39 -0
- package/dist/ChiefOfStaff/chief-of-staff-live-refresh.js.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-overview.component.d.ts +17 -0
- package/dist/ChiefOfStaff/chief-of-staff-overview.component.d.ts.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-overview.component.js +485 -0
- package/dist/ChiefOfStaff/chief-of-staff-overview.component.js.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-page-base.d.ts +139 -0
- package/dist/ChiefOfStaff/chief-of-staff-page-base.d.ts.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-page-base.js +602 -0
- package/dist/ChiefOfStaff/chief-of-staff-page-base.js.map +1 -0
- package/dist/ChiefOfStaff/index.d.ts +6 -0
- package/dist/ChiefOfStaff/index.d.ts.map +1 -0
- package/dist/ChiefOfStaff/index.js +6 -0
- package/dist/ChiefOfStaff/index.js.map +1 -0
- package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-logs-resource.component.js +2 -1
- package/dist/Communication/communication-logs-resource.component.js.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.js +26 -21
- package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
- package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-runs-resource.component.js +14 -13
- package/dist/Communication/communication-runs-resource.component.js.map +1 -1
- package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
- package/dist/ComponentStudio/component-studio-dashboard.component.js +1 -0
- package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.js +2 -1
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/services/component-version.service.d.ts.map +1 -1
- package/dist/ComponentStudio/services/component-version.service.js +3 -0
- package/dist/ComponentStudio/services/component-version.service.js.map +1 -1
- package/dist/DashboardEditor/dashboard-editor.component.d.ts +17 -2
- package/dist/DashboardEditor/dashboard-editor.component.d.ts.map +1 -1
- package/dist/DashboardEditor/dashboard-editor.component.js +94 -43
- package/dist/DashboardEditor/dashboard-editor.component.js.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +45 -2
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.js +178 -55
- package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
- package/dist/DataExplorer/models/explorer-state.interface.d.ts +2 -0
- package/dist/DataExplorer/models/explorer-state.interface.d.ts.map +1 -1
- package/dist/DataExplorer/models/explorer-state.interface.js.map +1 -1
- package/dist/DevTools/graphql-console.component.js +2 -2
- package/dist/DevTools/lazy-module-status.component.js +2 -2
- package/dist/FormBuilder/form-builder-resource.component.d.ts.map +1 -1
- package/dist/FormBuilder/form-builder-resource.component.js +5 -0
- package/dist/FormBuilder/form-builder-resource.component.js.map +1 -1
- package/dist/Integration/components/connections/connections.component.js +2 -2
- package/dist/Integration/services/integration-data.service.d.ts +1 -1
- package/dist/Integration/services/integration-data.service.d.ts.map +1 -1
- package/dist/Integration/services/integration-data.service.js +4 -3
- package/dist/Integration/services/integration-data.service.js.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.js +1 -1
- package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.js +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
- package/dist/LoginStudio/login-studio-resource.component.d.ts +10 -2
- package/dist/LoginStudio/login-studio-resource.component.d.ts.map +1 -1
- package/dist/LoginStudio/login-studio-resource.component.js +111 -77
- package/dist/LoginStudio/login-studio-resource.component.js.map +1 -1
- package/dist/MCP/mcp-dashboard.component.d.ts +24 -4
- package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
- package/dist/MCP/mcp-dashboard.component.js +118 -65
- package/dist/MCP/mcp-dashboard.component.js.map +1 -1
- package/dist/PredictiveStudio/business-predictions.view-models.d.ts +1 -1
- package/dist/PredictiveStudio/business-predictions.view-models.d.ts.map +1 -1
- package/dist/PredictiveStudio/business-predictions.view-models.js +3 -3
- package/dist/PredictiveStudio/business-predictions.view-models.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-experiments.component.d.ts +6 -63
- package/dist/PredictiveStudio/components/ps-experiments.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/components/ps-experiments.component.js +257 -521
- package/dist/PredictiveStudio/components/ps-experiments.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.d.ts +0 -18
- package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.js +124 -251
- package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-pipelines.component.d.ts +5 -9
- package/dist/PredictiveStudio/components/ps-pipelines.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/components/ps-pipelines.component.js +98 -130
- package/dist/PredictiveStudio/components/ps-pipelines.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-predictions-grid.component.d.ts +53 -4
- package/dist/PredictiveStudio/components/ps-predictions-grid.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/components/ps-predictions-grid.component.js +338 -326
- package/dist/PredictiveStudio/components/ps-predictions-grid.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-row-drivers.component.d.ts +19 -0
- package/dist/PredictiveStudio/components/ps-row-drivers.component.d.ts.map +1 -0
- package/dist/PredictiveStudio/components/ps-row-drivers.component.js +85 -0
- package/dist/PredictiveStudio/components/ps-row-drivers.component.js.map +1 -0
- package/dist/PredictiveStudio/engine/predictive-studio.engine.d.ts +19 -1
- package/dist/PredictiveStudio/engine/predictive-studio.engine.d.ts.map +1 -1
- package/dist/PredictiveStudio/engine/predictive-studio.engine.js +52 -2
- package/dist/PredictiveStudio/engine/predictive-studio.engine.js.map +1 -1
- package/dist/PredictiveStudio/predictive-studio-agent-context.d.ts +3 -1
- package/dist/PredictiveStudio/predictive-studio-agent-context.d.ts.map +1 -1
- package/dist/PredictiveStudio/predictive-studio-agent-context.js +3 -0
- package/dist/PredictiveStudio/predictive-studio-agent-context.js.map +1 -1
- package/dist/PredictiveStudio/predictive-studio-score-history.service.d.ts +27 -4
- package/dist/PredictiveStudio/predictive-studio-score-history.service.d.ts.map +1 -1
- package/dist/PredictiveStudio/predictive-studio-score-history.service.js +94 -61
- package/dist/PredictiveStudio/predictive-studio-score-history.service.js.map +1 -1
- package/dist/PredictiveStudio/resources/ps-predictions-resource.component.d.ts +29 -5
- package/dist/PredictiveStudio/resources/ps-predictions-resource.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/resources/ps-predictions-resource.component.js +186 -103
- package/dist/PredictiveStudio/resources/ps-predictions-resource.component.js.map +1 -1
- package/dist/PredictiveStudio/resources/ps-studio-resource.component.js +1 -1
- package/dist/PredictiveStudio/resources/ps-studio-resource.component.js.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.d.ts +26 -0
- package/dist/QueryBrowser/query-browser-resource.component.d.ts.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.js +375 -252
- package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
- package/dist/UserRoutines/user-routines-resource.component.d.ts +8 -1
- package/dist/UserRoutines/user-routines-resource.component.d.ts.map +1 -1
- package/dist/UserRoutines/user-routines-resource.component.js +22 -4
- package/dist/UserRoutines/user-routines-resource.component.js.map +1 -1
- package/dist/VersionHistory/components/diff-resource.component.d.ts.map +1 -1
- package/dist/VersionHistory/components/diff-resource.component.js +1 -0
- package/dist/VersionHistory/components/diff-resource.component.js.map +1 -1
- package/dist/VideoStudio/components/vs-archetype-editor.component.d.ts +162 -0
- package/dist/VideoStudio/components/vs-archetype-editor.component.d.ts.map +1 -0
- package/dist/VideoStudio/components/vs-archetype-editor.component.js +1105 -0
- package/dist/VideoStudio/components/vs-archetype-editor.component.js.map +1 -0
- package/dist/VideoStudio/components/vs-audio-options.component.d.ts +27 -0
- package/dist/VideoStudio/components/vs-audio-options.component.d.ts.map +1 -0
- package/dist/VideoStudio/components/vs-audio-options.component.js +119 -0
- package/dist/VideoStudio/components/vs-audio-options.component.js.map +1 -0
- package/dist/VideoStudio/components/vs-copilot-panel.component.d.ts +105 -0
- package/dist/VideoStudio/components/vs-copilot-panel.component.d.ts.map +1 -0
- package/dist/VideoStudio/components/vs-copilot-panel.component.js +560 -0
- package/dist/VideoStudio/components/vs-copilot-panel.component.js.map +1 -0
- package/dist/VideoStudio/components/vs-production-brief.component.d.ts +163 -0
- package/dist/VideoStudio/components/vs-production-brief.component.d.ts.map +1 -0
- package/dist/VideoStudio/components/vs-production-brief.component.js +1054 -0
- package/dist/VideoStudio/components/vs-production-brief.component.js.map +1 -0
- package/dist/VideoStudio/components/vs-setup-health-card.component.d.ts +43 -0
- package/dist/VideoStudio/components/vs-setup-health-card.component.d.ts.map +1 -0
- package/dist/VideoStudio/components/vs-setup-health-card.component.js +412 -0
- package/dist/VideoStudio/components/vs-setup-health-card.component.js.map +1 -0
- package/dist/VideoStudio/components/vs-studio-slide-in.component.d.ts +73 -0
- package/dist/VideoStudio/components/vs-studio-slide-in.component.d.ts.map +1 -0
- package/dist/VideoStudio/components/vs-studio-slide-in.component.js +271 -0
- package/dist/VideoStudio/components/vs-studio-slide-in.component.js.map +1 -0
- package/dist/VideoStudio/index.d.ts +12 -0
- package/dist/VideoStudio/index.d.ts.map +1 -0
- package/dist/VideoStudio/index.js +12 -0
- package/dist/VideoStudio/index.js.map +1 -0
- package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.d.ts +118 -0
- package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.d.ts.map +1 -0
- package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.js +964 -0
- package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.js.map +1 -0
- package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.d.ts +70 -0
- package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.d.ts.map +1 -0
- package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.js +600 -0
- package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.js.map +1 -0
- package/dist/VideoStudio/resources/video-studio-productions-resource.component.d.ts +182 -0
- package/dist/VideoStudio/resources/video-studio-productions-resource.component.d.ts.map +1 -0
- package/dist/VideoStudio/resources/video-studio-productions-resource.component.js +1481 -0
- package/dist/VideoStudio/resources/video-studio-productions-resource.component.js.map +1 -0
- package/dist/VideoStudio/services/vs-studio-slide-in-state.service.d.ts +102 -0
- package/dist/VideoStudio/services/vs-studio-slide-in-state.service.d.ts.map +1 -0
- package/dist/VideoStudio/services/vs-studio-slide-in-state.service.js +240 -0
- package/dist/VideoStudio/services/vs-studio-slide-in-state.service.js.map +1 -0
- package/dist/VideoStudio/video-studio-agent-context.d.ts +495 -0
- package/dist/VideoStudio/video-studio-agent-context.d.ts.map +1 -0
- package/dist/VideoStudio/video-studio-agent-context.js +992 -0
- package/dist/VideoStudio/video-studio-agent-context.js.map +1 -0
- package/dist/ai-dashboards.module.d.ts +25 -21
- package/dist/ai-dashboards.module.d.ts.map +1 -1
- package/dist/ai-dashboards.module.js +25 -3
- package/dist/ai-dashboards.module.js.map +1 -1
- package/dist/module.d.ts +13 -12
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +7 -0
- package/dist/module.js.map +1 -1
- package/dist/public-api.d.ts +8 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +10 -0
- package/dist/public-api.js.map +1 -1
- package/dist/shared/action-scheduled-job.d.ts.map +1 -1
- package/dist/shared/action-scheduled-job.js +2 -0
- package/dist/shared/action-scheduled-job.js.map +1 -1
- package/dist/video-studio-dashboards.module.d.ts +40 -0
- package/dist/video-studio-dashboards.module.d.ts.map +1 -0
- package/dist/video-studio-dashboards.module.js +159 -0
- package/dist/video-studio-dashboards.module.js.map +1 -0
- package/package.json +77 -71
- package/dist/PredictiveStudio/at-risk.view-models.d.ts +0 -120
- package/dist/PredictiveStudio/at-risk.view-models.d.ts.map +0 -1
- package/dist/PredictiveStudio/at-risk.view-models.js +0 -261
- package/dist/PredictiveStudio/at-risk.view-models.js.map +0 -1
- package/dist/PredictiveStudio/components/ps-confirm-modal.component.d.ts +0 -109
- package/dist/PredictiveStudio/components/ps-confirm-modal.component.d.ts.map +0 -1
- package/dist/PredictiveStudio/components/ps-confirm-modal.component.js +0 -323
- package/dist/PredictiveStudio/components/ps-confirm-modal.component.js.map +0 -1
- package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.d.ts +0 -137
- package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.d.ts.map +0 -1
- package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.js +0 -826
- package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.js.map +0 -1
|
@@ -172,6 +172,7 @@ export declare class ModelPromptPriorityMatrixComponent extends BaseAngularCompo
|
|
|
172
172
|
ngOnInit(): void;
|
|
173
173
|
ngOnDestroy(): void;
|
|
174
174
|
loadData(): Promise<void>;
|
|
175
|
+
private loadMatrixEntities;
|
|
175
176
|
private loadPrompts;
|
|
176
177
|
private loadModels;
|
|
177
178
|
private loadAssociations;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-prompt-priority-matrix.component.d.ts","sourceRoot":"","sources":["../../../../src/AI/components/prompts/model-prompt-priority-matrix.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1F,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAW,eAAe,EAAE,MAAM,MAAM,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"model-prompt-priority-matrix.component.d.ts","sourceRoot":"","sources":["../../../../src/AI/components/prompts/model-prompt-priority-matrix.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
2
2
|
import { RunView, LogError, LogStatus } from '@memberjunction/core';
|
|
3
3
|
import { Subject, BehaviorSubject } from 'rxjs';
|
|
4
|
+
import { AIEngineBase } from '@memberjunction/ai-engine-base';
|
|
4
5
|
import { IndexByUUID, NormalizeUUID, UUIDsEqual } from '@memberjunction/global';
|
|
5
6
|
import { BaseAngularComponent } from '@memberjunction/ng-base-types';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
@@ -638,11 +639,7 @@ export class ModelPromptPriorityMatrixComponent extends BaseAngularComponent {
|
|
|
638
639
|
this.isLoading = true;
|
|
639
640
|
this.error = null;
|
|
640
641
|
this.LoadingMessage = 'Loading prompts, models, and associations...';
|
|
641
|
-
const [prompts, models, associations] = await
|
|
642
|
-
this.loadPrompts(),
|
|
643
|
-
this.loadModels(),
|
|
644
|
-
this.loadAssociations()
|
|
645
|
-
]);
|
|
642
|
+
const [prompts, models, associations] = await this.loadMatrixEntities();
|
|
646
643
|
this.Prompts = this.SelectedPrompts.length > 0 ? this.SelectedPrompts : prompts;
|
|
647
644
|
this.Models = this.SelectedModels.length > 0 ? this.SelectedModels : models;
|
|
648
645
|
this.buildAssociations(associations);
|
|
@@ -657,6 +654,33 @@ export class ModelPromptPriorityMatrixComponent extends BaseAngularComponent {
|
|
|
657
654
|
this.isLoading = false;
|
|
658
655
|
}
|
|
659
656
|
}
|
|
657
|
+
async loadMatrixEntities() {
|
|
658
|
+
await AIEngineBase.Instance.Config(false);
|
|
659
|
+
if (AIEngineBase.Instance.Prompts.length > 0 || AIEngineBase.Instance.Models.length > 0) {
|
|
660
|
+
const prompts = this.SelectedPrompts.length > 0
|
|
661
|
+
? this.SelectedPrompts
|
|
662
|
+
: AIEngineBase.Instance.Prompts
|
|
663
|
+
.filter(p => p.Status === 'Active')
|
|
664
|
+
.slice()
|
|
665
|
+
.sort((a, b) => (a.Name || '').localeCompare(b.Name || ''));
|
|
666
|
+
const models = this.SelectedModels.length > 0
|
|
667
|
+
? this.SelectedModels
|
|
668
|
+
: AIEngineBase.Instance.Models
|
|
669
|
+
.filter(m => m.IsActive)
|
|
670
|
+
.slice()
|
|
671
|
+
.sort((a, b) => (a.Name || '').localeCompare(b.Name || ''));
|
|
672
|
+
const associations = AIEngineBase.Instance.PromptModels
|
|
673
|
+
.slice()
|
|
674
|
+
.sort((a, b) => (a.Priority || 0) - (b.Priority || 0));
|
|
675
|
+
return [prompts, models, associations];
|
|
676
|
+
}
|
|
677
|
+
const [prompts, models, associations] = await Promise.all([
|
|
678
|
+
this.loadPrompts(),
|
|
679
|
+
this.loadModels(),
|
|
680
|
+
this.loadAssociations()
|
|
681
|
+
]);
|
|
682
|
+
return [prompts, models, associations];
|
|
683
|
+
}
|
|
660
684
|
async loadPrompts() {
|
|
661
685
|
const rv = RunView.FromMetadataProvider(this.ProviderToUse);
|
|
662
686
|
const result = await rv.RunView({
|
|
@@ -1214,11 +1238,11 @@ export class ModelPromptPriorityMatrixComponent extends BaseAngularComponent {
|
|
|
1214
1238
|
i0.ɵɵconditional(ctx.isLoading ? 33 : 34);
|
|
1215
1239
|
i0.ɵɵadvance(2);
|
|
1216
1240
|
i0.ɵɵconditional(ctx.error ? 35 : -1);
|
|
1217
|
-
} }, dependencies: [i3.NgSelectOption, i3.ɵNgSelectMultipleOption, i3.DefaultValueAccessor, i3.NumberValueAccessor, i3.CheckboxControlValueAccessor, i3.SelectControlValueAccessor, i3.RadioControlValueAccessor, i3.NgControlStatus, i3.MinValidator, i3.MaxValidator, i3.NgModel, i4.LoadingComponent, i2.MJButtonDirective, i2.MJAlertComponent], styles: [".model-prompt-priority-matrix[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--mj-bg-surface-card);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n gap: 1rem;\n flex-wrap: wrap;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] .toolbar-title[_ngcontent-%COMP%] {\n margin: 0;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-weight: 600;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] .toolbar-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] .matrix-stats[_ngcontent-%COMP%] {\n display: flex;\n gap: 1rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] .matrix-stats[_ngcontent-%COMP%] .stat-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n font-size: 0.875rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] .matrix-stats[_ngcontent-%COMP%] .stat-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 1rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] .bulk-actions[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] .action-buttons[_ngcontent-%COMP%] {\n display: flex;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] .bulk-actions[_ngcontent-%COMP%] .btn[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] .action-buttons[_ngcontent-%COMP%] .btn[_ngcontent-%COMP%] {\n font-size: 0.875rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .bulk-edit-panel[_ngcontent-%COMP%] {\n padding: 1rem;\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n border-bottom: 1px solid color-mix(in srgb, var(--mj-status-warning) 30%, transparent);\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 1rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .bulk-edit-panel[_ngcontent-%COMP%] .bulk-edit-controls[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .bulk-edit-panel[_ngcontent-%COMP%] .bulk-edit-controls[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .bulk-edit-panel[_ngcontent-%COMP%] .bulk-edit-controls[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] .form-label[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 0.875rem;\n font-weight: 500;\n white-space: nowrap;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .bulk-edit-panel[_ngcontent-%COMP%] .bulk-edit-controls[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] .form-control[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .bulk-edit-panel[_ngcontent-%COMP%] .bulk-edit-controls[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] .form-select[_ngcontent-%COMP%] {\n min-width: 100px;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .bulk-edit-panel[_ngcontent-%COMP%] .bulk-edit-info[_ngcontent-%COMP%] {\n font-size: 0.875rem;\n color: var(--mj-color-warning-700);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .loading-container[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .loading-container[_ngcontent-%COMP%] .loading-content[_ngcontent-%COMP%] {\n text-align: center;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .loading-container[_ngcontent-%COMP%] .loading-content[_ngcontent-%COMP%] .loading-message[_ngcontent-%COMP%] {\n margin-top: 1rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] {\n flex: 1;\n overflow: hidden;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] {\n height: 100%;\n overflow: auto;\n padding: 1rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] {\n border-collapse: separate;\n border-spacing: 2px;\n background: var(--mj-bg-surface);\n border-radius: 0.5rem;\n overflow: hidden;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .prompt-header[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .model-header[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n padding: 0.75rem;\n font-weight: 600;\n text-align: center;\n position: sticky;\n top: 0;\n z-index: 10;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .prompt-header[_ngcontent-%COMP%] .header-content[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .model-header[_ngcontent-%COMP%] .header-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .prompt-header[_ngcontent-%COMP%] .header-content[_ngcontent-%COMP%] .header-name[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .model-header[_ngcontent-%COMP%] .header-content[_ngcontent-%COMP%] .header-name[_ngcontent-%COMP%] {\n font-size: 0.875rem;\n font-weight: 600;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .prompt-header[_ngcontent-%COMP%] .header-content[_ngcontent-%COMP%] .header-stats[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .model-header[_ngcontent-%COMP%] .header-content[_ngcontent-%COMP%] .header-stats[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .prompt-header[_ngcontent-%COMP%] {\n min-width: 200px;\n position: sticky;\n left: 0;\n z-index: 11;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] {\n width: 80px;\n height: 60px;\n border: 2px solid var(--mj-border-default);\n text-align: center;\n cursor: pointer;\n transition: all 0.2s ease;\n position: relative;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n transform: scale(1.05);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.selected[_ngcontent-%COMP%] {\n border-color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.editing[_ngcontent-%COMP%] {\n border-color: var(--mj-status-success);\n background: color-mix(in srgb, var(--mj-status-success) 10%, transparent);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.no-association[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border-style: dashed;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.no-association[_ngcontent-%COMP%] .empty-cell-indicator[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 1.5rem;\n opacity: 0.5;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.cannot-assign[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n cursor: not-allowed;\n opacity: 0.5;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.cannot-assign[_ngcontent-%COMP%] .blocked-cell-indicator[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n font-size: 1.25rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.has-association[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.has-association.priority-1[_ngcontent-%COMP%] {\n border-color: var(--mj-status-success);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.has-association.priority-2[_ngcontent-%COMP%] {\n border-color: var(--mj-color-success-500);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.has-association.priority-3[_ngcontent-%COMP%] {\n border-color: var(--mj-status-warning);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.has-association.priority-4[_ngcontent-%COMP%] {\n border-color: var(--mj-status-warning);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.has-association.priority-5[_ngcontent-%COMP%] {\n border-color: var(--mj-status-error);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.has-association.inactive[_ngcontent-%COMP%] {\n opacity: 0.6;\n background: var(--mj-bg-surface-card);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.has-association.new[_ngcontent-%COMP%] {\n box-shadow: 0 0 0 2px var(--mj-status-success);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.has-association.modified[_ngcontent-%COMP%] {\n box-shadow: 0 0 0 2px var(--mj-status-warning);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n height: 100%;\n gap: 0.25rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .priority-badge[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-radius: 50%;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 0.75rem;\n font-weight: 600;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .priority-badge.priority-1[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .priority-badge.priority-2[_ngcontent-%COMP%] {\n background: var(--mj-color-success-500);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .priority-badge.priority-3[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n color: black;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .priority-badge.priority-4[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .priority-badge.priority-5[_ngcontent-%COMP%] {\n background: var(--mj-status-error);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .status-indicator[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .status-indicator.inactive[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .change-indicator[_ngcontent-%COMP%] {\n position: absolute;\n top: 2px;\n right: 2px;\n width: 12px;\n height: 12px;\n border-radius: 50%;\n font-size: 0.625rem;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .change-indicator.new[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n color: var(--mj-text-inverse);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .change-indicator.modified[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n color: black;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .performance-overlay[_ngcontent-%COMP%] {\n position: absolute;\n bottom: 2px;\n left: 2px;\n right: 2px;\n background: rgba(0, 0, 0, 0.8);\n color: var(--mj-text-inverse);\n border-radius: 0.25rem;\n padding: 0.125rem;\n font-size: 0.625rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] {\n flex: 1;\n padding: 1rem;\n overflow-y: auto;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] {\n margin-bottom: 1.5rem;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 0.5rem;\n padding: 1rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 1rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] .sort-controls[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] .filter-controls[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] .sort-controls[_ngcontent-%COMP%] .form-label[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] .filter-controls[_ngcontent-%COMP%] .form-label[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 0.875rem;\n color: var(--mj-text-muted);\n white-space: nowrap;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] .sort-controls[_ngcontent-%COMP%] .form-select[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] .filter-controls[_ngcontent-%COMP%] .form-select[_ngcontent-%COMP%] {\n min-width: 120px;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] .sort-controls[_ngcontent-%COMP%] .form-check[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] .filter-controls[_ngcontent-%COMP%] .form-check[_ngcontent-%COMP%] {\n margin: 0;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 0.5rem;\n padding: 1rem;\n margin-bottom: 1rem;\n transition: all 0.2s ease;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%]:hover {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);\n transform: translateY(-1px);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item.inactive[_ngcontent-%COMP%] {\n opacity: 0.7;\n background: var(--mj-bg-surface-card);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item.new[_ngcontent-%COMP%] {\n border-color: var(--mj-status-success);\n border-left-width: 4px;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item.modified[_ngcontent-%COMP%] {\n border-color: var(--mj-status-warning);\n border-left-width: 4px;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 0.75rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-header[_ngcontent-%COMP%] .association-names[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-header[_ngcontent-%COMP%] .association-names[_ngcontent-%COMP%] .prompt-name[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-header[_ngcontent-%COMP%] .association-names[_ngcontent-%COMP%] .model-name[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-weight: 500;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-header[_ngcontent-%COMP%] .association-names[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-header[_ngcontent-%COMP%] .association-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-header[_ngcontent-%COMP%] .association-actions[_ngcontent-%COMP%] .btn[_ngcontent-%COMP%] {\n padding: 0.25rem 0.5rem;\n font-size: 0.75rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n flex-wrap: wrap;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .detail-label[_ngcontent-%COMP%] {\n font-size: 0.875rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .priority-badge[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n padding: 0.25rem 0.5rem;\n border-radius: 0.25rem;\n font-size: 0.75rem;\n font-weight: 600;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .priority-badge.priority-1[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .priority-badge.priority-2[_ngcontent-%COMP%] {\n background: var(--mj-color-success-500);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .priority-badge.priority-3[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n color: black;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .priority-badge.priority-4[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .priority-badge.priority-5[_ngcontent-%COMP%] {\n background: var(--mj-status-error);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .status-badge[_ngcontent-%COMP%] {\n padding: 0.25rem 0.5rem;\n border-radius: 0.25rem;\n font-size: 0.75rem;\n font-weight: 500;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .status-badge.badge-success[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-color-success-700);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .status-badge.badge-secondary[_ngcontent-%COMP%] {\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .change-badge[_ngcontent-%COMP%] {\n padding: 0.25rem 0.5rem;\n border-radius: 0.25rem;\n font-size: 0.75rem;\n font-weight: 500;\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .change-badge.new[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-color-success-700);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .change-badge.modified[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-color-warning-700);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .no-associations-message[_ngcontent-%COMP%] {\n text-align: center;\n padding: 3rem 1rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .no-associations-message[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 3rem;\n margin-bottom: 1rem;\n display: block;\n opacity: 0.5;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .no-associations-message[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 1rem;\n line-height: 1.5;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .error-container[_ngcontent-%COMP%] {\n padding: 1rem;\n}\n\n@media (max-width: 1200px) {\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] {\n min-width: 100%;\n justify-content: space-between;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] {\n width: 60px;\n height: 50px;\n }\n}\n@media (max-width: 768px) {\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] {\n padding: 0.75rem;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n gap: 0.5rem;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .bulk-edit-panel[_ngcontent-%COMP%] {\n padding: 0.75rem;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .bulk-edit-panel[_ngcontent-%COMP%] .bulk-edit-controls[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n gap: 0.75rem;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] {\n padding: 0.75rem;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] {\n width: 50px;\n height: 40px;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] {\n padding: 0.75rem;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-header[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n gap: 0.75rem;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n }\n}"] });
|
|
1241
|
+
} }, dependencies: [i3.NgSelectOption, i3.ɵNgSelectMultipleOption, i3.DefaultValueAccessor, i3.NumberValueAccessor, i3.CheckboxControlValueAccessor, i3.SelectControlValueAccessor, i3.RadioControlValueAccessor, i3.NgControlStatus, i3.MinValidator, i3.MaxValidator, i3.NgModel, i4.LoadingComponent, i2.MJButtonDirective, i2.MJAlertComponent], styles: [".model-prompt-priority-matrix[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--mj-bg-surface-card);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n gap: 1rem;\n flex-wrap: wrap;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] .toolbar-title[_ngcontent-%COMP%] {\n margin: 0;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-weight: 600;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] .toolbar-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] .matrix-stats[_ngcontent-%COMP%] {\n display: flex;\n gap: 1rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] .matrix-stats[_ngcontent-%COMP%] .stat-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n font-size: 0.875rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] .matrix-stats[_ngcontent-%COMP%] .stat-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 1rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] .bulk-actions[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] .action-buttons[_ngcontent-%COMP%] {\n display: flex;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] .bulk-actions[_ngcontent-%COMP%] .btn[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] .action-buttons[_ngcontent-%COMP%] .btn[_ngcontent-%COMP%] {\n font-size: 0.875rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .bulk-edit-panel[_ngcontent-%COMP%] {\n padding: 1rem;\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n border-bottom: 1px solid color-mix(in srgb, var(--mj-status-warning) 30%, transparent);\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 1rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .bulk-edit-panel[_ngcontent-%COMP%] .bulk-edit-controls[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .bulk-edit-panel[_ngcontent-%COMP%] .bulk-edit-controls[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .bulk-edit-panel[_ngcontent-%COMP%] .bulk-edit-controls[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] .form-label[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 0.875rem;\n font-weight: 500;\n white-space: nowrap;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .bulk-edit-panel[_ngcontent-%COMP%] .bulk-edit-controls[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] .form-control[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .bulk-edit-panel[_ngcontent-%COMP%] .bulk-edit-controls[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] .form-select[_ngcontent-%COMP%] {\n min-width: 100px;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .bulk-edit-panel[_ngcontent-%COMP%] .bulk-edit-info[_ngcontent-%COMP%] {\n font-size: 0.875rem;\n color: var(--mj-color-warning-700);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .loading-container[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .loading-container[_ngcontent-%COMP%] .loading-content[_ngcontent-%COMP%] {\n text-align: center;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .loading-container[_ngcontent-%COMP%] .loading-content[_ngcontent-%COMP%] .loading-message[_ngcontent-%COMP%] {\n margin-top: 1rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] {\n flex: 1;\n overflow: hidden;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] {\n height: 100%;\n overflow: auto;\n padding: 1rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] {\n border-collapse: separate;\n border-spacing: 2px;\n background: var(--mj-bg-surface);\n border-radius: 0.5rem;\n overflow: hidden;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .prompt-header[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .model-header[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n padding: 0.75rem;\n font-weight: 600;\n text-align: center;\n position: sticky;\n top: 0;\n z-index: 10;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .prompt-header[_ngcontent-%COMP%] .header-content[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .model-header[_ngcontent-%COMP%] .header-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .prompt-header[_ngcontent-%COMP%] .header-content[_ngcontent-%COMP%] .header-name[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .model-header[_ngcontent-%COMP%] .header-content[_ngcontent-%COMP%] .header-name[_ngcontent-%COMP%] {\n font-size: 0.875rem;\n font-weight: 600;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .prompt-header[_ngcontent-%COMP%] .header-content[_ngcontent-%COMP%] .header-stats[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .model-header[_ngcontent-%COMP%] .header-content[_ngcontent-%COMP%] .header-stats[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .prompt-header[_ngcontent-%COMP%] {\n min-width: 200px;\n position: sticky;\n left: 0;\n z-index: 11;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] {\n width: 80px;\n height: 60px;\n border: 2px solid var(--mj-border-default);\n text-align: center;\n cursor: pointer;\n transition: all 0.2s ease;\n position: relative;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n transform: scale(1.05);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.selected[_ngcontent-%COMP%] {\n border-color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.editing[_ngcontent-%COMP%] {\n border-color: var(--mj-status-success);\n background: color-mix(in srgb, var(--mj-status-success) 10%, transparent);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.no-association[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border-style: dashed;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.no-association[_ngcontent-%COMP%] .empty-cell-indicator[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 1.5rem;\n opacity: 0.5;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.cannot-assign[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n cursor: not-allowed;\n opacity: 0.5;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.cannot-assign[_ngcontent-%COMP%] .blocked-cell-indicator[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n font-size: 1.25rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.has-association[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.has-association.priority-1[_ngcontent-%COMP%] {\n border-color: var(--mj-status-success);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.has-association.priority-2[_ngcontent-%COMP%] {\n border-color: var(--mj-color-success-500);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.has-association.priority-3[_ngcontent-%COMP%] {\n border-color: var(--mj-status-warning);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.has-association.priority-4[_ngcontent-%COMP%] {\n border-color: var(--mj-status-warning);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.has-association.priority-5[_ngcontent-%COMP%] {\n border-color: var(--mj-status-error);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.has-association.inactive[_ngcontent-%COMP%] {\n opacity: 0.6;\n background: var(--mj-bg-surface-card);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.has-association.new[_ngcontent-%COMP%] {\n box-shadow: 0 0 0 2px var(--mj-status-success);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell.has-association.modified[_ngcontent-%COMP%] {\n box-shadow: 0 0 0 2px var(--mj-status-warning);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n height: 100%;\n gap: 0.25rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .priority-badge[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-radius: 50%;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 0.75rem;\n font-weight: 600;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .priority-badge.priority-1[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .priority-badge.priority-2[_ngcontent-%COMP%] {\n background: var(--mj-color-success-500);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .priority-badge.priority-3[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n color: var(--mj-status-on-warning);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .priority-badge.priority-4[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .priority-badge.priority-5[_ngcontent-%COMP%] {\n background: var(--mj-status-error);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .status-indicator[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .status-indicator.inactive[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .change-indicator[_ngcontent-%COMP%] {\n position: absolute;\n top: 2px;\n right: 2px;\n width: 12px;\n height: 12px;\n border-radius: 50%;\n font-size: 0.625rem;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .change-indicator.new[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n color: var(--mj-text-inverse);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .change-indicator.modified[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n color: var(--mj-status-on-warning);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] .cell-content[_ngcontent-%COMP%] .performance-overlay[_ngcontent-%COMP%] {\n position: absolute;\n bottom: 2px;\n left: 2px;\n right: 2px;\n background: rgba(0, 0, 0, 0.8);\n color: var(--mj-text-inverse);\n border-radius: 0.25rem;\n padding: 0.125rem;\n font-size: 0.625rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] {\n flex: 1;\n padding: 1rem;\n overflow-y: auto;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] {\n margin-bottom: 1.5rem;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 0.5rem;\n padding: 1rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 1rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] .sort-controls[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] .filter-controls[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] .sort-controls[_ngcontent-%COMP%] .form-label[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] .filter-controls[_ngcontent-%COMP%] .form-label[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 0.875rem;\n color: var(--mj-text-muted);\n white-space: nowrap;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] .sort-controls[_ngcontent-%COMP%] .form-select[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] .filter-controls[_ngcontent-%COMP%] .form-select[_ngcontent-%COMP%] {\n min-width: 120px;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] .sort-controls[_ngcontent-%COMP%] .form-check[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] .filter-controls[_ngcontent-%COMP%] .form-check[_ngcontent-%COMP%] {\n margin: 0;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 0.5rem;\n padding: 1rem;\n margin-bottom: 1rem;\n transition: all 0.2s ease;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%]:hover {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);\n transform: translateY(-1px);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item.inactive[_ngcontent-%COMP%] {\n opacity: 0.7;\n background: var(--mj-bg-surface-card);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item.new[_ngcontent-%COMP%] {\n border-color: var(--mj-status-success);\n border-left-width: 4px;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item.modified[_ngcontent-%COMP%] {\n border-color: var(--mj-status-warning);\n border-left-width: 4px;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 0.75rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-header[_ngcontent-%COMP%] .association-names[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-header[_ngcontent-%COMP%] .association-names[_ngcontent-%COMP%] .prompt-name[_ngcontent-%COMP%], \n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-header[_ngcontent-%COMP%] .association-names[_ngcontent-%COMP%] .model-name[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-weight: 500;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-header[_ngcontent-%COMP%] .association-names[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-header[_ngcontent-%COMP%] .association-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-header[_ngcontent-%COMP%] .association-actions[_ngcontent-%COMP%] .btn[_ngcontent-%COMP%] {\n padding: 0.25rem 0.5rem;\n font-size: 0.75rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n flex-wrap: wrap;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .detail-label[_ngcontent-%COMP%] {\n font-size: 0.875rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .priority-badge[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n padding: 0.25rem 0.5rem;\n border-radius: 0.25rem;\n font-size: 0.75rem;\n font-weight: 600;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .priority-badge.priority-1[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .priority-badge.priority-2[_ngcontent-%COMP%] {\n background: var(--mj-color-success-500);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .priority-badge.priority-3[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n color: var(--mj-status-on-warning);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .priority-badge.priority-4[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .priority-badge.priority-5[_ngcontent-%COMP%] {\n background: var(--mj-status-error);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .status-badge[_ngcontent-%COMP%] {\n padding: 0.25rem 0.5rem;\n border-radius: 0.25rem;\n font-size: 0.75rem;\n font-weight: 500;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .status-badge.badge-success[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-color-success-700);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .status-badge.badge-secondary[_ngcontent-%COMP%] {\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .change-badge[_ngcontent-%COMP%] {\n padding: 0.25rem 0.5rem;\n border-radius: 0.25rem;\n font-size: 0.75rem;\n font-weight: 500;\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .change-badge.new[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-color-success-700);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] .detail-item[_ngcontent-%COMP%] .change-badge.modified[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-color-warning-700);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .no-associations-message[_ngcontent-%COMP%] {\n text-align: center;\n padding: 3rem 1rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .no-associations-message[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 3rem;\n margin-bottom: 1rem;\n display: block;\n opacity: 0.5;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .no-associations-message[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 1rem;\n line-height: 1.5;\n}\n.model-prompt-priority-matrix[_ngcontent-%COMP%] .error-container[_ngcontent-%COMP%] {\n padding: 1rem;\n}\n\n@media (max-width: 1200px) {\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] {\n min-width: 100%;\n justify-content: space-between;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] {\n width: 60px;\n height: 50px;\n }\n}\n@media (max-width: 768px) {\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] {\n padding: 0.75rem;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-toolbar[_ngcontent-%COMP%] .toolbar-section[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n gap: 0.5rem;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .bulk-edit-panel[_ngcontent-%COMP%] {\n padding: 0.75rem;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .bulk-edit-panel[_ngcontent-%COMP%] .bulk-edit-controls[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n gap: 0.75rem;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] {\n padding: 0.75rem;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .matrix-container[_ngcontent-%COMP%] .matrix-scroll[_ngcontent-%COMP%] .matrix-table[_ngcontent-%COMP%] .matrix-cell[_ngcontent-%COMP%] {\n width: 50px;\n height: 40px;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] {\n padding: 0.75rem;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-controls[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-header[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n gap: 0.75rem;\n }\n .model-prompt-priority-matrix[_ngcontent-%COMP%] .list-container[_ngcontent-%COMP%] .associations-list[_ngcontent-%COMP%] .association-item[_ngcontent-%COMP%] .association-details[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n }\n}"] });
|
|
1218
1242
|
}
|
|
1219
1243
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ModelPromptPriorityMatrixComponent, [{
|
|
1220
1244
|
type: Component,
|
|
1221
|
-
args: [{ standalone: false, selector: 'app-model-prompt-priority-matrix', template: "<div class=\"model-prompt-priority-matrix\">\n <!-- Header toolbar -->\n <div class=\"matrix-toolbar\">\n <div class=\"toolbar-section\">\n <h5 class=\"toolbar-title\">\n <i class=\"fa-solid fa-table-cells\"></i>\n Model-Prompt Priority Matrix\n </h5>\n \n <div class=\"view-mode-toggle\">\n <div class=\"btn-group\" role=\"group\">\n <input \n type=\"radio\" \n class=\"btn-check\" \n name=\"viewMode\" \n id=\"matrixView\" \n value=\"matrix\"\n [(ngModel)]=\"viewMode\"\n (ngModelChange)=\"onViewModeChange($event)\">\n <label class=\"btn btn-outline-primary btn-sm\" for=\"matrixView\">\n <i class=\"fa-solid fa-table-cells\"></i>\n Matrix\n </label>\n \n <input \n type=\"radio\" \n class=\"btn-check\" \n name=\"viewMode\" \n id=\"listView\" \n value=\"list\"\n [(ngModel)]=\"viewMode\"\n (ngModelChange)=\"onViewModeChange($event)\">\n <label class=\"btn btn-outline-primary btn-sm\" for=\"listView\">\n <i class=\"fa-solid fa-list\"></i>\n List\n </label>\n </div>\n </div>\n </div>\n \n <div class=\"toolbar-section\">\n <div class=\"matrix-stats\">\n <span class=\"stat-item\">\n <i class=\"fa-solid fa-link text-primary\"></i>\n {{ getAssociationCount() }} associations\n </span>\n <span class=\"stat-item\">\n <i class=\"fa-solid fa-star text-warning\"></i>\n {{ getAveragePriority() }} avg priority\n </span>\n @if (hasUnsavedChanges()) {\n <span class=\"stat-item text-warning\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n Unsaved changes\n </span>\n }\n </div>\n </div>\n \n <div class=\"toolbar-section\">\n @if (selectedCells.size > 0) {\n <div class=\"bulk-actions\">\n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-primary\"\n [class.active]=\"bulkEditMode\"\n (click)=\"bulkEditMode = !bulkEditMode\"\n title=\"Bulk edit selected cells\">\n <i class=\"fa-solid fa-edit\"></i>\n Edit ({{ selectedCells.size }})\n </button>\n \n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-danger\"\n (click)=\"bulkRemoveSelectedCells()\"\n title=\"Remove selected associations\">\n <i class=\"fa-solid fa-trash\"></i>\n Remove\n </button>\n </div>\n }\n \n <div class=\"action-buttons\">\n @if (hasUnsavedChanges()) {\n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-secondary\"\n (click)=\"discardChanges()\"\n title=\"Discard changes\">\n <i class=\"fa-solid fa-undo\"></i>\n Discard\n </button>\n \n <button \n type=\"button\" \n class=\"btn btn-sm btn-success\"\n (click)=\"saveChanges()\"\n [disabled]=\"isLoading\"\n title=\"Save changes\">\n <i class=\"fa-solid fa-save\"></i>\n Save\n </button>\n }\n \n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-info\"\n (click)=\"exportMatrix()\"\n title=\"Export matrix\">\n <i class=\"fa-solid fa-download\"></i>\n Export\n </button>\n </div>\n </div>\n </div>\n \n <!-- Bulk edit panel -->\n @if (bulkEditMode && selectedCells.size > 0) {\n <div class=\"bulk-edit-panel\">\n <div class=\"bulk-edit-controls\">\n <div class=\"form-group\">\n <label for=\"bulkPriority\" class=\"form-label\">Priority:</label>\n <input \n type=\"number\" \n id=\"bulkPriority\"\n class=\"form-control form-control-sm\"\n [(ngModel)]=\"bulkEditPriority\"\n min=\"1\"\n max=\"10\">\n </div>\n \n <div class=\"form-group\">\n <label for=\"bulkStatus\" class=\"form-label\">Status:</label>\n <select \n id=\"bulkStatus\"\n class=\"form-select form-select-sm\"\n [(ngModel)]=\"bulkEditStatus\">\n <option value=\"Active\">Active</option>\n <option value=\"Inactive\">Inactive</option>\n </select>\n </div>\n \n <div class=\"form-group\">\n <button \n type=\"button\" \n class=\"btn btn-sm btn-primary\"\n (click)=\"bulkUpdateSelectedCells()\"\n title=\"Apply changes to selected cells\">\n <i class=\"fa-solid fa-check\"></i>\n Apply\n </button>\n \n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-secondary\"\n (click)=\"bulkEditMode = false\"\n title=\"Cancel bulk edit\">\n <i class=\"fa-solid fa-times\"></i>\n Cancel\n </button>\n </div>\n </div>\n \n <div class=\"bulk-edit-info\">\n <small class=\"text-muted\">\n Editing {{ selectedCells.size }} selected cell(s). \n Use Ctrl+Click for multi-select, Shift+Click for range select.\n </small>\n </div>\n </div>\n }\n \n <!-- Loading state -->\n @if (isLoading) {\n <div class=\"loading-container\">\n <mj-loading [text]=\"loadingMessage\" size=\"large\"></mj-loading>\n </div>\n } @else {\n <!-- Matrix view -->\n @if (viewMode === 'matrix') {\n <div class=\"matrix-container\">\n <div class=\"matrix-scroll\">\n <table class=\"matrix-table\">\n <!-- Header row with model names -->\n <thead>\n <tr>\n <th class=\"prompt-header\">Prompts \\\\ Models</th>\n @for (model of models; track model.ID) {\n <th class=\"model-header\" [title]=\"model.Description || model.Name\">\n <div class=\"header-content\">\n <div class=\"header-name\">{{ model.Name }}</div>\n <div class=\"header-stats\">\n <small class=\"text-muted\">{{ getModelAssociationCount(model.ID) }}</small>\n </div>\n </div>\n </th>\n }\n </tr>\n </thead>\n \n <!-- Matrix body -->\n <tbody>\n @for (prompt of prompts; track prompt.ID; let promptIndex = $index) {\n <tr class=\"matrix-row\">\n <th class=\"prompt-header\" [title]=\"prompt.Description || prompt.Name\" (click)=\"selectPrompt(prompt)\">\n <div class=\"header-content\">\n <div class=\"header-name\">{{ prompt.Name }}</div>\n <div class=\"header-stats\">\n <small class=\"text-muted\">{{ getPromptAssociationCount(prompt.ID) }}</small>\n </div>\n </div>\n </th>\n \n @for (model of models; track model.ID; let modelIndex = $index) {\n <td \n [class]=\"getCellClass(matrix[promptIndex][modelIndex])\"\n (click)=\"onCellClick(promptIndex, modelIndex, $event)\"\n (dblclick)=\"onCellDoubleClick(promptIndex, modelIndex)\"\n [title]=\"getCellTooltip(matrix[promptIndex][modelIndex])\">\n \n @if (matrix[promptIndex][modelIndex].association; as assoc) {\n <div class=\"cell-content\">\n <div class=\"priority-badge priority-{{ assoc.priority }}\">\n {{ assoc.priority }}\n </div>\n \n @if (assoc.status === 'Inactive') {\n <div class=\"status-indicator inactive\">\n <i class=\"fa-solid fa-ban\"></i>\n </div>\n }\n \n @if (assoc.isNew) {\n <div class=\"change-indicator new\">\n <i class=\"fa-solid fa-plus\"></i>\n </div>\n } @else if (assoc.isModified) {\n <div class=\"change-indicator modified\">\n <i class=\"fa-solid fa-edit\"></i>\n </div>\n }\n \n @if (showPerformanceOverlay && performanceData[assoc.promptId + '_' + assoc.modelId]) {\n <div class=\"performance-overlay\">\n <small>{{ performanceData[assoc.promptId + '_' + assoc.modelId].avgResponseTime }}ms</small>\n </div>\n }\n </div>\n } @else {\n <div class=\"cell-content empty\">\n @if (matrix[promptIndex][modelIndex].canAssign) {\n <div class=\"empty-cell-indicator\">\n <i class=\"fa-solid fa-plus\"></i>\n </div>\n } @else {\n <div class=\"blocked-cell-indicator\">\n <i class=\"fa-solid fa-ban\"></i>\n </div>\n }\n </div>\n }\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n </div>\n }\n \n <!-- List view -->\n @if (viewMode === 'list') {\n <div class=\"list-container\">\n <div class=\"list-header\">\n <div class=\"list-controls\">\n <div class=\"sort-controls\">\n <label class=\"form-label\">Sort by:</label>\n <select \n class=\"form-select form-select-sm\"\n [(ngModel)]=\"sortBy\"\n (ngModelChange)=\"sortAssociations()\">\n <option value=\"prompt\">Prompt Name</option>\n <option value=\"model\">Model Name</option>\n <option value=\"priority\">Priority</option>\n </select>\n \n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-secondary\"\n (click)=\"toggleSortDirection()\"\n [title]=\"'Sort ' + (sortDirection === 'asc' ? 'descending' : 'ascending')\">\n <i class=\"fa-solid\" [class.fa-sort-up]=\"sortDirection === 'asc'\" [class.fa-sort-down]=\"sortDirection === 'desc'\"></i>\n </button>\n </div>\n \n <div class=\"filter-controls\">\n <div class=\"form-check form-switch\">\n <input \n class=\"form-check-input\" \n type=\"checkbox\" \n id=\"showInactive\"\n [(ngModel)]=\"showInactiveAssociations\">\n <label class=\"form-check-label\" for=\"showInactive\">\n Show inactive\n </label>\n </div>\n </div>\n </div>\n </div>\n \n <div class=\"associations-list\">\n @for (association of associations; track association.promptId + '_' + association.modelId) {\n @if (showInactiveAssociations || association.status === 'Active') {\n <div class=\"association-item\" \n [class.inactive]=\"association.status === 'Inactive'\"\n [class.new]=\"association.isNew\"\n [class.modified]=\"association.isModified\">\n \n <div class=\"association-header\">\n <div class=\"association-names\">\n <strong class=\"prompt-name\">{{ association.promptName }}</strong>\n <i class=\"fa-solid fa-arrow-right text-muted\"></i>\n <strong class=\"model-name\">{{ association.modelName }}</strong>\n </div>\n \n <div class=\"association-actions\">\n @if (!readonly) {\n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-primary\"\n title=\"Edit association\">\n <i class=\"fa-solid fa-edit\"></i>\n </button>\n \n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-danger\"\n (click)=\"removeAssociation(association.promptId, association.modelId)\"\n title=\"Remove association\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n }\n </div>\n </div>\n \n <div class=\"association-details\">\n <div class=\"detail-item\">\n <span class=\"detail-label\">Priority:</span>\n <span class=\"priority-badge priority-{{ association.priority }}\">\n {{ association.priority }}\n </span>\n </div>\n \n <div class=\"detail-item\">\n <span class=\"detail-label\">Status:</span>\n <span class=\"status-badge\" [class.badge-success]=\"association.status === 'Active'\" [class.badge-secondary]=\"association.status === 'Inactive'\">\n {{ association.status }}\n </span>\n </div>\n \n @if (association.isNew) {\n <div class=\"detail-item\">\n <span class=\"change-badge new\">\n <i class=\"fa-solid fa-plus\"></i>\n New\n </span>\n </div>\n } @else if (association.isModified) {\n <div class=\"detail-item\">\n <span class=\"change-badge modified\">\n <i class=\"fa-solid fa-edit\"></i>\n Modified\n </span>\n </div>\n }\n </div>\n </div>\n }\n }\n \n @if (associations.length === 0) {\n <div class=\"no-associations-message\">\n <i class=\"fa-solid fa-info-circle text-muted\"></i>\n <p class=\"text-muted mb-0\">No prompt-model associations found. Click on matrix cells to create associations.</p>\n </div>\n }\n </div>\n </div>\n }\n }\n \n <!-- Error state -->\n @if (error) {\n <div class=\"error-container\">\n <mj-alert Variant=\"error\">\n {{ error }}\n <button mjButton variant=\"danger\" size=\"sm\" actions (click)=\"loadData()\">\n <i class=\"fa-solid fa-refresh\"></i>\n Retry\n </button>\n </mj-alert>\n </div>\n }\n</div>", styles: [".model-prompt-priority-matrix {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--mj-bg-surface-card);\n}\n.model-prompt-priority-matrix .matrix-toolbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n gap: 1rem;\n flex-wrap: wrap;\n}\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section .toolbar-title {\n margin: 0;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-weight: 600;\n}\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section .toolbar-title i {\n color: var(--mj-brand-primary);\n}\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section .matrix-stats {\n display: flex;\n gap: 1rem;\n}\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section .matrix-stats .stat-item {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n font-size: 0.875rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section .matrix-stats .stat-item i {\n font-size: 1rem;\n}\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section .bulk-actions,\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section .action-buttons {\n display: flex;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section .bulk-actions .btn,\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section .action-buttons .btn {\n font-size: 0.875rem;\n}\n.model-prompt-priority-matrix .bulk-edit-panel {\n padding: 1rem;\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n border-bottom: 1px solid color-mix(in srgb, var(--mj-status-warning) 30%, transparent);\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 1rem;\n}\n.model-prompt-priority-matrix .bulk-edit-panel .bulk-edit-controls {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n.model-prompt-priority-matrix .bulk-edit-panel .bulk-edit-controls .form-group {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix .bulk-edit-panel .bulk-edit-controls .form-group .form-label {\n margin: 0;\n font-size: 0.875rem;\n font-weight: 500;\n white-space: nowrap;\n}\n.model-prompt-priority-matrix .bulk-edit-panel .bulk-edit-controls .form-group .form-control,\n.model-prompt-priority-matrix .bulk-edit-panel .bulk-edit-controls .form-group .form-select {\n min-width: 100px;\n}\n.model-prompt-priority-matrix .bulk-edit-panel .bulk-edit-info {\n font-size: 0.875rem;\n color: var(--mj-color-warning-700);\n}\n.model-prompt-priority-matrix .loading-container {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.model-prompt-priority-matrix .loading-container .loading-content {\n text-align: center;\n}\n.model-prompt-priority-matrix .loading-container .loading-content .loading-message {\n margin-top: 1rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix .matrix-container {\n flex: 1;\n overflow: hidden;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll {\n height: 100%;\n overflow: auto;\n padding: 1rem;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table {\n border-collapse: separate;\n border-spacing: 2px;\n background: var(--mj-bg-surface);\n border-radius: 0.5rem;\n overflow: hidden;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .prompt-header,\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .model-header {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n padding: 0.75rem;\n font-weight: 600;\n text-align: center;\n position: sticky;\n top: 0;\n z-index: 10;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .prompt-header .header-content,\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .model-header .header-content {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .prompt-header .header-content .header-name,\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .model-header .header-content .header-name {\n font-size: 0.875rem;\n font-weight: 600;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .prompt-header .header-content .header-stats,\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .model-header .header-content .header-stats {\n font-size: 0.75rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .prompt-header {\n min-width: 200px;\n position: sticky;\n left: 0;\n z-index: 11;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell {\n width: 80px;\n height: 60px;\n border: 2px solid var(--mj-border-default);\n text-align: center;\n cursor: pointer;\n transition: all 0.2s ease;\n position: relative;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell:hover {\n border-color: var(--mj-brand-primary);\n transform: scale(1.05);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.selected {\n border-color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.editing {\n border-color: var(--mj-status-success);\n background: color-mix(in srgb, var(--mj-status-success) 10%, transparent);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.no-association {\n background: var(--mj-bg-surface-card);\n border-style: dashed;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.no-association .empty-cell-indicator {\n color: var(--mj-text-muted);\n font-size: 1.5rem;\n opacity: 0.5;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.cannot-assign {\n background: var(--mj-bg-surface-card);\n cursor: not-allowed;\n opacity: 0.5;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.cannot-assign .blocked-cell-indicator {\n color: var(--mj-status-error);\n font-size: 1.25rem;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.has-association {\n background: var(--mj-bg-surface);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.has-association.priority-1 {\n border-color: var(--mj-status-success);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.has-association.priority-2 {\n border-color: var(--mj-color-success-500);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.has-association.priority-3 {\n border-color: var(--mj-status-warning);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.has-association.priority-4 {\n border-color: var(--mj-status-warning);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.has-association.priority-5 {\n border-color: var(--mj-status-error);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.has-association.inactive {\n opacity: 0.6;\n background: var(--mj-bg-surface-card);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.has-association.new {\n box-shadow: 0 0 0 2px var(--mj-status-success);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.has-association.modified {\n box-shadow: 0 0 0 2px var(--mj-status-warning);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n height: 100%;\n gap: 0.25rem;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .priority-badge {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-radius: 50%;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 0.75rem;\n font-weight: 600;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .priority-badge.priority-1 {\n background: var(--mj-status-success);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .priority-badge.priority-2 {\n background: var(--mj-color-success-500);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .priority-badge.priority-3 {\n background: var(--mj-status-warning);\n color: black;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .priority-badge.priority-4 {\n background: var(--mj-status-warning);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .priority-badge.priority-5 {\n background: var(--mj-status-error);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .status-indicator {\n font-size: 0.75rem;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .status-indicator.inactive {\n color: var(--mj-status-error);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .change-indicator {\n position: absolute;\n top: 2px;\n right: 2px;\n width: 12px;\n height: 12px;\n border-radius: 50%;\n font-size: 0.625rem;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .change-indicator.new {\n background: var(--mj-status-success);\n color: var(--mj-text-inverse);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .change-indicator.modified {\n background: var(--mj-status-warning);\n color: black;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .performance-overlay {\n position: absolute;\n bottom: 2px;\n left: 2px;\n right: 2px;\n background: rgba(0, 0, 0, 0.8);\n color: var(--mj-text-inverse);\n border-radius: 0.25rem;\n padding: 0.125rem;\n font-size: 0.625rem;\n}\n.model-prompt-priority-matrix .list-container {\n flex: 1;\n padding: 1rem;\n overflow-y: auto;\n}\n.model-prompt-priority-matrix .list-container .list-header {\n margin-bottom: 1.5rem;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 0.5rem;\n padding: 1rem;\n}\n.model-prompt-priority-matrix .list-container .list-header .list-controls {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 1rem;\n}\n.model-prompt-priority-matrix .list-container .list-header .list-controls .sort-controls,\n.model-prompt-priority-matrix .list-container .list-header .list-controls .filter-controls {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix .list-container .list-header .list-controls .sort-controls .form-label,\n.model-prompt-priority-matrix .list-container .list-header .list-controls .filter-controls .form-label {\n margin: 0;\n font-size: 0.875rem;\n color: var(--mj-text-muted);\n white-space: nowrap;\n}\n.model-prompt-priority-matrix .list-container .list-header .list-controls .sort-controls .form-select,\n.model-prompt-priority-matrix .list-container .list-header .list-controls .filter-controls .form-select {\n min-width: 120px;\n}\n.model-prompt-priority-matrix .list-container .list-header .list-controls .sort-controls .form-check,\n.model-prompt-priority-matrix .list-container .list-header .list-controls .filter-controls .form-check {\n margin: 0;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 0.5rem;\n padding: 1rem;\n margin-bottom: 1rem;\n transition: all 0.2s ease;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item:hover {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);\n transform: translateY(-1px);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item.inactive {\n opacity: 0.7;\n background: var(--mj-bg-surface-card);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item.new {\n border-color: var(--mj-status-success);\n border-left-width: 4px;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item.modified {\n border-color: var(--mj-status-warning);\n border-left-width: 4px;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 0.75rem;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-header .association-names {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-header .association-names .prompt-name,\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-header .association-names .model-name {\n color: var(--mj-text-secondary);\n font-weight: 500;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-header .association-names i {\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-header .association-actions {\n display: flex;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-header .association-actions .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.75rem;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details {\n display: flex;\n align-items: center;\n gap: 1rem;\n flex-wrap: wrap;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .detail-label {\n font-size: 0.875rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .priority-badge {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n padding: 0.25rem 0.5rem;\n border-radius: 0.25rem;\n font-size: 0.75rem;\n font-weight: 600;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .priority-badge.priority-1 {\n background: var(--mj-status-success);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .priority-badge.priority-2 {\n background: var(--mj-color-success-500);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .priority-badge.priority-3 {\n background: var(--mj-status-warning);\n color: black;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .priority-badge.priority-4 {\n background: var(--mj-status-warning);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .priority-badge.priority-5 {\n background: var(--mj-status-error);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .status-badge {\n padding: 0.25rem 0.5rem;\n border-radius: 0.25rem;\n font-size: 0.75rem;\n font-weight: 500;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .status-badge.badge-success {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-color-success-700);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .status-badge.badge-secondary {\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .change-badge {\n padding: 0.25rem 0.5rem;\n border-radius: 0.25rem;\n font-size: 0.75rem;\n font-weight: 500;\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .change-badge.new {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-color-success-700);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .change-badge.modified {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-color-warning-700);\n}\n.model-prompt-priority-matrix .list-container .associations-list .no-associations-message {\n text-align: center;\n padding: 3rem 1rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix .list-container .associations-list .no-associations-message i {\n font-size: 3rem;\n margin-bottom: 1rem;\n display: block;\n opacity: 0.5;\n}\n.model-prompt-priority-matrix .list-container .associations-list .no-associations-message p {\n margin: 0;\n font-size: 1rem;\n line-height: 1.5;\n}\n.model-prompt-priority-matrix .error-container {\n padding: 1rem;\n}\n\n@media (max-width: 1200px) {\n .model-prompt-priority-matrix .matrix-toolbar .toolbar-section {\n min-width: 100%;\n justify-content: space-between;\n }\n .model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell {\n width: 60px;\n height: 50px;\n }\n}\n@media (max-width: 768px) {\n .model-prompt-priority-matrix .matrix-toolbar {\n padding: 0.75rem;\n }\n .model-prompt-priority-matrix .matrix-toolbar .toolbar-section {\n flex-wrap: wrap;\n gap: 0.5rem;\n }\n .model-prompt-priority-matrix .bulk-edit-panel {\n padding: 0.75rem;\n }\n .model-prompt-priority-matrix .bulk-edit-panel .bulk-edit-controls {\n flex-direction: column;\n align-items: stretch;\n gap: 0.75rem;\n }\n .model-prompt-priority-matrix .matrix-container .matrix-scroll {\n padding: 0.75rem;\n }\n .model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell {\n width: 50px;\n height: 40px;\n }\n .model-prompt-priority-matrix .list-container {\n padding: 0.75rem;\n }\n .model-prompt-priority-matrix .list-container .list-header .list-controls {\n flex-direction: column;\n align-items: stretch;\n }\n .model-prompt-priority-matrix .list-container .associations-list .association-item .association-header {\n flex-direction: column;\n align-items: flex-start;\n gap: 0.75rem;\n }\n .model-prompt-priority-matrix .list-container .associations-list .association-item .association-details {\n flex-direction: column;\n align-items: flex-start;\n }\n}\n"] }]
|
|
1245
|
+
args: [{ standalone: false, selector: 'app-model-prompt-priority-matrix', template: "<div class=\"model-prompt-priority-matrix\">\n <!-- Header toolbar -->\n <div class=\"matrix-toolbar\">\n <div class=\"toolbar-section\">\n <h5 class=\"toolbar-title\">\n <i class=\"fa-solid fa-table-cells\"></i>\n Model-Prompt Priority Matrix\n </h5>\n \n <div class=\"view-mode-toggle\">\n <div class=\"btn-group\" role=\"group\">\n <input \n type=\"radio\" \n class=\"btn-check\" \n name=\"viewMode\" \n id=\"matrixView\" \n value=\"matrix\"\n [(ngModel)]=\"viewMode\"\n (ngModelChange)=\"onViewModeChange($event)\">\n <label class=\"btn btn-outline-primary btn-sm\" for=\"matrixView\">\n <i class=\"fa-solid fa-table-cells\"></i>\n Matrix\n </label>\n \n <input \n type=\"radio\" \n class=\"btn-check\" \n name=\"viewMode\" \n id=\"listView\" \n value=\"list\"\n [(ngModel)]=\"viewMode\"\n (ngModelChange)=\"onViewModeChange($event)\">\n <label class=\"btn btn-outline-primary btn-sm\" for=\"listView\">\n <i class=\"fa-solid fa-list\"></i>\n List\n </label>\n </div>\n </div>\n </div>\n \n <div class=\"toolbar-section\">\n <div class=\"matrix-stats\">\n <span class=\"stat-item\">\n <i class=\"fa-solid fa-link text-primary\"></i>\n {{ getAssociationCount() }} associations\n </span>\n <span class=\"stat-item\">\n <i class=\"fa-solid fa-star text-warning\"></i>\n {{ getAveragePriority() }} avg priority\n </span>\n @if (hasUnsavedChanges()) {\n <span class=\"stat-item text-warning\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n Unsaved changes\n </span>\n }\n </div>\n </div>\n \n <div class=\"toolbar-section\">\n @if (selectedCells.size > 0) {\n <div class=\"bulk-actions\">\n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-primary\"\n [class.active]=\"bulkEditMode\"\n (click)=\"bulkEditMode = !bulkEditMode\"\n title=\"Bulk edit selected cells\">\n <i class=\"fa-solid fa-edit\"></i>\n Edit ({{ selectedCells.size }})\n </button>\n \n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-danger\"\n (click)=\"bulkRemoveSelectedCells()\"\n title=\"Remove selected associations\">\n <i class=\"fa-solid fa-trash\"></i>\n Remove\n </button>\n </div>\n }\n \n <div class=\"action-buttons\">\n @if (hasUnsavedChanges()) {\n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-secondary\"\n (click)=\"discardChanges()\"\n title=\"Discard changes\">\n <i class=\"fa-solid fa-undo\"></i>\n Discard\n </button>\n \n <button \n type=\"button\" \n class=\"btn btn-sm btn-success\"\n (click)=\"saveChanges()\"\n [disabled]=\"isLoading\"\n title=\"Save changes\">\n <i class=\"fa-solid fa-save\"></i>\n Save\n </button>\n }\n \n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-info\"\n (click)=\"exportMatrix()\"\n title=\"Export matrix\">\n <i class=\"fa-solid fa-download\"></i>\n Export\n </button>\n </div>\n </div>\n </div>\n \n <!-- Bulk edit panel -->\n @if (bulkEditMode && selectedCells.size > 0) {\n <div class=\"bulk-edit-panel\">\n <div class=\"bulk-edit-controls\">\n <div class=\"form-group\">\n <label for=\"bulkPriority\" class=\"form-label\">Priority:</label>\n <input \n type=\"number\" \n id=\"bulkPriority\"\n class=\"form-control form-control-sm\"\n [(ngModel)]=\"bulkEditPriority\"\n min=\"1\"\n max=\"10\">\n </div>\n \n <div class=\"form-group\">\n <label for=\"bulkStatus\" class=\"form-label\">Status:</label>\n <select \n id=\"bulkStatus\"\n class=\"form-select form-select-sm\"\n [(ngModel)]=\"bulkEditStatus\">\n <option value=\"Active\">Active</option>\n <option value=\"Inactive\">Inactive</option>\n </select>\n </div>\n \n <div class=\"form-group\">\n <button \n type=\"button\" \n class=\"btn btn-sm btn-primary\"\n (click)=\"bulkUpdateSelectedCells()\"\n title=\"Apply changes to selected cells\">\n <i class=\"fa-solid fa-check\"></i>\n Apply\n </button>\n \n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-secondary\"\n (click)=\"bulkEditMode = false\"\n title=\"Cancel bulk edit\">\n <i class=\"fa-solid fa-times\"></i>\n Cancel\n </button>\n </div>\n </div>\n \n <div class=\"bulk-edit-info\">\n <small class=\"text-muted\">\n Editing {{ selectedCells.size }} selected cell(s). \n Use Ctrl+Click for multi-select, Shift+Click for range select.\n </small>\n </div>\n </div>\n }\n \n <!-- Loading state -->\n @if (isLoading) {\n <div class=\"loading-container\">\n <mj-loading [text]=\"loadingMessage\" size=\"large\"></mj-loading>\n </div>\n } @else {\n <!-- Matrix view -->\n @if (viewMode === 'matrix') {\n <div class=\"matrix-container\">\n <div class=\"matrix-scroll\">\n <table class=\"matrix-table\">\n <!-- Header row with model names -->\n <thead>\n <tr>\n <th class=\"prompt-header\">Prompts \\\\ Models</th>\n @for (model of models; track model.ID) {\n <th class=\"model-header\" [title]=\"model.Description || model.Name\">\n <div class=\"header-content\">\n <div class=\"header-name\">{{ model.Name }}</div>\n <div class=\"header-stats\">\n <small class=\"text-muted\">{{ getModelAssociationCount(model.ID) }}</small>\n </div>\n </div>\n </th>\n }\n </tr>\n </thead>\n \n <!-- Matrix body -->\n <tbody>\n @for (prompt of prompts; track prompt.ID; let promptIndex = $index) {\n <tr class=\"matrix-row\">\n <th class=\"prompt-header\" [title]=\"prompt.Description || prompt.Name\" (click)=\"selectPrompt(prompt)\">\n <div class=\"header-content\">\n <div class=\"header-name\">{{ prompt.Name }}</div>\n <div class=\"header-stats\">\n <small class=\"text-muted\">{{ getPromptAssociationCount(prompt.ID) }}</small>\n </div>\n </div>\n </th>\n \n @for (model of models; track model.ID; let modelIndex = $index) {\n <td \n [class]=\"getCellClass(matrix[promptIndex][modelIndex])\"\n (click)=\"onCellClick(promptIndex, modelIndex, $event)\"\n (dblclick)=\"onCellDoubleClick(promptIndex, modelIndex)\"\n [title]=\"getCellTooltip(matrix[promptIndex][modelIndex])\">\n \n @if (matrix[promptIndex][modelIndex].association; as assoc) {\n <div class=\"cell-content\">\n <div class=\"priority-badge priority-{{ assoc.priority }}\">\n {{ assoc.priority }}\n </div>\n \n @if (assoc.status === 'Inactive') {\n <div class=\"status-indicator inactive\">\n <i class=\"fa-solid fa-ban\"></i>\n </div>\n }\n \n @if (assoc.isNew) {\n <div class=\"change-indicator new\">\n <i class=\"fa-solid fa-plus\"></i>\n </div>\n } @else if (assoc.isModified) {\n <div class=\"change-indicator modified\">\n <i class=\"fa-solid fa-edit\"></i>\n </div>\n }\n \n @if (showPerformanceOverlay && performanceData[assoc.promptId + '_' + assoc.modelId]) {\n <div class=\"performance-overlay\">\n <small>{{ performanceData[assoc.promptId + '_' + assoc.modelId].avgResponseTime }}ms</small>\n </div>\n }\n </div>\n } @else {\n <div class=\"cell-content empty\">\n @if (matrix[promptIndex][modelIndex].canAssign) {\n <div class=\"empty-cell-indicator\">\n <i class=\"fa-solid fa-plus\"></i>\n </div>\n } @else {\n <div class=\"blocked-cell-indicator\">\n <i class=\"fa-solid fa-ban\"></i>\n </div>\n }\n </div>\n }\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n </div>\n }\n \n <!-- List view -->\n @if (viewMode === 'list') {\n <div class=\"list-container\">\n <div class=\"list-header\">\n <div class=\"list-controls\">\n <div class=\"sort-controls\">\n <label class=\"form-label\">Sort by:</label>\n <select \n class=\"form-select form-select-sm\"\n [(ngModel)]=\"sortBy\"\n (ngModelChange)=\"sortAssociations()\">\n <option value=\"prompt\">Prompt Name</option>\n <option value=\"model\">Model Name</option>\n <option value=\"priority\">Priority</option>\n </select>\n \n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-secondary\"\n (click)=\"toggleSortDirection()\"\n [title]=\"'Sort ' + (sortDirection === 'asc' ? 'descending' : 'ascending')\">\n <i class=\"fa-solid\" [class.fa-sort-up]=\"sortDirection === 'asc'\" [class.fa-sort-down]=\"sortDirection === 'desc'\"></i>\n </button>\n </div>\n \n <div class=\"filter-controls\">\n <div class=\"form-check form-switch\">\n <input \n class=\"form-check-input\" \n type=\"checkbox\" \n id=\"showInactive\"\n [(ngModel)]=\"showInactiveAssociations\">\n <label class=\"form-check-label\" for=\"showInactive\">\n Show inactive\n </label>\n </div>\n </div>\n </div>\n </div>\n \n <div class=\"associations-list\">\n @for (association of associations; track association.promptId + '_' + association.modelId) {\n @if (showInactiveAssociations || association.status === 'Active') {\n <div class=\"association-item\" \n [class.inactive]=\"association.status === 'Inactive'\"\n [class.new]=\"association.isNew\"\n [class.modified]=\"association.isModified\">\n \n <div class=\"association-header\">\n <div class=\"association-names\">\n <strong class=\"prompt-name\">{{ association.promptName }}</strong>\n <i class=\"fa-solid fa-arrow-right text-muted\"></i>\n <strong class=\"model-name\">{{ association.modelName }}</strong>\n </div>\n \n <div class=\"association-actions\">\n @if (!readonly) {\n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-primary\"\n title=\"Edit association\">\n <i class=\"fa-solid fa-edit\"></i>\n </button>\n \n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-danger\"\n (click)=\"removeAssociation(association.promptId, association.modelId)\"\n title=\"Remove association\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n }\n </div>\n </div>\n \n <div class=\"association-details\">\n <div class=\"detail-item\">\n <span class=\"detail-label\">Priority:</span>\n <span class=\"priority-badge priority-{{ association.priority }}\">\n {{ association.priority }}\n </span>\n </div>\n \n <div class=\"detail-item\">\n <span class=\"detail-label\">Status:</span>\n <span class=\"status-badge\" [class.badge-success]=\"association.status === 'Active'\" [class.badge-secondary]=\"association.status === 'Inactive'\">\n {{ association.status }}\n </span>\n </div>\n \n @if (association.isNew) {\n <div class=\"detail-item\">\n <span class=\"change-badge new\">\n <i class=\"fa-solid fa-plus\"></i>\n New\n </span>\n </div>\n } @else if (association.isModified) {\n <div class=\"detail-item\">\n <span class=\"change-badge modified\">\n <i class=\"fa-solid fa-edit\"></i>\n Modified\n </span>\n </div>\n }\n </div>\n </div>\n }\n }\n \n @if (associations.length === 0) {\n <div class=\"no-associations-message\">\n <i class=\"fa-solid fa-info-circle text-muted\"></i>\n <p class=\"text-muted mb-0\">No prompt-model associations found. Click on matrix cells to create associations.</p>\n </div>\n }\n </div>\n </div>\n }\n }\n \n <!-- Error state -->\n @if (error) {\n <div class=\"error-container\">\n <mj-alert Variant=\"error\">\n {{ error }}\n <button mjButton variant=\"danger\" size=\"sm\" actions (click)=\"loadData()\">\n <i class=\"fa-solid fa-refresh\"></i>\n Retry\n </button>\n </mj-alert>\n </div>\n }\n</div>", styles: [".model-prompt-priority-matrix {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--mj-bg-surface-card);\n}\n.model-prompt-priority-matrix .matrix-toolbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n gap: 1rem;\n flex-wrap: wrap;\n}\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section .toolbar-title {\n margin: 0;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-weight: 600;\n}\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section .toolbar-title i {\n color: var(--mj-brand-primary);\n}\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section .matrix-stats {\n display: flex;\n gap: 1rem;\n}\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section .matrix-stats .stat-item {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n font-size: 0.875rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section .matrix-stats .stat-item i {\n font-size: 1rem;\n}\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section .bulk-actions,\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section .action-buttons {\n display: flex;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section .bulk-actions .btn,\n.model-prompt-priority-matrix .matrix-toolbar .toolbar-section .action-buttons .btn {\n font-size: 0.875rem;\n}\n.model-prompt-priority-matrix .bulk-edit-panel {\n padding: 1rem;\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n border-bottom: 1px solid color-mix(in srgb, var(--mj-status-warning) 30%, transparent);\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 1rem;\n}\n.model-prompt-priority-matrix .bulk-edit-panel .bulk-edit-controls {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n.model-prompt-priority-matrix .bulk-edit-panel .bulk-edit-controls .form-group {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix .bulk-edit-panel .bulk-edit-controls .form-group .form-label {\n margin: 0;\n font-size: 0.875rem;\n font-weight: 500;\n white-space: nowrap;\n}\n.model-prompt-priority-matrix .bulk-edit-panel .bulk-edit-controls .form-group .form-control,\n.model-prompt-priority-matrix .bulk-edit-panel .bulk-edit-controls .form-group .form-select {\n min-width: 100px;\n}\n.model-prompt-priority-matrix .bulk-edit-panel .bulk-edit-info {\n font-size: 0.875rem;\n color: var(--mj-color-warning-700);\n}\n.model-prompt-priority-matrix .loading-container {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.model-prompt-priority-matrix .loading-container .loading-content {\n text-align: center;\n}\n.model-prompt-priority-matrix .loading-container .loading-content .loading-message {\n margin-top: 1rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix .matrix-container {\n flex: 1;\n overflow: hidden;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll {\n height: 100%;\n overflow: auto;\n padding: 1rem;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table {\n border-collapse: separate;\n border-spacing: 2px;\n background: var(--mj-bg-surface);\n border-radius: 0.5rem;\n overflow: hidden;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .prompt-header,\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .model-header {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n padding: 0.75rem;\n font-weight: 600;\n text-align: center;\n position: sticky;\n top: 0;\n z-index: 10;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .prompt-header .header-content,\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .model-header .header-content {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .prompt-header .header-content .header-name,\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .model-header .header-content .header-name {\n font-size: 0.875rem;\n font-weight: 600;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .prompt-header .header-content .header-stats,\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .model-header .header-content .header-stats {\n font-size: 0.75rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .prompt-header {\n min-width: 200px;\n position: sticky;\n left: 0;\n z-index: 11;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell {\n width: 80px;\n height: 60px;\n border: 2px solid var(--mj-border-default);\n text-align: center;\n cursor: pointer;\n transition: all 0.2s ease;\n position: relative;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell:hover {\n border-color: var(--mj-brand-primary);\n transform: scale(1.05);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.selected {\n border-color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.editing {\n border-color: var(--mj-status-success);\n background: color-mix(in srgb, var(--mj-status-success) 10%, transparent);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.no-association {\n background: var(--mj-bg-surface-card);\n border-style: dashed;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.no-association .empty-cell-indicator {\n color: var(--mj-text-muted);\n font-size: 1.5rem;\n opacity: 0.5;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.cannot-assign {\n background: var(--mj-bg-surface-card);\n cursor: not-allowed;\n opacity: 0.5;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.cannot-assign .blocked-cell-indicator {\n color: var(--mj-status-error);\n font-size: 1.25rem;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.has-association {\n background: var(--mj-bg-surface);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.has-association.priority-1 {\n border-color: var(--mj-status-success);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.has-association.priority-2 {\n border-color: var(--mj-color-success-500);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.has-association.priority-3 {\n border-color: var(--mj-status-warning);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.has-association.priority-4 {\n border-color: var(--mj-status-warning);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.has-association.priority-5 {\n border-color: var(--mj-status-error);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.has-association.inactive {\n opacity: 0.6;\n background: var(--mj-bg-surface-card);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.has-association.new {\n box-shadow: 0 0 0 2px var(--mj-status-success);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell.has-association.modified {\n box-shadow: 0 0 0 2px var(--mj-status-warning);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n height: 100%;\n gap: 0.25rem;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .priority-badge {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-radius: 50%;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 0.75rem;\n font-weight: 600;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .priority-badge.priority-1 {\n background: var(--mj-status-success);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .priority-badge.priority-2 {\n background: var(--mj-color-success-500);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .priority-badge.priority-3 {\n background: var(--mj-status-warning);\n color: var(--mj-status-on-warning);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .priority-badge.priority-4 {\n background: var(--mj-status-warning);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .priority-badge.priority-5 {\n background: var(--mj-status-error);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .status-indicator {\n font-size: 0.75rem;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .status-indicator.inactive {\n color: var(--mj-status-error);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .change-indicator {\n position: absolute;\n top: 2px;\n right: 2px;\n width: 12px;\n height: 12px;\n border-radius: 50%;\n font-size: 0.625rem;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .change-indicator.new {\n background: var(--mj-status-success);\n color: var(--mj-text-inverse);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .change-indicator.modified {\n background: var(--mj-status-warning);\n color: var(--mj-status-on-warning);\n}\n.model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell .cell-content .performance-overlay {\n position: absolute;\n bottom: 2px;\n left: 2px;\n right: 2px;\n background: rgba(0, 0, 0, 0.8);\n color: var(--mj-text-inverse);\n border-radius: 0.25rem;\n padding: 0.125rem;\n font-size: 0.625rem;\n}\n.model-prompt-priority-matrix .list-container {\n flex: 1;\n padding: 1rem;\n overflow-y: auto;\n}\n.model-prompt-priority-matrix .list-container .list-header {\n margin-bottom: 1.5rem;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 0.5rem;\n padding: 1rem;\n}\n.model-prompt-priority-matrix .list-container .list-header .list-controls {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 1rem;\n}\n.model-prompt-priority-matrix .list-container .list-header .list-controls .sort-controls,\n.model-prompt-priority-matrix .list-container .list-header .list-controls .filter-controls {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix .list-container .list-header .list-controls .sort-controls .form-label,\n.model-prompt-priority-matrix .list-container .list-header .list-controls .filter-controls .form-label {\n margin: 0;\n font-size: 0.875rem;\n color: var(--mj-text-muted);\n white-space: nowrap;\n}\n.model-prompt-priority-matrix .list-container .list-header .list-controls .sort-controls .form-select,\n.model-prompt-priority-matrix .list-container .list-header .list-controls .filter-controls .form-select {\n min-width: 120px;\n}\n.model-prompt-priority-matrix .list-container .list-header .list-controls .sort-controls .form-check,\n.model-prompt-priority-matrix .list-container .list-header .list-controls .filter-controls .form-check {\n margin: 0;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 0.5rem;\n padding: 1rem;\n margin-bottom: 1rem;\n transition: all 0.2s ease;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item:hover {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);\n transform: translateY(-1px);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item.inactive {\n opacity: 0.7;\n background: var(--mj-bg-surface-card);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item.new {\n border-color: var(--mj-status-success);\n border-left-width: 4px;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item.modified {\n border-color: var(--mj-status-warning);\n border-left-width: 4px;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 0.75rem;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-header .association-names {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-header .association-names .prompt-name,\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-header .association-names .model-name {\n color: var(--mj-text-secondary);\n font-weight: 500;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-header .association-names i {\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-header .association-actions {\n display: flex;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-header .association-actions .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.75rem;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details {\n display: flex;\n align-items: center;\n gap: 1rem;\n flex-wrap: wrap;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .detail-label {\n font-size: 0.875rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .priority-badge {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n padding: 0.25rem 0.5rem;\n border-radius: 0.25rem;\n font-size: 0.75rem;\n font-weight: 600;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .priority-badge.priority-1 {\n background: var(--mj-status-success);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .priority-badge.priority-2 {\n background: var(--mj-color-success-500);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .priority-badge.priority-3 {\n background: var(--mj-status-warning);\n color: var(--mj-status-on-warning);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .priority-badge.priority-4 {\n background: var(--mj-status-warning);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .priority-badge.priority-5 {\n background: var(--mj-status-error);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .status-badge {\n padding: 0.25rem 0.5rem;\n border-radius: 0.25rem;\n font-size: 0.75rem;\n font-weight: 500;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .status-badge.badge-success {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-color-success-700);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .status-badge.badge-secondary {\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .change-badge {\n padding: 0.25rem 0.5rem;\n border-radius: 0.25rem;\n font-size: 0.75rem;\n font-weight: 500;\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .change-badge.new {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-color-success-700);\n}\n.model-prompt-priority-matrix .list-container .associations-list .association-item .association-details .detail-item .change-badge.modified {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-color-warning-700);\n}\n.model-prompt-priority-matrix .list-container .associations-list .no-associations-message {\n text-align: center;\n padding: 3rem 1rem;\n color: var(--mj-text-muted);\n}\n.model-prompt-priority-matrix .list-container .associations-list .no-associations-message i {\n font-size: 3rem;\n margin-bottom: 1rem;\n display: block;\n opacity: 0.5;\n}\n.model-prompt-priority-matrix .list-container .associations-list .no-associations-message p {\n margin: 0;\n font-size: 1rem;\n line-height: 1.5;\n}\n.model-prompt-priority-matrix .error-container {\n padding: 1rem;\n}\n\n@media (max-width: 1200px) {\n .model-prompt-priority-matrix .matrix-toolbar .toolbar-section {\n min-width: 100%;\n justify-content: space-between;\n }\n .model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell {\n width: 60px;\n height: 50px;\n }\n}\n@media (max-width: 768px) {\n .model-prompt-priority-matrix .matrix-toolbar {\n padding: 0.75rem;\n }\n .model-prompt-priority-matrix .matrix-toolbar .toolbar-section {\n flex-wrap: wrap;\n gap: 0.5rem;\n }\n .model-prompt-priority-matrix .bulk-edit-panel {\n padding: 0.75rem;\n }\n .model-prompt-priority-matrix .bulk-edit-panel .bulk-edit-controls {\n flex-direction: column;\n align-items: stretch;\n gap: 0.75rem;\n }\n .model-prompt-priority-matrix .matrix-container .matrix-scroll {\n padding: 0.75rem;\n }\n .model-prompt-priority-matrix .matrix-container .matrix-scroll .matrix-table .matrix-cell {\n width: 50px;\n height: 40px;\n }\n .model-prompt-priority-matrix .list-container {\n padding: 0.75rem;\n }\n .model-prompt-priority-matrix .list-container .list-header .list-controls {\n flex-direction: column;\n align-items: stretch;\n }\n .model-prompt-priority-matrix .list-container .associations-list .association-item .association-header {\n flex-direction: column;\n align-items: flex-start;\n gap: 0.75rem;\n }\n .model-prompt-priority-matrix .list-container .associations-list .association-item .association-details {\n flex-direction: column;\n align-items: flex-start;\n }\n}\n"] }]
|
|
1222
1246
|
}], () => [{ type: i1.MJNotificationService }, { type: i2.MJConfirmService }], { SelectedPrompts: [{
|
|
1223
1247
|
type: Input
|
|
1224
1248
|
}], selectedPrompts: [{
|
|
@@ -1242,5 +1266,5 @@ export class ModelPromptPriorityMatrixComponent extends BaseAngularComponent {
|
|
|
1242
1266
|
}], promptSelected: [{
|
|
1243
1267
|
type: Output
|
|
1244
1268
|
}] }); })();
|
|
1245
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ModelPromptPriorityMatrixComponent, { className: "ModelPromptPriorityMatrixComponent", filePath: "src/AI/components/prompts/model-prompt-priority-matrix.component.ts", lineNumber:
|
|
1269
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ModelPromptPriorityMatrixComponent, { className: "ModelPromptPriorityMatrixComponent", filePath: "src/AI/components/prompts/model-prompt-priority-matrix.component.ts", lineNumber: 37 }); })();
|
|
1246
1270
|
//# sourceMappingURL=model-prompt-priority-matrix.component.js.map
|