@ieeesa-npm/groups 0.15.15 → 0.15.17
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/esm2022/lib/assets/constants.json +5 -5
- package/esm2022/lib/components/custom-question-editor/custom-question-editor.component.mjs +11 -4
- package/esm2022/lib/components/interest-form/interest-form.component.mjs +29 -8
- package/esm2022/lib/components/roster-import/roster-import.component.mjs +27 -10
- package/esm2022/lib/services/interest-form.service.mjs +30 -12
- package/fesm2022/ieeesa-npm-groups.mjs +98 -35
- package/fesm2022/ieeesa-npm-groups.mjs.map +1 -1
- package/lib/components/custom-question-editor/custom-question-editor.component.d.ts +1 -1
- package/lib/components/interest-form/interest-form.component.d.ts +8 -2
- package/lib/components/roster-import/roster-import.component.d.ts +7 -1
- package/lib/services/groups.service.d.ts +6 -0
- package/lib/services/interest-form.service.d.ts +15 -5
- package/package.json +1 -1
|
@@ -38,7 +38,7 @@ export declare class CustomQuestionEditorComponent implements OnInit {
|
|
|
38
38
|
* @return {string}
|
|
39
39
|
* @memberof CustomQuestionEditorComponent
|
|
40
40
|
*/
|
|
41
|
-
parseOptionsString(optionsJson: string | undefined): string;
|
|
41
|
+
parseOptionsString(optionsJson: string[] | string | undefined): string;
|
|
42
42
|
/**
|
|
43
43
|
* Whether the currently selected type requires an options list.
|
|
44
44
|
* @return {boolean}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { OnInit } from '@angular/core';
|
|
1
|
+
import { OnDestroy, OnInit } from '@angular/core';
|
|
2
2
|
import { MatDialog, MatDialogRef } from '@angular/material/dialog';
|
|
3
3
|
import { CdkDragDrop } from '@angular/cdk/drag-drop';
|
|
4
4
|
import { RadioOption, SlideToggleOption } from '@ieeesa-npm/presentation';
|
|
@@ -28,7 +28,7 @@ export interface StandardQuestionRow {
|
|
|
28
28
|
* @export
|
|
29
29
|
* @class InterestFormComponent
|
|
30
30
|
*/
|
|
31
|
-
export declare class InterestFormComponent implements OnInit {
|
|
31
|
+
export declare class InterestFormComponent implements OnInit, OnDestroy {
|
|
32
32
|
private dialogRef;
|
|
33
33
|
group: GroupInfo;
|
|
34
34
|
private interestFormService;
|
|
@@ -199,6 +199,12 @@ export declare class InterestFormComponent implements OnInit {
|
|
|
199
199
|
* @memberof InterestFormComponent
|
|
200
200
|
*/
|
|
201
201
|
trackByQuestionId(index: number, question: CustomQuestion): string;
|
|
202
|
+
/**
|
|
203
|
+
* Emits and completes the destroy subject so any in-flight requests are
|
|
204
|
+
* unsubscribed when the component is destroyed.
|
|
205
|
+
* @memberof InterestFormComponent
|
|
206
|
+
*/
|
|
207
|
+
ngOnDestroy(): void;
|
|
202
208
|
static ɵfac: i0.ɵɵFactoryDeclaration<InterestFormComponent, [{ optional: true; }, { optional: true; }, null, null, null, null]>;
|
|
203
209
|
static ɵcmp: i0.ɵɵComponentDeclaration<InterestFormComponent, "ieeesa-interest-form", never, {}, {}, never, never, true, never>;
|
|
204
210
|
}
|
|
@@ -60,8 +60,14 @@ export declare class RosterImportComponent implements OnInit, OnDestroy {
|
|
|
60
60
|
uploadResult: RosterImportResult | null;
|
|
61
61
|
/** Row-level errors for the completed job. */
|
|
62
62
|
jobErrors: RosterImportRowError[];
|
|
63
|
-
/** Inline validation / API error message. */
|
|
63
|
+
/** Inline validation / API error message (single-line case). */
|
|
64
64
|
errorMessage: string | null;
|
|
65
|
+
/**
|
|
66
|
+
* All API error messages when the BE returns multiple error codes at once
|
|
67
|
+
* (e.g. several fields failed). Rendered as a list in the error banner. Empty
|
|
68
|
+
* for single-message validation errors (which use {@link errorMessage}).
|
|
69
|
+
*/
|
|
70
|
+
errorMessages: string[];
|
|
65
71
|
/**
|
|
66
72
|
* Info banner shown when the file has headers but no data rows
|
|
67
73
|
* (Figma: "No roster data found...").
|
|
@@ -95,6 +95,12 @@ export declare class GroupsService {
|
|
|
95
95
|
"2017": string;
|
|
96
96
|
"2018": string;
|
|
97
97
|
"2019": string;
|
|
98
|
+
/**
|
|
99
|
+
* Returns group user details if email is found, else throws error.
|
|
100
|
+
* @param {string} email
|
|
101
|
+
* @return {Observable<SearchUserByEmailResponse>}
|
|
102
|
+
* @memberof GroupsService
|
|
103
|
+
*/
|
|
98
104
|
"2020": string;
|
|
99
105
|
"2021": string;
|
|
100
106
|
"2022": string;
|
|
@@ -29,6 +29,15 @@ export declare class InterestFormService {
|
|
|
29
29
|
private httpService;
|
|
30
30
|
apiBaseUrl: string;
|
|
31
31
|
constructor(httpService: HttpService);
|
|
32
|
+
/**
|
|
33
|
+
* Validates the application-level envelope for a write operation. A 2xx
|
|
34
|
+
* response can still carry an unsuccessful envelope ({ status: false }); this
|
|
35
|
+
* throws it so callers' error handlers run instead of treating it as success.
|
|
36
|
+
* @param {InterestApiResponse<T>} response
|
|
37
|
+
* @return {InterestApiResponse<T>}
|
|
38
|
+
* @memberof InterestFormService
|
|
39
|
+
*/
|
|
40
|
+
private assertSuccess;
|
|
32
41
|
/**
|
|
33
42
|
* Sets the API base URL (resolved from the hosting application's config).
|
|
34
43
|
* @param {string} apiBaseUrl
|
|
@@ -43,14 +52,15 @@ export declare class InterestFormService {
|
|
|
43
52
|
*/
|
|
44
53
|
getInterestConfig(groupId: string): Observable<InterestApiResponse<GroupInterestConfig>>;
|
|
45
54
|
/**
|
|
46
|
-
* Loads the
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
55
|
+
* Loads the roles configured for a group type via
|
|
56
|
+
* GET /groups/config/rolesByGroupType/{groupTypeId}. Member levels (used to
|
|
57
|
+
* populate the default membership level options) are the subset where
|
|
58
|
+
* roleTypeName is "Member Level"; filtering is done by the caller.
|
|
59
|
+
* @param {string} groupTypeId
|
|
50
60
|
* @return {Observable<InterestApiResponse<GroupRole[]>>}
|
|
51
61
|
* @memberof InterestFormService
|
|
52
62
|
*/
|
|
53
|
-
getRoles(
|
|
63
|
+
getRoles(groupTypeId: string): Observable<InterestApiResponse<GroupRole[]>>;
|
|
54
64
|
/**
|
|
55
65
|
* Saves a group's interest configuration.
|
|
56
66
|
* @param {GroupInterestConfig} config
|