@salutejs/plasma-new-hope 0.335.0-canary.2194.17367251959.0 → 0.335.0-canary.2196.17375511532.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 (37) hide show
  1. package/cjs/components/Combobox/ComboboxNew/Combobox.js +15 -30
  2. package/cjs/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  3. package/cjs/components/Combobox/ComboboxNew/utils/getTextValue.js +24 -0
  4. package/cjs/components/Combobox/ComboboxNew/utils/getTextValue.js.map +1 -0
  5. package/emotion/cjs/components/Combobox/ComboboxNew/Combobox.js +26 -44
  6. package/emotion/cjs/components/Combobox/ComboboxNew/utils/getTextValue.js +25 -0
  7. package/emotion/cjs/components/Combobox/ComboboxNew/utils/index.js +4 -0
  8. package/emotion/cjs/examples/components/Chip/Chip.config.js +13 -14
  9. package/emotion/es/components/Combobox/ComboboxNew/Combobox.js +12 -30
  10. package/emotion/es/components/Combobox/ComboboxNew/utils/getTextValue.js +16 -0
  11. package/emotion/es/components/Combobox/ComboboxNew/utils/index.js +1 -0
  12. package/emotion/es/examples/components/Chip/Chip.config.js +13 -14
  13. package/es/components/Combobox/ComboboxNew/Combobox.js +15 -30
  14. package/es/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  15. package/es/components/Combobox/ComboboxNew/utils/getTextValue.js +20 -0
  16. package/es/components/Combobox/ComboboxNew/utils/getTextValue.js.map +1 -0
  17. package/package.json +2 -2
  18. package/styled-components/cjs/components/Combobox/ComboboxNew/Combobox.js +26 -44
  19. package/styled-components/cjs/components/Combobox/ComboboxNew/utils/getTextValue.js +25 -0
  20. package/styled-components/cjs/components/Combobox/ComboboxNew/utils/index.js +4 -0
  21. package/styled-components/cjs/examples/components/Chip/Chip.config.js +0 -21
  22. package/styled-components/es/components/Combobox/ComboboxNew/Combobox.js +12 -30
  23. package/styled-components/es/components/Combobox/ComboboxNew/utils/getTextValue.js +16 -0
  24. package/styled-components/es/components/Combobox/ComboboxNew/utils/index.js +1 -0
  25. package/styled-components/es/examples/components/Chip/Chip.config.js +0 -21
  26. package/types/components/Combobox/ComboboxNew/Combobox.d.ts.map +1 -1
  27. package/types/components/Combobox/ComboboxNew/Combobox.types.d.ts +1 -1
  28. package/types/components/Combobox/ComboboxNew/Combobox.types.d.ts.map +1 -1
  29. package/types/components/Combobox/ComboboxNew/utils/getTextValue.d.ts +4 -0
  30. package/types/components/Combobox/ComboboxNew/utils/getTextValue.d.ts.map +1 -0
  31. package/types/components/Combobox/ComboboxNew/utils/index.d.ts +1 -0
  32. package/types/components/Combobox/ComboboxNew/utils/index.d.ts.map +1 -1
  33. package/types/examples/components/Chip/Chip.config.d.ts +0 -1
  34. package/types/examples/components/Chip/Chip.config.d.ts.map +1 -1
  35. package/types/examples/components/Chip/Chip.d.ts +0 -1
  36. package/types/examples/components/Chip/Chip.d.ts.map +1 -1
  37. package/types/examples/components/Combobox/Combobox.d.ts.map +1 -1
