@salutejs/plasma-new-hope 0.242.0-canary.1709.12829247465.0 → 0.242.0-dev.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 (84) hide show
  1. package/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +1 -1
  2. package/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js.map +1 -1
  3. package/cjs/components/DatePicker/RangeDate/RangeDate.js +66 -21
  4. package/cjs/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
  5. package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +1 -2
  6. package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js.map +1 -1
  7. package/cjs/components/Select/ui/Inner/Inner.js +1 -1
  8. package/cjs/components/Select/ui/Inner/Inner.js.map +1 -1
  9. package/emotion/cjs/components/Combobox/Combobox.template-doc.mdx +0 -5
  10. package/emotion/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +1 -1
  11. package/emotion/cjs/components/DatePicker/RangeDate/RangeDate.js +66 -21
  12. package/emotion/cjs/components/Dropdown/Dropdown.template-doc.mdx +0 -4
  13. package/emotion/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +1 -2
  14. package/emotion/cjs/components/Select/ui/Inner/Inner.js +1 -1
  15. package/emotion/cjs/examples/plasma_b2c/components/DatePicker/DatePicker.stories.tsx +1 -7
  16. package/emotion/cjs/examples/plasma_web/components/DatePicker/DatePicker.stories.tsx +3 -7
  17. package/emotion/es/components/Combobox/Combobox.template-doc.mdx +0 -5
  18. package/emotion/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +1 -1
  19. package/emotion/es/components/DatePicker/RangeDate/RangeDate.js +66 -21
  20. package/emotion/es/components/Dropdown/Dropdown.template-doc.mdx +0 -4
  21. package/emotion/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +1 -2
  22. package/emotion/es/components/Select/ui/Inner/Inner.js +1 -1
  23. package/emotion/es/examples/plasma_b2c/components/DatePicker/DatePicker.stories.tsx +1 -7
  24. package/emotion/es/examples/plasma_web/components/DatePicker/DatePicker.stories.tsx +3 -7
  25. package/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +1 -1
  26. package/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js.map +1 -1
  27. package/es/components/DatePicker/RangeDate/RangeDate.js +66 -21
  28. package/es/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
  29. package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +1 -2
  30. package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js.map +1 -1
  31. package/es/components/Select/ui/Inner/Inner.js +1 -1
  32. package/es/components/Select/ui/Inner/Inner.js.map +1 -1
  33. package/package.json +2 -2
  34. package/styled-components/cjs/components/Combobox/Combobox.template-doc.mdx +0 -5
  35. package/styled-components/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +1 -1
  36. package/styled-components/cjs/components/DatePicker/RangeDate/RangeDate.js +66 -21
  37. package/styled-components/cjs/components/Dropdown/Dropdown.template-doc.mdx +0 -4
  38. package/styled-components/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +1 -2
  39. package/styled-components/cjs/components/Select/ui/Inner/Inner.js +1 -1
  40. package/styled-components/cjs/examples/plasma_b2c/components/DatePicker/DatePicker.stories.tsx +1 -7
  41. package/styled-components/cjs/examples/plasma_web/components/DatePicker/DatePicker.stories.tsx +3 -7
  42. package/styled-components/es/components/Combobox/Combobox.template-doc.mdx +0 -5
  43. package/styled-components/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +1 -1
  44. package/styled-components/es/components/DatePicker/RangeDate/RangeDate.js +66 -21
  45. package/styled-components/es/components/Dropdown/Dropdown.template-doc.mdx +0 -4
  46. package/styled-components/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +1 -2
  47. package/styled-components/es/components/Select/ui/Inner/Inner.js +1 -1
  48. package/styled-components/es/examples/plasma_b2c/components/DatePicker/DatePicker.stories.tsx +1 -7
  49. package/styled-components/es/examples/plasma_web/components/DatePicker/DatePicker.stories.tsx +3 -7
  50. package/types/components/Combobox/ComboboxNew/Combobox.types.d.ts +1 -1
  51. package/types/components/Combobox/ComboboxNew/Combobox.types.d.ts.map +1 -1
  52. package/types/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.types.d.ts +0 -6
  53. package/types/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.types.d.ts.map +1 -1
  54. package/types/components/DatePicker/RangeDate/RangeDate.d.ts +10 -8
  55. package/types/components/DatePicker/RangeDate/RangeDate.d.ts.map +1 -1
  56. package/types/components/DatePicker/RangeDate/RangeDate.styles.d.ts +12 -12
  57. package/types/components/DatePicker/RangeDate/RangeDate.types.d.ts +4 -0
  58. package/types/components/DatePicker/RangeDate/RangeDate.types.d.ts.map +1 -1
  59. package/types/components/DatePicker/SingleDate/SingleDate.types.d.ts +1 -1
  60. package/types/components/DatePicker/SingleDate/SingleDate.types.d.ts.map +1 -1
  61. package/types/components/Dropdown/ui/DropdownInner/DropdownInner.d.ts.map +1 -1
  62. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.type.d.ts +0 -5
  63. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.type.d.ts.map +1 -1
  64. package/types/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.styles.d.ts +4 -4
  65. package/types/components/Range/Range.types.d.ts +5 -5
  66. package/types/components/Range/Range.types.d.ts.map +1 -1
  67. package/types/components/Select/Select.types.d.ts +2 -2
  68. package/types/components/Select/Select.types.d.ts.map +1 -1
  69. package/types/components/Select/ui/Inner/ui/Item/Item.types.d.ts +0 -11
  70. package/types/components/Select/ui/Inner/ui/Item/Item.types.d.ts.map +1 -1
  71. package/types/examples/plasma_b2c/components/Combobox/Combobox.d.ts +24 -24
  72. package/types/examples/plasma_b2c/components/DatePicker/DatePicker.d.ts +5 -4
  73. package/types/examples/plasma_b2c/components/DatePicker/DatePicker.d.ts.map +1 -1
  74. package/types/examples/plasma_b2c/components/Range/Range.d.ts +12 -12
  75. package/types/examples/plasma_b2c/components/Select/Select.d.ts +4 -4
  76. package/types/examples/plasma_web/components/Combobox/Combobox.d.ts +24 -24
  77. package/types/examples/plasma_web/components/DatePicker/DatePicker.d.ts +5 -4
  78. package/types/examples/plasma_web/components/DatePicker/DatePicker.d.ts.map +1 -1
  79. package/types/examples/plasma_web/components/Range/Range.d.ts +12 -12
  80. package/types/examples/plasma_web/components/Select/Select.d.ts +4 -4
  81. package/emotion/cjs/components/Select/Select.template-doc.mdx +0 -441
  82. package/emotion/es/components/Select/Select.template-doc.mdx +0 -441
  83. package/styled-components/cjs/components/Select/Select.template-doc.mdx +0 -441
  84. package/styled-components/es/components/Select/Select.template-doc.mdx +0 -441
