@etsoo/appscript 1.5.90 → 1.5.92

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.
@@ -90,6 +90,14 @@ test("Tests for formatFullName", () => {
90
90
  expect(app.formatFullName("Xiao", "Garry")).toBe("Garry Xiao");
91
91
  });
92
92
 
93
+ test("Tests for getRoleLabel", () => {
94
+ const labels = app.getRoleLabel(
95
+ UserRole.User | UserRole.Manager | UserRole.Admin,
96
+ "-"
97
+ );
98
+ expect(labels).toBe("User-Manager-Admin");
99
+ });
100
+
93
101
  test("Tests for getRoles", () => {
94
102
  const roles = app.getRoles(UserRole.User | UserRole.Manager | UserRole.Admin);
95
103
  expect(roles.length).toBe(3);
@@ -509,11 +509,18 @@ export declare abstract class CoreApp<U extends IUser, S extends IAppSettings, N
509
509
  * @returns Regions
510
510
  */
511
511
  getRegions(): AddressRegion[];
512
+ /**
513
+ * Get role label
514
+ * @param role Role value
515
+ * @param joinChar Join char
516
+ * @returns Label(s)
517
+ */
518
+ getRoleLabel(role: number | null | undefined, joinChar?: string): string;
512
519
  /**
513
520
  * Get roles
514
- * @param role Combination role value
521
+ * @param role Combination role value, null for all roles
515
522
  */
516
- getRoles(role: number): ListType[];
523
+ getRoles(role?: number): ListType[];
517
524
  /**
518
525
  * Get status list
519
526
  * @param ids Limited ids
@@ -1235,11 +1235,26 @@ class CoreApp {
1235
1235
  return AddressRegion_1.AddressRegion.getById(id);
1236
1236
  });
1237
1237
  }
1238
+ /**
1239
+ * Get role label
1240
+ * @param role Role value
1241
+ * @param joinChar Join char
1242
+ * @returns Label(s)
1243
+ */
1244
+ getRoleLabel(role, joinChar) {
1245
+ if (role == null)
1246
+ return "";
1247
+ joinChar ?? (joinChar = ", ");
1248
+ const roles = this.getRoles(role);
1249
+ return roles.map((r) => r.label).join(joinChar);
1250
+ }
1238
1251
  /**
1239
1252
  * Get roles
1240
- * @param role Combination role value
1253
+ * @param role Combination role value, null for all roles
1241
1254
  */
1242
1255
  getRoles(role) {
1256
+ if (role == null)
1257
+ return this.getEnumList(UserRole_1.UserRole, "role");
1243
1258
  return this.getEnumList(UserRole_1.UserRole, "role", (id, _key) => {
1244
1259
  if ((id & role) > 0)
1245
1260
  return id;
@@ -455,11 +455,18 @@ export interface IApp {
455
455
  * @returns Regions
456
456
  */
457
457
  getRegions(): AddressRegion[];
458
+ /**
459
+ * Get role label
460
+ * @param role Role value
461
+ * @param joinChar Join char
462
+ * @returns Label(s)
463
+ */
464
+ getRoleLabel(role: number | null | undefined, joinChar?: string): string;
458
465
  /**
459
466
  * Get roles
460
- * @param role Combination role value
467
+ * @param role Combination role value, null for all roles
461
468
  */
462
- getRoles(role: number): ListType[];
469
+ getRoles(role?: number): ListType[];
463
470
  /**
464
471
  * Get status label
465
472
  * @param status Status value
@@ -509,11 +509,18 @@ export declare abstract class CoreApp<U extends IUser, S extends IAppSettings, N
509
509
  * @returns Regions
510
510
  */
511
511
  getRegions(): AddressRegion[];
512
+ /**
513
+ * Get role label
514
+ * @param role Role value
515
+ * @param joinChar Join char
516
+ * @returns Label(s)
517
+ */
518
+ getRoleLabel(role: number | null | undefined, joinChar?: string): string;
512
519
  /**
513
520
  * Get roles
514
- * @param role Combination role value
521
+ * @param role Combination role value, null for all roles
515
522
  */
516
- getRoles(role: number): ListType[];
523
+ getRoles(role?: number): ListType[];
517
524
  /**
518
525
  * Get status list
519
526
  * @param ids Limited ids
@@ -1232,11 +1232,26 @@ export class CoreApp {
1232
1232
  return AddressRegion.getById(id);
1233
1233
  });
1234
1234
  }
1235
+ /**
1236
+ * Get role label
1237
+ * @param role Role value
1238
+ * @param joinChar Join char
1239
+ * @returns Label(s)
1240
+ */
1241
+ getRoleLabel(role, joinChar) {
1242
+ if (role == null)
1243
+ return "";
1244
+ joinChar ?? (joinChar = ", ");
1245
+ const roles = this.getRoles(role);
1246
+ return roles.map((r) => r.label).join(joinChar);
1247
+ }
1235
1248
  /**
1236
1249
  * Get roles
1237
- * @param role Combination role value
1250
+ * @param role Combination role value, null for all roles
1238
1251
  */
1239
1252
  getRoles(role) {
1253
+ if (role == null)
1254
+ return this.getEnumList(UserRole, "role");
1240
1255
  return this.getEnumList(UserRole, "role", (id, _key) => {
1241
1256
  if ((id & role) > 0)
1242
1257
  return id;
@@ -455,11 +455,18 @@ export interface IApp {
455
455
  * @returns Regions
456
456
  */
457
457
  getRegions(): AddressRegion[];
458
+ /**
459
+ * Get role label
460
+ * @param role Role value
461
+ * @param joinChar Join char
462
+ * @returns Label(s)
463
+ */
464
+ getRoleLabel(role: number | null | undefined, joinChar?: string): string;
458
465
  /**
459
466
  * Get roles
460
- * @param role Combination role value
467
+ * @param role Combination role value, null for all roles
461
468
  */
462
- getRoles(role: number): ListType[];
469
+ getRoles(role?: number): ListType[];
463
470
  /**
464
471
  * Get status label
465
472
  * @param status Status value
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@etsoo/appscript",
3
- "version": "1.5.90",
3
+ "version": "1.5.92",
4
4
  "description": "Applications shared TypeScript framework",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/mjs/index.js",
@@ -35,9 +35,9 @@
35
35
  },
36
36
  "homepage": "https://github.com/ETSOO/AppScript#readme",
37
37
  "dependencies": {
38
- "@etsoo/notificationbase": "^1.1.56",
39
- "@etsoo/restclient": "^1.1.19",
40
- "@etsoo/shared": "^1.2.58",
38
+ "@etsoo/notificationbase": "^1.1.57",
39
+ "@etsoo/restclient": "^1.1.20",
40
+ "@etsoo/shared": "^1.2.59",
41
41
  "crypto-js": "^4.2.0"
42
42
  },
43
43
  "devDependencies": {
@@ -50,6 +50,6 @@
50
50
  "@vitejs/plugin-react": "^4.3.4",
51
51
  "jsdom": "^26.0.0",
52
52
  "typescript": "^5.7.3",
53
- "vitest": "^2.1.8"
53
+ "vitest": "^3.0.2"
54
54
  }
55
55
  }
@@ -1734,11 +1734,28 @@ export abstract class CoreApp<
1734
1734
  });
1735
1735
  }
1736
1736
 
1737
+ /**
1738
+ * Get role label
1739
+ * @param role Role value
1740
+ * @param joinChar Join char
1741
+ * @returns Label(s)
1742
+ */
1743
+ getRoleLabel(role: number | null | undefined, joinChar?: string) {
1744
+ if (role == null) return "";
1745
+
1746
+ joinChar ??= ", ";
1747
+
1748
+ const roles = this.getRoles(role);
1749
+ return roles.map((r) => r.label).join(joinChar);
1750
+ }
1751
+
1737
1752
  /**
1738
1753
  * Get roles
1739
- * @param role Combination role value
1754
+ * @param role Combination role value, null for all roles
1740
1755
  */
1741
- getRoles(role: number) {
1756
+ getRoles(role?: number) {
1757
+ if (role == null) return this.getEnumList(UserRole, "role");
1758
+
1742
1759
  return this.getEnumList(UserRole, "role", (id, _key) => {
1743
1760
  if ((id & role) > 0) return id;
1744
1761
  });
package/src/app/IApp.ts CHANGED
@@ -610,11 +610,19 @@ export interface IApp {
610
610
  */
611
611
  getRegions(): AddressRegion[];
612
612
 
613
+ /**
614
+ * Get role label
615
+ * @param role Role value
616
+ * @param joinChar Join char
617
+ * @returns Label(s)
618
+ */
619
+ getRoleLabel(role: number | null | undefined, joinChar?: string): string;
620
+
613
621
  /**
614
622
  * Get roles
615
- * @param role Combination role value
623
+ * @param role Combination role value, null for all roles
616
624
  */
617
- getRoles(role: number): ListType[];
625
+ getRoles(role?: number): ListType[];
618
626
 
619
627
  /**
620
628
  * Get status label