@salutejs/plasma-new-hope 0.335.0-canary.2197.17377664818.0 → 0.335.0-canary.2199.17384366399.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 (216) hide show
  1. package/cjs/components/Autocomplete/Autocomplete.js +5 -7
  2. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  3. package/cjs/components/Autocomplete/FloatingPopover.js +5 -4
  4. package/cjs/components/Autocomplete/FloatingPopover.js.map +1 -1
  5. package/cjs/components/Autocomplete/ui/VirtualList/VirtualList.js +43 -13
  6. package/cjs/components/Autocomplete/ui/VirtualList/VirtualList.js.map +1 -1
  7. package/cjs/components/Carousel/CarouselNew/Carousel.js +4 -3
  8. package/cjs/components/Carousel/CarouselNew/Carousel.js.map +1 -1
  9. package/cjs/components/Carousel/CarouselNew/hooks/useCarousel.js +6 -1
  10. package/cjs/components/Carousel/CarouselNew/hooks/useCarousel.js.map +1 -1
  11. package/cjs/components/Combobox/ComboboxNew/Combobox.js +18 -34
  12. package/cjs/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  13. package/cjs/components/Combobox/ComboboxNew/Combobox.styles.js +3 -2
  14. package/cjs/components/Combobox/ComboboxNew/Combobox.styles.js.map +1 -1
  15. package/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +5 -11
  16. package/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js.map +1 -1
  17. package/cjs/components/Combobox/ComboboxNew/ui/VirtualList/VirtualList.js +43 -13
  18. package/cjs/components/Combobox/ComboboxNew/ui/VirtualList/VirtualList.js.map +1 -1
  19. package/cjs/components/Combobox/ComboboxNew/utils/getTextValue.js +24 -0
  20. package/cjs/components/Combobox/ComboboxNew/utils/getTextValue.js.map +1 -0
  21. package/cjs/components/DatePicker/RangeDate/RangeDate.js +3 -1
  22. package/cjs/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
  23. package/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js +5 -2
  24. package/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js.map +1 -1
  25. package/cjs/components/DatePicker/SingleDate/SingleDate.js +4 -2
  26. package/cjs/components/DatePicker/SingleDate/SingleDate.js.map +1 -1
  27. package/cjs/components/Popup/ClientOnlyPortal.js +15 -2
  28. package/cjs/components/Popup/ClientOnlyPortal.js.map +1 -1
  29. package/cjs/components/Popup/PopupContext.js +26 -5
  30. package/cjs/components/Popup/PopupContext.js.map +1 -1
  31. package/cjs/components/Select/Select.js +3 -4
  32. package/cjs/components/Select/Select.js.map +1 -1
  33. package/cjs/components/Select/Select.styles.js +3 -2
  34. package/cjs/components/Select/Select.styles.js.map +1 -1
  35. package/cjs/components/Select/ui/Inner/Inner.js +5 -11
  36. package/cjs/components/Select/ui/Inner/Inner.js.map +1 -1
  37. package/cjs/components/Select/ui/VirtualList/VirtualList.js +43 -13
  38. package/cjs/components/Select/ui/VirtualList/VirtualList.js.map +1 -1
  39. package/emotion/cjs/components/Autocomplete/Autocomplete.js +4 -9
  40. package/emotion/cjs/components/Autocomplete/FloatingPopover.js +31 -4
  41. package/emotion/cjs/components/Autocomplete/ui/VirtualList/VirtualList.js +84 -16
  42. package/emotion/cjs/components/Carousel/CarouselNew/Carousel.js +2 -2
  43. package/emotion/cjs/components/Carousel/CarouselNew/hooks/useCarousel.js +6 -1
  44. package/emotion/cjs/components/Combobox/ComboboxNew/Combobox.js +28 -48
  45. package/emotion/cjs/components/Combobox/ComboboxNew/Combobox.styles.js +15 -15
  46. package/emotion/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +9 -50
  47. package/emotion/cjs/components/Combobox/ComboboxNew/ui/VirtualList/VirtualList.js +84 -16
  48. package/emotion/cjs/components/Combobox/ComboboxNew/utils/getTextValue.js +25 -0
  49. package/emotion/cjs/components/Combobox/ComboboxNew/utils/index.js +4 -0
  50. package/emotion/cjs/components/DatePicker/RangeDate/RangeDate.js +3 -1
  51. package/emotion/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js +5 -3
  52. package/emotion/cjs/components/DatePicker/SingleDate/SingleDate.js +4 -2
  53. package/emotion/cjs/components/Popup/ClientOnlyPortal.js +14 -2
  54. package/emotion/cjs/components/Popup/PopupContext.js +25 -6
  55. package/emotion/cjs/components/Select/Select.js +2 -4
  56. package/emotion/cjs/components/Select/Select.styles.js +7 -7
  57. package/emotion/cjs/components/Select/ui/Inner/Inner.js +9 -50
  58. package/emotion/cjs/components/Select/ui/VirtualList/VirtualList.js +84 -16
  59. package/emotion/cjs/examples/components/Combobox/Combobox.js +0 -15
  60. package/emotion/es/components/Autocomplete/Autocomplete.js +5 -10
  61. package/emotion/es/components/Autocomplete/FloatingPopover.js +31 -4
  62. package/emotion/es/components/Autocomplete/ui/VirtualList/VirtualList.js +45 -13
  63. package/emotion/es/components/Carousel/CarouselNew/Carousel.js +2 -2
  64. package/emotion/es/components/Carousel/CarouselNew/hooks/useCarousel.js +6 -1
  65. package/emotion/es/components/Combobox/ComboboxNew/Combobox.js +14 -34
  66. package/emotion/es/components/Combobox/ComboboxNew/Combobox.styles.js +15 -15
  67. package/emotion/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +6 -11
  68. package/emotion/es/components/Combobox/ComboboxNew/ui/VirtualList/VirtualList.js +45 -13
  69. package/emotion/es/components/Combobox/ComboboxNew/utils/getTextValue.js +16 -0
  70. package/emotion/es/components/Combobox/ComboboxNew/utils/index.js +1 -0
  71. package/emotion/es/components/DatePicker/RangeDate/RangeDate.js +3 -1
  72. package/emotion/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js +5 -3
  73. package/emotion/es/components/DatePicker/SingleDate/SingleDate.js +4 -2
  74. package/emotion/es/components/Popup/ClientOnlyPortal.js +14 -2
  75. package/emotion/es/components/Popup/PopupContext.js +25 -6
  76. package/emotion/es/components/Select/Select.js +2 -4
  77. package/emotion/es/components/Select/Select.styles.js +7 -7
  78. package/emotion/es/components/Select/ui/Inner/Inner.js +6 -11
  79. package/emotion/es/components/Select/ui/VirtualList/VirtualList.js +45 -13
  80. package/emotion/es/examples/components/Combobox/Combobox.js +7 -0
  81. package/es/components/Autocomplete/Autocomplete.js +6 -8
  82. package/es/components/Autocomplete/Autocomplete.js.map +1 -1
  83. package/es/components/Autocomplete/FloatingPopover.js +6 -5
  84. package/es/components/Autocomplete/FloatingPopover.js.map +1 -1
  85. package/es/components/Autocomplete/ui/VirtualList/VirtualList.js +44 -13
  86. package/es/components/Autocomplete/ui/VirtualList/VirtualList.js.map +1 -1
  87. package/es/components/Carousel/CarouselNew/Carousel.js +5 -4
  88. package/es/components/Carousel/CarouselNew/Carousel.js.map +1 -1
  89. package/es/components/Carousel/CarouselNew/hooks/useCarousel.js +6 -1
  90. package/es/components/Carousel/CarouselNew/hooks/useCarousel.js.map +1 -1
  91. package/es/components/Combobox/ComboboxNew/Combobox.js +18 -34
  92. package/es/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  93. package/es/components/Combobox/ComboboxNew/Combobox.styles.js +3 -2
  94. package/es/components/Combobox/ComboboxNew/Combobox.styles.js.map +1 -1
  95. package/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +6 -12
  96. package/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js.map +1 -1
  97. package/es/components/Combobox/ComboboxNew/ui/VirtualList/VirtualList.js +44 -13
  98. package/es/components/Combobox/ComboboxNew/ui/VirtualList/VirtualList.js.map +1 -1
  99. package/es/components/Combobox/ComboboxNew/utils/getTextValue.js +20 -0
  100. package/es/components/Combobox/ComboboxNew/utils/getTextValue.js.map +1 -0
  101. package/es/components/DatePicker/RangeDate/RangeDate.js +3 -1
  102. package/es/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
  103. package/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js +5 -2
  104. package/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js.map +1 -1
  105. package/es/components/DatePicker/SingleDate/SingleDate.js +4 -2
  106. package/es/components/DatePicker/SingleDate/SingleDate.js.map +1 -1
  107. package/es/components/Popup/ClientOnlyPortal.js +15 -2
  108. package/es/components/Popup/ClientOnlyPortal.js.map +1 -1
  109. package/es/components/Popup/PopupContext.js +26 -5
  110. package/es/components/Popup/PopupContext.js.map +1 -1
  111. package/es/components/Select/Select.js +3 -4
  112. package/es/components/Select/Select.js.map +1 -1
  113. package/es/components/Select/Select.styles.js +3 -2
  114. package/es/components/Select/Select.styles.js.map +1 -1
  115. package/es/components/Select/ui/Inner/Inner.js +6 -12
  116. package/es/components/Select/ui/Inner/Inner.js.map +1 -1
  117. package/es/components/Select/ui/VirtualList/VirtualList.js +44 -13
  118. package/es/components/Select/ui/VirtualList/VirtualList.js.map +1 -1
  119. package/package.json +4 -5
  120. package/styled-components/cjs/components/Autocomplete/Autocomplete.js +4 -9
  121. package/styled-components/cjs/components/Autocomplete/FloatingPopover.js +31 -4
  122. package/styled-components/cjs/components/Autocomplete/ui/VirtualList/VirtualList.js +84 -16
  123. package/styled-components/cjs/components/Carousel/CarouselNew/Carousel.js +2 -2
  124. package/styled-components/cjs/components/Carousel/CarouselNew/hooks/useCarousel.js +6 -1
  125. package/styled-components/cjs/components/Combobox/ComboboxNew/Combobox.js +28 -48
  126. package/styled-components/cjs/components/Combobox/ComboboxNew/Combobox.styles.js +8 -8
  127. package/styled-components/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +9 -50
  128. package/styled-components/cjs/components/Combobox/ComboboxNew/ui/VirtualList/VirtualList.js +84 -16
  129. package/styled-components/cjs/components/Combobox/ComboboxNew/utils/getTextValue.js +25 -0
  130. package/styled-components/cjs/components/Combobox/ComboboxNew/utils/index.js +4 -0
  131. package/styled-components/cjs/components/DatePicker/RangeDate/RangeDate.js +3 -1
  132. package/styled-components/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js +5 -3
  133. package/styled-components/cjs/components/DatePicker/SingleDate/SingleDate.js +4 -2
  134. package/styled-components/cjs/components/Popup/ClientOnlyPortal.js +14 -2
  135. package/styled-components/cjs/components/Popup/PopupContext.js +25 -6
  136. package/styled-components/cjs/components/Select/Select.js +2 -4
  137. package/styled-components/cjs/components/Select/Select.styles.js +4 -4
  138. package/styled-components/cjs/components/Select/ui/Inner/Inner.js +9 -50
  139. package/styled-components/cjs/components/Select/ui/VirtualList/VirtualList.js +84 -16
  140. package/styled-components/es/components/Autocomplete/Autocomplete.js +5 -10
  141. package/styled-components/es/components/Autocomplete/FloatingPopover.js +31 -4
  142. package/styled-components/es/components/Autocomplete/ui/VirtualList/VirtualList.js +45 -13
  143. package/styled-components/es/components/Carousel/CarouselNew/Carousel.js +2 -2
  144. package/styled-components/es/components/Carousel/CarouselNew/hooks/useCarousel.js +6 -1
  145. package/styled-components/es/components/Combobox/ComboboxNew/Combobox.js +14 -34
  146. package/styled-components/es/components/Combobox/ComboboxNew/Combobox.styles.js +8 -8
  147. package/styled-components/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +6 -11
  148. package/styled-components/es/components/Combobox/ComboboxNew/ui/VirtualList/VirtualList.js +45 -13
  149. package/styled-components/es/components/Combobox/ComboboxNew/utils/getTextValue.js +16 -0
  150. package/styled-components/es/components/Combobox/ComboboxNew/utils/index.js +1 -0
  151. package/styled-components/es/components/DatePicker/RangeDate/RangeDate.js +3 -1
  152. package/styled-components/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js +5 -3
  153. package/styled-components/es/components/DatePicker/SingleDate/SingleDate.js +4 -2
  154. package/styled-components/es/components/Popup/ClientOnlyPortal.js +14 -2
  155. package/styled-components/es/components/Popup/PopupContext.js +25 -6
  156. package/styled-components/es/components/Select/Select.js +2 -4
  157. package/styled-components/es/components/Select/Select.styles.js +4 -4
  158. package/styled-components/es/components/Select/ui/Inner/Inner.js +6 -11
  159. package/styled-components/es/components/Select/ui/VirtualList/VirtualList.js +45 -13
  160. package/types/components/Autocomplete/Autocomplete.d.ts.map +1 -1
  161. package/types/components/Autocomplete/Autocomplete.types.d.ts +23 -17
  162. package/types/components/Autocomplete/Autocomplete.types.d.ts.map +1 -1
  163. package/types/components/Autocomplete/ui/VirtualList/VirtualList.d.ts +1 -1
  164. package/types/components/Autocomplete/ui/VirtualList/VirtualList.d.ts.map +1 -1
  165. package/types/components/Carousel/CarouselNew/Carousel.d.ts.map +1 -1
  166. package/types/components/Carousel/CarouselNew/Carousel.types.d.ts +5 -0
  167. package/types/components/Carousel/CarouselNew/Carousel.types.d.ts.map +1 -1
  168. package/types/components/Carousel/CarouselNew/hooks/useCarousel.d.ts.map +1 -1
  169. package/types/components/Combobox/ComboboxNew/Combobox.d.ts.map +1 -1
  170. package/types/components/Combobox/ComboboxNew/Combobox.styles.d.ts +1 -0
  171. package/types/components/Combobox/ComboboxNew/Combobox.styles.d.ts.map +1 -1
  172. package/types/components/Combobox/ComboboxNew/Combobox.types.d.ts +7 -7
  173. package/types/components/Combobox/ComboboxNew/Combobox.types.d.ts.map +1 -1
  174. package/types/components/Combobox/ComboboxNew/ui/Inner/Inner.d.ts.map +1 -1
  175. package/types/components/Combobox/ComboboxNew/ui/Inner/Inner.type.d.ts +1 -2
  176. package/types/components/Combobox/ComboboxNew/ui/Inner/Inner.type.d.ts.map +1 -1
  177. package/types/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.types.d.ts +2 -6
  178. package/types/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.types.d.ts.map +1 -1
  179. package/types/components/Combobox/ComboboxNew/ui/VirtualList/VirtualList.d.ts +1 -1
  180. package/types/components/Combobox/ComboboxNew/ui/VirtualList/VirtualList.d.ts.map +1 -1
  181. package/types/components/Combobox/ComboboxNew/utils/getTextValue.d.ts +4 -0
  182. package/types/components/Combobox/ComboboxNew/utils/getTextValue.d.ts.map +1 -0
  183. package/types/components/Combobox/ComboboxNew/utils/index.d.ts +1 -0
  184. package/types/components/Combobox/ComboboxNew/utils/index.d.ts.map +1 -1
  185. package/types/components/DatePicker/RangeDate/RangeDate.d.ts.map +1 -1
  186. package/types/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.d.ts +1 -1
  187. package/types/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.d.ts.map +1 -1
  188. package/types/components/DatePicker/SingleDate/SingleDate.d.ts.map +1 -1
  189. package/types/components/DatePicker/SingleDate/SingleDate.types.d.ts +4 -0
  190. package/types/components/DatePicker/SingleDate/SingleDate.types.d.ts.map +1 -1
  191. package/types/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.styles.d.ts +18 -18
  192. package/types/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.styles.d.ts.map +1 -1
  193. package/types/components/Popup/ClientOnlyPortal.d.ts +1 -0
  194. package/types/components/Popup/ClientOnlyPortal.d.ts.map +1 -1
  195. package/types/components/Popup/PopupContext.d.ts +5 -1
  196. package/types/components/Popup/PopupContext.d.ts.map +1 -1
  197. package/types/components/Select/Select.d.ts.map +1 -1
  198. package/types/components/Select/Select.styles.d.ts +1 -0
  199. package/types/components/Select/Select.styles.d.ts.map +1 -1
  200. package/types/components/Select/Select.types.d.ts +14 -14
  201. package/types/components/Select/Select.types.d.ts.map +1 -1
  202. package/types/components/Select/ui/Inner/Inner.d.ts.map +1 -1
  203. package/types/components/Select/ui/Inner/Inner.type.d.ts +1 -2
  204. package/types/components/Select/ui/Inner/Inner.type.d.ts.map +1 -1
  205. package/types/components/Select/ui/Inner/ui/Item/Item.types.d.ts +3 -11
  206. package/types/components/Select/ui/Inner/ui/Item/Item.types.d.ts.map +1 -1
  207. package/types/components/Select/ui/VirtualList/VirtualList.d.ts +1 -1
  208. package/types/components/Select/ui/VirtualList/VirtualList.d.ts.map +1 -1
  209. package/types/components/Table/ui/HeadCell/ui/Filter/Filter.styles.d.ts +18 -18
  210. package/types/components/Table/ui/HeadCell/ui/Filter/Filter.styles.d.ts.map +1 -1
  211. package/types/examples/components/Autocomplete/Autocomplete.d.ts +48 -40
  212. package/types/examples/components/Autocomplete/Autocomplete.d.ts.map +1 -1
  213. package/types/examples/components/Combobox/Combobox.d.ts +48 -48
  214. package/types/examples/components/Combobox/Combobox.d.ts.map +1 -1
  215. package/types/examples/components/Select/Select.d.ts +18 -18
  216. package/types/examples/components/Select/Select.d.ts.map +1 -1
