@defra/forms-model 3.0.433 → 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-definition/index.js +1 -0
- package/dist/module/form/form-definition/index.js.map +1 -1
- package/dist/module/form/form-definition/types.js.map +1 -1
- 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-definition/index.d.ts.map +1 -1
- package/dist/types/form/form-definition/types.d.ts +1 -0
- package/dist/types/form/form-definition/types.d.ts.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/schemas/form-definition-schema.json +12 -0
- package/schemas/form-definition-v2-payload-schema.json +12 -0
- package/schemas/list-schema-v2.json +12 -0
- package/schemas/list-schema.json +12 -0
- package/src/form/form-definition/index.ts +3 -0
- package/src/form/form-definition/types.ts +1 -0
- package/src/form/form-editor/index.ts +9 -2
- package/src/form/form-editor/types.ts +20 -8
@@ -144,6 +144,7 @@ export const pageSchemaPayloadV2 = pageSchemaV2.keys({
|
|
144
144
|
}).description('Components with auto-generated IDs')
|
145
145
|
}).description('Page schema for payload data with auto-generated IDs for pages and components');
|
146
146
|
const baseListItemSchema = Joi.object().description('Base schema for list items with common properties').keys({
|
147
|
+
id: Joi.string().uuid().default(() => uuidV4()),
|
147
148
|
text: Joi.string().allow('').description('Display text shown to the user'),
|
148
149
|
description: Joi.string().allow('').optional().description('Optional additional descriptive text for the item'),
|
149
150
|
conditional: Joi.object().description('Optional components to show when this item is selected').keys({
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","names":["Joi","v4","uuidV4","ComponentType","sectionsSchema","object","description","keys","name","string","required","title","hideTitle","boolean","optional","default","conditionFieldSchema","type","display","conditionValueSchema","value","relativeDateValueSchema","period","unit","direction","conditionRefSchema","conditionName","conditionDisplayName","coordinator","conditionSchema","field","operator","alternatives","try","conditionGroupSchema","conditions","array","items","link","id","conditionsModelSchema","conditionWrapperSchema","displayName","componentSchema","uuid","shortDescription","when","is","valid","Details","Html","InsetText","Markdown","then","pattern","otherwise","allow","hint","options","rows","number","empty","maxWords","maxDaysInPast","maxDaysInFuture","customValidationMessage","customValidationMessages","unknown","schema","min","max","length","list","componentSchemaV2","nextSchema","path","condition","redirect","repeatOptions","repeatSchema","pageRepeatSchema","eventSchema","method","url","uri","scheme","eventsSchema","onLoad","onSave","pageSchema","disallow","section","controller","components","unique","repeat","any","strip","next","events","view","pageSchemaV2","append","pageSchemaPayloadV2","ignoreUndefined","baseListItemSchema","text","conditional","stringListItemSchema","numberListItemSchema","listSchema","listSchemaV2","feedbackSchema","feedbackForm","emailAddress","email","tlds","phaseBannerSchema","phase","outputSchema","audience","version","formDefinitionSchema","engine","feedback","startPage","pages","sections","lists","metadata","a","declaration","skipSummary","phaseBanner","outputEmail","trim","output","formDefinitionV2PayloadSchema","Schema"],"sources":["../../../../src/form/form-definition/index.ts"],"sourcesContent":["import Joi, { type LanguageMessages } from 'joi'\nimport { v4 as uuidV4 } from 'uuid'\n\nimport { ComponentType } from '~/src/components/enums.js'\nimport { type ComponentDef } from '~/src/components/types.js'\nimport {\n type ConditionData,\n type ConditionFieldData,\n type ConditionGroupData,\n type ConditionRefData,\n type ConditionValueData,\n type ConditionsModelData,\n type RelativeDateValueData\n} from '~/src/conditions/types.js'\nimport {\n type ConditionWrapper,\n type Event,\n type EventOptions,\n type Events,\n type FormDefinition,\n type Item,\n type Link,\n type List,\n type Page,\n type PhaseBanner,\n type Repeat,\n type RepeatOptions,\n type RepeatSchema,\n type Section\n} from '~/src/form/form-definition/types.js'\n\nconst sectionsSchema = Joi.object<Section>()\n .description('A form section grouping related pages together')\n .keys({\n name: Joi.string()\n .required()\n .description(\n 'Unique identifier for the section, used in code and page references'\n ),\n title: Joi.string()\n .required()\n .description('Human-readable section title displayed to users'),\n hideTitle: Joi.boolean()\n .optional()\n .default(false)\n .description(\n 'When true, the section title will not be displayed in the UI'\n )\n })\n\nconst conditionFieldSchema = Joi.object<ConditionFieldData>()\n .description('Field reference used in a condition')\n .keys({\n name: Joi.string()\n .required()\n .description('Component name referenced by this condition'),\n type: Joi.string()\n .required()\n .description('Data type of the field (e.g., string, number, date)'),\n display: Joi.string()\n .required()\n .description('Human-readable name of the field for display purposes')\n })\n\nconst conditionValueSchema = Joi.object<ConditionValueData>()\n .description('Value specification for a condition')\n .keys({\n type: Joi.string()\n .required()\n .description('Data type of the value (e.g., string, number, date)'),\n value: Joi.string()\n .required()\n .description('The actual value to compare against'),\n display: Joi.string()\n .required()\n .description('Human-readable version of the value for display purposes')\n })\n\nconst relativeDateValueSchema = Joi.object<RelativeDateValueData>()\n .description('Relative date specification for date-based conditions')\n .keys({\n type: Joi.string()\n .required()\n .description('Data type identifier, should be \"RelativeDate\"'),\n period: Joi.string()\n .required()\n .description('Numeric amount of the time period, as a string'),\n unit: Joi.string()\n .required()\n .description('Time unit (e.g., days, weeks, months, years)'),\n direction: Joi.string()\n .required()\n .description('Temporal direction, either \"past\" or \"future\"')\n })\n\nconst conditionRefSchema = Joi.object<ConditionRefData>()\n .description('Reference to a named condition defined elsewhere')\n .keys({\n conditionName: Joi.string()\n .required()\n .description('Name of the referenced condition'),\n conditionDisplayName: Joi.string()\n .required()\n .description('Human-readable name of the condition for display purposes'),\n coordinator: Joi.string()\n .optional()\n .description(\n 'Logical operator connecting this condition with others (AND, OR)'\n )\n })\n\nconst conditionSchema = Joi.object<ConditionData>()\n .description('Condition definition specifying a logical comparison')\n .keys({\n field: conditionFieldSchema.description(\n 'The form field being evaluated in this condition'\n ),\n operator: Joi.string()\n .required()\n .description('Comparison operator (equals, greaterThan, contains, etc.)'),\n value: Joi.alternatives()\n .try(conditionValueSchema, relativeDateValueSchema)\n .description(\n 'Value to compare the field against, either fixed or relative date'\n ),\n coordinator: Joi.string()\n .optional()\n .description(\n 'Logical operator connecting this condition with others (AND, OR)'\n )\n })\n\nconst conditionGroupSchema = Joi.object<ConditionGroupData>()\n .description('Group of conditions combined with logical operators')\n .keys({\n conditions: Joi.array()\n .items(\n Joi.alternatives().try(\n conditionSchema,\n conditionRefSchema,\n Joi.link('#conditionGroupSchema')\n )\n )\n .description('Array of conditions or condition references in this group')\n })\n .id('conditionGroupSchema')\n\nconst conditionsModelSchema = Joi.object<ConditionsModelData>()\n .description('Complete condition model with name and condition set')\n .keys({\n name: Joi.string()\n .required()\n .description('Unique identifier for the condition set'),\n conditions: Joi.array()\n .items(\n Joi.alternatives().try(\n conditionSchema,\n conditionRefSchema,\n conditionGroupSchema\n )\n )\n .description(\n 'Array of conditions, condition references, or condition groups'\n )\n })\n\nconst conditionWrapperSchema = Joi.object<ConditionWrapper>()\n .description('Container for a named condition with its definition')\n .keys({\n name: Joi.string()\n .required()\n .description('Unique identifier used to reference this condition'),\n displayName: Joi.string().description(\n 'Human-readable name for display in the UI'\n ),\n value: conditionsModelSchema\n .required()\n .description('The complete condition definition')\n })\n\nexport const componentSchema = Joi.object<ComponentDef>()\n .description('Form component definition specifying UI element behavior')\n .keys({\n id: Joi.string()\n .uuid()\n .optional()\n .description('Unique identifier for the component'),\n type: Joi.string<ComponentType>()\n .required()\n .description('Component type (TextField, RadioButtons, DateField, etc.)'),\n shortDescription: Joi.string()\n .optional()\n .description('Brief description of the component purpose'),\n name: Joi.when('type', {\n is: Joi.string().valid(\n ComponentType.Details,\n ComponentType.Html,\n ComponentType.InsetText,\n ComponentType.Markdown\n ),\n then: Joi.string()\n .pattern(/^[a-zA-Z]+$/)\n .optional()\n .description('Optional identifier for display-only components'),\n otherwise: Joi.string()\n .pattern(/^[a-zA-Z]+$/)\n .description('Unique identifier for the component, used in form data')\n }),\n title: Joi.when('type', {\n is: Joi.string().valid(\n ComponentType.Details,\n ComponentType.Html,\n ComponentType.InsetText,\n ComponentType.Markdown\n ),\n then: Joi.string()\n .optional()\n .description('Optional title for display-only components'),\n otherwise: Joi.string()\n .allow('')\n .description('Label displayed above the component')\n }),\n hint: Joi.string()\n .allow('')\n .optional()\n .description(\n 'Additional guidance text displayed below the component title'\n ),\n options: Joi.object({\n rows: Joi.number()\n .empty('')\n .description('Number of rows for textarea components'),\n maxWords: Joi.number()\n .empty('')\n .description('Maximum number of words allowed in text inputs'),\n maxDaysInPast: Joi.number()\n .empty('')\n .description('Maximum days in the past allowed for date inputs'),\n maxDaysInFuture: Joi.number()\n .empty('')\n .description('Maximum days in the future allowed for date inputs'),\n customValidationMessage: Joi.string()\n .allow('')\n .description('Custom error message for validation failures'),\n customValidationMessages: Joi.object<LanguageMessages>()\n .unknown(true)\n .optional()\n .description('Custom error messages keyed by validation rule name')\n })\n .default({})\n .unknown(true)\n .description('Component-specific configuration options'),\n schema: Joi.object({\n min: Joi.number()\n .empty('')\n .description('Minimum value or length for validation'),\n max: Joi.number()\n .empty('')\n .description('Maximum value or length for validation'),\n length: Joi.number()\n .empty('')\n .description('Exact length required for validation')\n })\n .unknown(true)\n .default({})\n .description('Validation rules for the component'),\n list: Joi.string()\n .optional()\n .description(\n 'Reference to a predefined list of options for select components'\n )\n })\n .unknown(true)\n\nexport const componentSchemaV2 = componentSchema\n .keys({\n id: Joi.string()\n .uuid()\n .default(() => uuidV4())\n .description('Auto-generated unique identifier for the component')\n })\n .description('Enhanced component schema for V2 forms with auto-generated IDs')\n\nconst nextSchema = Joi.object<Link>()\n .description('Navigation link defining where to go after completing a page')\n .keys({\n path: Joi.string()\n .required()\n .description('The target page path to navigate to'),\n condition: Joi.string()\n .allow('')\n .optional()\n .description(\n 'Optional condition that determines if this path should be taken'\n ),\n redirect: Joi.string()\n .optional()\n .description(\n 'Optional external URL to redirect to instead of an internal page'\n )\n })\n\nconst repeatOptions = Joi.object<RepeatOptions>()\n .description('Configuration options for a repeatable page section')\n .keys({\n name: Joi.string()\n .required()\n .description(\n 'Identifier for the repeatable section, used in data structure'\n ),\n title: Joi.string()\n .required()\n .description('Title displayed for each repeatable item')\n })\n\nconst repeatSchema = Joi.object<RepeatSchema>()\n .description('Validation rules for a repeatable section')\n .keys({\n min: Joi.number()\n .empty('')\n .required()\n .description('Minimum number of repetitions required'),\n max: Joi.number()\n .empty('')\n .required()\n .description('Maximum number of repetitions allowed')\n })\n\nconst pageRepeatSchema = Joi.object<Repeat>()\n .description('Complete configuration for a repeatable page')\n .keys({\n options: repeatOptions\n .required()\n .description('Display and identification options for the repetition'),\n schema: repeatSchema\n .required()\n .description('Validation constraints for the number of repetitions')\n })\n\nconst eventSchema = Joi.object<Event>()\n .description('Event handler configuration for page lifecycle events')\n .keys({\n type: Joi.string()\n .allow('http')\n .required()\n .description(\n 'Type of the event handler (currently only \"http\" supported)'\n ),\n options: Joi.object<EventOptions>()\n .description('Options specific to the event handler type')\n .keys({\n method: Joi.string()\n .allow('POST')\n .required()\n .description('HTTP method to use for the request'),\n url: Joi.string()\n .uri({ scheme: ['http', 'https'] })\n .required()\n .description('URL endpoint to call when the event fires')\n })\n })\n\nconst eventsSchema = Joi.object<Events>()\n .description(\n 'Collection of event handlers for different page lifecycle events'\n )\n .keys({\n onLoad: eventSchema\n .optional()\n .description('Event handler triggered when the page is loaded'),\n onSave: eventSchema\n .optional()\n .description('Event handler triggered when the page data is saved')\n })\n\n/**\n * `/status` is a special route for providing a user's application status.\n * It should not be configured via the designer.\n */\nexport const pageSchema = Joi.object<Page>()\n .description('Form page definition specifying content and behavior')\n .keys({\n id: Joi.string()\n .uuid()\n .optional()\n .description('Unique identifier for the page'),\n path: Joi.string()\n .required()\n .disallow('/status')\n .description(\n 'URL path for this page, must not be the reserved \"/status\" path'\n ),\n title: Joi.string()\n .required()\n .description('Page title displayed at the top of the page'),\n section: Joi.string().description('Section this page belongs to'),\n controller: Joi.string()\n .optional()\n .description('Custom controller class name for special page behavior'),\n components: Joi.array<ComponentDef>()\n .items(componentSchema)\n .unique('name')\n .description('UI components displayed on this page'),\n repeat: Joi.when('controller', {\n is: Joi.string().valid('RepeatPageController').required(),\n then: pageRepeatSchema\n .required()\n .description(\n 'Configuration for repeatable pages, required when using RepeatPageController'\n ),\n otherwise: Joi.any().strip()\n }),\n condition: Joi.string()\n .allow('')\n .optional()\n .description('Optional condition that determines if this page is shown'),\n next: Joi.array<Link>()\n .items(nextSchema)\n .default([])\n .description('Possible navigation paths after this page'),\n events: eventsSchema\n .optional()\n .description('Event handlers for page lifecycle events'),\n view: Joi.string()\n .optional()\n .description(\n 'Optional custom view template to use for rendering this page'\n )\n })\n\n/**\n * V2 engine schema - used with new editor\n */\nexport const pageSchemaV2 = pageSchema\n .append({\n title: Joi.string()\n .allow('')\n .required()\n .description('Page title with enhanced support for empty titles in V2')\n })\n .description(\n 'Enhanced page schema for V2 forms with support for empty titles'\n )\n\nexport const pageSchemaPayloadV2 = pageSchemaV2\n .keys({\n id: Joi.string()\n .uuid()\n .default(() => uuidV4())\n .description('Auto-generated unique identifier for the page'),\n components: Joi.array<ComponentDef>()\n .items(componentSchemaV2)\n .unique('name')\n .unique('id', { ignoreUndefined: true })\n .description('Components with auto-generated IDs')\n })\n .description(\n 'Page schema for payload data with auto-generated IDs for pages and components'\n )\n\nconst baseListItemSchema = Joi.object<Item>()\n .description('Base schema for list items with common properties')\n .keys({\n text: Joi.string().allow('').description('Display text shown to the user'),\n description: Joi.string()\n .allow('')\n .optional()\n .description('Optional additional descriptive text for the item'),\n conditional: Joi.object<Item['conditional']>()\n .description('Optional components to show when this item is selected')\n .keys({\n components: Joi.array<ComponentDef>()\n .required()\n .items(componentSchema.unknown(true))\n .unique('name')\n .description('Components to display conditionally')\n })\n .optional(),\n condition: Joi.string()\n .allow('')\n .optional()\n .description('Condition that determines if this item is shown'),\n hint: Joi.string()\n .allow('')\n .optional()\n .description('Optional hint text to be shown on list item')\n })\n\nconst stringListItemSchema = baseListItemSchema\n .append({\n value: Joi.string()\n .required()\n .description('String value stored when this item is selected')\n })\n .description('List item with string value')\n\nconst numberListItemSchema = baseListItemSchema\n .append({\n value: Joi.number()\n .required()\n .description('Numeric value stored when this item is selected')\n })\n .description('List item with numeric value')\n\nexport const listSchema = Joi.object<List>()\n .description('Reusable list of options for select components')\n .keys({\n id: Joi.string()\n .uuid()\n .optional()\n .description('Unique identifier for the list'),\n name: Joi.string()\n .required()\n .description('Name used to reference this list from components'),\n title: Joi.string()\n .required()\n .description('Human-readable title for the list'),\n type: Joi.string()\n .required()\n .valid('string', 'number')\n .description('Data type for list values (string or number)'),\n items: Joi.when('type', {\n is: 'string',\n then: Joi.array()\n .items(stringListItemSchema)\n .unique('text')\n .unique('value')\n .description('Array of items with string values'),\n otherwise: Joi.array()\n .items(numberListItemSchema)\n .unique('text')\n .unique('value')\n .description('Array of items with numeric values')\n })\n })\n\n/**\n * v2 Joi schema for Lists\n */\nexport const listSchemaV2 = listSchema\n .keys({\n id: Joi.string()\n .uuid()\n .default(() => uuidV4())\n .description('Auto-generated unique identifier for the list')\n })\n .description('Enhanced list schema for V2 forms with auto-generated IDs')\n\nconst feedbackSchema = Joi.object<FormDefinition['feedback']>()\n .description('Feedback configuration for the form')\n .keys({\n feedbackForm: Joi.boolean()\n .default(false)\n .description('Whether to show the built-in feedback form'),\n url: Joi.when('feedbackForm', {\n is: Joi.boolean().valid(false),\n then: Joi.string()\n .optional()\n .allow('')\n .description(\n 'URL to an external feedback form when not using built-in feedback'\n )\n }),\n emailAddress: Joi.string()\n .email({\n tlds: {\n allow: false\n }\n })\n .optional()\n .description('Email address where feedback is sent')\n })\n\nconst phaseBannerSchema = Joi.object<PhaseBanner>()\n .description('Phase banner configuration showing development status')\n .keys({\n phase: Joi.string()\n .valid('alpha', 'beta')\n .description('Development phase of the service (alpha or beta)')\n })\n\nconst outputSchema = Joi.object<FormDefinition['output']>()\n .description('Configuration for form submission output')\n .keys({\n audience: Joi.string()\n .valid('human', 'machine')\n .required()\n .description(\n 'Target audience for the output (human readable or machine processable)'\n ),\n version: Joi.string()\n .required()\n .description('Version identifier for the output format')\n })\n\n/**\n * Joi schema for `FormDefinition` interface\n * @see {@link FormDefinition}\n */\nexport const formDefinitionSchema = Joi.object<FormDefinition>()\n .description('Complete form definition describing all aspects of a form')\n .required()\n .keys({\n engine: Joi.string()\n .allow('V1', 'V2')\n .default('V1')\n .description('Form engine version to use (V1 or V2)'),\n name: Joi.string()\n .allow('')\n .optional()\n .description('Unique name identifying the form'),\n feedback: feedbackSchema\n .optional()\n .description('Feedback mechanism configuration'),\n startPage: Joi.string()\n .optional()\n .description('Path of the first page to show when starting the form'),\n pages: Joi.array<Page>()\n .required()\n .when('engine', {\n is: 'V2',\n then: Joi.array<Page>()\n .items(pageSchemaV2)\n .description('Pages using V2 schema with enhanced features'),\n otherwise: Joi.array<Page>()\n .items(pageSchema)\n .description('Pages using standard V1 schema')\n })\n .unique('path')\n .unique('id', { ignoreUndefined: true })\n .description('All pages within the form'),\n sections: Joi.array<Section>()\n .items(sectionsSchema)\n .unique('name')\n .unique('title')\n .required()\n .description('Sections grouping related pages together'),\n conditions: Joi.array<ConditionWrapper>()\n .items(conditionWrapperSchema)\n .unique('name')\n .unique('displayName')\n .description('Named conditions used for form logic'),\n lists: Joi.array<List>()\n .items(listSchema)\n .unique('name')\n .unique('title')\n .description('Reusable lists of options for select components'),\n metadata: Joi.object({ a: Joi.any() })\n .unknown()\n .optional()\n .description('Custom metadata for the form'),\n declaration: Joi.string()\n .allow('')\n .optional()\n .description('Declaration text shown on the summary page'),\n skipSummary: Joi.any()\n .strip()\n .description('option to skip the summary page'),\n phaseBanner: phaseBannerSchema\n .optional()\n .description('Phase banner configuration'),\n outputEmail: Joi.string()\n .email({ tlds: { allow: ['uk'] } })\n .trim()\n .optional()\n .description('Email address where form submissions are sent'),\n output: outputSchema\n .optional()\n .description('Configuration for submission output format')\n })\n\nexport const formDefinitionV2PayloadSchema = formDefinitionSchema\n .keys({\n pages: Joi.array<Page>()\n .items(pageSchemaPayloadV2)\n .required()\n .unique('path')\n .unique('id', { ignoreUndefined: true })\n .description('Pages with auto-generated IDs for V2 forms'),\n lists: Joi.array<List>()\n .items(listSchemaV2)\n .unique('name')\n .unique('title')\n .unique('id', { ignoreUndefined: true })\n .description('Lists with auto-generated IDs for V2 forms')\n })\n .description(\n 'Enhanced form definition schema for V2 payloads with auto-generated IDs'\n )\n\n// Maintain compatibility with legacy named export\n// E.g. `import { Schema } from '@defra/forms-model'`\nexport const Schema = formDefinitionSchema\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"index.js","names":["Joi","v4","uuidV4","ComponentType","sectionsSchema","object","description","keys","name","string","required","title","hideTitle","boolean","optional","default","conditionFieldSchema","type","display","conditionValueSchema","value","relativeDateValueSchema","period","unit","direction","conditionRefSchema","conditionName","conditionDisplayName","coordinator","conditionSchema","field","operator","alternatives","try","conditionGroupSchema","conditions","array","items","link","id","conditionsModelSchema","conditionWrapperSchema","displayName","componentSchema","uuid","shortDescription","when","is","valid","Details","Html","InsetText","Markdown","then","pattern","otherwise","allow","hint","options","rows","number","empty","maxWords","maxDaysInPast","maxDaysInFuture","customValidationMessage","customValidationMessages","unknown","schema","min","max","length","list","componentSchemaV2","nextSchema","path","condition","redirect","repeatOptions","repeatSchema","pageRepeatSchema","eventSchema","method","url","uri","scheme","eventsSchema","onLoad","onSave","pageSchema","disallow","section","controller","components","unique","repeat","any","strip","next","events","view","pageSchemaV2","append","pageSchemaPayloadV2","ignoreUndefined","baseListItemSchema","text","conditional","stringListItemSchema","numberListItemSchema","listSchema","listSchemaV2","feedbackSchema","feedbackForm","emailAddress","email","tlds","phaseBannerSchema","phase","outputSchema","audience","version","formDefinitionSchema","engine","feedback","startPage","pages","sections","lists","metadata","a","declaration","skipSummary","phaseBanner","outputEmail","trim","output","formDefinitionV2PayloadSchema","Schema"],"sources":["../../../../src/form/form-definition/index.ts"],"sourcesContent":["import Joi, { type LanguageMessages } from 'joi'\nimport { v4 as uuidV4 } from 'uuid'\n\nimport { ComponentType } from '~/src/components/enums.js'\nimport { type ComponentDef } from '~/src/components/types.js'\nimport {\n type ConditionData,\n type ConditionFieldData,\n type ConditionGroupData,\n type ConditionRefData,\n type ConditionValueData,\n type ConditionsModelData,\n type RelativeDateValueData\n} from '~/src/conditions/types.js'\nimport {\n type ConditionWrapper,\n type Event,\n type EventOptions,\n type Events,\n type FormDefinition,\n type Item,\n type Link,\n type List,\n type Page,\n type PhaseBanner,\n type Repeat,\n type RepeatOptions,\n type RepeatSchema,\n type Section\n} from '~/src/form/form-definition/types.js'\n\nconst sectionsSchema = Joi.object<Section>()\n .description('A form section grouping related pages together')\n .keys({\n name: Joi.string()\n .required()\n .description(\n 'Unique identifier for the section, used in code and page references'\n ),\n title: Joi.string()\n .required()\n .description('Human-readable section title displayed to users'),\n hideTitle: Joi.boolean()\n .optional()\n .default(false)\n .description(\n 'When true, the section title will not be displayed in the UI'\n )\n })\n\nconst conditionFieldSchema = Joi.object<ConditionFieldData>()\n .description('Field reference used in a condition')\n .keys({\n name: Joi.string()\n .required()\n .description('Component name referenced by this condition'),\n type: Joi.string()\n .required()\n .description('Data type of the field (e.g., string, number, date)'),\n display: Joi.string()\n .required()\n .description('Human-readable name of the field for display purposes')\n })\n\nconst conditionValueSchema = Joi.object<ConditionValueData>()\n .description('Value specification for a condition')\n .keys({\n type: Joi.string()\n .required()\n .description('Data type of the value (e.g., string, number, date)'),\n value: Joi.string()\n .required()\n .description('The actual value to compare against'),\n display: Joi.string()\n .required()\n .description('Human-readable version of the value for display purposes')\n })\n\nconst relativeDateValueSchema = Joi.object<RelativeDateValueData>()\n .description('Relative date specification for date-based conditions')\n .keys({\n type: Joi.string()\n .required()\n .description('Data type identifier, should be \"RelativeDate\"'),\n period: Joi.string()\n .required()\n .description('Numeric amount of the time period, as a string'),\n unit: Joi.string()\n .required()\n .description('Time unit (e.g., days, weeks, months, years)'),\n direction: Joi.string()\n .required()\n .description('Temporal direction, either \"past\" or \"future\"')\n })\n\nconst conditionRefSchema = Joi.object<ConditionRefData>()\n .description('Reference to a named condition defined elsewhere')\n .keys({\n conditionName: Joi.string()\n .required()\n .description('Name of the referenced condition'),\n conditionDisplayName: Joi.string()\n .required()\n .description('Human-readable name of the condition for display purposes'),\n coordinator: Joi.string()\n .optional()\n .description(\n 'Logical operator connecting this condition with others (AND, OR)'\n )\n })\n\nconst conditionSchema = Joi.object<ConditionData>()\n .description('Condition definition specifying a logical comparison')\n .keys({\n field: conditionFieldSchema.description(\n 'The form field being evaluated in this condition'\n ),\n operator: Joi.string()\n .required()\n .description('Comparison operator (equals, greaterThan, contains, etc.)'),\n value: Joi.alternatives()\n .try(conditionValueSchema, relativeDateValueSchema)\n .description(\n 'Value to compare the field against, either fixed or relative date'\n ),\n coordinator: Joi.string()\n .optional()\n .description(\n 'Logical operator connecting this condition with others (AND, OR)'\n )\n })\n\nconst conditionGroupSchema = Joi.object<ConditionGroupData>()\n .description('Group of conditions combined with logical operators')\n .keys({\n conditions: Joi.array()\n .items(\n Joi.alternatives().try(\n conditionSchema,\n conditionRefSchema,\n Joi.link('#conditionGroupSchema')\n )\n )\n .description('Array of conditions or condition references in this group')\n })\n .id('conditionGroupSchema')\n\nconst conditionsModelSchema = Joi.object<ConditionsModelData>()\n .description('Complete condition model with name and condition set')\n .keys({\n name: Joi.string()\n .required()\n .description('Unique identifier for the condition set'),\n conditions: Joi.array()\n .items(\n Joi.alternatives().try(\n conditionSchema,\n conditionRefSchema,\n conditionGroupSchema\n )\n )\n .description(\n 'Array of conditions, condition references, or condition groups'\n )\n })\n\nconst conditionWrapperSchema = Joi.object<ConditionWrapper>()\n .description('Container for a named condition with its definition')\n .keys({\n name: Joi.string()\n .required()\n .description('Unique identifier used to reference this condition'),\n displayName: Joi.string().description(\n 'Human-readable name for display in the UI'\n ),\n value: conditionsModelSchema\n .required()\n .description('The complete condition definition')\n })\n\nexport const componentSchema = Joi.object<ComponentDef>()\n .description('Form component definition specifying UI element behavior')\n .keys({\n id: Joi.string()\n .uuid()\n .optional()\n .description('Unique identifier for the component'),\n type: Joi.string<ComponentType>()\n .required()\n .description('Component type (TextField, RadioButtons, DateField, etc.)'),\n shortDescription: Joi.string()\n .optional()\n .description('Brief description of the component purpose'),\n name: Joi.when('type', {\n is: Joi.string().valid(\n ComponentType.Details,\n ComponentType.Html,\n ComponentType.InsetText,\n ComponentType.Markdown\n ),\n then: Joi.string()\n .pattern(/^[a-zA-Z]+$/)\n .optional()\n .description('Optional identifier for display-only components'),\n otherwise: Joi.string()\n .pattern(/^[a-zA-Z]+$/)\n .description('Unique identifier for the component, used in form data')\n }),\n title: Joi.when('type', {\n is: Joi.string().valid(\n ComponentType.Details,\n ComponentType.Html,\n ComponentType.InsetText,\n ComponentType.Markdown\n ),\n then: Joi.string()\n .optional()\n .description('Optional title for display-only components'),\n otherwise: Joi.string()\n .allow('')\n .description('Label displayed above the component')\n }),\n hint: Joi.string()\n .allow('')\n .optional()\n .description(\n 'Additional guidance text displayed below the component title'\n ),\n options: Joi.object({\n rows: Joi.number()\n .empty('')\n .description('Number of rows for textarea components'),\n maxWords: Joi.number()\n .empty('')\n .description('Maximum number of words allowed in text inputs'),\n maxDaysInPast: Joi.number()\n .empty('')\n .description('Maximum days in the past allowed for date inputs'),\n maxDaysInFuture: Joi.number()\n .empty('')\n .description('Maximum days in the future allowed for date inputs'),\n customValidationMessage: Joi.string()\n .allow('')\n .description('Custom error message for validation failures'),\n customValidationMessages: Joi.object<LanguageMessages>()\n .unknown(true)\n .optional()\n .description('Custom error messages keyed by validation rule name')\n })\n .default({})\n .unknown(true)\n .description('Component-specific configuration options'),\n schema: Joi.object({\n min: Joi.number()\n .empty('')\n .description('Minimum value or length for validation'),\n max: Joi.number()\n .empty('')\n .description('Maximum value or length for validation'),\n length: Joi.number()\n .empty('')\n .description('Exact length required for validation')\n })\n .unknown(true)\n .default({})\n .description('Validation rules for the component'),\n list: Joi.string()\n .optional()\n .description(\n 'Reference to a predefined list of options for select components'\n )\n })\n .unknown(true)\n\nexport const componentSchemaV2 = componentSchema\n .keys({\n id: Joi.string()\n .uuid()\n .default(() => uuidV4())\n .description('Auto-generated unique identifier for the component')\n })\n .description('Enhanced component schema for V2 forms with auto-generated IDs')\n\nconst nextSchema = Joi.object<Link>()\n .description('Navigation link defining where to go after completing a page')\n .keys({\n path: Joi.string()\n .required()\n .description('The target page path to navigate to'),\n condition: Joi.string()\n .allow('')\n .optional()\n .description(\n 'Optional condition that determines if this path should be taken'\n ),\n redirect: Joi.string()\n .optional()\n .description(\n 'Optional external URL to redirect to instead of an internal page'\n )\n })\n\nconst repeatOptions = Joi.object<RepeatOptions>()\n .description('Configuration options for a repeatable page section')\n .keys({\n name: Joi.string()\n .required()\n .description(\n 'Identifier for the repeatable section, used in data structure'\n ),\n title: Joi.string()\n .required()\n .description('Title displayed for each repeatable item')\n })\n\nconst repeatSchema = Joi.object<RepeatSchema>()\n .description('Validation rules for a repeatable section')\n .keys({\n min: Joi.number()\n .empty('')\n .required()\n .description('Minimum number of repetitions required'),\n max: Joi.number()\n .empty('')\n .required()\n .description('Maximum number of repetitions allowed')\n })\n\nconst pageRepeatSchema = Joi.object<Repeat>()\n .description('Complete configuration for a repeatable page')\n .keys({\n options: repeatOptions\n .required()\n .description('Display and identification options for the repetition'),\n schema: repeatSchema\n .required()\n .description('Validation constraints for the number of repetitions')\n })\n\nconst eventSchema = Joi.object<Event>()\n .description('Event handler configuration for page lifecycle events')\n .keys({\n type: Joi.string()\n .allow('http')\n .required()\n .description(\n 'Type of the event handler (currently only \"http\" supported)'\n ),\n options: Joi.object<EventOptions>()\n .description('Options specific to the event handler type')\n .keys({\n method: Joi.string()\n .allow('POST')\n .required()\n .description('HTTP method to use for the request'),\n url: Joi.string()\n .uri({ scheme: ['http', 'https'] })\n .required()\n .description('URL endpoint to call when the event fires')\n })\n })\n\nconst eventsSchema = Joi.object<Events>()\n .description(\n 'Collection of event handlers for different page lifecycle events'\n )\n .keys({\n onLoad: eventSchema\n .optional()\n .description('Event handler triggered when the page is loaded'),\n onSave: eventSchema\n .optional()\n .description('Event handler triggered when the page data is saved')\n })\n\n/**\n * `/status` is a special route for providing a user's application status.\n * It should not be configured via the designer.\n */\nexport const pageSchema = Joi.object<Page>()\n .description('Form page definition specifying content and behavior')\n .keys({\n id: Joi.string()\n .uuid()\n .optional()\n .description('Unique identifier for the page'),\n path: Joi.string()\n .required()\n .disallow('/status')\n .description(\n 'URL path for this page, must not be the reserved \"/status\" path'\n ),\n title: Joi.string()\n .required()\n .description('Page title displayed at the top of the page'),\n section: Joi.string().description('Section this page belongs to'),\n controller: Joi.string()\n .optional()\n .description('Custom controller class name for special page behavior'),\n components: Joi.array<ComponentDef>()\n .items(componentSchema)\n .unique('name')\n .description('UI components displayed on this page'),\n repeat: Joi.when('controller', {\n is: Joi.string().valid('RepeatPageController').required(),\n then: pageRepeatSchema\n .required()\n .description(\n 'Configuration for repeatable pages, required when using RepeatPageController'\n ),\n otherwise: Joi.any().strip()\n }),\n condition: Joi.string()\n .allow('')\n .optional()\n .description('Optional condition that determines if this page is shown'),\n next: Joi.array<Link>()\n .items(nextSchema)\n .default([])\n .description('Possible navigation paths after this page'),\n events: eventsSchema\n .optional()\n .description('Event handlers for page lifecycle events'),\n view: Joi.string()\n .optional()\n .description(\n 'Optional custom view template to use for rendering this page'\n )\n })\n\n/**\n * V2 engine schema - used with new editor\n */\nexport const pageSchemaV2 = pageSchema\n .append({\n title: Joi.string()\n .allow('')\n .required()\n .description('Page title with enhanced support for empty titles in V2')\n })\n .description(\n 'Enhanced page schema for V2 forms with support for empty titles'\n )\n\nexport const pageSchemaPayloadV2 = pageSchemaV2\n .keys({\n id: Joi.string()\n .uuid()\n .default(() => uuidV4())\n .description('Auto-generated unique identifier for the page'),\n components: Joi.array<ComponentDef>()\n .items(componentSchemaV2)\n .unique('name')\n .unique('id', { ignoreUndefined: true })\n .description('Components with auto-generated IDs')\n })\n .description(\n 'Page schema for payload data with auto-generated IDs for pages and components'\n )\n\nconst baseListItemSchema = Joi.object<Item>()\n .description('Base schema for list items with common properties')\n .keys({\n id: Joi.string()\n .uuid()\n .default(() => uuidV4()),\n text: Joi.string().allow('').description('Display text shown to the user'),\n description: Joi.string()\n .allow('')\n .optional()\n .description('Optional additional descriptive text for the item'),\n conditional: Joi.object<Item['conditional']>()\n .description('Optional components to show when this item is selected')\n .keys({\n components: Joi.array<ComponentDef>()\n .required()\n .items(componentSchema.unknown(true))\n .unique('name')\n .description('Components to display conditionally')\n })\n .optional(),\n condition: Joi.string()\n .allow('')\n .optional()\n .description('Condition that determines if this item is shown'),\n hint: Joi.string()\n .allow('')\n .optional()\n .description('Optional hint text to be shown on list item')\n })\n\nconst stringListItemSchema = baseListItemSchema\n .append({\n value: Joi.string()\n .required()\n .description('String value stored when this item is selected')\n })\n .description('List item with string value')\n\nconst numberListItemSchema = baseListItemSchema\n .append({\n value: Joi.number()\n .required()\n .description('Numeric value stored when this item is selected')\n })\n .description('List item with numeric value')\n\nexport const listSchema = Joi.object<List>()\n .description('Reusable list of options for select components')\n .keys({\n id: Joi.string()\n .uuid()\n .optional()\n .description('Unique identifier for the list'),\n name: Joi.string()\n .required()\n .description('Name used to reference this list from components'),\n title: Joi.string()\n .required()\n .description('Human-readable title for the list'),\n type: Joi.string()\n .required()\n .valid('string', 'number')\n .description('Data type for list values (string or number)'),\n items: Joi.when('type', {\n is: 'string',\n then: Joi.array()\n .items(stringListItemSchema)\n .unique('text')\n .unique('value')\n .description('Array of items with string values'),\n otherwise: Joi.array()\n .items(numberListItemSchema)\n .unique('text')\n .unique('value')\n .description('Array of items with numeric values')\n })\n })\n\n/**\n * v2 Joi schema for Lists\n */\nexport const listSchemaV2 = listSchema\n .keys({\n id: Joi.string()\n .uuid()\n .default(() => uuidV4())\n .description('Auto-generated unique identifier for the list')\n })\n .description('Enhanced list schema for V2 forms with auto-generated IDs')\n\nconst feedbackSchema = Joi.object<FormDefinition['feedback']>()\n .description('Feedback configuration for the form')\n .keys({\n feedbackForm: Joi.boolean()\n .default(false)\n .description('Whether to show the built-in feedback form'),\n url: Joi.when('feedbackForm', {\n is: Joi.boolean().valid(false),\n then: Joi.string()\n .optional()\n .allow('')\n .description(\n 'URL to an external feedback form when not using built-in feedback'\n )\n }),\n emailAddress: Joi.string()\n .email({\n tlds: {\n allow: false\n }\n })\n .optional()\n .description('Email address where feedback is sent')\n })\n\nconst phaseBannerSchema = Joi.object<PhaseBanner>()\n .description('Phase banner configuration showing development status')\n .keys({\n phase: Joi.string()\n .valid('alpha', 'beta')\n .description('Development phase of the service (alpha or beta)')\n })\n\nconst outputSchema = Joi.object<FormDefinition['output']>()\n .description('Configuration for form submission output')\n .keys({\n audience: Joi.string()\n .valid('human', 'machine')\n .required()\n .description(\n 'Target audience for the output (human readable or machine processable)'\n ),\n version: Joi.string()\n .required()\n .description('Version identifier for the output format')\n })\n\n/**\n * Joi schema for `FormDefinition` interface\n * @see {@link FormDefinition}\n */\nexport const formDefinitionSchema = Joi.object<FormDefinition>()\n .description('Complete form definition describing all aspects of a form')\n .required()\n .keys({\n engine: Joi.string()\n .allow('V1', 'V2')\n .default('V1')\n .description('Form engine version to use (V1 or V2)'),\n name: Joi.string()\n .allow('')\n .optional()\n .description('Unique name identifying the form'),\n feedback: feedbackSchema\n .optional()\n .description('Feedback mechanism configuration'),\n startPage: Joi.string()\n .optional()\n .description('Path of the first page to show when starting the form'),\n pages: Joi.array<Page>()\n .required()\n .when('engine', {\n is: 'V2',\n then: Joi.array<Page>()\n .items(pageSchemaV2)\n .description('Pages using V2 schema with enhanced features'),\n otherwise: Joi.array<Page>()\n .items(pageSchema)\n .description('Pages using standard V1 schema')\n })\n .unique('path')\n .unique('id', { ignoreUndefined: true })\n .description('All pages within the form'),\n sections: Joi.array<Section>()\n .items(sectionsSchema)\n .unique('name')\n .unique('title')\n .required()\n .description('Sections grouping related pages together'),\n conditions: Joi.array<ConditionWrapper>()\n .items(conditionWrapperSchema)\n .unique('name')\n .unique('displayName')\n .description('Named conditions used for form logic'),\n lists: Joi.array<List>()\n .items(listSchema)\n .unique('name')\n .unique('title')\n .description('Reusable lists of options for select components'),\n metadata: Joi.object({ a: Joi.any() })\n .unknown()\n .optional()\n .description('Custom metadata for the form'),\n declaration: Joi.string()\n .allow('')\n .optional()\n .description('Declaration text shown on the summary page'),\n skipSummary: Joi.any()\n .strip()\n .description('option to skip the summary page'),\n phaseBanner: phaseBannerSchema\n .optional()\n .description('Phase banner configuration'),\n outputEmail: Joi.string()\n .email({ tlds: { allow: ['uk'] } })\n .trim()\n .optional()\n .description('Email address where form submissions are sent'),\n output: outputSchema\n .optional()\n .description('Configuration for submission output format')\n })\n\nexport const formDefinitionV2PayloadSchema = formDefinitionSchema\n .keys({\n pages: Joi.array<Page>()\n .items(pageSchemaPayloadV2)\n .required()\n .unique('path')\n .unique('id', { ignoreUndefined: true })\n .description('Pages with auto-generated IDs for V2 forms'),\n lists: Joi.array<List>()\n .items(listSchemaV2)\n .unique('name')\n .unique('title')\n .unique('id', { ignoreUndefined: true })\n .description('Lists with auto-generated IDs for V2 forms')\n })\n .description(\n 'Enhanced form definition schema for V2 payloads with auto-generated IDs'\n )\n\n// Maintain compatibility with legacy named export\n// E.g. `import { Schema } from '@defra/forms-model'`\nexport const Schema = formDefinitionSchema\n"],"mappings":"AAAA,OAAOA,GAAG,MAAiC,KAAK;AAChD,SAASC,EAAE,IAAIC,MAAM,QAAQ,MAAM;AAEnC,SAASC,aAAa;AA4BtB,MAAMC,cAAc,GAAGJ,GAAG,CAACK,MAAM,CAAU,CAAC,CACzCC,WAAW,CAAC,gDAAgD,CAAC,CAC7DC,IAAI,CAAC;EACJC,IAAI,EAAER,GAAG,CAACS,MAAM,CAAC,CAAC,CACfC,QAAQ,CAAC,CAAC,CACVJ,WAAW,CACV,qEACF,CAAC;EACHK,KAAK,EAAEX,GAAG,CAACS,MAAM,CAAC,CAAC,CAChBC,QAAQ,CAAC,CAAC,CACVJ,WAAW,CAAC,iDAAiD,CAAC;EACjEM,SAAS,EAAEZ,GAAG,CAACa,OAAO,CAAC,CAAC,CACrBC,QAAQ,CAAC,CAAC,CACVC,OAAO,CAAC,KAAK,CAAC,CACdT,WAAW,CACV,8DACF;AACJ,CAAC,CAAC;AAEJ,MAAMU,oBAAoB,GAAGhB,GAAG,CAACK,MAAM,CAAqB,CAAC,CAC1DC,WAAW,CAAC,qCAAqC,CAAC,CAClDC,IAAI,CAAC;EACJC,IAAI,EAAER,GAAG,CAACS,MAAM,CAAC,CAAC,CACfC,QAAQ,CAAC,CAAC,CACVJ,WAAW,CAAC,6CAA6C,CAAC;EAC7DW,IAAI,EAAEjB,GAAG,CAACS,MAAM,CAAC,CAAC,CACfC,QAAQ,CAAC,CAAC,CACVJ,WAAW,CAAC,qDAAqD,CAAC;EACrEY,OAAO,EAAElB,GAAG,CAACS,MAAM,CAAC,CAAC,CAClBC,QAAQ,CAAC,CAAC,CACVJ,WAAW,CAAC,uDAAuD;AACxE,CAAC,CAAC;AAEJ,MAAMa,oBAAoB,GAAGnB,GAAG,CAACK,MAAM,CAAqB,CAAC,CAC1DC,WAAW,CAAC,qCAAqC,CAAC,CAClDC,IAAI,CAAC;EACJU,IAAI,EAAEjB,GAAG,CAACS,MAAM,CAAC,CAAC,CACfC,QAAQ,CAAC,CAAC,CACVJ,WAAW,CAAC,qDAAqD,CAAC;EACrEc,KAAK,EAAEpB,GAAG,CAACS,MAAM,CAAC,CAAC,CAChBC,QAAQ,CAAC,CAAC,CACVJ,WAAW,CAAC,qCAAqC,CAAC;EACrDY,OAAO,EAAElB,GAAG,CAACS,MAAM,CAAC,CAAC,CAClBC,QAAQ,CAAC,CAAC,CACVJ,WAAW,CAAC,0DAA0D;AAC3E,CAAC,CAAC;AAEJ,MAAMe,uBAAuB,GAAGrB,GAAG,CAACK,MAAM,CAAwB,CAAC,CAChEC,WAAW,CAAC,uDAAuD,CAAC,CACpEC,IAAI,CAAC;EACJU,IAAI,EAAEjB,GAAG,CAACS,MAAM,CAAC,CAAC,CACfC,QAAQ,CAAC,CAAC,CACVJ,WAAW,CAAC,gDAAgD,CAAC;EAChEgB,MAAM,EAAEtB,GAAG,CAACS,MAAM,CAAC,CAAC,CACjBC,QAAQ,CAAC,CAAC,CACVJ,WAAW,CAAC,gDAAgD,CAAC;EAChEiB,IAAI,EAAEvB,GAAG,CAACS,MAAM,CAAC,CAAC,CACfC,QAAQ,CAAC,CAAC,CACVJ,WAAW,CAAC,8CAA8C,CAAC;EAC9DkB,SAAS,EAAExB,GAAG,CAACS,MAAM,CAAC,CAAC,CACpBC,QAAQ,CAAC,CAAC,CACVJ,WAAW,CAAC,+CAA+C;AAChE,CAAC,CAAC;AAEJ,MAAMmB,kBAAkB,GAAGzB,GAAG,CAACK,MAAM,CAAmB,CAAC,CACtDC,WAAW,CAAC,kDAAkD,CAAC,CAC/DC,IAAI,CAAC;EACJmB,aAAa,EAAE1B,GAAG,CAACS,MAAM,CAAC,CAAC,CACxBC,QAAQ,CAAC,CAAC,CACVJ,WAAW,CAAC,kCAAkC,CAAC;EAClDqB,oBAAoB,EAAE3B,GAAG,CAACS,MAAM,CAAC,CAAC,CAC/BC,QAAQ,CAAC,CAAC,CACVJ,WAAW,CAAC,2DAA2D,CAAC;EAC3EsB,WAAW,EAAE5B,GAAG,CAACS,MAAM,CAAC,CAAC,CACtBK,QAAQ,CAAC,CAAC,CACVR,WAAW,CACV,kEACF;AACJ,CAAC,CAAC;AAEJ,MAAMuB,eAAe,GAAG7B,GAAG,CAACK,MAAM,CAAgB,CAAC,CAChDC,WAAW,CAAC,sDAAsD,CAAC,CACnEC,IAAI,CAAC;EACJuB,KAAK,EAAEd,oBAAoB,CAACV,WAAW,CACrC,kDACF,CAAC;EACDyB,QAAQ,EAAE/B,GAAG,CAACS,MAAM,CAAC,CAAC,CACnBC,QAAQ,CAAC,CAAC,CACVJ,WAAW,CAAC,2DAA2D,CAAC;EAC3Ec,KAAK,EAAEpB,GAAG,CAACgC,YAAY,CAAC,CAAC,CACtBC,GAAG,CAACd,oBAAoB,EAAEE,uBAAuB,CAAC,CAClDf,WAAW,CACV,mEACF,CAAC;EACHsB,WAAW,EAAE5B,GAAG,CAACS,MAAM,CAAC,CAAC,CACtBK,QAAQ,CAAC,CAAC,CACVR,WAAW,CACV,kEACF;AACJ,CAAC,CAAC;AAEJ,MAAM4B,oBAAoB,GAAGlC,GAAG,CAACK,MAAM,CAAqB,CAAC,CAC1DC,WAAW,CAAC,qDAAqD,CAAC,CAClEC,IAAI,CAAC;EACJ4B,UAAU,EAAEnC,GAAG,CAACoC,KAAK,CAAC,CAAC,CACpBC,KAAK,CACJrC,GAAG,CAACgC,YAAY,CAAC,CAAC,CAACC,GAAG,CACpBJ,eAAe,EACfJ,kBAAkB,EAClBzB,GAAG,CAACsC,IAAI,CAAC,uBAAuB,CAClC,CACF,CAAC,CACAhC,WAAW,CAAC,2DAA2D;AAC5E,CAAC,CAAC,CACDiC,EAAE,CAAC,sBAAsB,CAAC;AAE7B,MAAMC,qBAAqB,GAAGxC,GAAG,CAACK,MAAM,CAAsB,CAAC,CAC5DC,WAAW,CAAC,sDAAsD,CAAC,CACnEC,IAAI,CAAC;EACJC,IAAI,EAAER,GAAG,CAACS,MAAM,CAAC,CAAC,CACfC,QAAQ,CAAC,CAAC,CACVJ,WAAW,CAAC,yCAAyC,CAAC;EACzD6B,UAAU,EAAEnC,GAAG,CAACoC,KAAK,CAAC,CAAC,CACpBC,KAAK,CACJrC,GAAG,CAACgC,YAAY,CAAC,CAAC,CAACC,GAAG,CACpBJ,eAAe,EACfJ,kBAAkB,EAClBS,oBACF,CACF,CAAC,CACA5B,WAAW,CACV,gEACF;AACJ,CAAC,CAAC;AAEJ,MAAMmC,sBAAsB,GAAGzC,GAAG,CAACK,MAAM,CAAmB,CAAC,CAC1DC,WAAW,CAAC,qDAAqD,CAAC,CAClEC,IAAI,CAAC;EACJC,IAAI,EAAER,GAAG,CAACS,MAAM,CAAC,CAAC,CACfC,QAAQ,CAAC,CAAC,CACVJ,WAAW,CAAC,oDAAoD,CAAC;EACpEoC,WAAW,EAAE1C,GAAG,CAACS,MAAM,CAAC,CAAC,CAACH,WAAW,CACnC,2CACF,CAAC;EACDc,KAAK,EAAEoB,qBAAqB,CACzB9B,QAAQ,CAAC,CAAC,CACVJ,WAAW,CAAC,mCAAmC;AACpD,CAAC,CAAC;AAEJ,OAAO,MAAMqC,eAAe,GAAG3C,GAAG,CAACK,MAAM,CAAe,CAAC,CACtDC,WAAW,CAAC,0DAA0D,CAAC,CACvEC,IAAI,CAAC;EACJgC,EAAE,EAAEvC,GAAG,CAACS,MAAM,CAAC,CAAC,CACbmC,IAAI,CAAC,CAAC,CACN9B,QAAQ,CAAC,CAAC,CACVR,WAAW,CAAC,qCAAqC,CAAC;EACrDW,IAAI,EAAEjB,GAAG,CAACS,MAAM,CAAgB,CAAC,CAC9BC,QAAQ,CAAC,CAAC,CACVJ,WAAW,CAAC,2DAA2D,CAAC;EAC3EuC,gBAAgB,EAAE7C,GAAG,CAACS,MAAM,CAAC,CAAC,CAC3BK,QAAQ,CAAC,CAAC,CACVR,WAAW,CAAC,4CAA4C,CAAC;EAC5DE,IAAI,EAAER,GAAG,CAAC8C,IAAI,CAAC,MAAM,EAAE;IACrBC,EAAE,EAAE/C,GAAG,CAACS,MAAM,CAAC,CAAC,CAACuC,KAAK,CACpB7C,aAAa,CAAC8C,OAAO,EACrB9C,aAAa,CAAC+C,IAAI,EAClB/C,aAAa,CAACgD,SAAS,EACvBhD,aAAa,CAACiD,QAChB,CAAC;IACDC,IAAI,EAAErD,GAAG,CAACS,MAAM,CAAC,CAAC,CACf6C,OAAO,CAAC,aAAa,CAAC,CACtBxC,QAAQ,CAAC,CAAC,CACVR,WAAW,CAAC,iDAAiD,CAAC;IACjEiD,SAAS,EAAEvD,GAAG,CAACS,MAAM,CAAC,CAAC,CACpB6C,OAAO,CAAC,aAAa,CAAC,CACtBhD,WAAW,CAAC,wDAAwD;EACzE,CAAC,CAAC;EACFK,KAAK,EAAEX,GAAG,CAAC8C,IAAI,CAAC,MAAM,EAAE;IACtBC,EAAE,EAAE/C,GAAG,CAACS,MAAM,CAAC,CAAC,CAACuC,KAAK,CACpB7C,aAAa,CAAC8C,OAAO,EACrB9C,aAAa,CAAC+C,IAAI,EAClB/C,aAAa,CAACgD,SAAS,EACvBhD,aAAa,CAACiD,QAChB,CAAC;IACDC,IAAI,EAAErD,GAAG,CAACS,MAAM,CAAC,CAAC,CACfK,QAAQ,CAAC,CAAC,CACVR,WAAW,CAAC,4CAA4C,CAAC;IAC5DiD,SAAS,EAAEvD,GAAG,CAACS,MAAM,CAAC,CAAC,CACpB+C,KAAK,CAAC,EAAE,CAAC,CACTlD,WAAW,CAAC,qCAAqC;EACtD,CAAC,CAAC;EACFmD,IAAI,EAAEzD,GAAG,CAACS,MAAM,CAAC,CAAC,CACf+C,KAAK,CAAC,EAAE,CAAC,CACT1C,QAAQ,CAAC,CAAC,CACVR,WAAW,CACV,8DACF,CAAC;EACHoD,OAAO,EAAE1D,GAAG,CAACK,MAAM,CAAC;IAClBsD,IAAI,EAAE3D,GAAG,CAAC4D,MAAM,CAAC,CAAC,CACfC,KAAK,CAAC,EAAE,CAAC,CACTvD,WAAW,CAAC,wCAAwC,CAAC;IACxDwD,QAAQ,EAAE9D,GAAG,CAAC4D,MAAM,CAAC,CAAC,CACnBC,KAAK,CAAC,EAAE,CAAC,CACTvD,WAAW,CAAC,gDAAgD,CAAC;IAChEyD,aAAa,EAAE/D,GAAG,CAAC4D,MAAM,CAAC,CAAC,CACxBC,KAAK,CAAC,EAAE,CAAC,CACTvD,WAAW,CAAC,kDAAkD,CAAC;IAClE0D,eAAe,EAAEhE,GAAG,CAAC4D,MAAM,CAAC,CAAC,CAC1BC,KAAK,CAAC,EAAE,CAAC,CACTvD,WAAW,CAAC,oDAAoD,CAAC;IACpE2D,uBAAuB,EAAEjE,GAAG,CAACS,MAAM,CAAC,CAAC,CAClC+C,KAAK,CAAC,EAAE,CAAC,CACTlD,WAAW,CAAC,8CAA8C,CAAC;IAC9D4D,wBAAwB,EAAElE,GAAG,CAACK,MAAM,CAAmB,CAAC,CACrD8D,OAAO,CAAC,IAAI,CAAC,CACbrD,QAAQ,CAAC,CAAC,CACVR,WAAW,CAAC,qDAAqD;EACtE,CAAC,CAAC,CACCS,OAAO,CAAC,CAAC,CAAC,CAAC,CACXoD,OAAO,CAAC,IAAI,CAAC,CACb7D,WAAW,CAAC,0CAA0C,CAAC;EAC1D8D,MAAM,EAAEpE,GAAG,CAACK,MAAM,CAAC;IACjBgE,GAAG,EAAErE,GAAG,CAAC4D,MAAM,CAAC,CAAC,CACdC,KAAK,CAAC,EAAE,CAAC,CACTvD,WAAW,CAAC,wCAAwC,CAAC;IACxDgE,GAAG,EAAEtE,GAAG,CAAC4D,MAAM,CAAC,CAAC,CACdC,KAAK,CAAC,EAAE,CAAC,CACTvD,WAAW,CAAC,wCAAwC,CAAC;IACxDiE,MAAM,EAAEvE,GAAG,CAAC4D,MAAM,CAAC,CAAC,CACjBC,KAAK,CAAC,EAAE,CAAC,CACTvD,WAAW,CAAC,sCAAsC;EACvD,CAAC,CAAC,CACC6D,OAAO,CAAC,IAAI,CAAC,CACbpD,OAAO,CAAC,CAAC,CAAC,CAAC,CACXT,WAAW,CAAC,oCAAoC,CAAC;EACpDkE,IAAI,EAAExE,GAAG,CAACS,MAAM,CAAC,CAAC,CACfK,QAAQ,CAAC,CAAC,CACVR,WAAW,CACV,iEACF;AACJ,CAAC,CAAC,CACD6D,OAAO,CAAC,IAAI,CAAC;AAEhB,OAAO,MAAMM,iBAAiB,GAAG9B,eAAe,CAC7CpC,IAAI,CAAC;EACJgC,EAAE,EAAEvC,GAAG,CAACS,MAAM,CAAC,CAAC,CACbmC,IAAI,CAAC,CAAC,CACN7B,OAAO,CAAC,MAAMb,MAAM,CAAC,CAAC,CAAC,CACvBI,WAAW,CAAC,oDAAoD;AACrE,CAAC,CAAC,CACDA,WAAW,CAAC,gEAAgE,CAAC;AAEhF,MAAMoE,UAAU,GAAG1E,GAAG,CAACK,MAAM,CAAO,CAAC,CAClCC,WAAW,CAAC,8DAA8D,CAAC,CAC3EC,IAAI,CAAC;EACJoE,IAAI,EAAE3E,GAAG,CAACS,MAAM,CAAC,CAAC,CACfC,QAAQ,CAAC,CAAC,CACVJ,WAAW,CAAC,qCAAqC,CAAC;EACrDsE,SAAS,EAAE5E,GAAG,CAACS,MAAM,CAAC,CAAC,CACpB+C,KAAK,CAAC,EAAE,CAAC,CACT1C,QAAQ,CAAC,CAAC,CACVR,WAAW,CACV,iEACF,CAAC;EACHuE,QAAQ,EAAE7E,GAAG,CAACS,MAAM,CAAC,CAAC,CACnBK,QAAQ,CAAC,CAAC,CACVR,WAAW,CACV,kEACF;AACJ,CAAC,CAAC;AAEJ,MAAMwE,aAAa,GAAG9E,GAAG,CAACK,MAAM,CAAgB,CAAC,CAC9CC,WAAW,CAAC,qDAAqD,CAAC,CAClEC,IAAI,CAAC;EACJC,IAAI,EAAER,GAAG,CAACS,MAAM,CAAC,CAAC,CACfC,QAAQ,CAAC,CAAC,CACVJ,WAAW,CACV,+DACF,CAAC;EACHK,KAAK,EAAEX,GAAG,CAACS,MAAM,CAAC,CAAC,CAChBC,QAAQ,CAAC,CAAC,CACVJ,WAAW,CAAC,0CAA0C;AAC3D,CAAC,CAAC;AAEJ,MAAMyE,YAAY,GAAG/E,GAAG,CAACK,MAAM,CAAe,CAAC,CAC5CC,WAAW,CAAC,2CAA2C,CAAC,CACxDC,IAAI,CAAC;EACJ8D,GAAG,EAAErE,GAAG,CAAC4D,MAAM,CAAC,CAAC,CACdC,KAAK,CAAC,EAAE,CAAC,CACTnD,QAAQ,CAAC,CAAC,CACVJ,WAAW,CAAC,wCAAwC,CAAC;EACxDgE,GAAG,EAAEtE,GAAG,CAAC4D,MAAM,CAAC,CAAC,CACdC,KAAK,CAAC,EAAE,CAAC,CACTnD,QAAQ,CAAC,CAAC,CACVJ,WAAW,CAAC,uCAAuC;AACxD,CAAC,CAAC;AAEJ,MAAM0E,gBAAgB,GAAGhF,GAAG,CAACK,MAAM,CAAS,CAAC,CAC1CC,WAAW,CAAC,8CAA8C,CAAC,CAC3DC,IAAI,CAAC;EACJmD,OAAO,EAAEoB,aAAa,CACnBpE,QAAQ,CAAC,CAAC,CACVJ,WAAW,CAAC,uDAAuD,CAAC;EACvE8D,MAAM,EAAEW,YAAY,CACjBrE,QAAQ,CAAC,CAAC,CACVJ,WAAW,CAAC,sDAAsD;AACvE,CAAC,CAAC;AAEJ,MAAM2E,WAAW,GAAGjF,GAAG,CAACK,MAAM,CAAQ,CAAC,CACpCC,WAAW,CAAC,uDAAuD,CAAC,CACpEC,IAAI,CAAC;EACJU,IAAI,EAAEjB,GAAG,CAACS,MAAM,CAAC,CAAC,CACf+C,KAAK,CAAC,MAAM,CAAC,CACb9C,QAAQ,CAAC,CAAC,CACVJ,WAAW,CACV,6DACF,CAAC;EACHoD,OAAO,EAAE1D,GAAG,CAACK,MAAM,CAAe,CAAC,CAChCC,WAAW,CAAC,4CAA4C,CAAC,CACzDC,IAAI,CAAC;IACJ2E,MAAM,EAAElF,GAAG,CAACS,MAAM,CAAC,CAAC,CACjB+C,KAAK,CAAC,MAAM,CAAC,CACb9C,QAAQ,CAAC,CAAC,CACVJ,WAAW,CAAC,oCAAoC,CAAC;IACpD6E,GAAG,EAAEnF,GAAG,CAACS,MAAM,CAAC,CAAC,CACd2E,GAAG,CAAC;MAAEC,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO;IAAE,CAAC,CAAC,CAClC3E,QAAQ,CAAC,CAAC,CACVJ,WAAW,CAAC,2CAA2C;EAC5D,CAAC;AACL,CAAC,CAAC;AAEJ,MAAMgF,YAAY,GAAGtF,GAAG,CAACK,MAAM,CAAS,CAAC,CACtCC,WAAW,CACV,kEACF,CAAC,CACAC,IAAI,CAAC;EACJgF,MAAM,EAAEN,WAAW,CAChBnE,QAAQ,CAAC,CAAC,CACVR,WAAW,CAAC,iDAAiD,CAAC;EACjEkF,MAAM,EAAEP,WAAW,CAChBnE,QAAQ,CAAC,CAAC,CACVR,WAAW,CAAC,qDAAqD;AACtE,CAAC,CAAC;;AAEJ;AACA;AACA;AACA;AACA,OAAO,MAAMmF,UAAU,GAAGzF,GAAG,CAACK,MAAM,CAAO,CAAC,CACzCC,WAAW,CAAC,sDAAsD,CAAC,CACnEC,IAAI,CAAC;EACJgC,EAAE,EAAEvC,GAAG,CAACS,MAAM,CAAC,CAAC,CACbmC,IAAI,CAAC,CAAC,CACN9B,QAAQ,CAAC,CAAC,CACVR,WAAW,CAAC,gCAAgC,CAAC;EAChDqE,IAAI,EAAE3E,GAAG,CAACS,MAAM,CAAC,CAAC,CACfC,QAAQ,CAAC,CAAC,CACVgF,QAAQ,CAAC,SAAS,CAAC,CACnBpF,WAAW,CACV,iEACF,CAAC;EACHK,KAAK,EAAEX,GAAG,CAACS,MAAM,CAAC,CAAC,CAChBC,QAAQ,CAAC,CAAC,CACVJ,WAAW,CAAC,6CAA6C,CAAC;EAC7DqF,OAAO,EAAE3F,GAAG,CAACS,MAAM,CAAC,CAAC,CAACH,WAAW,CAAC,8BAA8B,CAAC;EACjEsF,UAAU,EAAE5F,GAAG,CAACS,MAAM,CAAC,CAAC,CACrBK,QAAQ,CAAC,CAAC,CACVR,WAAW,CAAC,wDAAwD,CAAC;EACxEuF,UAAU,EAAE7F,GAAG,CAACoC,KAAK,CAAe,CAAC,CAClCC,KAAK,CAACM,eAAe,CAAC,CACtBmD,MAAM,CAAC,MAAM,CAAC,CACdxF,WAAW,CAAC,sCAAsC,CAAC;EACtDyF,MAAM,EAAE/F,GAAG,CAAC8C,IAAI,CAAC,YAAY,EAAE;IAC7BC,EAAE,EAAE/C,GAAG,CAACS,MAAM,CAAC,CAAC,CAACuC,KAAK,CAAC,sBAAsB,CAAC,CAACtC,QAAQ,CAAC,CAAC;IACzD2C,IAAI,EAAE2B,gBAAgB,CACnBtE,QAAQ,CAAC,CAAC,CACVJ,WAAW,CACV,8EACF,CAAC;IACHiD,SAAS,EAAEvD,GAAG,CAACgG,GAAG,CAAC,CAAC,CAACC,KAAK,CAAC;EAC7B,CAAC,CAAC;EACFrB,SAAS,EAAE5E,GAAG,CAACS,MAAM,CAAC,CAAC,CACpB+C,KAAK,CAAC,EAAE,CAAC,CACT1C,QAAQ,CAAC,CAAC,CACVR,WAAW,CAAC,0DAA0D,CAAC;EAC1E4F,IAAI,EAAElG,GAAG,CAACoC,KAAK,CAAO,CAAC,CACpBC,KAAK,CAACqC,UAAU,CAAC,CACjB3D,OAAO,CAAC,EAAE,CAAC,CACXT,WAAW,CAAC,2CAA2C,CAAC;EAC3D6F,MAAM,EAAEb,YAAY,CACjBxE,QAAQ,CAAC,CAAC,CACVR,WAAW,CAAC,0CAA0C,CAAC;EAC1D8F,IAAI,EAAEpG,GAAG,CAACS,MAAM,CAAC,CAAC,CACfK,QAAQ,CAAC,CAAC,CACVR,WAAW,CACV,8DACF;AACJ,CAAC,CAAC;;AAEJ;AACA;AACA;AACA,OAAO,MAAM+F,YAAY,GAAGZ,UAAU,CACnCa,MAAM,CAAC;EACN3F,KAAK,EAAEX,GAAG,CAACS,MAAM,CAAC,CAAC,CAChB+C,KAAK,CAAC,EAAE,CAAC,CACT9C,QAAQ,CAAC,CAAC,CACVJ,WAAW,CAAC,yDAAyD;AAC1E,CAAC,CAAC,CACDA,WAAW,CACV,iEACF,CAAC;AAEH,OAAO,MAAMiG,mBAAmB,GAAGF,YAAY,CAC5C9F,IAAI,CAAC;EACJgC,EAAE,EAAEvC,GAAG,CAACS,MAAM,CAAC,CAAC,CACbmC,IAAI,CAAC,CAAC,CACN7B,OAAO,CAAC,MAAMb,MAAM,CAAC,CAAC,CAAC,CACvBI,WAAW,CAAC,+CAA+C,CAAC;EAC/DuF,UAAU,EAAE7F,GAAG,CAACoC,KAAK,CAAe,CAAC,CAClCC,KAAK,CAACoC,iBAAiB,CAAC,CACxBqB,MAAM,CAAC,MAAM,CAAC,CACdA,MAAM,CAAC,IAAI,EAAE;IAAEU,eAAe,EAAE;EAAK,CAAC,CAAC,CACvClG,WAAW,CAAC,oCAAoC;AACrD,CAAC,CAAC,CACDA,WAAW,CACV,+EACF,CAAC;AAEH,MAAMmG,kBAAkB,GAAGzG,GAAG,CAACK,MAAM,CAAO,CAAC,CAC1CC,WAAW,CAAC,mDAAmD,CAAC,CAChEC,IAAI,CAAC;EACJgC,EAAE,EAAEvC,GAAG,CAACS,MAAM,CAAC,CAAC,CACbmC,IAAI,CAAC,CAAC,CACN7B,OAAO,CAAC,MAAMb,MAAM,CAAC,CAAC,CAAC;EAC1BwG,IAAI,EAAE1G,GAAG,CAACS,MAAM,CAAC,CAAC,CAAC+C,KAAK,CAAC,EAAE,CAAC,CAAClD,WAAW,CAAC,gCAAgC,CAAC;EAC1EA,WAAW,EAAEN,GAAG,CAACS,MAAM,CAAC,CAAC,CACtB+C,KAAK,CAAC,EAAE,CAAC,CACT1C,QAAQ,CAAC,CAAC,CACVR,WAAW,CAAC,mDAAmD,CAAC;EACnEqG,WAAW,EAAE3G,GAAG,CAACK,MAAM,CAAsB,CAAC,CAC3CC,WAAW,CAAC,wDAAwD,CAAC,CACrEC,IAAI,CAAC;IACJsF,UAAU,EAAE7F,GAAG,CAACoC,KAAK,CAAe,CAAC,CAClC1B,QAAQ,CAAC,CAAC,CACV2B,KAAK,CAACM,eAAe,CAACwB,OAAO,CAAC,IAAI,CAAC,CAAC,CACpC2B,MAAM,CAAC,MAAM,CAAC,CACdxF,WAAW,CAAC,qCAAqC;EACtD,CAAC,CAAC,CACDQ,QAAQ,CAAC,CAAC;EACb8D,SAAS,EAAE5E,GAAG,CAACS,MAAM,CAAC,CAAC,CACpB+C,KAAK,CAAC,EAAE,CAAC,CACT1C,QAAQ,CAAC,CAAC,CACVR,WAAW,CAAC,iDAAiD,CAAC;EACjEmD,IAAI,EAAEzD,GAAG,CAACS,MAAM,CAAC,CAAC,CACf+C,KAAK,CAAC,EAAE,CAAC,CACT1C,QAAQ,CAAC,CAAC,CACVR,WAAW,CAAC,6CAA6C;AAC9D,CAAC,CAAC;AAEJ,MAAMsG,oBAAoB,GAAGH,kBAAkB,CAC5CH,MAAM,CAAC;EACNlF,KAAK,EAAEpB,GAAG,CAACS,MAAM,CAAC,CAAC,CAChBC,QAAQ,CAAC,CAAC,CACVJ,WAAW,CAAC,gDAAgD;AACjE,CAAC,CAAC,CACDA,WAAW,CAAC,6BAA6B,CAAC;AAE7C,MAAMuG,oBAAoB,GAAGJ,kBAAkB,CAC5CH,MAAM,CAAC;EACNlF,KAAK,EAAEpB,GAAG,CAAC4D,MAAM,CAAC,CAAC,CAChBlD,QAAQ,CAAC,CAAC,CACVJ,WAAW,CAAC,iDAAiD;AAClE,CAAC,CAAC,CACDA,WAAW,CAAC,8BAA8B,CAAC;AAE9C,OAAO,MAAMwG,UAAU,GAAG9G,GAAG,CAACK,MAAM,CAAO,CAAC,CACzCC,WAAW,CAAC,gDAAgD,CAAC,CAC7DC,IAAI,CAAC;EACJgC,EAAE,EAAEvC,GAAG,CAACS,MAAM,CAAC,CAAC,CACbmC,IAAI,CAAC,CAAC,CACN9B,QAAQ,CAAC,CAAC,CACVR,WAAW,CAAC,gCAAgC,CAAC;EAChDE,IAAI,EAAER,GAAG,CAACS,MAAM,CAAC,CAAC,CACfC,QAAQ,CAAC,CAAC,CACVJ,WAAW,CAAC,kDAAkD,CAAC;EAClEK,KAAK,EAAEX,GAAG,CAACS,MAAM,CAAC,CAAC,CAChBC,QAAQ,CAAC,CAAC,CACVJ,WAAW,CAAC,mCAAmC,CAAC;EACnDW,IAAI,EAAEjB,GAAG,CAACS,MAAM,CAAC,CAAC,CACfC,QAAQ,CAAC,CAAC,CACVsC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CACzB1C,WAAW,CAAC,8CAA8C,CAAC;EAC9D+B,KAAK,EAAErC,GAAG,CAAC8C,IAAI,CAAC,MAAM,EAAE;IACtBC,EAAE,EAAE,QAAQ;IACZM,IAAI,EAAErD,GAAG,CAACoC,KAAK,CAAC,CAAC,CACdC,KAAK,CAACuE,oBAAoB,CAAC,CAC3Bd,MAAM,CAAC,MAAM,CAAC,CACdA,MAAM,CAAC,OAAO,CAAC,CACfxF,WAAW,CAAC,mCAAmC,CAAC;IACnDiD,SAAS,EAAEvD,GAAG,CAACoC,KAAK,CAAC,CAAC,CACnBC,KAAK,CAACwE,oBAAoB,CAAC,CAC3Bf,MAAM,CAAC,MAAM,CAAC,CACdA,MAAM,CAAC,OAAO,CAAC,CACfxF,WAAW,CAAC,oCAAoC;EACrD,CAAC;AACH,CAAC,CAAC;;AAEJ;AACA;AACA;AACA,OAAO,MAAMyG,YAAY,GAAGD,UAAU,CACnCvG,IAAI,CAAC;EACJgC,EAAE,EAAEvC,GAAG,CAACS,MAAM,CAAC,CAAC,CACbmC,IAAI,CAAC,CAAC,CACN7B,OAAO,CAAC,MAAMb,MAAM,CAAC,CAAC,CAAC,CACvBI,WAAW,CAAC,+CAA+C;AAChE,CAAC,CAAC,CACDA,WAAW,CAAC,2DAA2D,CAAC;AAE3E,MAAM0G,cAAc,GAAGhH,GAAG,CAACK,MAAM,CAA6B,CAAC,CAC5DC,WAAW,CAAC,qCAAqC,CAAC,CAClDC,IAAI,CAAC;EACJ0G,YAAY,EAAEjH,GAAG,CAACa,OAAO,CAAC,CAAC,CACxBE,OAAO,CAAC,KAAK,CAAC,CACdT,WAAW,CAAC,4CAA4C,CAAC;EAC5D6E,GAAG,EAAEnF,GAAG,CAAC8C,IAAI,CAAC,cAAc,EAAE;IAC5BC,EAAE,EAAE/C,GAAG,CAACa,OAAO,CAAC,CAAC,CAACmC,KAAK,CAAC,KAAK,CAAC;IAC9BK,IAAI,EAAErD,GAAG,CAACS,MAAM,CAAC,CAAC,CACfK,QAAQ,CAAC,CAAC,CACV0C,KAAK,CAAC,EAAE,CAAC,CACTlD,WAAW,CACV,mEACF;EACJ,CAAC,CAAC;EACF4G,YAAY,EAAElH,GAAG,CAACS,MAAM,CAAC,CAAC,CACvB0G,KAAK,CAAC;IACLC,IAAI,EAAE;MACJ5D,KAAK,EAAE;IACT;EACF,CAAC,CAAC,CACD1C,QAAQ,CAAC,CAAC,CACVR,WAAW,CAAC,sCAAsC;AACvD,CAAC,CAAC;AAEJ,MAAM+G,iBAAiB,GAAGrH,GAAG,CAACK,MAAM,CAAc,CAAC,CAChDC,WAAW,CAAC,uDAAuD,CAAC,CACpEC,IAAI,CAAC;EACJ+G,KAAK,EAAEtH,GAAG,CAACS,MAAM,CAAC,CAAC,CAChBuC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CACtB1C,WAAW,CAAC,kDAAkD;AACnE,CAAC,CAAC;AAEJ,MAAMiH,YAAY,GAAGvH,GAAG,CAACK,MAAM,CAA2B,CAAC,CACxDC,WAAW,CAAC,0CAA0C,CAAC,CACvDC,IAAI,CAAC;EACJiH,QAAQ,EAAExH,GAAG,CAACS,MAAM,CAAC,CAAC,CACnBuC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CACzBtC,QAAQ,CAAC,CAAC,CACVJ,WAAW,CACV,wEACF,CAAC;EACHmH,OAAO,EAAEzH,GAAG,CAACS,MAAM,CAAC,CAAC,CAClBC,QAAQ,CAAC,CAAC,CACVJ,WAAW,CAAC,0CAA0C;AAC3D,CAAC,CAAC;;AAEJ;AACA;AACA;AACA;AACA,OAAO,MAAMoH,oBAAoB,GAAG1H,GAAG,CAACK,MAAM,CAAiB,CAAC,CAC7DC,WAAW,CAAC,2DAA2D,CAAC,CACxEI,QAAQ,CAAC,CAAC,CACVH,IAAI,CAAC;EACJoH,MAAM,EAAE3H,GAAG,CAACS,MAAM,CAAC,CAAC,CACjB+C,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CACjBzC,OAAO,CAAC,IAAI,CAAC,CACbT,WAAW,CAAC,uCAAuC,CAAC;EACvDE,IAAI,EAAER,GAAG,CAACS,MAAM,CAAC,CAAC,CACf+C,KAAK,CAAC,EAAE,CAAC,CACT1C,QAAQ,CAAC,CAAC,CACVR,WAAW,CAAC,kCAAkC,CAAC;EAClDsH,QAAQ,EAAEZ,cAAc,CACrBlG,QAAQ,CAAC,CAAC,CACVR,WAAW,CAAC,kCAAkC,CAAC;EAClDuH,SAAS,EAAE7H,GAAG,CAACS,MAAM,CAAC,CAAC,CACpBK,QAAQ,CAAC,CAAC,CACVR,WAAW,CAAC,uDAAuD,CAAC;EACvEwH,KAAK,EAAE9H,GAAG,CAACoC,KAAK,CAAO,CAAC,CACrB1B,QAAQ,CAAC,CAAC,CACVoC,IAAI,CAAC,QAAQ,EAAE;IACdC,EAAE,EAAE,IAAI;IACRM,IAAI,EAAErD,GAAG,CAACoC,KAAK,CAAO,CAAC,CACpBC,KAAK,CAACgE,YAAY,CAAC,CACnB/F,WAAW,CAAC,8CAA8C,CAAC;IAC9DiD,SAAS,EAAEvD,GAAG,CAACoC,KAAK,CAAO,CAAC,CACzBC,KAAK,CAACoD,UAAU,CAAC,CACjBnF,WAAW,CAAC,gCAAgC;EACjD,CAAC,CAAC,CACDwF,MAAM,CAAC,MAAM,CAAC,CACdA,MAAM,CAAC,IAAI,EAAE;IAAEU,eAAe,EAAE;EAAK,CAAC,CAAC,CACvClG,WAAW,CAAC,2BAA2B,CAAC;EAC3CyH,QAAQ,EAAE/H,GAAG,CAACoC,KAAK,CAAU,CAAC,CAC3BC,KAAK,CAACjC,cAAc,CAAC,CACrB0F,MAAM,CAAC,MAAM,CAAC,CACdA,MAAM,CAAC,OAAO,CAAC,CACfpF,QAAQ,CAAC,CAAC,CACVJ,WAAW,CAAC,0CAA0C,CAAC;EAC1D6B,UAAU,EAAEnC,GAAG,CAACoC,KAAK,CAAmB,CAAC,CACtCC,KAAK,CAACI,sBAAsB,CAAC,CAC7BqD,MAAM,CAAC,MAAM,CAAC,CACdA,MAAM,CAAC,aAAa,CAAC,CACrBxF,WAAW,CAAC,sCAAsC,CAAC;EACtD0H,KAAK,EAAEhI,GAAG,CAACoC,KAAK,CAAO,CAAC,CACrBC,KAAK,CAACyE,UAAU,CAAC,CACjBhB,MAAM,CAAC,MAAM,CAAC,CACdA,MAAM,CAAC,OAAO,CAAC,CACfxF,WAAW,CAAC,iDAAiD,CAAC;EACjE2H,QAAQ,EAAEjI,GAAG,CAACK,MAAM,CAAC;IAAE6H,CAAC,EAAElI,GAAG,CAACgG,GAAG,CAAC;EAAE,CAAC,CAAC,CACnC7B,OAAO,CAAC,CAAC,CACTrD,QAAQ,CAAC,CAAC,CACVR,WAAW,CAAC,8BAA8B,CAAC;EAC9C6H,WAAW,EAAEnI,GAAG,CAACS,MAAM,CAAC,CAAC,CACtB+C,KAAK,CAAC,EAAE,CAAC,CACT1C,QAAQ,CAAC,CAAC,CACVR,WAAW,CAAC,4CAA4C,CAAC;EAC5D8H,WAAW,EAAEpI,GAAG,CAACgG,GAAG,CAAC,CAAC,CACnBC,KAAK,CAAC,CAAC,CACP3F,WAAW,CAAC,iCAAiC,CAAC;EACjD+H,WAAW,EAAEhB,iBAAiB,CAC3BvG,QAAQ,CAAC,CAAC,CACVR,WAAW,CAAC,4BAA4B,CAAC;EAC5CgI,WAAW,EAAEtI,GAAG,CAACS,MAAM,CAAC,CAAC,CACtB0G,KAAK,CAAC;IAAEC,IAAI,EAAE;MAAE5D,KAAK,EAAE,CAAC,IAAI;IAAE;EAAE,CAAC,CAAC,CAClC+E,IAAI,CAAC,CAAC,CACNzH,QAAQ,CAAC,CAAC,CACVR,WAAW,CAAC,+CAA+C,CAAC;EAC/DkI,MAAM,EAAEjB,YAAY,CACjBzG,QAAQ,CAAC,CAAC,CACVR,WAAW,CAAC,4CAA4C;AAC7D,CAAC,CAAC;AAEJ,OAAO,MAAMmI,6BAA6B,GAAGf,oBAAoB,CAC9DnH,IAAI,CAAC;EACJuH,KAAK,EAAE9H,GAAG,CAACoC,KAAK,CAAO,CAAC,CACrBC,KAAK,CAACkE,mBAAmB,CAAC,CAC1B7F,QAAQ,CAAC,CAAC,CACVoF,MAAM,CAAC,MAAM,CAAC,CACdA,MAAM,CAAC,IAAI,EAAE;IAAEU,eAAe,EAAE;EAAK,CAAC,CAAC,CACvClG,WAAW,CAAC,4CAA4C,CAAC;EAC5D0H,KAAK,EAAEhI,GAAG,CAACoC,KAAK,CAAO,CAAC,CACrBC,KAAK,CAAC0E,YAAY,CAAC,CACnBjB,MAAM,CAAC,MAAM,CAAC,CACdA,MAAM,CAAC,OAAO,CAAC,CACfA,MAAM,CAAC,IAAI,EAAE;IAAEU,eAAe,EAAE;EAAK,CAAC,CAAC,CACvClG,WAAW,CAAC,4CAA4C;AAC7D,CAAC,CAAC,CACDA,WAAW,CACV,yEACF,CAAC;;AAEH;AACA;AACA,OAAO,MAAMoI,MAAM,GAAGhB,oBAAoB","ignoreList":[]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.js","names":["Engine"],"sources":["../../../../src/form/form-definition/types.ts"],"sourcesContent":["import { type ComponentDef } from '~/src/components/types.js'\nimport { type ConditionsModelData } from '~/src/conditions/types.js'\nimport { formDefinitionSchema } from '~/src/form/form-definition/index.js'\nimport { type ControllerPath, type ControllerType } from '~/src/pages/enums.js'\n\nexport enum Engine {\n V1 = 'V1',\n V2 = 'V2'\n}\n\nexport interface Link {\n path: string\n condition?: string\n redirect?: string\n}\n\nexport interface EventOptions {\n method: string\n url: string\n}\n\nexport interface Event {\n type: string\n options: EventOptions\n}\n\nexport interface Events {\n onLoad?: Event\n onSave?: Event\n}\n\nexport interface PageBase {\n id?: string\n title: string\n path: string\n condition?: string\n events?: Events\n view?: string\n}\n\nexport interface RepeatOptions {\n name: string\n title: string\n}\n\nexport interface RepeatSchema {\n min: number\n max: number\n}\n\nexport interface Repeat {\n options: RepeatOptions\n schema: RepeatSchema\n}\n\nexport interface PageStart extends PageBase {\n path: ControllerPath.Start | string\n controller: ControllerType.Start\n section?: string | undefined\n next: Link[]\n components: ComponentDef[]\n}\n\nexport interface PageQuestion extends PageBase {\n controller?: ControllerType.Page\n section?: string | undefined\n next: Link[]\n components: ComponentDef[]\n}\n\nexport interface PageTerminal extends PageBase {\n controller?: ControllerType.Terminal\n section?: string | undefined\n next: Link[]\n components: ComponentDef[]\n}\n\nexport interface PageRepeat extends PageBase {\n controller: ControllerType.Repeat\n repeat: Repeat\n section?: string | undefined\n next: Link[]\n components: ComponentDef[]\n}\n\nexport interface PageFileUpload extends PageBase {\n controller: ControllerType.FileUpload\n section?: string | undefined\n next: Link[]\n components: ComponentDef[]\n}\n\nexport interface PageSummary extends PageBase {\n path: ControllerPath.Summary | string\n controller: ControllerType.Summary\n section?: undefined\n components?: ComponentDef[]\n}\n\nexport interface PageStatus extends PageBase {\n path: ControllerPath.Status | string\n controller: ControllerType.Status\n section?: undefined\n}\n\nexport type Page =\n | PageStart\n | PageQuestion\n | PageTerminal\n | PageFileUpload\n | PageRepeat\n | PageSummary\n | PageStatus\n\nexport interface Section {\n name: string\n title: string\n hideTitle?: boolean\n}\n\nexport interface Item {\n text: string\n value: string | number | boolean\n description?: string\n conditional?: { components: ComponentDef[] }\n condition?: string\n hint?: string\n}\n\nexport interface List {\n id?: string\n name: string\n title: string\n type: ListTypeContent\n items: Item[]\n}\n\nexport type ListTypeOption = 'bulleted' | 'numbered'\nexport type ListTypeContent = 'string' | 'number' | 'boolean'\n\nexport interface Feedback {\n feedbackForm?: boolean\n url?: string\n emailAddress?: string\n}\n\nexport interface PhaseBanner {\n phase?: 'alpha' | 'beta'\n feedbackUrl?: string\n}\n\nexport interface ConditionWrapper {\n name: string\n displayName: string\n value: ConditionsModelData\n}\n\n/**\n * Interface for `formDefinitionSchema` Joi schema\n * @see {@link formDefinitionSchema}\n */\nexport interface FormDefinition {\n engine?: Engine\n pages: Page[]\n conditions: ConditionWrapper[]\n lists: List[]\n sections: Section[]\n startPage?: string\n name?: string\n feedback?: Feedback\n phaseBanner?: PhaseBanner\n declaration?: string // Deprecated in v2\n skipSummary?: never\n metadata?: Record<string, unknown>\n outputEmail?: string\n output?: {\n audience: 'human' | 'machine'\n version: string\n }\n}\n"],"mappings":"AAKA,WAAYA,MAAM,0BAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAAA,OAANA,MAAM;AAAA;;
|
1
|
+
{"version":3,"file":"types.js","names":["Engine"],"sources":["../../../../src/form/form-definition/types.ts"],"sourcesContent":["import { type ComponentDef } from '~/src/components/types.js'\nimport { type ConditionsModelData } from '~/src/conditions/types.js'\nimport { formDefinitionSchema } from '~/src/form/form-definition/index.js'\nimport { type ControllerPath, type ControllerType } from '~/src/pages/enums.js'\n\nexport enum Engine {\n V1 = 'V1',\n V2 = 'V2'\n}\n\nexport interface Link {\n path: string\n condition?: string\n redirect?: string\n}\n\nexport interface EventOptions {\n method: string\n url: string\n}\n\nexport interface Event {\n type: string\n options: EventOptions\n}\n\nexport interface Events {\n onLoad?: Event\n onSave?: Event\n}\n\nexport interface PageBase {\n id?: string\n title: string\n path: string\n condition?: string\n events?: Events\n view?: string\n}\n\nexport interface RepeatOptions {\n name: string\n title: string\n}\n\nexport interface RepeatSchema {\n min: number\n max: number\n}\n\nexport interface Repeat {\n options: RepeatOptions\n schema: RepeatSchema\n}\n\nexport interface PageStart extends PageBase {\n path: ControllerPath.Start | string\n controller: ControllerType.Start\n section?: string | undefined\n next: Link[]\n components: ComponentDef[]\n}\n\nexport interface PageQuestion extends PageBase {\n controller?: ControllerType.Page\n section?: string | undefined\n next: Link[]\n components: ComponentDef[]\n}\n\nexport interface PageTerminal extends PageBase {\n controller?: ControllerType.Terminal\n section?: string | undefined\n next: Link[]\n components: ComponentDef[]\n}\n\nexport interface PageRepeat extends PageBase {\n controller: ControllerType.Repeat\n repeat: Repeat\n section?: string | undefined\n next: Link[]\n components: ComponentDef[]\n}\n\nexport interface PageFileUpload extends PageBase {\n controller: ControllerType.FileUpload\n section?: string | undefined\n next: Link[]\n components: ComponentDef[]\n}\n\nexport interface PageSummary extends PageBase {\n path: ControllerPath.Summary | string\n controller: ControllerType.Summary\n section?: undefined\n components?: ComponentDef[]\n}\n\nexport interface PageStatus extends PageBase {\n path: ControllerPath.Status | string\n controller: ControllerType.Status\n section?: undefined\n}\n\nexport type Page =\n | PageStart\n | PageQuestion\n | PageTerminal\n | PageFileUpload\n | PageRepeat\n | PageSummary\n | PageStatus\n\nexport interface Section {\n name: string\n title: string\n hideTitle?: boolean\n}\n\nexport interface Item {\n id?: string\n text: string\n value: string | number | boolean\n description?: string\n conditional?: { components: ComponentDef[] }\n condition?: string\n hint?: string\n}\n\nexport interface List {\n id?: string\n name: string\n title: string\n type: ListTypeContent\n items: Item[]\n}\n\nexport type ListTypeOption = 'bulleted' | 'numbered'\nexport type ListTypeContent = 'string' | 'number' | 'boolean'\n\nexport interface Feedback {\n feedbackForm?: boolean\n url?: string\n emailAddress?: string\n}\n\nexport interface PhaseBanner {\n phase?: 'alpha' | 'beta'\n feedbackUrl?: string\n}\n\nexport interface ConditionWrapper {\n name: string\n displayName: string\n value: ConditionsModelData\n}\n\n/**\n * Interface for `formDefinitionSchema` Joi schema\n * @see {@link formDefinitionSchema}\n */\nexport interface FormDefinition {\n engine?: Engine\n pages: Page[]\n conditions: ConditionWrapper[]\n lists: List[]\n sections: Section[]\n startPage?: string\n name?: string\n feedback?: Feedback\n phaseBanner?: PhaseBanner\n declaration?: string // Deprecated in v2\n skipSummary?: never\n metadata?: Record<string, unknown>\n outputEmail?: string\n output?: {\n audience: 'human' | 'machine'\n version: string\n }\n}\n"],"mappings":"AAKA,WAAYA,MAAM,0BAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAAA,OAANA,MAAM;AAAA;;AAyJlB;AACA;AACA;AACA","ignoreList":[]}
|
@@ -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":[]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/form/form-definition/index.ts"],"names":[],"mappings":"AAAA,OAAO,GAA8B,MAAM,KAAK,CAAA;AAIhD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAU7D,OAAO,EAKL,KAAK,cAAc,EAGnB,KAAK,IAAI,EACT,KAAK,IAAI,EAMV,MAAM,qCAAqC,CAAA;AAuJ5C,eAAO,MAAM,eAAe,gCA4FZ,CAAA;AAEhB,eAAO,MAAM,iBAAiB,gCAOkD,CAAA;AA8FhF;;;GAGG;AACH,eAAO,MAAM,UAAU,wBAiDnB,CAAA;AAEJ;;GAEG;AACH,eAAO,MAAM,YAAY,wBAStB,CAAA;AAEH,eAAO,MAAM,mBAAmB,wBAc7B,CAAA;
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/form/form-definition/index.ts"],"names":[],"mappings":"AAAA,OAAO,GAA8B,MAAM,KAAK,CAAA;AAIhD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAU7D,OAAO,EAKL,KAAK,cAAc,EAGnB,KAAK,IAAI,EACT,KAAK,IAAI,EAMV,MAAM,qCAAqC,CAAA;AAuJ5C,eAAO,MAAM,eAAe,gCA4FZ,CAAA;AAEhB,eAAO,MAAM,iBAAiB,gCAOkD,CAAA;AA8FhF;;;GAGG;AACH,eAAO,MAAM,UAAU,wBAiDnB,CAAA;AAEJ;;GAEG;AACH,eAAO,MAAM,YAAY,wBAStB,CAAA;AAEH,eAAO,MAAM,mBAAmB,wBAc7B,CAAA;AAiDH,eAAO,MAAM,UAAU,wBA8BnB,CAAA;AAEJ;;GAEG;AACH,eAAO,MAAM,YAAY,wBAOkD,CAAA;AAiD3E;;;GAGG;AACH,eAAO,MAAM,oBAAoB,kCAsE7B,CAAA;AAEJ,eAAO,MAAM,6BAA6B,kCAiBvC,CAAA;AAIH,eAAO,MAAM,MAAM,kCAAuB,CAAA"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/form/form-definition/types.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/form/form-definition/types.ts"],"names":[],"mappings":"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"}
|
@@ -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":"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,qBAAqB,0BAIgC,CAAA;AAElE,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,eAAe,0BAGkC,CAAA;AAE9D,eAAO,MAAM,eAAe,0BAMzB,CAAA;AAEH,eAAO,MAAM,gBAAgB,0BAM1B,CAAA;AAEH,eAAO,MAAM,sBAAsB,0BAGiC,CAAA;AAEpE,eAAO,MAAM,4BAA4B,0BAGmB,CAAA;AAE5D,eAAO,MAAM,iBAAiB,0BAGiC,CAAA;AAE/D,eAAO,MAAM,kBAAkB,0BAEuC,CAAA;AAEtE,eAAO,MAAM,qBAAqB,0BAGe,CAAA;AAEjD,eAAO,MAAM,qBAAqB,0BAGgC,CAAA;AAElE,eAAO,MAAM,SAAS,0BAG4B,CAAA;AAElD,eAAO,MAAM,SAAS,0BAG4B,CAAA;AAElD,eAAO,MAAM,eAAe,0BAI8B,CAAA;AAE1D,eAAO,MAAM,eAAe,0BAI8B,CAAA;AAE1D,eAAO,MAAM,eAAe,0BAIwC,CAAA;AAEpE,eAAO,MAAM,aAAa,0BAIwC,CAAA;AAElE,eAAO,MAAM,eAAe,0BAI0B,CAAA;AAEtD,eAAO,MAAM,YAAY,0BAImC,CAAA;AAE5D,eAAO,MAAM,WAAW,0BAGmC,CAAA;AAE3D,eAAO,MAAM,UAAU,0BAImC,CAAA;AAE1D,eAAO,MAAM,YAAY,0BAImC,CAAA;AAE5D,eAAO,MAAM,aAAa,0BAIoC,CAAA;AAM9D,UAAU,SAAS,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CACrD,SAAQ,WAAW,CAAC,OAAO,CAAC;IAC5B,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,KAAK,SAAS,CAAC,OAAO,CAAC,CAAA;IAC7D,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,KAAK,SAAS,CAAC,OAAO,CAAC,CAAA;IACpD,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,KAAK,SAAS,CAAC,OAAO,CAAC,CAAA;IAC7D,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,KAAK,SAAS,CAAC,OAAO,CAAC,CAAA;IACpD,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,SAAS,CAAC,OAAO,CAAC,CAAA;CAC7C;AAED,UAAU,eAAgB,SAAQ,GAAG,CAAC,IAAI;IACxC,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,OAAO,CAAC,CAAA;CACnC;AAED,eAAO,MAAM,eAAe,EA4GtB,eAAe,CAAA;AAErB,eAAO,MAAM,yBAAyB;UACvB,MAAM;WAAS,MAAM;EAevB,CAAA;AAEb,eAAO,MAAM,yBAAyB;;cAjBvB,MAAM;eAAS,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkDnC,CAAA;AAED,eAAO,MAAM,uBAAuB;;;CAGnC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,yBAAyB,uCAGmC,CAAA;AAEzE,eAAO,MAAM,sCAAsC;;CAElD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,wCAAwC,uDAIO,CAAA;AAE5D,eAAO,MAAM,2BAA2B;;;;;CAKvC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,6BAA6B,2CAMrC,CAAA;AAEL,eAAO,MAAM,+BAA+B;;;;CAI3C,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,iCAAiC,+CAI8B,CAAA"}
|
@@ -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
@@ -1161,6 +1161,12 @@
|
|
1161
1161
|
"type": "object",
|
1162
1162
|
"description": "List item with string value",
|
1163
1163
|
"properties": {
|
1164
|
+
"id": {
|
1165
|
+
"type": "string",
|
1166
|
+
"format": "uuid",
|
1167
|
+
"title": "Id",
|
1168
|
+
"description": "The id value."
|
1169
|
+
},
|
1164
1170
|
"text": {
|
1165
1171
|
"type": "string",
|
1166
1172
|
"description": "Display text shown to the user",
|
@@ -1380,6 +1386,12 @@
|
|
1380
1386
|
"type": "object",
|
1381
1387
|
"description": "List item with numeric value",
|
1382
1388
|
"properties": {
|
1389
|
+
"id": {
|
1390
|
+
"type": "string",
|
1391
|
+
"format": "uuid",
|
1392
|
+
"title": "Id",
|
1393
|
+
"description": "The id value."
|
1394
|
+
},
|
1383
1395
|
"text": {
|
1384
1396
|
"type": "string",
|
1385
1397
|
"description": "Display text shown to the user",
|
@@ -824,6 +824,12 @@
|
|
824
824
|
"type": "object",
|
825
825
|
"description": "List item with string value",
|
826
826
|
"properties": {
|
827
|
+
"id": {
|
828
|
+
"type": "string",
|
829
|
+
"format": "uuid",
|
830
|
+
"title": "Id",
|
831
|
+
"description": "The id value."
|
832
|
+
},
|
827
833
|
"text": {
|
828
834
|
"type": "string",
|
829
835
|
"description": "Display text shown to the user",
|
@@ -1043,6 +1049,12 @@
|
|
1043
1049
|
"type": "object",
|
1044
1050
|
"description": "List item with numeric value",
|
1045
1051
|
"properties": {
|
1052
|
+
"id": {
|
1053
|
+
"type": "string",
|
1054
|
+
"format": "uuid",
|
1055
|
+
"title": "Id",
|
1056
|
+
"description": "The id value."
|
1057
|
+
},
|
1046
1058
|
"text": {
|
1047
1059
|
"type": "string",
|
1048
1060
|
"description": "Display text shown to the user",
|
@@ -39,6 +39,12 @@
|
|
39
39
|
"type": "object",
|
40
40
|
"description": "List item with string value",
|
41
41
|
"properties": {
|
42
|
+
"id": {
|
43
|
+
"type": "string",
|
44
|
+
"format": "uuid",
|
45
|
+
"title": "Id",
|
46
|
+
"description": "The id value."
|
47
|
+
},
|
42
48
|
"text": {
|
43
49
|
"type": "string",
|
44
50
|
"description": "Display text shown to the user",
|
@@ -258,6 +264,12 @@
|
|
258
264
|
"type": "object",
|
259
265
|
"description": "List item with numeric value",
|
260
266
|
"properties": {
|
267
|
+
"id": {
|
268
|
+
"type": "string",
|
269
|
+
"format": "uuid",
|
270
|
+
"title": "Id",
|
271
|
+
"description": "The id value."
|
272
|
+
},
|
261
273
|
"text": {
|
262
274
|
"type": "string",
|
263
275
|
"description": "Display text shown to the user",
|
package/schemas/list-schema.json
CHANGED
@@ -45,6 +45,12 @@
|
|
45
45
|
"type": "object",
|
46
46
|
"description": "List item with string value",
|
47
47
|
"properties": {
|
48
|
+
"id": {
|
49
|
+
"type": "string",
|
50
|
+
"format": "uuid",
|
51
|
+
"title": "Id",
|
52
|
+
"description": "The id value."
|
53
|
+
},
|
48
54
|
"text": {
|
49
55
|
"type": "string",
|
50
56
|
"description": "Display text shown to the user",
|
@@ -264,6 +270,12 @@
|
|
264
270
|
"type": "object",
|
265
271
|
"description": "List item with numeric value",
|
266
272
|
"properties": {
|
273
|
+
"id": {
|
274
|
+
"type": "string",
|
275
|
+
"format": "uuid",
|
276
|
+
"title": "Id",
|
277
|
+
"description": "The id value."
|
278
|
+
},
|
267
279
|
"text": {
|
268
280
|
"type": "string",
|
269
281
|
"description": "Display text shown to the user",
|
@@ -461,6 +461,9 @@ export const pageSchemaPayloadV2 = pageSchemaV2
|
|
461
461
|
const baseListItemSchema = Joi.object<Item>()
|
462
462
|
.description('Base schema for list items with common properties')
|
463
463
|
.keys({
|
464
|
+
id: Joi.string()
|
465
|
+
.uuid()
|
466
|
+
.default(() => uuidV4()),
|
464
467
|
text: Joi.string().allow('').description('Display text shown to the user'),
|
465
468
|
description: Joi.string()
|
466
469
|
.allow('')
|
@@ -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 {
|