@elliemae/ds-menu 1.60.0 → 2.0.0-alpha.12

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 (114) hide show
  1. package/cjs/Menu.js +191 -39
  2. package/cjs/MenuCombobox.js +38 -80
  3. package/cjs/MenuContext.js +1 -2
  4. package/cjs/MenuItems/CheckboxGroup.js +17 -10
  5. package/cjs/MenuItems/MenuItem.js +199 -36
  6. package/cjs/MenuItems/MenuItemCheckable.js +114 -35
  7. package/cjs/MenuItems/MenuItemCheckbox.js +39 -34
  8. package/cjs/MenuItems/MenuItemRadio.js +36 -35
  9. package/cjs/MenuItems/RadioGroup.js +17 -10
  10. package/cjs/MenuItems/SearchableGroup.js +49 -57
  11. package/cjs/MenuItems/SearchableList.js +35 -51
  12. package/cjs/MenuItems/SelectionGroup.js +103 -36
  13. package/cjs/MenuItems/Separator.js +17 -16
  14. package/cjs/MenuItems/SubMenu.js +199 -36
  15. package/cjs/MenuItems/menuItemFactory.js +67 -36
  16. package/cjs/VirtualMenuList.js +27 -23
  17. package/cjs/index.js +27 -48
  18. package/cjs/utils/useHeightByAmountOfItems.js +8 -9
  19. package/esm/Menu.js +180 -31
  20. package/esm/MenuCombobox.js +33 -74
  21. package/esm/MenuContext.js +0 -1
  22. package/esm/MenuItems/CheckboxGroup.js +15 -7
  23. package/esm/MenuItems/MenuItem.js +191 -31
  24. package/esm/MenuItems/MenuItemCheckable.js +107 -30
  25. package/esm/MenuItems/MenuItemCheckbox.js +33 -30
  26. package/esm/MenuItems/MenuItemRadio.js +31 -30
  27. package/esm/MenuItems/RadioGroup.js +15 -7
  28. package/esm/MenuItems/SearchableGroup.js +48 -55
  29. package/esm/MenuItems/SearchableList.js +34 -47
  30. package/esm/MenuItems/SelectionGroup.js +97 -31
  31. package/esm/MenuItems/Separator.js +14 -13
  32. package/esm/MenuItems/SubMenu.js +190 -31
  33. package/esm/MenuItems/menuItemFactory.js +62 -31
  34. package/esm/VirtualMenuList.js +25 -21
  35. package/esm/index.js +7 -28
  36. package/esm/utils/useHeightByAmountOfItems.js +8 -9
  37. package/package.json +109 -21
  38. package/types/Menu.d.ts +28 -0
  39. package/types/MenuCombobox.d.ts +28 -0
  40. package/types/MenuContext.d.ts +3 -0
  41. package/types/MenuItems/CheckboxGroup.d.ts +32 -0
  42. package/types/MenuItems/MenuItem.d.ts +79 -0
  43. package/types/MenuItems/MenuItemCheckable.d.ts +86 -0
  44. package/types/MenuItems/MenuItemCheckbox.d.ts +6 -0
  45. package/types/MenuItems/MenuItemRadio.d.ts +37 -0
  46. package/types/MenuItems/RadioGroup.d.ts +26 -0
  47. package/types/MenuItems/SearchableGroup.d.ts +18 -0
  48. package/types/MenuItems/SearchableList.d.ts +106 -0
  49. package/types/MenuItems/SelectionGroup.d.ts +98 -0
  50. package/types/MenuItems/Separator.d.ts +34 -0
  51. package/types/MenuItems/SubMenu.d.ts +122 -0
  52. package/types/MenuItems/menuItemFactory.d.ts +3 -0
  53. package/types/VirtualMenuList.d.ts +8 -0
  54. package/types/index.d.ts +13 -0
  55. package/types/tests/Menu.test.d.ts +1 -0
  56. package/types/tests/MenuItem.test.d.ts +1 -0
  57. package/types/utils/useHeightByAmountOfItems.d.ts +5 -0
  58. package/Menu/package.json +0 -10
  59. package/MenuCombobox/package.json +0 -10
  60. package/MenuContext/package.json +0 -10
  61. package/MenuItems/CheckboxGroup/package.json +0 -10
  62. package/MenuItems/MenuItem/package.json +0 -10
  63. package/MenuItems/MenuItemCheckable/package.json +0 -10
  64. package/MenuItems/MenuItemCheckbox/package.json +0 -10
  65. package/MenuItems/MenuItemRadio/package.json +0 -10
  66. package/MenuItems/RadioGroup/package.json +0 -10
  67. package/MenuItems/SearchableGroup/package.json +0 -10
  68. package/MenuItems/SearchableList/package.json +0 -10
  69. package/MenuItems/SelectionGroup/package.json +0 -10
  70. package/MenuItems/Separator/package.json +0 -10
  71. package/MenuItems/SubMenu/package.json +0 -10
  72. package/MenuItems/menuItemFactory/package.json +0 -10
  73. package/VirtualMenuList/package.json +0 -10
  74. package/cjs/Menu.js.map +0 -1
  75. package/cjs/MenuCombobox.js.map +0 -1
  76. package/cjs/MenuContext.js.map +0 -1
  77. package/cjs/MenuItems/CheckboxGroup.js.map +0 -1
  78. package/cjs/MenuItems/MenuItem.js.map +0 -1
  79. package/cjs/MenuItems/MenuItemCheckable.js.map +0 -1
  80. package/cjs/MenuItems/MenuItemCheckbox.js.map +0 -1
  81. package/cjs/MenuItems/MenuItemRadio.js.map +0 -1
  82. package/cjs/MenuItems/RadioGroup.js.map +0 -1
  83. package/cjs/MenuItems/SearchableGroup.js.map +0 -1
  84. package/cjs/MenuItems/SearchableList.js.map +0 -1
  85. package/cjs/MenuItems/SelectionGroup.js.map +0 -1
  86. package/cjs/MenuItems/Separator.js.map +0 -1
  87. package/cjs/MenuItems/SubMenu.js.map +0 -1
  88. package/cjs/MenuItems/menuItemFactory.js.map +0 -1
  89. package/cjs/SubMenu-22be0a18.js +0 -806
  90. package/cjs/SubMenu-22be0a18.js.map +0 -1
  91. package/cjs/VirtualMenuList.js.map +0 -1
  92. package/cjs/index.js.map +0 -1
  93. package/cjs/utils/useHeightByAmountOfItems.js.map +0 -1
  94. package/esm/Menu.js.map +0 -1
  95. package/esm/MenuCombobox.js.map +0 -1
  96. package/esm/MenuContext.js.map +0 -1
  97. package/esm/MenuItems/CheckboxGroup.js.map +0 -1
  98. package/esm/MenuItems/MenuItem.js.map +0 -1
  99. package/esm/MenuItems/MenuItemCheckable.js.map +0 -1
  100. package/esm/MenuItems/MenuItemCheckbox.js.map +0 -1
  101. package/esm/MenuItems/MenuItemRadio.js.map +0 -1
  102. package/esm/MenuItems/RadioGroup.js.map +0 -1
  103. package/esm/MenuItems/SearchableGroup.js.map +0 -1
  104. package/esm/MenuItems/SearchableList.js.map +0 -1
  105. package/esm/MenuItems/SelectionGroup.js.map +0 -1
  106. package/esm/MenuItems/Separator.js.map +0 -1
  107. package/esm/MenuItems/SubMenu.js.map +0 -1
  108. package/esm/MenuItems/menuItemFactory.js.map +0 -1
  109. package/esm/SubMenu-a25e69ec.js +0 -778
  110. package/esm/SubMenu-a25e69ec.js.map +0 -1
  111. package/esm/VirtualMenuList.js.map +0 -1
  112. package/esm/index.js.map +0 -1
  113. package/esm/utils/useHeightByAmountOfItems.js.map +0 -1
  114. package/utils/useHeightByAmountOfItems/package.json +0 -10
