@reqquest/ui 1.15.1 → 1.17.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/dist/registry.d.ts +6 -0
- package/dist/registry.js +1 -1
- package/dist/typed-client/schema.d.ts +81 -5
- package/dist/typed-client/schema.graphql +92 -10
- package/dist/typed-client/schema.js +6 -0
- package/dist/typed-client/types.d.ts +28 -1
- package/dist/typed-client/types.js +711 -639
- package/dist/types.d.ts +1 -0
- package/package.json +1 -1
package/dist/registry.d.ts
CHANGED
|
@@ -314,6 +314,12 @@ export interface UIConfig<PK extends string = PromptKey, RK extends string = Req
|
|
|
314
314
|
title?: string;
|
|
315
315
|
subTitle?: string;
|
|
316
316
|
};
|
|
317
|
+
/**
|
|
318
|
+
* Shown to the applicant on the program review and submission review screens when there is no program
|
|
319
|
+
* left to list: none they are eligible for, and every ineligible one belongs to a program that sets
|
|
320
|
+
* `showIneligiblePreSubmit: false`. Defaults to a generic "you don't currently qualify" message.
|
|
321
|
+
*/
|
|
322
|
+
applicantNoProgramsMessage?: string;
|
|
317
323
|
/**
|
|
318
324
|
* Whether to constrain the applicant review/submission page to a medium
|
|
319
325
|
* screen-width container. Defaults to true.
|
package/dist/registry.js
CHANGED
|
@@ -55,7 +55,7 @@ export class UIRegistry {
|
|
|
55
55
|
this.validateReviewSections(program);
|
|
56
56
|
this.userLookup = config.userLookup;
|
|
57
57
|
this.lang = {
|
|
58
|
-
appRequest: config.terminology?.appRequest ??
|
|
58
|
+
appRequest: config.terminology?.appRequest ?? 'Application',
|
|
59
59
|
login: config.terminology?.login ?? 'Login',
|
|
60
60
|
period: config.terminology?.period ?? 'Period'
|
|
61
61
|
};
|
|
@@ -55,6 +55,8 @@ export interface AccessControlGroup {
|
|
|
55
55
|
export interface AccessGrantTag {
|
|
56
56
|
category: Scalars['String'];
|
|
57
57
|
categoryLabel: Scalars['String'];
|
|
58
|
+
/** Extra context for the tag, such as the other titles a program has gone by in different periods. */
|
|
59
|
+
description: (Scalars['String'] | null);
|
|
58
60
|
label: Scalars['String'];
|
|
59
61
|
tag: Scalars['String'];
|
|
60
62
|
__typename: 'AccessGrantTag';
|
|
@@ -123,6 +125,8 @@ export interface AccessRoleValidatedResponse {
|
|
|
123
125
|
__typename: 'AccessRoleValidatedResponse';
|
|
124
126
|
}
|
|
125
127
|
export interface AccessTag {
|
|
128
|
+
/** Extra context for the tag, such as the other titles a program has gone by in different periods. */
|
|
129
|
+
description: (Scalars['String'] | null);
|
|
126
130
|
label: Scalars['String'];
|
|
127
131
|
value: Scalars['String'];
|
|
128
132
|
__typename: 'AccessTag';
|
|
@@ -186,6 +190,7 @@ export interface AppRequest {
|
|
|
186
190
|
/** Actions the user can take on this app request. */
|
|
187
191
|
actions: AppRequestActions;
|
|
188
192
|
applicant: AccessUser;
|
|
193
|
+
/** The applications on this request, one per program. Pass programKeys to receive only some of them - a screen that shows one program should not download every program's requirement and prompt tree. */
|
|
189
194
|
applications: Application[];
|
|
190
195
|
/** True when at least one reachable prompt anywhere on this request has been invalidated and must be re-answered. Status and phase are computed from the answers on file, so use this flag to explain that the request is held back awaiting a correction. */
|
|
191
196
|
awaitingCorrection: Scalars['Boolean'];
|
|
@@ -269,6 +274,14 @@ export interface AppRequestActivity {
|
|
|
269
274
|
user: AccessUser;
|
|
270
275
|
__typename: 'AppRequestActivity';
|
|
271
276
|
}
|
|
277
|
+
/** Applicant counts for a set of appRequests. A request is a returning application when its applicant also submitted a request in an earlier period (by open date); otherwise it is a first-time application. Unsubmitted drafts in earlier periods do not count. */
|
|
278
|
+
export interface AppRequestApplicantCounts {
|
|
279
|
+
/** Matching appRequests whose applicant submitted nothing in any earlier period. */
|
|
280
|
+
firstTime: Scalars['Int'];
|
|
281
|
+
/** Matching appRequests whose applicant also submitted a request in an earlier period. */
|
|
282
|
+
returning: Scalars['Int'];
|
|
283
|
+
__typename: 'AppRequestApplicantCounts';
|
|
284
|
+
}
|
|
272
285
|
/** This represents an index category attached to an app request. Its tagStrings property contains the tag values that have been extracted from the app request data. */
|
|
273
286
|
export interface AppRequestIndexCategory {
|
|
274
287
|
/** If this is > 0, the index values should be shown on the main app request list page, sorted by this priority in descending order. */
|
|
@@ -308,6 +321,8 @@ export interface Application {
|
|
|
308
321
|
awaitingCorrection: Scalars['Boolean'];
|
|
309
322
|
/** A prose summary of the applicant-side requirements of the program this application is for. Intended to be shown alongside statusReason when the application becomes ineligible before submission, since an applicant disqualified early may never have seen the program's prompts and the statusReason alone lacks context. */
|
|
310
323
|
eligibilityDescription: (Scalars['String'] | null);
|
|
324
|
+
/** True when the program sets showIneligiblePreSubmit: false and this application is hidden by it: ineligible because of an applicant requirement, and that ineligibility arose before submission (the request is unsubmitted, or the application was already ineligible when it was submitted). Only the applicant ever receives a hidden application, so they can still change the answers that disqualified them; UIs should leave it out of program lists. */
|
|
325
|
+
hiddenIneligiblePreSubmit: Scalars['Boolean'];
|
|
311
326
|
id: Scalars['ID'];
|
|
312
327
|
/** The phase in which this application became ineligible for benefits. Useful for reporting / filtering. Null if the application is not (yet) ineligible. */
|
|
313
328
|
ineligiblePhase: (IneligiblePhases | null);
|
|
@@ -462,7 +477,7 @@ export interface Configuration {
|
|
|
462
477
|
actions: ConfigurationAccess;
|
|
463
478
|
data: Scalars['JsonData'];
|
|
464
479
|
fetchedData: (Scalars['JsonData'] | null);
|
|
465
|
-
/** The key being configured. Could be a requirement or
|
|
480
|
+
/** The key being configured. Could be a requirement, prompt, or program key. A program's configuration holds its per-period title and navTitle overrides. */
|
|
466
481
|
key: Scalars['String'];
|
|
467
482
|
__typename: 'Configuration';
|
|
468
483
|
}
|
|
@@ -544,7 +559,7 @@ export interface Mutation {
|
|
|
544
559
|
roleDeleteGrant: AccessRoleValidatedResponse;
|
|
545
560
|
roleUpdate: AccessRoleValidatedResponse;
|
|
546
561
|
roleUpdateGrant: AccessRoleValidatedResponse;
|
|
547
|
-
/** Submit the app request. */
|
|
562
|
+
/** Submit the app request. Applications whose program has no reviewer questions (no PREAPPROVAL or APPROVAL requirements) advance on their own into their first blocking workflow stage or to REVIEW_COMPLETE; when nothing is left to review, the review is completed automatically as well. Applications ruled out before submission (PREQUAL or QUALIFICATION) do not hold that back. */
|
|
548
563
|
submitAppRequest: ValidatedAppRequestResponse;
|
|
549
564
|
/** Toggle an existing note's persistent status. */
|
|
550
565
|
togglePersistence: ValidatedNoteResponse;
|
|
@@ -642,6 +657,8 @@ export interface PeriodProgram {
|
|
|
642
657
|
actions: PeriodProgramActions;
|
|
643
658
|
/** A brief description of the program, written for applicants. */
|
|
644
659
|
applicantDescription: (Scalars['String'] | null);
|
|
660
|
+
/** The configuration for this program in the period, which holds its title and navTitle overrides. */
|
|
661
|
+
configuration: Configuration;
|
|
645
662
|
/** A prose summary of the applicant-side requirements of the program. Intended to be shown to applicants who become ineligible before submission, since they may never have seen the program's prompts. */
|
|
646
663
|
eligibilityDescription: (Scalars['String'] | null);
|
|
647
664
|
/** Whether the program is enabled in this period. This is set by the system administrator. */
|
|
@@ -723,11 +740,17 @@ export interface Query {
|
|
|
723
740
|
announcements: Announcement[];
|
|
724
741
|
/** The activity log for this app request. This is a list of actions taken on the app request, such as submission, updating prompts, make an offer, add a note, etc. It will be sorted by the date of the activity in descending order. */
|
|
725
742
|
appRequestActivity: AppRequestActivity[];
|
|
743
|
+
/** The distinct action verbs that appear in the activity log for the associated app request, sorted alphabetically. */
|
|
744
|
+
appRequestActivityActions: Scalars['String'][];
|
|
745
|
+
/** Everyone who appears in the activity log for the associated app request, as the user that performed an activity or as the admin impersonating them. */
|
|
746
|
+
appRequestActivityUsers: AccessUser[];
|
|
726
747
|
appRequestIndexes: IndexCategory[];
|
|
727
748
|
appRequests: AppRequest[];
|
|
728
749
|
applicationMetrics: ApplicationMetric;
|
|
729
750
|
/** This is where you get information about the authorization system. Each grant will be associated with one of these controlGroups, one or more controls in the group, and an optional set of tags. The tags are used to limit the scope of the grant. */
|
|
730
751
|
controlGroups: AccessControlGroup[];
|
|
752
|
+
/** First-time vs returning applicant counts for the matching appRequests (see AppRequestApplicantCounts). */
|
|
753
|
+
countAppRequestApplicants: AppRequestApplicantCounts;
|
|
731
754
|
countAppRequests: Scalars['Int'];
|
|
732
755
|
pageInfo: PaginationResponse;
|
|
733
756
|
periods: Period[];
|
|
@@ -887,6 +910,8 @@ export interface AccessControlGroupGenqlSelection {
|
|
|
887
910
|
export interface AccessGrantTagGenqlSelection {
|
|
888
911
|
category?: boolean | number;
|
|
889
912
|
categoryLabel?: boolean | number;
|
|
913
|
+
/** Extra context for the tag, such as the other titles a program has gone by in different periods. */
|
|
914
|
+
description?: boolean | number;
|
|
890
915
|
label?: boolean | number;
|
|
891
916
|
tag?: boolean | number;
|
|
892
917
|
__typename?: boolean | number;
|
|
@@ -993,6 +1018,8 @@ export interface AccessRoleValidatedResponseGenqlSelection {
|
|
|
993
1018
|
__scalar?: boolean | number;
|
|
994
1019
|
}
|
|
995
1020
|
export interface AccessTagGenqlSelection {
|
|
1021
|
+
/** Extra context for the tag, such as the other titles a program has gone by in different periods. */
|
|
1022
|
+
description?: boolean | number;
|
|
996
1023
|
label?: boolean | number;
|
|
997
1024
|
value?: boolean | number;
|
|
998
1025
|
__typename?: boolean | number;
|
|
@@ -1116,7 +1143,12 @@ export interface AppRequestGenqlSelection {
|
|
|
1116
1143
|
/** Actions the user can take on this app request. */
|
|
1117
1144
|
actions?: AppRequestActionsGenqlSelection;
|
|
1118
1145
|
applicant?: AccessUserGenqlSelection;
|
|
1119
|
-
applications
|
|
1146
|
+
/** The applications on this request, one per program. Pass programKeys to receive only some of them - a screen that shows one program should not download every program's requirement and prompt tree. */
|
|
1147
|
+
applications?: (ApplicationGenqlSelection & {
|
|
1148
|
+
__args?: {
|
|
1149
|
+
programKeys?: (Scalars['String'][] | null);
|
|
1150
|
+
};
|
|
1151
|
+
});
|
|
1120
1152
|
/** True when at least one reachable prompt anywhere on this request has been invalidated and must be re-answered. Status and phase are computed from the answers on file, so use this flag to explain that the request is held back awaiting a correction. */
|
|
1121
1153
|
awaitingCorrection?: boolean | number;
|
|
1122
1154
|
/** Date that this request was considered closed and no longer editable. If active or re-opened, will be null. If closed again, will be the second closure date. */
|
|
@@ -1244,7 +1276,18 @@ export interface AppRequestActivityFilters {
|
|
|
1244
1276
|
/** Return activities that were performed by one of the given logins. Also returns activities that were performed while one of the given logins was impersonating someone else. */
|
|
1245
1277
|
users?: (Scalars['ID'][] | null);
|
|
1246
1278
|
}
|
|
1279
|
+
/** Applicant counts for a set of appRequests. A request is a returning application when its applicant also submitted a request in an earlier period (by open date); otherwise it is a first-time application. Unsubmitted drafts in earlier periods do not count. */
|
|
1280
|
+
export interface AppRequestApplicantCountsGenqlSelection {
|
|
1281
|
+
/** Matching appRequests whose applicant submitted nothing in any earlier period. */
|
|
1282
|
+
firstTime?: boolean | number;
|
|
1283
|
+
/** Matching appRequests whose applicant also submitted a request in an earlier period. */
|
|
1284
|
+
returning?: boolean | number;
|
|
1285
|
+
__typename?: boolean | number;
|
|
1286
|
+
__scalar?: boolean | number;
|
|
1287
|
+
}
|
|
1247
1288
|
export interface AppRequestFilter {
|
|
1289
|
+
/** Only return appRequests with at least one application matching one of the given entries (OR). When programKeys is also given, the same application must match both. */
|
|
1290
|
+
applicationStatuses?: (ApplicationStatusFilter[] | null);
|
|
1248
1291
|
/** true -> only return appRequests that are closed. false -> only return appRequests that are open. null -> return all appRequests. */
|
|
1249
1292
|
closed?: (Scalars['Boolean'] | null);
|
|
1250
1293
|
/** Only return appRequests that were closed after this date. Open appRequests will be filtered out. */
|
|
@@ -1265,6 +1308,8 @@ export interface AppRequestFilter {
|
|
|
1265
1308
|
/** Only return appRequests that are owned by the current user. */
|
|
1266
1309
|
own?: (Scalars['Boolean'] | null);
|
|
1267
1310
|
periodIds?: (Scalars['ID'][] | null);
|
|
1311
|
+
/** Only return appRequests that have an application for one of the given programs. When applicationStatuses is also given, the same application must match both. */
|
|
1312
|
+
programKeys?: (Scalars['ID'][] | null);
|
|
1268
1313
|
/** Only return appRequests where at least one application is in one of the given rescinded states. Rescinding is per-application, so this is independent of the appRequest status. */
|
|
1269
1314
|
rescindedStatus?: (ApplicationRescindedStatus[] | null);
|
|
1270
1315
|
/** Only return appRequests that have had their review started. true -> return review started, false -> return not started. Note that this is NOT mutually exclusive with complete or closed, it very simply means that a non-applicant has taken an action on it. */
|
|
@@ -1322,6 +1367,8 @@ export interface ApplicationGenqlSelection {
|
|
|
1322
1367
|
awaitingCorrection?: boolean | number;
|
|
1323
1368
|
/** A prose summary of the applicant-side requirements of the program this application is for. Intended to be shown alongside statusReason when the application becomes ineligible before submission, since an applicant disqualified early may never have seen the program's prompts and the statusReason alone lacks context. */
|
|
1324
1369
|
eligibilityDescription?: boolean | number;
|
|
1370
|
+
/** True when the program sets showIneligiblePreSubmit: false and this application is hidden by it: ineligible because of an applicant requirement, and that ineligibility arose before submission (the request is unsubmitted, or the application was already ineligible when it was submitted). Only the applicant ever receives a hidden application, so they can still change the answers that disqualified them; UIs should leave it out of program lists. */
|
|
1371
|
+
hiddenIneligiblePreSubmit?: boolean | number;
|
|
1325
1372
|
id?: boolean | number;
|
|
1326
1373
|
/** The phase in which this application became ineligible for benefits. Useful for reporting / filtering. Null if the application is not (yet) ineligible. */
|
|
1327
1374
|
ineligiblePhase?: boolean | number;
|
|
@@ -1440,6 +1487,12 @@ export interface ApplicationRequirementGenqlSelection {
|
|
|
1440
1487
|
__typename?: boolean | number;
|
|
1441
1488
|
__scalar?: boolean | number;
|
|
1442
1489
|
}
|
|
1490
|
+
/** Matches an application by its stored status and, optionally, its rescind state. Status is the stored computedStatus, so RESCINDED is not a valid value here - express it as status ELIGIBLE or ACCEPTED with rescindedStatus RESCINDED. */
|
|
1491
|
+
export interface ApplicationStatusFilter {
|
|
1492
|
+
/** When omitted, matches applications currently in the given status (not rescinded). When given, matches only applications in exactly that rescind state. */
|
|
1493
|
+
rescindedStatus?: (ApplicationRescindedStatus | null);
|
|
1494
|
+
status: ApplicationStatus;
|
|
1495
|
+
}
|
|
1443
1496
|
export interface CategoryGenqlSelection {
|
|
1444
1497
|
/** This is indexed name of the category. Categories are indexed to allow for quick filtering of a list of items. e.g. institutionalRoles */
|
|
1445
1498
|
category?: boolean | number;
|
|
@@ -1466,7 +1519,7 @@ export interface ConfigurationGenqlSelection {
|
|
|
1466
1519
|
actions?: ConfigurationAccessGenqlSelection;
|
|
1467
1520
|
data?: boolean | number;
|
|
1468
1521
|
fetchedData?: boolean | number;
|
|
1469
|
-
/** The key being configured. Could be a requirement or
|
|
1522
|
+
/** The key being configured. Could be a requirement, prompt, or program key. A program's configuration holds its per-period title and navTitle overrides. */
|
|
1470
1523
|
key?: boolean | number;
|
|
1471
1524
|
__typename?: boolean | number;
|
|
1472
1525
|
__scalar?: boolean | number;
|
|
@@ -1739,7 +1792,7 @@ export interface MutationGenqlSelection {
|
|
|
1739
1792
|
validateOnly?: (Scalars['Boolean'] | null);
|
|
1740
1793
|
};
|
|
1741
1794
|
});
|
|
1742
|
-
/** Submit the app request. */
|
|
1795
|
+
/** Submit the app request. Applications whose program has no reviewer questions (no PREAPPROVAL or APPROVAL requirements) advance on their own into their first blocking workflow stage or to REVIEW_COMPLETE; when nothing is left to review, the review is completed automatically as well. Applications ruled out before submission (PREQUAL or QUALIFICATION) do not hold that back. */
|
|
1743
1796
|
submitAppRequest?: (ValidatedAppRequestResponseGenqlSelection & {
|
|
1744
1797
|
__args: {
|
|
1745
1798
|
appRequestId: Scalars['ID'];
|
|
@@ -1922,6 +1975,8 @@ export interface PeriodProgramGenqlSelection {
|
|
|
1922
1975
|
actions?: PeriodProgramActionsGenqlSelection;
|
|
1923
1976
|
/** A brief description of the program, written for applicants. */
|
|
1924
1977
|
applicantDescription?: boolean | number;
|
|
1978
|
+
/** The configuration for this program in the period, which holds its title and navTitle overrides. */
|
|
1979
|
+
configuration?: ConfigurationGenqlSelection;
|
|
1925
1980
|
/** A prose summary of the applicant-side requirements of the program. Intended to be shown to applicants who become ineligible before submission, since they may never have seen the program's prompts. */
|
|
1926
1981
|
eligibilityDescription?: boolean | number;
|
|
1927
1982
|
/** Whether the program is enabled in this period. This is set by the system administrator. */
|
|
@@ -2033,6 +2088,18 @@ export interface QueryGenqlSelection {
|
|
|
2033
2088
|
paged?: (Pagination | null);
|
|
2034
2089
|
};
|
|
2035
2090
|
});
|
|
2091
|
+
/** The distinct action verbs that appear in the activity log for the associated app request, sorted alphabetically. */
|
|
2092
|
+
appRequestActivityActions?: {
|
|
2093
|
+
__args: {
|
|
2094
|
+
id: Scalars['String'];
|
|
2095
|
+
};
|
|
2096
|
+
};
|
|
2097
|
+
/** Everyone who appears in the activity log for the associated app request, as the user that performed an activity or as the admin impersonating them. */
|
|
2098
|
+
appRequestActivityUsers?: (AccessUserGenqlSelection & {
|
|
2099
|
+
__args: {
|
|
2100
|
+
id: Scalars['String'];
|
|
2101
|
+
};
|
|
2102
|
+
});
|
|
2036
2103
|
appRequestIndexes?: (IndexCategoryGenqlSelection & {
|
|
2037
2104
|
__args?: {
|
|
2038
2105
|
categories?: (Scalars['String'][] | null);
|
|
@@ -2053,6 +2120,12 @@ export interface QueryGenqlSelection {
|
|
|
2053
2120
|
});
|
|
2054
2121
|
/** This is where you get information about the authorization system. Each grant will be associated with one of these controlGroups, one or more controls in the group, and an optional set of tags. The tags are used to limit the scope of the grant. */
|
|
2055
2122
|
controlGroups?: AccessControlGroupGenqlSelection;
|
|
2123
|
+
/** First-time vs returning applicant counts for the matching appRequests (see AppRequestApplicantCounts). */
|
|
2124
|
+
countAppRequestApplicants?: (AppRequestApplicantCountsGenqlSelection & {
|
|
2125
|
+
__args?: {
|
|
2126
|
+
filter?: (AppRequestFilter | null);
|
|
2127
|
+
};
|
|
2128
|
+
});
|
|
2056
2129
|
countAppRequests?: {
|
|
2057
2130
|
__args: {
|
|
2058
2131
|
filter?: (AppRequestFilter | null);
|
|
@@ -2275,6 +2348,9 @@ export declare const isAppRequestActions: (obj?: {
|
|
|
2275
2348
|
export declare const isAppRequestActivity: (obj?: {
|
|
2276
2349
|
__typename?: any;
|
|
2277
2350
|
} | null) => obj is AppRequestActivity;
|
|
2351
|
+
export declare const isAppRequestApplicantCounts: (obj?: {
|
|
2352
|
+
__typename?: any;
|
|
2353
|
+
} | null) => obj is AppRequestApplicantCounts;
|
|
2278
2354
|
export declare const isAppRequestIndexCategory: (obj?: {
|
|
2279
2355
|
__typename?: any;
|
|
2280
2356
|
} | null) => obj is AppRequestIndexCategory;
|
|
@@ -78,6 +78,11 @@ type AccessControlGroup {
|
|
|
78
78
|
type AccessGrantTag {
|
|
79
79
|
category: String!
|
|
80
80
|
categoryLabel: String!
|
|
81
|
+
|
|
82
|
+
"""
|
|
83
|
+
Extra context for the tag, such as the other titles a program has gone by in different periods.
|
|
84
|
+
"""
|
|
85
|
+
description: String
|
|
81
86
|
label: String!
|
|
82
87
|
tag: String!
|
|
83
88
|
}
|
|
@@ -195,6 +200,10 @@ type AccessRoleValidatedResponse {
|
|
|
195
200
|
}
|
|
196
201
|
|
|
197
202
|
type AccessTag {
|
|
203
|
+
"""
|
|
204
|
+
Extra context for the tag, such as the other titles a program has gone by in different periods.
|
|
205
|
+
"""
|
|
206
|
+
description: String
|
|
198
207
|
label: String!
|
|
199
208
|
value: String!
|
|
200
209
|
}
|
|
@@ -379,7 +388,11 @@ type AppRequest {
|
|
|
379
388
|
"""Actions the user can take on this app request."""
|
|
380
389
|
actions: AppRequestActions!
|
|
381
390
|
applicant: AccessUser!
|
|
382
|
-
|
|
391
|
+
|
|
392
|
+
"""
|
|
393
|
+
The applications on this request, one per program. Pass programKeys to receive only some of them - a screen that shows one program should not download every program's requirement and prompt tree.
|
|
394
|
+
"""
|
|
395
|
+
applications(programKeys: [String!]): [Application!]!
|
|
383
396
|
|
|
384
397
|
"""
|
|
385
398
|
True when at least one reachable prompt anywhere on this request has been invalidated and must be re-answered. Status and phase are computed from the answers on file, so use this flag to explain that the request is held back awaiting a correction.
|
|
@@ -591,7 +604,27 @@ input AppRequestActivityFilters {
|
|
|
591
604
|
users: [ID!]
|
|
592
605
|
}
|
|
593
606
|
|
|
607
|
+
"""
|
|
608
|
+
Applicant counts for a set of appRequests. A request is a returning application when its applicant also submitted a request in an earlier period (by open date); otherwise it is a first-time application. Unsubmitted drafts in earlier periods do not count.
|
|
609
|
+
"""
|
|
610
|
+
type AppRequestApplicantCounts {
|
|
611
|
+
"""
|
|
612
|
+
Matching appRequests whose applicant submitted nothing in any earlier period.
|
|
613
|
+
"""
|
|
614
|
+
firstTime: Int!
|
|
615
|
+
|
|
616
|
+
"""
|
|
617
|
+
Matching appRequests whose applicant also submitted a request in an earlier period.
|
|
618
|
+
"""
|
|
619
|
+
returning: Int!
|
|
620
|
+
}
|
|
621
|
+
|
|
594
622
|
input AppRequestFilter {
|
|
623
|
+
"""
|
|
624
|
+
Only return appRequests with at least one application matching one of the given entries (OR). When programKeys is also given, the same application must match both.
|
|
625
|
+
"""
|
|
626
|
+
applicationStatuses: [ApplicationStatusFilter!]
|
|
627
|
+
|
|
595
628
|
"""
|
|
596
629
|
true -> only return appRequests that are closed. false -> only return appRequests that are open. null -> return all appRequests.
|
|
597
630
|
"""
|
|
@@ -629,6 +662,11 @@ input AppRequestFilter {
|
|
|
629
662
|
own: Boolean
|
|
630
663
|
periodIds: [ID!]
|
|
631
664
|
|
|
665
|
+
"""
|
|
666
|
+
Only return appRequests that have an application for one of the given programs. When applicationStatuses is also given, the same application must match both.
|
|
667
|
+
"""
|
|
668
|
+
programKeys: [ID!]
|
|
669
|
+
|
|
632
670
|
"""
|
|
633
671
|
Only return appRequests where at least one application is in one of the given rescinded states. Rescinding is per-application, so this is independent of the appRequest status.
|
|
634
672
|
"""
|
|
@@ -864,6 +902,11 @@ type Application {
|
|
|
864
902
|
A prose summary of the applicant-side requirements of the program this application is for. Intended to be shown alongside statusReason when the application becomes ineligible before submission, since an applicant disqualified early may never have seen the program's prompts and the statusReason alone lacks context.
|
|
865
903
|
"""
|
|
866
904
|
eligibilityDescription: String
|
|
905
|
+
|
|
906
|
+
"""
|
|
907
|
+
True when the program sets showIneligiblePreSubmit: false and this application is hidden by it: ineligible because of an applicant requirement, and that ineligibility arose before submission (the request is unsubmitted, or the application was already ineligible when it was submitted). Only the applicant ever receives a hidden application, so they can still change the answers that disqualified them; UIs should leave it out of program lists.
|
|
908
|
+
"""
|
|
909
|
+
hiddenIneligiblePreSubmit: Boolean!
|
|
867
910
|
id: ID!
|
|
868
911
|
|
|
869
912
|
"""
|
|
@@ -1128,7 +1171,7 @@ enum ApplicationStatus {
|
|
|
1128
1171
|
ACCEPTED
|
|
1129
1172
|
|
|
1130
1173
|
"""
|
|
1131
|
-
|
|
1174
|
+
Every requirement the current phase evaluates is resolving as MET (or NOT_APPLICABLE or WARNING). Before submission that is only the applicant requirements (PREQUAL, QUALIFICATION, POSTQUAL), so ELIGIBLE means nothing so far disqualifies - not that the program has been approved. After submission it covers all requirements up to and including WORKFLOW_BLOCKING. If there is an acceptance phase, the acceptance is still pending.
|
|
1132
1175
|
"""
|
|
1133
1176
|
ELIGIBLE
|
|
1134
1177
|
|
|
@@ -1153,6 +1196,17 @@ enum ApplicationStatus {
|
|
|
1153
1196
|
RESCINDED
|
|
1154
1197
|
}
|
|
1155
1198
|
|
|
1199
|
+
"""
|
|
1200
|
+
Matches an application by its stored status and, optionally, its rescind state. Status is the stored computedStatus, so RESCINDED is not a valid value here - express it as status ELIGIBLE or ACCEPTED with rescindedStatus RESCINDED.
|
|
1201
|
+
"""
|
|
1202
|
+
input ApplicationStatusFilter {
|
|
1203
|
+
"""
|
|
1204
|
+
When omitted, matches applications currently in the given status (not rescinded). When given, matches only applications in exactly that rescind state.
|
|
1205
|
+
"""
|
|
1206
|
+
rescindedStatus: ApplicationRescindedStatus
|
|
1207
|
+
status: ApplicationStatus!
|
|
1208
|
+
}
|
|
1209
|
+
|
|
1156
1210
|
type Category {
|
|
1157
1211
|
"""
|
|
1158
1212
|
This is indexed name of the category. Categories are indexed to allow for quick filtering of a list of items. e.g. institutionalRoles
|
|
@@ -1195,7 +1249,9 @@ type Configuration {
|
|
|
1195
1249
|
data: JsonData!
|
|
1196
1250
|
fetchedData: JsonData
|
|
1197
1251
|
|
|
1198
|
-
"""
|
|
1252
|
+
"""
|
|
1253
|
+
The key being configured. Could be a requirement, prompt, or program key. A program's configuration holds its per-period title and navTitle overrides.
|
|
1254
|
+
"""
|
|
1199
1255
|
key: String!
|
|
1200
1256
|
}
|
|
1201
1257
|
|
|
@@ -1274,22 +1330,26 @@ type IndexValue {
|
|
|
1274
1330
|
}
|
|
1275
1331
|
|
|
1276
1332
|
enum IneligiblePhases {
|
|
1277
|
-
"""The application
|
|
1333
|
+
"""The application was disqualified by an ACCEPTANCE requirement."""
|
|
1278
1334
|
ACCEPTANCE
|
|
1279
1335
|
|
|
1280
|
-
"""The application
|
|
1336
|
+
"""The application was disqualified by an APPROVAL requirement."""
|
|
1281
1337
|
APPROVAL
|
|
1282
1338
|
|
|
1283
|
-
"""The application
|
|
1339
|
+
"""The application was disqualified by a PREAPPROVAL requirement."""
|
|
1284
1340
|
PREAPPROVAL
|
|
1285
1341
|
|
|
1286
|
-
"""
|
|
1342
|
+
"""
|
|
1343
|
+
The application was disqualified by a PREQUAL requirement. Names the type of requirement that failed, not when it failed - a reviewer changing an applicant answer after submission can also produce this.
|
|
1344
|
+
"""
|
|
1287
1345
|
PREQUAL
|
|
1288
1346
|
|
|
1289
|
-
"""
|
|
1347
|
+
"""
|
|
1348
|
+
The application was disqualified by a QUALIFICATION or POSTQUAL requirement. Names the type of requirement that failed, not when it failed - a reviewer changing an applicant answer after submission can also produce this.
|
|
1349
|
+
"""
|
|
1290
1350
|
QUALIFICATION
|
|
1291
1351
|
|
|
1292
|
-
"""The application
|
|
1352
|
+
"""The application was disqualified by a blocking workflow requirement."""
|
|
1293
1353
|
WORKFLOW
|
|
1294
1354
|
}
|
|
1295
1355
|
|
|
@@ -1470,7 +1530,9 @@ type Mutation {
|
|
|
1470
1530
|
roleUpdate(role: AccessRoleInput!, roleId: ID!, validateOnly: Boolean): AccessRoleValidatedResponse!
|
|
1471
1531
|
roleUpdateGrant(grant: AccessRoleGrantUpdate!, grantId: ID!, validateOnly: Boolean): AccessRoleValidatedResponse!
|
|
1472
1532
|
|
|
1473
|
-
"""
|
|
1533
|
+
"""
|
|
1534
|
+
Submit the app request. Applications whose program has no reviewer questions (no PREAPPROVAL or APPROVAL requirements) advance on their own into their first blocking workflow stage or to REVIEW_COMPLETE; when nothing is left to review, the review is completed automatically as well. Applications ruled out before submission (PREQUAL or QUALIFICATION) do not hold that back.
|
|
1535
|
+
"""
|
|
1474
1536
|
submitAppRequest(appRequestId: ID!): ValidatedAppRequestResponse!
|
|
1475
1537
|
|
|
1476
1538
|
"""Toggle an existing note's persistent status."""
|
|
@@ -1684,6 +1746,11 @@ type PeriodProgram {
|
|
|
1684
1746
|
"""A brief description of the program, written for applicants."""
|
|
1685
1747
|
applicantDescription: String
|
|
1686
1748
|
|
|
1749
|
+
"""
|
|
1750
|
+
The configuration for this program in the period, which holds its title and navTitle overrides.
|
|
1751
|
+
"""
|
|
1752
|
+
configuration: Configuration!
|
|
1753
|
+
|
|
1687
1754
|
"""
|
|
1688
1755
|
A prose summary of the applicant-side requirements of the program. Intended to be shown to applicants who become ineligible before submission, since they may never have seen the program's prompts.
|
|
1689
1756
|
"""
|
|
@@ -1852,6 +1919,16 @@ type Query {
|
|
|
1852
1919
|
id: String!
|
|
1853
1920
|
paged: Pagination
|
|
1854
1921
|
): [AppRequestActivity!]!
|
|
1922
|
+
|
|
1923
|
+
"""
|
|
1924
|
+
The distinct action verbs that appear in the activity log for the associated app request, sorted alphabetically.
|
|
1925
|
+
"""
|
|
1926
|
+
appRequestActivityActions(id: String!): [String!]!
|
|
1927
|
+
|
|
1928
|
+
"""
|
|
1929
|
+
Everyone who appears in the activity log for the associated app request, as the user that performed an activity or as the admin impersonating them.
|
|
1930
|
+
"""
|
|
1931
|
+
appRequestActivityUsers(id: String!): [AccessUser!]!
|
|
1855
1932
|
appRequestIndexes(
|
|
1856
1933
|
categories: [String!]
|
|
1857
1934
|
|
|
@@ -1867,6 +1944,11 @@ type Query {
|
|
|
1867
1944
|
This is where you get information about the authorization system. Each grant will be associated with one of these controlGroups, one or more controls in the group, and an optional set of tags. The tags are used to limit the scope of the grant.
|
|
1868
1945
|
"""
|
|
1869
1946
|
controlGroups: [AccessControlGroup!]!
|
|
1947
|
+
|
|
1948
|
+
"""
|
|
1949
|
+
First-time vs returning applicant counts for the matching appRequests (see AppRequestApplicantCounts).
|
|
1950
|
+
"""
|
|
1951
|
+
countAppRequestApplicants(filter: AppRequestFilter): AppRequestApplicantCounts!
|
|
1870
1952
|
countAppRequests(filter: AppRequestFilter): Int!
|
|
1871
1953
|
pageInfo: PaginationResponse!
|
|
1872
1954
|
periods(filter: PeriodFilters): [Period!]!
|
|
@@ -110,6 +110,12 @@ export const isAppRequestActivity = (obj) => {
|
|
|
110
110
|
throw new Error('__typename is missing in "isAppRequestActivity"');
|
|
111
111
|
return AppRequestActivity_possibleTypes.includes(obj.__typename);
|
|
112
112
|
};
|
|
113
|
+
const AppRequestApplicantCounts_possibleTypes = ['AppRequestApplicantCounts'];
|
|
114
|
+
export const isAppRequestApplicantCounts = (obj) => {
|
|
115
|
+
if (!obj?.__typename)
|
|
116
|
+
throw new Error('__typename is missing in "isAppRequestApplicantCounts"');
|
|
117
|
+
return AppRequestApplicantCounts_possibleTypes.includes(obj.__typename);
|
|
118
|
+
};
|
|
113
119
|
const AppRequestIndexCategory_possibleTypes = ['AppRequestIndexCategory'];
|
|
114
120
|
export const isAppRequestIndexCategory = (obj) => {
|
|
115
121
|
if (!obj?.__typename)
|
|
@@ -33,6 +33,7 @@ declare const _default: {
|
|
|
33
33
|
AccessGrantTag: {
|
|
34
34
|
category: number[];
|
|
35
35
|
categoryLabel: number[];
|
|
36
|
+
description: number[];
|
|
36
37
|
label: number[];
|
|
37
38
|
tag: number[];
|
|
38
39
|
__typename: number[];
|
|
@@ -109,6 +110,7 @@ declare const _default: {
|
|
|
109
110
|
__typename: number[];
|
|
110
111
|
};
|
|
111
112
|
AccessTag: {
|
|
113
|
+
description: number[];
|
|
112
114
|
label: number[];
|
|
113
115
|
value: number[];
|
|
114
116
|
__typename: number[];
|
|
@@ -195,7 +197,9 @@ declare const _default: {
|
|
|
195
197
|
AppRequest: {
|
|
196
198
|
actions: number[];
|
|
197
199
|
applicant: number[];
|
|
198
|
-
applications: number
|
|
200
|
+
applications: (number | {
|
|
201
|
+
programKeys: (string | number)[];
|
|
202
|
+
})[];
|
|
199
203
|
awaitingCorrection: number[];
|
|
200
204
|
closedAt: number[];
|
|
201
205
|
createdAt: number[];
|
|
@@ -266,7 +270,13 @@ declare const _default: {
|
|
|
266
270
|
users: number[];
|
|
267
271
|
__typename: number[];
|
|
268
272
|
};
|
|
273
|
+
AppRequestApplicantCounts: {
|
|
274
|
+
firstTime: number[];
|
|
275
|
+
returning: number[];
|
|
276
|
+
__typename: number[];
|
|
277
|
+
};
|
|
269
278
|
AppRequestFilter: {
|
|
279
|
+
applicationStatuses: number[];
|
|
270
280
|
closed: number[];
|
|
271
281
|
closedAfter: number[];
|
|
272
282
|
closedBefore: number[];
|
|
@@ -278,6 +288,7 @@ declare const _default: {
|
|
|
278
288
|
logins: number[];
|
|
279
289
|
own: number[];
|
|
280
290
|
periodIds: number[];
|
|
291
|
+
programKeys: number[];
|
|
281
292
|
rescindedStatus: number[];
|
|
282
293
|
reviewStarted: number[];
|
|
283
294
|
search: number[];
|
|
@@ -318,6 +329,7 @@ declare const _default: {
|
|
|
318
329
|
applicantDescription: number[];
|
|
319
330
|
awaitingCorrection: number[];
|
|
320
331
|
eligibilityDescription: number[];
|
|
332
|
+
hiddenIneligiblePreSubmit: number[];
|
|
321
333
|
id: number[];
|
|
322
334
|
ineligiblePhase: number[];
|
|
323
335
|
navTitle: number[];
|
|
@@ -403,6 +415,11 @@ declare const _default: {
|
|
|
403
415
|
};
|
|
404
416
|
ApplicationRescindedStatus: {};
|
|
405
417
|
ApplicationStatus: {};
|
|
418
|
+
ApplicationStatusFilter: {
|
|
419
|
+
rescindedStatus: number[];
|
|
420
|
+
status: number[];
|
|
421
|
+
__typename: number[];
|
|
422
|
+
};
|
|
406
423
|
Boolean: {};
|
|
407
424
|
Category: {
|
|
408
425
|
category: number[];
|
|
@@ -714,6 +731,7 @@ declare const _default: {
|
|
|
714
731
|
PeriodProgram: {
|
|
715
732
|
actions: number[];
|
|
716
733
|
applicantDescription: number[];
|
|
734
|
+
configuration: number[];
|
|
717
735
|
eligibilityDescription: number[];
|
|
718
736
|
enabled: number[];
|
|
719
737
|
key: number[];
|
|
@@ -788,6 +806,12 @@ declare const _default: {
|
|
|
788
806
|
id: (string | number)[];
|
|
789
807
|
paged: number[];
|
|
790
808
|
})[];
|
|
809
|
+
appRequestActivityActions: (number | {
|
|
810
|
+
id: (string | number)[];
|
|
811
|
+
})[];
|
|
812
|
+
appRequestActivityUsers: (number | {
|
|
813
|
+
id: (string | number)[];
|
|
814
|
+
})[];
|
|
791
815
|
appRequestIndexes: (number | {
|
|
792
816
|
categories: (string | number)[];
|
|
793
817
|
for: number[];
|
|
@@ -800,6 +824,9 @@ declare const _default: {
|
|
|
800
824
|
filter: number[];
|
|
801
825
|
})[];
|
|
802
826
|
controlGroups: number[];
|
|
827
|
+
countAppRequestApplicants: (number | {
|
|
828
|
+
filter: number[];
|
|
829
|
+
})[];
|
|
803
830
|
countAppRequests: (number | {
|
|
804
831
|
filter: number[];
|
|
805
832
|
})[];
|