@memberjunction/ng-dashboards 5.34.0 → 5.35.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/dist/AI/components/agents/agent-configuration.component.d.ts +51 -0
- package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
- package/dist/AI/components/agents/agent-configuration.component.js +399 -292
- package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
- package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.d.ts +8 -2
- package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js +87 -85
- package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js.map +1 -1
- package/dist/AI/components/analytics/ai-analytics-resource.component.d.ts +75 -0
- package/dist/AI/components/analytics/ai-analytics-resource.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/ai-analytics-resource.component.js +400 -89
- package/dist/AI/components/analytics/ai-analytics-resource.component.js.map +1 -1
- package/dist/AI/components/analytics/analytics-filter-bar.component.d.ts +5 -0
- package/dist/AI/components/analytics/analytics-filter-bar.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/analytics-filter-bar.component.js +184 -135
- package/dist/AI/components/analytics/analytics-filter-bar.component.js.map +1 -1
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts +8 -2
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.js +104 -103
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.js.map +1 -1
- package/dist/AI/components/analytics/error-analysis/error-analysis.component.d.ts +8 -2
- package/dist/AI/components/analytics/error-analysis/error-analysis.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/error-analysis/error-analysis.component.js +76 -74
- package/dist/AI/components/analytics/error-analysis/error-analysis.component.js.map +1 -1
- package/dist/AI/components/analytics/executive-summary/executive-summary.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/executive-summary/executive-summary.component.js +67 -87
- package/dist/AI/components/analytics/executive-summary/executive-summary.component.js.map +1 -1
- package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts +12 -19
- package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/model-performance/model-performance.component.js +96 -203
- package/dist/AI/components/analytics/model-performance/model-performance.component.js.map +1 -1
- package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js +110 -126
- package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js.map +1 -1
- package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js +61 -77
- package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js.map +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +990 -992
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +6 -3
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +493 -490
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
- package/dist/AI/components/models/model-management.component.d.ts +17 -0
- package/dist/AI/components/models/model-management.component.d.ts.map +1 -1
- package/dist/AI/components/models/model-management.component.js +370 -425
- package/dist/AI/components/models/model-management.component.js.map +1 -1
- package/dist/AI/components/prompts/prompt-management.component.d.ts +17 -0
- package/dist/AI/components/prompts/prompt-management.component.d.ts.map +1 -1
- package/dist/AI/components/prompts/prompt-management.component.js +317 -357
- package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
- package/dist/AI/components/requests/agent-requests-resource.component.d.ts +11 -0
- package/dist/AI/components/requests/agent-requests-resource.component.d.ts.map +1 -1
- package/dist/AI/components/requests/agent-requests-resource.component.js +170 -175
- package/dist/AI/components/requests/agent-requests-resource.component.js.map +1 -1
- package/dist/AI/components/system/system-configuration.component.d.ts +19 -0
- package/dist/AI/components/system/system-configuration.component.d.ts.map +1 -1
- package/dist/AI/components/system/system-configuration.component.js +403 -362
- package/dist/AI/components/system/system-configuration.component.js.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.js +781 -783
- package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts +8 -3
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.js +547 -521
- package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
- package/dist/Actions/components/actions-overview.component.d.ts +6 -0
- package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
- package/dist/Actions/components/actions-overview.component.js +79 -30
- package/dist/Actions/components/actions-overview.component.js.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.d.ts +9 -3
- package/dist/Actions/components/execution-monitoring.component.d.ts.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.js +196 -142
- package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.d.ts +41 -1
- package/dist/Actions/components/explorer/action-explorer.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.js +388 -94
- package/dist/Actions/components/explorer/action-explorer.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 -1
- package/dist/Actions/components/explorer/index.js.map +1 -1
- package/dist/Admin/admin-data-schema.component.js +32 -40
- package/dist/Admin/admin-data-schema.component.js.map +1 -1
- package/dist/Admin/admin-dev-tools-resource.component.js +32 -40
- package/dist/Admin/admin-dev-tools-resource.component.js.map +1 -1
- package/dist/Admin/admin-identity-access.component.js +32 -40
- package/dist/Admin/admin-identity-access.component.js.map +1 -1
- package/dist/Admin/admin-monitoring.component.js +32 -40
- package/dist/Admin/admin-monitoring.component.js.map +1 -1
- package/dist/ApplicationRoles/application-roles-resource.component.js +76 -82
- package/dist/ApplicationRoles/application-roles-resource.component.js.map +1 -1
- package/dist/Archiving/components/archive-config-resource.component.d.ts.map +1 -1
- package/dist/Archiving/components/archive-config-resource.component.js +24 -5
- package/dist/Archiving/components/archive-config-resource.component.js.map +1 -1
- package/dist/Archiving/components/archive-runs-resource.component.d.ts.map +1 -1
- package/dist/Archiving/components/archive-runs-resource.component.js +24 -5
- package/dist/Archiving/components/archive-runs-resource.component.js.map +1 -1
- package/dist/Communication/communication-logs-resource.component.d.ts +1 -1
- package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-logs-resource.component.js +80 -99
- package/dist/Communication/communication-logs-resource.component.js.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.js +127 -106
- package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
- package/dist/Communication/communication-providers-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-providers-resource.component.js +44 -45
- package/dist/Communication/communication-providers-resource.component.js.map +1 -1
- package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-runs-resource.component.js +60 -58
- package/dist/Communication/communication-runs-resource.component.js.map +1 -1
- package/dist/Communication/communication-templates-resource.component.d.ts +1 -1
- package/dist/Communication/communication-templates-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-templates-resource.component.js +139 -162
- package/dist/Communication/communication-templates-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-audit-resource.component.d.ts +7 -0
- package/dist/Credentials/components/credentials-audit-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-audit-resource.component.js +310 -297
- package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-categories-resource.component.js +245 -266
- package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-list-resource.component.d.ts +7 -0
- package/dist/Credentials/components/credentials-list-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-list-resource.component.js +381 -399
- package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-overview-resource.component.js +222 -228
- package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-types-resource.component.d.ts +6 -0
- package/dist/Credentials/components/credentials-types-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-types-resource.component.js +294 -305
- package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.d.ts +8 -0
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.d.ts.map +1 -1
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js +21 -0
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js.map +1 -1
- package/dist/DatabaseDesigner/components/entity-list.component.js +147 -160
- package/dist/DatabaseDesigner/components/entity-list.component.js.map +1 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts +1 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts.map +1 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.js +19 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.js.map +1 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.js +20 -16
- package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
- package/dist/Home/home-dashboard.component.d.ts +6 -0
- package/dist/Home/home-dashboard.component.d.ts.map +1 -1
- package/dist/Home/home-dashboard.component.js +521 -485
- package/dist/Home/home-dashboard.component.js.map +1 -1
- package/dist/Integration/components/activity/activity.component.d.ts +8 -0
- package/dist/Integration/components/activity/activity.component.d.ts.map +1 -1
- package/dist/Integration/components/activity/activity.component.js +309 -318
- package/dist/Integration/components/activity/activity.component.js.map +1 -1
- package/dist/Integration/components/connections/connections.component.js +866 -847
- package/dist/Integration/components/connections/connections.component.js.map +1 -1
- package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js +234 -233
- package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js.map +1 -1
- package/dist/Integration/components/overview/overview.component.js +182 -163
- package/dist/Integration/components/overview/overview.component.js.map +1 -1
- package/dist/Integration/components/pipelines/pipelines.component.d.ts +2 -0
- package/dist/Integration/components/pipelines/pipelines.component.d.ts.map +1 -1
- package/dist/Integration/components/pipelines/pipelines.component.js +610 -606
- package/dist/Integration/components/pipelines/pipelines.component.js.map +1 -1
- package/dist/Integration/components/schedules/schedules.component.js +241 -241
- package/dist/Integration/components/schedules/schedules.component.js.map +1 -1
- package/dist/Integration/integration.module.d.ts +1 -1
- package/dist/Integration/integration.module.d.ts.map +1 -1
- package/dist/Integration/integration.module.js +28 -1
- package/dist/Integration/integration.module.js.map +1 -1
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +673 -674
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +54 -51
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +745 -703
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts +12 -1
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js +191 -120
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.d.ts +18 -1
- package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.js +486 -532
- package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-categories-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-categories-resource.component.js +152 -160
- package/dist/Lists/components/lists-categories-resource.component.js.map +1 -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 +302 -319
- package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-operations-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-operations-resource.component.js +234 -246
- package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
- package/dist/MCP/mcp-dashboard.component.d.ts +20 -0
- package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
- package/dist/MCP/mcp-dashboard.component.js +1248 -1338
- package/dist/MCP/mcp-dashboard.component.js.map +1 -1
- package/dist/MCP/mcp.module.d.ts +1 -1
- package/dist/MCP/mcp.module.d.ts.map +1 -1
- package/dist/MCP/mcp.module.js +34 -1
- package/dist/MCP/mcp.module.js.map +1 -1
- package/dist/Permissions/audit-log-resource.component.js +76 -85
- package/dist/Permissions/audit-log-resource.component.js.map +1 -1
- package/dist/Permissions/resource-access-resource.component.js +64 -69
- package/dist/Permissions/resource-access-resource.component.js.map +1 -1
- package/dist/Permissions/user-access-resource.component.js +63 -74
- package/dist/Permissions/user-access-resource.component.js.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.js +2 -2
- package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts +2 -1
- package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-activity-resource.component.js +11 -12
- package/dist/Scheduling/components/scheduling-activity-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-activity.component.d.ts +9 -1
- package/dist/Scheduling/components/scheduling-activity.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-activity.component.js +250 -197
- package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts +2 -1
- package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs-resource.component.js +11 -12
- package/dist/Scheduling/components/scheduling-jobs-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs.component.d.ts +9 -1
- package/dist/Scheduling/components/scheduling-jobs.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs.component.js +203 -147
- package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts +2 -1
- package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-overview-resource.component.js +11 -12
- package/dist/Scheduling/components/scheduling-overview-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-overview.component.d.ts +3 -1
- package/dist/Scheduling/components/scheduling-overview.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-overview.component.js +224 -190
- package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
- package/dist/Scheduling/scheduling-dashboard.component.d.ts +19 -6
- package/dist/Scheduling/scheduling-dashboard.component.d.ts.map +1 -1
- package/dist/Scheduling/scheduling-dashboard.component.js +262 -104
- package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
- package/dist/SystemDiagnostics/system-diagnostics.component.d.ts +4 -0
- package/dist/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -1
- package/dist/SystemDiagnostics/system-diagnostics.component.js +812 -784
- package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
- package/dist/Testing/components/testing-analytics-resource.component.d.ts +2 -1
- package/dist/Testing/components/testing-analytics-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-analytics-resource.component.js +7 -14
- package/dist/Testing/components/testing-analytics-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-analytics.component.d.ts +3 -1
- package/dist/Testing/components/testing-analytics.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-analytics.component.js +420 -393
- package/dist/Testing/components/testing-analytics.component.js.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts +2 -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 +16 -19
- package/dist/Testing/components/testing-dashboard-tab-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab.component.d.ts +3 -1
- package/dist/Testing/components/testing-dashboard-tab.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab.component.js +157 -122
- package/dist/Testing/components/testing-dashboard-tab.component.js.map +1 -1
- package/dist/Testing/components/testing-explorer-resource.component.d.ts +2 -1
- package/dist/Testing/components/testing-explorer-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-explorer-resource.component.js +7 -12
- package/dist/Testing/components/testing-explorer-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-explorer.component.d.ts +8 -1
- package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-explorer.component.js +587 -608
- package/dist/Testing/components/testing-explorer.component.js.map +1 -1
- package/dist/Testing/components/testing-review-resource.component.d.ts +4 -1
- package/dist/Testing/components/testing-review-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-review-resource.component.js +9 -12
- package/dist/Testing/components/testing-review-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-review.component.d.ts +3 -1
- package/dist/Testing/components/testing-review.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-review.component.js +310 -274
- package/dist/Testing/components/testing-review.component.js.map +1 -1
- package/dist/Testing/components/testing-runs-resource.component.d.ts +2 -1
- package/dist/Testing/components/testing-runs-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-runs-resource.component.js +16 -19
- package/dist/Testing/components/testing-runs-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-runs.component.d.ts +3 -1
- package/dist/Testing/components/testing-runs.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-runs.component.js +307 -273
- package/dist/Testing/components/testing-runs.component.js.map +1 -1
- package/dist/Testing/testing-dashboard.component.d.ts +2 -0
- package/dist/Testing/testing-dashboard.component.d.ts.map +1 -1
- package/dist/Testing/testing-dashboard.component.js +107 -93
- package/dist/Testing/testing-dashboard.component.js.map +1 -1
- package/dist/VersionHistory/components/diff-resource.component.js +185 -188
- package/dist/VersionHistory/components/diff-resource.component.js.map +1 -1
- package/dist/VersionHistory/components/graph-resource.component.js +154 -184
- package/dist/VersionHistory/components/graph-resource.component.js.map +1 -1
- package/dist/VersionHistory/components/labels-resource.component.d.ts +7 -0
- package/dist/VersionHistory/components/labels-resource.component.d.ts.map +1 -1
- package/dist/VersionHistory/components/labels-resource.component.js +350 -354
- package/dist/VersionHistory/components/labels-resource.component.js.map +1 -1
- package/dist/VersionHistory/components/restore-resource.component.js +163 -169
- package/dist/VersionHistory/components/restore-resource.component.js.map +1 -1
- package/dist/actions-dashboards.module.d.ts +15 -16
- package/dist/actions-dashboards.module.d.ts.map +1 -1
- package/dist/actions-dashboards.module.js +34 -11
- package/dist/actions-dashboards.module.js.map +1 -1
- package/dist/ai-dashboards.module.d.ts +45 -48
- package/dist/ai-dashboards.module.d.ts.map +1 -1
- package/dist/ai-dashboards.module.js +36 -10
- package/dist/ai-dashboards.module.js.map +1 -1
- package/dist/archiving-dashboards.module.d.ts +2 -1
- package/dist/archiving-dashboards.module.d.ts.map +1 -1
- package/dist/archiving-dashboards.module.js +12 -2
- package/dist/archiving-dashboards.module.js.map +1 -1
- package/dist/communication-dashboards.module.d.ts +2 -1
- package/dist/communication-dashboards.module.d.ts.map +1 -1
- package/dist/communication-dashboards.module.js +24 -3
- package/dist/communication-dashboards.module.js.map +1 -1
- package/dist/core-dashboards.module.d.ts +1 -1
- package/dist/core-dashboards.module.d.ts.map +1 -1
- package/dist/core-dashboards.module.js +31 -1
- package/dist/core-dashboards.module.js.map +1 -1
- package/dist/credentials-dashboards.module.d.ts +1 -1
- package/dist/credentials-dashboards.module.d.ts.map +1 -1
- package/dist/credentials-dashboards.module.js +28 -1
- package/dist/credentials-dashboards.module.js.map +1 -1
- package/dist/lists-dashboards.module.d.ts +1 -1
- package/dist/lists-dashboards.module.d.ts.map +1 -1
- package/dist/lists-dashboards.module.js +28 -1
- package/dist/lists-dashboards.module.js.map +1 -1
- package/dist/public-api.d.ts +2 -2
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +3 -3
- package/dist/public-api.js.map +1 -1
- package/dist/scheduling-dashboards.module.d.ts +1 -1
- package/dist/scheduling-dashboards.module.d.ts.map +1 -1
- package/dist/scheduling-dashboards.module.js +31 -1
- package/dist/scheduling-dashboards.module.js.map +1 -1
- package/dist/testing-dashboards.module.d.ts +8 -7
- package/dist/testing-dashboards.module.d.ts.map +1 -1
- package/dist/testing-dashboards.module.js +30 -0
- package/dist/testing-dashboards.module.js.map +1 -1
- package/package.json +52 -52
- package/dist/AI/components/agents/agent-filter-panel.component.d.ts +0 -56
- package/dist/AI/components/agents/agent-filter-panel.component.d.ts.map +0 -1
- package/dist/AI/components/agents/agent-filter-panel.component.js +0 -285
- package/dist/AI/components/agents/agent-filter-panel.component.js.map +0 -1
- package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts +0 -49
- package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts.map +0 -1
- package/dist/AI/components/prompts/prompt-filter-panel.component.js +0 -184
- package/dist/AI/components/prompts/prompt-filter-panel.component.js.map +0 -1
- package/dist/AI/components/system/system-config-filter-panel.component.d.ts +0 -33
- package/dist/AI/components/system/system-config-filter-panel.component.d.ts.map +0 -1
- package/dist/AI/components/system/system-config-filter-panel.component.js +0 -144
- package/dist/AI/components/system/system-config-filter-panel.component.js.map +0 -1
- package/dist/Actions/components/explorer/action-toolbar.component.d.ts +0 -63
- package/dist/Actions/components/explorer/action-toolbar.component.d.ts.map +0 -1
- package/dist/Actions/components/explorer/action-toolbar.component.js +0 -463
- package/dist/Actions/components/explorer/action-toolbar.component.js.map +0 -1
|
@@ -10,410 +10,391 @@ import { BaseResourceComponent } from '@memberjunction/ng-shared';
|
|
|
10
10
|
import { RunView } from '@memberjunction/core';
|
|
11
11
|
import { MJNotificationService } from '@memberjunction/ng-notifications';
|
|
12
12
|
import * as i0 from "@angular/core";
|
|
13
|
-
import * as i1 from "@
|
|
14
|
-
import * as i2 from "@memberjunction/ng-
|
|
15
|
-
import * as i3 from "@memberjunction/ng-
|
|
16
|
-
import * as i4 from "@
|
|
17
|
-
import * as i5 from "@angular/common";
|
|
13
|
+
import * as i1 from "@memberjunction/ng-ui-components";
|
|
14
|
+
import * as i2 from "@memberjunction/ng-shared-generic";
|
|
15
|
+
import * as i3 from "@memberjunction/ng-credentials";
|
|
16
|
+
import * as i4 from "@angular/common";
|
|
18
17
|
const _c0 = ["typeEditPanel"];
|
|
19
|
-
function
|
|
20
|
-
i0.ɵɵ
|
|
21
|
-
|
|
22
|
-
function
|
|
23
|
-
|
|
24
|
-
i0.ɵɵ
|
|
25
|
-
i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_Conditional_2_Conditional_15_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r3 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r3.createNewType()); });
|
|
26
|
-
i0.ɵɵelement(1, "i", 34);
|
|
27
|
-
i0.ɵɵelementStart(2, "span");
|
|
28
|
-
i0.ɵɵtext(3, "New Type");
|
|
29
|
-
i0.ɵɵelementEnd()();
|
|
30
|
-
} }
|
|
31
|
-
function CredentialsTypesResourceComponent_Conditional_2_Conditional_21_Template(rf, ctx) { if (rf & 1) {
|
|
32
|
-
const _r5 = i0.ɵɵgetCurrentView();
|
|
33
|
-
i0.ɵɵelementStart(0, "button", 35);
|
|
34
|
-
i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_Conditional_2_Conditional_21_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r3 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r3.onSearchChange("")); });
|
|
35
|
-
i0.ɵɵelement(1, "i", 36);
|
|
18
|
+
function CredentialsTypesResourceComponent_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
19
|
+
const _r2 = i0.ɵɵgetCurrentView();
|
|
20
|
+
i0.ɵɵelementStart(0, "button", 17);
|
|
21
|
+
i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_Conditional_10_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.createNewType()); });
|
|
22
|
+
i0.ɵɵelement(1, "i", 18);
|
|
23
|
+
i0.ɵɵtext(2, " New Type ");
|
|
36
24
|
i0.ɵɵelementEnd();
|
|
37
25
|
} }
|
|
38
|
-
function
|
|
39
|
-
i0.ɵɵ
|
|
40
|
-
i0.ɵɵtext(1);
|
|
41
|
-
i0.ɵɵelementEnd();
|
|
42
|
-
} if (rf & 2) {
|
|
43
|
-
const cat_r6 = ctx.$implicit;
|
|
44
|
-
i0.ɵɵproperty("value", cat_r6);
|
|
45
|
-
i0.ɵɵadvance();
|
|
46
|
-
i0.ɵɵtextInterpolate(cat_r6);
|
|
26
|
+
function CredentialsTypesResourceComponent_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
27
|
+
i0.ɵɵelement(0, "mj-loading", 14);
|
|
47
28
|
} }
|
|
48
|
-
function
|
|
49
|
-
i0.ɵɵelementStart(0, "div",
|
|
29
|
+
function CredentialsTypesResourceComponent_Conditional_15_For_3_For_9_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
30
|
+
i0.ɵɵelementStart(0, "div", 33);
|
|
50
31
|
i0.ɵɵtext(1);
|
|
51
32
|
i0.ɵɵpipe(2, "slice");
|
|
52
33
|
i0.ɵɵelementEnd();
|
|
53
34
|
} if (rf & 2) {
|
|
54
|
-
const
|
|
35
|
+
const type_r5 = i0.ɵɵnextContext().$implicit;
|
|
55
36
|
i0.ɵɵadvance();
|
|
56
|
-
i0.ɵɵtextInterpolate2(" ", i0.ɵɵpipeBind3(2, 2,
|
|
37
|
+
i0.ɵɵtextInterpolate2(" ", i0.ɵɵpipeBind3(2, 2, type_r5.Description, 0, 60), "", type_r5.Description.length > 60 ? "..." : "", " ");
|
|
57
38
|
} }
|
|
58
|
-
function
|
|
59
|
-
i0.ɵɵelementStart(0, "span",
|
|
60
|
-
i0.ɵɵelement(1, "i",
|
|
39
|
+
function CredentialsTypesResourceComponent_Conditional_15_For_3_For_9_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
40
|
+
i0.ɵɵelementStart(0, "span", 35);
|
|
41
|
+
i0.ɵɵelement(1, "i", 43);
|
|
61
42
|
i0.ɵɵtext(2);
|
|
62
43
|
i0.ɵɵelementEnd();
|
|
63
44
|
} if (rf & 2) {
|
|
64
|
-
const
|
|
45
|
+
const type_r5 = i0.ɵɵnextContext().$implicit;
|
|
65
46
|
i0.ɵɵadvance(2);
|
|
66
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
47
|
+
i0.ɵɵtextInterpolate1(" ", type_r5.credentialCount, " ");
|
|
67
48
|
} }
|
|
68
|
-
function
|
|
69
|
-
i0.ɵɵelementStart(0, "span",
|
|
70
|
-
i0.ɵɵelement(1, "i",
|
|
49
|
+
function CredentialsTypesResourceComponent_Conditional_15_For_3_For_9_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
50
|
+
i0.ɵɵelementStart(0, "span", 36);
|
|
51
|
+
i0.ɵɵelement(1, "i", 44);
|
|
71
52
|
i0.ɵɵtext(2);
|
|
72
53
|
i0.ɵɵelementEnd();
|
|
73
54
|
} if (rf & 2) {
|
|
74
|
-
const
|
|
55
|
+
const type_r5 = i0.ɵɵnextContext().$implicit;
|
|
75
56
|
i0.ɵɵadvance(2);
|
|
76
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
57
|
+
i0.ɵɵtextInterpolate1(" ", type_r5.activeCount, " active ");
|
|
77
58
|
} }
|
|
78
|
-
function
|
|
79
|
-
i0.ɵɵelementStart(0, "span",
|
|
80
|
-
i0.ɵɵelement(1, "i",
|
|
59
|
+
function CredentialsTypesResourceComponent_Conditional_15_For_3_For_9_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
60
|
+
i0.ɵɵelementStart(0, "span", 37);
|
|
61
|
+
i0.ɵɵelement(1, "i", 45);
|
|
81
62
|
i0.ɵɵtext(2);
|
|
82
63
|
i0.ɵɵelementEnd();
|
|
83
64
|
} if (rf & 2) {
|
|
84
|
-
const
|
|
65
|
+
const type_r5 = i0.ɵɵnextContext().$implicit;
|
|
85
66
|
i0.ɵɵadvance(2);
|
|
86
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
67
|
+
i0.ɵɵtextInterpolate1(" ", type_r5.expiringCount, " expiring ");
|
|
87
68
|
} }
|
|
88
|
-
function
|
|
89
|
-
const
|
|
90
|
-
i0.ɵɵelementStart(0, "button",
|
|
91
|
-
i0.ɵɵlistener("click", function
|
|
92
|
-
i0.ɵɵelement(1, "i",
|
|
69
|
+
function CredentialsTypesResourceComponent_Conditional_15_For_3_For_9_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
70
|
+
const _r6 = i0.ɵɵgetCurrentView();
|
|
71
|
+
i0.ɵɵelementStart(0, "button", 46);
|
|
72
|
+
i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_Conditional_15_For_3_For_9_Conditional_12_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r6); const type_r5 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.createCredentialForType(type_r5, $event)); });
|
|
73
|
+
i0.ɵɵelement(1, "i", 18);
|
|
93
74
|
i0.ɵɵelementEnd();
|
|
94
75
|
} }
|
|
95
|
-
function
|
|
96
|
-
const
|
|
97
|
-
i0.ɵɵelementStart(0, "button",
|
|
98
|
-
i0.ɵɵlistener("click", function
|
|
99
|
-
i0.ɵɵelement(1, "i",
|
|
76
|
+
function CredentialsTypesResourceComponent_Conditional_15_For_3_For_9_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
77
|
+
const _r7 = i0.ɵɵgetCurrentView();
|
|
78
|
+
i0.ɵɵelementStart(0, "button", 47);
|
|
79
|
+
i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_Conditional_15_For_3_For_9_Conditional_13_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r7); const type_r5 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.editType(type_r5, $event)); });
|
|
80
|
+
i0.ɵɵelement(1, "i", 48);
|
|
100
81
|
i0.ɵɵelementEnd();
|
|
101
82
|
} }
|
|
102
|
-
function
|
|
103
|
-
const
|
|
104
|
-
i0.ɵɵelementStart(0, "button",
|
|
105
|
-
i0.ɵɵlistener("click", function
|
|
106
|
-
i0.ɵɵelement(1, "i",
|
|
83
|
+
function CredentialsTypesResourceComponent_Conditional_15_For_3_For_9_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
84
|
+
const _r8 = i0.ɵɵgetCurrentView();
|
|
85
|
+
i0.ɵɵelementStart(0, "button", 49);
|
|
86
|
+
i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_Conditional_15_For_3_For_9_Conditional_14_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r8); const type_r5 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.deleteType(type_r5, $event)); });
|
|
87
|
+
i0.ɵɵelement(1, "i", 50);
|
|
107
88
|
i0.ɵɵelementEnd();
|
|
108
89
|
} }
|
|
109
|
-
function
|
|
110
|
-
const
|
|
111
|
-
i0.ɵɵelementStart(0, "div",
|
|
112
|
-
i0.ɵɵlistener("click", function
|
|
113
|
-
i0.ɵɵelementStart(1, "div",
|
|
90
|
+
function CredentialsTypesResourceComponent_Conditional_15_For_3_For_9_Template(rf, ctx) { if (rf & 1) {
|
|
91
|
+
const _r4 = i0.ɵɵgetCurrentView();
|
|
92
|
+
i0.ɵɵelementStart(0, "div", 29);
|
|
93
|
+
i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_Conditional_15_For_3_For_9_Template_div_click_0_listener() { const type_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.selectType(type_r5)); });
|
|
94
|
+
i0.ɵɵelementStart(1, "div", 30);
|
|
114
95
|
i0.ɵɵelement(2, "i");
|
|
115
96
|
i0.ɵɵelementEnd();
|
|
116
|
-
i0.ɵɵelementStart(3, "div",
|
|
97
|
+
i0.ɵɵelementStart(3, "div", 31)(4, "div", 32);
|
|
117
98
|
i0.ɵɵtext(5);
|
|
118
99
|
i0.ɵɵelementEnd();
|
|
119
|
-
i0.ɵɵconditionalCreate(6,
|
|
120
|
-
i0.ɵɵelementStart(7, "div",
|
|
121
|
-
i0.ɵɵconditionalCreate(8,
|
|
122
|
-
i0.ɵɵconditionalCreate(9,
|
|
123
|
-
i0.ɵɵconditionalCreate(10,
|
|
100
|
+
i0.ɵɵconditionalCreate(6, CredentialsTypesResourceComponent_Conditional_15_For_3_For_9_Conditional_6_Template, 3, 6, "div", 33);
|
|
101
|
+
i0.ɵɵelementStart(7, "div", 34);
|
|
102
|
+
i0.ɵɵconditionalCreate(8, CredentialsTypesResourceComponent_Conditional_15_For_3_For_9_Conditional_8_Template, 3, 1, "span", 35);
|
|
103
|
+
i0.ɵɵconditionalCreate(9, CredentialsTypesResourceComponent_Conditional_15_For_3_For_9_Conditional_9_Template, 3, 1, "span", 36);
|
|
104
|
+
i0.ɵɵconditionalCreate(10, CredentialsTypesResourceComponent_Conditional_15_For_3_For_9_Conditional_10_Template, 3, 1, "span", 37);
|
|
124
105
|
i0.ɵɵelementEnd()();
|
|
125
|
-
i0.ɵɵelementStart(11, "div",
|
|
126
|
-
i0.ɵɵconditionalCreate(12,
|
|
127
|
-
i0.ɵɵconditionalCreate(13,
|
|
128
|
-
i0.ɵɵconditionalCreate(14,
|
|
106
|
+
i0.ɵɵelementStart(11, "div", 38);
|
|
107
|
+
i0.ɵɵconditionalCreate(12, CredentialsTypesResourceComponent_Conditional_15_For_3_For_9_Conditional_12_Template, 2, 0, "button", 39);
|
|
108
|
+
i0.ɵɵconditionalCreate(13, CredentialsTypesResourceComponent_Conditional_15_For_3_For_9_Conditional_13_Template, 2, 0, "button", 40);
|
|
109
|
+
i0.ɵɵconditionalCreate(14, CredentialsTypesResourceComponent_Conditional_15_For_3_For_9_Conditional_14_Template, 2, 0, "button", 41);
|
|
129
110
|
i0.ɵɵelementEnd();
|
|
130
|
-
i0.ɵɵelement(15, "i",
|
|
111
|
+
i0.ɵɵelement(15, "i", 42);
|
|
131
112
|
i0.ɵɵelementEnd();
|
|
132
113
|
} if (rf & 2) {
|
|
133
|
-
const
|
|
134
|
-
const
|
|
135
|
-
i0.ɵɵclassProp("selected",
|
|
114
|
+
const type_r5 = ctx.$implicit;
|
|
115
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
116
|
+
i0.ɵɵclassProp("selected", ctx_r2.IsTypeSelected(type_r5));
|
|
136
117
|
i0.ɵɵadvance();
|
|
137
|
-
i0.ɵɵstyleProp("background-color",
|
|
118
|
+
i0.ɵɵstyleProp("background-color", ctx_r2.getCategoryColor(type_r5.Category) + "15")("color", ctx_r2.getCategoryColor(type_r5.Category));
|
|
138
119
|
i0.ɵɵadvance();
|
|
139
|
-
i0.ɵɵclassMap(
|
|
120
|
+
i0.ɵɵclassMap(type_r5.IconClass || "fa-solid fa-key");
|
|
140
121
|
i0.ɵɵadvance(3);
|
|
141
|
-
i0.ɵɵtextInterpolate(
|
|
122
|
+
i0.ɵɵtextInterpolate(type_r5.Name);
|
|
142
123
|
i0.ɵɵadvance();
|
|
143
|
-
i0.ɵɵconditional(
|
|
124
|
+
i0.ɵɵconditional(type_r5.Description ? 6 : -1);
|
|
144
125
|
i0.ɵɵadvance(2);
|
|
145
|
-
i0.ɵɵconditional(
|
|
126
|
+
i0.ɵɵconditional(type_r5.credentialCount > 0 ? 8 : -1);
|
|
146
127
|
i0.ɵɵadvance();
|
|
147
|
-
i0.ɵɵconditional(
|
|
128
|
+
i0.ɵɵconditional(type_r5.activeCount > 0 ? 9 : -1);
|
|
148
129
|
i0.ɵɵadvance();
|
|
149
|
-
i0.ɵɵconditional(
|
|
130
|
+
i0.ɵɵconditional(type_r5.expiringCount > 0 ? 10 : -1);
|
|
150
131
|
i0.ɵɵadvance(2);
|
|
151
|
-
i0.ɵɵconditional(
|
|
132
|
+
i0.ɵɵconditional(ctx_r2.UserCanCreateCredential ? 12 : -1);
|
|
152
133
|
i0.ɵɵadvance();
|
|
153
|
-
i0.ɵɵconditional(
|
|
134
|
+
i0.ɵɵconditional(ctx_r2.UserCanUpdate ? 13 : -1);
|
|
154
135
|
i0.ɵɵadvance();
|
|
155
|
-
i0.ɵɵconditional(
|
|
136
|
+
i0.ɵɵconditional(ctx_r2.UserCanDelete && type_r5.credentialCount === 0 ? 14 : -1);
|
|
156
137
|
} }
|
|
157
|
-
function
|
|
158
|
-
i0.ɵɵelementStart(0, "div",
|
|
138
|
+
function CredentialsTypesResourceComponent_Conditional_15_For_3_Template(rf, ctx) { if (rf & 1) {
|
|
139
|
+
i0.ɵɵelementStart(0, "div", 20)(1, "div", 24);
|
|
159
140
|
i0.ɵɵelement(2, "i");
|
|
160
|
-
i0.ɵɵelementStart(3, "span",
|
|
141
|
+
i0.ɵɵelementStart(3, "span", 25);
|
|
161
142
|
i0.ɵɵtext(4);
|
|
162
143
|
i0.ɵɵelementEnd();
|
|
163
|
-
i0.ɵɵelementStart(5, "span",
|
|
144
|
+
i0.ɵɵelementStart(5, "span", 26);
|
|
164
145
|
i0.ɵɵtext(6);
|
|
165
146
|
i0.ɵɵelementEnd()();
|
|
166
|
-
i0.ɵɵelementStart(7, "div",
|
|
167
|
-
i0.ɵɵrepeaterCreate(8,
|
|
147
|
+
i0.ɵɵelementStart(7, "div", 27);
|
|
148
|
+
i0.ɵɵrepeaterCreate(8, CredentialsTypesResourceComponent_Conditional_15_For_3_For_9_Template, 16, 16, "div", 28, i0.ɵɵrepeaterTrackByIdentity);
|
|
168
149
|
i0.ɵɵelementEnd()();
|
|
169
150
|
} if (rf & 2) {
|
|
170
|
-
const
|
|
171
|
-
const
|
|
151
|
+
const entry_r9 = ctx.$implicit;
|
|
152
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
172
153
|
i0.ɵɵadvance();
|
|
173
|
-
i0.ɵɵstyleProp("border-left-color",
|
|
154
|
+
i0.ɵɵstyleProp("border-left-color", ctx_r2.getCategoryColor(entry_r9.key));
|
|
174
155
|
i0.ɵɵadvance();
|
|
175
|
-
i0.ɵɵclassMap(
|
|
176
|
-
i0.ɵɵstyleProp("color",
|
|
156
|
+
i0.ɵɵclassMap(ctx_r2.getCategoryIcon(entry_r9.key));
|
|
157
|
+
i0.ɵɵstyleProp("color", ctx_r2.getCategoryColor(entry_r9.key));
|
|
177
158
|
i0.ɵɵadvance(2);
|
|
178
|
-
i0.ɵɵtextInterpolate(
|
|
159
|
+
i0.ɵɵtextInterpolate(entry_r9.key);
|
|
179
160
|
i0.ɵɵadvance(2);
|
|
180
|
-
i0.ɵɵtextInterpolate(
|
|
161
|
+
i0.ɵɵtextInterpolate(entry_r9.value.length);
|
|
181
162
|
i0.ɵɵadvance(2);
|
|
182
|
-
i0.ɵɵrepeater(
|
|
163
|
+
i0.ɵɵrepeater(entry_r9.value);
|
|
183
164
|
} }
|
|
184
|
-
function
|
|
185
|
-
const
|
|
165
|
+
function CredentialsTypesResourceComponent_Conditional_15_Conditional_5_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
166
|
+
const _r10 = i0.ɵɵgetCurrentView();
|
|
186
167
|
i0.ɵɵelementStart(0, "p");
|
|
187
168
|
i0.ɵɵtext(1, " No types match your current filters. ");
|
|
188
|
-
i0.ɵɵelementStart(2, "button",
|
|
189
|
-
i0.ɵɵlistener("click", function
|
|
169
|
+
i0.ɵɵelementStart(2, "button", 54);
|
|
170
|
+
i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_Conditional_15_Conditional_5_Conditional_5_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r10); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.clearFilters()); });
|
|
190
171
|
i0.ɵɵtext(3, "Clear filters");
|
|
191
172
|
i0.ɵɵelementEnd()();
|
|
192
173
|
} }
|
|
193
|
-
function
|
|
174
|
+
function CredentialsTypesResourceComponent_Conditional_15_Conditional_5_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
194
175
|
i0.ɵɵelementStart(0, "p");
|
|
195
176
|
i0.ɵɵtext(1, " Get started by creating your first credential type. ");
|
|
196
177
|
i0.ɵɵelementEnd();
|
|
197
178
|
} }
|
|
198
|
-
function
|
|
199
|
-
const
|
|
200
|
-
i0.ɵɵelementStart(0, "button",
|
|
201
|
-
i0.ɵɵlistener("click", function
|
|
202
|
-
i0.ɵɵelement(1, "i",
|
|
179
|
+
function CredentialsTypesResourceComponent_Conditional_15_Conditional_5_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
180
|
+
const _r11 = i0.ɵɵgetCurrentView();
|
|
181
|
+
i0.ɵɵelementStart(0, "button", 55);
|
|
182
|
+
i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_Conditional_15_Conditional_5_Conditional_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r11); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.createNewType()); });
|
|
183
|
+
i0.ɵɵelement(1, "i", 18);
|
|
203
184
|
i0.ɵɵtext(2, " Create Type ");
|
|
204
185
|
i0.ɵɵelementEnd();
|
|
205
186
|
} }
|
|
206
|
-
function
|
|
207
|
-
i0.ɵɵelementStart(0, "div",
|
|
208
|
-
i0.ɵɵelement(2, "i",
|
|
187
|
+
function CredentialsTypesResourceComponent_Conditional_15_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
188
|
+
i0.ɵɵelementStart(0, "div", 21)(1, "div", 51);
|
|
189
|
+
i0.ɵɵelement(2, "i", 52);
|
|
209
190
|
i0.ɵɵelementEnd();
|
|
210
191
|
i0.ɵɵelementStart(3, "h3");
|
|
211
192
|
i0.ɵɵtext(4, "No Credential Types Found");
|
|
212
193
|
i0.ɵɵelementEnd();
|
|
213
|
-
i0.ɵɵconditionalCreate(5,
|
|
214
|
-
i0.ɵɵconditionalCreate(6,
|
|
215
|
-
i0.ɵɵconditionalCreate(7,
|
|
194
|
+
i0.ɵɵconditionalCreate(5, CredentialsTypesResourceComponent_Conditional_15_Conditional_5_Conditional_5_Template, 4, 0, "p");
|
|
195
|
+
i0.ɵɵconditionalCreate(6, CredentialsTypesResourceComponent_Conditional_15_Conditional_5_Conditional_6_Template, 2, 0, "p");
|
|
196
|
+
i0.ɵɵconditionalCreate(7, CredentialsTypesResourceComponent_Conditional_15_Conditional_5_Conditional_7_Template, 3, 0, "button", 53);
|
|
216
197
|
i0.ɵɵelementEnd();
|
|
217
198
|
} if (rf & 2) {
|
|
218
|
-
const
|
|
199
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
219
200
|
i0.ɵɵadvance(5);
|
|
220
|
-
i0.ɵɵconditional(
|
|
201
|
+
i0.ɵɵconditional(ctx_r2.searchText || ctx_r2.selectedCategoryFilter ? 5 : -1);
|
|
221
202
|
i0.ɵɵadvance();
|
|
222
|
-
i0.ɵɵconditional(!
|
|
203
|
+
i0.ɵɵconditional(!ctx_r2.searchText && !ctx_r2.selectedCategoryFilter ? 6 : -1);
|
|
223
204
|
i0.ɵɵadvance();
|
|
224
|
-
i0.ɵɵconditional(
|
|
205
|
+
i0.ɵɵconditional(ctx_r2.UserCanCreate && !ctx_r2.searchText && !ctx_r2.selectedCategoryFilter ? 7 : -1);
|
|
225
206
|
} }
|
|
226
|
-
function
|
|
227
|
-
const
|
|
228
|
-
i0.ɵɵelementStart(0, "button",
|
|
229
|
-
i0.ɵɵlistener("click", function
|
|
230
|
-
i0.ɵɵelement(1, "i",
|
|
207
|
+
function CredentialsTypesResourceComponent_Conditional_15_Conditional_6_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
208
|
+
const _r13 = i0.ɵɵgetCurrentView();
|
|
209
|
+
i0.ɵɵelementStart(0, "button", 78);
|
|
210
|
+
i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_Conditional_15_Conditional_6_Conditional_11_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.editType(ctx_r2.selectedType)); });
|
|
211
|
+
i0.ɵɵelement(1, "i", 48);
|
|
231
212
|
i0.ɵɵelementEnd();
|
|
232
213
|
} }
|
|
233
|
-
function
|
|
234
|
-
i0.ɵɵelementStart(0, "div",
|
|
214
|
+
function CredentialsTypesResourceComponent_Conditional_15_Conditional_6_Conditional_26_Template(rf, ctx) { if (rf & 1) {
|
|
215
|
+
i0.ɵɵelementStart(0, "div", 70)(1, "div", 67);
|
|
235
216
|
i0.ɵɵtext(2);
|
|
236
217
|
i0.ɵɵelementEnd();
|
|
237
|
-
i0.ɵɵelementStart(3, "div",
|
|
218
|
+
i0.ɵɵelementStart(3, "div", 68);
|
|
238
219
|
i0.ɵɵtext(4, "Expiring");
|
|
239
220
|
i0.ɵɵelementEnd()();
|
|
240
221
|
} if (rf & 2) {
|
|
241
|
-
const
|
|
222
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
242
223
|
i0.ɵɵadvance(2);
|
|
243
|
-
i0.ɵɵtextInterpolate(
|
|
224
|
+
i0.ɵɵtextInterpolate(ctx_r2.selectedType.expiringCount);
|
|
244
225
|
} }
|
|
245
|
-
function
|
|
246
|
-
i0.ɵɵelementStart(0, "p",
|
|
226
|
+
function CredentialsTypesResourceComponent_Conditional_15_Conditional_6_Conditional_27_Template(rf, ctx) { if (rf & 1) {
|
|
227
|
+
i0.ɵɵelementStart(0, "p", 71);
|
|
247
228
|
i0.ɵɵtext(1);
|
|
248
229
|
i0.ɵɵelementEnd();
|
|
249
230
|
} if (rf & 2) {
|
|
250
|
-
const
|
|
231
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
251
232
|
i0.ɵɵadvance();
|
|
252
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
233
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r2.selectedType.Description, " ");
|
|
253
234
|
} }
|
|
254
|
-
function
|
|
255
|
-
i0.ɵɵelementStart(0, "span",
|
|
256
|
-
i0.ɵɵelement(1, "i",
|
|
235
|
+
function CredentialsTypesResourceComponent_Conditional_15_Conditional_6_Conditional_32_For_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
236
|
+
i0.ɵɵelementStart(0, "span", 84);
|
|
237
|
+
i0.ɵɵelement(1, "i", 87);
|
|
257
238
|
i0.ɵɵtext(2, " Secret ");
|
|
258
239
|
i0.ɵɵelementEnd();
|
|
259
240
|
} }
|
|
260
|
-
function
|
|
261
|
-
i0.ɵɵelementStart(0, "span",
|
|
241
|
+
function CredentialsTypesResourceComponent_Conditional_15_Conditional_6_Conditional_32_For_2_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
242
|
+
i0.ɵɵelementStart(0, "span", 85);
|
|
262
243
|
i0.ɵɵtext(1, "Required");
|
|
263
244
|
i0.ɵɵelementEnd();
|
|
264
245
|
} }
|
|
265
|
-
function
|
|
266
|
-
i0.ɵɵelementStart(0, "p",
|
|
246
|
+
function CredentialsTypesResourceComponent_Conditional_15_Conditional_6_Conditional_32_For_2_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
247
|
+
i0.ɵɵelementStart(0, "p", 86);
|
|
267
248
|
i0.ɵɵtext(1);
|
|
268
249
|
i0.ɵɵelementEnd();
|
|
269
250
|
} if (rf & 2) {
|
|
270
|
-
const
|
|
251
|
+
const prop_r14 = i0.ɵɵnextContext().$implicit;
|
|
271
252
|
i0.ɵɵadvance();
|
|
272
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
253
|
+
i0.ɵɵtextInterpolate1(" ", prop_r14.description, " ");
|
|
273
254
|
} }
|
|
274
|
-
function
|
|
275
|
-
i0.ɵɵelementStart(0, "div",
|
|
255
|
+
function CredentialsTypesResourceComponent_Conditional_15_Conditional_6_Conditional_32_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
256
|
+
i0.ɵɵelementStart(0, "div", 79)(1, "div", 80)(2, "span", 81);
|
|
276
257
|
i0.ɵɵtext(3);
|
|
277
258
|
i0.ɵɵelementEnd();
|
|
278
|
-
i0.ɵɵelementStart(4, "span",
|
|
259
|
+
i0.ɵɵelementStart(4, "span", 82)(5, "span", 83);
|
|
279
260
|
i0.ɵɵtext(6);
|
|
280
261
|
i0.ɵɵelementEnd();
|
|
281
|
-
i0.ɵɵconditionalCreate(7,
|
|
282
|
-
i0.ɵɵconditionalCreate(8,
|
|
262
|
+
i0.ɵɵconditionalCreate(7, CredentialsTypesResourceComponent_Conditional_15_Conditional_6_Conditional_32_For_2_Conditional_7_Template, 3, 0, "span", 84);
|
|
263
|
+
i0.ɵɵconditionalCreate(8, CredentialsTypesResourceComponent_Conditional_15_Conditional_6_Conditional_32_For_2_Conditional_8_Template, 2, 0, "span", 85);
|
|
283
264
|
i0.ɵɵelementEnd()();
|
|
284
|
-
i0.ɵɵconditionalCreate(9,
|
|
265
|
+
i0.ɵɵconditionalCreate(9, CredentialsTypesResourceComponent_Conditional_15_Conditional_6_Conditional_32_For_2_Conditional_9_Template, 2, 1, "p", 86);
|
|
285
266
|
i0.ɵɵelementEnd();
|
|
286
267
|
} if (rf & 2) {
|
|
287
|
-
const
|
|
268
|
+
const prop_r14 = ctx.$implicit;
|
|
288
269
|
i0.ɵɵadvance(3);
|
|
289
|
-
i0.ɵɵtextInterpolate(
|
|
270
|
+
i0.ɵɵtextInterpolate(prop_r14.title);
|
|
290
271
|
i0.ɵɵadvance(3);
|
|
291
|
-
i0.ɵɵtextInterpolate(
|
|
272
|
+
i0.ɵɵtextInterpolate(prop_r14.type);
|
|
292
273
|
i0.ɵɵadvance();
|
|
293
|
-
i0.ɵɵconditional(
|
|
274
|
+
i0.ɵɵconditional(prop_r14.isSecret ? 7 : -1);
|
|
294
275
|
i0.ɵɵadvance();
|
|
295
|
-
i0.ɵɵconditional(
|
|
276
|
+
i0.ɵɵconditional(prop_r14.required ? 8 : -1);
|
|
296
277
|
i0.ɵɵadvance();
|
|
297
|
-
i0.ɵɵconditional(
|
|
278
|
+
i0.ɵɵconditional(prop_r14.description ? 9 : -1);
|
|
298
279
|
} }
|
|
299
|
-
function
|
|
300
|
-
i0.ɵɵelementStart(0, "div",
|
|
301
|
-
i0.ɵɵrepeaterCreate(1,
|
|
280
|
+
function CredentialsTypesResourceComponent_Conditional_15_Conditional_6_Conditional_32_Template(rf, ctx) { if (rf & 1) {
|
|
281
|
+
i0.ɵɵelementStart(0, "div", 74);
|
|
282
|
+
i0.ɵɵrepeaterCreate(1, CredentialsTypesResourceComponent_Conditional_15_Conditional_6_Conditional_32_For_2_Template, 10, 5, "div", 79, i0.ɵɵrepeaterTrackByIdentity);
|
|
302
283
|
i0.ɵɵelementEnd();
|
|
303
284
|
} if (rf & 2) {
|
|
304
|
-
const
|
|
285
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
305
286
|
i0.ɵɵadvance();
|
|
306
|
-
i0.ɵɵrepeater(
|
|
287
|
+
i0.ɵɵrepeater(ctx_r2.schemaProperties);
|
|
307
288
|
} }
|
|
308
|
-
function
|
|
309
|
-
i0.ɵɵelementStart(0, "div",
|
|
310
|
-
i0.ɵɵelement(1, "i",
|
|
289
|
+
function CredentialsTypesResourceComponent_Conditional_15_Conditional_6_Conditional_33_Template(rf, ctx) { if (rf & 1) {
|
|
290
|
+
i0.ɵɵelementStart(0, "div", 75);
|
|
291
|
+
i0.ɵɵelement(1, "i", 88);
|
|
311
292
|
i0.ɵɵelementStart(2, "span");
|
|
312
293
|
i0.ɵɵtext(3, "No fields defined in schema");
|
|
313
294
|
i0.ɵɵelementEnd()();
|
|
314
295
|
} }
|
|
315
|
-
function
|
|
316
|
-
i0.ɵɵelementStart(0, "div",
|
|
317
|
-
i0.ɵɵelement(2, "i",
|
|
296
|
+
function CredentialsTypesResourceComponent_Conditional_15_Conditional_6_Conditional_34_Template(rf, ctx) { if (rf & 1) {
|
|
297
|
+
i0.ɵɵelementStart(0, "div", 76)(1, "h3");
|
|
298
|
+
i0.ɵɵelement(2, "i", 89);
|
|
318
299
|
i0.ɵɵtext(3, " Validation ");
|
|
319
300
|
i0.ɵɵelementEnd();
|
|
320
|
-
i0.ɵɵelementStart(4, "div",
|
|
321
|
-
i0.ɵɵelement(5, "i",
|
|
301
|
+
i0.ɵɵelementStart(4, "div", 90);
|
|
302
|
+
i0.ɵɵelement(5, "i", 91);
|
|
322
303
|
i0.ɵɵelementStart(6, "span");
|
|
323
304
|
i0.ɵɵtext(7);
|
|
324
305
|
i0.ɵɵelementEnd()()();
|
|
325
306
|
} if (rf & 2) {
|
|
326
|
-
const
|
|
307
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
327
308
|
i0.ɵɵadvance(7);
|
|
328
|
-
i0.ɵɵtextInterpolate(
|
|
309
|
+
i0.ɵɵtextInterpolate(ctx_r2.selectedType.ValidationEndpoint);
|
|
329
310
|
} }
|
|
330
|
-
function
|
|
331
|
-
const
|
|
332
|
-
i0.ɵɵelementStart(0, "div",
|
|
333
|
-
i0.ɵɵlistener("click", function
|
|
334
|
-
i0.ɵɵelement(2, "i",
|
|
311
|
+
function CredentialsTypesResourceComponent_Conditional_15_Conditional_6_Conditional_35_Template(rf, ctx) { if (rf & 1) {
|
|
312
|
+
const _r15 = i0.ɵɵgetCurrentView();
|
|
313
|
+
i0.ɵɵelementStart(0, "div", 77)(1, "button", 55);
|
|
314
|
+
i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_Conditional_15_Conditional_6_Conditional_35_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r15); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.createCredentialForType(ctx_r2.selectedType)); });
|
|
315
|
+
i0.ɵɵelement(2, "i", 18);
|
|
335
316
|
i0.ɵɵtext(3, " Create Credential ");
|
|
336
317
|
i0.ɵɵelementEnd()();
|
|
337
318
|
} }
|
|
338
|
-
function
|
|
339
|
-
const
|
|
340
|
-
i0.ɵɵelementStart(0, "div",
|
|
319
|
+
function CredentialsTypesResourceComponent_Conditional_15_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
320
|
+
const _r12 = i0.ɵɵgetCurrentView();
|
|
321
|
+
i0.ɵɵelementStart(0, "div", 22)(1, "div", 56)(2, "div", 57);
|
|
341
322
|
i0.ɵɵelement(3, "i");
|
|
342
323
|
i0.ɵɵelementEnd();
|
|
343
|
-
i0.ɵɵelementStart(4, "div",
|
|
324
|
+
i0.ɵɵelementStart(4, "div", 58)(5, "h2");
|
|
344
325
|
i0.ɵɵtext(6);
|
|
345
326
|
i0.ɵɵelementEnd();
|
|
346
|
-
i0.ɵɵelementStart(7, "span",
|
|
327
|
+
i0.ɵɵelementStart(7, "span", 59);
|
|
347
328
|
i0.ɵɵelement(8, "i");
|
|
348
329
|
i0.ɵɵtext(9);
|
|
349
330
|
i0.ɵɵelementEnd()();
|
|
350
|
-
i0.ɵɵelementStart(10, "div",
|
|
351
|
-
i0.ɵɵconditionalCreate(11,
|
|
352
|
-
i0.ɵɵelementStart(12, "button",
|
|
353
|
-
i0.ɵɵlistener("click", function
|
|
354
|
-
i0.ɵɵelement(13, "i",
|
|
331
|
+
i0.ɵɵelementStart(10, "div", 60);
|
|
332
|
+
i0.ɵɵconditionalCreate(11, CredentialsTypesResourceComponent_Conditional_15_Conditional_6_Conditional_11_Template, 2, 0, "button", 61);
|
|
333
|
+
i0.ɵɵelementStart(12, "button", 62);
|
|
334
|
+
i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_Conditional_15_Conditional_6_Template_button_click_12_listener() { i0.ɵɵrestoreView(_r12); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.closeDetail()); });
|
|
335
|
+
i0.ɵɵelement(13, "i", 63);
|
|
355
336
|
i0.ɵɵelementEnd()()();
|
|
356
|
-
i0.ɵɵelementStart(14, "div",
|
|
337
|
+
i0.ɵɵelementStart(14, "div", 64)(15, "div", 65)(16, "div", 66)(17, "div", 67);
|
|
357
338
|
i0.ɵɵtext(18);
|
|
358
339
|
i0.ɵɵelementEnd();
|
|
359
|
-
i0.ɵɵelementStart(19, "div",
|
|
340
|
+
i0.ɵɵelementStart(19, "div", 68);
|
|
360
341
|
i0.ɵɵtext(20, "Credentials");
|
|
361
342
|
i0.ɵɵelementEnd()();
|
|
362
|
-
i0.ɵɵelementStart(21, "div",
|
|
343
|
+
i0.ɵɵelementStart(21, "div", 69)(22, "div", 67);
|
|
363
344
|
i0.ɵɵtext(23);
|
|
364
345
|
i0.ɵɵelementEnd();
|
|
365
|
-
i0.ɵɵelementStart(24, "div",
|
|
346
|
+
i0.ɵɵelementStart(24, "div", 68);
|
|
366
347
|
i0.ɵɵtext(25, "Active");
|
|
367
348
|
i0.ɵɵelementEnd()();
|
|
368
|
-
i0.ɵɵconditionalCreate(26,
|
|
349
|
+
i0.ɵɵconditionalCreate(26, CredentialsTypesResourceComponent_Conditional_15_Conditional_6_Conditional_26_Template, 5, 1, "div", 70);
|
|
369
350
|
i0.ɵɵelementEnd();
|
|
370
|
-
i0.ɵɵconditionalCreate(27,
|
|
371
|
-
i0.ɵɵelementStart(28, "div",
|
|
372
|
-
i0.ɵɵelement(30, "i",
|
|
351
|
+
i0.ɵɵconditionalCreate(27, CredentialsTypesResourceComponent_Conditional_15_Conditional_6_Conditional_27_Template, 2, 1, "p", 71);
|
|
352
|
+
i0.ɵɵelementStart(28, "div", 72)(29, "h3");
|
|
353
|
+
i0.ɵɵelement(30, "i", 73);
|
|
373
354
|
i0.ɵɵtext(31, " Field Schema ");
|
|
374
355
|
i0.ɵɵelementEnd();
|
|
375
|
-
i0.ɵɵconditionalCreate(32,
|
|
376
|
-
i0.ɵɵconditionalCreate(33,
|
|
356
|
+
i0.ɵɵconditionalCreate(32, CredentialsTypesResourceComponent_Conditional_15_Conditional_6_Conditional_32_Template, 3, 0, "div", 74);
|
|
357
|
+
i0.ɵɵconditionalCreate(33, CredentialsTypesResourceComponent_Conditional_15_Conditional_6_Conditional_33_Template, 4, 0, "div", 75);
|
|
377
358
|
i0.ɵɵelementEnd();
|
|
378
|
-
i0.ɵɵconditionalCreate(34,
|
|
379
|
-
i0.ɵɵconditionalCreate(35,
|
|
359
|
+
i0.ɵɵconditionalCreate(34, CredentialsTypesResourceComponent_Conditional_15_Conditional_6_Conditional_34_Template, 8, 1, "div", 76);
|
|
360
|
+
i0.ɵɵconditionalCreate(35, CredentialsTypesResourceComponent_Conditional_15_Conditional_6_Conditional_35_Template, 4, 0, "div", 77);
|
|
380
361
|
i0.ɵɵelementEnd()();
|
|
381
362
|
} if (rf & 2) {
|
|
382
|
-
const
|
|
363
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
383
364
|
i0.ɵɵadvance(2);
|
|
384
|
-
i0.ɵɵstyleProp("background-color",
|
|
365
|
+
i0.ɵɵstyleProp("background-color", ctx_r2.getCategoryColor(ctx_r2.selectedType.Category) + "15")("color", ctx_r2.getCategoryColor(ctx_r2.selectedType.Category));
|
|
385
366
|
i0.ɵɵadvance();
|
|
386
|
-
i0.ɵɵclassMap(
|
|
367
|
+
i0.ɵɵclassMap(ctx_r2.selectedType.IconClass || "fa-solid fa-key");
|
|
387
368
|
i0.ɵɵadvance(3);
|
|
388
|
-
i0.ɵɵtextInterpolate(
|
|
369
|
+
i0.ɵɵtextInterpolate(ctx_r2.selectedType.Name);
|
|
389
370
|
i0.ɵɵadvance();
|
|
390
|
-
i0.ɵɵstyleProp("background-color",
|
|
371
|
+
i0.ɵɵstyleProp("background-color", ctx_r2.getCategoryColor(ctx_r2.selectedType.Category) + "20")("color", ctx_r2.getCategoryColor(ctx_r2.selectedType.Category));
|
|
391
372
|
i0.ɵɵadvance();
|
|
392
|
-
i0.ɵɵclassMap(
|
|
373
|
+
i0.ɵɵclassMap(ctx_r2.getCategoryIcon(ctx_r2.selectedType.Category));
|
|
393
374
|
i0.ɵɵadvance();
|
|
394
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
375
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r2.selectedType.Category, " ");
|
|
395
376
|
i0.ɵɵadvance(2);
|
|
396
|
-
i0.ɵɵconditional(
|
|
377
|
+
i0.ɵɵconditional(ctx_r2.UserCanUpdate ? 11 : -1);
|
|
397
378
|
i0.ɵɵadvance(7);
|
|
398
|
-
i0.ɵɵtextInterpolate(
|
|
379
|
+
i0.ɵɵtextInterpolate(ctx_r2.selectedType.credentialCount);
|
|
399
380
|
i0.ɵɵadvance(5);
|
|
400
|
-
i0.ɵɵtextInterpolate(
|
|
381
|
+
i0.ɵɵtextInterpolate(ctx_r2.selectedType.activeCount);
|
|
401
382
|
i0.ɵɵadvance(3);
|
|
402
|
-
i0.ɵɵconditional(
|
|
383
|
+
i0.ɵɵconditional(ctx_r2.selectedType.expiringCount > 0 ? 26 : -1);
|
|
403
384
|
i0.ɵɵadvance();
|
|
404
|
-
i0.ɵɵconditional(
|
|
385
|
+
i0.ɵɵconditional(ctx_r2.selectedType.Description ? 27 : -1);
|
|
405
386
|
i0.ɵɵadvance(5);
|
|
406
|
-
i0.ɵɵconditional(
|
|
387
|
+
i0.ɵɵconditional(ctx_r2.schemaProperties.length > 0 ? 32 : -1);
|
|
407
388
|
i0.ɵɵadvance();
|
|
408
|
-
i0.ɵɵconditional(
|
|
389
|
+
i0.ɵɵconditional(ctx_r2.schemaProperties.length === 0 ? 33 : -1);
|
|
409
390
|
i0.ɵɵadvance();
|
|
410
|
-
i0.ɵɵconditional(
|
|
391
|
+
i0.ɵɵconditional(ctx_r2.selectedType.ValidationEndpoint ? 34 : -1);
|
|
411
392
|
i0.ɵɵadvance();
|
|
412
|
-
i0.ɵɵconditional(
|
|
393
|
+
i0.ɵɵconditional(ctx_r2.UserCanCreateCredential ? 35 : -1);
|
|
413
394
|
} }
|
|
414
|
-
function
|
|
415
|
-
i0.ɵɵelementStart(0, "div",
|
|
416
|
-
i0.ɵɵelement(2, "i",
|
|
395
|
+
function CredentialsTypesResourceComponent_Conditional_15_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
396
|
+
i0.ɵɵelementStart(0, "div", 23)(1, "div", 92);
|
|
397
|
+
i0.ɵɵelement(2, "i", 93);
|
|
417
398
|
i0.ɵɵelementEnd();
|
|
418
399
|
i0.ɵɵelementStart(3, "h3");
|
|
419
400
|
i0.ɵɵtext(4, "Select a Credential Type");
|
|
@@ -422,83 +403,25 @@ function CredentialsTypesResourceComponent_Conditional_2_Conditional_39_Template
|
|
|
422
403
|
i0.ɵɵtext(6, "Click on a credential type to view its details and field schema");
|
|
423
404
|
i0.ɵɵelementEnd()();
|
|
424
405
|
} }
|
|
425
|
-
function
|
|
426
|
-
|
|
427
|
-
i0.ɵɵ
|
|
428
|
-
i0.ɵɵ
|
|
429
|
-
i0.ɵɵ
|
|
430
|
-
i0.ɵɵelementStart(4, "div", 7)(5, "span", 8);
|
|
431
|
-
i0.ɵɵelement(6, "i", 9);
|
|
432
|
-
i0.ɵɵtext(7);
|
|
433
|
-
i0.ɵɵelementEnd();
|
|
434
|
-
i0.ɵɵelementStart(8, "span", 8);
|
|
435
|
-
i0.ɵɵelement(9, "i", 10);
|
|
436
|
-
i0.ɵɵtext(10);
|
|
406
|
+
function CredentialsTypesResourceComponent_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
407
|
+
i0.ɵɵelementStart(0, "div", 15)(1, "div", 19);
|
|
408
|
+
i0.ɵɵrepeaterCreate(2, CredentialsTypesResourceComponent_Conditional_15_For_3_Template, 10, 8, "div", 20, i0.ɵɵrepeaterTrackByIdentity);
|
|
409
|
+
i0.ɵɵpipe(4, "keyvalue");
|
|
410
|
+
i0.ɵɵconditionalCreate(5, CredentialsTypesResourceComponent_Conditional_15_Conditional_5_Template, 8, 3, "div", 21);
|
|
437
411
|
i0.ɵɵelementEnd();
|
|
438
|
-
i0.ɵɵ
|
|
439
|
-
i0.ɵɵ
|
|
440
|
-
i0.ɵɵtext(13);
|
|
441
|
-
i0.ɵɵelementEnd()()();
|
|
442
|
-
i0.ɵɵelementStart(14, "div", 12);
|
|
443
|
-
i0.ɵɵconditionalCreate(15, CredentialsTypesResourceComponent_Conditional_2_Conditional_15_Template, 4, 0, "button", 13);
|
|
444
|
-
i0.ɵɵelementEnd()();
|
|
445
|
-
i0.ɵɵelementStart(16, "div", 14)(17, "div", 15)(18, "div", 16);
|
|
446
|
-
i0.ɵɵelement(19, "i", 17);
|
|
447
|
-
i0.ɵɵelementStart(20, "input", 18);
|
|
448
|
-
i0.ɵɵlistener("input", function CredentialsTypesResourceComponent_Conditional_2_Template_input_input_20_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onSearchChange($event.target.value)); });
|
|
449
|
-
i0.ɵɵelementEnd();
|
|
450
|
-
i0.ɵɵconditionalCreate(21, CredentialsTypesResourceComponent_Conditional_2_Conditional_21_Template, 2, 0, "button", 19);
|
|
451
|
-
i0.ɵɵelementEnd();
|
|
452
|
-
i0.ɵɵelementStart(22, "select", 20);
|
|
453
|
-
i0.ɵɵlistener("change", function CredentialsTypesResourceComponent_Conditional_2_Template_select_change_22_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onCategoryFilterChange($event.target.value)); });
|
|
454
|
-
i0.ɵɵelementStart(23, "option", 21);
|
|
455
|
-
i0.ɵɵtext(24, "All Categories");
|
|
456
|
-
i0.ɵɵelementEnd();
|
|
457
|
-
i0.ɵɵrepeaterCreate(25, CredentialsTypesResourceComponent_Conditional_2_For_26_Template, 2, 2, "option", 22, i0.ɵɵrepeaterTrackByIdentity);
|
|
458
|
-
i0.ɵɵelementEnd()();
|
|
459
|
-
i0.ɵɵelementStart(27, "div", 23)(28, "div", 24);
|
|
460
|
-
i0.ɵɵtext(29);
|
|
461
|
-
i0.ɵɵelementEnd();
|
|
462
|
-
i0.ɵɵelementStart(30, "button", 25);
|
|
463
|
-
i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_Conditional_2_Template_button_click_30_listener() { i0.ɵɵrestoreView(_r2); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.refresh()); });
|
|
464
|
-
i0.ɵɵelement(31, "i", 26);
|
|
465
|
-
i0.ɵɵelementEnd()()();
|
|
466
|
-
i0.ɵɵelementStart(32, "div", 27)(33, "div", 28);
|
|
467
|
-
i0.ɵɵrepeaterCreate(34, CredentialsTypesResourceComponent_Conditional_2_For_35_Template, 10, 8, "div", 29, i0.ɵɵrepeaterTrackByIdentity);
|
|
468
|
-
i0.ɵɵpipe(36, "keyvalue");
|
|
469
|
-
i0.ɵɵconditionalCreate(37, CredentialsTypesResourceComponent_Conditional_2_Conditional_37_Template, 8, 3, "div", 30);
|
|
470
|
-
i0.ɵɵelementEnd();
|
|
471
|
-
i0.ɵɵconditionalCreate(38, CredentialsTypesResourceComponent_Conditional_2_Conditional_38_Template, 36, 23, "div", 31);
|
|
472
|
-
i0.ɵɵconditionalCreate(39, CredentialsTypesResourceComponent_Conditional_2_Conditional_39_Template, 7, 0, "div", 32);
|
|
412
|
+
i0.ɵɵconditionalCreate(6, CredentialsTypesResourceComponent_Conditional_15_Conditional_6_Template, 36, 23, "div", 22);
|
|
413
|
+
i0.ɵɵconditionalCreate(7, CredentialsTypesResourceComponent_Conditional_15_Conditional_7_Template, 7, 0, "div", 23);
|
|
473
414
|
i0.ɵɵelementEnd();
|
|
474
415
|
} if (rf & 2) {
|
|
475
|
-
const
|
|
476
|
-
i0.ɵɵadvance(7);
|
|
477
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r3.types.length, " types ");
|
|
478
|
-
i0.ɵɵadvance(3);
|
|
479
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r3.categories.length, " categories ");
|
|
480
|
-
i0.ɵɵadvance(3);
|
|
481
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r3.getTotalCredentialCount(), " credentials ");
|
|
416
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
482
417
|
i0.ɵɵadvance(2);
|
|
483
|
-
i0.ɵɵ
|
|
484
|
-
i0.ɵɵadvance(5);
|
|
485
|
-
i0.ɵɵproperty("value", ctx_r3.searchText);
|
|
486
|
-
i0.ɵɵadvance();
|
|
487
|
-
i0.ɵɵconditional(ctx_r3.searchText ? 21 : -1);
|
|
488
|
-
i0.ɵɵadvance();
|
|
489
|
-
i0.ɵɵproperty("value", ctx_r3.selectedCategoryFilter);
|
|
418
|
+
i0.ɵɵrepeater(i0.ɵɵpipeBind1(4, 3, ctx_r2.getTypesByCategory()));
|
|
490
419
|
i0.ɵɵadvance(3);
|
|
491
|
-
i0.ɵɵ
|
|
492
|
-
i0.ɵɵadvance(4);
|
|
493
|
-
i0.ɵɵtextInterpolate2(" ", ctx_r3.filteredTypes.length, " of ", ctx_r3.types.length, " types ");
|
|
494
|
-
i0.ɵɵadvance(5);
|
|
495
|
-
i0.ɵɵrepeater(i0.ɵɵpipeBind1(36, 12, ctx_r3.getTypesByCategory()));
|
|
496
|
-
i0.ɵɵadvance(3);
|
|
497
|
-
i0.ɵɵconditional(ctx_r3.filteredTypes.length === 0 ? 37 : -1);
|
|
420
|
+
i0.ɵɵconditional(ctx_r2.filteredTypes.length === 0 ? 5 : -1);
|
|
498
421
|
i0.ɵɵadvance();
|
|
499
|
-
i0.ɵɵconditional(
|
|
422
|
+
i0.ɵɵconditional(ctx_r2.selectedType ? 6 : -1);
|
|
500
423
|
i0.ɵɵadvance();
|
|
501
|
-
i0.ɵɵconditional(!
|
|
424
|
+
i0.ɵɵconditional(!ctx_r2.selectedType && ctx_r2.filteredTypes.length > 0 ? 7 : -1);
|
|
502
425
|
} }
|
|
503
426
|
let CredentialsTypesResourceComponent = class CredentialsTypesResourceComponent extends BaseResourceComponent {
|
|
504
427
|
cdr;
|
|
@@ -516,6 +439,38 @@ let CredentialsTypesResourceComponent = class CredentialsTypesResourceComponent
|
|
|
516
439
|
_metadata = this.ProviderToUse;
|
|
517
440
|
_permissionCache = new Map();
|
|
518
441
|
typeEditPanel;
|
|
442
|
+
get FilterFields() {
|
|
443
|
+
return [
|
|
444
|
+
{
|
|
445
|
+
key: 'categoryFilter',
|
|
446
|
+
type: 'dropdown',
|
|
447
|
+
label: 'Category',
|
|
448
|
+
icon: 'fa-solid fa-folder',
|
|
449
|
+
placeholder: 'All Categories',
|
|
450
|
+
filterable: true,
|
|
451
|
+
options: [
|
|
452
|
+
{ text: 'All Categories', value: '' },
|
|
453
|
+
...this.categories.map(c => ({ text: c, value: c }))
|
|
454
|
+
]
|
|
455
|
+
}
|
|
456
|
+
];
|
|
457
|
+
}
|
|
458
|
+
get FilterValues() {
|
|
459
|
+
return { categoryFilter: this.selectedCategoryFilter };
|
|
460
|
+
}
|
|
461
|
+
get ActiveFilterCount() {
|
|
462
|
+
return this.selectedCategoryFilter ? 1 : 0;
|
|
463
|
+
}
|
|
464
|
+
onFilterValuesChange(v) {
|
|
465
|
+
const next = (v ?? {});
|
|
466
|
+
if ((next.categoryFilter ?? '') !== this.selectedCategoryFilter) {
|
|
467
|
+
this.onCategoryFilterChange(next.categoryFilter ?? '');
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
resetFilters() {
|
|
471
|
+
if (this.selectedCategoryFilter)
|
|
472
|
+
this.onCategoryFilterChange('');
|
|
473
|
+
}
|
|
519
474
|
constructor(cdr) {
|
|
520
475
|
super();
|
|
521
476
|
this.cdr = cdr;
|
|
@@ -845,21 +800,55 @@ let CredentialsTypesResourceComponent = class CredentialsTypesResourceComponent
|
|
|
845
800
|
} if (rf & 2) {
|
|
846
801
|
let _t;
|
|
847
802
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.typeEditPanel = _t.first);
|
|
848
|
-
} }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls:
|
|
803
|
+
} }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 18, vars: 14, consts: [["typeEditPanel", ""], ["Title", "Credential Types", "Icon", "fa-solid fa-shapes"], ["meta", ""], ["Label", "types", 3, "Count", "Total"], ["Icon", "fa-solid fa-folder", "Label", "categories", 3, "Count"], ["Icon", "fa-solid fa-key", "Label", "credentials", 3, "Count"], ["actions", ""], [3, "ClearAllRequested", "ActiveCount", "ShowClearAll"], [3, "ValuesChange", "Reset", "Fields", "Values"], [3, "Clicked", "Loading"], ["mjButton", "", "variant", "primary", "size", "sm"], ["toolbar", ""], ["Placeholder", "Search types...", 3, "ValueChange", "Value"], [3, "Flex"], ["text", "Loading credential types..."], [1, "types-layout"], [3, "saved", "deleted"], ["mjButton", "", "variant", "primary", "size", "sm", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "types-list"], [1, "category-section"], [1, "empty-state"], [1, "type-detail"], [1, "no-selection"], [1, "category-header"], [1, "category-name"], [1, "count"], [1, "type-items"], [1, "type-item", 3, "selected"], [1, "type-item", 3, "click"], [1, "type-icon"], [1, "type-info"], [1, "type-name"], [1, "type-description"], [1, "type-meta"], [1, "meta-badge"], [1, "meta-badge", "active"], [1, "meta-badge", "warning"], [1, "type-actions"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "Add Credential"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "Edit Type"], ["mjButton", "", "variant", "danger", "size", "sm", "title", "Delete Type"], [1, "fa-solid", "fa-chevron-right", "arrow"], [1, "fa-solid", "fa-key"], [1, "fa-solid", "fa-check"], [1, "fa-solid", "fa-clock"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "Add Credential", 3, "click"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "Edit Type", 3, "click"], [1, "fa-solid", "fa-pen"], ["mjButton", "", "variant", "danger", "size", "sm", "title", "Delete Type", 3, "click"], [1, "fa-solid", "fa-trash"], [1, "empty-icon"], [1, "fa-solid", "fa-cubes"], [1, "btn-primary"], [1, "btn-link", 3, "click"], [1, "btn-primary", 3, "click"], [1, "detail-header"], [1, "detail-icon"], [1, "detail-title"], [1, "category-badge"], [1, "detail-actions"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "Edit"], [1, "close-btn", 3, "click"], [1, "fa-solid", "fa-times"], [1, "detail-body"], [1, "detail-stats"], [1, "detail-stat"], [1, "stat-value"], [1, "stat-label"], [1, "detail-stat", "active"], [1, "detail-stat", "warning"], [1, "description"], [1, "schema-section"], [1, "fa-solid", "fa-list-check"], [1, "field-list"], [1, "no-fields"], [1, "validation-section"], [1, "detail-quick-actions"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "Edit", 3, "click"], [1, "field-item"], [1, "field-header"], [1, "field-name"], [1, "field-badges"], [1, "badge", "type"], [1, "badge", "secret"], [1, "badge", "required"], [1, "field-description"], [1, "fa-solid", "fa-lock"], [1, "fa-solid", "fa-info-circle"], [1, "fa-solid", "fa-check-circle"], [1, "validation-endpoint"], [1, "fa-solid", "fa-link"], [1, "no-selection-icon"], [1, "fa-solid", "fa-hand-pointer"]], template: function CredentialsTypesResourceComponent_Template(rf, ctx) { if (rf & 1) {
|
|
849
804
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
850
|
-
i0.ɵɵelementStart(0, "
|
|
851
|
-
i0.ɵɵ
|
|
852
|
-
i0.ɵɵ
|
|
805
|
+
i0.ɵɵelementStart(0, "mj-page-layout")(1, "mj-page-header", 1)(2, "div", 2);
|
|
806
|
+
i0.ɵɵelement(3, "mj-stat-badge", 3)(4, "mj-stat-badge", 4)(5, "mj-stat-badge", 5);
|
|
807
|
+
i0.ɵɵelementEnd();
|
|
808
|
+
i0.ɵɵelementStart(6, "div", 6)(7, "mj-filter-popover", 7);
|
|
809
|
+
i0.ɵɵlistener("ClearAllRequested", function CredentialsTypesResourceComponent_Template_mj_filter_popover_ClearAllRequested_7_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.resetFilters()); });
|
|
810
|
+
i0.ɵɵelementStart(8, "mj-filter-panel", 8);
|
|
811
|
+
i0.ɵɵlistener("ValuesChange", function CredentialsTypesResourceComponent_Template_mj_filter_panel_ValuesChange_8_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onFilterValuesChange($event)); })("Reset", function CredentialsTypesResourceComponent_Template_mj_filter_panel_Reset_8_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.resetFilters()); });
|
|
812
|
+
i0.ɵɵelementEnd()();
|
|
813
|
+
i0.ɵɵelementStart(9, "mj-refresh-button", 9);
|
|
814
|
+
i0.ɵɵlistener("Clicked", function CredentialsTypesResourceComponent_Template_mj_refresh_button_Clicked_9_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.refresh()); });
|
|
815
|
+
i0.ɵɵelementEnd();
|
|
816
|
+
i0.ɵɵconditionalCreate(10, CredentialsTypesResourceComponent_Conditional_10_Template, 3, 0, "button", 10);
|
|
853
817
|
i0.ɵɵelementEnd();
|
|
854
|
-
i0.ɵɵelementStart(
|
|
855
|
-
i0.ɵɵlistener("
|
|
818
|
+
i0.ɵɵelementStart(11, "div", 11)(12, "mj-page-search", 12);
|
|
819
|
+
i0.ɵɵlistener("ValueChange", function CredentialsTypesResourceComponent_Template_mj_page_search_ValueChange_12_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onSearchChange($event)); });
|
|
820
|
+
i0.ɵɵelementEnd()()();
|
|
821
|
+
i0.ɵɵelementStart(13, "mj-page-body", 13);
|
|
822
|
+
i0.ɵɵconditionalCreate(14, CredentialsTypesResourceComponent_Conditional_14_Template, 1, 0, "mj-loading", 14);
|
|
823
|
+
i0.ɵɵconditionalCreate(15, CredentialsTypesResourceComponent_Conditional_15_Template, 8, 5, "div", 15);
|
|
856
824
|
i0.ɵɵelementEnd();
|
|
825
|
+
i0.ɵɵelementStart(16, "mj-credential-type-edit-panel", 16, 0);
|
|
826
|
+
i0.ɵɵlistener("saved", function CredentialsTypesResourceComponent_Template_mj_credential_type_edit_panel_saved_16_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onTypeSaved($event)); })("deleted", function CredentialsTypesResourceComponent_Template_mj_credential_type_edit_panel_deleted_16_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onTypeDeleted($event)); });
|
|
827
|
+
i0.ɵɵelementEnd()();
|
|
857
828
|
} if (rf & 2) {
|
|
829
|
+
i0.ɵɵadvance(3);
|
|
830
|
+
i0.ɵɵproperty("Count", ctx.filteredTypes.length)("Total", ctx.types.length);
|
|
831
|
+
i0.ɵɵadvance();
|
|
832
|
+
i0.ɵɵproperty("Count", ctx.categories.length);
|
|
833
|
+
i0.ɵɵadvance();
|
|
834
|
+
i0.ɵɵproperty("Count", ctx.getTotalCredentialCount());
|
|
835
|
+
i0.ɵɵadvance(2);
|
|
836
|
+
i0.ɵɵproperty("ActiveCount", ctx.ActiveFilterCount)("ShowClearAll", ctx.ActiveFilterCount > 0);
|
|
837
|
+
i0.ɵɵadvance();
|
|
838
|
+
i0.ɵɵproperty("Fields", ctx.FilterFields)("Values", ctx.FilterValues);
|
|
839
|
+
i0.ɵɵadvance();
|
|
840
|
+
i0.ɵɵproperty("Loading", ctx.isLoading);
|
|
841
|
+
i0.ɵɵadvance();
|
|
842
|
+
i0.ɵɵconditional(ctx.UserCanCreate ? 10 : -1);
|
|
843
|
+
i0.ɵɵadvance(2);
|
|
844
|
+
i0.ɵɵproperty("Value", ctx.searchText);
|
|
845
|
+
i0.ɵɵadvance();
|
|
846
|
+
i0.ɵɵproperty("Flex", true);
|
|
858
847
|
i0.ɵɵadvance();
|
|
859
|
-
i0.ɵɵconditional(ctx.isLoading ?
|
|
848
|
+
i0.ɵɵconditional(ctx.isLoading ? 14 : -1);
|
|
860
849
|
i0.ɵɵadvance();
|
|
861
|
-
i0.ɵɵconditional(!ctx.isLoading ?
|
|
862
|
-
} }, dependencies: [i1.NgSelectOption, i1.ɵNgSelectMultipleOption, i2.MJButtonDirective, i3.LoadingComponent, i4.CredentialTypeEditPanelComponent, i5.SlicePipe, i5.KeyValuePipe], styles: [".types-container[_ngcontent-%COMP%] {\n height: 100%;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding: 24px;\n background: var(--mj-bg-page);\n}\n\n\n\n.types-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n margin-bottom: 24px;\n flex-wrap: wrap;\n gap: 16px;\n}\n\n.header-info[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.types-title[_ngcontent-%COMP%] {\n font-size: 24px;\n font-weight: 700;\n color: var(--mj-text-primary);\n margin: 0;\n}\n\n.header-stats[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.stat-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n color: var(--mj-text-secondary);\n}\n\n.stat-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n.header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n}\n\n.btn-primary[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border: none;\n border-radius: 10px;\n font-size: 14px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.2s ease;\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.btn-primary[_ngcontent-%COMP%]:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 16px color-mix(in srgb, var(--mj-brand-primary) 40%, transparent);\n}\n\n.btn-primary[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 13px;\n}\n\n\n\n.toolbar[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n margin-bottom: 16px;\n flex-wrap: wrap;\n background: var(--mj-bg-surface);\n padding: 16px;\n border-radius: 12px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);\n}\n\n.toolbar-left[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-wrap: wrap;\n flex: 1;\n}\n\n.toolbar-right[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.search-container[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 8px 12px;\n min-width: 240px;\n position: relative;\n}\n\n.search-container[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n margin-right: 8px;\n}\n\n.search-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n border: none;\n background: transparent;\n outline: none;\n flex: 1;\n font-size: 14px;\n color: var(--mj-text-primary);\n}\n\n.search-clear[_ngcontent-%COMP%] {\n position: absolute;\n right: 8px;\n top: 50%;\n transform: translateY(-50%);\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--mj-border-default);\n border: none;\n border-radius: 50%;\n cursor: pointer;\n color: var(--mj-text-secondary);\n font-size: 10px;\n}\n\n.search-clear[_ngcontent-%COMP%]:hover {\n background: var(--mj-text-secondary);\n color: var(--mj-text-inverse);\n}\n\n.filter-select[_ngcontent-%COMP%] {\n padding: 8px 12px;\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n background: var(--mj-bg-surface);\n font-size: 14px;\n color: var(--mj-text-primary);\n cursor: pointer;\n min-width: 160px;\n}\n\n.results-info[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-secondary);\n white-space: nowrap;\n}\n\n.btn-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.btn-icon[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-brand-primary);\n}\n\n\n\n.types-layout[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 420px 1fr;\n flex: 1;\n min-height: 0;\n gap: 20px;\n}\n\n\n\n.types-list[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n overflow-y: auto;\n padding: 16px;\n}\n\n.category-section[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n}\n\n.category-section[_ngcontent-%COMP%]:last-child {\n margin-bottom: 0;\n}\n\n.category-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 12px;\n font-size: 12px;\n font-weight: 700;\n text-transform: uppercase;\n color: var(--mj-text-secondary);\n letter-spacing: 0.5px;\n border-left: 3px solid var(--mj-brand-primary);\n background: var(--mj-bg-surface-card);\n border-radius: 0 8px 8px 0;\n margin-bottom: 8px;\n}\n\n.category-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n}\n\n.category-name[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.category-header[_ngcontent-%COMP%] .count[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n padding: 2px 10px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n}\n\n.type-items[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.type-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n padding: 12px 14px;\n background: var(--mj-bg-surface);\n border-radius: 10px;\n cursor: pointer;\n transition: all 0.2s ease;\n border: 2px solid transparent;\n position: relative;\n}\n\n.type-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-page);\n border-color: var(--mj-border-default);\n}\n\n.type-item.selected[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 5%, var(--mj-bg-surface));\n border-color: var(--mj-brand-primary);\n}\n\n.type-icon[_ngcontent-%COMP%] {\n width: 42px;\n height: 42px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 10px;\n margin-right: 12px;\n flex-shrink: 0;\n}\n\n.type-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n}\n\n.type-info[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.type-name[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 14px;\n color: var(--mj-text-primary);\n}\n\n.type-description[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-disabled);\n margin-top: 2px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.type-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n margin-top: 6px;\n}\n\n.meta-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 10px;\n font-size: 11px;\n color: var(--mj-text-secondary);\n}\n\n.meta-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 9px;\n}\n\n.meta-badge.active[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n.meta-badge.warning[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 8%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n}\n\n.type-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n margin-right: 8px;\n opacity: 0;\n transition: opacity 0.2s ease;\n}\n\n.type-item[_ngcontent-%COMP%]:hover .type-actions[_ngcontent-%COMP%] {\n opacity: 1;\n}\n\n.action-btn[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: var(--mj-bg-surface-sunken);\n border-radius: 6px;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.2s ease;\n font-size: 12px;\n}\n\n.action-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n}\n\n.action-btn.danger[_ngcontent-%COMP%]:hover {\n background: var(--mj-status-error);\n}\n\n.arrow[_ngcontent-%COMP%] {\n color: var(--mj-border-strong);\n font-size: 12px;\n}\n\n\n\n.type-detail[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n overflow-y: auto;\n}\n\n.detail-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n padding: 24px;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.detail-icon[_ngcontent-%COMP%] {\n width: 60px;\n height: 60px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 14px;\n margin-right: 16px;\n flex-shrink: 0;\n}\n\n.detail-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 26px;\n}\n\n.detail-title[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.detail-title[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n font-size: 22px;\n font-weight: 700;\n color: var(--mj-text-primary);\n margin: 0 0 8px 0;\n}\n\n.category-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 12px;\n border-radius: 8px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.category-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n}\n\n.detail-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n}\n\n.close-btn[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: var(--mj-bg-surface-sunken);\n border-radius: 8px;\n cursor: pointer;\n color: var(--mj-text-secondary);\n transition: all 0.2s ease;\n}\n\n.close-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.detail-body[_ngcontent-%COMP%] {\n padding: 24px;\n}\n\n\n\n.detail-stats[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n margin-bottom: 24px;\n padding-bottom: 24px;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.detail-stat[_ngcontent-%COMP%] {\n flex: 1;\n text-align: center;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border-radius: 12px;\n}\n\n.detail-stat[_ngcontent-%COMP%] .stat-value[_ngcontent-%COMP%] {\n font-size: 28px;\n font-weight: 700;\n color: var(--mj-text-primary);\n}\n\n.detail-stat[_ngcontent-%COMP%] .stat-label[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-secondary);\n margin-top: 4px;\n}\n\n.detail-stat.active[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 8%, var(--mj-bg-surface));\n}\n\n.detail-stat.active[_ngcontent-%COMP%] .stat-value[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.detail-stat.warning[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 8%, var(--mj-bg-surface));\n}\n\n.detail-stat.warning[_ngcontent-%COMP%] .stat-value[_ngcontent-%COMP%] {\n color: var(--mj-status-warning);\n}\n\n.description[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-text-secondary);\n line-height: 1.6;\n margin: 0 0 24px 0;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border-radius: 10px;\n}\n\n.schema-section[_ngcontent-%COMP%], \n.validation-section[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.schema-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%], \n.validation-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 14px;\n font-weight: 700;\n color: var(--mj-text-primary);\n margin: 0 0 16px 0;\n}\n\n.schema-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.validation-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.field-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.field-item[_ngcontent-%COMP%] {\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border-radius: 10px;\n border: 1px solid var(--mj-border-default);\n transition: all 0.2s ease;\n}\n\n.field-item[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n background: var(--mj-bg-surface-sunken);\n}\n\n.field-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.field-name[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 14px;\n color: var(--mj-text-primary);\n}\n\n.field-badges[_ngcontent-%COMP%] {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.badge[_ngcontent-%COMP%] {\n padding: 3px 10px;\n border-radius: 6px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.badge.type[_ngcontent-%COMP%] {\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n}\n\n.badge.secret[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n}\n\n.badge.secret[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 3px;\n}\n\n.badge.required[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.field-description[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-secondary);\n margin: 10px 0 0 0;\n line-height: 1.5;\n}\n\n.no-fields[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border-radius: 10px;\n color: var(--mj-text-disabled);\n font-size: 13px;\n}\n\n.no-fields[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.validation-endpoint[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 14px 18px;\n background: var(--mj-bg-surface-card);\n border-radius: 10px;\n font-size: 13px;\n color: var(--mj-text-secondary);\n font-family: 'SF Mono', 'Monaco', 'Inconsolata', monospace;\n border: 1px solid var(--mj-border-default);\n}\n\n.validation-endpoint[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.detail-quick-actions[_ngcontent-%COMP%] {\n margin-top: 24px;\n padding-top: 24px;\n border-top: 1px solid var(--mj-bg-surface-sunken);\n}\n\n\n\n.no-selection[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n text-align: center;\n background: var(--mj-bg-surface);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n padding: 48px;\n}\n\n.no-selection-icon[_ngcontent-%COMP%] {\n width: 80px;\n height: 80px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n border-radius: 20px;\n margin-bottom: 24px;\n}\n\n.no-selection-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n color: var(--mj-brand-primary);\n}\n\n.no-selection[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 700;\n color: var(--mj-text-primary);\n margin: 0 0 8px 0;\n}\n\n.no-selection[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-text-secondary);\n margin: 0;\n}\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 24px;\n text-align: center;\n}\n\n.empty-icon[_ngcontent-%COMP%] {\n width: 72px;\n height: 72px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n border-radius: 18px;\n margin-bottom: 20px;\n}\n\n.empty-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n color: var(--mj-brand-primary);\n}\n\n.empty-state[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 700;\n color: var(--mj-text-primary);\n margin: 0 0 8px 0;\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-text-secondary);\n margin: 0 0 20px 0;\n}\n\n.btn-link[_ngcontent-%COMP%] {\n background: none;\n border: none;\n color: var(--mj-brand-primary);\n font-size: 14px;\n cursor: pointer;\n text-decoration: underline;\n padding: 0;\n}\n\n.btn-link[_ngcontent-%COMP%]:hover {\n color: var(--mj-brand-primary-hover);\n}\n\n\n\n@media (max-width: 1024px) {\n .types-layout[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .types-list[_ngcontent-%COMP%] {\n max-height: 400px;\n }\n}\n\n@media (max-width: 768px) {\n .types-container[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .types-header[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .toolbar[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n }\n\n .toolbar-left[_ngcontent-%COMP%] {\n flex-direction: column;\n }\n\n .search-container[_ngcontent-%COMP%] {\n min-width: 100%;\n }\n\n .filter-select[_ngcontent-%COMP%] {\n width: 100%;\n }\n\n .toolbar-right[_ngcontent-%COMP%] {\n justify-content: space-between;\n }\n\n .detail-stats[_ngcontent-%COMP%] {\n flex-direction: column;\n }\n}"], changeDetection: 0 });
|
|
850
|
+
i0.ɵɵconditional(!ctx.isLoading ? 15 : -1);
|
|
851
|
+
} }, dependencies: [i1.MJButtonDirective, i1.MJPageHeaderComponent, i1.MJPageLayoutComponent, i1.MJPageBodyComponent, i1.MJPageSearchComponent, i1.MJFilterPopoverComponent, i1.MJFilterPanelComponent, i1.MJStatBadgeComponent, i1.MJRefreshButtonComponent, i2.LoadingComponent, i3.CredentialTypeEditPanelComponent, i4.SlicePipe, i4.KeyValuePipe], styles: ["\n\n.types-layout[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 420px 1fr;\n flex: 1;\n min-height: 0;\n gap: 20px;\n}\n\n\n\n.types-list[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n overflow-y: auto;\n padding: 16px;\n}\n\n.category-section[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n}\n\n.category-section[_ngcontent-%COMP%]:last-child {\n margin-bottom: 0;\n}\n\n.category-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 12px;\n font-size: 12px;\n font-weight: 700;\n text-transform: uppercase;\n color: var(--mj-text-secondary);\n letter-spacing: 0.5px;\n border-left: 3px solid var(--mj-brand-primary);\n background: var(--mj-bg-surface-card);\n border-radius: 0 8px 8px 0;\n margin-bottom: 8px;\n}\n\n.category-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n}\n\n.category-name[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.category-header[_ngcontent-%COMP%] .count[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n padding: 2px 10px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n}\n\n.type-items[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.type-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n padding: 12px 14px;\n background: var(--mj-bg-surface);\n border-radius: 10px;\n cursor: pointer;\n transition: all 0.2s ease;\n border: 2px solid transparent;\n position: relative;\n}\n\n.type-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-page);\n border-color: var(--mj-border-default);\n}\n\n.type-item.selected[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 5%, var(--mj-bg-surface));\n border-color: var(--mj-brand-primary);\n}\n\n.type-icon[_ngcontent-%COMP%] {\n width: 42px;\n height: 42px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 10px;\n margin-right: 12px;\n flex-shrink: 0;\n}\n\n.type-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n}\n\n.type-info[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.type-name[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 14px;\n color: var(--mj-text-primary);\n}\n\n.type-description[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-disabled);\n margin-top: 2px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.type-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n margin-top: 6px;\n}\n\n.meta-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 10px;\n font-size: 11px;\n color: var(--mj-text-secondary);\n}\n\n.meta-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 9px;\n}\n\n.meta-badge.active[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n.meta-badge.warning[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 8%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n}\n\n.type-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n margin-right: 8px;\n opacity: 0;\n transition: opacity 0.2s ease;\n}\n\n.type-item[_ngcontent-%COMP%]:hover .type-actions[_ngcontent-%COMP%] {\n opacity: 1;\n}\n\n.action-btn[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: var(--mj-bg-surface-sunken);\n border-radius: 6px;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.2s ease;\n font-size: 12px;\n}\n\n.action-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n}\n\n.action-btn.danger[_ngcontent-%COMP%]:hover {\n background: var(--mj-status-error);\n}\n\n.arrow[_ngcontent-%COMP%] {\n color: var(--mj-border-strong);\n font-size: 12px;\n}\n\n\n\n.type-detail[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n overflow-y: auto;\n}\n\n.detail-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n padding: 24px;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.detail-icon[_ngcontent-%COMP%] {\n width: 60px;\n height: 60px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 14px;\n margin-right: 16px;\n flex-shrink: 0;\n}\n\n.detail-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 26px;\n}\n\n.detail-title[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.detail-title[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n font-size: 22px;\n font-weight: 700;\n color: var(--mj-text-primary);\n margin: 0 0 8px 0;\n}\n\n.category-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 12px;\n border-radius: 8px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.category-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n}\n\n.detail-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n}\n\n.close-btn[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: var(--mj-bg-surface-sunken);\n border-radius: 8px;\n cursor: pointer;\n color: var(--mj-text-secondary);\n transition: all 0.2s ease;\n}\n\n.close-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.detail-body[_ngcontent-%COMP%] {\n padding: 24px;\n}\n\n\n\n.detail-stats[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n margin-bottom: 24px;\n padding-bottom: 24px;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.detail-stat[_ngcontent-%COMP%] {\n flex: 1;\n text-align: center;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border-radius: 12px;\n}\n\n.detail-stat[_ngcontent-%COMP%] .stat-value[_ngcontent-%COMP%] {\n font-size: 28px;\n font-weight: 700;\n color: var(--mj-text-primary);\n}\n\n.detail-stat[_ngcontent-%COMP%] .stat-label[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-secondary);\n margin-top: 4px;\n}\n\n.detail-stat.active[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 8%, var(--mj-bg-surface));\n}\n\n.detail-stat.active[_ngcontent-%COMP%] .stat-value[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.detail-stat.warning[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 8%, var(--mj-bg-surface));\n}\n\n.detail-stat.warning[_ngcontent-%COMP%] .stat-value[_ngcontent-%COMP%] {\n color: var(--mj-status-warning);\n}\n\n.description[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-text-secondary);\n line-height: 1.6;\n margin: 0 0 24px 0;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border-radius: 10px;\n}\n\n.schema-section[_ngcontent-%COMP%], \n.validation-section[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.schema-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%], \n.validation-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 14px;\n font-weight: 700;\n color: var(--mj-text-primary);\n margin: 0 0 16px 0;\n}\n\n.schema-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.validation-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.field-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.field-item[_ngcontent-%COMP%] {\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border-radius: 10px;\n border: 1px solid var(--mj-border-default);\n transition: all 0.2s ease;\n}\n\n.field-item[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n background: var(--mj-bg-surface-sunken);\n}\n\n.field-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.field-name[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 14px;\n color: var(--mj-text-primary);\n}\n\n.field-badges[_ngcontent-%COMP%] {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.badge[_ngcontent-%COMP%] {\n padding: 3px 10px;\n border-radius: 6px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.badge.type[_ngcontent-%COMP%] {\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n}\n\n.badge.secret[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n}\n\n.badge.secret[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 3px;\n}\n\n.badge.required[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.field-description[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-secondary);\n margin: 10px 0 0 0;\n line-height: 1.5;\n}\n\n.no-fields[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border-radius: 10px;\n color: var(--mj-text-disabled);\n font-size: 13px;\n}\n\n.no-fields[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.validation-endpoint[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 14px 18px;\n background: var(--mj-bg-surface-card);\n border-radius: 10px;\n font-size: 13px;\n color: var(--mj-text-secondary);\n font-family: 'SF Mono', 'Monaco', 'Inconsolata', monospace;\n border: 1px solid var(--mj-border-default);\n}\n\n.validation-endpoint[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.detail-quick-actions[_ngcontent-%COMP%] {\n margin-top: 24px;\n padding-top: 24px;\n border-top: 1px solid var(--mj-bg-surface-sunken);\n}\n\n\n\n.no-selection[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n text-align: center;\n background: var(--mj-bg-surface);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n padding: 48px;\n}\n\n.no-selection-icon[_ngcontent-%COMP%] {\n width: 80px;\n height: 80px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n border-radius: 20px;\n margin-bottom: 24px;\n}\n\n.no-selection-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n color: var(--mj-brand-primary);\n}\n\n.no-selection[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 700;\n color: var(--mj-text-primary);\n margin: 0 0 8px 0;\n}\n\n.no-selection[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-text-secondary);\n margin: 0;\n}\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 24px;\n text-align: center;\n}\n\n.empty-icon[_ngcontent-%COMP%] {\n width: 72px;\n height: 72px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n border-radius: 18px;\n margin-bottom: 20px;\n}\n\n.empty-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n color: var(--mj-brand-primary);\n}\n\n.empty-state[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 700;\n color: var(--mj-text-primary);\n margin: 0 0 8px 0;\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-text-secondary);\n margin: 0 0 20px 0;\n}\n\n.btn-link[_ngcontent-%COMP%] {\n background: none;\n border: none;\n color: var(--mj-brand-primary);\n font-size: 14px;\n cursor: pointer;\n text-decoration: underline;\n padding: 0;\n}\n\n.btn-link[_ngcontent-%COMP%]:hover {\n color: var(--mj-brand-primary-hover);\n}\n\n\n\n@media (max-width: 1024px) {\n .types-layout[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .types-list[_ngcontent-%COMP%] {\n max-height: 400px;\n }\n}\n\n@media (max-width: 768px) {\n .types-container[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .types-header[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .toolbar[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n }\n\n .toolbar-left[_ngcontent-%COMP%] {\n flex-direction: column;\n }\n\n .search-container[_ngcontent-%COMP%] {\n min-width: 100%;\n }\n\n .filter-select[_ngcontent-%COMP%] {\n width: 100%;\n }\n\n .toolbar-right[_ngcontent-%COMP%] {\n justify-content: space-between;\n }\n\n .detail-stats[_ngcontent-%COMP%] {\n flex-direction: column;\n }\n}"], changeDetection: 0 });
|
|
863
852
|
};
|
|
864
853
|
CredentialsTypesResourceComponent = __decorate([
|
|
865
854
|
RegisterClass(BaseResourceComponent, 'CredentialsTypesResource')
|
|
@@ -867,10 +856,10 @@ CredentialsTypesResourceComponent = __decorate([
|
|
|
867
856
|
export { CredentialsTypesResourceComponent };
|
|
868
857
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CredentialsTypesResourceComponent, [{
|
|
869
858
|
type: Component,
|
|
870
|
-
args: [{ standalone: false, selector: 'mj-credentials-types-resource', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"types-container\">\n @if (isLoading) {\n <mj-loading text=\"Loading credential types...\"></mj-loading>\n }\n\n @if (!isLoading) {\n <!-- Header -->\n <div class=\"types-header\">\n <div class=\"header-info\">\n <h2 class=\"types-title\">Credential Types</h2>\n <div class=\"header-stats\">\n <span class=\"stat-item\">\n <i class=\"fa-solid fa-shapes\"></i>\n {{types.length}} types\n </span>\n <span class=\"stat-item\">\n <i class=\"fa-solid fa-folder\"></i>\n {{categories.length}} categories\n </span>\n <span class=\"stat-item\">\n <i class=\"fa-solid fa-key\"></i>\n {{getTotalCredentialCount()}} credentials\n </span>\n </div>\n </div>\n <div class=\"header-actions\">\n @if (UserCanCreate) {\n <button class=\"btn-primary\" (click)=\"createNewType()\">\n <i class=\"fa-solid fa-plus\"></i>\n <span>New Type</span>\n </button>\n }\n </div>\n </div>\n <!-- Toolbar -->\n <div class=\"toolbar\">\n <div class=\"toolbar-left\">\n <div class=\"search-container\">\n <i class=\"fa-solid fa-search\"></i>\n <input\n type=\"text\"\n placeholder=\"Search types...\"\n [value]=\"searchText\"\n (input)=\"onSearchChange($any($event.target).value)\"\n />\n @if (searchText) {\n <button class=\"search-clear\" (click)=\"onSearchChange('')\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n }\n </div>\n <select\n class=\"filter-select\"\n [value]=\"selectedCategoryFilter\"\n (change)=\"onCategoryFilterChange($any($event.target).value)\"\n >\n <option value=\"\">All Categories</option>\n @for (cat of categories; track cat) {\n <option [value]=\"cat\">{{cat}}</option>\n }\n </select>\n </div>\n <div class=\"toolbar-right\">\n <div class=\"results-info\">\n {{filteredTypes.length}} of {{types.length}} types\n </div>\n <button class=\"btn-icon\" (click)=\"refresh()\" title=\"Refresh\">\n <i class=\"fa-solid fa-refresh\"></i>\n </button>\n </div>\n </div>\n <div class=\"types-layout\">\n <!-- Types List -->\n <div class=\"types-list\">\n @for (entry of getTypesByCategory() | keyvalue; track entry) {\n <div class=\"category-section\">\n <div class=\"category-header\" [style.borderLeftColor]=\"getCategoryColor(entry.key)\">\n <i [class]=\"getCategoryIcon(entry.key)\" [style.color]=\"getCategoryColor(entry.key)\"></i>\n <span class=\"category-name\">{{entry.key}}</span>\n <span class=\"count\">{{entry.value.length}}</span>\n </div>\n <div class=\"type-items\">\n @for (type of entry.value; track type) {\n <div\n class=\"type-item\"\n [class.selected]=\"IsTypeSelected(type)\"\n (click)=\"selectType(type)\"\n >\n <div class=\"type-icon\" [style.backgroundColor]=\"getCategoryColor(type.Category) + '15'\" [style.color]=\"getCategoryColor(type.Category)\">\n <i [class]=\"type.IconClass || 'fa-solid fa-key'\"></i>\n </div>\n <div class=\"type-info\">\n <div class=\"type-name\">{{type.Name}}</div>\n @if (type.Description) {\n <div class=\"type-description\">\n {{type.Description | slice:0:60}}{{type.Description.length > 60 ? '...' : ''}}\n </div>\n }\n <div class=\"type-meta\">\n @if (type.credentialCount > 0) {\n <span class=\"meta-badge\">\n <i class=\"fa-solid fa-key\"></i>\n {{type.credentialCount}}\n </span>\n }\n @if (type.activeCount > 0) {\n <span class=\"meta-badge active\">\n <i class=\"fa-solid fa-check\"></i>\n {{type.activeCount}} active\n </span>\n }\n @if (type.expiringCount > 0) {\n <span class=\"meta-badge warning\">\n <i class=\"fa-solid fa-clock\"></i>\n {{type.expiringCount}} expiring\n </span>\n }\n </div>\n </div>\n <div class=\"type-actions\">\n @if (UserCanCreateCredential) {\n <button mjButton variant=\"flat\" size=\"sm\"\n (click)=\"createCredentialForType(type, $event)\"\n title=\"Add Credential\">\n <i class=\"fa-solid fa-plus\"></i>\n </button>\n }\n @if (UserCanUpdate) {\n <button mjButton variant=\"flat\" size=\"sm\"\n (click)=\"editType(type, $event)\"\n title=\"Edit Type\">\n <i class=\"fa-solid fa-pen\"></i>\n </button>\n }\n @if (UserCanDelete && type.credentialCount === 0) {\n <button mjButton variant=\"danger\" size=\"sm\"\n (click)=\"deleteType(type, $event)\"\n title=\"Delete Type\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n }\n </div>\n <i class=\"fa-solid fa-chevron-right arrow\"></i>\n </div>\n }\n </div>\n </div>\n }\n @if (filteredTypes.length === 0) {\n <div class=\"empty-state\">\n <div class=\"empty-icon\">\n <i class=\"fa-solid fa-cubes\"></i>\n </div>\n <h3>No Credential Types Found</h3>\n @if (searchText || selectedCategoryFilter) {\n <p>\n No types match your current filters.\n <button class=\"btn-link\" (click)=\"clearFilters()\">Clear filters</button>\n </p>\n }\n @if (!searchText && !selectedCategoryFilter) {\n <p>\n Get started by creating your first credential type.\n </p>\n }\n @if (UserCanCreate && !searchText && !selectedCategoryFilter) {\n <button class=\"btn-primary\" (click)=\"createNewType()\">\n <i class=\"fa-solid fa-plus\"></i>\n Create Type\n </button>\n }\n </div>\n }\n </div>\n <!-- Type Detail -->\n @if (selectedType) {\n <div class=\"type-detail\">\n <div class=\"detail-header\">\n <div class=\"detail-icon\" [style.backgroundColor]=\"getCategoryColor(selectedType.Category) + '15'\" [style.color]=\"getCategoryColor(selectedType.Category)\">\n <i [class]=\"selectedType.IconClass || 'fa-solid fa-key'\"></i>\n </div>\n <div class=\"detail-title\">\n <h2>{{selectedType.Name}}</h2>\n <span class=\"category-badge\" [style.backgroundColor]=\"getCategoryColor(selectedType.Category) + '20'\" [style.color]=\"getCategoryColor(selectedType.Category)\">\n <i [class]=\"getCategoryIcon(selectedType.Category)\"></i>\n {{selectedType.Category}}\n </span>\n </div>\n <div class=\"detail-actions\">\n @if (UserCanUpdate) {\n <button mjButton variant=\"flat\" size=\"sm\" (click)=\"editType(selectedType)\" title=\"Edit\">\n <i class=\"fa-solid fa-pen\"></i>\n </button>\n }\n <button class=\"close-btn\" (click)=\"closeDetail()\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n </div>\n <div class=\"detail-body\">\n <!-- Stats Row -->\n <div class=\"detail-stats\">\n <div class=\"detail-stat\">\n <div class=\"stat-value\">{{selectedType.credentialCount}}</div>\n <div class=\"stat-label\">Credentials</div>\n </div>\n <div class=\"detail-stat active\">\n <div class=\"stat-value\">{{selectedType.activeCount}}</div>\n <div class=\"stat-label\">Active</div>\n </div>\n @if (selectedType.expiringCount > 0) {\n <div class=\"detail-stat warning\">\n <div class=\"stat-value\">{{selectedType.expiringCount}}</div>\n <div class=\"stat-label\">Expiring</div>\n </div>\n }\n </div>\n @if (selectedType.Description) {\n <p class=\"description\">\n {{selectedType.Description}}\n </p>\n }\n <div class=\"schema-section\">\n <h3>\n <i class=\"fa-solid fa-list-check\"></i>\n Field Schema\n </h3>\n @if (schemaProperties.length > 0) {\n <div class=\"field-list\">\n @for (prop of schemaProperties; track prop) {\n <div class=\"field-item\">\n <div class=\"field-header\">\n <span class=\"field-name\">{{prop.title}}</span>\n <span class=\"field-badges\">\n <span class=\"badge type\">{{prop.type}}</span>\n @if (prop.isSecret) {\n <span class=\"badge secret\">\n <i class=\"fa-solid fa-lock\"></i> Secret\n </span>\n }\n @if (prop.required) {\n <span class=\"badge required\">Required</span>\n }\n </span>\n </div>\n @if (prop.description) {\n <p class=\"field-description\">\n {{prop.description}}\n </p>\n }\n </div>\n }\n </div>\n }\n @if (schemaProperties.length === 0) {\n <div class=\"no-fields\">\n <i class=\"fa-solid fa-info-circle\"></i>\n <span>No fields defined in schema</span>\n </div>\n }\n </div>\n @if (selectedType.ValidationEndpoint) {\n <div class=\"validation-section\">\n <h3>\n <i class=\"fa-solid fa-check-circle\"></i>\n Validation\n </h3>\n <div class=\"validation-endpoint\">\n <i class=\"fa-solid fa-link\"></i>\n <span>{{selectedType.ValidationEndpoint}}</span>\n </div>\n </div>\n }\n <!-- Quick Actions -->\n @if (UserCanCreateCredential) {\n <div class=\"detail-quick-actions\">\n <button class=\"btn-primary\" (click)=\"createCredentialForType(selectedType)\">\n <i class=\"fa-solid fa-plus\"></i>\n Create Credential\n </button>\n </div>\n }\n </div>\n </div>\n }\n <!-- No Selection -->\n @if (!selectedType && filteredTypes.length > 0) {\n <div class=\"no-selection\">\n <div class=\"no-selection-icon\">\n <i class=\"fa-solid fa-hand-pointer\"></i>\n </div>\n <h3>Select a Credential Type</h3>\n <p>Click on a credential type to view its details and field schema</p>\n </div>\n }\n </div>\n }\n</div>\n\n<!-- Type Edit Panel -->\n<mj-credential-type-edit-panel\n #typeEditPanel\n (saved)=\"onTypeSaved($any($event))\"\n (deleted)=\"onTypeDeleted($any($event))\"\n></mj-credential-type-edit-panel>\n", styles: [".types-container {\n height: 100%;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding: 24px;\n background: var(--mj-bg-page);\n}\n\n/* Header */\n.types-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n margin-bottom: 24px;\n flex-wrap: wrap;\n gap: 16px;\n}\n\n.header-info {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.types-title {\n font-size: 24px;\n font-weight: 700;\n color: var(--mj-text-primary);\n margin: 0;\n}\n\n.header-stats {\n display: flex;\n align-items: center;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.stat-item {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n color: var(--mj-text-secondary);\n}\n\n.stat-item i {\n font-size: 12px;\n}\n\n.header-actions {\n display: flex;\n gap: 12px;\n}\n\n.btn-primary {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border: none;\n border-radius: 10px;\n font-size: 14px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.2s ease;\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.btn-primary:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 16px color-mix(in srgb, var(--mj-brand-primary) 40%, transparent);\n}\n\n.btn-primary i {\n font-size: 13px;\n}\n\n/* Toolbar */\n.toolbar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n margin-bottom: 16px;\n flex-wrap: wrap;\n background: var(--mj-bg-surface);\n padding: 16px;\n border-radius: 12px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);\n}\n\n.toolbar-left {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-wrap: wrap;\n flex: 1;\n}\n\n.toolbar-right {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.search-container {\n display: flex;\n align-items: center;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 8px 12px;\n min-width: 240px;\n position: relative;\n}\n\n.search-container i {\n color: var(--mj-text-secondary);\n margin-right: 8px;\n}\n\n.search-container input {\n border: none;\n background: transparent;\n outline: none;\n flex: 1;\n font-size: 14px;\n color: var(--mj-text-primary);\n}\n\n.search-clear {\n position: absolute;\n right: 8px;\n top: 50%;\n transform: translateY(-50%);\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--mj-border-default);\n border: none;\n border-radius: 50%;\n cursor: pointer;\n color: var(--mj-text-secondary);\n font-size: 10px;\n}\n\n.search-clear:hover {\n background: var(--mj-text-secondary);\n color: var(--mj-text-inverse);\n}\n\n.filter-select {\n padding: 8px 12px;\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n background: var(--mj-bg-surface);\n font-size: 14px;\n color: var(--mj-text-primary);\n cursor: pointer;\n min-width: 160px;\n}\n\n.results-info {\n font-size: 13px;\n color: var(--mj-text-secondary);\n white-space: nowrap;\n}\n\n.btn-icon {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.btn-icon:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-brand-primary);\n}\n\n/* Layout */\n.types-layout {\n display: grid;\n grid-template-columns: 420px 1fr;\n flex: 1;\n min-height: 0;\n gap: 20px;\n}\n\n/* Types List */\n.types-list {\n background: var(--mj-bg-surface);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n overflow-y: auto;\n padding: 16px;\n}\n\n.category-section {\n margin-bottom: 20px;\n}\n\n.category-section:last-child {\n margin-bottom: 0;\n}\n\n.category-header {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 12px;\n font-size: 12px;\n font-weight: 700;\n text-transform: uppercase;\n color: var(--mj-text-secondary);\n letter-spacing: 0.5px;\n border-left: 3px solid var(--mj-brand-primary);\n background: var(--mj-bg-surface-card);\n border-radius: 0 8px 8px 0;\n margin-bottom: 8px;\n}\n\n.category-header i {\n font-size: 14px;\n}\n\n.category-name {\n flex: 1;\n}\n\n.category-header .count {\n background: var(--mj-bg-surface);\n padding: 2px 10px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n}\n\n.type-items {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.type-item {\n display: flex;\n align-items: center;\n padding: 12px 14px;\n background: var(--mj-bg-surface);\n border-radius: 10px;\n cursor: pointer;\n transition: all 0.2s ease;\n border: 2px solid transparent;\n position: relative;\n}\n\n.type-item:hover {\n background: var(--mj-bg-page);\n border-color: var(--mj-border-default);\n}\n\n.type-item.selected {\n background: color-mix(in srgb, var(--mj-brand-primary) 5%, var(--mj-bg-surface));\n border-color: var(--mj-brand-primary);\n}\n\n.type-icon {\n width: 42px;\n height: 42px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 10px;\n margin-right: 12px;\n flex-shrink: 0;\n}\n\n.type-icon i {\n font-size: 16px;\n}\n\n.type-info {\n flex: 1;\n min-width: 0;\n}\n\n.type-name {\n font-weight: 600;\n font-size: 14px;\n color: var(--mj-text-primary);\n}\n\n.type-description {\n font-size: 12px;\n color: var(--mj-text-disabled);\n margin-top: 2px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.type-meta {\n display: flex;\n gap: 8px;\n margin-top: 6px;\n}\n\n.meta-badge {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 10px;\n font-size: 11px;\n color: var(--mj-text-secondary);\n}\n\n.meta-badge i {\n font-size: 9px;\n}\n\n.meta-badge.active {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n.meta-badge.warning {\n background: color-mix(in srgb, var(--mj-status-warning) 8%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n}\n\n.type-actions {\n display: flex;\n gap: 4px;\n margin-right: 8px;\n opacity: 0;\n transition: opacity 0.2s ease;\n}\n\n.type-item:hover .type-actions {\n opacity: 1;\n}\n\n.action-btn {\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: var(--mj-bg-surface-sunken);\n border-radius: 6px;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.2s ease;\n font-size: 12px;\n}\n\n.action-btn:hover {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n}\n\n.action-btn.danger:hover {\n background: var(--mj-status-error);\n}\n\n.arrow {\n color: var(--mj-border-strong);\n font-size: 12px;\n}\n\n/* Type Detail */\n.type-detail {\n background: var(--mj-bg-surface);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n overflow-y: auto;\n}\n\n.detail-header {\n display: flex;\n align-items: center;\n padding: 24px;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.detail-icon {\n width: 60px;\n height: 60px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 14px;\n margin-right: 16px;\n flex-shrink: 0;\n}\n\n.detail-icon i {\n font-size: 26px;\n}\n\n.detail-title {\n flex: 1;\n}\n\n.detail-title h2 {\n font-size: 22px;\n font-weight: 700;\n color: var(--mj-text-primary);\n margin: 0 0 8px 0;\n}\n\n.category-badge {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 12px;\n border-radius: 8px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.category-badge i {\n font-size: 11px;\n}\n\n.detail-actions {\n display: flex;\n gap: 8px;\n}\n\n.close-btn {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: var(--mj-bg-surface-sunken);\n border-radius: 8px;\n cursor: pointer;\n color: var(--mj-text-secondary);\n transition: all 0.2s ease;\n}\n\n.close-btn:hover {\n background: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.detail-body {\n padding: 24px;\n}\n\n/* Detail Stats */\n.detail-stats {\n display: flex;\n gap: 16px;\n margin-bottom: 24px;\n padding-bottom: 24px;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.detail-stat {\n flex: 1;\n text-align: center;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border-radius: 12px;\n}\n\n.detail-stat .stat-value {\n font-size: 28px;\n font-weight: 700;\n color: var(--mj-text-primary);\n}\n\n.detail-stat .stat-label {\n font-size: 12px;\n color: var(--mj-text-secondary);\n margin-top: 4px;\n}\n\n.detail-stat.active {\n background: color-mix(in srgb, var(--mj-status-success) 8%, var(--mj-bg-surface));\n}\n\n.detail-stat.active .stat-value {\n color: var(--mj-status-success);\n}\n\n.detail-stat.warning {\n background: color-mix(in srgb, var(--mj-status-warning) 8%, var(--mj-bg-surface));\n}\n\n.detail-stat.warning .stat-value {\n color: var(--mj-status-warning);\n}\n\n.description {\n font-size: 14px;\n color: var(--mj-text-secondary);\n line-height: 1.6;\n margin: 0 0 24px 0;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border-radius: 10px;\n}\n\n.schema-section,\n.validation-section {\n margin-bottom: 24px;\n}\n\n.schema-section h3,\n.validation-section h3 {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 14px;\n font-weight: 700;\n color: var(--mj-text-primary);\n margin: 0 0 16px 0;\n}\n\n.schema-section h3 i,\n.validation-section h3 i {\n color: var(--mj-brand-primary);\n}\n\n.field-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.field-item {\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border-radius: 10px;\n border: 1px solid var(--mj-border-default);\n transition: all 0.2s ease;\n}\n\n.field-item:hover {\n border-color: var(--mj-brand-primary);\n background: var(--mj-bg-surface-sunken);\n}\n\n.field-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.field-name {\n font-weight: 600;\n font-size: 14px;\n color: var(--mj-text-primary);\n}\n\n.field-badges {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.badge {\n padding: 3px 10px;\n border-radius: 6px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.badge.type {\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n}\n\n.badge.secret {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n}\n\n.badge.secret i {\n margin-right: 3px;\n}\n\n.badge.required {\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.field-description {\n font-size: 13px;\n color: var(--mj-text-secondary);\n margin: 10px 0 0 0;\n line-height: 1.5;\n}\n\n.no-fields {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border-radius: 10px;\n color: var(--mj-text-disabled);\n font-size: 13px;\n}\n\n.no-fields i {\n color: var(--mj-brand-primary);\n}\n\n.validation-endpoint {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 14px 18px;\n background: var(--mj-bg-surface-card);\n border-radius: 10px;\n font-size: 13px;\n color: var(--mj-text-secondary);\n font-family: 'SF Mono', 'Monaco', 'Inconsolata', monospace;\n border: 1px solid var(--mj-border-default);\n}\n\n.validation-endpoint i {\n color: var(--mj-brand-primary);\n}\n\n.detail-quick-actions {\n margin-top: 24px;\n padding-top: 24px;\n border-top: 1px solid var(--mj-bg-surface-sunken);\n}\n\n/* No Selection */\n.no-selection {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n text-align: center;\n background: var(--mj-bg-surface);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n padding: 48px;\n}\n\n.no-selection-icon {\n width: 80px;\n height: 80px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n border-radius: 20px;\n margin-bottom: 24px;\n}\n\n.no-selection-icon i {\n font-size: 32px;\n color: var(--mj-brand-primary);\n}\n\n.no-selection h3 {\n font-size: 18px;\n font-weight: 700;\n color: var(--mj-text-primary);\n margin: 0 0 8px 0;\n}\n\n.no-selection p {\n font-size: 14px;\n color: var(--mj-text-secondary);\n margin: 0;\n}\n\n/* Empty State */\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 24px;\n text-align: center;\n}\n\n.empty-icon {\n width: 72px;\n height: 72px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n border-radius: 18px;\n margin-bottom: 20px;\n}\n\n.empty-icon i {\n font-size: 32px;\n color: var(--mj-brand-primary);\n}\n\n.empty-state h3 {\n font-size: 18px;\n font-weight: 700;\n color: var(--mj-text-primary);\n margin: 0 0 8px 0;\n}\n\n.empty-state p {\n font-size: 14px;\n color: var(--mj-text-secondary);\n margin: 0 0 20px 0;\n}\n\n.btn-link {\n background: none;\n border: none;\n color: var(--mj-brand-primary);\n font-size: 14px;\n cursor: pointer;\n text-decoration: underline;\n padding: 0;\n}\n\n.btn-link:hover {\n color: var(--mj-brand-primary-hover);\n}\n\n/* Responsive */\n@media (max-width: 1024px) {\n .types-layout {\n grid-template-columns: 1fr;\n }\n\n .types-list {\n max-height: 400px;\n }\n}\n\n@media (max-width: 768px) {\n .types-container {\n padding: 16px;\n }\n\n .types-header {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .toolbar {\n flex-direction: column;\n align-items: stretch;\n }\n\n .toolbar-left {\n flex-direction: column;\n }\n\n .search-container {\n min-width: 100%;\n }\n\n .filter-select {\n width: 100%;\n }\n\n .toolbar-right {\n justify-content: space-between;\n }\n\n .detail-stats {\n flex-direction: column;\n }\n}\n"] }]
|
|
859
|
+
args: [{ standalone: false, selector: 'mj-credentials-types-resource', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mj-page-layout>\n <mj-page-header\n Title=\"Credential Types\"\n Icon=\"fa-solid fa-shapes\">\n <div meta>\n <mj-stat-badge\n [Count]=\"filteredTypes.length\"\n [Total]=\"types.length\"\n Label=\"types\">\n </mj-stat-badge>\n <mj-stat-badge\n Icon=\"fa-solid fa-folder\"\n [Count]=\"categories.length\"\n Label=\"categories\">\n </mj-stat-badge>\n <mj-stat-badge\n Icon=\"fa-solid fa-key\"\n [Count]=\"getTotalCredentialCount()\"\n Label=\"credentials\">\n </mj-stat-badge>\n </div>\n <div actions>\n <mj-filter-popover\n [ActiveCount]=\"ActiveFilterCount\"\n [ShowClearAll]=\"ActiveFilterCount > 0\"\n (ClearAllRequested)=\"resetFilters()\">\n <mj-filter-panel\n [Fields]=\"FilterFields\"\n [Values]=\"FilterValues\"\n (ValuesChange)=\"onFilterValuesChange($event)\"\n (Reset)=\"resetFilters()\">\n </mj-filter-panel>\n </mj-filter-popover>\n <mj-refresh-button [Loading]=\"isLoading\" (Clicked)=\"refresh()\"></mj-refresh-button>\n @if (UserCanCreate) {\n <button mjButton variant=\"primary\" size=\"sm\" (click)=\"createNewType()\">\n <i class=\"fa-solid fa-plus\"></i> New Type\n </button>\n }\n </div>\n <div toolbar>\n <mj-page-search\n Placeholder=\"Search types...\"\n [Value]=\"searchText\"\n (ValueChange)=\"onSearchChange($event)\">\n </mj-page-search>\n </div>\n </mj-page-header>\n\n <mj-page-body [Flex]=\"true\">\n @if (isLoading) {\n <mj-loading text=\"Loading credential types...\"></mj-loading>\n }\n\n @if (!isLoading) {\n <div class=\"types-layout\">\n <!-- Types List -->\n <div class=\"types-list\">\n @for (entry of getTypesByCategory() | keyvalue; track entry) {\n <div class=\"category-section\">\n <div class=\"category-header\" [style.borderLeftColor]=\"getCategoryColor(entry.key)\">\n <i [class]=\"getCategoryIcon(entry.key)\" [style.color]=\"getCategoryColor(entry.key)\"></i>\n <span class=\"category-name\">{{entry.key}}</span>\n <span class=\"count\">{{entry.value.length}}</span>\n </div>\n <div class=\"type-items\">\n @for (type of entry.value; track type) {\n <div\n class=\"type-item\"\n [class.selected]=\"IsTypeSelected(type)\"\n (click)=\"selectType(type)\"\n >\n <div class=\"type-icon\" [style.backgroundColor]=\"getCategoryColor(type.Category) + '15'\" [style.color]=\"getCategoryColor(type.Category)\">\n <i [class]=\"type.IconClass || 'fa-solid fa-key'\"></i>\n </div>\n <div class=\"type-info\">\n <div class=\"type-name\">{{type.Name}}</div>\n @if (type.Description) {\n <div class=\"type-description\">\n {{type.Description | slice:0:60}}{{type.Description.length > 60 ? '...' : ''}}\n </div>\n }\n <div class=\"type-meta\">\n @if (type.credentialCount > 0) {\n <span class=\"meta-badge\">\n <i class=\"fa-solid fa-key\"></i>\n {{type.credentialCount}}\n </span>\n }\n @if (type.activeCount > 0) {\n <span class=\"meta-badge active\">\n <i class=\"fa-solid fa-check\"></i>\n {{type.activeCount}} active\n </span>\n }\n @if (type.expiringCount > 0) {\n <span class=\"meta-badge warning\">\n <i class=\"fa-solid fa-clock\"></i>\n {{type.expiringCount}} expiring\n </span>\n }\n </div>\n </div>\n <div class=\"type-actions\">\n @if (UserCanCreateCredential) {\n <button mjButton variant=\"flat\" size=\"sm\"\n (click)=\"createCredentialForType(type, $event)\"\n title=\"Add Credential\">\n <i class=\"fa-solid fa-plus\"></i>\n </button>\n }\n @if (UserCanUpdate) {\n <button mjButton variant=\"flat\" size=\"sm\"\n (click)=\"editType(type, $event)\"\n title=\"Edit Type\">\n <i class=\"fa-solid fa-pen\"></i>\n </button>\n }\n @if (UserCanDelete && type.credentialCount === 0) {\n <button mjButton variant=\"danger\" size=\"sm\"\n (click)=\"deleteType(type, $event)\"\n title=\"Delete Type\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n }\n </div>\n <i class=\"fa-solid fa-chevron-right arrow\"></i>\n </div>\n }\n </div>\n </div>\n }\n @if (filteredTypes.length === 0) {\n <div class=\"empty-state\">\n <div class=\"empty-icon\">\n <i class=\"fa-solid fa-cubes\"></i>\n </div>\n <h3>No Credential Types Found</h3>\n @if (searchText || selectedCategoryFilter) {\n <p>\n No types match your current filters.\n <button class=\"btn-link\" (click)=\"clearFilters()\">Clear filters</button>\n </p>\n }\n @if (!searchText && !selectedCategoryFilter) {\n <p>\n Get started by creating your first credential type.\n </p>\n }\n @if (UserCanCreate && !searchText && !selectedCategoryFilter) {\n <button class=\"btn-primary\" (click)=\"createNewType()\">\n <i class=\"fa-solid fa-plus\"></i>\n Create Type\n </button>\n }\n </div>\n }\n </div>\n <!-- Type Detail -->\n @if (selectedType) {\n <div class=\"type-detail\">\n <div class=\"detail-header\">\n <div class=\"detail-icon\" [style.backgroundColor]=\"getCategoryColor(selectedType.Category) + '15'\" [style.color]=\"getCategoryColor(selectedType.Category)\">\n <i [class]=\"selectedType.IconClass || 'fa-solid fa-key'\"></i>\n </div>\n <div class=\"detail-title\">\n <h2>{{selectedType.Name}}</h2>\n <span class=\"category-badge\" [style.backgroundColor]=\"getCategoryColor(selectedType.Category) + '20'\" [style.color]=\"getCategoryColor(selectedType.Category)\">\n <i [class]=\"getCategoryIcon(selectedType.Category)\"></i>\n {{selectedType.Category}}\n </span>\n </div>\n <div class=\"detail-actions\">\n @if (UserCanUpdate) {\n <button mjButton variant=\"flat\" size=\"sm\" (click)=\"editType(selectedType)\" title=\"Edit\">\n <i class=\"fa-solid fa-pen\"></i>\n </button>\n }\n <button class=\"close-btn\" (click)=\"closeDetail()\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n </div>\n <div class=\"detail-body\">\n <!-- Stats Row -->\n <div class=\"detail-stats\">\n <div class=\"detail-stat\">\n <div class=\"stat-value\">{{selectedType.credentialCount}}</div>\n <div class=\"stat-label\">Credentials</div>\n </div>\n <div class=\"detail-stat active\">\n <div class=\"stat-value\">{{selectedType.activeCount}}</div>\n <div class=\"stat-label\">Active</div>\n </div>\n @if (selectedType.expiringCount > 0) {\n <div class=\"detail-stat warning\">\n <div class=\"stat-value\">{{selectedType.expiringCount}}</div>\n <div class=\"stat-label\">Expiring</div>\n </div>\n }\n </div>\n @if (selectedType.Description) {\n <p class=\"description\">\n {{selectedType.Description}}\n </p>\n }\n <div class=\"schema-section\">\n <h3>\n <i class=\"fa-solid fa-list-check\"></i>\n Field Schema\n </h3>\n @if (schemaProperties.length > 0) {\n <div class=\"field-list\">\n @for (prop of schemaProperties; track prop) {\n <div class=\"field-item\">\n <div class=\"field-header\">\n <span class=\"field-name\">{{prop.title}}</span>\n <span class=\"field-badges\">\n <span class=\"badge type\">{{prop.type}}</span>\n @if (prop.isSecret) {\n <span class=\"badge secret\">\n <i class=\"fa-solid fa-lock\"></i> Secret\n </span>\n }\n @if (prop.required) {\n <span class=\"badge required\">Required</span>\n }\n </span>\n </div>\n @if (prop.description) {\n <p class=\"field-description\">\n {{prop.description}}\n </p>\n }\n </div>\n }\n </div>\n }\n @if (schemaProperties.length === 0) {\n <div class=\"no-fields\">\n <i class=\"fa-solid fa-info-circle\"></i>\n <span>No fields defined in schema</span>\n </div>\n }\n </div>\n @if (selectedType.ValidationEndpoint) {\n <div class=\"validation-section\">\n <h3>\n <i class=\"fa-solid fa-check-circle\"></i>\n Validation\n </h3>\n <div class=\"validation-endpoint\">\n <i class=\"fa-solid fa-link\"></i>\n <span>{{selectedType.ValidationEndpoint}}</span>\n </div>\n </div>\n }\n <!-- Quick Actions -->\n @if (UserCanCreateCredential) {\n <div class=\"detail-quick-actions\">\n <button class=\"btn-primary\" (click)=\"createCredentialForType(selectedType)\">\n <i class=\"fa-solid fa-plus\"></i>\n Create Credential\n </button>\n </div>\n }\n </div>\n </div>\n }\n <!-- No Selection -->\n @if (!selectedType && filteredTypes.length > 0) {\n <div class=\"no-selection\">\n <div class=\"no-selection-icon\">\n <i class=\"fa-solid fa-hand-pointer\"></i>\n </div>\n <h3>Select a Credential Type</h3>\n <p>Click on a credential type to view its details and field schema</p>\n </div>\n }\n </div>\n }\n </mj-page-body>\n\n <!-- Type Edit Panel -->\n <mj-credential-type-edit-panel\n #typeEditPanel\n (saved)=\"onTypeSaved($any($event))\"\n (deleted)=\"onTypeDeleted($any($event))\"\n ></mj-credential-type-edit-panel>\n</mj-page-layout>\n", styles: ["/* Layout */\n.types-layout {\n display: grid;\n grid-template-columns: 420px 1fr;\n flex: 1;\n min-height: 0;\n gap: 20px;\n}\n\n/* Types List */\n.types-list {\n background: var(--mj-bg-surface);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n overflow-y: auto;\n padding: 16px;\n}\n\n.category-section {\n margin-bottom: 20px;\n}\n\n.category-section:last-child {\n margin-bottom: 0;\n}\n\n.category-header {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 12px;\n font-size: 12px;\n font-weight: 700;\n text-transform: uppercase;\n color: var(--mj-text-secondary);\n letter-spacing: 0.5px;\n border-left: 3px solid var(--mj-brand-primary);\n background: var(--mj-bg-surface-card);\n border-radius: 0 8px 8px 0;\n margin-bottom: 8px;\n}\n\n.category-header i {\n font-size: 14px;\n}\n\n.category-name {\n flex: 1;\n}\n\n.category-header .count {\n background: var(--mj-bg-surface);\n padding: 2px 10px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n}\n\n.type-items {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.type-item {\n display: flex;\n align-items: center;\n padding: 12px 14px;\n background: var(--mj-bg-surface);\n border-radius: 10px;\n cursor: pointer;\n transition: all 0.2s ease;\n border: 2px solid transparent;\n position: relative;\n}\n\n.type-item:hover {\n background: var(--mj-bg-page);\n border-color: var(--mj-border-default);\n}\n\n.type-item.selected {\n background: color-mix(in srgb, var(--mj-brand-primary) 5%, var(--mj-bg-surface));\n border-color: var(--mj-brand-primary);\n}\n\n.type-icon {\n width: 42px;\n height: 42px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 10px;\n margin-right: 12px;\n flex-shrink: 0;\n}\n\n.type-icon i {\n font-size: 16px;\n}\n\n.type-info {\n flex: 1;\n min-width: 0;\n}\n\n.type-name {\n font-weight: 600;\n font-size: 14px;\n color: var(--mj-text-primary);\n}\n\n.type-description {\n font-size: 12px;\n color: var(--mj-text-disabled);\n margin-top: 2px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.type-meta {\n display: flex;\n gap: 8px;\n margin-top: 6px;\n}\n\n.meta-badge {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 10px;\n font-size: 11px;\n color: var(--mj-text-secondary);\n}\n\n.meta-badge i {\n font-size: 9px;\n}\n\n.meta-badge.active {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n.meta-badge.warning {\n background: color-mix(in srgb, var(--mj-status-warning) 8%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n}\n\n.type-actions {\n display: flex;\n gap: 4px;\n margin-right: 8px;\n opacity: 0;\n transition: opacity 0.2s ease;\n}\n\n.type-item:hover .type-actions {\n opacity: 1;\n}\n\n.action-btn {\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: var(--mj-bg-surface-sunken);\n border-radius: 6px;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.2s ease;\n font-size: 12px;\n}\n\n.action-btn:hover {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n}\n\n.action-btn.danger:hover {\n background: var(--mj-status-error);\n}\n\n.arrow {\n color: var(--mj-border-strong);\n font-size: 12px;\n}\n\n/* Type Detail */\n.type-detail {\n background: var(--mj-bg-surface);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n overflow-y: auto;\n}\n\n.detail-header {\n display: flex;\n align-items: center;\n padding: 24px;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.detail-icon {\n width: 60px;\n height: 60px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 14px;\n margin-right: 16px;\n flex-shrink: 0;\n}\n\n.detail-icon i {\n font-size: 26px;\n}\n\n.detail-title {\n flex: 1;\n}\n\n.detail-title h2 {\n font-size: 22px;\n font-weight: 700;\n color: var(--mj-text-primary);\n margin: 0 0 8px 0;\n}\n\n.category-badge {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 12px;\n border-radius: 8px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.category-badge i {\n font-size: 11px;\n}\n\n.detail-actions {\n display: flex;\n gap: 8px;\n}\n\n.close-btn {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: var(--mj-bg-surface-sunken);\n border-radius: 8px;\n cursor: pointer;\n color: var(--mj-text-secondary);\n transition: all 0.2s ease;\n}\n\n.close-btn:hover {\n background: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.detail-body {\n padding: 24px;\n}\n\n/* Detail Stats */\n.detail-stats {\n display: flex;\n gap: 16px;\n margin-bottom: 24px;\n padding-bottom: 24px;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.detail-stat {\n flex: 1;\n text-align: center;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border-radius: 12px;\n}\n\n.detail-stat .stat-value {\n font-size: 28px;\n font-weight: 700;\n color: var(--mj-text-primary);\n}\n\n.detail-stat .stat-label {\n font-size: 12px;\n color: var(--mj-text-secondary);\n margin-top: 4px;\n}\n\n.detail-stat.active {\n background: color-mix(in srgb, var(--mj-status-success) 8%, var(--mj-bg-surface));\n}\n\n.detail-stat.active .stat-value {\n color: var(--mj-status-success);\n}\n\n.detail-stat.warning {\n background: color-mix(in srgb, var(--mj-status-warning) 8%, var(--mj-bg-surface));\n}\n\n.detail-stat.warning .stat-value {\n color: var(--mj-status-warning);\n}\n\n.description {\n font-size: 14px;\n color: var(--mj-text-secondary);\n line-height: 1.6;\n margin: 0 0 24px 0;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border-radius: 10px;\n}\n\n.schema-section,\n.validation-section {\n margin-bottom: 24px;\n}\n\n.schema-section h3,\n.validation-section h3 {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 14px;\n font-weight: 700;\n color: var(--mj-text-primary);\n margin: 0 0 16px 0;\n}\n\n.schema-section h3 i,\n.validation-section h3 i {\n color: var(--mj-brand-primary);\n}\n\n.field-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.field-item {\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border-radius: 10px;\n border: 1px solid var(--mj-border-default);\n transition: all 0.2s ease;\n}\n\n.field-item:hover {\n border-color: var(--mj-brand-primary);\n background: var(--mj-bg-surface-sunken);\n}\n\n.field-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.field-name {\n font-weight: 600;\n font-size: 14px;\n color: var(--mj-text-primary);\n}\n\n.field-badges {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.badge {\n padding: 3px 10px;\n border-radius: 6px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.badge.type {\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n}\n\n.badge.secret {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n}\n\n.badge.secret i {\n margin-right: 3px;\n}\n\n.badge.required {\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.field-description {\n font-size: 13px;\n color: var(--mj-text-secondary);\n margin: 10px 0 0 0;\n line-height: 1.5;\n}\n\n.no-fields {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border-radius: 10px;\n color: var(--mj-text-disabled);\n font-size: 13px;\n}\n\n.no-fields i {\n color: var(--mj-brand-primary);\n}\n\n.validation-endpoint {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 14px 18px;\n background: var(--mj-bg-surface-card);\n border-radius: 10px;\n font-size: 13px;\n color: var(--mj-text-secondary);\n font-family: 'SF Mono', 'Monaco', 'Inconsolata', monospace;\n border: 1px solid var(--mj-border-default);\n}\n\n.validation-endpoint i {\n color: var(--mj-brand-primary);\n}\n\n.detail-quick-actions {\n margin-top: 24px;\n padding-top: 24px;\n border-top: 1px solid var(--mj-bg-surface-sunken);\n}\n\n/* No Selection */\n.no-selection {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n text-align: center;\n background: var(--mj-bg-surface);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n padding: 48px;\n}\n\n.no-selection-icon {\n width: 80px;\n height: 80px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n border-radius: 20px;\n margin-bottom: 24px;\n}\n\n.no-selection-icon i {\n font-size: 32px;\n color: var(--mj-brand-primary);\n}\n\n.no-selection h3 {\n font-size: 18px;\n font-weight: 700;\n color: var(--mj-text-primary);\n margin: 0 0 8px 0;\n}\n\n.no-selection p {\n font-size: 14px;\n color: var(--mj-text-secondary);\n margin: 0;\n}\n\n/* Empty State */\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 24px;\n text-align: center;\n}\n\n.empty-icon {\n width: 72px;\n height: 72px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n border-radius: 18px;\n margin-bottom: 20px;\n}\n\n.empty-icon i {\n font-size: 32px;\n color: var(--mj-brand-primary);\n}\n\n.empty-state h3 {\n font-size: 18px;\n font-weight: 700;\n color: var(--mj-text-primary);\n margin: 0 0 8px 0;\n}\n\n.empty-state p {\n font-size: 14px;\n color: var(--mj-text-secondary);\n margin: 0 0 20px 0;\n}\n\n.btn-link {\n background: none;\n border: none;\n color: var(--mj-brand-primary);\n font-size: 14px;\n cursor: pointer;\n text-decoration: underline;\n padding: 0;\n}\n\n.btn-link:hover {\n color: var(--mj-brand-primary-hover);\n}\n\n/* Responsive */\n@media (max-width: 1024px) {\n .types-layout {\n grid-template-columns: 1fr;\n }\n\n .types-list {\n max-height: 400px;\n }\n}\n\n@media (max-width: 768px) {\n .types-container {\n padding: 16px;\n }\n\n .types-header {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .toolbar {\n flex-direction: column;\n align-items: stretch;\n }\n\n .toolbar-left {\n flex-direction: column;\n }\n\n .search-container {\n min-width: 100%;\n }\n\n .filter-select {\n width: 100%;\n }\n\n .toolbar-right {\n justify-content: space-between;\n }\n\n .detail-stats {\n flex-direction: column;\n }\n}\n"] }]
|
|
871
860
|
}], () => [{ type: i0.ChangeDetectorRef }], { typeEditPanel: [{
|
|
872
861
|
type: ViewChild,
|
|
873
862
|
args: ['typeEditPanel']
|
|
874
863
|
}] }); })();
|
|
875
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CredentialsTypesResourceComponent, { className: "CredentialsTypesResourceComponent", filePath: "src/Credentials/components/credentials-types-resource.component.ts", lineNumber:
|
|
864
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CredentialsTypesResourceComponent, { className: "CredentialsTypesResourceComponent", filePath: "src/Credentials/components/credentials-types-resource.component.ts", lineNumber: 32 }); })();
|
|
876
865
|
//# sourceMappingURL=credentials-types-resource.component.js.map
|