@@ -1,31 +1,108 @@
1
- import '@babel/runtime/helpers/esm/extends';
2
- import '@babel/runtime/helpers/esm/objectWithoutProperties';
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';
6
+ import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
7
+ import _jsx from '@babel/runtime/helpers/esm/jsx';
8
+ import _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';
3
9
  import 'react';
4
- import 'react-desc';
5
- import '@elliemae/ds-icons';
6
- import '@elliemae/ds-utilities';
7
- export { b as DSMenuItemCheckeableWithSchema, h as default } from '../SubMenu-a25e69ec.js';
8
- import '@babel/runtime/helpers/esm/slicedToArray';
9
- import '@elliemae/ds-shared/FocusGroup';
10
- import '@elliemae/ds-hidden';
11
- import '@elliemae/ds-button';
12
- import '@elliemae/ds-popper';
13
- import 'styled-components';
14
- import '@babel/runtime/helpers/esm/defineProperty';
15
- import 'lodash';
16
- import '@elliemae/ds-classnames';
17
- import 'react-spring/web.cjs';
18
- import '@elliemae/ds-truncated-tooltip-text';
19
- import './Separator.js';
20
- import '@elliemae/ds-separator';
21
- import '@elliemae/ds-shared/CheckableGroup';
22
- import './SearchableGroup.js';
23
- import '@elliemae/ds-form/SearchBox';
24
- import '../VirtualMenuList.js';
25
- import 'react-window';
26
- import '../utils/useHeightByAmountOfItems.js';
27
- import '../MenuContext.js';
28
- import '@elliemae/ds-form';
29
- import './CheckboxGroup.js';
30
- import './RadioGroup.js';
31
- //# sourceMappingURL=MenuItemCheckable.js.map
10
+ import { PropTypes, describe } from 'react-desc';
11
+ import { Checkmark } from '@elliemae/ds-icons';
12
+ import { runAll } from '@elliemae/ds-utilities';
13
+ import MenuItem from './MenuItem.js';
14
+ import { jsx } from 'react/jsx-runtime';
15
+
16
+ var _div;
17
+
18
+ const _excluded = ["role", "checked", "name", "checkIcon", "children", "leftAddon", "item"];
19
+
20
+ 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; }
21
+
22
+ 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(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; }
23
+
24
+ function useCheckable(_ref) {
25
+ let {
26
+ checked
27
+ } = _ref;
28
+ return {
29
+ checked,
30
+ 'aria-checked': checked
31
+ };
32
+ }
33
+ /**
34
+ * Reuses the same props as the MenuItem
35
+ *
36
+ * @param root0
37
+ * @param root0.role
38
+ * @param root0.checked
39
+ * @param root0.name
40
+ * @param root0.checkIcon
41
+ * @param root0.children
42
+ * @param root0.leftAddon
43
+ * @param root0.item
44
+ */
45
+
46
+
47
+ function MenuItemCheckable(_ref2) {
48
+ let {
49
+ role = 'menuitemcheckbox',
50
+ checked = false,
51
+ name = '',
52
+ checkIcon = /*#__PURE__*/_jsx(Checkmark, {
53
+ color: ['brand-primary', 600]
54
+ }),
55
+ // eslint-disable-next-line react/prop-types
56
+ children,
57
+ leftAddon,
58
+ item = undefined
59
+ } = _ref2,
60
+ otherProps = _objectWithoutProperties(_ref2, _excluded);
61
+
62
+ const checkableProps = useCheckable({
63
+ checked,
64
+ name
65
+ });
66
+
67
+ const handleClick = () => runAll(otherProps.onClick, checkableProps.onClick)({
68
+ target: {
69
+ value: name,
70
+ checked
71
+ }
72
+ }, item);
73
+
74
+ const checkAddon = leftAddon || (checkableProps.checked ? /*#__PURE__*/_jsx("div", {
75
+ className: "checkable-mark"
76
+ }, void 0, checkIcon) : _div || (_div = /*#__PURE__*/_jsx("div", {})));
77
+ return /*#__PURE__*/jsx(MenuItem, _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, item), otherProps), checkableProps), {}, {
78
+ customRenderer: item && item.customRenderer ? item.customRenderer : () => {},
79
+ items: otherProps.subItems,
80
+ leftAddon: checkAddon,
81
+ onClick: handleClick,
82
+ role: role
83
+ }));
84
+ }
85
+
86
+ const props = {
87
+ /** Whether the item is checked or not */
88
+ checked: PropTypes.bool.description('Whether the item is checked or not'),
89
+
90
+ /** A custom item when the item is checked */
91
+ checkIcon: PropTypes.element.description('A custom item when the item is checked'),
92
+
93
+ /** form field name */
94
+ name: PropTypes.string.description('form field name'),
95
+
96
+ /** menu item object props */
97
+ item: PropTypes.object.description('menu item object props'),
98
+
99
+ /** a11y role */
100
+ role: PropTypes.string.description('a11y role'),
101
+
102
+ /** left addon component */
103
+ leftAddon: PropTypes.node.description('left addon component')
104
+ };
105
+ const DSMenuItemCheckeableWithSchema = describe(MenuItemCheckable);
106
+ DSMenuItemCheckeableWithSchema.propTypes = props;
107
+
108
+ export { DSMenuItemCheckeableWithSchema, MenuItemCheckable as default };
@@ -1,31 +1,34 @@
1
- import '@babel/runtime/helpers/esm/extends';
2
- import '@babel/runtime/helpers/esm/objectWithoutProperties';
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';
6
+ import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
7
+ import _jsx from '@babel/runtime/helpers/esm/jsx';
8
+ import _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';
3
9
  import 'react';
