@gen-epix/ui-core-form 4.3.1 → 4.4.1

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.
Files changed (53) hide show
  1. package/dist/_chunks/Autocomplete.js.map +1 -1
  2. package/dist/_chunks/DatePicker.js +1 -1
  3. package/dist/_chunks/DatePicker.js.map +1 -1
  4. package/dist/_chunks/FileUpload.js.map +1 -1
  5. package/dist/_chunks/FormUtil.js +2 -2
  6. package/dist/_chunks/FormUtil.js.map +1 -1
  7. package/dist/_chunks/RichTextEditor.js +19672 -13307
  8. package/dist/_chunks/RichTextEditor.js.map +1 -1
  9. package/dist/_chunks/TransferList.js.map +1 -1
  10. package/dist/_chunks/classnames.js.map +1 -1
  11. package/dist/_chunks/isEqual.js.map +1 -1
  12. package/dist/_chunks/isObjectLike.js.map +1 -1
  13. package/dist/_chunks/isValid.js.map +1 -1
  14. package/dist/_chunks/sv.js.map +1 -1
  15. package/dist/components/fields/Autocomplete/Autocomplete.d.ts +1 -1
  16. package/dist/components/fields/Autocomplete/AutocompleteSelectAllContext.d.ts +1 -1
  17. package/dist/components/fields/Autocomplete/index.js +1 -2
  18. package/dist/components/fields/CheckboxGroup/CheckboxGroup.d.ts +1 -1
  19. package/dist/components/fields/CheckboxGroup/index.js.map +1 -1
  20. package/dist/components/fields/DatePicker/DatePicker.d.ts +1 -1
  21. package/dist/components/fields/DatePicker/index.js +1 -2
  22. package/dist/components/fields/DateRangePicker/DateRangePicker.d.ts +1 -1
  23. package/dist/components/fields/DateRangePicker/index.js +1 -1
  24. package/dist/components/fields/DateRangePicker/index.js.map +1 -1
  25. package/dist/components/fields/FileUpload/index.js +1 -2
  26. package/dist/components/fields/NumberField/index.js.map +1 -1
  27. package/dist/components/fields/NumberRangeInput/index.js.map +1 -1
  28. package/dist/components/fields/RadioGroup/RadioGroup.d.ts +1 -1
  29. package/dist/components/fields/RadioGroup/index.js.map +1 -1
  30. package/dist/components/fields/RichTextEditor/index.js +1 -2
  31. package/dist/components/fields/Select/Select.d.ts +1 -1
  32. package/dist/components/fields/Select/index.js.map +1 -1
  33. package/dist/components/fields/Switch/index.js.map +1 -1
  34. package/dist/components/fields/TextField/index.js.map +1 -1
  35. package/dist/components/fields/ToggleButtonGroup/ToggleButtonGroup.d.ts +1 -1
  36. package/dist/components/fields/ToggleButtonGroup/index.js.map +1 -1
  37. package/dist/components/fields/TransferList/TransferList.d.ts +1 -1
  38. package/dist/components/fields/TransferList/index.js +1 -2
  39. package/dist/components/helpers/FormFieldHelperText/index.js.map +1 -1
  40. package/dist/components/helpers/FormFieldLoadingIndicator/index.js.map +1 -1
  41. package/dist/components/helpers/GenericForm/GenericForm.d.ts +1 -1
  42. package/dist/components/helpers/GenericForm/index.js +1 -1
  43. package/dist/components/helpers/GenericForm/index.js.map +1 -1
  44. package/dist/hooks/useIsFormFieldRequiredFromSchema/index.js.map +1 -1
  45. package/dist/models/{form.js → form.models.js} +2 -2
  46. package/dist/models/form.models.js.map +1 -0
  47. package/dist/setup/setup.js.map +1 -1
  48. package/dist/utils/FormUtil/FormUtil.d.ts +1 -1
  49. package/dist/utils/FormUtil/index.js +1 -2
  50. package/dist/utils/SchemaUtil/index.js.map +1 -1
  51. package/package.json +60 -60
  52. package/dist/models/form.js.map +0 -1
  53. /package/dist/models/{form.d.ts → form.models.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form.models.js","names":["FORM_FIELD_DEFINITION_TYPE","\"AUTOCOMPLETE\"","\"BOOLEAN\"","\"BOOLEAN_SWITCH\"","\"DATE\"","\"FILE\"","\"HIDDEN\"","\"NUMBER\"","\"RADIO_GROUP\"","\"RICH_TEXT\"","\"SELECT\"","\"SWITCH\"","\"TEXTFIELD\"","\"TRANSFER_LIST\""],"sources":["../../src/models/form.models.ts"],"sourcesContent":["import type {\n FieldValues,\n Path,\n} from 'react-hook-form';\nimport type { ReactElement } from 'react';\n\nimport type { RichTextEditorProps } from '../components/fields/RichTextEditor';\nimport type { TransferListProps } from '../components/fields/TransferList';\nimport type { AutocompleteProps } from '../components/fields/Autocomplete';\nimport type { TextFieldProps } from '../components/fields/TextField';\nimport type { SelectProps } from '../components/fields/Select';\nimport type { DatePickerProps } from '../components/fields/DatePicker';\nimport type { FileUploadProps } from '../components/fields/FileUpload/FileUpload';\nimport type { RadioGroupProps } from '../components/fields/RadioGroup';\nimport type { NumberFieldProps } from '../components/fields/NumberField';\nimport type { SwitchProps } from '../components/fields/Switch';\n\nexport enum FORM_FIELD_DEFINITION_TYPE {\n AUTOCOMPLETE = 'AUTOCOMPLETE',\n BOOLEAN = 'BOOLEAN',\n BOOLEAN_SWITCH = 'BOOLEAN_SWITCH',\n DATE = 'DATE',\n FILE = 'FILE',\n HIDDEN = 'HIDDEN',\n NUMBER = 'NUMBER',\n RADIO_GROUP = 'RADIO_GROUP',\n RICH_TEXT = 'RICH_TEXT',\n SELECT = 'SELECT',\n SWITCH = 'SWITCH',\n TEXTFIELD = 'TEXTFIELD',\n TRANSFER_LIST = 'TRANSFER_LIST',\n}\n\nexport interface AutoCompleteOption<TValue = void> extends OptionBase<TValue extends void ? (number | string) : TValue> {\n groupBySortOrderValue?: number;\n groupByValue?: string;\n}\n\nexport type AutocompleteSelectAllContextData = {\n currentValues: AutocompleteValue[];\n enabledOptionValues: AutocompleteValue[];\n handleSelectAll: (isCurrentlyAll: boolean, currentValues: AutocompleteValue[]) => void;\n selectAllLabel: string;\n};\nexport type AutocompleteValue = number | string;\nexport type BaseFormFieldDefinition = {\n contentAfter?: ReactElement;\n contentBefore?: ReactElement;\n};\n\nexport type CheckboxOption = OptionBase<number | string>;\n\nexport type FormFieldDefinition<TFormFields extends FieldValues> =\n FormFieldDefinitionAutocompleteForName<TFormFields> |\n FormFieldDefinitionBoolean<TFormFields> |\n FormFieldDefinitionBooleanSwitch<TFormFields> |\n FormFieldDefinitionDate<TFormFields> |\n FormFieldDefinitionFile<TFormFields> |\n FormFieldDefinitionHidden<TFormFields> |\n FormFieldDefinitionNumber<TFormFields> |\n FormFieldDefinitionRadioGroup<TFormFields> |\n FormFieldDefinitionRichText<TFormFields> |\n FormFieldDefinitionSelect<TFormFields> |\n FormFieldDefinitionSelectMultiple<TFormFields> |\n FormFieldDefinitionSwitch<TFormFields> |\n FormFieldDefinitionTextField<TFormFields> |\n FormFieldDefinitionTransferList<TFormFields>;\nexport type FormFieldDefinitionAutocomplete<TFormFields extends FieldValues, TName extends Path<TFormFields> = Path<TFormFields>> = { definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE; multiple?: false } & AutocompleteProps<TFormFields, TName, false> & BaseFormFieldDefinition & FormFieldGrouping;\nexport type FormFieldDefinitionAutocompleteMultiple<TFormFields extends FieldValues, TName extends Path<TFormFields> = Path<TFormFields>> = { definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE; multiple?: true } & AutocompleteProps<TFormFields, TName, true> & BaseFormFieldDefinition & FormFieldGrouping;\nexport type FormFieldDefinitionBoolean<TFormFields extends FieldValues> = { definition: FORM_FIELD_DEFINITION_TYPE.BOOLEAN } & BaseFormFieldDefinition & FormFieldGrouping & Omit<SelectProps<TFormFields, Path<TFormFields>, false>, 'options'>;\nexport type FormFieldDefinitionBooleanSwitch<TFormFields extends FieldValues> = { definition: FORM_FIELD_DEFINITION_TYPE.BOOLEAN_SWITCH } & BaseFormFieldDefinition & FormFieldGrouping & Omit<SwitchProps<TFormFields, Path<TFormFields>>, 'options'>;\nexport type FormFieldDefinitionDate<TFormFields extends FieldValues> = { definition: FORM_FIELD_DEFINITION_TYPE.DATE } & BaseFormFieldDefinition & DatePickerProps<TFormFields, Path<TFormFields>> & FormFieldGrouping;\nexport type FormFieldDefinitionFile<TFormFields extends FieldValues> = { definition: FORM_FIELD_DEFINITION_TYPE.FILE } & BaseFormFieldDefinition & FileUploadProps<TFormFields, Path<TFormFields>> & FormFieldGrouping;\nexport type FormFieldDefinitionHidden<TFormFields extends FieldValues> = { definition: FORM_FIELD_DEFINITION_TYPE.HIDDEN } & BaseFormFieldDefinition & FormFieldGrouping & TextFieldProps<TFormFields, Path<TFormFields>>;\nexport type FormFieldDefinitionNumber<TFormFields extends FieldValues> = { definition: FORM_FIELD_DEFINITION_TYPE.NUMBER } & BaseFormFieldDefinition & FormFieldGrouping & NumberFieldProps<TFormFields, Path<TFormFields>>;\nexport type FormFieldDefinitionRadioGroup<TFormFields extends FieldValues> = { definition: FORM_FIELD_DEFINITION_TYPE.RADIO_GROUP } & BaseFormFieldDefinition & FormFieldGrouping & RadioGroupProps<TFormFields, Path<TFormFields>>;\nexport type FormFieldDefinitionRichText<TFormFields extends FieldValues> = { definition: FORM_FIELD_DEFINITION_TYPE.RICH_TEXT } & BaseFormFieldDefinition & FormFieldGrouping & RichTextEditorProps<TFormFields, Path<TFormFields>>;\nexport type FormFieldDefinitionSelect<TFormFields extends FieldValues> = { definition: FORM_FIELD_DEFINITION_TYPE.SELECT; multiple?: false } & BaseFormFieldDefinition & FormFieldGrouping & SelectProps<TFormFields, Path<TFormFields>, false>;\nexport type FormFieldDefinitionSelectMultiple<TFormFields extends FieldValues> = { definition: FORM_FIELD_DEFINITION_TYPE.SELECT; multiple?: true } & BaseFormFieldDefinition & FormFieldGrouping & SelectProps<TFormFields, Path<TFormFields>, true>;\nexport type FormFieldDefinitionSwitch<TFormFields extends FieldValues> = { definition: FORM_FIELD_DEFINITION_TYPE.SWITCH } & BaseFormFieldDefinition & FormFieldGrouping & SwitchProps<TFormFields, Path<TFormFields>>;\nexport type FormFieldDefinitionTextField<TFormFields extends FieldValues> = { definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD } & BaseFormFieldDefinition & FormFieldGrouping & TextFieldProps<TFormFields, Path<TFormFields>>;\nexport type FormFieldDefinitionTransferList<TFormFields extends FieldValues> = { definition: FORM_FIELD_DEFINITION_TYPE.TRANSFER_LIST } & BaseFormFieldDefinition & FormFieldGrouping & TransferListProps<TFormFields, Path<TFormFields>>;\nexport type FormFieldGrouping = {\n groupKey?: string;\n};\nexport type FormGroupDefinition = {\n contentAfter?: ReactElement;\n contentBefore?: ReactElement;\n description?: string;\n groupKey: string;\n label: string;\n messages?: FormGroupMessage[];\n};\nexport type FormGroupMessage = {\n buttonLabel?: string;\n message: string;\n onButtonClick?: () => void;\n severity: 'error' | 'info' | 'warning';\n};\nexport interface OptionBase<TValue> {\n disabled?: boolean;\n label?: string;\n secondaryLabel?: string;\n value?: TValue;\n}\nexport type RadioButtonOption<TValue = void> = OptionBase<TValue extends void ? (boolean | number | string) : TValue>;\nexport type SelectOption<TValue = void> = OptionBase<TValue extends void ? (boolean | number | string) : TValue>;\nexport type ToggleButtonOption<TValue = void> = OptionBase<TValue extends void ? (boolean | number | string) : TValue>;\nexport type TransferListOption = OptionBase<string>;\n\n// Distributes over each field name so `onChange`'s value type resolves to the concrete\n// `TFormFields[TName]` per field instead of collapsing to `unknown` for the whole `Path<TFormFields>` union.\ntype FormFieldDefinitionAutocompleteForName<TFormFields extends FieldValues> = {\n [TName in Path<TFormFields>]: FormFieldDefinitionAutocomplete<TFormFields, TName> | FormFieldDefinitionAutocompleteMultiple<TFormFields, TName>;\n}[Path<TFormFields>];\n"],"mappings":";AAiBA,IAAYA,IAAL,yBAAA,GAAA;QACL,EAAAC,eAAA,gBACA,EAAAC,UAAA,WACA,EAAAC,iBAAA,kBACA,EAAAC,OAAA,QACA,EAAAC,OAAA,QACA,EAAAC,SAAA,UACA,EAAAC,SAAA,UACA,EAAAC,cAAA,eACA,EAAAC,YAAA,aACA,EAAAC,SAAA,UACA,EAAAC,SAAA,UACA,EAAAC,YAAA,aACA,EAAAC,gBAAA;AACF,EAAA,CAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","names":[],"sources":["../../src/setup/setup.ts"],"sourcesContent":["import type {\n StringSchema,\n TestFunction,\n} from 'yup';\nimport {\n addMethod,\n setLocale,\n string,\n} from 'yup';\nimport { t } from 'i18next';\nimport { ValidationUtil } from '@gen-epix/ui-core/utils/ValidationUtil';\n\ntype CustomValidation = {\n assertCallback: (value: string, ...args: unknown[]) => boolean;\n message: ((...args: unknown[]) => string) | string;\n name: string;\n};\n\nexport const setupYup = () => {\n setLocale({\n array: {\n max: t('Should contain at most ${max} option(s)'),\n min: t('Should contain at least ${min} option(s)'),\n },\n boolean: {},\n date: {\n max: t('Should be before ${max}'),\n min: t('Should be later than ${min}'),\n },\n mixed: {\n default: t('Value is invalid'),\n notNull: t('Field is mandatory'),\n notOneOf: t('Value is invalid'),\n notType: t('Field is mandatory'),\n oneOf: t('Field is mandatory'),\n required: t('Field is mandatory'),\n },\n number: {\n integer: t('Should be an integer'),\n lessThan: t('Should be less than ${less}'),\n max: t('Should be lower or equal to ${max}'),\n min: t('Should be greater or equal to ${min}'),\n moreThan: t('Should be higher than ${more}'),\n negative: t('Should be negative digit'),\n positive: t('Should be a positive digit'),\n },\n object: {\n noUnknown: t('This value is invalid'),\n },\n string: {\n email: t('Should be a valid email address'),\n length: t('Should be precisely ${length} characters long'),\n lowercase: t('Should only contain lowercase characters'),\n matches: t('This value is invalid.'),\n max: t('Should contain at most ${max} characters'),\n min: t('Should contain at least ${min} characters'),\n trim: t('Should not contain leading or trailing spaces'),\n uppercase: t('Should only contain uppercase characters'),\n url: t('Should be a valid URL'),\n },\n });\n\n const customValidations: CustomValidation[] = [\n {\n assertCallback: (value: string) => ValidationUtil.validate('STRICT_ALPHA', value),\n message: () => t`Only letters (without diacritics) are allowed.`,\n name: 'strictAlpha',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('STRICT_ALPHA_NUMERIC', value),\n message: () => t`Only digits and letters (without diacritics) are allowed.`,\n name: 'strictAlphaNumeric',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('ALPHA', value),\n message: () => t`Only letters (including diacritics) are allowed.`,\n name: 'alpha',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('ALPHA_NUMERIC', value),\n message: () => t`Only digits and letters (including diacritics) are allowed.`,\n name: 'alphaNumeric',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('EXTENDED_ALPHA_NUMERIC', value),\n message: () => t`Only digits, letters (including diacritics) and punctuation marks are allowed.`,\n name: 'extendedAlphaNumeric',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('FREE_FORM_TEXT', value),\n message: () => t`Only freeform text characters are allowed.`,\n name: 'freeFormText',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('EMAIL', value),\n message: () => t`Only a valid email address is allowed.`,\n name: 'email',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('URL', value),\n message: () => t`Only a valid url is allowed.`,\n name: 'url',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('REGEX', value),\n message: () => t`Only a valid regex is allowed.`,\n name: 'regex',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('UUID4', value),\n message: () => t`Only a valid UUID is allowed.`,\n name: 'uuid4',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('LAT_LONG', value),\n message: () => t`Only valid latitude and longitude coordinates are allowed. For example: 13.7368, 100.5627`,\n name: 'latLong',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('TIME_WEEK', value),\n message: () => t`Only a valid time week is allowed. For example: 2021-W01`,\n name: 'timeWeek',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('TIME_QUARTER', value),\n message: () => t`Only a valid time quarter notation is allowed. For example: 2021-Q1`,\n name: 'timeQuarter',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('TIME_MONTH', value),\n message: () => t`Only a valid time month notation is allowed. For example: 2021-01`,\n name: 'timeMonth',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('TIME_YEAR', value),\n message: () => t`Only a valid time year notation is allowed. For example: 2021`,\n name: 'timeYear',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('DECIMAL_0', value),\n message: () => t`Only a valid number is allowed. (signed, 0 decimal places)`,\n name: 'decimal0',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('DECIMAL_1', value),\n message: () => t`Only a valid number is allowed. (signed, maximum 1 decimal place, use '.' as decimal separator)`,\n name: 'decimal1',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('DECIMAL_2', value),\n message: () => t`Only a valid number is allowed. (signed, maximum 2 decimal place, use '.' as decimal separator)`,\n name: 'decimal2',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('DECIMAL_3', value),\n message: () => t`Only a valid number is allowed. (signed, maximum 3 decimal place, use '.' as decimal separator)`,\n name: 'decimal3',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('DECIMAL_4', value),\n message: () => t`Only a valid number is allowed. (signed, maximum 4 decimal place, use '.' as decimal separator)`,\n name: 'decimal4',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('DECIMAL_5', value),\n message: () => t`Only a valid number is allowed. (signed, maximum 5 decimal place, use '.' as decimal separator)`,\n name: 'decimal5',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('DECIMAL_6', value),\n message: () => t`Only a valid number is allowed. (signed, maximum 6 decimal place, use '.' as decimal separator)`,\n name: 'decimal6',\n },\n ];\n\n customValidations.forEach((customValidation) => {\n // * Inevitable function inside a forEach\n function method(this: StringSchema, ...args: unknown[]) {\n return this.test(\n customValidation.name,\n () => {\n if (typeof customValidation.message === 'string') {\n return customValidation.message;\n }\n return customValidation.message(...args);\n },\n ((value: string): boolean => customValidation.assertCallback(value, ...args)) as TestFunction,\n );\n }\n addMethod(string, customValidation.name, method);\n });\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","names":["setupYup","setLocale","t","ValidationUtil","value","method","args","customValidation","string"],"sources":["../../src/setup/setup.ts"],"sourcesContent":["import type {\n StringSchema,\n TestFunction,\n} from 'yup';\nimport {\n addMethod,\n setLocale,\n string,\n} from 'yup';\nimport { t } from 'i18next';\nimport { ValidationUtil } from '@gen-epix/ui-core/utils/ValidationUtil';\n\ntype CustomValidation = {\n assertCallback: (value: string, ...args: unknown[]) => boolean;\n message: ((...args: unknown[]) => string) | string;\n name: string;\n};\n\nexport const setupYup = () => {\n setLocale({\n array: {\n max: t('Should contain at most ${max} option(s)'),\n min: t('Should contain at least ${min} option(s)'),\n },\n boolean: {},\n date: {\n max: t('Should be before ${max}'),\n min: t('Should be later than ${min}'),\n },\n mixed: {\n default: t('Value is invalid'),\n notNull: t('Field is mandatory'),\n notOneOf: t('Value is invalid'),\n notType: t('Field is mandatory'),\n oneOf: t('Field is mandatory'),\n required: t('Field is mandatory'),\n },\n number: {\n integer: t('Should be an integer'),\n lessThan: t('Should be less than ${less}'),\n max: t('Should be lower or equal to ${max}'),\n min: t('Should be greater or equal to ${min}'),\n moreThan: t('Should be higher than ${more}'),\n negative: t('Should be negative digit'),\n positive: t('Should be a positive digit'),\n },\n object: {\n noUnknown: t('This value is invalid'),\n },\n string: {\n email: t('Should be a valid email address'),\n length: t('Should be precisely ${length} characters long'),\n lowercase: t('Should only contain lowercase characters'),\n matches: t('This value is invalid.'),\n max: t('Should contain at most ${max} characters'),\n min: t('Should contain at least ${min} characters'),\n trim: t('Should not contain leading or trailing spaces'),\n uppercase: t('Should only contain uppercase characters'),\n url: t('Should be a valid URL'),\n },\n });\n\n const customValidations: CustomValidation[] = [\n {\n assertCallback: (value: string) => ValidationUtil.validate('STRICT_ALPHA', value),\n message: () => t`Only letters (without diacritics) are allowed.`,\n name: 'strictAlpha',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('STRICT_ALPHA_NUMERIC', value),\n message: () => t`Only digits and letters (without diacritics) are allowed.`,\n name: 'strictAlphaNumeric',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('ALPHA', value),\n message: () => t`Only letters (including diacritics) are allowed.`,\n name: 'alpha',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('ALPHA_NUMERIC', value),\n message: () => t`Only digits and letters (including diacritics) are allowed.`,\n name: 'alphaNumeric',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('EXTENDED_ALPHA_NUMERIC', value),\n message: () => t`Only digits, letters (including diacritics) and punctuation marks are allowed.`,\n name: 'extendedAlphaNumeric',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('FREE_FORM_TEXT', value),\n message: () => t`Only freeform text characters are allowed.`,\n name: 'freeFormText',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('EMAIL', value),\n message: () => t`Only a valid email address is allowed.`,\n name: 'email',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('URL', value),\n message: () => t`Only a valid url is allowed.`,\n name: 'url',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('REGEX', value),\n message: () => t`Only a valid regex is allowed.`,\n name: 'regex',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('UUID4', value),\n message: () => t`Only a valid UUID is allowed.`,\n name: 'uuid4',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('LAT_LONG', value),\n message: () => t`Only valid latitude and longitude coordinates are allowed. For example: 13.7368, 100.5627`,\n name: 'latLong',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('TIME_WEEK', value),\n message: () => t`Only a valid time week is allowed. For example: 2021-W01`,\n name: 'timeWeek',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('TIME_QUARTER', value),\n message: () => t`Only a valid time quarter notation is allowed. For example: 2021-Q1`,\n name: 'timeQuarter',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('TIME_MONTH', value),\n message: () => t`Only a valid time month notation is allowed. For example: 2021-01`,\n name: 'timeMonth',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('TIME_YEAR', value),\n message: () => t`Only a valid time year notation is allowed. For example: 2021`,\n name: 'timeYear',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('DECIMAL_0', value),\n message: () => t`Only a valid number is allowed. (signed, 0 decimal places)`,\n name: 'decimal0',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('DECIMAL_1', value),\n message: () => t`Only a valid number is allowed. (signed, maximum 1 decimal place, use '.' as decimal separator)`,\n name: 'decimal1',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('DECIMAL_2', value),\n message: () => t`Only a valid number is allowed. (signed, maximum 2 decimal place, use '.' as decimal separator)`,\n name: 'decimal2',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('DECIMAL_3', value),\n message: () => t`Only a valid number is allowed. (signed, maximum 3 decimal place, use '.' as decimal separator)`,\n name: 'decimal3',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('DECIMAL_4', value),\n message: () => t`Only a valid number is allowed. (signed, maximum 4 decimal place, use '.' as decimal separator)`,\n name: 'decimal4',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('DECIMAL_5', value),\n message: () => t`Only a valid number is allowed. (signed, maximum 5 decimal place, use '.' as decimal separator)`,\n name: 'decimal5',\n },\n {\n assertCallback: (value: string) => ValidationUtil.validate('DECIMAL_6', value),\n message: () => t`Only a valid number is allowed. (signed, maximum 6 decimal place, use '.' as decimal separator)`,\n name: 'decimal6',\n },\n ];\n\n customValidations.forEach((customValidation) => {\n // * Inevitable function inside a forEach\n function method(this: StringSchema, ...args: unknown[]) {\n return this.test(\n customValidation.name,\n () => {\n if (typeof customValidation.message === 'string') {\n return customValidation.message;\n }\n return customValidation.message(...args);\n },\n ((value: string): boolean => customValidation.assertCallback(value, ...args)) as TestFunction,\n );\n }\n addMethod(string, customValidation.name, method);\n });\n};\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { DeepRequired, FieldErrorsImpl, FieldValues } from 'react-hook-form';
2
2
  import { TFunction } from 'i18next';
3
3
  import { ObjectSchema } from 'yup';
4
- import { FormFieldDefinition } from '../../models/form';
4
+ import { FormFieldDefinition } from '../../models/form.models';
5
5
  export declare class FormUtil {
6
6
  static areFormValuesValid<TFormFields extends FieldValues>(formFieldDefinitions: FormFieldDefinition<TFormFields>[], values: unknown): boolean;
7
7
  static createBooleanOptions(t: TFunction<'translation', undefined>): {
@@ -1,2 +1 @@
1
- import { t as e } from "../../_chunks/FormUtil.js";
2
- export { e as FormUtil };
1
+ export { t as FormUtil } from "../../_chunks/FormUtil.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/utils/SchemaUtil/SchemaUtil.ts"],"sourcesContent":["import { isValid } from 'date-fns/isValid';\nimport {\n number,\n string,\n} from 'yup';\n\nexport class SchemaUtil {\n public static get code() {\n return string().extendedAlphaNumeric().required().max(100);\n }\n\n public static get description() {\n return string().freeFormText().max(1000);\n }\n\n public static get isoString() {\n return string().transform((_val: unknown, orig: Date) => isValid(orig) ? orig.toISOString() : undefined);\n }\n\n public static get label() {\n return string().extendedAlphaNumeric().required().max(100);\n }\n\n public static get name() {\n return string().extendedAlphaNumeric().required().max(100);\n }\n\n public static get number() {\n return number().nullable();\n }\n\n public static get rank() {\n return SchemaUtil.number.required().min(0).integer();\n }\n}\n"],"mappings":";;;AAMA,IAAa,IAAb,MAAa,EAAW;CACtB,WAAkB,OAAO;EACvB,OAAO,EAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,GAAG;CAC3D;CAEA,WAAkB,cAAc;EAC9B,OAAO,EAAO,CAAC,CAAC,aAAa,CAAC,CAAC,IAAI,GAAI;CACzC;CAEA,WAAkB,YAAY;EAC5B,OAAO,EAAO,CAAC,CAAC,WAAW,GAAe,MAAe,EAAQ,CAAI,IAAI,EAAK,YAAY,IAAI,KAAA,CAAS;CACzG;CAEA,WAAkB,QAAQ;EACxB,OAAO,EAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,GAAG;CAC3D;CAEA,WAAkB,OAAO;EACvB,OAAO,EAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,GAAG;CAC3D;CAEA,WAAkB,SAAS;EACzB,OAAO,EAAO,CAAC,CAAC,SAAS;CAC3B;CAEA,WAAkB,OAAO;EACvB,OAAO,EAAW,OAAO,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ;CACrD;AACF"}
1
+ {"version":3,"file":"index.js","names":["isValid","SchemaUtil","string","orig","number"],"sources":["../../../src/utils/SchemaUtil/SchemaUtil.ts"],"sourcesContent":["import { isValid } from 'date-fns/isValid';\nimport {\n number,\n string,\n} from 'yup';\n\nexport class SchemaUtil {\n public static get code() {\n return string().extendedAlphaNumeric().required().max(100);\n }\n\n public static get description() {\n return string().freeFormText().max(1000);\n }\n\n public static get isoString() {\n return string().transform((_val: unknown, orig: Date) => isValid(orig) ? orig.toISOString() : undefined);\n }\n\n public static get label() {\n return string().extendedAlphaNumeric().required().max(100);\n }\n\n public static get name() {\n return string().extendedAlphaNumeric().required().max(100);\n }\n\n public static get number() {\n return number().nullable();\n }\n\n public static get rank() {\n return SchemaUtil.number.required().min(0).integer();\n }\n}\n"],"mappings":";;;AAMA,IAAaC,IAAb,MAAaA,EAAW;CACtB,WAAkB,OAAO;EACvB,OAAOC,EAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,GAAG;CAC3D;CAEA,WAAkB,cAAc;EAC9B,OAAOA,EAAO,CAAC,CAAC,aAAa,CAAC,CAAC,IAAI,GAAI;CACzC;CAEA,WAAkB,YAAY;EAC5B,OAAOA,EAAO,CAAC,CAAC,WAAW,GAAe,MAAeF,EAAQG,CAAI,IAAIA,EAAK,YAAY,IAAI,KAAA,CAAS;CACzG;CAEA,WAAkB,QAAQ;EACxB,OAAOD,EAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,GAAG;CAC3D;CAEA,WAAkB,OAAO;EACvB,OAAOA,EAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,GAAG;CAC3D;CAEA,WAAkB,SAAS;EACzB,OAAOE,EAAO,CAAC,CAAC,SAAS;CAC3B;CAEA,WAAkB,OAAO;EACvB,OAAOH,EAAW,OAAO,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ;CACrD;AACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gen-epix/ui-core-form",
3
- "version": "4.3.1",
3
+ "version": "4.4.1",
4
4
  "homepage": "https://github.com/RIVM-bioinformatics/gen-epix",
5
5
  "repository": {
6
6
  "type": "git",
@@ -86,9 +86,9 @@
86
86
  "types": "./dist/hooks/useIsFormFieldRequiredFromSchema/index.d.ts",
87
87
  "import": "./dist/hooks/useIsFormFieldRequiredFromSchema/index.js"
88
88
  },
89
- "./models/form": {
90
- "types": "./dist/models/form.d.ts",
91
- "import": "./dist/models/form.js"
89
+ "./models/form.models": {
90
+ "types": "./dist/models/form.models.d.ts",
91
+ "import": "./dist/models/form.models.js"
92
92
  },
93
93
  "./setup/setup": {
94
94
  "types": "./dist/setup/setup.d.ts",
@@ -110,75 +110,75 @@
110
110
  "last 2 Chrome versions"
111
111
  ],
112
112
  "dependencies": {
113
- "@tiptap/core": "3.31.3",
114
- "@tiptap/extension-blockquote": "3.31.3",
115
- "@tiptap/extension-bold": "3.31.3",
116
- "@tiptap/extension-bullet-list": "3.31.3",
117
- "@tiptap/extension-code-block": "3.31.3",
118
- "@tiptap/extension-color": "3.31.3",
119
- "@tiptap/extension-document": "3.31.3",
120
- "@tiptap/extension-dropcursor": "3.31.3",
121
- "@tiptap/extension-font-family": "3.31.3",
122
- "@tiptap/extension-gapcursor": "3.31.3",
123
- "@tiptap/extension-hard-break": "3.31.3",
124
- "@tiptap/extension-heading": "3.31.3",
125
- "@tiptap/extension-highlight": "3.31.3",
126
- "@tiptap/extension-history": "3.31.3",
127
- "@tiptap/extension-horizontal-rule": "3.31.3",
128
- "@tiptap/extension-image": "3.31.3",
129
- "@tiptap/extension-italic": "3.31.3",
130
- "@tiptap/extension-link": "3.31.3",
131
- "@tiptap/extension-list-item": "3.31.3",
132
- "@tiptap/extension-ordered-list": "3.31.3",
133
- "@tiptap/extension-paragraph": "3.31.3",
134
- "@tiptap/extension-placeholder": "3.31.3",
135
- "@tiptap/extension-strike": "3.31.3",
136
- "@tiptap/extension-subscript": "3.31.3",
137
- "@tiptap/extension-superscript": "3.31.3",
138
- "@tiptap/extension-table": "3.31.3",
139
- "@tiptap/extension-table-cell": "3.31.3",
140
- "@tiptap/extension-table-header": "3.31.3",
141
- "@tiptap/extension-table-row": "3.31.3",
142
- "@tiptap/extension-task-item": "3.31.3",
143
- "@tiptap/extension-task-list": "3.31.3",
144
- "@tiptap/extension-text": "3.31.3",
145
- "@tiptap/extension-text-align": "3.31.3",
146
- "@tiptap/extension-text-style": "3.31.3",
147
- "@tiptap/extension-underline": "3.31.3",
148
- "@tiptap/pm": "3.31.3",
149
- "@tiptap/react": "3.31.3",
113
+ "@tiptap/core": "3.32.0",
114
+ "@tiptap/extension-blockquote": "3.32.0",
115
+ "@tiptap/extension-bold": "3.32.0",
116
+ "@tiptap/extension-bullet-list": "3.32.0",
117
+ "@tiptap/extension-code-block": "3.32.0",
118
+ "@tiptap/extension-color": "3.32.0",
119
+ "@tiptap/extension-document": "3.32.0",
120
+ "@tiptap/extension-dropcursor": "3.32.0",
121
+ "@tiptap/extension-font-family": "3.32.0",
122
+ "@tiptap/extension-gapcursor": "3.32.0",
123
+ "@tiptap/extension-hard-break": "3.32.0",
124
+ "@tiptap/extension-heading": "3.32.0",
125
+ "@tiptap/extension-highlight": "3.32.0",
126
+ "@tiptap/extension-history": "3.32.0",
127
+ "@tiptap/extension-horizontal-rule": "3.32.0",
128
+ "@tiptap/extension-image": "3.32.0",
129
+ "@tiptap/extension-italic": "3.32.0",
130
+ "@tiptap/extension-link": "3.32.0",
131
+ "@tiptap/extension-list-item": "3.32.0",
132
+ "@tiptap/extension-ordered-list": "3.32.0",
133
+ "@tiptap/extension-paragraph": "3.32.0",
134
+ "@tiptap/extension-placeholder": "3.32.0",
135
+ "@tiptap/extension-strike": "3.32.0",
136
+ "@tiptap/extension-subscript": "3.32.0",
137
+ "@tiptap/extension-superscript": "3.32.0",
138
+ "@tiptap/extension-table": "3.32.0",
139
+ "@tiptap/extension-table-cell": "3.32.0",
140
+ "@tiptap/extension-table-header": "3.32.0",
141
+ "@tiptap/extension-table-row": "3.32.0",
142
+ "@tiptap/extension-task-item": "3.32.0",
143
+ "@tiptap/extension-task-list": "3.32.0",
144
+ "@tiptap/extension-text": "3.32.0",
145
+ "@tiptap/extension-text-align": "3.32.0",
146
+ "@tiptap/extension-text-style": "3.32.0",
147
+ "@tiptap/extension-underline": "3.32.0",
148
+ "@tiptap/pm": "3.32.0",
149
+ "@tiptap/react": "3.32.0",
150
150
  "classnames": "2.5.1",
151
151
  "date-fns": "4.4.0",
152
152
  "lodash": "4.18.1",
153
153
  "mui-tiptap": "1.31.0",
154
154
  "use-debounce": "10.1.1",
155
- "uuid": "14.0.2"
155
+ "uuid": "14.0.3"
156
156
  },
157
157
  "devDependencies": {
158
- "@gen-epix/eslint-config": "0.7.0",
159
- "@gen-epix/translation-util": "0.4.0",
160
- "@gen-epix/ui-core": "^3.3.1",
161
- "@gen-epix/ui-core-components": "^4.3.1",
162
- "@mui/icons-material": "9.4.0",
163
- "@mui/material": "9.4.0",
164
- "@mui/x-date-pickers": "9.14.0",
165
- "@types/lodash": "4.17.25",
158
+ "@gen-epix/eslint-config": "0.8.0",
159
+ "@gen-epix/translation-util": "0.5.0",
160
+ "@gen-epix/ui-core": "^3.9.1",
161
+ "@gen-epix/ui-core-components": "^4.4.1",
162
+ "@mui/icons-material": "9.5.0",
163
+ "@mui/material": "9.5.0",
164
+ "@mui/x-date-pickers": "9.15.0",
165
+ "@types/lodash": "4.17.26",
166
166
  "@types/react": "19.3.0",
167
- "eslint": "10.11.0",
168
- "i18next": "26.4.2",
169
- "react": "19.3.0",
170
- "react-hook-form": "7.88.0",
171
- "react-i18next": "17.0.14",
167
+ "eslint": "10.12.0",
168
+ "i18next": "26.4.5",
169
+ "react": "19.3.1",
170
+ "react-hook-form": "7.90.0",
171
+ "react-i18next": "17.0.16",
172
172
  "typescript": "6.0.3",
173
- "vite": "8.3.0",
174
- "vite-plugin-dts": "5.1.1",
173
+ "vite": "8.3.4",
174
+ "vite-plugin-dts": "5.1.2",
175
175
  "vite-plugin-static-copy": "4.1.1",
176
- "vitest": "5.0.1",
176
+ "vitest": "5.0.4",
177
177
  "yup": "1.7.1"
178
178
  },
179
179
  "peerDependencies": {
180
- "@gen-epix/ui-core": "^3.3.1",
181
- "@gen-epix/ui-core-components": "^4.3.1",
180
+ "@gen-epix/ui-core": "^3.9.1",
181
+ "@gen-epix/ui-core-components": "^4.4.1",
182
182
  "@mui/icons-material": "*",
183
183
  "@mui/material": "*",
184
184
  "@mui/x-date-pickers": "*",
@@ -1 +0,0 @@
1
- {"version":3,"file":"form.js","names":[],"sources":["../../src/models/form.ts"],"sourcesContent":["import type {\n FieldValues,\n Path,\n} from 'react-hook-form';\nimport type { ReactElement } from 'react';\n\nimport type { RichTextEditorProps } from '../components/fields/RichTextEditor';\nimport type { TransferListProps } from '../components/fields/TransferList';\nimport type { AutocompleteProps } from '../components/fields/Autocomplete';\nimport type { TextFieldProps } from '../components/fields/TextField';\nimport type { SelectProps } from '../components/fields/Select';\nimport type { DatePickerProps } from '../components/fields/DatePicker';\nimport type { FileUploadProps } from '../components/fields/FileUpload/FileUpload';\nimport type { RadioGroupProps } from '../components/fields/RadioGroup';\nimport type { NumberFieldProps } from '../components/fields/NumberField';\nimport type { SwitchProps } from '../components/fields/Switch';\n\nexport enum FORM_FIELD_DEFINITION_TYPE {\n AUTOCOMPLETE = 'AUTOCOMPLETE',\n BOOLEAN = 'BOOLEAN',\n BOOLEAN_SWITCH = 'BOOLEAN_SWITCH',\n DATE = 'DATE',\n FILE = 'FILE',\n HIDDEN = 'HIDDEN',\n NUMBER = 'NUMBER',\n RADIO_GROUP = 'RADIO_GROUP',\n RICH_TEXT = 'RICH_TEXT',\n SELECT = 'SELECT',\n SWITCH = 'SWITCH',\n TEXTFIELD = 'TEXTFIELD',\n TRANSFER_LIST = 'TRANSFER_LIST',\n}\n\nexport interface AutoCompleteOption<TValue = void> extends OptionBase<TValue extends void ? (number | string) : TValue> {\n groupBySortOrderValue?: number;\n groupByValue?: string;\n}\n\nexport type AutocompleteSelectAllContextData = {\n currentValues: AutocompleteValue[];\n enabledOptionValues: AutocompleteValue[];\n handleSelectAll: (isCurrentlyAll: boolean, currentValues: AutocompleteValue[]) => void;\n selectAllLabel: string;\n};\nexport type AutocompleteValue = number | string;\nexport type BaseFormFieldDefinition = {\n contentAfter?: ReactElement;\n contentBefore?: ReactElement;\n};\n\nexport type CheckboxOption = OptionBase<number | string>;\n\nexport type FormFieldDefinition<TFormFields extends FieldValues> =\n FormFieldDefinitionAutocompleteForName<TFormFields> |\n FormFieldDefinitionBoolean<TFormFields> |\n FormFieldDefinitionBooleanSwitch<TFormFields> |\n FormFieldDefinitionDate<TFormFields> |\n FormFieldDefinitionFile<TFormFields> |\n FormFieldDefinitionHidden<TFormFields> |\n FormFieldDefinitionNumber<TFormFields> |\n FormFieldDefinitionRadioGroup<TFormFields> |\n FormFieldDefinitionRichText<TFormFields> |\n FormFieldDefinitionSelect<TFormFields> |\n FormFieldDefinitionSelectMultiple<TFormFields> |\n FormFieldDefinitionSwitch<TFormFields> |\n FormFieldDefinitionTextField<TFormFields> |\n FormFieldDefinitionTransferList<TFormFields>;\nexport type FormFieldDefinitionAutocomplete<TFormFields extends FieldValues, TName extends Path<TFormFields> = Path<TFormFields>> = { definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE; multiple?: false } & AutocompleteProps<TFormFields, TName, false> & BaseFormFieldDefinition & FormFieldGrouping;\nexport type FormFieldDefinitionAutocompleteMultiple<TFormFields extends FieldValues, TName extends Path<TFormFields> = Path<TFormFields>> = { definition: FORM_FIELD_DEFINITION_TYPE.AUTOCOMPLETE; multiple?: true } & AutocompleteProps<TFormFields, TName, true> & BaseFormFieldDefinition & FormFieldGrouping;\nexport type FormFieldDefinitionBoolean<TFormFields extends FieldValues> = { definition: FORM_FIELD_DEFINITION_TYPE.BOOLEAN } & BaseFormFieldDefinition & FormFieldGrouping & Omit<SelectProps<TFormFields, Path<TFormFields>, false>, 'options'>;\nexport type FormFieldDefinitionBooleanSwitch<TFormFields extends FieldValues> = { definition: FORM_FIELD_DEFINITION_TYPE.BOOLEAN_SWITCH } & BaseFormFieldDefinition & FormFieldGrouping & Omit<SwitchProps<TFormFields, Path<TFormFields>>, 'options'>;\nexport type FormFieldDefinitionDate<TFormFields extends FieldValues> = { definition: FORM_FIELD_DEFINITION_TYPE.DATE } & BaseFormFieldDefinition & DatePickerProps<TFormFields, Path<TFormFields>> & FormFieldGrouping;\nexport type FormFieldDefinitionFile<TFormFields extends FieldValues> = { definition: FORM_FIELD_DEFINITION_TYPE.FILE } & BaseFormFieldDefinition & FileUploadProps<TFormFields, Path<TFormFields>> & FormFieldGrouping;\nexport type FormFieldDefinitionHidden<TFormFields extends FieldValues> = { definition: FORM_FIELD_DEFINITION_TYPE.HIDDEN } & BaseFormFieldDefinition & FormFieldGrouping & TextFieldProps<TFormFields, Path<TFormFields>>;\nexport type FormFieldDefinitionNumber<TFormFields extends FieldValues> = { definition: FORM_FIELD_DEFINITION_TYPE.NUMBER } & BaseFormFieldDefinition & FormFieldGrouping & NumberFieldProps<TFormFields, Path<TFormFields>>;\nexport type FormFieldDefinitionRadioGroup<TFormFields extends FieldValues> = { definition: FORM_FIELD_DEFINITION_TYPE.RADIO_GROUP } & BaseFormFieldDefinition & FormFieldGrouping & RadioGroupProps<TFormFields, Path<TFormFields>>;\nexport type FormFieldDefinitionRichText<TFormFields extends FieldValues> = { definition: FORM_FIELD_DEFINITION_TYPE.RICH_TEXT } & BaseFormFieldDefinition & FormFieldGrouping & RichTextEditorProps<TFormFields, Path<TFormFields>>;\nexport type FormFieldDefinitionSelect<TFormFields extends FieldValues> = { definition: FORM_FIELD_DEFINITION_TYPE.SELECT; multiple?: false } & BaseFormFieldDefinition & FormFieldGrouping & SelectProps<TFormFields, Path<TFormFields>, false>;\nexport type FormFieldDefinitionSelectMultiple<TFormFields extends FieldValues> = { definition: FORM_FIELD_DEFINITION_TYPE.SELECT; multiple?: true } & BaseFormFieldDefinition & FormFieldGrouping & SelectProps<TFormFields, Path<TFormFields>, true>;\nexport type FormFieldDefinitionSwitch<TFormFields extends FieldValues> = { definition: FORM_FIELD_DEFINITION_TYPE.SWITCH } & BaseFormFieldDefinition & FormFieldGrouping & SwitchProps<TFormFields, Path<TFormFields>>;\nexport type FormFieldDefinitionTextField<TFormFields extends FieldValues> = { definition: FORM_FIELD_DEFINITION_TYPE.TEXTFIELD } & BaseFormFieldDefinition & FormFieldGrouping & TextFieldProps<TFormFields, Path<TFormFields>>;\nexport type FormFieldDefinitionTransferList<TFormFields extends FieldValues> = { definition: FORM_FIELD_DEFINITION_TYPE.TRANSFER_LIST } & BaseFormFieldDefinition & FormFieldGrouping & TransferListProps<TFormFields, Path<TFormFields>>;\nexport type FormFieldGrouping = {\n groupKey?: string;\n};\nexport type FormGroupDefinition = {\n contentAfter?: ReactElement;\n contentBefore?: ReactElement;\n description?: string;\n groupKey: string;\n label: string;\n messages?: FormGroupMessage[];\n};\nexport type FormGroupMessage = {\n buttonLabel?: string;\n message: string;\n onButtonClick?: () => void;\n severity: 'error' | 'info' | 'warning';\n};\nexport interface OptionBase<TValue> {\n disabled?: boolean;\n label?: string;\n secondaryLabel?: string;\n value?: TValue;\n}\nexport type RadioButtonOption<TValue = void> = OptionBase<TValue extends void ? (boolean | number | string) : TValue>;\nexport type SelectOption<TValue = void> = OptionBase<TValue extends void ? (boolean | number | string) : TValue>;\nexport type ToggleButtonOption<TValue = void> = OptionBase<TValue extends void ? (boolean | number | string) : TValue>;\nexport type TransferListOption = OptionBase<string>;\n\n// Distributes over each field name so `onChange`'s value type resolves to the concrete\n// `TFormFields[TName]` per field instead of collapsing to `unknown` for the whole `Path<TFormFields>` union.\ntype FormFieldDefinitionAutocompleteForName<TFormFields extends FieldValues> = {\n [TName in Path<TFormFields>]: FormFieldDefinitionAutocomplete<TFormFields, TName> | FormFieldDefinitionAutocompleteMultiple<TFormFields, TName>;\n}[Path<TFormFields>];\n"],"mappings":";AAiBA,IAAY,IAAL,yBAAA,GAAA;QACL,EAAA,eAAA,gBACA,EAAA,UAAA,WACA,EAAA,iBAAA,kBACA,EAAA,OAAA,QACA,EAAA,OAAA,QACA,EAAA,SAAA,UACA,EAAA,SAAA,UACA,EAAA,cAAA,eACA,EAAA,YAAA,aACA,EAAA,SAAA,UACA,EAAA,SAAA,UACA,EAAA,YAAA,aACA,EAAA,gBAAA;AACF,EAAA,CAAA,CAAA"}
File without changes