@@ -19,7 +19,7 @@ var _base3 = /*#__PURE__*/require("./variations/_disabled/base");
19
19
  var _base4 = /*#__PURE__*/require("./variations/_readonly/base");
20
20
  var _RangeDate = /*#__PURE__*/require("./RangeDate.styles");
21
21
  var _RangeDatePopover = /*#__PURE__*/require("./RangeDatePopover/RangeDatePopover");
22
- var _excluded = ["className", "autoComplete", "isDoubleCalendar", "opened", "label", "leftHelper", "contentLeft", "contentRight", "view", "size", "readOnly", "disabled", "name", "dividerVariant", "dividerIcon", "defaultFirstDate", "defaultSecondDate", "firstValueError", "secondValueError", "firstValueSuccess", "secondValueSuccess", "firstPlaceholder", "secondPlaceholder", "firstTextfieldContentLeft", "firstTextfieldContentRight", "secondTextfieldContentLeft", "secondTextfieldContentRight", "firstTextfieldTextBefore", "secondTextfieldTextBefore", "firstTextfieldTextAfter", "secondTextfieldTextAfter", "required", "requiredPlacement", "format", "lang", "maskWithFormat", "min", "max", "includeEdgeDates", "eventList", "disabledList", "eventMonthList", "disabledMonthList", "eventQuarterList", "disabledQuarterList", "eventYearList", "disabledYearList", "type", "frame", "usePortal", "placement", "closeOnOverlayClick", "closeOnEsc", "offset", "onToggle", "onChange", "onChangeFirstValue", "onChangeSecondValue", "onCommitFirstDate", "onCommitSecondDate", "onFocusFirstTextfield", "onFocusSecondTextfield", "onBlurFirstTextfield", "onBlurSecondTextfield"];
22
+ var _excluded = ["className", "autoComplete", "isDoubleCalendar", "opened", "label", "leftHelper", "contentLeft", "contentRight", "view", "size", "readOnly", "disabled", "name", "dividerVariant", "dividerIcon", "defaultFirstDate", "defaultSecondDate", "firstValueError", "secondValueError", "firstValueSuccess", "secondValueSuccess", "firstPlaceholder", "secondPlaceholder", "firstTextfieldContentLeft", "firstTextfieldContentRight", "secondTextfieldContentLeft", "secondTextfieldContentRight", "firstTextfieldTextBefore", "secondTextfieldTextBefore", "firstTextfieldTextAfter", "secondTextfieldTextAfter", "required", "requiredPlacement", "format", "lang", "maskWithFormat", "min", "max", "includeEdgeDates", "eventList", "disabledList", "eventMonthList", "disabledMonthList", "eventQuarterList", "disabledQuarterList", "eventYearList", "disabledYearList", "type", "frame", "usePortal", "placement", "closeOnOverlayClick", "closeOnEsc", "closeAfterDateSelect", "offset", "onToggle", "onChange", "onChangeFirstValue", "onChangeSecondValue", "onCommitFirstDate", "onCommitSecondDate", "onFocusFirstTextfield", "onFocusSecondTextfield", "onBlurFirstTextfield", "onBlurSecondTextfield"];
23
23
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
24
24
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
25
25
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
@@ -104,6 +104,8 @@ var datePickerRangeRoot = exports.datePickerRangeRoot = function datePickerRange
104
104
  closeOnOverlayClick = _ref$closeOnOverlayCl === void 0 ? true : _ref$closeOnOverlayCl,
105
105
  _ref$closeOnEsc = _ref.closeOnEsc,
106
106
  closeOnEsc = _ref$closeOnEsc === void 0 ? true : _ref$closeOnEsc,
107
+ _ref$closeAfterDateSe = _ref.closeAfterDateSelect,
108
+ closeAfterDateSelect = _ref$closeAfterDateSe === void 0 ? true : _ref$closeAfterDateSe,
107
109
  offset = _ref.offset,
108
110
  onToggle = _ref.onToggle,
109
111
  onChange = _ref.onChange,
@@ -156,6 +158,14 @@ var datePickerRangeRoot = exports.datePickerRangeRoot = function datePickerRange
156
158
  _useState14 = _slicedToArray(_useState13, 2),
157
159
  inputSecondValue = _useState14[0],
158
160
  setInputSecondValue = _useState14[1];
161
+ var _useState15 = (0, _react.useState)(Boolean(calendarFirstValue && calendarSecondValue)),
162
+ _useState16 = _slicedToArray(_useState15, 2),
163
+ fullDateEntered = _useState16[0],
164
+ setFullDateEntered = _useState16[1];
165
+ var _useState17 = (0, _react.useState)(false),
166
+ _useState18 = _slicedToArray(_useState17, 2),
167
+ secondTextFieldClicked = _useState18[0],
168
+ setSecondTextFieldClicked = _useState18[1];
159
169
  var setFirstInputValue = function setFirstInputValue(value) {
160
170
  setInputFirstValue(value);
161
171
  if (onChange) {
@@ -216,12 +226,12 @@ var datePickerRangeRoot = exports.datePickerRangeRoot = function datePickerRange
216
226
  }),
217
227
  handleChangeSecondValue = _useDatePicker2.handleChangeValue,
218
228
  handleCommitSecondDate = _useDatePicker2.handleCommitDate;
