@snack-uikit/list 0.18.0 → 0.18.1-preview-ba12ca94.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 (227) hide show
  1. package/dist/cjs/components/Items/AccordionItem/AccordionItem.js +78 -0
  2. package/dist/cjs/components/Items/AccordionItem/index.js +25 -0
  3. package/dist/cjs/components/Items/BaseItem/BaseItem.js +199 -0
  4. package/dist/cjs/components/Items/BaseItem/constants.js +11 -0
  5. package/dist/cjs/components/Items/BaseItem/index.js +25 -0
  6. package/dist/cjs/components/Items/GroupItem/GroupItem.js +27 -0
  7. package/dist/cjs/components/Items/GroupItem/index.js +25 -0
  8. package/dist/cjs/components/Items/GroupSelectItem/GroupSelectItem.js +46 -0
  9. package/dist/cjs/components/Items/GroupSelectItem/index.js +25 -0
  10. package/dist/cjs/components/Items/NextListItem/NextListItem.js +149 -0
  11. package/dist/cjs/components/Items/NextListItem/constants.js +7 -0
  12. package/dist/cjs/components/Items/NextListItem/index.js +25 -0
  13. package/dist/cjs/components/Items/PinGroupItem/PinGroupItem.js +59 -0
  14. package/dist/cjs/components/Items/PinGroupItem/index.js +25 -0
  15. package/dist/cjs/components/Items/SearchItem/SearchItem.js +50 -0
  16. package/dist/cjs/components/Items/SearchItem/index.js +25 -0
  17. package/dist/cjs/components/Items/hooks.js +133 -0
  18. package/dist/cjs/components/Items/index.js +29 -0
  19. package/dist/cjs/components/Items/types.js +5 -0
  20. package/dist/cjs/components/Items/utils.js +206 -0
  21. package/dist/cjs/components/Lists/Droplist/DropList.js +264 -0
  22. package/dist/cjs/components/Lists/Droplist/index.js +25 -0
  23. package/dist/cjs/components/Lists/List/List.js +199 -0
  24. package/dist/cjs/components/Lists/List/index.js +25 -0
  25. package/dist/cjs/components/Lists/ListPrivate/ListPrivate.js +142 -0
  26. package/dist/cjs/components/Lists/ListPrivate/index.js +25 -0
  27. package/dist/cjs/components/Lists/contexts/CollapseProvider.js +13 -0
  28. package/dist/cjs/components/Lists/contexts/FocusListProvider.js +12 -0
  29. package/dist/cjs/components/Lists/contexts/NewListProvider.js +51 -0
  30. package/dist/cjs/components/Lists/contexts/OpenListProvider.js +13 -0
  31. package/dist/cjs/components/Lists/contexts/SelectionProvider.js +133 -0
  32. package/dist/cjs/components/Lists/contexts/index.js +30 -0
  33. package/dist/cjs/components/Lists/hooks.js +121 -0
  34. package/dist/cjs/components/Lists/index.js +52 -0
  35. package/dist/cjs/components/Lists/types.js +5 -0
  36. package/dist/cjs/components/index.js +64 -0
  37. package/dist/cjs/helperComponents/CollapseBlockPrivate/CollapseBlockPrivate.js +49 -0
  38. package/dist/cjs/helperComponents/CollapseBlockPrivate/index.js +25 -0
  39. package/dist/cjs/helperComponents/HiddenTabButton/HiddenTabButton.js +40 -0
  40. package/dist/cjs/helperComponents/HiddenTabButton/index.js +25 -0
  41. package/dist/cjs/helperComponents/ItemContent/ItemContent.js +74 -0
  42. package/dist/cjs/helperComponents/ItemContent/index.js +25 -0
  43. package/dist/cjs/helperComponents/ListEmptyState/ListEmptyState.js +56 -0
  44. package/dist/cjs/helperComponents/ListEmptyState/hooks.js +45 -0
  45. package/dist/cjs/helperComponents/ListEmptyState/index.js +33 -0
  46. package/dist/cjs/helperComponents/Separator/Separator.js +97 -0
  47. package/dist/cjs/helperComponents/Separator/constants.js +11 -0
  48. package/dist/cjs/helperComponents/Separator/index.js +25 -0
  49. package/dist/cjs/helperComponents/index.js +29 -0
  50. package/dist/cjs/index.js +34 -0
  51. package/dist/cjs/types.js +5 -0
  52. package/dist/esm/components/Items/AccordionItem/AccordionItem.d.ts +4 -0
  53. package/dist/esm/components/Items/AccordionItem/index.js +1 -0
  54. package/dist/esm/components/Items/BaseItem/BaseItem.d.ts +12 -0
  55. package/dist/esm/components/Items/BaseItem/constants.d.ts +2 -0
  56. package/dist/esm/components/Items/BaseItem/index.js +1 -0
  57. package/dist/esm/components/Items/BaseItem/styles.module.css +112 -0
  58. package/dist/esm/components/Items/GroupItem/GroupItem.d.ts +6 -0
  59. package/dist/esm/components/Items/GroupItem/index.js +1 -0
  60. package/dist/esm/components/Items/GroupSelectItem/GroupSelectItem.d.ts +4 -0
  61. package/dist/esm/components/Items/GroupSelectItem/index.js +1 -0
  62. package/dist/esm/components/Items/NextListItem/NextListItem.d.ts +6 -0
  63. package/dist/esm/components/Items/NextListItem/constants.d.ts +2 -0
  64. package/dist/esm/components/Items/NextListItem/index.js +1 -0
  65. package/dist/esm/components/Items/PinGroupItem/PinGroupItem.d.ts +7 -0
  66. package/dist/esm/components/Items/PinGroupItem/index.js +1 -0
  67. package/dist/esm/components/Items/PinGroupItem/styles.module.css +43 -0
  68. package/dist/esm/components/Items/SearchItem/SearchItem.d.ts +7 -0
  69. package/dist/esm/components/Items/SearchItem/index.js +1 -0
  70. package/dist/esm/components/Items/SearchItem/styles.module.css +11 -0
  71. package/dist/esm/components/Items/hooks.d.ts +23 -0
  72. package/dist/esm/components/Items/index.js +5 -0
  73. package/dist/esm/components/Items/styles.module.css +87 -0
  74. package/dist/esm/components/Items/types.d.ts +118 -0
  75. package/dist/esm/components/Items/utils.d.ts +35 -0
  76. package/dist/esm/components/Lists/Droplist/DropList.d.ts +2 -0
  77. package/dist/esm/components/Lists/Droplist/index.js +1 -0
  78. package/dist/esm/components/Lists/List/List.d.ts +16 -0
  79. package/dist/esm/components/Lists/List/index.js +1 -0
  80. package/dist/esm/components/Lists/ListPrivate/ListPrivate.d.ts +13 -0
  81. package/dist/esm/components/Lists/ListPrivate/index.js +1 -0
  82. package/dist/esm/components/Lists/ListPrivate/styles.module.css +51 -0
  83. package/dist/esm/components/Lists/contexts/CollapseProvider.d.ts +17 -0
  84. package/dist/esm/components/Lists/contexts/FocusListProvider.d.ts +9 -0
  85. package/dist/esm/components/Lists/contexts/NewListProvider.d.ts +33 -0
  86. package/dist/esm/components/Lists/contexts/OpenListProvider.d.ts +6 -0
  87. package/dist/esm/components/Lists/contexts/SelectionProvider.d.ts +70 -0
  88. package/dist/esm/components/Lists/contexts/index.js +6 -0
  89. package/dist/esm/components/Lists/hooks.d.ts +14 -0
  90. package/dist/esm/components/Lists/index.d.ts +5 -0
  91. package/dist/esm/components/Lists/styles.module.css +59 -0
  92. package/dist/esm/components/Lists/types.d.ts +78 -0
  93. package/dist/esm/components/index.d.ts +4 -0
  94. package/dist/esm/helperComponents/CollapseBlockPrivate/CollapseBlockPrivate.d.ts +9 -0
  95. package/dist/esm/helperComponents/CollapseBlockPrivate/index.js +1 -0
  96. package/dist/esm/helperComponents/CollapseBlockPrivate/styles.module.css +38 -0
  97. package/dist/esm/helperComponents/HiddenTabButton/HiddenTabButton.d.ts +7 -0
  98. package/dist/esm/helperComponents/HiddenTabButton/index.js +1 -0
  99. package/dist/esm/helperComponents/HiddenTabButton/styles.module.css +9 -0
  100. package/dist/esm/helperComponents/ItemContent/ItemContent.d.ts +17 -0
  101. package/dist/esm/helperComponents/ItemContent/index.js +1 -0
  102. package/dist/esm/helperComponents/ItemContent/styles.module.css +122 -0
  103. package/dist/esm/helperComponents/ListEmptyState/ListEmptyState.d.ts +14 -0
  104. package/dist/esm/helperComponents/ListEmptyState/hooks.d.ts +10 -0
  105. package/dist/esm/helperComponents/ListEmptyState/index.js +2 -0
  106. package/dist/esm/helperComponents/ListEmptyState/styles.module.css +8 -0
  107. package/dist/esm/helperComponents/Separator/Separator.d.ts +17 -0
  108. package/dist/esm/helperComponents/Separator/constants.d.ts +2 -0
  109. package/dist/esm/helperComponents/Separator/index.js +1 -0
  110. package/dist/esm/helperComponents/Separator/styles.module.css +141 -0
  111. package/dist/esm/helperComponents/index.js +5 -0
  112. package/dist/esm/index.d.ts +4 -0
  113. package/dist/esm/types.d.ts +20 -0
  114. package/package.json +20 -16
  115. /package/dist/{components → cjs/components}/Items/AccordionItem/AccordionItem.d.ts +0 -0
  116. /package/dist/{components → cjs/components}/Items/AccordionItem/index.d.ts +0 -0
  117. /package/dist/{components → cjs/components}/Items/BaseItem/BaseItem.d.ts +0 -0
  118. /package/dist/{components → cjs/components}/Items/BaseItem/constants.d.ts +0 -0
  119. /package/dist/{components → cjs/components}/Items/BaseItem/index.d.ts +0 -0
  120. /package/dist/{components → cjs/components}/Items/BaseItem/styles.module.css +0 -0
  121. /package/dist/{components → cjs/components}/Items/GroupItem/GroupItem.d.ts +0 -0
  122. /package/dist/{components → cjs/components}/Items/GroupItem/index.d.ts +0 -0
  123. /package/dist/{components → cjs/components}/Items/GroupSelectItem/GroupSelectItem.d.ts +0 -0
  124. /package/dist/{components → cjs/components}/Items/GroupSelectItem/index.d.ts +0 -0
  125. /package/dist/{components → cjs/components}/Items/NextListItem/NextListItem.d.ts +0 -0
  126. /package/dist/{components → cjs/components}/Items/NextListItem/constants.d.ts +0 -0
  127. /package/dist/{components → cjs/components}/Items/NextListItem/index.d.ts +0 -0
  128. /package/dist/{components → cjs/components}/Items/PinGroupItem/PinGroupItem.d.ts +0 -0
  129. /package/dist/{components → cjs/components}/Items/PinGroupItem/index.d.ts +0 -0
  130. /package/dist/{components → cjs/components}/Items/PinGroupItem/styles.module.css +0 -0
  131. /package/dist/{components → cjs/components}/Items/SearchItem/SearchItem.d.ts +0 -0
  132. /package/dist/{components → cjs/components}/Items/SearchItem/index.d.ts +0 -0
  133. /package/dist/{components → cjs/components}/Items/SearchItem/styles.module.css +0 -0
  134. /package/dist/{components → cjs/components}/Items/hooks.d.ts +0 -0
  135. /package/dist/{components → cjs/components}/Items/index.d.ts +0 -0
  136. /package/dist/{components → cjs/components}/Items/styles.module.css +0 -0
  137. /package/dist/{components → cjs/components}/Items/types.d.ts +0 -0
  138. /package/dist/{components → cjs/components}/Items/utils.d.ts +0 -0
  139. /package/dist/{components → cjs/components}/Lists/Droplist/DropList.d.ts +0 -0
  140. /package/dist/{components → cjs/components}/Lists/Droplist/index.d.ts +0 -0
  141. /package/dist/{components → cjs/components}/Lists/List/List.d.ts +0 -0
  142. /package/dist/{components → cjs/components}/Lists/List/index.d.ts +0 -0
  143. /package/dist/{components → cjs/components}/Lists/ListPrivate/ListPrivate.d.ts +0 -0
  144. /package/dist/{components → cjs/components}/Lists/ListPrivate/index.d.ts +0 -0
  145. /package/dist/{components → cjs/components}/Lists/ListPrivate/styles.module.css +0 -0
  146. /package/dist/{components → cjs/components}/Lists/contexts/CollapseProvider.d.ts +0 -0
  147. /package/dist/{components → cjs/components}/Lists/contexts/FocusListProvider.d.ts +0 -0
  148. /package/dist/{components → cjs/components}/Lists/contexts/NewListProvider.d.ts +0 -0
  149. /package/dist/{components → cjs/components}/Lists/contexts/OpenListProvider.d.ts +0 -0
  150. /package/dist/{components → cjs/components}/Lists/contexts/SelectionProvider.d.ts +0 -0
  151. /package/dist/{components → cjs/components}/Lists/contexts/index.d.ts +0 -0
  152. /package/dist/{components → cjs/components}/Lists/hooks.d.ts +0 -0
  153. /package/dist/{components → cjs/components}/Lists/index.d.ts +0 -0
  154. /package/dist/{components → cjs/components}/Lists/styles.module.css +0 -0
  155. /package/dist/{components → cjs/components}/Lists/types.d.ts +0 -0
  156. /package/dist/{components → cjs/components}/index.d.ts +0 -0
  157. /package/dist/{helperComponents → cjs/helperComponents}/CollapseBlockPrivate/CollapseBlockPrivate.d.ts +0 -0
  158. /package/dist/{helperComponents → cjs/helperComponents}/CollapseBlockPrivate/index.d.ts +0 -0
  159. /package/dist/{helperComponents → cjs/helperComponents}/CollapseBlockPrivate/styles.module.css +0 -0
  160. /package/dist/{helperComponents → cjs/helperComponents}/HiddenTabButton/HiddenTabButton.d.ts +0 -0
  161. /package/dist/{helperComponents → cjs/helperComponents}/HiddenTabButton/index.d.ts +0 -0
  162. /package/dist/{helperComponents → cjs/helperComponents}/HiddenTabButton/styles.module.css +0 -0
  163. /package/dist/{helperComponents → cjs/helperComponents}/ItemContent/ItemContent.d.ts +0 -0
  164. /package/dist/{helperComponents → cjs/helperComponents}/ItemContent/index.d.ts +0 -0
  165. /package/dist/{helperComponents → cjs/helperComponents}/ItemContent/styles.module.css +0 -0
  166. /package/dist/{helperComponents → cjs/helperComponents}/ListEmptyState/ListEmptyState.d.ts +0 -0
  167. /package/dist/{helperComponents → cjs/helperComponents}/ListEmptyState/hooks.d.ts +0 -0
  168. /package/dist/{helperComponents → cjs/helperComponents}/ListEmptyState/index.d.ts +0 -0
  169. /package/dist/{helperComponents → cjs/helperComponents}/ListEmptyState/styles.module.css +0 -0
  170. /package/dist/{helperComponents → cjs/helperComponents}/Separator/Separator.d.ts +0 -0
  171. /package/dist/{helperComponents → cjs/helperComponents}/Separator/constants.d.ts +0 -0
  172. /package/dist/{helperComponents → cjs/helperComponents}/Separator/index.d.ts +0 -0
  173. /package/dist/{helperComponents → cjs/helperComponents}/Separator/styles.module.css +0 -0
  174. /package/dist/{helperComponents → cjs/helperComponents}/index.d.ts +0 -0
  175. /package/dist/{index.d.ts → cjs/index.d.ts} +0 -0
  176. /package/dist/{types.d.ts → cjs/types.d.ts} +0 -0
  177. /package/dist/{components → esm/components}/Items/AccordionItem/AccordionItem.js +0 -0
  178. /package/dist/{components/Items/AccordionItem/index.js → esm/components/Items/AccordionItem/index.d.ts} +0 -0
  179. /package/dist/{components → esm/components}/Items/BaseItem/BaseItem.js +0 -0
  180. /package/dist/{components → esm/components}/Items/BaseItem/constants.js +0 -0
  181. /package/dist/{components/Items/BaseItem/index.js → esm/components/Items/BaseItem/index.d.ts} +0 -0
  182. /package/dist/{components → esm/components}/Items/GroupItem/GroupItem.js +0 -0
  183. /package/dist/{components/Items/GroupItem/index.js → esm/components/Items/GroupItem/index.d.ts} +0 -0
  184. /package/dist/{components → esm/components}/Items/GroupSelectItem/GroupSelectItem.js +0 -0
  185. /package/dist/{components/Items/GroupSelectItem/index.js → esm/components/Items/GroupSelectItem/index.d.ts} +0 -0
  186. /package/dist/{components → esm/components}/Items/NextListItem/NextListItem.js +0 -0
  187. /package/dist/{components → esm/components}/Items/NextListItem/constants.js +0 -0
  188. /package/dist/{components/Items/NextListItem/index.js → esm/components/Items/NextListItem/index.d.ts} +0 -0
  189. /package/dist/{components → esm/components}/Items/PinGroupItem/PinGroupItem.js +0 -0
  190. /package/dist/{components/Items/PinGroupItem/index.js → esm/components/Items/PinGroupItem/index.d.ts} +0 -0
  191. /package/dist/{components → esm/components}/Items/SearchItem/SearchItem.js +0 -0
  192. /package/dist/{components/Items/SearchItem/index.js → esm/components/Items/SearchItem/index.d.ts} +0 -0
  193. /package/dist/{components → esm/components}/Items/hooks.js +0 -0
  194. /package/dist/{components/Items/index.js → esm/components/Items/index.d.ts} +0 -0
  195. /package/dist/{components → esm/components}/Items/types.js +0 -0
  196. /package/dist/{components → esm/components}/Items/utils.js +0 -0
  197. /package/dist/{components → esm/components}/Lists/Droplist/DropList.js +0 -0
  198. /package/dist/{components/Lists/Droplist/index.js → esm/components/Lists/Droplist/index.d.ts} +0 -0
  199. /package/dist/{components → esm/components}/Lists/List/List.js +0 -0
  200. /package/dist/{components/Lists/List/index.js → esm/components/Lists/List/index.d.ts} +0 -0
  201. /package/dist/{components → esm/components}/Lists/ListPrivate/ListPrivate.js +0 -0
  202. /package/dist/{components/Lists/ListPrivate/index.js → esm/components/Lists/ListPrivate/index.d.ts} +0 -0
  203. /package/dist/{components → esm/components}/Lists/contexts/CollapseProvider.js +0 -0
  204. /package/dist/{components → esm/components}/Lists/contexts/FocusListProvider.js +0 -0
  205. /package/dist/{components → esm/components}/Lists/contexts/NewListProvider.js +0 -0
  206. /package/dist/{components → esm/components}/Lists/contexts/OpenListProvider.js +0 -0
  207. /package/dist/{components → esm/components}/Lists/contexts/SelectionProvider.js +0 -0
  208. /package/dist/{components/Lists/contexts/index.js → esm/components/Lists/contexts/index.d.ts} +0 -0
  209. /package/dist/{components → esm/components}/Lists/hooks.js +0 -0
  210. /package/dist/{components → esm/components}/Lists/index.js +0 -0
  211. /package/dist/{components → esm/components}/Lists/types.js +0 -0
  212. /package/dist/{components → esm/components}/index.js +0 -0
  213. /package/dist/{helperComponents → esm/helperComponents}/CollapseBlockPrivate/CollapseBlockPrivate.js +0 -0
  214. /package/dist/{helperComponents/CollapseBlockPrivate/index.js → esm/helperComponents/CollapseBlockPrivate/index.d.ts} +0 -0
  215. /package/dist/{helperComponents → esm/helperComponents}/HiddenTabButton/HiddenTabButton.js +0 -0
  216. /package/dist/{helperComponents/HiddenTabButton/index.js → esm/helperComponents/HiddenTabButton/index.d.ts} +0 -0
  217. /package/dist/{helperComponents → esm/helperComponents}/ItemContent/ItemContent.js +0 -0
  218. /package/dist/{helperComponents/ItemContent/index.js → esm/helperComponents/ItemContent/index.d.ts} +0 -0
  219. /package/dist/{helperComponents → esm/helperComponents}/ListEmptyState/ListEmptyState.js +0 -0
  220. /package/dist/{helperComponents → esm/helperComponents}/ListEmptyState/hooks.js +0 -0
  221. /package/dist/{helperComponents/ListEmptyState/index.js → esm/helperComponents/ListEmptyState/index.d.ts} +0 -0
  222. /package/dist/{helperComponents → esm/helperComponents}/Separator/Separator.js +0 -0
  223. /package/dist/{helperComponents → esm/helperComponents}/Separator/constants.js +0 -0
  224. /package/dist/{helperComponents/Separator/index.js → esm/helperComponents/Separator/index.d.ts} +0 -0
  225. /package/dist/{helperComponents/index.js → esm/helperComponents/index.d.ts} +0 -0
  226. /package/dist/{index.js → esm/index.js} +0 -0
  227. /package/dist/{types.js → esm/types.js} +0 -0
