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.
Files changed (29) hide show
  1. package/dist/{index-BDEyCrDG.js → index-CfSBwowY.js} +215 -92
  2. package/dist/index-CfSBwowY.js.map +1 -0
  3. package/dist/{index-Ctbq3kHw.js → index-DC_KVC71.js} +214 -94
  4. package/dist/index-DC_KVC71.js.map +1 -0
  5. package/dist/index.cjs.js +315 -3
  6. package/dist/index.cjs.js.map +1 -1
  7. package/dist/index.d.ts +80 -3
  8. package/dist/index.esm.js +319 -3
  9. package/dist/index.esm.js.map +1 -1
  10. package/dist/react-hook-form.cjs.js +1 -1
  11. package/dist/react-hook-form.d.ts +24 -5
  12. package/dist/react-hook-form.esm.js +1 -1
  13. package/dist/types/components/ZDrop/components/ZDropList/ZDropListAutoHeightWrapper/index.d.ts +3 -0
  14. package/dist/types/components/ZDrop/types/zDropTypes.d.ts +22 -3
  15. package/dist/types/components/ZDropButton/components/ZDropButtonContent/index.d.ts +3 -0
  16. package/dist/types/components/ZDropButton/components/ZDropButtonList/index.d.ts +3 -0
  17. package/dist/types/components/ZDropButton/components/ZDropButtonListItem/index.d.ts +3 -0
  18. package/dist/types/components/ZDropButton/components/ZDropButtonSearch/index.d.ts +3 -0
  19. package/dist/types/components/ZDropButton/components/ZDropButtonToggle/index.d.ts +3 -0
  20. package/dist/types/components/ZDropButton/index.d.ts +10 -0
  21. package/dist/types/components/ZDropButton/types/zDropButtonTypes.d.ts +69 -0
  22. package/dist/types/helpers/classNames.d.ts +1 -1
  23. package/dist/types/helpers/getAvailableSpace.d.ts +6 -0
  24. package/dist/types/index.d.ts +2 -0
  25. package/dist/zcomponents-ui.css +1 -1
  26. package/dist/zcomponents-ui.css.map +1 -1
  27. package/package.json +1 -1
  28. package/dist/index-BDEyCrDG.js.map +0 -1
  29. package/dist/index-Ctbq3kHw.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { Controller } from 'react-hook-form';
3
- import { useEffect, useState, useCallback, useRef } from 'react';
3
+ import { useEffect, useState, useRef, useLayoutEffect, useCallback } from 'react';
4
4
 
