@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
|
@@ -10,12 +10,12 @@ import * as i6 from "@progress/kendo-angular-buttons";
|
|
|
10
10
|
import * as i7 from "@memberjunction/ng-shared-generic";
|
|
11
11
|
const _c0 = a0 => ({ node: a0 });
|
|
12
12
|
const _c1 = () => ({ FullPath: "(No Parent - Root Level)", ID: null });
|
|
13
|
-
function
|
|
14
|
-
i0.ɵɵelement(0, "mj-loading",
|
|
13
|
+
function APIScopesPanelComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
14
|
+
i0.ɵɵelement(0, "mj-loading", 2);
|
|
15
15
|
} }
|
|
16
|
-
function
|
|
17
|
-
i0.ɵɵelementStart(0, "div",
|
|
18
|
-
i0.ɵɵelement(1, "i",
|
|
16
|
+
function APIScopesPanelComponent_Conditional_2_Conditional_23_Template(rf, ctx) { if (rf & 1) {
|
|
17
|
+
i0.ɵɵelementStart(0, "div", 22);
|
|
18
|
+
i0.ɵɵelement(1, "i", 14);
|
|
19
19
|
i0.ɵɵtext(2);
|
|
20
20
|
i0.ɵɵelementEnd();
|
|
21
21
|
} if (rf & 2) {
|
|
@@ -23,9 +23,9 @@ function APIScopesPanelComponent_ng_container_2_div_24_Template(rf, ctx) { if (r
|
|
|
23
23
|
i0.ɵɵadvance(2);
|
|
24
24
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.SuccessMessage, " ");
|
|
25
25
|
} }
|
|
26
|
-
function
|
|
27
|
-
i0.ɵɵelementStart(0, "div",
|
|
28
|
-
i0.ɵɵelement(1, "i",
|
|
26
|
+
function APIScopesPanelComponent_Conditional_2_Conditional_24_Template(rf, ctx) { if (rf & 1) {
|
|
27
|
+
i0.ɵɵelementStart(0, "div", 23);
|
|
28
|
+
i0.ɵɵelement(1, "i", 26);
|
|
29
29
|
i0.ɵɵtext(2);
|
|
30
30
|
i0.ɵɵelementEnd();
|
|
31
31
|
} if (rf & 2) {
|
|
@@ -33,23 +33,20 @@ function APIScopesPanelComponent_ng_container_2_div_25_Template(rf, ctx) { if (r
|
|
|
33
33
|
i0.ɵɵadvance(2);
|
|
34
34
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.ErrorMessage, " ");
|
|
35
35
|
} }
|
|
36
|
-
function
|
|
36
|
+
function APIScopesPanelComponent_Conditional_2_For_27_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
|
37
37
|
i0.ɵɵelementContainer(0);
|
|
38
38
|
} }
|
|
39
|
-
function
|
|
40
|
-
i0.ɵɵ
|
|
41
|
-
i0.ɵɵtemplate(1, APIScopesPanelComponent_ng_container_2_ng_container_27_ng_container_1_Template, 1, 0, "ng-container", 32);
|
|
42
|
-
i0.ɵɵelementContainerEnd();
|
|
39
|
+
function APIScopesPanelComponent_Conditional_2_For_27_Template(rf, ctx) { if (rf & 1) {
|
|
40
|
+
i0.ɵɵtemplate(0, APIScopesPanelComponent_Conditional_2_For_27_ng_container_0_Template, 1, 0, "ng-container", 27);
|
|
43
41
|
} if (rf & 2) {
|
|
44
42
|
const node_r3 = ctx.$implicit;
|
|
45
43
|
i0.ɵɵnextContext();
|
|
46
44
|
const scopeNode_r4 = i0.ɵɵreference(30);
|
|
47
|
-
i0.ɵɵadvance();
|
|
48
45
|
i0.ɵɵproperty("ngTemplateOutlet", scopeNode_r4)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c0, node_r3));
|
|
49
46
|
} }
|
|
50
|
-
function
|
|
51
|
-
i0.ɵɵelementStart(0, "div",
|
|
52
|
-
i0.ɵɵelement(1, "i",
|
|
47
|
+
function APIScopesPanelComponent_Conditional_2_Conditional_28_Template(rf, ctx) { if (rf & 1) {
|
|
48
|
+
i0.ɵɵelementStart(0, "div", 25);
|
|
49
|
+
i0.ɵɵelement(1, "i", 7);
|
|
53
50
|
i0.ɵɵelementStart(2, "span");
|
|
54
51
|
i0.ɵɵtext(3, "No scopes configured");
|
|
55
52
|
i0.ɵɵelementEnd();
|
|
@@ -57,22 +54,22 @@ function APIScopesPanelComponent_ng_container_2_div_28_Template(rf, ctx) { if (r
|
|
|
57
54
|
i0.ɵɵtext(5, "Create scopes to define API access permissions");
|
|
58
55
|
i0.ɵɵelementEnd()();
|
|
59
56
|
} }
|
|
60
|
-
function
|
|
57
|
+
function APIScopesPanelComponent_Conditional_2_ng_template_29_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
61
58
|
const _r6 = i0.ɵɵgetCurrentView();
|
|
62
|
-
i0.ɵɵelementStart(0, "button",
|
|
63
|
-
i0.ɵɵlistener("click", function
|
|
64
|
-
i0.ɵɵelement(1, "i",
|
|
59
|
+
i0.ɵɵelementStart(0, "button", 47);
|
|
60
|
+
i0.ɵɵlistener("click", function APIScopesPanelComponent_Conditional_2_ng_template_29_Conditional_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r6); const node_r7 = i0.ɵɵnextContext().node; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.toggleExpanded(node_r7)); });
|
|
61
|
+
i0.ɵɵelement(1, "i", 48);
|
|
65
62
|
i0.ɵɵelementEnd();
|
|
66
63
|
} if (rf & 2) {
|
|
67
64
|
const node_r7 = i0.ɵɵnextContext().node;
|
|
68
65
|
i0.ɵɵadvance();
|
|
69
66
|
i0.ɵɵclassProp("fa-chevron-right", !node_r7.expanded)("fa-chevron-down", node_r7.expanded);
|
|
70
67
|
} }
|
|
71
|
-
function
|
|
72
|
-
i0.ɵɵelement(0, "span",
|
|
68
|
+
function APIScopesPanelComponent_Conditional_2_ng_template_29_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
69
|
+
i0.ɵɵelement(0, "span", 31);
|
|
73
70
|
} }
|
|
74
|
-
function
|
|
75
|
-
i0.ɵɵelementStart(0, "span",
|
|
71
|
+
function APIScopesPanelComponent_Conditional_2_ng_template_29_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
72
|
+
i0.ɵɵelementStart(0, "span", 36);
|
|
76
73
|
i0.ɵɵtext(1);
|
|
77
74
|
i0.ɵɵelementEnd();
|
|
78
75
|
} if (rf & 2) {
|
|
@@ -80,13 +77,13 @@ function APIScopesPanelComponent_ng_container_2_ng_template_29_span_10_Template(
|
|
|
80
77
|
i0.ɵɵadvance();
|
|
81
78
|
i0.ɵɵtextInterpolate1(" ", node_r7.scope.FullPath, " ");
|
|
82
79
|
} }
|
|
83
|
-
function
|
|
84
|
-
i0.ɵɵelementStart(0, "span",
|
|
80
|
+
function APIScopesPanelComponent_Conditional_2_ng_template_29_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
81
|
+
i0.ɵɵelementStart(0, "span", 37);
|
|
85
82
|
i0.ɵɵtext(1, "Inactive");
|
|
86
83
|
i0.ɵɵelementEnd();
|
|
87
84
|
} }
|
|
88
|
-
function
|
|
89
|
-
i0.ɵɵelementStart(0, "span",
|
|
85
|
+
function APIScopesPanelComponent_Conditional_2_ng_template_29_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
86
|
+
i0.ɵɵelementStart(0, "span", 40);
|
|
90
87
|
i0.ɵɵtext(1);
|
|
91
88
|
i0.ɵɵelementEnd();
|
|
92
89
|
} if (rf & 2) {
|
|
@@ -94,8 +91,8 @@ function APIScopesPanelComponent_ng_container_2_ng_template_29_span_15_Template(
|
|
|
94
91
|
i0.ɵɵadvance();
|
|
95
92
|
i0.ɵɵtextInterpolate1(" ", node_r7.scope.ResourceType, " ");
|
|
96
93
|
} }
|
|
97
|
-
function
|
|
98
|
-
i0.ɵɵelementStart(0, "span",
|
|
94
|
+
function APIScopesPanelComponent_Conditional_2_ng_template_29_Conditional_16_Template(rf, ctx) { if (rf & 1) {
|
|
95
|
+
i0.ɵɵelementStart(0, "span", 41);
|
|
99
96
|
i0.ɵɵtext(1);
|
|
100
97
|
i0.ɵɵelementEnd();
|
|
101
98
|
} if (rf & 2) {
|
|
@@ -103,56 +100,56 @@ function APIScopesPanelComponent_ng_container_2_ng_template_29_span_16_Template(
|
|
|
103
100
|
i0.ɵɵadvance();
|
|
104
101
|
i0.ɵɵtextInterpolate1(" ", node_r7.scope.Description, " ");
|
|
105
102
|
} }
|
|
106
|
-
function
|
|
103
|
+
function APIScopesPanelComponent_Conditional_2_ng_template_29_Conditional_22_For_2_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
|
107
104
|
i0.ɵɵelementContainer(0);
|
|
108
105
|
} }
|
|
109
|
-
function
|
|
110
|
-
i0.ɵɵ
|
|
111
|
-
i0.ɵɵtemplate(1, APIScopesPanelComponent_ng_container_2_ng_template_29_div_22_ng_container_1_ng_container_1_Template, 1, 0, "ng-container", 32);
|
|
112
|
-
i0.ɵɵelementContainerEnd();
|
|
106
|
+
function APIScopesPanelComponent_Conditional_2_ng_template_29_Conditional_22_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
107
|
+
i0.ɵɵtemplate(0, APIScopesPanelComponent_Conditional_2_ng_template_29_Conditional_22_For_2_ng_container_0_Template, 1, 0, "ng-container", 27);
|
|
113
108
|
} if (rf & 2) {
|
|
114
109
|
const child_r8 = ctx.$implicit;
|
|
115
110
|
i0.ɵɵnextContext(3);
|
|
116
111
|
const scopeNode_r4 = i0.ɵɵreference(30);
|
|
117
|
-
i0.ɵɵadvance();
|
|
118
112
|
i0.ɵɵproperty("ngTemplateOutlet", scopeNode_r4)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c0, child_r8));
|
|
119
113
|
} }
|
|
120
|
-
function
|
|
121
|
-
i0.ɵɵelementStart(0, "div",
|
|
122
|
-
i0.ɵɵ
|
|
114
|
+
function APIScopesPanelComponent_Conditional_2_ng_template_29_Conditional_22_Template(rf, ctx) { if (rf & 1) {
|
|
115
|
+
i0.ɵɵelementStart(0, "div", 46);
|
|
116
|
+
i0.ɵɵrepeaterCreate(1, APIScopesPanelComponent_Conditional_2_ng_template_29_Conditional_22_For_2_Template, 1, 4, "ng-container", null, i0.ɵɵrepeaterTrackByIdentity);
|
|
123
117
|
i0.ɵɵelementEnd();
|
|
124
118
|
} if (rf & 2) {
|
|
125
119
|
const node_r7 = i0.ɵɵnextContext().node;
|
|
126
120
|
i0.ɵɵadvance();
|
|
127
|
-
i0.ɵɵ
|
|
121
|
+
i0.ɵɵrepeater(node_r7.children);
|
|
128
122
|
} }
|
|
129
|
-
function
|
|
123
|
+
function APIScopesPanelComponent_Conditional_2_ng_template_29_Template(rf, ctx) { if (rf & 1) {
|
|
130
124
|
const _r5 = i0.ɵɵgetCurrentView();
|
|
131
|
-
i0.ɵɵelementStart(0, "div",
|
|
132
|
-
i0.ɵɵ
|
|
133
|
-
i0.ɵɵ
|
|
134
|
-
i0.ɵɵ
|
|
135
|
-
i0.ɵɵ
|
|
136
|
-
i0.ɵɵ
|
|
125
|
+
i0.ɵɵelementStart(0, "div", 28)(1, "div", 29);
|
|
126
|
+
i0.ɵɵconditionalCreate(2, APIScopesPanelComponent_Conditional_2_ng_template_29_Conditional_2_Template, 2, 4, "button", 30);
|
|
127
|
+
i0.ɵɵconditionalCreate(3, APIScopesPanelComponent_Conditional_2_ng_template_29_Conditional_3_Template, 1, 0, "span", 31);
|
|
128
|
+
i0.ɵɵelementStart(4, "div", 32);
|
|
129
|
+
i0.ɵɵlistener("click", function APIScopesPanelComponent_Conditional_2_ng_template_29_Template_div_click_4_listener() { const node_r7 = i0.ɵɵrestoreView(_r5).node; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.openEditDialog(node_r7.scope)); });
|
|
130
|
+
i0.ɵɵelementStart(5, "div", 33);
|
|
131
|
+
i0.ɵɵelement(6, "i", 12);
|
|
137
132
|
i0.ɵɵelementEnd();
|
|
138
|
-
i0.ɵɵelementStart(7, "div",
|
|
133
|
+
i0.ɵɵelementStart(7, "div", 34)(8, "div", 35);
|
|
139
134
|
i0.ɵɵtext(9);
|
|
140
|
-
i0.ɵɵ
|
|
135
|
+
i0.ɵɵconditionalCreate(10, APIScopesPanelComponent_Conditional_2_ng_template_29_Conditional_10_Template, 2, 1, "span", 36);
|
|
136
|
+
i0.ɵɵconditionalCreate(11, APIScopesPanelComponent_Conditional_2_ng_template_29_Conditional_11_Template, 2, 0, "span", 37);
|
|
141
137
|
i0.ɵɵelementEnd();
|
|
142
|
-
i0.ɵɵelementStart(12, "div",
|
|
138
|
+
i0.ɵɵelementStart(12, "div", 38)(13, "span", 39);
|
|
143
139
|
i0.ɵɵtext(14);
|
|
144
140
|
i0.ɵɵelementEnd();
|
|
145
|
-
i0.ɵɵ
|
|
141
|
+
i0.ɵɵconditionalCreate(15, APIScopesPanelComponent_Conditional_2_ng_template_29_Conditional_15_Template, 2, 1, "span", 40);
|
|
142
|
+
i0.ɵɵconditionalCreate(16, APIScopesPanelComponent_Conditional_2_ng_template_29_Conditional_16_Template, 2, 1, "span", 41);
|
|
146
143
|
i0.ɵɵelementEnd()()();
|
|
147
|
-
i0.ɵɵelementStart(17, "div",
|
|
148
|
-
i0.ɵɵlistener("click", function
|
|
149
|
-
i0.ɵɵelement(19, "i",
|
|
144
|
+
i0.ɵɵelementStart(17, "div", 42)(18, "button", 43);
|
|
145
|
+
i0.ɵɵlistener("click", function APIScopesPanelComponent_Conditional_2_ng_template_29_Template_button_click_18_listener() { const node_r7 = i0.ɵɵrestoreView(_r5).node; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.openCreateDialog(node_r7.scope)); });
|
|
146
|
+
i0.ɵɵelement(19, "i", 21);
|
|
150
147
|
i0.ɵɵelementEnd();
|
|
151
|
-
i0.ɵɵelementStart(20, "button",
|
|
152
|
-
i0.ɵɵlistener("click", function
|
|
153
|
-
i0.ɵɵelement(21, "i",
|
|
148
|
+
i0.ɵɵelementStart(20, "button", 44);
|
|
149
|
+
i0.ɵɵlistener("click", function APIScopesPanelComponent_Conditional_2_ng_template_29_Template_button_click_20_listener() { const node_r7 = i0.ɵɵrestoreView(_r5).node; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.openEditDialog(node_r7.scope)); });
|
|
150
|
+
i0.ɵɵelement(21, "i", 45);
|
|
154
151
|
i0.ɵɵelementEnd()()();
|
|
155
|
-
i0.ɵɵ
|
|
152
|
+
i0.ɵɵconditionalCreate(22, APIScopesPanelComponent_Conditional_2_ng_template_29_Conditional_22_Template, 3, 0, "div", 46);
|
|
156
153
|
i0.ɵɵelementEnd();
|
|
157
154
|
} if (rf & 2) {
|
|
158
155
|
const node_r7 = ctx.node;
|
|
@@ -161,82 +158,82 @@ function APIScopesPanelComponent_ng_container_2_ng_template_29_Template(rf, ctx)
|
|
|
161
158
|
i0.ɵɵadvance();
|
|
162
159
|
i0.ɵɵclassProp("inactive", !node_r7.scope.IsActive);
|
|
163
160
|
i0.ɵɵadvance();
|
|
164
|
-
i0.ɵɵ
|
|
161
|
+
i0.ɵɵconditional(node_r7.children.length > 0 ? 2 : -1);
|
|
165
162
|
i0.ɵɵadvance();
|
|
166
|
-
i0.ɵɵ
|
|
163
|
+
i0.ɵɵconditional(node_r7.children.length === 0 ? 3 : -1);
|
|
167
164
|
i0.ɵɵadvance(2);
|
|
168
165
|
i0.ɵɵstyleProp("background-color", ctx_r1.getCategoryColor(node_r7.scope.Category));
|
|
169
166
|
i0.ɵɵadvance(4);
|
|
170
167
|
i0.ɵɵtextInterpolate1(" ", node_r7.scope.Name, " ");
|
|
171
168
|
i0.ɵɵadvance();
|
|
172
|
-
i0.ɵɵ
|
|
169
|
+
i0.ɵɵconditional(node_r7.scope.FullPath && node_r7.scope.FullPath !== node_r7.scope.Name ? 10 : -1);
|
|
173
170
|
i0.ɵɵadvance();
|
|
174
|
-
i0.ɵɵ
|
|
171
|
+
i0.ɵɵconditional(!node_r7.scope.IsActive ? 11 : -1);
|
|
175
172
|
i0.ɵɵadvance(2);
|
|
176
173
|
i0.ɵɵstyleProp("color", ctx_r1.getCategoryColor(node_r7.scope.Category));
|
|
177
174
|
i0.ɵɵadvance();
|
|
178
175
|
i0.ɵɵtextInterpolate1(" ", node_r7.scope.Category, " ");
|
|
179
176
|
i0.ɵɵadvance();
|
|
180
|
-
i0.ɵɵ
|
|
177
|
+
i0.ɵɵconditional(node_r7.scope.ResourceType ? 15 : -1);
|
|
181
178
|
i0.ɵɵadvance();
|
|
182
|
-
i0.ɵɵ
|
|
179
|
+
i0.ɵɵconditional(node_r7.scope.Description ? 16 : -1);
|
|
183
180
|
i0.ɵɵadvance(6);
|
|
184
|
-
i0.ɵɵ
|
|
181
|
+
i0.ɵɵconditional(node_r7.expanded && node_r7.children.length > 0 ? 22 : -1);
|
|
185
182
|
} }
|
|
186
|
-
function
|
|
183
|
+
function APIScopesPanelComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
187
184
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
188
|
-
i0.ɵɵ
|
|
189
|
-
i0.ɵɵ
|
|
190
|
-
i0.ɵɵ
|
|
191
|
-
i0.ɵɵtext(5, " API Scopes ");
|
|
185
|
+
i0.ɵɵelementStart(0, "div", 4)(1, "div", 5)(2, "h3", 6);
|
|
186
|
+
i0.ɵɵelement(3, "i", 7);
|
|
187
|
+
i0.ɵɵtext(4, " API Scopes ");
|
|
192
188
|
i0.ɵɵelementEnd();
|
|
193
|
-
i0.ɵɵelementStart(
|
|
194
|
-
i0.ɵɵtext(
|
|
189
|
+
i0.ɵɵelementStart(5, "p", 8);
|
|
190
|
+
i0.ɵɵtext(6, "Manage hierarchical permission scopes for API access");
|
|
195
191
|
i0.ɵɵelementEnd()();
|
|
196
|
-
i0.ɵɵelementStart(
|
|
197
|
-
i0.ɵɵelement(
|
|
198
|
-
i0.ɵɵtext(
|
|
192
|
+
i0.ɵɵelementStart(7, "div", 9)(8, "div", 10)(9, "span", 11);
|
|
193
|
+
i0.ɵɵelement(10, "i", 12);
|
|
194
|
+
i0.ɵɵtext(11);
|
|
199
195
|
i0.ɵɵelementEnd();
|
|
200
|
-
i0.ɵɵelementStart(
|
|
201
|
-
i0.ɵɵelement(
|
|
202
|
-
i0.ɵɵtext(
|
|
196
|
+
i0.ɵɵelementStart(12, "span", 13);
|
|
197
|
+
i0.ɵɵelement(13, "i", 14);
|
|
198
|
+
i0.ɵɵtext(14);
|
|
203
199
|
i0.ɵɵelementEnd()();
|
|
204
|
-
i0.ɵɵelementStart(
|
|
205
|
-
i0.ɵɵlistener("click", function
|
|
206
|
-
i0.ɵɵelement(
|
|
200
|
+
i0.ɵɵelementStart(15, "div", 15)(16, "button", 16);
|
|
201
|
+
i0.ɵɵlistener("click", function APIScopesPanelComponent_Conditional_2_Template_button_click_16_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.expandAll()); });
|
|
202
|
+
i0.ɵɵelement(17, "i", 17);
|
|
207
203
|
i0.ɵɵelementEnd();
|
|
208
|
-
i0.ɵɵelementStart(
|
|
209
|
-
i0.ɵɵlistener("click", function
|
|
210
|
-
i0.ɵɵelement(
|
|
204
|
+
i0.ɵɵelementStart(18, "button", 18);
|
|
205
|
+
i0.ɵɵlistener("click", function APIScopesPanelComponent_Conditional_2_Template_button_click_18_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.collapseAll()); });
|
|
206
|
+
i0.ɵɵelement(19, "i", 19);
|
|
211
207
|
i0.ɵɵelementEnd()();
|
|
212
|
-
i0.ɵɵelementStart(
|
|
213
|
-
i0.ɵɵlistener("click", function
|
|
214
|
-
i0.ɵɵelement(
|
|
215
|
-
i0.ɵɵtext(
|
|
208
|
+
i0.ɵɵelementStart(20, "button", 20);
|
|
209
|
+
i0.ɵɵlistener("click", function APIScopesPanelComponent_Conditional_2_Template_button_click_20_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.openCreateDialog()); });
|
|
210
|
+
i0.ɵɵelement(21, "i", 21);
|
|
211
|
+
i0.ɵɵtext(22, " New Scope ");
|
|
216
212
|
i0.ɵɵelementEnd()()();
|
|
217
|
-
i0.ɵɵ
|
|
218
|
-
i0.ɵɵ
|
|
219
|
-
i0.ɵɵ
|
|
213
|
+
i0.ɵɵconditionalCreate(23, APIScopesPanelComponent_Conditional_2_Conditional_23_Template, 3, 1, "div", 22);
|
|
214
|
+
i0.ɵɵconditionalCreate(24, APIScopesPanelComponent_Conditional_2_Conditional_24_Template, 3, 1, "div", 23);
|
|
215
|
+
i0.ɵɵelementStart(25, "div", 24);
|
|
216
|
+
i0.ɵɵrepeaterCreate(26, APIScopesPanelComponent_Conditional_2_For_27_Template, 1, 4, "ng-container", null, i0.ɵɵrepeaterTrackByIdentity);
|
|
217
|
+
i0.ɵɵconditionalCreate(28, APIScopesPanelComponent_Conditional_2_Conditional_28_Template, 6, 0, "div", 25);
|
|
220
218
|
i0.ɵɵelementEnd();
|
|
221
|
-
i0.ɵɵtemplate(29,
|
|
222
|
-
i0.ɵɵelementContainerEnd();
|
|
219
|
+
i0.ɵɵtemplate(29, APIScopesPanelComponent_Conditional_2_ng_template_29_Template, 23, 17, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
|
|
223
220
|
} if (rf & 2) {
|
|
224
221
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
225
|
-
i0.ɵɵadvance(
|
|
222
|
+
i0.ɵɵadvance(11);
|
|
226
223
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.getTotalCount(), " total ");
|
|
227
224
|
i0.ɵɵadvance(3);
|
|
228
225
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.getActiveCount(), " active ");
|
|
229
226
|
i0.ɵɵadvance(9);
|
|
230
|
-
i0.ɵɵ
|
|
227
|
+
i0.ɵɵconditional(ctx_r1.SuccessMessage ? 23 : -1);
|
|
231
228
|
i0.ɵɵadvance();
|
|
232
|
-
i0.ɵɵ
|
|
229
|
+
i0.ɵɵconditional(ctx_r1.ErrorMessage ? 24 : -1);
|
|
233
230
|
i0.ɵɵadvance(2);
|
|
234
|
-
i0.ɵɵ
|
|
235
|
-
i0.ɵɵadvance();
|
|
236
|
-
i0.ɵɵ
|
|
231
|
+
i0.ɵɵrepeater(ctx_r1.ScopeTree);
|
|
232
|
+
i0.ɵɵadvance(2);
|
|
233
|
+
i0.ɵɵconditional(ctx_r1.ScopeTree.length === 0 ? 28 : -1);
|
|
237
234
|
} }
|
|
238
|
-
function
|
|
239
|
-
i0.ɵɵelementStart(0, "span",
|
|
235
|
+
function APIScopesPanelComponent_Conditional_3_Conditional_19_Template(rf, ctx) { if (rf & 1) {
|
|
236
|
+
i0.ɵɵelementStart(0, "span", 56);
|
|
240
237
|
i0.ɵɵtext(1, " Full path will be: ");
|
|
241
238
|
i0.ɵɵelementStart(2, "code");
|
|
242
239
|
i0.ɵɵtext(3);
|
|
@@ -244,16 +241,16 @@ function APIScopesPanelComponent_kendo_window_3_span_19_Template(rf, ctx) { if (
|
|
|
244
241
|
} if (rf & 2) {
|
|
245
242
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
246
243
|
i0.ɵɵadvance(3);
|
|
247
|
-
i0.ɵɵtextInterpolate2("", ctx_r1.SelectedParentScope.FullPath, ":", ctx_r1.EditName || "..."
|
|
244
|
+
i0.ɵɵtextInterpolate2("", ctx_r1.SelectedParentScope.FullPath, ":", ctx_r1.EditName || "...");
|
|
248
245
|
} }
|
|
249
|
-
function
|
|
250
|
-
i0.ɵɵelement(0, "mj-loading",
|
|
246
|
+
function APIScopesPanelComponent_Conditional_3_Conditional_43_Template(rf, ctx) { if (rf & 1) {
|
|
247
|
+
i0.ɵɵelement(0, "mj-loading", 68);
|
|
251
248
|
} if (rf & 2) {
|
|
252
249
|
i0.ɵɵproperty("showText", false);
|
|
253
250
|
} }
|
|
254
|
-
function
|
|
251
|
+
function APIScopesPanelComponent_Conditional_3_Conditional_44_Template(rf, ctx) { if (rf & 1) {
|
|
255
252
|
i0.ɵɵelementStart(0, "span");
|
|
256
|
-
i0.ɵɵelement(1, "i",
|
|
253
|
+
i0.ɵɵelement(1, "i", 70);
|
|
257
254
|
i0.ɵɵtext(2);
|
|
258
255
|
i0.ɵɵelementEnd();
|
|
259
256
|
} if (rf & 2) {
|
|
@@ -261,69 +258,70 @@ function APIScopesPanelComponent_kendo_window_3_span_44_Template(rf, ctx) { if (
|
|
|
261
258
|
i0.ɵɵadvance(2);
|
|
262
259
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.EditingScope ? "Update" : "Create", " ");
|
|
263
260
|
} }
|
|
264
|
-
function
|
|
261
|
+
function APIScopesPanelComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
265
262
|
const _r9 = i0.ɵɵgetCurrentView();
|
|
266
|
-
i0.ɵɵelementStart(0, "kendo-window",
|
|
267
|
-
i0.ɵɵlistener("close", function
|
|
268
|
-
i0.ɵɵelementStart(1, "kendo-window-titlebar")(2, "div",
|
|
269
|
-
i0.ɵɵelement(3, "i",
|
|
263
|
+
i0.ɵɵelementStart(0, "kendo-window", 49);
|
|
264
|
+
i0.ɵɵlistener("close", function APIScopesPanelComponent_Conditional_3_Template_kendo_window_close_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closeDialogs()); });
|
|
265
|
+
i0.ɵɵelementStart(1, "kendo-window-titlebar")(2, "div", 50);
|
|
266
|
+
i0.ɵɵelement(3, "i", 7);
|
|
270
267
|
i0.ɵɵelementStart(4, "span");
|
|
271
268
|
i0.ɵɵtext(5);
|
|
272
269
|
i0.ɵɵelementEnd()();
|
|
273
|
-
i0.ɵɵelementStart(6, "button",
|
|
274
|
-
i0.ɵɵlistener("click", function
|
|
275
|
-
i0.ɵɵelement(7, "i",
|
|
270
|
+
i0.ɵɵelementStart(6, "button", 51);
|
|
271
|
+
i0.ɵɵlistener("click", function APIScopesPanelComponent_Conditional_3_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closeDialogs()); });
|
|
272
|
+
i0.ɵɵelement(7, "i", 52);
|
|
276
273
|
i0.ɵɵelementEnd()();
|
|
277
|
-
i0.ɵɵelementStart(8, "div",
|
|
274
|
+
i0.ɵɵelementStart(8, "div", 53)(9, "div", 54)(10, "label");
|
|
278
275
|
i0.ɵɵtext(11, "Scope Name *");
|
|
279
276
|
i0.ɵɵelementEnd();
|
|
280
|
-
i0.ɵɵelementStart(12, "input",
|
|
281
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
277
|
+
i0.ɵɵelementStart(12, "input", 55);
|
|
278
|
+
i0.ɵɵtwoWayListener("ngModelChange", function APIScopesPanelComponent_Conditional_3_Template_input_ngModelChange_12_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.EditName, $event) || (ctx_r1.EditName = $event); return i0.ɵɵresetView($event); });
|
|
282
279
|
i0.ɵɵelementEnd();
|
|
283
|
-
i0.ɵɵelementStart(13, "span",
|
|
280
|
+
i0.ɵɵelementStart(13, "span", 56);
|
|
284
281
|
i0.ɵɵtext(14, "Use lowercase, single word. Will be combined with parent for full path.");
|
|
285
282
|
i0.ɵɵelementEnd()();
|
|
286
|
-
i0.ɵɵelementStart(15, "div",
|
|
283
|
+
i0.ɵɵelementStart(15, "div", 54)(16, "label");
|
|
287
284
|
i0.ɵɵtext(17, "Parent Scope");
|
|
288
285
|
i0.ɵɵelementEnd();
|
|
289
|
-
i0.ɵɵelementStart(18, "kendo-dropdownlist",
|
|
290
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
286
|
+
i0.ɵɵelementStart(18, "kendo-dropdownlist", 57);
|
|
287
|
+
i0.ɵɵtwoWayListener("ngModelChange", function APIScopesPanelComponent_Conditional_3_Template_kendo_dropdownlist_ngModelChange_18_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.EditParentId, $event) || (ctx_r1.EditParentId = $event); return i0.ɵɵresetView($event); });
|
|
291
288
|
i0.ɵɵelementEnd();
|
|
292
|
-
i0.ɵɵ
|
|
289
|
+
i0.ɵɵconditionalCreate(19, APIScopesPanelComponent_Conditional_3_Conditional_19_Template, 4, 2, "span", 56);
|
|
293
290
|
i0.ɵɵelementEnd();
|
|
294
|
-
i0.ɵɵelementStart(20, "div",
|
|
291
|
+
i0.ɵɵelementStart(20, "div", 58)(21, "div", 59)(22, "label");
|
|
295
292
|
i0.ɵɵtext(23, "Category");
|
|
296
293
|
i0.ɵɵelementEnd();
|
|
297
|
-
i0.ɵɵelementStart(24, "kendo-dropdownlist",
|
|
298
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
294
|
+
i0.ɵɵelementStart(24, "kendo-dropdownlist", 60);
|
|
295
|
+
i0.ɵɵtwoWayListener("ngModelChange", function APIScopesPanelComponent_Conditional_3_Template_kendo_dropdownlist_ngModelChange_24_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.EditCategory, $event) || (ctx_r1.EditCategory = $event); return i0.ɵɵresetView($event); });
|
|
299
296
|
i0.ɵɵelementEnd()();
|
|
300
|
-
i0.ɵɵelementStart(25, "div",
|
|
297
|
+
i0.ɵɵelementStart(25, "div", 59)(26, "label");
|
|
301
298
|
i0.ɵɵtext(27, "Resource Type");
|
|
302
299
|
i0.ɵɵelementEnd();
|
|
303
|
-
i0.ɵɵelementStart(28, "kendo-dropdownlist",
|
|
304
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
300
|
+
i0.ɵɵelementStart(28, "kendo-dropdownlist", 61);
|
|
301
|
+
i0.ɵɵtwoWayListener("ngModelChange", function APIScopesPanelComponent_Conditional_3_Template_kendo_dropdownlist_ngModelChange_28_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.EditResourceType, $event) || (ctx_r1.EditResourceType = $event); return i0.ɵɵresetView($event); });
|
|
305
302
|
i0.ɵɵelementEnd()()();
|
|
306
|
-
i0.ɵɵelementStart(29, "div",
|
|
303
|
+
i0.ɵɵelementStart(29, "div", 54)(30, "label");
|
|
307
304
|
i0.ɵɵtext(31, "Description");
|
|
308
305
|
i0.ɵɵelementEnd();
|
|
309
|
-
i0.ɵɵelementStart(32, "textarea",
|
|
310
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
306
|
+
i0.ɵɵelementStart(32, "textarea", 62);
|
|
307
|
+
i0.ɵɵtwoWayListener("ngModelChange", function APIScopesPanelComponent_Conditional_3_Template_textarea_ngModelChange_32_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.EditDescription, $event) || (ctx_r1.EditDescription = $event); return i0.ɵɵresetView($event); });
|
|
311
308
|
i0.ɵɵelementEnd()();
|
|
312
|
-
i0.ɵɵelementStart(33, "div",
|
|
313
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
309
|
+
i0.ɵɵelementStart(33, "div", 54)(34, "label", 63)(35, "input", 64);
|
|
310
|
+
i0.ɵɵtwoWayListener("ngModelChange", function APIScopesPanelComponent_Conditional_3_Template_input_ngModelChange_35_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.EditIsActive, $event) || (ctx_r1.EditIsActive = $event); return i0.ɵɵresetView($event); });
|
|
314
311
|
i0.ɵɵelementEnd();
|
|
315
312
|
i0.ɵɵelementStart(36, "div")(37, "span");
|
|
316
313
|
i0.ɵɵtext(38, "Active");
|
|
317
314
|
i0.ɵɵelementEnd();
|
|
318
|
-
i0.ɵɵelementStart(39, "span",
|
|
315
|
+
i0.ɵɵelementStart(39, "span", 65);
|
|
319
316
|
i0.ɵɵtext(40, "Inactive scopes cannot be assigned to keys or applications");
|
|
320
317
|
i0.ɵɵelementEnd()()()();
|
|
321
|
-
i0.ɵɵelementStart(41, "div",
|
|
322
|
-
i0.ɵɵlistener("click", function
|
|
323
|
-
i0.ɵɵ
|
|
318
|
+
i0.ɵɵelementStart(41, "div", 66)(42, "button", 67);
|
|
319
|
+
i0.ɵɵlistener("click", function APIScopesPanelComponent_Conditional_3_Template_button_click_42_listener() { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.saveScope()); });
|
|
320
|
+
i0.ɵɵconditionalCreate(43, APIScopesPanelComponent_Conditional_3_Conditional_43_Template, 1, 1, "mj-loading", 68);
|
|
321
|
+
i0.ɵɵconditionalCreate(44, APIScopesPanelComponent_Conditional_3_Conditional_44_Template, 3, 1, "span");
|
|
324
322
|
i0.ɵɵelementEnd();
|
|
325
|
-
i0.ɵɵelementStart(45, "button",
|
|
326
|
-
i0.ɵɵlistener("click", function
|
|
323
|
+
i0.ɵɵelementStart(45, "button", 69);
|
|
324
|
+
i0.ɵɵlistener("click", function APIScopesPanelComponent_Conditional_3_Template_button_click_45_listener() { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closeDialogs()); });
|
|
327
325
|
i0.ɵɵtext(46, "Cancel");
|
|
328
326
|
i0.ɵɵelementEnd()()()();
|
|
329
327
|
} if (rf & 2) {
|
|
@@ -337,7 +335,7 @@ function APIScopesPanelComponent_kendo_window_3_Template(rf, ctx) { if (rf & 1)
|
|
|
337
335
|
i0.ɵɵtwoWayProperty("ngModel", ctx_r1.EditParentId);
|
|
338
336
|
i0.ɵɵproperty("data", ctx_r1.getParentOptions())("textField", "FullPath")("valueField", "ID")("valuePrimitive", true)("defaultItem", i0.ɵɵpureFunction0(29, _c1));
|
|
339
337
|
i0.ɵɵadvance();
|
|
340
|
-
i0.ɵɵ
|
|
338
|
+
i0.ɵɵconditional(ctx_r1.SelectedParentScope ? 19 : -1);
|
|
341
339
|
i0.ɵɵadvance(5);
|
|
342
340
|
i0.ɵɵtwoWayProperty("ngModel", ctx_r1.EditCategory);
|
|
343
341
|
i0.ɵɵproperty("data", ctx_r1.Categories)("valuePrimitive", true);
|
|
@@ -352,14 +350,10 @@ function APIScopesPanelComponent_kendo_window_3_Template(rf, ctx) { if (rf & 1)
|
|
|
352
350
|
i0.ɵɵadvance(7);
|
|
353
351
|
i0.ɵɵproperty("themeColor", "primary")("disabled", !ctx_r1.EditName.trim() || ctx_r1.IsSaving);
|
|
354
352
|
i0.ɵɵadvance();
|
|
355
|
-
i0.ɵɵ
|
|
353
|
+
i0.ɵɵconditional(ctx_r1.IsSaving ? 43 : -1);
|
|
356
354
|
i0.ɵɵadvance();
|
|
357
|
-
i0.ɵɵ
|
|
355
|
+
i0.ɵɵconditional(!ctx_r1.IsSaving ? 44 : -1);
|
|
358
356
|
} }
|
|
359
|
-
/** Tree shaking prevention function */
|
|
360
|
-
export function LoadAPIScopesPanel() {
|
|
361
|
-
// This function prevents tree shaking
|
|
362
|
-
}
|
|
363
357
|
/**
|
|
364
358
|
* API Scopes Panel Component
|
|
365
359
|
* Manages API Scopes in a hierarchical tree structure
|
|
@@ -629,24 +623,26 @@ export class APIScopesPanelComponent {
|
|
|
629
623
|
return this.FlatScopes.filter(s => s.IsActive).length;
|
|
630
624
|
}
|
|
631
625
|
static ɵfac = function APIScopesPanelComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || APIScopesPanelComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
|
|
632
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: APIScopesPanelComponent, selectors: [["mj-api-scopes-panel"]], outputs: { ScopeUpdated: "ScopeUpdated" }, decls: 4, vars: 3, consts: [["scopeNode", ""], [1, "scopes-panel"], ["text", "Loading scopes..."
|
|
626
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: APIScopesPanelComponent, selectors: [["mj-api-scopes-panel"]], outputs: { ScopeUpdated: "ScopeUpdated" }, standalone: false, decls: 4, vars: 3, consts: [["scopeNode", ""], [1, "scopes-panel"], ["text", "Loading scopes..."], [3, "width", "minWidth", "minHeight", "resizable", "draggable", "top"], [1, "panel-header"], [1, "header-left"], [1, "panel-title"], [1, "fa-solid", "fa-shield-halved"], [1, "panel-subtitle"], [1, "header-actions"], [1, "scope-stats"], [1, "stat"], [1, "fa-solid", "fa-shield"], [1, "stat", "active"], [1, "fa-solid", "fa-check-circle"], [1, "tree-controls"], ["title", "Expand All", 1, "btn-icon", 3, "click"], [1, "fa-solid", "fa-plus-square"], ["title", "Collapse All", 1, "btn-icon", 3, "click"], [1, "fa-solid", "fa-minus-square"], [1, "btn-create", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "message", "success"], [1, "message", "error"], [1, "scope-tree"], [1, "empty-state"], [1, "fa-solid", "fa-circle-exclamation"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "scope-node"], [1, "node-content"], [1, "expand-btn"], [1, "expand-placeholder"], [1, "scope-info", 3, "click"], [1, "scope-icon"], [1, "scope-details"], [1, "scope-name"], [1, "full-path"], [1, "status-badge"], [1, "scope-meta"], [1, "category"], [1, "resource-type"], [1, "description"], [1, "node-actions"], ["title", "Add Child Scope", 1, "btn-node-action", 3, "click"], ["title", "Edit Scope", 1, "btn-node-action", 3, "click"], [1, "fa-solid", "fa-pencil"], [1, "children"], [1, "expand-btn", 3, "click"], [1, "fa-solid"], [3, "close", "width", "minWidth", "minHeight", "resizable", "draggable", "top"], [1, "dialog-title"], ["kendoButton", "", "fillMode", "flat", "title", "Close (Esc)", 1, "window-close-btn", 3, "click"], [1, "fa-solid", "fa-times"], [1, "dialog-content"], [1, "form-field"], ["kendoTextBox", "", "placeholder", "e.g., runview, create, execute", 1, "form-input", 3, "ngModelChange", "ngModel"], [1, "field-hint"], [3, "ngModelChange", "ngModel", "data", "textField", "valueField", "valuePrimitive", "defaultItem"], [1, "form-row"], [1, "form-field", "half"], [3, "ngModelChange", "ngModel", "data", "valuePrimitive"], [3, "ngModelChange", "ngModel", "data", "valuePrimitive", "defaultItem"], ["kendoTextArea", "", "placeholder", "Describe what this scope allows...", 1, "form-textarea", 3, "ngModelChange", "ngModel", "rows"], [1, "checkbox-label"], ["type", "checkbox", "kendoCheckBox", "", 3, "ngModelChange", "ngModel"], [1, "checkbox-hint"], [1, "dialog-actions"], ["kendoButton", "", 3, "click", "themeColor", "disabled"], ["size", "small", 3, "showText"], ["kendoButton", "", 3, "click"], [1, "fa-solid", "fa-save"]], template: function APIScopesPanelComponent_Template(rf, ctx) { if (rf & 1) {
|
|
633
627
|
i0.ɵɵelementStart(0, "div", 1);
|
|
634
|
-
i0.ɵɵ
|
|
628
|
+
i0.ɵɵconditionalCreate(1, APIScopesPanelComponent_Conditional_1_Template, 1, 0, "mj-loading", 2);
|
|
629
|
+
i0.ɵɵconditionalCreate(2, APIScopesPanelComponent_Conditional_2_Template, 31, 5);
|
|
630
|
+
i0.ɵɵconditionalCreate(3, APIScopesPanelComponent_Conditional_3_Template, 47, 30, "kendo-window", 3);
|
|
635
631
|
i0.ɵɵelementEnd();
|
|
636
632
|
} if (rf & 2) {
|
|
637
633
|
i0.ɵɵadvance();
|
|
638
|
-
i0.ɵɵ
|
|
634
|
+
i0.ɵɵconditional(ctx.IsLoading ? 1 : -1);
|
|
639
635
|
i0.ɵɵadvance();
|
|
640
|
-
i0.ɵɵ
|
|
636
|
+
i0.ɵɵconditional(!ctx.IsLoading ? 2 : -1);
|
|
641
637
|
i0.ɵɵadvance();
|
|
642
|
-
i0.ɵɵ
|
|
643
|
-
} }, dependencies: [i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, i2.DefaultValueAccessor, i2.CheckboxControlValueAccessor, i2.NgControlStatus, i2.NgModel, i3.DropDownListComponent, i4.TextAreaDirective, i4.TextBoxDirective, i4.CheckBoxDirective, i5.WindowComponent, i5.WindowTitleBarComponent, i6.ButtonComponent, i7.LoadingComponent], styles: [".scopes-panel[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n\n\n\n.panel-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 24px;\n flex-wrap: wrap;\n gap: 16px;\n}\n\n.header-left[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 200px;\n}\n\n.panel-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 18px;\n font-weight: 600;\n color: var(--text-primary, #1f2937);\n margin: 0 0 4px 0;\n}\n\n.panel-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #10b981;\n}\n\n.panel-subtitle[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--text-secondary, #6b7280);\n margin: 0;\n}\n\n.header-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.scope-stats[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n}\n\n.stat[_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.active[_ngcontent-%COMP%] {\n color: #10b981;\n}\n\n.stat[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n}\n\n.tree-controls[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n}\n\n.btn-icon[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n background: var(--card-background, #ffffff);\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.btn-icon[_ngcontent-%COMP%]:hover {\n background: var(--item-hover, #f3f4f6);\n}\n\n.btn-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--text-secondary, #6b7280);\n}\n\n.btn-create[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n background: linear-gradient(135deg, #10b981 0%, #059669 100%);\n color: white;\n border: none;\n border-radius: 8px;\n font-weight: 600;\n font-size: 14px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.btn-create[_ngcontent-%COMP%]:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 12px rgba(16, 185, 129, 0.4);\n}\n\n\n\n.message[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 12px 16px;\n border-radius: 8px;\n margin-bottom: 16px;\n font-size: 14px;\n}\n\n.message.success[_ngcontent-%COMP%] {\n background: #d1fae5;\n color: #065f46;\n border: 1px solid #a7f3d0;\n}\n\n.message.error[_ngcontent-%COMP%] {\n background: #fee2e2;\n color: #991b1b;\n border: 1px solid #fca5a5;\n}\n\n\n\n.scope-tree[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n background: var(--card-background, #ffffff);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n}\n\n.scope-node[_ngcontent-%COMP%] {\n border-bottom: 1px solid var(--border-color, #e5e7eb);\n}\n\n.scope-node[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n}\n\n.node-content[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n padding: 12px 16px;\n transition: background 0.2s ease;\n}\n\n.node-content[_ngcontent-%COMP%]:hover {\n background: var(--item-hover, #f9fafb);\n}\n\n.node-content.inactive[_ngcontent-%COMP%] {\n opacity: 0.6;\n}\n\n.expand-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n background: none;\n border: none;\n cursor: pointer;\n color: var(--text-tertiary, #9ca3af);\n transition: transform 0.2s ease;\n flex-shrink: 0;\n}\n\n.expand-btn[_ngcontent-%COMP%]:hover {\n color: var(--text-secondary, #6b7280);\n}\n\n.expand-placeholder[_ngcontent-%COMP%] {\n width: 24px;\n flex-shrink: 0;\n}\n\n.scope-info[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n flex: 1;\n min-width: 0;\n cursor: pointer;\n}\n\n.scope-icon[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n margin-right: 12px;\n flex-shrink: 0;\n}\n\n.scope-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n color: white;\n}\n\n.scope-details[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.scope-name[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n font-weight: 500;\n color: var(--text-primary, #1f2937);\n flex-wrap: wrap;\n}\n\n.full-path[_ngcontent-%COMP%] {\n font-family: monospace;\n font-size: 12px;\n color: var(--text-tertiary, #9ca3af);\n background: var(--tag-background, #f3f4f6);\n padding: 2px 6px;\n border-radius: 4px;\n}\n\n.status-badge[_ngcontent-%COMP%] {\n font-size: 10px;\n font-weight: 500;\n padding: 2px 6px;\n border-radius: 4px;\n background: #f3f4f6;\n color: #6b7280;\n}\n\n.scope-meta[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-top: 4px;\n font-size: 12px;\n flex-wrap: wrap;\n}\n\n.category[_ngcontent-%COMP%] {\n font-weight: 500;\n}\n\n.resource-type[_ngcontent-%COMP%] {\n color: var(--text-secondary, #6b7280);\n background: var(--tag-background, #f3f4f6);\n padding: 2px 6px;\n border-radius: 4px;\n}\n\n.description[_ngcontent-%COMP%] {\n color: var(--text-tertiary, #9ca3af);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 300px;\n}\n\n.node-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n margin-left: 12px;\n opacity: 0;\n transition: opacity 0.2s ease;\n}\n\n.node-content[_ngcontent-%COMP%]:hover .node-actions[_ngcontent-%COMP%] {\n opacity: 1;\n}\n\n.btn-node-action[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n background: var(--card-background, #ffffff);\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.btn-node-action[_ngcontent-%COMP%]:hover {\n background: #10b981;\n border-color: #10b981;\n color: white;\n}\n\n.btn-node-action[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n.children[_ngcontent-%COMP%] {\n margin-left: 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: 48px;\n color: var(--text-secondary, #6b7280);\n text-align: center;\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n margin-bottom: 16px;\n opacity: 0.5;\n}\n\n.empty-state[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 500;\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 14px;\n margin-top: 8px;\n}\n\n\n\n\n\n\n\n\n[_nghost-%COMP%] kendo-window {\n border-radius: 16px !important;\n overflow: hidden;\n box-shadow: 0 25px 60px rgba(0, 0, 0, 0.15),\n 0 10px 30px rgba(0, 0, 0, 0.1),\n 0 0 0 1px rgba(0, 0, 0, 0.05) !important;\n}\n\n[_nghost-%COMP%] kendo-window .k-window-content {\n padding: 0 !important;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n[_nghost-%COMP%] kendo-window-titlebar {\n display: flex !important;\n align-items: center;\n justify-content: space-between;\n padding: 18px 24px !important;\n background: linear-gradient(135deg, #fafafa 0%, #f3f4f6 100%) !important;\n border-bottom: 1px solid #e5e7eb !important;\n}\n\n.dialog-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n font-weight: 600;\n font-size: 17px;\n color: #1f2937;\n}\n\n.dialog-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #10b981;\n font-size: 18px;\n}\n\n.window-close-btn[_ngcontent-%COMP%] {\n margin-left: auto;\n color: #9ca3af;\n transition: all 0.2s ease;\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n}\n\n.window-close-btn[_ngcontent-%COMP%]:hover {\n color: #374151;\n background: rgba(0, 0, 0, 0.05);\n}\n\n.window-close-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n}\n\n\n\n.dialog-content[_ngcontent-%COMP%] {\n padding: 24px;\n flex: 1;\n overflow-y: auto;\n}\n\n\n\n.form-field[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n}\n\n.form-field[_ngcontent-%COMP%]:last-of-type {\n margin-bottom: 0;\n}\n\n.form-field[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n display: block;\n font-size: 13px;\n font-weight: 600;\n color: #374151;\n margin-bottom: 8px;\n letter-spacing: 0.01em;\n}\n\n.form-input[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n.form-textarea[_ngcontent-%COMP%] {\n width: 100%;\n resize: vertical;\n min-height: 80px;\n}\n\n[_nghost-%COMP%] .form-input .k-input, \n[_nghost-%COMP%] .form-textarea .k-input-inner, \n[_nghost-%COMP%] .form-field .k-dropdownlist {\n padding: 10px 14px;\n border-radius: 8px;\n font-size: 14px;\n border-color: #e5e7eb;\n transition: all 0.2s ease;\n}\n\n[_nghost-%COMP%] .form-input:focus-within, \n[_nghost-%COMP%] .form-textarea:focus-within, \n[_nghost-%COMP%] .form-field .k-dropdownlist.k-focus {\n box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.1);\n}\n\n.field-hint[_ngcontent-%COMP%] {\n display: block;\n font-size: 12px;\n color: #6b7280;\n margin-top: 6px;\n line-height: 1.4;\n}\n\n.form-row[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n}\n\n.form-field.half[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.checkbox-label[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n cursor: pointer;\n padding: 12px 16px;\n background: #f9fafb;\n border-radius: 10px;\n border: 1px solid #e5e7eb;\n transition: all 0.2s ease;\n}\n\n.checkbox-label[_ngcontent-%COMP%]:hover {\n background: #f3f4f6;\n border-color: #d1d5db;\n}\n\n.checkbox-label[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n margin-top: 2px;\n flex-shrink: 0;\n}\n\n.checkbox-label[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:first-of-type {\n font-weight: 600;\n color: #374151;\n font-size: 14px;\n}\n\n.checkbox-hint[_ngcontent-%COMP%] {\n display: block;\n font-size: 12px;\n color: #6b7280;\n margin-top: 4px;\n line-height: 1.4;\n}\n\n\n\n.dialog-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding: 20px 24px;\n background: #f9fafb;\n border-top: 1px solid #e5e7eb;\n margin: 0 -24px -24px -24px;\n}\n\n[_nghost-%COMP%] .dialog-actions .k-button {\n min-width: 100px;\n padding: 10px 20px;\n font-weight: 600;\n border-radius: 8px;\n transition: all 0.2s ease;\n}\n\n[_nghost-%COMP%] .dialog-actions .k-button-solid-primary {\n background: linear-gradient(135deg, #10b981 0%, #059669 100%);\n border: none;\n box-shadow: 0 2px 8px rgba(16, 185, 129, 0.3);\n}\n\n[_nghost-%COMP%] .dialog-actions .k-button-solid-primary:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 12px rgba(16, 185, 129, 0.4);\n}"] });
|
|
638
|
+
i0.ɵɵconditional(ctx.ShowCreateDialog || ctx.ShowEditDialog ? 3 : -1);
|
|
639
|
+
} }, dependencies: [i1.NgTemplateOutlet, i2.DefaultValueAccessor, i2.CheckboxControlValueAccessor, i2.NgControlStatus, i2.NgModel, i3.DropDownListComponent, i4.TextBoxDirective, i4.TextAreaDirective, i4.CheckBoxDirective, i5.WindowComponent, i5.WindowTitleBarComponent, i6.ButtonComponent, i7.LoadingComponent], styles: [".scopes-panel[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n\n\n\n.panel-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 24px;\n flex-wrap: wrap;\n gap: 16px;\n}\n\n.header-left[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 200px;\n}\n\n.panel-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 18px;\n font-weight: 600;\n color: var(--text-primary, #1f2937);\n margin: 0 0 4px 0;\n}\n\n.panel-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #10b981;\n}\n\n.panel-subtitle[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--text-secondary, #6b7280);\n margin: 0;\n}\n\n.header-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.scope-stats[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n}\n\n.stat[_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.active[_ngcontent-%COMP%] {\n color: #10b981;\n}\n\n.stat[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n}\n\n.tree-controls[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n}\n\n.btn-icon[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n background: var(--card-background, #ffffff);\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.btn-icon[_ngcontent-%COMP%]:hover {\n background: var(--item-hover, #f3f4f6);\n}\n\n.btn-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--text-secondary, #6b7280);\n}\n\n.btn-create[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n background: linear-gradient(135deg, #10b981 0%, #059669 100%);\n color: white;\n border: none;\n border-radius: 8px;\n font-weight: 600;\n font-size: 14px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.btn-create[_ngcontent-%COMP%]:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 12px rgba(16, 185, 129, 0.4);\n}\n\n\n\n.message[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 12px 16px;\n border-radius: 8px;\n margin-bottom: 16px;\n font-size: 14px;\n}\n\n.message.success[_ngcontent-%COMP%] {\n background: #d1fae5;\n color: #065f46;\n border: 1px solid #a7f3d0;\n}\n\n.message.error[_ngcontent-%COMP%] {\n background: #fee2e2;\n color: #991b1b;\n border: 1px solid #fca5a5;\n}\n\n\n\n.scope-tree[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n background: var(--card-background, #ffffff);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n}\n\n.scope-node[_ngcontent-%COMP%] {\n border-bottom: 1px solid var(--border-color, #e5e7eb);\n}\n\n.scope-node[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n}\n\n.node-content[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n padding: 12px 16px;\n transition: background 0.2s ease;\n}\n\n.node-content[_ngcontent-%COMP%]:hover {\n background: var(--item-hover, #f9fafb);\n}\n\n.node-content.inactive[_ngcontent-%COMP%] {\n opacity: 0.6;\n}\n\n.expand-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n background: none;\n border: none;\n cursor: pointer;\n color: var(--text-tertiary, #9ca3af);\n transition: transform 0.2s ease;\n flex-shrink: 0;\n}\n\n.expand-btn[_ngcontent-%COMP%]:hover {\n color: var(--text-secondary, #6b7280);\n}\n\n.expand-placeholder[_ngcontent-%COMP%] {\n width: 24px;\n flex-shrink: 0;\n}\n\n.scope-info[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n flex: 1;\n min-width: 0;\n cursor: pointer;\n}\n\n.scope-icon[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n margin-right: 12px;\n flex-shrink: 0;\n}\n\n.scope-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n color: white;\n}\n\n.scope-details[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.scope-name[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n font-weight: 500;\n color: var(--text-primary, #1f2937);\n flex-wrap: wrap;\n}\n\n.full-path[_ngcontent-%COMP%] {\n font-family: monospace;\n font-size: 12px;\n color: var(--text-tertiary, #9ca3af);\n background: var(--tag-background, #f3f4f6);\n padding: 2px 6px;\n border-radius: 4px;\n}\n\n.status-badge[_ngcontent-%COMP%] {\n font-size: 10px;\n font-weight: 500;\n padding: 2px 6px;\n border-radius: 4px;\n background: #f3f4f6;\n color: #6b7280;\n}\n\n.scope-meta[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-top: 4px;\n font-size: 12px;\n flex-wrap: wrap;\n}\n\n.category[_ngcontent-%COMP%] {\n font-weight: 500;\n}\n\n.resource-type[_ngcontent-%COMP%] {\n color: var(--text-secondary, #6b7280);\n background: var(--tag-background, #f3f4f6);\n padding: 2px 6px;\n border-radius: 4px;\n}\n\n.description[_ngcontent-%COMP%] {\n color: var(--text-tertiary, #9ca3af);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 300px;\n}\n\n.node-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n margin-left: 12px;\n opacity: 0;\n transition: opacity 0.2s ease;\n}\n\n.node-content[_ngcontent-%COMP%]:hover .node-actions[_ngcontent-%COMP%] {\n opacity: 1;\n}\n\n.btn-node-action[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n background: var(--card-background, #ffffff);\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.btn-node-action[_ngcontent-%COMP%]:hover {\n background: #10b981;\n border-color: #10b981;\n color: white;\n}\n\n.btn-node-action[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n.children[_ngcontent-%COMP%] {\n margin-left: 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: 48px;\n color: var(--text-secondary, #6b7280);\n text-align: center;\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n margin-bottom: 16px;\n opacity: 0.5;\n}\n\n.empty-state[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 500;\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 14px;\n margin-top: 8px;\n}\n\n\n\n\n\n\n\n\n[_nghost-%COMP%] kendo-window {\n border-radius: 16px !important;\n overflow: hidden;\n box-shadow: 0 25px 60px rgba(0, 0, 0, 0.15),\n 0 10px 30px rgba(0, 0, 0, 0.1),\n 0 0 0 1px rgba(0, 0, 0, 0.05) !important;\n}\n\n[_nghost-%COMP%] kendo-window .k-window-content {\n padding: 0 !important;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n[_nghost-%COMP%] kendo-window-titlebar {\n display: flex !important;\n align-items: center;\n justify-content: space-between;\n padding: 18px 24px !important;\n background: linear-gradient(135deg, #fafafa 0%, #f3f4f6 100%) !important;\n border-bottom: 1px solid #e5e7eb !important;\n}\n\n.dialog-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n font-weight: 600;\n font-size: 17px;\n color: #1f2937;\n}\n\n.dialog-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #10b981;\n font-size: 18px;\n}\n\n.window-close-btn[_ngcontent-%COMP%] {\n margin-left: auto;\n color: #9ca3af;\n transition: all 0.2s ease;\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n}\n\n.window-close-btn[_ngcontent-%COMP%]:hover {\n color: #374151;\n background: rgba(0, 0, 0, 0.05);\n}\n\n.window-close-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n}\n\n\n\n.dialog-content[_ngcontent-%COMP%] {\n padding: 24px;\n flex: 1;\n overflow-y: auto;\n}\n\n\n\n.form-field[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n}\n\n.form-field[_ngcontent-%COMP%]:last-of-type {\n margin-bottom: 0;\n}\n\n.form-field[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n display: block;\n font-size: 13px;\n font-weight: 600;\n color: #374151;\n margin-bottom: 8px;\n letter-spacing: 0.01em;\n}\n\n.form-input[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n.form-textarea[_ngcontent-%COMP%] {\n width: 100%;\n resize: vertical;\n min-height: 80px;\n}\n\n[_nghost-%COMP%] .form-input .k-input, \n[_nghost-%COMP%] .form-textarea .k-input-inner, \n[_nghost-%COMP%] .form-field .k-dropdownlist {\n padding: 10px 14px;\n border-radius: 8px;\n font-size: 14px;\n border-color: #e5e7eb;\n transition: all 0.2s ease;\n}\n\n[_nghost-%COMP%] .form-input:focus-within, \n[_nghost-%COMP%] .form-textarea:focus-within, \n[_nghost-%COMP%] .form-field .k-dropdownlist.k-focus {\n box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.1);\n}\n\n.field-hint[_ngcontent-%COMP%] {\n display: block;\n font-size: 12px;\n color: #6b7280;\n margin-top: 6px;\n line-height: 1.4;\n}\n\n.form-row[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n}\n\n.form-field.half[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.checkbox-label[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n cursor: pointer;\n padding: 12px 16px;\n background: #f9fafb;\n border-radius: 10px;\n border: 1px solid #e5e7eb;\n transition: all 0.2s ease;\n}\n\n.checkbox-label[_ngcontent-%COMP%]:hover {\n background: #f3f4f6;\n border-color: #d1d5db;\n}\n\n.checkbox-label[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n margin-top: 2px;\n flex-shrink: 0;\n}\n\n.checkbox-label[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:first-of-type {\n font-weight: 600;\n color: #374151;\n font-size: 14px;\n}\n\n.checkbox-hint[_ngcontent-%COMP%] {\n display: block;\n font-size: 12px;\n color: #6b7280;\n margin-top: 4px;\n line-height: 1.4;\n}\n\n\n\n.dialog-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding: 20px 24px;\n background: #f9fafb;\n border-top: 1px solid #e5e7eb;\n margin: 0 -24px -24px -24px;\n}\n\n[_nghost-%COMP%] .dialog-actions .k-button {\n min-width: 100px;\n padding: 10px 20px;\n font-weight: 600;\n border-radius: 8px;\n transition: all 0.2s ease;\n}\n\n[_nghost-%COMP%] .dialog-actions .k-button-solid-primary {\n background: linear-gradient(135deg, #10b981 0%, #059669 100%);\n border: none;\n box-shadow: 0 2px 8px rgba(16, 185, 129, 0.3);\n}\n\n[_nghost-%COMP%] .dialog-actions .k-button-solid-primary:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 12px rgba(16, 185, 129, 0.4);\n}"] });
|
|
644
640
|
}
|
|
645
641
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(APIScopesPanelComponent, [{
|
|
646
642
|
type: Component,
|
|
647
|
-
args: [{ selector: 'mj-api-scopes-panel', template: "<div class=\"scopes-panel\">\n <mj-loading *ngIf=\"IsLoading\" text=\"Loading scopes...\"></mj-loading>\n\n <ng-container *ngIf=\"!IsLoading\">\n <!-- Header -->\n <div class=\"panel-header\">\n <div class=\"header-left\">\n <h3 class=\"panel-title\">\n <i class=\"fa-solid fa-shield-halved\"></i>\n API Scopes\n </h3>\n <p class=\"panel-subtitle\">Manage hierarchical permission scopes for API access</p>\n </div>\n <div class=\"header-actions\">\n <div class=\"scope-stats\">\n <span class=\"stat\">\n <i class=\"fa-solid fa-shield\"></i>\n {{getTotalCount()}} total\n </span>\n <span class=\"stat active\">\n <i class=\"fa-solid fa-check-circle\"></i>\n {{getActiveCount()}} active\n </span>\n </div>\n <div class=\"tree-controls\">\n <button class=\"btn-icon\" (click)=\"expandAll()\" title=\"Expand All\">\n <i class=\"fa-solid fa-plus-square\"></i>\n </button>\n <button class=\"btn-icon\" (click)=\"collapseAll()\" title=\"Collapse All\">\n <i class=\"fa-solid fa-minus-square\"></i>\n </button>\n </div>\n <button class=\"btn-create\" (click)=\"openCreateDialog()\">\n <i class=\"fa-solid fa-plus\"></i>\n New Scope\n </button>\n </div>\n </div>\n\n <!-- Messages -->\n <div class=\"message success\" *ngIf=\"SuccessMessage\">\n <i class=\"fa-solid fa-check-circle\"></i>\n {{SuccessMessage}}\n </div>\n <div class=\"message error\" *ngIf=\"ErrorMessage\">\n <i class=\"fa-solid fa-circle-exclamation\"></i>\n {{ErrorMessage}}\n </div>\n\n <!-- Scope Tree -->\n <div class=\"scope-tree\">\n <ng-container *ngFor=\"let node of ScopeTree\">\n <ng-container *ngTemplateOutlet=\"scopeNode; context: { node: node }\"></ng-container>\n </ng-container>\n\n <!-- Empty State -->\n <div class=\"empty-state\" *ngIf=\"ScopeTree.length === 0\">\n <i class=\"fa-solid fa-shield-halved\"></i>\n <span>No scopes configured</span>\n <p>Create scopes to define API access permissions</p>\n </div>\n </div>\n\n <!-- Recursive Node Template -->\n <ng-template #scopeNode let-node=\"node\">\n <div class=\"scope-node\" [style.padding-left.px]=\"node.level * 24\">\n <div class=\"node-content\" [class.inactive]=\"!node.scope.IsActive\">\n <button class=\"expand-btn\"\n *ngIf=\"node.children.length > 0\"\n (click)=\"toggleExpanded(node)\">\n <i class=\"fa-solid\"\n [class.fa-chevron-right]=\"!node.expanded\"\n [class.fa-chevron-down]=\"node.expanded\"></i>\n </button>\n <span class=\"expand-placeholder\" *ngIf=\"node.children.length === 0\"></span>\n\n <div class=\"scope-info\" (click)=\"openEditDialog(node.scope)\">\n <div class=\"scope-icon\" [style.backgroundColor]=\"getCategoryColor(node.scope.Category)\">\n <i class=\"fa-solid fa-shield\"></i>\n </div>\n <div class=\"scope-details\">\n <div class=\"scope-name\">\n {{node.scope.Name}}\n <span class=\"full-path\" *ngIf=\"node.scope.FullPath && node.scope.FullPath !== node.scope.Name\">\n {{node.scope.FullPath}}\n </span>\n <span class=\"status-badge\" *ngIf=\"!node.scope.IsActive\">Inactive</span>\n </div>\n <div class=\"scope-meta\">\n <span class=\"category\" [style.color]=\"getCategoryColor(node.scope.Category)\">\n {{node.scope.Category}}\n </span>\n <span class=\"resource-type\" *ngIf=\"node.scope.ResourceType\">\n {{node.scope.ResourceType}}\n </span>\n <span class=\"description\" *ngIf=\"node.scope.Description\">\n {{node.scope.Description}}\n </span>\n </div>\n </div>\n </div>\n\n <div class=\"node-actions\">\n <button class=\"btn-node-action\" (click)=\"openCreateDialog(node.scope)\" title=\"Add Child Scope\">\n <i class=\"fa-solid fa-plus\"></i>\n </button>\n <button class=\"btn-node-action\" (click)=\"openEditDialog(node.scope)\" title=\"Edit Scope\">\n <i class=\"fa-solid fa-pencil\"></i>\n </button>\n </div>\n </div>\n\n <div class=\"children\" *ngIf=\"node.expanded && node.children.length > 0\">\n <ng-container *ngFor=\"let child of node.children\">\n <ng-container *ngTemplateOutlet=\"scopeNode; context: { node: child }\"></ng-container>\n </ng-container>\n </div>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- Create/Edit Dialog -->\n <kendo-window *ngIf=\"ShowCreateDialog || ShowEditDialog\"\n [width]=\"560\"\n [minWidth]=\"420\"\n [minHeight]=\"480\"\n [resizable]=\"true\"\n [draggable]=\"true\"\n [top]=\"80\"\n (close)=\"closeDialogs()\">\n <kendo-window-titlebar>\n <div class=\"dialog-title\">\n <i class=\"fa-solid fa-shield-halved\"></i>\n <span>{{EditingScope ? 'Edit Scope' : 'New Scope'}}</span>\n </div>\n <button kendoButton fillMode=\"flat\" (click)=\"closeDialogs()\" class=\"window-close-btn\" title=\"Close (Esc)\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </kendo-window-titlebar>\n\n <div class=\"dialog-content\">\n <div class=\"form-field\">\n <label>Scope Name *</label>\n <input kendoTextBox [(ngModel)]=\"EditName\"\n placeholder=\"e.g., runview, create, execute\"\n class=\"form-input\" />\n <span class=\"field-hint\">Use lowercase, single word. Will be combined with parent for full path.</span>\n </div>\n\n <div class=\"form-field\">\n <label>Parent Scope</label>\n <kendo-dropdownlist [(ngModel)]=\"EditParentId\"\n [data]=\"getParentOptions()\"\n [textField]=\"'FullPath'\"\n [valueField]=\"'ID'\"\n [valuePrimitive]=\"true\"\n [defaultItem]=\"{ FullPath: '(No Parent - Root Level)', ID: null }\">\n </kendo-dropdownlist>\n <span class=\"field-hint\" *ngIf=\"SelectedParentScope\">\n Full path will be: <code>{{SelectedParentScope.FullPath}}:{{EditName || '...'}}</code>\n </span>\n </div>\n\n <div class=\"form-row\">\n <div class=\"form-field half\">\n <label>Category</label>\n <kendo-dropdownlist [(ngModel)]=\"EditCategory\"\n [data]=\"Categories\"\n [valuePrimitive]=\"true\">\n </kendo-dropdownlist>\n </div>\n <div class=\"form-field half\">\n <label>Resource Type</label>\n <kendo-dropdownlist [(ngModel)]=\"EditResourceType\"\n [data]=\"ResourceTypes\"\n [valuePrimitive]=\"true\"\n [defaultItem]=\"''\">\n </kendo-dropdownlist>\n </div>\n </div>\n\n <div class=\"form-field\">\n <label>Description</label>\n <textarea kendoTextArea [(ngModel)]=\"EditDescription\"\n placeholder=\"Describe what this scope allows...\"\n [rows]=\"3\"\n class=\"form-textarea\"></textarea>\n </div>\n\n <div class=\"form-field\">\n <label class=\"checkbox-label\">\n <input type=\"checkbox\" kendoCheckBox [(ngModel)]=\"EditIsActive\" />\n <div>\n <span>Active</span>\n <span class=\"checkbox-hint\">Inactive scopes cannot be assigned to keys or applications</span>\n </div>\n </label>\n </div>\n\n <div class=\"dialog-actions\">\n <button kendoButton [themeColor]=\"'primary'\"\n [disabled]=\"!EditName.trim() || IsSaving\"\n (click)=\"saveScope()\">\n <mj-loading *ngIf=\"IsSaving\" [showText]=\"false\" size=\"small\"></mj-loading>\n <span *ngIf=\"!IsSaving\">\n <i class=\"fa-solid fa-save\"></i>\n {{EditingScope ? 'Update' : 'Create'}}\n </span>\n </button>\n <button kendoButton (click)=\"closeDialogs()\">Cancel</button>\n </div>\n </div>\n </kendo-window>\n</div>\n", styles: [".scopes-panel {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n\n/* Panel Header */\n.panel-header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 24px;\n flex-wrap: wrap;\n gap: 16px;\n}\n\n.header-left {\n flex: 1;\n min-width: 200px;\n}\n\n.panel-title {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 18px;\n font-weight: 600;\n color: var(--text-primary, #1f2937);\n margin: 0 0 4px 0;\n}\n\n.panel-title i {\n color: #10b981;\n}\n\n.panel-subtitle {\n font-size: 14px;\n color: var(--text-secondary, #6b7280);\n margin: 0;\n}\n\n.header-actions {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.scope-stats {\n display: flex;\n gap: 16px;\n}\n\n.stat {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n}\n\n.stat.active {\n color: #10b981;\n}\n\n.stat i {\n font-size: 14px;\n}\n\n.tree-controls {\n display: flex;\n gap: 4px;\n}\n\n.btn-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n background: var(--card-background, #ffffff);\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.btn-icon:hover {\n background: var(--item-hover, #f3f4f6);\n}\n\n.btn-icon i {\n font-size: 14px;\n color: var(--text-secondary, #6b7280);\n}\n\n.btn-create {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n background: linear-gradient(135deg, #10b981 0%, #059669 100%);\n color: white;\n border: none;\n border-radius: 8px;\n font-weight: 600;\n font-size: 14px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.btn-create:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 12px rgba(16, 185, 129, 0.4);\n}\n\n/* Messages */\n.message {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 12px 16px;\n border-radius: 8px;\n margin-bottom: 16px;\n font-size: 14px;\n}\n\n.message.success {\n background: #d1fae5;\n color: #065f46;\n border: 1px solid #a7f3d0;\n}\n\n.message.error {\n background: #fee2e2;\n color: #991b1b;\n border: 1px solid #fca5a5;\n}\n\n/* Scope Tree */\n.scope-tree {\n flex: 1;\n overflow-y: auto;\n background: var(--card-background, #ffffff);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n}\n\n.scope-node {\n border-bottom: 1px solid var(--border-color, #e5e7eb);\n}\n\n.scope-node:last-child {\n border-bottom: none;\n}\n\n.node-content {\n display: flex;\n align-items: center;\n padding: 12px 16px;\n transition: background 0.2s ease;\n}\n\n.node-content:hover {\n background: var(--item-hover, #f9fafb);\n}\n\n.node-content.inactive {\n opacity: 0.6;\n}\n\n.expand-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n background: none;\n border: none;\n cursor: pointer;\n color: var(--text-tertiary, #9ca3af);\n transition: transform 0.2s ease;\n flex-shrink: 0;\n}\n\n.expand-btn:hover {\n color: var(--text-secondary, #6b7280);\n}\n\n.expand-placeholder {\n width: 24px;\n flex-shrink: 0;\n}\n\n.scope-info {\n display: flex;\n align-items: center;\n flex: 1;\n min-width: 0;\n cursor: pointer;\n}\n\n.scope-icon {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n margin-right: 12px;\n flex-shrink: 0;\n}\n\n.scope-icon i {\n font-size: 14px;\n color: white;\n}\n\n.scope-details {\n flex: 1;\n min-width: 0;\n}\n\n.scope-name {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n font-weight: 500;\n color: var(--text-primary, #1f2937);\n flex-wrap: wrap;\n}\n\n.full-path {\n font-family: monospace;\n font-size: 12px;\n color: var(--text-tertiary, #9ca3af);\n background: var(--tag-background, #f3f4f6);\n padding: 2px 6px;\n border-radius: 4px;\n}\n\n.status-badge {\n font-size: 10px;\n font-weight: 500;\n padding: 2px 6px;\n border-radius: 4px;\n background: #f3f4f6;\n color: #6b7280;\n}\n\n.scope-meta {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-top: 4px;\n font-size: 12px;\n flex-wrap: wrap;\n}\n\n.category {\n font-weight: 500;\n}\n\n.resource-type {\n color: var(--text-secondary, #6b7280);\n background: var(--tag-background, #f3f4f6);\n padding: 2px 6px;\n border-radius: 4px;\n}\n\n.description {\n color: var(--text-tertiary, #9ca3af);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 300px;\n}\n\n.node-actions {\n display: flex;\n gap: 4px;\n margin-left: 12px;\n opacity: 0;\n transition: opacity 0.2s ease;\n}\n\n.node-content:hover .node-actions {\n opacity: 1;\n}\n\n.btn-node-action {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n background: var(--card-background, #ffffff);\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.btn-node-action:hover {\n background: #10b981;\n border-color: #10b981;\n color: white;\n}\n\n.btn-node-action i {\n font-size: 12px;\n}\n\n.children {\n margin-left: 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: 48px;\n color: var(--text-secondary, #6b7280);\n text-align: center;\n}\n\n.empty-state i {\n font-size: 48px;\n margin-bottom: 16px;\n opacity: 0.5;\n}\n\n.empty-state span {\n font-size: 16px;\n font-weight: 500;\n}\n\n.empty-state p {\n font-size: 14px;\n margin-top: 8px;\n}\n\n/* ========================================\n Dialog Styles - Polished & Professional\n ======================================== */\n\n/* Window styling */\n:host ::ng-deep kendo-window {\n border-radius: 16px !important;\n overflow: hidden;\n box-shadow: 0 25px 60px rgba(0, 0, 0, 0.15),\n 0 10px 30px rgba(0, 0, 0, 0.1),\n 0 0 0 1px rgba(0, 0, 0, 0.05) !important;\n}\n\n:host ::ng-deep kendo-window .k-window-content {\n padding: 0 !important;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n:host ::ng-deep kendo-window-titlebar {\n display: flex !important;\n align-items: center;\n justify-content: space-between;\n padding: 18px 24px !important;\n background: linear-gradient(135deg, #fafafa 0%, #f3f4f6 100%) !important;\n border-bottom: 1px solid #e5e7eb !important;\n}\n\n.dialog-title {\n display: flex;\n align-items: center;\n gap: 12px;\n font-weight: 600;\n font-size: 17px;\n color: #1f2937;\n}\n\n.dialog-title i {\n color: #10b981;\n font-size: 18px;\n}\n\n.window-close-btn {\n margin-left: auto;\n color: #9ca3af;\n transition: all 0.2s ease;\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n}\n\n.window-close-btn:hover {\n color: #374151;\n background: rgba(0, 0, 0, 0.05);\n}\n\n.window-close-btn i {\n font-size: 16px;\n}\n\n/* Dialog Content */\n.dialog-content {\n padding: 24px;\n flex: 1;\n overflow-y: auto;\n}\n\n/* Form Fields */\n.form-field {\n margin-bottom: 20px;\n}\n\n.form-field:last-of-type {\n margin-bottom: 0;\n}\n\n.form-field label {\n display: block;\n font-size: 13px;\n font-weight: 600;\n color: #374151;\n margin-bottom: 8px;\n letter-spacing: 0.01em;\n}\n\n.form-input {\n width: 100%;\n}\n\n.form-textarea {\n width: 100%;\n resize: vertical;\n min-height: 80px;\n}\n\n:host ::ng-deep .form-input .k-input,\n:host ::ng-deep .form-textarea .k-input-inner,\n:host ::ng-deep .form-field .k-dropdownlist {\n padding: 10px 14px;\n border-radius: 8px;\n font-size: 14px;\n border-color: #e5e7eb;\n transition: all 0.2s ease;\n}\n\n:host ::ng-deep .form-input:focus-within,\n:host ::ng-deep .form-textarea:focus-within,\n:host ::ng-deep .form-field .k-dropdownlist.k-focus {\n box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.1);\n}\n\n.field-hint {\n display: block;\n font-size: 12px;\n color: #6b7280;\n margin-top: 6px;\n line-height: 1.4;\n}\n\n.form-row {\n display: flex;\n gap: 16px;\n}\n\n.form-field.half {\n flex: 1;\n}\n\n.checkbox-label {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n cursor: pointer;\n padding: 12px 16px;\n background: #f9fafb;\n border-radius: 10px;\n border: 1px solid #e5e7eb;\n transition: all 0.2s ease;\n}\n\n.checkbox-label:hover {\n background: #f3f4f6;\n border-color: #d1d5db;\n}\n\n.checkbox-label input {\n margin-top: 2px;\n flex-shrink: 0;\n}\n\n.checkbox-label span:first-of-type {\n font-weight: 600;\n color: #374151;\n font-size: 14px;\n}\n\n.checkbox-hint {\n display: block;\n font-size: 12px;\n color: #6b7280;\n margin-top: 4px;\n line-height: 1.4;\n}\n\n/* Dialog Actions */\n.dialog-actions {\n display: flex;\n gap: 12px;\n padding: 20px 24px;\n background: #f9fafb;\n border-top: 1px solid #e5e7eb;\n margin: 0 -24px -24px -24px;\n}\n\n:host ::ng-deep .dialog-actions .k-button {\n min-width: 100px;\n padding: 10px 20px;\n font-weight: 600;\n border-radius: 8px;\n transition: all 0.2s ease;\n}\n\n:host ::ng-deep .dialog-actions .k-button-solid-primary {\n background: linear-gradient(135deg, #10b981 0%, #059669 100%);\n border: none;\n box-shadow: 0 2px 8px rgba(16, 185, 129, 0.3);\n}\n\n:host ::ng-deep .dialog-actions .k-button-solid-primary:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 12px rgba(16, 185, 129, 0.4);\n}\n"] }]
|
|
643
|
+
args: [{ standalone: false, selector: 'mj-api-scopes-panel', template: "<div class=\"scopes-panel\">\n @if (IsLoading) {\n <mj-loading text=\"Loading scopes...\"></mj-loading>\n }\n\n @if (!IsLoading) {\n <!-- Header -->\n <div class=\"panel-header\">\n <div class=\"header-left\">\n <h3 class=\"panel-title\">\n <i class=\"fa-solid fa-shield-halved\"></i>\n API Scopes\n </h3>\n <p class=\"panel-subtitle\">Manage hierarchical permission scopes for API access</p>\n </div>\n <div class=\"header-actions\">\n <div class=\"scope-stats\">\n <span class=\"stat\">\n <i class=\"fa-solid fa-shield\"></i>\n {{getTotalCount()}} total\n </span>\n <span class=\"stat active\">\n <i class=\"fa-solid fa-check-circle\"></i>\n {{getActiveCount()}} active\n </span>\n </div>\n <div class=\"tree-controls\">\n <button class=\"btn-icon\" (click)=\"expandAll()\" title=\"Expand All\">\n <i class=\"fa-solid fa-plus-square\"></i>\n </button>\n <button class=\"btn-icon\" (click)=\"collapseAll()\" title=\"Collapse All\">\n <i class=\"fa-solid fa-minus-square\"></i>\n </button>\n </div>\n <button class=\"btn-create\" (click)=\"openCreateDialog()\">\n <i class=\"fa-solid fa-plus\"></i>\n New Scope\n </button>\n </div>\n </div>\n <!-- Messages -->\n @if (SuccessMessage) {\n <div class=\"message success\">\n <i class=\"fa-solid fa-check-circle\"></i>\n {{SuccessMessage}}\n </div>\n }\n @if (ErrorMessage) {\n <div class=\"message error\">\n <i class=\"fa-solid fa-circle-exclamation\"></i>\n {{ErrorMessage}}\n </div>\n }\n <!-- Scope Tree -->\n <div class=\"scope-tree\">\n @for (node of ScopeTree; track node) {\n <ng-container *ngTemplateOutlet=\"scopeNode; context: { node: node }\"></ng-container>\n }\n <!-- Empty State -->\n @if (ScopeTree.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-shield-halved\"></i>\n <span>No scopes configured</span>\n <p>Create scopes to define API access permissions</p>\n </div>\n }\n </div>\n <!-- Recursive Node Template -->\n <ng-template #scopeNode let-node=\"node\">\n <div class=\"scope-node\" [style.padding-left.px]=\"node.level * 24\">\n <div class=\"node-content\" [class.inactive]=\"!node.scope.IsActive\">\n @if (node.children.length > 0) {\n <button class=\"expand-btn\"\n (click)=\"toggleExpanded(node)\">\n <i class=\"fa-solid\"\n [class.fa-chevron-right]=\"!node.expanded\"\n [class.fa-chevron-down]=\"node.expanded\"></i>\n </button>\n }\n @if (node.children.length === 0) {\n <span class=\"expand-placeholder\"></span>\n }\n <div class=\"scope-info\" (click)=\"openEditDialog(node.scope)\">\n <div class=\"scope-icon\" [style.backgroundColor]=\"getCategoryColor(node.scope.Category)\">\n <i class=\"fa-solid fa-shield\"></i>\n </div>\n <div class=\"scope-details\">\n <div class=\"scope-name\">\n {{node.scope.Name}}\n @if (node.scope.FullPath && node.scope.FullPath !== node.scope.Name) {\n <span class=\"full-path\">\n {{node.scope.FullPath}}\n </span>\n }\n @if (!node.scope.IsActive) {\n <span class=\"status-badge\">Inactive</span>\n }\n </div>\n <div class=\"scope-meta\">\n <span class=\"category\" [style.color]=\"getCategoryColor(node.scope.Category)\">\n {{node.scope.Category}}\n </span>\n @if (node.scope.ResourceType) {\n <span class=\"resource-type\">\n {{node.scope.ResourceType}}\n </span>\n }\n @if (node.scope.Description) {\n <span class=\"description\">\n {{node.scope.Description}}\n </span>\n }\n </div>\n </div>\n </div>\n <div class=\"node-actions\">\n <button class=\"btn-node-action\" (click)=\"openCreateDialog(node.scope)\" title=\"Add Child Scope\">\n <i class=\"fa-solid fa-plus\"></i>\n </button>\n <button class=\"btn-node-action\" (click)=\"openEditDialog(node.scope)\" title=\"Edit Scope\">\n <i class=\"fa-solid fa-pencil\"></i>\n </button>\n </div>\n </div>\n @if (node.expanded && node.children.length > 0) {\n <div class=\"children\">\n @for (child of node.children; track child) {\n <ng-container *ngTemplateOutlet=\"scopeNode; context: { node: child }\"></ng-container>\n }\n </div>\n }\n </div>\n </ng-template>\n }\n\n <!-- Create/Edit Dialog -->\n @if (ShowCreateDialog || ShowEditDialog) {\n <kendo-window\n [width]=\"560\"\n [minWidth]=\"420\"\n [minHeight]=\"480\"\n [resizable]=\"true\"\n [draggable]=\"true\"\n [top]=\"80\"\n (close)=\"closeDialogs()\">\n <kendo-window-titlebar>\n <div class=\"dialog-title\">\n <i class=\"fa-solid fa-shield-halved\"></i>\n <span>{{EditingScope ? 'Edit Scope' : 'New Scope'}}</span>\n </div>\n <button kendoButton fillMode=\"flat\" (click)=\"closeDialogs()\" class=\"window-close-btn\" title=\"Close (Esc)\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </kendo-window-titlebar>\n <div class=\"dialog-content\">\n <div class=\"form-field\">\n <label>Scope Name *</label>\n <input kendoTextBox [(ngModel)]=\"EditName\"\n placeholder=\"e.g., runview, create, execute\"\n class=\"form-input\" />\n <span class=\"field-hint\">Use lowercase, single word. Will be combined with parent for full path.</span>\n </div>\n <div class=\"form-field\">\n <label>Parent Scope</label>\n <kendo-dropdownlist [(ngModel)]=\"EditParentId\"\n [data]=\"getParentOptions()\"\n [textField]=\"'FullPath'\"\n [valueField]=\"'ID'\"\n [valuePrimitive]=\"true\"\n [defaultItem]=\"{ FullPath: '(No Parent - Root Level)', ID: null }\">\n </kendo-dropdownlist>\n @if (SelectedParentScope) {\n <span class=\"field-hint\">\n Full path will be: <code>{{SelectedParentScope.FullPath}}:{{EditName || '...'}}</code>\n </span>\n }\n </div>\n <div class=\"form-row\">\n <div class=\"form-field half\">\n <label>Category</label>\n <kendo-dropdownlist [(ngModel)]=\"EditCategory\"\n [data]=\"Categories\"\n [valuePrimitive]=\"true\">\n </kendo-dropdownlist>\n </div>\n <div class=\"form-field half\">\n <label>Resource Type</label>\n <kendo-dropdownlist [(ngModel)]=\"EditResourceType\"\n [data]=\"ResourceTypes\"\n [valuePrimitive]=\"true\"\n [defaultItem]=\"''\">\n </kendo-dropdownlist>\n </div>\n </div>\n <div class=\"form-field\">\n <label>Description</label>\n <textarea kendoTextArea [(ngModel)]=\"EditDescription\"\n placeholder=\"Describe what this scope allows...\"\n [rows]=\"3\"\n class=\"form-textarea\"></textarea>\n </div>\n <div class=\"form-field\">\n <label class=\"checkbox-label\">\n <input type=\"checkbox\" kendoCheckBox [(ngModel)]=\"EditIsActive\" />\n <div>\n <span>Active</span>\n <span class=\"checkbox-hint\">Inactive scopes cannot be assigned to keys or applications</span>\n </div>\n </label>\n </div>\n <div class=\"dialog-actions\">\n <button kendoButton [themeColor]=\"'primary'\"\n [disabled]=\"!EditName.trim() || IsSaving\"\n (click)=\"saveScope()\">\n @if (IsSaving) {\n <mj-loading [showText]=\"false\" size=\"small\"></mj-loading>\n }\n @if (!IsSaving) {\n <span>\n <i class=\"fa-solid fa-save\"></i>\n {{EditingScope ? 'Update' : 'Create'}}\n </span>\n }\n </button>\n <button kendoButton (click)=\"closeDialogs()\">Cancel</button>\n </div>\n </div>\n </kendo-window>\n }\n</div>\n", styles: [".scopes-panel {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n\n/* Panel Header */\n.panel-header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 24px;\n flex-wrap: wrap;\n gap: 16px;\n}\n\n.header-left {\n flex: 1;\n min-width: 200px;\n}\n\n.panel-title {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 18px;\n font-weight: 600;\n color: var(--text-primary, #1f2937);\n margin: 0 0 4px 0;\n}\n\n.panel-title i {\n color: #10b981;\n}\n\n.panel-subtitle {\n font-size: 14px;\n color: var(--text-secondary, #6b7280);\n margin: 0;\n}\n\n.header-actions {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.scope-stats {\n display: flex;\n gap: 16px;\n}\n\n.stat {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n}\n\n.stat.active {\n color: #10b981;\n}\n\n.stat i {\n font-size: 14px;\n}\n\n.tree-controls {\n display: flex;\n gap: 4px;\n}\n\n.btn-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n background: var(--card-background, #ffffff);\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.btn-icon:hover {\n background: var(--item-hover, #f3f4f6);\n}\n\n.btn-icon i {\n font-size: 14px;\n color: var(--text-secondary, #6b7280);\n}\n\n.btn-create {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n background: linear-gradient(135deg, #10b981 0%, #059669 100%);\n color: white;\n border: none;\n border-radius: 8px;\n font-weight: 600;\n font-size: 14px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.btn-create:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 12px rgba(16, 185, 129, 0.4);\n}\n\n/* Messages */\n.message {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 12px 16px;\n border-radius: 8px;\n margin-bottom: 16px;\n font-size: 14px;\n}\n\n.message.success {\n background: #d1fae5;\n color: #065f46;\n border: 1px solid #a7f3d0;\n}\n\n.message.error {\n background: #fee2e2;\n color: #991b1b;\n border: 1px solid #fca5a5;\n}\n\n/* Scope Tree */\n.scope-tree {\n flex: 1;\n overflow-y: auto;\n background: var(--card-background, #ffffff);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n}\n\n.scope-node {\n border-bottom: 1px solid var(--border-color, #e5e7eb);\n}\n\n.scope-node:last-child {\n border-bottom: none;\n}\n\n.node-content {\n display: flex;\n align-items: center;\n padding: 12px 16px;\n transition: background 0.2s ease;\n}\n\n.node-content:hover {\n background: var(--item-hover, #f9fafb);\n}\n\n.node-content.inactive {\n opacity: 0.6;\n}\n\n.expand-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n background: none;\n border: none;\n cursor: pointer;\n color: var(--text-tertiary, #9ca3af);\n transition: transform 0.2s ease;\n flex-shrink: 0;\n}\n\n.expand-btn:hover {\n color: var(--text-secondary, #6b7280);\n}\n\n.expand-placeholder {\n width: 24px;\n flex-shrink: 0;\n}\n\n.scope-info {\n display: flex;\n align-items: center;\n flex: 1;\n min-width: 0;\n cursor: pointer;\n}\n\n.scope-icon {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n margin-right: 12px;\n flex-shrink: 0;\n}\n\n.scope-icon i {\n font-size: 14px;\n color: white;\n}\n\n.scope-details {\n flex: 1;\n min-width: 0;\n}\n\n.scope-name {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n font-weight: 500;\n color: var(--text-primary, #1f2937);\n flex-wrap: wrap;\n}\n\n.full-path {\n font-family: monospace;\n font-size: 12px;\n color: var(--text-tertiary, #9ca3af);\n background: var(--tag-background, #f3f4f6);\n padding: 2px 6px;\n border-radius: 4px;\n}\n\n.status-badge {\n font-size: 10px;\n font-weight: 500;\n padding: 2px 6px;\n border-radius: 4px;\n background: #f3f4f6;\n color: #6b7280;\n}\n\n.scope-meta {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-top: 4px;\n font-size: 12px;\n flex-wrap: wrap;\n}\n\n.category {\n font-weight: 500;\n}\n\n.resource-type {\n color: var(--text-secondary, #6b7280);\n background: var(--tag-background, #f3f4f6);\n padding: 2px 6px;\n border-radius: 4px;\n}\n\n.description {\n color: var(--text-tertiary, #9ca3af);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 300px;\n}\n\n.node-actions {\n display: flex;\n gap: 4px;\n margin-left: 12px;\n opacity: 0;\n transition: opacity 0.2s ease;\n}\n\n.node-content:hover .node-actions {\n opacity: 1;\n}\n\n.btn-node-action {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n background: var(--card-background, #ffffff);\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.btn-node-action:hover {\n background: #10b981;\n border-color: #10b981;\n color: white;\n}\n\n.btn-node-action i {\n font-size: 12px;\n}\n\n.children {\n margin-left: 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: 48px;\n color: var(--text-secondary, #6b7280);\n text-align: center;\n}\n\n.empty-state i {\n font-size: 48px;\n margin-bottom: 16px;\n opacity: 0.5;\n}\n\n.empty-state span {\n font-size: 16px;\n font-weight: 500;\n}\n\n.empty-state p {\n font-size: 14px;\n margin-top: 8px;\n}\n\n/* ========================================\n Dialog Styles - Polished & Professional\n ======================================== */\n\n/* Window styling */\n:host ::ng-deep kendo-window {\n border-radius: 16px !important;\n overflow: hidden;\n box-shadow: 0 25px 60px rgba(0, 0, 0, 0.15),\n 0 10px 30px rgba(0, 0, 0, 0.1),\n 0 0 0 1px rgba(0, 0, 0, 0.05) !important;\n}\n\n:host ::ng-deep kendo-window .k-window-content {\n padding: 0 !important;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n:host ::ng-deep kendo-window-titlebar {\n display: flex !important;\n align-items: center;\n justify-content: space-between;\n padding: 18px 24px !important;\n background: linear-gradient(135deg, #fafafa 0%, #f3f4f6 100%) !important;\n border-bottom: 1px solid #e5e7eb !important;\n}\n\n.dialog-title {\n display: flex;\n align-items: center;\n gap: 12px;\n font-weight: 600;\n font-size: 17px;\n color: #1f2937;\n}\n\n.dialog-title i {\n color: #10b981;\n font-size: 18px;\n}\n\n.window-close-btn {\n margin-left: auto;\n color: #9ca3af;\n transition: all 0.2s ease;\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n}\n\n.window-close-btn:hover {\n color: #374151;\n background: rgba(0, 0, 0, 0.05);\n}\n\n.window-close-btn i {\n font-size: 16px;\n}\n\n/* Dialog Content */\n.dialog-content {\n padding: 24px;\n flex: 1;\n overflow-y: auto;\n}\n\n/* Form Fields */\n.form-field {\n margin-bottom: 20px;\n}\n\n.form-field:last-of-type {\n margin-bottom: 0;\n}\n\n.form-field label {\n display: block;\n font-size: 13px;\n font-weight: 600;\n color: #374151;\n margin-bottom: 8px;\n letter-spacing: 0.01em;\n}\n\n.form-input {\n width: 100%;\n}\n\n.form-textarea {\n width: 100%;\n resize: vertical;\n min-height: 80px;\n}\n\n:host ::ng-deep .form-input .k-input,\n:host ::ng-deep .form-textarea .k-input-inner,\n:host ::ng-deep .form-field .k-dropdownlist {\n padding: 10px 14px;\n border-radius: 8px;\n font-size: 14px;\n border-color: #e5e7eb;\n transition: all 0.2s ease;\n}\n\n:host ::ng-deep .form-input:focus-within,\n:host ::ng-deep .form-textarea:focus-within,\n:host ::ng-deep .form-field .k-dropdownlist.k-focus {\n box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.1);\n}\n\n.field-hint {\n display: block;\n font-size: 12px;\n color: #6b7280;\n margin-top: 6px;\n line-height: 1.4;\n}\n\n.form-row {\n display: flex;\n gap: 16px;\n}\n\n.form-field.half {\n flex: 1;\n}\n\n.checkbox-label {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n cursor: pointer;\n padding: 12px 16px;\n background: #f9fafb;\n border-radius: 10px;\n border: 1px solid #e5e7eb;\n transition: all 0.2s ease;\n}\n\n.checkbox-label:hover {\n background: #f3f4f6;\n border-color: #d1d5db;\n}\n\n.checkbox-label input {\n margin-top: 2px;\n flex-shrink: 0;\n}\n\n.checkbox-label span:first-of-type {\n font-weight: 600;\n color: #374151;\n font-size: 14px;\n}\n\n.checkbox-hint {\n display: block;\n font-size: 12px;\n color: #6b7280;\n margin-top: 4px;\n line-height: 1.4;\n}\n\n/* Dialog Actions */\n.dialog-actions {\n display: flex;\n gap: 12px;\n padding: 20px 24px;\n background: #f9fafb;\n border-top: 1px solid #e5e7eb;\n margin: 0 -24px -24px -24px;\n}\n\n:host ::ng-deep .dialog-actions .k-button {\n min-width: 100px;\n padding: 10px 20px;\n font-weight: 600;\n border-radius: 8px;\n transition: all 0.2s ease;\n}\n\n:host ::ng-deep .dialog-actions .k-button-solid-primary {\n background: linear-gradient(135deg, #10b981 0%, #059669 100%);\n border: none;\n box-shadow: 0 2px 8px rgba(16, 185, 129, 0.3);\n}\n\n:host ::ng-deep .dialog-actions .k-button-solid-primary:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 12px rgba(16, 185, 129, 0.4);\n}\n"] }]
|
|
648
644
|
}], () => [{ type: i0.ChangeDetectorRef }], { ScopeUpdated: [{
|
|
649
645
|
type: Output
|
|
650
646
|
}] }); })();
|
|
651
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(APIScopesPanelComponent, { className: "APIScopesPanelComponent", filePath: "src/
|
|
647
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(APIScopesPanelComponent, { className: "APIScopesPanelComponent", filePath: "src/apikeys/api-scopes-panel.component.ts", lineNumber: 22 }); })();
|
|
652
648
|
//# sourceMappingURL=api-scopes-panel.component.js.map
|