@elliemae/ds-left-navigation 2.0.0-alpha.10 → 2.0.0-alpha.14

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 (115) hide show
  1. package/cjs/LeftNavigationContext.js +0 -4
  2. package/cjs/common/getItemBackgroundStyle.js +1 -12
  3. package/cjs/common/getLeftBorderStyle.js +3 -17
  4. package/cjs/common/getScrollbarStyle.js +1 -24
  5. package/cjs/common/index.js +0 -2
  6. package/cjs/configs/useLeftNavConfig.js +14 -21
  7. package/cjs/configs/useLeftNavItems.js +11 -11
  8. package/cjs/exported-related/ChevronItem/index.js +7 -3
  9. package/cjs/exported-related/Icon/index.js +5 -0
  10. package/cjs/exported-related/ItemRenderer/index.js +11 -10
  11. package/cjs/exported-related/ItemRenderer/styled.js +27 -27
  12. package/cjs/exported-related/ItemRenderer/usePropsWithDefaults.js +10 -3
  13. package/cjs/exported-related/Notifications/index.js +41 -41
  14. package/cjs/exported-related/OpenWindowItem/index.js +7 -3
  15. package/cjs/hooks/useExpandableOnClickHandler.js +7 -6
  16. package/cjs/hooks/useKeyboardNavigation.js +7 -7
  17. package/cjs/hooks/useOpenableOnClickHandler.js +8 -7
  18. package/cjs/hooks/useSelectFirstBodyItem.js +14 -4
  19. package/cjs/index.js +0 -1
  20. package/cjs/outOfTheBox/ItemControlledDrilldown/index.js +19 -18
  21. package/cjs/outOfTheBox/ItemControlledDrilldown/styled.js +7 -4
  22. package/cjs/outOfTheBox/ItemHeader/index.js +24 -15
  23. package/cjs/outOfTheBox/ItemHeader/styled.js +3 -4
  24. package/cjs/outOfTheBox/ItemLink/index.js +18 -24
  25. package/cjs/outOfTheBox/ItemSection/index.js +12 -10
  26. package/cjs/outOfTheBox/ItemSeparator/index.js +6 -6
  27. package/cjs/outOfTheBox/ItemSubmenu/index.js +17 -25
  28. package/cjs/outOfTheBox/ItemSubmenu/styled.js +3 -4
  29. package/cjs/outOfTheBox/ItemTextLabel/index.js +11 -9
  30. package/cjs/outOfTheBox/ItemTextLabel/styled.js +7 -4
  31. package/cjs/outOfTheBox/ItemUncontrolledDrilldown/index.js +15 -15
  32. package/cjs/outOfTheBox/ItemUncontrolledDrilldown/styled.js +7 -4
  33. package/cjs/outOfTheBox/ItemWithDate/index.js +9 -8
  34. package/cjs/outOfTheBox/ItemWithDate/styled.js +7 -4
  35. package/cjs/outOfTheBox/index.js +6 -6
  36. package/cjs/parts/LeftNavContent/index.js +5 -2
  37. package/cjs/parts/LeftNavContent/styled.js +11 -16
  38. package/cjs/parts/LeftNavContentWithScrollbar/index.js +7 -0
  39. package/cjs/parts/LeftNavFooterItem/index.js +3 -12
  40. package/cjs/parts/LeftNavFooterItem/styled.js +8 -9
  41. package/cjs/parts/LeftNavLoading/index.js +13 -10
  42. package/cjs/parts/OutOfTheBoxMapItem.js +5 -0
  43. package/cjs/prop-types.js +2 -1
  44. package/esm/LeftNavigationContext.js +0 -4
  45. package/esm/common/getItemBackgroundStyle.js +1 -12
  46. package/esm/common/getLeftBorderStyle.js +3 -17
  47. package/esm/common/getScrollbarStyle.js +1 -24
  48. package/esm/common/index.js +0 -1
  49. package/esm/configs/useLeftNavConfig.js +14 -21
  50. package/esm/configs/useLeftNavItems.js +11 -11
  51. package/esm/exported-related/ChevronItem/index.js +7 -2
  52. package/esm/exported-related/Icon/index.js +5 -0
  53. package/esm/exported-related/ItemRenderer/index.js +11 -10
  54. package/esm/exported-related/ItemRenderer/styled.js +27 -28
  55. package/esm/exported-related/ItemRenderer/usePropsWithDefaults.js +10 -3
  56. package/esm/exported-related/Notifications/index.js +41 -37
  57. package/esm/exported-related/OpenWindowItem/index.js +7 -2
  58. package/esm/hooks/useExpandableOnClickHandler.js +7 -6
  59. package/esm/hooks/useKeyboardNavigation.js +7 -7
  60. package/esm/hooks/useOpenableOnClickHandler.js +8 -7
  61. package/esm/hooks/useSelectFirstBodyItem.js +14 -4
  62. package/esm/index.js +0 -1
  63. package/esm/outOfTheBox/ItemControlledDrilldown/index.js +16 -13
  64. package/esm/outOfTheBox/ItemControlledDrilldown/styled.js +7 -4
  65. package/esm/outOfTheBox/ItemHeader/index.js +24 -15
  66. package/esm/outOfTheBox/ItemHeader/styled.js +3 -3
  67. package/esm/outOfTheBox/ItemLink/index.js +18 -24
  68. package/esm/outOfTheBox/ItemSection/index.js +12 -10
  69. package/esm/outOfTheBox/ItemSeparator/index.js +6 -6
  70. package/esm/outOfTheBox/ItemSubmenu/index.js +17 -25
  71. package/esm/outOfTheBox/ItemSubmenu/styled.js +3 -3
  72. package/esm/outOfTheBox/ItemTextLabel/index.js +11 -9
  73. package/esm/outOfTheBox/ItemTextLabel/styled.js +7 -4
  74. package/esm/outOfTheBox/ItemUncontrolledDrilldown/index.js +14 -12
  75. package/esm/outOfTheBox/ItemUncontrolledDrilldown/styled.js +7 -4
  76. package/esm/outOfTheBox/ItemWithDate/index.js +9 -8
  77. package/esm/outOfTheBox/ItemWithDate/styled.js +7 -4
  78. package/esm/outOfTheBox/index.js +6 -6
  79. package/esm/parts/LeftNavContent/index.js +5 -2
  80. package/esm/parts/LeftNavContent/styled.js +11 -16
  81. package/esm/parts/LeftNavContentWithScrollbar/index.js +7 -0
  82. package/esm/parts/LeftNavFooterItem/index.js +2 -10
  83. package/esm/parts/LeftNavFooterItem/styled.js +3 -4
  84. package/esm/parts/LeftNavLoading/index.js +13 -10
  85. package/esm/parts/OutOfTheBoxMapItem.js +5 -0
  86. package/esm/prop-types.js +2 -1
  87. package/package.json +12 -16
  88. package/types/LeftNavigation.d.ts +46 -11
  89. package/types/LeftNavigationContext.d.ts +0 -4
  90. package/types/common/index.d.ts +0 -1
  91. package/types/exported-related/ItemRenderer/styled.d.ts +3 -2
  92. package/types/hooks/useKeyboardNavigation.d.ts +1 -1
  93. package/types/hooks/useSelectFirstBodyItem.d.ts +1 -1
  94. package/types/index.d.d.ts +8 -2
  95. package/types/index.d.ts +1 -2
  96. package/types/outOfTheBox/ItemControlledDrilldown/styled.d.ts +2 -2
  97. package/types/outOfTheBox/ItemHeader/styled.d.ts +2 -2
  98. package/types/outOfTheBox/ItemLink/styled.d.ts +1 -1
  99. package/types/outOfTheBox/ItemSection/styled.d.ts +3 -3
  100. package/types/outOfTheBox/ItemSubmenu/styled.d.ts +2 -2
  101. package/types/outOfTheBox/ItemTextLabel/styled.d.ts +1 -1
  102. package/types/outOfTheBox/ItemUncontrolledDrilldown/styled.d.ts +2 -2
  103. package/types/outOfTheBox/ItemWithDate/styled.d.ts +2 -2
  104. package/types/parts/LeftNavContent/styled.d.ts +7 -11
  105. package/types/parts/LeftNavContentWithScrollbar/index.d.ts +1 -0
  106. package/types/parts/LeftNavFooterItem/styled.d.ts +10 -6
  107. package/types/prop-types.d.ts +87 -18
  108. package/cjs/common/getFocusedByKeyboardStyle.js +0 -23
  109. package/cjs/configs/useGlobalKeyListeners.js +0 -31
  110. package/cjs/package.json +0 -4
  111. package/esm/common/getFocusedByKeyboardStyle.js +0 -19
  112. package/esm/configs/useGlobalKeyListeners.js +0 -22
  113. package/esm/package.json +0 -4
  114. package/types/common/getFocusedByKeyboardStyle.d.ts +0 -4
  115. package/types/configs/useGlobalKeyListeners.d.ts +0 -6
