@memberjunction/ng-dashboards 3.4.0 → 4.0.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/ai-dashboard.component.d.ts +62 -0
- package/dist/AI/ai-dashboard.component.d.ts.map +1 -0
- package/dist/AI/ai-dashboard.component.js +338 -0
- package/dist/AI/ai-dashboard.component.js.map +1 -0
- package/dist/AI/components/agents/agent-configuration.component.d.ts +12 -5
- package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
- package/dist/AI/components/agents/agent-configuration.component.js +103 -44
- package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
- package/dist/AI/components/agents/agent-editor.component.d.ts +14 -5
- package/dist/AI/components/agents/agent-editor.component.d.ts.map +1 -1
- package/dist/AI/components/agents/agent-editor.component.js +149 -211
- package/dist/AI/components/agents/agent-editor.component.js.map +1 -1
- package/dist/AI/components/agents/agent-filter-panel.component.d.ts.map +1 -1
- package/dist/AI/components/agents/agent-filter-panel.component.js +4 -4
- package/dist/AI/components/agents/agent-filter-panel.component.js.map +1 -1
- package/dist/AI/components/charts/performance-heatmap.component.d.ts.map +1 -1
- package/dist/AI/components/charts/performance-heatmap.component.js +4 -6
- package/dist/AI/components/charts/performance-heatmap.component.js.map +1 -1
- package/dist/AI/components/charts/time-series-chart.component.d.ts.map +1 -1
- package/dist/AI/components/charts/time-series-chart.component.js +6 -7
- package/dist/AI/components/charts/time-series-chart.component.js.map +1 -1
- package/dist/AI/components/execution-monitoring.component.d.ts +0 -4
- package/dist/AI/components/execution-monitoring.component.d.ts.map +1 -1
- package/dist/AI/components/execution-monitoring.component.js +33 -37
- package/dist/AI/components/execution-monitoring.component.js.map +1 -1
- package/dist/AI/components/models/model-management-v2.component.d.ts +96 -0
- package/dist/AI/components/models/model-management-v2.component.d.ts.map +1 -0
- package/dist/AI/components/models/model-management-v2.component.js +981 -0
- package/dist/AI/components/models/model-management-v2.component.js.map +1 -0
- package/dist/AI/components/models/model-management.component.d.ts +3 -6
- package/dist/AI/components/models/model-management.component.d.ts.map +1 -1
- package/dist/AI/components/models/model-management.component.js +34 -27
- package/dist/AI/components/models/model-management.component.js.map +1 -1
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts.map +1 -1
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js +22 -17
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js.map +1 -1
- package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts.map +1 -1
- package/dist/AI/components/prompts/prompt-filter-panel.component.js +4 -4
- package/dist/AI/components/prompts/prompt-filter-panel.component.js.map +1 -1
- package/dist/AI/components/prompts/prompt-management-v2.component.d.ts +97 -0
- package/dist/AI/components/prompts/prompt-management-v2.component.d.ts.map +1 -0
- package/dist/AI/components/prompts/prompt-management-v2.component.js +811 -0
- package/dist/AI/components/prompts/prompt-management-v2.component.js.map +1 -0
- package/dist/AI/components/prompts/prompt-management.component.d.ts +3 -6
- package/dist/AI/components/prompts/prompt-management.component.d.ts.map +1 -1
- package/dist/AI/components/prompts/prompt-management.component.js +34 -32
- package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
- package/dist/AI/components/prompts/prompt-version-control.component.d.ts.map +1 -1
- package/dist/AI/components/prompts/prompt-version-control.component.js +33 -28
- package/dist/AI/components/prompts/prompt-version-control.component.js.map +1 -1
- package/dist/AI/components/system/system-config-filter-panel.component.d.ts.map +1 -1
- package/dist/AI/components/system/system-config-filter-panel.component.js +4 -4
- package/dist/AI/components/system/system-config-filter-panel.component.js.map +1 -1
- package/dist/AI/components/system/system-configuration.component.d.ts +0 -4
- package/dist/AI/components/system/system-configuration.component.d.ts.map +1 -1
- package/dist/AI/components/system/system-configuration.component.js +26 -27
- package/dist/AI/components/system/system-configuration.component.js.map +1 -1
- package/dist/AI/components/widgets/kpi-card.component.d.ts.map +1 -1
- package/dist/AI/components/widgets/kpi-card.component.js +52 -42
- package/dist/AI/components/widgets/kpi-card.component.js.map +1 -1
- package/dist/AI/components/widgets/live-execution-widget.component.d.ts.map +1 -1
- package/dist/AI/components/widgets/live-execution-widget.component.js +7 -7
- package/dist/AI/components/widgets/live-execution-widget.component.js.map +1 -1
- package/dist/APIKeys/api-applications-panel.component.d.ts +0 -2
- package/dist/APIKeys/api-applications-panel.component.d.ts.map +1 -1
- package/dist/APIKeys/api-applications-panel.component.js +193 -189
- package/dist/APIKeys/api-applications-panel.component.js.map +1 -1
- package/dist/APIKeys/api-key-create-dialog.component.d.ts +0 -2
- package/dist/APIKeys/api-key-create-dialog.component.d.ts.map +1 -1
- package/dist/APIKeys/api-key-create-dialog.component.js +175 -180
- package/dist/APIKeys/api-key-create-dialog.component.js.map +1 -1
- package/dist/APIKeys/api-key-edit-panel.component.d.ts +0 -2
- package/dist/APIKeys/api-key-edit-panel.component.d.ts.map +1 -1
- package/dist/APIKeys/api-key-edit-panel.component.js +231 -225
- package/dist/APIKeys/api-key-edit-panel.component.js.map +1 -1
- package/dist/APIKeys/api-key-list.component.d.ts +0 -2
- package/dist/APIKeys/api-key-list.component.d.ts.map +1 -1
- package/dist/APIKeys/api-key-list.component.js +113 -114
- package/dist/APIKeys/api-key-list.component.js.map +1 -1
- package/dist/APIKeys/api-keys-resource.component.d.ts +0 -2
- package/dist/APIKeys/api-keys-resource.component.d.ts.map +1 -1
- package/dist/APIKeys/api-keys-resource.component.js +294 -302
- package/dist/APIKeys/api-keys-resource.component.js.map +1 -1
- package/dist/APIKeys/api-scopes-panel.component.d.ts +0 -2
- package/dist/APIKeys/api-scopes-panel.component.d.ts.map +1 -1
- package/dist/APIKeys/api-scopes-panel.component.js +151 -155
- package/dist/APIKeys/api-scopes-panel.component.js.map +1 -1
- package/dist/APIKeys/api-usage-panel.component.d.ts +0 -2
- package/dist/APIKeys/api-usage-panel.component.d.ts.map +1 -1
- package/dist/APIKeys/api-usage-panel.component.js +237 -234
- package/dist/APIKeys/api-usage-panel.component.js.map +1 -1
- package/dist/Actions/actions-management-dashboard.component.d.ts +52 -0
- package/dist/Actions/actions-management-dashboard.component.d.ts.map +1 -0
- package/dist/Actions/actions-management-dashboard.component.js +308 -0
- package/dist/Actions/actions-management-dashboard.component.js.map +1 -0
- package/dist/Actions/components/actions-list-view.component.d.ts.map +1 -1
- package/dist/Actions/components/actions-list-view.component.js +15 -14
- package/dist/Actions/components/actions-list-view.component.js.map +1 -1
- package/dist/Actions/components/actions-overview.component.d.ts +3 -6
- package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
- package/dist/Actions/components/actions-overview.component.js +17 -19
- package/dist/Actions/components/actions-overview.component.js.map +1 -1
- package/dist/Actions/components/categories-list-view.component.d.ts.map +1 -1
- package/dist/Actions/components/categories-list-view.component.js +6 -6
- package/dist/Actions/components/categories-list-view.component.js.map +1 -1
- package/dist/Actions/components/code-management.component.d.ts +0 -4
- package/dist/Actions/components/code-management.component.d.ts.map +1 -1
- package/dist/Actions/components/code-management.component.js +3 -9
- package/dist/Actions/components/code-management.component.js.map +1 -1
- package/dist/Actions/components/entity-integration.component.d.ts +0 -4
- package/dist/Actions/components/entity-integration.component.d.ts.map +1 -1
- package/dist/Actions/components/entity-integration.component.js +3 -9
- package/dist/Actions/components/entity-integration.component.js.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.d.ts +3 -6
- package/dist/Actions/components/execution-monitoring.component.d.ts.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.js +13 -16
- package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
- package/dist/Actions/components/executions-list-view.component.d.ts.map +1 -1
- package/dist/Actions/components/executions-list-view.component.js +3 -3
- package/dist/Actions/components/executions-list-view.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-breadcrumb.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-breadcrumb.component.js +6 -6
- package/dist/Actions/components/explorer/action-breadcrumb.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-card.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-card.component.js +11 -10
- package/dist/Actions/components/explorer/action-card.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.d.ts +0 -4
- package/dist/Actions/components/explorer/action-explorer.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.js +10 -14
- package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-list-item.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-list-item.component.js +8 -8
- package/dist/Actions/components/explorer/action-list-item.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-toolbar.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-toolbar.component.js +15 -14
- package/dist/Actions/components/explorer/action-toolbar.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-tree-panel.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-tree-panel.component.js +11 -10
- package/dist/Actions/components/explorer/action-tree-panel.component.js.map +1 -1
- package/dist/Actions/components/explorer/index.d.ts +0 -1
- package/dist/Actions/components/explorer/index.d.ts.map +1 -1
- package/dist/Actions/components/explorer/index.js +0 -4
- package/dist/Actions/components/explorer/index.js.map +1 -1
- package/dist/Actions/components/explorer/new-action-panel.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/new-action-panel.component.js +10 -10
- package/dist/Actions/components/explorer/new-action-panel.component.js.map +1 -1
- package/dist/Actions/components/explorer/new-category-panel.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/new-category-panel.component.js +8 -8
- package/dist/Actions/components/explorer/new-category-panel.component.js.map +1 -1
- package/dist/Actions/components/scheduled-actions.component.d.ts +0 -4
- package/dist/Actions/components/scheduled-actions.component.d.ts.map +1 -1
- package/dist/Actions/components/scheduled-actions.component.js +3 -9
- package/dist/Actions/components/scheduled-actions.component.js.map +1 -1
- package/dist/Actions/components/security-permissions.component.d.ts +0 -4
- package/dist/Actions/components/security-permissions.component.d.ts.map +1 -1
- package/dist/Actions/components/security-permissions.component.js +3 -9
- package/dist/Actions/components/security-permissions.component.js.map +1 -1
- package/dist/Actions/index.d.ts +0 -7
- package/dist/Actions/index.d.ts.map +1 -1
- package/dist/Actions/index.js +0 -8
- package/dist/Actions/index.js.map +1 -1
- package/dist/Communication/communication-dashboard.component.d.ts +0 -1
- package/dist/Communication/communication-dashboard.component.d.ts.map +1 -1
- package/dist/Communication/communication-dashboard.component.js +38 -51
- package/dist/Communication/communication-dashboard.component.js.map +1 -1
- package/dist/Communication/communication-logs-resource.component.d.ts +0 -4
- package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-logs-resource.component.js +112 -108
- package/dist/Communication/communication-logs-resource.component.js.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.d.ts +0 -4
- package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.js +210 -201
- package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
- package/dist/Communication/communication-providers-resource.component.d.ts +0 -4
- package/dist/Communication/communication-providers-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-providers-resource.component.js +136 -124
- package/dist/Communication/communication-providers-resource.component.js.map +1 -1
- package/dist/Communication/communication-runs-resource.component.d.ts +0 -4
- package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-runs-resource.component.js +91 -88
- package/dist/Communication/communication-runs-resource.component.js.map +1 -1
- package/dist/Communication/communication-templates-resource.component.d.ts +0 -4
- package/dist/Communication/communication-templates-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-templates-resource.component.js +139 -122
- package/dist/Communication/communication-templates-resource.component.js.map +1 -1
- package/dist/ComponentStudio/component-studio-dashboard.component.d.ts +0 -4
- package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
- package/dist/ComponentStudio/component-studio-dashboard.component.js +21 -20
- package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
- package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js +11 -12
- package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js.map +1 -1
- package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/artifact-load-dialog.component.js +25 -22
- package/dist/ComponentStudio/components/artifact-load-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.js +16 -16
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/components/browser/component-browser.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/browser/component-browser.component.js +23 -21
- package/dist/ComponentStudio/components/browser/component-browser.component.js.map +1 -1
- package/dist/ComponentStudio/components/editors/code-editor-panel.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/editors/code-editor-panel.component.js +10 -10
- package/dist/ComponentStudio/components/editors/code-editor-panel.component.js.map +1 -1
- package/dist/ComponentStudio/components/editors/data-requirements-editor.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js +13 -13
- package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js.map +1 -1
- package/dist/ComponentStudio/components/editors/requirements-editor.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/editors/requirements-editor.component.js +7 -7
- package/dist/ComponentStudio/components/editors/requirements-editor.component.js.map +1 -1
- package/dist/ComponentStudio/components/editors/spec-editor.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/editors/spec-editor.component.js +5 -5
- package/dist/ComponentStudio/components/editors/spec-editor.component.js.map +1 -1
- package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js +4 -4
- package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js +9 -9
- package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/components/text-import-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/text-import-dialog.component.js +4 -4
- package/dist/ComponentStudio/components/text-import-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/components/workspace/component-preview.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/workspace/component-preview.component.js +10 -9
- package/dist/ComponentStudio/components/workspace/component-preview.component.js.map +1 -1
- package/dist/ComponentStudio/components/workspace/editor-tabs.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/workspace/editor-tabs.component.js +4 -4
- package/dist/ComponentStudio/components/workspace/editor-tabs.component.js.map +1 -1
- package/dist/Credentials/components/credential-category-edit-panel.component.d.ts +44 -0
- package/dist/Credentials/components/credential-category-edit-panel.component.d.ts.map +1 -0
- package/dist/Credentials/components/credential-category-edit-panel.component.js +456 -0
- package/dist/Credentials/components/credential-category-edit-panel.component.js.map +1 -0
- package/dist/Credentials/components/credential-edit-panel.component.d.ts +70 -0
- package/dist/Credentials/components/credential-edit-panel.component.d.ts.map +1 -0
- package/dist/Credentials/components/credential-edit-panel.component.js +694 -0
- package/dist/Credentials/components/credential-edit-panel.component.js.map +1 -0
- package/dist/Credentials/components/credential-type-edit-panel.component.d.ts +56 -0
- package/dist/Credentials/components/credential-type-edit-panel.component.d.ts.map +1 -0
- package/dist/Credentials/components/credential-type-edit-panel.component.js +563 -0
- package/dist/Credentials/components/credential-type-edit-panel.component.js.map +1 -0
- package/dist/Credentials/components/credentials-audit-resource.component.d.ts +0 -1
- package/dist/Credentials/components/credentials-audit-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-audit-resource.component.js +200 -196
- package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-categories-resource.component.d.ts +0 -1
- package/dist/Credentials/components/credentials-categories-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-categories-resource.component.js +195 -190
- package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-list-resource.component.d.ts +0 -1
- package/dist/Credentials/components/credentials-list-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-list-resource.component.js +251 -240
- package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-overview-resource.component.d.ts +0 -1
- package/dist/Credentials/components/credentials-overview-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-overview-resource.component.js +228 -226
- package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-types-resource.component.d.ts +0 -1
- package/dist/Credentials/components/credentials-types-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-types-resource.component.js +214 -210
- package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
- package/dist/Credentials/credentials-dashboard.component.d.ts +0 -1
- package/dist/Credentials/credentials-dashboard.component.d.ts.map +1 -1
- package/dist/Credentials/credentials-dashboard.component.js +31 -44
- package/dist/Credentials/credentials-dashboard.component.js.map +1 -1
- package/dist/Credentials/pipes/group-by.pipe.d.ts.map +1 -1
- package/dist/Credentials/pipes/group-by.pipe.js +2 -1
- package/dist/Credentials/pipes/group-by.pipe.js.map +1 -1
- package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts +0 -1
- package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts.map +1 -1
- package/dist/DashboardBrowser/dashboard-browser-resource.component.js +73 -80
- package/dist/DashboardBrowser/dashboard-browser-resource.component.js.map +1 -1
- package/dist/DashboardBrowser/dashboard-share-dialog.component.d.ts.map +1 -1
- package/dist/DashboardBrowser/dashboard-share-dialog.component.js +46 -45
- package/dist/DashboardBrowser/dashboard-share-dialog.component.js.map +1 -1
- package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.d.ts.map +1 -1
- package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js +7 -7
- package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js.map +1 -1
- package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.d.ts.map +1 -1
- package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js +15 -15
- package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js.map +1 -1
- package/dist/DataExplorer/components/view-config-panel/view-config-panel.component.d.ts +245 -0
- package/dist/DataExplorer/components/view-config-panel/view-config-panel.component.d.ts.map +1 -0
- package/dist/DataExplorer/components/view-config-panel/view-config-panel.component.js +1143 -0
- package/dist/DataExplorer/components/view-config-panel/view-config-panel.component.js.map +1 -0
- package/dist/DataExplorer/components/view-selector/view-selector.component.d.ts.map +1 -1
- package/dist/DataExplorer/components/view-selector/view-selector.component.js +17 -11
- package/dist/DataExplorer/components/view-selector/view-selector.component.js.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +0 -4
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.js +49 -54
- package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
- package/dist/DataExplorer/data-explorer-resource.component.d.ts +0 -1
- package/dist/DataExplorer/data-explorer-resource.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-resource.component.js +3 -6
- package/dist/DataExplorer/data-explorer-resource.component.js.map +1 -1
- package/dist/DataExplorer/index.d.ts +2 -2
- package/dist/DataExplorer/index.d.ts.map +1 -1
- package/dist/DataExplorer/index.js +2 -2
- package/dist/DataExplorer/index.js.map +1 -1
- package/dist/EntityAdmin/components/entity-details.component.d.ts +50 -0
- package/dist/EntityAdmin/components/entity-details.component.d.ts.map +1 -0
- package/dist/EntityAdmin/components/entity-details.component.js +680 -0
- package/dist/EntityAdmin/components/entity-details.component.js.map +1 -0
- package/dist/EntityAdmin/components/entity-filter-panel.component.d.ts +31 -0
- package/dist/EntityAdmin/components/entity-filter-panel.component.d.ts.map +1 -0
- package/dist/EntityAdmin/components/entity-filter-panel.component.js +160 -0
- package/dist/EntityAdmin/components/entity-filter-panel.component.js.map +1 -0
- package/dist/EntityAdmin/components/erd-composite.component.d.ts +73 -0
- package/dist/EntityAdmin/components/erd-composite.component.d.ts.map +1 -0
- package/dist/EntityAdmin/components/erd-composite.component.js +271 -0
- package/dist/EntityAdmin/components/erd-composite.component.js.map +1 -0
- package/dist/EntityAdmin/components/erd-diagram.component.d.ts +47 -0
- package/dist/EntityAdmin/components/erd-diagram.component.d.ts.map +1 -0
- package/dist/EntityAdmin/components/erd-diagram.component.js +618 -0
- package/dist/EntityAdmin/components/erd-diagram.component.js.map +1 -0
- package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts +0 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts.map +1 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.js +6 -7
- package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
- package/dist/Home/home-application.d.ts +0 -5
- package/dist/Home/home-application.d.ts.map +1 -1
- package/dist/Home/home-application.js +0 -9
- package/dist/Home/home-application.js.map +1 -1
- package/dist/Home/home-dashboard.component.d.ts +0 -4
- package/dist/Home/home-dashboard.component.d.ts.map +1 -1
- package/dist/Home/home-dashboard.component.js +141 -139
- package/dist/Home/home-dashboard.component.js.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.d.ts +0 -1
- package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.js +761 -685
- package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-categories-resource.component.d.ts +0 -1
- package/dist/Lists/components/lists-categories-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-categories-resource.component.js +340 -316
- package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.d.ts +0 -1
- package/dist/Lists/components/lists-my-lists-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.js +530 -482
- package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-operations-resource.component.d.ts +0 -1
- package/dist/Lists/components/lists-operations-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-operations-resource.component.js +508 -455
- package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
- package/dist/Lists/components/venn-diagram/venn-diagram.component.d.ts.map +1 -1
- package/dist/Lists/components/venn-diagram/venn-diagram.component.js +44 -39
- package/dist/Lists/components/venn-diagram/venn-diagram.component.js.map +1 -1
- package/dist/Lists/index.d.ts +0 -1
- package/dist/Lists/index.d.ts.map +1 -1
- package/dist/Lists/index.js +0 -11
- package/dist/Lists/index.js.map +1 -1
- package/dist/MCP/components/mcp-connection-dialog.component.d.ts +0 -4
- package/dist/MCP/components/mcp-connection-dialog.component.d.ts.map +1 -1
- package/dist/MCP/components/mcp-connection-dialog.component.js +33 -39
- package/dist/MCP/components/mcp-connection-dialog.component.js.map +1 -1
- package/dist/MCP/components/mcp-log-detail-panel.component.d.ts +0 -4
- package/dist/MCP/components/mcp-log-detail-panel.component.d.ts.map +1 -1
- package/dist/MCP/components/mcp-log-detail-panel.component.js +42 -44
- package/dist/MCP/components/mcp-log-detail-panel.component.js.map +1 -1
- package/dist/MCP/components/mcp-server-dialog.component.d.ts +3 -4
- package/dist/MCP/components/mcp-server-dialog.component.d.ts.map +1 -1
- package/dist/MCP/components/mcp-server-dialog.component.js +186 -77
- package/dist/MCP/components/mcp-server-dialog.component.js.map +1 -1
- package/dist/MCP/components/mcp-test-tool-dialog.component.d.ts +0 -4
- package/dist/MCP/components/mcp-test-tool-dialog.component.d.ts.map +1 -1
- package/dist/MCP/components/mcp-test-tool-dialog.component.js +187 -187
- package/dist/MCP/components/mcp-test-tool-dialog.component.js.map +1 -1
- package/dist/MCP/index.d.ts +5 -5
- package/dist/MCP/index.d.ts.map +1 -1
- package/dist/MCP/index.js +5 -5
- package/dist/MCP/index.js.map +1 -1
- package/dist/MCP/mcp-dashboard.component.d.ts +65 -7
- package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
- package/dist/MCP/mcp-dashboard.component.js +976 -697
- package/dist/MCP/mcp-dashboard.component.js.map +1 -1
- package/dist/MCP/mcp-filter-panel.component.d.ts +54 -0
- package/dist/MCP/mcp-filter-panel.component.d.ts.map +1 -0
- package/dist/MCP/mcp-filter-panel.component.js +288 -0
- package/dist/MCP/mcp-filter-panel.component.js.map +1 -0
- package/dist/MCP/mcp-resource.component.d.ts +11 -5
- package/dist/MCP/mcp-resource.component.d.ts.map +1 -1
- package/dist/MCP/mcp-resource.component.js +8 -9
- package/dist/MCP/mcp-resource.component.js.map +1 -1
- package/dist/MCP/mcp.module.d.ts +16 -19
- package/dist/MCP/mcp.module.d.ts.map +1 -1
- package/dist/MCP/mcp.module.js +17 -26
- package/dist/MCP/mcp.module.js.map +1 -1
- package/dist/MCP/services/mcp-tools.service.d.ts +10 -4
- package/dist/MCP/services/mcp-tools.service.d.ts.map +1 -1
- package/dist/MCP/services/mcp-tools.service.js +5 -6
- package/dist/MCP/services/mcp-tools.service.js.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.d.ts +0 -1
- package/dist/QueryBrowser/query-browser-resource.component.d.ts.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.js +79 -88
- package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
- package/dist/Scheduling/components/job-slideout.component.d.ts.map +1 -1
- package/dist/Scheduling/components/job-slideout.component.js +117 -116
- package/dist/Scheduling/components/job-slideout.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts +0 -4
- package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-activity-resource.component.js +3 -9
- package/dist/Scheduling/components/scheduling-activity-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-activity.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-activity.component.js +134 -134
- package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-health-resource.component.d.ts +20 -0
- package/dist/Scheduling/components/scheduling-health-resource.component.d.ts.map +1 -0
- package/dist/Scheduling/components/scheduling-health-resource.component.js +55 -0
- package/dist/Scheduling/components/scheduling-health-resource.component.js.map +1 -0
- package/dist/Scheduling/components/scheduling-health.component.d.ts +30 -0
- package/dist/Scheduling/components/scheduling-health.component.d.ts.map +1 -0
- package/dist/Scheduling/components/scheduling-health.component.js +315 -0
- package/dist/Scheduling/components/scheduling-health.component.js.map +1 -0
- package/dist/Scheduling/components/scheduling-history-resource.component.d.ts +20 -0
- package/dist/Scheduling/components/scheduling-history-resource.component.d.ts.map +1 -0
- package/dist/Scheduling/components/scheduling-history-resource.component.js +55 -0
- package/dist/Scheduling/components/scheduling-history-resource.component.js.map +1 -0
- package/dist/Scheduling/components/scheduling-history.component.d.ts +48 -0
- package/dist/Scheduling/components/scheduling-history.component.d.ts.map +1 -0
- package/dist/Scheduling/components/scheduling-history.component.js +377 -0
- package/dist/Scheduling/components/scheduling-history.component.js.map +1 -0
- package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts +0 -4
- package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs-resource.component.js +3 -9
- package/dist/Scheduling/components/scheduling-jobs-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs.component.js +102 -97
- package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-monitor-resource.component.d.ts +20 -0
- package/dist/Scheduling/components/scheduling-monitor-resource.component.d.ts.map +1 -0
- package/dist/Scheduling/components/scheduling-monitor-resource.component.js +55 -0
- package/dist/Scheduling/components/scheduling-monitor-resource.component.js.map +1 -0
- package/dist/Scheduling/components/scheduling-monitoring.component.d.ts +37 -0
- package/dist/Scheduling/components/scheduling-monitoring.component.d.ts.map +1 -0
- package/dist/Scheduling/components/scheduling-monitoring.component.js +488 -0
- package/dist/Scheduling/components/scheduling-monitoring.component.js.map +1 -0
- package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts +0 -4
- package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-overview-resource.component.js +3 -9
- package/dist/Scheduling/components/scheduling-overview-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-overview.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-overview.component.js +127 -122
- package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-types-resource.component.d.ts +20 -0
- package/dist/Scheduling/components/scheduling-types-resource.component.d.ts.map +1 -0
- package/dist/Scheduling/components/scheduling-types-resource.component.js +55 -0
- package/dist/Scheduling/components/scheduling-types-resource.component.js.map +1 -0
- package/dist/Scheduling/components/scheduling-types.component.d.ts +22 -0
- package/dist/Scheduling/components/scheduling-types.component.d.ts.map +1 -0
- package/dist/Scheduling/components/scheduling-types.component.js +165 -0
- package/dist/Scheduling/components/scheduling-types.component.js.map +1 -0
- package/dist/Scheduling/scheduling-dashboard.component.d.ts +0 -1
- package/dist/Scheduling/scheduling-dashboard.component.d.ts.map +1 -1
- package/dist/Scheduling/scheduling-dashboard.component.js +35 -43
- package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
- package/dist/SystemDiagnostics/system-diagnostics.component.d.ts +0 -4
- package/dist/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -1
- package/dist/SystemDiagnostics/system-diagnostics.component.js +1552 -1534
- package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
- package/dist/Testing/components/testing-analytics-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-analytics-resource.component.js +3 -3
- package/dist/Testing/components/testing-analytics-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-analytics.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-analytics.component.js +30 -30
- package/dist/Testing/components/testing-analytics.component.js.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab-resource.component.js +3 -3
- package/dist/Testing/components/testing-dashboard-tab-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab.component.js +7 -7
- package/dist/Testing/components/testing-dashboard-tab.component.js.map +1 -1
- package/dist/Testing/components/testing-execution-resource.component.d.ts +20 -0
- package/dist/Testing/components/testing-execution-resource.component.d.ts.map +1 -0
- package/dist/Testing/components/testing-execution-resource.component.js +55 -0
- package/dist/Testing/components/testing-execution-resource.component.js.map +1 -0
- package/dist/Testing/components/testing-execution.component.d.ts +71 -0
- package/dist/Testing/components/testing-execution.component.d.ts.map +1 -0
- package/dist/Testing/components/testing-execution.component.js +845 -0
- package/dist/Testing/components/testing-execution.component.js.map +1 -0
- package/dist/Testing/components/testing-explorer-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-explorer-resource.component.js +3 -3
- package/dist/Testing/components/testing-explorer-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-explorer.component.js +42 -35
- package/dist/Testing/components/testing-explorer.component.js.map +1 -1
- package/dist/Testing/components/testing-feedback-resource.component.d.ts +20 -0
- package/dist/Testing/components/testing-feedback-resource.component.d.ts.map +1 -0
- package/dist/Testing/components/testing-feedback-resource.component.js +55 -0
- package/dist/Testing/components/testing-feedback-resource.component.js.map +1 -0
- package/dist/Testing/components/testing-feedback.component.d.ts +111 -0
- package/dist/Testing/components/testing-feedback.component.d.ts.map +1 -0
- package/dist/Testing/components/testing-feedback.component.js +1486 -0
- package/dist/Testing/components/testing-feedback.component.js.map +1 -0
- package/dist/Testing/components/testing-overview-resource.component.d.ts +20 -0
- package/dist/Testing/components/testing-overview-resource.component.d.ts.map +1 -0
- package/dist/Testing/components/testing-overview-resource.component.js +55 -0
- package/dist/Testing/components/testing-overview-resource.component.js.map +1 -0
- package/dist/Testing/components/testing-overview.component.d.ts +30 -0
- package/dist/Testing/components/testing-overview.component.d.ts.map +1 -0
- package/dist/Testing/components/testing-overview.component.js +361 -0
- package/dist/Testing/components/testing-overview.component.js.map +1 -0
- package/dist/Testing/components/testing-review-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-review-resource.component.js +3 -3
- package/dist/Testing/components/testing-review-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-review.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-review.component.js +16 -16
- package/dist/Testing/components/testing-review.component.js.map +1 -1
- package/dist/Testing/components/testing-runs-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-runs-resource.component.js +3 -3
- package/dist/Testing/components/testing-runs-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-runs.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-runs.component.js +15 -15
- package/dist/Testing/components/testing-runs.component.js.map +1 -1
- package/dist/Testing/components/testing-version-comparison.component.d.ts +62 -0
- package/dist/Testing/components/testing-version-comparison.component.d.ts.map +1 -0
- package/dist/Testing/components/testing-version-comparison.component.js +815 -0
- package/dist/Testing/components/testing-version-comparison.component.js.map +1 -0
- package/dist/Testing/components/testing-version-resource.component.d.ts +20 -0
- package/dist/Testing/components/testing-version-resource.component.d.ts.map +1 -0
- package/dist/Testing/components/testing-version-resource.component.js +55 -0
- package/dist/Testing/components/testing-version-resource.component.js.map +1 -0
- package/dist/Testing/components/widgets/oracle-breakdown-table.component.d.ts.map +1 -1
- package/dist/Testing/components/widgets/oracle-breakdown-table.component.js +73 -61
- package/dist/Testing/components/widgets/oracle-breakdown-table.component.js.map +1 -1
- package/dist/Testing/components/widgets/suite-tree.component.d.ts.map +1 -1
- package/dist/Testing/components/widgets/suite-tree.component.js +34 -31
- package/dist/Testing/components/widgets/suite-tree.component.js.map +1 -1
- package/dist/Testing/components/widgets/test-run-detail-panel.component.d.ts.map +1 -1
- package/dist/Testing/components/widgets/test-run-detail-panel.component.js +180 -171
- package/dist/Testing/components/widgets/test-run-detail-panel.component.js.map +1 -1
- package/dist/Testing/testing-dashboard.component.d.ts +0 -1
- package/dist/Testing/testing-dashboard.component.d.ts.map +1 -1
- package/dist/Testing/testing-dashboard.component.js +9 -8
- package/dist/Testing/testing-dashboard.component.js.map +1 -1
- package/dist/VersionHistory/components/diff-resource.component.d.ts +119 -0
- package/dist/VersionHistory/components/diff-resource.component.d.ts.map +1 -0
- package/dist/VersionHistory/components/diff-resource.component.js +1162 -0
- package/dist/VersionHistory/components/diff-resource.component.js.map +1 -0
- package/dist/VersionHistory/components/graph-resource.component.d.ts +67 -0
- package/dist/VersionHistory/components/graph-resource.component.d.ts.map +1 -0
- package/dist/VersionHistory/components/graph-resource.component.js +521 -0
- package/dist/VersionHistory/components/graph-resource.component.js.map +1 -0
- package/dist/VersionHistory/components/index.d.ts +5 -0
- package/dist/VersionHistory/components/index.d.ts.map +1 -0
- package/dist/VersionHistory/components/index.js +5 -0
- package/dist/VersionHistory/components/index.js.map +1 -0
- package/dist/VersionHistory/components/labels-resource.component.d.ts +89 -0
- package/dist/VersionHistory/components/labels-resource.component.d.ts.map +1 -0
- package/dist/VersionHistory/components/labels-resource.component.js +968 -0
- package/dist/VersionHistory/components/labels-resource.component.js.map +1 -0
- package/dist/VersionHistory/components/restore-resource.component.d.ts +40 -0
- package/dist/VersionHistory/components/restore-resource.component.d.ts.map +1 -0
- package/dist/VersionHistory/components/restore-resource.component.js +472 -0
- package/dist/VersionHistory/components/restore-resource.component.js.map +1 -0
- package/dist/VersionHistory/index.d.ts +2 -0
- package/dist/VersionHistory/index.d.ts.map +1 -0
- package/dist/VersionHistory/index.js +2 -0
- package/dist/VersionHistory/index.js.map +1 -0
- package/dist/generic/base-dashboard.d.ts +65 -0
- package/dist/generic/base-dashboard.d.ts.map +1 -0
- package/dist/generic/base-dashboard.js +74 -0
- package/dist/generic/base-dashboard.js.map +1 -0
- package/dist/module.d.ts +42 -36
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +41 -7
- package/dist/module.js.map +1 -1
- package/dist/public-api.d.ts +20 -19
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +22 -120
- package/dist/public-api.js.map +1 -1
- package/dist/shared/pipes/highlight-search.pipe.d.ts.map +1 -1
- package/dist/shared/pipes/highlight-search.pipe.js +2 -1
- package/dist/shared/pipes/highlight-search.pipe.js.map +1 -1
- package/package.json +64 -62
|
@@ -11,33 +11,33 @@ import { RunView, Metadata } from '@memberjunction/core';
|
|
|
11
11
|
import { MJNotificationService } from '@memberjunction/ng-notifications';
|
|
12
12
|
import * as i0 from "@angular/core";
|
|
13
13
|
import * as i1 from "@memberjunction/ng-shared";
|
|
14
|
-
import * as i2 from "@
|
|
15
|
-
import * as i3 from "@memberjunction/ng-
|
|
16
|
-
import * as i4 from "@
|
|
14
|
+
import * as i2 from "@memberjunction/ng-shared-generic";
|
|
15
|
+
import * as i3 from "@memberjunction/ng-credentials";
|
|
16
|
+
import * as i4 from "@angular/common";
|
|
17
17
|
const _c0 = ["categoryEditPanel"];
|
|
18
|
-
function
|
|
19
|
-
i0.ɵɵelement(0, "mj-loading",
|
|
18
|
+
function CredentialsCategoriesResourceComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
19
|
+
i0.ɵɵelement(0, "mj-loading", 2);
|
|
20
20
|
} }
|
|
21
|
-
function
|
|
21
|
+
function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
22
22
|
const _r3 = i0.ɵɵgetCurrentView();
|
|
23
|
-
i0.ɵɵelementStart(0, "button",
|
|
24
|
-
i0.ɵɵlistener("click", function
|
|
25
|
-
i0.ɵɵelement(1, "i",
|
|
23
|
+
i0.ɵɵelementStart(0, "button", 32);
|
|
24
|
+
i0.ɵɵlistener("click", function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_12_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r3 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r3.createNewCategory()); });
|
|
25
|
+
i0.ɵɵelement(1, "i", 33);
|
|
26
26
|
i0.ɵɵelementStart(2, "span");
|
|
27
27
|
i0.ɵɵtext(3, "New Category");
|
|
28
28
|
i0.ɵɵelementEnd()();
|
|
29
29
|
} }
|
|
30
|
-
function
|
|
30
|
+
function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_18_Template(rf, ctx) { if (rf & 1) {
|
|
31
31
|
const _r5 = i0.ɵɵgetCurrentView();
|
|
32
|
-
i0.ɵɵelementStart(0, "button",
|
|
33
|
-
i0.ɵɵlistener("click", function
|
|
34
|
-
i0.ɵɵelement(1, "i",
|
|
32
|
+
i0.ɵɵelementStart(0, "button", 34);
|
|
33
|
+
i0.ɵɵlistener("click", function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_18_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r3 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r3.clearSearch()); });
|
|
34
|
+
i0.ɵɵelement(1, "i", 35);
|
|
35
35
|
i0.ɵɵelementEnd();
|
|
36
36
|
} }
|
|
37
|
-
function
|
|
37
|
+
function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_28_For_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
38
38
|
const _r8 = i0.ɵɵgetCurrentView();
|
|
39
|
-
i0.ɵɵelementStart(0, "button",
|
|
40
|
-
i0.ɵɵlistener("click", function
|
|
39
|
+
i0.ɵɵelementStart(0, "button", 51);
|
|
40
|
+
i0.ɵɵlistener("click", function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_28_For_2_Conditional_2_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r8); const node_r7 = i0.ɵɵnextContext().$implicit; const ctx_r3 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r3.toggleExpand(node_r7, $event)); });
|
|
41
41
|
i0.ɵɵelement(1, "i");
|
|
42
42
|
i0.ɵɵelementEnd();
|
|
43
43
|
} if (rf & 2) {
|
|
@@ -45,11 +45,11 @@ function CredentialsCategoriesResourceComponent_ng_container_2_div_29_div_1_butt
|
|
|
45
45
|
i0.ɵɵadvance();
|
|
46
46
|
i0.ɵɵclassMap(node_r7.expanded ? "fa-solid fa-chevron-down" : "fa-solid fa-chevron-right");
|
|
47
47
|
} }
|
|
48
|
-
function
|
|
49
|
-
i0.ɵɵelement(0, "span",
|
|
48
|
+
function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_28_For_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
49
|
+
i0.ɵɵelement(0, "span", 40);
|
|
50
50
|
} }
|
|
51
|
-
function
|
|
52
|
-
i0.ɵɵelementStart(0, "div",
|
|
51
|
+
function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_28_For_2_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
52
|
+
i0.ɵɵelementStart(0, "div", 44);
|
|
53
53
|
i0.ɵɵtext(1);
|
|
54
54
|
i0.ɵɵpipe(2, "slice");
|
|
55
55
|
i0.ɵɵelementEnd();
|
|
@@ -58,9 +58,9 @@ function CredentialsCategoriesResourceComponent_ng_container_2_div_29_div_1_div_
|
|
|
58
58
|
i0.ɵɵadvance();
|
|
59
59
|
i0.ɵɵtextInterpolate2(" ", i0.ɵɵpipeBind3(2, 2, node_r7.category.Description, 0, 50), "", node_r7.category.Description.length > 50 ? "..." : "", " ");
|
|
60
60
|
} }
|
|
61
|
-
function
|
|
62
|
-
i0.ɵɵelementStart(0, "span",
|
|
63
|
-
i0.ɵɵelement(1, "i",
|
|
61
|
+
function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_28_For_2_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
62
|
+
i0.ɵɵelementStart(0, "span", 46);
|
|
63
|
+
i0.ɵɵelement(1, "i", 10);
|
|
64
64
|
i0.ɵɵtext(2);
|
|
65
65
|
i0.ɵɵelementEnd();
|
|
66
66
|
} if (rf & 2) {
|
|
@@ -68,9 +68,9 @@ function CredentialsCategoriesResourceComponent_ng_container_2_div_29_div_1_span
|
|
|
68
68
|
i0.ɵɵadvance(2);
|
|
69
69
|
i0.ɵɵtextInterpolate1(" ", node_r7.typeCount, " ");
|
|
70
70
|
} }
|
|
71
|
-
function
|
|
72
|
-
i0.ɵɵelementStart(0, "span",
|
|
73
|
-
i0.ɵɵelement(1, "i",
|
|
71
|
+
function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_28_For_2_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
72
|
+
i0.ɵɵelementStart(0, "span", 47);
|
|
73
|
+
i0.ɵɵelement(1, "i", 52);
|
|
74
74
|
i0.ɵɵtext(2);
|
|
75
75
|
i0.ɵɵelementEnd();
|
|
76
76
|
} if (rf & 2) {
|
|
@@ -78,118 +78,123 @@ function CredentialsCategoriesResourceComponent_ng_container_2_div_29_div_1_span
|
|
|
78
78
|
i0.ɵɵadvance(2);
|
|
79
79
|
i0.ɵɵtextInterpolate1(" ", node_r7.children.length, " ");
|
|
80
80
|
} }
|
|
81
|
-
function
|
|
81
|
+
function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_28_For_2_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
82
82
|
const _r9 = i0.ɵɵgetCurrentView();
|
|
83
|
-
i0.ɵɵelementStart(0, "button",
|
|
84
|
-
i0.ɵɵlistener("click", function
|
|
85
|
-
i0.ɵɵelement(1, "i",
|
|
83
|
+
i0.ɵɵelementStart(0, "button", 53);
|
|
84
|
+
i0.ɵɵlistener("click", function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_28_For_2_Conditional_14_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r9); const node_r7 = i0.ɵɵnextContext().$implicit; const ctx_r3 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r3.editCategory(node_r7, $event)); });
|
|
85
|
+
i0.ɵɵelement(1, "i", 54);
|
|
86
86
|
i0.ɵɵelementEnd();
|
|
87
87
|
} }
|
|
88
|
-
function
|
|
88
|
+
function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_28_For_2_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
89
89
|
const _r10 = i0.ɵɵgetCurrentView();
|
|
90
|
-
i0.ɵɵelementStart(0, "button",
|
|
91
|
-
i0.ɵɵlistener("click", function
|
|
92
|
-
i0.ɵɵelement(1, "i",
|
|
90
|
+
i0.ɵɵelementStart(0, "button", 55);
|
|
91
|
+
i0.ɵɵlistener("click", function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_28_For_2_Conditional_15_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r10); const node_r7 = i0.ɵɵnextContext().$implicit; const ctx_r3 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r3.deleteCategory(node_r7, $event)); });
|
|
92
|
+
i0.ɵɵelement(1, "i", 56);
|
|
93
93
|
i0.ɵɵelementEnd();
|
|
94
94
|
} }
|
|
95
|
-
function
|
|
95
|
+
function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_28_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
96
96
|
const _r6 = i0.ɵɵgetCurrentView();
|
|
97
|
-
i0.ɵɵelementStart(0, "div",
|
|
98
|
-
i0.ɵɵlistener("click", function
|
|
99
|
-
i0.ɵɵelementStart(1, "div",
|
|
100
|
-
i0.ɵɵ
|
|
101
|
-
i0.ɵɵ
|
|
97
|
+
i0.ɵɵelementStart(0, "div", 37);
|
|
98
|
+
i0.ɵɵlistener("click", function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_28_For_2_Template_div_click_0_listener() { const node_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r3 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r3.selectNode(node_r7)); });
|
|
99
|
+
i0.ɵɵelementStart(1, "div", 38);
|
|
100
|
+
i0.ɵɵconditionalCreate(2, CredentialsCategoriesResourceComponent_Conditional_2_Conditional_28_For_2_Conditional_2_Template, 2, 2, "button", 39);
|
|
101
|
+
i0.ɵɵconditionalCreate(3, CredentialsCategoriesResourceComponent_Conditional_2_Conditional_28_For_2_Conditional_3_Template, 1, 0, "span", 40);
|
|
102
|
+
i0.ɵɵelementStart(4, "div", 41);
|
|
102
103
|
i0.ɵɵelement(5, "i");
|
|
103
104
|
i0.ɵɵelementEnd();
|
|
104
|
-
i0.ɵɵelementStart(6, "div",
|
|
105
|
+
i0.ɵɵelementStart(6, "div", 42)(7, "div", 43);
|
|
105
106
|
i0.ɵɵtext(8);
|
|
106
107
|
i0.ɵɵelementEnd();
|
|
107
|
-
i0.ɵɵ
|
|
108
|
+
i0.ɵɵconditionalCreate(9, CredentialsCategoriesResourceComponent_Conditional_2_Conditional_28_For_2_Conditional_9_Template, 3, 6, "div", 44);
|
|
108
109
|
i0.ɵɵelementEnd();
|
|
109
|
-
i0.ɵɵelementStart(10, "div",
|
|
110
|
-
i0.ɵɵ
|
|
110
|
+
i0.ɵɵelementStart(10, "div", 45);
|
|
111
|
+
i0.ɵɵconditionalCreate(11, CredentialsCategoriesResourceComponent_Conditional_2_Conditional_28_For_2_Conditional_11_Template, 3, 1, "span", 46);
|
|
112
|
+
i0.ɵɵconditionalCreate(12, CredentialsCategoriesResourceComponent_Conditional_2_Conditional_28_For_2_Conditional_12_Template, 3, 1, "span", 47);
|
|
111
113
|
i0.ɵɵelementEnd();
|
|
112
|
-
i0.ɵɵelementStart(13, "div",
|
|
113
|
-
i0.ɵɵ
|
|
114
|
+
i0.ɵɵelementStart(13, "div", 48);
|
|
115
|
+
i0.ɵɵconditionalCreate(14, CredentialsCategoriesResourceComponent_Conditional_2_Conditional_28_For_2_Conditional_14_Template, 2, 0, "button", 49);
|
|
116
|
+
i0.ɵɵconditionalCreate(15, CredentialsCategoriesResourceComponent_Conditional_2_Conditional_28_For_2_Conditional_15_Template, 2, 0, "button", 50);
|
|
114
117
|
i0.ɵɵelementEnd()()();
|
|
115
118
|
} if (rf & 2) {
|
|
116
119
|
const node_r7 = ctx.$implicit;
|
|
117
|
-
const
|
|
120
|
+
const ɵ$index_72_r11 = ctx.$index;
|
|
118
121
|
const ctx_r3 = i0.ɵɵnextContext(3);
|
|
119
122
|
i0.ɵɵstyleProp("padding-left", 12 + node_r7.level * 20, "px");
|
|
120
123
|
i0.ɵɵclassProp("selected", (ctx_r3.selectedNode == null ? null : ctx_r3.selectedNode.category == null ? null : ctx_r3.selectedNode.category.ID) === node_r7.category.ID);
|
|
121
124
|
i0.ɵɵadvance(2);
|
|
122
|
-
i0.ɵɵ
|
|
125
|
+
i0.ɵɵconditional(node_r7.children.length > 0 ? 2 : -1);
|
|
123
126
|
i0.ɵɵadvance();
|
|
124
|
-
i0.ɵɵ
|
|
127
|
+
i0.ɵɵconditional(node_r7.children.length === 0 ? 3 : -1);
|
|
125
128
|
i0.ɵɵadvance();
|
|
126
|
-
i0.ɵɵstyleProp("background-color", ctx_r3.getCategoryColor(
|
|
129
|
+
i0.ɵɵstyleProp("background-color", ctx_r3.getCategoryColor(ɵ$index_72_r11) + "15")("color", ctx_r3.getCategoryColor(ɵ$index_72_r11));
|
|
127
130
|
i0.ɵɵadvance();
|
|
128
131
|
i0.ɵɵclassMap(node_r7.category.IconClass || "fa-solid fa-folder");
|
|
129
132
|
i0.ɵɵadvance(3);
|
|
130
133
|
i0.ɵɵtextInterpolate(node_r7.category.Name);
|
|
131
134
|
i0.ɵɵadvance();
|
|
132
|
-
i0.ɵɵ
|
|
135
|
+
i0.ɵɵconditional(node_r7.category.Description ? 9 : -1);
|
|
133
136
|
i0.ɵɵadvance(2);
|
|
134
|
-
i0.ɵɵ
|
|
137
|
+
i0.ɵɵconditional(node_r7.typeCount > 0 ? 11 : -1);
|
|
135
138
|
i0.ɵɵadvance();
|
|
136
|
-
i0.ɵɵ
|
|
139
|
+
i0.ɵɵconditional(node_r7.children.length > 0 ? 12 : -1);
|
|
137
140
|
i0.ɵɵadvance(2);
|
|
138
|
-
i0.ɵɵ
|
|
141
|
+
i0.ɵɵconditional(ctx_r3.UserCanUpdate ? 14 : -1);
|
|
139
142
|
i0.ɵɵadvance();
|
|
140
|
-
i0.ɵɵ
|
|
143
|
+
i0.ɵɵconditional(ctx_r3.UserCanDelete && node_r7.children.length === 0 && node_r7.typeCount === 0 ? 15 : -1);
|
|
141
144
|
} }
|
|
142
|
-
function
|
|
143
|
-
i0.ɵɵelementStart(0, "div",
|
|
144
|
-
i0.ɵɵ
|
|
145
|
+
function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_28_Template(rf, ctx) { if (rf & 1) {
|
|
146
|
+
i0.ɵɵelementStart(0, "div", 28);
|
|
147
|
+
i0.ɵɵrepeaterCreate(1, CredentialsCategoriesResourceComponent_Conditional_2_Conditional_28_For_2_Template, 16, 18, "div", 36, i0.ɵɵrepeaterTrackByIdentity);
|
|
145
148
|
i0.ɵɵelementEnd();
|
|
146
149
|
} if (rf & 2) {
|
|
147
150
|
const ctx_r3 = i0.ɵɵnextContext(2);
|
|
148
151
|
i0.ɵɵadvance();
|
|
149
|
-
i0.ɵɵ
|
|
152
|
+
i0.ɵɵrepeater(ctx_r3.getFlattenedNodes());
|
|
150
153
|
} }
|
|
151
|
-
function
|
|
154
|
+
function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_29_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
152
155
|
const _r12 = i0.ɵɵgetCurrentView();
|
|
153
156
|
i0.ɵɵelementStart(0, "p");
|
|
154
157
|
i0.ɵɵtext(1, " No categories match your search. ");
|
|
155
|
-
i0.ɵɵelementStart(2, "button",
|
|
156
|
-
i0.ɵɵlistener("click", function
|
|
158
|
+
i0.ɵɵelementStart(2, "button", 59);
|
|
159
|
+
i0.ɵɵlistener("click", function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_29_Conditional_5_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r12); const ctx_r3 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r3.clearSearch()); });
|
|
157
160
|
i0.ɵɵtext(3, "Clear search");
|
|
158
161
|
i0.ɵɵelementEnd()();
|
|
159
162
|
} }
|
|
160
|
-
function
|
|
163
|
+
function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_29_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
161
164
|
i0.ɵɵelementStart(0, "p");
|
|
162
165
|
i0.ɵɵtext(1, " Get started by creating your first category. ");
|
|
163
166
|
i0.ɵɵelementEnd();
|
|
164
167
|
} }
|
|
165
|
-
function
|
|
168
|
+
function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_29_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
166
169
|
const _r13 = i0.ɵɵgetCurrentView();
|
|
167
|
-
i0.ɵɵelementStart(0, "button",
|
|
168
|
-
i0.ɵɵlistener("click", function
|
|
169
|
-
i0.ɵɵelement(1, "i",
|
|
170
|
+
i0.ɵɵelementStart(0, "button", 32);
|
|
171
|
+
i0.ɵɵlistener("click", function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_29_Conditional_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r3 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r3.createNewCategory()); });
|
|
172
|
+
i0.ɵɵelement(1, "i", 33);
|
|
170
173
|
i0.ɵɵtext(2, " Create Category ");
|
|
171
174
|
i0.ɵɵelementEnd();
|
|
172
175
|
} }
|
|
173
|
-
function
|
|
174
|
-
i0.ɵɵelementStart(0, "div",
|
|
175
|
-
i0.ɵɵelement(2, "i",
|
|
176
|
+
function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_29_Template(rf, ctx) { if (rf & 1) {
|
|
177
|
+
i0.ɵɵelementStart(0, "div", 29)(1, "div", 57);
|
|
178
|
+
i0.ɵɵelement(2, "i", 58);
|
|
176
179
|
i0.ɵɵelementEnd();
|
|
177
180
|
i0.ɵɵelementStart(3, "h3");
|
|
178
181
|
i0.ɵɵtext(4, "No Categories");
|
|
179
182
|
i0.ɵɵelementEnd();
|
|
180
|
-
i0.ɵɵ
|
|
183
|
+
i0.ɵɵconditionalCreate(5, CredentialsCategoriesResourceComponent_Conditional_2_Conditional_29_Conditional_5_Template, 4, 0, "p");
|
|
184
|
+
i0.ɵɵconditionalCreate(6, CredentialsCategoriesResourceComponent_Conditional_2_Conditional_29_Conditional_6_Template, 2, 0, "p");
|
|
185
|
+
i0.ɵɵconditionalCreate(7, CredentialsCategoriesResourceComponent_Conditional_2_Conditional_29_Conditional_7_Template, 3, 0, "button", 12);
|
|
181
186
|
i0.ɵɵelementEnd();
|
|
182
187
|
} if (rf & 2) {
|
|
183
188
|
const ctx_r3 = i0.ɵɵnextContext(2);
|
|
184
189
|
i0.ɵɵadvance(5);
|
|
185
|
-
i0.ɵɵ
|
|
190
|
+
i0.ɵɵconditional(ctx_r3.searchText ? 5 : -1);
|
|
186
191
|
i0.ɵɵadvance();
|
|
187
|
-
i0.ɵɵ
|
|
192
|
+
i0.ɵɵconditional(!ctx_r3.searchText ? 6 : -1);
|
|
188
193
|
i0.ɵɵadvance();
|
|
189
|
-
i0.ɵɵ
|
|
194
|
+
i0.ɵɵconditional(ctx_r3.UserCanCreate && !ctx_r3.searchText ? 7 : -1);
|
|
190
195
|
} }
|
|
191
|
-
function
|
|
192
|
-
i0.ɵɵelementStart(0, "span",
|
|
196
|
+
function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_30_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
197
|
+
i0.ɵɵelementStart(0, "span", 63);
|
|
193
198
|
i0.ɵɵtext(1);
|
|
194
199
|
i0.ɵɵelementEnd();
|
|
195
200
|
} if (rf & 2) {
|
|
@@ -197,19 +202,19 @@ function CredentialsCategoriesResourceComponent_ng_container_2_div_31_span_7_Tem
|
|
|
197
202
|
i0.ɵɵadvance();
|
|
198
203
|
i0.ɵɵtextInterpolate1(" Level ", ctx_r3.selectedNode.level + 1, " ");
|
|
199
204
|
} }
|
|
200
|
-
function
|
|
205
|
+
function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_30_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
201
206
|
const _r15 = i0.ɵɵgetCurrentView();
|
|
202
|
-
i0.ɵɵelementStart(0, "button",
|
|
203
|
-
i0.ɵɵlistener("click", function
|
|
204
|
-
i0.ɵɵelement(1, "i",
|
|
207
|
+
i0.ɵɵelementStart(0, "button", 53);
|
|
208
|
+
i0.ɵɵlistener("click", function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_30_Conditional_9_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r15); const ctx_r3 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r3.editCategory(ctx_r3.selectedNode)); });
|
|
209
|
+
i0.ɵɵelement(1, "i", 54);
|
|
205
210
|
i0.ɵɵelementEnd();
|
|
206
211
|
} }
|
|
207
|
-
function
|
|
208
|
-
i0.ɵɵelementStart(0, "div",
|
|
209
|
-
i0.ɵɵelement(2, "i",
|
|
212
|
+
function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_30_Conditional_24_Template(rf, ctx) { if (rf & 1) {
|
|
213
|
+
i0.ɵɵelementStart(0, "div", 71)(1, "h3");
|
|
214
|
+
i0.ɵɵelement(2, "i", 76);
|
|
210
215
|
i0.ɵɵtext(3, " Description ");
|
|
211
216
|
i0.ɵɵelementEnd();
|
|
212
|
-
i0.ɵɵelementStart(4, "p",
|
|
217
|
+
i0.ɵɵelementStart(4, "p", 77);
|
|
213
218
|
i0.ɵɵtext(5);
|
|
214
219
|
i0.ɵɵelementEnd()();
|
|
215
220
|
} if (rf & 2) {
|
|
@@ -217,8 +222,8 @@ function CredentialsCategoriesResourceComponent_ng_container_2_div_31_div_24_Tem
|
|
|
217
222
|
i0.ɵɵadvance(5);
|
|
218
223
|
i0.ɵɵtextInterpolate(ctx_r3.selectedNode.category.Description);
|
|
219
224
|
} }
|
|
220
|
-
function
|
|
221
|
-
i0.ɵɵelementStart(0, "div",
|
|
225
|
+
function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_30_Conditional_25_For_6_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
226
|
+
i0.ɵɵelementStart(0, "div", 83);
|
|
222
227
|
i0.ɵɵtext(1);
|
|
223
228
|
i0.ɵɵpipe(2, "slice");
|
|
224
229
|
i0.ɵɵelementEnd();
|
|
@@ -227,14 +232,14 @@ function CredentialsCategoriesResourceComponent_ng_container_2_div_31_div_25_div
|
|
|
227
232
|
i0.ɵɵadvance();
|
|
228
233
|
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind3(2, 1, type_r16.Description, 0, 60));
|
|
229
234
|
} }
|
|
230
|
-
function
|
|
231
|
-
i0.ɵɵelementStart(0, "div",
|
|
235
|
+
function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_30_Conditional_25_For_6_Template(rf, ctx) { if (rf & 1) {
|
|
236
|
+
i0.ɵɵelementStart(0, "div", 79)(1, "div", 80);
|
|
232
237
|
i0.ɵɵelement(2, "i");
|
|
233
238
|
i0.ɵɵelementEnd();
|
|
234
|
-
i0.ɵɵelementStart(3, "div",
|
|
239
|
+
i0.ɵɵelementStart(3, "div", 81)(4, "div", 82);
|
|
235
240
|
i0.ɵɵtext(5);
|
|
236
241
|
i0.ɵɵelementEnd();
|
|
237
|
-
i0.ɵɵ
|
|
242
|
+
i0.ɵɵconditionalCreate(6, CredentialsCategoriesResourceComponent_Conditional_2_Conditional_30_Conditional_25_For_6_Conditional_6_Template, 3, 5, "div", 83);
|
|
238
243
|
i0.ɵɵelementEnd()();
|
|
239
244
|
} if (rf & 2) {
|
|
240
245
|
const type_r16 = ctx.$implicit;
|
|
@@ -243,23 +248,23 @@ function CredentialsCategoriesResourceComponent_ng_container_2_div_31_div_25_div
|
|
|
243
248
|
i0.ɵɵadvance(3);
|
|
244
249
|
i0.ɵɵtextInterpolate(type_r16.Name);
|
|
245
250
|
i0.ɵɵadvance();
|
|
246
|
-
i0.ɵɵ
|
|
251
|
+
i0.ɵɵconditional(type_r16.Description ? 6 : -1);
|
|
247
252
|
} }
|
|
248
|
-
function
|
|
249
|
-
i0.ɵɵelementStart(0, "div",
|
|
250
|
-
i0.ɵɵelement(2, "i",
|
|
253
|
+
function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_30_Conditional_25_Template(rf, ctx) { if (rf & 1) {
|
|
254
|
+
i0.ɵɵelementStart(0, "div", 72)(1, "h3");
|
|
255
|
+
i0.ɵɵelement(2, "i", 10);
|
|
251
256
|
i0.ɵɵtext(3, " Credential Types ");
|
|
252
257
|
i0.ɵɵelementEnd();
|
|
253
|
-
i0.ɵɵelementStart(4, "div",
|
|
254
|
-
i0.ɵɵ
|
|
258
|
+
i0.ɵɵelementStart(4, "div", 78);
|
|
259
|
+
i0.ɵɵrepeaterCreate(5, CredentialsCategoriesResourceComponent_Conditional_2_Conditional_30_Conditional_25_For_6_Template, 7, 4, "div", 79, i0.ɵɵrepeaterTrackByIdentity);
|
|
255
260
|
i0.ɵɵelementEnd()();
|
|
256
261
|
} if (rf & 2) {
|
|
257
262
|
const ctx_r3 = i0.ɵɵnextContext(3);
|
|
258
263
|
i0.ɵɵadvance(5);
|
|
259
|
-
i0.ɵɵ
|
|
264
|
+
i0.ɵɵrepeater(ctx_r3.getTypesForCategory(ctx_r3.selectedNode.category.Name));
|
|
260
265
|
} }
|
|
261
|
-
function
|
|
262
|
-
i0.ɵɵelementStart(0, "span",
|
|
266
|
+
function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_30_Conditional_26_For_6_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
267
|
+
i0.ɵɵelementStart(0, "span", 87);
|
|
263
268
|
i0.ɵɵtext(1);
|
|
264
269
|
i0.ɵɵelementEnd();
|
|
265
270
|
} if (rf & 2) {
|
|
@@ -267,15 +272,15 @@ function CredentialsCategoriesResourceComponent_ng_container_2_div_31_div_26_div
|
|
|
267
272
|
i0.ɵɵadvance();
|
|
268
273
|
i0.ɵɵtextInterpolate1("", child_r18.typeCount, " types");
|
|
269
274
|
} }
|
|
270
|
-
function
|
|
275
|
+
function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_30_Conditional_26_For_6_Template(rf, ctx) { if (rf & 1) {
|
|
271
276
|
const _r17 = i0.ɵɵgetCurrentView();
|
|
272
|
-
i0.ɵɵelementStart(0, "div",
|
|
273
|
-
i0.ɵɵlistener("click", function
|
|
277
|
+
i0.ɵɵelementStart(0, "div", 86);
|
|
278
|
+
i0.ɵɵlistener("click", function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_30_Conditional_26_For_6_Template_div_click_0_listener() { const child_r18 = i0.ɵɵrestoreView(_r17).$implicit; const ctx_r3 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r3.selectNode(child_r18)); });
|
|
274
279
|
i0.ɵɵelement(1, "i");
|
|
275
280
|
i0.ɵɵelementStart(2, "span");
|
|
276
281
|
i0.ɵɵtext(3);
|
|
277
282
|
i0.ɵɵelementEnd();
|
|
278
|
-
i0.ɵɵ
|
|
283
|
+
i0.ɵɵconditionalCreate(4, CredentialsCategoriesResourceComponent_Conditional_2_Conditional_30_Conditional_26_For_6_Conditional_4_Template, 2, 1, "span", 87);
|
|
279
284
|
i0.ɵɵelementEnd();
|
|
280
285
|
} if (rf & 2) {
|
|
281
286
|
const child_r18 = ctx.$implicit;
|
|
@@ -284,63 +289,65 @@ function CredentialsCategoriesResourceComponent_ng_container_2_div_31_div_26_div
|
|
|
284
289
|
i0.ɵɵadvance(2);
|
|
285
290
|
i0.ɵɵtextInterpolate(child_r18.category.Name);
|
|
286
291
|
i0.ɵɵadvance();
|
|
287
|
-
i0.ɵɵ
|
|
292
|
+
i0.ɵɵconditional(child_r18.typeCount > 0 ? 4 : -1);
|
|
288
293
|
} }
|
|
289
|
-
function
|
|
290
|
-
i0.ɵɵelementStart(0, "div",
|
|
291
|
-
i0.ɵɵelement(2, "i",
|
|
294
|
+
function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_30_Conditional_26_Template(rf, ctx) { if (rf & 1) {
|
|
295
|
+
i0.ɵɵelementStart(0, "div", 73)(1, "h3");
|
|
296
|
+
i0.ɵɵelement(2, "i", 9);
|
|
292
297
|
i0.ɵɵtext(3, " Subcategories ");
|
|
293
298
|
i0.ɵɵelementEnd();
|
|
294
|
-
i0.ɵɵelementStart(4, "div",
|
|
295
|
-
i0.ɵɵ
|
|
299
|
+
i0.ɵɵelementStart(4, "div", 84);
|
|
300
|
+
i0.ɵɵrepeaterCreate(5, CredentialsCategoriesResourceComponent_Conditional_2_Conditional_30_Conditional_26_For_6_Template, 5, 4, "div", 85, i0.ɵɵrepeaterTrackByIdentity);
|
|
296
301
|
i0.ɵɵelementEnd()();
|
|
297
302
|
} if (rf & 2) {
|
|
298
303
|
const ctx_r3 = i0.ɵɵnextContext(3);
|
|
299
304
|
i0.ɵɵadvance(5);
|
|
300
|
-
i0.ɵɵ
|
|
305
|
+
i0.ɵɵrepeater(ctx_r3.selectedNode.children);
|
|
301
306
|
} }
|
|
302
|
-
function
|
|
307
|
+
function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_30_Conditional_28_Template(rf, ctx) { if (rf & 1) {
|
|
303
308
|
const _r19 = i0.ɵɵgetCurrentView();
|
|
304
|
-
i0.ɵɵelementStart(0, "button",
|
|
305
|
-
i0.ɵɵlistener("click", function
|
|
306
|
-
i0.ɵɵelement(1, "i",
|
|
309
|
+
i0.ɵɵelementStart(0, "button", 88);
|
|
310
|
+
i0.ɵɵlistener("click", function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_30_Conditional_28_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r19); const ctx_r3 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r3.viewTypesForCategory(ctx_r3.selectedNode.category.Name)); });
|
|
311
|
+
i0.ɵɵelement(1, "i", 10);
|
|
307
312
|
i0.ɵɵtext(2, " View Types ");
|
|
308
313
|
i0.ɵɵelementEnd();
|
|
309
314
|
} }
|
|
310
|
-
function
|
|
315
|
+
function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_30_Template(rf, ctx) { if (rf & 1) {
|
|
311
316
|
const _r14 = i0.ɵɵgetCurrentView();
|
|
312
|
-
i0.ɵɵelementStart(0, "div",
|
|
317
|
+
i0.ɵɵelementStart(0, "div", 30)(1, "div", 60)(2, "div", 61);
|
|
313
318
|
i0.ɵɵelement(3, "i");
|
|
314
319
|
i0.ɵɵelementEnd();
|
|
315
|
-
i0.ɵɵelementStart(4, "div",
|
|
320
|
+
i0.ɵɵelementStart(4, "div", 62)(5, "h2");
|
|
316
321
|
i0.ɵɵtext(6);
|
|
317
322
|
i0.ɵɵelementEnd();
|
|
318
|
-
i0.ɵɵ
|
|
323
|
+
i0.ɵɵconditionalCreate(7, CredentialsCategoriesResourceComponent_Conditional_2_Conditional_30_Conditional_7_Template, 2, 1, "span", 63);
|
|
319
324
|
i0.ɵɵelementEnd();
|
|
320
|
-
i0.ɵɵelementStart(8, "div",
|
|
321
|
-
i0.ɵɵ
|
|
322
|
-
i0.ɵɵelementStart(10, "button",
|
|
323
|
-
i0.ɵɵlistener("click", function
|
|
324
|
-
i0.ɵɵelement(11, "i",
|
|
325
|
+
i0.ɵɵelementStart(8, "div", 64);
|
|
326
|
+
i0.ɵɵconditionalCreate(9, CredentialsCategoriesResourceComponent_Conditional_2_Conditional_30_Conditional_9_Template, 2, 0, "button", 49);
|
|
327
|
+
i0.ɵɵelementStart(10, "button", 65);
|
|
328
|
+
i0.ɵɵlistener("click", function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_30_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r14); const ctx_r3 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r3.selectedNode = null); });
|
|
329
|
+
i0.ɵɵelement(11, "i", 35);
|
|
325
330
|
i0.ɵɵelementEnd()()();
|
|
326
|
-
i0.ɵɵelementStart(12, "div",
|
|
331
|
+
i0.ɵɵelementStart(12, "div", 66)(13, "div", 67)(14, "div", 68)(15, "div", 69);
|
|
327
332
|
i0.ɵɵtext(16);
|
|
328
333
|
i0.ɵɵelementEnd();
|
|
329
|
-
i0.ɵɵelementStart(17, "div",
|
|
334
|
+
i0.ɵɵelementStart(17, "div", 70);
|
|
330
335
|
i0.ɵɵtext(18, "Credential Types");
|
|
331
336
|
i0.ɵɵelementEnd()();
|
|
332
|
-
i0.ɵɵelementStart(19, "div",
|
|
337
|
+
i0.ɵɵelementStart(19, "div", 68)(20, "div", 69);
|
|
333
338
|
i0.ɵɵtext(21);
|
|
334
339
|
i0.ɵɵelementEnd();
|
|
335
|
-
i0.ɵɵelementStart(22, "div",
|
|
340
|
+
i0.ɵɵelementStart(22, "div", 70);
|
|
336
341
|
i0.ɵɵtext(23, "Subcategories");
|
|
337
342
|
i0.ɵɵelementEnd()()();
|
|
338
|
-
i0.ɵɵ
|
|
339
|
-
i0.ɵɵ
|
|
340
|
-
i0.ɵɵ
|
|
341
|
-
i0.ɵɵelementStart(
|
|
342
|
-
i0.ɵɵ
|
|
343
|
-
i0.ɵɵ
|
|
343
|
+
i0.ɵɵconditionalCreate(24, CredentialsCategoriesResourceComponent_Conditional_2_Conditional_30_Conditional_24_Template, 6, 1, "div", 71);
|
|
344
|
+
i0.ɵɵconditionalCreate(25, CredentialsCategoriesResourceComponent_Conditional_2_Conditional_30_Conditional_25_Template, 7, 0, "div", 72);
|
|
345
|
+
i0.ɵɵconditionalCreate(26, CredentialsCategoriesResourceComponent_Conditional_2_Conditional_30_Conditional_26_Template, 7, 0, "div", 73);
|
|
346
|
+
i0.ɵɵelementStart(27, "div", 74);
|
|
347
|
+
i0.ɵɵconditionalCreate(28, CredentialsCategoriesResourceComponent_Conditional_2_Conditional_30_Conditional_28_Template, 3, 0, "button", 75);
|
|
348
|
+
i0.ɵɵelementStart(29, "button", 32);
|
|
349
|
+
i0.ɵɵlistener("click", function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_30_Template_button_click_29_listener() { i0.ɵɵrestoreView(_r14); const ctx_r3 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r3.createCredentialWithCategory(ctx_r3.selectedNode.category.ID)); });
|
|
350
|
+
i0.ɵɵelement(30, "i", 33);
|
|
344
351
|
i0.ɵɵtext(31, " Create Credential ");
|
|
345
352
|
i0.ɵɵelementEnd()()()();
|
|
346
353
|
} if (rf & 2) {
|
|
@@ -352,25 +359,25 @@ function CredentialsCategoriesResourceComponent_ng_container_2_div_31_Template(r
|
|
|
352
359
|
i0.ɵɵadvance(3);
|
|
353
360
|
i0.ɵɵtextInterpolate(ctx_r3.selectedNode.category.Name);
|
|
354
361
|
i0.ɵɵadvance();
|
|
355
|
-
i0.ɵɵ
|
|
362
|
+
i0.ɵɵconditional(ctx_r3.selectedNode.level > 0 ? 7 : -1);
|
|
356
363
|
i0.ɵɵadvance(2);
|
|
357
|
-
i0.ɵɵ
|
|
364
|
+
i0.ɵɵconditional(ctx_r3.UserCanUpdate ? 9 : -1);
|
|
358
365
|
i0.ɵɵadvance(7);
|
|
359
366
|
i0.ɵɵtextInterpolate(ctx_r3.selectedNode.typeCount);
|
|
360
367
|
i0.ɵɵadvance(5);
|
|
361
368
|
i0.ɵɵtextInterpolate(ctx_r3.selectedNode.children.length);
|
|
362
369
|
i0.ɵɵadvance(3);
|
|
363
|
-
i0.ɵɵ
|
|
370
|
+
i0.ɵɵconditional(ctx_r3.selectedNode.category.Description ? 24 : -1);
|
|
364
371
|
i0.ɵɵadvance();
|
|
365
|
-
i0.ɵɵ
|
|
372
|
+
i0.ɵɵconditional(ctx_r3.selectedNode.typeCount > 0 ? 25 : -1);
|
|
366
373
|
i0.ɵɵadvance();
|
|
367
|
-
i0.ɵɵ
|
|
374
|
+
i0.ɵɵconditional(ctx_r3.selectedNode.children.length > 0 ? 26 : -1);
|
|
368
375
|
i0.ɵɵadvance(2);
|
|
369
|
-
i0.ɵɵ
|
|
376
|
+
i0.ɵɵconditional(ctx_r3.selectedNode.typeCount > 0 ? 28 : -1);
|
|
370
377
|
} }
|
|
371
|
-
function
|
|
372
|
-
i0.ɵɵelementStart(0, "div",
|
|
373
|
-
i0.ɵɵelement(2, "i",
|
|
378
|
+
function CredentialsCategoriesResourceComponent_Conditional_2_Conditional_31_Template(rf, ctx) { if (rf & 1) {
|
|
379
|
+
i0.ɵɵelementStart(0, "div", 31)(1, "div", 89);
|
|
380
|
+
i0.ɵɵelement(2, "i", 90);
|
|
374
381
|
i0.ɵɵelementEnd();
|
|
375
382
|
i0.ɵɵelementStart(3, "h3");
|
|
376
383
|
i0.ɵɵtext(4, "Select a Category");
|
|
@@ -379,72 +386,69 @@ function CredentialsCategoriesResourceComponent_ng_container_2_div_32_Template(r
|
|
|
379
386
|
i0.ɵɵtext(6, "Click on a category to view its details and credential types");
|
|
380
387
|
i0.ɵɵelementEnd()();
|
|
381
388
|
} }
|
|
382
|
-
function
|
|
389
|
+
function CredentialsCategoriesResourceComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
383
390
|
const _r2 = i0.ɵɵgetCurrentView();
|
|
384
|
-
i0.ɵɵ
|
|
385
|
-
i0.ɵɵ
|
|
386
|
-
i0.ɵɵtext(4, "Categories");
|
|
391
|
+
i0.ɵɵelementStart(0, "div", 4)(1, "div", 5)(2, "h2", 6);
|
|
392
|
+
i0.ɵɵtext(3, "Categories");
|
|
387
393
|
i0.ɵɵelementEnd();
|
|
388
|
-
i0.ɵɵelementStart(
|
|
389
|
-
i0.ɵɵelement(
|
|
390
|
-
i0.ɵɵtext(
|
|
394
|
+
i0.ɵɵelementStart(4, "div", 7)(5, "span", 8);
|
|
395
|
+
i0.ɵɵelement(6, "i", 9);
|
|
396
|
+
i0.ɵɵtext(7);
|
|
391
397
|
i0.ɵɵelementEnd();
|
|
392
|
-
i0.ɵɵelementStart(
|
|
393
|
-
i0.ɵɵelement(
|
|
394
|
-
i0.ɵɵtext(
|
|
398
|
+
i0.ɵɵelementStart(8, "span", 8);
|
|
399
|
+
i0.ɵɵelement(9, "i", 10);
|
|
400
|
+
i0.ɵɵtext(10);
|
|
395
401
|
i0.ɵɵelementEnd()()();
|
|
396
|
-
i0.ɵɵelementStart(
|
|
397
|
-
i0.ɵɵ
|
|
402
|
+
i0.ɵɵelementStart(11, "div", 11);
|
|
403
|
+
i0.ɵɵconditionalCreate(12, CredentialsCategoriesResourceComponent_Conditional_2_Conditional_12_Template, 4, 0, "button", 12);
|
|
398
404
|
i0.ɵɵelementEnd()();
|
|
399
|
-
i0.ɵɵelementStart(
|
|
400
|
-
i0.ɵɵelement(
|
|
401
|
-
i0.ɵɵelementStart(
|
|
402
|
-
i0.ɵɵlistener("input", function
|
|
405
|
+
i0.ɵɵelementStart(13, "div", 13)(14, "div", 14)(15, "div", 15);
|
|
406
|
+
i0.ɵɵelement(16, "i", 16);
|
|
407
|
+
i0.ɵɵelementStart(17, "input", 17);
|
|
408
|
+
i0.ɵɵlistener("input", function CredentialsCategoriesResourceComponent_Conditional_2_Template_input_input_17_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onSearchChange($event.target.value)); });
|
|
403
409
|
i0.ɵɵelementEnd();
|
|
404
|
-
i0.ɵɵ
|
|
410
|
+
i0.ɵɵconditionalCreate(18, CredentialsCategoriesResourceComponent_Conditional_2_Conditional_18_Template, 2, 0, "button", 18);
|
|
405
411
|
i0.ɵɵelementEnd()();
|
|
406
|
-
i0.ɵɵelementStart(
|
|
407
|
-
i0.ɵɵlistener("click", function
|
|
408
|
-
i0.ɵɵelement(
|
|
412
|
+
i0.ɵɵelementStart(19, "div", 19)(20, "button", 20);
|
|
413
|
+
i0.ɵɵlistener("click", function CredentialsCategoriesResourceComponent_Conditional_2_Template_button_click_20_listener() { i0.ɵɵrestoreView(_r2); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.expandAll()); });
|
|
414
|
+
i0.ɵɵelement(21, "i", 21);
|
|
409
415
|
i0.ɵɵelementEnd();
|
|
410
|
-
i0.ɵɵelementStart(
|
|
411
|
-
i0.ɵɵlistener("click", function
|
|
412
|
-
i0.ɵɵelement(
|
|
416
|
+
i0.ɵɵelementStart(22, "button", 22);
|
|
417
|
+
i0.ɵɵlistener("click", function CredentialsCategoriesResourceComponent_Conditional_2_Template_button_click_22_listener() { i0.ɵɵrestoreView(_r2); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.collapseAll()); });
|
|
418
|
+
i0.ɵɵelement(23, "i", 23);
|
|
413
419
|
i0.ɵɵelementEnd();
|
|
414
|
-
i0.ɵɵelementStart(
|
|
415
|
-
i0.ɵɵlistener("click", function
|
|
416
|
-
i0.ɵɵelement(
|
|
420
|
+
i0.ɵɵelementStart(24, "button", 24);
|
|
421
|
+
i0.ɵɵlistener("click", function CredentialsCategoriesResourceComponent_Conditional_2_Template_button_click_24_listener() { i0.ɵɵrestoreView(_r2); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.refresh()); });
|
|
422
|
+
i0.ɵɵelement(25, "i", 25);
|
|
417
423
|
i0.ɵɵelementEnd()()();
|
|
418
|
-
i0.ɵɵelementStart(
|
|
419
|
-
i0.ɵɵ
|
|
424
|
+
i0.ɵɵelementStart(26, "div", 26)(27, "div", 27);
|
|
425
|
+
i0.ɵɵconditionalCreate(28, CredentialsCategoriesResourceComponent_Conditional_2_Conditional_28_Template, 3, 0, "div", 28);
|
|
426
|
+
i0.ɵɵconditionalCreate(29, CredentialsCategoriesResourceComponent_Conditional_2_Conditional_29_Template, 8, 3, "div", 29);
|
|
420
427
|
i0.ɵɵelementEnd();
|
|
421
|
-
i0.ɵɵ
|
|
428
|
+
i0.ɵɵconditionalCreate(30, CredentialsCategoriesResourceComponent_Conditional_2_Conditional_30_Template, 32, 15, "div", 30);
|
|
429
|
+
i0.ɵɵconditionalCreate(31, CredentialsCategoriesResourceComponent_Conditional_2_Conditional_31_Template, 7, 0, "div", 31);
|
|
422
430
|
i0.ɵɵelementEnd();
|
|
423
|
-
i0.ɵɵelementContainerEnd();
|
|
424
431
|
} if (rf & 2) {
|
|
425
432
|
const ctx_r3 = i0.ɵɵnextContext();
|
|
426
|
-
i0.ɵɵadvance(
|
|
433
|
+
i0.ɵɵadvance(7);
|
|
427
434
|
i0.ɵɵtextInterpolate1(" ", ctx_r3.categories.length, " categories ");
|
|
428
435
|
i0.ɵɵadvance(3);
|
|
429
436
|
i0.ɵɵtextInterpolate1(" ", ctx_r3.getTotalTypeCount(), " types ");
|
|
430
437
|
i0.ɵɵadvance(2);
|
|
431
|
-
i0.ɵɵ
|
|
438
|
+
i0.ɵɵconditional(ctx_r3.UserCanCreate ? 12 : -1);
|
|
432
439
|
i0.ɵɵadvance(5);
|
|
433
440
|
i0.ɵɵproperty("value", ctx_r3.searchText);
|
|
434
441
|
i0.ɵɵadvance();
|
|
435
|
-
i0.ɵɵ
|
|
442
|
+
i0.ɵɵconditional(ctx_r3.searchText ? 18 : -1);
|
|
436
443
|
i0.ɵɵadvance(10);
|
|
437
|
-
i0.ɵɵ
|
|
444
|
+
i0.ɵɵconditional(ctx_r3.categoryTree.length > 0 ? 28 : -1);
|
|
438
445
|
i0.ɵɵadvance();
|
|
439
|
-
i0.ɵɵ
|
|
446
|
+
i0.ɵɵconditional(ctx_r3.categoryTree.length === 0 ? 29 : -1);
|
|
440
447
|
i0.ɵɵadvance();
|
|
441
|
-
i0.ɵɵ
|
|
448
|
+
i0.ɵɵconditional(ctx_r3.selectedNode ? 30 : -1);
|
|
442
449
|
i0.ɵɵadvance();
|
|
443
|
-
i0.ɵɵ
|
|
450
|
+
i0.ɵɵconditional(!ctx_r3.selectedNode && ctx_r3.categoryTree.length > 0 ? 31 : -1);
|
|
444
451
|
} }
|
|
445
|
-
export function LoadCredentialsCategoriesResource() {
|
|
446
|
-
// Prevents tree-shaking
|
|
447
|
-
}
|
|
448
452
|
let CredentialsCategoriesResourceComponent = class CredentialsCategoriesResourceComponent extends BaseResourceComponent {
|
|
449
453
|
cdr;
|
|
450
454
|
navigationService;
|
|
@@ -786,20 +790,21 @@ let CredentialsCategoriesResourceComponent = class CredentialsCategoriesResource
|
|
|
786
790
|
} if (rf & 2) {
|
|
787
791
|
let _t;
|
|
788
792
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.categoryEditPanel = _t.first);
|
|
789
|
-
} }, features: [i0.ɵɵInheritDefinitionFeature], decls: 5, vars: 2, consts: [["categoryEditPanel", ""], [1, "categories-container"], ["text", "Loading categories..."
|
|
793
|
+
} }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 5, vars: 2, consts: [["categoryEditPanel", ""], [1, "categories-container"], ["text", "Loading categories..."], [3, "saved", "deleted"], [1, "categories-header"], [1, "header-info"], [1, "categories-title"], [1, "header-stats"], [1, "stat-item"], [1, "fa-solid", "fa-folder-tree"], [1, "fa-solid", "fa-shapes"], [1, "header-actions"], [1, "btn-primary"], [1, "toolbar"], [1, "toolbar-left"], [1, "search-container"], [1, "fa-solid", "fa-search"], ["type", "text", "placeholder", "Search categories...", 3, "input", "value"], [1, "search-clear"], [1, "toolbar-right"], ["title", "Expand All", 1, "btn-text", 3, "click"], [1, "fa-solid", "fa-expand"], ["title", "Collapse All", 1, "btn-text", 3, "click"], [1, "fa-solid", "fa-compress"], ["title", "Refresh", 1, "btn-icon", 3, "click"], [1, "fa-solid", "fa-refresh"], [1, "categories-layout"], [1, "tree-panel"], [1, "tree-container"], [1, "empty-state"], [1, "detail-panel"], [1, "no-selection"], [1, "btn-primary", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "search-clear", 3, "click"], [1, "fa-solid", "fa-times"], [1, "tree-node", 3, "selected", "padding-left"], [1, "tree-node", 3, "click"], [1, "node-content"], [1, "expand-btn"], [1, "expand-placeholder"], [1, "node-icon"], [1, "node-info"], [1, "node-name"], [1, "node-description"], [1, "node-badges"], [1, "badge", "types"], [1, "badge", "children"], [1, "node-actions"], ["title", "Edit", 1, "action-btn"], ["title", "Delete", 1, "action-btn", "danger"], [1, "expand-btn", 3, "click"], [1, "fa-solid", "fa-folder"], ["title", "Edit", 1, "action-btn", 3, "click"], [1, "fa-solid", "fa-pen"], ["title", "Delete", 1, "action-btn", "danger", 3, "click"], [1, "fa-solid", "fa-trash"], [1, "empty-icon"], [1, "fa-solid", "fa-folder-open"], [1, "btn-link", 3, "click"], [1, "detail-header"], [1, "detail-icon"], [1, "detail-title"], [1, "level-badge"], [1, "detail-actions"], [1, "close-btn", 3, "click"], [1, "detail-body"], [1, "detail-stats"], [1, "detail-stat"], [1, "stat-value"], [1, "stat-label"], [1, "description-section"], [1, "types-section"], [1, "subcategories-section"], [1, "detail-quick-actions"], [1, "btn-secondary"], [1, "fa-solid", "fa-align-left"], [1, "description"], [1, "type-list"], [1, "type-item"], [1, "type-icon"], [1, "type-info"], [1, "type-name"], [1, "type-desc"], [1, "subcategory-list"], [1, "subcategory-item"], [1, "subcategory-item", 3, "click"], [1, "sub-type-count"], [1, "btn-secondary", 3, "click"], [1, "no-selection-icon"], [1, "fa-solid", "fa-hand-pointer"]], template: function CredentialsCategoriesResourceComponent_Template(rf, ctx) { if (rf & 1) {
|
|
790
794
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
791
795
|
i0.ɵɵelementStart(0, "div", 1);
|
|
792
|
-
i0.ɵɵ
|
|
796
|
+
i0.ɵɵconditionalCreate(1, CredentialsCategoriesResourceComponent_Conditional_1_Template, 1, 0, "mj-loading", 2);
|
|
797
|
+
i0.ɵɵconditionalCreate(2, CredentialsCategoriesResourceComponent_Conditional_2_Template, 32, 9);
|
|
793
798
|
i0.ɵɵelementEnd();
|
|
794
|
-
i0.ɵɵelementStart(3, "mj-credential-category-edit-panel",
|
|
799
|
+
i0.ɵɵelementStart(3, "mj-credential-category-edit-panel", 3, 0);
|
|
795
800
|
i0.ɵɵlistener("saved", function CredentialsCategoriesResourceComponent_Template_mj_credential_category_edit_panel_saved_3_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onCategorySaved($event)); })("deleted", function CredentialsCategoriesResourceComponent_Template_mj_credential_category_edit_panel_deleted_3_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onCategoryDeleted($event)); });
|
|
796
801
|
i0.ɵɵelementEnd();
|
|
797
802
|
} if (rf & 2) {
|
|
798
803
|
i0.ɵɵadvance();
|
|
799
|
-
i0.ɵɵ
|
|
804
|
+
i0.ɵɵconditional(ctx.isLoading ? 1 : -1);
|
|
800
805
|
i0.ɵɵadvance();
|
|
801
|
-
i0.ɵɵ
|
|
802
|
-
} }, dependencies: [i2.NgForOf, i2.NgIf, i3.LoadingComponent, i4.CredentialCategoryEditPanelComponent, i2.SlicePipe], styles: [".categories-container[_ngcontent-%COMP%] {\n padding: 24px;\n height: 100%;\n overflow-y: auto;\n background: var(--background-secondary, #f8fafc);\n}\n\n\n\n.categories-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n margin-bottom: 20px;\n}\n\n.header-info[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.categories-title[_ngcontent-%COMP%] {\n font-size: 24px;\n font-weight: 700;\n color: var(--text-primary, #1f2937);\n margin: 0;\n}\n\n.header-stats[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n}\n\n.stat-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n}\n\n.stat-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--accent-color, #6366f1);\n}\n\n.header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n}\n\n\n\n.btn-primary[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 18px;\n background: linear-gradient(135deg, #6366f1 0%, #4f46e5 100%);\n color: white;\n border: none;\n border-radius: 8px;\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.2s ease;\n box-shadow: 0 2px 8px rgba(99, 102, 241, 0.3);\n}\n\n.btn-primary[_ngcontent-%COMP%]:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 12px rgba(99, 102, 241, 0.4);\n}\n\n.btn-primary[_ngcontent-%COMP%]:active {\n transform: translateY(0);\n}\n\n\n\n.toolbar[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 16px;\n background: var(--card-background, #ffffff);\n border-radius: 12px;\n margin-bottom: 20px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);\n}\n\n.toolbar-left[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n}\n\n.toolbar-right[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n\n\n.search-container[_ngcontent-%COMP%] {\n position: relative;\n flex: 1;\n max-width: 320px;\n}\n\n.search-container[_ngcontent-%COMP%] i.fa-search[_ngcontent-%COMP%] {\n position: absolute;\n left: 12px;\n top: 50%;\n transform: translateY(-50%);\n color: var(--text-secondary, #9ca3af);\n font-size: 13px;\n}\n\n.search-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n width: 100%;\n padding: 8px 36px 8px 36px;\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 8px;\n font-size: 13px;\n background: var(--input-background, #f9fafb);\n transition: all 0.2s ease;\n}\n\n.search-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--accent-color, #6366f1);\n background: white;\n box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1);\n}\n\n.search-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]::placeholder {\n color: var(--text-secondary, #9ca3af);\n}\n\n.search-clear[_ngcontent-%COMP%] {\n position: absolute;\n right: 8px;\n top: 50%;\n transform: translateY(-50%);\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: var(--button-hover, #e5e7eb);\n border-radius: 50%;\n cursor: pointer;\n color: var(--text-secondary, #6b7280);\n font-size: 10px;\n transition: all 0.2s ease;\n}\n\n.search-clear[_ngcontent-%COMP%]:hover {\n background: var(--text-secondary, #9ca3af);\n color: white;\n}\n\n\n\n.btn-text[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 12px;\n background: transparent;\n border: none;\n border-radius: 6px;\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.btn-text[_ngcontent-%COMP%]:hover {\n background: var(--hover-background, #f3f4f6);\n color: var(--text-primary, #1f2937);\n}\n\n.btn-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: none;\n border-radius: 8px;\n color: var(--text-secondary, #6b7280);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.btn-icon[_ngcontent-%COMP%]:hover {\n background: var(--hover-background, #f3f4f6);\n color: var(--text-primary, #1f2937);\n}\n\n\n\n.categories-layout[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr 380px;\n gap: 20px;\n min-height: 500px;\n}\n\n\n\n.tree-panel[_ngcontent-%COMP%] {\n background: var(--card-background, #ffffff);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n overflow: hidden;\n}\n\n.tree-container[_ngcontent-%COMP%] {\n max-height: calc(100vh - 300px);\n overflow-y: auto;\n}\n\n\n\n.tree-node[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n border-bottom: 1px solid var(--border-color, #f3f4f6);\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.tree-node[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n}\n\n.tree-node[_ngcontent-%COMP%]:hover {\n background: var(--hover-background, #f9fafb);\n}\n\n.tree-node.selected[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.08) 0%, rgba(99, 102, 241, 0.04) 100%);\n border-left: 3px solid var(--accent-color, #6366f1);\n}\n\n.node-content[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n padding: 12px 16px;\n width: 100%;\n gap: 8px;\n}\n\n\n\n.expand-btn[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: transparent;\n cursor: pointer;\n color: var(--text-secondary, #9ca3af);\n border-radius: 4px;\n transition: all 0.2s ease;\n flex-shrink: 0;\n}\n\n.expand-btn[_ngcontent-%COMP%]:hover {\n background: var(--button-hover, #e5e7eb);\n color: var(--text-primary, #1f2937);\n}\n\n.expand-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n transition: transform 0.2s ease;\n}\n\n.expand-placeholder[_ngcontent-%COMP%] {\n width: 24px;\n flex-shrink: 0;\n}\n\n\n\n.node-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n flex-shrink: 0;\n}\n\n.node-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n}\n\n\n\n.node-info[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.node-name[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 14px;\n color: var(--text-primary, #1f2937);\n line-height: 1.3;\n}\n\n.node-description[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--text-secondary, #6b7280);\n margin-top: 2px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n\n\n.node-badges[_ngcontent-%COMP%] {\n display: flex;\n gap: 6px;\n flex-shrink: 0;\n}\n\n.badge[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 4px 8px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n}\n\n.badge.types[_ngcontent-%COMP%] {\n background: rgba(99, 102, 241, 0.1);\n color: var(--accent-color, #6366f1);\n}\n\n.badge.children[_ngcontent-%COMP%] {\n background: var(--badge-background, #f3f4f6);\n color: var(--text-secondary, #6b7280);\n}\n\n.badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n}\n\n\n\n.node-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n opacity: 0;\n transition: opacity 0.2s ease;\n flex-shrink: 0;\n}\n\n.tree-node[_ngcontent-%COMP%]:hover .node-actions[_ngcontent-%COMP%] {\n opacity: 1;\n}\n\n.action-btn[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--button-background, #f3f4f6);\n border: none;\n border-radius: 6px;\n color: var(--text-secondary, #6b7280);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.action-btn[_ngcontent-%COMP%]:hover {\n background: var(--accent-color, #6366f1);\n color: white;\n}\n\n.action-btn.danger[_ngcontent-%COMP%]:hover {\n background: #ef4444;\n color: white;\n}\n\n.action-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n\n\n.detail-panel[_ngcontent-%COMP%] {\n background: var(--card-background, #ffffff);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n\n.detail-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 20px;\n border-bottom: 1px solid var(--border-color, #f3f4f6);\n}\n\n.detail-icon[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 12px;\n flex-shrink: 0;\n}\n\n.detail-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 20px;\n}\n\n.detail-title[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.detail-title[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 600;\n color: var(--text-primary, #1f2937);\n margin: 0;\n line-height: 1.3;\n}\n\n.level-badge[_ngcontent-%COMP%] {\n display: inline-block;\n margin-top: 4px;\n padding: 2px 8px;\n background: var(--badge-background, #f3f4f6);\n border-radius: 10px;\n font-size: 11px;\n color: var(--text-secondary, #6b7280);\n}\n\n.detail-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n flex-shrink: 0;\n}\n\n.close-btn[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--button-background, #f3f4f6);\n border: none;\n border-radius: 8px;\n color: var(--text-secondary, #6b7280);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.close-btn[_ngcontent-%COMP%]:hover {\n background: var(--hover-background, #e5e7eb);\n color: var(--text-primary, #1f2937);\n}\n\n\n\n.detail-body[_ngcontent-%COMP%] {\n padding: 20px;\n flex: 1;\n overflow-y: auto;\n}\n\n\n\n.detail-stats[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 12px;\n margin-bottom: 20px;\n}\n\n.detail-stat[_ngcontent-%COMP%] {\n background: var(--stat-background, #f9fafb);\n border-radius: 10px;\n padding: 16px;\n text-align: center;\n}\n\n.detail-stat[_ngcontent-%COMP%] .stat-value[_ngcontent-%COMP%] {\n font-size: 28px;\n font-weight: 700;\n color: var(--accent-color, #6366f1);\n line-height: 1;\n}\n\n.detail-stat[_ngcontent-%COMP%] .stat-label[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--text-secondary, #6b7280);\n margin-top: 4px;\n}\n\n\n\n.description-section[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n}\n\n.description-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%], \n.types-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%], \n.subcategories-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 13px;\n font-weight: 600;\n color: var(--text-secondary, #6b7280);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin: 0 0 12px 0;\n}\n\n.description-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.types-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.subcategories-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n.description[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--text-primary, #374151);\n line-height: 1.6;\n margin: 0;\n}\n\n\n\n.types-section[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n}\n\n.type-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.type-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 12px;\n background: var(--item-background, #f9fafb);\n border-radius: 8px;\n transition: all 0.2s ease;\n}\n\n.type-item[_ngcontent-%COMP%]:hover {\n background: var(--hover-background, #f3f4f6);\n}\n\n.type-icon[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(99, 102, 241, 0.1);\n border-radius: 6px;\n flex-shrink: 0;\n}\n\n.type-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--accent-color, #6366f1);\n}\n\n.type-info[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.type-name[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n color: var(--text-primary, #1f2937);\n}\n\n.type-desc[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--text-secondary, #6b7280);\n margin-top: 2px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n\n\n.subcategories-section[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n}\n\n.subcategory-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.subcategory-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 12px;\n background: var(--item-background, #f9fafb);\n border-radius: 8px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.subcategory-item[_ngcontent-%COMP%]:hover {\n background: var(--hover-background, #f3f4f6);\n}\n\n.subcategory-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--accent-color, #6366f1);\n}\n\n.subcategory-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n flex: 1;\n font-size: 13px;\n color: var(--text-primary, #1f2937);\n}\n\n.sub-type-count[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--text-secondary, #6b7280);\n background: var(--badge-background, #e5e7eb);\n padding: 2px 8px;\n border-radius: 10px;\n}\n\n\n\n.detail-quick-actions[_ngcontent-%COMP%] {\n margin-top: auto;\n padding-top: 16px;\n border-top: 1px solid var(--border-color, #f3f4f6);\n display: flex;\n gap: 8px;\n}\n\n.detail-quick-actions[_ngcontent-%COMP%] .btn-secondary[_ngcontent-%COMP%], \n.detail-quick-actions[_ngcontent-%COMP%] .btn-primary[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.btn-secondary[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 12px;\n background: var(--button-background, #f3f4f6);\n border: none;\n border-radius: 8px;\n font-size: 13px;\n font-weight: 500;\n color: var(--text-primary, #374151);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.btn-secondary[_ngcontent-%COMP%]:hover {\n background: var(--hover-background, #e5e7eb);\n}\n\n\n\n.no-selection[_ngcontent-%COMP%] {\n background: var(--card-background, #ffffff);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px;\n text-align: center;\n}\n\n.no-selection-icon[_ngcontent-%COMP%] {\n width: 64px;\n height: 64px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--icon-background, #f3f4f6);\n border-radius: 50%;\n margin-bottom: 16px;\n}\n\n.no-selection-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 24px;\n color: var(--text-secondary, #9ca3af);\n}\n\n.no-selection[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: var(--text-primary, #1f2937);\n margin: 0 0 8px 0;\n}\n\n.no-selection[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n margin: 0;\n}\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 64px 24px;\n background: var(--card-background, #ffffff);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n text-align: center;\n}\n\n.empty-icon[_ngcontent-%COMP%] {\n width: 80px;\n height: 80px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--icon-background, #f3f4f6);\n border-radius: 50%;\n margin-bottom: 20px;\n}\n\n.empty-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n color: var(--text-secondary, #d1d5db);\n}\n\n.empty-state[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 600;\n color: var(--text-primary, #1f2937);\n margin: 0 0 8px 0;\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--text-secondary, #6b7280);\n margin: 0 0 20px 0;\n}\n\n.btn-link[_ngcontent-%COMP%] {\n background: none;\n border: none;\n color: var(--accent-color, #6366f1);\n cursor: pointer;\n font-size: inherit;\n padding: 0;\n text-decoration: underline;\n}\n\n.btn-link[_ngcontent-%COMP%]:hover {\n color: var(--accent-hover, #4f46e5);\n}\n\n\n\n@media (max-width: 1024px) {\n .categories-layout[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .detail-panel[_ngcontent-%COMP%], \n .no-selection[_ngcontent-%COMP%] {\n display: none;\n }\n}\n\n@media (max-width: 768px) {\n .categories-container[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .categories-header[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n gap: 16px;\n }\n\n .toolbar[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 12px;\n }\n\n .toolbar-left[_ngcontent-%COMP%], \n .toolbar-right[_ngcontent-%COMP%] {\n width: 100%;\n }\n\n .search-container[_ngcontent-%COMP%] {\n max-width: none;\n }\n\n .toolbar-right[_ngcontent-%COMP%] {\n justify-content: flex-end;\n }\n}"], changeDetection: 0 });
|
|
806
|
+
i0.ɵɵconditional(!ctx.isLoading ? 2 : -1);
|
|
807
|
+
} }, dependencies: [i2.LoadingComponent, i3.CredentialCategoryEditPanelComponent, i4.SlicePipe], styles: [".categories-container[_ngcontent-%COMP%] {\n padding: 24px;\n height: 100%;\n overflow-y: auto;\n background: var(--background-secondary, #f8fafc);\n}\n\n\n\n.categories-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n margin-bottom: 20px;\n}\n\n.header-info[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.categories-title[_ngcontent-%COMP%] {\n font-size: 24px;\n font-weight: 700;\n color: var(--text-primary, #1f2937);\n margin: 0;\n}\n\n.header-stats[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n}\n\n.stat-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n}\n\n.stat-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--accent-color, #6366f1);\n}\n\n.header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n}\n\n\n\n.btn-primary[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 18px;\n background: linear-gradient(135deg, #6366f1 0%, #4f46e5 100%);\n color: white;\n border: none;\n border-radius: 8px;\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.2s ease;\n box-shadow: 0 2px 8px rgba(99, 102, 241, 0.3);\n}\n\n.btn-primary[_ngcontent-%COMP%]:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 12px rgba(99, 102, 241, 0.4);\n}\n\n.btn-primary[_ngcontent-%COMP%]:active {\n transform: translateY(0);\n}\n\n\n\n.toolbar[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 16px;\n background: var(--card-background, #ffffff);\n border-radius: 12px;\n margin-bottom: 20px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);\n}\n\n.toolbar-left[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n}\n\n.toolbar-right[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n\n\n.search-container[_ngcontent-%COMP%] {\n position: relative;\n flex: 1;\n max-width: 320px;\n}\n\n.search-container[_ngcontent-%COMP%] i.fa-search[_ngcontent-%COMP%] {\n position: absolute;\n left: 12px;\n top: 50%;\n transform: translateY(-50%);\n color: var(--text-secondary, #9ca3af);\n font-size: 13px;\n}\n\n.search-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n width: 100%;\n padding: 8px 36px 8px 36px;\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 8px;\n font-size: 13px;\n background: var(--input-background, #f9fafb);\n transition: all 0.2s ease;\n}\n\n.search-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--accent-color, #6366f1);\n background: white;\n box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1);\n}\n\n.search-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]::placeholder {\n color: var(--text-secondary, #9ca3af);\n}\n\n.search-clear[_ngcontent-%COMP%] {\n position: absolute;\n right: 8px;\n top: 50%;\n transform: translateY(-50%);\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: var(--button-hover, #e5e7eb);\n border-radius: 50%;\n cursor: pointer;\n color: var(--text-secondary, #6b7280);\n font-size: 10px;\n transition: all 0.2s ease;\n}\n\n.search-clear[_ngcontent-%COMP%]:hover {\n background: var(--text-secondary, #9ca3af);\n color: white;\n}\n\n\n\n.btn-text[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 12px;\n background: transparent;\n border: none;\n border-radius: 6px;\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.btn-text[_ngcontent-%COMP%]:hover {\n background: var(--hover-background, #f3f4f6);\n color: var(--text-primary, #1f2937);\n}\n\n.btn-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: none;\n border-radius: 8px;\n color: var(--text-secondary, #6b7280);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.btn-icon[_ngcontent-%COMP%]:hover {\n background: var(--hover-background, #f3f4f6);\n color: var(--text-primary, #1f2937);\n}\n\n\n\n.categories-layout[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr 380px;\n gap: 20px;\n min-height: 500px;\n}\n\n\n\n.tree-panel[_ngcontent-%COMP%] {\n background: var(--card-background, #ffffff);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n overflow: hidden;\n}\n\n.tree-container[_ngcontent-%COMP%] {\n max-height: calc(100vh - 300px);\n overflow-y: auto;\n}\n\n\n\n.tree-node[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n border-bottom: 1px solid var(--border-color, #f3f4f6);\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.tree-node[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n}\n\n.tree-node[_ngcontent-%COMP%]:hover {\n background: var(--hover-background, #f9fafb);\n}\n\n.tree-node.selected[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.08) 0%, rgba(99, 102, 241, 0.04) 100%);\n border-left: 3px solid var(--accent-color, #6366f1);\n}\n\n.node-content[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n padding: 12px 16px;\n width: 100%;\n gap: 8px;\n}\n\n\n\n.expand-btn[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: transparent;\n cursor: pointer;\n color: var(--text-secondary, #9ca3af);\n border-radius: 4px;\n transition: all 0.2s ease;\n flex-shrink: 0;\n}\n\n.expand-btn[_ngcontent-%COMP%]:hover {\n background: var(--button-hover, #e5e7eb);\n color: var(--text-primary, #1f2937);\n}\n\n.expand-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n transition: transform 0.2s ease;\n}\n\n.expand-placeholder[_ngcontent-%COMP%] {\n width: 24px;\n flex-shrink: 0;\n}\n\n\n\n.node-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n flex-shrink: 0;\n}\n\n.node-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n}\n\n\n\n.node-info[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.node-name[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 14px;\n color: var(--text-primary, #1f2937);\n line-height: 1.3;\n}\n\n.node-description[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--text-secondary, #6b7280);\n margin-top: 2px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n\n\n.node-badges[_ngcontent-%COMP%] {\n display: flex;\n gap: 6px;\n flex-shrink: 0;\n}\n\n.badge[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 4px 8px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n}\n\n.badge.types[_ngcontent-%COMP%] {\n background: rgba(99, 102, 241, 0.1);\n color: var(--accent-color, #6366f1);\n}\n\n.badge.children[_ngcontent-%COMP%] {\n background: var(--badge-background, #f3f4f6);\n color: var(--text-secondary, #6b7280);\n}\n\n.badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n}\n\n\n\n.node-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n opacity: 0;\n transition: opacity 0.2s ease;\n flex-shrink: 0;\n}\n\n.tree-node[_ngcontent-%COMP%]:hover .node-actions[_ngcontent-%COMP%] {\n opacity: 1;\n}\n\n.action-btn[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--button-background, #f3f4f6);\n border: none;\n border-radius: 6px;\n color: var(--text-secondary, #6b7280);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.action-btn[_ngcontent-%COMP%]:hover {\n background: var(--accent-color, #6366f1);\n color: white;\n}\n\n.action-btn.danger[_ngcontent-%COMP%]:hover {\n background: #ef4444;\n color: white;\n}\n\n.action-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n\n\n.detail-panel[_ngcontent-%COMP%] {\n background: var(--card-background, #ffffff);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n\n.detail-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 20px;\n border-bottom: 1px solid var(--border-color, #f3f4f6);\n}\n\n.detail-icon[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 12px;\n flex-shrink: 0;\n}\n\n.detail-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 20px;\n}\n\n.detail-title[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.detail-title[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 600;\n color: var(--text-primary, #1f2937);\n margin: 0;\n line-height: 1.3;\n}\n\n.level-badge[_ngcontent-%COMP%] {\n display: inline-block;\n margin-top: 4px;\n padding: 2px 8px;\n background: var(--badge-background, #f3f4f6);\n border-radius: 10px;\n font-size: 11px;\n color: var(--text-secondary, #6b7280);\n}\n\n.detail-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n flex-shrink: 0;\n}\n\n.close-btn[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--button-background, #f3f4f6);\n border: none;\n border-radius: 8px;\n color: var(--text-secondary, #6b7280);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.close-btn[_ngcontent-%COMP%]:hover {\n background: var(--hover-background, #e5e7eb);\n color: var(--text-primary, #1f2937);\n}\n\n\n\n.detail-body[_ngcontent-%COMP%] {\n padding: 20px;\n flex: 1;\n overflow-y: auto;\n}\n\n\n\n.detail-stats[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 12px;\n margin-bottom: 20px;\n}\n\n.detail-stat[_ngcontent-%COMP%] {\n background: var(--stat-background, #f9fafb);\n border-radius: 10px;\n padding: 16px;\n text-align: center;\n}\n\n.detail-stat[_ngcontent-%COMP%] .stat-value[_ngcontent-%COMP%] {\n font-size: 28px;\n font-weight: 700;\n color: var(--accent-color, #6366f1);\n line-height: 1;\n}\n\n.detail-stat[_ngcontent-%COMP%] .stat-label[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--text-secondary, #6b7280);\n margin-top: 4px;\n}\n\n\n\n.description-section[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n}\n\n.description-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%], \n.types-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%], \n.subcategories-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 13px;\n font-weight: 600;\n color: var(--text-secondary, #6b7280);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin: 0 0 12px 0;\n}\n\n.description-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.types-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.subcategories-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n.description[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--text-primary, #374151);\n line-height: 1.6;\n margin: 0;\n}\n\n\n\n.types-section[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n}\n\n.type-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.type-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 12px;\n background: var(--item-background, #f9fafb);\n border-radius: 8px;\n transition: all 0.2s ease;\n}\n\n.type-item[_ngcontent-%COMP%]:hover {\n background: var(--hover-background, #f3f4f6);\n}\n\n.type-icon[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(99, 102, 241, 0.1);\n border-radius: 6px;\n flex-shrink: 0;\n}\n\n.type-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--accent-color, #6366f1);\n}\n\n.type-info[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.type-name[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n color: var(--text-primary, #1f2937);\n}\n\n.type-desc[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--text-secondary, #6b7280);\n margin-top: 2px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n\n\n.subcategories-section[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n}\n\n.subcategory-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.subcategory-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 12px;\n background: var(--item-background, #f9fafb);\n border-radius: 8px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.subcategory-item[_ngcontent-%COMP%]:hover {\n background: var(--hover-background, #f3f4f6);\n}\n\n.subcategory-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--accent-color, #6366f1);\n}\n\n.subcategory-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n flex: 1;\n font-size: 13px;\n color: var(--text-primary, #1f2937);\n}\n\n.sub-type-count[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--text-secondary, #6b7280);\n background: var(--badge-background, #e5e7eb);\n padding: 2px 8px;\n border-radius: 10px;\n}\n\n\n\n.detail-quick-actions[_ngcontent-%COMP%] {\n margin-top: auto;\n padding-top: 16px;\n border-top: 1px solid var(--border-color, #f3f4f6);\n display: flex;\n gap: 8px;\n}\n\n.detail-quick-actions[_ngcontent-%COMP%] .btn-secondary[_ngcontent-%COMP%], \n.detail-quick-actions[_ngcontent-%COMP%] .btn-primary[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.btn-secondary[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 12px;\n background: var(--button-background, #f3f4f6);\n border: none;\n border-radius: 8px;\n font-size: 13px;\n font-weight: 500;\n color: var(--text-primary, #374151);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.btn-secondary[_ngcontent-%COMP%]:hover {\n background: var(--hover-background, #e5e7eb);\n}\n\n\n\n.no-selection[_ngcontent-%COMP%] {\n background: var(--card-background, #ffffff);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px;\n text-align: center;\n}\n\n.no-selection-icon[_ngcontent-%COMP%] {\n width: 64px;\n height: 64px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--icon-background, #f3f4f6);\n border-radius: 50%;\n margin-bottom: 16px;\n}\n\n.no-selection-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 24px;\n color: var(--text-secondary, #9ca3af);\n}\n\n.no-selection[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: var(--text-primary, #1f2937);\n margin: 0 0 8px 0;\n}\n\n.no-selection[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n margin: 0;\n}\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 64px 24px;\n background: var(--card-background, #ffffff);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n text-align: center;\n}\n\n.empty-icon[_ngcontent-%COMP%] {\n width: 80px;\n height: 80px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--icon-background, #f3f4f6);\n border-radius: 50%;\n margin-bottom: 20px;\n}\n\n.empty-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n color: var(--text-secondary, #d1d5db);\n}\n\n.empty-state[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 600;\n color: var(--text-primary, #1f2937);\n margin: 0 0 8px 0;\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--text-secondary, #6b7280);\n margin: 0 0 20px 0;\n}\n\n.btn-link[_ngcontent-%COMP%] {\n background: none;\n border: none;\n color: var(--accent-color, #6366f1);\n cursor: pointer;\n font-size: inherit;\n padding: 0;\n text-decoration: underline;\n}\n\n.btn-link[_ngcontent-%COMP%]:hover {\n color: var(--accent-hover, #4f46e5);\n}\n\n\n\n@media (max-width: 1024px) {\n .categories-layout[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .detail-panel[_ngcontent-%COMP%], \n .no-selection[_ngcontent-%COMP%] {\n display: none;\n }\n}\n\n@media (max-width: 768px) {\n .categories-container[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .categories-header[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n gap: 16px;\n }\n\n .toolbar[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 12px;\n }\n\n .toolbar-left[_ngcontent-%COMP%], \n .toolbar-right[_ngcontent-%COMP%] {\n width: 100%;\n }\n\n .search-container[_ngcontent-%COMP%] {\n max-width: none;\n }\n\n .toolbar-right[_ngcontent-%COMP%] {\n justify-content: flex-end;\n }\n}"], changeDetection: 0 });
|
|
803
808
|
};
|
|
804
809
|
CredentialsCategoriesResourceComponent = __decorate([
|
|
805
810
|
RegisterClass(BaseResourceComponent, 'CredentialsCategoriesResource')
|
|
@@ -807,10 +812,10 @@ CredentialsCategoriesResourceComponent = __decorate([
|
|
|
807
812
|
export { CredentialsCategoriesResourceComponent };
|
|
808
813
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CredentialsCategoriesResourceComponent, [{
|
|
809
814
|
type: Component,
|
|
810
|
-
args: [{ selector: 'mj-credentials-categories-resource', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"categories-container\">\n <mj-loading *ngIf=\"isLoading\" text=\"Loading categories...\"></mj-loading>\n\n <ng-container *ngIf=\"!isLoading\">\n <!-- Header -->\n <div class=\"categories-header\">\n <div class=\"header-info\">\n <h2 class=\"categories-title\">Categories</h2>\n <div class=\"header-stats\">\n <span class=\"stat-item\">\n <i class=\"fa-solid fa-folder-tree\"></i>\n {{categories.length}} categories\n </span>\n <span class=\"stat-item\">\n <i class=\"fa-solid fa-shapes\"></i>\n {{getTotalTypeCount()}} types\n </span>\n </div>\n </div>\n <div class=\"header-actions\">\n <button class=\"btn-primary\" *ngIf=\"UserCanCreate\" (click)=\"createNewCategory()\">\n <i class=\"fa-solid fa-plus\"></i>\n <span>New Category</span>\n </button>\n </div>\n </div>\n\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 categories...\"\n [value]=\"searchText\"\n (input)=\"onSearchChange($any($event.target).value)\"\n />\n <button class=\"search-clear\" *ngIf=\"searchText\" (click)=\"clearSearch()\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n </div>\n <div class=\"toolbar-right\">\n <button class=\"btn-text\" (click)=\"expandAll()\" title=\"Expand All\">\n <i class=\"fa-solid fa-expand\"></i>\n </button>\n <button class=\"btn-text\" (click)=\"collapseAll()\" title=\"Collapse All\">\n <i class=\"fa-solid fa-compress\"></i>\n </button>\n <button class=\"btn-icon\" (click)=\"refresh()\" title=\"Refresh\">\n <i class=\"fa-solid fa-refresh\"></i>\n </button>\n </div>\n </div>\n\n <div class=\"categories-layout\">\n <!-- Tree Container -->\n <div class=\"tree-panel\">\n <div class=\"tree-container\" *ngIf=\"categoryTree.length > 0\">\n <div\n class=\"tree-node\"\n *ngFor=\"let node of getFlattenedNodes(); let i = index\"\n [class.selected]=\"selectedNode?.category?.ID === node.category.ID\"\n [style.padding-left.px]=\"12 + (node.level * 20)\"\n (click)=\"selectNode(node)\"\n >\n <div class=\"node-content\">\n <button\n class=\"expand-btn\"\n *ngIf=\"node.children.length > 0\"\n (click)=\"toggleExpand(node, $event)\"\n >\n <i [class]=\"node.expanded ? 'fa-solid fa-chevron-down' : 'fa-solid fa-chevron-right'\"></i>\n </button>\n <span class=\"expand-placeholder\" *ngIf=\"node.children.length === 0\"></span>\n\n <div class=\"node-icon\" [style.backgroundColor]=\"getCategoryColor(i) + '15'\" [style.color]=\"getCategoryColor(i)\">\n <i [class]=\"node.category.IconClass || 'fa-solid fa-folder'\"></i>\n </div>\n\n <div class=\"node-info\">\n <div class=\"node-name\">{{node.category.Name}}</div>\n <div class=\"node-description\" *ngIf=\"node.category.Description\">\n {{node.category.Description | slice:0:50}}{{node.category.Description.length > 50 ? '...' : ''}}\n </div>\n </div>\n\n <div class=\"node-badges\">\n <span class=\"badge types\" *ngIf=\"node.typeCount > 0\">\n <i class=\"fa-solid fa-shapes\"></i>\n {{node.typeCount}}\n </span>\n <span class=\"badge children\" *ngIf=\"node.children.length > 0\">\n <i class=\"fa-solid fa-folder\"></i>\n {{node.children.length}}\n </span>\n </div>\n\n <div class=\"node-actions\">\n <button\n class=\"action-btn\"\n *ngIf=\"UserCanUpdate\"\n (click)=\"editCategory(node, $event)\"\n title=\"Edit\"\n >\n <i class=\"fa-solid fa-pen\"></i>\n </button>\n <button\n class=\"action-btn danger\"\n *ngIf=\"UserCanDelete && node.children.length === 0 && node.typeCount === 0\"\n (click)=\"deleteCategory(node, $event)\"\n title=\"Delete\"\n >\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"empty-state\" *ngIf=\"categoryTree.length === 0\">\n <div class=\"empty-icon\">\n <i class=\"fa-solid fa-folder-open\"></i>\n </div>\n <h3>No Categories</h3>\n <p *ngIf=\"searchText\">\n No categories match your search.\n <button class=\"btn-link\" (click)=\"clearSearch()\">Clear search</button>\n </p>\n <p *ngIf=\"!searchText\">\n Get started by creating your first category.\n </p>\n <button class=\"btn-primary\" *ngIf=\"UserCanCreate && !searchText\" (click)=\"createNewCategory()\">\n <i class=\"fa-solid fa-plus\"></i>\n Create Category\n </button>\n </div>\n </div>\n\n <!-- Detail Panel -->\n <div class=\"detail-panel\" *ngIf=\"selectedNode\">\n <div class=\"detail-header\">\n <div class=\"detail-icon\" [style.backgroundColor]=\"getCategoryColor(0) + '15'\" [style.color]=\"getCategoryColor(0)\">\n <i [class]=\"selectedNode.category.IconClass || 'fa-solid fa-folder'\"></i>\n </div>\n <div class=\"detail-title\">\n <h2>{{selectedNode.category.Name}}</h2>\n <span class=\"level-badge\" *ngIf=\"selectedNode.level > 0\">\n Level {{selectedNode.level + 1}}\n </span>\n </div>\n <div class=\"detail-actions\">\n <button class=\"action-btn\" *ngIf=\"UserCanUpdate\" (click)=\"editCategory(selectedNode)\" title=\"Edit\">\n <i class=\"fa-solid fa-pen\"></i>\n </button>\n <button class=\"close-btn\" (click)=\"selectedNode = null\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n </div>\n\n <div class=\"detail-body\">\n <!-- Stats -->\n <div class=\"detail-stats\">\n <div class=\"detail-stat\">\n <div class=\"stat-value\">{{selectedNode.typeCount}}</div>\n <div class=\"stat-label\">Credential Types</div>\n </div>\n <div class=\"detail-stat\">\n <div class=\"stat-value\">{{selectedNode.children.length}}</div>\n <div class=\"stat-label\">Subcategories</div>\n </div>\n </div>\n\n <!-- Description -->\n <div class=\"description-section\" *ngIf=\"selectedNode.category.Description\">\n <h3>\n <i class=\"fa-solid fa-align-left\"></i>\n Description\n </h3>\n <p class=\"description\">{{selectedNode.category.Description}}</p>\n </div>\n\n <!-- Types in Category -->\n <div class=\"types-section\" *ngIf=\"selectedNode.typeCount > 0\">\n <h3>\n <i class=\"fa-solid fa-shapes\"></i>\n Credential Types\n </h3>\n <div class=\"type-list\">\n <div class=\"type-item\" *ngFor=\"let type of getTypesForCategory(selectedNode.category.Name)\">\n <div class=\"type-icon\">\n <i [class]=\"type.IconClass || 'fa-solid fa-key'\"></i>\n </div>\n <div class=\"type-info\">\n <div class=\"type-name\">{{type.Name}}</div>\n <div class=\"type-desc\" *ngIf=\"type.Description\">{{type.Description | slice:0:60}}</div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Subcategories -->\n <div class=\"subcategories-section\" *ngIf=\"selectedNode.children.length > 0\">\n <h3>\n <i class=\"fa-solid fa-folder-tree\"></i>\n Subcategories\n </h3>\n <div class=\"subcategory-list\">\n <div class=\"subcategory-item\" *ngFor=\"let child of selectedNode.children\" (click)=\"selectNode(child)\">\n <i [class]=\"child.category.IconClass || 'fa-solid fa-folder'\"></i>\n <span>{{child.category.Name}}</span>\n <span class=\"sub-type-count\" *ngIf=\"child.typeCount > 0\">{{child.typeCount}} types</span>\n </div>\n </div>\n </div>\n\n <!-- Quick Actions -->\n <div class=\"detail-quick-actions\">\n <button\n class=\"btn-secondary\"\n *ngIf=\"selectedNode.typeCount > 0\"\n (click)=\"viewTypesForCategory(selectedNode.category.Name)\"\n >\n <i class=\"fa-solid fa-shapes\"></i>\n View Types\n </button>\n <button\n class=\"btn-primary\"\n (click)=\"createCredentialWithCategory(selectedNode.category.ID)\"\n >\n <i class=\"fa-solid fa-plus\"></i>\n Create Credential\n </button>\n </div>\n\n </div>\n </div>\n\n <!-- No Selection -->\n <div class=\"no-selection\" *ngIf=\"!selectedNode && categoryTree.length > 0\">\n <div class=\"no-selection-icon\">\n <i class=\"fa-solid fa-hand-pointer\"></i>\n </div>\n <h3>Select a Category</h3>\n <p>Click on a category to view its details and credential types</p>\n </div>\n </div>\n </ng-container>\n</div>\n\n<!-- Category Edit Panel -->\n<mj-credential-category-edit-panel\n #categoryEditPanel\n (saved)=\"onCategorySaved($any($event))\"\n (deleted)=\"onCategoryDeleted($any($event))\"\n></mj-credential-category-edit-panel>\n", styles: [".categories-container {\n padding: 24px;\n height: 100%;\n overflow-y: auto;\n background: var(--background-secondary, #f8fafc);\n}\n\n/* Header */\n.categories-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n margin-bottom: 20px;\n}\n\n.header-info {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.categories-title {\n font-size: 24px;\n font-weight: 700;\n color: var(--text-primary, #1f2937);\n margin: 0;\n}\n\n.header-stats {\n display: flex;\n gap: 16px;\n}\n\n.stat-item {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n}\n\n.stat-item i {\n font-size: 12px;\n color: var(--accent-color, #6366f1);\n}\n\n.header-actions {\n display: flex;\n gap: 8px;\n}\n\n/* Primary Button */\n.btn-primary {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 18px;\n background: linear-gradient(135deg, #6366f1 0%, #4f46e5 100%);\n color: white;\n border: none;\n border-radius: 8px;\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.2s ease;\n box-shadow: 0 2px 8px rgba(99, 102, 241, 0.3);\n}\n\n.btn-primary:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 12px rgba(99, 102, 241, 0.4);\n}\n\n.btn-primary:active {\n transform: translateY(0);\n}\n\n/* Toolbar */\n.toolbar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 16px;\n background: var(--card-background, #ffffff);\n border-radius: 12px;\n margin-bottom: 20px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);\n}\n\n.toolbar-left {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n}\n\n.toolbar-right {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n/* Search */\n.search-container {\n position: relative;\n flex: 1;\n max-width: 320px;\n}\n\n.search-container i.fa-search {\n position: absolute;\n left: 12px;\n top: 50%;\n transform: translateY(-50%);\n color: var(--text-secondary, #9ca3af);\n font-size: 13px;\n}\n\n.search-container input {\n width: 100%;\n padding: 8px 36px 8px 36px;\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 8px;\n font-size: 13px;\n background: var(--input-background, #f9fafb);\n transition: all 0.2s ease;\n}\n\n.search-container input:focus {\n outline: none;\n border-color: var(--accent-color, #6366f1);\n background: white;\n box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1);\n}\n\n.search-container input::placeholder {\n color: var(--text-secondary, #9ca3af);\n}\n\n.search-clear {\n position: absolute;\n right: 8px;\n top: 50%;\n transform: translateY(-50%);\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: var(--button-hover, #e5e7eb);\n border-radius: 50%;\n cursor: pointer;\n color: var(--text-secondary, #6b7280);\n font-size: 10px;\n transition: all 0.2s ease;\n}\n\n.search-clear:hover {\n background: var(--text-secondary, #9ca3af);\n color: white;\n}\n\n/* Toolbar Buttons */\n.btn-text {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 12px;\n background: transparent;\n border: none;\n border-radius: 6px;\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.btn-text:hover {\n background: var(--hover-background, #f3f4f6);\n color: var(--text-primary, #1f2937);\n}\n\n.btn-icon {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: none;\n border-radius: 8px;\n color: var(--text-secondary, #6b7280);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.btn-icon:hover {\n background: var(--hover-background, #f3f4f6);\n color: var(--text-primary, #1f2937);\n}\n\n/* Layout */\n.categories-layout {\n display: grid;\n grid-template-columns: 1fr 380px;\n gap: 20px;\n min-height: 500px;\n}\n\n/* Tree Panel */\n.tree-panel {\n background: var(--card-background, #ffffff);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n overflow: hidden;\n}\n\n.tree-container {\n max-height: calc(100vh - 300px);\n overflow-y: auto;\n}\n\n/* Tree Node */\n.tree-node {\n display: flex;\n align-items: center;\n border-bottom: 1px solid var(--border-color, #f3f4f6);\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.tree-node:last-child {\n border-bottom: none;\n}\n\n.tree-node:hover {\n background: var(--hover-background, #f9fafb);\n}\n\n.tree-node.selected {\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.08) 0%, rgba(99, 102, 241, 0.04) 100%);\n border-left: 3px solid var(--accent-color, #6366f1);\n}\n\n.node-content {\n display: flex;\n align-items: center;\n padding: 12px 16px;\n width: 100%;\n gap: 8px;\n}\n\n/* Expand Button */\n.expand-btn {\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: transparent;\n cursor: pointer;\n color: var(--text-secondary, #9ca3af);\n border-radius: 4px;\n transition: all 0.2s ease;\n flex-shrink: 0;\n}\n\n.expand-btn:hover {\n background: var(--button-hover, #e5e7eb);\n color: var(--text-primary, #1f2937);\n}\n\n.expand-btn i {\n font-size: 10px;\n transition: transform 0.2s ease;\n}\n\n.expand-placeholder {\n width: 24px;\n flex-shrink: 0;\n}\n\n/* Node Icon */\n.node-icon {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n flex-shrink: 0;\n}\n\n.node-icon i {\n font-size: 14px;\n}\n\n/* Node Info */\n.node-info {\n flex: 1;\n min-width: 0;\n}\n\n.node-name {\n font-weight: 600;\n font-size: 14px;\n color: var(--text-primary, #1f2937);\n line-height: 1.3;\n}\n\n.node-description {\n font-size: 12px;\n color: var(--text-secondary, #6b7280);\n margin-top: 2px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* Node Badges */\n.node-badges {\n display: flex;\n gap: 6px;\n flex-shrink: 0;\n}\n\n.badge {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 4px 8px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n}\n\n.badge.types {\n background: rgba(99, 102, 241, 0.1);\n color: var(--accent-color, #6366f1);\n}\n\n.badge.children {\n background: var(--badge-background, #f3f4f6);\n color: var(--text-secondary, #6b7280);\n}\n\n.badge i {\n font-size: 10px;\n}\n\n/* Node Actions */\n.node-actions {\n display: flex;\n gap: 4px;\n opacity: 0;\n transition: opacity 0.2s ease;\n flex-shrink: 0;\n}\n\n.tree-node:hover .node-actions {\n opacity: 1;\n}\n\n.action-btn {\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--button-background, #f3f4f6);\n border: none;\n border-radius: 6px;\n color: var(--text-secondary, #6b7280);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.action-btn:hover {\n background: var(--accent-color, #6366f1);\n color: white;\n}\n\n.action-btn.danger:hover {\n background: #ef4444;\n color: white;\n}\n\n.action-btn i {\n font-size: 12px;\n}\n\n/* Detail Panel */\n.detail-panel {\n background: var(--card-background, #ffffff);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n\n.detail-header {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 20px;\n border-bottom: 1px solid var(--border-color, #f3f4f6);\n}\n\n.detail-icon {\n width: 48px;\n height: 48px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 12px;\n flex-shrink: 0;\n}\n\n.detail-icon i {\n font-size: 20px;\n}\n\n.detail-title {\n flex: 1;\n min-width: 0;\n}\n\n.detail-title h2 {\n font-size: 18px;\n font-weight: 600;\n color: var(--text-primary, #1f2937);\n margin: 0;\n line-height: 1.3;\n}\n\n.level-badge {\n display: inline-block;\n margin-top: 4px;\n padding: 2px 8px;\n background: var(--badge-background, #f3f4f6);\n border-radius: 10px;\n font-size: 11px;\n color: var(--text-secondary, #6b7280);\n}\n\n.detail-actions {\n display: flex;\n gap: 8px;\n flex-shrink: 0;\n}\n\n.close-btn {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--button-background, #f3f4f6);\n border: none;\n border-radius: 8px;\n color: var(--text-secondary, #6b7280);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.close-btn:hover {\n background: var(--hover-background, #e5e7eb);\n color: var(--text-primary, #1f2937);\n}\n\n/* Detail Body */\n.detail-body {\n padding: 20px;\n flex: 1;\n overflow-y: auto;\n}\n\n/* Detail Stats */\n.detail-stats {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 12px;\n margin-bottom: 20px;\n}\n\n.detail-stat {\n background: var(--stat-background, #f9fafb);\n border-radius: 10px;\n padding: 16px;\n text-align: center;\n}\n\n.detail-stat .stat-value {\n font-size: 28px;\n font-weight: 700;\n color: var(--accent-color, #6366f1);\n line-height: 1;\n}\n\n.detail-stat .stat-label {\n font-size: 12px;\n color: var(--text-secondary, #6b7280);\n margin-top: 4px;\n}\n\n/* Description Section */\n.description-section {\n margin-bottom: 20px;\n}\n\n.description-section h3,\n.types-section h3,\n.subcategories-section h3 {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 13px;\n font-weight: 600;\n color: var(--text-secondary, #6b7280);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin: 0 0 12px 0;\n}\n\n.description-section h3 i,\n.types-section h3 i,\n.subcategories-section h3 i {\n font-size: 12px;\n}\n\n.description {\n font-size: 14px;\n color: var(--text-primary, #374151);\n line-height: 1.6;\n margin: 0;\n}\n\n/* Types Section */\n.types-section {\n margin-bottom: 20px;\n}\n\n.type-list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.type-item {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 12px;\n background: var(--item-background, #f9fafb);\n border-radius: 8px;\n transition: all 0.2s ease;\n}\n\n.type-item:hover {\n background: var(--hover-background, #f3f4f6);\n}\n\n.type-icon {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(99, 102, 241, 0.1);\n border-radius: 6px;\n flex-shrink: 0;\n}\n\n.type-icon i {\n font-size: 12px;\n color: var(--accent-color, #6366f1);\n}\n\n.type-info {\n flex: 1;\n min-width: 0;\n}\n\n.type-name {\n font-size: 13px;\n font-weight: 500;\n color: var(--text-primary, #1f2937);\n}\n\n.type-desc {\n font-size: 11px;\n color: var(--text-secondary, #6b7280);\n margin-top: 2px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* Subcategories Section */\n.subcategories-section {\n margin-bottom: 20px;\n}\n\n.subcategory-list {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.subcategory-item {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 12px;\n background: var(--item-background, #f9fafb);\n border-radius: 8px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.subcategory-item:hover {\n background: var(--hover-background, #f3f4f6);\n}\n\n.subcategory-item i {\n font-size: 14px;\n color: var(--accent-color, #6366f1);\n}\n\n.subcategory-item span {\n flex: 1;\n font-size: 13px;\n color: var(--text-primary, #1f2937);\n}\n\n.sub-type-count {\n font-size: 11px;\n color: var(--text-secondary, #6b7280);\n background: var(--badge-background, #e5e7eb);\n padding: 2px 8px;\n border-radius: 10px;\n}\n\n/* Quick Actions */\n.detail-quick-actions {\n margin-top: auto;\n padding-top: 16px;\n border-top: 1px solid var(--border-color, #f3f4f6);\n display: flex;\n gap: 8px;\n}\n\n.detail-quick-actions .btn-secondary,\n.detail-quick-actions .btn-primary {\n flex: 1;\n}\n\n.btn-secondary {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 12px;\n background: var(--button-background, #f3f4f6);\n border: none;\n border-radius: 8px;\n font-size: 13px;\n font-weight: 500;\n color: var(--text-primary, #374151);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.btn-secondary:hover {\n background: var(--hover-background, #e5e7eb);\n}\n\n/* No Selection State */\n.no-selection {\n background: var(--card-background, #ffffff);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px;\n text-align: center;\n}\n\n.no-selection-icon {\n width: 64px;\n height: 64px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--icon-background, #f3f4f6);\n border-radius: 50%;\n margin-bottom: 16px;\n}\n\n.no-selection-icon i {\n font-size: 24px;\n color: var(--text-secondary, #9ca3af);\n}\n\n.no-selection h3 {\n font-size: 16px;\n font-weight: 600;\n color: var(--text-primary, #1f2937);\n margin: 0 0 8px 0;\n}\n\n.no-selection p {\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n margin: 0;\n}\n\n/* Empty State */\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 64px 24px;\n background: var(--card-background, #ffffff);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n text-align: center;\n}\n\n.empty-icon {\n width: 80px;\n height: 80px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--icon-background, #f3f4f6);\n border-radius: 50%;\n margin-bottom: 20px;\n}\n\n.empty-icon i {\n font-size: 32px;\n color: var(--text-secondary, #d1d5db);\n}\n\n.empty-state h3 {\n font-size: 18px;\n font-weight: 600;\n color: var(--text-primary, #1f2937);\n margin: 0 0 8px 0;\n}\n\n.empty-state p {\n font-size: 14px;\n color: var(--text-secondary, #6b7280);\n margin: 0 0 20px 0;\n}\n\n.btn-link {\n background: none;\n border: none;\n color: var(--accent-color, #6366f1);\n cursor: pointer;\n font-size: inherit;\n padding: 0;\n text-decoration: underline;\n}\n\n.btn-link:hover {\n color: var(--accent-hover, #4f46e5);\n}\n\n/* Responsive */\n@media (max-width: 1024px) {\n .categories-layout {\n grid-template-columns: 1fr;\n }\n\n .detail-panel,\n .no-selection {\n display: none;\n }\n}\n\n@media (max-width: 768px) {\n .categories-container {\n padding: 16px;\n }\n\n .categories-header {\n flex-direction: column;\n align-items: flex-start;\n gap: 16px;\n }\n\n .toolbar {\n flex-direction: column;\n gap: 12px;\n }\n\n .toolbar-left,\n .toolbar-right {\n width: 100%;\n }\n\n .search-container {\n max-width: none;\n }\n\n .toolbar-right {\n justify-content: flex-end;\n }\n}\n"] }]
|
|
815
|
+
args: [{ standalone: false, selector: 'mj-credentials-categories-resource', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"categories-container\">\n @if (isLoading) {\n <mj-loading text=\"Loading categories...\"></mj-loading>\n }\n\n @if (!isLoading) {\n <!-- Header -->\n <div class=\"categories-header\">\n <div class=\"header-info\">\n <h2 class=\"categories-title\">Categories</h2>\n <div class=\"header-stats\">\n <span class=\"stat-item\">\n <i class=\"fa-solid fa-folder-tree\"></i>\n {{categories.length}} categories\n </span>\n <span class=\"stat-item\">\n <i class=\"fa-solid fa-shapes\"></i>\n {{getTotalTypeCount()}} types\n </span>\n </div>\n </div>\n <div class=\"header-actions\">\n @if (UserCanCreate) {\n <button class=\"btn-primary\" (click)=\"createNewCategory()\">\n <i class=\"fa-solid fa-plus\"></i>\n <span>New Category</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 categories...\"\n [value]=\"searchText\"\n (input)=\"onSearchChange($any($event.target).value)\"\n />\n @if (searchText) {\n <button class=\"search-clear\" (click)=\"clearSearch()\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n }\n </div>\n </div>\n <div class=\"toolbar-right\">\n <button class=\"btn-text\" (click)=\"expandAll()\" title=\"Expand All\">\n <i class=\"fa-solid fa-expand\"></i>\n </button>\n <button class=\"btn-text\" (click)=\"collapseAll()\" title=\"Collapse All\">\n <i class=\"fa-solid fa-compress\"></i>\n </button>\n <button class=\"btn-icon\" (click)=\"refresh()\" title=\"Refresh\">\n <i class=\"fa-solid fa-refresh\"></i>\n </button>\n </div>\n </div>\n <div class=\"categories-layout\">\n <!-- Tree Container -->\n <div class=\"tree-panel\">\n @if (categoryTree.length > 0) {\n <div class=\"tree-container\">\n @for (node of getFlattenedNodes(); track node; let i = $index) {\n <div\n class=\"tree-node\"\n [class.selected]=\"selectedNode?.category?.ID === node.category.ID\"\n [style.padding-left.px]=\"12 + (node.level * 20)\"\n (click)=\"selectNode(node)\"\n >\n <div class=\"node-content\">\n @if (node.children.length > 0) {\n <button\n class=\"expand-btn\"\n (click)=\"toggleExpand(node, $event)\"\n >\n <i [class]=\"node.expanded ? 'fa-solid fa-chevron-down' : 'fa-solid fa-chevron-right'\"></i>\n </button>\n }\n @if (node.children.length === 0) {\n <span class=\"expand-placeholder\"></span>\n }\n <div class=\"node-icon\" [style.backgroundColor]=\"getCategoryColor(i) + '15'\" [style.color]=\"getCategoryColor(i)\">\n <i [class]=\"node.category.IconClass || 'fa-solid fa-folder'\"></i>\n </div>\n <div class=\"node-info\">\n <div class=\"node-name\">{{node.category.Name}}</div>\n @if (node.category.Description) {\n <div class=\"node-description\">\n {{node.category.Description | slice:0:50}}{{node.category.Description.length > 50 ? '...' : ''}}\n </div>\n }\n </div>\n <div class=\"node-badges\">\n @if (node.typeCount > 0) {\n <span class=\"badge types\">\n <i class=\"fa-solid fa-shapes\"></i>\n {{node.typeCount}}\n </span>\n }\n @if (node.children.length > 0) {\n <span class=\"badge children\">\n <i class=\"fa-solid fa-folder\"></i>\n {{node.children.length}}\n </span>\n }\n </div>\n <div class=\"node-actions\">\n @if (UserCanUpdate) {\n <button\n class=\"action-btn\"\n (click)=\"editCategory(node, $event)\"\n title=\"Edit\"\n >\n <i class=\"fa-solid fa-pen\"></i>\n </button>\n }\n @if (UserCanDelete && node.children.length === 0 && node.typeCount === 0) {\n <button\n class=\"action-btn danger\"\n (click)=\"deleteCategory(node, $event)\"\n title=\"Delete\"\n >\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n }\n </div>\n </div>\n </div>\n }\n </div>\n }\n @if (categoryTree.length === 0) {\n <div class=\"empty-state\">\n <div class=\"empty-icon\">\n <i class=\"fa-solid fa-folder-open\"></i>\n </div>\n <h3>No Categories</h3>\n @if (searchText) {\n <p>\n No categories match your search.\n <button class=\"btn-link\" (click)=\"clearSearch()\">Clear search</button>\n </p>\n }\n @if (!searchText) {\n <p>\n Get started by creating your first category.\n </p>\n }\n @if (UserCanCreate && !searchText) {\n <button class=\"btn-primary\" (click)=\"createNewCategory()\">\n <i class=\"fa-solid fa-plus\"></i>\n Create Category\n </button>\n }\n </div>\n }\n </div>\n <!-- Detail Panel -->\n @if (selectedNode) {\n <div class=\"detail-panel\">\n <div class=\"detail-header\">\n <div class=\"detail-icon\" [style.backgroundColor]=\"getCategoryColor(0) + '15'\" [style.color]=\"getCategoryColor(0)\">\n <i [class]=\"selectedNode.category.IconClass || 'fa-solid fa-folder'\"></i>\n </div>\n <div class=\"detail-title\">\n <h2>{{selectedNode.category.Name}}</h2>\n @if (selectedNode.level > 0) {\n <span class=\"level-badge\">\n Level {{selectedNode.level + 1}}\n </span>\n }\n </div>\n <div class=\"detail-actions\">\n @if (UserCanUpdate) {\n <button class=\"action-btn\" (click)=\"editCategory(selectedNode)\" title=\"Edit\">\n <i class=\"fa-solid fa-pen\"></i>\n </button>\n }\n <button class=\"close-btn\" (click)=\"selectedNode = null\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n </div>\n <div class=\"detail-body\">\n <!-- Stats -->\n <div class=\"detail-stats\">\n <div class=\"detail-stat\">\n <div class=\"stat-value\">{{selectedNode.typeCount}}</div>\n <div class=\"stat-label\">Credential Types</div>\n </div>\n <div class=\"detail-stat\">\n <div class=\"stat-value\">{{selectedNode.children.length}}</div>\n <div class=\"stat-label\">Subcategories</div>\n </div>\n </div>\n <!-- Description -->\n @if (selectedNode.category.Description) {\n <div class=\"description-section\">\n <h3>\n <i class=\"fa-solid fa-align-left\"></i>\n Description\n </h3>\n <p class=\"description\">{{selectedNode.category.Description}}</p>\n </div>\n }\n <!-- Types in Category -->\n @if (selectedNode.typeCount > 0) {\n <div class=\"types-section\">\n <h3>\n <i class=\"fa-solid fa-shapes\"></i>\n Credential Types\n </h3>\n <div class=\"type-list\">\n @for (type of getTypesForCategory(selectedNode.category.Name); track type) {\n <div class=\"type-item\">\n <div class=\"type-icon\">\n <i [class]=\"type.IconClass || 'fa-solid fa-key'\"></i>\n </div>\n <div class=\"type-info\">\n <div class=\"type-name\">{{type.Name}}</div>\n @if (type.Description) {\n <div class=\"type-desc\">{{type.Description | slice:0:60}}</div>\n }\n </div>\n </div>\n }\n </div>\n </div>\n }\n <!-- Subcategories -->\n @if (selectedNode.children.length > 0) {\n <div class=\"subcategories-section\">\n <h3>\n <i class=\"fa-solid fa-folder-tree\"></i>\n Subcategories\n </h3>\n <div class=\"subcategory-list\">\n @for (child of selectedNode.children; track child) {\n <div class=\"subcategory-item\" (click)=\"selectNode(child)\">\n <i [class]=\"child.category.IconClass || 'fa-solid fa-folder'\"></i>\n <span>{{child.category.Name}}</span>\n @if (child.typeCount > 0) {\n <span class=\"sub-type-count\">{{child.typeCount}} types</span>\n }\n </div>\n }\n </div>\n </div>\n }\n <!-- Quick Actions -->\n <div class=\"detail-quick-actions\">\n @if (selectedNode.typeCount > 0) {\n <button\n class=\"btn-secondary\"\n (click)=\"viewTypesForCategory(selectedNode.category.Name)\"\n >\n <i class=\"fa-solid fa-shapes\"></i>\n View Types\n </button>\n }\n <button\n class=\"btn-primary\"\n (click)=\"createCredentialWithCategory(selectedNode.category.ID)\"\n >\n <i class=\"fa-solid fa-plus\"></i>\n Create Credential\n </button>\n </div>\n </div>\n </div>\n }\n <!-- No Selection -->\n @if (!selectedNode && categoryTree.length > 0) {\n <div class=\"no-selection\">\n <div class=\"no-selection-icon\">\n <i class=\"fa-solid fa-hand-pointer\"></i>\n </div>\n <h3>Select a Category</h3>\n <p>Click on a category to view its details and credential types</p>\n </div>\n }\n </div>\n }\n</div>\n\n<!-- Category Edit Panel -->\n<mj-credential-category-edit-panel\n #categoryEditPanel\n (saved)=\"onCategorySaved($any($event))\"\n (deleted)=\"onCategoryDeleted($any($event))\"\n></mj-credential-category-edit-panel>\n", styles: [".categories-container {\n padding: 24px;\n height: 100%;\n overflow-y: auto;\n background: var(--background-secondary, #f8fafc);\n}\n\n/* Header */\n.categories-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n margin-bottom: 20px;\n}\n\n.header-info {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.categories-title {\n font-size: 24px;\n font-weight: 700;\n color: var(--text-primary, #1f2937);\n margin: 0;\n}\n\n.header-stats {\n display: flex;\n gap: 16px;\n}\n\n.stat-item {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n}\n\n.stat-item i {\n font-size: 12px;\n color: var(--accent-color, #6366f1);\n}\n\n.header-actions {\n display: flex;\n gap: 8px;\n}\n\n/* Primary Button */\n.btn-primary {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 18px;\n background: linear-gradient(135deg, #6366f1 0%, #4f46e5 100%);\n color: white;\n border: none;\n border-radius: 8px;\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.2s ease;\n box-shadow: 0 2px 8px rgba(99, 102, 241, 0.3);\n}\n\n.btn-primary:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 12px rgba(99, 102, 241, 0.4);\n}\n\n.btn-primary:active {\n transform: translateY(0);\n}\n\n/* Toolbar */\n.toolbar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 16px;\n background: var(--card-background, #ffffff);\n border-radius: 12px;\n margin-bottom: 20px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);\n}\n\n.toolbar-left {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n}\n\n.toolbar-right {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n/* Search */\n.search-container {\n position: relative;\n flex: 1;\n max-width: 320px;\n}\n\n.search-container i.fa-search {\n position: absolute;\n left: 12px;\n top: 50%;\n transform: translateY(-50%);\n color: var(--text-secondary, #9ca3af);\n font-size: 13px;\n}\n\n.search-container input {\n width: 100%;\n padding: 8px 36px 8px 36px;\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 8px;\n font-size: 13px;\n background: var(--input-background, #f9fafb);\n transition: all 0.2s ease;\n}\n\n.search-container input:focus {\n outline: none;\n border-color: var(--accent-color, #6366f1);\n background: white;\n box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1);\n}\n\n.search-container input::placeholder {\n color: var(--text-secondary, #9ca3af);\n}\n\n.search-clear {\n position: absolute;\n right: 8px;\n top: 50%;\n transform: translateY(-50%);\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: var(--button-hover, #e5e7eb);\n border-radius: 50%;\n cursor: pointer;\n color: var(--text-secondary, #6b7280);\n font-size: 10px;\n transition: all 0.2s ease;\n}\n\n.search-clear:hover {\n background: var(--text-secondary, #9ca3af);\n color: white;\n}\n\n/* Toolbar Buttons */\n.btn-text {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 12px;\n background: transparent;\n border: none;\n border-radius: 6px;\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.btn-text:hover {\n background: var(--hover-background, #f3f4f6);\n color: var(--text-primary, #1f2937);\n}\n\n.btn-icon {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: none;\n border-radius: 8px;\n color: var(--text-secondary, #6b7280);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.btn-icon:hover {\n background: var(--hover-background, #f3f4f6);\n color: var(--text-primary, #1f2937);\n}\n\n/* Layout */\n.categories-layout {\n display: grid;\n grid-template-columns: 1fr 380px;\n gap: 20px;\n min-height: 500px;\n}\n\n/* Tree Panel */\n.tree-panel {\n background: var(--card-background, #ffffff);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n overflow: hidden;\n}\n\n.tree-container {\n max-height: calc(100vh - 300px);\n overflow-y: auto;\n}\n\n/* Tree Node */\n.tree-node {\n display: flex;\n align-items: center;\n border-bottom: 1px solid var(--border-color, #f3f4f6);\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.tree-node:last-child {\n border-bottom: none;\n}\n\n.tree-node:hover {\n background: var(--hover-background, #f9fafb);\n}\n\n.tree-node.selected {\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.08) 0%, rgba(99, 102, 241, 0.04) 100%);\n border-left: 3px solid var(--accent-color, #6366f1);\n}\n\n.node-content {\n display: flex;\n align-items: center;\n padding: 12px 16px;\n width: 100%;\n gap: 8px;\n}\n\n/* Expand Button */\n.expand-btn {\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: transparent;\n cursor: pointer;\n color: var(--text-secondary, #9ca3af);\n border-radius: 4px;\n transition: all 0.2s ease;\n flex-shrink: 0;\n}\n\n.expand-btn:hover {\n background: var(--button-hover, #e5e7eb);\n color: var(--text-primary, #1f2937);\n}\n\n.expand-btn i {\n font-size: 10px;\n transition: transform 0.2s ease;\n}\n\n.expand-placeholder {\n width: 24px;\n flex-shrink: 0;\n}\n\n/* Node Icon */\n.node-icon {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n flex-shrink: 0;\n}\n\n.node-icon i {\n font-size: 14px;\n}\n\n/* Node Info */\n.node-info {\n flex: 1;\n min-width: 0;\n}\n\n.node-name {\n font-weight: 600;\n font-size: 14px;\n color: var(--text-primary, #1f2937);\n line-height: 1.3;\n}\n\n.node-description {\n font-size: 12px;\n color: var(--text-secondary, #6b7280);\n margin-top: 2px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* Node Badges */\n.node-badges {\n display: flex;\n gap: 6px;\n flex-shrink: 0;\n}\n\n.badge {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 4px 8px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n}\n\n.badge.types {\n background: rgba(99, 102, 241, 0.1);\n color: var(--accent-color, #6366f1);\n}\n\n.badge.children {\n background: var(--badge-background, #f3f4f6);\n color: var(--text-secondary, #6b7280);\n}\n\n.badge i {\n font-size: 10px;\n}\n\n/* Node Actions */\n.node-actions {\n display: flex;\n gap: 4px;\n opacity: 0;\n transition: opacity 0.2s ease;\n flex-shrink: 0;\n}\n\n.tree-node:hover .node-actions {\n opacity: 1;\n}\n\n.action-btn {\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--button-background, #f3f4f6);\n border: none;\n border-radius: 6px;\n color: var(--text-secondary, #6b7280);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.action-btn:hover {\n background: var(--accent-color, #6366f1);\n color: white;\n}\n\n.action-btn.danger:hover {\n background: #ef4444;\n color: white;\n}\n\n.action-btn i {\n font-size: 12px;\n}\n\n/* Detail Panel */\n.detail-panel {\n background: var(--card-background, #ffffff);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n\n.detail-header {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 20px;\n border-bottom: 1px solid var(--border-color, #f3f4f6);\n}\n\n.detail-icon {\n width: 48px;\n height: 48px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 12px;\n flex-shrink: 0;\n}\n\n.detail-icon i {\n font-size: 20px;\n}\n\n.detail-title {\n flex: 1;\n min-width: 0;\n}\n\n.detail-title h2 {\n font-size: 18px;\n font-weight: 600;\n color: var(--text-primary, #1f2937);\n margin: 0;\n line-height: 1.3;\n}\n\n.level-badge {\n display: inline-block;\n margin-top: 4px;\n padding: 2px 8px;\n background: var(--badge-background, #f3f4f6);\n border-radius: 10px;\n font-size: 11px;\n color: var(--text-secondary, #6b7280);\n}\n\n.detail-actions {\n display: flex;\n gap: 8px;\n flex-shrink: 0;\n}\n\n.close-btn {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--button-background, #f3f4f6);\n border: none;\n border-radius: 8px;\n color: var(--text-secondary, #6b7280);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.close-btn:hover {\n background: var(--hover-background, #e5e7eb);\n color: var(--text-primary, #1f2937);\n}\n\n/* Detail Body */\n.detail-body {\n padding: 20px;\n flex: 1;\n overflow-y: auto;\n}\n\n/* Detail Stats */\n.detail-stats {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 12px;\n margin-bottom: 20px;\n}\n\n.detail-stat {\n background: var(--stat-background, #f9fafb);\n border-radius: 10px;\n padding: 16px;\n text-align: center;\n}\n\n.detail-stat .stat-value {\n font-size: 28px;\n font-weight: 700;\n color: var(--accent-color, #6366f1);\n line-height: 1;\n}\n\n.detail-stat .stat-label {\n font-size: 12px;\n color: var(--text-secondary, #6b7280);\n margin-top: 4px;\n}\n\n/* Description Section */\n.description-section {\n margin-bottom: 20px;\n}\n\n.description-section h3,\n.types-section h3,\n.subcategories-section h3 {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 13px;\n font-weight: 600;\n color: var(--text-secondary, #6b7280);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin: 0 0 12px 0;\n}\n\n.description-section h3 i,\n.types-section h3 i,\n.subcategories-section h3 i {\n font-size: 12px;\n}\n\n.description {\n font-size: 14px;\n color: var(--text-primary, #374151);\n line-height: 1.6;\n margin: 0;\n}\n\n/* Types Section */\n.types-section {\n margin-bottom: 20px;\n}\n\n.type-list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.type-item {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 12px;\n background: var(--item-background, #f9fafb);\n border-radius: 8px;\n transition: all 0.2s ease;\n}\n\n.type-item:hover {\n background: var(--hover-background, #f3f4f6);\n}\n\n.type-icon {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(99, 102, 241, 0.1);\n border-radius: 6px;\n flex-shrink: 0;\n}\n\n.type-icon i {\n font-size: 12px;\n color: var(--accent-color, #6366f1);\n}\n\n.type-info {\n flex: 1;\n min-width: 0;\n}\n\n.type-name {\n font-size: 13px;\n font-weight: 500;\n color: var(--text-primary, #1f2937);\n}\n\n.type-desc {\n font-size: 11px;\n color: var(--text-secondary, #6b7280);\n margin-top: 2px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* Subcategories Section */\n.subcategories-section {\n margin-bottom: 20px;\n}\n\n.subcategory-list {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.subcategory-item {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 12px;\n background: var(--item-background, #f9fafb);\n border-radius: 8px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.subcategory-item:hover {\n background: var(--hover-background, #f3f4f6);\n}\n\n.subcategory-item i {\n font-size: 14px;\n color: var(--accent-color, #6366f1);\n}\n\n.subcategory-item span {\n flex: 1;\n font-size: 13px;\n color: var(--text-primary, #1f2937);\n}\n\n.sub-type-count {\n font-size: 11px;\n color: var(--text-secondary, #6b7280);\n background: var(--badge-background, #e5e7eb);\n padding: 2px 8px;\n border-radius: 10px;\n}\n\n/* Quick Actions */\n.detail-quick-actions {\n margin-top: auto;\n padding-top: 16px;\n border-top: 1px solid var(--border-color, #f3f4f6);\n display: flex;\n gap: 8px;\n}\n\n.detail-quick-actions .btn-secondary,\n.detail-quick-actions .btn-primary {\n flex: 1;\n}\n\n.btn-secondary {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 12px;\n background: var(--button-background, #f3f4f6);\n border: none;\n border-radius: 8px;\n font-size: 13px;\n font-weight: 500;\n color: var(--text-primary, #374151);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.btn-secondary:hover {\n background: var(--hover-background, #e5e7eb);\n}\n\n/* No Selection State */\n.no-selection {\n background: var(--card-background, #ffffff);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px;\n text-align: center;\n}\n\n.no-selection-icon {\n width: 64px;\n height: 64px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--icon-background, #f3f4f6);\n border-radius: 50%;\n margin-bottom: 16px;\n}\n\n.no-selection-icon i {\n font-size: 24px;\n color: var(--text-secondary, #9ca3af);\n}\n\n.no-selection h3 {\n font-size: 16px;\n font-weight: 600;\n color: var(--text-primary, #1f2937);\n margin: 0 0 8px 0;\n}\n\n.no-selection p {\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n margin: 0;\n}\n\n/* Empty State */\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 64px 24px;\n background: var(--card-background, #ffffff);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n text-align: center;\n}\n\n.empty-icon {\n width: 80px;\n height: 80px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--icon-background, #f3f4f6);\n border-radius: 50%;\n margin-bottom: 20px;\n}\n\n.empty-icon i {\n font-size: 32px;\n color: var(--text-secondary, #d1d5db);\n}\n\n.empty-state h3 {\n font-size: 18px;\n font-weight: 600;\n color: var(--text-primary, #1f2937);\n margin: 0 0 8px 0;\n}\n\n.empty-state p {\n font-size: 14px;\n color: var(--text-secondary, #6b7280);\n margin: 0 0 20px 0;\n}\n\n.btn-link {\n background: none;\n border: none;\n color: var(--accent-color, #6366f1);\n cursor: pointer;\n font-size: inherit;\n padding: 0;\n text-decoration: underline;\n}\n\n.btn-link:hover {\n color: var(--accent-hover, #4f46e5);\n}\n\n/* Responsive */\n@media (max-width: 1024px) {\n .categories-layout {\n grid-template-columns: 1fr;\n }\n\n .detail-panel,\n .no-selection {\n display: none;\n }\n}\n\n@media (max-width: 768px) {\n .categories-container {\n padding: 16px;\n }\n\n .categories-header {\n flex-direction: column;\n align-items: flex-start;\n gap: 16px;\n }\n\n .toolbar {\n flex-direction: column;\n gap: 12px;\n }\n\n .toolbar-left,\n .toolbar-right {\n width: 100%;\n }\n\n .search-container {\n max-width: none;\n }\n\n .toolbar-right {\n justify-content: flex-end;\n }\n}\n"] }]
|
|
811
816
|
}], () => [{ type: i0.ChangeDetectorRef }, { type: i1.NavigationService }], { categoryEditPanel: [{
|
|
812
817
|
type: ViewChild,
|
|
813
818
|
args: ['categoryEditPanel']
|
|
814
819
|
}] }); })();
|
|
815
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CredentialsCategoriesResourceComponent, { className: "CredentialsCategoriesResourceComponent", filePath: "src/
|
|
820
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CredentialsCategoriesResourceComponent, { className: "CredentialsCategoriesResourceComponent", filePath: "src/credentials/components/credentials-categories-resource.component.ts", lineNumber: 24 }); })();
|
|
816
821
|
//# sourceMappingURL=credentials-categories-resource.component.js.map
|