@@ -141,14 +141,13 @@ function _unsupported_iterable_to_array(o, minLen) {
141
141
  }
142
142
  import React, { forwardRef, useState, useReducer, useMemo, useLayoutEffect, useRef } from "react";
143
143
  import { useForkRef } from "@salutejs/plasma-core";
144
- import { safeUseId } from "../../../utils";
145
- import { isEmpty } from "../../../utils";
146
- import { useOutsideClick } from "../../../hooks";
144
+ import { safeUseId, isEmpty } from "../../../utils";
145
+ import { useOutsideClick, useDidMountLayoutEffect } from "../../../hooks";
147
146
  import { sizeToIconSize } from "../../Select/utils";
148
147
  import { classes } from "./Combobox.tokens";
149
148
  import { FloatingPopover } from "./FloatingPopover";
150
149
  import { useKeyNavigation, getItemByFocused } from "./hooks/useKeyboardNavigation";
151
- import { initialItemsTransform, updateAncestors, updateDescendants, updateSingleAncestors, filterItems, getItemId, getRemovedElement } from "./utils";
150
+ import { initialItemsTransform, updateAncestors, updateDescendants, updateSingleAncestors, filterItems, getItemId, getRemovedElement, getTextValue } from "./utils";
152
151
  import { Inner, StyledTextField, VirtualList, SelectAll } from "./ui";
