@reqquest/ui 1.8.0 → 1.9.1

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.
@@ -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';
@@ -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';
@@ -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
  /**
@@ -107,6 +111,28 @@ export interface PromptDefinition {
107
111
  * A boolean value will result in a default skeleton loader.
108
112
  */
109
113
  loader?: Loader;
114
+ /**
115
+ * This is the same applicantPromptPage CSS configurations that exist at the UIConfig (global applicant page prompt) level. Used in a situation where a specific prompt
116
+ * requires a specific layout that doesn't match default. This will override global configuration
117
+ */
118
+ applicantPromptPage?: ApplicantPromptPageDefinition;
119
+ }
120
+ /**
121
+ * Applicant prompts are wrapped by the default CL Form component, so any styling applied within the svelte prompt
122
+ * is independent (does not influence) of the layout of form elements that exist as part of the CL Form (eg. Validation notices).
123
+ * This can result in inconsistencies in desired layouts as CL Form elements are default left aligned while prompts could expect/desire
124
+ * center alignment. This property allows the developer to set the global prompt page Form CSS class variable. This can be overwritten at the
125
+ * individual prompt level if specific prompts desire specific layouts. This definition is used for defining those elements if required
126
+ */
127
+ export interface ApplicantPromptPageDefinition {
128
+ /**
129
+ * CSS class settings specific to the Form component that wraps the prompt
130
+ */
131
+ formClass?: string;
132
+ /**
133
+ * CSS class settings specific to the corrections inline notification within the Form
134
+ */
135
+ invalidatedInlineNotificationClass?: string;
110
136
  }
