@salutejs/plasma-new-hope 0.339.0-canary.2286.18557548158.0 → 0.339.0-canary.2286.18687473889.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 (50) hide show
  1. package/cjs/components/Select/Select.js +3 -1
  2. package/cjs/components/Select/Select.js.map +1 -1
  3. package/cjs/components/Select/ui/TreeList/TreeList.js +13 -7
  4. package/cjs/components/Select/ui/TreeList/TreeList.js.map +1 -1
  5. package/cjs/components/Select/ui/TreeList/ui/Item/Item.js +76 -17
  6. package/cjs/components/Select/ui/TreeList/ui/Item/Item.js.map +1 -1
  7. package/emotion/cjs/components/Select/Select.js +3 -1
  8. package/emotion/cjs/components/Select/ui/TreeList/TreeList.js +9 -7
  9. package/emotion/cjs/components/Select/ui/TreeList/ui/Item/Item.js +66 -17
  10. package/emotion/es/components/Select/Select.js +3 -1
  11. package/emotion/es/components/Select/ui/TreeList/TreeList.js +9 -7
  12. package/emotion/es/components/Select/ui/TreeList/ui/Item/Item.js +67 -18
  13. package/es/components/Select/Select.js +3 -1
  14. package/es/components/Select/Select.js.map +1 -1
  15. package/es/components/Select/ui/TreeList/TreeList.js +13 -7
  16. package/es/components/Select/ui/TreeList/TreeList.js.map +1 -1
  17. package/es/components/Select/ui/TreeList/ui/Item/Item.js +77 -18
  18. package/es/components/Select/ui/TreeList/ui/Item/Item.js.map +1 -1
  19. package/package.json +4 -4
  20. package/styled-components/cjs/components/Select/Select.js +3 -1
  21. package/styled-components/cjs/components/Select/ui/TreeList/TreeList.js +9 -7
  22. package/styled-components/cjs/components/Select/ui/TreeList/ui/Item/Item.js +66 -17
  23. package/styled-components/es/components/Select/Select.js +3 -1
  24. package/styled-components/es/components/Select/ui/TreeList/TreeList.js +9 -7
  25. package/styled-components/es/components/Select/ui/TreeList/ui/Item/Item.js +67 -18
  26. package/types/components/Select/Select.d.ts.map +1 -1
  27. package/types/components/Select/ui/TreeList/TreeList.d.ts.map +1 -1
  28. package/types/components/Select/ui/TreeList/TreeList.types.d.ts +3 -1
  29. package/types/components/Select/ui/TreeList/TreeList.types.d.ts.map +1 -1
  30. package/types/components/Select/ui/TreeList/ui/Item/Item.d.ts.map +1 -1
  31. package/cjs/components/Select/ui/TreeList/ui/Item/ui/ItemArrowLeft/ItemArrowLeft.js +0 -89
  32. package/cjs/components/Select/ui/TreeList/ui/Item/ui/ItemArrowLeft/ItemArrowLeft.js.map +0 -1
  33. package/cjs/components/Select/ui/TreeList/ui/Item/ui/ItemArrowRight/ItemArrowRight.js +0 -89
  34. package/cjs/components/Select/ui/TreeList/ui/Item/ui/ItemArrowRight/ItemArrowRight.js.map +0 -1
  35. package/emotion/cjs/components/Select/ui/TreeList/ui/Item/ui/ItemArrowLeft/ItemArrowLeft.js +0 -112
  36. package/emotion/cjs/components/Select/ui/TreeList/ui/Item/ui/ItemArrowRight/ItemArrowRight.js +0 -112
  37. package/emotion/es/components/Select/ui/TreeList/ui/Item/ui/ItemArrowLeft/ItemArrowLeft.js +0 -61
  38. package/emotion/es/components/Select/ui/TreeList/ui/Item/ui/ItemArrowRight/ItemArrowRight.js +0 -61
  39. package/es/components/Select/ui/TreeList/ui/Item/ui/ItemArrowLeft/ItemArrowLeft.js +0 -81
  40. package/es/components/Select/ui/TreeList/ui/Item/ui/ItemArrowLeft/ItemArrowLeft.js.map +0 -1
  41. package/es/components/Select/ui/TreeList/ui/Item/ui/ItemArrowRight/ItemArrowRight.js +0 -81
  42. package/es/components/Select/ui/TreeList/ui/Item/ui/ItemArrowRight/ItemArrowRight.js.map +0 -1
  43. package/styled-components/cjs/components/Select/ui/TreeList/ui/Item/ui/ItemArrowLeft/ItemArrowLeft.js +0 -112
  44. package/styled-components/cjs/components/Select/ui/TreeList/ui/Item/ui/ItemArrowRight/ItemArrowRight.js +0 -112
  45. package/styled-components/es/components/Select/ui/TreeList/ui/Item/ui/ItemArrowLeft/ItemArrowLeft.js +0 -61
  46. package/styled-components/es/components/Select/ui/TreeList/ui/Item/ui/ItemArrowRight/ItemArrowRight.js +0 -61
  47. package/types/components/Select/ui/TreeList/ui/Item/ui/ItemArrowLeft/ItemArrowLeft.d.ts +0 -4
  48. package/types/components/Select/ui/TreeList/ui/Item/ui/ItemArrowLeft/ItemArrowLeft.d.ts.map +0 -1
  49. package/types/components/Select/ui/TreeList/ui/Item/ui/ItemArrowRight/ItemArrowRight.d.ts +0 -4
  50. package/types/components/Select/ui/TreeList/ui/Item/ui/ItemArrowRight/ItemArrowRight.d.ts.map +0 -1
@@ -9,10 +9,10 @@ Object.defineProperty(exports, "Item", {
9
9
  }
10
10
  });
11
11
  var _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
12
+ var _Selecttokens = require("../../../../Select.tokens");
13
+ var _utils = require("../../../../utils");
12
14
  var _treePathReducer = require("../../../../reducers/treePathReducer");
13
15
  var _Selectcontext = require("../../../../Select.context");
14
- var _ItemArrowLeft = require("./ui/ItemArrowLeft/ItemArrowLeft");
15
- var _ItemArrowRight = require("./ui/ItemArrowRight/ItemArrowRight");
16
16
  var _Itemstyles = require("./Item.styles");
