@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.
- package/avatar-file-input/avatar-file-input.js +2 -2
- package/checkbox-button/checkbox-button.js +2 -2
- package/checkbox-input/checkbox-input.js +2 -2
- package/checkbox-list/checkbox-list.js +2 -2
- package/color-radio-group/color-radio-group.js +2 -2
- package/combobox/combobox.js +4 -3
- package/components.d.ts +5 -0
- package/components.js +5 -0
- package/date-picker-input/date-picker-input.js +2 -2
- package/date-range-picker-input/date-range-picker-input.js +2 -2
- package/datetime-picker-input/datetime-picker-input.js +2 -2
- package/dropzone/dropzone-input.js +2 -2
- package/file-input/file-input.js +2 -2
- package/form-renderer/README.md +1 -0
- package/form-renderer/big-test-schema.d.ts +33 -0
- package/form-renderer/big-test-schema.js +295 -0
- package/form-renderer/field/base-field.d.ts +4 -0
- package/form-renderer/field/base-field.js +70 -0
- package/form-renderer/field/embedded.d.ts +4 -0
- package/form-renderer/field/embedded.js +19 -0
- package/form-renderer/field/one-to-many.d.ts +4 -0
- package/form-renderer/field/one-to-many.js +50 -0
- package/form-renderer/form-renderer.d.ts +16 -0
- package/form-renderer/form-renderer.js +26 -0
- package/form-renderer/form-renderer.stories.d.ts +2 -0
- package/form-renderer/form-renderer.stories.js +23 -0
- package/form-renderer/index.d.ts +2 -0
- package/form-renderer/index.js +18 -0
- package/form-renderer/mapper.d.ts +2 -0
- package/form-renderer/mapper.js +30 -0
- package/form-renderer/types.d.ts +39 -0
- package/form-renderer/types.js +2 -0
- package/gps-input/gps-input.js +2 -2
- package/money-input/money-input.js +2 -2
- package/multi-combobox/multi-combobox.js +4 -3
- package/multi-select/multi-select.js +2 -2
- package/number-input/number-input.js +5 -3
- package/package.json +2 -2
- package/password-input/password-input.js +3 -3
- package/radio-group/radio-group.js +2 -2
- package/readmes.d.ts +1 -0
- package/readmes.js +26 -24
- package/select/select.js +2 -2
- package/text-input/text-input.js +2 -2
- package/textarea/textarea.js +2 -2
- package/time-picker-input/time-picker-input.js +2 -2
- 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,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,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,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,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,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
|
+
};
|
package/gps-input/gps-input.js
CHANGED
|
@@ -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
|
|
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:
|
|
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
|
|
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:
|
|
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
|
|
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
|
-
|
|
41
|
-
|
|
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
|
|
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) ||
|
|
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
|
|
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
|
|
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:
|
|
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.
|
|
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.
|
|
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
|
|
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:
|
|
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: (
|
|
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
|
|
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 ||
|
|
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("./
|
|
21
|
-
const README_md_14 = __importDefault(require("./
|
|
22
|
-
const README_md_15 = __importDefault(require("./
|
|
23
|
-
const README_md_16 = __importDefault(require("./multi-
|
|
24
|
-
const README_md_17 = __importDefault(require("./
|
|
25
|
-
const README_md_18 = __importDefault(require("./
|
|
26
|
-
const README_md_19 = __importDefault(require("./
|
|
27
|
-
const README_md_20 = __importDefault(require("./
|
|
28
|
-
const README_md_21 = __importDefault(require("./
|
|
29
|
-
const README_md_22 = __importDefault(require("./
|
|
30
|
-
const README_md_23 = __importDefault(require("./
|
|
31
|
-
const README_md_24 = __importDefault(require("./
|
|
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
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"multi-
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
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
|
|
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) ||
|
|
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";
|