153
152
  import { pathReducer, focusedPathReducer } from "./reducers";
154
153
  import { getPathMap, getTreeMaps } from "./hooks/getPathMaps";
@@ -161,7 +160,7 @@ import { Context } from "./Combobox.context";
161
160
  * Поле ввода с выпадающим списком и возможностью фильтрации и выбора элементов.
162
161
  */ export var comboboxRoot = function(Root) {
163
162
  return /*#__PURE__*/ forwardRef(function(props, ref) {
164
- var _valueToItemMap_get, _getItemByFocused;
163
+ var _getItemByFocused;
165
164
  var name = props.name, multiple = props.multiple, outerValue = props.value, outerOnChange = props.onChange, defaultValue = props.defaultValue, isTargetAmount = props.isTargetAmount, targetAmount = props.targetAmount, items = props.items, _props_placement = props.placement, placement = _props_placement === void 0 ? 'bottom-start' : _props_placement, label = props.label, placeholder = props.placeholder, helperText = props.helperText, contentLeft = props.contentLeft, textBefore = props.textBefore, textAfter = props.textAfter, _props_variant = props.variant, variant = _props_variant === void 0 ? 'normal' : _props_variant, listOverflow = props.listOverflow, listHeight = props.listHeight, listMaxHeight = props.listMaxHeight, listWidth = props.listWidth, portal = props.portal, renderItem = props.renderItem, view = props.view, size = props.size, labelPlacement = props.labelPlacement, keepPlaceholder = props.keepPlaceholder, _props_readOnly = props.readOnly, readOnly = _props_readOnly === void 0 ? false : _props_readOnly, _props_disabled = props.disabled, disabled = _props_disabled === void 0 ? false : _props_disabled, _props_alwaysOpened = props.alwaysOpened, alwaysOpened = _props_alwaysOpened === void 0 ? false : _props_alwaysOpened, filter = props.filter, outerCloseAfterSelect = props.closeAfterSelect, renderValue = props.renderValue, zIndex = props.zIndex, beforeList = props.beforeList, afterList = props.afterList, _props_virtual = props.virtual, virtual = _props_virtual === void 0 ? false : _props_virtual, hintView = props.hintView, hintSize = props.hintSize, emptyStateDescription = props.emptyStateDescription, onChangeValue = props.onChangeValue, onScroll = props.onScroll, onToggle = props.onToggle, // @ts-ignore
166
165
  _offset = props._offset, rest = _object_without_properties(props, [
167
166
  "name",
@@ -219,17 +218,15 @@ import { Context } from "./Combobox.context";
219
218
  }, [
220
219
  items
221
220
  ]), 3), valueToCheckedMap = _useMemo[0], valueToItemMap = _useMemo[1], labelToItemMap = _useMemo[2];
222
- var _useState = _sliced_to_array(useState(multiple || Array.isArray(outerValue) ? '' : ((_valueToItemMap_get = valueToItemMap.get(outerValue)) === null || _valueToItemMap_get === void 0 ? void 0 : _valueToItemMap_get.label) || (outerValue === null || outerValue === void 0 ? void 0 : outerValue.toString()) || ''), 2), textValue = _useState[0], setTextValue = _useState[1];
221
+ var _useState = _sliced_to_array(useState(getTextValue(multiple, outerValue, valueToItemMap, renderValue)), 2), textValue = _useState[0], setTextValue = _useState[1];
223
222
  var _useState1 = _sliced_to_array(useState(multiple ? [] : ''), 2), internalValue = _useState1[0], setInternalValue = _useState1[1];
224
223
  var value = outerValue !== null && outerValue !== undefined ? outerValue : internalValue;
225
224
  var inputRef = useRef(null);
226
225
  var floatingPopoverRef = useRef(null);
227
226
  var inputForkRef = useForkRef(inputRef, ref);
228
227
  var treeId = safeUseId();
229
- var listWrapperRef = useRef(null);
230
228
  var filteredItems = useMemo(function() {
231
- var _valueToItemMap_get;
232
- return filterItems(transformedItems, textValue, ((_valueToItemMap_get = valueToItemMap.get(value)) === null || _valueToItemMap_get === void 0 ? void 0 : _valueToItemMap_get.label) || value, filter);
229
+ return filterItems(transformedItems, textValue, getTextValue(multiple, value, valueToItemMap, renderValue), filter);
233
230
  }, [
234
231
  transformedItems,
235
232
  textValue,
@@ -266,30 +263,19 @@ import { Context } from "./Combobox.context";
266
263
  if (onToggle) {
267
264
  onToggle(false);
268
265
  }
269
- // Проверяем, отличается ли значение в инпуте от выбранного value после закрытия дропдауна.
270
- // Если изменилось, то возвращаем label выбранного айтема.
271
- // Если нет выбранного элемента, то стираем значение инпута.
272
- if (textValue !== value) {
273
- if (isEmpty(value)) {
274
- setTextValue('');
275
- } else if (multiple) {
276
- setTextValue('');
277
- } else {
278
- var _valueToItemMap_get;
279
- setTextValue(((_valueToItemMap_get = valueToItemMap.get(value)) === null || _valueToItemMap_get === void 0 ? void 0 : _valueToItemMap_get.label) || value || '');
280
- }
281
- }
266
+ // Возвращаем актуальное значение поля ввода после закрытия выпадающего списка.
267
+ setTextValue(getTextValue(multiple, value, valueToItemMap, renderValue));
282
268
  }, floatingPopoverRef);
283
269
  // Эта функция срабатывает при изменении Combobox и
284
270
  // при изменении нативного Select для формы (срабатывает только после изменения internalValue и рендера).
285
271
  var onChange = function(newValue, item) {
286
272
  // Условие для отправки изменений наружу
287
273
  if (props.onChange) {
288
- // Условие для отправки если комбобокс используется без формы.
274
+ // Условие для отправки, если комбобокс используется без формы.
289
275
  if (!props.name && (typeof newValue === 'string' || Array.isArray(newValue))) {
290
276
  props.onChange(newValue, item || null);
291
277
  }
292
- // Условие для отправки если комбобокс используется с формой.
278
+ // Условие для отправки, если комбобокс используется с формой.
293
279
  if (props.name && (typeof newValue === "undefined" ? "undefined" : _type_of(newValue)) === 'object' && !Array.isArray(newValue)) {
294
280
  props.onChange(newValue);
295
281
  }
@@ -525,10 +511,6 @@ import { Context } from "./Combobox.context";
525
511
  }
526
512
  }
527
513
  setChecked(checkedCopy);
528
- if (!multiple && textValue === value && valueToItemMap.has(value)) {
529
- var _valueToItemMap_get;
530
- setTextValue(((_valueToItemMap_get = valueToItemMap.get(value)) === null || _valueToItemMap_get === void 0 ? void 0 : _valueToItemMap_get.label) || '');
531
- }
532
514
  // В deps мы кладем именно outerValue и internalValue, а не просто value.
533
515
  // Т.к. вначале нужно отфильтровать и провалидировать outerValue и результат положить в переменную.
534
516
  // А переменную, содержащую сложные типы данных, нельзя помещать в deps.
@@ -538,9 +520,8 @@ import { Context } from "./Combobox.context";
538
520
  items
539
521
  ]);