219
- var handleToggle = function handleToggle(opened, event) {
229
+ var handleToggle = function handleToggle(currentOpened, event) {
220
230
  var _firstInputRef$curren, _secondInputRef$curre;
221
231
  if (disabled || readOnly) {
222
232
  return;
223
233
  }
224
- var isCalendarOpen = (firstInputRef !== null && firstInputRef !== void 0 && (_firstInputRef$curren = firstInputRef.current) !== null && _firstInputRef$curren !== void 0 && _firstInputRef$curren.contains(event.target || null) || secondInputRef !== null && secondInputRef !== void 0 && (_secondInputRef$curre = secondInputRef.current) !== null && _secondInputRef$curre !== void 0 && _secondInputRef$curre.contains(event.target || null)) && event.code !== _useKeyboardNavigation.keys.Escape ? true : opened;
234
+ var isCalendarOpen = (firstInputRef !== null && firstInputRef !== void 0 && (_firstInputRef$curren = firstInputRef.current) !== null && _firstInputRef$curren !== void 0 && _firstInputRef$curren.contains((event === null || event === void 0 ? void 0 : event.target) || null) || secondInputRef !== null && secondInputRef !== void 0 && (_secondInputRef$curre = secondInputRef.current) !== null && _secondInputRef$curre !== void 0 && _secondInputRef$curre.contains((event === null || event === void 0 ? void 0 : event.target) || null)) && (event === null || event === void 0 ? void 0 : event.code) !== _useKeyboardNavigation.keys.Escape ? true : currentOpened;
225
235
  if (!isCalendarOpen) {
226
236
  if (calendarFirstValue && !calendarSecondValue) {
227
237
  var _secondInputRef$curre2;
@@ -232,11 +242,22 @@ var datePickerRangeRoot = exports.datePickerRangeRoot = function datePickerRange
232
242
  firstInputRef === null || firstInputRef === void 0 || (_firstInputRef$curren2 = firstInputRef.current) === null || _firstInputRef$curren2 === void 0 || _firstInputRef$curren2.focus();
233
243
  }
234
244
  }
245
+ if (!isCalendarOpen) {
246
+ setSecondTextFieldClicked(false);
247
+ }
235
248
  if (onToggle) {
236
249
  return onToggle(isCalendarOpen, event);
237
250
  }
238
251
  setIsInnerOpen(isCalendarOpen);
239
252
  };
253
+ var handleFocusFirstTextField = function handleFocusFirstTextField(event) {
254
+ onFocusFirstTextfield === null || onFocusFirstTextfield === void 0 || onFocusFirstTextfield(event);
255
+ setSecondTextFieldClicked(false);
256
+ };
257
+ var handleFocusSecondTextField = function handleFocusSecondTextField(event) {
258
+ onFocusSecondTextfield === null || onFocusSecondTextfield === void 0 || onFocusSecondTextfield(event);
259
+ setSecondTextFieldClicked(true);
260
+ };
240
261
  var handleBlur = function handleBlur(event, outerHandler) {
241
262
  if (!inputFirstValue || !inputSecondValue) {
242
263
  outerHandler === null || outerHandler === void 0 || outerHandler(event);
@@ -276,6 +297,37 @@ var datePickerRangeRoot = exports.datePickerRangeRoot = function datePickerRange
276
297
  closeOnEsc: closeOnEsc
277
298
  }),
278
299
  onKeyDown = _useKeyNavigation.onKeyDown;
300
+ var handleChangeStartOfRange = function handleChangeStartOfRange(chosenDate, dateInfo) {
301
+ if (!fullDateEntered) {
302
+ handleCommitFirstDate(chosenDate, false, true, dateInfo);
303
+ handleCommitSecondDate('');
304
+ return;
305
+ }
306
+ var prevValue = secondTextFieldClicked ? calendarFirstValue : calendarSecondValue;
307
+ var _getSortedValues3 = (0, _utils2.getSortedValues)([prevValue, chosenDate]),
308
+ _getSortedValues4 = _slicedToArray(_getSortedValues3, 2),
309
+ first = _getSortedValues4[0],
310
+ second = _getSortedValues4[1];
311
+ handleCommitFirstDate(first, false, true, dateInfo);
312
+ handleCommitSecondDate(second, false, true, dateInfo);
313
+ if (!firstValueError && !secondValueError && closeAfterDateSelect) {
314
+ handleToggle(false);
315
+ }
316
+ };
317
+ var handleChangeCalendarValue = function handleChangeCalendarValue(_ref2, dateInfo) {
318
+ var _ref3 = _slicedToArray(_ref2, 2),
319
+ firstDate = _ref3[0],
320
+ secondDate = _ref3[1];
321
+ if (firstDate) {
322
+ handleCommitFirstDate(firstDate, false, true, dateInfo);
323
+ }
324
+ if (secondDate) {
325
+ handleCommitSecondDate(secondDate, false, true, dateInfo);
326
+ }
327
+ if (firstDate && secondDate && !firstValueError && !secondValueError && closeAfterDateSelect) {
328
+ handleToggle(false);
329
+ }
330
+ };
279
331
  var RangeComponent = /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_RangeDate.StyledRange, {
280
332
  ref: rangeRef,
281
333
  autoComplete: autoComplete,
@@ -321,8 +373,8 @@ var datePickerRangeRoot = exports.datePickerRangeRoot = function datePickerRange
321
373
  rangeRef === null || rangeRef === void 0 || (_rangeRef$current4 = rangeRef.current) === null || _rangeRef$current4 === void 0 || (_rangeRef$current4 = _rangeRef$current4.firstTextField()) === null || _rangeRef$current4 === void 0 || (_rangeRef$current4 = _rangeRef$current4.current) === null || _rangeRef$current4 === void 0 || _rangeRef$current4.focus();
322
374
  }
323
375
  },
324
- onFocusFirstTextfield: onFocusFirstTextfield,
325
- onFocusSecondTextfield: onFocusSecondTextfield,
376
+ onFocusFirstTextfield: handleFocusFirstTextField,
377
+ onFocusSecondTextfield: handleFocusSecondTextField,
326
378
  onBlurFirstTextfield: function onBlurFirstTextfield(event) {
327
379
  return handleBlur(event, _onBlurFirstTextfield);
328
380
  },
@@ -371,8 +423,13 @@ var datePickerRangeRoot = exports.datePickerRangeRoot = function datePickerRange
371
423
  lang: lang
372
424
  }));
373
425
  }, [format, lang]);
