@memberjunction/ng-dashboards 5.38.0 → 5.40.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -7
- package/dist/AI/components/agents/agent-configuration.component.js +199 -198
- package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
- package/dist/AI/components/analytics/ai-analytics-resource.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/ai-analytics-resource.component.js +20 -17
- package/dist/AI/components/analytics/ai-analytics-resource.component.js.map +1 -1
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts +15 -0
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.js +166 -58
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.js.map +1 -1
- package/dist/AI/components/analytics/executive-summary/executive-summary.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/executive-summary/executive-summary.component.js +2 -1
- package/dist/AI/components/analytics/executive-summary/executive-summary.component.js.map +1 -1
- package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts +1 -0
- package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/model-performance/model-performance.component.js +55 -36
- package/dist/AI/components/analytics/model-performance/model-performance.component.js.map +1 -1
- package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.d.ts +9 -1
- package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js +158 -117
- package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js.map +1 -1
- package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.d.ts +1 -0
- package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js +22 -8
- package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js.map +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts +217 -860
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +1717 -7802
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
- package/dist/AI/components/autotagging/components/classify-item-drilldown.component.d.ts +56 -0
- package/dist/AI/components/autotagging/components/classify-item-drilldown.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/components/classify-item-drilldown.component.js +423 -0
- package/dist/AI/components/autotagging/components/classify-item-drilldown.component.js.map +1 -0
- package/dist/AI/components/autotagging/components/classify-item-grid.component.d.ts +70 -0
- package/dist/AI/components/autotagging/components/classify-item-grid.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/components/classify-item-grid.component.js +308 -0
- package/dist/AI/components/autotagging/components/classify-item-grid.component.js.map +1 -0
- package/dist/AI/components/autotagging/components/classify-org-context-editor.component.d.ts +29 -0
- package/dist/AI/components/autotagging/components/classify-org-context-editor.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/components/classify-org-context-editor.component.js +186 -0
- package/dist/AI/components/autotagging/components/classify-org-context-editor.component.js.map +1 -0
- package/dist/AI/components/autotagging/components/classify-overview-analytics.component.d.ts +69 -0
- package/dist/AI/components/autotagging/components/classify-overview-analytics.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/components/classify-overview-analytics.component.js +278 -0
- package/dist/AI/components/autotagging/components/classify-overview-analytics.component.js.map +1 -0
- package/dist/AI/components/autotagging/components/classify-seed-taxonomy.component.d.ts +73 -0
- package/dist/AI/components/autotagging/components/classify-seed-taxonomy.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/components/classify-seed-taxonomy.component.js +393 -0
- package/dist/AI/components/autotagging/components/classify-seed-taxonomy.component.js.map +1 -0
- package/dist/AI/components/autotagging/dialogs/classify-setup-wizard.component.d.ts +122 -0
- package/dist/AI/components/autotagging/dialogs/classify-setup-wizard.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/dialogs/classify-setup-wizard.component.js +908 -0
- package/dist/AI/components/autotagging/dialogs/classify-setup-wizard.component.js.map +1 -0
- package/dist/AI/components/autotagging/dialogs/dry-run-preview.dialog.component.d.ts +87 -0
- package/dist/AI/components/autotagging/dialogs/dry-run-preview.dialog.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/dialogs/dry-run-preview.dialog.component.js +475 -0
- package/dist/AI/components/autotagging/dialogs/dry-run-preview.dialog.component.js.map +1 -0
- package/dist/AI/components/autotagging/dialogs/item-detail.dialog.component.d.ts +29 -0
- package/dist/AI/components/autotagging/dialogs/item-detail.dialog.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/dialogs/item-detail.dialog.component.js +208 -0
- package/dist/AI/components/autotagging/dialogs/item-detail.dialog.component.js.map +1 -0
- package/dist/AI/components/autotagging/dialogs/no-content-type-warning.dialog.component.d.ts +21 -0
- package/dist/AI/components/autotagging/dialogs/no-content-type-warning.dialog.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/dialogs/no-content-type-warning.dialog.component.js +70 -0
- package/dist/AI/components/autotagging/dialogs/no-content-type-warning.dialog.component.js.map +1 -0
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.d.ts +333 -0
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js +2125 -0
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js.map +1 -0
- package/dist/AI/components/autotagging/shared/classify.dryrun.d.ts +61 -0
- package/dist/AI/components/autotagging/shared/classify.dryrun.d.ts.map +1 -0
- package/dist/AI/components/autotagging/shared/classify.dryrun.js +78 -0
- package/dist/AI/components/autotagging/shared/classify.dryrun.js.map +1 -0
- package/dist/AI/components/autotagging/shared/classify.format.d.ts +58 -0
- package/dist/AI/components/autotagging/shared/classify.format.d.ts.map +1 -0
- package/dist/AI/components/autotagging/shared/classify.format.js +260 -0
- package/dist/AI/components/autotagging/shared/classify.format.js.map +1 -0
- package/dist/AI/components/autotagging/shared/classify.types.d.ts +319 -0
- package/dist/AI/components/autotagging/shared/classify.types.d.ts.map +1 -0
- package/dist/AI/components/autotagging/shared/classify.types.js +6 -0
- package/dist/AI/components/autotagging/shared/classify.types.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/health-tab.component.d.ts +103 -0
- package/dist/AI/components/autotagging/tabs/health-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/health-tab.component.js +571 -0
- package/dist/AI/components/autotagging/tabs/health-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/history-tab.component.d.ts +77 -0
- package/dist/AI/components/autotagging/tabs/history-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/history-tab.component.js +519 -0
- package/dist/AI/components/autotagging/tabs/history-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/inbox-tab.component.d.ts +107 -0
- package/dist/AI/components/autotagging/tabs/inbox-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/inbox-tab.component.js +719 -0
- package/dist/AI/components/autotagging/tabs/inbox-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/pipeline-tab.component.d.ts +131 -0
- package/dist/AI/components/autotagging/tabs/pipeline-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/pipeline-tab.component.js +813 -0
- package/dist/AI/components/autotagging/tabs/pipeline-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/sources-tab.component.d.ts +177 -0
- package/dist/AI/components/autotagging/tabs/sources-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/sources-tab.component.js +1465 -0
- package/dist/AI/components/autotagging/tabs/sources-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/tags-tab.component.d.ts +78 -0
- package/dist/AI/components/autotagging/tabs/tags-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/tags-tab.component.js +492 -0
- package/dist/AI/components/autotagging/tabs/tags-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/taxonomy-tab.component.d.ts +397 -0
- package/dist/AI/components/autotagging/tabs/taxonomy-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/taxonomy-tab.component.js +3490 -0
- package/dist/AI/components/autotagging/tabs/taxonomy-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/types-tab.component.d.ts +56 -0
- package/dist/AI/components/autotagging/tabs/types-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/types-tab.component.js +271 -0
- package/dist/AI/components/autotagging/tabs/types-tab.component.js.map +1 -0
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +3 -0
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +306 -290
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
- package/dist/AI/components/execution-monitoring.component.js +1 -1
- package/dist/AI/components/execution-monitoring.component.js.map +1 -1
- package/dist/AI/components/models/model-management.component.js +209 -208
- package/dist/AI/components/models/model-management.component.js.map +1 -1
- package/dist/AI/components/prompts/prompt-management.component.js +130 -128
- package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
- package/dist/AI/components/requests/agent-requests-resource.component.js +61 -61
- package/dist/AI/components/requests/agent-requests-resource.component.js.map +1 -1
- package/dist/AI/components/system/system-configuration.component.js +17 -17
- package/dist/AI/components/system/system-configuration.component.js.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.d.ts +1 -0
- package/dist/AI/components/tags/tags-resource.component.d.ts.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.js +578 -538
- package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts +3 -0
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.js +331 -303
- package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
- package/dist/AI/services/ai-instrumentation.service.d.ts +5 -0
- package/dist/AI/services/ai-instrumentation.service.d.ts.map +1 -1
- package/dist/AI/services/ai-instrumentation.service.js +14 -2
- package/dist/AI/services/ai-instrumentation.service.js.map +1 -1
- package/dist/AI/services/cache-metrics.d.ts +50 -0
- package/dist/AI/services/cache-metrics.d.ts.map +1 -0
- package/dist/AI/services/cache-metrics.js +43 -0
- package/dist/AI/services/cache-metrics.js.map +1 -0
- package/dist/APIKeys/api-applications-panel.component.js +2 -2
- package/dist/APIKeys/api-key-create-dialog.component.js +2 -2
- package/dist/APIKeys/api-key-edit-panel.component.js +2 -2
- package/dist/APIKeys/api-keys-resource.component.js +132 -131
- package/dist/APIKeys/api-keys-resource.component.js.map +1 -1
- package/dist/Actions/components/actions-overview.component.js +141 -141
- package/dist/Actions/components/actions-overview.component.js.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.js +15 -15
- package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.d.ts +0 -5
- package/dist/Actions/components/explorer/action-explorer.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.js +139 -212
- package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
- package/dist/Admin/admin-data-schema.component.js +2 -2
- package/dist/Admin/admin-data-schema.component.js.map +1 -1
- package/dist/Admin/admin-dev-tools-resource.component.js +2 -2
- package/dist/Admin/admin-dev-tools-resource.component.js.map +1 -1
- package/dist/Admin/admin-identity-access.component.js +2 -2
- package/dist/Admin/admin-identity-access.component.js.map +1 -1
- package/dist/Admin/admin-monitoring.component.js +2 -2
- package/dist/Admin/admin-monitoring.component.js.map +1 -1
- package/dist/ApplicationRoles/application-roles-resource.component.js +54 -49
- package/dist/ApplicationRoles/application-roles-resource.component.js.map +1 -1
- package/dist/Communication/communication-logs-resource.component.d.ts +6 -0
- package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-logs-resource.component.js +72 -50
- package/dist/Communication/communication-logs-resource.component.js.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.js +103 -102
- package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
- package/dist/Communication/communication-providers-resource.component.js +52 -51
- package/dist/Communication/communication-providers-resource.component.js.map +1 -1
- package/dist/Communication/communication-runs-resource.component.js +39 -38
- package/dist/Communication/communication-runs-resource.component.js.map +1 -1
- package/dist/Communication/communication-templates-resource.component.d.ts +6 -0
- package/dist/Communication/communication-templates-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-templates-resource.component.js +92 -89
- package/dist/Communication/communication-templates-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-audit-resource.component.js +136 -135
- package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-categories-resource.component.js +155 -152
- package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-list-resource.component.js +119 -118
- package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-overview-resource.component.js +129 -128
- package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-types-resource.component.js +107 -106
- package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +31 -340
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.js +468 -1958
- package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
- package/dist/DataExplorer/data-explorer-resource.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-resource.component.js +10 -0
- package/dist/DataExplorer/data-explorer-resource.component.js.map +1 -1
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js +1 -1
- package/dist/DatabaseDesigner/components/entity-list.component.js +115 -114
- package/dist/DatabaseDesigner/components/entity-list.component.js.map +1 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts +5 -6
- package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts.map +1 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.js +4 -5
- package/dist/DatabaseDesigner/database-designer-dashboards.module.js.map +1 -1
- package/dist/DevTools/app-state-inspector.component.js +18 -17
- package/dist/DevTools/app-state-inspector.component.js.map +1 -1
- package/dist/DevTools/class-registry.component.js +88 -85
- package/dist/DevTools/class-registry.component.js.map +1 -1
- package/dist/DevTools/event-monitor.component.js +155 -150
- package/dist/DevTools/event-monitor.component.js.map +1 -1
- package/dist/DevTools/graphql-console.component.js +245 -243
- package/dist/DevTools/graphql-console.component.js.map +1 -1
- package/dist/DevTools/layout-inspector.component.js +18 -17
- package/dist/DevTools/layout-inspector.component.js.map +1 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.js +20 -19
- package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
- package/dist/Home/home-dashboard.component.js +2 -2
- package/dist/Integration/components/activity/activity.component.d.ts.map +1 -1
- package/dist/Integration/components/activity/activity.component.js +236 -229
- package/dist/Integration/components/activity/activity.component.js.map +1 -1
- package/dist/Integration/components/connections/connections.component.js +390 -389
- package/dist/Integration/components/connections/connections.component.js.map +1 -1
- package/dist/Integration/components/overview/overview.component.js +2 -2
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +14 -11
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts +27 -2
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +244 -119
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +293 -291
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js +62 -61
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.d.ts +65 -0
- package/dist/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.d.ts.map +1 -0
- package/dist/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.js +176 -0
- package/dist/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.js.map +1 -0
- package/dist/KnowledgeHub/components/visualize/tag-cloud/tag-cloud.component.d.ts +81 -0
- package/dist/KnowledgeHub/components/visualize/tag-cloud/tag-cloud.component.d.ts.map +1 -0
- package/dist/KnowledgeHub/components/visualize/tag-cloud/tag-cloud.component.js +308 -0
- package/dist/KnowledgeHub/components/visualize/tag-cloud/tag-cloud.component.js.map +1 -0
- package/dist/KnowledgeHub/components/visualize/visualize-resource.component.d.ts +85 -0
- package/dist/KnowledgeHub/components/visualize/visualize-resource.component.d.ts.map +1 -0
- package/dist/KnowledgeHub/components/visualize/visualize-resource.component.js +362 -0
- package/dist/KnowledgeHub/components/visualize/visualize-resource.component.js.map +1 -0
- package/dist/KnowledgeHub/index.d.ts +3 -0
- package/dist/KnowledgeHub/index.d.ts.map +1 -1
- package/dist/KnowledgeHub/index.js +3 -0
- package/dist/KnowledgeHub/index.js.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.d.ts +6 -2
- package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.js +525 -566
- package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-categories-resource.component.js +135 -134
- package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.js +199 -198
- package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
- package/dist/MCP/components/mcp-server-dialog.component.js +2 -2
- package/dist/MCP/mcp-dashboard.component.js +443 -438
- package/dist/MCP/mcp-dashboard.component.js.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.js +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-activity.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-activity.component.js +146 -147
- package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs.component.js +76 -75
- package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-overview.component.js +97 -96
- package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
- package/dist/Scheduling/scheduling-dashboard.component.js +24 -22
- package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
- package/dist/Scheduling/services/scheduling-instrumentation.service.d.ts +2 -0
- package/dist/Scheduling/services/scheduling-instrumentation.service.d.ts.map +1 -1
- package/dist/Scheduling/services/scheduling-instrumentation.service.js +1 -0
- package/dist/Scheduling/services/scheduling-instrumentation.service.js.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab-resource.component.js +1 -1
- package/dist/Testing/components/testing-explorer.component.d.ts +14 -4
- package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-explorer.component.js +436 -427
- package/dist/Testing/components/testing-explorer.component.js.map +1 -1
- package/dist/Testing/components/testing-runs-resource.component.js +1 -1
- package/dist/Testing/components/testing-runs.component.js +116 -115
- package/dist/Testing/components/testing-runs.component.js.map +1 -1
- package/dist/Testing/testing-dashboard.component.js +6 -7
- package/dist/Testing/testing-dashboard.component.js.map +1 -1
- package/dist/VersionHistory/components/labels-resource.component.js +173 -172
- package/dist/VersionHistory/components/labels-resource.component.js.map +1 -1
- package/dist/VersionHistory/components/restore-resource.component.d.ts +6 -0
- package/dist/VersionHistory/components/restore-resource.component.d.ts.map +1 -1
- package/dist/VersionHistory/components/restore-resource.component.js +116 -92
- package/dist/VersionHistory/components/restore-resource.component.js.map +1 -1
- package/dist/ai-dashboards.module.d.ts +57 -35
- package/dist/ai-dashboards.module.d.ts.map +1 -1
- package/dist/ai-dashboards.module.js +80 -1
- package/dist/ai-dashboards.module.js.map +1 -1
- package/dist/communication-dashboards.module.d.ts +1 -1
- package/dist/communication-dashboards.module.d.ts.map +1 -1
- package/dist/communication-dashboards.module.js +7 -1
- package/dist/communication-dashboards.module.js.map +1 -1
- package/dist/data-explorer-dashboards.module.d.ts +12 -14
- package/dist/data-explorer-dashboards.module.d.ts.map +1 -1
- package/dist/data-explorer-dashboards.module.js +5 -14
- package/dist/data-explorer-dashboards.module.js.map +1 -1
- package/dist/public-api.d.ts +3 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +3 -0
- package/dist/public-api.js.map +1 -1
- package/dist/testing-dashboards.module.d.ts +4 -5
- package/dist/testing-dashboards.module.d.ts.map +1 -1
- package/dist/testing-dashboards.module.js +7 -5
- package/dist/testing-dashboards.module.js.map +1 -1
- package/package.json +57 -54
- package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.d.ts +0 -79
- package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.d.ts.map +0 -1
- package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js +0 -195
- package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js.map +0 -1
- package/dist/DataExplorer/components/view-selector/view-selector.component.d.ts +0 -226
- package/dist/DataExplorer/components/view-selector/view-selector.component.d.ts.map +0 -1
- package/dist/DataExplorer/components/view-selector/view-selector.component.js +0 -861
- package/dist/DataExplorer/components/view-selector/view-selector.component.js.map +0 -1
|
@@ -15,19 +15,20 @@ import * as i2 from "@memberjunction/ng-shared-generic";
|
|
|
15
15
|
import * as i3 from "@memberjunction/ng-credentials";
|
|
16
16
|
import * as i4 from "@angular/common";
|
|
17
17
|
const _c0 = ["typeEditPanel"];
|
|
18
|
-
function
|
|
18
|
+
function CredentialsTypesResourceComponent_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
19
19
|
const _r2 = i0.ɵɵgetCurrentView();
|
|
20
20
|
i0.ɵɵelementStart(0, "button", 15);
|
|
21
|
-
i0.ɵɵlistener("click", function
|
|
21
|
+
i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_Conditional_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.createNewType()); });
|
|
22
22
|
i0.ɵɵelement(1, "i", 16);
|
|
23
|
-
i0.ɵɵ
|
|
24
|
-
i0.ɵɵ
|
|
23
|
+
i0.ɵɵelementStart(2, "span", 17);
|
|
24
|
+
i0.ɵɵtext(3, "New Type");
|
|
25
|
+
i0.ɵɵelementEnd()();
|
|
25
26
|
} }
|
|
26
27
|
function CredentialsTypesResourceComponent_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
27
28
|
i0.ɵɵelement(0, "mj-loading", 12);
|
|
28
29
|
} }
|
|
29
30
|
function CredentialsTypesResourceComponent_Conditional_13_For_3_For_9_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
30
|
-
i0.ɵɵelementStart(0, "div",
|
|
31
|
+
i0.ɵɵelementStart(0, "div", 32);
|
|
31
32
|
i0.ɵɵtext(1);
|
|
32
33
|
i0.ɵɵpipe(2, "slice");
|
|
33
34
|
i0.ɵɵelementEnd();
|
|
@@ -37,8 +38,8 @@ function CredentialsTypesResourceComponent_Conditional_13_For_3_For_9_Conditiona
|
|
|
37
38
|
i0.ɵɵtextInterpolate2(" ", i0.ɵɵpipeBind3(2, 2, type_r5.Description, 0, 60), "", type_r5.Description.length > 60 ? "..." : "", " ");
|
|
38
39
|
} }
|
|
39
40
|
function CredentialsTypesResourceComponent_Conditional_13_For_3_For_9_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
40
|
-
i0.ɵɵelementStart(0, "span",
|
|
41
|
-
i0.ɵɵelement(1, "i",
|
|
41
|
+
i0.ɵɵelementStart(0, "span", 34);
|
|
42
|
+
i0.ɵɵelement(1, "i", 42);
|
|
42
43
|
i0.ɵɵtext(2);
|
|
43
44
|
i0.ɵɵelementEnd();
|
|
44
45
|
} if (rf & 2) {
|
|
@@ -47,8 +48,8 @@ function CredentialsTypesResourceComponent_Conditional_13_For_3_For_9_Conditiona
|
|
|
47
48
|
i0.ɵɵtextInterpolate1(" ", type_r5.credentialCount, " ");
|
|
48
49
|
} }
|
|
49
50
|
function CredentialsTypesResourceComponent_Conditional_13_For_3_For_9_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
50
|
-
i0.ɵɵelementStart(0, "span",
|
|
51
|
-
i0.ɵɵelement(1, "i",
|
|
51
|
+
i0.ɵɵelementStart(0, "span", 35);
|
|
52
|
+
i0.ɵɵelement(1, "i", 43);
|
|
52
53
|
i0.ɵɵtext(2);
|
|
53
54
|
i0.ɵɵelementEnd();
|
|
54
55
|
} if (rf & 2) {
|
|
@@ -57,8 +58,8 @@ function CredentialsTypesResourceComponent_Conditional_13_For_3_For_9_Conditiona
|
|
|
57
58
|
i0.ɵɵtextInterpolate1(" ", type_r5.activeCount, " active ");
|
|
58
59
|
} }
|
|
59
60
|
function CredentialsTypesResourceComponent_Conditional_13_For_3_For_9_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
60
|
-
i0.ɵɵelementStart(0, "span",
|
|
61
|
-
i0.ɵɵelement(1, "i",
|
|
61
|
+
i0.ɵɵelementStart(0, "span", 36);
|
|
62
|
+
i0.ɵɵelement(1, "i", 44);
|
|
62
63
|
i0.ɵɵtext(2);
|
|
63
64
|
i0.ɵɵelementEnd();
|
|
64
65
|
} if (rf & 2) {
|
|
@@ -68,47 +69,47 @@ function CredentialsTypesResourceComponent_Conditional_13_For_3_For_9_Conditiona
|
|
|
68
69
|
} }
|
|
69
70
|
function CredentialsTypesResourceComponent_Conditional_13_For_3_For_9_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
70
71
|
const _r6 = i0.ɵɵgetCurrentView();
|
|
71
|
-
i0.ɵɵelementStart(0, "button",
|
|
72
|
+
i0.ɵɵelementStart(0, "button", 45);
|
|
72
73
|
i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_Conditional_13_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
74
|
i0.ɵɵelement(1, "i", 16);
|
|
74
75
|
i0.ɵɵelementEnd();
|
|
75
76
|
} }
|
|
76
77
|
function CredentialsTypesResourceComponent_Conditional_13_For_3_For_9_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
77
78
|
const _r7 = i0.ɵɵgetCurrentView();
|
|
78
|
-
i0.ɵɵelementStart(0, "button",
|
|
79
|
+
i0.ɵɵelementStart(0, "button", 46);
|
|
79
80
|
i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_Conditional_13_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",
|
|
81
|
+
i0.ɵɵelement(1, "i", 47);
|
|
81
82
|
i0.ɵɵelementEnd();
|
|
82
83
|
} }
|
|
83
84
|
function CredentialsTypesResourceComponent_Conditional_13_For_3_For_9_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
84
85
|
const _r8 = i0.ɵɵgetCurrentView();
|
|
85
|
-
i0.ɵɵelementStart(0, "button",
|
|
86
|
+
i0.ɵɵelementStart(0, "button", 48);
|
|
86
87
|
i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_Conditional_13_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",
|
|
88
|
+
i0.ɵɵelement(1, "i", 49);
|
|
88
89
|
i0.ɵɵelementEnd();
|
|
89
90
|
} }
|
|
90
91
|
function CredentialsTypesResourceComponent_Conditional_13_For_3_For_9_Template(rf, ctx) { if (rf & 1) {
|
|
91
92
|
const _r4 = i0.ɵɵgetCurrentView();
|
|
92
|
-
i0.ɵɵelementStart(0, "div",
|
|
93
|
+
i0.ɵɵelementStart(0, "div", 28);
|
|
93
94
|
i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_Conditional_13_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",
|
|
95
|
+
i0.ɵɵelementStart(1, "div", 29);
|
|
95
96
|
i0.ɵɵelement(2, "i");
|
|
96
97
|
i0.ɵɵelementEnd();
|
|
97
|
-
i0.ɵɵelementStart(3, "div",
|
|
98
|
+
i0.ɵɵelementStart(3, "div", 30)(4, "div", 31);
|
|
98
99
|
i0.ɵɵtext(5);
|
|
99
100
|
i0.ɵɵelementEnd();
|
|
100
|
-
i0.ɵɵconditionalCreate(6, CredentialsTypesResourceComponent_Conditional_13_For_3_For_9_Conditional_6_Template, 3, 6, "div",
|
|
101
|
-
i0.ɵɵelementStart(7, "div",
|
|
102
|
-
i0.ɵɵconditionalCreate(8, CredentialsTypesResourceComponent_Conditional_13_For_3_For_9_Conditional_8_Template, 3, 1, "span",
|
|
103
|
-
i0.ɵɵconditionalCreate(9, CredentialsTypesResourceComponent_Conditional_13_For_3_For_9_Conditional_9_Template, 3, 1, "span",
|
|
104
|
-
i0.ɵɵconditionalCreate(10, CredentialsTypesResourceComponent_Conditional_13_For_3_For_9_Conditional_10_Template, 3, 1, "span",
|
|
101
|
+
i0.ɵɵconditionalCreate(6, CredentialsTypesResourceComponent_Conditional_13_For_3_For_9_Conditional_6_Template, 3, 6, "div", 32);
|
|
102
|
+
i0.ɵɵelementStart(7, "div", 33);
|
|
103
|
+
i0.ɵɵconditionalCreate(8, CredentialsTypesResourceComponent_Conditional_13_For_3_For_9_Conditional_8_Template, 3, 1, "span", 34);
|
|
104
|
+
i0.ɵɵconditionalCreate(9, CredentialsTypesResourceComponent_Conditional_13_For_3_For_9_Conditional_9_Template, 3, 1, "span", 35);
|
|
105
|
+
i0.ɵɵconditionalCreate(10, CredentialsTypesResourceComponent_Conditional_13_For_3_For_9_Conditional_10_Template, 3, 1, "span", 36);
|
|
105
106
|
i0.ɵɵelementEnd()();
|
|
106
|
-
i0.ɵɵelementStart(11, "div",
|
|
107
|
-
i0.ɵɵconditionalCreate(12, CredentialsTypesResourceComponent_Conditional_13_For_3_For_9_Conditional_12_Template, 2, 0, "button",
|
|
108
|
-
i0.ɵɵconditionalCreate(13, CredentialsTypesResourceComponent_Conditional_13_For_3_For_9_Conditional_13_Template, 2, 0, "button",
|
|
109
|
-
i0.ɵɵconditionalCreate(14, CredentialsTypesResourceComponent_Conditional_13_For_3_For_9_Conditional_14_Template, 2, 0, "button",
|
|
107
|
+
i0.ɵɵelementStart(11, "div", 37);
|
|
108
|
+
i0.ɵɵconditionalCreate(12, CredentialsTypesResourceComponent_Conditional_13_For_3_For_9_Conditional_12_Template, 2, 0, "button", 38);
|
|
109
|
+
i0.ɵɵconditionalCreate(13, CredentialsTypesResourceComponent_Conditional_13_For_3_For_9_Conditional_13_Template, 2, 0, "button", 39);
|
|
110
|
+
i0.ɵɵconditionalCreate(14, CredentialsTypesResourceComponent_Conditional_13_For_3_For_9_Conditional_14_Template, 2, 0, "button", 40);
|
|
110
111
|
i0.ɵɵelementEnd();
|
|
111
|
-
i0.ɵɵelement(15, "i",
|
|
112
|
+
i0.ɵɵelement(15, "i", 41);
|
|
112
113
|
i0.ɵɵelementEnd();
|
|
113
114
|
} if (rf & 2) {
|
|
114
115
|
const type_r5 = ctx.$implicit;
|
|
@@ -136,16 +137,16 @@ function CredentialsTypesResourceComponent_Conditional_13_For_3_For_9_Template(r
|
|
|
136
137
|
i0.ɵɵconditional(ctx_r2.UserCanDelete && type_r5.credentialCount === 0 ? 14 : -1);
|
|
137
138
|
} }
|
|
138
139
|
function CredentialsTypesResourceComponent_Conditional_13_For_3_Template(rf, ctx) { if (rf & 1) {
|
|
139
|
-
i0.ɵɵelementStart(0, "div",
|
|
140
|
+
i0.ɵɵelementStart(0, "div", 19)(1, "div", 23);
|
|
140
141
|
i0.ɵɵelement(2, "i");
|
|
141
|
-
i0.ɵɵelementStart(3, "span",
|
|
142
|
+
i0.ɵɵelementStart(3, "span", 24);
|
|
142
143
|
i0.ɵɵtext(4);
|
|
143
144
|
i0.ɵɵelementEnd();
|
|
144
|
-
i0.ɵɵelementStart(5, "span",
|
|
145
|
+
i0.ɵɵelementStart(5, "span", 25);
|
|
145
146
|
i0.ɵɵtext(6);
|
|
146
147
|
i0.ɵɵelementEnd()();
|
|
147
|
-
i0.ɵɵelementStart(7, "div",
|
|
148
|
-
i0.ɵɵrepeaterCreate(8, CredentialsTypesResourceComponent_Conditional_13_For_3_For_9_Template, 16, 16, "div",
|
|
148
|
+
i0.ɵɵelementStart(7, "div", 26);
|
|
149
|
+
i0.ɵɵrepeaterCreate(8, CredentialsTypesResourceComponent_Conditional_13_For_3_For_9_Template, 16, 16, "div", 27, i0.ɵɵrepeaterTrackByIdentity);
|
|
149
150
|
i0.ɵɵelementEnd()();
|
|
150
151
|
} if (rf & 2) {
|
|
151
152
|
const entry_r9 = ctx.$implicit;
|
|
@@ -166,7 +167,7 @@ function CredentialsTypesResourceComponent_Conditional_13_Conditional_5_Conditio
|
|
|
166
167
|
const _r10 = i0.ɵɵgetCurrentView();
|
|
167
168
|
i0.ɵɵelementStart(0, "p");
|
|
168
169
|
i0.ɵɵtext(1, " No types match your current filters. ");
|
|
169
|
-
i0.ɵɵelementStart(2, "button",
|
|
170
|
+
i0.ɵɵelementStart(2, "button", 53);
|
|
170
171
|
i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_Conditional_13_Conditional_5_Conditional_5_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r10); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.clearFilters()); });
|
|
171
172
|
i0.ɵɵtext(3, "Clear filters");
|
|
172
173
|
i0.ɵɵelementEnd()();
|
|
@@ -178,22 +179,22 @@ function CredentialsTypesResourceComponent_Conditional_13_Conditional_5_Conditio
|
|
|
178
179
|
} }
|
|
179
180
|
function CredentialsTypesResourceComponent_Conditional_13_Conditional_5_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
180
181
|
const _r11 = i0.ɵɵgetCurrentView();
|
|
181
|
-
i0.ɵɵelementStart(0, "button",
|
|
182
|
+
i0.ɵɵelementStart(0, "button", 54);
|
|
182
183
|
i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_Conditional_13_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
184
|
i0.ɵɵelement(1, "i", 16);
|
|
184
185
|
i0.ɵɵtext(2, " Create Type ");
|
|
185
186
|
i0.ɵɵelementEnd();
|
|
186
187
|
} }
|
|
187
188
|
function CredentialsTypesResourceComponent_Conditional_13_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
188
|
-
i0.ɵɵelementStart(0, "div",
|
|
189
|
-
i0.ɵɵelement(2, "i",
|
|
189
|
+
i0.ɵɵelementStart(0, "div", 20)(1, "div", 50);
|
|
190
|
+
i0.ɵɵelement(2, "i", 51);
|
|
190
191
|
i0.ɵɵelementEnd();
|
|
191
192
|
i0.ɵɵelementStart(3, "h3");
|
|
192
193
|
i0.ɵɵtext(4, "No Credential Types Found");
|
|
193
194
|
i0.ɵɵelementEnd();
|
|
194
195
|
i0.ɵɵconditionalCreate(5, CredentialsTypesResourceComponent_Conditional_13_Conditional_5_Conditional_5_Template, 4, 0, "p");
|
|
195
196
|
i0.ɵɵconditionalCreate(6, CredentialsTypesResourceComponent_Conditional_13_Conditional_5_Conditional_6_Template, 2, 0, "p");
|
|
196
|
-
i0.ɵɵconditionalCreate(7, CredentialsTypesResourceComponent_Conditional_13_Conditional_5_Conditional_7_Template, 3, 0, "button",
|
|
197
|
+
i0.ɵɵconditionalCreate(7, CredentialsTypesResourceComponent_Conditional_13_Conditional_5_Conditional_7_Template, 3, 0, "button", 52);
|
|
197
198
|
i0.ɵɵelementEnd();
|
|
198
199
|
} if (rf & 2) {
|
|
199
200
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
@@ -206,16 +207,16 @@ function CredentialsTypesResourceComponent_Conditional_13_Conditional_5_Template
|
|
|
206
207
|
} }
|
|
207
208
|
function CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
208
209
|
const _r13 = i0.ɵɵgetCurrentView();
|
|
209
|
-
i0.ɵɵelementStart(0, "button",
|
|
210
|
+
i0.ɵɵelementStart(0, "button", 77);
|
|
210
211
|
i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_Conditional_13_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",
|
|
212
|
+
i0.ɵɵelement(1, "i", 47);
|
|
212
213
|
i0.ɵɵelementEnd();
|
|
213
214
|
} }
|
|
214
215
|
function CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditional_26_Template(rf, ctx) { if (rf & 1) {
|
|
215
|
-
i0.ɵɵelementStart(0, "div",
|
|
216
|
+
i0.ɵɵelementStart(0, "div", 69)(1, "div", 66);
|
|
216
217
|
i0.ɵɵtext(2);
|
|
217
218
|
i0.ɵɵelementEnd();
|
|
218
|
-
i0.ɵɵelementStart(3, "div",
|
|
219
|
+
i0.ɵɵelementStart(3, "div", 67);
|
|
219
220
|
i0.ɵɵtext(4, "Expiring");
|
|
220
221
|
i0.ɵɵelementEnd()();
|
|
221
222
|
} if (rf & 2) {
|
|
@@ -224,7 +225,7 @@ function CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditio
|
|
|
224
225
|
i0.ɵɵtextInterpolate(ctx_r2.selectedType.expiringCount);
|
|
225
226
|
} }
|
|
226
227
|
function CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditional_27_Template(rf, ctx) { if (rf & 1) {
|
|
227
|
-
i0.ɵɵelementStart(0, "p",
|
|
228
|
+
i0.ɵɵelementStart(0, "p", 70);
|
|
228
229
|
i0.ɵɵtext(1);
|
|
229
230
|
i0.ɵɵelementEnd();
|
|
230
231
|
} if (rf & 2) {
|
|
@@ -233,18 +234,18 @@ function CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditio
|
|
|
233
234
|
i0.ɵɵtextInterpolate1(" ", ctx_r2.selectedType.Description, " ");
|
|
234
235
|
} }
|
|
235
236
|
function CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditional_32_For_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
236
|
-
i0.ɵɵelementStart(0, "span",
|
|
237
|
-
i0.ɵɵelement(1, "i",
|
|
237
|
+
i0.ɵɵelementStart(0, "span", 83);
|
|
238
|
+
i0.ɵɵelement(1, "i", 86);
|
|
238
239
|
i0.ɵɵtext(2, " Secret ");
|
|
239
240
|
i0.ɵɵelementEnd();
|
|
240
241
|
} }
|
|
241
242
|
function CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditional_32_For_2_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
242
|
-
i0.ɵɵelementStart(0, "span",
|
|
243
|
+
i0.ɵɵelementStart(0, "span", 84);
|
|
243
244
|
i0.ɵɵtext(1, "Required");
|
|
244
245
|
i0.ɵɵelementEnd();
|
|
245
246
|
} }
|
|
246
247
|
function CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditional_32_For_2_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
247
|
-
i0.ɵɵelementStart(0, "p",
|
|
248
|
+
i0.ɵɵelementStart(0, "p", 85);
|
|
248
249
|
i0.ɵɵtext(1);
|
|
249
250
|
i0.ɵɵelementEnd();
|
|
250
251
|
} if (rf & 2) {
|
|
@@ -253,16 +254,16 @@ function CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditio
|
|
|
253
254
|
i0.ɵɵtextInterpolate1(" ", prop_r14.description, " ");
|
|
254
255
|
} }
|
|
255
256
|
function CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditional_32_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
256
|
-
i0.ɵɵelementStart(0, "div",
|
|
257
|
+
i0.ɵɵelementStart(0, "div", 78)(1, "div", 79)(2, "span", 80);
|
|
257
258
|
i0.ɵɵtext(3);
|
|
258
259
|
i0.ɵɵelementEnd();
|
|
259
|
-
i0.ɵɵelementStart(4, "span",
|
|
260
|
+
i0.ɵɵelementStart(4, "span", 81)(5, "span", 82);
|
|
260
261
|
i0.ɵɵtext(6);
|
|
261
262
|
i0.ɵɵelementEnd();
|
|
262
|
-
i0.ɵɵconditionalCreate(7, CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditional_32_For_2_Conditional_7_Template, 3, 0, "span",
|
|
263
|
-
i0.ɵɵconditionalCreate(8, CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditional_32_For_2_Conditional_8_Template, 2, 0, "span",
|
|
263
|
+
i0.ɵɵconditionalCreate(7, CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditional_32_For_2_Conditional_7_Template, 3, 0, "span", 83);
|
|
264
|
+
i0.ɵɵconditionalCreate(8, CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditional_32_For_2_Conditional_8_Template, 2, 0, "span", 84);
|
|
264
265
|
i0.ɵɵelementEnd()();
|
|
265
|
-
i0.ɵɵconditionalCreate(9, CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditional_32_For_2_Conditional_9_Template, 2, 1, "p",
|
|
266
|
+
i0.ɵɵconditionalCreate(9, CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditional_32_For_2_Conditional_9_Template, 2, 1, "p", 85);
|
|
266
267
|
i0.ɵɵelementEnd();
|
|
267
268
|
} if (rf & 2) {
|
|
268
269
|
const prop_r14 = ctx.$implicit;
|
|
@@ -278,8 +279,8 @@ function CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditio
|
|
|
278
279
|
i0.ɵɵconditional(prop_r14.description ? 9 : -1);
|
|
279
280
|
} }
|
|
280
281
|
function CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditional_32_Template(rf, ctx) { if (rf & 1) {
|
|
281
|
-
i0.ɵɵelementStart(0, "div",
|
|
282
|
-
i0.ɵɵrepeaterCreate(1, CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditional_32_For_2_Template, 10, 5, "div",
|
|
282
|
+
i0.ɵɵelementStart(0, "div", 73);
|
|
283
|
+
i0.ɵɵrepeaterCreate(1, CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditional_32_For_2_Template, 10, 5, "div", 78, i0.ɵɵrepeaterTrackByIdentity);
|
|
283
284
|
i0.ɵɵelementEnd();
|
|
284
285
|
} if (rf & 2) {
|
|
285
286
|
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
@@ -287,19 +288,19 @@ function CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditio
|
|
|
287
288
|
i0.ɵɵrepeater(ctx_r2.schemaProperties);
|
|
288
289
|
} }
|
|
289
290
|
function CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditional_33_Template(rf, ctx) { if (rf & 1) {
|
|
290
|
-
i0.ɵɵelementStart(0, "div",
|
|
291
|
-
i0.ɵɵelement(1, "i",
|
|
291
|
+
i0.ɵɵelementStart(0, "div", 74);
|
|
292
|
+
i0.ɵɵelement(1, "i", 87);
|
|
292
293
|
i0.ɵɵelementStart(2, "span");
|
|
293
294
|
i0.ɵɵtext(3, "No fields defined in schema");
|
|
294
295
|
i0.ɵɵelementEnd()();
|
|
295
296
|
} }
|
|
296
297
|
function CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditional_34_Template(rf, ctx) { if (rf & 1) {
|
|
297
|
-
i0.ɵɵelementStart(0, "div",
|
|
298
|
-
i0.ɵɵelement(2, "i",
|
|
298
|
+
i0.ɵɵelementStart(0, "div", 75)(1, "h3");
|
|
299
|
+
i0.ɵɵelement(2, "i", 88);
|
|
299
300
|
i0.ɵɵtext(3, " Validation ");
|
|
300
301
|
i0.ɵɵelementEnd();
|
|
301
|
-
i0.ɵɵelementStart(4, "div",
|
|
302
|
-
i0.ɵɵelement(5, "i",
|
|
302
|
+
i0.ɵɵelementStart(4, "div", 89);
|
|
303
|
+
i0.ɵɵelement(5, "i", 90);
|
|
303
304
|
i0.ɵɵelementStart(6, "span");
|
|
304
305
|
i0.ɵɵtext(7);
|
|
305
306
|
i0.ɵɵelementEnd()()();
|
|
@@ -310,7 +311,7 @@ function CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditio
|
|
|
310
311
|
} }
|
|
311
312
|
function CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditional_35_Template(rf, ctx) { if (rf & 1) {
|
|
312
313
|
const _r15 = i0.ɵɵgetCurrentView();
|
|
313
|
-
i0.ɵɵelementStart(0, "div",
|
|
314
|
+
i0.ɵɵelementStart(0, "div", 76)(1, "button", 54);
|
|
314
315
|
i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_Conditional_13_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
316
|
i0.ɵɵelement(2, "i", 16);
|
|
316
317
|
i0.ɵɵtext(3, " Create Credential ");
|
|
@@ -318,46 +319,46 @@ function CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditio
|
|
|
318
319
|
} }
|
|
319
320
|
function CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
320
321
|
const _r12 = i0.ɵɵgetCurrentView();
|
|
321
|
-
i0.ɵɵelementStart(0, "div",
|
|
322
|
+
i0.ɵɵelementStart(0, "div", 21)(1, "div", 55)(2, "div", 56);
|
|
322
323
|
i0.ɵɵelement(3, "i");
|
|
323
324
|
i0.ɵɵelementEnd();
|
|
324
|
-
i0.ɵɵelementStart(4, "div",
|
|
325
|
+
i0.ɵɵelementStart(4, "div", 57)(5, "h2");
|
|
325
326
|
i0.ɵɵtext(6);
|
|
326
327
|
i0.ɵɵelementEnd();
|
|
327
|
-
i0.ɵɵelementStart(7, "span",
|
|
328
|
+
i0.ɵɵelementStart(7, "span", 58);
|
|
328
329
|
i0.ɵɵelement(8, "i");
|
|
329
330
|
i0.ɵɵtext(9);
|
|
330
331
|
i0.ɵɵelementEnd()();
|
|
331
|
-
i0.ɵɵelementStart(10, "div",
|
|
332
|
-
i0.ɵɵconditionalCreate(11, CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditional_11_Template, 2, 0, "button",
|
|
333
|
-
i0.ɵɵelementStart(12, "button",
|
|
332
|
+
i0.ɵɵelementStart(10, "div", 59);
|
|
333
|
+
i0.ɵɵconditionalCreate(11, CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditional_11_Template, 2, 0, "button", 60);
|
|
334
|
+
i0.ɵɵelementStart(12, "button", 61);
|
|
334
335
|
i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_Conditional_13_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",
|
|
336
|
+
i0.ɵɵelement(13, "i", 62);
|
|
336
337
|
i0.ɵɵelementEnd()()();
|
|
337
|
-
i0.ɵɵelementStart(14, "div",
|
|
338
|
+
i0.ɵɵelementStart(14, "div", 63)(15, "div", 64)(16, "div", 65)(17, "div", 66);
|
|
338
339
|
i0.ɵɵtext(18);
|
|
339
340
|
i0.ɵɵelementEnd();
|
|
340
|
-
i0.ɵɵelementStart(19, "div",
|
|
341
|
+
i0.ɵɵelementStart(19, "div", 67);
|
|
341
342
|
i0.ɵɵtext(20, "Credentials");
|
|
342
343
|
i0.ɵɵelementEnd()();
|
|
343
|
-
i0.ɵɵelementStart(21, "div",
|
|
344
|
+
i0.ɵɵelementStart(21, "div", 68)(22, "div", 66);
|
|
344
345
|
i0.ɵɵtext(23);
|
|
345
346
|
i0.ɵɵelementEnd();
|
|
346
|
-
i0.ɵɵelementStart(24, "div",
|
|
347
|
+
i0.ɵɵelementStart(24, "div", 67);
|
|
347
348
|
i0.ɵɵtext(25, "Active");
|
|
348
349
|
i0.ɵɵelementEnd()();
|
|
349
|
-
i0.ɵɵconditionalCreate(26, CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditional_26_Template, 5, 1, "div",
|
|
350
|
+
i0.ɵɵconditionalCreate(26, CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditional_26_Template, 5, 1, "div", 69);
|
|
350
351
|
i0.ɵɵelementEnd();
|
|
351
|
-
i0.ɵɵconditionalCreate(27, CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditional_27_Template, 2, 1, "p",
|
|
352
|
-
i0.ɵɵelementStart(28, "div",
|
|
353
|
-
i0.ɵɵelement(30, "i",
|
|
352
|
+
i0.ɵɵconditionalCreate(27, CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditional_27_Template, 2, 1, "p", 70);
|
|
353
|
+
i0.ɵɵelementStart(28, "div", 71)(29, "h3");
|
|
354
|
+
i0.ɵɵelement(30, "i", 72);
|
|
354
355
|
i0.ɵɵtext(31, " Field Schema ");
|
|
355
356
|
i0.ɵɵelementEnd();
|
|
356
|
-
i0.ɵɵconditionalCreate(32, CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditional_32_Template, 3, 0, "div",
|
|
357
|
-
i0.ɵɵconditionalCreate(33, CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditional_33_Template, 4, 0, "div",
|
|
357
|
+
i0.ɵɵconditionalCreate(32, CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditional_32_Template, 3, 0, "div", 73);
|
|
358
|
+
i0.ɵɵconditionalCreate(33, CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditional_33_Template, 4, 0, "div", 74);
|
|
358
359
|
i0.ɵɵelementEnd();
|
|
359
|
-
i0.ɵɵconditionalCreate(34, CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditional_34_Template, 8, 1, "div",
|
|
360
|
-
i0.ɵɵconditionalCreate(35, CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditional_35_Template, 4, 0, "div",
|
|
360
|
+
i0.ɵɵconditionalCreate(34, CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditional_34_Template, 8, 1, "div", 75);
|
|
361
|
+
i0.ɵɵconditionalCreate(35, CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Conditional_35_Template, 4, 0, "div", 76);
|
|
361
362
|
i0.ɵɵelementEnd()();
|
|
362
363
|
} if (rf & 2) {
|
|
363
364
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
@@ -393,8 +394,8 @@ function CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Template
|
|
|
393
394
|
i0.ɵɵconditional(ctx_r2.UserCanCreateCredential ? 35 : -1);
|
|
394
395
|
} }
|
|
395
396
|
function CredentialsTypesResourceComponent_Conditional_13_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
396
|
-
i0.ɵɵelementStart(0, "div",
|
|
397
|
-
i0.ɵɵelement(2, "i",
|
|
397
|
+
i0.ɵɵelementStart(0, "div", 22)(1, "div", 91);
|
|
398
|
+
i0.ɵɵelement(2, "i", 92);
|
|
398
399
|
i0.ɵɵelementEnd();
|
|
399
400
|
i0.ɵɵelementStart(3, "h3");
|
|
400
401
|
i0.ɵɵtext(4, "Select a Credential Type");
|
|
@@ -404,13 +405,13 @@ function CredentialsTypesResourceComponent_Conditional_13_Conditional_7_Template
|
|
|
404
405
|
i0.ɵɵelementEnd()();
|
|
405
406
|
} }
|
|
406
407
|
function CredentialsTypesResourceComponent_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
407
|
-
i0.ɵɵelementStart(0, "div", 13)(1, "div",
|
|
408
|
-
i0.ɵɵrepeaterCreate(2, CredentialsTypesResourceComponent_Conditional_13_For_3_Template, 10, 8, "div",
|
|
408
|
+
i0.ɵɵelementStart(0, "div", 13)(1, "div", 18);
|
|
409
|
+
i0.ɵɵrepeaterCreate(2, CredentialsTypesResourceComponent_Conditional_13_For_3_Template, 10, 8, "div", 19, i0.ɵɵrepeaterTrackByIdentity);
|
|
409
410
|
i0.ɵɵpipe(4, "keyvalue");
|
|
410
|
-
i0.ɵɵconditionalCreate(5, CredentialsTypesResourceComponent_Conditional_13_Conditional_5_Template, 8, 3, "div",
|
|
411
|
+
i0.ɵɵconditionalCreate(5, CredentialsTypesResourceComponent_Conditional_13_Conditional_5_Template, 8, 3, "div", 20);
|
|
411
412
|
i0.ɵɵelementEnd();
|
|
412
|
-
i0.ɵɵconditionalCreate(6, CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Template, 36, 23, "div",
|
|
413
|
-
i0.ɵɵconditionalCreate(7, CredentialsTypesResourceComponent_Conditional_13_Conditional_7_Template, 7, 0, "div",
|
|
413
|
+
i0.ɵɵconditionalCreate(6, CredentialsTypesResourceComponent_Conditional_13_Conditional_6_Template, 36, 23, "div", 21);
|
|
414
|
+
i0.ɵɵconditionalCreate(7, CredentialsTypesResourceComponent_Conditional_13_Conditional_7_Template, 7, 0, "div", 22);
|
|
414
415
|
i0.ɵɵelementEnd();
|
|
415
416
|
} if (rf & 2) {
|
|
416
417
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
@@ -800,24 +801,24 @@ let CredentialsTypesResourceComponent = class CredentialsTypesResourceComponent
|
|
|
800
801
|
} if (rf & 2) {
|
|
801
802
|
let _t;
|
|
802
803
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.typeEditPanel = _t.first);
|
|
803
|
-
} }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 16, vars: 12, consts: [["typeEditPanel", ""], ["Title", "Credential Types", "Icon", "fa-solid fa-shapes"], ["meta", ""], ["Label", "types", 3, "Count", "Total"], ["actions", ""], [3, "
|
|
804
|
+
} }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 16, vars: 12, consts: [["typeEditPanel", ""], ["Title", "Credential Types", "Icon", "fa-solid fa-shapes"], ["meta", ""], ["Label", "types", 3, "Count", "Total"], ["actions", ""], [3, "Clicked", "Loading"], ["mjButton", "", "variant", "primary", "size", "sm"], ["toolbar", ""], ["Placeholder", "Search types...", 3, "ValueChange", "Value"], [3, "ClearAllRequested", "ActiveCount", "ShowClearAll"], [3, "ValuesChange", "Reset", "Fields", "Values"], [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, "action-btn-label"], [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) {
|
|
804
805
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
805
806
|
i0.ɵɵelementStart(0, "mj-page-layout")(1, "mj-page-header", 1)(2, "div", 2);
|
|
806
807
|
i0.ɵɵelement(3, "mj-stat-badge", 3);
|
|
807
808
|
i0.ɵɵelementEnd();
|
|
808
|
-
i0.ɵɵelementStart(4, "div", 4)(5, "mj-
|
|
809
|
-
i0.ɵɵlistener("
|
|
810
|
-
i0.ɵɵ
|
|
811
|
-
i0.ɵɵ
|
|
812
|
-
i0.ɵɵelementEnd()();
|
|
813
|
-
i0.ɵɵelementStart(7, "mj-refresh-button", 7);
|
|
814
|
-
i0.ɵɵlistener("Clicked", function CredentialsTypesResourceComponent_Template_mj_refresh_button_Clicked_7_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.refresh()); });
|
|
809
|
+
i0.ɵɵelementStart(4, "div", 4)(5, "mj-refresh-button", 5);
|
|
810
|
+
i0.ɵɵlistener("Clicked", function CredentialsTypesResourceComponent_Template_mj_refresh_button_Clicked_5_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.refresh()); });
|
|
811
|
+
i0.ɵɵelementEnd();
|
|
812
|
+
i0.ɵɵconditionalCreate(6, CredentialsTypesResourceComponent_Conditional_6_Template, 4, 0, "button", 6);
|
|
815
813
|
i0.ɵɵelementEnd();
|
|
816
|
-
i0.ɵɵ
|
|
814
|
+
i0.ɵɵelementStart(7, "div", 7)(8, "mj-page-search", 8);
|
|
815
|
+
i0.ɵɵlistener("ValueChange", function CredentialsTypesResourceComponent_Template_mj_page_search_ValueChange_8_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onSearchChange($event)); });
|
|
817
816
|
i0.ɵɵelementEnd();
|
|
818
|
-
i0.ɵɵelementStart(9, "
|
|
819
|
-
i0.ɵɵlistener("
|
|
820
|
-
i0.ɵɵ
|
|
817
|
+
i0.ɵɵelementStart(9, "mj-filter-popover", 9);
|
|
818
|
+
i0.ɵɵlistener("ClearAllRequested", function CredentialsTypesResourceComponent_Template_mj_filter_popover_ClearAllRequested_9_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.resetFilters()); });
|
|
819
|
+
i0.ɵɵelementStart(10, "mj-filter-panel", 10);
|
|
820
|
+
i0.ɵɵlistener("ValuesChange", function CredentialsTypesResourceComponent_Template_mj_filter_panel_ValuesChange_10_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onFilterValuesChange($event)); })("Reset", function CredentialsTypesResourceComponent_Template_mj_filter_panel_Reset_10_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.resetFilters()); });
|
|
821
|
+
i0.ɵɵelementEnd()()()();
|
|
821
822
|
i0.ɵɵelementStart(11, "mj-page-body", 11);
|
|
822
823
|
i0.ɵɵconditionalCreate(12, CredentialsTypesResourceComponent_Conditional_12_Template, 1, 0, "mj-loading", 12);
|
|
823
824
|
i0.ɵɵconditionalCreate(13, CredentialsTypesResourceComponent_Conditional_13_Template, 8, 5, "div", 13);
|
|
@@ -829,16 +830,16 @@ let CredentialsTypesResourceComponent = class CredentialsTypesResourceComponent
|
|
|
829
830
|
i0.ɵɵadvance(3);
|
|
830
831
|
i0.ɵɵproperty("Count", ctx.filteredTypes.length)("Total", ctx.types.length);
|
|
831
832
|
i0.ɵɵadvance(2);
|
|
832
|
-
i0.ɵɵproperty("ActiveCount", ctx.ActiveFilterCount)("ShowClearAll", ctx.ActiveFilterCount > 0);
|
|
833
|
-
i0.ɵɵadvance();
|
|
834
|
-
i0.ɵɵproperty("Fields", ctx.FilterFields)("Values", ctx.FilterValues);
|
|
835
|
-
i0.ɵɵadvance();
|
|
836
833
|
i0.ɵɵproperty("Loading", ctx.isLoading);
|
|
837
834
|
i0.ɵɵadvance();
|
|
838
|
-
i0.ɵɵconditional(ctx.UserCanCreate ?
|
|
835
|
+
i0.ɵɵconditional(ctx.UserCanCreate ? 6 : -1);
|
|
839
836
|
i0.ɵɵadvance(2);
|
|
840
837
|
i0.ɵɵproperty("Value", ctx.searchText);
|
|
841
838
|
i0.ɵɵadvance();
|
|
839
|
+
i0.ɵɵproperty("ActiveCount", ctx.ActiveFilterCount)("ShowClearAll", ctx.ActiveFilterCount > 0);
|
|
840
|
+
i0.ɵɵadvance();
|
|
841
|
+
i0.ɵɵproperty("Fields", ctx.FilterFields)("Values", ctx.FilterValues);
|
|
842
|
+
i0.ɵɵadvance();
|
|
842
843
|
i0.ɵɵproperty("Flex", true);
|
|
843
844
|
i0.ɵɵadvance();
|
|
844
845
|
i0.ɵɵconditional(ctx.isLoading ? 12 : -1);
|
|
@@ -852,7 +853,7 @@ CredentialsTypesResourceComponent = __decorate([
|
|
|
852
853
|
export { CredentialsTypesResourceComponent };
|
|
853
854
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CredentialsTypesResourceComponent, [{
|
|
854
855
|
type: Component,
|
|
855
|
-
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 <!-- Result-count of the filtered Types list \u2014 passes the meta rule\n (filtered/total is signal about how the filter narrowed the data,\n not visible by glancing at the list). Cross-entity reference\n counts (categories, credentials) dropped per chrome slot\n discipline audit Task B \u2014 those belong on their own pages. -->\n <mj-stat-badge\n [Count]=\"filteredTypes.length\"\n [Total]=\"types.length\"\n Label=\"types\">\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"] }]
|
|
856
|
+
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 <!-- Result-count of the filtered Types list \u2014 passes the meta rule\n (filtered/total is signal about how the filter narrowed the data,\n not visible by glancing at the list). Cross-entity reference\n counts (categories, credentials) dropped per chrome slot\n discipline audit Task B \u2014 those belong on their own pages. -->\n <mj-stat-badge\n [Count]=\"filteredTypes.length\"\n [Total]=\"types.length\"\n Label=\"types\">\n </mj-stat-badge>\n </div>\n <div actions>\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> <span class=\"action-btn-label\">New Type</span>\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 <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 </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"] }]
|
|
856
857
|
}], () => [{ type: i0.ChangeDetectorRef }], { typeEditPanel: [{
|
|
857
858
|
type: ViewChild,
|
|
858
859
|
args: ['typeEditPanel']
|