@@ -0,0 +1,264 @@
1
+ "use strict";
2
+
3
+ var __rest = void 0 && (void 0).__rest || function (s, e) {
4
+ var t = {};
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
8
+ }
9
+ return t;
10
+ };
11
+ var __importDefault = void 0 && (void 0).__importDefault || function (mod) {
12
+ return mod && mod.__esModule ? mod : {
13
+ "default": mod
14
+ };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", {
17
+ value: true
18
+ });
19
+ exports.Droplist = Droplist;
20
+ const jsx_runtime_1 = require("react/jsx-runtime");
21
+ const classnames_1 = __importDefault(require("classnames"));
22
+ const merge_refs_1 = __importDefault(require("merge-refs"));
23
+ const react_1 = require("react");
24
+ const dropdown_1 = require("@snack-uikit/dropdown");
25
+ const utils_1 = require("@snack-uikit/utils");
26
+ const Items_1 = require("../../Items");
27
+ const contexts_1 = require("../contexts");
28
+ const hooks_1 = require("../hooks");
29
+ const ListPrivate_1 = require("../ListPrivate");
30
+ const styles_module_scss_1 = __importDefault(require('../styles.module.css'));
31
+ const DEFAULT_FALLBACK_PLACEMENTS = ['top', 'right', 'bottom', 'left'];
32
+ function Droplist(_a) {
33
+ var {
34
+ items: itemsProp,
35
+ search,
36
+ pinBottom: pinBottomProp = [],
37
+ pinTop: pinTopProp = [],
38
+ footerActiveElementsRefs,
39
+ children,
40
+ trigger,
41
+ placement,
42
+ widthStrategy,
43
+ triggerElemRef: triggerElemRefProp,
44
+ open: openProp,
45
+ onOpenChange,
46
+ collapse = {},
47
+ triggerClassName,
48
+ selection,
49
+ contentRender,
50
+ size = 's',
51
+ marker = true,
52
+ closeDroplistOnItemClick = false,
53
+ className,
54
+ listRef: listRefProp,
55
+ untouchableScrollbars = false
56
+ } = _a,
57
+ props = __rest(_a, ["items", "search", "pinBottom", "pinTop", "footerActiveElementsRefs", "children", "trigger", "placement", "widthStrategy", "triggerElemRef", "open", "onOpenChange", "collapse", "triggerClassName", "selection", "contentRender", "size", "marker", "closeDroplistOnItemClick", "className", "listRef", "untouchableScrollbars"]);
58
+ const hasSearch = (0, react_1.useMemo)(() => Boolean(search), [search]);
59
+ const [openCollapseItems = [], setOpenCollapsedItems] = (0, utils_1.useValueControl)(collapse);
60
+ const toggleOpenCollapseItem = (0, react_1.useCallback)(id => setOpenCollapsedItems(items => (items === null || items === void 0 ? void 0 : items.includes(id)) ? items.filter(item => item !== id) : (items !== null && items !== void 0 ? items : []).concat([id])), [setOpenCollapsedItems]);
61
+ const [open = false, setOpen] = (0, utils_1.useValueControl)({
62
+ value: openProp,
63
+ defaultValue: false,
64
+ onChange: onOpenChange
65
+ });
66
+ const {
67
+ searchItem,
68
+ footerItems
69
+ } = (0, Items_1.useCreateBaseItems)({
70
+ footerActiveElementsRefs
71
+ });
72
+ /**
73
+ * Объект с пропсами всех вложенных айтемов; ключ id
74
+ */
75
+ const _b = (0, react_1.useMemo)(() => {
76
+ const pinTop = (0, Items_1.kindFlattenItems)({
77
+ items: pinTopProp,
78
+ prefix: '~pinTop',
79
+ parentId: '~main'
80
+ });
81
+ const items = (0, Items_1.kindFlattenItems)({
82
+ items: itemsProp,
83
+ prefix: '~main',
84
+ parentId: '~main'
85
+ });
86
+ const pinBottom = (0, Items_1.kindFlattenItems)({
87
+ items: pinBottomProp,
88
+ prefix: '~pinBottom',
89
+ parentId: '~main'
90
+ });
91
+ const flattenItems = Object.assign(Object.assign(Object.assign({}, pinTop.flattenItems), pinBottom.flattenItems), items.flattenItems);
92
+ const focusFlattenItems = Object.assign(Object.assign(Object.assign({}, pinTop.focusFlattenItems), pinBottom.focusFlattenItems), items.focusFlattenItems);
93
+ [...footerItems, searchItem].forEach(item => {
94
+ flattenItems[item.id] = item;
95
+ focusFlattenItems[item.id] = Object.assign(Object.assign({}, item), {
96
+ originalId: item.id,
97
+ items: [],
98
+ key: item.id,
99
+ allChildIds: []
100
+ });
101
+ });
102
+ return {
103
+ items,
104
+ pinTop,
105
+ pinBottom,
106
+ flattenItems,
107
+ focusFlattenItems
108
+ };
109
+ }, [itemsProp, pinTopProp, pinBottomProp, searchItem, footerItems]),
110
+ {
111
+ flattenItems,
112
+ focusFlattenItems
113
+ } = _b,
114
+ memorizedItems = __rest(_b, ["flattenItems", "focusFlattenItems"]);
115
+ const {
116
+ ids,
117
+ expandedIds
118
+ } = (0, react_1.useMemo)(() => {
119
+ const {
120
+ pinTop,
121
+ items,
122
+ pinBottom
123
+ } = memorizedItems;
124
+ let ids = [];
125
+ let expandedIds = [];
126
+ if (hasSearch) {
127
+ ids.push(searchItem.id);
128
+ }
129
+ [pinTop, items, pinBottom].forEach(_ref => {
130
+ let {
131
+ focusFlattenItems,
132
+ focusCloseChildIds
133
+ } = _ref;
134
+ const activeItems = (0, Items_1.extractActiveItems)({
135
+ focusFlattenItems,
136
+ focusCloseChildIds,
137
+ openCollapseItems,
138
+ isSelectionMultiple: (selection === null || selection === void 0 ? void 0 : selection.mode) === 'multiple'
139
+ });
140
+ ids = ids.concat(activeItems.ids);
141
+ expandedIds = expandedIds.concat(activeItems.expandedIds);
142
+ });
143
+ footerItems.forEach(footerItem => {
144
+ ids.push(footerItem.id);
145
+ });
146
+ return {
147
+ ids,
148
+ expandedIds
149
+ };
150
+ }, [footerItems, hasSearch, memorizedItems, openCollapseItems, searchItem.id, selection === null || selection === void 0 ? void 0 : selection.mode]);
151
+ const triggerElemRef = (0, react_1.useRef)(null);
152
+ const listRef = (0, react_1.useRef)(null);
153
+ const {
154
+ handleListKeyDownFactory,
155
+ resetActiveItemId,
156
+ activeItemId,
157
+ forceUpdateActiveItemId
158
+ } = (0, hooks_1.useNewKeyboardNavigation)({
159
+ mainRef: triggerElemRefProp !== null && triggerElemRefProp !== void 0 ? triggerElemRefProp : triggerElemRef,
160
+ focusFlattenItems
161
+ });
162
+ const handleListKeyDown = (0, react_1.useCallback)(e => handleListKeyDownFactory(ids, expandedIds)(e), [handleListKeyDownFactory, ids, expandedIds]);
163
+ const handleOpenChange = (0, react_1.useCallback)(open => {
164
+ resetActiveItemId();
165
+ setOpen(open);
166
+ }, [resetActiveItemId, setOpen]);
167
+ const onKeyDown = (0, react_1.useCallback)((e, cb) => {
168
+ if (e.key === 'ArrowDown') {
169
+ e.preventDefault();
170
+ setOpen(true);
171
+ setTimeout(() => {
172
+ var _a;
173
+ resetActiveItemId();
174
+ (_a = listRef.current) === null || _a === void 0 ? void 0 : _a.focus();
175
+ }, 0);
176
+ }
177
+ if (e.key === 'ArrowUp') {
178
+ setOpen(false);
179
+ }
180
+ cb === null || cb === void 0 ? void 0 : cb(e);
181
+ }, [resetActiveItemId, setOpen]);
182
+ const isValid = (0, react_1.useMemo)(() => (0, react_1.isValidElement)(children), [children]);
183
+ const triggerElem = (0, react_1.useMemo)(() => {
184
+ if ((0, react_1.isValidElement)(children)) {
185
+ const props = typeof children.props === 'object' ? children.props : {};
186
+ return (0, react_1.cloneElement)(children, Object.assign(Object.assign({}, props), {
187
+ onKeyDown: e => {
188
+ var _a;
189
+ onKeyDown(e, (_a = children.props) === null || _a === void 0 ? void 0 : _a.onKeyDown);
190
+ }
191
+ }));
192
+ }
193
+ if (typeof children === 'function') {
194
+ return children({
195
+ onKeyDown
196
+ });
197
+ }
198
+ return children;
199
+ }, [onKeyDown, children]);
200
+ return (0, jsx_runtime_1.jsx)(contexts_1.NewListContextProvider, {
201
+ flattenItems: flattenItems,
202
+ focusFlattenItems: focusFlattenItems,
203
+ contentRender: contentRender,
204
+ size: size,
205
+ marker: marker,
206
+ children: (0, jsx_runtime_1.jsx)(contexts_1.SelectionProvider, Object.assign({}, selection, {
207
+ children: (0, jsx_runtime_1.jsx)(contexts_1.CollapseContext.Provider, {
208
+ value: {
209
+ openCollapseItems,
210
+ toggleOpenCollapseItem
211
+ },
212
+ children: (0, jsx_runtime_1.jsx)(contexts_1.FocusListContext.Provider, {
213
+ value: {
214
+ activeItemId,
215
+ handleListKeyDownFactory,
216
+ forceUpdateActiveItemId
217
+ },
218
+ children: (0, jsx_runtime_1.jsx)(contexts_1.OpenListContext.Provider, {
219
+ value: {
220
+ closeDroplistOnItemClick,
221
+ closeDroplist: () => {
222
+ var _a;
223
+ setOpen(false);
224
+ resetActiveItemId();
225
+ (_a = (triggerElemRefProp !== null && triggerElemRefProp !== void 0 ? triggerElemRefProp : triggerElemRef).current) === null || _a === void 0 ? void 0 : _a.focus();
226
+ }
227
+ },
228
+ children: (0, jsx_runtime_1.jsx)(dropdown_1.Dropdown, {
229
+ content: (0, jsx_runtime_1.jsx)("div", {
230
+ className: (0, classnames_1.default)(styles_module_scss_1.default.wrapper, className),
231
+ children: (0, jsx_runtime_1.jsx)(ListPrivate_1.ListPrivate, Object.assign({}, props, {
232
+ items: memorizedItems.items.focusCloseChildIds,
233
+ pinTop: memorizedItems.pinTop.focusCloseChildIds,
234
+ pinBottom: memorizedItems.pinBottom.focusCloseChildIds,
235
+ onKeyDown: handleListKeyDown,
236
+ searchItem: searchItem,
237
+ tabIndex: 0,
238
+ ref: (0, merge_refs_1.default)(listRef, listRefProp),
239
+ search: search,
240
+ onFocus: e => {
241
+ e.stopPropagation();
242
+ forceUpdateActiveItemId === null || forceUpdateActiveItemId === void 0 ? void 0 : forceUpdateActiveItemId(ids[0]);
243
+ },
244
+ limitedScrollHeight: true,
245
+ untouchableScrollbars: untouchableScrollbars
246
+ }))
247
+ }),
248
+ outsideClick: true,
249
+ triggerClassName: triggerClassName,
250
+ fallbackPlacements: DEFAULT_FALLBACK_PLACEMENTS,
251
+ trigger: trigger,
252
+ placement: placement,
253
+ widthStrategy: widthStrategy,
254
+ triggerRef: !triggerElemRefProp ? triggerElemRef : isValid && triggerElemRefProp || undefined,
255
+ open: open,
256
+ onOpenChange: handleOpenChange,
257
+ children: triggerElem
258
+ })
259
+ })
260
+ })
261
+ })
262
+ }))
263
+ });
264
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ var __createBinding = void 0 && (void 0).__createBinding || (Object.create ? function (o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = {
8
+ enumerable: true,
9
+ get: function () {
10
+ return m[k];
11
+ }
12
+ };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ } : function (o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ });
19
+ var __exportStar = void 0 && (void 0).__exportStar || function (m, exports) {
20
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
+ };
22
+ Object.defineProperty(exports, "__esModule", {
23
+ value: true
24
+ });
25
+ __exportStar(require("./DropList"), exports);
@@ -0,0 +1,199 @@
1
+ "use strict";
2
+
3
+ var __rest = void 0 && (void 0).__rest || function (s, e) {
4
+ var t = {};
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
8
+ }
9
+ return t;
10
+ };
11
+ var __importDefault = void 0 && (void 0).__importDefault || function (mod) {
12
+ return mod && mod.__esModule ? mod : {
13
+ "default": mod
14
+ };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", {
17
+ value: true
18
+ });
19
+ exports.List = void 0;
20
+ const jsx_runtime_1 = require("react/jsx-runtime");
21
+ const classnames_1 = __importDefault(require("classnames"));
22
+ const merge_refs_1 = __importDefault(require("merge-refs"));
23
+ const react_1 = require("react");
24
+ const utils_1 = require("@snack-uikit/utils");
25
+ const helperComponents_1 = require("../../../helperComponents");
26
+ const Items_1 = require("../../Items");
27
+ const contexts_1 = require("../contexts");
28
+ const hooks_1 = require("../hooks");
29
+ const ListPrivate_1 = require("../ListPrivate");
30
+ const styles_module_scss_1 = __importDefault(require('../styles.module.css'));
31
+ exports.List = (0, react_1.forwardRef)((_a, ref) => {
32
+ var {
33
+ items: itemsProp = [],
34
+ search,
35
+ pinBottom: pinBottomProp = [],
36
+ pinTop: pinTopProp = [],
37
+ footerActiveElementsRefs,
38
+ onKeyDown,
39
+ tabIndex = 0,
40
+ className,
41
+ collapse = {},
42
+ selection,
43
+ contentRender,
44
+ size = 's',
45
+ marker = true
46
+ } = _a,
47
+ props = __rest(_a, ["items", "search", "pinBottom", "pinTop", "footerActiveElementsRefs", "onKeyDown", "tabIndex", "className", "collapse", "selection", "contentRender", "size", "marker"]);
48
+ const hasSearch = (0, react_1.useMemo)(() => Boolean(search), [search]);
49
+ const [openCollapseItems = [], setOpenCollapsedItems] = (0, utils_1.useValueControl)(collapse);
50
+ const toggleOpenCollapseItem = (0, react_1.useCallback)(id => setOpenCollapsedItems(items => (items === null || items === void 0 ? void 0 : items.includes(id)) ? items.filter(item => item !== id) : (items !== null && items !== void 0 ? items : []).concat([id])), [setOpenCollapsedItems]);
51
+ const {
52
+ searchItem,
53
+ footerItems
54
+ } = (0, Items_1.useCreateBaseItems)({
55
+ footerActiveElementsRefs
56
+ });
57
+ /**
58
+ * Объект с пропсами всех вложенных айтемов; ключ id
59
+ */
60
+ const _b = (0, react_1.useMemo)(() => {
61
+ const pinTop = (0, Items_1.kindFlattenItems)({
62
+ items: pinTopProp,
63
+ prefix: '~pinTop',
64
+ parentId: '~main'
65
+ });
66
+ const items = (0, Items_1.kindFlattenItems)({
67
+ items: itemsProp,
68
+ prefix: '~main',
69
+ parentId: '~main'
70
+ });
71
+ const pinBottom = (0, Items_1.kindFlattenItems)({
72
+ items: pinBottomProp,
73
+ prefix: '~pinBottom',
74
+ parentId: '~main'
75
+ });
76
+ const flattenItems = Object.assign(Object.assign(Object.assign({}, pinTop.flattenItems), pinBottom.flattenItems), items.flattenItems);
77
+ const focusFlattenItems = Object.assign(Object.assign(Object.assign({}, pinTop.focusFlattenItems), pinBottom.focusFlattenItems), items.focusFlattenItems);
78
+ [...footerItems, searchItem].forEach(item => {
79
+ flattenItems[item.id] = item;
80
+ focusFlattenItems[item.id] = Object.assign(Object.assign({}, item), {
81
+ originalId: item.id,
82
+ items: [],
83
+ key: item.id,
84
+ allChildIds: []
85
+ });
86
+ });
87
+ return {
88
+ items,
89
+ pinTop,
90
+ pinBottom,
91
+ flattenItems,
92
+ focusFlattenItems
93
+ };
94
+ }, [itemsProp, pinTopProp, pinBottomProp, searchItem, footerItems]),
95
+ {
96
+ flattenItems,
97
+ focusFlattenItems
98
+ } = _b,
99
+ memorizedItems = __rest(_b, ["flattenItems", "focusFlattenItems"]);
100
+ const {
101
+ ids,
102
+ expandedIds
103
+ } = (0, react_1.useMemo)(() => {
104
+ const {
105
+ pinTop,
106
+ items,
107
+ pinBottom
108
+ } = memorizedItems;
109
+ let ids = [];
110
+ let expandedIds = [];
111
+ if (hasSearch) {
112
+ ids.push(searchItem.id);
113
+ }
114
+ [pinTop, items, pinBottom].forEach(_ref => {
115
+ let {
116
+ focusFlattenItems,
117
+ focusCloseChildIds
118
+ } = _ref;
119
+ const activeItems = (0, Items_1.extractActiveItems)({
120
+ focusFlattenItems,
121
+ focusCloseChildIds,
122
+ openCollapseItems,
123
+ isSelectionMultiple: (selection === null || selection === void 0 ? void 0 : selection.mode) === 'multiple'
124
+ });
125
+ ids = ids.concat(activeItems.ids);
126
+ expandedIds = expandedIds.concat(activeItems.expandedIds);
127
+ });
128
+ footerItems.forEach(footerItem => {
129
+ ids.push(footerItem.id);
130
+ });
131
+ return {
132
+ ids,
133
+ expandedIds
134
+ };
135
+ }, [footerItems, hasSearch, memorizedItems, openCollapseItems, searchItem.id, selection === null || selection === void 0 ? void 0 : selection.mode]);
136
+ const listRef = (0, react_1.useRef)(null);
137
+ const btnRef = (0, react_1.useRef)(null);
138
+ const {
139
+ handleListKeyDownFactory,
140
+ activeItemId,
141
+ resetActiveItemId,
142
+ forceUpdateActiveItemId
143
+ } = (0, hooks_1.useNewKeyboardNavigation)({
144
+ mainRef: listRef,
145
+ btnRef,
146
+ focusFlattenItems
147
+ });
148
+ const handleListKeyDown = (0, react_1.useCallback)(e => handleListKeyDownFactory(ids, expandedIds)(e), [handleListKeyDownFactory, ids, expandedIds]);
149
+ const isActive = (0, utils_1.isBrowser)() && listRef.current === document.activeElement && activeItemId === undefined;
150
+ const mergedHandlerKeyDown = e => {
151
+ onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e);
152
+ handleListKeyDown === null || handleListKeyDown === void 0 ? void 0 : handleListKeyDown(e);
153
+ };
154
+ const handleOnFocus = () => {
155
+ resetActiveItemId();
156
+ };
157
+ return (0, jsx_runtime_1.jsx)(contexts_1.NewListContextProvider, {
158
+ flattenItems: flattenItems,
159
+ focusFlattenItems: focusFlattenItems,
160
+ contentRender: contentRender,
161
+ size: size,
162
+ marker: marker,
163
+ children: (0, jsx_runtime_1.jsx)(contexts_1.SelectionProvider, Object.assign({}, selection, {
164
+ children: (0, jsx_runtime_1.jsx)(contexts_1.CollapseContext.Provider, {
165
+ value: {
166
+ openCollapseItems,
167
+ toggleOpenCollapseItem
168
+ },
169
+ children: (0, jsx_runtime_1.jsx)(contexts_1.FocusListContext.Provider, {
170
+ value: {
171
+ activeItemId,
172
+ handleListKeyDownFactory,
173
+ forceUpdateActiveItemId
174
+ },
175
+ children: (0, jsx_runtime_1.jsxs)("div", {
176
+ className: (0, classnames_1.default)(styles_module_scss_1.default.wrapper, className),
177
+ "data-active": isActive || undefined,
178
+ children: [(0, jsx_runtime_1.jsx)(ListPrivate_1.ListPrivate, Object.assign({}, props, {
179
+ items: memorizedItems.items.focusCloseChildIds,
180
+ pinTop: memorizedItems.pinTop.focusCloseChildIds,
181
+ pinBottom: memorizedItems.pinBottom.focusCloseChildIds,
182
+ searchItem: searchItem,
183
+ ref: (0, merge_refs_1.default)(ref, listRef),
184
+ onFocus: handleOnFocus,
185
+ onKeyDown: mergedHandlerKeyDown,
186
+ tabIndex: tabIndex,
187
+ search: search,
188
+ nested: false
189
+ })), (0, jsx_runtime_1.jsx)(helperComponents_1.HiddenTabButton, {
190
+ ref: btnRef,
191
+ listRef: listRef,
192
+ tabIndex: tabIndex
193
+ })]
194
+ })
195
+ })
196
+ })
197
+ }))
198
+ });
199
+ });
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ var __createBinding = void 0 && (void 0).__createBinding || (Object.create ? function (o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = {
8
+ enumerable: true,
9
+ get: function () {
10
+ return m[k];
11
+ }
12
+ };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ } : function (o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ });
19
+ var __exportStar = void 0 && (void 0).__exportStar || function (m, exports) {
20
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
+ };
22
+ Object.defineProperty(exports, "__esModule", {
23
+ value: true
24
+ });
25
+ __exportStar(require("./List"), exports);
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+
3
+ var __rest = void 0 && (void 0).__rest || function (s, e) {
4
+ var t = {};
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
8
+ }
9
+ return t;
10
+ };
11
+ var __importDefault = void 0 && (void 0).__importDefault || function (mod) {
12
+ return mod && mod.__esModule ? mod : {
13
+ "default": mod
14
+ };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", {
17
+ value: true
18
+ });
19
+ exports.ListPrivate = void 0;
20
+ const jsx_runtime_1 = require("react/jsx-runtime");
21
+ const classnames_1 = __importDefault(require("classnames"));
22
+ const react_1 = require("react");
23
+ const loaders_1 = require("@snack-uikit/loaders");
24
+ const scroll_1 = require("@snack-uikit/scroll");
25
+ const utils_1 = require("@snack-uikit/utils");
26
+ const helperComponents_1 = require("../../../helperComponents");
27
+ const Items_1 = require("../../Items");
28
+ const contexts_1 = require("../contexts");
29
+ const styles_module_scss_1 = __importDefault(require('../styles.module.css'));
30
+ const styles_module_scss_2 = __importDefault(require('./styles.module.css'));
31
+ exports.ListPrivate = (0, react_1.forwardRef)((_a, ref) => {
32
+ var {
33
+ items,
34
+ pinTop,
35
+ pinBottom,
36
+ onKeyDown,
37
+ onBlur,
38
+ onFocus,
39
+ tabIndex,
40
+ active,
41
+ scroll,
42
+ nested,
43
+ search,
44
+ searchItem,
45
+ scrollRef,
46
+ scrollContainerRef,
47
+ onScroll,
48
+ footer,
49
+ loading,
50
+ limitedScrollHeight,
51
+ untouchableScrollbars,
52
+ className,
53
+ noDataState,
54
+ noResultsState,
55
+ errorDataState,
56
+ dataError,
57
+ dataFiltered
58
+ } = _a,
59
+ props = __rest(_a, ["items", "pinTop", "pinBottom", "onKeyDown", "onBlur", "onFocus", "tabIndex", "active", "scroll", "nested", "search", "searchItem", "scrollRef", "scrollContainerRef", "onScroll", "footer", "loading", "limitedScrollHeight", "untouchableScrollbars", "className", "noDataState", "noResultsState", "errorDataState", "dataError", "dataFiltered"]);
60
+ const {
61
+ size = 's'
62
+ } = (0, contexts_1.useNewListContext)();
63
+ const itemsJSX = (0, Items_1.useRenderItems)(items);
64
+ const itemsPinTopJSX = (0, Items_1.useRenderItems)(pinTop);
65
+ const itemsPinBottomJSX = (0, Items_1.useRenderItems)(pinBottom);
66
+ const emptyStates = (0, helperComponents_1.useEmptyState)({
67
+ noDataState,
68
+ noResultsState,
69
+ errorDataState
70
+ });
71
+ const hasNoItems = items.length === 0;
72
+ const loadingJSX = (0, react_1.useMemo)(() => loading && (0, jsx_runtime_1.jsx)("div", {
73
+ role: 'spinbutton',
74
+ tabIndex: -1,
75
+ className: styles_module_scss_2.default.loader,
76
+ "data-size": size,
77
+ "data-no-items": hasNoItems || undefined,
78
+ "data-test-id": 'list__loader',
79
+ children: (0, jsx_runtime_1.jsx)(loaders_1.Spinner, {
80
+ size: size === 'l' ? 's' : 'xs'
81
+ })
82
+ }), [hasNoItems, loading, size]);
83
+ const content = (0, react_1.useMemo)(() => (0, jsx_runtime_1.jsxs)("div", {
84
+ className: styles_module_scss_2.default.content,
85
+ children: [itemsJSX, loadingJSX, (0, jsx_runtime_1.jsx)(helperComponents_1.ListEmptyState, {
86
+ loading: loading,
87
+ dataError: dataError,
88
+ emptyStates: emptyStates,
89
+ hasNoItems: hasNoItems,
90
+ dataFiltered: dataFiltered !== null && dataFiltered !== void 0 ? dataFiltered : Boolean(search === null || search === void 0 ? void 0 : search.value)
91
+ })]
92
+ }), [dataError, dataFiltered, emptyStates, hasNoItems, itemsJSX, loading, loadingJSX, search === null || search === void 0 ? void 0 : search.value]);
93
+ const listJSX = (0, jsx_runtime_1.jsxs)("ul", Object.assign({
94
+ className: (0, classnames_1.default)(styles_module_scss_1.default.listContainer, className),
95
+ ref: ref,
96
+ onKeyDown: onKeyDown,
97
+ tabIndex: tabIndex,
98
+ onFocus: onFocus,
99
+ onBlur: onBlur,
100
+ "data-active": active || undefined,
101
+ role: 'menu'
102
+ }, (0, utils_1.extractSupportProps)(props), {
103
+ children: [(Number(pinTop === null || pinTop === void 0 ? void 0 : pinTop.length) > 0 || search) && (0, jsx_runtime_1.jsxs)(Items_1.PinTopGroupItem, {
104
+ children: [search && (0, jsx_runtime_1.jsx)(Items_1.SearchItem, Object.assign({
105
+ search: search
106
+ }, searchItem)), Number(pinTop === null || pinTop === void 0 ? void 0 : pinTop.length) > 0 && itemsPinTopJSX]
107
+ }), scroll ? (0, jsx_runtime_1.jsxs)(scroll_1.Scroll, {
108
+ className: (0, classnames_1.default)({
109
+ [styles_module_scss_1.default.scrollContainerS]: scroll && limitedScrollHeight && size === 's',
110
+ [styles_module_scss_1.default.scrollContainerM]: scroll && limitedScrollHeight && size === 'm',
111
+ [styles_module_scss_1.default.scrollContainerL]: scroll && limitedScrollHeight && size === 'l'
112
+ }),
113
+ barHideStrategy: 'never',
114
+ size: size === 's' ? 's' : 'm',
115
+ ref: scrollContainerRef,
116
+ untouchableScrollbars: untouchableScrollbars,
117
+ onScroll: onScroll,
118
+ children: [content, (0, jsx_runtime_1.jsx)("div", {
119
+ className: styles_module_scss_2.default.scrollStub,
120
+ ref: scrollRef
121
+ })]
122
+ }) : (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {
123
+ children: content
124
+ }), Number(pinBottom === null || pinBottom === void 0 ? void 0 : pinBottom.length) > 0 && (0, jsx_runtime_1.jsx)(Items_1.PinBottomGroupItem, {
125
+ children: itemsPinBottomJSX
126
+ }), footer && (0, jsx_runtime_1.jsx)("div", {
127
+ className: styles_module_scss_2.default.footer,
128
+ onFocus: e => e.stopPropagation(),
129
+ children: footer
130
+ })]
131
+ }));
132
+ if (!nested) {
133
+ return listJSX;
134
+ }
135
+ return (0, jsx_runtime_1.jsx)("li", {
136
+ style: {
137
+ listStyleType: 'none'
138
+ },
139
+ role: 'menuitem',
140
+ children: listJSX
141
+ });
142
+ });
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ var __createBinding = void 0 && (void 0).__createBinding || (Object.create ? function (o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = {
8
+ enumerable: true,
9
+ get: function () {
10
+ return m[k];
11
+ }
12
+ };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ } : function (o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ });
19
+ var __exportStar = void 0 && (void 0).__exportStar || function (m, exports) {
20
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
+ };
22
+ Object.defineProperty(exports, "__esModule", {
23
+ value: true
24
+ });
25
+ __exportStar(require("./ListPrivate"), exports);