@defra/forms-model 3.0.434 → 3.0.435
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/module/form/form-editor/index.js +4 -2
- package/dist/module/form/form-editor/index.js.map +1 -1
- package/dist/module/form/form-editor/types.js.map +1 -1
- package/dist/types/form/form-editor/index.d.ts +4 -2
- package/dist/types/form/form-editor/index.d.ts.map +1 -1
- package/dist/types/form/form-editor/types.d.ts +18 -9
- package/dist/types/form/form-editor/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/form/form-editor/index.ts +9 -2
- package/src/form/form-editor/types.ts +20 -8
@@ -16,6 +16,7 @@ export const nameSchema = Joi.string().trim().required().description('Unique ide
|
|
16
16
|
export const questionSchema = Joi.string().trim().required().description('The question text displayed to the user');
|
17
17
|
export const hintTextSchema = Joi.string().trim().optional().allow('').description('Optional guidance text displayed below the question');
|
18
18
|
export const questionOptionalSchema = Joi.string().trim().optional().valid('', 'true').description('Indicates whether a question is optional. Empty string or "true" values are accepted.');
|
19
|
+
export const listForQuestionSchema = Joi.string().trim().optional().allow('').description('Unique identifier for the list used by the field');
|
19
20
|
export const exactFilesSchema = Joi.number().empty('').integer().min(1).max(25).description('Specifies the exact number of files required for upload. Must be between 1 and 25.');
|
20
21
|
export const minFilesSchema = Joi.number().empty('').integer().min(0).max(25).description('Minimum number of files required for upload. Must be between 0 and 25.');
|
21
22
|
export const maxFilesSchema = Joi.number().empty('').integer().min(1).max(25).description('Maximum number of files allowed for upload. Must be between 1 and 25.');
|
@@ -25,7 +26,7 @@ export const imageTypesSchema = Joi.array().items(Joi.string()).single().empty(n
|
|
25
26
|
export const tabularDataTypesSchema = Joi.array().items(Joi.string()).single().empty(null).default([]);
|
26
27
|
export const enhancedActionSchema = Joi.string().trim().optional().allow('').description('Action field that can include enhanced functionality');
|
27
28
|
export const radioIdSchema = Joi.string().trim().optional().allow('').description('Unique identifier for radio options');
|
28
|
-
export const
|
29
|
+
export const radioTextSchema = Joi.string().trim().required().description('The visible text shown next to radio options');
|
29
30
|
export const radioHintSchema = Joi.string().trim().optional().allow('').description('Optional hint text displayed with radio buttons to provide additional guidance');
|
30
31
|
export const radioValueSchema = Joi.string().trim().optional().allow('').description('Array of allowed tabular data types. Can be provided as a single value or an array.');
|
31
32
|
export const shortDescriptionSchema = Joi.string().trim().required().description('Brief description of the question for internal use');
|
@@ -161,6 +162,7 @@ export const questionDetailsFullSchema = {
|
|
161
162
|
fileTypesSchema,
|
162
163
|
hintTextSchema,
|
163
164
|
imageTypesSchema,
|
165
|
+
listForQuestionSchema,
|
164
166
|
maxFilesSchema,
|
165
167
|
maxFutureSchema,
|
166
168
|
maxLengthSchema,
|
@@ -177,7 +179,7 @@ export const questionDetailsFullSchema = {
|
|
177
179
|
questionTypeFullSchema,
|
178
180
|
radioHintSchema,
|
179
181
|
radioIdSchema,
|
180
|
-
|
182
|
+
radioTextSchema,
|
181
183
|
radioValueSchema,
|
182
184
|
regexSchema,
|
183
185
|
rowsSchema,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","names":["Joi","ComponentType","QuestionTypeSubGroup","pageTypeSchema","string","required","valid","description","questionTypeSchema","WrittenAnswerSubGroup","DateSubGroup","UkAddressField","TelephoneNumberField","FileUploadField","EmailAddressField","ListSubGroup","YesNoField","CheckboxesField","RadiosField","AutocompleteField","questionTypeFullSchema","TextField","MultilineTextField","NumberField","DatePartsField","MonthYearField","writtenAnswerSubSchema","dateSubSchema","listSubSchema","nameSchema","trim","questionSchema","hintTextSchema","optional","allow","questionOptionalSchema","exactFilesSchema","number","empty","integer","min","max","minFilesSchema","maxFilesSchema","fileTypesSchema","array","items","single","default","documentTypesSchema","imageTypesSchema","tabularDataTypesSchema","enhancedActionSchema","radioIdSchema","radioLabelSchema","radioHintSchema","radioValueSchema","shortDescriptionSchema","pageHeadingAndGuidanceSchema","pageHeadingSchema","guidanceTextSchema","needDeclarationSchema","declarationTextSchema","minSchema","maxSchema","minLengthSchema","maxLengthSchema","maxFutureSchema","maxPastSchema","precisionSchema","prefixSchema","regexSchema","rowsSchema","suffixSchema","classesSchema","customValidator","extend","joi","type","base","messages","coerce","from","method","value","helpers","rowSeparatorRule","schema","$_getRule","colSeparatorRule","keysRule","rowSeparator","args","rows","split","map","v","filter","Boolean","colSeparator","keys","coercedValue","row","reduce","acc","col","idx","_err","console","error","errors","rules","convert","alias","$_addRule","name","ref","assert","RegExp","message","Array","isArray","every","k","autoCompleteOptionsSchema","dsv","object","text","disallow","parent","questionDetailsFullSchema","formEditorInputPageKeys","pageType","questionType","formEditorInputPageSchema","formEditorInputheckAnswersSettingsKeys","declarationText","formEditorInputCheckAnswersSettingSchema","formEditorInputQuestionKeys","question","shortDescription","hintText","questionOptional","formEditorInputQuestionSchema","formEditorInputPageSettingsKeys","pageHeadingAndGuidance","pageHeading","guidanceText","formEditorInputPageSettingsSchema"],"sources":["../../../../src/form/form-editor/index.ts"],"sourcesContent":["import Joi, { type ArraySchema, type GetRuleOptions } from 'joi'\n\nimport { ComponentType } from '~/src/components/enums.js'\nimport {\n type FormEditorInputCheckAnswersSettings,\n type FormEditorInputPage,\n type FormEditorInputPageSettings,\n type FormEditorInputQuestion\n} from '~/src/form/form-editor/types.js'\n\nexport enum QuestionTypeSubGroup {\n WrittenAnswerSubGroup = 'writtenAnswerSub',\n DateSubGroup = 'dateSub',\n ListSubGroup = 'listSub'\n}\n\nexport const pageTypeSchema = Joi.string()\n .required()\n .valid('question', 'guidance')\n .description('Type of page - either a question page or guidance page')\n\nexport const questionTypeSchema = Joi.string()\n .required()\n .valid(\n QuestionTypeSubGroup.WrittenAnswerSubGroup,\n QuestionTypeSubGroup.DateSubGroup,\n ComponentType.UkAddressField,\n ComponentType.TelephoneNumberField,\n ComponentType.FileUploadField,\n ComponentType.EmailAddressField,\n QuestionTypeSubGroup.ListSubGroup,\n ComponentType.YesNoField,\n ComponentType.CheckboxesField,\n ComponentType.RadiosField,\n ComponentType.AutocompleteField\n )\n .description('The high-level type of question, including grouped types')\n\nexport const questionTypeFullSchema = Joi.string()\n .required()\n .valid(\n ComponentType.TextField,\n ComponentType.MultilineTextField,\n ComponentType.NumberField,\n ComponentType.DatePartsField,\n ComponentType.MonthYearField,\n ComponentType.UkAddressField,\n ComponentType.TelephoneNumberField,\n ComponentType.FileUploadField,\n ComponentType.EmailAddressField,\n ComponentType.YesNoField,\n ComponentType.CheckboxesField,\n ComponentType.RadiosField,\n ComponentType.AutocompleteField\n )\n .description('The specific component type to use for this question')\n\nexport const writtenAnswerSubSchema = Joi.string()\n .required()\n .valid(\n ComponentType.TextField,\n ComponentType.MultilineTextField,\n ComponentType.NumberField\n )\n .description('Subtype for written answer questions')\n\nexport const dateSubSchema = Joi.string()\n .required()\n .valid(ComponentType.DatePartsField, ComponentType.MonthYearField)\nexport const listSubSchema = Joi.string()\n .required()\n .valid(\n ComponentType.YesNoField,\n ComponentType.CheckboxesField,\n ComponentType.RadiosField,\n ComponentType.AutocompleteField\n )\n .description('Subtype for date-related questions')\n\nexport const nameSchema = Joi.string()\n .trim()\n .required()\n .description('Unique identifier for the field')\n\nexport const questionSchema = Joi.string()\n .trim()\n .required()\n .description('The question text displayed to the user')\n\nexport const hintTextSchema = Joi.string()\n .trim()\n .optional()\n .allow('')\n .description('Optional guidance text displayed below the question')\n\nexport const questionOptionalSchema = Joi.string()\n .trim()\n .optional()\n .valid('', 'true')\n .description(\n 'Indicates whether a question is optional. Empty string or \"true\" values are accepted.'\n )\n\nexport const exactFilesSchema = Joi.number()\n .empty('')\n .integer()\n .min(1)\n .max(25)\n .description(\n 'Specifies the exact number of files required for upload. Must be between 1 and 25.'\n )\n\nexport const minFilesSchema = Joi.number()\n .empty('')\n .integer()\n .min(0)\n .max(25)\n .description(\n 'Minimum number of files required for upload. Must be between 0 and 25.'\n )\n\nexport const maxFilesSchema = Joi.number()\n .empty('')\n .integer()\n .min(1)\n .max(25)\n .description(\n 'Maximum number of files allowed for upload. Must be between 1 and 25.'\n )\n\nexport const fileTypesSchema = Joi.array()\n .items(Joi.string())\n .single()\n .empty(null)\n .default([])\n .description(\n 'Array of allowed file types. Can be provided as a single value or an array.'\n )\n\nexport const documentTypesSchema = Joi.array()\n .items(Joi.string())\n .single()\n .empty(null)\n .default([])\n .description(\n 'Array of allowed document types. Can be provided as a single value or an array.'\n )\n\nexport const imageTypesSchema = Joi.array()\n .items(Joi.string())\n .single()\n .empty(null)\n .default([])\n .description(\n 'Array of allowed image types. Can be provided as a single value or an array.'\n )\n\nexport const tabularDataTypesSchema = Joi.array()\n .items(Joi.string())\n .single()\n .empty(null)\n .default([])\nexport const enhancedActionSchema = Joi.string()\n .trim()\n .optional()\n .allow('')\n .description('Action field that can include enhanced functionality')\n\nexport const radioIdSchema = Joi.string()\n .trim()\n .optional()\n .allow('')\n .description('Unique identifier for radio options')\n\nexport const radioLabelSchema = Joi.string()\n .trim()\n .required()\n .description('The visible text shown next to radio options')\n\nexport const radioHintSchema = Joi.string()\n .trim()\n .optional()\n .allow('')\n .description(\n 'Optional hint text displayed with radio buttons to provide additional guidance'\n )\n\nexport const radioValueSchema = Joi.string()\n .trim()\n .optional()\n .allow('')\n .description(\n 'Array of allowed tabular data types. Can be provided as a single value or an array.'\n )\n\nexport const shortDescriptionSchema = Joi.string()\n .trim()\n .required()\n .description('Brief description of the question for internal use')\n\nexport const pageHeadingAndGuidanceSchema = Joi.string()\n .trim()\n .optional()\n .description('Combined heading and guidance for the page')\n\nexport const pageHeadingSchema = Joi.string()\n .trim()\n .required()\n .description('Main heading displayed at the top of the page')\n\nexport const guidanceTextSchema = Joi.string()\n .trim()\n .description('Guidance text to assist users in completing the page')\n\nexport const needDeclarationSchema = Joi.string()\n .trim()\n .required()\n .description('Whether a declaration is needed')\n\nexport const declarationTextSchema = Joi.string()\n .trim()\n .required()\n .description('Text of the declaration that users must agree to')\n\nexport const minSchema = Joi.number()\n .empty('')\n .integer()\n .description('Minimum value for numeric inputs')\n\nexport const maxSchema = Joi.number()\n .empty('')\n .integer()\n .description('Maximum value for numeric inputs')\n\nexport const minLengthSchema = Joi.number()\n .empty('')\n .integer()\n .min(1)\n .description('Minimum character length for text inputs')\n\nexport const maxLengthSchema = Joi.number()\n .empty('')\n .integer()\n .min(1)\n .description('Maximum character length for text inputs')\n\nexport const maxFutureSchema = Joi.number()\n .empty('')\n .integer()\n .min(1)\n .description('Maximum days in the future allowed for date inputs')\n\nexport const maxPastSchema = Joi.number()\n .empty('')\n .integer()\n .min(1)\n .description('Maximum days in the past allowed for date inputs')\n\nexport const precisionSchema = Joi.number()\n .empty('')\n .integer()\n .min(1)\n .description('Decimal precision for numeric inputs')\n\nexport const prefixSchema = Joi.string()\n .trim()\n .optional()\n .allow('')\n .description('Text to display before the input (e.g., £)')\n\nexport const regexSchema = Joi.string()\n .optional()\n .allow('')\n .description('Regular expression pattern for validation')\n\nexport const rowsSchema = Joi.number()\n .empty('')\n .integer()\n .min(1)\n .description('Number of rows for multiline text fields')\n\nexport const suffixSchema = Joi.string()\n .trim()\n .optional()\n .allow('')\n .description('Text to display after the input (e.g., kg)')\n\nexport const classesSchema = Joi.string()\n .trim()\n .optional()\n .allow('')\n .description('Custom CSS classes to apply to the component')\n\ntype GenericRuleOptions<K extends string, T> = Omit<GetRuleOptions, 'args'> & {\n args: Record<K, T>\n}\n\ninterface DSLSchema<TSchema = Record<string, unknown>[]>\n extends ArraySchema<TSchema> {\n rowSeparator: (rowSep: string | RegExp) => DSLSchema<TSchema>\n row: (rowSep: string | RegExp) => DSLSchema<TSchema>\n colSeparator: (colSep: string | RegExp) => DSLSchema<TSchema>\n col: (colSep: string | RegExp) => DSLSchema<TSchema>\n keys: (keys: string[]) => DSLSchema<TSchema>\n}\n\ninterface CustomValidator extends Joi.Root {\n dsv<TSchema>(): DSLSchema<TSchema>\n}\n\nexport const customValidator = Joi.extend((joi: Joi.Root) => {\n return {\n type: 'dsv',\n base: joi.array(),\n messages: {\n 'dsv.invalid': 'Invalid parse string'\n },\n coerce: {\n from: 'string',\n method(value: string, helpers) {\n try {\n // Only called when prefs.convert is true\n // Rules\n const rowSeparatorRule = helpers.schema.$_getRule('rowSeparator') as\n | undefined\n | GenericRuleOptions<'rowSeparator', string | RegExp>\n const colSeparatorRule = helpers.schema.$_getRule('colSeparator') as\n | undefined\n | GenericRuleOptions<'colSeparator', string | RegExp>\n const keysRule = helpers.schema.$_getRule('keys') as\n | undefined\n | GenericRuleOptions<'keys', string[]>\n\n // Rows\n const rowSeparator = rowSeparatorRule?.args.rowSeparator ?? /\\r?\\n/\n const rows = value\n .split(rowSeparator)\n .map((v) => v.trim())\n .filter(Boolean)\n\n // Columns\n const colSeparator = colSeparatorRule?.args.colSeparator ?? ','\n const keys = keysRule?.args.keys ?? ['key', 'value']\n\n const coercedValue = rows.map((row) => {\n return row\n .split(colSeparator)\n .reduce<Record<string, string>>((acc, col, idx) => {\n return {\n ...acc,\n [keys[idx]]: col.trim()\n }\n }, {})\n })\n return { value: coercedValue }\n } catch (_err) {\n // eslint-disable-next-line no-console\n console.error(_err)\n return { value, errors: [helpers.error('dsv.invalid')] }\n }\n }\n },\n rules: {\n rowSeparator: {\n convert: true,\n alias: 'row',\n method(rowSeparator: string) {\n return this.$_addRule({\n name: 'rowSeparator',\n args: { rowSeparator }\n })\n },\n args: [\n {\n name: 'rowSeparator',\n ref: true,\n assert: (value) =>\n typeof value === 'string' || value instanceof RegExp,\n message: 'must be a string or regex'\n }\n ]\n },\n colSeparator: {\n convert: true,\n alias: 'col',\n method(colSeparator: string) {\n return this.$_addRule({\n name: 'colSeparator',\n args: { colSeparator }\n })\n },\n args: [\n {\n name: 'colSeparator',\n ref: true,\n assert: (value) =>\n typeof value === 'string' || value instanceof RegExp,\n message: 'must be a string or regex'\n }\n ]\n },\n keys: {\n convert: true,\n method(keys: string[]) {\n return this.$_addRule({ name: 'keys', args: { keys } })\n },\n args: [\n {\n name: 'keys',\n ref: true,\n assert: (value) =>\n Array.isArray(value) && value.every((k) => typeof k === 'string'),\n message: 'must be an array of strings'\n }\n ]\n }\n }\n }\n}) as CustomValidator\n\nexport const autoCompleteOptionsSchema = customValidator\n .dsv<{ text: string; value: string }>()\n .row(/\\r?\\n/)\n .col(':')\n .keys(['text', 'value'])\n .items(\n customValidator.object({\n text: customValidator.string().min(1).disallow('').required(),\n value: customValidator\n .string()\n .default((parent: { text: string; value?: string }) => parent.text)\n .min(1)\n .disallow('')\n })\n )\n .min(1)\n .required()\n\nexport const questionDetailsFullSchema = {\n autoCompleteOptionsSchema,\n classesSchema,\n documentTypesSchema,\n enhancedActionSchema,\n exactFilesSchema,\n fileTypesSchema,\n hintTextSchema,\n imageTypesSchema,\n maxFilesSchema,\n maxFutureSchema,\n maxLengthSchema,\n maxPastSchema,\n maxSchema,\n minFilesSchema,\n minLengthSchema,\n minSchema,\n nameSchema,\n precisionSchema,\n prefixSchema,\n questionOptionalSchema,\n questionSchema,\n questionTypeFullSchema,\n radioHintSchema,\n radioIdSchema,\n radioLabelSchema,\n radioValueSchema,\n regexSchema,\n rowsSchema,\n shortDescriptionSchema,\n suffixSchema,\n tabularDataTypesSchema\n}\n\nexport const formEditorInputPageKeys = {\n pageType: pageTypeSchema,\n questionType: questionTypeSchema\n}\n\n/**\n * Joi schema for `FormEditorInputPage` interface\n * @see {@link FormEditorInputPage}\n */\nexport const formEditorInputPageSchema = Joi.object<FormEditorInputPage>()\n .keys(formEditorInputPageKeys)\n .required()\n .description('Input schema for creating a new page in the form editor')\n\nexport const formEditorInputheckAnswersSettingsKeys = {\n declarationText: shortDescriptionSchema\n}\n\n/**\n * Joi schema for `FormEditorInputCheckAnswersSettings` interface\n * @see {@link FormEditorInputCheckAnswersSettings}\n */\nexport const formEditorInputCheckAnswersSettingSchema =\n Joi.object<FormEditorInputCheckAnswersSettings>()\n .keys(formEditorInputheckAnswersSettingsKeys)\n .required()\n .description('Configuration for the check-answers page')\n\nexport const formEditorInputQuestionKeys = {\n question: questionSchema,\n shortDescription: shortDescriptionSchema,\n hintText: hintTextSchema,\n questionOptional: questionOptionalSchema\n}\n\n/**\n * Joi schema for `FormEditorInputQuestion` interface\n * @see {@link FormEditorInputQuestion}\n */\nexport const formEditorInputQuestionSchema =\n Joi.object<FormEditorInputQuestion>()\n .keys(formEditorInputQuestionKeys)\n .required()\n .description(\n 'Input schema for creating or updating a question in the form editor'\n )\n\nexport const formEditorInputPageSettingsKeys = {\n pageHeadingAndGuidance: pageHeadingAndGuidanceSchema,\n pageHeading: pageHeadingSchema,\n guidanceText: guidanceTextSchema\n}\n\n/**\n * Joi schema for `FormEditorInputPageSettings` interface\n * @see {@link FormEditorInputPageSettings}\n */\nexport const formEditorInputPageSettingsSchema =\n Joi.object<FormEditorInputPageSettings>()\n .keys(formEditorInputPageSettingsKeys)\n .required()\n .description('Settings for page content and display in the form editor')\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"index.js","names":["Joi","ComponentType","QuestionTypeSubGroup","pageTypeSchema","string","required","valid","description","questionTypeSchema","WrittenAnswerSubGroup","DateSubGroup","UkAddressField","TelephoneNumberField","FileUploadField","EmailAddressField","ListSubGroup","YesNoField","CheckboxesField","RadiosField","AutocompleteField","questionTypeFullSchema","TextField","MultilineTextField","NumberField","DatePartsField","MonthYearField","writtenAnswerSubSchema","dateSubSchema","listSubSchema","nameSchema","trim","questionSchema","hintTextSchema","optional","allow","questionOptionalSchema","listForQuestionSchema","exactFilesSchema","number","empty","integer","min","max","minFilesSchema","maxFilesSchema","fileTypesSchema","array","items","single","default","documentTypesSchema","imageTypesSchema","tabularDataTypesSchema","enhancedActionSchema","radioIdSchema","radioTextSchema","radioHintSchema","radioValueSchema","shortDescriptionSchema","pageHeadingAndGuidanceSchema","pageHeadingSchema","guidanceTextSchema","needDeclarationSchema","declarationTextSchema","minSchema","maxSchema","minLengthSchema","maxLengthSchema","maxFutureSchema","maxPastSchema","precisionSchema","prefixSchema","regexSchema","rowsSchema","suffixSchema","classesSchema","customValidator","extend","joi","type","base","messages","coerce","from","method","value","helpers","rowSeparatorRule","schema","$_getRule","colSeparatorRule","keysRule","rowSeparator","args","rows","split","map","v","filter","Boolean","colSeparator","keys","coercedValue","row","reduce","acc","col","idx","_err","console","error","errors","rules","convert","alias","$_addRule","name","ref","assert","RegExp","message","Array","isArray","every","k","autoCompleteOptionsSchema","dsv","object","text","disallow","parent","questionDetailsFullSchema","formEditorInputPageKeys","pageType","questionType","formEditorInputPageSchema","formEditorInputheckAnswersSettingsKeys","declarationText","formEditorInputCheckAnswersSettingSchema","formEditorInputQuestionKeys","question","shortDescription","hintText","questionOptional","formEditorInputQuestionSchema","formEditorInputPageSettingsKeys","pageHeadingAndGuidance","pageHeading","guidanceText","formEditorInputPageSettingsSchema"],"sources":["../../../../src/form/form-editor/index.ts"],"sourcesContent":["import Joi, { type ArraySchema, type GetRuleOptions } from 'joi'\n\nimport { ComponentType } from '~/src/components/enums.js'\nimport {\n type FormEditorInputCheckAnswersSettings,\n type FormEditorInputPage,\n type FormEditorInputPageSettings,\n type FormEditorInputQuestion\n} from '~/src/form/form-editor/types.js'\n\nexport enum QuestionTypeSubGroup {\n WrittenAnswerSubGroup = 'writtenAnswerSub',\n DateSubGroup = 'dateSub',\n ListSubGroup = 'listSub'\n}\n\nexport const pageTypeSchema = Joi.string()\n .required()\n .valid('question', 'guidance')\n .description('Type of page - either a question page or guidance page')\n\nexport const questionTypeSchema = Joi.string()\n .required()\n .valid(\n QuestionTypeSubGroup.WrittenAnswerSubGroup,\n QuestionTypeSubGroup.DateSubGroup,\n ComponentType.UkAddressField,\n ComponentType.TelephoneNumberField,\n ComponentType.FileUploadField,\n ComponentType.EmailAddressField,\n QuestionTypeSubGroup.ListSubGroup,\n ComponentType.YesNoField,\n ComponentType.CheckboxesField,\n ComponentType.RadiosField,\n ComponentType.AutocompleteField\n )\n .description('The high-level type of question, including grouped types')\n\nexport const questionTypeFullSchema = Joi.string()\n .required()\n .valid(\n ComponentType.TextField,\n ComponentType.MultilineTextField,\n ComponentType.NumberField,\n ComponentType.DatePartsField,\n ComponentType.MonthYearField,\n ComponentType.UkAddressField,\n ComponentType.TelephoneNumberField,\n ComponentType.FileUploadField,\n ComponentType.EmailAddressField,\n ComponentType.YesNoField,\n ComponentType.CheckboxesField,\n ComponentType.RadiosField,\n ComponentType.AutocompleteField\n )\n .description('The specific component type to use for this question')\n\nexport const writtenAnswerSubSchema = Joi.string()\n .required()\n .valid(\n ComponentType.TextField,\n ComponentType.MultilineTextField,\n ComponentType.NumberField\n )\n .description('Subtype for written answer questions')\n\nexport const dateSubSchema = Joi.string()\n .required()\n .valid(ComponentType.DatePartsField, ComponentType.MonthYearField)\nexport const listSubSchema = Joi.string()\n .required()\n .valid(\n ComponentType.YesNoField,\n ComponentType.CheckboxesField,\n ComponentType.RadiosField,\n ComponentType.AutocompleteField\n )\n .description('Subtype for date-related questions')\n\nexport const nameSchema = Joi.string()\n .trim()\n .required()\n .description('Unique identifier for the field')\n\nexport const questionSchema = Joi.string()\n .trim()\n .required()\n .description('The question text displayed to the user')\n\nexport const hintTextSchema = Joi.string()\n .trim()\n .optional()\n .allow('')\n .description('Optional guidance text displayed below the question')\n\nexport const questionOptionalSchema = Joi.string()\n .trim()\n .optional()\n .valid('', 'true')\n .description(\n 'Indicates whether a question is optional. Empty string or \"true\" values are accepted.'\n )\n\nexport const listForQuestionSchema = Joi.string()\n .trim()\n .optional()\n .allow('')\n .description('Unique identifier for the list used by the field')\n\nexport const exactFilesSchema = Joi.number()\n .empty('')\n .integer()\n .min(1)\n .max(25)\n .description(\n 'Specifies the exact number of files required for upload. Must be between 1 and 25.'\n )\n\nexport const minFilesSchema = Joi.number()\n .empty('')\n .integer()\n .min(0)\n .max(25)\n .description(\n 'Minimum number of files required for upload. Must be between 0 and 25.'\n )\n\nexport const maxFilesSchema = Joi.number()\n .empty('')\n .integer()\n .min(1)\n .max(25)\n .description(\n 'Maximum number of files allowed for upload. Must be between 1 and 25.'\n )\n\nexport const fileTypesSchema = Joi.array()\n .items(Joi.string())\n .single()\n .empty(null)\n .default([])\n .description(\n 'Array of allowed file types. Can be provided as a single value or an array.'\n )\n\nexport const documentTypesSchema = Joi.array()\n .items(Joi.string())\n .single()\n .empty(null)\n .default([])\n .description(\n 'Array of allowed document types. Can be provided as a single value or an array.'\n )\n\nexport const imageTypesSchema = Joi.array()\n .items(Joi.string())\n .single()\n .empty(null)\n .default([])\n .description(\n 'Array of allowed image types. Can be provided as a single value or an array.'\n )\n\nexport const tabularDataTypesSchema = Joi.array()\n .items(Joi.string())\n .single()\n .empty(null)\n .default([])\nexport const enhancedActionSchema = Joi.string()\n .trim()\n .optional()\n .allow('')\n .description('Action field that can include enhanced functionality')\n\nexport const radioIdSchema = Joi.string()\n .trim()\n .optional()\n .allow('')\n .description('Unique identifier for radio options')\n\nexport const radioTextSchema = Joi.string()\n .trim()\n .required()\n .description('The visible text shown next to radio options')\n\nexport const radioHintSchema = Joi.string()\n .trim()\n .optional()\n .allow('')\n .description(\n 'Optional hint text displayed with radio buttons to provide additional guidance'\n )\n\nexport const radioValueSchema = Joi.string()\n .trim()\n .optional()\n .allow('')\n .description(\n 'Array of allowed tabular data types. Can be provided as a single value or an array.'\n )\n\nexport const shortDescriptionSchema = Joi.string()\n .trim()\n .required()\n .description('Brief description of the question for internal use')\n\nexport const pageHeadingAndGuidanceSchema = Joi.string()\n .trim()\n .optional()\n .description('Combined heading and guidance for the page')\n\nexport const pageHeadingSchema = Joi.string()\n .trim()\n .required()\n .description('Main heading displayed at the top of the page')\n\nexport const guidanceTextSchema = Joi.string()\n .trim()\n .description('Guidance text to assist users in completing the page')\n\nexport const needDeclarationSchema = Joi.string()\n .trim()\n .required()\n .description('Whether a declaration is needed')\n\nexport const declarationTextSchema = Joi.string()\n .trim()\n .required()\n .description('Text of the declaration that users must agree to')\n\nexport const minSchema = Joi.number()\n .empty('')\n .integer()\n .description('Minimum value for numeric inputs')\n\nexport const maxSchema = Joi.number()\n .empty('')\n .integer()\n .description('Maximum value for numeric inputs')\n\nexport const minLengthSchema = Joi.number()\n .empty('')\n .integer()\n .min(1)\n .description('Minimum character length for text inputs')\n\nexport const maxLengthSchema = Joi.number()\n .empty('')\n .integer()\n .min(1)\n .description('Maximum character length for text inputs')\n\nexport const maxFutureSchema = Joi.number()\n .empty('')\n .integer()\n .min(1)\n .description('Maximum days in the future allowed for date inputs')\n\nexport const maxPastSchema = Joi.number()\n .empty('')\n .integer()\n .min(1)\n .description('Maximum days in the past allowed for date inputs')\n\nexport const precisionSchema = Joi.number()\n .empty('')\n .integer()\n .min(1)\n .description('Decimal precision for numeric inputs')\n\nexport const prefixSchema = Joi.string()\n .trim()\n .optional()\n .allow('')\n .description('Text to display before the input (e.g., £)')\n\nexport const regexSchema = Joi.string()\n .optional()\n .allow('')\n .description('Regular expression pattern for validation')\n\nexport const rowsSchema = Joi.number()\n .empty('')\n .integer()\n .min(1)\n .description('Number of rows for multiline text fields')\n\nexport const suffixSchema = Joi.string()\n .trim()\n .optional()\n .allow('')\n .description('Text to display after the input (e.g., kg)')\n\nexport const classesSchema = Joi.string()\n .trim()\n .optional()\n .allow('')\n .description('Custom CSS classes to apply to the component')\n\ntype GenericRuleOptions<K extends string, T> = Omit<GetRuleOptions, 'args'> & {\n args: Record<K, T>\n}\n\ninterface DSLSchema<TSchema = Record<string, unknown>[]>\n extends ArraySchema<TSchema> {\n rowSeparator: (rowSep: string | RegExp) => DSLSchema<TSchema>\n row: (rowSep: string | RegExp) => DSLSchema<TSchema>\n colSeparator: (colSep: string | RegExp) => DSLSchema<TSchema>\n col: (colSep: string | RegExp) => DSLSchema<TSchema>\n keys: (keys: string[]) => DSLSchema<TSchema>\n}\n\ninterface CustomValidator extends Joi.Root {\n dsv<TSchema>(): DSLSchema<TSchema>\n}\n\nexport const customValidator = Joi.extend((joi: Joi.Root) => {\n return {\n type: 'dsv',\n base: joi.array(),\n messages: {\n 'dsv.invalid': 'Invalid parse string'\n },\n coerce: {\n from: 'string',\n method(value: string, helpers) {\n try {\n // Only called when prefs.convert is true\n // Rules\n const rowSeparatorRule = helpers.schema.$_getRule('rowSeparator') as\n | undefined\n | GenericRuleOptions<'rowSeparator', string | RegExp>\n const colSeparatorRule = helpers.schema.$_getRule('colSeparator') as\n | undefined\n | GenericRuleOptions<'colSeparator', string | RegExp>\n const keysRule = helpers.schema.$_getRule('keys') as\n | undefined\n | GenericRuleOptions<'keys', string[]>\n\n // Rows\n const rowSeparator = rowSeparatorRule?.args.rowSeparator ?? /\\r?\\n/\n const rows = value\n .split(rowSeparator)\n .map((v) => v.trim())\n .filter(Boolean)\n\n // Columns\n const colSeparator = colSeparatorRule?.args.colSeparator ?? ','\n const keys = keysRule?.args.keys ?? ['key', 'value']\n\n const coercedValue = rows.map((row) => {\n return row\n .split(colSeparator)\n .reduce<Record<string, string>>((acc, col, idx) => {\n return {\n ...acc,\n [keys[idx]]: col.trim()\n }\n }, {})\n })\n return { value: coercedValue }\n } catch (_err) {\n // eslint-disable-next-line no-console\n console.error(_err)\n return { value, errors: [helpers.error('dsv.invalid')] }\n }\n }\n },\n rules: {\n rowSeparator: {\n convert: true,\n alias: 'row',\n method(rowSeparator: string) {\n return this.$_addRule({\n name: 'rowSeparator',\n args: { rowSeparator }\n })\n },\n args: [\n {\n name: 'rowSeparator',\n ref: true,\n assert: (value) =>\n typeof value === 'string' || value instanceof RegExp,\n message: 'must be a string or regex'\n }\n ]\n },\n colSeparator: {\n convert: true,\n alias: 'col',\n method(colSeparator: string) {\n return this.$_addRule({\n name: 'colSeparator',\n args: { colSeparator }\n })\n },\n args: [\n {\n name: 'colSeparator',\n ref: true,\n assert: (value) =>\n typeof value === 'string' || value instanceof RegExp,\n message: 'must be a string or regex'\n }\n ]\n },\n keys: {\n convert: true,\n method(keys: string[]) {\n return this.$_addRule({ name: 'keys', args: { keys } })\n },\n args: [\n {\n name: 'keys',\n ref: true,\n assert: (value) =>\n Array.isArray(value) && value.every((k) => typeof k === 'string'),\n message: 'must be an array of strings'\n }\n ]\n }\n }\n }\n}) as CustomValidator\n\nexport const autoCompleteOptionsSchema = customValidator\n .dsv<{ text: string; value: string }>()\n .row(/\\r?\\n/)\n .col(':')\n .keys(['text', 'value'])\n .items(\n customValidator.object({\n text: customValidator.string().min(1).disallow('').required(),\n value: customValidator\n .string()\n .default((parent: { text: string; value?: string }) => parent.text)\n .min(1)\n .disallow('')\n })\n )\n .min(1)\n .required()\n\nexport const questionDetailsFullSchema = {\n autoCompleteOptionsSchema,\n classesSchema,\n documentTypesSchema,\n enhancedActionSchema,\n exactFilesSchema,\n fileTypesSchema,\n hintTextSchema,\n imageTypesSchema,\n listForQuestionSchema,\n maxFilesSchema,\n maxFutureSchema,\n maxLengthSchema,\n maxPastSchema,\n maxSchema,\n minFilesSchema,\n minLengthSchema,\n minSchema,\n nameSchema,\n precisionSchema,\n prefixSchema,\n questionOptionalSchema,\n questionSchema,\n questionTypeFullSchema,\n radioHintSchema,\n radioIdSchema,\n radioTextSchema,\n radioValueSchema,\n regexSchema,\n rowsSchema,\n shortDescriptionSchema,\n suffixSchema,\n tabularDataTypesSchema\n}\n\nexport const formEditorInputPageKeys = {\n pageType: pageTypeSchema,\n questionType: questionTypeSchema\n}\n\n/**\n * Joi schema for `FormEditorInputPage` interface\n * @see {@link FormEditorInputPage}\n */\nexport const formEditorInputPageSchema = Joi.object<FormEditorInputPage>()\n .keys(formEditorInputPageKeys)\n .required()\n .description('Input schema for creating a new page in the form editor')\n\nexport const formEditorInputheckAnswersSettingsKeys = {\n declarationText: shortDescriptionSchema\n}\n\n/**\n * Joi schema for `FormEditorInputCheckAnswersSettings` interface\n * @see {@link FormEditorInputCheckAnswersSettings}\n */\nexport const formEditorInputCheckAnswersSettingSchema =\n Joi.object<FormEditorInputCheckAnswersSettings>()\n .keys(formEditorInputheckAnswersSettingsKeys)\n .required()\n .description('Configuration for the check-answers page')\n\nexport const formEditorInputQuestionKeys = {\n question: questionSchema,\n shortDescription: shortDescriptionSchema,\n hintText: hintTextSchema,\n questionOptional: questionOptionalSchema\n}\n\n/**\n * Joi schema for `FormEditorInputQuestion` interface\n * @see {@link FormEditorInputQuestion}\n */\nexport const formEditorInputQuestionSchema =\n Joi.object<FormEditorInputQuestion>()\n .keys(formEditorInputQuestionKeys)\n .required()\n .description(\n 'Input schema for creating or updating a question in the form editor'\n )\n\nexport const formEditorInputPageSettingsKeys = {\n pageHeadingAndGuidance: pageHeadingAndGuidanceSchema,\n pageHeading: pageHeadingSchema,\n guidanceText: guidanceTextSchema\n}\n\n/**\n * Joi schema for `FormEditorInputPageSettings` interface\n * @see {@link FormEditorInputPageSettings}\n */\nexport const formEditorInputPageSettingsSchema =\n Joi.object<FormEditorInputPageSettings>()\n .keys(formEditorInputPageSettingsKeys)\n .required()\n .description('Settings for page content and display in the form editor')\n"],"mappings":"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","ignoreList":[]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../../src/form/form-editor/types.ts"],"sourcesContent":["import { type ComponentDef } from '~/src/components/types.js'\nimport { type Item } from '~/src/index.js'\n\n/**\n * Interface for `FormEditor` Joi schema\n */\nexport interface FormEditor {\n /**\n * The type of the page\n */\n pageType: string\n\n /**\n * The type of the question\n */\n questionType: string | undefined\n\n /**\n * The sub-type of written answer\n */\n writtenAnswerSub: string\n\n /**\n * The sub-type of date\n */\n dateSub: string\n\n /**\n * The sub-type of lists\n */\n listSub: string\n\n /**\n * The name of the question (unique id)\n */\n name: string\n\n /**\n * The text of the question\n */\n question: string\n\n /**\n * The hint text of the question\n */\n hintText: string\n\n /**\n * Denotes if the question is optional\n */\n questionOptional: string\n\n /**\n * The short description of the question\n */\n shortDescription: string\n\n /**\n * The value of checkbox to reveal heading and guidance section\n */\n pageHeadingAndGuidance: string\n\n /**\n * The page heading\n */\n pageHeading: string\n\n /**\n * The page guidance text\n */\n guidanceText: string\n\n /**\n * The value of radio to reveal declaration text field\n */\n needDeclaration: string\n\n /**\n * The check answers declaration text\n */\n declarationText: string\n\n /**\n * The min length a field can have\n */\n minLength: string\n\n /**\n * The max length a field can have\n */\n maxLength: string\n\n /**\n * The regex value of a field\n */\n regex: string\n\n /**\n * The number of rows of a textarea\n */\n rows: string\n\n /**\n * The classes to be applied to a field\n */\n classes: string\n\n /**\n * The prefix to be applied to a field\n */\n prefix: string\n\n /**\n * The suffix to be applied to a field\n */\n suffix: string\n\n /**\n * The decimal precision of a number field\n */\n precision: string\n\n /**\n * The lowest number allowed in a field\n */\n min: string\n\n /**\n * The highest number allowed in a field\n */\n max: string\n\n /**\n * The maximum days in the future to allow for a date\n */\n maxFuture: string\n\n /**\n * The maximum days in the past to allow for a date\n */\n maxPast: string\n\n /**\n * The exact number of files to upload\n */\n exactFiles: string\n\n /**\n * The minimum number of files to upload\n */\n minFiles: string\n\n /**\n * The maximum number of files to upload\n */\n maxFiles: string\n\n /**\n * The type of files for upload\n */\n fileTypes: string[]\n\n /**\n * The types of document files for upload\n */\n documentTypes: string[]\n\n /**\n * The types of image files for upload\n */\n imageTypes: string[]\n\n /**\n * The types of tabular data files for upload\n */\n tabularDataTypes: string[]\n\n /**\n * The action required from within a sub-section\n */\n enhancedAction: string\n\n /**\n * Placeholder for inserted section to handle adding/editing radios or checkboxes\n */\n radiosOrCheckboxes: string\n\n /**\n * The unique id of the radio item\n */\n radioId: string\n\n /**\n * The display text of the radio item\n */\n
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../../src/form/form-editor/types.ts"],"sourcesContent":["import { type ComponentType } from '~/src/components/enums.js'\nimport { type ComponentDef } from '~/src/components/types.js'\nimport { type Item } from '~/src/index.js'\n\n/**\n * Interface for `FormEditor` Joi schema\n */\nexport interface FormEditor {\n /**\n * The type of the page\n */\n pageType: string\n\n /**\n * The type of the question\n */\n questionType: string | undefined\n\n /**\n * The sub-type of written answer\n */\n writtenAnswerSub: string\n\n /**\n * The sub-type of date\n */\n dateSub: string\n\n /**\n * The sub-type of lists\n */\n listSub: string\n\n /**\n * The name of the question (unique id)\n */\n name: string\n\n /**\n * The text of the question\n */\n question: string\n\n /**\n * The hint text of the question\n */\n hintText: string\n\n /**\n * Denotes if the question is optional\n */\n questionOptional: string\n\n /**\n * The short description of the question\n */\n shortDescription: string\n\n /**\n * The value of checkbox to reveal heading and guidance section\n */\n pageHeadingAndGuidance: string\n\n /**\n * The page heading\n */\n pageHeading: string\n\n /**\n * The page guidance text\n */\n guidanceText: string\n\n /**\n * The value of radio to reveal declaration text field\n */\n needDeclaration: string\n\n /**\n * The check answers declaration text\n */\n declarationText: string\n\n /**\n * The min length a field can have\n */\n minLength: string\n\n /**\n * The max length a field can have\n */\n maxLength: string\n\n /**\n * The regex value of a field\n */\n regex: string\n\n /**\n * The number of rows of a textarea\n */\n rows: string\n\n /**\n * The classes to be applied to a field\n */\n classes: string\n\n /**\n * The prefix to be applied to a field\n */\n prefix: string\n\n /**\n * The suffix to be applied to a field\n */\n suffix: string\n\n /**\n * The decimal precision of a number field\n */\n precision: string\n\n /**\n * The lowest number allowed in a field\n */\n min: string\n\n /**\n * The highest number allowed in a field\n */\n max: string\n\n /**\n * The maximum days in the future to allow for a date\n */\n maxFuture: string\n\n /**\n * The maximum days in the past to allow for a date\n */\n maxPast: string\n\n /**\n * The exact number of files to upload\n */\n exactFiles: string\n\n /**\n * The minimum number of files to upload\n */\n minFiles: string\n\n /**\n * The maximum number of files to upload\n */\n maxFiles: string\n\n /**\n * The type of files for upload\n */\n fileTypes: string[]\n\n /**\n * The types of document files for upload\n */\n documentTypes: string[]\n\n /**\n * The types of image files for upload\n */\n imageTypes: string[]\n\n /**\n * The types of tabular data files for upload\n */\n tabularDataTypes: string[]\n\n /**\n * The action required from within a sub-section\n */\n enhancedAction: string\n\n /**\n * Placeholder for inserted section to handle adding/editing radios or checkboxes\n */\n radiosOrCheckboxes: string\n\n /**\n * The unique id of the radio item\n */\n radioId: string\n\n /**\n * The display text of the radio item\n */\n radioText: string\n\n /**\n * The hint of the radio item\n */\n radioHint: string\n\n /**\n * The value of the radio item\n */\n radioValue: string\n\n /**\n * The list name to be applied to a field (if applicable)\n */\n list: string\n\n /**\n * An array of options for autocomplete\n */\n autoCompleteOptions: Item[]\n}\n\nexport type FormEditorInputPage = Pick<\n FormEditor,\n 'pageType' | 'questionType' | 'writtenAnswerSub' | 'dateSub' | 'listSub'\n>\n\nexport type FormEditorInputCheckAnswersSettings = Pick<\n FormEditor,\n 'needDeclaration' | 'declarationText'\n>\n\nexport type FormEditorInputQuestion = Pick<\n FormEditor,\n | 'questionType'\n | 'name'\n | 'question'\n | 'shortDescription'\n | 'hintText'\n | 'questionOptional'\n | 'minLength'\n | 'maxLength'\n | 'regex'\n | 'rows'\n | 'classes'\n | 'prefix'\n | 'suffix'\n | 'precision'\n | 'min'\n | 'max'\n | 'maxFuture'\n | 'maxPast'\n | 'exactFiles'\n | 'minFiles'\n | 'maxFiles'\n | 'fileTypes'\n | 'documentTypes'\n | 'imageTypes'\n | 'tabularDataTypes'\n | 'autoCompleteOptions'\n | 'enhancedAction'\n | 'radioId'\n | 'radioText'\n | 'radioHint'\n | 'radioValue'\n | 'list'\n>\n\nexport type FormEditorInputPageSettings = Pick<\n FormEditor,\n 'pageHeadingAndGuidance' | 'pageHeading' | 'guidanceText'\n>\n\nexport type FormEditorInputGuidancePage = Pick<\n FormEditor,\n 'pageHeading' | 'guidanceText'\n>\n\nexport type FormEditorInputQuestionDetails = Pick<\n FormEditorInputQuestion,\n | 'question'\n | 'hintText'\n | 'shortDescription'\n | 'questionOptional'\n | 'questionType'\n | 'fileTypes'\n | 'documentTypes'\n | 'imageTypes'\n | 'tabularDataTypes'\n | 'autoCompleteOptions'\n | 'enhancedAction'\n | 'radioId'\n | 'radioText'\n | 'radioHint'\n | 'radioValue'\n>\n\nexport interface QuestionSessionState {\n questionType?: ComponentType\n questionDetails?: Partial<ComponentDef>\n editRow?: {\n radioId?: string\n radioText?: string\n radioHint?: string\n radioValue?: string\n expanded?: boolean\n }\n listItems?: { text?: string; hint?: string; value?: string; id?: string }[]\n}\n\nexport interface GovukField {\n id?: string\n name?: string\n idPrefix?: string\n fieldset?: {\n legend?: { text?: string; isPageHeading?: boolean; classes?: string }\n }\n value?: string | boolean | number | string[] | Item[]\n classes?: string\n label?: {\n text?: string\n html?: string\n classes?: string\n isPageHeading?: boolean\n }\n hint?: { text?: string; html?: string; classes?: string }\n items?: { text?: string; value?: string; checked?: boolean }[]\n rows?: number\n type?: string\n customTemplate?: string\n}\n\nexport interface FormEditorGovukField {\n question?: GovukField\n hintText?: GovukField\n questionOptional?: GovukField\n shortDescription?: GovukField\n fileTypes?: GovukField\n documentTypes?: GovukField\n imageTypes?: GovukField\n tabularDataTypes?: GovukField\n radiosOrCheckboxes?: GovukField\n autoCompleteOptions?: GovukField\n errorMessage?: { text: string }\n}\n\nexport type FormEditorGovukFieldBase = Omit<\n FormEditorGovukField,\n 'errorMessage'\n>\n\nexport type FormEditorGovukFieldBaseKeys = keyof FormEditorGovukFieldBase\n\nexport interface FormEditorCheckbox {\n text?: string\n hint?: {\n text?: string\n }\n value?: string\n divider?: {\n text?: string\n hint?: string\n value?: string\n }\n}\n"],"mappings":"","ignoreList":[]}
|
@@ -15,6 +15,7 @@ export declare const nameSchema: Joi.StringSchema<string>;
|
|
15
15
|
export declare const questionSchema: Joi.StringSchema<string>;
|
16
16
|
export declare const hintTextSchema: Joi.StringSchema<string>;
|
17
17
|
export declare const questionOptionalSchema: Joi.StringSchema<string>;
|
18
|
+
export declare const listForQuestionSchema: Joi.StringSchema<string>;
|
18
19
|
export declare const exactFilesSchema: Joi.NumberSchema<number>;
|
19
20
|
export declare const minFilesSchema: Joi.NumberSchema<number>;
|
20
21
|
export declare const maxFilesSchema: Joi.NumberSchema<number>;
|
@@ -24,7 +25,7 @@ export declare const imageTypesSchema: Joi.ArraySchema<any[]>;
|
|
24
25
|
export declare const tabularDataTypesSchema: Joi.ArraySchema<any[]>;
|
25
26
|
export declare const enhancedActionSchema: Joi.StringSchema<string>;
|
26
27
|
export declare const radioIdSchema: Joi.StringSchema<string>;
|
27
|
-
export declare const
|
28
|
+
export declare const radioTextSchema: Joi.StringSchema<string>;
|
28
29
|
export declare const radioHintSchema: Joi.StringSchema<string>;
|
29
30
|
export declare const radioValueSchema: Joi.StringSchema<string>;
|
30
31
|
export declare const shortDescriptionSchema: Joi.StringSchema<string>;
|
@@ -72,6 +73,7 @@ export declare const questionDetailsFullSchema: {
|
|
72
73
|
fileTypesSchema: Joi.ArraySchema<any[]>;
|
73
74
|
hintTextSchema: Joi.StringSchema<string>;
|
74
75
|
imageTypesSchema: Joi.ArraySchema<any[]>;
|
76
|
+
listForQuestionSchema: Joi.StringSchema<string>;
|
75
77
|
maxFilesSchema: Joi.NumberSchema<number>;
|
76
78
|
maxFutureSchema: Joi.NumberSchema<number>;
|
77
79
|
maxLengthSchema: Joi.NumberSchema<number>;
|
@@ -88,7 +90,7 @@ export declare const questionDetailsFullSchema: {
|
|
88
90
|
questionTypeFullSchema: Joi.StringSchema<string>;
|
89
91
|
radioHintSchema: Joi.StringSchema<string>;
|
90
92
|
radioIdSchema: Joi.StringSchema<string>;
|
91
|
-
|
93
|
+
radioTextSchema: Joi.StringSchema<string>;
|
92
94
|
radioValueSchema: Joi.StringSchema<string>;
|
93
95
|
regexSchema: Joi.StringSchema<string>;
|
94
96
|
rowsSchema: Joi.NumberSchema<number>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/form/form-editor/index.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,EAAE,EAAE,KAAK,WAAW,EAAuB,MAAM,KAAK,CAAA;AAGhE,OAAO,EACL,KAAK,mCAAmC,EACxC,KAAK,mBAAmB,EACxB,KAAK,2BAA2B,EAChC,KAAK,uBAAuB,EAC7B,MAAM,iCAAiC,CAAA;AAExC,oBAAY,oBAAoB;IAC9B,qBAAqB,qBAAqB;IAC1C,YAAY,YAAY;IACxB,YAAY,YAAY;CACzB;AAED,eAAO,MAAM,cAAc,0BAG6C,CAAA;AAExE,eAAO,MAAM,kBAAkB,0BAe2C,CAAA;AAE1E,eAAO,MAAM,sBAAsB,0BAiBmC,CAAA;AAEtE,eAAO,MAAM,sBAAsB,0BAOmB,CAAA;AAEtD,eAAO,MAAM,aAAa,0BAE0C,CAAA;AACpE,eAAO,MAAM,aAAa,0BAQ0B,CAAA;AAEpD,eAAO,MAAM,UAAU,0BAG0B,CAAA;AAEjD,eAAO,MAAM,cAAc,0BAG8B,CAAA;AAEzD,eAAO,MAAM,cAAc,0BAI0C,CAAA;AAErE,eAAO,MAAM,sBAAsB,0BAMhC,CAAA;AAEH,eAAO,MAAM,gBAAgB,0BAO1B,CAAA;AAEH,eAAO,MAAM,cAAc,0BAOxB,CAAA;AAEH,eAAO,MAAM,cAAc,0BAOxB,CAAA;AAEH,eAAO,MAAM,eAAe,wBAOzB,CAAA;AAEH,eAAO,MAAM,mBAAmB,wBAO7B,CAAA;AAEH,eAAO,MAAM,gBAAgB,wBAO1B,CAAA;AAEH,eAAO,MAAM,sBAAsB,wBAIrB,CAAA;AACd,eAAO,MAAM,oBAAoB,0BAIqC,CAAA;AAEtE,eAAO,MAAM,aAAa,0BAI2B,CAAA;AAErD,eAAO,MAAM,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/form/form-editor/index.ts"],"names":[],"mappings":"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"}
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import { type ComponentType } from '../../components/enums.js';
|
1
2
|
import { type ComponentDef } from '../../components/types.js';
|
2
3
|
import { type Item } from '../../index.js';
|
3
4
|
/**
|
@@ -155,7 +156,7 @@ export interface FormEditor {
|
|
155
156
|
/**
|
156
157
|
* The display text of the radio item
|
157
158
|
*/
|
158
|
-
|
159
|
+
radioText: string;
|
159
160
|
/**
|
160
161
|
* The hint of the radio item
|
161
162
|
*/
|
@@ -164,25 +165,33 @@ export interface FormEditor {
|
|
164
165
|
* The value of the radio item
|
165
166
|
*/
|
166
167
|
radioValue: string;
|
168
|
+
/**
|
169
|
+
* The list name to be applied to a field (if applicable)
|
170
|
+
*/
|
171
|
+
list: string;
|
172
|
+
/**
|
173
|
+
* An array of options for autocomplete
|
174
|
+
*/
|
167
175
|
autoCompleteOptions: Item[];
|
168
176
|
}
|
169
177
|
export type FormEditorInputPage = Pick<FormEditor, 'pageType' | 'questionType' | 'writtenAnswerSub' | 'dateSub' | 'listSub'>;
|
170
178
|
export type FormEditorInputCheckAnswersSettings = Pick<FormEditor, 'needDeclaration' | 'declarationText'>;
|
171
|
-
export type FormEditorInputQuestion = Pick<FormEditor, 'questionType' | 'name' | 'question' | 'shortDescription' | 'hintText' | 'questionOptional' | 'minLength' | 'maxLength' | 'regex' | 'rows' | 'classes' | 'prefix' | 'suffix' | 'precision' | 'min' | 'max' | 'maxFuture' | 'maxPast' | 'exactFiles' | 'minFiles' | 'maxFiles' | 'fileTypes' | 'documentTypes' | 'imageTypes' | 'tabularDataTypes' | 'autoCompleteOptions' | 'enhancedAction' | 'radioId' | '
|
179
|
+
export type FormEditorInputQuestion = Pick<FormEditor, 'questionType' | 'name' | 'question' | 'shortDescription' | 'hintText' | 'questionOptional' | 'minLength' | 'maxLength' | 'regex' | 'rows' | 'classes' | 'prefix' | 'suffix' | 'precision' | 'min' | 'max' | 'maxFuture' | 'maxPast' | 'exactFiles' | 'minFiles' | 'maxFiles' | 'fileTypes' | 'documentTypes' | 'imageTypes' | 'tabularDataTypes' | 'autoCompleteOptions' | 'enhancedAction' | 'radioId' | 'radioText' | 'radioHint' | 'radioValue' | 'list'>;
|
172
180
|
export type FormEditorInputPageSettings = Pick<FormEditor, 'pageHeadingAndGuidance' | 'pageHeading' | 'guidanceText'>;
|
173
181
|
export type FormEditorInputGuidancePage = Pick<FormEditor, 'pageHeading' | 'guidanceText'>;
|
174
|
-
export type FormEditorInputQuestionDetails = Pick<FormEditorInputQuestion, 'question' | 'hintText' | 'shortDescription' | 'questionOptional' | 'questionType' | 'fileTypes' | 'documentTypes' | 'imageTypes' | 'tabularDataTypes' | 'enhancedAction' | 'radioId' | '
|
175
|
-
export interface
|
176
|
-
|
177
|
-
|
182
|
+
export type FormEditorInputQuestionDetails = Pick<FormEditorInputQuestion, 'question' | 'hintText' | 'shortDescription' | 'questionOptional' | 'questionType' | 'fileTypes' | 'documentTypes' | 'imageTypes' | 'tabularDataTypes' | 'autoCompleteOptions' | 'enhancedAction' | 'radioId' | 'radioText' | 'radioHint' | 'radioValue'>;
|
183
|
+
export interface QuestionSessionState {
|
184
|
+
questionType?: ComponentType;
|
185
|
+
questionDetails?: Partial<ComponentDef>;
|
186
|
+
editRow?: {
|
178
187
|
radioId?: string;
|
179
|
-
|
188
|
+
radioText?: string;
|
180
189
|
radioHint?: string;
|
181
190
|
radioValue?: string;
|
182
191
|
expanded?: boolean;
|
183
192
|
};
|
184
|
-
listItems
|
185
|
-
|
193
|
+
listItems?: {
|
194
|
+
text?: string;
|
186
195
|
hint?: string;
|
187
196
|
value?: string;
|
188
197
|
id?: string;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/form/form-editor/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAE1C;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,YAAY,EAAE,MAAM,GAAG,SAAS,CAAA;IAEhC;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAA;IAExB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IAEZ;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAA;IAExB;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAA;IAExB;;OAEG;IACH,sBAAsB,EAAE,MAAM,CAAA;IAE9B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IAEnB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,eAAe,EAAE,MAAM,CAAA;IAEvB;;OAEG;IACH,eAAe,EAAE,MAAM,CAAA;IAEvB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IAEb;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IAEZ;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IAEd;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IAEd;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;IAEX;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;IAEX;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;IAElB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,SAAS,EAAE,MAAM,EAAE,CAAA;IAEnB;;OAEG;IACH,aAAa,EAAE,MAAM,EAAE,CAAA;IAEvB;;OAEG;IACH,UAAU,EAAE,MAAM,EAAE,CAAA;IAEpB;;OAEG;IACH,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAE1B;;OAEG;IACH,cAAc,EAAE,MAAM,CAAA;IAEtB;;OAEG;IACH,kBAAkB,EAAE,MAAM,CAAA;IAE1B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/form/form-editor/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -101,6 +101,12 @@ export const questionOptionalSchema = Joi.string()
|
|
101
101
|
'Indicates whether a question is optional. Empty string or "true" values are accepted.'
|
102
102
|
)
|
103
103
|
|
104
|
+
export const listForQuestionSchema = Joi.string()
|
105
|
+
.trim()
|
106
|
+
.optional()
|
107
|
+
.allow('')
|
108
|
+
.description('Unique identifier for the list used by the field')
|
109
|
+
|
104
110
|
export const exactFilesSchema = Joi.number()
|
105
111
|
.empty('')
|
106
112
|
.integer()
|
@@ -172,7 +178,7 @@ export const radioIdSchema = Joi.string()
|
|
172
178
|
.allow('')
|
173
179
|
.description('Unique identifier for radio options')
|
174
180
|
|
175
|
-
export const
|
181
|
+
export const radioTextSchema = Joi.string()
|
176
182
|
.trim()
|
177
183
|
.required()
|
178
184
|
.description('The visible text shown next to radio options')
|
@@ -445,6 +451,7 @@ export const questionDetailsFullSchema = {
|
|
445
451
|
fileTypesSchema,
|
446
452
|
hintTextSchema,
|
447
453
|
imageTypesSchema,
|
454
|
+
listForQuestionSchema,
|
448
455
|
maxFilesSchema,
|
449
456
|
maxFutureSchema,
|
450
457
|
maxLengthSchema,
|
@@ -461,7 +468,7 @@ export const questionDetailsFullSchema = {
|
|
461
468
|
questionTypeFullSchema,
|
462
469
|
radioHintSchema,
|
463
470
|
radioIdSchema,
|
464
|
-
|
471
|
+
radioTextSchema,
|
465
472
|
radioValueSchema,
|
466
473
|
regexSchema,
|
467
474
|
rowsSchema,
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import { type ComponentType } from '~/src/components/enums.js'
|
1
2
|
import { type ComponentDef } from '~/src/components/types.js'
|
2
3
|
import { type Item } from '~/src/index.js'
|
3
4
|
|
@@ -193,7 +194,7 @@ export interface FormEditor {
|
|
193
194
|
/**
|
194
195
|
* The display text of the radio item
|
195
196
|
*/
|
196
|
-
|
197
|
+
radioText: string
|
197
198
|
|
198
199
|
/**
|
199
200
|
* The hint of the radio item
|
@@ -205,6 +206,14 @@ export interface FormEditor {
|
|
205
206
|
*/
|
206
207
|
radioValue: string
|
207
208
|
|
209
|
+
/**
|
210
|
+
* The list name to be applied to a field (if applicable)
|
211
|
+
*/
|
212
|
+
list: string
|
213
|
+
|
214
|
+
/**
|
215
|
+
* An array of options for autocomplete
|
216
|
+
*/
|
208
217
|
autoCompleteOptions: Item[]
|
209
218
|
}
|
210
219
|
|
@@ -248,9 +257,10 @@ export type FormEditorInputQuestion = Pick<
|
|
248
257
|
| 'autoCompleteOptions'
|
249
258
|
| 'enhancedAction'
|
250
259
|
| 'radioId'
|
251
|
-
| '
|
260
|
+
| 'radioText'
|
252
261
|
| 'radioHint'
|
253
262
|
| 'radioValue'
|
263
|
+
| 'list'
|
254
264
|
>
|
255
265
|
|
256
266
|
export type FormEditorInputPageSettings = Pick<
|
@@ -274,23 +284,25 @@ export type FormEditorInputQuestionDetails = Pick<
|
|
274
284
|
| 'documentTypes'
|
275
285
|
| 'imageTypes'
|
276
286
|
| 'tabularDataTypes'
|
287
|
+
| 'autoCompleteOptions'
|
277
288
|
| 'enhancedAction'
|
278
289
|
| 'radioId'
|
279
|
-
| '
|
290
|
+
| 'radioText'
|
280
291
|
| 'radioHint'
|
281
292
|
| 'radioValue'
|
282
293
|
>
|
283
294
|
|
284
|
-
export interface
|
285
|
-
|
286
|
-
|
295
|
+
export interface QuestionSessionState {
|
296
|
+
questionType?: ComponentType
|
297
|
+
questionDetails?: Partial<ComponentDef>
|
298
|
+
editRow?: {
|
287
299
|
radioId?: string
|
288
|
-
|
300
|
+
radioText?: string
|
289
301
|
radioHint?: string
|
290
302
|
radioValue?: string
|
291
303
|
expanded?: boolean
|
292
304
|
}
|
293
|
-
listItems
|
305
|
+
listItems?: { text?: string; hint?: string; value?: string; id?: string }[]
|
294
306
|
}
|
295
307
|
|
296
308
|
export interface GovukField {
|