@uxf/form 11.66.0 → 11.67.0

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 (47) hide show
  1. package/avatar-file-input/avatar-file-input.js +2 -2
  2. package/checkbox-button/checkbox-button.js +2 -2
  3. package/checkbox-input/checkbox-input.js +2 -2
  4. package/checkbox-list/checkbox-list.js +2 -2
  5. package/color-radio-group/color-radio-group.js +2 -2
  6. package/combobox/combobox.js +4 -3
  7. package/components.d.ts +5 -0
  8. package/components.js +5 -0
  9. package/date-picker-input/date-picker-input.js +2 -2
  10. package/date-range-picker-input/date-range-picker-input.js +2 -2
  11. package/datetime-picker-input/datetime-picker-input.js +2 -2
  12. package/dropzone/dropzone-input.js +2 -2
  13. package/file-input/file-input.js +2 -2
  14. package/form-renderer/README.md +1 -0
  15. package/form-renderer/big-test-schema.d.ts +33 -0
  16. package/form-renderer/big-test-schema.js +295 -0
  17. package/form-renderer/field/base-field.d.ts +4 -0
  18. package/form-renderer/field/base-field.js +70 -0
  19. package/form-renderer/field/embedded.d.ts +4 -0
  20. package/form-renderer/field/embedded.js +19 -0
  21. package/form-renderer/field/one-to-many.d.ts +4 -0
  22. package/form-renderer/field/one-to-many.js +50 -0
  23. package/form-renderer/form-renderer.d.ts +16 -0
  24. package/form-renderer/form-renderer.js +26 -0
  25. package/form-renderer/form-renderer.stories.d.ts +2 -0
  26. package/form-renderer/form-renderer.stories.js +23 -0
  27. package/form-renderer/index.d.ts +2 -0
  28. package/form-renderer/index.js +18 -0
  29. package/form-renderer/mapper.d.ts +2 -0
  30. package/form-renderer/mapper.js +30 -0
  31. package/form-renderer/types.d.ts +39 -0
  32. package/form-renderer/types.js +2 -0
  33. package/gps-input/gps-input.js +2 -2
  34. package/money-input/money-input.js +2 -2
  35. package/multi-combobox/multi-combobox.js +4 -3
  36. package/multi-select/multi-select.js +2 -2
  37. package/number-input/number-input.js +5 -3
  38. package/package.json +2 -2
  39. package/password-input/password-input.js +3 -3
  40. package/radio-group/radio-group.js +2 -2
  41. package/readmes.d.ts +1 -0
  42. package/readmes.js +26 -24
  43. package/select/select.js +2 -2
  44. package/text-input/text-input.js +2 -2
  45. package/textarea/textarea.js +2 -2
  46. package/time-picker-input/time-picker-input.js +2 -2
  47. package/toggle/toggle.js +2 -2
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BaseField = BaseField;
7
+ const autocomplete_1 = require("@uxf/core/api/autocomplete");
8
+ const upload_file_1 = require("@uxf/core/api/upload-file");
9
+ const empty_array_1 = require("@uxf/core/constants/empty-array");
10
+ const checkbox_input_1 = require("@uxf/form/checkbox-input");
11
+ const combobox_1 = require("@uxf/form/combobox");
12
+ const date_picker_input_1 = require("@uxf/form/date-picker-input");
13
+ const datetime_picker_input_1 = require("@uxf/form/datetime-picker-input");
14
+ const dropzone_input_1 = require("@uxf/form/dropzone/dropzone-input");
15
+ const dropzone_list_1 = require("@uxf/form/dropzone/dropzone-list");
16
+ const file_input_1 = require("@uxf/form/file-input");
17
+ const multi_combobox_1 = require("@uxf/form/multi-combobox");
18
+ const number_input_1 = require("@uxf/form/number-input");
19
+ const select_1 = require("@uxf/form/select");
20
+ const text_input_1 = require("@uxf/form/text-input");
21
+ const textarea_1 = require("@uxf/form/textarea");
22
+ const time_picker_input_1 = require("@uxf/form/time-picker-input");
23
+ const label_1 = require("@uxf/ui/label");
24
+ const react_1 = __importDefault(require("react"));
25
+ const defaultUploadHandler = (0, upload_file_1.createUploadHandler)("default");
26
+ // eslint-disable-next-line complexity
27
+ function BaseField(props) {
28
+ var _a, _b, _c, _d, _e, _f, _g;
29
+ const { editable, label, name, readOnly, type } = props.fieldSchema;
30
+ const fieldName = `${(_a = props.prefix) !== null && _a !== void 0 ? _a : ""}${name}`;
31
+ const isDisabled = readOnly || (props.isEditing && !editable);
32
+ const isRequired = !isDisabled && props.fieldSchema.required;
33
+ const autocompleteHandler = (_c = (_b = props.overrides) === null || _b === void 0 ? void 0 : _b.autocomplete) !== null && _c !== void 0 ? _c : autocomplete_1.autocomplete;
34
+ const uploadHandler = (_e = (_d = props.overrides) === null || _d === void 0 ? void 0 : _d.upload) !== null && _e !== void 0 ? _e : defaultUploadHandler;
35
+ /*eslint complexity: ["error", 21]*/
36
+ switch (type) {
37
+ case "file":
38
+ case "logo":
39
+ case "image":
40
+ return (react_1.default.createElement(file_input_1.FileInput, { control: props.control, id: fieldName, isClearable: !isRequired, isDisabled: isDisabled, isRequired: isRequired, label: label, name: fieldName, onUploadFile: uploadHandler }));
41
+ case "enum":
42
+ return (react_1.default.createElement(select_1.Select, { control: props.control, isClearable: !isRequired, isDisabled: isDisabled, isRequired: isRequired, label: label, name: fieldName, options: (_f = props.fieldSchema.options) !== null && _f !== void 0 ? _f : empty_array_1.EMPTY_ARRAY }));
43
+ case "boolean":
44
+ return (react_1.default.createElement(checkbox_input_1.CheckboxInput, { control: props.control, isDisabled: isDisabled, isRequired: isRequired, label: label, name: fieldName }));
45
+ case "date":
46
+ return (react_1.default.createElement(date_picker_input_1.DatePickerInput, { control: props.control, isClearable: !isRequired, isDisabled: isDisabled, isRequired: isRequired, label: label, name: fieldName }));
47
+ case "datetime":
48
+ return (react_1.default.createElement(datetime_picker_input_1.DatetimePickerInput, { control: props.control, isClearable: !isRequired, isDisabled: isDisabled, isRequired: isRequired, label: label, name: fieldName }));
49
+ case "time":
50
+ return (react_1.default.createElement(time_picker_input_1.TimePickerInput, { control: props.control, isClearable: !isRequired, isDisabled: isDisabled, isRequired: isRequired, label: label, name: fieldName }));
51
+ case "files":
52
+ case "images":
53
+ return (react_1.default.createElement(react_1.default.Fragment, null,
54
+ react_1.default.createElement(label_1.Label, null, label),
55
+ react_1.default.createElement("div", { className: "mb-3" },
56
+ react_1.default.createElement(dropzone_input_1.DropzoneInput, { control: props.control, label: label, name: fieldName, onUploadFile: uploadHandler })),
57
+ react_1.default.createElement(dropzone_list_1.DropzoneList, { control: props.control, errorText: "Soubor se nepoda\u0159ilo nahr\u00E1t.", name: fieldName, onRemoveConfirm: (_g = props.overrides) === null || _g === void 0 ? void 0 : _g.onRemoveConfirm })));
58
+ case "manyToMany":
59
+ return (react_1.default.createElement(multi_combobox_1.MultiCombobox, { control: props.control, isDisabled: isDisabled, isRequired: isRequired, label: label, loadOptions: (term) => { var _a; return autocompleteHandler((_a = props.fieldSchema.autocomplete) !== null && _a !== void 0 ? _a : "", term); }, name: fieldName }));
60
+ case "manyToOne":
61
+ return (react_1.default.createElement(combobox_1.Combobox, { control: props.control, isClearable: !isRequired, isDisabled: isDisabled, isRequired: isRequired, label: label, loadOptions: (term) => { var _a; return autocompleteHandler((_a = props.fieldSchema.autocomplete) !== null && _a !== void 0 ? _a : "", term); }, name: fieldName }));
62
+ case "integer":
63
+ return (react_1.default.createElement(number_input_1.NumberInput, { control: props.control, isDisabled: isDisabled, isRequired: isRequired, label: label, name: fieldName }));
64
+ case "text":
65
+ return (react_1.default.createElement(textarea_1.Textarea, { control: props.control, isDisabled: isDisabled, isRequired: isRequired, label: label, name: fieldName }));
66
+ default:
67
+ return (react_1.default.createElement(text_input_1.TextInput, { control: props.control, isDisabled: isDisabled, isRequired: isRequired, label: label, name: fieldName }));
68
+ }
69
+ }
70
+ exports.default = BaseField;
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { FieldProps } from "../types";
3
+ declare function Field(props: FieldProps): React.JSX.Element | null;
4
+ export default Field;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = __importDefault(require("react"));
7
+ function Field(props) {
8
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
9
+ if (props.fieldSchema.fields === null) {
10
+ return null;
11
+ }
12
+ return (react_1.default.createElement("div", { className: "grid gap-2" }, props.fieldSchema.fields.map((schema, i) => {
13
+ var _a;
14
+ const FieldComponent = (_a = props.fields[schema.type]) !== null && _a !== void 0 ? _a : props.fields.default;
15
+ return (react_1.default.createElement("div", { key: i },
16
+ react_1.default.createElement(FieldComponent, { ...props, fieldSchema: { ...schema, label: `${props.fieldSchema.label} ${schema.label}` }, prefix: `${props.fieldSchema.name}.` })));
17
+ })));
18
+ }
19
+ exports.default = Field;
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { FieldProps } from "../types";
3
+ declare function Field(props: FieldProps): React.JSX.Element;
4
+ export default Field;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const icon_button_1 = require("@uxf/ui/icon-button");
27
+ const react_1 = __importStar(require("react"));
28
+ const react_hook_form_1 = require("react-hook-form");
29
+ function Field(props) {
30
+ const { fields, remove, append } = (0, react_hook_form_1.useFieldArray)({ control: props.control, name: props.fieldSchema.name });
31
+ return (react_1.default.createElement(react_1.default.Fragment, null,
32
+ react_1.default.createElement("p", { className: "mb-2 font-medium" }, props.fieldSchema.label),
33
+ react_1.default.createElement("div", { className: "grid gap-2" }, fields.map((name, index) => (react_1.default.createElement(react_1.Fragment, { key: name.id },
34
+ props.fieldSchema.fields.map((schema, i) => {
35
+ var _a;
36
+ if (schema.name === "id") {
37
+ return react_1.default.createElement("input", { key: `${schema.name}-${i}`, name: "id", type: "hidden" });
38
+ }
39
+ const FieldComponent = (_a = props.fields[schema.type]) !== null && _a !== void 0 ? _a : props.fields.default;
40
+ return (react_1.default.createElement("div", { key: `${schema.name}-${i}` },
41
+ react_1.default.createElement(FieldComponent, { ...props, fieldSchema: schema, prefix: props.prefix
42
+ ? `${props.prefix}.${props.fieldSchema.name}.${index}.`
43
+ : `${props.fieldSchema.name}.${index}.` })));
44
+ }),
45
+ react_1.default.createElement("div", { className: "flex justify-end" },
46
+ react_1.default.createElement(icon_button_1.IconButton, { iconName: "trash", label: "Smazat polo\u017Eku", onClick: () => remove(index), variant: "secondary" })))))),
47
+ react_1.default.createElement("div", { className: "mt-2" },
48
+ react_1.default.createElement(icon_button_1.IconButton, { iconName: "plus", label: "P\u0159idat polo\u017Eku", onClick: () => append({ id: null }), variant: "secondary" }))));
49
+ }
50
+ exports.default = Field;
@@ -0,0 +1,16 @@
1
+ import { FormProps as UXFFormProps } from "@uxf/form/form";
2
+ import React, { FunctionComponent } from "react";
3
+ import { FieldValues, FormState } from "react-hook-form";
4
+ import { FormRendererFields, FormSchema } from "./types";
5
+ type SubmitButtonComponent<TFieldValues extends FieldValues = FieldValues> = FunctionComponent<{
6
+ formState: FormState<TFieldValues>;
7
+ }>;
8
+ interface FormRendererProps<T extends FieldValues> extends Omit<UXFFormProps<T>, "children"> {
9
+ className?: string;
10
+ schema: FormSchema;
11
+ fields: FormRendererFields;
12
+ isEditing?: boolean;
13
+ SubmitButton?: SubmitButtonComponent<T>;
14
+ }
15
+ export declare function FormRenderer<T extends FieldValues>(props: FormRendererProps<T>): React.JSX.Element;
16
+ export {};
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.FormRenderer = FormRenderer;
7
+ const form_1 = require("@uxf/form/form");
8
+ const button_1 = require("@uxf/ui/button");
9
+ const react_1 = __importDefault(require("react"));
10
+ const BaseSubmitButton = (props) => {
11
+ const { isSubmitting } = props.formState;
12
+ return (react_1.default.createElement(button_1.Button, { isDisabled: isSubmitting, type: "submit" }, "Ulo\u017Eit"));
13
+ };
14
+ function FormRenderer(props) {
15
+ var _a;
16
+ const SubmitButton = (_a = props.SubmitButton) !== null && _a !== void 0 ? _a : BaseSubmitButton;
17
+ return (react_1.default.createElement(form_1.Form, { className: "uxf-form-renderer", formApi: props.formApi, id: props.id, onSubmit: props.onSubmit },
18
+ react_1.default.createElement("div", { className: "uxf-form-renderer__body" }, props.schema.fields.map((field, i) => {
19
+ var _a;
20
+ const Field = (_a = props.fields[field.type]) !== null && _a !== void 0 ? _a : props.fields.default;
21
+ return (react_1.default.createElement("div", { className: "p-4", key: i },
22
+ react_1.default.createElement(Field, { control: props.formApi.control, fieldSchema: field, fields: props.fields, isEditing: props.isEditing })));
23
+ })),
24
+ react_1.default.createElement("div", { className: "uxf-form-renderer__footer" },
25
+ react_1.default.createElement(SubmitButton, { formState: props.formApi.formState }))));
26
+ }
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare function Example(): React.JSX.Element;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ "use client";
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.Example = Example;
8
+ const react_1 = __importDefault(require("react"));
9
+ const react_hook_form_1 = require("react-hook-form");
10
+ const big_test_schema_1 = require("./big-test-schema");
11
+ const base_field_1 = __importDefault(require("./field/base-field"));
12
+ const embedded_1 = __importDefault(require("./field/embedded"));
13
+ const one_to_many_1 = __importDefault(require("./field/one-to-many"));
14
+ const form_renderer_1 = require("./form-renderer");
15
+ const fields = {
16
+ default: base_field_1.default,
17
+ embedded: embedded_1.default,
18
+ oneToMany: one_to_many_1.default,
19
+ };
20
+ function Example() {
21
+ const formApi = (0, react_hook_form_1.useForm)({ defaultValues: {} });
22
+ return react_1.default.createElement(form_renderer_1.FormRenderer, { fields: fields, formApi: formApi, id: "example-form", onSubmit: console.log, schema: big_test_schema_1.schema });
23
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./form-renderer";
2
+ export * from "./types";
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./form-renderer"), exports);
18
+ __exportStar(require("./types"), exports);
@@ -0,0 +1,2 @@
1
+ import { FormSchema } from "./types";
2
+ export declare const mapToRequestObject: (values: any, schema: FormSchema) => any;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mapToRequestObject = void 0;
4
+ const empty_array_1 = require("@uxf/core/constants/empty-array");
5
+ const mapToRequestObject = (values, schema) => {
6
+ var _a, _b;
7
+ const requestObject = { ...values };
8
+ for (const field of schema.fields) {
9
+ const { name, type } = field;
10
+ const value = requestObject[name];
11
+ switch (type) {
12
+ case "boolean":
13
+ requestObject[name] = Boolean(value);
14
+ break;
15
+ case "file":
16
+ case "image":
17
+ requestObject[name] = value ? value.id : value;
18
+ break;
19
+ case "content":
20
+ // TODO search string
21
+ requestObject[name] = value ? { data: (_a = value.data) !== null && _a !== void 0 ? _a : empty_array_1.EMPTY_ARRAY, search: (_b = value.search) !== null && _b !== void 0 ? _b : "" } : null;
22
+ break;
23
+ case "embedded":
24
+ requestObject[name] = (0, exports.mapToRequestObject)(value, field);
25
+ break;
26
+ }
27
+ }
28
+ return requestObject;
29
+ };
30
+ exports.mapToRequestObject = mapToRequestObject;
@@ -0,0 +1,39 @@
1
+ import { Autocomplete } from "@uxf/core/api/autocomplete";
2
+ import { OnUploadFileHandler } from "@uxf/core/types";
3
+ import { DropzoneFile } from "@uxf/ui/dropzone/types";
4
+ import { FunctionComponent } from "react";
5
+ import { Control } from "react-hook-form";
6
+ export interface FieldSchema {
7
+ autocomplete: string | null;
8
+ name: string;
9
+ type: string;
10
+ label: string;
11
+ required: boolean;
12
+ readOnly: boolean;
13
+ editable: boolean;
14
+ fields: FieldSchema[];
15
+ options: Array<{
16
+ id: string | number;
17
+ label: string;
18
+ }> | null;
19
+ }
20
+ export interface FormSchema {
21
+ fields: FieldSchema[];
22
+ }
23
+ export interface FieldProps {
24
+ fieldSchema: FieldSchema;
25
+ fields: FormRendererFields;
26
+ isEditing?: boolean;
27
+ prefix?: string;
28
+ control: Control<any>;
29
+ overrides?: {
30
+ autocomplete?: Autocomplete;
31
+ upload?: OnUploadFileHandler;
32
+ onRemoveConfirm?: (file: DropzoneFile) => Promise<boolean>;
33
+ };
34
+ }
35
+ export type FieldComponent = FunctionComponent<FieldProps>;
36
+ export type FormRendererFields = {
37
+ [type: string]: FieldComponent;
38
+ default: FieldComponent;
39
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -88,7 +88,7 @@ const SUPPORTED_FORMATS_TOOLTIP = (react_1.default.createElement("span", { class
88
88
  const EMPTY_HELPER_TEXT = "Zadejte souřadnice.";
89
89
  const NOT_VALID_HELPER_TEXT = "Souřadnice nejsou validní";
90
90
  function GpsInput(props) {
91
- var _a, _b, _c, _d;
91
+ var _a, _b;
92
92
  const formContext = (0, form_context_1.useFormContext)();
93
93
  const id = (_a = props.id) !== null && _a !== void 0 ? _a : `${formContext.formId}__${props.name}`;
94
94
  const [visualValue, setVisualValue] = (0, react_1.useState)("");
@@ -149,6 +149,6 @@ function GpsInput(props) {
149
149
  : EMPTY_HELPER_TEXT,
150
150
  " ",
151
151
  SUPPORTED_FORMATS_TOOLTIP));
152
- return (react_1.default.createElement(text_input_1.TextInput, { autoComplete: props.autoComplete, autoFocus: props.autoFocus, className: props.className, enterKeyHint: props.enterKeyHint, form: props.form, helperText: composedHelperText, hiddenLabel: props.hiddenLabel, id: id, inputMode: props.inputMode, isDisabled: (_c = props.isDisabled) !== null && _c !== void 0 ? _c : formContext.isFormDisabled, isInvalid: ((0, is_not_nil_1.isNotNil)(fieldState.error) && !field.value) || coordsFormatError, isReadOnly: (_d = props.isReadOnly) !== null && _d !== void 0 ? _d : formContext.isFormReadOnly, isRequired: props.isRequired, label: props.label, leftAddon: props.leftAddon, leftElement: props.leftElement, maxLength: props.maxLength, minLength: props.minLength, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, onKeyDown: props.onKeyDown, placeholder: props.placeholder, ref: field.ref, rightAddon: props.rightAddon, rightElement: props.rightElement, size: props.size, style: props.style, type: "text", value: visualValue, variant: props.variant }));
152
+ return (react_1.default.createElement(text_input_1.TextInput, { autoComplete: props.autoComplete, autoFocus: props.autoFocus, className: props.className, enterKeyHint: props.enterKeyHint, form: props.form, helperText: composedHelperText, hiddenLabel: props.hiddenLabel, id: id, inputMode: props.inputMode, isDisabled: formContext.isFormDisabled || props.isDisabled, isInvalid: ((0, is_not_nil_1.isNotNil)(fieldState.error) && !field.value) || coordsFormatError, isReadOnly: formContext.isFormReadOnly || props.isReadOnly, isRequired: props.isRequired, label: props.label, leftAddon: props.leftAddon, leftElement: props.leftElement, maxLength: props.maxLength, minLength: props.minLength, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, onKeyDown: props.onKeyDown, placeholder: props.placeholder, ref: field.ref, rightAddon: props.rightAddon, rightElement: props.rightElement, size: props.size, style: props.style, type: "text", value: visualValue, variant: props.variant }));
153
153
  }
154
154
  GpsInput.displayName = "UxfFormGpsInput";
@@ -38,7 +38,7 @@ const CONTROL_KEYS = ["v", "V", "c", "C", "x", "X", "a", "A"];
38
38
  // Allow digits and decimal point (.,)
39
39
  const ALLOWED_KEYS = /[0-9+\-.,]/;
40
40
  function MoneyInput(props) {
41
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
41
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
42
42
  const formContext = (0, form_context_1.useFormContext)();
43
43
  const id = (_a = props.id) !== null && _a !== void 0 ? _a : `${formContext.formId}__${props.name}`;
44
44
  const { field, fieldState } = (0, react_hook_form_1.useController)({
@@ -77,6 +77,6 @@ function MoneyInput(props) {
77
77
  field.onChange(newValue);
78
78
  (_c = props.onChange) === null || _c === void 0 ? void 0 : _c.call(props, newValue, event);
79
79
  };
80
- return (react_1.default.createElement(text_input_1.TextInput, { className: "uxf-money-input uxf-input--no-spin-buttons", helperText: (_e = fieldState.error) === null || _e === void 0 ? void 0 : _e.message, id: id, inputMode: "decimal", isDisabled: (_f = props.isDisabled) !== null && _f !== void 0 ? _f : formContext.isFormDisabled, isInvalid: Boolean(fieldState.error), isReadOnly: (_g = props.isReadOnly) !== null && _g !== void 0 ? _g : formContext.isFormReadOnly, isRequired: props.isRequired, label: props.label, name: field.name, onChange: changeHandler, onKeyDown: keyDownHandler, ref: field.ref, rightElement: currencies_1.currencies[(_j = (_h = field.value) === null || _h === void 0 ? void 0 : _h.currency) !== null && _j !== void 0 ? _j : lastCurrency].symbol, step: 2, type: "number", value: (_l = (_k = field.value) === null || _k === void 0 ? void 0 : _k.amount) !== null && _l !== void 0 ? _l : "" }));
80
+ return (react_1.default.createElement(text_input_1.TextInput, { className: "uxf-money-input uxf-input--no-spin-buttons", helperText: (_e = fieldState.error) === null || _e === void 0 ? void 0 : _e.message, id: id, inputMode: "decimal", isDisabled: formContext.isFormDisabled || props.isDisabled, isInvalid: Boolean(fieldState.error), isReadOnly: formContext.isFormReadOnly || props.isReadOnly, isRequired: props.isRequired, label: props.label, name: field.name, onChange: changeHandler, onKeyDown: keyDownHandler, ref: field.ref, rightElement: currencies_1.currencies[(_g = (_f = field.value) === null || _f === void 0 ? void 0 : _f.currency) !== null && _g !== void 0 ? _g : lastCurrency].symbol, step: 2, type: "number", value: (_j = (_h = field.value) === null || _h === void 0 ? void 0 : _h.amount) !== null && _j !== void 0 ? _j : "" }));
81
81
  }
82
82
  MoneyInput.displayName = "UxfFormMoneyInput";
@@ -14,7 +14,7 @@ const react_1 = __importDefault(require("react"));
14
14
  const react_hook_form_1 = require("react-hook-form");
15
15
  const form_context_1 = require("../form-id-context/form-context");
16
16
  function MultiCombobox(props) {
17
- var _a, _b, _c, _d, _e, _f;
17
+ var _a, _b, _c, _d;
18
18
  const formContext = (0, form_context_1.useFormContext)();
19
19
  const id = (_a = props.id) !== null && _a !== void 0 ? _a : `${formContext.formId}__${props.name}`;
20
20
  const { field, fieldState } = (0, react_hook_form_1.useController)({
@@ -37,7 +37,8 @@ function MultiCombobox(props) {
37
37
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
38
38
  };
39
39
  const isDisabled = ((0, is_nil_1.isNil)(props.loadOptions) && (0, is_empty_1.isEmpty)((_b = props.options) !== null && _b !== void 0 ? _b : empty_array_1.EMPTY_ARRAY)) ||
40
- ((_c = props.isDisabled) !== null && _c !== void 0 ? _c : formContext.isFormDisabled);
41
- return (react_1.default.createElement(multi_combobox_1.MultiCombobox, { allOptionsSelectedMessage: props.allOptionsSelectedMessage, className: props.className, dropdownClassName: props.dropdownClassName, dropdownMatchesInputWidth: props.dropdownMatchesInputWidth, dropdownMaxHeight: props.dropdownMaxHeight, dropdownPlacement: props.dropdownPlacement, dropdownStrategy: props.dropdownStrategy, form: props.form, helperText: (_e = (_d = fieldState.error) === null || _d === void 0 ? void 0 : _d.message) !== null && _e !== void 0 ? _e : props.helperText, hiddenLabel: props.hiddenLabel, iconName: props.iconName, id: id, inputArrow: props.inputArrow, isDisabled: isDisabled, isInvalid: (0, is_not_nil_1.isNotNil)(fieldState.error), isReadOnly: (_f = props.isReadOnly) !== null && _f !== void 0 ? _f : formContext.isFormReadOnly, isRequired: props.isRequired, label: props.label, leftAddon: props.leftAddon, leftElement: props.leftElement, loadOptions: props.loadOptions, name: field.name, noOptionsMessage: props.noOptionsMessage, noQueryMessage: props.noQueryMessage, notFoundMessage: props.notFoundMessage, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, options: props.options, placeholder: props.placeholder, ref: field.ref, renderOption: props.renderOption, rightAddon: props.rightAddon, rightElement: props.rightElement, size: props.size, style: props.style, value: field.value, variant: props.variant, withCheckboxes: props.withCheckboxes }));
40
+ formContext.isFormDisabled ||
41
+ props.isDisabled;
42
+ return (react_1.default.createElement(multi_combobox_1.MultiCombobox, { allOptionsSelectedMessage: props.allOptionsSelectedMessage, className: props.className, dropdownClassName: props.dropdownClassName, dropdownMatchesInputWidth: props.dropdownMatchesInputWidth, dropdownMaxHeight: props.dropdownMaxHeight, dropdownPlacement: props.dropdownPlacement, dropdownStrategy: props.dropdownStrategy, form: props.form, helperText: (_d = (_c = fieldState.error) === null || _c === void 0 ? void 0 : _c.message) !== null && _d !== void 0 ? _d : props.helperText, hiddenLabel: props.hiddenLabel, iconName: props.iconName, id: id, inputArrow: props.inputArrow, isDisabled: isDisabled, isInvalid: (0, is_not_nil_1.isNotNil)(fieldState.error), isReadOnly: formContext.isFormReadOnly || props.isReadOnly, isRequired: props.isRequired, label: props.label, leftAddon: props.leftAddon, leftElement: props.leftElement, loadOptions: props.loadOptions, name: field.name, noOptionsMessage: props.noOptionsMessage, noQueryMessage: props.noQueryMessage, notFoundMessage: props.notFoundMessage, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, options: props.options, placeholder: props.placeholder, ref: field.ref, renderOption: props.renderOption, rightAddon: props.rightAddon, rightElement: props.rightElement, size: props.size, style: props.style, value: field.value, variant: props.variant, withCheckboxes: props.withCheckboxes }));
42
43
  }
43
44
  MultiCombobox.displayName = "UxfFormMultiCombobox";
@@ -12,7 +12,7 @@ const react_1 = __importDefault(require("react"));
12
12
  const react_hook_form_1 = require("react-hook-form");
13
13
  const form_context_1 = require("../form-id-context/form-context");
14
14
  function MultiSelect(props) {
15
- var _a, _b, _c, _d, _e;
15
+ var _a, _b, _c;
16
16
  const formContext = (0, form_context_1.useFormContext)();
17
17
  const id = (_a = props.id) !== null && _a !== void 0 ? _a : `${formContext.formId}__${props.name}`;
18
18
  const { field, fieldState } = (0, react_hook_form_1.useController)({
@@ -34,6 +34,6 @@ function MultiSelect(props) {
34
34
  field.onChange(value);
35
35
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
36
36
  };
37
- return (react_1.default.createElement(multi_select_1.MultiSelect, { allOptionsSelectedMessage: props.allOptionsSelectedMessage, className: props.className, dropdownClassName: props.dropdownClassName, dropdownMatchesInputWidth: props.dropdownMatchesInputWidth, dropdownMaxHeight: props.dropdownMaxHeight, dropdownPlacement: props.dropdownPlacement, dropdownStrategy: props.dropdownStrategy, form: props.form, helperText: (_c = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : props.helperText, hiddenLabel: props.hiddenLabel, iconName: props.iconName, id: id, inputArrow: props.inputArrow, isDisabled: (0, is_empty_1.isEmpty)(props.options) || ((_d = props.isDisabled) !== null && _d !== void 0 ? _d : formContext.isFormDisabled), isInvalid: (0, is_not_nil_1.isNotNil)(fieldState.error), isReadOnly: (_e = props.isReadOnly) !== null && _e !== void 0 ? _e : formContext.isFormReadOnly, isRequired: props.isRequired, label: props.label, leftAddon: props.leftAddon, leftElement: props.leftElement, name: field.name, noOptionsMessage: props.noOptionsMessage, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, options: props.options, placeholder: props.placeholder, ref: field.ref, renderOption: props.renderOption, rightAddon: props.rightAddon, rightElement: props.rightElement, size: props.size, style: props.style, value: field.value, variant: props.variant, withCheckboxes: props.withCheckboxes }));
37
+ return (react_1.default.createElement(multi_select_1.MultiSelect, { allOptionsSelectedMessage: props.allOptionsSelectedMessage, className: props.className, dropdownClassName: props.dropdownClassName, dropdownMatchesInputWidth: props.dropdownMatchesInputWidth, dropdownMaxHeight: props.dropdownMaxHeight, dropdownPlacement: props.dropdownPlacement, dropdownStrategy: props.dropdownStrategy, form: props.form, helperText: (_c = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : props.helperText, hiddenLabel: props.hiddenLabel, iconName: props.iconName, id: id, inputArrow: props.inputArrow, isDisabled: (0, is_empty_1.isEmpty)(props.options) || formContext.isFormDisabled || props.isDisabled, isInvalid: (0, is_not_nil_1.isNotNil)(fieldState.error), isReadOnly: formContext.isFormReadOnly || props.isReadOnly, isRequired: props.isRequired, label: props.label, leftAddon: props.leftAddon, leftElement: props.leftElement, name: field.name, noOptionsMessage: props.noOptionsMessage, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, options: props.options, placeholder: props.placeholder, ref: field.ref, renderOption: props.renderOption, rightAddon: props.rightAddon, rightElement: props.rightElement, size: props.size, style: props.style, value: field.value, variant: props.variant, withCheckboxes: props.withCheckboxes }));
38
38
  }
39
39
  MultiSelect.displayName = "UxfFormMultiSelect";
@@ -11,7 +11,7 @@ const react_1 = __importDefault(require("react"));
11
11
  const react_hook_form_1 = require("react-hook-form");
12
12
  const form_context_1 = require("../form-id-context/form-context");
13
13
  function NumberInput(props) {
14
- var _a, _b, _c, _d, _e, _f, _g, _h;
14
+ var _a, _b, _c, _d, _e, _f;
15
15
  const formContext = (0, form_context_1.useFormContext)();
16
16
  const id = (_a = props.id) !== null && _a !== void 0 ? _a : `${formContext.formId}__${props.name}`;
17
17
  const { field, fieldState } = (0, react_hook_form_1.useController)({
@@ -60,11 +60,13 @@ function NumberInput(props) {
60
60
  };
61
61
  const onChange = (value, event) => {
62
62
  var _a;
63
- const parsedValue = props.decimalPlaces ? parseFloat(value) : parseInt(value, 10);
63
+ const parsedValue = props.decimalPlaces
64
+ ? parseFloat(value.replace(" ", ""))
65
+ : parseInt(value.replace(" ", ""), 10);
64
66
  const returnValue = isNaN(parsedValue) ? null : parsedValue;
65
67
  field.onChange(returnValue);
66
68
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, returnValue, event);
67
69
  };
68
- return (react_1.default.createElement(text_input_1.TextInput, { autoComplete: props.autoComplete, autoFocus: props.autoFocus, className: props.className, enterKeyHint: props.enterKeyHint, form: props.form, helperText: (_e = (_d = fieldState.error) === null || _d === void 0 ? void 0 : _d.message) !== null && _e !== void 0 ? _e : props.helperText, hiddenLabel: props.hiddenLabel, id: id, inputMode: props.decimalPlaces ? "decimal" : "numeric", isDisabled: (_f = props.isDisabled) !== null && _f !== void 0 ? _f : formContext.isFormDisabled, isInvalid: (0, is_not_nil_1.isNotNil)(fieldState.error), isReadOnly: (_g = props.isReadOnly) !== null && _g !== void 0 ? _g : formContext.isFormReadOnly, isRequired: props.isRequired, label: props.label, leftAddon: props.leftAddon, leftElement: props.leftElement, max: props.max, min: props.min, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, onKeyDown: onKeyDown, pattern: props.pattern, placeholder: props.placeholder, ref: field.ref, rightAddon: props.rightAddon, rightElement: props.rightElement, size: props.size, step: props.decimalPlaces ? Number(0).toFixed(props.decimalPlaces - 1) + "1" : props.step, style: props.style, type: "number", value: (_h = field.value) !== null && _h !== void 0 ? _h : "", variant: props.variant }));
70
+ return (react_1.default.createElement(text_input_1.TextInput, { autoComplete: props.autoComplete, autoFocus: props.autoFocus, className: props.className, enterKeyHint: props.enterKeyHint, form: props.form, helperText: (_e = (_d = fieldState.error) === null || _d === void 0 ? void 0 : _d.message) !== null && _e !== void 0 ? _e : props.helperText, hiddenLabel: props.hiddenLabel, id: id, inputMode: props.decimalPlaces ? "decimal" : "numeric", isDisabled: formContext.isFormDisabled || props.isDisabled, isInvalid: (0, is_not_nil_1.isNotNil)(fieldState.error), isReadOnly: formContext.isFormReadOnly || props.isReadOnly, isRequired: props.isRequired, label: props.label, leftAddon: props.leftAddon, leftElement: props.leftElement, max: props.max, min: props.min, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, onKeyDown: onKeyDown, pattern: props.pattern, placeholder: props.placeholder, ref: field.ref, rightAddon: props.rightAddon, rightElement: props.rightElement, size: props.size, step: props.decimalPlaces ? Number(0).toFixed(props.decimalPlaces - 1) + "1" : props.step, style: props.style, type: "number", value: (_f = field.value) !== null && _f !== void 0 ? _f : "", variant: props.variant }));
69
71
  }
70
72
  NumberInput.displayName = "UxfFormNumberInput";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uxf/form",
3
- "version": "11.66.0",
3
+ "version": "11.67.0",
4
4
  "description": "",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -15,7 +15,7 @@
15
15
  },
16
16
  "license": "MIT",
17
17
  "dependencies": {
18
- "@uxf/ui": "11.66.0",
18
+ "@uxf/ui": "11.67.0",
19
19
  "coordinate-parser": "1.0.7",
20
20
  "dayjs": "1.11.13",
21
21
  "react-hook-form": "7.53.0"
@@ -57,7 +57,7 @@ function usePasswordVisibility() {
57
57
  return { isVisible, inputRef, onToggle: visibilityChangeHandler };
58
58
  }
59
59
  function PasswordInput(props) {
60
- var _a, _b, _c, _d, _e, _f, _g, _h;
60
+ var _a, _b, _c, _d, _e, _f;
61
61
  const formContext = (0, form_context_1.useFormContext)();
62
62
  const id = (_a = props.id) !== null && _a !== void 0 ? _a : `${formContext.formId}__${props.name}`;
63
63
  const { field, fieldState } = (0, react_hook_form_1.useController)({
@@ -88,7 +88,7 @@ function PasswordInput(props) {
88
88
  field.onChange(value);
89
89
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
90
90
  };
91
- return (react_1.default.createElement(text_input_1.TextInput, { autoComplete: props.autoComplete, autoFocus: props.autoFocus, className: props.className, enterKeyHint: props.enterKeyHint, form: props.form, helperText: (_c = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : props.helperText, hiddenLabel: props.hiddenLabel, id: id, inputMode: props.inputMode, isDisabled: (_d = props.isDisabled) !== null && _d !== void 0 ? _d : formContext.isFormDisabled, isInvalid: (0, is_not_nil_1.isNotNil)(fieldState.error), isReadOnly: (_e = props.isReadOnly) !== null && _e !== void 0 ? _e : formContext.isFormReadOnly, isRequired: props.isRequired, label: props.label, leftAddon: props.leftAddon, leftElement: props.leftElement, maxLength: props.maxLength, minLength: props.minLength, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, onKeyDown: props.onKeyDown, pattern: props.pattern, placeholder: props.placeholder, ref: inputRef, rightAddon: props.rightAddon, rightElement: (_g = (_f = props.renderVisibilitySetter) === null || _f === void 0 ? void 0 : _f.call(props, passwordVisibility.isVisible, passwordVisibility.onToggle)) !== null && _g !== void 0 ? _g : (react_1.default.createElement(button_1.Button, { onClick: passwordVisibility.onToggle, size: "sm", variant: "text" },
92
- react_1.default.createElement(icon_1.Icon, { name: passwordVisibility.isVisible ? "eye-slash" : "eye", size: 20 }))), size: props.size, style: props.style, type: passwordVisibility.isVisible ? "text" : "password", value: (_h = field.value) !== null && _h !== void 0 ? _h : "", variant: props.variant }));
91
+ return (react_1.default.createElement(text_input_1.TextInput, { autoComplete: props.autoComplete, autoFocus: props.autoFocus, className: props.className, enterKeyHint: props.enterKeyHint, form: props.form, helperText: (_c = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : props.helperText, hiddenLabel: props.hiddenLabel, id: id, inputMode: props.inputMode, isDisabled: formContext.isFormDisabled || props.isDisabled, isInvalid: (0, is_not_nil_1.isNotNil)(fieldState.error), isReadOnly: formContext.isFormReadOnly || props.isReadOnly, isRequired: props.isRequired, label: props.label, leftAddon: props.leftAddon, leftElement: props.leftElement, maxLength: props.maxLength, minLength: props.minLength, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, onKeyDown: props.onKeyDown, pattern: props.pattern, placeholder: props.placeholder, ref: inputRef, rightAddon: props.rightAddon, rightElement: (_e = (_d = props.renderVisibilitySetter) === null || _d === void 0 ? void 0 : _d.call(props, passwordVisibility.isVisible, passwordVisibility.onToggle)) !== null && _e !== void 0 ? _e : (react_1.default.createElement(button_1.Button, { onClick: passwordVisibility.onToggle, size: "sm", variant: "text" },
92
+ react_1.default.createElement(icon_1.Icon, { name: passwordVisibility.isVisible ? "eye-slash" : "eye", size: 20 }))), size: props.size, style: props.style, type: passwordVisibility.isVisible ? "text" : "password", value: (_f = field.value) !== null && _f !== void 0 ? _f : "", variant: props.variant }));
93
93
  }
94
94
  PasswordInput.displayName = "UxfFormPasswordInput";
@@ -11,7 +11,7 @@ const react_1 = __importDefault(require("react"));
11
11
  const react_hook_form_1 = require("react-hook-form");
12
12
  const form_context_1 = require("../form-id-context/form-context");
13
13
  function RadioGroup(props) {
14
- var _a, _b, _c, _d, _e, _f;
14
+ var _a, _b, _c, _d;
15
15
  const formContext = (0, form_context_1.useFormContext)();
16
16
  const id = (_a = props.id) !== null && _a !== void 0 ? _a : `${formContext.formId}__${props.name}`;
17
17
  const { field, fieldState } = (0, react_hook_form_1.useController)({
@@ -33,6 +33,6 @@ function RadioGroup(props) {
33
33
  field.onChange(value);
34
34
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
35
35
  };
36
- return (react_1.default.createElement(radio_group_1.RadioGroup, { className: props.className, forceColumn: props.forceColumn, helperText: (_c = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : props.helperText, hiddenLabel: props.hiddenLabel, id: id, isDisabled: props.options.length === 0 || ((_d = props.isDisabled) !== null && _d !== void 0 ? _d : formContext.isFormDisabled), isInvalid: (0, is_not_nil_1.isNotNil)(fieldState.error), isReadOnly: (_e = props.isReadOnly) !== null && _e !== void 0 ? _e : formContext.isFormReadOnly, isRequired: props.isRequired, label: props.label, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, options: props.options, radioSize: props.radioSize, ref: field.ref, style: props.style, value: (_f = field.value) !== null && _f !== void 0 ? _f : null, variant: props.variant }));
36
+ return (react_1.default.createElement(radio_group_1.RadioGroup, { className: props.className, forceColumn: props.forceColumn, helperText: (_c = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : props.helperText, hiddenLabel: props.hiddenLabel, id: id, isDisabled: props.options.length === 0 || formContext.isFormDisabled || props.isDisabled, isInvalid: (0, is_not_nil_1.isNotNil)(fieldState.error), isReadOnly: formContext.isFormReadOnly || props.isReadOnly, isRequired: props.isRequired, label: props.label, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, options: props.options, radioSize: props.radioSize, ref: field.ref, style: props.style, value: (_d = field.value) !== null && _d !== void 0 ? _d : null, variant: props.variant }));
37
37
  }
38
38
  RadioGroup.displayName = "UxfFormRadioGroup";
package/readmes.d.ts CHANGED
@@ -12,6 +12,7 @@ export declare const readmes: {
12
12
  readonly dropzone: typeof avatarFileInputReadme;
13
13
  readonly "file-input": typeof avatarFileInputReadme;
14
14
  readonly form: typeof avatarFileInputReadme;
15
+ readonly "form-renderer": typeof avatarFileInputReadme;
15
16
  readonly "gps-input": typeof avatarFileInputReadme;
16
17
  readonly "money-input": typeof avatarFileInputReadme;
17
18
  readonly "multi-combobox": typeof avatarFileInputReadme;
package/readmes.js CHANGED
@@ -17,18 +17,19 @@ const README_md_9 = __importDefault(require("./datetime-picker-input/README.md")
17
17
  const README_md_10 = __importDefault(require("./dropzone/README.md"));
18
18
  const README_md_11 = __importDefault(require("./file-input/README.md"));
19
19
  const README_md_12 = __importDefault(require("./form/README.md"));
20
- const README_md_13 = __importDefault(require("./gps-input/README.md"));
21
- const README_md_14 = __importDefault(require("./money-input/README.md"));
22
- const README_md_15 = __importDefault(require("./multi-combobox/README.md"));
23
- const README_md_16 = __importDefault(require("./multi-select/README.md"));
24
- const README_md_17 = __importDefault(require("./number-input/README.md"));
25
- const README_md_18 = __importDefault(require("./password-input/README.md"));
26
- const README_md_19 = __importDefault(require("./radio-group/README.md"));
27
- const README_md_20 = __importDefault(require("./select/README.md"));
28
- const README_md_21 = __importDefault(require("./text-input/README.md"));
29
- const README_md_22 = __importDefault(require("./textarea/README.md"));
30
- const README_md_23 = __importDefault(require("./time-picker-input/README.md"));
31
- const README_md_24 = __importDefault(require("./toggle/README.md"));
20
+ const README_md_13 = __importDefault(require("./form-renderer/README.md"));
21
+ const README_md_14 = __importDefault(require("./gps-input/README.md"));
22
+ const README_md_15 = __importDefault(require("./money-input/README.md"));
23
+ const README_md_16 = __importDefault(require("./multi-combobox/README.md"));
24
+ const README_md_17 = __importDefault(require("./multi-select/README.md"));
25
+ const README_md_18 = __importDefault(require("./number-input/README.md"));
26
+ const README_md_19 = __importDefault(require("./password-input/README.md"));
27
+ const README_md_20 = __importDefault(require("./radio-group/README.md"));
28
+ const README_md_21 = __importDefault(require("./select/README.md"));
29
+ const README_md_22 = __importDefault(require("./text-input/README.md"));
30
+ const README_md_23 = __importDefault(require("./textarea/README.md"));
31
+ const README_md_24 = __importDefault(require("./time-picker-input/README.md"));
32
+ const README_md_25 = __importDefault(require("./toggle/README.md"));
32
33
  exports.readmes = {
33
34
  "avatar-file-input": README_md_1.default,
34
35
  "checkbox-button": README_md_2.default,
@@ -42,16 +43,17 @@ exports.readmes = {
42
43
  "dropzone": README_md_10.default,
43
44
  "file-input": README_md_11.default,
44
45
  "form": README_md_12.default,
45
- "gps-input": README_md_13.default,
46
- "money-input": README_md_14.default,
47
- "multi-combobox": README_md_15.default,
48
- "multi-select": README_md_16.default,
49
- "number-input": README_md_17.default,
50
- "password-input": README_md_18.default,
51
- "radio-group": README_md_19.default,
52
- "select": README_md_20.default,
53
- "text-input": README_md_21.default,
54
- "textarea": README_md_22.default,
55
- "time-picker-input": README_md_23.default,
56
- "toggle": README_md_24.default,
46
+ "form-renderer": README_md_13.default,
47
+ "gps-input": README_md_14.default,
48
+ "money-input": README_md_15.default,
49
+ "multi-combobox": README_md_16.default,
50
+ "multi-select": README_md_17.default,
51
+ "number-input": README_md_18.default,
52
+ "password-input": README_md_19.default,
53
+ "radio-group": README_md_20.default,
54
+ "select": README_md_21.default,
55
+ "text-input": README_md_22.default,
56
+ "textarea": README_md_23.default,
57
+ "time-picker-input": README_md_24.default,
58
+ "toggle": README_md_25.default,
57
59
  };
package/select/select.js CHANGED
@@ -12,7 +12,7 @@ const react_1 = __importDefault(require("react"));
12
12
  const react_hook_form_1 = require("react-hook-form");
13
13
  const form_context_1 = require("../form-id-context/form-context");
14
14
  function Select(props) {
15
- var _a, _b, _c, _d, _e;
15
+ var _a, _b, _c;
16
16
  const formContext = (0, form_context_1.useFormContext)();
17
17
  const id = (_a = props.id) !== null && _a !== void 0 ? _a : `${formContext.formId}__${props.name}`;
18
18
  const { field, fieldState } = (0, react_hook_form_1.useController)({
@@ -34,6 +34,6 @@ function Select(props) {
34
34
  field.onChange(value);
35
35
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
36
36
  };
37
- return (react_1.default.createElement(select_1.Select, { className: props.className, dropdownClassName: props.dropdownClassName, dropdownMatchesInputWidth: props.dropdownMatchesInputWidth, dropdownMaxHeight: props.dropdownMaxHeight, dropdownPlacement: props.dropdownPlacement, dropdownStrategy: props.dropdownStrategy, form: props.form, helperText: (_c = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : props.helperText, hiddenLabel: props.hiddenLabel, iconName: props.iconName, id: id, inputArrow: props.inputArrow, inputRef: field.ref, isClearable: props.isClearable, isDisabled: (0, is_empty_1.isEmpty)(props.options) || ((_d = props.isDisabled) !== null && _d !== void 0 ? _d : formContext.isFormDisabled), isInvalid: (0, is_not_nil_1.isNotNil)(fieldState.error), isReadOnly: (_e = props.isReadOnly) !== null && _e !== void 0 ? _e : formContext.isFormReadOnly, isRequired: props.isRequired, keyExtractor: props.keyExtractor, label: props.label, leftAddon: props.leftAddon, leftElement: props.leftElement, name: field.name, noOptionsMessage: props.noOptionsMessage, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, options: props.options, placeholder: props.placeholder, renderOption: props.renderOption, renderSelectedOption: props.renderSelectedOption, rightAddon: props.rightAddon, rightElement: props.rightElement, size: props.size, style: props.style, value: field.value, variant: props.variant }));
37
+ return (react_1.default.createElement(select_1.Select, { className: props.className, dropdownClassName: props.dropdownClassName, dropdownMatchesInputWidth: props.dropdownMatchesInputWidth, dropdownMaxHeight: props.dropdownMaxHeight, dropdownPlacement: props.dropdownPlacement, dropdownStrategy: props.dropdownStrategy, form: props.form, helperText: (_c = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : props.helperText, hiddenLabel: props.hiddenLabel, iconName: props.iconName, id: id, inputArrow: props.inputArrow, inputRef: field.ref, isClearable: props.isClearable, isDisabled: (0, is_empty_1.isEmpty)(props.options) || formContext.isFormDisabled || props.isDisabled, isInvalid: (0, is_not_nil_1.isNotNil)(fieldState.error), isReadOnly: formContext.isFormReadOnly || props.isReadOnly, isRequired: props.isRequired, keyExtractor: props.keyExtractor, label: props.label, leftAddon: props.leftAddon, leftElement: props.leftElement, name: field.name, noOptionsMessage: props.noOptionsMessage, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, options: props.options, placeholder: props.placeholder, renderOption: props.renderOption, renderSelectedOption: props.renderSelectedOption, rightAddon: props.rightAddon, rightElement: props.rightElement, size: props.size, style: props.style, value: field.value, variant: props.variant }));
38
38
  }
39
39
  Select.displayName = "UxfFormSelect";