@salutejs/plasma-new-hope 0.242.0-canary.1702.12829190112.0 → 0.242.0-canary.1709.12829247465.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 +21 -66
  4. package/cjs/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
  5. package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +2 -1
  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 +5 -0
  10. package/emotion/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +1 -1
  11. package/emotion/cjs/components/DatePicker/RangeDate/RangeDate.js +21 -66
  12. package/emotion/cjs/components/Dropdown/Dropdown.template-doc.mdx +4 -0
  13. package/emotion/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +2 -1
  14. package/emotion/cjs/components/Select/Select.template-doc.mdx +441 -0
  15. package/emotion/cjs/components/Select/ui/Inner/Inner.js +1 -1
  16. package/emotion/cjs/examples/plasma_b2c/components/DatePicker/DatePicker.stories.tsx +7 -1
  17. package/emotion/cjs/examples/plasma_web/components/DatePicker/DatePicker.stories.tsx +7 -3
  18. package/emotion/es/components/Combobox/Combobox.template-doc.mdx +5 -0
  19. package/emotion/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +1 -1
  20. package/emotion/es/components/DatePicker/RangeDate/RangeDate.js +21 -66
  21. package/emotion/es/components/Dropdown/Dropdown.template-doc.mdx +4 -0
  22. package/emotion/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +2 -1
  23. package/emotion/es/components/Select/Select.template-doc.mdx +441 -0
  24. package/emotion/es/components/Select/ui/Inner/Inner.js +1 -1
  25. package/emotion/es/examples/plasma_b2c/components/DatePicker/DatePicker.stories.tsx +7 -1
  26. package/emotion/es/examples/plasma_web/components/DatePicker/DatePicker.stories.tsx +7 -3
  27. package/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +1 -1
  28. package/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js.map +1 -1
  29. package/es/components/DatePicker/RangeDate/RangeDate.js +21 -66
  30. package/es/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
  31. package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +2 -1
  32. package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js.map +1 -1
  33. package/es/components/Select/ui/Inner/Inner.js +1 -1
  34. package/es/components/Select/ui/Inner/Inner.js.map +1 -1
  35. package/package.json +2 -2
  36. package/styled-components/cjs/components/Combobox/Combobox.template-doc.mdx +5 -0
  37. package/styled-components/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +1 -1
  38. package/styled-components/cjs/components/DatePicker/RangeDate/RangeDate.js +21 -66
  39. package/styled-components/cjs/components/Dropdown/Dropdown.template-doc.mdx +4 -0
  40. package/styled-components/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +2 -1
  41. package/styled-components/cjs/components/Select/Select.template-doc.mdx +441 -0
  42. package/styled-components/cjs/components/Select/ui/Inner/Inner.js +1 -1
  43. package/styled-components/cjs/examples/plasma_b2c/components/DatePicker/DatePicker.stories.tsx +7 -1
  44. package/styled-components/cjs/examples/plasma_web/components/DatePicker/DatePicker.stories.tsx +7 -3
  45. package/styled-components/es/components/Combobox/Combobox.template-doc.mdx +5 -0
  46. package/styled-components/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +1 -1
  47. package/styled-components/es/components/DatePicker/RangeDate/RangeDate.js +21 -66
  48. package/styled-components/es/components/Dropdown/Dropdown.template-doc.mdx +4 -0
  49. package/styled-components/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +2 -1
  50. package/styled-components/es/components/Select/Select.template-doc.mdx +441 -0
  51. package/styled-components/es/components/Select/ui/Inner/Inner.js +1 -1
  52. package/styled-components/es/examples/plasma_b2c/components/DatePicker/DatePicker.stories.tsx +7 -1
  53. package/styled-components/es/examples/plasma_web/components/DatePicker/DatePicker.stories.tsx +7 -3
  54. package/types/components/Combobox/ComboboxNew/Combobox.types.d.ts +1 -1
  55. package/types/components/Combobox/ComboboxNew/Combobox.types.d.ts.map +1 -1
  56. package/types/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.types.d.ts +6 -0
  57. package/types/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.types.d.ts.map +1 -1
  58. package/types/components/DatePicker/RangeDate/RangeDate.d.ts +8 -10
  59. package/types/components/DatePicker/RangeDate/RangeDate.d.ts.map +1 -1
  60. package/types/components/DatePicker/RangeDate/RangeDate.styles.d.ts +12 -12
  61. package/types/components/DatePicker/RangeDate/RangeDate.types.d.ts +0 -4
  62. package/types/components/DatePicker/RangeDate/RangeDate.types.d.ts.map +1 -1
  63. package/types/components/DatePicker/SingleDate/SingleDate.types.d.ts +1 -1
  64. package/types/components/DatePicker/SingleDate/SingleDate.types.d.ts.map +1 -1
  65. package/types/components/Dropdown/ui/DropdownInner/DropdownInner.d.ts.map +1 -1
  66. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.type.d.ts +5 -0
  67. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.type.d.ts.map +1 -1
  68. package/types/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.styles.d.ts +4 -4
  69. package/types/components/Range/Range.types.d.ts +5 -5
  70. package/types/components/Range/Range.types.d.ts.map +1 -1
  71. package/types/components/Select/Select.types.d.ts +2 -2
  72. package/types/components/Select/Select.types.d.ts.map +1 -1
  73. package/types/components/Select/ui/Inner/ui/Item/Item.types.d.ts +11 -0
  74. package/types/components/Select/ui/Inner/ui/Item/Item.types.d.ts.map +1 -1
  75. package/types/examples/plasma_b2c/components/Combobox/Combobox.d.ts +24 -24
  76. package/types/examples/plasma_b2c/components/DatePicker/DatePicker.d.ts +4 -5
  77. package/types/examples/plasma_b2c/components/DatePicker/DatePicker.d.ts.map +1 -1
  78. package/types/examples/plasma_b2c/components/Range/Range.d.ts +12 -12
  79. package/types/examples/plasma_b2c/components/Select/Select.d.ts +4 -4
  80. package/types/examples/plasma_web/components/Combobox/Combobox.d.ts +24 -24
  81. package/types/examples/plasma_web/components/DatePicker/DatePicker.d.ts +4 -5
  82. package/types/examples/plasma_web/components/DatePicker/DatePicker.d.ts.map +1 -1
  83. package/types/examples/plasma_web/components/Range/Range.d.ts +12 -12
  84. package/types/examples/plasma_web/components/Select/Select.d.ts +4 -4
