@defra/forms-model 3.0.400 → 3.0.401

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.
@@ -99,8 +99,8 @@ const eventSchema = Joi.object().keys({
99
99
  })
100
100
  });
101
101
  const eventsSchema = Joi.object().keys({
102
- onLoad: eventSchema,
103
- onSave: eventSchema
102
+ onLoad: eventSchema.optional(),
103
+ onSave: eventSchema.optional()
104
104
  });
105
105
 
106
106
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Joi","ComponentType","sectionsSchema","object","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","when","is","valid","Details","Html","InsetText","then","otherwise","allow","hint","options","rows","number","empty","maxWords","maxDaysInPast","maxDaysInFuture","customValidationMessage","customValidationMessages","unknown","schema","min","max","length","list","nextSchema","path","condition","redirect","repeatOptions","repeatSchema","pageRepeatSchema","eventSchema","method","url","uri","scheme","eventsSchema","onLoad","onSave","pageSchema","uuid","disallow","section","controller","components","unique","repeat","any","strip","next","events","view","baseListItemSchema","text","description","conditional","stringListItemSchema","append","numberListItemSchema","listSchema","feedbackSchema","feedbackForm","emailAddress","email","tlds","phaseBannerSchema","phase","outputSchema","audience","version","formDefinitionSchema","engine","feedback","startPage","pages","ignoreUndefined","sections","lists","metadata","a","declaration","skipSummary","phaseBanner","outputEmail","trim","output","Schema"],"sources":["../../../../src/form/form-definition/index.ts"],"sourcesContent":["import Joi, { type LanguageMessages } from 'joi'\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>().keys({\n name: Joi.string().required(),\n title: Joi.string().required(),\n hideTitle: Joi.boolean().optional().default(false)\n})\n\nconst conditionFieldSchema = Joi.object<ConditionFieldData>().keys({\n name: Joi.string().required(),\n type: Joi.string().required(),\n display: Joi.string().required()\n})\n\nconst conditionValueSchema = Joi.object<ConditionValueData>().keys({\n type: Joi.string().required(),\n value: Joi.string().required(),\n display: Joi.string().required()\n})\n\nconst relativeDateValueSchema = Joi.object<RelativeDateValueData>().keys({\n type: Joi.string().required(),\n period: Joi.string().required(),\n unit: Joi.string().required(),\n direction: Joi.string().required()\n})\n\nconst conditionRefSchema = Joi.object<ConditionRefData>().keys({\n conditionName: Joi.string().required(),\n conditionDisplayName: Joi.string().required(),\n coordinator: Joi.string().optional()\n})\n\nconst conditionSchema = Joi.object<ConditionData>().keys({\n field: conditionFieldSchema,\n operator: Joi.string().required(),\n value: Joi.alternatives().try(conditionValueSchema, relativeDateValueSchema),\n coordinator: Joi.string().optional()\n})\n\nconst conditionGroupSchema = Joi.object<ConditionGroupData>()\n .keys({\n conditions: Joi.array().items(\n Joi.alternatives().try(\n conditionSchema,\n conditionRefSchema,\n Joi.link('#conditionGroupSchema')\n )\n )\n })\n .id('conditionGroupSchema')\n\nconst conditionsModelSchema = Joi.object<ConditionsModelData>().keys({\n name: Joi.string().required(),\n conditions: Joi.array().items(\n Joi.alternatives().try(\n conditionSchema,\n conditionRefSchema,\n conditionGroupSchema\n )\n )\n})\n\nconst conditionWrapperSchema = Joi.object<ConditionWrapper>().keys({\n name: Joi.string().required(),\n displayName: Joi.string(),\n value: conditionsModelSchema.required()\n})\n\nexport const componentSchema = Joi.object<ComponentDef>()\n .keys({\n type: Joi.string<ComponentType>().required(),\n name: Joi.when('type', {\n is: Joi.string().valid(\n ComponentType.Details,\n ComponentType.Html,\n ComponentType.InsetText\n ),\n then: Joi.string().optional(),\n otherwise: Joi.string()\n }),\n title: Joi.when('type', {\n is: Joi.string().valid(\n ComponentType.Details,\n ComponentType.Html,\n ComponentType.InsetText\n ),\n then: Joi.string().optional(),\n otherwise: Joi.string().allow('')\n }),\n hint: Joi.string().allow('').optional(),\n options: Joi.object({\n rows: Joi.number().empty(''),\n maxWords: Joi.number().empty(''),\n maxDaysInPast: Joi.number().empty(''),\n maxDaysInFuture: Joi.number().empty(''),\n customValidationMessage: Joi.string().allow(''),\n customValidationMessages: Joi.object<LanguageMessages>()\n .unknown(true)\n .optional()\n })\n .default({})\n .unknown(true),\n schema: Joi.object({\n min: Joi.number().empty(''),\n max: Joi.number().empty(''),\n length: Joi.number().empty('')\n })\n .unknown(true)\n .default({}),\n list: Joi.string().optional()\n })\n .unknown(true)\n\nconst nextSchema = Joi.object<Link>().keys({\n path: Joi.string().required(),\n condition: Joi.string().allow('').optional(),\n redirect: Joi.string().optional()\n})\n\nconst repeatOptions = Joi.object<RepeatOptions>().keys({\n name: Joi.string().required(),\n title: Joi.string().required()\n})\n\nconst repeatSchema = Joi.object<RepeatSchema>().keys({\n min: Joi.number().empty('').required(),\n max: Joi.number().empty('').required()\n})\n\nconst pageRepeatSchema = Joi.object<Repeat>().keys({\n options: repeatOptions.required(),\n schema: repeatSchema.required()\n})\n\nconst eventSchema = Joi.object<Event>().keys({\n type: Joi.string().allow('http').required(),\n options: Joi.object<EventOptions>().keys({\n method: Joi.string().allow('POST').required(),\n url: Joi.string()\n .uri({ scheme: ['http', 'https'] })\n .required()\n })\n})\n\nconst eventsSchema = Joi.object<Events>().keys({\n onLoad: eventSchema,\n onSave: eventSchema\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>().keys({\n id: Joi.string().uuid().optional(),\n path: Joi.string().required().disallow('/status'),\n title: Joi.string().required(),\n section: Joi.string(),\n controller: Joi.string().optional(),\n components: Joi.array<ComponentDef>().items(componentSchema).unique('name'),\n repeat: Joi.when('controller', {\n is: Joi.string().valid('RepeatPageController').required(),\n then: pageRepeatSchema.required(),\n otherwise: Joi.any().strip()\n }),\n condition: Joi.string().allow('').optional(),\n next: Joi.array<Link>().items(nextSchema),\n events: eventsSchema.optional(),\n view: Joi.string().optional()\n})\n\nconst baseListItemSchema = Joi.object<Item>().keys({\n text: Joi.string().allow(''),\n description: Joi.string().allow('').optional(),\n conditional: Joi.object<Item['conditional']>()\n .keys({\n components: Joi.array<ComponentDef>()\n .required()\n .items(componentSchema.unknown(true))\n .unique('name')\n })\n .optional(),\n condition: Joi.string().allow('').optional()\n})\n\nconst stringListItemSchema = baseListItemSchema.append({\n value: Joi.string().required()\n})\n\nconst numberListItemSchema = baseListItemSchema.append({\n value: Joi.number().required()\n})\n\nconst listSchema = Joi.object<List>().keys({\n name: Joi.string().required(),\n title: Joi.string().required(),\n type: Joi.string().required().valid('string', 'number'),\n items: Joi.when('type', {\n is: 'string',\n then: Joi.array()\n .items(stringListItemSchema)\n .unique('text')\n .unique('value'),\n otherwise: Joi.array()\n .items(numberListItemSchema)\n .unique('text')\n .unique('value')\n })\n})\n\nconst feedbackSchema = Joi.object<FormDefinition['feedback']>().keys({\n feedbackForm: Joi.boolean().default(false),\n url: Joi.when('feedbackForm', {\n is: Joi.boolean().valid(false),\n then: Joi.string().optional().allow('')\n }),\n emailAddress: Joi.string()\n .email({\n tlds: {\n allow: false\n }\n })\n .optional()\n})\n\nconst phaseBannerSchema = Joi.object<PhaseBanner>().keys({\n phase: Joi.string().valid('alpha', 'beta')\n})\n\nconst outputSchema = Joi.object<FormDefinition['output']>().keys({\n audience: Joi.string().valid('human', 'machine').required(),\n version: Joi.string().required()\n})\n\n/**\n * Joi schema for `FormDefinition` interface\n * @see {@link FormDefinition}\n */\nexport const formDefinitionSchema = Joi.object<FormDefinition>()\n .required()\n .keys({\n engine: Joi.string().allow('V1', 'V2').default('V1'),\n name: Joi.string().allow('').optional(),\n feedback: feedbackSchema.optional(),\n startPage: Joi.string().optional(),\n pages: Joi.array<Page>()\n .required()\n .items(pageSchema)\n .unique('path')\n .unique('id', { ignoreUndefined: true }),\n sections: Joi.array<Section>()\n .items(sectionsSchema)\n .unique('name')\n .unique('title')\n .required(),\n conditions: Joi.array<ConditionWrapper>()\n .items(conditionWrapperSchema)\n .unique('name')\n .unique('displayName'),\n lists: Joi.array<List>().items(listSchema).unique('name').unique('title'),\n metadata: Joi.object({ a: Joi.any() }).unknown().optional(),\n declaration: Joi.string().allow('').optional(),\n skipSummary: Joi.any().strip(),\n phaseBanner: phaseBannerSchema.optional(),\n outputEmail: Joi.string()\n .email({ tlds: { allow: ['uk'] } })\n .trim()\n .optional(),\n output: outputSchema.optional()\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","ComponentType","sectionsSchema","object","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","when","is","valid","Details","Html","InsetText","then","otherwise","allow","hint","options","rows","number","empty","maxWords","maxDaysInPast","maxDaysInFuture","customValidationMessage","customValidationMessages","unknown","schema","min","max","length","list","nextSchema","path","condition","redirect","repeatOptions","repeatSchema","pageRepeatSchema","eventSchema","method","url","uri","scheme","eventsSchema","onLoad","onSave","pageSchema","uuid","disallow","section","controller","components","unique","repeat","any","strip","next","events","view","baseListItemSchema","text","description","conditional","stringListItemSchema","append","numberListItemSchema","listSchema","feedbackSchema","feedbackForm","emailAddress","email","tlds","phaseBannerSchema","phase","outputSchema","audience","version","formDefinitionSchema","engine","feedback","startPage","pages","ignoreUndefined","sections","lists","metadata","a","declaration","skipSummary","phaseBanner","outputEmail","trim","output","Schema"],"sources":["../../../../src/form/form-definition/index.ts"],"sourcesContent":["import Joi, { type LanguageMessages } from 'joi'\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>().keys({\n name: Joi.string().required(),\n title: Joi.string().required(),\n hideTitle: Joi.boolean().optional().default(false)\n})\n\nconst conditionFieldSchema = Joi.object<ConditionFieldData>().keys({\n name: Joi.string().required(),\n type: Joi.string().required(),\n display: Joi.string().required()\n})\n\nconst conditionValueSchema = Joi.object<ConditionValueData>().keys({\n type: Joi.string().required(),\n value: Joi.string().required(),\n display: Joi.string().required()\n})\n\nconst relativeDateValueSchema = Joi.object<RelativeDateValueData>().keys({\n type: Joi.string().required(),\n period: Joi.string().required(),\n unit: Joi.string().required(),\n direction: Joi.string().required()\n})\n\nconst conditionRefSchema = Joi.object<ConditionRefData>().keys({\n conditionName: Joi.string().required(),\n conditionDisplayName: Joi.string().required(),\n coordinator: Joi.string().optional()\n})\n\nconst conditionSchema = Joi.object<ConditionData>().keys({\n field: conditionFieldSchema,\n operator: Joi.string().required(),\n value: Joi.alternatives().try(conditionValueSchema, relativeDateValueSchema),\n coordinator: Joi.string().optional()\n})\n\nconst conditionGroupSchema = Joi.object<ConditionGroupData>()\n .keys({\n conditions: Joi.array().items(\n Joi.alternatives().try(\n conditionSchema,\n conditionRefSchema,\n Joi.link('#conditionGroupSchema')\n )\n )\n })\n .id('conditionGroupSchema')\n\nconst conditionsModelSchema = Joi.object<ConditionsModelData>().keys({\n name: Joi.string().required(),\n conditions: Joi.array().items(\n Joi.alternatives().try(\n conditionSchema,\n conditionRefSchema,\n conditionGroupSchema\n )\n )\n})\n\nconst conditionWrapperSchema = Joi.object<ConditionWrapper>().keys({\n name: Joi.string().required(),\n displayName: Joi.string(),\n value: conditionsModelSchema.required()\n})\n\nexport const componentSchema = Joi.object<ComponentDef>()\n .keys({\n type: Joi.string<ComponentType>().required(),\n name: Joi.when('type', {\n is: Joi.string().valid(\n ComponentType.Details,\n ComponentType.Html,\n ComponentType.InsetText\n ),\n then: Joi.string().optional(),\n otherwise: Joi.string()\n }),\n title: Joi.when('type', {\n is: Joi.string().valid(\n ComponentType.Details,\n ComponentType.Html,\n ComponentType.InsetText\n ),\n then: Joi.string().optional(),\n otherwise: Joi.string().allow('')\n }),\n hint: Joi.string().allow('').optional(),\n options: Joi.object({\n rows: Joi.number().empty(''),\n maxWords: Joi.number().empty(''),\n maxDaysInPast: Joi.number().empty(''),\n maxDaysInFuture: Joi.number().empty(''),\n customValidationMessage: Joi.string().allow(''),\n customValidationMessages: Joi.object<LanguageMessages>()\n .unknown(true)\n .optional()\n })\n .default({})\n .unknown(true),\n schema: Joi.object({\n min: Joi.number().empty(''),\n max: Joi.number().empty(''),\n length: Joi.number().empty('')\n })\n .unknown(true)\n .default({}),\n list: Joi.string().optional()\n })\n .unknown(true)\n\nconst nextSchema = Joi.object<Link>().keys({\n path: Joi.string().required(),\n condition: Joi.string().allow('').optional(),\n redirect: Joi.string().optional()\n})\n\nconst repeatOptions = Joi.object<RepeatOptions>().keys({\n name: Joi.string().required(),\n title: Joi.string().required()\n})\n\nconst repeatSchema = Joi.object<RepeatSchema>().keys({\n min: Joi.number().empty('').required(),\n max: Joi.number().empty('').required()\n})\n\nconst pageRepeatSchema = Joi.object<Repeat>().keys({\n options: repeatOptions.required(),\n schema: repeatSchema.required()\n})\n\nconst eventSchema = Joi.object<Event>().keys({\n type: Joi.string().allow('http').required(),\n options: Joi.object<EventOptions>().keys({\n method: Joi.string().allow('POST').required(),\n url: Joi.string()\n .uri({ scheme: ['http', 'https'] })\n .required()\n })\n})\n\nconst eventsSchema = Joi.object<Events>().keys({\n onLoad: eventSchema.optional(),\n onSave: eventSchema.optional()\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>().keys({\n id: Joi.string().uuid().optional(),\n path: Joi.string().required().disallow('/status'),\n title: Joi.string().required(),\n section: Joi.string(),\n controller: Joi.string().optional(),\n components: Joi.array<ComponentDef>().items(componentSchema).unique('name'),\n repeat: Joi.when('controller', {\n is: Joi.string().valid('RepeatPageController').required(),\n then: pageRepeatSchema.required(),\n otherwise: Joi.any().strip()\n }),\n condition: Joi.string().allow('').optional(),\n next: Joi.array<Link>().items(nextSchema),\n events: eventsSchema.optional(),\n view: Joi.string().optional()\n})\n\nconst baseListItemSchema = Joi.object<Item>().keys({\n text: Joi.string().allow(''),\n description: Joi.string().allow('').optional(),\n conditional: Joi.object<Item['conditional']>()\n .keys({\n components: Joi.array<ComponentDef>()\n .required()\n .items(componentSchema.unknown(true))\n .unique('name')\n })\n .optional(),\n condition: Joi.string().allow('').optional()\n})\n\nconst stringListItemSchema = baseListItemSchema.append({\n value: Joi.string().required()\n})\n\nconst numberListItemSchema = baseListItemSchema.append({\n value: Joi.number().required()\n})\n\nconst listSchema = Joi.object<List>().keys({\n name: Joi.string().required(),\n title: Joi.string().required(),\n type: Joi.string().required().valid('string', 'number'),\n items: Joi.when('type', {\n is: 'string',\n then: Joi.array()\n .items(stringListItemSchema)\n .unique('text')\n .unique('value'),\n otherwise: Joi.array()\n .items(numberListItemSchema)\n .unique('text')\n .unique('value')\n })\n})\n\nconst feedbackSchema = Joi.object<FormDefinition['feedback']>().keys({\n feedbackForm: Joi.boolean().default(false),\n url: Joi.when('feedbackForm', {\n is: Joi.boolean().valid(false),\n then: Joi.string().optional().allow('')\n }),\n emailAddress: Joi.string()\n .email({\n tlds: {\n allow: false\n }\n })\n .optional()\n})\n\nconst phaseBannerSchema = Joi.object<PhaseBanner>().keys({\n phase: Joi.string().valid('alpha', 'beta')\n})\n\nconst outputSchema = Joi.object<FormDefinition['output']>().keys({\n audience: Joi.string().valid('human', 'machine').required(),\n version: Joi.string().required()\n})\n\n/**\n * Joi schema for `FormDefinition` interface\n * @see {@link FormDefinition}\n */\nexport const formDefinitionSchema = Joi.object<FormDefinition>()\n .required()\n .keys({\n engine: Joi.string().allow('V1', 'V2').default('V1'),\n name: Joi.string().allow('').optional(),\n feedback: feedbackSchema.optional(),\n startPage: Joi.string().optional(),\n pages: Joi.array<Page>()\n .required()\n .items(pageSchema)\n .unique('path')\n .unique('id', { ignoreUndefined: true }),\n sections: Joi.array<Section>()\n .items(sectionsSchema)\n .unique('name')\n .unique('title')\n .required(),\n conditions: Joi.array<ConditionWrapper>()\n .items(conditionWrapperSchema)\n .unique('name')\n .unique('displayName'),\n lists: Joi.array<List>().items(listSchema).unique('name').unique('title'),\n metadata: Joi.object({ a: Joi.any() }).unknown().optional(),\n declaration: Joi.string().allow('').optional(),\n skipSummary: Joi.any().strip(),\n phaseBanner: phaseBannerSchema.optional(),\n outputEmail: Joi.string()\n .email({ tlds: { allow: ['uk'] } })\n .trim()\n .optional(),\n output: outputSchema.optional()\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 +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}\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}\n\nexport interface List {\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\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;;AAqJlB;AACA;AACA;AACA","ignoreList":[]}
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}\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}\n\nexport interface List {\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\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;;AAqJlB;AACA;AACA;AACA","ignoreList":[]}
@@ -19,8 +19,8 @@ export interface Event {
19
19
  options: EventOptions;
20
20
  }
21
21
  export interface Events {
22
- onLoad: Event;
23
- onSave: Event;
22
+ onLoad?: Event;
23
+ onSave?: Event;
24
24
  }
25
25
  export interface PageBase {
26
26
  id?: string;
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@defra/forms-model",
3
- "version": "3.0.400",
3
+ "version": "3.0.401",
4
4
  "description": "A hapi plugin providing the model for Defra forms",
5
5
  "homepage": "https://github.com/DEFRA/forms-designer/tree/main/model#readme",
6
6
  "repository": {
@@ -172,8 +172,8 @@ const eventSchema = Joi.object<Event>().keys({
172
172
  })
173
173
 
174
174
  const eventsSchema = Joi.object<Events>().keys({
175
- onLoad: eventSchema,
176
- onSave: eventSchema
175
+ onLoad: eventSchema.optional(),
176
+ onSave: eventSchema.optional()
177
177
  })
178
178
 
179
179
  /**
@@ -25,8 +25,8 @@ export interface Event {
25
25
  }
26
26
 
27
27
  export interface Events {
28
- onLoad: Event
29
- onSave: Event
28
+ onLoad?: Event
29
+ onSave?: Event
30
30
  }
31
31
 
32
32
  export interface PageBase {