@elliemae/ds-menu 2.2.0-alpha.4 → 3.0.0-next.2

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 (100) hide show
  1. package/cjs/Menu.js +181 -137
  2. package/cjs/MenuCombobox.js +53 -67
  3. package/cjs/MenuContext.js +11 -38
  4. package/cjs/MenuItems/CheckboxGroup.js +42 -49
  5. package/cjs/MenuItems/MenuItem.js +163 -116
  6. package/cjs/MenuItems/MenuItemCheckable.js +108 -77
  7. package/cjs/MenuItems/MenuItemCheckbox.js +41 -47
  8. package/cjs/MenuItems/MenuItemRadio.js +38 -50
  9. package/cjs/MenuItems/RadioGroup.js +39 -48
  10. package/cjs/MenuItems/SearchableGroup.js +92 -88
  11. package/cjs/MenuItems/SearchableList.js +95 -92
  12. package/cjs/MenuItems/SelectionGroup.js +90 -85
  13. package/cjs/MenuItems/Separator.js +40 -55
  14. package/cjs/MenuItems/SubMenu.js +160 -143
  15. package/cjs/MenuItems/menuItemFactory.js +68 -38
  16. package/cjs/VirtualMenuList.js +39 -69
  17. package/cjs/index.js +36 -63
  18. package/cjs/utils/useHeightByAmountOfItems.js +14 -43
  19. package/esm/Menu.js +149 -91
  20. package/esm/MenuCombobox.js +45 -38
  21. package/esm/MenuContext.js +5 -9
  22. package/esm/MenuItems/CheckboxGroup.js +31 -19
  23. package/esm/MenuItems/MenuItem.js +148 -84
  24. package/esm/MenuItems/MenuItemCheckable.js +96 -47
  25. package/esm/MenuItems/MenuItemCheckbox.js +33 -18
  26. package/esm/MenuItems/MenuItemRadio.js +28 -20
  27. package/esm/MenuItems/RadioGroup.js +28 -18
  28. package/esm/MenuItems/SearchableGroup.js +76 -53
  29. package/esm/MenuItems/SearchableList.js +82 -59
  30. package/esm/MenuItems/SelectionGroup.js +78 -54
  31. package/esm/MenuItems/Separator.js +29 -26
  32. package/esm/MenuItems/SubMenu.js +140 -107
  33. package/esm/MenuItems/menuItemFactory.js +60 -10
  34. package/esm/VirtualMenuList.js +32 -39
  35. package/esm/index.js +13 -34
  36. package/esm/utils/useHeightByAmountOfItems.js +11 -13
  37. package/package.json +11 -19
  38. package/types/Menu.d.ts +2 -3
  39. package/types/MenuContext.d.ts +2 -3
  40. package/types/MenuItems/CheckboxGroup.d.ts +5 -5
  41. package/types/MenuItems/MenuItem.d.ts +5 -5
  42. package/types/MenuItems/MenuItemCheckable.d.ts +15 -15
  43. package/types/MenuItems/MenuItemCheckbox.d.ts +2 -3
  44. package/types/MenuItems/MenuItemRadio.d.ts +5 -5
  45. package/types/MenuItems/RadioGroup.d.ts +5 -5
  46. package/types/MenuItems/SearchableGroup.d.ts +3 -3
  47. package/types/MenuItems/SearchableList.d.ts +16 -16
  48. package/types/MenuItems/SelectionGroup.d.ts +16 -16
  49. package/types/MenuItems/Separator.d.ts +1 -2
  50. package/types/MenuItems/SubMenu.d.ts +18 -18
  51. package/types/MenuItems/menuItemFactory.d.ts +3 -2
  52. package/types/VirtualMenuList.d.ts +1 -3
  53. package/types/index.d.ts +2 -3
  54. package/types/utils/useHeightByAmountOfItems.d.ts +1 -3
  55. package/cjs/Menu.js.map +0 -7
  56. package/cjs/MenuCombobox.js.map +0 -7
  57. package/cjs/MenuContext.js.map +0 -7
  58. package/cjs/MenuExports.js +0 -28
  59. package/cjs/MenuExports.js.map +0 -7
  60. package/cjs/MenuItems/CheckboxGroup.js.map +0 -7
  61. package/cjs/MenuItems/MenuItem.js.map +0 -7
  62. package/cjs/MenuItems/MenuItemCheckable.js.map +0 -7
  63. package/cjs/MenuItems/MenuItemCheckbox.js.map +0 -7
  64. package/cjs/MenuItems/MenuItemRadio.js.map +0 -7
  65. package/cjs/MenuItems/RadioGroup.js.map +0 -7
  66. package/cjs/MenuItems/SearchableGroup.js.map +0 -7
  67. package/cjs/MenuItems/SearchableList.js.map +0 -7
  68. package/cjs/MenuItems/SelectionGroup.js.map +0 -7
  69. package/cjs/MenuItems/Separator.js.map +0 -7
  70. package/cjs/MenuItems/SubMenu.js.map +0 -7
  71. package/cjs/MenuItems/menuItemFactory.js.map +0 -7
  72. package/cjs/MenuItems/renderMenuItems.js +0 -53
  73. package/cjs/MenuItems/renderMenuItems.js.map +0 -7
  74. package/cjs/VirtualMenuList.js.map +0 -7
  75. package/cjs/index.js.map +0 -7
  76. package/cjs/utils/useHeightByAmountOfItems.js.map +0 -7
  77. package/esm/Menu.js.map +0 -7
  78. package/esm/MenuCombobox.js.map +0 -7
  79. package/esm/MenuContext.js.map +0 -7
  80. package/esm/MenuExports.js +0 -3
  81. package/esm/MenuExports.js.map +0 -7
  82. package/esm/MenuItems/CheckboxGroup.js.map +0 -7
  83. package/esm/MenuItems/MenuItem.js.map +0 -7
  84. package/esm/MenuItems/MenuItemCheckable.js.map +0 -7
  85. package/esm/MenuItems/MenuItemCheckbox.js.map +0 -7
  86. package/esm/MenuItems/MenuItemRadio.js.map +0 -7
  87. package/esm/MenuItems/RadioGroup.js.map +0 -7
  88. package/esm/MenuItems/SearchableGroup.js.map +0 -7
  89. package/esm/MenuItems/SearchableList.js.map +0 -7
  90. package/esm/MenuItems/SelectionGroup.js.map +0 -7
  91. package/esm/MenuItems/Separator.js.map +0 -7
  92. package/esm/MenuItems/SubMenu.js.map +0 -7
  93. package/esm/MenuItems/menuItemFactory.js.map +0 -7
  94. package/esm/MenuItems/renderMenuItems.js +0 -24
  95. package/esm/MenuItems/renderMenuItems.js.map +0 -7
  96. package/esm/VirtualMenuList.js.map +0 -7
  97. package/esm/index.js.map +0 -7
  98. package/esm/utils/useHeightByAmountOfItems.js.map +0 -7
  99. package/types/MenuExports.d.ts +0 -1
  100. package/types/MenuItems/renderMenuItems.d.ts +0 -1
