@defra/forms-engine-plugin 0.1.19 → 0.1.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/.server/client/javascripts/application.d.ts +1 -0
  2. package/.server/client/javascripts/file-upload.d.ts +9 -0
  3. package/.server/config/index.d.ts +45 -0
  4. package/.server/index.d.ts +1 -0
  5. package/.server/server/common/helpers/logging/logger-options.d.ts +80 -0
  6. package/.server/server/common/helpers/logging/logger.d.ts +1 -0
  7. package/.server/server/common/helpers/logging/request-logger.d.ts +83 -0
  8. package/.server/server/common/helpers/logging/request-tracing.d.ts +7 -0
  9. package/.server/server/common/helpers/redis-client.d.ts +9 -0
  10. package/.server/server/constants.d.ts +3 -0
  11. package/.server/server/index.d.ts +3 -0
  12. package/.server/server/plugins/crumb.d.ts +4 -0
  13. package/.server/server/plugins/engine/components/AutocompleteField.d.ts +55 -0
  14. package/.server/server/plugins/engine/components/CheckboxesField.d.ts +15 -0
  15. package/.server/server/plugins/engine/components/ComponentBase.d.ts +33 -0
  16. package/.server/server/plugins/engine/components/ComponentCollection.d.ts +60 -0
  17. package/.server/server/plugins/engine/components/DatePartsField.d.ts +76 -0
  18. package/.server/server/plugins/engine/components/Details.d.ts +53 -0
  19. package/.server/server/plugins/engine/components/EmailAddressField.d.ts +59 -0
  20. package/.server/server/plugins/engine/components/FileUploadField.d.ts +79 -0
  21. package/.server/server/plugins/engine/components/FormComponent.d.ts +95 -0
  22. package/.server/server/plugins/engine/components/Html.d.ts +53 -0
  23. package/.server/server/plugins/engine/components/InsetText.d.ts +52 -0
  24. package/.server/server/plugins/engine/components/List.d.ts +56 -0
  25. package/.server/server/plugins/engine/components/ListFormComponent.d.ts +71 -0
  26. package/.server/server/plugins/engine/components/Markdown.d.ts +53 -0
  27. package/.server/server/plugins/engine/components/MonthYearField.d.ts +75 -0
  28. package/.server/server/plugins/engine/components/MultilineTextField.d.ts +67 -0
  29. package/.server/server/plugins/engine/components/NumberField.d.ts +68 -0
  30. package/.server/server/plugins/engine/components/RadiosField.d.ts +6 -0
  31. package/.server/server/plugins/engine/components/SelectField.d.ts +55 -0
  32. package/.server/server/plugins/engine/components/SelectionControlField.d.ts +60 -0
  33. package/.server/server/plugins/engine/components/TelephoneNumberField.d.ts +62 -0
  34. package/.server/server/plugins/engine/components/TextField.d.ts +19 -0
  35. package/.server/server/plugins/engine/components/UkAddressField.d.ts +80 -0
  36. package/.server/server/plugins/engine/components/YesNoField.d.ts +15 -0
  37. package/.server/server/plugins/engine/components/constants.d.ts +1 -0
  38. package/.server/server/plugins/engine/components/helpers.d.ts +40 -0
  39. package/.server/server/plugins/engine/components/index.d.ts +24 -0
  40. package/.server/server/plugins/engine/components/types.d.ts +100 -0
  41. package/.server/server/plugins/engine/configureEnginePlugin.d.ts +8 -0
  42. package/.server/server/plugins/engine/helpers.d.ts +74 -0
  43. package/.server/server/plugins/engine/index.d.ts +10 -0
  44. package/.server/server/plugins/engine/models/FormModel.d.ts +59 -0
  45. package/.server/server/plugins/engine/models/RepeatingSummaryViewModel.d.ts +1 -0
  46. package/.server/server/plugins/engine/models/Section.d.ts +1 -0
  47. package/.server/server/plugins/engine/models/SummaryViewModel.d.ts +25 -0
  48. package/.server/server/plugins/engine/models/index.d.ts +2 -0
  49. package/.server/server/plugins/engine/models/types.d.ts +87 -0
  50. package/.server/server/plugins/engine/outputFormatters/human/v1.d.ts +5 -0
  51. package/.server/server/plugins/engine/outputFormatters/index.d.ts +7 -0
  52. package/.server/server/plugins/engine/outputFormatters/machine/v1.d.ts +5 -0
  53. package/.server/server/plugins/engine/outputFormatters/machine/v2.d.ts +5 -0
  54. package/.server/server/plugins/engine/pageControllers/FileUploadPageController.d.ts +61 -0
  55. package/.server/server/plugins/engine/pageControllers/PageController.d.ts +43 -0
  56. package/.server/server/plugins/engine/pageControllers/QuestionPageController.d.ts +58 -0
  57. package/.server/server/plugins/engine/pageControllers/RepeatPageController.d.ts +35 -0
  58. package/.server/server/plugins/engine/pageControllers/StartPageController.d.ts +50 -0
  59. package/.server/server/plugins/engine/pageControllers/StatusPageController.d.ts +12 -0
  60. package/.server/server/plugins/engine/pageControllers/SummaryPageController.d.ts +26 -0
  61. package/.server/server/plugins/engine/pageControllers/TerminalPageController.d.ts +9 -0
  62. package/.server/server/plugins/engine/pageControllers/helpers.d.ts +19 -0
  63. package/.server/server/plugins/engine/pageControllers/index.d.ts +8 -0
  64. package/.server/server/plugins/engine/pageControllers/validationOptions.d.ts +8 -0
  65. package/.server/server/plugins/engine/plugin.d.ts +33 -0
  66. package/.server/server/plugins/engine/referenceNumbers.d.ts +5 -0
  67. package/.server/server/plugins/engine/services/formSubmissionService.d.ts +24 -0
  68. package/.server/server/plugins/engine/services/formsService.d.ts +16 -0
  69. package/.server/server/plugins/engine/services/index.d.ts +3 -0
  70. package/.server/server/plugins/engine/services/localFormsService.d.ts +1 -0
  71. package/.server/server/plugins/engine/services/notifyService.d.ts +5 -0
  72. package/.server/server/plugins/engine/services/uploadService.d.ts +14 -0
  73. package/.server/server/plugins/engine/types.d.ts +256 -0
  74. package/.server/server/plugins/errorPages.d.ts +7 -0
  75. package/.server/server/plugins/nunjucks/context.d.ts +16 -0
  76. package/.server/server/plugins/nunjucks/environment.d.ts +21 -0
  77. package/.server/server/plugins/nunjucks/filters/answer.d.ts +7 -0
  78. package/.server/server/plugins/nunjucks/filters/evaluate.d.ts +8 -0
  79. package/.server/server/plugins/nunjucks/filters/field.d.ts +7 -0
  80. package/.server/server/plugins/nunjucks/filters/highlight.d.ts +7 -0
  81. package/.server/server/plugins/nunjucks/filters/href.d.ts +7 -0
  82. package/.server/server/plugins/nunjucks/filters/index.d.ts +8 -0
  83. package/.server/server/plugins/nunjucks/filters/inspect.d.ts +6 -0
  84. package/.server/server/plugins/nunjucks/filters/page.d.ts +7 -0
  85. package/.server/server/plugins/nunjucks/index.d.ts +3 -0
  86. package/.server/server/plugins/nunjucks/plugin.d.ts +6 -0
  87. package/.server/server/plugins/nunjucks/render.d.ts +21 -0
  88. package/.server/server/plugins/nunjucks/types.d.ts +56 -0
  89. package/.server/server/plugins/pulse.d.ts +11 -0
  90. package/.server/server/plugins/session.d.ts +24 -0
  91. package/.server/server/routes/index.d.ts +1 -0
  92. package/.server/server/routes/public.d.ts +15 -0
  93. package/.server/server/routes/types.d.ts +38 -0
  94. package/.server/server/schemas/index.d.ts +10 -0
  95. package/.server/server/secure-context.d.ts +12 -0
  96. package/.server/server/services/cacheService.d.ts +49 -0
  97. package/.server/server/services/httpService.d.ts +57 -0
  98. package/.server/server/services/index.d.ts +1 -0
  99. package/.server/server/types.d.ts +31 -0
  100. package/.server/server/utils/file-form-service.d.ts +50 -0
  101. package/.server/server/utils/notify.d.ts +17 -0
  102. package/.server/server/utils/secure-context/get-trust-store-certs.d.ts +1 -0
  103. package/.server/server/utils/type-utils.d.ts +3 -0
  104. package/.server/server/utils/utils.d.ts +7 -0
  105. package/package.json +3 -2
