@elliemae/ds-menu 2.0.0-alpha.1 → 2.0.0-alpha.13

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 (48) hide show
  1. package/cjs/Menu.js +41 -26
  2. package/cjs/MenuCombobox.js +8 -3
  3. package/cjs/MenuContext.js +1 -1
  4. package/cjs/MenuItems/CheckboxGroup.js +8 -3
  5. package/cjs/MenuItems/MenuItem.js +53 -39
  6. package/cjs/MenuItems/MenuItemCheckable.js +21 -16
  7. package/cjs/MenuItems/MenuItemCheckbox.js +10 -6
  8. package/cjs/MenuItems/MenuItemRadio.js +9 -4
  9. package/cjs/MenuItems/RadioGroup.js +8 -3
  10. package/cjs/MenuItems/SearchableGroup.js +23 -15
  11. package/cjs/MenuItems/SearchableList.js +25 -19
  12. package/cjs/MenuItems/SelectionGroup.js +26 -16
  13. package/cjs/MenuItems/Separator.js +9 -6
  14. package/cjs/MenuItems/SubMenu.js +31 -28
  15. package/cjs/MenuItems/menuItemFactory.js +21 -10
  16. package/cjs/VirtualMenuList.js +22 -15
  17. package/cjs/index.js +1 -1
  18. package/cjs/utils/useHeightByAmountOfItems.js +6 -5
  19. package/esm/Menu.js +26 -11
  20. package/esm/MenuCombobox.js +5 -0
  21. package/esm/MenuItems/CheckboxGroup.js +5 -0
  22. package/esm/MenuItems/MenuItem.js +43 -29
  23. package/esm/MenuItems/MenuItemCheckable.js +14 -8
  24. package/esm/MenuItems/MenuItemCheckbox.js +6 -1
  25. package/esm/MenuItems/MenuItemRadio.js +5 -0
  26. package/esm/MenuItems/RadioGroup.js +5 -0
  27. package/esm/MenuItems/SearchableGroup.js +20 -12
  28. package/esm/MenuItems/SearchableList.js +21 -14
  29. package/esm/MenuItems/SelectionGroup.js +22 -12
  30. package/esm/MenuItems/Separator.js +7 -4
  31. package/esm/MenuItems/SubMenu.js +25 -20
  32. package/esm/MenuItems/menuItemFactory.js +14 -3
  33. package/esm/VirtualMenuList.js +21 -14
  34. package/esm/utils/useHeightByAmountOfItems.js +6 -5
  35. package/package.json +16 -13
  36. package/types/Menu.d.ts +24 -1
  37. package/types/MenuItems/CheckboxGroup.d.ts +24 -4
  38. package/types/MenuItems/MenuItem.d.ts +60 -10
  39. package/types/MenuItems/MenuItemCheckable.d.ts +51 -7
  40. package/types/MenuItems/MenuItemRadio.d.ts +27 -3
  41. package/types/MenuItems/RadioGroup.d.ts +18 -3
  42. package/types/MenuItems/SearchableGroup.d.ts +15 -1
  43. package/types/MenuItems/SearchableList.d.ts +77 -11
  44. package/types/MenuItems/SelectionGroup.d.ts +73 -11
  45. package/types/MenuItems/Separator.d.ts +21 -3
  46. package/types/MenuItems/SubMenu.d.ts +91 -13
  47. package/cjs/package.json +0 -7
  48. package/esm/package.json +0 -7
@@ -3,6 +3,10 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var _jsx = require('@babel/runtime/helpers/jsx');
6
+ require('core-js/modules/web.dom-collections.iterator.js');
7
+ require('core-js/modules/esnext.async-iterator.filter.js');
8
+ require('core-js/modules/esnext.iterator.constructor.js');
9
+ require('core-js/modules/esnext.iterator.filter.js');
6
10
  var React = require('react');
7
11
  var dsClassnames = require('@elliemae/ds-classnames');
8
12
  var FocusGroup = require('@elliemae/ds-shared/FocusGroup');
@@ -20,15 +24,16 @@ var DSSearchBox__default = /*#__PURE__*/_interopDefaultLegacy(DSSearchBox);
20
24
  const SearchBoxWrapper = dsClassnames.aggregatedClasses('div')('menu-search-group', 'search-wrapper');
