@ieeesa-npm/groups 0.7.1 → 0.7.3

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.
Files changed (49) hide show
  1. package/esm2022/lib/assets/constants.json +54 -11
  2. package/esm2022/lib/assets/form-validations.mjs +4 -1
  3. package/esm2022/lib/components/add-user-roster/add-user-roster.component.mjs +259 -22
  4. package/esm2022/lib/components/create-group/create-group.component.mjs +3 -3
  5. package/esm2022/lib/components/edit-user-roles/edit-user-roles.component.mjs +267 -33
  6. package/esm2022/lib/components/tree-view/tree-view.component.mjs +20 -5
  7. package/esm2022/lib/components/view-roster/view-roster.component.mjs +458 -98
  8. package/esm2022/lib/groups.component.mjs +39 -19
  9. package/esm2022/lib/models/add-or-edit-user-group.model.mjs +1 -1
  10. package/esm2022/lib/models/classification.model.mjs +2 -0
  11. package/esm2022/lib/models/filter-type.model.mjs +8 -0
  12. package/esm2022/lib/models/group-permissions.model.mjs +2 -0
  13. package/esm2022/lib/models/group-types.model.mjs +1 -1
  14. package/esm2022/lib/models/group-user-info.model.mjs +1 -1
  15. package/esm2022/lib/models/member-type.model.mjs +2 -0
  16. package/esm2022/lib/models/organization.model.mjs +2 -0
  17. package/esm2022/lib/models/permission-type.model.mjs +15 -0
  18. package/esm2022/lib/models/roster-type.model.mjs +7 -0
  19. package/esm2022/lib/models/table-column-schema-user-group.model.mjs +12 -0
  20. package/esm2022/lib/models/user.model.mjs +1 -1
  21. package/esm2022/lib/services/group-permissions-map-service.mjs +71 -0
  22. package/esm2022/lib/services/groups.service.mjs +139 -16
  23. package/esm2022/lib/services/user-permissions.service.mjs +43 -0
  24. package/esm2022/public-api.mjs +7 -1
  25. package/fesm2022/ieeesa-npm-groups.mjs +1367 -195
  26. package/fesm2022/ieeesa-npm-groups.mjs.map +1 -1
  27. package/lib/assets/form-validations.d.ts +2 -0
  28. package/lib/components/add-user-roster/add-user-roster.component.d.ts +58 -1
  29. package/lib/components/edit-user-roles/edit-user-roles.component.d.ts +64 -11
  30. package/lib/components/tree-view/tree-view.component.d.ts +5 -1
  31. package/lib/components/view-roster/view-roster.component.d.ts +67 -8
  32. package/lib/groups.component.d.ts +17 -3
  33. package/lib/models/add-or-edit-user-group.model.d.ts +24 -8
  34. package/lib/models/classification.model.d.ts +10 -0
  35. package/lib/models/filter-type.model.d.ts +5 -0
  36. package/lib/models/group-permissions.model.d.ts +9 -0
  37. package/lib/models/group-types.model.d.ts +1 -0
  38. package/lib/models/group-user-info.model.d.ts +3 -0
  39. package/lib/models/member-type.model.d.ts +10 -0
  40. package/lib/models/organization.model.d.ts +9 -0
  41. package/lib/models/permission-type.model.d.ts +12 -0
  42. package/lib/models/roster-type.model.d.ts +4 -0
  43. package/lib/models/table-column-schema-user-group.model.d.ts +9 -0
  44. package/lib/models/user.model.d.ts +20 -5
  45. package/lib/services/group-permissions-map-service.d.ts +8 -0
  46. package/lib/services/groups.service.d.ts +109 -18
  47. package/lib/services/user-permissions.service.d.ts +25 -0
  48. package/package.json +4 -4
  49. package/public-api.d.ts +6 -0
@@ -1,19 +1,27 @@
1
1
  import { Observable, BehaviorSubject } from 'rxjs';
2
2
  import { CreateGroupPayload, CreateGroupResponse } from '../models/create-group.model';
3
- import { GroupTypeConfiguration, GroupTypeConfigValue, GroupTypeResponse } from '../models/group-types.model';
3
+ import { BusinessRule, GroupTypeConfiguration, GroupTypeConfigValue, GroupTypeResponse } from '../models/group-types.model';
4
4
  import { AlertsService, HttpService } from '@ieeesa-npm/utility';
5
5
  import { GetGroupResponse, GetGroupsPayload } from '../models/view-group.model';
6
6
  import { DeleteGroupPayload } from '../models/delete-group.model';
7
7
  import { GroupInfo } from '../models/group-info.model';
