@antelopejs/interface-dms 0.4.2 → 0.5.1
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 +58 -0
- package/dist/auth/db/tables/users.table.d.ts +7 -0
- package/dist/auth/db/tables/users.table.js +4 -0
- package/dist/auth/db/tables/users.table.js.map +1 -1
- package/dist/base/activity-feed.d.ts +53 -31
- package/dist/base/activity-feed.js +15 -6
- package/dist/base/activity-feed.js.map +1 -1
- package/dist/base/banner.d.ts +61 -4
- package/dist/base/banner.js +13 -2
- package/dist/base/banner.js.map +1 -1
- package/dist/base/block-types.d.ts +1 -0
- package/dist/base/block-types.js +1 -0
- package/dist/base/block-types.js.map +1 -1
- package/dist/base/chart-card.d.ts +1 -1
- package/dist/base/chart-schemas.d.ts +52 -52
- package/dist/base/chart-schemas.js +2 -6
- package/dist/base/chart-schemas.js.map +1 -1
- package/dist/base/chart.js +2 -20
- package/dist/base/chart.js.map +1 -1
- package/dist/base/code-block.d.ts +89 -0
- package/dist/base/code-block.js +93 -0
- package/dist/base/code-block.js.map +1 -0
- package/dist/base/display.d.ts +27 -4
- package/dist/base/display.js +28 -6
- package/dist/base/display.js.map +1 -1
- package/dist/base/empty-state.d.ts +35 -0
- package/dist/base/empty-state.js +10 -0
- package/dist/base/empty-state.js.map +1 -1
- package/dist/base/index.d.ts +1 -0
- package/dist/base/index.js +1 -0
- package/dist/base/index.js.map +1 -1
- package/dist/base/internal/composed-text.d.ts +8 -1
- package/dist/base/internal/composed-text.js +9 -1
- package/dist/base/internal/composed-text.js.map +1 -1
- package/dist/base/internal/realtime-topics.d.ts +15 -0
- package/dist/base/internal/realtime-topics.js +36 -0
- package/dist/base/internal/realtime-topics.js.map +1 -0
- package/dist/base/key-value-list.d.ts +23 -0
- package/dist/base/key-value-list.js +8 -2
- package/dist/base/key-value-list.js.map +1 -1
- package/dist/base/meter.d.ts +38 -17
- package/dist/base/meter.js +15 -6
- package/dist/base/meter.js.map +1 -1
- package/dist/base/nav-card-grid.d.ts +44 -32
- package/dist/base/nav-card-grid.js +11 -7
- package/dist/base/nav-card-grid.js.map +1 -1
- package/dist/base/stat-group.d.ts +6 -0
- package/dist/base/stat-group.js +3 -2
- package/dist/base/stat-group.js.map +1 -1
- package/dist/base/tab.d.ts +8 -0
- package/dist/base/tab.js +5 -2
- package/dist/base/tab.js.map +1 -1
- package/dist/base/table-view/column-display.d.ts +43 -3
- package/dist/base/table-view/column-display.js +3 -2
- package/dist/base/table-view/column-display.js.map +1 -1
- package/dist/base/table-view/factory.js +2 -0
- package/dist/base/table-view/factory.js.map +1 -1
- package/dist/base/table-view/internal/factory-helpers.js +8 -0
- package/dist/base/table-view/internal/factory-helpers.js.map +1 -1
- package/dist/base/table-view/internal/nav-badges.js +7 -2
- package/dist/base/table-view/internal/nav-badges.js.map +1 -1
- package/dist/base/table-view/internal/realtime.d.ts +7 -0
- package/dist/base/table-view/internal/realtime.js +14 -0
- package/dist/base/table-view/internal/realtime.js.map +1 -1
- package/dist/base/table-view/options.d.ts +20 -4
- package/dist/base/table-view/options.js.map +1 -1
- package/dist/base/table-view/schema.d.ts +22 -5
- package/dist/base/table-view/schema.js +11 -4
- package/dist/base/table-view/schema.js.map +1 -1
- package/dist/base/table-view/source.d.ts +10 -2
- package/dist/base/table-view/source.js +9 -1
- package/dist/base/table-view/source.js.map +1 -1
- package/dist/base/top-list-card.d.ts +21 -14
- package/dist/base/top-list-card.js +3 -2
- package/dist/base/top-list-card.js.map +1 -1
- package/dist/base/types/action-target.d.ts +14 -0
- package/dist/component.d.ts +35 -4
- package/dist/component.js +20 -7
- package/dist/component.js.map +1 -1
- package/dist/data-controllers/roles.js +10 -0
- package/dist/data-controllers/roles.js.map +1 -1
- package/dist/db/internal/inviteResolutions.model.d.ts +5 -0
- package/dist/db/internal/inviteResolutions.model.js +13 -0
- package/dist/db/internal/inviteResolutions.model.js.map +1 -1
- package/dist/db/tables/inviteResolutions.table.d.ts +5 -0
- package/dist/db/tables/inviteResolutions.table.js +5 -0
- package/dist/db/tables/inviteResolutions.table.js.map +1 -1
- package/dist/db/tables/user_invites.table.d.ts +0 -1
- package/dist/db/tables/user_invites.table.js +0 -4
- package/dist/db/tables/user_invites.table.js.map +1 -1
- package/dist/internal/permission-ids.d.ts +16 -0
- package/dist/internal/permission-ids.js +31 -0
- package/dist/internal/permission-ids.js.map +1 -0
- package/dist/internal/permission-requirements.d.ts +15 -0
- package/dist/internal/permission-requirements.js +38 -0
- package/dist/internal/permission-requirements.js.map +1 -0
- package/dist/invite-resolution.js +0 -1
- package/dist/invite-resolution.js.map +1 -1
- package/dist/invites.d.ts +0 -2
- package/dist/invites.js +1 -3
- package/dist/invites.js.map +1 -1
- package/dist/page/internal/categories.js +2 -1
- package/dist/page/internal/categories.js.map +1 -1
- package/dist/page/internal/member-access.d.ts +14 -0
- package/dist/page/internal/member-access.js +22 -0
- package/dist/page/internal/member-access.js.map +1 -0
- package/dist/page/internal/nav-badges.d.ts +41 -6
- package/dist/page/internal/nav-badges.js +66 -17
- package/dist/page/internal/nav-badges.js.map +1 -1
- package/dist/page/layout-filter.js +10 -3
- package/dist/page/layout-filter.js.map +1 -1
- package/dist/page/metadata.d.ts +9 -0
- package/dist/page/metadata.js +35 -4
- package/dist/page/metadata.js.map +1 -1
- package/dist/page/roots.d.ts +7 -0
- package/dist/page/roots.js +8 -0
- package/dist/page/roots.js.map +1 -1
- package/dist/page/types.d.ts +19 -3
- package/dist/permissions.d.ts +11 -0
- package/dist/permissions.js +50 -10
- package/dist/permissions.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The ids a dotted permission id sits under, closest first: `a.b.c` gives
|
|
3
|
+
* `a.b` and `a`. A component's id extends its page's, an action's its
|
|
4
|
+
* component's, so these are the permissions it depends on.
|
|
5
|
+
*
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
export declare function permissionIdAncestors(id: string): string[];
|
|
9
|
+
/**
|
|
10
|
+
* A role's permission set completed with every id its permissions sit under,
|
|
11
|
+
* deduplicated: what the roles editor grants with a permission, and what a
|
|
12
|
+
* role is stored with whichever route saved it.
|
|
13
|
+
*
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
export declare function withPermissionAncestors(permissions: string[]): string[];
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.permissionIdAncestors = permissionIdAncestors;
|
|
4
|
+
exports.withPermissionAncestors = withPermissionAncestors;
|
|
5
|
+
const ID_SEPARATOR = ".";
|
|
6
|
+
/**
|
|
7
|
+
* The ids a dotted permission id sits under, closest first: `a.b.c` gives
|
|
8
|
+
* `a.b` and `a`. A component's id extends its page's, an action's its
|
|
9
|
+
* component's, so these are the permissions it depends on.
|
|
10
|
+
*
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
function permissionIdAncestors(id) {
|
|
14
|
+
const parts = id.split(ID_SEPARATOR);
|
|
15
|
+
return parts
|
|
16
|
+
.slice(1)
|
|
17
|
+
.map((_, position) => parts.slice(0, parts.length - position - 1).join(ID_SEPARATOR));
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* A role's permission set completed with every id its permissions sit under,
|
|
21
|
+
* deduplicated: what the roles editor grants with a permission, and what a
|
|
22
|
+
* role is stored with whichever route saved it.
|
|
23
|
+
*
|
|
24
|
+
* @internal
|
|
25
|
+
*/
|
|
26
|
+
function withPermissionAncestors(permissions) {
|
|
27
|
+
return [
|
|
28
|
+
...new Set(permissions.flatMap((id) => [id, ...permissionIdAncestors(id)])),
|
|
29
|
+
];
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=permission-ids.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permission-ids.js","sourceRoot":"","sources":["../../src/internal/permission-ids.ts"],"names":[],"mappings":";;AASA,sDAOC;AASD,0DAIC;AA7BD,MAAM,YAAY,GAAG,GAAG,CAAC;AAEzB;;;;;;GAMG;AACH,SAAgB,qBAAqB,CAAC,EAAU;IAC9C,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACrC,OAAO,KAAK;SACT,KAAK,CAAC,CAAC,CAAC;SACR,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,CACnB,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAC/D,CAAC;AACN,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,uBAAuB,CAAC,WAAqB;IAC3D,OAAO;QACL,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KAC5E,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A role's permission set completed with everything its permissions need:
|
|
3
|
+
* the ids each one sits under, and the `dependencies` a registered permission
|
|
4
|
+
* declares (a table's edit needs its view, the read that loads the row), with
|
|
5
|
+
* what those need in turn. What a role is stored with, whichever route saved
|
|
6
|
+
* it, as the roles editor grants it.
|
|
7
|
+
*
|
|
8
|
+
* Only registered permissions are added: an id nothing registers (a module
|
|
9
|
+
* not loaded right now, a typo) is kept as given, but no parent is made up
|
|
10
|
+
* from its dotted path — `does.not.exist` must not bring a `does` that a
|
|
11
|
+
* module could register later.
|
|
12
|
+
*
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
export declare function withRequiredPermissions(permissions: string[]): Promise<string[]>;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.withRequiredPermissions = withRequiredPermissions;
|
|
4
|
+
const permissions_1 = require("../permissions");
|
|
5
|
+
const permission_ids_1 = require("./permission-ids");
|
|
6
|
+
/**
|
|
7
|
+
* A role's permission set completed with everything its permissions need:
|
|
8
|
+
* the ids each one sits under, and the `dependencies` a registered permission
|
|
9
|
+
* declares (a table's edit needs its view, the read that loads the row), with
|
|
10
|
+
* what those need in turn. What a role is stored with, whichever route saved
|
|
11
|
+
* it, as the roles editor grants it.
|
|
12
|
+
*
|
|
13
|
+
* Only registered permissions are added: an id nothing registers (a module
|
|
14
|
+
* not loaded right now, a typo) is kept as given, but no parent is made up
|
|
15
|
+
* from its dotted path — `does.not.exist` must not bring a `does` that a
|
|
16
|
+
* module could register later.
|
|
17
|
+
*
|
|
18
|
+
* @internal
|
|
19
|
+
*/
|
|
20
|
+
async function withRequiredPermissions(permissions) {
|
|
21
|
+
const required = new Set(permissions);
|
|
22
|
+
const pending = [...required];
|
|
23
|
+
for (let id = pending.shift(); id !== undefined; id = pending.shift()) {
|
|
24
|
+
const permission = await (0, permissions_1.GetPermission)(id);
|
|
25
|
+
const needed = [
|
|
26
|
+
...(0, permission_ids_1.permissionIdAncestors)(id),
|
|
27
|
+
...(permission?.dependencies ?? []),
|
|
28
|
+
];
|
|
29
|
+
for (const neededId of needed) {
|
|
30
|
+
if (required.has(neededId) || !(await (0, permissions_1.GetPermission)(neededId)))
|
|
31
|
+
continue;
|
|
32
|
+
required.add(neededId);
|
|
33
|
+
pending.push(neededId);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return [...required];
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=permission-requirements.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permission-requirements.js","sourceRoot":"","sources":["../../src/internal/permission-requirements.ts"],"names":[],"mappings":";;AAiBA,0DAkBC;AAnCD,gDAA+C;AAC/C,qDAAyD;AAEzD;;;;;;;;;;;;;GAaG;AACI,KAAK,UAAU,uBAAuB,CAC3C,WAAqB;IAErB,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC9B,KAAK,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QACtE,MAAM,UAAU,GAAG,MAAM,IAAA,2BAAa,EAAC,EAAE,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG;YACb,GAAG,IAAA,sCAAqB,EAAC,EAAE,CAAC;YAC5B,GAAG,CAAC,UAAU,EAAE,YAAY,IAAI,EAAE,CAAC;SACpC,CAAC;QACF,KAAK,MAAM,QAAQ,IAAI,MAAM,EAAE,CAAC;YAC9B,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,IAAA,2BAAa,EAAC,QAAQ,CAAC,CAAC;gBAAE,SAAS;YACzE,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;AACvB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invite-resolution.js","sourceRoot":"","sources":["../src/invite-resolution.ts"],"names":[],"mappings":";;AAgBA,kDAWC;AAGD,8CAaC;
|
|
1
|
+
{"version":3,"file":"invite-resolution.js","sourceRoot":"","sources":["../src/invite-resolution.ts"],"names":[],"mappings":"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"}
|
package/dist/invites.d.ts
CHANGED
|
@@ -12,7 +12,6 @@ export interface InviteUserToTenantOptions {
|
|
|
12
12
|
language?: string;
|
|
13
13
|
roleIds?: string[];
|
|
14
14
|
asTenantOwner?: boolean;
|
|
15
|
-
skipEmailValidation?: boolean;
|
|
16
15
|
/** Opt-in: dispatch `sendAdminInviteEmail` after the invite row is created. */
|
|
17
16
|
sendEmail?: boolean;
|
|
18
17
|
/**
|
|
@@ -70,7 +69,6 @@ export interface CreateUserInviteTokenOptions {
|
|
|
70
69
|
language: string;
|
|
71
70
|
roleIds: string[];
|
|
72
71
|
asTenantOwner: boolean;
|
|
73
|
-
skipEmailValidation: boolean;
|
|
74
72
|
/** Id of the user who sends the invitation; `null` when nobody signed in did. */
|
|
75
73
|
invitedBy?: string | null;
|
|
76
74
|
extensions?: InviteExtensionPayloads;
|
package/dist/invites.js
CHANGED
|
@@ -56,7 +56,7 @@ async function inviteUserToTenant(options) {
|
|
|
56
56
|
};
|
|
57
57
|
}
|
|
58
58
|
async function inviteAdmittedUser(options) {
|
|
59
|
-
const { tenantId, email, firstname = null, lastname = null, language = "en", roleIds = [], asTenantOwner = false,
|
|
59
|
+
const { tenantId, email, firstname = null, lastname = null, language = "en", roleIds = [], asTenantOwner = false, invitedBy = null, extensions, } = options;
|
|
60
60
|
const userModel = (0, interface_database_decorators_1.GetModel)(db_2.UserModel);
|
|
61
61
|
const existingUser = await userModel.getByEmail(email);
|
|
62
62
|
if (existingUser) {
|
|
@@ -75,7 +75,6 @@ async function inviteAdmittedUser(options) {
|
|
|
75
75
|
language,
|
|
76
76
|
roleIds,
|
|
77
77
|
asTenantOwner,
|
|
78
|
-
skipEmailValidation,
|
|
79
78
|
invitedBy,
|
|
80
79
|
extensions,
|
|
81
80
|
});
|
|
@@ -157,7 +156,6 @@ function buildInviteSnapshot(options) {
|
|
|
157
156
|
token: randomstring_1.default.generate({ length: exports.INVITE_TOKEN_LENGTH }),
|
|
158
157
|
asTenantOwner: options.asTenantOwner,
|
|
159
158
|
expiresAt: new Date(Date.now() + exports.INVITE_EXPIRY_DAYS * time_1.MILLISECONDS_PER_DAY),
|
|
160
|
-
skipEmailValidation: options.skipEmailValidation,
|
|
161
159
|
invitedBy: options.invitedBy ?? null,
|
|
162
160
|
extensions: options.extensions ?? null,
|
|
163
161
|
});
|
package/dist/invites.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invites.js","sourceRoot":"","sources":["../src/invites.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"invites.js","sourceRoot":"","sources":["../src/invites.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,7 @@ const metadata_1 = require("../metadata");
|
|
|
22
22
|
const logging_1 = require("@antelopejs/interface-core/logging");
|
|
23
23
|
const fire_and_forget_1 = require("../../utils/fire-and-forget");
|
|
24
24
|
const registry_1 = require("./registry");
|
|
25
|
+
const member_access_1 = require("./member-access");
|
|
25
26
|
const types_1 = require("./types");
|
|
26
27
|
// The proxies and isInsideModule are only read inside function bodies; see
|
|
27
28
|
// the matching import in ../categories.
|
|
@@ -187,7 +188,7 @@ function createCategoryFunction(id, options) {
|
|
|
187
188
|
id: categoryInfo.fullId,
|
|
188
189
|
title: categoryInfo.displayName,
|
|
189
190
|
icon: categoryInfo.icon,
|
|
190
|
-
defaultGranted: categoryInfo.publicAccess || categoryInfo.memberAccess,
|
|
191
|
+
defaultGranted: categoryInfo.publicAccess || (0, member_access_1.opensToMembers)(categoryInfo.memberAccess),
|
|
191
192
|
// oxlint-disable-next-line typescript/no-misused-spread
|
|
192
193
|
...categoryInfo.permission,
|
|
193
194
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"categories.js","sourceRoot":"","sources":["../../../src/page/internal/categories.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"categories.js","sourceRoot":"","sources":["../../../src/page/internal/categories.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { MemberAccess } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* Whether `memberAccess` opens the entry that declares it to every member.
|
|
4
|
+
*
|
|
5
|
+
* @internal
|
|
6
|
+
*/
|
|
7
|
+
export declare function opensToMembers(memberAccess: MemberAccess | undefined): boolean;
|
|
8
|
+
/**
|
|
9
|
+
* The `memberAccess` an entry takes from its parent: only `true` passes on,
|
|
10
|
+
* since `"self"` opens the parent alone.
|
|
11
|
+
*
|
|
12
|
+
* @internal
|
|
13
|
+
*/
|
|
14
|
+
export declare function inheritedMemberAccess(parentMemberAccess: MemberAccess | undefined): true | undefined;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.opensToMembers = opensToMembers;
|
|
4
|
+
exports.inheritedMemberAccess = inheritedMemberAccess;
|
|
5
|
+
/**
|
|
6
|
+
* Whether `memberAccess` opens the entry that declares it to every member.
|
|
7
|
+
*
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
function opensToMembers(memberAccess) {
|
|
11
|
+
return memberAccess === true || memberAccess === "self";
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* The `memberAccess` an entry takes from its parent: only `true` passes on,
|
|
15
|
+
* since `"self"` opens the parent alone.
|
|
16
|
+
*
|
|
17
|
+
* @internal
|
|
18
|
+
*/
|
|
19
|
+
function inheritedMemberAccess(parentMemberAccess) {
|
|
20
|
+
return parentMemberAccess === true ? true : undefined;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=member-access.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"member-access.js","sourceRoot":"","sources":["../../../src/page/internal/member-access.ts"],"names":[],"mappings":";;AAOA,wCAIC;AAQD,sDAIC;AArBD;;;;GAIG;AACH,SAAgB,cAAc,CAC5B,YAAsC;IAEtC,OAAO,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,MAAM,CAAC;AAC1D,CAAC;AAED;;;;;GAKG;AACH,SAAgB,qBAAqB,CACnC,kBAA4C;IAE5C,OAAO,kBAAkB,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACxD,CAAC"}
|
|
@@ -1,17 +1,52 @@
|
|
|
1
1
|
import type { RequestContext } from "@antelopejs/interface-api";
|
|
2
2
|
import type { User } from "../../auth/db";
|
|
3
|
+
import type { NavBadgeCount } from "../../component";
|
|
4
|
+
import type { Tone } from "../../base/types/tone";
|
|
3
5
|
/**
|
|
4
|
-
*
|
|
6
|
+
* A page's navigation badge as the menu serves it: the label, and its tone
|
|
7
|
+
* when it is not neutral.
|
|
5
8
|
*
|
|
6
9
|
* @internal
|
|
7
10
|
*/
|
|
8
|
-
export
|
|
11
|
+
export interface ResolvedNavBadge {
|
|
12
|
+
badge: string;
|
|
13
|
+
tone?: Tone;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Page full id → its navigation badge and tone.
|
|
17
|
+
*
|
|
18
|
+
* @internal
|
|
19
|
+
*/
|
|
20
|
+
export type ResolvedNavBadges = Record<string, ResolvedNavBadge>;
|
|
21
|
+
/**
|
|
22
|
+
* The tones a navigation badge takes, strongest first: an immediate risk, a
|
|
23
|
+
* thing to check, an action available, good news, then plain information.
|
|
24
|
+
* Several counts on one badge take the strongest of their tones.
|
|
25
|
+
*
|
|
26
|
+
* @internal
|
|
27
|
+
*/
|
|
28
|
+
export declare const NAV_BADGE_TONE_ORDER: readonly Tone[];
|
|
29
|
+
/**
|
|
30
|
+
* The strongest of `tones` (see {@link NAV_BADGE_TONE_ORDER}); undefined when
|
|
31
|
+
* none is given.
|
|
32
|
+
*
|
|
33
|
+
* @internal
|
|
34
|
+
*/
|
|
35
|
+
export declare function strongestNavBadgeTone(tones: Iterable<Tone | undefined>): Tone | undefined;
|
|
36
|
+
/**
|
|
37
|
+
* One badge for several counts: they add up, in the strongest tone of those
|
|
38
|
+
* that count something.
|
|
39
|
+
*
|
|
40
|
+
* @internal
|
|
41
|
+
*/
|
|
42
|
+
export declare function combineNavBadgeCounts(values: Array<number | NavBadgeCount>): NavBadgeCount;
|
|
9
43
|
/**
|
|
10
44
|
* The navigation badges of the pages `pageFullIds` — those the caller can
|
|
11
|
-
* open — for the caller of `ctx
|
|
12
|
-
* publishes its counter for its page. A count the caller may
|
|
13
|
-
* that fails, and a count of zero show no badge
|
|
45
|
+
* open — for the caller of `ctx`, with their tones: a table view tab declared
|
|
46
|
+
* with `navBadge` publishes its counter for its page. A count the caller may
|
|
47
|
+
* not read, one that fails, and a count of zero show no badge; the counts a
|
|
48
|
+
* page receives from several components add up, in the strongest tone.
|
|
14
49
|
*
|
|
15
50
|
* @internal Called by the DMS when it serves the menu.
|
|
16
51
|
*/
|
|
17
|
-
export declare function
|
|
52
|
+
export declare function ResolveNavBadgeEntries(ctx: RequestContext, user: User, pageFullIds: Set<string>): Promise<ResolvedNavBadges>;
|
|
@@ -1,10 +1,53 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.NAV_BADGE_TONE_ORDER = void 0;
|
|
4
|
+
exports.strongestNavBadgeTone = strongestNavBadgeTone;
|
|
5
|
+
exports.combineNavBadgeCounts = combineNavBadgeCounts;
|
|
6
|
+
exports.ResolveNavBadgeEntries = ResolveNavBadgeEntries;
|
|
4
7
|
const interface_core_1 = require("@antelopejs/interface-core");
|
|
5
8
|
const component_target_1 = require("./component-target");
|
|
6
9
|
const metadata_1 = require("../metadata");
|
|
7
10
|
const registry_1 = require("./registry");
|
|
11
|
+
/**
|
|
12
|
+
* The tones a navigation badge takes, strongest first: an immediate risk, a
|
|
13
|
+
* thing to check, an action available, good news, then plain information.
|
|
14
|
+
* Several counts on one badge take the strongest of their tones.
|
|
15
|
+
*
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
18
|
+
exports.NAV_BADGE_TONE_ORDER = [
|
|
19
|
+
"error",
|
|
20
|
+
"warning",
|
|
21
|
+
"primary",
|
|
22
|
+
"secondary",
|
|
23
|
+
"success",
|
|
24
|
+
"info",
|
|
25
|
+
"neutral",
|
|
26
|
+
];
|
|
27
|
+
/**
|
|
28
|
+
* The strongest of `tones` (see {@link NAV_BADGE_TONE_ORDER}); undefined when
|
|
29
|
+
* none is given.
|
|
30
|
+
*
|
|
31
|
+
* @internal
|
|
32
|
+
*/
|
|
33
|
+
function strongestNavBadgeTone(tones) {
|
|
34
|
+
const given = new Set(tones);
|
|
35
|
+
return exports.NAV_BADGE_TONE_ORDER.find((tone) => given.has(tone));
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* One badge for several counts: they add up, in the strongest tone of those
|
|
39
|
+
* that count something.
|
|
40
|
+
*
|
|
41
|
+
* @internal
|
|
42
|
+
*/
|
|
43
|
+
function combineNavBadgeCounts(values) {
|
|
44
|
+
const counts = values.map((value) => typeof value === "number" ? { count: value } : value);
|
|
45
|
+
const nonZero = counts.filter(({ count }) => count > 0);
|
|
46
|
+
const tone = strongestNavBadgeTone(nonZero.map(({ tone }) => tone));
|
|
47
|
+
const count = nonZero.reduce((sum, value) => sum + value.count, 0);
|
|
48
|
+
return tone ? { count, tone } : { count };
|
|
49
|
+
}
|
|
50
|
+
const NEUTRAL_TONE = "neutral";
|
|
8
51
|
/** A component and everything it nests, each once. */
|
|
9
52
|
function componentsUnder(root) {
|
|
10
53
|
const seen = new Set();
|
|
@@ -24,7 +67,7 @@ function targetPageFullId(source, ownPageFullId) {
|
|
|
24
67
|
return ownPageFullId;
|
|
25
68
|
return (0, interface_core_1.GetMetadata)(source.page, metadata_1.PageMetadata).pageInfo?.fullId;
|
|
26
69
|
}
|
|
27
|
-
/** Every badge the registered pages publish, the
|
|
70
|
+
/** Every badge the registered pages publish, with all the counts for a page. */
|
|
28
71
|
function publishedNavBadges(pageFullIds) {
|
|
29
72
|
const published = new Map();
|
|
30
73
|
for (const [ownPageFullId, meta] of registry_1.pageMetadataByFullId) {
|
|
@@ -35,33 +78,39 @@ function publishedNavBadges(pageFullIds) {
|
|
|
35
78
|
const pageFullId = targetPageFullId(source, ownPageFullId);
|
|
36
79
|
if (!pageFullId || !pageFullIds.has(pageFullId))
|
|
37
80
|
continue;
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
81
|
+
const entry = published.get(pageFullId) ?? { pageFullId, sources: [] };
|
|
82
|
+
entry.sources.push(source);
|
|
83
|
+
published.set(pageFullId, entry);
|
|
41
84
|
}
|
|
42
85
|
}
|
|
43
86
|
return [...published.values()];
|
|
44
87
|
}
|
|
88
|
+
/** The counts of `sources` the caller may read; one that throws counts none. */
|
|
89
|
+
async function countSources(sources, ctx, user) {
|
|
90
|
+
const counted = await Promise.allSettled(sources.map((source) => source.count(ctx, user)));
|
|
91
|
+
return combineNavBadgeCounts(counted.flatMap((result) => result.status === "fulfilled" ? [result.value] : []));
|
|
92
|
+
}
|
|
45
93
|
/**
|
|
46
94
|
* The navigation badges of the pages `pageFullIds` — those the caller can
|
|
47
|
-
* open — for the caller of `ctx
|
|
48
|
-
* publishes its counter for its page. A count the caller may
|
|
49
|
-
* that fails, and a count of zero show no badge
|
|
95
|
+
* open — for the caller of `ctx`, with their tones: a table view tab declared
|
|
96
|
+
* with `navBadge` publishes its counter for its page. A count the caller may
|
|
97
|
+
* not read, one that fails, and a count of zero show no badge; the counts a
|
|
98
|
+
* page receives from several components add up, in the strongest tone.
|
|
50
99
|
*
|
|
51
100
|
* @internal Called by the DMS when it serves the menu.
|
|
52
101
|
*/
|
|
53
|
-
async function
|
|
54
|
-
const counted = await Promise.
|
|
55
|
-
const count = await
|
|
56
|
-
return
|
|
102
|
+
async function ResolveNavBadgeEntries(ctx, user, pageFullIds) {
|
|
103
|
+
const counted = await Promise.all(publishedNavBadges(pageFullIds).map(async ({ pageFullId, sources }) => {
|
|
104
|
+
const { count, tone } = await countSources(sources, ctx, user);
|
|
105
|
+
return { pageFullId, count, tone };
|
|
57
106
|
}));
|
|
58
107
|
const badges = {};
|
|
59
|
-
for (const
|
|
60
|
-
if (
|
|
108
|
+
for (const { pageFullId, count, tone } of counted) {
|
|
109
|
+
if (count <= 0)
|
|
61
110
|
continue;
|
|
62
|
-
const
|
|
63
|
-
|
|
64
|
-
|
|
111
|
+
const badge = String(count);
|
|
112
|
+
badges[pageFullId] =
|
|
113
|
+
tone && tone !== NEUTRAL_TONE ? { badge, tone } : { badge };
|
|
65
114
|
}
|
|
66
115
|
return badges;
|
|
67
116
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nav-badges.js","sourceRoot":"","sources":["../../../src/page/internal/nav-badges.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"nav-badges.js","sourceRoot":"","sources":["../../../src/page/internal/nav-badges.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,10 +11,15 @@ async function filterComponentInfo(comp, permissionId, permissions, componentMap
|
|
|
11
11
|
if (component?.onFilterCallback && filtered.options) {
|
|
12
12
|
filtered.options = await component.onFilterCallback(permissions, filtered.options, permissionId, context);
|
|
13
13
|
}
|
|
14
|
-
filtered.options = filterRequiredPermissionWatches(filtered.options, permissions);
|
|
14
|
+
filtered.options = await filterRequiredPermissionWatches(filtered.options, permissions);
|
|
15
15
|
return filtered;
|
|
16
16
|
}
|
|
17
|
-
|
|
17
|
+
/**
|
|
18
|
+
* The watch actions the caller may run: one gated by `requirePermission` is
|
|
19
|
+
* kept only when the caller holds that permission as everywhere else (an
|
|
20
|
+
* owner's `*` and the permission's ancestors included).
|
|
21
|
+
*/
|
|
22
|
+
async function filterRequiredPermissionWatches(options, permissions) {
|
|
18
23
|
if (!options || typeof options !== "object") {
|
|
19
24
|
return options;
|
|
20
25
|
}
|
|
@@ -22,9 +27,11 @@ function filterRequiredPermissionWatches(options, permissions) {
|
|
|
22
27
|
if (!Array.isArray(opts.watchActions) || opts.watchActions.length === 0) {
|
|
23
28
|
return options;
|
|
24
29
|
}
|
|
30
|
+
const granted = await Promise.all(opts.watchActions.map(async (w) => !w.requirePermission ||
|
|
31
|
+
(await (0, permissions_1.HasPermission)(permissions, w.requirePermission))));
|
|
25
32
|
return {
|
|
26
33
|
...opts,
|
|
27
|
-
watchActions: opts.watchActions.filter((
|
|
34
|
+
watchActions: opts.watchActions.filter((_, index) => granted[index]),
|
|
28
35
|
};
|
|
29
36
|
}
|
|
30
37
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout-filter.js","sourceRoot":"","sources":["../../src/page/layout-filter.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"layout-filter.js","sourceRoot":"","sources":["../../src/page/layout-filter.ts"],"names":[],"mappings":"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"}
|
package/dist/page/metadata.d.ts
CHANGED
|
@@ -85,6 +85,15 @@ export declare class PageMetadata {
|
|
|
85
85
|
* @internal
|
|
86
86
|
*/
|
|
87
87
|
AcceptsExtensions(): boolean;
|
|
88
|
+
/**
|
|
89
|
+
* Whether the page declares blocks and `permissions` grants none of them:
|
|
90
|
+
* the layout it serves would then be `allComponentsHidden`, by the same
|
|
91
|
+
* per-block check. A page declaring none (a module page rendering its own
|
|
92
|
+
* content), or serving its blocks to whoever opens it, hides nothing.
|
|
93
|
+
*
|
|
94
|
+
* @internal Read by the menu, which leaves such a page out.
|
|
95
|
+
*/
|
|
96
|
+
HidesEveryComponent(permissions: Set<string>): Promise<boolean>;
|
|
88
97
|
/**
|
|
89
98
|
* Wait until the page has serialized its own components — and until the
|
|
90
99
|
* registration that ends up owning them is the current one: a registration
|