@@ -19,13 +19,12 @@ _export(exports, {
19
19
  var _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
20
20
  var _plasmacore = require("@salutejs/plasma-core");
21
21
  var _utils = require("../../../utils");
22
- var _utils1 = require("../../../utils");
23
22
  var _hooks = require("../../../hooks");
24
- var _utils2 = require("../../Select/utils");
23
+ var _utils1 = require("../../Select/utils");
25
24
  var _Comboboxtokens = require("./Combobox.tokens");
26
25
  var _FloatingPopover = require("./FloatingPopover");
27
26
  var _useKeyboardNavigation = require("./hooks/useKeyboardNavigation");
28
- var _utils3 = require("./utils");
27
+ var _utils2 = require("./utils");
29
28
  var _ui = require("./ui");
30
29
  var _reducers = require("./reducers");
31
30
  var _getPathMaps = require("./hooks/getPathMaps");
@@ -218,7 +217,7 @@ function _unsupported_iterable_to_array(o, minLen) {
218
217
  }
219
218
  var comboboxRoot = function(Root) {
220
219
  return /*#__PURE__*/ (0, _react.forwardRef)(function(props, ref) {
221
- var _valueToItemMap_get, _getItemByFocused;
220
+ var _getItemByFocused;
222
221
  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
223
222
  _offset = props._offset, rest = _object_without_properties(props, [
224
223
  "name",
@@ -266,7 +265,7 @@ var comboboxRoot = function(Root) {
266
265
  "_offset"
267
266
  ]);
268
267
  var transformedItems = (0, _react.useMemo)(function() {
269
- return (0, _utils3.initialItemsTransform)(items || []);
268
+ return (0, _utils2.initialItemsTransform)(items || []);
270
269
  }, [
271
270
  items
272
271
  ]);
@@ -276,7 +275,7 @@ var comboboxRoot = function(Root) {
276
275
  }, [
277
276
  items
278
277
  ]), 3), valueToCheckedMap = _useMemo[0], valueToItemMap = _useMemo[1], labelToItemMap = _useMemo[2];
279
- var _useState = _sliced_to_array((0, _react.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];
278
+ var _useState = _sliced_to_array((0, _react.useState)((0, _utils2.getTextValue)(multiple, outerValue, valueToItemMap, renderValue)), 2), textValue = _useState[0], setTextValue = _useState[1];
280
279
  var _useState1 = _sliced_to_array((0, _react.useState)(multiple ? [] : ''), 2), internalValue = _useState1[0], setInternalValue = _useState1[1];
281
280
  var value = outerValue !== null && outerValue !== undefined ? outerValue : internalValue;
282
281
  var inputRef = (0, _react.useRef)(null);
@@ -284,8 +283,7 @@ var comboboxRoot = function(Root) {
284
283
  var inputForkRef = (0, _plasmacore.useForkRef)(inputRef, ref);
285
284
  var treeId = (0, _utils.safeUseId)();
286
285
  var filteredItems = (0, _react.useMemo)(function() {
287
- var _valueToItemMap_get;
288
- return (0, _utils3.filterItems)(transformedItems, textValue, ((_valueToItemMap_get = valueToItemMap.get(value)) === null || _valueToItemMap_get === void 0 ? void 0 : _valueToItemMap_get.label) || value, filter);
286
+ return (0, _utils2.filterItems)(transformedItems, textValue, (0, _utils2.getTextValue)(multiple, value, valueToItemMap, renderValue), filter);
289
287
  }, [
290
288
  transformedItems,
291
289
  textValue,
@@ -322,30 +320,19 @@ var comboboxRoot = function(Root) {
322
320
  if (onToggle) {
323
321
  onToggle(false);
324
322
  }
325
- // Проверяем, отличается ли значение в инпуте от выбранного value после закрытия дропдауна.
326
- // Если изменилось, то возвращаем label выбранного айтема.
327
- // Если нет выбранного элемента, то стираем значение инпута.
328
- if (textValue !== value) {
329
- if ((0, _utils1.isEmpty)(value)) {
330
- setTextValue('');
331
- } else if (multiple) {
332
- setTextValue('');
333
- } else {
334
- var _valueToItemMap_get;
335
- setTextValue(((_valueToItemMap_get = valueToItemMap.get(value)) === null || _valueToItemMap_get === void 0 ? void 0 : _valueToItemMap_get.label) || value || '');
336
- }
337
- }
323
+ // Возвращаем актуальное значение поля ввода после закрытия выпадающего списка.
324
+ setTextValue((0, _utils2.getTextValue)(multiple, value, valueToItemMap, renderValue));
338
325
  }, floatingPopoverRef);
339
326
  // Эта функция срабатывает при изменении Combobox и
340
327
  // при изменении нативного Select для формы (срабатывает только после изменения internalValue и рендера).
341
328
  var onChange = function(newValue, item) {
342
329
  // Условие для отправки изменений наружу
343
330
  if (props.onChange) {
344
- // Условие для отправки если комбобокс используется без формы.
331
+ // Условие для отправки, если комбобокс используется без формы.
345
332
  if (!props.name && (typeof newValue === 'string' || Array.isArray(newValue))) {
346
333
  props.onChange(newValue, item || null);
347
334
  }
348
- // Условие для отправки если комбобокс используется с формой.
335
+ // Условие для отправки, если комбобокс используется с формой.
349
336
  if (props.name && (typeof newValue === "undefined" ? "undefined" : _type_of(newValue)) === 'object' && !Array.isArray(newValue)) {
350
337
  props.onChange(newValue);
351
338
  }
@@ -404,7 +391,7 @@ var comboboxRoot = function(Root) {
404
391
  resultValues.splice(index, 1);
405
392
  }
406
393
  });
407
- var removedItemValue = (0, _utils3.getRemovedElement)(value, resultValues, isTargetAmount);
394
+ var removedItemValue = (0, _utils2.getRemovedElement)(value, resultValues, isTargetAmount);
408
395
  onChange(resultValues, removedItemValue ? valueToItemMap.get(removedItemValue) || {
409
396
  value: removedItemValue,
410
397
  label: removedItemValue.toString()
@@ -414,7 +401,7 @@ var comboboxRoot = function(Root) {
414
401
  var _labelToItemMap_get;
415
402
  return ((_labelToItemMap_get = labelToItemMap.get(chipLabel)) === null || _labelToItemMap_get === void 0 ? void 0 : _labelToItemMap_get.value) || chipLabel;
416
403
  });
417
- var removedItemValue1 = (0, _utils3.getRemovedElement)(value, newValues, isTargetAmount);
404
+ var removedItemValue1 = (0, _utils2.getRemovedElement)(value, newValues, isTargetAmount);
418
405
  onChange(newValues, removedItemValue1 ? valueToItemMap.get(removedItemValue1) || {
419
406
  value: removedItemValue1,
420
407
  label: removedItemValue1.toString()
@@ -450,12 +437,12 @@ var comboboxRoot = function(Root) {
450
437
  var checkedCopy = new Map(checked);
451
438
  if (!checkedCopy.get(item.value)) {
452
439
  checkedCopy.set(item.value, true);
453
- (0, _utils3.updateDescendants)(item, checkedCopy, true, valueToItemMap);
440
+ (0, _utils2.updateDescendants)(item, checkedCopy, true, valueToItemMap);
454
441
  } else {
455
442
  checkedCopy.set(item.value, false);
456
- (0, _utils3.updateDescendants)(item, checkedCopy, false);
443
+ (0, _utils2.updateDescendants)(item, checkedCopy, false);
457
444
  }
458
- (0, _utils3.updateAncestors)(item, checkedCopy);
445
+ (0, _utils2.updateAncestors)(item, checkedCopy);
459
446
  var newValues = [];
460
447
  valueToItemMap.forEach(function(item, key) {
461
448
  if (checkedCopy.get(key)) {
@@ -484,7 +471,7 @@ var comboboxRoot = function(Root) {
484
471
  };
485
472
  // Обработчик клика по айтему выпадающего списка
486
473
  var handleItemClick = function(item, e) {
487
- if (!(0, _utils1.isEmpty)(item === null || item === void 0 ? void 0 : item.items)) {
474
+ if (!(0, _utils.isEmpty)(item === null || item === void 0 ? void 0 : item.items)) {
488
475
  return;
489
476
  }
490
477
  if (multiple) {
@@ -530,7 +517,7 @@ var comboboxRoot = function(Root) {
530
517
  return [];
531
518
  };
532
519
  var handlePressDown = function(item, e) {
533
- if ((0, _utils1.isEmpty)(item.items)) {
520
+ if ((0, _utils.isEmpty)(item.items)) {
534
521
  handleItemClick(item, e);
535
522
  } else if (multiple) {
536
523
  handleCheckboxChange(item);
@@ -561,14 +548,14 @@ var comboboxRoot = function(Root) {
561
548
  checkedCopy.forEach(function(_, key) {
562
549
  checkedCopy.set(key, false);
563
550
  });
564
- if (!(0, _utils1.isEmpty)(value)) {
551
+ if (!(0, _utils.isEmpty)(value)) {
565
552
  if (Array.isArray(value)) {
566
553
  value.forEach(function(val) {
567
554
  // Только если value находится в items, т.к. value может и не существовать в items.
568
555
  if (valueToItemMap.has(val)) {
569
556
  checkedCopy.set(val, true);
570
- (0, _utils3.updateDescendants)(valueToItemMap.get(val), checkedCopy, true);
571
- (0, _utils3.updateAncestors)(valueToItemMap.get(val), checkedCopy);
557
+ (0, _utils2.updateDescendants)(valueToItemMap.get(val), checkedCopy, true);
558
+ (0, _utils2.updateAncestors)(valueToItemMap.get(val), checkedCopy);
572
559
  }
573
560
  });
574
561
  } else {
@@ -576,15 +563,11 @@ var comboboxRoot = function(Root) {
576
563
  // eslint-disable-next-line no-lonely-if
577
564
  if (valueToItemMap.has(value)) {
578
565
  checkedCopy.set(value, 'done');
579
- (0, _utils3.updateSingleAncestors)(valueToItemMap.get(value), checkedCopy, 'dot');
566
+ (0, _utils2.updateSingleAncestors)(valueToItemMap.get(value), checkedCopy, 'dot');
580
567
  }
581
568
  }
582
569
  }
583
570
  setChecked(checkedCopy);
584
- if (!multiple && textValue === value && valueToItemMap.has(value)) {
585
- var _valueToItemMap_get;
586
- setTextValue(((_valueToItemMap_get = valueToItemMap.get(value)) === null || _valueToItemMap_get === void 0 ? void 0 : _valueToItemMap_get.label) || '');
587
- }
588
571
  // В deps мы кладем именно outerValue и internalValue, а не просто value.
589
572
  // Т.к. вначале нужно отфильтровать и провалидировать outerValue и результат положить в переменную.
590
573
  // А переменную, содержащую сложные типы данных, нельзя помещать в deps.
@@ -594,9 +577,8 @@ var comboboxRoot = function(Root) {
594
577
  items
595
578
  ]);
596
579
  // При изменении value нужно возвращать значение в инпуте к исходному.
597
- (0, _react.useLayoutEffect)(function() {
598
- var _valueToItemMap_get;
599
- 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()) || '');
580
+ (0, _hooks.useDidMountLayoutEffect)(function() {
581
+ setTextValue((0, _utils2.getTextValue)(multiple, value, valueToItemMap, renderValue));
600
582
  }, [
601
583
  outerValue,
602
584
  internalValue
@@ -667,7 +649,7 @@ var comboboxRoot = function(Root) {
667
649
  onClick: handleClickArrow
668
650
  }, /*#__PURE__*/ _react.default.createElement(_Comboboxstyles.StyledArrow, {
669
651
  color: "inherit",
670
- size: (0, _utils2.sizeToIconSize)(size),
652
+ size: (0, _utils1.sizeToIconSize)(size),
671
653
  className: withArrowInverse
672
654
  })),
673
655
  textBefore: textBefore,
@@ -680,7 +662,7 @@ var comboboxRoot = function(Root) {
680
662
  "aria-autocomplete": "list",
681
663
  "aria-controls": "".concat(treeId, "_tree_level_1"),
682
664
  "aria-expanded": isCurrentListOpen,
683
- "aria-activedescendant": activeDescendantItemValue ? (0, _utils3.getItemId)(treeId, activeDescendantItemValue) : '',
665
+ "aria-activedescendant": activeDescendantItemValue ? (0, _utils2.getItemId)(treeId, activeDescendantItemValue) : '',
684
666
  labelPlacement: labelPlacement,
685
667
  keepPlaceholder: keepPlaceholder
686
668
  }, multiple ? {
@@ -713,7 +695,7 @@ var comboboxRoot = function(Root) {
713
695
  virtual: virtual,
714
696
  listOverflow: listOverflow,
715
697
  onScroll: virtual ? undefined : onScroll
716
- }, beforeList, (0, _utils1.isEmpty)(filteredItems) ? /*#__PURE__*/ _react.default.createElement(_Comboboxstyles.StyledEmptyState, {
698
+ }, beforeList, (0, _utils.isEmpty)(filteredItems) ? /*#__PURE__*/ _react.default.createElement(_Comboboxstyles.StyledEmptyState, {
717
699
  className: _Comboboxtokens.classes.emptyStateWrapper,
718
700
  size: size,
719
701
  description: emptyStateDescription || 'Ничего не найдено'
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "getTextValue", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return getTextValue;
9
+ }
10
+ });
11
+ // Type Guard для multiple.
12
+ // @ts-ignore
13
+ function isMultiple(multiple, value) {
14
+ return Boolean(multiple);
15
+ }
16
+ var getTextValue = function(multiple, value, valueToItemMap, renderValue) {
17
+ var _valueToItemMap_get;
18
+ if (isMultiple(multiple, value) || !value) {
19
+ return '';
20
+ }
21
+ return (renderValue === null || renderValue === void 0 ? void 0 : renderValue({
22
+ value: value,
23
+ label: ''
24
+ })) || ((_valueToItemMap_get = valueToItemMap.get(value)) === null || _valueToItemMap_get === void 0 ? void 0 : _valueToItemMap_get.label) || value.toString();
25
+ };
@@ -18,6 +18,9 @@ _export(exports, {
18
18
  get getRemovedElement () {
19
19
  return _getRemovedElement.getRemovedElement;
20
20
  },
21
+ get getTextValue () {
22
+ return _getTextValue.getTextValue;
23
+ },
21
24
  get initialItemsTransform () {
22
25
  return _initialItemsTransform.initialItemsTransform;
23
26
  },
@@ -42,3 +45,4 @@ var _sizeToIconSize = require("./sizeToIconSize");
42
45
  var _filterItems = require("./filterItems");
43
46
  var _getItemId = require("./getItemId");
44
47
  var _getRemovedElement = require("./getRemovedElement");
48
+ var _getTextValue = require("./getTextValue");