@@ -1,77 +1,98 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __reExport = (target, module2, copyDefault, desc) => {
13
- if (module2 && typeof module2 === "object" || typeof module2 === "function") {
14
- for (let key of __getOwnPropNames(module2))
15
- if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
16
- __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
17
- }
18
- return target;
19
- };
20
- var __toESM = (module2, isNodeMode) => {
21
- return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
22
- };
23
- var __toCommonJS = /* @__PURE__ */ ((cache) => {
24
- return (module2, temp) => {
25
- return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
7
+ var _jsx = require('@babel/runtime/helpers/jsx');
8
+ require('core-js/modules/esnext.async-iterator.map.js');
9
+ require('core-js/modules/esnext.iterator.map.js');
10
+ require('core-js/modules/web.dom-collections.iterator.js');
11
+ require('core-js/modules/esnext.async-iterator.filter.js');
12
+ require('core-js/modules/esnext.iterator.constructor.js');
13
+ require('core-js/modules/esnext.iterator.filter.js');
14
+ require('core-js/modules/esnext.async-iterator.for-each.js');
15
+ require('core-js/modules/esnext.iterator.for-each.js');
16
+ var React = require('react');
17
+ var reactDesc = require('react-desc');
18
+ var lodash = require('lodash');
19
+ var dsClassnames = require('@elliemae/ds-classnames');
20
+ var dsUtilities = require('@elliemae/ds-utilities');
21
+ var FocusGroup = require('@elliemae/ds-shared/FocusGroup');
22
+ var DSTruncatedTooltipText = require('@elliemae/ds-truncated-tooltip-text');
23
+ var menuItemFactory = require('./menuItemFactory.js');
24
+ var SubMenu = require('./SubMenu.js');
25
+ var MenuContext = require('../MenuContext.js');
26
+ var jsxRuntime = require('react/jsx-runtime');
27
+
28
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
29
+
30
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
31
+ var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
32
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
33
+ var DSTruncatedTooltipText__default = /*#__PURE__*/_interopDefaultLegacy(DSTruncatedTooltipText);
34
+
35
+ const _excluded = ["innerRef", "as", "role", "leftAddon", "rightAddon", "disabledAddonInactive", "label", "children", "tabIndex", "onKeyDown", "fixedItem", "noAddon", "disabled", "customRenderer", "maxOption", "closeMenu", "style"];
36
+
37
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
38
+
39
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
40
+
41
+ const noop = () => null;
42
+
43
+ const blockName = 'menu-item';
44
+ const Content = dsClassnames.aggregatedClasses('div')(blockName, 'content');
45
+ const Addon = dsClassnames.aggregatedClasses('div')(blockName, 'addon', _ref => {
46
+ let {
47
+ empty,
48
+ fixedItem
49
+ } = _ref;
50
+ return {
51
+ empty,
52
+ fixedItem
26
53
  };
27
- })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
28
- var MenuItem_exports = {};
29
- __export(MenuItem_exports, {
30
- DSMenuItemWithSchema: () => DSMenuItemWithSchema,
31
- MenuItem: () => MenuItem,
32
- default: () => MenuItem_default
33
54
  });
34
- var React = __toESM(require("react"));
35
- var import_react = __toESM(require("react"));
36
- var import_react_desc = require("react-desc");
37
- var import_lodash = require("lodash");
38
- var import_ds_classnames = require("@elliemae/ds-classnames");
39
- var import_ds_utilities = require("@elliemae/ds-utilities");
40
- var import_FocusGroup = require("@elliemae/ds-shared/FocusGroup");
41
- var import_ds_truncated_tooltip_text = require("@elliemae/ds-truncated-tooltip-text");
42
- var import_MenuContext = require("../MenuContext");
43
- var import_menuItemFactory = require("./menuItemFactory");
44
- var import_renderMenuItems = require("./renderMenuItems");
45
- const noop = () => null;
46
- const blockName = "menu-item";
47
- const Content = (0, import_ds_classnames.aggregatedClasses)("div")(blockName, "content");
48
- const Addon = (0, import_ds_classnames.aggregatedClasses)("div")(blockName, "addon", ({ empty, fixedItem }) => ({ empty, fixedItem }));
49
- const renderAddon = (addon, fixedItem, addonId) => /* @__PURE__ */ import_react.default.createElement(Addon, {
50
- key: addonId,
51
- classProps: { fixedItem }
52
- }, addon);
55
+
56
+ const renderAddon = (addon, fixedItem, addonId) => /*#__PURE__*/_jsx__default["default"](Addon, {
57
+ classProps: {
58
+ fixedItem
59
+ }
60
+ }, addonId, addon);
61
+
53
62
  const renderAddons = (addons, fixedItem) => Array.isArray(addons) ? addons.map(renderAddon) : renderAddon(addons, fixedItem);
54
- const Wrapper = (0, import_ds_classnames.aggregatedClasses)("li")(blockName, null, ({ disabled, disabledAddonInactive, customRenderer, fixedItem, type }) => ({
55
- disabled,
56
- disabledAddonInactive,
57
- customRenderer,
58
- fixedItem,
59
- [`menu-type-${type}`]: type
60
- }));
61
- const calculateSize = (length = 0) => {
62
- if (length > 45)
63
- return 45 * 7;
63
+
64
+ const Wrapper = dsClassnames.aggregatedClasses('li')(blockName, null, _ref2 => {
65
+ let {
66
+ disabled,
67
+ disabledAddonInactive,
68
+ customRenderer,
69
+ fixedItem,
70
+ type
71
+ } = _ref2;
72
+ return {
73
+ disabled,
74
+ disabledAddonInactive,
75
+ customRenderer,
76
+ fixedItem,
77
+ ["menu-type-".concat(type)]: type
78
+ };
79
+ });
80
+
81
+ const calculateSize = function () {
82
+ let length = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
83
+ if (length > 45) return 45 * 7;
64
84
  return length * 7;
65
85
  };
66
- const MenuItem = (props2) => {
86
+
87
+ function MenuItem(props) {
67
88
  const {
68
89
  innerRef,
69
- as = "li",
70
- role = "menuitem",
90
+ as = 'li',
91
+ role = 'menuitem',
71
92
  leftAddon = null,
72
- rightAddon = void 0,
73
- disabledAddonInactive = void 0,
74
- label = void 0,
93
+ rightAddon = undefined,
94
+ disabledAddonInactive = undefined,
95
+ label = undefined,
75
96
  children,
76
97
  tabIndex = -1,
77
98
  onKeyDown = noop,
@@ -81,28 +102,33 @@ const MenuItem = (props2) => {
81
102
  customRenderer,
82
103
  maxOption,
83
104
  closeMenu,
84
- style,
85
- ...otherProps
86
- } = props2;
87
- const menuCxt = (0, import_react.useContext)(import_MenuContext.MenuContext);
88
- const ref = (0, import_react.useRef)(null);
89
- (0, import_FocusGroup.useFocusGroupItem)(ref);
105
+ style
106
+ } = props,
107
+ otherProps = _objectWithoutProperties__default["default"](props, _excluded);
108
+
109
+ const menuCxt = React.useContext(MenuContext);
110
+ const ref = React.useRef(null);
111
+ FocusGroup.useFocusGroupItem(ref);
112
+
90
113
  if (otherProps.subItems) {
91
- return /* @__PURE__ */ import_react.default.createElement(SubMenu, {
92
- ...props2,
93
- closeMenu: menuCxt.closeMenu
94
- }, (0, import_renderMenuItems.renderMenuItems)(otherProps.subItems));
114
+ return /*#__PURE__*/jsxRuntime.jsx(SubMenu["default"], _objectSpread(_objectSpread({}, props), {}, {
115
+ closeMenu: menuCxt.closeMenu,
116
+ children: menuItemFactory.renderMenuItems(otherProps.subItems)
117
+ }));
95
118
  }
96
- const wrapperProps = (0, import_react.useMemo)(() => (0, import_lodash.omit)(otherProps, ["icon"]), [otherProps]);
97
- const onClick = (...args) => {
98
- if (wrapperProps.onClick)
99
- wrapperProps.onClick(...args);
119
+
120
+ const wrapperProps = React.useMemo(() => lodash.omit(otherProps, ['icon']), [otherProps]);
121
+
122
+ const onClick = function () {
123
+ if (wrapperProps.onClick) wrapperProps.onClick(...arguments);
124
+
100
125
  if (wrapperProps.closeOnClick && menuCxt.closeMenu) {
101
- menuCxt.closeMenu(...args);
126
+ menuCxt.closeMenu(...arguments);
102
127
  }
103
128
  };
104
- return /* @__PURE__ */ import_react.default.createElement(Wrapper, {
105
- as,
129
+
130
+ return /*#__PURE__*/jsxRuntime.jsxs(Wrapper, _objectSpread(_objectSpread({
131
+ as: as,
106
132
  classProps: {
107
133
  disabled,
108
134
  disabledAddonInactive,
@@ -111,46 +137,67 @@ const MenuItem = (props2) => {
111
137
  type: otherProps.type
112
138
  },
113
139
  id: otherProps.id,
114
- innerRef: otherProps.type !== "disabled" ? (0, import_ds_utilities.mergeRefs)(innerRef, ref) : innerRef,
115
- onKeyDown: !fixedItem && (0, import_ds_utilities.runAll)((e) => {
116
- if (e.key === " " || e.key === "Enter") {
140
+ innerRef: otherProps.type !== 'disabled' ? dsUtilities.mergeRefs(innerRef, ref) : innerRef,
141
+ onKeyDown: !fixedItem && dsUtilities.runAll(e => {
142
+ if (e.key === ' ' || e.key === 'Enter') {
117
143
  e.preventDefault();
118
- e.target.dispatchEvent(new MouseEvent("click", {
144
+ e.target.dispatchEvent(new MouseEvent('click', {
119
145
  view: window,
120
146
  bubbles: true,
121
147
  cancelable: false
122
148
  }));
123
149
  }
124
150
  }, onKeyDown),
125
- role,
126
- style,
127
- tabIndex,
128
- ...wrapperProps,
129
- onClick
130
- }, !noAddon && renderAddons(leftAddon, fixedItem), label && /* @__PURE__ */ import_react.default.createElement(Content, {
131
- style: maxOption > 0 ? {
132
- width: `${calculateSize(maxOption)}px`,
133
- maxWidth: `${calculateSize(maxOption)}px`
134
- } : void 0
135
- }, /* @__PURE__ */ import_react.default.createElement(import_ds_truncated_tooltip_text.DSTruncatedTooltipText, {
136
- value: label
137
- })), customRenderer, rightAddon && renderAddons(rightAddon), children);
138
- };
151
+ role: role,
152
+ style: style,
153
+ tabIndex: tabIndex
154
+ }, wrapperProps), {}, {
155
+ onClick: onClick,
156
+ children: [!noAddon && renderAddons(leftAddon, fixedItem), label && /*#__PURE__*/_jsx__default["default"](Content, {
157
+ style: maxOption > 0 ? {
158
+ width: "".concat(calculateSize(maxOption), "px"),
159
+ maxWidth: "".concat(calculateSize(maxOption), "px")
160
+ } : undefined
161
+ }, void 0, /*#__PURE__*/_jsx__default["default"](DSTruncatedTooltipText__default["default"], {
162
+ value: label
163
+ })), customRenderer, rightAddon && renderAddons(rightAddon), children]
164
+ }));
165
+ }
166
+
139
167
  const props = {
140
- as: import_react_desc.PropTypes.element.description("Renders the MenuItem with a specific html element"),
141
- innerRef: import_react_desc.PropTypes.oneOfType([import_react_desc.PropTypes.func, import_react_desc.PropTypes.shape({ current: import_react_desc.PropTypes.any })]).description("reference to the component"),
142
- leftAddon: import_react_desc.PropTypes.element.description("Renders the passed element to the left"),
143
- rightAddon: import_react_desc.PropTypes.element.description("Renders the passed element to the right"),
144
- label: import_react_desc.PropTypes.string.description("Label for the menu item"),
145
- style: import_react_desc.PropTypes.object.description("style object for menu item wrapper"),
146
- disabled: import_react_desc.PropTypes.bool.description("disable menu item"),
147
- tabindex: import_react_desc.PropTypes.number.description("HTML tabindex to manage focus order"),
148
- role: import_react_desc.PropTypes.string.description("a11y role")
168
+ /** Renders the MenuItem with a specific html element */
169
+ as: reactDesc.PropTypes.element.description('Renders the MenuItem with a specific html element'),
170
+
171
+ /**
172
+ * reference to the component
173
+ */
174
+ innerRef: reactDesc.PropTypes.oneOfType([reactDesc.PropTypes.func, reactDesc.PropTypes.shape({
175
+ current: reactDesc.PropTypes.any
176
+ })]).description('reference to the component'),
177
+
178
+ /** Renders the passed element to the left */
179
+ leftAddon: reactDesc.PropTypes.element.description('Renders the passed element to the left'),
180
+
181
+ /** Renders the passed element to the right */
182
+ rightAddon: reactDesc.PropTypes.element.description('Renders the passed element to the right'),
183
+
184
+ /** Label for the menu item */
185
+ label: reactDesc.PropTypes.string.description('Label for the menu item'),
186
+
187
+ /** style object for menu item wrapper */
188
+ style: reactDesc.PropTypes.object.description('style object for menu item wrapper'),
189
+
190
+ /** disable menu item */
191
+ disabled: reactDesc.PropTypes.bool.description('disable menu item'),
192
+
193
+ /** HTML tabindex to manage focus order */
194
+ tabindex: reactDesc.PropTypes.number.description('HTML tabindex to manage focus order'),
195
+
196
+ /** a11y role */
197
+ role: reactDesc.PropTypes.string.description('a11y role')
149
198
  };
150
- MenuItem.propTypes = props;
151
- (0, import_menuItemFactory.registerMenuItem)("menuitem", MenuItem);
152
- const DSMenuItemWithSchema = (0, import_react_desc.describe)(MenuItem);
199
+ const DSMenuItemWithSchema = reactDesc.describe(MenuItem);
153
200
  DSMenuItemWithSchema.propTypes = props;
154
- var MenuItem_default = MenuItem;
155
- module.exports = __toCommonJS(MenuItem_exports);
156
- //# sourceMappingURL=MenuItem.js.map
201
+
202
+ exports.DSMenuItemWithSchema = DSMenuItemWithSchema;
203
+ exports["default"] = MenuItem;
@@ -1,88 +1,119 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __reExport = (target, module2, copyDefault, desc) => {
13
- if (module2 && typeof module2 === "object" || typeof module2 === "function") {
14
- for (let key of __getOwnPropNames(module2))
15
- if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
16
- __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
17
- }
18
- return target;
19
- };
20
- var __toESM = (module2, isNodeMode) => {
21
- return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
22
- };
23
- var __toCommonJS = /* @__PURE__ */ ((cache) => {
24
- return (module2, temp) => {
25
- return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
26
- };
27
- })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
28
- var MenuItemCheckable_exports = {};
29
- __export(MenuItemCheckable_exports, {
30
- DSMenuItemCheckeableWithSchema: () => DSMenuItemCheckeableWithSchema,
31
- MenuItemCheckable: () => MenuItemCheckable,
32
- default: () => MenuItemCheckable_default
33
- });
34
- var React = __toESM(require("react"));
35
- var import_react = __toESM(require("react"));
36
- var import_react_desc = require("react-desc");
37
- var import_ds_icons = require("@elliemae/ds-icons");
38
- var import_ds_utilities = require("@elliemae/ds-utilities");
39
- var import_MenuItem = require("./MenuItem");
40
- function useCheckable({ checked }) {
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
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');
10
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
11
+ var _jsx = require('@babel/runtime/helpers/jsx');
12
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
13
+ require('react');
14
+ var reactDesc = require('react-desc');
15
+ var dsIcons = require('@elliemae/ds-icons');
16
+ var dsUtilities = require('@elliemae/ds-utilities');
17
+ var MenuItem = require('./MenuItem.js');
18
+ var jsxRuntime = require('react/jsx-runtime');
19
+
20
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
21
+
22
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
23
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
24
+ var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
25
+
26
+ var _div;
27
+
28
+ const _excluded = ["role", "checked", "name", "checkIcon", "children", "leftAddon", "item"];
29
+
30
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
31
+
32
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
33
+
34
+ function useCheckable(_ref) {
35
+ let {
36
+ checked
37
+ } = _ref;
41
38
  return {
42
39
  checked,
43
- "aria-checked": checked
40
+ 'aria-checked': checked
44
41
  };
45
42
  }
46
- const MenuItemCheckable = ({
47
- role = "menuitemcheckbox",
48
- checked = false,
49
- name = "",
50
- checkIcon = /* @__PURE__ */ import_react.default.createElement(import_ds_icons.Checkmark, {
51
- color: ["brand-primary", 600]
52
- }),
53
- children,
54
- leftAddon,
55
- item = void 0,
56
- ...otherProps
57
- }) => {
58
- const checkableProps = useCheckable({ checked, name });
59
- const handleClick = () => (0, import_ds_utilities.runAll)(otherProps.onClick, checkableProps.onClick)({ target: { value: name, checked } }, item);
60
- const checkAddon = leftAddon || (checkableProps.checked ? /* @__PURE__ */ import_react.default.createElement("div", {
43
+ /**
44
+ * Reuses the same props as the MenuItem
45
+ *
46
+ * @param root0
47
+ * @param root0.role
48
+ * @param root0.checked
49
+ * @param root0.name
50
+ * @param root0.checkIcon
51
+ * @param root0.children
52
+ * @param root0.leftAddon
53
+ * @param root0.item
54
+ */
55
+
56
+
57
+ function MenuItemCheckable(_ref2) {
58
+ let {
59
+ role = 'menuitemcheckbox',
60
+ checked = false,
61
+ name = '',
62
+ checkIcon = /*#__PURE__*/_jsx__default["default"](dsIcons.Checkmark, {
63
+ color: ['brand-primary', 600]
64
+ }),
65
+ // eslint-disable-next-line react/prop-types
66
+ children,
67
+ leftAddon,
68
+ item = undefined
69
+ } = _ref2,
70
+ otherProps = _objectWithoutProperties__default["default"](_ref2, _excluded);
71
+
72
+ const checkableProps = useCheckable({
73
+ checked,
74
+ name
75
+ });
76
+
77
+ const handleClick = () => dsUtilities.runAll(otherProps.onClick, checkableProps.onClick)({
78
+ target: {
79
+ value: name,
80
+ checked
81
+ }
82
+ }, item);
83
+
84
+ const checkAddon = leftAddon || (checkableProps.checked ? /*#__PURE__*/_jsx__default["default"]("div", {
61
85
  className: "checkable-mark"
62
- }, checkIcon) : /* @__PURE__ */ import_react.default.createElement("div", null));
63
- return /* @__PURE__ */ import_react.default.createElement(import_MenuItem.MenuItem, {
64
- ...item,
65
- ...otherProps,
66
- ...checkableProps,
67
- customRenderer: item && item.customRenderer ? item.customRenderer : () => {
68
- },
86
+ }, void 0, checkIcon) : _div || (_div = /*#__PURE__*/_jsx__default["default"]("div", {})));
87
+ return /*#__PURE__*/jsxRuntime.jsx(MenuItem["default"], _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, item), otherProps), checkableProps), {}, {
88
+ customRenderer: item && item.customRenderer ? item.customRenderer : () => {},
69
89
  items: otherProps.subItems,
70
90
  leftAddon: checkAddon,
71
91
  onClick: handleClick,
72
- role
73
- });
74
- };
92
+ role: role
93
+ }));
94
+ }
95
+
75
96
  const props = {
76
- checked: import_react_desc.PropTypes.bool.description("Whether the item is checked or not"),
77
- checkIcon: import_react_desc.PropTypes.element.description("A custom item when the item is checked"),
78
- name: import_react_desc.PropTypes.string.description("form field name"),
79
- item: import_react_desc.PropTypes.object.description("menu item object props"),
80
- role: import_react_desc.PropTypes.string.description("a11y role"),
81
- leftAddon: import_react_desc.PropTypes.node.description("left addon component")
97
+ /** Whether the item is checked or not */
98
+ checked: reactDesc.PropTypes.bool.description('Whether the item is checked or not'),
99
+
100
+ /** A custom item when the item is checked */
101
+ checkIcon: reactDesc.PropTypes.element.description('A custom item when the item is checked'),
102
+
103
+ /** form field name */
104
+ name: reactDesc.PropTypes.string.description('form field name'),
105
+
106
+ /** menu item object props */
107
+ item: reactDesc.PropTypes.object.description('menu item object props'),
108
+
109
+ /** a11y role */
110
+ role: reactDesc.PropTypes.string.description('a11y role'),
111
+
112
+ /** left addon component */
113
+ leftAddon: reactDesc.PropTypes.node.description('left addon component')
82
114
  };
83
- MenuItemCheckable.propTypes = props;
84
- const DSMenuItemCheckeableWithSchema = (0, import_react_desc.describe)(MenuItemCheckable);
115
+ const DSMenuItemCheckeableWithSchema = reactDesc.describe(MenuItemCheckable);
85
116
  DSMenuItemCheckeableWithSchema.propTypes = props;
86
- var MenuItemCheckable_default = MenuItemCheckable;
87
- module.exports = __toCommonJS(MenuItemCheckable_exports);
88
- //# sourceMappingURL=MenuItemCheckable.js.map
117
+
118
+ exports.DSMenuItemCheckeableWithSchema = DSMenuItemCheckeableWithSchema;
119
+ exports["default"] = MenuItemCheckable;
@@ -1,48 +1,42 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __reExport = (target, module2, copyDefault, desc) => {
13
- if (module2 && typeof module2 === "object" || typeof module2 === "function") {
14
- for (let key of __getOwnPropNames(module2))
15
- if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
16
- __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
17
- }
18
- return target;
19
- };
20
- var __toESM = (module2, isNodeMode) => {
21
- return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
22
- };
23
- var __toCommonJS = /* @__PURE__ */ ((cache) => {
24
- return (module2, temp) => {
25
- return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
26
- };
27
- })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
28
- var MenuItemCheckbox_exports = {};
29
- __export(MenuItemCheckbox_exports, {
30
- MenuItemCheckbox: () => MenuItemCheckbox,
31
- default: () => MenuItemCheckbox_default
32
- });
33
- var React = __toESM(require("react"));
34
- var import_react = __toESM(require("react"));
35
- var import_ds_form = require("@elliemae/ds-form");
36
- var import_MenuItemCheckable = require("./MenuItemCheckable");
37
- var import_menuItemFactory = require("./menuItemFactory");
38
- const MenuItemCheckbox = ({ checked, ...rest }) => /* @__PURE__ */ import_react.default.createElement(import_MenuItemCheckable.MenuItemCheckable, {
39
- ...rest,
40
- leftAddon: /* @__PURE__ */ import_react.default.createElement(import_ds_form.DSCheckbox, {
1
+ 'use strict';
2
+
3
+ require('core-js/modules/esnext.async-iterator.filter.js');
4
+ require('core-js/modules/esnext.iterator.constructor.js');
5
+ require('core-js/modules/esnext.iterator.filter.js');
6
+ require('core-js/modules/esnext.async-iterator.for-each.js');
7
+ require('core-js/modules/esnext.iterator.for-each.js');
8
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
9
+ var _jsx = require('@babel/runtime/helpers/jsx');
10
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
11
+ require('react');
12
+ var dsForm = require('@elliemae/ds-form');
13
+ var MenuItemCheckable = require('./MenuItemCheckable.js');
14
+ var jsxRuntime = require('react/jsx-runtime');
15
+
16
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
17
+
18
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
19
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
20
+ var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
21
+
22
+ const _excluded = ["checked"];
23
+
24
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
25
+
26
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
27
+
28
+ function MenuItemCheckbox(_ref) {
29
+ let {
41
30
  checked
42
- }),
43
- role: "menuitemcheckbox"
44
- });
45
- (0, import_menuItemFactory.registerMenuItem)("checkbox", MenuItemCheckbox);
46
- var MenuItemCheckbox_default = MenuItemCheckbox;
47
- module.exports = __toCommonJS(MenuItemCheckbox_exports);
48
- //# sourceMappingURL=MenuItemCheckbox.js.map
31
+ } = _ref,
32
+ rest = _objectWithoutProperties__default["default"](_ref, _excluded);
33
+
34
+ return /*#__PURE__*/jsxRuntime.jsx(MenuItemCheckable["default"], _objectSpread(_objectSpread({}, rest), {}, {
35
+ leftAddon: /*#__PURE__*/_jsx__default["default"](dsForm.DSCheckbox, {
36
+ checked: checked
37
+ }),
38
+ role: "menuitemcheckbox"
39
+ }));
40
+ }
41
+
42
+ module.exports = MenuItemCheckbox;