21
25
  const NoOptionsWrapper = dsClassnames.aggregatedClasses('div')('menu-search-group', 'no-options');
22
26
 
23
- function SearchableGroup({
24
- children,
25
- amountItemsInWindow = 5,
26
- searchTerm: searchTermProp = '',
27
- noOptionsText = 'No options',
28
- height,
29
- width,
30
- focusOnOpen = false
31
- }) {
27
+ function SearchableGroup(_ref) {
28
+ let {
29
+ children,
30
+ amountItemsInWindow = 5,
31
+ searchTerm: searchTermProp = '',
32
+ noOptionsText = 'No options',
33
+ height,
34
+ width,
35
+ focusOnOpen = false
36
+ } = _ref;
32
37
  const searchRef = React.useRef(null);
33
38
  const [searchTerm, setSearchTerm] = React.useState(searchTermProp);
34
39
  React.useEffect(() => {
@@ -46,15 +51,18 @@ function SearchableGroup({
46
51
  }, [focusOnOpen, visible]);
47
52
  const filteredChildren = React.useMemo(() => children.filter(child => !searchTerm || child.props.label.toLowerCase().startsWith(searchTerm.toLowerCase())), [children, searchTerm]);
48
53
  return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
49
- children: [/*#__PURE__*/_jsx__default['default'](SearchBoxWrapper, {}, void 0, /*#__PURE__*/_jsx__default['default'](DSSearchBox__default['default'], {
54
+ children: [/*#__PURE__*/_jsx__default["default"](SearchBoxWrapper, {}, void 0, /*#__PURE__*/_jsx__default["default"](DSSearchBox__default["default"], {
50
55
  innerRef: searchRef,
51
- onSearch: ({
52
- value
53
- }) => setSearchTerm(value),
56
+ onSearch: _ref2 => {
57
+ let {
58
+ value
59
+ } = _ref2;
60
+ return setSearchTerm(value);
61
+ },
54
62
  searchOnEnter: false,
55
63
  showIcon: false,
56
64
  value: searchTerm
57
- })), !filteredChildren.length && /*#__PURE__*/_jsx__default['default'](NoOptionsWrapper, {}, void 0, noOptionsText), /*#__PURE__*/_jsx__default['default'](VirtualMenuList, {
65
+ })), !filteredChildren.length && /*#__PURE__*/_jsx__default["default"](NoOptionsWrapper, {}, void 0, noOptionsText), /*#__PURE__*/_jsx__default["default"](VirtualMenuList, {
58
66
  amountItemsInWindow: amountItemsInWindow,
59
67
  height: height,
60
68
  items: filteredChildren,
@@ -90,4 +98,4 @@ DSMenuSearchableGroupWithSchema.propTypes = props;
90
98
  var SearchableGroup$1 = FocusGroup.focusGroupManagerHoc(SearchableGroup);
91
99
 
92
100
  exports.DSMenuSearchableGroupWithSchema = DSMenuSearchableGroupWithSchema;
93
- exports['default'] = SearchableGroup$1;
101
+ exports["default"] = SearchableGroup$1;
@@ -3,35 +3,41 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
+ require('core-js/modules/web.dom-collections.iterator.js');
7
+ require('core-js/modules/esnext.async-iterator.filter.js');
8
+ require('core-js/modules/esnext.iterator.constructor.js');
9
+ require('core-js/modules/esnext.iterator.filter.js');
10
+ require('core-js/modules/esnext.async-iterator.for-each.js');
11
+ require('core-js/modules/esnext.iterator.for-each.js');
6
12
  var React = require('react');
7
13
  var reactDesc = require('react-desc');
8
- var utils = require('@elliemae/ds-utilities/utils');
9
- var DSComboBox = require('@elliemae/ds-form/ComboBox');
14
+ var dsUtilities = require('@elliemae/ds-utilities');
15
+ var dsForm = require('@elliemae/ds-form');
10
16
  var jsxRuntime = require('react/jsx-runtime');
11
17
 
12
18
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
19
 
14
20
  var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
15
- var DSComboBox__default = /*#__PURE__*/_interopDefaultLegacy(DSComboBox);
16
21
 
17
22
  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; }
18
23
 
19
- 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; }
24
+ 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; }
20
25
 
21
26
  const noop = () => {};
22
27
 
23
- function SearchableList({
24
- onSelectMenuItem = noop,
25
- components = {},
26
- searchTerm: searchTermProp = '',
27
- items = [],
28
- dropdownFilterOptions = {},
29
- returnValue,
30
- extraListProps = {},
31
- appendTermInList = false,
32
- maxOptions = 10,
33
- loading = false
34
- }) {
28
+ function SearchableList(_ref) {
29
+ let {
30
+ onSelectMenuItem = noop,
31
+ components = {},
32
+ searchTerm: searchTermProp = '',
33
+ items = [],
34
+ dropdownFilterOptions = {},
35
+ returnValue,
36
+ extraListProps = {},
37
+ appendTermInList = false,
38
+ maxOptions = 10,
39
+ loading = false
40
+ } = _ref;
35
41
  const [searchTerm, setInputValue] = React.useState(searchTermProp);
36
42
  const handleInputChange = React.useCallback((value, args) => {
37
43
  const action = args ? args.action : null;
@@ -46,11 +52,11 @@ function SearchableList({
46
52
  handleFilterByText();
47
53
  }
48
54
  }, [searchTerm]);
49
- const options = React.useMemo(() => searchTerm && appendTermInList ? utils.uniqBy([{
55
+ const options = React.useMemo(() => searchTerm && appendTermInList ? dsUtilities.uniqBy([{
50
56
  id: searchTerm,
51
57
  label: searchTerm
52
58
  }].concat(items), item => item.label) : items, [searchTerm, appendTermInList]);
53
- return /*#__PURE__*/jsxRuntime.jsx(DSComboBox__default['default'], _objectSpread(_objectSpread({
59
+ return /*#__PURE__*/jsxRuntime.jsx(dsForm.DSComboBox, _objectSpread(_objectSpread({
54
60
  autoFocus: true,
55
61
  components: _objectSpread({
56
62
  DropdownIndicator: null
@@ -108,4 +114,4 @@ const DSMenuSearchableListWithSchema = reactDesc.describe(SearchableList);
108
114
  DSMenuSearchableListWithSchema.propTypes = props;
109
115
 
110
116
  exports.DSMenuSearchableListWithSchema = DSMenuSearchableListWithSchema;
111
- exports['default'] = SearchableList;
117
+ exports["default"] = SearchableList;
@@ -4,6 +4,13 @@ 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 reactDesc = require('react-desc');
9
16
  var CheckableGroup = require('@elliemae/ds-shared/CheckableGroup');
@@ -18,21 +25,23 @@ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_definePropert
18
25
 
19
26
  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; }
20
27
 
21
- 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; }
28
+ 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; }
22
29
 
23
30
  const noop = () => null;
24
31
 
25
- function SelectionGroup({
26
- multi = false,
27
- searchable = false,
28
- focusOnOpen = false,
29
- onSelect = noop,
30
- children,
31
- items = undefined,
32
- active = multi ? [] : '',
33
- width,
34
- height
35
- }) {
32
+ function SelectionGroup(_ref) {
33
+ let {
34
+ multi = false,
35
+ searchable = false,
36
+ focusOnOpen = false,
37
+ onSelect = noop,
38
+ children,
39
+ items = undefined,
40
+ active = multi ? [] : '',
41
+ width,
42
+ height,
43
+ maxOptions = 5
44
+ } = _ref;
36
45
  const renderedItems = React.useMemo(() => items && items.map(item => {
37
46
  const Component = menuItemFactory.menuItemFactory(multi ? 'checkbox' : 'radio');
38
47
  return /*#__PURE__*/React.createElement(Component, _objectSpread(_objectSpread({}, item), {}, {
@@ -49,7 +58,7 @@ function SelectionGroup({
49
58
  });
50
59
 
51
60
  if (searchable) {
52
- return /*#__PURE__*/_jsx__default['default'](SearchableGroup['default'], {
61
+ return /*#__PURE__*/_jsx__default["default"](SearchableGroup["default"], {
53
62
  focusOnOpen: focusOnOpen,
54
63
  height: height,
55
64
  items: items,
@@ -57,10 +66,11 @@ function SelectionGroup({
57
66
  }, void 0, decoratedGroupChildren);
58
67
  }
59
68
 
60
- return /*#__PURE__*/_jsx__default['default'](VirtualMenuList, {
69
+ return /*#__PURE__*/_jsx__default["default"](VirtualMenuList, {
61
70
  height: height,
62
71
  items: decoratedGroupChildren,
63
- width: width
72
+ width: width,
73
+ amountItemsInWindow: maxOptions
64
74
  });
65
75
  }
66
76
 
@@ -94,4 +104,4 @@ const DSMenuSelectionGroupWithSchema = reactDesc.describe(SelectionGroup);
94
104
  DSMenuSelectionGroupWithSchema.propTypes = props;
95
105
 
96
106
  exports.DSMenuSelectionGroupWithSchema = DSMenuSelectionGroupWithSchema;
97
- exports['default'] = SelectionGroup;
107
+ exports["default"] = SelectionGroup;
@@ -17,15 +17,18 @@ var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
17
17
 
18
18
  var _DSSeparator;
19
19
  const blockName = 'menu-separator';
20
- const Li = /*#__PURE__*/styled__default['default'].li.withConfig({
20
+ const Li = /*#__PURE__*/styled__default["default"].li.withConfig({
21
21
  componentId: "sc-aysbq3-0"
22
22
  })(["display:flex;align-items:flex-start;flex-direction:column;"]);
23
23
  const Title = dsClassnames.aggregatedClasses('h5')(blockName, 'title');
24
24
 
25
- const MenuSeparator = ({
26
- title,
27
- showSeparator = true
28
- }) => /*#__PURE__*/_jsx__default['default'](Li, {}, void 0, showSeparator && (_DSSeparator || (_DSSeparator = /*#__PURE__*/_jsx__default['default'](DSSeparator__default['default'], {}))), title && /*#__PURE__*/_jsx__default['default'](Title, {}, void 0, title));
25
+ const MenuSeparator = _ref => {
26
+ let {
27
+ title,
28
+ showSeparator = true
29
+ } = _ref;
30
+ return /*#__PURE__*/_jsx__default["default"](Li, {}, void 0, showSeparator && (_DSSeparator || (_DSSeparator = /*#__PURE__*/_jsx__default["default"](DSSeparator__default["default"], {}))), title && /*#__PURE__*/_jsx__default["default"](Title, {}, void 0, title));
31
+ };
29
32
 
30
33
  const props = {
31
34
  /** menu separator h5 title */
@@ -38,4 +41,4 @@ const DSMenuSeparatorWithSchema = reactDesc.describe(MenuSeparator);
38
41
  DSMenuSeparatorWithSchema.propTypes = props;
39
42
 
40
43
  exports.DSMenuSeparatorWithSchema = DSMenuSeparatorWithSchema;
41
- exports['default'] = MenuSeparator;
44
+ exports["default"] = MenuSeparator;
@@ -4,15 +4,19 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
6
  var _jsx = require('@babel/runtime/helpers/jsx');
7
+ require('core-js/modules/web.dom-collections.iterator.js');
8
+ require('core-js/modules/esnext.async-iterator.filter.js');
9
+ require('core-js/modules/esnext.iterator.constructor.js');
10
+ require('core-js/modules/esnext.iterator.filter.js');
11
+ require('core-js/modules/esnext.async-iterator.for-each.js');
12
+ require('core-js/modules/esnext.iterator.for-each.js');
7
13
  var React = require('react');
8
14
  var reactDesc = require('react-desc');
9
- var ChevronRight = require('@elliemae/ds-icons/ChevronSmallRight');
10
- var VerticalElipsis = require('@elliemae/ds-icons/MoreOptionsVert');
15
+ var dsIcons = require('@elliemae/ds-icons');
11
16
  var FocusGroup = require('@elliemae/ds-shared/FocusGroup');
12
17
  var dsHidden = require('@elliemae/ds-hidden');
13
18
  var DSButton = require('@elliemae/ds-button');
14
19
  var DSPopper = require('@elliemae/ds-popper');
15
- var interaction = require('@elliemae/ds-popper/interaction');
16
20
  var styled = require('styled-components');
17
21
  var Menu = require('../Menu.js');
18
22
  var MenuItem = require('./MenuItem.js');
@@ -22,33 +26,32 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
22
26
 
23
27
  var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
24
28
  var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
25
- var ChevronRight__default = /*#__PURE__*/_interopDefaultLegacy(ChevronRight);
26
- var VerticalElipsis__default = /*#__PURE__*/_interopDefaultLegacy(VerticalElipsis);
27
29
  var DSButton__default = /*#__PURE__*/_interopDefaultLegacy(DSButton);
28
30
  var DSPopper__default = /*#__PURE__*/_interopDefaultLegacy(DSPopper);
29
31
  var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
30
32
 
31
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; }
32
34
 
33
- 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; }
34
- const ChevronRightComp = /*#__PURE__*/styled__default['default'].div.withConfig({
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; }
36
+ const ChevronRightComp = /*#__PURE__*/styled__default["default"].div.withConfig({
35
37
  componentId: "sc-1qhp1z-0"
36
38
  })(["display:flex;justify-content:center;align-items:center;width:28px;"]);
37
39
 
38
- function SubMenu({
39
- noAddon,
40
- leftAddon = undefined,
41
- label = undefined,
42
- interactionType = 'hover',
43
- children: subitems,
44
- rightAddonType,
45
- disabledAddonInactive,
46
- checkableProps = {},
47
- customRenderer,
48
- onClick,
49
- closeMenu,
50
- id
51
- }) {
40
+ function SubMenu(_ref) {
41
+ let {
42
+ noAddon,
43
+ leftAddon = undefined,
44
+ label = undefined,
45
+ interactionType = 'hover',
46
+ children: subitems,
47
+ rightAddonType,
48
+ disabledAddonInactive,
49
+ checkableProps = {},
50
+ customRenderer,
51
+ onClick,
52
+ closeMenu,
53
+ id
54
+ } = _ref;
52
55
  const itemRef = React.useRef(null);
53
56
  const focusOnOpen = React.useRef(false);
54
57
  const [isAddonHovered, setIsAddonHovered] = React.useState(false);
@@ -100,11 +103,11 @@ function SubMenu({
100
103
  } : {
101
104
  onClick: handleShowWithMouse
102
105
  };
103
- const rightAddon = rightAddonType === 'elipsis' ? /*#__PURE__*/_jsx__default['default'](DSButton__default['default'], {
106
+ const rightAddon = rightAddonType === 'elipsis' ? /*#__PURE__*/_jsx__default["default"](DSButton__default["default"], {
104
107
  "aria-label": "vertical-elipsis",
105
108
  "data-testid": "vertical-elipsis",
106
109
  buttonType: "text",
107
- leftIcon: /*#__PURE__*/_jsx__default['default'](VerticalElipsis__default['default'], {
110
+ leftIcon: /*#__PURE__*/_jsx__default["default"](dsIcons.MoreOptionsVert, {
108
111
  className: "submenu-arrow",
109
112
  color: visible || isAddonHovered ? ['brand-primary', 800] : ['neutral', 500],
110
113
  size: "s"
@@ -112,14 +115,14 @@ function SubMenu({
112
115
  onClick: e => handleShowSubItemsWithMouse(e),
113
116
  size: "m",
114
117
  variant: DSButton.BUTTON_VARIANT.DEFAULT
115
- }) : /*#__PURE__*/_jsx__default['default'](ChevronRightComp, {}, void 0, /*#__PURE__*/_jsx__default['default'](ChevronRight__default['default'], {
118
+ }) : /*#__PURE__*/_jsx__default["default"](ChevronRightComp, {}, void 0, /*#__PURE__*/_jsx__default["default"](dsIcons.ChevronSmallRight, {
116
119
  "data-testid": "chevron-right",
117
120
  className: "submenu-arrow",
118
121
  color: visible || isAddonHovered ? ['brand-primary', 800] : ['neutral', 500],
119
122
  size: "sm"
120
123
  }));
121
124
  return /*#__PURE__*/jsxRuntime.jsx(jsxRuntime.Fragment, {
122
- children: /*#__PURE__*/_jsx__default['default'](DSPopper__default['default'], {
125
+ children: /*#__PURE__*/_jsx__default["default"](DSPopper__default["default"], {
123
126
  contentComponent: /*#__PURE__*/jsxRuntime.jsx(Menu.Menu, _objectSpread(_objectSpread({
124
127
  focusKeyBindings: {
125
128
  ArrowLeft: [() => focusItemByNode(itemRef.current), 'exit']
@@ -136,7 +139,7 @@ function SubMenu({
136
139
  onOpen: opening => opening ? onShow() : onHide(),
137
140
  placement: "right-start",
138
141
  showArrow: false,
139
- triggerComponent: /*#__PURE__*/jsxRuntime.jsx(MenuItem['default'], _objectSpread(_objectSpread({
142
+ triggerComponent: /*#__PURE__*/jsxRuntime.jsx(MenuItem["default"], _objectSpread(_objectSpread({
140
143
  customRenderer: customRenderer,
141
144
  disabledAddonInactive: disabledAddonInactive,
142
145
  id: id,
@@ -171,7 +174,7 @@ const props = {
171
174
  label: reactDesc.PropTypes.string.description('submenu label'),
172
175
 
173
176
  /** A type indicating how to open/close the tooltip */
174
- interactionType: reactDesc.PropTypes.oneOf(interaction.interactions).description('A type indicating how to open/close the tooltip'),
177
+ interactionType: reactDesc.PropTypes.oneOf(DSPopper.interactions).description('A type indicating how to open/close the tooltip'),
175
178
 
176
179
  /** sub menu items */
177
180
  children: reactDesc.PropTypes.oneOfType([reactDesc.PropTypes.array, reactDesc.PropTypes.node]).description('sub menu items'),
@@ -197,4 +200,4 @@ const DSSubMenuWithSchema = reactDesc.describe(SubMenu);
197
200
  DSSubMenuWithSchema.propTypes = props;
198
201
 
199
202
  exports.DSSubMenuWithSchema = DSSubMenuWithSchema;
200
- exports['default'] = SubMenu;
203
+ exports["default"] = SubMenu;
@@ -3,8 +3,15 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
+ require('core-js/modules/esnext.async-iterator.map.js');
7
+ require('core-js/modules/esnext.iterator.map.js');
8
+ require('core-js/modules/esnext.async-iterator.filter.js');
9
+ require('core-js/modules/esnext.iterator.constructor.js');
10
+ require('core-js/modules/esnext.iterator.filter.js');
11
+ require('core-js/modules/esnext.async-iterator.for-each.js');
12
+ require('core-js/modules/esnext.iterator.for-each.js');
6
13
  var React = require('react');
7
- var utils = require('@elliemae/ds-utilities/utils');
14
+ var dsUtilities = require('@elliemae/ds-utilities');
8
15
  var Separator = require('./Separator.js');
9
16
  var MenuItem = require('./MenuItem.js');
10
17
  var SubMenu = require('./SubMenu.js');
@@ -18,26 +25,30 @@ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_definePropert
18
25
 
19
26
  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; }
20
27
 
21
- 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; }
28
+ 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; }
22
29
  const itemTypes = {
23
- separator: Separator['default'],
24
- menuitem: MenuItem['default'],
25
- radio: MenuItemRadio['default'],
30
+ separator: Separator["default"],
31
+ menuitem: MenuItem["default"],
32
+ radio: MenuItemRadio["default"],
26
33
  checkbox: MenuItemCheckbox,
27
- submenu: SubMenu['default'],
28
- 'selection-group': SelectionGroup['default']
34
+ submenu: SubMenu["default"],
35
+ 'selection-group': SelectionGroup["default"]
29
36
  };
30
37
  const fallback = {
31
38
  SelectionGroup: 'selection-group'
32
39
  };
33
- function menuItemFactory(type = '', items, defaultItem = itemTypes.menuitem) {
40
+ function menuItemFactory() {
41
+ let type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
42
+ let items = arguments.length > 1 ? arguments[1] : undefined;
43
+ let defaultItem = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : itemTypes.menuitem;
34
44
  const itemsObject = items || itemTypes;
35
45
  const parsedType = fallback[type] || type.toLowerCase();
36
46
  return itemsObject[parsedType] || defaultItem;
37
47
  }
38
- function renderMenuItems(options, factory = menuItemFactory) {
48
+ function renderMenuItems(options) {
49
+ let factory = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : menuItemFactory;
39
50
  return options.map((option, index) => {
40
- if (utils.isFunction(option.renderer)) {
51
+ if (dsUtilities.isFunction(option.renderer)) {
41
52
  return option.renderer({
42
53
  key: option.id,
43
54
  item: option
@@ -1,6 +1,9 @@
1
1
  'use strict';
2
2
 
3
3
  var _jsx = require('@babel/runtime/helpers/jsx');
4
+ require('core-js/modules/esnext.async-iterator.for-each.js');
5
+ require('core-js/modules/esnext.iterator.constructor.js');
6
+ require('core-js/modules/esnext.iterator.for-each.js');
4
7
  require('react');
5
8
  var reactWindow = require('react-window');
6
9
  var useHeightByAmountOfItems = require('./utils/useHeightByAmountOfItems.js');
@@ -9,27 +12,31 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
9
12
 
10
13
  var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
11
14
 
12
- const MenuItem = ({
13
- data,
14
- index,
15
- style
16
- }) => /*#__PURE__*/_jsx__default['default']("div", {
17
- style: style
18
- }, index, data && data[index] ? data[index] : ''); // eslint-disable-next-line no-unused-vars
15
+ const MenuItem = _ref => {
16
+ let {
17
+ data,
18
+ index,
19
+ style
20
+ } = _ref;
21
+ return /*#__PURE__*/_jsx__default["default"]("div", {
22
+ style: style
23
+ }, index, data && data[index] ? data[index] : '');
24
+ }; // eslint-disable-next-line no-unused-vars
19
25
 
20
- function VirtualMenuList({
21
- items,
22
- itemHeight = 32,
23
- amountItemsInWindow = 5,
24
- width,
25
- height
26
- }) {
26
+ function VirtualMenuList(_ref2) {
27
+ let {
28
+ items,
29
+ itemHeight = 32,
30
+ amountItemsInWindow = 5,
31
+ width,
32
+ height
33
+ } = _ref2;
27
34
  const computedListHeight = useHeightByAmountOfItems({
28
35
  amountItems: amountItemsInWindow,
29
36
  itemHeight,
30
37
  items
31
38
  });
32
- return /*#__PURE__*/_jsx__default['default'](reactWindow.FixedSizeList, {
39
+ return /*#__PURE__*/_jsx__default["default"](reactWindow.FixedSizeList, {
33
40
  height: height || computedListHeight,
34
41
  itemCount: items.length,
35
42
  itemData: items,
package/cjs/index.js CHANGED
@@ -20,7 +20,7 @@ var menuItemFactory = require('./MenuItems/menuItemFactory.js');
20
20
 
21
21
  exports.DSMenuWithSchema = Menu.DSMenuWithSchema;
22
22
  exports.Menu = Menu.Menu;
23
- exports.default = Menu.Menu;
23
+ exports["default"] = Menu.Menu;
24
24
  exports.DSMenuItemWithSchema = MenuItem.DSMenuItemWithSchema;
25
25
  exports.DSSubMenuWithSchema = SubMenu.DSSubMenuWithSchema;
26
26
  exports.DSMenuCheckboxGroupWithSchema = CheckboxGroup.DSMenuCheckboxGroupWithSchema;
@@ -7,11 +7,12 @@ const calculateHeight = (itemHeight, amountItemsInWindow, itemsLength) => {
7
7
  return itemHeight * realAmountItemsInWindow;
8
8
  };
9
9
 
10
- function useHeightByAmountOfItems({
11
- itemHeight,
12
- amountItems,
13
- items
14
- }) {
10
+ function useHeightByAmountOfItems(_ref) {
11
+ let {
12
+ itemHeight,
13
+ amountItems,
14
+ items
15
+ } = _ref;
15
16
  const calculatedHeight = React.useMemo(() => calculateHeight(itemHeight, amountItems, items.length), [amountItems, items]);
16
17
  return calculatedHeight;
17
18
  }
package/esm/Menu.js CHANGED
@@ -1,6 +1,18 @@
1
1
  import _jsx from '@babel/runtime/helpers/esm/jsx';
2
2
  import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
3
3
  import _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';
4
+ import 'core-js/modules/esnext.async-iterator.some.js';
5
+ import 'core-js/modules/esnext.iterator.constructor.js';
6
+ import 'core-js/modules/esnext.iterator.some.js';
7
+ import 'core-js/modules/esnext.async-iterator.constructor.js';
8
+ import 'core-js/modules/esnext.async-iterator.to-array.js';
9
+ import 'core-js/modules/esnext.iterator.to-array.js';
10
+ import 'core-js/modules/esnext.async-iterator.map.js';
11
+ import 'core-js/modules/esnext.iterator.map.js';
12
+ import 'core-js/modules/esnext.async-iterator.filter.js';
13
+ import 'core-js/modules/esnext.iterator.filter.js';
14
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
15
+ import 'core-js/modules/esnext.iterator.for-each.js';
4
16
  import React, { useRef, useContext, useMemo, useEffect } from 'react';
5
17
  import { PropTypes, describe } from 'react-desc';
6
18
  import { omit } from 'lodash';
@@ -34,13 +46,16 @@ const blockName = 'menu';
34
46
 
35
47
  const noop = () => {};
36
48
 
37
- const MenuComponent = aggregatedClasses('div')(blockName, '', ({
38
- menuComboBox,
39
- type
40
- }) => ({
41
- 'menu-combo-box': menuComboBox,
42
- [`type-${type}`]: type
43
- }));
49
+ const MenuComponent = aggregatedClasses('div')(blockName, '', _ref => {
50
+ let {
51
+ menuComboBox,
52
+ type
53
+ } = _ref;
54
+ return {
55
+ 'menu-combo-box': menuComboBox,
56
+ ["type-".concat(type)]: type
57
+ };
58
+ });
44
59
  /**
45
60
  * todo: -- IDEA -- each menu could have an overlay based on an overlay stack context so we can
46
61
  * capture the context of the clicks on very nested components
@@ -48,7 +63,7 @@ const MenuComponent = aggregatedClasses('div')(blockName, '', ({
48
63
 
49
64
  const isChildOfType = (child, type) => child.type.name === type;
50
65
 
51
- function DSMenu(_ref) {
66
+ function DSMenu(_ref2) {
52
67
  let {
53
68
  containerProps = {},
54
69
  innerRef,
@@ -64,8 +79,8 @@ function DSMenu(_ref) {
64
79
  maxWidth = undefined,
65
80
  closeMenu,
66
81
  responsiveHeight = false
67
- } = _ref,
68
- otherProps = _objectWithoutProperties(_ref, _excluded);
82
+ } = _ref2,
83
+ otherProps = _objectWithoutProperties(_ref2, _excluded);
69
84
 
70
85
  const menuRef = useRef(null);
71
86
  const {
@@ -118,7 +133,7 @@ function DSMenu(_ref) {
118
133
  maxWidth
119
134
  }, responsiveHeight ? {
120
135
  overflowY: 'scroll',
121
- maxHeight: responsiveHeight ? `${window.innerHeight - RESPONSIVE_HEIHGT_MARGIN}px` : undefined
136
+ maxHeight: responsiveHeight ? "".concat(window.innerHeight - RESPONSIVE_HEIHGT_MARGIN, "px") : undefined
122
137
  } : {})
123
138
  }, void 0, nextChildren)
124
139
  }))) : null;
@@ -1,3 +1,8 @@
1
+ import 'core-js/modules/esnext.async-iterator.filter.js';
2
+ import 'core-js/modules/esnext.iterator.constructor.js';
3
+ import 'core-js/modules/esnext.iterator.filter.js';
4
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
5
+ import 'core-js/modules/esnext.iterator.for-each.js';
1
6
  import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
2
7
  import _jsx from '@babel/runtime/helpers/esm/jsx';
3
8
  import _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';
@@ -1,3 +1,8 @@
1
+ import 'core-js/modules/esnext.async-iterator.filter.js';
2
+ import 'core-js/modules/esnext.iterator.constructor.js';
3
+ import 'core-js/modules/esnext.iterator.filter.js';
4
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
5
+ import 'core-js/modules/esnext.iterator.for-each.js';
1
6
  import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
2
7
  import 'react';
3
8
  import { PropTypes, describe } from 'react-desc';