5
5
  const classNames = (...params) => {
6
6
  const classes = [];
@@ -10,7 +10,7 @@ const classNames = (...params) => {
10
10
  }
11
11
  else if (param && typeof param === "object") {
12
12
  Object.entries(param).forEach(([key, value]) => {
13
- if (value) {
13
+ if (typeof key === "string" && key !== "undefined" && value) {
14
14
  classes.push(key);
15
15
  }
16
16
  });
@@ -50,11 +50,11 @@ const useOutsideClose = (ref, onOutsideClose, settings) => {
50
50
  }, [onOutsideClose, ref, isActive]);
51
51
  };
52
52
 
53
- var styles = {"container":"ZDrop-module_container__FMb26","label":"ZDrop-module_label__WDDr6","inputField":"ZDrop-module_inputField__QPEyq","inputField--multiple":"ZDrop-module_inputField--multiple__ceTgA","inputField--disabled":"ZDrop-module_inputField--disabled__Iocv1","input":"ZDrop-module_input__k-MBA","inputSingle":"ZDrop-module_inputSingle__zZmCf","inputSingleSearch":"ZDrop-module_inputSingleSearch__oIk6K","inputMultiple":"ZDrop-module_inputMultiple__oF9wt","inputMultipleValue":"ZDrop-module_inputMultipleValue__lSYME","inputMultipleValueRemoveBtn":"ZDrop-module_inputMultipleValueRemoveBtn__gbFkS","inputMultipleValueRemoveBtnIcon":"ZDrop-module_inputMultipleValueRemoveBtnIcon__i4VBS","inputMultipleSearchWrapper":"ZDrop-module_inputMultipleSearchWrapper__vmS7x","inputMultipleSearch":"ZDrop-module_inputMultipleSearch__-lQrC","inputMultiplePlaceholder":"ZDrop-module_inputMultiplePlaceholder__GbBo7","inputClearBtnWrapper":"ZDrop-module_inputClearBtnWrapper__S3uiC","inputClearBtn":"ZDrop-module_inputClearBtn__JY5Gm","inputClearBtnIcon":"ZDrop-module_inputClearBtnIcon__PXRiJ","expandToggle":"ZDrop-module_expandToggle__zJYI1","expandToggleIcon":"ZDrop-module_expandToggleIcon__63Yog","expandToggleIcon--active":"ZDrop-module_expandToggleIcon--active__h2I5u","listWrapper":"ZDrop-module_listWrapper__FGHRj","list":"ZDrop-module_list__162r4","list--wrapper-enabled":"ZDrop-module_list--wrapper-enabled__lCi39","option":"ZDrop-module_option__ZfKFl","noData":"ZDrop-module_noData__-70Uu","option--active":"ZDrop-module_option--active__OXcv5","errorMessage":"ZDrop-module_errorMessage__8YOT7"};
53
+ 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"};
54
54
 
55
55
  const ZDropLabel = (props) => {
56
56
  const { name, label, className } = props;
57
- const labelClasses = classNames(styles.label, className);
57
+ const labelClasses = classNames(styles["zd__label"], className);
58
58
  if (typeof label === "string") {
59
59
  return (jsx("label", { htmlFor: name, className: labelClasses, children: label }));
60
60
  }
@@ -74,7 +74,7 @@ const ZDropListItem = (props) => {
74
74
 
75
75
  const ZDropListNoData = (props) => {
76
76
  const { noDataContent, className } = props;
77
- const noDataClasses = classNames(styles.noData, className);
77
+ const noDataClasses = classNames(styles["zd__no-data"], className);
78
78
  return jsx("div", { className: noDataClasses, children: noDataContent });
79
79
  };
80
80
 
@@ -102,19 +102,22 @@ const checkIsValueEqualToOption = (selectedValue, option, valueKey) => {
102
102
  const checkIsOptionSelected = (checkIsInputValueEqualToOptionValue, value, option, valueKey) => value.some((value) => checkIsInputValueEqualToOptionValue(value, option, valueKey));
103
103
 
104
104
  const ZDropList = (props) => {
105
- const { options = [], selectedValue, valueKey, labelKey, optionsRef, optionRenderer, onOptionClick, onOptionKeyDown, noDataContent, currentSearchedValue, listStyleClasses, isListWrapperEnabled, } = props;
106
- const dropdownListClasses = classNames(styles.list, listStyleClasses === null || listStyleClasses === void 0 ? void 0 : listStyleClasses.list, {
107
- [styles["list--wrapper-enabled"]]: !!isListWrapperEnabled,
108
- });
105
+ const { options = [], selectedValue, valueKey, labelKey, optionsRef, optionRenderer, onOptionClick, onOptionKeyDown, noDataContent, currentSearchedValue, listStyleClasses, isListWrapperEnabled, isAutoHeightEnabled, } = props;
106
+ const dropdownListClasses = classNames({
107
+ [styles["zd__list"]]: !isAutoHeightEnabled,
108
+ [styles["zd__list--auto-height-enabled"]]: isAutoHeightEnabled,
109
+ [styles["zd__list--reference-wrapper-enabled"]]: isListWrapperEnabled,
110
+ }, listStyleClasses === null || listStyleClasses === void 0 ? void 0 : listStyleClasses.list);
111
+ console.log("render list", dropdownListClasses, isAutoHeightEnabled);
109
112
  const getListItemClasses = (option, isOptionSelected) => {
110
113
  if (Array.isArray(selectedValue)) {
111
- return classNames(styles.option, listStyleClasses === null || listStyleClasses === void 0 ? void 0 : listStyleClasses.listItem, {
112
- [styles["option--active"]]: isOptionSelected,
113
- });
114
+ return classNames(styles["zd__option"], {
115
+ [styles["zd__option--active"]]: isOptionSelected,
116
+ }, listStyleClasses === null || listStyleClasses === void 0 ? void 0 : listStyleClasses.listItem);
114
117
  }
115
- return classNames(styles.option, listStyleClasses === null || listStyleClasses === void 0 ? void 0 : listStyleClasses.listItem, {
116
- [styles["option--active"]]: isOptionSelected,
117
- });
118
+ return classNames(styles["zd__option"], {
119
+ [styles["zd__option--active"]]: isOptionSelected,
120
+ }, listStyleClasses === null || listStyleClasses === void 0 ? void 0 : listStyleClasses.listItem);
118
121
  };
119
122
  if (options.length === 0) {
120
123
  return (jsx(ZDropListNoData, { noDataContent: noDataContent, className: listStyleClasses === null || listStyleClasses === void 0 ? void 0 : listStyleClasses.noData }));
@@ -131,10 +134,10 @@ const ZDropList = (props) => {
131
134
 
132
135
  const ZDropListVisibilityToggle = (props) => {
133
136
  const { expandToggleRenderer, onClick, isListVisible, toggleStyleClasses } = props;
134
- const toggleClasses = classNames(styles.expandToggle, toggleStyleClasses === null || toggleStyleClasses === void 0 ? void 0 : toggleStyleClasses.expandToggle);
135
- const iconClasses = classNames(styles.expandToggleIcon, toggleStyleClasses === null || toggleStyleClasses === void 0 ? void 0 : toggleStyleClasses.expandToggleIcon, {
136
- [styles["expandToggleIcon--active"]]: isListVisible,
137
- });
137
+ const toggleClasses = classNames(styles["zd__expand-toggle"], toggleStyleClasses === null || toggleStyleClasses === void 0 ? void 0 : toggleStyleClasses.expandToggle);
138
+ const iconClasses = classNames(styles["zd__expand-toggle-icon"], {
139
+ [styles["zd__expand-toggle-icon--active"]]: isListVisible,
140
+ }, toggleStyleClasses === null || toggleStyleClasses === void 0 ? void 0 : toggleStyleClasses.expandToggleIcon);
138
141
  return (jsx("div", { className: toggleClasses, onClick: onClick, children: expandToggleRenderer ? (jsx("span", { children: expandToggleRenderer(isListVisible) })) : (jsx("span", { className: iconClasses })) }));
139
142
  };
140
143
 
@@ -155,7 +158,7 @@ const checkIsClearButtonHidden = (hasValueChanged, currentSearchedValue, isListV
155
158
 
156
159
  const ZDropClearButton = (props) => {
157
160
  const { hasValueChanged, currentSearchedValue, onInputClear, isListVisible, isClearableOnlyWhenChange, isClearableOnlyWhenSearch, className, clearIcon, } = props;
158
- const clearButtonClasses = classNames(styles.inputClearBtn, className);
161
+ const clearButtonClasses = classNames(styles["zd__input-clear-btn"], className);
159
162
  const onClear = (e) => {
160
163
  e.preventDefault();
161
164
  e.stopPropagation();
@@ -165,12 +168,12 @@ const ZDropClearButton = (props) => {
165
168
  if (checkIsClearButtonHidden(hasValueChanged, currentSearchedValue, isListVisible, isClearableOnlyWhenChange, isClearableOnlyWhenSearch)) {
166
169
  return null;
167
170
  }
168
- return (jsx("div", { className: styles.inputClearBtnWrapper, children: jsx("button", { tabIndex: -1, className: clearButtonClasses, onClick: onClear, children: clearIcon || jsx("span", { className: styles.inputClearBtnIcon }) }) }));
171
+ return (jsx("div", { className: styles["zd__input-clear-btn-wrapper"], children: jsx("button", { tabIndex: -1, className: clearButtonClasses, onClick: onClear, children: clearIcon || jsx("span", { className: styles["zd__input-clear-btn-icon"] }) }) }));
169
172
  };
170
173
 
171
174
  const ZDropMultipleInputValue = (props) => {
172
175
  const { option, labelType, onInputOptionRemove, valueRenderer, inputMultipleValueClassName, isDisabled, } = props;
173
- const inputItemClasses = classNames(styles.inputMultipleValue, inputMultipleValueClassName);
176
+ const inputItemClasses = classNames(styles["zd__input-multiple-value"], inputMultipleValueClassName);
174
177
  if (option === null || option === undefined) {
175
178
  return null;
176
179
  }
@@ -186,14 +189,14 @@ const ZDropMultipleInputValue = (props) => {
186
189
  }
187
190
  return (jsxs("li", { tabIndex: -1, className: inputItemClasses, children: [jsx("span", { children: typeof option === "object" && option !== null
188
191
  ? option[labelType] || option
189
- : option }), onInputOptionRemove && !isDisabled && (jsx("button", { tabIndex: 0, className: styles.inputMultipleValueRemoveBtn, onClick: (e) => onInputOptionRemove(e, option), children: jsx("span", { className: styles.inputMultipleValueRemoveBtnIcon }) }))] }));
192
+ : option }), onInputOptionRemove && !isDisabled && (jsx("button", { tabIndex: 0, className: styles["zd__input-multiple-value-remove-btn"], onClick: (e) => onInputOptionRemove(e, option), children: jsx("span", { className: styles["zd__input-multiple-value-remove-btn-icon"] }) }))] }));
190
193
  };
191
194
 
192
195
  const ZDropMultipleInput = (props) => {
193
196
  const { isListVisible, setIsListVisible, name, selectedValue, valueKey, labelKey, placeholder, isDisabled, isSearchable, currentSearchedValue, valueRenderer, inputRefMultipleValueRenderer, onInputClick, onInputKeyDown, onInputChange, onInputOptionRemove, inputClassName, inputMultipleValueClassName, inputMultipleSearchClassName, } = props;
194
- const inputSelectClasses = classNames(styles.input, styles.inputMultiple, inputClassName);
195
- const inputMultipleSearchClasses = classNames(styles.inputMultipleSearch);
196
- const inputMultipleSearchWrapperClasses = classNames(styles.inputMultiple, styles.inputMultipleSearchWrapper, inputMultipleSearchClassName);
197
+ const inputSelectClasses = classNames(styles["zd__input"], styles["zd__input-multiple"], inputClassName);
198
+ const inputMultipleSearchClasses = classNames(styles["zd__input-multiple-search"]);
199
+ const inputMultipleSearchWrapperClasses = classNames(styles["zd__input-multiple"], styles["zd__input-multiple-search-wrapper"], inputMultipleSearchClassName);
197
200
  const onKeyDown = (e) => {
198
201
  if (["Enter"].includes(e.key)) {
199
202
  e.preventDefault();
@@ -207,12 +210,12 @@ const ZDropMultipleInput = (props) => {
207
210
  return (jsxs("ul", { tabIndex: 0, className: inputSelectClasses, onClick: onInputClick, onKeyDown: onInputKeyDown, ...(isDisabled && { style: { pointerEvents: "none" } }), children: [selectedValue.map((option) => (jsx(ZDropMultipleInputValue, { option: option, labelType: labelKey, onInputOptionRemove: onInputOptionRemove, valueRenderer: valueRenderer, inputMultipleValueClassName: inputMultipleValueClassName, isDisabled: isDisabled }, typeof option === "object" && !Array.isArray(option)
208
211
  ? option[valueKey]
209
212
  : option))), ((!isListVisible && selectedValue.length === 0) ||
210
- ((selectedValue.length === 0 || !selectedValue) && !isSearchable)) && (jsx("span", { className: styles.inputMultiplePlaceholder, onClick: onPlaceholderClick, children: placeholder })), isSearchable && isListVisible && (jsx("li", { className: inputMultipleSearchWrapperClasses, children: jsx("input", { ref: inputRefMultipleValueRenderer, name: name, className: inputMultipleSearchClasses, placeholder: "search ...", value: currentSearchedValue, onChange: onInputChange, onKeyDown: onKeyDown }) }))] }));
213
+ ((selectedValue.length === 0 || !selectedValue) && !isSearchable)) && (jsx("span", { className: styles["zd__input-multiple-placeholder"], onClick: onPlaceholderClick, children: placeholder })), isSearchable && isListVisible && (jsx("li", { className: inputMultipleSearchWrapperClasses, children: jsx("input", { ref: inputRefMultipleValueRenderer, name: name, className: inputMultipleSearchClasses, placeholder: "search ...", value: currentSearchedValue, onChange: onInputChange, onKeyDown: onKeyDown }) }))] }));
211
214
  };
212
215
 
213
216
  const ZDropSingleInputValueRenderer = (props) => {
214
217
  const { name, isInputItemVisible, isSearchable, selectedValue, selectedOption, valueRenderer, inputValue, isListVisible, placeholder, inputRefSingleValueRenderer, onChange, onInputItemClick, onInputOptionRemove, inputValueClassName, } = props;
215
- const inputValueClasses = classNames(styles.inputSingleSearch, inputValueClassName);
218
+ const inputValueClasses = classNames(styles["zd__input-single-search"], inputValueClassName);
216
219
  return (jsxs(Fragment, { children: [isInputItemVisible && selectedOption !== undefined && (jsx("div", { onClick: onInputItemClick, children: valueRenderer({
217
220
  option: selectedOption,
218
221
  onRemove: (e) => onInputOptionRemove(e, selectedOption),
@@ -249,9 +252,9 @@ const getLabelFromOption = (options, selectedValue, valueKey, labelKey) => {
249
252
  const ZDropSingleInput = (props) => {
250
253
  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;
251
254
  const [inputValue, setInputValue] = useState(getLabelFromOption(options, selectedValue, valueKey, valueKey));
252
- const inputSelectClasses = classNames(styles.input, inputClassName, {
253
- [styles.inputSingle]: !!valueRenderer,
254
- });
255
+ const inputSelectClasses = classNames(styles["zd__input"], {
256
+ [styles["zd__input-single"]]: !!valueRenderer,
257
+ }, inputClassName);
255
258
  const selectedOption = options.find((option) => {
256
259
  if (typeof option === "object" &&
257
260
  option !== null &&
@@ -349,28 +352,15 @@ const getCurrentMultipleValue = (selected, selectedValue, options, valueKey) =>
349
352
  return [...(isSelectedValueArray ? selectedValue : []), selected];
350
353
  };
351
354
 
352
- const getElementOffsetTop = (element) => {
353
- var _a, _b, _c;
354
- if (!element)
355
- return 0;
356
- const rect = element.getBoundingClientRect();
357
- 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;
358
- return rect.top + scrollTop;
359
- };
355
+ const getElementOffsetTop = (element) => { var _a; return element ? element.getBoundingClientRect().top + ((_a = window.scrollY) !== null && _a !== void 0 ? _a : 0) : 0; };
360
356
  const getReferenceElementDimensions = (element, elementParentClass) => {
361
- const parent = element === null || element === void 0 ? void 0 : element.parentElement;
362
- if (!parent)
363
- return;
364
- if (parent.classList.contains(elementParentClass)) {
365
- const top = getElementOffsetTop(parent);
366
- const height = parent.scrollHeight;
367
- return {
368
- top,
369
- bottom: top + height,
370
- height,
371
- };
357
+ for (let el = element === null || element === void 0 ? void 0 : element.parentElement; el; el = el.parentElement) {
358
+ if (el.classList.contains(elementParentClass)) {
359
+ const top = getElementOffsetTop(el);
360
+ const height = el.scrollHeight;
361
+ return { top, bottom: top + height, height };
362
+ }
372
363
  }
373
- return getReferenceElementDimensions(parent, elementParentClass);
374
364
  };
375
365
 
376
366
  const distanceGap = 0;
@@ -387,51 +377,29 @@ const ZDropListWrapper = (props) => {
387
377
  const [maxSpaceAbove, setMaxSpaceAbove] = useState(0);
388
378
  const [maxSpaceBelow, setMaxSpaceBelow] = useState(0);
389
379
  const [scrollHeight, setScrollHeight] = useState(0);
380
+ const listWrapperRef = useRef(null);
390
381
  const hasTopSpace = maxSpaceAbove > minUsableHeight;
391
382
  const hasBottomSpace = maxSpaceBelow > minUsableHeight;
392
383
  let finalPosition;
393
384
  if (positionToReferenceElement === "top") {
394
- if (hasTopSpace) {
385
+ if (hasTopSpace)
395
386
  finalPosition = "top";
396
- }
397
- else if (hasBottomSpace) {
387
+ else if (hasBottomSpace)
398
388
  finalPosition = "bottom";
399
- }
400
- else {
389
+ else
401
390
  finalPosition = maxSpaceAbove >= maxSpaceBelow ? "top" : "bottom";
402
- }
403
391
  }
404
392
  else {
405
- if (hasBottomSpace) {
393
+ if (hasBottomSpace)
406
394
  finalPosition = "bottom";
407
- }
408
- else if (hasTopSpace) {
395
+ else if (hasTopSpace)
409
396
  finalPosition = "top";
410
- }
411
- else {
397
+ else
412
398
  finalPosition = maxSpaceBelow >= maxSpaceAbove ? "bottom" : "top";
413
- }
414
399
  }
415
400
  const heightForBottom = Math.min(scrollHeight, maxSpaceBelow, listMaxHeightLimiter !== null && listMaxHeightLimiter !== void 0 ? listMaxHeightLimiter : maxSpaceBelow);
416
401
  const heightForTop = calculateHeightForTop(scrollHeight, listMaxHeightLimiter !== null && listMaxHeightLimiter !== void 0 ? listMaxHeightLimiter : maxSpaceAbove, maxSpaceAbove);
417
402
  const finalHeight = finalPosition === "top" ? heightForTop : heightForBottom;
418
- const setWrapperMaxSpaces = (element, referenceElementClassName) => {
419
- const wrapperListOffsetTop = getElementOffsetTop(element);
420
- const referenceElement = getReferenceElementDimensions(element, referenceElementClassName);
421
- if (referenceElement) {
422
- const above = Math.max(wrapperListOffsetTop - referenceElement.top - distanceGap, 0);
423
- const below = Math.max(referenceElement.bottom - wrapperListOffsetTop - distanceGap, 0);
424
- setMaxSpaceAbove(above);
425
- setMaxSpaceBelow(below);
426
- const content = element.children[0];
427
- setScrollHeight(content ? content.scrollHeight : 0);
428
- }
429
- };
430
- const listWrapperRef = useCallback((node) => {
431
- if (node) {
432
- setWrapperMaxSpaces(node, referenceElementClassName);
433
- }
434
- }, [referenceElementClassName]);
435
403
  const wrapperStyle = {
436
404
  position: "absolute",
437
405
  height: `${finalHeight}px`,
@@ -440,7 +408,37 @@ const ZDropListWrapper = (props) => {
440
408
  ? { top: `-${finalHeight + marginTop}px` }
441
409
  : { top: "100%" }),
442
410
  };
443
- return (jsx("div", { className: styles.listWrapper, ref: listWrapperRef, style: wrapperStyle, children: children }));
411
+ const setWrapperMaxSpaces = (listWrapper, referenceClassName) => {
412
+ const anchor = listWrapper.parentElement;
413
+ if (!anchor) {
414
+ return;
415
+ }
416
+ const reference = getReferenceElementDimensions(anchor, referenceClassName);
417
+ if (!reference) {
418
+ return;
419
+ }
420
+ const anchorTop = getElementOffsetTop(anchor);
421
+ const anchorBottom = anchorTop + anchor.offsetHeight;
422
+ const above = Math.max(anchorTop - reference.top - distanceGap, 0);
423
+ const below = Math.max(reference.bottom - anchorBottom - distanceGap, 0);
424
+ setMaxSpaceAbove(above);
425
+ setMaxSpaceBelow(below);
426
+ const content = listWrapper.children[0];
427
+ setScrollHeight(content ? content.scrollHeight : 0);
428
+ };
429
+ useLayoutEffect(() => {
430
+ if (!(listWrapperRef === null || listWrapperRef === void 0 ? void 0 : listWrapperRef.current)) {
431
+ return;
432
+ }
433
+ setWrapperMaxSpaces(listWrapperRef.current, referenceElementClassName);
434
+ // eslint-disable-next-line react-hooks/exhaustive-deps
435
+ }, [
436
+ referenceElementClassName,
437
+ positionToReferenceElement,
438
+ listMaxHeightLimiter,
439
+ children,
440
+ ]);
441
+ return (jsx("div", { className: styles["zd__list-wrapper"], ref: listWrapperRef, style: wrapperStyle, children: children }));
444
442
  };
445
443
 
446
444
  const checkIsValueEqualToSelectedValue = (value, selectedValue) => {
@@ -462,8 +460,116 @@ const checkIsValueEqualToSelectedValue = (value, selectedValue) => {
462
460
  return keysA.every((key) => checkIsValueEqualToSelectedValue(value[key], selectedValue[key]));
463
461
  };
464
462
 
463
+ const getAvailableSpace = (element) => {
464
+ if (!element)
465
+ return { top: 0, bottom: 0 };
466
+ const rect = element.getBoundingClientRect();
467
+ const viewportHeight = window.innerHeight || document.documentElement.clientHeight;
468
+ const spaceTop = Math.max(0, rect.top);
469
+ const spaceBottom = Math.max(0, viewportHeight - rect.bottom);
470
+ return {
471
+ top: spaceTop,
472
+ bottom: spaceBottom,
473
+ };
474
+ };
475
+
476
+ const ZDropListAutoHeightWrapper = (props) => {
477
+ const { containerRef, position = "bottom", children } = props;
478
+ const contentRef = useRef(null);
479
+ const [forcedPositionY, setForcedPositionY] = useState();
480
+ const [contentHeightValue, setContentHeightValue] = useState();
481
+ console.log(contentHeightValue);
482
+ const positionStyles = {
483
+ position: "absolute",
484
+ ...(position.includes("top") ? { bottom: "100%" } : { top: "100%" }),
485
+ ...(forcedPositionY && { ...forcedPositionY }),
486
+ ...(contentHeightValue && { maxHeight: contentHeightValue + "px" }),
487
+ };
488
+ const calculateContentHeight = useCallback(() => {
489
+ var _a, _b;
490
+ if ((contentRef === null || contentRef === void 0 ? void 0 : contentRef.current) && (containerRef === null || containerRef === void 0 ? void 0 : containerRef.current)) {
491
+ const { top, bottom } = getAvailableSpace(containerRef.current);
492
+ console.log({ position, top, bottom });
493
+ const availableTop = Math.max(0, top);
494
+ const availableBottom = Math.max(0, bottom);
495
+ 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;
496
+ if (!liElementHeight) {
497
+ return;
498
+ }
499
+ const approvedHeight = liElementHeight * 2;
500
+ if (position.includes("top") && availableTop > approvedHeight) {
501
+ setContentHeightValue(availableTop);
502
+ return;
503
+ }
504
+ if (position.includes("top") && availableTop <= approvedHeight) {
505
+ setContentHeightValue(availableBottom);
506
+ setForcedPositionY({ top: "100%", bottom: "auto" });
507
+ return;
508
+ }
509
+ if (position.includes("bottom") && availableBottom > approvedHeight) {
510
+ setContentHeightValue(availableBottom);
511
+ console.log("bottom available");
512
+ return;
513
+ }
514
+ if (position.includes("bottom") && availableBottom <= approvedHeight) {
515
+ setContentHeightValue(availableTop);
516
+ setForcedPositionY({ top: "auto", bottom: "100%" });
517
+ }
518
+ }
519
+ }, [containerRef, position]);
520
+ const preventFromOverflowY = useCallback(() => {
521
+ if (!(containerRef === null || containerRef === void 0 ? void 0 : containerRef.current) || !contentRef.current) {
522
+ return;
523
+ }
524
+ const dropdownHeight = containerRef.current.scrollHeight;
525
+ const dropdownPositionY = containerRef.current.getBoundingClientRect().y;
526
+ const viewportHeight = window.innerHeight || document.documentElement.clientHeight;
527
+ const isOverFlowTop = dropdownPositionY < contentRef.current.scrollHeight;
528
+ console.log({ dropdownPositionY, dropdownHeight, viewportHeight });
529
+ const isOverFlowBottom = dropdownPositionY + dropdownHeight + contentRef.current.clientHeight >
530
+ viewportHeight;
531
+ console.log({ isOverFlowTop, isOverFlowBottom });
532
+ if (!isOverFlowTop && !isOverFlowBottom) {
533
+ setForcedPositionY(undefined);
534
+ setContentHeightValue(undefined);
535
+ return;
536
+ }
537
+ if (!isOverFlowTop && isOverFlowBottom) {
538
+ setForcedPositionY({ top: "auto", bottom: "100%" });
539
+ setContentHeightValue(undefined);
540
+ return;
541
+ }
542
+ if (isOverFlowTop && !isOverFlowBottom) {
543
+ setForcedPositionY({ top: "100%", bottom: "auto" });
544
+ setContentHeightValue(undefined);
545
+ return;
546
+ }
547
+ if (isOverFlowTop && isOverFlowBottom) {
548
+ calculateContentHeight();
549
+ }
550
+ }, [containerRef, calculateContentHeight]);
551
+ useLayoutEffect(() => {
552
+ preventFromOverflowY();
553
+ }, [containerRef]);
554
+ useLayoutEffect(() => {
555
+ let timeId;
556
+ const onResize = () => {
557
+ clearTimeout(timeId);
558
+ timeId = setTimeout(() => {
559
+ preventFromOverflowY();
560
+ }, 50);
561
+ };
562
+ window.addEventListener("resize", onResize);
563
+ return () => {
564
+ clearTimeout(timeId);
565
+ window.removeEventListener("resize", onResize);
566
+ };
567
+ }, [preventFromOverflowY]);
568
+ return (jsx("div", { className: styles["zd__list-auto-height-wrapper"], style: positionStyles, ref: contentRef, children: children }));
569
+ };
570
+
465
571
  const ZDrop = (props) => {
466
- 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;
572
+ 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;
467
573
  const containerRef = useRef(null);
468
574
  const inputRef = useRef(null);
469
575
  const inputRefSingleValueRenderer = useRef(null);
@@ -483,11 +589,11 @@ const ZDrop = (props) => {
483
589
  const isSelectedValueCorrect = selectedValue !== undefined &&
484
590
  selectedValue !== null &&
485
591
  selectedValue !== "";
486
- const containerClasses = classNames(styles.container, styleClasses === null || styleClasses === void 0 ? void 0 : styleClasses.container);
487
- const inputFieldClasses = classNames(styles.inputField, styleClasses === null || styleClasses === void 0 ? void 0 : styleClasses.inputField, {
488
- [styles["inputField--multiple"]]: isMultiple,
489
- [styles["inputField--disabled"]]: isDisabled,
490
- });
592
+ const containerClasses = classNames(styles["zd__container"], styleClasses === null || styleClasses === void 0 ? void 0 : styleClasses.container);
593
+ const inputFieldClasses = classNames(styles["zd__input-field"], {
594
+ [styles["zd__input-field--multiple"]]: isMultiple,
595
+ [styles["zd__input-field--disabled"]]: isDisabled,
596
+ }, styleClasses === null || styleClasses === void 0 ? void 0 : styleClasses.inputField);
491
597
  const updateOptionsDataBySearch = (options, currentValue, labelKey) => {
492
598
  const searchResult = searchFilter({
493
599
  options,
@@ -596,7 +702,7 @@ const ZDrop = (props) => {
596
702
  searchFilterDelay,
597
703
  ]);
598
704
  const onInputKeyDown = (e) => {
599
- var _a;
705
+ var _a, _b;
600
706
  if (!isListVisible && ["Enter", " "].includes(e.key)) {
601
707
  if (e.currentTarget !== e.target) {
602
708
  return;
@@ -608,6 +714,10 @@ const ZDrop = (props) => {
608
714
  e.preventDefault();
609
715
  (_a = optionsRef.current[0]) === null || _a === void 0 ? void 0 : _a.focus();
610
716
  }
717
+ if (e.key === "ArrowUp" && isListVisible) {
718
+ e.preventDefault();
719
+ (_b = optionsRef.current[optionsRef.current.length - 1]) === null || _b === void 0 ? void 0 : _b.focus();
720
+ }
611
721
  if (!isListVisible && isSearchable && !isMultiple && valueRenderer) {
612
722
  setIsInputItemVisible(false);
613
723
  }
@@ -712,6 +822,10 @@ const ZDrop = (props) => {
712
822
  e.preventDefault();
713
823
  (_d = optionsRef.current[index + 1]) === null || _d === void 0 ? void 0 : _d.focus();
714
824
  }
825
+ if (e.key === "ArrowDown" && index === optionsData.length - 1) {
826
+ e.preventDefault();
827
+ applyInputSelectFocus();
828
+ }
715
829
  if (e.key === "ArrowUp" && index === 0) {
716
830
  e.preventDefault();
717
831
  applyInputSelectFocus();
@@ -757,7 +871,7 @@ const ZDrop = (props) => {
757
871
  list: styleClasses === null || styleClasses === void 0 ? void 0 : styleClasses.list,
758
872
  listItem: styleClasses === null || styleClasses === void 0 ? void 0 : styleClasses.listItem,
759
873
  noData: styleClasses === null || styleClasses === void 0 ? void 0 : styleClasses.noData,
760
- }, isListWrapperEnabled: !!referenceElementClassName }));
874
+ }, isListWrapperEnabled: !!referenceElementClassName, isAutoHeightEnabled: isAutoHeightEnabled }));
761
875
  return (jsxs("div", { ref: containerRef, className: containerClasses, onBlur: onBlur, children: [label && (jsx(ZDropLabel, { name: name, label: label, className: styleClasses === null || styleClasses === void 0 ? void 0 : styleClasses.label })), jsxs("div", { className: inputFieldClasses, onClick: onInputFieldClick, children: [jsx(ZDropInput, { name: name, options: options || [], selectedValue: selectedValue, ...(isSearchable && {
762
876
  currentSearchedValue: currentSearchedValue,
763
877
  setCurrentSearchedValue: setCurrentSearchedValue,
@@ -769,12 +883,15 @@ const ZDrop = (props) => {
769
883
  } }), isClearable && (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 })), jsx(ZDropListVisibilityToggle, { expandToggleRenderer: expandToggleRenderer, isListVisible: isListVisible, onClick: onExpandToggleClick, toggleStyleClasses: {
770
884
  expandToggle: styleClasses === null || styleClasses === void 0 ? void 0 : styleClasses.expandToggle,
771
885
  expandToggleIcon: styleClasses === null || styleClasses === void 0 ? void 0 : styleClasses.expandToggleIcon,
772
- } })] }), isListVisible && !referenceElementClassName && zDropList, isListVisible && referenceElementClassName && (jsx(ZDropListWrapper, { referenceElementClassName: referenceElementClassName, positionToReferenceElement: positionToReferenceElement, listMaxHeightLimiter: listMaxHeightLimiter, children: zDropList }))] }));
886
+ } })] }), isListVisible &&
887
+ !referenceElementClassName &&
888
+ !isAutoHeightEnabled &&
889
+ zDropList, isListVisible && referenceElementClassName && (jsx(ZDropListWrapper, { referenceElementClassName: referenceElementClassName, positionToReferenceElement: positionToReferenceElement, listMaxHeightLimiter: listMaxHeightLimiter, children: zDropList })), isListVisible && isAutoHeightEnabled && !referenceElementClassName && (jsx(ZDropListAutoHeightWrapper, { containerRef: containerRef, position: autoHeightPosition, children: zDropList }))] }));
773
890
  };
774
891
 
775
892
  function ZDropField(props) {
776
893
  const { control, name, rules, onChangeTransform, valueSelector, errorClassName, errorRenderer, ...zDropProps } = props;
777
- const errorMessageClasses = classNames(styles.errorMessage, errorClassName);
894
+ const errorMessageClasses = classNames(styles["zd__error-message"], errorClassName);
778
895
  return (jsx(Controller, { control: control, name: name, rules: rules, render: ({ field, fieldState }) => {
779
896
  var _a;
780
897
  const { onChange, value, name: fieldName, onBlur } = field;
@@ -784,11 +901,14 @@ function ZDropField(props) {
784
901
  ? onChangeTransform(newValue)
785
902
  : newValue);
786
903
  };
787
- return (jsxs(Fragment, { children: [jsx(ZDrop, { ...zDropProps, name: fieldName, value: zDropValue, onChange: handleChange, onBlur: onBlur }), ((_a = fieldState.error) === null || _a === void 0 ? void 0 : _a.message) && (jsx("div", { className: errorMessageClasses, children: errorRenderer
904
+ const { isAutoHeightEnabled, autoHeightPosition, referenceElementClassName, positionToReferenceElement, ...rest } = zDropProps;
905
+ return (jsxs(Fragment, { children: [jsx(ZDrop, { name: fieldName, value: zDropValue, onChange: handleChange, onBlur: onBlur, ...(isAutoHeightEnabled
906
+ ? { isAutoHeightEnabled, autoHeightPosition }
907
+ : { referenceElementClassName, positionToReferenceElement }), ...rest }), ((_a = fieldState.error) === null || _a === void 0 ? void 0 : _a.message) && (jsx("div", { className: errorMessageClasses, children: errorRenderer
788
908
  ? errorRenderer(fieldState.error.message)
789
909
  : fieldState.error.message }))] }));
790
910
  } }));
791
911
  }
792
912
 
793
- export { ZDrop as Z, ZDropField as a };
794
- //# sourceMappingURL=index-Ctbq3kHw.js.map
913
+ export { ZDropField as Z, ZDrop as a, classNames as c, getAvailableSpace as g, useOutsideClose as u };
914
+ //# sourceMappingURL=index-DC_KVC71.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-DC_KVC71.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":["_jsx","_jsxs","_Fragment","ZDropSingleInputValue"],"mappings":"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"}