540
522
  // При изменении value нужно возвращать значение в инпуте к исходному.
541
- useLayoutEffect(function() {
542
- var _valueToItemMap_get;
543
- setTextValue(multiple ? '' : ((_valueToItemMap_get = valueToItemMap.get(value)) === null || _valueToItemMap_get === void 0 ? void 0 : _valueToItemMap_get.label) || (value === null || value === void 0 ? void 0 : value.toString()) || '');
523
+ useDidMountLayoutEffect(function() {
524
+ setTextValue(getTextValue(multiple, value, valueToItemMap, renderValue));
544
525
  }, [
545
526
  outerValue,
546
527
  internalValue
@@ -647,7 +628,6 @@ import { Context } from "./Combobox.context";
647
628
  readOnly: readOnly,
648
629
  name: name
649
630
  }, /*#__PURE__*/ React.createElement(ListWrapper, {
650
- ref: listWrapperRef,
651
631
  listWidth: listWidth
652
632
  }, /*#__PURE__*/ React.createElement(Ul, {
653
633
  role: "tree",
@@ -656,6 +636,7 @@ import { Context } from "./Combobox.context";
656
636
  listMaxHeight: listMaxHeight || listHeight,
657
637
  ref: targetRef,
658
638
  virtual: virtual,
639
+ listOverflow: listOverflow,
659
640
  onScroll: virtual ? undefined : onScroll
660
641
  }, beforeList, isEmpty(filteredItems) ? /*#__PURE__*/ React.createElement(StyledEmptyState, {
661
642
  className: classes.emptyStateWrapper,
@@ -677,8 +658,7 @@ import { Context } from "./Combobox.context";
677
658
  path: path,
678
659
  dispatchPath: dispatchPath,
679
660
  index: index,
680
- listWidth: listWidth,
681
- portal: listWrapperRef
661
+ listWidth: listWidth
682
662
  });
683
663
  })), afterList)))))));
684
664
  });
@@ -8,7 +8,7 @@ var mergedConfig = mergeConfig(emptyStateConfig);
8
8
  var EmptyState = component(mergedConfig);
