@reqquest/ui 1.8.1 → 1.10.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/components/PromptDisplayGrid.svelte +47 -0
- package/dist/components/PromptDisplayGrid.svelte.d.ts +45 -0
- package/dist/components/PromptDisplayRow.svelte +42 -0
- package/dist/components/PromptDisplayRow.svelte.d.ts +46 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.js +2 -0
- package/dist/registry.d.ts +4 -0
- package/dist/typed-client/schema.d.ts +31 -5
- package/dist/typed-client/schema.graphql +42 -4
- package/dist/typed-client/types.d.ts +7 -0
- package/dist/typed-client/types.js +21 -0
- package/dist/types.d.ts +2 -0
- package/package.json +4 -1
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
@component
|
|
3
|
+
Lays out a prompt's display data as challenge/response rows that align with the
|
|
4
|
+
surrounding prompt list, for prompts that collect several question/answer pairs in a
|
|
5
|
+
single form but should read as individual rows on the review screens. Rows take on
|
|
6
|
+
the same padding and border treatment as the prompt rows around them, so each
|
|
7
|
+
challenge/response is indistinguishable from a standalone prompt.
|
|
8
|
+
|
|
9
|
+
Place this as the root element of a `displayComponent` and register the prompt with
|
|
10
|
+
`displayMode: 'large'`. The full-width answer area becomes a subgrid of the prompt
|
|
11
|
+
list, so rows share the exact column tracks of the real prompt rows around them and
|
|
12
|
+
wrap at the same breakpoints. Fill it with `PromptDisplayRow` children; pass `full`
|
|
13
|
+
on a row to span the entire width.
|
|
14
|
+
|
|
15
|
+
It may also be the root element of a `formComponent` registered with
|
|
16
|
+
`formMode: 'large'`: the reviewer screen's inline edit form is bridged into the same
|
|
17
|
+
subgrid, so rows of field inputs align with the prompt rows too. Rendered anywhere
|
|
18
|
+
without a prompt list around it (the edit modal, applicant pages), the grid falls back
|
|
19
|
+
to laying out its own two columns.
|
|
20
|
+
-->
|
|
21
|
+
<dl class="prompt-display-grid">
|
|
22
|
+
<slot />
|
|
23
|
+
</dl>
|
|
24
|
+
|
|
25
|
+
<style>
|
|
26
|
+
dl.prompt-display-grid {
|
|
27
|
+
display: grid;
|
|
28
|
+
grid-column: 1 / -1;
|
|
29
|
+
/* The review screens set --prompt-display-subgrid: subgrid when this grid is positioned
|
|
30
|
+
to share their prompt-list tracks. Anywhere else (edit modals, applicant pages) it
|
|
31
|
+
lays out its own two columns so full rows and placement still work. */
|
|
32
|
+
grid-template-columns: var(--prompt-display-subgrid, var(--prompt-display-columns, fit-content(50%) minmax(0, 1fr)));
|
|
33
|
+
align-items: stretch;
|
|
34
|
+
row-gap: var(--prompt-display-row-gap, 0);
|
|
35
|
+
margin: 0;
|
|
36
|
+
}
|
|
37
|
+
dl.prompt-display-grid > :global(.prompt-display-challenge),
|
|
38
|
+
dl.prompt-display-grid > :global(.prompt-display-response),
|
|
39
|
+
dl.prompt-display-grid > :global(.prompt-display-full) {
|
|
40
|
+
border-bottom: 1px solid var(--cds-border-subtle);
|
|
41
|
+
padding: var(--prompt-display-row-padding, 1rem 15px);
|
|
42
|
+
}
|
|
43
|
+
dl.prompt-display-grid > :global(.prompt-display-challenge),
|
|
44
|
+
dl.prompt-display-grid > :global(.prompt-display-full) {
|
|
45
|
+
padding-left: calc(var(--prompt-display-challenge-padding-left, 32px) + var(--prompt-display-indent, 0) * var(--prompt-display-indent-size, 1rem));
|
|
46
|
+
}
|
|
47
|
+
</style>
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export default PromptDisplayGrid;
|
|
2
|
+
type PromptDisplayGrid = SvelteComponent<any, {
|
|
3
|
+
[evt: string]: CustomEvent<any>;
|
|
4
|
+
}, {
|
|
5
|
+
default: {};
|
|
6
|
+
}> & {
|
|
7
|
+
$$bindings?: string | undefined;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Lays out a prompt's display data as challenge/response rows that align with the
|
|
11
|
+
* surrounding prompt list, for prompts that collect several question/answer pairs in a
|
|
12
|
+
* single form but should read as individual rows on the review screens. Rows take on
|
|
13
|
+
* the same padding and border treatment as the prompt rows around them, so each
|
|
14
|
+
* challenge/response is indistinguishable from a standalone prompt.
|
|
15
|
+
*
|
|
16
|
+
* Place this as the root element of a `displayComponent` and register the prompt with
|
|
17
|
+
* `displayMode: 'large'`. The full-width answer area becomes a subgrid of the prompt
|
|
18
|
+
* list, so rows share the exact column tracks of the real prompt rows around them and
|
|
19
|
+
* wrap at the same breakpoints. Fill it with `PromptDisplayRow` children; pass `full`
|
|
20
|
+
* on a row to span the entire width.
|
|
21
|
+
*
|
|
22
|
+
* It may also be the root element of a `formComponent` registered with
|
|
23
|
+
* `formMode: 'large'`: the reviewer screen's inline edit form is bridged into the same
|
|
24
|
+
* subgrid, so rows of field inputs align with the prompt rows too. Rendered anywhere
|
|
25
|
+
* without a prompt list around it (the edit modal, applicant pages), the grid falls back
|
|
26
|
+
* to laying out its own two columns.
|
|
27
|
+
*/
|
|
28
|
+
declare const PromptDisplayGrid: $$__sveltets_2_IsomorphicComponent<any, {
|
|
29
|
+
[evt: string]: CustomEvent<any>;
|
|
30
|
+
}, {
|
|
31
|
+
default: {};
|
|
32
|
+
}, {}, string>;
|
|
33
|
+
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
34
|
+
new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
|
|
35
|
+
$$bindings?: Bindings;
|
|
36
|
+
} & Exports;
|
|
37
|
+
(internal: unknown, props: {
|
|
38
|
+
$$events?: Events;
|
|
39
|
+
$$slots?: Slots;
|
|
40
|
+
}): Exports & {
|
|
41
|
+
$set?: any;
|
|
42
|
+
$on?: any;
|
|
43
|
+
};
|
|
44
|
+
z_$$bindings?: Bindings;
|
|
45
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
@component
|
|
3
|
+
One challenge/response row inside a `PromptDisplayGrid`. The challenge lands in the
|
|
4
|
+
same column as the prompt titles around it and the response in the answer column.
|
|
5
|
+
|
|
6
|
+
- `challenge` prop or slot for the question, default slot for the answer.
|
|
7
|
+
- `full` spans the entire grid width instead, for content that needs the whole row
|
|
8
|
+
(documents, notes, notifications).
|
|
9
|
+
- `indentLevel` indents the challenge (or full-row content) to suggest hierarchy,
|
|
10
|
+
e.g. follow-up questions under a parent question.
|
|
11
|
+
-->
|
|
12
|
+
<script lang="ts">
|
|
13
|
+
/** The question being answered. Use the `challenge` slot instead if you need markup. */
|
|
14
|
+
export let challenge: string | undefined = undefined
|
|
15
|
+
/** Span the full width of the grid instead of splitting into challenge/response. */
|
|
16
|
+
export let full = false
|
|
17
|
+
/**
|
|
18
|
+
* Indent the challenge (or full-row content) by this multiple of a small indent unit
|
|
19
|
+
* (1rem per level, tunable with --prompt-display-indent-size). Default 0.
|
|
20
|
+
*/
|
|
21
|
+
export let indentLevel = 0
|
|
22
|
+
</script>
|
|
23
|
+
|
|
24
|
+
{#if full}
|
|
25
|
+
<div class="prompt-display-full" style:--prompt-display-indent={indentLevel || undefined}><slot /></div>
|
|
26
|
+
{:else}
|
|
27
|
+
<dt class="prompt-display-challenge" style:--prompt-display-indent={indentLevel || undefined}><slot name="challenge">{challenge}</slot></dt>
|
|
28
|
+
<dd class="prompt-display-response"><slot /></dd>
|
|
29
|
+
{/if}
|
|
30
|
+
|
|
31
|
+
<style>
|
|
32
|
+
dt.prompt-display-challenge {
|
|
33
|
+
grid-column: 1;
|
|
34
|
+
}
|
|
35
|
+
dd.prompt-display-response {
|
|
36
|
+
grid-column: 2;
|
|
37
|
+
margin: 0;
|
|
38
|
+
}
|
|
39
|
+
div.prompt-display-full {
|
|
40
|
+
grid-column: 1 / -1;
|
|
41
|
+
}
|
|
42
|
+
</style>
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
2
|
+
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
3
|
+
$$bindings?: Bindings;
|
|
4
|
+
} & Exports;
|
|
5
|
+
(internal: unknown, props: Props & {
|
|
6
|
+
$$events?: Events;
|
|
7
|
+
$$slots?: Slots;
|
|
8
|
+
}): Exports & {
|
|
9
|
+
$set?: any;
|
|
10
|
+
$on?: any;
|
|
11
|
+
};
|
|
12
|
+
z_$$bindings?: Bindings;
|
|
13
|
+
}
|
|
14
|
+
type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
|
|
15
|
+
default: any;
|
|
16
|
+
} ? Props extends Record<string, never> ? any : {
|
|
17
|
+
children?: any;
|
|
18
|
+
} : {});
|
|
19
|
+
/**
|
|
20
|
+
* One challenge/response row inside a `PromptDisplayGrid`. The challenge lands in the
|
|
21
|
+
* same column as the prompt titles around it and the response in the answer column.
|
|
22
|
+
*
|
|
23
|
+
* - `challenge` prop or slot for the question, default slot for the answer.
|
|
24
|
+
* - `full` spans the entire grid width instead, for content that needs the whole row
|
|
25
|
+
* (documents, notes, notifications).
|
|
26
|
+
* - `indentLevel` indents the challenge (or full-row content) to suggest hierarchy,
|
|
27
|
+
* e.g. follow-up questions under a parent question.
|
|
28
|
+
*/
|
|
29
|
+
declare const PromptDisplayRow: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
|
|
30
|
+
/** The question being answered. Use the `challenge` slot instead if you need markup. */ challenge?: string | undefined;
|
|
31
|
+
/** Span the full width of the grid instead of splitting into challenge/response. */ full?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Indent the challenge (or full-row content) by this multiple of a small indent unit
|
|
34
|
+
* (1rem per level, tunable with --prompt-display-indent-size). Default 0.
|
|
35
|
+
*/ indentLevel?: number;
|
|
36
|
+
}, {
|
|
37
|
+
default: {};
|
|
38
|
+
challenge: {};
|
|
39
|
+
}>, {
|
|
40
|
+
[evt: string]: CustomEvent<any>;
|
|
41
|
+
}, {
|
|
42
|
+
default: {};
|
|
43
|
+
challenge: {};
|
|
44
|
+
}, {}, string>;
|
|
45
|
+
type PromptDisplayRow = InstanceType<typeof PromptDisplayRow>;
|
|
46
|
+
export default PromptDisplayRow;
|
|
@@ -2,4 +2,6 @@ export { default as CommentCard } from './CommentCard.svelte';
|
|
|
2
2
|
export { default as FieldCardCheckbox } from './FieldCardCheckbox.svelte';
|
|
3
3
|
export { default as FieldCardRadio } from './FieldCardRadio.svelte';
|
|
4
4
|
export { default as InfoCard } from './InfoCard.svelte';
|
|
5
|
+
export { default as PromptDisplayGrid } from './PromptDisplayGrid.svelte';
|
|
6
|
+
export { default as PromptDisplayRow } from './PromptDisplayRow.svelte';
|
|
5
7
|
export { default as QuestionnairePrompt } from './QuestionnairePrompt.svelte';
|
package/dist/components/index.js
CHANGED
|
@@ -2,4 +2,6 @@ export { default as CommentCard } from './CommentCard.svelte';
|
|
|
2
2
|
export { default as FieldCardCheckbox } from './FieldCardCheckbox.svelte';
|
|
3
3
|
export { default as FieldCardRadio } from './FieldCardRadio.svelte';
|
|
4
4
|
export { default as InfoCard } from './InfoCard.svelte';
|
|
5
|
+
export { default as PromptDisplayGrid } from './PromptDisplayGrid.svelte';
|
|
6
|
+
export { default as PromptDisplayRow } from './PromptDisplayRow.svelte';
|
|
5
7
|
export { default as QuestionnairePrompt } from './QuestionnairePrompt.svelte';
|
package/dist/registry.d.ts
CHANGED
|
@@ -86,6 +86,10 @@ export interface PromptDefinition {
|
|
|
86
86
|
*
|
|
87
87
|
* There is no 'full' mode for displayComponent, since we always want to be able to print the
|
|
88
88
|
* full information dump on a one-pager.
|
|
89
|
+
*
|
|
90
|
+
* If your prompt collects several question/answer pairs that should each read as their own
|
|
91
|
+
* row in the prompt list, set 'large' and build the displayComponent on `PromptDisplayGrid` /
|
|
92
|
+
* `PromptDisplayRow` — its rows will align with the surrounding prompt rows.
|
|
89
93
|
*/
|
|
90
94
|
displayMode?: 'small' | 'large';
|
|
91
95
|
/**
|
|
@@ -271,12 +271,16 @@ export type AppRequestPhase = 'ACCEPTANCE' | 'COMPLETE' | 'STARTED' | 'SUBMITTED
|
|
|
271
271
|
* the database and the status of each application.
|
|
272
272
|
*
|
|
273
273
|
*/
|
|
274
|
-
export type AppRequestStatus = 'ACCEPTANCE' | 'ACCEPTED' | 'APPROVAL' | 'APPROVED' | 'CANCELLED' | 'DISQUALIFIED' | 'NOT_ACCEPTED' | 'NOT_APPROVED' | 'PREAPPROVAL' | 'READY_TO_ACCEPT' | 'READY_TO_SUBMIT' | '
|
|
274
|
+
export type AppRequestStatus = 'ACCEPTANCE' | 'ACCEPTED' | 'APPROVAL' | 'APPROVED' | 'CANCELLED' | 'DISQUALIFIED' | 'NOT_ACCEPTED' | 'NOT_APPROVED' | 'PREAPPROVAL' | 'READY_TO_ACCEPT' | 'READY_TO_SUBMIT' | 'REVIEW_COMPLETE' | 'REVIEW_IN_PROGRESS' | 'STARTED' | 'WITHDRAWN';
|
|
275
275
|
/** An application represents the applicant applying to a specific program. Each appRequest has multiple applications - one per program defined in the system. Some applications are mutually exclusive and/or will be eliminated early based on PREQUAL requirements, but they all technically exist in the data model - there is no concept of picking one application over another, just two applications where one dies and the other survives. */
|
|
276
276
|
export interface Application {
|
|
277
277
|
actions: ApplicationActions;
|
|
278
|
+
/** A brief description, written for applicants, of the program this application is for. */
|
|
279
|
+
applicantDescription: (Scalars['String'] | null);
|
|
278
280
|
/** True when at least one reachable prompt on this application has been invalidated and must be re-answered. Status is still computed from the answers on file, so pair status displays with this flag to indicate that a correction is outstanding. */
|
|
279
281
|
awaitingCorrection: Scalars['Boolean'];
|
|
282
|
+
/** 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. */
|
|
283
|
+
eligibilityDescription: (Scalars['String'] | null);
|
|
280
284
|
id: Scalars['ID'];
|
|
281
285
|
/** The phase in which this application became ineligible for benefits. Useful for reporting / filtering. Null if the application is not (yet) ineligible. */
|
|
282
286
|
ineligiblePhase: (IneligiblePhases | null);
|
|
@@ -453,7 +457,7 @@ export interface Mutation {
|
|
|
453
457
|
acceptOffer: ValidatedAppRequestResponse;
|
|
454
458
|
/** Add a note to the app request. */
|
|
455
459
|
addNote: ValidatedNoteResponse;
|
|
456
|
-
/** Moves the application to the next workflow stage. If phase is READY_FOR_WORKFLOW, moves to the first or next blocking workflow stage. If on the last blocking workflow, moves to REVIEW_COMPLETE.
|
|
460
|
+
/** Moves the application to the next blocking workflow stage. If phase is READY_FOR_WORKFLOW, moves to the first or next blocking workflow stage. If on the last blocking workflow, moves to REVIEW_COMPLETE. In the non-blocking (WORKFLOW_NONBLOCKING) phase the workflow is non-sequential with all non-blocking requirements editable at once and once they are all resolved this becomes a single "Send to Complete" action that moves the application to COMPLETE. */
|
|
457
461
|
advanceWorkflow: ValidatedAppRequestResponse;
|
|
458
462
|
/** Cancel or withdraw the app request, depending on its current phase. This is only available if the app request is in a cancellable state. */
|
|
459
463
|
cancelAppRequest: ValidatedAppRequestResponse;
|
|
@@ -480,7 +484,7 @@ export interface Mutation {
|
|
|
480
484
|
returnToOffer: ValidatedAppRequestResponse;
|
|
481
485
|
/** Return the app request to the review phase from acceptance, non-blocking workflow, or completion. */
|
|
482
486
|
returnToReview: ValidatedAppRequestResponse;
|
|
483
|
-
/** Moves the application back to the previous workflow stage.
|
|
487
|
+
/** Moves the application back to the previous blocking workflow stage. Non-blocking workflow stages are excluded from the reverse order, so this only steps back through the blocking workflow during the review (SUBMITTED) phase. If no blocking then moved to APPROVAL */
|
|
484
488
|
reverseWorkflow: ValidatedAppRequestResponse;
|
|
485
489
|
roleAddGrant: AccessRoleValidatedResponse;
|
|
486
490
|
roleCreate: AccessRoleValidatedResponse;
|
|
@@ -582,6 +586,10 @@ export interface PeriodActions {
|
|
|
582
586
|
}
|
|
583
587
|
export interface PeriodProgram {
|
|
584
588
|
actions: PeriodProgramActions;
|
|
589
|
+
/** A brief description of the program, written for applicants. */
|
|
590
|
+
applicantDescription: (Scalars['String'] | null);
|
|
591
|
+
/** 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. */
|
|
592
|
+
eligibilityDescription: (Scalars['String'] | null);
|
|
585
593
|
/** Whether the program is enabled in this period. This is set by the system administrator. */
|
|
586
594
|
enabled: Scalars['Boolean'];
|
|
587
595
|
key: Scalars['ID'];
|
|
@@ -637,6 +645,10 @@ export interface PeriodWorkflowStage {
|
|
|
637
645
|
__typename: 'PeriodWorkflowStage';
|
|
638
646
|
}
|
|
639
647
|
export interface Program {
|
|
648
|
+
/** A brief description of the program, written for applicants. */
|
|
649
|
+
applicantDescription: (Scalars['String'] | null);
|
|
650
|
+
/** 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. */
|
|
651
|
+
eligibilityDescription: (Scalars['String'] | null);
|
|
640
652
|
key: Scalars['ID'];
|
|
641
653
|
navTitle: Scalars['String'];
|
|
642
654
|
title: Scalars['String'];
|
|
@@ -1107,6 +1119,8 @@ export interface AppRequestActivityFilters {
|
|
|
1107
1119
|
impersonatedBy?: (Scalars['ID'][] | null);
|
|
1108
1120
|
/** Return activities that were performed while one of the given logins was being impersonated by someone else. */
|
|
1109
1121
|
impersonatedUsers?: (Scalars['ID'][] | null);
|
|
1122
|
+
/** Filter activities by matching description content. */
|
|
1123
|
+
search?: (Scalars['String'] | null);
|
|
1110
1124
|
/** 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. */
|
|
1111
1125
|
users?: (Scalars['ID'][] | null);
|
|
1112
1126
|
}
|
|
@@ -1180,8 +1194,12 @@ export interface AppRequestNoteFilters {
|
|
|
1180
1194
|
/** An application represents the applicant applying to a specific program. Each appRequest has multiple applications - one per program defined in the system. Some applications are mutually exclusive and/or will be eliminated early based on PREQUAL requirements, but they all technically exist in the data model - there is no concept of picking one application over another, just two applications where one dies and the other survives. */
|
|
1181
1195
|
export interface ApplicationGenqlSelection {
|
|
1182
1196
|
actions?: ApplicationActionsGenqlSelection;
|
|
1197
|
+
/** A brief description, written for applicants, of the program this application is for. */
|
|
1198
|
+
applicantDescription?: boolean | number;
|
|
1183
1199
|
/** True when at least one reachable prompt on this application has been invalidated and must be re-answered. Status is still computed from the answers on file, so pair status displays with this flag to indicate that a correction is outstanding. */
|
|
1184
1200
|
awaitingCorrection?: boolean | number;
|
|
1201
|
+
/** 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. */
|
|
1202
|
+
eligibilityDescription?: boolean | number;
|
|
1185
1203
|
id?: boolean | number;
|
|
1186
1204
|
/** The phase in which this application became ineligible for benefits. Useful for reporting / filtering. Null if the application is not (yet) ineligible. */
|
|
1187
1205
|
ineligiblePhase?: boolean | number;
|
|
@@ -1421,7 +1439,7 @@ export interface MutationGenqlSelection {
|
|
|
1421
1439
|
validateOnly?: (Scalars['Boolean'] | null);
|
|
1422
1440
|
};
|
|
1423
1441
|
});
|
|
1424
|
-
/** Moves the application to the next workflow stage. If phase is READY_FOR_WORKFLOW, moves to the first or next blocking workflow stage. If on the last blocking workflow, moves to REVIEW_COMPLETE.
|
|
1442
|
+
/** Moves the application to the next blocking workflow stage. If phase is READY_FOR_WORKFLOW, moves to the first or next blocking workflow stage. If on the last blocking workflow, moves to REVIEW_COMPLETE. In the non-blocking (WORKFLOW_NONBLOCKING) phase the workflow is non-sequential with all non-blocking requirements editable at once and once they are all resolved this becomes a single "Send to Complete" action that moves the application to COMPLETE. */
|
|
1425
1443
|
advanceWorkflow?: (ValidatedAppRequestResponseGenqlSelection & {
|
|
1426
1444
|
__args: {
|
|
1427
1445
|
applicationId: Scalars['ID'];
|
|
@@ -1515,7 +1533,7 @@ export interface MutationGenqlSelection {
|
|
|
1515
1533
|
appRequestId: Scalars['ID'];
|
|
1516
1534
|
};
|
|
1517
1535
|
});
|
|
1518
|
-
/** Moves the application back to the previous workflow stage.
|
|
1536
|
+
/** Moves the application back to the previous blocking workflow stage. Non-blocking workflow stages are excluded from the reverse order, so this only steps back through the blocking workflow during the review (SUBMITTED) phase. If no blocking then moved to APPROVAL */
|
|
1519
1537
|
reverseWorkflow?: (ValidatedAppRequestResponseGenqlSelection & {
|
|
1520
1538
|
__args: {
|
|
1521
1539
|
applicationId: Scalars['ID'];
|
|
@@ -1732,6 +1750,10 @@ export interface PeriodFilters {
|
|
|
1732
1750
|
}
|
|
1733
1751
|
export interface PeriodProgramGenqlSelection {
|
|
1734
1752
|
actions?: PeriodProgramActionsGenqlSelection;
|
|
1753
|
+
/** A brief description of the program, written for applicants. */
|
|
1754
|
+
applicantDescription?: boolean | number;
|
|
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. */
|
|
1756
|
+
eligibilityDescription?: boolean | number;
|
|
1735
1757
|
/** Whether the program is enabled in this period. This is set by the system administrator. */
|
|
1736
1758
|
enabled?: boolean | number;
|
|
1737
1759
|
key?: boolean | number;
|
|
@@ -1799,6 +1821,10 @@ export interface PeriodWorkflowStageGenqlSelection {
|
|
|
1799
1821
|
__scalar?: boolean | number;
|
|
1800
1822
|
}
|
|
1801
1823
|
export interface ProgramGenqlSelection {
|
|
1824
|
+
/** A brief description of the program, written for applicants. */
|
|
1825
|
+
applicantDescription?: boolean | number;
|
|
1826
|
+
/** 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. */
|
|
1827
|
+
eligibilityDescription?: boolean | number;
|
|
1802
1828
|
key?: boolean | number;
|
|
1803
1829
|
navTitle?: boolean | number;
|
|
1804
1830
|
title?: boolean | number;
|
|
@@ -486,6 +486,9 @@ input AppRequestActivityFilters {
|
|
|
486
486
|
"""
|
|
487
487
|
impersonatedUsers: [ID!]
|
|
488
488
|
|
|
489
|
+
"""Filter activities by matching description content."""
|
|
490
|
+
search: String
|
|
491
|
+
|
|
489
492
|
"""
|
|
490
493
|
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.
|
|
491
494
|
"""
|
|
@@ -726,6 +729,11 @@ enum AppRequestStatus {
|
|
|
726
729
|
"""
|
|
727
730
|
REVIEW_COMPLETE
|
|
728
731
|
|
|
732
|
+
"""
|
|
733
|
+
A reviewer has begun their part on at least one application, some APPROVAL requirement prompt data has been input, but application has not finished review yet.
|
|
734
|
+
"""
|
|
735
|
+
REVIEW_IN_PROGRESS
|
|
736
|
+
|
|
729
737
|
"""Applicant has begun the process and has not yet submitted."""
|
|
730
738
|
STARTED
|
|
731
739
|
|
|
@@ -741,10 +749,20 @@ An application represents the applicant applying to a specific program. Each app
|
|
|
741
749
|
type Application {
|
|
742
750
|
actions: ApplicationActions!
|
|
743
751
|
|
|
752
|
+
"""
|
|
753
|
+
A brief description, written for applicants, of the program this application is for.
|
|
754
|
+
"""
|
|
755
|
+
applicantDescription: String
|
|
756
|
+
|
|
744
757
|
"""
|
|
745
758
|
True when at least one reachable prompt on this application has been invalidated and must be re-answered. Status is still computed from the answers on file, so pair status displays with this flag to indicate that a correction is outstanding.
|
|
746
759
|
"""
|
|
747
760
|
awaitingCorrection: Boolean!
|
|
761
|
+
|
|
762
|
+
"""
|
|
763
|
+
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.
|
|
764
|
+
"""
|
|
765
|
+
eligibilityDescription: String
|
|
748
766
|
id: ID!
|
|
749
767
|
|
|
750
768
|
"""
|
|
@@ -847,7 +865,7 @@ enum ApplicationPhase {
|
|
|
847
865
|
ACCEPTANCE
|
|
848
866
|
|
|
849
867
|
"""
|
|
850
|
-
The applicant has submitted the application and any PREAPPROVAL requirements are passing. The application is
|
|
868
|
+
The applicant has submitted the application and any PREAPPROVAL requirements are passing. The application is pending review.
|
|
851
869
|
"""
|
|
852
870
|
APPROVAL
|
|
853
871
|
|
|
@@ -892,10 +910,15 @@ enum ApplicationPhase {
|
|
|
892
910
|
READY_TO_SUBMIT
|
|
893
911
|
|
|
894
912
|
"""
|
|
895
|
-
The application has been reviewed and any blocking workflow stages have been completed.
|
|
913
|
+
The application has been reviewed and any blocking workflow stages have been completed. Its results (whether eligible or not) are released to the applicant as soon as it reaches this phase - the eligibility decision no longer waits for the appRequest Complete Review. A reviewer must still manually advance the appRequest phase, so the application will sit in this state until all applications are REVIEW_COMPLETE and the reviewer completes the review. If there is no acceptance phase, or if the application is not eligible, the makeOffer prompt will move the phase to WORKFLOW_NONBLOCKING or COMPLETE.
|
|
896
914
|
"""
|
|
897
915
|
REVIEW_COMPLETE
|
|
898
916
|
|
|
917
|
+
"""
|
|
918
|
+
The review for this application is currently in progress (some APPROVAL requirement prompt data has been input)
|
|
919
|
+
"""
|
|
920
|
+
REVIEW_IN_PROGRESS
|
|
921
|
+
|
|
899
922
|
"""
|
|
900
923
|
The application review has been completed and now there is a workflow process to audit the review BEFORE marking the application status as eligible or ineligible. It should remain pending until the blocking workflow stages have been completed. Workflow stages that evaluate to INELIGIBLE will also make the application status INELIGIBLE. Prompts from the applicant and review phases are locked.
|
|
901
924
|
"""
|
|
@@ -1223,7 +1246,7 @@ type Mutation {
|
|
|
1223
1246
|
): ValidatedNoteResponse!
|
|
1224
1247
|
|
|
1225
1248
|
"""
|
|
1226
|
-
Moves the application to the next workflow stage. If phase is READY_FOR_WORKFLOW, moves to the first or next blocking workflow stage. If on the last blocking workflow, moves to REVIEW_COMPLETE.
|
|
1249
|
+
Moves the application to the next blocking workflow stage. If phase is READY_FOR_WORKFLOW, moves to the first or next blocking workflow stage. If on the last blocking workflow, moves to REVIEW_COMPLETE. In the non-blocking (WORKFLOW_NONBLOCKING) phase the workflow is non-sequential with all non-blocking requirements editable at once and once they are all resolved this becomes a single "Send to Complete" action that moves the application to COMPLETE.
|
|
1227
1250
|
"""
|
|
1228
1251
|
advanceWorkflow(applicationId: ID!): ValidatedAppRequestResponse!
|
|
1229
1252
|
|
|
@@ -1287,7 +1310,7 @@ type Mutation {
|
|
|
1287
1310
|
returnToReview(appRequestId: ID!): ValidatedAppRequestResponse!
|
|
1288
1311
|
|
|
1289
1312
|
"""
|
|
1290
|
-
Moves the application back to the previous workflow stage.
|
|
1313
|
+
Moves the application back to the previous blocking workflow stage. Non-blocking workflow stages are excluded from the reverse order, so this only steps back through the blocking workflow during the review (SUBMITTED) phase. If no blocking then moved to APPROVAL
|
|
1291
1314
|
"""
|
|
1292
1315
|
reverseWorkflow(applicationId: ID!): ValidatedAppRequestResponse!
|
|
1293
1316
|
roleAddGrant(grant: AccessRoleGrantCreate!, roleId: ID!, validateOnly: Boolean): AccessRoleValidatedResponse!
|
|
@@ -1505,6 +1528,14 @@ input PeriodFilters {
|
|
|
1505
1528
|
type PeriodProgram {
|
|
1506
1529
|
actions: PeriodProgramActions!
|
|
1507
1530
|
|
|
1531
|
+
"""A brief description of the program, written for applicants."""
|
|
1532
|
+
applicantDescription: String
|
|
1533
|
+
|
|
1534
|
+
"""
|
|
1535
|
+
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.
|
|
1536
|
+
"""
|
|
1537
|
+
eligibilityDescription: String
|
|
1538
|
+
|
|
1508
1539
|
"""
|
|
1509
1540
|
Whether the program is enabled in this period. This is set by the system administrator.
|
|
1510
1541
|
"""
|
|
@@ -1606,6 +1637,13 @@ type PeriodWorkflowStage {
|
|
|
1606
1637
|
}
|
|
1607
1638
|
|
|
1608
1639
|
type Program {
|
|
1640
|
+
"""A brief description of the program, written for applicants."""
|
|
1641
|
+
applicantDescription: String
|
|
1642
|
+
|
|
1643
|
+
"""
|
|
1644
|
+
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.
|
|
1645
|
+
"""
|
|
1646
|
+
eligibilityDescription: String
|
|
1609
1647
|
key: ID!
|
|
1610
1648
|
navTitle: String!
|
|
1611
1649
|
title: String!
|
|
@@ -230,6 +230,7 @@ declare const _default: {
|
|
|
230
230
|
impersonated: number[];
|
|
231
231
|
impersonatedBy: number[];
|
|
232
232
|
impersonatedUsers: number[];
|
|
233
|
+
search: number[];
|
|
233
234
|
users: number[];
|
|
234
235
|
__typename: number[];
|
|
235
236
|
};
|
|
@@ -281,7 +282,9 @@ declare const _default: {
|
|
|
281
282
|
AppRequestStatus: {};
|
|
282
283
|
Application: {
|
|
283
284
|
actions: number[];
|
|
285
|
+
applicantDescription: number[];
|
|
284
286
|
awaitingCorrection: number[];
|
|
287
|
+
eligibilityDescription: number[];
|
|
285
288
|
id: number[];
|
|
286
289
|
ineligiblePhase: number[];
|
|
287
290
|
navTitle: number[];
|
|
@@ -647,6 +650,8 @@ declare const _default: {
|
|
|
647
650
|
};
|
|
648
651
|
PeriodProgram: {
|
|
649
652
|
actions: number[];
|
|
653
|
+
applicantDescription: number[];
|
|
654
|
+
eligibilityDescription: number[];
|
|
650
655
|
enabled: number[];
|
|
651
656
|
key: number[];
|
|
652
657
|
navTitle: number[];
|
|
@@ -694,6 +699,8 @@ declare const _default: {
|
|
|
694
699
|
__typename: number[];
|
|
695
700
|
};
|
|
696
701
|
Program: {
|
|
702
|
+
applicantDescription: number[];
|
|
703
|
+
eligibilityDescription: number[];
|
|
697
704
|
key: number[];
|
|
698
705
|
navTitle: number[];
|
|
699
706
|
title: number[];
|
|
@@ -600,6 +600,9 @@ export default {
|
|
|
600
600
|
"impersonatedUsers": [
|
|
601
601
|
49
|
|
602
602
|
],
|
|
603
|
+
"search": [
|
|
604
|
+
85
|
|
605
|
+
],
|
|
603
606
|
"users": [
|
|
604
607
|
49
|
|
605
608
|
],
|
|
@@ -727,9 +730,15 @@ export default {
|
|
|
727
730
|
"actions": [
|
|
728
731
|
34
|
|
729
732
|
],
|
|
733
|
+
"applicantDescription": [
|
|
734
|
+
85
|
|
735
|
+
],
|
|
730
736
|
"awaitingCorrection": [
|
|
731
737
|
41
|
|
732
738
|
],
|
|
739
|
+
"eligibilityDescription": [
|
|
740
|
+
85
|
|
741
|
+
],
|
|
733
742
|
"id": [
|
|
734
743
|
49
|
|
735
744
|
],
|
|
@@ -1710,6 +1719,12 @@ export default {
|
|
|
1710
1719
|
"actions": [
|
|
1711
1720
|
70
|
|
1712
1721
|
],
|
|
1722
|
+
"applicantDescription": [
|
|
1723
|
+
85
|
|
1724
|
+
],
|
|
1725
|
+
"eligibilityDescription": [
|
|
1726
|
+
85
|
|
1727
|
+
],
|
|
1713
1728
|
"enabled": [
|
|
1714
1729
|
41
|
|
1715
1730
|
],
|
|
@@ -1827,6 +1842,12 @@ export default {
|
|
|
1827
1842
|
]
|
|
1828
1843
|
},
|
|
1829
1844
|
"Program": {
|
|
1845
|
+
"applicantDescription": [
|
|
1846
|
+
85
|
|
1847
|
+
],
|
|
1848
|
+
"eligibilityDescription": [
|
|
1849
|
+
85
|
|
1850
|
+
],
|
|
1830
1851
|
"key": [
|
|
1831
1852
|
49
|
|
1832
1853
|
],
|
package/dist/types.d.ts
CHANGED
|
@@ -43,6 +43,8 @@ export interface AppRequestForDetails {
|
|
|
43
43
|
export interface ApplicationForDetails {
|
|
44
44
|
id: string;
|
|
45
45
|
title: string;
|
|
46
|
+
applicantDescription?: string | null;
|
|
47
|
+
eligibilityDescription?: string | null;
|
|
46
48
|
ineligiblePhase: IneligiblePhases | null;
|
|
47
49
|
status: ApplicationStatus;
|
|
48
50
|
statusReason?: string | null;
|