@uxf/ui 10.6.0 → 10.7.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/_select-base/_select-base.d.ts +1 -0
- package/_select-base/_select-base.js +14 -3
- package/avatar-file-input/avatar-file-input.js +5 -5
- package/combobox/combobox.js +2 -1
- package/dropzone/dropzone-input.d.ts +1 -0
- package/dropzone/dropzone-input.js +10 -4
- package/dropzone/dropzone-list.d.ts +1 -0
- package/dropzone/dropzone-list.js +2 -2
- package/multi-combobox/_multi-combobox-base.js +5 -1
- package/package.json +1 -1
|
@@ -28,6 +28,7 @@ export interface SelectBaseProps<Value, Option> extends FormControlProps<Value |
|
|
|
28
28
|
id?: string;
|
|
29
29
|
keyExtractor?: (option: Option) => string | number;
|
|
30
30
|
label: ReactNode;
|
|
31
|
+
onOptionsUnmount?: () => void;
|
|
31
32
|
options?: Option[];
|
|
32
33
|
placeholder?: string;
|
|
33
34
|
renderOption?: (option: Option, isSelected: boolean) => ReactNode;
|
|
@@ -27,6 +27,7 @@ exports._SelectBase = void 0;
|
|
|
27
27
|
const react_1 = require("@floating-ui/react");
|
|
28
28
|
const classes_1 = require("@uxf/core/constants/classes");
|
|
29
29
|
const useInputFocus_1 = require("@uxf/core/hooks/useInputFocus");
|
|
30
|
+
const useOnUnmount_1 = require("@uxf/core/hooks/useOnUnmount");
|
|
30
31
|
const composeRefs_1 = require("@uxf/core/utils/composeRefs");
|
|
31
32
|
const cx_1 = require("@uxf/core/utils/cx");
|
|
32
33
|
const use_dropdown_1 = require("@uxf/ui/hooks/use-dropdown");
|
|
@@ -34,6 +35,13 @@ const icon_1 = require("@uxf/ui/icon");
|
|
|
34
35
|
const input_1 = require("@uxf/ui/input");
|
|
35
36
|
const label_1 = require("@uxf/ui/label");
|
|
36
37
|
const react_2 = __importStar(require("react"));
|
|
38
|
+
const Option = (props) => {
|
|
39
|
+
var _a, _b, _c, _d;
|
|
40
|
+
const optionKey = (_a = props.keyExtractor) === null || _a === void 0 ? void 0 : _a.call(props, props.option);
|
|
41
|
+
const HUIComponent = props.HUIComponent;
|
|
42
|
+
return (react_2.default.createElement(HUIComponent.Option, { className: (optionState) => (0, cx_1.cx)("uxf-dropdown__item", optionState.active && classes_1.CLASSES.IS_ACTIVE, optionState.disabled && classes_1.CLASSES.IS_DISABLED, optionState.selected && classes_1.CLASSES.IS_SELECTED), key: optionKey !== null && optionKey !== void 0 ? optionKey : props.option.id, value: props.option }, (_d = (_c = (_b = props.renderOption) === null || _b === void 0 ? void 0 : _b.call(props, props.option)) !== null && _c !== void 0 ? _c : optionKey) !== null && _d !== void 0 ? _d : props.option.label));
|
|
43
|
+
};
|
|
44
|
+
Option.displayName = "UxfUiSelectBaseOption";
|
|
37
45
|
function isHUICombobox(HUIComponent) {
|
|
38
46
|
return typeof HUIComponent.Input !== "undefined";
|
|
39
47
|
}
|
|
@@ -53,13 +61,16 @@ const InputArrow = (props) => {
|
|
|
53
61
|
const Options = (props) => {
|
|
54
62
|
var _a, _b;
|
|
55
63
|
const HUIComponent = props.HUIComponent;
|
|
64
|
+
(0, useOnUnmount_1.useOnUnmount)(() => {
|
|
65
|
+
var _a;
|
|
66
|
+
(_a = props.onUnmount) === null || _a === void 0 ? void 0 : _a.call(props);
|
|
67
|
+
});
|
|
56
68
|
return (react_2.default.createElement(HUIComponent.Options, { className: (0, cx_1.cx)("uxf-dropdown uxf-select-base__options", `uxf-dropdown--size-${(_a = props.size) !== null && _a !== void 0 ? _a : "default"}`, `uxf-dropdown--variant-${(_b = props.variant) !== null && _b !== void 0 ? _b : "default"}`, props.matchWidth
|
|
57
69
|
? "uxf-select-base__options--match-width"
|
|
58
70
|
: "uxf-select-base__options--not-match-width", props.placement === "bottom" && "uxf-dropdown--bottom", props.placement === "top" && "uxf-dropdown--top", props.className), ref: props.forwardRef, static: true, style: props.style }, props.options && props.options.length > 0 ? (props.options.map((option) => {
|
|
59
71
|
var _a;
|
|
60
72
|
const optionKey = (_a = props.keyExtractor) === null || _a === void 0 ? void 0 : _a.call(props, option);
|
|
61
|
-
|
|
62
|
-
return (react_2.default.createElement(HUIComponent.Option, { disabled: _option.disabled, className: (optionState) => (0, cx_1.cx)("uxf-dropdown__item", optionState.active && classes_1.CLASSES.IS_ACTIVE, optionState.disabled && classes_1.CLASSES.IS_DISABLED, optionState.selected && classes_1.CLASSES.IS_SELECTED), key: optionKey !== null && optionKey !== void 0 ? optionKey : _option.id, value: option }, (optionState) => { var _a, _b; return (_b = (_a = props.renderOption) === null || _a === void 0 ? void 0 : _a.call(props, option, optionState.selected)) !== null && _b !== void 0 ? _b : option.label; }));
|
|
73
|
+
return (react_2.default.createElement(Option, { key: optionKey, keyExtractor: props.keyExtractor, option: option, HUIComponent: HUIComponent }));
|
|
63
74
|
})) : (react_2.default.createElement("div", { className: "uxf-dropdown__empty-wrapper" }, props.emptyMessage))));
|
|
64
75
|
};
|
|
65
76
|
Options.displayName = "UxfUiSelectBaseOptions";
|
|
@@ -91,7 +102,7 @@ const _SelectBase = (props) => {
|
|
|
91
102
|
react_2.default.createElement(InputArrow, { iconName: props.iconName, open: renderProps.open }))) : (react_2.default.createElement(InputArrow, { iconName: props.iconName, open: renderProps.open }))),
|
|
92
103
|
props.rightAddon && react_2.default.createElement(input_1.Input.RightAddon, null, props.rightAddon)),
|
|
93
104
|
renderProps.open && (react_2.default.createElement(react_1.FloatingPortal, null,
|
|
94
|
-
react_2.default.createElement(Options, { HUIComponent: HUIComponent, className: props.dropdownClassName, emptyMessage: props.emptyMessage, forwardRef: dropdown.refs.setFloating, keyExtractor: props.keyExtractor, matchWidth: props.dropdownMatchesInputWidth, options: props.options, placement: dropdown.placement, renderOption: props.renderOption, size: props.size, style: dropdown.floatingStyles, variant: props.variant }))),
|
|
105
|
+
react_2.default.createElement(Options, { HUIComponent: HUIComponent, className: props.dropdownClassName, emptyMessage: props.emptyMessage, forwardRef: dropdown.refs.setFloating, keyExtractor: props.keyExtractor, matchWidth: props.dropdownMatchesInputWidth, onUnmount: props.onOptionsUnmount, options: props.options, placement: dropdown.placement, renderOption: props.renderOption, size: props.size, style: dropdown.floatingStyles, variant: props.variant }))),
|
|
95
106
|
props.helperText && (react_2.default.createElement("div", { className: (0, cx_1.cx)("uxf-helper-text", props.isInvalid && classes_1.CLASSES.IS_INVALID), id: errorId }, props.helperText)))))));
|
|
96
107
|
};
|
|
97
108
|
exports._SelectBase = _SelectBase;
|
|
@@ -36,7 +36,7 @@ const button_1 = require("../button");
|
|
|
36
36
|
const form_component_1 = require("../form-component");
|
|
37
37
|
const icon_1 = require("../icon");
|
|
38
38
|
exports.AvatarFileInput = (0, react_1.forwardRef)((props, ref) => {
|
|
39
|
-
var _a, _b, _c, _d, _e;
|
|
39
|
+
var _a, _b, _c, _d, _e, _f;
|
|
40
40
|
const generatedId = (0, react_1.useId)();
|
|
41
41
|
const id = props.id || generatedId;
|
|
42
42
|
const innerRef = (0, react_1.useRef)(null);
|
|
@@ -49,14 +49,14 @@ exports.AvatarFileInput = (0, react_1.forwardRef)((props, ref) => {
|
|
|
49
49
|
return (react_1.default.createElement(form_component_1.FormComponent, { className: rootClassName, errorId: props.id, helperText: props.helperText, hiddenLabel: props.hiddenLabel, inputId: id, label: props.label },
|
|
50
50
|
react_1.default.createElement("div", { className: "uxf-avatar-file-input__inner-wrapper" },
|
|
51
51
|
react_1.default.createElement("div", { className: (0, cx_1.cx)("uxf-avatar-file-input__input", stateClassName), onClick: onSelectFile },
|
|
52
|
-
react_1.default.createElement(_file_input_base_1._FileInputBase, { accept: props.accept, "aria-describedby": errorId, "aria-invalid": props.isInvalid, className: "uxf-avatar-file-input__input-element", form: props.form, id: id, isDisabled: props.isDisabled, isFocused: props.isFocused, isInvalid: props.isInvalid, isReadOnly: props.isReadOnly, isRequired: props.isRequired, name: props.name, onBlur: input.onBlur, onFocus: input.onFocus, onChange: props.onChange, onUploadError: props.onUploadError, onUploadFile: props.onUploadFile, ref: (0, composeRefs_1.composeRefs)(innerRef, ref), value: props.value }),
|
|
52
|
+
react_1.default.createElement(_file_input_base_1._FileInputBase, { accept: (_c = props.accept) !== null && _c !== void 0 ? _c : "image/*", "aria-describedby": errorId, "aria-invalid": props.isInvalid, className: "uxf-avatar-file-input__input-element", form: props.form, id: id, isDisabled: props.isDisabled, isFocused: props.isFocused, isInvalid: props.isInvalid, isReadOnly: props.isReadOnly, isRequired: props.isRequired, name: props.name, onBlur: input.onBlur, onFocus: input.onFocus, onChange: props.onChange, onUploadError: props.onUploadError, onUploadFile: props.onUploadFile, ref: (0, composeRefs_1.composeRefs)(innerRef, ref), value: props.value }),
|
|
53
53
|
props.value ? (react_1.default.createElement(avatar_1.Avatar, { className: "uxf-avatar-file-input__input-avatar", src: (0, file_1.getFileUrl)(props.value) })) : (react_1.default.createElement("div", { className: "uxf-avatar-file-input__input-empty" },
|
|
54
|
-
react_1.default.createElement(icon_1.Icon, { className: "uxf-avatar-file-input__input-empty-icon", name: (
|
|
54
|
+
react_1.default.createElement(icon_1.Icon, { className: "uxf-avatar-file-input__input-empty-icon", name: (_d = props.icon) !== null && _d !== void 0 ? _d : "cloud" })))),
|
|
55
55
|
react_1.default.createElement("div", { className: "uxf-avatar-file-input__controls" }, props.customControls ? (props.customControls({
|
|
56
56
|
onSelectFile,
|
|
57
57
|
onRemoveFile,
|
|
58
58
|
})) : (react_1.default.createElement("div", { className: "uxf-avatar-file-input__controls-buttons" },
|
|
59
|
-
react_1.default.createElement(button_1.Button, { className: "uxf-avatar-file-input__controls-button uxf-avatar-file-input__controls-button--select", disabled: props.isDisabled, onClick: onSelectFile, size: "sm", variant: "white" }, (
|
|
60
|
-
!!props.value && !props.isDisabled && (react_1.default.createElement(button_1.Button, { className: "uxf-avatar-file-input__controls-button uxf-avatar-file-input__controls-button--remove", color: "error", disabled: props.isDisabled, onClick: onRemoveFile, size: "sm", variant: "white" }, (
|
|
59
|
+
react_1.default.createElement(button_1.Button, { className: "uxf-avatar-file-input__controls-button uxf-avatar-file-input__controls-button--select", disabled: props.isDisabled, onClick: onSelectFile, size: "sm", variant: "white" }, (_e = props.selectFileLabel) !== null && _e !== void 0 ? _e : "Upload image"),
|
|
60
|
+
!!props.value && !props.isDisabled && (react_1.default.createElement(button_1.Button, { className: "uxf-avatar-file-input__controls-button uxf-avatar-file-input__controls-button--remove", color: "error", disabled: props.isDisabled, onClick: onRemoveFile, size: "sm", variant: "white" }, (_f = props.removeFileLabel) !== null && _f !== void 0 ? _f : "Remove avatar"))))))));
|
|
61
61
|
});
|
|
62
62
|
exports.AvatarFileInput.displayName = "UxfUiAvatarFileInput";
|
package/combobox/combobox.js
CHANGED
|
@@ -38,11 +38,12 @@ const Combobox = (props) => {
|
|
|
38
38
|
const emptyMessage = query.length === 0
|
|
39
39
|
? (_b = props.noQueryMessage) !== null && _b !== void 0 ? _b : "Pro zobrazení možností začněte psát"
|
|
40
40
|
: (_c = props.notFoundMessage) !== null && _c !== void 0 ? _c : "Nic nenalezeno";
|
|
41
|
+
const clearQuery = () => setQuery("");
|
|
41
42
|
const onChange = (v) => props.onChange(v);
|
|
42
43
|
const onInputChange = (event) => setQuery(event.target.value);
|
|
43
44
|
const displayValue = (item) => { var _a; return (_a = item === null || item === void 0 ? void 0 : item.label) !== null && _a !== void 0 ? _a : ""; };
|
|
44
45
|
const selectedOption = (_d = props.value) !== null && _d !== void 0 ? _d : null;
|
|
45
|
-
return (react_2.default.createElement(_select_base_1._SelectBase, { HUIComponent: react_1.Combobox, className: props.className, customInputElementDisplayName: react_1.Combobox.Input.displayName, dropdownClassName: props.dropdownClassName, dropdownMatchesInputWidth: props.dropdownMatchesInputWidth, dropdownPlacement: props.dropdownPlacement, dropdownStrategy: props.dropdownStrategy, emptyMessage: emptyMessage, forwardRef: props.forwardRef, helperText: props.helperText, hiddenLabel: props.hiddenLabel, iconName: props.iconName, id: props.id, isClearable: props.isClearable, isDisabled: props.isDisabled, isFocused: props.isFocused, isInvalid: props.isInvalid, isReadOnly: props.isReadOnly, isRequired: props.isRequired, keyExtractor: props.keyExtractor, label: props.label, leftAddon: props.leftAddon, leftElement: props.leftElement, name: props.name, onBlur: props.onBlur, onChange: onChange, onFocus: props.onFocus, options: filteredData, placeholder: props.placeholder, renderOption: props.renderOption, rightAddon: props.rightAddon, rightElement: props.rightElement, size: props.size, value: selectedOption, variant: props.variant },
|
|
46
|
+
return (react_2.default.createElement(_select_base_1._SelectBase, { HUIComponent: react_1.Combobox, className: props.className, customInputElementDisplayName: react_1.Combobox.Input.displayName, dropdownClassName: props.dropdownClassName, dropdownMatchesInputWidth: props.dropdownMatchesInputWidth, dropdownPlacement: props.dropdownPlacement, dropdownStrategy: props.dropdownStrategy, emptyMessage: emptyMessage, forwardRef: props.forwardRef, helperText: props.helperText, hiddenLabel: props.hiddenLabel, iconName: props.iconName, id: props.id, isClearable: props.isClearable, isDisabled: props.isDisabled, isFocused: props.isFocused, isInvalid: props.isInvalid, isReadOnly: props.isReadOnly, isRequired: props.isRequired, keyExtractor: props.keyExtractor, label: props.label, leftAddon: props.leftAddon, leftElement: props.leftElement, name: props.name, onBlur: props.onBlur, onChange: onChange, onFocus: props.onFocus, onOptionsUnmount: clearQuery, options: filteredData, placeholder: props.placeholder, renderOption: props.renderOption, rightAddon: props.rightAddon, rightElement: props.rightElement, size: props.size, value: selectedOption, variant: props.variant },
|
|
46
47
|
react_2.default.createElement(react_1.Combobox.Input, { autoComplete: "off", className: "uxf-input__element", displayValue: displayValue, onBlur: props.onBlur, onChange: onInputChange, placeholder: props.placeholder, type: "text" })));
|
|
47
48
|
};
|
|
48
49
|
exports.Combobox = Combobox;
|
|
@@ -4,6 +4,7 @@ import { IconName } from "../icon/types";
|
|
|
4
4
|
import { Accept, DropzoneFile } from "./types";
|
|
5
5
|
export interface DropzoneInputProps extends FormControlProps<DropzoneFile[] | undefined> {
|
|
6
6
|
accept?: Accept;
|
|
7
|
+
className?: string;
|
|
7
8
|
helperText?: ReactNode;
|
|
8
9
|
icon?: IconName;
|
|
9
10
|
id?: string;
|
|
@@ -63,9 +63,10 @@ function fileRejectedHandler(err, dropzoneFile, onValuesChange, values, onUpload
|
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
exports.DropzoneInput = (0, react_1.forwardRef)((props, ref) => {
|
|
66
|
-
var _a;
|
|
66
|
+
var _a, _b;
|
|
67
67
|
const refValue = (0, react_1.useRef)();
|
|
68
68
|
refValue.current = props.value;
|
|
69
|
+
const inputRef = (0, react_1.useRef)(null);
|
|
69
70
|
const handleFileDrop = async (acceptedFiles) => {
|
|
70
71
|
const files = acceptedFiles.map((file) => ({
|
|
71
72
|
...fileToFileResponse(file),
|
|
@@ -77,6 +78,11 @@ exports.DropzoneInput = (0, react_1.forwardRef)((props, ref) => {
|
|
|
77
78
|
const onChange = (values) => {
|
|
78
79
|
props.onChange(values);
|
|
79
80
|
refValue.current = values;
|
|
81
|
+
// this ensures that the input is cleared after the upload, so there is no problem with uploading the same file again
|
|
82
|
+
const inputNode = inputRef.current;
|
|
83
|
+
if (inputNode) {
|
|
84
|
+
inputNode.value = "";
|
|
85
|
+
}
|
|
80
86
|
};
|
|
81
87
|
for (const file of files) {
|
|
82
88
|
if (!file.originalFile) {
|
|
@@ -107,19 +113,19 @@ exports.DropzoneInput = (0, react_1.forwardRef)((props, ref) => {
|
|
|
107
113
|
const labelOnCLick = (e) => {
|
|
108
114
|
e.stopPropagation();
|
|
109
115
|
};
|
|
110
|
-
return (react_1.default.createElement("div", { className:
|
|
116
|
+
return (react_1.default.createElement("div", { className: `uxf-dropzone ${(_a = props.className) !== null && _a !== void 0 ? _a : ""}` },
|
|
111
117
|
react_1.default.createElement("label", { ...getRootProps({
|
|
112
118
|
className: (0, cx_1.cx)("uxf-dropzone__label", props.isInvalid && classes_1.CLASSES.IS_INVALID, props.isDisabled && classes_1.CLASSES.IS_DISABLED, props.noClick && "cursor-auto"),
|
|
113
119
|
onClick: labelOnCLick,
|
|
114
120
|
}), ref: (0, composeRefs_1.composeRefs)(ref, rootRef) },
|
|
115
|
-
react_1.default.createElement(icon_1.Icon, { className: "uxf-dropzone__label__icon", name: (
|
|
121
|
+
react_1.default.createElement(icon_1.Icon, { className: "uxf-dropzone__label__icon", name: (_b = props.icon) !== null && _b !== void 0 ? _b : "cloud" }),
|
|
116
122
|
typeof props.label === "string" ? react_1.default.createElement("span", null, props.label) : props.label,
|
|
117
123
|
react_1.default.createElement("input", { ...getInputProps({
|
|
118
124
|
className: "uxf-dropzone__input",
|
|
119
125
|
id: props.id,
|
|
120
126
|
name: props.name,
|
|
121
127
|
type: "file",
|
|
122
|
-
}) })),
|
|
128
|
+
}), ref: inputRef })),
|
|
123
129
|
props.helperText && (react_1.default.createElement("div", { className: (0, cx_1.cx)("uxf-helper-text", props.isInvalid && classes_1.CLASSES.IS_INVALID) }, props.helperText))));
|
|
124
130
|
});
|
|
125
131
|
exports.DropzoneInput.displayName = "UxfUiDropzoneInput";
|
|
@@ -2,6 +2,7 @@ import { FormControlProps } from "@uxf/ui/types";
|
|
|
2
2
|
import { FC, ReactNode } from "react";
|
|
3
3
|
import { DropzoneFile } from "./types";
|
|
4
4
|
export interface DropzoneListProps extends FormControlProps<DropzoneFile[] | undefined> {
|
|
5
|
+
className?: string;
|
|
5
6
|
errorText?: string;
|
|
6
7
|
onAbortWarning?: string;
|
|
7
8
|
onRemoveWarning?: string;
|
|
@@ -40,7 +40,7 @@ function formatBytes(bytes, decimals = 2) {
|
|
|
40
40
|
return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;
|
|
41
41
|
}
|
|
42
42
|
const DropzoneList = (props) => {
|
|
43
|
-
var _a, _b;
|
|
43
|
+
var _a, _b, _c;
|
|
44
44
|
const context = (0, react_1.useContext)(context_1.UiContext);
|
|
45
45
|
const onRemove = (file, isUploading) => () => {
|
|
46
46
|
var _a;
|
|
@@ -58,7 +58,7 @@ const DropzoneList = (props) => {
|
|
|
58
58
|
if (((_a = props.value) === null || _a === void 0 ? void 0 : _a.length) === 0) {
|
|
59
59
|
return null;
|
|
60
60
|
}
|
|
61
|
-
return (react_1.default.createElement("ul", { className:
|
|
61
|
+
return (react_1.default.createElement("ul", { className: `uxf-dropzone-list ${(_b = props.className) !== null && _b !== void 0 ? _b : ""}` }, (_c = props.value) === null || _c === void 0 ? void 0 : _c.map((file) => {
|
|
62
62
|
var _a, _b, _c;
|
|
63
63
|
const isUploading = file.id < 0 && !file.error;
|
|
64
64
|
return ((_b = (_a = props.renderItem) === null || _a === void 0 ? void 0 : _a.call(props, file)) !== null && _b !== void 0 ? _b : (react_1.default.createElement("li", { className: "uxf-dropzone-list__item-wrapper", key: file.id },
|
|
@@ -52,6 +52,10 @@ function handleInputKeyDownRecursion(selectedOptions, onRemove) {
|
|
|
52
52
|
onRemove(lastSelectedOption.id);
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
|
+
const OptionElement = (props) => {
|
|
56
|
+
return (react_3.default.createElement(react_2.Combobox.Option, { className: (optionState) => (0, cx_1.cx)("uxf-dropdown__item", optionState.active && props.withoutPopover && classes_1.CLASSES.IS_ACTIVE, optionState.disabled && classes_1.CLASSES.IS_DISABLED, optionState.selected && classes_1.CLASSES.IS_SELECTED), value: props.option }, (optionState) => (react_3.default.createElement(react_3.default.Fragment, null, props.withCheckboxes ? (react_3.default.createElement(checkbox_input_1.CheckboxInput, { isDisabled: optionState.disabled, isFocused: optionState.active, label: props.label, onChange: props.handleCheckboxChange, value: optionState.selected })) : (props.label)))));
|
|
57
|
+
};
|
|
58
|
+
OptionElement.displayName = "UxfUiMultiComboboxOption";
|
|
55
59
|
exports._MultiComboboxBase = (0, react_3.forwardRef)((props, ref) => {
|
|
56
60
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
57
61
|
const isAsync = !!props.loadOptions;
|
|
@@ -120,7 +124,7 @@ exports._MultiComboboxBase = (0, react_3.forwardRef)((props, ref) => {
|
|
|
120
124
|
react_3.default.createElement(react_2.Combobox.Options, { className: (0, cx_1.cx)("uxf-dropdown", `uxf-dropdown--size-${(_a = props.size) !== null && _a !== void 0 ? _a : "default"}`, `uxf-dropdown--variant-${(_b = props.variant) !== null && _b !== void 0 ? _b : "default"}`, dropdown.placement === "bottom" && "uxf-dropdown--bottom", dropdown.placement === "top" && "uxf-dropdown--top"), ref: dropdown.refs.setFloating, static: true, style: dropdown.floatingStyles }, filteredData.length > 0 ? (filteredData.map((option) => {
|
|
121
125
|
var _a, _b, _c, _d;
|
|
122
126
|
const label = (_b = (_a = props.renderOption) === null || _a === void 0 ? void 0 : _a.call(props, option)) !== null && _b !== void 0 ? _b : option.label;
|
|
123
|
-
return (react_3.default.createElement(
|
|
127
|
+
return (react_3.default.createElement(OptionElement, { option: option, key: (_d = (_c = props.keyExtractor) === null || _c === void 0 ? void 0 : _c.call(props, option)) !== null && _d !== void 0 ? _d : option.id, label: label, handleCheckboxChange: handleCheckboxChange(option.id), withCheckboxes: props.withCheckboxes, withoutPopover: withoutPopover }));
|
|
124
128
|
})) : (react_3.default.createElement("div", { className: "uxf-dropdown__empty-wrapper" }, emptyMessage))))),
|
|
125
129
|
props.helperText && withoutPopover && (react_3.default.createElement("div", { className: (0, cx_1.cx)("uxf-helper-text", props.isInvalid && classes_1.CLASSES.IS_INVALID), id: props.errorId }, props.helperText))));
|
|
126
130
|
return (react_3.default.createElement(react_3.default.Fragment, null, withoutPopover ? (react_3.default.createElement(react_3.default.Fragment, null,
|