8
- import { SearchUsersPayload, FilterUsersByRolesPayload, GetGroupUsersResponse, User } from '../models/user.model';
8
+ import { SearchUsersPayload, FilterUsersPayload, GetGroupUsersResponse, User } from '../models/user.model';
9
9
  import { CheckboxOption } from '@ieeesa-npm/presentation';
10
10
  import { EditGroupPayload } from '../models/edit-group.model';
11
11
  import { GroupFunctionType } from '../models/group-function-type.model';
12
12
  import { RosterFunctionType } from '../models/roster-function-type.model';
13
13
  import { GroupUserInfo } from '../models/group-user-info.model';
14
- import { AddOrEditUserPayload, AddOrEditGroupUserDetailsResponse } from '../models/add-or-edit-user-group.model';
14
+ import { AddOrEditUserPayload, AddOrEditGroupUserDetailsResponse, AddOrEditUserIndividualRosterPayload } from '../models/add-or-edit-user-group.model';
15
15
  import { DeleteUserGroupPayload } from '../models/delete-user-group.model';
16
16
  import { GetUserDetailsPayload, SearchUserByEmailResponse } from '../models/add-new-user.model';
17
+ import { OrganizationResponse } from '../models/organization.model';
18
+ import { MemberTypeResponse } from '../models/member-type.model';
19
+ import { ClassificationResponse } from '../models/classification.model';
20
+ import { GroupRosterType } from '../models/roster-type.model';
21
+ import { FormControlStatus } from '@angular/forms';
22
+ import { GroupPermission } from '../models/group-permissions.model';
23
+ import { PermissionType } from '../models/permission-type.model';
24
+ import { UserPermissionsService } from './user-permissions.service';
17
25
  import * as i0 from "@angular/core";
18
26
  /**
19
27
  * Groups service is an abstract layer and responsible for managing groups REST API calls.
@@ -21,15 +29,11 @@ import * as i0 from "@angular/core";
21
29
  */