4
- import '@elliemae/ds-form';
5
- export { f as default } from '../SubMenu-a25e69ec.js';
6
- import '@babel/runtime/helpers/esm/slicedToArray';
7
- import 'react-desc';
8
- import '@elliemae/ds-icons';
9
- import '@elliemae/ds-shared/FocusGroup';
10
- import '@elliemae/ds-hidden';
11
- import '@elliemae/ds-button';
12
- import '@elliemae/ds-popper';
13
- import 'styled-components';
14
- import '@babel/runtime/helpers/esm/defineProperty';
15
- import 'lodash';
16
- import '@elliemae/ds-classnames';
17
- import 'react-spring/web.cjs';
18
- import '@elliemae/ds-utilities';
19
- import '@elliemae/ds-truncated-tooltip-text';
20
- import './Separator.js';
21
- import '@elliemae/ds-separator';
22
- import '@elliemae/ds-shared/CheckableGroup';
23
- import './SearchableGroup.js';
24
- import '@elliemae/ds-form/SearchBox';
25
- import '../VirtualMenuList.js';
26
- import 'react-window';
27
- import '../utils/useHeightByAmountOfItems.js';
28
- import '../MenuContext.js';
29
- import './CheckboxGroup.js';
30
- import './RadioGroup.js';
31
- //# sourceMappingURL=MenuItemCheckbox.js.map
10
+ import { DSCheckbox } from '@elliemae/ds-form';
11
+ import MenuItemCheckable from './MenuItemCheckable.js';
12
+ import { jsx } from 'react/jsx-runtime';
13
+
14
+ const _excluded = ["checked"];
15
+
16
+ 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; }
17
+
18
+ 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(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; }
19
+
20
+ function MenuItemCheckbox(_ref) {
21
+ let {
22
+ checked
23
+ } = _ref,
24
+ rest = _objectWithoutProperties(_ref, _excluded);
25
+
26
+ return /*#__PURE__*/jsx(MenuItemCheckable, _objectSpread(_objectSpread({}, rest), {}, {
27
+ leftAddon: /*#__PURE__*/_jsx(DSCheckbox, {
28
+ checked: checked
29
+ }),
30
+ role: "menuitemcheckbox"
31
+ }));
32
+ }
33
+
34
+ export { MenuItemCheckbox as default };
@@ -1,31 +1,32 @@
1
- import '@babel/runtime/helpers/esm/extends';
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';
6
+ import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
2
7
  import 'react';
