@defra/forms-model 3.0.599 → 3.0.600

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.
@@ -24,18 +24,19 @@ import { SelectQuestion } from "./select.js";
24
24
  import { ShortAnswerQuestion } from "./short-answer.js";
25
25
  import { SupportingEvidenceQuestion } from "./supporting-evidence.js";
26
26
  import { UkAddressComponentPreviewElements, UkAddressQuestion } from "./uk-address.js";
27
+ import { UnsupportedQuestion } from "./unsupported-question.js";
27
28
  import { YesNoQuestion } from "./yes-no.js";
28
29
  import { findDefinitionListFromComponent } from "../../utils/list.js";
29
30
  /**
30
31
  * @type {typeof PreviewComponent}
31
32
  */
32
- const InputFieldComponentDefault = ShortAnswerQuestion;
33
+ const InvalidFieldComponent = UnsupportedQuestion;
33
34
 
34
35
  /**
35
36
  * @type {Partial<Record<ComponentType, typeof PreviewComponent>>}
36
37
  */
37
38
  const InputFieldComponentDictionary = {
38
- [ComponentType.TextField]: InputFieldComponentDefault,
39
+ [ComponentType.TextField]: ShortAnswerQuestion,
39
40
  [ComponentType.Details]: ShortAnswerQuestion,
40
41
  [ComponentType.InsetText]: ShortAnswerQuestion,
41
42
  [ComponentType.Html]: ShortAnswerQuestion,
@@ -144,7 +145,7 @@ export function mapComponentToPreviewQuestion(questionRenderer, definition) {
144
145
  } else {
145
146
  questionElements = new ComponentElements(component);
146
147
  }
147
- const QuestionConstructor = InputFieldComponentDictionary[component.type] ?? InputFieldComponentDefault;
148
+ const QuestionConstructor = InputFieldComponentDictionary[component.type] ?? InvalidFieldComponent;
148
149
  const previewComponent = new QuestionConstructor(questionElements, questionRenderer);
149
150
  previewComponent.id = component.id;
150
151
  return previewComponent;
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","names":["ComponentType","hasContentField","hasInputField","hasListField","hasSelectionFields","AutocompleteListQuestion","CheckboxQuestion","ComponentElements","ContentElements","DateInputQuestion","DeclarationComponentPreviewElements","DeclarationQuestion","EastingNorthingComponentPreviewElements","EastingNorthingQuestion","EmailAddressQuestion","HiddenQuestion","LatLongComponentPreviewElements","LatLongQuestion","ListComponentElements","ListQuestion","SelectComponentElements","LongAnswerQuestion","MultilineTextFieldComponentPreviewElements","Markdown","MonthYearQuestion","NationalGridComponentPreviewElements","NationalGridQuestion","NumberComponentPreviewElements","NumberOnlyQuestion","OsGridRefComponentPreviewElements","OsGridRefQuestion","PhoneNumberQuestion","QuestionComponentElements","RadioQuestion","SelectQuestion","ShortAnswerQuestion","SupportingEvidenceQuestion","UkAddressComponentPreviewElements","UkAddressQuestion","YesNoQuestion","findDefinitionListFromComponent","InputFieldComponentDefault","InputFieldComponentDictionary","TextField","Details","InsetText","Html","List","EmailAddressField","NumberField","MultilineTextField","TelephoneNumberField","MonthYearField","DatePartsField","UkAddressField","AutocompleteField","RadiosField","CheckboxesField","SelectField","YesNoField","DeclarationField","FileUploadField","EastingNorthingField","OsGridRefField","NationalGridFieldNumberField","LatLongField","HiddenField","ComponentToPreviewQuestion","component","definition","componentCoerced","list","_definition","mapComponentToPreviewQuestion","questionRenderer","questionElements","getQuestionElementsFunc","type","QuestionConstructor","previewComponent","id"],"sources":["../../../../../src/form/form-editor/preview/helpers.js"],"sourcesContent":["import { ComponentType } from '~/src/components/enums.js'\nimport {\n hasContentField,\n hasInputField,\n hasListField,\n hasSelectionFields\n} from '~/src/components/helpers.js'\nimport { AutocompleteListQuestion } from '~/src/form/form-editor/preview/autocomplete.js'\nimport { CheckboxQuestion } from '~/src/form/form-editor/preview/checkbox.js'\nimport { ComponentElements } from '~/src/form/form-editor/preview/component-elements.js'\nimport { ContentElements } from '~/src/form/form-editor/preview/content.js'\nimport { DateInputQuestion } from '~/src/form/form-editor/preview/date-input.js'\nimport {\n DeclarationComponentPreviewElements,\n DeclarationQuestion\n} from '~/src/form/form-editor/preview/declaration.js'\nimport {\n EastingNorthingComponentPreviewElements,\n EastingNorthingQuestion\n} from '~/src/form/form-editor/preview/easting-northing.js'\nimport { EmailAddressQuestion } from '~/src/form/form-editor/preview/email-address.js'\nimport { HiddenQuestion } from '~/src/form/form-editor/preview/hidden.js'\nimport {\n LatLongComponentPreviewElements,\n LatLongQuestion\n} from '~/src/form/form-editor/preview/lat-long.js'\nimport {\n ListComponentElements,\n ListQuestion,\n SelectComponentElements\n} from '~/src/form/form-editor/preview/list.js'\nimport {\n LongAnswerQuestion,\n MultilineTextFieldComponentPreviewElements\n} from '~/src/form/form-editor/preview/long-answer.js'\nimport { Markdown } from '~/src/form/form-editor/preview/markdown.js'\nimport { MonthYearQuestion } from '~/src/form/form-editor/preview/month-year.js'\nimport {\n NationalGridComponentPreviewElements,\n NationalGridQuestion\n} from '~/src/form/form-editor/preview/national-grid.js'\nimport {\n NumberComponentPreviewElements,\n NumberOnlyQuestion\n} from '~/src/form/form-editor/preview/number-only.js'\nimport {\n OsGridRefComponentPreviewElements,\n OsGridRefQuestion\n} from '~/src/form/form-editor/preview/os-grid-ref.js'\nimport { PhoneNumberQuestion } from '~/src/form/form-editor/preview/phone-number.js'\nimport { QuestionComponentElements } from '~/src/form/form-editor/preview/question.js'\nimport { RadioQuestion } from '~/src/form/form-editor/preview/radio.js'\nimport { SelectQuestion } from '~/src/form/form-editor/preview/select.js'\nimport { ShortAnswerQuestion } from '~/src/form/form-editor/preview/short-answer.js'\nimport { SupportingEvidenceQuestion } from '~/src/form/form-editor/preview/supporting-evidence.js'\nimport {\n UkAddressComponentPreviewElements,\n UkAddressQuestion\n} from '~/src/form/form-editor/preview/uk-address.js'\nimport { YesNoQuestion } from '~/src/form/form-editor/preview/yes-no.js'\nimport { findDefinitionListFromComponent } from '~/src/form/utils/list.js'\n/**\n * @type {typeof PreviewComponent}\n */\nconst InputFieldComponentDefault = ShortAnswerQuestion\n\n/**\n * @type {Partial<Record<ComponentType, typeof PreviewComponent>>}\n */\nconst InputFieldComponentDictionary = {\n [ComponentType.TextField]: InputFieldComponentDefault,\n [ComponentType.Details]: ShortAnswerQuestion,\n [ComponentType.InsetText]: ShortAnswerQuestion,\n [ComponentType.Html]: ShortAnswerQuestion,\n [ComponentType.Markdown]: Markdown,\n [ComponentType.List]: ListQuestion,\n [ComponentType.EmailAddressField]: EmailAddressQuestion,\n [ComponentType.NumberField]: NumberOnlyQuestion,\n [ComponentType.MultilineTextField]: LongAnswerQuestion,\n [ComponentType.TelephoneNumberField]: PhoneNumberQuestion,\n [ComponentType.MonthYearField]: MonthYearQuestion,\n [ComponentType.DatePartsField]: DateInputQuestion,\n [ComponentType.UkAddressField]: UkAddressQuestion,\n [ComponentType.AutocompleteField]: AutocompleteListQuestion,\n [ComponentType.RadiosField]: RadioQuestion,\n [ComponentType.CheckboxesField]: CheckboxQuestion,\n [ComponentType.SelectField]: SelectQuestion,\n [ComponentType.YesNoField]: YesNoQuestion,\n [ComponentType.DeclarationField]: DeclarationQuestion,\n [ComponentType.FileUploadField]: SupportingEvidenceQuestion,\n [ComponentType.EastingNorthingField]: EastingNorthingQuestion,\n [ComponentType.OsGridRefField]: OsGridRefQuestion,\n [ComponentType.NationalGridFieldNumberField]: NationalGridQuestion,\n [ComponentType.LatLongField]: LatLongQuestion,\n [ComponentType.HiddenField]: HiddenQuestion\n}\n\n/**\n * @type {Partial<Record<ComponentType, (component: ComponentDef, definition: FormDefinition ) => QuestionElements>>}\n */\nconst ComponentToPreviewQuestion = {\n [ComponentType.AutocompleteField]: (component, definition) => {\n const componentCoerced = /** @type {AutocompleteFieldComponent} */ (\n component\n )\n const list = findDefinitionListFromComponent(componentCoerced, definition)\n return new SelectComponentElements(componentCoerced, list)\n },\n [ComponentType.SelectField]: (component, definition) => {\n const componentCoerced = /** @type {SelectFieldComponent} */ (component)\n const list = findDefinitionListFromComponent(componentCoerced, definition)\n return new SelectComponentElements(componentCoerced, list)\n },\n [ComponentType.MultilineTextField]: (component, _definition) => {\n const componentCoerced = /** @type {MultilineTextFieldComponent} */ (\n component\n )\n return new MultilineTextFieldComponentPreviewElements(componentCoerced)\n },\n [ComponentType.UkAddressField]: (component, _definition) => {\n const componentCoerced = /** @type {UkAddressFieldComponent} */ (component)\n return new UkAddressComponentPreviewElements(componentCoerced)\n },\n [ComponentType.NumberField]: (component, _definition) => {\n const componentCoerced = /** @type {NumberFieldComponent} */ (component)\n return new NumberComponentPreviewElements(componentCoerced)\n },\n [ComponentType.DeclarationField]: (component, _definition) => {\n const componentCoerced = /** @type {DeclarationFieldComponent} */ (\n component\n )\n return new DeclarationComponentPreviewElements(componentCoerced)\n },\n [ComponentType.YesNoField]: (component, _definition) => {\n const componentCoerced = /** @type {YesNoFieldComponent} */ (component)\n return new QuestionComponentElements(componentCoerced)\n },\n [ComponentType.EastingNorthingField]: (component, _definition) => {\n const componentCoerced = /** @type {EastingNorthingFieldComponent} */ (\n component\n )\n return new EastingNorthingComponentPreviewElements(componentCoerced)\n },\n [ComponentType.OsGridRefField]: (component, _definition) => {\n const componentCoerced = /** @type {OsGridRefFieldComponent} */ (component)\n return new OsGridRefComponentPreviewElements(componentCoerced)\n },\n [ComponentType.NationalGridFieldNumberField]: (component, _definition) => {\n const componentCoerced =\n /** @type {NationalGridFieldNumberFieldComponent} */ (component)\n return new NationalGridComponentPreviewElements(componentCoerced)\n },\n [ComponentType.LatLongField]: (component, _definition) => {\n const componentCoerced = /** @type {LatLongFieldComponent} */ (component)\n return new LatLongComponentPreviewElements(componentCoerced)\n }\n}\n\n/**\n * @param {QuestionRenderer} questionRenderer\n * @param {FormDefinition} definition\n * @returns {(component: ComponentDef) => Question}\n */\nexport function mapComponentToPreviewQuestion(questionRenderer, definition) {\n return /** @type {(component: ComponentDef) => Question} */ (\n (component) => {\n /**\n * @type {QuestionElements}\n */\n let questionElements\n\n // Look for one-to-one mapping first, then fallback if not found\n const getQuestionElementsFunc = ComponentToPreviewQuestion[component.type]\n if (getQuestionElementsFunc) {\n questionElements = getQuestionElementsFunc(component, definition)\n } else if (hasSelectionFields(component) && hasListField(component)) {\n const list = findDefinitionListFromComponent(component, definition)\n questionElements = new ListComponentElements(component, list)\n } else if (hasInputField(component)) {\n questionElements = new QuestionComponentElements(component)\n } else if (hasContentField(component)) {\n questionElements = new ContentElements(component)\n } else {\n questionElements = new ComponentElements(component)\n }\n\n const QuestionConstructor =\n InputFieldComponentDictionary[component.type] ??\n InputFieldComponentDefault\n const previewComponent = new QuestionConstructor(\n questionElements,\n questionRenderer\n )\n previewComponent.id = component.id\n return previewComponent\n }\n )\n}\n\n/**\n * @import { QuestionElements, QuestionRenderer } from '~/src/form/form-editor/preview/types.js'\n * @import { Question } from '~/src/form/form-editor/preview/question.js'\n * @import { PreviewComponent } from '~/src/form/form-editor/preview/preview.js'\n * @import { FormDefinition } from '~/src/form/form-definition/types.js'\n * @import { AutocompleteFieldComponent, ComponentDef, DeclarationFieldComponent, EastingNorthingFieldComponent, LatLongFieldComponent, MultilineTextFieldComponent, NationalGridFieldNumberFieldComponent, NumberFieldComponent, OsGridRefFieldComponent, SelectFieldComponent, UkAddressFieldComponent, YesNoFieldComponent } from '~/src/components/types.js'\n */\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"helpers.js","names":["ComponentType","hasContentField","hasInputField","hasListField","hasSelectionFields","AutocompleteListQuestion","CheckboxQuestion","ComponentElements","ContentElements","DateInputQuestion","DeclarationComponentPreviewElements","DeclarationQuestion","EastingNorthingComponentPreviewElements","EastingNorthingQuestion","EmailAddressQuestion","HiddenQuestion","LatLongComponentPreviewElements","LatLongQuestion","ListComponentElements","ListQuestion","SelectComponentElements","LongAnswerQuestion","MultilineTextFieldComponentPreviewElements","Markdown","MonthYearQuestion","NationalGridComponentPreviewElements","NationalGridQuestion","NumberComponentPreviewElements","NumberOnlyQuestion","OsGridRefComponentPreviewElements","OsGridRefQuestion","PhoneNumberQuestion","QuestionComponentElements","RadioQuestion","SelectQuestion","ShortAnswerQuestion","SupportingEvidenceQuestion","UkAddressComponentPreviewElements","UkAddressQuestion","UnsupportedQuestion","YesNoQuestion","findDefinitionListFromComponent","InvalidFieldComponent","InputFieldComponentDictionary","TextField","Details","InsetText","Html","List","EmailAddressField","NumberField","MultilineTextField","TelephoneNumberField","MonthYearField","DatePartsField","UkAddressField","AutocompleteField","RadiosField","CheckboxesField","SelectField","YesNoField","DeclarationField","FileUploadField","EastingNorthingField","OsGridRefField","NationalGridFieldNumberField","LatLongField","HiddenField","ComponentToPreviewQuestion","component","definition","componentCoerced","list","_definition","mapComponentToPreviewQuestion","questionRenderer","questionElements","getQuestionElementsFunc","type","QuestionConstructor","previewComponent","id"],"sources":["../../../../../src/form/form-editor/preview/helpers.js"],"sourcesContent":["import { ComponentType } from '~/src/components/enums.js'\nimport {\n hasContentField,\n hasInputField,\n hasListField,\n hasSelectionFields\n} from '~/src/components/helpers.js'\nimport { AutocompleteListQuestion } from '~/src/form/form-editor/preview/autocomplete.js'\nimport { CheckboxQuestion } from '~/src/form/form-editor/preview/checkbox.js'\nimport { ComponentElements } from '~/src/form/form-editor/preview/component-elements.js'\nimport { ContentElements } from '~/src/form/form-editor/preview/content.js'\nimport { DateInputQuestion } from '~/src/form/form-editor/preview/date-input.js'\nimport {\n DeclarationComponentPreviewElements,\n DeclarationQuestion\n} from '~/src/form/form-editor/preview/declaration.js'\nimport {\n EastingNorthingComponentPreviewElements,\n EastingNorthingQuestion\n} from '~/src/form/form-editor/preview/easting-northing.js'\nimport { EmailAddressQuestion } from '~/src/form/form-editor/preview/email-address.js'\nimport { HiddenQuestion } from '~/src/form/form-editor/preview/hidden.js'\nimport {\n LatLongComponentPreviewElements,\n LatLongQuestion\n} from '~/src/form/form-editor/preview/lat-long.js'\nimport {\n ListComponentElements,\n ListQuestion,\n SelectComponentElements\n} from '~/src/form/form-editor/preview/list.js'\nimport {\n LongAnswerQuestion,\n MultilineTextFieldComponentPreviewElements\n} from '~/src/form/form-editor/preview/long-answer.js'\nimport { Markdown } from '~/src/form/form-editor/preview/markdown.js'\nimport { MonthYearQuestion } from '~/src/form/form-editor/preview/month-year.js'\nimport {\n NationalGridComponentPreviewElements,\n NationalGridQuestion\n} from '~/src/form/form-editor/preview/national-grid.js'\nimport {\n NumberComponentPreviewElements,\n NumberOnlyQuestion\n} from '~/src/form/form-editor/preview/number-only.js'\nimport {\n OsGridRefComponentPreviewElements,\n OsGridRefQuestion\n} from '~/src/form/form-editor/preview/os-grid-ref.js'\nimport { PhoneNumberQuestion } from '~/src/form/form-editor/preview/phone-number.js'\nimport { QuestionComponentElements } from '~/src/form/form-editor/preview/question.js'\nimport { RadioQuestion } from '~/src/form/form-editor/preview/radio.js'\nimport { SelectQuestion } from '~/src/form/form-editor/preview/select.js'\nimport { ShortAnswerQuestion } from '~/src/form/form-editor/preview/short-answer.js'\nimport { SupportingEvidenceQuestion } from '~/src/form/form-editor/preview/supporting-evidence.js'\nimport {\n UkAddressComponentPreviewElements,\n UkAddressQuestion\n} from '~/src/form/form-editor/preview/uk-address.js'\nimport { UnsupportedQuestion } from '~/src/form/form-editor/preview/unsupported-question.js'\nimport { YesNoQuestion } from '~/src/form/form-editor/preview/yes-no.js'\nimport { findDefinitionListFromComponent } from '~/src/form/utils/list.js'\n/**\n * @type {typeof PreviewComponent}\n */\nconst InvalidFieldComponent = UnsupportedQuestion\n\n/**\n * @type {Partial<Record<ComponentType, typeof PreviewComponent>>}\n */\nconst InputFieldComponentDictionary = {\n [ComponentType.TextField]: ShortAnswerQuestion,\n [ComponentType.Details]: ShortAnswerQuestion,\n [ComponentType.InsetText]: ShortAnswerQuestion,\n [ComponentType.Html]: ShortAnswerQuestion,\n [ComponentType.Markdown]: Markdown,\n [ComponentType.List]: ListQuestion,\n [ComponentType.EmailAddressField]: EmailAddressQuestion,\n [ComponentType.NumberField]: NumberOnlyQuestion,\n [ComponentType.MultilineTextField]: LongAnswerQuestion,\n [ComponentType.TelephoneNumberField]: PhoneNumberQuestion,\n [ComponentType.MonthYearField]: MonthYearQuestion,\n [ComponentType.DatePartsField]: DateInputQuestion,\n [ComponentType.UkAddressField]: UkAddressQuestion,\n [ComponentType.AutocompleteField]: AutocompleteListQuestion,\n [ComponentType.RadiosField]: RadioQuestion,\n [ComponentType.CheckboxesField]: CheckboxQuestion,\n [ComponentType.SelectField]: SelectQuestion,\n [ComponentType.YesNoField]: YesNoQuestion,\n [ComponentType.DeclarationField]: DeclarationQuestion,\n [ComponentType.FileUploadField]: SupportingEvidenceQuestion,\n [ComponentType.EastingNorthingField]: EastingNorthingQuestion,\n [ComponentType.OsGridRefField]: OsGridRefQuestion,\n [ComponentType.NationalGridFieldNumberField]: NationalGridQuestion,\n [ComponentType.LatLongField]: LatLongQuestion,\n [ComponentType.HiddenField]: HiddenQuestion\n}\n\n/**\n * @type {Partial<Record<ComponentType, (component: ComponentDef, definition: FormDefinition ) => QuestionElements>>}\n */\nconst ComponentToPreviewQuestion = {\n [ComponentType.AutocompleteField]: (component, definition) => {\n const componentCoerced = /** @type {AutocompleteFieldComponent} */ (\n component\n )\n const list = findDefinitionListFromComponent(componentCoerced, definition)\n return new SelectComponentElements(componentCoerced, list)\n },\n [ComponentType.SelectField]: (component, definition) => {\n const componentCoerced = /** @type {SelectFieldComponent} */ (component)\n const list = findDefinitionListFromComponent(componentCoerced, definition)\n return new SelectComponentElements(componentCoerced, list)\n },\n [ComponentType.MultilineTextField]: (component, _definition) => {\n const componentCoerced = /** @type {MultilineTextFieldComponent} */ (\n component\n )\n return new MultilineTextFieldComponentPreviewElements(componentCoerced)\n },\n [ComponentType.UkAddressField]: (component, _definition) => {\n const componentCoerced = /** @type {UkAddressFieldComponent} */ (component)\n return new UkAddressComponentPreviewElements(componentCoerced)\n },\n [ComponentType.NumberField]: (component, _definition) => {\n const componentCoerced = /** @type {NumberFieldComponent} */ (component)\n return new NumberComponentPreviewElements(componentCoerced)\n },\n [ComponentType.DeclarationField]: (component, _definition) => {\n const componentCoerced = /** @type {DeclarationFieldComponent} */ (\n component\n )\n return new DeclarationComponentPreviewElements(componentCoerced)\n },\n [ComponentType.YesNoField]: (component, _definition) => {\n const componentCoerced = /** @type {YesNoFieldComponent} */ (component)\n return new QuestionComponentElements(componentCoerced)\n },\n [ComponentType.EastingNorthingField]: (component, _definition) => {\n const componentCoerced = /** @type {EastingNorthingFieldComponent} */ (\n component\n )\n return new EastingNorthingComponentPreviewElements(componentCoerced)\n },\n [ComponentType.OsGridRefField]: (component, _definition) => {\n const componentCoerced = /** @type {OsGridRefFieldComponent} */ (component)\n return new OsGridRefComponentPreviewElements(componentCoerced)\n },\n [ComponentType.NationalGridFieldNumberField]: (component, _definition) => {\n const componentCoerced =\n /** @type {NationalGridFieldNumberFieldComponent} */ (component)\n return new NationalGridComponentPreviewElements(componentCoerced)\n },\n [ComponentType.LatLongField]: (component, _definition) => {\n const componentCoerced = /** @type {LatLongFieldComponent} */ (component)\n return new LatLongComponentPreviewElements(componentCoerced)\n }\n}\n\n/**\n * @param {QuestionRenderer} questionRenderer\n * @param {FormDefinition} definition\n * @returns {(component: ComponentDef) => Question}\n */\nexport function mapComponentToPreviewQuestion(questionRenderer, definition) {\n return /** @type {(component: ComponentDef) => Question} */ (\n (component) => {\n /**\n * @type {QuestionElements}\n */\n let questionElements\n\n // Look for one-to-one mapping first, then fallback if not found\n const getQuestionElementsFunc = ComponentToPreviewQuestion[component.type]\n if (getQuestionElementsFunc) {\n questionElements = getQuestionElementsFunc(component, definition)\n } else if (hasSelectionFields(component) && hasListField(component)) {\n const list = findDefinitionListFromComponent(component, definition)\n questionElements = new ListComponentElements(component, list)\n } else if (hasInputField(component)) {\n questionElements = new QuestionComponentElements(component)\n } else if (hasContentField(component)) {\n questionElements = new ContentElements(component)\n } else {\n questionElements = new ComponentElements(component)\n }\n\n const QuestionConstructor =\n InputFieldComponentDictionary[component.type] ?? InvalidFieldComponent\n const previewComponent = new QuestionConstructor(\n questionElements,\n questionRenderer\n )\n previewComponent.id = component.id\n return previewComponent\n }\n )\n}\n\n/**\n * @import { QuestionElements, QuestionRenderer } from '~/src/form/form-editor/preview/types.js'\n * @import { Question } from '~/src/form/form-editor/preview/question.js'\n * @import { PreviewComponent } from '~/src/form/form-editor/preview/preview.js'\n * @import { FormDefinition } from '~/src/form/form-definition/types.js'\n * @import { AutocompleteFieldComponent, ComponentDef, DeclarationFieldComponent, EastingNorthingFieldComponent, LatLongFieldComponent, MultilineTextFieldComponent, NationalGridFieldNumberFieldComponent, NumberFieldComponent, OsGridRefFieldComponent, SelectFieldComponent, UkAddressFieldComponent, YesNoFieldComponent } from '~/src/components/types.js'\n */\n"],"mappings":"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","ignoreList":[]}
@@ -24,6 +24,7 @@ export * from "./select-sortable.js";
24
24
  export * from "./supporting-evidence.js";
25
25
  export * from "./long-answer.js";
26
26
  export * from "./uk-address.js";
27
+ export * from "./unsupported-question.js";
27
28
  export * from "./yes-no.js";
28
29
  export * from "./hidden.js";
29
30
  export * from "./controller/page-controller-base.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../../src/form/form-editor/preview/index.js"],"sourcesContent":["export * from '~/src/form/form-editor/preview/autocomplete.js'\nexport * from '~/src/form/form-editor/preview/checkbox.js'\nexport * from '~/src/form/form-editor/preview/checkbox-sortable.js'\nexport * from '~/src/form/form-editor/preview/date-input.js'\nexport * from '~/src/form/form-editor/preview/declaration.js'\nexport * from '~/src/form/form-editor/preview/easting-northing.js'\nexport * from '~/src/form/form-editor/preview/email-address.js'\nexport * from '~/src/form/form-editor/preview/lat-long.js'\nexport * from '~/src/form/form-editor/preview/list.js'\nexport * from '~/src/form/form-editor/preview/list-sortable.js'\nexport * from '~/src/form/form-editor/preview/markdown.js'\nexport * from '~/src/form/form-editor/preview/month-year.js'\nexport * from '~/src/form/form-editor/preview/national-grid.js'\nexport * from '~/src/form/form-editor/preview/number-only.js'\nexport * from '~/src/form/form-editor/preview/os-grid-ref.js'\nexport * from '~/src/form/form-editor/preview/phone-number.js'\nexport * from '~/src/form/form-editor/preview/question.js'\nexport * from '~/src/form/form-editor/preview/radio.js'\nexport * from '~/src/form/form-editor/preview/radio-sortable.js'\nexport * from '~/src/form/form-editor/preview/select-sortable.js'\nexport * from '~/src/form/form-editor/preview/short-answer.js'\nexport * from '~/src/form/form-editor/preview/select.js'\nexport * from '~/src/form/form-editor/preview/select-sortable.js'\nexport * from '~/src/form/form-editor/preview/supporting-evidence.js'\nexport * from '~/src/form/form-editor/preview/long-answer.js'\nexport * from '~/src/form/form-editor/preview/uk-address.js'\nexport * from '~/src/form/form-editor/preview/yes-no.js'\nexport * from '~/src/form/form-editor/preview/hidden.js'\nexport * from '~/src/form/form-editor/preview/controller/page-controller-base.js'\nexport * from '~/src/form/form-editor/preview/controller/page-controller.js'\nexport * from '~/src/form/form-editor/preview/controller/guidance-page-controller.js'\nexport * from '~/src/form/form-editor/preview/controller/summary-page-controller.js'\nexport * from '~/src/form/form-editor/preview/controller/reorder-questions-page-controller.js'\nexport * from '~/src/form/form-editor/preview/controller/page-controller-base.js'\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../../src/form/form-editor/preview/index.js"],"sourcesContent":["export * from '~/src/form/form-editor/preview/autocomplete.js'\nexport * from '~/src/form/form-editor/preview/checkbox.js'\nexport * from '~/src/form/form-editor/preview/checkbox-sortable.js'\nexport * from '~/src/form/form-editor/preview/date-input.js'\nexport * from '~/src/form/form-editor/preview/declaration.js'\nexport * from '~/src/form/form-editor/preview/easting-northing.js'\nexport * from '~/src/form/form-editor/preview/email-address.js'\nexport * from '~/src/form/form-editor/preview/lat-long.js'\nexport * from '~/src/form/form-editor/preview/list.js'\nexport * from '~/src/form/form-editor/preview/list-sortable.js'\nexport * from '~/src/form/form-editor/preview/markdown.js'\nexport * from '~/src/form/form-editor/preview/month-year.js'\nexport * from '~/src/form/form-editor/preview/national-grid.js'\nexport * from '~/src/form/form-editor/preview/number-only.js'\nexport * from '~/src/form/form-editor/preview/os-grid-ref.js'\nexport * from '~/src/form/form-editor/preview/phone-number.js'\nexport * from '~/src/form/form-editor/preview/question.js'\nexport * from '~/src/form/form-editor/preview/radio.js'\nexport * from '~/src/form/form-editor/preview/radio-sortable.js'\nexport * from '~/src/form/form-editor/preview/select-sortable.js'\nexport * from '~/src/form/form-editor/preview/short-answer.js'\nexport * from '~/src/form/form-editor/preview/select.js'\nexport * from '~/src/form/form-editor/preview/select-sortable.js'\nexport * from '~/src/form/form-editor/preview/supporting-evidence.js'\nexport * from '~/src/form/form-editor/preview/long-answer.js'\nexport * from '~/src/form/form-editor/preview/uk-address.js'\nexport * from '~/src/form/form-editor/preview/unsupported-question.js'\nexport * from '~/src/form/form-editor/preview/yes-no.js'\nexport * from '~/src/form/form-editor/preview/hidden.js'\nexport * from '~/src/form/form-editor/preview/controller/page-controller-base.js'\nexport * from '~/src/form/form-editor/preview/controller/page-controller.js'\nexport * from '~/src/form/form-editor/preview/controller/guidance-page-controller.js'\nexport * from '~/src/form/form-editor/preview/controller/summary-page-controller.js'\nexport * from '~/src/form/form-editor/preview/controller/reorder-questions-page-controller.js'\nexport * from '~/src/form/form-editor/preview/controller/page-controller-base.js'\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ import { PreviewComponent } from "./preview.js";
2
+ import { Question } from "./question.js";
3
+ export class UnsupportedQuestion extends Question {
4
+ /**
5
+ * @type {ComponentType}
6
+ */
7
+ // @ts-expect-error - invalid component type
8
+ componentType = 'UnsupportedQuestion';
9
+ _questionTemplate = PreviewComponent.PATH + 'unsupportedquestion.njk';
10
+ }
11
+
12
+ /**
13
+ * @import { ComponentType } from '~/src/components/enums.js'
14
+ */
15
+ //# sourceMappingURL=unsupported-question.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unsupported-question.js","names":["PreviewComponent","Question","UnsupportedQuestion","componentType","_questionTemplate","PATH"],"sources":["../../../../../src/form/form-editor/preview/unsupported-question.js"],"sourcesContent":["import { PreviewComponent } from '~/src/form/form-editor/preview/preview.js'\nimport { Question } from '~/src/form/form-editor/preview/question.js'\n\nexport class UnsupportedQuestion extends Question {\n /**\n * @type {ComponentType}\n */\n // @ts-expect-error - invalid component type\n componentType = 'UnsupportedQuestion'\n _questionTemplate = PreviewComponent.PATH + 'unsupportedquestion.njk'\n}\n\n/**\n * @import { ComponentType } from '~/src/components/enums.js'\n */\n"],"mappings":"AAAA,SAASA,gBAAgB;AACzB,SAASC,QAAQ;AAEjB,OAAO,MAAMC,mBAAmB,SAASD,QAAQ,CAAC;EAChD;AACF;AACA;EACE;EACAE,aAAa,GAAG,qBAAqB;EACrCC,iBAAiB,GAAGJ,gBAAgB,CAACK,IAAI,GAAG,yBAAyB;AACvE;;AAEA;AACA;AACA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../src/form/form-editor/preview/helpers.js"],"names":[],"mappings":"AA8JA;;;;GAIG;AACH,gEAJW,gBAAgB,cAChB,cAAc,GACZ,CAAC,SAAS,EAAE,YAAY,KAAK,QAAQ,CAoCjD;sCAGsD,yCAAyC;oCAG7D,qCAAqC;kCAC6P,2BAA2B;8BAHnU,4CAA4C"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../src/form/form-editor/preview/helpers.js"],"names":[],"mappings":"AA+JA;;;;GAIG;AACH,gEAJW,gBAAgB,cAChB,cAAc,GACZ,CAAC,SAAS,EAAE,YAAY,KAAK,QAAQ,CAmCjD;sCAGsD,yCAAyC;oCAG7D,qCAAqC;kCAC6P,2BAA2B;8BAHnU,4CAA4C"}
@@ -24,6 +24,7 @@ export * from "../../../form/form-editor/preview/select-sortable.js";
24
24
  export * from "../../../form/form-editor/preview/supporting-evidence.js";
25
25
  export * from "../../../form/form-editor/preview/long-answer.js";
26
26
  export * from "../../../form/form-editor/preview/uk-address.js";
27
+ export * from "../../../form/form-editor/preview/unsupported-question.js";
27
28
  export * from "../../../form/form-editor/preview/yes-no.js";
28
29
  export * from "../../../form/form-editor/preview/hidden.js";
29
30
  export * from "../../../form/form-editor/preview/controller/page-controller-base.js";
@@ -0,0 +1,4 @@
1
+ export class UnsupportedQuestion extends Question {
2
+ }
3
+ import { Question } from '../../../form/form-editor/preview/question.js';
4
+ //# sourceMappingURL=unsupported-question.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unsupported-question.d.ts","sourceRoot":"","sources":["../../../../../src/form/form-editor/preview/unsupported-question.js"],"names":[],"mappings":"AAGA;CAOC;yBATwB,4CAA4C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@defra/forms-model",
3
- "version": "3.0.599",
3
+ "version": "3.0.600",
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
  "types": "dist/types/index.d.ts",
@@ -57,18 +57,19 @@ import {
57
57
  UkAddressComponentPreviewElements,
58
58
  UkAddressQuestion
59
59
  } from '~/src/form/form-editor/preview/uk-address.js'
60
+ import { UnsupportedQuestion } from '~/src/form/form-editor/preview/unsupported-question.js'
60
61
  import { YesNoQuestion } from '~/src/form/form-editor/preview/yes-no.js'
61
62
  import { findDefinitionListFromComponent } from '~/src/form/utils/list.js'
62
63
  /**
63
64
  * @type {typeof PreviewComponent}
64
65
  */
65
- const InputFieldComponentDefault = ShortAnswerQuestion
66
+ const InvalidFieldComponent = UnsupportedQuestion
66
67
 
67
68
  /**
68
69
  * @type {Partial<Record<ComponentType, typeof PreviewComponent>>}
69
70
  */
70
71
  const InputFieldComponentDictionary = {
71
- [ComponentType.TextField]: InputFieldComponentDefault,
72
+ [ComponentType.TextField]: ShortAnswerQuestion,
72
73
  [ComponentType.Details]: ShortAnswerQuestion,
73
74
  [ComponentType.InsetText]: ShortAnswerQuestion,
74
75
  [ComponentType.Html]: ShortAnswerQuestion,
@@ -185,8 +186,7 @@ export function mapComponentToPreviewQuestion(questionRenderer, definition) {
185
186
  }
186
187
 
187
188
  const QuestionConstructor =
188
- InputFieldComponentDictionary[component.type] ??
189
- InputFieldComponentDefault
189
+ InputFieldComponentDictionary[component.type] ?? InvalidFieldComponent
190
190
  const previewComponent = new QuestionConstructor(
191
191
  questionElements,
192
192
  questionRenderer
@@ -24,6 +24,7 @@ export * from '~/src/form/form-editor/preview/select-sortable.js'
24
24
  export * from '~/src/form/form-editor/preview/supporting-evidence.js'
25
25
  export * from '~/src/form/form-editor/preview/long-answer.js'
26
26
  export * from '~/src/form/form-editor/preview/uk-address.js'
27
+ export * from '~/src/form/form-editor/preview/unsupported-question.js'
27
28
  export * from '~/src/form/form-editor/preview/yes-no.js'
28
29
  export * from '~/src/form/form-editor/preview/hidden.js'
29
30
  export * from '~/src/form/form-editor/preview/controller/page-controller-base.js'
@@ -0,0 +1,15 @@
1
+ import { PreviewComponent } from '~/src/form/form-editor/preview/preview.js'
2
+ import { Question } from '~/src/form/form-editor/preview/question.js'
3
+
4
+ export class UnsupportedQuestion extends Question {
5
+ /**
6
+ * @type {ComponentType}
7
+ */
8
+ // @ts-expect-error - invalid component type
9
+ componentType = 'UnsupportedQuestion'
10
+ _questionTemplate = PreviewComponent.PATH + 'unsupportedquestion.njk'
11
+ }
12
+
13
+ /**
14
+ * @import { ComponentType } from '~/src/components/enums.js'
15
+ */