@idp.global/catalog 7.1.3 → 8.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/changelog.md +35 -0
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/elements/idp-admin-overview.js +2 -2
- package/dist_ts_web/elements/idp-admin-shell.d.ts +1 -0
- package/dist_ts_web/elements/idp-admin-shell.js +20 -2
- package/dist_ts_web/elements/idp-admin-sidebar.d.ts +1 -0
- package/dist_ts_web/elements/idp-admin-sidebar.js +71 -54
- package/package.json +9 -9
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/elements/idp-admin-overview.ts +1 -1
- package/ts_web/elements/idp-admin-shell.ts +14 -0
- package/ts_web/elements/idp-admin-sidebar.ts +66 -53
|
@@ -62,6 +62,9 @@ let IdpAdminSidebar = (() => {
|
|
|
62
62
|
let _globalAdmin_decorators;
|
|
63
63
|
let _globalAdmin_initializers = [];
|
|
64
64
|
let _globalAdmin_extraInitializers = [];
|
|
65
|
+
let _superadmin_decorators;
|
|
66
|
+
let _superadmin_initializers = [];
|
|
67
|
+
let _superadmin_extraInitializers = [];
|
|
65
68
|
let _sessionCount_decorators;
|
|
66
69
|
let _sessionCount_initializers = [];
|
|
67
70
|
let _sessionCount_extraInitializers = [];
|
|
@@ -81,6 +84,7 @@ let IdpAdminSidebar = (() => {
|
|
|
81
84
|
_orgs_decorators = [property({ type: Array })];
|
|
82
85
|
_selectedOrgId_decorators = [property({ type: String, attribute: 'selected-org-id' })];
|
|
83
86
|
_globalAdmin_decorators = [property({ type: Boolean, attribute: 'global-admin', reflect: true })];
|
|
87
|
+
_superadmin_decorators = [property({ type: Boolean, reflect: true })];
|
|
84
88
|
_sessionCount_decorators = [property({ type: Number, attribute: 'session-count' })];
|
|
85
89
|
_orgMenuOpen_decorators = [state()];
|
|
86
90
|
_userMenuOpen_decorators = [state()];
|
|
@@ -90,6 +94,7 @@ let IdpAdminSidebar = (() => {
|
|
|
90
94
|
__esDecorate(this, null, _orgs_decorators, { kind: "accessor", name: "orgs", static: false, private: false, access: { has: obj => "orgs" in obj, get: obj => obj.orgs, set: (obj, value) => { obj.orgs = value; } }, metadata: _metadata }, _orgs_initializers, _orgs_extraInitializers);
|
|
91
95
|
__esDecorate(this, null, _selectedOrgId_decorators, { kind: "accessor", name: "selectedOrgId", static: false, private: false, access: { has: obj => "selectedOrgId" in obj, get: obj => obj.selectedOrgId, set: (obj, value) => { obj.selectedOrgId = value; } }, metadata: _metadata }, _selectedOrgId_initializers, _selectedOrgId_extraInitializers);
|
|
92
96
|
__esDecorate(this, null, _globalAdmin_decorators, { kind: "accessor", name: "globalAdmin", static: false, private: false, access: { has: obj => "globalAdmin" in obj, get: obj => obj.globalAdmin, set: (obj, value) => { obj.globalAdmin = value; } }, metadata: _metadata }, _globalAdmin_initializers, _globalAdmin_extraInitializers);
|
|
97
|
+
__esDecorate(this, null, _superadmin_decorators, { kind: "accessor", name: "superadmin", static: false, private: false, access: { has: obj => "superadmin" in obj, get: obj => obj.superadmin, set: (obj, value) => { obj.superadmin = value; } }, metadata: _metadata }, _superadmin_initializers, _superadmin_extraInitializers);
|
|
93
98
|
__esDecorate(this, null, _sessionCount_decorators, { kind: "accessor", name: "sessionCount", static: false, private: false, access: { has: obj => "sessionCount" in obj, get: obj => obj.sessionCount, set: (obj, value) => { obj.sessionCount = value; } }, metadata: _metadata }, _sessionCount_initializers, _sessionCount_extraInitializers);
|
|
94
99
|
__esDecorate(this, null, _orgMenuOpen_decorators, { kind: "accessor", name: "orgMenuOpen", static: false, private: false, access: { has: obj => "orgMenuOpen" in obj, get: obj => obj.orgMenuOpen, set: (obj, value) => { obj.orgMenuOpen = value; } }, metadata: _metadata }, _orgMenuOpen_initializers, _orgMenuOpen_extraInitializers);
|
|
95
100
|
__esDecorate(this, null, _userMenuOpen_decorators, { kind: "accessor", name: "userMenuOpen", static: false, private: false, access: { has: obj => "userMenuOpen" in obj, get: obj => obj.userMenuOpen, set: (obj, value) => { obj.userMenuOpen = value; } }, metadata: _metadata }, _userMenuOpen_initializers, _userMenuOpen_extraInitializers);
|
|
@@ -486,7 +491,10 @@ let IdpAdminSidebar = (() => {
|
|
|
486
491
|
#globalAdmin_accessor_storage = (__runInitializers(this, _selectedOrgId_extraInitializers), __runInitializers(this, _globalAdmin_initializers, false));
|
|
487
492
|
get globalAdmin() { return this.#globalAdmin_accessor_storage; }
|
|
488
493
|
set globalAdmin(value) { this.#globalAdmin_accessor_storage = value; }
|
|
489
|
-
#
|
|
494
|
+
#superadmin_accessor_storage = (__runInitializers(this, _globalAdmin_extraInitializers), __runInitializers(this, _superadmin_initializers, false));
|
|
495
|
+
get superadmin() { return this.#superadmin_accessor_storage; }
|
|
496
|
+
set superadmin(value) { this.#superadmin_accessor_storage = value; }
|
|
497
|
+
#sessionCount_accessor_storage = (__runInitializers(this, _superadmin_extraInitializers), __runInitializers(this, _sessionCount_initializers, 0));
|
|
490
498
|
get sessionCount() { return this.#sessionCount_accessor_storage; }
|
|
491
499
|
set sessionCount(value) { this.#sessionCount_accessor_storage = value; }
|
|
492
500
|
#orgMenuOpen_accessor_storage = (__runInitializers(this, _sessionCount_extraInitializers), __runInitializers(this, _orgMenuOpen_initializers, false));
|
|
@@ -604,32 +612,36 @@ let IdpAdminSidebar = (() => {
|
|
|
604
612
|
<div class="user-meta"><div class="user-name">${this.user?.name || 'Unknown User'}</div><div class="user-email">${this.user?.email || 'No email'}</div></div>
|
|
605
613
|
${this.globalAdmin ? html `<idp-badge variant="accent">Admin</idp-badge>` : html ``}
|
|
606
614
|
</div>
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
? html
|
|
619
|
-
<div class="user-menu-divider"></div>
|
|
620
|
-
<div class="user-menu-title">Switch account</div>
|
|
621
|
-
${otherAccounts.map((accountArg) => html `
|
|
622
|
-
<button class="user-menu-item account" @click=${() => this.switchAccount(accountArg)}>
|
|
623
|
-
<idp-avatar name=${accountArg.name || accountArg.email} size="22"></idp-avatar>
|
|
624
|
-
<div class="user-meta"><div class="user-name">${accountArg.name}</div><div class="user-email">${accountArg.email}</div></div>
|
|
625
|
-
<idp-icon name="lucide:ArrowLeftRight" size="12"></idp-icon>
|
|
626
|
-
</button>
|
|
627
|
-
`)}
|
|
628
|
-
<button class="user-menu-item" @click=${() => this.requestAddAccount()}>
|
|
629
|
-
<idp-icon name="plus" size="14"></idp-icon><span>Add account</span>
|
|
615
|
+
${this.superadmin
|
|
616
|
+
? html ``
|
|
617
|
+
: html `
|
|
618
|
+
<button class="user-menu-item" @click=${() => this.setPage('profile')}>
|
|
619
|
+
<idp-icon name="user" size="14"></idp-icon><span>Profile</span>
|
|
620
|
+
</button>
|
|
621
|
+
<button class="user-menu-item" @click=${() => this.setPage('security')}>
|
|
622
|
+
<idp-icon name="shield" size="14"></idp-icon><span>Security</span>
|
|
623
|
+
</button>
|
|
624
|
+
<button class="user-menu-item" @click=${() => this.setPage('sessions')}>
|
|
625
|
+
<idp-icon name="monitor" size="14"></idp-icon><span>Sessions & Devices</span>
|
|
626
|
+
${this.sessionCount ? html `<span class="user-menu-hint">${this.sessionCount} active</span>` : html ``}
|
|
630
627
|
</button>
|
|
631
|
-
|
|
632
|
-
|
|
628
|
+
${otherAccounts.length
|
|
629
|
+
? html `
|
|
630
|
+
<div class="user-menu-divider"></div>
|
|
631
|
+
<div class="user-menu-title">Switch account</div>
|
|
632
|
+
${otherAccounts.map((accountArg) => html `
|
|
633
|
+
<button class="user-menu-item account" @click=${() => this.switchAccount(accountArg)}>
|
|
634
|
+
<idp-avatar name=${accountArg.name || accountArg.email} size="22"></idp-avatar>
|
|
635
|
+
<div class="user-meta"><div class="user-name">${accountArg.name}</div><div class="user-email">${accountArg.email}</div></div>
|
|
636
|
+
<idp-icon name="lucide:ArrowLeftRight" size="12"></idp-icon>
|
|
637
|
+
</button>
|
|
638
|
+
`)}
|
|
639
|
+
<button class="user-menu-item" @click=${() => this.requestAddAccount()}>
|
|
640
|
+
<idp-icon name="plus" size="14"></idp-icon><span>Add account</span>
|
|
641
|
+
</button>
|
|
642
|
+
`
|
|
643
|
+
: html ``}
|
|
644
|
+
`}
|
|
633
645
|
<div class="user-menu-divider"></div>
|
|
634
646
|
<button class="user-menu-item destructive" @click=${() => this.requestLogout()}>
|
|
635
647
|
<idp-icon name="logout" size="14"></idp-icon><span>Sign out</span>
|
|
@@ -652,35 +664,40 @@ let IdpAdminSidebar = (() => {
|
|
|
652
664
|
</div>
|
|
653
665
|
</div>
|
|
654
666
|
<nav class="nav-wrap" aria-label="Console navigation">
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
<
|
|
662
|
-
<
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
<button class="org-menu-item ${orgArg.id === this.selectedOrgId ? 'selected' : ''}" @click=${() => this.selectOrg(orgArg.id)}>
|
|
670
|
-
<span class="org-avatar">${orgArg.name.slice(0, 2).toUpperCase()}</span>
|
|
671
|
-
<span style="flex:1;min-width:0"><span class="org-menu-name">${orgArg.name}</span><span class="org-menu-role">${orgArg.myRole || 'member'}</span></span>
|
|
672
|
-
${orgArg.id === this.selectedOrgId ? html `<idp-icon name="check" size="11"></idp-icon>` : html ``}
|
|
667
|
+
${this.superadmin
|
|
668
|
+
? this.globalAdmin
|
|
669
|
+
? html `<div class="nav-section"><div class="nav-title">Global Admin</div>${this.renderNavGroup(this.adminNav, this.page)}</div>`
|
|
670
|
+
: html ``
|
|
671
|
+
: html `
|
|
672
|
+
<div class="nav-section"><div class="nav-title">Workspace</div>${this.renderNavGroup(this.workspaceNav, this.page)}</div>
|
|
673
|
+
<div class="nav-section"><div class="nav-title">My Account</div>${this.renderNavGroup(this.accountNav, this.page)}</div>
|
|
674
|
+
<div class="nav-section">
|
|
675
|
+
<div class="nav-title">Organisation</div>
|
|
676
|
+
<div class="org-switch-wrap">
|
|
677
|
+
<button class="org-switch ${this.orgMenuOpen ? 'open' : ''}" aria-haspopup="menu" aria-expanded=${this.orgMenuOpen} @click=${() => { this.orgMenuOpen = !this.orgMenuOpen; }}>
|
|
678
|
+
<span class="org-avatar">${currentOrg.name.slice(0, 2).toUpperCase()}</span>
|
|
679
|
+
<span class="org-name">${currentOrg.name}</span>
|
|
680
|
+
<idp-icon name="chevron-down" size="10"></idp-icon>
|
|
673
681
|
</button>
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
682
|
+
${this.orgMenuOpen ? html `
|
|
683
|
+
<div class="org-menu">
|
|
684
|
+
<div class="org-menu-title">Switch organisation</div>
|
|
685
|
+
${this.safeOrgs.map((orgArg) => html `
|
|
686
|
+
<button class="org-menu-item ${orgArg.id === this.selectedOrgId ? 'selected' : ''}" @click=${() => this.selectOrg(orgArg.id)}>
|
|
687
|
+
<span class="org-avatar">${orgArg.name.slice(0, 2).toUpperCase()}</span>
|
|
688
|
+
<span style="flex:1;min-width:0"><span class="org-menu-name">${orgArg.name}</span><span class="org-menu-role">${orgArg.myRole || 'member'}</span></span>
|
|
689
|
+
${orgArg.id === this.selectedOrgId ? html `<idp-icon name="check" size="11"></idp-icon>` : html ``}
|
|
690
|
+
</button>
|
|
691
|
+
`)}
|
|
692
|
+
<div class="org-menu-divider"></div>
|
|
693
|
+
<button class="org-create" @click=${() => this.requestOrgCreate()}><span class="org-create-icon"><idp-icon name="plus" size="9"></idp-icon></span>Create organisation</button>
|
|
694
|
+
</div>
|
|
695
|
+
` : html ``}
|
|
696
|
+
</div>
|
|
697
|
+
${this.renderNavGroup(this.orgNav, this.page)}
|
|
677
698
|
</div>
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
${this.renderNavGroup(this.orgNav, this.page)}
|
|
681
|
-
</div>
|
|
682
|
-
<div class="nav-section"><div class="nav-title">Support</div>${this.renderNavGroup(this.supportNav, this.page)}</div>
|
|
683
|
-
${this.globalAdmin ? html `<div class="nav-section"><div class="nav-title">Global Admin</div>${this.renderNavGroup(this.adminNav, this.page)}</div>` : html ``}
|
|
699
|
+
<div class="nav-section"><div class="nav-title">Support</div>${this.renderNavGroup(this.supportNav, this.page)}</div>
|
|
700
|
+
`}
|
|
684
701
|
</nav>
|
|
685
702
|
<div class="user-footer">
|
|
686
703
|
<button class="user-trigger ${this.userMenuOpen ? 'open' : ''}" aria-haspopup="menu" aria-expanded=${this.userMenuOpen} @click=${() => { this.userMenuOpen = !this.userMenuOpen; }}>
|
|
@@ -700,4 +717,4 @@ let IdpAdminSidebar = (() => {
|
|
|
700
717
|
return IdpAdminSidebar = _classThis;
|
|
701
718
|
})();
|
|
702
719
|
export { IdpAdminSidebar };
|
|
703
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRwLWFkbWluLXNpZGViYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvaWRwLWFkbWluLXNpZGViYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBdUIsTUFBTSw2QkFBNkIsQ0FBQztBQUMxSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxlQUFlLENBQUM7QUFDdkIsT0FBTyxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLGlCQUFpQixDQUFDO0lBd0JaLGVBQWU7NEJBRDNCLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQzs7OztzQkFDRSxXQUFXOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OytCQUFuQixTQUFRLFdBQVc7Ozs7Z0NBbVg3QyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0NBRzFCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztvQ0FNMUIsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO2dDQUd6QixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7eUNBR3pCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLENBQUM7dUNBR3hELFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7d0NBR3JFLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxN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
|
|
720
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRwLWFkbWluLXNpZGViYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvaWRwLWFkbWluLXNpZGViYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBdUIsTUFBTSw2QkFBNkIsQ0FBQztBQUMxSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxlQUFlLENBQUM7QUFDdkIsT0FBTyxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLGlCQUFpQixDQUFDO0lBd0JaLGVBQWU7NEJBRDNCLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQzs7OztzQkFDRSxXQUFXOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OytCQUFuQixTQUFRLFdBQVc7Ozs7Z0NBbVg3QyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0NBRzFCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztvQ0FNMUIsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO2dDQUd6QixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7eUNBR3pCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLENBQUM7dUNBR3hELFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7c0NBR3JFLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFB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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@idp.global/catalog",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "8.0.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Web component catalog for idp.global, based on the v5 Apple-system design language.",
|
|
6
6
|
"exports": {
|
|
@@ -12,19 +12,19 @@
|
|
|
12
12
|
"author": "Task Venture Capital GmbH",
|
|
13
13
|
"license": "MIT",
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@design.estate/dees-catalog": "^
|
|
16
|
-
"@design.estate/dees-domtools": "^
|
|
17
|
-
"@design.estate/dees-element": "^
|
|
18
|
-
"@design.estate/dees-wcctools": "^3.9.2",
|
|
15
|
+
"@design.estate/dees-catalog": "^16.13.0",
|
|
16
|
+
"@design.estate/dees-domtools": "^3.0.1",
|
|
17
|
+
"@design.estate/dees-element": "^3.4.0",
|
|
19
18
|
"@idp.global/interfaces": "^25.1.0",
|
|
20
19
|
"lucide": "^1.24.0"
|
|
21
20
|
},
|
|
22
21
|
"devDependencies": {
|
|
23
|
-
"@
|
|
24
|
-
"@git.zone/
|
|
25
|
-
"@git.zone/
|
|
22
|
+
"@design.estate/dees-wcctools": "^4.0.0",
|
|
23
|
+
"@git.zone/tsbuild": "^5.0.0",
|
|
24
|
+
"@git.zone/tsbundle": "^3.0.0",
|
|
25
|
+
"@git.zone/tswatch": "^4.0.2",
|
|
26
26
|
"@push.rocks/projectinfo": "^5.1.0",
|
|
27
|
-
"@types/node": "^26.
|
|
27
|
+
"@types/node": "^26.6.2"
|
|
28
28
|
},
|
|
29
29
|
"files": [
|
|
30
30
|
"ts_web/**/*",
|
|
@@ -245,8 +245,8 @@ export class IdpAdminOverview extends DeesElement {
|
|
|
245
245
|
<div class="primary-grid">
|
|
246
246
|
${data?.chartSeries?.length ? html`
|
|
247
247
|
<div class="card chart-card">
|
|
248
|
-
<div class="card-head"><span class="card-title">${data.chartLabel || 'Approval activity'}</span></div>
|
|
249
248
|
<dees-chart-area
|
|
249
|
+
.frameless=${true}
|
|
250
250
|
.label=${data.chartLabel || 'Approval activity'}
|
|
251
251
|
.yAxisFormatter=${(valueArg: number) => `${Math.round(valueArg)}`}
|
|
252
252
|
.series=${data.chartSeries.map((seriesArg) => ({
|
|
@@ -48,6 +48,8 @@ export type TIdpAdminPage =
|
|
|
48
48
|
| 'ga-orgs'
|
|
49
49
|
| 'ga-apps';
|
|
50
50
|
|
|
51
|
+
const globalAdminPages = new Set<TIdpAdminPage>(['ga-users', 'ga-orgs', 'ga-apps']);
|
|
52
|
+
|
|
51
53
|
export interface IIdpAdminUser {
|
|
52
54
|
name: string;
|
|
53
55
|
email: string;
|
|
@@ -1001,6 +1003,9 @@ export class IdpAdminShell extends DeesElement {
|
|
|
1001
1003
|
@property({ type: Boolean, attribute: 'global-admin', reflect: true })
|
|
1002
1004
|
public accessor globalAdmin = false;
|
|
1003
1005
|
|
|
1006
|
+
@property({ type: Boolean, reflect: true })
|
|
1007
|
+
public accessor superadmin = false;
|
|
1008
|
+
|
|
1004
1009
|
@property({ type: Boolean, attribute: 'data-loading', reflect: true })
|
|
1005
1010
|
public accessor dataLoading = false;
|
|
1006
1011
|
|
|
@@ -2973,6 +2978,13 @@ export class IdpAdminShell extends DeesElement {
|
|
|
2973
2978
|
'ga-orgs': () => this.renderGAOrgs(),
|
|
2974
2979
|
'ga-apps': () => this.renderGAApps(),
|
|
2975
2980
|
};
|
|
2981
|
+
const isGlobalAdminPage = globalAdminPages.has(this.page);
|
|
2982
|
+
if (this.superadmin && !isGlobalAdminPage) {
|
|
2983
|
+
return renderers['ga-apps']();
|
|
2984
|
+
}
|
|
2985
|
+
if (!this.superadmin && isGlobalAdminPage) {
|
|
2986
|
+
return renderers.overview();
|
|
2987
|
+
}
|
|
2976
2988
|
return (renderers[this.page] || renderers.overview)();
|
|
2977
2989
|
}
|
|
2978
2990
|
|
|
@@ -3004,6 +3016,7 @@ export class IdpAdminShell extends DeesElement {
|
|
|
3004
3016
|
.orgs=${this.orgs}
|
|
3005
3017
|
.selectedOrgId=${this.selectedOrgId}
|
|
3006
3018
|
.globalAdmin=${this.globalAdmin}
|
|
3019
|
+
.superadmin=${this.superadmin}
|
|
3007
3020
|
.sessionCount=${this.sessions.length}
|
|
3008
3021
|
></idp-admin-sidebar>
|
|
3009
3022
|
${this.mobileNavOpen
|
|
@@ -3020,6 +3033,7 @@ export class IdpAdminShell extends DeesElement {
|
|
|
3020
3033
|
.orgs=${this.orgs}
|
|
3021
3034
|
.selectedOrgId=${this.selectedOrgId}
|
|
3022
3035
|
.globalAdmin=${this.globalAdmin}
|
|
3036
|
+
.superadmin=${this.superadmin}
|
|
3023
3037
|
.sessionCount=${this.sessions.length}
|
|
3024
3038
|
></idp-admin-sidebar>
|
|
3025
3039
|
</div>
|
|
@@ -419,6 +419,9 @@ export class IdpAdminSidebar extends DeesElement {
|
|
|
419
419
|
@property({ type: Boolean, attribute: 'global-admin', reflect: true })
|
|
420
420
|
public accessor globalAdmin = false;
|
|
421
421
|
|
|
422
|
+
@property({ type: Boolean, reflect: true })
|
|
423
|
+
public accessor superadmin = false;
|
|
424
|
+
|
|
422
425
|
@property({ type: Number, attribute: 'session-count' })
|
|
423
426
|
public accessor sessionCount = 0;
|
|
424
427
|
|
|
@@ -554,34 +557,39 @@ export class IdpAdminSidebar extends DeesElement {
|
|
|
554
557
|
<div class="user-meta"><div class="user-name">${this.user?.name || 'Unknown User'}</div><div class="user-email">${this.user?.email || 'No email'}</div></div>
|
|
555
558
|
${this.globalAdmin ? html`<idp-badge variant="accent">Admin</idp-badge>` : html``}
|
|
556
559
|
</div>
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
${this.sessionCount ? html`<span class="user-menu-hint">${this.sessionCount} active</span>` : html``}
|
|
566
|
-
</button>
|
|
567
|
-
${otherAccounts.length
|
|
568
|
-
? html`
|
|
569
|
-
<div class="user-menu-divider"></div>
|
|
570
|
-
<div class="user-menu-title">Switch account</div>
|
|
571
|
-
${otherAccounts.map(
|
|
572
|
-
(accountArg) => html`
|
|
573
|
-
<button class="user-menu-item account" @click=${() => this.switchAccount(accountArg)}>
|
|
574
|
-
<idp-avatar name=${accountArg.name || accountArg.email} size="22"></idp-avatar>
|
|
575
|
-
<div class="user-meta"><div class="user-name">${accountArg.name}</div><div class="user-email">${accountArg.email}</div></div>
|
|
576
|
-
<idp-icon name="lucide:ArrowLeftRight" size="12"></idp-icon>
|
|
577
|
-
</button>
|
|
578
|
-
`
|
|
579
|
-
)}
|
|
580
|
-
<button class="user-menu-item" @click=${() => this.requestAddAccount()}>
|
|
581
|
-
<idp-icon name="plus" size="14"></idp-icon><span>Add account</span>
|
|
560
|
+
${this.superadmin
|
|
561
|
+
? html``
|
|
562
|
+
: html`
|
|
563
|
+
<button class="user-menu-item" @click=${() => this.setPage('profile')}>
|
|
564
|
+
<idp-icon name="user" size="14"></idp-icon><span>Profile</span>
|
|
565
|
+
</button>
|
|
566
|
+
<button class="user-menu-item" @click=${() => this.setPage('security')}>
|
|
567
|
+
<idp-icon name="shield" size="14"></idp-icon><span>Security</span>
|
|
582
568
|
</button>
|
|
569
|
+
<button class="user-menu-item" @click=${() => this.setPage('sessions')}>
|
|
570
|
+
<idp-icon name="monitor" size="14"></idp-icon><span>Sessions & Devices</span>
|
|
571
|
+
${this.sessionCount ? html`<span class="user-menu-hint">${this.sessionCount} active</span>` : html``}
|
|
572
|
+
</button>
|
|
573
|
+
${otherAccounts.length
|
|
574
|
+
? html`
|
|
575
|
+
<div class="user-menu-divider"></div>
|
|
576
|
+
<div class="user-menu-title">Switch account</div>
|
|
577
|
+
${otherAccounts.map(
|
|
578
|
+
(accountArg) => html`
|
|
579
|
+
<button class="user-menu-item account" @click=${() => this.switchAccount(accountArg)}>
|
|
580
|
+
<idp-avatar name=${accountArg.name || accountArg.email} size="22"></idp-avatar>
|
|
581
|
+
<div class="user-meta"><div class="user-name">${accountArg.name}</div><div class="user-email">${accountArg.email}</div></div>
|
|
582
|
+
<idp-icon name="lucide:ArrowLeftRight" size="12"></idp-icon>
|
|
583
|
+
</button>
|
|
584
|
+
`
|
|
585
|
+
)}
|
|
586
|
+
<button class="user-menu-item" @click=${() => this.requestAddAccount()}>
|
|
587
|
+
<idp-icon name="plus" size="14"></idp-icon><span>Add account</span>
|
|
588
|
+
</button>
|
|
589
|
+
`
|
|
590
|
+
: html``}
|
|
583
591
|
`
|
|
584
|
-
|
|
592
|
+
}
|
|
585
593
|
<div class="user-menu-divider"></div>
|
|
586
594
|
<button class="user-menu-item destructive" @click=${() => this.requestLogout()}>
|
|
587
595
|
<idp-icon name="logout" size="14"></idp-icon><span>Sign out</span>
|
|
@@ -605,35 +613,40 @@ export class IdpAdminSidebar extends DeesElement {
|
|
|
605
613
|
</div>
|
|
606
614
|
</div>
|
|
607
615
|
<nav class="nav-wrap" aria-label="Console navigation">
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
<
|
|
615
|
-
<
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
<button class="org-menu-item ${orgArg.id === this.selectedOrgId ? 'selected' : ''}" @click=${() => this.selectOrg(orgArg.id)}>
|
|
623
|
-
<span class="org-avatar">${orgArg.name.slice(0, 2).toUpperCase()}</span>
|
|
624
|
-
<span style="flex:1;min-width:0"><span class="org-menu-name">${orgArg.name}</span><span class="org-menu-role">${orgArg.myRole || 'member'}</span></span>
|
|
625
|
-
${orgArg.id === this.selectedOrgId ? html`<idp-icon name="check" size="11"></idp-icon>` : html``}
|
|
616
|
+
${this.superadmin
|
|
617
|
+
? this.globalAdmin
|
|
618
|
+
? html`<div class="nav-section"><div class="nav-title">Global Admin</div>${this.renderNavGroup(this.adminNav, this.page)}</div>`
|
|
619
|
+
: html``
|
|
620
|
+
: html`
|
|
621
|
+
<div class="nav-section"><div class="nav-title">Workspace</div>${this.renderNavGroup(this.workspaceNav, this.page)}</div>
|
|
622
|
+
<div class="nav-section"><div class="nav-title">My Account</div>${this.renderNavGroup(this.accountNav, this.page)}</div>
|
|
623
|
+
<div class="nav-section">
|
|
624
|
+
<div class="nav-title">Organisation</div>
|
|
625
|
+
<div class="org-switch-wrap">
|
|
626
|
+
<button class="org-switch ${this.orgMenuOpen ? 'open' : ''}" aria-haspopup="menu" aria-expanded=${this.orgMenuOpen} @click=${() => { this.orgMenuOpen = !this.orgMenuOpen; }}>
|
|
627
|
+
<span class="org-avatar">${currentOrg.name.slice(0, 2).toUpperCase()}</span>
|
|
628
|
+
<span class="org-name">${currentOrg.name}</span>
|
|
629
|
+
<idp-icon name="chevron-down" size="10"></idp-icon>
|
|
626
630
|
</button>
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
631
|
+
${this.orgMenuOpen ? html`
|
|
632
|
+
<div class="org-menu">
|
|
633
|
+
<div class="org-menu-title">Switch organisation</div>
|
|
634
|
+
${this.safeOrgs.map((orgArg) => html`
|
|
635
|
+
<button class="org-menu-item ${orgArg.id === this.selectedOrgId ? 'selected' : ''}" @click=${() => this.selectOrg(orgArg.id)}>
|
|
636
|
+
<span class="org-avatar">${orgArg.name.slice(0, 2).toUpperCase()}</span>
|
|
637
|
+
<span style="flex:1;min-width:0"><span class="org-menu-name">${orgArg.name}</span><span class="org-menu-role">${orgArg.myRole || 'member'}</span></span>
|
|
638
|
+
${orgArg.id === this.selectedOrgId ? html`<idp-icon name="check" size="11"></idp-icon>` : html``}
|
|
639
|
+
</button>
|
|
640
|
+
`)}
|
|
641
|
+
<div class="org-menu-divider"></div>
|
|
642
|
+
<button class="org-create" @click=${() => this.requestOrgCreate()}><span class="org-create-icon"><idp-icon name="plus" size="9"></idp-icon></span>Create organisation</button>
|
|
643
|
+
</div>
|
|
644
|
+
` : html``}
|
|
645
|
+
</div>
|
|
646
|
+
${this.renderNavGroup(this.orgNav, this.page)}
|
|
630
647
|
</div>
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
${this.renderNavGroup(this.orgNav, this.page)}
|
|
634
|
-
</div>
|
|
635
|
-
<div class="nav-section"><div class="nav-title">Support</div>${this.renderNavGroup(this.supportNav, this.page)}</div>
|
|
636
|
-
${this.globalAdmin ? html`<div class="nav-section"><div class="nav-title">Global Admin</div>${this.renderNavGroup(this.adminNav, this.page)}</div>` : html``}
|
|
648
|
+
<div class="nav-section"><div class="nav-title">Support</div>${this.renderNavGroup(this.supportNav, this.page)}</div>
|
|
649
|
+
`}
|
|
637
650
|
</nav>
|
|
638
651
|
<div class="user-footer">
|
|
639
652
|
<button class="user-trigger ${this.userMenuOpen ? 'open' : ''}" aria-haspopup="menu" aria-expanded=${this.userMenuOpen} @click=${() => { this.userMenuOpen = !this.userMenuOpen; }}>
|