zcomponents-ui 1.1.6 → 1.2.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/dist/{index-BDEyCrDG.js → index-CfSBwowY.js} +215 -92
- package/dist/index-CfSBwowY.js.map +1 -0
- package/dist/{index-Ctbq3kHw.js → index-DC_KVC71.js} +214 -94
- package/dist/index-DC_KVC71.js.map +1 -0
- package/dist/index.cjs.js +315 -3
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +80 -3
- package/dist/index.esm.js +319 -3
- package/dist/index.esm.js.map +1 -1
- package/dist/react-hook-form.cjs.js +1 -1
- package/dist/react-hook-form.d.ts +24 -5
- package/dist/react-hook-form.esm.js +1 -1
- package/dist/types/components/ZDrop/components/ZDropList/ZDropListAutoHeightWrapper/index.d.ts +3 -0
- package/dist/types/components/ZDrop/types/zDropTypes.d.ts +22 -3
- package/dist/types/components/ZDropButton/components/ZDropButtonContent/index.d.ts +3 -0
- package/dist/types/components/ZDropButton/components/ZDropButtonList/index.d.ts +3 -0
- package/dist/types/components/ZDropButton/components/ZDropButtonListItem/index.d.ts +3 -0
- package/dist/types/components/ZDropButton/components/ZDropButtonSearch/index.d.ts +3 -0
- package/dist/types/components/ZDropButton/components/ZDropButtonToggle/index.d.ts +3 -0
- package/dist/types/components/ZDropButton/index.d.ts +10 -0
- package/dist/types/components/ZDropButton/types/zDropButtonTypes.d.ts +69 -0
- package/dist/types/helpers/classNames.d.ts +1 -1
- package/dist/types/helpers/getAvailableSpace.d.ts +6 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/zcomponents-ui.css +1 -1
- package/dist/zcomponents-ui.css.map +1 -1
- package/package.json +1 -1
- package/dist/index-BDEyCrDG.js.map +0 -1
- package/dist/index-Ctbq3kHw.js.map +0 -1
|
@@ -12,7 +12,7 @@ const classNames = (...params) => {
|
|
|
12
12
|
}
|
|
13
13
|
else if (param && typeof param === "object") {
|
|
14
14
|
Object.entries(param).forEach(([key, value]) => {
|
|
15
|
-
if (value) {
|
|
15
|
+
if (typeof key === "string" && key !== "undefined" && value) {
|
|
16
16
|
classes.push(key);
|
|
17
17
|
}
|
|
18
18
|
});
|
|
@@ -52,11 +52,11 @@ const useOutsideClose = (ref, onOutsideClose, settings) => {
|
|
|
52
52
|
}, [onOutsideClose, ref, isActive]);
|
|
53
53
|
};
|
|
54
54
|
|
|
55
|
-
var styles = {"
|
|
55
|
+
var styles = {"zd__container":"ZDrop-module_zd__container__IrQTk","zd__label":"ZDrop-module_zd__label__keSwp","zd__input-field":"ZDrop-module_zd__input-field__Ne8t8","zd__input-field--multiple":"ZDrop-module_zd__input-field--multiple__kDSP5","zd__input-field--disabled":"ZDrop-module_zd__input-field--disabled__LOUpU","zd__input":"ZDrop-module_zd__input__r3qdf","zd__input-single":"ZDrop-module_zd__input-single__tM76E","zd__input-single-search":"ZDrop-module_zd__input-single-search__j4zof","zd__input-multiple":"ZDrop-module_zd__input-multiple__AzD1G","zd__input-multiple-value":"ZDrop-module_zd__input-multiple-value__4ZAHf","zd__input-multiple-value-remove-btn":"ZDrop-module_zd__input-multiple-value-remove-btn__gSzGH","zd__input-multiple-value-remove-btn-icon":"ZDrop-module_zd__input-multiple-value-remove-btn-icon__23GYv","zd__input-multiple-search-wrapper":"ZDrop-module_zd__input-multiple-search-wrapper__va0lS","zd__input-multiple-search":"ZDrop-module_zd__input-multiple-search__5K3Z9","zd__input-multiple-placeholder":"ZDrop-module_zd__input-multiple-placeholder__tx34F","zd__input-clear-btn-wrapper":"ZDrop-module_zd__input-clear-btn-wrapper__drnqP","zd__input-clear-btn":"ZDrop-module_zd__input-clear-btn__wqpAG","zd__input-clear-btn-icon":"ZDrop-module_zd__input-clear-btn-icon__4wsoa","zd__expand-toggle":"ZDrop-module_zd__expand-toggle__5-2LH","zd__expand-toggle-icon":"ZDrop-module_zd__expand-toggle-icon__Vznjq","zd__expand-toggle-icon--active":"ZDrop-module_zd__expand-toggle-icon--active__I4ZEa","zd__list":"ZDrop-module_zd__list__q8lwW","zd__list-wrapper":"ZDrop-module_zd__list-wrapper__dWpmK","zd__list-auto-height-wrapper":"ZDrop-module_zd__list-auto-height-wrapper__UxW3X","zd__list--auto-height-enabled":"ZDrop-module_zd__list--auto-height-enabled__qwsev","zd__list--reference-wrapper-enabled":"ZDrop-module_zd__list--reference-wrapper-enabled__Ufhb0","zd__option":"ZDrop-module_zd__option__Zf2Fo","zd__no-data":"ZDrop-module_zd__no-data__7cCZK","zd__option--active":"ZDrop-module_zd__option--active__u-S9s","zd__error-message":"ZDrop-module_zd__error-message__XL-DS"};
|
|
56
56
|
|
|
57
57
|
const ZDropLabel = (props) => {
|
|
58
58
|
const { name, label, className } = props;
|
|
59
|
-
const labelClasses = classNames(styles
|
|
59
|
+
const labelClasses = classNames(styles["zd__label"], className);
|
|
60
60
|
if (typeof label === "string") {
|
|
61
61
|
return (jsxRuntime.jsx("label", { htmlFor: name, className: labelClasses, children: label }));
|
|
62
62
|
}
|
|
@@ -76,7 +76,7 @@ const ZDropListItem = (props) => {
|
|
|
76
76
|
|
|
77
77
|
const ZDropListNoData = (props) => {
|
|
78
78
|
const { noDataContent, className } = props;
|
|
79
|
-
const noDataClasses = classNames(styles
|
|
79
|
+
const noDataClasses = classNames(styles["zd__no-data"], className);
|
|
80
80
|
return jsxRuntime.jsx("div", { className: noDataClasses, children: noDataContent });
|
|
81
81
|
};
|
|
82
82
|
|
|
@@ -104,19 +104,22 @@ const checkIsValueEqualToOption = (selectedValue, option, valueKey) => {
|
|
|
104
104
|
const checkIsOptionSelected = (checkIsInputValueEqualToOptionValue, value, option, valueKey) => value.some((value) => checkIsInputValueEqualToOptionValue(value, option, valueKey));
|
|
105
105
|
|
|
106
106
|
const ZDropList = (props) => {
|
|
107
|
-
const { options = [], selectedValue, valueKey, labelKey, optionsRef, optionRenderer, onOptionClick, onOptionKeyDown, noDataContent, currentSearchedValue, listStyleClasses, isListWrapperEnabled, } = props;
|
|
108
|
-
const dropdownListClasses = classNames(
|
|
109
|
-
[styles["
|
|
110
|
-
|
|
107
|
+
const { options = [], selectedValue, valueKey, labelKey, optionsRef, optionRenderer, onOptionClick, onOptionKeyDown, noDataContent, currentSearchedValue, listStyleClasses, isListWrapperEnabled, isAutoHeightEnabled, } = props;
|
|
108
|
+
const dropdownListClasses = classNames({
|
|
109
|
+
[styles["zd__list"]]: !isAutoHeightEnabled,
|
|
110
|
+
[styles["zd__list--auto-height-enabled"]]: isAutoHeightEnabled,
|
|
111
|
+
[styles["zd__list--reference-wrapper-enabled"]]: isListWrapperEnabled,
|
|
112
|
+
}, listStyleClasses === null || listStyleClasses === void 0 ? void 0 : listStyleClasses.list);
|
|
113
|
+
console.log("render list", dropdownListClasses, isAutoHeightEnabled);
|
|
111
114
|
const getListItemClasses = (option, isOptionSelected) => {
|
|
112
115
|
if (Array.isArray(selectedValue)) {
|
|
113
|
-
return classNames(styles
|
|
114
|
-
[styles["
|
|
115
|
-
});
|
|
116
|
+
return classNames(styles["zd__option"], {
|
|
117
|
+
[styles["zd__option--active"]]: isOptionSelected,
|
|
118
|
+
}, listStyleClasses === null || listStyleClasses === void 0 ? void 0 : listStyleClasses.listItem);
|
|
116
119
|
}
|
|
117
|
-
return classNames(styles
|
|
118
|
-
[styles["
|
|
119
|
-
});
|
|
120
|
+
return classNames(styles["zd__option"], {
|
|
121
|
+
[styles["zd__option--active"]]: isOptionSelected,
|
|
122
|
+
}, listStyleClasses === null || listStyleClasses === void 0 ? void 0 : listStyleClasses.listItem);
|
|
120
123
|
};
|
|
121
124
|
if (options.length === 0) {
|
|
122
125
|
return (jsxRuntime.jsx(ZDropListNoData, { noDataContent: noDataContent, className: listStyleClasses === null || listStyleClasses === void 0 ? void 0 : listStyleClasses.noData }));
|
|
@@ -133,10 +136,10 @@ const ZDropList = (props) => {
|
|
|
133
136
|
|
|
134
137
|
const ZDropListVisibilityToggle = (props) => {
|
|
135
138
|
const { expandToggleRenderer, onClick, isListVisible, toggleStyleClasses } = props;
|
|
136
|
-
const toggleClasses = classNames(styles
|
|
137
|
-
const iconClasses = classNames(styles
|
|
138
|
-
[styles["
|
|
139
|
-
});
|
|
139
|
+
const toggleClasses = classNames(styles["zd__expand-toggle"], toggleStyleClasses === null || toggleStyleClasses === void 0 ? void 0 : toggleStyleClasses.expandToggle);
|
|
140
|
+
const iconClasses = classNames(styles["zd__expand-toggle-icon"], {
|
|
141
|
+
[styles["zd__expand-toggle-icon--active"]]: isListVisible,
|
|
142
|
+
}, toggleStyleClasses === null || toggleStyleClasses === void 0 ? void 0 : toggleStyleClasses.expandToggleIcon);
|
|
140
143
|
return (jsxRuntime.jsx("div", { className: toggleClasses, onClick: onClick, children: expandToggleRenderer ? (jsxRuntime.jsx("span", { children: expandToggleRenderer(isListVisible) })) : (jsxRuntime.jsx("span", { className: iconClasses })) }));
|
|
141
144
|
};
|
|
142
145
|
|
|
@@ -157,7 +160,7 @@ const checkIsClearButtonHidden = (hasValueChanged, currentSearchedValue, isListV
|
|
|
157
160
|
|
|
158
161
|
const ZDropClearButton = (props) => {
|
|
159
162
|
const { hasValueChanged, currentSearchedValue, onInputClear, isListVisible, isClearableOnlyWhenChange, isClearableOnlyWhenSearch, className, clearIcon, } = props;
|
|
160
|
-
const clearButtonClasses = classNames(styles
|
|
163
|
+
const clearButtonClasses = classNames(styles["zd__input-clear-btn"], className);
|
|
161
164
|
const onClear = (e) => {
|
|
162
165
|
e.preventDefault();
|
|
163
166
|
e.stopPropagation();
|
|
@@ -167,12 +170,12 @@ const ZDropClearButton = (props) => {
|
|
|
167
170
|
if (checkIsClearButtonHidden(hasValueChanged, currentSearchedValue, isListVisible, isClearableOnlyWhenChange, isClearableOnlyWhenSearch)) {
|
|
168
171
|
return null;
|
|
169
172
|
}
|
|
170
|
-
return (jsxRuntime.jsx("div", { className: styles
|
|
173
|
+
return (jsxRuntime.jsx("div", { className: styles["zd__input-clear-btn-wrapper"], children: jsxRuntime.jsx("button", { tabIndex: -1, className: clearButtonClasses, onClick: onClear, children: clearIcon || jsxRuntime.jsx("span", { className: styles["zd__input-clear-btn-icon"] }) }) }));
|
|
171
174
|
};
|
|
172
175
|
|
|
173
176
|
const ZDropMultipleInputValue = (props) => {
|
|
174
177
|
const { option, labelType, onInputOptionRemove, valueRenderer, inputMultipleValueClassName, isDisabled, } = props;
|
|
175
|
-
const inputItemClasses = classNames(styles
|
|
178
|
+
const inputItemClasses = classNames(styles["zd__input-multiple-value"], inputMultipleValueClassName);
|
|
176
179
|
if (option === null || option === undefined) {
|
|
177
180
|
return null;
|
|
178
181
|
}
|
|
@@ -188,14 +191,14 @@ const ZDropMultipleInputValue = (props) => {
|
|
|
188
191
|
}
|
|
189
192
|
return (jsxRuntime.jsxs("li", { tabIndex: -1, className: inputItemClasses, children: [jsxRuntime.jsx("span", { children: typeof option === "object" && option !== null
|
|
190
193
|
? option[labelType] || option
|
|
191
|
-
: option }), onInputOptionRemove && !isDisabled && (jsxRuntime.jsx("button", { tabIndex: 0, className: styles
|
|
194
|
+
: option }), onInputOptionRemove && !isDisabled && (jsxRuntime.jsx("button", { tabIndex: 0, className: styles["zd__input-multiple-value-remove-btn"], onClick: (e) => onInputOptionRemove(e, option), children: jsxRuntime.jsx("span", { className: styles["zd__input-multiple-value-remove-btn-icon"] }) }))] }));
|
|
192
195
|
};
|
|
193
196
|
|
|
194
197
|
const ZDropMultipleInput = (props) => {
|
|
195
198
|
const { isListVisible, setIsListVisible, name, selectedValue, valueKey, labelKey, placeholder, isDisabled, isSearchable, currentSearchedValue, valueRenderer, inputRefMultipleValueRenderer, onInputClick, onInputKeyDown, onInputChange, onInputOptionRemove, inputClassName, inputMultipleValueClassName, inputMultipleSearchClassName, } = props;
|
|
196
|
-
const inputSelectClasses = classNames(styles
|
|
197
|
-
const inputMultipleSearchClasses = classNames(styles
|
|
198
|
-
const inputMultipleSearchWrapperClasses = classNames(styles
|
|
199
|
+
const inputSelectClasses = classNames(styles["zd__input"], styles["zd__input-multiple"], inputClassName);
|
|
200
|
+
const inputMultipleSearchClasses = classNames(styles["zd__input-multiple-search"]);
|
|
201
|
+
const inputMultipleSearchWrapperClasses = classNames(styles["zd__input-multiple"], styles["zd__input-multiple-search-wrapper"], inputMultipleSearchClassName);
|
|
199
202
|
const onKeyDown = (e) => {
|
|
200
203
|
if (["Enter"].includes(e.key)) {
|
|
201
204
|
e.preventDefault();
|
|
@@ -209,12 +212,12 @@ const ZDropMultipleInput = (props) => {
|
|
|
209
212
|
return (jsxRuntime.jsxs("ul", { tabIndex: 0, className: inputSelectClasses, onClick: onInputClick, onKeyDown: onInputKeyDown, ...(isDisabled && { style: { pointerEvents: "none" } }), children: [selectedValue.map((option) => (jsxRuntime.jsx(ZDropMultipleInputValue, { option: option, labelType: labelKey, onInputOptionRemove: onInputOptionRemove, valueRenderer: valueRenderer, inputMultipleValueClassName: inputMultipleValueClassName, isDisabled: isDisabled }, typeof option === "object" && !Array.isArray(option)
|
|
210
213
|
? option[valueKey]
|
|
211
214
|
: option))), ((!isListVisible && selectedValue.length === 0) ||
|
|
212
|
-
((selectedValue.length === 0 || !selectedValue) && !isSearchable)) && (jsxRuntime.jsx("span", { className: styles
|
|
215
|
+
((selectedValue.length === 0 || !selectedValue) && !isSearchable)) && (jsxRuntime.jsx("span", { className: styles["zd__input-multiple-placeholder"], onClick: onPlaceholderClick, children: placeholder })), isSearchable && isListVisible && (jsxRuntime.jsx("li", { className: inputMultipleSearchWrapperClasses, children: jsxRuntime.jsx("input", { ref: inputRefMultipleValueRenderer, name: name, className: inputMultipleSearchClasses, placeholder: "search ...", value: currentSearchedValue, onChange: onInputChange, onKeyDown: onKeyDown }) }))] }));
|
|
213
216
|
};
|
|
214
217
|
|
|
215
218
|
const ZDropSingleInputValueRenderer = (props) => {
|
|
216
219
|
const { name, isInputItemVisible, isSearchable, selectedValue, selectedOption, valueRenderer, inputValue, isListVisible, placeholder, inputRefSingleValueRenderer, onChange, onInputItemClick, onInputOptionRemove, inputValueClassName, } = props;
|
|
217
|
-
const inputValueClasses = classNames(styles
|
|
220
|
+
const inputValueClasses = classNames(styles["zd__input-single-search"], inputValueClassName);
|
|
218
221
|
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [isInputItemVisible && selectedOption !== undefined && (jsxRuntime.jsx("div", { onClick: onInputItemClick, children: valueRenderer({
|
|
219
222
|
option: selectedOption,
|
|
220
223
|
onRemove: (e) => onInputOptionRemove(e, selectedOption),
|
|
@@ -251,9 +254,9 @@ const getLabelFromOption = (options, selectedValue, valueKey, labelKey) => {
|
|
|
251
254
|
const ZDropSingleInput = (props) => {
|
|
252
255
|
const { options, name, selectedValue, currentSearchedValue, setCurrentSearchedValue, valueKey, labelKey, isListVisible, placeholder, isDisabled, isSearchable = false, valueRenderer, inputRef, inputRefSingleValueRenderer, onInputClick, onInputItemClick, onInputKeyDown, onInputChange, onInputOptionRemove, isInputItemVisible, inputValueClassName, inputClassName, } = props;
|
|
253
256
|
const [inputValue, setInputValue] = react.useState(getLabelFromOption(options, selectedValue, valueKey, valueKey));
|
|
254
|
-
const inputSelectClasses = classNames(styles
|
|
255
|
-
[styles
|
|
256
|
-
});
|
|
257
|
+
const inputSelectClasses = classNames(styles["zd__input"], {
|
|
258
|
+
[styles["zd__input-single"]]: !!valueRenderer,
|
|
259
|
+
}, inputClassName);
|
|
257
260
|
const selectedOption = options.find((option) => {
|
|
258
261
|
if (typeof option === "object" &&
|
|
259
262
|
option !== null &&
|
|
@@ -351,28 +354,15 @@ const getCurrentMultipleValue = (selected, selectedValue, options, valueKey) =>
|
|
|
351
354
|
return [...(isSelectedValueArray ? selectedValue : []), selected];
|
|
352
355
|
};
|
|
353
356
|
|
|
354
|
-
const getElementOffsetTop = (element) => {
|
|
355
|
-
var _a, _b, _c;
|
|
356
|
-
if (!element)
|
|
357
|
-
return 0;
|
|
358
|
-
const rect = element.getBoundingClientRect();
|
|
359
|
-
const scrollTop = (_c = (_b = (_a = window.pageYOffset) !== null && _a !== void 0 ? _a : document.documentElement.scrollTop) !== null && _b !== void 0 ? _b : document.body.scrollTop) !== null && _c !== void 0 ? _c : 0;
|
|
360
|
-
return rect.top + scrollTop;
|
|
361
|
-
};
|
|
357
|
+
const getElementOffsetTop = (element) => { var _a; return element ? element.getBoundingClientRect().top + ((_a = window.scrollY) !== null && _a !== void 0 ? _a : 0) : 0; };
|
|
362
358
|
const getReferenceElementDimensions = (element, elementParentClass) => {
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
return {
|
|
370
|
-
top,
|
|
371
|
-
bottom: top + height,
|
|
372
|
-
height,
|
|
373
|
-
};
|
|
359
|
+
for (let el = element === null || element === void 0 ? void 0 : element.parentElement; el; el = el.parentElement) {
|
|
360
|
+
if (el.classList.contains(elementParentClass)) {
|
|
361
|
+
const top = getElementOffsetTop(el);
|
|
362
|
+
const height = el.scrollHeight;
|
|
363
|
+
return { top, bottom: top + height, height };
|
|
364
|
+
}
|
|
374
365
|
}
|
|
375
|
-
return getReferenceElementDimensions(parent, elementParentClass);
|
|
376
366
|
};
|
|
377
367
|
|
|
378
368
|
const distanceGap = 0;
|
|
@@ -389,51 +379,29 @@ const ZDropListWrapper = (props) => {
|
|
|
389
379
|
const [maxSpaceAbove, setMaxSpaceAbove] = react.useState(0);
|
|
390
380
|
const [maxSpaceBelow, setMaxSpaceBelow] = react.useState(0);
|
|
391
381
|
const [scrollHeight, setScrollHeight] = react.useState(0);
|
|
382
|
+
const listWrapperRef = react.useRef(null);
|
|
392
383
|
const hasTopSpace = maxSpaceAbove > minUsableHeight;
|
|
393
384
|
const hasBottomSpace = maxSpaceBelow > minUsableHeight;
|
|
394
385
|
let finalPosition;
|
|
395
386
|
if (positionToReferenceElement === "top") {
|
|
396
|
-
if (hasTopSpace)
|
|
387
|
+
if (hasTopSpace)
|
|
397
388
|
finalPosition = "top";
|
|
398
|
-
|
|
399
|
-
else if (hasBottomSpace) {
|
|
389
|
+
else if (hasBottomSpace)
|
|
400
390
|
finalPosition = "bottom";
|
|
401
|
-
|
|
402
|
-
else {
|
|
391
|
+
else
|
|
403
392
|
finalPosition = maxSpaceAbove >= maxSpaceBelow ? "top" : "bottom";
|
|
404
|
-
}
|
|
405
393
|
}
|
|
406
394
|
else {
|
|
407
|
-
if (hasBottomSpace)
|
|
395
|
+
if (hasBottomSpace)
|
|
408
396
|
finalPosition = "bottom";
|
|
409
|
-
|
|
410
|
-
else if (hasTopSpace) {
|
|
397
|
+
else if (hasTopSpace)
|
|
411
398
|
finalPosition = "top";
|
|
412
|
-
|
|
413
|
-
else {
|
|
399
|
+
else
|
|
414
400
|
finalPosition = maxSpaceBelow >= maxSpaceAbove ? "bottom" : "top";
|
|
415
|
-
}
|
|
416
401
|
}
|
|
417
402
|
const heightForBottom = Math.min(scrollHeight, maxSpaceBelow, listMaxHeightLimiter !== null && listMaxHeightLimiter !== void 0 ? listMaxHeightLimiter : maxSpaceBelow);
|
|
418
403
|
const heightForTop = calculateHeightForTop(scrollHeight, listMaxHeightLimiter !== null && listMaxHeightLimiter !== void 0 ? listMaxHeightLimiter : maxSpaceAbove, maxSpaceAbove);
|
|
419
404
|
const finalHeight = finalPosition === "top" ? heightForTop : heightForBottom;
|
|
420
|
-
const setWrapperMaxSpaces = (element, referenceElementClassName) => {
|
|
421
|
-
const wrapperListOffsetTop = getElementOffsetTop(element);
|
|
422
|
-
const referenceElement = getReferenceElementDimensions(element, referenceElementClassName);
|
|
423
|
-
if (referenceElement) {
|
|
424
|
-
const above = Math.max(wrapperListOffsetTop - referenceElement.top - distanceGap, 0);
|
|
425
|
-
const below = Math.max(referenceElement.bottom - wrapperListOffsetTop - distanceGap, 0);
|
|
426
|
-
setMaxSpaceAbove(above);
|
|
427
|
-
setMaxSpaceBelow(below);
|
|
428
|
-
const content = element.children[0];
|
|
429
|
-
setScrollHeight(content ? content.scrollHeight : 0);
|
|
430
|
-
}
|
|
431
|
-
};
|
|
432
|
-
const listWrapperRef = react.useCallback((node) => {
|
|
433
|
-
if (node) {
|
|
434
|
-
setWrapperMaxSpaces(node, referenceElementClassName);
|
|
435
|
-
}
|
|
436
|
-
}, [referenceElementClassName]);
|
|
437
405
|
const wrapperStyle = {
|
|
438
406
|
position: "absolute",
|
|
439
407
|
height: `${finalHeight}px`,
|
|
@@ -442,7 +410,37 @@ const ZDropListWrapper = (props) => {
|
|
|
442
410
|
? { top: `-${finalHeight + marginTop}px` }
|
|
443
411
|
: { top: "100%" }),
|
|
444
412
|
};
|
|
445
|
-
|
|
413
|
+
const setWrapperMaxSpaces = (listWrapper, referenceClassName) => {
|
|
414
|
+
const anchor = listWrapper.parentElement;
|
|
415
|
+
if (!anchor) {
|
|
416
|
+
return;
|
|
417
|
+
}
|
|
418
|
+
const reference = getReferenceElementDimensions(anchor, referenceClassName);
|
|
419
|
+
if (!reference) {
|
|
420
|
+
return;
|
|
421
|
+
}
|
|
422
|
+
const anchorTop = getElementOffsetTop(anchor);
|
|
423
|
+
const anchorBottom = anchorTop + anchor.offsetHeight;
|
|
424
|
+
const above = Math.max(anchorTop - reference.top - distanceGap, 0);
|
|
425
|
+
const below = Math.max(reference.bottom - anchorBottom - distanceGap, 0);
|
|
426
|
+
setMaxSpaceAbove(above);
|
|
427
|
+
setMaxSpaceBelow(below);
|
|
428
|
+
const content = listWrapper.children[0];
|
|
429
|
+
setScrollHeight(content ? content.scrollHeight : 0);
|
|
430
|
+
};
|
|
431
|
+
react.useLayoutEffect(() => {
|
|
432
|
+
if (!(listWrapperRef === null || listWrapperRef === void 0 ? void 0 : listWrapperRef.current)) {
|
|
433
|
+
return;
|
|
434
|
+
}
|
|
435
|
+
setWrapperMaxSpaces(listWrapperRef.current, referenceElementClassName);
|
|
436
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
437
|
+
}, [
|
|
438
|
+
referenceElementClassName,
|
|
439
|
+
positionToReferenceElement,
|
|
440
|
+
listMaxHeightLimiter,
|
|
441
|
+
children,
|
|
442
|
+
]);
|
|
443
|
+
return (jsxRuntime.jsx("div", { className: styles["zd__list-wrapper"], ref: listWrapperRef, style: wrapperStyle, children: children }));
|
|
446
444
|
};
|
|
447
445
|
|
|
448
446
|
const checkIsValueEqualToSelectedValue = (value, selectedValue) => {
|
|
@@ -464,8 +462,116 @@ const checkIsValueEqualToSelectedValue = (value, selectedValue) => {
|
|
|
464
462
|
return keysA.every((key) => checkIsValueEqualToSelectedValue(value[key], selectedValue[key]));
|
|
465
463
|
};
|
|
466
464
|
|
|
465
|
+
const getAvailableSpace = (element) => {
|
|
466
|
+
if (!element)
|
|
467
|
+
return { top: 0, bottom: 0 };
|
|
468
|
+
const rect = element.getBoundingClientRect();
|
|
469
|
+
const viewportHeight = window.innerHeight || document.documentElement.clientHeight;
|
|
470
|
+
const spaceTop = Math.max(0, rect.top);
|
|
471
|
+
const spaceBottom = Math.max(0, viewportHeight - rect.bottom);
|
|
472
|
+
return {
|
|
473
|
+
top: spaceTop,
|
|
474
|
+
bottom: spaceBottom,
|
|
475
|
+
};
|
|
476
|
+
};
|
|
477
|
+
|
|
478
|
+
const ZDropListAutoHeightWrapper = (props) => {
|
|
479
|
+
const { containerRef, position = "bottom", children } = props;
|
|
480
|
+
const contentRef = react.useRef(null);
|
|
481
|
+
const [forcedPositionY, setForcedPositionY] = react.useState();
|
|
482
|
+
const [contentHeightValue, setContentHeightValue] = react.useState();
|
|
483
|
+
console.log(contentHeightValue);
|
|
484
|
+
const positionStyles = {
|
|
485
|
+
position: "absolute",
|
|
486
|
+
...(position.includes("top") ? { bottom: "100%" } : { top: "100%" }),
|
|
487
|
+
...(forcedPositionY && { ...forcedPositionY }),
|
|
488
|
+
...(contentHeightValue && { maxHeight: contentHeightValue + "px" }),
|
|
489
|
+
};
|
|
490
|
+
const calculateContentHeight = react.useCallback(() => {
|
|
491
|
+
var _a, _b;
|
|
492
|
+
if ((contentRef === null || contentRef === void 0 ? void 0 : contentRef.current) && (containerRef === null || containerRef === void 0 ? void 0 : containerRef.current)) {
|
|
493
|
+
const { top, bottom } = getAvailableSpace(containerRef.current);
|
|
494
|
+
console.log({ position, top, bottom });
|
|
495
|
+
const availableTop = Math.max(0, top);
|
|
496
|
+
const availableBottom = Math.max(0, bottom);
|
|
497
|
+
const liElementHeight = (_b = (_a = contentRef === null || contentRef === void 0 ? void 0 : contentRef.current) === null || _a === void 0 ? void 0 : _a.querySelector("li")) === null || _b === void 0 ? void 0 : _b.getBoundingClientRect().height;
|
|
498
|
+
if (!liElementHeight) {
|
|
499
|
+
return;
|
|
500
|
+
}
|
|
501
|
+
const approvedHeight = liElementHeight * 2;
|
|
502
|
+
if (position.includes("top") && availableTop > approvedHeight) {
|
|
503
|
+
setContentHeightValue(availableTop);
|
|
504
|
+
return;
|
|
505
|
+
}
|
|
506
|
+
if (position.includes("top") && availableTop <= approvedHeight) {
|
|
507
|
+
setContentHeightValue(availableBottom);
|
|
508
|
+
setForcedPositionY({ top: "100%", bottom: "auto" });
|
|
509
|
+
return;
|
|
510
|
+
}
|
|
511
|
+
if (position.includes("bottom") && availableBottom > approvedHeight) {
|
|
512
|
+
setContentHeightValue(availableBottom);
|
|
513
|
+
console.log("bottom available");
|
|
514
|
+
return;
|
|
515
|
+
}
|
|
516
|
+
if (position.includes("bottom") && availableBottom <= approvedHeight) {
|
|
517
|
+
setContentHeightValue(availableTop);
|
|
518
|
+
setForcedPositionY({ top: "auto", bottom: "100%" });
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
}, [containerRef, position]);
|
|
522
|
+
const preventFromOverflowY = react.useCallback(() => {
|
|
523
|
+
if (!(containerRef === null || containerRef === void 0 ? void 0 : containerRef.current) || !contentRef.current) {
|
|
524
|
+
return;
|
|
525
|
+
}
|
|
526
|
+
const dropdownHeight = containerRef.current.scrollHeight;
|
|
527
|
+
const dropdownPositionY = containerRef.current.getBoundingClientRect().y;
|
|
528
|
+
const viewportHeight = window.innerHeight || document.documentElement.clientHeight;
|
|
529
|
+
const isOverFlowTop = dropdownPositionY < contentRef.current.scrollHeight;
|
|
530
|
+
console.log({ dropdownPositionY, dropdownHeight, viewportHeight });
|
|
531
|
+
const isOverFlowBottom = dropdownPositionY + dropdownHeight + contentRef.current.clientHeight >
|
|
532
|
+
viewportHeight;
|
|
533
|
+
console.log({ isOverFlowTop, isOverFlowBottom });
|
|
534
|
+
if (!isOverFlowTop && !isOverFlowBottom) {
|
|
535
|
+
setForcedPositionY(undefined);
|
|
536
|
+
setContentHeightValue(undefined);
|
|
537
|
+
return;
|
|
538
|
+
}
|
|
539
|
+
if (!isOverFlowTop && isOverFlowBottom) {
|
|
540
|
+
setForcedPositionY({ top: "auto", bottom: "100%" });
|
|
541
|
+
setContentHeightValue(undefined);
|
|
542
|
+
return;
|
|
543
|
+
}
|
|
544
|
+
if (isOverFlowTop && !isOverFlowBottom) {
|
|
545
|
+
setForcedPositionY({ top: "100%", bottom: "auto" });
|
|
546
|
+
setContentHeightValue(undefined);
|
|
547
|
+
return;
|
|
548
|
+
}
|
|
549
|
+
if (isOverFlowTop && isOverFlowBottom) {
|
|
550
|
+
calculateContentHeight();
|
|
551
|
+
}
|
|
552
|
+
}, [containerRef, calculateContentHeight]);
|
|
553
|
+
react.useLayoutEffect(() => {
|
|
554
|
+
preventFromOverflowY();
|
|
555
|
+
}, [containerRef]);
|
|
556
|
+
react.useLayoutEffect(() => {
|
|
557
|
+
let timeId;
|
|
558
|
+
const onResize = () => {
|
|
559
|
+
clearTimeout(timeId);
|
|
560
|
+
timeId = setTimeout(() => {
|
|
561
|
+
preventFromOverflowY();
|
|
562
|
+
}, 50);
|
|
563
|
+
};
|
|
564
|
+
window.addEventListener("resize", onResize);
|
|
565
|
+
return () => {
|
|
566
|
+
clearTimeout(timeId);
|
|
567
|
+
window.removeEventListener("resize", onResize);
|
|
568
|
+
};
|
|
569
|
+
}, [preventFromOverflowY]);
|
|
570
|
+
return (jsxRuntime.jsx("div", { className: styles["zd__list-auto-height-wrapper"], style: positionStyles, ref: contentRef, children: children }));
|
|
571
|
+
};
|
|
572
|
+
|
|
467
573
|
const ZDrop = (props) => {
|
|
468
|
-
const { name, options, value, valueKey = "value", label, labelKey = "label", placeholder, isMultiple = false, isDisabled = false, isSearchable = false, clear = "none", searchFilterDelay, searchFilter = defaultSearchFilter, shouldReturnObjectOnChange = false, onChange, onBlur, onClear, valueRenderer, optionRenderer, expandToggleRenderer, clearIcon, noDataContent, referenceElementClassName, positionToReferenceElement, listMaxHeightLimiter, styleClasses, } = props;
|
|
574
|
+
const { name, options, value, valueKey = "value", label, labelKey = "label", placeholder, isMultiple = false, isDisabled = false, isSearchable = false, clear = "none", searchFilterDelay, searchFilter = defaultSearchFilter, shouldReturnObjectOnChange = false, onChange, onBlur, onClear, valueRenderer, optionRenderer, expandToggleRenderer, clearIcon, noDataContent, referenceElementClassName, positionToReferenceElement, autoHeightPosition, isAutoHeightEnabled, listMaxHeightLimiter, styleClasses, } = props;
|
|
469
575
|
const containerRef = react.useRef(null);
|
|
470
576
|
const inputRef = react.useRef(null);
|
|
471
577
|
const inputRefSingleValueRenderer = react.useRef(null);
|
|
@@ -485,11 +591,11 @@ const ZDrop = (props) => {
|
|
|
485
591
|
const isSelectedValueCorrect = selectedValue !== undefined &&
|
|
486
592
|
selectedValue !== null &&
|
|
487
593
|
selectedValue !== "";
|
|
488
|
-
const containerClasses = classNames(styles
|
|
489
|
-
const inputFieldClasses = classNames(styles
|
|
490
|
-
[styles["
|
|
491
|
-
[styles["
|
|
492
|
-
});
|
|
594
|
+
const containerClasses = classNames(styles["zd__container"], styleClasses === null || styleClasses === void 0 ? void 0 : styleClasses.container);
|
|
595
|
+
const inputFieldClasses = classNames(styles["zd__input-field"], {
|
|
596
|
+
[styles["zd__input-field--multiple"]]: isMultiple,
|
|
597
|
+
[styles["zd__input-field--disabled"]]: isDisabled,
|
|
598
|
+
}, styleClasses === null || styleClasses === void 0 ? void 0 : styleClasses.inputField);
|
|
493
599
|
const updateOptionsDataBySearch = (options, currentValue, labelKey) => {
|
|
494
600
|
const searchResult = searchFilter({
|
|
495
601
|
options,
|
|
@@ -598,7 +704,7 @@ const ZDrop = (props) => {
|
|
|
598
704
|
searchFilterDelay,
|
|
599
705
|
]);
|
|
600
706
|
const onInputKeyDown = (e) => {
|
|
601
|
-
var _a;
|
|
707
|
+
var _a, _b;
|
|
602
708
|
if (!isListVisible && ["Enter", " "].includes(e.key)) {
|
|
603
709
|
if (e.currentTarget !== e.target) {
|
|
604
710
|
return;
|
|
@@ -610,6 +716,10 @@ const ZDrop = (props) => {
|
|
|
610
716
|
e.preventDefault();
|
|
611
717
|
(_a = optionsRef.current[0]) === null || _a === void 0 ? void 0 : _a.focus();
|
|
612
718
|
}
|
|
719
|
+
if (e.key === "ArrowUp" && isListVisible) {
|
|
720
|
+
e.preventDefault();
|
|
721
|
+
(_b = optionsRef.current[optionsRef.current.length - 1]) === null || _b === void 0 ? void 0 : _b.focus();
|
|
722
|
+
}
|
|
613
723
|
if (!isListVisible && isSearchable && !isMultiple && valueRenderer) {
|
|
614
724
|
setIsInputItemVisible(false);
|
|
615
725
|
}
|
|
@@ -714,6 +824,10 @@ const ZDrop = (props) => {
|
|
|
714
824
|
e.preventDefault();
|
|
715
825
|
(_d = optionsRef.current[index + 1]) === null || _d === void 0 ? void 0 : _d.focus();
|
|
716
826
|
}
|
|
827
|
+
if (e.key === "ArrowDown" && index === optionsData.length - 1) {
|
|
828
|
+
e.preventDefault();
|
|
829
|
+
applyInputSelectFocus();
|
|
830
|
+
}
|
|
717
831
|
if (e.key === "ArrowUp" && index === 0) {
|
|
718
832
|
e.preventDefault();
|
|
719
833
|
applyInputSelectFocus();
|
|
@@ -759,7 +873,7 @@ const ZDrop = (props) => {
|
|
|
759
873
|
list: styleClasses === null || styleClasses === void 0 ? void 0 : styleClasses.list,
|
|
760
874
|
listItem: styleClasses === null || styleClasses === void 0 ? void 0 : styleClasses.listItem,
|
|
761
875
|
noData: styleClasses === null || styleClasses === void 0 ? void 0 : styleClasses.noData,
|
|
762
|
-
}, isListWrapperEnabled: !!referenceElementClassName }));
|
|
876
|
+
}, isListWrapperEnabled: !!referenceElementClassName, isAutoHeightEnabled: isAutoHeightEnabled }));
|
|
763
877
|
return (jsxRuntime.jsxs("div", { ref: containerRef, className: containerClasses, onBlur: onBlur, children: [label && (jsxRuntime.jsx(ZDropLabel, { name: name, label: label, className: styleClasses === null || styleClasses === void 0 ? void 0 : styleClasses.label })), jsxRuntime.jsxs("div", { className: inputFieldClasses, onClick: onInputFieldClick, children: [jsxRuntime.jsx(ZDropInput, { name: name, options: options || [], selectedValue: selectedValue, ...(isSearchable && {
|
|
764
878
|
currentSearchedValue: currentSearchedValue,
|
|
765
879
|
setCurrentSearchedValue: setCurrentSearchedValue,
|
|
@@ -771,12 +885,15 @@ const ZDrop = (props) => {
|
|
|
771
885
|
} }), isClearable && (jsxRuntime.jsx(ZDropClearButton, { hasValueChanged: hasValueChanged, currentSearchedValue: currentSearchedValue, onInputClear: onInputClear, isListVisible: isListVisible, isClearableOnlyWhenChange: isClearableOnlyWhenChange, isClearableOnlyWhenSearch: isClearableOnlyWhenSearch, className: styleClasses === null || styleClasses === void 0 ? void 0 : styleClasses.clearButton, clearIcon: clearIcon })), jsxRuntime.jsx(ZDropListVisibilityToggle, { expandToggleRenderer: expandToggleRenderer, isListVisible: isListVisible, onClick: onExpandToggleClick, toggleStyleClasses: {
|
|
772
886
|
expandToggle: styleClasses === null || styleClasses === void 0 ? void 0 : styleClasses.expandToggle,
|
|
773
887
|
expandToggleIcon: styleClasses === null || styleClasses === void 0 ? void 0 : styleClasses.expandToggleIcon,
|
|
774
|
-
} })] }), isListVisible &&
|
|
888
|
+
} })] }), isListVisible &&
|
|
889
|
+
!referenceElementClassName &&
|
|
890
|
+
!isAutoHeightEnabled &&
|
|
891
|
+
zDropList, isListVisible && referenceElementClassName && (jsxRuntime.jsx(ZDropListWrapper, { referenceElementClassName: referenceElementClassName, positionToReferenceElement: positionToReferenceElement, listMaxHeightLimiter: listMaxHeightLimiter, children: zDropList })), isListVisible && isAutoHeightEnabled && !referenceElementClassName && (jsxRuntime.jsx(ZDropListAutoHeightWrapper, { containerRef: containerRef, position: autoHeightPosition, children: zDropList }))] }));
|
|
775
892
|
};
|
|
776
893
|
|
|
777
894
|
function ZDropField(props) {
|
|
778
895
|
const { control, name, rules, onChangeTransform, valueSelector, errorClassName, errorRenderer, ...zDropProps } = props;
|
|
779
|
-
const errorMessageClasses = classNames(styles
|
|
896
|
+
const errorMessageClasses = classNames(styles["zd__error-message"], errorClassName);
|
|
780
897
|
return (jsxRuntime.jsx(reactHookForm.Controller, { control: control, name: name, rules: rules, render: ({ field, fieldState }) => {
|
|
781
898
|
var _a;
|
|
782
899
|
const { onChange, value, name: fieldName, onBlur } = field;
|
|
@@ -786,7 +903,10 @@ function ZDropField(props) {
|
|
|
786
903
|
? onChangeTransform(newValue)
|
|
787
904
|
: newValue);
|
|
788
905
|
};
|
|
789
|
-
|
|
906
|
+
const { isAutoHeightEnabled, autoHeightPosition, referenceElementClassName, positionToReferenceElement, ...rest } = zDropProps;
|
|
907
|
+
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(ZDrop, { name: fieldName, value: zDropValue, onChange: handleChange, onBlur: onBlur, ...(isAutoHeightEnabled
|
|
908
|
+
? { isAutoHeightEnabled, autoHeightPosition }
|
|
909
|
+
: { referenceElementClassName, positionToReferenceElement }), ...rest }), ((_a = fieldState.error) === null || _a === void 0 ? void 0 : _a.message) && (jsxRuntime.jsx("div", { className: errorMessageClasses, children: errorRenderer
|
|
790
910
|
? errorRenderer(fieldState.error.message)
|
|
791
911
|
: fieldState.error.message }))] }));
|
|
792
912
|
} }));
|
|
@@ -794,4 +914,7 @@ function ZDropField(props) {
|
|
|
794
914
|
|
|
795
915
|
exports.ZDrop = ZDrop;
|
|
796
916
|
exports.ZDropField = ZDropField;
|
|
797
|
-
|
|
917
|
+
exports.classNames = classNames;
|
|
918
|
+
exports.getAvailableSpace = getAvailableSpace;
|
|
919
|
+
exports.useOutsideClose = useOutsideClose;
|
|
920
|
+
//# sourceMappingURL=index-CfSBwowY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-CfSBwowY.js","sources":["../src/helpers/classNames.ts","../src/hooks/useOutsideClose.ts","../src/components/ZDrop/components/ZDropLabel/index.tsx","../src/components/ZDrop/components/ZDropList/ZDropListItem/index.tsx","../src/components/ZDrop/components/ZDropList/ZDropListNoData/index.tsx","../src/components/ZDrop/helpers/checkIsValueEqualToOption.ts","../src/components/ZDrop/helpers/checkIsOptionSelected.ts","../src/components/ZDrop/components/ZDropList/index.tsx","../src/components/ZDrop/components/ZDropListVisibilityToggle/index.tsx","../src/components/ZDrop/helpers/checkIsClearButtonHidden.ts","../src/components/ZDrop/components/ZDropClearButton/index.tsx","../src/components/ZDrop/components/ZDropInput/ZDropMultipleInputValue/index.tsx","../src/components/ZDrop/components/ZDropInput/ZDropMultipleInput/index.tsx","../src/components/ZDrop/components/ZDropInput/ZDropSingleInputValue/index.tsx","../src/components/ZDrop/helpers/getLabelFromOption.ts","../src/components/ZDrop/components/ZDropInput/ZDropSingleInput/index.tsx","../src/components/ZDrop/components/ZDropInput/index.tsx","../src/components/ZDrop/helpers/findOption.ts","../src/components/ZDrop/helpers/searchFilter.ts","../src/components/ZDrop/helpers/getCurrentMultipleValue.ts","../src/components/ZDrop/helpers/getElementOffsetTop.ts","../src/components/ZDrop/components/ZDropList/ZDropListWrapper/index.tsx","../src/components/ZDrop/helpers/checkIsValueEqualToSelectedValue.ts","../src/helpers/getAvailableSpace.ts","../src/components/ZDrop/components/ZDropList/ZDropListAutoHeightWrapper/index.tsx","../src/components/ZDrop/index.tsx","../src/components/ZDrop/integrations/react-hook-form/ZDropField/index.tsx"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["useEffect","_jsx","_jsxs","_Fragment","useState","ZDropSingleInputValue","useRef","useLayoutEffect","useCallback","Controller"],"mappings":"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"}
|