17
17
  function _getRequireWildcardCache(nodeInterop) {
18
18
  if (typeof WeakMap !== "function") return null;
@@ -57,12 +57,17 @@ function _interop_require_wildcard(obj, nodeInterop) {
57
57
  }
58
58
  var Item = function(param) {
59
59
  var item = param.item, index = param.index;
60
- var _item_items;
61
- var value = item.value, disabled = item.disabled, isDisabled = item.isDisabled;
60
+ var _valueToPathMap_get, _item_items;
61
+ var label = item.label, value = item.value, disabled = item.disabled, isDisabled = item.isDisabled, contentLeft = item.contentLeft, contentRight = item.contentRight;
62
62
  var isLeaf = !(item === null || item === void 0 ? void 0 : item.items);
63
- var _useContext = (0, _react.useContext)(_Selectcontext.Context), treePath = _useContext.treePath, dispatchTreePath = _useContext.dispatchTreePath, arrowPlacement = _useContext.arrowPlacement, handleItemClick = _useContext.handleItemClick, handleCheckboxChange = _useContext.handleCheckboxChange, valueToPathMap = _useContext.valueToPathMap;
64
- var isCurrentLevelOpened = (0, _treePathReducer.keyExists)(treePath, valueToPathMap.get(value.toString()) || []);
63
+ var _useContext = (0, _react.useContext)(_Selectcontext.Context), checked = _useContext.checked, multiselect = _useContext.multiselect, size = _useContext.size, variant = _useContext.variant, renderItem = _useContext.renderItem, // eslint-disable-next-line @typescript-eslint/ban-ts-comment
64
+ // @ts-ignore
65
+ _checkboxAppearance = _useContext._checkboxAppearance, focusedPath = _useContext.focusedPath, treePath = _useContext.treePath, dispatchTreePath = _useContext.dispatchTreePath, arrowPlacement = _useContext.arrowPlacement, handleItemClick = _useContext.handleItemClick, handleCheckboxChange = _useContext.handleCheckboxChange, valueToPathMap = _useContext.valueToPathMap;
65
66
  var itemDisabled = Boolean(disabled || isDisabled);
67
+ var currentItemDepth = (((_valueToPathMap_get = valueToPathMap.get(item.value.toString())) === null || _valueToPathMap_get === void 0 ? void 0 : _valueToPathMap_get.length) || 0) - 1;
68
+ var isCurrentLevelOpened = (0, _treePathReducer.keyExists)(treePath, valueToPathMap.get(value.toString()) || []);
69
+ var withArrowInverse = isCurrentLevelOpened ? _Selecttokens.classes.arrowInverse : undefined;
70
+ var focusedClass = currentItemDepth === focusedPath.length - 1 && index === (focusedPath === null || focusedPath === void 0 ? void 0 : focusedPath[currentItemDepth]) ? _Selecttokens.classes.dropdownItemIsFocused : undefined;
66
71
  var handleClick = function(e) {
67
72
  if (!isLeaf) {
68
73
  dispatchTreePath({
@@ -79,19 +84,63 @@ var Item = function(param) {
79
84
  e.stopPropagation();
80
85
  handleCheckboxChange(item);
81
86
  };
82
- return /*#__PURE__*/ _react.default.createElement(_Itemstyles.ItemWrapper, null, arrowPlacement === 'left' ? /*#__PURE__*/ _react.default.createElement(_ItemArrowLeft.ItemArrowLeft, {
83
- item: item,
84
- onClick: handleClick,
85
- onChange: handleChange,
86
- isCurrentLevelOpened: isCurrentLevelOpened,
87
- index: index
88
- }) : /*#__PURE__*/ _react.default.createElement(_ItemArrowRight.ItemArrowRight, {
89
- item: item,
87
+ return /*#__PURE__*/ _react.default.createElement(_Itemstyles.ItemWrapper, null, /*#__PURE__*/ _react.default.createElement(_Itemstyles.Wrapper, {
88
+ className: focusedClass,
90
89
  onClick: handleClick,
90
+ variant: variant,
91
+ role: "treeitem"
92
+ }, /*#__PURE__*/ _react.default.createElement(_Itemstyles.Offset, {
93
+ depth: currentItemDepth
94
+ }), arrowPlacement === 'left' && /*#__PURE__*/ _react.default.createElement(_Itemstyles.DisclosureIconWrapper, {
95
+ visibility: isLeaf ? 'hidden' : 'visible'
96
+ }, /*#__PURE__*/ _react.default.createElement(_Itemstyles.StyledArrowLeft, {
97
+ size: (0, _utils.sizeToIconSize)(size, variant),
98
+ color: "inherit",
99
+ className: withArrowInverse
100
+ })), multiselect && /*#__PURE__*/ _react.default.createElement(_Itemstyles.IconWrapper, {
101
+ variant: variant
102
+ }, /*#__PURE__*/ _react.default.createElement(_Itemstyles.StyledCheckboxWrapper, {
103
+ onClick: function(e) {
104
+ return e.stopPropagation();
105
+ }
106
+ }, /*#__PURE__*/ _react.default.createElement(_Itemstyles.StyledCheckbox, {
107
+ disabled: itemDisabled,
108
+ checked: Boolean(checked.get(item.value)),
109
+ indeterminate: checked.get(item.value) === 'indeterminate',
91
110
  onChange: handleChange,
92
- isCurrentLevelOpened: isCurrentLevelOpened,
93
- index: index
94
- }), !isLeaf && isCurrentLevelOpened && /*#__PURE__*/ _react.default.createElement(_Itemstyles.ChildItems, null, (_item_items = item.items) === null || _item_items === void 0 ? void 0 : _item_items.map(function(item, index) {
111
+ appearance: _checkboxAppearance !== null && _checkboxAppearance !== void 0 ? _checkboxAppearance : 'default'
112
+ }))), !multiselect && arrowPlacement === 'right' && /*#__PURE__*/ _react.default.createElement(_Itemstyles.IconWrapper, {
113
+ variant: variant
114
+ }, checked.get(item.value) === 'dot' && /*#__PURE__*/ _react.default.createElement(_Itemstyles.StyledIndicator, {
115
+ size: "s",
116
+ view: "default"
117
+ }), checked.get(item.value) === 'done' && /*#__PURE__*/ _react.default.createElement(_Itemstyles.StyledIconDone, {
118
+ size: (0, _utils.sizeToIconSize)(size, variant),
119
+ color: "inherit"
120
+ })), renderItem ? /*#__PURE__*/ _react.default.createElement(_Itemstyles.StyledText, null, renderItem(item)) : /*#__PURE__*/ _react.default.createElement(_Itemstyles.StyledWrapper, {
121
+ disabled: itemDisabled
122
+ }, /*#__PURE__*/ _react.default.createElement(_Itemstyles.StyledCell, {
123
+ contentLeft: contentLeft,
124
+ contentRight: contentRight,
125
+ // TODO: #1548
126
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
127
+ // @ts-ignore
128
+ title: /*#__PURE__*/ _react.default.createElement("span", null, label)
129
+ })), !multiselect && arrowPlacement === 'left' && /*#__PURE__*/ _react.default.createElement(_Itemstyles.IconWrapper, {
130
+ variant: variant
131
+ }, checked.get(item.value) === 'dot' && /*#__PURE__*/ _react.default.createElement(_Itemstyles.StyledIndicator, {
132
+ size: "s",
133
+ view: "default"
134
+ }), checked.get(item.value) === 'done' && /*#__PURE__*/ _react.default.createElement(_Itemstyles.StyledIconDone, {
135
+ size: (0, _utils.sizeToIconSize)(size, variant),
136
+ color: "inherit"
137
+ })), arrowPlacement === 'right' && /*#__PURE__*/ _react.default.createElement(_Itemstyles.DisclosureIconWrapper, {
138
+ visibility: isLeaf ? 'hidden' : 'visible'
139
+ }, /*#__PURE__*/ _react.default.createElement(_Itemstyles.StyledArrowRight, {
140
+ size: (0, _utils.sizeToIconSize)(size, variant),
141
+ color: "inherit",
142
+ className: withArrowInverse
143
+ }))), !isLeaf && isCurrentLevelOpened && /*#__PURE__*/ _react.default.createElement(_Itemstyles.ChildItems, null, (_item_items = item.items) === null || _item_items === void 0 ? void 0 : _item_items.map(function(item, index) {
95
144
  return /*#__PURE__*/ _react.default.createElement(Item, {
96
145
  item: item,
97
146
  index: index,
@@ -546,7 +546,9 @@ import { Context } from "./Select.context";
546
546
  items: items,
547
547
  listMaxHeight: listMaxHeight,
548
548
  onScroll: virtual ? undefined : handleScroll,
549
- virtual: virtual
549
+ virtual: virtual,
550
+ beforeList: beforeList,
551
+ afterList: afterList
550
552
  }) : /*#__PURE__*/ React.createElement(ListWrapper, {
551
553
  ref: listWrapperRef,
552
554
  listWidth: listWidth
@@ -4,27 +4,29 @@ import { getHeightAsNumber } from "../../../../utils";
4
4
  import { Item } from "./ui/Item/Item";
5
5
  import { ListWrapper, ScrollContainer } from "./TreeList.styles";
6
6
  export var TreeList = function(param) {
7
- var items = param.items, listMaxHeight = param.listMaxHeight, onScroll = param.onScroll, virtual = param.virtual;
7
+ var items = param.items, listMaxHeight = param.listMaxHeight, onScroll = param.onScroll, virtual = param.virtual, beforeList = param.beforeList, afterList = param.afterList;
8
8
  if (virtual) {
9
9
  return /*#__PURE__*/ React.createElement(VirtualTreeList, {
10
10
  items: items,
11
11
  listMaxHeight: listMaxHeight,
12
- onScroll: onScroll
12
+ onScroll: onScroll,
13
+ beforeList: beforeList,
14
+ afterList: afterList
13
15
  });
14
16
  }
15
17
  return /*#__PURE__*/ React.createElement(ListWrapper, null, /*#__PURE__*/ React.createElement(ScrollContainer, {
16
18
  listMaxHeight: listMaxHeight,
17
19
  onScroll: onScroll
18
- }, items === null || items === void 0 ? void 0 : items.map(function(item, index) {
20
+ }, beforeList, items === null || items === void 0 ? void 0 : items.map(function(item, index) {
19
21
  return /*#__PURE__*/ React.createElement(Item, {
20
22
  key: index,
21
23
  index: index,
22
24
  item: item
23
25
  });
24
- })));
26
+ }), afterList));
25
27
  };
26
28
  var VirtualTreeList = function(param) {
27
- var _param_items = param.items, items = _param_items === void 0 ? [] : _param_items, listMaxHeight = param.listMaxHeight, onScroll = param.onScroll;
29
+ var _param_items = param.items, items = _param_items === void 0 ? [] : _param_items, listMaxHeight = param.listMaxHeight, onScroll = param.onScroll, beforeList = param.beforeList, afterList = param.afterList;
28
30
  var _virtualItems_;
29
31
  var parentRef = useRef(null);
30
32
  var virtualizer = useVirtualizer({
@@ -38,7 +40,7 @@ var VirtualTreeList = function(param) {
38
40
  });
39
41
  var virtualItems = virtualizer.getVirtualItems();
40
42
  var _virtualItems__start;
41
- return /*#__PURE__*/ React.createElement(ListWrapper, null, /*#__PURE__*/ React.createElement("div", {
43
+ return /*#__PURE__*/ React.createElement(ListWrapper, null, beforeList, /*#__PURE__*/ React.createElement("div", {
42
44
  ref: parentRef,
43
45
  style: {
44
46
  height: 'auto',
@@ -69,5 +71,5 @@ var VirtualTreeList = function(param) {
69
71
  item: items[virtualRow.index],
70
72
  index: virtualRow.index
71
73
  }));
72
- })))));
74
+ })))), afterList);
73
75
  };
@@ -1,17 +1,22 @@
1
1
  import React, { useContext } from "react";
2
+ import { classes } from "../../../../Select.tokens";
3
+ import { sizeToIconSize } from "../../../../utils";
2
4
  import { keyExists } from "../../../../reducers/treePathReducer";
3
5
  import { Context } from "../../../../Select.context";
4
- import { ItemArrowLeft } from "./ui/ItemArrowLeft/ItemArrowLeft";
5
- import { ItemArrowRight } from "./ui/ItemArrowRight/ItemArrowRight";
6
- import { ItemWrapper, ChildItems } from "./Item.styles";
6
+ import { ItemWrapper, ChildItems, Offset, IconWrapper, StyledCheckboxWrapper, StyledCheckbox, StyledIndicator, StyledIconDone, StyledText, StyledWrapper, StyledCell, DisclosureIconWrapper, StyledArrowRight, Wrapper, StyledArrowLeft } from "./Item.styles";
7
7
  export var Item = function(param) {
8
8
  var item = param.item, index = param.index;
9
- var _item_items;
10
- var value = item.value, disabled = item.disabled, isDisabled = item.isDisabled;
9
+ var _valueToPathMap_get, _item_items;
10
+ var label = item.label, value = item.value, disabled = item.disabled, isDisabled = item.isDisabled, contentLeft = item.contentLeft, contentRight = item.contentRight;
11
11
  var isLeaf = !(item === null || item === void 0 ? void 0 : item.items);
12
- var _useContext = useContext(Context), treePath = _useContext.treePath, dispatchTreePath = _useContext.dispatchTreePath, arrowPlacement = _useContext.arrowPlacement, handleItemClick = _useContext.handleItemClick, handleCheckboxChange = _useContext.handleCheckboxChange, valueToPathMap = _useContext.valueToPathMap;
13
- var isCurrentLevelOpened = keyExists(treePath, valueToPathMap.get(value.toString()) || []);
12
+ var _useContext = useContext(Context), checked = _useContext.checked, multiselect = _useContext.multiselect, size = _useContext.size, variant = _useContext.variant, renderItem = _useContext.renderItem, // eslint-disable-next-line @typescript-eslint/ban-ts-comment
13
+ // @ts-ignore
14
+ _checkboxAppearance = _useContext._checkboxAppearance, focusedPath = _useContext.focusedPath, treePath = _useContext.treePath, dispatchTreePath = _useContext.dispatchTreePath, arrowPlacement = _useContext.arrowPlacement, handleItemClick = _useContext.handleItemClick, handleCheckboxChange = _useContext.handleCheckboxChange, valueToPathMap = _useContext.valueToPathMap;
14
15
  var itemDisabled = Boolean(disabled || isDisabled);
16
+ var currentItemDepth = (((_valueToPathMap_get = valueToPathMap.get(item.value.toString())) === null || _valueToPathMap_get === void 0 ? void 0 : _valueToPathMap_get.length) || 0) - 1;
17
+ var isCurrentLevelOpened = keyExists(treePath, valueToPathMap.get(value.toString()) || []);
18
+ var withArrowInverse = isCurrentLevelOpened ? classes.arrowInverse : undefined;
19
+ var focusedClass = currentItemDepth === focusedPath.length - 1 && index === (focusedPath === null || focusedPath === void 0 ? void 0 : focusedPath[currentItemDepth]) ? classes.dropdownItemIsFocused : undefined;
15
20
  var handleClick = function(e) {
16
21
  if (!isLeaf) {
17
22
  dispatchTreePath({
@@ -28,19 +33,63 @@ export var Item = function(param) {
28
33
  e.stopPropagation();
29
34
  handleCheckboxChange(item);
30
35
  };
31
- return /*#__PURE__*/ React.createElement(ItemWrapper, null, arrowPlacement === 'left' ? /*#__PURE__*/ React.createElement(ItemArrowLeft, {
32
- item: item,
33
- onClick: handleClick,
34
- onChange: handleChange,
35
- isCurrentLevelOpened: isCurrentLevelOpened,
36
- index: index
37
- }) : /*#__PURE__*/ React.createElement(ItemArrowRight, {
38
- item: item,
36
+ return /*#__PURE__*/ React.createElement(ItemWrapper, null, /*#__PURE__*/ React.createElement(Wrapper, {
37
+ className: focusedClass,
39
38
  onClick: handleClick,
39
+ variant: variant,
40
+ role: "treeitem"
41
+ }, /*#__PURE__*/ React.createElement(Offset, {
42
+ depth: currentItemDepth
43
+ }), arrowPlacement === 'left' && /*#__PURE__*/ React.createElement(DisclosureIconWrapper, {
44
+ visibility: isLeaf ? 'hidden' : 'visible'
45
+ }, /*#__PURE__*/ React.createElement(StyledArrowLeft, {
46
+ size: sizeToIconSize(size, variant),
47
+ color: "inherit",
48
+ className: withArrowInverse
49
+ })), multiselect && /*#__PURE__*/ React.createElement(IconWrapper, {
50
+ variant: variant
51
+ }, /*#__PURE__*/ React.createElement(StyledCheckboxWrapper, {
52
+ onClick: function(e) {
53
+ return e.stopPropagation();
54
+ }
55
+ }, /*#__PURE__*/ React.createElement(StyledCheckbox, {
56
+ disabled: itemDisabled,
57
+ checked: Boolean(checked.get(item.value)),
58
+ indeterminate: checked.get(item.value) === 'indeterminate',
40
59
  onChange: handleChange,
41
- isCurrentLevelOpened: isCurrentLevelOpened,
42
- index: index
43
- }), !isLeaf && isCurrentLevelOpened && /*#__PURE__*/ React.createElement(ChildItems, null, (_item_items = item.items) === null || _item_items === void 0 ? void 0 : _item_items.map(function(item, index) {
60
+ appearance: _checkboxAppearance !== null && _checkboxAppearance !== void 0 ? _checkboxAppearance : 'default'
61
+ }))), !multiselect && arrowPlacement === 'right' && /*#__PURE__*/ React.createElement(IconWrapper, {
62
+ variant: variant
63
+ }, checked.get(item.value) === 'dot' && /*#__PURE__*/ React.createElement(StyledIndicator, {
64
+ size: "s",
65
+ view: "default"
66
+ }), checked.get(item.value) === 'done' && /*#__PURE__*/ React.createElement(StyledIconDone, {
67
+ size: sizeToIconSize(size, variant),
68
+ color: "inherit"
69
+ })), renderItem ? /*#__PURE__*/ React.createElement(StyledText, null, renderItem(item)) : /*#__PURE__*/ React.createElement(StyledWrapper, {
70
+ disabled: itemDisabled
71
+ }, /*#__PURE__*/ React.createElement(StyledCell, {
72
+ contentLeft: contentLeft,
73
+ contentRight: contentRight,
74
+ // TODO: #1548
75
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
76
+ // @ts-ignore
77
+ title: /*#__PURE__*/ React.createElement("span", null, label)
78
+ })), !multiselect && arrowPlacement === 'left' && /*#__PURE__*/ React.createElement(IconWrapper, {
79
+ variant: variant
80
+ }, checked.get(item.value) === 'dot' && /*#__PURE__*/ React.createElement(StyledIndicator, {
81
+ size: "s",
82
+ view: "default"
83
+ }), checked.get(item.value) === 'done' && /*#__PURE__*/ React.createElement(StyledIconDone, {
84
+ size: sizeToIconSize(size, variant),
85
+ color: "inherit"
86
+ })), arrowPlacement === 'right' && /*#__PURE__*/ React.createElement(DisclosureIconWrapper, {
87
+ visibility: isLeaf ? 'hidden' : 'visible'
88
+ }, /*#__PURE__*/ React.createElement(StyledArrowRight, {
89
+ size: sizeToIconSize(size, variant),
90
+ color: "inherit",
91
+ className: withArrowInverse
92
+ }))), !isLeaf && isCurrentLevelOpened && /*#__PURE__*/ React.createElement(ChildItems, null, (_item_items = item.items) === null || _item_items === void 0 ? void 0 : _item_items.map(function(item, index) {
44
93
  return /*#__PURE__*/ React.createElement(Item, {
45
94
  item: item,
46
95
  index: index,
@@ -464,7 +464,9 @@ var selectRoot = function selectRoot(Root) {
464
464
  items: items,
465
465
  listMaxHeight: listMaxHeight,
466
466
  onScroll: virtual ? undefined : handleScroll,
467
- virtual: virtual
467
+ virtual: virtual,
468
+ beforeList: beforeList,
469
+ afterList: afterList
468
470
  }) : /*#__PURE__*/React.createElement(ListWrapper, {
469
471
  ref: listWrapperRef,
470
472
  listWidth: listWidth
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","sources":["../../../src/components/Select/Select.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useState,\n useReducer,\n useMemo,\n useLayoutEffect,\n useRef,\n ChangeEvent,\n ForwardedRef,\n} from 'react';\nimport { RootProps } from 'src/engines';\nimport { isEmpty, safeUseId } from 'src/utils';\nimport { useOutsideClick } from 'src/hooks';\n\nimport type { HintProps } from '../TextField/TextField.types';\n\nimport { useKeyNavigation, getItemByFocused } from './hooks/useKeyboardNavigation';\nimport { initialItemsTransform, updateAncestors, updateDescendants, updateSingleAncestors, getView } from './utils';\nimport { Inner, Target, VirtualList, SelectAll, TreeList } from './ui';\nimport { pathReducer, focusedPathReducer, treePathReducer } from './reducers';\nimport { usePathMaps } from './hooks/usePathMaps';\nimport { Ul, base, ListWrapper } from './Select.styles';\nimport type { MergedSelectProps, RequiredProps } from './Select.types';\nimport type { MergedDropdownNodeTransformed } from './ui/Inner/ui/Item/Item.types';\nimport { FloatingPopover } from './FloatingPopover';\nimport { SelectNative } from './ui/SelectNative/SelectNative';\nimport { Context } from './Select.context';\n\n/**\n * Выпадающий список. Поддерживает выбор одного или нескольких значений.\n */\nexport const selectRoot = (Root: RootProps<HTMLButtonElement, Omit<MergedSelectProps, 'items'>>) =>\n forwardRef<HTMLButtonElement, MergedSelectProps>((props, ref) => {\n const {\n // eslint-disable-block @typescript-eslint/ban-ts-comment\n id,\n value: outerValue,\n onChange: outerOnChange,\n target = 'textfield-like',\n items,\n treeView = false,\n arrowPlacement = 'left',\n placement = 'bottom',\n label,\n labelPlacement,\n placeholder,\n helperText,\n disabled = false,\n readOnly = false,\n view: outerView,\n size,\n listOverflow,\n listHeight,\n listMaxHeight,\n listWidth,\n contentLeft,\n onScrollBottom,\n onScroll,\n chipView,\n variant = 'normal',\n portal,\n renderValue,\n renderItem,\n status,\n onItemSelect,\n separator,\n closeAfterSelect: outerCloseAfterSelect,\n isTargetAmount,\n beforeList,\n afterList,\n zIndex,\n name,\n defaultValue,\n virtual = false,\n onToggle,\n chipType,\n multiselect,\n mode = 'default',\n chipClickArea,\n // @ts-ignore\n _offset,\n\n // Извлекаем пропсы для required и hint, чтобы они не попадали в DOM.\n // @ts-ignore\n required,\n // @ts-ignore\n requiredPlacement,\n // @ts-ignore\n hasRequiredIndicator,\n // @ts-ignore\n optional,\n // @ts-ignore\n hintText,\n // @ts-ignore\n hintTrigger,\n // @ts-ignore\n hintView,\n // @ts-ignore\n hintSize,\n // @ts-ignore\n hintTargetPlacement,\n // @ts-ignore\n hintPlacement,\n // @ts-ignore\n hintWidth,\n // @ts-ignore\n hintHasArrow,\n // @ts-ignore\n hasHint,\n ...rest\n } = props;\n const transformedItems = useMemo(() => initialItemsTransform(items || []), [items]);\n\n // Создаем структуры для быстрой работы с деревом\n const [pathMap, focusedToValueMap, valueToCheckedMap, valueToItemMap, valueToPathMap] = usePathMaps(\n transformedItems,\n );\n\n const [internalValue, setInternalValue] = useState<string | number | Array<string | number>>(\n props.multiselect ? [] : '',\n );\n\n const value = outerValue !== null && outerValue !== undefined ? outerValue : internalValue;\n\n const floatingPopoverRef = useRef<HTMLDivElement>(null);\n\n // Состояния дерева элементов\n const [path, dispatchPath] = useReducer(pathReducer, []);\n const [treePath, dispatchTreePath] = useReducer(treePathReducer, {});\n const [focusedPath, dispatchFocusedPath] = useReducer(focusedPathReducer, []);\n const [checked, setChecked] = useState(valueToCheckedMap);\n\n const isCurrentListOpen = Boolean(path[0]);\n const activeDescendantItemValue = getItemByFocused(focusedPath, focusedToValueMap)?.value.toString() || '';\n const closeAfterSelect = outerCloseAfterSelect ?? !props.multiselect;\n const treeId = safeUseId();\n const listWrapperRef = useRef<HTMLDivElement>(null);\n const view = target === 'textfield-like' && (disabled || readOnly) ? 'default' : getView(status, outerView);\n const rootRef = useRef<HTMLInputElement>(null);\n\n // Собираем объект с пропсами для required и прокидываем их напрямую в компонент Textfield.\n const requiredProps =\n props.target === 'button-like'\n ? undefined\n : ({\n required,\n requiredPlacement,\n hasRequiredIndicator,\n optional,\n } as RequiredProps);\n\n // Собираем объект с пропсами для hint и прокидываем их напрямую в компонент Textfield.\n const hintProps =\n props.target === 'button-like'\n ? undefined\n : ({\n hintText,\n hintTrigger,\n hintView,\n hintSize,\n hintTargetPlacement,\n hintPlacement,\n hintWidth,\n hintHasArrow,\n } as HintProps);\n\n /* Логика работы при клике за пределами выпадающего списка */\n useOutsideClick(() => {\n if (!isCurrentListOpen) {\n return;\n }\n\n handleListToggle(false);\n }, [floatingPopoverRef, listWrapperRef]);\n\n const onChange = (\n newValue?: string | number | Array<string | number> | ChangeEvent<HTMLSelectElement> | null,\n item?: MergedDropdownNodeTransformed | null,\n ) => {\n if (props.onChange) {\n // Условие для отправки если компонент используется без формы.\n if (!props.name && (typeof newValue === 'string' || Array.isArray(newValue))) {\n props.onChange(newValue as any, item || null);\n }\n\n // Условие для отправки если компонент используется с формой.\n // Убрать условие \"typeof ref === 'function'\" в PLASMA 2.0\n if (props.name && typeof newValue === 'object' && !Array.isArray(newValue)) {\n props.onChange(newValue as any, item || null);\n }\n }\n\n // Условие для изменения внутреннего значения (только если newValue строка или массив строк).\n if (typeof newValue === 'string' || Array.isArray(newValue)) {\n setInternalValue(newValue);\n }\n };\n\n const handleListToggle = (opened: boolean) => {\n if (disabled || readOnly) {\n return;\n }\n\n if (opened) {\n dispatchPath({ type: 'opened_first_level' });\n } else {\n dispatchFocusedPath({ type: 'reset' });\n dispatchPath({ type: 'reset' });\n dispatchTreePath({ type: 'reset' });\n\n // Скроллим чипы к левому краю при закрытии компонента\n const el = rootRef?.current?.querySelector('.input-scrollable-wrapper');\n if (multiselect && value.length > 0 && el) {\n el.scrollLeft = 0;\n }\n }\n\n if (onToggle) {\n onToggle(opened);\n }\n };\n\n const handleCheckboxChange = (item: MergedDropdownNodeTransformed) => {\n if (!props.multiselect) {\n return;\n }\n\n const checkedCopy = new Map(checked);\n\n switch (checkedCopy.get(item.value)) {\n // Если чекбокс в состоянии indeterminate\n case 'indeterminate': {\n updateDescendants(item, checkedCopy, true, valueToItemMap);\n break;\n }\n // Если чекбокс в состоянии checked\n case true: {\n updateDescendants(item, checkedCopy, false, valueToItemMap);\n checkedCopy.set(item.value, false);\n break;\n }\n // Если чекбокс в состоянии unchecked\n case false: {\n updateDescendants(item, checkedCopy, true, valueToItemMap);\n checkedCopy.set(item.value, true);\n break;\n }\n default: {\n break;\n }\n }\n\n const newValues: Array<string | number> = [];\n\n valueToItemMap.forEach((item, key) => {\n if (checkedCopy.get(key)) {\n newValues.push(item.value);\n }\n });\n\n // Оставляем values, которых нет в items.\n if (Array.isArray(value)) {\n value.forEach((val: string) => {\n if (!valueToItemMap.has(val)) {\n newValues.push(val);\n }\n });\n }\n\n if (closeAfterSelect) {\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n dispatchTreePath({ type: 'reset' });\n }\n\n if (onChange) {\n onChange(newValues, item);\n }\n };\n\n const handleItemClick = (item: MergedDropdownNodeTransformed, e?: React.MouseEvent<HTMLElement>) => {\n if (!isEmpty(item?.items)) {\n return;\n }\n\n if (props.multiselect) {\n handleCheckboxChange(item);\n return;\n }\n\n if (e) {\n e.stopPropagation();\n }\n\n const isCurrentChecked = checked.get(item.value);\n\n if (closeAfterSelect) {\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n dispatchTreePath({ type: 'reset' });\n }\n\n // Закрываем список, если элемент уже выбран.\n if (mode === 'radio' && isCurrentChecked) {\n return;\n }\n\n if (onChange) {\n onChange(isCurrentChecked ? '' : item.value, item);\n }\n\n if (onItemSelect) {\n onItemSelect(item, e!);\n }\n };\n\n const handlePressDown = (item: MergedDropdownNodeTransformed, e?: React.MouseEvent<HTMLElement>) => {\n if (isEmpty(item.items)) {\n handleItemClick(item, e);\n } else if (props.multiselect) {\n handleCheckboxChange(item);\n }\n };\n\n const handleScroll = (e: React.UIEvent<HTMLElement>) => {\n if (onScroll) {\n onScroll(e);\n }\n\n if (!onScrollBottom) return;\n\n const { target } = e;\n\n if (\n (target as HTMLElement).scrollHeight - (target as HTMLElement).scrollTop ===\n (target as HTMLElement).clientHeight\n ) {\n onScrollBottom(e);\n }\n };\n\n const { onKeyDown } = useKeyNavigation({\n focusedPath,\n dispatchFocusedPath,\n path,\n dispatchPath,\n pathMap,\n focusedToValueMap,\n handleListToggle,\n handlePressDown,\n treePath,\n dispatchTreePath,\n treeView,\n valueToPathMap,\n });\n\n // В данном эффекте мы следим за изменениями value снаружи и вносим коррективы в дерево чекбоксов.\n // Пример: когда юзер очистил value извне, тогда нужно пройтись по элементам и выключить все чекбоксы.\n useLayoutEffect(() => {\n const checkedCopy = new Map(valueToCheckedMap);\n\n checkedCopy.forEach((_, key) => {\n checkedCopy.set(key, false);\n });\n\n if (!isEmpty(value) || typeof value === 'number') {\n if (Array.isArray(value)) {\n value.forEach((val) => {\n // Только если value находится в items, т.к. value может и не существовать в items.\n if (valueToItemMap.has(val)) {\n checkedCopy.set(val, true);\n updateDescendants(valueToItemMap.get(val)!, checkedCopy, true);\n updateAncestors(valueToItemMap.get(val)!, checkedCopy);\n }\n });\n } else {\n // Только если value находится в items, т.к. value может и не существовать в items.\n // eslint-disable-next-line no-lonely-if\n if (valueToItemMap.has(value)) {\n checkedCopy.set(value, 'done');\n updateSingleAncestors(valueToItemMap.get(value)!, checkedCopy, 'dot');\n }\n }\n }\n\n setChecked(checkedCopy);\n\n // В deps мы кладем именно outerValue и internalValue, а не просто value.\n // Т.к. вначале нужно отфильтровать и провалидировать outerValue и результат положить в переменную.\n // А переменную, содержащую сложные типы данных, нельзя помещать в deps.\n }, [outerValue, internalValue, items]);\n\n useLayoutEffect(() => {\n if (defaultValue) {\n setInternalValue(defaultValue as string | string[]);\n }\n }, [defaultValue]);\n\n return (\n <Root\n view={view}\n size={size}\n labelPlacement={labelPlacement}\n chipView={chipView}\n disabled={disabled}\n readOnly={readOnly}\n id={id}\n ref={rootRef}\n {...(rest as any)}\n >\n {name && (\n <SelectNative\n items={valueToItemMap}\n name={name}\n value={internalValue}\n multiselect={props.multiselect}\n onChange={onChange}\n onSetValue={setInternalValue}\n ref={ref as ForwardedRef<HTMLButtonElement>}\n />\n )}\n <Context.Provider\n value={{\n focusedPath,\n checked,\n multiselect: props.multiselect,\n size,\n handleCheckboxChange,\n handleItemClick,\n variant,\n renderItem,\n treeId,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line no-underscore-dangle\n _checkboxAppearance: (rest as any)._checkboxAppearance,\n treePath,\n dispatchTreePath,\n arrowPlacement,\n valueToPathMap,\n }}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isCurrentListOpen}\n onToggle={handleListToggle}\n placement={placement}\n portal={portal}\n listWidth={listWidth}\n offset={_offset}\n target={(referenceRef) => (\n <Target\n ref={name ? null : ref}\n value={value}\n opened={isCurrentListOpen}\n valueToItemMap={valueToItemMap}\n label={label}\n placeholder={placeholder}\n onKeyDown={onKeyDown}\n labelPlacement={labelPlacement}\n size={size}\n contentLeft={contentLeft}\n disabled={disabled}\n readOnly={readOnly}\n renderValue={renderValue}\n selectProps={props}\n inputWrapperRef={referenceRef as React.MutableRefObject<HTMLDivElement>}\n multiselect={props.multiselect}\n view={view}\n helperText={helperText}\n treeId={treeId}\n activeDescendantItemValue={activeDescendantItemValue}\n isTargetAmount={isTargetAmount}\n onChange={onChange}\n chipView={chipView}\n separator={separator}\n requiredProps={requiredProps}\n hintProps={hintProps}\n />\n )}\n zIndex={zIndex}\n isInner={false}\n >\n <Root\n view={view}\n size={size}\n labelPlacement={labelPlacement}\n chipView={chipView}\n disabled={disabled}\n readOnly={readOnly}\n {...(rest as any)}\n >\n {treeView ? (\n <TreeList\n items={items}\n listMaxHeight={listMaxHeight}\n onScroll={virtual ? undefined : handleScroll}\n virtual={virtual}\n />\n ) : (\n <ListWrapper ref={listWrapperRef} listWidth={listWidth}>\n <Ul\n role=\"tree\"\n id={`${treeId}_tree_level_1`}\n aria-multiselectable={Boolean(props.multiselect)}\n listMaxHeight={listMaxHeight || listHeight}\n onScroll={virtual ? undefined : handleScroll}\n virtual={virtual}\n >\n {beforeList}\n\n {props.multiselect && props.selectAllOptions && (\n // TODO: #2004\n <SelectAll selectAllOptions={props.selectAllOptions} variant={variant} />\n )}\n\n {virtual ? (\n <VirtualList\n items={transformedItems}\n listMaxHeight={listMaxHeight || listHeight}\n onScroll={onScroll}\n />\n ) : (\n transformedItems.map((item, index) => (\n <Inner\n key={`${index}/0`}\n item={item}\n currentLevel={0}\n path={path}\n dispatchPath={dispatchPath}\n index={index}\n listWidth={listWidth}\n portal={listWrapperRef}\n />\n ))\n )}\n {afterList}\n </Ul>\n </ListWrapper>\n )}\n </Root>\n </FloatingPopover>\n </Context.Provider>\n </Root>\n );\n });\n\nexport const selectConfig = {\n name: 'Select',\n tag: 'div',\n layout: selectRoot,\n base,\n variations: {},\n defaults: {\n view: 'default',\n size: 'm',\n labelPlacement: 'outer',\n chipView: 'default',\n },\n};\n"],"names":["selectRoot","Root","forwardRef","props","ref","_getItemByFocused","id","outerValue","value","_props$target","target","items","_props$treeView","treeView","_props$arrowPlacement","arrowPlacement","_props$placement","placement","label","labelPlacement","placeholder","helperText","_props$disabled","disabled","_props$readOnly","readOnly","outerView","view","size","listHeight","listMaxHeight","listWidth","contentLeft","onScrollBottom","onScroll","chipView","_props$variant","variant","portal","renderValue","renderItem","status","onItemSelect","separator","outerCloseAfterSelect","closeAfterSelect","isTargetAmount","beforeList","afterList","zIndex","name","defaultValue","_props$virtual","virtual","onToggle","multiselect","_props$mode","mode","_offset","required","requiredPlacement","hasRequiredIndicator","optional","hintText","hintTrigger","hintView","hintSize","hintTargetPlacement","hintPlacement","hintWidth","hintHasArrow","rest","_objectWithoutProperties","_excluded","transformedItems","useMemo","initialItemsTransform","_usePathMaps","usePathMaps","_usePathMaps2","_slicedToArray","pathMap","focusedToValueMap","valueToCheckedMap","valueToItemMap","valueToPathMap","_useState","useState","_useState2","internalValue","setInternalValue","undefined","floatingPopoverRef","useRef","_useReducer","useReducer","pathReducer","_useReducer2","path","dispatchPath","_useReducer3","treePathReducer","_useReducer4","treePath","dispatchTreePath","_useReducer5","focusedPathReducer","_useReducer6","focusedPath","dispatchFocusedPath","_useState3","_useState4","checked","setChecked","isCurrentListOpen","Boolean","activeDescendantItemValue","getItemByFocused","toString","treeId","safeUseId","listWrapperRef","getView","rootRef","requiredProps","hintProps","useOutsideClick","handleListToggle","onChange","newValue","item","Array","isArray","_typeof","opened","type","_rootRef$current","el","current","querySelector","length","scrollLeft","handleCheckboxChange","checkedCopy","Map","get","updateDescendants","set","newValues","forEach","key","push","val","has","handleItemClick","e","isEmpty","stopPropagation","isCurrentChecked","handlePressDown","handleScroll","scrollHeight","scrollTop","clientHeight","_useKeyNavigation","useKeyNavigation","onKeyDown","useLayoutEffect","_","updateAncestors","updateSingleAncestors","React","createElement","_extends","SelectNative","onSetValue","Context","Provider","_checkboxAppearance","FloatingPopover","offset","referenceRef","Target","selectProps","inputWrapperRef","isInner","TreeList","ListWrapper","Ul","role","concat","selectAllOptions","SelectAll","VirtualList","map","index","Inner","currentLevel","selectConfig","tag","layout","base","variations","defaults"],"mappings":"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"}
1
+ {"version":3,"file":"Select.js","sources":["../../../src/components/Select/Select.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useState,\n useReducer,\n useMemo,\n useLayoutEffect,\n useRef,\n ChangeEvent,\n ForwardedRef,\n} from 'react';\nimport { RootProps } from 'src/engines';\nimport { isEmpty, safeUseId } from 'src/utils';\nimport { useOutsideClick } from 'src/hooks';\n\nimport type { HintProps } from '../TextField/TextField.types';\n\nimport { useKeyNavigation, getItemByFocused } from './hooks/useKeyboardNavigation';\nimport { initialItemsTransform, updateAncestors, updateDescendants, updateSingleAncestors, getView } from './utils';\nimport { Inner, Target, VirtualList, SelectAll, TreeList } from './ui';\nimport { pathReducer, focusedPathReducer, treePathReducer } from './reducers';\nimport { usePathMaps } from './hooks/usePathMaps';\nimport { Ul, base, ListWrapper } from './Select.styles';\nimport type { MergedSelectProps, RequiredProps } from './Select.types';\nimport type { MergedDropdownNodeTransformed } from './ui/Inner/ui/Item/Item.types';\nimport { FloatingPopover } from './FloatingPopover';\nimport { SelectNative } from './ui/SelectNative/SelectNative';\nimport { Context } from './Select.context';\n\n/**\n * Выпадающий список. Поддерживает выбор одного или нескольких значений.\n */\nexport const selectRoot = (Root: RootProps<HTMLButtonElement, Omit<MergedSelectProps, 'items'>>) =>\n forwardRef<HTMLButtonElement, MergedSelectProps>((props, ref) => {\n const {\n // eslint-disable-block @typescript-eslint/ban-ts-comment\n id,\n value: outerValue,\n onChange: outerOnChange,\n target = 'textfield-like',\n items,\n treeView = false,\n arrowPlacement = 'left',\n placement = 'bottom',\n label,\n labelPlacement,\n placeholder,\n helperText,\n disabled = false,\n readOnly = false,\n view: outerView,\n size,\n listOverflow,\n listHeight,\n listMaxHeight,\n listWidth,\n contentLeft,\n onScrollBottom,\n onScroll,\n chipView,\n variant = 'normal',\n portal,\n renderValue,\n renderItem,\n status,\n onItemSelect,\n separator,\n closeAfterSelect: outerCloseAfterSelect,\n isTargetAmount,\n beforeList,\n afterList,\n zIndex,\n name,\n defaultValue,\n virtual = false,\n onToggle,\n chipType,\n multiselect,\n mode = 'default',\n chipClickArea,\n // @ts-ignore\n _offset,\n\n // Извлекаем пропсы для required и hint, чтобы они не попадали в DOM.\n // @ts-ignore\n required,\n // @ts-ignore\n requiredPlacement,\n // @ts-ignore\n hasRequiredIndicator,\n // @ts-ignore\n optional,\n // @ts-ignore\n hintText,\n // @ts-ignore\n hintTrigger,\n // @ts-ignore\n hintView,\n // @ts-ignore\n hintSize,\n // @ts-ignore\n hintTargetPlacement,\n // @ts-ignore\n hintPlacement,\n // @ts-ignore\n hintWidth,\n // @ts-ignore\n hintHasArrow,\n // @ts-ignore\n hasHint,\n ...rest\n } = props;\n const transformedItems = useMemo(() => initialItemsTransform(items || []), [items]);\n\n // Создаем структуры для быстрой работы с деревом\n const [pathMap, focusedToValueMap, valueToCheckedMap, valueToItemMap, valueToPathMap] = usePathMaps(\n transformedItems,\n );\n\n const [internalValue, setInternalValue] = useState<string | number | Array<string | number>>(\n props.multiselect ? [] : '',\n );\n\n const value = outerValue !== null && outerValue !== undefined ? outerValue : internalValue;\n\n const floatingPopoverRef = useRef<HTMLDivElement>(null);\n\n // Состояния дерева элементов\n const [path, dispatchPath] = useReducer(pathReducer, []);\n const [treePath, dispatchTreePath] = useReducer(treePathReducer, {});\n const [focusedPath, dispatchFocusedPath] = useReducer(focusedPathReducer, []);\n const [checked, setChecked] = useState(valueToCheckedMap);\n\n const isCurrentListOpen = Boolean(path[0]);\n const activeDescendantItemValue = getItemByFocused(focusedPath, focusedToValueMap)?.value.toString() || '';\n const closeAfterSelect = outerCloseAfterSelect ?? !props.multiselect;\n const treeId = safeUseId();\n const listWrapperRef = useRef<HTMLDivElement>(null);\n const view = target === 'textfield-like' && (disabled || readOnly) ? 'default' : getView(status, outerView);\n const rootRef = useRef<HTMLInputElement>(null);\n\n // Собираем объект с пропсами для required и прокидываем их напрямую в компонент Textfield.\n const requiredProps =\n props.target === 'button-like'\n ? undefined\n : ({\n required,\n requiredPlacement,\n hasRequiredIndicator,\n optional,\n } as RequiredProps);\n\n // Собираем объект с пропсами для hint и прокидываем их напрямую в компонент Textfield.\n const hintProps =\n props.target === 'button-like'\n ? undefined\n : ({\n hintText,\n hintTrigger,\n hintView,\n hintSize,\n hintTargetPlacement,\n hintPlacement,\n hintWidth,\n hintHasArrow,\n } as HintProps);\n\n /* Логика работы при клике за пределами выпадающего списка */\n useOutsideClick(() => {\n if (!isCurrentListOpen) {\n return;\n }\n\n handleListToggle(false);\n }, [floatingPopoverRef, listWrapperRef]);\n\n const onChange = (\n newValue?: string | number | Array<string | number> | ChangeEvent<HTMLSelectElement> | null,\n item?: MergedDropdownNodeTransformed | null,\n ) => {\n if (props.onChange) {\n // Условие для отправки если компонент используется без формы.\n if (!props.name && (typeof newValue === 'string' || Array.isArray(newValue))) {\n props.onChange(newValue as any, item || null);\n }\n\n // Условие для отправки если компонент используется с формой.\n // Убрать условие \"typeof ref === 'function'\" в PLASMA 2.0\n if (props.name && typeof newValue === 'object' && !Array.isArray(newValue)) {\n props.onChange(newValue as any, item || null);\n }\n }\n\n // Условие для изменения внутреннего значения (только если newValue строка или массив строк).\n if (typeof newValue === 'string' || Array.isArray(newValue)) {\n setInternalValue(newValue);\n }\n };\n\n const handleListToggle = (opened: boolean) => {\n if (disabled || readOnly) {\n return;\n }\n\n if (opened) {\n dispatchPath({ type: 'opened_first_level' });\n } else {\n dispatchFocusedPath({ type: 'reset' });\n dispatchPath({ type: 'reset' });\n dispatchTreePath({ type: 'reset' });\n\n // Скроллим чипы к левому краю при закрытии компонента\n const el = rootRef?.current?.querySelector('.input-scrollable-wrapper');\n if (multiselect && value.length > 0 && el) {\n el.scrollLeft = 0;\n }\n }\n\n if (onToggle) {\n onToggle(opened);\n }\n };\n\n const handleCheckboxChange = (item: MergedDropdownNodeTransformed) => {\n if (!props.multiselect) {\n return;\n }\n\n const checkedCopy = new Map(checked);\n\n switch (checkedCopy.get(item.value)) {\n // Если чекбокс в состоянии indeterminate\n case 'indeterminate': {\n updateDescendants(item, checkedCopy, true, valueToItemMap);\n break;\n }\n // Если чекбокс в состоянии checked\n case true: {\n updateDescendants(item, checkedCopy, false, valueToItemMap);\n checkedCopy.set(item.value, false);\n break;\n }\n // Если чекбокс в состоянии unchecked\n case false: {\n updateDescendants(item, checkedCopy, true, valueToItemMap);\n checkedCopy.set(item.value, true);\n break;\n }\n default: {\n break;\n }\n }\n\n const newValues: Array<string | number> = [];\n\n valueToItemMap.forEach((item, key) => {\n if (checkedCopy.get(key)) {\n newValues.push(item.value);\n }\n });\n\n // Оставляем values, которых нет в items.\n if (Array.isArray(value)) {\n value.forEach((val: string) => {\n if (!valueToItemMap.has(val)) {\n newValues.push(val);\n }\n });\n }\n\n if (closeAfterSelect) {\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n dispatchTreePath({ type: 'reset' });\n }\n\n if (onChange) {\n onChange(newValues, item);\n }\n };\n\n const handleItemClick = (item: MergedDropdownNodeTransformed, e?: React.MouseEvent<HTMLElement>) => {\n if (!isEmpty(item?.items)) {\n return;\n }\n\n if (props.multiselect) {\n handleCheckboxChange(item);\n return;\n }\n\n if (e) {\n e.stopPropagation();\n }\n\n const isCurrentChecked = checked.get(item.value);\n\n if (closeAfterSelect) {\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n dispatchTreePath({ type: 'reset' });\n }\n\n // Закрываем список, если элемент уже выбран.\n if (mode === 'radio' && isCurrentChecked) {\n return;\n }\n\n if (onChange) {\n onChange(isCurrentChecked ? '' : item.value, item);\n }\n\n if (onItemSelect) {\n onItemSelect(item, e!);\n }\n };\n\n const handlePressDown = (item: MergedDropdownNodeTransformed, e?: React.MouseEvent<HTMLElement>) => {\n if (isEmpty(item.items)) {\n handleItemClick(item, e);\n } else if (props.multiselect) {\n handleCheckboxChange(item);\n }\n };\n\n const handleScroll = (e: React.UIEvent<HTMLElement>) => {\n if (onScroll) {\n onScroll(e);\n }\n\n if (!onScrollBottom) return;\n\n const { target } = e;\n\n if (\n (target as HTMLElement).scrollHeight - (target as HTMLElement).scrollTop ===\n (target as HTMLElement).clientHeight\n ) {\n onScrollBottom(e);\n }\n };\n\n const { onKeyDown } = useKeyNavigation({\n focusedPath,\n dispatchFocusedPath,\n path,\n dispatchPath,\n pathMap,\n focusedToValueMap,\n handleListToggle,\n handlePressDown,\n treePath,\n dispatchTreePath,\n treeView,\n valueToPathMap,\n });\n\n // В данном эффекте мы следим за изменениями value снаружи и вносим коррективы в дерево чекбоксов.\n // Пример: когда юзер очистил value извне, тогда нужно пройтись по элементам и выключить все чекбоксы.\n useLayoutEffect(() => {\n const checkedCopy = new Map(valueToCheckedMap);\n\n checkedCopy.forEach((_, key) => {\n checkedCopy.set(key, false);\n });\n\n if (!isEmpty(value) || typeof value === 'number') {\n if (Array.isArray(value)) {\n value.forEach((val) => {\n // Только если value находится в items, т.к. value может и не существовать в items.\n if (valueToItemMap.has(val)) {\n checkedCopy.set(val, true);\n updateDescendants(valueToItemMap.get(val)!, checkedCopy, true);\n updateAncestors(valueToItemMap.get(val)!, checkedCopy);\n }\n });\n } else {\n // Только если value находится в items, т.к. value может и не существовать в items.\n // eslint-disable-next-line no-lonely-if\n if (valueToItemMap.has(value)) {\n checkedCopy.set(value, 'done');\n updateSingleAncestors(valueToItemMap.get(value)!, checkedCopy, 'dot');\n }\n }\n }\n\n setChecked(checkedCopy);\n\n // В deps мы кладем именно outerValue и internalValue, а не просто value.\n // Т.к. вначале нужно отфильтровать и провалидировать outerValue и результат положить в переменную.\n // А переменную, содержащую сложные типы данных, нельзя помещать в deps.\n }, [outerValue, internalValue, items]);\n\n useLayoutEffect(() => {\n if (defaultValue) {\n setInternalValue(defaultValue as string | string[]);\n }\n }, [defaultValue]);\n\n return (\n <Root\n view={view}\n size={size}\n labelPlacement={labelPlacement}\n chipView={chipView}\n disabled={disabled}\n readOnly={readOnly}\n id={id}\n ref={rootRef}\n {...(rest as any)}\n >\n {name && (\n <SelectNative\n items={valueToItemMap}\n name={name}\n value={internalValue}\n multiselect={props.multiselect}\n onChange={onChange}\n onSetValue={setInternalValue}\n ref={ref as ForwardedRef<HTMLButtonElement>}\n />\n )}\n <Context.Provider\n value={{\n focusedPath,\n checked,\n multiselect: props.multiselect,\n size,\n handleCheckboxChange,\n handleItemClick,\n variant,\n renderItem,\n treeId,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line no-underscore-dangle\n _checkboxAppearance: (rest as any)._checkboxAppearance,\n treePath,\n dispatchTreePath,\n arrowPlacement,\n valueToPathMap,\n }}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isCurrentListOpen}\n onToggle={handleListToggle}\n placement={placement}\n portal={portal}\n listWidth={listWidth}\n offset={_offset}\n target={(referenceRef) => (\n <Target\n ref={name ? null : ref}\n value={value}\n opened={isCurrentListOpen}\n valueToItemMap={valueToItemMap}\n label={label}\n placeholder={placeholder}\n onKeyDown={onKeyDown}\n labelPlacement={labelPlacement}\n size={size}\n contentLeft={contentLeft}\n disabled={disabled}\n readOnly={readOnly}\n renderValue={renderValue}\n selectProps={props}\n inputWrapperRef={referenceRef as React.MutableRefObject<HTMLDivElement>}\n multiselect={props.multiselect}\n view={view}\n helperText={helperText}\n treeId={treeId}\n activeDescendantItemValue={activeDescendantItemValue}\n isTargetAmount={isTargetAmount}\n onChange={onChange}\n chipView={chipView}\n separator={separator}\n requiredProps={requiredProps}\n hintProps={hintProps}\n />\n )}\n zIndex={zIndex}\n isInner={false}\n >\n <Root\n view={view}\n size={size}\n labelPlacement={labelPlacement}\n chipView={chipView}\n disabled={disabled}\n readOnly={readOnly}\n {...(rest as any)}\n >\n {treeView ? (\n <TreeList\n items={items}\n listMaxHeight={listMaxHeight}\n onScroll={virtual ? undefined : handleScroll}\n virtual={virtual}\n beforeList={beforeList}\n afterList={afterList}\n />\n ) : (\n <ListWrapper ref={listWrapperRef} listWidth={listWidth}>\n <Ul\n role=\"tree\"\n id={`${treeId}_tree_level_1`}\n aria-multiselectable={Boolean(props.multiselect)}\n listMaxHeight={listMaxHeight || listHeight}\n onScroll={virtual ? undefined : handleScroll}\n virtual={virtual}\n >\n {beforeList}\n\n {props.multiselect && props.selectAllOptions && (\n // TODO: #2004\n <SelectAll selectAllOptions={props.selectAllOptions} variant={variant} />\n )}\n\n {virtual ? (\n <VirtualList\n items={transformedItems}\n listMaxHeight={listMaxHeight || listHeight}\n onScroll={onScroll}\n />\n ) : (\n transformedItems.map((item, index) => (\n <Inner\n key={`${index}/0`}\n item={item}\n currentLevel={0}\n path={path}\n dispatchPath={dispatchPath}\n index={index}\n listWidth={listWidth}\n portal={listWrapperRef}\n />\n ))\n )}\n {afterList}\n </Ul>\n </ListWrapper>\n )}\n </Root>\n </FloatingPopover>\n </Context.Provider>\n </Root>\n );\n });\n\nexport const selectConfig = {\n name: 'Select',\n tag: 'div',\n layout: selectRoot,\n base,\n variations: {},\n defaults: {\n view: 'default',\n size: 'm',\n labelPlacement: 'outer',\n chipView: 'default',\n },\n};\n"],"names":["selectRoot","Root","forwardRef","props","ref","_getItemByFocused","id","outerValue","value","_props$target","target","items","_props$treeView","treeView","_props$arrowPlacement","arrowPlacement","_props$placement","placement","label","labelPlacement","placeholder","helperText","_props$disabled","disabled","_props$readOnly","readOnly","outerView","view","size","listHeight","listMaxHeight","listWidth","contentLeft","onScrollBottom","onScroll","chipView","_props$variant","variant","portal","renderValue","renderItem","status","onItemSelect","separator","outerCloseAfterSelect","closeAfterSelect","isTargetAmount","beforeList","afterList","zIndex","name","defaultValue","_props$virtual","virtual","onToggle","multiselect","_props$mode","mode","_offset","required","requiredPlacement","hasRequiredIndicator","optional","hintText","hintTrigger","hintView","hintSize","hintTargetPlacement","hintPlacement","hintWidth","hintHasArrow","rest","_objectWithoutProperties","_excluded","transformedItems","useMemo","initialItemsTransform","_usePathMaps","usePathMaps","_usePathMaps2","_slicedToArray","pathMap","focusedToValueMap","valueToCheckedMap","valueToItemMap","valueToPathMap","_useState","useState","_useState2","internalValue","setInternalValue","undefined","floatingPopoverRef","useRef","_useReducer","useReducer","pathReducer","_useReducer2","path","dispatchPath","_useReducer3","treePathReducer","_useReducer4","treePath","dispatchTreePath","_useReducer5","focusedPathReducer","_useReducer6","focusedPath","dispatchFocusedPath","_useState3","_useState4","checked","setChecked","isCurrentListOpen","Boolean","activeDescendantItemValue","getItemByFocused","toString","treeId","safeUseId","listWrapperRef","getView","rootRef","requiredProps","hintProps","useOutsideClick","handleListToggle","onChange","newValue","item","Array","isArray","_typeof","opened","type","_rootRef$current","el","current","querySelector","length","scrollLeft","handleCheckboxChange","checkedCopy","Map","get","updateDescendants","set","newValues","forEach","key","push","val","has","handleItemClick","e","isEmpty","stopPropagation","isCurrentChecked","handlePressDown","handleScroll","scrollHeight","scrollTop","clientHeight","_useKeyNavigation","useKeyNavigation","onKeyDown","useLayoutEffect","_","updateAncestors","updateSingleAncestors","React","createElement","_extends","SelectNative","onSetValue","Context","Provider","_checkboxAppearance","FloatingPopover","offset","referenceRef","Target","selectProps","inputWrapperRef","isInner","TreeList","ListWrapper","Ul","role","concat","selectAllOptions","SelectAll","VirtualList","map","index","Inner","currentLevel","selectConfig","tag","layout","base","variations","defaults"],"mappings":"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"}
@@ -8,31 +8,37 @@ var TreeList = function TreeList(_ref) {
8
8
  var items = _ref.items,
9
9
  listMaxHeight = _ref.listMaxHeight,
10
10
  onScroll = _ref.onScroll,
11
- virtual = _ref.virtual;
11
+ virtual = _ref.virtual,
12
+ beforeList = _ref.beforeList,
13
+ afterList = _ref.afterList;
12
14
  if (virtual) {
13
15
  return /*#__PURE__*/React.createElement(VirtualTreeList, {
14
16
  items: items,
15
17
  listMaxHeight: listMaxHeight,
16
- onScroll: onScroll
18
+ onScroll: onScroll,
19
+ beforeList: beforeList,
20
+ afterList: afterList
17
21
  });
18
22
  }
19
23
  return /*#__PURE__*/React.createElement(ListWrapper, null, /*#__PURE__*/React.createElement(ScrollContainer, {
20
24
  listMaxHeight: listMaxHeight,
21
25
  onScroll: onScroll
22
- }, items === null || items === void 0 ? void 0 : items.map(function (item, index) {
26
+ }, beforeList, items === null || items === void 0 ? void 0 : items.map(function (item, index) {
23
27
  return /*#__PURE__*/React.createElement(Item, {
24
28
  key: index,
25
29
  index: index,
26
30
  item: item
27
31
  });
28
- })));
32
+ }), afterList));
29
33
  };
30
34
  var VirtualTreeList = function VirtualTreeList(_ref2) {
31
35
  var _virtualItems$0$start, _virtualItems$;
32
36
  var _ref2$items = _ref2.items,
33
37
  items = _ref2$items === void 0 ? [] : _ref2$items,
34
38
  listMaxHeight = _ref2.listMaxHeight,
35
- onScroll = _ref2.onScroll;
39
+ onScroll = _ref2.onScroll,
40
+ beforeList = _ref2.beforeList,
41
+ afterList = _ref2.afterList;
36
42
  var parentRef = useRef(null);
37
43
  var virtualizer = useVirtualizer({
38
44
  count: items.length,
@@ -44,7 +50,7 @@ var VirtualTreeList = function VirtualTreeList(_ref2) {
44
50
  }
45
51
  });
46
52
  var virtualItems = virtualizer.getVirtualItems();
47
- return /*#__PURE__*/React.createElement(ListWrapper, null, /*#__PURE__*/React.createElement("div", {
53
+ return /*#__PURE__*/React.createElement(ListWrapper, null, beforeList, /*#__PURE__*/React.createElement("div", {
48
54
  ref: parentRef,
49
55
  style: {
50
56
  height: 'auto',
@@ -75,7 +81,7 @@ var VirtualTreeList = function VirtualTreeList(_ref2) {
75
81
  item: items[virtualRow.index],
76
82
  index: virtualRow.index
77
83
  }));
78
- })))));
84
+ })))), afterList);
79
85
  };
80
86
 
81
87
  export { TreeList };
@@ -1 +1 @@
1
- {"version":3,"file":"TreeList.js","sources":["../../../../../src/components/Select/ui/TreeList/TreeList.tsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport { useVirtualizer } from '@tanstack/react-virtual';\nimport { getHeightAsNumber } from 'src/utils';\n\nimport { Props } from './TreeList.types';\nimport { Item } from './ui/Item/Item';\nimport { ListWrapper, ScrollContainer } from './TreeList.styles';\n\nexport const TreeList: React.FC<Props> = ({ items, listMaxHeight, onScroll, virtual }) => {\n if (virtual) {\n return <VirtualTreeList items={items} listMaxHeight={listMaxHeight} onScroll={onScroll} />;\n }\n\n return (\n <ListWrapper>\n <ScrollContainer listMaxHeight={listMaxHeight} onScroll={onScroll}>\n {items?.map((item, index) => {\n return <Item key={index} index={index} item={item} />;\n })}\n </ScrollContainer>\n </ListWrapper>\n );\n};\n\nconst VirtualTreeList: React.FC<Props> = ({ items = [], listMaxHeight, onScroll }) => {\n const parentRef = useRef<HTMLDivElement>(null);\n\n const virtualizer = useVirtualizer({\n count: items.length,\n getScrollElement: () => parentRef.current,\n estimateSize: () => 48,\n });\n\n const virtualItems = virtualizer.getVirtualItems();\n\n return (\n <ListWrapper>\n <div\n ref={parentRef}\n style={{\n height: 'auto',\n maxHeight: getHeightAsNumber(listMaxHeight),\n overflowY: 'auto',\n }}\n onScroll={onScroll}\n >\n <div\n style={{\n height: virtualizer.getTotalSize(),\n width: '100%',\n position: 'relative',\n }}\n >\n <div\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n transform: `translateY(${virtualItems[0]?.start ?? 0}px)`,\n }}\n >\n {virtualItems.map((virtualRow) => (\n <div\n key={virtualRow.key as React.Key}\n data-index={virtualRow.index}\n ref={virtualizer.measureElement}\n >\n <Item item={items[virtualRow.index]} index={virtualRow.index} />\n </div>\n ))}\n </div>\n </div>\n </div>\n </ListWrapper>\n );\n};\n"],"names":["TreeList","_ref","items","listMaxHeight","onScroll","virtual","React","createElement","VirtualTreeList","ListWrapper","ScrollContainer","map","item","index","Item","key","_ref2","_virtualItems$0$start","_virtualItems$","_ref2$items","parentRef","useRef","virtualizer","useVirtualizer","count","length","getScrollElement","current","estimateSize","virtualItems","getVirtualItems","ref","style","height","maxHeight","getHeightAsNumber","overflowY","getTotalSize","width","position","top","left","transform","concat","start","virtualRow","measureElement"],"mappings":"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"}
1
+ {"version":3,"file":"TreeList.js","sources":["../../../../../src/components/Select/ui/TreeList/TreeList.tsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport { useVirtualizer } from '@tanstack/react-virtual';\nimport { getHeightAsNumber } from 'src/utils';\n\nimport { Props } from './TreeList.types';\nimport { Item } from './ui/Item/Item';\nimport { ListWrapper, ScrollContainer } from './TreeList.styles';\n\nexport const TreeList: React.FC<Props> = ({ items, listMaxHeight, onScroll, virtual, beforeList, afterList }) => {\n if (virtual) {\n return (\n <VirtualTreeList\n items={items}\n listMaxHeight={listMaxHeight}\n onScroll={onScroll}\n beforeList={beforeList}\n afterList={afterList}\n />\n );\n }\n\n return (\n <ListWrapper>\n <ScrollContainer listMaxHeight={listMaxHeight} onScroll={onScroll}>\n {beforeList}\n\n {items?.map((item, index) => {\n return <Item key={index} index={index} item={item} />;\n })}\n\n {afterList}\n </ScrollContainer>\n </ListWrapper>\n );\n};\n\nconst VirtualTreeList: React.FC<Props> = ({ items = [], listMaxHeight, onScroll, beforeList, afterList }) => {\n const parentRef = useRef<HTMLDivElement>(null);\n\n const virtualizer = useVirtualizer({\n count: items.length,\n getScrollElement: () => parentRef.current,\n estimateSize: () => 48,\n });\n\n const virtualItems = virtualizer.getVirtualItems();\n\n return (\n <ListWrapper>\n {beforeList}\n\n <div\n ref={parentRef}\n style={{\n height: 'auto',\n maxHeight: getHeightAsNumber(listMaxHeight),\n overflowY: 'auto',\n }}\n onScroll={onScroll}\n >\n <div\n style={{\n height: virtualizer.getTotalSize(),\n width: '100%',\n position: 'relative',\n }}\n >\n <div\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n transform: `translateY(${virtualItems[0]?.start ?? 0}px)`,\n }}\n >\n {virtualItems.map((virtualRow) => (\n <div\n key={virtualRow.key as React.Key}\n data-index={virtualRow.index}\n ref={virtualizer.measureElement}\n >\n <Item item={items[virtualRow.index]} index={virtualRow.index} />\n </div>\n ))}\n </div>\n </div>\n </div>\n\n {afterList}\n </ListWrapper>\n );\n};\n"],"names":["TreeList","_ref","items","listMaxHeight","onScroll","virtual","beforeList","afterList","React","createElement","VirtualTreeList","ListWrapper","ScrollContainer","map","item","index","Item","key","_ref2","_virtualItems$0$start","_virtualItems$","_ref2$items","parentRef","useRef","virtualizer","useVirtualizer","count","length","getScrollElement","current","estimateSize","virtualItems","getVirtualItems","ref","style","height","maxHeight","getHeightAsNumber","overflowY","getTotalSize","width","position","top","left","transform","concat","start","virtualRow","measureElement"],"mappings":"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"}