@defra/forms-model 3.0.591 → 3.0.593
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/components/enums.js +5 -0
- package/dist/module/components/enums.js.map +1 -1
- package/dist/module/components/index.js +1 -1
- package/dist/module/components/index.js.map +1 -1
- package/dist/module/components/types.js.map +1 -1
- package/dist/module/conditions/condition-operators.js.map +1 -1
- package/dist/module/form/form-definition/helpers.js +1 -1
- package/dist/module/form/form-definition/helpers.js.map +1 -1
- package/dist/module/form/form-editor/preview/helpers.js +8 -3
- package/dist/module/form/form-editor/preview/helpers.js.map +1 -1
- package/dist/types/components/enums.d.ts +1 -0
- package/dist/types/components/enums.d.ts.map +1 -1
- package/dist/types/components/index.d.ts +1 -1
- package/dist/types/components/index.d.ts.map +1 -1
- package/dist/types/components/types.d.ts +2 -1
- package/dist/types/components/types.d.ts.map +1 -1
- package/dist/types/conditions/condition-operators.d.ts +3 -87
- package/dist/types/conditions/condition-operators.d.ts.map +1 -1
- package/dist/types/form/form-definition/helpers.d.ts +1 -1
- package/dist/types/form/form-definition/helpers.d.ts.map +1 -1
- package/dist/types/form/form-editor/preview/helpers.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/enums.ts +6 -0
- package/src/components/index.ts +1 -1
- package/src/components/types.ts +6 -1
- package/src/conditions/condition-operators.ts +5 -1
- package/src/form/form-definition/helpers.ts +4 -2
- package/src/form/form-editor/preview/helpers.js +10 -4
|
@@ -26,4 +26,9 @@ export let ComponentType = /*#__PURE__*/function (ComponentType) {
|
|
|
26
26
|
ComponentType["HiddenField"] = "HiddenField";
|
|
27
27
|
return ComponentType;
|
|
28
28
|
}({});
|
|
29
|
+
export const PreviewTypeEnum = {
|
|
30
|
+
...ComponentType,
|
|
31
|
+
Question: 'Question',
|
|
32
|
+
ListSortable: 'ListSortable'
|
|
33
|
+
};
|
|
29
34
|
//# sourceMappingURL=enums.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enums.js","names":["ComponentType"],"sources":["../../../src/components/enums.ts"],"sourcesContent":["export enum ComponentType {\n TextField = 'TextField',\n MultilineTextField = 'MultilineTextField',\n YesNoField = 'YesNoField',\n DatePartsField = 'DatePartsField',\n MonthYearField = 'MonthYearField',\n SelectField = 'SelectField',\n AutocompleteField = 'AutocompleteField',\n RadiosField = 'RadiosField',\n CheckboxesField = 'CheckboxesField',\n NumberField = 'NumberField',\n UkAddressField = 'UkAddressField',\n TelephoneNumberField = 'TelephoneNumberField',\n EmailAddressField = 'EmailAddressField',\n Html = 'Html',\n InsetText = 'InsetText',\n Details = 'Details',\n List = 'List',\n Markdown = 'Markdown',\n FileUploadField = 'FileUploadField',\n DeclarationField = 'DeclarationField',\n EastingNorthingField = 'EastingNorthingField',\n OsGridRefField = 'OsGridRefField',\n NationalGridFieldNumberField = 'NationalGridFieldNumberField',\n LatLongField = 'LatLongField',\n HiddenField = 'HiddenField'\n}\n"],"mappings":"AAAA,WAAYA,aAAa,0BAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"enums.js","names":["ComponentType","PreviewTypeEnum","Question","ListSortable"],"sources":["../../../src/components/enums.ts"],"sourcesContent":["export enum ComponentType {\n TextField = 'TextField',\n MultilineTextField = 'MultilineTextField',\n YesNoField = 'YesNoField',\n DatePartsField = 'DatePartsField',\n MonthYearField = 'MonthYearField',\n SelectField = 'SelectField',\n AutocompleteField = 'AutocompleteField',\n RadiosField = 'RadiosField',\n CheckboxesField = 'CheckboxesField',\n NumberField = 'NumberField',\n UkAddressField = 'UkAddressField',\n TelephoneNumberField = 'TelephoneNumberField',\n EmailAddressField = 'EmailAddressField',\n Html = 'Html',\n InsetText = 'InsetText',\n Details = 'Details',\n List = 'List',\n Markdown = 'Markdown',\n FileUploadField = 'FileUploadField',\n DeclarationField = 'DeclarationField',\n EastingNorthingField = 'EastingNorthingField',\n OsGridRefField = 'OsGridRefField',\n NationalGridFieldNumberField = 'NationalGridFieldNumberField',\n LatLongField = 'LatLongField',\n HiddenField = 'HiddenField'\n}\n\nexport const PreviewTypeEnum = {\n ...ComponentType,\n Question: 'Question',\n ListSortable: 'ListSortable'\n} as Record<string, string>\n"],"mappings":"AAAA,WAAYA,aAAa,0BAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA;AA4BzB,OAAO,MAAMC,eAAe,GAAG;EAC7B,GAAGD,aAAa;EAChBE,QAAQ,EAAE,UAAU;EACpBC,YAAY,EAAE;AAChB,CAA2B","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { ComponentTypes } from "./component-types.js";
|
|
2
|
-
export { ComponentType } from "./enums.js";
|
|
2
|
+
export { ComponentType, PreviewTypeEnum } from "./enums.js";
|
|
3
3
|
export { allDocumentTypes, allImageTypes, allTabularDataTypes } from "./file-types.js";
|
|
4
4
|
export { getComponentDefaults, hasConditionSupport, hasContent, hasContentField, hasFormField, hasHint, hasInputField, hasListField, hasSelectionFields, hasTitle, isConditionalRevealType, isConditionalType, isContentType, isFormType, isListType } from "./helpers.js";
|
|
5
5
|
export { getYesNoList, yesNoListId, yesNoListName, yesNoListNoItemId, yesNoListYesItemId } from "./yes-no-helper.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["ComponentTypes","ComponentType","allDocumentTypes","allImageTypes","allTabularDataTypes","getComponentDefaults","hasConditionSupport","hasContent","hasContentField","hasFormField","hasHint","hasInputField","hasListField","hasSelectionFields","hasTitle","isConditionalRevealType","isConditionalType","isContentType","isFormType","isListType","getYesNoList","yesNoListId","yesNoListName","yesNoListNoItemId","yesNoListYesItemId"],"sources":["../../../src/components/index.ts"],"sourcesContent":["export { ComponentTypes } from '~/src/components/component-types.js'\nexport { ComponentType } from '~/src/components/enums.js'\nexport {\n allDocumentTypes,\n allImageTypes,\n allTabularDataTypes\n} from '~/src/components/file-types.js'\nexport {\n getComponentDefaults,\n hasConditionSupport,\n hasContent,\n hasContentField,\n hasFormField,\n hasHint,\n hasInputField,\n hasListField,\n hasSelectionFields,\n hasTitle,\n isConditionalRevealType,\n isConditionalType,\n isContentType,\n isFormType,\n isListType\n} from '~/src/components/helpers.js'\nexport {\n getYesNoList,\n yesNoListId,\n yesNoListName,\n yesNoListNoItemId,\n yesNoListYesItemId\n} from '~/src/components/yes-no-helper.js'\n"],"mappings":"AAAA,SAASA,cAAc;AACvB,SAASC,aAAa;
|
|
1
|
+
{"version":3,"file":"index.js","names":["ComponentTypes","ComponentType","PreviewTypeEnum","allDocumentTypes","allImageTypes","allTabularDataTypes","getComponentDefaults","hasConditionSupport","hasContent","hasContentField","hasFormField","hasHint","hasInputField","hasListField","hasSelectionFields","hasTitle","isConditionalRevealType","isConditionalType","isContentType","isFormType","isListType","getYesNoList","yesNoListId","yesNoListName","yesNoListNoItemId","yesNoListYesItemId"],"sources":["../../../src/components/index.ts"],"sourcesContent":["export { ComponentTypes } from '~/src/components/component-types.js'\nexport { ComponentType, PreviewTypeEnum } from '~/src/components/enums.js'\nexport {\n allDocumentTypes,\n allImageTypes,\n allTabularDataTypes\n} from '~/src/components/file-types.js'\nexport {\n getComponentDefaults,\n hasConditionSupport,\n hasContent,\n hasContentField,\n hasFormField,\n hasHint,\n hasInputField,\n hasListField,\n hasSelectionFields,\n hasTitle,\n isConditionalRevealType,\n isConditionalType,\n isContentType,\n isFormType,\n isListType\n} from '~/src/components/helpers.js'\nexport {\n getYesNoList,\n yesNoListId,\n yesNoListName,\n yesNoListNoItemId,\n yesNoListYesItemId\n} from '~/src/components/yes-no-helper.js'\n"],"mappings":"AAAA,SAASA,cAAc;AACvB,SAASC,aAAa,EAAEC,eAAe;AACvC,SACEC,gBAAgB,EAChBC,aAAa,EACbC,mBAAmB;AAErB,SACEC,oBAAoB,EACpBC,mBAAmB,EACnBC,UAAU,EACVC,eAAe,EACfC,YAAY,EACZC,OAAO,EACPC,aAAa,EACbC,YAAY,EACZC,kBAAkB,EAClBC,QAAQ,EACRC,uBAAuB,EACvBC,iBAAiB,EACjBC,aAAa,EACbC,UAAU,EACVC,UAAU;AAEZ,SACEC,YAAY,EACZC,WAAW,EACXC,aAAa,EACbC,iBAAiB,EACjBC,kBAAkB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/components/types.ts"],"sourcesContent":["import { type LanguageMessages } from 'joi'\n\nimport {
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/components/types.ts"],"sourcesContent":["import { type LanguageMessages } from 'joi'\n\nimport {\n type ComponentType,\n type PreviewTypeEnum\n} from '~/src/components/enums.js'\nimport {\n type ListTypeContent,\n type ListTypeOption\n} from '~/src/form/form-definition/types.js'\n\nexport type ConditionalComponentType = Exclude<\n ConditionalComponentsDef['type'],\n ContentComponentsDef\n>\n\n/**\n * Types for Components JSON structure which are expected by engine and turned into actual form input/content/lists\n */\n\ninterface FormFieldBase {\n id?: string\n type: FormComponentsDef['type']\n shortDescription?: string\n name: string\n title: string\n hint?: string\n options: {\n required?: boolean\n optionalText?: boolean\n classes?: string\n customValidationMessages?: LanguageMessages\n instructionText?: string\n }\n}\n\ninterface ListFieldBase extends FormFieldBase {\n type:\n | ComponentType.AutocompleteField\n | ComponentType.CheckboxesField\n | ComponentType.RadiosField\n | ComponentType.SelectField\n list: string\n options: FormFieldBase['options'] & {\n type?: ListTypeContent\n }\n}\n\ninterface ContentFieldBase {\n id?: string\n type:\n | ComponentType.Details\n | ComponentType.Html\n | ComponentType.Markdown\n | ComponentType.InsetText\n | ComponentType.List\n name: string\n title: string\n options?: {\n required?: undefined\n optionalText?: undefined\n }\n}\n\ninterface DateFieldBase extends FormFieldBase {\n type: ComponentType.DatePartsField | ComponentType.MonthYearField\n name: string\n title: string\n hint?: string\n options: FormFieldBase['options'] & {\n maxDaysInPast?: number\n maxDaysInFuture?: number\n }\n}\n\n// Text Fields\nexport interface TextFieldComponent extends FormFieldBase {\n type: ComponentType.TextField\n options: FormFieldBase['options'] & {\n autocomplete?: string\n condition?: string\n customValidationMessage?: string\n }\n schema: {\n max?: number\n min?: number\n length?: number\n regex?: string\n }\n}\n\nexport interface EmailAddressFieldComponent extends FormFieldBase {\n type: ComponentType.EmailAddressField\n options: FormFieldBase['options'] & {\n condition?: string\n customValidationMessage?: string\n }\n}\n\nexport interface NumberFieldComponent extends FormFieldBase {\n type: ComponentType.NumberField\n options: FormFieldBase['options'] & {\n prefix?: string\n suffix?: string\n autocomplete?: string\n condition?: string\n customValidationMessage?: string\n }\n schema: {\n max?: number\n min?: number\n precision?: number\n minPrecision?: number\n minLength?: number\n maxLength?: number\n }\n}\n\nexport interface TelephoneNumberFieldComponent extends FormFieldBase {\n type: ComponentType.TelephoneNumberField\n options: FormFieldBase['options'] & {\n condition?: string\n customValidationMessage?: string\n }\n}\n\nexport interface FileUploadFieldComponent extends FormFieldBase {\n type: ComponentType.FileUploadField\n name: string\n title: string\n hint?: string\n options: FormFieldBase['options'] & {\n accept?: string\n }\n schema: {\n max?: number\n min?: number\n length?: number\n }\n}\n\nexport interface YesNoFieldComponent extends FormFieldBase {\n type: ComponentType.YesNoField\n options: FormFieldBase['options'] & {\n condition?: string\n }\n}\n\nexport interface DeclarationFieldComponent extends FormFieldBase {\n type: ComponentType.DeclarationField\n content: string\n options: FormFieldBase['options'] & {\n condition?: string\n declarationConfirmationLabel?: string\n }\n}\n\nexport interface MultilineTextFieldComponent extends FormFieldBase {\n type: ComponentType.MultilineTextField\n options: FormFieldBase['options'] & {\n autocomplete?: string\n condition?: string\n customValidationMessage?: string\n rows?: number\n maxWords?: number\n }\n schema: {\n max?: number\n min?: number\n length?: number\n regex?: string\n }\n}\n\nexport interface UkAddressFieldComponent extends FormFieldBase {\n type: ComponentType.UkAddressField\n options: FormFieldBase['options'] & {\n hideTitle?: boolean\n usePostcodeLookup?: boolean\n }\n}\n\n// Precise Location Fields\nexport interface EastingNorthingFieldComponent extends FormFieldBase {\n type: ComponentType.EastingNorthingField\n options: FormFieldBase['options'] & {\n condition?: string\n customValidationMessage?: string\n }\n schema?: {\n easting?: {\n min?: number\n max?: number\n }\n northing?: {\n min?: number\n max?: number\n }\n }\n}\n\nexport interface OsGridRefFieldComponent extends FormFieldBase {\n type: ComponentType.OsGridRefField\n options: FormFieldBase['options'] & {\n condition?: string\n customValidationMessage?: string\n }\n}\n\nexport interface NationalGridFieldNumberFieldComponent extends FormFieldBase {\n type: ComponentType.NationalGridFieldNumberField\n options: FormFieldBase['options'] & {\n condition?: string\n customValidationMessage?: string\n }\n}\n\nexport interface LatLongFieldComponent extends FormFieldBase {\n type: ComponentType.LatLongField\n options: FormFieldBase['options'] & {\n condition?: string\n customValidationMessage?: string\n }\n schema?: {\n latitude?: {\n min?: number\n max?: number\n }\n longitude?: {\n min?: number\n max?: number\n }\n }\n}\n\nexport interface HiddenFieldComponent extends FormFieldBase {\n type: ComponentType.HiddenField\n options: FormFieldBase['options'] & {\n condition?: string\n }\n}\n\n// Date Fields\nexport interface DatePartsFieldComponent extends DateFieldBase {\n type: ComponentType.DatePartsField\n options: DateFieldBase['options'] & {\n condition?: string\n }\n}\n\nexport interface MonthYearFieldComponent extends DateFieldBase {\n type: ComponentType.MonthYearField\n options: DateFieldBase['options'] & {\n customValidationMessage?: string\n }\n}\n\n// Content Fields\nexport interface DetailsComponent extends ContentFieldBase {\n type: ComponentType.Details\n content: string\n options: ContentFieldBase['options'] & {\n condition?: string\n }\n}\n\nexport interface HtmlComponent extends ContentFieldBase {\n type: ComponentType.Html\n content: string\n options: ContentFieldBase['options'] & {\n condition?: string\n }\n}\n\nexport interface MarkdownComponent extends ContentFieldBase {\n type: ComponentType.Markdown\n content: string\n options: ContentFieldBase['options'] & {\n condition?: string\n }\n}\n\nexport interface InsetTextComponent extends ContentFieldBase {\n type: ComponentType.InsetText\n content: string\n}\n\nexport interface ListComponent extends ContentFieldBase {\n type: ComponentType.List\n hint?: string\n list: string\n options: ContentFieldBase['options'] & {\n type?: ListTypeOption\n classes?: string\n hideTitle?: boolean\n bold?: boolean\n }\n}\n\nexport interface AutocompleteFieldComponent extends ListFieldBase {\n type: ComponentType.AutocompleteField\n options: ListFieldBase['options'] & {\n condition?: string\n }\n}\n\nexport interface CheckboxesFieldComponent extends ListFieldBase {\n type: ComponentType.CheckboxesField\n options: ListFieldBase['options'] & {\n bold?: boolean\n condition?: string\n }\n}\n\nexport interface RadiosFieldComponent extends ListFieldBase {\n type: ComponentType.RadiosField\n options: ListFieldBase['options'] & {\n bold?: boolean\n condition?: string\n }\n}\n\nexport interface SelectFieldComponent extends ListFieldBase {\n type: ComponentType.SelectField\n options: ListFieldBase['options'] & {\n autocomplete?: string\n condition?: string\n }\n}\n\nexport type ComponentDef = FormComponentsDef | ContentComponentsDef\n\n// Components that render form fields\nexport type FormComponentsDef =\n | InputFieldsComponentsDef\n | SelectionComponentsDef\n\n// Components that render inputs\nexport type InputFieldsComponentsDef =\n | TextFieldComponent\n | EmailAddressFieldComponent\n | NumberFieldComponent\n | MultilineTextFieldComponent\n | TelephoneNumberFieldComponent\n | MonthYearFieldComponent\n | DatePartsFieldComponent\n | UkAddressFieldComponent\n | FileUploadFieldComponent\n | DeclarationFieldComponent\n | EastingNorthingFieldComponent\n | OsGridRefFieldComponent\n | NationalGridFieldNumberFieldComponent\n | LatLongFieldComponent\n | HiddenFieldComponent\n\n// Components that render content\nexport type ContentComponentsDef =\n | DetailsComponent\n | HtmlComponent\n | MarkdownComponent\n | InsetTextComponent\n | ListComponent\n\n// Components that render lists\nexport type ListComponentsDef =\n | Exclude<SelectionComponentsDef, YesNoFieldComponent>\n | ListComponent\n\n// Components that have selection fields\nexport type SelectionComponentsDef =\n | AutocompleteFieldComponent\n | CheckboxesFieldComponent\n | RadiosFieldComponent\n | SelectFieldComponent\n | YesNoFieldComponent\n\n// Components that have condition support\nexport type ConditionalComponentsDef = Exclude<\n ComponentDef,\n | InsetTextComponent\n | ListComponent\n | MonthYearFieldComponent\n | UkAddressFieldComponent\n | FileUploadFieldComponent\n>\n\nexport type PreviewType = keyof typeof PreviewTypeEnum\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"condition-operators.js","names":["ComponentType","isConditionalType","isContentType","ConditionValue","RelativeDateValue","ConditionType","DateDirections","Operator","OperatorName","defaultOperators","Is","inline","IsNot","withDefaults","operators","textFieldOperators","IsLongerThan","lengthIs","IsMoreThan","IsShorterThan","IsLessThan","HasLength","absoluteDateOperators","absoluteDate","IsBefore","IsAfter","relativeDateOperators","IsAtLeast","relativeDate","IsAtMost","customOperators","AutocompleteField","RadiosField","CheckboxesField","Contains","reverseInline","DoesNotContain","not","NumberField","DatePartsField","TextField","MultilineTextField","EmailAddressField","TelephoneNumberField","SelectField","YesNoField","DeclarationField","EastingNorthingField","OsGridRefField","NationalGridFieldNumberField","LatLongField","HiddenField","undefined","getOperatorNames","fieldType","conditionals","getConditionals","Object","keys","getExpression","fieldName","operator","value","expression","type","name","field","formatValue","operatorDefinition","RelativeDate","toValue","replace","absoluteDateOperatorNames","relativeDateOperatorNames","Error","pastOperator","futureOperator","isPast","direction","PAST"],"sources":["../../../src/conditions/condition-operators.ts"],"sourcesContent":["import { ComponentType } from '~/src/components/enums.js'\nimport { isConditionalType, isContentType } from '~/src/components/helpers.js'\nimport {\n type ComponentDef,\n type ConditionalComponentType\n} from '~/src/components/types.js'\nimport {\n ConditionValue,\n RelativeDateValue\n} from '~/src/conditions/condition-values.js'\nimport { type Condition } from '~/src/conditions/condition.js'\nimport {\n ConditionType,\n DateDirections,\n Operator,\n OperatorName\n} from '~/src/conditions/enums.js'\nimport {\n type Conditionals,\n type OperatorDefinition\n} from '~/src/conditions/types.js'\n\nconst defaultOperators = {\n [OperatorName.Is]: inline(Operator.Is),\n [OperatorName.IsNot]: inline(Operator.IsNot)\n}\n\nfunction withDefaults<T>(operators: T) {\n return { ...defaultOperators, ...operators }\n}\n\nconst textFieldOperators = {\n [OperatorName.IsLongerThan]: lengthIs(Operator.IsMoreThan),\n [OperatorName.IsShorterThan]: lengthIs(Operator.IsLessThan),\n [OperatorName.HasLength]: lengthIs(Operator.Is)\n}\n\nconst absoluteDateOperators = {\n [OperatorName.Is]: absoluteDate(Operator.Is),\n [OperatorName.IsNot]: absoluteDate(Operator.IsNot),\n [OperatorName.IsBefore]: absoluteDate(Operator.IsLessThan),\n [OperatorName.IsAfter]: absoluteDate(Operator.IsMoreThan)\n}\n\nconst relativeDateOperators = {\n [OperatorName.IsAtLeast]: relativeDate(Operator.IsAtMost, Operator.IsAtLeast),\n [OperatorName.IsAtMost]: relativeDate(Operator.IsAtLeast, Operator.IsAtMost),\n [OperatorName.IsLessThan]: relativeDate(\n Operator.IsMoreThan,\n Operator.IsLessThan\n ),\n [OperatorName.IsMoreThan]: relativeDate(\n Operator.IsLessThan,\n Operator.IsMoreThan\n )\n}\n\nexport const customOperators = {\n [ComponentType.AutocompleteField]: defaultOperators,\n [ComponentType.RadiosField]: defaultOperators,\n [ComponentType.CheckboxesField]: {\n [OperatorName.Contains]: reverseInline(Operator.Contains),\n [OperatorName.DoesNotContain]: not(reverseInline(Operator.Contains))\n },\n [ComponentType.NumberField]: withDefaults({\n [OperatorName.IsAtLeast]: inline(Operator.IsAtLeast),\n [OperatorName.IsAtMost]: inline(Operator.IsAtMost),\n [OperatorName.IsLessThan]: inline(Operator.IsLessThan),\n [OperatorName.IsMoreThan]: inline(Operator.IsMoreThan)\n }),\n [ComponentType.DatePartsField]: {\n ...absoluteDateOperators,\n ...relativeDateOperators\n },\n [ComponentType.TextField]: withDefaults(textFieldOperators),\n [ComponentType.MultilineTextField]: {\n [OperatorName.IsLongerThan]: lengthIs(Operator.IsMoreThan),\n [OperatorName.IsShorterThan]: lengthIs(Operator.IsLessThan)\n },\n [ComponentType.EmailAddressField]: withDefaults(textFieldOperators),\n [ComponentType.TelephoneNumberField]: defaultOperators,\n [ComponentType.SelectField]: defaultOperators,\n [ComponentType.YesNoField]: defaultOperators,\n [ComponentType.DeclarationField]: defaultOperators,\n [ComponentType.EastingNorthingField]: defaultOperators,\n [ComponentType.OsGridRefField]: defaultOperators,\n [ComponentType.NationalGridFieldNumberField]: defaultOperators,\n [ComponentType.LatLongField]: defaultOperators,\n [ComponentType.HiddenField]: undefined\n}\n\nexport function getOperatorNames(fieldType?: ConditionalComponentType) {\n const conditionals = getConditionals(fieldType)\n if (!conditionals) {\n return []\n }\n\n return Object.keys(conditionals) as OperatorName[]\n}\n\nexport function getExpression(\n fieldType: ConditionalComponentType,\n fieldName: string,\n operator: OperatorName,\n value: Condition['value']\n) {\n const conditionals = getConditionals(fieldType)\n if (!conditionals) {\n return\n }\n\n return conditionals[operator]?.expression(\n { type: fieldType, name: fieldName },\n value\n )\n}\n\nfunction getConditionals(\n fieldType?: ConditionalComponentType\n): Partial<Conditionals> | undefined {\n if (!fieldType || !isConditionalType(fieldType) || isContentType(fieldType)) {\n return\n }\n\n return fieldType in customOperators\n ? customOperators[fieldType]\n : defaultOperators\n}\n\nfunction inline(operator: Operator): OperatorDefinition {\n return {\n expression(field, value) {\n return `${field.name} ${operator} ${formatValue(field, value)}`\n }\n }\n}\n\nfunction lengthIs(operator: Operator): OperatorDefinition {\n return {\n expression(field, value) {\n return `length(${field.name}) ${operator} ${formatValue(field, value)}`\n }\n }\n}\n\nfunction reverseInline(operator: Operator.Contains): OperatorDefinition {\n return {\n expression(field, value) {\n return `${formatValue(field, value)} ${operator} ${field.name}`\n }\n }\n}\n\nfunction not(operatorDefinition: OperatorDefinition): OperatorDefinition {\n return {\n expression(field, value) {\n return `not (${operatorDefinition.expression(field, value)})`\n }\n }\n}\n\nfunction formatValue(\n field: Pick<ComponentDef, 'type'>,\n value: Condition['value']\n) {\n if (\n (field.type === ComponentType.DatePartsField &&\n value.type === ConditionType.RelativeDate) ||\n field.type === ComponentType.NumberField ||\n field.type === ComponentType.YesNoField ||\n field.type === ComponentType.DeclarationField\n ) {\n return value.toValue()\n }\n\n return `'${value.toValue().replace(/'/g, \"\\\\'\")}'`\n}\n\nexport const absoluteDateOperatorNames = Object.keys(\n absoluteDateOperators\n) as OperatorName[]\n\nexport const relativeDateOperatorNames = Object.keys(\n relativeDateOperators\n) as OperatorName[]\n\nfunction absoluteDate(operator: Operator): OperatorDefinition {\n return {\n expression(field, value) {\n if (!(value instanceof ConditionValue)) {\n throw new Error(\n \"Expression param 'value' must be ConditionValue instance\"\n )\n }\n\n return `${field.name} ${operator} ${formatValue(field, value)}`\n }\n }\n}\n\nfunction relativeDate(\n pastOperator: Operator,\n futureOperator: Operator\n): OperatorDefinition {\n return {\n expression(field, value) {\n if (!(value instanceof RelativeDateValue)) {\n throw new Error(\n \"Expression param 'value' must be RelativeDateValue instance\"\n )\n }\n\n const isPast = value.direction === DateDirections.PAST\n return `${field.name} ${isPast ? pastOperator : futureOperator} ${formatValue(field, value)}`\n }\n }\n}\n"],"mappings":"AAAA,SAASA,aAAa;AACtB,SAASC,iBAAiB,EAAEC,aAAa;AAKzC,SACEC,cAAc,EACdC,iBAAiB;AAGnB,SACEC,aAAa,EACbC,cAAc,EACdC,QAAQ,EACRC,YAAY;AAOd,MAAMC,gBAAgB,GAAG;EACvB,CAACD,YAAY,CAACE,EAAE,GAAGC,MAAM,CAACJ,QAAQ,CAACG,EAAE,CAAC;EACtC,CAACF,YAAY,CAACI,KAAK,GAAGD,MAAM,CAACJ,QAAQ,CAACK,KAAK;AAC7C,CAAC;AAED,SAASC,YAAYA,CAAIC,SAAY,EAAE;EACrC,OAAO;IAAE,GAAGL,gBAAgB;IAAE,GAAGK;EAAU,CAAC;AAC9C;AAEA,MAAMC,kBAAkB,GAAG;EACzB,CAACP,YAAY,CAACQ,YAAY,GAAGC,QAAQ,CAACV,QAAQ,CAACW,UAAU,CAAC;EAC1D,CAACV,YAAY,CAACW,aAAa,GAAGF,QAAQ,CAACV,QAAQ,CAACa,UAAU,CAAC;EAC3D,CAACZ,YAAY,CAACa,SAAS,GAAGJ,QAAQ,CAACV,QAAQ,CAACG,EAAE;AAChD,CAAC;AAED,MAAMY,qBAAqB,GAAG;EAC5B,CAACd,YAAY,CAACE,EAAE,GAAGa,YAAY,CAAChB,QAAQ,CAACG,EAAE,CAAC;EAC5C,CAACF,YAAY,CAACI,KAAK,GAAGW,YAAY,CAAChB,QAAQ,CAACK,KAAK,CAAC;EAClD,CAACJ,YAAY,CAACgB,QAAQ,GAAGD,YAAY,CAAChB,QAAQ,CAACa,UAAU,CAAC;EAC1D,CAACZ,YAAY,CAACiB,OAAO,GAAGF,YAAY,CAAChB,QAAQ,CAACW,UAAU;AAC1D,CAAC;AAED,MAAMQ,qBAAqB,GAAG;EAC5B,CAAClB,YAAY,CAACmB,SAAS,GAAGC,YAAY,CAACrB,QAAQ,CAACsB,QAAQ,EAAEtB,QAAQ,CAACoB,SAAS,CAAC;EAC7E,CAACnB,YAAY,CAACqB,QAAQ,GAAGD,YAAY,CAACrB,QAAQ,CAACoB,SAAS,EAAEpB,QAAQ,CAACsB,QAAQ,CAAC;EAC5E,CAACrB,YAAY,CAACY,UAAU,GAAGQ,YAAY,CACrCrB,QAAQ,CAACW,UAAU,EACnBX,QAAQ,CAACa,UACX,CAAC;EACD,CAACZ,YAAY,CAACU,UAAU,GAAGU,YAAY,CACrCrB,QAAQ,CAACa,UAAU,EACnBb,QAAQ,CAACW,UACX;AACF,CAAC;AAED,OAAO,MAAMY,eAAe,GAAG;EAC7B,CAAC9B,aAAa,CAAC+B,iBAAiB,GAAGtB,gBAAgB;EACnD,CAACT,aAAa,CAACgC,WAAW,GAAGvB,gBAAgB;EAC7C,CAACT,aAAa,CAACiC,eAAe,GAAG;IAC/B,CAACzB,YAAY,CAAC0B,QAAQ,GAAGC,aAAa,CAAC5B,QAAQ,CAAC2B,QAAQ,CAAC;IACzD,CAAC1B,YAAY,CAAC4B,cAAc,GAAGC,GAAG,CAACF,aAAa,CAAC5B,QAAQ,CAAC2B,QAAQ,CAAC;EACrE,CAAC;EACD,CAAClC,aAAa,CAACsC,WAAW,GAAGzB,YAAY,CAAC;IACxC,CAACL,YAAY,CAACmB,SAAS,GAAGhB,MAAM,CAACJ,QAAQ,CAACoB,SAAS,CAAC;IACpD,CAACnB,YAAY,CAACqB,QAAQ,GAAGlB,MAAM,CAACJ,QAAQ,CAACsB,QAAQ,CAAC;IAClD,CAACrB,YAAY,CAACY,UAAU,GAAGT,MAAM,CAACJ,QAAQ,CAACa,UAAU,CAAC;IACtD,CAACZ,YAAY,CAACU,UAAU,GAAGP,MAAM,CAACJ,QAAQ,CAACW,UAAU;EACvD,CAAC,CAAC;EACF,CAAClB,aAAa,CAACuC,cAAc,GAAG;IAC9B,GAAGjB,qBAAqB;IACxB,GAAGI;EACL,CAAC;EACD,CAAC1B,aAAa,CAACwC,SAAS,GAAG3B,YAAY,CAACE,kBAAkB,CAAC;EAC3D,CAACf,aAAa,CAACyC,kBAAkB,GAAG;IAClC,CAACjC,YAAY,CAACQ,YAAY,GAAGC,QAAQ,CAACV,QAAQ,CAACW,UAAU,CAAC;IAC1D,CAACV,YAAY,CAACW,aAAa,GAAGF,QAAQ,CAACV,QAAQ,CAACa,UAAU;EAC5D,CAAC;EACD,CAACpB,aAAa,CAAC0C,iBAAiB,GAAG7B,YAAY,CAACE,kBAAkB,CAAC;EACnE,CAACf,aAAa,CAAC2C,oBAAoB,GAAGlC,gBAAgB;EACtD,CAACT,aAAa,CAAC4C,WAAW,GAAGnC,gBAAgB;EAC7C,CAACT,aAAa,CAAC6C,UAAU,GAAGpC,gBAAgB;EAC5C,CAACT,aAAa,CAAC8C,gBAAgB,GAAGrC,gBAAgB;EAClD,CAACT,aAAa,CAAC+C,oBAAoB,GAAGtC,gBAAgB;EACtD,CAACT,aAAa,CAACgD,cAAc,GAAGvC,gBAAgB;EAChD,CAACT,aAAa,CAACiD,4BAA4B,GAAGxC,gBAAgB;EAC9D,CAACT,aAAa,CAACkD,YAAY,GAAGzC,gBAAgB;EAC9C,CAACT,aAAa,CAACmD,WAAW,GAAGC;AAC/B,CAAC;AAED,OAAO,SAASC,gBAAgBA,CAACC,SAAoC,EAAE;EACrE,MAAMC,YAAY,GAAGC,eAAe,CAACF,SAAS,CAAC;EAC/C,IAAI,CAACC,YAAY,EAAE;IACjB,OAAO,EAAE;EACX;EAEA,OAAOE,MAAM,CAACC,IAAI,CAACH,YAAY,CAAC;AAClC;AAEA,OAAO,SAASI,aAAaA,CAC3BL,SAAmC,EACnCM,SAAiB,EACjBC,QAAsB,EACtBC,KAAyB,EACzB;EACA,MAAMP,YAAY,GAAGC,eAAe,CAACF,SAAS,CAAC;EAC/C,IAAI,CAACC,YAAY,EAAE;IACjB;EACF;EAEA,OAAOA,YAAY,CAACM,QAAQ,CAAC,EAAEE,UAAU,CACvC;IAAEC,IAAI,EAAEV,SAAS;IAAEW,IAAI,EAAEL;EAAU,CAAC,EACpCE,KACF,CAAC;AACH;AAEA,SAASN,eAAeA,CACtBF,SAAoC,EACD;EACnC,IAAI,CAACA,SAAS,IAAI,CAACrD,iBAAiB,CAACqD,SAAS,CAAC,IAAIpD,aAAa,CAACoD,SAAS,CAAC,EAAE;IAC3E;EACF;EAEA,OAAOA,SAAS,IAAIxB,eAAe,GAC/BA,eAAe,CAACwB,SAAS,CAAC,GAC1B7C,gBAAgB;AACtB;AAEA,SAASE,MAAMA,CAACkD,QAAkB,EAAsB;EACtD,OAAO;IACLE,UAAUA,CAACG,KAAK,EAAEJ,KAAK,EAAE;MACvB,OAAO,GAAGI,KAAK,CAACD,IAAI,IAAIJ,QAAQ,IAAIM,WAAW,CAACD,KAAK,EAAEJ,KAAK,CAAC,EAAE;IACjE;EACF,CAAC;AACH;AAEA,SAAS7C,QAAQA,CAAC4C,QAAkB,EAAsB;EACxD,OAAO;IACLE,UAAUA,CAACG,KAAK,EAAEJ,KAAK,EAAE;MACvB,OAAO,UAAUI,KAAK,CAACD,IAAI,KAAKJ,QAAQ,IAAIM,WAAW,CAACD,KAAK,EAAEJ,KAAK,CAAC,EAAE;IACzE;EACF,CAAC;AACH;AAEA,SAAS3B,aAAaA,CAAC0B,QAA2B,EAAsB;EACtE,OAAO;IACLE,UAAUA,CAACG,KAAK,EAAEJ,KAAK,EAAE;MACvB,OAAO,GAAGK,WAAW,CAACD,KAAK,EAAEJ,KAAK,CAAC,IAAID,QAAQ,IAAIK,KAAK,CAACD,IAAI,EAAE;IACjE;EACF,CAAC;AACH;AAEA,SAAS5B,GAAGA,CAAC+B,kBAAsC,EAAsB;EACvE,OAAO;IACLL,UAAUA,CAACG,KAAK,EAAEJ,KAAK,EAAE;MACvB,OAAO,QAAQM,kBAAkB,CAACL,UAAU,CAACG,KAAK,EAAEJ,KAAK,CAAC,GAAG;IAC/D;EACF,CAAC;AACH;AAEA,SAASK,WAAWA,CAClBD,KAAiC,EACjCJ,KAAyB,EACzB;EACA,IACGI,KAAK,CAACF,IAAI,KAAKhE,aAAa,CAACuC,cAAc,IAC1CuB,KAAK,CAACE,IAAI,KAAK3D,aAAa,CAACgE,YAAY,IAC3CH,KAAK,CAACF,IAAI,KAAKhE,aAAa,CAACsC,WAAW,IACxC4B,KAAK,CAACF,IAAI,KAAKhE,aAAa,CAAC6C,UAAU,IACvCqB,KAAK,CAACF,IAAI,KAAKhE,aAAa,CAAC8C,gBAAgB,EAC7C;IACA,OAAOgB,KAAK,CAACQ,OAAO,CAAC,CAAC;EACxB;EAEA,OAAO,IAAIR,KAAK,CAACQ,OAAO,CAAC,CAAC,CAACC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG;AACpD;AAEA,OAAO,MAAMC,yBAAyB,GAAGf,MAAM,CAACC,IAAI,CAClDpC,qBACF,CAAmB;AAEnB,OAAO,MAAMmD,yBAAyB,GAAGhB,MAAM,CAACC,IAAI,CAClDhC,qBACF,CAAmB;AAEnB,SAASH,YAAYA,CAACsC,QAAkB,EAAsB;EAC5D,OAAO;IACLE,UAAUA,CAACG,KAAK,EAAEJ,KAAK,EAAE;MACvB,IAAI,EAAEA,KAAK,YAAY3D,cAAc,CAAC,EAAE;QACtC,MAAM,IAAIuE,KAAK,CACb,0DACF,CAAC;MACH;MAEA,OAAO,GAAGR,KAAK,CAACD,IAAI,IAAIJ,QAAQ,IAAIM,WAAW,CAACD,KAAK,EAAEJ,KAAK,CAAC,EAAE;IACjE;EACF,CAAC;AACH;AAEA,SAASlC,YAAYA,CACnB+C,YAAsB,EACtBC,cAAwB,EACJ;EACpB,OAAO;IACLb,UAAUA,CAACG,KAAK,EAAEJ,KAAK,EAAE;MACvB,IAAI,EAAEA,KAAK,YAAY1D,iBAAiB,CAAC,EAAE;QACzC,MAAM,IAAIsE,KAAK,CACb,6DACF,CAAC;MACH;MAEA,MAAMG,MAAM,GAAGf,KAAK,CAACgB,SAAS,KAAKxE,cAAc,CAACyE,IAAI;MACtD,OAAO,GAAGb,KAAK,CAACD,IAAI,IAAIY,MAAM,GAAGF,YAAY,GAAGC,cAAc,IAAIT,WAAW,CAACD,KAAK,EAAEJ,KAAK,CAAC,EAAE;IAC/F;EACF,CAAC;AACH","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"condition-operators.js","names":["ComponentType","isConditionalType","isContentType","ConditionValue","RelativeDateValue","ConditionType","DateDirections","Operator","OperatorName","defaultOperators","Is","inline","IsNot","withDefaults","operators","textFieldOperators","IsLongerThan","lengthIs","IsMoreThan","IsShorterThan","IsLessThan","HasLength","absoluteDateOperators","absoluteDate","IsBefore","IsAfter","relativeDateOperators","IsAtLeast","relativeDate","IsAtMost","customOperators","AutocompleteField","RadiosField","CheckboxesField","Contains","reverseInline","DoesNotContain","not","NumberField","DatePartsField","TextField","MultilineTextField","EmailAddressField","TelephoneNumberField","SelectField","YesNoField","DeclarationField","EastingNorthingField","OsGridRefField","NationalGridFieldNumberField","LatLongField","HiddenField","undefined","getOperatorNames","fieldType","conditionals","getConditionals","Object","keys","getExpression","fieldName","operator","value","expression","type","name","field","formatValue","operatorDefinition","RelativeDate","toValue","replace","absoluteDateOperatorNames","relativeDateOperatorNames","Error","pastOperator","futureOperator","isPast","direction","PAST"],"sources":["../../../src/conditions/condition-operators.ts"],"sourcesContent":["import { ComponentType } from '~/src/components/enums.js'\nimport { isConditionalType, isContentType } from '~/src/components/helpers.js'\nimport {\n type ComponentDef,\n type ConditionalComponentType\n} from '~/src/components/types.js'\nimport {\n ConditionValue,\n RelativeDateValue\n} from '~/src/conditions/condition-values.js'\nimport { type Condition } from '~/src/conditions/condition.js'\nimport {\n ConditionType,\n DateDirections,\n Operator,\n OperatorName\n} from '~/src/conditions/enums.js'\nimport {\n type Conditionals,\n type OperatorDefinition\n} from '~/src/conditions/types.js'\n\nconst defaultOperators = {\n [OperatorName.Is]: inline(Operator.Is),\n [OperatorName.IsNot]: inline(Operator.IsNot)\n}\n\nfunction withDefaults<T>(operators: T) {\n return { ...defaultOperators, ...operators }\n}\n\nconst textFieldOperators = {\n [OperatorName.IsLongerThan]: lengthIs(Operator.IsMoreThan),\n [OperatorName.IsShorterThan]: lengthIs(Operator.IsLessThan),\n [OperatorName.HasLength]: lengthIs(Operator.Is)\n}\n\nconst absoluteDateOperators = {\n [OperatorName.Is]: absoluteDate(Operator.Is),\n [OperatorName.IsNot]: absoluteDate(Operator.IsNot),\n [OperatorName.IsBefore]: absoluteDate(Operator.IsLessThan),\n [OperatorName.IsAfter]: absoluteDate(Operator.IsMoreThan)\n}\n\nconst relativeDateOperators = {\n [OperatorName.IsAtLeast]: relativeDate(Operator.IsAtMost, Operator.IsAtLeast),\n [OperatorName.IsAtMost]: relativeDate(Operator.IsAtLeast, Operator.IsAtMost),\n [OperatorName.IsLessThan]: relativeDate(\n Operator.IsMoreThan,\n Operator.IsLessThan\n ),\n [OperatorName.IsMoreThan]: relativeDate(\n Operator.IsLessThan,\n Operator.IsMoreThan\n )\n}\n\nexport type CustomOperators<\n T extends ConditionalComponentType = ConditionalComponentType\n> = Partial<Record<T, Partial<Conditionals> | undefined>>\n\nexport const customOperators: CustomOperators = {\n [ComponentType.AutocompleteField]: defaultOperators,\n [ComponentType.RadiosField]: defaultOperators,\n [ComponentType.CheckboxesField]: {\n [OperatorName.Contains]: reverseInline(Operator.Contains),\n [OperatorName.DoesNotContain]: not(reverseInline(Operator.Contains))\n },\n [ComponentType.NumberField]: withDefaults({\n [OperatorName.IsAtLeast]: inline(Operator.IsAtLeast),\n [OperatorName.IsAtMost]: inline(Operator.IsAtMost),\n [OperatorName.IsLessThan]: inline(Operator.IsLessThan),\n [OperatorName.IsMoreThan]: inline(Operator.IsMoreThan)\n }),\n [ComponentType.DatePartsField]: {\n ...absoluteDateOperators,\n ...relativeDateOperators\n },\n [ComponentType.TextField]: withDefaults(textFieldOperators),\n [ComponentType.MultilineTextField]: {\n [OperatorName.IsLongerThan]: lengthIs(Operator.IsMoreThan),\n [OperatorName.IsShorterThan]: lengthIs(Operator.IsLessThan)\n },\n [ComponentType.EmailAddressField]: withDefaults(textFieldOperators),\n [ComponentType.TelephoneNumberField]: defaultOperators,\n [ComponentType.SelectField]: defaultOperators,\n [ComponentType.YesNoField]: defaultOperators,\n [ComponentType.DeclarationField]: defaultOperators,\n [ComponentType.EastingNorthingField]: defaultOperators,\n [ComponentType.OsGridRefField]: defaultOperators,\n [ComponentType.NationalGridFieldNumberField]: defaultOperators,\n [ComponentType.LatLongField]: defaultOperators,\n [ComponentType.HiddenField]: undefined\n}\n\nexport function getOperatorNames(fieldType?: ConditionalComponentType) {\n const conditionals = getConditionals(fieldType)\n if (!conditionals) {\n return []\n }\n\n return Object.keys(conditionals) as OperatorName[]\n}\n\nexport function getExpression(\n fieldType: ConditionalComponentType,\n fieldName: string,\n operator: OperatorName,\n value: Condition['value']\n) {\n const conditionals = getConditionals(fieldType)\n if (!conditionals) {\n return\n }\n\n return conditionals[operator]?.expression(\n { type: fieldType, name: fieldName },\n value\n )\n}\n\nfunction getConditionals(\n fieldType?: ConditionalComponentType\n): Partial<Conditionals> | undefined {\n if (!fieldType || !isConditionalType(fieldType) || isContentType(fieldType)) {\n return\n }\n\n return fieldType in customOperators\n ? customOperators[fieldType]\n : defaultOperators\n}\n\nfunction inline(operator: Operator): OperatorDefinition {\n return {\n expression(field, value) {\n return `${field.name} ${operator} ${formatValue(field, value)}`\n }\n }\n}\n\nfunction lengthIs(operator: Operator): OperatorDefinition {\n return {\n expression(field, value) {\n return `length(${field.name}) ${operator} ${formatValue(field, value)}`\n }\n }\n}\n\nfunction reverseInline(operator: Operator.Contains): OperatorDefinition {\n return {\n expression(field, value) {\n return `${formatValue(field, value)} ${operator} ${field.name}`\n }\n }\n}\n\nfunction not(operatorDefinition: OperatorDefinition): OperatorDefinition {\n return {\n expression(field, value) {\n return `not (${operatorDefinition.expression(field, value)})`\n }\n }\n}\n\nfunction formatValue(\n field: Pick<ComponentDef, 'type'>,\n value: Condition['value']\n) {\n if (\n (field.type === ComponentType.DatePartsField &&\n value.type === ConditionType.RelativeDate) ||\n field.type === ComponentType.NumberField ||\n field.type === ComponentType.YesNoField ||\n field.type === ComponentType.DeclarationField\n ) {\n return value.toValue()\n }\n\n return `'${value.toValue().replace(/'/g, \"\\\\'\")}'`\n}\n\nexport const absoluteDateOperatorNames = Object.keys(\n absoluteDateOperators\n) as OperatorName[]\n\nexport const relativeDateOperatorNames = Object.keys(\n relativeDateOperators\n) as OperatorName[]\n\nfunction absoluteDate(operator: Operator): OperatorDefinition {\n return {\n expression(field, value) {\n if (!(value instanceof ConditionValue)) {\n throw new Error(\n \"Expression param 'value' must be ConditionValue instance\"\n )\n }\n\n return `${field.name} ${operator} ${formatValue(field, value)}`\n }\n }\n}\n\nfunction relativeDate(\n pastOperator: Operator,\n futureOperator: Operator\n): OperatorDefinition {\n return {\n expression(field, value) {\n if (!(value instanceof RelativeDateValue)) {\n throw new Error(\n \"Expression param 'value' must be RelativeDateValue instance\"\n )\n }\n\n const isPast = value.direction === DateDirections.PAST\n return `${field.name} ${isPast ? pastOperator : futureOperator} ${formatValue(field, value)}`\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -47,6 +47,6 @@ export function getHiddenFields(definition) {
|
|
|
47
47
|
*/
|
|
48
48
|
export function isFeedbackForm(definition) {
|
|
49
49
|
const feedback = 'FeedbackPageController';
|
|
50
|
-
return definition.pages.some(p => p.controller === feedback);
|
|
50
|
+
return definition?.pages ? definition.pages.some(p => p.controller === feedback) : false;
|
|
51
51
|
}
|
|
52
52
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","names":["ComponentType","hasComponents","isFormDefinition","definition","isConditionListItemRefValueData","conditionValueData","getHiddenFields","pages","length","totalHiddenFields","page","hiddenFields","components","filter","comp","type","HiddenField","push","isFeedbackForm","feedback","some","p","controller"],"sources":["../../../../src/form/form-definition/helpers.ts"],"sourcesContent":["import { ComponentType } from '~/src/components/enums.js'\nimport { type ComponentDef } from '~/src/components/types.js'\nimport { type ConditionListItemRefValueDataV2 } from '~/src/conditions/types.js'\nimport { type FormDefinition } from '~/src/form/form-definition/types.js'\nimport { type ControllerType } from '~/src/pages/enums.js'\nimport { hasComponents } from '~/src/pages/helpers.js'\n\n/**\n * TypeGuard to check if something is a FormDefinition\n * @param { unknown } definition\n * @returns { definition is FormDefinition }\n */\nexport function isFormDefinition(\n definition: unknown\n): definition is FormDefinition {\n if (!definition) {\n return false\n }\n\n return (\n typeof definition === 'object' &&\n 'name' in definition &&\n 'pages' in definition &&\n 'conditions' in definition\n )\n}\n\n/**\n * TypeGuard to check if something is a ConditionListItemRefValueDataV2\n * @param { unknown } conditionValueData\n * @returns { definition is ConditionListItemRefValueDataV2 }\n */\nexport function isConditionListItemRefValueData(\n conditionValueData: unknown\n): conditionValueData is ConditionListItemRefValueDataV2 {\n if (!conditionValueData) {\n return false\n }\n\n return (\n typeof conditionValueData === 'object' &&\n 'listId' in conditionValueData &&\n 'itemId' in conditionValueData\n )\n}\n\n/**\n * Returns an array of all hidden fields in a form\n * @param definition - form definition\n */\nexport function getHiddenFields(definition: FormDefinition) {\n if (definition.pages.length === 0) {\n return []\n }\n const totalHiddenFields = [] as ComponentDef[]\n for (const page of definition.pages) {\n const hiddenFields = hasComponents(page)\n ? page.components.filter(\n (comp) => comp.type === ComponentType.HiddenField\n )\n : []\n totalHiddenFields.push(...hiddenFields)\n }\n return totalHiddenFields\n}\n\n/**\n * @param definition - form definition\n * @returns {boolean}\n */\nexport function isFeedbackForm(definition: FormDefinition) {\n const feedback = 'FeedbackPageController' as ControllerType\n return definition.pages.some((p) => p.controller === feedback)\n}\n"],"mappings":"AAAA,SAASA,aAAa;AAKtB,SAASC,aAAa;;AAEtB;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAC9BC,UAAmB,EACW;EAC9B,IAAI,CAACA,UAAU,EAAE;IACf,OAAO,KAAK;EACd;EAEA,OACE,OAAOA,UAAU,KAAK,QAAQ,IAC9B,MAAM,IAAIA,UAAU,IACpB,OAAO,IAAIA,UAAU,IACrB,YAAY,IAAIA,UAAU;AAE9B;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,+BAA+BA,CAC7CC,kBAA2B,EAC4B;EACvD,IAAI,CAACA,kBAAkB,EAAE;IACvB,OAAO,KAAK;EACd;EAEA,OACE,OAAOA,kBAAkB,KAAK,QAAQ,IACtC,QAAQ,IAAIA,kBAAkB,IAC9B,QAAQ,IAAIA,kBAAkB;AAElC;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAACH,UAA0B,EAAE;EAC1D,IAAIA,UAAU,CAACI,KAAK,CAACC,MAAM,KAAK,CAAC,EAAE;IACjC,OAAO,EAAE;EACX;EACA,MAAMC,iBAAiB,GAAG,EAAoB;EAC9C,KAAK,MAAMC,IAAI,IAAIP,UAAU,CAACI,KAAK,EAAE;IACnC,MAAMI,YAAY,GAAGV,aAAa,CAACS,IAAI,CAAC,GACpCA,IAAI,CAACE,UAAU,CAACC,MAAM,CACnBC,IAAI,IAAKA,IAAI,CAACC,IAAI,KAAKf,aAAa,CAACgB,WACxC,CAAC,GACD,EAAE;IACNP,iBAAiB,CAACQ,IAAI,CAAC,GAAGN,YAAY,CAAC;EACzC;EACA,OAAOF,iBAAiB;AAC1B;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASS,cAAcA,CAACf,
|
|
1
|
+
{"version":3,"file":"helpers.js","names":["ComponentType","hasComponents","isFormDefinition","definition","isConditionListItemRefValueData","conditionValueData","getHiddenFields","pages","length","totalHiddenFields","page","hiddenFields","components","filter","comp","type","HiddenField","push","isFeedbackForm","feedback","some","p","controller"],"sources":["../../../../src/form/form-definition/helpers.ts"],"sourcesContent":["import { ComponentType } from '~/src/components/enums.js'\nimport { type ComponentDef } from '~/src/components/types.js'\nimport { type ConditionListItemRefValueDataV2 } from '~/src/conditions/types.js'\nimport { type FormDefinition } from '~/src/form/form-definition/types.js'\nimport { type ControllerType } from '~/src/pages/enums.js'\nimport { hasComponents } from '~/src/pages/helpers.js'\n\n/**\n * TypeGuard to check if something is a FormDefinition\n * @param { unknown } definition\n * @returns { definition is FormDefinition }\n */\nexport function isFormDefinition(\n definition: unknown\n): definition is FormDefinition {\n if (!definition) {\n return false\n }\n\n return (\n typeof definition === 'object' &&\n 'name' in definition &&\n 'pages' in definition &&\n 'conditions' in definition\n )\n}\n\n/**\n * TypeGuard to check if something is a ConditionListItemRefValueDataV2\n * @param { unknown } conditionValueData\n * @returns { definition is ConditionListItemRefValueDataV2 }\n */\nexport function isConditionListItemRefValueData(\n conditionValueData: unknown\n): conditionValueData is ConditionListItemRefValueDataV2 {\n if (!conditionValueData) {\n return false\n }\n\n return (\n typeof conditionValueData === 'object' &&\n 'listId' in conditionValueData &&\n 'itemId' in conditionValueData\n )\n}\n\n/**\n * Returns an array of all hidden fields in a form\n * @param definition - form definition\n */\nexport function getHiddenFields(definition: FormDefinition) {\n if (definition.pages.length === 0) {\n return []\n }\n const totalHiddenFields = [] as ComponentDef[]\n for (const page of definition.pages) {\n const hiddenFields = hasComponents(page)\n ? page.components.filter(\n (comp) => comp.type === ComponentType.HiddenField\n )\n : []\n totalHiddenFields.push(...hiddenFields)\n }\n return totalHiddenFields\n}\n\n/**\n * @param definition - form definition\n * @returns {boolean}\n */\nexport function isFeedbackForm(definition: FormDefinition | undefined) {\n const feedback = 'FeedbackPageController' as ControllerType\n return definition?.pages\n ? definition.pages.some((p) => p.controller === feedback)\n : false\n}\n"],"mappings":"AAAA,SAASA,aAAa;AAKtB,SAASC,aAAa;;AAEtB;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAC9BC,UAAmB,EACW;EAC9B,IAAI,CAACA,UAAU,EAAE;IACf,OAAO,KAAK;EACd;EAEA,OACE,OAAOA,UAAU,KAAK,QAAQ,IAC9B,MAAM,IAAIA,UAAU,IACpB,OAAO,IAAIA,UAAU,IACrB,YAAY,IAAIA,UAAU;AAE9B;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,+BAA+BA,CAC7CC,kBAA2B,EAC4B;EACvD,IAAI,CAACA,kBAAkB,EAAE;IACvB,OAAO,KAAK;EACd;EAEA,OACE,OAAOA,kBAAkB,KAAK,QAAQ,IACtC,QAAQ,IAAIA,kBAAkB,IAC9B,QAAQ,IAAIA,kBAAkB;AAElC;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAACH,UAA0B,EAAE;EAC1D,IAAIA,UAAU,CAACI,KAAK,CAACC,MAAM,KAAK,CAAC,EAAE;IACjC,OAAO,EAAE;EACX;EACA,MAAMC,iBAAiB,GAAG,EAAoB;EAC9C,KAAK,MAAMC,IAAI,IAAIP,UAAU,CAACI,KAAK,EAAE;IACnC,MAAMI,YAAY,GAAGV,aAAa,CAACS,IAAI,CAAC,GACpCA,IAAI,CAACE,UAAU,CAACC,MAAM,CACnBC,IAAI,IAAKA,IAAI,CAACC,IAAI,KAAKf,aAAa,CAACgB,WACxC,CAAC,GACD,EAAE;IACNP,iBAAiB,CAACQ,IAAI,CAAC,GAAGN,YAAY,CAAC;EACzC;EACA,OAAOF,iBAAiB;AAC1B;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASS,cAAcA,CAACf,UAAsC,EAAE;EACrE,MAAMgB,QAAQ,GAAG,wBAA0C;EAC3D,OAAOhB,UAAU,EAAEI,KAAK,GACpBJ,UAAU,CAACI,KAAK,CAACa,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,UAAU,KAAKH,QAAQ,CAAC,GACvD,KAAK;AACX","ignoreList":[]}
|
|
@@ -27,10 +27,15 @@ import { UkAddressComponentPreviewElements, UkAddressQuestion } from "./uk-addre
|
|
|
27
27
|
import { YesNoQuestion } from "./yes-no.js";
|
|
28
28
|
import { findDefinitionListFromComponent } from "../../utils/list.js";
|
|
29
29
|
/**
|
|
30
|
-
* @type {
|
|
30
|
+
* @type {typeof PreviewComponent}
|
|
31
|
+
*/
|
|
32
|
+
const InputFieldComponentDefault = ShortAnswerQuestion;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* @type {Partial<Record<ComponentType, typeof PreviewComponent>>}
|
|
31
36
|
*/
|
|
32
37
|
const InputFieldComponentDictionary = {
|
|
33
|
-
[ComponentType.TextField]:
|
|
38
|
+
[ComponentType.TextField]: InputFieldComponentDefault,
|
|
34
39
|
[ComponentType.Details]: ShortAnswerQuestion,
|
|
35
40
|
[ComponentType.InsetText]: ShortAnswerQuestion,
|
|
36
41
|
[ComponentType.Html]: ShortAnswerQuestion,
|
|
@@ -134,7 +139,7 @@ export function mapComponentToPreviewQuestion(questionRenderer, definition) {
|
|
|
134
139
|
} else {
|
|
135
140
|
questionElements = new ComponentElements(component);
|
|
136
141
|
}
|
|
137
|
-
const QuestionConstructor = InputFieldComponentDictionary[component.type];
|
|
142
|
+
const QuestionConstructor = InputFieldComponentDictionary[component.type] ?? InputFieldComponentDefault;
|
|
138
143
|
const previewComponent = new QuestionConstructor(questionElements, questionRenderer);
|
|
139
144
|
previewComponent.id = component.id;
|
|
140
145
|
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","Markdown","MonthYearQuestion","NationalGridComponentPreviewElements","NationalGridQuestion","NumberComponentPreviewElements","NumberOnlyQuestion","OsGridRefComponentPreviewElements","OsGridRefQuestion","PhoneNumberQuestion","QuestionComponentElements","RadioQuestion","SelectQuestion","ShortAnswerQuestion","SupportingEvidenceQuestion","UkAddressComponentPreviewElements","UkAddressQuestion","YesNoQuestion","findDefinitionListFromComponent","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 { LongAnswerQuestion } 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 {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.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 = InputFieldComponentDictionary[component.type]\n\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, 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","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 { LongAnswerQuestion } 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.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, NationalGridFieldNumberFieldComponent, NumberFieldComponent, OsGridRefFieldComponent, SelectFieldComponent, UkAddressFieldComponent, YesNoFieldComponent } from '~/src/components/types.js'\n */\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../../../src/components/enums.ts"],"names":[],"mappings":"AAAA,oBAAY,aAAa;IACvB,SAAS,cAAc;IACvB,kBAAkB,uBAAuB;IACzC,UAAU,eAAe;IACzB,cAAc,mBAAmB;IACjC,cAAc,mBAAmB;IACjC,WAAW,gBAAgB;IAC3B,iBAAiB,sBAAsB;IACvC,WAAW,gBAAgB;IAC3B,eAAe,oBAAoB;IACnC,WAAW,gBAAgB;IAC3B,cAAc,mBAAmB;IACjC,oBAAoB,yBAAyB;IAC7C,iBAAiB,sBAAsB;IACvC,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,eAAe,oBAAoB;IACnC,gBAAgB,qBAAqB;IACrC,oBAAoB,yBAAyB;IAC7C,cAAc,mBAAmB;IACjC,4BAA4B,iCAAiC;IAC7D,YAAY,iBAAiB;IAC7B,WAAW,gBAAgB;CAC5B"}
|
|
1
|
+
{"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../../../src/components/enums.ts"],"names":[],"mappings":"AAAA,oBAAY,aAAa;IACvB,SAAS,cAAc;IACvB,kBAAkB,uBAAuB;IACzC,UAAU,eAAe;IACzB,cAAc,mBAAmB;IACjC,cAAc,mBAAmB;IACjC,WAAW,gBAAgB;IAC3B,iBAAiB,sBAAsB;IACvC,WAAW,gBAAgB;IAC3B,eAAe,oBAAoB;IACnC,WAAW,gBAAgB;IAC3B,cAAc,mBAAmB;IACjC,oBAAoB,yBAAyB;IAC7C,iBAAiB,sBAAsB;IACvC,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,eAAe,oBAAoB;IACnC,gBAAgB,qBAAqB;IACrC,oBAAoB,yBAAyB;IAC7C,cAAc,mBAAmB;IACjC,4BAA4B,iCAAiC;IAC7D,YAAY,iBAAiB;IAC7B,WAAW,gBAAgB;CAC5B;AAED,eAAO,MAAM,eAAe,EAIvB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { ComponentTypes } from '../components/component-types.js';
|
|
2
|
-
export { ComponentType } from '../components/enums.js';
|
|
2
|
+
export { ComponentType, PreviewTypeEnum } from '../components/enums.js';
|
|
3
3
|
export { allDocumentTypes, allImageTypes, allTabularDataTypes } from '../components/file-types.js';
|
|
4
4
|
export { getComponentDefaults, hasConditionSupport, hasContent, hasContentField, hasFormField, hasHint, hasInputField, hasListField, hasSelectionFields, hasTitle, isConditionalRevealType, isConditionalType, isContentType, isFormType, isListType } from '../components/helpers.js';
|
|
5
5
|
export { getYesNoList, yesNoListId, yesNoListName, yesNoListNoItemId, yesNoListYesItemId } from '../components/yes-no-helper.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AACpE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC1E,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACpB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,UAAU,EACV,eAAe,EACf,YAAY,EACZ,OAAO,EACP,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,QAAQ,EACR,uBAAuB,EACvB,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,UAAU,EACX,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACL,YAAY,EACZ,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,mCAAmC,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type LanguageMessages } from 'joi';
|
|
2
|
-
import { type ComponentType } from '../components/enums.js';
|
|
2
|
+
import { type ComponentType, type PreviewTypeEnum } from '../components/enums.js';
|
|
3
3
|
import { type ListTypeContent, type ListTypeOption } from '../form/form-definition/types.js';
|
|
4
4
|
export type ConditionalComponentType = Exclude<ConditionalComponentsDef['type'], ContentComponentsDef>;
|
|
5
5
|
/**
|
|
@@ -280,5 +280,6 @@ export type ContentComponentsDef = DetailsComponent | HtmlComponent | MarkdownCo
|
|
|
280
280
|
export type ListComponentsDef = Exclude<SelectionComponentsDef, YesNoFieldComponent> | ListComponent;
|
|
281
281
|
export type SelectionComponentsDef = AutocompleteFieldComponent | CheckboxesFieldComponent | RadiosFieldComponent | SelectFieldComponent | YesNoFieldComponent;
|
|
282
282
|
export type ConditionalComponentsDef = Exclude<ComponentDef, InsetTextComponent | ListComponent | MonthYearFieldComponent | UkAddressFieldComponent | FileUploadFieldComponent>;
|
|
283
|
+
export type PreviewType = keyof typeof PreviewTypeEnum;
|
|
283
284
|
export {};
|
|
284
285
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,KAAK,CAAA;AAE3C,OAAO,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,93 +1,9 @@
|
|
|
1
1
|
import { type ConditionalComponentType } from '../components/types.js';
|
|
2
2
|
import { type Condition } from '../conditions/condition.js';
|
|
3
3
|
import { OperatorName } from '../conditions/enums.js';
|
|
4
|
-
import { type
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
is: OperatorDefinition;
|
|
8
|
-
"is not": OperatorDefinition;
|
|
9
|
-
};
|
|
10
|
-
RadiosField: {
|
|
11
|
-
is: OperatorDefinition;
|
|
12
|
-
"is not": OperatorDefinition;
|
|
13
|
-
};
|
|
14
|
-
CheckboxesField: {
|
|
15
|
-
contains: OperatorDefinition;
|
|
16
|
-
"does not contain": OperatorDefinition;
|
|
17
|
-
};
|
|
18
|
-
NumberField: {
|
|
19
|
-
is: OperatorDefinition;
|
|
20
|
-
"is not": OperatorDefinition;
|
|
21
|
-
} & {
|
|
22
|
-
"is at least": OperatorDefinition;
|
|
23
|
-
"is at most": OperatorDefinition;
|
|
24
|
-
"is less than": OperatorDefinition;
|
|
25
|
-
"is more than": OperatorDefinition;
|
|
26
|
-
};
|
|
27
|
-
DatePartsField: {
|
|
28
|
-
"is at least": OperatorDefinition;
|
|
29
|
-
"is at most": OperatorDefinition;
|
|
30
|
-
"is less than": OperatorDefinition;
|
|
31
|
-
"is more than": OperatorDefinition;
|
|
32
|
-
is: OperatorDefinition;
|
|
33
|
-
"is not": OperatorDefinition;
|
|
34
|
-
"is before": OperatorDefinition;
|
|
35
|
-
"is after": OperatorDefinition;
|
|
36
|
-
};
|
|
37
|
-
TextField: {
|
|
38
|
-
is: OperatorDefinition;
|
|
39
|
-
"is not": OperatorDefinition;
|
|
40
|
-
} & {
|
|
41
|
-
"is longer than": OperatorDefinition;
|
|
42
|
-
"is shorter than": OperatorDefinition;
|
|
43
|
-
"has length": OperatorDefinition;
|
|
44
|
-
};
|
|
45
|
-
MultilineTextField: {
|
|
46
|
-
"is longer than": OperatorDefinition;
|
|
47
|
-
"is shorter than": OperatorDefinition;
|
|
48
|
-
};
|
|
49
|
-
EmailAddressField: {
|
|
50
|
-
is: OperatorDefinition;
|
|
51
|
-
"is not": OperatorDefinition;
|
|
52
|
-
} & {
|
|
53
|
-
"is longer than": OperatorDefinition;
|
|
54
|
-
"is shorter than": OperatorDefinition;
|
|
55
|
-
"has length": OperatorDefinition;
|
|
56
|
-
};
|
|
57
|
-
TelephoneNumberField: {
|
|
58
|
-
is: OperatorDefinition;
|
|
59
|
-
"is not": OperatorDefinition;
|
|
60
|
-
};
|
|
61
|
-
SelectField: {
|
|
62
|
-
is: OperatorDefinition;
|
|
63
|
-
"is not": OperatorDefinition;
|
|
64
|
-
};
|
|
65
|
-
YesNoField: {
|
|
66
|
-
is: OperatorDefinition;
|
|
67
|
-
"is not": OperatorDefinition;
|
|
68
|
-
};
|
|
69
|
-
DeclarationField: {
|
|
70
|
-
is: OperatorDefinition;
|
|
71
|
-
"is not": OperatorDefinition;
|
|
72
|
-
};
|
|
73
|
-
EastingNorthingField: {
|
|
74
|
-
is: OperatorDefinition;
|
|
75
|
-
"is not": OperatorDefinition;
|
|
76
|
-
};
|
|
77
|
-
OsGridRefField: {
|
|
78
|
-
is: OperatorDefinition;
|
|
79
|
-
"is not": OperatorDefinition;
|
|
80
|
-
};
|
|
81
|
-
NationalGridFieldNumberField: {
|
|
82
|
-
is: OperatorDefinition;
|
|
83
|
-
"is not": OperatorDefinition;
|
|
84
|
-
};
|
|
85
|
-
LatLongField: {
|
|
86
|
-
is: OperatorDefinition;
|
|
87
|
-
"is not": OperatorDefinition;
|
|
88
|
-
};
|
|
89
|
-
HiddenField: undefined;
|
|
90
|
-
};
|
|
4
|
+
import { type Conditionals } from '../conditions/types.js';
|
|
5
|
+
export type CustomOperators<T extends ConditionalComponentType = ConditionalComponentType> = Partial<Record<T, Partial<Conditionals> | undefined>>;
|
|
6
|
+
export declare const customOperators: CustomOperators;
|
|
91
7
|
export declare function getOperatorNames(fieldType?: ConditionalComponentType): OperatorName[];
|
|
92
8
|
export declare function getExpression(fieldType: ConditionalComponentType, fieldName: string, operator: OperatorName, value: Condition['value']): string | undefined;
|
|
93
9
|
export declare const absoluteDateOperatorNames: OperatorName[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"condition-operators.d.ts","sourceRoot":"","sources":["../../../src/conditions/condition-operators.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,2BAA2B,CAAA;AAKlC,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAIL,YAAY,EACb,MAAM,2BAA2B,CAAA;AAClC,OAAO,
|
|
1
|
+
{"version":3,"file":"condition-operators.d.ts","sourceRoot":"","sources":["../../../src/conditions/condition-operators.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,2BAA2B,CAAA;AAKlC,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAIL,YAAY,EACb,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,KAAK,YAAY,EAElB,MAAM,2BAA2B,CAAA;AAqClC,MAAM,MAAM,eAAe,CACzB,CAAC,SAAS,wBAAwB,GAAG,wBAAwB,IAC3D,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,CAAC,CAAA;AAEzD,eAAO,MAAM,eAAe,EAAE,eAgC7B,CAAA;AAED,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,wBAAwB,kBAOpE;AAED,wBAAgB,aAAa,CAC3B,SAAS,EAAE,wBAAwB,EACnC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,sBAW1B;AA+DD,eAAO,MAAM,yBAAyB,EAEjC,YAAY,EAAE,CAAA;AAEnB,eAAO,MAAM,yBAAyB,EAEjC,YAAY,EAAE,CAAA"}
|
|
@@ -22,5 +22,5 @@ export declare function getHiddenFields(definition: FormDefinition): ComponentDe
|
|
|
22
22
|
* @param definition - form definition
|
|
23
23
|
* @returns {boolean}
|
|
24
24
|
*/
|
|
25
|
-
export declare function isFeedbackForm(definition: FormDefinition): boolean;
|
|
25
|
+
export declare function isFeedbackForm(definition: FormDefinition | undefined): boolean;
|
|
26
26
|
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../src/form/form-definition/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,KAAK,+BAA+B,EAAE,MAAM,2BAA2B,CAAA;AAChF,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,qCAAqC,CAAA;AAIzE;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,OAAO,GAClB,UAAU,IAAI,cAAc,CAW9B;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,kBAAkB,EAAE,OAAO,GAC1B,kBAAkB,IAAI,+BAA+B,CAUvD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,cAAc,kBAczD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../src/form/form-definition/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,KAAK,+BAA+B,EAAE,MAAM,2BAA2B,CAAA;AAChF,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,qCAAqC,CAAA;AAIzE;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,OAAO,GAClB,UAAU,IAAI,cAAc,CAW9B;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,kBAAkB,EAAE,OAAO,GAC1B,kBAAkB,IAAI,+BAA+B,CAUvD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,cAAc,kBAczD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,cAAc,GAAG,SAAS,WAKpE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../src/form/form-editor/preview/helpers.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../src/form/form-editor/preview/helpers.js"],"names":[],"mappings":"AAqJA;;;;GAIG;AACH,gEAJW,gBAAgB,cAChB,cAAc,GACZ,CAAC,SAAS,EAAE,YAAY,KAAK,QAAQ,CAoCjD;sCAGsD,yCAAyC;oCAG7D,qCAAqC;kCACgO,2BAA2B;8BAHtS,4CAA4C"}
|
package/package.json
CHANGED
package/src/components/enums.ts
CHANGED
package/src/components/index.ts
CHANGED
package/src/components/types.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { type LanguageMessages } from 'joi'
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
type ComponentType,
|
|
5
|
+
type PreviewTypeEnum
|
|
6
|
+
} from '~/src/components/enums.js'
|
|
4
7
|
import {
|
|
5
8
|
type ListTypeContent,
|
|
6
9
|
type ListTypeOption
|
|
@@ -380,3 +383,5 @@ export type ConditionalComponentsDef = Exclude<
|
|
|
380
383
|
| UkAddressFieldComponent
|
|
381
384
|
| FileUploadFieldComponent
|
|
382
385
|
>
|
|
386
|
+
|
|
387
|
+
export type PreviewType = keyof typeof PreviewTypeEnum
|
|
@@ -55,7 +55,11 @@ const relativeDateOperators = {
|
|
|
55
55
|
)
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
export
|
|
58
|
+
export type CustomOperators<
|
|
59
|
+
T extends ConditionalComponentType = ConditionalComponentType
|
|
60
|
+
> = Partial<Record<T, Partial<Conditionals> | undefined>>
|
|
61
|
+
|
|
62
|
+
export const customOperators: CustomOperators = {
|
|
59
63
|
[ComponentType.AutocompleteField]: defaultOperators,
|
|
60
64
|
[ComponentType.RadiosField]: defaultOperators,
|
|
61
65
|
[ComponentType.CheckboxesField]: {
|
|
@@ -68,7 +68,9 @@ export function getHiddenFields(definition: FormDefinition) {
|
|
|
68
68
|
* @param definition - form definition
|
|
69
69
|
* @returns {boolean}
|
|
70
70
|
*/
|
|
71
|
-
export function isFeedbackForm(definition: FormDefinition) {
|
|
71
|
+
export function isFeedbackForm(definition: FormDefinition | undefined) {
|
|
72
72
|
const feedback = 'FeedbackPageController' as ControllerType
|
|
73
|
-
return definition
|
|
73
|
+
return definition?.pages
|
|
74
|
+
? definition.pages.some((p) => p.controller === feedback)
|
|
75
|
+
: false
|
|
74
76
|
}
|
|
@@ -57,10 +57,15 @@ import {
|
|
|
57
57
|
import { YesNoQuestion } from '~/src/form/form-editor/preview/yes-no.js'
|
|
58
58
|
import { findDefinitionListFromComponent } from '~/src/form/utils/list.js'
|
|
59
59
|
/**
|
|
60
|
-
* @type {
|
|
60
|
+
* @type {typeof PreviewComponent}
|
|
61
|
+
*/
|
|
62
|
+
const InputFieldComponentDefault = ShortAnswerQuestion
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* @type {Partial<Record<ComponentType, typeof PreviewComponent>>}
|
|
61
66
|
*/
|
|
62
67
|
const InputFieldComponentDictionary = {
|
|
63
|
-
[ComponentType.TextField]:
|
|
68
|
+
[ComponentType.TextField]: InputFieldComponentDefault,
|
|
64
69
|
[ComponentType.Details]: ShortAnswerQuestion,
|
|
65
70
|
[ComponentType.InsetText]: ShortAnswerQuestion,
|
|
66
71
|
[ComponentType.Html]: ShortAnswerQuestion,
|
|
@@ -170,8 +175,9 @@ export function mapComponentToPreviewQuestion(questionRenderer, definition) {
|
|
|
170
175
|
questionElements = new ComponentElements(component)
|
|
171
176
|
}
|
|
172
177
|
|
|
173
|
-
const QuestionConstructor =
|
|
174
|
-
|
|
178
|
+
const QuestionConstructor =
|
|
179
|
+
InputFieldComponentDictionary[component.type] ??
|
|
180
|
+
InputFieldComponentDefault
|
|
175
181
|
const previewComponent = new QuestionConstructor(
|
|
176
182
|
questionElements,
|
|
177
183
|
questionRenderer
|