@memberjunction/ng-dashboards 5.30.1 → 5.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
- package/dist/AI/components/agents/agent-configuration.component.js +4 -4
- package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
- package/dist/AI/components/agents/agent-editor.component.d.ts +2 -1
- package/dist/AI/components/agents/agent-editor.component.d.ts.map +1 -1
- package/dist/AI/components/agents/agent-editor.component.js +8 -6
- package/dist/AI/components/agents/agent-editor.component.js.map +1 -1
- package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.d.ts +2 -1
- package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js +6 -5
- package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js.map +1 -1
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts +2 -1
- 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 +6 -5
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.js.map +1 -1
- package/dist/AI/components/analytics/error-analysis/error-analysis.component.d.ts +2 -1
- package/dist/AI/components/analytics/error-analysis/error-analysis.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/error-analysis/error-analysis.component.js +6 -5
- package/dist/AI/components/analytics/error-analysis/error-analysis.component.js.map +1 -1
- package/dist/AI/components/analytics/executive-summary/executive-summary.component.d.ts +2 -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 +7 -4
- 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 +3 -2
- 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 +10 -6
- 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 +2 -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 +6 -5
- 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 +2 -1
- package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js +6 -5
- 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.map +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +55 -52
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +15 -15
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
- package/dist/AI/components/execution-monitoring.component.d.ts.map +1 -1
- package/dist/AI/components/execution-monitoring.component.js +4 -3
- package/dist/AI/components/execution-monitoring.component.js.map +1 -1
- package/dist/AI/components/models/model-management.component.js +2 -2
- package/dist/AI/components/models/model-management.component.js.map +1 -1
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts +2 -1
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts.map +1 -1
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js +10 -8
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js.map +1 -1
- package/dist/AI/components/prompts/prompt-management.component.d.ts.map +1 -1
- package/dist/AI/components/prompts/prompt-management.component.js +2 -2
- package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
- package/dist/AI/components/prompts/prompt-version-control.component.d.ts +2 -1
- package/dist/AI/components/prompts/prompt-version-control.component.d.ts.map +1 -1
- package/dist/AI/components/prompts/prompt-version-control.component.js +13 -10
- package/dist/AI/components/prompts/prompt-version-control.component.js.map +1 -1
- package/dist/AI/components/requests/agent-requests-resource.component.js +1 -1
- package/dist/AI/components/requests/agent-requests-resource.component.js.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.d.ts +1181 -0
- package/dist/AI/components/tags/tags-resource.component.d.ts.map +1 -0
- package/dist/AI/components/tags/tags-resource.component.js +7487 -0
- package/dist/AI/components/tags/tags-resource.component.js.map +1 -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 +25 -21
- package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
- package/dist/AI/index.d.ts +1 -0
- package/dist/AI/index.d.ts.map +1 -1
- package/dist/AI/index.js +5 -0
- package/dist/AI/index.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 +12 -4
- package/dist/AI/services/ai-instrumentation.service.js.map +1 -1
- package/dist/APIKeys/api-applications-panel.component.d.ts +3 -2
- package/dist/APIKeys/api-applications-panel.component.d.ts.map +1 -1
- package/dist/APIKeys/api-applications-panel.component.js +5 -4
- package/dist/APIKeys/api-applications-panel.component.js.map +1 -1
- package/dist/APIKeys/api-key-create-dialog.component.d.ts +2 -1
- package/dist/APIKeys/api-key-create-dialog.component.d.ts.map +1 -1
- package/dist/APIKeys/api-key-create-dialog.component.js +5 -5
- package/dist/APIKeys/api-key-create-dialog.component.js.map +1 -1
- package/dist/APIKeys/api-key-edit-panel.component.d.ts +3 -2
- package/dist/APIKeys/api-key-edit-panel.component.d.ts.map +1 -1
- package/dist/APIKeys/api-key-edit-panel.component.js +11 -10
- package/dist/APIKeys/api-key-edit-panel.component.js.map +1 -1
- package/dist/APIKeys/api-key-list.component.d.ts +2 -1
- package/dist/APIKeys/api-key-list.component.d.ts.map +1 -1
- package/dist/APIKeys/api-key-list.component.js +6 -5
- package/dist/APIKeys/api-key-list.component.js.map +1 -1
- package/dist/APIKeys/api-keys-resource.component.d.ts.map +1 -1
- package/dist/APIKeys/api-keys-resource.component.js +4 -4
- package/dist/APIKeys/api-keys-resource.component.js.map +1 -1
- package/dist/APIKeys/api-scopes-panel.component.d.ts +3 -2
- package/dist/APIKeys/api-scopes-panel.component.d.ts.map +1 -1
- package/dist/APIKeys/api-scopes-panel.component.js +8 -6
- package/dist/APIKeys/api-scopes-panel.component.js.map +1 -1
- package/dist/APIKeys/api-usage-panel.component.d.ts +3 -2
- package/dist/APIKeys/api-usage-panel.component.d.ts.map +1 -1
- package/dist/APIKeys/api-usage-panel.component.js +10 -8
- package/dist/APIKeys/api-usage-panel.component.js.map +1 -1
- package/dist/Actions/components/actions-list-view.component.d.ts +2 -1
- package/dist/Actions/components/actions-list-view.component.d.ts.map +1 -1
- package/dist/Actions/components/actions-list-view.component.js +6 -5
- package/dist/Actions/components/actions-list-view.component.js.map +1 -1
- package/dist/Actions/components/actions-overview.component.js +2 -2
- package/dist/Actions/components/actions-overview.component.js.map +1 -1
- package/dist/Actions/components/categories-list-view.component.d.ts +2 -1
- package/dist/Actions/components/categories-list-view.component.d.ts.map +1 -1
- package/dist/Actions/components/categories-list-view.component.js +6 -5
- package/dist/Actions/components/categories-list-view.component.js.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.js +1 -1
- package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-card.component.d.ts +2 -1
- package/dist/Actions/components/explorer/action-card.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-card.component.js +6 -4
- package/dist/Actions/components/explorer/action-card.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.js +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
- package/dist/Actions/components/explorer/new-action-panel.component.d.ts +2 -1
- package/dist/Actions/components/explorer/new-action-panel.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/new-action-panel.component.js +7 -5
- package/dist/Actions/components/explorer/new-action-panel.component.js.map +1 -1
- package/dist/Actions/components/explorer/new-category-panel.component.d.ts +2 -1
- package/dist/Actions/components/explorer/new-category-panel.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/new-category-panel.component.js +7 -5
- package/dist/Actions/components/explorer/new-category-panel.component.js.map +1 -1
- package/dist/ApplicationRoles/application-roles-resource.component.js +4 -4
- package/dist/ApplicationRoles/application-roles-resource.component.js.map +1 -1
- package/dist/Communication/communication-logs-resource.component.js +1 -1
- package/dist/Communication/communication-logs-resource.component.js.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.js +1 -1
- package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
- package/dist/Communication/communication-providers-resource.component.js +3 -3
- package/dist/Communication/communication-providers-resource.component.js.map +1 -1
- package/dist/Communication/communication-runs-resource.component.js +1 -1
- package/dist/Communication/communication-runs-resource.component.js.map +1 -1
- package/dist/Communication/communication-templates-resource.component.js +3 -3
- package/dist/Communication/communication-templates-resource.component.js.map +1 -1
- package/dist/ComponentStudio/component-studio-dashboard.component.d.ts +1 -1
- package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
- package/dist/ComponentStudio/component-studio-dashboard.component.js +5 -4
- package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
- package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.d.ts +2 -1
- package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js +6 -4
- package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js.map +1 -1
- package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts +11 -2
- package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/artifact-load-dialog.component.js +61 -27
- package/dist/ComponentStudio/components/artifact-load-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts +4 -2
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.js +19 -11
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/components/editors/data-requirements-editor.component.d.ts +4 -2
- package/dist/ComponentStudio/components/editors/data-requirements-editor.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js +11 -3
- package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js.map +1 -1
- package/dist/ComponentStudio/components/workspace/component-preview.component.d.ts +10 -1
- package/dist/ComponentStudio/components/workspace/component-preview.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/workspace/component-preview.component.js +18 -9
- package/dist/ComponentStudio/components/workspace/component-preview.component.js.map +1 -1
- package/dist/ComponentStudio/services/component-studio-state.service.d.ts +11 -1
- package/dist/ComponentStudio/services/component-studio-state.service.d.ts.map +1 -1
- package/dist/ComponentStudio/services/component-studio-state.service.js +23 -3
- package/dist/ComponentStudio/services/component-studio-state.service.js.map +1 -1
- package/dist/ComponentStudio/services/component-version.service.d.ts +6 -1
- package/dist/ComponentStudio/services/component-version.service.d.ts.map +1 -1
- package/dist/ComponentStudio/services/component-version.service.js +16 -6
- package/dist/ComponentStudio/services/component-version.service.js.map +1 -1
- package/dist/Credentials/components/credentials-audit-resource.component.js +1 -1
- package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-categories-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-categories-resource.component.js +3 -3
- package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-list-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-list-resource.component.js +3 -3
- package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-overview-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-overview-resource.component.js +3 -3
- package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-types-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-types-resource.component.js +3 -3
- package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
- package/dist/Credentials/credentials-dashboard.component.js +1 -1
- package/dist/Credentials/credentials-dashboard.component.js.map +1 -1
- package/dist/DashboardBrowser/dashboard-browser-resource.component.js +13 -13
- package/dist/DashboardBrowser/dashboard-browser-resource.component.js.map +1 -1
- package/dist/DashboardBrowser/dashboard-share-adapter.d.ts +4 -0
- package/dist/DashboardBrowser/dashboard-share-adapter.d.ts.map +1 -1
- package/dist/DashboardBrowser/dashboard-share-adapter.js +5 -2
- package/dist/DashboardBrowser/dashboard-share-adapter.js.map +1 -1
- package/dist/DashboardBrowser/dashboard-share-dialog.component.d.ts +3 -1
- package/dist/DashboardBrowser/dashboard-share-dialog.component.d.ts.map +1 -1
- package/dist/DashboardBrowser/dashboard-share-dialog.component.js +9 -4
- package/dist/DashboardBrowser/dashboard-share-dialog.component.js.map +1 -1
- package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.d.ts +3 -2
- package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.d.ts.map +1 -1
- package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js +7 -6
- package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js.map +1 -1
- package/dist/DataExplorer/components/view-selector/view-selector.component.d.ts +3 -2
- package/dist/DataExplorer/components/view-selector/view-selector.component.d.ts.map +1 -1
- package/dist/DataExplorer/components/view-selector/view-selector.component.js +6 -5
- package/dist/DataExplorer/components/view-selector/view-selector.component.js.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.js +10 -9
- package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
- package/dist/DataExplorer/services/explorer-state.service.d.ts +6 -1
- package/dist/DataExplorer/services/explorer-state.service.d.ts.map +1 -1
- package/dist/DataExplorer/services/explorer-state.service.js +15 -5
- package/dist/DataExplorer/services/explorer-state.service.js.map +1 -1
- package/dist/DatabaseDesigner/components/create-wizard/database-create-wizard.component.d.ts +64 -0
- package/dist/DatabaseDesigner/components/create-wizard/database-create-wizard.component.d.ts.map +1 -0
- package/dist/DatabaseDesigner/components/create-wizard/database-create-wizard.component.js +400 -0
- package/dist/DatabaseDesigner/components/create-wizard/database-create-wizard.component.js.map +1 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-basics.component.d.ts +42 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-basics.component.d.ts.map +1 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-basics.component.js +232 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-basics.component.js.map +1 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-fields.component.d.ts +14 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-fields.component.d.ts.map +1 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-fields.component.js +38 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-fields.component.js.map +1 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-pipeline.component.d.ts +24 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-pipeline.component.d.ts.map +1 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-pipeline.component.js +77 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-pipeline.component.js.map +1 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-relationships.component.d.ts +88 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-relationships.component.d.ts.map +1 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-relationships.component.js +404 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-relationships.component.js.map +1 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-review.component.d.ts +12 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-review.component.d.ts.map +1 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-review.component.js +116 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-review.component.js.map +1 -0
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.d.ts +55 -0
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.d.ts.map +1 -0
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js +204 -0
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js.map +1 -0
- package/dist/DatabaseDesigner/components/entity-list.component.d.ts +61 -0
- package/dist/DatabaseDesigner/components/entity-list.component.d.ts.map +1 -0
- package/dist/DatabaseDesigner/components/entity-list.component.js +485 -0
- package/dist/DatabaseDesigner/components/entity-list.component.js.map +1 -0
- package/dist/DatabaseDesigner/components/modify/database-modify.component.d.ts +52 -0
- package/dist/DatabaseDesigner/components/modify/database-modify.component.d.ts.map +1 -0
- package/dist/DatabaseDesigner/components/modify/database-modify.component.js +320 -0
- package/dist/DatabaseDesigner/components/modify/database-modify.component.js.map +1 -0
- package/dist/DatabaseDesigner/components/shared/database-preview-pane.component.d.ts +79 -0
- package/dist/DatabaseDesigner/components/shared/database-preview-pane.component.d.ts.map +1 -0
- package/dist/DatabaseDesigner/components/shared/database-preview-pane.component.js +378 -0
- package/dist/DatabaseDesigner/components/shared/database-preview-pane.component.js.map +1 -0
- package/dist/DatabaseDesigner/components/shared/entity-fields-grid.component.d.ts +85 -0
- package/dist/DatabaseDesigner/components/shared/entity-fields-grid.component.d.ts.map +1 -0
- package/dist/DatabaseDesigner/components/shared/entity-fields-grid.component.js +429 -0
- package/dist/DatabaseDesigner/components/shared/entity-fields-grid.component.js.map +1 -0
- package/dist/DatabaseDesigner/components/shared/entity-pipeline-panel.component.d.ts +58 -0
- package/dist/DatabaseDesigner/components/shared/entity-pipeline-panel.component.d.ts.map +1 -0
- package/dist/DatabaseDesigner/components/shared/entity-pipeline-panel.component.js +333 -0
- package/dist/DatabaseDesigner/components/shared/entity-pipeline-panel.component.js.map +1 -0
- package/dist/DatabaseDesigner/components/shared/entity-review-panel.component.d.ts +36 -0
- package/dist/DatabaseDesigner/components/shared/entity-review-panel.component.d.ts.map +1 -0
- package/dist/DatabaseDesigner/components/shared/entity-review-panel.component.js +345 -0
- package/dist/DatabaseDesigner/components/shared/entity-review-panel.component.js.map +1 -0
- package/dist/DatabaseDesigner/components/shared/wizard-step-indicator.component.d.ts +13 -0
- package/dist/DatabaseDesigner/components/shared/wizard-step-indicator.component.d.ts.map +1 -0
- package/dist/DatabaseDesigner/components/shared/wizard-step-indicator.component.js +81 -0
- package/dist/DatabaseDesigner/components/shared/wizard-step-indicator.component.js.map +1 -0
- package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts +30 -0
- package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts.map +1 -0
- package/dist/DatabaseDesigner/database-designer-dashboards.module.js +131 -0
- package/dist/DatabaseDesigner/database-designer-dashboards.module.js.map +1 -0
- package/dist/DatabaseDesigner/database-designer-erd.d.ts +19 -0
- package/dist/DatabaseDesigner/database-designer-erd.d.ts.map +1 -0
- package/dist/DatabaseDesigner/database-designer-erd.js +84 -0
- package/dist/DatabaseDesigner/database-designer-erd.js.map +1 -0
- package/dist/DatabaseDesigner/database-designer.types.d.ts +167 -0
- package/dist/DatabaseDesigner/database-designer.types.d.ts.map +1 -0
- package/dist/DatabaseDesigner/database-designer.types.js +26 -0
- package/dist/DatabaseDesigner/database-designer.types.js.map +1 -0
- package/dist/DatabaseDesigner/services/database-designer.engine.d.ts +94 -0
- package/dist/DatabaseDesigner/services/database-designer.engine.d.ts.map +1 -0
- package/dist/DatabaseDesigner/services/database-designer.engine.js +392 -0
- package/dist/DatabaseDesigner/services/database-designer.engine.js.map +1 -0
- package/dist/DatabaseDesigner/services/database-designer.service.d.ts +78 -0
- package/dist/DatabaseDesigner/services/database-designer.service.d.ts.map +1 -0
- package/dist/DatabaseDesigner/services/database-designer.service.js +273 -0
- package/dist/DatabaseDesigner/services/database-designer.service.js.map +1 -0
- package/dist/DatabaseDesigner/services/entity-wizard-state.service.d.ts +79 -0
- package/dist/DatabaseDesigner/services/entity-wizard-state.service.d.ts.map +1 -0
- package/dist/DatabaseDesigner/services/entity-wizard-state.service.js +204 -0
- package/dist/DatabaseDesigner/services/entity-wizard-state.service.js.map +1 -0
- package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts.map +1 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.js +2 -2
- package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
- package/dist/Home/action-pin-config-dialog.component.d.ts +2 -1
- package/dist/Home/action-pin-config-dialog.component.d.ts.map +1 -1
- package/dist/Home/action-pin-config-dialog.component.js +6 -4
- package/dist/Home/action-pin-config-dialog.component.js.map +1 -1
- package/dist/Home/action-pin-runner-dialog.component.d.ts +2 -1
- package/dist/Home/action-pin-runner-dialog.component.d.ts.map +1 -1
- package/dist/Home/action-pin-runner-dialog.component.js +5 -4
- package/dist/Home/action-pin-runner-dialog.component.js.map +1 -1
- package/dist/Home/home-application.d.ts.map +1 -1
- package/dist/Home/home-application.js +10 -12
- package/dist/Home/home-application.js.map +1 -1
- package/dist/Home/home-dashboard.component.d.ts.map +1 -1
- package/dist/Home/home-dashboard.component.js +3 -3
- package/dist/Home/home-dashboard.component.js.map +1 -1
- package/dist/Integration/components/activity/activity.component.d.ts.map +1 -1
- package/dist/Integration/components/activity/activity.component.js +1 -0
- package/dist/Integration/components/activity/activity.component.js.map +1 -1
- package/dist/Integration/components/connections/connections.component.d.ts.map +1 -1
- package/dist/Integration/components/connections/connections.component.js +11 -10
- package/dist/Integration/components/connections/connections.component.js.map +1 -1
- package/dist/Integration/components/mapping-workspace/mapping-workspace.component.d.ts.map +1 -1
- package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js +2 -2
- package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js.map +1 -1
- package/dist/Integration/components/overview/overview.component.d.ts.map +1 -1
- package/dist/Integration/components/overview/overview.component.js +1 -0
- package/dist/Integration/components/overview/overview.component.js.map +1 -1
- package/dist/Integration/components/pipelines/pipelines.component.d.ts.map +1 -1
- package/dist/Integration/components/pipelines/pipelines.component.js +1 -0
- package/dist/Integration/components/pipelines/pipelines.component.js.map +1 -1
- package/dist/Integration/components/schedules/schedules.component.d.ts.map +1 -1
- package/dist/Integration/components/schedules/schedules.component.js +5 -4
- package/dist/Integration/components/schedules/schedules.component.js.map +1 -1
- package/dist/Integration/services/integration-data.service.d.ts +5 -1
- package/dist/Integration/services/integration-data.service.d.ts.map +1 -1
- package/dist/Integration/services/integration-data.service.js +27 -19
- package/dist/Integration/services/integration-data.service.js.map +1 -1
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +6 -6
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +8 -6
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +6 -6
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js +3 -3
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.js +6 -6
- package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-categories-resource.component.js +4 -4
- package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.js +6 -6
- package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-operations-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-operations-resource.component.js +11 -10
- package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
- package/dist/Lists/services/list-set-operations.service.d.ts +5 -0
- package/dist/Lists/services/list-set-operations.service.d.ts.map +1 -1
- package/dist/Lists/services/list-set-operations.service.js +11 -3
- package/dist/Lists/services/list-set-operations.service.js.map +1 -1
- package/dist/MCP/components/mcp-connection-dialog.component.d.ts +2 -1
- package/dist/MCP/components/mcp-connection-dialog.component.d.ts.map +1 -1
- package/dist/MCP/components/mcp-connection-dialog.component.js +8 -6
- package/dist/MCP/components/mcp-connection-dialog.component.js.map +1 -1
- package/dist/MCP/components/mcp-server-dialog.component.d.ts +2 -1
- package/dist/MCP/components/mcp-server-dialog.component.d.ts.map +1 -1
- package/dist/MCP/components/mcp-server-dialog.component.js +7 -5
- package/dist/MCP/components/mcp-server-dialog.component.js.map +1 -1
- package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
- package/dist/MCP/mcp-dashboard.component.js +12 -12
- package/dist/MCP/mcp-dashboard.component.js.map +1 -1
- package/dist/Permissions/permissions-shared.d.ts +3 -3
- package/dist/Permissions/permissions-shared.d.ts.map +1 -1
- package/dist/Permissions/permissions-shared.js +5 -5
- package/dist/Permissions/permissions-shared.js.map +1 -1
- package/dist/Permissions/resource-access-resource.component.js +1 -1
- package/dist/Permissions/resource-access-resource.component.js.map +1 -1
- package/dist/Permissions/user-access-resource.component.js +1 -2
- package/dist/Permissions/user-access-resource.component.js.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.d.ts.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.js +2 -2
- package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
- package/dist/Scheduling/scheduling-dashboard.component.d.ts.map +1 -1
- package/dist/Scheduling/scheduling-dashboard.component.js +1 -0
- package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
- package/dist/Scheduling/services/scheduling-instrumentation.service.d.ts +5 -0
- package/dist/Scheduling/services/scheduling-instrumentation.service.d.ts.map +1 -1
- package/dist/Scheduling/services/scheduling-instrumentation.service.js +21 -13
- package/dist/Scheduling/services/scheduling-instrumentation.service.js.map +1 -1
- package/dist/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -1
- package/dist/SystemDiagnostics/system-diagnostics.component.js +2 -2
- package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
- package/dist/Testing/components/testing-explorer.component.d.ts +2 -1
- package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-explorer.component.js +9 -7
- package/dist/Testing/components/testing-explorer.component.js.map +1 -1
- package/dist/Testing/services/testing-instrumentation.service.d.ts +6 -1
- package/dist/Testing/services/testing-instrumentation.service.d.ts.map +1 -1
- package/dist/Testing/services/testing-instrumentation.service.js +21 -11
- package/dist/Testing/services/testing-instrumentation.service.js.map +1 -1
- package/dist/Testing/testing-dashboard.component.d.ts +3 -1
- package/dist/Testing/testing-dashboard.component.d.ts.map +1 -1
- package/dist/Testing/testing-dashboard.component.js +15 -11
- package/dist/Testing/testing-dashboard.component.js.map +1 -1
- package/dist/VersionHistory/components/diff-resource.component.d.ts.map +1 -1
- package/dist/VersionHistory/components/diff-resource.component.js +5 -5
- package/dist/VersionHistory/components/diff-resource.component.js.map +1 -1
- package/dist/VersionHistory/components/graph-resource.component.d.ts.map +1 -1
- package/dist/VersionHistory/components/graph-resource.component.js +1 -2
- package/dist/VersionHistory/components/graph-resource.component.js.map +1 -1
- package/dist/VersionHistory/components/labels-resource.component.d.ts.map +1 -1
- package/dist/VersionHistory/components/labels-resource.component.js +3 -3
- package/dist/VersionHistory/components/labels-resource.component.js.map +1 -1
- package/dist/VersionHistory/components/restore-resource.component.js +1 -1
- package/dist/VersionHistory/components/restore-resource.component.js.map +1 -1
- package/dist/ai-dashboards.module.d.ts +35 -34
- package/dist/ai-dashboards.module.d.ts.map +1 -1
- package/dist/ai-dashboards.module.js +6 -0
- package/dist/ai-dashboards.module.js.map +1 -1
- package/dist/module.d.ts +13 -12
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +7 -0
- package/dist/module.js.map +1 -1
- package/dist/public-api.d.ts +3 -1
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +3 -1
- package/dist/public-api.js.map +1 -1
- package/dist/shared/entity-field-display.d.ts +4 -3
- package/dist/shared/entity-field-display.d.ts.map +1 -1
- package/dist/shared/entity-field-display.js +9 -9
- package/dist/shared/entity-field-display.js.map +1 -1
- package/package.json +52 -51
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials-list-resource.component.js","sourceRoot":"","sources":["../../../src/Credentials/components/credentials-list-resource.component.ts","../../../src/Credentials/components/credentials-list-resource.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, OnInit, OnDestroy, ChangeDetectorRef, ChangeDetectionStrategy, ViewChild } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { ResourceData, MJCredentialEntity, MJCredentialTypeEntity } from '@memberjunction/core-entities';\nimport { RegisterClass , UUIDsEqual } from '@memberjunction/global';\nimport { BaseResourceComponent } from '@memberjunction/ng-shared';\nimport { RunView, Metadata } from '@memberjunction/core';\nimport { MJNotificationService } from '@memberjunction/ng-notifications';\nimport { CredentialEditPanelComponent } from '@memberjunction/ng-credentials';\ntype ViewMode = 'grid' | 'list';\ntype StatusFilter = '' | 'active' | 'inactive' | 'expired' | 'expiring';\n\n@RegisterClass(BaseResourceComponent, 'CredentialsListResource')\n@Component({\n standalone: false,\n selector: 'mj-credentials-list-resource',\n templateUrl: './credentials-list-resource.component.html',\n styleUrls: ['./credentials-list-resource.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CredentialsListResourceComponent extends BaseResourceComponent implements OnInit, OnDestroy {\n public isLoading = true;\n public credentials: MJCredentialEntity[] = [];\n public filteredCredentials: MJCredentialEntity[] = [];\n public types: MJCredentialTypeEntity[] = [];\n\n // View state\n public viewMode: ViewMode = 'grid';\n public searchText = '';\n public selectedTypeFilter = '';\n public selectedStatusFilter: StatusFilter = '';\n public showActiveOnly = false;\n\n // Selection for bulk operations\n public selectedCredentials = new Set<string>();\n private _isAllSelected = false;\n\n // Permissions\n private _metadata = new Metadata();\n private _permissionCache = new Map<string, boolean>();\n\n protected override destroy$ = new Subject<void>();\n\n @ViewChild('editPanel') editPanel!: CredentialEditPanelComponent;\n\n constructor(\n private cdr: ChangeDetectorRef\n ) {\n super();\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n this.loadData();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n async GetResourceDisplayName(data: ResourceData): Promise<string> {\n return 'Credentials';\n }\n\n async GetResourceIconClass(data: ResourceData): Promise<string> {\n return 'fa-solid fa-key';\n }\n\n // === Permission Checks ===\n public get UserCanCreate(): boolean {\n return this.checkEntityPermission('MJ: Credentials', 'Create');\n }\n\n public get UserCanUpdate(): boolean {\n return this.checkEntityPermission('MJ: Credentials', 'Update');\n }\n\n public get UserCanDelete(): boolean {\n return this.checkEntityPermission('MJ: Credentials', 'Delete');\n }\n\n private checkEntityPermission(entityName: string, permissionType: 'Create' | 'Read' | 'Update' | 'Delete'): boolean {\n const cacheKey = `${entityName}_${permissionType}`;\n\n if (this._permissionCache.has(cacheKey)) {\n return this._permissionCache.get(cacheKey)!;\n }\n\n try {\n const entityInfo = this._metadata.Entities.find(e => e.Name === entityName);\n if (!entityInfo) {\n this._permissionCache.set(cacheKey, false);\n return false;\n }\n\n const userPermissions = entityInfo.GetUserPermisions(this._metadata.CurrentUser);\n let hasPermission = false;\n\n switch (permissionType) {\n case 'Create': hasPermission = userPermissions.CanCreate; break;\n case 'Read': hasPermission = userPermissions.CanRead; break;\n case 'Update': hasPermission = userPermissions.CanUpdate; break;\n case 'Delete': hasPermission = userPermissions.CanDelete; break;\n }\n\n this._permissionCache.set(cacheKey, hasPermission);\n return hasPermission;\n } catch (error) {\n this._permissionCache.set(cacheKey, false);\n return false;\n }\n }\n\n private async loadData(): Promise<void> {\n try {\n this.isLoading = true;\n this.cdr.markForCheck();\n\n const rv = new RunView();\n\n const [credResult, typeResult] = await rv.RunViews([\n {\n EntityName: 'MJ: Credentials',\n OrderBy: '__mj_UpdatedAt DESC',\n ResultType: 'entity_object'\n },\n {\n EntityName: 'MJ: Credential Types',\n OrderBy: 'Category, Name',\n ResultType: 'entity_object'\n }\n ]);\n\n if (credResult.Success) {\n this.credentials = credResult.Results as MJCredentialEntity[];\n }\n\n if (typeResult.Success) {\n this.types = typeResult.Results as MJCredentialTypeEntity[];\n }\n\n this.applyFilters();\n\n } catch (error) {\n console.error('Error loading credentials:', error);\n MJNotificationService.Instance.CreateSimpleNotification('Error loading credentials', 'error', 3000);\n } finally {\n this.isLoading = false;\n this.NotifyLoadComplete();\n this.cdr.markForCheck();\n\n // Handle navigation params from Data.Configuration (passed via NavigationService)\n this.handleNavigationConfig();\n }\n }\n\n // === Navigation Handling ===\n\n private handleNavigationConfig(): void {\n const config = this.Data?.Configuration;\n if (!config) {\n return;\n }\n\n // Apply filters from navigation config\n if (config.typeId) {\n this.selectedTypeFilter = config.typeId as string;\n this.applyFilters();\n }\n\n if (config.openCreatePanel) {\n // Open create panel (optionally with type/category pre-selected)\n setTimeout(() => {\n if (config.categoryId) {\n this.createNewCredentialWithType(config.typeId as string, config.categoryId as string);\n } else if (config.typeId) {\n this.createNewCredentialWithType(config.typeId as string);\n } else {\n this.createNewCredential();\n }\n }, 100);\n }\n }\n\n // === CRUD Operations ===\n\n public createNewCredential(): void {\n if (this.editPanel) {\n this.editPanel.open(null);\n }\n }\n\n public createNewCredentialWithType(typeId?: string, categoryId?: string): void {\n if (this.editPanel) {\n this.editPanel.open(null, typeId, categoryId);\n }\n }\n\n public editCredential(credential: MJCredentialEntity, event?: Event): void {\n if (event) {\n event.stopPropagation();\n }\n if (this.editPanel) {\n this.editPanel.open(credential);\n }\n }\n\n public onCredentialSaved(credential: MJCredentialEntity): void {\n // Check if it's a new credential or update\n const existingIndex = this.credentials.findIndex(c => UUIDsEqual(c.ID, credential.ID));\n if (existingIndex >= 0) {\n // Update existing\n this.credentials[existingIndex] = credential;\n } else {\n // Add new\n this.credentials.unshift(credential);\n }\n this.applyFilters();\n this.cdr.markForCheck();\n }\n\n public onCredentialDeleted(credentialId: string): void {\n this.credentials = this.credentials.filter(c => !UUIDsEqual(c.ID, credentialId));\n this.selectedCredentials.delete(credentialId);\n this.applyFilters();\n this.cdr.markForCheck();\n }\n\n public async deleteCredential(credential: MJCredentialEntity, event?: Event): Promise<void> {\n if (event) {\n event.stopPropagation();\n }\n\n if (!this.UserCanDelete) {\n MJNotificationService.Instance.CreateSimpleNotification('You do not have permission to delete credentials', 'warning', 3000);\n return;\n }\n\n const confirmed = confirm(`Are you sure you want to delete \"${credential.Name}\"? This action cannot be undone.`);\n if (!confirmed) return;\n\n try {\n const success = await credential.Delete();\n if (success) {\n MJNotificationService.Instance.CreateSimpleNotification(`Credential \"${credential.Name}\" deleted successfully`, 'success', 3000);\n this.credentials = this.credentials.filter(c => !UUIDsEqual(c.ID, credential.ID));\n this.selectedCredentials.delete(credential.ID);\n this.applyFilters();\n } else {\n MJNotificationService.Instance.CreateSimpleNotification('Failed to delete credential', 'error', 3000);\n }\n } catch (error) {\n console.error('Error deleting credential:', error);\n MJNotificationService.Instance.CreateSimpleNotification('Error deleting credential', 'error', 3000);\n }\n }\n\n public async toggleCredentialActive(credential: MJCredentialEntity, event?: Event): Promise<void> {\n if (event) {\n event.stopPropagation();\n }\n\n if (!this.UserCanUpdate) {\n MJNotificationService.Instance.CreateSimpleNotification('You do not have permission to update credentials', 'warning', 3000);\n return;\n }\n\n try {\n credential.IsActive = !credential.IsActive;\n const success = await credential.Save();\n\n if (success) {\n const status = credential.IsActive ? 'activated' : 'deactivated';\n MJNotificationService.Instance.CreateSimpleNotification(`Credential \"${credential.Name}\" ${status}`, 'success', 2000);\n this.applyFilters();\n } else {\n // Revert on failure\n credential.IsActive = !credential.IsActive;\n MJNotificationService.Instance.CreateSimpleNotification('Failed to update credential', 'error', 3000);\n }\n } catch (error) {\n console.error('Error updating credential:', error);\n credential.IsActive = !credential.IsActive;\n MJNotificationService.Instance.CreateSimpleNotification('Error updating credential', 'error', 3000);\n }\n this.cdr.markForCheck();\n }\n\n // === Selection ===\n\n public toggleSelection(credential: MJCredentialEntity, event?: Event): void {\n if (event) {\n event.stopPropagation();\n }\n if (this.selectedCredentials.has(credential.ID)) {\n this.selectedCredentials.delete(credential.ID);\n } else {\n this.selectedCredentials.add(credential.ID);\n }\n this.updateAllSelectedState();\n this.cdr.markForCheck();\n }\n\n public toggleSelectAll(): void {\n if (this._isAllSelected) {\n this.selectedCredentials.clear();\n } else {\n this.filteredCredentials.forEach(c => this.selectedCredentials.add(c.ID));\n }\n this._isAllSelected = !this._isAllSelected;\n this.cdr.markForCheck();\n }\n\n public isAllSelected(): boolean {\n return this._isAllSelected;\n }\n\n public isSelected(credential: MJCredentialEntity): boolean {\n return this.selectedCredentials.has(credential.ID);\n }\n\n public clearSelection(): void {\n this.selectedCredentials.clear();\n this._isAllSelected = false;\n this.cdr.markForCheck();\n }\n\n private updateAllSelectedState(): void {\n this._isAllSelected = this.filteredCredentials.length > 0 &&\n this.filteredCredentials.every(c => this.selectedCredentials.has(c.ID));\n }\n\n public async deleteSelected(): Promise<void> {\n if (!this.UserCanDelete || this.selectedCredentials.size === 0) return;\n\n const count = this.selectedCredentials.size;\n const confirmed = confirm(`Are you sure you want to delete ${count} credential(s)? This action cannot be undone.`);\n if (!confirmed) return;\n\n const toDelete = Array.from(this.selectedCredentials)\n .map(id => this.credentials.find(c => UUIDsEqual(c.ID, id)))\n .filter((c): c is MJCredentialEntity => c != null);\n\n if (toDelete.length === 0) return;\n\n const tg = await this._metadata.CreateTransactionGroup();\n for (const credential of toDelete) {\n credential.TransactionGroup = tg;\n await credential.Delete();\n }\n\n if (await tg.Submit()) {\n const deletedIds = new Set(toDelete.map(c => c.ID));\n this.credentials = this.credentials.filter(c => !deletedIds.has(c.ID));\n this.selectedCredentials.clear();\n this.applyFilters();\n MJNotificationService.Instance.CreateSimpleNotification(\n `${toDelete.length} credential(s) deleted`,\n 'success',\n 3000\n );\n } else {\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Failed to delete credentials — all changes have been rolled back',\n 'error',\n 3000\n );\n }\n }\n\n // === Filtering ===\n\n public onSearchChange(value: string): void {\n this.searchText = value;\n this.applyFilters();\n }\n\n public onTypeFilterChange(typeId: string): void {\n this.selectedTypeFilter = typeId;\n this.applyFilters();\n }\n\n public onStatusFilterChange(status: StatusFilter): void {\n this.selectedStatusFilter = status;\n this.applyFilters();\n }\n\n public onActiveFilterChange(showActive: boolean): void {\n this.showActiveOnly = showActive;\n this.applyFilters();\n }\n\n public clearFilters(): void {\n this.searchText = '';\n this.selectedTypeFilter = '';\n this.selectedStatusFilter = '';\n this.showActiveOnly = false;\n this.applyFilters();\n }\n\n public get hasActiveFilters(): boolean {\n return this.searchText !== '' ||\n this.selectedTypeFilter !== '' ||\n this.selectedStatusFilter !== '' ||\n this.showActiveOnly;\n }\n\n private applyFilters(): void {\n let filtered = [...this.credentials];\n const now = new Date();\n const thirtyDaysFromNow = new Date();\n thirtyDaysFromNow.setDate(thirtyDaysFromNow.getDate() + 30);\n\n // Filter by active status\n if (this.showActiveOnly) {\n filtered = filtered.filter(c => c.IsActive);\n }\n\n // Filter by status\n if (this.selectedStatusFilter) {\n filtered = filtered.filter(c => {\n const statusClass = this.getStatusClass(c);\n switch (this.selectedStatusFilter) {\n case 'active': return statusClass === 'active';\n case 'inactive': return statusClass === 'inactive';\n case 'expired': return statusClass === 'expired';\n case 'expiring': return statusClass === 'expiring';\n default: return true;\n }\n });\n }\n\n // Filter by type\n if (this.selectedTypeFilter) {\n filtered = filtered.filter(c => UUIDsEqual(c.CredentialTypeID, this.selectedTypeFilter));\n }\n\n // Filter by search text\n if (this.searchText.trim()) {\n const search = this.searchText.toLowerCase().trim();\n filtered = filtered.filter(c =>\n c.Name.toLowerCase().includes(search) ||\n (c.Description && c.Description.toLowerCase().includes(search)) ||\n (c.CredentialType && c.CredentialType.toLowerCase().includes(search))\n );\n }\n\n this.filteredCredentials = filtered;\n this.updateAllSelectedState();\n this.cdr.markForCheck();\n }\n\n // === View Mode ===\n\n public setViewMode(mode: ViewMode): void {\n this.viewMode = mode;\n this.cdr.markForCheck();\n }\n\n // === Helpers ===\n\n public getTypeById(typeId: string): MJCredentialTypeEntity | undefined {\n return this.types.find(t => UUIDsEqual(t.ID, typeId));\n }\n\n public getTypesByCategory(): Map<string, MJCredentialTypeEntity[]> {\n const grouped = new Map<string, MJCredentialTypeEntity[]>();\n for (const type of this.types) {\n const category = type.Category;\n if (!grouped.has(category)) {\n grouped.set(category, []);\n }\n grouped.get(category)!.push(type);\n }\n return grouped;\n }\n\n public getStatusClass(credential: MJCredentialEntity): string {\n if (!credential.IsActive) {\n return 'inactive';\n }\n if (credential.ExpiresAt) {\n const expiresAt = new Date(credential.ExpiresAt);\n const now = new Date();\n const thirtyDays = 30 * 24 * 60 * 60 * 1000;\n if (expiresAt < now) {\n return 'expired';\n }\n if (expiresAt.getTime() - now.getTime() < thirtyDays) {\n return 'expiring';\n }\n }\n return 'active';\n }\n\n public getStatusLabel(credential: MJCredentialEntity): string {\n const statusClass = this.getStatusClass(credential);\n const labels: Record<string, string> = {\n 'active': 'Active',\n 'inactive': 'Inactive',\n 'expired': 'Expired',\n 'expiring': 'Expiring Soon'\n };\n return labels[statusClass] || 'Unknown';\n }\n\n public getStatusIcon(credential: MJCredentialEntity): string {\n const statusClass = this.getStatusClass(credential);\n const icons: Record<string, string> = {\n 'active': 'fa-solid fa-check-circle',\n 'inactive': 'fa-solid fa-minus-circle',\n 'expired': 'fa-solid fa-times-circle',\n 'expiring': 'fa-solid fa-clock'\n };\n return icons[statusClass] || 'fa-solid fa-circle';\n }\n\n public formatDate(date: Date | null | undefined): string {\n if (!date) return 'Never';\n return new Date(date).toLocaleDateString('en-US', {\n month: 'short',\n day: 'numeric',\n year: 'numeric'\n });\n }\n\n public formatDateTime(date: Date | null | undefined): string {\n if (!date) return 'Never';\n return new Date(date).toLocaleDateString('en-US', {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n hour: '2-digit',\n minute: '2-digit'\n });\n }\n\n public getTimeAgo(date: Date | null | undefined): string {\n if (!date) return 'Never';\n const now = new Date();\n const then = new Date(date);\n const diffMs = now.getTime() - then.getTime();\n const diffMins = Math.floor(diffMs / 60000);\n const diffHours = Math.floor(diffMs / 3600000);\n const diffDays = Math.floor(diffMs / 86400000);\n\n if (diffMins < 1) return 'Just now';\n if (diffMins < 60) return `${diffMins}m ago`;\n if (diffHours < 24) return `${diffHours}h ago`;\n if (diffDays < 30) return `${diffDays}d ago`;\n return this.formatDate(date);\n }\n\n public getTypeIcon(credential: MJCredentialEntity): string {\n const type = this.getTypeById(credential.CredentialTypeID);\n if (!type) return 'fa-solid fa-key';\n\n const iconMap: Record<string, string> = {\n 'AI': 'fa-solid fa-brain',\n 'Communication': 'fa-solid fa-envelope',\n 'Storage': 'fa-solid fa-cloud',\n 'Database': 'fa-solid fa-database',\n 'Authentication': 'fa-solid fa-shield-halved',\n 'Integration': 'fa-solid fa-plug'\n };\n return iconMap[type.Category] || 'fa-solid fa-key';\n }\n\n public refresh(): void {\n this.selectedCredentials.clear();\n this.loadData();\n }\n\n // === Stats ===\n\n public get activeCount(): number {\n return this.credentials.filter(c => c.IsActive).length;\n }\n\n public getActiveCount(): number {\n return this.activeCount;\n }\n\n public get expiringCount(): number {\n const now = new Date();\n const thirtyDaysFromNow = new Date();\n thirtyDaysFromNow.setDate(thirtyDaysFromNow.getDate() + 30);\n return this.credentials.filter(c =>\n c.ExpiresAt &&\n new Date(c.ExpiresAt) >= now &&\n new Date(c.ExpiresAt) <= thirtyDaysFromNow &&\n c.IsActive\n ).length;\n }\n\n public getExpiringSoonCount(): number {\n return this.expiringCount;\n }\n\n public get expiredCount(): number {\n const now = new Date();\n return this.credentials.filter(c =>\n c.ExpiresAt && new Date(c.ExpiresAt) < now\n ).length;\n }\n\n public getExpiredCount(): number {\n return this.expiredCount;\n }\n\n // === Status Helpers ===\n\n public isExpired(credential: MJCredentialEntity): boolean {\n if (!credential.ExpiresAt) return false;\n return new Date(credential.ExpiresAt) < new Date();\n }\n\n public isExpiringSoon(credential: MJCredentialEntity): boolean {\n if (!credential.ExpiresAt) return false;\n const expiresAt = new Date(credential.ExpiresAt);\n const now = new Date();\n const thirtyDaysFromNow = new Date();\n thirtyDaysFromNow.setDate(thirtyDaysFromNow.getDate() + 30);\n return expiresAt >= now && expiresAt <= thirtyDaysFromNow;\n }\n\n // === Bulk Operations ===\n\n public async bulkToggleActive(active: boolean): Promise<void> {\n if (!this.UserCanUpdate || this.selectedCredentials.size === 0) return;\n\n const toUpdate: MJCredentialEntity[] = [];\n for (const credId of this.selectedCredentials) {\n const credential = this.credentials.find(c => UUIDsEqual(c.ID, credId));\n if (credential && credential.IsActive !== active) {\n toUpdate.push(credential);\n }\n }\n\n const action = active ? 'activated' : 'deactivated';\n\n if (toUpdate.length === 0) {\n this.clearSelection();\n return;\n }\n\n const tg = await this._metadata.CreateTransactionGroup();\n for (const credential of toUpdate) {\n credential.IsActive = active;\n credential.TransactionGroup = tg;\n await credential.Save();\n }\n\n if (await tg.Submit()) {\n this.clearSelection();\n this.applyFilters();\n MJNotificationService.Instance.CreateSimpleNotification(\n `${toUpdate.length} credential(s) ${action}`,\n 'success',\n 3000\n );\n } else {\n // Server rolled back — revert the client-side state to match\n for (const credential of toUpdate) {\n credential.IsActive = !active;\n }\n this.clearSelection();\n this.applyFilters();\n MJNotificationService.Instance.CreateSimpleNotification(\n `Failed to ${action.slice(0, -1)} credentials — all changes have been rolled back`,\n 'error',\n 3000\n );\n }\n }\n\n public async bulkDelete(): Promise<void> {\n if (!this.UserCanDelete || this.selectedCredentials.size === 0) return;\n\n const count = this.selectedCredentials.size;\n const confirmed = confirm(`Are you sure you want to delete ${count} credential(s)? This action cannot be undone.`);\n if (!confirmed) return;\n\n const toDelete = Array.from(this.selectedCredentials)\n .map(id => this.credentials.find(c => UUIDsEqual(c.ID, id)))\n .filter((c): c is MJCredentialEntity => c != null);\n\n if (toDelete.length === 0) return;\n\n const tg = await this._metadata.CreateTransactionGroup();\n for (const credential of toDelete) {\n credential.TransactionGroup = tg;\n await credential.Delete();\n }\n\n if (await tg.Submit()) {\n const deletedIds = new Set(toDelete.map(c => c.ID));\n this.credentials = this.credentials.filter(c => !deletedIds.has(c.ID));\n this.clearSelection();\n this.applyFilters();\n MJNotificationService.Instance.CreateSimpleNotification(\n `${toDelete.length} credential(s) deleted`,\n 'success',\n 3000\n );\n } else {\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Failed to delete credentials — all changes have been rolled back',\n 'error',\n 3000\n );\n }\n }\n}\n","<div class=\"list-container\">\n @if (isLoading) {\n <mj-loading text=\"Loading credentials...\"></mj-loading>\n }\n\n @if (!isLoading) {\n <!-- Header with Stats -->\n <div class=\"list-header\">\n <div class=\"header-info\">\n <h2 class=\"list-title\">Credentials</h2>\n <div class=\"header-stats\">\n <span class=\"stat-item\">\n <i class=\"fa-solid fa-key\"></i>\n {{credentials.length}} total\n </span>\n <span class=\"stat-item active\">\n <i class=\"fa-solid fa-check-circle\"></i>\n {{getActiveCount()}} active\n </span>\n @if (getExpiringSoonCount() > 0) {\n <span class=\"stat-item warning\">\n <i class=\"fa-solid fa-clock\"></i>\n {{getExpiringSoonCount()}} expiring\n </span>\n }\n @if (getExpiredCount() > 0) {\n <span class=\"stat-item danger\">\n <i class=\"fa-solid fa-exclamation-circle\"></i>\n {{getExpiredCount()}} expired\n </span>\n }\n </div>\n </div>\n <div class=\"header-actions\">\n @if (UserCanCreate) {\n <button class=\"btn-primary\" (click)=\"createNewCredential()\">\n <i class=\"fa-solid fa-plus\"></i>\n <span>New Credential</span>\n </button>\n }\n </div>\n </div>\n <!-- Toolbar -->\n <div class=\"toolbar\">\n <div class=\"toolbar-left\">\n <div class=\"search-container\">\n <i class=\"fa-solid fa-search\"></i>\n <input\n type=\"text\"\n placeholder=\"Search credentials...\"\n [value]=\"searchText\"\n (input)=\"onSearchChange($any($event.target).value)\"\n />\n @if (searchText) {\n <button class=\"search-clear\" (click)=\"onSearchChange('')\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n }\n </div>\n <select\n class=\"filter-select\"\n [value]=\"selectedTypeFilter\"\n (change)=\"onTypeFilterChange($any($event.target).value)\"\n >\n <option value=\"\">All Types</option>\n @for (type of types; track type) {\n <option [value]=\"type.ID\">{{type.Name}}</option>\n }\n </select>\n <select\n class=\"filter-select\"\n [value]=\"selectedStatusFilter\"\n (change)=\"onStatusFilterChange($any($event.target).value)\"\n >\n <option value=\"\">All Statuses</option>\n <option value=\"active\">Active</option>\n <option value=\"inactive\">Inactive</option>\n <option value=\"expiring\">Expiring Soon</option>\n <option value=\"expired\">Expired</option>\n </select>\n </div>\n <div class=\"toolbar-right\">\n <div class=\"results-info\">\n {{filteredCredentials.length}} of {{credentials.length}}\n </div>\n <div class=\"view-toggle\">\n <button\n class=\"view-btn\"\n [class.active]=\"viewMode === 'grid'\"\n (click)=\"setViewMode('grid')\"\n title=\"Grid View\"\n >\n <i class=\"fa-solid fa-grid-2\"></i>\n </button>\n <button\n class=\"view-btn\"\n [class.active]=\"viewMode === 'list'\"\n (click)=\"setViewMode('list')\"\n title=\"List View\"\n >\n <i class=\"fa-solid fa-list\"></i>\n </button>\n </div>\n <button class=\"btn-icon\" (click)=\"refresh()\" title=\"Refresh\">\n <i class=\"fa-solid fa-refresh\"></i>\n </button>\n </div>\n </div>\n <!-- Bulk Actions Bar -->\n @if (selectedCredentials.size > 0) {\n <div class=\"bulk-actions\">\n <div class=\"bulk-info\">\n <span class=\"bulk-count\">{{selectedCredentials.size}} selected</span>\n <button class=\"btn-link\" (click)=\"clearSelection()\">Clear selection</button>\n </div>\n <div class=\"bulk-buttons\">\n @if (UserCanUpdate) {\n <button class=\"btn-bulk\" (click)=\"bulkToggleActive(true)\">\n <i class=\"fa-solid fa-toggle-on\"></i>\n Activate\n </button>\n }\n @if (UserCanUpdate) {\n <button class=\"btn-bulk\" (click)=\"bulkToggleActive(false)\">\n <i class=\"fa-solid fa-toggle-off\"></i>\n Deactivate\n </button>\n }\n @if (UserCanDelete) {\n <button class=\"btn-bulk danger\" (click)=\"bulkDelete()\">\n <i class=\"fa-solid fa-trash\"></i>\n Delete\n </button>\n }\n </div>\n </div>\n }\n <!-- Grid View -->\n @if (viewMode === 'grid' && filteredCredentials.length > 0) {\n <div class=\"credentials-grid\">\n @for (credential of filteredCredentials; track credential) {\n <div\n class=\"credential-card\"\n [class.selected]=\"selectedCredentials.has(credential.ID)\"\n [class.expired]=\"isExpired(credential)\"\n [class.expiring]=\"isExpiringSoon(credential)\"\n >\n <!-- Selection Checkbox -->\n @if (UserCanUpdate || UserCanDelete) {\n <div class=\"card-select\">\n <input\n type=\"checkbox\"\n [checked]=\"selectedCredentials.has(credential.ID)\"\n (change)=\"toggleSelection(credential)\"\n />\n </div>\n }\n <div class=\"card-header\">\n <div class=\"card-icon\" [ngClass]=\"getStatusClass(credential)\">\n <i [class]=\"credential.IconClass || 'fa-solid fa-key'\"></i>\n </div>\n <div class=\"card-title\">\n <div class=\"credential-name\">{{credential.Name}}</div>\n <div class=\"credential-type\">{{credential.CredentialType || 'Unknown Type'}}</div>\n </div>\n <div class=\"card-actions\">\n @if (UserCanUpdate) {\n <button mjButton variant=\"flat\" size=\"sm\"\n (click)=\"toggleCredentialActive(credential, $event)\"\n [title]=\"credential.IsActive ? 'Deactivate' : 'Activate'\">\n <i [class]=\"credential.IsActive ? 'fa-solid fa-toggle-on' : 'fa-solid fa-toggle-off'\"></i>\n </button>\n }\n @if (UserCanUpdate) {\n <button mjButton variant=\"flat\" size=\"sm\"\n (click)=\"editCredential(credential, $event)\"\n title=\"Edit\">\n <i class=\"fa-solid fa-pen\"></i>\n </button>\n }\n @if (UserCanDelete) {\n <button mjButton variant=\"danger\" size=\"sm\"\n (click)=\"deleteCredential(credential, $event)\"\n title=\"Delete\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n }\n </div>\n </div>\n <div class=\"card-body\" (click)=\"editCredential(credential)\">\n <div class=\"status-badge\" [ngClass]=\"getStatusClass(credential)\">\n <i [class]=\"getStatusIcon(credential)\"></i>\n {{getStatusLabel(credential)}}\n </div>\n @if (credential.Description) {\n <p class=\"credential-description\">\n {{credential.Description}}\n </p>\n }\n <div class=\"credential-meta\">\n @if (credential.IsDefault) {\n <div class=\"meta-item\">\n <i class=\"fa-solid fa-star\"></i>\n <span>Default</span>\n </div>\n }\n @if (credential.ExpiresAt) {\n <div class=\"meta-item\" [class.warning]=\"isExpiringSoon(credential)\" [class.danger]=\"isExpired(credential)\">\n <i class=\"fa-solid fa-calendar\"></i>\n <span>{{isExpired(credential) ? 'Expired' : 'Expires'}}: {{formatDate(credential.ExpiresAt)}}</span>\n </div>\n }\n @if (credential.LastUsedAt) {\n <div class=\"meta-item\">\n <i class=\"fa-solid fa-clock\"></i>\n <span>Last used: {{formatDate(credential.LastUsedAt)}}</span>\n </div>\n }\n </div>\n </div>\n <div class=\"card-footer\">\n @if (credential.Category) {\n <div class=\"category-tag\">\n <i class=\"fa-solid fa-folder\"></i>\n {{credential.Category}}\n </div>\n }\n <div class=\"created-info\">\n Created {{formatDate(credential.__mj_CreatedAt)}}\n </div>\n </div>\n </div>\n }\n </div>\n }\n <!-- List View -->\n @if (viewMode === 'list' && filteredCredentials.length > 0) {\n <div class=\"credentials-table-container\">\n <table class=\"credentials-table\">\n <thead>\n <tr>\n @if (UserCanUpdate || UserCanDelete) {\n <th class=\"col-select\">\n <input\n type=\"checkbox\"\n [checked]=\"isAllSelected()\"\n (change)=\"toggleSelectAll()\"\n />\n </th>\n }\n <th class=\"col-name\">Name</th>\n <th class=\"col-type\">Type</th>\n <th class=\"col-category\">Category</th>\n <th class=\"col-status\">Status</th>\n <th class=\"col-expires\">Expires</th>\n <th class=\"col-used\">Last Used</th>\n <th class=\"col-actions\">Actions</th>\n </tr>\n </thead>\n <tbody>\n @for (credential of filteredCredentials; track credential) {\n <tr\n [class.selected]=\"selectedCredentials.has(credential.ID)\"\n [class.expired]=\"isExpired(credential)\"\n >\n @if (UserCanUpdate || UserCanDelete) {\n <td class=\"col-select\">\n <input\n type=\"checkbox\"\n [checked]=\"selectedCredentials.has(credential.ID)\"\n (change)=\"toggleSelection(credential)\"\n />\n </td>\n }\n <td class=\"col-name\" (click)=\"editCredential(credential)\">\n <div class=\"name-cell\">\n <i [class]=\"credential.IconClass || 'fa-solid fa-key'\" [ngClass]=\"getStatusClass(credential)\"></i>\n <div class=\"name-info\">\n <span class=\"credential-name\">{{credential.Name}}</span>\n @if (credential.Description) {\n <span class=\"credential-desc\">{{credential.Description}}</span>\n }\n </div>\n @if (credential.IsDefault) {\n <span class=\"default-badge\">Default</span>\n }\n </div>\n </td>\n <td class=\"col-type\">{{credential.CredentialType || '-'}}</td>\n <td class=\"col-category\">\n @if (credential.Category) {\n <span class=\"category-pill\">{{credential.Category}}</span>\n }\n @if (!credential.Category) {\n <span>-</span>\n }\n </td>\n <td class=\"col-status\">\n <span class=\"status-pill\" [ngClass]=\"getStatusClass(credential)\">\n {{getStatusLabel(credential)}}\n </span>\n </td>\n <td class=\"col-expires\" [class.warning]=\"isExpiringSoon(credential)\" [class.danger]=\"isExpired(credential)\">\n {{credential.ExpiresAt ? formatDate(credential.ExpiresAt) : 'Never'}}\n </td>\n <td class=\"col-used\">\n {{credential.LastUsedAt ? formatDate(credential.LastUsedAt) : 'Never'}}\n </td>\n <td class=\"col-actions\">\n <div class=\"table-actions\">\n @if (UserCanUpdate) {\n <button\n class=\"table-action-btn\"\n (click)=\"toggleCredentialActive(credential, $event)\"\n [title]=\"credential.IsActive ? 'Deactivate' : 'Activate'\"\n >\n <i [class]=\"credential.IsActive ? 'fa-solid fa-toggle-on' : 'fa-solid fa-toggle-off'\"></i>\n </button>\n }\n @if (UserCanUpdate) {\n <button\n class=\"table-action-btn\"\n (click)=\"editCredential(credential, $event)\"\n title=\"Edit\"\n >\n <i class=\"fa-solid fa-pen\"></i>\n </button>\n }\n @if (UserCanDelete) {\n <button\n class=\"table-action-btn danger\"\n (click)=\"deleteCredential(credential, $event)\"\n title=\"Delete\"\n >\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n }\n </div>\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n <!-- Empty State -->\n @if (filteredCredentials.length === 0) {\n <div class=\"empty-state\">\n <div class=\"empty-icon\">\n <i class=\"fa-solid fa-key\"></i>\n </div>\n <h3>No Credentials Found</h3>\n @if (searchText || selectedTypeFilter || selectedStatusFilter) {\n <p>\n No credentials match your current filters.\n <button class=\"btn-link\" (click)=\"clearFilters()\">Clear filters</button>\n </p>\n }\n @if (!searchText && !selectedTypeFilter && !selectedStatusFilter) {\n <p>\n Get started by creating your first credential.\n </p>\n }\n @if (UserCanCreate && !searchText && !selectedTypeFilter && !selectedStatusFilter) {\n <button class=\"btn-primary\" (click)=\"createNewCredential()\">\n <i class=\"fa-solid fa-plus\"></i>\n Create Credential\n </button>\n }\n </div>\n }\n }\n\n <!-- Edit Panel -->\n <mj-credential-edit-panel\n #editPanel\n [credentialTypes]=\"types\"\n (saved)=\"onCredentialSaved($event)\"\n (deleted)=\"onCredentialDeleted($event)\"\n ></mj-credential-edit-panel>\n</div>\n"]}
|
|
1
|
+
{"version":3,"file":"credentials-list-resource.component.js","sourceRoot":"","sources":["../../../src/Credentials/components/credentials-list-resource.component.ts","../../../src/Credentials/components/credentials-list-resource.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, OnInit, OnDestroy, ChangeDetectorRef, ChangeDetectionStrategy, ViewChild } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { ResourceData, MJCredentialEntity, MJCredentialTypeEntity } from '@memberjunction/core-entities';\nimport { RegisterClass , UUIDsEqual } from '@memberjunction/global';\nimport { BaseResourceComponent } from '@memberjunction/ng-shared';\nimport { RunView, Metadata } from '@memberjunction/core';\nimport { MJNotificationService } from '@memberjunction/ng-notifications';\nimport { CredentialEditPanelComponent } from '@memberjunction/ng-credentials';\ntype ViewMode = 'grid' | 'list';\ntype StatusFilter = '' | 'active' | 'inactive' | 'expired' | 'expiring';\n\n@RegisterClass(BaseResourceComponent, 'CredentialsListResource')\n@Component({\n standalone: false,\n selector: 'mj-credentials-list-resource',\n templateUrl: './credentials-list-resource.component.html',\n styleUrls: ['./credentials-list-resource.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CredentialsListResourceComponent extends BaseResourceComponent implements OnInit, OnDestroy {\n public isLoading = true;\n public credentials: MJCredentialEntity[] = [];\n public filteredCredentials: MJCredentialEntity[] = [];\n public types: MJCredentialTypeEntity[] = [];\n\n // View state\n public viewMode: ViewMode = 'grid';\n public searchText = '';\n public selectedTypeFilter = '';\n public selectedStatusFilter: StatusFilter = '';\n public showActiveOnly = false;\n\n // Selection for bulk operations\n public selectedCredentials = new Set<string>();\n private _isAllSelected = false;\n\n // Permissions\n private _metadata = this.ProviderToUse;\n private _permissionCache = new Map<string, boolean>();\n\n protected override destroy$ = new Subject<void>();\n\n @ViewChild('editPanel') editPanel!: CredentialEditPanelComponent;\n\n constructor(\n private cdr: ChangeDetectorRef\n ) {\n super();\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n this.loadData();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n async GetResourceDisplayName(data: ResourceData): Promise<string> {\n return 'Credentials';\n }\n\n async GetResourceIconClass(data: ResourceData): Promise<string> {\n return 'fa-solid fa-key';\n }\n\n // === Permission Checks ===\n public get UserCanCreate(): boolean {\n return this.checkEntityPermission('MJ: Credentials', 'Create');\n }\n\n public get UserCanUpdate(): boolean {\n return this.checkEntityPermission('MJ: Credentials', 'Update');\n }\n\n public get UserCanDelete(): boolean {\n return this.checkEntityPermission('MJ: Credentials', 'Delete');\n }\n\n private checkEntityPermission(entityName: string, permissionType: 'Create' | 'Read' | 'Update' | 'Delete'): boolean {\n const cacheKey = `${entityName}_${permissionType}`;\n\n if (this._permissionCache.has(cacheKey)) {\n return this._permissionCache.get(cacheKey)!;\n }\n\n try {\n const entityInfo = this._metadata.Entities.find(e => e.Name === entityName);\n if (!entityInfo) {\n this._permissionCache.set(cacheKey, false);\n return false;\n }\n\n const userPermissions = entityInfo.GetUserPermisions(this._metadata.CurrentUser);\n let hasPermission = false;\n\n switch (permissionType) {\n case 'Create': hasPermission = userPermissions.CanCreate; break;\n case 'Read': hasPermission = userPermissions.CanRead; break;\n case 'Update': hasPermission = userPermissions.CanUpdate; break;\n case 'Delete': hasPermission = userPermissions.CanDelete; break;\n }\n\n this._permissionCache.set(cacheKey, hasPermission);\n return hasPermission;\n } catch (error) {\n this._permissionCache.set(cacheKey, false);\n return false;\n }\n }\n\n private async loadData(): Promise<void> {\n try {\n this.isLoading = true;\n this.cdr.markForCheck();\n\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n\n const [credResult, typeResult] = await rv.RunViews([\n {\n EntityName: 'MJ: Credentials',\n OrderBy: '__mj_UpdatedAt DESC',\n ResultType: 'entity_object'\n },\n {\n EntityName: 'MJ: Credential Types',\n OrderBy: 'Category, Name',\n ResultType: 'entity_object'\n }\n ]);\n\n if (credResult.Success) {\n this.credentials = credResult.Results as MJCredentialEntity[];\n }\n\n if (typeResult.Success) {\n this.types = typeResult.Results as MJCredentialTypeEntity[];\n }\n\n this.applyFilters();\n\n } catch (error) {\n console.error('Error loading credentials:', error);\n MJNotificationService.Instance.CreateSimpleNotification('Error loading credentials', 'error', 3000);\n } finally {\n this.isLoading = false;\n this.NotifyLoadComplete();\n this.cdr.markForCheck();\n\n // Handle navigation params from Data.Configuration (passed via NavigationService)\n this.handleNavigationConfig();\n }\n }\n\n // === Navigation Handling ===\n\n private handleNavigationConfig(): void {\n const config = this.Data?.Configuration;\n if (!config) {\n return;\n }\n\n // Apply filters from navigation config\n if (config.typeId) {\n this.selectedTypeFilter = config.typeId as string;\n this.applyFilters();\n }\n\n if (config.openCreatePanel) {\n // Open create panel (optionally with type/category pre-selected)\n setTimeout(() => {\n if (config.categoryId) {\n this.createNewCredentialWithType(config.typeId as string, config.categoryId as string);\n } else if (config.typeId) {\n this.createNewCredentialWithType(config.typeId as string);\n } else {\n this.createNewCredential();\n }\n }, 100);\n }\n }\n\n // === CRUD Operations ===\n\n public createNewCredential(): void {\n if (this.editPanel) {\n this.editPanel.open(null);\n }\n }\n\n public createNewCredentialWithType(typeId?: string, categoryId?: string): void {\n if (this.editPanel) {\n this.editPanel.open(null, typeId, categoryId);\n }\n }\n\n public editCredential(credential: MJCredentialEntity, event?: Event): void {\n if (event) {\n event.stopPropagation();\n }\n if (this.editPanel) {\n this.editPanel.open(credential);\n }\n }\n\n public onCredentialSaved(credential: MJCredentialEntity): void {\n // Check if it's a new credential or update\n const existingIndex = this.credentials.findIndex(c => UUIDsEqual(c.ID, credential.ID));\n if (existingIndex >= 0) {\n // Update existing\n this.credentials[existingIndex] = credential;\n } else {\n // Add new\n this.credentials.unshift(credential);\n }\n this.applyFilters();\n this.cdr.markForCheck();\n }\n\n public onCredentialDeleted(credentialId: string): void {\n this.credentials = this.credentials.filter(c => !UUIDsEqual(c.ID, credentialId));\n this.selectedCredentials.delete(credentialId);\n this.applyFilters();\n this.cdr.markForCheck();\n }\n\n public async deleteCredential(credential: MJCredentialEntity, event?: Event): Promise<void> {\n if (event) {\n event.stopPropagation();\n }\n\n if (!this.UserCanDelete) {\n MJNotificationService.Instance.CreateSimpleNotification('You do not have permission to delete credentials', 'warning', 3000);\n return;\n }\n\n const confirmed = confirm(`Are you sure you want to delete \"${credential.Name}\"? This action cannot be undone.`);\n if (!confirmed) return;\n\n try {\n const success = await credential.Delete();\n if (success) {\n MJNotificationService.Instance.CreateSimpleNotification(`Credential \"${credential.Name}\" deleted successfully`, 'success', 3000);\n this.credentials = this.credentials.filter(c => !UUIDsEqual(c.ID, credential.ID));\n this.selectedCredentials.delete(credential.ID);\n this.applyFilters();\n } else {\n MJNotificationService.Instance.CreateSimpleNotification('Failed to delete credential', 'error', 3000);\n }\n } catch (error) {\n console.error('Error deleting credential:', error);\n MJNotificationService.Instance.CreateSimpleNotification('Error deleting credential', 'error', 3000);\n }\n }\n\n public async toggleCredentialActive(credential: MJCredentialEntity, event?: Event): Promise<void> {\n if (event) {\n event.stopPropagation();\n }\n\n if (!this.UserCanUpdate) {\n MJNotificationService.Instance.CreateSimpleNotification('You do not have permission to update credentials', 'warning', 3000);\n return;\n }\n\n try {\n credential.IsActive = !credential.IsActive;\n const success = await credential.Save();\n\n if (success) {\n const status = credential.IsActive ? 'activated' : 'deactivated';\n MJNotificationService.Instance.CreateSimpleNotification(`Credential \"${credential.Name}\" ${status}`, 'success', 2000);\n this.applyFilters();\n } else {\n // Revert on failure\n credential.IsActive = !credential.IsActive;\n MJNotificationService.Instance.CreateSimpleNotification('Failed to update credential', 'error', 3000);\n }\n } catch (error) {\n console.error('Error updating credential:', error);\n credential.IsActive = !credential.IsActive;\n MJNotificationService.Instance.CreateSimpleNotification('Error updating credential', 'error', 3000);\n }\n this.cdr.markForCheck();\n }\n\n // === Selection ===\n\n public toggleSelection(credential: MJCredentialEntity, event?: Event): void {\n if (event) {\n event.stopPropagation();\n }\n if (this.selectedCredentials.has(credential.ID)) {\n this.selectedCredentials.delete(credential.ID);\n } else {\n this.selectedCredentials.add(credential.ID);\n }\n this.updateAllSelectedState();\n this.cdr.markForCheck();\n }\n\n public toggleSelectAll(): void {\n if (this._isAllSelected) {\n this.selectedCredentials.clear();\n } else {\n this.filteredCredentials.forEach(c => this.selectedCredentials.add(c.ID));\n }\n this._isAllSelected = !this._isAllSelected;\n this.cdr.markForCheck();\n }\n\n public isAllSelected(): boolean {\n return this._isAllSelected;\n }\n\n public isSelected(credential: MJCredentialEntity): boolean {\n return this.selectedCredentials.has(credential.ID);\n }\n\n public clearSelection(): void {\n this.selectedCredentials.clear();\n this._isAllSelected = false;\n this.cdr.markForCheck();\n }\n\n private updateAllSelectedState(): void {\n this._isAllSelected = this.filteredCredentials.length > 0 &&\n this.filteredCredentials.every(c => this.selectedCredentials.has(c.ID));\n }\n\n public async deleteSelected(): Promise<void> {\n if (!this.UserCanDelete || this.selectedCredentials.size === 0) return;\n\n const count = this.selectedCredentials.size;\n const confirmed = confirm(`Are you sure you want to delete ${count} credential(s)? This action cannot be undone.`);\n if (!confirmed) return;\n\n const toDelete = Array.from(this.selectedCredentials)\n .map(id => this.credentials.find(c => UUIDsEqual(c.ID, id)))\n .filter((c): c is MJCredentialEntity => c != null);\n\n if (toDelete.length === 0) return;\n\n const tg = await this._metadata.CreateTransactionGroup();\n for (const credential of toDelete) {\n credential.TransactionGroup = tg;\n await credential.Delete();\n }\n\n if (await tg.Submit()) {\n const deletedIds = new Set(toDelete.map(c => c.ID));\n this.credentials = this.credentials.filter(c => !deletedIds.has(c.ID));\n this.selectedCredentials.clear();\n this.applyFilters();\n MJNotificationService.Instance.CreateSimpleNotification(\n `${toDelete.length} credential(s) deleted`,\n 'success',\n 3000\n );\n } else {\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Failed to delete credentials — all changes have been rolled back',\n 'error',\n 3000\n );\n }\n }\n\n // === Filtering ===\n\n public onSearchChange(value: string): void {\n this.searchText = value;\n this.applyFilters();\n }\n\n public onTypeFilterChange(typeId: string): void {\n this.selectedTypeFilter = typeId;\n this.applyFilters();\n }\n\n public onStatusFilterChange(status: StatusFilter): void {\n this.selectedStatusFilter = status;\n this.applyFilters();\n }\n\n public onActiveFilterChange(showActive: boolean): void {\n this.showActiveOnly = showActive;\n this.applyFilters();\n }\n\n public clearFilters(): void {\n this.searchText = '';\n this.selectedTypeFilter = '';\n this.selectedStatusFilter = '';\n this.showActiveOnly = false;\n this.applyFilters();\n }\n\n public get hasActiveFilters(): boolean {\n return this.searchText !== '' ||\n this.selectedTypeFilter !== '' ||\n this.selectedStatusFilter !== '' ||\n this.showActiveOnly;\n }\n\n private applyFilters(): void {\n let filtered = [...this.credentials];\n const now = new Date();\n const thirtyDaysFromNow = new Date();\n thirtyDaysFromNow.setDate(thirtyDaysFromNow.getDate() + 30);\n\n // Filter by active status\n if (this.showActiveOnly) {\n filtered = filtered.filter(c => c.IsActive);\n }\n\n // Filter by status\n if (this.selectedStatusFilter) {\n filtered = filtered.filter(c => {\n const statusClass = this.getStatusClass(c);\n switch (this.selectedStatusFilter) {\n case 'active': return statusClass === 'active';\n case 'inactive': return statusClass === 'inactive';\n case 'expired': return statusClass === 'expired';\n case 'expiring': return statusClass === 'expiring';\n default: return true;\n }\n });\n }\n\n // Filter by type\n if (this.selectedTypeFilter) {\n filtered = filtered.filter(c => UUIDsEqual(c.CredentialTypeID, this.selectedTypeFilter));\n }\n\n // Filter by search text\n if (this.searchText.trim()) {\n const search = this.searchText.toLowerCase().trim();\n filtered = filtered.filter(c =>\n c.Name.toLowerCase().includes(search) ||\n (c.Description && c.Description.toLowerCase().includes(search)) ||\n (c.CredentialType && c.CredentialType.toLowerCase().includes(search))\n );\n }\n\n this.filteredCredentials = filtered;\n this.updateAllSelectedState();\n this.cdr.markForCheck();\n }\n\n // === View Mode ===\n\n public setViewMode(mode: ViewMode): void {\n this.viewMode = mode;\n this.cdr.markForCheck();\n }\n\n // === Helpers ===\n\n public getTypeById(typeId: string): MJCredentialTypeEntity | undefined {\n return this.types.find(t => UUIDsEqual(t.ID, typeId));\n }\n\n public getTypesByCategory(): Map<string, MJCredentialTypeEntity[]> {\n const grouped = new Map<string, MJCredentialTypeEntity[]>();\n for (const type of this.types) {\n const category = type.Category;\n if (!grouped.has(category)) {\n grouped.set(category, []);\n }\n grouped.get(category)!.push(type);\n }\n return grouped;\n }\n\n public getStatusClass(credential: MJCredentialEntity): string {\n if (!credential.IsActive) {\n return 'inactive';\n }\n if (credential.ExpiresAt) {\n const expiresAt = new Date(credential.ExpiresAt);\n const now = new Date();\n const thirtyDays = 30 * 24 * 60 * 60 * 1000;\n if (expiresAt < now) {\n return 'expired';\n }\n if (expiresAt.getTime() - now.getTime() < thirtyDays) {\n return 'expiring';\n }\n }\n return 'active';\n }\n\n public getStatusLabel(credential: MJCredentialEntity): string {\n const statusClass = this.getStatusClass(credential);\n const labels: Record<string, string> = {\n 'active': 'Active',\n 'inactive': 'Inactive',\n 'expired': 'Expired',\n 'expiring': 'Expiring Soon'\n };\n return labels[statusClass] || 'Unknown';\n }\n\n public getStatusIcon(credential: MJCredentialEntity): string {\n const statusClass = this.getStatusClass(credential);\n const icons: Record<string, string> = {\n 'active': 'fa-solid fa-check-circle',\n 'inactive': 'fa-solid fa-minus-circle',\n 'expired': 'fa-solid fa-times-circle',\n 'expiring': 'fa-solid fa-clock'\n };\n return icons[statusClass] || 'fa-solid fa-circle';\n }\n\n public formatDate(date: Date | null | undefined): string {\n if (!date) return 'Never';\n return new Date(date).toLocaleDateString('en-US', {\n month: 'short',\n day: 'numeric',\n year: 'numeric'\n });\n }\n\n public formatDateTime(date: Date | null | undefined): string {\n if (!date) return 'Never';\n return new Date(date).toLocaleDateString('en-US', {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n hour: '2-digit',\n minute: '2-digit'\n });\n }\n\n public getTimeAgo(date: Date | null | undefined): string {\n if (!date) return 'Never';\n const now = new Date();\n const then = new Date(date);\n const diffMs = now.getTime() - then.getTime();\n const diffMins = Math.floor(diffMs / 60000);\n const diffHours = Math.floor(diffMs / 3600000);\n const diffDays = Math.floor(diffMs / 86400000);\n\n if (diffMins < 1) return 'Just now';\n if (diffMins < 60) return `${diffMins}m ago`;\n if (diffHours < 24) return `${diffHours}h ago`;\n if (diffDays < 30) return `${diffDays}d ago`;\n return this.formatDate(date);\n }\n\n public getTypeIcon(credential: MJCredentialEntity): string {\n const type = this.getTypeById(credential.CredentialTypeID);\n if (!type) return 'fa-solid fa-key';\n\n const iconMap: Record<string, string> = {\n 'AI': 'fa-solid fa-brain',\n 'Communication': 'fa-solid fa-envelope',\n 'Storage': 'fa-solid fa-cloud',\n 'Database': 'fa-solid fa-database',\n 'Authentication': 'fa-solid fa-shield-halved',\n 'Integration': 'fa-solid fa-plug'\n };\n return iconMap[type.Category] || 'fa-solid fa-key';\n }\n\n public refresh(): void {\n this.selectedCredentials.clear();\n this.loadData();\n }\n\n // === Stats ===\n\n public get activeCount(): number {\n return this.credentials.filter(c => c.IsActive).length;\n }\n\n public getActiveCount(): number {\n return this.activeCount;\n }\n\n public get expiringCount(): number {\n const now = new Date();\n const thirtyDaysFromNow = new Date();\n thirtyDaysFromNow.setDate(thirtyDaysFromNow.getDate() + 30);\n return this.credentials.filter(c =>\n c.ExpiresAt &&\n new Date(c.ExpiresAt) >= now &&\n new Date(c.ExpiresAt) <= thirtyDaysFromNow &&\n c.IsActive\n ).length;\n }\n\n public getExpiringSoonCount(): number {\n return this.expiringCount;\n }\n\n public get expiredCount(): number {\n const now = new Date();\n return this.credentials.filter(c =>\n c.ExpiresAt && new Date(c.ExpiresAt) < now\n ).length;\n }\n\n public getExpiredCount(): number {\n return this.expiredCount;\n }\n\n // === Status Helpers ===\n\n public isExpired(credential: MJCredentialEntity): boolean {\n if (!credential.ExpiresAt) return false;\n return new Date(credential.ExpiresAt) < new Date();\n }\n\n public isExpiringSoon(credential: MJCredentialEntity): boolean {\n if (!credential.ExpiresAt) return false;\n const expiresAt = new Date(credential.ExpiresAt);\n const now = new Date();\n const thirtyDaysFromNow = new Date();\n thirtyDaysFromNow.setDate(thirtyDaysFromNow.getDate() + 30);\n return expiresAt >= now && expiresAt <= thirtyDaysFromNow;\n }\n\n // === Bulk Operations ===\n\n public async bulkToggleActive(active: boolean): Promise<void> {\n if (!this.UserCanUpdate || this.selectedCredentials.size === 0) return;\n\n const toUpdate: MJCredentialEntity[] = [];\n for (const credId of this.selectedCredentials) {\n const credential = this.credentials.find(c => UUIDsEqual(c.ID, credId));\n if (credential && credential.IsActive !== active) {\n toUpdate.push(credential);\n }\n }\n\n const action = active ? 'activated' : 'deactivated';\n\n if (toUpdate.length === 0) {\n this.clearSelection();\n return;\n }\n\n const tg = await this._metadata.CreateTransactionGroup();\n for (const credential of toUpdate) {\n credential.IsActive = active;\n credential.TransactionGroup = tg;\n await credential.Save();\n }\n\n if (await tg.Submit()) {\n this.clearSelection();\n this.applyFilters();\n MJNotificationService.Instance.CreateSimpleNotification(\n `${toUpdate.length} credential(s) ${action}`,\n 'success',\n 3000\n );\n } else {\n // Server rolled back — revert the client-side state to match\n for (const credential of toUpdate) {\n credential.IsActive = !active;\n }\n this.clearSelection();\n this.applyFilters();\n MJNotificationService.Instance.CreateSimpleNotification(\n `Failed to ${action.slice(0, -1)} credentials — all changes have been rolled back`,\n 'error',\n 3000\n );\n }\n }\n\n public async bulkDelete(): Promise<void> {\n if (!this.UserCanDelete || this.selectedCredentials.size === 0) return;\n\n const count = this.selectedCredentials.size;\n const confirmed = confirm(`Are you sure you want to delete ${count} credential(s)? This action cannot be undone.`);\n if (!confirmed) return;\n\n const toDelete = Array.from(this.selectedCredentials)\n .map(id => this.credentials.find(c => UUIDsEqual(c.ID, id)))\n .filter((c): c is MJCredentialEntity => c != null);\n\n if (toDelete.length === 0) return;\n\n const tg = await this._metadata.CreateTransactionGroup();\n for (const credential of toDelete) {\n credential.TransactionGroup = tg;\n await credential.Delete();\n }\n\n if (await tg.Submit()) {\n const deletedIds = new Set(toDelete.map(c => c.ID));\n this.credentials = this.credentials.filter(c => !deletedIds.has(c.ID));\n this.clearSelection();\n this.applyFilters();\n MJNotificationService.Instance.CreateSimpleNotification(\n `${toDelete.length} credential(s) deleted`,\n 'success',\n 3000\n );\n } else {\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Failed to delete credentials — all changes have been rolled back',\n 'error',\n 3000\n );\n }\n }\n}\n","<div class=\"list-container\">\n @if (isLoading) {\n <mj-loading text=\"Loading credentials...\"></mj-loading>\n }\n\n @if (!isLoading) {\n <!-- Header with Stats -->\n <div class=\"list-header\">\n <div class=\"header-info\">\n <h2 class=\"list-title\">Credentials</h2>\n <div class=\"header-stats\">\n <span class=\"stat-item\">\n <i class=\"fa-solid fa-key\"></i>\n {{credentials.length}} total\n </span>\n <span class=\"stat-item active\">\n <i class=\"fa-solid fa-check-circle\"></i>\n {{getActiveCount()}} active\n </span>\n @if (getExpiringSoonCount() > 0) {\n <span class=\"stat-item warning\">\n <i class=\"fa-solid fa-clock\"></i>\n {{getExpiringSoonCount()}} expiring\n </span>\n }\n @if (getExpiredCount() > 0) {\n <span class=\"stat-item danger\">\n <i class=\"fa-solid fa-exclamation-circle\"></i>\n {{getExpiredCount()}} expired\n </span>\n }\n </div>\n </div>\n <div class=\"header-actions\">\n @if (UserCanCreate) {\n <button class=\"btn-primary\" (click)=\"createNewCredential()\">\n <i class=\"fa-solid fa-plus\"></i>\n <span>New Credential</span>\n </button>\n }\n </div>\n </div>\n <!-- Toolbar -->\n <div class=\"toolbar\">\n <div class=\"toolbar-left\">\n <div class=\"search-container\">\n <i class=\"fa-solid fa-search\"></i>\n <input\n type=\"text\"\n placeholder=\"Search credentials...\"\n [value]=\"searchText\"\n (input)=\"onSearchChange($any($event.target).value)\"\n />\n @if (searchText) {\n <button class=\"search-clear\" (click)=\"onSearchChange('')\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n }\n </div>\n <select\n class=\"filter-select\"\n [value]=\"selectedTypeFilter\"\n (change)=\"onTypeFilterChange($any($event.target).value)\"\n >\n <option value=\"\">All Types</option>\n @for (type of types; track type) {\n <option [value]=\"type.ID\">{{type.Name}}</option>\n }\n </select>\n <select\n class=\"filter-select\"\n [value]=\"selectedStatusFilter\"\n (change)=\"onStatusFilterChange($any($event.target).value)\"\n >\n <option value=\"\">All Statuses</option>\n <option value=\"active\">Active</option>\n <option value=\"inactive\">Inactive</option>\n <option value=\"expiring\">Expiring Soon</option>\n <option value=\"expired\">Expired</option>\n </select>\n </div>\n <div class=\"toolbar-right\">\n <div class=\"results-info\">\n {{filteredCredentials.length}} of {{credentials.length}}\n </div>\n <div class=\"view-toggle\">\n <button\n class=\"view-btn\"\n [class.active]=\"viewMode === 'grid'\"\n (click)=\"setViewMode('grid')\"\n title=\"Grid View\"\n >\n <i class=\"fa-solid fa-grid-2\"></i>\n </button>\n <button\n class=\"view-btn\"\n [class.active]=\"viewMode === 'list'\"\n (click)=\"setViewMode('list')\"\n title=\"List View\"\n >\n <i class=\"fa-solid fa-list\"></i>\n </button>\n </div>\n <button class=\"btn-icon\" (click)=\"refresh()\" title=\"Refresh\">\n <i class=\"fa-solid fa-refresh\"></i>\n </button>\n </div>\n </div>\n <!-- Bulk Actions Bar -->\n @if (selectedCredentials.size > 0) {\n <div class=\"bulk-actions\">\n <div class=\"bulk-info\">\n <span class=\"bulk-count\">{{selectedCredentials.size}} selected</span>\n <button class=\"btn-link\" (click)=\"clearSelection()\">Clear selection</button>\n </div>\n <div class=\"bulk-buttons\">\n @if (UserCanUpdate) {\n <button class=\"btn-bulk\" (click)=\"bulkToggleActive(true)\">\n <i class=\"fa-solid fa-toggle-on\"></i>\n Activate\n </button>\n }\n @if (UserCanUpdate) {\n <button class=\"btn-bulk\" (click)=\"bulkToggleActive(false)\">\n <i class=\"fa-solid fa-toggle-off\"></i>\n Deactivate\n </button>\n }\n @if (UserCanDelete) {\n <button class=\"btn-bulk danger\" (click)=\"bulkDelete()\">\n <i class=\"fa-solid fa-trash\"></i>\n Delete\n </button>\n }\n </div>\n </div>\n }\n <!-- Grid View -->\n @if (viewMode === 'grid' && filteredCredentials.length > 0) {\n <div class=\"credentials-grid\">\n @for (credential of filteredCredentials; track credential) {\n <div\n class=\"credential-card\"\n [class.selected]=\"selectedCredentials.has(credential.ID)\"\n [class.expired]=\"isExpired(credential)\"\n [class.expiring]=\"isExpiringSoon(credential)\"\n >\n <!-- Selection Checkbox -->\n @if (UserCanUpdate || UserCanDelete) {\n <div class=\"card-select\">\n <input\n type=\"checkbox\"\n [checked]=\"selectedCredentials.has(credential.ID)\"\n (change)=\"toggleSelection(credential)\"\n />\n </div>\n }\n <div class=\"card-header\">\n <div class=\"card-icon\" [ngClass]=\"getStatusClass(credential)\">\n <i [class]=\"credential.IconClass || 'fa-solid fa-key'\"></i>\n </div>\n <div class=\"card-title\">\n <div class=\"credential-name\">{{credential.Name}}</div>\n <div class=\"credential-type\">{{credential.CredentialType || 'Unknown Type'}}</div>\n </div>\n <div class=\"card-actions\">\n @if (UserCanUpdate) {\n <button mjButton variant=\"flat\" size=\"sm\"\n (click)=\"toggleCredentialActive(credential, $event)\"\n [title]=\"credential.IsActive ? 'Deactivate' : 'Activate'\">\n <i [class]=\"credential.IsActive ? 'fa-solid fa-toggle-on' : 'fa-solid fa-toggle-off'\"></i>\n </button>\n }\n @if (UserCanUpdate) {\n <button mjButton variant=\"flat\" size=\"sm\"\n (click)=\"editCredential(credential, $event)\"\n title=\"Edit\">\n <i class=\"fa-solid fa-pen\"></i>\n </button>\n }\n @if (UserCanDelete) {\n <button mjButton variant=\"danger\" size=\"sm\"\n (click)=\"deleteCredential(credential, $event)\"\n title=\"Delete\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n }\n </div>\n </div>\n <div class=\"card-body\" (click)=\"editCredential(credential)\">\n <div class=\"status-badge\" [ngClass]=\"getStatusClass(credential)\">\n <i [class]=\"getStatusIcon(credential)\"></i>\n {{getStatusLabel(credential)}}\n </div>\n @if (credential.Description) {\n <p class=\"credential-description\">\n {{credential.Description}}\n </p>\n }\n <div class=\"credential-meta\">\n @if (credential.IsDefault) {\n <div class=\"meta-item\">\n <i class=\"fa-solid fa-star\"></i>\n <span>Default</span>\n </div>\n }\n @if (credential.ExpiresAt) {\n <div class=\"meta-item\" [class.warning]=\"isExpiringSoon(credential)\" [class.danger]=\"isExpired(credential)\">\n <i class=\"fa-solid fa-calendar\"></i>\n <span>{{isExpired(credential) ? 'Expired' : 'Expires'}}: {{formatDate(credential.ExpiresAt)}}</span>\n </div>\n }\n @if (credential.LastUsedAt) {\n <div class=\"meta-item\">\n <i class=\"fa-solid fa-clock\"></i>\n <span>Last used: {{formatDate(credential.LastUsedAt)}}</span>\n </div>\n }\n </div>\n </div>\n <div class=\"card-footer\">\n @if (credential.Category) {\n <div class=\"category-tag\">\n <i class=\"fa-solid fa-folder\"></i>\n {{credential.Category}}\n </div>\n }\n <div class=\"created-info\">\n Created {{formatDate(credential.__mj_CreatedAt)}}\n </div>\n </div>\n </div>\n }\n </div>\n }\n <!-- List View -->\n @if (viewMode === 'list' && filteredCredentials.length > 0) {\n <div class=\"credentials-table-container\">\n <table class=\"credentials-table\">\n <thead>\n <tr>\n @if (UserCanUpdate || UserCanDelete) {\n <th class=\"col-select\">\n <input\n type=\"checkbox\"\n [checked]=\"isAllSelected()\"\n (change)=\"toggleSelectAll()\"\n />\n </th>\n }\n <th class=\"col-name\">Name</th>\n <th class=\"col-type\">Type</th>\n <th class=\"col-category\">Category</th>\n <th class=\"col-status\">Status</th>\n <th class=\"col-expires\">Expires</th>\n <th class=\"col-used\">Last Used</th>\n <th class=\"col-actions\">Actions</th>\n </tr>\n </thead>\n <tbody>\n @for (credential of filteredCredentials; track credential) {\n <tr\n [class.selected]=\"selectedCredentials.has(credential.ID)\"\n [class.expired]=\"isExpired(credential)\"\n >\n @if (UserCanUpdate || UserCanDelete) {\n <td class=\"col-select\">\n <input\n type=\"checkbox\"\n [checked]=\"selectedCredentials.has(credential.ID)\"\n (change)=\"toggleSelection(credential)\"\n />\n </td>\n }\n <td class=\"col-name\" (click)=\"editCredential(credential)\">\n <div class=\"name-cell\">\n <i [class]=\"credential.IconClass || 'fa-solid fa-key'\" [ngClass]=\"getStatusClass(credential)\"></i>\n <div class=\"name-info\">\n <span class=\"credential-name\">{{credential.Name}}</span>\n @if (credential.Description) {\n <span class=\"credential-desc\">{{credential.Description}}</span>\n }\n </div>\n @if (credential.IsDefault) {\n <span class=\"default-badge\">Default</span>\n }\n </div>\n </td>\n <td class=\"col-type\">{{credential.CredentialType || '-'}}</td>\n <td class=\"col-category\">\n @if (credential.Category) {\n <span class=\"category-pill\">{{credential.Category}}</span>\n }\n @if (!credential.Category) {\n <span>-</span>\n }\n </td>\n <td class=\"col-status\">\n <span class=\"status-pill\" [ngClass]=\"getStatusClass(credential)\">\n {{getStatusLabel(credential)}}\n </span>\n </td>\n <td class=\"col-expires\" [class.warning]=\"isExpiringSoon(credential)\" [class.danger]=\"isExpired(credential)\">\n {{credential.ExpiresAt ? formatDate(credential.ExpiresAt) : 'Never'}}\n </td>\n <td class=\"col-used\">\n {{credential.LastUsedAt ? formatDate(credential.LastUsedAt) : 'Never'}}\n </td>\n <td class=\"col-actions\">\n <div class=\"table-actions\">\n @if (UserCanUpdate) {\n <button\n class=\"table-action-btn\"\n (click)=\"toggleCredentialActive(credential, $event)\"\n [title]=\"credential.IsActive ? 'Deactivate' : 'Activate'\"\n >\n <i [class]=\"credential.IsActive ? 'fa-solid fa-toggle-on' : 'fa-solid fa-toggle-off'\"></i>\n </button>\n }\n @if (UserCanUpdate) {\n <button\n class=\"table-action-btn\"\n (click)=\"editCredential(credential, $event)\"\n title=\"Edit\"\n >\n <i class=\"fa-solid fa-pen\"></i>\n </button>\n }\n @if (UserCanDelete) {\n <button\n class=\"table-action-btn danger\"\n (click)=\"deleteCredential(credential, $event)\"\n title=\"Delete\"\n >\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n }\n </div>\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n <!-- Empty State -->\n @if (filteredCredentials.length === 0) {\n <div class=\"empty-state\">\n <div class=\"empty-icon\">\n <i class=\"fa-solid fa-key\"></i>\n </div>\n <h3>No Credentials Found</h3>\n @if (searchText || selectedTypeFilter || selectedStatusFilter) {\n <p>\n No credentials match your current filters.\n <button class=\"btn-link\" (click)=\"clearFilters()\">Clear filters</button>\n </p>\n }\n @if (!searchText && !selectedTypeFilter && !selectedStatusFilter) {\n <p>\n Get started by creating your first credential.\n </p>\n }\n @if (UserCanCreate && !searchText && !selectedTypeFilter && !selectedStatusFilter) {\n <button class=\"btn-primary\" (click)=\"createNewCredential()\">\n <i class=\"fa-solid fa-plus\"></i>\n Create Credential\n </button>\n }\n </div>\n }\n }\n\n <!-- Edit Panel -->\n <mj-credential-edit-panel\n #editPanel\n [credentialTypes]=\"types\"\n (saved)=\"onCredentialSaved($event)\"\n (deleted)=\"onCredentialDeleted($event)\"\n ></mj-credential-edit-panel>\n</div>\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials-overview-resource.component.d.ts","sourceRoot":"","sources":["../../../src/Credentials/components/credentials-overview-resource.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAA2B,MAAM,eAAe,CAAC;AACzG,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,YAAY,EAA4F,MAAM,+BAA+B,CAAC;AAEvJ,OAAO,EAAE,qBAAqB,EAAqB,MAAM,2BAA2B,CAAC;;AAErF,UAAU,YAAY;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,QAAQ;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,UAAU,YAAY;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;IACvD,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,eAAe;IACrB,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,qBAQa,oCAAqC,SAAQ,qBAAsB,YAAW,MAAM,EAAE,SAAS;IAyCpG,OAAO,CAAC,GAAG;IAxCR,SAAS,UAAQ;IAGjB,gBAAgB,SAAK;IACrB,iBAAiB,SAAK;IACtB,kBAAkB,SAAK;IACvB,iBAAiB,SAAK;IACtB,eAAe,SAAK;IACpB,UAAU,SAAK;IAGf,aAAa,EAAE,YAAY,EAAE,CAAM;IACnC,SAAS,EAAE,QAAQ,EAAE,CAAM;IAC3B,cAAc,EAAE,YAAY,EAAE,CAAM;IACpC,UAAU,EAAE,eAAe,EAAE,CAAM;IAG1C,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,YAAY,CAAoC;IACxD,OAAO,CAAC,SAAS,CAA0B;IAG3C,OAAO,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"credentials-overview-resource.component.d.ts","sourceRoot":"","sources":["../../../src/Credentials/components/credentials-overview-resource.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ import { Component, ChangeDetectionStrategy } from '@angular/core';
|
|
|
8
8
|
import { Subject } from 'rxjs';
|
|
9
9
|
import { RegisterClass, UUIDsEqual } from '@memberjunction/global';
|
|
10
10
|
import { BaseResourceComponent } from '@memberjunction/ng-shared';
|
|
11
|
-
import { RunView,
|
|
11
|
+
import { RunView, CompositeKey } from '@memberjunction/core';
|
|
12
12
|
import * as i0 from "@angular/core";
|
|
13
13
|
import * as i1 from "@angular/common";
|
|
14
14
|
import * as i2 from "@memberjunction/ng-shared-generic";
|
|
@@ -509,7 +509,7 @@ let CredentialsOverviewResourceComponent = class CredentialsOverviewResourceComp
|
|
|
509
509
|
categoryList = [];
|
|
510
510
|
auditLogs = [];
|
|
511
511
|
// Permissions
|
|
512
|
-
_metadata =
|
|
512
|
+
_metadata = this.ProviderToUse;
|
|
513
513
|
_permissionCache = new Map();
|
|
514
514
|
// Category colors for charts - using CSS custom properties via getComputedStyle at runtime
|
|
515
515
|
// These are semantic fallback values; the actual tokens are resolved from the theme
|
|
@@ -587,7 +587,7 @@ let CredentialsOverviewResourceComponent = class CredentialsOverviewResourceComp
|
|
|
587
587
|
try {
|
|
588
588
|
this.isLoading = true;
|
|
589
589
|
this.cdr.markForCheck();
|
|
590
|
-
const rv =
|
|
590
|
+
const rv = RunView.FromMetadataProvider(this.ProviderToUse);
|
|
591
591
|
// Calculate date range for audit logs (last 30 days)
|
|
592
592
|
const thirtyDaysAgo = new Date();
|
|
593
593
|
thirtyDaysAgo.setDate(thirtyDaysAgo.getDate() - 30);
|