9
9
  export var ListWrapper = styled.div.withConfig({
10
10
  displayName: "Combobox.styles__ListWrapper",
11
- componentId: "sc-900436d4-0"
11
+ componentId: "sc-7fefedf8-0"
12
12
  })([
13
13
  "width:",
14
14
  ";padding:calc(var(",
@@ -25,7 +25,7 @@ export var ListWrapper = styled.div.withConfig({
25
25
  }, tokens.padding, tokens.dropdownBorderWidth, tokens.borderRadius, constants.background, constants.boxShadow, tokens.dropdownBorderWidth, tokens.dropdownBorderColor);
26
26
  export var Ul = styled.ul.withConfig({
27
27
  displayName: "Combobox.styles__Ul",
28
- componentId: "sc-900436d4-1"
28
+ componentId: "sc-7fefedf8-1"
29
29
  })([
30
30
  "max-height:",
31
31
  ";overflow-y:",
@@ -37,12 +37,12 @@ export var Ul = styled.ul.withConfig({
37
37
  var virtual = param.virtual, listMaxHeight = param.listMaxHeight;
38
38
  return virtual ? 'auto' : listMaxHeight || 'auto';
39
39
  }, function(param) {
40
- var virtual = param.virtual;
41
- return virtual ? 'visible' : 'auto';
40
+ var virtual = param.virtual, listOverflow = param.listOverflow;
41
+ return virtual ? 'visible' : listOverflow || 'visible';
42
42
  }, tokens.borderRadius, tokens.dropdownBorderWidth, classes.emptyStateWrapper);
43
43
  export var IconArrowWrapper = styled.div.withConfig({
44
44
  displayName: "Combobox.styles__IconArrowWrapper",
45
- componentId: "sc-900436d4-2"
45
+ componentId: "sc-7fefedf8-2"
46
46
  })([
47
47
  "line-height:0;color:var(",
48
48
  ");cursor:",
@@ -63,7 +63,7 @@ export var sizeMap = {
63
63
  };
64
64
  export var StyledArrow = styled(IconDisclosureDownCentered).withConfig({
65
65
  displayName: "Combobox.styles__StyledArrow",
66
- componentId: "sc-900436d4-3"
66
+ componentId: "sc-7fefedf8-3"
67
67
  })([
68
68
  "width:",
69
69
  ";height:",
@@ -80,7 +80,7 @@ export var base = css([
80
80
  ]);
81
81
  export var StyledEmptyState = styled(EmptyState).withConfig({
82
82
  displayName: "Combobox.styles__StyledEmptyState",
83
- componentId: "sc-900436d4-4"
83
+ componentId: "sc-7fefedf8-4"
84
84
  })([
85
85
  "",
86
86
  ":var(",
@@ -102,7 +102,7 @@ export var StyledEmptyState = styled(EmptyState).withConfig({
102
102
  ], emptyStateTokens.borderRadius, tokens.textFieldBorderRadius, emptyStateTokens.padding, tokens.emptyStatePadding, emptyStateTokens.fontFamily, tokens.textFieldFontFamily, emptyStateTokens.fontSize, tokens.textFieldFontSize, emptyStateTokens.fontStyle, tokens.textFieldFontStyle, emptyStateTokens.fontWeight, tokens.textFieldFontWeight, emptyStateTokens.fontLetterSpacing, tokens.textFieldLetterSpacing, emptyStateTokens.fontLineHeight, tokens.textFieldLineHeight);
103
103
  export var StyledLeftHelper = styled.span.withConfig({
104
104
  displayName: "Combobox.styles__StyledLeftHelper",
105
- componentId: "sc-900436d4-5"
105
+ componentId: "sc-7fefedf8-5"
106
106
  })([
107
107
  "margin:0;padding:0;"
108
108
  ]);
@@ -1,11 +1,11 @@
1
- import React, { useRef } from "react";
1
+ import React from "react";
2
2
  import { safeUseId } from "../../../../../utils";
3
3
  import { FloatingPopover } from "../../FloatingPopover";
4
4
  import { isEmpty } from "../../../../../utils";
5
5
  import { Ul, ListWrapper } from "../../Combobox.styles";
6
6
  import { Item } from "./ui";
7
7
  export var Inner = function(param) {
8
- var item = param.item, currentLevel = param.currentLevel, path = param.path, dispatchPath = param.dispatchPath, index = param.index, listWidth = param.listWidth, portal = param.portal;
8
+ var item = param.item, currentLevel = param.currentLevel, path = param.path, dispatchPath = param.dispatchPath, index = param.index, listWidth = param.listWidth;
9
9
  var handleToggle = function(opened) {
10
10
  if (opened) {
11
11
  dispatchPath({
@@ -20,7 +20,6 @@ export var Inner = function(param) {
20
20
  });
21
21
  }
22
22
  };
23
- var listWrapperRef = useRef(null);
24
23
  var isCurrentListOpen = path[currentLevel + 1] === item.value.toString();
25
24
  var treeId = safeUseId();
26
25
  var listId = "".concat(treeId, "_tree_level_").concat(currentLevel + 2);
@@ -41,16 +40,13 @@ export var Inner = function(param) {
41
40
  ariaLevel: nextLevel,
42
41
  ariaLabel: item.label
43
42
  }),
44
- isInner: true,
45
- portal: portal
43
+ isInner: true
46
44
  }, /*#__PURE__*/ React.createElement(ListWrapper, {
47
- listWidth: listWidth,
48
- ref: listWrapperRef
45
+ listWidth: listWidth
49
46
  }, /*#__PURE__*/ React.createElement(Ul, {
50
47
  role: "group",
51
48
  id: listId,
52
- virtual: false,
53
- listMaxHeight: item === null || item === void 0 ? void 0 : item.listMaxHeight
49
+ virtual: false
54
50
  }, (_item_items = item.items) === null || _item_items === void 0 ? void 0 : _item_items.map(function(innerItem, innerIndex) {
55
51
  return /*#__PURE__*/ React.createElement(Inner, {
56
52
  key: "".concat(innerIndex, "/").concat(currentLevel),
@@ -59,8 +55,7 @@ export var Inner = function(param) {
59
55
  path: path,
60
56
  dispatchPath: dispatchPath,
61
57
  index: innerIndex,
62
- listWidth: listWidth,
63
- portal: listWrapperRef
58
+ listWidth: listWidth
64
59
  });
65
60
  }))));
66
61
  }
@@ -1,25 +1,57 @@
1
- import React from "react";
2
- import List from "rc-virtual-list";
1
+ import React, { useRef } from "react";
2
+ import { useVirtualizer } from "@tanstack/react-virtual";
3
3
  import { getHeightAsNumber } from "../../../../../utils";
4
4
  import { Item } from "../Inner/ui";
5
5
  export var VirtualList = function(param) {
6
6
  var items = param.items, listMaxHeight = param.listMaxHeight, onScroll = param.onScroll;
7
- return /*#__PURE__*/ React.createElement(List, {
8
- data: items,
9
- height: getHeightAsNumber(listMaxHeight),
10
- fullHeight: false,
11
- itemHeight: 100,
12
- itemKey: "id",
7
+ var _virtualItems_;
8
+ var parentRef = useRef(null);
9
+ var virtualizer = useVirtualizer({
10
+ count: items.length,
11
+ getScrollElement: function() {
12
+ return parentRef.current;
13
+ },
14
+ estimateSize: function() {
15
+ return 48;
16
+ }
17
+ });
18
+ var virtualItems = virtualizer.getVirtualItems();
19
+ var _virtualItems__start;
20
+ return /*#__PURE__*/ React.createElement("div", {
21
+ ref: parentRef,
22
+ style: {
23
+ height: 'auto',
24
+ maxHeight: getHeightAsNumber(listMaxHeight),
25
+ overflowY: 'auto'
26
+ },
13
27
  onScroll: onScroll
14
- }, function(item, index, props) {
15
- return /*#__PURE__*/ React.createElement("div", props, /*#__PURE__*/ React.createElement(Item, {
16
- item: item,
28
+ }, /*#__PURE__*/ React.createElement("div", {
29
+ style: {
30
+ height: virtualizer.getTotalSize(),
31
+ width: '100%',
32
+ position: 'relative'
33
+ }
34
+ }, /*#__PURE__*/ React.createElement("div", {
35
+ style: {
36
+ position: 'absolute',
37
+ top: 0,
38
+ left: 0,
39
+ width: '100%',
40
+ transform: "translateY(".concat((_virtualItems__start = (_virtualItems_ = virtualItems[0]) === null || _virtualItems_ === void 0 ? void 0 : _virtualItems_.start) !== null && _virtualItems__start !== void 0 ? _virtualItems__start : 0, "px)")
41
+ }
42
+ }, virtualItems.map(function(virtualRow) {
43
+ return /*#__PURE__*/ React.createElement("div", {
44
+ key: virtualRow.key,
45
+ "data-index": virtualRow.index,
46
+ ref: virtualizer.measureElement
47
+ }, /*#__PURE__*/ React.createElement(Item, {
48
+ item: items[virtualRow.index],
17
49
  path: [
18
50
  'root'
19
51
  ],
20
52
  currentLevel: 0,
21
- index: index,
53
+ index: virtualRow.index,
22
54
  ariaLevel: 1
23
55
  }));
24
- });
56
+ }))));
25
57
  };
@@ -0,0 +1,16 @@
1
+ // Type Guard для multiple.
2
+ // @ts-ignore
3
+ function isMultiple(multiple, value) {
4
+ return Boolean(multiple);
5
+ }
6
+ // Хелпер для генерации начального состояния поля ввода.
7
+ export var getTextValue = function(multiple, value, valueToItemMap, renderValue) {
8
+ var _valueToItemMap_get;
9
+ if (isMultiple(multiple, value) || !value) {
10
+ return '';
11
+ }
12
+ return (renderValue === null || renderValue === void 0 ? void 0 : renderValue({
13
+ value: value,
14
+ label: ''
15
+ })) || ((_valueToItemMap_get = valueToItemMap.get(value)) === null || _valueToItemMap_get === void 0 ? void 0 : _valueToItemMap_get.label) || value.toString();
16
+ };
@@ -6,3 +6,4 @@ export { sizeToIconSize } from "./sizeToIconSize";
6
6
  export { filterItems } from "./filterItems";
7
7
  export { getItemId } from "./getItemId";
8
8
  export { getRemovedElement } from "./getRemovedElement";
9
+ export { getTextValue } from "./getTextValue";
@@ -141,7 +141,7 @@ import { LeftHelper, StyledRange, base } from "./RangeDate.styles";
141
141
  import { RangeDatePopover } from "./RangeDatePopover/RangeDatePopover";
142
142
  export var datePickerRangeRoot = function(Root) {
143
143
  return /*#__PURE__*/ forwardRef(function(_param, ref) {
144
- var className = _param.className, autoComplete = _param.autoComplete, _param_isDoubleCalendar = _param.isDoubleCalendar, isDoubleCalendar = _param_isDoubleCalendar === void 0 ? false : _param_isDoubleCalendar, _param_opened = _param.opened, opened = _param_opened === void 0 ? false : _param_opened, outerValue = _param.value, _param_defaultFirstDate = _param.defaultFirstDate, defaultFirstDate = _param_defaultFirstDate === void 0 ? '' : _param_defaultFirstDate, _param_defaultSecondDate = _param.defaultSecondDate, defaultSecondDate = _param_defaultSecondDate === void 0 ? '' : _param_defaultSecondDate, preserveInvalidOnBlur = _param.preserveInvalidOnBlur, label = _param.label, leftHelper = _param.leftHelper, contentLeft = _param.contentLeft, contentRight = _param.contentRight, view = _param.view, size = _param.size, _param_readOnly = _param.readOnly, readOnly = _param_readOnly === void 0 ? false : _param_readOnly, _param_disabled = _param.disabled, disabled = _param_disabled === void 0 ? false : _param_disabled, name = _param.name, _param_dividerVariant = _param.dividerVariant, dividerVariant = _param_dividerVariant === void 0 ? 'dash' : _param_dividerVariant, dividerIcon = _param.dividerIcon, firstValueError = _param.firstValueError, secondValueError = _param.secondValueError, firstValueSuccess = _param.firstValueSuccess, secondValueSuccess = _param.secondValueSuccess, firstPlaceholder = _param.firstPlaceholder, secondPlaceholder = _param.secondPlaceholder, firstTextfieldContentLeft = _param.firstTextfieldContentLeft, firstTextfieldContentRight = _param.firstTextfieldContentRight, secondTextfieldContentLeft = _param.secondTextfieldContentLeft, secondTextfieldContentRight = _param.secondTextfieldContentRight, firstTextfieldTextBefore = _param.firstTextfieldTextBefore, secondTextfieldTextBefore = _param.secondTextfieldTextBefore, firstTextfieldTextAfter = _param.firstTextfieldTextAfter, secondTextfieldTextAfter = _param.secondTextfieldTextAfter, required = _param.required, _param_requiredPlacement = _param.requiredPlacement, requiredPlacement = _param_requiredPlacement === void 0 ? 'right' : _param_requiredPlacement, _param_hasRequiredIndicator = _param.hasRequiredIndicator, hasRequiredIndicator = _param_hasRequiredIndicator === void 0 ? true : _param_hasRequiredIndicator, _param_format = _param.format, format = _param_format === void 0 ? 'DD.MM.YYYY' : _param_format, _param_lang = _param.lang, lang = _param_lang === void 0 ? 'ru' : _param_lang, maskWithFormat = _param.maskWithFormat, min = _param.min, max = _param.max, renderFromDate = _param.renderFromDate, _param_includeEdgeDates = _param.includeEdgeDates, includeEdgeDates = _param_includeEdgeDates === void 0 ? false : _param_includeEdgeDates, eventList = _param.eventList, disabledList = _param.disabledList, eventMonthList = _param.eventMonthList, disabledMonthList = _param.disabledMonthList, eventQuarterList = _param.eventQuarterList, disabledQuarterList = _param.disabledQuarterList, eventYearList = _param.eventYearList, disabledYearList = _param.disabledYearList, _param_type = _param.type, type = _param_type === void 0 ? 'Days' : _param_type, _param_frame = _param.frame, frame = _param_frame === void 0 ? 'document' : _param_frame, _param_usePortal = _param.usePortal, usePortal = _param_usePortal === void 0 ? false : _param_usePortal, _param_placement = _param.placement, placement = _param_placement === void 0 ? [
144
+ var className = _param.className, autoComplete = _param.autoComplete, _param_isDoubleCalendar = _param.isDoubleCalendar, isDoubleCalendar = _param_isDoubleCalendar === void 0 ? false : _param_isDoubleCalendar, _param_opened = _param.opened, opened = _param_opened === void 0 ? false : _param_opened, outerValue = _param.value, _param_defaultFirstDate = _param.defaultFirstDate, defaultFirstDate = _param_defaultFirstDate === void 0 ? '' : _param_defaultFirstDate, _param_defaultSecondDate = _param.defaultSecondDate, defaultSecondDate = _param_defaultSecondDate === void 0 ? '' : _param_defaultSecondDate, preserveInvalidOnBlur = _param.preserveInvalidOnBlur, label = _param.label, leftHelper = _param.leftHelper, contentLeft = _param.contentLeft, contentRight = _param.contentRight, view = _param.view, size = _param.size, _param_readOnly = _param.readOnly, readOnly = _param_readOnly === void 0 ? false : _param_readOnly, _param_disabled = _param.disabled, disabled = _param_disabled === void 0 ? false : _param_disabled, name = _param.name, _param_dividerVariant = _param.dividerVariant, dividerVariant = _param_dividerVariant === void 0 ? 'dash' : _param_dividerVariant, dividerIcon = _param.dividerIcon, firstValueError = _param.firstValueError, secondValueError = _param.secondValueError, firstValueSuccess = _param.firstValueSuccess, secondValueSuccess = _param.secondValueSuccess, firstPlaceholder = _param.firstPlaceholder, secondPlaceholder = _param.secondPlaceholder, firstTextfieldContentLeft = _param.firstTextfieldContentLeft, firstTextfieldContentRight = _param.firstTextfieldContentRight, secondTextfieldContentLeft = _param.secondTextfieldContentLeft, secondTextfieldContentRight = _param.secondTextfieldContentRight, firstTextfieldTextBefore = _param.firstTextfieldTextBefore, secondTextfieldTextBefore = _param.secondTextfieldTextBefore, firstTextfieldTextAfter = _param.firstTextfieldTextAfter, secondTextfieldTextAfter = _param.secondTextfieldTextAfter, required = _param.required, _param_requiredPlacement = _param.requiredPlacement, requiredPlacement = _param_requiredPlacement === void 0 ? 'right' : _param_requiredPlacement, _param_hasRequiredIndicator = _param.hasRequiredIndicator, hasRequiredIndicator = _param_hasRequiredIndicator === void 0 ? true : _param_hasRequiredIndicator, _param_format = _param.format, format = _param_format === void 0 ? 'DD.MM.YYYY' : _param_format, _param_lang = _param.lang, lang = _param_lang === void 0 ? 'ru' : _param_lang, maskWithFormat = _param.maskWithFormat, min = _param.min, max = _param.max, renderFromDate = _param.renderFromDate, _param_includeEdgeDates = _param.includeEdgeDates, includeEdgeDates = _param_includeEdgeDates === void 0 ? false : _param_includeEdgeDates, eventList = _param.eventList, disabledList = _param.disabledList, eventMonthList = _param.eventMonthList, disabledMonthList = _param.disabledMonthList, eventQuarterList = _param.eventQuarterList, disabledQuarterList = _param.disabledQuarterList, eventYearList = _param.eventYearList, disabledYearList = _param.disabledYearList, _param_type = _param.type, type = _param_type === void 0 ? 'Days' : _param_type, _param_frame = _param.frame, frame = _param_frame === void 0 ? 'document' : _param_frame, _param_usePortal = _param.usePortal, usePortal = _param_usePortal === void 0 ? false : _param_usePortal, zIndex = _param.zIndex, _param_placement = _param.placement, placement = _param_placement === void 0 ? [
145
145
  'top',
146
146
  'bottom'
147
147
  ] : _param_placement, _param_closeOnOverlayClick = _param.closeOnOverlayClick, closeOnOverlayClick = _param_closeOnOverlayClick === void 0 ? true : _param_closeOnOverlayClick, _param_closeOnEsc = _param.closeOnEsc, closeOnEsc = _param_closeOnEsc === void 0 ? true : _param_closeOnEsc, _param_closeAfterDateSelect = _param.closeAfterDateSelect, closeAfterDateSelect = _param_closeAfterDateSelect === void 0 ? true : _param_closeAfterDateSelect, offset = _param.offset, calendarContainerWidth = _param.calendarContainerWidth, calendarContainerHeight = _param.calendarContainerHeight, stretched = _param.stretched, onToggle = _param.onToggle, onChange = _param.onChange, onChangeFirstValue = _param.onChangeFirstValue, onChangeSecondValue = _param.onChangeSecondValue, onCommitFirstDate = _param.onCommitFirstDate, onCommitSecondDate = _param.onCommitSecondDate, onFocusFirstTextfield = _param.onFocusFirstTextfield, onFocusSecondTextfield = _param.onFocusSecondTextfield, onBlurFirstTextfield = _param.onBlurFirstTextfield, onBlurSecondTextfield = _param.onBlurSecondTextfield, rest = _object_without_properties(_param, [
@@ -199,6 +199,7 @@ export var datePickerRangeRoot = function(Root) {
199
199
  "type",
200
200
  "frame",
201
201
  "usePortal",
202
+ "zIndex",
202
203
  "placement",
203
204
  "closeOnOverlayClick",
204
205
  "closeOnEsc",
@@ -568,6 +569,7 @@ export var datePickerRangeRoot = function(Root) {
568
569
  renderFromDate: renderFromDate,
569
570
  frame: frame,
570
571
  usePortal: usePortal,
572
+ zIndex: zIndex,
571
573
  placement: placement,
572
574
  closeOnOverlayClick: closeOnOverlayClick,
573
575
  closeOnEsc: closeOnEsc,
@@ -18,7 +18,7 @@ import { StyledPopover } from "../RangeDate.styles";
18
18
  import { classes } from "../../DatePicker.tokens";
19
19
  import { StyledCalendar, StyledCalendarDouble } from "./RangeDatePopover.styles";
20
20
  export var RangeDatePopover = function(param) {
21
- var Root = param.rootWrapper, target = param.target, isOpen = param.isOpen, opened = param.opened, isDoubleCalendar = param.isDoubleCalendar, calendarValue = param.calendarValue, min = param.min, max = param.max, renderFromDate = param.renderFromDate, includeEdgeDates = param.includeEdgeDates, eventList = param.eventList, disabledList = param.disabledList, eventMonthList = param.eventMonthList, disabledMonthList = param.disabledMonthList, eventQuarterList = param.eventQuarterList, disabledQuarterList = param.disabledQuarterList, eventYearList = param.eventYearList, disabledYearList = param.disabledYearList, _param_frame = param.frame, frame = _param_frame === void 0 ? 'document' : _param_frame, _param_usePortal = param.usePortal, usePortal = _param_usePortal === void 0 ? false : _param_usePortal, _param_placement = param.placement, placement = _param_placement === void 0 ? [
21
+ var Root = param.rootWrapper, target = param.target, isOpen = param.isOpen, opened = param.opened, isDoubleCalendar = param.isDoubleCalendar, calendarValue = param.calendarValue, min = param.min, max = param.max, renderFromDate = param.renderFromDate, includeEdgeDates = param.includeEdgeDates, eventList = param.eventList, disabledList = param.disabledList, eventMonthList = param.eventMonthList, disabledMonthList = param.disabledMonthList, eventQuarterList = param.eventQuarterList, disabledQuarterList = param.disabledQuarterList, eventYearList = param.eventYearList, disabledYearList = param.disabledYearList, _param_frame = param.frame, frame = _param_frame === void 0 ? 'document' : _param_frame, _param_usePortal = param.usePortal, usePortal = _param_usePortal === void 0 ? false : _param_usePortal, zIndex = param.zIndex, _param_placement = param.placement, placement = _param_placement === void 0 ? [
22
22
  'top',
23
23
  'bottom'
24
24
  ] : _param_placement, _param_closeOnOverlayClick = param.closeOnOverlayClick, closeOnOverlayClick = _param_closeOnOverlayClick === void 0 ? true : _param_closeOnOverlayClick, closeOnEsc = param.closeOnEsc, offset = param.offset, calendarContainerWidth = param.calendarContainerWidth, calendarContainerHeight = param.calendarContainerHeight, stretched = param.stretched, type = param.type, size = param.size, _param_lang = param.lang, lang = _param_lang === void 0 ? 'ru' : _param_lang, disabled = param.disabled, readOnly = param.readOnly, setIsInnerOpen = param.setIsInnerOpen, onChangeValue = param.onChangeValue, onChangeStartOfRange = param.onChangeStartOfRange, onToggle = param.onToggle;
@@ -51,7 +51,8 @@ export var RangeDatePopover = function(param) {
51
51
  closeOnOverlayClick: closeOnOverlayClick,
52
52
  isFocusTrapped: false,
53
53
  target: target,
54
- preventOverflow: false
54
+ preventOverflow: false,
55
+ zIndex: zIndex
55
56
  }, /*#__PURE__*/ React.createElement(Root, {
56
57
  ref: doubleCalendarRootRef,
57
58
  className: cls(classes.datePickerRoot, _define_property({}, classes.datePickerstretched, stretched)),
@@ -92,7 +93,8 @@ export var RangeDatePopover = function(param) {
92
93
  isFocusTrapped: false,
93
94
  target: target,
94
95
  preventOverflow: false,
95
- closeOnEsc: closeOnEsc
96
+ closeOnEsc: closeOnEsc,
97
+ zIndex: zIndex
96
98
  }, /*#__PURE__*/ React.createElement(Root, {
97
99
  ref: calendarRootRef,
98
100
  className: cls(classes.datePickerRoot, _define_property({}, classes.datePickerstretched, stretched)),
@@ -115,7 +115,7 @@ import { base as readOnlyCSS } from "./variations/_readonly/base";
115
115
  import { LeftHelper, StyledInput, StyledPopover, base } from "./SingleDate.styles";
116
116
  export var datePickerRoot = function(Root) {
117
117
  return /*#__PURE__*/ forwardRef(function(_param, ref) {
118
- var className = _param.className, _param_opened = _param.opened, opened = _param_opened === void 0 ? false : _param_opened, outerValue = _param.value, _param_defaultDate = _param.defaultDate, defaultDate = _param_defaultDate === void 0 ? '' : _param_defaultDate, preserveInvalidOnBlur = _param.preserveInvalidOnBlur, label = _param.label, _param_labelPlacement = _param.labelPlacement, labelPlacement = _param_labelPlacement === void 0 ? 'outer' : _param_labelPlacement, keepPlaceholder = _param.keepPlaceholder, _param_required = _param.required, required = _param_required === void 0 ? false : _param_required, _param_requiredPlacement = _param.requiredPlacement, requiredPlacement = _param_requiredPlacement === void 0 ? 'right' : _param_requiredPlacement, _param_hasRequiredIndicator = _param.hasRequiredIndicator, hasRequiredIndicator = _param_hasRequiredIndicator === void 0 ? true : _param_hasRequiredIndicator, placeholder = _param.placeholder, leftHelper = _param.leftHelper, contentLeft = _param.contentLeft, contentRight = _param.contentRight, textBefore = _param.textBefore, textAfter = _param.textAfter, view = _param.view, size = _param.size, _param_readOnly = _param.readOnly, readOnly = _param_readOnly === void 0 ? false : _param_readOnly, _param_disabled = _param.disabled, disabled = _param_disabled === void 0 ? false : _param_disabled, name = _param.name, valueError = _param.valueError, valueSuccess = _param.valueSuccess, _param_format = _param.format, format = _param_format === void 0 ? 'DD.MM.YYYY' : _param_format, _param_lang = _param.lang, lang = _param_lang === void 0 ? 'ru' : _param_lang, maskWithFormat = _param.maskWithFormat, min = _param.min, max = _param.max, renderFromDate = _param.renderFromDate, _param_includeEdgeDates = _param.includeEdgeDates, includeEdgeDates = _param_includeEdgeDates === void 0 ? false : _param_includeEdgeDates, eventList = _param.eventList, disabledList = _param.disabledList, eventMonthList = _param.eventMonthList, disabledMonthList = _param.disabledMonthList, eventQuarterList = _param.eventQuarterList, disabledQuarterList = _param.disabledQuarterList, eventYearList = _param.eventYearList, disabledYearList = _param.disabledYearList, _param_type = _param.type, type = _param_type === void 0 ? 'Days' : _param_type, _param_frame = _param.frame, frame = _param_frame === void 0 ? 'document' : _param_frame, _param_usePortal = _param.usePortal, usePortal = _param_usePortal === void 0 ? false : _param_usePortal, _param_placement = _param.placement, placement = _param_placement === void 0 ? [
118
+ var className = _param.className, _param_opened = _param.opened, opened = _param_opened === void 0 ? false : _param_opened, outerValue = _param.value, _param_defaultDate = _param.defaultDate, defaultDate = _param_defaultDate === void 0 ? '' : _param_defaultDate, preserveInvalidOnBlur = _param.preserveInvalidOnBlur, label = _param.label, _param_labelPlacement = _param.labelPlacement, labelPlacement = _param_labelPlacement === void 0 ? 'outer' : _param_labelPlacement, keepPlaceholder = _param.keepPlaceholder, _param_required = _param.required, required = _param_required === void 0 ? false : _param_required, _param_requiredPlacement = _param.requiredPlacement, requiredPlacement = _param_requiredPlacement === void 0 ? 'right' : _param_requiredPlacement, _param_hasRequiredIndicator = _param.hasRequiredIndicator, hasRequiredIndicator = _param_hasRequiredIndicator === void 0 ? true : _param_hasRequiredIndicator, placeholder = _param.placeholder, leftHelper = _param.leftHelper, contentLeft = _param.contentLeft, contentRight = _param.contentRight, textBefore = _param.textBefore, textAfter = _param.textAfter, view = _param.view, size = _param.size, _param_readOnly = _param.readOnly, readOnly = _param_readOnly === void 0 ? false : _param_readOnly, _param_disabled = _param.disabled, disabled = _param_disabled === void 0 ? false : _param_disabled, name = _param.name, valueError = _param.valueError, valueSuccess = _param.valueSuccess, _param_format = _param.format, format = _param_format === void 0 ? 'DD.MM.YYYY' : _param_format, _param_lang = _param.lang, lang = _param_lang === void 0 ? 'ru' : _param_lang, maskWithFormat = _param.maskWithFormat, min = _param.min, max = _param.max, renderFromDate = _param.renderFromDate, _param_includeEdgeDates = _param.includeEdgeDates, includeEdgeDates = _param_includeEdgeDates === void 0 ? false : _param_includeEdgeDates, eventList = _param.eventList, disabledList = _param.disabledList, eventMonthList = _param.eventMonthList, disabledMonthList = _param.disabledMonthList, eventQuarterList = _param.eventQuarterList, disabledQuarterList = _param.disabledQuarterList, eventYearList = _param.eventYearList, disabledYearList = _param.disabledYearList, _param_type = _param.type, type = _param_type === void 0 ? 'Days' : _param_type, _param_frame = _param.frame, frame = _param_frame === void 0 ? 'document' : _param_frame, _param_usePortal = _param.usePortal, usePortal = _param_usePortal === void 0 ? false : _param_usePortal, zIndex = _param.zIndex, _param_placement = _param.placement, placement = _param_placement === void 0 ? [
119
119
  'top',
120
120
  'bottom'
121
121
  ] : _param_placement, _param_closeOnOverlayClick = _param.closeOnOverlayClick, closeOnOverlayClick = _param_closeOnOverlayClick === void 0 ? true : _param_closeOnOverlayClick, _param_closeOnEsc = _param.closeOnEsc, closeOnEsc = _param_closeOnEsc === void 0 ? true : _param_closeOnEsc, _param_closeAfterDateSelect = _param.closeAfterDateSelect, closeAfterDateSelect = _param_closeAfterDateSelect === void 0 ? true : _param_closeAfterDateSelect, offset = _param.offset, calendarContainerWidth = _param.calendarContainerWidth, calendarContainerHeight = _param.calendarContainerHeight, stretched = _param.stretched, onChangeValue = _param.onChangeValue, onCommitDate = _param.onCommitDate, onToggle = _param.onToggle, onFocus = _param.onFocus, onBlur = _param.onBlur, onChange = _param.onChange, autoComplete = _param.autoComplete, rest = _object_without_properties(_param, [
@@ -161,6 +161,7 @@ export var datePickerRoot = function(Root) {
161
161
  "type",
162
162
  "frame",
163
163
  "usePortal",
164
+ "zIndex",
164
165
  "placement",
165
166
  "closeOnOverlayClick",
166
167
  "closeOnEsc",
@@ -348,7 +349,8 @@ export var datePickerRoot = function(Root) {
348
349
  closeOnOverlayClick: closeOnOverlayClick,
349
350
  isFocusTrapped: false,
350
351
  target: DatePickerInput,
351
- preventOverflow: false
352
+ preventOverflow: false,
353
+ zIndex: zIndex
352
354
  }, /*#__PURE__*/ React.createElement(Root, {
353
355
  ref: calendarRootRef,
354
356
  view: view,
@@ -50,12 +50,24 @@ import { useIsomorphicLayoutEffect } from "../../hooks";
50
50
  // Полиморфная версия портала для рендера как на сервере, так и на клиенте.
51
51
  // Позволяет избежать ошибок, связанных с гидрацией.
52
52
  var ClientOnlyPortal = function(param) {
53
- var children = param.children;
53
+ var children = param.children, providerFrame = param.providerFrame;
54
54
  var ref = useRef(null);
55
55
  var _useState = _sliced_to_array(useState(false), 2), mounted = _useState[0], setMounted = _useState[1];
56
56
  useIsomorphicLayoutEffect(function() {
57
- ref.current = document.body;
58
57
  setMounted(true);
58
+ if (typeof providerFrame !== 'string' && providerFrame && providerFrame.current) {
59
+ ref.current = providerFrame.current;
60
+ return;
61
+ }
62
+ if (typeof providerFrame === 'string' && providerFrame !== 'document') {
63
+ var containerElement = document.getElementById(providerFrame);
64
+ if (!containerElement) {
65
+ ref.current = document.body;
66
+ }
67
+ ref.current = containerElement;
68
+ return;
69
+ }
70
+ ref.current = document.body;
59
71
  }, []);
60
72
  return mounted && ref.current ? /*#__PURE__*/ createPortal(children, ref.current) : null;
61
73
  };
@@ -69,7 +69,7 @@ export var usePopupContext = function() {
69
69
  };
70
70
  // TODO: #1599
71
71
  export var PopupProvider = function(param) {
72
- var children = param.children, UNSAFE_SSR_ENABLED = param.UNSAFE_SSR_ENABLED;
72
+ var children = param.children, providerFrame = param.providerFrame, UNSAFE_SSR_ENABLED = param.UNSAFE_SSR_ENABLED;
73
73
  var prevBodyOverflowY = useRef(canUseDOM ? document.body.style.overflowY : '');
74
74
  var _useState = _sliced_to_array(useState(initialItems), 2), items = _useState[0], setItems = _useState[1];
75
75
  var uuid = safeUseId();
@@ -112,13 +112,32 @@ export var PopupProvider = function(param) {
112
112
  register: register,
113
113
  unregister: unregister
114
114
  };
115
+ var getDefaultPortal = function() {
116
+ if (typeof providerFrame !== 'string' && providerFrame && providerFrame.current && canUseDOM) {
117
+ return /*#__PURE__*/ React.createElement(Portal, {
118
+ container: providerFrame.current
119
+ }, /*#__PURE__*/ React.createElement(StyledPortal, {
120
+ id: rootId
121
+ }));
122
+ }
123
+ var withFrameId = typeof providerFrame === 'string' && providerFrame !== 'document';
124
+ var containerElement = withFrameId && canUseDOM && document.getElementById(providerFrame);
125
+ if (containerElement) {
126
+ return /*#__PURE__*/ React.createElement(Portal, {
127
+ container: containerElement
128
+ }, /*#__PURE__*/ React.createElement(StyledPortal, {
129
+ id: rootId
130
+ }));
131
+ }
132
+ return /*#__PURE__*/ React.createElement(Portal, {
133
+ container: document.body
134
+ }, /*#__PURE__*/ React.createElement(StyledPortal, {
135
+ id: rootId
136
+ }));
137
+ };
115
138
  return /*#__PURE__*/ React.createElement(PopupContext.Provider, {
116
139
  value: context
117
140
  }, children, UNSAFE_SSR_ENABLED ? /*#__PURE__*/ React.createElement(ClientOnlyPortal, null, /*#__PURE__*/ React.createElement(StyledPortal, {
118
141
  id: rootId
119
- })) : /*#__PURE__*/ React.createElement(Portal, {
120
- container: document.body
121
- }, /*#__PURE__*/ React.createElement(StyledPortal, {
122
- id: rootId
123
- })));
142
+ })) : getDefaultPortal());
124
143
  };
@@ -210,7 +210,6 @@ import { Context } from "./Select.context";
210
210
  var activeDescendantItemValue = ((_getItemByFocused = getItemByFocused(focusedPath, focusedToValueMap)) === null || _getItemByFocused === void 0 ? void 0 : _getItemByFocused.value.toString()) || '';
211
211
  var closeAfterSelect = outerCloseAfterSelect !== null && outerCloseAfterSelect !== void 0 ? outerCloseAfterSelect : !props.multiselect;
212
212
  var treeId = safeUseId();
213
- var listWrapperRef = useRef(null);
214
213
  var view = target === 'textfield-like' && (disabled || readOnly) ? 'default' : getView(status, outerView);
215
214
  // Собираем объект с пропсами для required и прокидываем их напрямую в компонент Textfield.
216
215
  var requiredProps = props.target === 'button-like' ? undefined : {
@@ -497,12 +496,12 @@ import { Context } from "./Select.context";
497
496
  disabled: disabled,
498
497
  readOnly: readOnly
499
498
  }, rest), /*#__PURE__*/ React.createElement(ListWrapper, {
500
- ref: listWrapperRef,
501
499
  listWidth: listWidth
502
500
  }, /*#__PURE__*/ React.createElement(Ul, {
503
501
  role: "tree",
504
502
  id: "".concat(treeId, "_tree_level_1"),
505
503
  "aria-multiselectable": Boolean(props.multiselect),
504
+ listOverflow: listOverflow,
506
505
  listMaxHeight: listMaxHeight || listHeight,
507
506
  onScroll: virtual ? undefined : handleScroll,
508
507
  ref: targetRef,
@@ -523,8 +522,7 @@ import { Context } from "./Select.context";
523
522
  path: path,
524
523
  dispatchPath: dispatchPath,
525
524
  index: index,
526
- listWidth: listWidth,
527
- portal: listWrapperRef
525
+ listWidth: listWidth
528
526
  });
529
527
  }), afterList))))));
530
528
  });
@@ -4,7 +4,7 @@ import { getCorrectHeight } from "./utils";
4
4
  import { tokens, constants } from "./Select.tokens";
5
5
  export var ListWrapper = styled.div.withConfig({
6
6
  displayName: "Select.styles__ListWrapper",
7
- componentId: "sc-23c571db-0"
7
+ componentId: "sc-30266665-0"
8
8
  })([
9
9
  "width:",
10
10
  ";padding:calc(var(",
@@ -21,7 +21,7 @@ export var ListWrapper = styled.div.withConfig({
21
21
  }, tokens.padding, tokens.dropdownBorderWidth, tokens.borderRadius, constants.background, constants.boxShadow, tokens.dropdownBorderWidth, tokens.dropdownBorderColor);
22
22
  export var Ul = styled.ul.withConfig({
23
23
  displayName: "Select.styles__Ul",
24
- componentId: "sc-23c571db-1"
24
+ componentId: "sc-30266665-1"
25
25
  })([
26
26
  "max-height:",
27
27
  ";overflow-y:",
@@ -33,8 +33,8 @@ export var Ul = styled.ul.withConfig({
33
33
  return(// eslint-disable-next-line no-nested-ternary
34
34
  virtual ? 'auto' : listMaxHeight ? getCorrectHeight(listMaxHeight) : 'auto');
35
35
  }, function(param) {
36
- var virtual = param.virtual;
37
- return virtual ? 'visible' : 'auto';
36
+ var virtual = param.virtual, listOverflow = param.listOverflow;
37
+ return virtual ? 'visible' : listOverflow || 'visible';
38
38
  }, tokens.borderRadius, tokens.dropdownBorderWidth);
39
39
  export var base = css([
40
40
  ""
@@ -1,10 +1,10 @@
1
- import React, { useRef } from "react";
1
+ import React from "react";
2
2
  import { isEmpty, safeUseId } from "../../../../utils";
3
3
  import { Ul, ListWrapper } from "../../Select.styles";
4
4
  import { FloatingPopover } from "../../FloatingPopover";
5
5
  import { Item } from "./ui/Item/Item";
6
6
  export var Inner = function(param) {
7
- var item = param.item, currentLevel = param.currentLevel, path = param.path, dispatchPath = param.dispatchPath, index = param.index, listWidth = param.listWidth, portal = param.portal;
7
+ var item = param.item, currentLevel = param.currentLevel, path = param.path, dispatchPath = param.dispatchPath, index = param.index, listWidth = param.listWidth;
8
8
  var handleToggle = function(opened) {
9
9
  if (opened) {
10
10
  dispatchPath({
@@ -19,7 +19,6 @@ export var Inner = function(param) {
19
19
  });
20
20
  }
21
21
  };
22
- var listWrapperRef = useRef(null);
23
22
  var isCurrentListOpen = path[currentLevel + 1] === item.value.toString();
24
23
  var treeId = safeUseId();
25
24
  var listId = "".concat(treeId, "_tree_level_").concat(currentLevel + 2);
@@ -40,16 +39,13 @@ export var Inner = function(param) {
40
39
  ariaLevel: nextLevel,
41
40
  ariaLabel: item.label
42
41
  }),
43
- isInner: true,
44
- portal: portal
42
+ isInner: true
45
43
  }, /*#__PURE__*/ React.createElement(ListWrapper, {
46
- listWidth: listWidth,
47
- ref: listWrapperRef
44
+ listWidth: listWidth
48
45
  }, /*#__PURE__*/ React.createElement(Ul, {
49
46
  role: "group",
50
47
  id: listId,
51
- virtual: false,
52
- listMaxHeight: item === null || item === void 0 ? void 0 : item.listMaxHeight
48
+ virtual: false
53
49
  }, (_item_items = item.items) === null || _item_items === void 0 ? void 0 : _item_items.map(function(innerItem, innerIndex) {
54
50
  return /*#__PURE__*/ React.createElement(Inner, {
55
51
  key: "".concat(innerIndex, "/").concat(currentLevel),
@@ -58,8 +54,7 @@ export var Inner = function(param) {
58
54
  path: path,
59
55
  dispatchPath: dispatchPath,
60
56
  index: innerIndex,
61
- listWidth: listWidth,
62
- portal: listWrapperRef
57
+ listWidth: listWidth
63
58
  });
64
59
  }))));
65
60
  }