3
- import 'react-desc';
4
- export { c as DSMenuItemRadioWithSchema, i as default } from '../SubMenu-a25e69ec.js';
5
- import '@babel/runtime/helpers/esm/slicedToArray';
6
- import '@elliemae/ds-icons';
7
- import '@elliemae/ds-shared/FocusGroup';
8
- import '@elliemae/ds-hidden';
9
- import '@elliemae/ds-button';
10
- import '@elliemae/ds-popper';
11
- import 'styled-components';
12
- import '@babel/runtime/helpers/esm/objectWithoutProperties';
13
- import '@babel/runtime/helpers/esm/defineProperty';
14
- import 'lodash';
15
- import '@elliemae/ds-classnames';
16
- import 'react-spring/web.cjs';
17
- import '@elliemae/ds-utilities';
18
- import '@elliemae/ds-truncated-tooltip-text';
19
- import './Separator.js';
20
- import '@elliemae/ds-separator';
21
- import '@elliemae/ds-shared/CheckableGroup';
22
- import './SearchableGroup.js';
23
- import '@elliemae/ds-form/SearchBox';
24
- import '../VirtualMenuList.js';
25
- import 'react-window';
26
- import '../utils/useHeightByAmountOfItems.js';
27
- import '../MenuContext.js';
28
- import '@elliemae/ds-form';
29
- import './CheckboxGroup.js';
30
- import './RadioGroup.js';
31
- //# sourceMappingURL=MenuItemRadio.js.map
8
+ import { PropTypes, describe } from 'react-desc';
9
+ import MenuItemCheckable from './MenuItemCheckable.js';
10
+ import { jsx } from 'react/jsx-runtime';
11
+
12
+ 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; }
13
+
14
+ 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(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; }
15
+
16
+ function MenuItemRadio(props) {
17
+ return /*#__PURE__*/jsx(MenuItemCheckable, _objectSpread(_objectSpread({}, props), {}, {
18
+ role: "menuitemradio"
19
+ }));
20
+ }
21
+
22
+ const props = {
23
+ /** Whether the item is checked or not */
24
+ checked: PropTypes.bool.description('Whether the item is checked or not'),
25
+
26
+ /** A custom item when the item is checked */
27
+ checkIcon: PropTypes.element.description('A custom item when the item is checked')
28
+ };
29
+ const DSMenuItemRadioWithSchema = describe(MenuItemCheckable);
30
+ DSMenuItemRadioWithSchema.propTypes = props;
31
+
32
+ export { DSMenuItemRadioWithSchema, MenuItemRadio as default };
@@ -1,24 +1,32 @@
1
- import _extends from '@babel/runtime/helpers/esm/extends';
2
- import React from 'react';
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';
6
+ import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
7
+ import 'react';
3
8
  import { PropTypes, describe } from 'react-desc';