22
30
  export declare class GroupsService {
23
31
  private httpService;
32
+ private userPermissionsService;
24
33
  alertService: AlertsService;
25
34
  groupsText: {
26
- /**
27
- * Updates group form data to server using HttpService.
28
- * @param {EditGroupPayload} editGroupPayload -edit group form data which includes group name, short name, scope.
29
- * @return {Observable<EditGroupPayload>} -returns edit group API response (success or error) as an observable.
30
- * @memberof GroupsService
31
- */
32
35
  ER1000: string;
36
+ ER1001: string;
33
37
  "1001": string;
34
38
  "1002": string;
35
39
  "1003": string;
@@ -45,6 +49,11 @@ export declare class GroupsService {
45
49
  "1013": string;
46
50
  "1014": string;
47
51
  "1015": string;
52
+ /**
53
+ * Returns the selected group info.
54
+ * @return {(GroupInfo | undefined)} -group info.
55
+ * @memberof GroupsService
56
+ */
48
57
  "1016": string;
49
58
  "1017": string;
50
59
  "1018": string;
@@ -68,6 +77,19 @@ export declare class GroupsService {
68
77
  "2002": string;
69
78
  "2010": string;
70
79
  "2011": string;
80
+ "20l2": string;
81
+ "2013": string;
82
+ "2014": string;
83
+ "2015": string;
84
+ "2016": string;
85
+ "2017": string;
86
+ "2018": string;
87
+ "2019": string;
88
+ "2020": string;
89
+ "2021": string;
90
+ "2022": string;
91
+ "2023": string;
92
+ "3004": string;
71
93
  };
72
94
  apiBaseUrl: string;
73
95
  userPermission: any;
@@ -79,7 +101,9 @@ export declare class GroupsService {
79
101
  selectedUserInfo: GroupUserInfo;
80
102
  canShowMessage: boolean;
81
103
  rosterFunctionType: RosterFunctionType;
82
- constructor(httpService: HttpService, alertService: AlertsService);
104
+ userGroupPermissions: GroupPermission[];
105
+ groupTypes: GroupTypeConfiguration[];
106
+ constructor(httpService: HttpService, userPermissionsService: UserPermissionsService, alertService: AlertsService);
83
107
  setAppConfig(apiBaseUrl: string, userPermission: any): void;
84
108
  /**
85
109
  * Gets application group types from API and returns it as an observable.
@@ -167,14 +191,14 @@ export declare class GroupsService {
167
191
  * @return {Observable<GetGroupUsersResponse>}
168
192
  * @memberof GroupsService
169
193
  */
170
- getGroupUsers(groupId: string): Observable<GetGroupUsersResponse>;
194
+ getGroupUsers(groupId: string, sortColumn: string, sortDirection: boolean): Observable<GetGroupUsersResponse>;
171
195
  /**
172
196
  * Gets the group users based on the filtered roles.
173
- * @param {FilterUsersByRolesPayload} payload
197
+ * @param {FilterUsersPayload} payload
174
198
  * @return {Observable<GetGroupUsersResponse>}
175
199
  * @memberof GroupsService
176
200
  */
177
- getGroupUsersByRoles(payload: FilterUsersByRolesPayload): Observable<GetGroupUsersResponse>;
201
+ getGroupUsersByRoles(payload: FilterUsersPayload): Observable<GetGroupUsersResponse>;
178
202
  /**
179
203
  * Gets the group users based on searched name or email
180
204
  * @param {SearchUsersPayload} payload
@@ -189,6 +213,18 @@ export declare class GroupsService {
189
213
  * @memberof GroupsService
190
214
  */
191
215
  getGroupTypeRoles(groupTypeId: string): Observable<CheckboxOption[]>;
216
+ /**
217
+ * Fetches the classifications master data from configuration and returns.
218
+ * @return {Observable<ClassificationResponse>}
219
+ * @memberof GroupsService
220
+ */
221
+ getClassifications(): Observable<ClassificationResponse>;
222
+ /**
223
+ * Fetches the member types master data from configuration and returns.
224
+ * @return {Observable<MemberTypeResponse>}
225
+ * @memberof GroupsService
226
+ */
227
+ getMemberTypes(): Observable<MemberTypeResponse>;
192
228
  /**
193
229
  * Concatenates the group users assigned roles name separated by comma as string and returns the group users in an array.
194
230
  * @param {GetGroupUsersResponse} response
@@ -219,11 +255,13 @@ export declare class GroupsService {
219
255
  getGroupUserDetails(payload: GetUserDetailsPayload): Observable<AddOrEditGroupUserDetailsResponse>;
220
256
  /**
221
257
  * Posts add new user form data to the API for the selected group and returns the success or failure response.
222
- * @param {AddOrEditUserPayload} AddOrEditUserPayload
258
+ * @param {(AddOrEditUserPayload
259
+ * | AddOrEditUserIndividualRosterPayload)} AddOrEditUserPayload
260
+ * @param {GroupRosterType} groupRosterType
223
261
  * @return {Observable<AddOrEditGroupUserDetailsResponse>}
224
262
  * @memberof GroupsService
225
263
  */
226
- addNewGroupUser(AddOrEditUserPayload: AddOrEditUserPayload): Observable<AddOrEditGroupUserDetailsResponse>;
264
+ addNewGroupUser(AddOrEditUserPayload: AddOrEditUserPayload | AddOrEditUserIndividualRosterPayload, groupRosterType: GroupRosterType): Observable<AddOrEditGroupUserDetailsResponse>;
227
265
  /**
228
266
  * Sets the loaded group type user roles
229
267
  * @param {CheckboxOption[]} userRoles
@@ -249,12 +287,12 @@ export declare class GroupsService {
249
287
  */
250
288
  getSelectedUserInfo(): GroupUserInfo;
251
289
  /**
252
- * Updates group user roles to server using HttpService.
253
- * @param {AddOrEditUserPayload} payload
290
+ * Updates group user roles and other details to server using HttpService.
291
+ * @param {(AddOrEditUserPayload | AddOrEditUserIndividualRosterPayload)} payload
254
292
  * @return {Observable<AddOrEditGroupUserDetailsResponse>}
255
293
  * @memberof GroupsService
256
294
  */
257
- editGroupsUserRole(payload: AddOrEditUserPayload): Observable<AddOrEditGroupUserDetailsResponse>;
295
+ editGroupsUserRole(payload: AddOrEditUserPayload | AddOrEditUserIndividualRosterPayload): Observable<AddOrEditGroupUserDetailsResponse>;
258
296
  /**
259
297
  * Sets roster function type.
260
298
  * @param {RosterFunctionType} rosterFunctionType
@@ -274,6 +312,59 @@ export declare class GroupsService {
274
312
  * @memberof GroupsService
275
313
  */
276
314
  groupsByNameAcronym(searchTerm: string): Observable<GetGroupResponse>;
315
+ /**
316
+ * Sets the user group permissions
317
+ * @param {GroupPermission[]} userGroupPermissions
318
+ * @memberof GroupsService
319
+ */
320
+ setUserGroupPermissions(userGroupPermissions: GroupPermission[]): void;
321
+ /**
322
+ * Returns the user group permissions
323
+ * @return {GroupPermission[]}
324
+ * @memberof GroupsService
325
+ */
326
+ getUserGroupPermissions(): GroupPermission[];
327
+ /**
328
+ * Validates permission based access for provided feature.
329
+ * @param {PermissionType} permissionType
330
+ * @return {boolean}
331
+ * @memberof GroupsService
332
+ */
333
+ validateAccess(permissionType: PermissionType): boolean;
334
+ /**
335
+ * Store the loaded group types.
336
+ * @param {GroupTypeConfiguration[]} groupTypes
337
+ * @memberof GroupsService
338
+ */
339
+ setLoadedGroupTypes(groupTypes: GroupTypeConfiguration[]): void;
340
+ /**
341
+ * Return the loaded group types.
342
+ * @return {GroupTypeConfiguration[]}
343
+ * @memberof GroupsService
344
+ */
345
+ getLoadedGroupTypes(): GroupTypeConfiguration[];
346
+ /**
347
+ *
348
+ * @param {string} orgName
349
+ * @return {Observable<OrganizationResponse>}
350
+ * @memberof GroupsService
351
+ */
352
+ getOrganizations(orgName: string): Observable<OrganizationResponse>;
353
+ /**
354
+ * Returns the group type configuration Business rule for the selected group.
355
+ * @return {(BusinessRule | undefined)}
356
+ * @memberof GroupsService
357
+ */
358
+ getBusinessRuleOfSelectedGroup(): BusinessRule | undefined;
359
+ /**
360
+ * Enables or disables the form submit button based on passed parameters.
361
+ * @param {GroupRosterType} groupRosterType
362
+ * @param {FormControlStatus} formStatus
363
+ * @param {string[]} selectedUserRoles
364
+ * @return {boolean}
365
+ * @memberof GroupsService
366
+ */
367
+ isSubmitButtonDisabled(groupRosterType: GroupRosterType, formStatus: FormControlStatus, selectedUserRoles: string[]): boolean;
277
368
  static ɵfac: i0.ɵɵFactoryDeclaration<GroupsService, never>;
278
369
  static ɵprov: i0.ɵɵInjectableDeclaration<GroupsService>;
279
370
  }
@@ -0,0 +1,25 @@
1
+ import { PermissionType } from '../models/permission-type.model';
2
+ import { GroupPermissionsMapService } from './group-permissions-map-service';
3
+ import { GroupPermission, UserPermission } from '../models/group-permissions.model';
4
+ import * as i0 from "@angular/core";
5
+ export declare class UserPermissionsService {
6
+ private groupPermissionsService;
7
+ constructor(groupPermissionsService: GroupPermissionsMapService);
8
+ /**
9
+ * Returns access provision for the passed action/feature based on whether the signed in user has appropriate permission.
10
+ * @param {PermissionType} permission
11
+ * @param {GroupPermission[]} userGroupPermissions
12
+ * @return {boolean}
13
+ * @memberof UserPermissionsService
14
+ */
15
+ validateAccessPermission(permission: PermissionType, userGroupPermissions: GroupPermission[]): boolean;
16
+ /**
17
+ * Filters signed in user group permissions from entire group permissions.
18
+ * @param {UserPermissions[]} userPermissions
19
+ * @return {GroupPermissions[]}
20
+ * @memberof UserPermissionsService
21
+ */
22
+ filterUserGroupPermissions(userPermissions: UserPermission[]): GroupPermission[];
23
+ static ɵfac: i0.ɵɵFactoryDeclaration<UserPermissionsService, never>;
24
+ static ɵprov: i0.ɵɵInjectableDeclaration<UserPermissionsService>;
25
+ }
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@ieeesa-npm/groups",
3
- "version": "0.7.1",
3
+ "version": "0.7.3",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^16.1.0",
6
6
  "@angular/core": "^16.1.0",
7
- "@ieeesa-npm/presentation": "^0.8.6",
8
- "@ieeesa-npm/shared-styles": "^0.2.0",
9
- "@ieeesa-npm/utility": "^0.7.8"
7
+ "@ieeesa-npm/presentation": "^0.8.8",
8
+ "@ieeesa-npm/shared-styles": "^0.2.1",
9
+ "@ieeesa-npm/utility": "^0.8.0"
10
10
  },
11
11
  "dependencies": {
12
12
  "tslib": "^2.3.0"
package/public-api.d.ts CHANGED
@@ -14,6 +14,12 @@ export * from './lib/models/delete-group.model';
14
14
  export * from './lib/models/group-user-info.model';
15
15
  export * from './lib/models/add-or-edit-user-group.model';
16
16
  export * from './lib/models/roster-function-type.model';
17
+ export * from './lib/models/classification.model';
18
+ export * from './lib/models/filter-type.model';
19
+ export * from './lib/models/organization.model';
20
+ export * from './lib/models/member-type.model';
21
+ export * from './lib/models/roster-type.model';
22
+ export * from './lib/models/table-column-schema-user-group.model';
17
23
  export * from './lib/services/groups.service';
18
24
  export * from './lib/assets/form-validations';
19
25
  export * from './lib/groups.module';