@@ -23,10 +23,11 @@ const nextIndex = (index, length) => (index + 1) % length;
23
23
 
24
24
  const prevIndex = (index, length) => (index - 1 + length) % length;
25
25
 
26
- const useKeyboardNavigation = ({
27
- item,
28
- onClick
29
- }) => {
26
+ const useKeyboardNavigation = _ref => {
27
+ let {
28
+ item,
29
+ onClick
30
+ } = _ref;
30
31
  const {
31
32
  dsId,
32
33
  itemOpts: {
@@ -41,7 +42,6 @@ const useKeyboardNavigation = ({
41
42
  } = React.useContext(LeftNavigationContext.LeftNavContext);
42
43
  const currentIndex = React.useMemo(() => visibleItems.findIndex(visibleItemDsId => visibleItemDsId === dsId), [dsId, visibleItems]);
43
44
  const {
44
- expandedForAnimation,
45
45
  setFocusedItem,
46
46
  focusedItem,
47
47
  setSelectedItem
@@ -83,7 +83,7 @@ const useKeyboardNavigation = ({
83
83
 
84
84
  if (closable && keyCode === KEY_CODES.LEFT_ARROW) {
85
85
  onClick(e);
86
- focusAndSelect(dsId);
86
+ setFocusedItem(dsId);
87
87
  }
88
88
 
89
89
  if (keyCode === KEY_CODES.DOWN_ARROW) {
@@ -103,7 +103,7 @@ const useKeyboardNavigation = ({
103
103
  if (keyCode === KEY_CODES.END) {
104
104
  setFocusedItem(visibleItems[visibleItems.length - 1]);
105
105
  }
106
- }, [dsId, expandedForAnimation, selectable, openable, closable, onClick, visibleItemsRefs, visibleItems, focusedItem, focusAndSelect]);
106
+ }, [openable, closable, selectable, focusedItem, onClick, focusAndSelect, dsId, setFocusedItem, visibleItems, currentIndex]);
107
107
  return onKeyDown;
108
108
  };
109
109
 
@@ -5,13 +5,14 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var React = require('react');
6
6
  var LeftNavigationContext = require('../LeftNavigationContext.js');
7
7
 
8
- const useOpenableOnClickHandler = ({
9
- id,
10
- opened,
11
- onExpand,
12
- onOpen,
13
- onClose
14
- }) => {
8
+ const useOpenableOnClickHandler = _ref => {
9
+ let {
10
+ id,
11
+ opened,
12
+ onExpand,
13
+ onOpen,
14
+ onClose
15
+ } = _ref;
15
16
  const {
16
17
  leftNavProps: {
17
18
  expanded
@@ -2,6 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ require('core-js/modules/esnext.async-iterator.some.js');
6
+ require('core-js/modules/esnext.iterator.constructor.js');
7
+ require('core-js/modules/esnext.iterator.some.js');
5
8
  var React = require('react');
6
9
  var constants = require('../exported-related/constants.js');
7
10
 
@@ -14,13 +17,20 @@ const isSelectableOutOfTheBox = elem => typeof elem.type === 'string' && elem.ty
14
17
 
15
18
  const isSelectableCustom = elem => elem.itemOpts.selectable;
16
19
 
17
- const useSelectFirstBodyItem = (items, openedItem, setSelectedItem) => {
20
+ const isItemInsideTheTree = (item, itemID) => {
21
+ var _item$itemOpts, _item$itemOpts$items;
22
+
23
+ return item.dsId === itemID || (item === null || item === void 0 ? void 0 : (_item$itemOpts = item.itemOpts) === null || _item$itemOpts === void 0 ? void 0 : (_item$itemOpts$items = _item$itemOpts.items) === null || _item$itemOpts$items === void 0 ? void 0 : _item$itemOpts$items.some(it => isItemInsideTheTree(it, itemID)));
24
+ };
25
+
26
+ const useSelectFirstBodyItem = (items, openedItem, selectedItem, setSelectedItem, disableDefaultSelection) => {
18
27
  React.useEffect(() => {
19
- if (items && items.length && openedItem) {
28
+ if (!disableDefaultSelection && items && items.length && openedItem) {
20
29
  const index = items.findIndex(elem => isSelectableOutOfTheBox(elem) || isSelectableCustom(elem));
21
- if (index !== -1) setSelectedItem(items[index].dsId);
30
+ const isItemInside = items.some(it => isItemInsideTheTree(it, selectedItem));
31
+ if (isItemInside) setSelectedItem(selectedItem);else if (index !== -1) setSelectedItem(items[index].dsId);
22
32
  }
23
- }, [openedItem]);
33
+ }, [openedItem, setSelectedItem, disableDefaultSelection]);
24
34
  };
25
35
 
26
36
  exports.useSelectFirstBodyItem = useSelectFirstBodyItem;
package/cjs/index.js CHANGED
@@ -2,7 +2,6 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- require('overlayscrollbars/css/OverlayScrollbars.css');
6
5
  var propTypes = require('./prop-types.js');
7
6
  var LeftNavigation = require('./LeftNavigation.js');
8
7
  var constants = require('./exported-related/constants.js');
@@ -4,39 +4,39 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var _jsx = require('@babel/runtime/helpers/jsx');
6
6
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
7
+ require('core-js/modules/esnext.async-iterator.map.js');
8
+ require('core-js/modules/esnext.iterator.map.js');
9
+ require('core-js/modules/esnext.async-iterator.filter.js');
10
+ require('core-js/modules/esnext.iterator.constructor.js');
11
+ require('core-js/modules/esnext.iterator.filter.js');
12
+ require('core-js/modules/esnext.async-iterator.for-each.js');
13
+ require('core-js/modules/esnext.iterator.for-each.js');
7
14
  var React = require('react');
8
15
  var Grid = require('@elliemae/ds-grid');
9
16
  var dsTruncatedTooltipText = require('@elliemae/ds-truncated-tooltip-text');
10
- var ArrowheadRight = require('@elliemae/ds-icons/ArrowheadRight');
11
- var ArrowheadDown = require('@elliemae/ds-icons/ArrowheadDown');
17
+ var dsIcons = require('@elliemae/ds-icons');
12
18
  var constants = require('../../exported-related/constants.js');
13
- var index$2 = require('../../exported-related/ItemRenderer/index.js');
14
- require('@elliemae/ds-icons/ChevronSmallRight');
19
+ var index$3 = require('../../exported-related/ItemRenderer/index.js');
15
20
  require('react/jsx-runtime');
16
- require('@elliemae/ds-icons/Notifications');
17
- require('@elliemae/ds-icons/ExceptionsSmallFill');
18
- require('@elliemae/ds-icons/AlertsSmallFill');
19
- require('@elliemae/ds-icons/MessagesSmallFill');
20
21
  require('styled-components');
21
- require('@elliemae/ds-icons/OpenWindow');
22
22
  var styled = require('./styled.js');
23
23
  var index = require('../ItemSeparator/index.js');
24
24
  var index$1 = require('../ItemWithDate/index.js');
25
+ var index$2 = require('../ItemTextLabel/index.js');
25
26
 
26
27
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
27
28
 
28
29
  var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
29
30
  var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
30
31
  var Grid__default = /*#__PURE__*/_interopDefaultLegacy(Grid);
31
- var ArrowheadRight__default = /*#__PURE__*/_interopDefaultLegacy(ArrowheadRight);
32
- var ArrowheadDown__default = /*#__PURE__*/_interopDefaultLegacy(ArrowheadDown);
33
32
 
34
33
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
35
34
 
36
35
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
37
36
  const outOfTheBoxSubitemsComponents = {
38
37
  [constants.ITEM_TYPES.LEFT_NAV_ITEM_SEPARATOR]: index.ItemSeparator,
39
- [constants.ITEM_TYPES.LEFT_NAV_ITEM_WITH_DATE]: index$1.ItemWithDate
38
+ [constants.ITEM_TYPES.LEFT_NAV_ITEM_WITH_DATE]: index$1.ItemWithDate,
39
+ [constants.ITEM_TYPES.LEFT_NAV_ITEM_TEXT_LABEL]: index$2.ItemTextLabel
40
40
  };
41
41
 
42
42
  const OutOfTheBoxMapSubitem = props => {
@@ -50,10 +50,10 @@ const OutOfTheBoxMapSubitem = props => {
50
50
  } = props;
51
51
 
52
52
  if (typeof type === 'string' && !!outOfTheBoxSubitemsComponents[type]) {
53
- var _item$itemOpts;
53
+ var _item$itemOpts$indent, _item$itemOpts;
54
54
 
55
55
  const OutOfTheBoxComponent = outOfTheBoxSubitemsComponents[type];
56
- const currentIndent = ((_item$itemOpts = item.itemOpts) === null || _item$itemOpts === void 0 ? void 0 : _item$itemOpts.indent) ?? 0;
56
+ const currentIndent = (_item$itemOpts$indent = (_item$itemOpts = item.itemOpts) === null || _item$itemOpts === void 0 ? void 0 : _item$itemOpts.indent) !== null && _item$itemOpts$indent !== void 0 ? _item$itemOpts$indent : 0;
57
57
 
58
58
  const newItem = _objectSpread(_objectSpread({}, item), {}, {
59
59
  itemOpts: _objectSpread(_objectSpread({}, item.itemOpts), {}, {
@@ -86,7 +86,8 @@ const ItemControlledDrilldown = props => {
86
86
  labelBold,
87
87
  labelColor,
88
88
  isOpened,
89
- items
89
+ items,
90
+ labelDataTestId
90
91
  }
91
92
  },
92
93
  ctx,
@@ -98,7 +99,7 @@ const ItemControlledDrilldown = props => {
98
99
  } = props;
99
100
  const labelOverflow = itemLabelOverflow || leftNavLabelOverflow;
100
101
  const arrowIcon = React.useMemo(() => {
101
- const Component = isOpened ? ArrowheadDown__default["default"] : ArrowheadRight__default["default"];
102
+ const Component = isOpened ? dsIcons.ArrowheadDown : dsIcons.ArrowheadRight;
102
103
  return /*#__PURE__*/_jsx__default["default"](Component, {
103
104
  width: "24px",
104
105
  height: "18px",
@@ -112,7 +113,7 @@ const ItemControlledDrilldown = props => {
112
113
  ctx: ctx
113
114
  }, subitem.dsId));
114
115
  }, [items, isOpened]);
115
- return /*#__PURE__*/_jsx__default["default"](index$2.ItemRenderer, {
116
+ return /*#__PURE__*/_jsx__default["default"](index$3.ItemRenderer, {
116
117
  item: _objectSpread(_objectSpread({}, item), {}, {
117
118
  itemOpts: _objectSpread(_objectSpread({
118
119
  ariaExpanded: isOpened,
@@ -131,7 +132,7 @@ const ItemControlledDrilldown = props => {
131
132
  mt: "-2px"
132
133
  }, void 0, arrowIcon), /*#__PURE__*/_jsx__default["default"](styled.StyledLabel, {
133
134
  pb: "xxxs",
134
- "data-testid": "leftnav-list-item-label",
135
+ "data-testid": labelDataTestId || 'leftnav-list-item-label',
135
136
  labelOverflow: labelOverflow,
136
137
  labelBold: labelBold,
137
138
  labelColor: labelColor
@@ -12,10 +12,13 @@ var Grid__default = /*#__PURE__*/_interopDefaultLegacy(Grid);
12
12
 
13
13
  const StyledLabel = /*#__PURE__*/styled__default["default"](Grid__default["default"]).withConfig({
14
14
  componentId: "sc-1tjij7e-0"
15
- })(["font-size:13px;font-weight:", ";color:", ";line-height:14px;word-break:", ";"], props => props.labelBold ? props.theme.fontWeights.semibold : props.theme.fontWeights.regular, ({
16
- labelColor,
17
- theme
18
- }) => labelColor ? theme.colors[labelColor[0]][labelColor[1]] : theme.colors.neutral[800], props => props.labelOverflow === 'wrapAll' ? 'break-all' : 'normal');
15
+ })(["font-size:13px;font-weight:", ";color:", ";line-height:14px;word-break:", ";"], props => props.labelBold ? props.theme.fontWeights.semibold : props.theme.fontWeights.regular, _ref => {
16
+ let {
17
+ labelColor,
18
+ theme
19
+ } = _ref;
20
+ return labelColor ? theme.colors[labelColor[0]][labelColor[1]] : theme.colors.neutral[800];
21
+ }, props => props.labelOverflow === 'wrapAll' ? 'break-all' : 'normal');
19
22
  const StyledDate = /*#__PURE__*/styled__default["default"](Grid__default["default"]).withConfig({
20
23
  componentId: "sc-1tjij7e-1"
21
24
  })(["font-size:12px;color:", ";line-height:14px;"], props => props.theme.colors.neutral[600]);
@@ -2,21 +2,21 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ require('core-js/modules/esnext.async-iterator.filter.js');
6
+ require('core-js/modules/esnext.iterator.constructor.js');
7
+ require('core-js/modules/esnext.iterator.filter.js');
8
+ require('core-js/modules/esnext.async-iterator.for-each.js');
9
+ require('core-js/modules/esnext.iterator.for-each.js');
5
10
  var _jsx = require('@babel/runtime/helpers/jsx');
6
11
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
7
- require('react');
12
+ var React = require('react');
8
13
  var Grid = require('@elliemae/ds-grid');
9
14
  var dsTruncatedTooltipText = require('@elliemae/ds-truncated-tooltip-text');
10
15
  var constants = require('../../exported-related/constants.js');
11
16
  var index = require('../../exported-related/ItemRenderer/index.js');
12
- require('@elliemae/ds-icons/ChevronSmallRight');
17
+ require('@elliemae/ds-icons');
13
18
  require('react/jsx-runtime');
14
- require('@elliemae/ds-icons/Notifications');
15
- require('@elliemae/ds-icons/ExceptionsSmallFill');
16
- require('@elliemae/ds-icons/AlertsSmallFill');
17
- require('@elliemae/ds-icons/MessagesSmallFill');
18
19
  require('styled-components');
19
- require('@elliemae/ds-icons/OpenWindow');
20
20
  var styled = require('./styled.js');
21
21
 
22
22
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -28,7 +28,12 @@ var Grid__default = /*#__PURE__*/_interopDefaultLegacy(Grid);
28
28
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
29
29
 
30
30
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
31
+
32
+ const notOpenedShadowStyle = isSelected => theme => "\n box-shadow: inset 4px 0 0 0 ".concat(isSelected ? theme.colors.brand[400] : 'transparent', ";\n\n :hover {\n box-shadow: inset 4px 0 0 0 ").concat(isSelected ? theme.colors.brand[400] : theme.colors.brand[300], ";\n }\n\n :active {\n box-shadow: inset 4px 0 0 0 ").concat(theme.colors.brand[400], ";\n }\n");
33
+
31
34
  const ItemHeader = props => {
35
+ var _item$itemOpts$ariaLa;
36
+
32
37
  const {
33
38
  item,
34
39
  item: {
@@ -36,7 +41,8 @@ const ItemHeader = props => {
36
41
  itemOpts: {
37
42
  label,
38
43
  RightComponent,
39
- BottomComponent
44
+ BottomComponent,
45
+ labelDataTestId
40
46
  },
41
47
  CollapsedComponent = () => null
42
48
  },
@@ -48,12 +54,15 @@ const ItemHeader = props => {
48
54
  onItemClick
49
55
  },
50
56
  expandedForAnimation,
51
- setSelectedItem,
52
- setFocusedItem
57
+ setFocusedItem,
58
+ selectedItem,
59
+ selectedParent
53
60
  }
54
61
  } = props;
55
62
  const opened = openedItem === dsId;
56
- const ariaLabel = item.itemOpts.ariaLabel ?? (typeof label === 'string' ? label : 'menuitem');
63
+ const ariaLabel = (_item$itemOpts$ariaLa = item.itemOpts.ariaLabel) !== null && _item$itemOpts$ariaLa !== void 0 ? _item$itemOpts$ariaLa : typeof label === 'string' ? label : 'menuitem';
64
+ const isSelected = selectedItem === dsId || selectedParent === dsId;
65
+ const shadowStyle = React.useCallback(opened => theme => !opened ? notOpenedShadowStyle(isSelected)(theme) : "box-shadow: inset 4px 0 0 0 #52A6EC", [isSelected, openedItem]);
57
66
  return /*#__PURE__*/_jsx__default["default"](index.ItemRenderer, {
58
67
  item: _objectSpread(_objectSpread({}, item), {}, {
59
68
  itemOpts: _objectSpread(_objectSpread({
@@ -66,7 +75,8 @@ const ItemHeader = props => {
66
75
  })
67
76
  }),
68
77
  hasBorderBottom: true,
69
- borderBottomMr: opened ? '12px' : '0px'
78
+ borderBottomMr: opened ? '12px' : '0px',
79
+ shadowStyle: shadowStyle
70
80
  }, void 0, /*#__PURE__*/_jsx__default["default"](Grid__default["default"], {
71
81
  cols: opened ? ['auto', 'auto'] : ['38px'],
72
82
  gutter: "1px",
@@ -78,7 +88,6 @@ const ItemHeader = props => {
78
88
  color: ['brand-primary', 800],
79
89
  onClick: e => {
80
90
  onItemClick(item, e);
81
- setSelectedItem(dsId);
82
91
  },
83
92
  "data-testid": "leftnav-leftcomponent-chevron",
84
93
  tabIndex: 0,
@@ -87,7 +96,7 @@ const ItemHeader = props => {
87
96
  setFocusedItem(constants.CHEVRON_BACK_DS_ID);
88
97
  },
89
98
  role: "button",
90
- "aria-label": `Close ${ariaLabel}`
99
+ "aria-label": "Close ".concat(ariaLabel)
91
100
  }), /*#__PURE__*/_jsx__default["default"](CollapsedComponent, {
92
101
  item: item,
93
102
  ctx: ctx
@@ -95,7 +104,7 @@ const ItemHeader = props => {
95
104
  ml: opened ? 'xxs' : '1px',
96
105
  mt: "xxxs",
97
106
  mb: "15px",
98
- "data-testid": "leftnav-itemlabel",
107
+ "data-testid": labelDataTestId || 'leftnav-itemlabel',
99
108
  labelOverflow: labelOverflow
100
109
  }, void 0, labelOverflow === 'truncate' ? /*#__PURE__*/_jsx__default["default"](dsTruncatedTooltipText.SimpleTruncatedTooltipText, {
101
110
  value: label,
@@ -3,21 +3,20 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var Grid = require('@elliemae/ds-grid');
6
- var ChevronLeft = require('@elliemae/ds-icons/ChevronSmallLeft');
6
+ var dsIcons = require('@elliemae/ds-icons');
7
7
  var styled = require('styled-components');
8
8
 
9
9
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
10
 
11
11
  var Grid__default = /*#__PURE__*/_interopDefaultLegacy(Grid);
12
- var ChevronLeft__default = /*#__PURE__*/_interopDefaultLegacy(ChevronLeft);
13
12
  var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
14
13
 
15
14
  const StyledLabel = /*#__PURE__*/styled__default["default"](Grid__default["default"]).withConfig({
16
15
  componentId: "sc-m5k4h8-0"
17
16
  })(["font-size:14px;color:", ";word-break:", ";"], props => props.theme.colors.neutral[800], props => props.labelOverflow === 'wrapAll' ? 'break-all' : 'normal');
18
- const StyledChevronLeft = /*#__PURE__*/styled__default["default"](ChevronLeft__default["default"]).withConfig({
17
+ const StyledChevronLeft = /*#__PURE__*/styled__default["default"](dsIcons.ChevronSmallLeft).withConfig({
19
18
  componentId: "sc-m5k4h8-1"
20
- })(["cursor:pointer;:focus{outline:1px solid ", ";}"], props => props.theme.colors.brand[800]);
19
+ })(["cursor:pointer;:focus{outline:2px solid ", ";}"], props => props.theme.colors.brand[800]);
21
20
 
22
21
  exports.StyledChevronLeft = StyledChevronLeft;
23
22
  exports.StyledLabel = StyledLabel;
@@ -2,20 +2,20 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ require('core-js/modules/esnext.async-iterator.filter.js');
6
+ require('core-js/modules/esnext.iterator.constructor.js');
7
+ require('core-js/modules/esnext.iterator.filter.js');
8
+ require('core-js/modules/esnext.async-iterator.for-each.js');
9
+ require('core-js/modules/esnext.iterator.for-each.js');
5
10
  var _jsx = require('@babel/runtime/helpers/jsx');
6
11
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
7
12
  var React = require('react');
8
13
  var Grid = require('@elliemae/ds-grid');
9
14
  var dsTruncatedTooltipText = require('@elliemae/ds-truncated-tooltip-text');
10
15
  var index = require('../../exported-related/ItemRenderer/index.js');
11
- require('@elliemae/ds-icons/ChevronSmallRight');
16
+ require('@elliemae/ds-icons');
12
17
  require('react/jsx-runtime');
13
- require('@elliemae/ds-icons/Notifications');
14
- require('@elliemae/ds-icons/ExceptionsSmallFill');
15
- require('@elliemae/ds-icons/AlertsSmallFill');
16
- require('@elliemae/ds-icons/MessagesSmallFill');
17
18
  require('styled-components');
18
- require('@elliemae/ds-icons/OpenWindow');
19
19
  var styled = require('./styled.js');
20
20
 
21
21
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -28,17 +28,7 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
28
28
 
29
29
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
30
30
 
31
- const notOpenedShadowStyle = isSelected => theme => `
32
- box-shadow: inset 4px 0 0 0 ${isSelected ? theme.colors.brand[400] : 'transparent'};
33
-
34
- :hover {
35
- box-shadow: inset 4px 0 0 0 ${isSelected ? theme.colors.brand[400] : theme.colors.neutral[300]};
36
- }
37
-
38
- :active {
39
- box-shadow: inset 4px 0 0 0 ${theme.colors.brand[400]};
40
- }
41
- `;
31
+ const notOpenedShadowStyle = isSelected => theme => "\n box-shadow: inset 4px 0 0 0 ".concat(isSelected ? theme.colors.brand[400] : 'transparent', ";\n\n :hover {\n box-shadow: inset 4px 0 0 0 ").concat(isSelected ? theme.colors.brand[400] : theme.colors.brand[300], ";\n }\n\n :active {\n box-shadow: inset 4px 0 0 0 ").concat(theme.colors.brand[400], ";\n }\n");
42
32
 
43
33
  const ItemLink = props => {
44
34
  const {
@@ -47,7 +37,8 @@ const ItemLink = props => {
47
37
  dsId,
48
38
  itemOpts: {
49
39
  label,
50
- RightComponent
40
+ RightComponent,
41
+ labelDataTestId
51
42
  },
52
43
  CollapsedComponent = () => null
53
44
  },
@@ -57,17 +48,20 @@ const ItemLink = props => {
57
48
  labelOverflow,
58
49
  openedItem
59
50
  },
60
- selectedItem
51
+ selectedItem,
52
+ selectedParent
61
53
  }
62
54
  } = props;
63
- const isSelected = selectedItem === dsId;
64
- const shadowStyle = React.useCallback(theme => !openedItem ? notOpenedShadowStyle(isSelected)(theme) : `box-shadow: inherit`, [isSelected, !openedItem]);
55
+ const isSelected = selectedItem === dsId || selectedParent === dsId;
56
+ const shadowStyle = React.useCallback(opened => theme => !opened ? notOpenedShadowStyle(isSelected)(theme) : "box-shadow: inset 4px 0 0 0 #52A6EC", [isSelected, openedItem]);
65
57
  return /*#__PURE__*/_jsx__default["default"](index.ItemRenderer, {
66
58
  item: _objectSpread(_objectSpread({}, item), {}, {
67
- itemOpts: _objectSpread({
59
+ itemOpts: _objectSpread(_objectSpread({
68
60
  ariaLabel: typeof label === 'string' ? label : '',
69
61
  ariaRole: 'link'
70
- }, item.itemOpts)
62
+ }, item.itemOpts), {}, {
63
+ selectable: true
64
+ })
71
65
  }),
72
66
  shadowStyle: shadowStyle
73
67
  }, void 0, /*#__PURE__*/_jsx__default["default"](Grid__default["default"], {
@@ -83,7 +77,7 @@ const ItemLink = props => {
83
77
  ml: "1px",
84
78
  mt: "xxxs",
85
79
  mb: "15px",
86
- "data-testid": "leftnav-itemlabel",
80
+ "data-testid": labelDataTestId || 'leftnav-itemlabel',
87
81
  labelOverflow: labelOverflow
88
82
  }, void 0, labelOverflow === 'truncate' ? /*#__PURE__*/_jsx__default["default"](dsTruncatedTooltipText.SimpleTruncatedTooltipText, {
89
83
  value: label,
@@ -2,19 +2,19 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ require('core-js/modules/esnext.async-iterator.filter.js');
6
+ require('core-js/modules/esnext.iterator.constructor.js');
7
+ require('core-js/modules/esnext.iterator.filter.js');
8
+ require('core-js/modules/esnext.async-iterator.for-each.js');
9
+ require('core-js/modules/esnext.iterator.for-each.js');
5
10
  var _jsx = require('@babel/runtime/helpers/jsx');
6
11
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
7
12
  require('react');
8
13
  var Grid = require('@elliemae/ds-grid');
9
14
  var index = require('../../exported-related/ItemRenderer/index.js');
10
- require('@elliemae/ds-icons/ChevronSmallRight');
15
+ require('@elliemae/ds-icons');
11
16
  require('react/jsx-runtime');
12
- require('@elliemae/ds-icons/Notifications');
13
- require('@elliemae/ds-icons/ExceptionsSmallFill');
14
- require('@elliemae/ds-icons/AlertsSmallFill');
15
- require('@elliemae/ds-icons/MessagesSmallFill');
16
17
  require('styled-components');
17
- require('@elliemae/ds-icons/OpenWindow');
18
18
  var styled = require('./styled.js');
19
19
 
20
20
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -36,7 +36,8 @@ const ItemSection = props => {
36
36
  label,
37
37
  LeftComponent,
38
38
  RightComponent,
39
- labelRightSection
39
+ labelRightSection,
40
+ labelDataTestId
40
41
  }
41
42
  },
42
43
  ctx,
@@ -48,8 +49,7 @@ const ItemSection = props => {
48
49
  item: _objectSpread(_objectSpread({}, item), {}, {
49
50
  itemOpts: _objectSpread(_objectSpread({}, item.itemOpts), {}, {
50
51
  selectable: false,
51
- focuseable: false,
52
- ariaLive: 'polite'
52
+ focuseable: false
53
53
  }),
54
54
  CollapsedComponent: null
55
55
  }),
@@ -62,7 +62,9 @@ const ItemSection = props => {
62
62
  }, void 0, LeftComponent ? /*#__PURE__*/_jsx__default["default"](LeftComponent, {
63
63
  ctx: ctx,
64
64
  item: item
65
- }) : _div || (_div = /*#__PURE__*/_jsx__default["default"]("div", {})), /*#__PURE__*/_jsx__default["default"](styled.StyledLabel, {}, void 0, label), _StyledVerticalSepara || (_StyledVerticalSepara = /*#__PURE__*/_jsx__default["default"](styled.StyledVerticalSeparator, {})), /*#__PURE__*/_jsx__default["default"](styled.StyledRightLabel, {}, void 0, labelRightSection)), /*#__PURE__*/_jsx__default["default"](Grid__default["default"], {
65
+ }) : _div || (_div = /*#__PURE__*/_jsx__default["default"]("div", {})), /*#__PURE__*/_jsx__default["default"](styled.StyledLabel, {
66
+ "data-testid": labelDataTestId || 'leftnav-section-item-label'
67
+ }, void 0, label), _StyledVerticalSepara || (_StyledVerticalSepara = /*#__PURE__*/_jsx__default["default"](styled.StyledVerticalSeparator, {})), /*#__PURE__*/_jsx__default["default"](styled.StyledRightLabel, {}, void 0, labelRightSection)), /*#__PURE__*/_jsx__default["default"](Grid__default["default"], {
66
68
  ml: "auto",
67
69
  onFocus: e => {
68
70
  setFocusedItem(null);
@@ -2,19 +2,19 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ require('core-js/modules/esnext.async-iterator.filter.js');
6
+ require('core-js/modules/esnext.iterator.constructor.js');
7
+ require('core-js/modules/esnext.iterator.filter.js');
8
+ require('core-js/modules/esnext.async-iterator.for-each.js');
9
+ require('core-js/modules/esnext.iterator.for-each.js');
5
10
  var _jsx = require('@babel/runtime/helpers/jsx');
6
11
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
7
12
  require('react');
8
13
  var styled = require('styled-components');
9
14
  var index = require('../../exported-related/ItemRenderer/index.js');
10
- require('@elliemae/ds-icons/ChevronSmallRight');
15
+ require('@elliemae/ds-icons');
11
16
  require('react/jsx-runtime');
12
- require('@elliemae/ds-icons/Notifications');
13
- require('@elliemae/ds-icons/ExceptionsSmallFill');
14
- require('@elliemae/ds-icons/AlertsSmallFill');
15
- require('@elliemae/ds-icons/MessagesSmallFill');
16
17
  require('@elliemae/ds-grid');
17
- require('@elliemae/ds-icons/OpenWindow');
18
18
 
19
19
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
20
20
 
@@ -2,6 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ require('core-js/modules/esnext.async-iterator.filter.js');
6
+ require('core-js/modules/esnext.iterator.constructor.js');
7
+ require('core-js/modules/esnext.iterator.filter.js');
8
+ require('core-js/modules/esnext.async-iterator.for-each.js');
9
+ require('core-js/modules/esnext.iterator.for-each.js');
5
10
  var _jsx = require('@babel/runtime/helpers/jsx');
6
11
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
7
12
  var React = require('react');
@@ -9,14 +14,9 @@ var Grid = require('@elliemae/ds-grid');
9
14
  var dsTruncatedTooltipText = require('@elliemae/ds-truncated-tooltip-text');
10
15
  var constants = require('../../exported-related/constants.js');
11
16
  var index = require('../../exported-related/ItemRenderer/index.js');
12
- require('@elliemae/ds-icons/ChevronSmallRight');
17
+ require('@elliemae/ds-icons');
13
18
  require('react/jsx-runtime');
14
- require('@elliemae/ds-icons/Notifications');
15
- require('@elliemae/ds-icons/ExceptionsSmallFill');
16
- require('@elliemae/ds-icons/AlertsSmallFill');
17
- require('@elliemae/ds-icons/MessagesSmallFill');
18
19
  require('styled-components');
19
- require('@elliemae/ds-icons/OpenWindow');
20
20
  var styled = require('./styled.js');
21
21
 
22
22
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -29,19 +29,11 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
29
29
 
30
30
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
31
31
 
32
- const notOpenedShadowStyle = isSelected => theme => `
33
- box-shadow: inset 4px 0 0 0 ${isSelected ? theme.colors.brand[400] : 'transparent'};
34
-
35
- :hover {
36
- box-shadow: inset 4px 0 0 0 ${isSelected ? theme.colors.brand[400] : theme.colors.neutral[300]};
37
- }
38
-
39
- :active {
40
- box-shadow: inset 4px 0 0 0 ${theme.colors.brand[400]};
41
- }
42
- `;
32
+ const notOpenedShadowStyle = isSelected => theme => "\n box-shadow: inset 4px 0 0 0 ".concat(isSelected ? theme.colors.brand[400] : 'transparent', ";\n\n :hover {\n box-shadow: inset 4px 0 0 0 ").concat(isSelected ? theme.colors.brand[400] : theme.colors.brand[300], ";\n }\n\n :active {\n box-shadow: inset 4px 0 0 0 ").concat(theme.colors.brand[400], ";\n }\n");
43
33
 
44
34
  const ItemSubmenu = props => {
35
+ var _item$itemOpts$ariaLa;
36
+
45
37
  const {
46
38
  item,
47
39
  item: {
@@ -49,7 +41,8 @@ const ItemSubmenu = props => {
49
41
  itemOpts: {
50
42
  label,
51
43
  RightComponent,
52
- BottomComponent
44
+ BottomComponent,
45
+ labelDataTestId
53
46
  },
54
47
  CollapsedComponent = () => null
55
48
  },
@@ -62,14 +55,14 @@ const ItemSubmenu = props => {
62
55
  },
63
56
  expandedForAnimation,
64
57
  selectedItem,
65
- setSelectedItem,
58
+ selectedParent,
66
59
  setFocusedItem
67
60
  }
68
61
  } = props;
69
62
  const opened = openedItem === dsId;
70
63
  const isSelected = selectedItem === dsId;
71
- const shadowStyle = React.useCallback(theme => !openedItem ? notOpenedShadowStyle(isSelected)(theme) : `box-shadow: inherit`, [isSelected, !openedItem]);
72
- const ariaLabel = item.itemOpts.ariaLabel ?? (typeof label === 'string' ? label : 'menuitem');
64
+ const shadowStyle = React.useCallback(opened => theme => !opened ? notOpenedShadowStyle(isSelected || selectedParent === dsId)(theme) : "box-shadow: inset 4px 0 0 0 #52A6EC", [dsId, isSelected, openedItem, selectedParent]);
65
+ const ariaLabel = (_item$itemOpts$ariaLa = item.itemOpts.ariaLabel) !== null && _item$itemOpts$ariaLa !== void 0 ? _item$itemOpts$ariaLa : typeof label === 'string' ? label : 'menuitem';
73
66
  return /*#__PURE__*/_jsx__default["default"](index.ItemRenderer, {
74
67
  item: _objectSpread(_objectSpread({}, item), {}, {
75
68
  itemOpts: _objectSpread(_objectSpread({}, item.itemOpts), {}, {
@@ -94,7 +87,6 @@ const ItemSubmenu = props => {
94
87
  color: ['brand-primary', 800],
95
88
  onClick: e => {
96
89
  onItemClick(item, e);
97
- setSelectedItem(dsId);
98
90
  },
99
91
  "data-testid": "leftnav-leftcomponent-chevron",
100
92
  tabIndex: 0,
@@ -103,7 +95,7 @@ const ItemSubmenu = props => {
103
95
  setFocusedItem(constants.CHEVRON_BACK_DS_ID);
104
96
  },
105
97
  role: "button",
106
- "aria-label": `Close ${ariaLabel}`
98
+ "aria-label": "Close ".concat(ariaLabel)
107
99
  }), /*#__PURE__*/_jsx__default["default"](CollapsedComponent, {
108
100
  item: item,
109
101
  ctx: ctx
@@ -111,7 +103,7 @@ const ItemSubmenu = props => {
111
103
  ml: opened ? 'xxs' : '1px',
112
104
  mt: "xxxs",
113
105
  mb: "15px",
114
- "data-testid": "leftnav-itemlabel",
106
+ "data-testid": labelDataTestId || 'leftnav-itemlabel',
115
107
  labelOverflow: labelOverflow
116
108
  }, void 0, labelOverflow === 'truncate' ? /*#__PURE__*/_jsx__default["default"](dsTruncatedTooltipText.SimpleTruncatedTooltipText, {
117
109
  value: label,
@@ -124,7 +116,7 @@ const ItemSubmenu = props => {
124
116
  setFocusedItem(null);
125
117
  },
126
118
  onKeyDown: e => e.stopPropagation(),
127
- onClick: e => openedItem && e.stopPropagation(),
119
+ onClick: e => openedItem === dsId && e.stopPropagation(),
128
120
  "data-testid": "leftnav-right-component"
129
121
  }, void 0, RightComponent && /*#__PURE__*/_jsx__default["default"](RightComponent, {
130
122
  ctx: ctx,