@@ -192,6 +192,7 @@ 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>('');
195
196
 
196
197
  const iconSize = size === 'xs' ? 'xs' : 's';
197
198
  const showDividerIcon = dividerVariant === 'icon';
@@ -238,6 +239,12 @@ const StoryRange = ({
238
239
  onChangeSecondValue={(e, currentValue) => {
239
240
  onChangeSecondValue(e, currentValue);
240
241
  }}
242
+ onCommitFirstDate={(currentValue) => {
243
+ setFirstDate(currentValue);
244
+ }}
245
+ onCommitSecondDate={(currentValue) => {
246
+ firstDate && currentValue && setIsOpen(false);
247
+ }}
241
248
  lang={lang}
242
249
  {...dividerIconProps}
243
250
  {...rest}
@@ -272,7 +279,6 @@ export const Range: StoryObj<StoryPropsRange> = {
272
279
  size: 'l',
273
280
  view: 'default',
274
281
  isDoubleCalendar: false,
275
- closeAfterDateSelect: true,
276
282
  dividerVariant: 'dash',
277
283
  min: new Date(2024, 1, 1),
278
284
  max: new Date(2024, 12, 29),
@@ -186,12 +186,12 @@ const StoryRange = ({
186
186
  secondValueError,
187
187
  secondValueSuccess,
188
188
  size,
189
- lang,
190
189
  ...rest
191
190
  }: StoryPropsRange) => {
192
191
  const rangeRef = useRef<RangeInputRefs>(null);
193
192
 
194
193
  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,7 +238,12 @@ const StoryRange = ({
238
238
  onChangeSecondValue={(e, currentValue) => {
239
239
  onChangeSecondValue(e, currentValue);
240
240
  }}
241
- lang={lang}
241
+ onCommitFirstDate={(currentValue) => {
242
+ setFirstDate(currentValue);
243
+ }}
244
+ onCommitSecondDate={(currentValue) => {
245
+ firstDate && currentValue && setIsOpen(false);
246
+ }}
242
247
  {...dividerIconProps}
243
248
  {...rest}
244
249
  />
@@ -272,7 +277,6 @@ export const Range: StoryObj<StoryPropsRange> = {
272
277
  size: 'l',
273
278
  view: 'default',
274
279
  isDoubleCalendar: false,
275
- closeAfterDateSelect: true,
276
280
  dividerVariant: 'dash',
277
281
  min: new Date(2024, 1, 1),
278
282
  max: new Date(2024, 12, 29),
@@ -25,6 +25,11 @@ type Items = Array<{
25
25
  * Метка-подпись к item
26
26
  */
27
27
  label: string;
28
+ /**
29
+ * Сторона открытия вложенного дропдауна относительно текущего элемента
30
+ * @default right
31
+ */
32
+ placement?: Placement;
28
33
  /**
29
34
  * Список дочерних items.
30
35
  */
@@ -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: "right-start",
35
+ placement: (item === null || item === void 0 ? void 0 : item.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", "closeAfterDateSelect", "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", "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,8 +95,6 @@ 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,
100
98
  offset = _ref.offset,
101
99
  onToggle = _ref.onToggle,
102
100
  onChange = _ref.onChange,
@@ -149,14 +147,6 @@ export var datePickerRangeRoot = function datePickerRangeRoot(Root) {
149
147
  _useState14 = _slicedToArray(_useState13, 2),
150
148
  inputSecondValue = _useState14[0],
151
149
  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];
160
150
  var setFirstInputValue = function setFirstInputValue(value) {
161
151
  setInputFirstValue(value);
162
152
  if (onChange) {
@@ -217,12 +207,12 @@ export var datePickerRangeRoot = function datePickerRangeRoot(Root) {
217
207
  }),
218
208
  handleChangeSecondValue = _useDatePicker2.handleChangeValue,
219
209
  handleCommitSecondDate = _useDatePicker2.handleCommitDate;
220
- var handleToggle = function handleToggle(currentOpened, event) {
210
+ var handleToggle = function handleToggle(opened, event) {
221
211
  var _firstInputRef$curren, _secondInputRef$curre;
222
212
  if (disabled || readOnly) {
223
213
  return;
224
214
  }
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;
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;
226
216
  if (!isCalendarOpen) {
227
217
  if (calendarFirstValue && !calendarSecondValue) {
228
218
  var _secondInputRef$curre2;
@@ -233,22 +223,11 @@ export var datePickerRangeRoot = function datePickerRangeRoot(Root) {
233
223
  firstInputRef === null || firstInputRef === void 0 || (_firstInputRef$curren2 = firstInputRef.current) === null || _firstInputRef$curren2 === void 0 || _firstInputRef$curren2.focus();
234
224
  }
235
225
  }
236
- if (!isCalendarOpen) {
237
- setSecondTextFieldClicked(false);
238
- }
239
226
  if (onToggle) {
240
227
  return onToggle(isCalendarOpen, event);
241
228
  }
242
229
  setIsInnerOpen(isCalendarOpen);
243
230
  };
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
- };
252
231
  var handleBlur = function handleBlur(event, outerHandler) {
253
232
  if (!inputFirstValue || !inputSecondValue) {
254
233
  outerHandler === null || outerHandler === void 0 || outerHandler(event);
@@ -288,37 +267,6 @@ export var datePickerRangeRoot = function datePickerRangeRoot(Root) {
288
267
  closeOnEsc: closeOnEsc
289
268
  }),
290
269
  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
- };
322
270
  var RangeComponent = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(StyledRange, {
323
271
  ref: rangeRef,
324
272
  autoComplete: autoComplete,
@@ -364,8 +312,8 @@ export var datePickerRangeRoot = function datePickerRangeRoot(Root) {
364
312
  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();
365
313
  }
366
314
  },
367
- onFocusFirstTextfield: handleFocusFirstTextField,
368
- onFocusSecondTextfield: handleFocusSecondTextField,
315
+ onFocusFirstTextfield: onFocusFirstTextfield,
316
+ onFocusSecondTextfield: onFocusSecondTextfield,
369
317
  onBlurFirstTextfield: function onBlurFirstTextfield(event) {
370
318
  return handleBlur(event, _onBlurFirstTextfield);
371
319
  },
@@ -414,13 +362,8 @@ export var datePickerRangeRoot = function datePickerRangeRoot(Root) {
414
362
  lang: lang
415
363
  }));
416
364
  }, [format, lang]);
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;
365
+ var RootWrapper = useCallback(function (_ref2) {
366
+ var children = _ref2.children;
424
367
  return /*#__PURE__*/React.createElement(Root, {
425
368
  view: view,
426
369
  size: size,
@@ -462,8 +405,20 @@ export var datePickerRangeRoot = function datePickerRangeRoot(Root) {
462
405
  lang: lang,
463
406
  isDoubleCalendar: isDoubleCalendar,
464
407
  rootWrapper: RootWrapper,
465
- onChangeStartOfRange: handleChangeStartOfRange,
466
- onChangeValue: handleChangeCalendarValue
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
+ }
467
422
  }), leftHelper && /*#__PURE__*/React.createElement(LeftHelper, null, leftHelper), /*#__PURE__*/React.createElement(InputHidden, _extends({
468
423
  name: name,
469
424
  type: "hidden",
@@ -29,6 +29,10 @@ type Items = Array<{
29
29
  * Метка-подпись к item
30
30
  */
31
31
  label: string;
32
+ /**
33
+ * Сторона открытия вложенного дропдауна относительно текущего элемента;
34
+ */
35
+ placement: DropdownPlacement;
32
36
  /**
33
37
  * Список дочерних items.
34
38
  */
@@ -3,6 +3,7 @@ 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';
6
7
  var DropdownInner = function DropdownInner(_ref) {
7
8
  var item = _ref.item,
8
9
  currentLevel = _ref.currentLevel,
@@ -33,7 +34,7 @@ var DropdownInner = function DropdownInner(_ref) {
33
34
  var nextLevel = currentLevel + 1;
34
35
  if (item !== null && item !== void 0 && item.items) {
35
36
  return /*#__PURE__*/React.createElement(FloatingPopover, {
36
- placement: "right-start",
37
+ placement: getPlacement((item === null || item === void 0 ? void 0 : item.placement) || 'right'),
37
38
  opened: isCurrentListOpen,
38
39
  onToggle: handleToggle,
39
40
  trigger: trigger,