4
9
  import CheckableGroup from '@elliemae/ds-shared/CheckableGroup';
10
+ import { jsx } from 'react/jsx-runtime';
11
+
12
+ 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; }
13
+
14
+ 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(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; }
5
15
 
6
16
  function RadioGroup(props) {
7
- return /*#__PURE__*/React.createElement(CheckableGroup, _extends({}, props, {
17
+ return /*#__PURE__*/jsx(CheckableGroup, _objectSpread(_objectSpread({}, props), {}, {
8
18
  multi: false
9
19
  }));
10
20
  }
11
21
 
12
- var props = {
22
+ const props = {
13
23
  /* The item selected */
14
24
  active: PropTypes.arrayOf(PropTypes.string).description('the item selected'),
15
25
 
16
26
  /* Handler when a user checks an item */
17
27
  onCheck: PropTypes.func.description('Handler when a user checks an item')
18
28
  };
19
- RadioGroup.propTypes = props;
20
- var DSMenuRadioGroupWithSchema = describe(RadioGroup);
29
+ const DSMenuRadioGroupWithSchema = describe(RadioGroup);
21
30
  DSMenuRadioGroupWithSchema.propTypes = props;
22
31
 
23
32
  export { DSMenuRadioGroupWithSchema, RadioGroup as default };
24
- //# sourceMappingURL=RadioGroup.js.map
@@ -1,73 +1,68 @@
1
- import _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';
2
- import React, { useRef, useState, useEffect, useContext, useMemo } from 'react';
1
+ import _jsx from '@babel/runtime/helpers/esm/jsx';
2
+ import 'core-js/modules/web.dom-collections.iterator.js';
3
+ import 'core-js/modules/esnext.async-iterator.filter.js';
4
+ import 'core-js/modules/esnext.iterator.constructor.js';
5
+ import 'core-js/modules/esnext.iterator.filter.js';
6
+ import { useRef, useState, useEffect, useContext, useMemo } from 'react';
3
7
  import { aggregatedClasses } from '@elliemae/ds-classnames';
4
8
  import { focusGroupManagerHoc } from '@elliemae/ds-shared/FocusGroup';
5
9
  import DSSearchBox from '@elliemae/ds-form/SearchBox';
6
10
  import { PropTypes, describe } from 'react-desc';
7
11
  import VirtualMenuList from '../VirtualMenuList.js';
8
12
  import MenuContext from '../MenuContext.js';
9
- import 'react-window';
10
- import '../utils/useHeightByAmountOfItems.js';
13
+ import { jsxs, Fragment } from 'react/jsx-runtime';
11
14
 
12
- var SearchBoxWrapper = aggregatedClasses('div')('menu-search-group', 'search-wrapper');
13
- var NoOptionsWrapper = aggregatedClasses('div')('menu-search-group', 'no-options');
15
+ const SearchBoxWrapper = aggregatedClasses('div')('menu-search-group', 'search-wrapper');
16
+ const NoOptionsWrapper = aggregatedClasses('div')('menu-search-group', 'no-options');
14
17
 
15
18
  function SearchableGroup(_ref) {
16
- var children = _ref.children,
17
- _ref$amountItemsInWin = _ref.amountItemsInWindow,
18
- amountItemsInWindow = _ref$amountItemsInWin === void 0 ? 5 : _ref$amountItemsInWin,
19
- _ref$searchTerm = _ref.searchTerm,
20
- searchTermProp = _ref$searchTerm === void 0 ? '' : _ref$searchTerm,
21
- _ref$noOptionsText = _ref.noOptionsText,
22
- noOptionsText = _ref$noOptionsText === void 0 ? 'No options' : _ref$noOptionsText,
23
- height = _ref.height,
24
- width = _ref.width,
25
- _ref$focusOnOpen = _ref.focusOnOpen,
26
- focusOnOpen = _ref$focusOnOpen === void 0 ? false : _ref$focusOnOpen;
27
- var searchRef = useRef(null);
28
-
29
- var _useState = useState(searchTermProp),
30
- _useState2 = _slicedToArray(_useState, 2),
31
- searchTerm = _useState2[0],
32
- setSearchTerm = _useState2[1];
33
-
34
- useEffect(function () {
19
+ let {
20
+ children,
21
+ amountItemsInWindow = 5,
22
+ searchTerm: searchTermProp = '',
23
+ noOptionsText = 'No options',
24
+ height,
25
+ width,
26
+ focusOnOpen = false
27
+ } = _ref;
28
+ const searchRef = useRef(null);
29
+ const [searchTerm, setSearchTerm] = useState(searchTermProp);
30
+ useEffect(() => {
35
31
  if (searchRef.current) searchRef.current.focus();
36
32
  }, []);
37
-
38
- var _ref2 = useContext(MenuContext) || {},
39
- visible = _ref2.visible;
40
-
41
- useEffect(function () {
33
+ const {
34
+ visible
35
+ } = useContext(MenuContext) || {};
36
+ useEffect(() => {
42
37
  if (focusOnOpen && visible) {
43
- setTimeout(function () {
38
+ setTimeout(() => {
44
39
  if (searchRef.current) searchRef.current.focus();
45
40
  }, 0);
46
41
  }
47
42
  }, [focusOnOpen, visible]);
48
- var filteredChildren = useMemo(function () {
49
- return children.filter(function (child) {
50
- return !searchTerm || child.props.label.toLowerCase().startsWith(searchTerm.toLowerCase());
51
- });
52
- }, [children, searchTerm]);
53
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SearchBoxWrapper, null, /*#__PURE__*/React.createElement(DSSearchBox, {
54
- innerRef: searchRef,
55
- onSearch: function onSearch(_ref3) {
56
- var value = _ref3.value;
57
- return setSearchTerm(value);
58
- },
59
- searchOnEnter: false,
60
- showIcon: false,
61
- value: searchTerm
62
- })), !filteredChildren.length && /*#__PURE__*/React.createElement(NoOptionsWrapper, null, noOptionsText), /*#__PURE__*/React.createElement(VirtualMenuList, {
63
- amountItemsInWindow: amountItemsInWindow,
64
- height: height,
65
- items: filteredChildren,
66
- width: width
67
- }));
43
+ const filteredChildren = useMemo(() => children.filter(child => !searchTerm || child.props.label.toLowerCase().startsWith(searchTerm.toLowerCase())), [children, searchTerm]);
44
+ return /*#__PURE__*/jsxs(Fragment, {
45
+ children: [/*#__PURE__*/_jsx(SearchBoxWrapper, {}, void 0, /*#__PURE__*/_jsx(DSSearchBox, {
46
+ innerRef: searchRef,
47
+ onSearch: _ref2 => {
48
+ let {
49
+ value
50
+ } = _ref2;
51
+ return setSearchTerm(value);
52
+ },
53
+ searchOnEnter: false,
54
+ showIcon: false,
55
+ value: searchTerm
56
+ })), !filteredChildren.length && /*#__PURE__*/_jsx(NoOptionsWrapper, {}, void 0, noOptionsText), /*#__PURE__*/_jsx(VirtualMenuList, {
57
+ amountItemsInWindow: amountItemsInWindow,
58
+ height: height,
59
+ items: filteredChildren,
60
+ width: width
61
+ })]
62
+ });
68
63
  }
69
64
 
70
- var props = {
65
+ const props = {
71
66
  /** The amount of items that are going to be rendered in the group */
72
67
  amountItemsInWindow: PropTypes.number.description('The amount of items that are going to be rendered in the group'),
73
68
 
@@ -89,10 +84,8 @@ var props = {
89
84
  /** weather to focus on searchable group on open */
90
85
  focusOnOpen: PropTypes.bool.description('weather to focus on searchable group on open')
91
86
  };
92
- SearchableGroup.propTypes = props;
93
- var DSMenuSearchableGroupWithSchema = describe(SearchableGroup);
87
+ const DSMenuSearchableGroupWithSchema = describe(SearchableGroup);
94
88
  DSMenuSearchableGroupWithSchema.propTypes = props;
95
89
  var SearchableGroup$1 = focusGroupManagerHoc(SearchableGroup);
96
90
 
97
91
  export { DSMenuSearchableGroupWithSchema, SearchableGroup$1 as default };
98
- //# sourceMappingURL=SearchableGroup.js.map
@@ -1,65 +1,54 @@
1
- import _extends from '@babel/runtime/helpers/esm/extends';
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';
2
6
  import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
3
- import _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';
4
- import React, { useState, useCallback, useMemo } from 'react';
7
+ import 'core-js/modules/web.dom-collections.iterator.js';
8
+ import { useState, useCallback, useMemo } from 'react';
5
9
  import { PropTypes, describe } from 'react-desc';
6
10
  import { uniqBy } from '@elliemae/ds-utilities';
7
11
  import { DSComboBox } from '@elliemae/ds-form';
12
+ import { jsx } from 'react/jsx-runtime';
8
13
 
9
14
  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; }
10
15
 
11
16
  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(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; }
12
17
 
13
- var noop = function noop() {};
18
+ const noop = () => {};
14
19
 
15
20
  function SearchableList(_ref) {
16
- var _ref$onSelectMenuItem = _ref.onSelectMenuItem,
17
- onSelectMenuItem = _ref$onSelectMenuItem === void 0 ? noop : _ref$onSelectMenuItem,
18
- _ref$components = _ref.components,
19
- components = _ref$components === void 0 ? {} : _ref$components,
20
- _ref$searchTerm = _ref.searchTerm,
21
- searchTermProp = _ref$searchTerm === void 0 ? '' : _ref$searchTerm,
22
- _ref$items = _ref.items,
23
- items = _ref$items === void 0 ? [] : _ref$items,
24
- _ref$dropdownFilterOp = _ref.dropdownFilterOptions,
25
- dropdownFilterOptions = _ref$dropdownFilterOp === void 0 ? {} : _ref$dropdownFilterOp,
26
- returnValue = _ref.returnValue,
27
- _ref$extraListProps = _ref.extraListProps,
28
- extraListProps = _ref$extraListProps === void 0 ? {} : _ref$extraListProps,
29
- _ref$appendTermInList = _ref.appendTermInList,
30
- appendTermInList = _ref$appendTermInList === void 0 ? false : _ref$appendTermInList,
31
- _ref$maxOptions = _ref.maxOptions,
32
- maxOptions = _ref$maxOptions === void 0 ? 10 : _ref$maxOptions,
33
- _ref$loading = _ref.loading,
34
- loading = _ref$loading === void 0 ? false : _ref$loading;
35
-
36
- var _useState = useState(searchTermProp),
37
- _useState2 = _slicedToArray(_useState, 2),
38
- searchTerm = _useState2[0],
39
- setInputValue = _useState2[1];
40
-
41
- var handleInputChange = useCallback(function (value, args) {
42
- var action = args ? args.action : null;
21
+ let {
22
+ onSelectMenuItem = noop,
23
+ components = {},
24
+ searchTerm: searchTermProp = '',
25
+ items = [],
26
+ dropdownFilterOptions = {},
27
+ returnValue,
28
+ extraListProps = {},
29
+ appendTermInList = false,
30
+ maxOptions = 10,
31
+ loading = false
32
+ } = _ref;
33
+ const [searchTerm, setInputValue] = useState(searchTermProp);
34
+ const handleInputChange = useCallback((value, args) => {
35
+ const action = args ? args.action : null;
43
36
  if (action === 'input-blur' || action === 'menu-close') return;
44
37
  setInputValue(value);
45
38
  }, [searchTerm]);
46
- var handleFilterByText = useCallback(function () {
39
+ const handleFilterByText = useCallback(() => {
47
40
  if (searchTerm) onSelectMenuItem(searchTerm);
48
41
  }, [searchTerm]);
49
- var handleKeyDown = useCallback(function (e) {
42
+ const handleKeyDown = useCallback(e => {
50
43
  if (e.key === 'ArrowRight') {
51
44
  handleFilterByText();
52
45
  }
53
46
  }, [searchTerm]);
54
- var options = useMemo(function () {
55
- return searchTerm && appendTermInList ? uniqBy([{
56
- id: searchTerm,
57
- label: searchTerm
58
- }].concat(items), function (item) {
59
- return item.label;
60
- }) : items;
61
- }, [searchTerm, appendTermInList]);
62
- return /*#__PURE__*/React.createElement(DSComboBox, _extends({
47
+ const options = useMemo(() => searchTerm && appendTermInList ? uniqBy([{
48
+ id: searchTerm,
49
+ label: searchTerm
50
+ }].concat(items), item => item.label) : items, [searchTerm, appendTermInList]);
51
+ return /*#__PURE__*/jsx(DSComboBox, _objectSpread(_objectSpread({
63
52
  autoFocus: true,
64
53
  components: _objectSpread({
65
54
  DropdownIndicator: null
@@ -79,10 +68,10 @@ function SearchableList(_ref) {
79
68
  valueProperty: "id",
80
69
  maxOptions: maxOptions,
81
70
  loading: loading
82
- }, extraListProps, dropdownFilterOptions));
71
+ }, extraListProps), dropdownFilterOptions));
83
72
  }
84
73
 
85
- var props = {
74
+ const props = {
86
75
  /** callback after item gets selected */
87
76
  onSelectMenuItem: PropTypes.func.description('callback after item gets selected'),
88
77
 
@@ -113,9 +102,7 @@ var props = {
113
102
  /** loading flag */
114
103
  loading: PropTypes.bool.description('loading flag')
115
104
  };
116
- SearchableList.propTypes = props;
117
- var DSMenuSearchableListWithSchema = describe(SearchableList);
105
+ const DSMenuSearchableListWithSchema = describe(SearchableList);
118
106
  DSMenuSearchableListWithSchema.propTypes = props;
119
107
 
120
108
  export { DSMenuSearchableListWithSchema, SearchableList as default };
121
- //# sourceMappingURL=SearchableList.js.map