@memberjunction/ng-dashboards 3.4.0 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +102 -339
- package/dist/AI/components/agents/agent-configuration.component.d.ts +12 -5
- package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
- package/dist/AI/components/agents/agent-configuration.component.js +103 -44
- package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
- package/dist/AI/components/agents/agent-editor.component.d.ts +14 -5
- package/dist/AI/components/agents/agent-editor.component.d.ts.map +1 -1
- package/dist/AI/components/agents/agent-editor.component.js +149 -211
- package/dist/AI/components/agents/agent-editor.component.js.map +1 -1
- package/dist/AI/components/agents/agent-filter-panel.component.d.ts.map +1 -1
- package/dist/AI/components/agents/agent-filter-panel.component.js +4 -4
- package/dist/AI/components/agents/agent-filter-panel.component.js.map +1 -1
- package/dist/AI/components/charts/performance-heatmap.component.d.ts.map +1 -1
- package/dist/AI/components/charts/performance-heatmap.component.js +4 -6
- package/dist/AI/components/charts/performance-heatmap.component.js.map +1 -1
- package/dist/AI/components/charts/time-series-chart.component.d.ts.map +1 -1
- package/dist/AI/components/charts/time-series-chart.component.js +6 -7
- package/dist/AI/components/charts/time-series-chart.component.js.map +1 -1
- package/dist/AI/components/execution-monitoring.component.d.ts +0 -4
- package/dist/AI/components/execution-monitoring.component.d.ts.map +1 -1
- package/dist/AI/components/execution-monitoring.component.js +33 -37
- package/dist/AI/components/execution-monitoring.component.js.map +1 -1
- package/dist/AI/components/models/model-management.component.d.ts +3 -6
- package/dist/AI/components/models/model-management.component.d.ts.map +1 -1
- package/dist/AI/components/models/model-management.component.js +34 -27
- package/dist/AI/components/models/model-management.component.js.map +1 -1
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts.map +1 -1
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js +22 -17
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js.map +1 -1
- package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts.map +1 -1
- package/dist/AI/components/prompts/prompt-filter-panel.component.js +4 -4
- package/dist/AI/components/prompts/prompt-filter-panel.component.js.map +1 -1
- package/dist/AI/components/prompts/prompt-management.component.d.ts +3 -6
- package/dist/AI/components/prompts/prompt-management.component.d.ts.map +1 -1
- package/dist/AI/components/prompts/prompt-management.component.js +34 -32
- package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
- package/dist/AI/components/prompts/prompt-version-control.component.d.ts.map +1 -1
- package/dist/AI/components/prompts/prompt-version-control.component.js +33 -28
- package/dist/AI/components/prompts/prompt-version-control.component.js.map +1 -1
- package/dist/AI/components/system/system-config-filter-panel.component.d.ts.map +1 -1
- package/dist/AI/components/system/system-config-filter-panel.component.js +4 -4
- package/dist/AI/components/system/system-config-filter-panel.component.js.map +1 -1
- package/dist/AI/components/system/system-configuration.component.d.ts +0 -4
- package/dist/AI/components/system/system-configuration.component.d.ts.map +1 -1
- package/dist/AI/components/system/system-configuration.component.js +26 -27
- package/dist/AI/components/system/system-configuration.component.js.map +1 -1
- package/dist/AI/components/widgets/kpi-card.component.d.ts.map +1 -1
- package/dist/AI/components/widgets/kpi-card.component.js +52 -42
- package/dist/AI/components/widgets/kpi-card.component.js.map +1 -1
- package/dist/AI/components/widgets/live-execution-widget.component.d.ts.map +1 -1
- package/dist/AI/components/widgets/live-execution-widget.component.js +7 -7
- package/dist/AI/components/widgets/live-execution-widget.component.js.map +1 -1
- package/dist/APIKeys/api-applications-panel.component.d.ts +0 -2
- package/dist/APIKeys/api-applications-panel.component.d.ts.map +1 -1
- package/dist/APIKeys/api-applications-panel.component.js +193 -189
- package/dist/APIKeys/api-applications-panel.component.js.map +1 -1
- package/dist/APIKeys/api-key-create-dialog.component.d.ts +0 -2
- package/dist/APIKeys/api-key-create-dialog.component.d.ts.map +1 -1
- package/dist/APIKeys/api-key-create-dialog.component.js +175 -180
- package/dist/APIKeys/api-key-create-dialog.component.js.map +1 -1
- package/dist/APIKeys/api-key-edit-panel.component.d.ts +0 -2
- package/dist/APIKeys/api-key-edit-panel.component.d.ts.map +1 -1
- package/dist/APIKeys/api-key-edit-panel.component.js +231 -225
- package/dist/APIKeys/api-key-edit-panel.component.js.map +1 -1
- package/dist/APIKeys/api-key-list.component.d.ts +0 -2
- package/dist/APIKeys/api-key-list.component.d.ts.map +1 -1
- package/dist/APIKeys/api-key-list.component.js +113 -114
- package/dist/APIKeys/api-key-list.component.js.map +1 -1
- package/dist/APIKeys/api-keys-resource.component.d.ts +0 -2
- package/dist/APIKeys/api-keys-resource.component.d.ts.map +1 -1
- package/dist/APIKeys/api-keys-resource.component.js +294 -302
- package/dist/APIKeys/api-keys-resource.component.js.map +1 -1
- package/dist/APIKeys/api-scopes-panel.component.d.ts +0 -2
- package/dist/APIKeys/api-scopes-panel.component.d.ts.map +1 -1
- package/dist/APIKeys/api-scopes-panel.component.js +151 -155
- package/dist/APIKeys/api-scopes-panel.component.js.map +1 -1
- package/dist/APIKeys/api-usage-panel.component.d.ts +0 -2
- package/dist/APIKeys/api-usage-panel.component.d.ts.map +1 -1
- package/dist/APIKeys/api-usage-panel.component.js +237 -234
- package/dist/APIKeys/api-usage-panel.component.js.map +1 -1
- package/dist/Actions/components/actions-list-view.component.d.ts.map +1 -1
- package/dist/Actions/components/actions-list-view.component.js +15 -14
- package/dist/Actions/components/actions-list-view.component.js.map +1 -1
- package/dist/Actions/components/actions-overview.component.d.ts +3 -6
- package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
- package/dist/Actions/components/actions-overview.component.js +17 -19
- package/dist/Actions/components/actions-overview.component.js.map +1 -1
- package/dist/Actions/components/categories-list-view.component.d.ts.map +1 -1
- package/dist/Actions/components/categories-list-view.component.js +6 -6
- package/dist/Actions/components/categories-list-view.component.js.map +1 -1
- package/dist/Actions/components/code-management.component.d.ts +0 -4
- package/dist/Actions/components/code-management.component.d.ts.map +1 -1
- package/dist/Actions/components/code-management.component.js +3 -9
- package/dist/Actions/components/code-management.component.js.map +1 -1
- package/dist/Actions/components/entity-integration.component.d.ts +0 -4
- package/dist/Actions/components/entity-integration.component.d.ts.map +1 -1
- package/dist/Actions/components/entity-integration.component.js +3 -9
- package/dist/Actions/components/entity-integration.component.js.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.d.ts +3 -6
- package/dist/Actions/components/execution-monitoring.component.d.ts.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.js +13 -16
- package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
- package/dist/Actions/components/executions-list-view.component.d.ts.map +1 -1
- package/dist/Actions/components/executions-list-view.component.js +3 -3
- package/dist/Actions/components/executions-list-view.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-breadcrumb.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-breadcrumb.component.js +6 -6
- package/dist/Actions/components/explorer/action-breadcrumb.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-card.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-card.component.js +11 -10
- package/dist/Actions/components/explorer/action-card.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.d.ts +0 -4
- package/dist/Actions/components/explorer/action-explorer.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.js +10 -14
- package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-list-item.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-list-item.component.js +8 -8
- package/dist/Actions/components/explorer/action-list-item.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-toolbar.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-toolbar.component.js +15 -14
- package/dist/Actions/components/explorer/action-toolbar.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-tree-panel.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-tree-panel.component.js +11 -10
- package/dist/Actions/components/explorer/action-tree-panel.component.js.map +1 -1
- package/dist/Actions/components/explorer/index.d.ts +0 -1
- package/dist/Actions/components/explorer/index.d.ts.map +1 -1
- package/dist/Actions/components/explorer/index.js +0 -4
- package/dist/Actions/components/explorer/index.js.map +1 -1
- package/dist/Actions/components/explorer/new-action-panel.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/new-action-panel.component.js +10 -10
- package/dist/Actions/components/explorer/new-action-panel.component.js.map +1 -1
- package/dist/Actions/components/explorer/new-category-panel.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/new-category-panel.component.js +8 -8
- package/dist/Actions/components/explorer/new-category-panel.component.js.map +1 -1
- package/dist/Actions/components/scheduled-actions.component.d.ts +0 -4
- package/dist/Actions/components/scheduled-actions.component.d.ts.map +1 -1
- package/dist/Actions/components/scheduled-actions.component.js +3 -9
- package/dist/Actions/components/scheduled-actions.component.js.map +1 -1
- package/dist/Actions/components/security-permissions.component.d.ts +0 -4
- package/dist/Actions/components/security-permissions.component.d.ts.map +1 -1
- package/dist/Actions/components/security-permissions.component.js +3 -9
- package/dist/Actions/components/security-permissions.component.js.map +1 -1
- package/dist/Actions/index.d.ts +0 -7
- package/dist/Actions/index.d.ts.map +1 -1
- package/dist/Actions/index.js +0 -8
- package/dist/Actions/index.js.map +1 -1
- package/dist/Communication/communication-dashboard.component.d.ts +0 -1
- package/dist/Communication/communication-dashboard.component.d.ts.map +1 -1
- package/dist/Communication/communication-dashboard.component.js +38 -51
- package/dist/Communication/communication-dashboard.component.js.map +1 -1
- package/dist/Communication/communication-logs-resource.component.d.ts +0 -4
- package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-logs-resource.component.js +112 -108
- package/dist/Communication/communication-logs-resource.component.js.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.d.ts +0 -4
- package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.js +210 -201
- package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
- package/dist/Communication/communication-providers-resource.component.d.ts +0 -4
- package/dist/Communication/communication-providers-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-providers-resource.component.js +136 -124
- package/dist/Communication/communication-providers-resource.component.js.map +1 -1
- package/dist/Communication/communication-runs-resource.component.d.ts +0 -4
- package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-runs-resource.component.js +91 -88
- package/dist/Communication/communication-runs-resource.component.js.map +1 -1
- package/dist/Communication/communication-templates-resource.component.d.ts +0 -4
- package/dist/Communication/communication-templates-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-templates-resource.component.js +139 -122
- package/dist/Communication/communication-templates-resource.component.js.map +1 -1
- package/dist/ComponentStudio/component-studio-dashboard.component.d.ts +0 -4
- package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
- package/dist/ComponentStudio/component-studio-dashboard.component.js +21 -20
- package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
- package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js +11 -12
- package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js.map +1 -1
- package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/artifact-load-dialog.component.js +25 -22
- package/dist/ComponentStudio/components/artifact-load-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.js +16 -16
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/components/browser/component-browser.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/browser/component-browser.component.js +23 -21
- package/dist/ComponentStudio/components/browser/component-browser.component.js.map +1 -1
- package/dist/ComponentStudio/components/editors/code-editor-panel.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/editors/code-editor-panel.component.js +10 -10
- package/dist/ComponentStudio/components/editors/code-editor-panel.component.js.map +1 -1
- package/dist/ComponentStudio/components/editors/data-requirements-editor.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js +13 -13
- package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js.map +1 -1
- package/dist/ComponentStudio/components/editors/requirements-editor.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/editors/requirements-editor.component.js +7 -7
- package/dist/ComponentStudio/components/editors/requirements-editor.component.js.map +1 -1
- package/dist/ComponentStudio/components/editors/spec-editor.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/editors/spec-editor.component.js +5 -5
- package/dist/ComponentStudio/components/editors/spec-editor.component.js.map +1 -1
- package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js +4 -4
- package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js +9 -9
- package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/components/text-import-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/text-import-dialog.component.js +4 -4
- package/dist/ComponentStudio/components/text-import-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/components/workspace/component-preview.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/workspace/component-preview.component.js +10 -9
- package/dist/ComponentStudio/components/workspace/component-preview.component.js.map +1 -1
- package/dist/ComponentStudio/components/workspace/editor-tabs.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/workspace/editor-tabs.component.js +4 -4
- package/dist/ComponentStudio/components/workspace/editor-tabs.component.js.map +1 -1
- package/dist/Credentials/components/credentials-audit-resource.component.d.ts +0 -1
- package/dist/Credentials/components/credentials-audit-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-audit-resource.component.js +200 -196
- package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-categories-resource.component.d.ts +0 -1
- package/dist/Credentials/components/credentials-categories-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-categories-resource.component.js +195 -190
- package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-list-resource.component.d.ts +0 -1
- package/dist/Credentials/components/credentials-list-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-list-resource.component.js +251 -240
- package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-overview-resource.component.d.ts +0 -1
- package/dist/Credentials/components/credentials-overview-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-overview-resource.component.js +228 -226
- package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-types-resource.component.d.ts +0 -1
- package/dist/Credentials/components/credentials-types-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-types-resource.component.js +214 -210
- package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
- package/dist/Credentials/credentials-dashboard.component.d.ts +0 -1
- package/dist/Credentials/credentials-dashboard.component.d.ts.map +1 -1
- package/dist/Credentials/credentials-dashboard.component.js +31 -44
- package/dist/Credentials/credentials-dashboard.component.js.map +1 -1
- package/dist/Credentials/pipes/group-by.pipe.d.ts.map +1 -1
- package/dist/Credentials/pipes/group-by.pipe.js +2 -1
- package/dist/Credentials/pipes/group-by.pipe.js.map +1 -1
- package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts +0 -1
- package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts.map +1 -1
- package/dist/DashboardBrowser/dashboard-browser-resource.component.js +73 -80
- package/dist/DashboardBrowser/dashboard-browser-resource.component.js.map +1 -1
- package/dist/DashboardBrowser/dashboard-share-dialog.component.d.ts.map +1 -1
- package/dist/DashboardBrowser/dashboard-share-dialog.component.js +46 -45
- package/dist/DashboardBrowser/dashboard-share-dialog.component.js.map +1 -1
- package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.d.ts.map +1 -1
- package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js +7 -7
- package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js.map +1 -1
- package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.d.ts.map +1 -1
- package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js +15 -15
- package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js.map +1 -1
- package/dist/DataExplorer/components/view-selector/view-selector.component.d.ts.map +1 -1
- package/dist/DataExplorer/components/view-selector/view-selector.component.js +17 -11
- package/dist/DataExplorer/components/view-selector/view-selector.component.js.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +2 -4
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.js +83 -64
- package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
- package/dist/DataExplorer/data-explorer-resource.component.d.ts +0 -1
- package/dist/DataExplorer/data-explorer-resource.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-resource.component.js +3 -6
- package/dist/DataExplorer/data-explorer-resource.component.js.map +1 -1
- package/dist/DataExplorer/index.d.ts +2 -2
- package/dist/DataExplorer/index.d.ts.map +1 -1
- package/dist/DataExplorer/index.js +2 -2
- package/dist/DataExplorer/index.js.map +1 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts +0 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts.map +1 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.js +6 -7
- package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
- package/dist/Home/home-application.d.ts +109 -27
- package/dist/Home/home-application.d.ts.map +1 -1
- package/dist/Home/home-application.js +351 -75
- package/dist/Home/home-application.js.map +1 -1
- package/dist/Home/home-dashboard.component.d.ts +48 -12
- package/dist/Home/home-dashboard.component.d.ts.map +1 -1
- package/dist/Home/home-dashboard.component.js +267 -187
- package/dist/Home/home-dashboard.component.js.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.d.ts +0 -1
- package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.js +761 -685
- package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-categories-resource.component.d.ts +0 -1
- package/dist/Lists/components/lists-categories-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-categories-resource.component.js +340 -316
- package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.d.ts +0 -1
- package/dist/Lists/components/lists-my-lists-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.js +530 -482
- package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-operations-resource.component.d.ts +0 -1
- package/dist/Lists/components/lists-operations-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-operations-resource.component.js +508 -455
- package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
- package/dist/Lists/components/venn-diagram/venn-diagram.component.d.ts.map +1 -1
- package/dist/Lists/components/venn-diagram/venn-diagram.component.js +44 -39
- package/dist/Lists/components/venn-diagram/venn-diagram.component.js.map +1 -1
- package/dist/Lists/index.d.ts +0 -1
- package/dist/Lists/index.d.ts.map +1 -1
- package/dist/Lists/index.js +0 -11
- package/dist/Lists/index.js.map +1 -1
- package/dist/MCP/components/mcp-connection-dialog.component.d.ts +0 -4
- package/dist/MCP/components/mcp-connection-dialog.component.d.ts.map +1 -1
- package/dist/MCP/components/mcp-connection-dialog.component.js +33 -39
- package/dist/MCP/components/mcp-connection-dialog.component.js.map +1 -1
- package/dist/MCP/components/mcp-log-detail-panel.component.d.ts +0 -4
- package/dist/MCP/components/mcp-log-detail-panel.component.d.ts.map +1 -1
- package/dist/MCP/components/mcp-log-detail-panel.component.js +42 -44
- package/dist/MCP/components/mcp-log-detail-panel.component.js.map +1 -1
- package/dist/MCP/components/mcp-server-dialog.component.d.ts +3 -4
- package/dist/MCP/components/mcp-server-dialog.component.d.ts.map +1 -1
- package/dist/MCP/components/mcp-server-dialog.component.js +186 -77
- package/dist/MCP/components/mcp-server-dialog.component.js.map +1 -1
- package/dist/MCP/components/mcp-test-tool-dialog.component.d.ts +0 -4
- package/dist/MCP/components/mcp-test-tool-dialog.component.d.ts.map +1 -1
- package/dist/MCP/components/mcp-test-tool-dialog.component.js +187 -187
- package/dist/MCP/components/mcp-test-tool-dialog.component.js.map +1 -1
- package/dist/MCP/index.d.ts +5 -5
- package/dist/MCP/index.d.ts.map +1 -1
- package/dist/MCP/index.js +5 -5
- package/dist/MCP/index.js.map +1 -1
- package/dist/MCP/mcp-dashboard.component.d.ts +65 -7
- package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
- package/dist/MCP/mcp-dashboard.component.js +976 -697
- package/dist/MCP/mcp-dashboard.component.js.map +1 -1
- package/dist/MCP/mcp-filter-panel.component.d.ts +54 -0
- package/dist/MCP/mcp-filter-panel.component.d.ts.map +1 -0
- package/dist/MCP/mcp-filter-panel.component.js +288 -0
- package/dist/MCP/mcp-filter-panel.component.js.map +1 -0
- package/dist/MCP/mcp-resource.component.d.ts +11 -5
- package/dist/MCP/mcp-resource.component.d.ts.map +1 -1
- package/dist/MCP/mcp-resource.component.js +8 -9
- package/dist/MCP/mcp-resource.component.js.map +1 -1
- package/dist/MCP/mcp.module.d.ts +16 -19
- package/dist/MCP/mcp.module.d.ts.map +1 -1
- package/dist/MCP/mcp.module.js +17 -26
- package/dist/MCP/mcp.module.js.map +1 -1
- package/dist/MCP/services/mcp-tools.service.d.ts +10 -4
- package/dist/MCP/services/mcp-tools.service.d.ts.map +1 -1
- package/dist/MCP/services/mcp-tools.service.js +5 -6
- package/dist/MCP/services/mcp-tools.service.js.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.d.ts +0 -1
- package/dist/QueryBrowser/query-browser-resource.component.d.ts.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.js +79 -88
- package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
- package/dist/Scheduling/components/job-slideout.component.d.ts.map +1 -1
- package/dist/Scheduling/components/job-slideout.component.js +117 -116
- package/dist/Scheduling/components/job-slideout.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts +0 -4
- package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-activity-resource.component.js +3 -9
- package/dist/Scheduling/components/scheduling-activity-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-activity.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-activity.component.js +134 -134
- package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts +0 -4
- package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs-resource.component.js +3 -9
- package/dist/Scheduling/components/scheduling-jobs-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs.component.js +102 -97
- package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts +0 -4
- package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-overview-resource.component.js +3 -9
- package/dist/Scheduling/components/scheduling-overview-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-overview.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-overview.component.js +127 -122
- package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
- package/dist/Scheduling/scheduling-dashboard.component.d.ts +0 -1
- package/dist/Scheduling/scheduling-dashboard.component.d.ts.map +1 -1
- package/dist/Scheduling/scheduling-dashboard.component.js +35 -43
- package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
- package/dist/SystemDiagnostics/system-diagnostics.component.d.ts +0 -4
- package/dist/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -1
- package/dist/SystemDiagnostics/system-diagnostics.component.js +1552 -1534
- package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
- package/dist/Testing/components/testing-analytics-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-analytics-resource.component.js +3 -3
- package/dist/Testing/components/testing-analytics-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-analytics.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-analytics.component.js +30 -30
- package/dist/Testing/components/testing-analytics.component.js.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab-resource.component.js +3 -3
- package/dist/Testing/components/testing-dashboard-tab-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab.component.js +7 -7
- package/dist/Testing/components/testing-dashboard-tab.component.js.map +1 -1
- package/dist/Testing/components/testing-explorer-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-explorer-resource.component.js +3 -3
- package/dist/Testing/components/testing-explorer-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-explorer.component.js +42 -35
- package/dist/Testing/components/testing-explorer.component.js.map +1 -1
- package/dist/Testing/components/testing-review-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-review-resource.component.js +3 -3
- package/dist/Testing/components/testing-review-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-review.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-review.component.js +16 -16
- package/dist/Testing/components/testing-review.component.js.map +1 -1
- package/dist/Testing/components/testing-runs-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-runs-resource.component.js +3 -3
- package/dist/Testing/components/testing-runs-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-runs.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-runs.component.js +15 -15
- package/dist/Testing/components/testing-runs.component.js.map +1 -1
- package/dist/Testing/components/widgets/oracle-breakdown-table.component.d.ts.map +1 -1
- package/dist/Testing/components/widgets/oracle-breakdown-table.component.js +73 -61
- package/dist/Testing/components/widgets/oracle-breakdown-table.component.js.map +1 -1
- package/dist/Testing/components/widgets/suite-tree.component.d.ts.map +1 -1
- package/dist/Testing/components/widgets/suite-tree.component.js +34 -31
- package/dist/Testing/components/widgets/suite-tree.component.js.map +1 -1
- package/dist/Testing/components/widgets/test-run-detail-panel.component.d.ts.map +1 -1
- package/dist/Testing/components/widgets/test-run-detail-panel.component.js +180 -171
- package/dist/Testing/components/widgets/test-run-detail-panel.component.js.map +1 -1
- package/dist/Testing/testing-dashboard.component.d.ts +0 -1
- package/dist/Testing/testing-dashboard.component.d.ts.map +1 -1
- package/dist/Testing/testing-dashboard.component.js +9 -8
- package/dist/Testing/testing-dashboard.component.js.map +1 -1
- package/dist/VersionHistory/components/diff-resource.component.d.ts +119 -0
- package/dist/VersionHistory/components/diff-resource.component.d.ts.map +1 -0
- package/dist/VersionHistory/components/diff-resource.component.js +1162 -0
- package/dist/VersionHistory/components/diff-resource.component.js.map +1 -0
- package/dist/VersionHistory/components/graph-resource.component.d.ts +67 -0
- package/dist/VersionHistory/components/graph-resource.component.d.ts.map +1 -0
- package/dist/VersionHistory/components/graph-resource.component.js +521 -0
- package/dist/VersionHistory/components/graph-resource.component.js.map +1 -0
- package/dist/VersionHistory/components/index.d.ts +5 -0
- package/dist/VersionHistory/components/index.d.ts.map +1 -0
- package/dist/VersionHistory/components/index.js +5 -0
- package/dist/VersionHistory/components/index.js.map +1 -0
- package/dist/VersionHistory/components/labels-resource.component.d.ts +89 -0
- package/dist/VersionHistory/components/labels-resource.component.d.ts.map +1 -0
- package/dist/VersionHistory/components/labels-resource.component.js +968 -0
- package/dist/VersionHistory/components/labels-resource.component.js.map +1 -0
- package/dist/VersionHistory/components/restore-resource.component.d.ts +40 -0
- package/dist/VersionHistory/components/restore-resource.component.d.ts.map +1 -0
- package/dist/VersionHistory/components/restore-resource.component.js +472 -0
- package/dist/VersionHistory/components/restore-resource.component.js.map +1 -0
- package/dist/VersionHistory/index.d.ts +2 -0
- package/dist/VersionHistory/index.d.ts.map +1 -0
- package/dist/VersionHistory/index.js +2 -0
- package/dist/VersionHistory/index.js.map +1 -0
- package/dist/module.d.ts +42 -36
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +41 -7
- package/dist/module.js.map +1 -1
- package/dist/public-api.d.ts +20 -19
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +22 -120
- package/dist/public-api.js.map +1 -1
- package/dist/shared/pipes/highlight-search.pipe.d.ts.map +1 -1
- package/dist/shared/pipes/highlight-search.pipe.js +2 -1
- package/dist/shared/pipes/highlight-search.pipe.js.map +1 -1
- package/package.json +64 -62
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-version-control.component.d.ts","sourceRoot":"","sources":["../../../../src/AI/components/prompts/prompt-version-control.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1F,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC1F,OAAO,EAAW,eAAe,EAAE,MAAM,MAAM,CAAC;AAEhD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;;AAEtE,UAAU,aAAa;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC3C,YAAY,EAAE,UAAU,GAAG,UAAU,CAAC;IACtC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,GAAG,CAAC;IACjB,cAAc,EAAE,GAAG,CAAC;IACpB,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,UAAU,iBAAiB;IACzB,WAAW,EAAE,aAAa,CAAC;IAC3B,SAAS,EAAE,aAAa,CAAC;IACzB,WAAW,EAAE,eAAe,EAAE,CAAC;CAChC;AAED,UAAU,eAAe;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,GAAG,CAAC;IACd,QAAQ,EAAE,GAAG,CAAC;IACd,UAAU,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;IAC7C,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,
|
|
1
|
+
{"version":3,"file":"prompt-version-control.component.d.ts","sourceRoot":"","sources":["../../../../src/AI/components/prompts/prompt-version-control.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1F,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC1F,OAAO,EAAW,eAAe,EAAE,MAAM,MAAM,CAAC;AAEhD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;;AAEtE,UAAU,aAAa;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC3C,YAAY,EAAE,UAAU,GAAG,UAAU,CAAC;IACtC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,GAAG,CAAC;IACjB,cAAc,EAAE,GAAG,CAAC;IACpB,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,UAAU,iBAAiB;IACzB,WAAW,EAAE,aAAa,CAAC;IAC3B,SAAS,EAAE,aAAa,CAAC;IACzB,WAAW,EAAE,eAAe,EAAE,CAAC;CAChC;AAED,UAAU,eAAe;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,GAAG,CAAC;IACd,QAAQ,EAAE,GAAG,CAAC;IACd,UAAU,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;IAC7C,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,qBAMa,6BAA8B,YAAW,MAAM,EAAE,SAAS;IA6CzD,OAAO,CAAC,mBAAmB;IA5C9B,MAAM,EAAE,sBAAsB,GAAG,IAAI,CAAQ;IAC7C,QAAQ,UAAQ;IAChB,kBAAkB,UAAQ;IAC1B,cAAc,UAAQ;IACtB,WAAW,SAAM;IAEhB,eAAe,8BAAqC;IACpD,eAAe,uCAA8C;IAC7D,eAAe,kCAAyC;IAG3D,QAAQ,EAAE,aAAa,EAAE,CAAM;IAC/B,aAAa,EAAE,kBAAkB,EAAE,CAAM;IACzC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAa;IACjE,gBAAgB,EAAE,sBAAsB,EAAE,CAAM;IAChD,wBAAwB,EAAE,sBAAsB,EAAE,CAAM;IAGxD,SAAS,UAAS;IAClB,cAAc,SAAM;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC5B,WAAW,EAAE,UAAU,GAAG,YAAY,GAAG,SAAS,CAAc;IAChE,eAAe,EAAE,aAAa,GAAG,IAAI,CAAQ;IAC7C,kBAAkB,EAAE,aAAa,GAAG,IAAI,CAAQ;IAChD,gBAAgB,EAAE,aAAa,GAAG,IAAI,CAAQ;IAC9C,gBAAgB,EAAE,iBAAiB,GAAG,IAAI,CAAQ;IAGlD,QAAQ,EAAE,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAS;IAC3D,aAAa,EAAE,KAAK,GAAG,MAAM,CAAU;IACvC,WAAW,0BAAmC;IAC9C,iBAAiB,0BAAmC;IACpD,iBAAiB,UAAS;IAG1B,cAAc;;;;;MAKnB;IAEF,OAAO,CAAC,QAAQ,CAAuB;gBAEnB,mBAAmB,EAAE,qBAAqB;IAE9D,QAAQ,IAAI,IAAI;IAShB,WAAW,IAAI,IAAI;IAKN,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;YA2ClC,oBAAoB;IAgDlC,OAAO,CAAC,oBAAoB;IAgC5B,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,YAAY;IAuCpB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,kBAAkB;IAKnB,eAAe,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAK7C,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD,aAAa,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,EAAE;IAIjC,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAIpD,wBAAwB,IAAI,IAAI;IAIhC,kBAAkB,IAAI,IAAI;IAIpB,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAkD3D,eAAe,CAAC,WAAW,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,aAAa,GAAG,IAAI;IAOnF,OAAO,CAAC,kBAAkB;IA6C1B,OAAO,CAAC,sBAAsB;IAqB9B,OAAO,CAAC,mBAAmB;IAcpB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKpC,qBAAqB,IAAI,IAAI;IAK7B,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKlC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAOhC,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAS7C,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAS9C,iBAAiB,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM;IASrC,eAAe,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM;IAO/C,oBAAoB,IAAI,IAAI;IAwB5B,cAAc,IAAI,IAAI;YAIf,oBAAoB;IAalC,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,sBAAsB;IAYvB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAI9C,sBAAsB,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI;yCA5gBxD,6BAA6B;2CAA7B,6BAA6B;CAghBzC"}
|
|
@@ -32,7 +32,7 @@ function PromptVersionControlComponent_Conditional_1_Conditional_14_For_1_Templa
|
|
|
32
32
|
i0.ɵɵelementStart(1, "div", 17)(2, "h6", 18);
|
|
33
33
|
i0.ɵɵtext(3);
|
|
34
34
|
i0.ɵɵelementEnd();
|
|
35
|
-
i0.ɵɵ
|
|
35
|
+
i0.ɵɵconditionalCreate(4, PromptVersionControlComponent_Conditional_1_Conditional_14_For_1_Conditional_4_Template, 2, 1, "p", 19);
|
|
36
36
|
i0.ɵɵelementEnd();
|
|
37
37
|
i0.ɵɵelementStart(5, "div", 20);
|
|
38
38
|
i0.ɵɵelement(6, "i", 21);
|
|
@@ -66,7 +66,7 @@ function PromptVersionControlComponent_Conditional_1_Template(rf, ctx) { if (rf
|
|
|
66
66
|
i0.ɵɵlistener("ngModelChange", function PromptVersionControlComponent_Conditional_1_Template_input_ngModelChange_11_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onPromptSearchChange($event)); });
|
|
67
67
|
i0.ɵɵelementEnd()()();
|
|
68
68
|
i0.ɵɵelementStart(12, "div", 11);
|
|
69
|
-
i0.ɵɵ
|
|
69
|
+
i0.ɵɵconditionalCreate(13, PromptVersionControlComponent_Conditional_1_Conditional_13_Template, 4, 0, "div", 12)(14, PromptVersionControlComponent_Conditional_1_Conditional_14_Template, 2, 0);
|
|
70
70
|
i0.ɵɵelementEnd()()();
|
|
71
71
|
} if (rf & 2) {
|
|
72
72
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
@@ -82,7 +82,7 @@ function PromptVersionControlComponent_Conditional_2_Conditional_5_Template(rf,
|
|
|
82
82
|
} if (rf & 2) {
|
|
83
83
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
84
84
|
i0.ɵɵadvance();
|
|
85
|
-
i0.ɵɵtextInterpolate1("- ", ctx_r1.prompt.Name
|
|
85
|
+
i0.ɵɵtextInterpolate1("- ", ctx_r1.prompt.Name);
|
|
86
86
|
} }
|
|
87
87
|
function PromptVersionControlComponent_Conditional_2_Conditional_50_Template(rf, ctx) { if (rf & 1) {
|
|
88
88
|
i0.ɵɵelementStart(0, "div", 56);
|
|
@@ -142,7 +142,7 @@ function PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_
|
|
|
142
142
|
i0.ɵɵelementStart(0, "div", 86)(1, "span", 87);
|
|
143
143
|
i0.ɵɵtext(2);
|
|
144
144
|
i0.ɵɵelementEnd();
|
|
145
|
-
i0.ɵɵ
|
|
145
|
+
i0.ɵɵconditionalCreate(3, PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_0_Conditional_1_For_2_Conditional_23_For_3_Conditional_3_Template, 6, 2, "span", 88)(4, PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_0_Conditional_1_For_2_Conditional_23_For_3_Conditional_4_Template, 2, 1, "span", 89);
|
|
146
146
|
i0.ɵɵelementEnd();
|
|
147
147
|
} if (rf & 2) {
|
|
148
148
|
const field_r10 = ctx.$implicit;
|
|
@@ -170,7 +170,7 @@ function PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_
|
|
|
170
170
|
i0.ɵɵelementStart(1, "div", 66)(2, "div", 67);
|
|
171
171
|
i0.ɵɵelement(3, "i", 51);
|
|
172
172
|
i0.ɵɵelementEnd();
|
|
173
|
-
i0.ɵɵ
|
|
173
|
+
i0.ɵɵconditionalCreate(4, PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_0_Conditional_1_For_2_Conditional_4_Template, 1, 0, "div", 68);
|
|
174
174
|
i0.ɵɵelementEnd();
|
|
175
175
|
i0.ɵɵelementStart(5, "div", 69)(6, "div", 70)(7, "div", 71)(8, "h6", 72);
|
|
176
176
|
i0.ɵɵtext(9);
|
|
@@ -186,12 +186,13 @@ function PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_
|
|
|
186
186
|
i0.ɵɵtext(17);
|
|
187
187
|
i0.ɵɵelementEnd()()();
|
|
188
188
|
i0.ɵɵelementStart(18, "div", 77);
|
|
189
|
-
i0.ɵɵ
|
|
189
|
+
i0.ɵɵconditionalCreate(19, PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_0_Conditional_1_For_2_Conditional_19_Template, 2, 0, "button", 78);
|
|
190
|
+
i0.ɵɵconditionalCreate(20, PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_0_Conditional_1_For_2_Conditional_20_Template, 2, 0, "button", 79);
|
|
190
191
|
i0.ɵɵelementEnd()();
|
|
191
192
|
i0.ɵɵelementStart(21, "div", 80);
|
|
192
193
|
i0.ɵɵtext(22);
|
|
193
194
|
i0.ɵɵelementEnd();
|
|
194
|
-
i0.ɵɵ
|
|
195
|
+
i0.ɵɵconditionalCreate(23, PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_0_Conditional_1_For_2_Conditional_23_Template, 4, 0, "div", 81);
|
|
195
196
|
i0.ɵɵelementEnd()();
|
|
196
197
|
} if (rf & 2) {
|
|
197
198
|
const version_r7 = ctx.$implicit;
|
|
@@ -209,7 +210,7 @@ function PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_
|
|
|
209
210
|
i0.ɵɵadvance(3);
|
|
210
211
|
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(13, 21, version_r7.changedAt, "medium"));
|
|
211
212
|
i0.ɵɵadvance(3);
|
|
212
|
-
i0.ɵɵtextInterpolate1("by ", version_r7.changedBy
|
|
213
|
+
i0.ɵɵtextInterpolate1("by ", version_r7.changedBy);
|
|
213
214
|
i0.ɵɵadvance();
|
|
214
215
|
i0.ɵɵclassProp("badge-primary", version_r7.changeSource === "Internal")("badge-secondary", version_r7.changeSource === "External");
|
|
215
216
|
i0.ɵɵadvance();
|
|
@@ -243,7 +244,7 @@ function PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_
|
|
|
243
244
|
i0.ɵɵelementStart(2, "p", 14);
|
|
244
245
|
i0.ɵɵtext(3, "No version history available for this prompt.");
|
|
245
246
|
i0.ɵɵelementEnd();
|
|
246
|
-
i0.ɵɵ
|
|
247
|
+
i0.ɵɵconditionalCreate(4, PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_0_Conditional_2_Conditional_4_Template, 3, 0, "p", 14);
|
|
247
248
|
i0.ɵɵelementEnd();
|
|
248
249
|
} if (rf & 2) {
|
|
249
250
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
@@ -252,7 +253,7 @@ function PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_
|
|
|
252
253
|
} }
|
|
253
254
|
function PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
254
255
|
i0.ɵɵelementStart(0, "div", 59);
|
|
255
|
-
i0.ɵɵ
|
|
256
|
+
i0.ɵɵconditionalCreate(1, PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_0_Conditional_1_Template, 3, 0, "div", 62)(2, PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_0_Conditional_2_Template, 5, 1, "div", 63);
|
|
256
257
|
i0.ɵɵelementEnd();
|
|
257
258
|
} if (rf & 2) {
|
|
258
259
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -269,7 +270,7 @@ function PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_
|
|
|
269
270
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
270
271
|
i0.ɵɵproperty("ngValue", version_r13);
|
|
271
272
|
i0.ɵɵadvance();
|
|
272
|
-
i0.ɵɵtextInterpolate2("", ctx_r1.getVersionLabel(version_r13), " - ", i0.ɵɵpipeBind2(2, 3, version_r13.changedAt, "short")
|
|
273
|
+
i0.ɵɵtextInterpolate2("", ctx_r1.getVersionLabel(version_r13), " - ", i0.ɵɵpipeBind2(2, 3, version_r13.changedAt, "short"));
|
|
273
274
|
} }
|
|
274
275
|
function PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_1_For_15_Template(rf, ctx) { if (rf & 1) {
|
|
275
276
|
i0.ɵɵelementStart(0, "option", 95);
|
|
@@ -281,7 +282,7 @@ function PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_
|
|
|
281
282
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
282
283
|
i0.ɵɵproperty("ngValue", version_r14);
|
|
283
284
|
i0.ɵɵadvance();
|
|
284
|
-
i0.ɵɵtextInterpolate2("", ctx_r1.getVersionLabel(version_r14), " - ", i0.ɵɵpipeBind2(2, 3, version_r14.changedAt, "short")
|
|
285
|
+
i0.ɵɵtextInterpolate2("", ctx_r1.getVersionLabel(version_r14), " - ", i0.ɵɵpipeBind2(2, 3, version_r14.changedAt, "short"));
|
|
285
286
|
} }
|
|
286
287
|
function PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_1_Conditional_16_Conditional_7_For_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
287
288
|
i0.ɵɵelementStart(0, "span", 108);
|
|
@@ -325,13 +326,13 @@ function PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_
|
|
|
325
326
|
i0.ɵɵtext(3, "Before:");
|
|
326
327
|
i0.ɵɵelementEnd();
|
|
327
328
|
i0.ɵɵelementStart(4, "div", 115);
|
|
328
|
-
i0.ɵɵ
|
|
329
|
+
i0.ɵɵconditionalCreate(5, PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_1_Conditional_16_Conditional_7_For_2_Conditional_9_Conditional_5_Template, 2, 1, "pre", 116)(6, PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_1_Conditional_16_Conditional_7_For_2_Conditional_9_Conditional_6_Template, 1, 1);
|
|
329
330
|
i0.ɵɵelementEnd()();
|
|
330
331
|
i0.ɵɵelementStart(7, "div", 117)(8, "h6", 114);
|
|
331
332
|
i0.ɵɵtext(9, "After:");
|
|
332
333
|
i0.ɵɵelementEnd();
|
|
333
334
|
i0.ɵɵelementStart(10, "div", 118);
|
|
334
|
-
i0.ɵɵ
|
|
335
|
+
i0.ɵɵconditionalCreate(11, PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_1_Conditional_16_Conditional_7_For_2_Conditional_9_Conditional_11_Template, 2, 1, "pre", 116)(12, PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_1_Conditional_16_Conditional_7_For_2_Conditional_9_Conditional_12_Template, 1, 1);
|
|
335
336
|
i0.ɵɵelementEnd()()();
|
|
336
337
|
} if (rf & 2) {
|
|
337
338
|
const diff_r15 = i0.ɵɵnextContext().$implicit;
|
|
@@ -373,10 +374,10 @@ function PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_
|
|
|
373
374
|
i0.ɵɵelementStart(5, "span", 107);
|
|
374
375
|
i0.ɵɵtext(6);
|
|
375
376
|
i0.ɵɵelementEnd();
|
|
376
|
-
i0.ɵɵ
|
|
377
|
+
i0.ɵɵconditionalCreate(7, PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_1_Conditional_16_Conditional_7_For_2_Conditional_7_Template, 2, 0, "span", 108);
|
|
377
378
|
i0.ɵɵelementEnd()();
|
|
378
379
|
i0.ɵɵelementStart(8, "div", 109);
|
|
379
|
-
i0.ɵɵ
|
|
380
|
+
i0.ɵɵconditionalCreate(9, PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_1_Conditional_16_Conditional_7_For_2_Conditional_9_Template, 13, 2, "div", 110)(10, PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_1_Conditional_16_Conditional_7_For_2_Conditional_10_Template, 5, 1, "div", 111)(11, PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_1_Conditional_16_Conditional_7_For_2_Conditional_11_Template, 5, 1, "div", 112);
|
|
380
381
|
i0.ɵɵelementEnd()();
|
|
381
382
|
} if (rf & 2) {
|
|
382
383
|
const diff_r15 = ctx.$implicit;
|
|
@@ -416,7 +417,7 @@ function PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_
|
|
|
416
417
|
i0.ɵɵelementStart(5, "div", 100);
|
|
417
418
|
i0.ɵɵtext(6);
|
|
418
419
|
i0.ɵɵelementEnd()();
|
|
419
|
-
i0.ɵɵ
|
|
420
|
+
i0.ɵɵconditionalCreate(7, PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_1_Conditional_16_Conditional_7_Template, 3, 0, "div", 101)(8, PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_1_Conditional_16_Conditional_8_Template, 4, 0, "div", 102);
|
|
420
421
|
i0.ɵɵelementEnd();
|
|
421
422
|
} if (rf & 2) {
|
|
422
423
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
@@ -448,7 +449,7 @@ function PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_
|
|
|
448
449
|
i0.ɵɵlistener("ngModelChange", function PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_1_Template_select_ngModelChange_13_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.generateComparisonPublic()); });
|
|
449
450
|
i0.ɵɵrepeaterCreate(14, PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_1_For_15_Template, 3, 6, "option", 95, _forTrack1);
|
|
450
451
|
i0.ɵɵelementEnd()()();
|
|
451
|
-
i0.ɵɵ
|
|
452
|
+
i0.ɵɵconditionalCreate(16, PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_1_Conditional_16_Template, 9, 4, "div", 97);
|
|
452
453
|
i0.ɵɵelementEnd();
|
|
453
454
|
} if (rf & 2) {
|
|
454
455
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -521,7 +522,8 @@ function PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_
|
|
|
521
522
|
i0.ɵɵelementStart(29, "span", 130);
|
|
522
523
|
i0.ɵɵtext(30);
|
|
523
524
|
i0.ɵɵelementEnd()()()();
|
|
524
|
-
i0.ɵɵ
|
|
525
|
+
i0.ɵɵconditionalCreate(31, PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_2_Conditional_1_Conditional_31_Template, 7, 3, "div", 126);
|
|
526
|
+
i0.ɵɵconditionalCreate(32, PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_2_Conditional_1_Conditional_32_Template, 6, 1, "div", 126);
|
|
525
527
|
i0.ɵɵelementEnd()();
|
|
526
528
|
} if (rf & 2) {
|
|
527
529
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
@@ -530,7 +532,7 @@ function PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_
|
|
|
530
532
|
i0.ɵɵadvance(3);
|
|
531
533
|
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(7, 10, ctx_r1.selectedVersion.changedAt, "full"));
|
|
532
534
|
i0.ɵɵadvance(3);
|
|
533
|
-
i0.ɵɵtextInterpolate1("Changed by ", ctx_r1.selectedVersion.changedBy
|
|
535
|
+
i0.ɵɵtextInterpolate1("Changed by ", ctx_r1.selectedVersion.changedBy);
|
|
534
536
|
i0.ɵɵadvance(10);
|
|
535
537
|
i0.ɵɵclassMap(ctx_r1.getChangeTypeIcon(ctx_r1.selectedVersion.changeType));
|
|
536
538
|
i0.ɵɵadvance();
|
|
@@ -553,7 +555,7 @@ function PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_
|
|
|
553
555
|
} }
|
|
554
556
|
function PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
555
557
|
i0.ɵɵelementStart(0, "div", 61);
|
|
556
|
-
i0.ɵɵ
|
|
558
|
+
i0.ɵɵconditionalCreate(1, PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_2_Conditional_1_Template, 33, 13, "div", 120)(2, PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_2_Conditional_2_Template, 4, 0, "div", 121);
|
|
557
559
|
i0.ɵɵelementEnd();
|
|
558
560
|
} if (rf & 2) {
|
|
559
561
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -561,7 +563,9 @@ function PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_
|
|
|
561
563
|
i0.ɵɵconditional(ctx_r1.selectedVersion ? 1 : 2);
|
|
562
564
|
} }
|
|
563
565
|
function PromptVersionControlComponent_Conditional_2_Conditional_51_Template(rf, ctx) { if (rf & 1) {
|
|
564
|
-
i0.ɵɵ
|
|
566
|
+
i0.ɵɵconditionalCreate(0, PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_0_Template, 3, 1, "div", 59);
|
|
567
|
+
i0.ɵɵconditionalCreate(1, PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_1_Template, 17, 3, "div", 60);
|
|
568
|
+
i0.ɵɵconditionalCreate(2, PromptVersionControlComponent_Conditional_2_Conditional_51_Conditional_2_Template, 3, 1, "div", 61);
|
|
565
569
|
} if (rf & 2) {
|
|
566
570
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
567
571
|
i0.ɵɵconditional(ctx_r1.currentView === "timeline" ? 0 : -1);
|
|
@@ -590,7 +594,7 @@ function PromptVersionControlComponent_Conditional_2_Template(rf, ctx) { if (rf
|
|
|
590
594
|
i0.ɵɵelementStart(0, "div", 22)(1, "div", 23)(2, "h5", 24);
|
|
591
595
|
i0.ɵɵelement(3, "i", 3);
|
|
592
596
|
i0.ɵɵtext(4, " Version History ");
|
|
593
|
-
i0.ɵɵ
|
|
597
|
+
i0.ɵɵconditionalCreate(5, PromptVersionControlComponent_Conditional_2_Conditional_5_Template, 2, 1, "span", 25);
|
|
594
598
|
i0.ɵɵelementEnd();
|
|
595
599
|
i0.ɵɵelementStart(6, "div", 26)(7, "div", 27)(8, "input", 28);
|
|
596
600
|
i0.ɵɵtwoWayListener("ngModelChange", function PromptVersionControlComponent_Conditional_2_Template_input_ngModelChange_8_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.currentView, $event) || (ctx_r1.currentView = $event); return i0.ɵɵresetView($event); });
|
|
@@ -659,7 +663,8 @@ function PromptVersionControlComponent_Conditional_2_Template(rf, ctx) { if (rf
|
|
|
659
663
|
i0.ɵɵelement(48, "i", 55);
|
|
660
664
|
i0.ɵɵtext(49, " Export ");
|
|
661
665
|
i0.ɵɵelementEnd()()()();
|
|
662
|
-
i0.ɵɵ
|
|
666
|
+
i0.ɵɵconditionalCreate(50, PromptVersionControlComponent_Conditional_2_Conditional_50_Template, 2, 1, "div", 56)(51, PromptVersionControlComponent_Conditional_2_Conditional_51_Template, 3, 3);
|
|
667
|
+
i0.ɵɵconditionalCreate(52, PromptVersionControlComponent_Conditional_2_Conditional_52_Template, 7, 1, "div", 57);
|
|
663
668
|
} if (rf & 2) {
|
|
664
669
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
665
670
|
i0.ɵɵadvance(5);
|
|
@@ -1152,9 +1157,9 @@ export class PromptVersionControlComponent {
|
|
|
1152
1157
|
this.loadVersionHistory();
|
|
1153
1158
|
}
|
|
1154
1159
|
static ɵfac = function PromptVersionControlComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PromptVersionControlComponent)(i0.ɵɵdirectiveInject(i1.MJNotificationService)); };
|
|
1155
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PromptVersionControlComponent, selectors: [["app-prompt-version-control"]], inputs: { prompt: "prompt", autoLoad: "autoLoad", showRestoreActions: "showRestoreActions", showComparison: "showComparison", maxVersions: "maxVersions" }, outputs: { versionSelected: "versionSelected", versionRestored: "versionRestored", versionCompared: "versionCompared" }, decls: 3, vars: 1, consts: [[1, "prompt-version-control"], [1, "prompt-selector-section"], [1, "section-title"], [1, "fa-solid", "fa-history"], [1, "text-muted", "mb-3"], [1, "prompt-selector"], [1, "search-box", "mb-3"], [1, "input-group"], [1, "input-group-text"], [1, "fa-solid", "fa-search"], ["type", "text", "placeholder", "Search prompts...", 1, "form-control", 3, "ngModelChange", "ngModel"], [1, "prompts-list"], [1, "empty-state"], [1, "fa-solid", "fa-comment-dots", "text-muted"], [1, "text-muted"], [1, "prompt-item"], [1, "prompt-item", 3, "click"], [1, "prompt-info"], [1, "prompt-title"], [1, "prompt-description"], [1, "prompt-actions"], [1, "fa-solid", "fa-arrow-right"], [1, "version-toolbar"], [1, "toolbar-section"], [1, "toolbar-title"], [1, "prompt-name"], [1, "view-mode-toggle"], ["role", "group", 1, "btn-group", "btn-group-sm"], ["type", "radio", "name", "view", "id", "timelineView", "value", "timeline", 1, "btn-check", 3, "ngModelChange", "ngModel"], ["for", "timelineView", 1, "btn", "btn-outline-primary"], [1, "fa-solid", "fa-timeline"], ["type", "radio", "name", "view", "id", "comparisonView", "value", "comparison", 1, "btn-check", 3, "ngModelChange", "ngModel"], ["for", "comparisonView", 1, "btn", "btn-outline-primary"], [1, "fa-solid", "fa-code-compare"], ["type", "radio", "name", "view", "id", "detailsView", "value", "details", 1, "btn-check", 3, "ngModelChange", "ngModel"], ["for", "detailsView", 1, "btn", "btn-outline-primary"], [1, "fa-solid", "fa-list"], [1, "filter-controls"], [1, "form-label"], [1, "form-select", "form-select-sm", 3, "ngModelChange", "ngModel"], ["value", "all"], ["value", "updates"], ["value", "major"], ["value", "template"], [1, "form-check", "form-switch"], ["type", "checkbox", "id", "showSystem", 1, "form-check-input", 3, "ngModelChange", "ngModel"], ["for", "showSystem", 1, "form-check-label"], [1, "search-controls"], ["type", "text", "placeholder", "Search changes...", 1, "form-control", "form-control-sm", 3, "ngModelChange", "ngModel"], [1, "action-buttons"], ["type", "button", 1, "btn", "btn-sm", "btn-outline-secondary", 3, "click", "title"], [1, "fa-solid"], ["type", "button", "title", "Refresh history", 1, "btn", "btn-sm", "btn-outline-secondary", 3, "click", "disabled"], [1, "fa-solid", "fa-refresh"], ["type", "button", "title", "Export history", 1, "btn", "btn-sm", "btn-outline-info", 3, "click"], [1, "fa-solid", "fa-download"], [1, "loading-container"], [1, "error-container"], ["size", "large", 3, "text"], [1, "timeline-container"], [1, "comparison-container"], [1, "details-container"], [1, "version-timeline"], [1, "no-versions-message"], [1, "timeline-item", 3, "selected", "active"], [1, "timeline-item", 3, "click"], [1, "timeline-marker"], [1, "marker-icon"], [1, "timeline-line"], [1, "timeline-content"], [1, "version-header"], [1, "version-info"], [1, "version-label"], [1, "version-meta"], [1, "change-date"], [1, "changed-by"], [1, "change-source", "badge"], [1, "version-actions"], ["type", "button", "title", "Compare with next version", 1, "btn", "btn-sm", "btn-outline-primary"], ["type", "button", "title", "Restore this version", 1, "btn", "btn-sm", "btn-outline-success"], [1, "version-description"], [1, "changes-summary"], ["type", "button", "title", "Compare with next version", 1, "btn", "btn-sm", "btn-outline-primary", 3, "click"], ["type", "button", "title", "Restore this version", 1, "btn", "btn-sm", "btn-outline-success", 3, "click"], [1, "fa-solid", "fa-undo"], [1, "changes-list"], [1, "change-item"], [1, "field-name"], [1, "change-arrow"], [1, "new-value"], [1, "old-value"], [1, "fa-solid", "fa-info-circle", "text-muted"], [1, "comparison-selectors"], [1, "selector-group"], [1, "form-select", 3, "ngModelChange", "ngModel"], [3, "ngValue"], [1, "comparison-arrow"], [1, "comparison-results"], [1, "comparison-header"], [1, "comparison-title"], [1, "changes-count"], [1, "differences-list"], [1, "no-differences"], [1, "difference-item", 3, "class"], [1, "difference-item"], [1, "diff-header"], [1, "field-info"], [1, "change-type", "badge"], [1, "template-badge", "badge", "badge-info"], [1, "diff-content"], [1, "side-by-side-diff"], [1, "diff-added"], [1, "diff-removed"], [1, "diff-old"], [1, "diff-label"], [1, "diff-value", "old-value"], [1, "template-content"], [1, "diff-new"], [1, "diff-value", "new-value"], [1, "fa-solid", "fa-check-circle", "text-success"], [1, "version-details"], [1, "no-selection-message"], [1, "details-header"], [1, "details-title"], [1, "details-meta"], [1, "details-content"], [1, "detail-section"], [1, "detail-grid"], [1, "detail-item"], [1, "detail-label"], [1, "detail-value"], [1, "json-viewer"], [1, "json-content"], [1, "template-viewer"], [1, "fa-solid", "fa-hand-pointer", "text-muted"], ["role", "alert", 1, "alert", "alert-danger"], [1, "fa-solid", "fa-exclamation-triangle"], ["type", "button", 1, "btn", "btn-sm", "btn-outline-danger", "ms-2", 3, "click"]], template: function PromptVersionControlComponent_Template(rf, ctx) { if (rf & 1) {
|
|
1160
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PromptVersionControlComponent, selectors: [["app-prompt-version-control"]], inputs: { prompt: "prompt", autoLoad: "autoLoad", showRestoreActions: "showRestoreActions", showComparison: "showComparison", maxVersions: "maxVersions" }, outputs: { versionSelected: "versionSelected", versionRestored: "versionRestored", versionCompared: "versionCompared" }, standalone: false, decls: 3, vars: 1, consts: [[1, "prompt-version-control"], [1, "prompt-selector-section"], [1, "section-title"], [1, "fa-solid", "fa-history"], [1, "text-muted", "mb-3"], [1, "prompt-selector"], [1, "search-box", "mb-3"], [1, "input-group"], [1, "input-group-text"], [1, "fa-solid", "fa-search"], ["type", "text", "placeholder", "Search prompts...", 1, "form-control", 3, "ngModelChange", "ngModel"], [1, "prompts-list"], [1, "empty-state"], [1, "fa-solid", "fa-comment-dots", "text-muted"], [1, "text-muted"], [1, "prompt-item"], [1, "prompt-item", 3, "click"], [1, "prompt-info"], [1, "prompt-title"], [1, "prompt-description"], [1, "prompt-actions"], [1, "fa-solid", "fa-arrow-right"], [1, "version-toolbar"], [1, "toolbar-section"], [1, "toolbar-title"], [1, "prompt-name"], [1, "view-mode-toggle"], ["role", "group", 1, "btn-group", "btn-group-sm"], ["type", "radio", "name", "view", "id", "timelineView", "value", "timeline", 1, "btn-check", 3, "ngModelChange", "ngModel"], ["for", "timelineView", 1, "btn", "btn-outline-primary"], [1, "fa-solid", "fa-timeline"], ["type", "radio", "name", "view", "id", "comparisonView", "value", "comparison", 1, "btn-check", 3, "ngModelChange", "ngModel"], ["for", "comparisonView", 1, "btn", "btn-outline-primary"], [1, "fa-solid", "fa-code-compare"], ["type", "radio", "name", "view", "id", "detailsView", "value", "details", 1, "btn-check", 3, "ngModelChange", "ngModel"], ["for", "detailsView", 1, "btn", "btn-outline-primary"], [1, "fa-solid", "fa-list"], [1, "filter-controls"], [1, "form-label"], [1, "form-select", "form-select-sm", 3, "ngModelChange", "ngModel"], ["value", "all"], ["value", "updates"], ["value", "major"], ["value", "template"], [1, "form-check", "form-switch"], ["type", "checkbox", "id", "showSystem", 1, "form-check-input", 3, "ngModelChange", "ngModel"], ["for", "showSystem", 1, "form-check-label"], [1, "search-controls"], ["type", "text", "placeholder", "Search changes...", 1, "form-control", "form-control-sm", 3, "ngModelChange", "ngModel"], [1, "action-buttons"], ["type", "button", 1, "btn", "btn-sm", "btn-outline-secondary", 3, "click", "title"], [1, "fa-solid"], ["type", "button", "title", "Refresh history", 1, "btn", "btn-sm", "btn-outline-secondary", 3, "click", "disabled"], [1, "fa-solid", "fa-refresh"], ["type", "button", "title", "Export history", 1, "btn", "btn-sm", "btn-outline-info", 3, "click"], [1, "fa-solid", "fa-download"], [1, "loading-container"], [1, "error-container"], ["size", "large", 3, "text"], [1, "timeline-container"], [1, "comparison-container"], [1, "details-container"], [1, "version-timeline"], [1, "no-versions-message"], [1, "timeline-item", 3, "selected", "active"], [1, "timeline-item", 3, "click"], [1, "timeline-marker"], [1, "marker-icon"], [1, "timeline-line"], [1, "timeline-content"], [1, "version-header"], [1, "version-info"], [1, "version-label"], [1, "version-meta"], [1, "change-date"], [1, "changed-by"], [1, "change-source", "badge"], [1, "version-actions"], ["type", "button", "title", "Compare with next version", 1, "btn", "btn-sm", "btn-outline-primary"], ["type", "button", "title", "Restore this version", 1, "btn", "btn-sm", "btn-outline-success"], [1, "version-description"], [1, "changes-summary"], ["type", "button", "title", "Compare with next version", 1, "btn", "btn-sm", "btn-outline-primary", 3, "click"], ["type", "button", "title", "Restore this version", 1, "btn", "btn-sm", "btn-outline-success", 3, "click"], [1, "fa-solid", "fa-undo"], [1, "changes-list"], [1, "change-item"], [1, "field-name"], [1, "change-arrow"], [1, "new-value"], [1, "old-value"], [1, "fa-solid", "fa-info-circle", "text-muted"], [1, "comparison-selectors"], [1, "selector-group"], [1, "form-select", 3, "ngModelChange", "ngModel"], [3, "ngValue"], [1, "comparison-arrow"], [1, "comparison-results"], [1, "comparison-header"], [1, "comparison-title"], [1, "changes-count"], [1, "differences-list"], [1, "no-differences"], [1, "difference-item", 3, "class"], [1, "difference-item"], [1, "diff-header"], [1, "field-info"], [1, "change-type", "badge"], [1, "template-badge", "badge", "badge-info"], [1, "diff-content"], [1, "side-by-side-diff"], [1, "diff-added"], [1, "diff-removed"], [1, "diff-old"], [1, "diff-label"], [1, "diff-value", "old-value"], [1, "template-content"], [1, "diff-new"], [1, "diff-value", "new-value"], [1, "fa-solid", "fa-check-circle", "text-success"], [1, "version-details"], [1, "no-selection-message"], [1, "details-header"], [1, "details-title"], [1, "details-meta"], [1, "details-content"], [1, "detail-section"], [1, "detail-grid"], [1, "detail-item"], [1, "detail-label"], [1, "detail-value"], [1, "json-viewer"], [1, "json-content"], [1, "template-viewer"], [1, "fa-solid", "fa-hand-pointer", "text-muted"], ["role", "alert", 1, "alert", "alert-danger"], [1, "fa-solid", "fa-exclamation-triangle"], ["type", "button", 1, "btn", "btn-sm", "btn-outline-danger", "ms-2", 3, "click"]], template: function PromptVersionControlComponent_Template(rf, ctx) { if (rf & 1) {
|
|
1156
1161
|
i0.ɵɵelementStart(0, "div", 0);
|
|
1157
|
-
i0.ɵɵ
|
|
1162
|
+
i0.ɵɵconditionalCreate(1, PromptVersionControlComponent_Conditional_1_Template, 15, 2, "div", 1)(2, PromptVersionControlComponent_Conditional_2_Template, 53, 17);
|
|
1158
1163
|
i0.ɵɵelementEnd();
|
|
1159
1164
|
} if (rf & 2) {
|
|
1160
1165
|
i0.ɵɵadvance();
|
|
@@ -1163,7 +1168,7 @@ export class PromptVersionControlComponent {
|
|
|
1163
1168
|
}
|
|
1164
1169
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PromptVersionControlComponent, [{
|
|
1165
1170
|
type: Component,
|
|
1166
|
-
args: [{ selector: 'app-prompt-version-control', template: "<div class=\"prompt-version-control\">\n <!-- Prompt Selector (when no prompt selected) -->\n @if (!prompt) {\n <div class=\"prompt-selector-section\">\n <h5 class=\"section-title\">\n <i class=\"fa-solid fa-history\"></i>\n Version History\n </h5>\n <p class=\"text-muted mb-3\">Select a prompt to view its version history</p>\n \n <div class=\"prompt-selector\">\n <div class=\"search-box mb-3\">\n <div class=\"input-group\">\n <span class=\"input-group-text\">\n <i class=\"fa-solid fa-search\"></i>\n </span>\n <input \n type=\"text\" \n class=\"form-control\" \n placeholder=\"Search prompts...\"\n [ngModel]=\"promptSearchTerm$.value\"\n (ngModelChange)=\"onPromptSearchChange($event)\">\n </div>\n </div>\n \n <div class=\"prompts-list\">\n @if (availablePrompts.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-comment-dots text-muted\"></i>\n <p class=\"text-muted\">No prompts available</p>\n </div>\n } @else {\n @for (promptItem of filteredAvailablePrompts; track promptItem.ID) {\n <div class=\"prompt-item\" (click)=\"selectPromptForHistory(promptItem)\">\n <div class=\"prompt-info\">\n <h6 class=\"prompt-title\">{{ promptItem.Name }}</h6>\n @if (promptItem.Description) {\n <p class=\"prompt-description\">{{ promptItem.Description }}</p>\n }\n </div>\n <div class=\"prompt-actions\">\n <i class=\"fa-solid fa-arrow-right\"></i>\n </div>\n </div>\n }\n }\n </div>\n </div>\n </div>\n } @else {\n <!-- Header toolbar -->\n <div class=\"version-toolbar\">\n <div class=\"toolbar-section\">\n <h5 class=\"toolbar-title\">\n <i class=\"fa-solid fa-history\"></i>\n Version History\n @if (prompt) {\n <span class=\"prompt-name\">- {{ prompt.Name }}</span>\n }\n </h5>\n \n <div class=\"view-mode-toggle\">\n <div class=\"btn-group btn-group-sm\" role=\"group\">\n <input type=\"radio\" class=\"btn-check\" name=\"view\" id=\"timelineView\" value=\"timeline\" [(ngModel)]=\"currentView\" (ngModelChange)=\"onViewChange($event)\">\n <label class=\"btn btn-outline-primary\" for=\"timelineView\">\n <i class=\"fa-solid fa-timeline\"></i>\n Timeline\n </label>\n \n <input type=\"radio\" class=\"btn-check\" name=\"view\" id=\"comparisonView\" value=\"comparison\" [(ngModel)]=\"currentView\" (ngModelChange)=\"onViewChange($event)\">\n <label class=\"btn btn-outline-primary\" for=\"comparisonView\">\n <i class=\"fa-solid fa-code-compare\"></i>\n Compare\n </label>\n \n <input type=\"radio\" class=\"btn-check\" name=\"view\" id=\"detailsView\" value=\"details\" [(ngModel)]=\"currentView\" (ngModelChange)=\"onViewChange($event)\">\n <label class=\"btn btn-outline-primary\" for=\"detailsView\">\n <i class=\"fa-solid fa-list\"></i>\n Details\n </label>\n </div>\n </div>\n </div>\n \n <div class=\"toolbar-section\">\n <div class=\"filter-controls\">\n <label class=\"form-label\">Filter:</label>\n <select class=\"form-select form-select-sm\" [(ngModel)]=\"filterBy\" (ngModelChange)=\"onFilterChange($event)\">\n <option value=\"all\">All Changes</option>\n <option value=\"updates\">Updates Only</option>\n <option value=\"major\">Major Changes</option>\n <option value=\"template\">Template Changes</option>\n </select>\n \n <div class=\"form-check form-switch\">\n <input class=\"form-check-input\" type=\"checkbox\" id=\"showSystem\" [(ngModel)]=\"showSystemChanges\" (ngModelChange)=\"applyFiltersPublic()\">\n <label class=\"form-check-label\" for=\"showSystem\">System</label>\n </div>\n </div>\n \n <div class=\"search-controls\">\n <input \n type=\"text\" \n class=\"form-control form-control-sm\" \n placeholder=\"Search changes...\"\n [ngModel]=\"searchTerm$.value\" (ngModelChange)=\"onSearchChange($event)\">\n </div>\n </div>\n \n <div class=\"toolbar-section\">\n <div class=\"action-buttons\">\n <button type=\"button\" class=\"btn btn-sm btn-outline-secondary\" (click)=\"onSortDirectionChange()\" [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 Sort\n </button>\n \n <button type=\"button\" class=\"btn btn-sm btn-outline-secondary\" (click)=\"refreshHistory()\" [disabled]=\"isLoading\" title=\"Refresh history\">\n <i class=\"fa-solid fa-refresh\" [class.fa-spin]=\"isLoading\"></i>\n Refresh\n </button>\n \n <button type=\"button\" class=\"btn btn-sm btn-outline-info\" (click)=\"exportVersionHistory()\" title=\"Export history\">\n <i class=\"fa-solid fa-download\"></i>\n Export\n </button>\n </div>\n </div>\n </div>\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 \n <!-- Timeline View -->\n @if (currentView === 'timeline') {\n <div class=\"timeline-container\">\n @if (versions.length > 0) {\n <div class=\"version-timeline\">\n @for (version of versions; track version.id; let i = $index) {\n <div class=\"timeline-item\" \n [class.selected]=\"selectedVersion?.id === version.id\"\n [class.active]=\"version.isActive\"\n (click)=\"onVersionSelect(version)\">\n \n <div class=\"timeline-marker\">\n <div class=\"marker-icon\" [class]=\"getChangeTypeClass(version.changeType)\">\n <i class=\"fa-solid\" [class]=\"getChangeTypeIcon(version.changeType)\"></i>\n </div>\n @if (i < versions.length - 1) {\n <div class=\"timeline-line\"></div>\n }\n </div>\n \n <div class=\"timeline-content\">\n <div class=\"version-header\">\n <div class=\"version-info\">\n <h6 class=\"version-label\">{{ getVersionLabel(version) }}</h6>\n <div class=\"version-meta\">\n <span class=\"change-date\">{{ version.changedAt | date:'medium' }}</span>\n <span class=\"changed-by\">by {{ version.changedBy }}</span>\n <span class=\"change-source badge\" [class.badge-primary]=\"version.changeSource === 'Internal'\" [class.badge-secondary]=\"version.changeSource === 'External'\">\n {{ version.changeSource }}\n </span>\n </div>\n </div>\n \n <div class=\"version-actions\">\n @if (showComparison && i < versions.length - 1) {\n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-primary\"\n (click)=\"$event.stopPropagation(); startComparison(version)\"\n title=\"Compare with next version\">\n <i class=\"fa-solid fa-code-compare\"></i>\n </button>\n }\n \n @if (showRestoreActions && version.canRestore) {\n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-success\"\n (click)=\"$event.stopPropagation(); onVersionRestore(version)\"\n title=\"Restore this version\">\n <i class=\"fa-solid fa-undo\"></i>\n </button>\n }\n </div>\n </div>\n \n <div class=\"version-description\">\n {{ version.changesDescription }}\n </div>\n \n @if (version.changesJSON && timelineConfig.showDiffs) {\n <div class=\"changes-summary\">\n <div class=\"changes-list\">\n @for (field of getObjectKeys(version.changesJSON); track field) {\n <div class=\"change-item\">\n <span class=\"field-name\">{{ getFieldDisplayNamePublic(field) }}</span>\n @if (version.changesJSON[field].oldValue !== undefined) {\n <span class=\"change-arrow\">\n <span class=\"old-value\">{{ formatChangeValue(version.changesJSON[field].oldValue) }}</span>\n <i class=\"fa-solid fa-arrow-right\"></i>\n <span class=\"new-value\">{{ formatChangeValue(version.changesJSON[field].newValue) }}</span>\n </span>\n } @else {\n <span class=\"new-value\">{{ formatChangeValue(version.changesJSON[field].newValue) }}</span>\n }\n </div>\n }\n </div>\n </div>\n }\n </div>\n </div>\n }\n </div>\n } @else {\n <div class=\"no-versions-message\">\n <i class=\"fa-solid fa-info-circle text-muted\"></i>\n <p class=\"text-muted\">No version history available for this prompt.</p>\n @if (prompt && !prompt.EntityInfo.TrackRecordChanges) {\n <p class=\"text-muted\"><small>Record changes tracking may not be enabled for prompts.</small></p>\n }\n </div>\n }\n </div>\n }\n \n <!-- Comparison View -->\n @if (currentView === 'comparison') {\n <div class=\"comparison-container\">\n <!-- Version selectors -->\n <div class=\"comparison-selectors\">\n <div class=\"selector-group\">\n <label class=\"form-label\">Compare from:</label>\n <select class=\"form-select\" [(ngModel)]=\"compareFromVersion\" (ngModelChange)=\"generateComparisonPublic()\">\n @for (version of versions; track version.id) {\n <option [ngValue]=\"version\">{{ getVersionLabel(version) }} - {{ version.changedAt | date:'short' }}</option>\n }\n </select>\n </div>\n \n <div class=\"comparison-arrow\">\n <i class=\"fa-solid fa-arrow-right\"></i>\n </div>\n \n <div class=\"selector-group\">\n <label class=\"form-label\">Compare to:</label>\n <select class=\"form-select\" [(ngModel)]=\"compareToVersion\" (ngModelChange)=\"generateComparisonPublic()\">\n @for (version of versions; track version.id) {\n <option [ngValue]=\"version\">{{ getVersionLabel(version) }} - {{ version.changedAt | date:'short' }}</option>\n }\n </select>\n </div>\n </div>\n \n <!-- Comparison results -->\n @if (comparisonResult) {\n <div class=\"comparison-results\">\n <div class=\"comparison-header\">\n <h6 class=\"comparison-title\">\n <i class=\"fa-solid fa-code-compare\"></i>\n Changes between {{ getVersionLabel(comparisonResult.fromVersion) }} and {{ getVersionLabel(comparisonResult.toVersion) }}\n </h6>\n <div class=\"changes-count\">\n {{ comparisonResult.differences.length }} change(s) found\n </div>\n </div>\n \n @if (comparisonResult.differences.length > 0) {\n <div class=\"differences-list\">\n @for (diff of comparisonResult.differences; track diff.fieldName) {\n <div class=\"difference-item\" [class]=\"'diff-' + diff.changeType\">\n <div class=\"diff-header\">\n <div class=\"field-info\">\n <strong class=\"field-name\">{{ diff.displayName }}</strong>\n <span class=\"change-type badge\" \n [class.badge-success]=\"diff.changeType === 'added'\"\n [class.badge-warning]=\"diff.changeType === 'modified'\"\n [class.badge-danger]=\"diff.changeType === 'removed'\">\n {{ diff.changeType }}\n </span>\n @if (diff.isTemplate) {\n <span class=\"template-badge badge badge-info\">Template</span>\n }\n </div>\n </div>\n \n <div class=\"diff-content\">\n @if (diff.changeType === 'modified') {\n <div class=\"side-by-side-diff\">\n <div class=\"diff-old\">\n <h6 class=\"diff-label\">Before:</h6>\n <div class=\"diff-value old-value\">\n @if (diff.isTemplate && diff.fieldName === 'TemplateText') {\n <pre class=\"template-content\">{{ diff.oldValue }}</pre>\n } @else {\n {{ formatChangeValue(diff.oldValue) }}\n }\n </div>\n </div>\n \n <div class=\"diff-new\">\n <h6 class=\"diff-label\">After:</h6>\n <div class=\"diff-value new-value\">\n @if (diff.isTemplate && diff.fieldName === 'TemplateText') {\n <pre class=\"template-content\">{{ diff.newValue }}</pre>\n } @else {\n {{ formatChangeValue(diff.newValue) }}\n }\n </div>\n </div>\n </div>\n } @else if (diff.changeType === 'added') {\n <div class=\"diff-added\">\n <h6 class=\"diff-label\">Added:</h6>\n <div class=\"diff-value new-value\">{{ formatChangeValue(diff.newValue) }}</div>\n </div>\n } @else if (diff.changeType === 'removed') {\n <div class=\"diff-removed\">\n <h6 class=\"diff-label\">Removed:</h6>\n <div class=\"diff-value old-value\">{{ formatChangeValue(diff.oldValue) }}</div>\n </div>\n }\n </div>\n </div>\n }\n </div>\n } @else {\n <div class=\"no-differences\">\n <i class=\"fa-solid fa-check-circle text-success\"></i>\n <p class=\"text-muted\">No differences found between the selected versions.</p>\n </div>\n }\n </div>\n }\n </div>\n }\n \n <!-- Details View -->\n @if (currentView === 'details') {\n <div class=\"details-container\">\n @if (selectedVersion) {\n <div class=\"version-details\">\n <div class=\"details-header\">\n <h6 class=\"details-title\">{{ getVersionLabel(selectedVersion) }}</h6>\n <div class=\"details-meta\">\n <span class=\"change-date\">{{ selectedVersion.changedAt | date:'full' }}</span>\n <span class=\"changed-by\">Changed by {{ selectedVersion.changedBy }}</span>\n </div>\n </div>\n \n <div class=\"details-content\">\n <div class=\"detail-section\">\n <h6 class=\"section-title\">Change Information</h6>\n <div class=\"detail-grid\">\n <div class=\"detail-item\">\n <span class=\"detail-label\">Type:</span>\n <span class=\"detail-value\">\n <i class=\"fa-solid\" [class]=\"getChangeTypeIcon(selectedVersion.changeType)\"></i>\n {{ selectedVersion.changeType }}\n </span>\n </div>\n \n <div class=\"detail-item\">\n <span class=\"detail-label\">Source:</span>\n <span class=\"detail-value\">{{ selectedVersion.changeSource }}</span>\n </div>\n \n <div class=\"detail-item\">\n <span class=\"detail-label\">Description:</span>\n <span class=\"detail-value\">{{ selectedVersion.changesDescription }}</span>\n </div>\n </div>\n </div>\n \n @if (selectedVersion.fullRecordJSON) {\n <div class=\"detail-section\">\n <h6 class=\"section-title\">Record State</h6>\n <div class=\"json-viewer\">\n <pre class=\"json-content\">{{ selectedVersion.fullRecordJSON | json }}</pre>\n </div>\n </div>\n }\n \n @if (selectedVersion.templateContent) {\n <div class=\"detail-section\">\n <h6 class=\"section-title\">Template Content</h6>\n <div class=\"template-viewer\">\n <pre class=\"template-content\">{{ selectedVersion.templateContent.TemplateText }}</pre>\n </div>\n </div>\n }\n </div>\n </div>\n } @else {\n <div class=\"no-selection-message\">\n <i class=\"fa-solid fa-hand-pointer text-muted\"></i>\n <p class=\"text-muted\">Select a version from the timeline to view details.</p>\n </div>\n }\n </div>\n }\n }\n \n <!-- Error state -->\n @if (error) {\n <div class=\"error-container\">\n <div class=\"alert alert-danger\" role=\"alert\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n {{ error }}\n <button type=\"button\" class=\"btn btn-sm btn-outline-danger ms-2\" (click)=\"refreshHistory()\">\n <i class=\"fa-solid fa-refresh\"></i>\n Retry\n </button>\n </div>\n </div>\n }\n }\n</div>", styles: [".prompt-version-control {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: #f8f9fa;\n}\n.prompt-version-control .version-toolbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem;\n background: white;\n border-bottom: 1px solid #dee2e6;\n flex-shrink: 0;\n gap: 1rem;\n flex-wrap: wrap;\n}\n.prompt-version-control .version-toolbar .toolbar-section {\n display: flex;\n align-items: center;\n gap: 1rem;\n flex-wrap: wrap;\n}\n.prompt-version-control .version-toolbar .toolbar-section .toolbar-title {\n margin: 0;\n color: #495057;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-weight: 600;\n}\n.prompt-version-control .version-toolbar .toolbar-section .toolbar-title i {\n color: #0d6efd;\n}\n.prompt-version-control .version-toolbar .toolbar-section .toolbar-title .prompt-name {\n font-weight: 400;\n color: #6c757d;\n}\n.prompt-version-control .version-toolbar .toolbar-section .filter-controls,\n.prompt-version-control .version-toolbar .toolbar-section .search-controls {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.prompt-version-control .version-toolbar .toolbar-section .filter-controls .form-label,\n.prompt-version-control .version-toolbar .toolbar-section .search-controls .form-label {\n margin: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n.prompt-version-control .version-toolbar .toolbar-section .filter-controls .form-select,\n.prompt-version-control .version-toolbar .toolbar-section .filter-controls .form-control,\n.prompt-version-control .version-toolbar .toolbar-section .search-controls .form-select,\n.prompt-version-control .version-toolbar .toolbar-section .search-controls .form-control {\n min-width: 120px;\n}\n.prompt-version-control .version-toolbar .toolbar-section .filter-controls .form-check,\n.prompt-version-control .version-toolbar .toolbar-section .search-controls .form-check {\n margin: 0;\n}\n.prompt-version-control .version-toolbar .toolbar-section .filter-controls .form-check .form-check-label,\n.prompt-version-control .version-toolbar .toolbar-section .search-controls .form-check .form-check-label {\n font-size: 0.875rem;\n}\n.prompt-version-control .version-toolbar .toolbar-section .action-buttons {\n display: flex;\n gap: 0.5rem;\n}\n.prompt-version-control .version-toolbar .toolbar-section .action-buttons .btn {\n font-size: 0.875rem;\n}\n.prompt-version-control .loading-container {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.prompt-version-control .loading-container .loading-content {\n text-align: center;\n}\n.prompt-version-control .loading-container .loading-content .loading-message {\n margin-top: 1rem;\n color: #6c757d;\n}\n.prompt-version-control .timeline-container {\n flex: 1;\n padding: 1rem;\n overflow-y: auto;\n}\n.prompt-version-control .timeline-container .version-timeline {\n max-width: 800px;\n margin: 0 auto;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item {\n display: flex;\n position: relative;\n margin-bottom: 2rem;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item:hover .timeline-content {\n box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.1);\n transform: translateY(-1px);\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item.selected .timeline-content {\n border-color: #0d6efd;\n box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.25);\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item.active .timeline-marker .marker-icon {\n border-color: #28a745;\n background-color: #28a745;\n color: white;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-marker {\n display: flex;\n flex-direction: column;\n align-items: center;\n margin-right: 1.5rem;\n flex-shrink: 0;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-marker .marker-icon {\n width: 2.5rem;\n height: 2.5rem;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n border: 3px solid;\n background: white;\n font-size: 1rem;\n z-index: 2;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-marker .marker-icon.change-create {\n border-color: #28a745;\n color: #28a745;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-marker .marker-icon.change-update {\n border-color: #0d6efd;\n color: #0d6efd;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-marker .marker-icon.change-delete {\n border-color: #dc3545;\n color: #dc3545;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-marker .timeline-line {\n width: 2px;\n flex: 1;\n background: #dee2e6;\n margin-top: 0.5rem;\n min-height: 2rem;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-content {\n flex: 1;\n background: white;\n border: 1px solid #dee2e6;\n border-radius: 0.5rem;\n padding: 1.5rem;\n transition: all 0.2s ease;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-content .version-header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 1rem;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-content .version-header .version-info .version-label {\n margin: 0 0 0.5rem 0;\n color: #495057;\n font-weight: 600;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-content .version-header .version-info .version-meta {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n font-size: 0.875rem;\n color: #6c757d;\n flex-wrap: wrap;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-content .version-header .version-info .version-meta .change-date {\n font-weight: 500;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-content .version-header .version-info .version-meta .badge {\n font-size: 0.75rem;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-content .version-header .version-actions {\n display: flex;\n gap: 0.5rem;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-content .version-header .version-actions .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.75rem;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-content .version-description {\n color: #495057;\n margin-bottom: 1rem;\n line-height: 1.5;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-content .changes-summary .changes-list .change-item {\n display: flex;\n align-items: center;\n padding: 0.5rem;\n background: #f8f9fa;\n border-radius: 0.375rem;\n margin-bottom: 0.5rem;\n font-size: 0.875rem;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-content .changes-summary .changes-list .change-item .field-name {\n font-weight: 500;\n color: #495057;\n margin-right: 0.75rem;\n min-width: 100px;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-content .changes-summary .changes-list .change-item .change-arrow {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-content .changes-summary .changes-list .change-item .change-arrow .old-value {\n color: #dc3545;\n text-decoration: line-through;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-content .changes-summary .changes-list .change-item .change-arrow .new-value {\n color: #28a745;\n font-weight: 500;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-content .changes-summary .changes-list .change-item .change-arrow i {\n color: #6c757d;\n}\n.prompt-version-control .timeline-container .no-versions-message {\n text-align: center;\n padding: 3rem 1rem;\n color: #6c757d;\n}\n.prompt-version-control .timeline-container .no-versions-message i {\n font-size: 3rem;\n margin-bottom: 1rem;\n display: block;\n opacity: 0.5;\n}\n.prompt-version-control .timeline-container .no-versions-message p {\n margin: 0.5rem 0;\n font-size: 1rem;\n line-height: 1.5;\n}\n.prompt-version-control .comparison-container {\n flex: 1;\n padding: 1rem;\n overflow-y: auto;\n}\n.prompt-version-control .comparison-container .comparison-selectors {\n display: flex;\n align-items: end;\n gap: 1rem;\n margin-bottom: 2rem;\n padding: 1rem;\n background: white;\n border: 1px solid #dee2e6;\n border-radius: 0.5rem;\n}\n.prompt-version-control .comparison-container .comparison-selectors .selector-group {\n flex: 1;\n}\n.prompt-version-control .comparison-container .comparison-selectors .selector-group .form-label {\n font-weight: 500;\n color: #495057;\n}\n.prompt-version-control .comparison-container .comparison-selectors .comparison-arrow {\n padding-bottom: 0.375rem;\n color: #6c757d;\n font-size: 1.25rem;\n}\n.prompt-version-control .comparison-container .comparison-results {\n background: white;\n border: 1px solid #dee2e6;\n border-radius: 0.5rem;\n overflow: hidden;\n}\n.prompt-version-control .comparison-container .comparison-results .comparison-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem;\n background: #f8f9fa;\n border-bottom: 1px solid #dee2e6;\n}\n.prompt-version-control .comparison-container .comparison-results .comparison-header .comparison-title {\n margin: 0;\n color: #495057;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.prompt-version-control .comparison-container .comparison-results .comparison-header .changes-count {\n font-size: 0.875rem;\n color: #6c757d;\n font-weight: 500;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item {\n border-bottom: 1px solid #f1f3f4;\n padding: 1.5rem;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item:last-child {\n border-bottom: none;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item.diff-added {\n border-left: 4px solid #28a745;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item.diff-modified {\n border-left: 4px solid #ffc107;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item.diff-removed {\n border-left: 4px solid #dc3545;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-header {\n margin-bottom: 1rem;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-header .field-info {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-header .field-info .field-name {\n font-size: 1rem;\n color: #495057;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-header .field-info .badge {\n font-size: 0.75rem;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-header .field-info .badge.template-badge {\n background-color: #6f42c1;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-content .side-by-side-diff {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 1rem;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-content .side-by-side-diff .diff-old .diff-label,\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-content .side-by-side-diff .diff-new .diff-label {\n font-size: 0.875rem;\n font-weight: 600;\n margin-bottom: 0.5rem;\n color: #6c757d;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-content .side-by-side-diff .diff-old .diff-value,\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-content .side-by-side-diff .diff-new .diff-value {\n padding: 1rem;\n border-radius: 0.375rem;\n font-family: \"Fira Code\", Monaco, Consolas, monospace;\n font-size: 0.875rem;\n line-height: 1.5;\n white-space: pre-wrap;\n word-break: break-word;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-content .side-by-side-diff .diff-old .diff-value.old-value,\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-content .side-by-side-diff .diff-new .diff-value.old-value {\n background: #fff5f5;\n border: 1px solid #fed7d7;\n color: #c53030;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-content .side-by-side-diff .diff-old .diff-value.new-value,\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-content .side-by-side-diff .diff-new .diff-value.new-value {\n background: #f0fff4;\n border: 1px solid #9ae6b4;\n color: #2f855a;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-content .side-by-side-diff .diff-old .diff-value .template-content,\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-content .side-by-side-diff .diff-new .diff-value .template-content {\n margin: 0;\n background: transparent;\n border: none;\n padding: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n white-space: pre-wrap;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-content .diff-added .diff-label,\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-content .diff-removed .diff-label {\n font-size: 0.875rem;\n font-weight: 600;\n margin-bottom: 0.5rem;\n color: #6c757d;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-content .diff-added .diff-value,\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-content .diff-removed .diff-value {\n padding: 1rem;\n border-radius: 0.375rem;\n font-family: \"Fira Code\", Monaco, Consolas, monospace;\n font-size: 0.875rem;\n line-height: 1.5;\n white-space: pre-wrap;\n word-break: break-word;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-content .diff-added .diff-value {\n background: #f0fff4;\n border: 1px solid #9ae6b4;\n color: #2f855a;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-content .diff-removed .diff-value {\n background: #fff5f5;\n border: 1px solid #fed7d7;\n color: #c53030;\n}\n.prompt-version-control .comparison-container .comparison-results .no-differences {\n text-align: center;\n padding: 3rem 1rem;\n}\n.prompt-version-control .comparison-container .comparison-results .no-differences i {\n font-size: 3rem;\n margin-bottom: 1rem;\n display: block;\n}\n.prompt-version-control .comparison-container .comparison-results .no-differences p {\n margin: 0;\n font-size: 1rem;\n}\n.prompt-version-control .details-container {\n flex: 1;\n padding: 1rem;\n overflow-y: auto;\n}\n.prompt-version-control .details-container .version-details {\n max-width: 800px;\n margin: 0 auto;\n background: white;\n border: 1px solid #dee2e6;\n border-radius: 0.5rem;\n overflow: hidden;\n}\n.prompt-version-control .details-container .version-details .details-header {\n padding: 1.5rem;\n background: #f8f9fa;\n border-bottom: 1px solid #dee2e6;\n}\n.prompt-version-control .details-container .version-details .details-header .details-title {\n margin: 0 0 0.5rem 0;\n color: #495057;\n font-weight: 600;\n}\n.prompt-version-control .details-container .version-details .details-header .details-meta {\n display: flex;\n gap: 1rem;\n font-size: 0.875rem;\n color: #6c757d;\n flex-wrap: wrap;\n}\n.prompt-version-control .details-container .version-details .details-content {\n padding: 1.5rem;\n}\n.prompt-version-control .details-container .version-details .details-content .detail-section {\n margin-bottom: 2rem;\n}\n.prompt-version-control .details-container .version-details .details-content .detail-section:last-child {\n margin-bottom: 0;\n}\n.prompt-version-control .details-container .version-details .details-content .detail-section .section-title {\n margin: 0 0 1rem 0;\n color: #495057;\n font-weight: 600;\n font-size: 1rem;\n border-bottom: 1px solid #e9ecef;\n padding-bottom: 0.5rem;\n}\n.prompt-version-control .details-container .version-details .details-content .detail-section .detail-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 1rem;\n}\n.prompt-version-control .details-container .version-details .details-content .detail-section .detail-grid .detail-item {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n}\n.prompt-version-control .details-container .version-details .details-content .detail-section .detail-grid .detail-item .detail-label {\n font-size: 0.875rem;\n font-weight: 500;\n color: #6c757d;\n}\n.prompt-version-control .details-container .version-details .details-content .detail-section .detail-grid .detail-item .detail-value {\n font-size: 0.875rem;\n color: #495057;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.prompt-version-control .details-container .version-details .details-content .detail-section .json-viewer .json-content,\n.prompt-version-control .details-container .version-details .details-content .detail-section .json-viewer .template-content,\n.prompt-version-control .details-container .version-details .details-content .detail-section .template-viewer .json-content,\n.prompt-version-control .details-container .version-details .details-content .detail-section .template-viewer .template-content {\n background: #f8f9fa;\n border: 1px solid #dee2e6;\n border-radius: 0.375rem;\n padding: 1rem;\n margin: 0;\n font-family: \"Fira Code\", Monaco, Consolas, monospace;\n font-size: 0.875rem;\n line-height: 1.5;\n overflow-x: auto;\n max-height: 400px;\n overflow-y: auto;\n}\n.prompt-version-control .details-container .no-selection-message {\n text-align: center;\n padding: 3rem 1rem;\n color: #6c757d;\n}\n.prompt-version-control .details-container .no-selection-message i {\n font-size: 3rem;\n margin-bottom: 1rem;\n display: block;\n opacity: 0.5;\n}\n.prompt-version-control .details-container .no-selection-message p {\n margin: 0;\n font-size: 1rem;\n line-height: 1.5;\n}\n.prompt-version-control .error-container {\n padding: 1rem;\n}\n.prompt-version-control .error-container .alert {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n@media (max-width: 1200px) {\n .prompt-version-control .version-toolbar .toolbar-section {\n min-width: 100%;\n justify-content: space-between;\n }\n .prompt-version-control .comparison-container .comparison-selectors {\n flex-direction: column;\n align-items: stretch;\n }\n .prompt-version-control .comparison-container .comparison-selectors .comparison-arrow {\n align-self: center;\n padding: 0.5rem 0;\n }\n .prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-content .side-by-side-diff {\n grid-template-columns: 1fr;\n gap: 0.5rem;\n }\n}\n@media (max-width: 768px) {\n .prompt-version-control .version-toolbar {\n padding: 0.75rem;\n }\n .prompt-version-control .version-toolbar .toolbar-section {\n flex-wrap: wrap;\n gap: 0.5rem;\n }\n .prompt-version-control .timeline-container {\n padding: 0.75rem;\n }\n .prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-marker {\n margin-right: 1rem;\n }\n .prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-marker .marker-icon {\n width: 2rem;\n height: 2rem;\n font-size: 0.875rem;\n }\n .prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-content {\n padding: 1rem;\n }\n .prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-content .version-header {\n flex-direction: column;\n align-items: flex-start;\n gap: 0.75rem;\n }\n .prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-content .version-header .version-actions {\n align-self: flex-end;\n }\n .prompt-version-control .comparison-container,\n .prompt-version-control .details-container {\n padding: 0.75rem;\n }\n .prompt-selector-section {\n padding: 2rem;\n background: white;\n border-radius: 8px;\n margin: 1rem;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n }\n .prompt-selector-section .section-title {\n color: #495057;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-weight: 600;\n margin-bottom: 0.5rem;\n }\n .prompt-selector-section .section-title i {\n color: #007bff;\n }\n .prompt-selector-section .prompt-selector .search-box .input-group-text {\n background: #f8f9fa;\n border-color: #ced4da;\n }\n .prompt-selector-section .prompt-selector .search-box .input-group-text i {\n color: #6c757d;\n }\n .prompt-selector-section .prompt-selector .search-box .form-control {\n border-color: #ced4da;\n }\n .prompt-selector-section .prompt-selector .search-box .form-control:focus {\n border-color: #007bff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n }\n .prompt-selector-section .prompt-selector .prompts-list {\n max-height: 400px;\n overflow-y: auto;\n border: 1px solid #dee2e6;\n border-radius: 4px;\n }\n .prompt-selector-section .prompt-selector .prompts-list .empty-state {\n text-align: center;\n padding: 2rem;\n }\n .prompt-selector-section .prompt-selector .prompts-list .empty-state i {\n font-size: 2rem;\n margin-bottom: 0.5rem;\n }\n .prompt-selector-section .prompt-selector .prompts-list .prompt-item {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0.75rem 1rem;\n border-bottom: 1px solid #dee2e6;\n cursor: pointer;\n transition: background-color 0.2s;\n }\n .prompt-selector-section .prompt-selector .prompts-list .prompt-item:last-child {\n border-bottom: none;\n }\n .prompt-selector-section .prompt-selector .prompts-list .prompt-item:hover {\n background-color: #f8f9fa;\n }\n .prompt-selector-section .prompt-selector .prompts-list .prompt-item .prompt-info {\n flex: 1;\n }\n .prompt-selector-section .prompt-selector .prompts-list .prompt-item .prompt-info .prompt-title {\n margin: 0 0 0.25rem 0;\n font-weight: 600;\n color: #495057;\n }\n .prompt-selector-section .prompt-selector .prompts-list .prompt-item .prompt-info .prompt-description {\n margin: 0;\n font-size: 0.875rem;\n color: #6c757d;\n line-height: 1.4;\n }\n .prompt-selector-section .prompt-selector .prompts-list .prompt-item .prompt-actions {\n color: #007bff;\n opacity: 0.7;\n transition: opacity 0.2s;\n }\n .prompt-selector-section .prompt-selector .prompts-list .prompt-item:hover .prompt-actions {\n opacity: 1;\n }\n}\n"] }]
|
|
1171
|
+
args: [{ standalone: false, selector: 'app-prompt-version-control', template: "<div class=\"prompt-version-control\">\n <!-- Prompt Selector (when no prompt selected) -->\n @if (!prompt) {\n <div class=\"prompt-selector-section\">\n <h5 class=\"section-title\">\n <i class=\"fa-solid fa-history\"></i>\n Version History\n </h5>\n <p class=\"text-muted mb-3\">Select a prompt to view its version history</p>\n \n <div class=\"prompt-selector\">\n <div class=\"search-box mb-3\">\n <div class=\"input-group\">\n <span class=\"input-group-text\">\n <i class=\"fa-solid fa-search\"></i>\n </span>\n <input \n type=\"text\" \n class=\"form-control\" \n placeholder=\"Search prompts...\"\n [ngModel]=\"promptSearchTerm$.value\"\n (ngModelChange)=\"onPromptSearchChange($event)\">\n </div>\n </div>\n \n <div class=\"prompts-list\">\n @if (availablePrompts.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-comment-dots text-muted\"></i>\n <p class=\"text-muted\">No prompts available</p>\n </div>\n } @else {\n @for (promptItem of filteredAvailablePrompts; track promptItem.ID) {\n <div class=\"prompt-item\" (click)=\"selectPromptForHistory(promptItem)\">\n <div class=\"prompt-info\">\n <h6 class=\"prompt-title\">{{ promptItem.Name }}</h6>\n @if (promptItem.Description) {\n <p class=\"prompt-description\">{{ promptItem.Description }}</p>\n }\n </div>\n <div class=\"prompt-actions\">\n <i class=\"fa-solid fa-arrow-right\"></i>\n </div>\n </div>\n }\n }\n </div>\n </div>\n </div>\n } @else {\n <!-- Header toolbar -->\n <div class=\"version-toolbar\">\n <div class=\"toolbar-section\">\n <h5 class=\"toolbar-title\">\n <i class=\"fa-solid fa-history\"></i>\n Version History\n @if (prompt) {\n <span class=\"prompt-name\">- {{ prompt.Name }}</span>\n }\n </h5>\n \n <div class=\"view-mode-toggle\">\n <div class=\"btn-group btn-group-sm\" role=\"group\">\n <input type=\"radio\" class=\"btn-check\" name=\"view\" id=\"timelineView\" value=\"timeline\" [(ngModel)]=\"currentView\" (ngModelChange)=\"onViewChange($event)\">\n <label class=\"btn btn-outline-primary\" for=\"timelineView\">\n <i class=\"fa-solid fa-timeline\"></i>\n Timeline\n </label>\n \n <input type=\"radio\" class=\"btn-check\" name=\"view\" id=\"comparisonView\" value=\"comparison\" [(ngModel)]=\"currentView\" (ngModelChange)=\"onViewChange($event)\">\n <label class=\"btn btn-outline-primary\" for=\"comparisonView\">\n <i class=\"fa-solid fa-code-compare\"></i>\n Compare\n </label>\n \n <input type=\"radio\" class=\"btn-check\" name=\"view\" id=\"detailsView\" value=\"details\" [(ngModel)]=\"currentView\" (ngModelChange)=\"onViewChange($event)\">\n <label class=\"btn btn-outline-primary\" for=\"detailsView\">\n <i class=\"fa-solid fa-list\"></i>\n Details\n </label>\n </div>\n </div>\n </div>\n \n <div class=\"toolbar-section\">\n <div class=\"filter-controls\">\n <label class=\"form-label\">Filter:</label>\n <select class=\"form-select form-select-sm\" [(ngModel)]=\"filterBy\" (ngModelChange)=\"onFilterChange($event)\">\n <option value=\"all\">All Changes</option>\n <option value=\"updates\">Updates Only</option>\n <option value=\"major\">Major Changes</option>\n <option value=\"template\">Template Changes</option>\n </select>\n \n <div class=\"form-check form-switch\">\n <input class=\"form-check-input\" type=\"checkbox\" id=\"showSystem\" [(ngModel)]=\"showSystemChanges\" (ngModelChange)=\"applyFiltersPublic()\">\n <label class=\"form-check-label\" for=\"showSystem\">System</label>\n </div>\n </div>\n \n <div class=\"search-controls\">\n <input \n type=\"text\" \n class=\"form-control form-control-sm\" \n placeholder=\"Search changes...\"\n [ngModel]=\"searchTerm$.value\" (ngModelChange)=\"onSearchChange($event)\">\n </div>\n </div>\n \n <div class=\"toolbar-section\">\n <div class=\"action-buttons\">\n <button type=\"button\" class=\"btn btn-sm btn-outline-secondary\" (click)=\"onSortDirectionChange()\" [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 Sort\n </button>\n \n <button type=\"button\" class=\"btn btn-sm btn-outline-secondary\" (click)=\"refreshHistory()\" [disabled]=\"isLoading\" title=\"Refresh history\">\n <i class=\"fa-solid fa-refresh\" [class.fa-spin]=\"isLoading\"></i>\n Refresh\n </button>\n \n <button type=\"button\" class=\"btn btn-sm btn-outline-info\" (click)=\"exportVersionHistory()\" title=\"Export history\">\n <i class=\"fa-solid fa-download\"></i>\n Export\n </button>\n </div>\n </div>\n </div>\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 \n <!-- Timeline View -->\n @if (currentView === 'timeline') {\n <div class=\"timeline-container\">\n @if (versions.length > 0) {\n <div class=\"version-timeline\">\n @for (version of versions; track version.id; let i = $index) {\n <div class=\"timeline-item\" \n [class.selected]=\"selectedVersion?.id === version.id\"\n [class.active]=\"version.isActive\"\n (click)=\"onVersionSelect(version)\">\n \n <div class=\"timeline-marker\">\n <div class=\"marker-icon\" [class]=\"getChangeTypeClass(version.changeType)\">\n <i class=\"fa-solid\" [class]=\"getChangeTypeIcon(version.changeType)\"></i>\n </div>\n @if (i < versions.length - 1) {\n <div class=\"timeline-line\"></div>\n }\n </div>\n \n <div class=\"timeline-content\">\n <div class=\"version-header\">\n <div class=\"version-info\">\n <h6 class=\"version-label\">{{ getVersionLabel(version) }}</h6>\n <div class=\"version-meta\">\n <span class=\"change-date\">{{ version.changedAt | date:'medium' }}</span>\n <span class=\"changed-by\">by {{ version.changedBy }}</span>\n <span class=\"change-source badge\" [class.badge-primary]=\"version.changeSource === 'Internal'\" [class.badge-secondary]=\"version.changeSource === 'External'\">\n {{ version.changeSource }}\n </span>\n </div>\n </div>\n \n <div class=\"version-actions\">\n @if (showComparison && i < versions.length - 1) {\n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-primary\"\n (click)=\"$event.stopPropagation(); startComparison(version)\"\n title=\"Compare with next version\">\n <i class=\"fa-solid fa-code-compare\"></i>\n </button>\n }\n \n @if (showRestoreActions && version.canRestore) {\n <button \n type=\"button\" \n class=\"btn btn-sm btn-outline-success\"\n (click)=\"$event.stopPropagation(); onVersionRestore(version)\"\n title=\"Restore this version\">\n <i class=\"fa-solid fa-undo\"></i>\n </button>\n }\n </div>\n </div>\n \n <div class=\"version-description\">\n {{ version.changesDescription }}\n </div>\n \n @if (version.changesJSON && timelineConfig.showDiffs) {\n <div class=\"changes-summary\">\n <div class=\"changes-list\">\n @for (field of getObjectKeys(version.changesJSON); track field) {\n <div class=\"change-item\">\n <span class=\"field-name\">{{ getFieldDisplayNamePublic(field) }}</span>\n @if (version.changesJSON[field].oldValue !== undefined) {\n <span class=\"change-arrow\">\n <span class=\"old-value\">{{ formatChangeValue(version.changesJSON[field].oldValue) }}</span>\n <i class=\"fa-solid fa-arrow-right\"></i>\n <span class=\"new-value\">{{ formatChangeValue(version.changesJSON[field].newValue) }}</span>\n </span>\n } @else {\n <span class=\"new-value\">{{ formatChangeValue(version.changesJSON[field].newValue) }}</span>\n }\n </div>\n }\n </div>\n </div>\n }\n </div>\n </div>\n }\n </div>\n } @else {\n <div class=\"no-versions-message\">\n <i class=\"fa-solid fa-info-circle text-muted\"></i>\n <p class=\"text-muted\">No version history available for this prompt.</p>\n @if (prompt && !prompt.EntityInfo.TrackRecordChanges) {\n <p class=\"text-muted\"><small>Record changes tracking may not be enabled for prompts.</small></p>\n }\n </div>\n }\n </div>\n }\n \n <!-- Comparison View -->\n @if (currentView === 'comparison') {\n <div class=\"comparison-container\">\n <!-- Version selectors -->\n <div class=\"comparison-selectors\">\n <div class=\"selector-group\">\n <label class=\"form-label\">Compare from:</label>\n <select class=\"form-select\" [(ngModel)]=\"compareFromVersion\" (ngModelChange)=\"generateComparisonPublic()\">\n @for (version of versions; track version.id) {\n <option [ngValue]=\"version\">{{ getVersionLabel(version) }} - {{ version.changedAt | date:'short' }}</option>\n }\n </select>\n </div>\n \n <div class=\"comparison-arrow\">\n <i class=\"fa-solid fa-arrow-right\"></i>\n </div>\n \n <div class=\"selector-group\">\n <label class=\"form-label\">Compare to:</label>\n <select class=\"form-select\" [(ngModel)]=\"compareToVersion\" (ngModelChange)=\"generateComparisonPublic()\">\n @for (version of versions; track version.id) {\n <option [ngValue]=\"version\">{{ getVersionLabel(version) }} - {{ version.changedAt | date:'short' }}</option>\n }\n </select>\n </div>\n </div>\n \n <!-- Comparison results -->\n @if (comparisonResult) {\n <div class=\"comparison-results\">\n <div class=\"comparison-header\">\n <h6 class=\"comparison-title\">\n <i class=\"fa-solid fa-code-compare\"></i>\n Changes between {{ getVersionLabel(comparisonResult.fromVersion) }} and {{ getVersionLabel(comparisonResult.toVersion) }}\n </h6>\n <div class=\"changes-count\">\n {{ comparisonResult.differences.length }} change(s) found\n </div>\n </div>\n \n @if (comparisonResult.differences.length > 0) {\n <div class=\"differences-list\">\n @for (diff of comparisonResult.differences; track diff.fieldName) {\n <div class=\"difference-item\" [class]=\"'diff-' + diff.changeType\">\n <div class=\"diff-header\">\n <div class=\"field-info\">\n <strong class=\"field-name\">{{ diff.displayName }}</strong>\n <span class=\"change-type badge\" \n [class.badge-success]=\"diff.changeType === 'added'\"\n [class.badge-warning]=\"diff.changeType === 'modified'\"\n [class.badge-danger]=\"diff.changeType === 'removed'\">\n {{ diff.changeType }}\n </span>\n @if (diff.isTemplate) {\n <span class=\"template-badge badge badge-info\">Template</span>\n }\n </div>\n </div>\n \n <div class=\"diff-content\">\n @if (diff.changeType === 'modified') {\n <div class=\"side-by-side-diff\">\n <div class=\"diff-old\">\n <h6 class=\"diff-label\">Before:</h6>\n <div class=\"diff-value old-value\">\n @if (diff.isTemplate && diff.fieldName === 'TemplateText') {\n <pre class=\"template-content\">{{ diff.oldValue }}</pre>\n } @else {\n {{ formatChangeValue(diff.oldValue) }}\n }\n </div>\n </div>\n \n <div class=\"diff-new\">\n <h6 class=\"diff-label\">After:</h6>\n <div class=\"diff-value new-value\">\n @if (diff.isTemplate && diff.fieldName === 'TemplateText') {\n <pre class=\"template-content\">{{ diff.newValue }}</pre>\n } @else {\n {{ formatChangeValue(diff.newValue) }}\n }\n </div>\n </div>\n </div>\n } @else if (diff.changeType === 'added') {\n <div class=\"diff-added\">\n <h6 class=\"diff-label\">Added:</h6>\n <div class=\"diff-value new-value\">{{ formatChangeValue(diff.newValue) }}</div>\n </div>\n } @else if (diff.changeType === 'removed') {\n <div class=\"diff-removed\">\n <h6 class=\"diff-label\">Removed:</h6>\n <div class=\"diff-value old-value\">{{ formatChangeValue(diff.oldValue) }}</div>\n </div>\n }\n </div>\n </div>\n }\n </div>\n } @else {\n <div class=\"no-differences\">\n <i class=\"fa-solid fa-check-circle text-success\"></i>\n <p class=\"text-muted\">No differences found between the selected versions.</p>\n </div>\n }\n </div>\n }\n </div>\n }\n \n <!-- Details View -->\n @if (currentView === 'details') {\n <div class=\"details-container\">\n @if (selectedVersion) {\n <div class=\"version-details\">\n <div class=\"details-header\">\n <h6 class=\"details-title\">{{ getVersionLabel(selectedVersion) }}</h6>\n <div class=\"details-meta\">\n <span class=\"change-date\">{{ selectedVersion.changedAt | date:'full' }}</span>\n <span class=\"changed-by\">Changed by {{ selectedVersion.changedBy }}</span>\n </div>\n </div>\n \n <div class=\"details-content\">\n <div class=\"detail-section\">\n <h6 class=\"section-title\">Change Information</h6>\n <div class=\"detail-grid\">\n <div class=\"detail-item\">\n <span class=\"detail-label\">Type:</span>\n <span class=\"detail-value\">\n <i class=\"fa-solid\" [class]=\"getChangeTypeIcon(selectedVersion.changeType)\"></i>\n {{ selectedVersion.changeType }}\n </span>\n </div>\n \n <div class=\"detail-item\">\n <span class=\"detail-label\">Source:</span>\n <span class=\"detail-value\">{{ selectedVersion.changeSource }}</span>\n </div>\n \n <div class=\"detail-item\">\n <span class=\"detail-label\">Description:</span>\n <span class=\"detail-value\">{{ selectedVersion.changesDescription }}</span>\n </div>\n </div>\n </div>\n \n @if (selectedVersion.fullRecordJSON) {\n <div class=\"detail-section\">\n <h6 class=\"section-title\">Record State</h6>\n <div class=\"json-viewer\">\n <pre class=\"json-content\">{{ selectedVersion.fullRecordJSON | json }}</pre>\n </div>\n </div>\n }\n \n @if (selectedVersion.templateContent) {\n <div class=\"detail-section\">\n <h6 class=\"section-title\">Template Content</h6>\n <div class=\"template-viewer\">\n <pre class=\"template-content\">{{ selectedVersion.templateContent.TemplateText }}</pre>\n </div>\n </div>\n }\n </div>\n </div>\n } @else {\n <div class=\"no-selection-message\">\n <i class=\"fa-solid fa-hand-pointer text-muted\"></i>\n <p class=\"text-muted\">Select a version from the timeline to view details.</p>\n </div>\n }\n </div>\n }\n }\n \n <!-- Error state -->\n @if (error) {\n <div class=\"error-container\">\n <div class=\"alert alert-danger\" role=\"alert\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n {{ error }}\n <button type=\"button\" class=\"btn btn-sm btn-outline-danger ms-2\" (click)=\"refreshHistory()\">\n <i class=\"fa-solid fa-refresh\"></i>\n Retry\n </button>\n </div>\n </div>\n }\n }\n</div>", styles: [".prompt-version-control {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: #f8f9fa;\n}\n.prompt-version-control .version-toolbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem;\n background: white;\n border-bottom: 1px solid #dee2e6;\n flex-shrink: 0;\n gap: 1rem;\n flex-wrap: wrap;\n}\n.prompt-version-control .version-toolbar .toolbar-section {\n display: flex;\n align-items: center;\n gap: 1rem;\n flex-wrap: wrap;\n}\n.prompt-version-control .version-toolbar .toolbar-section .toolbar-title {\n margin: 0;\n color: #495057;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-weight: 600;\n}\n.prompt-version-control .version-toolbar .toolbar-section .toolbar-title i {\n color: #0d6efd;\n}\n.prompt-version-control .version-toolbar .toolbar-section .toolbar-title .prompt-name {\n font-weight: 400;\n color: #6c757d;\n}\n.prompt-version-control .version-toolbar .toolbar-section .filter-controls,\n.prompt-version-control .version-toolbar .toolbar-section .search-controls {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.prompt-version-control .version-toolbar .toolbar-section .filter-controls .form-label,\n.prompt-version-control .version-toolbar .toolbar-section .search-controls .form-label {\n margin: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n.prompt-version-control .version-toolbar .toolbar-section .filter-controls .form-select,\n.prompt-version-control .version-toolbar .toolbar-section .filter-controls .form-control,\n.prompt-version-control .version-toolbar .toolbar-section .search-controls .form-select,\n.prompt-version-control .version-toolbar .toolbar-section .search-controls .form-control {\n min-width: 120px;\n}\n.prompt-version-control .version-toolbar .toolbar-section .filter-controls .form-check,\n.prompt-version-control .version-toolbar .toolbar-section .search-controls .form-check {\n margin: 0;\n}\n.prompt-version-control .version-toolbar .toolbar-section .filter-controls .form-check .form-check-label,\n.prompt-version-control .version-toolbar .toolbar-section .search-controls .form-check .form-check-label {\n font-size: 0.875rem;\n}\n.prompt-version-control .version-toolbar .toolbar-section .action-buttons {\n display: flex;\n gap: 0.5rem;\n}\n.prompt-version-control .version-toolbar .toolbar-section .action-buttons .btn {\n font-size: 0.875rem;\n}\n.prompt-version-control .loading-container {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.prompt-version-control .loading-container .loading-content {\n text-align: center;\n}\n.prompt-version-control .loading-container .loading-content .loading-message {\n margin-top: 1rem;\n color: #6c757d;\n}\n.prompt-version-control .timeline-container {\n flex: 1;\n padding: 1rem;\n overflow-y: auto;\n}\n.prompt-version-control .timeline-container .version-timeline {\n max-width: 800px;\n margin: 0 auto;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item {\n display: flex;\n position: relative;\n margin-bottom: 2rem;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item:hover .timeline-content {\n box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.1);\n transform: translateY(-1px);\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item.selected .timeline-content {\n border-color: #0d6efd;\n box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.25);\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item.active .timeline-marker .marker-icon {\n border-color: #28a745;\n background-color: #28a745;\n color: white;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-marker {\n display: flex;\n flex-direction: column;\n align-items: center;\n margin-right: 1.5rem;\n flex-shrink: 0;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-marker .marker-icon {\n width: 2.5rem;\n height: 2.5rem;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n border: 3px solid;\n background: white;\n font-size: 1rem;\n z-index: 2;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-marker .marker-icon.change-create {\n border-color: #28a745;\n color: #28a745;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-marker .marker-icon.change-update {\n border-color: #0d6efd;\n color: #0d6efd;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-marker .marker-icon.change-delete {\n border-color: #dc3545;\n color: #dc3545;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-marker .timeline-line {\n width: 2px;\n flex: 1;\n background: #dee2e6;\n margin-top: 0.5rem;\n min-height: 2rem;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-content {\n flex: 1;\n background: white;\n border: 1px solid #dee2e6;\n border-radius: 0.5rem;\n padding: 1.5rem;\n transition: all 0.2s ease;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-content .version-header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 1rem;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-content .version-header .version-info .version-label {\n margin: 0 0 0.5rem 0;\n color: #495057;\n font-weight: 600;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-content .version-header .version-info .version-meta {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n font-size: 0.875rem;\n color: #6c757d;\n flex-wrap: wrap;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-content .version-header .version-info .version-meta .change-date {\n font-weight: 500;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-content .version-header .version-info .version-meta .badge {\n font-size: 0.75rem;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-content .version-header .version-actions {\n display: flex;\n gap: 0.5rem;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-content .version-header .version-actions .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.75rem;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-content .version-description {\n color: #495057;\n margin-bottom: 1rem;\n line-height: 1.5;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-content .changes-summary .changes-list .change-item {\n display: flex;\n align-items: center;\n padding: 0.5rem;\n background: #f8f9fa;\n border-radius: 0.375rem;\n margin-bottom: 0.5rem;\n font-size: 0.875rem;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-content .changes-summary .changes-list .change-item .field-name {\n font-weight: 500;\n color: #495057;\n margin-right: 0.75rem;\n min-width: 100px;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-content .changes-summary .changes-list .change-item .change-arrow {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-content .changes-summary .changes-list .change-item .change-arrow .old-value {\n color: #dc3545;\n text-decoration: line-through;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-content .changes-summary .changes-list .change-item .change-arrow .new-value {\n color: #28a745;\n font-weight: 500;\n}\n.prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-content .changes-summary .changes-list .change-item .change-arrow i {\n color: #6c757d;\n}\n.prompt-version-control .timeline-container .no-versions-message {\n text-align: center;\n padding: 3rem 1rem;\n color: #6c757d;\n}\n.prompt-version-control .timeline-container .no-versions-message i {\n font-size: 3rem;\n margin-bottom: 1rem;\n display: block;\n opacity: 0.5;\n}\n.prompt-version-control .timeline-container .no-versions-message p {\n margin: 0.5rem 0;\n font-size: 1rem;\n line-height: 1.5;\n}\n.prompt-version-control .comparison-container {\n flex: 1;\n padding: 1rem;\n overflow-y: auto;\n}\n.prompt-version-control .comparison-container .comparison-selectors {\n display: flex;\n align-items: end;\n gap: 1rem;\n margin-bottom: 2rem;\n padding: 1rem;\n background: white;\n border: 1px solid #dee2e6;\n border-radius: 0.5rem;\n}\n.prompt-version-control .comparison-container .comparison-selectors .selector-group {\n flex: 1;\n}\n.prompt-version-control .comparison-container .comparison-selectors .selector-group .form-label {\n font-weight: 500;\n color: #495057;\n}\n.prompt-version-control .comparison-container .comparison-selectors .comparison-arrow {\n padding-bottom: 0.375rem;\n color: #6c757d;\n font-size: 1.25rem;\n}\n.prompt-version-control .comparison-container .comparison-results {\n background: white;\n border: 1px solid #dee2e6;\n border-radius: 0.5rem;\n overflow: hidden;\n}\n.prompt-version-control .comparison-container .comparison-results .comparison-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem;\n background: #f8f9fa;\n border-bottom: 1px solid #dee2e6;\n}\n.prompt-version-control .comparison-container .comparison-results .comparison-header .comparison-title {\n margin: 0;\n color: #495057;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.prompt-version-control .comparison-container .comparison-results .comparison-header .changes-count {\n font-size: 0.875rem;\n color: #6c757d;\n font-weight: 500;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item {\n border-bottom: 1px solid #f1f3f4;\n padding: 1.5rem;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item:last-child {\n border-bottom: none;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item.diff-added {\n border-left: 4px solid #28a745;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item.diff-modified {\n border-left: 4px solid #ffc107;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item.diff-removed {\n border-left: 4px solid #dc3545;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-header {\n margin-bottom: 1rem;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-header .field-info {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-header .field-info .field-name {\n font-size: 1rem;\n color: #495057;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-header .field-info .badge {\n font-size: 0.75rem;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-header .field-info .badge.template-badge {\n background-color: #6f42c1;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-content .side-by-side-diff {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 1rem;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-content .side-by-side-diff .diff-old .diff-label,\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-content .side-by-side-diff .diff-new .diff-label {\n font-size: 0.875rem;\n font-weight: 600;\n margin-bottom: 0.5rem;\n color: #6c757d;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-content .side-by-side-diff .diff-old .diff-value,\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-content .side-by-side-diff .diff-new .diff-value {\n padding: 1rem;\n border-radius: 0.375rem;\n font-family: \"Fira Code\", Monaco, Consolas, monospace;\n font-size: 0.875rem;\n line-height: 1.5;\n white-space: pre-wrap;\n word-break: break-word;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-content .side-by-side-diff .diff-old .diff-value.old-value,\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-content .side-by-side-diff .diff-new .diff-value.old-value {\n background: #fff5f5;\n border: 1px solid #fed7d7;\n color: #c53030;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-content .side-by-side-diff .diff-old .diff-value.new-value,\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-content .side-by-side-diff .diff-new .diff-value.new-value {\n background: #f0fff4;\n border: 1px solid #9ae6b4;\n color: #2f855a;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-content .side-by-side-diff .diff-old .diff-value .template-content,\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-content .side-by-side-diff .diff-new .diff-value .template-content {\n margin: 0;\n background: transparent;\n border: none;\n padding: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n white-space: pre-wrap;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-content .diff-added .diff-label,\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-content .diff-removed .diff-label {\n font-size: 0.875rem;\n font-weight: 600;\n margin-bottom: 0.5rem;\n color: #6c757d;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-content .diff-added .diff-value,\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-content .diff-removed .diff-value {\n padding: 1rem;\n border-radius: 0.375rem;\n font-family: \"Fira Code\", Monaco, Consolas, monospace;\n font-size: 0.875rem;\n line-height: 1.5;\n white-space: pre-wrap;\n word-break: break-word;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-content .diff-added .diff-value {\n background: #f0fff4;\n border: 1px solid #9ae6b4;\n color: #2f855a;\n}\n.prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-content .diff-removed .diff-value {\n background: #fff5f5;\n border: 1px solid #fed7d7;\n color: #c53030;\n}\n.prompt-version-control .comparison-container .comparison-results .no-differences {\n text-align: center;\n padding: 3rem 1rem;\n}\n.prompt-version-control .comparison-container .comparison-results .no-differences i {\n font-size: 3rem;\n margin-bottom: 1rem;\n display: block;\n}\n.prompt-version-control .comparison-container .comparison-results .no-differences p {\n margin: 0;\n font-size: 1rem;\n}\n.prompt-version-control .details-container {\n flex: 1;\n padding: 1rem;\n overflow-y: auto;\n}\n.prompt-version-control .details-container .version-details {\n max-width: 800px;\n margin: 0 auto;\n background: white;\n border: 1px solid #dee2e6;\n border-radius: 0.5rem;\n overflow: hidden;\n}\n.prompt-version-control .details-container .version-details .details-header {\n padding: 1.5rem;\n background: #f8f9fa;\n border-bottom: 1px solid #dee2e6;\n}\n.prompt-version-control .details-container .version-details .details-header .details-title {\n margin: 0 0 0.5rem 0;\n color: #495057;\n font-weight: 600;\n}\n.prompt-version-control .details-container .version-details .details-header .details-meta {\n display: flex;\n gap: 1rem;\n font-size: 0.875rem;\n color: #6c757d;\n flex-wrap: wrap;\n}\n.prompt-version-control .details-container .version-details .details-content {\n padding: 1.5rem;\n}\n.prompt-version-control .details-container .version-details .details-content .detail-section {\n margin-bottom: 2rem;\n}\n.prompt-version-control .details-container .version-details .details-content .detail-section:last-child {\n margin-bottom: 0;\n}\n.prompt-version-control .details-container .version-details .details-content .detail-section .section-title {\n margin: 0 0 1rem 0;\n color: #495057;\n font-weight: 600;\n font-size: 1rem;\n border-bottom: 1px solid #e9ecef;\n padding-bottom: 0.5rem;\n}\n.prompt-version-control .details-container .version-details .details-content .detail-section .detail-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 1rem;\n}\n.prompt-version-control .details-container .version-details .details-content .detail-section .detail-grid .detail-item {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n}\n.prompt-version-control .details-container .version-details .details-content .detail-section .detail-grid .detail-item .detail-label {\n font-size: 0.875rem;\n font-weight: 500;\n color: #6c757d;\n}\n.prompt-version-control .details-container .version-details .details-content .detail-section .detail-grid .detail-item .detail-value {\n font-size: 0.875rem;\n color: #495057;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.prompt-version-control .details-container .version-details .details-content .detail-section .json-viewer .json-content,\n.prompt-version-control .details-container .version-details .details-content .detail-section .json-viewer .template-content,\n.prompt-version-control .details-container .version-details .details-content .detail-section .template-viewer .json-content,\n.prompt-version-control .details-container .version-details .details-content .detail-section .template-viewer .template-content {\n background: #f8f9fa;\n border: 1px solid #dee2e6;\n border-radius: 0.375rem;\n padding: 1rem;\n margin: 0;\n font-family: \"Fira Code\", Monaco, Consolas, monospace;\n font-size: 0.875rem;\n line-height: 1.5;\n overflow-x: auto;\n max-height: 400px;\n overflow-y: auto;\n}\n.prompt-version-control .details-container .no-selection-message {\n text-align: center;\n padding: 3rem 1rem;\n color: #6c757d;\n}\n.prompt-version-control .details-container .no-selection-message i {\n font-size: 3rem;\n margin-bottom: 1rem;\n display: block;\n opacity: 0.5;\n}\n.prompt-version-control .details-container .no-selection-message p {\n margin: 0;\n font-size: 1rem;\n line-height: 1.5;\n}\n.prompt-version-control .error-container {\n padding: 1rem;\n}\n.prompt-version-control .error-container .alert {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n@media (max-width: 1200px) {\n .prompt-version-control .version-toolbar .toolbar-section {\n min-width: 100%;\n justify-content: space-between;\n }\n .prompt-version-control .comparison-container .comparison-selectors {\n flex-direction: column;\n align-items: stretch;\n }\n .prompt-version-control .comparison-container .comparison-selectors .comparison-arrow {\n align-self: center;\n padding: 0.5rem 0;\n }\n .prompt-version-control .comparison-container .comparison-results .differences-list .difference-item .diff-content .side-by-side-diff {\n grid-template-columns: 1fr;\n gap: 0.5rem;\n }\n}\n@media (max-width: 768px) {\n .prompt-version-control .version-toolbar {\n padding: 0.75rem;\n }\n .prompt-version-control .version-toolbar .toolbar-section {\n flex-wrap: wrap;\n gap: 0.5rem;\n }\n .prompt-version-control .timeline-container {\n padding: 0.75rem;\n }\n .prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-marker {\n margin-right: 1rem;\n }\n .prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-marker .marker-icon {\n width: 2rem;\n height: 2rem;\n font-size: 0.875rem;\n }\n .prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-content {\n padding: 1rem;\n }\n .prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-content .version-header {\n flex-direction: column;\n align-items: flex-start;\n gap: 0.75rem;\n }\n .prompt-version-control .timeline-container .version-timeline .timeline-item .timeline-content .version-header .version-actions {\n align-self: flex-end;\n }\n .prompt-version-control .comparison-container,\n .prompt-version-control .details-container {\n padding: 0.75rem;\n }\n .prompt-selector-section {\n padding: 2rem;\n background: white;\n border-radius: 8px;\n margin: 1rem;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n }\n .prompt-selector-section .section-title {\n color: #495057;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-weight: 600;\n margin-bottom: 0.5rem;\n }\n .prompt-selector-section .section-title i {\n color: #007bff;\n }\n .prompt-selector-section .prompt-selector .search-box .input-group-text {\n background: #f8f9fa;\n border-color: #ced4da;\n }\n .prompt-selector-section .prompt-selector .search-box .input-group-text i {\n color: #6c757d;\n }\n .prompt-selector-section .prompt-selector .search-box .form-control {\n border-color: #ced4da;\n }\n .prompt-selector-section .prompt-selector .search-box .form-control:focus {\n border-color: #007bff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n }\n .prompt-selector-section .prompt-selector .prompts-list {\n max-height: 400px;\n overflow-y: auto;\n border: 1px solid #dee2e6;\n border-radius: 4px;\n }\n .prompt-selector-section .prompt-selector .prompts-list .empty-state {\n text-align: center;\n padding: 2rem;\n }\n .prompt-selector-section .prompt-selector .prompts-list .empty-state i {\n font-size: 2rem;\n margin-bottom: 0.5rem;\n }\n .prompt-selector-section .prompt-selector .prompts-list .prompt-item {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0.75rem 1rem;\n border-bottom: 1px solid #dee2e6;\n cursor: pointer;\n transition: background-color 0.2s;\n }\n .prompt-selector-section .prompt-selector .prompts-list .prompt-item:last-child {\n border-bottom: none;\n }\n .prompt-selector-section .prompt-selector .prompts-list .prompt-item:hover {\n background-color: #f8f9fa;\n }\n .prompt-selector-section .prompt-selector .prompts-list .prompt-item .prompt-info {\n flex: 1;\n }\n .prompt-selector-section .prompt-selector .prompts-list .prompt-item .prompt-info .prompt-title {\n margin: 0 0 0.25rem 0;\n font-weight: 600;\n color: #495057;\n }\n .prompt-selector-section .prompt-selector .prompts-list .prompt-item .prompt-info .prompt-description {\n margin: 0;\n font-size: 0.875rem;\n color: #6c757d;\n line-height: 1.4;\n }\n .prompt-selector-section .prompt-selector .prompts-list .prompt-item .prompt-actions {\n color: #007bff;\n opacity: 0.7;\n transition: opacity 0.2s;\n }\n .prompt-selector-section .prompt-selector .prompts-list .prompt-item:hover .prompt-actions {\n opacity: 1;\n }\n}\n"] }]
|
|
1167
1172
|
}], () => [{ type: i1.MJNotificationService }], { prompt: [{
|
|
1168
1173
|
type: Input
|
|
1169
1174
|
}], autoLoad: [{
|
|
@@ -1181,5 +1186,5 @@ export class PromptVersionControlComponent {
|
|
|
1181
1186
|
}], versionCompared: [{
|
|
1182
1187
|
type: Output
|
|
1183
1188
|
}] }); })();
|
|
1184
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PromptVersionControlComponent, { className: "PromptVersionControlComponent", filePath: "src/AI/components/prompts/prompt-version-control.component.ts", lineNumber:
|
|
1189
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PromptVersionControlComponent, { className: "PromptVersionControlComponent", filePath: "src/AI/components/prompts/prompt-version-control.component.ts", lineNumber: 45 }); })();
|
|
1185
1190
|
//# sourceMappingURL=prompt-version-control.component.js.map
|