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
@@ -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 = {"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"};
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.label, className);
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.noData, className);
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(styles.list, listStyleClasses === null || listStyleClasses === void 0 ? void 0 : listStyleClasses.list, {
109
- [styles["list--wrapper-enabled"]]: !!isListWrapperEnabled,
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.option, listStyleClasses === null || listStyleClasses === void 0 ? void 0 : listStyleClasses.listItem, {
114
- [styles["option--active"]]: isOptionSelected,
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.option, listStyleClasses === null || listStyleClasses === void 0 ? void 0 : listStyleClasses.listItem, {
118
- [styles["option--active"]]: isOptionSelected,
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.expandToggle, toggleStyleClasses === null || toggleStyleClasses === void 0 ? void 0 : toggleStyleClasses.expandToggle);
137
- const iconClasses = classNames(styles.expandToggleIcon, toggleStyleClasses === null || toggleStyleClasses === void 0 ? void 0 : toggleStyleClasses.expandToggleIcon, {
138
- [styles["expandToggleIcon--active"]]: isListVisible,
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.inputClearBtn, className);
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.inputClearBtnWrapper, children: jsxRuntime.jsx("button", { tabIndex: -1, className: clearButtonClasses, onClick: onClear, children: clearIcon || jsxRuntime.jsx("span", { className: styles.inputClearBtnIcon }) }) }));
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.inputMultipleValue, inputMultipleValueClassName);
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.inputMultipleValueRemoveBtn, onClick: (e) => onInputOptionRemove(e, option), children: jsxRuntime.jsx("span", { className: styles.inputMultipleValueRemoveBtnIcon }) }))] }));
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.input, styles.inputMultiple, inputClassName);
197
- const inputMultipleSearchClasses = classNames(styles.inputMultipleSearch);
198
- const inputMultipleSearchWrapperClasses = classNames(styles.inputMultiple, styles.inputMultipleSearchWrapper, inputMultipleSearchClassName);
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.inputMultiplePlaceholder, 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 }) }))] }));
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.inputSingleSearch, inputValueClassName);
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.input, inputClassName, {
255
- [styles.inputSingle]: !!valueRenderer,
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
- const parent = element === null || element === void 0 ? void 0 : element.parentElement;
364
- if (!parent)
365
- return;
366
- if (parent.classList.contains(elementParentClass)) {
367
- const top = getElementOffsetTop(parent);
368
- const height = parent.scrollHeight;
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
- return (jsxRuntime.jsx("div", { className: styles.listWrapper, ref: listWrapperRef, style: wrapperStyle, children: children }));
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.container, styleClasses === null || styleClasses === void 0 ? void 0 : styleClasses.container);
489
- const inputFieldClasses = classNames(styles.inputField, styleClasses === null || styleClasses === void 0 ? void 0 : styleClasses.inputField, {
490
- [styles["inputField--multiple"]]: isMultiple,
491
- [styles["inputField--disabled"]]: isDisabled,
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 && !referenceElementClassName && zDropList, isListVisible && referenceElementClassName && (jsxRuntime.jsx(ZDropListWrapper, { referenceElementClassName: referenceElementClassName, positionToReferenceElement: positionToReferenceElement, listMaxHeightLimiter: listMaxHeightLimiter, children: zDropList }))] }));
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.errorMessage, errorClassName);
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
- return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(ZDrop, { ...zDropProps, name: fieldName, value: zDropValue, onChange: handleChange, onBlur: onBlur }), ((_a = fieldState.error) === null || _a === void 0 ? void 0 : _a.message) && (jsxRuntime.jsx("div", { className: errorMessageClasses, children: errorRenderer
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
- //# sourceMappingURL=index-BDEyCrDG.js.map
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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"}