374
- var RootWrapper = (0, _react.useCallback)(function (_ref2) {
375
- var children = _ref2.children;
426
+ (0, _react.useEffect)(function () {
427
+ if (calendarFirstValue && calendarSecondValue) {
428
+ setFullDateEntered(true);
429
+ }
430
+ }, [calendarFirstValue, calendarSecondValue]);
431
+ var RootWrapper = (0, _react.useCallback)(function (_ref4) {
432
+ var children = _ref4.children;
376
433
  return /*#__PURE__*/_react["default"].createElement(Root, {
377
434
  view: view,
378
435
  size: size,
@@ -414,20 +471,8 @@ var datePickerRangeRoot = exports.datePickerRangeRoot = function datePickerRange
414
471
  lang: lang,
415
472
  isDoubleCalendar: isDoubleCalendar,
416
473
  rootWrapper: RootWrapper,
417
- onChangeStartOfRange: function onChangeStartOfRange(firstDate, dateInfo) {
418
- handleCommitFirstDate(firstDate, false, true, dateInfo);
419
- handleCommitSecondDate('');
420
- },
421
- onChangeValue: function onChangeValue(_ref3, dateInfo) {
422
- var _ref4 = _slicedToArray(_ref3, 2),
423
- firstDate = _ref4[0],
424
- secondDate = _ref4[1];
425
- firstDate && handleCommitFirstDate(firstDate, false, true, dateInfo);
426
- secondDate && handleCommitSecondDate(secondDate, false, true, dateInfo);
427
- if (firstDate && secondDate && !firstValueError && !secondValueError) {
428
- setIsInnerOpen(false);
429
- }
430
- }
474
+ onChangeStartOfRange: handleChangeStartOfRange,
475
+ onChangeValue: handleChangeCalendarValue
431
476
  }), leftHelper && /*#__PURE__*/_react["default"].createElement(_RangeDate.LeftHelper, null, leftHelper), /*#__PURE__*/_react["default"].createElement(_DatePickerBase.InputHidden, _extends({
432
477
  name: name,
433
478
  type: "hidden",
@@ -29,10 +29,6 @@ type Items = Array<{
29
29
  * Метка-подпись к item
30
30
  */
31
31
  label: string;
32
- /**
33
- * Сторона открытия вложенного дропдауна относительно текущего элемента;
34
- */
35
- placement: DropdownPlacement;
36
32
  /**
37
33
  * Список дочерних items.
38
34
  */
@@ -9,7 +9,6 @@ var _plasmaCore = /*#__PURE__*/require("@salutejs/plasma-core");
9
9
  var _DropdownItem = /*#__PURE__*/require("../DropdownItem/DropdownItem");
10
10
  var _Dropdown = /*#__PURE__*/require("../../Dropdown.styles");
11
11
  var _FloatingPopover = /*#__PURE__*/require("../../FloatingPopover");
12
- var _utils = /*#__PURE__*/require("../../utils");
13
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
14
13
  var DropdownInner = exports.DropdownInner = function DropdownInner(_ref) {
15
14
  var item = _ref.item,
@@ -41,7 +40,7 @@ var DropdownInner = exports.DropdownInner = function DropdownInner(_ref) {
41
40
  var nextLevel = currentLevel + 1;
42
41
  if (item !== null && item !== void 0 && item.items) {
43
42
  return /*#__PURE__*/_react["default"].createElement(_FloatingPopover.FloatingPopover, {
44
- placement: (0, _utils.getPlacement)((item === null || item === void 0 ? void 0 : item.placement) || 'right'),
43
+ placement: "right-start",
45
44
  opened: isCurrentListOpen,
46
45
  onToggle: handleToggle,
47
46
  trigger: trigger,
@@ -39,7 +39,7 @@ var Inner = exports.Inner = function Inner(_ref) {
39
39
  if (!(0, _utils.isEmpty)(item === null || item === void 0 ? void 0 : item.items)) {
40
40
  var _item$items;
41
41
  return /*#__PURE__*/_react["default"].createElement(_FloatingPopover.FloatingPopover, {
42
- placement: (item === null || item === void 0 ? void 0 : item.placement) || 'right',
42
+ placement: "right",
43
43
  opened: isCurrentListOpen,
44
44
  onToggle: handleToggle,
45
45
  offset: 2,
@@ -192,7 +192,6 @@ const StoryRange = ({
192
192
  const rangeRef = useRef<RangeInputRefs>(null);
193
193
 
194
194
  const [isOpen, setIsOpen] = useState(false);
195
- const [firstDate, setFirstDate] = useState<string | Date>('');
196
195
 
197
196
  const iconSize = size === 'xs' ? 'xs' : 's';
198
197
  const showDividerIcon = dividerVariant === 'icon';
@@ -239,12 +238,6 @@ const StoryRange = ({
239
238
  onChangeSecondValue={(e, currentValue) => {
240
239
  onChangeSecondValue(e, currentValue);
241
240
  }}
242
- onCommitFirstDate={(currentValue) => {
243
- setFirstDate(currentValue);
244
- }}
245
- onCommitSecondDate={(currentValue) => {
246
- firstDate && currentValue && setIsOpen(false);
247
- }}
248
241
  lang={lang}
249
242
  {...dividerIconProps}
250
243
  {...rest}
@@ -279,6 +272,7 @@ export const Range: StoryObj<StoryPropsRange> = {
279
272
  size: 'l',
280
273
  view: 'default',
281
274
  isDoubleCalendar: false,
275
+ closeAfterDateSelect: true,
282
276
  dividerVariant: 'dash',
283
277
  min: new Date(2024, 1, 1),
284
278
  max: new Date(2024, 12, 29),
@@ -186,12 +186,12 @@ const StoryRange = ({
186
186
  secondValueError,
187
187
  secondValueSuccess,
188
188
  size,
189
+ lang,
189
190
  ...rest
190
191
  }: StoryPropsRange) => {
191
192
  const rangeRef = useRef<RangeInputRefs>(null);
192
193
 
193
194
  const [isOpen, setIsOpen] = useState(false);
194
- const [firstDate, setFirstDate] = useState<string | Date>('');
195
195
 
196
196
  const iconSize = size === 'xs' ? 'xs' : 's';
197
197
  const showDividerIcon = dividerVariant === 'icon';
@@ -238,12 +238,7 @@ const StoryRange = ({
238
238
  onChangeSecondValue={(e, currentValue) => {
239
239
  onChangeSecondValue(e, currentValue);
240
240
  }}
241
- onCommitFirstDate={(currentValue) => {
242
- setFirstDate(currentValue);
243
- }}
244
- onCommitSecondDate={(currentValue) => {
245
- firstDate && currentValue && setIsOpen(false);
246
- }}
241
+ lang={lang}
247
242
  {...dividerIconProps}
248
243
  {...rest}
249
244
  />
@@ -277,6 +272,7 @@ export const Range: StoryObj<StoryPropsRange> = {
277
272
  size: 'l',
278
273
  view: 'default',
279
274
  isDoubleCalendar: false,
275
+ closeAfterDateSelect: true,
280
276
  dividerVariant: 'dash',
281
277
  min: new Date(2024, 1, 1),
282
278
  max: new Date(2024, 12, 29),
@@ -25,11 +25,6 @@ type Items = Array<{
25
25
  * Метка-подпись к item
26
26
  */
27
27
  label: string;
28
- /**
29
- * Сторона открытия вложенного дропдауна относительно текущего элемента
30
- * @default right
31
- */
32
- placement?: Placement;
33
28
  /**
34
29
  * Список дочерних items.
35
30
  */
@@ -32,7 +32,7 @@ export var Inner = function Inner(_ref) {
32
32
  if (!isEmpty(item === null || item === void 0 ? void 0 : item.items)) {
33
33
  var _item$items;
34
34
  return /*#__PURE__*/React.createElement(FloatingPopover, {
35
- placement: (item === null || item === void 0 ? void 0 : item.placement) || 'right-start',
35
+ placement: "right-start",
36
36
  opened: isCurrentListOpen,
37
37
  onToggle: handleToggle,
38
38
  offset: 2,
@@ -1,4 +1,4 @@
1
- var _excluded = ["className", "autoComplete", "isDoubleCalendar", "opened", "label", "leftHelper", "contentLeft", "contentRight", "view", "size", "readOnly", "disabled", "name", "dividerVariant", "dividerIcon", "defaultFirstDate", "defaultSecondDate", "firstValueError", "secondValueError", "firstValueSuccess", "secondValueSuccess", "firstPlaceholder", "secondPlaceholder", "firstTextfieldContentLeft", "firstTextfieldContentRight", "secondTextfieldContentLeft", "secondTextfieldContentRight", "firstTextfieldTextBefore", "secondTextfieldTextBefore", "firstTextfieldTextAfter", "secondTextfieldTextAfter", "required", "requiredPlacement", "format", "lang", "maskWithFormat", "min", "max", "includeEdgeDates", "eventList", "disabledList", "eventMonthList", "disabledMonthList", "eventQuarterList", "disabledQuarterList", "eventYearList", "disabledYearList", "type", "frame", "usePortal", "placement", "closeOnOverlayClick", "closeOnEsc", "offset", "onToggle", "onChange", "onChangeFirstValue", "onChangeSecondValue", "onCommitFirstDate", "onCommitSecondDate", "onFocusFirstTextfield", "onFocusSecondTextfield", "onBlurFirstTextfield", "onBlurSecondTextfield"];
1
+ var _excluded = ["className", "autoComplete", "isDoubleCalendar", "opened", "label", "leftHelper", "contentLeft", "contentRight", "view", "size", "readOnly", "disabled", "name", "dividerVariant", "dividerIcon", "defaultFirstDate", "defaultSecondDate", "firstValueError", "secondValueError", "firstValueSuccess", "secondValueSuccess", "firstPlaceholder", "secondPlaceholder", "firstTextfieldContentLeft", "firstTextfieldContentRight", "secondTextfieldContentLeft", "secondTextfieldContentRight", "firstTextfieldTextBefore", "secondTextfieldTextBefore", "firstTextfieldTextAfter", "secondTextfieldTextAfter", "required", "requiredPlacement", "format", "lang", "maskWithFormat", "min", "max", "includeEdgeDates", "eventList", "disabledList", "eventMonthList", "disabledMonthList", "eventQuarterList", "disabledQuarterList", "eventYearList", "disabledYearList", "type", "frame", "usePortal", "placement", "closeOnOverlayClick", "closeOnEsc", "closeAfterDateSelect", "offset", "onToggle", "onChange", "onChangeFirstValue", "onChangeSecondValue", "onCommitFirstDate", "onCommitSecondDate", "onFocusFirstTextfield", "onFocusSecondTextfield", "onBlurFirstTextfield", "onBlurSecondTextfield"];
2
2
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
3
3
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
4
4
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -95,6 +95,8 @@ export var datePickerRangeRoot = function datePickerRangeRoot(Root) {
95
95
  closeOnOverlayClick = _ref$closeOnOverlayCl === void 0 ? true : _ref$closeOnOverlayCl,
96
96
  _ref$closeOnEsc = _ref.closeOnEsc,
97
97
  closeOnEsc = _ref$closeOnEsc === void 0 ? true : _ref$closeOnEsc,
98
+ _ref$closeAfterDateSe = _ref.closeAfterDateSelect,
99
+ closeAfterDateSelect = _ref$closeAfterDateSe === void 0 ? true : _ref$closeAfterDateSe,
98
100
  offset = _ref.offset,
99
101
  onToggle = _ref.onToggle,
100
102
  onChange = _ref.onChange,
@@ -147,6 +149,14 @@ export var datePickerRangeRoot = function datePickerRangeRoot(Root) {
147
149
  _useState14 = _slicedToArray(_useState13, 2),
148
150
  inputSecondValue = _useState14[0],
149
151
  setInputSecondValue = _useState14[1];
152
+ var _useState15 = useState(Boolean(calendarFirstValue && calendarSecondValue)),
153
+ _useState16 = _slicedToArray(_useState15, 2),
154
+ fullDateEntered = _useState16[0],
155
+ setFullDateEntered = _useState16[1];
156
+ var _useState17 = useState(false),
157
+ _useState18 = _slicedToArray(_useState17, 2),
158
+ secondTextFieldClicked = _useState18[0],
159
+ setSecondTextFieldClicked = _useState18[1];
150
160
  var setFirstInputValue = function setFirstInputValue(value) {
151
161
  setInputFirstValue(value);
152
162
  if (onChange) {
@@ -207,12 +217,12 @@ export var datePickerRangeRoot = function datePickerRangeRoot(Root) {
207
217
  }),
208
218
  handleChangeSecondValue = _useDatePicker2.handleChangeValue,
209
219
  handleCommitSecondDate = _useDatePicker2.handleCommitDate;
210
- var handleToggle = function handleToggle(opened, event) {
220
+ var handleToggle = function handleToggle(currentOpened, event) {
211
221
  var _firstInputRef$curren, _secondInputRef$curre;
212
222
  if (disabled || readOnly) {
213
223
  return;
214
224
  }
215
- var isCalendarOpen = (firstInputRef !== null && firstInputRef !== void 0 && (_firstInputRef$curren = firstInputRef.current) !== null && _firstInputRef$curren !== void 0 && _firstInputRef$curren.contains(event.target || null) || secondInputRef !== null && secondInputRef !== void 0 && (_secondInputRef$curre = secondInputRef.current) !== null && _secondInputRef$curre !== void 0 && _secondInputRef$curre.contains(event.target || null)) && event.code !== keys.Escape ? true : opened;
225
+ var isCalendarOpen = (firstInputRef !== null && firstInputRef !== void 0 && (_firstInputRef$curren = firstInputRef.current) !== null && _firstInputRef$curren !== void 0 && _firstInputRef$curren.contains((event === null || event === void 0 ? void 0 : event.target) || null) || secondInputRef !== null && secondInputRef !== void 0 && (_secondInputRef$curre = secondInputRef.current) !== null && _secondInputRef$curre !== void 0 && _secondInputRef$curre.contains((event === null || event === void 0 ? void 0 : event.target) || null)) && (event === null || event === void 0 ? void 0 : event.code) !== keys.Escape ? true : currentOpened;
216
226
  if (!isCalendarOpen) {
217
227
  if (calendarFirstValue && !calendarSecondValue) {
218
228
  var _secondInputRef$curre2;
@@ -223,11 +233,22 @@ export var datePickerRangeRoot = function datePickerRangeRoot(Root) {
223
233
  firstInputRef === null || firstInputRef === void 0 || (_firstInputRef$curren2 = firstInputRef.current) === null || _firstInputRef$curren2 === void 0 || _firstInputRef$curren2.focus();
224
234
  }
225
235
  }
236
+ if (!isCalendarOpen) {
237
+ setSecondTextFieldClicked(false);
238
+ }
226
239
  if (onToggle) {
227
240
  return onToggle(isCalendarOpen, event);
228
241
  }
229
242
  setIsInnerOpen(isCalendarOpen);
230
243
  };
244
+ var handleFocusFirstTextField = function handleFocusFirstTextField(event) {
245
+ onFocusFirstTextfield === null || onFocusFirstTextfield === void 0 || onFocusFirstTextfield(event);
246
+ setSecondTextFieldClicked(false);
247
+ };
248
+ var handleFocusSecondTextField = function handleFocusSecondTextField(event) {
249
+ onFocusSecondTextfield === null || onFocusSecondTextfield === void 0 || onFocusSecondTextfield(event);
250
+ setSecondTextFieldClicked(true);
251
+ };
231
252
  var handleBlur = function handleBlur(event, outerHandler) {
232
253
  if (!inputFirstValue || !inputSecondValue) {
233
254
  outerHandler === null || outerHandler === void 0 || outerHandler(event);
@@ -267,6 +288,37 @@ export var datePickerRangeRoot = function datePickerRangeRoot(Root) {
267
288
  closeOnEsc: closeOnEsc
268
289
  }),
269
290
  onKeyDown = _useKeyNavigation.onKeyDown;
291
+ var handleChangeStartOfRange = function handleChangeStartOfRange(chosenDate, dateInfo) {
292
+ if (!fullDateEntered) {
293
+ handleCommitFirstDate(chosenDate, false, true, dateInfo);
294
+ handleCommitSecondDate('');
295
+ return;
296
+ }
297
+ var prevValue = secondTextFieldClicked ? calendarFirstValue : calendarSecondValue;
298
+ var _getSortedValues3 = getSortedValues([prevValue, chosenDate]),
299
+ _getSortedValues4 = _slicedToArray(_getSortedValues3, 2),
300
+ first = _getSortedValues4[0],
301
+ second = _getSortedValues4[1];
302
+ handleCommitFirstDate(first, false, true, dateInfo);
303
+ handleCommitSecondDate(second, false, true, dateInfo);
304
+ if (!firstValueError && !secondValueError && closeAfterDateSelect) {
305
+ handleToggle(false);
306
+ }
307
+ };
308
+ var handleChangeCalendarValue = function handleChangeCalendarValue(_ref2, dateInfo) {
309
+ var _ref3 = _slicedToArray(_ref2, 2),
310
+ firstDate = _ref3[0],
311
+ secondDate = _ref3[1];
312
+ if (firstDate) {
313
+ handleCommitFirstDate(firstDate, false, true, dateInfo);
314
+ }
315
+ if (secondDate) {
316
+ handleCommitSecondDate(secondDate, false, true, dateInfo);
317
+ }
318
+ if (firstDate && secondDate && !firstValueError && !secondValueError && closeAfterDateSelect) {
319
+ handleToggle(false);
320
+ }
321
+ };
270
322
  var RangeComponent = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(StyledRange, {
271
323
  ref: rangeRef,
272
324
  autoComplete: autoComplete,
@@ -312,8 +364,8 @@ export var datePickerRangeRoot = function datePickerRangeRoot(Root) {
312
364
  rangeRef === null || rangeRef === void 0 || (_rangeRef$current4 = rangeRef.current) === null || _rangeRef$current4 === void 0 || (_rangeRef$current4 = _rangeRef$current4.firstTextField()) === null || _rangeRef$current4 === void 0 || (_rangeRef$current4 = _rangeRef$current4.current) === null || _rangeRef$current4 === void 0 || _rangeRef$current4.focus();
313
365
  }
314
366
  },
315
- onFocusFirstTextfield: onFocusFirstTextfield,
316
- onFocusSecondTextfield: onFocusSecondTextfield,
367
+ onFocusFirstTextfield: handleFocusFirstTextField,
368
+ onFocusSecondTextfield: handleFocusSecondTextField,
317
369
  onBlurFirstTextfield: function onBlurFirstTextfield(event) {
318
370
  return handleBlur(event, _onBlurFirstTextfield);
319
371
  },
@@ -362,8 +414,13 @@ export var datePickerRangeRoot = function datePickerRangeRoot(Root) {
362
414
  lang: lang
363
415
  }));
364
416
  }, [format, lang]);
365
- var RootWrapper = useCallback(function (_ref2) {
366
- var children = _ref2.children;
417
+ useEffect(function () {
418
+ if (calendarFirstValue && calendarSecondValue) {
419
+ setFullDateEntered(true);
420
+ }
421
+ }, [calendarFirstValue, calendarSecondValue]);
422
+ var RootWrapper = useCallback(function (_ref4) {
423
+ var children = _ref4.children;
367
424
  return /*#__PURE__*/React.createElement(Root, {
368
425
  view: view,
369
426
  size: size,
@@ -405,20 +462,8 @@ export var datePickerRangeRoot = function datePickerRangeRoot(Root) {
405
462
  lang: lang,
406
463
  isDoubleCalendar: isDoubleCalendar,
407
464
  rootWrapper: RootWrapper,
408
- onChangeStartOfRange: function onChangeStartOfRange(firstDate, dateInfo) {
409
- handleCommitFirstDate(firstDate, false, true, dateInfo);
410
- handleCommitSecondDate('');
411
- },
412
- onChangeValue: function onChangeValue(_ref3, dateInfo) {
413
- var _ref4 = _slicedToArray(_ref3, 2),
414
- firstDate = _ref4[0],
415
- secondDate = _ref4[1];
416
- firstDate && handleCommitFirstDate(firstDate, false, true, dateInfo);
417
- secondDate && handleCommitSecondDate(secondDate, false, true, dateInfo);
418
- if (firstDate && secondDate && !firstValueError && !secondValueError) {
419
- setIsInnerOpen(false);
420
- }
421
- }
465
+ onChangeStartOfRange: handleChangeStartOfRange,
466
+ onChangeValue: handleChangeCalendarValue
422
467
  }), leftHelper && /*#__PURE__*/React.createElement(LeftHelper, null, leftHelper), /*#__PURE__*/React.createElement(InputHidden, _extends({
423
468
  name: name,
424
469
  type: "hidden",
@@ -29,10 +29,6 @@ type Items = Array<{
29
29
  * Метка-подпись к item
30
30
  */
31
31
  label: string;
32
- /**
33
- * Сторона открытия вложенного дропдауна относительно текущего элемента;
34
- */
35
- placement: DropdownPlacement;
36
32
  /**
37
33
  * Список дочерних items.
38
34
  */
@@ -3,7 +3,6 @@ import { safeUseId } from '@salutejs/plasma-core';
3
3
  import { DropdownItem } from '../DropdownItem/DropdownItem';
4
4
  import { Ul } from '../../Dropdown.styles';
5
5
  import { FloatingPopover } from '../../FloatingPopover';
6
- import { getPlacement } from '../../utils';
7
6
  var DropdownInner = function DropdownInner(_ref) {
8
7
  var item = _ref.item,
9
8
  currentLevel = _ref.currentLevel,
@@ -34,7 +33,7 @@ var DropdownInner = function DropdownInner(_ref) {
34
33
  var nextLevel = currentLevel + 1;
35
34
  if (item !== null && item !== void 0 && item.items) {
36
35
  return /*#__PURE__*/React.createElement(FloatingPopover, {
37
- placement: getPlacement((item === null || item === void 0 ? void 0 : item.placement) || 'right'),
36
+ placement: "right-start",
38
37
  opened: isCurrentListOpen,
39
38
  onToggle: handleToggle,
40
39
  trigger: trigger,
@@ -32,7 +32,7 @@ export var Inner = function Inner(_ref) {
32
32
  if (!isEmpty(item === null || item === void 0 ? void 0 : item.items)) {
33
33
  var _item$items;
34
34
  return /*#__PURE__*/React.createElement(FloatingPopover, {
35
- placement: (item === null || item === void 0 ? void 0 : item.placement) || 'right',
35
+ placement: "right",
36
36
  opened: isCurrentListOpen,
37
37
  onToggle: handleToggle,
38
38
  offset: 2,
@@ -192,7 +192,6 @@ const StoryRange = ({
192
192
  const rangeRef = useRef<RangeInputRefs>(null);
193
193
 
194
194
  const [isOpen, setIsOpen] = useState(false);
195
- const [firstDate, setFirstDate] = useState<string | Date>('');
196
195
 
197
196
  const iconSize = size === 'xs' ? 'xs' : 's';
198
197
  const showDividerIcon = dividerVariant === 'icon';
@@ -239,12 +238,6 @@ const StoryRange = ({
239
238
  onChangeSecondValue={(e, currentValue) => {
240
239
  onChangeSecondValue(e, currentValue);
241
240
  }}
242
- onCommitFirstDate={(currentValue) => {
243
- setFirstDate(currentValue);
244
- }}
245
- onCommitSecondDate={(currentValue) => {
246
- firstDate && currentValue && setIsOpen(false);
247
- }}
248
241
  lang={lang}
249
242
  {...dividerIconProps}
250
243
  {...rest}
@@ -279,6 +272,7 @@ export const Range: StoryObj<StoryPropsRange> = {
279
272
  size: 'l',
280
273
  view: 'default',
281
274
  isDoubleCalendar: false,
275
+ closeAfterDateSelect: true,
282
276
  dividerVariant: 'dash',
283
277
  min: new Date(2024, 1, 1),
284
278
  max: new Date(2024, 12, 29),
@@ -186,12 +186,12 @@ const StoryRange = ({
186
186
  secondValueError,
187
187
  secondValueSuccess,
188
188
  size,
189
+ lang,
189
190
  ...rest
190
191
  }: StoryPropsRange) => {
191
192
  const rangeRef = useRef<RangeInputRefs>(null);
192
193
 
193
194
  const [isOpen, setIsOpen] = useState(false);
194
- const [firstDate, setFirstDate] = useState<string | Date>('');
195
195
 
196
196
  const iconSize = size === 'xs' ? 'xs' : 's';
197
197
  const showDividerIcon = dividerVariant === 'icon';
@@ -238,12 +238,7 @@ const StoryRange = ({
238
238
  onChangeSecondValue={(e, currentValue) => {
239
239
  onChangeSecondValue(e, currentValue);
240
240
  }}
241
- onCommitFirstDate={(currentValue) => {
242
- setFirstDate(currentValue);
243
- }}
244
- onCommitSecondDate={(currentValue) => {
245
- firstDate && currentValue && setIsOpen(false);
246
- }}
241
+ lang={lang}
247
242
  {...dividerIconProps}
248
243
  {...rest}
249
244
  />
@@ -277,6 +272,7 @@ export const Range: StoryObj<StoryPropsRange> = {
277
272
  size: 'l',
278
273
  view: 'default',
279
274
  isDoubleCalendar: false,
275
+ closeAfterDateSelect: true,
280
276
  dividerVariant: 'dash',
281
277
  min: new Date(2024, 1, 1),
282
278
  max: new Date(2024, 12, 29),
@@ -33,7 +33,7 @@ var Inner = function Inner(_ref) {
33
33
  if (!isEmpty(item === null || item === void 0 ? void 0 : item.items)) {
34
34
  var _item$items;
35
35
  return /*#__PURE__*/React.createElement(FloatingPopover, {
36
- placement: (item === null || item === void 0 ? void 0 : item.placement) || 'right-start',
36
+ placement: "right-start",
37
37
  opened: isCurrentListOpen,
38
38
  onToggle: handleToggle,
39
39
  offset: 2,
@@ -1 +1 @@
1
- {"version":3,"file":"Inner.js","sources":["../../../../../../src/components/Combobox/ComboboxNew/ui/Inner/Inner.tsx"],"sourcesContent":["import React from 'react';\nimport type { FC } from 'react';\nimport { safeUseId } from '@salutejs/plasma-core';\n\nimport { FloatingPopover } from '../../FloatingPopover';\nimport { isEmpty } from '../../../../../utils';\nimport { Ul } from '../../Combobox.styles';\n\nimport type { ItemOptionTransformed } from './ui/Item/Item.types';\nimport { Item } from './ui';\nimport { InnerProps } from './Inner.type';\n\nexport const Inner: FC<InnerProps> = ({ item, currentLevel, path, dispatchPath, index, listWidth }) => {\n const handleToggle = (opened: boolean): void => {\n if (opened) {\n dispatchPath({ type: 'changed_on_level', value: item.value.toString(), level: currentLevel + 1 });\n } else {\n dispatchPath({ type: 'cut_by_level', level: currentLevel + 1 });\n }\n };\n\n const isCurrentListOpen = path[currentLevel + 1] === item.value.toString();\n\n const treeId = safeUseId();\n const listId = `${treeId}_tree_level_${currentLevel + 2}`;\n const nextLevel = currentLevel + 1;\n\n if (!isEmpty(item?.items)) {\n return (\n <FloatingPopover\n placement={item?.placement || 'right-start'}\n opened={isCurrentListOpen}\n onToggle={handleToggle}\n offset={2}\n target={\n <Item\n item={item}\n path={path}\n currentLevel={currentLevel}\n index={index}\n ariaControls={listId}\n ariaExpanded={isCurrentListOpen}\n ariaLevel={nextLevel}\n ariaLabel={item.label}\n />\n }\n >\n <Ul role=\"group\" id={listId} isInnerUl listWidth={listWidth}>\n {item.items?.map((innerItem: ItemOptionTransformed, innerIndex: number) => (\n <Inner\n key={`${innerIndex}/${currentLevel}`}\n item={innerItem}\n currentLevel={nextLevel}\n path={path}\n dispatchPath={dispatchPath}\n index={innerIndex}\n listWidth={listWidth}\n />\n ))}\n </Ul>\n </FloatingPopover>\n );\n }\n\n return <Item item={item} path={path} index={index} currentLevel={currentLevel} ariaLevel={nextLevel} />;\n};\n"],"names":["Inner","_ref","item","currentLevel","path","dispatchPath","index","listWidth","handleToggle","opened","type","value","toString","level","isCurrentListOpen","treeId","safeUseId","listId","concat","nextLevel","isEmpty","items","_item$items","React","createElement","FloatingPopover","placement","onToggle","offset","target","Item","ariaControls","ariaExpanded","ariaLevel","ariaLabel","label","Ul","role","id","isInnerUl","map","innerItem","innerIndex","key"],"mappings":"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"}
1
+ {"version":3,"file":"Inner.js","sources":["../../../../../../src/components/Combobox/ComboboxNew/ui/Inner/Inner.tsx"],"sourcesContent":["import React from 'react';\nimport type { FC } from 'react';\nimport { safeUseId } from '@salutejs/plasma-core';\n\nimport { FloatingPopover } from '../../FloatingPopover';\nimport { isEmpty } from '../../../../../utils';\nimport { Ul } from '../../Combobox.styles';\n\nimport type { ItemOptionTransformed } from './ui/Item/Item.types';\nimport { Item } from './ui';\nimport { InnerProps } from './Inner.type';\n\nexport const Inner: FC<InnerProps> = ({ item, currentLevel, path, dispatchPath, index, listWidth }) => {\n const handleToggle = (opened: boolean): void => {\n if (opened) {\n dispatchPath({ type: 'changed_on_level', value: item.value.toString(), level: currentLevel + 1 });\n } else {\n dispatchPath({ type: 'cut_by_level', level: currentLevel + 1 });\n }\n };\n\n const isCurrentListOpen = path[currentLevel + 1] === item.value.toString();\n\n const treeId = safeUseId();\n const listId = `${treeId}_tree_level_${currentLevel + 2}`;\n const nextLevel = currentLevel + 1;\n\n if (!isEmpty(item?.items)) {\n return (\n <FloatingPopover\n placement=\"right-start\"\n opened={isCurrentListOpen}\n onToggle={handleToggle}\n offset={2}\n target={\n <Item\n item={item}\n path={path}\n currentLevel={currentLevel}\n index={index}\n ariaControls={listId}\n ariaExpanded={isCurrentListOpen}\n ariaLevel={nextLevel}\n ariaLabel={item.label}\n />\n }\n >\n <Ul role=\"group\" id={listId} isInnerUl listWidth={listWidth}>\n {item.items?.map((innerItem: ItemOptionTransformed, innerIndex: number) => (\n <Inner\n key={`${innerIndex}/${currentLevel}`}\n item={innerItem}\n currentLevel={nextLevel}\n path={path}\n dispatchPath={dispatchPath}\n index={innerIndex}\n listWidth={listWidth}\n />\n ))}\n </Ul>\n </FloatingPopover>\n );\n }\n\n return <Item item={item} path={path} index={index} currentLevel={currentLevel} ariaLevel={nextLevel} />;\n};\n"],"names":["Inner","_ref","item","currentLevel","path","dispatchPath","index","listWidth","handleToggle","opened","type","value","toString","level","isCurrentListOpen","treeId","safeUseId","listId","concat","nextLevel","isEmpty","items","_item$items","React","createElement","FloatingPopover","placement","onToggle","offset","target","Item","ariaControls","ariaExpanded","ariaLevel","ariaLabel","label","Ul","role","id","isInnerUl","map","innerItem","innerIndex","key"],"mappings":"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"}