111
137
  export interface Terminologies {
112
138
  /**
@@ -160,6 +186,14 @@ export interface UIConfig {
160
186
  * Defaults to 30 if not specified.
161
187
  */
162
188
  applicantDashboardRecentDays?: number;
189
+ /**
190
+ * Applicant prompts are wrapped by the default CL Form component, so any styling applied within the svelte prompt
191
+ * is independent (does not influence) of the layout of form elements that exist as part of the CL Form (eg. Validation notices).
192
+ * This can result in inconsistencies in desired layouts as CL Form elements are default left aligned while prompts could expect/desire
193
+ * center alignment. This property allows the developer to set the global prompt page Form CSS class variable. This can be overwritten at the
194
+ * individual prompt level if specific prompts desire specific layouts
195
+ */
196
+ applicantPromptPage?: ApplicantPromptPageDefinition;
163
197
  /**
164
198
  * Applicant Review submission page title and subtitle text.
165
199
  */
@@ -271,7 +271,7 @@ 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' | 'REVIEW_COMPLETE' | 'STARTED' | 'WITHDRAWN';
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;
@@ -353,7 +353,7 @@ export interface ApplicationMetricTiming {
353
353
  * is computed based on the status of the appRequest and of the requirements for the program.
354
354
  *
355
355
  */
356
- export type ApplicationPhase = 'ACCEPTANCE' | 'APPROVAL' | 'COMPLETE' | 'PREAPPROVAL' | 'PREQUAL' | 'QUALIFICATION' | 'READY_FOR_WORKFLOW' | 'READY_TO_ACCEPT' | 'READY_TO_COMPLETE' | 'READY_TO_SUBMIT' | 'REVIEW_COMPLETE' | 'WORKFLOW_BLOCKING' | 'WORKFLOW_NONBLOCKING';
356
+ export type ApplicationPhase = 'ACCEPTANCE' | 'APPROVAL' | 'COMPLETE' | 'PREAPPROVAL' | 'PREQUAL' | 'QUALIFICATION' | 'READY_FOR_WORKFLOW' | 'READY_TO_ACCEPT' | 'READY_TO_COMPLETE' | 'READY_TO_SUBMIT' | 'REVIEW_COMPLETE' | 'REVIEW_IN_PROGRESS' | 'WORKFLOW_BLOCKING' | 'WORKFLOW_NONBLOCKING';
357
357
  /** The specific instance of a requirement on a particular application. Stores the status of the requirement, e.g. being satisfied or not. */
358
358
  export interface ApplicationRequirement {
359
359
  application: Application;
@@ -453,7 +453,7 @@ export interface Mutation {
453
453
  acceptOffer: ValidatedAppRequestResponse;
454
454
  /** Add a note to the app request. */
455
455
  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. If on the last non-blocking workflow, moves the application to COMPLETE. If all applications are COMPLETE, automatically triggers the app request close mutation. */
456
+ /** 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
457
  advanceWorkflow: ValidatedAppRequestResponse;
458
458
  /** 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
459
  cancelAppRequest: ValidatedAppRequestResponse;
@@ -480,7 +480,7 @@ export interface Mutation {
480
480
  returnToOffer: ValidatedAppRequestResponse;
481
481
  /** Return the app request to the review phase from acceptance, non-blocking workflow, or completion. */
482
482
  returnToReview: ValidatedAppRequestResponse;
483
- /** Moves the application back to the previous workflow stage. If on the first blocking workflow stage, moves back to APPROVAL. If on the first non-blocking workflow, throws an error. */
483
+ /** 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
484
  reverseWorkflow: ValidatedAppRequestResponse;
485
485
  roleAddGrant: AccessRoleValidatedResponse;
486
486
  roleCreate: AccessRoleValidatedResponse;
@@ -1107,6 +1107,8 @@ export interface AppRequestActivityFilters {
1107
1107
  impersonatedBy?: (Scalars['ID'][] | null);
1108
1108
  /** Return activities that were performed while one of the given logins was being impersonated by someone else. */
1109
1109
  impersonatedUsers?: (Scalars['ID'][] | null);
1110
+ /** Filter activities by matching description content. */
1111
+ search?: (Scalars['String'] | null);
1110
1112
  /** 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
1113
  users?: (Scalars['ID'][] | null);
1112
1114
  }
@@ -1421,7 +1423,7 @@ export interface MutationGenqlSelection {
1421
1423
  validateOnly?: (Scalars['Boolean'] | null);
1422
1424
  };
1423
1425
  });
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. If on the last non-blocking workflow, moves the application to COMPLETE. If all applications are COMPLETE, automatically triggers the app request close mutation. */
1426
+ /** 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
1427
  advanceWorkflow?: (ValidatedAppRequestResponseGenqlSelection & {
1426
1428
  __args: {
1427
1429
  applicationId: Scalars['ID'];
@@ -1515,7 +1517,7 @@ export interface MutationGenqlSelection {
1515
1517
  appRequestId: Scalars['ID'];
1516
1518
  };
1517
1519
  });
1518
- /** Moves the application back to the previous workflow stage. If on the first blocking workflow stage, moves back to APPROVAL. If on the first non-blocking workflow, throws an error. */
1520
+ /** 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
1521
  reverseWorkflow?: (ValidatedAppRequestResponseGenqlSelection & {
1520
1522
  __args: {
1521
1523
  applicationId: Scalars['ID'];
@@ -2193,6 +2195,7 @@ export declare const enumAppRequestStatus: {
2193
2195
  READY_TO_ACCEPT: "READY_TO_ACCEPT";
2194
2196
  READY_TO_SUBMIT: "READY_TO_SUBMIT";
2195
2197
  REVIEW_COMPLETE: "REVIEW_COMPLETE";
2198
+ REVIEW_IN_PROGRESS: "REVIEW_IN_PROGRESS";
2196
2199
  STARTED: "STARTED";
2197
2200
  WITHDRAWN: "WITHDRAWN";
2198
2201
  };
@@ -2208,6 +2211,7 @@ export declare const enumApplicationPhase: {
2208
2211
  READY_TO_COMPLETE: "READY_TO_COMPLETE";
2209
2212
  READY_TO_SUBMIT: "READY_TO_SUBMIT";
2210
2213
  REVIEW_COMPLETE: "REVIEW_COMPLETE";
2214
+ REVIEW_IN_PROGRESS: "REVIEW_IN_PROGRESS";
2211
2215
  WORKFLOW_BLOCKING: "WORKFLOW_BLOCKING";
2212
2216
  WORKFLOW_NONBLOCKING: "WORKFLOW_NONBLOCKING";
2213
2217
  };
@@ -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
 
@@ -847,7 +855,7 @@ enum ApplicationPhase {
847
855
  ACCEPTANCE
848
856
 
849
857
  """
850
- The applicant has submitted the application and any PREAPPROVAL requirements are passing. The application is under review.
858
+ The applicant has submitted the application and any PREAPPROVAL requirements are passing. The application is pending review.
851
859
  """
852
860
  APPROVAL
853
861
 
@@ -892,10 +900,15 @@ enum ApplicationPhase {
892
900
  READY_TO_SUBMIT
893
901
 
894
902
  """
895
- The application has been reviewed and any blocking workflow stages have been completed. The application is ready for results (whether eligible or not) to be released to the applicant. A reviewer must manually advanced the phase, and will do so for the whole appRequest, not one application at a time. So the application will sit in this state until all applications are REVIEW_COMPLETE. If there is no acceptance phase (because there are no acceptance requirements), or if the application is not eligible, the makeOffer prompt will move the phase to WORKFLOW_NONBLOCKING or COMPLETE.
903
+ 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
904
  """
897
905
  REVIEW_COMPLETE
898
906
 
907
+ """
908
+ The review for this application is currently in progress (some APPROVAL requirement prompt data has been input)
909
+ """
910
+ REVIEW_IN_PROGRESS
911
+
899
912
  """
900
913
  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
914
  """
@@ -1223,7 +1236,7 @@ type Mutation {
1223
1236
  ): ValidatedNoteResponse!
1224
1237
 
1225
1238
  """
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. If on the last non-blocking workflow, moves the application to COMPLETE. If all applications are COMPLETE, automatically triggers the app request close mutation.
1239
+ 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
1240
  """
1228
1241
  advanceWorkflow(applicationId: ID!): ValidatedAppRequestResponse!
1229
1242
 
@@ -1287,7 +1300,7 @@ type Mutation {
1287
1300
  returnToReview(appRequestId: ID!): ValidatedAppRequestResponse!
1288
1301
 
1289
1302
  """
1290
- Moves the application back to the previous workflow stage. If on the first blocking workflow stage, moves back to APPROVAL. If on the first non-blocking workflow, throws an error.
1303
+ 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
1304
  """
1292
1305
  reverseWorkflow(applicationId: ID!): ValidatedAppRequestResponse!
1293
1306
  roleAddGrant(grant: AccessRoleGrantCreate!, roleId: ID!, validateOnly: Boolean): AccessRoleValidatedResponse!
@@ -346,6 +346,7 @@ export const enumAppRequestStatus = {
346
346
  READY_TO_ACCEPT: 'READY_TO_ACCEPT',
347
347
  READY_TO_SUBMIT: 'READY_TO_SUBMIT',
348
348
  REVIEW_COMPLETE: 'REVIEW_COMPLETE',
349
+ REVIEW_IN_PROGRESS: 'REVIEW_IN_PROGRESS',
349
350
  STARTED: 'STARTED',
350
351
  WITHDRAWN: 'WITHDRAWN'
351
352
  };
@@ -361,6 +362,7 @@ export const enumApplicationPhase = {
361
362
  READY_TO_COMPLETE: 'READY_TO_COMPLETE',
362
363
  READY_TO_SUBMIT: 'READY_TO_SUBMIT',
363
364
  REVIEW_COMPLETE: 'REVIEW_COMPLETE',
365
+ REVIEW_IN_PROGRESS: 'REVIEW_IN_PROGRESS',
364
366
  WORKFLOW_BLOCKING: 'WORKFLOW_BLOCKING',
365
367
  WORKFLOW_NONBLOCKING: 'WORKFLOW_NONBLOCKING'
366
368
  };
@@ -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
  };
@@ -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
  ],
package/package.json CHANGED
@@ -1,6 +1,9 @@
1
1
  {
2
2
  "name": "@reqquest/ui",
3
- "version": "1.8.0",
3
+ "version": "1.9.1",
4
+ "overrides": {
5
+ "esrap": "2.3.2"
6
+ },
4
7
  "exports": {
5
8
  ".": {
6
9
  "types": "./dist/index.d.ts",