@luscii-healthtech/web-ui 2.20.1 → 2.20.2
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/components/Form/Form.d.ts +3 -2
- package/dist/components/Form/form.transformer.d.ts +1 -1
- package/dist/components/Form/form.types.d.ts +14 -12
- package/dist/components/Input/Input.d.ts +24 -2
- package/dist/web-ui.cjs.development.js +49 -33
- package/dist/web-ui.cjs.development.js.map +1 -1
- package/dist/web-ui.cjs.production.min.js +1 -1
- package/dist/web-ui.cjs.production.min.js.map +1 -1
- package/dist/web-ui.esm.js +45 -29
- package/dist/web-ui.esm.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
+
import { type FieldValues } from "react-hook-form/dist/index.ie11";
|
|
2
3
|
import { FormProps, GenericFormProps } from "./form.types";
|
|
3
4
|
/**
|
|
4
5
|
* Create a straight forward Form, which takes away the 'overhead' of react-hook-form.
|
|
@@ -8,7 +9,7 @@ import { FormProps, GenericFormProps } from "./form.types";
|
|
|
8
9
|
*
|
|
9
10
|
* TODO: make the buttons configurable.
|
|
10
11
|
*/
|
|
11
|
-
export declare function GenericForm<TFieldValues>({ fields, onValid, onError, defaultValues, }: GenericFormProps<TFieldValues>): JSX.Element;
|
|
12
|
+
export declare function GenericForm<TFieldValues extends FieldValues>({ fields, onValid, onError, defaultValues, }: GenericFormProps<TFieldValues>): JSX.Element;
|
|
12
13
|
/**
|
|
13
14
|
* Creates a Form based on the fields input.
|
|
14
15
|
*
|
|
@@ -16,4 +17,4 @@ export declare function GenericForm<TFieldValues>({ fields, onValid, onError, de
|
|
|
16
17
|
*
|
|
17
18
|
* This allows you to use and modify the useFormReturn before injecting it here.
|
|
18
19
|
*/
|
|
19
|
-
export declare function Form<TFieldValues
|
|
20
|
+
export declare function Form<TFieldValues extends FieldValues>({ fields, useFormReturn, }: FormProps<TFieldValues>): JSX.Element;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { FieldErrors, RegisterOptions } from "react-hook-form";
|
|
1
|
+
import { FieldErrors, RegisterOptions } from "react-hook-form/dist/index.ie11";
|
|
2
2
|
export declare const hasError: (name?: string, errors?: FieldErrors) => boolean;
|
|
3
3
|
export declare const isRequired: (options?: RegisterOptions) => boolean;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Control, DeepPartial, FieldErrors,
|
|
1
|
+
import { Control, DeepPartial, FieldErrors, FieldName, FieldValues, RegisterOptions, SubmitErrorHandler, SubmitHandler, UnpackNestedValue, UseFormMethods as UseFormReturn } from "react-hook-form/dist/index.ie11";
|
|
2
2
|
import React, { HTMLInputTypeAttribute } from "react";
|
|
3
3
|
import { InputProps } from "../Input/Input";
|
|
4
4
|
import { RadioGroupProps } from "../RadioGroup/RadioGroupV2";
|
|
@@ -9,14 +9,14 @@ export interface GenericFormProps<TFieldValues extends FieldValues> {
|
|
|
9
9
|
fields: FormFieldProps<TFieldValues>[];
|
|
10
10
|
onValid: SubmitHandler<TFieldValues>;
|
|
11
11
|
onError?: SubmitErrorHandler<TFieldValues>;
|
|
12
|
-
defaultValues?: DeepPartial<TFieldValues
|
|
12
|
+
defaultValues?: UnpackNestedValue<DeepPartial<TFieldValues>>;
|
|
13
13
|
}
|
|
14
|
-
export interface FormProps<TFieldValues extends FieldValues
|
|
14
|
+
export interface FormProps<TFieldValues extends FieldValues> {
|
|
15
15
|
fields: FormFieldProps<TFieldValues>[];
|
|
16
|
-
useFormReturn: UseFormReturn<TFieldValues
|
|
16
|
+
useFormReturn: UseFormReturn<TFieldValues>;
|
|
17
17
|
}
|
|
18
|
-
interface FormFieldGenericProps<TFieldType
|
|
19
|
-
name:
|
|
18
|
+
interface FormFieldGenericProps<TFieldType> extends FormFieldDecoratorProps {
|
|
19
|
+
name: FieldName<FieldValues>;
|
|
20
20
|
options?: RegisterOptions;
|
|
21
21
|
fieldProps?: TFieldType;
|
|
22
22
|
}
|
|
@@ -25,24 +25,24 @@ export interface FormFieldDecoratorProps {
|
|
|
25
25
|
info?: string;
|
|
26
26
|
decoratorClassname?: string;
|
|
27
27
|
}
|
|
28
|
-
export declare type FormFieldProps<TFieldValues> = FormFieldInputProps
|
|
29
|
-
export interface FormFieldRowProps<TFieldValues> extends Record<keyof FormFieldGenericProps<never
|
|
28
|
+
export declare type FormFieldProps<TFieldValues> = FormFieldInputProps | FormFieldSelectProps | FormFieldImagePickerProps | FormFieldRadioGroupProps | FormFieldRowProps<TFieldValues>;
|
|
29
|
+
export interface FormFieldRowProps<TFieldValues> extends Record<keyof FormFieldGenericProps<never>, never> {
|
|
30
30
|
type: "row";
|
|
31
31
|
key: string;
|
|
32
32
|
fields: FormFieldProps<TFieldValues>[];
|
|
33
33
|
}
|
|
34
|
-
export interface FormFieldInputProps
|
|
34
|
+
export interface FormFieldInputProps extends FormFieldGenericProps<Omit<InputProps, "name">> {
|
|
35
35
|
type: AllowedTextInputTypes;
|
|
36
36
|
}
|
|
37
|
-
export interface FormFieldRadioGroupProps
|
|
37
|
+
export interface FormFieldRadioGroupProps extends FormFieldGenericProps<Omit<RadioGroupProps, "name">> {
|
|
38
38
|
type: "radioGroup";
|
|
39
39
|
}
|
|
40
|
-
export interface FormFieldSelectProps
|
|
40
|
+
export interface FormFieldSelectProps extends FormFieldGenericProps<SelectProps> {
|
|
41
41
|
type: "select";
|
|
42
42
|
fieldProps: SelectProps;
|
|
43
43
|
}
|
|
44
44
|
declare type ImagePickerFieldProps = Omit<ImagePickerProps, "name" | "handleChange"> & Partial<Pick<ImagePickerProps, "handleChange">>;
|
|
45
|
-
export interface FormFieldImagePickerProps
|
|
45
|
+
export interface FormFieldImagePickerProps extends FormFieldGenericProps<ImagePickerFieldProps> {
|
|
46
46
|
type: "imagePicker";
|
|
47
47
|
fieldProps: ImagePickerFieldProps;
|
|
48
48
|
}
|
|
@@ -58,6 +58,8 @@ export interface FormInputProps extends Omit<InputProps, "name">, FormFieldDecor
|
|
|
58
58
|
type: Extract<HTMLInputTypeAttribute, "email" | "number" | "password" | "text">;
|
|
59
59
|
}
|
|
60
60
|
export interface FormRadioGroupProps extends Omit<RadioGroupProps, "name">, FormFieldDecoratorWithGeneratedProps {
|
|
61
|
+
control: Control;
|
|
62
|
+
rules?: Exclude<RegisterOptions, "valueAsNumber" | "valueAsDate" | "setValueAs">;
|
|
61
63
|
}
|
|
62
64
|
export interface FormSelectProps extends Omit<SelectProps, "name">, FormFieldDecoratorWithGeneratedProps {
|
|
63
65
|
control: Control;
|
|
@@ -10,7 +10,7 @@ export declare const INPUT_TYPES: Record<string, AllowedTextInputTypes>;
|
|
|
10
10
|
declare type CustomHTMLInputProps = Omit<React.HTMLProps<HTMLInputElement>, "onChange" | "ref"> & {
|
|
11
11
|
isError?: boolean;
|
|
12
12
|
};
|
|
13
|
-
declare type FakeEventTarget = {
|
|
13
|
+
export declare type FakeEventTarget = {
|
|
14
14
|
target: {
|
|
15
15
|
value: string;
|
|
16
16
|
name: string;
|
|
@@ -27,7 +27,29 @@ export interface InputProps extends CustomHTMLInputProps {
|
|
|
27
27
|
withPrefix?: string;
|
|
28
28
|
withSuffix?: string;
|
|
29
29
|
icon?: React.VoidFunctionComponent<IconProps>;
|
|
30
|
-
|
|
30
|
+
/**
|
|
31
|
+
* Check the `asFormField` prop of this component to understand why this signature.
|
|
32
|
+
*/
|
|
33
|
+
onChange?: (event: FakeEventTarget | string) => void;
|
|
34
|
+
/**
|
|
35
|
+
* ### TO BE USED WHEN INSIDE REACT-HOOK-FORM
|
|
36
|
+
*
|
|
37
|
+
* react-hook-form uses the onChange event differently.
|
|
38
|
+
* Instead of passing an `event` object, it uses the value itself from the callback.
|
|
39
|
+
*
|
|
40
|
+
* So we need to use this flag to determine how to call the onChange callback.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
*
|
|
44
|
+
* // In react-hook-forms:
|
|
45
|
+
*
|
|
46
|
+
* onChange({target: { name: 'myInput' }, value: 'text'}) // -> this whole object will be set as the value
|
|
47
|
+
*
|
|
48
|
+
* // so instead do:
|
|
49
|
+
*
|
|
50
|
+
* onChange('text') // -> 🤝
|
|
51
|
+
*/
|
|
52
|
+
asFormField?: boolean;
|
|
31
53
|
}
|
|
32
54
|
declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
|
|
33
55
|
export default Input;
|
|
@@ -28,7 +28,7 @@ var draftToHtml = _interopDefault(require('draftjs-to-html'));
|
|
|
28
28
|
var htmlToDraft = _interopDefault(require('html-to-draftjs'));
|
|
29
29
|
require('react-draft-wysiwyg/dist/react-draft-wysiwyg.css');
|
|
30
30
|
var pick = _interopDefault(require('lodash/pick'));
|
|
31
|
-
var
|
|
31
|
+
var index_ie11 = require('react-hook-form/dist/index.ie11');
|
|
32
32
|
var errorMessage = require('@hookform/error-message');
|
|
33
33
|
var reactLazyLoadImageComponent = require('react-lazy-load-image-component');
|
|
34
34
|
|
|
@@ -1354,7 +1354,7 @@ var SearchIcon = function SearchIcon(props) {
|
|
|
1354
1354
|
var css_248z$5 = ".input::-ms-clear {\n display: none;\n}";
|
|
1355
1355
|
styleInject(css_248z$5);
|
|
1356
1356
|
|
|
1357
|
-
var _excluded$3 = ["withSuffix", "withPrefix", "className", "clearable", "type", "isDisabled", "icon", "name", "value", "onChange", "isError"];
|
|
1357
|
+
var _excluded$3 = ["withSuffix", "withPrefix", "className", "clearable", "type", "isDisabled", "icon", "name", "value", "onChange", "isError", "asFormField"];
|
|
1358
1358
|
// Don't know why yet but it can be fixed later.
|
|
1359
1359
|
|
|
1360
1360
|
var INPUT_TYPES = {
|
|
@@ -1381,6 +1381,7 @@ var Input = /*#__PURE__*/React__default.forwardRef(function (_ref, ref) {
|
|
|
1381
1381
|
value = _ref$value === void 0 ? "" : _ref$value,
|
|
1382
1382
|
onChange = _ref.onChange,
|
|
1383
1383
|
isError = _ref.isError,
|
|
1384
|
+
asFormField = _ref.asFormField,
|
|
1384
1385
|
otherProps = _objectWithoutPropertiesLoose(_ref, _excluded$3);
|
|
1385
1386
|
|
|
1386
1387
|
var hasNoExtraContent = withPrefix === "" && withSuffix === "";
|
|
@@ -1411,7 +1412,7 @@ var Input = /*#__PURE__*/React__default.forwardRef(function (_ref, ref) {
|
|
|
1411
1412
|
var handleChangeEvent = function handleChangeEvent(event) {
|
|
1412
1413
|
setInnerValue(event.currentTarget.value); // This allows backwards compatibility with our usages of the input
|
|
1413
1414
|
|
|
1414
|
-
onChange == null ? void 0 : onChange({
|
|
1415
|
+
onChange == null ? void 0 : onChange(asFormField ? event.currentTarget.value : {
|
|
1415
1416
|
target: {
|
|
1416
1417
|
name: name || "",
|
|
1417
1418
|
value: event.currentTarget.value
|
|
@@ -1691,7 +1692,7 @@ var AccordionList = function AccordionList(_ref) {
|
|
|
1691
1692
|
value: searchString,
|
|
1692
1693
|
placeholder: searchPlaceholder,
|
|
1693
1694
|
onChange: function onChange(e) {
|
|
1694
|
-
|
|
1695
|
+
setSearchString(typeof e === "string" ? e : e.currentTarget.value);
|
|
1695
1696
|
}
|
|
1696
1697
|
}), buttonProps && /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement(SecondaryButton, _extends({}, buttonProps)))), filteredAccordionItems.length ? /*#__PURE__*/React__default.createElement(Accordion, _extends({}, accordionProps, {
|
|
1697
1698
|
items: filteredAccordionItems
|
|
@@ -6222,27 +6223,29 @@ var FormInput = /*#__PURE__*/React__default.forwardRef(function (_ref, innerRef)
|
|
|
6222
6223
|
label: label,
|
|
6223
6224
|
info: info,
|
|
6224
6225
|
decoratorClassname: decoratorClassname
|
|
6225
|
-
}, /*#__PURE__*/React__default.createElement(
|
|
6226
|
+
}, /*#__PURE__*/React__default.createElement(index_ie11.Controller, {
|
|
6226
6227
|
name: name,
|
|
6227
6228
|
control: control,
|
|
6228
6229
|
rules: rules,
|
|
6229
|
-
render: function render(
|
|
6230
|
-
var field = _ref2.field;
|
|
6230
|
+
render: function render(field) {
|
|
6231
6231
|
return /*#__PURE__*/React__default.createElement(Input, _extends({}, fieldProps, field, {
|
|
6232
6232
|
isError: hasError(name, fieldErrors),
|
|
6233
|
+
asFormField: true,
|
|
6233
6234
|
ref: innerRef
|
|
6234
6235
|
}));
|
|
6235
6236
|
}
|
|
6236
6237
|
}));
|
|
6237
6238
|
});
|
|
6238
6239
|
|
|
6239
|
-
var _excluded$n = ["name", "fieldErrors", "fieldRequired", "label", "info", "decoratorClassname"];
|
|
6240
|
+
var _excluded$n = ["control", "name", "rules", "fieldErrors", "fieldRequired", "label", "info", "decoratorClassname"];
|
|
6240
6241
|
/**
|
|
6241
6242
|
* Radio Group that can be used in any react-hook-form context.
|
|
6242
6243
|
*/
|
|
6243
6244
|
|
|
6244
6245
|
var FormRadioGroup = /*#__PURE__*/React__default.forwardRef(function (_ref, innerRef) {
|
|
6245
|
-
var
|
|
6246
|
+
var control = _ref.control,
|
|
6247
|
+
name = _ref.name,
|
|
6248
|
+
rules = _ref.rules,
|
|
6246
6249
|
fieldErrors = _ref.fieldErrors,
|
|
6247
6250
|
fieldRequired = _ref.fieldRequired,
|
|
6248
6251
|
label = _ref.label,
|
|
@@ -6257,11 +6260,22 @@ var FormRadioGroup = /*#__PURE__*/React__default.forwardRef(function (_ref, inne
|
|
|
6257
6260
|
label: label,
|
|
6258
6261
|
info: info,
|
|
6259
6262
|
decoratorClassname: decoratorClassname
|
|
6260
|
-
}, /*#__PURE__*/React__default.createElement(
|
|
6261
|
-
|
|
6262
|
-
|
|
6263
|
-
|
|
6264
|
-
|
|
6263
|
+
}, /*#__PURE__*/React__default.createElement(index_ie11.Controller, {
|
|
6264
|
+
name: name,
|
|
6265
|
+
control: control,
|
|
6266
|
+
rules: rules,
|
|
6267
|
+
render: function render(_ref2) {
|
|
6268
|
+
var onChange = _ref2.onChange,
|
|
6269
|
+
value = _ref2.value;
|
|
6270
|
+
return /*#__PURE__*/React__default.createElement(RadioGroupV2, _extends({}, fieldProps, {
|
|
6271
|
+
isError: hasError(name, fieldErrors),
|
|
6272
|
+
ref: innerRef,
|
|
6273
|
+
name: name,
|
|
6274
|
+
onChange: onChange,
|
|
6275
|
+
defaultValue: value
|
|
6276
|
+
}));
|
|
6277
|
+
}
|
|
6278
|
+
}));
|
|
6265
6279
|
});
|
|
6266
6280
|
|
|
6267
6281
|
var _excluded$o = ["control", "name", "rules", "fieldErrors", "fieldRequired", "label", "info", "decoratorClassname"];
|
|
@@ -6284,12 +6298,11 @@ var FormSelect = /*#__PURE__*/React__default.forwardRef(function (_ref, innerRef
|
|
|
6284
6298
|
label: label,
|
|
6285
6299
|
info: info,
|
|
6286
6300
|
decoratorClassname: decoratorClassname
|
|
6287
|
-
}, /*#__PURE__*/React__default.createElement(
|
|
6301
|
+
}, /*#__PURE__*/React__default.createElement(index_ie11.Controller, {
|
|
6288
6302
|
name: name,
|
|
6289
6303
|
control: control,
|
|
6290
6304
|
rules: rules,
|
|
6291
|
-
render: function render(
|
|
6292
|
-
var field = _ref2.field;
|
|
6305
|
+
render: function render(field) {
|
|
6293
6306
|
return /*#__PURE__*/React__default.createElement(Select, _extends({}, selectProps, field, {
|
|
6294
6307
|
isError: hasError(name, fieldErrors),
|
|
6295
6308
|
ref: innerRef
|
|
@@ -6424,9 +6437,7 @@ var ImagePickerInner = function ImagePickerInner(_ref) {
|
|
|
6424
6437
|
}, [preselectedImage]);
|
|
6425
6438
|
|
|
6426
6439
|
var handleSearchChange = function handleSearchChange(event) {
|
|
6427
|
-
var
|
|
6428
|
-
|
|
6429
|
-
var searchQuery = (_event$target$value = event.target.value) != null ? _event$target$value : "";
|
|
6440
|
+
var searchQuery = event.target.value;
|
|
6430
6441
|
setSearch(searchQuery);
|
|
6431
6442
|
setFilteredCategories(categories.filter(function (category) {
|
|
6432
6443
|
return isSubstring(category.folder, searchQuery);
|
|
@@ -6645,14 +6656,13 @@ var FormImagePicker = /*#__PURE__*/React__default.forwardRef(function (_ref, inn
|
|
|
6645
6656
|
label: label,
|
|
6646
6657
|
info: info,
|
|
6647
6658
|
decoratorClassname: decoratorClassname
|
|
6648
|
-
}, /*#__PURE__*/React__default.createElement(
|
|
6659
|
+
}, /*#__PURE__*/React__default.createElement(index_ie11.Controller, {
|
|
6649
6660
|
name: name,
|
|
6650
6661
|
control: control,
|
|
6651
6662
|
rules: rules,
|
|
6652
|
-
render: function render(
|
|
6663
|
+
render: function render(field) {
|
|
6653
6664
|
var _field$value;
|
|
6654
6665
|
|
|
6655
|
-
var field = _ref2.field;
|
|
6656
6666
|
React.useEffect(function () {
|
|
6657
6667
|
if (fieldProps.preselectedImage && !field.value) {
|
|
6658
6668
|
field.onChange({
|
|
@@ -6665,7 +6675,8 @@ var FormImagePicker = /*#__PURE__*/React__default.forwardRef(function (_ref, inn
|
|
|
6665
6675
|
}, []);
|
|
6666
6676
|
return /*#__PURE__*/React__default.createElement(ImagePicker, _extends({}, fieldProps, field, {
|
|
6667
6677
|
handleChange: function handleChange(e) {
|
|
6668
|
-
|
|
6678
|
+
// On react-hook-forms v6, the onChange event wants the value only, not the event object.
|
|
6679
|
+
field.onChange(e.target.value);
|
|
6669
6680
|
fieldProps == null ? void 0 : fieldProps.handleChange == null ? void 0 : fieldProps.handleChange(e);
|
|
6670
6681
|
},
|
|
6671
6682
|
preselectedImage: (_field$value = field.value) != null ? _field$value : fieldProps.preselectedImage,
|
|
@@ -6689,7 +6700,7 @@ function GenericForm(_ref) {
|
|
|
6689
6700
|
onValid = _ref.onValid,
|
|
6690
6701
|
onError = _ref.onError,
|
|
6691
6702
|
defaultValues = _ref.defaultValues;
|
|
6692
|
-
var useFormReturn =
|
|
6703
|
+
var useFormReturn = index_ie11.useForm({
|
|
6693
6704
|
criteriaMode: "all",
|
|
6694
6705
|
defaultValues: defaultValues
|
|
6695
6706
|
});
|
|
@@ -6734,8 +6745,7 @@ function FormFieldMapper(formFieldProps, useFormReturn) {
|
|
|
6734
6745
|
_formFieldProps$field = formFieldProps.fieldProps,
|
|
6735
6746
|
fieldProps = _formFieldProps$field === void 0 ? {} : _formFieldProps$field;
|
|
6736
6747
|
var decoratorProps = pick(formFieldProps, ["label", "info", "decoratorClassname"]);
|
|
6737
|
-
var
|
|
6738
|
-
control = useFormReturn.control,
|
|
6748
|
+
var control = useFormReturn.control,
|
|
6739
6749
|
errors = useFormReturn.formState.errors;
|
|
6740
6750
|
|
|
6741
6751
|
switch (type) {
|
|
@@ -6789,12 +6799,18 @@ function FormFieldMapper(formFieldProps, useFormReturn) {
|
|
|
6789
6799
|
}));
|
|
6790
6800
|
|
|
6791
6801
|
case "radioGroup":
|
|
6792
|
-
|
|
6793
|
-
|
|
6794
|
-
|
|
6795
|
-
|
|
6796
|
-
|
|
6797
|
-
|
|
6802
|
+
{
|
|
6803
|
+
return /*#__PURE__*/React__default.createElement(FormRadioGroup, _extends({
|
|
6804
|
+
key: name
|
|
6805
|
+
}, decoratorProps, {
|
|
6806
|
+
fieldRequired: isRequired(options),
|
|
6807
|
+
fieldErrors: errors
|
|
6808
|
+
}, fieldProps, {
|
|
6809
|
+
name: name,
|
|
6810
|
+
rules: options,
|
|
6811
|
+
control: control
|
|
6812
|
+
}));
|
|
6813
|
+
}
|
|
6798
6814
|
|
|
6799
6815
|
default:
|
|
6800
6816
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null);
|