@@ -0,0 +1,79 @@
1
+ import { type FileUploadFieldComponent } from '@defra/forms-model';
2
+ import joi, { type ArraySchema } from 'joi';
3
+ import { FormComponent } from '~/src/server/plugins/engine/components/FormComponent.js';
4
+ import { type ErrorMessageTemplateList, type FileState, type FileUpload, type FileUploadMetadata, type FormPayload, type FormState, type FormStateValue, type FormSubmissionError, type FormSubmissionState, type SummaryList, type UploadState, type UploadStatusFileResponse, type UploadStatusResponse } from '~/src/server/plugins/engine/types.js';
5
+ import { type FormQuery } from '~/src/server/routes/types.js';
6
+ export declare const uploadIdSchema: joi.StringSchema<string>;
7
+ export declare const fileSchema: joi.ObjectSchema<FileUpload>;
8
+ export declare const tempFileSchema: joi.ObjectSchema<FileUpload>;
9
+ export declare const formFileSchema: joi.ObjectSchema<FileUpload>;
10
+ export declare const metadataSchema: joi.ObjectSchema<FileUploadMetadata>;
11
+ export declare const tempStatusSchema: joi.ObjectSchema<UploadStatusFileResponse>;
12
+ export declare const formStatusSchema: joi.ObjectSchema<UploadStatusResponse>;
13
+ export declare const itemSchema: joi.ObjectSchema<FileState>;
14
+ export declare const tempItemSchema: joi.ObjectSchema<FileState>;
15
+ export declare const formItemSchema: joi.ObjectSchema<FileState>;
16
+ export declare class FileUploadField extends FormComponent {
17
+ options: FileUploadFieldComponent['options'];
18
+ schema: FileUploadFieldComponent['schema'];
19
+ formSchema: ArraySchema<FileState>;
20
+ stateSchema: ArraySchema<FileState>;
21
+ constructor(def: FileUploadFieldComponent, props: ConstructorParameters<typeof FormComponent>[1]);
22
+ getFormValueFromState(state: FormSubmissionState): UploadState | undefined;
23
+ getFormValue(value?: FormStateValue | FormState): UploadState | undefined;
24
+ getDisplayStringFromState(state: FormSubmissionState): string;
25
+ getContextValueFromState(state: FormSubmissionState): string[] | null;
26
+ getViewModel(payload: FormPayload, errors?: FormSubmissionError[], query?: FormQuery): {
27
+ value: string;
28
+ name: string;
29
+ upload: {
30
+ count: number;
31
+ summaryList: SummaryList;
32
+ };
33
+ label: {
34
+ text: string;
35
+ };
36
+ id: string;
37
+ type?: string;
38
+ hint?: {
39
+ id?: string;
40
+ text: string;
41
+ };
42
+ prefix?: import("./types.js").ComponentText;
43
+ suffix?: import("./types.js").ComponentText;
44
+ classes?: string;
45
+ condition?: string;
46
+ errors?: FormSubmissionError[];
47
+ errorMessage?: {
48
+ text: string;
49
+ };
50
+ summaryHtml?: string;
51
+ html?: string;
52
+ attributes: {
53
+ autocomplete?: string;
54
+ maxlength?: number;
55
+ multiple?: string;
56
+ accept?: string;
57
+ inputmode?: string;
58
+ };
59
+ content?: import("./types.js").Content | import("./types.js").Content[] | string;
60
+ maxlength?: number;
61
+ maxwords?: number;
62
+ rows?: number;
63
+ items?: import("./types.js").ListItem[] | import("./types.js").DateInputItem[];
64
+ fieldset?: {
65
+ attributes?: string | Record<string, string>;
66
+ legend?: import("./types.js").Label;
67
+ };
68
+ formGroup?: {
69
+ classes?: string;
70
+ attributes?: string | Record<string, string>;
71
+ };
72
+ components?: import("./types.js").ComponentViewModel[];
73
+ };
74
+ isValue(value?: FormStateValue | FormState): value is UploadState;
75
+ /**
76
+ * For error preview page that shows all possible errors on a component
77
+ */
78
+ getAllPossibleErrors(): ErrorMessageTemplateList;
79
+ }
@@ -0,0 +1,95 @@
1
+ import { type FormComponentsDef, type Item } from '@defra/forms-model';
2
+ import { ComponentBase } from '~/src/server/plugins/engine/components/ComponentBase.js';
3
+ import { type ErrorMessageTemplateList, type FileState, type FormPayload, type FormState, type FormStateValue, type FormSubmissionError, type FormSubmissionState, type FormValue, type RepeatItemState, type RepeatListState, type UploadState } from '~/src/server/plugins/engine/types.js';
4
+ export declare class FormComponent extends ComponentBase {
5
+ type: FormComponentsDef['type'];
6
+ hint: FormComponentsDef['hint'];
7
+ label: string;
8
+ isFormComponent: boolean;
9
+ constructor(def: FormComponentsDef, props: ConstructorParameters<typeof ComponentBase>[1]);
10
+ get keys(): string[];
11
+ getFormDataFromState(state: FormSubmissionState): FormPayload;
12
+ getFormValueFromState(state: FormSubmissionState): FormValue | FormPayload;
13
+ getFormValue(value?: FormStateValue | FormState): NonNullable<FormStateValue> | undefined;
14
+ getStateFromValidForm(payload: FormPayload): FormState;
15
+ getErrors(errors?: FormSubmissionError[]): FormSubmissionError[] | undefined;
16
+ getFirstError(errors?: FormSubmissionError[]): FormSubmissionError | undefined;
17
+ getViewErrors(errors?: FormSubmissionError[]): FormSubmissionError[] | undefined;
18
+ getViewModel(payload: FormPayload, errors?: FormSubmissionError[]): {
19
+ label: {
20
+ text: string;
21
+ };
22
+ id: string;
23
+ name: string;
24
+ value: FormValue;
25
+ type?: string;
26
+ hint?: {
27
+ id?: string;
28
+ text: string;
29
+ };
30
+ prefix?: import("./types.js").ComponentText;
31
+ suffix?: import("./types.js").ComponentText;
32
+ classes?: string;
33
+ condition?: string;
34
+ errors?: FormSubmissionError[];
35
+ errorMessage?: {
36
+ text: string;
37
+ };
38
+ summaryHtml?: string;
39
+ html?: string;
40
+ attributes: {
41
+ autocomplete?: string;
42
+ maxlength?: number;
43
+ multiple?: string;
44
+ accept?: string;
45
+ inputmode?: string;
46
+ };
47
+ content?: import("./types.js").Content | import("./types.js").Content[] | string;
48
+ maxlength?: number;
49
+ maxwords?: number;
50
+ rows?: number;
51
+ items?: import("./types.js").ListItem[] | import("./types.js").DateInputItem[];
52
+ fieldset?: {
53
+ attributes?: string | Record<string, string>;
54
+ legend?: import("./types.js").Label;
55
+ };
56
+ formGroup?: {
57
+ classes?: string;
58
+ attributes?: string | Record<string, string>;
59
+ };
60
+ components?: import("./types.js").ComponentViewModel[];
61
+ upload?: {
62
+ count: number;
63
+ summaryList: import("~/src/server/plugins/engine/types.js").SummaryList;
64
+ };
65
+ };
66
+ getDisplayStringFromState(state: FormSubmissionState): string;
67
+ getContextValueFromState(state: FormSubmissionState): Item['value'] | Item['value'][] | null;
68
+ isValue(value?: FormStateValue | FormState): value is NonNullable<FormStateValue>;
69
+ isState(value?: FormStateValue | FormState): value is FormState;
70
+ getAllPossibleErrors(): ErrorMessageTemplateList;
71
+ }
72
+ /**
73
+ * Check for form value
74
+ */
75
+ export declare function isFormValue(value?: unknown): value is string | number | boolean;
76
+ /**
77
+ * Check for form state with nested values
78
+ */
79
+ export declare function isFormState(value?: unknown): value is FormState;
80
+ /**
81
+ * Check for repeat list state
82
+ */
83
+ export declare function isRepeatState(value?: unknown): value is RepeatListState;
84
+ /**
85
+ * Check for repeat list value
86
+ */
87
+ export declare function isRepeatValue(value?: unknown): value is RepeatItemState;
88
+ /**
89
+ * Check for upload state
90
+ */
91
+ export declare function isUploadState(value?: unknown): value is UploadState;
92
+ /**
93
+ * Check for upload state value
94
+ */
95
+ export declare function isUploadValue(value?: unknown): value is FileState;
@@ -0,0 +1,53 @@
1
+ import { type HtmlComponent } from '@defra/forms-model';
2
+ import { ComponentBase } from '~/src/server/plugins/engine/components/ComponentBase.js';
3
+ export declare class Html extends ComponentBase {
4
+ options: HtmlComponent['options'];
5
+ content: HtmlComponent['content'];
6
+ constructor(def: HtmlComponent, props: ConstructorParameters<typeof ComponentBase>[1]);
7
+ getViewModel(): {
8
+ content: string;
9
+ label?: import("./types.js").Label;
10
+ type?: string;
11
+ id?: string;
12
+ name?: string;
13
+ value?: import("../types.js").FormValue;
14
+ hint?: {
15
+ id?: string;
16
+ text: string;
17
+ };
18
+ prefix?: import("./types.js").ComponentText;
19
+ suffix?: import("./types.js").ComponentText;
20
+ classes?: string;
21
+ condition?: string;
22
+ errors?: import("../types.js").FormSubmissionError[];
23
+ errorMessage?: {
24
+ text: string;
25
+ };
26
+ summaryHtml?: string;
27
+ html?: string;
28
+ attributes: {
29
+ autocomplete?: string;
30
+ maxlength?: number;
31
+ multiple?: string;
32
+ accept?: string;
33
+ inputmode?: string;
34
+ };
35
+ maxlength?: number;
36
+ maxwords?: number;
37
+ rows?: number;
38
+ items?: import("./types.js").ListItem[] | import("./types.js").DateInputItem[];
39
+ fieldset?: {
40
+ attributes?: string | Record<string, string>;
41
+ legend?: import("./types.js").Label;
42
+ };
43
+ formGroup?: {
44
+ classes?: string;
45
+ attributes?: string | Record<string, string>;
46
+ };
47
+ components?: import("./types.js").ComponentViewModel[];
48
+ upload?: {
49
+ count: number;
50
+ summaryList: import("../types.js").SummaryList;
51
+ };
52
+ };
53
+ }
@@ -0,0 +1,52 @@
1
+ import { type InsetTextComponent } from '@defra/forms-model';
2
+ import { ComponentBase } from '~/src/server/plugins/engine/components/ComponentBase.js';
3
+ export declare class InsetText extends ComponentBase {
4
+ content: InsetTextComponent['content'];
5
+ constructor(def: InsetTextComponent, props: ConstructorParameters<typeof ComponentBase>[1]);
6
+ getViewModel(): {
7
+ content: string;
8
+ label?: import("./types.js").Label;
9
+ type?: string;
10
+ id?: string;
11
+ name?: string;
12
+ value?: import("../types.js").FormValue;
13
+ hint?: {
14
+ id?: string;
15
+ text: string;
16
+ };
17
+ prefix?: import("./types.js").ComponentText;
18
+ suffix?: import("./types.js").ComponentText;
19
+ classes?: string;
20
+ condition?: string;
21
+ errors?: import("../types.js").FormSubmissionError[];
22
+ errorMessage?: {
23
+ text: string;
24
+ };
25
+ summaryHtml?: string;
26
+ html?: string;
27
+ attributes: {
28
+ autocomplete?: string;
29
+ maxlength?: number;
30
+ multiple?: string;
31
+ accept?: string;
32
+ inputmode?: string;
33
+ };
34
+ maxlength?: number;
35
+ maxwords?: number;
36
+ rows?: number;
37
+ items?: import("./types.js").ListItem[] | import("./types.js").DateInputItem[];
38
+ fieldset?: {
39
+ attributes?: string | Record<string, string>;
40
+ legend?: import("./types.js").Label;
41
+ };
42
+ formGroup?: {
43
+ classes?: string;
44
+ attributes?: string | Record<string, string>;
45
+ };
46
+ components?: import("./types.js").ComponentViewModel[];
47
+ upload?: {
48
+ count: number;
49
+ summaryList: import("../types.js").SummaryList;
50
+ };
51
+ };
52
+ }
@@ -0,0 +1,56 @@
1
+ import { type Item, type List as ListType, type ListComponent } from '@defra/forms-model';
2
+ import { ComponentBase } from '~/src/server/plugins/engine/components/ComponentBase.js';
3
+ import { type ListItem } from '~/src/server/plugins/engine/components/types.js';
4
+ export declare class List extends ComponentBase {
5
+ options: ListComponent['options'];
6
+ hint: ListComponent['hint'];
7
+ list?: ListType;
8
+ get items(): Item[];
9
+ constructor(def: ListComponent, props: ConstructorParameters<typeof ComponentBase>[1]);
10
+ getViewModel(): {
11
+ type: string | undefined;
12
+ classes: string | undefined;
13
+ content: import("~/src/server/plugins/engine/components/types.js").Content;
14
+ items: ListItem[];
15
+ label?: import("~/src/server/plugins/engine/components/types.js").Label;
16
+ id?: string;
17
+ name?: string;
18
+ value?: import("../types.js").FormValue;
19
+ hint?: {
20
+ id?: string;
21
+ text: string;
22
+ };
23
+ prefix?: import("~/src/server/plugins/engine/components/types.js").ComponentText;
24
+ suffix?: import("~/src/server/plugins/engine/components/types.js").ComponentText;
25
+ condition?: string;
26
+ errors?: import("../types.js").FormSubmissionError[];
27
+ errorMessage?: {
28
+ text: string;
29
+ };
30
+ summaryHtml?: string;
31
+ html?: string;
32
+ attributes: {
33
+ autocomplete?: string;
34
+ maxlength?: number;
35
+ multiple?: string;
36
+ accept?: string;
37
+ inputmode?: string;
38
+ };
39
+ maxlength?: number;
40
+ maxwords?: number;
41
+ rows?: number;
42
+ fieldset?: {
43
+ attributes?: string | Record<string, string>;
44
+ legend?: import("~/src/server/plugins/engine/components/types.js").Label;
45
+ };
46
+ formGroup?: {
47
+ classes?: string;
48
+ attributes?: string | Record<string, string>;
49
+ };
50
+ components?: import("~/src/server/plugins/engine/components/types.js").ComponentViewModel[];
51
+ upload?: {
52
+ count: number;
53
+ summaryList: import("../types.js").SummaryList;
54
+ };
55
+ };
56
+ }
@@ -0,0 +1,71 @@
1
+ import { type Item, type List, type ListComponentsDef, type SelectionComponentsDef, type YesNoFieldComponent } from '@defra/forms-model';
2
+ import { type ArraySchema, type BooleanSchema, type NumberSchema, type StringSchema } from 'joi';
3
+ import { FormComponent } from '~/src/server/plugins/engine/components/FormComponent.js';
4
+ import { type ListItem } from '~/src/server/plugins/engine/components/types.js';
5
+ import { type ErrorMessageTemplateList, type FormPayload, type FormSubmissionError, type FormSubmissionState } from '~/src/server/plugins/engine/types.js';
6
+ export declare class ListFormComponent extends FormComponent {
7
+ options: Extract<SelectionComponentsDef, {
8
+ options: object;
9
+ }>['options'];
10
+ formSchema: ArraySchema<string> | ArraySchema<number> | BooleanSchema<string> | NumberSchema<string> | NumberSchema | StringSchema;
11
+ stateSchema: ArraySchema<string> | ArraySchema<number> | BooleanSchema<string> | NumberSchema<string> | NumberSchema | StringSchema;
12
+ list?: List;
13
+ listType: List['type'];
14
+ get items(): Item[];
15
+ get values(): Item['value'][];
16
+ constructor(def: SelectionComponentsDef | (YesNoFieldComponent & Pick<ListComponentsDef, 'list'>), props: ConstructorParameters<typeof FormComponent>[1]);
17
+ getFormValueFromState(state: FormSubmissionState): Item['value'] | Item['value'][] | undefined;
18
+ getDisplayStringFromState(state: FormSubmissionState): string;
19
+ getViewModel(payload: FormPayload, errors?: FormSubmissionError[]): {
20
+ items: ListItem[];
21
+ label: {
22
+ text: string;
23
+ };
24
+ id: string;
25
+ name: string;
26
+ value: import("~/src/server/plugins/engine/types.js").FormValue;
27
+ type?: string;
28
+ hint?: {
29
+ id?: string;
30
+ text: string;
31
+ };
32
+ prefix?: import("~/src/server/plugins/engine/components/types.js").ComponentText;
33
+ suffix?: import("~/src/server/plugins/engine/components/types.js").ComponentText;
34
+ classes?: string;
35
+ condition?: string;
36
+ errors?: FormSubmissionError[];
37
+ errorMessage?: {
38
+ text: string;
39
+ };
40
+ summaryHtml?: string;
41
+ html?: string;
42
+ attributes: {
43
+ autocomplete?: string;
44
+ maxlength?: number;
45
+ multiple?: string;
46
+ accept?: string;
47
+ inputmode?: string;
48
+ };
49
+ content?: import("~/src/server/plugins/engine/components/types.js").Content | import("~/src/server/plugins/engine/components/types.js").Content[] | string;
50
+ maxlength?: number;
51
+ maxwords?: number;
52
+ rows?: number;
53
+ fieldset?: {
54
+ attributes?: string | Record<string, string>;
55
+ legend?: import("~/src/server/plugins/engine/components/types.js").Label;
56
+ };
57
+ formGroup?: {
58
+ classes?: string;
59
+ attributes?: string | Record<string, string>;
60
+ };
61
+ components?: import("~/src/server/plugins/engine/components/types.js").ComponentViewModel[];
62
+ upload?: {
63
+ count: number;
64
+ summaryList: import("~/src/server/plugins/engine/types.js").SummaryList;
65
+ };
66
+ };
67
+ /**
68
+ * For error preview page that shows all possible errors on a component
69
+ */
70
+ getAllPossibleErrors(): ErrorMessageTemplateList;
71
+ }
@@ -0,0 +1,53 @@
1
+ import { type MarkdownComponent } from '@defra/forms-model';
2
+ import { ComponentBase } from '~/src/server/plugins/engine/components/ComponentBase.js';
3
+ export declare class Markdown extends ComponentBase {
4
+ options: MarkdownComponent['options'];
5
+ content: MarkdownComponent['content'];
6
+ constructor(def: MarkdownComponent, props: ConstructorParameters<typeof ComponentBase>[1]);
7
+ getViewModel(): {
8
+ content: string;
9
+ label?: import("./types.js").Label;
10
+ type?: string;
11
+ id?: string;
12
+ name?: string;
13
+ value?: import("../types.js").FormValue;
14
+ hint?: {
15
+ id?: string;
16
+ text: string;
17
+ };
18
+ prefix?: import("./types.js").ComponentText;
19
+ suffix?: import("./types.js").ComponentText;
20
+ classes?: string;
21
+ condition?: string;
22
+ errors?: import("../types.js").FormSubmissionError[];
23
+ errorMessage?: {
24
+ text: string;
25
+ };
26
+ summaryHtml?: string;
27
+ html?: string;
28
+ attributes: {
29
+ autocomplete?: string;
30
+ maxlength?: number;
31
+ multiple?: string;
32
+ accept?: string;
33
+ inputmode?: string;
34
+ };
35
+ maxlength?: number;
36
+ maxwords?: number;
37
+ rows?: number;
38
+ items?: import("./types.js").ListItem[] | import("./types.js").DateInputItem[];
39
+ fieldset?: {
40
+ attributes?: string | Record<string, string>;
41
+ legend?: import("./types.js").Label;
42
+ };
43
+ formGroup?: {
44
+ classes?: string;
45
+ attributes?: string | Record<string, string>;
46
+ };
47
+ components?: import("./types.js").ComponentViewModel[];
48
+ upload?: {
49
+ count: number;
50
+ summaryList: import("../types.js").SummaryList;
51
+ };
52
+ };
53
+ }
@@ -0,0 +1,75 @@
1
+ import { type MonthYearFieldComponent } from '@defra/forms-model';
2
+ import { type CustomValidator, type ObjectSchema } from 'joi';
3
+ import { ComponentCollection } from '~/src/server/plugins/engine/components/ComponentCollection.js';
4
+ import { FormComponent } from '~/src/server/plugins/engine/components/FormComponent.js';
5
+ import { type DateInputItem } from '~/src/server/plugins/engine/components/types.js';
6
+ import { type ErrorMessageTemplateList, type FormPayload, type FormState, type FormStateValue, type FormSubmissionError, type FormSubmissionState } from '~/src/server/plugins/engine/types.js';
7
+ export declare class MonthYearField extends FormComponent {
8
+ options: MonthYearFieldComponent['options'];
9
+ formSchema: ObjectSchema<FormPayload>;
10
+ stateSchema: ObjectSchema<FormState>;
11
+ collection: ComponentCollection;
12
+ constructor(def: MonthYearFieldComponent, props: ConstructorParameters<typeof FormComponent>[1]);
13
+ getFormValueFromState(state: FormSubmissionState): MonthYearState | undefined;
14
+ getDisplayStringFromState(state: FormSubmissionState): string;
15
+ getContextValueFromState(state: FormSubmissionState): string | null;
16
+ getViewModel(payload: FormPayload, errors?: FormSubmissionError[]): {
17
+ fieldset: {
18
+ attributes?: string | Record<string, string>;
19
+ legend?: import("~/src/server/plugins/engine/components/types.js").Label;
20
+ };
21
+ items: DateInputItem[];
22
+ label: {
23
+ text: string;
24
+ };
25
+ id: string;
26
+ name: string;
27
+ value: import("~/src/server/plugins/engine/types.js").FormValue;
28
+ type?: string;
29
+ hint?: {
30
+ id?: string;
31
+ text: string;
32
+ };
33
+ prefix?: import("~/src/server/plugins/engine/components/types.js").ComponentText;
34
+ suffix?: import("~/src/server/plugins/engine/components/types.js").ComponentText;
35
+ classes?: string;
36
+ condition?: string;
37
+ errors?: FormSubmissionError[];
38
+ errorMessage?: {
39
+ text: string;
40
+ };
41
+ summaryHtml?: string;
42
+ html?: string;
43
+ attributes: {
44
+ autocomplete?: string;
45
+ maxlength?: number;
46
+ multiple?: string;
47
+ accept?: string;
48
+ inputmode?: string;
49
+ };
50
+ content?: import("~/src/server/plugins/engine/components/types.js").Content | import("~/src/server/plugins/engine/components/types.js").Content[] | string;
51
+ maxlength?: number;
52
+ maxwords?: number;
53
+ rows?: number;
54
+ formGroup?: {
55
+ classes?: string;
56
+ attributes?: string | Record<string, string>;
57
+ };
58
+ components?: import("~/src/server/plugins/engine/components/types.js").ComponentViewModel[];
59
+ upload?: {
60
+ count: number;
61
+ summaryList: import("~/src/server/plugins/engine/types.js").SummaryList;
62
+ };
63
+ };
64
+ isState(value?: FormStateValue | FormState): value is MonthYearState;
65
+ /**
66
+ * For error preview page that shows all possible errors on a component
67
+ */
68
+ getAllPossibleErrors(): ErrorMessageTemplateList;
69
+ static isMonthYear(value?: FormStateValue | FormState): value is MonthYearState;
70
+ }
71
+ export interface MonthYearState extends Record<string, number> {
72
+ month: number;
73
+ year: number;
74
+ }
75
+ export declare function getValidatorMonthYear(component: MonthYearField): CustomValidator;
@@ -0,0 +1,67 @@
1
+ import { type MultilineTextFieldComponent } from '@defra/forms-model';
2
+ import { type StringSchema } from 'joi';
3
+ import { type ComponentBase } from '~/src/server/plugins/engine/components/ComponentBase.js';
4
+ import { FormComponent } from '~/src/server/plugins/engine/components/FormComponent.js';
5
+ import { type ErrorMessageTemplateList, type FormPayload, type FormSubmissionError } from '~/src/server/plugins/engine/types.js';
6
+ export declare class MultilineTextField extends FormComponent {
7
+ options: MultilineTextFieldComponent['options'];
8
+ schema: MultilineTextFieldComponent['schema'];
9
+ formSchema: StringSchema;
10
+ stateSchema: StringSchema;
11
+ isCharacterOrWordCount: boolean;
12
+ constructor(def: MultilineTextFieldComponent, props: ConstructorParameters<typeof ComponentBase>[1]);
13
+ getViewModel(payload: FormPayload, errors?: FormSubmissionError[]): {
14
+ isCharacterOrWordCount: boolean;
15
+ maxlength: number | undefined;
16
+ maxwords: number | undefined;
17
+ rows: number | undefined;
18
+ label: {
19
+ text: string;
20
+ };
21
+ id: string;
22
+ name: string;
23
+ value: import("~/src/server/plugins/engine/types.js").FormValue;
24
+ type?: string;
25
+ hint?: {
26
+ id?: string;
27
+ text: string;
28
+ };
29
+ prefix?: import("./types.js").ComponentText;
30
+ suffix?: import("./types.js").ComponentText;
31
+ classes?: string;
32
+ condition?: string;
33
+ errors?: FormSubmissionError[];
34
+ errorMessage?: {
35
+ text: string;
36
+ };
37
+ summaryHtml?: string;
38
+ html?: string;
39
+ attributes: {
40
+ autocomplete?: string;
41
+ maxlength?: number;
42
+ multiple?: string;
43
+ accept?: string;
44
+ inputmode?: string;
45
+ };
46
+ content?: import("./types.js").Content | import("./types.js").Content[] | string;
47
+ items?: import("./types.js").ListItem[] | import("./types.js").DateInputItem[];
48
+ fieldset?: {
49
+ attributes?: string | Record<string, string>;
50
+ legend?: import("./types.js").Label;
51
+ };
52
+ formGroup?: {
53
+ classes?: string;
54
+ attributes?: string | Record<string, string>;
55
+ };
56
+ components?: import("./types.js").ComponentViewModel[];
57
+ upload?: {
58
+ count: number;
59
+ summaryList: import("~/src/server/plugins/engine/types.js").SummaryList;
60
+ };
61
+ };
62
+ buildMinMaxText(min?: number, max?: number): string;
63
+ /**
64
+ * For error preview page that shows all possible errors on a component
65
+ */
66
+ getAllPossibleErrors(): ErrorMessageTemplateList;
67
+ }
@@ -0,0 +1,68 @@
1
+ import { type NumberFieldComponent } from '@defra/forms-model';
2
+ import joi, { type NumberSchema } from 'joi';
3
+ import { FormComponent } from '~/src/server/plugins/engine/components/FormComponent.js';
4
+ import { type ErrorMessageTemplateList, type FormPayload, type FormState, type FormStateValue, type FormSubmissionError, type FormSubmissionState } from '~/src/server/plugins/engine/types.js';
5
+ export declare class NumberField extends FormComponent {
6
+ options: NumberFieldComponent['options'];
7
+ schema: NumberFieldComponent['schema'];
8
+ formSchema: NumberSchema;
9
+ stateSchema: NumberSchema;
10
+ constructor(def: NumberFieldComponent, props: ConstructorParameters<typeof FormComponent>[1]);
11
+ getFormValueFromState(state: FormSubmissionState): number | undefined;
12
+ getFormValue(value?: FormStateValue | FormState): number | undefined;
13
+ getViewModel(payload: FormPayload, errors?: FormSubmissionError[]): {
14
+ attributes: {
15
+ autocomplete?: string;
16
+ maxlength?: number;
17
+ multiple?: string;
18
+ accept?: string;
19
+ inputmode?: string;
20
+ };
21
+ prefix: import("./types.js").ComponentText | undefined;
22
+ suffix: import("./types.js").ComponentText | undefined;
23
+ value: string | number | boolean | undefined;
24
+ label: {
25
+ text: string;
26
+ };
27
+ id: string;
28
+ name: string;
29
+ type?: string;
30
+ hint?: {
31
+ id?: string;
32
+ text: string;
33
+ };
34
+ classes?: string;
35
+ condition?: string;
36
+ errors?: FormSubmissionError[];
37
+ errorMessage?: {
38
+ text: string;
39
+ };
40
+ summaryHtml?: string;
41
+ html?: string;
42
+ content?: import("./types.js").Content | import("./types.js").Content[] | string;
43
+ maxlength?: number;
44
+ maxwords?: number;
45
+ rows?: number;
46
+ items?: import("./types.js").ListItem[] | import("./types.js").DateInputItem[];
47
+ fieldset?: {
48
+ attributes?: string | Record<string, string>;
49
+ legend?: import("./types.js").Label;
50
+ };
51
+ formGroup?: {
52
+ classes?: string;
53
+ attributes?: string | Record<string, string>;
54
+ };
55
+ components?: import("./types.js").ComponentViewModel[];
56
+ upload?: {
57
+ count: number;
58
+ summaryList: import("~/src/server/plugins/engine/types.js").SummaryList;
59
+ };
60
+ };
61
+ isValue(value?: FormStateValue | FormState): value is number;
62
+ /**
63
+ * For error preview page that shows all possible errors on a component
64
+ */
65
+ getAllPossibleErrors(): ErrorMessageTemplateList;
66
+ static isNumber(value?: FormStateValue | FormState): value is number;
67
+ }
68
+ export declare function getValidatorPrecision(component: NumberField): joi.CustomValidator;